From bbf76e49258d7def13c36983f645e353f368685d Mon Sep 17 00:00:00 2001 From: YZBruh Date: Sat, 14 Dec 2024 10:43:33 +0300 Subject: [PATCH] pmt: revert 7f8090b --- ADD-LANGUAGES.md | 60 +- CHANGELOG.md | 14 +- README.md | 125 +- build/bash/gen-header | 18 +- build/mandoc/mandoc | 9 +- build/workflow/build.config | 6 +- build/workflow/relnotes | 2 +- include/PartitionManager/Alternatives.h | 36 - include/PartitionManager/Deprecates.h | 125 +- include/PartitionManager/FileSystemUtils.h | 2 +- include/PartitionManager/LanguageConfigs.h | 40 - include/PartitionManager/Parted.h | 25 - include/PartitionManager/PartitionManager.h | 187 +- include/PartitionManager/StringKeys.h | 216 +- include/PartitionManager/VersionFnVars.h | 12 +- include/e2fsprogs/blkid/blkid.h | 496 + include/e2fsprogs/blkid/blkid_local.h | 4 +- include/libcharset/config.h | 186 - include/libcharset/export.h | 8 - include/libcharset/libcharset.h | 53 - include/libcharset/localcharset.h | 145 - include/libgnulib/Makefile | 6 - include/libgnulib/README | 3 - include/libgnulib/_Noreturn.h | 50 - include/libgnulib/acl-internal.h | 300 - include/libgnulib/acl.h | 114 - include/libgnulib/af_alg.h | 115 - include/libgnulib/alignalloc.h | 133 - include/libgnulib/aligned-malloc.h | 197 - include/libgnulib/alignof.h | 56 - include/libgnulib/allocator.h | 68 - include/libgnulib/amemxfrm.h | 49 - include/libgnulib/arcfour.h | 58 - include/libgnulib/arctwo.h | 71 - include/libgnulib/areadlink.h | 47 - include/libgnulib/arg-nonnull.h | 26 - include/libgnulib/argmatch.h | 350 - include/libgnulib/argp-fmtstream.h | 303 - include/libgnulib/argp-namefrob.h | 170 - include/libgnulib/argp-version-etc.h | 40 - include/libgnulib/argp.h | 645 - include/libgnulib/argv-iter.h | 57 - include/libgnulib/array-mergesort.h | 281 - include/libgnulib/assure.h | 57 - include/libgnulib/astrxfrm.h | 48 - include/libgnulib/asyncsafe-spin.h | 69 - include/libgnulib/attribute.h | 320 - include/libgnulib/backup-internal.h | 22 - include/libgnulib/backupfile.h | 73 - include/libgnulib/base32.h | 99 - include/libgnulib/base64.h | 99 - include/libgnulib/basename-lgpl.h | 83 - include/libgnulib/bcp47.h | 75 - include/libgnulib/binary-io.h | 89 - include/libgnulib/bitrotate.h | 150 - include/libgnulib/bitset.h | 411 - include/libgnulib/bitset/array.h | 30 - include/libgnulib/bitset/base.h | 336 - include/libgnulib/bitset/list.h | 32 - include/libgnulib/bitset/stats.h | 33 - include/libgnulib/bitset/table.h | 32 - include/libgnulib/bitset/vector.h | 30 - include/libgnulib/bitsetv.h | 81 - include/libgnulib/boot-time-aux.h | 422 - include/libgnulib/boot-time.h | 44 - include/libgnulib/c++defs.h | 357 - include/libgnulib/c-ctype.h | 366 - include/libgnulib/c-snprintf.h | 67 - include/libgnulib/c-stack.h | 62 - include/libgnulib/c-strcase.h | 61 - include/libgnulib/c-strcaseeq.h | 191 - include/libgnulib/c-strcasestr.h | 36 - include/libgnulib/c-strstr.h | 44 - include/libgnulib/c-strtod.h | 53 - include/libgnulib/c-vasnprintf.h | 73 - include/libgnulib/c-vasprintf.h | 75 - include/libgnulib/c-vsnprintf.h | 70 - include/libgnulib/c-xvasprintf.h | 67 - include/libgnulib/c32is-impl.h | 105 - include/libgnulib/c32to-impl.h | 103 - include/libgnulib/canon-host.h | 48 - include/libgnulib/canonicalize.h | 63 - include/libgnulib/careadlinkat.h | 82 - include/libgnulib/cdefs.h | 715 - include/libgnulib/chdir-long.h | 40 - include/libgnulib/check-version.h | 35 - include/libgnulib/classpath.h | 47 - include/libgnulib/clean-temp-private.h | 81 - include/libgnulib/clean-temp-simple.h | 50 - include/libgnulib/clean-temp.h | 194 - include/libgnulib/cloexec.h | 44 - include/libgnulib/close-stream.h | 30 - include/libgnulib/closein.h | 32 - include/libgnulib/closeout.h | 34 - include/libgnulib/concat-filename.h | 51 - include/libgnulib/copy-file.h | 83 - include/libgnulib/count-leading-zeros.h | 140 - include/libgnulib/count-one-bits.h | 169 - include/libgnulib/count-trailing-zeros.h | 130 - include/libgnulib/crc.h | 60 - include/libgnulib/csharpcomp.h | 48 - include/libgnulib/csharpexec.h | 51 - include/libgnulib/cycle-check.h | 61 - include/libgnulib/cygpath.h | 37 - include/libgnulib/des.h | 128 - include/libgnulib/dev-ino.h | 41 - include/libgnulib/dfa.h | 178 - include/libgnulib/di-set.h | 52 - include/libgnulib/diffseq.h | 574 - include/libgnulib/dirchownmod.h | 20 - include/libgnulib/dirent--.h | 24 - include/libgnulib/dirent-private.h | 67 - include/libgnulib/dirent-safer.h | 36 - include/libgnulib/dirname.h | 59 - include/libgnulib/dosname.h | 18 - include/libgnulib/dynarray.h | 284 - include/libgnulib/eealloc.h | 110 - include/libgnulib/eloop-threshold.h | 88 - include/libgnulib/exclude.h | 80 - include/libgnulib/execute.h | 75 - include/libgnulib/exitfail.h | 28 - include/libgnulib/fatal-signal.h | 101 - include/libgnulib/fbufmode.h | 36 - include/libgnulib/fcntl--.h | 32 - include/libgnulib/fcntl-safer.h | 37 - include/libgnulib/fd-hook.h | 119 - include/libgnulib/fenv-private.h | 412 - include/libgnulib/ffsl.h | 92 - include/libgnulib/file-set.h | 42 - include/libgnulib/file-type.h | 45 - include/libgnulib/filemode.h | 50 - include/libgnulib/filename.h | 112 - include/libgnulib/filenamecat.h | 47 - include/libgnulib/filevercmp.h | 93 - include/libgnulib/findprog.h | 75 - include/libgnulib/flexmember.h | 76 - include/libgnulib/float+.h | 147 - include/libgnulib/fpe-trapping.h | 53 - include/libgnulib/fpending.h | 45 - include/libgnulib/fprintftime.h | 39 - include/libgnulib/fpucw.h | 118 - include/libgnulib/freadable.h | 49 - include/libgnulib/freadahead.h | 52 - include/libgnulib/freading.h | 59 - include/libgnulib/freadptr.h | 53 - include/libgnulib/freadseek.h | 42 - include/libgnulib/fseterr.h | 50 - include/libgnulib/fstrcmp.h | 54 - include/libgnulib/fsusage.h | 49 - include/libgnulib/ftoastr.h | 162 - include/libgnulib/fts_.h | 280 - include/libgnulib/full-read.h | 35 - include/libgnulib/full-write.h | 35 - include/libgnulib/fwritable.h | 49 - include/libgnulib/fwriteerror.h | 62 - include/libgnulib/fwriting.h | 60 - include/libgnulib/gc.h | 350 - include/libgnulib/gcd.h | 34 - include/libgnulib/get_ppid_of.h | 35 - include/libgnulib/get_progname_of.h | 43 - include/libgnulib/gethrxtime.h | 58 - include/libgnulib/getndelim2.h | 52 - include/libgnulib/getnline.h | 57 - include/libgnulib/getopt-core.h | 96 - include/libgnulib/getopt-ext.h | 77 - include/libgnulib/getopt-pfx-core.h | 73 - include/libgnulib/getopt-pfx-ext.h | 70 - include/libgnulib/getopt_int.h | 118 - include/libgnulib/getpass.h | 21 - include/libgnulib/getprogname.h | 26 - include/libgnulib/gettext.h | 300 - include/libgnulib/getugroups.h | 30 - include/libgnulib/gl_anyavltree_list1.h | 70 - include/libgnulib/gl_anyavltree_list2.h | 809 - include/libgnulib/gl_anyhash1.h | 31 - include/libgnulib/gl_anyhash2.h | 82 - include/libgnulib/gl_anyhash_primes.h | 87 - include/libgnulib/gl_anylinked_list1.h | 48 - include/libgnulib/gl_anylinked_list2.h | 1215 - include/libgnulib/gl_anyrbtree_list1.h | 76 - include/libgnulib/gl_anyrbtree_list2.h | 1028 - include/libgnulib/gl_anytree_list1.h | 41 - include/libgnulib/gl_anytree_list2.h | 970 - include/libgnulib/gl_anytree_omap.h | 305 - include/libgnulib/gl_anytree_oset.h | 443 - include/libgnulib/gl_anytreehash_list1.h | 346 - include/libgnulib/gl_anytreehash_list2.h | 213 - include/libgnulib/gl_array_list.h | 34 - include/libgnulib/gl_array_map.h | 34 - include/libgnulib/gl_array_omap.h | 34 - include/libgnulib/gl_array_oset.h | 34 - include/libgnulib/gl_array_set.h | 34 - include/libgnulib/gl_avltree_list.h | 34 - include/libgnulib/gl_avltree_omap.h | 34 - include/libgnulib/gl_avltree_ordered.h | 571 - include/libgnulib/gl_avltree_oset.h | 34 - include/libgnulib/gl_avltreehash_list.h | 34 - include/libgnulib/gl_carray_list.h | 34 - include/libgnulib/gl_hash_map.h | 34 - include/libgnulib/gl_hash_set.h | 34 - include/libgnulib/gl_linked_list.h | 34 - include/libgnulib/gl_linkedhash_list.h | 34 - include/libgnulib/gl_linkedhash_map.h | 34 - include/libgnulib/gl_linkedhash_set.h | 34 - include/libgnulib/gl_list.h | 926 - include/libgnulib/gl_list.hh | 421 - include/libgnulib/gl_map.h | 377 - include/libgnulib/gl_map.hh | 187 - include/libgnulib/gl_omap.h | 395 - include/libgnulib/gl_omap.hh | 195 - include/libgnulib/gl_openssl.h | 118 - include/libgnulib/gl_oset.h | 344 - include/libgnulib/gl_oset.hh | 198 - include/libgnulib/gl_rbtree_list.h | 34 - include/libgnulib/gl_rbtree_omap.h | 34 - include/libgnulib/gl_rbtree_ordered.h | 800 - include/libgnulib/gl_rbtree_oset.h | 34 - include/libgnulib/gl_rbtreehash_list.h | 34 - include/libgnulib/gl_set.h | 283 - include/libgnulib/gl_set.hh | 153 - include/libgnulib/gl_sublist.h | 52 - include/libgnulib/gl_xlist.h | 210 - include/libgnulib/gl_xmap.h | 99 - include/libgnulib/gl_xomap.h | 96 - include/libgnulib/gl_xoset.h | 82 - include/libgnulib/gl_xset.h | 84 - include/libgnulib/gl_xsublist.h | 61 - include/libgnulib/glob-libc.h | 195 - include/libgnulib/glob_internal.h | 65 - include/libgnulib/glthread/cond.h | 344 - include/libgnulib/glthread/lock.h | 656 - include/libgnulib/glthread/once.h | 272 - include/libgnulib/glthread/thread.h | 346 - include/libgnulib/glthread/tls.h | 267 - include/libgnulib/glthread/yield.h | 100 - include/libgnulib/hamt.h | 275 - include/libgnulib/hard-locale.h | 38 - include/libgnulib/hash-pjw-bare.h | 39 - include/libgnulib/hash-pjw.h | 38 - include/libgnulib/hash-triple.h | 60 - include/libgnulib/hash.h | 273 - include/libgnulib/hmac.h | 66 - include/libgnulib/human.h | 92 - include/libgnulib/i-ring.h | 57 - include/libgnulib/ialloc.h | 145 - include/libgnulib/iconv_open-aix.gperf | 60 - include/libgnulib/iconv_open-hpux.gperf | 72 - include/libgnulib/iconv_open-irix.gperf | 47 - include/libgnulib/iconv_open-osf.gperf | 66 - include/libgnulib/iconv_open-solaris.gperf | 46 - include/libgnulib/iconv_open-zos.gperf | 76 - include/libgnulib/iconveh.h | 44 - include/libgnulib/idcache.h | 39 - include/libgnulib/idpriv.h | 116 - include/libgnulib/idx.h | 144 - include/libgnulib/ignore-value.h | 51 - include/libgnulib/immutable.h | 98 - include/libgnulib/ino-map.h | 51 - include/libgnulib/integer_length.h | 47 - include/libgnulib/intprops-internal.h | 399 - include/libgnulib/intprops.h | 335 - include/libgnulib/inttostr.h | 44 - include/libgnulib/isapipe.h | 38 - include/libgnulib/isdir.h | 18 - include/libgnulib/isnand-nolibm.h | 45 - include/libgnulib/isnanf-nolibm.h | 57 - include/libgnulib/isnanl-nolibm.h | 46 - include/libgnulib/iswctype-impl.h | 22 - include/libgnulib/javacomp.h | 98 - include/libgnulib/javaexec.h | 58 - include/libgnulib/javaversion.class | Bin 510 -> 0 bytes include/libgnulib/javaversion.h | 48 - include/libgnulib/javaversion.java | 31 - include/libgnulib/jit/cache.h | 198 - include/libgnulib/lc-charset-dispatch.h | 40 - include/libgnulib/lc-charset-unicode.h | 33 - include/libgnulib/libc-config.h | 209 - include/libgnulib/libunistring.valgrind | 32 - include/libgnulib/linebuffer.h | 64 - include/libgnulib/localcharset.h | 135 - include/libgnulib/localeinfo.h | 74 - include/libgnulib/localename-table.h | 69 - include/libgnulib/localename.h | 116 - include/libgnulib/long-options.h | 50 - include/libgnulib/malloc/dynarray.h | 177 - include/libgnulib/malloc/scratch_buffer.h | 135 - include/libgnulib/malloca.h | 147 - include/libgnulib/mbchar.h | 383 - include/libgnulib/mbfile.h | 277 - include/libgnulib/mbiter.h | 278 - include/libgnulib/mbiterf.h | 214 - include/libgnulib/mbmemcasecmp.h | 45 - include/libgnulib/mbmemcasecoll.h | 57 - include/libgnulib/mbrtowc-impl-utf8.h | 138 - include/libgnulib/mbrtowc-impl.h | 262 - include/libgnulib/mbsnrtowcs-impl.h | 127 - include/libgnulib/mbsrtowcs-impl.h | 123 - include/libgnulib/mbswidth.h | 60 - include/libgnulib/mbtowc-impl.h | 44 - include/libgnulib/mbtowc-lock.h | 125 - include/libgnulib/mbuiter.h | 277 - include/libgnulib/mbuiterf.h | 223 - include/libgnulib/mcel.h | 307 - include/libgnulib/md2.h | 87 - include/libgnulib/md4.h | 93 - include/libgnulib/md5.h | 178 - include/libgnulib/memcasecmp.h | 37 - include/libgnulib/memchr.valgrind | 30 - include/libgnulib/memchr2.h | 37 - include/libgnulib/memchr2.valgrind | 30 - include/libgnulib/memcmp2.h | 45 - include/libgnulib/memcoll.h | 38 - include/libgnulib/memxor.h | 47 - include/libgnulib/mgetgroups.h | 32 - include/libgnulib/mini-gmp.h | 311 - include/libgnulib/mini-mpq.h | 114 - include/libgnulib/minmax.h | 65 - include/libgnulib/mkancesdirs.h | 31 - include/libgnulib/mkdir-p.h | 44 - include/libgnulib/mktime-internal.h | 78 - include/libgnulib/modechange.h | 48 - include/libgnulib/mountlist.h | 58 - include/libgnulib/mpsort.h | 30 - include/libgnulib/msvc-inval.h | 227 - include/libgnulib/msvc-nothrow.h | 56 - include/libgnulib/nan.h | 105 - include/libgnulib/nonblocking.h | 60 - include/libgnulib/noreturn.h | 116 - include/libgnulib/nproc.h | 46 - include/libgnulib/openat-priv.h | 74 - include/libgnulib/openat.h | 137 - include/libgnulib/opendirat.h | 36 - include/libgnulib/os2-spawn.h | 39 - include/libgnulib/pagealign_alloc.h | 62 - include/libgnulib/parse-datetime.h | 40 - include/libgnulib/parse-datetime.y | 2439 - include/libgnulib/parse-duration.h | 100 - include/libgnulib/passfd.h | 32 - include/libgnulib/pathmax.h | 88 - include/libgnulib/physmem.h | 54 - include/libgnulib/pipe-filter-aux.h | 127 - include/libgnulib/pipe-filter.h | 243 - include/libgnulib/posixtm.h | 48 - include/libgnulib/posixver.h | 28 - include/libgnulib/printf-args.h | 196 - include/libgnulib/printf-frexp.h | 33 - include/libgnulib/printf-frexpl.h | 33 - include/libgnulib/printf-parse.h | 193 - include/libgnulib/priv-set.h | 77 - include/libgnulib/progname.h | 62 - include/libgnulib/propername.h | 134 - include/libgnulib/pty-private.h | 45 - include/libgnulib/quote.h | 56 - include/libgnulib/quotearg.h | 452 - include/libgnulib/rawmemchr.valgrind | 28 - include/libgnulib/read-file.h | 54 - include/libgnulib/readline.h | 51 - include/libgnulib/readtokens.h | 55 - include/libgnulib/readtokens0.h | 51 - include/libgnulib/readutmp.h | 338 - include/libgnulib/regex-quote.h | 102 - include/libgnulib/regex.h | 699 - include/libgnulib/regex_internal.h | 832 - include/libgnulib/relocatable.h | 124 - include/libgnulib/relocatable.valgrind | 25 - include/libgnulib/renameatu.h | 39 - include/libgnulib/resource-ext.h | 47 - include/libgnulib/rijndael-alg-fst.h | 75 - include/libgnulib/rijndael-api-fst.h | 215 - include/libgnulib/root-uid.h | 30 - include/libgnulib/safe-alloc.h | 136 - include/libgnulib/safe-read.h | 50 - include/libgnulib/safe-write.h | 50 - include/libgnulib/same-inode.h | 95 - include/libgnulib/same.h | 34 - include/libgnulib/save-cwd.h | 44 - include/libgnulib/savedir.h | 59 - include/libgnulib/savewd.h | 164 - include/libgnulib/scratch_buffer.h | 117 - include/libgnulib/selinux-at.h | 62 - include/libgnulib/setlocale_null.h | 110 - include/libgnulib/sf-istream.h | 77 - include/libgnulib/sfl-istream.h | 79 - include/libgnulib/sh-quote.h | 58 - include/libgnulib/sha1.h | 134 - include/libgnulib/sha256.h | 140 - include/libgnulib/sha512.h | 143 - include/libgnulib/sig-handler.h | 53 - include/libgnulib/sig2str.h | 32 - include/libgnulib/siglist.h | 132 - include/libgnulib/signed-nan.h | 138 - include/libgnulib/signed-snan.h | 150 - include/libgnulib/sigpipe-die.h | 68 - include/libgnulib/simple-atomic.h | 49 - include/libgnulib/size_max.h | 35 - include/libgnulib/sm3.h | 133 - include/libgnulib/snan.h | 289 - include/libgnulib/sockets.h | 80 - include/libgnulib/spawn-pipe.h | 171 - include/libgnulib/spawn_int.h | 72 - include/libgnulib/ssfmalloc-bitmap.h | 629 - include/libgnulib/ssfmalloc.h | 976 - include/libgnulib/stack-trace-impl.h | 90 - include/libgnulib/stack.h | 178 - include/libgnulib/stackvma.h | 62 - include/libgnulib/stat-macros.h | 20 - include/libgnulib/stat-size.h | 94 - include/libgnulib/stat-time.h | 245 - include/libgnulib/stat-w32.h | 37 - include/libgnulib/stdio--.h | 41 - include/libgnulib/stdio-impl.h | 218 - include/libgnulib/stdio-safer.h | 55 - include/libgnulib/stdlib--.h | 36 - include/libgnulib/stdlib-safer.h | 42 - include/libgnulib/stdopen.h | 32 - include/libgnulib/str-kmp.h | 161 - include/libgnulib/str-two-way.h | 452 - include/libgnulib/strchrnul.valgrind | 28 - include/libgnulib/streq.h | 186 - include/libgnulib/strerror-override.h | 73 - include/libgnulib/strftime.h | 85 - include/libgnulib/striconv.h | 82 - include/libgnulib/striconveh.h | 147 - include/libgnulib/striconveha.h | 100 - include/libgnulib/string-buffer.h | 205 - include/libgnulib/string-desc-quotearg.h | 223 - include/libgnulib/string-desc.h | 238 - include/libgnulib/strnlen1.h | 45 - include/libgnulib/struniq.h | 119 - include/libgnulib/supersede.h | 156 - include/libgnulib/sys-limits.h | 42 - include/libgnulib/system-quote.h | 108 - include/libgnulib/t-idcache | 52 - include/libgnulib/tempname.h | 72 - include/libgnulib/term-style-control.h | 185 - include/libgnulib/termcap.h | 123 - include/libgnulib/terminfo.h | 121 - include/libgnulib/thread-optim.h | 65 - include/libgnulib/time-internal.h | 54 - include/libgnulib/timespec.h | 102 - include/libgnulib/timevar.def | 52 - include/libgnulib/timevar.h | 138 - include/libgnulib/tmpdir.h | 35 - include/libgnulib/towctrans-impl.h | 22 - include/libgnulib/trigl.h | 35 - include/libgnulib/trim.h | 52 - include/libgnulib/u64.h | 211 - include/libgnulib/unicase/cased.h | 407 - include/libgnulib/unicase/casefold.h | 40 - include/libgnulib/unicase/caseprop.h | 51 - include/libgnulib/unicase/context.h | 73 - include/libgnulib/unicase/ignorable.h | 676 - include/libgnulib/unicase/invariant.h | 62 - .../libgnulib/unicase/locale-languages.gperf | 300 - include/libgnulib/unicase/simple-mapping.h | 39 - .../unicase/special-casing-table.gperf | 160 - include/libgnulib/unicase/tocasefold.h | 783 - include/libgnulib/unicase/tolower.h | 743 - include/libgnulib/unicase/totitle.h | 847 - include/libgnulib/unicase/toupper.h | 855 - include/libgnulib/unicase/u-casecmp.h | 77 - include/libgnulib/unicase/u-casecoll.h | 76 - include/libgnulib/unicase/u-casefold.h | 36 - include/libgnulib/unicase/u-casemap.h | 424 - include/libgnulib/unicase/u-casexfrm.h | 96 - include/libgnulib/unicase/u-ct-casefold.h | 115 - include/libgnulib/unicase/u-ct-totitle.h | 515 - include/libgnulib/unicase/u-is-cased.h | 136 - include/libgnulib/unicase/u-is-invariant.h | 72 - include/libgnulib/unicase/u-prefix-context.h | 100 - include/libgnulib/unicase/u-suffix-context.h | 98 - include/libgnulib/unicase/u-totitle.h | 36 - include/libgnulib/unicase/unicasemap.h | 70 - include/libgnulib/unicodeio.h | 58 - include/libgnulib/uniconv/u-conv-from-enc.h | 99 - include/libgnulib/uniconv/u-conv-to-enc.h | 164 - .../libgnulib/uniconv/u-strconv-from-enc.h | 40 - include/libgnulib/uniconv/u-strconv-to-enc.h | 71 - include/libgnulib/unigbrk/gbrkprop.h | 4434 - include/libgnulib/unigbrk/u-grapheme-breaks.h | 161 - include/libgnulib/unilbrk/internal.h | 43 - include/libgnulib/unilbrk/lbrkprop1.h | 41 - include/libgnulib/unilbrk/lbrkprop2.h | 8614 - include/libgnulib/unilbrk/lbrktables.h | 145 - include/libgnulib/unilbrk/ulc-common.h | 49 - include/libgnulib/uniname/gen-uninames.lisp | 376 - include/libgnulib/uniname/uninames.h | 135356 --------------- .../uninorm/composition-table-bounds.h | 25 - .../libgnulib/uninorm/composition-table.gperf | 991 - .../libgnulib/uninorm/decompose-internal.h | 46 - .../libgnulib/uninorm/decomposition-table.h | 48 - .../libgnulib/uninorm/decomposition-table1.h | 35 - .../libgnulib/uninorm/decomposition-table2.h | 3533 - .../libgnulib/uninorm/normalize-internal.h | 35 - .../libgnulib/uninorm/u-normalize-internal.h | 380 - include/libgnulib/uninorm/u-normcmp.h | 72 - include/libgnulib/uninorm/u-normcoll.h | 73 - include/libgnulib/uninorm/u-normxfrm.h | 95 - include/libgnulib/unistd--.h | 32 - include/libgnulib/unistd-safer.h | 41 - include/libgnulib/unistdio/u-asnprintf.h | 36 - include/libgnulib/unistdio/u-asprintf.h | 36 - include/libgnulib/unistdio/u-printf-args.h | 36 - include/libgnulib/unistdio/u-printf-parse.h | 36 - include/libgnulib/unistdio/u-snprintf.h | 36 - include/libgnulib/unistdio/u-sprintf.h | 36 - include/libgnulib/unistdio/u-vasprintf.h | 43 - include/libgnulib/unistdio/u-vsnprintf.h | 60 - include/libgnulib/unistdio/u-vsprintf.h | 66 - include/libgnulib/unistr/u-cmp2.h | 35 - include/libgnulib/unistr/u-cpy-alloc.h | 49 - include/libgnulib/unistr/u-cpy.h | 33 - include/libgnulib/unistr/u-endswith.h | 36 - include/libgnulib/unistr/u-move.h | 52 - include/libgnulib/unistr/u-pcpy.h | 22 - include/libgnulib/unistr/u-set.h | 47 - include/libgnulib/unistr/u-startswith.h | 38 - include/libgnulib/unistr/u-stpcpy.h | 32 - include/libgnulib/unistr/u-stpncpy.h | 42 - include/libgnulib/unistr/u-strcat.h | 26 - include/libgnulib/unistr/u-strcoll.h | 100 - include/libgnulib/unistr/u-strcpy.h | 34 - include/libgnulib/unistr/u-strcspn.h | 62 - include/libgnulib/unistr/u-strdup.h | 49 - include/libgnulib/unistr/u-strlen.h | 26 - include/libgnulib/unistr/u-strncat.h | 36 - include/libgnulib/unistr/u-strncpy.h | 40 - include/libgnulib/unistr/u-strnlen.h | 34 - include/libgnulib/unistr/u-strpbrk.h | 54 - include/libgnulib/unistr/u-strspn.h | 62 - include/libgnulib/unistr/u-strtok.h | 60 - include/libgnulib/uniwbrk/u-wordbreaks.h | 182 - include/libgnulib/uniwbrk/wbrkprop.h | 6515 - include/libgnulib/uniwbrk/wbrktable.h | 35 - include/libgnulib/uniwidth/cjk.h | 37 - include/libgnulib/uniwidth/width0.h | 495 - include/libgnulib/uniwidth/width2.h | 541 - include/libgnulib/unlinkdir.h | 32 - include/libgnulib/unlocked-io.h | 141 - include/libgnulib/unused-parameter.h | 29 - include/libgnulib/userspec.h | 41 - include/libgnulib/utimecmp.h | 49 - include/libgnulib/utimens.h | 82 - include/libgnulib/vasnprintf.h | 77 - include/libgnulib/vasnwprintf.h | 63 - include/libgnulib/verify.h | 387 - include/libgnulib/version-etc.h | 83 - include/libgnulib/vla.h | 53 - include/libgnulib/vma-iter.h | 69 - include/libgnulib/vma-prot.h | 50 - include/libgnulib/w32sock.h | 140 - include/libgnulib/wait-process.h | 72 - include/libgnulib/warn-on-use.h | 153 - include/libgnulib/wcpcpy-impl.h | 24 - include/libgnulib/wcpncpy-impl.h | 30 - include/libgnulib/wcs-two-way.h | 302 - include/libgnulib/wcscasecmp-impl.h | 32 - include/libgnulib/wcscat-impl.h | 26 - include/libgnulib/wcschr-impl.h | 32 - include/libgnulib/wcscmp-impl.h | 33 - include/libgnulib/wcscoll-impl.h | 103 - include/libgnulib/wcscpy-impl.h | 26 - include/libgnulib/wcscspn-impl.h | 47 - include/libgnulib/wcsdup-impl.h | 29 - include/libgnulib/wcslen-impl.h | 26 - include/libgnulib/wcsncasecmp-impl.h | 36 - include/libgnulib/wcsncat-impl.h | 28 - include/libgnulib/wcsncmp-impl.h | 37 - include/libgnulib/wcsncpy-impl.h | 32 - include/libgnulib/wcsnlen-impl.h | 26 - include/libgnulib/wcsnrtombs-impl.h | 90 - include/libgnulib/wcspbrk-impl.h | 47 - include/libgnulib/wcsrchr-impl.h | 33 - include/libgnulib/wcsrtombs-impl.h | 90 - include/libgnulib/wcsspn-impl.h | 47 - include/libgnulib/wcsstr-impl.h | 56 - include/libgnulib/wcstok-impl.h | 50 - include/libgnulib/wcswidth-impl.h | 56 - include/libgnulib/wcsxfrm-impl.h | 92 - include/libgnulib/wctomb-impl.h | 34 - include/libgnulib/wctrans-impl.h | 37 - include/libgnulib/wctype-impl.h | 96 - include/libgnulib/windows-cond.h | 79 - include/libgnulib/windows-initguard.h | 35 - include/libgnulib/windows-mutex.h | 52 - include/libgnulib/windows-once.h | 48 - include/libgnulib/windows-path.h | 54 - include/libgnulib/windows-recmutex.h | 57 - include/libgnulib/windows-rwlock.h | 68 - include/libgnulib/windows-spawn.h | 206 - include/libgnulib/windows-spin.h | 47 - include/libgnulib/windows-thread.h | 60 - include/libgnulib/windows-timedmutex.h | 57 - include/libgnulib/windows-timedrecmutex.h | 62 - include/libgnulib/windows-timedrwlock.h | 76 - include/libgnulib/windows-tls.h | 42 - include/libgnulib/wmemchr-impl.h | 27 - include/libgnulib/wmemcmp-impl.h | 36 - include/libgnulib/wmemcpy-impl.h | 26 - include/libgnulib/wmemmove-impl.h | 36 - include/libgnulib/wmemset-impl.h | 26 - include/libgnulib/wprintf-parse.h | 86 - include/libgnulib/write-any-file.h | 28 - include/libgnulib/xalloc-oversized.h | 65 - include/libgnulib/xalloc.h | 215 - include/libgnulib/xbinary-io.h | 60 - include/libgnulib/xfreopen.h | 29 - include/libgnulib/xgetaname-impl.h | 63 - include/libgnulib/xgetcwd.h | 35 - include/libgnulib/xgetdomainname.h | 48 - include/libgnulib/xgethostname.h | 36 - include/libgnulib/xmalloca.h | 77 - include/libgnulib/xmemcoll.h | 31 - include/libgnulib/xmemdup0.h | 41 - include/libgnulib/xnanosleep.h | 25 - include/libgnulib/xprintf.h | 71 - include/libgnulib/xreadlink.h | 44 - include/libgnulib/xsetenv.h | 31 - include/libgnulib/xsize.h | 130 - include/libgnulib/xstdopen.h | 28 - include/libgnulib/xstrerror.h | 45 - include/libgnulib/xstriconv.h | 85 - include/libgnulib/xstriconveh.h | 122 - include/libgnulib/xstring-desc.h | 116 - include/libgnulib/xstrndup.h | 40 - include/libgnulib/xstrtod.h | 84 - include/libgnulib/xstrtol-error.h | 51 - include/libgnulib/xstrtol.h | 81 - include/libgnulib/xtime.h | 92 - include/libgnulib/xvasprintf.h | 65 - include/libgnulib/yesno.h | 32 - include/libiconv/export.h | 8 - include/libiconv/iconv.h | 249 - include/malloc.h | 423 - include/parted/constraint.h | 101 - include/parted/crc32.h | 39 - include/parted/debug.h | 88 - include/parted/device.h | 172 - include/parted/disk.h | 503 - include/parted/endian.h | 85 - include/parted/exception.h | 136 - include/parted/fdasd.h | 299 - include/parted/filesys.h | 116 - include/parted/geom.h | 106 - include/parted/natmath.h | 144 - include/parted/parted.h | 61 - include/parted/timer.h | 66 - include/parted/unit.h | 101 - include/parted/vtoc.h | 387 - jni/Android.mk | 502 +- jni/Application.mk | 4 +- jni/PartitionManager/Alternatives.c | 127 - jni/PartitionManager/Debug.cpp | 108 +- jni/PartitionManager/GetState.cpp | 33 +- jni/PartitionManager/Help.cpp | 79 +- jni/PartitionManager/LanguageTools.cpp | 229 +- jni/PartitionManager/Languages.cpp | 434 +- jni/PartitionManager/ListPartitions.cpp | 168 +- jni/PartitionManager/PartedUtils.cpp | 137 - jni/PartitionManager/PartitionManager.cpp | 1307 +- jni/PartitionManager/PartitionTool.cpp | 102 +- jni/PartitionManager/Root.cpp | 20 +- jni/PartitionManager/Tools.cpp | 403 +- jni/PartitionManager/Version.cpp | 53 +- jni/e2fsprogs/Makefile | 382 - jni/e2fsprogs/lib/ext2fs/unix_io.c | 2 - jni/e2fsprogs/mke2fs/mke2fs.c | 144 +- jni/parted/COPYING | 675 - jni/parted/Makefile | 219 - jni/parted/lib/alloca.h | 73 - jni/parted/lib/assert.h | 323 - jni/parted/lib/config.h | 3270 - jni/parted/lib/configmake.h | 31 - jni/parted/lib/error.h | 619 - jni/parted/lib/fcntl.h | 988 - jni/parted/lib/inttypes.h | 1570 - jni/parted/lib/langinfo.h | 740 - jni/parted/lib/limits.h | 152 - jni/parted/lib/locale.h | 849 - jni/parted/lib/malloc/dynarray-skeleton.gl.h | 529 - jni/parted/lib/malloc/dynarray.gl.h | 173 - jni/parted/lib/malloc/scratch_buffer.gl.h | 133 - jni/parted/lib/pthread.h | 2619 - jni/parted/lib/sched.h | 622 - jni/parted/lib/stddef.h | 230 - jni/parted/lib/stdint.h | 752 - jni/parted/lib/stdio.h | 2651 - jni/parted/lib/stdlib.h | 2560 - jni/parted/lib/string.h | 1999 - jni/parted/lib/sys/random.h | 643 - jni/parted/lib/sys/stat.h | 1545 - jni/parted/lib/sys/types.h | 123 - jni/parted/lib/time.h | 1188 - jni/parted/lib/uchar.h | 1449 - jni/parted/lib/unictype.h | 1147 - jni/parted/lib/unistd.h | 3017 - jni/parted/lib/unitypes.h | 72 - jni/parted/lib/wchar.h | 2250 - jni/parted/lib/wctype.h | 1334 - jni/parted/libcharset/Android.mk | 40 - jni/parted/libcharset/Makefile | 68 - jni/parted/libcharset/lib/localcharset.c | 1159 - jni/parted/libcharset/lib/relocatable-stub.c | 29 - jni/parted/libgnulib/Android.mk | 97 - jni/parted/libgnulib/lib/argmatch.c | 293 - jni/parted/libgnulib/lib/basename-lgpl.c | 70 - jni/parted/libgnulib/lib/basename.c | 64 - jni/parted/libgnulib/lib/btowc.c | 47 - jni/parted/libgnulib/lib/c-ctype.c | 21 - jni/parted/libgnulib/lib/c-strcasecmp.c | 56 - jni/parted/libgnulib/lib/c-strncasecmp.c | 56 - jni/parted/libgnulib/lib/c32isprint.c | 26 - jni/parted/libgnulib/lib/canonicalize-lgpl.c | 469 - jni/parted/libgnulib/lib/cloexec.c | 83 - jni/parted/libgnulib/lib/close-stream.c | 77 - jni/parted/libgnulib/lib/closeout.c | 135 - jni/parted/libgnulib/lib/dirname-lgpl.c | 86 - jni/parted/libgnulib/lib/dirname.c | 38 - jni/parted/libgnulib/lib/error.c | 375 - jni/parted/libgnulib/lib/exitfail.c | 24 - jni/parted/libgnulib/lib/fcntl.c | 629 - jni/parted/libgnulib/lib/free.c | 53 - jni/parted/libgnulib/lib/getdtablesize.c | 124 - jni/parted/libgnulib/lib/hard-locale.c | 47 - jni/parted/libgnulib/lib/ialloc.c | 21 - jni/parted/libgnulib/lib/iswctype.c | 36 - jni/parted/libgnulib/lib/iswdigit.c | 26 - jni/parted/libgnulib/lib/iswpunct.c | 33 - jni/parted/libgnulib/lib/iswxdigit.c | 33 - jni/parted/libgnulib/lib/localcharset.c | 1159 - jni/parted/libgnulib/lib/long-options.c | 139 - .../libgnulib/lib/malloc/dynarray-skeleton.c | 528 - jni/parted/libgnulib/lib/malloca.c | 135 - jni/parted/libgnulib/lib/mbrtoc32.c | 288 - jni/parted/libgnulib/lib/mbrtowc.c | 161 - jni/parted/libgnulib/lib/mbszero.c | 23 - jni/parted/libgnulib/lib/nl_langinfo.c | 585 - jni/parted/libgnulib/lib/progname.c | 92 - jni/parted/libgnulib/lib/quotearg.c | 1084 - jni/parted/libgnulib/lib/rawmemchr.c | 135 - jni/parted/libgnulib/lib/regcomp.c | 3788 - jni/parted/libgnulib/lib/regex.c | 80 - jni/parted/libgnulib/lib/regex_internal.c | 1711 - jni/parted/libgnulib/lib/regexec.c | 4221 - jni/parted/libgnulib/lib/rpmatch.c | 175 - jni/parted/libgnulib/lib/safe-read.c | 71 - jni/parted/libgnulib/lib/setlocale-lock.c | 151 - .../libgnulib/lib/setlocale_null-unlocked.c | 149 - jni/parted/libgnulib/lib/setlocale_null.c | 299 - jni/parted/libgnulib/lib/stat-time.c | 21 - jni/parted/libgnulib/lib/stripslash.c | 45 - jni/parted/libgnulib/lib/tempname.c | 286 - jni/parted/libgnulib/lib/unictype/bitmap.h | 48 - .../libgnulib/lib/unictype/ctype_print.c | 32 - .../libgnulib/lib/unictype/ctype_print.h | 1202 - jni/parted/libgnulib/lib/version-etc-fsf.c | 30 - jni/parted/libgnulib/lib/version-etc.c | 262 - jni/parted/libgnulib/lib/wctype.c | 25 - jni/parted/libgnulib/lib/xalloc-die.c | 41 - jni/parted/libgnulib/lib/xmalloc.c | 340 - jni/parted/libgnulib/lib/xstrtol.c | 236 - jni/parted/libgnulib/lib/xstrtoll.c | 23 - jni/parted/libgnulib/lib/xstrtoul.c | 23 - jni/parted/libgnulib/lib/xstrtoull.c | 23 - jni/parted/libiconv/Android.mk | 44 - jni/parted/libiconv/Makefile | 107 - jni/parted/libiconv/icrt/Android.mk | 49 - jni/parted/libiconv/icrt/allocator.c | 22 - jni/parted/libiconv/icrt/areadlink.c | 56 - jni/parted/libiconv/icrt/binary-io.c | 39 - jni/parted/libiconv/icrt/careadlinkat.c | 184 - jni/parted/libiconv/icrt/fd-hook.c | 116 - jni/parted/libiconv/icrt/getprogname.c | 302 - jni/parted/libiconv/icrt/unistd.c | 22 - jni/parted/libiconv/icrt/xreadlink.c | 44 - jni/parted/libiconv/lib/aliases.h | 1777 - jni/parted/libiconv/lib/aliases2.h | 42 - jni/parted/libiconv/lib/aliases_aix.h | 18 - jni/parted/libiconv/lib/aliases_aix_sysaix.h | 24 - jni/parted/libiconv/lib/aliases_dos.h | 48 - jni/parted/libiconv/lib/aliases_extra.h | 12 - jni/parted/libiconv/lib/aliases_osf1.h | 2 - .../libiconv/lib/aliases_osf1_sysosf1.h | 4 - jni/parted/libiconv/lib/aliases_sysaix.h | 1814 - jni/parted/libiconv/lib/aliases_syshpux.h | 1819 - jni/parted/libiconv/lib/aliases_sysosf1.h | 1789 - jni/parted/libiconv/lib/aliases_syssolaris.h | 1799 - jni/parted/libiconv/lib/aliases_zos.h | 241 - jni/parted/libiconv/lib/armscii_8.h | 115 - jni/parted/libiconv/lib/ascii.h | 43 - jni/parted/libiconv/lib/atarist.h | 157 - jni/parted/libiconv/lib/big5.h | 4159 - jni/parted/libiconv/lib/big5_2003.h | 475 - jni/parted/libiconv/lib/big5hkscs1999.h | 196 - jni/parted/libiconv/lib/big5hkscs2001.h | 214 - jni/parted/libiconv/lib/big5hkscs2004.h | 230 - jni/parted/libiconv/lib/big5hkscs2008.h | 246 - jni/parted/libiconv/lib/c99.h | 124 - jni/parted/libiconv/lib/canonical.h | 111 - jni/parted/libiconv/lib/canonical_aix.h | 9 - .../libiconv/lib/canonical_aix_sysaix.h | 9 - jni/parted/libiconv/lib/canonical_dos.h | 15 - jni/parted/libiconv/lib/canonical_extra.h | 7 - jni/parted/libiconv/lib/canonical_local.h | 2 - .../libiconv/lib/canonical_local_sysaix.h | 2 - .../libiconv/lib/canonical_local_syshpux.h | 2 - .../libiconv/lib/canonical_local_sysosf1.h | 2 - .../libiconv/lib/canonical_local_syssolaris.h | 2 - jni/parted/libiconv/lib/canonical_osf1.h | 2 - .../libiconv/lib/canonical_osf1_sysosf1.h | 2 - jni/parted/libiconv/lib/canonical_sysaix.h | 111 - jni/parted/libiconv/lib/canonical_syshpux.h | 111 - jni/parted/libiconv/lib/canonical_sysosf1.h | 111 - .../libiconv/lib/canonical_syssolaris.h | 111 - jni/parted/libiconv/lib/canonical_zos.h | 53 - jni/parted/libiconv/lib/ces_big5.h | 69 - jni/parted/libiconv/lib/ces_gbk.h | 64 - jni/parted/libiconv/lib/cjk_variants.h | 4240 - jni/parted/libiconv/lib/cns11643.h | 40 - jni/parted/libiconv/lib/cns11643_1.h | 892 - jni/parted/libiconv/lib/cns11643_15.h | 1082 - jni/parted/libiconv/lib/cns11643_2.h | 1111 - jni/parted/libiconv/lib/cns11643_3.h | 973 - jni/parted/libiconv/lib/cns11643_4.h | 60 - jni/parted/libiconv/lib/cns11643_4a.h | 459 - jni/parted/libiconv/lib/cns11643_4b.h | 667 - jni/parted/libiconv/lib/cns11643_5.h | 1277 - jni/parted/libiconv/lib/cns11643_6.h | 967 - jni/parted/libiconv/lib/cns11643_7.h | 987 - jni/parted/libiconv/lib/cns11643_inv.h | 15411 -- jni/parted/libiconv/lib/config.h | 1545 - jni/parted/libiconv/lib/converters.h | 359 - jni/parted/libiconv/lib/cp1046.h | 156 - jni/parted/libiconv/lib/cp1124.h | 101 - jni/parted/libiconv/lib/cp1125.h | 128 - jni/parted/libiconv/lib/cp1129.h | 120 - jni/parted/libiconv/lib/cp1131.h | 131 - jni/parted/libiconv/lib/cp1133.h | 109 - jni/parted/libiconv/lib/cp1161.h | 88 - jni/parted/libiconv/lib/cp1162.h | 69 - jni/parted/libiconv/lib/cp1163.h | 62 - jni/parted/libiconv/lib/cp1250.h | 138 - jni/parted/libiconv/lib/cp1251.h | 130 - jni/parted/libiconv/lib/cp1252.h | 102 - jni/parted/libiconv/lib/cp1253.h | 121 - jni/parted/libiconv/lib/cp1254.h | 145 - jni/parted/libiconv/lib/cp1255.h | 379 - jni/parted/libiconv/lib/cp1256.h | 152 - jni/parted/libiconv/lib/cp1257.h | 138 - jni/parted/libiconv/lib/cp1258.h | 287 - jni/parted/libiconv/lib/cp437.h | 155 - jni/parted/libiconv/lib/cp50221_0208_ext.h | 149 - jni/parted/libiconv/lib/cp50221_0212_ext.h | 212 - jni/parted/libiconv/lib/cp737.h | 140 - jni/parted/libiconv/lib/cp775.h | 141 - jni/parted/libiconv/lib/cp850.h | 123 - jni/parted/libiconv/lib/cp852.h | 142 - jni/parted/libiconv/lib/cp853.h | 150 - jni/parted/libiconv/lib/cp855.h | 127 - jni/parted/libiconv/lib/cp856.h | 133 - jni/parted/libiconv/lib/cp857.h | 137 - jni/parted/libiconv/lib/cp858.h | 60 - jni/parted/libiconv/lib/cp860.h | 148 - jni/parted/libiconv/lib/cp861.h | 155 - jni/parted/libiconv/lib/cp862.h | 154 - jni/parted/libiconv/lib/cp863.h | 155 - jni/parted/libiconv/lib/cp864.h | 187 - jni/parted/libiconv/lib/cp865.h | 155 - jni/parted/libiconv/lib/cp866.h | 124 - jni/parted/libiconv/lib/cp869.h | 136 - jni/parted/libiconv/lib/cp874.h | 110 - jni/parted/libiconv/lib/cp922.h | 98 - jni/parted/libiconv/lib/cp932.h | 239 - jni/parted/libiconv/lib/cp932ext.h | 708 - jni/parted/libiconv/lib/cp936.h | 125 - jni/parted/libiconv/lib/cp936ext.h | 98 - jni/parted/libiconv/lib/cp943.h | 28 - jni/parted/libiconv/lib/cp949.h | 127 - jni/parted/libiconv/lib/cp950.h | 283 - jni/parted/libiconv/lib/cp950ext.h | 160 - jni/parted/libiconv/lib/dec_hanyu.h | 114 - jni/parted/libiconv/lib/dec_kanji.h | 70 - jni/parted/libiconv/lib/ebcdic037.h | 129 - jni/parted/libiconv/lib/ebcdic1025.h | 141 - jni/parted/libiconv/lib/ebcdic1026.h | 142 - jni/parted/libiconv/lib/ebcdic1047.h | 129 - jni/parted/libiconv/lib/ebcdic1097.h | 186 - jni/parted/libiconv/lib/ebcdic1112.h | 151 - jni/parted/libiconv/lib/ebcdic1122.h | 137 - jni/parted/libiconv/lib/ebcdic1123.h | 148 - jni/parted/libiconv/lib/ebcdic1130.h | 164 - jni/parted/libiconv/lib/ebcdic1132.h | 145 - jni/parted/libiconv/lib/ebcdic1137.h | 146 - jni/parted/libiconv/lib/ebcdic1140.h | 131 - jni/parted/libiconv/lib/ebcdic1141.h | 131 - jni/parted/libiconv/lib/ebcdic1142.h | 131 - jni/parted/libiconv/lib/ebcdic1143.h | 131 - jni/parted/libiconv/lib/ebcdic1144.h | 131 - jni/parted/libiconv/lib/ebcdic1145.h | 131 - jni/parted/libiconv/lib/ebcdic1146.h | 131 - jni/parted/libiconv/lib/ebcdic1147.h | 131 - jni/parted/libiconv/lib/ebcdic1148.h | 131 - jni/parted/libiconv/lib/ebcdic1149.h | 131 - jni/parted/libiconv/lib/ebcdic1153.h | 160 - jni/parted/libiconv/lib/ebcdic1154.h | 143 - jni/parted/libiconv/lib/ebcdic1155.h | 148 - jni/parted/libiconv/lib/ebcdic1156.h | 157 - jni/parted/libiconv/lib/ebcdic1157.h | 143 - jni/parted/libiconv/lib/ebcdic1158.h | 154 - jni/parted/libiconv/lib/ebcdic1160.h | 145 - jni/parted/libiconv/lib/ebcdic1164.h | 171 - jni/parted/libiconv/lib/ebcdic1165.h | 160 - jni/parted/libiconv/lib/ebcdic1166.h | 161 - jni/parted/libiconv/lib/ebcdic12712.h | 164 - jni/parted/libiconv/lib/ebcdic16804.h | 178 - jni/parted/libiconv/lib/ebcdic273.h | 129 - jni/parted/libiconv/lib/ebcdic277.h | 129 - jni/parted/libiconv/lib/ebcdic278.h | 129 - jni/parted/libiconv/lib/ebcdic280.h | 129 - jni/parted/libiconv/lib/ebcdic282.h | 129 - jni/parted/libiconv/lib/ebcdic284.h | 129 - jni/parted/libiconv/lib/ebcdic285.h | 129 - jni/parted/libiconv/lib/ebcdic297.h | 129 - jni/parted/libiconv/lib/ebcdic423.h | 147 - jni/parted/libiconv/lib/ebcdic424.h | 150 - jni/parted/libiconv/lib/ebcdic425.h | 164 - jni/parted/libiconv/lib/ebcdic4971.h | 159 - jni/parted/libiconv/lib/ebcdic500.h | 129 - jni/parted/libiconv/lib/ebcdic838.h | 135 - jni/parted/libiconv/lib/ebcdic870.h | 154 - jni/parted/libiconv/lib/ebcdic871.h | 129 - jni/parted/libiconv/lib/ebcdic875.h | 145 - jni/parted/libiconv/lib/ebcdic880.h | 137 - jni/parted/libiconv/lib/ebcdic905.h | 157 - jni/parted/libiconv/lib/ebcdic924.h | 141 - jni/parted/libiconv/lib/encodings.def | 1040 - jni/parted/libiconv/lib/encodings_aix.def | 96 - jni/parted/libiconv/lib/encodings_dos.def | 126 - jni/parted/libiconv/lib/encodings_extra.def | 56 - jni/parted/libiconv/lib/encodings_local.def | 28 - jni/parted/libiconv/lib/encodings_osf1.def | 36 - jni/parted/libiconv/lib/encodings_zos.def | 471 - jni/parted/libiconv/lib/euc_cn.h | 71 - jni/parted/libiconv/lib/euc_jisx0213.h | 267 - jni/parted/libiconv/lib/euc_jp.h | 190 - jni/parted/libiconv/lib/euc_kr.h | 73 - jni/parted/libiconv/lib/euc_tw.h | 115 - jni/parted/libiconv/lib/flags.h | 211 - jni/parted/libiconv/lib/flushwc.h | 36 - jni/parted/libiconv/lib/gb12345.h | 66 - jni/parted/libiconv/lib/gb12345ext.h | 1795 - jni/parted/libiconv/lib/gb18030.h | 380 - jni/parted/libiconv/lib/gb18030ext.h | 327 - jni/parted/libiconv/lib/gb18030uni.h | 256 - jni/parted/libiconv/lib/gb2312.h | 2570 - jni/parted/libiconv/lib/gbk.h | 168 - jni/parted/libiconv/lib/gbkext1.h | 852 - jni/parted/libiconv/lib/gbkext2.h | 1173 - jni/parted/libiconv/lib/gbkext_inv.h | 2342 - jni/parted/libiconv/lib/georgian_academy.h | 105 - jni/parted/libiconv/lib/georgian_ps.h | 122 - jni/parted/libiconv/lib/hkscs1999.h | 3004 - jni/parted/libiconv/lib/hkscs2001.h | 682 - jni/parted/libiconv/lib/hkscs2004.h | 678 - jni/parted/libiconv/lib/hkscs2008.h | 466 - jni/parted/libiconv/lib/hp_roman8.h | 118 - jni/parted/libiconv/lib/hz.h | 163 - jni/parted/libiconv/lib/iconv.c | 629 - jni/parted/libiconv/lib/iconv_open1.h | 228 - jni/parted/libiconv/lib/iconv_open2.h | 88 - jni/parted/libiconv/lib/iso2022_cn.h | 323 - jni/parted/libiconv/lib/iso2022_cnext.h | 589 - jni/parted/libiconv/lib/iso2022_jp.h | 215 - jni/parted/libiconv/lib/iso2022_jp1.h | 263 - jni/parted/libiconv/lib/iso2022_jp2.h | 692 - jni/parted/libiconv/lib/iso2022_jp3.h | 537 - jni/parted/libiconv/lib/iso2022_jpms.h | 445 - jni/parted/libiconv/lib/iso2022_kr.h | 221 - jni/parted/libiconv/lib/iso646_cn.h | 57 - jni/parted/libiconv/lib/iso646_jp.h | 59 - jni/parted/libiconv/lib/iso8859_1.h | 40 - jni/parted/libiconv/lib/iso8859_10.h | 105 - jni/parted/libiconv/lib/iso8859_11.h | 51 - jni/parted/libiconv/lib/iso8859_13.h | 108 - jni/parted/libiconv/lib/iso8859_14.h | 126 - jni/parted/libiconv/lib/iso8859_15.h | 80 - jni/parted/libiconv/lib/iso8859_16.h | 115 - jni/parted/libiconv/lib/iso8859_2.h | 111 - jni/parted/libiconv/lib/iso8859_3.h | 117 - jni/parted/libiconv/lib/iso8859_4.h | 111 - jni/parted/libiconv/lib/iso8859_5.h | 94 - jni/parted/libiconv/lib/iso8859_6.h | 97 - jni/parted/libiconv/lib/iso8859_7.h | 110 - jni/parted/libiconv/lib/iso8859_8.h | 106 - jni/parted/libiconv/lib/iso8859_9.h | 84 - jni/parted/libiconv/lib/isoir165.h | 158 - jni/parted/libiconv/lib/isoir165ext.h | 799 - jni/parted/libiconv/lib/java.h | 136 - jni/parted/libiconv/lib/jisx0201.h | 65 - jni/parted/libiconv/lib/jisx0208.h | 2414 - jni/parted/libiconv/lib/jisx0212.h | 2188 - jni/parted/libiconv/lib/jisx0213.h | 5923 - jni/parted/libiconv/lib/johab.h | 138 - jni/parted/libiconv/lib/johab_hangul.h | 261 - jni/parted/libiconv/lib/koi8_r.h | 152 - jni/parted/libiconv/lib/koi8_ru.h | 158 - jni/parted/libiconv/lib/koi8_t.h | 142 - jni/parted/libiconv/lib/koi8_u.h | 160 - jni/parted/libiconv/lib/ksc5601.h | 3021 - jni/parted/libiconv/lib/libcharset.h | 45 - jni/parted/libiconv/lib/localcharset.h | 145 - jni/parted/libiconv/lib/loop_unicode.h | 526 - jni/parted/libiconv/lib/loop_wchar.h | 473 - jni/parted/libiconv/lib/loops.h | 24 - jni/parted/libiconv/lib/mac_arabic.h | 131 - jni/parted/libiconv/lib/mac_centraleurope.h | 138 - jni/parted/libiconv/lib/mac_croatian.h | 164 - jni/parted/libiconv/lib/mac_cyrillic.h | 135 - jni/parted/libiconv/lib/mac_greek.h | 134 - jni/parted/libiconv/lib/mac_hebrew.h | 131 - jni/parted/libiconv/lib/mac_iceland.h | 161 - jni/parted/libiconv/lib/mac_roman.h | 166 - jni/parted/libiconv/lib/mac_romania.h | 164 - jni/parted/libiconv/lib/mac_thai.h | 127 - jni/parted/libiconv/lib/mac_turkish.h | 162 - jni/parted/libiconv/lib/mac_ukraine.h | 142 - jni/parted/libiconv/lib/mulelao.h | 95 - jni/parted/libiconv/lib/nextstep.h | 140 - jni/parted/libiconv/lib/pt154.h | 117 - jni/parted/libiconv/lib/relocatable.c | 588 - jni/parted/libiconv/lib/relocatable.h | 101 - jni/parted/libiconv/lib/riscos1.h | 95 - jni/parted/libiconv/lib/rk1048.h | 144 - jni/parted/libiconv/lib/shift_jisx0213.h | 309 - jni/parted/libiconv/lib/sjis.h | 131 - jni/parted/libiconv/lib/stamp-h2 | 1 - jni/parted/libiconv/lib/tcvn.h | 290 - jni/parted/libiconv/lib/tds565.h | 106 - jni/parted/libiconv/lib/tis620.h | 51 - jni/parted/libiconv/lib/translit.def | 3917 - jni/parted/libiconv/lib/translit.h | 4410 - jni/parted/libiconv/lib/ucs2.h | 67 - jni/parted/libiconv/lib/ucs2be.h | 50 - jni/parted/libiconv/lib/ucs2internal.h | 50 - jni/parted/libiconv/lib/ucs2le.h | 50 - jni/parted/libiconv/lib/ucs2swapped.h | 59 - jni/parted/libiconv/lib/ucs4.h | 68 - jni/parted/libiconv/lib/ucs4be.h | 45 - jni/parted/libiconv/lib/ucs4internal.h | 42 - jni/parted/libiconv/lib/ucs4le.h | 45 - jni/parted/libiconv/lib/ucs4swapped.h | 52 - jni/parted/libiconv/lib/uhc_1.h | 1724 - jni/parted/libiconv/lib/uhc_2.h | 1021 - jni/parted/libiconv/lib/utf16.h | 112 - jni/parted/libiconv/lib/utf16be.h | 79 - jni/parted/libiconv/lib/utf16le.h | 79 - jni/parted/libiconv/lib/utf32.h | 91 - jni/parted/libiconv/lib/utf32be.h | 54 - jni/parted/libiconv/lib/utf32le.h | 54 - jni/parted/libiconv/lib/utf7.h | 354 - jni/parted/libiconv/lib/utf8.h | 98 - jni/parted/libiconv/lib/vietcomb.h | 465 - jni/parted/libiconv/lib/viscii.h | 140 - jni/parted/libiconv/srclib/_Noreturn.h | 45 - jni/parted/libiconv/srclib/alloca.h | 69 - jni/parted/libiconv/srclib/allocator.h | 58 - jni/parted/libiconv/srclib/areadlink.h | 37 - jni/parted/libiconv/srclib/arg-nonnull.h | 26 - jni/parted/libiconv/srclib/basename-lgpl.h | 78 - jni/parted/libiconv/srclib/binary-io.h | 77 - jni/parted/libiconv/srclib/c++defs.h | 331 - jni/parted/libiconv/srclib/c-ctype.c | 21 - jni/parted/libiconv/srclib/c-ctype.h | 366 - jni/parted/libiconv/srclib/careadlinkat.h | 67 - jni/parted/libiconv/srclib/cdefs.h | 707 - jni/parted/libiconv/srclib/cloexec.h | 36 - jni/parted/libiconv/srclib/close.c | 75 - jni/parted/libiconv/srclib/dup2.c | 189 - jni/parted/libiconv/srclib/eloop-threshold.h | 83 - jni/parted/libiconv/srclib/error.c | 411 - jni/parted/libiconv/srclib/error.h | 66 - jni/parted/libiconv/srclib/fcntl.h | 952 - jni/parted/libiconv/srclib/fd-hook.h | 119 - jni/parted/libiconv/srclib/filename.h | 112 - jni/parted/libiconv/srclib/fstat.c | 94 - jni/parted/libiconv/srclib/getprogname.h | 40 - jni/parted/libiconv/srclib/gettext.h | 300 - jni/parted/libiconv/srclib/idx.h | 134 - jni/parted/libiconv/srclib/intprops.h | 642 - jni/parted/libiconv/srclib/inttypes.h | 1509 - jni/parted/libiconv/srclib/libc-config.h | 202 - jni/parted/libiconv/srclib/limits.h | 132 - jni/parted/libiconv/srclib/localcharset.h | 137 - jni/parted/libiconv/srclib/malloc.c | 51 - jni/parted/libiconv/srclib/malloc/.dirstamp | 0 .../libiconv/srclib/malloc/scratch_buffer.h | 151 - .../srclib/malloc/scratch_buffer_dupfree.c | 41 - .../srclib/malloc/scratch_buffer_grow.c | 56 - .../malloc/scratch_buffer_grow_preserve.c | 67 - .../malloc/scratch_buffer_set_array_size.c | 64 - jni/parted/libiconv/srclib/malloca.h | 126 - jni/parted/libiconv/srclib/mempcpy.c | 33 - jni/parted/libiconv/srclib/minmax.h | 60 - jni/parted/libiconv/srclib/msvc-inval.c | 129 - jni/parted/libiconv/srclib/msvc-inval.h | 222 - jni/parted/libiconv/srclib/msvc-nothrow.c | 51 - jni/parted/libiconv/srclib/msvc-nothrow.h | 43 - jni/parted/libiconv/srclib/open.c | 209 - jni/parted/libiconv/srclib/pathmax.h | 83 - jni/parted/libiconv/srclib/progname.h | 62 - jni/parted/libiconv/srclib/progreloc.c | 511 - jni/parted/libiconv/srclib/raise.c | 83 - jni/parted/libiconv/srclib/read.c | 95 - jni/parted/libiconv/srclib/readlink.c | 104 - jni/parted/libiconv/srclib/realloc.c | 63 - jni/parted/libiconv/srclib/relocatable.c | 603 - jni/parted/libiconv/srclib/relocatable.h | 104 - jni/parted/libiconv/srclib/relocwrapper.c | 224 - jni/parted/libiconv/srclib/safe-read.h | 47 - jni/parted/libiconv/srclib/scratch_buffer.h | 127 - jni/parted/libiconv/srclib/setenv.c | 390 - jni/parted/libiconv/srclib/signal.h | 994 - jni/parted/libiconv/srclib/sigprocmask.c | 349 - jni/parted/libiconv/srclib/stat-time.h | 252 - jni/parted/libiconv/srclib/stat-w32.c | 461 - jni/parted/libiconv/srclib/stat-w32.h | 37 - jni/parted/libiconv/srclib/stat.c | 440 - jni/parted/libiconv/srclib/stdint.h | 741 - jni/parted/libiconv/srclib/stdio-read.c | 168 - jni/parted/libiconv/srclib/stdio-write.c | 206 - jni/parted/libiconv/srclib/stdio.h | 2218 - jni/parted/libiconv/srclib/stdlib.h | 2111 - jni/parted/libiconv/srclib/streq.h | 176 - .../libiconv/srclib/strerror-override.c | 306 - .../libiconv/srclib/strerror-override.h | 57 - jni/parted/libiconv/srclib/strerror.c | 71 - jni/parted/libiconv/srclib/string.h | 1803 - jni/parted/libiconv/srclib/sys-limits.h | 42 - jni/parted/libiconv/srclib/sys/stat.h | 1435 - jni/parted/libiconv/srclib/sys/types.h | 107 - jni/parted/libiconv/srclib/time.h | 959 - jni/parted/libiconv/srclib/unictype/bitmap.h | 48 - jni/parted/libiconv/srclib/unistd.h | 2834 - jni/parted/libiconv/srclib/unitypes.h | 62 - jni/parted/libiconv/srclib/uniwidth.h | 73 - jni/parted/libiconv/srclib/uniwidth/.dirstamp | 0 jni/parted/libiconv/srclib/uniwidth/cjk.h | 37 - jni/parted/libiconv/srclib/uniwidth/width.c | 95 - jni/parted/libiconv/srclib/uniwidth/width0.h | 485 - jni/parted/libiconv/srclib/uniwidth/width2.h | 549 - jni/parted/libiconv/srclib/unlocked-io.h | 136 - jni/parted/libiconv/srclib/verify.h | 318 - jni/parted/libiconv/srclib/warn-on-use.h | 149 - jni/parted/libiconv/srclib/wchar.h | 1845 - jni/parted/libiconv/srclib/xalloc-oversized.h | 65 - jni/parted/libiconv/srclib/xalloc.h | 158 - jni/parted/libiconv/srclib/xreadlink.h | 29 - jni/parted/libparted/Android.mk | 115 - jni/parted/libparted/ChangeLog.0 | 255 - jni/parted/libparted/arch/linux.c | 3413 - jni/parted/libparted/arch/linux.h | 44 - jni/parted/libparted/architecture.c | 43 - jni/parted/libparted/architecture.h | 38 - jni/parted/libparted/cs/constraint.c | 538 - jni/parted/libparted/cs/geom.c | 487 - jni/parted/libparted/cs/natmath.c | 481 - jni/parted/libparted/debug.c | 115 - jni/parted/libparted/device.c | 562 - jni/parted/libparted/disk.c | 2668 - jni/parted/libparted/exception.c | 313 - jni/parted/libparted/filesys.c | 295 - jni/parted/libparted/fs/amiga/a-interface.c | 88 - jni/parted/libparted/fs/amiga/affs.c | 292 - jni/parted/libparted/fs/amiga/affs.h | 19 - jni/parted/libparted/fs/amiga/amiga.c | 351 - jni/parted/libparted/fs/amiga/amiga.h | 70 - jni/parted/libparted/fs/amiga/apfs.c | 128 - jni/parted/libparted/fs/amiga/apfs.h | 18 - jni/parted/libparted/fs/amiga/asfs.c | 130 - jni/parted/libparted/fs/amiga/asfs.h | 18 - jni/parted/libparted/fs/btrfs/btrfs.c | 77 - jni/parted/libparted/fs/ext2/ext2.h | 79 - jni/parted/libparted/fs/ext2/ext2_fs.h | 329 - jni/parted/libparted/fs/ext2/interface.c | 163 - jni/parted/libparted/fs/f2fs/f2fs.c | 60 - jni/parted/libparted/fs/f2fs/f2fs.h | 57 - jni/parted/libparted/fs/fat/bootsector.c | 271 - jni/parted/libparted/fs/fat/bootsector.h | 126 - jni/parted/libparted/fs/fat/count.h | 46 - jni/parted/libparted/fs/fat/fat.c | 162 - jni/parted/libparted/fs/fat/fat.h | 163 - jni/parted/libparted/fs/hfs/DOC | 92 - jni/parted/libparted/fs/hfs/HISTORY | 115 - jni/parted/libparted/fs/hfs/TODO | 27 - jni/parted/libparted/fs/hfs/hfs.c | 92 - jni/parted/libparted/fs/hfs/hfs.h | 648 - jni/parted/libparted/fs/hfs/probe.c | 238 - jni/parted/libparted/fs/hfs/probe.h | 44 - jni/parted/libparted/fs/jfs/jfs.c | 80 - jni/parted/libparted/fs/jfs/jfs_superblock.h | 144 - jni/parted/libparted/fs/jfs/jfs_types.h | 527 - .../libparted/fs/linux_swap/linux_swap.c | 396 - jni/parted/libparted/fs/nilfs2/nilfs2.c | 155 - jni/parted/libparted/fs/ntfs/ntfs.c | 73 - jni/parted/libparted/fs/r/fat/bootsector.c | 441 - jni/parted/libparted/fs/r/fat/bootsector.h | 130 - jni/parted/libparted/fs/r/fat/calc.c | 433 - jni/parted/libparted/fs/r/fat/calc.h | 77 - jni/parted/libparted/fs/r/fat/clstdup.c | 423 - jni/parted/libparted/fs/r/fat/clstdup.h | 28 - jni/parted/libparted/fs/r/fat/context.c | 261 - jni/parted/libparted/fs/r/fat/context.h | 70 - jni/parted/libparted/fs/r/fat/count.c | 319 - jni/parted/libparted/fs/r/fat/count.h | 46 - jni/parted/libparted/fs/r/fat/fat.c | 652 - jni/parted/libparted/fs/r/fat/fat.h | 159 - jni/parted/libparted/fs/r/fat/fatio.c | 150 - jni/parted/libparted/fs/r/fat/fatio.h | 49 - jni/parted/libparted/fs/r/fat/resize.c | 876 - jni/parted/libparted/fs/r/fat/table.c | 481 - jni/parted/libparted/fs/r/fat/table.h | 74 - jni/parted/libparted/fs/r/fat/traverse.c | 368 - jni/parted/libparted/fs/r/fat/traverse.h | 75 - jni/parted/libparted/fs/r/filesys.c | 320 - jni/parted/libparted/fs/r/hfs/advfs.c | 332 - jni/parted/libparted/fs/r/hfs/advfs.h | 49 - jni/parted/libparted/fs/r/hfs/advfs_plus.c | 385 - jni/parted/libparted/fs/r/hfs/advfs_plus.h | 52 - jni/parted/libparted/fs/r/hfs/cache.c | 239 - jni/parted/libparted/fs/r/hfs/cache.h | 118 - .../libparted/fs/r/hfs/file-16771e92.o.tmp | 0 jni/parted/libparted/fs/r/hfs/file.c | 229 - jni/parted/libparted/fs/r/hfs/file.h | 42 - jni/parted/libparted/fs/r/hfs/file_plus.c | 274 - jni/parted/libparted/fs/r/hfs/file_plus.h | 61 - jni/parted/libparted/fs/r/hfs/hfs.c | 1166 - jni/parted/libparted/fs/r/hfs/hfs.h | 648 - jni/parted/libparted/fs/r/hfs/journal.c | 392 - jni/parted/libparted/fs/r/hfs/journal.h | 45 - jni/parted/libparted/fs/r/hfs/probe.c | 99 - jni/parted/libparted/fs/r/hfs/probe.h | 35 - jni/parted/libparted/fs/r/hfs/reloc.c | 676 - jni/parted/libparted/fs/r/hfs/reloc.h | 36 - jni/parted/libparted/fs/r/hfs/reloc_plus.c | 948 - jni/parted/libparted/fs/r/hfs/reloc_plus.h | 37 - jni/parted/libparted/fs/reiserfs/reiserfs.c | 94 - jni/parted/libparted/fs/reiserfs/reiserfs.h | 109 - jni/parted/libparted/fs/udf/udf.c | 175 - jni/parted/libparted/fs/ufs/ufs.c | 281 - jni/parted/libparted/fs/xfs/platform_defs.h | 109 - jni/parted/libparted/fs/xfs/xfs.c | 87 - jni/parted/libparted/fs/xfs/xfs_sb.h | 489 - jni/parted/libparted/fs/xfs/xfs_types.h | 302 - jni/parted/libparted/labels/aix.c | 237 - jni/parted/libparted/labels/atari.c | 1975 - jni/parted/libparted/labels/bsd.c | 654 - jni/parted/libparted/labels/dasd.c | 1032 - jni/parted/libparted/labels/dos.c | 2612 - jni/parted/libparted/labels/dvh.c | 896 - jni/parted/libparted/labels/dvh.h | 178 - jni/parted/libparted/labels/efi_crc32.c | 126 - jni/parted/libparted/labels/fdasd.c | 1442 - jni/parted/libparted/labels/gpt.c | 1941 - jni/parted/libparted/labels/loop.c | 316 - jni/parted/libparted/labels/mac.c | 1604 - jni/parted/libparted/labels/misc.h | 48 - jni/parted/libparted/labels/pc98.c | 813 - jni/parted/libparted/labels/pt-common.h | 55 - jni/parted/libparted/labels/pt-limit.c | 163 - jni/parted/libparted/labels/pt-tools.c | 186 - jni/parted/libparted/labels/pt-tools.h | 31 - jni/parted/libparted/labels/rdb.c | 1167 - jni/parted/libparted/labels/sun.c | 910 - jni/parted/libparted/labels/vtoc.c | 1329 - jni/parted/libparted/libparted.c | 262 - jni/parted/libparted/mbr.s | 85 - jni/parted/libparted/timer.c | 244 - jni/parted/libparted/unit.c | 586 - jni/parted/parted/command.c | 143 - jni/parted/parted/command.h | 48 - jni/parted/parted/jsonwrt.c | 225 - jni/parted/parted/jsonwrt.h | 46 - jni/parted/parted/parted.c | 2699 - jni/parted/parted/strlist.c | 582 - jni/parted/parted/strlist.h | 66 - jni/parted/parted/table.c | 245 - jni/parted/parted/table.h | 52 - jni/parted/parted/ui.c | 1715 - jni/parted/parted/ui.h | 98 - jni/parted/parted/version.c | 2 - jni/parted/parted/version.h | 1 - pmt-termux.sh | 345 +- 1292 files changed, 2823 insertions(+), 500876 deletions(-) delete mode 100755 include/PartitionManager/Alternatives.h delete mode 100755 include/PartitionManager/LanguageConfigs.h delete mode 100755 include/PartitionManager/Parted.h create mode 100755 include/e2fsprogs/blkid/blkid.h delete mode 100755 include/libcharset/config.h delete mode 100755 include/libcharset/export.h delete mode 100755 include/libcharset/libcharset.h delete mode 100755 include/libcharset/localcharset.h delete mode 100755 include/libgnulib/Makefile delete mode 100755 include/libgnulib/README delete mode 100755 include/libgnulib/_Noreturn.h delete mode 100755 include/libgnulib/acl-internal.h delete mode 100755 include/libgnulib/acl.h delete mode 100755 include/libgnulib/af_alg.h delete mode 100755 include/libgnulib/alignalloc.h delete mode 100755 include/libgnulib/aligned-malloc.h delete mode 100755 include/libgnulib/alignof.h delete mode 100755 include/libgnulib/allocator.h delete mode 100755 include/libgnulib/amemxfrm.h delete mode 100755 include/libgnulib/arcfour.h delete mode 100755 include/libgnulib/arctwo.h delete mode 100755 include/libgnulib/areadlink.h delete mode 100755 include/libgnulib/arg-nonnull.h delete mode 100755 include/libgnulib/argmatch.h delete mode 100755 include/libgnulib/argp-fmtstream.h delete mode 100755 include/libgnulib/argp-namefrob.h delete mode 100755 include/libgnulib/argp-version-etc.h delete mode 100755 include/libgnulib/argp.h delete mode 100755 include/libgnulib/argv-iter.h delete mode 100755 include/libgnulib/array-mergesort.h delete mode 100755 include/libgnulib/assure.h delete mode 100755 include/libgnulib/astrxfrm.h delete mode 100755 include/libgnulib/asyncsafe-spin.h delete mode 100755 include/libgnulib/attribute.h delete mode 100755 include/libgnulib/backup-internal.h delete mode 100755 include/libgnulib/backupfile.h delete mode 100755 include/libgnulib/base32.h delete mode 100755 include/libgnulib/base64.h delete mode 100755 include/libgnulib/basename-lgpl.h delete mode 100755 include/libgnulib/bcp47.h delete mode 100755 include/libgnulib/binary-io.h delete mode 100755 include/libgnulib/bitrotate.h delete mode 100755 include/libgnulib/bitset.h delete mode 100755 include/libgnulib/bitset/array.h delete mode 100755 include/libgnulib/bitset/base.h delete mode 100755 include/libgnulib/bitset/list.h delete mode 100755 include/libgnulib/bitset/stats.h delete mode 100755 include/libgnulib/bitset/table.h delete mode 100755 include/libgnulib/bitset/vector.h delete mode 100755 include/libgnulib/bitsetv.h delete mode 100755 include/libgnulib/boot-time-aux.h delete mode 100755 include/libgnulib/boot-time.h delete mode 100755 include/libgnulib/c++defs.h delete mode 100755 include/libgnulib/c-ctype.h delete mode 100755 include/libgnulib/c-snprintf.h delete mode 100755 include/libgnulib/c-stack.h delete mode 100755 include/libgnulib/c-strcase.h delete mode 100755 include/libgnulib/c-strcaseeq.h delete mode 100755 include/libgnulib/c-strcasestr.h delete mode 100755 include/libgnulib/c-strstr.h delete mode 100755 include/libgnulib/c-strtod.h delete mode 100755 include/libgnulib/c-vasnprintf.h delete mode 100755 include/libgnulib/c-vasprintf.h delete mode 100755 include/libgnulib/c-vsnprintf.h delete mode 100755 include/libgnulib/c-xvasprintf.h delete mode 100755 include/libgnulib/c32is-impl.h delete mode 100755 include/libgnulib/c32to-impl.h delete mode 100755 include/libgnulib/canon-host.h delete mode 100755 include/libgnulib/canonicalize.h delete mode 100755 include/libgnulib/careadlinkat.h delete mode 100755 include/libgnulib/cdefs.h delete mode 100755 include/libgnulib/chdir-long.h delete mode 100755 include/libgnulib/check-version.h delete mode 100755 include/libgnulib/classpath.h delete mode 100755 include/libgnulib/clean-temp-private.h delete mode 100755 include/libgnulib/clean-temp-simple.h delete mode 100755 include/libgnulib/clean-temp.h delete mode 100755 include/libgnulib/cloexec.h delete mode 100755 include/libgnulib/close-stream.h delete mode 100755 include/libgnulib/closein.h delete mode 100755 include/libgnulib/closeout.h delete mode 100755 include/libgnulib/concat-filename.h delete mode 100755 include/libgnulib/copy-file.h delete mode 100755 include/libgnulib/count-leading-zeros.h delete mode 100755 include/libgnulib/count-one-bits.h delete mode 100755 include/libgnulib/count-trailing-zeros.h delete mode 100755 include/libgnulib/crc.h delete mode 100755 include/libgnulib/csharpcomp.h delete mode 100755 include/libgnulib/csharpexec.h delete mode 100755 include/libgnulib/cycle-check.h delete mode 100755 include/libgnulib/cygpath.h delete mode 100755 include/libgnulib/des.h delete mode 100755 include/libgnulib/dev-ino.h delete mode 100755 include/libgnulib/dfa.h delete mode 100755 include/libgnulib/di-set.h delete mode 100755 include/libgnulib/diffseq.h delete mode 100755 include/libgnulib/dirchownmod.h delete mode 100755 include/libgnulib/dirent--.h delete mode 100755 include/libgnulib/dirent-private.h delete mode 100755 include/libgnulib/dirent-safer.h delete mode 100755 include/libgnulib/dirname.h delete mode 100755 include/libgnulib/dosname.h delete mode 100755 include/libgnulib/dynarray.h delete mode 100755 include/libgnulib/eealloc.h delete mode 100755 include/libgnulib/eloop-threshold.h delete mode 100755 include/libgnulib/exclude.h delete mode 100755 include/libgnulib/execute.h delete mode 100755 include/libgnulib/exitfail.h delete mode 100755 include/libgnulib/fatal-signal.h delete mode 100755 include/libgnulib/fbufmode.h delete mode 100755 include/libgnulib/fcntl--.h delete mode 100755 include/libgnulib/fcntl-safer.h delete mode 100755 include/libgnulib/fd-hook.h delete mode 100755 include/libgnulib/fenv-private.h delete mode 100755 include/libgnulib/ffsl.h delete mode 100755 include/libgnulib/file-set.h delete mode 100755 include/libgnulib/file-type.h delete mode 100755 include/libgnulib/filemode.h delete mode 100755 include/libgnulib/filename.h delete mode 100755 include/libgnulib/filenamecat.h delete mode 100755 include/libgnulib/filevercmp.h delete mode 100755 include/libgnulib/findprog.h delete mode 100755 include/libgnulib/flexmember.h delete mode 100755 include/libgnulib/float+.h delete mode 100755 include/libgnulib/fpe-trapping.h delete mode 100755 include/libgnulib/fpending.h delete mode 100755 include/libgnulib/fprintftime.h delete mode 100755 include/libgnulib/fpucw.h delete mode 100755 include/libgnulib/freadable.h delete mode 100755 include/libgnulib/freadahead.h delete mode 100755 include/libgnulib/freading.h delete mode 100755 include/libgnulib/freadptr.h delete mode 100755 include/libgnulib/freadseek.h delete mode 100755 include/libgnulib/fseterr.h delete mode 100755 include/libgnulib/fstrcmp.h delete mode 100755 include/libgnulib/fsusage.h delete mode 100755 include/libgnulib/ftoastr.h delete mode 100755 include/libgnulib/fts_.h delete mode 100755 include/libgnulib/full-read.h delete mode 100755 include/libgnulib/full-write.h delete mode 100755 include/libgnulib/fwritable.h delete mode 100755 include/libgnulib/fwriteerror.h delete mode 100755 include/libgnulib/fwriting.h delete mode 100755 include/libgnulib/gc.h delete mode 100755 include/libgnulib/gcd.h delete mode 100755 include/libgnulib/get_ppid_of.h delete mode 100755 include/libgnulib/get_progname_of.h delete mode 100755 include/libgnulib/gethrxtime.h delete mode 100755 include/libgnulib/getndelim2.h delete mode 100755 include/libgnulib/getnline.h delete mode 100755 include/libgnulib/getopt-core.h delete mode 100755 include/libgnulib/getopt-ext.h delete mode 100755 include/libgnulib/getopt-pfx-core.h delete mode 100755 include/libgnulib/getopt-pfx-ext.h delete mode 100755 include/libgnulib/getopt_int.h delete mode 100755 include/libgnulib/getpass.h delete mode 100755 include/libgnulib/getprogname.h delete mode 100755 include/libgnulib/gettext.h delete mode 100755 include/libgnulib/getugroups.h delete mode 100755 include/libgnulib/gl_anyavltree_list1.h delete mode 100755 include/libgnulib/gl_anyavltree_list2.h delete mode 100755 include/libgnulib/gl_anyhash1.h delete mode 100755 include/libgnulib/gl_anyhash2.h delete mode 100755 include/libgnulib/gl_anyhash_primes.h delete mode 100755 include/libgnulib/gl_anylinked_list1.h delete mode 100755 include/libgnulib/gl_anylinked_list2.h delete mode 100755 include/libgnulib/gl_anyrbtree_list1.h delete mode 100755 include/libgnulib/gl_anyrbtree_list2.h delete mode 100755 include/libgnulib/gl_anytree_list1.h delete mode 100755 include/libgnulib/gl_anytree_list2.h delete mode 100755 include/libgnulib/gl_anytree_omap.h delete mode 100755 include/libgnulib/gl_anytree_oset.h delete mode 100755 include/libgnulib/gl_anytreehash_list1.h delete mode 100755 include/libgnulib/gl_anytreehash_list2.h delete mode 100755 include/libgnulib/gl_array_list.h delete mode 100755 include/libgnulib/gl_array_map.h delete mode 100755 include/libgnulib/gl_array_omap.h delete mode 100755 include/libgnulib/gl_array_oset.h delete mode 100755 include/libgnulib/gl_array_set.h delete mode 100755 include/libgnulib/gl_avltree_list.h delete mode 100755 include/libgnulib/gl_avltree_omap.h delete mode 100755 include/libgnulib/gl_avltree_ordered.h delete mode 100755 include/libgnulib/gl_avltree_oset.h delete mode 100755 include/libgnulib/gl_avltreehash_list.h delete mode 100755 include/libgnulib/gl_carray_list.h delete mode 100755 include/libgnulib/gl_hash_map.h delete mode 100755 include/libgnulib/gl_hash_set.h delete mode 100755 include/libgnulib/gl_linked_list.h delete mode 100755 include/libgnulib/gl_linkedhash_list.h delete mode 100755 include/libgnulib/gl_linkedhash_map.h delete mode 100755 include/libgnulib/gl_linkedhash_set.h delete mode 100755 include/libgnulib/gl_list.h delete mode 100755 include/libgnulib/gl_list.hh delete mode 100755 include/libgnulib/gl_map.h delete mode 100755 include/libgnulib/gl_map.hh delete mode 100755 include/libgnulib/gl_omap.h delete mode 100755 include/libgnulib/gl_omap.hh delete mode 100755 include/libgnulib/gl_openssl.h delete mode 100755 include/libgnulib/gl_oset.h delete mode 100755 include/libgnulib/gl_oset.hh delete mode 100755 include/libgnulib/gl_rbtree_list.h delete mode 100755 include/libgnulib/gl_rbtree_omap.h delete mode 100755 include/libgnulib/gl_rbtree_ordered.h delete mode 100755 include/libgnulib/gl_rbtree_oset.h delete mode 100755 include/libgnulib/gl_rbtreehash_list.h delete mode 100755 include/libgnulib/gl_set.h delete mode 100755 include/libgnulib/gl_set.hh delete mode 100755 include/libgnulib/gl_sublist.h delete mode 100755 include/libgnulib/gl_xlist.h delete mode 100755 include/libgnulib/gl_xmap.h delete mode 100755 include/libgnulib/gl_xomap.h delete mode 100755 include/libgnulib/gl_xoset.h delete mode 100755 include/libgnulib/gl_xset.h delete mode 100755 include/libgnulib/gl_xsublist.h delete mode 100755 include/libgnulib/glob-libc.h delete mode 100755 include/libgnulib/glob_internal.h delete mode 100755 include/libgnulib/glthread/cond.h delete mode 100755 include/libgnulib/glthread/lock.h delete mode 100755 include/libgnulib/glthread/once.h delete mode 100755 include/libgnulib/glthread/thread.h delete mode 100755 include/libgnulib/glthread/tls.h delete mode 100755 include/libgnulib/glthread/yield.h delete mode 100755 include/libgnulib/hamt.h delete mode 100755 include/libgnulib/hard-locale.h delete mode 100755 include/libgnulib/hash-pjw-bare.h delete mode 100755 include/libgnulib/hash-pjw.h delete mode 100755 include/libgnulib/hash-triple.h delete mode 100755 include/libgnulib/hash.h delete mode 100755 include/libgnulib/hmac.h delete mode 100755 include/libgnulib/human.h delete mode 100755 include/libgnulib/i-ring.h delete mode 100755 include/libgnulib/ialloc.h delete mode 100755 include/libgnulib/iconv_open-aix.gperf delete mode 100755 include/libgnulib/iconv_open-hpux.gperf delete mode 100755 include/libgnulib/iconv_open-irix.gperf delete mode 100755 include/libgnulib/iconv_open-osf.gperf delete mode 100755 include/libgnulib/iconv_open-solaris.gperf delete mode 100755 include/libgnulib/iconv_open-zos.gperf delete mode 100755 include/libgnulib/iconveh.h delete mode 100755 include/libgnulib/idcache.h delete mode 100755 include/libgnulib/idpriv.h delete mode 100755 include/libgnulib/idx.h delete mode 100755 include/libgnulib/ignore-value.h delete mode 100755 include/libgnulib/immutable.h delete mode 100755 include/libgnulib/ino-map.h delete mode 100755 include/libgnulib/integer_length.h delete mode 100755 include/libgnulib/intprops-internal.h delete mode 100755 include/libgnulib/intprops.h delete mode 100755 include/libgnulib/inttostr.h delete mode 100755 include/libgnulib/isapipe.h delete mode 100755 include/libgnulib/isdir.h delete mode 100755 include/libgnulib/isnand-nolibm.h delete mode 100755 include/libgnulib/isnanf-nolibm.h delete mode 100755 include/libgnulib/isnanl-nolibm.h delete mode 100755 include/libgnulib/iswctype-impl.h delete mode 100755 include/libgnulib/javacomp.h delete mode 100755 include/libgnulib/javaexec.h delete mode 100755 include/libgnulib/javaversion.class delete mode 100755 include/libgnulib/javaversion.h delete mode 100755 include/libgnulib/javaversion.java delete mode 100755 include/libgnulib/jit/cache.h delete mode 100755 include/libgnulib/lc-charset-dispatch.h delete mode 100755 include/libgnulib/lc-charset-unicode.h delete mode 100755 include/libgnulib/libc-config.h delete mode 100755 include/libgnulib/libunistring.valgrind delete mode 100755 include/libgnulib/linebuffer.h delete mode 100755 include/libgnulib/localcharset.h delete mode 100755 include/libgnulib/localeinfo.h delete mode 100755 include/libgnulib/localename-table.h delete mode 100755 include/libgnulib/localename.h delete mode 100755 include/libgnulib/long-options.h delete mode 100755 include/libgnulib/malloc/dynarray.h delete mode 100755 include/libgnulib/malloc/scratch_buffer.h delete mode 100755 include/libgnulib/malloca.h delete mode 100755 include/libgnulib/mbchar.h delete mode 100755 include/libgnulib/mbfile.h delete mode 100755 include/libgnulib/mbiter.h delete mode 100755 include/libgnulib/mbiterf.h delete mode 100755 include/libgnulib/mbmemcasecmp.h delete mode 100755 include/libgnulib/mbmemcasecoll.h delete mode 100755 include/libgnulib/mbrtowc-impl-utf8.h delete mode 100755 include/libgnulib/mbrtowc-impl.h delete mode 100755 include/libgnulib/mbsnrtowcs-impl.h delete mode 100755 include/libgnulib/mbsrtowcs-impl.h delete mode 100755 include/libgnulib/mbswidth.h delete mode 100755 include/libgnulib/mbtowc-impl.h delete mode 100755 include/libgnulib/mbtowc-lock.h delete mode 100755 include/libgnulib/mbuiter.h delete mode 100755 include/libgnulib/mbuiterf.h delete mode 100755 include/libgnulib/mcel.h delete mode 100755 include/libgnulib/md2.h delete mode 100755 include/libgnulib/md4.h delete mode 100755 include/libgnulib/md5.h delete mode 100755 include/libgnulib/memcasecmp.h delete mode 100755 include/libgnulib/memchr.valgrind delete mode 100755 include/libgnulib/memchr2.h delete mode 100755 include/libgnulib/memchr2.valgrind delete mode 100755 include/libgnulib/memcmp2.h delete mode 100755 include/libgnulib/memcoll.h delete mode 100755 include/libgnulib/memxor.h delete mode 100755 include/libgnulib/mgetgroups.h delete mode 100755 include/libgnulib/mini-gmp.h delete mode 100755 include/libgnulib/mini-mpq.h delete mode 100755 include/libgnulib/minmax.h delete mode 100755 include/libgnulib/mkancesdirs.h delete mode 100755 include/libgnulib/mkdir-p.h delete mode 100755 include/libgnulib/mktime-internal.h delete mode 100755 include/libgnulib/modechange.h delete mode 100755 include/libgnulib/mountlist.h delete mode 100755 include/libgnulib/mpsort.h delete mode 100755 include/libgnulib/msvc-inval.h delete mode 100755 include/libgnulib/msvc-nothrow.h delete mode 100755 include/libgnulib/nan.h delete mode 100755 include/libgnulib/nonblocking.h delete mode 100755 include/libgnulib/noreturn.h delete mode 100755 include/libgnulib/nproc.h delete mode 100755 include/libgnulib/openat-priv.h delete mode 100755 include/libgnulib/openat.h delete mode 100755 include/libgnulib/opendirat.h delete mode 100755 include/libgnulib/os2-spawn.h delete mode 100755 include/libgnulib/pagealign_alloc.h delete mode 100755 include/libgnulib/parse-datetime.h delete mode 100755 include/libgnulib/parse-datetime.y delete mode 100755 include/libgnulib/parse-duration.h delete mode 100755 include/libgnulib/passfd.h delete mode 100755 include/libgnulib/pathmax.h delete mode 100755 include/libgnulib/physmem.h delete mode 100755 include/libgnulib/pipe-filter-aux.h delete mode 100755 include/libgnulib/pipe-filter.h delete mode 100755 include/libgnulib/posixtm.h delete mode 100755 include/libgnulib/posixver.h delete mode 100755 include/libgnulib/printf-args.h delete mode 100755 include/libgnulib/printf-frexp.h delete mode 100755 include/libgnulib/printf-frexpl.h delete mode 100755 include/libgnulib/printf-parse.h delete mode 100755 include/libgnulib/priv-set.h delete mode 100755 include/libgnulib/progname.h delete mode 100755 include/libgnulib/propername.h delete mode 100755 include/libgnulib/pty-private.h delete mode 100755 include/libgnulib/quote.h delete mode 100755 include/libgnulib/quotearg.h delete mode 100755 include/libgnulib/rawmemchr.valgrind delete mode 100755 include/libgnulib/read-file.h delete mode 100755 include/libgnulib/readline.h delete mode 100755 include/libgnulib/readtokens.h delete mode 100755 include/libgnulib/readtokens0.h delete mode 100755 include/libgnulib/readutmp.h delete mode 100755 include/libgnulib/regex-quote.h delete mode 100755 include/libgnulib/regex.h delete mode 100755 include/libgnulib/regex_internal.h delete mode 100755 include/libgnulib/relocatable.h delete mode 100755 include/libgnulib/relocatable.valgrind delete mode 100755 include/libgnulib/renameatu.h delete mode 100755 include/libgnulib/resource-ext.h delete mode 100755 include/libgnulib/rijndael-alg-fst.h delete mode 100755 include/libgnulib/rijndael-api-fst.h delete mode 100755 include/libgnulib/root-uid.h delete mode 100755 include/libgnulib/safe-alloc.h delete mode 100755 include/libgnulib/safe-read.h delete mode 100755 include/libgnulib/safe-write.h delete mode 100755 include/libgnulib/same-inode.h delete mode 100755 include/libgnulib/same.h delete mode 100755 include/libgnulib/save-cwd.h delete mode 100755 include/libgnulib/savedir.h delete mode 100755 include/libgnulib/savewd.h delete mode 100755 include/libgnulib/scratch_buffer.h delete mode 100755 include/libgnulib/selinux-at.h delete mode 100755 include/libgnulib/setlocale_null.h delete mode 100755 include/libgnulib/sf-istream.h delete mode 100755 include/libgnulib/sfl-istream.h delete mode 100755 include/libgnulib/sh-quote.h delete mode 100755 include/libgnulib/sha1.h delete mode 100755 include/libgnulib/sha256.h delete mode 100755 include/libgnulib/sha512.h delete mode 100755 include/libgnulib/sig-handler.h delete mode 100755 include/libgnulib/sig2str.h delete mode 100755 include/libgnulib/siglist.h delete mode 100755 include/libgnulib/signed-nan.h delete mode 100755 include/libgnulib/signed-snan.h delete mode 100755 include/libgnulib/sigpipe-die.h delete mode 100755 include/libgnulib/simple-atomic.h delete mode 100755 include/libgnulib/size_max.h delete mode 100755 include/libgnulib/sm3.h delete mode 100755 include/libgnulib/snan.h delete mode 100755 include/libgnulib/sockets.h delete mode 100755 include/libgnulib/spawn-pipe.h delete mode 100755 include/libgnulib/spawn_int.h delete mode 100755 include/libgnulib/ssfmalloc-bitmap.h delete mode 100755 include/libgnulib/ssfmalloc.h delete mode 100755 include/libgnulib/stack-trace-impl.h delete mode 100755 include/libgnulib/stack.h delete mode 100755 include/libgnulib/stackvma.h delete mode 100755 include/libgnulib/stat-macros.h delete mode 100755 include/libgnulib/stat-size.h delete mode 100755 include/libgnulib/stat-time.h delete mode 100755 include/libgnulib/stat-w32.h delete mode 100755 include/libgnulib/stdio--.h delete mode 100755 include/libgnulib/stdio-impl.h delete mode 100755 include/libgnulib/stdio-safer.h delete mode 100755 include/libgnulib/stdlib--.h delete mode 100755 include/libgnulib/stdlib-safer.h delete mode 100755 include/libgnulib/stdopen.h delete mode 100755 include/libgnulib/str-kmp.h delete mode 100755 include/libgnulib/str-two-way.h delete mode 100755 include/libgnulib/strchrnul.valgrind delete mode 100755 include/libgnulib/streq.h delete mode 100755 include/libgnulib/strerror-override.h delete mode 100755 include/libgnulib/strftime.h delete mode 100755 include/libgnulib/striconv.h delete mode 100755 include/libgnulib/striconveh.h delete mode 100755 include/libgnulib/striconveha.h delete mode 100755 include/libgnulib/string-buffer.h delete mode 100755 include/libgnulib/string-desc-quotearg.h delete mode 100755 include/libgnulib/string-desc.h delete mode 100755 include/libgnulib/strnlen1.h delete mode 100755 include/libgnulib/struniq.h delete mode 100755 include/libgnulib/supersede.h delete mode 100755 include/libgnulib/sys-limits.h delete mode 100755 include/libgnulib/system-quote.h delete mode 100755 include/libgnulib/t-idcache delete mode 100755 include/libgnulib/tempname.h delete mode 100755 include/libgnulib/term-style-control.h delete mode 100755 include/libgnulib/termcap.h delete mode 100755 include/libgnulib/terminfo.h delete mode 100755 include/libgnulib/thread-optim.h delete mode 100755 include/libgnulib/time-internal.h delete mode 100755 include/libgnulib/timespec.h delete mode 100755 include/libgnulib/timevar.def delete mode 100755 include/libgnulib/timevar.h delete mode 100755 include/libgnulib/tmpdir.h delete mode 100755 include/libgnulib/towctrans-impl.h delete mode 100755 include/libgnulib/trigl.h delete mode 100755 include/libgnulib/trim.h delete mode 100755 include/libgnulib/u64.h delete mode 100755 include/libgnulib/unicase/cased.h delete mode 100755 include/libgnulib/unicase/casefold.h delete mode 100755 include/libgnulib/unicase/caseprop.h delete mode 100755 include/libgnulib/unicase/context.h delete mode 100755 include/libgnulib/unicase/ignorable.h delete mode 100755 include/libgnulib/unicase/invariant.h delete mode 100755 include/libgnulib/unicase/locale-languages.gperf delete mode 100755 include/libgnulib/unicase/simple-mapping.h delete mode 100755 include/libgnulib/unicase/special-casing-table.gperf delete mode 100755 include/libgnulib/unicase/tocasefold.h delete mode 100755 include/libgnulib/unicase/tolower.h delete mode 100755 include/libgnulib/unicase/totitle.h delete mode 100755 include/libgnulib/unicase/toupper.h delete mode 100755 include/libgnulib/unicase/u-casecmp.h delete mode 100755 include/libgnulib/unicase/u-casecoll.h delete mode 100755 include/libgnulib/unicase/u-casefold.h delete mode 100755 include/libgnulib/unicase/u-casemap.h delete mode 100755 include/libgnulib/unicase/u-casexfrm.h delete mode 100755 include/libgnulib/unicase/u-ct-casefold.h delete mode 100755 include/libgnulib/unicase/u-ct-totitle.h delete mode 100755 include/libgnulib/unicase/u-is-cased.h delete mode 100755 include/libgnulib/unicase/u-is-invariant.h delete mode 100755 include/libgnulib/unicase/u-prefix-context.h delete mode 100755 include/libgnulib/unicase/u-suffix-context.h delete mode 100755 include/libgnulib/unicase/u-totitle.h delete mode 100755 include/libgnulib/unicase/unicasemap.h delete mode 100755 include/libgnulib/unicodeio.h delete mode 100755 include/libgnulib/uniconv/u-conv-from-enc.h delete mode 100755 include/libgnulib/uniconv/u-conv-to-enc.h delete mode 100755 include/libgnulib/uniconv/u-strconv-from-enc.h delete mode 100755 include/libgnulib/uniconv/u-strconv-to-enc.h delete mode 100755 include/libgnulib/unigbrk/gbrkprop.h delete mode 100755 include/libgnulib/unigbrk/u-grapheme-breaks.h delete mode 100755 include/libgnulib/unilbrk/internal.h delete mode 100755 include/libgnulib/unilbrk/lbrkprop1.h delete mode 100755 include/libgnulib/unilbrk/lbrkprop2.h delete mode 100755 include/libgnulib/unilbrk/lbrktables.h delete mode 100755 include/libgnulib/unilbrk/ulc-common.h delete mode 100755 include/libgnulib/uniname/gen-uninames.lisp delete mode 100755 include/libgnulib/uniname/uninames.h delete mode 100755 include/libgnulib/uninorm/composition-table-bounds.h delete mode 100755 include/libgnulib/uninorm/composition-table.gperf delete mode 100755 include/libgnulib/uninorm/decompose-internal.h delete mode 100755 include/libgnulib/uninorm/decomposition-table.h delete mode 100755 include/libgnulib/uninorm/decomposition-table1.h delete mode 100755 include/libgnulib/uninorm/decomposition-table2.h delete mode 100755 include/libgnulib/uninorm/normalize-internal.h delete mode 100755 include/libgnulib/uninorm/u-normalize-internal.h delete mode 100755 include/libgnulib/uninorm/u-normcmp.h delete mode 100755 include/libgnulib/uninorm/u-normcoll.h delete mode 100755 include/libgnulib/uninorm/u-normxfrm.h delete mode 100755 include/libgnulib/unistd--.h delete mode 100755 include/libgnulib/unistd-safer.h delete mode 100755 include/libgnulib/unistdio/u-asnprintf.h delete mode 100755 include/libgnulib/unistdio/u-asprintf.h delete mode 100755 include/libgnulib/unistdio/u-printf-args.h delete mode 100755 include/libgnulib/unistdio/u-printf-parse.h delete mode 100755 include/libgnulib/unistdio/u-snprintf.h delete mode 100755 include/libgnulib/unistdio/u-sprintf.h delete mode 100755 include/libgnulib/unistdio/u-vasprintf.h delete mode 100755 include/libgnulib/unistdio/u-vsnprintf.h delete mode 100755 include/libgnulib/unistdio/u-vsprintf.h delete mode 100755 include/libgnulib/unistr/u-cmp2.h delete mode 100755 include/libgnulib/unistr/u-cpy-alloc.h delete mode 100755 include/libgnulib/unistr/u-cpy.h delete mode 100755 include/libgnulib/unistr/u-endswith.h delete mode 100755 include/libgnulib/unistr/u-move.h delete mode 100755 include/libgnulib/unistr/u-pcpy.h delete mode 100755 include/libgnulib/unistr/u-set.h delete mode 100755 include/libgnulib/unistr/u-startswith.h delete mode 100755 include/libgnulib/unistr/u-stpcpy.h delete mode 100755 include/libgnulib/unistr/u-stpncpy.h delete mode 100755 include/libgnulib/unistr/u-strcat.h delete mode 100755 include/libgnulib/unistr/u-strcoll.h delete mode 100755 include/libgnulib/unistr/u-strcpy.h delete mode 100755 include/libgnulib/unistr/u-strcspn.h delete mode 100755 include/libgnulib/unistr/u-strdup.h delete mode 100755 include/libgnulib/unistr/u-strlen.h delete mode 100755 include/libgnulib/unistr/u-strncat.h delete mode 100755 include/libgnulib/unistr/u-strncpy.h delete mode 100755 include/libgnulib/unistr/u-strnlen.h delete mode 100755 include/libgnulib/unistr/u-strpbrk.h delete mode 100755 include/libgnulib/unistr/u-strspn.h delete mode 100755 include/libgnulib/unistr/u-strtok.h delete mode 100755 include/libgnulib/uniwbrk/u-wordbreaks.h delete mode 100755 include/libgnulib/uniwbrk/wbrkprop.h delete mode 100755 include/libgnulib/uniwbrk/wbrktable.h delete mode 100755 include/libgnulib/uniwidth/cjk.h delete mode 100755 include/libgnulib/uniwidth/width0.h delete mode 100755 include/libgnulib/uniwidth/width2.h delete mode 100755 include/libgnulib/unlinkdir.h delete mode 100755 include/libgnulib/unlocked-io.h delete mode 100755 include/libgnulib/unused-parameter.h delete mode 100755 include/libgnulib/userspec.h delete mode 100755 include/libgnulib/utimecmp.h delete mode 100755 include/libgnulib/utimens.h delete mode 100755 include/libgnulib/vasnprintf.h delete mode 100755 include/libgnulib/vasnwprintf.h delete mode 100755 include/libgnulib/verify.h delete mode 100755 include/libgnulib/version-etc.h delete mode 100755 include/libgnulib/vla.h delete mode 100755 include/libgnulib/vma-iter.h delete mode 100755 include/libgnulib/vma-prot.h delete mode 100755 include/libgnulib/w32sock.h delete mode 100755 include/libgnulib/wait-process.h delete mode 100755 include/libgnulib/warn-on-use.h delete mode 100755 include/libgnulib/wcpcpy-impl.h delete mode 100755 include/libgnulib/wcpncpy-impl.h delete mode 100755 include/libgnulib/wcs-two-way.h delete mode 100755 include/libgnulib/wcscasecmp-impl.h delete mode 100755 include/libgnulib/wcscat-impl.h delete mode 100755 include/libgnulib/wcschr-impl.h delete mode 100755 include/libgnulib/wcscmp-impl.h delete mode 100755 include/libgnulib/wcscoll-impl.h delete mode 100755 include/libgnulib/wcscpy-impl.h delete mode 100755 include/libgnulib/wcscspn-impl.h delete mode 100755 include/libgnulib/wcsdup-impl.h delete mode 100755 include/libgnulib/wcslen-impl.h delete mode 100755 include/libgnulib/wcsncasecmp-impl.h delete mode 100755 include/libgnulib/wcsncat-impl.h delete mode 100755 include/libgnulib/wcsncmp-impl.h delete mode 100755 include/libgnulib/wcsncpy-impl.h delete mode 100755 include/libgnulib/wcsnlen-impl.h delete mode 100755 include/libgnulib/wcsnrtombs-impl.h delete mode 100755 include/libgnulib/wcspbrk-impl.h delete mode 100755 include/libgnulib/wcsrchr-impl.h delete mode 100755 include/libgnulib/wcsrtombs-impl.h delete mode 100755 include/libgnulib/wcsspn-impl.h delete mode 100755 include/libgnulib/wcsstr-impl.h delete mode 100755 include/libgnulib/wcstok-impl.h delete mode 100755 include/libgnulib/wcswidth-impl.h delete mode 100755 include/libgnulib/wcsxfrm-impl.h delete mode 100755 include/libgnulib/wctomb-impl.h delete mode 100755 include/libgnulib/wctrans-impl.h delete mode 100755 include/libgnulib/wctype-impl.h delete mode 100755 include/libgnulib/windows-cond.h delete mode 100755 include/libgnulib/windows-initguard.h delete mode 100755 include/libgnulib/windows-mutex.h delete mode 100755 include/libgnulib/windows-once.h delete mode 100755 include/libgnulib/windows-path.h delete mode 100755 include/libgnulib/windows-recmutex.h delete mode 100755 include/libgnulib/windows-rwlock.h delete mode 100755 include/libgnulib/windows-spawn.h delete mode 100755 include/libgnulib/windows-spin.h delete mode 100755 include/libgnulib/windows-thread.h delete mode 100755 include/libgnulib/windows-timedmutex.h delete mode 100755 include/libgnulib/windows-timedrecmutex.h delete mode 100755 include/libgnulib/windows-timedrwlock.h delete mode 100755 include/libgnulib/windows-tls.h delete mode 100755 include/libgnulib/wmemchr-impl.h delete mode 100755 include/libgnulib/wmemcmp-impl.h delete mode 100755 include/libgnulib/wmemcpy-impl.h delete mode 100755 include/libgnulib/wmemmove-impl.h delete mode 100755 include/libgnulib/wmemset-impl.h delete mode 100755 include/libgnulib/wprintf-parse.h delete mode 100755 include/libgnulib/write-any-file.h delete mode 100755 include/libgnulib/xalloc-oversized.h delete mode 100755 include/libgnulib/xalloc.h delete mode 100755 include/libgnulib/xbinary-io.h delete mode 100755 include/libgnulib/xfreopen.h delete mode 100755 include/libgnulib/xgetaname-impl.h delete mode 100755 include/libgnulib/xgetcwd.h delete mode 100755 include/libgnulib/xgetdomainname.h delete mode 100755 include/libgnulib/xgethostname.h delete mode 100755 include/libgnulib/xmalloca.h delete mode 100755 include/libgnulib/xmemcoll.h delete mode 100755 include/libgnulib/xmemdup0.h delete mode 100755 include/libgnulib/xnanosleep.h delete mode 100755 include/libgnulib/xprintf.h delete mode 100755 include/libgnulib/xreadlink.h delete mode 100755 include/libgnulib/xsetenv.h delete mode 100755 include/libgnulib/xsize.h delete mode 100755 include/libgnulib/xstdopen.h delete mode 100755 include/libgnulib/xstrerror.h delete mode 100755 include/libgnulib/xstriconv.h delete mode 100755 include/libgnulib/xstriconveh.h delete mode 100755 include/libgnulib/xstring-desc.h delete mode 100755 include/libgnulib/xstrndup.h delete mode 100755 include/libgnulib/xstrtod.h delete mode 100755 include/libgnulib/xstrtol-error.h delete mode 100755 include/libgnulib/xstrtol.h delete mode 100755 include/libgnulib/xtime.h delete mode 100755 include/libgnulib/xvasprintf.h delete mode 100755 include/libgnulib/yesno.h delete mode 100755 include/libiconv/export.h delete mode 100755 include/libiconv/iconv.h delete mode 100755 include/malloc.h delete mode 100755 include/parted/constraint.h delete mode 100755 include/parted/crc32.h delete mode 100755 include/parted/debug.h delete mode 100755 include/parted/device.h delete mode 100755 include/parted/disk.h delete mode 100755 include/parted/endian.h delete mode 100755 include/parted/exception.h delete mode 100755 include/parted/fdasd.h delete mode 100755 include/parted/filesys.h delete mode 100755 include/parted/geom.h delete mode 100755 include/parted/natmath.h delete mode 100755 include/parted/parted.h delete mode 100755 include/parted/timer.h delete mode 100755 include/parted/unit.h delete mode 100755 include/parted/vtoc.h delete mode 100755 jni/PartitionManager/Alternatives.c delete mode 100755 jni/PartitionManager/PartedUtils.cpp delete mode 100755 jni/e2fsprogs/Makefile delete mode 100755 jni/parted/COPYING delete mode 100755 jni/parted/Makefile delete mode 100755 jni/parted/lib/alloca.h delete mode 100755 jni/parted/lib/assert.h delete mode 100755 jni/parted/lib/config.h delete mode 100755 jni/parted/lib/configmake.h delete mode 100755 jni/parted/lib/error.h delete mode 100755 jni/parted/lib/fcntl.h delete mode 100755 jni/parted/lib/inttypes.h delete mode 100755 jni/parted/lib/langinfo.h delete mode 100755 jni/parted/lib/limits.h delete mode 100755 jni/parted/lib/locale.h delete mode 100755 jni/parted/lib/malloc/dynarray-skeleton.gl.h delete mode 100755 jni/parted/lib/malloc/dynarray.gl.h delete mode 100755 jni/parted/lib/malloc/scratch_buffer.gl.h delete mode 100755 jni/parted/lib/pthread.h delete mode 100755 jni/parted/lib/sched.h delete mode 100755 jni/parted/lib/stddef.h delete mode 100755 jni/parted/lib/stdint.h delete mode 100755 jni/parted/lib/stdio.h delete mode 100755 jni/parted/lib/stdlib.h delete mode 100755 jni/parted/lib/string.h delete mode 100755 jni/parted/lib/sys/random.h delete mode 100755 jni/parted/lib/sys/stat.h delete mode 100755 jni/parted/lib/sys/types.h delete mode 100755 jni/parted/lib/time.h delete mode 100755 jni/parted/lib/uchar.h delete mode 100755 jni/parted/lib/unictype.h delete mode 100755 jni/parted/lib/unistd.h delete mode 100755 jni/parted/lib/unitypes.h delete mode 100755 jni/parted/lib/wchar.h delete mode 100755 jni/parted/lib/wctype.h delete mode 100755 jni/parted/libcharset/Android.mk delete mode 100755 jni/parted/libcharset/Makefile delete mode 100755 jni/parted/libcharset/lib/localcharset.c delete mode 100755 jni/parted/libcharset/lib/relocatable-stub.c delete mode 100755 jni/parted/libgnulib/Android.mk delete mode 100755 jni/parted/libgnulib/lib/argmatch.c delete mode 100755 jni/parted/libgnulib/lib/basename-lgpl.c delete mode 100755 jni/parted/libgnulib/lib/basename.c delete mode 100755 jni/parted/libgnulib/lib/btowc.c delete mode 100755 jni/parted/libgnulib/lib/c-ctype.c delete mode 100755 jni/parted/libgnulib/lib/c-strcasecmp.c delete mode 100755 jni/parted/libgnulib/lib/c-strncasecmp.c delete mode 100755 jni/parted/libgnulib/lib/c32isprint.c delete mode 100755 jni/parted/libgnulib/lib/canonicalize-lgpl.c delete mode 100755 jni/parted/libgnulib/lib/cloexec.c delete mode 100755 jni/parted/libgnulib/lib/close-stream.c delete mode 100755 jni/parted/libgnulib/lib/closeout.c delete mode 100755 jni/parted/libgnulib/lib/dirname-lgpl.c delete mode 100755 jni/parted/libgnulib/lib/dirname.c delete mode 100755 jni/parted/libgnulib/lib/error.c delete mode 100755 jni/parted/libgnulib/lib/exitfail.c delete mode 100755 jni/parted/libgnulib/lib/fcntl.c delete mode 100755 jni/parted/libgnulib/lib/free.c delete mode 100755 jni/parted/libgnulib/lib/getdtablesize.c delete mode 100755 jni/parted/libgnulib/lib/hard-locale.c delete mode 100755 jni/parted/libgnulib/lib/ialloc.c delete mode 100755 jni/parted/libgnulib/lib/iswctype.c delete mode 100755 jni/parted/libgnulib/lib/iswdigit.c delete mode 100755 jni/parted/libgnulib/lib/iswpunct.c delete mode 100755 jni/parted/libgnulib/lib/iswxdigit.c delete mode 100755 jni/parted/libgnulib/lib/localcharset.c delete mode 100755 jni/parted/libgnulib/lib/long-options.c delete mode 100755 jni/parted/libgnulib/lib/malloc/dynarray-skeleton.c delete mode 100755 jni/parted/libgnulib/lib/malloca.c delete mode 100755 jni/parted/libgnulib/lib/mbrtoc32.c delete mode 100755 jni/parted/libgnulib/lib/mbrtowc.c delete mode 100755 jni/parted/libgnulib/lib/mbszero.c delete mode 100755 jni/parted/libgnulib/lib/nl_langinfo.c delete mode 100755 jni/parted/libgnulib/lib/progname.c delete mode 100755 jni/parted/libgnulib/lib/quotearg.c delete mode 100755 jni/parted/libgnulib/lib/rawmemchr.c delete mode 100755 jni/parted/libgnulib/lib/regcomp.c delete mode 100755 jni/parted/libgnulib/lib/regex.c delete mode 100755 jni/parted/libgnulib/lib/regex_internal.c delete mode 100755 jni/parted/libgnulib/lib/regexec.c delete mode 100755 jni/parted/libgnulib/lib/rpmatch.c delete mode 100755 jni/parted/libgnulib/lib/safe-read.c delete mode 100755 jni/parted/libgnulib/lib/setlocale-lock.c delete mode 100755 jni/parted/libgnulib/lib/setlocale_null-unlocked.c delete mode 100755 jni/parted/libgnulib/lib/setlocale_null.c delete mode 100755 jni/parted/libgnulib/lib/stat-time.c delete mode 100755 jni/parted/libgnulib/lib/stripslash.c delete mode 100755 jni/parted/libgnulib/lib/tempname.c delete mode 100755 jni/parted/libgnulib/lib/unictype/bitmap.h delete mode 100755 jni/parted/libgnulib/lib/unictype/ctype_print.c delete mode 100755 jni/parted/libgnulib/lib/unictype/ctype_print.h delete mode 100755 jni/parted/libgnulib/lib/version-etc-fsf.c delete mode 100755 jni/parted/libgnulib/lib/version-etc.c delete mode 100755 jni/parted/libgnulib/lib/wctype.c delete mode 100755 jni/parted/libgnulib/lib/xalloc-die.c delete mode 100755 jni/parted/libgnulib/lib/xmalloc.c delete mode 100755 jni/parted/libgnulib/lib/xstrtol.c delete mode 100755 jni/parted/libgnulib/lib/xstrtoll.c delete mode 100755 jni/parted/libgnulib/lib/xstrtoul.c delete mode 100755 jni/parted/libgnulib/lib/xstrtoull.c delete mode 100755 jni/parted/libiconv/Android.mk delete mode 100755 jni/parted/libiconv/Makefile delete mode 100755 jni/parted/libiconv/icrt/Android.mk delete mode 100755 jni/parted/libiconv/icrt/allocator.c delete mode 100755 jni/parted/libiconv/icrt/areadlink.c delete mode 100755 jni/parted/libiconv/icrt/binary-io.c delete mode 100755 jni/parted/libiconv/icrt/careadlinkat.c delete mode 100755 jni/parted/libiconv/icrt/fd-hook.c delete mode 100755 jni/parted/libiconv/icrt/getprogname.c delete mode 100755 jni/parted/libiconv/icrt/unistd.c delete mode 100755 jni/parted/libiconv/icrt/xreadlink.c delete mode 100755 jni/parted/libiconv/lib/aliases.h delete mode 100755 jni/parted/libiconv/lib/aliases2.h delete mode 100755 jni/parted/libiconv/lib/aliases_aix.h delete mode 100755 jni/parted/libiconv/lib/aliases_aix_sysaix.h delete mode 100755 jni/parted/libiconv/lib/aliases_dos.h delete mode 100755 jni/parted/libiconv/lib/aliases_extra.h delete mode 100755 jni/parted/libiconv/lib/aliases_osf1.h delete mode 100755 jni/parted/libiconv/lib/aliases_osf1_sysosf1.h delete mode 100755 jni/parted/libiconv/lib/aliases_sysaix.h delete mode 100755 jni/parted/libiconv/lib/aliases_syshpux.h delete mode 100755 jni/parted/libiconv/lib/aliases_sysosf1.h delete mode 100755 jni/parted/libiconv/lib/aliases_syssolaris.h delete mode 100755 jni/parted/libiconv/lib/aliases_zos.h delete mode 100755 jni/parted/libiconv/lib/armscii_8.h delete mode 100755 jni/parted/libiconv/lib/ascii.h delete mode 100755 jni/parted/libiconv/lib/atarist.h delete mode 100755 jni/parted/libiconv/lib/big5.h delete mode 100755 jni/parted/libiconv/lib/big5_2003.h delete mode 100755 jni/parted/libiconv/lib/big5hkscs1999.h delete mode 100755 jni/parted/libiconv/lib/big5hkscs2001.h delete mode 100755 jni/parted/libiconv/lib/big5hkscs2004.h delete mode 100755 jni/parted/libiconv/lib/big5hkscs2008.h delete mode 100755 jni/parted/libiconv/lib/c99.h delete mode 100755 jni/parted/libiconv/lib/canonical.h delete mode 100755 jni/parted/libiconv/lib/canonical_aix.h delete mode 100755 jni/parted/libiconv/lib/canonical_aix_sysaix.h delete mode 100755 jni/parted/libiconv/lib/canonical_dos.h delete mode 100755 jni/parted/libiconv/lib/canonical_extra.h delete mode 100755 jni/parted/libiconv/lib/canonical_local.h delete mode 100755 jni/parted/libiconv/lib/canonical_local_sysaix.h delete mode 100755 jni/parted/libiconv/lib/canonical_local_syshpux.h delete mode 100755 jni/parted/libiconv/lib/canonical_local_sysosf1.h delete mode 100755 jni/parted/libiconv/lib/canonical_local_syssolaris.h delete mode 100755 jni/parted/libiconv/lib/canonical_osf1.h delete mode 100755 jni/parted/libiconv/lib/canonical_osf1_sysosf1.h delete mode 100755 jni/parted/libiconv/lib/canonical_sysaix.h delete mode 100755 jni/parted/libiconv/lib/canonical_syshpux.h delete mode 100755 jni/parted/libiconv/lib/canonical_sysosf1.h delete mode 100755 jni/parted/libiconv/lib/canonical_syssolaris.h delete mode 100755 jni/parted/libiconv/lib/canonical_zos.h delete mode 100755 jni/parted/libiconv/lib/ces_big5.h delete mode 100755 jni/parted/libiconv/lib/ces_gbk.h delete mode 100755 jni/parted/libiconv/lib/cjk_variants.h delete mode 100755 jni/parted/libiconv/lib/cns11643.h delete mode 100755 jni/parted/libiconv/lib/cns11643_1.h delete mode 100755 jni/parted/libiconv/lib/cns11643_15.h delete mode 100755 jni/parted/libiconv/lib/cns11643_2.h delete mode 100755 jni/parted/libiconv/lib/cns11643_3.h delete mode 100755 jni/parted/libiconv/lib/cns11643_4.h delete mode 100755 jni/parted/libiconv/lib/cns11643_4a.h delete mode 100755 jni/parted/libiconv/lib/cns11643_4b.h delete mode 100755 jni/parted/libiconv/lib/cns11643_5.h delete mode 100755 jni/parted/libiconv/lib/cns11643_6.h delete mode 100755 jni/parted/libiconv/lib/cns11643_7.h delete mode 100755 jni/parted/libiconv/lib/cns11643_inv.h delete mode 100755 jni/parted/libiconv/lib/config.h delete mode 100755 jni/parted/libiconv/lib/converters.h delete mode 100755 jni/parted/libiconv/lib/cp1046.h delete mode 100755 jni/parted/libiconv/lib/cp1124.h delete mode 100755 jni/parted/libiconv/lib/cp1125.h delete mode 100755 jni/parted/libiconv/lib/cp1129.h delete mode 100755 jni/parted/libiconv/lib/cp1131.h delete mode 100755 jni/parted/libiconv/lib/cp1133.h delete mode 100755 jni/parted/libiconv/lib/cp1161.h delete mode 100755 jni/parted/libiconv/lib/cp1162.h delete mode 100755 jni/parted/libiconv/lib/cp1163.h delete mode 100755 jni/parted/libiconv/lib/cp1250.h delete mode 100755 jni/parted/libiconv/lib/cp1251.h delete mode 100755 jni/parted/libiconv/lib/cp1252.h delete mode 100755 jni/parted/libiconv/lib/cp1253.h delete mode 100755 jni/parted/libiconv/lib/cp1254.h delete mode 100755 jni/parted/libiconv/lib/cp1255.h delete mode 100755 jni/parted/libiconv/lib/cp1256.h delete mode 100755 jni/parted/libiconv/lib/cp1257.h delete mode 100755 jni/parted/libiconv/lib/cp1258.h delete mode 100755 jni/parted/libiconv/lib/cp437.h delete mode 100755 jni/parted/libiconv/lib/cp50221_0208_ext.h delete mode 100755 jni/parted/libiconv/lib/cp50221_0212_ext.h delete mode 100755 jni/parted/libiconv/lib/cp737.h delete mode 100755 jni/parted/libiconv/lib/cp775.h delete mode 100755 jni/parted/libiconv/lib/cp850.h delete mode 100755 jni/parted/libiconv/lib/cp852.h delete mode 100755 jni/parted/libiconv/lib/cp853.h delete mode 100755 jni/parted/libiconv/lib/cp855.h delete mode 100755 jni/parted/libiconv/lib/cp856.h delete mode 100755 jni/parted/libiconv/lib/cp857.h delete mode 100755 jni/parted/libiconv/lib/cp858.h delete mode 100755 jni/parted/libiconv/lib/cp860.h delete mode 100755 jni/parted/libiconv/lib/cp861.h delete mode 100755 jni/parted/libiconv/lib/cp862.h delete mode 100755 jni/parted/libiconv/lib/cp863.h delete mode 100755 jni/parted/libiconv/lib/cp864.h delete mode 100755 jni/parted/libiconv/lib/cp865.h delete mode 100755 jni/parted/libiconv/lib/cp866.h delete mode 100755 jni/parted/libiconv/lib/cp869.h delete mode 100755 jni/parted/libiconv/lib/cp874.h delete mode 100755 jni/parted/libiconv/lib/cp922.h delete mode 100755 jni/parted/libiconv/lib/cp932.h delete mode 100755 jni/parted/libiconv/lib/cp932ext.h delete mode 100755 jni/parted/libiconv/lib/cp936.h delete mode 100755 jni/parted/libiconv/lib/cp936ext.h delete mode 100755 jni/parted/libiconv/lib/cp943.h delete mode 100755 jni/parted/libiconv/lib/cp949.h delete mode 100755 jni/parted/libiconv/lib/cp950.h delete mode 100755 jni/parted/libiconv/lib/cp950ext.h delete mode 100755 jni/parted/libiconv/lib/dec_hanyu.h delete mode 100755 jni/parted/libiconv/lib/dec_kanji.h delete mode 100755 jni/parted/libiconv/lib/ebcdic037.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1025.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1026.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1047.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1097.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1112.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1122.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1123.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1130.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1132.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1137.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1140.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1141.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1142.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1143.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1144.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1145.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1146.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1147.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1148.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1149.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1153.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1154.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1155.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1156.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1157.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1158.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1160.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1164.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1165.h delete mode 100755 jni/parted/libiconv/lib/ebcdic1166.h delete mode 100755 jni/parted/libiconv/lib/ebcdic12712.h delete mode 100755 jni/parted/libiconv/lib/ebcdic16804.h delete mode 100755 jni/parted/libiconv/lib/ebcdic273.h delete mode 100755 jni/parted/libiconv/lib/ebcdic277.h delete mode 100755 jni/parted/libiconv/lib/ebcdic278.h delete mode 100755 jni/parted/libiconv/lib/ebcdic280.h delete mode 100755 jni/parted/libiconv/lib/ebcdic282.h delete mode 100755 jni/parted/libiconv/lib/ebcdic284.h delete mode 100755 jni/parted/libiconv/lib/ebcdic285.h delete mode 100755 jni/parted/libiconv/lib/ebcdic297.h delete mode 100755 jni/parted/libiconv/lib/ebcdic423.h delete mode 100755 jni/parted/libiconv/lib/ebcdic424.h delete mode 100755 jni/parted/libiconv/lib/ebcdic425.h delete mode 100755 jni/parted/libiconv/lib/ebcdic4971.h delete mode 100755 jni/parted/libiconv/lib/ebcdic500.h delete mode 100755 jni/parted/libiconv/lib/ebcdic838.h delete mode 100755 jni/parted/libiconv/lib/ebcdic870.h delete mode 100755 jni/parted/libiconv/lib/ebcdic871.h delete mode 100755 jni/parted/libiconv/lib/ebcdic875.h delete mode 100755 jni/parted/libiconv/lib/ebcdic880.h delete mode 100755 jni/parted/libiconv/lib/ebcdic905.h delete mode 100755 jni/parted/libiconv/lib/ebcdic924.h delete mode 100755 jni/parted/libiconv/lib/encodings.def delete mode 100755 jni/parted/libiconv/lib/encodings_aix.def delete mode 100755 jni/parted/libiconv/lib/encodings_dos.def delete mode 100755 jni/parted/libiconv/lib/encodings_extra.def delete mode 100755 jni/parted/libiconv/lib/encodings_local.def delete mode 100755 jni/parted/libiconv/lib/encodings_osf1.def delete mode 100755 jni/parted/libiconv/lib/encodings_zos.def delete mode 100755 jni/parted/libiconv/lib/euc_cn.h delete mode 100755 jni/parted/libiconv/lib/euc_jisx0213.h delete mode 100755 jni/parted/libiconv/lib/euc_jp.h delete mode 100755 jni/parted/libiconv/lib/euc_kr.h delete mode 100755 jni/parted/libiconv/lib/euc_tw.h delete mode 100755 jni/parted/libiconv/lib/flags.h delete mode 100755 jni/parted/libiconv/lib/flushwc.h delete mode 100755 jni/parted/libiconv/lib/gb12345.h delete mode 100755 jni/parted/libiconv/lib/gb12345ext.h delete mode 100755 jni/parted/libiconv/lib/gb18030.h delete mode 100755 jni/parted/libiconv/lib/gb18030ext.h delete mode 100755 jni/parted/libiconv/lib/gb18030uni.h delete mode 100755 jni/parted/libiconv/lib/gb2312.h delete mode 100755 jni/parted/libiconv/lib/gbk.h delete mode 100755 jni/parted/libiconv/lib/gbkext1.h delete mode 100755 jni/parted/libiconv/lib/gbkext2.h delete mode 100755 jni/parted/libiconv/lib/gbkext_inv.h delete mode 100755 jni/parted/libiconv/lib/georgian_academy.h delete mode 100755 jni/parted/libiconv/lib/georgian_ps.h delete mode 100755 jni/parted/libiconv/lib/hkscs1999.h delete mode 100755 jni/parted/libiconv/lib/hkscs2001.h delete mode 100755 jni/parted/libiconv/lib/hkscs2004.h delete mode 100755 jni/parted/libiconv/lib/hkscs2008.h delete mode 100755 jni/parted/libiconv/lib/hp_roman8.h delete mode 100755 jni/parted/libiconv/lib/hz.h delete mode 100755 jni/parted/libiconv/lib/iconv.c delete mode 100755 jni/parted/libiconv/lib/iconv_open1.h delete mode 100755 jni/parted/libiconv/lib/iconv_open2.h delete mode 100755 jni/parted/libiconv/lib/iso2022_cn.h delete mode 100755 jni/parted/libiconv/lib/iso2022_cnext.h delete mode 100755 jni/parted/libiconv/lib/iso2022_jp.h delete mode 100755 jni/parted/libiconv/lib/iso2022_jp1.h delete mode 100755 jni/parted/libiconv/lib/iso2022_jp2.h delete mode 100755 jni/parted/libiconv/lib/iso2022_jp3.h delete mode 100755 jni/parted/libiconv/lib/iso2022_jpms.h delete mode 100755 jni/parted/libiconv/lib/iso2022_kr.h delete mode 100755 jni/parted/libiconv/lib/iso646_cn.h delete mode 100755 jni/parted/libiconv/lib/iso646_jp.h delete mode 100755 jni/parted/libiconv/lib/iso8859_1.h delete mode 100755 jni/parted/libiconv/lib/iso8859_10.h delete mode 100755 jni/parted/libiconv/lib/iso8859_11.h delete mode 100755 jni/parted/libiconv/lib/iso8859_13.h delete mode 100755 jni/parted/libiconv/lib/iso8859_14.h delete mode 100755 jni/parted/libiconv/lib/iso8859_15.h delete mode 100755 jni/parted/libiconv/lib/iso8859_16.h delete mode 100755 jni/parted/libiconv/lib/iso8859_2.h delete mode 100755 jni/parted/libiconv/lib/iso8859_3.h delete mode 100755 jni/parted/libiconv/lib/iso8859_4.h delete mode 100755 jni/parted/libiconv/lib/iso8859_5.h delete mode 100755 jni/parted/libiconv/lib/iso8859_6.h delete mode 100755 jni/parted/libiconv/lib/iso8859_7.h delete mode 100755 jni/parted/libiconv/lib/iso8859_8.h delete mode 100755 jni/parted/libiconv/lib/iso8859_9.h delete mode 100755 jni/parted/libiconv/lib/isoir165.h delete mode 100755 jni/parted/libiconv/lib/isoir165ext.h delete mode 100755 jni/parted/libiconv/lib/java.h delete mode 100755 jni/parted/libiconv/lib/jisx0201.h delete mode 100755 jni/parted/libiconv/lib/jisx0208.h delete mode 100755 jni/parted/libiconv/lib/jisx0212.h delete mode 100755 jni/parted/libiconv/lib/jisx0213.h delete mode 100755 jni/parted/libiconv/lib/johab.h delete mode 100755 jni/parted/libiconv/lib/johab_hangul.h delete mode 100755 jni/parted/libiconv/lib/koi8_r.h delete mode 100755 jni/parted/libiconv/lib/koi8_ru.h delete mode 100755 jni/parted/libiconv/lib/koi8_t.h delete mode 100755 jni/parted/libiconv/lib/koi8_u.h delete mode 100755 jni/parted/libiconv/lib/ksc5601.h delete mode 100755 jni/parted/libiconv/lib/libcharset.h delete mode 100755 jni/parted/libiconv/lib/localcharset.h delete mode 100755 jni/parted/libiconv/lib/loop_unicode.h delete mode 100755 jni/parted/libiconv/lib/loop_wchar.h delete mode 100755 jni/parted/libiconv/lib/loops.h delete mode 100755 jni/parted/libiconv/lib/mac_arabic.h delete mode 100755 jni/parted/libiconv/lib/mac_centraleurope.h delete mode 100755 jni/parted/libiconv/lib/mac_croatian.h delete mode 100755 jni/parted/libiconv/lib/mac_cyrillic.h delete mode 100755 jni/parted/libiconv/lib/mac_greek.h delete mode 100755 jni/parted/libiconv/lib/mac_hebrew.h delete mode 100755 jni/parted/libiconv/lib/mac_iceland.h delete mode 100755 jni/parted/libiconv/lib/mac_roman.h delete mode 100755 jni/parted/libiconv/lib/mac_romania.h delete mode 100755 jni/parted/libiconv/lib/mac_thai.h delete mode 100755 jni/parted/libiconv/lib/mac_turkish.h delete mode 100755 jni/parted/libiconv/lib/mac_ukraine.h delete mode 100755 jni/parted/libiconv/lib/mulelao.h delete mode 100755 jni/parted/libiconv/lib/nextstep.h delete mode 100755 jni/parted/libiconv/lib/pt154.h delete mode 100755 jni/parted/libiconv/lib/relocatable.c delete mode 100755 jni/parted/libiconv/lib/relocatable.h delete mode 100755 jni/parted/libiconv/lib/riscos1.h delete mode 100755 jni/parted/libiconv/lib/rk1048.h delete mode 100755 jni/parted/libiconv/lib/shift_jisx0213.h delete mode 100755 jni/parted/libiconv/lib/sjis.h delete mode 100755 jni/parted/libiconv/lib/stamp-h2 delete mode 100755 jni/parted/libiconv/lib/tcvn.h delete mode 100755 jni/parted/libiconv/lib/tds565.h delete mode 100755 jni/parted/libiconv/lib/tis620.h delete mode 100755 jni/parted/libiconv/lib/translit.def delete mode 100755 jni/parted/libiconv/lib/translit.h delete mode 100755 jni/parted/libiconv/lib/ucs2.h delete mode 100755 jni/parted/libiconv/lib/ucs2be.h delete mode 100755 jni/parted/libiconv/lib/ucs2internal.h delete mode 100755 jni/parted/libiconv/lib/ucs2le.h delete mode 100755 jni/parted/libiconv/lib/ucs2swapped.h delete mode 100755 jni/parted/libiconv/lib/ucs4.h delete mode 100755 jni/parted/libiconv/lib/ucs4be.h delete mode 100755 jni/parted/libiconv/lib/ucs4internal.h delete mode 100755 jni/parted/libiconv/lib/ucs4le.h delete mode 100755 jni/parted/libiconv/lib/ucs4swapped.h delete mode 100755 jni/parted/libiconv/lib/uhc_1.h delete mode 100755 jni/parted/libiconv/lib/uhc_2.h delete mode 100755 jni/parted/libiconv/lib/utf16.h delete mode 100755 jni/parted/libiconv/lib/utf16be.h delete mode 100755 jni/parted/libiconv/lib/utf16le.h delete mode 100755 jni/parted/libiconv/lib/utf32.h delete mode 100755 jni/parted/libiconv/lib/utf32be.h delete mode 100755 jni/parted/libiconv/lib/utf32le.h delete mode 100755 jni/parted/libiconv/lib/utf7.h delete mode 100755 jni/parted/libiconv/lib/utf8.h delete mode 100755 jni/parted/libiconv/lib/vietcomb.h delete mode 100755 jni/parted/libiconv/lib/viscii.h delete mode 100755 jni/parted/libiconv/srclib/_Noreturn.h delete mode 100755 jni/parted/libiconv/srclib/alloca.h delete mode 100755 jni/parted/libiconv/srclib/allocator.h delete mode 100755 jni/parted/libiconv/srclib/areadlink.h delete mode 100755 jni/parted/libiconv/srclib/arg-nonnull.h delete mode 100755 jni/parted/libiconv/srclib/basename-lgpl.h delete mode 100755 jni/parted/libiconv/srclib/binary-io.h delete mode 100755 jni/parted/libiconv/srclib/c++defs.h delete mode 100755 jni/parted/libiconv/srclib/c-ctype.c delete mode 100755 jni/parted/libiconv/srclib/c-ctype.h delete mode 100755 jni/parted/libiconv/srclib/careadlinkat.h delete mode 100755 jni/parted/libiconv/srclib/cdefs.h delete mode 100755 jni/parted/libiconv/srclib/cloexec.h delete mode 100755 jni/parted/libiconv/srclib/close.c delete mode 100755 jni/parted/libiconv/srclib/dup2.c delete mode 100755 jni/parted/libiconv/srclib/eloop-threshold.h delete mode 100755 jni/parted/libiconv/srclib/error.c delete mode 100755 jni/parted/libiconv/srclib/error.h delete mode 100755 jni/parted/libiconv/srclib/fcntl.h delete mode 100755 jni/parted/libiconv/srclib/fd-hook.h delete mode 100755 jni/parted/libiconv/srclib/filename.h delete mode 100755 jni/parted/libiconv/srclib/fstat.c delete mode 100755 jni/parted/libiconv/srclib/getprogname.h delete mode 100755 jni/parted/libiconv/srclib/gettext.h delete mode 100755 jni/parted/libiconv/srclib/idx.h delete mode 100755 jni/parted/libiconv/srclib/intprops.h delete mode 100755 jni/parted/libiconv/srclib/inttypes.h delete mode 100755 jni/parted/libiconv/srclib/libc-config.h delete mode 100755 jni/parted/libiconv/srclib/limits.h delete mode 100755 jni/parted/libiconv/srclib/localcharset.h delete mode 100755 jni/parted/libiconv/srclib/malloc.c delete mode 100755 jni/parted/libiconv/srclib/malloc/.dirstamp delete mode 100755 jni/parted/libiconv/srclib/malloc/scratch_buffer.h delete mode 100755 jni/parted/libiconv/srclib/malloc/scratch_buffer_dupfree.c delete mode 100755 jni/parted/libiconv/srclib/malloc/scratch_buffer_grow.c delete mode 100755 jni/parted/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c delete mode 100755 jni/parted/libiconv/srclib/malloc/scratch_buffer_set_array_size.c delete mode 100755 jni/parted/libiconv/srclib/malloca.h delete mode 100755 jni/parted/libiconv/srclib/mempcpy.c delete mode 100755 jni/parted/libiconv/srclib/minmax.h delete mode 100755 jni/parted/libiconv/srclib/msvc-inval.c delete mode 100755 jni/parted/libiconv/srclib/msvc-inval.h delete mode 100755 jni/parted/libiconv/srclib/msvc-nothrow.c delete mode 100755 jni/parted/libiconv/srclib/msvc-nothrow.h delete mode 100755 jni/parted/libiconv/srclib/open.c delete mode 100755 jni/parted/libiconv/srclib/pathmax.h delete mode 100755 jni/parted/libiconv/srclib/progname.h delete mode 100755 jni/parted/libiconv/srclib/progreloc.c delete mode 100755 jni/parted/libiconv/srclib/raise.c delete mode 100755 jni/parted/libiconv/srclib/read.c delete mode 100755 jni/parted/libiconv/srclib/readlink.c delete mode 100755 jni/parted/libiconv/srclib/realloc.c delete mode 100755 jni/parted/libiconv/srclib/relocatable.c delete mode 100755 jni/parted/libiconv/srclib/relocatable.h delete mode 100755 jni/parted/libiconv/srclib/relocwrapper.c delete mode 100755 jni/parted/libiconv/srclib/safe-read.h delete mode 100755 jni/parted/libiconv/srclib/scratch_buffer.h delete mode 100755 jni/parted/libiconv/srclib/setenv.c delete mode 100755 jni/parted/libiconv/srclib/signal.h delete mode 100755 jni/parted/libiconv/srclib/sigprocmask.c delete mode 100755 jni/parted/libiconv/srclib/stat-time.h delete mode 100755 jni/parted/libiconv/srclib/stat-w32.c delete mode 100755 jni/parted/libiconv/srclib/stat-w32.h delete mode 100755 jni/parted/libiconv/srclib/stat.c delete mode 100755 jni/parted/libiconv/srclib/stdint.h delete mode 100755 jni/parted/libiconv/srclib/stdio-read.c delete mode 100755 jni/parted/libiconv/srclib/stdio-write.c delete mode 100755 jni/parted/libiconv/srclib/stdio.h delete mode 100755 jni/parted/libiconv/srclib/stdlib.h delete mode 100755 jni/parted/libiconv/srclib/streq.h delete mode 100755 jni/parted/libiconv/srclib/strerror-override.c delete mode 100755 jni/parted/libiconv/srclib/strerror-override.h delete mode 100755 jni/parted/libiconv/srclib/strerror.c delete mode 100755 jni/parted/libiconv/srclib/string.h delete mode 100755 jni/parted/libiconv/srclib/sys-limits.h delete mode 100755 jni/parted/libiconv/srclib/sys/stat.h delete mode 100755 jni/parted/libiconv/srclib/sys/types.h delete mode 100755 jni/parted/libiconv/srclib/time.h delete mode 100755 jni/parted/libiconv/srclib/unictype/bitmap.h delete mode 100755 jni/parted/libiconv/srclib/unistd.h delete mode 100755 jni/parted/libiconv/srclib/unitypes.h delete mode 100755 jni/parted/libiconv/srclib/uniwidth.h delete mode 100755 jni/parted/libiconv/srclib/uniwidth/.dirstamp delete mode 100755 jni/parted/libiconv/srclib/uniwidth/cjk.h delete mode 100755 jni/parted/libiconv/srclib/uniwidth/width.c delete mode 100755 jni/parted/libiconv/srclib/uniwidth/width0.h delete mode 100755 jni/parted/libiconv/srclib/uniwidth/width2.h delete mode 100755 jni/parted/libiconv/srclib/unlocked-io.h delete mode 100755 jni/parted/libiconv/srclib/verify.h delete mode 100755 jni/parted/libiconv/srclib/warn-on-use.h delete mode 100755 jni/parted/libiconv/srclib/wchar.h delete mode 100755 jni/parted/libiconv/srclib/xalloc-oversized.h delete mode 100755 jni/parted/libiconv/srclib/xalloc.h delete mode 100755 jni/parted/libiconv/srclib/xreadlink.h delete mode 100755 jni/parted/libparted/Android.mk delete mode 100755 jni/parted/libparted/ChangeLog.0 delete mode 100755 jni/parted/libparted/arch/linux.c delete mode 100755 jni/parted/libparted/arch/linux.h delete mode 100755 jni/parted/libparted/architecture.c delete mode 100755 jni/parted/libparted/architecture.h delete mode 100755 jni/parted/libparted/cs/constraint.c delete mode 100755 jni/parted/libparted/cs/geom.c delete mode 100755 jni/parted/libparted/cs/natmath.c delete mode 100755 jni/parted/libparted/debug.c delete mode 100755 jni/parted/libparted/device.c delete mode 100755 jni/parted/libparted/disk.c delete mode 100755 jni/parted/libparted/exception.c delete mode 100755 jni/parted/libparted/filesys.c delete mode 100755 jni/parted/libparted/fs/amiga/a-interface.c delete mode 100755 jni/parted/libparted/fs/amiga/affs.c delete mode 100755 jni/parted/libparted/fs/amiga/affs.h delete mode 100755 jni/parted/libparted/fs/amiga/amiga.c delete mode 100755 jni/parted/libparted/fs/amiga/amiga.h delete mode 100755 jni/parted/libparted/fs/amiga/apfs.c delete mode 100755 jni/parted/libparted/fs/amiga/apfs.h delete mode 100755 jni/parted/libparted/fs/amiga/asfs.c delete mode 100755 jni/parted/libparted/fs/amiga/asfs.h delete mode 100755 jni/parted/libparted/fs/btrfs/btrfs.c delete mode 100755 jni/parted/libparted/fs/ext2/ext2.h delete mode 100755 jni/parted/libparted/fs/ext2/ext2_fs.h delete mode 100755 jni/parted/libparted/fs/ext2/interface.c delete mode 100755 jni/parted/libparted/fs/f2fs/f2fs.c delete mode 100755 jni/parted/libparted/fs/f2fs/f2fs.h delete mode 100755 jni/parted/libparted/fs/fat/bootsector.c delete mode 100755 jni/parted/libparted/fs/fat/bootsector.h delete mode 100755 jni/parted/libparted/fs/fat/count.h delete mode 100755 jni/parted/libparted/fs/fat/fat.c delete mode 100755 jni/parted/libparted/fs/fat/fat.h delete mode 100755 jni/parted/libparted/fs/hfs/DOC delete mode 100755 jni/parted/libparted/fs/hfs/HISTORY delete mode 100755 jni/parted/libparted/fs/hfs/TODO delete mode 100755 jni/parted/libparted/fs/hfs/hfs.c delete mode 100755 jni/parted/libparted/fs/hfs/hfs.h delete mode 100755 jni/parted/libparted/fs/hfs/probe.c delete mode 100755 jni/parted/libparted/fs/hfs/probe.h delete mode 100755 jni/parted/libparted/fs/jfs/jfs.c delete mode 100755 jni/parted/libparted/fs/jfs/jfs_superblock.h delete mode 100755 jni/parted/libparted/fs/jfs/jfs_types.h delete mode 100755 jni/parted/libparted/fs/linux_swap/linux_swap.c delete mode 100755 jni/parted/libparted/fs/nilfs2/nilfs2.c delete mode 100755 jni/parted/libparted/fs/ntfs/ntfs.c delete mode 100755 jni/parted/libparted/fs/r/fat/bootsector.c delete mode 100755 jni/parted/libparted/fs/r/fat/bootsector.h delete mode 100755 jni/parted/libparted/fs/r/fat/calc.c delete mode 100755 jni/parted/libparted/fs/r/fat/calc.h delete mode 100755 jni/parted/libparted/fs/r/fat/clstdup.c delete mode 100755 jni/parted/libparted/fs/r/fat/clstdup.h delete mode 100755 jni/parted/libparted/fs/r/fat/context.c delete mode 100755 jni/parted/libparted/fs/r/fat/context.h delete mode 100755 jni/parted/libparted/fs/r/fat/count.c delete mode 100755 jni/parted/libparted/fs/r/fat/count.h delete mode 100755 jni/parted/libparted/fs/r/fat/fat.c delete mode 100755 jni/parted/libparted/fs/r/fat/fat.h delete mode 100755 jni/parted/libparted/fs/r/fat/fatio.c delete mode 100755 jni/parted/libparted/fs/r/fat/fatio.h delete mode 100755 jni/parted/libparted/fs/r/fat/resize.c delete mode 100755 jni/parted/libparted/fs/r/fat/table.c delete mode 100755 jni/parted/libparted/fs/r/fat/table.h delete mode 100755 jni/parted/libparted/fs/r/fat/traverse.c delete mode 100755 jni/parted/libparted/fs/r/fat/traverse.h delete mode 100755 jni/parted/libparted/fs/r/filesys.c delete mode 100755 jni/parted/libparted/fs/r/hfs/advfs.c delete mode 100755 jni/parted/libparted/fs/r/hfs/advfs.h delete mode 100755 jni/parted/libparted/fs/r/hfs/advfs_plus.c delete mode 100755 jni/parted/libparted/fs/r/hfs/advfs_plus.h delete mode 100755 jni/parted/libparted/fs/r/hfs/cache.c delete mode 100755 jni/parted/libparted/fs/r/hfs/cache.h delete mode 100755 jni/parted/libparted/fs/r/hfs/file-16771e92.o.tmp delete mode 100755 jni/parted/libparted/fs/r/hfs/file.c delete mode 100755 jni/parted/libparted/fs/r/hfs/file.h delete mode 100755 jni/parted/libparted/fs/r/hfs/file_plus.c delete mode 100755 jni/parted/libparted/fs/r/hfs/file_plus.h delete mode 100755 jni/parted/libparted/fs/r/hfs/hfs.c delete mode 100755 jni/parted/libparted/fs/r/hfs/hfs.h delete mode 100755 jni/parted/libparted/fs/r/hfs/journal.c delete mode 100755 jni/parted/libparted/fs/r/hfs/journal.h delete mode 100755 jni/parted/libparted/fs/r/hfs/probe.c delete mode 100755 jni/parted/libparted/fs/r/hfs/probe.h delete mode 100755 jni/parted/libparted/fs/r/hfs/reloc.c delete mode 100755 jni/parted/libparted/fs/r/hfs/reloc.h delete mode 100755 jni/parted/libparted/fs/r/hfs/reloc_plus.c delete mode 100755 jni/parted/libparted/fs/r/hfs/reloc_plus.h delete mode 100755 jni/parted/libparted/fs/reiserfs/reiserfs.c delete mode 100755 jni/parted/libparted/fs/reiserfs/reiserfs.h delete mode 100755 jni/parted/libparted/fs/udf/udf.c delete mode 100755 jni/parted/libparted/fs/ufs/ufs.c delete mode 100755 jni/parted/libparted/fs/xfs/platform_defs.h delete mode 100755 jni/parted/libparted/fs/xfs/xfs.c delete mode 100755 jni/parted/libparted/fs/xfs/xfs_sb.h delete mode 100755 jni/parted/libparted/fs/xfs/xfs_types.h delete mode 100755 jni/parted/libparted/labels/aix.c delete mode 100755 jni/parted/libparted/labels/atari.c delete mode 100755 jni/parted/libparted/labels/bsd.c delete mode 100755 jni/parted/libparted/labels/dasd.c delete mode 100755 jni/parted/libparted/labels/dos.c delete mode 100755 jni/parted/libparted/labels/dvh.c delete mode 100755 jni/parted/libparted/labels/dvh.h delete mode 100755 jni/parted/libparted/labels/efi_crc32.c delete mode 100755 jni/parted/libparted/labels/fdasd.c delete mode 100755 jni/parted/libparted/labels/gpt.c delete mode 100755 jni/parted/libparted/labels/loop.c delete mode 100755 jni/parted/libparted/labels/mac.c delete mode 100755 jni/parted/libparted/labels/misc.h delete mode 100755 jni/parted/libparted/labels/pc98.c delete mode 100755 jni/parted/libparted/labels/pt-common.h delete mode 100755 jni/parted/libparted/labels/pt-limit.c delete mode 100755 jni/parted/libparted/labels/pt-tools.c delete mode 100755 jni/parted/libparted/labels/pt-tools.h delete mode 100755 jni/parted/libparted/labels/rdb.c delete mode 100755 jni/parted/libparted/labels/sun.c delete mode 100755 jni/parted/libparted/labels/vtoc.c delete mode 100755 jni/parted/libparted/libparted.c delete mode 100755 jni/parted/libparted/mbr.s delete mode 100755 jni/parted/libparted/timer.c delete mode 100755 jni/parted/libparted/unit.c delete mode 100755 jni/parted/parted/command.c delete mode 100755 jni/parted/parted/command.h delete mode 100755 jni/parted/parted/jsonwrt.c delete mode 100755 jni/parted/parted/jsonwrt.h delete mode 100755 jni/parted/parted/parted.c delete mode 100755 jni/parted/parted/strlist.c delete mode 100755 jni/parted/parted/strlist.h delete mode 100755 jni/parted/parted/table.c delete mode 100755 jni/parted/parted/table.h delete mode 100755 jni/parted/parted/ui.c delete mode 100755 jni/parted/parted/ui.h delete mode 100755 jni/parted/parted/version.c delete mode 100755 jni/parted/parted/version.h diff --git a/ADD-LANGUAGES.md b/ADD-LANGUAGES.md index 0f35696..cd5ab8e 100755 --- a/ADD-LANGUAGES.md +++ b/ADD-LANGUAGES.md @@ -30,12 +30,12 @@ On this page, I will tell you how to add languages to pmt. This is not a difficu ~ $ C / C++ - const char* _Nonnull missing_operand = "missing operand."; // C - - const std::string missing_operand = "missing operand."; // C++ - (not necessarily using 'string' type) + const char* _Nonnull missing_operand = "missing operand."; + const std::string missing_operand = "missing operand."; APPLYING (C / C++): - printf("%s\n", missing_operand); // C - Move to new line with '\n' character - std::cout << missing_operand << std::endl; // C++ - Move to new line with std::endl + printf("%s\n", missing_operand); // Move to new line with '\n' character + std::cout << missing_operand << std::endl; // Move to new line with std::endl ``` For example, let's take the output directly in pmt without any arguments and process the variables and structures behind the work. @@ -48,7 +48,7 @@ On this page, I will tell you how to add languages to pmt. This is not a difficu ~ $ Code pieces (C++) - struct langdb_general en = { + struct pmt_langdb_general en = { // other translations .missing_operand = "missing operand", .try_h = "Try", @@ -64,8 +64,8 @@ In short, there are variables for texts. And I made these dynamic by using [stru ##### Translating main program texts (relevant part) - - Let's open our jni/PartitionManager/Languages.cpp source file. - - Now, let's create the translation with the ready-made struct structure (see include/PartitionManager/StringKeys.h for the structure). + - Let's open our jni/Languages.cpp source file. + - Now, let's create the translation with the ready-made struct structure (see include/pmt/StringKeys.h for the structure). ``` // Main struct langdb_general Lang = { // LANGUAGE_PREFIX must be the corresponding abbreviation of the language in English. For example, it's like En in English. @@ -79,6 +79,8 @@ In short, there are variables for texts. And I made these dynamic by using [stru ``` - We need to add some information about the language. ``` + VERY IMPORTANT NOTE: You should do your translations from within the function called WCHAR_T! + struct langdb_general Lang = { .lang_by_s = // Names of those who made the translation. It's up to you. Do you use & between more than one person? .language = // Language name. For example English @@ -88,11 +90,11 @@ In short, there are variables for texts. And I made these dynamic by using [stru // Example struct langdb_general LangEn = { - .lang_by_s = "YZBruh & r0manas", - .language = "English", - .lang_prefix = "en", + .lang_by_s = WCHAR_T("YZBruh & r0manas"), + .language = WCHAR_T("English"), + .lang_prefix = WCHAR_T("en"), // other translations - .by_str = "By" // Example for end translate + .by_str = WCHAR_T("By") // Example for end translate } // CRITIC WARNING: Do not add ',' to the end of the last translation text. But others always... @@ -102,15 +104,15 @@ In short, there are variables for texts. And I made these dynamic by using [stru ##### Document texts translation (relevant part) - - Let's open our jni/PartitionManager/Languages.cpp source file. - - Now, let's create the translation with the ready-made struct structure (see include/PartitionManager/StringKeys.h for the structure). + - Let's open our jni/Languages.cpp source file. + - Now, let's create the translation with the ready-made struct structure (see include/pmt/StringKeys.h for the structure). ``` struct langdb_docs LangDoc = { // translations } // Example - struct langdb_docs LangDocEn = { + struct pmt_langdb_docs LangDocEn = { // translations } @@ -120,20 +122,24 @@ In short, there are variables for texts. And I made these dynamic by using [stru ##### General things to do in translation - - Open include/PartitionManager/LanguageConfigs.h - ``` - // Example - struct LanguageConfigs LanguageConfig[] { - {"en", "English", Display::LangEn, Display::LangDocEn}, - {"tr", "Türkçe", Display::LangTr, Display::LangDocTr} - }; + - Open jni/LanguageTools.cpp +``` +string supp_langs[] = { + "en", + "tr", + // language prefix. "", + "" // PLEASE DO NOT ADD IT UNDER `""`! +}; - // Add the language you are translating into these existing language prefixes. I will fix the errors here (if there is an error) - struct LanguageConfigs LanguageConfig[] { - {"en", "English", Display::LangEn, Display::LangDocEn}, - {"tr", "Türkçe", Display::LangTr, Display::LangDocTr}, - {"az", "Azərbaycan", Display::LangAz, Display::LangDocAz} - }; +// Example +string supp_langs[] = { + "en", + "tr", + "az", + "" +}; + +// Add the language you are translating into these existing language prefixes. I will fix the errors here (if there is an error) ``` ##### Notes diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f27612..a54ce78 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,11 @@ -### Version 3.0.2 Changelog +### Version 2.9.6 Changelog - - The parted terminal has been added - - Compatibility has been achieved with versions below Android 10 (since e2fsprogs, android 10+ was required) - - Language loader functions improved and dynamized. Adding languages will be easier now - - Unnecessary code cleaned up - - Minor bug fixes + - Improved verbose logging. + - Some adjustments were made to increase performance. + - Cleaned up unnecessary e2fsprog sources. + - Code simplified. + - And some minor changes... ``` -END OF 3.0.2 UPDATE CHANGELOG +END OF 2.9.6 UPDATE CHANGELOG ``` diff --git a/README.md b/README.md index 707bd3e..fa2abb4 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Commit reviewed](https://github.com/ShawkTeam/pmt/actions/workflows/check_commits.yml/badge.svg)](https://github.com/ShawkTeam/pmt/actions/workflows/check_commits.yml) -This binary, written with C++, is for writing/reading, formatting and getting size on Android partitions. +This is a binary written with C++ and it is for writing/reading, formatting and getting size on Android partitions. ``` Usage: pmt [OPTIONS] backup PARTITION [OUTPUT] [OPTIONS]... @@ -12,7 +12,7 @@ Usage: pmt [OPTIONS] backup PARTITION [OUTPUT] [OPTIONS]... Options: -l, --logical It is meant to determine whether the target partition is logical. - -c, --context It is meant to specify a custom /dev context. Only classic partitions (default: /dev/block/by-name). + -P, --search-path It is meant to specify a custom partition search path. Only classic partitions (default: /dev/block/by-name). -p, --list List partitions. -s, --silent Information and warning messages are silenced in normal work. -f, --force Force mode. Some things are ignored. @@ -21,55 +21,59 @@ Options: -v, --version See version. --help See this help message. +partition-size flags: + --only-size Only the size is displayed, the partition name etc is not displayed. + --as-byte Display size as byte. + --as-kilobyte Display size as kilobyte. + --as-megabyte Display size as megabyte. + --as-gigabyte Display size as gigabyte. + Examples: - pmt backup boot_a -c /dev/block/platform/bootdevice/by-name + pmt backup boot_a -P /dev/block/platform/bootdevice/by-name pmt flash boot_a /sdcard/twrp/boot.img -c /dev/block/platform/bootdevice/by-name pmt format system_a ext4 --logical - pmt -c /dev/block/platform/bootdevice/by-name --list + pmt -P /dev/block/platform/bootdevice/by-name --list + pmt partition-size boot --as-byte + pmt partition-size system --only-size --as-gigabyte --logical Report bugs and suggestions to ``` -#### Some notes +### Notes -- pmt supports multiple languages. [See languages.](https://github.com/ShawkTeam/pmt/blob/2.9.0/LANGUAGES.md) -- [Add language.](https://github.com/ShawkTeam/pmt/blob/2.9.0/ADD-LANGUAGES.md) +- pmt now supports multiple languages. [See languages.](https://github.com/ShawkTeam/pmt/blob/2.9.6/LANGUAGES.md) +- [Add a language.](https://github.com/ShawkTeam/pmt/blob/2.9.6/ADD-LANGUAGES.md) - Feel free to ask any questions you want. - Packages are available in publications. - If the logical partition flag is not used, a classic partition is tried to be processing by default. -- [Click to see special version changes.](https://github.com/ShawkTeam/pmt/blob/2.9.0/CHANGELOG.md) -- We are always open to your suggestions and support (developing)! +- [Click to see special version changes.](https://github.com/ShawkTeam/pmt/blob/2.9.6/CHANGELOG.md) +- We are always open to your suggestions and support _(developing)_! -### How is it built? -Make or Android NDK is required to build. +## How to build? +Partition Manager only buildable with Android NDK (make compilation system deprecated). -##### Build with NDK - [Download Android NDK](https://developer.android.com/ndk/downloads) and extract the NDK package. - Clone this repository. And get access to it. ``` -git clone https://github.com/ShawkTeam/pmt -b 2.9.0 +git clone https://github.com/ShawkTeam/pmt -b 2.9.6 cd pmt ``` - Set the NDK working directory variable. ``` -make gen-ndk-makefiles -# If you fail the audit etc, use FORCE_GEN. -# Example: - make gen-ndk-makefiles FORCE_GEN=true +export NDK_PROJECT_PATH="${PWD}" # or where the source directory is everywhere +export NDK_ROOT_DIR= # Note that if the NDK is in the directory -# Required by Android NDK -export NDK_PROJECT_PATH="${PWD}" +# Generate clang version header +bash build/bash/gen-header ``` - Go to the NDK directory and start the build ``` -# Required for creating clang version information and directory access -export NDK_ROOT_DIR="${PWD}" -cd "${NDK_PROJECT_PATH}" \ -&& bash build/bash/gen-header \ -&& cd "${NDK_ROOT_DIR}" - -# Start build ./ndk-build + +# Permission denied? Change mode and retry +(sudo) chmod +x ndk-build +# OR +(sudo) chmod 755 ndk-build ``` - The output files will be inside the `pmt` folder. Binaries are available in two architectures within the `libs` folder. `arm64-v8a` (64-bit) and `armeabi-v7a` (32-bit). ``` @@ -86,77 +90,40 @@ cd "${NDK_PROJECT_PATH}" \ pmt pmt ``` -##### Build with Makefiles +### Manage pmt with termux script + - Download script. ``` -# Setup environment -pkg update \ -&& pkg upgrade -y \ -&& pkg install make clang binutils xz-utils -y - -# Start build -make - -# To specify clang, just use PMT_CXX= next to the command (and same logic in AR) -# Example: - make PMT_CXX=${PWD}/../toolchain/bin/clang-18 - make PMT_AR=${PWD}/../toolchain/bin/ar - make PMT_CXX=${PWD}/../toolchain/bin/clang-18 PMT_AR=${PWD}/../toolchain/bin/ar - -# Speficying extra compiler flags on cmd. Example: - make PMT_EXTRA_CXXFLAGS="-O2" - -# Use termux :D - -# Cleaning working directory -make clean - -# Rebuild -make rebuild - -# Install -make install - -# Uninstall -make uninstall - -# Re-install (install & uninstall) -make reinstall - -# Manage pmt with termux script -## Download script -curl -LSs https://github.com/ShawkTeam/pmt/raw/2.9.0/pmt-termux.sh > pmt-termux.sh - +curl -LSs https://github.com/ShawkTeam/pmt/raw/2.9.6/pmt-termux.sh > pmt-termux.sh +``` + - Some informations... +``` ## View script help bash pmt-termux.sh # --help (optional) ## The commands will be told to you anyway. Ask your questions from the telegram group. - -``` - - For the make installable debian package: - -``` -make deb - -# Examples - make deb FOR_THIS=64 - make deb FOR_THIS=32 ``` ### How to use ``` -# Run +# Directly access root shell /system/bin/su + +# If you are using termux, use with +# tsu (sudo) will be a better choice +pkg install -y tsu # install tsu (sudo) + +sudo ``` - If you have installed the deb package of pmt, installed it with a makefile, or installed it to `$PATH` using any path, just the name of the pmt is enough (or the file name if you did it manually) ``` -pmt <...> +(sudo) pmt ``` -- If you have not done this type of institution, pmt is in the directory where you are present you can run with `./`. +- If you have not done this type of institution, pmt is in the directory where you are present you can run with `(sudo) ./`. ``` -./pmt <...> # or whatever the file name is +(sudo) ./pmt # or whatever the file name is ``` ### Notes diff --git a/build/bash/gen-header b/build/bash/gen-header index 24ade04..233382c 100755 --- a/build/bash/gen-header +++ b/build/bash/gen-header @@ -14,15 +14,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -[ -z ${NDK_ROOT_DIR} ] \ -&& echo "Please set NDK_ROOT_DIR variable!" \ -&& exit 1 +[ -z ${NDK_ROOT_DIR} ] && \ + { + echo "Please set NDK_ROOT_DIR variable!" + exit 1 + } -[ -z ${NDK_PROJECT_PATH} ] \ -&& echo "Please set NDK_PROJECT_PATH variable!" \ -&& exit 1 +[ -z ${NDK_PROJECT_PATH} ] && \ + { + echo "Please set NDK_PROJECT_PATH variable!" + exit 1 + } -CXX_IS="${NDK_ROOT_DIR}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang++" +CXX_IS="${NDK_ROOT_DIR}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clang++" CXX_VERS=$(${CXX_IS} --version | head -n 1) mkdir -p ${NDK_PROJECT_PATH}/include/PartitionManager/generated diff --git a/build/mandoc/mandoc b/build/mandoc/mandoc index cd42a68..19e3f2c 100755 --- a/build/mandoc/mandoc +++ b/build/mandoc/mandoc @@ -14,7 +14,7 @@ .\" See the License for the specific language governing permissions and .\" limitations under the License. .\" -.TH "PMT" "8" "December 2024" "PMT 3.0.2" "Partition Manager" +.TH "PMT" "8" "October 2024" "PMT 2.9.6" "Partition Manager" .SH NAME .B pmt \- Android Partition Manager Tool @@ -41,11 +41,6 @@ .I PARTITION {OPTIONS}... ] [ -.I {OPTIONS} -.B start-parted -.I \[DEVICE\] {OPTIONS} -] -[ .B \-l | .B \-\-logical @@ -91,7 +86,7 @@ ] .SH DESCRIPTION .B pmt -is a tool made to professionaly manage with parted, read android parts, make flash and format. Written with C++ language. It was first created as only a hobby but subsequently serialized +is a tool made to read android parts, make flash and format. Written with C++ language. It was first created as only a hobby but subsequently serialized .PP .SH OPTIONS .sp diff --git a/build/workflow/build.config b/build/workflow/build.config index 425b72c..3da624f 100755 --- a/build/workflow/build.config +++ b/build/workflow/build.config @@ -1,5 +1,5 @@ -export PMT_VERSION="3.0.2" -export PMT_VERSION_CODE=302 -export NDK_VERSION="r27c" +export PMT_VERSION="2.9.6" +export PMT_VERSION_CODE=296 +export NDK_VERSION="r27" export NDK_IS="android-ndk" export NDK_LINK="https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux.zip" diff --git a/build/workflow/relnotes b/build/workflow/relnotes index 5717335..e407dec 100755 --- a/build/workflow/relnotes +++ b/build/workflow/relnotes @@ -1,4 +1,4 @@ -echo -e "\`${CC_VERSION}\` +echo -e "\`${CXX_VERSION}\` Version and code: \`${PMT_VERSION}\`/\`${PMT_VERSION_CODE}\` Supported architectures: \`arm64-v8a\` (64-bit), \`armeabi-v7a\` (32-bit) diff --git a/include/PartitionManager/Alternatives.h b/include/PartitionManager/Alternatives.h deleted file mode 100755 index 86a5aef..0000000 --- a/include/PartitionManager/Alternatives.h +++ /dev/null @@ -1,36 +0,0 @@ -/* By YZBruh */ - -/** - * Copyright 2024 Partition Manager - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if __has_include("config.h") -#include "config.h" -#endif -#include -#include - -ssize_t getrandom(void* buf, size_t buflen, unsigned int flags); -int getentropy(void* buf, size_t buflen); -char* _Nullable hasmntopt(const struct mntent* mnt, const char* opt); -void* _Nullable reallocarray(void* ptr, size_t count, size_t size); - -#ifdef __cplusplus -} -#endif diff --git a/include/PartitionManager/Deprecates.h b/include/PartitionManager/Deprecates.h index c3d9ac4..afb71c2 100755 --- a/include/PartitionManager/Deprecates.h +++ b/include/PartitionManager/Deprecates.h @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -19,84 +19,81 @@ #pragma once /* annotated macros */ -#define DeprecatedOption 1 -#define ChangedOption 2 -#define EndDeprcationPoint 0 -#define NotChanged 0 -#define NotChangedLong nullptr +#define DeprecatedOption 1 +#define ChangedOption 2 +#define EndDeprcationPoint 0 +#define NotChanged 0 +#define NotChangedLong nullptr -/* version table */ -#define v150 "1.5.0" -#define v160 "1.6.0" -#define v170 "1.7.0" -#define v180 "1.8.0" -#define v190 "1.9.0" -#define v200 "2.0.0" -#define v210 "2.1.0" -#define v220 "2.2.0" -#define v230 "2.3.0" -#define v240 "2.4.0" -#define v250 "2.5.0" -#define v260 "2.6.0" -#define v270 "2.7.0" -#define v280 "2.8.0" -#define v290 "2.9.0" -#define v291 "2.9.1" -#define v296 "2.9.6" -#define v302 "3.0.2" +/* versions */ +#define v150 "1.5.0" +#define v160 "1.6.0" +#define v170 "1.7.0" +#define v180 "1.8.0" +#define v190 "1.9.0" +#define v200 "2.0.0" +#define v210 "2.1.0" +#define v220 "2.2.0" +#define v230 "2.3.0" +#define v240 "2.4.0" +#define v250 "2.5.0" +#define v260 "2.6.0" +#define v270 "2.7.0" +#define v280 "2.8.0" +#define v290 "2.9.0" +#define v291 "2.9.1" +#define v296 "2.9.6" #define vUNKNOWN nullptr struct DeprecationVarTab { - const int DeprecationType; - const int Option; - const int Option_new; - const char* Option_long; - const char* Option_long_new; - const char* DeprecatedOnVersion; + const int DeprecationType; + const int Option; + const int Option_new; + const char* Option_long; + const char* Option_long_new; + const char* DeprecatedOnVersion; }; static struct DeprecationVarTab DeprecationTable[] = { - {DeprecatedOption, 'b', NotChanged, "backup", NotChangedLong, v210}, - {DeprecatedOption, 'F', NotChanged, "flash", NotChangedLong, v210}, - {DeprecatedOption, 'r', NotChanged, "format", NotChangedLong, v210}, - {DeprecatedOption, 'L', NotChanged, "license", NotChangedLong, v250}, - {ChangedOption, 'D', 'p', "list", NotChangedLong, v210}, - {ChangedOption, 'c', 'P', "context", "search-path", v290}, - {EndDeprcationPoint, NotChanged, NotChanged, NotChangedLong, NotChanged, vUNKNOWN} + {DeprecatedOption, 'b', NotChanged, "backup", NotChangedLong, v210}, + {DeprecatedOption, 'F', NotChanged, "flash", NotChangedLong, v210}, + {DeprecatedOption, 'r', NotChanged, "format", NotChangedLong, v210}, + {DeprecatedOption, 'L', NotChanged, "license", NotChangedLong, v250}, + {ChangedOption, 'D', 'p', "list", NotChangedLong, v210}, + {ChangedOption, 'c', 'P', "context", "search-path", v290}, + {EndDeprcationPoint, NotChanged, NotChanged, NotChangedLong, NotChanged, vUNKNOWN} }; static void __process_deprecated_opts(int Opt, const string& OptionLong, const char* DeprecationMsg) { - string LongErrMsg = (OptionLong.empty()) ? PartitionManager::Display::UsingDispString->not_changed_opt : OptionLong; + string LongErrMsg = (OptionLong.empty()) ? PartitionManager::Display::UsingDispString->not_changed_opt : OptionLong; - for (int optctrl = 0; DeprecationTable[optctrl].DeprecationType != 0; optctrl++) - { + for (int optctrl = 0; DeprecationTable[optctrl].DeprecationType != 0; optctrl++) + { - if (DeprecationTable[optctrl].DeprecationType == 1) - { - if (Opt == DeprecationTable[optctrl].Option - || strcmp(OptionLong.c_str(), DeprecationTable[optctrl].Option_long) == 0) - LOGD("%s [%s]: -%c (%s): %s\n", - PartitionManager::Display::UsingDispString->depr_opt_str, - DeprecationTable[optctrl].DeprecatedOnVersion, - (char)DeprecationTable[optctrl].Option, - DeprecationTable[optctrl].Option_long, - DeprecationMsg); exit(1); - } - else if (DeprecationTable[optctrl].DeprecationType == 2) - { - if (Opt == DeprecationTable[optctrl].Option - || strcmp(OptionLong.c_str(), DeprecationTable[optctrl].Option_long) == 0) - LOGD("%s [%s]: -%c (%s): %s\n", - PartitionManager::Display::UsingDispString->switched_opt_str, - DeprecationTable[optctrl].DeprecatedOnVersion, - (char)DeprecationTable[optctrl].Option, - LongErrMsg.c_str(), - DeprecationMsg); exit(1); - } + if (DeprecationTable[optctrl].DeprecationType == 1) + { + if (Opt == DeprecationTable[optctrl].Option || strcmp(OptionLong.c_str(), DeprecationTable[optctrl].Option_long) == 0) + LOGD("%s [%s]: -%c (%s): %s\n", + PartitionManager::Display::UsingDispString->depr_opt_str, + DeprecationTable[optctrl].DeprecatedOnVersion, + (char)DeprecationTable[optctrl].Option, + DeprecationTable[optctrl].Option_long, + DeprecationMsg); exit(1); + } + else if (DeprecationTable[optctrl].DeprecationType == 2) + { + if (Opt == DeprecationTable[optctrl].Option || strcmp(OptionLong.c_str(), DeprecationTable[optctrl].Option_long) == 0) + LOGD("%s [%s]: -%c (%s): %s\n", + PartitionManager::Display::UsingDispString->switched_opt_str, + DeprecationTable[optctrl].DeprecatedOnVersion, + (char)DeprecationTable[optctrl].Option, + LongErrMsg.c_str(), + DeprecationMsg); exit(1); + } - } + } } #define DEPR_HANDLE __process_deprecated_opts diff --git a/include/PartitionManager/FileSystemUtils.h b/include/PartitionManager/FileSystemUtils.h index ad5d584..31eb6ee 100755 --- a/include/PartitionManager/FileSystemUtils.h +++ b/include/PartitionManager/FileSystemUtils.h @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/include/PartitionManager/LanguageConfigs.h b/include/PartitionManager/LanguageConfigs.h deleted file mode 100755 index ebec70d..0000000 --- a/include/PartitionManager/LanguageConfigs.h +++ /dev/null @@ -1,40 +0,0 @@ -/* By YZBruh */ - -/** - * Copyright 2024 Partition Manager - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -namespace PartitionManager { - // Config base - struct LanguageConfigs { - string Name; // name of language. e.g.: "en" - string ExName; - struct langdb_general* LanguageStructure; // structure of language - struct langdb_docs* LanguageDocStructure; // structure of language (for docs) - }; - - // Used config by pmt - struct LanguageConfigs LanguageConfig[] { - {"en", "English", &Display::LangEn, &Display::LangDocEn}, - {"tr", "Türkçe", &Display::LangTr, &Display::LangDocTr} - }; - - // Default - struct langdb_general* Display::UsingDispString = nullptr; -} - -/* end of code */ \ No newline at end of file diff --git a/include/PartitionManager/Parted.h b/include/PartitionManager/Parted.h deleted file mode 100755 index 97adb83..0000000 --- a/include/PartitionManager/Parted.h +++ /dev/null @@ -1,25 +0,0 @@ -/* By YZBruh */ - -/** - * Copyright 2024 Partition Manager - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -extern "C" int parted_main(int argc, char* argv[]); -extern volatile int set_ret; -extern volatile int parted_ret; - -/* end of code */ \ No newline at end of file diff --git a/include/PartitionManager/PartitionManager.h b/include/PartitionManager/PartitionManager.h index f366a65..e651525 100755 --- a/include/PartitionManager/PartitionManager.h +++ b/include/PartitionManager/PartitionManager.h @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -19,78 +19,70 @@ #pragma once #if !defined(__clang__) && !defined(__NDK_BUILD) - #error "Your compiler is NOT clang. Please build with (LLVM) clang." + #error "Your compiler is NOT clang. Please build with (LLVM) clang." #endif -#if INC_MAIN_LIBS - #include - #include - #include - #include - #include - #include - #if IS_MAIN - #include - #endif - #if !defined(HELP_CPP) || !defined(VERSION_CPP) - #include - #include - #include - #include - #endif +#ifdef INC_MAIN_LIBS + #include + #include + #include + #include + #include + #include + #ifdef IS_MAIN + #include + #endif + #if !defined(HELP) || !defined(VERSIONING) + #include + #include + #include + #include + #endif #endif -#if INC_STRINGKEYS - #include +#ifdef INC_STRINGKEYS + #include #endif -#if INC_DIRENT - #include +#ifdef INC_DIRENT + #include #endif -#if INC_STAT - #include +#ifdef INC_STAT + #include #endif -#if INC_DEBUGERS - #include +#ifdef INC_DEBUGERS + #include #endif -#if INC_TOOLS_REQS - #include +#ifdef INC_TOOLS_REQS + #include #endif -#if INC_LIBGEN - #include -#endif -#if INC_PTHREAD - #include +#ifdef INC_LIBGEN + #include #endif using namespace std; /* logging levels */ typedef enum { - LOG_LEVEL_FATAL, - LOG_LEVEL_ERROR, - LOG_LEVEL_WARN, - LOG_LEVEL_DEBUG + LOG_LEVEL_FATAL, + LOG_LEVEL_ERROR, + LOG_LEVEL_WARN, + LOG_LEVEL_DEBUG } LogLevel; /* config structure */ struct Configuration { - /* general boolean tab */ - bool UseLogical; - bool UseCustomSearchPath; - bool UsesSlots; - bool UsesLogical; - bool SilentEnabled; - bool FlashMode; - bool BackupMode; - bool FormatMode; - bool PartedMode; - bool PartSizeViewMode; - bool PartUtilMode; - bool ForceMode; - bool VerboseMode; - bool InstalledOnTermux; - - /* part-size argument bools */ - bool OnlyViewSize; + bool UseLogical; + bool UseCustomSearchPath; + bool UsesSlots; + bool UsesLogical; + bool OnlyViewSize; + bool SilentEnabled; + bool FlashMode; + bool BackupMode; + bool FormatMode; + bool PartSizeViewMode; + bool ForceMode; + bool VerboseMode; + bool InstalledOnTermux; }; /** @@ -111,66 +103,61 @@ extern struct Configuration Config; /* create a special namespace */ namespace PartitionManager { - namespace Strings { - extern string OutputName; - extern string CustomSearchPath; - extern string TargetPartition; - extern string TargetFlashFile; - extern string TargetFormatFS; - extern string PartitionType; - extern string Device; - extern string ExecutingName; - extern string CurrentLanguage; - } /* namespace Strings */ + namespace Strings { + extern string OutputName; + extern string CustomSearchPath; + extern string TargetPartition; + extern string TargetFlashFile; + extern string TargetFormatFS; + extern string PartitionType; + extern string ExecutingName; + extern string CurrentLanguage; + } /* namespace Strings */ - namespace Integers { - extern int PartSizeViewType; - } /* namespace Integers */ + namespace Integers { + extern int PartSizeViewType; + } /* namespace Integers */ - namespace Display { - extern struct langdb_general* UsingDispString; - extern struct langdb_docs* UsingDocDispString; - extern struct langdb_general LangEn; - extern struct langdb_general LangTr; - extern struct langdb_docs LangDocEn; - extern struct langdb_docs LangDocTr; - } /* namespace Display */ + namespace Display { + extern struct langdb_general* UsingDispString; + extern struct langdb_docs* UsingDocDispString; + extern struct langdb_general LangEn; + extern struct langdb_general LangTr; + extern struct langdb_docs LangDocEn; + extern struct langdb_docs LangDocTr; + } /* namespace Display */ - /* functions */ - int ListPartitions(void); - int GetState(const string& filepath, const string& stype = "file"); - int PartitionManagerMain(const ushort_t& progress_code); - int StartParted(void); - void SetLanguage(const string& lang, ushort_t null_conf_stat); - void DisplaySupportedLanguages(void); - void DisplayLog(LogLevel LogPriority, const char* fmt, ...); - void DisplayVerboseLog(LogLevel LogPriority, const char* func, const int& line, const char* fmt, ...); - void CheckDevPoint(void); - void CheckRoot(void); - bool CleanSWPoint(void); - bool LoadLanguage(void); - bool SearchDevice(const string& DevicePath); - bool SearchDefaultDevices(void); + /* functions */ + int ListPartitions(void); + int GetState(const string& filepath, const string& stype = "file"); + int PartitionManagerMain(const ushort_t& progress_code); + void SetLanguage(const string& lang, ushort_t null_conf_stat); + void DisplayLog(LogLevel LogPriority, const char* fmt, ...); + void DisplayVerboseLog(LogLevel LogPriority, const char* func, const int& line, const char* fmt, ...); + void CheckDevPoint(void); + void CheckRoot(void); + bool CleanSWPoint(void); + bool LoadLanguage(void); } /* namespace PartitionManager */ /* logging macros */ #define LOGF(fmt, ...) \ - ((void)PartitionManager::DisplayLog(LOG_LEVEL_FATAL, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayLog(LOG_LEVEL_FATAL, (fmt)__VA_OPT__(, ) __VA_ARGS__)) #define LOGE(fmt, ...) \ - ((void)PartitionManager::DisplayLog(LOG_LEVEL_ERROR, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayLog(LOG_LEVEL_ERROR, (fmt)__VA_OPT__(, ) __VA_ARGS__)) #define LOGW(fmt, ...) \ - ((void)PartitionManager::DisplayLog(LOG_LEVEL_WARN, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayLog(LOG_LEVEL_WARN, (fmt)__VA_OPT__(, ) __VA_ARGS__)) #define LOGD(fmt, ...) \ - ((void)PartitionManager::DisplayLog(LOG_LEVEL_DEBUG, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayLog(LOG_LEVEL_DEBUG, (fmt)__VA_OPT__(, ) __VA_ARGS__)) /* verbose logging macros */ #define VLOGF(fmt, ...) \ - ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_FATAL, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_FATAL, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) #define VLOGE(fmt, ...) \ - ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_ERROR, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_ERROR, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) #define VLOGW(fmt, ...) \ - ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_WARN, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_WARN, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) #define VLOGD(fmt, ...) \ - ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_DEBUG, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) + ((void)PartitionManager::DisplayVerboseLog(LOG_LEVEL_DEBUG, __func__, __LINE__, (fmt)__VA_OPT__(, ) __VA_ARGS__)) /* end of code */ diff --git a/include/PartitionManager/StringKeys.h b/include/PartitionManager/StringKeys.h index 9295919..4146427 100755 --- a/include/PartitionManager/StringKeys.h +++ b/include/PartitionManager/StringKeys.h @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -20,121 +20,113 @@ /* The struct is a very good option for setting the languages of texts etc. */ struct langdb_general { - const char* _Nonnull lang_by_s; - const char* _Nonnull language; - const char* _Nonnull lang_prefix; - const char* _Nonnull not_logical; - const char* _Nonnull not_file; - const char* _Nonnull not_dir; - const char* _Nonnull not_in_dev; - const char* _Nonnull not_open; - const char* _Nonnull not_block; - const char* _Nonnull not_read; - const char* _Nonnull not_readdir; - const char* _Nonnull not_write; - const char* _Nonnull not_gen; - const char* _Nonnull no_root; - const char* _Nonnull expected_backup_arg; - const char* _Nonnull expected_flash_arg; - const char* _Nonnull expected_format_arg; - const char* _Nonnull expected_partsz_arg; - const char* _Nonnull expected_partutil_arg; - const char* _Nonnull missing_operand; - const char* _Nonnull multiple_wiewers; - const char* _Nonnull symbol_rule; - const char* _Nonnull req_part_name; - const char* _Nonnull part_not_found; - const char* _Nonnull unsupported_fs; - const char* _Nonnull cannot_stat; - const char* _Nonnull ffile_more_part; - const char* _Nonnull cannot_get_bsz; - const char* _Nonnull format_fail; - const char* _Nonnull fail_get_psize; - const char* _Nonnull depr_backup_opt; - const char* _Nonnull depr_flash_opt; - const char* _Nonnull depr_format_opt; - const char* _Nonnull depr_Vlicense_opt; - const char* _Nonnull depr_ch_list_opt; - const char* _Nonnull depr_ch_sp_opt; - const char* _Nonnull not_spec_opt; - const char* _Nonnull some_spec; - const char* _Nonnull logical_warn; - const char* _Nonnull ab_warn; - const char* _Nonnull out_not_spec; - const char* _Nonnull no_found_on_process; - const char* _Nonnull please_rerun; - const char* _Nonnull part_disk_sz; - const char* _Nonnull flash_file_sz; - const char* _Nonnull part_disk_sz_fail; - const char* _Nonnull flash_file_sz_fail; - const char* _Nonnull found_defdevice; - const char* _Nonnull cannot_find_any_defdevice; - const char* _Nonnull cannot_find_device; - const char* _Nonnull not_spec_device_on_args; - const char* _Nonnull starting_parted; - const char* _Nonnull exited_with; - const char* _Nonnull unknown_opr; - const char* _Nonnull req_an_arg; - const char* _Nonnull list_of_general; - const char* _Nonnull list_of_logc; - const char* _Nonnull success_backup; - const char* _Nonnull success_flash; - const char* _Nonnull success_format; - const char* _Nonnull formatting; - const char* _Nonnull warn; - const char* _Nonnull fatal; - const char* _Nonnull is_requires_arg; - const char* _Nonnull only_partsz_args; - const char* _Nonnull unknw_arg; - const char* _Nonnull switching_lang; - const char* _Nonnull welcome; - const char* _Nullable welcome_; - const char* _Nonnull for_more; - const char* _Nonnull s_and_v; - const char* _Nonnull try_h; - const char* _Nonnull usage_head; - const char* _Nonnull depr_opt_str; - const char* _Nonnull switched_opt_str; - const char* _Nonnull not_changed_opt; - const char* _Nonnull compiler_str; - const char* _Nonnull version_str; - const char* _Nonnull bin_str; - const char* _Nonnull part_name; - const char* _Nonnull part_type; - const char* _Nonnull fs_str; - const char* _Nonnull unknw_str; - const char* _Nonnull by_str; - const char* _Nonnull yes; - const char* _Nonnull no; + const char* _Nonnull lang_by_s; + const char* _Nonnull language; + const char* _Nonnull lang_prefix; + const char* _Nonnull not_logical; + const char* _Nonnull not_file; + const char* _Nonnull not_dir; + const char* _Nonnull not_in_dev; + const char* _Nonnull not_open; + const char* _Nonnull not_block; + const char* _Nonnull not_read; + const char* _Nonnull not_readdir; + const char* _Nonnull not_write; + const char* _Nonnull not_gen; + const char* _Nonnull no_root; + const char* _Nonnull expected_backup_arg; + const char* _Nonnull expected_flash_arg; + const char* _Nonnull expected_format_arg; + const char* _Nonnull expected_partsz_arg; + const char* _Nonnull missing_operand; + const char* _Nonnull multiple_wiewers; + const char* _Nonnull symbol_rule; + const char* _Nonnull req_part_name; + const char* _Nonnull part_not_found; + const char* _Nonnull unsupported_fs; + const char* _Nonnull cannot_stat; + const char* _Nonnull ffile_more_part; + const char* _Nonnull cannot_get_bsz; + const char* _Nonnull format_fail; + const char* _Nonnull fail_get_psize; + const char* _Nonnull depr_backup_opt; + const char* _Nonnull depr_flash_opt; + const char* _Nonnull depr_format_opt; + const char* _Nonnull depr_Vlicense_opt; + const char* _Nonnull depr_ch_list_opt; + const char* _Nonnull depr_ch_sp_opt; + const char* _Nonnull not_spec_opt; + const char* _Nonnull some_spec; + const char* _Nonnull logical_warn; + const char* _Nonnull ab_warn; + const char* _Nonnull out_not_spec; + const char* _Nonnull no_found_on_process; + const char* _Nonnull please_rerun; + const char* _Nonnull part_disk_sz; + const char* _Nonnull flash_file_sz; + const char* _Nonnull part_disk_sz_fail; + const char* _Nonnull flash_file_sz_fail; + const char* _Nonnull unknown_opr; + const char* _Nonnull req_an_arg; + const char* _Nonnull list_of_general; + const char* _Nonnull list_of_logc; + const char* _Nonnull success_backup; + const char* _Nonnull success_flash; + const char* _Nonnull success_format; + const char* _Nonnull formatting; + const char* _Nonnull warn; + const char* _Nonnull fatal; + const char* _Nonnull is_requires_arg; + const char* _Nonnull only_partsz_args; + const char* _Nonnull unknw_arg; + const char* _Nonnull switching_lang; + const char* _Nonnull welcome; + const char* _Nullable welcome_; + const char* _Nonnull for_more; + const char* _Nonnull s_and_v; + const char* _Nonnull try_h; + const char* _Nonnull usage_head; + const char* _Nonnull depr_opt_str; + const char* _Nonnull switched_opt_str; + const char* _Nonnull not_changed_opt; + const char* _Nonnull compiler_str; + const char* _Nonnull version_str; + const char* _Nonnull bin_str; + const char* _Nonnull part_name; + const char* _Nonnull part_type; + const char* _Nonnull fs_str; + const char* _Nonnull unknw_str; + const char* _Nonnull by_str; + const char* _Nonnull yes; + const char* _Nonnull no; }; /* docs etc. */ struct langdb_docs { - const char* _Nonnull docs_strs_l1; - const char* _Nonnull docs_strs_l2; - const char* _Nonnull docs_strs_l3; - const char* _Nonnull docs_strs_l4; - const char* _Nonnull docs_strs_l5; - const char* _Nonnull docs_strs_l6; - const char* _Nonnull docs_strs_l7; - const char* _Nonnull docs_strs_l8; - const char* _Nonnull docs_strs_l9; - const char* _Nonnull docs_strs_l10; - const char* _Nonnull docs_strs_l11; - const char* _Nonnull docs_strs_l12; - const char* _Nonnull docs_strs_l13; - const char* _Nonnull docs_strs_l14; - const char* _Nonnull docs_strs_l15; - const char* _Nonnull docs_strs_l16; - const char* _Nonnull docs_strs_l17; - const char* _Nonnull docs_strs_l18; - const char* _Nonnull docs_strs_l19; - const char* _Nonnull docs_strs_l20; - const char* _Nonnull docs_strs_l21; - const char* _Nonnull docs_strs_l22; - const char* _Nonnull docs_strs_l23; - const char* _Nonnull or_str; - const char* _Nonnull usage_docstr; + const char* _Nonnull docs_strs_l1; + const char* _Nonnull docs_strs_l2; + const char* _Nonnull docs_strs_l3; + const char* _Nonnull docs_strs_l4; + const char* _Nonnull docs_strs_l5; + const char* _Nonnull docs_strs_l6; + const char* _Nonnull docs_strs_l7; + const char* _Nonnull docs_strs_l8; + const char* _Nonnull docs_strs_l9; + const char* _Nonnull docs_strs_l10; + const char* _Nonnull docs_strs_l11; + const char* _Nonnull docs_strs_l12; + const char* _Nonnull docs_strs_l13; + const char* _Nonnull docs_strs_l14; + const char* _Nonnull docs_strs_l15; + const char* _Nonnull docs_strs_l16; + const char* _Nonnull docs_strs_l17; + const char* _Nonnull docs_strs_l18; + const char* _Nonnull docs_strs_l19; + const char* _Nonnull docs_strs_l20; + const char* _Nonnull docs_strs_l21; + const char* _Nonnull docs_strs_l22; + const char* _Nonnull or_str; + const char* _Nonnull usage_docstr; }; /* end of code */ diff --git a/include/PartitionManager/VersionFnVars.h b/include/PartitionManager/VersionFnVars.h index e121daa..50fe7b6 100755 --- a/include/PartitionManager/VersionFnVars.h +++ b/include/PartitionManager/VersionFnVars.h @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -23,10 +23,12 @@ #include /* versioning */ -#define PMT_MAJOR 3 -#define PMT_MINOR 0 -#define PMT_PATCHLEVEL 2 +#define PMT_MAJOR 2 +#define PMT_MINOR 9 +#define PMT_PATCHLEVEL 6 -namespace PartitionManager { void DisplayVersion(void); } +namespace PartitionManager { + void DisplayVersion(void); +} /* end */ diff --git a/include/e2fsprogs/blkid/blkid.h b/include/e2fsprogs/blkid/blkid.h new file mode 100755 index 0000000..0eb0770 --- /dev/null +++ b/include/e2fsprogs/blkid/blkid.h @@ -0,0 +1,496 @@ +/* + * blkid.h - Interface for libblkid, a library to identify block devices + * + * Copyright (C) 2001 Andreas Dilger + * Copyright (C) 2003 Theodore Ts'o + * Copyright (C) 2008 Karel Zak + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _BLKID_BLKID_H +#define _BLKID_BLKID_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * blkid_dev: + * + * The device object keeps information about one device + */ +typedef struct blkid_struct_dev *blkid_dev; + +/** + * blkid_cache: + * + * information about all system devices + */ +typedef struct blkid_struct_cache *blkid_cache; + +/** + * blkid_probe: + * + * low-level probing setting + */ +typedef struct blkid_struct_probe *blkid_probe; + +/** + * blkid_topology: + * + * device topology information + */ +typedef struct blkid_struct_topology *blkid_topology; + +/** + * blkid_partlist + * + * list of all detected partitions and partitions tables + */ +typedef struct blkid_struct_partlist *blkid_partlist; + +/** + * blkid_partition: + * + * information about a partition + */ +typedef struct blkid_struct_partition *blkid_partition; + +/** + * blkid_parttable: + * + * information about a partition table + */ +typedef struct blkid_struct_parttable *blkid_parttable; + +/** + * blkid_loff_t: + * + * 64-bit signed number for offsets and sizes + */ +typedef int64_t blkid_loff_t; + +/** + * blkid_tag_iterate: + * + * tags iterator for high-level (blkid_cache) API + */ +typedef struct blkid_struct_tag_iterate *blkid_tag_iterate; + +/** + * blkid_dev_iterate: + * + * devices iterator for high-level (blkid_cache) API + */ +typedef struct blkid_struct_dev_iterate *blkid_dev_iterate; + +/* + * Flags for blkid_get_dev + * + * BLKID_DEV_CREATE Create an empty device structure if not found + * in the cache. + * BLKID_DEV_VERIFY Make sure the device structure corresponds + * with reality. + * BLKID_DEV_FIND Just look up a device entry, and return NULL + * if it is not found. + * BLKID_DEV_NORMAL Get a valid device structure, either from the + * cache or by probing the device. + */ +#define BLKID_DEV_FIND 0x0000 +#define BLKID_DEV_CREATE 0x0001 +#define BLKID_DEV_VERIFY 0x0002 +#define BLKID_DEV_NORMAL (BLKID_DEV_CREATE | BLKID_DEV_VERIFY) + + +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#ifndef __ul_attribute__ +# if __GNUC_PREREQ (3, 4) +# define __ul_attribute__(_a_) __attribute__(_a_) +# else +# define __ul_attribute__(_a_) +# endif +#endif + +/* init.c */ +extern void blkid_init_debug(int mask); + +/* cache.c */ +extern void blkid_put_cache(blkid_cache cache); +extern int blkid_get_cache(blkid_cache *cache, const char *filename); +extern void blkid_gc_cache(blkid_cache cache); + +/* dev.c */ +extern const char *blkid_dev_devname(blkid_dev dev) + __ul_attribute__((warn_unused_result)); + +extern blkid_dev_iterate blkid_dev_iterate_begin(blkid_cache cache); +extern int blkid_dev_set_search(blkid_dev_iterate iter, + const char *search_type, const char *search_value); +extern int blkid_dev_next(blkid_dev_iterate iterate, blkid_dev *dev); +extern void blkid_dev_iterate_end(blkid_dev_iterate iterate); + +/* devno.c */ +extern char *blkid_devno_to_devname(dev_t devno) + __ul_attribute__((warn_unused_result)); +extern int blkid_devno_to_wholedisk(dev_t dev, char *diskname, + size_t len, dev_t *diskdevno) + __ul_attribute__((warn_unused_result)); + +/* devname.c */ +extern int blkid_probe_all(blkid_cache cache); +extern int blkid_probe_all_new(blkid_cache cache); +extern int blkid_probe_all_removable(blkid_cache cache); + +extern blkid_dev blkid_get_dev(blkid_cache cache, const char *devname, int flags); + +/* getsize.c */ +extern blkid_loff_t blkid_get_dev_size(int fd); + +/* verify.c */ +extern blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev); + +/* read.c */ + +/* resolve.c */ +extern char *blkid_get_tag_value(blkid_cache cache, const char *tagname, + const char *devname) + __ul_attribute__((warn_unused_result)); +extern char *blkid_get_devname(blkid_cache cache, const char *token, + const char *value) + __ul_attribute__((warn_unused_result)); + +/* tag.c */ +extern blkid_tag_iterate blkid_tag_iterate_begin(blkid_dev dev); +extern int blkid_tag_next(blkid_tag_iterate iterate, + const char **type, const char **value); +extern void blkid_tag_iterate_end(blkid_tag_iterate iterate); +extern int blkid_dev_has_tag(blkid_dev dev, const char *type, const char *value); + +extern blkid_dev blkid_find_dev_with_tag(blkid_cache cache, + const char *type, + const char *value); + +extern int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val); + +/* version.c */ +extern int blkid_parse_version_string(const char *ver_string) + __ul_attribute__((nonnull)); +extern int blkid_get_library_version(const char **ver_string, + const char **date_string); + +/* encode.c */ +extern int blkid_encode_string(const char *str, char *str_enc, size_t len); +extern int blkid_safe_string(const char *str, char *str_safe, size_t len); + +/* evaluate.c */ +extern int blkid_send_uevent(const char *devname, const char *action); +extern char *blkid_evaluate_tag(const char *token, const char *value, + blkid_cache *cache) + __ul_attribute__((warn_unused_result)); +extern char *blkid_evaluate_spec(const char *spec, blkid_cache *cache) + __ul_attribute__((warn_unused_result)); + +/* probe.c */ +extern blkid_probe blkid_new_probe(void) + __ul_attribute__((warn_unused_result)); +extern blkid_probe blkid_new_probe_from_filename(const char *filename) + __ul_attribute__((warn_unused_result)) + __ul_attribute__((nonnull)); +extern void blkid_free_probe(blkid_probe pr); + +extern void blkid_reset_probe(blkid_probe pr); +extern int blkid_probe_reset_buffers(blkid_probe pr); +extern int blkid_probe_hide_range(blkid_probe pr, uint64_t off, uint64_t len); + +extern int blkid_probe_set_device(blkid_probe pr, int fd, + blkid_loff_t off, blkid_loff_t size) + __ul_attribute__((nonnull)); + +extern dev_t blkid_probe_get_devno(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern dev_t blkid_probe_get_wholedisk_devno(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern int blkid_probe_is_wholedisk(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern blkid_loff_t blkid_probe_get_size(blkid_probe pr) + __ul_attribute__((nonnull)); +extern blkid_loff_t blkid_probe_get_offset(blkid_probe pr) + __ul_attribute__((nonnull)); +extern unsigned int blkid_probe_get_sectorsize(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_probe_set_sectorsize(blkid_probe pr, unsigned int sz) + __ul_attribute__((nonnull)); +extern blkid_loff_t blkid_probe_get_sectors(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern int blkid_probe_get_fd(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern int blkid_probe_set_hint(blkid_probe pr, const char *name, uint64_t value) + __ul_attribute__((nonnull)); +extern void blkid_probe_reset_hints(blkid_probe pr) + __ul_attribute__((nonnull)); + +/* + * superblocks probing + */ +extern int blkid_known_fstype(const char *fstype) + __ul_attribute__((nonnull)); + +extern int blkid_superblocks_get_name(size_t idx, const char **name, int *usage); + +extern int blkid_probe_enable_superblocks(blkid_probe pr, int enable) + __ul_attribute__((nonnull)); + +#define BLKID_SUBLKS_LABEL (1 << 1) /* read LABEL from superblock */ +#define BLKID_SUBLKS_LABELRAW (1 << 2) /* read and define LABEL_RAW result value*/ +#define BLKID_SUBLKS_UUID (1 << 3) /* read UUID from superblock */ +#define BLKID_SUBLKS_UUIDRAW (1 << 4) /* read and define UUID_RAW result value */ +#define BLKID_SUBLKS_TYPE (1 << 5) /* define TYPE result value */ +#define BLKID_SUBLKS_SECTYPE (1 << 6) /* define compatible fs type (second type) */ +#define BLKID_SUBLKS_USAGE (1 << 7) /* define USAGE result value */ +#define BLKID_SUBLKS_VERSION (1 << 8) /* read FS type from superblock */ +#define BLKID_SUBLKS_MAGIC (1 << 9) /* define SBMAGIC and SBMAGIC_OFFSET */ +#define BLKID_SUBLKS_BADCSUM (1 << 10) /* allow a bad checksum */ +#define BLKID_SUBLKS_FSINFO (1 << 11) /* read and define fs properties from superblock */ + +#define BLKID_SUBLKS_DEFAULT (BLKID_SUBLKS_LABEL | BLKID_SUBLKS_UUID | \ + BLKID_SUBLKS_TYPE | BLKID_SUBLKS_SECTYPE) + +extern int blkid_probe_set_superblocks_flags(blkid_probe pr, int flags) + __ul_attribute__((nonnull)); +extern int blkid_probe_reset_superblocks_filter(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_probe_invert_superblocks_filter(blkid_probe pr) + __ul_attribute__((nonnull)); + +/** + * BLKID_FLTR_NOTIN + */ +#define BLKID_FLTR_NOTIN 1 +/** + * BLKID_FLTR_ONLYIN + */ +#define BLKID_FLTR_ONLYIN 2 +extern int blkid_probe_filter_superblocks_type(blkid_probe pr, int flag, char *names[]) + __ul_attribute__((nonnull)); + +#define BLKID_USAGE_FILESYSTEM (1 << 1) +#define BLKID_USAGE_RAID (1 << 2) +#define BLKID_USAGE_CRYPTO (1 << 3) +#define BLKID_USAGE_OTHER (1 << 4) +extern int blkid_probe_filter_superblocks_usage(blkid_probe pr, int flag, int usage) + __ul_attribute__((nonnull)); + +/* + * topology probing + */ +extern int blkid_probe_enable_topology(blkid_probe pr, int enable) + __ul_attribute__((nonnull)); + +/* binary interface */ +extern blkid_topology blkid_probe_get_topology(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern unsigned long blkid_topology_get_alignment_offset(blkid_topology tp) + __ul_attribute__((nonnull)); +extern unsigned long blkid_topology_get_minimum_io_size(blkid_topology tp) + __ul_attribute__((nonnull)); +extern unsigned long blkid_topology_get_optimal_io_size(blkid_topology tp) + __ul_attribute__((nonnull)); +extern unsigned long blkid_topology_get_logical_sector_size(blkid_topology tp) + __ul_attribute__((nonnull)); +extern unsigned long blkid_topology_get_physical_sector_size(blkid_topology tp) + __ul_attribute__((nonnull)); +extern unsigned long blkid_topology_get_dax(blkid_topology tp) + __ul_attribute__((nonnull)); +extern uint64_t blkid_topology_get_diskseq(blkid_topology tp) + __ul_attribute__((nonnull)); + +/* + * partitions probing + */ +extern int blkid_known_pttype(const char *pttype); +extern int blkid_partitions_get_name(const size_t idx, const char **name); + +extern int blkid_probe_enable_partitions(blkid_probe pr, int enable) + __ul_attribute__((nonnull)); + +extern int blkid_probe_reset_partitions_filter(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_probe_invert_partitions_filter(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_probe_filter_partitions_type(blkid_probe pr, int flag, char *names[]) + __ul_attribute__((nonnull)); + +/* partitions probing flags */ +#define BLKID_PARTS_FORCE_GPT (1 << 1) +#define BLKID_PARTS_ENTRY_DETAILS (1 << 2) +#define BLKID_PARTS_MAGIC (1 << 3) +extern int blkid_probe_set_partitions_flags(blkid_probe pr, int flags) + __ul_attribute__((nonnull)); + +/* binary interface */ +extern blkid_partlist blkid_probe_get_partitions(blkid_probe pr) + __ul_attribute__((nonnull)); + +extern int blkid_partlist_numof_partitions(blkid_partlist ls) + __ul_attribute__((nonnull)); +extern blkid_parttable blkid_partlist_get_table(blkid_partlist ls) + __ul_attribute__((nonnull)); +extern blkid_partition blkid_partlist_get_partition(blkid_partlist ls, int n) + __ul_attribute__((nonnull)); +extern blkid_partition blkid_partlist_get_partition_by_partno(blkid_partlist ls, int n) + __ul_attribute__((nonnull)); +extern blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno) + __ul_attribute__((nonnull)); +extern blkid_parttable blkid_partition_get_table(blkid_partition par) + __ul_attribute__((nonnull)); + +extern const char *blkid_partition_get_name(blkid_partition par) + __ul_attribute__((nonnull)); +extern const char *blkid_partition_get_uuid(blkid_partition par) + __ul_attribute__((nonnull)); +extern int blkid_partition_get_partno(blkid_partition par) + __ul_attribute__((nonnull)); +extern blkid_loff_t blkid_partition_get_start(blkid_partition par) + __ul_attribute__((nonnull)); +extern blkid_loff_t blkid_partition_get_size(blkid_partition par) + __ul_attribute__((nonnull)); + +extern int blkid_partition_get_type(blkid_partition par) + __ul_attribute__((nonnull)); +extern const char *blkid_partition_get_type_string(blkid_partition par) + __ul_attribute__((nonnull)); +extern unsigned long long blkid_partition_get_flags(blkid_partition par) + __ul_attribute__((nonnull)); + +extern int blkid_partition_is_logical(blkid_partition par) + __ul_attribute__((nonnull)); +extern int blkid_partition_is_extended(blkid_partition par) + __ul_attribute__((nonnull)); +extern int blkid_partition_is_primary(blkid_partition par) + __ul_attribute__((nonnull)); + +extern const char *blkid_parttable_get_type(blkid_parttable tab) + __ul_attribute__((nonnull)); +extern const char *blkid_parttable_get_id(blkid_parttable tab) + __ul_attribute__((nonnull)); +extern blkid_loff_t blkid_parttable_get_offset(blkid_parttable tab) + __ul_attribute__((nonnull)); +extern blkid_partition blkid_parttable_get_parent(blkid_parttable tab) + __ul_attribute__((nonnull)); + +/* + * NAME=value low-level interface + */ +extern int blkid_do_probe(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_do_safeprobe(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_do_fullprobe(blkid_probe pr) + __ul_attribute__((nonnull)); + +/** + * BLKID_PROBE_OK: + * + * probing return value; superblock (RAID, partiton table, ...) succesfully detected + */ +#define BLKID_PROBE_OK 0 +/** + * BLKID_PROBE_NONE: + * + * probing return value; found nothing + */ +#define BLKID_PROBE_NONE 1 +/** + * BLKID_PROBE_ERROR: + * + * probing return value; probing ends with en error (see errno for more details) + */ +#define BLKID_PROBE_ERROR -1 +/** + * BLKID_PROBE_AMBIGUOUS: + * + * probing return value; more than one probing result, in this case, it's not + * safe to use the device automaticaly and user intervention is recommended + */ +#define BLKID_PROBE_AMBIGUOUS -2 + +extern int blkid_probe_numof_values(blkid_probe pr) + __ul_attribute__((nonnull)); +extern int blkid_probe_get_value(blkid_probe pr, int num, const char **name, + const char **data, size_t *len) + __ul_attribute__((nonnull(1))); +extern int blkid_probe_lookup_value(blkid_probe pr, const char *name, + const char **data, size_t *len) + __ul_attribute__((nonnull(1, 2))); +extern int blkid_probe_has_value(blkid_probe pr, const char *name) + __ul_attribute__((nonnull)); +extern int blkid_do_wipe(blkid_probe pr, int dryrun) + __ul_attribute__((nonnull)); +extern int blkid_probe_step_back(blkid_probe pr) + __ul_attribute__((nonnull)); + +/* + * Deprecated functions/macros + */ +#ifndef BLKID_DISABLE_DEPRECATED + +#define BLKID_PROBREQ_LABEL BLKID_SUBLKS_LABEL +#define BLKID_PROBREQ_LABELRAW BLKID_SUBLKS_LABELRAW +#define BLKID_PROBREQ_UUID BLKID_SUBLKS_UUID +#define BLKID_PROBREQ_UUIDRAW BLKID_SUBLKS_UUIDRAW +#define BLKID_PROBREQ_TYPE BLKID_SUBLKS_TYPE +#define BLKID_PROBREQ_SECTYPE BLKID_SUBLKS_SECTYPE +#define BLKID_PROBREQ_USAGE BLKID_SUBLKS_USAGE +#define BLKID_PROBREQ_VERSION BLKID_SUBLKS_VERSION + +extern int blkid_probe_set_request(blkid_probe pr, int flags) + __ul_attribute__((deprecated)); + +extern int blkid_probe_filter_usage(blkid_probe pr, int flag, int usage) + __ul_attribute__((deprecated)); + +extern int blkid_probe_filter_types(blkid_probe pr, int flag, char *names[]) + __ul_attribute__((deprecated)); + +extern int blkid_probe_invert_filter(blkid_probe pr) + __ul_attribute__((deprecated)); + +extern int blkid_probe_reset_filter(blkid_probe pr) + __ul_attribute__((deprecated)); + +#endif /* BLKID_DISABLE_DEPRECATED */ + +#ifdef __cplusplus +} +#endif + +#endif /* _BLKID_BLKID_H */ diff --git a/include/e2fsprogs/blkid/blkid_local.h b/include/e2fsprogs/blkid/blkid_local.h index 81f3098..7a20ef8 100755 --- a/include/e2fsprogs/blkid/blkid_local.h +++ b/include/e2fsprogs/blkid/blkid_local.h @@ -20,8 +20,8 @@ extern "C" { #endif -#define BLKID_VERSION "1.0.0" -#define BLKID_DATE "12-Feb-2003" +#define BLKID_VERSION "2.40.2" +#define BLKID_DATE "04-Jul-2024" typedef struct blkid_struct_dev *blkid_dev; typedef struct blkid_struct_cache *blkid_cache; diff --git a/include/libcharset/config.h b/include/libcharset/config.h deleted file mode 100755 index fe7f108..0000000 --- a/include/libcharset/config.h +++ /dev/null @@ -1,186 +0,0 @@ -/* config.h. Generated from config.h.in by configure. */ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if the package shall run at any location in the file system. */ -/* #undef ENABLE_RELOCATABLE */ - -/* Define to 1 if you have the `copy_file_range' function. */ -/* #undef HAVE_COPY_FILE_RANGE */ - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define if you have and nl_langinfo(CODESET). */ -#define HAVE_LANGINFO_CODESET 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_O_DYLD_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MINIX_CONFIG_H */ - -/* Define to 1 if you have the `setlocale' function. */ -#define HAVE_SETLOCALE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDIO_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `symlink' function. */ -#define HAVE_SYMLINK 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#define HAVE_VISIBILITY 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_WCHAR_H 1 - -/* Define to 1 if O_NOATIME works. */ -#define HAVE_WORKING_O_NOATIME 0 - -/* Define to 1 if O_NOFOLLOW works. */ -#define HAVE_WORKING_O_NOFOLLOW 0 - -/* Define to 1 if you have the `_NSGetExecutablePath' function. */ -/* #undef HAVE__NSGETEXECUTABLEPATH */ - -/* Define to the value of ${prefix}, as a string. */ -#define INSTALLPREFIX "/usr/local" - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#define LT_OBJDIR ".libs/" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "libcharset" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libcharset 1.5" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "libcharset" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "1.5" - -/* Define to 1 if all of the C90 standard headers exist (not just the ones - required in a freestanding environment). This macro is provided for - backward compatibility; new code need not use it. */ -#define STDC_HEADERS 1 - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# define _ALL_SOURCE 1 -#endif -/* Enable general extensions on macOS. */ -#ifndef _DARWIN_C_SOURCE -# define _DARWIN_C_SOURCE 1 -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif -/* Enable X/Open compliant socket functions that do not require linking - with -lxnet on HP-UX 11.11. */ -#ifndef _HPUX_ALT_XOPEN_SOCKET_API -# define _HPUX_ALT_XOPEN_SOCKET_API 1 -#endif -/* Identify the host operating system as Minix. - This macro does not affect the system headers' behavior. - A future release of Autoconf may stop defining this macro. */ -#ifndef _MINIX -/* # undef _MINIX */ -#endif -/* Enable general extensions on NetBSD. - Enable NetBSD compatibility extensions on Minix. */ -#ifndef _NETBSD_SOURCE -# define _NETBSD_SOURCE 1 -#endif -/* Enable OpenBSD compatibility extensions on NetBSD. - Oddly enough, this does nothing on OpenBSD. */ -#ifndef _OPENBSD_SOURCE -# define _OPENBSD_SOURCE 1 -#endif -/* Define to 1 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_SOURCE -/* # undef _POSIX_SOURCE */ -#endif -/* Define to 2 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_1_SOURCE -/* # undef _POSIX_1_SOURCE */ -#endif -/* Enable POSIX-compatible threading on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# define _POSIX_PTHREAD_SEMANTICS 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ -#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ -#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ -# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ -#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ -# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ -#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ -# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ -#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ -# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ -#ifndef __STDC_WANT_LIB_EXT2__ -# define __STDC_WANT_LIB_EXT2__ 1 -#endif -/* Enable extensions specified by ISO/IEC 24747:2009. */ -#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ -# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# define _TANDEM_SOURCE 1 -#endif -/* Enable X/Open extensions. Define to 500 only if necessary - to make mbstate_t available. */ -#ifndef _XOPEN_SOURCE -/* # undef _XOPEN_SOURCE */ -#endif - diff --git a/include/libcharset/export.h b/include/libcharset/export.h deleted file mode 100755 index 413f3ae..0000000 --- a/include/libcharset/export.h +++ /dev/null @@ -1,8 +0,0 @@ - -#if @HAVE_VISIBILITY@ && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) -#else -#define LIBCHARSET_DLL_EXPORTED -#endif diff --git a/include/libcharset/libcharset.h b/include/libcharset/libcharset.h deleted file mode 100755 index 39cd877..0000000 --- a/include/libcharset/libcharset.h +++ /dev/null @@ -1,53 +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 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with the GNU CHARSET Library; see the file COPYING.LIB. If not, - see . */ - -#ifndef _LIBCHARSET_H -#define _LIBCHARSET_H - -#if 1 && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) -#else -#define LIBCHARSET_DLL_EXPORTED -#endif - -#include - - -#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 LIBCHARSET_DLL_EXPORTED void libcharset_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LIBCHARSET_H */ diff --git a/include/libcharset/localcharset.h b/include/libcharset/localcharset.h deleted file mode 100755 index 58d3e6a..0000000 --- a/include/libcharset/localcharset.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2019 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 Lesser 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see . */ - -#ifndef _LOCALCHARSET_H -#define _LOCALCHARSET_H - -#if 1 && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) -#else -#define LIBCHARSET_DLL_EXPORTED -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. - If the canonical name cannot be determined, the result is a non-canonical - name. */ -extern LIBCHARSET_DLL_EXPORTED const char * locale_charset (void); - -/* About GNU canonical names for character encodings: - - Every canonical name must be supported by GNU libiconv. Support by GNU libc - is also desirable. - - The name is case insensitive. Usually an upper case MIME charset name is - preferred. - - The current list of these GNU canonical names is: - - name MIME? used by which systems - (darwin = Mac OS X, windows = native Windows) - - ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin - ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-3 Y glibc solaris cygwin - ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin - ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-6 Y glibc aix hpux solaris cygwin - ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos - ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos - ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-14 glibc cygwin - ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin - KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin - KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin - 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 openbsd darwin dos - CP869 dos - CP874 windows dos - CP922 aix - CP932 aix cygwin windows dos - CP943 aix zos - CP949 osf darwin windows dos - CP950 windows dos - CP1046 aix - CP1124 aix - CP1125 dos - CP1129 aix - CP1131 freebsd darwin - CP1250 windows - CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows - CP1252 aix windows - CP1253 windows - CP1254 windows - CP1255 glibc windows - CP1256 windows - CP1257 windows - GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos - EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin - EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos - EUC-TW glibc aix hpux irix osf solaris netbsd - BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos - BIG5-HKSCS glibc hpux solaris netbsd darwin - GBK glibc aix osf solaris freebsd darwin cygwin windows dos - GB18030 glibc hpux solaris freebsd netbsd darwin - SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin - JOHAB glibc solaris windows - TIS-620 glibc aix hpux osf solaris cygwin zos - VISCII Y glibc - TCVN5712-1 glibc - ARMSCII-8 glibc freebsd netbsd darwin - GEORGIAN-PS glibc cygwin - PT154 glibc netbsd cygwin - 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 cygwin zos - - 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. - */ - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LOCALCHARSET_H */ diff --git a/include/libgnulib/Makefile b/include/libgnulib/Makefile deleted file mode 100755 index 2e10203..0000000 --- a/include/libgnulib/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# Run "make check" to ensure that the code passes some simple tests, -# usually (always?) not involving compilation. -all: - -check: - ./t-idcache diff --git a/include/libgnulib/README b/include/libgnulib/README deleted file mode 100755 index 100b99d..0000000 --- a/include/libgnulib/README +++ /dev/null @@ -1,3 +0,0 @@ -The files in this directory are used in many GNU packages, -including coreutils, diffutils, and tar. -The autoconf tests required for these files are in ../m4. diff --git a/include/libgnulib/_Noreturn.h b/include/libgnulib/_Noreturn.h deleted file mode 100755 index 9806f2b..0000000 --- a/include/libgnulib/_Noreturn.h +++ /dev/null @@ -1,50 +0,0 @@ -/* A C macro for declaring that a function does not return. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __clang__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif diff --git a/include/libgnulib/acl-internal.h b/include/libgnulib/acl-internal.h deleted file mode 100755 index ef1f84d..0000000 --- a/include/libgnulib/acl-internal.h +++ /dev/null @@ -1,300 +0,0 @@ -/* Internal implementation of access control lists. -*- coding: utf-8 -*- - - Copyright (C) 2002-2003, 2005-2024 Free Software Foundation, Inc. - - 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 3 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, see . - - Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible. */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "acl.h" - -#include - -/* All systems define the ACL related API in . */ -#if HAVE_SYS_ACL_H -# include -#endif -#if defined HAVE_FACL && ! defined GETACLCNT && defined ACL_CNT -# define GETACLCNT ACL_CNT -#endif - -/* On Linux and Cygwin >= 2.5, additional ACL related API is available in - . */ -#ifdef HAVE_ACL_LIBACL_H -# include -#endif - -/* On HP-UX >= 11.11, additional ACL API is available in . */ -#if HAVE_ACLV_H -# include -# include -/* HP-UX 11.11 lacks these declarations. */ -extern int acl (char *, int, int, struct acl *); -extern int aclsort (int, int, struct acl *); -#endif - -#include - -#include - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -#ifndef HAVE_FCHMOD -# define HAVE_FCHMOD false -# define fchmod(fd, mode) (-1) -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef ACL_INTERNAL_INLINE -# define ACL_INTERNAL_INLINE _GL_INLINE -#endif - -#if USE_ACL - -# if HAVE_ACL_GET_FILE -/* POSIX 1003.1e (draft 17 -- abandoned) specific version. */ -/* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ - -# ifndef MIN_ACL_ENTRIES -# define MIN_ACL_ENTRIES 4 -# endif - -/* POSIX 1003.1e (draft 17) */ -# ifdef HAVE_ACL_GET_FD -/* Most platforms have a 1-argument acl_get_fd, only OSF/1 has a 2-argument - macro(!). */ -# if HAVE_ACL_FREE_TEXT /* OSF/1 */ -ACL_INTERNAL_INLINE acl_t -rpl_acl_get_fd (int fd) -{ - return acl_get_fd (fd, ACL_TYPE_ACCESS); -} -# undef acl_get_fd -# define acl_get_fd rpl_acl_get_fd -# endif -# else -# define HAVE_ACL_GET_FD false -# undef acl_get_fd -# define acl_get_fd(fd) (NULL) -# endif - -/* POSIX 1003.1e (draft 17) */ -# ifdef HAVE_ACL_SET_FD -/* Most platforms have a 2-argument acl_set_fd, only OSF/1 has a 3-argument - macro(!). */ -# if HAVE_ACL_FREE_TEXT /* OSF/1 */ -ACL_INTERNAL_INLINE int -rpl_acl_set_fd (int fd, acl_t acl) -{ - return acl_set_fd (fd, ACL_TYPE_ACCESS, acl); -} -# undef acl_set_fd -# define acl_set_fd rpl_acl_set_fd -# endif -# else -# define HAVE_ACL_SET_FD false -# undef acl_set_fd -# define acl_set_fd(fd, acl) (-1) -# endif - -/* POSIX 1003.1e (draft 13) */ -# if ! HAVE_ACL_FREE_TEXT -# define acl_free_text(buf) acl_free (buf) -# endif - -/* Linux-specific */ -/* Cygwin >= 2.5 implements this function, but it returns 1 for all - directories, thus is unusable. */ -# if !defined HAVE_ACL_EXTENDED_FILE || defined __CYGWIN__ -# undef HAVE_ACL_EXTENDED_FILE -# define HAVE_ACL_EXTENDED_FILE false -# define acl_extended_file(name) (-1) -# endif - -# if ! defined HAVE_ACL_FROM_MODE && ! defined HAVE_ACL_FROM_TEXT -# define acl_from_mode (NULL) -# endif - -/* Set to 0 if a file's mode is stored independently from the ACL. */ -# if (HAVE_ACL_COPY_EXT_NATIVE && HAVE_ACL_CREATE_ENTRY_NP) || defined __sgi /* Mac OS X, IRIX */ -# define MODE_INSIDE_ACL 0 -# endif - -/* Return the number of entries in ACL. - Return -1 and set errno upon failure to determine it. */ -/* Define a replacement for acl_entries if needed. (Only Linux has it.) */ -# if !HAVE_ACL_ENTRIES -# define acl_entries rpl_acl_entries -extern int acl_entries (acl_t); -# endif - -# if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */ -/* ACL is an ACL, from a file, stored as type ACL_TYPE_EXTENDED. - Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial. */ -extern int acl_extended_nontrivial (acl_t); -# else -/* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS. - Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. - Return -1 and set errno upon failure to determine it. */ -extern int acl_access_nontrivial (acl_t); - -/* ACL is an ACL, from a file, stored as type ACL_TYPE_DEFAULT. - Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. - Return -1 and set errno upon failure to determine it. */ -extern int acl_default_nontrivial (acl_t); -# endif - -# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */ - -/* Set to 0 if a file's mode is stored independently from the ACL. */ -# if defined __CYGWIN__ /* Cygwin */ -# define MODE_INSIDE_ACL 0 -# endif - -/* Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */ -extern int acl_nontrivial (int count, aclent_t *entries) _GL_ATTRIBUTE_PURE; - -# ifdef ACE_GETACL /* Solaris 10 */ - -/* Test an ACL retrieved with ACE_GETACL. - Return 1 if the given ACL, consisting of COUNT entries, is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */ -extern int acl_ace_nontrivial (int count, ace_t *entries) _GL_ATTRIBUTE_PURE; - -/* Definitions for when the built executable is executed on Solaris 10 - (newer version) or Solaris 11. */ -/* For a_type. */ -# define OLD_ALLOW 0 -# define OLD_DENY 1 -# define NEW_ACE_ACCESS_ALLOWED_ACE_TYPE 0 /* replaces ALLOW */ -# define NEW_ACE_ACCESS_DENIED_ACE_TYPE 1 /* replaces DENY */ -/* For a_flags. */ -# define OLD_ACE_OWNER 0x0100 -# define OLD_ACE_GROUP 0x0200 -# define OLD_ACE_OTHER 0x0400 -# define NEW_ACE_OWNER 0x1000 -# define NEW_ACE_GROUP 0x2000 -# define NEW_ACE_IDENTIFIER_GROUP 0x0040 -# define NEW_ACE_EVERYONE 0x4000 -/* For a_access_mask. */ -# define NEW_ACE_READ_DATA 0x001 /* corresponds to 'r' */ -# define NEW_ACE_WRITE_DATA 0x002 /* corresponds to 'w' */ -# define NEW_ACE_APPEND_DATA 0x004 -# define NEW_ACE_READ_NAMED_ATTRS 0x008 -# define NEW_ACE_WRITE_NAMED_ATTRS 0x010 -# define NEW_ACE_EXECUTE 0x020 -# define NEW_ACE_DELETE_CHILD 0x040 -# define NEW_ACE_READ_ATTRIBUTES 0x080 -# define NEW_ACE_WRITE_ATTRIBUTES 0x100 -# define NEW_ACE_DELETE 0x10000 -# define NEW_ACE_READ_ACL 0x20000 -# define NEW_ACE_WRITE_ACL 0x40000 -# define NEW_ACE_WRITE_OWNER 0x80000 -# define NEW_ACE_SYNCHRONIZE 0x100000 - -# endif - -# elif HAVE_GETACL /* HP-UX */ - -/* Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */ -extern int acl_nontrivial (int count, struct acl_entry *entries); - -# if HAVE_ACLV_H /* HP-UX >= 11.11 */ - -/* Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */ -extern int aclv_nontrivial (int count, struct acl *entries); - -# endif - -# elif HAVE_ACLX_GET && 0 /* AIX */ - -/* TODO */ - -# elif HAVE_STATACL /* older AIX */ - -/* Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */ -extern int acl_nontrivial (struct acl *a); - -# elif HAVE_ACLSORT /* NonStop Kernel */ - -/* Return 1 if the given ACL is non-trivial. - Return 0 if it is trivial, i.e. equivalent to a simple stat() mode. */ -extern int acl_nontrivial (int count, struct acl *entries); - -# endif - -/* Set to 1 if a file's mode is implicit by the ACL. */ -# ifndef MODE_INSIDE_ACL -# define MODE_INSIDE_ACL 1 -# endif - -#endif - -struct permission_context { - mode_t mode; -#if USE_ACL -# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ - acl_t acl; -# if !HAVE_ACL_TYPE_EXTENDED - acl_t default_acl; -# endif - bool acls_not_supported; - -# elif defined GETACL /* Solaris, Cygwin < 2.5 */ - int count; - aclent_t *entries; -# ifdef ACE_GETACL - int ace_count; - ace_t *ace_entries; -# endif - -# elif HAVE_GETACL /* HP-UX */ - struct acl_entry entries[NACLENTRIES]; - int count; -# if HAVE_ACLV_H - struct acl aclv_entries[NACLVENTRIES]; - int aclv_count; -# endif - -# elif HAVE_STATACL /* older AIX */ - union { struct acl a; char room[4096]; } u; - bool have_u; - -# elif HAVE_ACLSORT /* NonStop Kernel */ - struct acl entries[NACLENTRIES]; - int count; - -# endif -#endif -}; - -int get_permissions (const char *, int, mode_t, struct permission_context *); -int set_permissions (struct permission_context *, const char *, int); -void free_permission_context (struct permission_context *); - -_GL_INLINE_HEADER_END diff --git a/include/libgnulib/acl.h b/include/libgnulib/acl.h deleted file mode 100755 index 68a421a..0000000 --- a/include/libgnulib/acl.h +++ /dev/null @@ -1,114 +0,0 @@ -/* acl.c - access control lists - - Copyright (C) 2002, 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . - - Written by Paul Eggert. */ - -#ifndef _GL_ACL_H -#define _GL_ACL_H 1 - -/* This file uses _GL_ATTRIBUTE_CONST, _GL_ATTRIBUTE_DEPRECATED. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Follow symlinks when getting an ACL. This is a bitmask that is guaranteed - not to collide with any DT_* or _GL_DT_* value. */ -enum { ACL_SYMLINK_FOLLOW = 0x10000 }; - -/* Information about an ACL. */ -struct aclinfo -{ - /* If 'size' is nonnegative, a buffer holding the concatenation - of extended attribute names, each terminated by NUL - (either u.__gl_acl_ch, or heap-allocated). */ - char *buf; - - /* The number of useful bytes at the start of buf, counting trailing NULs. - If negative, there was an error in getting the ACL info, - and u.err is the corresponding errno. */ - ssize_t size; - - /* The allocated size of buf. This is sizeof u.__gl_acl_ch if the - buffer is not heap-allocated, and is larger otherwise. - For internal use only. */ - ssize_t __gl_acl_alloc; - - /* Security context string. Do not modify its contents. */ - char *scontext; - /* Security context errno value. It is zero if there was no - error getting the security context. When nonzero, scontext is "?". */ - int scontext_err; - - union - { - /* An errno value, when there was an error getting the ACL info. */ - int err; - - /* A small array of char, big enough for most listxattr results. - The size is somewhat arbitrary; it equals the max length of a - trivial NFSv4 ACL (a size used by file-has-acl.c in 2023-2024 - but no longer relevant now), and a different value might be - better once experience is gained. For internal use only. */ - char __gl_acl_ch[152]; - } u; -}; - -bool acl_errno_valid (int) _GL_ATTRIBUTE_CONST; -int file_has_acl (char const *, struct stat const *); -int file_has_aclinfo (char const *restrict, struct aclinfo *restrict, int); - -#if USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR -bool aclinfo_has_xattr (struct aclinfo const *, char const *) - _GL_ATTRIBUTE_PURE; -void aclinfo_free (struct aclinfo *); -#else -# define aclinfo_has_xattr(ai, xattr) false -# define aclinfo_free(ai) ((void) 0) -#endif -#if (USE_ACL && HAVE_LINUX_XATTR_H && HAVE_LISTXATTR \ - && (HAVE_SMACK || USE_SELINUX_SELINUX_H)) -void aclinfo_scontext_free (char *); -#else -# define aclinfo_scontext_free(s) ((void) 0) -#endif - -int qset_acl (char const *, int, mode_t); -int xset_acl (char const *, int, mode_t); -/* Old name of xset_acl. */ -_GL_ATTRIBUTE_DEPRECATED int set_acl (char const *, int, mode_t); - -int qcopy_acl (char const *, int, char const *, int, mode_t); -int xcopy_acl (char const *, int, char const *, int, mode_t); -/* Old name of xcopy_acl. */ -_GL_ATTRIBUTE_DEPRECATED int copy_acl (char const *, int, char const *, int, - mode_t); - -int chmod_or_fchmod (char const *, int, mode_t); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/af_alg.h b/include/libgnulib/af_alg.h deleted file mode 100755 index ed933e1..0000000 --- a/include/libgnulib/af_alg.h +++ /dev/null @@ -1,115 +0,0 @@ -/* af_alg.h - Compute message digests from file streams and buffers. - Copyright (C) 2018-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Matteo Croce , 2018. - Documentation by Bruno Haible , 2018. */ - -/* Declare specific functions for computing message digests - using the Linux kernel crypto API, if available. This kernel API gives - access to specialized crypto instructions (that would also be available - in user space) or to crypto devices (not directly available in user space). - - For a more complete set of facilities that use the Linux kernel crypto API, - look at libkcapi. */ - -#ifndef AF_ALG_H -# define AF_ALG_H 1 - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# if USE_LINUX_CRYPTO_API - -/* Compute a message digest of a memory region. - - The memory region starts at BUFFER and is LEN bytes long. - - ALG is the message digest algorithm; see the file /proc/crypto. - - RESBLOCK points to a block of HASHLEN bytes, for the result. - HASHLEN must be the length of the message digest, in bytes, in particular: - - alg | hashlen - -------+-------- - md5 | 16 - sha1 | 20 - sha224 | 28 - sha256 | 32 - sha384 | 48 - sha512 | 64 - - If successful, fill RESBLOCK and return 0. - Upon failure, return a negated error number. */ -int -afalg_buffer (const char *buffer, size_t len, const char *alg, - void *resblock, ssize_t hashlen); - -/* Compute a message digest of data read from STREAM. - - STREAM is an open file stream. The last operation on STREAM should - not be 'ungetc', and if STREAM is also open for writing it should - have been fflushed since its last write. Read from the current - position to the end of STREAM. Handle regular files efficiently. - - ALG is the message digest algorithm; see the file /proc/crypto. - - RESBLOCK points to a block of HASHLEN bytes, for the result. - HASHLEN must be the length of the message digest, in bytes, in particular: - - alg | hashlen - -------+-------- - md5 | 16 - sha1 | 20 - sha224 | 28 - sha256 | 32 - sha384 | 48 - sha512 | 64 - - If successful, fill RESBLOCK and return 0. - Upon failure, return a negated error number. - Unless returning 0 or -EIO, restore STREAM's file position so that - the caller can fall back on some other method. */ -int -afalg_stream (FILE *stream, const char *alg, - void *resblock, ssize_t hashlen); - -# else - -static inline int -afalg_buffer (const char *buffer, size_t len, const char *alg, - void *resblock, ssize_t hashlen) -{ - return -EAFNOSUPPORT; -} - -static inline int -afalg_stream (FILE *stream, const char *alg, - void *resblock, ssize_t hashlen) -{ - return -EAFNOSUPPORT; -} - -# endif - -# ifdef __cplusplus -} -# endif - -#endif /* AF_ALG_H */ diff --git a/include/libgnulib/alignalloc.h b/include/libgnulib/alignalloc.h deleted file mode 100755 index 0c73bfc..0000000 --- a/include/libgnulib/alignalloc.h +++ /dev/null @@ -1,133 +0,0 @@ -/* aligned memory allocation - - Copyright 2022-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef ALIGNALLOC_H_ -#define ALIGNALLOC_H_ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_ALLOC_SIZE, - _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL, HAVE_POSIX_MEMALIGN. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include "idx.h" -#if defined __CHERI_PURE_CAPABILITY__ -# include -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef ALIGNALLOC_INLINE -# define ALIGNALLOC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Whether aligned_alloc supports any power-of-two alignment, - returns a nonnull pointer for size-zero allocations, - and sets errno on failure. */ -#if 2 < __GLIBC__ + (16 <= __GLIBC_MINOR__) -# define ALIGNALLOC_VIA_ALIGNED_ALLOC 1 -#else -# define ALIGNALLOC_VIA_ALIGNED_ALLOC 0 -#endif - -/* Work around AddressSanitizer bug. - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104262 - https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220124/1001910.html - */ -#ifdef __SANITIZE_ADDRESS__ -# undef ALIGNALLOC_VIA_ALIGNED_ALLOC -# define ALIGNALLOC_VIA_ALIGNED_ALLOC 0 -#endif -#ifdef __has_feature -# if __has_feature (address_sanitizer) -# undef ALIGNALLOC_VIA_ALIGNED_ALLOC -# define ALIGNALLOC_VIA_ALIGNED_ALLOC 0 -# endif -#endif - -#if ALIGNALLOC_VIA_ALIGNED_ALLOC || HAVE_POSIX_MEMALIGN - -/* Free storage allocated via alignalloc. Do nothing if PTR is null. */ - -ALIGNALLOC_INLINE void -alignfree (void *ptr) -{ - free (ptr); -} - -/* Return an ALIGNMENT-aligned pointer to new storage of size SIZE, - or a null pointer (setting errno) if memory is exhausted. - ALIGNMENT must be a power of two. - If SIZE is zero, on success return a unique pointer each time. - To free storage later, call alignfree. */ - -ALIGNALLOC_INLINE -_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2)) -/* _GL_ATTRIBUTE_DEALLOC (alignfree, 1) */ -void * -alignalloc (idx_t alignment, idx_t size) -{ - if ((size_t) -1 < alignment) - alignment = (size_t) -1; - if ((size_t) -1 < size) - size = (size_t) -1; - -# if ALIGNALLOC_VIA_ALIGNED_ALLOC - return aligned_alloc (alignment, size); -# else - void *ptr = NULL; - if (alignment < sizeof (void *)) - alignment = sizeof (void *); - errno = posix_memalign (&ptr, alignment, size | !size); -# if defined __CHERI_PURE_CAPABILITY__ - if (ptr != NULL) - ptr = cheri_bounds_set (ptr, size); -# endif - return ptr; -# endif -} - -#else /* ! (ALIGNALLOC_VIA_ALIGNED_ALLOC || HAVE_POSIX_MEMALIGN) */ - -void alignfree (void *); -void *alignalloc (idx_t, idx_t) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2)) - _GL_ATTRIBUTE_DEALLOC (alignfree, 1); - -#endif - -/* Like alignalloc, but die instead of returning a null pointer. */ -void *xalignalloc (idx_t, idx_t) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2)) - _GL_ATTRIBUTE_RETURNS_NONNULL /* _GL_ATTRIBUTE_DEALLOC (alignfree, 1) */; - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* !ALIGNALLOC_H_ */ diff --git a/include/libgnulib/aligned-malloc.h b/include/libgnulib/aligned-malloc.h deleted file mode 100755 index 87d1ec1..0000000 --- a/include/libgnulib/aligned-malloc.h +++ /dev/null @@ -1,197 +0,0 @@ -/* Allocate memory with indefinite extent and specified alignment. - - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -/* Before including this file, you need to define the following macro: - - ALIGNMENT A constant expression that evaluates to the desired alignment - (a power of 2). - - And you also need to #include and . */ - -/* aligned_malloc allocates a block of memory of SIZE bytes, aligned on a - boundary of ALIGNMENT bytes. - The block can be freed through aligned_free(), NOT through free(). - Upon failure, it returns NULL. */ - -/* This module exists instead of a posix_memalign(), aligned_alloc(), or - memalign() emulation, because we can't reasonably emulate posix_memalign(), - aligned_alloc(), or memalign(): - If malloc() returned p, only free (p) is allowed, not free (p + 1), - free (p + 2), free (p + 4), free (p + 8), or similar. - - We can use posix_memalign(), a POSIX function. - - We can also use aligned_alloc(), an ISO C11 and POSIX function. But it's - a bit more awkward to use. - - On older systems, we can alternatively use memalign() instead. In the - Solaris documentation of memalign() it is not specified how a memory block - returned by memalign() can be freed, but it actually can be freed with - free(). */ - -/* This file uses MALLOC_ALIGNMENT, HAVE_POSIX_MEMALIGN, HAVE_ALIGNED_ALLOC, - HAVE_MEMALIGN. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#if !defined ALIGNMENT -# error "ALIGNMENT is not defined" -#endif -#if !((ALIGNMENT) > 0 && ((ALIGNMENT) & ((ALIGNMENT) - 1)) == 0) -# error "ALIGNMENT is not a power of 2" -#endif -#if ((ALIGNMENT) <= MALLOC_ALIGNMENT) || HAVE_POSIX_MEMALIGN || HAVE_ALIGNED_ALLOC || HAVE_MEMALIGN - -# if defined aligned_free || (__GNUC__ >= 11 && !defined __clang__) - /* The caller wants an inline function, not a macro, - or we can use GCC's -Wmismatched-dealloc warning. */ -static inline void -aligned_free (void *q) -{ - free (q); -} -# else -# define aligned_free free -# endif - -# if (ALIGNMENT) <= MALLOC_ALIGNMENT -/* Simply use malloc. */ - -# if defined aligned_malloc || (__GNUC__ >= 11 && !defined __clang__) - /* The caller wants an inline function, not a macro, - or GCC's -Wmismatched-dealloc warning might be in effect. */ -static inline -/*_GL_ATTRIBUTE_DEALLOC (aligned_free, 1)*/ -void * -aligned_malloc (size_t size) -{ - return malloc (size); -} -# else -# define aligned_malloc malloc -# endif - -# elif HAVE_POSIX_MEMALIGN -/* Use posix_memalign. - This is OK since ALIGNMENT > MALLOC_ALIGNMENT >= sizeof (void *). */ - -static inline -/*_GL_ATTRIBUTE_DEALLOC (aligned_free, 1)*/ -void * -aligned_malloc (size_t size) -{ - void *p; - int ret = posix_memalign (&p, (ALIGNMENT), size); - if (ret == 0) - return p; - else - return NULL; -} - -# elif HAVE_ALIGNED_ALLOC -/* Use aligned_alloc. */ - -static inline -/*_GL_ATTRIBUTE_DEALLOC (aligned_free, 1)*/ -void * -aligned_malloc (size_t size) -{ - /* Round up SIZE to the next multiple of ALIGNMENT, - namely (SIZE + ALIGNMENT - 1) & ~(ALIGNMENT - 1). */ - size += (ALIGNMENT) - 1; - if (size >= (ALIGNMENT) - 1) /* no overflow? */ - { - size &= ~(size_t)((ALIGNMENT) - 1); - return aligned_alloc ((ALIGNMENT), size); - } - return NULL; -} - -# elif HAVE_MEMALIGN /* HP-UX, IRIX, Solaris <= 10 */ -/* Use memalign. */ - -static inline -/*_GL_ATTRIBUTE_DEALLOC (aligned_free, 1)*/ -void * -aligned_malloc (size_t size) -{ - return memalign ((ALIGNMENT), size); -} - -# endif - -#else -/* Use malloc and waste a bit of memory. */ - -static inline void -aligned_free (void *q) -{ - if (q != NULL) - { - if ((uintptr_t) q & ((ALIGNMENT) - 1)) - /* Argument not aligned as expected. */ - abort (); - else - { - void *p = ((void **) q)[-1]; - if (!((uintptr_t) p <= (uintptr_t) q - && (uintptr_t) q - (uintptr_t) p >= MALLOC_ALIGNMENT - && (uintptr_t) q - (uintptr_t) p <= (ALIGNMENT))) - abort (); - free (p); - } - } -} - -static inline -/*_GL_ATTRIBUTE_DEALLOC (aligned_free, 1)*/ -void * -aligned_malloc (size_t size) -{ - size += (ALIGNMENT); - if (size >= (ALIGNMENT)) /* no overflow? */ - { - void *p = malloc (size); - if (p != NULL) - { - /* Go to the next multiple of ALIGNMENT. */ - void *q = - (void *) (((uintptr_t) p + (ALIGNMENT)) & -(intptr_t)(ALIGNMENT)); - /* Now q - p <= ALIGNMENT and - q - p >= MALLOC_ALIGNMENT >= sizeof (void *). - This is enough to store a back pointer to p. */ - ((void **) q)[-1] = p; - return q; - } - } - return NULL; -} - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/alignof.h b/include/libgnulib/alignof.h deleted file mode 100755 index 581aaee..0000000 --- a/include/libgnulib/alignof.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Determine alignment of types. - Copyright (C) 2003-2004, 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _ALIGNOF_H -#define _ALIGNOF_H - -/* This file uses alignof. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* alignof_slot (TYPE) - Determine the alignment of a structure slot (field) of a given type, - at compile time. Note that the result depends on the ABI. - This is the same as alignof (TYPE). - Note: The result cannot be used as a value for an 'enum' constant, - due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */ -#if defined __cplusplus - template struct alignof_helper { char __slot1; type __slot2; }; -# define alignof_slot(type) offsetof (alignof_helper, __slot2) -#else -# define alignof_slot(type) alignof (type) -#endif - -/* alignof_type (TYPE) - Determine the good alignment of an object of the given type at compile time. - Note that this is not necessarily the same as alignof_slot(type). - For example, with GNU C on x86 platforms and with clang on Linux/x86: - alignof_type(long long) = 8, but alignof_slot(long long) = 4. - And alignof_type(double) = 8, but - - when -malign-double is not specified: alignof_slot(double) = 4, - - when -malign-double is specified: alignof_slot(double) = 8. - Note: The result cannot be used as a value for an 'enum' constant, - due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc. */ -#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ -# define alignof_type __alignof__ -#else -# define alignof_type alignof_slot -#endif - -#endif /* _ALIGNOF_H */ diff --git a/include/libgnulib/allocator.h b/include/libgnulib/allocator.h deleted file mode 100755 index 53c8dfc..0000000 --- a/include/libgnulib/allocator.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Memory allocators such as malloc+free. - - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef _GL_ALLOCATOR_H -#define _GL_ALLOCATOR_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* An object describing a memory allocator family. */ - -struct allocator -{ - /* Do not use GCC attributes such as __attribute__ ((malloc)) with - the function types pointed at by these members, because these - attributes do not work with pointers to functions. See - . */ - - /* Call ALLOCATE to allocate memory, like 'malloc'. On failure ALLOCATE - should return NULL, though not necessarily set errno. When given - a zero size it may return NULL even if successful. */ - void *(*allocate) (size_t); - - /* If nonnull, call REALLOCATE to reallocate memory, like 'realloc'. - On failure REALLOCATE should return NULL, though not necessarily set - errno. When given a zero size it may return NULL even if - successful. */ - void *(*reallocate) (void *, size_t); - - /* Call FREE to free memory, like 'free'. */ - void (*free) (void *); - - /* If nonnull, call DIE (SIZE) if MALLOC (SIZE) or REALLOC (..., - SIZE) fails. DIE should not return. SIZE should equal SIZE_MAX - if size_t overflow was detected while calculating sizes to be - passed to MALLOC or REALLOC. */ - void (*die) (size_t); -}; - -/* An allocator using the stdlib functions and a null DIE function. */ -extern struct allocator const stdlib_allocator; - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ALLOCATOR_H */ diff --git a/include/libgnulib/amemxfrm.h b/include/libgnulib/amemxfrm.h deleted file mode 100755 index 1617a12..0000000 --- a/include/libgnulib/amemxfrm.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Locale dependent memory area transformation for comparison. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef AMEMXFRM_H -#define AMEMXFRM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Generalization of strxfrm() to strings with embedded NUL bytes. */ - -/* Transform the memory area [S..S+N-1] to a memory area, in such a way that - comparing (S1,N1) and (S2,N2) with memcoll() is equivalent to comparing - amemxfrm(S1,N1) and amemxfrm(S2,N2) with memcmp2(). - The byte S[N] may be temporarily overwritten by this function, but will be - restored before this function returns. - The result of this function depends on the LC_COLLATE category of the - current locale. - If successful: If resultbuf is not NULL and the result fits into *lengthp - bytes, it is put in resultbuf, and resultbuf is returned. Otherwise, a - freshly allocated string is returned. In both cases, *lengthp is set to the - length of the returned string. - Upon failure, return NULL, with errno set. */ -extern char * amemxfrm (char *restrict s, size_t n, - char *restrict resultbuf, size_t *lengthp); - - -#ifdef __cplusplus -} -#endif - -#endif /* AMEMXFRM_H */ diff --git a/include/libgnulib/arcfour.h b/include/libgnulib/arcfour.h deleted file mode 100755 index 613a68c..0000000 --- a/include/libgnulib/arcfour.h +++ /dev/null @@ -1,58 +0,0 @@ -/* arcfour.h --- The arcfour stream cipher - * Copyright (C) 2000-2005, 2009-2024 Free Software Foundation, Inc. - * - * This file 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 file 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 program. If not, see . - * - */ - -/* Code from Libgcrypt adapted for gnulib by Simon Josefsson. */ - -#ifndef ARCFOUR_H -#define ARCFOUR_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define ARCFOUR_SBOX_SIZE 256 - -typedef struct -{ - char sbox[ARCFOUR_SBOX_SIZE]; - uint8_t idx_i, idx_j; -} arcfour_context; - -/* Apply ARCFOUR stream to INBUF placing the result in OUTBUF, both of - LENGTH size. CONTEXT must be initialized with arcfour_setkey - before this function is called. */ -extern void -arcfour_stream (arcfour_context * context, - const char *inbuf, char *restrict outbuf, size_t length); - -/* Initialize CONTEXT using encryption KEY of KEYLEN bytes. KEY - should be 40 bits (5 bytes) or longer. The KEY cannot be zero - length. */ -extern void -arcfour_setkey (arcfour_context * context, const char *key, size_t keylen); - - -#ifdef __cplusplus -} -#endif - -#endif /* ARCFOUR_H */ diff --git a/include/libgnulib/arctwo.h b/include/libgnulib/arctwo.h deleted file mode 100755 index 27453c3..0000000 --- a/include/libgnulib/arctwo.h +++ /dev/null @@ -1,71 +0,0 @@ -/* arctwo.h --- The arctwo block cipher - * Copyright (C) 2000-2003, 2005, 2009-2024 Free Software Foundation, Inc. - * - * This file 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 file 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 program. If not, see . - * - */ - -/* Code from Libgcrypt adapted for gnulib by Simon Josefsson. */ - -#ifndef ARCTWO_H -#define ARCTWO_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef struct -{ - uint16_t S[64]; -} arctwo_context; - -#define ARCTWO_BLOCK_SIZE 8 - -/* Initialize CONTEXT using KEY of KEYLEN length. If - EFFECTIVE_KEYLEN, truncate the key (using a special algorithm) to - only be of EFFECTIVE_KEYLEN bits. Normally, you use - EFFECTIVE_KEYLEN of 0, but see RFC 2268 for more information. */ -void -arctwo_setkey_ekb (arctwo_context *context, - size_t keylen, const char *key, size_t effective_keylen); - -#define arctwo_setkey(context,keylen,key) \ - arctwo_setkey_ekb (context, keylen, key, 8 * (keylen)) - -/* Encrypt INBUF of size LENGTH into OUTBUF. LENGTH must be a - multiple of ARCTWO_BLOCK_SIZE. CONTEXT hold the encryption key, - and must have been initialized with arctwo_setkey or - arctwo_setkey_ekb. */ -extern void -arctwo_encrypt (arctwo_context *context, const char *inbuf, - char *restrict outbuf, size_t length); - -/* Decrypt INBUF of size LENGTH into OUTBUF. LENGTH must be a - multiple of ARCTWO_BLOCK_SIZE. CONTEXT hold the decryption key, - and must have been initialized with arctwo_setkey or - arctwo_setkey_ekb. */ -extern void -arctwo_decrypt (arctwo_context *context, const char *inbuf, - char *restrict outbuf, size_t length); - - -#ifdef __cplusplus -} -#endif - -#endif /* ARCTWO_H */ diff --git a/include/libgnulib/areadlink.h b/include/libgnulib/areadlink.h deleted file mode 100755 index 88ad14e..0000000 --- a/include/libgnulib/areadlink.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Read symbolic links without size limitation. - - Copyright (C) 2001, 2003-2004, 2007, 2009-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Jim Meyering */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -extern char *areadlink (char const *filename) - _GL_ATTRIBUTE_DEALLOC_FREE; -extern char *areadlink_with_size (char const *filename, size_t size_hint) - _GL_ATTRIBUTE_DEALLOC_FREE; - -#if GNULIB_AREADLINKAT -extern char *areadlinkat (int fd, char const *filename) - _GL_ATTRIBUTE_DEALLOC_FREE; -#endif - -#if GNULIB_AREADLINKAT_WITH_SIZE -extern char *areadlinkat_with_size (int fd, char const *filename, - size_t size_hint) - _GL_ATTRIBUTE_DEALLOC_FREE; -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/arg-nonnull.h b/include/libgnulib/arg-nonnull.h deleted file mode 100755 index 46c711c..0000000 --- a/include/libgnulib/arg-nonnull.h +++ /dev/null @@ -1,26 +0,0 @@ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif diff --git a/include/libgnulib/argmatch.h b/include/libgnulib/argmatch.h deleted file mode 100755 index ca60dfe..0000000 --- a/include/libgnulib/argmatch.h +++ /dev/null @@ -1,350 +0,0 @@ -/* argmatch.h -- definitions and prototypes for argmatch.c - - Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by David MacKenzie - Modified by Akim Demaille */ - -#ifndef ARGMATCH_H_ -# define ARGMATCH_H_ 1 - -/* This file uses _GL_ATTRIBUTE_PURE. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include -# include -# include /* memcmp */ - -# include "gettext.h" -# include "quote.h" - -# ifdef __cplusplus -extern "C" { -# endif - -# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array)) - -/* Assert there are as many real arguments as there are values - (argument list ends with a NULL guard). */ - -# define ARGMATCH_VERIFY(Arglist, Vallist) \ - static_assert (ARRAY_CARDINALITY (Arglist) \ - == ARRAY_CARDINALITY (Vallist) + 1) - -/* Return the index of the element of ARGLIST (NULL terminated) that - matches with ARG. If VALLIST is not NULL, then use it to resolve - false ambiguities (i.e., different matches of ARG but corresponding - to the same values in VALLIST). */ - -ptrdiff_t argmatch (char const *arg, char const *const *arglist, - void const *vallist, size_t valsize) _GL_ATTRIBUTE_PURE; - -ptrdiff_t argmatch_exact (char const *arg, char const *const *arglist) - _GL_ATTRIBUTE_PURE; - -# define ARGMATCH(Arg, Arglist, Vallist) \ - argmatch (Arg, Arglist, (void const *) (Vallist), sizeof *(Vallist)) - -# define ARGMATCH_EXACT(Arg, Arglist) \ - argmatch_exact (Arg, Arglist) - -/* xargmatch calls this function when it fails. This function should not - return. By default, this is a function that calls ARGMATCH_DIE which - in turn defaults to 'exit (exit_failure)'. */ -typedef void (*argmatch_exit_fn) (void); -extern argmatch_exit_fn argmatch_die; - -/* Report on stderr why argmatch failed. Report correct values. */ - -void argmatch_invalid (char const *context, char const *value, - ptrdiff_t problem); - -/* Left for compatibility with the old name invalid_arg */ - -# define invalid_arg(Context, Value, Problem) \ - argmatch_invalid (Context, Value, Problem) - - - -/* Report on stderr the list of possible arguments. */ - -void argmatch_valid (char const *const *arglist, - void const *vallist, size_t valsize); - -# define ARGMATCH_VALID(Arglist, Vallist) \ - argmatch_valid (Arglist, (void const *) (Vallist), sizeof *(Vallist)) - - - -/* Like argmatch/argmatch_exact, but upon failure, report an explanation - of the failure, and exit using the function EXIT_FN. */ - -ptrdiff_t __xargmatch_internal (char const *context, - char const *arg, char const *const *arglist, - void const *vallist, size_t valsize, - argmatch_exit_fn exit_fn, - bool allow_abbreviation); - -/* Programmer friendly interface to __xargmatch_internal. */ - -# define XARGMATCH(Context, Arg, Arglist, Vallist) \ - ((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \ - (void const *) (Vallist), \ - sizeof *(Vallist), \ - argmatch_die, \ - true)]) - -# define XARGMATCH_EXACT(Context, Arg, Arglist, Vallist) \ - ((Vallist) [__xargmatch_internal (Context, Arg, Arglist, \ - (void const *) (Vallist), \ - sizeof *(Vallist), \ - argmatch_die, \ - false)]) - -/* Convert a value into a corresponding argument. */ - -char const *argmatch_to_argument (void const *value, - char const *const *arglist, - void const *vallist, size_t valsize) - _GL_ATTRIBUTE_PURE; - -# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \ - argmatch_to_argument (Value, Arglist, \ - (void const *) (Vallist), sizeof *(Vallist)) - -# define ARGMATCH_DEFINE_GROUP(Name, Type) \ - /* The type of the values of this group. */ \ - typedef Type argmatch_##Name##_type; \ - \ - /* The size of the type of the values of this group. */ \ - enum argmatch_##Name##_size_enum \ - { \ - argmatch_##Name##_size = sizeof (argmatch_##Name##_type) \ - }; \ - \ - /* Argument mapping of this group. */ \ - typedef struct \ - { \ - /* Argument (e.g., "simple"). */ \ - const char *arg; \ - /* Value (e.g., simple_backups). */ \ - const argmatch_##Name##_type val; \ - } argmatch_##Name##_arg; \ - \ - /* Documentation of this group. */ \ - typedef struct \ - { \ - /* Argument (e.g., "simple"). */ \ - const char *arg; \ - /* Documentation (e.g., N_("always make simple backups")). */ \ - const char *doc; \ - } argmatch_##Name##_doc; \ - \ - /* All the features of an argmatch group. */ \ - typedef struct \ - { \ - const argmatch_##Name##_arg* args; \ - const argmatch_##Name##_doc* docs; \ - \ - /* Printed before the usage message. */ \ - const char *doc_pre; \ - /* Printed after the usage message. */ \ - const char *doc_post; \ - } argmatch_##Name##_group_type; \ - \ - /* The structure the user must build. */ \ - extern const argmatch_##Name##_group_type argmatch_##Name##_group; \ - \ - /* Print the documentation of this group. */ \ - void argmatch_##Name##_usage (FILE *out); \ - \ - /* If nonnegative, the index I of ARG in ARGS, i.e, \ - ARGS[I] == ARG. \ - Return -1 for invalid argument, -2 for ambiguous argument. */ \ - ptrdiff_t argmatch_##Name##_choice (const char *arg); \ - \ - /* A pointer to the corresponding value if it exists, or \ - report an error and exit with failure if the argument was \ - not recognized. */ \ - const argmatch_##Name##_type* \ - argmatch_##Name##_value (const char *context, const char *arg); \ - \ - /* The first argument in ARGS that matches this value, or NULL. */ \ - const char * \ - argmatch_##Name##_argument (const argmatch_##Name##_type *val); \ - \ - ptrdiff_t \ - argmatch_##Name##_choice (const char *arg) \ - { \ - const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ - size_t size = argmatch_##Name##_size; \ - ptrdiff_t res = -1; /* Index of first nonexact match. */ \ - bool ambiguous = false; /* Whether multiple nonexact match(es). */ \ - size_t arglen = strlen (arg); \ - \ - /* Test all elements for either exact match or abbreviated \ - matches. */ \ - for (size_t i = 0; g->args[i].arg; i++) \ - if (!strncmp (g->args[i].arg, arg, arglen)) \ - { \ - if (strlen (g->args[i].arg) == arglen) \ - /* Exact match found. */ \ - return i; \ - else if (res == -1) \ - /* First nonexact match found. */ \ - res = i; \ - else if (memcmp (&g->args[res].val, &g->args[i].val, size)) \ - /* Second nonexact match found. */ \ - /* There is a real ambiguity, or we could not \ - disambiguate. */ \ - ambiguous = true; \ - } \ - return ambiguous ? -2 : res; \ - } \ - \ - const char * \ - argmatch_##Name##_argument (const argmatch_##Name##_type *val) \ - { \ - const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ - size_t size = argmatch_##Name##_size; \ - for (size_t i = 0; g->args[i].arg; i++) \ - if (!memcmp (val, &g->args[i].val, size)) \ - return g->args[i].arg; \ - return NULL; \ - } \ - \ - /* List the valid values of this group. */ \ - static void \ - argmatch_##Name##_valid (FILE *out) \ - { \ - const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ - size_t size = argmatch_##Name##_size; \ - \ - /* Try to put synonyms on the same line. Synonyms are expected \ - to follow each other. */ \ - fputs (gettext ("Valid arguments are:"), out); \ - for (int i = 0; g->args[i].arg; i++) \ - if (i == 0 \ - || memcmp (&g->args[i-1].val, &g->args[i].val, size)) \ - fprintf (out, "\n - %s", quote (g->args[i].arg)); \ - else \ - fprintf (out, ", %s", quote (g->args[i].arg)); \ - putc ('\n', out); \ - } \ - \ - const argmatch_##Name##_type* \ - argmatch_##Name##_value (const char *context, const char *arg) \ - { \ - const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ - ptrdiff_t res = argmatch_##Name##_choice (arg); \ - if (res < 0) \ - { \ - argmatch_invalid (context, arg, res); \ - argmatch_##Name##_valid (stderr); \ - argmatch_die (); \ - } \ - return &g->args[res].val; \ - } \ - \ - /* The column in which the documentation is displayed. \ - The leftmost possible, but no more than 20. */ \ - static int \ - argmatch_##Name##_doc_col (void) \ - { \ - const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ - size_t size = argmatch_##Name##_size; \ - int res = 0; \ - for (int i = 0; g->docs[i].arg; ++i) \ - { \ - int col = 4; \ - int ival = argmatch_##Name##_choice (g->docs[i].arg); \ - if (ival < 0) \ - /* Pseudo argument, display it. */ \ - col += strlen (g->docs[i].arg); \ - else \ - /* Genuine argument, display it with its synonyms. */ \ - for (int j = 0; g->args[j].arg; ++j) \ - if (! memcmp (&g->args[ival].val, &g->args[j].val, size)) \ - col += (col == 4 ? 0 : 2) + strlen (g->args[j].arg); \ - if (res <= col) \ - res = col <= 20 ? col : 20; \ - } \ - return res ? res : 20; \ - } \ - \ - void \ - argmatch_##Name##_usage (FILE *out) \ - { \ - const argmatch_##Name##_group_type *g = &argmatch_##Name##_group; \ - size_t size = argmatch_##Name##_size; \ - /* Width of the screen. Help2man does not seem to support \ - arguments on several lines, so in that case pretend a very \ - large width. */ \ - const int screen_width = getenv ("HELP2MAN") ? INT_MAX : 80; \ - if (g->doc_pre) \ - fprintf (out, "%s\n", gettext (g->doc_pre)); \ - int doc_col = argmatch_##Name##_doc_col (); \ - for (int i = 0; g->docs[i].arg; ++i) \ - { \ - int col = 0; \ - bool first = true; \ - int ival = argmatch_##Name##_choice (g->docs[i].arg); \ - if (ival < 0) \ - /* Pseudo argument, display it. */ \ - col += fprintf (out, " %s", g->docs[i].arg); \ - else \ - /* Genuine argument, display it with its synonyms. */ \ - for (int j = 0; g->args[j].arg; ++j) \ - if (! memcmp (&g->args[ival].val, &g->args[j].val, size)) \ - { \ - if (!first \ - && screen_width < col + 2 + strlen (g->args[j].arg)) \ - { \ - fprintf (out, ",\n"); \ - col = 0; \ - first = true; \ - } \ - if (first) \ - { \ - col += fprintf (out, " "); \ - first = false; \ - } \ - else \ - col += fprintf (out, ","); \ - col += fprintf (out, " %s", g->args[j].arg); \ - } \ - /* The doc. Separated by at least two spaces. */ \ - if (doc_col < col + 2) \ - { \ - fprintf (out, "\n"); \ - col = 0; \ - } \ - fprintf (out, "%*s%s\n", \ - doc_col - col, "", gettext (g->docs[i].doc)); \ - } \ - if (g->doc_post) \ - fprintf (out, "%s\n", gettext (g->doc_post)); \ - } - -# ifdef __cplusplus -} -# endif - -#endif /* ARGMATCH_H_ */ diff --git a/include/libgnulib/argp-fmtstream.h b/include/libgnulib/argp-fmtstream.h deleted file mode 100755 index 67b9c06..0000000 --- a/include/libgnulib/argp-fmtstream.h +++ /dev/null @@ -1,303 +0,0 @@ -/* Word-wrapping and line-truncating streams. - Copyright (C) 1997-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Miles Bader . - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* This package emulates glibc 'line_wrap_stream' semantics for systems that - don't have that. If the system does have it, it is just a wrapper for - that. This header file is only used internally while compiling argp, and - shouldn't be installed. */ - -#ifndef _ARGP_FMTSTREAM_H -#define _ARGP_FMTSTREAM_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, __GL_INLINE, _GL_ATTRIBUTE_DEALLOC, - _GL_ATTRIBUTE_FORMAT. */ -#if !_LIBC && !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include - -#if defined (__GNU_LIBRARY__) && defined (HAVE_LINEWRAP_H) -/* line_wrap_stream is available, so use that. */ -#define ARGP_FMTSTREAM_USE_LINEWRAP -#endif - -#ifdef ARGP_FMTSTREAM_USE_LINEWRAP -/* Just be a simple wrapper for line_wrap_stream; the semantics are - *slightly* different, as line_wrap_stream doesn't actually make a new - object, it just modifies the given stream (reversibly) to do - line-wrapping. Since we control who uses this code, it doesn't matter. */ - -#include - -typedef FILE *argp_fmtstream_t; - -#define argp_make_fmtstream line_wrap_stream -#define __argp_make_fmtstream line_wrap_stream -#define argp_fmtstream_free line_unwrap_stream -#define __argp_fmtstream_free line_unwrap_stream - -#define __argp_fmtstream_putc(fs,ch) putc(ch,fs) -#define argp_fmtstream_putc(fs,ch) putc(ch,fs) -#define __argp_fmtstream_puts(fs,str) fputs(str,fs) -#define argp_fmtstream_puts(fs,str) fputs(str,fs) -#define __argp_fmtstream_write(fs,str,len) fwrite(str,1,len,fs) -#define argp_fmtstream_write(fs,str,len) fwrite(str,1,len,fs) -#define __argp_fmtstream_printf fprintf -#define argp_fmtstream_printf fprintf - -#define __argp_fmtstream_lmargin line_wrap_lmargin -#define argp_fmtstream_lmargin line_wrap_lmargin -#define __argp_fmtstream_set_lmargin line_wrap_set_lmargin -#define argp_fmtstream_set_lmargin line_wrap_set_lmargin -#define __argp_fmtstream_rmargin line_wrap_rmargin -#define argp_fmtstream_rmargin line_wrap_rmargin -#define __argp_fmtstream_set_rmargin line_wrap_set_rmargin -#define argp_fmtstream_set_rmargin line_wrap_set_rmargin -#define __argp_fmtstream_wmargin line_wrap_wmargin -#define argp_fmtstream_wmargin line_wrap_wmargin -#define __argp_fmtstream_set_wmargin line_wrap_set_wmargin -#define argp_fmtstream_set_wmargin line_wrap_set_wmargin -#define __argp_fmtstream_point line_wrap_point -#define argp_fmtstream_point line_wrap_point - -#else /* !ARGP_FMTSTREAM_USE_LINEWRAP */ -/* Guess we have to define our own version. */ - - -struct argp_fmtstream -{ - FILE *stream; /* The stream we're outputting to. */ - - size_t lmargin, rmargin; /* Left and right margins. */ - ssize_t wmargin; /* Margin to wrap to, or -1 to truncate. */ - - /* Point in buffer to which we've processed for wrapping, but not output. */ - size_t point_offs; - /* Output column at POINT_OFFS, or -1 meaning 0 but don't add lmargin. */ - ssize_t point_col; - - char *buf; /* Output buffer. */ - char *p; /* Current end of text in BUF. */ - char *end; /* Absolute end of BUF. */ -}; - -typedef struct argp_fmtstream *argp_fmtstream_t; - -/* Flush __FS to its stream, and free it (but don't close the stream). */ -extern void __argp_fmtstream_free (argp_fmtstream_t __fs); -extern void argp_fmtstream_free (argp_fmtstream_t __fs); - -/* Return an argp_fmtstream that outputs to STREAM, and which prefixes lines - written on it with LMARGIN spaces and limits them to RMARGIN columns - total. If WMARGIN >= 0, words that extend past RMARGIN are wrapped by - replacing the whitespace before them with a newline and WMARGIN spaces. - Otherwise, chars beyond RMARGIN are simply dropped until a newline. - Returns NULL if there was an error. */ -extern argp_fmtstream_t __argp_make_fmtstream (FILE *__stream, - size_t __lmargin, - size_t __rmargin, - ssize_t __wmargin) - _GL_ATTRIBUTE_DEALLOC (__argp_fmtstream_free, 1); -extern argp_fmtstream_t argp_make_fmtstream (FILE *__stream, - size_t __lmargin, - size_t __rmargin, - ssize_t __wmargin) - _GL_ATTRIBUTE_DEALLOC (argp_fmtstream_free, 1); - -extern ssize_t __argp_fmtstream_printf (argp_fmtstream_t __fs, - const char *__fmt, ...) - _GL_ATTRIBUTE_FORMAT ((printf, 2, 3)); -extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs, - const char *__fmt, ...) - _GL_ATTRIBUTE_FORMAT ((printf, 2, 3)); - -#if _LIBC -extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); -extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); - -extern int __argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str); -extern int argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str); - -extern size_t __argp_fmtstream_write (argp_fmtstream_t __fs, - const char *__str, size_t __len); -extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, - const char *__str, size_t __len); -#endif - -/* Access macros for various bits of state. */ -#define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin) -#define argp_fmtstream_rmargin(__fs) ((__fs)->rmargin) -#define argp_fmtstream_wmargin(__fs) ((__fs)->wmargin) -#define __argp_fmtstream_lmargin argp_fmtstream_lmargin -#define __argp_fmtstream_rmargin argp_fmtstream_rmargin -#define __argp_fmtstream_wmargin argp_fmtstream_wmargin - -#if _LIBC -/* Set __FS's left margin to LMARGIN and return the old value. */ -extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, - size_t __lmargin); -extern size_t __argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, - size_t __lmargin); - -/* Set __FS's right margin to __RMARGIN and return the old value. */ -extern size_t argp_fmtstream_set_rmargin (argp_fmtstream_t __fs, - size_t __rmargin); -extern size_t __argp_fmtstream_set_rmargin (argp_fmtstream_t __fs, - size_t __rmargin); - -/* Set __FS's wrap margin to __WMARGIN and return the old value. */ -extern size_t argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, - size_t __wmargin); -extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, - size_t __wmargin); - -/* Return the column number of the current output point in __FS. */ -extern size_t argp_fmtstream_point (argp_fmtstream_t __fs); -extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs); -#endif - -/* Internal routines. */ -extern void _argp_fmtstream_update (argp_fmtstream_t __fs); -extern void __argp_fmtstream_update (argp_fmtstream_t __fs); -extern int _argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount); -extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount); - -#if !_LIBC || defined __OPTIMIZE__ -/* Inline versions of above routines. */ - -#if !_LIBC -#define __argp_fmtstream_putc argp_fmtstream_putc -#define __argp_fmtstream_puts argp_fmtstream_puts -#define __argp_fmtstream_write argp_fmtstream_write -#define __argp_fmtstream_set_lmargin argp_fmtstream_set_lmargin -#define __argp_fmtstream_set_rmargin argp_fmtstream_set_rmargin -#define __argp_fmtstream_set_wmargin argp_fmtstream_set_wmargin -#define __argp_fmtstream_point argp_fmtstream_point -#define __argp_fmtstream_update _argp_fmtstream_update -#define __argp_fmtstream_ensure _argp_fmtstream_ensure -_GL_INLINE_HEADER_BEGIN -#ifndef ARGP_FS_EI -# define ARGP_FS_EI _GL_INLINE -#endif -#endif - -#ifndef ARGP_FS_EI -#define ARGP_FS_EI extern inline -#endif - -ARGP_FS_EI size_t -__argp_fmtstream_write (argp_fmtstream_t __fs, const char *__str, size_t __len) -{ - if (__fs->p + __len <= __fs->end || __argp_fmtstream_ensure (__fs, __len)) - { - memcpy (__fs->p, __str, __len); - __fs->p += __len; - return __len; - } - else - return 0; -} - -ARGP_FS_EI int -__argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str) -{ - size_t __len = strlen (__str); - if (__len) - { - size_t __wrote = __argp_fmtstream_write (__fs, __str, __len); - return __wrote == __len ? 0 : -1; - } - else - return 0; -} - -ARGP_FS_EI int -__argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch) -{ - if (__fs->p < __fs->end || __argp_fmtstream_ensure (__fs, 1)) - return *__fs->p++ = __ch; - else - return EOF; -} - -/* Set __FS's left margin to __LMARGIN and return the old value. */ -ARGP_FS_EI size_t -__argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, size_t __lmargin) -{ - size_t __old; - if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs) - __argp_fmtstream_update (__fs); - __old = __fs->lmargin; - __fs->lmargin = __lmargin; - return __old; -} - -/* Set __FS's right margin to __RMARGIN and return the old value. */ -ARGP_FS_EI size_t -__argp_fmtstream_set_rmargin (argp_fmtstream_t __fs, size_t __rmargin) -{ - size_t __old; - if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs) - __argp_fmtstream_update (__fs); - __old = __fs->rmargin; - __fs->rmargin = __rmargin; - return __old; -} - -/* Set FS's wrap margin to __WMARGIN and return the old value. */ -ARGP_FS_EI size_t -__argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, size_t __wmargin) -{ - size_t __old; - if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs) - __argp_fmtstream_update (__fs); - __old = __fs->wmargin; - __fs->wmargin = __wmargin; - return __old; -} - -/* Return the column number of the current output point in __FS. */ -ARGP_FS_EI size_t -__argp_fmtstream_point (argp_fmtstream_t __fs) -{ - if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs) - __argp_fmtstream_update (__fs); - return __fs->point_col >= 0 ? __fs->point_col : 0; -} - -#if !_LIBC -#undef __argp_fmtstream_putc -#undef __argp_fmtstream_puts -#undef __argp_fmtstream_write -#undef __argp_fmtstream_set_lmargin -#undef __argp_fmtstream_set_rmargin -#undef __argp_fmtstream_set_wmargin -#undef __argp_fmtstream_point -#undef __argp_fmtstream_update -#undef __argp_fmtstream_ensure -_GL_INLINE_HEADER_END -#endif - -#endif /* !_LIBC || __OPTIMIZE__ */ - -#endif /* ARGP_FMTSTREAM_USE_LINEWRAP */ - -#endif /* argp-fmtstream.h */ diff --git a/include/libgnulib/argp-namefrob.h b/include/libgnulib/argp-namefrob.h deleted file mode 100755 index fce7922..0000000 --- a/include/libgnulib/argp-namefrob.h +++ /dev/null @@ -1,170 +0,0 @@ -/* Name frobnication for compiling argp outside of glibc - Copyright (C) 1997-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Miles Bader . - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#if !_LIBC -/* This code is written for inclusion in gnu-libc, and uses names in the - namespace reserved for libc. If we're not compiling in libc, define those - names to be the normal ones instead. */ - -/* argp-parse functions */ -#undef __argp_parse -#define __argp_parse argp_parse -#undef __option_is_end -#define __option_is_end _option_is_end -#undef __option_is_short -#define __option_is_short _option_is_short -#undef __argp_input -#define __argp_input _argp_input - -/* argp-help functions */ -#undef __argp_help -#define __argp_help argp_help -#undef __argp_error -#define __argp_error argp_error -#undef __argp_failure -#define __argp_failure argp_failure -#undef __argp_state_help -#define __argp_state_help argp_state_help -#undef __argp_usage -#define __argp_usage argp_usage - -/* argp-fmtstream functions */ -#undef __argp_make_fmtstream -#define __argp_make_fmtstream argp_make_fmtstream -#undef __argp_fmtstream_free -#define __argp_fmtstream_free argp_fmtstream_free -#undef __argp_fmtstream_putc -#define __argp_fmtstream_putc argp_fmtstream_putc -#undef __argp_fmtstream_puts -#define __argp_fmtstream_puts argp_fmtstream_puts -#undef __argp_fmtstream_write -#define __argp_fmtstream_write argp_fmtstream_write -#undef __argp_fmtstream_printf -#define __argp_fmtstream_printf argp_fmtstream_printf -#undef __argp_fmtstream_set_lmargin -#define __argp_fmtstream_set_lmargin argp_fmtstream_set_lmargin -#undef __argp_fmtstream_set_rmargin -#define __argp_fmtstream_set_rmargin argp_fmtstream_set_rmargin -#undef __argp_fmtstream_set_wmargin -#define __argp_fmtstream_set_wmargin argp_fmtstream_set_wmargin -#undef __argp_fmtstream_point -#define __argp_fmtstream_point argp_fmtstream_point -#undef __argp_fmtstream_update -#define __argp_fmtstream_update _argp_fmtstream_update -#undef __argp_fmtstream_ensure -#define __argp_fmtstream_ensure _argp_fmtstream_ensure -#undef __argp_fmtstream_lmargin -#define __argp_fmtstream_lmargin argp_fmtstream_lmargin -#undef __argp_fmtstream_rmargin -#define __argp_fmtstream_rmargin argp_fmtstream_rmargin -#undef __argp_fmtstream_wmargin -#define __argp_fmtstream_wmargin argp_fmtstream_wmargin - -/* normal libc functions we call */ -#undef __flockfile -#define __flockfile flockfile -#undef __funlockfile -#define __funlockfile funlockfile -#undef __mempcpy -#define __mempcpy mempcpy -#undef __sleep -#define __sleep sleep -#undef __strcasecmp -#define __strcasecmp strcasecmp -#undef __strchrnul -#define __strchrnul strchrnul -#undef __strerror_r -#define __strerror_r strerror_r -#undef __strndup -#define __strndup strndup -#undef __vsnprintf -#define __vsnprintf vsnprintf - -#if (defined HAVE_DECL_CLEARERR_UNLOCKED && !HAVE_DECL_CLEARERR_UNLOCKED \ - && !defined clearerr_unlocked) -# define clearerr_unlocked(x) clearerr (x) -#endif -#if (defined HAVE_DECL_FEOF_UNLOCKED && !HAVE_DECL_FEOF_UNLOCKED \ - && !defined feof_unlocked) -# define feof_unlocked(x) feof (x) -#endif -#if (defined HAVE_DECL_FERROR_UNLOCKED && !HAVE_DECL_FERROR_UNLOCKED \ - && !defined ferror_unlocked) -# define ferror_unlocked(x) ferror (x) -#endif -#if (defined HAVE_DECL_FFLUSH_UNLOCKED && !HAVE_DECL_FFLUSH_UNLOCKED \ - && !defined fflush_unlocked) -# define fflush_unlocked(x) fflush (x) -#endif -#if (defined HAVE_DECL_FGETS_UNLOCKED && !HAVE_DECL_FGETS_UNLOCKED \ - && !defined fgets_unlocked) -# define fgets_unlocked(x,y,z) fgets (x,y,z) -#endif -#if (defined HAVE_DECL_FPUTC_UNLOCKED && !HAVE_DECL_FPUTC_UNLOCKED \ - && !defined fputc_unlocked) -# define fputc_unlocked(x,y) fputc (x,y) -#endif -#if (defined HAVE_DECL_FPUTS_UNLOCKED && !HAVE_DECL_FPUTS_UNLOCKED \ - && !defined fputs_unlocked) -# define fputs_unlocked(x,y) fputs (x,y) -#endif -#if (defined HAVE_DECL_FREAD_UNLOCKED && !HAVE_DECL_FREAD_UNLOCKED \ - && !defined fread_unlocked) -# define fread_unlocked(w,x,y,z) fread (w,x,y,z) -#endif -#if (defined HAVE_DECL_FWRITE_UNLOCKED && !HAVE_DECL_FWRITE_UNLOCKED \ - && !defined fwrite_unlocked) -# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) -#endif -#if (defined HAVE_DECL_GETC_UNLOCKED && !HAVE_DECL_GETC_UNLOCKED \ - && !defined getc_unlocked) -# define getc_unlocked(x) getc (x) -#endif -#if (defined HAVE_DECL_GETCHAR_UNLOCKED && !HAVE_DECL_GETCHAR_UNLOCKED \ - && !defined getchar_unlocked) -# define getchar_unlocked() getchar () -#endif -#if (defined HAVE_DECL_PUTC_UNLOCKED && !HAVE_DECL_PUTC_UNLOCKED \ - && !defined putc_unlocked) -# define putc_unlocked(x,y) putc (x,y) -#endif -#if (defined HAVE_DECL_PUTCHAR_UNLOCKED && !HAVE_DECL_PUTCHAR_UNLOCKED \ - && !defined putchar_unlocked) -# define putchar_unlocked(x) putchar (x) -#endif - -#endif /* !_LIBC */ - -#ifndef __set_errno -#define __set_errno(e) (errno = (e)) -#endif - -#if defined GNULIB_ARGP_DISABLE_DIRNAME -# define __argp_base_name(arg) arg -#elif defined GNULIB_ARGP_EXTERN_BASENAME -extern char *__argp_base_name (const char *arg); -#else -# include "basename-lgpl.h" -# define __argp_base_name last_component -#endif - -#if defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME -# define __argp_short_program_name() (program_invocation_short_name) -#else -extern char *__argp_short_program_name (void); -#endif diff --git a/include/libgnulib/argp-version-etc.h b/include/libgnulib/argp-version-etc.h deleted file mode 100755 index 4952333..0000000 --- a/include/libgnulib/argp-version-etc.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Version hook for Argp. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _ARGP_VERSION_ETC_H -#define _ARGP_VERSION_ETC_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Setup standard display of the version information for the '--version' - option. NAME is the canonical program name, and AUTHORS is a NULL- - terminated array of author names. At least one author name must be - given. - - If NAME is NULL, the package name (as given by the PACKAGE macro) - is assumed to be the name of the program. - - This function is intended to be called before argp_parse(). -*/ -extern void argp_version_setup (const char *name, const char * const *authors); - -#ifdef __cplusplus -} -#endif - -#endif /* _ARGP_VERSION_ETC_H */ diff --git a/include/libgnulib/argp.h b/include/libgnulib/argp.h deleted file mode 100755 index 6cf72e4..0000000 --- a/include/libgnulib/argp.h +++ /dev/null @@ -1,645 +0,0 @@ -/* Hierarchical argument parsing, layered over getopt. - Copyright (C) 1995-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Miles Bader . - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#ifndef _ARGP_H -#define _ARGP_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_FORMAT. */ -#if !_LIBC && !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include - -#define __need_error_t -#include - -#ifndef __THROW -# define __THROW -#endif -#ifndef __NTH -# define __NTH(fct) fct __THROW -#endif - -/* GCC 2.95 and later have "__restrict"; C99 compilers have - "restrict", and "configure" may have defined "restrict". - Other compilers use __restrict, __restrict__, and _Restrict, and - 'configure' might #define 'restrict' to those words. */ -#ifndef __restrict -# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3) -# if 199901L <= __STDC_VERSION__ -# define __restrict restrict -# else -# define __restrict -# endif -# endif -#endif - -#ifndef __error_t_defined -typedef int error_t; -# define __error_t_defined -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Glibc documentation: - https://www.gnu.org/software/libc/manual/html_node/Argp.html */ - -/* A description of a particular option. A pointer to an array of - these is passed in the OPTIONS field of an argp structure. Each option - entry can correspond to one long option and/or one short option; more - names for the same option can be added by following an entry in an option - array with options having the OPTION_ALIAS flag set. */ -struct argp_option -{ - /* The long option name. For more than one name for the same option, you - can use following options with the OPTION_ALIAS flag set. */ - const char *name; - - /* What key is returned for this option. If > 0 and printable, then it's - also accepted as a short option. */ - int key; - - /* If non-NULL, this is the name of the argument associated with this - option, which is required unless the OPTION_ARG_OPTIONAL flag is set. */ - const char *arg; - - /* OPTION_ flags. */ - int flags; - - /* The doc string for this option. If both NAME and KEY are 0, This string - will be printed outdented from the normal option column, making it - useful as a group header (it will be the first thing printed in its - group); in this usage, it's conventional to end the string with a ':'. - - Write the initial value as N_("TEXT") if you want xgettext to collect - it into a POT file. */ - const char *doc; - - /* The group this option is in. In a long help message, options are sorted - alphabetically within each group, and the groups presented in the order - 0, 1, 2, ..., n, -m, ..., -2, -1. Every entry in an options array with - if this field 0 will inherit the group number of the previous entry, or - zero if it's the first one, unless its a group header (NAME and KEY both - 0), in which case, the previous entry + 1 is the default. Automagic - options such as --help are put into group -1. */ - int group; -}; - -/* The argument associated with this option is optional. */ -#define OPTION_ARG_OPTIONAL 0x1 - -/* This option isn't displayed in any help messages. */ -#define OPTION_HIDDEN 0x2 - -/* This option is an alias for the closest previous non-alias option. This - means that it will be displayed in the same help entry, and will inherit - fields other than NAME and KEY from the aliased option. */ -#define OPTION_ALIAS 0x4 - -/* This option isn't actually an option (and so should be ignored by the - actual option parser), but rather an arbitrary piece of documentation that - should be displayed in much the same manner as the options. If this flag - is set, then the option NAME field is displayed unmodified (e.g., no '--' - prefix is added) at the left-margin (where a *short* option would normally - be displayed), and the documentation string in the normal place. The NAME - field will be translated using gettext, unless OPTION_NO_TRANS is set (see - below). For purposes of sorting, any leading whitespace and punctuation is - ignored, except that if the first non-whitespace character is not '-', this - entry is displayed after all options (and OPTION_DOC entries with a leading - '-') in the same group. */ -#define OPTION_DOC 0x8 - -/* This option shouldn't be included in "long" usage messages (but is still - included in help messages). This is mainly intended for options that are - completely documented in an argp's ARGS_DOC field, in which case including - the option in the generic usage list would be redundant. For instance, - if ARGS_DOC is "FOO BAR\n-x BLAH", and the '-x' option's purpose is to - distinguish these two cases, -x should probably be marked - OPTION_NO_USAGE. */ -#define OPTION_NO_USAGE 0x10 - -/* Valid only in conjunction with OPTION_DOC. This option disables translation - of option name. */ -#define OPTION_NO_TRANS 0x20 - -struct argp; /* fwd declare this type */ -struct argp_state; /* " */ -struct argp_child; /* " */ - -/* The type of a pointer to an argp parsing function. */ -typedef error_t (*argp_parser_t) (int __key, char *__arg, - struct argp_state *__state); - -/* What to return for unrecognized keys. For special ARGP_KEY_ keys, such - returns will simply be ignored. For user keys, this error will be turned - into EINVAL (if the call to argp_parse is such that errors are propagated - back to the user instead of exiting); returning EINVAL itself would result - in an immediate stop to parsing in *all* cases. */ -#define ARGP_ERR_UNKNOWN E2BIG /* Hurd should never need E2BIG. XXX */ - -/* Special values for the KEY argument to an argument parsing function. - ARGP_ERR_UNKNOWN should be returned if they aren't understood. - - The sequence of keys to a parsing function is either (where each - uppercased word should be prefixed by 'ARGP_KEY_' and opt is a user key): - - INIT opt... NO_ARGS END SUCCESS -- No non-option arguments at all - or INIT (opt | ARG)... END SUCCESS -- All non-option args parsed - or INIT (opt | ARG)... SUCCESS -- Some non-option arg unrecognized - - The third case is where every parser returned ARGP_KEY_UNKNOWN for an - argument, in which case parsing stops at that argument (returning the - unparsed arguments to the caller of argp_parse if requested, or stopping - with an error message if not). - - If an error occurs (either detected by argp, or because the parsing - function returned an error value), then the parser is called with - ARGP_KEY_ERROR, and no further calls are made. */ - -/* This is not an option at all, but rather a command line argument. If a - parser receiving this key returns success, the fact is recorded, and the - ARGP_KEY_NO_ARGS case won't be used. HOWEVER, if while processing the - argument, a parser function decrements the NEXT field of the state it's - passed, the option won't be considered processed; this is to allow you to - actually modify the argument (perhaps into an option), and have it - processed again. */ -#define ARGP_KEY_ARG 0 -/* There are remaining arguments not parsed by any parser, which may be found - starting at (STATE->argv + STATE->next). If success is returned, but - STATE->next left untouched, it's assumed that all arguments were consume, - otherwise, the parser should adjust STATE->next to reflect any arguments - consumed. */ -#define ARGP_KEY_ARGS 0x1000006 -/* There are no more command line arguments at all. */ -#define ARGP_KEY_END 0x1000001 -/* Because it's common to want to do some special processing if there aren't - any non-option args, user parsers are called with this key if they didn't - successfully process any non-option arguments. Called just before - ARGP_KEY_END (where more general validity checks on previously parsed - arguments can take place). */ -#define ARGP_KEY_NO_ARGS 0x1000002 -/* Passed in before any parsing is done. Afterwards, the values of each - element of the CHILD_INPUT field, if any, in the state structure is - copied to each child's state to be the initial value of the INPUT field. */ -#define ARGP_KEY_INIT 0x1000003 -/* Use after all other keys, including SUCCESS & END. */ -#define ARGP_KEY_FINI 0x1000007 -/* Passed in when parsing has successfully been completed (even if there are - still arguments remaining). */ -#define ARGP_KEY_SUCCESS 0x1000004 -/* Passed in if an error occurs. */ -#define ARGP_KEY_ERROR 0x1000005 - -/* An argp structure contains a set of options declarations, a function to - deal with parsing one, documentation string, a possible vector of child - argp's, and perhaps a function to filter help output. When actually - parsing options, getopt is called with the union of all the argp - structures chained together through their CHILD pointers, with conflicts - being resolved in favor of the first occurrence in the chain. */ -struct argp -{ - /* An array of argp_option structures, terminated by an entry with both - NAME and KEY having a value of 0. */ - const struct argp_option *options; - - /* What to do with an option from this structure. KEY is the key - associated with the option, and ARG is any associated argument (NULL if - none was supplied). If KEY isn't understood, ARGP_ERR_UNKNOWN should be - returned. If a non-zero, non-ARGP_ERR_UNKNOWN value is returned, then - parsing is stopped immediately, and that value is returned from - argp_parse(). For special (non-user-supplied) values of KEY, see the - ARGP_KEY_ definitions below. */ - argp_parser_t parser; - - /* If non-NULL, a string describing what other arguments are wanted by this - program. It is only used by argp_usage to print the "Usage:" message. - If it contains newlines, the strings separated by them are considered - alternative usage patterns, and printed on separate lines (lines after - the first are prefix by " or: " instead of "Usage:"). */ - const char *args_doc; - - /* If non-NULL, a string containing extra text to be printed before and - after the options in a long help message (separated by a vertical tab - '\v' character). - Write the initial value as N_("BEFORE-TEXT") "\v" N_("AFTER-TEXT") if - you want xgettext to collect the two pieces of text into a POT file. */ - const char *doc; - - /* A vector of argp_children structures, terminated by a member with a 0 - argp field, pointing to child argps should be parsed with this one. Any - conflicts are resolved in favor of this argp, or early argps in the - CHILDREN list. This field is useful if you use libraries that supply - their own argp structure, which you want to use in conjunction with your - own. */ - const struct argp_child *children; - - /* If non-zero, this should be a function to filter the output of help - messages. KEY is either a key from an option, in which case TEXT is - that option's help text, or a special key from the ARGP_KEY_HELP_ - defines, below, describing which other help text TEXT is. The function - should return either TEXT, if it should be used as-is, a replacement - string, which should be malloced, and will be freed by argp, or NULL, - meaning "print nothing". The value for TEXT is *after* any translation - has been done, so if any of the replacement text also needs translation, - that should be done by the filter function. INPUT is either the input - supplied to argp_parse, or NULL, if argp_help was called directly. */ - char *(*help_filter) (int __key, const char *__text, void *__input); - - /* If non-zero the strings used in the argp library are translated using - the domain described by this string. Otherwise the currently installed - default domain is used. */ - const char *argp_domain; -}; - -/* Possible KEY arguments to a help filter function. */ -#define ARGP_KEY_HELP_PRE_DOC 0x2000001 /* Help text preceding options. */ -#define ARGP_KEY_HELP_POST_DOC 0x2000002 /* Help text following options. */ -#define ARGP_KEY_HELP_HEADER 0x2000003 /* Option header string. */ -#define ARGP_KEY_HELP_EXTRA 0x2000004 /* After all other documentation; - TEXT is NULL for this key. */ -/* Explanatory note emitted when duplicate option arguments have been - suppressed. */ -#define ARGP_KEY_HELP_DUP_ARGS_NOTE 0x2000005 -#define ARGP_KEY_HELP_ARGS_DOC 0x2000006 /* Argument doc string. */ - -/* When an argp has a non-zero CHILDREN field, it should point to a vector of - argp_child structures, each of which describes a subsidiary argp. */ -struct argp_child -{ - /* The child parser. */ - const struct argp *argp; - - /* Flags for this child. */ - int flags; - - /* If non-zero, an optional header to be printed in help output before the - child options. As a side-effect, a non-zero value forces the child - options to be grouped together; to achieve this effect without actually - printing a header string, use a value of "". */ - const char *header; - - /* Where to group the child options relative to the other ("consolidated") - options in the parent argp; the values are the same as the GROUP field - in argp_option structs, but all child-groupings follow parent options at - a particular group level. If both this field and HEADER are zero, then - they aren't grouped at all, but rather merged with the parent options - (merging the child's grouping levels with the parents). */ - int group; -}; - -/* Parsing state. This is provided to parsing functions called by argp, - which may examine and, as noted, modify fields. */ -struct argp_state -{ - /* The top level ARGP being parsed. */ - const struct argp *root_argp; - - /* The argument vector being parsed. May be modified. */ - int argc; - char **argv; - - /* The index in ARGV of the next arg that to be parsed. May be modified. */ - int next; - - /* The flags supplied to argp_parse. May be modified. */ - unsigned flags; - - /* While calling a parsing function with a key of ARGP_KEY_ARG, this is the - number of the current arg, starting at zero, and incremented after each - such call returns. At all other times, this is the number of such - arguments that have been processed. */ - unsigned arg_num; - - /* If non-zero, the index in ARGV of the first argument following a special - '--' argument (which prevents anything following being interpreted as an - option). Only set once argument parsing has proceeded past this point. */ - int quoted; - - /* An arbitrary pointer passed in from the user. */ - void *input; - /* Values to pass to child parsers. This vector will be the same length as - the number of children for the current parser. */ - void **child_inputs; - - /* For the parser's use. Initialized to 0. */ - void *hook; - - /* The name used when printing messages. This is initialized to ARGV[0], - or PROGRAM_INVOCATION_NAME if that is unavailable. */ - char *name; - - /* Streams used when argp prints something. */ - FILE *err_stream; /* For errors; initialized to stderr. */ - FILE *out_stream; /* For information; initialized to stdout. */ - - void *pstate; /* Private, for use by argp. */ -}; - -/* Flags for argp_parse (note that the defaults are those that are - convenient for program command line parsing): */ - -/* Don't ignore the first element of ARGV. Normally (and always unless - ARGP_NO_ERRS is set) the first element of the argument vector is - skipped for option parsing purposes, as it corresponds to the program name - in a command line. */ -#define ARGP_PARSE_ARGV0 0x01 - -/* Don't print error messages for unknown options to stderr; unless this flag - is set, ARGP_PARSE_ARGV0 is ignored, as ARGV[0] is used as the program - name in the error messages. This flag implies ARGP_NO_EXIT (on the - assumption that silent exiting upon errors is bad behaviour). */ -#define ARGP_NO_ERRS 0x02 - -/* Don't parse any non-option args. Normally non-option args are parsed by - calling the parse functions with a key of ARGP_KEY_ARG, and the actual arg - as the value. Since it's impossible to know which parse function wants to - handle it, each one is called in turn, until one returns 0 or an error - other than ARGP_ERR_UNKNOWN; if an argument is handled by no one, the - argp_parse returns prematurely (but with a return value of 0). If all - args have been parsed without error, all parsing functions are called one - last time with a key of ARGP_KEY_END. This flag needn't normally be set, - as the normal behavior is to stop parsing as soon as some argument can't - be handled. */ -#define ARGP_NO_ARGS 0x04 - -/* Parse options and arguments in the same order they occur on the command - line -- normally they're rearranged so that all options come first. */ -#define ARGP_IN_ORDER 0x08 - -/* Don't provide the standard long option --help, which causes usage and - option help information to be output to stdout, and exit (0) called. */ -#define ARGP_NO_HELP 0x10 - -/* Don't exit on errors (they may still result in error messages). */ -#define ARGP_NO_EXIT 0x20 - -/* Use the gnu getopt "long-only" rules for parsing arguments. */ -#define ARGP_LONG_ONLY 0x40 - -/* Turns off any message-printing/exiting options. */ -#define ARGP_SILENT (ARGP_NO_EXIT | ARGP_NO_ERRS | ARGP_NO_HELP) - -/* Parse the options strings in ARGC & ARGV according to the options in ARGP. - FLAGS is one of the ARGP_ flags above. If ARG_INDEX is non-NULL, the - index in ARGV of the first unparsed option is returned in it. If an - unknown option is present, ARGP_ERR_UNKNOWN is returned; if some parser - routine returned a non-zero value, it is returned; otherwise 0 is - returned. This function may also call exit unless the ARGP_NO_HELP flag - is set. INPUT is a pointer to a value to be passed to the parser. */ -extern error_t argp_parse (const struct argp *__restrict __argp, - int /*argc*/, char **__restrict /*argv*/, - unsigned __flags, int *__restrict __arg_index, - void *__restrict __input); -extern error_t __argp_parse (const struct argp *__restrict __argp, - int /*argc*/, char **__restrict /*argv*/, - unsigned __flags, int *__restrict __arg_index, - void *__restrict __input); - -/* Global variables. */ - -/* GNULIB makes sure both program_invocation_name and - program_invocation_short_name are available */ -#ifdef GNULIB_PROGRAM_INVOCATION_NAME -extern char *program_invocation_name; -# undef HAVE_DECL_PROGRAM_INVOCATION_NAME -# define HAVE_DECL_PROGRAM_INVOCATION_NAME 1 -#endif - -#ifdef GNULIB_PROGRAM_INVOCATION_SHORT_NAME -extern char *program_invocation_short_name; -# undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME -# define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1 -#endif - -/* If defined or set by the user program to a non-zero value, then a default - option --version is added (unless the ARGP_NO_HELP flag is used), which - will print this string followed by a newline and exit (unless the - ARGP_NO_EXIT flag is used). Overridden by ARGP_PROGRAM_VERSION_HOOK. */ -extern const char *argp_program_version; - -/* If defined or set by the user program to a non-zero value, then a default - option --version is added (unless the ARGP_NO_HELP flag is used), which - calls this function with a stream to print the version to and a pointer to - the current parsing state, and then exits (unless the ARGP_NO_EXIT flag is - used). This variable takes precedent over ARGP_PROGRAM_VERSION. */ -extern void (*argp_program_version_hook) (FILE *__restrict __stream, - struct argp_state *__restrict - __state); - -/* If defined or set by the user program, it should point to string that is - the bug-reporting address for the program. It will be printed by - argp_help if the ARGP_HELP_BUG_ADDR flag is set (as it is by various - standard help messages), embedded in a sentence that says something like - "Report bugs to ADDR." */ -extern const char *argp_program_bug_address; - -/* The exit status that argp will use when exiting due to a parsing error. - If not defined or set by the user program, this defaults to EX_USAGE from - . */ -extern error_t argp_err_exit_status; - -/* Flags for argp_help. */ -#define ARGP_HELP_USAGE 0x01 /* a Usage: message. */ -#define ARGP_HELP_SHORT_USAGE 0x02 /* " but don't actually print options. */ -#define ARGP_HELP_SEE 0x04 /* a "Try ... for more help" message. */ -#define ARGP_HELP_LONG 0x08 /* a long help message. */ -#define ARGP_HELP_PRE_DOC 0x10 /* doc string preceding long help. */ -#define ARGP_HELP_POST_DOC 0x20 /* doc string following long help. */ -#define ARGP_HELP_DOC (ARGP_HELP_PRE_DOC | ARGP_HELP_POST_DOC) -#define ARGP_HELP_BUG_ADDR 0x40 /* bug report address */ -#define ARGP_HELP_LONG_ONLY 0x80 /* modify output appropriately to - reflect ARGP_LONG_ONLY mode. */ - -/* These ARGP_HELP flags are only understood by argp_state_help. */ -#define ARGP_HELP_EXIT_ERR 0x100 /* Call exit(1) instead of returning. */ -#define ARGP_HELP_EXIT_OK 0x200 /* Call exit(0) instead of returning. */ - -/* The standard thing to do after a program command line parsing error, if an - error message has already been printed. */ -#define ARGP_HELP_STD_ERR \ - (ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR) -/* The standard thing to do after a program command line parsing error, if no - more specific error message has been printed. */ -#define ARGP_HELP_STD_USAGE \ - (ARGP_HELP_SHORT_USAGE | ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR) -/* The standard thing to do in response to a --help option. */ -#define ARGP_HELP_STD_HELP \ - (ARGP_HELP_SHORT_USAGE | ARGP_HELP_LONG | ARGP_HELP_EXIT_OK \ - | ARGP_HELP_DOC | ARGP_HELP_BUG_ADDR) - -/* Output a usage message for ARGP to STREAM. FLAGS are from the set - ARGP_HELP_*. */ -extern void argp_help (const struct argp *__restrict __argp, - FILE *__restrict __stream, - unsigned __flags, char *__restrict __name); -extern void __argp_help (const struct argp *__restrict __argp, - FILE *__restrict __stream, unsigned __flags, - char *__name); - -/* The following routines are intended to be called from within an argp - parsing routine (thus taking an argp_state structure as the first - argument). They may or may not print an error message and exit, depending - on the flags in STATE -- in any case, the caller should be prepared for - them *not* to exit, and should return an appropriate error after calling - them. [argp_usage & argp_error should probably be called argp_state_..., - but they're used often enough that they should be short] */ - -/* Output, if appropriate, a usage message for STATE to STREAM. FLAGS are - from the set ARGP_HELP_*. */ -extern void argp_state_help (const struct argp_state *__restrict __state, - FILE *__restrict __stream, - unsigned int __flags); -extern void __argp_state_help (const struct argp_state *__restrict __state, - FILE *__restrict __stream, - unsigned int __flags); - -#if _LIBC -/* Possibly output the standard usage message for ARGP to stderr and exit. */ -extern void argp_usage (const struct argp_state *__state); -extern void __argp_usage (const struct argp_state *__state); -#endif - -/* If appropriate, print the printf string FMT and following args, preceded - by the program name and ':', to stderr, and followed by a "Try ... --help" - message, then exit (1). */ -extern void argp_error (const struct argp_state *__restrict __state, - const char *__restrict __fmt, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 3)) -#endif - ; -extern void __argp_error (const struct argp_state *__restrict __state, - const char *__restrict __fmt, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 3)) -#endif - ; - -/* Similar to the standard gnu error-reporting function error(), but will - respect the ARGP_NO_EXIT and ARGP_NO_ERRS flags in STATE, and will print - to STATE->err_stream. This is useful for argument parsing code that is - shared between program startup (when exiting is desired) and runtime - option parsing (when typically an error code is returned instead). The - difference between this function and argp_error is that the latter is for - *parsing errors*, and the former is for other problems that occur during - parsing but don't reflect a (syntactic) problem with the input. */ -extern void argp_failure (const struct argp_state *__restrict __state, - int __status, int __errnum, - const char *__restrict __fmt, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 4, 5)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 4, 5)) -#endif - ; -extern void __argp_failure (const struct argp_state *__restrict __state, - int __status, int __errnum, - const char *__restrict __fmt, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 4, 5)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 4, 5)) -#endif - ; - -#if _LIBC -/* Returns true if the option OPT is a valid short option. */ -extern int _option_is_short (const struct argp_option *__opt) __THROW; -extern int __option_is_short (const struct argp_option *__opt) __THROW; - -/* Returns true if the option OPT is in fact the last (unused) entry in an - options array. */ -extern int _option_is_end (const struct argp_option *__opt) __THROW; -extern int __option_is_end (const struct argp_option *__opt) __THROW; -#endif - -/* Return the input field for ARGP in the parser corresponding to STATE; used - by the help routines. */ -extern void *_argp_input (const struct argp *__restrict __argp, - const struct argp_state *__restrict __state) - __THROW; -extern void *__argp_input (const struct argp *__restrict __argp, - const struct argp_state *__restrict __state) - __THROW; - -#if !_LIBC || defined __USE_EXTERN_INLINES - -# if !_LIBC -# define __argp_usage argp_usage -# define __argp_state_help argp_state_help -# define __option_is_short _option_is_short -# define __option_is_end _option_is_end -_GL_INLINE_HEADER_BEGIN -# ifndef ARGP_EI -# define ARGP_EI _GL_INLINE -# endif -# endif - -# ifndef ARGP_EI -# define ARGP_EI __extern_inline -# endif - -ARGP_EI void -__argp_usage (const struct argp_state *__state) -{ - __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE); -} - -ARGP_EI int -__NTH (__option_is_short (const struct argp_option *__opt)) -{ - if (__opt->flags & OPTION_DOC) - return 0; - else - { - int __key = __opt->key; - return __key > 0 && __key <= UCHAR_MAX && isprint (__key); - } -} - -ARGP_EI int -__NTH (__option_is_end (const struct argp_option *__opt)) -{ - return !__opt->key && !__opt->name && !__opt->doc && !__opt->group; -} - -# if !_LIBC -# undef __argp_usage -# undef __argp_state_help -# undef __option_is_short -# undef __option_is_end -_GL_INLINE_HEADER_END -# endif -#endif /* Use extern inlines. */ - -#ifdef __cplusplus -} -#endif - -#endif /* argp.h */ diff --git a/include/libgnulib/argv-iter.h b/include/libgnulib/argv-iter.h deleted file mode 100755 index 8f8823a..0000000 --- a/include/libgnulib/argv-iter.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Iterate over arguments from argv or --files0-from=FILE - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Definition of _GL_ARG_NONNULL. */ -#include "arg-nonnull.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -struct argv_iterator; - -enum argv_iter_err -{ - AI_ERR_OK = 1, - AI_ERR_EOF, - AI_ERR_MEM, - AI_ERR_READ -}; - -void argv_iter_free (struct argv_iterator *) - _GL_ARG_NONNULL ((1)); - -struct argv_iterator *argv_iter_init_argv (char **argv) - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_DEALLOC (argv_iter_free, 1); -struct argv_iterator *argv_iter_init_stream (FILE *fp) - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_DEALLOC (argv_iter_free, 1); -char *argv_iter (struct argv_iterator *, enum argv_iter_err *) - _GL_ARG_NONNULL ((1, 2)); -size_t argv_iter_n_args (struct argv_iterator const *) - _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/array-mergesort.h b/include/libgnulib/array-mergesort.h deleted file mode 100755 index 43be96f..0000000 --- a/include/libgnulib/array-mergesort.h +++ /dev/null @@ -1,281 +0,0 @@ -/* Stable-sorting of an array using mergesort. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - -/* This file implements stable sorting of an array, using the mergesort - algorithm. - Worst-case running time for an array of length N is O(N log N). - Unlike the mpsort module, the algorithm here attempts to minimize not - only the number of comparisons, but also the number of copying operations. - - Before including this file, you need to define - ELEMENT The type of every array element. - COMPARE A two-argument macro that takes two 'const ELEMENT *' - pointers and returns a negative, zero, or positive 'int' - value if the element pointed to by the first argument is, - respectively, less, equal, or greater than the element - pointed to by the second argument. - STATIC The storage class of the functions being defined. - STATIC_FROMTO (Optional.) Overrides STATIC for the 'merge_sort_fromto' - function. - Before including this file, you also need to include: - #include - */ - -/* Merge the sorted arrays src1[0..n1-1] and src2[0..n2-1] into - dst[0..n1+n2-1]. In case of ambiguity, put the elements of src1 - before the elements of src2. - n1 and n2 must be > 0. - The arrays src1 and src2 must not overlap the dst array, except that - src1 may be dst[n2..n1+n2-1], or src2 may be dst[n1..n1+n2-1]. */ -static void -merge (const ELEMENT *src1, size_t n1, - const ELEMENT *src2, size_t n2, - ELEMENT *dst) -{ - for (;;) /* while (n1 > 0 && n2 > 0) */ - { - if (COMPARE (src1, src2) <= 0) - { - *dst++ = *src1++; - n1--; - if (n1 == 0) - break; - } - else - { - *dst++ = *src2++; - n2--; - if (n2 == 0) - break; - } - } - /* Here n1 == 0 || n2 == 0 but also n1 > 0 || n2 > 0. */ - if (n1 > 0) - { - if (dst != src1) - do - { - *dst++ = *src1++; - n1--; - } - while (n1 > 0); - } - else /* n2 > 0 */ - { - if (dst != src2) - do - { - *dst++ = *src2++; - n2--; - } - while (n2 > 0); - } -} - -/* Sort src[0..n-1] into dst[0..n-1], using tmp[0..n/2-1] as temporary - (scratch) storage. - The arrays src, dst, tmp must not overlap. */ -#ifdef STATIC_FROMTO -STATIC_FROMTO -#else -STATIC -#endif -void -merge_sort_fromto (const ELEMENT *src, ELEMENT *dst, size_t n, ELEMENT *tmp) -{ - switch (n) - { - case 0: - return; - case 1: - /* Nothing to do. */ - dst[0] = src[0]; - return; - case 2: - /* Trivial case. */ - if (COMPARE (&src[0], &src[1]) <= 0) - { - /* src[0] <= src[1] */ - dst[0] = src[0]; - dst[1] = src[1]; - } - else - { - dst[0] = src[1]; - dst[1] = src[0]; - } - break; - case 3: - /* Simple case. */ - if (COMPARE (&src[0], &src[1]) <= 0) - { - if (COMPARE (&src[1], &src[2]) <= 0) - { - /* src[0] <= src[1] <= src[2] */ - dst[0] = src[0]; - dst[1] = src[1]; - dst[2] = src[2]; - } - else if (COMPARE (&src[0], &src[2]) <= 0) - { - /* src[0] <= src[2] < src[1] */ - dst[0] = src[0]; - dst[1] = src[2]; - dst[2] = src[1]; - } - else - { - /* src[2] < src[0] <= src[1] */ - dst[0] = src[2]; - dst[1] = src[0]; - dst[2] = src[1]; - } - } - else - { - if (COMPARE (&src[0], &src[2]) <= 0) - { - /* src[1] < src[0] <= src[2] */ - dst[0] = src[1]; - dst[1] = src[0]; - dst[2] = src[2]; - } - else if (COMPARE (&src[1], &src[2]) <= 0) - { - /* src[1] <= src[2] < src[0] */ - dst[0] = src[1]; - dst[1] = src[2]; - dst[2] = src[0]; - } - else - { - /* src[2] < src[1] < src[0] */ - dst[0] = src[2]; - dst[1] = src[1]; - dst[2] = src[0]; - } - } - break; - default: - { - size_t n1 = n / 2; - size_t n2 = (n + 1) / 2; - /* Note: n1 + n2 = n, n1 <= n2. */ - /* Sort src[n1..n-1] into dst[n1..n-1], scratching tmp[0..n2/2-1]. */ - merge_sort_fromto (src + n1, dst + n1, n2, tmp); - /* Sort src[0..n1-1] into tmp[0..n1-1], scratching dst[0..n1-1]. */ - merge_sort_fromto (src, tmp, n1, dst); - /* Merge the two half results. */ - merge (tmp, n1, dst + n1, n2, dst); - } - break; - } -} - -/* Sort src[0..n-1], using tmp[0..n-1] as temporary (scratch) storage. - The arrays src, tmp must not overlap. */ -STATIC void -merge_sort_inplace (ELEMENT *src, size_t n, ELEMENT *tmp) -{ - switch (n) - { - case 0: - case 1: - /* Nothing to do. */ - return; - case 2: - /* Trivial case. */ - if (COMPARE (&src[0], &src[1]) <= 0) - { - /* src[0] <= src[1] */ - } - else - { - ELEMENT t = src[0]; - src[0] = src[1]; - src[1] = t; - } - break; - case 3: - /* Simple case. */ - if (COMPARE (&src[0], &src[1]) <= 0) - { - if (COMPARE (&src[1], &src[2]) <= 0) - { - /* src[0] <= src[1] <= src[2] */ - } - else if (COMPARE (&src[0], &src[2]) <= 0) - { - /* src[0] <= src[2] < src[1] */ - ELEMENT t = src[1]; - src[1] = src[2]; - src[2] = t; - } - else - { - /* src[2] < src[0] <= src[1] */ - ELEMENT t = src[0]; - src[0] = src[2]; - src[2] = src[1]; - src[1] = t; - } - } - else - { - if (COMPARE (&src[0], &src[2]) <= 0) - { - /* src[1] < src[0] <= src[2] */ - ELEMENT t = src[0]; - src[0] = src[1]; - src[1] = t; - } - else if (COMPARE (&src[1], &src[2]) <= 0) - { - /* src[1] <= src[2] < src[0] */ - ELEMENT t = src[0]; - src[0] = src[1]; - src[1] = src[2]; - src[2] = t; - } - else - { - /* src[2] < src[1] < src[0] */ - ELEMENT t = src[0]; - src[0] = src[2]; - src[2] = t; - } - } - break; - default: - { - size_t n1 = n / 2; - size_t n2 = (n + 1) / 2; - /* Note: n1 + n2 = n, n1 <= n2. */ - /* Sort src[n1..n-1], scratching tmp[0..n2-1]. */ - merge_sort_inplace (src + n1, n2, tmp); - /* Sort src[0..n1-1] into tmp[0..n1-1], scratching tmp[n1..2*n1-1]. */ - merge_sort_fromto (src, tmp, n1, tmp + n1); - /* Merge the two half results. */ - merge (tmp, n1, src + n1, n2, src); - } - break; - } -} - -#undef ELEMENT -#undef COMPARE -#undef STATIC diff --git a/include/libgnulib/assure.h b/include/libgnulib/assure.h deleted file mode 100755 index d650ca1..0000000 --- a/include/libgnulib/assure.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Run-time assert-like macros. - - Copyright (C) 2014-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef _GL_ASSURE_H -#define _GL_ASSURE_H - -#include -#include "verify.h" - -/* Evaluate an assertion E that is guaranteed to be true. - If NDEBUG is not defined, abort the program if E is false. - If NDEBUG is defined, the compiler can assume E and behavior is - undefined if E is false, fails to evaluate, or has side effects. - - Unlike standard 'assert', this macro evaluates E even when NDEBUG - is defined, so as to catch typos, avoid some GCC warnings, and - improve performance when E is simple enough. - - Also see the documentation for 'assume' in verify.h. */ - -#ifdef NDEBUG -# define affirm(E) assume (E) -#else -# define affirm(E) assert (E) -#endif - -/* Check E's value at runtime, and report an error and abort if not. - However, do nothing if NDEBUG is defined. - - Unlike standard 'assert', this macro compiles E even when NDEBUG - is defined, so as to catch typos and avoid some GCC warnings. - Unlike 'affirm', it is OK for E to use hard-to-optimize features, - since E is not executed if NDEBUG is defined. */ - -#ifdef NDEBUG -# define assure(E) ((void) (0 && (E))) -#else -# define assure(E) assert (E) -#endif - -#endif diff --git a/include/libgnulib/astrxfrm.h b/include/libgnulib/astrxfrm.h deleted file mode 100755 index e932818..0000000 --- a/include/libgnulib/astrxfrm.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Locale dependent string transformation for comparison. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 3 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef ASTRXFRM_H -#define ASTRXFRM_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Variant of strxfrm() with a calling convention that reduces the number - of strxfrm calls. */ - -/* Transform the string starting at S to a string, in such a way that - comparing S1 and S2 with strcoll() is equivalent to comparing astrxfrm(S1) - and astrxfrm(S2) with strcmp(). - The result of this function depends on the LC_COLLATE category of the - current locale. - If successful: If resultbuf is not NULL and the result fits into *lengthp - bytes, it is put in resultbuf, and resultbuf is returned. Otherwise, a - freshly allocated string is returned. In both cases, *lengthp is set to the - length of the returned string. - Upon failure, return NULL, with errno set. */ -extern char * astrxfrm (const char *s, - char *restrict resultbuf, size_t *lengthp); - - -#ifdef __cplusplus -} -#endif - -#endif /* ASTRXFRM_H */ diff --git a/include/libgnulib/asyncsafe-spin.h b/include/libgnulib/asyncsafe-spin.h deleted file mode 100755 index 61cb1b7..0000000 --- a/include/libgnulib/asyncsafe-spin.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Spin locks for communication between threads and signal handlers. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -#ifndef _ASYNCSAFE_SPIN_H -#define _ASYNCSAFE_SPIN_H - -/* Usual spin locks are not allowed for communication between threads and signal - handlers, because the pthread_spin_* functions are not async-safe; see - - section 2.4.3 Signal Actions. - - This module provides spin locks with a similar API. It can be used like this, - both in regular multithreaded code and in signal handlers: - - sigset_t saved_mask; - asyncsafe_spin_lock (&lock, &mask, &saved_mask); - do_something_contentious (); - asyncsafe_spin_unlock (&lock, &saved_mask); - - The mask you specify here is the set of signals whose handlers might want to - take the same lock. - - asyncsafe_spin_lock/unlock use pthread_sigmask, to ensure that while a thread - is executing such code, no signal handler will start such code for the same - lock *in the same thread* (because if this happened, the signal handler would - hang!). */ - -#include - -#if defined _WIN32 && ! defined __CYGWIN__ -# include "windows-spin.h" -typedef glwthread_spinlock_t asyncsafe_spinlock_t; -# define ASYNCSAFE_SPIN_INIT GLWTHREAD_SPIN_INIT -#else -typedef unsigned int asyncsafe_spinlock_t; -# define ASYNCSAFE_SPIN_INIT 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -extern void asyncsafe_spin_init (asyncsafe_spinlock_t *lock); -extern void asyncsafe_spin_lock (asyncsafe_spinlock_t *lock, - const sigset_t *mask, sigset_t *saved_mask); -extern void asyncsafe_spin_unlock (asyncsafe_spinlock_t *lock, - const sigset_t *saved_mask); -extern void asyncsafe_spin_destroy (asyncsafe_spinlock_t *lock); - -#ifdef __cplusplus -} -#endif - -#endif /* _ASYNCSAFE_SPIN_H */ diff --git a/include/libgnulib/attribute.h b/include/libgnulib/attribute.h deleted file mode 100755 index 186faa5..0000000 --- a/include/libgnulib/attribute.h +++ /dev/null @@ -1,320 +0,0 @@ -/* ATTRIBUTE_* macros for using attributes in GCC and similar compilers - - Copyright 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -/* Provide public ATTRIBUTE_* names for the private _GL_ATTRIBUTE_* - macros used within Gnulib. */ - -/* The placement of these attributes depends on the kind of declaration - and, in some cases, also on the programming language (C vs. C++). - - In function declarations and function definitions: - - * ATTRIBUTE_NOTHROW must come after the parameter list. - - * The macros - ATTRIBUTE_CONST - ATTRIBUTE_PURE - DEPRECATED - MAYBE_UNUSED - NODISCARD - REPRODUCIBLE - UNSEQUENCED - must come before the return type, and more precisely: - - In a function declaration/definition without a storage-class - specifier: at the beginning of the declaration/definition. - - In a function declaration/definition with a storage-class - specifier: - - In C: before the storage-class specifier. - - In C++: between the storage-class specifier and the return type. - - * The other macros can be placed - - Either - - In a function declaration/definition without a storage-class - specifier: at the beginning of the declaration/definition. - - In a function declaration/definition with a storage-class - specifier: between the storage-class specifier and the return - type. - - Or after the parameter list, - ∙ but after ATTRIBUTE_NOTHROW if present. - - In other declarations, such as variable declarations: - - * Either - - In C: before the storage-class specifier. - - In C++: between the storage-class specifier and the return type. - Then they apply to all entities that are declared by the declaration. - - * Or immediately after the name of an entity being declared by the - declaration. Then they apply to that entity only. - */ - -#ifndef _GL_ATTRIBUTE_H -#define _GL_ATTRIBUTE_H - - -/* This file defines two types of attributes: - * C23 standard attributes. These have macro names that do not begin with - 'ATTRIBUTE_'. - * Selected GCC attributes; see: - https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html - https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html - https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html - These names begin with 'ATTRIBUTE_' to avoid name clashes. */ - - -/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_ALWAYS_INLINE, - _GL_ATTRIBUTE_ARTIFICIAL, _GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_CONST, - _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR, - _GL_ATTRIBUTE_WARNING, _GL_ATTRIBUTE_EXTERNALLY_VISIBLE, - _GL_ATTRIBUTE_FALLTHROUGH, _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_LEAF, - _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_MAY_ALIAS, _GL_ATTRIBUTE_MAYBE_UNUSED, - _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE, _GL_ATTRIBUTE_NONNULL, - _GL_ATTRIBUTE_NONSTRING, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED, - _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_REPRODUCIBLE, - _GL_ATTRIBUTE_RETURNS_NONNULL, _GL_ATTRIBUTE_SENTINEL, - _GL_ATTRIBUTE_UNSEQUENCED. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - - -/* =============== Attributes for specific kinds of functions =============== */ - -/* Attributes for functions that should not be used. */ - -/* Warn if the entity is used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: namespace, class, template specialization. */ -#define DEPRECATED _GL_ATTRIBUTE_DEPRECATED - -/* If a function call is not optimized way, warn with MSG. */ -/* Applies to: functions. */ -#define ATTRIBUTE_WARNING(msg) _GL_ATTRIBUTE_WARNING (msg) - -/* If a function call is not optimized way, report an error with MSG. */ -/* Applies to: functions. */ -#define ATTRIBUTE_ERROR(msg) _GL_ATTRIBUTE_ERROR (msg) - - -/* Attributes for memory-allocating functions. */ - -/* The function returns a pointer to freshly allocated memory. */ -/* Applies to: functions. */ -#define ATTRIBUTE_MALLOC _GL_ATTRIBUTE_MALLOC - -/* ATTRIBUTE_ALLOC_SIZE ((N)) - The Nth argument of the function - is the size of the returned memory block. - ATTRIBUTE_ALLOC_SIZE ((M, N)) - Multiply the Mth and Nth arguments - to determine the size of the returned memory block. */ -/* Applies to: functions, pointer to functions, function types. */ -#define ATTRIBUTE_ALLOC_SIZE(args) _GL_ATTRIBUTE_ALLOC_SIZE (args) - -/* ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. - ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#define ATTRIBUTE_DEALLOC(f, i) _GL_ATTRIBUTE_DEALLOC(f, i) -#define ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC_FREE - -/* Attributes for variadic functions. */ - -/* The variadic function expects a trailing NULL argument. - ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). - ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ -/* Applies to: functions. */ -#define ATTRIBUTE_SENTINEL(pos) _GL_ATTRIBUTE_SENTINEL (pos) - - -/* ================== Attributes for compiler diagnostics ================== */ - -/* Attributes that help the compiler diagnose programmer mistakes. - Some of them may also help for some compiler optimizations. */ - -/* ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - - The STRING-INDEXth function argument is a format string of style - ARCHETYPE, which is one of: - printf, gnu_printf - scanf, gnu_scanf, - strftime, gnu_strftime, - strfmon, - or the same thing prefixed and suffixed with '__'. - If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK - are suitable for the format string. */ -/* Applies to: functions. */ -#define ATTRIBUTE_FORMAT(spec) _GL_ATTRIBUTE_FORMAT (spec) - -/* ATTRIBUTE_NONNULL ((N1, N2,...)) - Arguments N1, N2,... must not be NULL. - ATTRIBUTE_NONNULL () - All pointer arguments must not be null. */ -/* Applies to: functions. */ -#define ATTRIBUTE_NONNULL(args) _GL_ATTRIBUTE_NONNULL (args) - -/* The function's return value is a non-NULL pointer. */ -/* Applies to: functions. */ -#define ATTRIBUTE_RETURNS_NONNULL _GL_ATTRIBUTE_RETURNS_NONNULL - -/* Warn if the caller does not use the return value, - unless the caller uses something like ignore_value. */ -/* Applies to: function, enumeration, class. */ -#define NODISCARD _GL_ATTRIBUTE_NODISCARD - - -/* Attributes that disable false alarms when the compiler diagnoses - programmer "mistakes". */ - -/* Do not warn if the entity is not used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: class. */ -#define MAYBE_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED - -/* The contents of a character array is not meant to be NUL-terminated. */ -/* Applies to: struct/union members and variables that are arrays of element - type '[[un]signed] char'. */ -#define ATTRIBUTE_NONSTRING _GL_ATTRIBUTE_NONSTRING - -/* Do not warn if control flow falls through to the immediately - following 'case' or 'default' label. */ -/* Applies to: Empty statement (;), inside a 'switch' statement. */ -#define FALLTHROUGH _GL_ATTRIBUTE_FALLTHROUGH - - -/* ================== Attributes for debugging information ================== */ - -/* Attributes regarding debugging information emitted by the compiler. */ - -/* Omit the function from stack traces when debugging. */ -/* Applies to: functions. */ -#define ATTRIBUTE_ARTIFICIAL _GL_ATTRIBUTE_ARTIFICIAL - -/* Make the entity visible to debuggers etc., even with '-fwhole-program'. */ -/* Applies to: functions, variables. */ -#define ATTRIBUTE_EXTERNALLY_VISIBLE _GL_ATTRIBUTE_EXTERNALLY_VISIBLE - - -/* ========== Attributes that mainly direct compiler optimizations ========== */ - -/* The function does not throw exceptions. */ -/* Applies to: functions. */ -/* After a function's parameter list, this attribute must come first, before - other attributes. */ -#define ATTRIBUTE_NOTHROW _GL_ATTRIBUTE_NOTHROW - -/* Do not inline the function. */ -/* Applies to: functions. */ -#define ATTRIBUTE_NOINLINE _GL_ATTRIBUTE_NOINLINE - -/* Always inline the function, and report an error if the compiler - cannot inline. */ -/* Applies to: functions. */ -#define ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE - -/* It is OK for a compiler to move calls to the function and to omit - calls to the function if another call has the same arguments or the - result is not used. - This attribute is safe for a function that neither depends on - nor affects state, and always returns exactly once - - e.g., does not raise an exception, call longjmp, or loop forever. - (This attribute is stricter than ATTRIBUTE_PURE because the - function cannot observe state. It is stricter than UNSEQUENCED - because the function must return exactly once and cannot depend on - state addressed by its arguments.) */ -/* Applies to: functions. */ -#define ATTRIBUTE_CONST _GL_ATTRIBUTE_CONST - -/* It is OK for a compiler to move calls to the function and to omit duplicate - calls to the function with the same arguments, so long as the state - addressed by its arguments is the same. - This attribute is safe for a function that is effectless, idempotent, - stateless, and independent; see ISO C 23 § 6.7.12.7 for a definition of - these terms. - (This attribute is stricter than REPRODUCIBLE because the function - must be stateless and independent. It is looser than ATTRIBUTE_CONST - because the function need not return exactly once and can depend - on state addressed by its arguments.) - See also and - . */ -/* Applies to: functions, pointer to functions, function type. */ -#define UNSEQUENCED _GL_ATTRIBUTE_UNSEQUENCED - -/* It is OK for a compiler to move calls to the function and to omit - calls to the function if another call has the same arguments or the - result is not used, and if observable state is the same. - This attribute is safe for a function that does not affect observable state - and always returns exactly once. - (This attribute is looser than ATTRIBUTE_CONST because the function - can depend on observable state. It is stricter than REPRODUCIBLE - because the function must return exactly once and cannot affect - state addressed by its arguments.) */ -/* Applies to: functions. */ -#define ATTRIBUTE_PURE _GL_ATTRIBUTE_PURE - -/* It is OK for a compiler to move calls to the function and to omit duplicate - calls to the function with the same arguments, so long as the state - addressed by its arguments is the same and is updated in time for - the rest of the program. - This attribute is safe for a function that is effectless and idempotent; see - ISO C 23 § 6.7.12.7 for a definition of these terms. - (This attribute is looser than UNSEQUENCED because the function need - not be stateless and idempotent. It is looser than ATTRIBUTE_PURE - because the function need not return exactly once and can affect - state addressed by its arguments.) - See also and - . */ -/* Applies to: functions, pointer to functions, function type. */ -#define REPRODUCIBLE _GL_ATTRIBUTE_REPRODUCIBLE - -/* The function is rarely executed. */ -/* Applies to: functions. */ -#define ATTRIBUTE_COLD _GL_ATTRIBUTE_COLD - -/* If called from some other compilation unit, the function executes - code from that unit only by return or by exception handling, - letting the compiler optimize that unit more aggressively. */ -/* Applies to: functions. */ -#define ATTRIBUTE_LEAF _GL_ATTRIBUTE_LEAF - -/* For struct members: The member has the smallest possible alignment. - For struct, union, class: All members have the smallest possible alignment, - minimizing the memory required. */ -/* Applies to: struct members, struct, union, - in C++ also: class. */ -#define ATTRIBUTE_PACKED _GL_ATTRIBUTE_PACKED - - -/* ================ Attributes that make invalid code valid ================ */ - -/* Attributes that prevent fatal compiler optimizations for code that is not - fully ISO C compliant. */ - -/* Pointers to the type may point to the same storage as pointers to - other types, thus disabling strict aliasing optimization. */ -/* Applies to: types. */ -#define ATTRIBUTE_MAY_ALIAS _GL_ATTRIBUTE_MAY_ALIAS - - -#endif /* _GL_ATTRIBUTE_H */ diff --git a/include/libgnulib/backup-internal.h b/include/libgnulib/backup-internal.h deleted file mode 100755 index 1769702..0000000 --- a/include/libgnulib/backup-internal.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Backup files. - - Copyright (C) 2017-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#include "backupfile.h" -#include - -extern char *backupfile_internal (int, char const *, enum backup_type, bool) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; diff --git a/include/libgnulib/backupfile.h b/include/libgnulib/backupfile.h deleted file mode 100755 index 228b049..0000000 --- a/include/libgnulib/backupfile.h +++ /dev/null @@ -1,73 +0,0 @@ -/* backupfile.h -- declarations for making Emacs style backup file names - - Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#ifndef BACKUPFILE_H_ -#define BACKUPFILE_H_ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get AT_FDCWD, as a convenience for users of this file. */ -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* When to make backup files. */ -enum backup_type -{ - /* Never make backups. */ - no_backups, - - /* Make simple backups of every file. */ - simple_backups, - - /* Make numbered backups of files that already have numbered backups, - and simple backups of the others. */ - numbered_existing_backups, - - /* Make numbered backups of every file. */ - numbered_backups -}; - -#define VALID_BACKUP_TYPE(Type) \ - ((unsigned int) (Type) <= numbered_backups) - -extern char const *simple_backup_suffix; - -void set_simple_backup_suffix (char const *); -char *backup_file_rename (int, char const *, enum backup_type) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -char *find_backup_file_name (int, char const *, enum backup_type) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -enum backup_type get_version (char const *context, char const *arg); -enum backup_type xget_version (char const *context, char const *arg); - - -#ifdef __cplusplus -} -#endif - -#endif /* ! BACKUPFILE_H_ */ diff --git a/include/libgnulib/base32.h b/include/libgnulib/base32.h deleted file mode 100755 index 8c10948..0000000 --- a/include/libgnulib/base32.h +++ /dev/null @@ -1,99 +0,0 @@ -/* base32.h -- Encode binary data using printable characters. - Copyright (C) 2004-2006, 2009-2024 Free Software Foundation, Inc. - Adapted from Simon Josefsson's base64 code by Gijs van Tulder. - - This file 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 file 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 program. If not, see . */ - -#ifndef BASE32_H -#define BASE32_H - -/* This file uses _GL_INLINE_HEADER_BEGIN. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get idx_t. */ -#include - -/* Pacify GCC in isubase32. */ -#if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) && !defined __clang__ -# pragma GCC diagnostic ignored "-Wtype-limits" -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef BASE32_INLINE -# define BASE32_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* This uses that the expression (n+(k-1))/k means the smallest - integer >= n/k, i.e., the ceiling of n/k. */ -#define BASE32_LENGTH(inlen) ((((inlen) + 4) / 5) * 8) - -struct base32_decode_context -{ - int i; - char buf[8]; -}; - -extern signed char const base32_to_int[256]; - -BASE32_INLINE bool -isubase32 (unsigned char ch) -{ - return ch < sizeof base32_to_int && 0 <= base32_to_int[ch]; -} - -BASE32_INLINE bool -isbase32 (char ch) -{ - return isubase32 (ch); -} - -extern void base32_encode (const char *restrict in, idx_t inlen, - char *restrict out, idx_t outlen); - -extern idx_t base32_encode_alloc (const char *in, idx_t inlen, char **out); - -/* Initialize decode-context buffer, CTX. */ -BASE32_INLINE void -base32_decode_ctx_init (struct base32_decode_context *ctx) -{ - ctx->i = 0; -} - -extern bool base32_decode_ctx (struct base32_decode_context *ctx, - const char *restrict in, idx_t inlen, - char *restrict out, idx_t *outlen); - -extern bool base32_decode_alloc_ctx (struct base32_decode_context *ctx, - const char *in, idx_t inlen, - char **out, idx_t *outlen); - -#define base32_decode(in, inlen, out, outlen) \ - base32_decode_ctx (NULL, in, inlen, out, outlen) - -#define base32_decode_alloc(in, inlen, out, outlen) \ - base32_decode_alloc_ctx (NULL, in, inlen, out, outlen) - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* BASE32_H */ diff --git a/include/libgnulib/base64.h b/include/libgnulib/base64.h deleted file mode 100755 index 562ba97..0000000 --- a/include/libgnulib/base64.h +++ /dev/null @@ -1,99 +0,0 @@ -/* base64.h -- Encode binary data using printable characters. - Copyright (C) 2004-2006, 2009-2024 Free Software Foundation, Inc. - Written by Simon Josefsson. - - This file 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 file 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 program. If not, see . */ - -#ifndef BASE64_H -#define BASE64_H - -/* This file uses _GL_INLINE_HEADER_BEGIN. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get idx_t. */ -#include - -/* Pacify GCC in isubase64. */ -#if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) && !defined __clang__ -# pragma GCC diagnostic ignored "-Wtype-limits" -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef BASE64_INLINE -# define BASE64_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* This uses that the expression (n+(k-1))/k means the smallest - integer >= n/k, i.e., the ceiling of n/k. */ -#define BASE64_LENGTH(inlen) ((((inlen) + 2) / 3) * 4) - -struct base64_decode_context -{ - int i; - char buf[4]; -}; - -extern signed char const base64_to_int[256]; - -BASE64_INLINE bool -isubase64 (unsigned char ch) -{ - return ch < sizeof base64_to_int && 0 <= base64_to_int[ch]; -} - -BASE64_INLINE bool -isbase64 (char ch) -{ - return isubase64 (ch); -} - -extern void base64_encode (const char *restrict in, idx_t inlen, - char *restrict out, idx_t outlen); - -extern idx_t base64_encode_alloc (const char *in, idx_t inlen, char **out); - -/* Initialize decode-context buffer, CTX. */ -BASE64_INLINE void -base64_decode_ctx_init (struct base64_decode_context *ctx) -{ - ctx->i = 0; -} - -extern bool base64_decode_ctx (struct base64_decode_context *ctx, - const char *restrict in, idx_t inlen, - char *restrict out, idx_t *outlen); - -extern bool base64_decode_alloc_ctx (struct base64_decode_context *ctx, - const char *in, idx_t inlen, - char **out, idx_t *outlen); - -#define base64_decode(in, inlen, out, outlen) \ - base64_decode_ctx (NULL, in, inlen, out, outlen) - -#define base64_decode_alloc(in, inlen, out, outlen) \ - base64_decode_alloc_ctx (NULL, in, inlen, out, outlen) - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* BASE64_H */ diff --git a/include/libgnulib/basename-lgpl.h b/include/libgnulib/basename-lgpl.h deleted file mode 100755 index 2a56be9..0000000 --- a/include/libgnulib/basename-lgpl.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Extract the last component (base name) of a file name. - - Copyright (C) 1998, 2001, 2003-2006, 2009-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _BASENAME_LGPL_H -#define _BASENAME_LGPL_H - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT -# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the address of the last file name component of FILENAME. - If FILENAME has some trailing slash(es), they are considered to be - part of the last component. - If FILENAME has no relative file name components because it is a file - system root, return the empty string. - Examples: - FILENAME RESULT - "foo.c" "foo.c" - "foo/bar.c" "bar.c" - "/foo/bar.c" "bar.c" - "foo/bar/" "bar/" - "foo/bar//" "bar//" - "/" "" - "//" "" - "" "" - The return value is a tail of the given FILENAME; do NOT free() it! */ - -/* This function was traditionally called 'basename', but we avoid this - function name because - * Various platforms have different functions in their libc. - In particular, the glibc basename(), defined in , does - not consider trailing slashes to be part of the component: - FILENAME RESULT - "foo/bar/" "" - "foo/bar//" "" - * The 'basename' command eliminates trailing slashes and for a root - produces a non-empty result: - FILENAME RESULT - "foo/bar/" "bar" - "foo/bar//" "bar" - "/" "/" - "//" "/" - */ -extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE; - -/* Return the length of the basename FILENAME. - Typically FILENAME is the value returned by base_name or last_component. - Act like strlen (FILENAME), except omit all trailing slashes. */ -extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* _BASENAME_LGPL_H */ diff --git a/include/libgnulib/bcp47.h b/include/libgnulib/bcp47.h deleted file mode 100755 index 3a044df..0000000 --- a/include/libgnulib/bcp47.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Support for locale names in BCP 47 syntax. - Copyright (C) 2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2024. */ - -#ifndef _BCP47_H -#define _BCP47_H - -/* A locale name can exist in three possible forms: - - * The XPG syntax - language[_territory][.codeset][@modifier] - where - - The language is an ISO 639 (two-letter) language code. - - The territory is an ISO 3166 (two-letter) country code. - - The codeset is typically UTF-8. - - The supported @modifiers are usually something like - @euro - a script indicator, such as: @latin, @cyrillic, @devanagari - - * The locale name understood by setlocale(). - On glibc and many other Unix-like systems, this is the XPG syntax. - On native Windows, it is similar to XPG syntax, with English names - (instead of ISO codes) for the language and territory and with a - number for the codeset (e.g. 65001 for UTF-8). - - * The BCP 47 syntax - language[-script][-region]{-variant}*{-extension}* - defined in - - = - which consists of RFC 5646 and RFC 4647. - See also . - Note: The BCP 47 syntax does not include a codeset. - - This file provides conversions between the XPG syntax and the BCP 47 - syntax. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Required size of buffer for a locale name. */ -#define BCP47_MAX 100 - -/* Converts a locale name in XPG syntax to a locale name in BCP 47 syntax. - Returns the result in bcp47, which must be at least BCP47_MAX bytes - large. */ -extern void xpg_to_bcp47 (char *bcp47, const char *xpg); - -/* Converts a locale name in BCP 47 syntax (optionally with a codeset) - to a locale name in XPG syntax. - The specified codeset may be NULL. - Returns the result in xpg, which must be at least BCP47_MAX bytes - large. */ -extern void bcp47_to_xpg (char *xpg, const char *bcp47, const char *codeset); - -#ifdef __cplusplus -} -#endif - -#endif /* _BCP47_H */ diff --git a/include/libgnulib/binary-io.h b/include/libgnulib/binary-io.h deleted file mode 100755 index 1da018f..0000000 --- a/include/libgnulib/binary-io.h +++ /dev/null @@ -1,89 +0,0 @@ -/* Binary mode I/O. - Copyright (C) 2001, 2003, 2005, 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _BINARY_H -#define _BINARY_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* For systems that distinguish between text and binary I/O. - O_BINARY is guaranteed by the gnulib . */ -#include - -/* The MSVC7 doesn't like to be included after '#define fileno ...', - so we include it here first. */ -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef BINARY_IO_INLINE -# define BINARY_IO_INLINE _GL_INLINE -#endif - -#if O_BINARY -# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ -# include /* declares setmode() */ -# define __gl_setmode setmode -# else -# define __gl_setmode _setmode -# undef fileno -# define fileno _fileno -# endif -#else - /* On reasonable systems, binary I/O is the only choice. */ - /* Use a function rather than a macro, to avoid gcc warnings - "warning: statement with no effect". */ -BINARY_IO_INLINE int -__gl_setmode (_GL_UNUSED int fd, _GL_UNUSED int mode) -{ - return O_BINARY; -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. - Return the old mode if successful, -1 (setting errno) on failure. - Ordinarily this function would be called 'setmode', since that is - its old name on MS-Windows, but it is called 'set_binary_mode' here - to avoid colliding with a BSD function of another name. */ - -#if defined __DJGPP__ || defined __EMX__ -extern int set_binary_mode (int fd, int mode); -#else -BINARY_IO_INLINE int -set_binary_mode (int fd, int mode) -{ - return __gl_setmode (fd, mode); -} -#endif - -/* This macro is obsolescent. */ -#define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _BINARY_H */ diff --git a/include/libgnulib/bitrotate.h b/include/libgnulib/bitrotate.h deleted file mode 100755 index dd3afa6..0000000 --- a/include/libgnulib/bitrotate.h +++ /dev/null @@ -1,150 +0,0 @@ -/* bitrotate.h - Rotate bits in integers - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Simon Josefsson , 2008. */ - -#ifndef _GL_BITROTATE_H -#define _GL_BITROTATE_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef BITROTATE_INLINE -# define BITROTATE_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef UINT64_MAX -/* Given an unsigned 64-bit argument X, return the value corresponding - to rotating the bits N steps to the left. N must be between 1 and - 63 inclusive. */ -BITROTATE_INLINE uint64_t -rotl64 (uint64_t x, int n) -{ - return ((x << n) | (x >> (64 - n))) & UINT64_MAX; -} - -/* Given an unsigned 64-bit argument X, return the value corresponding - to rotating the bits N steps to the right. N must be between 1 to - 63 inclusive.*/ -BITROTATE_INLINE uint64_t -rotr64 (uint64_t x, int n) -{ - return ((x >> n) | (x << (64 - n))) & UINT64_MAX; -} -#endif - -/* Given an unsigned 32-bit argument X, return the value corresponding - to rotating the bits N steps to the left. N must be between 1 and - 31 inclusive. */ -BITROTATE_INLINE uint32_t -rotl32 (uint32_t x, int n) -{ - return ((x << n) | (x >> (32 - n))) & UINT32_MAX; -} - -/* Given an unsigned 32-bit argument X, return the value corresponding - to rotating the bits N steps to the right. N must be between 1 to - 31 inclusive.*/ -BITROTATE_INLINE uint32_t -rotr32 (uint32_t x, int n) -{ - return ((x >> n) | (x << (32 - n))) & UINT32_MAX; -} - -/* Given a size_t argument X, return the value corresponding - to rotating the bits N steps to the left. N must be between 1 and - (CHAR_BIT * sizeof (size_t) - 1) inclusive. */ -BITROTATE_INLINE size_t -rotl_sz (size_t x, int n) -{ - return ((x << n) | (x >> ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX; -} - -/* Given a size_t argument X, return the value corresponding - to rotating the bits N steps to the right. N must be between 1 to - (CHAR_BIT * sizeof (size_t) - 1) inclusive. */ -BITROTATE_INLINE size_t -rotr_sz (size_t x, int n) -{ - return ((x >> n) | (x << ((CHAR_BIT * sizeof x) - n))) & SIZE_MAX; -} - -/* Given an unsigned 16-bit argument X, return the value corresponding - to rotating the bits N steps to the left. N must be between 1 to - 15 inclusive, but on most relevant targets N can also be 0 and 16 - because 'int' is at least 32 bits and the arguments must widen - before shifting. */ -BITROTATE_INLINE uint16_t -rotl16 (uint16_t x, int n) -{ - return (((unsigned int) x << n) | ((unsigned int) x >> (16 - n))) - & UINT16_MAX; -} - -/* Given an unsigned 16-bit argument X, return the value corresponding - to rotating the bits N steps to the right. N must be in 1 to 15 - inclusive, but on most relevant targets N can also be 0 and 16 - because 'int' is at least 32 bits and the arguments must widen - before shifting. */ -BITROTATE_INLINE uint16_t -rotr16 (uint16_t x, int n) -{ - return (((unsigned int) x >> n) | ((unsigned int) x << (16 - n))) - & UINT16_MAX; -} - -/* Given an unsigned 8-bit argument X, return the value corresponding - to rotating the bits N steps to the left. N must be between 1 to 7 - inclusive, but on most relevant targets N can also be 0 and 8 - because 'int' is at least 32 bits and the arguments must widen - before shifting. */ -BITROTATE_INLINE uint8_t -rotl8 (uint8_t x, int n) -{ - return (((unsigned int) x << n) | ((unsigned int) x >> (8 - n))) & UINT8_MAX; -} - -/* Given an unsigned 8-bit argument X, return the value corresponding - to rotating the bits N steps to the right. N must be in 1 to 7 - inclusive, but on most relevant targets N can also be 0 and 8 - because 'int' is at least 32 bits and the arguments must widen - before shifting. */ -BITROTATE_INLINE uint8_t -rotr8 (uint8_t x, int n) -{ - return (((unsigned int) x >> n) | ((unsigned int) x << (8 - n))) & UINT8_MAX; -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_BITROTATE_H */ diff --git a/include/libgnulib/bitset.h b/include/libgnulib/bitset.h deleted file mode 100755 index 975f31d..0000000 --- a/include/libgnulib/bitset.h +++ /dev/null @@ -1,411 +0,0 @@ -/* Generic bitsets. - - Copyright (C) 2002-2004, 2009-2015, 2018-2024 Free Software Foundation, Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _GL_BITSET_H -#define _GL_BITSET_H - -/* This file is the public interface to the bitset abstract data type. - Only use the functions and macros defined in this file. */ - -/* This file uses _GL_ATTRIBUTE_DEALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#include "bitset/base.h" -#include "obstack.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Attributes used to select a bitset implementation. */ -enum bitset_attr {BITSET_FIXED = 1, /* Bitset size fixed. */ - BITSET_VARIABLE = 2, /* Bitset size variable. */ - BITSET_DENSE = 4, /* Bitset dense. */ - BITSET_SPARSE = 8, /* Bitset sparse. */ - BITSET_FRUGAL = 16, /* Prefer most compact. */ - BITSET_GREEDY = 32}; /* Prefer fastest at memory expense. */ - -typedef unsigned bitset_attrs; - -/* The contents of the union should be considered to be private. - While I would like to make this union opaque, it needs to be - visible for the inline bit set/test functions, and for delegation - to the proper implementation. */ -union bitset_union -{ - /* This must be the first member of every other structure that is a - member of this union. */ - struct bbitset_struct b; /* Base bitset data. */ - - struct abitset_struct - { - struct bbitset_struct b; - bitset_word words[1]; /* The array of bits. */ - } a; - - struct tbitset_struct - { - struct bbitset_struct b; - bitset_windex size; /* Number of elements. */ - struct tbitset_elt_struct **elts; /* Expanding array of ptrs to elts. */ - } e; - - struct lbitset_struct - { - struct bbitset_struct b; - struct lbitset_elt_struct *head; /* First element in linked list. */ - struct lbitset_elt_struct *tail; /* Last element in linked list. */ - } l; - - struct bitset_stats_struct - { - struct bbitset_struct b; - bitset bset; - } s; - - struct vbitset_struct - { - struct bbitset_struct b; - bitset_windex size; /* Allocated size of array. */ - } v; -}; - - -/* The contents of this structure should be considered private. - It is used for iterating over set bits. */ -typedef struct -{ - bitset_bindex list[BITSET_LIST_SIZE]; - bitset_bindex next; - bitset_bindex num; - bitset_bindex i; -} bitset_iterator; - - -/* Free bitset. Do nothing if NULL. */ -void bitset_free (bitset); - -/* Return bytes required for bitset of desired type and size. */ -size_t bitset_bytes (enum bitset_type, bitset_bindex); - -/* Initialise a bitset with desired type and size. */ -bitset bitset_init (bitset, bitset_bindex, enum bitset_type); - -/* Select an implementation type based on the desired bitset size - and attributes. */ -enum bitset_type bitset_type_choose (bitset_bindex, bitset_attrs); - -/* Create a bitset of desired type and size. The bitset is zeroed. */ -bitset bitset_alloc (bitset_bindex, enum bitset_type) - _GL_ATTRIBUTE_DEALLOC (bitset_free, 1); - -/* Free bitset allocated on obstack. Do nothing if NULL. */ -void bitset_obstack_free (bitset); - -/* Create a bitset of desired type and size using an obstack. The - bitset is zeroed. */ -bitset bitset_obstack_alloc (struct obstack *bobstack, - bitset_bindex, enum bitset_type) - _GL_ATTRIBUTE_DEALLOC (bitset_obstack_free, 1); - -/* Create a bitset of desired size and attributes. The bitset is zeroed. */ -bitset bitset_create (bitset_bindex, bitset_attrs) - _GL_ATTRIBUTE_DEALLOC (bitset_free, 1); - -/* Return bitset type. */ -enum bitset_type bitset_type_get (bitset); - -/* Return bitset type name. */ -const char *bitset_type_name_get (bitset); - - -/* Set bit BITNO in bitset BSET. */ -static inline void -bitset_set (bitset bset, bitset_bindex bitno) -{ - bitset_windex windex = bitno / BITSET_WORD_BITS; - bitset_windex offset = windex - bset->b.cindex; - - if (offset < bset->b.csize) - bset->b.cdata[offset] |= ((bitset_word) 1 << (bitno % BITSET_WORD_BITS)); - else - BITSET_SET_ (bset, bitno); -} - - -/* Reset bit BITNO in bitset BSET. */ -static inline void -bitset_reset (bitset bset, bitset_bindex bitno) -{ - bitset_windex windex = bitno / BITSET_WORD_BITS; - bitset_windex offset = windex - bset->b.cindex; - - if (offset < bset->b.csize) - bset->b.cdata[offset] &= ~((bitset_word) 1 << (bitno % BITSET_WORD_BITS)); - else - BITSET_RESET_ (bset, bitno); -} - - -/* Test bit BITNO in bitset BSET. */ -static inline bool -bitset_test (bitset bset, bitset_bindex bitno) -{ - bitset_windex windex = bitno / BITSET_WORD_BITS; - bitset_windex offset = windex - bset->b.cindex; - - if (offset < bset->b.csize) - return (bset->b.cdata[offset] >> (bitno % BITSET_WORD_BITS)) & 1; - else - return BITSET_TEST_ (bset, bitno); -} - - -/* Toggle bit BITNO in bitset BSET and return non-zero if now set. */ -#define bitset_toggle(bset, bitno) BITSET_TOGGLE_ (bset, bitno) - -/* Return size in bits of bitset SRC. */ -#define bitset_size(SRC) BITSET_SIZE_ (SRC) - -/* Change size in bits of bitset. New bits are zeroed. Return - SIZE. */ -#define bitset_resize(DST, SIZE) BITSET_RESIZE_ (DST, SIZE) - -/* Return number of bits set in bitset SRC. */ -#define bitset_count(SRC) BITSET_COUNT_ (SRC) - - -/* Return SRC == 0. */ -#define bitset_empty_p(SRC) BITSET_EMPTY_P_ (SRC) - -/* DST = ~0. */ -#define bitset_ones(DST) BITSET_ONES_ (DST) - -/* DST = 0. */ -#define bitset_zero(DST) BITSET_ZERO_ (DST) - - - -/* DST = SRC. */ -#define bitset_copy(DST, SRC) BITSET_COPY_ (DST, SRC) - -/* Return DST & SRC == 0. */ -#define bitset_disjoint_p(DST, SRC) BITSET_DISJOINT_P_ (DST, SRC) - -/* Return DST == SRC. */ -#define bitset_equal_p(DST, SRC) BITSET_EQUAL_P_ (DST, SRC) - -/* DST = ~SRC. */ -#define bitset_not(DST, SRC) BITSET_NOT_ (DST, SRC) - -/* Return DST == DST | SRC. */ -#define bitset_subset_p(DST, SRC) BITSET_SUBSET_P_ (DST, SRC) - - - -/* DST = SRC1 & SRC2. */ -#define bitset_and(DST, SRC1, SRC2) BITSET_AND_ (DST, SRC1, SRC2) - -/* DST = SRC1 & SRC2. Return non-zero if DST != SRC1 & SRC2. */ -#define bitset_and_cmp(DST, SRC1, SRC2) BITSET_AND_CMP_ (DST, SRC1, SRC2) - -/* DST = SRC1 & ~SRC2. */ -#define bitset_andn(DST, SRC1, SRC2) BITSET_ANDN_ (DST, SRC1, SRC2) - -/* DST = SRC1 & ~SRC2. Return non-zero if DST != SRC1 & ~SRC2. */ -#define bitset_andn_cmp(DST, SRC1, SRC2) BITSET_ANDN_CMP_ (DST, SRC1, SRC2) - -/* DST = SRC1 | SRC2. */ -#define bitset_or(DST, SRC1, SRC2) BITSET_OR_ (DST, SRC1, SRC2) - -/* DST = SRC1 | SRC2. Return non-zero if DST != SRC1 | SRC2. */ -#define bitset_or_cmp(DST, SRC1, SRC2) BITSET_OR_CMP_ (DST, SRC1, SRC2) - -/* DST = SRC1 ^ SRC2. */ -#define bitset_xor(DST, SRC1, SRC2) BITSET_XOR_ (DST, SRC1, SRC2) - -/* DST = SRC1 ^ SRC2. Return non-zero if DST != SRC1 ^ SRC2. */ -#define bitset_xor_cmp(DST, SRC1, SRC2) BITSET_XOR_CMP_ (DST, SRC1, SRC2) - - - -/* DST = (SRC1 & SRC2) | SRC3. */ -#define bitset_and_or(DST, SRC1, SRC2, SRC3) \ - BITSET_AND_OR_ (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 & SRC2) | SRC3. Return non-zero if - DST != (SRC1 & SRC2) | SRC3. */ -#define bitset_and_or_cmp(DST, SRC1, SRC2, SRC3) \ - BITSET_AND_OR_CMP_ (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 & ~SRC2) | SRC3. */ -#define bitset_andn_or(DST, SRC1, SRC2, SRC3) \ - BITSET_ANDN_OR_ (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 & ~SRC2) | SRC3. Return non-zero if - DST != (SRC1 & ~SRC2) | SRC3. */ -#define bitset_andn_or_cmp(DST, SRC1, SRC2, SRC3) \ - BITSET_ANDN_OR_CMP_ (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 | SRC2) & SRC3. */ -#define bitset_or_and(DST, SRC1, SRC2, SRC3)\ - BITSET_OR_AND_ (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 | SRC2) & SRC3. Return non-zero if - DST != (SRC1 | SRC2) & SRC3. */ -#define bitset_or_and_cmp(DST, SRC1, SRC2, SRC3)\ - BITSET_OR_AND_CMP_ (DST, SRC1, SRC2, SRC3) - -/* Find list of up to NUM bits set in BSET starting from and including - *NEXT. Return with actual number of bits found and with *NEXT - indicating where search stopped. */ -#define bitset_list(BSET, LIST, NUM, NEXT) \ - BITSET_LIST_ (BSET, LIST, NUM, NEXT) - -/* Find reverse list of up to NUM bits set in BSET starting from and - including NEXT. Return with actual number of bits found and with - *NEXT indicating where search stopped. */ -#define bitset_list_reverse(BSET, LIST, NUM, NEXT) \ - BITSET_LIST_REVERSE_ (BSET, LIST, NUM, NEXT) - -/* Return true if both bitsets are of the same type and size. */ -bool bitset_compatible_p (bitset bset1, bitset bset2); - -/* Find next bit set in SRC starting from and including BITNO. - Return BITSET_BINDEX_MAX if SRC empty. */ -bitset_bindex bitset_next (bitset src, bitset_bindex bitno); - -/* Find previous bit set in SRC starting from and including BITNO. - Return BITSET_BINDEX_MAX if SRC empty. */ -bitset_bindex bitset_prev (bitset src, bitset_bindex bitno); - -/* Find first set bit. - Return BITSET_BINDEX_MAX if SRC empty. */ -bitset_bindex bitset_first (bitset src); - -/* Find last set bit. - Return BITSET_BINDEX_MAX if SRC empty. */ -bitset_bindex bitset_last (bitset src); - -/* Return nonzero if this is the only set bit. */ -bool bitset_only_set_p (bitset, bitset_bindex); - -/* Dump bitset. */ -void bitset_dump (FILE *, bitset); - -/* Loop over all elements of BSET, starting with MIN, setting INDEX - to the index of each set bit. For example, the following will print - the bits set in a bitset: - - bitset_bindex i; - bitset_iterator iter; - - BITSET_FOR_EACH (iter, src, i, 0) - printf ("%lu ", (unsigned long) i); -*/ -#define BITSET_FOR_EACH(ITER, BSET, INDEX, MIN) \ - for (ITER.next = (MIN), ITER.num = BITSET_LIST_SIZE; \ - (ITER.num == BITSET_LIST_SIZE) \ - && (ITER.num = bitset_list (BSET, ITER.list, \ - BITSET_LIST_SIZE, &ITER.next));) \ - for (ITER.i = 0; \ - ITER.i < ITER.num && ((INDEX) = ITER.list[ITER.i], 1); \ - ITER.i++) - - -/* Loop over all elements of BSET, in reverse order starting with - MIN, setting INDEX to the index of each set bit. For example, the - following will print the bits set in a bitset in reverse order: - - bitset_bindex i; - bitset_iterator iter; - - BITSET_FOR_EACH_REVERSE (iter, src, i, 0) - printf ("%lu ", (unsigned long) i); -*/ -#define BITSET_FOR_EACH_REVERSE(ITER, BSET, INDEX, MIN) \ - for (ITER.next = (MIN), ITER.num = BITSET_LIST_SIZE; \ - (ITER.num == BITSET_LIST_SIZE) \ - && (ITER.num = bitset_list_reverse (BSET, ITER.list, \ - BITSET_LIST_SIZE, &ITER.next));) \ - for (ITER.i = 0; \ - ITER.i < ITER.num && ((INDEX) = ITER.list[ITER.i], 1); \ - ITER.i++) - - -/* Define set operations in terms of logical operations. */ - -#define bitset_diff(DST, SRC1, SRC2) bitset_andn (DST, SRC1, SRC2) -#define bitset_diff_cmp(DST, SRC1, SRC2) bitset_andn_cmp (DST, SRC1, SRC2) - -#define bitset_intersection(DST, SRC1, SRC2) bitset_and (DST, SRC1, SRC2) -#define bitset_intersection_cmp(DST, SRC1, SRC2) bitset_and_cmp (DST, SRC1, SRC2) - -#define bitset_union(DST, SRC1, SRC2) bitset_or (DST, SRC1, SRC2) -#define bitset_union_cmp(DST, SRC1, SRC2) bitset_or_cmp (DST, SRC1, SRC2) - -/* Symmetrical difference. */ -#define bitset_symdiff(DST, SRC1, SRC2) bitset_xor (DST, SRC1, SRC2) -#define bitset_symdiff_cmp(DST, SRC1, SRC2) bitset_xor_cmp (DST, SRC1, SRC2) - -/* Union of difference. */ -#define bitset_diff_union(DST, SRC1, SRC2, SRC3) \ - bitset_andn_or (DST, SRC1, SRC2, SRC3) -#define bitset_diff_union_cmp(DST, SRC1, SRC2, SRC3) \ - bitset_andn_or_cmp (DST, SRC1, SRC2, SRC3) - - -/* Release any memory tied up with bitsets. */ -void bitset_release_memory (void); - -/* Enable bitset stats gathering. */ -void bitset_stats_enable (void); - -/* Disable bitset stats gathering. */ -void bitset_stats_disable (void); - -/* Read bitset stats file of accumulated stats. */ -void bitset_stats_read (const char *file_name); - -/* Write bitset stats file of accumulated stats. */ -void bitset_stats_write (const char *file_name); - -/* Dump bitset stats. */ -void bitset_stats_dump (FILE *); - -/* Function to debug bitset from debugger. */ -void debug_bitset (bitset); - -/* Function to debug bitset stats from debugger. */ -void debug_bitset_stats (void); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_BITSET_H */ diff --git a/include/libgnulib/bitset/array.h b/include/libgnulib/bitset/array.h deleted file mode 100755 index e6d3f1e..0000000 --- a/include/libgnulib/bitset/array.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Functions to support abitsets. - - Copyright (C) 2002, 2004, 2009-2015, 2018-2024 Free Software Foundation, - Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSET_ARRAY_H -#define _BITSET_ARRAY_H - -#include "bitset.h" - -size_t abitset_bytes (bitset_bindex); - -bitset abitset_init (bitset, bitset_bindex); - -#endif diff --git a/include/libgnulib/bitset/base.h b/include/libgnulib/bitset/base.h deleted file mode 100755 index 7424cb1..0000000 --- a/include/libgnulib/bitset/base.h +++ /dev/null @@ -1,336 +0,0 @@ -/* Base bitset stuff. - - Copyright (C) 2002-2004, 2006, 2009-2015, 2018-2024 Free Software - Foundation, Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSET_BASE_H -#define _BITSET_BASE_H - -#include -#include -#include /* because Gnulib's may '#define free ...' */ -#include /* ffsl */ - -#include "attribute.h" -#include "integer_length.h" -#include "xalloc.h" - -/* Currently we support five flavours of bitsets: - BITSET_ARRAY: Array of bits (fixed size, fast for dense bitsets). - Memory for bit array and bitset structure allocated - contiguously. - BITSET_LIST: Linked list of arrays of bits (variable size, least storage - for large very sparse sets). - BITSET_TABLE: Expandable table of pointers to arrays of bits - (variable size, less storage for large sparse sets). - Faster than BITSET_LIST for random access. - BITSET_VECTOR: Variable array of bits (variable size, fast for - dense bitsets). - BITSET_STATS: Wrapper bitset for internal use only. Used for gathering - statistics and/or better run-time checking. -*/ -enum bitset_type {BITSET_ARRAY, BITSET_LIST, BITSET_TABLE, BITSET_VECTOR, - BITSET_TYPE_NUM, BITSET_STATS}; -#define BITSET_TYPE_NAMES {"abitset", "lbitset", "tbitset", "vbitset"} - -extern const char * const bitset_type_names[]; - -/* Data type used to store a word of bits. */ -typedef unsigned long bitset_word; -#define BITSET_WORD_BITS ((unsigned) (CHAR_BIT * sizeof (bitset_word))) - -/* Bit index. In theory we might need a type wider than size_t, but - in practice we lose at most a factor of CHAR_BIT by going with - size_t, and that is good enough. If this type is changed to be - wider than size_t, the code needs to be modified to check for - overflow when converting bit counts to byte or word counts. - The bit and word index types must be unsigned. */ -typedef size_t bitset_bindex; - -/* Word index. */ -typedef size_t bitset_windex; - -/* Maximum values for commonly-used unsigned types. BITSET_SIZE_MAX - always equals SIZE_MAX, but some older systems lack SIZE_MAX. */ -#define BITSET_BINDEX_MAX ((bitset_bindex) -1) - -/* Limit max word index to the maximum value of a signed integer - to simplify cache disabling. */ -#define BITSET_WINDEX_MAX (((bitset_windex) -1) >> 1) -#define BITSET_SIZE_MAX ((size_t) -1) - -#define BITSET_MSB ((bitset_word) 1 << (BITSET_WORD_BITS - 1)) - -#define BITSET_LIST_SIZE 1024 - -enum bitset_ops {BITSET_OP_ZERO, BITSET_OP_ONES, - BITSET_OP_COPY, BITSET_OP_NOT, - BITSET_OP_EMPTY_P, BITSET_OP_EQUAL_P, - BITSET_OP_SUBSET_P, BITSET_OP_DISJOINT_P, - BITSET_OP_AND, BITSET_OP_OR, BITSET_OP_XOR, BITSET_OP_ANDN, - BITSET_OP_OR_AND, BITSET_OP_AND_OR, BITSET_OP_ANDN_OR}; - -struct bbitset_struct -{ - const struct bitset_vtable *vtable; - bitset_windex cindex; /* Cache word index. */ - bitset_windex csize; /* Cache size in words. */ - bitset_word *cdata; /* Cache data pointer. */ - bitset_bindex n_bits; /* Number of bits. */ - /* Perhaps we could sacrifice another word to indicate - that the bitset is known to be zero, that a bit has been set - in the cache, and that a bit has been cleared in the cache. - This would speed up some of the searches but slightly slow down - bit set/reset operations of cached bits. */ -}; - - -typedef union bitset_union *bitset; - - -/* Private accessor macros to bitset structure. */ -#define BITSET_VTABLE_(SRC) (SRC)->b.vtable -#define BITSET_CINDEX_(SRC) (SRC)->b.cindex -#define BITSET_CDATA_(SRC) (SRC)->b.cdata -#define BITSET_CSIZE_(SRC) (SRC)->b.csize -#define BITSET_NBITS_(SRC) (SRC)->b.n_bits - - -/* The contents of this structure should be considered private. */ -struct bitset_vtable -{ - void (*set) (bitset, bitset_bindex); - void (*reset) (bitset, bitset_bindex); - bool (*toggle) (bitset, bitset_bindex); - bool (*test) (bitset, bitset_bindex); - bitset_bindex (*resize) (bitset, bitset_bindex); - bitset_bindex (*size) (bitset); - bitset_bindex (*count) (bitset); - - bool (*empty_p) (bitset); - void (*ones) (bitset); - void (*zero) (bitset); - - void (*copy) (bitset, bitset); - bool (*disjoint_p) (bitset, bitset); - bool (*equal_p) (bitset, bitset); - void (*not_) (bitset, bitset); - bool (*subset_p) (bitset, bitset); - - void (*and_) (bitset, bitset, bitset); - bool (*and_cmp) (bitset, bitset, bitset); - void (*andn) (bitset, bitset, bitset); - bool (*andn_cmp) (bitset, bitset, bitset); - void (*or_) (bitset, bitset, bitset); - bool (*or_cmp) (bitset, bitset, bitset); - void (*xor_) (bitset, bitset, bitset); - bool (*xor_cmp) (bitset, bitset, bitset); - - void (*and_or) (bitset, bitset, bitset, bitset); - bool (*and_or_cmp) (bitset, bitset, bitset, bitset); - void (*andn_or) (bitset, bitset, bitset, bitset); - bool (*andn_or_cmp) (bitset, bitset, bitset, bitset); - void (*or_and) (bitset, bitset, bitset, bitset); - bool (*or_and_cmp) (bitset, bitset, bitset, bitset); - - bitset_bindex (*list) (bitset, bitset_bindex *, bitset_bindex, - bitset_bindex *); - bitset_bindex (*list_reverse) (bitset, bitset_bindex *, bitset_bindex, - bitset_bindex *); - void (*free) (bitset); - enum bitset_type type; -}; - -#define BITSET_COMPATIBLE_(BSET1, BSET2) \ -((BSET1)->b.vtable == (BSET2)->b.vtable) - -#define BITSET_CHECK2_(DST, SRC) \ -if (!BITSET_COMPATIBLE_ (DST, SRC)) abort (); - -#define BITSET_CHECK3_(DST, SRC1, SRC2) \ -if (!BITSET_COMPATIBLE_ (DST, SRC1) \ - || !BITSET_COMPATIBLE_ (DST, SRC2)) abort (); - -#define BITSET_CHECK4_(DST, SRC1, SRC2, SRC3) \ -if (!BITSET_COMPATIBLE_ (DST, SRC1) || !BITSET_COMPATIBLE_ (DST, SRC2) \ - || !BITSET_COMPATIBLE_ (DST, SRC3)) abort (); - - -/* Redefine number of bits in bitset DST. */ -#define BITSET_RESIZE_(DST, SIZE) (DST)->b.vtable->resize (DST, SIZE) - -/* Return size in bits of bitset SRC. */ -#define BITSET_SIZE_(SRC) (SRC)->b.vtable->size (SRC) - -/* Return number of bits set in bitset SRC. */ -#define BITSET_COUNT_(SRC) (SRC)->b.vtable->count (SRC) - -/* Return type of bitset SRC. */ -#define BITSET_TYPE_(DST) (DST)->b.vtable->type - -/* Set bit BITNO in bitset DST. */ -#define BITSET_SET_(DST, BITNO) (DST)->b.vtable->set (DST, BITNO) - -/* Reset bit BITNO in bitset DST. */ -#define BITSET_RESET_(DST, BITNO) (DST)->b.vtable->reset (DST, BITNO) - -/* Toggle bit BITNO in bitset DST. */ -#define BITSET_TOGGLE_(DST, BITNO) (DST)->b.vtable->toggle (DST, BITNO) - -/* Return non-zero if bit BITNO in bitset SRC is set. */ -#define BITSET_TEST_(SRC, BITNO) (SRC)->b.vtable->test (SRC, BITNO) - -/* Free bitset SRC. */ -#define BITSET_FREE_(SRC)\ - ((SRC)->b.vtable->free ? (SRC)->b.vtable->free (SRC) :(void)0) - - -/* Return SRC == 0. */ -#define BITSET_EMPTY_P_(SRC) (SRC)->b.vtable->empty_p (SRC) - -/* DST = ~0. */ -#define BITSET_ONES_(DST) (DST)->b.vtable->ones (DST) - -/* DST = 0. */ -#define BITSET_ZERO_(DST) (DST)->b.vtable->zero (DST) - - - -/* DST = SRC. */ -#define BITSET_COPY_(DST, SRC) (SRC)->b.vtable->copy (DST, SRC) - -/* Return DST & SRC == 0. */ -#define BITSET_DISJOINT_P_(DST, SRC) (SRC)->b.vtable->disjoint_p (DST, SRC) - -/* Return DST == SRC. */ -#define BITSET_EQUAL_P_(DST, SRC) (SRC)->b.vtable->equal_p (DST, SRC) - -/* DST = ~SRC. */ -#define BITSET_NOT_(DST, SRC) (SRC)->b.vtable->not_ (DST, SRC) - -/* Return DST == DST | SRC. */ -#define BITSET_SUBSET_P_(DST, SRC) (SRC)->b.vtable->subset_p (DST, SRC) - - -/* DST = SRC1 & SRC2. */ -#define BITSET_AND_(DST, SRC1, SRC2) (SRC1)->b.vtable->and_ (DST, SRC1, SRC2) -#define BITSET_AND_CMP_(DST, SRC1, SRC2) (SRC1)->b.vtable->and_cmp (DST, SRC1, SRC2) - -/* DST = SRC1 & ~SRC2. */ -#define BITSET_ANDN_(DST, SRC1, SRC2) (SRC1)->b.vtable->andn (DST, SRC1, SRC2) -#define BITSET_ANDN_CMP_(DST, SRC1, SRC2) (SRC1)->b.vtable->andn_cmp (DST, SRC1, SRC2) - -/* DST = SRC1 | SRC2. */ -#define BITSET_OR_(DST, SRC1, SRC2) (SRC1)->b.vtable->or_ (DST, SRC1, SRC2) -#define BITSET_OR_CMP_(DST, SRC1, SRC2) (SRC1)->b.vtable->or_cmp (DST, SRC1, SRC2) - -/* DST = SRC1 ^ SRC2. */ -#define BITSET_XOR_(DST, SRC1, SRC2) (SRC1)->b.vtable->xor_ (DST, SRC1, SRC2) -#define BITSET_XOR_CMP_(DST, SRC1, SRC2) (SRC1)->b.vtable->xor_cmp (DST, SRC1, SRC2) - - - -/* DST = (SRC1 & SRC2) | SRC3. Return non-zero if - DST != (SRC1 & SRC2) | SRC3. */ -#define BITSET_AND_OR_(DST, SRC1, SRC2, SRC3) \ - (SRC1)->b.vtable->and_or (DST, SRC1, SRC2, SRC3) -#define BITSET_AND_OR_CMP_(DST, SRC1, SRC2, SRC3) \ - (SRC1)->b.vtable->and_or_cmp (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 & ~SRC2) | SRC3. Return non-zero if - DST != (SRC1 & ~SRC2) | SRC3. */ -#define BITSET_ANDN_OR_(DST, SRC1, SRC2, SRC3) \ - (SRC1)->b.vtable->andn_or (DST, SRC1, SRC2, SRC3) -#define BITSET_ANDN_OR_CMP_(DST, SRC1, SRC2, SRC3) \ - (SRC1)->b.vtable->andn_or_cmp (DST, SRC1, SRC2, SRC3) - -/* DST = (SRC1 | SRC2) & SRC3. Return non-zero if - DST != (SRC1 | SRC2) & SRC3. */ -#define BITSET_OR_AND_(DST, SRC1, SRC2, SRC3) \ - (SRC1)->b.vtable->or_and (DST, SRC1, SRC2, SRC3) -#define BITSET_OR_AND_CMP_(DST, SRC1, SRC2, SRC3) \ - (SRC1)->b.vtable->or_and_cmp (DST, SRC1, SRC2, SRC3) - - -/* Find list of up to NUM bits set in BSET starting from and including - *NEXT. Return with actual number of bits found and with *NEXT - indicating where search stopped. */ -#define BITSET_LIST_(BSET, LIST, NUM, NEXT) \ - (BSET)->b.vtable->list (BSET, LIST, NUM, NEXT) - -/* Find reverse list of up to NUM bits set in BSET starting from and - including NEXT. Return with actual number of bits found and with - *NEXT indicating where search stopped. */ -#define BITSET_LIST_REVERSE_(BSET, LIST, NUM, NEXT) \ - (BSET)->b.vtable->list_reverse (BSET, LIST, NUM, NEXT) - -/* Iterate left to right over each set bit of WORD. - Each iteration sets POS to the 0-based index of the next set bit in WORD. - Repeatedly resets bits in WORD in place until it's null. */ -#define BITSET_FOR_EACH_BIT(Pos, Word) \ - for (int Pos = bitset_ffs_ (Word); \ - 0 <= Pos; \ - Word ^= 1UL << Pos, Pos = bitset_ffs_ (Word)) - -/* Iterate right to left over each set bit of WORD. - Each iteration sets POS to the 0-based index of the next set bit in WORD. - Repeatedly resets bits in WORD in place until it's null. */ -#define BITSET_FOR_EACH_BIT_REVERSE(Pos, Word) \ - for (int Pos = bitset_fls_ (Word); \ - 0 <= Pos; \ - Word ^= 1UL << Pos, Pos = bitset_fls_ (Word)) - -/* Private functions for bitset implementations. */ - -bool bitset_toggle_ (bitset, bitset_bindex); - -bitset_bindex bitset_count_ (bitset); - -bitset_bindex bitset_size_ (bitset); - -bool bitset_copy_ (bitset, bitset); - -void bitset_and_or_ (bitset, bitset, bitset, bitset); - -bool bitset_and_or_cmp_ (bitset, bitset, bitset, bitset); - -void bitset_andn_or_ (bitset, bitset, bitset, bitset); - -bool bitset_andn_or_cmp_ (bitset, bitset, bitset, bitset); - -void bitset_or_and_ (bitset, bitset, bitset, bitset); - -bool bitset_or_and_cmp_ (bitset, bitset, bitset, bitset); - -/* First set bit in WORD. - Indexes start at 0, return -1 if WORD is null. */ -static inline -int bitset_ffs_ (bitset_word word) -{ - return ffsl ((long) word) - 1; -} - -/* Last set bit in WORD. - Indexes start at 0, return -1 if WORD is null. */ -static inline -int bitset_fls_ (bitset_word word) -{ - return integer_length_l (word) - 1; -} - -#endif /* _BBITSET_H */ diff --git a/include/libgnulib/bitset/list.h b/include/libgnulib/bitset/list.h deleted file mode 100755 index 9b52c33..0000000 --- a/include/libgnulib/bitset/list.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Functions to support lbitsets. - - Copyright (C) 2002, 2004, 2009-2015, 2018-2024 Free Software Foundation, - Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSET_LIST_H -#define _BITSET_LIST_H - -#include "bitset.h" - -size_t lbitset_bytes (bitset_bindex); - -bitset lbitset_init (bitset, bitset_bindex); - -void lbitset_release_memory (void); - -#endif diff --git a/include/libgnulib/bitset/stats.h b/include/libgnulib/bitset/stats.h deleted file mode 100755 index d389c5d..0000000 --- a/include/libgnulib/bitset/stats.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Functions to support bitset statistics. - - Copyright (C) 2002-2004, 2009-2015, 2018-2024 Free Software Foundation, Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSET_STATS_H -#define _BITSET_STATS_H - -#include "bitset/base.h" - -extern bool bitset_stats_enabled; - -enum bitset_type bitset_stats_type_get (bitset); - -size_t bitset_stats_bytes (void); - -bitset bitset_stats_init (bitset, bitset_bindex, enum bitset_type); - -#endif diff --git a/include/libgnulib/bitset/table.h b/include/libgnulib/bitset/table.h deleted file mode 100755 index 7a99c47..0000000 --- a/include/libgnulib/bitset/table.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Functions to support tbitsets. - - Copyright (C) 2002, 2004, 2009-2015, 2018-2024 Free Software Foundation, - Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSET_TABLE_H -#define _BITSET_TABLE_H - -#include "bitset.h" - -size_t tbitset_bytes (bitset_bindex); - -bitset tbitset_init (bitset, bitset_bindex); - -void tbitset_release_memory (void); - -#endif diff --git a/include/libgnulib/bitset/vector.h b/include/libgnulib/bitset/vector.h deleted file mode 100755 index a2de4e9..0000000 --- a/include/libgnulib/bitset/vector.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Functions to support vbitsets. - - Copyright (C) 2002, 2004, 2009-2015, 2018-2024 Free Software Foundation, - Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSET_VECTOR_H -#define _BITSET_VECTOR_H - -#include "bitset.h" - -size_t vbitset_bytes (bitset_bindex); - -bitset vbitset_init (bitset, bitset_bindex); - -#endif diff --git a/include/libgnulib/bitsetv.h b/include/libgnulib/bitsetv.h deleted file mode 100755 index 3be6157..0000000 --- a/include/libgnulib/bitsetv.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Bitset vectors. - - Copyright (C) 2002, 2004, 2009-2015, 2018-2024 Free Software Foundation, - Inc. - - Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). - - 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 3 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, see . */ - -#ifndef _BITSETV_H -#define _BITSETV_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "bitset.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef bitset * bitsetv; - -/* Free vector of bitsets. Do nothing if NULL. */ -void bitsetv_free (bitsetv); - -/* Create a vector of N_VECS bitsets, each of N_BITS, and of - type TYPE. */ -bitsetv bitsetv_alloc (bitset_bindex, bitset_bindex, enum bitset_type) - _GL_ATTRIBUTE_DEALLOC (bitsetv_free, 1); - -/* Create a vector of N_VECS bitsets, each of N_BITS, and with - attribute hints specified by ATTR. */ -bitsetv bitsetv_create (bitset_bindex, bitset_bindex, unsigned) - _GL_ATTRIBUTE_DEALLOC (bitsetv_free, 1); - -/* Zero vector of bitsets. */ -void bitsetv_zero (bitsetv); - -/* Set vector of bitsets. */ -void bitsetv_ones (bitsetv); - -/* Given a vector BSETV of N bitsets of size N, modify its contents to - be the transitive closure of what was given. */ -void bitsetv_transitive_closure (bitsetv); - -/* Given a vector BSETV of N bitsets of size N, modify its contents to - be the reflexive transitive closure of what was given. This is - the same as transitive closure but with all bits on the diagonal - of the bit matrix set. */ -void bitsetv_reflexive_transitive_closure (bitsetv); - -/* Dump vector of bitsets. */ -void bitsetv_dump (FILE *, const char *, const char *, bitsetv); - -/* Function to debug vector of bitsets from debugger. */ -void debug_bitsetv (bitsetv); - -/* Dump vector of bitsets as a matrix. */ -void bitsetv_matrix_dump (FILE *, const char *, bitsetv); - - -#ifdef __cplusplus -} -#endif - -#endif /* _BITSETV_H */ diff --git a/include/libgnulib/boot-time-aux.h b/include/libgnulib/boot-time-aux.h deleted file mode 100755 index 8b98c4e..0000000 --- a/include/libgnulib/boot-time-aux.h +++ /dev/null @@ -1,422 +0,0 @@ -/* Auxiliary functions for determining the time when the machine last booted. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* Written by Bruno Haible . */ - -#define SIZEOF(a) (sizeof(a)/sizeof(a[0])) - -#if defined __linux__ || defined __ANDROID__ - -/* Store the uptime counter, as managed by the Linux kernel, in *P_UPTIME. - Return 0 upon success, -1 upon failure. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -static int -get_linux_uptime (struct timespec *p_uptime) -{ - /* The clock_gettime facility returns the uptime with a resolution of 1 µsec. - It is available with glibc >= 2.14, Android, or musl libc. - In glibc < 2.17 it required linking with librt. */ -# if !defined __GLIBC__ || 2 < __GLIBC__ + (17 <= __GLIBC_MINOR__) - if (clock_gettime (CLOCK_BOOTTIME, p_uptime) >= 0) - return 0; -# endif - - /* /proc/uptime contains the uptime with a resolution of 0.01 sec. - But it does not have read permissions on Android. */ -# if !defined __ANDROID__ - FILE *fp = fopen ("/proc/uptime", "re"); - if (fp != NULL) - { - char buf[32 + 1]; - size_t n = fread (buf, 1, sizeof (buf) - 1, fp); - fclose (fp); - if (n > 0) - { - buf[n] = '\0'; - /* buf now contains two values: the uptime and the idle time. */ - time_t s = 0; - char *p; - for (p = buf; '0' <= *p && *p <= '9'; p++) - s = 10 * s + (*p - '0'); - if (buf < p) - { - long ns = 0; - if (*p++ == '.') - for (int i = 0; i < 9; i++) - ns = 10 * ns + ('0' <= *p && *p <= '9' ? *p++ - '0' : 0); - p_uptime->tv_sec = s; - p_uptime->tv_nsec = ns; - return 0; - } - } - } -# endif - -# if HAVE_DECL_SYSINFO /* not available in Android API < 9 */ - /* The sysinfo call returns the uptime with a resolution of 1 sec only. */ - struct sysinfo info; - if (sysinfo (&info) >= 0) - { - p_uptime->tv_sec = info.uptime; - p_uptime->tv_nsec = 0; - return 0; - } -# endif - - return -1; -} - -#endif - -#if defined __linux__ && !defined __ANDROID__ - -static int -get_linux_boot_time_fallback (struct timespec *p_boot_time) -{ - /* On Devuan with the 'runit' init system and on Artix with the 's6' init - system, UTMP_FILE contains USER_PROCESS and other entries, but no - BOOT_TIME entry. - On Alpine Linux, UTMP_FILE is not filled. It is always empty. - So, in both cases, get the time stamp of a file that gets touched only - during the boot process. */ - - const char * const boot_touched_files[] = - { - "/var/lib/systemd/random-seed", /* seen on distros with systemd */ - "/var/lib/urandom/random-seed", /* seen on Devuan with runit */ - "/var/lib/random-seed", /* seen on Artix with s6 */ - /* This must come last, since on several distros /var/run/utmp is - modified when a user logs in, i.e. long after boot. */ - "/var/run/utmp" /* seen on Alpine Linux with OpenRC */ - }; - for (idx_t i = 0; i < SIZEOF (boot_touched_files); i++) - { - const char *filename = boot_touched_files[i]; - struct stat statbuf; - if (stat (filename, &statbuf) >= 0) - { - struct timespec boot_time = get_stat_mtime (&statbuf); - /* On Alpine 3.20.0_rc2 /var/run/utmp was observed with bogus - timestamps of ~10 s. Reject timestamps before - 2005-07-25 23:34:15 UTC (1122334455), as neither Alpine - nor Devuan existed then. */ - if (boot_time.tv_sec >= 1122334455) - { - *p_boot_time = boot_time; - return 0; - } - } - } - return -1; -} - -/* The following approach is only usable as a fallback, because it is of - the form - boot_time = (time now) - (kernel's ktime_get_boottime[_ts64] ()) - and therefore produces wrong values after the date has been bumped in the - running system, which happens frequently if the system is running in a - virtual machine and this VM has been put into "saved" or "sleep" state - and then resumed. */ -static int -get_linux_boot_time_final_fallback (struct timespec *p_boot_time) -{ - struct timespec uptime; - if (get_linux_uptime (&uptime) >= 0) - { - struct timespec result; -# if !defined __GLIBC__ || 2 < __GLIBC__ + (16 <= __GLIBC_MINOR__) - /* Better than: - if (0 <= clock_gettime (CLOCK_REALTIME, &result)) - because timespec_get does not need -lrt in glibc 2.16. - */ - if (! timespec_get (&result, TIME_UTC)) - return -1; -# else - /* Fall back on lower-res approach that does not need -lrt. - This is good enough; on these hosts UPTIME is even lower-res. */ - struct timeval tv; - int r = gettimeofday (&tv, NULL); - if (r < 0) - return r; - result.tv_sec = tv.tv_sec; - result.tv_nsec = tv.tv_usec * 1000; -# endif - - if (result.tv_nsec < uptime.tv_nsec) - { - result.tv_nsec += 1000000000; - result.tv_sec -= 1; - } - result.tv_sec -= uptime.tv_sec; - result.tv_nsec -= uptime.tv_nsec; - *p_boot_time = result; - return 0; - } - return -1; -} - -#endif - -#if defined __ANDROID__ - -static int -get_android_boot_time (struct timespec *p_boot_time) -{ - /* On Android, there is no /var, and normal processes don't have access - to system files. Therefore use the kernel's uptime counter, although - it produces wrong values after the date has been bumped in the running - system. */ - struct timespec uptime; - if (get_linux_uptime (&uptime) >= 0) - { - struct timespec result; - if (clock_gettime (CLOCK_REALTIME, &result) >= 0) - { - if (result.tv_nsec < uptime.tv_nsec) - { - result.tv_nsec += 1000000000; - result.tv_sec -= 1; - } - result.tv_sec -= uptime.tv_sec; - result.tv_nsec -= uptime.tv_nsec; - *p_boot_time = result; - return 0; - } - } - return -1; -} - -#endif - -#if defined __OpenBSD__ - -static int -get_openbsd_boot_time (struct timespec *p_boot_time) -{ - /* On OpenBSD, UTMP_FILE is not filled. It contains only dummy entries. - So, get the time stamp of a file that gets touched only during the - boot process. */ - const char * const boot_touched_files[] = - { - "/var/db/host.random", - "/var/run/utmp" - }; - for (idx_t i = 0; i < SIZEOF (boot_touched_files); i++) - { - const char *filename = boot_touched_files[i]; - struct stat statbuf; - if (stat (filename, &statbuf) >= 0) - { - *p_boot_time = get_stat_mtime (&statbuf); - return 0; - } - } - return -1; -} - -#endif - -#if HAVE_SYS_SYSCTL_H && HAVE_SYSCTL \ - && defined CTL_KERN && defined KERN_BOOTTIME \ - && !defined __minix -/* macOS, FreeBSD, GNU/kFreeBSD, NetBSD, OpenBSD */ -/* On Minix 3.3 this sysctl produces garbage results. Therefore avoid it. */ - -/* The following approach is only usable as a fallback, because it produces - wrong values after the date has been bumped in the running system, which - happens frequently if the system is running in a virtual machine and this - VM has been put into "saved" or "sleep" state and then resumed. */ -static int -get_bsd_boot_time_final_fallback (struct timespec *p_boot_time) -{ - static int request[2] = { CTL_KERN, KERN_BOOTTIME }; - struct timeval result; - size_t result_len = sizeof result; - - if (sysctl (request, 2, &result, &result_len, NULL, 0) >= 0) - { - p_boot_time->tv_sec = result.tv_sec; - p_boot_time->tv_nsec = result.tv_usec * 1000; - return 0; - } - return -1; -} - -#endif - -#if defined __HAIKU__ - -static int -get_haiku_boot_time (struct timespec *p_boot_time) -{ - /* On Haiku, /etc/utmp does not exist. During boot, - 1. the current time is restored, but possibly with a wrong time zone, - that is, with an offset of a few hours, - 2. some symlinks and files get created, - 3. the various devices are brought up, in particular the network device, - 4. the correct date and time is set, - 5. some more device nodes get created. - The boot time can be retrieved by looking at a directory created during - phase 5, such as /dev/input. */ - const char * const boot_touched_file = "/dev/input"; - struct stat statbuf; - if (stat (boot_touched_file, &statbuf) >= 0) - { - *p_boot_time = get_stat_mtime (&statbuf); - return 0; - } - return -1; -} - -#endif - -#if HAVE_OS_H /* BeOS, Haiku */ - -/* The following approach is only usable as a fallback, because it produces - wrong values after the date has been bumped in the running system, which - happens frequently if the system is running in a virtual machine and this - VM has been put into "saved" or "sleep" state and then resumed. */ -static int -get_haiku_boot_time_final_fallback (struct timespec *p_boot_time) -{ - system_info si; - - get_system_info (&si); - p_boot_time->tv_sec = si.boot_time / 1000000; - p_boot_time->tv_nsec = (si.boot_time % 1000000) * 1000; - return 0; -} - -#endif - -#if defined __CYGWIN__ || defined _WIN32 - -static int -get_windows_boot_time (struct timespec *p_boot_time) -{ - /* On Cygwin, /var/run/utmp is empty. - On native Windows, and don't exist. - Instead, on Windows, the boot time can be retrieved by looking at the - time stamp of a file that (normally) gets touched only during the boot - process, namely C:\pagefile.sys. */ - const char * const boot_touched_files[] = - { - #if defined __CYGWIN__ && !defined _WIN32 - /* It is more portable to use /proc/cygdrive/c than /cygdrive/c. */ - "/proc/cygdrive/c/pagefile.sys", - /* A fallback, working around a Cygwin 3.5.3 bug. It has a modification - time about 1.5 minutes after the last boot; but that's better than - nothing. */ - "/proc/cygdrive/c/ProgramData/Microsoft/Windows/DeviceMetadataCache/dmrc.idx" - #else - "C:\\pagefile.sys" - #endif - }; - for (idx_t i = 0; i < SIZEOF (boot_touched_files); i++) - { - const char *filename = boot_touched_files[i]; - struct stat statbuf; - if (stat (filename, &statbuf) >= 0) - { -# if defined __CYGWIN__ && !defined _WIN32 - /* Work around a Cygwin 3.5.3 bug. - */ - if (!S_ISDIR (statbuf.st_mode)) -# endif - { - *p_boot_time = get_stat_mtime (&statbuf); - return 0; - } - } - } - return -1; -} - -# ifndef __CYGWIN__ -# if !(_WIN32_WINNT >= _WIN32_WINNT_VISTA) - -/* Don't assume that UNICODE is not defined. */ -# undef LoadLibrary -# define LoadLibrary LoadLibraryA - -/* Avoid warnings from gcc -Wcast-function-type. */ -# define GetProcAddress \ - (void *) GetProcAddress - -/* GetTickCount64 is only available on Windows Vista and later. */ -typedef ULONGLONG (WINAPI * GetTickCount64FuncType) (void); - -static GetTickCount64FuncType GetTickCount64Func = NULL; -static BOOL initialized = FALSE; - -static void -initialize (void) -{ - HMODULE kernel32 = LoadLibrary ("kernel32.dll"); - if (kernel32 != NULL) - { - GetTickCount64Func = - (GetTickCount64FuncType) GetProcAddress (kernel32, "GetTickCount64"); - } - initialized = TRUE; -} - -# else - -# define GetTickCount64Func GetTickCount64 - -# endif - -/* Fallback for Windows in the form: - boot time = current time - uptime - This uses the GetTickCount64 function which is only available on Windows - Vista and later. See: - . */ -static int -get_windows_boot_time_fallback (struct timespec *p_boot_time) -{ -# if !(_WIN32_WINNT >= _WIN32_WINNT_VISTA) - if (! initialized) - initialize (); -# endif - if (GetTickCount64Func != NULL) - { - ULONGLONG uptime_ms = GetTickCount64Func (); - struct timespec uptime; - struct timespec result; - struct timeval tv; - if (gettimeofday (&tv, NULL) >= 0) - { - uptime.tv_sec = uptime_ms / 1000; - uptime.tv_nsec = (uptime_ms % 1000) * 1000000; - result.tv_sec = tv.tv_sec; - result.tv_nsec = tv.tv_usec * 1000; - if (result.tv_nsec < uptime.tv_nsec) - { - result.tv_nsec += 1000000000; - result.tv_sec -= 1; - } - result.tv_sec -= uptime.tv_sec; - result.tv_nsec -= uptime.tv_nsec; - *p_boot_time = result; - return 0; - } - } - return -1; -} - -# endif -#endif diff --git a/include/libgnulib/boot-time.h b/include/libgnulib/boot-time.h deleted file mode 100755 index 9968432..0000000 --- a/include/libgnulib/boot-time.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Determine the time when the machine last booted. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* Written by Bruno Haible . */ - -#ifndef _BOOT_TIME_H -#define _BOOT_TIME_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Store the approximate time when the machine last booted in *P_BOOT_TIME, - and return 0. If it cannot be determined, return -1. - - This function is not multithread-safe, since on many platforms it - invokes the functions setutxent, getutxent, endutxent. These - functions are needed because they may lock FILE (so that we don't - read garbage when a concurrent process writes to FILE), but their - drawback is that they have a common global state. */ -extern int get_boot_time (struct timespec *p_boot_time); - - -#ifdef __cplusplus -} -#endif - -#endif /* _BOOT_TIME_H */ diff --git a/include/libgnulib/c++defs.h b/include/libgnulib/c++defs.h deleted file mode 100755 index 7843359..0000000 --- a/include/libgnulib/c++defs.h +++ /dev/null @@ -1,357 +0,0 @@ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ diff --git a/include/libgnulib/c-ctype.h b/include/libgnulib/c-ctype.h deleted file mode 100755 index b582de4..0000000 --- a/include/libgnulib/c-ctype.h +++ /dev/null @@ -1,366 +0,0 @@ -/* Character handling in C locale. - - These functions work like the corresponding functions in , - except that they have the C (POSIX) locale hardwired, whereas the - functions' behaviour depends on the current locale set via - setlocale. - - Copyright (C) 2000-2003, 2006, 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef C_CTYPE_H -#define C_CTYPE_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef C_CTYPE_INLINE -# define C_CTYPE_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* The functions defined in this file assume the "C" locale and a character - set without diacritics (ASCII-US or EBCDIC-US or something like that). - Even if the "C" locale on a particular system is an extension of the ASCII - character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it - is ISO-8859-1), the functions in this file recognize only the ASCII - characters. */ - - -#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) -/* The character set is ASCII or one of its variants or extensions, not EBCDIC. - Testing the value of '\n' and '\r' is not relevant. */ -# define C_CTYPE_ASCII 1 -#elif ! (' ' == '\x40' && '0' == '\xf0' \ - && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ - && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') -# error "Only ASCII and EBCDIC are supported" -#endif - -#if 'A' < 0 -# error "EBCDIC and char is signed -- not supported" -#endif - -/* Cases for control characters. */ - -#define _C_CTYPE_CNTRL \ - case '\a': case '\b': case '\f': case '\n': \ - case '\r': case '\t': case '\v': \ - _C_CTYPE_OTHER_CNTRL - -/* ASCII control characters other than those with \-letter escapes. */ - -#if C_CTYPE_ASCII -# define _C_CTYPE_OTHER_CNTRL \ - case '\x00': case '\x01': case '\x02': case '\x03': \ - case '\x04': case '\x05': case '\x06': case '\x0e': \ - case '\x0f': case '\x10': case '\x11': case '\x12': \ - case '\x13': case '\x14': case '\x15': case '\x16': \ - case '\x17': case '\x18': case '\x19': case '\x1a': \ - case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ - case '\x1f': case '\x7f' -#else - /* Use EBCDIC code page 1047's assignments for ASCII control chars; - assume all EBCDIC code pages agree about these assignments. */ -# define _C_CTYPE_OTHER_CNTRL \ - case '\x00': case '\x01': case '\x02': case '\x03': \ - case '\x07': case '\x0e': case '\x0f': case '\x10': \ - case '\x11': case '\x12': case '\x13': case '\x18': \ - case '\x19': case '\x1c': case '\x1d': case '\x1e': \ - case '\x1f': case '\x26': case '\x27': case '\x2d': \ - case '\x2e': case '\x32': case '\x37': case '\x3c': \ - case '\x3d': case '\x3f' -#endif - -/* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ - -#define _C_CTYPE_LOWER_A_THRU_F_N(N) \ - case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ - case 'e' + (N): case 'f' + (N) -#define _C_CTYPE_LOWER_N(N) \ - _C_CTYPE_LOWER_A_THRU_F_N(N): \ - case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ - case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ - case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ - case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ - case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) - -/* Cases for hex letters, digits, lower, punct, and upper. */ - -#define _C_CTYPE_A_THRU_F \ - _C_CTYPE_LOWER_A_THRU_F_N (0): \ - _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') -#define _C_CTYPE_DIGIT \ - case '0': case '1': case '2': case '3': \ - case '4': case '5': case '6': case '7': \ - case '8': case '9' -#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) -#define _C_CTYPE_PUNCT \ - case '!': case '"': case '#': case '$': \ - case '%': case '&': case '\'': case '(': \ - case ')': case '*': case '+': case ',': \ - case '-': case '.': case '/': case ':': \ - case ';': case '<': case '=': case '>': \ - case '?': case '@': case '[': case '\\': \ - case ']': case '^': case '_': case '`': \ - case '{': case '|': case '}': case '~' -#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') - - -/* Function definitions. */ - -/* Unlike the functions in , which require an argument in the range - of the 'unsigned char' type, the functions here operate on values that are - in the 'unsigned char' range or in the 'char' range. In other words, - when you have a 'char' value, you need to cast it before using it as - argument to a function: - - const char *s = ...; - if (isalpha ((unsigned char) *s)) ... - - but you don't need to cast it for the functions defined in this file: - - const char *s = ...; - if (c_isalpha (*s)) ... - */ - -C_CTYPE_INLINE bool -c_isalnum (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isalpha (int c) -{ - switch (c) - { - _C_CTYPE_LOWER: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -/* The function isascii is not locale dependent. - Its use in EBCDIC is questionable. */ -C_CTYPE_INLINE bool -c_isascii (int c) -{ - switch (c) - { - case ' ': - _C_CTYPE_CNTRL: - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_PUNCT: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isblank (int c) -{ - return c == ' ' || c == '\t'; -} - -C_CTYPE_INLINE bool -c_iscntrl (int c) -{ - switch (c) - { - _C_CTYPE_CNTRL: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isdigit (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isgraph (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_PUNCT: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_islower (int c) -{ - switch (c) - { - _C_CTYPE_LOWER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isprint (int c) -{ - switch (c) - { - case ' ': - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_PUNCT: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_ispunct (int c) -{ - switch (c) - { - _C_CTYPE_PUNCT: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isspace (int c) -{ - switch (c) - { - case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isupper (int c) -{ - switch (c) - { - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isxdigit (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - _C_CTYPE_A_THRU_F: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE int -c_tolower (int c) -{ - switch (c) - { - _C_CTYPE_UPPER: - return c - 'A' + 'a'; - default: - return c; - } -} - -C_CTYPE_INLINE int -c_toupper (int c) -{ - switch (c) - { - _C_CTYPE_LOWER: - return c - 'a' + 'A'; - default: - return c; - } -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* C_CTYPE_H */ diff --git a/include/libgnulib/c-snprintf.h b/include/libgnulib/c-snprintf.h deleted file mode 100755 index 8cd637d..0000000 --- a/include/libgnulib/c-snprintf.h +++ /dev/null @@ -1,67 +0,0 @@ -/* snprintf in C locale. - Copyright (C) 2012-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _C_SNPRINTF_H -#define _C_SNPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get size_t, ptrdiff_t. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Prints formatted output to string STR. Similar to sprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns -1 with errno set. - - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -extern ptrdiff_t c_snzprintf (char *restrict str, size_t size, - const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)); - -/* Prints formatted output to string STR. Similar to sprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns -1 with errno set. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -extern int c_snprintf (char *restrict str, size_t size, - const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)); - -#ifdef __cplusplus -} -#endif - -#endif /* _C_SNPRINTF_H */ diff --git a/include/libgnulib/c-stack.h b/include/libgnulib/c-stack.h deleted file mode 100755 index 4db4519..0000000 --- a/include/libgnulib/c-stack.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Stack overflow handling. - - Copyright (C) 2002, 2004, 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* This file uses _GL_ASYNC_SAFE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Set up ACTION so that it is invoked on C stack overflow and on other, - stack-unrelated, segmentation violation. - Return -1 (setting errno) if this cannot be done. - - When a stack overflow or segmentation violation occurs: - 1) ACTION is called. It is passed an argument equal to - - 0, for a stack overflow, - - SIGSEGV, for a segmentation violation that does not appear related - to stack overflow. - On many platforms the two cases are hard to distinguish; when in doubt, - zero is passed. - 2) If ACTION returns, a message is written to standard error, and the - program is terminated: in the case of stack overflow, with exit code - exit_failure (see "exitfail.h"), otherwise through a signal SIGSEGV. - - A null ACTION acts like an action that does nothing. - - Restrictions: - - ACTION must be async-signal-safe. - - ACTION together with its callees must not require more than 64 KiB of - stack space. - - ACTION must not create and then invoke nested functions - , because - this implementation does not guarantee an executable stack. - - ACTION should not call longjmp, because this implementation does not - guarantee that it is safe to return to the original stack. - - This function may install a handler for the SIGSEGV signal or for the SIGBUS - signal or exercise other system dependent exception handling APIs. */ - -extern int c_stack_action (_GL_ASYNC_SAFE void (* /*action*/) (int)); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/c-strcase.h b/include/libgnulib/c-strcase.h deleted file mode 100755 index b75e8dd..0000000 --- a/include/libgnulib/c-strcase.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Case-insensitive string comparison functions in C locale. - Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef C_STRCASE_H -#define C_STRCASE_H - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - - -/* The functions defined in this file assume the "C" locale and a character - set without diacritics (ASCII-US or EBCDIC-US or something like that). - Even if the "C" locale on a particular system is an extension of the ASCII - character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it - is ISO-8859-1), the functions in this file recognize only the ASCII - characters. More precisely, one of the string arguments must be an ASCII - string; the other one can also contain non-ASCII characters (but then - the comparison result will be nonzero). */ - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compare strings S1 and S2, ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less than, equal to or greater - than S2. */ -extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; - -/* Compare no more than N characters of strings S1 and S2, ignoring case, - returning less than, equal to or greater than zero if S1 is - lexicographically less than, equal to or greater than S2. */ -extern int c_strncasecmp (const char *s1, const char *s2, size_t n) - _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* C_STRCASE_H */ diff --git a/include/libgnulib/c-strcaseeq.h b/include/libgnulib/c-strcaseeq.h deleted file mode 100755 index 0348c55..0000000 --- a/include/libgnulib/c-strcaseeq.h +++ /dev/null @@ -1,191 +0,0 @@ -/* Optimized case-insensitive string comparison in C locale. - Copyright (C) 2001-2002, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -#include "c-strcase.h" -#include "c-ctype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* STRCASEEQ allows to optimize string comparison with a small literal string. - STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0) - is semantically equivalent to - c_strcasecmp (s, "UTF-8") == 0 - just faster. */ - -/* Help GCC to generate good code for string comparisons with - immediate strings. */ -#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ - -/* Case insensitive comparison of ASCII characters. */ -# if C_CTYPE_ASCII -# define CASEEQ(other,upper) \ - (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper)) -# else -# define CASEEQ(other,upper) \ - (c_toupper (other) == (upper)) -# endif - -static inline int -strcaseeq9 (const char *s1, const char *s2) -{ - return c_strcasecmp (s1 + 9, s2 + 9) == 0; -} - -static inline int -strcaseeq8 (const char *s1, const char *s2, char s28) -{ - if (CASEEQ (s1[8], s28)) - { - if (s28 == 0) - return 1; - else - return strcaseeq9 (s1, s2); - } - else - return 0; -} - -static inline int -strcaseeq7 (const char *s1, const char *s2, char s27, char s28) -{ - if (CASEEQ (s1[7], s27)) - { - if (s27 == 0) - return 1; - else - return strcaseeq8 (s1, s2, s28); - } - else - return 0; -} - -static inline int -strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28) -{ - if (CASEEQ (s1[6], s26)) - { - if (s26 == 0) - return 1; - else - return strcaseeq7 (s1, s2, s27, s28); - } - else - return 0; -} - -static inline int -strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) -{ - if (CASEEQ (s1[5], s25)) - { - if (s25 == 0) - return 1; - else - return strcaseeq6 (s1, s2, s26, s27, s28); - } - else - return 0; -} - -static inline int -strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) -{ - if (CASEEQ (s1[4], s24)) - { - if (s24 == 0) - return 1; - else - return strcaseeq5 (s1, s2, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (CASEEQ (s1[3], s23)) - { - if (s23 == 0) - return 1; - else - return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (CASEEQ (s1[2], s22)) - { - if (s22 == 0) - return 1; - else - return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (CASEEQ (s1[1], s21)) - { - if (s21 == 0) - return 1; - else - return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -strcaseeq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (CASEEQ (s1[0], s20)) - { - if (s20 == 0) - return 1; - else - return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) - -#else - -#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - (c_strcasecmp (s1, s2) == 0) - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/c-strcasestr.h b/include/libgnulib/c-strcasestr.h deleted file mode 100755 index 7f3ef1d..0000000 --- a/include/libgnulib/c-strcasestr.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Case-insensitive searching in a string in C locale. - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef C_STRCASESTR_H -#define C_STRCASESTR_H - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive - comparison. */ -extern char *c_strcasestr (const char *haystack, const char *needle); - - -#ifdef __cplusplus -} -#endif - - -#endif /* C_STRCASESTR_H */ diff --git a/include/libgnulib/c-strstr.h b/include/libgnulib/c-strstr.h deleted file mode 100755 index 550b5d2..0000000 --- a/include/libgnulib/c-strstr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Searching in a string. - Copyright (C) 2001-2003, 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - - -/* The functions defined in this file assume a nearly ASCII compatible - character set. */ - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Find the first occurrence of NEEDLE in HAYSTACK. - This function is safe to be called, even in a multibyte locale, if NEEDLE - 1. consists solely of printable ASCII characters excluding '\\' and '~' - [this restriction is needed because of Shift_JIS and JOHAB] - or of the control ASCII characters '\a' '\b' '\f' '\n' '\r' '\t' '\v' - [this restriction is needed because of VISCII], and - 2. has at least length 2 - [this restriction is needed because of BIG5, BIG5-HKSCS, GBK, GB18030, - Shift_JIS, JOHAB], and - 3. does not consist entirely of decimal digits, or has at least length 4 - [this restriction is needed because of GB18030]. - This function is also safe to be called, even in a multibyte locale, if - HAYSTACK and NEEDLE are known to both consist solely of printable ASCII - characters excluding '\\' and '~'. */ -extern char *c_strstr (const char *haystack, const char *needle); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/c-strtod.h b/include/libgnulib/c-strtod.h deleted file mode 100755 index c269080..0000000 --- a/include/libgnulib/c-strtod.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Convert string to floating-point number, using the C locale. - - Copyright (C) 2003-2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Parse the initial portion of the string pointed to by NPTR as a floating- - point number (in decimal or hexadecimal notation), like in the C locale: - accepting only the ASCII digits '0'..'9', and only '.' as decimal point - character. - If ENDPTR is not NULL, set *ENDPTR to point to the first byte beyond the - parsed number or to NPTR if the string does not start with a parsable - number. - Return value: - - If successful, return the value as a float, double, or 'long double', - respectively, and don't modify errno. - - In case of overflow, return ±HUGE_VAL or ±HUGE_VALL, respectively, and - set errno to ERANGE. - - In case of underflow, return a value very near to 0 and set errno to - ERANGE. - - If the string does not start with a number at all, return 0 (and recall - that if ENDPTR != NULL, *ENDPTR is set to NPTR), and maybe set errno to - EINVAL. - - In case of other error, return 0 and set errno, for example to ENOMEM. */ -extern float c_strtof (char const *nptr, char **endptr); -extern double c_strtod (char const *nptr, char **endptr); -extern long double c_strtold (char const *nptr, char **endptr); - -#ifdef __cplusplus -} -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/c-vasnprintf.h b/include/libgnulib/c-vasnprintf.h deleted file mode 100755 index 3908a36..0000000 --- a/include/libgnulib/c-vasnprintf.h +++ /dev/null @@ -1,73 +0,0 @@ -/* vsprintf with automatic memory allocation in C locale. - Copyright (C) 2002-2004, 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _C_VASNPRINTF_H -#define _C_VASNPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. */ -#include - -/* Get size_t. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Write formatted output to a string dynamically allocated with malloc(). - You can pass a preallocated buffer for the result in RESULTBUF and its - size in *LENGTHP; otherwise you pass RESULTBUF = NULL. - If successful, return the address of the string (this may be = RESULTBUF - if no dynamic memory allocation was necessary) and set *LENGTHP to the - number of resulting bytes, excluding the trailing NUL. Upon error, set - errno and return NULL. - - When dynamic memory allocation occurs, the preallocated buffer is left - alone (with possibly modified contents). This makes it possible to use - a statically allocated or stack-allocated buffer, like this: - - char buf[100]; - size_t len = sizeof (buf); - char *output = vasnprintf (buf, &len, format, args); - if (output == NULL) - ... error handling ...; - else - { - ... use the output string ...; - if (output != buf) - free (output); - } - - Formatting takes place in the C locale, that is, the decimal point used in - floating-point formatting directives is always '.'. - */ -extern char *c_vasnprintf (char *restrict resultbuf, size_t *lengthp, - const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0)); - -#ifdef __cplusplus -} -#endif - -#endif /* _C_VASNPRINTF_H */ diff --git a/include/libgnulib/c-vasprintf.h b/include/libgnulib/c-vasprintf.h deleted file mode 100755 index 628d04f..0000000 --- a/include/libgnulib/c-vasprintf.h +++ /dev/null @@ -1,75 +0,0 @@ -/* vasprintf and asprintf, in C locale. - Copyright (C) 2002-2004, 2006-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _C_VASPRINTF_H -#define _C_VASPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. */ -#include - -/* Get ptrdiff_t. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Prints formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, it stores the address of the string in - *RESULT and returns the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, it returns -1 - with errno set. - - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -_GL_ATTRIBUTE_NODISCARD -ptrdiff_t c_aszprintf (char **resultp, const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3)); -_GL_ATTRIBUTE_NODISCARD -ptrdiff_t c_vaszprintf (char **resultp, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0)); - -/* Prints formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, it stores the address of the string in - *RESULT and returns the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, it returns -1. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -_GL_ATTRIBUTE_NODISCARD -int c_asprintf (char **resultp, const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3)); -_GL_ATTRIBUTE_NODISCARD -int c_vasprintf (char **resultp, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0)); - -#ifdef __cplusplus -} -#endif - -#endif /* _C_VASPRINTF_H */ diff --git a/include/libgnulib/c-vsnprintf.h b/include/libgnulib/c-vsnprintf.h deleted file mode 100755 index 2615118..0000000 --- a/include/libgnulib/c-vsnprintf.h +++ /dev/null @@ -1,70 +0,0 @@ -/* vsnprintf in C locale. - Copyright (C) 2012-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _C_VSNPRINTF_H -#define _C_VSNPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get size_t, ptrdiff_t. */ -#include - -/* Get va_list. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Prints formatted output to string STR. Similar to vsprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns -1 with errno set. - - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -extern ptrdiff_t c_vsnzprintf (char *restrict str, size_t size, - const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0)); - -/* Prints formatted output to string STR. Similar to sprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns -1 with errno set. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -extern int c_vsnprintf (char *restrict str, size_t size, - const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0)); - -#ifdef __cplusplus -} -#endif - -#endif /* _C_VSNPRINTF_H */ diff --git a/include/libgnulib/c-xvasprintf.h b/include/libgnulib/c-xvasprintf.h deleted file mode 100755 index 897ecfd..0000000 --- a/include/libgnulib/c-xvasprintf.h +++ /dev/null @@ -1,67 +0,0 @@ -/* vasprintf and asprintf, with out-of-memory checking, in C locale. - Copyright (C) 2002-2004, 2006-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _C_XVASPRINTF_H -#define _C_XVASPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Prints formatted output to a string dynamically allocated with malloc(), - and returns it. Upon [ENOMEM] memory allocation error, it calls xalloc_die. - - It is the responsibility of the programmer to ensure that - - the format string is valid, - - the format string does not use %ls or %lc directives, and - - all widths in the format string and passed as arguments are >= -INT_MAX - and <= INT_MAX, - so that other errors - - [EINVAL] invalid format string, - - [EILSEQ] error during conversion between wide and multibyte characters, - - [EOVERFLOW] some specified width is > INT_MAX, - cannot occur. - - Formatting takes place in the C locale, that is, the decimal point - used in floating-point formatting directives is always '.'. */ -extern char *c_xasprintf (const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern char *c_xvasprintf (const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -#ifdef __cplusplus -} -#endif - -#endif /* _C_XVASPRINTF_H */ diff --git a/include/libgnulib/c32is-impl.h b/include/libgnulib/c32is-impl.h deleted file mode 100755 index 9e98025..0000000 --- a/include/libgnulib/c32is-impl.h +++ /dev/null @@ -1,105 +0,0 @@ -/* Test whether a 32-bit wide character belongs to a specific character class. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -#include -#include - -#ifdef __CYGWIN__ -# include -#endif - -#if GNULIB_defined_mbstate_t -# include "localcharset.h" -# include "streq.h" -#endif - -#if GL_CHAR32_T_IS_UNICODE -# include "lc-charset-unicode.h" -#endif - -#include "unictype.h" - -#if _GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t -_GL_EXTERN_INLINE -#endif -int -FUNC (wint_t wc) -{ - /* The char32_t encoding of a multibyte character is defined by the way - mbrtoc32() is defined. */ - -#if GNULIB_defined_mbstate_t /* AIX, IRIX */ - /* mbrtoc32() is defined on top of mbtowc() for the non-UTF-8 locales - and directly for the UTF-8 locales. */ - if (wc != WEOF) - { - const char *encoding = locale_charset (); - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) - return UCS_FUNC (wc); - else - return WCHAR_FUNC (wc); - } - else - return 0; - -#elif HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB /* glibc, Android */ - /* mbrtoc32() is essentially defined by the system libc. */ - -# if _GL_WCHAR_T_IS_UCS4 - /* The char32_t encoding of a multibyte character is known to be the same as - the wchar_t encoding. */ - return WCHAR_FUNC (wc); -# else - /* The char32_t encoding of a multibyte character is known to be UCS-4, - different from the wchar_t encoding. */ - if (wc != WEOF) - return UCS_FUNC (wc); - else - return 0; -# endif - -#elif _GL_SMALL_WCHAR_T /* Cygwin, mingw, MSVC */ - /* The wchar_t encoding is UTF-16. - The char32_t encoding is UCS-4. */ - -# if defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007 - /* As an extension to POSIX, the iswalnum() function of Cygwin >= 1.7 - supports also wc arguments outside the Unicode BMP, that is, outside - the 'wchar_t' range. See - - = . */ - return WCHAR_FUNC (wc); -# else - if (wc == WEOF || wc == (wchar_t) wc) - /* wc is in the range for the isw* functions. */ - return WCHAR_FUNC (wc); - else - return UCS_FUNC (wc); -# endif - -#else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */ - /* char32_t and wchar_t are equivalent. */ - static_assert (sizeof (char32_t) == sizeof (wchar_t)); - -# if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION - return UCS_FUNC (wc); -# else - return WCHAR_FUNC (wc); -# endif -#endif -} diff --git a/include/libgnulib/c32to-impl.h b/include/libgnulib/c32to-impl.h deleted file mode 100755 index 2299ab7..0000000 --- a/include/libgnulib/c32to-impl.h +++ /dev/null @@ -1,103 +0,0 @@ -/* Case mapping of a 32-bit wide character. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2023. */ - -#include -#include - -#if GNULIB_defined_mbstate_t -# include "localcharset.h" -# include "streq.h" -#endif - -#if GL_CHAR32_T_IS_UNICODE -# include "lc-charset-unicode.h" -#endif - -#include "unicase.h" - -#if _GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t -_GL_EXTERN_INLINE -#endif -wint_t -FUNC (wint_t wc) -{ - /* The char32_t encoding of a multibyte character is defined by the way - mbrtoc32() is defined. */ - -#if GNULIB_defined_mbstate_t /* AIX, IRIX */ - /* mbrtoc32() is defined on top of mbtowc() for the non-UTF-8 locales - and directly for the UTF-8 locales. */ - if (wc != WEOF) - { - const char *encoding = locale_charset (); - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) - return UCS_FUNC (wc); - else - return WCHAR_FUNC (wc); - } - else - return wc; - -#elif HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB /* glibc, Android */ - /* mbrtoc32() is essentially defined by the system libc. */ - -# if _GL_WCHAR_T_IS_UCS4 - /* The char32_t encoding of a multibyte character is known to be the same as - the wchar_t encoding. */ - return WCHAR_FUNC (wc); -# else - /* The char32_t encoding of a multibyte character is known to be UCS-4, - different from the wchar_t encoding. */ - if (wc != WEOF) - return UCS_FUNC (wc); - else - return wc; -# endif - -#elif _GL_SMALL_WCHAR_T /* Cygwin, mingw, MSVC */ - /* The wchar_t encoding is UTF-16. - The char32_t encoding is UCS-4. */ - -# if defined _WIN32 && !defined __CYGWIN__ - /* On native Windows, in the UTF-8 locale, towlower and towupper are - lacking (at least) the mappings for ISO-8859-1 characters, such as - 0x00C9 <-> 0x00E9. Since it is expensive to test whether the locale - encoding is UTF-8, ignore the system's WCHAR_FUNC altogether. */ - if (wc != WEOF) - return UCS_FUNC (wc); - else - return wc; -# else - if (wc == WEOF || wc == (wchar_t) wc) - /* wc is in the range for the tow* functions. */ - return WCHAR_FUNC (wc); - else - return UCS_FUNC (wc); -# endif - -#else /* macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Minix, Android */ - /* char32_t and wchar_t are equivalent. */ - static_assert (sizeof (char32_t) == sizeof (wchar_t)); - -# if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION - return UCS_FUNC (wc); -# else - return WCHAR_FUNC (wc); -# endif -#endif -} diff --git a/include/libgnulib/canon-host.h b/include/libgnulib/canon-host.h deleted file mode 100755 index 5565bd8..0000000 --- a/include/libgnulib/canon-host.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Host name canonicalization - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - Written by Derek Price - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#ifndef CANON_HOST_H -#define CANON_HOST_H 1 - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -char *canon_host (char const *host) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -char *canon_host_r (char const *host, int *cherror) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -const char *ch_strerror (void); -#define ch_strerror_r(cherror) gai_strerror (cherror); - - -#ifdef __cplusplus -} -#endif - -#endif /* !CANON_HOST_H */ diff --git a/include/libgnulib/canonicalize.h b/include/libgnulib/canonicalize.h deleted file mode 100755 index fed0148..0000000 --- a/include/libgnulib/canonicalize.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Return the canonical absolute name of a given file. - Copyright (C) 1996-2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef CANONICALIZE_H_ -# define CANONICALIZE_H_ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include /* for canonicalize_file_name */ - -#define CAN_MODE_MASK (CAN_EXISTING | CAN_ALL_BUT_LAST | CAN_MISSING) - -#ifdef __cplusplus -extern "C" { -#endif - -enum canonicalize_mode_t - { - /* All components must exist. */ - CAN_EXISTING = 0, - - /* All components excluding last one must exist. */ - CAN_ALL_BUT_LAST = 1, - - /* No requirements on components existence. */ - CAN_MISSING = 2, - - /* Don't expand symlinks. */ - CAN_NOLINKS = 4 - }; -typedef enum canonicalize_mode_t canonicalize_mode_t; - -/* Return the canonical absolute name of file NAME, while treating - missing elements according to CAN_MODE. A canonical name - does not contain any `.', `..' components nor any repeated file name - separators ('/') or, depending on other CAN_MODE flags, symlinks. - Whether components must exist or not depends on canonicalize mode. - The result is malloc'd. - Upon failure, return NULL with errno set. */ -char *canonicalize_filename_mode (const char *, canonicalize_mode_t) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#ifdef __cplusplus -} -#endif - -#endif /* !CANONICALIZE_H_ */ diff --git a/include/libgnulib/careadlinkat.h b/include/libgnulib/careadlinkat.h deleted file mode 100755 index 2c552b6..0000000 --- a/include/libgnulib/careadlinkat.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Read symbolic links into a buffer without size limitation, relative to fd. - - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ - -#ifndef _GL_CAREADLINKAT_H -#define _GL_CAREADLINKAT_H - -/* This file uses HAVE_READLINKAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -struct allocator; - -/* Assuming the current directory is FD, get the symbolic link value - of FILENAME as a null-terminated string and put it into a buffer. - If FD is AT_FDCWD, FILENAME is interpreted relative to the current - working directory, as in openat. - - If the link is small enough to fit into BUFFER put it there. - BUFFER's size is BUFFER_SIZE, and BUFFER can be null - if BUFFER_SIZE is zero. - - If the link is not small, put it into a dynamically allocated - buffer managed by ALLOC. It is the caller's responsibility to free - the returned value if it is nonnull and is not BUFFER. - - The PREADLINKAT function specifies how to read links. It operates - like POSIX readlinkat() - - but can assume that its first argument is the same as FD. - - If successful, return the buffer address; otherwise return NULL and - set errno. */ - -char *careadlinkat (int fd, char const *filename, - char *restrict buffer, size_t buffer_size, - struct allocator const *alloc, - ssize_t (*preadlinkat) (int, char const *, - char *, size_t)); - -/* Suitable value for careadlinkat's FD argument. */ -#if HAVE_READLINKAT -/* AT_FDCWD is declared in . */ -#else -/* Define AT_FDCWD independently, so that the careadlinkat module does - not depend on the fcntl-h module. We might as well use the same value - as fcntl-h. */ -# ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -# endif -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_CAREADLINKAT_H */ diff --git a/include/libgnulib/cdefs.h b/include/libgnulib/cdefs.h deleted file mode 100755 index 9c49eeb..0000000 --- a/include/libgnulib/cdefs.h +++ /dev/null @@ -1,715 +0,0 @@ -/* Copyright (C) 1992-2024 Free Software Foundation, Inc. - Copyright The GNU Toolchain Authors. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _SYS_CDEFS_H -#define _SYS_CDEFS_H 1 - -/* We are almost always included from features.h. */ -#ifndef _FEATURES_H -# include -#endif - -/* The GNU libc does not support any K&R compilers or the traditional mode - of ISO C compilers anymore. Check for some of the combinations not - supported anymore. */ -#if defined __GNUC__ && !defined __STDC__ -# error "You need a ISO C conforming compiler to use the glibc headers" -#endif - -/* Some user header file might have defined this before. */ -#undef __P -#undef __PMT - -/* Compilers that lack __has_attribute may object to - #if defined __has_attribute && __has_attribute (...) - even though they do not need to evaluate the right-hand side of the &&. - Similarly for __has_builtin, etc. */ -#if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 7000000 <= __apple_build_version__ \ - : 5 <= __clang_major__))) -# define __glibc_has_attribute(attr) __has_attribute (attr) -#else -# define __glibc_has_attribute(attr) 0 -#endif -#ifdef __has_builtin -# define __glibc_has_builtin(name) __has_builtin (name) -#else -# define __glibc_has_builtin(name) 0 -#endif -#ifdef __has_extension -# define __glibc_has_extension(ext) __has_extension (ext) -#else -# define __glibc_has_extension(ext) 0 -#endif - -#if defined __GNUC__ || defined __clang__ - -/* All functions, except those with callbacks or those that - synchronize memory, are leaf functions. */ -# if __GNUC_PREREQ (4, 6) && !defined _LIBC -# define __LEAF , __leaf__ -# define __LEAF_ATTR __attribute__ ((__leaf__)) -# else -# define __LEAF -# define __LEAF_ATTR -# endif - -/* GCC can always grok prototypes. For C++ programs we add throw() - to help it optimize the function calls. But this only works with - gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions - as non-throwing using a function attribute since programs can use - the -fexceptions options for C code as well. */ -# if !defined __cplusplus \ - && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) -# define __THROW __attribute__ ((__nothrow__ __LEAF)) -# define __THROWNL __attribute__ ((__nothrow__)) -# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct -# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct -# else -# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) -# if __cplusplus >= 201103L -# define __THROW noexcept (true) -# else -# define __THROW throw () -# endif -# define __THROWNL __THROW -# define __NTH(fct) __LEAF_ATTR fct __THROW -# define __NTHNL(fct) fct __THROW -# else -# define __THROW -# define __THROWNL -# define __NTH(fct) fct -# define __NTHNL(fct) fct -# endif -# endif - -#else /* Not GCC or clang. */ - -# if (defined __cplusplus \ - || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) -# define __inline inline -# else -# define __inline /* No inline functions. */ -# endif - -# define __THROW -# define __THROWNL -# define __NTH(fct) fct - -#endif /* GCC || clang. */ - -/* These two macros are not used in glibc anymore. They are kept here - only because some other projects expect the macros to be defined. */ -#define __P(args) args -#define __PMT(args) args - -/* For these things, GCC behaves the ANSI way normally, - and the non-ANSI way under -traditional. */ - -#define __CONCAT(x,y) x ## y -#define __STRING(x) #x - -/* This is not a typedef so `const __ptr_t' does the right thing. */ -#define __ptr_t void * - - -/* C++ needs to know that types and declarations are C, not C++. */ -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS -# define __END_DECLS -#endif - - -/* Gnulib avoids these definitions, as they don't work on non-glibc platforms. - In particular, __bos and __bos0 are defined differently in the Android libc. - */ -#ifndef __GNULIB_CDEFS - -/* Fortify support. */ -# define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) -# define __bos0(ptr) __builtin_object_size (ptr, 0) - -/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ -# if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ - || __GNUC_PREREQ (12, 0)) -# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) -# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) -# else -# define __glibc_objsize0(__o) __bos0 (__o) -# define __glibc_objsize(__o) __bos (__o) -# endif - -/* Compile time conditions to choose between the regular, _chk and _chk_warn - variants. These conditions should get evaluated to constant and optimized - away. */ - -# define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) -# define __glibc_unsigned_or_positive(__l) \ - ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ - || (__builtin_constant_p (__l) && (__l) > 0)) - -/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ - condition can be folded to a constant and if it is true, or unknown (-1) */ -# define __glibc_safe_or_unknown_len(__l, __s, __osz) \ - ((__osz) == (__SIZE_TYPE__) -1 \ - || (__glibc_unsigned_or_positive (__l) \ - && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ - (__s), (__osz))) \ - && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) - -/* Conversely, we know at compile time that the length is unsafe if the - __L * __S <= __OBJSZ condition can be folded to a constant and if it is - false. */ -# define __glibc_unsafe_len(__l, __s, __osz) \ - (__glibc_unsigned_or_positive (__l) \ - && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ - __s, __osz)) \ - && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) - -/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be - declared. */ - -# define __glibc_fortify(f, __l, __s, __osz, ...) \ - (__glibc_safe_or_unknown_len (__l, __s, __osz) \ - ? __ ## f ## _alias (__VA_ARGS__) \ - : (__glibc_unsafe_len (__l, __s, __osz) \ - ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ - : __ ## f ## _chk (__VA_ARGS__, __osz))) \ - -/* Fortify function f, where object size argument passed to f is the number of - elements and not total size. */ - -# define __glibc_fortify_n(f, __l, __s, __osz, ...) \ - (__glibc_safe_or_unknown_len (__l, __s, __osz) \ - ? __ ## f ## _alias (__VA_ARGS__) \ - : (__glibc_unsafe_len (__l, __s, __osz) \ - ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ - : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ - -#endif - - -#if __GNUC_PREREQ (4,3) -# define __warnattr(msg) __attribute__((__warning__ (msg))) -# define __errordecl(name, msg) \ - extern void name (void) __attribute__((__error__ (msg))) -#else -# define __warnattr(msg) -# define __errordecl(name, msg) extern void name (void) -#endif - -/* Support for flexible arrays. - Headers that should use flexible arrays only if they're "real" - (e.g. only if they won't affect sizeof()) should test - #if __glibc_c99_flexarr_available. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc -# define __flexarr [] -# define __glibc_c99_flexarr_available 1 -#elif __GNUC_PREREQ (2,97) || defined __clang__ -/* GCC 2.97 and clang support C99 flexible array members as an extension, - even when in C89 mode or compiling C++ (any version). */ -# define __flexarr [] -# define __glibc_c99_flexarr_available 1 -#elif defined __GNUC__ -/* Pre-2.97 GCC did not support C99 flexible arrays but did have - an equivalent extension with slightly different notation. */ -# define __flexarr [0] -# define __glibc_c99_flexarr_available 1 -#else -/* Some other non-C99 compiler. Approximate with [1]. */ -# define __flexarr [1] -# define __glibc_c99_flexarr_available 0 -#endif - - -/* __asm__ ("xyz") is used throughout the headers to rename functions - at the assembly language level. This is wrapped by the __REDIRECT - macro, in order to support compilers that can do this some other - way. When compilers don't support asm-names at all, we have to do - preprocessor tricks instead (which don't have exactly the right - semantics, but it's the best we can do). - - Example: - int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ - -#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) - -# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) -# ifdef __cplusplus -# define __REDIRECT_NTH(name, proto, alias) \ - name proto __THROW __asm__ (__ASMNAME (#alias)) -# define __REDIRECT_NTHNL(name, proto, alias) \ - name proto __THROWNL __asm__ (__ASMNAME (#alias)) -# else -# define __REDIRECT_NTH(name, proto, alias) \ - name proto __asm__ (__ASMNAME (#alias)) __THROW -# define __REDIRECT_NTHNL(name, proto, alias) \ - name proto __asm__ (__ASMNAME (#alias)) __THROWNL -# endif -# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) -# define __ASMNAME2(prefix, cname) __STRING (prefix) cname - -/* -#elif __SOME_OTHER_COMPILER__ - -# define __REDIRECT(name, proto, alias) name proto; \ - _Pragma("let " #name " = " #alias) -*/ -#endif - -/* GCC and clang have various useful declarations that can be made with - the '__attribute__' syntax. All of the ways we use this do fine if - they are omitted for compilers that don't understand it. */ -#if !(defined __GNUC__ || defined __clang__) -# define __attribute__(xyz) /* Ignore */ -#endif - -/* At some point during the gcc 2.96 development the `malloc' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) -# define __attribute_malloc__ __attribute__ ((__malloc__)) -#else -# define __attribute_malloc__ /* Ignore */ -#endif - -/* Tell the compiler which arguments to an allocation function - indicate the size of the allocation. */ -#if __GNUC_PREREQ (4, 3) -# define __attribute_alloc_size__(params) \ - __attribute__ ((__alloc_size__ params)) -#else -# define __attribute_alloc_size__(params) /* Ignore. */ -#endif - -/* Tell the compiler which argument to an allocation function - indicates the alignment of the allocation. */ -#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) -# define __attribute_alloc_align__(param) \ - __attribute__ ((__alloc_align__ param)) -#else -# define __attribute_alloc_align__(param) /* Ignore. */ -#endif - -/* At some point during the gcc 2.96 development the `pure' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) -# define __attribute_pure__ __attribute__ ((__pure__)) -#else -# define __attribute_pure__ /* Ignore */ -#endif - -/* This declaration tells the compiler that the value is constant. */ -#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) -# define __attribute_const__ __attribute__ ((__const__)) -#else -# define __attribute_const__ /* Ignore */ -#endif - -#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) -# define __attribute_maybe_unused__ __attribute__ ((__unused__)) -#else -# define __attribute_maybe_unused__ /* Ignore */ -#endif - -/* At some point during the gcc 3.1 development the `used' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) -# define __attribute_used__ __attribute__ ((__used__)) -# define __attribute_noinline__ __attribute__ ((__noinline__)) -#else -# define __attribute_used__ __attribute__ ((__unused__)) -# define __attribute_noinline__ /* Ignore */ -#endif - -/* Since version 3.2, gcc allows marking deprecated functions. */ -#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) -# define __attribute_deprecated__ __attribute__ ((__deprecated__)) -#else -# define __attribute_deprecated__ /* Ignore */ -#endif - -/* Since version 4.5, gcc also allows one to specify the message printed - when a deprecated function is used. clang claims to be gcc 4.2, but - may also support this feature. */ -#if __GNUC_PREREQ (4,5) \ - || __glibc_has_extension (__attribute_deprecated_with_message__) -# define __attribute_deprecated_msg__(msg) \ - __attribute__ ((__deprecated__ (msg))) -#else -# define __attribute_deprecated_msg__(msg) __attribute_deprecated__ -#endif - -/* At some point during the gcc 2.8 development the `format_arg' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. - If several `format_arg' attributes are given for the same function, in - gcc-3.0 and older, all but the last one are ignored. In newer gccs, - all designated arguments are considered. */ -#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) -# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) -#else -# define __attribute_format_arg__(x) /* Ignore */ -#endif - -/* At some point during the gcc 2.97 development the `strfmon' format - attribute for functions was introduced. We don't want to use it - unconditionally (although this would be possible) since it - generates warnings. */ -#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) -# define __attribute_format_strfmon__(a,b) \ - __attribute__ ((__format__ (__strfmon__, a, b))) -#else -# define __attribute_format_strfmon__(a,b) /* Ignore */ -#endif - -/* The nonnull function attribute marks pointer parameters that - must not be NULL. This has the name __nonnull in glibc, - and __attribute_nonnull__ in files shared with Gnulib to avoid - collision with a different __nonnull in DragonFlyBSD 5.9. */ -#ifndef __attribute_nonnull__ -# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) -# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) -# else -# define __attribute_nonnull__(params) -# endif -#endif -#ifndef __nonnull -# define __nonnull(params) __attribute_nonnull__ (params) -#endif - -/* The returns_nonnull function attribute marks the return type of the function - as always being non-null. */ -#ifndef __returns_nonnull -# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) -# define __returns_nonnull __attribute__ ((__returns_nonnull__)) -# else -# define __returns_nonnull -# endif -#endif - -/* If fortification mode, we warn about unused results of certain - function calls which can lead to problems. */ -#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) -# define __attribute_warn_unused_result__ \ - __attribute__ ((__warn_unused_result__)) -# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 -# define __wur __attribute_warn_unused_result__ -# endif -#else -# define __attribute_warn_unused_result__ /* empty */ -#endif -#ifndef __wur -# define __wur /* Ignore */ -#endif - -/* Forces a function to be always inlined. */ -#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) -/* The Linux kernel defines __always_inline in stddef.h (283d7573), and - it conflicts with this definition. Therefore undefine it first to - allow either header to be included first. */ -# undef __always_inline -# define __always_inline __inline __attribute__ ((__always_inline__)) -#else -# undef __always_inline -# define __always_inline __inline -#endif - -/* Associate error messages with the source location of the call site rather - than with the source location inside the function. */ -#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) -# define __attribute_artificial__ __attribute__ ((__artificial__)) -#else -# define __attribute_artificial__ /* Ignore */ -#endif - -/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ - or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions - older than 4.3 may define these macros and still not guarantee GNU inlining - semantics. - - clang++ identifies itself as gcc-4.2, but has support for GNU inlining - semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and - __GNUC_GNU_INLINE__ macro definitions. */ -#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ - || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ - || defined __GNUC_GNU_INLINE__))) -# if defined __GNUC_STDC_INLINE__ || defined __cplusplus -# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) -# define __extern_always_inline \ - extern __always_inline __attribute__ ((__gnu_inline__)) -# else -# define __extern_inline extern __inline -# define __extern_always_inline extern __always_inline -# endif -#endif - -#ifdef __extern_always_inline -# define __fortify_function __extern_always_inline __attribute_artificial__ -#endif - -/* GCC 4.3 and above allow passing all anonymous arguments of an - __extern_always_inline function to some other vararg function. */ -#if __GNUC_PREREQ (4,3) -# define __va_arg_pack() __builtin_va_arg_pack () -# define __va_arg_pack_len() __builtin_va_arg_pack_len () -#endif - -/* It is possible to compile containing GCC extensions even if GCC is - run in pedantic mode if the uses are carefully marked using the - `__extension__' keyword. But this is not generally available before - version 2.8. */ -#if !(__GNUC_PREREQ (2,8) || defined __clang__) -# define __extension__ /* Ignore */ -#endif - -/* __restrict is known in EGCS 1.2 and above, and in clang. - It works also in C++ mode (outside of arrays), but only when spelled - as '__restrict', not 'restrict'. */ -#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) -# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -# define __restrict restrict -# else -# define __restrict /* Ignore */ -# endif -#endif - -/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is - array_name[restrict] - GCC 3.1 and clang support this. - This syntax is not usable in C++ mode. */ -#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus -# define __restrict_arr __restrict -#else -# ifdef __GNUC__ -# define __restrict_arr /* Not supported in old GCC. */ -# else -# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -# define __restrict_arr restrict -# else -/* Some other non-C99 compiler. */ -# define __restrict_arr /* Not supported. */ -# endif -# endif -#endif - -#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) -# define __glibc_unlikely(cond) __builtin_expect ((cond), 0) -# define __glibc_likely(cond) __builtin_expect ((cond), 1) -#else -# define __glibc_unlikely(cond) (cond) -# define __glibc_likely(cond) (cond) -#endif - -#if (!defined _Noreturn \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ - && !(__GNUC_PREREQ (4,7) \ - || (3 < __clang_major__ + (5 <= __clang_minor__)))) -# if __GNUC_PREREQ (2,8) -# define _Noreturn __attribute__ ((__noreturn__)) -# else -# define _Noreturn -# endif -#endif - -#if __GNUC_PREREQ (8, 0) -/* Describes a char array whose address can safely be passed as the first - argument to strncpy and strncat, as the char array is not necessarily - a NUL-terminated string. */ -# define __attribute_nonstring__ __attribute__ ((__nonstring__)) -#else -# define __attribute_nonstring__ -#endif - -/* Undefine (also defined in libc-symbols.h). */ -#undef __attribute_copy__ -#if __GNUC_PREREQ (9, 0) -/* Copies attributes from the declaration or type referenced by - the argument. */ -# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) -#else -# define __attribute_copy__(arg) -#endif - -#if (!defined _Static_assert && !defined __cplusplus \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ - && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ - || defined __STRICT_ANSI__)) -# define _Static_assert(expr, diagnostic) \ - extern int (*__Static_assert_function (void)) \ - [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] -#endif - -/* Gnulib avoids including these, as they don't work on non-glibc or - older glibc platforms. */ -#ifndef __GNULIB_CDEFS -# include -# include -#endif - -#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 -# ifdef __REDIRECT - -/* Alias name defined automatically. */ -# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir -# define __LDBL_REDIR_DECL(name) \ - extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); - -/* Alias name defined automatically, with leading underscores. */ -# define __LDBL_REDIR2_DECL(name) \ - extern __typeof (__##name) __##name \ - __asm (__ASMNAME ("__" #name "ieee128")); - -/* Alias name defined manually. */ -# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 -# define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); - -# define __LDBL_REDIR1_NTH(name, proto, alias) \ - __REDIRECT_NTH (name, proto, alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) - -/* Unused. */ -# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl -# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth - -# else -_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); -# endif -#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH -# define __LDBL_COMPAT 1 -# ifdef __REDIRECT -# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) -# define __LDBL_REDIR(name, proto) \ - __LDBL_REDIR1 (name, proto, __nldbl_##name) -# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) -# define __LDBL_REDIR_NTH(name, proto) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) -# define __LDBL_REDIR2_DECL(name) \ - extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); -# define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); -# define __LDBL_REDIR_DECL(name) \ - extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); -# define __REDIRECT_LDBL(name, proto, alias) \ - __LDBL_REDIR1 (name, proto, __nldbl_##alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) -# endif -#endif -#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ - || !defined __REDIRECT -# define __LDBL_REDIR1(name, proto, alias) name proto -# define __LDBL_REDIR(name, proto) name proto -# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW -# define __LDBL_REDIR_NTH(name, proto) name proto __THROW -# define __LDBL_REDIR2_DECL(name) -# define __LDBL_REDIR_DECL(name) -# ifdef __REDIRECT -# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __REDIRECT_NTH (name, proto, alias) -# endif -#endif - -/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is - intended for use in preprocessor macros. - - Note: MESSAGE must be a _single_ string; concatenation of string - literals is not supported. */ -#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) -# define __glibc_macro_warning1(message) _Pragma (#message) -# define __glibc_macro_warning(message) \ - __glibc_macro_warning1 (GCC warning message) -#else -# define __glibc_macro_warning(msg) -#endif - -/* Generic selection (ISO C11) is a C-only feature, available in GCC - since version 4.9. Previous versions do not provide generic - selection, even though they might set __STDC_VERSION__ to 201112L, - when in -std=c11 mode. Thus, we must check for !defined __GNUC__ - when testing __STDC_VERSION__ for generic selection support. - On the other hand, Clang also defines __GNUC__, so a clang-specific - check is required to enable the use of generic selection. */ -#if !defined __cplusplus \ - && (__GNUC_PREREQ (4, 9) \ - || __glibc_has_extension (c_generic_selections) \ - || (!defined __GNUC__ && defined __STDC_VERSION__ \ - && __STDC_VERSION__ >= 201112L)) -# define __HAVE_GENERIC_SELECTION 1 -#else -# define __HAVE_GENERIC_SELECTION 0 -#endif - -#if __GNUC_PREREQ (10, 0) -/* Designates a 1-based positional argument ref-index of pointer type - that can be used to access size-index elements of the pointed-to - array according to access mode, or at least one element when - size-index is not provided: - access (access-mode, [, ]) */ -# define __attr_access(x) __attribute__ ((__access__ x)) -/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may - use the access attribute to get object sizes from function definition - arguments, so we can't use them on functions we fortify. Drop the object - size hints for such functions. */ -# if __USE_FORTIFY_LEVEL == 3 -# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) -# else -# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) -# endif -# if __GNUC_PREREQ (11, 0) -# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) -# else -# define __attr_access_none(argno) -# endif -#else -# define __fortified_attr_access(a, o, s) -# define __attr_access(x) -# define __attr_access_none(argno) -#endif - -#if __GNUC_PREREQ (11, 0) -/* Designates dealloc as a function to call to deallocate objects - allocated by the declared function. */ -# define __attr_dealloc(dealloc, argno) \ - __attribute__ ((__malloc__ (dealloc, argno))) -# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) -#else -# define __attr_dealloc(dealloc, argno) -# define __attr_dealloc_free -#endif - -/* Specify that a function such as setjmp or vfork may return - twice. */ -#if __GNUC_PREREQ (4, 1) -# define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) -#else -# define __attribute_returns_twice__ /* Ignore. */ -#endif - -#endif /* sys/cdefs.h */ diff --git a/include/libgnulib/chdir-long.h b/include/libgnulib/chdir-long.h deleted file mode 100755 index c679d11..0000000 --- a/include/libgnulib/chdir-long.h +++ /dev/null @@ -1,40 +0,0 @@ -/* provide a chdir function that tries not to fail due to ENAMETOOLONG - Copyright (C) 2004-2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#include -#include - -#include "pathmax.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* On systems without PATH_MAX, presume that chdir accepts - arbitrarily long directory names. */ -#ifndef PATH_MAX -# define chdir_long(Dir) chdir (Dir) -#else -int chdir_long (char *dir); -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/check-version.h b/include/libgnulib/check-version.h deleted file mode 100755 index 01750ea..0000000 --- a/include/libgnulib/check-version.h +++ /dev/null @@ -1,35 +0,0 @@ -/* check-version.h --- Check version string compatibility. - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Simon Josefsson. */ - -#ifndef CHECK_VERSION_H -# define CHECK_VERSION_H - -#ifdef __cplusplus -extern "C" { -#endif - - -extern const char * -check_version (const char *req_version); - - -#ifdef __cplusplus -} -#endif - -#endif /* CHECK_VERSION_H */ diff --git a/include/libgnulib/classpath.h b/include/libgnulib/classpath.h deleted file mode 100755 index d4c199b..0000000 --- a/include/libgnulib/classpath.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Java CLASSPATH handling. - Copyright (C) 2003, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the new CLASSPATH value. The given classpaths are prepended to - the current CLASSPATH value. If use_minimal_classpath, the current - CLASSPATH is ignored. */ -extern char * new_classpath (const char * const *classpaths, - unsigned int classpaths_count, - bool use_minimal_classpath); - -/* Set CLASSPATH and returns a safe copy of its old value. */ -extern char * set_classpath (const char * const *classpaths, - unsigned int classpaths_count, - bool use_minimal_classpath, bool verbose) - _GL_ATTRIBUTE_MALLOC; - -/* Restore CLASSPATH to its previous value. */ -extern void reset_classpath (char *old_classpath); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/clean-temp-private.h b/include/libgnulib/clean-temp-private.h deleted file mode 100755 index 8be031a..0000000 --- a/include/libgnulib/clean-temp-private.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Private interface between modules 'clean-temp-simple' and 'clean-temp'. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _CLEAN_TEMP_PRIVATE_H -#define _CLEAN_TEMP_PRIVATE_H - -#include -#include "gl_list.h" -#include "asyncsafe-spin.h" - -/* The use of 'volatile' in the types below (and ISO C 99 section 5.1.2.3.(5)) - ensure that while constructing or modifying the data structures, the field - values are written to memory in the order of the C statements. So the - signal handler can rely on these field values to be up to date. */ - -/* Registry for a single temporary directory. - 'struct temp_dir' from the public header file overlaps with this. */ -struct tempdir -{ - /* The absolute pathname of the directory. */ - char * volatile dirname; - /* Whether errors during explicit cleanup are reported to standard error. */ - bool cleanup_verbose; - /* Absolute pathnames of subdirectories. */ - gl_list_t /* */ volatile subdirs; - /* Absolute pathnames of files. */ - gl_list_t /* */ volatile files; -}; - -/* List of all temporary directories. */ -struct all_tempdirs -{ - struct tempdir * volatile * volatile tempdir_list; - size_t volatile tempdir_count; - size_t tempdir_allocated; -}; -#define dir_cleanup_list clean_temp_dir_cleanup_list -extern struct all_tempdirs dir_cleanup_list; - -/* A file descriptor to be closed. - In multithreaded programs, it is forbidden to close the same fd twice, - because you never know what unrelated open() calls are being executed in - other threads. So, the 'close (fd)' must be guarded by a once-only guard. */ -struct closeable_fd -{ - /* The file descriptor to close. */ - int volatile fd; - /* Set to true when it has been closed. */ - bool volatile closed; - /* Lock that protects the fd from being closed twice. */ - asyncsafe_spinlock_t lock; - /* Tells whether this list element has been done and can be freed. */ - bool volatile done; -}; -#define descriptors clean_temp_descriptors -extern gl_list_t /* */ volatile descriptors; - -extern bool clean_temp_string_equals (const void *x1, const void *x2); -extern size_t clean_temp_string_hash (const void *x); - -extern _GL_ASYNC_SAFE int clean_temp_asyncsafe_close (struct closeable_fd *element); -extern void clean_temp_init_asyncsafe_close (void); - -extern int clean_temp_init (void); - -extern int clean_temp_unlink (const char *absolute_file_name, bool cleanup_verbose); - -#endif /* _CLEAN_TEMP_PRIVATE_H */ diff --git a/include/libgnulib/clean-temp-simple.h b/include/libgnulib/clean-temp-simple.h deleted file mode 100755 index b9b93af..0000000 --- a/include/libgnulib/clean-temp-simple.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Temporary files with automatic cleanup. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _CLEAN_TEMP_SIMPLE_H -#define _CLEAN_TEMP_SIMPLE_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* See clean-temp.h for a general discussion of this module. */ - -/* Register the given ABSOLUTE_FILE_NAME as being a file that needs to be - removed. - Should be called before the file ABSOLUTE_FILE_NAME is created. - Return 0 upon success, or -1 if there was a memory allocation problem. */ -extern int register_temporary_file (const char *absolute_file_name); - -/* Unregister the given ABSOLUTE_FILE_NAME as being a file that needs to be - removed. - Should be called when the file ABSOLUTE_FILE_NAME could not be created. */ -extern void unregister_temporary_file (const char *absolute_file_name); - -/* Remove the given ABSOLUTE_FILE_NAME and unregister it. - CLEANUP_VERBOSE determines whether errors are reported to standard error. - Return 0 upon success, or -1 if there was some problem. */ -extern int cleanup_temporary_file (const char *absolute_file_name, - bool cleanup_verbose); - - -#ifdef __cplusplus -} -#endif - -#endif /* _CLEAN_TEMP_SIMPLE_H */ diff --git a/include/libgnulib/clean-temp.h b/include/libgnulib/clean-temp.h deleted file mode 100755 index 8a5aecc..0000000 --- a/include/libgnulib/clean-temp.h +++ /dev/null @@ -1,194 +0,0 @@ -/* Temporary directories and temporary files with automatic cleanup. - Copyright (C) 2006, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _CLEAN_TEMP_H -#define _CLEAN_TEMP_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Temporary directories and temporary files should be automatically removed - when the program exits either normally or through a fatal signal. We can't - rely on the "unlink before close" idiom, because it works only on Unix and - also - if no signal blocking is used - leaves a time window where a fatal - signal would not clean up the temporary file. - - Also, open file descriptors need to be closed before the temporary files - and the temporary directories can be removed, because only on Unix - (excluding Cygwin) can one remove directories containing open files. - - There are two modules: - - 'clean-temp' provides support for temporary directories and temporary - files inside these temporary directories, - - 'clean-temp-simple' provides support for temporary files without - temporary directories. - The temporary directories and files are automatically cleaned up (at the - latest) when the program exits or dies from a fatal signal such as SIGINT, - SIGTERM, SIGHUP, but not if it dies from a fatal signal such as SIGQUIT, - SIGKILL, or SIGABRT, SIGSEGV, SIGBUS, SIGILL, SIGFPE. - - For the cleanup in the normal case, programs that use this module need to - call 'cleanup_temp_dir' for each successful return of 'create_temp_dir'. - The cleanup in the case of a fatal signal such as SIGINT, SIGTERM, SIGHUP, - is done entirely automatically by the functions of this module. - - Limitations: Files or directories can still be left over if - - the program is dies from a fatal signal such as SIGQUIT, SIGKILL, or - SIGABRT, SIGSEGV, SIGBUS, SIGILL, SIGFPE, or - - in a multithreaded program, the fatal signal handler is already running - while another thread of the program creates a new temporary directory - or temporary file, or - - on native Windows, some temporary files are used by a subprocess while - the fatal signal interrupts the program. - */ - - -/* ============= Temporary files without temporary directories ============= */ - -#include "clean-temp-simple.h" - -/* ========= Temporary directories and temporary files inside them ========= */ - -struct temp_dir -{ - /* The absolute pathname of the directory. */ - const char * const dir_name; - /* Whether errors during explicit cleanup are reported to standard error. */ - bool cleanup_verbose; - /* More fields are present here, but not public. */ -}; - -/* Remove all registered files and subdirectories inside DIR and DIR itself. - DIR cannot be used any more after this call. - Return 0 upon success, or -1 if there was some problem. */ -extern int cleanup_temp_dir (struct temp_dir *dir); - -/* Create a temporary directory. - PREFIX is used as a prefix for the name of the temporary directory. It - should be short and still give an indication about the program. - PARENTDIR can be used to specify the parent directory; if NULL, a default - parent directory is used (either $TMPDIR or /tmp or similar). - CLEANUP_VERBOSE determines whether errors during explicit cleanup are - reported to standard error. - Return a fresh 'struct temp_dir' on success. Upon error, an error message - is shown and NULL is returned. */ -extern struct temp_dir * create_temp_dir (const char *prefix, - const char *parentdir, - bool cleanup_verbose) - _GL_ATTRIBUTE_DEALLOC (cleanup_temp_dir, 1); - -/* Register the given ABSOLUTE_FILE_NAME as being a file inside DIR, that - needs to be removed before DIR can be removed. - Should be called before the file ABSOLUTE_FILE_NAME is created. */ -extern void register_temp_file (struct temp_dir *dir, - const char *absolute_file_name); - -/* Unregister the given ABSOLUTE_FILE_NAME as being a file inside DIR, that - needs to be removed before DIR can be removed. - Should be called when the file ABSOLUTE_FILE_NAME could not be created. */ -extern void unregister_temp_file (struct temp_dir *dir, - const char *absolute_file_name); - -/* Register the given ABSOLUTE_DIR_NAME as being a subdirectory inside DIR, - that needs to be removed before DIR can be removed. - Should be called before the subdirectory ABSOLUTE_DIR_NAME is created. */ -extern void register_temp_subdir (struct temp_dir *dir, - const char *absolute_dir_name); - -/* Unregister the given ABSOLUTE_DIR_NAME as being a subdirectory inside DIR, - that needs to be removed before DIR can be removed. - Should be called when the subdirectory ABSOLUTE_DIR_NAME could not be - created. */ -extern void unregister_temp_subdir (struct temp_dir *dir, - const char *absolute_dir_name); - -/* Remove the given ABSOLUTE_FILE_NAME and unregister it. - Return 0 upon success, or -1 if there was some problem. */ -extern int cleanup_temp_file (struct temp_dir *dir, - const char *absolute_file_name); - -/* Remove the given ABSOLUTE_DIR_NAME and unregister it. - Return 0 upon success, or -1 if there was some problem. */ -extern int cleanup_temp_subdir (struct temp_dir *dir, - const char *absolute_dir_name); - -/* Remove all registered files and subdirectories inside DIR. - Return 0 upon success, or -1 if there was some problem. */ -extern int cleanup_temp_dir_contents (struct temp_dir *dir); - -/* ================== Opening and closing temporary files ================== */ - -/* Open a temporary file in a temporary directory. - FILE_NAME must already have been passed to register_temp_file. - Registers the resulting file descriptor to be closed. - DELETE_ON_CLOSE indicates whether the file can be deleted when the resulting - file descriptor or stream is closed. */ -extern int open_temp (const char *file_name, int flags, mode_t mode, - bool delete_on_close); -extern FILE * fopen_temp (const char *file_name, const char *mode, - bool delete_on_close); - -/* Open a temporary file, generating its name based on FILE_NAME_TMPL. - FILE_NAME_TMPL must match the rules for mk[s]temp (i.e. end in "XXXXXX", - possibly with a suffix). The name constructed does not exist at the time - of the call. FILE_NAME_TMPL is overwritten with the result. - A safe choice for MODE is S_IRUSR | S_IWUSR, a.k.a. 0600. - Registers the file for deletion. - Opens the file, with the given FLAGS and mode MODE. - Registers the resulting file descriptor to be closed. */ -extern int gen_register_open_temp (char *file_name_tmpl, int suffixlen, - int flags, mode_t mode); - -/* Close a temporary file. - FD must have been returned by open_temp or gen_register_open_temp. - Unregisters the previously registered file descriptor. */ -extern int close_temp (int fd); - -/* Close a temporary file. - FP must have been returned by fopen_temp, or by fdopen on a file descriptor - returned by open_temp or gen_register_open_temp. - Unregisters the previously registered file descriptor. */ -extern int fclose_temp (FILE *fp); - -/* Like fwriteerror. - FP must have been returned by fopen_temp, or by fdopen on a file descriptor - returned by open_temp or gen_register_open_temp. - Unregisters the previously registered file descriptor. */ -extern int fwriteerror_temp (FILE *fp); - -/* Like close_stream. - FP must have been returned by fopen_temp, or by fdopen on a file descriptor - returned by open_temp or gen_register_open_temp. - Unregisters the previously registered file descriptor. */ -extern int close_stream_temp (FILE *fp); - - -#ifdef __cplusplus -} -#endif - -#endif /* _CLEAN_TEMP_H */ diff --git a/include/libgnulib/cloexec.h b/include/libgnulib/cloexec.h deleted file mode 100755 index a7944d6..0000000 --- a/include/libgnulib/cloexec.h +++ /dev/null @@ -1,44 +0,0 @@ -/* cloexec.c - set or clear the close-on-exec descriptor flag - - Copyright (C) 2004, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, - or clear the flag if VALUE is false. - Return 0 on success, or -1 on error with 'errno' set. - - Note that on MingW, this function does NOT protect DESC from being - inherited into spawned children. Instead, either use dup_cloexec - followed by closing the original DESC, or use interfaces such as - open or pipe2 that accept flags like O_CLOEXEC to create DESC - non-inheritable in the first place. */ - -int set_cloexec_flag (int desc, bool value); - -/* Duplicates a file handle FD, while marking the copy to be closed - prior to exec or spawn. Returns -1 and sets errno if FD could not - be duplicated. */ - -int dup_cloexec (int fd); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/close-stream.h b/include/libgnulib/close-stream.h deleted file mode 100755 index 3c421dc..0000000 --- a/include/libgnulib/close-stream.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Close a stream, with nicer error checking than fclose's. - - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int close_stream (FILE *stream); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/closein.h b/include/libgnulib/closein.h deleted file mode 100755 index 665df06..0000000 --- a/include/libgnulib/closein.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Close standard input, rewinding seekable stdin if necessary. - - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _GL_CLOSEIN_H -# define _GL_CLOSEIN_H 1 - -# ifdef __cplusplus -extern "C" { -# endif - -void close_stdin_set_file_name (const char *file); -void close_stdin (void); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/closeout.h b/include/libgnulib/closeout.h deleted file mode 100755 index 6036e62..0000000 --- a/include/libgnulib/closeout.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Close standard output and standard error. - - Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#ifndef CLOSEOUT_H -# define CLOSEOUT_H 1 - -# ifdef __cplusplus -extern "C" { -# endif - -void close_stdout_set_file_name (const char *file); -void close_stdout_set_ignore_EPIPE (bool ignore); -void close_stdout (void); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/concat-filename.h b/include/libgnulib/concat-filename.h deleted file mode 100755 index 328b0e2..0000000 --- a/include/libgnulib/concat-filename.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Construct a full filename from a directory and a relative filename. - Copyright (C) 2001-2004, 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _CONCAT_FILENAME_H -#define _CONCAT_FILENAME_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Concatenate a directory filename, a relative filename and an optional - suffix. Return a freshly allocated filename. Return NULL and set errno - upon memory allocation failure. */ -extern char *concatenated_filename (const char *directory, - const char *filename, const char *suffix) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -/* Concatenate a directory filename, a relative filename and an optional - suffix. Return a freshly allocated filename. */ -extern char *xconcatenated_filename (const char *directory, - const char *filename, const char *suffix) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - - -#ifdef __cplusplus -} -#endif - -#endif /* _CONCAT_FILENAME_H */ diff --git a/include/libgnulib/copy-file.h b/include/libgnulib/copy-file.h deleted file mode 100755 index 3f5aa72..0000000 --- a/include/libgnulib/copy-file.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Copying of files. - Copyright (C) 2001-2003, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - - -/* This file uses _GL_ATTRIBUTE_DEPRECATED. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Error codes returned by qcopy_file_preserving or copy_file_to. */ -enum -{ - GL_COPY_ERR_OPEN_READ = -1, - GL_COPY_ERR_OPEN_BACKUP_WRITE = -2, - GL_COPY_ERR_READ = -3, - GL_COPY_ERR_WRITE = -4, - GL_COPY_ERR_AFTER_READ = -5, - GL_COPY_ERR_GET_ACL = -6, - GL_COPY_ERR_SET_ACL = -7 -}; - - -/* Copy a regular file: from src_filename to dest_filename. - The destination file is assumed to be a backup file. - Modification times, owner, group and access permissions are preserved as - far as possible (similarly to what 'cp -p SRC DEST' would do). - Return 0 if successful, otherwise set errno and return one of the error - codes above. */ -extern int qcopy_file_preserving (const char *src_filename, const char *dest_filename); - -/* Copy a regular file: from src_filename to dest_filename. - The destination file is assumed to be a backup file. - Modification times, owner, group and access permissions are preserved as - far as possible (similarly to what 'cp -p SRC DEST' would do). - Exit upon failure. */ -extern void xcopy_file_preserving (const char *src_filename, const char *dest_filename); - -/* Old name of xcopy_file_preserving. */ -_GL_ATTRIBUTE_DEPRECATED void copy_file_preserving (const char *src_filename, const char *dest_filename); - - -/* Copy a regular file: from src_filename to dest_filename. - The source file is assumed to be not confidential. - Modification times, owner, group and access permissions of src_filename - are *not* copied over to dest_filename (similarly to what 'cat SRC > DEST' - would do; if DEST already exists, this is the same as what 'cp SRC DEST' - would do.) - Return 0 if successful, otherwise set errno and return one of the error - codes above. */ -extern int copy_file_to (const char *src_filename, const char *dest_filename); - -/* Copy a regular file: from src_filename to dest_filename. - The source file is assumed to be not confidential. - Modification times, owner, group and access permissions of src_filename - are *not* copied over to dest_filename (similarly to what 'cat SRC > DEST' - would do; if DEST already exists, this is the same as what 'cp SRC DEST' - would do.) - Exit upon failure. */ -extern void xcopy_file_to (const char *src_filename, const char *dest_filename); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/count-leading-zeros.h b/include/libgnulib/count-leading-zeros.h deleted file mode 100755 index a4b68c2..0000000 --- a/include/libgnulib/count-leading-zeros.h +++ /dev/null @@ -1,140 +0,0 @@ -/* count-leading-zeros.h -- counts the number of leading 0 bits in a word. - Copyright (C) 2012-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake. */ - -#ifndef COUNT_LEADING_ZEROS_H -#define COUNT_LEADING_ZEROS_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef COUNT_LEADING_ZEROS_INLINE -# define COUNT_LEADING_ZEROS_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Assuming the GCC builtin is BUILTIN and the MSC builtin is MSC_BUILTIN, - expand to code that computes the number of leading zeros of the local - variable 'x' of type TYPE (an unsigned integer type) and return it - from the current function. */ -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) \ - || (__clang_major__ >= 4) -# define COUNT_LEADING_ZEROS(BUILTIN, MSC_BUILTIN, TYPE) \ - return x ? BUILTIN (x) : CHAR_BIT * sizeof x; -#elif _MSC_VER -extern unsigned char _BitScanReverse (unsigned long *, unsigned long); -# pragma intrinsic (_BitScanReverse) -# if defined _M_X64 -extern unsigned char _BitScanReverse64 (unsigned long *, unsigned long long); -# pragma intrinsic (_BitScanReverse64) -# endif -# define COUNT_LEADING_ZEROS(BUILTIN, MSC_BUILTIN, TYPE) \ - do \ - { \ - unsigned long result; \ - if (MSC_BUILTIN (&result, x)) \ - return CHAR_BIT * sizeof x - 1 - result; \ - return CHAR_BIT * sizeof x; \ - } \ - while (0) -#else -# define COUNT_LEADING_ZEROS(BUILTIN, MSC_BUILTIN, TYPE) \ - do \ - { \ - int count; \ - unsigned int leading_32; \ - if (! x) \ - return CHAR_BIT * sizeof x; \ - for (count = 0; \ - (leading_32 = ((x >> (sizeof (TYPE) * CHAR_BIT - 32)) \ - & 0xffffffffU), \ - count < CHAR_BIT * sizeof x - 32 && !leading_32); \ - count += 32) \ - x = x << 31 << 1; \ - return count + count_leading_zeros_32 (leading_32); \ - } \ - while (0) - -/* Compute and return the number of leading zeros in X, - where 0 < X < 2**32. */ -COUNT_LEADING_ZEROS_INLINE int -count_leading_zeros_32 (unsigned int x) -{ - /* - */ - static const char de_Bruijn_lookup[32] = { - 31, 22, 30, 21, 18, 10, 29, 2, 20, 17, 15, 13, 9, 6, 28, 1, - 23, 19, 11, 3, 16, 14, 7, 24, 12, 4, 8, 25, 5, 26, 27, 0 - }; - - x |= x >> 1; - x |= x >> 2; - x |= x >> 4; - x |= x >> 8; - x |= x >> 16; - return de_Bruijn_lookup[((x * 0x07c4acddU) & 0xffffffffU) >> 27]; -} -#endif - -/* Compute and return the number of leading zeros in X. */ -COUNT_LEADING_ZEROS_INLINE int -count_leading_zeros (unsigned int x) -{ - COUNT_LEADING_ZEROS (__builtin_clz, _BitScanReverse, unsigned int); -} - -/* Compute and return the number of leading zeros in X. */ -COUNT_LEADING_ZEROS_INLINE int -count_leading_zeros_l (unsigned long int x) -{ - COUNT_LEADING_ZEROS (__builtin_clzl, _BitScanReverse, unsigned long int); -} - -/* Compute and return the number of leading zeros in X. */ -COUNT_LEADING_ZEROS_INLINE int -count_leading_zeros_ll (unsigned long long int x) -{ -#if (defined _MSC_VER && !defined __clang__) && !defined _M_X64 - /* 32-bit MSVC does not have _BitScanReverse64, only _BitScanReverse. */ - unsigned long result; - if (_BitScanReverse (&result, (unsigned long) (x >> 32))) - return CHAR_BIT * sizeof x - 1 - 32 - result; - if (_BitScanReverse (&result, (unsigned long) x)) - return CHAR_BIT * sizeof x - 1 - result; - return CHAR_BIT * sizeof x; -#else - COUNT_LEADING_ZEROS (__builtin_clzll, _BitScanReverse64, - unsigned long long int); -#endif -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* COUNT_LEADING_ZEROS_H */ diff --git a/include/libgnulib/count-one-bits.h b/include/libgnulib/count-one-bits.h deleted file mode 100755 index 24bf8cc..0000000 --- a/include/libgnulib/count-one-bits.h +++ /dev/null @@ -1,169 +0,0 @@ -/* count-one-bits.h -- counts the number of 1-bits in a word. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Ben Pfaff. */ - -#ifndef COUNT_ONE_BITS_H -#define COUNT_ONE_BITS_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef COUNT_ONE_BITS_INLINE -# define COUNT_ONE_BITS_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Assuming the GCC builtin is GCC_BUILTIN and the MSC builtin is MSC_BUILTIN, - expand to code that computes the number of 1-bits of the local - variable 'x' of type TYPE (an unsigned integer type) and return it - from the current function. */ -#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) \ - || (__clang_major__ >= 4) -# define COUNT_ONE_BITS(GCC_BUILTIN, MSC_BUILTIN, TYPE) \ - return GCC_BUILTIN (x) -#else - -/* Compute and return the number of 1-bits set in the least - significant 32 bits of X. */ -COUNT_ONE_BITS_INLINE int -count_one_bits_32 (unsigned int x) -{ - x = ((x & 0xaaaaaaaaU) >> 1) + (x & 0x55555555U); - x = ((x & 0xccccccccU) >> 2) + (x & 0x33333333U); - x = (x >> 16) + (x & 0xffff); - x = ((x & 0xf0f0) >> 4) + (x & 0x0f0f); - return (x >> 8) + (x & 0x00ff); -} - -/* Expand to code that computes the number of 1-bits of the local - variable 'x' of type TYPE (an unsigned integer type) and return it - from the current function. */ -# define COUNT_ONE_BITS_GENERIC(TYPE) \ - do \ - { \ - int count = 0; \ - int bits; \ - for (bits = 0; bits < sizeof (TYPE) * CHAR_BIT; bits += 32) \ - { \ - count += count_one_bits_32 (x); \ - x = x >> 31 >> 1; \ - } \ - return count; \ - } \ - while (0) - -# if 1500 <= _MSC_VER && (defined _M_IX86 || defined _M_X64) - -/* While gcc falls back to its own generic code if the machine - on which it's running doesn't support popcount, with Microsoft's - compiler we need to detect and fallback ourselves. */ - -# if 0 -# include -# else - /* Don't pollute the namespace with too many MSVC intrinsics. */ -extern void __cpuid (int[4], int); -# pragma intrinsic (__cpuid) -extern unsigned int __popcnt (unsigned int); -# pragma intrinsic (__popcnt) -# if defined _M_X64 -extern unsigned long long __popcnt64 (unsigned long long); -# pragma intrinsic (__popcnt64) -# endif -# endif - -# if !defined _M_X64 -static inline __popcnt64 (unsigned long long x) -{ - return __popcnt ((unsigned int) (x >> 32)) + __popcnt ((unsigned int) x); -} -# endif - -/* Return nonzero if popcount is supported. */ - -/* 1 if supported, 0 if not supported, -1 if unknown. */ -extern int popcount_support; - -COUNT_ONE_BITS_INLINE int -popcount_supported (void) -{ - if (popcount_support < 0) - { - /* Do as described in - */ - int cpu_info[4]; - __cpuid (cpu_info, 1); - popcount_support = (cpu_info[2] >> 23) & 1; - } - return popcount_support; -} - -# define COUNT_ONE_BITS(GCC_BUILTIN, MSC_BUILTIN, TYPE) \ - do \ - { \ - if (popcount_supported ()) \ - return MSC_BUILTIN (x); \ - else \ - COUNT_ONE_BITS_GENERIC (TYPE); \ - } \ - while (0) - -# else - -# define COUNT_ONE_BITS(GCC_BUILTIN, MSC_BUILTIN, TYPE) \ - COUNT_ONE_BITS_GENERIC (TYPE) - -# endif -#endif - -/* Compute and return the number of 1-bits set in X. */ -COUNT_ONE_BITS_INLINE int -count_one_bits (unsigned int x) -{ - COUNT_ONE_BITS (__builtin_popcount, __popcnt, unsigned int); -} - -/* Compute and return the number of 1-bits set in X. */ -COUNT_ONE_BITS_INLINE int -count_one_bits_l (unsigned long int x) -{ - COUNT_ONE_BITS (__builtin_popcountl, __popcnt, unsigned long int); -} - -/* Compute and return the number of 1-bits set in X. */ -COUNT_ONE_BITS_INLINE int -count_one_bits_ll (unsigned long long int x) -{ - COUNT_ONE_BITS (__builtin_popcountll, __popcnt64, unsigned long long int); -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* COUNT_ONE_BITS_H */ diff --git a/include/libgnulib/count-trailing-zeros.h b/include/libgnulib/count-trailing-zeros.h deleted file mode 100755 index 82de873..0000000 --- a/include/libgnulib/count-trailing-zeros.h +++ /dev/null @@ -1,130 +0,0 @@ -/* count-trailing-zeros.h -- counts the number of trailing 0 bits in a word. - Copyright 2013-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef COUNT_TRAILING_ZEROS_H -#define COUNT_TRAILING_ZEROS_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef COUNT_TRAILING_ZEROS_INLINE -# define COUNT_TRAILING_ZEROS_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Assuming the GCC builtin is BUILTIN and the MSC builtin is MSC_BUILTIN, - expand to code that computes the number of trailing zeros of the local - variable 'x' of type TYPE (an unsigned integer type) and return it - from the current function. */ -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) \ - || (__clang_major__ >= 4) -# define COUNT_TRAILING_ZEROS(BUILTIN, MSC_BUILTIN, TYPE) \ - return x ? BUILTIN (x) : CHAR_BIT * sizeof x; -#elif _MSC_VER -extern unsigned char _BitScanForward (unsigned long *, unsigned long); -# pragma intrinsic (_BitScanForward) -# if defined _M_X64 -extern unsigned char _BitScanForward64 (unsigned long *, unsigned long long); -# pragma intrinsic (_BitScanForward64) -# endif -# define COUNT_TRAILING_ZEROS(BUILTIN, MSC_BUILTIN, TYPE) \ - do \ - { \ - unsigned long result; \ - return MSC_BUILTIN (&result, x) ? result : CHAR_BIT * sizeof x; \ - } \ - while (0) -#else -# define COUNT_TRAILING_ZEROS(BUILTIN, MSC_BUILTIN, TYPE) \ - do \ - { \ - int count = 0; \ - if (! x) \ - return CHAR_BIT * sizeof x; \ - for (count = 0; \ - (count < CHAR_BIT * sizeof x - 32 \ - && ! (x & 0xffffffffU)); \ - count += 32) \ - x = x >> 31 >> 1; \ - return count + count_trailing_zeros_32 (x); \ - } \ - while (0) - -/* Compute and return the number of trailing zeros in the least - significant 32 bits of X. One of these bits must be nonzero. */ -COUNT_TRAILING_ZEROS_INLINE int -count_trailing_zeros_32 (unsigned int x) -{ - /* - */ - static const char de_Bruijn_lookup[32] = { - 0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, - 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9 - }; - return de_Bruijn_lookup[(((x & -x) * 0x077cb531U) & 0xffffffffU) >> 27]; -} -#endif - -/* Compute and return the number of trailing zeros in X. */ -COUNT_TRAILING_ZEROS_INLINE int -count_trailing_zeros (unsigned int x) -{ - COUNT_TRAILING_ZEROS (__builtin_ctz, _BitScanForward, unsigned int); -} - -/* Compute and return the number of trailing zeros in X. */ -COUNT_TRAILING_ZEROS_INLINE int -count_trailing_zeros_l (unsigned long int x) -{ - COUNT_TRAILING_ZEROS (__builtin_ctzl, _BitScanForward, unsigned long int); -} - -/* Compute and return the number of trailing zeros in X. */ -COUNT_TRAILING_ZEROS_INLINE int -count_trailing_zeros_ll (unsigned long long int x) -{ -#if (defined _MSC_VER && !defined __clang__) && !defined _M_X64 - /* 32-bit MSVC does not have _BitScanForward64, only _BitScanForward. */ - unsigned long result; - if (_BitScanForward (&result, (unsigned long) x)) - return result; - if (_BitScanForward (&result, (unsigned long) (x >> 32))) - return result + 32; - return CHAR_BIT * sizeof x; -#else - COUNT_TRAILING_ZEROS (__builtin_ctzll, _BitScanForward64, - unsigned long long int); -#endif -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/crc.h b/include/libgnulib/crc.h deleted file mode 100755 index 2754126..0000000 --- a/include/libgnulib/crc.h +++ /dev/null @@ -1,60 +0,0 @@ -/* crc.h -- cyclic redundancy checks - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Simon Josefsson. */ - -#ifndef CRC_H -#define CRC_H 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compute CRC-32 value of LEN bytes long BUF, and return it. */ -extern uint32_t crc32 (const char *buf, size_t len) _GL_ATTRIBUTE_PURE; - -/* Incrementally update CRC-32 value CRC using LEN bytes long BUF. In - the first call, use 0 as the value for CRC. Return the updated - CRC-32 value. */ -extern uint32_t crc32_update (uint32_t crc, const char *buf, size_t len) - _GL_ATTRIBUTE_PURE; - -/* Compute modified-CRC-32 value of LEN bytes long BUF, and return it. - The "modification" is to avoid the initial and final XOR operation. - Due to historic implementation errors, this variant is sometimes - used (i.e., in RFC 3961). */ -extern uint32_t crc32_no_xor (const char *buf, size_t len) - _GL_ATTRIBUTE_PURE; - -/* Incrementally update modified-CRC-32 value CRC using LEN bytes long - BUF. In the first call, use 0 as the value for CRC. Return the - updated modified-CRC-32 value. The "modification" is to avoid the - initial and final XOR operation. Due to historic implementation - errors, this variant is sometimes used (i.e., in RFC 3961). */ -extern uint32_t -crc32_update_no_xor (uint32_t crc, const char *buf, size_t len) - _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - -#endif /* CRC_H */ diff --git a/include/libgnulib/csharpcomp.h b/include/libgnulib/csharpcomp.h deleted file mode 100755 index 4311aa1..0000000 --- a/include/libgnulib/csharpcomp.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Compile a C# program. - Copyright (C) 2003, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -#ifndef _CSHARPCOMP_H -#define _CSHARPCOMP_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compile a set of C# source files to bytecode. - sources is an array of source file names, including resource files. - libdirs is a list of directories to be searched for libraries. - libraries is a list of libraries on which the program depends. - output_file is the name of the output file; it should end in .exe or .dll. - If verbose, the command to be executed will be printed. - Return false if OK, true on error. */ -extern bool compile_csharp_class (const char * const *sources, - unsigned int sources_count, - const char * const *libdirs, - unsigned int libdirs_count, - const char * const *libraries, - unsigned int libraries_count, - const char *output_file, - bool optimize, bool debug, - bool verbose); - - -#ifdef __cplusplus -} -#endif - -#endif /* _CSHARPCOMP_H */ diff --git a/include/libgnulib/csharpexec.h b/include/libgnulib/csharpexec.h deleted file mode 100755 index 96b0dcf..0000000 --- a/include/libgnulib/csharpexec.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Execute a C# program. - Copyright (C) 2003, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -#ifndef _CSHARPEXEC_H -#define _CSHARPEXEC_H - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef bool execute_fn (const char *progname, - const char *prog_path, const char * const *prog_argv, - void *private_data); - -/* Execute a C# program. - assembly_path is the assembly's pathname (= program name with .exe). - libdirs is a list of directories to be searched for libraries. - args is a NULL terminated list of arguments to be passed to the program. - If verbose, the command to be executed will be printed. - Then the command is passed to the execute function together with the - private_data argument. This function returns false if OK, true on error. - Return false if OK, true on error. - If quiet, error messages will not be printed. */ -extern bool execute_csharp_program (const char *assembly_path, - const char * const *libdirs, - unsigned int libdirs_count, - const char * const *args, - bool verbose, bool quiet, - execute_fn *executer, void *private_data); - - -#ifdef __cplusplus -} -#endif - -#endif /* _CSHARPEXEC_H */ diff --git a/include/libgnulib/cycle-check.h b/include/libgnulib/cycle-check.h deleted file mode 100755 index d0e3d85..0000000 --- a/include/libgnulib/cycle-check.h +++ /dev/null @@ -1,61 +0,0 @@ -/* help detect directory cycles efficiently - - Copyright (C) 2003-2004, 2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering */ - -#ifndef CYCLE_CHECK_H -#define CYCLE_CHECK_H 1 - -#include -#include "dev-ino.h" -#include "same-inode.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -struct cycle_check_state -{ - struct dev_ino dev_ino; - uintmax_t chdir_counter; - int magic; -}; - -void cycle_check_init (struct cycle_check_state *state); -bool cycle_check (struct cycle_check_state *state, struct stat const *sb); - -#define CYCLE_CHECK_REFLECT_CHDIR_UP(State, SB_dir, SB_subdir) \ - do \ - { \ - /* You must call cycle_check at least once before using this macro. */ \ - if ((State)->chdir_counter == 0) \ - abort (); \ - if (SAME_INODE ((State)->dev_ino, SB_subdir)) \ - { \ - (State)->dev_ino.st_dev = (SB_dir).st_dev; \ - (State)->dev_ino.st_ino = (SB_dir).st_ino; \ - } \ - } \ - while (0) - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/cygpath.h b/include/libgnulib/cygpath.h deleted file mode 100755 index 0843347..0000000 --- a/include/libgnulib/cygpath.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Convert file names between Cygwin syntax and Windows syntax. - Copyright (C) 2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* Written by Bruno Haible , 2024. */ - -#ifndef _CYGPATH_H -#define _CYGPATH_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* On Cygwin, this function converts a file name from Cygwin syntax to - native Windows syntax, like 'cygpath -w' does. - Returns a freshly allocated file name. - On the other platforms, it returns a freshly allocated copy of the - argument file name. */ -extern char *cygpath_w (const char *filename); - -#ifdef __cplusplus -} -#endif - -#endif /* _CYGPATH_H */ diff --git a/include/libgnulib/des.h b/include/libgnulib/des.h deleted file mode 100755 index b8057a4..0000000 --- a/include/libgnulib/des.h +++ /dev/null @@ -1,128 +0,0 @@ -/* des.h --- DES cipher implementation. - * Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc. - * - * This file 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 file 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 program. If not, see . - * - */ - -/* Adapted for gnulib by Simon Josefsson, based on Libgcrypt. */ - -#ifndef DES_H -#define DES_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* - * Encryption/Decryption context of DES - */ -typedef struct -{ - uint32_t encrypt_subkeys[32]; - uint32_t decrypt_subkeys[32]; -} gl_des_ctx; - -/* - * Encryption/Decryption context of Triple-DES - */ -typedef struct -{ - uint32_t encrypt_subkeys[96]; - uint32_t decrypt_subkeys[96]; -} gl_3des_ctx; - -/* Check whether the 8 byte key is weak. Does not check the parity - * bits of the key but simple ignore them. */ -extern bool -gl_des_is_weak_key (const char * key); - -/* - * DES - * --- - */ - -/* Fill a DES context CTX with subkeys calculated from 64bit KEY. - * Does not check parity bits, but simply ignore them. Does not check - * for weak keys. */ -extern void -gl_des_setkey (gl_des_ctx *ctx, const char * key); - -/* Fill a DES context CTX with subkeys calculated from 64bit KEY, with - * weak key checking. Does not check parity bits, but simply ignore - * them. */ -extern bool -gl_des_makekey (gl_des_ctx *ctx, const char * key, size_t keylen); - -/* Electronic Codebook Mode DES encryption/decryption of data - * according to 'mode'. */ -extern void -gl_des_ecb_crypt (gl_des_ctx *ctx, const char * from, char * to, int mode); - -#define gl_des_ecb_encrypt(ctx, from, to) gl_des_ecb_crypt(ctx, from, to, 0) -#define gl_des_ecb_decrypt(ctx, from, to) gl_des_ecb_crypt(ctx, from, to, 1) - -/* Triple-DES - * ---------- - */ - -/* Fill a Triple-DES context CTX with subkeys calculated from two - * 64bit keys in KEY1 and KEY2. Does not check the parity bits of the - * keys, but simply ignore them. Does not check for weak keys. */ -extern void -gl_3des_set2keys (gl_3des_ctx *ctx, - const char * key1, - const char * key2); - -/* - * Fill a Triple-DES context CTX with subkeys calculated from three - * 64bit keys in KEY1, KEY2 and KEY3. Does not check the parity bits - * of the keys, but simply ignore them. Does not check for weak - * keys. */ -extern void -gl_3des_set3keys (gl_3des_ctx *ctx, - const char * key1, - const char * key2, - const char * key3); - -/* Fill a Triple-DES context CTX with subkeys calculated from three - * concatenated 64bit keys in KEY, with weak key checking. Does not - * check the parity bits of the keys, but simply ignore them. */ -extern bool -gl_3des_makekey (gl_3des_ctx *ctx, - const char * key, - size_t keylen); - -/* Electronic Codebook Mode Triple-DES encryption/decryption of data - * according to 'mode'. Sometimes this mode is named 'EDE' mode - * (Encryption-Decryption-Encryption). */ -extern void -gl_3des_ecb_crypt (gl_3des_ctx *ctx, - const char * from, - char * to, - int mode); - -#define gl_3des_ecb_encrypt(ctx, from, to) gl_3des_ecb_crypt(ctx,from,to,0) -#define gl_3des_ecb_decrypt(ctx, from, to) gl_3des_ecb_crypt(ctx,from,to,1) - - -#ifdef __cplusplus -} -#endif - -#endif /* DES_H */ diff --git a/include/libgnulib/dev-ino.h b/include/libgnulib/dev-ino.h deleted file mode 100755 index 38cb88d..0000000 --- a/include/libgnulib/dev-ino.h +++ /dev/null @@ -1,41 +0,0 @@ -/* A simple (device, inode) struct. - Copyright (C) 2003-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2003. */ - -#ifndef DEV_INO_H -#define DEV_INO_H 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -struct dev_ino -{ - ino_t st_ino; - dev_t st_dev; -}; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/dfa.h b/include/libgnulib/dfa.h deleted file mode 100755 index 4653add..0000000 --- a/include/libgnulib/dfa.h +++ /dev/null @@ -1,178 +0,0 @@ -/* dfa.h - declarations for GNU deterministic regexp compiler - Copyright (C) 1988, 1998, 2007, 2009-2024 Free Software Foundation, Inc. - - 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 3, 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, see . */ - -/* Written June, 1988 by Mike Haertel */ - -#ifndef DFA_H_ -#define DFA_H_ - -/* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "idx.h" -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct localeinfo; /* See localeinfo.h. */ - -/* Element of a list of strings, at least one of which is known to - appear in any R.E. matching the DFA. */ -struct dfamust -{ - bool exact; - bool begline; - bool endline; - char must[FLEXIBLE_ARRAY_MEMBER]; -}; - -/* The dfa structure. It is completely opaque. */ -struct dfa; - -/* Needed when Gnulib is not used. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# define _GL_ATTRIBUTE_MALLOC -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# define _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_RETURNS_NONNULL -#endif - -/* Entry points. */ - -/* Allocate a struct dfa. The struct dfa is completely opaque. - It should be initialized via dfasyntax or dfacopysyntax before other use. - The returned pointer should be passed directly to free() after - calling dfafree() on it. */ -extern struct dfa *dfaalloc (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* DFA options that can be ORed together, for dfasyntax's 4th arg. */ -enum - { - /* ^ and $ match only the start and end of data, and do not match - end-of-line within data. This is always false for grep, but - possibly true for other apps. */ - DFA_ANCHOR = 1 << 0, - - /* '\0' in data is end-of-line, instead of the traditional '\n'. */ - DFA_EOL_NUL = 1 << 1, - - /* Treat [:alpha:] etc. as an error at the top level, instead of - merely a warning. */ - DFA_CONFUSING_BRACKETS_ERROR = 1 << 2, - - /* Warn about stray backslashes before ordinary characters other - than ] and } which are special because even though POSIX - says \] and \} have undefined interpretation, platforms - reliably ignore those stray backlashes and warning about them - would likely cause more trouble than it's worth. */ - DFA_STRAY_BACKSLASH_WARN = 1 << 3, - - /* Warn about * appearing out of context at the start of an - expression or subexpression. */ - DFA_STAR_WARN = 1 << 4, - - /* Warn about +, ?, {...} appearing out of context at the start of - an expression or subexpression. */ - DFA_PLUS_WARN = 1 << 5, - }; - -/* Initialize or reinitialize a DFA. The arguments are: - 1. The DFA to operate on. - 2. Information about the current locale. - 3. Syntax bits described in regex.h. - 4. Additional DFA options described above. */ -extern void dfasyntax (struct dfa *, struct localeinfo const *, - reg_syntax_t, int); - -/* Initialize or reinitialize a DFA from an already-initialized DFA. */ -extern void dfacopysyntax (struct dfa *, struct dfa const *); - -/* Parse the given string of given length into the given struct dfa. */ -extern void dfaparse (char const *, idx_t, struct dfa *); - -struct dfamust; - -/* Free the storage held by the components of a struct dfamust. */ -extern void dfamustfree (struct dfamust *); - -/* Allocate and return a struct dfamust from a struct dfa that was - initialized by dfaparse and not yet given to dfacomp. */ -extern struct dfamust *dfamust (struct dfa const *) - _GL_ATTRIBUTE_DEALLOC (dfamustfree, 1); - -/* Compile the given string of the given length into the given struct dfa. - The last argument says whether to build a searching or an exact matcher. - A null first argument means the struct dfa has already been - initialized by dfaparse; the second argument is ignored. */ -extern void dfacomp (char const *, idx_t, struct dfa *, bool); - -/* Search through a buffer looking for a match to the given struct dfa. - Find the first occurrence of a string matching the regexp in the - buffer, and the shortest possible version thereof. Return a pointer to - the first character after the match, or NULL if none is found. BEGIN - points to the beginning of the buffer, and END points to the first byte - after its end. Note however that we store a sentinel byte (usually - newline) in *END, so the actual buffer must be one byte longer. - When ALLOW_NL is true, newlines may appear in the matching string. - If COUNT is non-NULL, increment *COUNT once for each newline processed. - Finally, if BACKREF is non-NULL set *BACKREF to indicate whether we - encountered a back-reference. The caller can use this to decide - whether to fall back on a backtracking matcher. */ -extern char *dfaexec (struct dfa *d, char const *begin, char *end, - bool allow_nl, idx_t *count, bool *backref); - -/* Return a superset for D. The superset matches everything that D - matches, along with some other strings (though the latter should be - rare, for efficiency reasons). Return a null pointer if no useful - superset is available. */ -extern struct dfa *dfasuperset (struct dfa const *d) _GL_ATTRIBUTE_PURE; - -/* The DFA is likely to be fast. */ -extern bool dfaisfast (struct dfa const *) _GL_ATTRIBUTE_PURE; - -/* Return true if every construct in D is supported by this DFA matcher. */ -extern bool dfasupported (struct dfa const *) _GL_ATTRIBUTE_PURE; - -/* Free the storage held by the components of a struct dfa. */ -extern void dfafree (struct dfa *); - -/* Error handling. */ - -/* dfawarn() is called by the regexp routines whenever a regex is compiled - that likely doesn't do what the user wanted. It takes a single - argument, a NUL-terminated string describing the situation. The user - must supply a dfawarn. */ -extern void dfawarn (const char *); - -/* dfaerror() is called by the regexp routines whenever an error occurs. It - takes a single argument, a NUL-terminated string describing the error. - The user must supply a dfaerror. */ -extern _Noreturn void dfaerror (const char *); - -#ifdef __cplusplus -} -#endif - -#endif /* dfa.h */ diff --git a/include/libgnulib/di-set.h b/include/libgnulib/di-set.h deleted file mode 100755 index 215532f..0000000 --- a/include/libgnulib/di-set.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Manipulate sets of device-inode pairs efficiently. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2010. */ - -#ifndef _GL_DI_SET_H -#define _GL_DI_SET_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -struct di_set; - -void di_set_free (struct di_set *) _GL_ATTRIBUTE_NONNULL ((1)); - -struct di_set *di_set_alloc (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (di_set_free, 1); - -int di_set_insert (struct di_set *, dev_t, ino_t) _GL_ATTRIBUTE_NONNULL ((1)); - -int di_set_lookup (struct di_set *dis, dev_t dev, ino_t ino) - _GL_ATTRIBUTE_NONNULL ((1)); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/diffseq.h b/include/libgnulib/diffseq.h deleted file mode 100755 index c9369e4..0000000 --- a/include/libgnulib/diffseq.h +++ /dev/null @@ -1,574 +0,0 @@ -/* Analyze differences between two vectors. - - Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - - -/* The basic idea is to consider two vectors as similar if, when - transforming the first vector into the second vector through a - sequence of edits (inserts and deletes of one element each), - this sequence is short - or equivalently, if the ordered list - of elements that are untouched by these edits is long. For a - good introduction to the subject, read about the "Levenshtein - distance" in Wikipedia. - - The basic algorithm is described in: - "An O(ND) Difference Algorithm and its Variations", Eugene W. Myers, - Algorithmica Vol. 1, 1986, pp. 251-266, - . - See especially section 4.2, which describes the variation used below. - - The basic algorithm was independently discovered as described in: - "Algorithms for Approximate String Matching", Esko Ukkonen, - Information and Control Vol. 64, 1985, pp. 100-118, - . - - Unless the 'find_minimal' flag is set, this code uses the TOO_EXPENSIVE - heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N) - at the price of producing suboptimal output for large inputs with - many differences. */ - -/* Before including this file, you need to define: - ELEMENT The element type of the vectors being compared. - EQUAL A two-argument macro that tests two elements for - equality. - OFFSET A signed integer type sufficient to hold the - difference between two indices. Usually - something like ptrdiff_t. - OFFSET_MAX (Optional) The maximum value of OFFSET (e.g., - PTRDIFF_MAX). If omitted, it is inferred in a - way portable to the vast majority of C platforms, - as they lack padding bits. - EXTRA_CONTEXT_FIELDS Declarations of fields for 'struct context'. - NOTE_DELETE(ctxt, xoff) Record the removal of the object xvec[xoff]. - NOTE_INSERT(ctxt, yoff) Record the insertion of the object yvec[yoff]. - NOTE_ORDERED (Optional) A boolean expression saying that - NOTE_DELETE and NOTE_INSERT calls must be - issued in offset order. - EARLY_ABORT(ctxt) (Optional) A boolean expression that triggers an - early abort of the computation. - USE_HEURISTIC (Optional) Define if you want to support the - heuristic for large vectors. - - It is also possible to use this file with abstract arrays. In this case, - xvec and yvec are not represented in memory. They only exist conceptually. - In this case, the list of defines above is amended as follows: - ELEMENT Undefined. - EQUAL Undefined. - XVECREF_YVECREF_EQUAL(ctxt, xoff, yoff) - A three-argument macro: References xvec[xoff] and - yvec[yoff] and tests these elements for equality. - - Before including this file, you also need to include: - #include - #include "minmax.h" - */ - -/* Maximum value of type OFFSET. */ -#ifndef OFFSET_MAX -# define OFFSET_MAX \ - ((((OFFSET) 1 << (sizeof (OFFSET) * CHAR_BIT - 2)) - 1) * 2 + 1) -#endif - -/* Default to no early abort. */ -#ifndef EARLY_ABORT -# define EARLY_ABORT(ctxt) false -#endif - -#ifndef NOTE_ORDERED -# define NOTE_ORDERED false -#endif - -/* Suppress gcc's "...may be used before initialized" warnings, - generated by GCC versions up to at least GCC 14.2. - Likewise for gcc -fanalyzer's "use of uninitialized value" warnings. */ -#if _GL_GNUC_PREREQ (4, 7) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wmaybe-uninitialized" -# if _GL_GNUC_PREREQ (13, 0) -# pragma GCC diagnostic ignored "-Wanalyzer-use-of-uninitialized-value" -# endif -#endif - -/* - * Context of comparison operation. - */ -struct context -{ - #ifdef ELEMENT - /* Vectors being compared. */ - ELEMENT const *xvec; - ELEMENT const *yvec; - #endif - - /* Extra fields. */ - EXTRA_CONTEXT_FIELDS - - /* Vector, indexed by diagonal, containing 1 + the X coordinate of the point - furthest along the given diagonal in the forward search of the edit - matrix. */ - OFFSET *fdiag; - - /* Vector, indexed by diagonal, containing the X coordinate of the point - furthest along the given diagonal in the backward search of the edit - matrix. */ - OFFSET *bdiag; - - #ifdef USE_HEURISTIC - /* This corresponds to the diff --speed-large-files flag. With this - heuristic, for vectors with a constant small density of changes, - the algorithm is linear in the vector size. */ - bool heuristic; - #endif - - /* Edit scripts longer than this are too expensive to compute. */ - OFFSET too_expensive; - - /* Snakes bigger than this are considered "big". */ - #define SNAKE_LIMIT 20 -}; - -struct partition -{ - /* Midpoints of this partition. */ - OFFSET xmid; - OFFSET ymid; - - /* True if low half will be analyzed minimally. */ - bool lo_minimal; - - /* Likewise for high half. */ - bool hi_minimal; -}; - - -/* Find the midpoint of the shortest edit script for a specified portion - of the two vectors. - - Scan from the beginnings of the vectors, and simultaneously from the ends, - doing a breadth-first search through the space of edit-sequence. - When the two searches meet, we have found the midpoint of the shortest - edit sequence. - - If FIND_MINIMAL is true, find the minimal edit script regardless of - expense. Otherwise, if the search is too expensive, use heuristics to - stop the search and report a suboptimal answer. - - Set PART->(xmid,ymid) to the midpoint (XMID,YMID). The diagonal number - XMID - YMID equals the number of inserted elements minus the number - of deleted elements (counting only elements before the midpoint). - - Set PART->lo_minimal to true iff the minimal edit script for the - left half of the partition is known; similarly for PART->hi_minimal. - - This function assumes that the first elements of the specified portions - of the two vectors do not match, and likewise that the last elements do not - match. The caller must trim matching elements from the beginning and end - of the portions it is going to specify. - - If we return the "wrong" partitions, the worst this can do is cause - suboptimal diff output. It cannot cause incorrect diff output. */ - -static void -diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal, - struct partition *part, struct context *ctxt) -{ - OFFSET *const fd = ctxt->fdiag; /* Give the compiler a chance. */ - OFFSET *const bd = ctxt->bdiag; /* Additional help for the compiler. */ -#ifdef ELEMENT - ELEMENT const *const xv = ctxt->xvec; /* Still more help for the compiler. */ - ELEMENT const *const yv = ctxt->yvec; /* And more and more . . . */ - #define XREF_YREF_EQUAL(x,y) EQUAL (xv[x], yv[y]) -#else - #define XREF_YREF_EQUAL(x,y) XVECREF_YVECREF_EQUAL (ctxt, x, y) -#endif - const OFFSET dmin = xoff - ylim; /* Minimum valid diagonal. */ - const OFFSET dmax = xlim - yoff; /* Maximum valid diagonal. */ - const OFFSET fmid = xoff - yoff; /* Center diagonal of top-down search. */ - const OFFSET bmid = xlim - ylim; /* Center diagonal of bottom-up search. */ - OFFSET fmin = fmid; - OFFSET fmax = fmid; /* Limits of top-down search. */ - OFFSET bmin = bmid; - OFFSET bmax = bmid; /* Limits of bottom-up search. */ - OFFSET c; /* Cost. */ - bool odd = (fmid - bmid) & 1; /* True if southeast corner is on an odd - diagonal with respect to the northwest. */ - - fd[fmid] = xoff; - bd[bmid] = xlim; - - for (c = 1;; ++c) - { - OFFSET d; /* Active diagonal. */ - bool big_snake = false; - - /* Extend the top-down search by an edit step in each diagonal. */ - if (fmin > dmin) - fd[--fmin - 1] = -1; - else - ++fmin; - if (fmax < dmax) - fd[++fmax + 1] = -1; - else - --fmax; - for (d = fmax; d >= fmin; d -= 2) - { - OFFSET x; - OFFSET y; - OFFSET tlo = fd[d - 1]; - OFFSET thi = fd[d + 1]; - OFFSET x0 = tlo < thi ? thi : tlo + 1; - - for (x = x0, y = x0 - d; - x < xlim && y < ylim && XREF_YREF_EQUAL (x, y); - x++, y++) - continue; - if (x - x0 > SNAKE_LIMIT) - big_snake = true; - fd[d] = x; - if (odd && bmin <= d && d <= bmax && bd[d] <= x) - { - part->xmid = x; - part->ymid = y; - part->lo_minimal = part->hi_minimal = true; - return; - } - } - - /* Similarly extend the bottom-up search. */ - if (bmin > dmin) - bd[--bmin - 1] = OFFSET_MAX; - else - ++bmin; - if (bmax < dmax) - bd[++bmax + 1] = OFFSET_MAX; - else - --bmax; - for (d = bmax; d >= bmin; d -= 2) - { - OFFSET x; - OFFSET y; - OFFSET tlo = bd[d - 1]; - OFFSET thi = bd[d + 1]; - OFFSET x0 = tlo < thi ? tlo : thi - 1; - - for (x = x0, y = x0 - d; - xoff < x && yoff < y && XREF_YREF_EQUAL (x - 1, y - 1); - x--, y--) - continue; - if (x0 - x > SNAKE_LIMIT) - big_snake = true; - bd[d] = x; - if (!odd && fmin <= d && d <= fmax && x <= fd[d]) - { - part->xmid = x; - part->ymid = y; - part->lo_minimal = part->hi_minimal = true; - return; - } - } - - if (find_minimal) - continue; - -#ifdef USE_HEURISTIC - bool heuristic = ctxt->heuristic; -#else - bool heuristic = false; -#endif - - /* Heuristic: check occasionally for a diagonal that has made lots - of progress compared with the edit distance. If we have any - such, find the one that has made the most progress and return it - as if it had succeeded. - - With this heuristic, for vectors with a constant small density - of changes, the algorithm is linear in the vector size. */ - - if (200 < c && big_snake && heuristic) - { - { - OFFSET best = 0; - - for (d = fmax; d >= fmin; d -= 2) - { - OFFSET dd = d - fmid; - OFFSET x = fd[d]; - OFFSET y = x - d; - OFFSET v = (x - xoff) * 2 - dd; - - if (v > 12 * (c + (dd < 0 ? -dd : dd))) - { - if (v > best - && xoff + SNAKE_LIMIT <= x && x < xlim - && yoff + SNAKE_LIMIT <= y && y < ylim) - { - /* We have a good enough best diagonal; now insist - that it end with a significant snake. */ - int k; - - for (k = 1; XREF_YREF_EQUAL (x - k, y - k); k++) - if (k == SNAKE_LIMIT) - { - best = v; - part->xmid = x; - part->ymid = y; - break; - } - } - } - } - if (best > 0) - { - part->lo_minimal = true; - part->hi_minimal = false; - return; - } - } - - { - OFFSET best = 0; - - for (d = bmax; d >= bmin; d -= 2) - { - OFFSET dd = d - bmid; - OFFSET x = bd[d]; - OFFSET y = x - d; - OFFSET v = (xlim - x) * 2 + dd; - - if (v > 12 * (c + (dd < 0 ? -dd : dd))) - { - if (v > best - && xoff < x && x <= xlim - SNAKE_LIMIT - && yoff < y && y <= ylim - SNAKE_LIMIT) - { - /* We have a good enough best diagonal; now insist - that it end with a significant snake. */ - int k; - - for (k = 0; XREF_YREF_EQUAL (x + k, y + k); k++) - if (k == SNAKE_LIMIT - 1) - { - best = v; - part->xmid = x; - part->ymid = y; - break; - } - } - } - } - if (best > 0) - { - part->lo_minimal = false; - part->hi_minimal = true; - return; - } - } - } - - /* Heuristic: if we've gone well beyond the call of duty, give up - and report halfway between our best results so far. */ - if (c >= ctxt->too_expensive) - { - /* Find forward diagonal that maximizes X + Y. */ - OFFSET fxybest = -1, fxbest; - for (d = fmax; d >= fmin; d -= 2) - { - OFFSET x = MIN (fd[d], xlim); - OFFSET y = x - d; - if (ylim < y) - { - x = ylim + d; - y = ylim; - } - if (fxybest < x + y) - { - fxybest = x + y; - fxbest = x; - } - } - - /* Find backward diagonal that minimizes X + Y. */ - OFFSET bxybest = OFFSET_MAX, bxbest; - for (d = bmax; d >= bmin; d -= 2) - { - OFFSET x = MAX (xoff, bd[d]); - OFFSET y = x - d; - if (y < yoff) - { - x = yoff + d; - y = yoff; - } - if (x + y < bxybest) - { - bxybest = x + y; - bxbest = x; - } - } - - /* Use the better of the two diagonals. */ - if ((xlim + ylim) - bxybest < fxybest - (xoff + yoff)) - { - part->xmid = fxbest; - part->ymid = fxybest - fxbest; - part->lo_minimal = true; - part->hi_minimal = false; - } - else - { - part->xmid = bxbest; - part->ymid = bxybest - bxbest; - part->lo_minimal = false; - part->hi_minimal = true; - } - return; - } - } - #undef XREF_YREF_EQUAL -} - - -/* Compare in detail contiguous subsequences of the two vectors - which are known, as a whole, to match each other. - - The subsequence of vector 0 is [XOFF, XLIM) and likewise for vector 1. - - Note that XLIM, YLIM are exclusive bounds. All indices into the vectors - are origin-0. - - If FIND_MINIMAL, find a minimal difference no matter how - expensive it is. - - The results are recorded by invoking NOTE_DELETE and NOTE_INSERT. - - Return false if terminated normally, or true if terminated through early - abort. */ - -static bool -compareseq (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, - bool find_minimal, struct context *ctxt) -{ -#ifdef ELEMENT - ELEMENT const *xv = ctxt->xvec; /* Help the compiler. */ - ELEMENT const *yv = ctxt->yvec; - #define XREF_YREF_EQUAL(x,y) EQUAL (xv[x], yv[y]) -#else - #define XREF_YREF_EQUAL(x,y) XVECREF_YVECREF_EQUAL (ctxt, x, y) -#endif - - while (true) - { - /* Slide down the bottom initial diagonal. */ - while (xoff < xlim && yoff < ylim && XREF_YREF_EQUAL (xoff, yoff)) - { - xoff++; - yoff++; - } - - /* Slide up the top initial diagonal. */ - while (xoff < xlim && yoff < ylim && XREF_YREF_EQUAL (xlim - 1, ylim - 1)) - { - xlim--; - ylim--; - } - - /* Handle simple cases. */ - if (xoff == xlim) - { - while (yoff < ylim) - { - NOTE_INSERT (ctxt, yoff); - if (EARLY_ABORT (ctxt)) - return true; - yoff++; - } - break; - } - if (yoff == ylim) - { - while (xoff < xlim) - { - NOTE_DELETE (ctxt, xoff); - if (EARLY_ABORT (ctxt)) - return true; - xoff++; - } - break; - } - - struct partition part; - - /* Find a point of correspondence in the middle of the vectors. */ - diag (xoff, xlim, yoff, ylim, find_minimal, &part, ctxt); - - /* Use the partitions to split this problem into subproblems. */ - OFFSET xoff1, xlim1, yoff1, ylim1, xoff2, xlim2, yoff2, ylim2; - bool find_minimal1, find_minimal2; - if (!NOTE_ORDERED - && ((xlim + ylim) - (part.xmid + part.ymid) - < (part.xmid + part.ymid) - (xoff + yoff))) - { - /* The second problem is smaller and the caller doesn't - care about order, so do the second problem first to - lessen recursion. */ - xoff1 = part.xmid; xlim1 = xlim; - yoff1 = part.ymid; ylim1 = ylim; - find_minimal1 = part.hi_minimal; - - xoff2 = xoff; xlim2 = part.xmid; - yoff2 = yoff; ylim2 = part.ymid; - find_minimal2 = part.lo_minimal; - } - else - { - xoff1 = xoff; xlim1 = part.xmid; - yoff1 = yoff; ylim1 = part.ymid; - find_minimal1 = part.lo_minimal; - - xoff2 = part.xmid; xlim2 = xlim; - yoff2 = part.ymid; ylim2 = ylim; - find_minimal2 = part.hi_minimal; - } - - /* Recurse to do one subproblem. */ - bool early = compareseq (xoff1, xlim1, yoff1, ylim1, find_minimal1, ctxt); - if (early) - return early; - - /* Iterate to do the other subproblem. */ - xoff = xoff2; xlim = xlim2; - yoff = yoff2; ylim = ylim2; - find_minimal = find_minimal2; - } - - return false; - #undef XREF_YREF_EQUAL -} - -#if _GL_GNUC_PREREQ (4, 7) -# pragma GCC diagnostic pop -#endif - -#undef ELEMENT -#undef EQUAL -#undef OFFSET -#undef EXTRA_CONTEXT_FIELDS -#undef NOTE_DELETE -#undef NOTE_INSERT -#undef EARLY_ABORT -#undef USE_HEURISTIC -#undef XVECREF_YVECREF_EQUAL -#undef OFFSET_MAX diff --git a/include/libgnulib/dirchownmod.h b/include/libgnulib/dirchownmod.h deleted file mode 100755 index 5f4de46..0000000 --- a/include/libgnulib/dirchownmod.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Change the ownership and mode bits of a directory. - - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#include - -int dirchownmod (int, char const *, mode_t, uid_t, gid_t, mode_t, mode_t); diff --git a/include/libgnulib/dirent--.h b/include/libgnulib/dirent--.h deleted file mode 100755 index b3aa21d..0000000 --- a/include/libgnulib/dirent--.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Like dirent.h, but redefine some names to avoid glitches. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Eric Blake. */ - -#include "dirent-safer.h" - -#undef opendir -#define opendir opendir_safer -#define GNULIB_defined_opendir 1 diff --git a/include/libgnulib/dirent-private.h b/include/libgnulib/dirent-private.h deleted file mode 100755 index 335fbc3..0000000 --- a/include/libgnulib/dirent-private.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Private details of the DIR type. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _DIRENT_PRIVATE_H -#define _DIRENT_PRIVATE_H 1 - -#if HAVE_DIRENT_H /* mingw */ - -# undef DIR - -struct gl_directory -{ - /* File descriptor to close during closedir(). - Needed for implementing fdopendir(). */ - int fd_to_close; - /* Pointer to the real DIR. */ - DIR *real_dirp; -}; - -/* Restore definition from dirent.h. */ -# define DIR struct gl_directory - -#else /* MSVC */ - -# define WIN32_LEAN_AND_MEAN -# include - -/* Don't assume that UNICODE is not defined. */ -# undef WIN32_FIND_DATA -# define WIN32_FIND_DATA WIN32_FIND_DATAA - -struct gl_directory -{ - /* File descriptor to close during closedir(). - Needed for implementing fdopendir(). */ - int fd_to_close; - /* Status, or error code to produce in next readdir() call. - -2 means the end of the directory is already reached, - -1 means the entry was already filled by FindFirstFile, - 0 means the entry needs to be filled using FindNextFile. - A positive value is an error code. */ - int status; - /* Handle, reading the directory, at current position. */ - HANDLE current; - /* Found directory entry. */ - WIN32_FIND_DATA entry; - /* Argument to pass to FindFirstFile. It consists of the absolutized - directory name, followed by a directory separator and the wildcards. */ - char dir_name_mask[1]; -}; - -#endif - -#endif /* _DIRENT_PRIVATE_H */ diff --git a/include/libgnulib/dirent-safer.h b/include/libgnulib/dirent-safer.h deleted file mode 100755 index 2dba36d..0000000 --- a/include/libgnulib/dirent-safer.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Invoke dirent-like functions, but avoid some glitches. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Eric Blake. */ - -/* This file uses _GL_ATTRIBUTE_DEALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -DIR *opendir_safer (const char *name) - _GL_ATTRIBUTE_DEALLOC (closedir, 1); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/dirname.h b/include/libgnulib/dirname.h deleted file mode 100755 index 33935ba..0000000 --- a/include/libgnulib/dirname.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Take file names apart into directory and base names. - - Copyright (C) 1998, 2001, 2003-2006, 2009-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef DIRNAME_H_ -# define DIRNAME_H_ 1 - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_PURE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -# include -# include "filename.h" -# include "basename-lgpl.h" - -# ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if GNULIB_DIRNAME -char *base_name (char const *file) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -char *dir_name (char const *file) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -# endif - -char *mdir_name (char const *file) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE; - -bool strip_trailing_slashes (char *file); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* not DIRNAME_H_ */ diff --git a/include/libgnulib/dosname.h b/include/libgnulib/dosname.h deleted file mode 100755 index 6d8fa4c..0000000 --- a/include/libgnulib/dosname.h +++ /dev/null @@ -1,18 +0,0 @@ -/* File names on MS-DOS/Windows systems. - - Copyright (C) 2000-2001, 2004-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include "filename.h" diff --git a/include/libgnulib/dynarray.h b/include/libgnulib/dynarray.h deleted file mode 100755 index 8940e81..0000000 --- a/include/libgnulib/dynarray.h +++ /dev/null @@ -1,284 +0,0 @@ -/* Type-safe arrays which grow dynamically. - Copyright 2021-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert and Bruno Haible, 2021. */ - -#ifndef _GL_DYNARRAY_H -#define _GL_DYNARRAY_H - -/* Before including this file, you need to define: - - DYNARRAY_STRUCT - The struct tag of dynamic array to be defined. - - DYNARRAY_ELEMENT - The type name of the element type. Elements are copied - as if by memcpy, and can change address as the dynamic - array grows. - - DYNARRAY_PREFIX - The prefix of the functions which are defined. - - The following parameters are optional: - - DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (E) is evaluated to deallocate the - contents of elements. E is of type DYNARRAY_ELEMENT *. - - DYNARRAY_ELEMENT_INIT - DYNARRAY_ELEMENT_INIT (E) is evaluated to initialize a new - element. E is of type DYNARRAY_ELEMENT *. - If DYNARRAY_ELEMENT_FREE but not DYNARRAY_ELEMENT_INIT is - defined, new elements are automatically zero-initialized. - Otherwise, new elements have undefined contents. - - DYNARRAY_INITIAL_SIZE - The size of the statically allocated array (default: - at least 2, more elements if they fit into 128 bytes). - Must be a preprocessor constant. If DYNARRAY_INITIAL_SIZE is 0, - there is no statically allocated array at, and all non-empty - arrays are heap-allocated. - - DYNARRAY_FINAL_TYPE - The name of the type which holds the final array. If not - defined, is PREFIX##finalize not provided. DYNARRAY_FINAL_TYPE - must be a struct type, with members of type DYNARRAY_ELEMENT and - size_t at the start (in this order). - - These macros are undefined after this header file has been - included. - - The following types are provided (their members are private to the - dynarray implementation): - - struct DYNARRAY_STRUCT - - The following functions are provided: - */ - -/* Initialize a dynamic array object. This must be called before any - use of the object. */ -#if 0 -static void - DYNARRAY_PREFIX##init (struct DYNARRAY_STRUCT *list); -#endif - -/* Deallocate the dynamic array and its elements. */ -#if 0 -static void - DYNARRAY_PREFIX##free (struct DYNARRAY_STRUCT *list); -#endif - -/* Return true if the dynamic array is in an error state. */ -#if 0 -static bool - DYNARRAY_PREFIX##has_failed (const struct DYNARRAY_STRUCT *list); -#endif - -/* Mark the dynamic array as failed. All elements are deallocated as - a side effect. */ -#if 0 -static void - DYNARRAY_PREFIX##mark_failed (struct DYNARRAY_STRUCT *list); -#endif - -/* Return the number of elements which have been added to the dynamic - array. */ -#if 0 -static size_t - DYNARRAY_PREFIX##size (const struct DYNARRAY_STRUCT *list); -#endif - -/* Return a pointer to the first array element, if any. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##begin (const struct DYNARRAY_STRUCT *list); -#endif - -/* Return a pointer one element past the last array element. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##end (const struct DYNARRAY_STRUCT *list); -#endif - -/* Return a pointer to the array element at INDEX. Terminate the - process if INDEX is out of bounds. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##at (struct DYNARRAY_STRUCT *list, size_t index); -#endif - -/* Add ITEM at the end of the array, enlarging it by one element. - Mark *LIST as failed if the dynamic array allocation size cannot be - increased. */ -#if 0 -static void - DYNARRAY_PREFIX##add (struct DYNARRAY_STRUCT *list, - DYNARRAY_ELEMENT item); -#endif - -/* Allocate a place for a new element in *LIST and return a pointer to - it. The pointer can be NULL if the dynamic array cannot be - enlarged due to a memory allocation failure. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##emplace (struct DYNARRAY_STRUCT *list); -#endif - -/* Change the size of *LIST to SIZE. If SIZE is larger than the - existing size, new elements are added (which can be initialized). - Otherwise, the list is truncated, and elements are freed. Return - false on memory allocation failure (and mark *LIST as failed). */ -#if 0 -static bool - DYNARRAY_PREFIX##resize (struct DYNARRAY_STRUCT *list, size_t size); -#endif - -/* Remove the last element of LIST if it is present. */ -#if 0 -static void - DYNARRAY_PREFIX##remove_last (struct DYNARRAY_STRUCT *list); -#endif - -/* Remove all elements from the list. The elements are freed, but the - list itself is not. */ -#if 0 -static void - DYNARRAY_PREFIX##clear (struct DYNARRAY_STRUCT *list); -#endif - -#if defined DYNARRAY_FINAL_TYPE -/* Transfer the dynamic array to a permanent location at *RESULT. - Returns true on success on false on allocation failure. In either - case, *LIST is re-initialized and can be reused. A NULL pointer is - stored in *RESULT if LIST refers to an empty list. On success, the - pointer in *RESULT is heap-allocated and must be deallocated using - free. */ -#if 0 -static bool - DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *list, - DYNARRAY_FINAL_TYPE *result); -#endif -#else /* !defined DYNARRAY_FINAL_TYPE */ -/* Transfer the dynamic array to a heap-allocated array and return a - pointer to it. The pointer is NULL if memory allocation fails, or - if the array is empty, so this function should be used only for - arrays which are known not be empty (usually because they always - have a sentinel at the end). If LENGTHP is not NULL, the array - length is written to *LENGTHP. *LIST is re-initialized and can be - reused. */ -#if 0 -static DYNARRAY_ELEMENT * - DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *list, - size_t *lengthp); -#endif -#endif - -/* A minimal example which provides a growing list of integers can be - defined like this: - - struct int_array - { - // Pointer to result array followed by its length, - // as required by DYNARRAY_FINAL_TYPE. - int *array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_int - #define DYNARRAY_ELEMENT int - #define DYNARRAY_PREFIX dynarray_int_ - #define DYNARRAY_FINAL_TYPE struct int_array - #include - - To create a three-element array with elements 1, 2, 3, use this - code: - - struct dynarray_int dyn; - dynarray_int_init (&dyn); - for (int i = 1; i <= 3; ++i) - { - int *place = dynarray_int_emplace (&dyn); - assert (place != NULL); - *place = i; - } - struct int_array result; - bool ok = dynarray_int_finalize (&dyn, &result); - assert (ok); - assert (result.length == 3); - assert (result.array[0] == 1); - assert (result.array[1] == 2); - assert (result.array[2] == 3); - free (result.array); - - If the elements contain resources which must be freed, define - DYNARRAY_ELEMENT_FREE appropriately, like this: - - struct str_array - { - char **array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_str - #define DYNARRAY_ELEMENT char * - #define DYNARRAY_ELEMENT_FREE(ptr) free (*ptr) - #define DYNARRAY_PREFIX dynarray_str_ - #define DYNARRAY_FINAL_TYPE struct str_array - #include - */ - - -/* The implementation is imported from glibc. */ - -/* Avoid possible conflicts with symbols exported by the GNU libc. */ -#define __libc_dynarray_at_failure gl_dynarray_at_failure -#define __libc_dynarray_emplace_enlarge gl_dynarray_emplace_enlarge -#define __libc_dynarray_finalize gl_dynarray_finalize -#define __libc_dynarray_resize_clear gl_dynarray_resize_clear -#define __libc_dynarray_resize gl_dynarray_resize - -#if defined DYNARRAY_STRUCT || defined DYNARRAY_ELEMENT || defined DYNARRAY_PREFIX - -# ifndef _GL_LIKELY -/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ -# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) -# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) -# endif - -/* Define auxiliary structs and declare auxiliary functions, common to all - instantiations of dynarray. */ -# include - -/* Define the instantiation, specified through - DYNARRAY_STRUCT - DYNARRAY_ELEMENT - DYNARRAY_PREFIX - etc. */ -# include - -#else - -/* This file is being included from one of the malloc/dynarray_*.c files. */ -# include - -#endif - -#endif /* _GL_DYNARRAY_H */ diff --git a/include/libgnulib/eealloc.h b/include/libgnulib/eealloc.h deleted file mode 100755 index ff31da4..0000000 --- a/include/libgnulib/eealloc.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Memory allocation with expensive empty allocations. - Copyright (C) 2003, 2008, 2010-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003, - based on prior work by Jim Meyering. - - 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 3 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, see . */ - -#ifndef _EEALLOC_H -#define _EEALLOC_H - -/* malloc() and realloc() are allowed to return NULL when asked to allocate - a memory block of 0 bytes; this is not an out-of-memory condition. - (See ISO C 99 section 7.20.3.) In some places, this is not welcome, - because it requires extra checking (so as not to confuse a zero-sized - allocation with an out-of-memory condition). This file provides - malloc()/realloc() workalikes which return non-NULL pointers for - succeeding zero-sized allocations. GNU libc already defines malloc() - and realloc() this way; on such platforms the workalikes are aliased - to the original malloc()/realloc() functions. */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_ALLOC_SIZE, - _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#if defined __CHERI_PURE_CAPABILITY__ -# include -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef EEALLOC_INLINE -# define EEALLOC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#if MALLOC_0_IS_NONNULL -# define eemalloc malloc -#else -EEALLOC_INLINE void *eemalloc (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1)) - _GL_ATTRIBUTE_DEALLOC_FREE; -EEALLOC_INLINE void * -eemalloc (size_t n) -{ - /* If n is zero, allocate a 1-byte block. */ - size_t nx = n; - if (n == 0) - nx = 1; - void *ptr = malloc (nx); -# if defined __CHERI_PURE_CAPABILITY__ - if (ptr != NULL) - ptr = cheri_bounds_set (ptr, n); -# endif - return ptr; -} -#endif - -#if REALLOC_0_IS_NONNULL -# define eerealloc realloc -#else -EEALLOC_INLINE void *eerealloc (void *p, size_t n) - _GL_ATTRIBUTE_ALLOC_SIZE ((2)); -EEALLOC_INLINE void * -eerealloc (void *p, size_t n) -{ - /* If n is zero, allocate or keep a 1-byte block. */ - size_t nx = n; - if (n == 0) - nx = 1; - void *ptr = realloc (p, nx); -# if defined __CHERI_PURE_CAPABILITY__ - if (ptr != NULL) - ptr = cheri_bounds_set (ptr, n); -# endif - return ptr; -} -#endif - -/* Maybe we should also define variants - eenmalloc (size_t n, size_t s) - behaves like eemalloc (n * s) - eezalloc (size_t n) - like eemalloc followed by memset 0 - eecalloc (size_t n, size_t s) - like eemalloc (n * s) followed by memset 0 - eenrealloc (void *p, size_t n, size_t s) - like eerealloc (p, n * s) - If this would be useful in your application. please speak up. */ - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _EEALLOC_H */ diff --git a/include/libgnulib/eloop-threshold.h b/include/libgnulib/eloop-threshold.h deleted file mode 100755 index 84d19b4..0000000 --- a/include/libgnulib/eloop-threshold.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Threshold at which to diagnose ELOOP. Generic version. - Copyright (C) 2012-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _ELOOP_THRESHOLD_H -#define _ELOOP_THRESHOLD_H 1 - -/* This file uses _GL_ATTRIBUTE_CONST. */ -#if !_LIBC && !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#ifdef _LIBC -# include -# define _GL_ATTRIBUTE_CONST __attribute__ ((const)) -#else -# include -# include "minmax.h" -# define __sysconf sysconf -# if (!defined SYMLOOP_MAX \ - && ! (defined _SC_SYMLOOP_MAX && defined _POSIX_SYMLOOP_MAX)) -# define SYMLOOP_MAX 8 -# endif -#endif - -/* POSIX specifies SYMLOOP_MAX as the "Maximum number of symbolic - links that can be reliably traversed in the resolution of a - pathname in the absence of a loop." This makes it a minimum that - we should certainly accept. But it leaves open the possibility - that more might sometimes work--just not "reliably". - - For example, Linux implements a complex policy whereby there is a - small limit on the number of direct symlink traversals (a symlink - to a symlink to a symlink), but larger limit on the total number of - symlink traversals overall. Hence the SYMLOOP_MAX number should be - the small one, but the limit library functions enforce on users - should be the larger one. - - So, we use the larger of the reported SYMLOOP_MAX (if any) and our - own constant MIN_ELOOP_THRESHOLD, below. This constant should be - large enough that it never rules out a file name and directory tree - that the underlying system (i.e. calls to 'open' et al) would - resolve successfully. It should be small enough that actual loops - are detected without a huge number of iterations. */ - -#ifndef MIN_ELOOP_THRESHOLD -# define MIN_ELOOP_THRESHOLD 40 -#endif - -/* Return the maximum number of symlink traversals to permit - before diagnosing ELOOP. */ -static inline unsigned int _GL_ATTRIBUTE_CONST -__eloop_threshold (void) -{ -#ifdef SYMLOOP_MAX - const int symloop_max = SYMLOOP_MAX; -#else - /* The function is marked 'const' even though we use memory and - call a function, because sysconf is required to return the - same value in every call and so it must always be safe to - call __eloop_threshold exactly once and reuse the value. */ - static long int sysconf_symloop_max; - if (sysconf_symloop_max == 0) - sysconf_symloop_max = __sysconf (_SC_SYMLOOP_MAX); - const unsigned int symloop_max = (sysconf_symloop_max <= 0 - ? _POSIX_SYMLOOP_MAX - : sysconf_symloop_max); -#endif - - return MAX (symloop_max, MIN_ELOOP_THRESHOLD); -} - -#endif /* eloop-threshold.h */ diff --git a/include/libgnulib/exclude.h b/include/libgnulib/exclude.h deleted file mode 100755 index 12743cf..0000000 --- a/include/libgnulib/exclude.h +++ /dev/null @@ -1,80 +0,0 @@ -/* exclude.h -- declarations for excluding file names - - Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2024 Free - Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert - and Sergey Poznyakoff */ - -#ifndef _GL_EXCLUDE_H -#define _GL_EXCLUDE_H 1 - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Exclude options, which can be ORed with fnmatch options. */ - -/* Patterns must match the start of file names, instead of matching - anywhere after a '/'. */ -#define EXCLUDE_ANCHORED (1 << 30) - -/* Include instead of exclude. */ -#define EXCLUDE_INCLUDE (1 << 29) - -/* '?', '*', '[', and '\\' are special in patterns. Without this - option, these characters are ordinary and fnmatch is not used. */ -#define EXCLUDE_WILDCARDS (1 << 28) - -/* Patterns are POSIX extended regular expressions */ -#define EXCLUDE_REGEX (1 << 27) - -/* Allocate storage for the pattern */ -#define EXCLUDE_ALLOC (1 << 26) - -struct exclude; - -bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE; - -void free_exclude (struct exclude *) - _GL_ATTRIBUTE_NONNULL ((1)); -struct exclude *new_exclude (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_RETURNS_NONNULL - _GL_ATTRIBUTE_DEALLOC (free_exclude, 1); -void add_exclude (struct exclude *, char const *, int); -int add_exclude_file (void (*) (struct exclude *, char const *, int), - struct exclude *, char const *, int, char); -int add_exclude_fp (void (*) (struct exclude *, char const *, int, void *), - struct exclude *, FILE *, int, char, void *); -bool excluded_file_name (struct exclude const *, char const *); -void exclude_add_pattern_buffer (struct exclude *ex, char *buf); -bool exclude_fnmatch (char const *, char const *, int); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_EXCLUDE_H */ diff --git a/include/libgnulib/execute.h b/include/libgnulib/execute.h deleted file mode 100755 index cb43f21..0000000 --- a/include/libgnulib/execute.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Creation of autonomous subprocesses. - Copyright (C) 2001-2003, 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _EXECUTE_H -#define _EXECUTE_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Execute a command, optionally redirecting any of the three standard file - descriptors to /dev/null. Return its exit code. - If it didn't terminate correctly, exit if exit_on_error is true, otherwise - return 127. - - progname is the name of the program to be executed by the subprocess, used - for error messages. - prog_path is the file name of the program to be executed by the subprocess. - If it contains no slashes, a search is conducted in $PATH. An operating - system dependent suffix is added, if necessary. - prog_argv is the array of strings that the subprocess shall receive in - argv[]. It is a NULL-terminated array. prog_argv[0] should normally be - identical to prog_path. - - dll_dirs is, on Windows platforms, a NULL-terminated list of directories - that contain DLLs needed to execute the program, or NULL if none is needed. - On other platforms, always pass NULL. - - If directory is not NULL, the command is executed in that directory. If - prog_path is a relative file name, it resolved before changing to that - directory. The current directory of the current process remains unchanged. - - If ignore_sigpipe is true, consider a subprocess termination due to SIGPIPE - as equivalent to a success. This is suitable for processes whose only - purpose is to write to standard output. - - If slave_process is true, the child process will be terminated when its - creator receives a catchable fatal signal. - - If termsigp is not NULL, *termsig will be set to the signal that terminated - the subprocess (if supported by the platform: not on native Windows - platforms), otherwise 0. - - It is recommended that no signal is blocked or ignored while execute() - is called. See spawn-pipe.h for the reason. */ -extern int execute (const char *progname, - const char *prog_path, const char * const *prog_argv, - const char * const *dll_dirs, - const char *directory, - bool ignore_sigpipe, - bool null_stdin, bool null_stdout, bool null_stderr, - bool slave_process, bool exit_on_error, - int *termsigp); - - -#ifdef __cplusplus -} -#endif - -#endif /* _EXECUTE_H */ diff --git a/include/libgnulib/exitfail.h b/include/libgnulib/exitfail.h deleted file mode 100755 index fa264b5..0000000 --- a/include/libgnulib/exitfail.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Failure exit status - - Copyright (C) 2002, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - - -extern int volatile exit_failure; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fatal-signal.h b/include/libgnulib/fatal-signal.h deleted file mode 100755 index a51d15f..0000000 --- a/include/libgnulib/fatal-signal.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Emergency actions in case of a fatal signal. - Copyright (C) 2003-2004, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - - -#ifndef _FATAL_SIGNAL_H -#define _FATAL_SIGNAL_H - -/* This file uses _GL_ASYNC_SAFE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* It is often useful to do some cleanup action when a usually fatal signal - terminates the process, like removing a temporary file or killing a - subprocess that may be stuck waiting for a device, pipe or network input. - Such signals are SIGHUP, SIGINT, SIGPIPE, SIGTERM, and possibly others. - The limitation of this facility is that it cannot work for SIGKILL. - - Signals with a SIG_IGN handler are considered to be non-fatal. The - functions in this file assume that when a SIG_IGN handler is installed - for a signal, it was installed before any functions in this file were - called and it stays so for the whole lifetime of the process. */ - -/* Register a cleanup function to be executed when a catchable fatal signal - occurs. - - Restrictions for the cleanup function: - - The cleanup function can do all kinds of system calls. It may also - modify (clobber) errno. - - It can also access application dependent memory locations and data - structures provided they are in a consistent state. One way to ensure - this is through block_fatal_signals()/unblock_fatal_signals(), see - below. Another - more tricky - way to ensure this is the careful use - of 'volatile'. - However, - - malloc() and similarly complex facilities are not safe to be called - because they are not guaranteed to be in a consistent state. - - Also, the cleanup function must not block the catchable fatal signals - and leave them blocked upon return. - - The cleanup function is executed asynchronously. It is unspecified - whether during its execution the catchable fatal signals are blocked - or not. - - Return 0 upon success, or -1 if there was a memory allocation problem. */ -extern int at_fatal_signal (_GL_ASYNC_SAFE void (*function) (int sig)); - - -/* Sometimes it is necessary to block the usually fatal signals while the - data structures being accessed by the cleanup action are being built or - reorganized. This is the case, for example, when a temporary file or - directory is created through mkstemp() or mkdtemp(), because these - functions create the temporary file or directory _before_ returning its - name to the application. */ - -/* Temporarily delay the catchable fatal signals. - The signals will be blocked (= delayed) until the next call to - unblock_fatal_signals(). If the signals are already blocked, a further - call to block_fatal_signals() has no effect. */ -extern void block_fatal_signals (void); - -/* Stop delaying the catchable fatal signals. */ -extern void unblock_fatal_signals (void); - - -/* Return the list of signals that block_fatal_signals/unblock_fatal_signals - would block or unblock. - Fills signals[0..count-1] and returns count. */ -extern unsigned int get_fatal_signals (int signals[64]); - -/* Return the list of signals that block_fatal_signals/unblock_fatal_signals - would block or unblock. */ -extern const sigset_t * get_fatal_signal_set (void); - - -#ifdef __cplusplus -} -#endif - -#endif /* _FATAL_SIGNAL_H */ diff --git a/include/libgnulib/fbufmode.h b/include/libgnulib/fbufmode.h deleted file mode 100755 index bce6f5f..0000000 --- a/include/libgnulib/fbufmode.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return the buffering mode of the stream STREAM. - - Result means - ------ ------- - _IONBF unbuffered - _IOLBF line buffered - _IOFBF fully buffered - - STREAM must not be wide-character oriented. */ -extern int fbufmode (FILE *stream); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fcntl--.h b/include/libgnulib/fcntl--.h deleted file mode 100755 index acb237d..0000000 --- a/include/libgnulib/fcntl--.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Like fcntl.h, but redefine some names to avoid glitches. - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#include -#include "fcntl-safer.h" - -#undef open -#define open open_safer - -#undef creat -#define creat creat_safer - -#if GNULIB_OPENAT_SAFER -# undef openat -# define openat openat_safer -#endif diff --git a/include/libgnulib/fcntl-safer.h b/include/libgnulib/fcntl-safer.h deleted file mode 100755 index 347cac0..0000000 --- a/include/libgnulib/fcntl-safer.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Invoke fcntl-like functions, but avoid some glitches. - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int open_safer (char const *, int, ...); -int creat_safer (char const *, mode_t); - -#if GNULIB_OPENAT_SAFER -int openat_safer (int, char const *, int, ...); -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fd-hook.h b/include/libgnulib/fd-hook.h deleted file mode 100755 index 2150460..0000000 --- a/include/libgnulib/fd-hook.h +++ /dev/null @@ -1,119 +0,0 @@ -/* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - - -#ifndef FD_HOOK_H -#define FD_HOOK_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Currently, this entire code is only needed for the handling of sockets - on native Windows platforms. */ -#if WINDOWS_SOCKETS - - -/* Type of function that closes FD. */ -typedef int (*gl_close_fn) (int fd); - -/* Type of function that applies a control request to FD. */ -typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); - -/* An element of the list of file descriptor hooks. - In CLOS (Common Lisp Object System) speak, it consists of an "around" - method for the close() function and an "around" method for the ioctl() - function. - The fields of this structure are considered private. */ -struct fd_hook -{ - /* Doubly linked list. */ - struct fd_hook *private_next; - struct fd_hook *private_prev; - /* Function that treats the types of FD that it knows about and calls - execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ - int (*private_close_fn) (const struct fd_hook *remaining_list, - gl_close_fn primary, - int fd); - /* Function that treats the types of FD that it knows about and calls - execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a - fallback. */ - int (*private_ioctl_fn) (const struct fd_hook *remaining_list, - gl_ioctl_fn primary, - int fd, int request, void *arg); -}; - -/* This type of function closes FD, applying special knowledge for the FD - types it knows about, and calls - execute_close_hooks (REMAINING_LIST, PRIMARY, FD) - for the other FD types. - In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, - and PRIMARY is the "primary" method for close(). */ -typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, - gl_close_fn primary, - int fd); - -/* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. - Return 0 or -1, like close() would do. */ -extern int execute_close_hooks (const struct fd_hook *remaining_list, - gl_close_fn primary, - int fd); - -/* Execute all close hooks, with PRIMARY as "primary" method. - Return 0 or -1, like close() would do. */ -extern int execute_all_close_hooks (gl_close_fn primary, int fd); - -/* This type of function applies a control request to FD, applying special - knowledge for the FD types it knows about, and calls - execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) - for the other FD types. - In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, - and PRIMARY is the "primary" method for ioctl(). */ -typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, - gl_ioctl_fn primary, - int fd, int request, void *arg); - -/* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. - Return 0 or -1, like ioctl() would do. */ -extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, - gl_ioctl_fn primary, - int fd, int request, void *arg); - -/* Execute all ioctl hooks, with PRIMARY as "primary" method. - Return 0 or -1, like ioctl() would do. */ -extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, - int fd, int request, void *arg); - -/* Add a function pair to the list of file descriptor hooks. - CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. - The LINK variable points to a piece of memory which is guaranteed to be - accessible until the corresponding call to unregister_fd_hook. */ -extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, - struct fd_hook *link); - -/* Removes a hook from the list of file descriptor hooks. */ -extern void unregister_fd_hook (struct fd_hook *link); - - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* FD_HOOK_H */ diff --git a/include/libgnulib/fenv-private.h b/include/libgnulib/fenv-private.h deleted file mode 100755 index 9571b7b..0000000 --- a/include/libgnulib/fenv-private.h +++ /dev/null @@ -1,412 +0,0 @@ -/* Common definitions for the implementation of the various modules. - Copyright (C) 1997-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Based on glibc/sysdeps//{fpu_control.h,fenv_private.h,fenv_libc.h}. */ - -#if (defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86) - -# if !(defined __x86_64__ || defined _M_X64) -# if __GLIBC__ + (__GLIBC_MINOR__ >= 33) > 2 -/* glibc >= 2.33 has an API that tells us whether the CPU has an SSE unit. */ -# include -# elif defined __sun -/* Solaris has a global variable that tells us whether the CPU has an SSE unit. */ -extern int _sse_hw; -# endif -# endif - -/* CPU_HAS_SSE () returns true if the CPU has an SSE unit. */ -# if defined __x86_64__ || defined _M_X64 -# define CPU_HAS_SSE() 1 -# else -# if __GLIBC__ + (__GLIBC_MINOR__ >= 33) > 2 -# define CPU_HAS_SSE() CPU_FEATURE_PRESENT (SSE) -# elif defined __sun -# define CPU_HAS_SSE() _sse_hw -# else -/* Otherwise, we assume that the SSE unit is present. - Only very old 32-bit processors, before Pentium 4, don't have it. - Don't bother testing it, through a 'cpuid' instruction. */ -# define CPU_HAS_SSE() 1 -# endif -# endif - -/* fstat bits 5..2,0 indicate which floating-point exceptions have occurred - in the 387 compatible floating-point unit since the respective bit was last - set to zero. - mxcsr bits 5..2,0 indicate which floating-point exceptions have occurred - in the SSE floating-point unit since the respective bit was last set to - zero. */ -/* fctrl bits 5..2,0 indicate which floating-point exceptions shall, when - occurring in the 387 compatible floating-point unit, *not* trigger a trap - rather than merely set the corresponding bit in the fstat register. - mxcsr bits 12..9,7 indicate which floating-point exceptions shall, when - occurring in the SSE floating-point unit, *not* trigger a trap rather - than merely set the corresponding bit in the mxcsr register. */ - -/* Macros that access the control word of the 387 unit, the so-called fctrl - register. */ -# define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw)) - -/* Macros that access the status word of the 387 unit, the so-called fstat - register. */ -# define _FPU_GETSTAT(cw) __asm__ __volatile__ ("fnstsw %0" : "=m" (*&cw)) - -/* Macros that access the control and status word of the SSE unit, the mxcsr - register. */ -# if defined __GNUC__ || defined __clang__ -# define _FPU_GETSSECW(cw) __asm__ __volatile__ ("stmxcsr %0" : "=m" (*&cw)) -# define _FPU_SETSSECW(cw) __asm__ __volatile__ ("ldmxcsr %0" : : "m" (*&cw)) -# elif defined _MSC_VER -# include -/* Documentation: - - - - - */ -# define _FPU_GETSSECW(cw) ((cw) = _mm_getcsr ()) -# define _FPU_SETSSECW(cw) _mm_setcsr (cw) -# endif - -/* The floating-point environment of the 387 unit. */ -typedef struct - { - /* 7 32-bit words: */ - unsigned short __control_word; /* fctrl register */ - unsigned short __reserved1; - unsigned short __status_word; /* fstat register */ - unsigned short __reserved2; - unsigned int more[5]; - } -x86_387_fenv_t; - -# if defined _MSC_VER -/* The MSVC header files have different values for the floating-point exceptions - than all the other platforms. Define some handy macros for conversion. */ -# define exceptions_to_x86hardware(exceptions) \ - ( ((exceptions) & FE_INVALID ? 0x01 : 0) \ - | ((exceptions) & FE_DIVBYZERO ? 0x04 : 0) \ - | ((exceptions) & FE_OVERFLOW ? 0x08 : 0) \ - | ((exceptions) & FE_UNDERFLOW ? 0x10 : 0) \ - | ((exceptions) & FE_INEXACT ? 0x20 : 0)) -# define x86hardware_to_exceptions(fstat) \ - ( ((fstat) & 0x01 ? FE_INVALID : 0) \ - | ((fstat) & 0x04 ? FE_DIVBYZERO : 0) \ - | ((fstat) & 0x08 ? FE_OVERFLOW : 0) \ - | ((fstat) & 0x10 ? FE_UNDERFLOW : 0) \ - | ((fstat) & 0x20 ? FE_INEXACT : 0)) -# else -# define exceptions_to_x86hardware(exceptions) (exceptions) -# define x86hardware_to_exceptions(fstat) (fstat) -# endif - -/* When _MSC_VER is defined, the 387 compatible floating-point unit is *not* - in use. Only the SSE floating-point unit is used. This can be inferred - from two facts: - - sizeof (long double) == sizeof (double). That is, 'long double' - values are just 'double' values and can be processed in the SSE unit. - - After fegetenv (&env), the value of env._Fe_stat is *not* the fstat - register of the 387 unit. Rather, it is a artificial value. In - particular, (env._Fe_stat & 0x3f) is - == x86hardware_to_exceptions (_FPU_GETSSECW () & 0x3f). */ - -#elif defined __aarch64__ /* arm64 */ - -/* fpsr bits 4..0 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ -/* fpcr bits 12..8 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fpsr register. */ - -# if __GNUC__ >= 6 && !defined __clang__ -# define _FPU_GETCW(fpcr) (fpcr = __builtin_aarch64_get_fpcr ()) -# define _FPU_SETCW(fpcr) __builtin_aarch64_set_fpcr (fpcr) -# elif __clang_major__ >= 4 -# define _FPU_GETCW(fpcr) (fpcr = __builtin_arm_rsr ("fpcr")) -# define _FPU_SETCW(fpcr) __builtin_arm_wsr ("fpcr", fpcr) -# else -# define _FPU_GETCW(fpcr) \ - __asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr)) -# define _FPU_SETCW(fpcr) \ - __asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr)) -# endif - -# if __GNUC__ >= 6 && !defined __clang__ -# define _FPU_GETFPSR(fpsr) (fpsr = __builtin_aarch64_get_fpsr ()) -# define _FPU_SETFPSR(fpsr) __builtin_aarch64_set_fpsr (fpsr) -# elif __clang_major__ >= 4 -# define _FPU_GETFPSR(fpsr) (fpsr = __builtin_arm_rsr ("fpsr")) -# define _FPU_SETFPSR(fpsr) __builtin_arm_wsr ("fpsr", fpsr) -# else -# define _FPU_GETFPSR(fpsr) \ - __asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr)) -# define _FPU_SETFPSR(fpsr) \ - __asm__ __volatile__ ("msr fpsr, %0" : : "r" (fpsr)) -# endif - -#elif defined __arm__ - -/* fpscr bits 23..22 indicate the rounding direction. */ -/* fpscr bits 4..0 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ -/* fpscr bits 12..8 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fpscr register. */ - -# if !defined __SOFTFP__ -# define _FPU_GETCW(cw) \ - __asm__ __volatile__ ("vmrs %0, fpscr" : "=r" (cw)) -# define _FPU_SETCW(cw) \ - __asm__ __volatile__ ("vmsr fpscr, %0" : : "r" (cw)) -# endif - -#elif defined __alpha - -/* System calls. */ -extern unsigned long __ieee_get_fp_control (void); -extern void __ieee_set_fp_control (unsigned long); - -# define _FPU_GETCW(fpcr) \ - __asm__ __volatile__ ("excb; mf_fpcr %0" : "=f" (fpcr)) -# define _FPU_SETCW(fpcr) \ - __asm__ __volatile__ ("mt_fpcr %0; excb" : : "f" (fpcr)) - -#elif defined __hppa - -/* Bits 31..27 of the first 32-bit word of %fr0 indicate which floating-point - exceptions have occurred since the respective bit was last set to zero. */ -/* Bits 4..0 of the first 32-bit word of %fr0 indicate which floating-point - exceptions shall, when occurring, trigger a trap rather than merely set the - corresponding flag bit. */ - -/* The status register is located in bits 0 to 31 of floating-point register 0. */ -# define _FPU_GETCW(cw) \ -({ \ - union { __extension__ unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \ - /* Get the current status word. */ \ - __asm__ ("fstd %%fr0,0(%1)\n\t" \ - "fldd 0(%1),%%fr0\n\t" \ - : "=m" (__fullfp.__fpreg) : "r" (&__fullfp.__fpreg) : "%r0"); \ - cw = __fullfp.__halfreg[0]; \ -}) -# define _FPU_SETCW(cw) \ -({ \ - union { __extension__ unsigned long long __fpreg; unsigned int __halfreg[2]; } __fullfp; \ - /* Get the current status word and set the control word. */ \ - __asm__ ("fstd %%fr0,0(%1)\n\t" \ - : "=m" (__fullfp.__fpreg) : "r" (&__fullfp.__fpreg) : "%r0"); \ - __fullfp.__halfreg[0] = cw; \ - __asm__ ("fldd 0(%1),%%fr0\n\t" \ - : : "m" (__fullfp.__fpreg), "r" (&__fullfp.__fpreg) : "%r0" ); \ -}) - -#elif defined __ia64__ - -/* fpsr bits 12..9,7 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ -/* fpsr bits 5..2,0 indicate which floating-point exceptions shall, when - occurring, *not* trigger a trap rather than merely set the corresponding - bit in the fpsr register. */ - -# define _FPU_GETCW(fpsr) \ - __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (fpsr)) -# define _FPU_SETCW(fpsr) \ - __asm__ __volatile__ ("mov.m ar.fpsr=%0" :: "r" (fpsr) : "memory") - -#elif defined __m68k__ - -/* fpsr bits 7..3 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ -/* fpcr bits 15..8 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fpsr register: - - bit 15: branch/set on unordered - - bit 14: signaling not-a-number - - bit 13: operand error - - bit 12: overflow - - bit 11: underflow - - bit 10: divide by zero - - bit 9: inexact operation - - bit 8: inexact decimal input - FE_INVALID corresponds to all three: bit 15, bit 14, bit 13. */ - -# define _FPU_GETCW(cw) __asm__ __volatile__ ("fmove%.l %!, %0" : "=dm" (cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("fmove%.l %0, %!" : : "dm" (cw)) - -# define _FPU_GETFPSR(cw) __asm__ __volatile__ ("fmove%.l %/fpsr, %0" : "=dm" (cw)) -# define _FPU_SETFPSR(cw) __asm__ __volatile__ ("fmove%.l %0, %/fpsr" : : "dm" (cw)) - -#elif defined __mips__ - -/* fcsr bits 6..2 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. - fcsr bits 17..12 indicate which floating-point exceptions have occurred - in the most recent instruction. */ -/* fcsr bits 11..7 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fcsr register. */ - -# define _FPU_GETCW(cw) __asm__ __volatile__ ("cfc1 %0,$31" : "=r" (cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("ctc1 %0,$31" : : "r" (cw)) - -#elif defined __loongarch__ - -/* fcsr0 bits 20..16 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. - fcsr0 bits 28..24 indicate which floating-point exceptions have occurred - in the most recent instruction. */ -/* fcsr0 bits 4..0 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fcsr0 register. */ - -# define _FPU_GETCW(cw) __asm__ __volatile__ ("movfcsr2gr %0,$r0" : "=r" (cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("movgr2fcsr $r0,%0" : : "r" (cw)) - -#elif defined __powerpc__ - -/* fpscr bits 28..25 indicate which floating-point exceptions, other than - FE_INVALID, have occurred since the respective bit was last set to zero. - fpscr bits 24..19, 10..8 do the same thing, for various kinds of Invalid - Operation. fpscr bit 29 is the summary (the OR) of all these bits. */ -/* fpscr bits 7..3 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fpscr register. */ - -# define _FPU_GETCW_AS_DOUBLE(cw) \ - do { double env; __asm__ __volatile__ ("mffs %0" : "=f" (env)); cw = env; } \ - while (0) -# define _FPU_SETCW_AS_DOUBLE(cw) \ - __asm__ __volatile__ ("mtfsf 0xff,%0" : : "f" (cw)) - -# if defined __NetBSD__ -/* Modifying the FE0 and FE1 bits of the machine state register (MSR) is - only possible from the kernel. NetBSD allows it to be done from user - space, by emulating the mfmsr and mtmsr instructions when they trap. - In other words, these instructions are actually system calls in NetBSD. */ -# define _GETMSR(msr) __asm__ __volatile__ ("mfmsr %0" : "=r" (msr)) -# define _SETMSR(msr) __asm__ __volatile__ ("mtmsr %0" : : "r" (msr)) -# define MSR_FP_EXC_MASK 0x00000900 -/* This allows us to simulate the Linux prctl() through a macro. */ -# define PR_SET_FPEXC 1 -# define PR_FP_EXC_DISABLED 0x00000000 /* FP exceptions disabled */ -# define PR_FP_EXC_NONRECOV 0x00000100 /* async non-recoverable exc. mode */ -# define PR_FP_EXC_ASYNC 0x00000800 /* async recoverable exception mode */ -# define PR_FP_EXC_PRECISE 0x00000900 /* precise exception mode */ -# define prctl(operation,arg) \ - do { \ - if ((operation) == PR_SET_FPEXC) \ - { \ - unsigned int local_msr; \ - _GETMSR (local_msr); \ - local_msr &= ~MSR_FP_EXC_MASK; \ - local_msr |= (arg) & MSR_FP_EXC_MASK; \ - _SETMSR (local_msr); \ - } \ - } while (0) -# endif - -#elif defined __riscv - -/* fcsr bits 4..0 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ - -/* Trapping of floating-point exceptions does not work on RISC-V. That's - because the fcsr register has only bits for floating-point exception status, - but no bits for trapping floating-point exceptions. */ - -#elif defined __s390__ || defined __s390x__ - -/* fpc bits 23..19 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. - fpc bits 15..11 are part of the "data exception code" (DXC) and have a - similar meaning if bits 9..8 are both zero. */ -/* fpc bits 31..27 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fpc register. */ - -# define _FPU_GETCW(cw) __asm__ __volatile__ ("efpc %0" : "=d" (cw)) -# define _FPU_SETCW(cw) __asm__ __volatile__ ("sfpc %0" : : "d" (cw)) - -#elif defined __sh__ - -/* fpscr bits 6..2 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ -/* fpscr bits 11..7 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fpscr register. */ - -# define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw)) -# define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw)) - -#elif defined __sparc - -/* fsr bits 9..5 indicate which floating-point exceptions have occurred - since the respective bit was last set to zero. */ -/* fsr bits 27..23 indicate which floating-point exceptions shall, when - occurring, trigger a trap rather than merely set the corresponding bit - in the fsr register. */ - -# if defined __sparcv9 || defined __arch64__ /* sparc64 */ -# define _FPU_GETCW(X) __asm__ __volatile__ ("stx %%fsr,%0" : "=m" (X)) -# define _FPU_SETCW(X) __asm__ __volatile__ ("ldx %0,%%fsr" : : "m" (X)) -# else -# define _FPU_GETCW(X) __asm__ __volatile__ ("st %%fsr,%0" : "=m" (X)) -# define _FPU_SETCW(X) __asm__ __volatile__ ("ld %0,%%fsr" : : "m" (X)) -# endif - -#endif - -#if defined _AIX && defined __powerpc__ /* AIX */ - -/* defines a type fpflag_t and macros FP_*. */ - -/* Convert from an 'int exceptions' to an fpflag_t. */ -# if 0 /* Unoptimized */ -# define exceptions_to_fpflag(exceptions) \ - ( ((exceptions) & FE_INVALID ? FP_INVALID : 0) \ - | ((exceptions) & FE_DIVBYZERO ? FP_DIV_BY_ZERO : 0) \ - | ((exceptions) & FE_OVERFLOW ? FP_OVERFLOW : 0) \ - | ((exceptions) & FE_UNDERFLOW ? FP_UNDERFLOW : 0) \ - | ((exceptions) & FE_INEXACT ? FP_INEXACT : 0)) -# else /* Optimized */ -# define exceptions_to_fpflag(exceptions) \ - ((exceptions) & FE_ALL_EXCEPT) -# endif - -/* Convert from an fpflag_t to an 'int exceptions'. */ -# if 0 /* Unoptimized */ -# define fpflag_to_exceptions(f) \ - ( ((f) & FP_INVALID ? FE_INVALID : 0) \ - | ((f) & FP_DIV_BY_ZERO ? FE_DIVBYZERO : 0) \ - | ((f) & FP_OVERFLOW ? FE_OVERFLOW : 0) \ - | ((f) & FP_UNDERFLOW ? FE_UNDERFLOW : 0) \ - | ((f) & FP_INEXACT ? FE_INEXACT : 0)) -# else /* Optimized */ -# define fpflag_to_exceptions(f) \ - ((f) & FE_ALL_EXCEPT) -# endif - -/* The implementation of fegetexcept(). Avoids a module dependency. */ -# define fegetexcept_impl() \ - ( (fp_is_enabled (TRP_INVALID) ? FE_INVALID : 0) \ - | (fp_is_enabled (TRP_DIV_BY_ZERO) ? FE_DIVBYZERO : 0) \ - | (fp_is_enabled (TRP_OVERFLOW) ? FE_OVERFLOW : 0) \ - | (fp_is_enabled (TRP_UNDERFLOW) ? FE_UNDERFLOW : 0) \ - | (fp_is_enabled (TRP_INEXACT) ? FE_INEXACT : 0)) - -#endif diff --git a/include/libgnulib/ffsl.h b/include/libgnulib/ffsl.h deleted file mode 100755 index 53e1d46..0000000 --- a/include/libgnulib/ffsl.h +++ /dev/null @@ -1,92 +0,0 @@ -/* ffsl.h -- find the first set bit in a word. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake. */ - -/* This file is meant to be included by ffsl.c and ffsll.c, after - they have defined FUNC and TYPE. */ - -#include - -/* Specification. */ -#include - -#include -#include - -#if defined _MSC_VER && !(__clang_major__ >= 4) -# include -/* Copied from ffs.c. */ -static inline int -ffs (int i) -{ - /* _BitScanForward - */ - unsigned long bit; - if (_BitScanForward (&bit, i)) - return bit + 1; - else - return 0; -} -#endif - -#if !defined FUNC || !defined TYPE -# error -#endif - -int -FUNC (TYPE i) -{ -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) \ - || (__clang_major__ >= 4) - return GCC_BUILTIN (i); -#elif defined _MSC_VER && defined MSVC_BUILTIN - /* _BitScanForward, _BitScanForward64 - */ - unsigned long bit; - if (MSVC_BUILTIN (&bit, i)) - return bit + 1; - else - return 0; -#else - unsigned TYPE j = i; - /* Split j into chunks, and look at one chunk after the other. */ - enum { chunk_bits = CHAR_BIT * sizeof (unsigned int) }; - /* The number of chunks is ceil (sizeof (TYPE) / sizeof (unsigned int)) - = (sizeof (TYPE) - 1) / sizeof (unsigned int) + 1. */ - enum { chunk_count = (sizeof (TYPE) - 1) / sizeof (unsigned int) + 1 }; - - if (chunk_count > 1) - { - size_t k; - - /* It is tempting to write if (!j) here, but if we do this, - Solaris 10/x86 "cc -O" miscompiles the code. */ - if (!i) - return 0; - /* Unroll the first loop round. k = 0. */ - if ((unsigned int) j) - return ffs ((unsigned int) j); - /* Generic loop. */ - for (k = 1; k < chunk_count - 1; k++) - if ((unsigned int) (j >> (k * chunk_bits)) != 0) - return k * chunk_bits + ffs ((unsigned int) (j >> (k * chunk_bits))); - } - /* Last loop round. k = chunk_count - 1. */ - return (chunk_count - 1) * chunk_bits - + ffs ((unsigned int) (j >> ((chunk_count - 1) * chunk_bits))); -#endif -} diff --git a/include/libgnulib/file-set.h b/include/libgnulib/file-set.h deleted file mode 100755 index d4c977b..0000000 --- a/include/libgnulib/file-set.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Very specialized set-of-files code. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2007. */ - -#include -#include - -#include "hash.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -extern void record_file (Hash_table *ht, char const *file, - struct stat const *stats) -#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ - __attribute__ ((__nonnull__ (2, 3))) -#endif -; - -extern bool seen_file (Hash_table const *ht, char const *file, - struct stat const *stats); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/file-type.h b/include/libgnulib/file-type.h deleted file mode 100755 index 862c4b4..0000000 --- a/include/libgnulib/file-type.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Return a string describing the type of a file. - - Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert and Jim Meyering. */ - -#ifndef FILE_TYPE_H -#define FILE_TYPE_H 1 - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -char const *c_file_type (struct stat const *) _GL_ATTRIBUTE_PURE; -char const *file_type (struct stat const *) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - -#endif /* FILE_TYPE_H */ diff --git a/include/libgnulib/filemode.h b/include/libgnulib/filemode.h deleted file mode 100755 index 2dee82f..0000000 --- a/include/libgnulib/filemode.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Make a string describing file modes. - - Copyright (C) 1998-1999, 2003, 2006, 2009-2024 Free Software Foundation, - Inc. - - 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 3 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, see . */ - -#ifndef FILEMODE_H_ -# define FILEMODE_H_ - -/* This file uses HAVE_DECL_STRMODE. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include - -/* Get the declaration of strmode. */ -# if HAVE_DECL_STRMODE -# include /* Mac OS X, FreeBSD, OpenBSD */ -# include /* NetBSD */ -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# if !HAVE_DECL_STRMODE -extern void strmode (mode_t mode, char *str); -# endif - -extern void filemodestring (struct stat const *statp, char *str); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/filename.h b/include/libgnulib/filename.h deleted file mode 100755 index 4f0f0fb..0000000 --- a/include/libgnulib/filename.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Basic filename support macros. - Copyright (C) 2001-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* From Paul Eggert and Jim Meyering. */ - -#ifndef _FILENAME_H -#define _FILENAME_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Filename support. - ISSLASH(C) tests whether C is a directory separator - character. - HAS_DEVICE(Filename) tests whether Filename contains a device - specification. - FILE_SYSTEM_PREFIX_LEN(Filename) length of the device specification - at the beginning of Filename, - index of the part consisting of - alternating components and slashes. - FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - 1 when a non-empty device specification - can be followed by an empty or relative - part, - 0 when a non-empty device specification - must be followed by a slash, - 0 when device specification don't exist. - IS_ABSOLUTE_FILE_NAME(Filename) - tests whether Filename is independent of - any notion of "current directory". - IS_RELATIVE_FILE_NAME(Filename) - tests whether Filename may be concatenated - to a directory filename. - Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a - relative file name! - IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device - or directory specification. - */ -#if defined _WIN32 || defined __CYGWIN__ \ - || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') - /* Internal macro: Tests whether a character is a drive letter. */ -# define _IS_DRIVE_LETTER(C) \ - (((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z')) - /* Help the compiler optimizing it. This assumes ASCII. */ -# undef _IS_DRIVE_LETTER -# define _IS_DRIVE_LETTER(C) \ - (((unsigned int) (C) | ('a' - 'A')) - 'a' <= 'z' - 'a') -# define HAS_DEVICE(Filename) \ - (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':') -# define FILE_SYSTEM_PREFIX_LEN(Filename) (HAS_DEVICE (Filename) ? 2 : 0) -# ifdef __CYGWIN__ -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 -# else - /* On native Windows, OS/2, DOS, the system has the notion of a - "current directory" on each drive. */ -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 -# endif -# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE -# define IS_ABSOLUTE_FILE_NAME(Filename) \ - ISSLASH ((Filename)[FILE_SYSTEM_PREFIX_LEN (Filename)]) -# else -# define IS_ABSOLUTE_FILE_NAME(Filename) \ - (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename)) -# endif -# define IS_RELATIVE_FILE_NAME(Filename) \ - (! (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename))) -# define IS_FILE_NAME_WITH_DIR(Filename) \ - (strchr ((Filename), '/') != NULL || strchr ((Filename), '\\') != NULL \ - || HAS_DEVICE (Filename)) -#else - /* Unix */ -# define ISSLASH(C) ((C) == '/') -# define HAS_DEVICE(Filename) ((void) (Filename), 0) -# define FILE_SYSTEM_PREFIX_LEN(Filename) ((void) (Filename), 0) -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 -# define IS_ABSOLUTE_FILE_NAME(Filename) ISSLASH ((Filename)[0]) -# define IS_RELATIVE_FILE_NAME(Filename) (! ISSLASH ((Filename)[0])) -# define IS_FILE_NAME_WITH_DIR(Filename) (strchr ((Filename), '/') != NULL) -#endif - -/* Deprecated macros. For backward compatibility with old users of the - 'filename' module. */ -#define IS_ABSOLUTE_PATH IS_ABSOLUTE_FILE_NAME -#define IS_PATH_WITH_DIR IS_FILE_NAME_WITH_DIR - - -#ifdef __cplusplus -} -#endif - -#endif /* _FILENAME_H */ diff --git a/include/libgnulib/filenamecat.h b/include/libgnulib/filenamecat.h deleted file mode 100755 index 618fb31..0000000 --- a/include/libgnulib/filenamecat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Concatenate two arbitrary file names. - - Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Jim Meyering. */ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#if GNULIB_FILENAMECAT -char *file_name_concat (char const *dir, char const *base, - char **base_in_result) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -#endif - -char *mfile_name_concat (char const *dir, char const *base, - char **base_in_result) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/filevercmp.h b/include/libgnulib/filevercmp.h deleted file mode 100755 index 81f821d..0000000 --- a/include/libgnulib/filevercmp.h +++ /dev/null @@ -1,93 +0,0 @@ -/* Compare file names containing version numbers. - - Copyright (C) 1995 Ian Jackson - Copyright (C) 2001 Anthony Towns - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#ifndef FILEVERCMP_H -#define FILEVERCMP_H - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compare strings A and B as file names containing version numbers, - and return an integer that is negative, zero, or positive depending - on whether A compares less than, equal to, or greater than B. - - Use the following version sort algorithm: - - 1. Compare the strings' maximal-length non-digit prefixes lexically. - If there is a difference return that difference. - Otherwise discard the prefixes and continue with the next step. - - 2. Compare the strings' maximal-length digit prefixes, using - numeric comparison of the numbers represented by each prefix. - (Treat an empty prefix as zero; this can happen only at string end.) - If there is a difference, return that difference. - Otherwise discard the prefixes and continue with the next step. - - 3. If both strings are empty, return 0. Otherwise continue with step 1. - - In version sort, lexical comparison is left to right, byte by byte, - using the byte's numeric value (0-255), except that: - - 1. ASCII letters sort before other bytes. - 2. A tilde sorts before anything, even an empty string. - - In addition to the version sort rules, the following strings have - special priority and sort before all other strings (listed in order): - - 1. The empty string. - 2. ".". - 3. "..". - 4. Strings starting with "." sort before other strings. - - Before comparing two strings where both begin with non-".", - or where both begin with "." but neither is "." or "..", - suffixes matching the C-locale extended regular expression - (\.[A-Za-z~][A-Za-z0-9~]*)*$ are removed and the strings compared - without them, using version sort without special priority; - if they do not compare equal, this comparison result is used and - the suffixes are effectively ignored. Otherwise, the entire - strings are compared using version sort. When removing a suffix - from a nonempty string, remove the maximal-length suffix such that - the remaining string is nonempty. - - This function is intended to be a replacement for strverscmp. */ -int filevercmp (char const *a, char const *b) _GL_ATTRIBUTE_PURE; - -/* Like filevercmp, except compare the byte arrays A (of length ALEN) - and B (of length BLEN) so that A and B can contain '\0', which - sorts just before '\1'. But if ALEN is -1 treat A as a string - terminated by '\0', and similarly for BLEN. */ -int filenvercmp (char const *a, ptrdiff_t alen, char const *b, ptrdiff_t blen) - _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - -#endif /* FILEVERCMP_H */ diff --git a/include/libgnulib/findprog.h b/include/libgnulib/findprog.h deleted file mode 100755 index ebc3b0f..0000000 --- a/include/libgnulib/findprog.h +++ /dev/null @@ -1,75 +0,0 @@ -/* Locating a program in PATH. - Copyright (C) 2001-2003, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - This file 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 file 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 program. If not, see . */ - -#ifndef _FINDPROG_H -#define _FINDPROG_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Looks up a program in the PATH. - Attempts to determine the pathname that would be called by execlp/execvp - of PROGNAME. If successful, it returns a pathname containing a slash - (either absolute or relative to the current directory). Otherwise, it - returns PROGNAME unmodified. - Because of the latter case, callers should use execlp/execvp, not - execl/execv on the returned pathname. - The returned string is freshly malloc()ed if it is != PROGNAME. */ -extern const char *find_in_path (const char *progname); - -/* Looks up a program in the given PATH-like string. - - The PATH argument consists of a list of directories, separated by ':' or - (on native Windows) by ';'. An empty PATH element designates the current - directory. A null PATH is equivalent to an empty PATH, that is, to the - singleton list that contains only the current directory. - - If DIRECTORY is not NULL, all relative filenames (i.e. PROGNAME when it - contains a slash, and the PATH elements) are considered relative to - DIRECTORY instead of relative to the current directory of this process. - - Determines the pathname that would be called by execlp/execvp of PROGNAME. - - If successful, it returns a pathname containing a slash (either absolute - or relative to the current directory). The returned string can be used - with either execl/execv or execlp/execvp. It is freshly malloc()ed if it - is != PROGNAME. - - Otherwise, it sets errno and returns NULL. - Specific errno values include: - - ENOENT: means that the program's file was not found. - - EACCES: means that the program's file cannot be accessed (due to some - issue with one of the ancestor directories) or lacks the execute - permissions. - - ENOMEM: means out of memory. - If OPTIMIZE_FOR_EXEC is true, the function saves some work, under the - assumption that the resulting pathname will not be accessed directly, - only through execl/execv or execlp/execvp. - - Here, a "slash" means: - - On POSIX systems excluding Cygwin: a '/', - - On Windows, OS/2, DOS platforms: a '/' or '\'. */ -extern const char *find_in_given_path (const char *progname, const char *path, - const char *directory, - bool optimize_for_exec); - - -#ifdef __cplusplus -} -#endif - -#endif /* _FINDPROG_H */ diff --git a/include/libgnulib/flexmember.h b/include/libgnulib/flexmember.h deleted file mode 100755 index 6ef66a3..0000000 --- a/include/libgnulib/flexmember.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Sizes of structs with flexible array members. - - Copyright 2016-2024 Free Software Foundation, Inc. - - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . - - Written by Paul Eggert. */ - -/* This file uses _Alignof. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Nonzero multiple of alignment of TYPE, suitable for FLEXSIZEOF below. - On older platforms without _Alignof, use a pessimistic bound that is - safe in practice even if FLEXIBLE_ARRAY_MEMBER is 1. - On newer platforms, use _Alignof to get a tighter bound. */ - -#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 -# define FLEXALIGNOF(type) (sizeof (type) & ~ (sizeof (type) - 1)) -#else -# define FLEXALIGNOF(type) _Alignof (type) -#endif - -/* Yield a properly aligned upper bound on the size of a struct of - type TYPE with a flexible array member named MEMBER that is - followed by N bytes of other data. The result is suitable as an - argument to malloc. For example: - - struct s { int a; char d[FLEXIBLE_ARRAY_MEMBER]; }; - struct s *p = malloc (FLEXSIZEOF (struct s, d, n * sizeof (char))); - - FLEXSIZEOF (TYPE, MEMBER, N) is not simply (sizeof (TYPE) + N), - since FLEXIBLE_ARRAY_MEMBER may be 1 on pre-C11 platforms. Nor is - it simply (offsetof (TYPE, MEMBER) + N), as that might yield a size - that causes malloc to yield a pointer that is not properly aligned - for TYPE; for example, if sizeof (int) == alignof (int) == 4, - malloc (offsetof (struct s, d) + 3 * sizeof (char)) is equivalent - to malloc (7) and might yield a pointer that is not a multiple of 4 - (which means the pointer is not properly aligned for struct s), - whereas malloc (FLEXSIZEOF (struct s, d, 3 * sizeof (char))) is - equivalent to malloc (8) and must yield a pointer that is a - multiple of 4. - - Yield a value less than N if and only if arithmetic overflow occurs. */ - -#define FLEXSIZEOF(type, member, n) \ - ((offsetof (type, member) + FLEXALIGNOF (type) - 1 + (n)) \ - & ~ (FLEXALIGNOF (type) - 1)) - -/* Yield a properly aligned upper bound on the size of a struct of - type TYPE with a flexible array member named MEMBER that has N - elements. The result is suitable as an argument to malloc. - For example: - - struct s { int a; double d[FLEXIBLE_ARRAY_MEMBER]; }; - struct s *p = malloc (FLEXNSIZEOF (struct s, d, n)); - */ -#define FLEXNSIZEOF(type, member, n) \ - FLEXSIZEOF (type, member, (n) * sizeof (((type *) 0)->member[0])) diff --git a/include/libgnulib/float+.h b/include/libgnulib/float+.h deleted file mode 100755 index 104f477..0000000 --- a/include/libgnulib/float+.h +++ /dev/null @@ -1,147 +0,0 @@ -/* Supplemental information about the floating-point formats. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2007. - - This file 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 file 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 program. If not, see . */ - -#ifndef _FLOATPLUS_H -#define _FLOATPLUS_H - -#include -#include - -/* Number of bits in the mantissa of a floating-point number, including the - "hidden bit". */ -#if FLT_RADIX == 2 -# define FLT_MANT_BIT FLT_MANT_DIG -# define DBL_MANT_BIT DBL_MANT_DIG -# define LDBL_MANT_BIT LDBL_MANT_DIG -#elif FLT_RADIX == 4 -# define FLT_MANT_BIT (FLT_MANT_DIG * 2) -# define DBL_MANT_BIT (DBL_MANT_DIG * 2) -# define LDBL_MANT_BIT (LDBL_MANT_DIG * 2) -#elif FLT_RADIX == 16 -# define FLT_MANT_BIT (FLT_MANT_DIG * 4) -# define DBL_MANT_BIT (DBL_MANT_DIG * 4) -# define LDBL_MANT_BIT (LDBL_MANT_DIG * 4) -#endif - -/* Bit mask that can be used to mask the exponent, as an unsigned number. */ -#define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7) -#define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7) -#define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7) - -/* Number of bits used for the exponent of a floating-point number, including - the exponent's sign. */ -#define FLT_EXP_BIT \ - (FLT_EXP_MASK < 0x100 ? 8 : \ - FLT_EXP_MASK < 0x200 ? 9 : \ - FLT_EXP_MASK < 0x400 ? 10 : \ - FLT_EXP_MASK < 0x800 ? 11 : \ - FLT_EXP_MASK < 0x1000 ? 12 : \ - FLT_EXP_MASK < 0x2000 ? 13 : \ - FLT_EXP_MASK < 0x4000 ? 14 : \ - FLT_EXP_MASK < 0x8000 ? 15 : \ - FLT_EXP_MASK < 0x10000 ? 16 : \ - FLT_EXP_MASK < 0x20000 ? 17 : \ - FLT_EXP_MASK < 0x40000 ? 18 : \ - FLT_EXP_MASK < 0x80000 ? 19 : \ - FLT_EXP_MASK < 0x100000 ? 20 : \ - FLT_EXP_MASK < 0x200000 ? 21 : \ - FLT_EXP_MASK < 0x400000 ? 22 : \ - FLT_EXP_MASK < 0x800000 ? 23 : \ - FLT_EXP_MASK < 0x1000000 ? 24 : \ - FLT_EXP_MASK < 0x2000000 ? 25 : \ - FLT_EXP_MASK < 0x4000000 ? 26 : \ - FLT_EXP_MASK < 0x8000000 ? 27 : \ - FLT_EXP_MASK < 0x10000000 ? 28 : \ - FLT_EXP_MASK < 0x20000000 ? 29 : \ - FLT_EXP_MASK < 0x40000000 ? 30 : \ - FLT_EXP_MASK <= 0x7fffffff ? 31 : \ - 32) -#define DBL_EXP_BIT \ - (DBL_EXP_MASK < 0x100 ? 8 : \ - DBL_EXP_MASK < 0x200 ? 9 : \ - DBL_EXP_MASK < 0x400 ? 10 : \ - DBL_EXP_MASK < 0x800 ? 11 : \ - DBL_EXP_MASK < 0x1000 ? 12 : \ - DBL_EXP_MASK < 0x2000 ? 13 : \ - DBL_EXP_MASK < 0x4000 ? 14 : \ - DBL_EXP_MASK < 0x8000 ? 15 : \ - DBL_EXP_MASK < 0x10000 ? 16 : \ - DBL_EXP_MASK < 0x20000 ? 17 : \ - DBL_EXP_MASK < 0x40000 ? 18 : \ - DBL_EXP_MASK < 0x80000 ? 19 : \ - DBL_EXP_MASK < 0x100000 ? 20 : \ - DBL_EXP_MASK < 0x200000 ? 21 : \ - DBL_EXP_MASK < 0x400000 ? 22 : \ - DBL_EXP_MASK < 0x800000 ? 23 : \ - DBL_EXP_MASK < 0x1000000 ? 24 : \ - DBL_EXP_MASK < 0x2000000 ? 25 : \ - DBL_EXP_MASK < 0x4000000 ? 26 : \ - DBL_EXP_MASK < 0x8000000 ? 27 : \ - DBL_EXP_MASK < 0x10000000 ? 28 : \ - DBL_EXP_MASK < 0x20000000 ? 29 : \ - DBL_EXP_MASK < 0x40000000 ? 30 : \ - DBL_EXP_MASK <= 0x7fffffff ? 31 : \ - 32) -#define LDBL_EXP_BIT \ - (LDBL_EXP_MASK < 0x100 ? 8 : \ - LDBL_EXP_MASK < 0x200 ? 9 : \ - LDBL_EXP_MASK < 0x400 ? 10 : \ - LDBL_EXP_MASK < 0x800 ? 11 : \ - LDBL_EXP_MASK < 0x1000 ? 12 : \ - LDBL_EXP_MASK < 0x2000 ? 13 : \ - LDBL_EXP_MASK < 0x4000 ? 14 : \ - LDBL_EXP_MASK < 0x8000 ? 15 : \ - LDBL_EXP_MASK < 0x10000 ? 16 : \ - LDBL_EXP_MASK < 0x20000 ? 17 : \ - LDBL_EXP_MASK < 0x40000 ? 18 : \ - LDBL_EXP_MASK < 0x80000 ? 19 : \ - LDBL_EXP_MASK < 0x100000 ? 20 : \ - LDBL_EXP_MASK < 0x200000 ? 21 : \ - LDBL_EXP_MASK < 0x400000 ? 22 : \ - LDBL_EXP_MASK < 0x800000 ? 23 : \ - LDBL_EXP_MASK < 0x1000000 ? 24 : \ - LDBL_EXP_MASK < 0x2000000 ? 25 : \ - LDBL_EXP_MASK < 0x4000000 ? 26 : \ - LDBL_EXP_MASK < 0x8000000 ? 27 : \ - LDBL_EXP_MASK < 0x10000000 ? 28 : \ - LDBL_EXP_MASK < 0x20000000 ? 29 : \ - LDBL_EXP_MASK < 0x40000000 ? 30 : \ - LDBL_EXP_MASK <= 0x7fffffff ? 31 : \ - 32) - -/* Number of bits used for a floating-point number: the mantissa (not - counting the "hidden bit", since it may or may not be explicit), the - exponent, and the sign. */ -#define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1) -#define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1) -#define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1) - -/* Number of bytes used for a floating-point number. - This can be smaller than the 'sizeof'. For example, on i386 systems, - 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence - LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but - sizeof (long double) = 12 or = 16. */ -#define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) -#define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) -#define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT) - -/* Verify that SIZEOF_FLT <= sizeof (float) etc. */ -typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1]; -typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1]; -typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1]; - -#endif /* _FLOATPLUS_H */ diff --git a/include/libgnulib/fpe-trapping.h b/include/libgnulib/fpe-trapping.h deleted file mode 100755 index 1afa735..0000000 --- a/include/libgnulib/fpe-trapping.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Trapping floating-point exceptions. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* HAVE_FPE_TRAPPING - Defined to 1 when sigfpe_on_invalid is available. */ - -/* sigfpe_on_invalid - Enables a SIGFPE signal when an FE_INVALID exception occurs. - A SIGFPE signal by default terminates the program. - Returns >= 0 when successful, -1 upon failure. */ - - -#include - -static int -sigfpe_on_invalid () -{ - /* Clear FE_INVALID exceptions from past operations. */ - feclearexcept (FE_INVALID); - - /* An FE_INVALID exception shall trigger a SIGFPE signal. - This call may fail on arm, arm64, riscv64 CPUs. - Also, possibly a bug in glibc/sysdeps/m68k/fpu/feenablxcpt.c: it sets - only bit 13, but should better set bits 15, 14, 13 of the control - register together. See - . */ - int ret = feenableexcept (FE_INVALID); - if (ret == -1) - return -1; - - return 0; -} - -/* But it does not work on RISC-V. That's because the fcsr register has only - bits for floating-point exception status, but no bits for trapping - floating-point exceptions. */ -/* And it does not work on arm with software floating-point emulation. */ -#if !(defined __riscv || (defined __GLIBC__ && defined __arm__ && defined __SOFTFP__)) -# define HAVE_FPE_TRAPPING 1 -#endif diff --git a/include/libgnulib/fpending.h b/include/libgnulib/fpending.h deleted file mode 100755 index 345c0bc..0000000 --- a/include/libgnulib/fpending.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Declare __fpending. - - Copyright (C) 2000, 2003, 2005-2006, 2009-2024 Free Software Foundation, - Inc. - - 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 3 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, see . - - Written by Jim Meyering. */ - -/* This file uses _GL_ATTRIBUTE_PURE, HAVE_STDIO_EXT_H, - HAVE_DECL___FPENDING. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#if HAVE_STDIO_EXT_H -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#if !HAVE_DECL___FPENDING -size_t __fpending (FILE *) _GL_ATTRIBUTE_PURE; -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fprintftime.h b/include/libgnulib/fprintftime.h deleted file mode 100755 index 0001fef..0000000 --- a/include/libgnulib/fprintftime.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Generate time strings directly to the output. */ - -/* Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* A cross between fprintf and nstrftime, that prints directly - to the output stream, without the need for the potentially - large buffer that nstrftime would require. - - Output to stream FP the result of formatting (according to the - nstrftime format string, FMT) the time data, *TM, and the ZONE - and NANOSECONDS values. */ -size_t fprintftime (FILE *fp, char const *fmt, struct tm const *tm, - timezone_t zone, int nanoseconds); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fpucw.h b/include/libgnulib/fpucw.h deleted file mode 100755 index fdc53b8..0000000 --- a/include/libgnulib/fpucw.h +++ /dev/null @@ -1,118 +0,0 @@ -/* Manipulating the FPU control word. -*- coding: utf-8 -*- - Copyright (C) 2007-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2007. - - This file 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 file 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 program. If not, see . */ - -#ifndef _FPUCW_H -#define _FPUCW_H - -/* The i386 floating point hardware (the 387 compatible FPU, not the modern - SSE/SSE2 hardware) has a controllable rounding precision. It is specified - through the 'PC' bits in the FPU control word ('fctrl' register). (See - the GNU libc i386 header for details.) - - On some platforms, such as Linux or Solaris, the default precision setting - is set to "extended precision". This means that 'long double' instructions - operate correctly, but 'double' computations often produce slightly - different results as on strictly IEEE 754 conforming systems. - - On some platforms, such as NetBSD, the default precision is set to - "double precision". This means that 'long double' instructions will operate - only as 'double', i.e. lead to wrong results. Similarly on FreeBSD 6.4, at - least for the division of 'long double' numbers. - - The FPU control word is under control of the application, i.e. it is - not required to be set either way by the ABI. (In fact, the i386 ABI - https://www.linux-mips.org/pub/linux/mips/doc/ABI/abi386-4.pdf page 3-12 = page 38 - is not clear about it. But in any case, gcc treats the control word - like a "preserved" register: it emits code that assumes that the control - word is preserved across calls, and it restores the control word at the - end of functions that modify it.) - - See Vincent Lefèvre's page https://www.vinc17.net/research/extended.en.html - for a good explanation. - See https://web.archive.org/web/20060905133417/http://www.uwsg.iu.edu/hypermail/linux/kernel/0103.0/0453.html - some argumentation which setting should be the default. */ - -/* This header file provides the following facilities: - fpucw_t integral type holding the value of 'fctrl' - FPU_PC_MASK bit mask denoting the precision control - FPU_PC_DOUBLE precision control for 53 bits mantissa - FPU_PC_EXTENDED precision control for 64 bits mantissa - GET_FPUCW () yields the current FPU control word - SET_FPUCW (word) sets the FPU control word - DECL_LONG_DOUBLE_ROUNDING variable declaration for - BEGIN/END_LONG_DOUBLE_ROUNDING - BEGIN_LONG_DOUBLE_ROUNDING () starts a sequence of instructions with - 'long double' safe operation precision - END_LONG_DOUBLE_ROUNDING () ends a sequence of instructions with - 'long double' safe operation precision - */ - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Inline assembler like this works only with GNU C and clang. */ -#if (defined __i386__ || defined __x86_64__) && (defined __GNUC__ || defined __clang__) - -typedef unsigned short fpucw_t; /* glibc calls this fpu_control_t */ - -# define FPU_PC_MASK 0x0300 -# define FPU_PC_DOUBLE 0x200 /* glibc calls this _FPU_DOUBLE */ -# define FPU_PC_EXTENDED 0x300 /* glibc calls this _FPU_EXTENDED */ - -# define GET_FPUCW() __extension__ \ - ({ fpucw_t _cw; \ - __asm__ __volatile__ ("fnstcw %0" : "=m" (*&_cw)); \ - _cw; \ - }) -# define SET_FPUCW(word) __extension__ \ - (void)({ fpucw_t _ncw = (word); \ - __asm__ __volatile__ ("fldcw %0" : : "m" (*&_ncw)); \ - }) - -# define DECL_LONG_DOUBLE_ROUNDING \ - fpucw_t oldcw; -# define BEGIN_LONG_DOUBLE_ROUNDING() \ - (void)(oldcw = GET_FPUCW (), \ - SET_FPUCW ((oldcw & ~FPU_PC_MASK) | FPU_PC_EXTENDED)) -# define END_LONG_DOUBLE_ROUNDING() \ - SET_FPUCW (oldcw) - -#else - -typedef unsigned int fpucw_t; - -# define FPU_PC_MASK 0 -# define FPU_PC_DOUBLE 0 -# define FPU_PC_EXTENDED 0 - -# define GET_FPUCW() 0 -# define SET_FPUCW(word) (void)(word) - -# define DECL_LONG_DOUBLE_ROUNDING -# define BEGIN_LONG_DOUBLE_ROUNDING() -# define END_LONG_DOUBLE_ROUNDING() - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _FPUCW_H */ diff --git a/include/libgnulib/freadable.h b/include/libgnulib/freadable.h deleted file mode 100755 index b24e762..0000000 --- a/include/libgnulib/freadable.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE, HAVE___FREADABLE, HAVE_STDIO_EXT_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Return true if the stream STREAM supports reading, false if it supports - only writing, i.e. if it was opened write-only or append-only. - STREAM must not be wide-character oriented. - The result doesn't change until the stream is closed or re-opened. */ - -#if HAVE___FREADABLE -/* glibc >= 2.2, Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.34, Android API >= 23, musl libc */ - -# if HAVE_STDIO_EXT_H -# include -# endif -# define freadable(stream) (__freadable (stream) != 0) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern bool freadable (FILE *stream) _GL_ATTRIBUTE_PURE; - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/freadahead.h b/include/libgnulib/freadahead.h deleted file mode 100755 index f4fc26c..0000000 --- a/include/libgnulib/freadahead.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE, HAVE___FREADAHEAD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -/* Assuming the stream STREAM is open for reading: - Return the number of bytes waiting in the input buffer of STREAM. - This includes both the bytes that have been read from the underlying input - source and the bytes that have been pushed back through 'ungetc'. - - If this number is 0 and the stream is not currently writing, - fflush (STREAM) is known to be a no-op. - - STREAM must not be wide-character oriented. */ - -#if HAVE___FREADAHEAD /* musl libc, Android API level ≥ 33 */ - -# include -# define freadahead(stream) __freadahead (stream) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern size_t freadahead (FILE *stream) _GL_ATTRIBUTE_PURE; - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/freading.h b/include/libgnulib/freading.h deleted file mode 100755 index 943354f..0000000 --- a/include/libgnulib/freading.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE, HAVE___FREADING, HAVE_STDIO_EXT_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Return true if the stream STREAM is opened read-only, or if the - last operation on the stream was a read operation. Return false if - the stream is opened write-only or append-only, or if it supports - writing and there is no current read operation (such as fgetc). - - freading and fwriting will never both be true. If STREAM supports - both reads and writes, then: - - both freading and fwriting might be false when the stream is first - opened, after read encounters EOF, or after fflush, - - freading might be false or true and fwriting might be false - after repositioning (such as fseek, fsetpos, or rewind), - depending on the underlying implementation. - - STREAM must not be wide-character oriented. */ - -#if HAVE___FREADING && (!defined __GLIBC__ || defined __UCLIBC__ || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) -/* Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.34, Android API >= 29, not glibc >= 2.2, but glibc >= 2.7, or musl libc */ - -# if HAVE_STDIO_EXT_H -# include -# endif -# define freading(stream) (__freading (stream) != 0) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern bool freading (FILE *stream) _GL_ATTRIBUTE_PURE; - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/freadptr.h b/include/libgnulib/freadptr.h deleted file mode 100755 index e543f6d..0000000 --- a/include/libgnulib/freadptr.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses HAVE___FREADPTR. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -/* Assuming the stream STREAM is open for reading: - Return a pointer to the input buffer of STREAM, or NULL. - If the returned pointer is non-NULL, *SIZEP is set to the (positive) size - of the input buffer. - If the returned pointer is NULL, you should use getc (STREAM), - fgetc (STREAM), or fread (..., STREAM) to access the input from STREAM. - - The resulting pointer becomes invalid upon any operation on STREAM. - - STREAM must not be wide-character oriented. */ - -#if HAVE___FREADPTR /* musl libc */ - -# include -# define freadptr(stream,sizep) __freadptr (stream, sizep) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern const char * freadptr (FILE *stream, size_t *sizep); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/freadseek.h b/include/libgnulib/freadseek.h deleted file mode 100755 index ee63017..0000000 --- a/include/libgnulib/freadseek.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Skipping input from a FILE stream. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Assuming the stream STREAM is open for reading: - - Read and discard OFFSET bytes from STREAM. - - freadseek (STREAM, OFFSET) is the same as - fseek (STREAM, OFFSET, SEEK_CUR), except that the latter does not work - on non-seekable input streams (such as pipes). - - Upon success, return 0. - Upon premature end of stream, return 0 (like fseek does). - Upon error, set the error indicator in the stream and return EOF. - - STREAM must not be wide-character oriented. */ - -extern int freadseek (FILE *stream, size_t offset); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fseterr.h b/include/libgnulib/fseterr.h deleted file mode 100755 index 42e49fc..0000000 --- a/include/libgnulib/fseterr.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Set the error indicator of a stream. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _FSETERR_H -#define _FSETERR_H - -/* This file uses HAVE___FSETERR. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Set the error indicator of the stream FP. - The "error indicator" is set when an I/O operation on the stream fails, and - is cleared (together with the "end-of-file" indicator) by clearerr (FP). */ - -#if HAVE___FSETERR /* musl libc */ - -# include -# define fseterr(fp) __fseterr (fp) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern void fseterr (FILE *fp); - -# ifdef __cplusplus -} -# endif - -#endif - -#endif /* _FSETERR_H */ diff --git a/include/libgnulib/fstrcmp.h b/include/libgnulib/fstrcmp.h deleted file mode 100755 index 3b026f9..0000000 --- a/include/libgnulib/fstrcmp.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Fuzzy string comparison. - Copyright (C) 1995, 2000, 2002-2003, 2006, 2008-2024 Free Software - Foundation, Inc. - - This file was written by Peter Miller - -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 3 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, see . */ - -#ifndef _FSTRCMP_H -#define _FSTRCMP_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Fuzzy compare of S1 and S2. Return a measure for the similarity of S1 - and S1. The higher the result, the more similar the strings are. - The result is bounded between 0 (meaning very dissimilar strings) and - 1 (meaning identical strings). */ -extern double fstrcmp (const char *s1, const char *s2); - -/* Like fstrcmp (S1, S2), except that if the result is < LOWER_BOUND, an - arbitrary other value < LOWER_BOUND can be returned. */ -extern double fstrcmp_bounded (const char *s1, const char *s2, - double lower_bound); - -/* A shortcut for fstrcmp. Avoids a function call. */ -#define fstrcmp(s1,s2) fstrcmp_bounded (s1, s2, 0.0) - -/* Frees the per-thread resources allocated by this module for the current - thread. - You don't need to call this function in threads other than the main thread, - because per-thread resources are reclaimed automatically when the thread - exits. However, per-thread resources allocated by the main thread are - comparable to static allocations; calling this function can be useful to - avoid an error report from valgrind. */ -extern void fstrcmp_free_resources (void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/fsusage.h b/include/libgnulib/fsusage.h deleted file mode 100755 index da87859..0000000 --- a/include/libgnulib/fsusage.h +++ /dev/null @@ -1,49 +0,0 @@ -/* fsusage.h -- declarations for file system space usage info - - Copyright (C) 1991-1992, 1997, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Space usage statistics for a file system. Blocks are 512-byte. */ - -#if !defined FSUSAGE_H_ -#define FSUSAGE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -struct fs_usage -{ - uintmax_t fsu_blocksize; /* Size of a block. */ - uintmax_t fsu_blocks; /* Total blocks. */ - uintmax_t fsu_bfree; /* Free blocks available to superuser. */ - uintmax_t fsu_bavail; /* Free blocks available to non-superuser. */ - bool fsu_bavail_top_bit_set; /* 1 if fsu_bavail represents a value < 0. */ - uintmax_t fsu_files; /* Total file nodes. */ - uintmax_t fsu_ffree; /* Free file nodes. */ -}; - -int get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/ftoastr.h b/include/libgnulib/ftoastr.h deleted file mode 100755 index 9455486..0000000 --- a/include/libgnulib/ftoastr.h +++ /dev/null @@ -1,162 +0,0 @@ -/* floating point to accurate string - - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#ifndef _GL_FTOASTR_H -#define _GL_FTOASTR_H - -#include "intprops.h" -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Store into BUF (of size BUFSIZE) an accurate minimal-precision - string representation of a floating point number. FLAGS affect the - formatting of the number. Pad the output string with spaces as - necessary to width WIDTH bytes, in the style of printf. WIDTH must - be nonnegative. X is the floating-point number to be converted. - - Return the number of bytes stored into BUF, not counting the - terminating null. However, do not overrun BUF: if BUF is too - small, return a fairly tight (but not necessarily exact) upper - bound on the value that would have been returned if BUF had been - big enough. If SIZE is zero, BUF may be a null pointer. On error - (e.g., returned value would exceed INT_MAX), return -1 and set - errno. - - Example: - - char buf[DBL_BUFSIZE_BOUND]; - int r = dtoastr (buf, sizeof buf, 0, 0, 0.1); - - In the C locale, this sets R to 3 and stores "0.1" into BUF. */ - -int ftoastr (char *buf, size_t bufsize, int flags, int width, float x); -int dtoastr (char *buf, size_t bufsize, int flags, int width, double x); -int ldtoastr (char *buf, size_t bufsize, int flags, int width, long double x); - -/* The last two functions except that the formatting takes place in - the C locale. */ -int c_dtoastr (char *buf, size_t bufsize, int flags, int width, double x); -int c_ldtoastr (char *buf, size_t bufsize, int flags, int width, long double x); - - -/* Flag values for ftoastr etc. These can be ORed together. */ -enum - { - /* Left justify within the width; the default is right justification. */ - FTOASTR_LEFT_JUSTIFY = 1, - - /* Output "+" before positive numbers; the default outputs nothing. */ - FTOASTR_ALWAYS_SIGNED = 2, - - /* Output " " before positive numbers; ignored if - FTOASTR_ALWAYS_SIGNED is also given. */ - FTOASTR_SPACE_POSITIVE = 4, - - /* Pad with zeros instead of spaces; ignored if FTOASTR_LEFT_JUSTIFY - is also given. */ - FTOASTR_ZERO_PAD = 8, - - /* Use 'E' instead of 'e' before the exponent. */ - FTOASTR_UPPER_E = 16 - }; - - -/* _GL_FLT_PREC_BOUND is an upper bound on the precision needed to - represent a float value without losing information. Likewise for - _GL_DBL_PREC_BOUND and double, and _GL_LDBL_PREC_BOUND and long double. - These are macros, not enums, to work around a bug in IBM xlc 12.1. */ - -#if FLT_RADIX == 10 /* decimal floating point */ -# define _GL_FLT_PREC_BOUND FLT_MANT_DIG -# define _GL_DBL_PREC_BOUND DBL_MANT_DIG -# define _GL_LDBL_PREC_BOUND LDBL_MANT_DIG -#else - -/* An upper bound on the number of bits needed to represent a single - digit in a floating-point fraction. */ -# if FLT_RADIX == 2 /* IEEE 754 floating point, VAX floating point, etc. */ -# define _GL_FLOAT_DIG_BITS_BOUND 1 -# elif FLT_RADIX <= 16 /* IBM hex floating point has FLT_RADIX == 16. */ -# define _GL_FLOAT_DIG_BITS_BOUND 4 -# else /* no machine is this bad, but let's be complete */ -# define _GL_FLOAT_DIG_BITS_BOUND ((int) TYPE_WIDTH (int) - 1) -# endif - -/* An upper bound on the number of decimal digits needed to represent - a floating point number accurately, assuming a fraction contains - DIG digits. For why the "+ 1" is needed, see "Binary to Decimal - Conversion" in David Goldberg's paper "What Every Computer - Scientist Should Know About Floating-Point Arithmetic" - . */ -# define _GL_FLOAT_PREC_BOUND(dig) \ - (INT_BITS_STRLEN_BOUND ((dig) * _GL_FLOAT_DIG_BITS_BOUND) + 1) - -# define _GL_FLT_PREC_BOUND _GL_FLOAT_PREC_BOUND ( FLT_MANT_DIG) -# define _GL_DBL_PREC_BOUND _GL_FLOAT_PREC_BOUND ( DBL_MANT_DIG) -# define _GL_LDBL_PREC_BOUND _GL_FLOAT_PREC_BOUND (LDBL_MANT_DIG) -#endif - - -/* Bound on the number of bytes printed for an exponent in the range - MIN..MAX, where MIN < 0 < MAX; printf always prints a sign and at - least 2 digits. Although the maximum known exponent is 4932 for - IEEE 754 binary128, support tight bounds for exponents up to a - million, just in case. */ -#define _GL_FLOAT_EXPONENT_STRLEN_BOUND(min, max) \ - ( -100 < (min) && (max) < 100 ? 3 \ - : -1000 < (min) && (max) < 1000 ? 4 \ - : -10000 < (min) && (max) < 10000 ? 5 \ - : -100000 < (min) && (max) < 100000 ? 6 \ - : -1000000 < (min) && (max) < 1000000 ? 7 \ - : INT_STRLEN_BOUND (int) /* not a tight bound */) - -/* A reasonably tight bound on the length of a type-T floating value - formatted with ftoastr etc. Room is needed for sign, fraction - digits, decimal point, "e", and exponent. POINTLEN should be a - reasonably tight bound on the string length of the decimal - point. */ -#define _GL_FLOAT_STRLEN_BOUND_L(t, pointlen) \ - (1 + _GL_##t##_PREC_BOUND + pointlen + 1 \ - + _GL_FLOAT_EXPONENT_STRLEN_BOUND (t##_MIN_10_EXP, t##_MAX_10_EXP)) -#define FLT_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L ( FLT, pointlen) -#define DBL_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L ( DBL, pointlen) -#define LDBL_STRLEN_BOUND_L(pointlen) _GL_FLOAT_STRLEN_BOUND_L (LDBL, pointlen) - -/* Looser bounds that are locale-independent and are integral constant - expressions. */ -#define FLT_STRLEN_BOUND FLT_STRLEN_BOUND_L (MB_LEN_MAX) -#define DBL_STRLEN_BOUND DBL_STRLEN_BOUND_L (MB_LEN_MAX) -#define LDBL_STRLEN_BOUND LDBL_STRLEN_BOUND_L (MB_LEN_MAX) - -/* Looser, locale-independent bounds that include the trailing null byte. */ -#define FLT_BUFSIZE_BOUND ( FLT_STRLEN_BOUND + 1) -#define DBL_BUFSIZE_BOUND ( DBL_STRLEN_BOUND + 1) -#define LDBL_BUFSIZE_BOUND (LDBL_STRLEN_BOUND + 1) - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_FTOASTR_H */ diff --git a/include/libgnulib/fts_.h b/include/libgnulib/fts_.h deleted file mode 100755 index 00ea3f1..0000000 --- a/include/libgnulib/fts_.h +++ /dev/null @@ -1,280 +0,0 @@ -/* Traverse a file hierarchy. - - Copyright (C) 2004-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * 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. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "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 REGENTS 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. - * - * @(#)fts.h 8.3 (Berkeley) 8/14/94 - */ - -#ifndef _FTS_H -# define _FTS_H 1 - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_NODISCARD. */ -# if !_LIBC && !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# ifdef _LIBC -# include -# if __STDC_VERSION__ < 199901L -# define __FLEXIBLE_ARRAY_MEMBER 1 -# else -# define __FLEXIBLE_ARRAY_MEMBER -# endif -# else -# define __FLEXIBLE_ARRAY_MEMBER FLEXIBLE_ARRAY_MEMBER -# undef __THROW -# define __THROW -# undef __BEGIN_DECLS -# undef __END_DECLS -# ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -# else -# define __BEGIN_DECLS -# define __END_DECLS -# endif -# endif - -# include -# include -# include -# include -# include "i-ring.h" - -typedef struct { - struct _ftsent *fts_cur; /* current node */ - struct _ftsent *fts_child; /* linked list of children */ - struct _ftsent **fts_array; /* sort array */ - dev_t fts_dev; /* starting device # */ - char *fts_path; /* file name for this descent */ - int fts_rfd; /* fd for root */ - int fts_cwd_fd; /* the file descriptor on which the - virtual cwd is open, or AT_FDCWD */ - size_t fts_pathlen; /* sizeof(path) */ - size_t fts_nitems; /* elements in the sort array */ - int (*fts_compar) (struct _ftsent const **, struct _ftsent const **); - /* compare fn */ - -# define FTS_COMFOLLOW 0x0001 /* follow command line symlinks */ -# define FTS_LOGICAL 0x0002 /* logical walk */ -# define FTS_NOCHDIR 0x0004 /* don't change directories */ -# define FTS_NOSTAT 0x0008 /* don't get stat info */ -# define FTS_PHYSICAL 0x0010 /* physical walk */ -# define FTS_SEEDOT 0x0020 /* return dot and dot-dot */ -# define FTS_XDEV 0x0040 /* don't cross devices */ -# define FTS_WHITEOUT 0x0080 /* return whiteout information */ - - /* There are two ways to detect cycles. - The lazy way (which works only with FTS_PHYSICAL), - with which one may process a directory that is a - part of the cycle several times before detecting the cycle. - The "tight" way, whereby fts uses more memory (proportional - to number of "active" directories, aka distance from root - of current tree to current directory -- see active_dir_ht) - to detect any cycle right away. For example, du must use - this option to avoid counting disk space in a cycle multiple - times, but chown -R need not. - The default is to use the constant-memory lazy way, when possible - (see below). - - However, with FTS_LOGICAL (when following symlinks, e.g., chown -L) - using lazy cycle detection is inadequate. For example, traversing - a directory containing a symbolic link to a peer directory, it is - possible to encounter the same directory twice even though there - is no cycle: - dir - ... - slink -> dir - So, when FTS_LOGICAL is selected, we have to use a different - mode of cycle detection: FTS_TIGHT_CYCLE_CHECK. */ -# define FTS_TIGHT_CYCLE_CHECK 0x0100 - - /* Use this flag to enable semantics with which the parent - application may be made both more efficient and more robust. - Whereas the default is to visit each directory in a recursive - traversal (via chdir), using this flag makes it so the initial - working directory is never changed. Instead, these functions - perform the traversal via a virtual working directory, maintained - through the file descriptor member, fts_cwd_fd. */ -# define FTS_CWDFD 0x0200 - - /* Historically, for each directory that fts initially encounters, it would - open it, read all entries, and stat each entry, storing the results, and - then it would process the first entry. But that behavior is bad for - locality of reference, and also causes trouble with inode-simulating - file systems like FAT, CIFS, FUSE-based ones, etc., when entries from - their name/inode cache are flushed too early. - Use this flag to make fts_open and fts_read defer the stat/lstat/fststat - of each entry until it is actually processed. However, note that if you - use this option and also specify a comparison function, that function may - not examine any data via fts_statp. However, when fts_statp->st_mode is - nonzero, the S_IFMT type bits are valid, with mapped dirent.d_type data. - Of course, that happens only on file systems that provide useful - dirent.d_type data. */ -# define FTS_DEFER_STAT 0x0400 - - /* Use this flag to disable stripping of trailing slashes - from input path names during fts_open initialization. */ -# define FTS_VERBATIM 0x0800 - -# define FTS_OPTIONMASK 0x0fff /* valid user option mask */ - -# define FTS_NAMEONLY 0x1000 /* (private) child names only */ -# define FTS_STOP 0x2000 /* (private) unrecoverable error */ - int fts_options; /* fts_open options, global flags */ - - /* Map a directory's device number to a boolean. The boolean is - true if for that file system (type determined by a single fstatfs - call per FS) st_nlink can be used to calculate the number of - sub-directory entries in a directory. - Using this table is an optimization that permits us to look up - file system type on a per-inode basis at the minimal cost of - calling fstatfs only once per traversed device. */ - struct hash_table *fts_leaf_optimization_works_ht; - - union { - /* This data structure is used if FTS_TIGHT_CYCLE_CHECK is - specified. It records the directories between a starting - point and the current directory. I.e., a directory is - recorded here IFF we have visited it once, but we have not - yet completed processing of all its entries. Every time we - visit a new directory, we add that directory to this set. - When we finish with a directory (usually by visiting it a - second time), we remove it from this set. Each entry in - this data structure is a device/inode pair. This data - structure is used to detect directory cycles efficiently and - promptly even when the depth of a hierarchy is in the tens - of thousands. */ - struct hash_table *ht; - - /* FIXME: rename these two members to have the fts_ prefix */ - /* This data structure uses a lazy cycle-detection algorithm, - as done by rm via cycle-check.c. It's the default, - but it's not appropriate for programs like du. */ - struct cycle_check_state *state; - } fts_cycle; - - /* A stack of the file descriptors corresponding to the - most-recently traversed parent directories. - Currently used only in FTS_CWDFD mode. */ - I_ring fts_fd_ring; -} FTS; - -typedef struct _ftsent { - struct _ftsent *fts_cycle; /* cycle node */ - struct _ftsent *fts_parent; /* parent directory */ - struct _ftsent *fts_link; /* next file in directory */ - DIR *fts_dirp; /* Dir pointer for any directory - containing more entries than we - read at one time. */ - long fts_number; /* local numeric value */ - void *fts_pointer; /* local address value */ - char *fts_accpath; /* access file name */ - char *fts_path; /* root name; == fts_fts->fts_path */ - int fts_errno; /* errno for this node */ - int fts_symfd; /* fd for symlink */ - size_t fts_pathlen; /* strlen(fts_path) */ - - FTS *fts_fts; /* the file hierarchy itself */ - -# define FTS_ROOTPARENTLEVEL (-1) -# define FTS_ROOTLEVEL 0 - ptrdiff_t fts_level; /* depth (-1 to N) */ - - size_t fts_namelen; /* strlen(fts_name) */ - -# define FTS_D 1 /* preorder directory */ -# define FTS_DC 2 /* directory that causes cycles */ -# define FTS_DEFAULT 3 /* none of the above */ -# define FTS_DNR 4 /* unreadable directory */ -# define FTS_DOT 5 /* dot or dot-dot */ -# define FTS_DP 6 /* postorder directory */ -# define FTS_ERR 7 /* error; errno is set */ -# define FTS_F 8 /* regular file */ -# define FTS_INIT 9 /* initialized only */ -# define FTS_NS 10 /* stat(2) failed */ -# define FTS_NSOK 11 /* no stat(2) requested */ -# define FTS_SL 12 /* symbolic link */ -# define FTS_SLNONE 13 /* symbolic link without target */ -# define FTS_W 14 /* whiteout object */ - unsigned short int fts_info; /* user flags for FTSENT structure */ - -# define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */ -# define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */ - unsigned short int fts_flags; /* private flags for FTSENT structure */ - -# define FTS_AGAIN 1 /* read node again */ -# define FTS_FOLLOW 2 /* follow symbolic link */ -# define FTS_NOINSTR 3 /* no instructions */ -# define FTS_SKIP 4 /* discard node */ - unsigned short int fts_instr; /* fts_set() instructions */ - - struct stat fts_statp[1]; /* stat(2) information */ - char fts_name[__FLEXIBLE_ARRAY_MEMBER]; /* file name */ -} FTSENT; - -__BEGIN_DECLS - - _GL_ATTRIBUTE_NODISCARD -FTSENT *fts_children (FTS *, int) __THROW; - -_GL_ATTRIBUTE_NODISCARD -int fts_close (FTS *) __THROW; - -_GL_ATTRIBUTE_NODISCARD -FTS *fts_open (char * const *, int, - int (*)(const FTSENT **, const FTSENT **)) - _GL_ATTRIBUTE_DEALLOC (fts_close, 1) __THROW; - -_GL_ATTRIBUTE_NODISCARD -FTSENT *fts_read (FTS *) __THROW; - -int fts_set (FTS *, FTSENT *, int) __THROW; - -#if GNULIB_FTS_DEBUG -void fts_cross_check (FTS const *); -#endif -__END_DECLS - -#endif /* fts.h */ diff --git a/include/libgnulib/full-read.h b/include/libgnulib/full-read.h deleted file mode 100755 index 9d44e4f..0000000 --- a/include/libgnulib/full-read.h +++ /dev/null @@ -1,35 +0,0 @@ -/* An interface to read() that reads all it is asked to read. - - Copyright (C) 2002, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "idx.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Read COUNT bytes at BUF to descriptor FD, retrying if interrupted - or if partial reads occur. Return the number of bytes successfully - read, setting errno if that is less than COUNT. errno = 0 means EOF. */ -extern idx_t full_read (int fd, void *buf, idx_t count); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/full-write.h b/include/libgnulib/full-write.h deleted file mode 100755 index 7265499..0000000 --- a/include/libgnulib/full-write.h +++ /dev/null @@ -1,35 +0,0 @@ -/* An interface to write() that writes all it is asked to write. - - Copyright (C) 2002-2003, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "idx.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted - or if partial writes occur. Return the number of bytes successfully - written, setting errno if that is less than COUNT. */ -extern idx_t full_write (int fd, const void *buf, idx_t count); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fwritable.h b/include/libgnulib/fwritable.h deleted file mode 100755 index 0121b63..0000000 --- a/include/libgnulib/fwritable.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE, HAVE___FWRITABLE, HAVE_STDIO_EXT_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Return true if the stream STREAM supports writing, false if it supports - only reading. - STREAM must not be wide-character oriented. - The result doesn't change until the stream is closed or re-opened. */ - -#if HAVE___FWRITABLE -/* glibc >= 2.2, Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.34, Android API >= 23, musl libc */ - -# if HAVE_STDIO_EXT_H -# include -# endif -# define fwritable(stream) (__fwritable (stream) != 0) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern bool fwritable (FILE *stream) _GL_ATTRIBUTE_PURE; - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/fwriteerror.h b/include/libgnulib/fwriteerror.h deleted file mode 100755 index fd4842f..0000000 --- a/include/libgnulib/fwriteerror.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Detect write error on a stream. - Copyright (C) 2003, 2005-2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -/* There are two approaches for detecting a write error on a stream opened - for writing: - - (a) Test the return value of every fwrite() or fprintf() call, and react - immediately. - (b) Just before fclose(), test the error indicator in the stream and - the return value of the final fclose() call. - - The benefit of (a) is that non file related errors (such that ENOMEM during - fprintf) and temporary error conditions can be diagnosed accurately. - - A theoretical benefit of (a) is also that, on POSIX systems, in the case of - an ENOSPC error, errno is set and can be used by error() to provide a more - accurate error message. But in practice, this benefit is not big because - users can easily figure out by themselves why a file cannot be written to, - and furthermore the function fwriteerror() can provide errno as well. - - The big drawback of (a) is extensive error checking code: Every function - which does stream output must return an error indicator. - - This file provides support for (b). */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Write out the not yet written buffered contents of the stream FP, close - the stream FP, and test whether some error occurred on the stream FP. - FP must be a stream opened for writing. - Return 0 if no error occurred and fclose (fp) succeeded. - Return -1 and set errno if there was an error. The errno value will be 0 - if the cause of the error cannot be determined. - For any given stream FP other than stdout, fwriteerror (FP) may only be - called once. */ -extern int fwriteerror (FILE *fp); - -/* Likewise, but don't consider it an error if FP has an invalid file - descriptor and no output was done to FP. */ -extern int fwriteerror_no_ebadf (FILE *fp); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/fwriting.h b/include/libgnulib/fwriting.h deleted file mode 100755 index e513759..0000000 --- a/include/libgnulib/fwriting.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Retrieve information about a FILE stream. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE, HAVE___FWRITING, HAVE_STDIO_EXT_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Return true if the stream STREAM is opened write-only or - append-only, or if the last operation on the stream was a write - operation. Return false if the stream is opened read-only, or if - it supports reading and there is no current write operation (such - as fputc). - - freading and fwriting will never both be true. If STREAM supports - both reads and writes, then: - - both freading and fwriting might be false when the stream is first - opened, after read encounters EOF, or after fflush, - - freading might be false or true and fwriting might be false - after repositioning (such as fseek, fsetpos, or rewind), - depending on the underlying implementation. - - STREAM must not be wide-character oriented. */ - -#if HAVE___FWRITING -/* glibc >= 2.2, Solaris >= 7, UnixWare >= 7.1.4.MP4, Cygwin >= 1.7.34, Android API >= 29, musl libc */ - -# if HAVE_STDIO_EXT_H -# include -# endif -# define fwriting(stream) (__fwriting (stream) != 0) - -#else - -# ifdef __cplusplus -extern "C" { -# endif - -extern bool fwriting (FILE *stream) _GL_ATTRIBUTE_PURE; - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/gc.h b/include/libgnulib/gc.h deleted file mode 100755 index 51ad0dd..0000000 --- a/include/libgnulib/gc.h +++ /dev/null @@ -1,350 +0,0 @@ -/* gc.h --- Header file for implementation agnostic crypto wrapper API. - * Copyright (C) 2002-2005, 2007-2008, 2011-2024 Free Software Foundation, Inc. - * - * This file 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 file 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 program. If not, see . - * - */ - -#ifndef _GL_GC_H -#define _GL_GC_H - -/* This file uses _GL_ATTRIBUTE_CONST. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -/* Get size_t. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -enum Gc_rc -{ - GC_OK = 0, - GC_MALLOC_ERROR, - GC_INIT_ERROR, - GC_RANDOM_ERROR, - GC_INVALID_CIPHER, - GC_INVALID_HASH, - GC_PKCS5_INVALID_ITERATION_COUNT, - GC_PKCS5_INVALID_DERIVED_KEY_LENGTH, - GC_PKCS5_DERIVED_KEY_TOO_LONG -}; -typedef enum Gc_rc Gc_rc; - -/* Hash types. */ -enum Gc_hash -{ - GC_MD4, - GC_MD5, - GC_SHA1, - GC_MD2, - GC_RMD160, - GC_SHA256, - GC_SHA384, - GC_SHA512, - GC_SHA224, - GC_SM3 -}; -typedef enum Gc_hash Gc_hash; - -enum Gc_hash_mode -{ - GC_NULL, - GC_HMAC -}; -typedef enum Gc_hash_mode Gc_hash_mode; - -typedef void *gc_hash_handle; - -#define GC_MD2_DIGEST_SIZE 16 -#define GC_MD4_DIGEST_SIZE 16 -#define GC_MD5_DIGEST_SIZE 16 -#define GC_RMD160_DIGEST_SIZE 20 -#define GC_SHA1_DIGEST_SIZE 20 -#define GC_SHA256_DIGEST_SIZE 32 -#define GC_SHA384_DIGEST_SIZE 48 -#define GC_SHA512_DIGEST_SIZE 64 -#define GC_SHA224_DIGEST_SIZE 24 -#define GC_SM3_DIGEST_SIZE 32 - -#define GC_MAX_DIGEST_SIZE 64 - -/* Cipher types. */ -enum Gc_cipher -{ - GC_AES128, - GC_AES192, - GC_AES256, - GC_3DES, - GC_DES, - GC_ARCFOUR128, - GC_ARCFOUR40, - GC_ARCTWO40, - GC_CAMELLIA128, - GC_CAMELLIA256 -}; -typedef enum Gc_cipher Gc_cipher; - -enum Gc_cipher_mode -{ - GC_ECB, - GC_CBC, - GC_STREAM -}; -typedef enum Gc_cipher_mode Gc_cipher_mode; - -typedef void *gc_cipher_handle; - -/* Call before respectively after any other functions. */ -extern Gc_rc gc_init (void); -extern void gc_done (void); - -/* Memory allocation (avoid). */ -typedef void *(*gc_malloc_t) (size_t n); -typedef int (*gc_secure_check_t) (const void *); -typedef void *(*gc_realloc_t) (void *p, size_t n); -typedef void (*gc_free_t) (void *); -extern void gc_set_allocators (gc_malloc_t func_malloc, - gc_malloc_t secure_malloc, - gc_secure_check_t secure_check, - gc_realloc_t func_realloc, - gc_free_t func_free); - -/* Randomness. */ -extern Gc_rc gc_nonce (char *data, size_t datalen); -extern Gc_rc gc_pseudo_random (char *data, size_t datalen); -extern Gc_rc gc_random (char *data, size_t datalen); - -/* Ciphers. */ -extern Gc_rc gc_cipher_open (Gc_cipher cipher, Gc_cipher_mode mode, - gc_cipher_handle *outhandle); -extern Gc_rc gc_cipher_setkey (gc_cipher_handle handle, - size_t keylen, const char *key); -extern Gc_rc gc_cipher_setiv (gc_cipher_handle handle, - size_t ivlen, const char *iv); -extern Gc_rc gc_cipher_encrypt_inline (gc_cipher_handle handle, - size_t len, char *data); -extern Gc_rc gc_cipher_decrypt_inline (gc_cipher_handle handle, - size_t len, char *data); -extern Gc_rc gc_cipher_close (gc_cipher_handle handle); - -/* Hashes. */ - -extern Gc_rc gc_hash_open (Gc_hash hash, Gc_hash_mode mode, - gc_hash_handle *outhandle); -extern Gc_rc gc_hash_clone (gc_hash_handle handle, gc_hash_handle *outhandle); -extern size_t gc_hash_digest_length (Gc_hash hash) - _GL_ATTRIBUTE_CONST; -extern void gc_hash_hmac_setkey (gc_hash_handle handle, - size_t len, const char *key); -extern void gc_hash_write (gc_hash_handle handle, - size_t len, const char *data); -extern const char *gc_hash_read (gc_hash_handle handle); -extern void gc_hash_close (gc_hash_handle handle); - -/* Compute a hash value over buffer IN of INLEN bytes size using the - algorithm HASH, placing the result in the pre-allocated buffer OUT. - The required size of OUT depends on HASH, and is generally - GC__DIGEST_SIZE. For example, for GC_MD5 the output buffer - must be 16 bytes. The return value is 0 (GC_OK) on success, or - another Gc_rc error code. */ -extern Gc_rc -gc_hash_buffer (Gc_hash hash, const void *in, size_t inlen, char *out); - -/* One-call interface. */ -extern Gc_rc gc_md2 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_md4 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_md5 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_sha1 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_sha256 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_sha512 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_sm3 (const void *in, size_t inlen, void *resbuf); -extern Gc_rc gc_hmac_md5 (const void *key, size_t keylen, - const void *in, size_t inlen, char *resbuf); -extern Gc_rc gc_hmac_sha1 (const void *key, size_t keylen, - const void *in, size_t inlen, char *resbuf); -extern Gc_rc gc_hmac_sha256 (const void *key, size_t keylen, - const void *in, size_t inlen, char *resbuf); -extern Gc_rc gc_hmac_sha512 (const void *key, size_t keylen, - const void *in, size_t inlen, char *resbuf); - -/* Derive cryptographic keys using PKCS#5 PBKDF2 (RFC 2898) from a - password P of length PLEN, with salt S of length SLEN, placing the - result in pre-allocated buffer DK of length DKLEN. The PRF is hard - coded to be HMAC with HASH. An iteration count is specified in C - (> 0), where a larger value means this function take more time - (typical iteration counts are 1000-20000). This function - "stretches" the key to be exactly dkLen bytes long. GC_OK is - returned on success, otherwise a Gc_rc error code is returned. */ -extern Gc_rc -gc_pbkdf2_hmac (Gc_hash hash, - const char *P, size_t Plen, - const char *S, size_t Slen, - unsigned int c, char *restrict DK, size_t dkLen); - -extern Gc_rc -gc_pbkdf2_sha1 (const char *P, size_t Plen, - const char *S, size_t Slen, - unsigned int c, char *restrict DK, size_t dkLen); - -/* - TODO: - - From: Simon Josefsson - Subject: Re: generic crypto - Newsgroups: gmane.comp.lib.gnulib.bugs - Cc: bug-gnulib@gnu.org - Date: Fri, 07 Oct 2005 12:50:57 +0200 - Mail-Copies-To: nobody - - Paul Eggert writes: - - > Simon Josefsson writes: - > - >> * Perhaps the /dev/?random reading should be separated into a separate - >> module? It might be useful outside of the gc layer too. - > - > Absolutely. I've been meaning to do that for months (for a "shuffle" - > program I want to add to coreutils), but hadn't gotten around to it. - > It would have to be generalized a bit. I'd like to have the file - > descriptor cached, for example. - - I'll write a separate module for that part. - - I think we should even add a good PRNG that is re-seeded from - /dev/?random frequently. GnuTLS can need a lot of random data on a - big server, more than /dev/random can supply. And /dev/urandom might - not be strong enough. Further, the security of /dev/?random can also - be questionable. - - >> I'm also not sure about the names of those functions, they suggest - >> a more higher-level API than what is really offered (i.e., the - >> names "nonce" and "pseudo_random" and "random" imply certain - >> cryptographic properties). - > - > Could you expand a bit more on that? What is the relationship between - > nonce/pseudorandom/random and the /dev/ values you are using? - - There is none, that is the problem. - - Applications generally need different kind of "random" numbers. - Sometimes they just need some random data and doesn't care whether it - is possible for an attacker to compute the string (aka a "nonce"). - Sometimes they need data that is very difficult to compute (i.e., - computing it require inverting SHA1 or similar). Sometimes they need - data that is not possible to compute, i.e., it wants real entropy - collected over time on the system. Collecting the last kind of random - data is very expensive, so it must not be used too often. The second - kind of random data ("pseudo random") is typically generated by - seeding a good PRNG with a couple of hundred bytes of real entropy - from the "real random" data pool. The "nonce" is usually computed - using the PRNG as well, because PRNGs are usually fast. - - Pseudo-random data is typically used for session keys. Strong random - data is often used to generate long-term keys (e.g., private RSA - keys). - - Of course, there are many subtleties. There are several different - kind of nonce:s. Sometimes a nonce is just an ever-increasing - integer, starting from 0. Sometimes it is assumed to be unlikely to - be the same as previous nonces, but without a requirement that the - nonce is possible to guess. MD5(system clock) would thus suffice, if - it isn't called too often. You can guess what the next value will be, - but it will always be different. - - The problem is that /dev/?random doesn't offer any kind of semantic - guarantees. But applications need an API that make that promise. - - I think we should do this in several steps: - - 1) Write a module that can read from /dev/?random. - - 2) Add a module for a known-good PRNG suitable for random number - generation, that can be continuously re-seeded. - - 3) Add a high-level module that provide various different randomness - functions. One for nonces, perhaps even different kind of nonces, - one for pseudo random data, and one for strong random data. It is - not clear whether we can hope to achieve the last one in a portable - way. - - Further, it would be useful to allow users to provide their own - entropy source as a file, used to seed the PRNG or initialize the - strong randomness pool. This is used on embedded platforms that - doesn't have enough interrupts to hope to generate good random data. - - > For example, why not use OpenBSD's /dev/arandom? - - I don't trust ARC4. For example, recent cryptographic efforts - indicate that you must throw away the first 512 bytes generated from - the PRNG for it to be secure. I don't know whether OpenBSD do this. - Further, I recall some eprint paper on RC4 security that didn't - inspire confidence. - - While I trust the random devices in OpenBSD more than - Solaris/AIX/HPUX/etc, I think that since we need something better on - Solaris/AIX/HPUX we'd might as well use it on OpenBSD or even Linux - too. - - > Here is one thought. The user could specify a desired quality level - > range, and the implementation then would supply random data that is at - > least as good as the lower bound of the range. I.e., ihe - > implementation refuses to produce any random data if it can't generate - > data that is at least as good as the lower end of the range. The - > upper bound of the range is advice from the user not to be any more - > expensive than that, but the implementation can ignore the advice if - > it doesn't have anything cheaper. - - I'm not sure this is a good idea. Users can't really be expected to - understand this. Further, applications need many different kind of - random data. Selecting the randomness level for each by the user will - be too complicated. - - I think it is better if the application decide, from its cryptographic - requirement, what entropy quality it require, and call the proper API. - Meeting the implied semantic properties should be the job for gnulib. - - >> Perhaps gc_dev_random and gc_dev_urandom? - > - > To some extent. I'd rather insulate the user from the details of - > where the random numbers come from. On the other hand we need to - > provide a way for applications to specify a file that contains - > random bits, so that people can override the defaults. - - Agreed. - - This may require some thinking before it is finalized. Is it ok to - install the GC module as-is meanwhile? Then I can continue to add the - stuff that GnuTLS need, and then come back to re-working the - randomness module. That way, we have two different projects that use - the code. GnuTLS includes the same randomness code that was in GNU - SASL and that is in the current gc module. I feel much more - comfortable working in small steps at a time, rather then working on - this for a long time in gnulib and only later integrate the stuff in - GnuTLS. - - Thanks, - Simon - */ - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_GC_H */ diff --git a/include/libgnulib/gcd.h b/include/libgnulib/gcd.h deleted file mode 100755 index a35831c..0000000 --- a/include/libgnulib/gcd.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Arithmetic. - Copyright (C) 2001-2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _GCD_H -#define _GCD_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the greatest common divisor of a > 0 and b > 0. */ -extern unsigned long gcd (unsigned long a, unsigned long b); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GCD_H */ diff --git a/include/libgnulib/get_ppid_of.h b/include/libgnulib/get_ppid_of.h deleted file mode 100755 index 89bce8f..0000000 --- a/include/libgnulib/get_ppid_of.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Determine the parent process of a given process. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2019. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#ifndef _GET_PPID_OF_H -#define _GET_PPID_OF_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Returns the process id of the parent process of the given process, - or 0 if it cannot be determined. */ -extern pid_t get_ppid_of (pid_t pid); - -#ifdef __cplusplus -} -#endif - -#endif /* _GET_PPID_OF_H */ diff --git a/include/libgnulib/get_progname_of.h b/include/libgnulib/get_progname_of.h deleted file mode 100755 index 76e21df..0000000 --- a/include/libgnulib/get_progname_of.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Determine the program name of a given process. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2019. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#ifndef _GET_PROGNAME_OF_H -#define _GET_PROGNAME_OF_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Returns the base name of the program that executes the given process, - possibly truncated, as a freshly allocated string, or NULL if it cannot - be determined. */ -extern char *get_progname_of (pid_t pid) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#ifdef __cplusplus -} -#endif - -#endif /* _GET_PROGNAME_OF_H */ diff --git a/include/libgnulib/gethrxtime.h b/include/libgnulib/gethrxtime.h deleted file mode 100755 index 244337a..0000000 --- a/include/libgnulib/gethrxtime.h +++ /dev/null @@ -1,58 +0,0 @@ -/* gethrxtime -- get high resolution real time - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#ifndef GETHRXTIME_H_ -#define GETHRXTIME_H_ 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, HAVE_ARITHMETIC_HRTIME_T, - HAVE_DECL_GETHRTIME. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "xtime.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GETHRXTIME_INLINE -# define GETHRXTIME_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Get the current time, as a count of the number of nanoseconds since - an arbitrary epoch (e.g., the system boot time). Prefer a - high-resolution clock that is not subject to resetting or - drifting. */ - -#if HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME -# include -GETHRXTIME_INLINE xtime_t gethrxtime (void) { return gethrtime (); } -# else -xtime_t gethrxtime (void); -#endif - -_GL_INLINE_HEADER_END - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/getndelim2.h b/include/libgnulib/getndelim2.h deleted file mode 100755 index 34cfa2d..0000000 --- a/include/libgnulib/getndelim2.h +++ /dev/null @@ -1,52 +0,0 @@ -/* getndelim2 - Read a line from a stream, stopping at one of 2 delimiters, - with bounded memory allocation. - - Copyright (C) 2003-2004, 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef GETNDELIM2_H -#define GETNDELIM2_H 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define GETNLINE_NO_LIMIT ((size_t) -1) - -/* Read into a buffer *LINEPTR returned from malloc (or NULL), - pointing to *LINESIZE bytes of space. Store the input bytes - starting at *LINEPTR + OFFSET, and null-terminate them. Reallocate - the buffer as necessary, but if NMAX is not GETNLINE_NO_LIMIT - then do not allocate more than NMAX bytes; if the line is longer - than that, read and discard the extra bytes. Stop reading after - the first occurrence of DELIM1 or DELIM2, whichever comes first; - a delimiter equal to EOF stands for no delimiter. Read the - input bytes from STREAM. - Return the number of bytes read and stored at *LINEPTR + OFFSET (not - including the NUL terminator), or -1 on error or EOF. */ -extern ssize_t getndelim2 (char **lineptr, size_t *linesize, size_t offset, - size_t nmax, int delim1, int delim2, - FILE *stream); - - -#ifdef __cplusplus -} -#endif - -#endif /* GETNDELIM2_H */ diff --git a/include/libgnulib/getnline.h b/include/libgnulib/getnline.h deleted file mode 100755 index d16c6ae..0000000 --- a/include/libgnulib/getnline.h +++ /dev/null @@ -1,57 +0,0 @@ -/* getnline - Read a line from a stream, with bounded memory allocation. - - Copyright (C) 2003-2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef GETNLINE_H -#define GETNLINE_H 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define GETNLINE_NO_LIMIT ((size_t) -1) - -/* Read a line, up to the next newline, from STREAM, and store it in *LINEPTR. - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. Reallocation is limited to - NMAX bytes; if the line is longer than that, the extra bytes are read but - thrown away. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -extern ssize_t getnline (char **lineptr, size_t *linesize, size_t nmax, - FILE *stream); - -/* Read a line, up to the next occurrence of DELIMITER, from STREAM, and store - it in *LINEPTR. - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. Reallocation is limited to - NMAX bytes; if the line is longer than that, the extra bytes are read but - thrown away. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -extern ssize_t getndelim (char **lineptr, size_t *linesize, size_t nmax, - int delimiter, FILE *stream); - - -#ifdef __cplusplus -} -#endif - -#endif /* GETNLINE_H */ diff --git a/include/libgnulib/getopt-core.h b/include/libgnulib/getopt-core.h deleted file mode 100755 index 12d09a2..0000000 --- a/include/libgnulib/getopt-core.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Declarations for getopt (basic, portable features only). - Copyright (C) 1989-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _GETOPT_CORE_H -#define _GETOPT_CORE_H 1 - -/* This header should not be used directly; include getopt.h or - unistd.h instead. Unlike most bits headers, it does not have - a protective #error, because the guard macro for getopt.h in - gnulib is not fixed. */ - -__BEGIN_DECLS - -/* For communication from 'getopt' to the caller. - When 'getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when 'ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to 'getopt'. - - On entry to 'getopt', zero means this is the first call; initialize. - - When 'getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, 'optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message 'getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -/* Get definitions and prototypes for functions to process the - arguments in ARGV (ARGC of them, minus the program name) for - options given in OPTS. - - Return the option character from OPTS just read. Return -1 when - there are no more options. For unrecognized options, or options - missing arguments, 'optopt' is set to the option letter, and '?' is - returned. - - The OPTS string is a list of characters which are recognized option - letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in 'optarg'. - - If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU 'getopt'. - - The argument '--' causes premature termination of argument - scanning, explicitly telling 'getopt' that there are no more - options. - - If OPTS begins with '-', then non-option arguments are treated as - arguments to the option '\1'. This behavior is specific to the GNU - 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in - the environment, then do not permute arguments. - - For standards compliance, the 'argv' argument has the type - char *const *, but this is inaccurate; if argument permutation is - enabled, the argv array (not the strings it points to) must be - writable. */ - -extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) - __THROW _GL_ARG_NONNULL ((2, 3)); - -__END_DECLS - -#endif /* _GETOPT_CORE_H */ diff --git a/include/libgnulib/getopt-ext.h b/include/libgnulib/getopt-ext.h deleted file mode 100755 index e4b499d..0000000 --- a/include/libgnulib/getopt-ext.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Declarations for getopt (GNU extensions). - Copyright (C) 1989-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _GETOPT_EXT_H -#define _GETOPT_EXT_H 1 - -/* This header should not be used directly; include getopt.h instead. - Unlike most bits headers, it does not have a protective #error, - because the guard macro for getopt.h in gnulib is not fixed. */ - -__BEGIN_DECLS - -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of 'struct option' terminated by an element containing a name which is - zero. - - The field 'has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field 'flag' is not NULL, it points to a variable that is set - to the value given in the field 'val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an 'int' to - a compiled-in constant, such as set a value from 'optarg', set the - option's 'flag' field to zero and its 'val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero 'flag' field, 'getopt' - returns the contents of the 'val' field. */ - -struct option -{ - const char *name; - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the 'has_arg' field of 'struct option'. */ - -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 - -extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind) - __THROW _GL_ARG_NONNULL ((2, 3)); -extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind) - __THROW _GL_ARG_NONNULL ((2, 3)); - -__END_DECLS - -#endif /* _GETOPT_EXT_H */ diff --git a/include/libgnulib/getopt-pfx-core.h b/include/libgnulib/getopt-pfx-core.h deleted file mode 100755 index df2cb18..0000000 --- a/include/libgnulib/getopt-pfx-core.h +++ /dev/null @@ -1,73 +0,0 @@ -/* getopt (basic, portable features) gnulib wrapper header. - Copyright (C) 1989-2024 Free Software Foundation, Inc. - This file is part of gnulib. - Unlike most of the getopt implementation, it is NOT shared - with the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GETOPT_PFX_CORE_H -#define _GETOPT_PFX_CORE_H 1 - -/* This header should not be used directly; include getopt.h or - unistd.h instead. It does not have a protective #error, because - the guard macro for getopt.h in gnulib is not fixed. */ - -/* Standalone applications should #define __GETOPT_PREFIX to an - identifier that prefixes the external functions and variables - defined in getopt-core.h and getopt-ext.h. Systematically - rename identifiers so that they do not collide with the system - functions and variables. Renaming avoids problems with some - compilers and linkers. */ -#ifdef __GETOPT_PREFIX - -/* Include platform-dependent header files that may declare getopt() and - friends. */ -# if defined _AIX || defined __hpux || defined __sun || defined __QNX__ -# include -# endif - -# ifndef __GETOPT_ID -# define __GETOPT_CONCAT(x, y) x ## y -# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) -# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) -# endif -# undef getopt -# undef optarg -# undef opterr -# undef optind -# undef optopt -# define getopt __GETOPT_ID (getopt) -# define optarg __GETOPT_ID (optarg) -# define opterr __GETOPT_ID (opterr) -# define optind __GETOPT_ID (optind) -# define optopt __GETOPT_ID (optopt) - -/* Work around a problem on macOS, which declares getopt with a - trailing __DARWIN_ALIAS(getopt) that would expand to something like - __asm("_" "rpl_getopt" "$UNIX2003") were it not for the following - hack to suppress the macOS declaration . */ -# ifdef __APPLE__ -# define _GETOPT -# endif - -/* The system's getopt.h may have already included getopt-core.h to - declare the unprefixed identifiers. Undef _GETOPT_CORE_H so that - getopt-core.h declares them with prefixes. */ -# undef _GETOPT_CORE_H -#endif - -#include - -#endif /* _GETOPT_PFX_CORE_H */ diff --git a/include/libgnulib/getopt-pfx-ext.h b/include/libgnulib/getopt-pfx-ext.h deleted file mode 100755 index f001c11..0000000 --- a/include/libgnulib/getopt-pfx-ext.h +++ /dev/null @@ -1,70 +0,0 @@ -/* getopt (GNU extensions) gnulib wrapper header. - Copyright (C) 1989-2024 Free Software Foundation, Inc. - This file is part of gnulib. - Unlike most of the getopt implementation, it is NOT shared - with the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GETOPT_PFX_EXT_H -#define _GETOPT_PFX_EXT_H 1 - -/* This header should not be used directly; include getopt.h instead. - It does not have a protective #error, because the guard macro for - getopt.h in gnulib is not fixed. */ - -/* Standalone applications should #define __GETOPT_PREFIX to an - identifier that prefixes the external functions and variables - defined in getopt-core.h and getopt-ext.h. Systematically - rename identifiers so that they do not collide with the system - functions and variables. Renaming avoids problems with some - compilers and linkers. */ -#ifdef __GETOPT_PREFIX -# ifndef __GETOPT_ID -# define __GETOPT_CONCAT(x, y) x ## y -# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) -# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) -# endif -# undef getopt_long -# undef getopt_long_only -# undef option -# undef _getopt_internal -# define getopt_long __GETOPT_ID (getopt_long) -# define getopt_long_only __GETOPT_ID (getopt_long_only) -# define option __GETOPT_ID (option) -# define _getopt_internal __GETOPT_ID (getopt_internal) - -/* The system's getopt.h may have already included getopt-ext.h to - declare the unprefixed identifiers. Undef _GETOPT_EXT_H so that - getopt-ext.h declares them with prefixes. */ -# undef _GETOPT_EXT_H -#endif - -/* Standalone applications get correct prototypes for getopt_long and - getopt_long_only; they declare "char **argv". For backward - compatibility with old applications, if __GETOPT_PREFIX is not - defined, we supply GNU-libc-compatible, but incorrect, prototypes - using "char *const *argv". (GNU libc is stuck with the incorrect - prototypes, as they are baked into older versions of LSB.) */ -#ifndef __getopt_argv_const -# if defined __GETOPT_PREFIX -# define __getopt_argv_const /* empty */ -# else -# define __getopt_argv_const const -# endif -#endif - -#include - -#endif /* _GETOPT_PFX_EXT_H */ diff --git a/include/libgnulib/getopt_int.h b/include/libgnulib/getopt_int.h deleted file mode 100755 index c00c0b6..0000000 --- a/include/libgnulib/getopt_int.h +++ /dev/null @@ -1,118 +0,0 @@ -/* Internal declarations for getopt. - Copyright (C) 1989-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library and is also part of gnulib. - Patches to this file should be submitted to both projects. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _GETOPT_INT_H -#define _GETOPT_INT_H 1 - -#include - -extern int _getopt_internal (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only, int __posixly_correct); - - -/* Reentrant versions which can handle parsing multiple argument - vectors at the same time. */ - -/* Describe how to deal with options that follow non-option ARGV-elements. - - REQUIRE_ORDER means don't recognize them as options; stop option - processing when the first non-option is seen. This is what POSIX - specifies should happen. - - PERMUTE means permute the contents of ARGV as we scan, so that - eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written - to expect this. - - RETURN_IN_ORDER is an option available to programs that were - written to expect options and other ARGV-elements in any order - and that care about the ordering of the two. We describe each - non-option ARGV-element as if it were the argument of an option - with character code 1. - - The special argument '--' forces an end of option-scanning regardless - of the value of 'ordering'. In the case of RETURN_IN_ORDER, only - '--' can cause 'getopt' to return -1 with 'optind' != ARGC. */ - -enum __ord - { - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER - }; - -/* Data type for reentrant functions. */ -struct _getopt_data -{ - /* These have exactly the same meaning as the corresponding global - variables, except that they are used for the reentrant - versions of getopt. */ - int optind; - int opterr; - int optopt; - char *optarg; - - /* Internal members. */ - - /* True if the internal members have been initialized. */ - int __initialized; - - /* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - char *__nextchar; - - /* See __ord above. */ - enum __ord __ordering; - - /* Handle permutation of arguments. */ - - /* Describe the part of ARGV that contains non-options that have - been skipped. 'first_nonopt' is the index in ARGV of the first - of them; 'last_nonopt' is the index after the last of them. */ - - int __first_nonopt; - int __last_nonopt; -}; - -/* The initializer is necessary to set OPTIND and OPTERR to their - default values and to clear the initialization flag. */ -#define _GETOPT_DATA_INITIALIZER { 1, 1 } - -extern int _getopt_internal_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only, struct _getopt_data *__data, - int __posixly_correct); - -extern int _getopt_long_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - struct _getopt_data *__data); - -extern int _getopt_long_only_r (int ___argc, char **___argv, - const char *__shortopts, - const struct option *__longopts, - int *__longind, - struct _getopt_data *__data); - -#endif /* getopt_int.h */ diff --git a/include/libgnulib/getpass.h b/include/libgnulib/getpass.h deleted file mode 100755 index b897e3b..0000000 --- a/include/libgnulib/getpass.h +++ /dev/null @@ -1,21 +0,0 @@ -/* Read a password from /dec/tty. - - Copyright (C) 2004-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Obsolete; consider using unistd.h instead. */ - -/* Get getpass declaration, if available. */ -#include diff --git a/include/libgnulib/getprogname.h b/include/libgnulib/getprogname.h deleted file mode 100755 index bee1c1a..0000000 --- a/include/libgnulib/getprogname.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Program name management. - Copyright (C) 2016-2024 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_GETPROGNAME_H -#define _GL_GETPROGNAME_H - -#include - -#if __GNUC__ || (__clang_major__ >= 4) -# warning "The include file getprogname.h is deprecated. Use instead." -#endif - -#endif diff --git a/include/libgnulib/gettext.h b/include/libgnulib/gettext.h deleted file mode 100755 index 39d5ae4..0000000 --- a/include/libgnulib/gettext.h +++ /dev/null @@ -1,300 +0,0 @@ -/* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _LIBGETTEXT_H -#define _LIBGETTEXT_H 1 - -/* NLS can be disabled through the configure --disable-nls option - or through "#define ENABLE NLS 0" before including this file. */ -#if defined ENABLE_NLS && ENABLE_NLS - -/* Get declarations of GNU message catalog functions. */ -# include - -/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by - the gettext() and ngettext() macros. This is an alternative to calling - textdomain(), and is useful for libraries. */ -# ifdef DEFAULT_TEXT_DOMAIN -# undef gettext -# define gettext(Msgid) \ - dgettext (DEFAULT_TEXT_DOMAIN, Msgid) -# undef ngettext -# define ngettext(Msgid1, Msgid2, N) \ - dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) -# endif - -#else - -/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which - chokes if dcgettext is defined as a macro. So include it now, to make - later inclusions of a NOP. We don't include - as well because people using "gettext.h" will not include , - and also including would fail on SunOS 4, whereas - is OK. */ -#if defined(__sun) -# include -#endif - -/* Many header files from the libstdc++ coming with g++ 3.3 or newer include - , which chokes if dcgettext is defined as a macro. So include - it now, to make later inclusions of a NOP. */ -#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) -# include -# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H -# include -# endif -#endif - -/* Disabled NLS. - The casts to 'const char *' serve the purpose of producing warnings - for invalid uses of the value returned from these functions. - On pre-ANSI systems without 'const', the config.h file is supposed to - contain "#define const". */ -# undef gettext -# define gettext(Msgid) ((const char *) (Msgid)) -# undef dgettext -# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) -# undef dcgettext -# define dcgettext(Domainname, Msgid, Category) \ - ((void) (Category), dgettext (Domainname, Msgid)) -# undef ngettext -# define ngettext(Msgid1, Msgid2, N) \ - ((N) == 1 \ - ? ((void) (Msgid2), (const char *) (Msgid1)) \ - : ((void) (Msgid1), (const char *) (Msgid2))) -# undef dngettext -# define dngettext(Domainname, Msgid1, Msgid2, N) \ - ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) -# undef dcngettext -# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ - ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) -# undef textdomain -# define textdomain(Domainname) ((const char *) (Domainname)) -# undef bindtextdomain -# define bindtextdomain(Domainname, Dirname) \ - ((void) (Domainname), (const char *) (Dirname)) -# undef bind_textdomain_codeset -# define bind_textdomain_codeset(Domainname, Codeset) \ - ((void) (Domainname), (const char *) (Codeset)) - -#endif - -/* Prefer gnulib's setlocale override over libintl's setlocale override. */ -#ifdef GNULIB_defined_setlocale -# undef setlocale -# define setlocale rpl_setlocale -#endif - -/* A pseudo function call that serves as a marker for the automated - extraction of messages, but does not call gettext(). The run-time - translation is done at a different place in the code. - The argument, String, should be a literal string. Concatenated strings - and other string expressions won't work. - The macro's expansion is not parenthesized, so that it is suitable as - initializer for static 'char[]' or 'const char[]' variables. */ -#define gettext_noop(String) String - -/* The separator between msgctxt and msgid in a .mo file. */ -#define GETTEXT_CONTEXT_GLUE "\004" - -/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a - MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be - short and rarely need to change. - The letter 'p' stands for 'particular' or 'special'. */ -#ifdef DEFAULT_TEXT_DOMAIN -# define pgettext(Msgctxt, Msgid) \ - pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#else -# define pgettext(Msgctxt, Msgid) \ - pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#endif -#define dpgettext(Domainname, Msgctxt, Msgid) \ - pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ - pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) -#ifdef DEFAULT_TEXT_DOMAIN -# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#else -# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#endif -#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ - npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -pgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - int category) -{ - const char *translation = dcgettext (domain, msg_ctxt_id, category); - if (translation == msg_ctxt_id) - return msgid; - else - return translation; -} - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -npgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) -{ - const char *translation = - dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); - if (translation == msg_ctxt_id || translation == msgid_plural) - return (n == 1 ? msgid : msgid_plural); - else - return translation; -} - -/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID - can be arbitrary expressions. But for string literals these macros are - less efficient than those above. */ - -#include - -/* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. - This relates to the -Wvla and -Wvla-larger-than warnings, enabled in - the default GCC many warnings set. This allows programs to disable use - of VLAs, which may be unintended, or may be awkward to support portably, - or may have security implications due to non-deterministic stack usage. */ - -#if (!defined GNULIB_NO_VLA \ - && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ - && !defined __STDC_NO_VLA__) -# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 -#else -# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 -#endif - -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS -#include -#endif - -#define pgettext_expr(Msgctxt, Msgid) \ - dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) -#define dpgettext_expr(Domainname, Msgctxt, Msgid) \ - dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -dcpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - int category) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; -#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - char msg_ctxt_id[msgctxt_len + msgid_len]; -#else - char buf[1024]; - char *msg_ctxt_id = - (msgctxt_len + msgid_len <= sizeof (buf) - ? buf - : (char *) malloc (msgctxt_len + msgid_len)); - if (msg_ctxt_id != NULL) -#endif - { - int found_translation; - 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 = dcgettext (domain, msg_ctxt_id, category); - found_translation = (translation != msg_ctxt_id); -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - if (msg_ctxt_id != buf) - free (msg_ctxt_id); -#endif - if (found_translation) - return translation; - } - return msgid; -} - -#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ - dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) -#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ - dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -dcnpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; -#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - char msg_ctxt_id[msgctxt_len + msgid_len]; -#else - char buf[1024]; - char *msg_ctxt_id = - (msgctxt_len + msgid_len <= sizeof (buf) - ? buf - : (char *) malloc (msgctxt_len + msgid_len)); - if (msg_ctxt_id != NULL) -#endif - { - int found_translation; - 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 = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); - found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - if (msg_ctxt_id != buf) - free (msg_ctxt_id); -#endif - if (found_translation) - return translation; - } - return (n == 1 ? msgid : msgid_plural); -} - -#endif /* _LIBGETTEXT_H */ diff --git a/include/libgnulib/getugroups.h b/include/libgnulib/getugroups.h deleted file mode 100755 index c5cfd31..0000000 --- a/include/libgnulib/getugroups.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Get a list of group IDs associated with a specified user ID. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int getugroups (int maxcount, gid_t *grouplist, char const *username, - gid_t gid); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/gl_anyavltree_list1.h b/include/libgnulib/gl_anyavltree_list1.h deleted file mode 100755 index 3fb993e..0000000 --- a/include/libgnulib/gl_anyavltree_list1.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_avltree_list.c and gl_avltreehash_list.c. */ - -/* An AVL tree is a binary tree where - 1. The height of each node is calculated as - heightof(node) = 1 + max (heightof(node.left), heightof(node.right)). - 2. The heights of the subtrees of each node differ by at most 1: - | heightof(right) - heightof(left) | <= 1. - 3. The index of the elements in the node.left subtree are smaller than - the index of node. - The index of the elements in the node.right subtree are larger than - the index of node. - */ - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -/* Concrete list node implementation, valid for this file only. */ -struct gl_list_node_impl -{ -#if WITH_HASHTABLE - struct gl_hash_entry h; /* hash table entry fields; must be first */ -#endif - struct gl_list_node_impl *left; /* left branch, or NULL */ - struct gl_list_node_impl *right; /* right branch, or NULL */ - /* Parent pointer, or NULL. The parent pointer is not needed for most - operations. It is needed so that a gl_list_node_t can be returned - without memory allocation, on which the functions gl_list_remove_node, - gl_list_add_before, gl_list_add_after can be implemented. */ - struct gl_list_node_impl *parent; - int balance; /* heightof(right) - heightof(left), - always = -1 or 0 or 1 */ - size_t branch_size; /* number of nodes in this branch, - = branchsize(left)+branchsize(right)+1 */ - const void *value; -}; - -/* Concrete gl_list_impl type, valid for this file only. */ -struct gl_list_impl -{ - struct gl_list_impl_base base; -#if WITH_HASHTABLE - /* A hash table: managed as an array of collision lists. */ - struct gl_hash_entry **table; - size_t table_size; -#endif - struct gl_list_node_impl *root; /* root node or NULL */ -}; - -/* An AVL tree of height h has at least F_(h+2) - 1 [Fibonacci number] and at - most 2^h - 1 elements. So, h <= 84 (because a tree of height h >= 85 would - have at least F_87 - 1 elements, and because even on 64-bit machines, - sizeof (gl_list_node_impl) * (F_87 - 1) > 2^64 - this would exceed the address space of the machine. */ -#define MAXHEIGHT 83 diff --git a/include/libgnulib/gl_anyavltree_list2.h b/include/libgnulib/gl_anyavltree_list2.h deleted file mode 100755 index df7d89e..0000000 --- a/include/libgnulib/gl_anyavltree_list2.h +++ /dev/null @@ -1,809 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_avltree_list.c and gl_avltreehash_list.c. */ - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -/* Creates a subtree for count >= 1 elements. - Its height is h where 2^(h-1) <= count <= 2^h - 1. - Returns NULL upon out-of-memory. */ -static gl_list_node_t -create_subtree_with_contents (size_t count, const void **contents) -{ - size_t half1 = (count - 1) / 2; - size_t half2 = count / 2; - /* Note: half1 + half2 = count - 1. */ - gl_list_node_t node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - if (node == NULL) - return NULL; - - if (half1 > 0) - { - node->left = create_subtree_with_contents (half1, contents); - if (node->left == NULL) - goto fail1; - node->left->parent = node; - } - else - node->left = NULL; - - node->value = contents[half1]; - - if (half2 > 0) - { - node->right = create_subtree_with_contents (half2, contents + half1 + 1); - if (node->right == NULL) - goto fail2; - node->right->parent = node; - } - else - node->right = NULL; - - /* balance is 0, except when count is a power of two and > 1. - Reason: half1 <= half2 <= half1 + 1, and the two branches can have - different heights only if half1 = 2^h - 1 and half2 = 2^h; in this - case, count = half1 + half2 + 1 = 2^(h+1). */ - node->balance = (count > 1 && (count & (count - 1)) == 0 ? 1 : 0); - - node->branch_size = count; - - return node; - - fail2: - if (node->left != NULL) - free_subtree (node->left); - fail1: - free (node); - return NULL; -} - -static gl_list_t -gl_tree_nx_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) -{ - struct gl_list_impl *list = - (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl)); - - if (list == NULL) - return NULL; - - list->base.vtable = implementation; - list->base.equals_fn = equals_fn; - list->base.hashcode_fn = hashcode_fn; - list->base.dispose_fn = dispose_fn; - list->base.allow_duplicates = allow_duplicates; -#if WITH_HASHTABLE - { - size_t estimate = xsum (count, count / 2); /* 1.5 * count */ - if (estimate < 10) - estimate = 10; - list->table_size = next_prime (estimate); - if (size_overflow_p (xtimes (list->table_size, sizeof (gl_hash_entry_t)))) - goto fail1; - list->table = - (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t)); - if (list->table == NULL) - goto fail1; - } -#endif - if (count > 0) - { - list->root = create_subtree_with_contents (count, contents); - if (list->root == NULL) - goto fail2; - list->root->parent = NULL; - -#if WITH_HASHTABLE - /* Now that the tree is built, node_position() works. Now we can - add the nodes to the hash table. */ - if (add_nodes_to_buckets (list) < 0) - goto fail3; -#endif - } - else - list->root = NULL; - - return list; - -#if WITH_HASHTABLE - fail3: - free_subtree (list->root); -#endif - fail2: -#if WITH_HASHTABLE - free (list->table); - fail1: -#endif - free (list); - return NULL; -} - -/* Ensures the tree is balanced, after an insertion or deletion operation. - The height of NODE is incremented by HEIGHT_DIFF (1 or -1). - PARENT = NODE->parent. (NODE can also be NULL. But PARENT is non-NULL.) - Rotation operations are performed starting at PARENT (not NODE itself!). */ -static void -rebalance (gl_list_t list, - gl_list_node_t node, int height_diff, gl_list_node_t parent) -{ - for (;;) - { - gl_list_node_t child; - int previous_balance; - int balance_diff; - gl_list_node_t nodeleft; - gl_list_node_t noderight; - - child = node; - node = parent; - - previous_balance = node->balance; - - /* The balance of NODE is incremented by BALANCE_DIFF: +1 if the right - branch's height has increased by 1 or the left branch's height has - decreased by 1, -1 if the right branch's height has decreased by 1 or - the left branch's height has increased by 1, 0 if no height change. */ - if (node->left != NULL || node->right != NULL) - balance_diff = (child == node->right ? height_diff : -height_diff); - else - /* Special case where above formula doesn't work, because the caller - didn't tell whether node's left or right branch shrunk from height 1 - to NULL. */ - balance_diff = - previous_balance; - - node->balance += balance_diff; - if (balance_diff == previous_balance) - { - /* node->balance is outside the range [-1,1]. Must rotate. */ - gl_list_node_t *nodep; - - if (node->parent == NULL) - /* node == list->root */ - nodep = &list->root; - else if (node->parent->left == node) - nodep = &node->parent->left; - else if (node->parent->right == node) - nodep = &node->parent->right; - else - abort (); - - nodeleft = node->left; - noderight = node->right; - - if (balance_diff < 0) - { - /* node->balance = -2. The subtree is heavier on the left side. - Rotate from left to right: - - * - / \ - h+2 h - */ - gl_list_node_t nodeleftleft = nodeleft->left; - gl_list_node_t nodeleftright = nodeleft->right; - if (nodeleft->balance <= 0) - { - /* - * h+2|h+3 - / \ / \ - h+2 h --> / h+1|h+2 - / \ | / \ - h+1 h|h+1 h+1 h|h+1 h - */ - node->left = nodeleftright; - nodeleft->right = node; - - nodeleft->parent = node->parent; - node->parent = nodeleft; - if (nodeleftright != NULL) - nodeleftright->parent = node; - - nodeleft->balance += 1; - node->balance = - nodeleft->balance; - - node->branch_size = - (nodeleftright != NULL ? nodeleftright->branch_size : 0) - + 1 + (noderight != NULL ? noderight->branch_size : 0); - nodeleft->branch_size = - nodeleftleft->branch_size + 1 + node->branch_size; - - *nodep = nodeleft; - height_diff = (height_diff < 0 - ? /* noderight's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2|h+3. */ - nodeleft->balance - 1 - : /* nodeleft's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2|h+3. */ - nodeleft->balance); - } - else - { - /* - * h+2 - / \ / \ - h+2 h --> h+1 h+1 - / \ / \ / \ - h h+1 h L R h - / \ - L R - - */ - gl_list_node_t L = nodeleft->right = nodeleftright->left; - gl_list_node_t R = node->left = nodeleftright->right; - nodeleftright->left = nodeleft; - nodeleftright->right = node; - - nodeleftright->parent = node->parent; - if (L != NULL) - L->parent = nodeleft; - if (R != NULL) - R->parent = node; - nodeleft->parent = nodeleftright; - node->parent = nodeleftright; - - nodeleft->balance = (nodeleftright->balance > 0 ? -1 : 0); - node->balance = (nodeleftright->balance < 0 ? 1 : 0); - nodeleftright->balance = 0; - - nodeleft->branch_size = - (nodeleft->left != NULL ? nodeleft->left->branch_size : 0) - + 1 + (nodeleft->right != NULL ? nodeleft->right->branch_size : 0); - node->branch_size = - (node->left != NULL ? node->left->branch_size : 0) - + 1 + (node->right != NULL ? node->right->branch_size : 0); - nodeleftright->branch_size = - nodeleft->branch_size + 1 + node->branch_size; - - *nodep = nodeleftright; - height_diff = (height_diff < 0 - ? /* noderight's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2. */ - -1 - : /* nodeleft's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2. */ - 0); - } - } - else - { - /* node->balance = 2. The subtree is heavier on the right side. - Rotate from right to left: - - * - / \ - h h+2 - */ - gl_list_node_t noderightleft = noderight->left; - gl_list_node_t noderightright = noderight->right; - if (noderight->balance >= 0) - { - /* - * h+2|h+3 - / \ / \ - h h+2 --> h+1|h+2 \ - / \ / \ | - h|h+1 h+1 h h|h+1 h+1 - */ - node->right = noderightleft; - noderight->left = node; - - noderight->parent = node->parent; - node->parent = noderight; - if (noderightleft != NULL) - noderightleft->parent = node; - - noderight->balance -= 1; - node->balance = - noderight->balance; - - node->branch_size = - (nodeleft != NULL ? nodeleft->branch_size : 0) - + 1 + (noderightleft != NULL ? noderightleft->branch_size : 0); - noderight->branch_size = - node->branch_size + 1 + noderightright->branch_size; - - *nodep = noderight; - height_diff = (height_diff < 0 - ? /* nodeleft's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2|h+3. */ - - noderight->balance - 1 - : /* noderight's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2|h+3. */ - - noderight->balance); - } - else - { - /* - * h+2 - / \ / \ - h h+2 --> h+1 h+1 - / \ / \ / \ - h+1 h h L R h - / \ - L R - - */ - gl_list_node_t L = node->right = noderightleft->left; - gl_list_node_t R = noderight->left = noderightleft->right; - noderightleft->left = node; - noderightleft->right = noderight; - - noderightleft->parent = node->parent; - if (L != NULL) - L->parent = node; - if (R != NULL) - R->parent = noderight; - node->parent = noderightleft; - noderight->parent = noderightleft; - - node->balance = (noderightleft->balance > 0 ? -1 : 0); - noderight->balance = (noderightleft->balance < 0 ? 1 : 0); - noderightleft->balance = 0; - - node->branch_size = - (node->left != NULL ? node->left->branch_size : 0) - + 1 + (node->right != NULL ? node->right->branch_size : 0); - noderight->branch_size = - (noderight->left != NULL ? noderight->left->branch_size : 0) - + 1 + (noderight->right != NULL ? noderight->right->branch_size : 0); - noderightleft->branch_size = - node->branch_size + 1 + noderight->branch_size; - - *nodep = noderightleft; - height_diff = (height_diff < 0 - ? /* nodeleft's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2. */ - -1 - : /* noderight's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2. */ - 0); - } - } - node = *nodep; - } - else - { - /* No rotation needed. Only propagation of the height change to the - next higher level. */ - if (height_diff < 0) - height_diff = (previous_balance == 0 ? 0 : -1); - else - height_diff = (node->balance == 0 ? 0 : 1); - } - - if (height_diff == 0) - break; - - parent = node->parent; - if (parent == NULL) - break; - } -} - -static void -gl_tree_remove_node_from_tree (gl_list_t list, gl_list_node_t node) -{ - gl_list_node_t parent = node->parent; - - if (node->left == NULL) - { - /* Replace node with node->right. */ - gl_list_node_t child = node->right; - - if (child != NULL) - child->parent = parent; - if (parent == NULL) - list->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = parent; p != NULL; p = p->parent) - p->branch_size--; - } - - rebalance (list, child, -1, parent); - } - } - else if (node->right == NULL) - { - /* It is not absolutely necessary to treat this case. But the more - general case below is more complicated, hence slower. */ - /* Replace node with node->left. */ - gl_list_node_t child = node->left; - - child->parent = parent; - if (parent == NULL) - list->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = parent; p != NULL; p = p->parent) - p->branch_size--; - } - - rebalance (list, child, -1, parent); - } - } - else - { - /* Replace node with the rightmost element of the node->left subtree. */ - gl_list_node_t subst; - gl_list_node_t subst_parent; - gl_list_node_t child; - - for (subst = node->left; subst->right != NULL; ) - subst = subst->right; - - subst_parent = subst->parent; - - child = subst->left; - - /* The case subst_parent == node is special: If we do nothing special, - we get confusion about node->left, subst->left and child->parent. - subst_parent == node - <==> The 'for' loop above terminated immediately. - <==> subst == subst_parent->left - [otherwise subst == subst_parent->right] - In this case, we would need to first set - child->parent = node; node->left = child; - and later - when we copy subst into node's position - again - child->parent = subst; subst->left = child; - Altogether a no-op. */ - if (subst_parent != node) - { - if (child != NULL) - child->parent = subst_parent; - subst_parent->right = child; - } - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = subst_parent; p != NULL; p = p->parent) - p->branch_size--; - } - - /* Copy subst into node's position. - (This is safer than to copy subst's value into node, keep node in - place, and free subst.) */ - if (subst_parent != node) - { - subst->left = node->left; - subst->left->parent = subst; - } - subst->right = node->right; - subst->right->parent = subst; - subst->balance = node->balance; - subst->branch_size = node->branch_size; - subst->parent = parent; - if (parent == NULL) - list->root = subst; - else if (parent->left == node) - parent->left = subst; - else /* parent->right == node */ - parent->right = subst; - - /* Rebalancing starts at child's parent, that is subst_parent - - except when subst_parent == node. In this case, we need to use - its replacement, subst. */ - rebalance (list, child, -1, subst_parent != node ? subst_parent : subst); - } -} - -static gl_list_node_t -gl_tree_nx_add_first (gl_list_t list, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (list->root == NULL) - { - list->root = new_node; - new_node->parent = NULL; - } - else - { - gl_list_node_t node; - - for (node = list->root; node->left != NULL; ) - node = node->left; - - node->left = new_node; - new_node->parent = node; - node->balance--; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Rebalance. */ - if (node->right == NULL && node->parent != NULL) - rebalance (list, node, 1, node->parent); - } - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_tree_nx_add_last (gl_list_t list, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (list->root == NULL) - { - list->root = new_node; - new_node->parent = NULL; - } - else - { - gl_list_node_t node; - - for (node = list->root; node->right != NULL; ) - node = node->right; - - node->right = new_node; - new_node->parent = node; - node->balance++; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Rebalance. */ - if (node->left == NULL && node->parent != NULL) - rebalance (list, node, 1, node->parent); - } - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_tree_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node; - bool height_inc; - - new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (node->left == NULL) - { - node->left = new_node; - node->balance--; - height_inc = (node->right == NULL); - } - else - { - for (node = node->left; node->right != NULL; ) - node = node->right; - node->right = new_node; - node->balance++; - height_inc = (node->left == NULL); - } - new_node->parent = node; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Rebalance. */ - if (height_inc && node->parent != NULL) - rebalance (list, node, 1, node->parent); - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_tree_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node; - bool height_inc; - - new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (node->right == NULL) - { - node->right = new_node; - node->balance++; - height_inc = (node->left == NULL); - } - else - { - for (node = node->right; node->left != NULL; ) - node = node->left; - node->left = new_node; - node->balance--; - height_inc = (node->right == NULL); - } - new_node->parent = node; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Rebalance. */ - if (height_inc && node->parent != NULL) - rebalance (list, node, 1, node->parent); - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} diff --git a/include/libgnulib/gl_anyhash1.h b/include/libgnulib/gl_anyhash1.h deleted file mode 100755 index eab7085..0000000 --- a/include/libgnulib/gl_anyhash1.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Hash table for sequential list, set, and map data type. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of - gl_linkedhash_list.c, gl_avltreehash_list.c, gl_rbtreehash_list.c, - gl_linkedhash_set.c, gl_hash_set.c, - gl_linkedhash_map.c, gl_hash_map.c. */ - -/* Hash table entry. */ -struct gl_hash_entry -{ - struct gl_hash_entry *hash_next; /* chain of entries in same bucket */ - size_t hashcode; /* cache of the hash code of - - the key (for map data type) or - - the value (for list, set data types) */ -}; -typedef struct gl_hash_entry * gl_hash_entry_t; diff --git a/include/libgnulib/gl_anyhash2.h b/include/libgnulib/gl_anyhash2.h deleted file mode 100755 index 28120e5..0000000 --- a/include/libgnulib/gl_anyhash2.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Hash table for sequential list, set, and map data type. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of - gl_linkedhash_list.c, gl_avltreehash_list.c, gl_rbtreehash_list.c, - gl_linkedhash_set.c, gl_hash_set.c, - gl_linkedhash_map.c, gl_hash_map.c. */ - -#include "gl_anyhash_primes.h" - -/* Resizes the hash table with a new estimated size. */ -static void -hash_resize (CONTAINER_T container, size_t estimate) -{ - size_t new_size = next_prime (estimate); - - if (new_size > container->table_size) - { - gl_hash_entry_t *old_table = container->table; - /* Allocate the new table. */ - gl_hash_entry_t *new_table; - size_t i; - - if (size_overflow_p (xtimes (new_size, sizeof (gl_hash_entry_t)))) - goto fail; - new_table = - (gl_hash_entry_t *) calloc (new_size, sizeof (gl_hash_entry_t)); - if (new_table == NULL) - goto fail; - - /* Iterate through the entries of the old table. */ - for (i = container->table_size; i > 0; ) - { - gl_hash_entry_t node = old_table[--i]; - - while (node != NULL) - { - gl_hash_entry_t next = node->hash_next; - /* Add the entry to the new table. */ - size_t bucket = node->hashcode % new_size; - node->hash_next = new_table[bucket]; - new_table[bucket] = node; - - node = next; - } - } - - container->table = new_table; - container->table_size = new_size; - free (old_table); - } - return; - - fail: - /* Just continue without resizing the table. */ - return; -} - -/* Resizes the hash table if needed, after CONTAINER_COUNT (container) was - incremented. */ -static void -hash_resize_after_add (CONTAINER_T container) -{ - size_t count = CONTAINER_COUNT (container); - size_t estimate = xsum (count, count / 2); /* 1.5 * count */ - if (estimate > container->table_size) - hash_resize (container, estimate); -} diff --git a/include/libgnulib/gl_anyhash_primes.h b/include/libgnulib/gl_anyhash_primes.h deleted file mode 100755 index 889bdce..0000000 --- a/include/libgnulib/gl_anyhash_primes.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Table of primes, for use by hash tables. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Array of primes, approximately in steps of factor 1.2. - This table was computed by executing the Common Lisp expression - (dotimes (i 244) (format t "nextprime(~D)~%" (ceiling (expt 1.2d0 i)))) - and feeding the result to PARI/gp. */ -static const size_t primes[] = - { - 11, 13, 17, 19, 23, 29, 37, 41, 47, 59, 67, 83, 97, 127, 139, 167, 199, - 239, 293, 347, 419, 499, 593, 709, 853, 1021, 1229, 1471, 1777, 2129, 2543, - 3049, 3659, 4391, 5273, 6323, 7589, 9103, 10937, 13109, 15727, 18899, - 22651, 27179, 32609, 39133, 46957, 56359, 67619, 81157, 97369, 116849, - 140221, 168253, 201907, 242309, 290761, 348889, 418667, 502409, 602887, - 723467, 868151, 1041779, 1250141, 1500181, 1800191, 2160233, 2592277, - 3110741, 3732887, 4479463, 5375371, 6450413, 7740517, 9288589, 11146307, - 13375573, 16050689, 19260817, 23112977, 27735583, 33282701, 39939233, - 47927081, 57512503, 69014987, 82818011, 99381577, 119257891, 143109469, - 171731387, 206077643, 247293161, 296751781, 356102141, 427322587, - 512787097, 615344489, 738413383, 886096061, 1063315271, 1275978331, - 1531174013, 1837408799, 2204890543UL, 2645868653UL, 3175042391UL, - 3810050851UL, -#if SIZE_MAX > 4294967295UL - 4572061027UL, 5486473229UL, 6583767889UL, 7900521449UL, 9480625733UL, - 11376750877UL, 13652101063UL, 16382521261UL, 19659025513UL, 23590830631UL, - 28308996763UL, 33970796089UL, 40764955463UL, 48917946377UL, 58701535657UL, - 70441842749UL, 84530211301UL, 101436253561UL, 121723504277UL, - 146068205131UL, 175281846149UL, 210338215379UL, 252405858521UL, - 302887030151UL, 363464436191UL, 436157323417UL, 523388788231UL, - 628066545713UL, 753679854847UL, 904415825857UL, 1085298991109UL, - 1302358789181UL, 1562830547009UL, 1875396656429UL, 2250475987709UL, - 2700571185239UL, 3240685422287UL, 3888822506759UL, 4666587008147UL, - 5599904409713UL, 6719885291641UL, 8063862349969UL, 9676634819959UL, - 11611961783951UL, 13934354140769UL, 16721224968907UL, 20065469962669UL, - 24078563955191UL, 28894276746229UL, 34673132095507UL, 41607758514593UL, - 49929310217531UL, 59915172260971UL, 71898206713183UL, 86277848055823UL, - 103533417666967UL, 124240101200359UL, 149088121440451UL, 178905745728529UL, - 214686894874223UL, 257624273849081UL, 309149128618903UL, 370978954342639UL, - 445174745211143UL, 534209694253381UL, 641051633104063UL, 769261959724877UL, - 923114351670013UL, 1107737222003791UL, 1329284666404567UL, - 1595141599685509UL, 1914169919622551UL, 2297003903547091UL, - 2756404684256459UL, 3307685621107757UL, 3969222745329323UL, - 4763067294395177UL, 5715680753274209UL, 6858816903929113UL, - 8230580284714831UL, 9876696341657791UL, 11852035609989371UL, - 14222442731987227UL, 17066931278384657UL, 20480317534061597UL, - 24576381040873903UL, 29491657249048679UL, 35389988698858471UL, - 42467986438630267UL, 50961583726356109UL, 61153900471627387UL, - 73384680565952851UL, 88061616679143347UL, 105673940014972061UL, - 126808728017966413UL, 152170473621559703UL, 182604568345871671UL, - 219125482015045997UL, 262950578418055169UL, 315540694101666193UL, - 378648832921999397UL, 454378599506399233UL, 545254319407679131UL, - 654305183289214771UL, 785166219947057701UL, 942199463936469157UL, - 1130639356723763129UL, 1356767228068515623UL, 1628120673682218619UL, - 1953744808418662409UL, 2344493770102394881UL, 2813392524122873857UL, - 3376071028947448339UL, 4051285234736937517UL, 4861542281684325481UL, - 5833850738021191727UL, 7000620885625427969UL, 8400745062750513217UL, - 10080894075300616261UL, 12097072890360739951UL, 14516487468432885797UL, - 17419784962119465179UL, -#endif - SIZE_MAX /* sentinel, to ensure the search terminates */ - }; - -/* Returns a suitable prime >= ESTIMATE. */ -static size_t -next_prime (size_t estimate) -{ - size_t i; - - for (i = 0; i < sizeof (primes) / sizeof (primes[0]); i++) - if (primes[i] >= estimate) - return primes[i]; - return SIZE_MAX; /* not a prime, but better than nothing */ -} diff --git a/include/libgnulib/gl_anylinked_list1.h b/include/libgnulib/gl_anylinked_list1.h deleted file mode 100755 index 5aeb69e..0000000 --- a/include/libgnulib/gl_anylinked_list1.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Sequential list data type implemented by a linked list. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_linked_list.c and gl_linkedhash_list.c. */ - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -/* Concrete list node implementation, valid for this file only. */ -struct gl_list_node_impl -{ -#if WITH_HASHTABLE - struct gl_hash_entry h; /* hash table entry fields; must be first */ -#endif - struct gl_list_node_impl *next; - struct gl_list_node_impl *prev; - const void *value; -}; - -/* Concrete gl_list_impl type, valid for this file only. */ -struct gl_list_impl -{ - struct gl_list_impl_base base; -#if WITH_HASHTABLE - /* A hash table: managed as an array of collision lists. */ - struct gl_hash_entry **table; - size_t table_size; -#endif - /* A circular list anchored at root. - The first node is = root.next, the last node is = root.prev. - The root's value is unused. */ - struct gl_list_node_impl root; - /* Number of list nodes, excluding the root. */ - size_t count; -}; diff --git a/include/libgnulib/gl_anylinked_list2.h b/include/libgnulib/gl_anylinked_list2.h deleted file mode 100755 index 4b23cc6..0000000 --- a/include/libgnulib/gl_anylinked_list2.h +++ /dev/null @@ -1,1215 +0,0 @@ -/* Sequential list data type implemented by a linked list. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_linked_list.c and gl_linkedhash_list.c. */ - -/* If the symbol SIGNAL_SAFE_LIST is defined, the code is compiled in such - a way that a gl_list_t data structure may be used from within a signal - handler. The operations allowed in the signal handler are: - gl_list_iterator, gl_list_iterator_next, gl_list_iterator_free. - The list and node fields that are therefore accessed from the signal handler - are: - list->root, node->next, node->value. - We are careful to make modifications to these fields only in an order - that maintains the consistency of the list data structure at any moment, - and we use 'volatile' assignments to prevent the compiler from reordering - such assignments. */ -#ifdef SIGNAL_SAFE_LIST -# define ASYNCSAFE(type) *(type volatile *)& -#else -# define ASYNCSAFE(type) -#endif - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -static gl_list_t -gl_linked_nx_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) -{ - struct gl_list_impl *list = - (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl)); - - if (list == NULL) - return NULL; - - list->base.vtable = implementation; - list->base.equals_fn = equals_fn; - list->base.hashcode_fn = hashcode_fn; - list->base.dispose_fn = dispose_fn; - list->base.allow_duplicates = allow_duplicates; -#if WITH_HASHTABLE - list->table_size = 11; - list->table = - (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t)); - if (list->table == NULL) - goto fail; -#endif - list->root.next = &list->root; - list->root.prev = &list->root; - list->count = 0; - - return list; - -#if WITH_HASHTABLE - fail: - free (list); - return NULL; -#endif -} - -static gl_list_t -gl_linked_nx_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) -{ - struct gl_list_impl *list = - (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl)); - gl_list_node_t tail; - - if (list == NULL) - return NULL; - - list->base.vtable = implementation; - list->base.equals_fn = equals_fn; - list->base.hashcode_fn = hashcode_fn; - list->base.dispose_fn = dispose_fn; - list->base.allow_duplicates = allow_duplicates; -#if WITH_HASHTABLE - { - size_t estimate = xsum (count, count / 2); /* 1.5 * count */ - if (estimate < 10) - estimate = 10; - list->table_size = next_prime (estimate); - if (size_overflow_p (xtimes (list->table_size, sizeof (gl_hash_entry_t)))) - goto fail1; - list->table = - (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t)); - if (list->table == NULL) - goto fail1; - } -#endif - list->count = count; - tail = &list->root; - for (; count > 0; contents++, count--) - { - gl_list_node_t node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (node == NULL) - goto fail2; - - node->value = *contents; -#if WITH_HASHTABLE - node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (node->value) - : (size_t)(uintptr_t) node->value); - - /* Add node to the hash table. */ - if (add_to_bucket (list, node) < 0) - { - free (node); - goto fail2; - } -#endif - - /* Add node to the list. */ - node->prev = tail; - tail->next = node; - tail = node; - } - tail->next = &list->root; - list->root.prev = tail; - - return list; - - fail2: - { - gl_list_node_t node; - - for (node = tail; node != &list->root; ) - { - gl_list_node_t prev = node->prev; - - free (node); - node = prev; - } - } -#if WITH_HASHTABLE - free (list->table); - fail1: -#endif - free (list); - return NULL; -} - -static size_t _GL_ATTRIBUTE_PURE -gl_linked_size (gl_list_t list) -{ - return list->count; -} - -static const void * _GL_ATTRIBUTE_PURE -gl_linked_node_value (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list, - gl_list_node_t node) -{ - return node->value; -} - -static int -gl_linked_node_nx_set_value (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list, - gl_list_node_t node, - const void *elt) -{ -#if WITH_HASHTABLE - if (elt != node->value) - { - size_t new_hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - - if (new_hashcode != node->h.hashcode) - { - remove_from_bucket (list, node); - node->value = elt; - node->h.hashcode = new_hashcode; - if (add_to_bucket (list, node) < 0) - { - /* Out of memory. We removed node from a bucket but cannot add - it to another bucket. In order to avoid inconsistencies, we - must remove node entirely from the list. */ - gl_list_node_t before_removed = node->prev; - gl_list_node_t after_removed = node->next; - ASYNCSAFE(gl_list_node_t) before_removed->next = after_removed; - after_removed->prev = before_removed; - list->count--; - free (node); - return -1; - } - } - else - node->value = elt; - } -#else - node->value = elt; -#endif - return 0; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_next_node (gl_list_t list, gl_list_node_t node) -{ - return (node->next != &list->root ? node->next : NULL); -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_previous_node (gl_list_t list, gl_list_node_t node) -{ - return (node->prev != &list->root ? node->prev : NULL); -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_first_node (gl_list_t list) -{ - if (list->count > 0) - return list->root.next; - else - return NULL; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_last_node (gl_list_t list) -{ - if (list->count > 0) - return list->root.prev; - else - return NULL; -} - -static const void * _GL_ATTRIBUTE_PURE -gl_linked_get_at (gl_list_t list, size_t position) -{ - size_t count = list->count; - gl_list_node_t node; - - if (!(position < count)) - /* Invalid argument. */ - abort (); - /* Here we know count > 0. */ - if (position <= ((count - 1) / 2)) - { - node = list->root.next; - for (; position > 0; position--) - node = node->next; - } - else - { - position = count - 1 - position; - node = list->root.prev; - for (; position > 0; position--) - node = node->prev; - } - return node->value; -} - -static gl_list_node_t -gl_linked_nx_set_at (gl_list_t list, size_t position, const void *elt) -{ - size_t count = list->count; - gl_list_node_t node; - - if (!(position < count)) - /* Invalid argument. */ - abort (); - /* Here we know count > 0. */ - if (position <= ((count - 1) / 2)) - { - node = list->root.next; - for (; position > 0; position--) - node = node->next; - } - else - { - position = count - 1 - position; - node = list->root.prev; - for (; position > 0; position--) - node = node->prev; - } -#if WITH_HASHTABLE - if (elt != node->value) - { - size_t new_hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - - if (new_hashcode != node->h.hashcode) - { - remove_from_bucket (list, node); - node->value = elt; - node->h.hashcode = new_hashcode; - if (add_to_bucket (list, node) < 0) - { - /* Out of memory. We removed node from a bucket but cannot add - it to another bucket. In order to avoid inconsistencies, we - must remove node entirely from the list. */ - gl_list_node_t before_removed = node->prev; - gl_list_node_t after_removed = node->next; - ASYNCSAFE(gl_list_node_t) before_removed->next = after_removed; - after_removed->prev = before_removed; - list->count--; - free (node); - return NULL; - } - } - else - node->value = elt; - } -#else - node->value = elt; -#endif - return node; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_search_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - size_t count = list->count; - - if (!(start_index <= end_index && end_index <= count)) - /* Invalid arguments. */ - abort (); - { -#if WITH_HASHTABLE - size_t hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - size_t bucket = hashcode % list->table_size; - gl_listelement_equals_fn equals = list->base.equals_fn; - - if (!list->base.allow_duplicates) - { - /* Look for the first match in the hash bucket. */ - gl_list_node_t found = NULL; - gl_list_node_t node; - - for (node = (gl_list_node_t) list->table[bucket]; - node != NULL; - node = (gl_list_node_t) node->h.hash_next) - if (node->h.hashcode == hashcode - && (equals != NULL - ? equals (elt, node->value) - : elt == node->value)) - { - found = node; - break; - } - if (start_index > 0) - /* Look whether found's index is < start_index. */ - for (node = list->root.next; ; node = node->next) - { - if (node == found) - return NULL; - if (--start_index == 0) - break; - } - if (end_index < count) - /* Look whether found's index is >= end_index. */ - { - end_index = count - end_index; - for (node = list->root.prev; ; node = node->prev) - { - if (node == found) - return NULL; - if (--end_index == 0) - break; - } - } - return found; - } - else - { - /* Look whether there is more than one match in the hash bucket. */ - bool multiple_matches = false; - gl_list_node_t first_match = NULL; - gl_list_node_t node; - - for (node = (gl_list_node_t) list->table[bucket]; - node != NULL; - node = (gl_list_node_t) node->h.hash_next) - if (node->h.hashcode == hashcode - && (equals != NULL - ? equals (elt, node->value) - : elt == node->value)) - { - if (first_match == NULL) - first_match = node; - else - { - multiple_matches = true; - break; - } - } - if (multiple_matches) - { - /* We need the match with the smallest index. But we don't have - a fast mapping node -> index. So we have to walk the list. */ - end_index -= start_index; - node = list->root.next; - for (; start_index > 0; start_index--) - node = node->next; - - for (; - end_index > 0; - node = node->next, end_index--) - if (node->h.hashcode == hashcode - && (equals != NULL - ? equals (elt, node->value) - : elt == node->value)) - return node; - /* The matches must have all been at indices < start_index or - >= end_index. */ - return NULL; - } - else - { - if (start_index > 0) - /* Look whether first_match's index is < start_index. */ - for (node = list->root.next; node != &list->root; node = node->next) - { - if (node == first_match) - return NULL; - if (--start_index == 0) - break; - } - if (end_index < list->count) - /* Look whether first_match's index is >= end_index. */ - { - end_index = list->count - end_index; - for (node = list->root.prev; ; node = node->prev) - { - if (node == first_match) - return NULL; - if (--end_index == 0) - break; - } - } - return first_match; - } - } -#else - gl_listelement_equals_fn equals = list->base.equals_fn; - gl_list_node_t node = list->root.next; - - end_index -= start_index; - for (; start_index > 0; start_index--) - node = node->next; - - if (equals != NULL) - { - for (; end_index > 0; node = node->next, end_index--) - if (equals (elt, node->value)) - return node; - } - else - { - for (; end_index > 0; node = node->next, end_index--) - if (elt == node->value) - return node; - } - return NULL; -#endif - } -} - -static size_t _GL_ATTRIBUTE_PURE -gl_linked_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - size_t count = list->count; - - if (!(start_index <= end_index && end_index <= count)) - /* Invalid arguments. */ - abort (); - { -#if WITH_HASHTABLE - /* Here the hash table doesn't help much. It only allows us to minimize - the number of equals() calls, by looking up first the node and then - its index. */ - size_t hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - size_t bucket = hashcode % list->table_size; - gl_listelement_equals_fn equals = list->base.equals_fn; - gl_list_node_t node; - - /* First step: Look up the node. */ - if (!list->base.allow_duplicates) - { - /* Look for the first match in the hash bucket. */ - for (node = (gl_list_node_t) list->table[bucket]; - node != NULL; - node = (gl_list_node_t) node->h.hash_next) - if (node->h.hashcode == hashcode - && (equals != NULL - ? equals (elt, node->value) - : elt == node->value)) - break; - } - else - { - /* Look whether there is more than one match in the hash bucket. */ - bool multiple_matches = false; - gl_list_node_t first_match = NULL; - - for (node = (gl_list_node_t) list->table[bucket]; - node != NULL; - node = (gl_list_node_t) node->h.hash_next) - if (node->h.hashcode == hashcode - && (equals != NULL - ? equals (elt, node->value) - : elt == node->value)) - { - if (first_match == NULL) - first_match = node; - else - { - multiple_matches = true; - break; - } - } - if (multiple_matches) - { - /* We need the match with the smallest index. But we don't have - a fast mapping node -> index. So we have to walk the list. */ - size_t index; - - index = start_index; - node = list->root.next; - for (; start_index > 0; start_index--) - node = node->next; - - for (; - index < end_index; - node = node->next, index++) - if (node->h.hashcode == hashcode - && (equals != NULL - ? equals (elt, node->value) - : elt == node->value)) - return index; - /* The matches must have all been at indices < start_index or - >= end_index. */ - return (size_t)(-1); - } - node = first_match; - } - - /* Second step: Look up the index of the node. */ - if (node == NULL) - return (size_t)(-1); - else - { - size_t index = 0; - - for (; node->prev != &list->root; node = node->prev) - index++; - - if (index >= start_index && index < end_index) - return index; - else - return (size_t)(-1); - } -#else - gl_listelement_equals_fn equals = list->base.equals_fn; - size_t index = start_index; - gl_list_node_t node = list->root.next; - - for (; start_index > 0; start_index--) - node = node->next; - - if (equals != NULL) - { - for (; - index < end_index; - node = node->next, index++) - if (equals (elt, node->value)) - return index; - } - else - { - for (; - index < end_index; - node = node->next, index++) - if (elt == node->value) - return index; - } - return (size_t)(-1); -#endif - } -} - -static gl_list_node_t -gl_linked_nx_add_first (gl_list_t list, const void *elt) -{ - gl_list_node_t node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (node == NULL) - return NULL; - - ASYNCSAFE(const void *) node->value = elt; -#if WITH_HASHTABLE - node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (node->value) - : (size_t)(uintptr_t) node->value); - - /* Add node to the hash table. */ - if (add_to_bucket (list, node) < 0) - { - free (node); - return NULL; - } -#endif - - /* Add node to the list. */ - node->prev = &list->root; - ASYNCSAFE(gl_list_node_t) node->next = list->root.next; - node->next->prev = node; - ASYNCSAFE(gl_list_node_t) list->root.next = node; - list->count++; - -#if WITH_HASHTABLE - hash_resize_after_add (list); -#endif - - return node; -} - -static gl_list_node_t -gl_linked_nx_add_last (gl_list_t list, const void *elt) -{ - gl_list_node_t node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (node == NULL) - return NULL; - - ASYNCSAFE(const void *) node->value = elt; -#if WITH_HASHTABLE - node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (node->value) - : (size_t)(uintptr_t) node->value); - - /* Add node to the hash table. */ - if (add_to_bucket (list, node) < 0) - { - free (node); - return NULL; - } -#endif - - /* Add node to the list. */ - ASYNCSAFE(gl_list_node_t) node->next = &list->root; - node->prev = list->root.prev; - ASYNCSAFE(gl_list_node_t) node->prev->next = node; - list->root.prev = node; - list->count++; - -#if WITH_HASHTABLE - hash_resize_after_add (list); -#endif - - return node; -} - -static gl_list_node_t -gl_linked_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) -{ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - ASYNCSAFE(const void *) new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); - - /* Add new_node to the hash table. */ - if (add_to_bucket (list, new_node) < 0) - { - free (new_node); - return NULL; - } -#endif - - /* Add new_node to the list. */ - ASYNCSAFE(gl_list_node_t) new_node->next = node; - new_node->prev = node->prev; - ASYNCSAFE(gl_list_node_t) new_node->prev->next = new_node; - node->prev = new_node; - list->count++; - -#if WITH_HASHTABLE - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_linked_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) -{ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - ASYNCSAFE(const void *) new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); - - /* Add new_node to the hash table. */ - if (add_to_bucket (list, new_node) < 0) - { - free (new_node); - return NULL; - } -#endif - - /* Add new_node to the list. */ - new_node->prev = node; - ASYNCSAFE(gl_list_node_t) new_node->next = node->next; - new_node->next->prev = new_node; - ASYNCSAFE(gl_list_node_t) node->next = new_node; - list->count++; - -#if WITH_HASHTABLE - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_linked_nx_add_at (gl_list_t list, size_t position, const void *elt) -{ - size_t count = list->count; - gl_list_node_t new_node; - - if (!(position <= count)) - /* Invalid argument. */ - abort (); - - new_node = (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - if (new_node == NULL) - return NULL; - - ASYNCSAFE(const void *) new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); - - /* Add new_node to the hash table. */ - if (add_to_bucket (list, new_node) < 0) - { - free (new_node); - return NULL; - } -#endif - - /* Add new_node to the list. */ - if (position <= (count / 2)) - { - gl_list_node_t node; - - node = &list->root; - for (; position > 0; position--) - node = node->next; - new_node->prev = node; - ASYNCSAFE(gl_list_node_t) new_node->next = node->next; - new_node->next->prev = new_node; - ASYNCSAFE(gl_list_node_t) node->next = new_node; - } - else - { - gl_list_node_t node; - - position = count - position; - node = &list->root; - for (; position > 0; position--) - node = node->prev; - ASYNCSAFE(gl_list_node_t) new_node->next = node; - new_node->prev = node->prev; - ASYNCSAFE(gl_list_node_t) new_node->prev->next = new_node; - node->prev = new_node; - } - list->count++; - -#if WITH_HASHTABLE - hash_resize_after_add (list); -#endif - - return new_node; -} - -static bool -gl_linked_remove_node (gl_list_t list, gl_list_node_t node) -{ - gl_list_node_t prev; - gl_list_node_t next; - -#if WITH_HASHTABLE - /* Remove node from the hash table. */ - remove_from_bucket (list, node); -#endif - - /* Remove node from the list. */ - prev = node->prev; - next = node->next; - - ASYNCSAFE(gl_list_node_t) prev->next = next; - next->prev = prev; - list->count--; - - if (list->base.dispose_fn != NULL) - list->base.dispose_fn (node->value); - free (node); - return true; -} - -static bool -gl_linked_remove_at (gl_list_t list, size_t position) -{ - size_t count = list->count; - gl_list_node_t removed_node; - - if (!(position < count)) - /* Invalid argument. */ - abort (); - /* Here we know count > 0. */ - if (position <= ((count - 1) / 2)) - { - gl_list_node_t node; - gl_list_node_t after_removed; - - node = &list->root; - for (; position > 0; position--) - node = node->next; - removed_node = node->next; - after_removed = node->next->next; - ASYNCSAFE(gl_list_node_t) node->next = after_removed; - after_removed->prev = node; - } - else - { - gl_list_node_t node; - gl_list_node_t before_removed; - - position = count - 1 - position; - node = &list->root; - for (; position > 0; position--) - node = node->prev; - removed_node = node->prev; - before_removed = node->prev->prev; - node->prev = before_removed; - ASYNCSAFE(gl_list_node_t) before_removed->next = node; - } -#if WITH_HASHTABLE - remove_from_bucket (list, removed_node); -#endif - list->count--; - - if (list->base.dispose_fn != NULL) - list->base.dispose_fn (removed_node->value); - free (removed_node); - return true; -} - -static bool -gl_linked_remove (gl_list_t list, const void *elt) -{ - gl_list_node_t node = gl_linked_search_from_to (list, 0, list->count, elt); - - if (node != NULL) - return gl_linked_remove_node (list, node); - else - return false; -} - -static void -gl_linked_list_free (gl_list_t list) -{ - gl_listelement_dispose_fn dispose = list->base.dispose_fn; - gl_list_node_t node; - - for (node = list->root.next; node != &list->root; ) - { - gl_list_node_t next = node->next; - if (dispose != NULL) - dispose (node->value); - free (node); - node = next; - } -#if WITH_HASHTABLE - free (list->table); -#endif - free (list); -} - -/* --------------------- gl_list_iterator_t Data Type --------------------- */ - -static gl_list_iterator_t _GL_ATTRIBUTE_PURE -gl_linked_iterator (gl_list_t list) -{ - gl_list_iterator_t result; - - result.vtable = list->base.vtable; - result.list = list; - result.p = list->root.next; - result.q = &list->root; -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - return result; -} - -static gl_list_iterator_t _GL_ATTRIBUTE_PURE -gl_linked_iterator_from_to (gl_list_t list, - size_t start_index, size_t end_index) -{ - gl_list_iterator_t result; - size_t n1, n2, n3; - - if (!(start_index <= end_index && end_index <= list->count)) - /* Invalid arguments. */ - abort (); - result.vtable = list->base.vtable; - result.list = list; - n1 = start_index; - n2 = end_index - start_index; - n3 = list->count - end_index; - /* Find the maximum among n1, n2, n3, so as to reduce the number of - loop iterations to n1 + n2 + n3 - max(n1,n2,n3). */ - if (n1 > n2 && n1 > n3) - { - /* n1 is the maximum, use n2 and n3. */ - gl_list_node_t node; - size_t i; - - node = &list->root; - for (i = n3; i > 0; i--) - node = node->prev; - result.q = node; - for (i = n2; i > 0; i--) - node = node->prev; - result.p = node; - } - else if (n2 > n3) - { - /* n2 is the maximum, use n1 and n3. */ - gl_list_node_t node; - size_t i; - - node = list->root.next; - for (i = n1; i > 0; i--) - node = node->next; - result.p = node; - - node = &list->root; - for (i = n3; i > 0; i--) - node = node->prev; - result.q = node; - } - else - { - /* n3 is the maximum, use n1 and n2. */ - gl_list_node_t node; - size_t i; - - node = list->root.next; - for (i = n1; i > 0; i--) - node = node->next; - result.p = node; - for (i = n2; i > 0; i--) - node = node->next; - result.q = node; - } - -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - return result; -} - -static bool -gl_linked_iterator_next (gl_list_iterator_t *iterator, - const void **eltp, gl_list_node_t *nodep) -{ - if (iterator->p != iterator->q) - { - gl_list_node_t node = (gl_list_node_t) iterator->p; - *eltp = node->value; - if (nodep != NULL) - *nodep = node; - iterator->p = node->next; - return true; - } - else - return false; -} - -static void -gl_linked_iterator_free (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_iterator_t *iterator) -{ -} - -/* ---------------------- Sorted gl_list_t Data Type ---------------------- */ - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node; - - for (node = list->root.next; node != &list->root; node = node->next) - { - int cmp = compar (node->value, elt); - - if (cmp > 0) - break; - if (cmp == 0) - return node; - } - return NULL; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_linked_sortedlist_search_from_to (gl_list_t list, - gl_listelement_compar_fn compar, - size_t low, size_t high, - const void *elt) -{ - size_t count = list->count; - - if (!(low <= high && high <= list->count)) - /* Invalid arguments. */ - abort (); - - high -= low; - if (high > 0) - { - /* Here we know low < count. */ - size_t position = low; - gl_list_node_t node; - - if (position <= ((count - 1) / 2)) - { - node = list->root.next; - for (; position > 0; position--) - node = node->next; - } - else - { - position = count - 1 - position; - node = list->root.prev; - for (; position > 0; position--) - node = node->prev; - } - - do - { - int cmp = compar (node->value, elt); - - if (cmp > 0) - break; - if (cmp == 0) - return node; - node = node->next; - } - while (--high > 0); - } - return NULL; -} - -static size_t _GL_ATTRIBUTE_PURE -gl_linked_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node; - size_t index; - - for (node = list->root.next, index = 0; - node != &list->root; - node = node->next, index++) - { - int cmp = compar (node->value, elt); - - if (cmp > 0) - break; - if (cmp == 0) - return index; - } - return (size_t)(-1); -} - -static size_t _GL_ATTRIBUTE_PURE -gl_linked_sortedlist_indexof_from_to (gl_list_t list, - gl_listelement_compar_fn compar, - size_t low, size_t high, - const void *elt) -{ - size_t count = list->count; - - if (!(low <= high && high <= list->count)) - /* Invalid arguments. */ - abort (); - - high -= low; - if (high > 0) - { - /* Here we know low < count. */ - size_t index = low; - size_t position = low; - gl_list_node_t node; - - if (position <= ((count - 1) / 2)) - { - node = list->root.next; - for (; position > 0; position--) - node = node->next; - } - else - { - position = count - 1 - position; - node = list->root.prev; - for (; position > 0; position--) - node = node->prev; - } - - do - { - int cmp = compar (node->value, elt); - - if (cmp > 0) - break; - if (cmp == 0) - return index; - node = node->next; - index++; - } - while (--high > 0); - } - return (size_t)(-1); -} - -static gl_list_node_t -gl_linked_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node; - - for (node = list->root.next; node != &list->root; node = node->next) - if (compar (node->value, elt) >= 0) - return gl_linked_nx_add_before (list, node, elt); - return gl_linked_nx_add_last (list, elt); -} - -static bool -gl_linked_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node; - - for (node = list->root.next; node != &list->root; node = node->next) - { - int cmp = compar (node->value, elt); - - if (cmp > 0) - break; - if (cmp == 0) - return gl_linked_remove_node (list, node); - } - return false; -} diff --git a/include/libgnulib/gl_anyrbtree_list1.h b/include/libgnulib/gl_anyrbtree_list1.h deleted file mode 100755 index 8af04eb..0000000 --- a/include/libgnulib/gl_anyrbtree_list1.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_rbtree_list.c and gl_rbtreehash_list.c. */ - -/* A red-black tree is a binary tree where every node is colored black or - red such that - 1. The root is black. - 2. No red node has a red parent. - Or equivalently: No red node has a red child. - 3. All paths from the root down to any NULL endpoint contain the same - number of black nodes. - Let's call this the "black-height" bh of the tree. It follows that every - such path contains exactly bh black and between 0 and bh red nodes. (The - extreme cases are a path containing only black nodes, and a path colored - alternately black-red-black-red-...-black-red.) The height of the tree - therefore is >= bh, <= 2*bh. - */ - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -/* Color of a node. */ -typedef enum color { BLACK, RED } color_t; - -/* Concrete list node implementation, valid for this file only. */ -struct gl_list_node_impl -{ -#if WITH_HASHTABLE - struct gl_hash_entry h; /* hash table entry fields; must be first */ -#endif - struct gl_list_node_impl *left; /* left branch, or NULL */ - struct gl_list_node_impl *right; /* right branch, or NULL */ - /* Parent pointer, or NULL. The parent pointer is not needed for most - operations. It is needed so that a gl_list_node_t can be returned - without memory allocation, on which the functions gl_list_remove_node, - gl_list_add_before, gl_list_add_after can be implemented. */ - struct gl_list_node_impl *parent; - color_t color; /* node's color */ - size_t branch_size; /* number of nodes in this branch, - = branchsize(left)+branchsize(right)+1 */ - const void *value; -}; - -/* Concrete gl_list_impl type, valid for this file only. */ -struct gl_list_impl -{ - struct gl_list_impl_base base; -#if WITH_HASHTABLE - /* A hash table: managed as an array of collision lists. */ - struct gl_hash_entry **table; - size_t table_size; -#endif - struct gl_list_node_impl *root; /* root node or NULL */ -}; - -/* A red-black tree of height h has a black-height bh >= ceil(h/2) and - therefore at least 2^ceil(h/2) - 1 elements. So, h <= 116 (because a tree - of height h >= 117 would have at least 2^59 - 1 elements, and because even - on 64-bit machines, - sizeof (gl_list_node_impl) * (2^59 - 1) > 2^64 - this would exceed the address space of the machine. */ -#define MAXHEIGHT 116 diff --git a/include/libgnulib/gl_anyrbtree_list2.h b/include/libgnulib/gl_anyrbtree_list2.h deleted file mode 100755 index 5e34894..0000000 --- a/include/libgnulib/gl_anyrbtree_list2.h +++ /dev/null @@ -1,1028 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_rbtree_list.c and gl_rbtreehash_list.c. */ - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -/* Creates a subtree for count >= 1 elements. - Its black-height bh is passed as argument, with - 2^bh - 1 <= count <= 2^(bh+1) - 1. bh == 0 implies count == 1. - Its height is h where 2^(h-1) <= count <= 2^h - 1. - Return NULL upon out-of-memory. */ -static gl_list_node_t -create_subtree_with_contents (unsigned int bh, - size_t count, const void **contents) -{ - size_t half1 = (count - 1) / 2; - size_t half2 = count / 2; - /* Note: half1 + half2 = count - 1. */ - gl_list_node_t node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - if (node == NULL) - return NULL; - - if (half1 > 0) - { - /* half1 > 0 implies count > 1, implies bh >= 1, implies - 2^(bh-1) - 1 <= half1 <= 2^bh - 1. */ - node->left = - create_subtree_with_contents (bh - 1, half1, contents); - if (node->left == NULL) - goto fail1; - node->left->parent = node; - } - else - node->left = NULL; - - node->value = contents[half1]; - - if (half2 > 0) - { - /* half2 > 0 implies count > 1, implies bh >= 1, implies - 2^(bh-1) - 1 <= half2 <= 2^bh - 1. */ - node->right = - create_subtree_with_contents (bh - 1, half2, contents + half1 + 1); - if (node->right == NULL) - goto fail2; - node->right->parent = node; - } - else - node->right = NULL; - - node->color = (bh == 0 ? RED : BLACK); - - node->branch_size = count; - - return node; - - fail2: - if (node->left != NULL) - free_subtree (node->left); - fail1: - free (node); - return NULL; -} - -static gl_list_t -gl_tree_nx_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) -{ - struct gl_list_impl *list = - (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl)); - - if (list == NULL) - return NULL; - - list->base.vtable = implementation; - list->base.equals_fn = equals_fn; - list->base.hashcode_fn = hashcode_fn; - list->base.dispose_fn = dispose_fn; - list->base.allow_duplicates = allow_duplicates; -#if WITH_HASHTABLE - { - size_t estimate = xsum (count, count / 2); /* 1.5 * count */ - if (estimate < 10) - estimate = 10; - list->table_size = next_prime (estimate); - if (size_overflow_p (xtimes (list->table_size, sizeof (gl_hash_entry_t)))) - goto fail1; - list->table = - (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t)); - if (list->table == NULL) - goto fail1; - } -#endif - if (count > 0) - { - /* Assuming 2^bh - 1 <= count <= 2^(bh+1) - 2, we create a tree whose - upper bh levels are black, and only the partially present lowest - level is red. */ - unsigned int bh; - { - size_t n; - for (n = count + 1, bh = 0; n > 1; n = n >> 1) - bh++; - } - - list->root = create_subtree_with_contents (bh, count, contents); - if (list->root == NULL) - goto fail2; - list->root->parent = NULL; - -#if WITH_HASHTABLE - /* Now that the tree is built, node_position() works. Now we can - add the nodes to the hash table. */ - if (add_nodes_to_buckets (list) < 0) - goto fail3; -#endif - } - else - list->root = NULL; - - return list; - -#if WITH_HASHTABLE - fail3: - free_subtree (list->root); -#endif - fail2: -#if WITH_HASHTABLE - free (list->table); - fail1: -#endif - free (list); - return NULL; -} - -/* Rotates left a subtree. - - B D - / \ / \ - A D --> B E - / \ / \ - C E A C - - Changes the tree structure, updates the branch sizes. - The caller must update the colors and register D as child of its parent. */ -static gl_list_node_t -rotate_left (gl_list_node_t b_node, gl_list_node_t d_node) -{ - gl_list_node_t a_node = b_node->left; - gl_list_node_t c_node = d_node->left; - gl_list_node_t e_node = d_node->right; - - b_node->right = c_node; - d_node->left = b_node; - - d_node->parent = b_node->parent; - b_node->parent = d_node; - if (c_node != NULL) - c_node->parent = b_node; - - b_node->branch_size = - (a_node != NULL ? a_node->branch_size : 0) - + 1 + (c_node != NULL ? c_node->branch_size : 0); - d_node->branch_size = - b_node->branch_size + 1 + (e_node != NULL ? e_node->branch_size : 0); - - return d_node; -} - -/* Rotates right a subtree. - - D B - / \ / \ - B E --> A D - / \ / \ - A C C E - - Changes the tree structure, updates the branch sizes. - The caller must update the colors and register B as child of its parent. */ -static gl_list_node_t -rotate_right (gl_list_node_t b_node, gl_list_node_t d_node) -{ - gl_list_node_t a_node = b_node->left; - gl_list_node_t c_node = b_node->right; - gl_list_node_t e_node = d_node->right; - - d_node->left = c_node; - b_node->right = d_node; - - b_node->parent = d_node->parent; - d_node->parent = b_node; - if (c_node != NULL) - c_node->parent = d_node; - - d_node->branch_size = - (c_node != NULL ? c_node->branch_size : 0) - + 1 + (e_node != NULL ? e_node->branch_size : 0); - b_node->branch_size = - (a_node != NULL ? a_node->branch_size : 0) + 1 + d_node->branch_size; - - return b_node; -} - -/* Ensures the tree is balanced, after an insertion operation. - Also assigns node->color. - parent is the given node's parent, known to be non-NULL. */ -static void -rebalance_after_add (gl_list_t list, gl_list_node_t node, gl_list_node_t parent) -{ - for (;;) - { - /* At this point, parent = node->parent != NULL. - Think of node->color being RED (although node->color is not yet - assigned.) */ - gl_list_node_t grandparent; - gl_list_node_t uncle; - - if (parent->color == BLACK) - { - /* A RED color for node is acceptable. */ - node->color = RED; - return; - } - - grandparent = parent->parent; - /* Since parent is RED, we know that - grandparent is != NULL and colored BLACK. */ - - if (grandparent->left == parent) - uncle = grandparent->right; - else if (grandparent->right == parent) - uncle = grandparent->left; - else - abort (); - - if (uncle != NULL && uncle->color == RED) - { - /* Change grandparent from BLACK to RED, and - change parent and uncle from RED to BLACK. - This makes it acceptable for node to be RED. */ - node->color = RED; - parent->color = uncle->color = BLACK; - node = grandparent; - } - else - { - /* grandparent and uncle are BLACK. parent is RED. node wants - to be RED too. - In this case, recoloring is not sufficient. Need to perform - one or two rotations. */ - gl_list_node_t *grandparentp; - - if (grandparent->parent == NULL) - grandparentp = &list->root; - else if (grandparent->parent->left == grandparent) - grandparentp = &grandparent->parent->left; - else if (grandparent->parent->right == grandparent) - grandparentp = &grandparent->parent->right; - else - abort (); - - if (grandparent->left == parent) - { - if (parent->right == node) - { - /* Rotation between node and parent. */ - grandparent->left = rotate_left (parent, node); - node = parent; - parent = grandparent->left; - } - /* grandparent and uncle are BLACK. parent and node want to be - RED. parent = grandparent->left. node = parent->left. - - grandparent parent - bh+1 bh+1 - / \ / \ - parent uncle --> node grandparent - bh bh bh bh - / \ / \ - node C C uncle - bh bh bh bh - */ - *grandparentp = rotate_right (parent, grandparent); - parent->color = BLACK; - node->color = grandparent->color = RED; - } - else /* grandparent->right == parent */ - { - if (parent->left == node) - { - /* Rotation between node and parent. */ - grandparent->right = rotate_right (node, parent); - node = parent; - parent = grandparent->right; - } - /* grandparent and uncle are BLACK. parent and node want to be - RED. parent = grandparent->right. node = parent->right. - - grandparent parent - bh+1 bh+1 - / \ / \ - uncle parent --> grandparent node - bh bh bh bh - / \ / \ - C node uncle C - bh bh bh bh - */ - *grandparentp = rotate_left (grandparent, parent); - parent->color = BLACK; - node->color = grandparent->color = RED; - } - return; - } - - /* Start again with a new (node, parent) pair. */ - parent = node->parent; - - if (parent == NULL) - { - /* Change node's color from RED to BLACK. This increases the - tree's black-height. */ - node->color = BLACK; - return; - } - } -} - -/* Ensures the tree is balanced, after a deletion operation. - CHILD was a grandchild of PARENT and is now its child. Between them, - a black node was removed. CHILD is also black, or NULL. - (CHILD can also be NULL. But PARENT is non-NULL.) */ -static void -rebalance_after_remove (gl_list_t list, gl_list_node_t child, gl_list_node_t parent) -{ - for (;;) - { - /* At this point, we reduced the black-height of the CHILD subtree by 1. - To make up, either look for a possibility to turn a RED to a BLACK - node, or try to reduce the black-height tree of CHILD's sibling - subtree as well. */ - gl_list_node_t *parentp; - - if (parent->parent == NULL) - parentp = &list->root; - else if (parent->parent->left == parent) - parentp = &parent->parent->left; - else if (parent->parent->right == parent) - parentp = &parent->parent->right; - else - abort (); - - if (parent->left == child) - { - gl_list_node_t sibling = parent->right; - /* sibling's black-height is >= 1. In particular, - sibling != NULL. - - parent - / \ - child sibling - bh bh+1 - */ - - if (sibling->color == RED) - { - /* sibling is RED, hence parent is BLACK and sibling's children - are non-NULL and BLACK. - - parent sibling - bh+2 bh+2 - / \ / \ - child sibling --> parent SR - bh bh+1 bh+1 bh+1 - / \ / \ - SL SR child SL - bh+1 bh+1 bh bh+1 - */ - *parentp = rotate_left (parent, sibling); - parent->color = RED; - sibling->color = BLACK; - - /* Concentrate on the subtree of parent. The new sibling is - one of the old sibling's children, and known to be BLACK. */ - parentp = &sibling->left; - sibling = parent->right; - } - /* Now we know that sibling is BLACK. - - parent - / \ - child sibling - bh bh+1 - */ - if (sibling->right != NULL && sibling->right->color == RED) - { - /* - parent sibling - bh+1|bh+2 bh+1|bh+2 - / \ / \ - child sibling --> parent SR - bh bh+1 bh+1 bh+1 - / \ / \ - SL SR child SL - bh bh bh bh - */ - *parentp = rotate_left (parent, sibling); - sibling->color = parent->color; - parent->color = BLACK; - sibling->right->color = BLACK; - return; - } - else if (sibling->left != NULL && sibling->left->color == RED) - { - /* - parent parent - bh+1|bh+2 bh+1|bh+2 - / \ / \ - child sibling --> child SL - bh bh+1 bh bh+1 - / \ / \ - SL SR SLL sibling - bh bh bh bh - / \ / \ - SLL SLR SLR SR - bh bh bh bh - - where SLL, SLR, SR are all black. - */ - parent->right = rotate_right (sibling->left, sibling); - /* Change sibling from BLACK to RED and SL from RED to BLACK. */ - sibling->color = RED; - sibling = parent->right; - sibling->color = BLACK; - - /* Now do as in the previous case. */ - *parentp = rotate_left (parent, sibling); - sibling->color = parent->color; - parent->color = BLACK; - sibling->right->color = BLACK; - return; - } - else - { - if (parent->color == BLACK) - { - /* Change sibling from BLACK to RED. Then the entire - subtree at parent has decreased its black-height. - parent parent - bh+2 bh+1 - / \ / \ - child sibling --> child sibling - bh bh+1 bh bh - */ - sibling->color = RED; - - child = parent; - } - else - { - /* Change parent from RED to BLACK, but compensate by - changing sibling from BLACK to RED. - parent parent - bh+1 bh+1 - / \ / \ - child sibling --> child sibling - bh bh+1 bh bh - */ - parent->color = BLACK; - sibling->color = RED; - return; - } - } - } - else if (parent->right == child) - { - gl_list_node_t sibling = parent->left; - /* sibling's black-height is >= 1. In particular, - sibling != NULL. - - parent - / \ - sibling child - bh+1 bh - */ - - if (sibling->color == RED) - { - /* sibling is RED, hence parent is BLACK and sibling's children - are non-NULL and BLACK. - - parent sibling - bh+2 bh+2 - / \ / \ - sibling child --> SR parent - bh+1 ch bh+1 bh+1 - / \ / \ - SL SR SL child - bh+1 bh+1 bh+1 bh - */ - *parentp = rotate_right (sibling, parent); - parent->color = RED; - sibling->color = BLACK; - - /* Concentrate on the subtree of parent. The new sibling is - one of the old sibling's children, and known to be BLACK. */ - parentp = &sibling->right; - sibling = parent->left; - } - /* Now we know that sibling is BLACK. - - parent - / \ - sibling child - bh+1 bh - */ - if (sibling->left != NULL && sibling->left->color == RED) - { - /* - parent sibling - bh+1|bh+2 bh+1|bh+2 - / \ / \ - sibling child --> SL parent - bh+1 bh bh+1 bh+1 - / \ / \ - SL SR SR child - bh bh bh bh - */ - *parentp = rotate_right (sibling, parent); - sibling->color = parent->color; - parent->color = BLACK; - sibling->left->color = BLACK; - return; - } - else if (sibling->right != NULL && sibling->right->color == RED) - { - /* - parent parent - bh+1|bh+2 bh+1|bh+2 - / \ / \ - sibling child --> SR child - bh+1 bh bh+1 bh - / \ / \ - SL SR sibling SRR - bh bh bh bh - / \ / \ - SRL SRR SL SRL - bh bh bh bh - - where SL, SRL, SRR are all black. - */ - parent->left = rotate_left (sibling, sibling->right); - /* Change sibling from BLACK to RED and SL from RED to BLACK. */ - sibling->color = RED; - sibling = parent->left; - sibling->color = BLACK; - - /* Now do as in the previous case. */ - *parentp = rotate_right (sibling, parent); - sibling->color = parent->color; - parent->color = BLACK; - sibling->left->color = BLACK; - return; - } - else - { - if (parent->color == BLACK) - { - /* Change sibling from BLACK to RED. Then the entire - subtree at parent has decreased its black-height. - parent parent - bh+2 bh+1 - / \ / \ - sibling child --> sibling child - bh+1 bh bh bh - */ - sibling->color = RED; - - child = parent; - } - else - { - /* Change parent from RED to BLACK, but compensate by - changing sibling from BLACK to RED. - parent parent - bh+1 bh+1 - / \ / \ - sibling child --> sibling child - bh+1 bh bh bh - */ - parent->color = BLACK; - sibling->color = RED; - return; - } - } - } - else - abort (); - - /* Start again with a new (child, parent) pair. */ - parent = child->parent; - -#if 0 /* Already handled. */ - if (child != NULL && child->color == RED) - { - child->color = BLACK; - return; - } -#endif - - if (parent == NULL) - return; - } -} - -static void -gl_tree_remove_node_from_tree (gl_list_t list, gl_list_node_t node) -{ - gl_list_node_t parent = node->parent; - - if (node->left == NULL) - { - /* Replace node with node->right. */ - gl_list_node_t child = node->right; - - if (child != NULL) - { - child->parent = parent; - /* Since node->left == NULL, child must be RED and of height 1, - hence node must have been BLACK. Recolor the child. */ - child->color = BLACK; - } - if (parent == NULL) - list->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = parent; p != NULL; p = p->parent) - p->branch_size--; - } - - if (child == NULL && node->color == BLACK) - rebalance_after_remove (list, child, parent); - } - } - else if (node->right == NULL) - { - /* It is not absolutely necessary to treat this case. But the more - general case below is more complicated, hence slower. */ - /* Replace node with node->left. */ - gl_list_node_t child = node->left; - - child->parent = parent; - /* Since node->right == NULL, child must be RED and of height 1, - hence node must have been BLACK. Recolor the child. */ - child->color = BLACK; - if (parent == NULL) - list->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = parent; p != NULL; p = p->parent) - p->branch_size--; - } - } - } - else - { - /* Replace node with the rightmost element of the node->left subtree. */ - gl_list_node_t subst; - gl_list_node_t subst_parent; - gl_list_node_t child; - color_t removed_color; - - for (subst = node->left; subst->right != NULL; ) - subst = subst->right; - - subst_parent = subst->parent; - - child = subst->left; - - removed_color = subst->color; - - /* The case subst_parent == node is special: If we do nothing special, - we get confusion about node->left, subst->left and child->parent. - subst_parent == node - <==> The 'for' loop above terminated immediately. - <==> subst == subst_parent->left - [otherwise subst == subst_parent->right] - In this case, we would need to first set - child->parent = node; node->left = child; - and later - when we copy subst into node's position - again - child->parent = subst; subst->left = child; - Altogether a no-op. */ - if (subst_parent != node) - { - if (child != NULL) - child->parent = subst_parent; - subst_parent->right = child; - } - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = subst_parent; p != NULL; p = p->parent) - p->branch_size--; - } - - /* Copy subst into node's position. - (This is safer than to copy subst's value into node, keep node in - place, and free subst.) */ - if (subst_parent != node) - { - subst->left = node->left; - subst->left->parent = subst; - } - subst->right = node->right; - subst->right->parent = subst; - subst->color = node->color; - subst->branch_size = node->branch_size; - subst->parent = parent; - if (parent == NULL) - list->root = subst; - else if (parent->left == node) - parent->left = subst; - else /* parent->right == node */ - parent->right = subst; - - if (removed_color == BLACK) - { - if (child != NULL && child->color == RED) - /* Recolor the child. */ - child->color = BLACK; - else - /* Rebalancing starts at child's parent, that is subst_parent - - except when subst_parent == node. In this case, we need to use - its replacement, subst. */ - rebalance_after_remove (list, child, - subst_parent != node ? subst_parent : subst); - } - } -} - -static gl_list_node_t -gl_tree_nx_add_first (gl_list_t list, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (list->root == NULL) - { - new_node->color = BLACK; - list->root = new_node; - new_node->parent = NULL; - } - else - { - gl_list_node_t node; - - for (node = list->root; node->left != NULL; ) - node = node->left; - - node->left = new_node; - new_node->parent = node; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Color and rebalance. */ - rebalance_after_add (list, new_node, node); - } - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_tree_nx_add_last (gl_list_t list, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (list->root == NULL) - { - new_node->color = BLACK; - list->root = new_node; - new_node->parent = NULL; - } - else - { - gl_list_node_t node; - - for (node = list->root; node->right != NULL; ) - node = node->right; - - node->right = new_node; - new_node->parent = node; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Color and rebalance. */ - rebalance_after_add (list, new_node, node); - } - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_tree_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (node->left == NULL) - node->left = new_node; - else - { - for (node = node->left; node->right != NULL; ) - node = node->right; - node->right = new_node; - } - new_node->parent = node; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Color and rebalance. */ - rebalance_after_add (list, new_node, node); - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} - -static gl_list_node_t -gl_tree_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) -{ - /* Create new node. */ - gl_list_node_t new_node = - (struct gl_list_node_impl *) malloc (sizeof (struct gl_list_node_impl)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->branch_size = 1; - new_node->value = elt; -#if WITH_HASHTABLE - new_node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (new_node->value) - : (size_t)(uintptr_t) new_node->value); -#endif - - /* Add it to the tree. */ - if (node->right == NULL) - node->right = new_node; - else - { - for (node = node->right; node->left != NULL; ) - node = node->left; - node->left = new_node; - } - new_node->parent = node; - - /* Update branch_size fields of the parent nodes. */ - { - gl_list_node_t p; - - for (p = node; p != NULL; p = p->parent) - p->branch_size++; - } - - /* Color and rebalance. */ - rebalance_after_add (list, new_node, node); - -#if WITH_HASHTABLE - /* Add node to the hash table. - Note that this is only possible _after_ the node has been added to the - tree structure, because add_to_bucket() uses node_position(). */ - if (add_to_bucket (list, new_node) < 0) - { - gl_tree_remove_node_from_tree (list, new_node); - free (new_node); - return NULL; - } - hash_resize_after_add (list); -#endif - - return new_node; -} diff --git a/include/libgnulib/gl_anytree_list1.h b/include/libgnulib/gl_anytree_list1.h deleted file mode 100755 index cd50cd6..0000000 --- a/include/libgnulib/gl_anytree_list1.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_avltree_list.c, gl_rbtree_list.c, - gl_avltreehash_list.c, gl_rbtreehash_list.c. */ - -/* An item on the stack used for iterating across the elements. */ -typedef struct -{ - gl_list_node_t node; - size_t rightp; -} iterstack_item_t; - -/* A stack used for iterating across the elements. */ -typedef iterstack_item_t iterstack_t[MAXHEIGHT]; - -/* Frees a non-empty subtree recursively. - This function is recursive and therefore not very fast. */ -static void -free_subtree (gl_list_node_t node) -{ - if (node->left != NULL) - free_subtree (node->left); - if (node->right != NULL) - free_subtree (node->right); - free (node); -} diff --git a/include/libgnulib/gl_anytree_list2.h b/include/libgnulib/gl_anytree_list2.h deleted file mode 100755 index a66e611..0000000 --- a/include/libgnulib/gl_anytree_list2.h +++ /dev/null @@ -1,970 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_avltree_list.c, gl_rbtree_list.c, - gl_avltreehash_list.c, gl_rbtreehash_list.c. */ - -static gl_list_t -gl_tree_nx_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) -{ - struct gl_list_impl *list = (struct gl_list_impl *) malloc (sizeof (struct gl_list_impl)); - - if (list == NULL) - return NULL; - - list->base.vtable = implementation; - list->base.equals_fn = equals_fn; - list->base.hashcode_fn = hashcode_fn; - list->base.dispose_fn = dispose_fn; - list->base.allow_duplicates = allow_duplicates; -#if WITH_HASHTABLE - list->table_size = 11; - list->table = - (gl_hash_entry_t *) calloc (list->table_size, sizeof (gl_hash_entry_t)); - if (list->table == NULL) - goto fail; -#endif - list->root = NULL; - - return list; - -#if WITH_HASHTABLE - fail: - free (list); - return NULL; -#endif -} - -static size_t _GL_ATTRIBUTE_PURE -gl_tree_size (gl_list_t list) -{ - return (list->root != NULL ? list->root->branch_size : 0); -} - -static const void * _GL_ATTRIBUTE_PURE -gl_tree_node_value (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list, - gl_list_node_t node) -{ - return node->value; -} - -static int -gl_tree_node_nx_set_value (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list, - gl_list_node_t node, const void *elt) -{ -#if WITH_HASHTABLE - if (elt != node->value) - { - size_t new_hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - - if (new_hashcode != node->h.hashcode) - { - remove_from_bucket (list, node); - node->value = elt; - node->h.hashcode = new_hashcode; - if (add_to_bucket (list, node) < 0) - { - /* Out of memory. We removed node from a bucket but cannot add - it to another bucket. In order to avoid inconsistencies, we - must remove node entirely from the list. */ - gl_tree_remove_node_from_tree (list, node); - free (node); - return -1; - } - } - else - node->value = elt; - } -#else - node->value = elt; -#endif - return 0; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_next_node (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list, - gl_list_node_t node) -{ - if (node->right != NULL) - { - node = node->right; - while (node->left != NULL) - node = node->left; - } - else - { - while (node->parent != NULL && node->parent->right == node) - node = node->parent; - node = node->parent; - } - return node; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_previous_node (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list, - gl_list_node_t node) -{ - if (node->left != NULL) - { - node = node->left; - while (node->right != NULL) - node = node->right; - } - else - { - while (node->parent != NULL && node->parent->left == node) - node = node->parent; - node = node->parent; - } - return node; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_first_node (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list) -{ - gl_list_node_t node = list->root; - - if (node != NULL) - { - while (node->left != NULL) - node = node->left; - } - return node; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_last_node (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_t list) -{ - gl_list_node_t node = list->root; - - if (node != NULL) - { - while (node->right != NULL) - node = node->right; - } - return node; -} - -/* Returns the node at the given position < gl_tree_size (list). */ -static gl_list_node_t _GL_ATTRIBUTE_PURE -node_at (gl_list_node_t root, size_t position) -{ - /* Here we know that root != NULL. */ - gl_list_node_t node = root; - - for (;;) - { - if (node->left != NULL) - { - if (position < node->left->branch_size) - { - node = node->left; - continue; - } - position -= node->left->branch_size; - } - if (position == 0) - break; - position--; - node = node->right; - } - return node; -} - -static const void * _GL_ATTRIBUTE_PURE -gl_tree_get_at (gl_list_t list, size_t position) -{ - gl_list_node_t node = list->root; - - if (!(node != NULL && position < node->branch_size)) - /* Invalid argument. */ - abort (); - node = node_at (node, position); - return node->value; -} - -static gl_list_node_t -gl_tree_nx_set_at (gl_list_t list, size_t position, const void *elt) -{ - gl_list_node_t node = list->root; - - if (!(node != NULL && position < node->branch_size)) - /* Invalid argument. */ - abort (); - node = node_at (node, position); -#if WITH_HASHTABLE - if (elt != node->value) - { - size_t new_hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - - if (new_hashcode != node->h.hashcode) - { - remove_from_bucket (list, node); - node->value = elt; - node->h.hashcode = new_hashcode; - if (add_to_bucket (list, node) < 0) - { - /* Out of memory. We removed node from a bucket but cannot add - it to another bucket. In order to avoid inconsistencies, we - must remove node entirely from the list. */ - gl_tree_remove_node_from_tree (list, node); - free (node); - return NULL; - } - } - else - node->value = elt; - } -#else - node->value = elt; -#endif - return node; -} - -#if !WITH_HASHTABLE - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_search_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - if (!(start_index <= end_index - && end_index <= (list->root != NULL ? list->root->branch_size : 0))) - /* Invalid arguments. */ - abort (); - { - gl_listelement_equals_fn equals = list->base.equals_fn; - /* Iterate across all elements. */ - gl_list_node_t node = list->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - size_t index = 0; - - if (start_index == 0) - { - /* Consider all elements. */ - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = 0; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - return NULL; - stack_ptr--; - if (!stack_ptr->rightp) - break; - } - node = stack_ptr->node; - /* Test against current element. */ - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - return node; - index++; - if (index >= end_index) - return NULL; - /* Descend on right branch. */ - stack_ptr->rightp = 1; - node = node->right; - stack_ptr++; - } - } - else - { - /* Consider only elements at indices >= start_index. - In this case, rightp contains the difference between the start_index - for the parent node and the one for the child node (0 when the child - node is the parent's left child, > 0 when the child is the parent's - right child). */ - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - if (node->branch_size <= start_index) - break; - stack_ptr->node = node; - stack_ptr->rightp = 0; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - return NULL; - stack_ptr--; - if (!stack_ptr->rightp) - break; - start_index += stack_ptr->rightp; - } - node = stack_ptr->node; - { - size_t left_branch_size1 = - (node->left != NULL ? node->left->branch_size : 0) + 1; - if (start_index < left_branch_size1) - { - /* Test against current element. */ - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - return node; - /* Now that we have considered all indices < left_branch_size1, - we can increment start_index. */ - start_index = left_branch_size1; - } - index++; - if (index >= end_index) - return NULL; - /* Descend on right branch. */ - start_index -= left_branch_size1; - stack_ptr->rightp = left_branch_size1; - } - node = node->right; - stack_ptr++; - } - } - } -} - -static size_t _GL_ATTRIBUTE_PURE -gl_tree_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - if (!(start_index <= end_index - && end_index <= (list->root != NULL ? list->root->branch_size : 0))) - /* Invalid arguments. */ - abort (); - { - gl_listelement_equals_fn equals = list->base.equals_fn; - /* Iterate across all elements. */ - gl_list_node_t node = list->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - size_t index = 0; - - if (start_index == 0) - { - /* Consider all elements. */ - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = 0; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - return (size_t)(-1); - stack_ptr--; - if (!stack_ptr->rightp) - break; - } - node = stack_ptr->node; - /* Test against current element. */ - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - return index; - index++; - if (index >= end_index) - return (size_t)(-1); - /* Descend on right branch. */ - stack_ptr->rightp = 1; - node = node->right; - stack_ptr++; - } - } - else - { - /* Consider only elements at indices >= start_index. - In this case, rightp contains the difference between the start_index - for the parent node and the one for the child node (0 when the child - node is the parent's left child, > 0 when the child is the parent's - right child). */ - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - if (node->branch_size <= start_index) - break; - stack_ptr->node = node; - stack_ptr->rightp = 0; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - return (size_t)(-1); - stack_ptr--; - if (!stack_ptr->rightp) - break; - start_index += stack_ptr->rightp; - } - node = stack_ptr->node; - { - size_t left_branch_size1 = - (node->left != NULL ? node->left->branch_size : 0) + 1; - if (start_index < left_branch_size1) - { - /* Test against current element. */ - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - return index; - /* Now that we have considered all indices < left_branch_size1, - we can increment start_index. */ - start_index = left_branch_size1; - } - index++; - if (index >= end_index) - return (size_t)(-1); - /* Descend on right branch. */ - start_index -= left_branch_size1; - stack_ptr->rightp = left_branch_size1; - } - node = node->right; - stack_ptr++; - } - } - } -} - -#endif - -static gl_list_node_t -gl_tree_nx_add_at (gl_list_t list, size_t position, const void *elt) -{ - size_t count = (list->root != NULL ? list->root->branch_size : 0); - - if (!(position <= count)) - /* Invalid argument. */ - abort (); - if (position == count) - return gl_tree_nx_add_last (list, elt); - else - return gl_tree_nx_add_before (list, node_at (list->root, position), elt); -} - -static bool -gl_tree_remove_node (gl_list_t list, gl_list_node_t node) -{ -#if WITH_HASHTABLE - /* Remove node from the hash table. - Note that this is only possible _before_ the node is removed from the - tree structure, because remove_from_bucket() uses node_position(). */ - remove_from_bucket (list, node); -#endif - - gl_tree_remove_node_from_tree (list, node); - - if (list->base.dispose_fn != NULL) - list->base.dispose_fn (node->value); - free (node); - return true; -} - -static bool -gl_tree_remove_at (gl_list_t list, size_t position) -{ - gl_list_node_t node = list->root; - - if (!(node != NULL && position < node->branch_size)) - /* Invalid argument. */ - abort (); - node = node_at (node, position); - return gl_tree_remove_node (list, node); -} - -static bool -gl_tree_remove (gl_list_t list, const void *elt) -{ - if (list->root != NULL) - { - gl_list_node_t node = - gl_tree_search_from_to (list, 0, list->root->branch_size, elt); - - if (node != NULL) - return gl_tree_remove_node (list, node); - } - return false; -} - -#if !WITH_HASHTABLE - -static void -gl_tree_list_free (gl_list_t list) -{ - /* Iterate across all elements in post-order. */ - gl_list_node_t node = list->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = false; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - goto done_iterate; - stack_ptr--; - node = stack_ptr->node; - if (!stack_ptr->rightp) - break; - /* Free the current node. */ - if (list->base.dispose_fn != NULL) - list->base.dispose_fn (node->value); - free (node); - } - /* Descend on right branch. */ - stack_ptr->rightp = true; - node = node->right; - stack_ptr++; - } - done_iterate: - free (list); -} - -#endif - -/* --------------------- gl_list_iterator_t Data Type --------------------- */ - -static gl_list_iterator_t _GL_ATTRIBUTE_PURE -gl_tree_iterator (gl_list_t list) -{ - gl_list_iterator_t result; - gl_list_node_t node; - - result.vtable = list->base.vtable; - result.list = list; - /* Start node is the leftmost node. */ - node = list->root; - if (node != NULL) - while (node->left != NULL) - node = node->left; - result.p = node; - /* End point is past the rightmost node. */ - result.q = NULL; -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - return result; -} - -static gl_list_iterator_t _GL_ATTRIBUTE_PURE -gl_tree_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index) -{ - size_t count = (list->root != NULL ? list->root->branch_size : 0); - gl_list_iterator_t result; - - if (!(start_index <= end_index && end_index <= count)) - /* Invalid arguments. */ - abort (); - result.vtable = list->base.vtable; - result.list = list; - /* Start node is the node at position start_index. */ - result.p = (start_index < count ? node_at (list->root, start_index) : NULL); - /* End point is the node at position end_index. */ - result.q = (end_index < count ? node_at (list->root, end_index) : NULL); -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - return result; -} - -static bool -gl_tree_iterator_next (gl_list_iterator_t *iterator, - const void **eltp, gl_list_node_t *nodep) -{ - if (iterator->p != iterator->q) - { - gl_list_node_t node = (gl_list_node_t) iterator->p; - *eltp = node->value; - if (nodep != NULL) - *nodep = node; - /* Advance to the next node. */ - if (node->right != NULL) - { - node = node->right; - while (node->left != NULL) - node = node->left; - } - else - { - while (node->parent != NULL && node->parent->right == node) - node = node->parent; - node = node->parent; - } - iterator->p = node; - return true; - } - else - return false; -} - -static void -gl_tree_iterator_free (_GL_ATTRIBUTE_MAYBE_UNUSED gl_list_iterator_t *iterator) -{ -} - -/* ---------------------- Sorted gl_list_t Data Type ---------------------- */ - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node; - - for (node = list->root; node != NULL; ) - { - int cmp = compar (node->value, elt); - - if (cmp < 0) - node = node->right; - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - { - /* We have an element equal to ELT. But we need the leftmost such - element. */ - gl_list_node_t found = node; - node = node->left; - for (; node != NULL; ) - { - int cmp2 = compar (node->value, elt); - - if (cmp2 < 0) - node = node->right; - else if (cmp2 > 0) - /* The list was not sorted. */ - abort (); - else /* cmp2 == 0 */ - { - found = node; - node = node->left; - } - } - return found; - } - } - return NULL; -} - -static gl_list_node_t _GL_ATTRIBUTE_PURE -gl_tree_sortedlist_search_from_to (gl_list_t list, - gl_listelement_compar_fn compar, - size_t low, size_t high, - const void *elt) -{ - gl_list_node_t node; - - if (!(low <= high - && high <= (list->root != NULL ? list->root->branch_size : 0))) - /* Invalid arguments. */ - abort (); - - for (node = list->root; node != NULL; ) - { - size_t left_branch_size = - (node->left != NULL ? node->left->branch_size : 0); - - if (low > left_branch_size) - { - low -= left_branch_size + 1; - high -= left_branch_size + 1; - node = node->right; - } - else if (high <= left_branch_size) - node = node->left; - else - { - /* Here low <= left_branch_size < high. */ - int cmp = compar (node->value, elt); - - if (cmp < 0) - { - low = 0; - high -= left_branch_size + 1; - node = node->right; - } - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - { - /* We have an element equal to ELT. But we need the leftmost - such element. */ - gl_list_node_t found = node; - node = node->left; - for (; node != NULL; ) - { - size_t left_branch_size2 = - (node->left != NULL ? node->left->branch_size : 0); - - if (low > left_branch_size2) - { - low -= left_branch_size2 + 1; - node = node->right; - } - else - { - /* Here low <= left_branch_size2. */ - int cmp2 = compar (node->value, elt); - - if (cmp2 < 0) - { - low = 0; - node = node->right; - } - else if (cmp2 > 0) - /* The list was not sorted. */ - abort (); - else /* cmp2 == 0 */ - { - found = node; - node = node->left; - } - } - } - return found; - } - } - } - return NULL; -} - -static size_t _GL_ATTRIBUTE_PURE -gl_tree_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node; - size_t position; - - for (node = list->root, position = 0; node != NULL; ) - { - int cmp = compar (node->value, elt); - - if (cmp < 0) - { - if (node->left != NULL) - position += node->left->branch_size; - position++; - node = node->right; - } - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - { - /* We have an element equal to ELT. But we need the leftmost such - element. */ - size_t found_position = - position + (node->left != NULL ? node->left->branch_size : 0); - node = node->left; - for (; node != NULL; ) - { - int cmp2 = compar (node->value, elt); - - if (cmp2 < 0) - { - if (node->left != NULL) - position += node->left->branch_size; - position++; - node = node->right; - } - else if (cmp2 > 0) - /* The list was not sorted. */ - abort (); - else /* cmp2 == 0 */ - { - found_position = - position - + (node->left != NULL ? node->left->branch_size : 0); - node = node->left; - } - } - return found_position; - } - } - return (size_t)(-1); -} - -static size_t _GL_ATTRIBUTE_PURE -gl_tree_sortedlist_indexof_from_to (gl_list_t list, - gl_listelement_compar_fn compar, - size_t low, size_t high, - const void *elt) -{ - gl_list_node_t node; - size_t position; - - if (!(low <= high - && high <= (list->root != NULL ? list->root->branch_size : 0))) - /* Invalid arguments. */ - abort (); - - for (node = list->root, position = 0; node != NULL; ) - { - size_t left_branch_size = - (node->left != NULL ? node->left->branch_size : 0); - - if (low > left_branch_size) - { - low -= left_branch_size + 1; - high -= left_branch_size + 1; - position += left_branch_size + 1; - node = node->right; - } - else if (high <= left_branch_size) - node = node->left; - else - { - /* Here low <= left_branch_size < high. */ - int cmp = compar (node->value, elt); - - if (cmp < 0) - { - low = 0; - high -= left_branch_size + 1; - position += left_branch_size + 1; - node = node->right; - } - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - { - /* We have an element equal to ELT. But we need the leftmost - such element. */ - size_t found_position = - position + (node->left != NULL ? node->left->branch_size : 0); - node = node->left; - for (; node != NULL; ) - { - size_t left_branch_size2 = - (node->left != NULL ? node->left->branch_size : 0); - - if (low > left_branch_size2) - { - low -= left_branch_size2 + 1; - node = node->right; - } - else - { - /* Here low <= left_branch_size2. */ - int cmp2 = compar (node->value, elt); - - if (cmp2 < 0) - { - position += left_branch_size2 + 1; - node = node->right; - } - else if (cmp2 > 0) - /* The list was not sorted. */ - abort (); - else /* cmp2 == 0 */ - { - found_position = position + left_branch_size2; - node = node->left; - } - } - } - return found_position; - } - } - } - return (size_t)(-1); -} - -static gl_list_node_t -gl_tree_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node = list->root; - - if (node == NULL) - return gl_tree_nx_add_first (list, elt); - - for (;;) - { - int cmp = compar (node->value, elt); - - if (cmp < 0) - { - if (node->right == NULL) - return gl_tree_nx_add_after (list, node, elt); - node = node->right; - } - else if (cmp > 0) - { - if (node->left == NULL) - return gl_tree_nx_add_before (list, node, elt); - node = node->left; - } - else /* cmp == 0 */ - return gl_tree_nx_add_before (list, node, elt); - } -} - -static bool -gl_tree_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t node = gl_tree_sortedlist_search (list, compar, elt); - if (node != NULL) - return gl_tree_remove_node (list, node); - else - return false; -} diff --git a/include/libgnulib/gl_anytree_omap.h b/include/libgnulib/gl_anytree_omap.h deleted file mode 100755 index 03403f4..0000000 --- a/include/libgnulib/gl_anytree_omap.h +++ /dev/null @@ -1,305 +0,0 @@ -/* Ordered map data type implemented by a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_avltree_omap.c and gl_rbtree_omap.c. */ - -/* An item on the stack used for iterating across the elements. */ -typedef struct -{ - gl_omap_node_t node; - bool rightp; -} iterstack_item_t; - -/* A stack used for iterating across the elements. */ -typedef iterstack_item_t iterstack_t[MAXHEIGHT]; - -static gl_omap_t -gl_tree_nx_create_empty (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) -{ - struct gl_omap_impl *map = - (struct gl_omap_impl *) malloc (sizeof (struct gl_omap_impl)); - - if (map == NULL) - return NULL; - - map->base.vtable = implementation; - map->base.compar_fn = compar_fn; - map->base.kdispose_fn = kdispose_fn; - map->base.vdispose_fn = vdispose_fn; - map->root = NULL; - map->count = 0; - - return map; -} - -static size_t _GL_ATTRIBUTE_PURE -gl_tree_size (gl_omap_t map) -{ - return map->count; -} - -static bool -gl_tree_search (gl_omap_t map, const void *key, const void **valuep) -{ - gl_mapkey_compar_fn compar = map->base.compar_fn; - gl_omap_node_t node; - - for (node = map->root; node != NULL; ) - { - int cmp = (compar != NULL - ? compar (node->key, key) - : (node->key > key ? 1 : - node->key < key ? -1 : 0)); - - if (cmp < 0) - node = node->right; - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - { - /* We have a key equal to KEY. */ - *valuep = node->value; - return true; - } - } - return false; -} - -static bool -gl_tree_search_atleast (gl_omap_t map, - gl_mapkey_threshold_fn threshold_fn, - const void *threshold, - const void **keyp, const void **valuep) -{ - gl_omap_node_t node; - - for (node = map->root; node != NULL; ) - { - if (! threshold_fn (node->key, threshold)) - node = node->right; - else - { - /* We have a key >= THRESHOLD. But we need the leftmost such - element. */ - gl_omap_node_t found = node; - node = node->left; - for (; node != NULL; ) - { - if (! threshold_fn (node->key, threshold)) - node = node->right; - else - { - found = node; - node = node->left; - } - } - *keyp = found->key; - *valuep = found->value; - return true; - } - } - return false; -} - -static int -gl_tree_nx_getput (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep) -{ - gl_mapkey_compar_fn compar; - gl_omap_node_t node = map->root; - - if (node == NULL) - { - if (gl_tree_nx_add_first (map, key, value) == NULL) - return -1; - return 1; - } - - compar = map->base.compar_fn; - - for (;;) - { - int cmp = (compar != NULL - ? compar (node->key, key) - : (node->key > key ? 1 : - node->key < key ? -1 : 0)); - - if (cmp < 0) - { - if (node->right == NULL) - { - if (gl_tree_nx_add_after (map, node, key, value) == NULL) - return -1; - return 1; - } - node = node->right; - } - else if (cmp > 0) - { - if (node->left == NULL) - { - if (gl_tree_nx_add_before (map, node, key, value) == NULL) - return -1; - return 1; - } - node = node->left; - } - else /* cmp == 0 */ - { - *oldvaluep = node->value; - node->value = value; - return 0; - } - } -} - -static bool -gl_tree_getremove (gl_omap_t map, const void *key, const void **oldvaluep) -{ - gl_mapkey_compar_fn compar = map->base.compar_fn; - gl_omap_node_t node; - - for (node = map->root; node != NULL; ) - { - int cmp = (compar != NULL - ? compar (node->key, key) - : (node->key > key ? 1 : - node->key < key ? -1 : 0)); - - if (cmp < 0) - node = node->right; - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - { - /* We have a key equal to KEY. */ - *oldvaluep = node->value; - gl_tree_remove_node (map, node); - return true; - } - } - return false; -} - -static void -gl_tree_omap_free (gl_omap_t map) -{ - /* Iterate across all elements in post-order. */ - gl_omap_node_t node = map->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = false; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - goto done_iterate; - stack_ptr--; - node = stack_ptr->node; - if (!stack_ptr->rightp) - break; - /* Free the current node. */ - if (map->base.vdispose_fn != NULL) - map->base.vdispose_fn (node->value); - if (map->base.kdispose_fn != NULL) - map->base.kdispose_fn (node->key); - free (node); - } - /* Descend on right branch. */ - stack_ptr->rightp = true; - node = node->right; - stack_ptr++; - } - done_iterate: - free (map); -} - -/* --------------------- gl_omap_iterator_t Data Type --------------------- */ - -static gl_omap_iterator_t _GL_ATTRIBUTE_PURE -gl_tree_iterator (gl_omap_t map) -{ - gl_omap_iterator_t result; - gl_omap_node_t node; - - result.vtable = map->base.vtable; - result.map = map; - /* Start node is the leftmost node. */ - node = map->root; - if (node != NULL) - while (node->left != NULL) - node = node->left; - result.p = node; - /* End point is past the rightmost node. */ - result.q = NULL; -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - return result; -} - -static bool -gl_tree_iterator_next (gl_omap_iterator_t *iterator, - const void **keyp, const void **valuep) -{ - if (iterator->p != iterator->q) - { - gl_omap_node_t node = (gl_omap_node_t) iterator->p; - *keyp = node->key; - *valuep = node->value; - /* Advance to the next node. */ - if (node->right != NULL) - { - node = node->right; - while (node->left != NULL) - node = node->left; - } - else - { - while (node->parent != NULL && node->parent->right == node) - node = node->parent; - node = node->parent; - } - iterator->p = node; - return true; - } - else - return false; -} - -static void -gl_tree_iterator_free (_GL_ATTRIBUTE_MAYBE_UNUSED gl_omap_iterator_t *iterator) -{ -} diff --git a/include/libgnulib/gl_anytree_oset.h b/include/libgnulib/gl_anytree_oset.h deleted file mode 100755 index 9cada84..0000000 --- a/include/libgnulib/gl_anytree_oset.h +++ /dev/null @@ -1,443 +0,0 @@ -/* Ordered set data type implemented by a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* Common code of gl_avltree_oset.c and gl_rbtree_oset.c. */ - -/* An item on the stack used for iterating across the elements. */ -typedef struct -{ - gl_oset_node_t node; - bool rightp; -} iterstack_item_t; - -/* A stack used for iterating across the elements. */ -typedef iterstack_item_t iterstack_t[MAXHEIGHT]; - -static gl_oset_t -gl_tree_nx_create_empty (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn) -{ - struct gl_oset_impl *set = - (struct gl_oset_impl *) malloc (sizeof (struct gl_oset_impl)); - - if (set == NULL) - return NULL; - - set->base.vtable = implementation; - set->base.compar_fn = compar_fn; - set->base.dispose_fn = dispose_fn; - set->root = NULL; - set->count = 0; - - return set; -} - -static size_t _GL_ATTRIBUTE_PURE -gl_tree_size (gl_oset_t set) -{ - return set->count; -} - -/* Returns the next node in the tree, or NULL if there is none. */ -static inline gl_oset_node_t _GL_ATTRIBUTE_PURE -gl_tree_next_node (gl_oset_node_t node) -{ - if (node->right != NULL) - { - node = node->right; - while (node->left != NULL) - node = node->left; - } - else - { - while (node->parent != NULL && node->parent->right == node) - node = node->parent; - node = node->parent; - } - return node; -} - -/* Returns the previous node in the tree, or NULL if there is none. */ -static inline gl_oset_node_t _GL_ATTRIBUTE_PURE -gl_tree_prev_node (gl_oset_node_t node) -{ - if (node->left != NULL) - { - node = node->left; - while (node->right != NULL) - node = node->right; - } - else - { - while (node->parent != NULL && node->parent->left == node) - node = node->parent; - node = node->parent; - } - return node; -} - -static bool -gl_tree_search (gl_oset_t set, const void *elt) -{ - gl_setelement_compar_fn compar = set->base.compar_fn; - gl_oset_node_t node; - - for (node = set->root; node != NULL; ) - { - int cmp = (compar != NULL - ? compar (node->value, elt) - : (node->value > elt ? 1 : - node->value < elt ? -1 : 0)); - - if (cmp < 0) - node = node->right; - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - /* We have an element equal to ELT. */ - return true; - } - return false; -} - -static bool -gl_tree_search_atleast (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold, - const void **eltp) -{ - gl_oset_node_t node; - - for (node = set->root; node != NULL; ) - { - if (! threshold_fn (node->value, threshold)) - node = node->right; - else - { - /* We have an element >= THRESHOLD. But we need the leftmost such - element. */ - gl_oset_node_t found = node; - node = node->left; - for (; node != NULL; ) - { - if (! threshold_fn (node->value, threshold)) - node = node->right; - else - { - found = node; - node = node->left; - } - } - *eltp = found->value; - return true; - } - } - return false; -} - -static gl_oset_node_t -gl_tree_search_node (gl_oset_t set, const void *elt) -{ - gl_setelement_compar_fn compar = set->base.compar_fn; - gl_oset_node_t node; - - for (node = set->root; node != NULL; ) - { - int cmp = (compar != NULL - ? compar (node->value, elt) - : (node->value > elt ? 1 : - node->value < elt ? -1 : 0)); - - if (cmp < 0) - node = node->right; - else if (cmp > 0) - node = node->left; - else /* cmp == 0 */ - /* We have an element equal to ELT. */ - return node; - } - return NULL; -} - -static int -gl_tree_nx_add (gl_oset_t set, const void *elt) -{ - gl_setelement_compar_fn compar; - gl_oset_node_t node = set->root; - - if (node == NULL) - { - if (gl_tree_nx_add_first (set, elt) == NULL) - return -1; - return true; - } - - compar = set->base.compar_fn; - - for (;;) - { - int cmp = (compar != NULL - ? compar (node->value, elt) - : (node->value > elt ? 1 : - node->value < elt ? -1 : 0)); - - if (cmp < 0) - { - if (node->right == NULL) - { - if (gl_tree_nx_add_after (set, node, elt) == NULL) - return -1; - return true; - } - node = node->right; - } - else if (cmp > 0) - { - if (node->left == NULL) - { - if (gl_tree_nx_add_before (set, node, elt) == NULL) - return -1; - return true; - } - node = node->left; - } - else /* cmp == 0 */ - return false; - } -} - -static bool -gl_tree_remove (gl_oset_t set, const void *elt) -{ - gl_oset_node_t node = gl_tree_search_node (set, elt); - - if (node != NULL) - return gl_tree_remove_node (set, node); - else - return false; -} - -static int -gl_tree_update (gl_oset_t set, const void *elt, - void (*action) (const void * /*elt*/, void * /*action_data*/), - void *action_data) -{ - /* Like gl_tree_remove, action (...), gl_tree_nx_add, except that we don't - actually remove ELT. */ - /* Remember the old node. Don't free it. */ - gl_oset_node_t old_node = gl_tree_search_node (set, elt); - /* Invoke ACTION. */ - action (elt, action_data); - /* Determine where to put the node now. */ - if (old_node != NULL) - { - if (set->count > 1) - { - gl_setelement_compar_fn compar = set->base.compar_fn; - - gl_oset_node_t prev_node = gl_tree_prev_node (old_node); - gl_oset_node_t next_node = gl_tree_next_node (old_node); - if (!(compar != NULL - ? (prev_node == NULL || compar (prev_node->value, elt) < 0) - && (next_node == NULL || compar (next_node->value, elt) > 0) - : (prev_node == NULL || prev_node->value < elt) - && (next_node == NULL || next_node->value > elt))) - { - /* old_node needs to move in the tree. */ - gl_oset_node_t node; - - /* Remove the node from the tree. Don't free it. */ - gl_tree_remove_node_no_free (set, old_node); - - node = set->root; - - for (;;) - { - int cmp = (compar != NULL - ? compar (node->value, elt) - : (node->value > elt ? 1 : - node->value < elt ? -1 : 0)); - - if (cmp < 0) - { - if (node->right == NULL) - { - gl_tree_add_node_after (set, node, old_node); - return true; - } - node = node->right; - } - else if (cmp > 0) - { - if (node->left == NULL) - { - gl_tree_add_node_before (set, node, old_node); - return true; - } - node = node->left; - } - else /* cmp == 0 */ - { - /* Two elements are the same. */ - NODE_PAYLOAD_DISPOSE (set, old_node) - free (old_node); - return -1; - } - } - } - } - } - return 0; -} - -static void -gl_tree_oset_free (gl_oset_t set) -{ - /* Iterate across all elements in post-order. */ - gl_oset_node_t node = set->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = false; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - goto done_iterate; - stack_ptr--; - node = stack_ptr->node; - if (!stack_ptr->rightp) - break; - /* Free the current node. */ - if (set->base.dispose_fn != NULL) - set->base.dispose_fn (node->value); - free (node); - } - /* Descend on right branch. */ - stack_ptr->rightp = true; - node = node->right; - stack_ptr++; - } - done_iterate: - free (set); -} - -/* --------------------- gl_oset_iterator_t Data Type --------------------- */ - -static gl_oset_iterator_t _GL_ATTRIBUTE_PURE -gl_tree_iterator (gl_oset_t set) -{ - gl_oset_iterator_t result; - gl_oset_node_t node; - - result.vtable = set->base.vtable; - result.set = set; - /* Start node is the leftmost node. */ - node = set->root; - if (node != NULL) - while (node->left != NULL) - node = node->left; - result.p = node; - /* End point is past the rightmost node. */ - result.q = NULL; -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - return result; -} - -static gl_oset_iterator_t -gl_tree_iterator_atleast (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold) -{ - gl_oset_iterator_t result; - gl_oset_node_t node; - - result.vtable = set->base.vtable; - result.set = set; - /* End point is past the rightmost node. */ - result.q = NULL; -#if defined GCC_LINT || defined lint - result.i = 0; - result.j = 0; - result.count = 0; -#endif - - for (node = set->root; node != NULL; ) - { - if (! threshold_fn (node->value, threshold)) - node = node->right; - else - { - /* We have an element >= THRESHOLD. But we need the leftmost such - element. */ - gl_oset_node_t found = node; - node = node->left; - for (; node != NULL; ) - { - if (! threshold_fn (node->value, threshold)) - node = node->right; - else - { - found = node; - node = node->left; - } - } - result.p = found; - return result; - } - } - result.p = NULL; - return result; -} - -static bool -gl_tree_iterator_next (gl_oset_iterator_t *iterator, const void **eltp) -{ - if (iterator->p != iterator->q) - { - gl_oset_node_t node = (gl_oset_node_t) iterator->p; - *eltp = node->value; - /* Advance to the next node. */ - node = gl_tree_next_node (node); - iterator->p = node; - return true; - } - else - return false; -} - -static void -gl_tree_iterator_free (_GL_ATTRIBUTE_MAYBE_UNUSED gl_oset_iterator_t *iterator) -{ -} diff --git a/include/libgnulib/gl_anytreehash_list1.h b/include/libgnulib/gl_anytreehash_list1.h deleted file mode 100755 index 1f83fee..0000000 --- a/include/libgnulib/gl_anytreehash_list1.h +++ /dev/null @@ -1,346 +0,0 @@ -/* Sequential list data type implemented by a hash table with a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -/* Common code of gl_avltreehash_list.c and gl_rbtreehash_list.c. */ - -/* Hash table entry representing the same value at more than one position. */ -struct gl_multiple_nodes -{ - struct gl_hash_entry h; /* hash table entry fields; must be first */ - void *magic; /* used to distinguish from single node */ - gl_oset_t nodes; /* set of nodes, sorted by position */ -}; -/* A value that cannot occur at the corresponding field (->left) in - gl_list_node_impl. */ -#define MULTIPLE_NODES_MAGIC (void *) -1 - -/* Returns the position of the given node in the tree. */ -static size_t _GL_ATTRIBUTE_PURE -node_position (gl_list_node_t node) -{ - size_t position = 0; - - if (node->left != NULL) - position += node->left->branch_size; - for (;;) - { - gl_list_node_t parent = node->parent; - - if (parent == NULL) - return position; - /* position is now relative to the subtree of node. */ - if (parent->right == node) - { - position += 1; - if (parent->left != NULL) - position += parent->left->branch_size; - } - /* position is now relative to the subtree of parent. */ - node = parent; - } -} - -/* Compares two nodes by their position in the tree. */ -static int _GL_ATTRIBUTE_PURE -compare_by_position (const void *x1, const void *x2) -{ - gl_list_node_t node1 = (gl_list_node_t) x1; - gl_list_node_t node2 = (gl_list_node_t) x2; - size_t position1 = node_position (node1); - size_t position2 = node_position (node2); - - return (position1 > position2 ? 1 : - position1 < position2 ? -1 : 0); -} - -/* Compares a node's position in the tree with a given threshold. */ -static bool _GL_ATTRIBUTE_PURE -compare_position_threshold (const void *x, const void *threshold) -{ - gl_list_node_t node = (gl_list_node_t) x; - size_t position = node_position (node); - return (position >= (uintptr_t)threshold); -} - -/* Returns the first element of a non-empty ordered set of nodes. */ -static gl_list_node_t -gl_oset_first (gl_oset_t set) -{ - gl_oset_iterator_t iter = gl_oset_iterator (set); - const void *first; - - if (!gl_oset_iterator_next (&iter, &first)) - abort (); - gl_oset_iterator_free (&iter); - return (gl_list_node_t) first; -} - -/* Adds a node to the hash table structure. - If duplicates are allowed, this function performs in average time - O((log n)^2): gl_oset_nx_add may need to add an element to an ordered set - of size O(n), needing O(log n) comparison function calls. The comparison - function is compare_by_position, which is O(log n) worst-case. - If duplicates are forbidden, this function is O(1). - Return 0 upon success, -1 upon out-of-memory. */ -static int -add_to_bucket (gl_list_t list, gl_list_node_t new_node) -{ - size_t bucket = new_node->h.hashcode % list->table_size; - - /* If no duplicates are allowed, multiple nodes are not needed. */ - if (list->base.allow_duplicates) - { - size_t hashcode = new_node->h.hashcode; - const void *value = new_node->value; - gl_listelement_equals_fn equals = list->base.equals_fn; - gl_hash_entry_t *entryp; - - for (entryp = &list->table[bucket]; *entryp != NULL; entryp = &(*entryp)->hash_next) - { - gl_hash_entry_t entry = *entryp; - - if (entry->hashcode == hashcode) - { - if (((struct gl_multiple_nodes *) entry)->magic == MULTIPLE_NODES_MAGIC) - { - /* An entry representing multiple nodes. */ - gl_oset_t nodes = ((struct gl_multiple_nodes *) entry)->nodes; - /* Only the first node is interesting. */ - gl_list_node_t node = gl_oset_first (nodes); - if (equals != NULL ? equals (value, node->value) : value == node->value) - { - /* Found already multiple nodes with the same value. - Add the new_node to it. */ - return gl_oset_nx_add (nodes, new_node); - } - } - else - { - /* An entry representing a single node. */ - gl_list_node_t node = (struct gl_list_node_impl *) entry; - if (equals != NULL ? equals (value, node->value) : value == node->value) - { - /* Found already a node with the same value. Turn it - into an ordered set, and add new_node to it. */ - gl_oset_t nodes; - struct gl_multiple_nodes *multi_entry; - - nodes = - gl_oset_nx_create_empty (OSET_TREE_FLAVOR, - compare_by_position, NULL); - if (nodes == NULL) - return -1; - - if (gl_oset_nx_add (nodes, node) < 0) - goto fail; - if (gl_oset_nx_add (nodes, new_node) < 0) - goto fail; - - multi_entry = - (struct gl_multiple_nodes *) malloc (sizeof (struct gl_multiple_nodes)); - if (multi_entry == NULL) - goto fail; - multi_entry->h.hash_next = entry->hash_next; - multi_entry->h.hashcode = entry->hashcode; - multi_entry->magic = MULTIPLE_NODES_MAGIC; - multi_entry->nodes = nodes; - *entryp = &multi_entry->h; - return 0; - - fail: - gl_oset_free (nodes); - return -1; - } - } - } - } - } - /* If no duplicates are allowed, multiple nodes are not needed. */ - new_node->h.hash_next = list->table[bucket]; - list->table[bucket] = &new_node->h; - return 0; -} -/* Tell GCC that the likely return value is 0. */ -#define add_to_bucket(list,node) \ - __builtin_expect ((add_to_bucket) (list, node), 0) - -/* Removes a node from the hash table structure. - If duplicates are allowed, this function performs in average time - O((log n)^2): gl_oset_remove may need to remove an element from an ordered - set of size O(n), needing O(log n) comparison function calls. The - comparison function is compare_by_position, which is O(log n) worst-case. - If duplicates are forbidden, this function is O(1) on average. */ -static void -remove_from_bucket (gl_list_t list, gl_list_node_t old_node) -{ - size_t bucket = old_node->h.hashcode % list->table_size; - - if (list->base.allow_duplicates) - { - size_t hashcode = old_node->h.hashcode; - const void *value = old_node->value; - gl_listelement_equals_fn equals = list->base.equals_fn; - gl_hash_entry_t *entryp; - - for (entryp = &list->table[bucket]; ; entryp = &(*entryp)->hash_next) - { - gl_hash_entry_t entry = *entryp; - - if (entry == &old_node->h) - { - /* Found old_node as a single node in the bucket. Remove it. */ - *entryp = old_node->h.hash_next; - break; - } - if (entry == NULL) - /* node is not in the right bucket. Did the hash codes - change inadvertently? */ - abort (); - if (((struct gl_multiple_nodes *) entry)->magic == MULTIPLE_NODES_MAGIC - && entry->hashcode == hashcode) - { - /* An entry representing multiple nodes. */ - gl_oset_t nodes = ((struct gl_multiple_nodes *) entry)->nodes; - /* Only the first node is interesting. */ - gl_list_node_t node = gl_oset_first (nodes); - if (equals != NULL ? equals (value, node->value) : value == node->value) - { - /* Found multiple nodes with the same value. - old_node must be one of them. Remove it. */ - if (!gl_oset_remove (nodes, old_node)) - abort (); - if (gl_oset_size (nodes) == 1) - { - /* Replace a one-element set with a single node. */ - node = gl_oset_first (nodes); - node->h.hash_next = entry->hash_next; - *entryp = &node->h; - gl_oset_free (nodes); - free (entry); - } - break; - } - } - } - } - else - { - /* If no duplicates are allowed, multiple nodes are not needed. */ - gl_hash_entry_t *entryp; - - for (entryp = &list->table[bucket]; ; entryp = &(*entryp)->hash_next) - { - if (*entryp == &old_node->h) - { - *entryp = old_node->h.hash_next; - break; - } - if (*entryp == NULL) - /* node is not in the right bucket. Did the hash codes - change inadvertently? */ - abort (); - } - } -} - -/* Builds up the hash table during initialization: Stores all the nodes of - list->root in the hash table. - Returns 0 upon success, -1 upon out-of-memory. */ -static int -add_nodes_to_buckets (gl_list_t list) -{ - /* Iterate across all nodes. */ - gl_list_node_t node = list->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = false; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - goto done; - stack_ptr--; - if (!stack_ptr->rightp) - break; - } - node = stack_ptr->node; - /* Add the current node to the hash table. */ - node->h.hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (node->value) - : (size_t)(uintptr_t) node->value); - if (add_to_bucket (list, node) < 0) - goto fail; - /* Descend on right branch. */ - stack_ptr->rightp = true; - node = node->right; - stack_ptr++; - } - done: - return 0; - - fail: - /* Undo everything. */ - for (;;) - { - /* Descend on left branch. */ - stack_ptr->rightp = false; - node = node->left; - stack_ptr++; - /* Descend on right branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = true; - node = node->right; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - goto fail_done; - stack_ptr--; - if (stack_ptr->rightp) - break; - } - node = stack_ptr->node; - /* Remove the current node from the hash table. */ - remove_from_bucket (list, node); - } - fail_done: - return -1; -} -/* Tell GCC that the likely return value is 0. */ -#if (__GNUC__ >= 3) || (__clang_major__ >= 4) -# define add_nodes_to_buckets(list) \ - __builtin_expect ((add_nodes_to_buckets) (list), 0) -#endif diff --git a/include/libgnulib/gl_anytreehash_list2.h b/include/libgnulib/gl_anytreehash_list2.h deleted file mode 100755 index 4873f09..0000000 --- a/include/libgnulib/gl_anytreehash_list2.h +++ /dev/null @@ -1,213 +0,0 @@ -/* Sequential list data type implemented by a hash table with a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -/* Common code of gl_avltreehash_list.c and gl_rbtreehash_list.c. */ - -static gl_list_node_t -gl_tree_search_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - if (!(start_index <= end_index - && end_index <= (list->root != NULL ? list->root->branch_size : 0))) - /* Invalid arguments. */ - abort (); - { - size_t hashcode = - (list->base.hashcode_fn != NULL - ? list->base.hashcode_fn (elt) - : (size_t)(uintptr_t) elt); - size_t bucket = hashcode % list->table_size; - gl_listelement_equals_fn equals = list->base.equals_fn; - gl_hash_entry_t entry; - - if (list->base.allow_duplicates) - { - for (entry = list->table[bucket]; entry != NULL; entry = entry->hash_next) - if (entry->hashcode == hashcode) - { - if (((struct gl_multiple_nodes *) entry)->magic == MULTIPLE_NODES_MAGIC) - { - /* An entry representing multiple nodes. */ - gl_oset_t nodes = ((struct gl_multiple_nodes *) entry)->nodes; - /* The first node is interesting. */ - gl_list_node_t node = gl_oset_first (nodes); - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - { - /* All nodes in the entry are equal to the given ELT. */ - if (start_index == 0) - { - /* We have to return only the one at the minimal - position, and this is the first one in the ordered - set. */ - if (end_index == list->root->branch_size - || node_position (node) < end_index) - return node; - } - else - { - /* We have to return only the one at the minimal - position >= start_index. */ - const void *nodes_elt; - if (gl_oset_search_atleast (nodes, - compare_position_threshold, - (void *)(uintptr_t)start_index, - &nodes_elt)) - { - node = (gl_list_node_t) nodes_elt; - if (end_index == list->root->branch_size - || node_position (node) < end_index) - return node; - } - } - break; - } - } - else - { - /* An entry representing a single node. */ - gl_list_node_t node = (struct gl_list_node_impl *) entry; - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - { - bool position_in_bounds; - if (start_index == 0 && end_index == list->root->branch_size) - position_in_bounds = true; - else - { - size_t position = node_position (node); - position_in_bounds = - (position >= start_index && position < end_index); - } - if (position_in_bounds) - return node; - break; - } - } - } - } - else - { - /* If no duplicates are allowed, multiple nodes are not needed. */ - for (entry = list->table[bucket]; entry != NULL; entry = entry->hash_next) - if (entry->hashcode == hashcode) - { - gl_list_node_t node = (struct gl_list_node_impl *) entry; - if (equals != NULL ? equals (elt, node->value) : elt == node->value) - { - bool position_in_bounds; - if (start_index == 0 && end_index == list->root->branch_size) - position_in_bounds = true; - else - { - size_t position = node_position (node); - position_in_bounds = - (position >= start_index && position < end_index); - } - if (position_in_bounds) - return node; - break; - } - } - } - - return NULL; - } -} - -static size_t -gl_tree_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - gl_list_node_t node = - gl_tree_search_from_to (list, start_index, end_index, elt); - - if (node != NULL) - return node_position (node); - else - return (size_t)(-1); -} - -static void -gl_tree_list_free (gl_list_t list) -{ - if (list->base.allow_duplicates) - { - /* Free the ordered sets in the hash buckets. */ - size_t i; - - for (i = list->table_size; i > 0; ) - { - gl_hash_entry_t entry = list->table[--i]; - - while (entry != NULL) - { - gl_hash_entry_t next = entry->hash_next; - - if (((struct gl_multiple_nodes *) entry)->magic == MULTIPLE_NODES_MAGIC) - { - gl_oset_t nodes = ((struct gl_multiple_nodes *) entry)->nodes; - - gl_oset_free (nodes); - free (entry); - } - - entry = next; - } - } - } - - /* Iterate across all elements in post-order. */ - { - gl_list_node_t node = list->root; - iterstack_t stack; - iterstack_item_t *stack_ptr = &stack[0]; - - for (;;) - { - /* Descend on left branch. */ - for (;;) - { - if (node == NULL) - break; - stack_ptr->node = node; - stack_ptr->rightp = false; - node = node->left; - stack_ptr++; - } - /* Climb up again. */ - for (;;) - { - if (stack_ptr == &stack[0]) - goto done_iterate; - stack_ptr--; - node = stack_ptr->node; - if (!stack_ptr->rightp) - break; - /* Free the current node. */ - if (list->base.dispose_fn != NULL) - list->base.dispose_fn (node->value); - free (node); - } - /* Descend on right branch. */ - stack_ptr->rightp = true; - node = node->right; - stack_ptr++; - } - } - done_iterate: - free (list->table); - free (list); -} diff --git a/include/libgnulib/gl_array_list.h b/include/libgnulib/gl_array_list.h deleted file mode 100755 index 20a2a46..0000000 --- a/include/libgnulib/gl_array_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by an array. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_ARRAY_LIST_H -#define _GL_ARRAY_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_array_list_implementation; -#define GL_ARRAY_LIST &gl_array_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ARRAY_LIST_H */ diff --git a/include/libgnulib/gl_array_map.h b/include/libgnulib/gl_array_map.h deleted file mode 100755 index 747aa48..0000000 --- a/include/libgnulib/gl_array_map.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Map data type implemented by an array. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_ARRAY_MAP_H -#define _GL_ARRAY_MAP_H - -#include "gl_map.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_map_implementation gl_array_map_implementation; -#define GL_ARRAY_MAP &gl_array_map_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ARRAY_MAP_H */ diff --git a/include/libgnulib/gl_array_omap.h b/include/libgnulib/gl_array_omap.h deleted file mode 100755 index f6b962d..0000000 --- a/include/libgnulib/gl_array_omap.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Ordered map data type implemented by an array. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_ARRAY_OMAP_H -#define _GL_ARRAY_OMAP_H - -#include "gl_omap.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_omap_implementation gl_array_omap_implementation; -#define GL_ARRAY_OMAP &gl_array_omap_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ARRAY_OMAP_H */ diff --git a/include/libgnulib/gl_array_oset.h b/include/libgnulib/gl_array_oset.h deleted file mode 100755 index 868ed2c..0000000 --- a/include/libgnulib/gl_array_oset.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Ordered set data type implemented by an array. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_ARRAY_OSET_H -#define _GL_ARRAY_OSET_H - -#include "gl_oset.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_oset_implementation gl_array_oset_implementation; -#define GL_ARRAY_OSET &gl_array_oset_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ARRAY_OSET_H */ diff --git a/include/libgnulib/gl_array_set.h b/include/libgnulib/gl_array_set.h deleted file mode 100755 index 498a2ea..0000000 --- a/include/libgnulib/gl_array_set.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Set data type implemented by an array. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_ARRAY_SET_H -#define _GL_ARRAY_SET_H - -#include "gl_set.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_set_implementation gl_array_set_implementation; -#define GL_ARRAY_SET &gl_array_set_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ARRAY_SET_H */ diff --git a/include/libgnulib/gl_avltree_list.h b/include/libgnulib/gl_avltree_list.h deleted file mode 100755 index f130f1e..0000000 --- a/include/libgnulib/gl_avltree_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_AVLTREE_LIST_H -#define _GL_AVLTREE_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_avltree_list_implementation; -#define GL_AVLTREE_LIST &gl_avltree_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_AVLTREE_LIST_H */ diff --git a/include/libgnulib/gl_avltree_omap.h b/include/libgnulib/gl_avltree_omap.h deleted file mode 100755 index 6bd2dfa..0000000 --- a/include/libgnulib/gl_avltree_omap.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Ordered map data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_AVLTREE_OMAP_H -#define _GL_AVLTREE_OMAP_H - -#include "gl_omap.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_omap_implementation gl_avltree_omap_implementation; -#define GL_AVLTREE_OMAP &gl_avltree_omap_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_AVLTREE_OMAP_H */ diff --git a/include/libgnulib/gl_avltree_ordered.h b/include/libgnulib/gl_avltree_ordered.h deleted file mode 100755 index f58a719..0000000 --- a/include/libgnulib/gl_avltree_ordered.h +++ /dev/null @@ -1,571 +0,0 @@ -/* Ordered {set,map} data type implemented by a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* An AVL tree is a binary tree where - 1. The height of each node is calculated as - heightof(node) = 1 + max (heightof(node.left), heightof(node.right)). - 2. The heights of the subtrees of each node differ by at most 1: - | heightof(right) - heightof(left) | <= 1. - 3. The index of the elements in the node.left subtree are smaller than - the index of node. - The index of the elements in the node.right subtree are larger than - the index of node. - */ - -/* Tree node implementation, valid for this file only. */ -struct NODE_IMPL -{ - struct NODE_IMPL *left; /* left branch, or NULL */ - struct NODE_IMPL *right; /* right branch, or NULL */ - /* Parent pointer, or NULL. The parent pointer is not needed for most - operations. It is needed so that a NODE_T can be returned without - memory allocation, on which the functions _remove_node, - _add_before, _add_after can be implemented. */ - struct NODE_IMPL *parent; - int balance; /* heightof(right) - heightof(left), - always = -1 or 0 or 1 */ - NODE_PAYLOAD_FIELDS -}; -typedef struct NODE_IMPL * NODE_T; - -/* Concrete CONTAINER_IMPL type, valid for this file only. */ -struct CONTAINER_IMPL -{ - struct CONTAINER_IMPL_BASE base; - struct NODE_IMPL *root; /* root node or NULL */ - size_t count; /* number of nodes */ -}; - -/* An AVL tree of height h has at least F_(h+2) - 1 [Fibonacci number] and at - most 2^h - 1 elements. So, h <= 84 (because a tree of height h >= 85 would - have at least F_87 - 1 elements, and because even on 64-bit machines, - sizeof (NODE_IMPL) * (F_87 - 1) > 2^64 - this would exceed the address space of the machine. */ -#define MAXHEIGHT 83 - -/* Ensures the tree is balanced, after an insertion or deletion operation. - The height of NODE is incremented by HEIGHT_DIFF (1 or -1). - PARENT = NODE->parent. (NODE can also be NULL. But PARENT is non-NULL.) - Rotation operations are performed starting at PARENT (not NODE itself!). */ -static void -rebalance (CONTAINER_T container, - NODE_T node, int height_diff, NODE_T parent) -{ - for (;;) - { - NODE_T child; - int previous_balance; - int balance_diff; - NODE_T nodeleft; - NODE_T noderight; - - child = node; - node = parent; - - previous_balance = node->balance; - - /* The balance of NODE is incremented by BALANCE_DIFF: +1 if the right - branch's height has increased by 1 or the left branch's height has - decreased by 1, -1 if the right branch's height has decreased by 1 or - the left branch's height has increased by 1, 0 if no height change. */ - if (node->left != NULL || node->right != NULL) - balance_diff = (child == node->right ? height_diff : -height_diff); - else - /* Special case where above formula doesn't work, because the caller - didn't tell whether node's left or right branch shrunk from height 1 - to NULL. */ - balance_diff = - previous_balance; - - node->balance += balance_diff; - if (balance_diff == previous_balance) - { - /* node->balance is outside the range [-1,1]. Must rotate. */ - NODE_T *nodep; - - if (node->parent == NULL) - /* node == container->root */ - nodep = &container->root; - else if (node->parent->left == node) - nodep = &node->parent->left; - else if (node->parent->right == node) - nodep = &node->parent->right; - else - abort (); - - nodeleft = node->left; - noderight = node->right; - - if (balance_diff < 0) - { - /* node->balance = -2. The subtree is heavier on the left side. - Rotate from left to right: - - * - / \ - h+2 h - */ - NODE_T nodeleftright = nodeleft->right; - if (nodeleft->balance <= 0) - { - /* - * h+2|h+3 - / \ / \ - h+2 h --> / h+1|h+2 - / \ | / \ - h+1 h|h+1 h+1 h|h+1 h - */ - node->left = nodeleftright; - nodeleft->right = node; - - nodeleft->parent = node->parent; - node->parent = nodeleft; - if (nodeleftright != NULL) - nodeleftright->parent = node; - - nodeleft->balance += 1; - node->balance = - nodeleft->balance; - - *nodep = nodeleft; - height_diff = (height_diff < 0 - ? /* noderight's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2|h+3. */ - nodeleft->balance - 1 - : /* nodeleft's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2|h+3. */ - nodeleft->balance); - } - else - { - /* - * h+2 - / \ / \ - h+2 h --> h+1 h+1 - / \ / \ / \ - h h+1 h L R h - / \ - L R - - */ - NODE_T L = nodeleft->right = nodeleftright->left; - NODE_T R = node->left = nodeleftright->right; - nodeleftright->left = nodeleft; - nodeleftright->right = node; - - nodeleftright->parent = node->parent; - if (L != NULL) - L->parent = nodeleft; - if (R != NULL) - R->parent = node; - nodeleft->parent = nodeleftright; - node->parent = nodeleftright; - - nodeleft->balance = (nodeleftright->balance > 0 ? -1 : 0); - node->balance = (nodeleftright->balance < 0 ? 1 : 0); - nodeleftright->balance = 0; - - *nodep = nodeleftright; - height_diff = (height_diff < 0 - ? /* noderight's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2. */ - -1 - : /* nodeleft's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2. */ - 0); - } - } - else - { - /* node->balance = 2. The subtree is heavier on the right side. - Rotate from right to left: - - * - / \ - h h+2 - */ - NODE_T noderightleft = noderight->left; - if (noderight->balance >= 0) - { - /* - * h+2|h+3 - / \ / \ - h h+2 --> h+1|h+2 \ - / \ / \ | - h|h+1 h+1 h h|h+1 h+1 - */ - node->right = noderightleft; - noderight->left = node; - - noderight->parent = node->parent; - node->parent = noderight; - if (noderightleft != NULL) - noderightleft->parent = node; - - noderight->balance -= 1; - node->balance = - noderight->balance; - - *nodep = noderight; - height_diff = (height_diff < 0 - ? /* nodeleft's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2|h+3. */ - - noderight->balance - 1 - : /* noderight's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2|h+3. */ - - noderight->balance); - } - else - { - /* - * h+2 - / \ / \ - h h+2 --> h+1 h+1 - / \ / \ / \ - h+1 h h L R h - / \ - L R - - */ - NODE_T L = node->right = noderightleft->left; - NODE_T R = noderight->left = noderightleft->right; - noderightleft->left = node; - noderightleft->right = noderight; - - noderightleft->parent = node->parent; - if (L != NULL) - L->parent = node; - if (R != NULL) - R->parent = noderight; - node->parent = noderightleft; - noderight->parent = noderightleft; - - node->balance = (noderightleft->balance > 0 ? -1 : 0); - noderight->balance = (noderightleft->balance < 0 ? 1 : 0); - noderightleft->balance = 0; - - *nodep = noderightleft; - height_diff = (height_diff < 0 - ? /* nodeleft's height had been decremented from - h+1 to h. The subtree's height changes from - h+3 to h+2. */ - -1 - : /* noderight's height had been incremented from - h+1 to h+2. The subtree's height changes from - h+2 to h+2. */ - 0); - } - } - node = *nodep; - } - else - { - /* No rotation needed. Only propagation of the height change to the - next higher level. */ - if (height_diff < 0) - height_diff = (previous_balance == 0 ? 0 : -1); - else - height_diff = (node->balance == 0 ? 0 : 1); - } - - if (height_diff == 0) - break; - - parent = node->parent; - if (parent == NULL) - break; - } -} - -static NODE_T -gl_tree_nx_add_first (CONTAINER_T container, NODE_PAYLOAD_PARAMS) -{ - /* Create new node. */ - NODE_T new_node = - (struct NODE_IMPL *) malloc (sizeof (struct NODE_IMPL)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - NODE_PAYLOAD_ASSIGN(new_node) - - /* Add it to the tree. */ - if (container->root == NULL) - { - container->root = new_node; - new_node->parent = NULL; - } - else - { - NODE_T node; - - for (node = container->root; node->left != NULL; ) - node = node->left; - - node->left = new_node; - new_node->parent = node; - node->balance--; - - /* Rebalance. */ - if (node->right == NULL && node->parent != NULL) - rebalance (container, node, 1, node->parent); - } - - container->count++; - return new_node; -} - -/* Adds the already allocated NEW_NODE to the tree, right before NODE. */ -static void -gl_tree_add_node_before (CONTAINER_T container, NODE_T node, NODE_T new_node) -{ - bool height_inc; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - - /* Add it to the tree. */ - if (node->left == NULL) - { - node->left = new_node; - node->balance--; - height_inc = (node->right == NULL); - } - else - { - for (node = node->left; node->right != NULL; ) - node = node->right; - node->right = new_node; - node->balance++; - height_inc = (node->left == NULL); - } - new_node->parent = node; - - /* Rebalance. */ - if (height_inc && node->parent != NULL) - rebalance (container, node, 1, node->parent); - - container->count++; -} - -static NODE_T -gl_tree_nx_add_before (CONTAINER_T container, NODE_T node, NODE_PAYLOAD_PARAMS) -{ - /* Create new node. */ - NODE_T new_node = - (struct NODE_IMPL *) malloc (sizeof (struct NODE_IMPL)); - - if (new_node == NULL) - return NULL; - - NODE_PAYLOAD_ASSIGN(new_node) - - gl_tree_add_node_before (container, node, new_node); - return new_node; -} - -/* Adds the already allocated NEW_NODE to the tree, right after NODE. */ -static void -gl_tree_add_node_after (CONTAINER_T container, NODE_T node, NODE_T new_node) -{ - bool height_inc; - - new_node->left = NULL; - new_node->right = NULL; - new_node->balance = 0; - - /* Add it to the tree. */ - if (node->right == NULL) - { - node->right = new_node; - node->balance++; - height_inc = (node->left == NULL); - } - else - { - for (node = node->right; node->left != NULL; ) - node = node->left; - node->left = new_node; - node->balance--; - height_inc = (node->right == NULL); - } - new_node->parent = node; - - /* Rebalance. */ - if (height_inc && node->parent != NULL) - rebalance (container, node, 1, node->parent); - - container->count++; -} - -static NODE_T -gl_tree_nx_add_after (CONTAINER_T container, NODE_T node, NODE_PAYLOAD_PARAMS) -{ - /* Create new node. */ - NODE_T new_node = - (struct NODE_IMPL *) malloc (sizeof (struct NODE_IMPL)); - - if (new_node == NULL) - return NULL; - - NODE_PAYLOAD_ASSIGN(new_node) - - gl_tree_add_node_after (container, node, new_node); - return new_node; -} - -static void -gl_tree_remove_node_no_free (CONTAINER_T container, NODE_T node) -{ - NODE_T parent = node->parent; - - if (node->left == NULL) - { - /* Replace node with node->right. */ - NODE_T child = node->right; - - if (child != NULL) - child->parent = parent; - if (parent == NULL) - container->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - rebalance (container, child, -1, parent); - } - } - else if (node->right == NULL) - { - /* It is not absolutely necessary to treat this case. But the more - general case below is more complicated, hence slower. */ - /* Replace node with node->left. */ - NODE_T child = node->left; - - child->parent = parent; - if (parent == NULL) - container->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - rebalance (container, child, -1, parent); - } - } - else - { - /* Replace node with the rightmost element of the node->left subtree. */ - NODE_T subst; - NODE_T subst_parent; - NODE_T child; - - for (subst = node->left; subst->right != NULL; ) - subst = subst->right; - - subst_parent = subst->parent; - - child = subst->left; - - /* The case subst_parent == node is special: If we do nothing special, - we get confusion about node->left, subst->left and child->parent. - subst_parent == node - <==> The 'for' loop above terminated immediately. - <==> subst == subst_parent->left - [otherwise subst == subst_parent->right] - In this case, we would need to first set - child->parent = node; node->left = child; - and later - when we copy subst into node's position - again - child->parent = subst; subst->left = child; - Altogether a no-op. */ - if (subst_parent != node) - { - if (child != NULL) - child->parent = subst_parent; - subst_parent->right = child; - } - - /* Copy subst into node's position. - (This is safer than to copy subst's value into node, keep node in - place, and free subst.) */ - if (subst_parent != node) - { - subst->left = node->left; - subst->left->parent = subst; - } - subst->right = node->right; - subst->right->parent = subst; - subst->balance = node->balance; - subst->parent = parent; - if (parent == NULL) - container->root = subst; - else if (parent->left == node) - parent->left = subst; - else /* parent->right == node */ - parent->right = subst; - - /* Rebalancing starts at child's parent, that is subst_parent - - except when subst_parent == node. In this case, we need to use - its replacement, subst. */ - rebalance (container, child, -1, subst_parent != node ? subst_parent : subst); - } - - container->count--; -} - -static bool -gl_tree_remove_node (CONTAINER_T container, NODE_T node) -{ - gl_tree_remove_node_no_free (container, node); - NODE_PAYLOAD_DISPOSE (container, node) - free (node); - return true; -} - -/* For debugging. */ -static unsigned int -check_invariants (NODE_T node, NODE_T parent, size_t *counterp) -{ - unsigned int left_height = - (node->left != NULL ? check_invariants (node->left, node, counterp) : 0); - unsigned int right_height = - (node->right != NULL ? check_invariants (node->right, node, counterp) : 0); - int balance = (int)right_height - (int)left_height; - - if (!(node->parent == parent)) - abort (); - if (!(balance >= -1 && balance <= 1)) - abort (); - if (!(node->balance == balance)) - abort (); - - (*counterp)++; - - return 1 + (left_height > right_height ? left_height : right_height); -} diff --git a/include/libgnulib/gl_avltree_oset.h b/include/libgnulib/gl_avltree_oset.h deleted file mode 100755 index 1ba1a94..0000000 --- a/include/libgnulib/gl_avltree_oset.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Ordered set data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_AVLTREE_OSET_H -#define _GL_AVLTREE_OSET_H - -#include "gl_oset.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_oset_implementation gl_avltree_oset_implementation; -#define GL_AVLTREE_OSET &gl_avltree_oset_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_AVLTREE_OSET_H */ diff --git a/include/libgnulib/gl_avltreehash_list.h b/include/libgnulib/gl_avltreehash_list.h deleted file mode 100755 index bd91521..0000000 --- a/include/libgnulib/gl_avltreehash_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a hash table with a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _GL_AVLTREEHASH_LIST_H -#define _GL_AVLTREEHASH_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_avltreehash_list_implementation; -#define GL_AVLTREEHASH_LIST &gl_avltreehash_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_AVLTREEHASH_LIST_H */ diff --git a/include/libgnulib/gl_carray_list.h b/include/libgnulib/gl_carray_list.h deleted file mode 100755 index 03d8777..0000000 --- a/include/libgnulib/gl_carray_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a circular array. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_CARRAY_LIST_H -#define _GL_CARRAY_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_carray_list_implementation; -#define GL_CARRAY_LIST &gl_carray_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_CARRAY_LIST_H */ diff --git a/include/libgnulib/gl_hash_map.h b/include/libgnulib/gl_hash_map.h deleted file mode 100755 index 5c4da78..0000000 --- a/include/libgnulib/gl_hash_map.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Map data type implemented by a hash table. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_HASH_MAP_H -#define _GL_HASH_MAP_H - -#include "gl_map.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_map_implementation gl_hash_map_implementation; -#define GL_HASH_MAP &gl_hash_map_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_HASH_MAP_H */ diff --git a/include/libgnulib/gl_hash_set.h b/include/libgnulib/gl_hash_set.h deleted file mode 100755 index f66a06f..0000000 --- a/include/libgnulib/gl_hash_set.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Set data type implemented by a hash table. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_HASH_SET_H -#define _GL_HASH_SET_H - -#include "gl_set.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_set_implementation gl_hash_set_implementation; -#define GL_HASH_SET &gl_hash_set_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_HASH_SET_H */ diff --git a/include/libgnulib/gl_linked_list.h b/include/libgnulib/gl_linked_list.h deleted file mode 100755 index edb1fc6..0000000 --- a/include/libgnulib/gl_linked_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a linked list. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_LINKED_LIST_H -#define _GL_LINKED_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_linked_list_implementation; -#define GL_LINKED_LIST &gl_linked_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_LINKED_LIST_H */ diff --git a/include/libgnulib/gl_linkedhash_list.h b/include/libgnulib/gl_linkedhash_list.h deleted file mode 100755 index 613c100..0000000 --- a/include/libgnulib/gl_linkedhash_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a hash table with a linked list. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_LINKEDHASH_LIST_H -#define _GL_LINKEDHASH_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_linkedhash_list_implementation; -#define GL_LINKEDHASH_LIST &gl_linkedhash_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_LINKEDHASH_LIST_H */ diff --git a/include/libgnulib/gl_linkedhash_map.h b/include/libgnulib/gl_linkedhash_map.h deleted file mode 100755 index 9d8456a..0000000 --- a/include/libgnulib/gl_linkedhash_map.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Map data type implemented by a hash table with a linked list. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_LINKEDHASH_MAP_H -#define _GL_LINKEDHASH_MAP_H - -#include "gl_map.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_map_implementation gl_linkedhash_map_implementation; -#define GL_LINKEDHASH_MAP &gl_linkedhash_map_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_LINKEDHASH_MAP_H */ diff --git a/include/libgnulib/gl_linkedhash_set.h b/include/libgnulib/gl_linkedhash_set.h deleted file mode 100755 index 7c262c3..0000000 --- a/include/libgnulib/gl_linkedhash_set.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Set data type implemented by a hash table with a linked list. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_LINKEDHASH_SET_H -#define _GL_LINKEDHASH_SET_H - -#include "gl_set.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_set_implementation gl_linkedhash_set_implementation; -#define GL_LINKEDHASH_SET &gl_linkedhash_set_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_LINKEDHASH_SET_H */ diff --git a/include/libgnulib/gl_list.h b/include/libgnulib/gl_list.h deleted file mode 100755 index 986be84..0000000 --- a/include/libgnulib/gl_list.h +++ /dev/null @@ -1,926 +0,0 @@ -/* Abstract sequential list data type. -*- coding: utf-8 -*- - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_LIST_H -#define _GL_LIST_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_LIST_INLINE -# define GL_LIST_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* gl_list is an abstract list data type. It can contain any number of - objects ('void *' or 'const void *' pointers) in any given order. - Duplicates are allowed, but can optionally be forbidden. - - There are several implementations of this list datatype, optimized for - different operations or for memory. You can start using the simplest list - implementation, GL_ARRAY_LIST, and switch to a different implementation - later, when you realize which operations are performed the most frequently. - The API of the different implementations is exactly the same; when - switching to a different implementation, you only have to change the - gl_list_create call. - - The implementations are: - GL_ARRAY_LIST a growable array - GL_CARRAY_LIST a growable circular array - GL_LINKED_LIST a linked list - GL_AVLTREE_LIST a binary tree (AVL tree) - GL_RBTREE_LIST a binary tree (red-black tree) - GL_LINKEDHASH_LIST a hash table with a linked list - GL_AVLTREEHASH_LIST a hash table with a binary tree (AVL tree) - GL_RBTREEHASH_LIST a hash table with a binary tree (red-black tree) - - The memory consumption is asymptotically the same: O(1) for every object - in the list. When looking more closely at the average memory consumed - for an object, GL_ARRAY_LIST is the most compact representation, and - GL_LINKEDHASH_LIST and GL_TREEHASH_LIST need more memory. - - The guaranteed average performance of the operations is, for a list of - n elements: - - Operation ARRAY LINKED TREE LINKEDHASH TREEHASH - CARRAY with|without with|without - duplicates duplicates - - gl_list_size O(1) O(1) O(1) O(1) O(1) - gl_list_node_value O(1) O(1) O(1) O(1) O(1) - gl_list_node_set_value O(1) O(1) O(1) O(1) O((log n)²)/O(1) - gl_list_next_node O(1) O(1) O(log n) O(1) O(log n) - gl_list_previous_node O(1) O(1) O(log n) O(1) O(log n) - gl_list_first_node O(1) O(1) O(log n) O(1) O(log n) - gl_list_last_node O(1) O(1) O(log n) O(1) O(log n) - gl_list_get_at O(1) O(n) O(log n) O(n) O(log n) - gl_list_get_first O(1) O(1) O(log n) O(1) O(log n) - gl_list_get_last O(1) O(1) O(log n) O(1) O(log n) - gl_list_set_at O(1) O(n) O(log n) O(n) O((log n)²)/O(log n) - gl_list_set_first O(1) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_set_last O(1) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_search O(n) O(n) O(n) O(n)/O(1) O(log n)/O(1) - gl_list_search_from O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_search_from_to O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_indexof O(n) O(n) O(n) O(n) O(log n) - gl_list_indexof_from O(n) O(n) O(n) O(n) O((log n)²)/O(log n) - gl_list_indexof_from_to O(n) O(n) O(n) O(n) O((log n)²)/O(log n) - gl_list_add_first O(n)/O(1) O(1) O(log n) O(1) O((log n)²)/O(log n) - gl_list_add_last O(1) O(1) O(log n) O(1) O((log n)²)/O(log n) - gl_list_add_before O(n) O(1) O(log n) O(1) O((log n)²)/O(log n) - gl_list_add_after O(n) O(1) O(log n) O(1) O((log n)²)/O(log n) - gl_list_add_at O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) - gl_list_remove_node O(n) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_remove_at O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) - gl_list_remove_first O(n)/O(1) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_remove_last O(1) O(1) O(log n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_remove O(n) O(n) O(n) O(n)/O(1) O((log n)²)/O(log n) - gl_list_iterator O(1) O(1) O(log n) O(1) O(log n) - gl_list_iterator_from_to O(1) O(n) O(log n) O(n) O(log n) - gl_list_iterator_next O(1) O(1) O(log n) O(1) O(log n) - gl_sortedlist_search O(log n) O(n) O(log n) O(n) O(log n) - gl_sortedlist_search_from O(log n) O(n) O(log n) O(n) O(log n) - gl_sortedlist_indexof O(log n) O(n) O(log n) O(n) O(log n) - gl_sortedlist_indexof_fro O(log n) O(n) O(log n) O(n) O(log n) - gl_sortedlist_add O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) - gl_sortedlist_remove O(n) O(n) O(log n) O(n) O((log n)²)/O(log n) - */ - -/* -------------------------- gl_list_t Data Type -------------------------- */ - -/* Type of function used to compare two elements. - NULL denotes pointer comparison. */ -typedef bool (*gl_listelement_equals_fn) (const void *elt1, const void *elt2); - -/* Type of function used to compute a hash code. - NULL denotes a function that depends only on the pointer itself. */ -typedef size_t (*gl_listelement_hashcode_fn) (const void *elt); - -/* Type of function used to dispose an element once it's removed from a list. - NULL denotes a no-op. */ -typedef void (*gl_listelement_dispose_fn) (const void *elt); - -struct gl_list_impl; -/* Type representing an entire list. */ -typedef struct gl_list_impl * gl_list_t; - -struct gl_list_node_impl; -/* Type representing the position of an element in the list, in a way that - is more adapted to the list implementation than a plain index. - Note: It is invalidated by insertions and removals! */ -typedef struct gl_list_node_impl * gl_list_node_t; - -struct gl_list_implementation; -/* Type representing a list datatype implementation. */ -typedef const struct gl_list_implementation * gl_list_implementation_t; - -#if 0 /* Unless otherwise specified, these are defined inline below. */ - -/* Creates an empty list. - IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST, - GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST, - GL_RBTREEHASH_LIST. - EQUALS_FN is an element comparison function or NULL. - HASHCODE_FN is an element hash code function or NULL. - DISPOSE_FN is an element disposal function or NULL. - ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in - the list. The implementation may verify this at runtime. */ -/* declared in gl_xlist.h */ -extern gl_list_t gl_list_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_list_t gl_list_nx_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/; - -/* Creates a list with given contents. - IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST, - GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST, - GL_RBTREEHASH_LIST. - EQUALS_FN is an element comparison function or NULL. - HASHCODE_FN is an element hash code function or NULL. - DISPOSE_FN is an element disposal function or NULL. - ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in - the list. The implementation may verify this at runtime. - COUNT is the number of initial elements. - CONTENTS[0..COUNT-1] is the initial contents. */ -/* declared in gl_xlist.h */ -extern gl_list_t gl_list_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_list_t gl_list_nx_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/; - -/* Returns the current number of elements in a list. */ -extern size_t gl_list_size (gl_list_t list); - -/* Returns the element value represented by a list node. */ -extern const void * gl_list_node_value (gl_list_t list, gl_list_node_t node); - -/* Replaces the element value represented by a list node. */ -/* declared in gl_xlist.h */ -extern void gl_list_node_set_value (gl_list_t list, gl_list_node_t node, - const void *elt); -/* Likewise. Returns 0 upon success, -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node, - const void *elt); - -/* Returns the node immediately after the given node in the list, or NULL - if the given node is the last (rightmost) one in the list. */ -extern gl_list_node_t gl_list_next_node (gl_list_t list, gl_list_node_t node); - -/* Returns the node immediately before the given node in the list, or NULL - if the given node is the first (leftmost) one in the list. */ -extern gl_list_node_t gl_list_previous_node (gl_list_t list, gl_list_node_t node); - -/* Returns the first node in the list, or NULL if the list is empty. - This function is useful for iterating through the list like this: - gl_list_node_t node; - for (node = gl_list_first_node (list); node != NULL; node = gl_list_next_node (node)) - ... - */ -extern gl_list_node_t gl_list_first_node (gl_list_t list); - -/* Returns the last node in the list, or NULL if the list is empty. - This function is useful for iterating through the list in backward order, - like this: - gl_list_node_t node; - for (node = gl_list_last_node (list); node != NULL; node = gl_list_previous_node (node)) - ... - */ -extern gl_list_node_t gl_list_last_node (gl_list_t list); - -/* Returns the element at a given position in the list. - POSITION must be >= 0 and < gl_list_size (list). */ -extern const void * gl_list_get_at (gl_list_t list, size_t position); - -/* Returns the element at the first position in the list. - The list must be non-empty. */ -extern const void * gl_list_get_first (gl_list_t list); - -/* Returns the element at the last position in the list. - The list must be non-empty. */ -extern const void * gl_list_get_last (gl_list_t list); - -/* Replaces the element at a given position in the list. - POSITION must be >= 0 and < gl_list_size (list). - Returns its node. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_set_at (gl_list_t list, size_t position, - const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_set_at (gl_list_t list, size_t position, - const void *elt); - -/* Replaces the element at the first position in the list. - Returns its node. - The list must be non-empty. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_set_first (gl_list_t list, const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_set_first (gl_list_t list, const void *elt); - -/* Replaces the element at the last position in the list. - Returns its node. - The list must be non-empty. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_set_last (gl_list_t list, const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_set_last (gl_list_t list, const void *elt); - -/* Searches whether an element is already in the list. - Returns its node if found, or NULL if not present in the list. */ -extern gl_list_node_t gl_list_search (gl_list_t list, const void *elt); - -/* Searches whether an element is already in the list, - at a position >= START_INDEX. - Returns its node if found, or NULL if not present in the list. */ -extern gl_list_node_t gl_list_search_from (gl_list_t list, size_t start_index, - const void *elt); - -/* Searches whether an element is already in the list, - at a position >= START_INDEX and < END_INDEX. - Returns its node if found, or NULL if not present in the list. */ -extern gl_list_node_t gl_list_search_from_to (gl_list_t list, - size_t start_index, - size_t end_index, - const void *elt); - -/* Searches whether an element is already in the list. - Returns its position if found, or (size_t)(-1) if not present in the list. */ -extern size_t gl_list_indexof (gl_list_t list, const void *elt); - -/* Searches whether an element is already in the list, - at a position >= START_INDEX. - Returns its position if found, or (size_t)(-1) if not present in the list. */ -extern size_t gl_list_indexof_from (gl_list_t list, size_t start_index, - const void *elt); - -/* Searches whether an element is already in the list, - at a position >= START_INDEX and < END_INDEX. - Returns its position if found, or (size_t)(-1) if not present in the list. */ -extern size_t gl_list_indexof_from_to (gl_list_t list, - size_t start_index, size_t end_index, - const void *elt); - -/* Adds an element as the first element of the list. - Returns its node. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_add_first (gl_list_t list, const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_add_first (gl_list_t list, const void *elt); - -/* Adds an element as the last element of the list. - Returns its node. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_add_last (gl_list_t list, const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_add_last (gl_list_t list, const void *elt); - -/* Adds an element before a given element node of the list. - Returns its node. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_add_before (gl_list_t list, gl_list_node_t node, - const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_add_before (gl_list_t list, - gl_list_node_t node, - const void *elt); - -/* Adds an element after a given element node of the list. - Returns its node. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_add_after (gl_list_t list, gl_list_node_t node, - const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_add_after (gl_list_t list, gl_list_node_t node, - const void *elt); - -/* Adds an element at a given position in the list. - POSITION must be >= 0 and <= gl_list_size (list). */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_list_add_at (gl_list_t list, size_t position, - const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_list_nx_add_at (gl_list_t list, size_t position, - const void *elt); - -/* Removes an element from the list. - Returns true. */ -extern bool gl_list_remove_node (gl_list_t list, gl_list_node_t node); - -/* Removes an element at a given position from the list. - POSITION must be >= 0 and < gl_list_size (list). - Returns true. */ -extern bool gl_list_remove_at (gl_list_t list, size_t position); - -/* Removes the element at the first position from the list. - Returns true if it was found and removed, or false if the list was empty. */ -extern bool gl_list_remove_first (gl_list_t list); - -/* Removes the element at the last position from the list. - Returns true if it was found and removed, or false if the list was empty. */ -extern bool gl_list_remove_last (gl_list_t list); - -/* Searches and removes an element from the list. - Returns true if it was found and removed. */ -extern bool gl_list_remove (gl_list_t list, const void *elt); - -/* Frees an entire list. - (But this call does not free the elements of the list. It only invokes - the DISPOSE_FN on each of the elements of the list, and only if the list - is not a sublist.) */ -extern void gl_list_free (gl_list_t list); - -#endif /* End of inline and gl_xlist.h-defined functions. */ - -/* --------------------- gl_list_iterator_t Data Type --------------------- */ - -/* Functions for iterating through a list. */ - -/* Type of an iterator that traverses a list. - This is a fixed-size struct, so that creation of an iterator doesn't need - memory allocation on the heap. */ -typedef struct -{ - /* For fast dispatch of gl_list_iterator_next. */ - const struct gl_list_implementation *vtable; - /* For detecting whether the last returned element was removed. */ - gl_list_t list; - size_t count; - /* Other, implementation-private fields. */ - void *p; void *q; - size_t i; size_t j; -} gl_list_iterator_t; - -#if 0 /* These are defined inline below. */ - -/* Creates an iterator traversing a list. - The list contents must not be modified while the iterator is in use, - except for replacing or removing the last returned element. */ -extern gl_list_iterator_t gl_list_iterator (gl_list_t list); - -/* Creates an iterator traversing the element with indices i, - start_index <= i < end_index, of a list. - The list contents must not be modified while the iterator is in use, - except for replacing or removing the last returned element. */ -extern gl_list_iterator_t gl_list_iterator_from_to (gl_list_t list, - size_t start_index, - size_t end_index); - -/* If there is a next element, stores the next element in *ELTP, stores its - node in *NODEP if NODEP is non-NULL, advances the iterator and returns true. - Otherwise, returns false. */ -extern bool gl_list_iterator_next (gl_list_iterator_t *iterator, - const void **eltp, gl_list_node_t *nodep); - -/* Frees an iterator. */ -extern void gl_list_iterator_free (gl_list_iterator_t *iterator); - -#endif /* End of inline functions. */ - -/* ---------------------- Sorted gl_list_t Data Type ---------------------- */ - -/* The following functions are for lists without duplicates where the - order is given by a sort criterion. */ - -/* Type of function used to compare two elements. Same as for qsort(). - NULL denotes pointer comparison. */ -typedef int (*gl_listelement_compar_fn) (const void *elt1, const void *elt2); - -#if 0 /* Unless otherwise specified, these are defined inline below. */ - -/* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Returns its node if found, or NULL if not present in the list. - If the list contains several copies of ELT, the node of the leftmost one is - returned. */ -extern gl_list_node_t gl_sortedlist_search (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - -/* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Only list elements with indices >= START_INDEX and < END_INDEX are - considered; the implementation uses these bounds to minimize the number - of COMPAR invocations. - Returns its node if found, or NULL if not present in the list. - If the list contains several copies of ELT, the node of the leftmost one is - returned. */ -extern gl_list_node_t gl_sortedlist_search_from_to (gl_list_t list, - gl_listelement_compar_fn compar, - size_t start_index, - size_t end_index, - const void *elt); - -/* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Returns its position if found, or (size_t)(-1) if not present in the list. - If the list contains several copies of ELT, the position of the leftmost one - is returned. */ -extern size_t gl_sortedlist_indexof (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - -/* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Only list elements with indices >= START_INDEX and < END_INDEX are - considered; the implementation uses these bounds to minimize the number - of COMPAR invocations. - Returns its position if found, or (size_t)(-1) if not present in the list. - If the list contains several copies of ELT, the position of the leftmost one - is returned. */ -extern size_t gl_sortedlist_indexof_from_to (gl_list_t list, - gl_listelement_compar_fn compar, - size_t start_index, - size_t end_index, - const void *elt); - -/* Adds an element at the appropriate position in the list. - The list is assumed to be sorted with COMPAR. - Returns its node. */ -/* declared in gl_xlist.h */ -extern gl_list_node_t gl_sortedlist_add (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); -/* Likewise. Returns NULL upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern gl_list_node_t gl_sortedlist_nx_add (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - -/* Searches and removes an element from the list. - The list is assumed to be sorted with COMPAR. - Returns true if it was found and removed. - If the list contains several copies of ELT, only the leftmost one is - removed. */ -extern bool gl_sortedlist_remove (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - -#endif /* End of inline and gl_xlist.h-defined functions. */ - -/* ------------------------ Implementation Details ------------------------ */ - -struct gl_list_implementation -{ - /* gl_list_t functions. */ - gl_list_t (*nx_create_empty) (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates); - gl_list_t (*nx_create) (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents); - size_t (*size) (gl_list_t list); - const void * (*node_value) (gl_list_t list, gl_list_node_t node); - int (*node_nx_set_value) (gl_list_t list, gl_list_node_t node, - const void *elt); - gl_list_node_t (*next_node) (gl_list_t list, gl_list_node_t node); - gl_list_node_t (*previous_node) (gl_list_t list, gl_list_node_t node); - gl_list_node_t (*first_node) (gl_list_t list); - gl_list_node_t (*last_node) (gl_list_t list); - const void * (*get_at) (gl_list_t list, size_t position); - gl_list_node_t (*nx_set_at) (gl_list_t list, size_t position, - const void *elt); - gl_list_node_t (*search_from_to) (gl_list_t list, size_t start_index, - size_t end_index, const void *elt); - size_t (*indexof_from_to) (gl_list_t list, size_t start_index, - size_t end_index, const void *elt); - gl_list_node_t (*nx_add_first) (gl_list_t list, const void *elt); - gl_list_node_t (*nx_add_last) (gl_list_t list, const void *elt); - gl_list_node_t (*nx_add_before) (gl_list_t list, gl_list_node_t node, - const void *elt); - gl_list_node_t (*nx_add_after) (gl_list_t list, gl_list_node_t node, - const void *elt); - gl_list_node_t (*nx_add_at) (gl_list_t list, size_t position, - const void *elt); - bool (*remove_node) (gl_list_t list, gl_list_node_t node); - bool (*remove_at) (gl_list_t list, size_t position); - bool (*remove_elt) (gl_list_t list, const void *elt); - void (*list_free) (gl_list_t list); - /* gl_list_iterator_t functions. */ - gl_list_iterator_t (*iterator) (gl_list_t list); - gl_list_iterator_t (*iterator_from_to) (gl_list_t list, - size_t start_index, - size_t end_index); - bool (*iterator_next) (gl_list_iterator_t *iterator, - const void **eltp, gl_list_node_t *nodep); - void (*iterator_free) (gl_list_iterator_t *iterator); - /* Sorted gl_list_t functions. */ - gl_list_node_t (*sortedlist_search) (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - gl_list_node_t (*sortedlist_search_from_to) (gl_list_t list, - gl_listelement_compar_fn compar, - size_t start_index, - size_t end_index, - const void *elt); - size_t (*sortedlist_indexof) (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - size_t (*sortedlist_indexof_from_to) (gl_list_t list, - gl_listelement_compar_fn compar, - size_t start_index, size_t end_index, - const void *elt); - gl_list_node_t (*sortedlist_nx_add) (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); - bool (*sortedlist_remove) (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); -}; - -struct gl_list_impl_base -{ - const struct gl_list_implementation *vtable; - gl_listelement_equals_fn equals_fn; - gl_listelement_hashcode_fn hashcode_fn; - gl_listelement_dispose_fn dispose_fn; - bool allow_duplicates; -}; - -/* Define all functions of this file as accesses to the - struct gl_list_implementation. */ - -GL_LIST_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ -gl_list_t -gl_list_nx_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) -{ - return implementation->nx_create_empty (implementation, equals_fn, - hashcode_fn, dispose_fn, - allow_duplicates); -} - -GL_LIST_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ -gl_list_t -gl_list_nx_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) -{ - return implementation->nx_create (implementation, equals_fn, hashcode_fn, - dispose_fn, allow_duplicates, count, - contents); -} - -GL_LIST_INLINE size_t -gl_list_size (gl_list_t list) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->size (list); -} - -GL_LIST_INLINE const void * -gl_list_node_value (gl_list_t list, gl_list_node_t node) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->node_value (list, node); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE int -gl_list_node_nx_set_value (gl_list_t list, gl_list_node_t node, - const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->node_nx_set_value (list, node, elt); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_next_node (gl_list_t list, gl_list_node_t node) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->next_node (list, node); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_previous_node (gl_list_t list, gl_list_node_t node) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->previous_node (list, node); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_first_node (gl_list_t list) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->first_node (list); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_last_node (gl_list_t list) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->last_node (list); -} - -GL_LIST_INLINE const void * -gl_list_get_at (gl_list_t list, size_t position) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->get_at (list, position); -} - -GL_LIST_INLINE const void * -gl_list_get_first (gl_list_t list) -{ - return gl_list_get_at (list, 0); -} - -GL_LIST_INLINE const void * -gl_list_get_last (gl_list_t list) -{ - return gl_list_get_at (list, gl_list_size (list) - 1); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_set_at (gl_list_t list, size_t position, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->nx_set_at (list, position, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_set_first (gl_list_t list, const void *elt) -{ - return gl_list_nx_set_at (list, 0, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_set_last (gl_list_t list, const void *elt) -{ - return gl_list_nx_set_at (list, gl_list_size (list) - 1, elt); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_search (gl_list_t list, const void *elt) -{ - size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); - return ((const struct gl_list_impl_base *) list)->vtable - ->search_from_to (list, 0, size, elt); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_search_from (gl_list_t list, size_t start_index, const void *elt) -{ - size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); - return ((const struct gl_list_impl_base *) list)->vtable - ->search_from_to (list, start_index, size, elt); -} - -GL_LIST_INLINE gl_list_node_t -gl_list_search_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->search_from_to (list, start_index, end_index, elt); -} - -GL_LIST_INLINE size_t -gl_list_indexof (gl_list_t list, const void *elt) -{ - size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); - return ((const struct gl_list_impl_base *) list)->vtable - ->indexof_from_to (list, 0, size, elt); -} - -GL_LIST_INLINE size_t -gl_list_indexof_from (gl_list_t list, size_t start_index, const void *elt) -{ - size_t size = ((const struct gl_list_impl_base *) list)->vtable->size (list); - return ((const struct gl_list_impl_base *) list)->vtable - ->indexof_from_to (list, start_index, size, elt); -} - -GL_LIST_INLINE size_t -gl_list_indexof_from_to (gl_list_t list, size_t start_index, size_t end_index, - const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->indexof_from_to (list, start_index, end_index, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_add_first (gl_list_t list, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->nx_add_first (list, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_add_last (gl_list_t list, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->nx_add_last (list, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_add_before (gl_list_t list, gl_list_node_t node, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->nx_add_before (list, node, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_add_after (gl_list_t list, gl_list_node_t node, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->nx_add_after (list, node, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_list_nx_add_at (gl_list_t list, size_t position, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->nx_add_at (list, position, elt); -} - -GL_LIST_INLINE bool -gl_list_remove_node (gl_list_t list, gl_list_node_t node) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->remove_node (list, node); -} - -GL_LIST_INLINE bool -gl_list_remove_at (gl_list_t list, size_t position) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->remove_at (list, position); -} - -GL_LIST_INLINE bool -gl_list_remove_first (gl_list_t list) -{ - size_t size = gl_list_size (list); - if (size > 0) - return gl_list_remove_at (list, 0); - else - return false; -} - -GL_LIST_INLINE bool -gl_list_remove_last (gl_list_t list) -{ - size_t size = gl_list_size (list); - if (size > 0) - return gl_list_remove_at (list, size - 1); - else - return false; -} - -GL_LIST_INLINE bool -gl_list_remove (gl_list_t list, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->remove_elt (list, elt); -} - -GL_LIST_INLINE void -gl_list_free (gl_list_t list) -{ - ((const struct gl_list_impl_base *) list)->vtable->list_free (list); -} - -GL_LIST_INLINE gl_list_iterator_t -gl_list_iterator (gl_list_t list) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->iterator (list); -} - -GL_LIST_INLINE gl_list_iterator_t -gl_list_iterator_from_to (gl_list_t list, size_t start_index, size_t end_index) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->iterator_from_to (list, start_index, end_index); -} - -GL_LIST_INLINE bool -gl_list_iterator_next (gl_list_iterator_t *iterator, - const void **eltp, gl_list_node_t *nodep) -{ - return iterator->vtable->iterator_next (iterator, eltp, nodep); -} - -GL_LIST_INLINE void -gl_list_iterator_free (gl_list_iterator_t *iterator) -{ - iterator->vtable->iterator_free (iterator); -} - -GL_LIST_INLINE gl_list_node_t -gl_sortedlist_search (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->sortedlist_search (list, compar, elt); -} - -GL_LIST_INLINE gl_list_node_t -gl_sortedlist_search_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->sortedlist_search_from_to (list, compar, start_index, end_index, - elt); -} - -GL_LIST_INLINE size_t -gl_sortedlist_indexof (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->sortedlist_indexof (list, compar, elt); -} - -GL_LIST_INLINE size_t -gl_sortedlist_indexof_from_to (gl_list_t list, gl_listelement_compar_fn compar, size_t start_index, size_t end_index, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->sortedlist_indexof_from_to (list, compar, start_index, end_index, - elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_LIST_INLINE gl_list_node_t -gl_sortedlist_nx_add (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->sortedlist_nx_add (list, compar, elt); -} - -GL_LIST_INLINE bool -gl_sortedlist_remove (gl_list_t list, gl_listelement_compar_fn compar, const void *elt) -{ - return ((const struct gl_list_impl_base *) list)->vtable - ->sortedlist_remove (list, compar, elt); -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_LIST_H */ diff --git a/include/libgnulib/gl_list.hh b/include/libgnulib/gl_list.hh deleted file mode 100755 index 7e94beb..0000000 --- a/include/libgnulib/gl_list.hh +++ /dev/null @@ -1,421 +0,0 @@ -/* Abstract sequential list data type as a C++ class. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _GL_LIST_HH -#define _GL_LIST_HH - -#include "gl_list.h" -#include "gl_xlist.h" -#include "gl_sublist.h" -#include "gl_xsublist.h" - -#include /* because Gnulib's may '#define free ...' */ - -/* gl_List is a C++ wrapper around the gl_list data type. - Its element type is 'ELTYPE *'. - - It is merely a pointer, not a smart pointer. In other words: - it does NOT do reference-counting, and the destructor does nothing. */ - -template class gl_List; - -template -class gl_List -{ -public: - // ------------------------------ Constructors ------------------------------ - - gl_List () - : _ptr (NULL) - {} - - /* Creates an empty list. - IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST, - GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST, - GL_RBTREEHASH_LIST. - EQUALS_FN is an element comparison function or NULL. - HASHCODE_FN is an element hash code function or NULL. - DISPOSE_FN is an element disposal function or NULL. - ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in - the list. The implementation may verify this at runtime. */ - gl_List (gl_list_implementation_t implementation, - bool (*equals_fn) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - size_t (*hashcode_fn) (ELTYPE *), - void (*dispose_fn) (ELTYPE *), - bool allow_duplicates) - : _ptr (gl_list_create_empty (implementation, - reinterpret_cast(equals_fn), - reinterpret_cast(hashcode_fn), - reinterpret_cast(dispose_fn), - allow_duplicates)) - {} - - /* Creates a list with given contents. - IMPLEMENTATION is one of GL_ARRAY_LIST, GL_CARRAY_LIST, GL_LINKED_LIST, - GL_AVLTREE_LIST, GL_RBTREE_LIST, GL_LINKEDHASH_LIST, GL_AVLTREEHASH_LIST, - GL_RBTREEHASH_LIST. - EQUALS_FN is an element comparison function or NULL. - HASHCODE_FN is an element hash code function or NULL. - DISPOSE_FN is an element disposal function or NULL. - ALLOW_DUPLICATES is false if duplicate elements shall not be allowed in - the list. The implementation may verify this at runtime. - COUNT is the number of initial elements. - CONTENTS[0..COUNT-1] is the initial contents. */ - gl_List (gl_list_implementation_t implementation, - bool (*equals_fn) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - size_t (*hashcode_fn) (ELTYPE *), - void (*dispose_fn) (ELTYPE *), - bool allow_duplicates, - size_t count, ELTYPE **contents) - : _ptr (gl_list_create (implementation, - reinterpret_cast(equals_fn), - reinterpret_cast(hashcode_fn), - reinterpret_cast(dispose_fn), - allow_duplicates, - count, contents)) - {} - - /* Creates a sublist of a given list. - This is the list of elements with indices i, start_index <= i < end_index. - The sublist is backed by the given list, which means: - - Modifications to the sublist affect the whole list. - - Modifications to the whole list are immediately visible in the sublist. - - The sublist is only valid as long as the whole list is valid. - - The sublist must not be passed to the gl_list_sortedlist_add() function. - */ - gl_List (const gl_List& whole_list, size_t start_index, size_t end_index) - : _ptr (gl_sublist_create (whole_list._ptr, start_index, end_index)) - {} - - /* Copy constructor. */ - gl_List (const gl_List& x) - { _ptr = x._ptr; } - - /* Assignment operator. */ - gl_List& operator= (const gl_List& x) - { _ptr = x._ptr; return *this; } - - // ------------------------------- Destructor ------------------------------- - - ~gl_List () - { _ptr = NULL; } - - // ----------------------- Read-only member functions ----------------------- - - /* Returns the current number of elements in the list. */ - size_t size () const - { return gl_list_size (_ptr); } - - /* Returns the element value represented by a list node. */ - ELTYPE * node_value (gl_list_node_t node) const - { return static_cast(gl_list_node_value (_ptr, node)); } - - /* Returns the node immediately after the given node in the list, or NULL - if the given node is the last (rightmost) one in the list. */ - gl_list_node_t next_node (gl_list_node_t node) const - { return gl_list_next_node (_ptr, node); } - - /* Returns the node immediately before the given node in the list, or NULL - if the given node is the first (leftmost) one in the list. */ - gl_list_node_t previous_node (gl_list_node_t node) const - { return gl_list_previous_node (_ptr, node); } - - /* Returns the first node in the list, or NULL if the list is empty. */ - gl_list_node_t first_node () const - { return gl_list_first_node (_ptr); } - - /* Returns the last node in the list, or NULL if the list is empty. */ - gl_list_node_t last_node () const - { return gl_list_last_node (_ptr); } - - /* Returns the element at a given position in the list. - POSITION must be >= 0 and < gl_list_size (list). */ - ELTYPE * get_at (size_t position) const - { return static_cast(gl_list_get_at (_ptr, position)); } - - /* Returns the element at the first position in the list. - The list must be non-empty. */ - ELTYPE * get_first () const - { return static_cast(gl_list_get_first (_ptr)); } - - /* Returns the element at the last position in the list. - The list must be non-empty. */ - ELTYPE * get_last () const - { return static_cast(gl_list_get_last (_ptr)); } - - /* Searches whether an element is already in the list. - Returns its node if found, or NULL if not present in the list. */ - gl_list_node_t search (ELTYPE * elt) const - { return gl_list_search (_ptr, elt); } - - /* Searches whether an element is already in the list, - at a position >= START_INDEX. - Returns its node if found, or NULL if not present in the list. */ - gl_list_node_t search_from (size_t start_index, ELTYPE * elt) const - { return gl_list_search_from (_ptr, start_index, elt); } - - /* Searches whether an element is already in the list, - at a position >= START_INDEX and < END_INDEX. - Returns its node if found, or NULL if not present in the list. */ - gl_list_node_t search_from_to (size_t start_index, size_t end_index, ELTYPE * elt) const - { return gl_list_search_from_to (_ptr, start_index, end_index, elt); } - - /* Searches whether an element is already in the list. - Returns its position if found, or (size_t)(-1) if not present in the list. */ - size_t indexof (ELTYPE * elt) const - { return gl_list_indexof (_ptr, elt); } - - /* Searches whether an element is already in the list, - at a position >= START_INDEX. - Returns its position if found, or (size_t)(-1) if not present in the list. */ - size_t indexof_from (size_t start_index, ELTYPE * elt) const - { return gl_list_indexof_from (_ptr, start_index, elt); } - - /* Searches whether an element is already in the list, - at a position >= START_INDEX and < END_INDEX. - Returns its position if found, or (size_t)(-1) if not present in the list. */ - size_t indexof_from_to (size_t start_index, size_t end_index, ELTYPE * elt) const - { return gl_list_indexof_from_to (_ptr, start_index, end_index, elt); } - - // ----------------------- Modifying member functions ----------------------- - - /* Replaces the element value represented by a list node. */ - void node_set_value (gl_list_node_t node, ELTYPE * elt) - { gl_list_node_set_value (_ptr, node, elt); } - - /* Replaces the element at a given position in the list. - POSITION must be >= 0 and < gl_list_size (list). - Returns its node. */ - gl_list_node_t set_at (size_t position, ELTYPE * elt) - { return gl_list_set_at (_ptr, position, elt); } - - /* Replaces the element at the first position in the list. - Returns its node. - The list must be non-empty. */ - gl_list_node_t set_first (ELTYPE * elt) - { return gl_list_set_first (_ptr, elt); } - - /* Replaces the element at the last position in the list. - Returns its node. - The list must be non-empty. */ - gl_list_node_t set_last (ELTYPE * elt) - { return gl_list_set_last (_ptr, elt); } - - /* Adds an element as the first element of the list. - Returns its node. */ - gl_list_node_t add_first (ELTYPE * elt) - { return gl_list_add_first (_ptr, elt); } - - /* Adds an element as the last element of the list. - Returns its node. */ - gl_list_node_t add_last (ELTYPE * elt) - { return gl_list_add_last (_ptr, elt); } - - /* Adds an element before a given element node of the list. - Returns its node. */ - gl_list_node_t add_before (gl_list_node_t node, ELTYPE * elt) - { return gl_list_add_before (_ptr, node, elt); } - - /* Adds an element after a given element node of the list. - Return its node. */ - gl_list_node_t add_after (gl_list_node_t node, ELTYPE * elt) - { return gl_list_add_after (_ptr, node, elt); } - - /* Adds an element at a given position in the list. - POSITION must be >= 0 and <= gl_list_size (list). */ - gl_list_node_t add_at (size_t position, ELTYPE * elt) - { return gl_list_add_at (_ptr, position, elt); } - - /* Removes an element from the list. - Returns true. */ - bool remove_node (gl_list_node_t node) - { return gl_list_remove_node (_ptr, node); } - - /* Removes an element at a given position from the list. - POSITION must be >= 0 and < gl_list_size (list). - Returns true. */ - bool remove_at (size_t position) - { return gl_list_remove_at (_ptr, position); } - - /* Removes the element at the first position from the list. - Returns true if it was found and removed, - or false if the list was empty. */ - bool remove_first () - { return gl_list_remove_first (_ptr); } - - /* Removes the element at the last position from the list. - Returns true if it was found and removed, - or false if the list was empty. */ - bool remove_last () - { return gl_list_remove_last (_ptr); } - - /* Searches and removes an element from the list. - Returns true if it was found and removed. */ - bool remove (ELTYPE * elt) - { return gl_list_remove (_ptr, elt); } - - /* Frees the entire list. - (But this call does not free the elements of the list. It only invokes - the DISPOSE_FN on each of the elements of the list, and only if the list - is not a sublist.) */ - void free () - { gl_list_free (_ptr); _ptr = NULL; } - - // -------------------- Member functions for sorted lists -------------------- - - /* The following functions are for lists without duplicates where the - order is given by a sort criterion. */ - - /* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Returns its node if found, or NULL if not present in the list. - If the list contains several copies of ELT, the node of the leftmost one is - returned. */ - gl_list_node_t sortedlist_search (int (*compar) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - ELTYPE * elt) - { return gl_sortedlist_search (_ptr, reinterpret_cast(compar), elt); } - - /* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Only list elements with indices >= START_INDEX and < END_INDEX are - considered; the implementation uses these bounds to minimize the number - of COMPAR invocations. - Returns its node if found, or NULL if not present in the list. - If the list contains several copies of ELT, the node of the leftmost one is - returned. */ - gl_list_node_t sortedlist_search_from_to (int (*compar) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - size_t start_index, - size_t end_index, - ELTYPE * elt) - { return gl_sortedlist_search_from_to (_ptr, reinterpret_cast(compar), start_index, end_index, elt); } - - /* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Returns its position if found, or (size_t)(-1) if not present in the list. - If the list contains several copies of ELT, the position of the leftmost one - is returned. */ - size_t sortedlist_indexof (int (*compar) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - ELTYPE * elt) - { return gl_sortedlist_indexof (_ptr, reinterpret_cast(compar), elt); } - - /* Searches whether an element is already in the list. - The list is assumed to be sorted with COMPAR. - Only list elements with indices >= START_INDEX and < END_INDEX are - considered; the implementation uses these bounds to minimize the number - of COMPAR invocations. - Returns its position if found, or (size_t)(-1) if not present in the list. - If the list contains several copies of ELT, the position of the leftmost one - is returned. */ - size_t sortedlist_indexof_from_to (int (*compar) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - size_t start_index, - size_t end_index, - ELTYPE * elt) - { return gl_sortedlist_indexof_from_to (_ptr, reinterpret_cast(compar), start_index, end_index, elt); } - - /* Adds an element at the appropriate position in the list. - The list is assumed to be sorted with COMPAR. - Returns its node. */ - gl_list_node_t sortedlist_add (int (*compar) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - ELTYPE * elt) - { return gl_sortedlist_add (_ptr, reinterpret_cast(compar), elt); } - - /* Searches and removes an element from the list. - The list is assumed to be sorted with COMPAR. - Returns true if it was found and removed. - If the list contains several copies of ELT, only the leftmost one is - removed. */ - bool sortedlist_remove (int (*compar) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - ELTYPE * elt) - { return gl_sortedlist_remove (_ptr, reinterpret_cast(compar), elt); } - - // ------------------------------ Private stuff ------------------------------ - -private: - gl_list_t _ptr; - -public: - // -------------------------------- Iterators -------------------------------- - // Only a forward iterator. - // Does not implement the STL operations (++, *, and != .end()), but a simpler - // interface that needs only one virtual function call per iteration instead - // of three. - - class iterator { - public: - - /* If there is a next element, stores the next element in ELT, advances - the iterator and returns true. - Otherwise, returns false. */ - bool next (ELTYPE *& elt) - { - const void *next_elt; - bool has_next = gl_list_iterator_next (&_state, &next_elt, NULL); - if (has_next) - elt = static_cast(next_elt); - return has_next; - } - - /* If there is a next element, stores the next element in ELT, stores its - node in *NODEP if NODEP is non-NULL, advances the iterator and returns true. - Otherwise, returns false. */ - bool next (ELTYPE *& elt, gl_list_node_t *nodep) - { - const void *next_elt; - bool has_next = gl_list_iterator_next (&_state, &next_elt, nodep); - if (has_next) - elt = static_cast(next_elt); - return has_next; - } - - ~iterator () - { gl_list_iterator_free (&_state); } - - #if defined __xlC__ || defined __HP_aCC || defined __SUNPRO_CC - public: - #else - private: - friend iterator gl_List::begin (); - #endif - - iterator (gl_list_t ptr) - : _state (gl_list_iterator (ptr)) - {} - - iterator (gl_list_t ptr, size_t start_index, size_t end_index) - : _state (gl_list_iterator_from_to (ptr, start_index, end_index)) - {} - - private: - - gl_list_iterator_t _state; - }; - - /* Creates an iterator traversing the list. - The list contents must not be modified while the iterator is in use, - except for replacing or removing the last returned element. */ - iterator begin () - { return iterator (_ptr); } - - /* Creates an iterator traversing the element with indices i, - start_index <= i < end_index, of a list. - The list contents must not be modified while the iterator is in use, - except for replacing or removing the last returned element. */ - iterator begin (size_t start_index, size_t end_index) - { return iterator (_ptr, start_index, end_index); } -}; - -#endif /* _GL_LIST_HH */ diff --git a/include/libgnulib/gl_map.h b/include/libgnulib/gl_map.h deleted file mode 100755 index d072fdd..0000000 --- a/include/libgnulib/gl_map.h +++ /dev/null @@ -1,377 +0,0 @@ -/* Abstract map data type. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_MAP_H -#define _GL_MAP_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_MAP_INLINE -# define GL_MAP_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* gl_map is an abstract map data type. It can contain any number of - (key, value) pairs, where - - keys and values are objects ('void *' or 'const void *' pointers), - - There are no (key, value1) and (key, value2) pairs with the same key - (in the sense of a given comparator function). - - There are several implementations of this map datatype, optimized for - different operations or for memory. You can start using the simplest map - implementation, GL_ARRAY_MAP, and switch to a different implementation - later, when you realize which operations are performed the most frequently. - The API of the different implementations is exactly the same; when switching - to a different implementation, you only have to change the gl_map_create - call. - - The implementations are: - GL_ARRAY_MAP a growable array - GL_LINKEDHASH_MAP a hash table with a linked list - GL_HASH_MAP a hash table - - The memory consumption is asymptotically the same: O(1) for every pair - in the map. When looking more closely at the average memory consumed - for an object, GL_ARRAY_MAP is the most compact representation, then comes - GL_HASH_MAP, and GL_LINKEDHASH_MAP needs the most memory. - - The guaranteed average performance of the operations is, for a map of - n pairs: - - Operation ARRAY LINKEDHASH - HASH - - gl_map_size O(1) O(1) - gl_map_get O(n) O(1) - gl_map_put O(n) O(1) - gl_map_remove O(n) O(1) - gl_map_search O(n) O(1) - gl_map_iterator O(1) O(1) - gl_map_iterator_next O(1) O(1) - */ - -/* --------------------------- gl_map_t Data Type --------------------------- */ - -/* Type of function used to compare two keys. - NULL denotes pointer comparison. */ -typedef bool (*gl_mapkey_equals_fn) (const void *key1, const void *key2); - -/* Type of function used to compute a hash code. - NULL denotes a function that depends only on the pointer itself. */ -typedef size_t (*gl_mapkey_hashcode_fn) (const void *key); - -#ifndef _GL_MAP_DISPOSE_FNS_DEFINED - -/* Type of function used to dispose a key once a (key, value) pair is removed - from a map. NULL denotes a no-op. */ -typedef void (*gl_mapkey_dispose_fn) (const void *key); - -/* Type of function used to dispose a value once a (key, value) pair is removed - from a map. NULL denotes a no-op. */ -typedef void (*gl_mapvalue_dispose_fn) (const void *value); - -# define _GL_MAP_DISPOSE_FNS_DEFINED 1 -#endif - -struct gl_map_impl; -/* Type representing an entire map. */ -typedef struct gl_map_impl * gl_map_t; - -struct gl_map_implementation; -/* Type representing a map datatype implementation. */ -typedef const struct gl_map_implementation * gl_map_implementation_t; - -#if 0 /* Unless otherwise specified, these are defined inline below. */ - -/* Creates an empty map. - IMPLEMENTATION is one of GL_ARRAY_MAP, GL_LINKEDHASH_MAP, GL_HASH_MAP. - EQUALS_FN is a key comparison function or NULL. - HASHCODE_FN is a key hash code function or NULL. - KDISPOSE_FN is a key disposal function or NULL. - VDISPOSE_FN is a value disposal function or NULL. */ -/* declared in gl_xmap.h */ -extern gl_map_t gl_map_create_empty (gl_map_implementation_t implementation, - gl_mapkey_equals_fn equals_fn, - gl_mapkey_hashcode_fn hashcode_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_map_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_map_t gl_map_nx_create_empty (gl_map_implementation_t implementation, - gl_mapkey_equals_fn equals_fn, - gl_mapkey_hashcode_fn hashcode_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_map_free, 1)*/; - -/* Returns the current number of pairs in a map. */ -extern size_t gl_map_size (gl_map_t map); - -/* Searches whether a pair with the given key is already in the map. - Returns the value if found, or NULL if not present in the map. */ -extern const void * gl_map_get (gl_map_t map, const void *key); - -/* Searches whether a pair with the given key is already in the map. - Returns true and sets *VALUEP to the value if found. - Returns false if not present in the map. */ -extern bool gl_map_search (gl_map_t map, const void *key, const void **valuep); - -/* Adds a pair to a map. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false if a pair with the given key was already in the map and only - its value was replaced. */ -/* declared in gl_xmap.h */ -extern bool gl_map_put (gl_map_t map, const void *key, const void *value); -/* Likewise. Returns -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_map_nx_put (gl_map_t map, const void *key, const void *value); - -/* Adds a pair to a map and retrieves the previous value. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false and sets *OLDVALUEP to the previous value, if a pair with the - given key was already in the map and only its value was replaced. */ -/* declared in gl_xmap.h */ -extern bool gl_map_getput (gl_map_t map, const void *key, const void *value, - const void **oldvaluep); -/* Likewise. Returns -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_map_nx_getput (gl_map_t map, const void *key, const void *value, - const void **oldvaluep); - -/* Removes a pair from a map. - Returns true if the key was found and its pair removed. - Returns false otherwise. */ -extern bool gl_map_remove (gl_map_t map, const void *key); - -/* Removes a pair from a map and retrieves the previous value. - Returns true and sets *OLDVALUEP to the previous value, if the key was found - and its pair removed. - Returns false otherwise. */ -extern bool gl_map_getremove (gl_map_t map, const void *key, - const void **oldvaluep); - -/* Frees an entire map. - (But this call does not free the keys and values of the pairs in the map. - It only invokes the KDISPOSE_FN on each key and the VDISPOSE_FN on each value - of the pairs in the map.) */ -extern void gl_map_free (gl_map_t map); - -#endif /* End of inline and gl_xmap.h-defined functions. */ - -/* ---------------------- gl_map_iterator_t Data Type ---------------------- */ - -/* Functions for iterating through a map. - Note: Iterating through a map of type GL_HASH_MAP returns the pairs in an - unpredictable order. If you need a predictable order, use GL_LINKEDHASH_MAP - instead of GL_HASH_MAP. */ - -/* Type of an iterator that traverses a map. - This is a fixed-size struct, so that creation of an iterator doesn't need - memory allocation on the heap. */ -typedef struct -{ - /* For fast dispatch of gl_map_iterator_next. */ - const struct gl_map_implementation *vtable; - /* For detecting whether the last returned pair was removed. */ - gl_map_t map; - size_t count; - /* Other, implementation-private fields. */ - void *p; void *q; - size_t i; size_t j; -} gl_map_iterator_t; - -#if 0 /* These are defined inline below. */ - -/* Creates an iterator traversing a map. - The map's contents must not be modified while the iterator is in use, - except for modifying the value of the last returned key or removing the - last returned pair. */ -extern gl_map_iterator_t gl_map_iterator (gl_map_t map); - -/* If there is a next pair, stores the next pair in *KEYP and *VALUEP, advances - the iterator, and returns true. Otherwise, returns false. */ -extern bool gl_map_iterator_next (gl_map_iterator_t *iterator, - const void **keyp, const void **valuep); - -/* Frees an iterator. */ -extern void gl_map_iterator_free (gl_map_iterator_t *iterator); - -#endif /* End of inline functions. */ - -/* ------------------------- Implementation Details ------------------------- */ - -struct gl_map_implementation -{ - /* gl_map_t functions. */ - gl_map_t (*nx_create_empty) (gl_map_implementation_t implementation, - gl_mapkey_equals_fn equals_fn, - gl_mapkey_hashcode_fn hashcode_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn); - size_t (*size) (gl_map_t map); - bool (*search) (gl_map_t map, const void *key, const void **valuep); - int (*nx_getput) (gl_map_t map, const void *key, const void *value, - const void **oldvaluep); - bool (*getremove) (gl_map_t map, const void *key, const void **oldvaluep); - void (*map_free) (gl_map_t map); - /* gl_map_iterator_t functions. */ - gl_map_iterator_t (*iterator) (gl_map_t map); - bool (*iterator_next) (gl_map_iterator_t *iterator, - const void **keyp, const void **valuep); - void (*iterator_free) (gl_map_iterator_t *iterator); -}; - -struct gl_map_impl_base -{ - const struct gl_map_implementation *vtable; - gl_mapkey_equals_fn equals_fn; - gl_mapkey_dispose_fn kdispose_fn; - gl_mapvalue_dispose_fn vdispose_fn; -}; - -/* Define most functions of this file as accesses to the - struct gl_map_implementation. */ - -GL_MAP_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_map_free, 1)*/ -gl_map_t -gl_map_nx_create_empty (gl_map_implementation_t implementation, - gl_mapkey_equals_fn equals_fn, - gl_mapkey_hashcode_fn hashcode_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) -{ - return implementation->nx_create_empty (implementation, - equals_fn, hashcode_fn, - kdispose_fn, vdispose_fn); -} - -GL_MAP_INLINE size_t -gl_map_size (gl_map_t map) -{ - return ((const struct gl_map_impl_base *) map)->vtable->size (map); -} - -GL_MAP_INLINE bool -gl_map_search (gl_map_t map, const void *key, const void **valuep) -{ - return ((const struct gl_map_impl_base *) map)->vtable - ->search (map, key, valuep); -} - -_GL_ATTRIBUTE_NODISCARD GL_MAP_INLINE int -gl_map_nx_getput (gl_map_t map, const void *key, const void *value, - const void **oldvaluep) -{ - return ((const struct gl_map_impl_base *) map)->vtable - ->nx_getput (map, key, value, oldvaluep); -} - -GL_MAP_INLINE bool -gl_map_getremove (gl_map_t map, const void *key, const void **oldvaluep) -{ - return ((const struct gl_map_impl_base *) map)->vtable - ->getremove (map, key, oldvaluep); -} - -GL_MAP_INLINE void -gl_map_free (gl_map_t map) -{ - ((const struct gl_map_impl_base *) map)->vtable->map_free (map); -} - -GL_MAP_INLINE gl_map_iterator_t -gl_map_iterator (gl_map_t map) -{ - return ((const struct gl_map_impl_base *) map)->vtable->iterator (map); -} - -GL_MAP_INLINE bool -gl_map_iterator_next (gl_map_iterator_t *iterator, - const void **keyp, const void **valuep) -{ - return iterator->vtable->iterator_next (iterator, keyp, valuep); -} - -GL_MAP_INLINE void -gl_map_iterator_free (gl_map_iterator_t *iterator) -{ - iterator->vtable->iterator_free (iterator); -} - -/* Define the convenience functions, that is, the functions that are independent - of the implementation. */ - -GL_MAP_INLINE const void * -gl_map_get (gl_map_t map, const void *key) -{ - const void *value = NULL; - gl_map_search (map, key, &value); - return value; -} - -_GL_ATTRIBUTE_NODISCARD GL_MAP_INLINE int -gl_map_nx_put (gl_map_t map, const void *key, const void *value) -{ - const void *oldvalue; - int result = gl_map_nx_getput (map, key, value, &oldvalue); - if (result == 0) - { - gl_mapvalue_dispose_fn vdispose_fn = - ((const struct gl_map_impl_base *) map)->vdispose_fn; - if (vdispose_fn != NULL) - vdispose_fn (oldvalue); - } - return result; -} - -GL_MAP_INLINE bool -gl_map_remove (gl_map_t map, const void *key) -{ - const void *oldvalue; - bool result = gl_map_getremove (map, key, &oldvalue); - if (result) - { - gl_mapvalue_dispose_fn vdispose_fn = - ((const struct gl_map_impl_base *) map)->vdispose_fn; - if (vdispose_fn != NULL) - vdispose_fn (oldvalue); - } - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_MAP_H */ diff --git a/include/libgnulib/gl_map.hh b/include/libgnulib/gl_map.hh deleted file mode 100755 index 255c29b..0000000 --- a/include/libgnulib/gl_map.hh +++ /dev/null @@ -1,187 +0,0 @@ -/* Abstract map data type as a C++ class. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_MAP_HH -#define _GL_MAP_HH - -#include "gl_map.h" -#include "gl_xmap.h" - -#include /* because Gnulib's may '#define free ...' */ - -/* gl_Map is a C++ wrapper around the gl_map data type. - Its key type is 'KEYTYPE *'. Its value type is 'VALUETYPE *'. - - It is merely a pointer, not a smart pointer. In other words: - it does NOT do reference-counting, and the destructor does nothing. */ - -template class gl_Map; - -template -class gl_Map -{ -public: - // ------------------------------ Constructors ------------------------------ - - gl_Map () - : _ptr (NULL) - {} - - /* Creates an empty map. - IMPLEMENTATION is one of GL_ARRAY_MAP, GL_LINKEDHASH_MAP, GL_HASH_MAP. - EQUALS_FN is a key comparison function or NULL. - HASHCODE_FN is a key hash code function or NULL. - KDISPOSE_FN is a key disposal function or NULL. - VDISPOSE_FN is a value disposal function or NULL. */ - gl_Map (gl_map_implementation_t implementation, - bool (*equals_fn) (KEYTYPE * /*key1*/, KEYTYPE * /*key2*/), - size_t (*hashcode_fn) (KEYTYPE *), - void (*kdispose_fn) (KEYTYPE *), - void (*vdispose_fn) (VALUETYPE *)) - : _ptr (gl_map_create_empty (implementation, - reinterpret_cast(equals_fn), - reinterpret_cast(hashcode_fn), - reinterpret_cast(kdispose_fn), - reinterpret_cast(vdispose_fn))) - {} - - /* Copy constructor. */ - gl_Map (const gl_Map& x) - { _ptr = x._ptr; } - - /* Assignment operator. */ - gl_Map& operator= (const gl_Map& x) - { _ptr = x._ptr; return *this; } - - // ------------------------------- Destructor ------------------------------- - - ~gl_Map () - { _ptr = NULL; } - - // ----------------------- Read-only member functions ----------------------- - - /* Returns the current number of pairs in the map. */ - size_t size () const - { return gl_map_size (_ptr); } - - /* Searches whether a pair with the given key is already in the map. - Returns the value if found, or NULL if not present in the map. */ - VALUETYPE * get (KEYTYPE * key) const - { return static_cast(gl_map_get (_ptr, key)); } - - /* Searches whether a pair with the given key is already in the map. - Returns true and sets VALUE to the value if found. - Returns false if not present in the map. */ - bool search (KEYTYPE * key, VALUETYPE *& value) const - { return gl_map_search (_ptr, key, &value); } - - // ----------------------- Modifying member functions ----------------------- - - /* Adds a pair to the map. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false if a pair with the given key was already in the map and only - its value was replaced. */ - bool put (KEYTYPE * key, VALUETYPE * value) - { return gl_map_put (_ptr, key, value); } - - /* Adds a pair to the map and retrieves the previous value. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false and sets OLDVALUE to the previous value, if a pair with the - given key was already in the map and only its value was replaced. */ - bool getput (KEYTYPE * key, VALUETYPE * value, VALUETYPE *& oldvalue) - { return gl_map_getput (_ptr, key, value, &oldvalue); } - - /* Removes a pair from the map. - Returns true if the key was found and its pair removed. - Returns false otherwise. */ - bool remove (KEYTYPE * key) - { return gl_map_remove (_ptr, key); } - - /* Removes a pair from the map and retrieves the previous value. - Returns true and sets OLDVALUE to the previous value, if the key was found - and its pair removed. - Returns false otherwise. */ - bool getremove (KEYTYPE * key, VALUETYPE *& oldvalue) - { return gl_map_getremove (_ptr, key, &oldvalue); } - - /* Frees the entire map. - (But this call does not free the keys and values of the pairs in the map. - It only invokes the KDISPOSE_FN on each key and the VDISPOSE_FN on each value - of the pairs in the map.) */ - void free () - { gl_map_free (_ptr); _ptr = NULL; } - - // ------------------------------ Private stuff ------------------------------ - -private: - gl_map_t _ptr; - -public: - // -------------------------------- Iterators -------------------------------- - // Only a forward iterator. - // Does not implement the STL operations (++, *, and != .end()), but a simpler - // interface that needs only one virtual function call per iteration instead - // of three. - - class iterator { - public: - - /* If there is a next pair, stores the next pair in KEY and VALUE, advance - the iterator, and returns true. Otherwise, returns false. */ - bool next (KEYTYPE *& key, VALUETYPE *& value) - { - const void *next_key; - const void *next_value; - bool has_next = gl_map_iterator_next (&_state, &next_key, &next_value); - if (has_next) - { - key = static_cast(next_key); - value = static_cast(next_value); - } - return has_next; - } - - ~iterator () - { gl_map_iterator_free (&_state); } - - #if defined __xlC__ || defined __HP_aCC || defined __SUNPRO_CC - public: - #else - private: - friend iterator gl_Map::begin (); - #endif - - iterator (gl_map_t ptr) - : _state (gl_map_iterator (ptr)) - {} - - private: - - gl_map_iterator_t _state; - }; - - /* Creates an iterator traversing the map. - The map's contents must not be modified while the iterator is in use, - except for modifying the value of the last returned key or removing the - last returned pair. */ - iterator begin () - { return iterator (_ptr); } -}; - -#endif /* _GL_MAP_HH */ diff --git a/include/libgnulib/gl_omap.h b/include/libgnulib/gl_omap.h deleted file mode 100755 index e6f2215..0000000 --- a/include/libgnulib/gl_omap.h +++ /dev/null @@ -1,395 +0,0 @@ -/* Abstract ordered map data type. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_OMAP_H -#define _GL_OMAP_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_OMAP_INLINE -# define GL_OMAP_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* gl_omap is an abstract ordered map data type. It can contain any number - of (key, value) pairs, where - - keys and values are objects ('void *' or 'const void *' pointers), - - The (key, value) pairs are ordered by the key, in the order of a given - comparator function. - - There are no (key, value1) and (key, value2) pairs with the same key - (in the sense of the comparator function). - - There are several implementations of this ordered map datatype, optimized - for different operations or for memory. You can start using the simplest - ordered map implementation, GL_ARRAY_OMAP, and switch to a different - implementation later, when you realize which operations are performed - the most frequently. The API of the different implementations is exactly - the same; when switching to a different implementation, you only have to - change the gl_omap_create call. - - The implementations are: - GL_ARRAY_OMAP a growable array - GL_AVLTREE_OMAP a binary tree (AVL tree) - GL_RBTREE_OMAP a binary tree (red-black tree) - - The memory consumption is asymptotically the same: O(1) for every pair - in the map. When looking more closely at the average memory consumed - for an pair, GL_ARRAY_OMAP is the most compact representation, and - GL_AVLTREE_OMAP, GL_RBTREE_OMAP need more memory. - - The guaranteed average performance of the operations is, for a map of - n pairs: - - Operation ARRAY TREE - - gl_omap_size O(1) O(1) - gl_omap_get O(log n) O(log n) - gl_omap_put O(n) O(log n) - gl_omap_remove O(n) O(log n) - gl_omap_search O(log n) O(log n) - gl_omap_search_atleast O(log n) O(log n) - gl_omap_iterator O(1) O(log n) - gl_omap_iterator_next O(1) O(log n) - */ - -/* -------------------------- gl_omap_t Data Type -------------------------- */ - -/* Type of function used to compare two keys. Same as for qsort(). - NULL denotes pointer comparison. */ -typedef int (*gl_mapkey_compar_fn) (const void *key1, const void *key2); - -#ifndef _GL_MAP_DISPOSE_FNS_DEFINED - -/* Type of function used to dispose a key once a (key, value) pair is removed - from a map. NULL denotes a no-op. */ -typedef void (*gl_mapkey_dispose_fn) (const void *key); - -/* Type of function used to dispose a value once a (key, value) pair is removed - from a map. NULL denotes a no-op. */ -typedef void (*gl_mapvalue_dispose_fn) (const void *value); - -# define _GL_MAP_DISPOSE_FNS_DEFINED 1 -#endif - -/* Type of function used to compare a key with a threshold. - Returns true if the key is greater or equal than the threshold. */ -typedef bool (*gl_mapkey_threshold_fn) (const void *key, const void *threshold); - -struct gl_omap_impl; -/* Type representing an entire ordered map. */ -typedef struct gl_omap_impl * gl_omap_t; - -struct gl_omap_implementation; -/* Type representing a ordered map datatype implementation. */ -typedef const struct gl_omap_implementation * gl_omap_implementation_t; - -#if 0 /* Unless otherwise specified, these are defined inline below. */ - -/* Creates an empty map. - IMPLEMENTATION is one of GL_ARRAY_OMAP, GL_AVLTREE_OMAP, GL_RBTREE_OMAP. - COMPAR_FN is a key comparison function or NULL. - KDISPOSE_FN is a key disposal function or NULL. - VDISPOSE_FN is a value disposal function or NULL. */ -/* declared in gl_xomap.h */ -extern gl_omap_t gl_omap_create_empty (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_omap_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_omap_t gl_omap_nx_create_empty (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_omap_free, 1)*/; - -/* Returns the current number of pairs in an ordered map. */ -extern size_t gl_omap_size (gl_omap_t map); - -/* Searches whether a pair with the given key is already in the ordered map. - Returns the value if found, or NULL if not present in the map. */ -extern const void * gl_omap_get (gl_omap_t map, const void *key); - -/* Searches whether a pair with the given key is already in the ordered map. - Returns true and sets *VALUEP to the value if found. - Returns false if not present in the map. */ -extern bool gl_omap_search (gl_omap_t map, const void *key, - const void **valuep); - -/* Searches the pair with the least key in the ordered map that compares - greater or equal to the given THRESHOLD. The representation of the - THRESHOLD is defined by the THRESHOLD_FN. - Returns true and stores the found pair in *KEYP and *VALUEP if found. - Otherwise returns false. */ -extern bool gl_omap_search_atleast (gl_omap_t map, - gl_mapkey_threshold_fn threshold_fn, - const void *threshold, - const void **keyp, const void **valuep); - -/* Adds a pair to an ordered map. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false if a pair with the given key was already in the map and only - its value was replaced. */ -/* declared in gl_xomap.h */ -extern bool gl_omap_put (gl_omap_t map, const void *key, const void *value); -/* Likewise. Returns -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_omap_nx_put (gl_omap_t map, const void *key, const void *value); - -/* Adds a pair to an ordered map and retrieves the previous value. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false and sets *OLDVALUEP to the previous value, if a pair with the - given key was already in the map and only its value was replaced. */ -/* declared in gl_xomap.h */ -extern bool gl_omap_getput (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep); -/* Likewise. Returns -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_omap_nx_getput (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep); - -/* Removes a pair from an ordered map. - Returns true if the key was found and its pair removed. - Returns false otherwise. */ -extern bool gl_omap_remove (gl_omap_t map, const void *key); - -/* Removes a pair from an ordered map and retrieves the previous value. - Returns true and sets *OLDVALUEP to the previous value, if the key was found - and its pair removed. - Returns false otherwise. */ -extern bool gl_omap_getremove (gl_omap_t map, const void *key, - const void **oldvaluep); - -/* Frees an entire ordered map. - (But this call does not free the keys and values of the pairs in the map. - It only invokes the KDISPOSE_FN on each key and the VDISPOSE_FN on each value - of the pairs in the map.) */ -extern void gl_omap_free (gl_omap_t map); - -#endif /* End of inline and gl_xomap.h-defined functions. */ - -/* ---------------------- gl_omap_iterator_t Data Type ---------------------- */ - -/* Functions for iterating through an ordered map. */ - -/* Type of an iterator that traverses an ordered map. - This is a fixed-size struct, so that creation of an iterator doesn't need - memory allocation on the heap. */ -typedef struct -{ - /* For fast dispatch of gl_omap_iterator_next. */ - const struct gl_omap_implementation *vtable; - /* For detecting whether the last returned pair was removed. */ - gl_omap_t map; - size_t count; - /* Other, implementation-private fields. */ - void *p; void *q; - size_t i; size_t j; -} gl_omap_iterator_t; - -#if 0 /* These are defined inline below. */ - -/* Creates an iterator traversing an ordered map. - The map's contents must not be modified while the iterator is in use, - except for modifying the value of the last returned key or removing the - last returned pair. */ -extern gl_omap_iterator_t gl_omap_iterator (gl_omap_t map); - -/* If there is a next pair, stores the next pair in *KEYP and *VALUEP, advances - the iterator, and returns true. Otherwise, returns false. */ -extern bool gl_omap_iterator_next (gl_omap_iterator_t *iterator, - const void **keyp, const void **valuep); - -/* Frees an iterator. */ -extern void gl_omap_iterator_free (gl_omap_iterator_t *iterator); - -#endif /* End of inline functions. */ - -/* ------------------------- Implementation Details ------------------------- */ - -struct gl_omap_implementation -{ - /* gl_omap_t functions. */ - gl_omap_t (*nx_create_empty) (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn); - size_t (*size) (gl_omap_t map); - bool (*search) (gl_omap_t map, const void *key, const void **valuep); - bool (*search_atleast) (gl_omap_t map, - gl_mapkey_threshold_fn threshold_fn, - const void *threshold, - const void **keyp, const void **valuep); - int (*nx_getput) (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep); - bool (*getremove) (gl_omap_t map, const void *key, const void **oldvaluep); - void (*omap_free) (gl_omap_t map); - /* gl_omap_iterator_t functions. */ - gl_omap_iterator_t (*iterator) (gl_omap_t map); - bool (*iterator_next) (gl_omap_iterator_t *iterator, - const void **keyp, const void **valuep); - void (*iterator_free) (gl_omap_iterator_t *iterator); -}; - -struct gl_omap_impl_base -{ - const struct gl_omap_implementation *vtable; - gl_mapkey_compar_fn compar_fn; - gl_mapkey_dispose_fn kdispose_fn; - gl_mapvalue_dispose_fn vdispose_fn; -}; - -/* Define most functions of this file as accesses to the - struct gl_omap_implementation. */ - -GL_OMAP_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_omap_free, 1)*/ -gl_omap_t -gl_omap_nx_create_empty (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) -{ - return implementation->nx_create_empty (implementation, compar_fn, - kdispose_fn, vdispose_fn); -} - -GL_OMAP_INLINE size_t -gl_omap_size (gl_omap_t map) -{ - return ((const struct gl_omap_impl_base *) map)->vtable->size (map); -} - -GL_OMAP_INLINE bool -gl_omap_search (gl_omap_t map, const void *key, const void **valuep) -{ - return ((const struct gl_omap_impl_base *) map)->vtable - ->search (map, key, valuep); -} - -GL_OMAP_INLINE bool -gl_omap_search_atleast (gl_omap_t map, - gl_mapkey_threshold_fn threshold_fn, - const void *threshold, - const void **keyp, const void **valuep) -{ - return ((const struct gl_omap_impl_base *) map)->vtable - ->search_atleast (map, threshold_fn, threshold, keyp, valuep); -} - -_GL_ATTRIBUTE_NODISCARD GL_OMAP_INLINE int -gl_omap_nx_getput (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep) -{ - return ((const struct gl_omap_impl_base *) map)->vtable - ->nx_getput (map, key, value, oldvaluep); -} - -GL_OMAP_INLINE bool -gl_omap_getremove (gl_omap_t map, const void *key, const void **oldvaluep) -{ - return ((const struct gl_omap_impl_base *) map)->vtable - ->getremove (map, key, oldvaluep); -} - -GL_OMAP_INLINE void -gl_omap_free (gl_omap_t map) -{ - ((const struct gl_omap_impl_base *) map)->vtable->omap_free (map); -} - -GL_OMAP_INLINE gl_omap_iterator_t -gl_omap_iterator (gl_omap_t map) -{ - return ((const struct gl_omap_impl_base *) map)->vtable->iterator (map); -} - -GL_OMAP_INLINE bool -gl_omap_iterator_next (gl_omap_iterator_t *iterator, - const void **keyp, const void **valuep) -{ - return iterator->vtable->iterator_next (iterator, keyp, valuep); -} - -GL_OMAP_INLINE void -gl_omap_iterator_free (gl_omap_iterator_t *iterator) -{ - iterator->vtable->iterator_free (iterator); -} - -/* Define the convenience functions, that is, the functions that are independent - of the implementation. */ - -GL_OMAP_INLINE const void * -gl_omap_get (gl_omap_t map, const void *key) -{ - const void *value = NULL; - gl_omap_search (map, key, &value); - return value; -} - -_GL_ATTRIBUTE_NODISCARD GL_OMAP_INLINE int -gl_omap_nx_put (gl_omap_t map, const void *key, const void *value) -{ - const void *oldvalue; - int result = gl_omap_nx_getput (map, key, value, &oldvalue); - if (result == 0) - { - gl_mapvalue_dispose_fn vdispose_fn = - ((const struct gl_omap_impl_base *) map)->vdispose_fn; - if (vdispose_fn != NULL) - vdispose_fn (oldvalue); - } - return result; -} - -GL_OMAP_INLINE bool -gl_omap_remove (gl_omap_t map, const void *key) -{ - const void *oldvalue; - bool result = gl_omap_getremove (map, key, &oldvalue); - if (result) - { - gl_mapvalue_dispose_fn vdispose_fn = - ((const struct gl_omap_impl_base *) map)->vdispose_fn; - if (vdispose_fn != NULL) - vdispose_fn (oldvalue); - } - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_OMAP_H */ diff --git a/include/libgnulib/gl_omap.hh b/include/libgnulib/gl_omap.hh deleted file mode 100755 index bb69308..0000000 --- a/include/libgnulib/gl_omap.hh +++ /dev/null @@ -1,195 +0,0 @@ -/* Abstract ordered map data type as a C++ class. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_OMAP_HH -#define _GL_OMAP_HH - -#include "gl_omap.h" -#include "gl_xomap.h" - -#include /* because Gnulib's may '#define free ...' */ - -/* gl_OMap is a C++ wrapper around the gl_omap data type. - Its key type is 'KEYTYPE *'. Its value type is 'VALUETYPE *'. - - It is merely a pointer, not a smart pointer. In other words: - it does NOT do reference-counting, and the destructor does nothing. */ - -template class gl_OMap; - -template -class gl_OMap -{ -public: - // ------------------------------ Constructors ------------------------------ - - gl_OMap () - : _ptr (NULL) - {} - - /* Creates an empty map. - IMPLEMENTATION is one of GL_ARRAY_OMAP, GL_AVLTREE_OMAP, GL_RBTREE_OMAP. - COMPAR_FN is a key comparison function or NULL. - KDISPOSE_FN is a key disposal function or NULL. - VDISPOSE_FN is a value disposal function or NULL. */ - gl_OMap (gl_omap_implementation_t implementation, - int (*compar_fn) (KEYTYPE * /*key1*/, KEYTYPE * /*key2*/), - void (*kdispose_fn) (KEYTYPE *), - void (*vdispose_fn) (VALUETYPE *)) - : _ptr (gl_omap_create_empty (implementation, - reinterpret_cast(compar_fn), - reinterpret_cast(kdispose_fn), - reinterpret_cast(vdispose_fn))) - {} - - /* Copy constructor. */ - gl_OMap (const gl_OMap& x) - { _ptr = x._ptr; } - - /* Assignment operator. */ - gl_OMap& operator= (const gl_OMap& x) - { _ptr = x._ptr; return *this; } - - // ------------------------------- Destructor ------------------------------- - - ~gl_OMap () - { _ptr = NULL; } - - // ----------------------- Read-only member functions ----------------------- - - /* Returns the current number of pairs in the ordered map. */ - size_t size () const - { return gl_omap_size (_ptr); } - - /* Searches whether a pair with the given key is already in the ordered map. - Returns the value if found, or NULL if not present in the map. */ - VALUETYPE * get (KEYTYPE * key) const - { return static_cast(gl_omap_get (_ptr, key)); } - - /* Searches whether a pair with the given key is already in the ordered map. - Returns true and sets VALUE to the value if found. - Returns false if not present in the map. */ - bool search (KEYTYPE * key, VALUETYPE *& value) const - { return gl_omap_search (_ptr, key, &value); } - - /* Searches the pair with the least key in the ordered map that compares - greater or equal to the given THRESHOLD. The representation of the - THRESHOLD is defined by the THRESHOLD_FN. - Returns true and stores the found pair in KEY and VALUE if found. - Otherwise returns false. */ - template - bool search_atleast (bool (*threshold_fn) (KEYTYPE * /*key*/, THT * /*threshold*/), - THT * threshold, - KEYTYPE *& key, VALUETYPE *& value) const - { return gl_omap_search_atleast (_ptr, reinterpret_cast(threshold_fn), threshold, &key, &value); } - - // ----------------------- Modifying member functions ----------------------- - - /* Adds a pair to the ordered map. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false if a pair with the given key was already in the map and only - its value was replaced. */ - bool put (KEYTYPE * key, VALUETYPE * value) - { return gl_omap_put (_ptr, key, value); } - - /* Adds a pair to the ordered map and retrieves the previous value. - Returns true if a pair with the given key was not already in the map and so - this pair was added. - Returns false and sets OLDVALUE to the previous value, if a pair with the - given key was already in the map and only its value was replaced. */ - bool getput (KEYTYPE * key, VALUETYPE * value, VALUETYPE *& oldvalue) - { return gl_omap_getput (_ptr, key, value, &oldvalue); } - - /* Removes a pair from the ordered map. - Returns true if the key was found and its pair removed. - Returns false otherwise. */ - bool remove (KEYTYPE * key) - { return gl_omap_remove (_ptr, key); } - - /* Removes a pair from the ordered map and retrieves the previous value. - Returns true and sets OLDVALUE to the previous value, if the key was found - and its pair removed. - Returns false otherwise. */ - bool getremove (KEYTYPE * key, VALUETYPE *& oldvalue) - { return gl_omap_getremove (_ptr, key, &oldvalue); } - - /* Frees the entire ordered map. - (But this call does not free the keys and values of the pairs in the map. - It only invokes the KDISPOSE_FN on each key and the VDISPOSE_FN on each value - of the pairs in the map.) */ - void free () - { gl_omap_free (_ptr); _ptr = NULL; } - - // ------------------------------ Private stuff ------------------------------ - -private: - gl_omap_t _ptr; - -public: - // -------------------------------- Iterators -------------------------------- - // Only a forward iterator. - // Does not implement the STL operations (++, *, and != .end()), but a simpler - // interface that needs only one virtual function call per iteration instead - // of three. - - class iterator { - public: - - /* If there is a next pair, stores the next pair in KEY and VALUE, advances - the iterator, and returns true. Otherwise, returns false. */ - bool next (KEYTYPE *& key, VALUETYPE *& value) - { - const void *next_key; - const void *next_value; - bool has_next = gl_omap_iterator_next (&_state, &next_key, &next_value); - if (has_next) - { - key = static_cast(next_key); - value = static_cast(next_value); - } - return has_next; - } - - ~iterator () - { gl_omap_iterator_free (&_state); } - - #if defined __xlC__ || defined __HP_aCC || defined __SUNPRO_CC - public: - #else - private: - friend iterator gl_OMap::begin (); - #endif - - iterator (gl_omap_t ptr) - : _state (gl_omap_iterator (ptr)) - {} - - private: - - gl_omap_iterator_t _state; - }; - - /* Creates an iterator traversing the ordered map. - The map's contents must not be modified while the iterator is in use, - except for modifying the value of the last returned key or removing the - last returned pair. */ - iterator begin () - { return iterator (_ptr); } -}; - -#endif /* _GL_OMAP_HH */ diff --git a/include/libgnulib/gl_openssl.h b/include/libgnulib/gl_openssl.h deleted file mode 100755 index 0686473..0000000 --- a/include/libgnulib/gl_openssl.h +++ /dev/null @@ -1,118 +0,0 @@ -/* Wrap openssl crypto hash routines in gnulib interface. -*- coding: utf-8 -*- - - Copyright (C) 2013-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Pádraig Brady */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifndef GL_OPENSSL_NAME -# error "Please define GL_OPENSSL_NAME to 1,5,256 etc." -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_OPENSSL_INLINE -# define GL_OPENSSL_INLINE _GL_INLINE -#endif - -/* Concatenate two preprocessor tokens. */ -#define _GLCRYPTO_CONCAT_(prefix, suffix) prefix##suffix -#define _GLCRYPTO_CONCAT(prefix, suffix) _GLCRYPTO_CONCAT_ (prefix, suffix) - -#if GL_OPENSSL_NAME == 5 -# define OPENSSL_ALG md5 -#else -# define OPENSSL_ALG _GLCRYPTO_CONCAT (sha, GL_OPENSSL_NAME) -#endif - -/* Context type mappings. */ -#if BASE_OPENSSL_TYPE != GL_OPENSSL_NAME -# undef BASE_OPENSSL_TYPE -# if GL_OPENSSL_NAME == 224 -# define BASE_OPENSSL_TYPE 256 -# elif GL_OPENSSL_NAME == 384 -# define BASE_OPENSSL_TYPE 512 -# endif -# define md5_CTX MD5_CTX -# define sha1_CTX SHA_CTX -# define sha224_CTX SHA256_CTX -# define sha224_ctx sha256_ctx -# define sha256_CTX SHA256_CTX -# define sha384_CTX SHA512_CTX -# define sha384_ctx sha512_ctx -# define sha512_CTX SHA512_CTX -# undef _gl_CTX -# undef _gl_ctx -# define _gl_CTX _GLCRYPTO_CONCAT (OPENSSL_ALG, _CTX) /* openssl type. */ -# define _gl_ctx _GLCRYPTO_CONCAT (OPENSSL_ALG, _ctx) /* gnulib type. */ - -struct _gl_ctx { _gl_CTX CTX; }; -#endif - -/* Function name mappings. */ -#define md5_prefix MD5 -#define sha1_prefix SHA1 -#define sha224_prefix SHA224 -#define sha256_prefix SHA256 -#define sha384_prefix SHA384 -#define sha512_prefix SHA512 -#define _GLCRYPTO_PREFIX _GLCRYPTO_CONCAT (OPENSSL_ALG, _prefix) -#define OPENSSL_FN(suffix) _GLCRYPTO_CONCAT (_GLCRYPTO_PREFIX, suffix) -#define GL_CRYPTO_FN(suffix) _GLCRYPTO_CONCAT (OPENSSL_ALG, suffix) - -GL_OPENSSL_INLINE void -GL_CRYPTO_FN (_init_ctx) (struct _gl_ctx *ctx) -{ (void) OPENSSL_FN (_Init) ((_gl_CTX *) ctx); } - -/* These were never exposed by gnulib. */ -#if ! (GL_OPENSSL_NAME == 224 || GL_OPENSSL_NAME == 384) -GL_OPENSSL_INLINE void -GL_CRYPTO_FN (_process_bytes) (const void *buf, size_t len, struct _gl_ctx *ctx) -{ OPENSSL_FN (_Update) ((_gl_CTX *) ctx, buf, len); } - -GL_OPENSSL_INLINE void -GL_CRYPTO_FN (_process_block) (const void *buf, size_t len, struct _gl_ctx *ctx) -{ GL_CRYPTO_FN (_process_bytes) (buf, len, ctx); } -#endif - -GL_OPENSSL_INLINE void * -GL_CRYPTO_FN (_finish_ctx) (struct _gl_ctx *ctx, void *restrict res) -{ OPENSSL_FN (_Final) ((unsigned char *) res, (_gl_CTX *) ctx); return res; } - -GL_OPENSSL_INLINE void * -GL_CRYPTO_FN (_buffer) (const char *buf, size_t len, void *restrict res) -{ return OPENSSL_FN () ((const unsigned char *) buf, len, (unsigned char *) res); } - -GL_OPENSSL_INLINE void * -GL_CRYPTO_FN (_read_ctx) (const struct _gl_ctx *ctx, void *restrict res) -{ - /* Assume any unprocessed bytes in ctx are not to be ignored. */ - _gl_CTX tmp_ctx = *(_gl_CTX *) ctx; - OPENSSL_FN (_Final) ((unsigned char *) res, &tmp_ctx); - return res; -} - -/* Undef so we can include multiple times. */ -#undef GL_CRYPTO_FN -#undef OPENSSL_FN -#undef _GLCRYPTO_PREFIX -#undef OPENSSL_ALG -#undef GL_OPENSSL_NAME - -_GL_INLINE_HEADER_END diff --git a/include/libgnulib/gl_oset.h b/include/libgnulib/gl_oset.h deleted file mode 100755 index e6f8f79..0000000 --- a/include/libgnulib/gl_oset.h +++ /dev/null @@ -1,344 +0,0 @@ -/* Abstract ordered set data type. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_OSET_H -#define _GL_OSET_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_OSET_INLINE -# define GL_OSET_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* gl_oset is an abstract ordered set data type. It can contain any number - of objects ('void *' or 'const void *' pointers) in the order of a given - comparator function. Duplicates (in the sense of the comparator) are - forbidden. - - There are several implementations of this ordered set datatype, optimized - for different operations or for memory. You can start using the simplest - ordered set implementation, GL_ARRAY_OSET, and switch to a different - implementation later, when you realize which operations are performed - the most frequently. The API of the different implementations is exactly - the same; when switching to a different implementation, you only have to - change the gl_oset_create call. - - The implementations are: - GL_ARRAY_OSET a growable array - GL_AVLTREE_OSET a binary tree (AVL tree) - GL_RBTREE_OSET a binary tree (red-black tree) - - The memory consumption is asymptotically the same: O(1) for every object - in the set. When looking more closely at the average memory consumed - for an object, GL_ARRAY_OSET is the most compact representation, and - GL_AVLTREE_OSET, GL_RBTREE_OSET need more memory. - - The guaranteed average performance of the operations is, for a set of - n elements: - - Operation ARRAY TREE - - gl_oset_size O(1) O(1) - gl_oset_add O(n) O(log n) - gl_oset_remove O(n) O(log n) - gl_oset_update O(n) O(log n) - gl_oset_search O(log n) O(log n) - gl_oset_search_atleast O(log n) O(log n) - gl_oset_iterator O(1) O(log n) - gl_oset_iterator_atleast O(log n) O(log n) - gl_oset_iterator_next O(1) O(log n) - */ - -/* -------------------------- gl_oset_t Data Type -------------------------- */ - -/* Type of function used to compare two elements. Same as for qsort(). - NULL denotes pointer comparison. */ -typedef int (*gl_setelement_compar_fn) (const void *elt1, const void *elt2); - -#ifndef _GL_SETELEMENT_DISPOSE_FN_DEFINED -/* Type of function used to dispose an element once it's removed from a set. - NULL denotes a no-op. */ -typedef void (*gl_setelement_dispose_fn) (const void *elt); -# define _GL_SETELEMENT_DISPOSE_FN_DEFINED 1 -#endif - -/* Type of function used to compare an element with a threshold. - Returns true if the element is greater or equal than the threshold. */ -typedef bool (*gl_setelement_threshold_fn) (const void *elt, const void *threshold); - -struct gl_oset_impl; -/* Type representing an entire ordered set. */ -typedef struct gl_oset_impl * gl_oset_t; - -struct gl_oset_implementation; -/* Type representing a ordered set datatype implementation. */ -typedef const struct gl_oset_implementation * gl_oset_implementation_t; - -#if 0 /* Unless otherwise specified, these are defined inline below. */ - -/* Creates an empty set. - IMPLEMENTATION is one of GL_ARRAY_OSET, GL_AVLTREE_OSET, GL_RBTREE_OSET. - COMPAR_FN is an element comparison function or NULL. - DISPOSE_FN is an element disposal function or NULL. */ -/* declared in gl_xoset.h */ -extern gl_oset_t gl_oset_create_empty (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_oset_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_oset_t gl_oset_nx_create_empty (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_oset_free, 1)*/; - -/* Returns the current number of elements in an ordered set. */ -extern size_t gl_oset_size (gl_oset_t set); - -/* Searches whether an element is already in the ordered set. - Returns true if found, or false if not present in the set. */ -extern bool gl_oset_search (gl_oset_t set, const void *elt); - -/* Searches the least element in the ordered set that compares greater or equal - to the given THRESHOLD. The representation of the THRESHOLD is defined - by the THRESHOLD_FN. - Returns true and stores the found element in *ELTP if found, otherwise returns - false. */ -extern bool gl_oset_search_atleast (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold, - const void **eltp); - -/* Adds an element to an ordered set. - Returns true if it was not already in the set and added, false otherwise. */ -/* declared in gl_xoset.h */ -extern bool gl_oset_add (gl_oset_t set, const void *elt); - -/* Likewise. Returns -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_oset_nx_add (gl_oset_t set, const void *elt); - -/* Removes an element from an ordered set. - Returns true if it was found and removed. */ -extern bool gl_oset_remove (gl_oset_t set, const void *elt); - -/* Invokes ACTION (ELT, ACTION_DATA) and updates the given ordered set if, - during this invocation, the attributes/properties of the element ELT change - in a way that influences the comparison function. - Warning: During the invocation of ACTION, the ordered set is inconsistent - and must not be accessed! - Returns 1 if the position of the element in the ordered set has changed as - a consequence, 0 if the element stayed at the same position, or -1 if it - collided with another element and was therefore removed. */ -extern int gl_oset_update (gl_oset_t set, const void *elt, - void (*action) (const void *elt, void *action_data), - void *action_data); - -/* Frees an entire ordered set. - (But this call does not free the elements of the set. It only invokes - the DISPOSE_FN on each of the elements of the set.) */ -extern void gl_oset_free (gl_oset_t set); - -#endif /* End of inline and gl_xoset.h-defined functions. */ - -/* --------------------- gl_oset_iterator_t Data Type --------------------- */ - -/* Functions for iterating through an ordered set. */ - -/* Type of an iterator that traverses an ordered set. - This is a fixed-size struct, so that creation of an iterator doesn't need - memory allocation on the heap. */ -typedef struct -{ - /* For fast dispatch of gl_oset_iterator_next. */ - const struct gl_oset_implementation *vtable; - /* For detecting whether the last returned element was removed. */ - gl_oset_t set; - size_t count; - /* Other, implementation-private fields. */ - void *p; void *q; - size_t i; size_t j; -} gl_oset_iterator_t; - -#if 0 /* These are defined inline below. */ - -/* Creates an iterator traversing an ordered set. - The set's contents must not be modified while the iterator is in use, - except for removing the last returned element. */ -extern gl_oset_iterator_t gl_oset_iterator (gl_oset_t set); - -/* Creates an iterator traversing the tail of an ordered set, that comprises - the elements that compare greater or equal to the given THRESHOLD. The - representation of the THRESHOLD is defined by the THRESHOLD_FN. */ -extern gl_oset_iterator_t gl_oset_iterator_atleast (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold); - -/* If there is a next element, stores the next element in *ELTP, advances the - iterator and returns true. Otherwise, returns false. */ -extern bool gl_oset_iterator_next (gl_oset_iterator_t *iterator, - const void **eltp); - -/* Frees an iterator. */ -extern void gl_oset_iterator_free (gl_oset_iterator_t *iterator); - -#endif /* End of inline functions. */ - -/* ------------------------ Implementation Details ------------------------ */ - -struct gl_oset_implementation -{ - /* gl_oset_t functions. */ - gl_oset_t (*nx_create_empty) (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn); - size_t (*size) (gl_oset_t set); - bool (*search) (gl_oset_t set, const void *elt); - bool (*search_atleast) (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold, const void **eltp); - int (*nx_add) (gl_oset_t set, const void *elt); - bool (*remove_elt) (gl_oset_t set, const void *elt); - int (*update) (gl_oset_t set, const void *elt, - void (*action) (const void * /*elt*/, void * /*action_data*/), - void *action_data); - void (*oset_free) (gl_oset_t set); - /* gl_oset_iterator_t functions. */ - gl_oset_iterator_t (*iterator) (gl_oset_t set); - gl_oset_iterator_t (*iterator_atleast) (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold); - bool (*iterator_next) (gl_oset_iterator_t *iterator, const void **eltp); - void (*iterator_free) (gl_oset_iterator_t *iterator); -}; - -struct gl_oset_impl_base -{ - const struct gl_oset_implementation *vtable; - gl_setelement_compar_fn compar_fn; - gl_setelement_dispose_fn dispose_fn; -}; - -/* Define all functions of this file as accesses to the - struct gl_oset_implementation. */ - -GL_OSET_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_oset_free, 1)*/ -gl_oset_t -gl_oset_nx_create_empty (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn) -{ - return implementation->nx_create_empty (implementation, compar_fn, - dispose_fn); -} - -GL_OSET_INLINE size_t -gl_oset_size (gl_oset_t set) -{ - return ((const struct gl_oset_impl_base *) set)->vtable->size (set); -} - -GL_OSET_INLINE bool -gl_oset_search (gl_oset_t set, const void *elt) -{ - return ((const struct gl_oset_impl_base *) set)->vtable->search (set, elt); -} - -GL_OSET_INLINE bool -gl_oset_search_atleast (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold, const void **eltp) -{ - return ((const struct gl_oset_impl_base *) set)->vtable - ->search_atleast (set, threshold_fn, threshold, eltp); -} - -_GL_ATTRIBUTE_NODISCARD GL_OSET_INLINE int -gl_oset_nx_add (gl_oset_t set, const void *elt) -{ - return ((const struct gl_oset_impl_base *) set)->vtable->nx_add (set, elt); -} - -GL_OSET_INLINE bool -gl_oset_remove (gl_oset_t set, const void *elt) -{ - return ((const struct gl_oset_impl_base *) set)->vtable - ->remove_elt (set, elt); -} - -GL_OSET_INLINE int -gl_oset_update (gl_oset_t set, const void *elt, - void (*action) (const void * /*elt*/, void * /*action_data*/), - void *action_data) -{ - return ((const struct gl_oset_impl_base *) set)->vtable - ->update (set, elt, action, action_data); -} - -GL_OSET_INLINE void -gl_oset_free (gl_oset_t set) -{ - ((const struct gl_oset_impl_base *) set)->vtable->oset_free (set); -} - -GL_OSET_INLINE gl_oset_iterator_t -gl_oset_iterator (gl_oset_t set) -{ - return ((const struct gl_oset_impl_base *) set)->vtable->iterator (set); -} - -GL_OSET_INLINE gl_oset_iterator_t -gl_oset_iterator_atleast (gl_oset_t set, - gl_setelement_threshold_fn threshold_fn, - const void *threshold) -{ - return ((const struct gl_oset_impl_base *) set)->vtable - ->iterator_atleast (set, threshold_fn, threshold); -} - -GL_OSET_INLINE bool -gl_oset_iterator_next (gl_oset_iterator_t *iterator, const void **eltp) -{ - return iterator->vtable->iterator_next (iterator, eltp); -} - -GL_OSET_INLINE void -gl_oset_iterator_free (gl_oset_iterator_t *iterator) -{ - iterator->vtable->iterator_free (iterator); -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_OSET_H */ diff --git a/include/libgnulib/gl_oset.hh b/include/libgnulib/gl_oset.hh deleted file mode 100755 index ada44a8..0000000 --- a/include/libgnulib/gl_oset.hh +++ /dev/null @@ -1,198 +0,0 @@ -/* Abstract ordered set data type as a C++ class. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _GL_OSET_HH -#define _GL_OSET_HH - -#include "gl_oset.h" -#include "gl_xoset.h" - -#include /* because Gnulib's may '#define free ...' */ - -/* gl_OSet is a C++ wrapper around the gl_oset data type. - Its element type is 'ELTYPE *'. - - It is merely a pointer, not a smart pointer. In other words: - it does NOT do reference-counting, and the destructor does nothing. */ - -template class gl_OSet; - -template -class gl_OSet -{ -public: - // ------------------------------ Constructors ------------------------------ - - gl_OSet () - : _ptr (NULL) - {} - - /* Creates an empty set. - IMPLEMENTATION is one of GL_ARRAY_OSET, GL_AVLTREE_OSET, GL_RBTREE_OSET. - COMPAR_FN is an element comparison function or NULL. - DISPOSE_FN is an element disposal function or NULL. */ - gl_OSet (gl_oset_implementation_t implementation, - int (*compar_fn) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - void (*dispose_fn) (ELTYPE *)) - : _ptr (gl_oset_create_empty (implementation, - reinterpret_cast(compar_fn), - reinterpret_cast(dispose_fn))) - {} - - /* Copy constructor. */ - gl_OSet (const gl_OSet& x) - { _ptr = x._ptr; } - - /* Assignment operator. */ - gl_OSet& operator= (const gl_OSet& x) - { _ptr = x._ptr; return *this; } - - // ------------------------------- Destructor ------------------------------- - - ~gl_OSet () - { _ptr = NULL; } - - // ----------------------- Read-only member functions ----------------------- - - /* Returns the current number of elements in the ordered set. */ - size_t size () const - { return gl_oset_size (_ptr); } - - /* Searches whether an element is already in the ordered set. - Returns true if found, or false if not present in the set. */ - bool search (ELTYPE * elt) const - { return gl_oset_search (_ptr, elt); } - - /* Searches the least element in the ordered set that compares greater or equal - to the given THRESHOLD. The representation of the THRESHOLD is defined - by the THRESHOLD_FN. - Returns true and store the found element in ELT if found, otherwise returns - false. */ - template - bool search_atleast (bool (*threshold_fn) (ELTYPE * /*elt*/, THT * /*threshold*/), - THT * threshold, - ELTYPE *& elt) const - { return gl_oset_search_atleast (_ptr, reinterpret_cast(threshold_fn), threshold, &elt); } - - // ----------------------- Modifying member functions ----------------------- - - /* Adds an element to the ordered set. - Returns true if it was not already in the set and added, false otherwise. */ - bool add (ELTYPE * elt) - { return gl_oset_add (_ptr, elt); } - - /* Removes an element from the ordered set. - Returns true if it was found and removed. */ - bool remove (ELTYPE * elt) - { return gl_oset_remove (_ptr, elt); } - - /* Invokes ACTION (ELT, ACTION_DATA) and updates the ordered set if, - during this invocation, the attributes/properties of the element ELT change - in a way that influences the comparison function. - Warning: During the invocation of ACTION, the ordered set is inconsistent - and must not be accessed! - Returns 1 if the position of the element in the ordered set has changed as - a consequence, 0 if the element stayed at the same position, or -1 if it - collided with another element and was therefore removed. */ - template - int update (ELTYPE * elt, - void (*action) (ELTYPE * /*elt*/, DT * /*action_data*/), - DT *action_data) - { - return gl_oset_update (_ptr, elt, - reinterpret_cast (action), - action_data); - } - - /* Frees the entire ordered set. - (But this call does not free the elements of the set. It only invokes - the DISPOSE_FN on each of the elements of the set.) */ - void free () - { gl_oset_free (_ptr); } - - // ------------------------------ Private stuff ------------------------------ - -private: - gl_oset_t _ptr; - -public: - // -------------------------------- Iterators -------------------------------- - // Only a forward iterator. - // Does not implement the STL operations (++, *, and != .end()), but a simpler - // interface that needs only one virtual function call per iteration instead - // of three. - - class iterator { - public: - - /* If there is a next element, stores the next element in ELT, advances the - iterator and returns true. Otherwise, returns false. */ - bool next (ELTYPE *& elt) - { - const void *next_elt; - bool has_next = gl_oset_iterator_next (&_state, &next_elt); - if (has_next) - elt = static_cast(next_elt); - return has_next; - } - - ~iterator () - { gl_oset_iterator_free (&_state); } - - #if defined __xlC__ || defined __HP_aCC || defined __SUNPRO_CC || defined __EDG__ || (defined _MSC_VER && !defined __clang__) - public: - #else - private: - friend iterator gl_OSet::begin (); - template - friend iterator gl_OSet::begin_atleast (bool (*) (ELTYPE *, THT *), THT *); - #endif - - iterator (gl_oset_t ptr) - : _state (gl_oset_iterator (ptr)) - {} - - template - iterator (gl_oset_t ptr, - bool (*threshold_fn) (ELTYPE * /*elt*/, THT * /*threshold*/), - THT * threshold) - : _state (gl_oset_iterator_atleast (ptr, reinterpret_cast(threshold_fn), threshold)) - {} - - private: - - gl_oset_iterator_t _state; - }; - - /* Creates an iterator traversing the ordered set. - The set's contents must not be modified while the iterator is in use, - except for removing the last returned element. */ - iterator begin () - { return iterator (_ptr); } - - /* Creates an iterator traversing the tail of an ordered set, that comprises - the elements that compare greater or equal to the given THRESHOLD. The - representation of the THRESHOLD is defined by the THRESHOLD_FN. - The set's contents must not be modified while the iterator is in use, - except for removing the last returned element. */ - template - iterator begin_atleast (bool (*threshold_fn) (ELTYPE * /*elt*/, THT * /*threshold*/), - THT * threshold) - { return iterator (_ptr, threshold_fn, threshold); } -}; - -#endif /* _GL_OSET_HH */ diff --git a/include/libgnulib/gl_rbtree_list.h b/include/libgnulib/gl_rbtree_list.h deleted file mode 100755 index 1428091..0000000 --- a/include/libgnulib/gl_rbtree_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_RBTREE_LIST_H -#define _GL_RBTREE_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_rbtree_list_implementation; -#define GL_RBTREE_LIST &gl_rbtree_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_RBTREE_LIST_H */ diff --git a/include/libgnulib/gl_rbtree_omap.h b/include/libgnulib/gl_rbtree_omap.h deleted file mode 100755 index 71129fa..0000000 --- a/include/libgnulib/gl_rbtree_omap.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Ordered map data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_RBTREE_OMAP_H -#define _GL_RBTREE_OMAP_H - -#include "gl_omap.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_omap_implementation gl_rbtree_omap_implementation; -#define GL_RBTREE_OMAP &gl_rbtree_omap_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_RBTREE_OMAP_H */ diff --git a/include/libgnulib/gl_rbtree_ordered.h b/include/libgnulib/gl_rbtree_ordered.h deleted file mode 100755 index a79aa27..0000000 --- a/include/libgnulib/gl_rbtree_ordered.h +++ /dev/null @@ -1,800 +0,0 @@ -/* Ordered {set,map} data type implemented by a binary tree. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -/* A red-black tree is a binary tree where every node is colored black or - red such that - 1. The root is black. - 2. No red node has a red parent. - Or equivalently: No red node has a red child. - 3. All paths from the root down to any NULL endpoint contain the same - number of black nodes. - Let's call this the "black-height" bh of the tree. It follows that every - such path contains exactly bh black and between 0 and bh red nodes. (The - extreme cases are a path containing only black nodes, and a path colored - alternately black-red-black-red-...-black-red.) The height of the tree - therefore is >= bh, <= 2*bh. - */ - -/* Color of a node. */ -typedef enum color { BLACK, RED } color_t; - -/* Tree node implementation, valid for this file only. */ -struct NODE_IMPL -{ - struct NODE_IMPL *left; /* left branch, or NULL */ - struct NODE_IMPL *right; /* right branch, or NULL */ - /* Parent pointer, or NULL. The parent pointer is not needed for most - operations. It is needed so that a NODE_T can be returned without - memory allocation, on which the functions _remove_node, - _add_before, _add_after can be implemented. */ - struct NODE_IMPL *parent; - color_t color; /* node's color */ - NODE_PAYLOAD_FIELDS -}; -typedef struct NODE_IMPL * NODE_T; - -/* Concrete CONTAINER_IMPL type, valid for this file only. */ -struct CONTAINER_IMPL -{ - struct CONTAINER_IMPL_BASE base; - struct NODE_IMPL *root; /* root node or NULL */ - size_t count; /* number of nodes */ -}; - -/* A red-black tree of height h has a black-height bh >= ceil(h/2) and - therefore at least 2^ceil(h/2) - 1 elements. So, h <= 116 (because a tree - of height h >= 117 would have at least 2^59 - 1 elements, and because even - on 64-bit machines, - sizeof (NODE_IMPL) * (2^59 - 1) > 2^64 - this would exceed the address space of the machine. */ -#define MAXHEIGHT 116 - -/* Rotates left a subtree. - - B D - / \ / \ - A D --> B E - / \ / \ - C E A C - - Changes the tree structure, updates the branch sizes. - The caller must update the colors and register D as child of its parent. */ -static NODE_T -rotate_left (NODE_T b_node, NODE_T d_node) -{ - NODE_T c_node = d_node->left; - - b_node->right = c_node; - d_node->left = b_node; - - d_node->parent = b_node->parent; - b_node->parent = d_node; - if (c_node != NULL) - c_node->parent = b_node; - - return d_node; -} - -/* Rotates right a subtree. - - D B - / \ / \ - B E --> A D - / \ / \ - A C C E - - Changes the tree structure, updates the branch sizes. - The caller must update the colors and register B as child of its parent. */ -static NODE_T -rotate_right (NODE_T b_node, NODE_T d_node) -{ - NODE_T c_node = b_node->right; - - d_node->left = c_node; - b_node->right = d_node; - - b_node->parent = d_node->parent; - d_node->parent = b_node; - if (c_node != NULL) - c_node->parent = d_node; - - return b_node; -} - -/* Ensures the tree is balanced, after an insertion operation. - Also assigns node->color. - parent is the given node's parent, known to be non-NULL. */ -static void -rebalance_after_add (CONTAINER_T container, NODE_T node, NODE_T parent) -{ - for (;;) - { - /* At this point, parent = node->parent != NULL. - Think of node->color being RED (although node->color is not yet - assigned.) */ - NODE_T grandparent; - NODE_T uncle; - - if (parent->color == BLACK) - { - /* A RED color for node is acceptable. */ - node->color = RED; - return; - } - - grandparent = parent->parent; - /* Since parent is RED, we know that - grandparent is != NULL and colored BLACK. */ - - if (grandparent->left == parent) - uncle = grandparent->right; - else if (grandparent->right == parent) - uncle = grandparent->left; - else - abort (); - - if (uncle != NULL && uncle->color == RED) - { - /* Change grandparent from BLACK to RED, and - change parent and uncle from RED to BLACK. - This makes it acceptable for node to be RED. */ - node->color = RED; - parent->color = uncle->color = BLACK; - node = grandparent; - } - else - { - /* grandparent and uncle are BLACK. parent is RED. node wants - to be RED too. - In this case, recoloring is not sufficient. Need to perform - one or two rotations. */ - NODE_T *grandparentp; - - if (grandparent->parent == NULL) - grandparentp = &container->root; - else if (grandparent->parent->left == grandparent) - grandparentp = &grandparent->parent->left; - else if (grandparent->parent->right == grandparent) - grandparentp = &grandparent->parent->right; - else - abort (); - - if (grandparent->left == parent) - { - if (parent->right == node) - { - /* Rotation between node and parent. */ - grandparent->left = rotate_left (parent, node); - node = parent; - parent = grandparent->left; - } - /* grandparent and uncle are BLACK. parent and node want to be - RED. parent = grandparent->left. node = parent->left. - - grandparent parent - bh+1 bh+1 - / \ / \ - parent uncle --> node grandparent - bh bh bh bh - / \ / \ - node C C uncle - bh bh bh bh - */ - *grandparentp = rotate_right (parent, grandparent); - parent->color = BLACK; - node->color = grandparent->color = RED; - } - else /* grandparent->right == parent */ - { - if (parent->left == node) - { - /* Rotation between node and parent. */ - grandparent->right = rotate_right (node, parent); - node = parent; - parent = grandparent->right; - } - /* grandparent and uncle are BLACK. parent and node want to be - RED. parent = grandparent->right. node = parent->right. - - grandparent parent - bh+1 bh+1 - / \ / \ - uncle parent --> grandparent node - bh bh bh bh - / \ / \ - C node uncle C - bh bh bh bh - */ - *grandparentp = rotate_left (grandparent, parent); - parent->color = BLACK; - node->color = grandparent->color = RED; - } - return; - } - - /* Start again with a new (node, parent) pair. */ - parent = node->parent; - - if (parent == NULL) - { - /* Change node's color from RED to BLACK. This increases the - tree's black-height. */ - node->color = BLACK; - return; - } - } -} - -/* Ensures the tree is balanced, after a deletion operation. - CHILD was a grandchild of PARENT and is now its child. Between them, - a black node was removed. CHILD is also black, or NULL. - (CHILD can also be NULL. But PARENT is non-NULL.) */ -static void -rebalance_after_remove (CONTAINER_T container, NODE_T child, NODE_T parent) -{ - for (;;) - { - /* At this point, we reduced the black-height of the CHILD subtree by 1. - To make up, either look for a possibility to turn a RED to a BLACK - node, or try to reduce the black-height tree of CHILD's sibling - subtree as well. */ - NODE_T *parentp; - - if (parent->parent == NULL) - parentp = &container->root; - else if (parent->parent->left == parent) - parentp = &parent->parent->left; - else if (parent->parent->right == parent) - parentp = &parent->parent->right; - else - abort (); - - if (parent->left == child) - { - NODE_T sibling = parent->right; - /* sibling's black-height is >= 1. In particular, - sibling != NULL. - - parent - / \ - child sibling - bh bh+1 - */ - - if (sibling->color == RED) - { - /* sibling is RED, hence parent is BLACK and sibling's children - are non-NULL and BLACK. - - parent sibling - bh+2 bh+2 - / \ / \ - child sibling --> parent SR - bh bh+1 bh+1 bh+1 - / \ / \ - SL SR child SL - bh+1 bh+1 bh bh+1 - */ - *parentp = rotate_left (parent, sibling); - parent->color = RED; - sibling->color = BLACK; - - /* Concentrate on the subtree of parent. The new sibling is - one of the old sibling's children, and known to be BLACK. */ - parentp = &sibling->left; - sibling = parent->right; - } - /* Now we know that sibling is BLACK. - - parent - / \ - child sibling - bh bh+1 - */ - if (sibling->right != NULL && sibling->right->color == RED) - { - /* - parent sibling - bh+1|bh+2 bh+1|bh+2 - / \ / \ - child sibling --> parent SR - bh bh+1 bh+1 bh+1 - / \ / \ - SL SR child SL - bh bh bh bh - */ - *parentp = rotate_left (parent, sibling); - sibling->color = parent->color; - parent->color = BLACK; - sibling->right->color = BLACK; - return; - } - else if (sibling->left != NULL && sibling->left->color == RED) - { - /* - parent parent - bh+1|bh+2 bh+1|bh+2 - / \ / \ - child sibling --> child SL - bh bh+1 bh bh+1 - / \ / \ - SL SR SLL sibling - bh bh bh bh - / \ / \ - SLL SLR SLR SR - bh bh bh bh - - where SLL, SLR, SR are all black. - */ - parent->right = rotate_right (sibling->left, sibling); - /* Change sibling from BLACK to RED and SL from RED to BLACK. */ - sibling->color = RED; - sibling = parent->right; - sibling->color = BLACK; - - /* Now do as in the previous case. */ - *parentp = rotate_left (parent, sibling); - sibling->color = parent->color; - parent->color = BLACK; - sibling->right->color = BLACK; - return; - } - else - { - if (parent->color == BLACK) - { - /* Change sibling from BLACK to RED. Then the entire - subtree at parent has decreased its black-height. - parent parent - bh+2 bh+1 - / \ / \ - child sibling --> child sibling - bh bh+1 bh bh - */ - sibling->color = RED; - - child = parent; - } - else - { - /* Change parent from RED to BLACK, but compensate by - changing sibling from BLACK to RED. - parent parent - bh+1 bh+1 - / \ / \ - child sibling --> child sibling - bh bh+1 bh bh - */ - parent->color = BLACK; - sibling->color = RED; - return; - } - } - } - else if (parent->right == child) - { - NODE_T sibling = parent->left; - /* sibling's black-height is >= 1. In particular, - sibling != NULL. - - parent - / \ - sibling child - bh+1 bh - */ - - if (sibling->color == RED) - { - /* sibling is RED, hence parent is BLACK and sibling's children - are non-NULL and BLACK. - - parent sibling - bh+2 bh+2 - / \ / \ - sibling child --> SR parent - bh+1 ch bh+1 bh+1 - / \ / \ - SL SR SL child - bh+1 bh+1 bh+1 bh - */ - *parentp = rotate_right (sibling, parent); - parent->color = RED; - sibling->color = BLACK; - - /* Concentrate on the subtree of parent. The new sibling is - one of the old sibling's children, and known to be BLACK. */ - parentp = &sibling->right; - sibling = parent->left; - } - /* Now we know that sibling is BLACK. - - parent - / \ - sibling child - bh+1 bh - */ - if (sibling->left != NULL && sibling->left->color == RED) - { - /* - parent sibling - bh+1|bh+2 bh+1|bh+2 - / \ / \ - sibling child --> SL parent - bh+1 bh bh+1 bh+1 - / \ / \ - SL SR SR child - bh bh bh bh - */ - *parentp = rotate_right (sibling, parent); - sibling->color = parent->color; - parent->color = BLACK; - sibling->left->color = BLACK; - return; - } - else if (sibling->right != NULL && sibling->right->color == RED) - { - /* - parent parent - bh+1|bh+2 bh+1|bh+2 - / \ / \ - sibling child --> SR child - bh+1 bh bh+1 bh - / \ / \ - SL SR sibling SRR - bh bh bh bh - / \ / \ - SRL SRR SL SRL - bh bh bh bh - - where SL, SRL, SRR are all black. - */ - parent->left = rotate_left (sibling, sibling->right); - /* Change sibling from BLACK to RED and SL from RED to BLACK. */ - sibling->color = RED; - sibling = parent->left; - sibling->color = BLACK; - - /* Now do as in the previous case. */ - *parentp = rotate_right (sibling, parent); - sibling->color = parent->color; - parent->color = BLACK; - sibling->left->color = BLACK; - return; - } - else - { - if (parent->color == BLACK) - { - /* Change sibling from BLACK to RED. Then the entire - subtree at parent has decreased its black-height. - parent parent - bh+2 bh+1 - / \ / \ - sibling child --> sibling child - bh+1 bh bh bh - */ - sibling->color = RED; - - child = parent; - } - else - { - /* Change parent from RED to BLACK, but compensate by - changing sibling from BLACK to RED. - parent parent - bh+1 bh+1 - / \ / \ - sibling child --> sibling child - bh+1 bh bh bh - */ - parent->color = BLACK; - sibling->color = RED; - return; - } - } - } - else - abort (); - - /* Start again with a new (child, parent) pair. */ - parent = child->parent; - -#if 0 /* Already handled. */ - if (child != NULL && child->color == RED) - { - child->color = BLACK; - return; - } -#endif - - if (parent == NULL) - return; - } -} - -static NODE_T -gl_tree_nx_add_first (CONTAINER_T container, NODE_PAYLOAD_PARAMS) -{ - /* Create new node. */ - NODE_T new_node = - (struct NODE_IMPL *) malloc (sizeof (struct NODE_IMPL)); - - if (new_node == NULL) - return NULL; - - new_node->left = NULL; - new_node->right = NULL; - NODE_PAYLOAD_ASSIGN(new_node) - - /* Add it to the tree. */ - if (container->root == NULL) - { - new_node->color = BLACK; - container->root = new_node; - new_node->parent = NULL; - } - else - { - NODE_T node; - - for (node = container->root; node->left != NULL; ) - node = node->left; - - node->left = new_node; - new_node->parent = node; - - /* Color and rebalance. */ - rebalance_after_add (container, new_node, node); - } - - container->count++; - return new_node; -} - -/* Adds the already allocated NEW_NODE to the tree, right before NODE. */ -static void -gl_tree_add_node_before (CONTAINER_T container, NODE_T node, NODE_T new_node) -{ - new_node->left = NULL; - new_node->right = NULL; - - /* Add it to the tree. */ - if (node->left == NULL) - node->left = new_node; - else - { - for (node = node->left; node->right != NULL; ) - node = node->right; - node->right = new_node; - } - new_node->parent = node; - - /* Color and rebalance. */ - rebalance_after_add (container, new_node, node); - - container->count++; -} - -static NODE_T -gl_tree_nx_add_before (CONTAINER_T container, NODE_T node, NODE_PAYLOAD_PARAMS) -{ - /* Create new node. */ - NODE_T new_node = - (struct NODE_IMPL *) malloc (sizeof (struct NODE_IMPL)); - - if (new_node == NULL) - return NULL; - - NODE_PAYLOAD_ASSIGN(new_node) - - gl_tree_add_node_before (container, node, new_node); - return new_node; -} - -/* Adds the already allocated NEW_NODE to the tree, right after NODE. */ -static void -gl_tree_add_node_after (CONTAINER_T container, NODE_T node, NODE_T new_node) -{ - new_node->left = NULL; - new_node->right = NULL; - - /* Add it to the tree. */ - if (node->right == NULL) - node->right = new_node; - else - { - for (node = node->right; node->left != NULL; ) - node = node->left; - node->left = new_node; - } - new_node->parent = node; - - /* Color and rebalance. */ - rebalance_after_add (container, new_node, node); - - container->count++; -} - -static NODE_T -gl_tree_nx_add_after (CONTAINER_T container, NODE_T node, NODE_PAYLOAD_PARAMS) -{ - /* Create new node. */ - NODE_T new_node = - (struct NODE_IMPL *) malloc (sizeof (struct NODE_IMPL)); - - if (new_node == NULL) - return NULL; - - NODE_PAYLOAD_ASSIGN(new_node) - - gl_tree_add_node_after (container, node, new_node); - return new_node; -} - -static void -gl_tree_remove_node_no_free (CONTAINER_T container, NODE_T node) -{ - NODE_T parent = node->parent; - - if (node->left == NULL) - { - /* Replace node with node->right. */ - NODE_T child = node->right; - - if (child != NULL) - { - child->parent = parent; - /* Since node->left == NULL, child must be RED and of height 1, - hence node must have been BLACK. Recolor the child. */ - child->color = BLACK; - } - if (parent == NULL) - container->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - - if (child == NULL && node->color == BLACK) - rebalance_after_remove (container, child, parent); - } - } - else if (node->right == NULL) - { - /* It is not absolutely necessary to treat this case. But the more - general case below is more complicated, hence slower. */ - /* Replace node with node->left. */ - NODE_T child = node->left; - - child->parent = parent; - /* Since node->right == NULL, child must be RED and of height 1, - hence node must have been BLACK. Recolor the child. */ - child->color = BLACK; - if (parent == NULL) - container->root = child; - else - { - if (parent->left == node) - parent->left = child; - else /* parent->right == node */ - parent->right = child; - } - } - else - { - /* Replace node with the rightmost element of the node->left subtree. */ - NODE_T subst; - NODE_T subst_parent; - NODE_T child; - color_t removed_color; - - for (subst = node->left; subst->right != NULL; ) - subst = subst->right; - - subst_parent = subst->parent; - - child = subst->left; - - removed_color = subst->color; - - /* The case subst_parent == node is special: If we do nothing special, - we get confusion about node->left, subst->left and child->parent. - subst_parent == node - <==> The 'for' loop above terminated immediately. - <==> subst == subst_parent->left - [otherwise subst == subst_parent->right] - In this case, we would need to first set - child->parent = node; node->left = child; - and later - when we copy subst into node's position - again - child->parent = subst; subst->left = child; - Altogether a no-op. */ - if (subst_parent != node) - { - if (child != NULL) - child->parent = subst_parent; - subst_parent->right = child; - } - - /* Copy subst into node's position. - (This is safer than to copy subst's value into node, keep node in - place, and free subst.) */ - if (subst_parent != node) - { - subst->left = node->left; - subst->left->parent = subst; - } - subst->right = node->right; - subst->right->parent = subst; - subst->color = node->color; - subst->parent = parent; - if (parent == NULL) - container->root = subst; - else if (parent->left == node) - parent->left = subst; - else /* parent->right == node */ - parent->right = subst; - - if (removed_color == BLACK) - { - if (child != NULL && child->color == RED) - /* Recolor the child. */ - child->color = BLACK; - else - /* Rebalancing starts at child's parent, that is subst_parent - - except when subst_parent == node. In this case, we need to use - its replacement, subst. */ - rebalance_after_remove (container, child, - subst_parent != node ? subst_parent : subst); - } - } - - container->count--; -} - -static bool -gl_tree_remove_node (CONTAINER_T container, NODE_T node) -{ - gl_tree_remove_node_no_free (container, node); - NODE_PAYLOAD_DISPOSE (container, node) - free (node); - return true; -} - -/* For debugging. */ -static unsigned int -check_invariants (NODE_T node, NODE_T parent, size_t *counterp) -{ - unsigned int left_blackheight = - (node->left != NULL ? check_invariants (node->left, node, counterp) : 0); - unsigned int right_blackheight = - (node->right != NULL ? check_invariants (node->right, node, counterp) : 0); - - if (!(node->parent == parent)) - abort (); - if (!(node->color == BLACK || node->color == RED)) - abort (); - if (parent == NULL && !(node->color == BLACK)) - abort (); - if (!(left_blackheight == right_blackheight)) - abort (); - - (*counterp)++; - - return left_blackheight + (node->color == BLACK ? 1 : 0); -} diff --git a/include/libgnulib/gl_rbtree_oset.h b/include/libgnulib/gl_rbtree_oset.h deleted file mode 100755 index b0d5c75..0000000 --- a/include/libgnulib/gl_rbtree_oset.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Ordered set data type implemented by a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_RBTREE_OSET_H -#define _GL_RBTREE_OSET_H - -#include "gl_oset.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_oset_implementation gl_rbtree_oset_implementation; -#define GL_RBTREE_OSET &gl_rbtree_oset_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_RBTREE_OSET_H */ diff --git a/include/libgnulib/gl_rbtreehash_list.h b/include/libgnulib/gl_rbtreehash_list.h deleted file mode 100755 index 6381530..0000000 --- a/include/libgnulib/gl_rbtreehash_list.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Sequential list data type implemented by a hash table with a binary tree. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _GL_RBTREEHASH_LIST_H -#define _GL_RBTREEHASH_LIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - -extern const struct gl_list_implementation gl_rbtreehash_list_implementation; -#define GL_RBTREEHASH_LIST &gl_rbtreehash_list_implementation - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_RBTREEHASH_LIST_H */ diff --git a/include/libgnulib/gl_set.h b/include/libgnulib/gl_set.h deleted file mode 100755 index 51d7fae..0000000 --- a/include/libgnulib/gl_set.h +++ /dev/null @@ -1,283 +0,0 @@ -/* Abstract set data type. - Copyright (C) 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_SET_H -#define _GL_SET_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_SET_INLINE -# define GL_SET_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* gl_set is an abstract set data type. It can contain any number of objects - ('void *' or 'const void *' pointers); the order does not matter. - Duplicates (in the sense of the comparator) are forbidden. - - There are several implementations of this set datatype, optimized for - different operations or for memory. You can start using the simplest set - implementation, GL_ARRAY_SET, and switch to a different implementation - later, when you realize which operations are performed the most frequently. - The API of the different implementations is exactly the same; when switching - to a different implementation, you only have to change the gl_set_create - call. - - The implementations are: - GL_ARRAY_SET a growable array - GL_LINKEDHASH_SET a hash table with a linked list - GL_HASH_SET a hash table - - The memory consumption is asymptotically the same: O(1) for every object - in the set. When looking more closely at the average memory consumed - for an object, GL_ARRAY_SET is the most compact representation, then comes - GL_HASH_SET, and GL_LINKEDHASH_SET needs the most memory. - - The guaranteed average performance of the operations is, for a set of - n elements: - - Operation ARRAY LINKEDHASH - HASH - - gl_set_size O(1) O(1) - gl_set_add O(n) O(1) - gl_set_remove O(n) O(1) - gl_set_search O(n) O(1) - gl_set_iterator O(1) O(1) - gl_set_iterator_next O(1) O(1) - */ - -/* --------------------------- gl_set_t Data Type --------------------------- */ - -/* Type of function used to compare two elements. - NULL denotes pointer comparison. */ -typedef bool (*gl_setelement_equals_fn) (const void *elt1, const void *elt2); - -/* Type of function used to compute a hash code. - NULL denotes a function that depends only on the pointer itself. */ -typedef size_t (*gl_setelement_hashcode_fn) (const void *elt); - -#ifndef _GL_SETELEMENT_DISPOSE_FN_DEFINED -/* Type of function used to dispose an element once it's removed from a set. - NULL denotes a no-op. */ -typedef void (*gl_setelement_dispose_fn) (const void *elt); -# define _GL_SETELEMENT_DISPOSE_FN_DEFINED 1 -#endif - -struct gl_set_impl; -/* Type representing an entire set. */ -typedef struct gl_set_impl * gl_set_t; - -struct gl_set_implementation; -/* Type representing a set datatype implementation. */ -typedef const struct gl_set_implementation * gl_set_implementation_t; - -#if 0 /* Unless otherwise specified, these are defined inline below. */ - -/* Creates an empty set. - IMPLEMENTATION is one of GL_ARRAY_SET, GL_LINKEDHASH_SET, GL_HASH_SET. - EQUALS_FN is an element comparison function or NULL. - HASHCODE_FN is an element hash code function or NULL. - DISPOSE_FN is an element disposal function or NULL. */ -/* declared in gl_xset.h */ -extern gl_set_t gl_set_create_empty (gl_set_implementation_t implementation, - gl_setelement_equals_fn equals_fn, - gl_setelement_hashcode_fn hashcode_fn, - gl_setelement_dispose_fn dispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_set_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_set_t gl_set_nx_create_empty (gl_set_implementation_t implementation, - gl_setelement_equals_fn equals_fn, - gl_setelement_hashcode_fn hashcode_fn, - gl_setelement_dispose_fn dispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_set_free, 1)*/; - -/* Returns the current number of elements in a set. */ -extern size_t gl_set_size (gl_set_t set); - -/* Searches whether an element is already in the set. - Returns true if found, or false if not present in the set. */ -extern bool gl_set_search (gl_set_t set, const void *elt); - -/* Adds an element to a set. - Returns true if it was not already in the set and added, false otherwise. */ -/* declared in gl_xset.h */ -extern bool gl_set_add (gl_set_t set, const void *elt); - -/* Likewise. Returns -1 upon out-of-memory. */ -_GL_ATTRIBUTE_NODISCARD -extern int gl_set_nx_add (gl_set_t set, const void *elt); - -/* Removes an element from a set. - Returns true if it was found and removed. */ -extern bool gl_set_remove (gl_set_t set, const void *elt); - -/* Frees an entire set. - (But this call does not free the elements of the set. It only invokes - the DISPOSE_FN on each of the elements of the set.) */ -extern void gl_set_free (gl_set_t set); - -#endif /* End of inline and gl_xset.h-defined functions. */ - -/* ---------------------- gl_set_iterator_t Data Type ---------------------- */ - -/* Functions for iterating through a set. - Note: Iterating through a set of type GL_HASH_SET returns the elements in an - unpredictable order. If you need a predictable order, use GL_LINKEDHASH_SET - instead of GL_HASH_SET. */ - -/* Type of an iterator that traverses a set. - This is a fixed-size struct, so that creation of an iterator doesn't need - memory allocation on the heap. */ -typedef struct -{ - /* For fast dispatch of gl_set_iterator_next. */ - const struct gl_set_implementation *vtable; - /* For detecting whether the last returned element was removed. */ - gl_set_t set; - size_t count; - /* Other, implementation-private fields. */ - void *p; void *q; - size_t i; size_t j; -} gl_set_iterator_t; - -#if 0 /* These are defined inline below. */ - -/* Creates an iterator traversing a set. - The set's contents must not be modified while the iterator is in use, - except for removing the last returned element. */ -extern gl_set_iterator_t gl_set_iterator (gl_set_t set); - -/* If there is a next element, stores the next element in *ELTP, advances the - iterator and returns true. Otherwise, returns false. */ -extern bool gl_set_iterator_next (gl_set_iterator_t *iterator, - const void **eltp); - -/* Frees an iterator. */ -extern void gl_set_iterator_free (gl_set_iterator_t *iterator); - -#endif /* End of inline functions. */ - -/* ------------------------ Implementation Details ------------------------ */ - -struct gl_set_implementation -{ - /* gl_set_t functions. */ - gl_set_t (*nx_create_empty) (gl_set_implementation_t implementation, - gl_setelement_equals_fn equals_fn, - gl_setelement_hashcode_fn hashcode_fn, - gl_setelement_dispose_fn dispose_fn); - size_t (*size) (gl_set_t set); - bool (*search) (gl_set_t set, const void *elt); - int (*nx_add) (gl_set_t set, const void *elt); - bool (*remove_elt) (gl_set_t set, const void *elt); - void (*set_free) (gl_set_t set); - /* gl_set_iterator_t functions. */ - gl_set_iterator_t (*iterator) (gl_set_t set); - bool (*iterator_next) (gl_set_iterator_t *iterator, const void **eltp); - void (*iterator_free) (gl_set_iterator_t *iterator); -}; - -struct gl_set_impl_base -{ - const struct gl_set_implementation *vtable; - gl_setelement_equals_fn equals_fn; - gl_setelement_dispose_fn dispose_fn; -}; - -/* Define all functions of this file as accesses to the - struct gl_set_implementation. */ - -GL_SET_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_set_free, 1)*/ -gl_set_t -gl_set_nx_create_empty (gl_set_implementation_t implementation, - gl_setelement_equals_fn equals_fn, - gl_setelement_hashcode_fn hashcode_fn, - gl_setelement_dispose_fn dispose_fn) -{ - return implementation->nx_create_empty (implementation, equals_fn, - hashcode_fn, dispose_fn); -} - -GL_SET_INLINE size_t -gl_set_size (gl_set_t set) -{ - return ((const struct gl_set_impl_base *) set)->vtable->size (set); -} - -GL_SET_INLINE bool -gl_set_search (gl_set_t set, const void *elt) -{ - return ((const struct gl_set_impl_base *) set)->vtable->search (set, elt); -} - -_GL_ATTRIBUTE_NODISCARD GL_SET_INLINE int -gl_set_nx_add (gl_set_t set, const void *elt) -{ - return ((const struct gl_set_impl_base *) set)->vtable->nx_add (set, elt); -} - -GL_SET_INLINE bool -gl_set_remove (gl_set_t set, const void *elt) -{ - return ((const struct gl_set_impl_base *) set)->vtable->remove_elt (set, elt); -} - -GL_SET_INLINE void -gl_set_free (gl_set_t set) -{ - ((const struct gl_set_impl_base *) set)->vtable->set_free (set); -} - -GL_SET_INLINE gl_set_iterator_t -gl_set_iterator (gl_set_t set) -{ - return ((const struct gl_set_impl_base *) set)->vtable->iterator (set); -} - -GL_SET_INLINE bool -gl_set_iterator_next (gl_set_iterator_t *iterator, const void **eltp) -{ - return iterator->vtable->iterator_next (iterator, eltp); -} - -GL_SET_INLINE void -gl_set_iterator_free (gl_set_iterator_t *iterator) -{ - iterator->vtable->iterator_free (iterator); -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_SET_H */ diff --git a/include/libgnulib/gl_set.hh b/include/libgnulib/gl_set.hh deleted file mode 100755 index de296fa..0000000 --- a/include/libgnulib/gl_set.hh +++ /dev/null @@ -1,153 +0,0 @@ -/* Abstract set data type as a C++ class. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_SET_HH -#define _GL_SET_HH - -#include "gl_set.h" -#include "gl_xset.h" - -#include /* because Gnulib's may '#define free ...' */ - -/* gl_Set is a C++ wrapper around the gl_set data type. - Its element type is 'ELTYPE *'. - - It is merely a pointer, not a smart pointer. In other words: - it does NOT do reference-counting, and the destructor does nothing. */ - -template class gl_Set; - -template -class gl_Set -{ -public: - // ------------------------------ Constructors ------------------------------ - - gl_Set () - : _ptr (NULL) - {} - - /* Creates an empty set. - IMPLEMENTATION is one of GL_ARRAY_SET, GL_LINKEDHASH_SET, GL_HASH_SET. - EQUALS_FN is an element comparison function or NULL. - HASHCODE_FN is an element hash code function or NULL. - DISPOSE_FN is an element disposal function or NULL. */ - gl_Set (gl_set_implementation_t implementation, - bool (*equals_fn) (ELTYPE * /*elt1*/, ELTYPE * /*elt2*/), - size_t (*hashcode_fn) (ELTYPE *), - void (*dispose_fn) (ELTYPE *)) - : _ptr (gl_set_create_empty (implementation, - reinterpret_cast(equals_fn), - reinterpret_cast(hashcode_fn), - reinterpret_cast(dispose_fn))) - {} - - /* Copy constructor. */ - gl_Set (const gl_Set& x) - { _ptr = x._ptr; } - - /* Assignment operator. */ - gl_Set& operator= (const gl_Set& x) - { _ptr = x._ptr; return *this; } - - // ------------------------------- Destructor ------------------------------- - - ~gl_Set () - { _ptr = NULL; } - - // ----------------------- Read-only member functions ----------------------- - - /* Returns the current number of elements in the set. */ - size_t size () const - { return gl_set_size (_ptr); } - - /* Searches whether an element is already in the set. - Returns true if found, or false if not present in the set. */ - bool search (ELTYPE * elt) const - { return gl_set_search (_ptr, elt); } - - // ----------------------- Modifying member functions ----------------------- - - /* Adds an element to the set. - Returns true if it was not already in the set and added, false otherwise. */ - bool add (ELTYPE * elt) - { return gl_set_add (_ptr, elt); } - - /* Removes an element from the set. - Returns true if it was found and removed. */ - bool remove (ELTYPE * elt) - { return gl_set_remove (_ptr, elt); } - - /* Frees the entire set. - (But this call does not free the elements of the set. It only invokes - the DISPOSE_FN on each of the elements of the set.) */ - void free () - { gl_set_free (_ptr); _ptr = NULL; } - - // ------------------------------ Private stuff ------------------------------ - -private: - gl_set_t _ptr; - -public: - // -------------------------------- Iterators -------------------------------- - // Only a forward iterator. - // Does not implement the STL operations (++, *, and != .end()), but a simpler - // interface that needs only one virtual function call per iteration instead - // of three. - - class iterator { - public: - - /* If there is a next element, stores the next element in ELT, advances the - iterator and returns true. Otherwise, returns false. */ - bool next (ELTYPE *& elt) - { - const void *next_elt; - bool has_next = gl_set_iterator_next (&_state, &next_elt); - if (has_next) - elt = static_cast(next_elt); - return has_next; - } - - ~iterator () - { gl_set_iterator_free (&_state); } - - #if defined __xlC__ || defined __HP_aCC || defined __SUNPRO_CC - public: - #else - private: - friend iterator gl_Set::begin (); - #endif - - iterator (gl_set_t ptr) - : _state (gl_set_iterator (ptr)) - {} - - private: - - gl_set_iterator_t _state; - }; - - /* Creates an iterator traversing the set. - The set's contents must not be modified while the iterator is in use, - except for removing the last returned element. */ - iterator begin () - { return iterator (_ptr); } -}; - -#endif /* _GL_SET_HH */ diff --git a/include/libgnulib/gl_sublist.h b/include/libgnulib/gl_sublist.h deleted file mode 100755 index 62ca62b..0000000 --- a/include/libgnulib/gl_sublist.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Sequential list data type backed by another list. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _GL_SUBLIST_H -#define _GL_SUBLIST_H - -#include "gl_list.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Creates a sublist of a given list. - This is the list of elements with indices i, start_index <= i < end_index. - The sublist is backed by the given list, which means: - - Modifications to the sublist affect the whole list. - - Modifications to the whole list are immediately visible in the sublist. - - The sublist is only valid as long as the whole list is valid. - - The sublist must not be passed to the gl_list_sortedlist_add() function. - */ -#if 0 /* declared in gl_xsublist.h */ -extern gl_list_t gl_sublist_create (gl_list_t whole_list, - size_t start_index, size_t end_index) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -#endif -/* Likewise. Returns NULL upon out-of-memory. */ -extern gl_list_t gl_sublist_nx_create (gl_list_t whole_list, - size_t start_index, size_t end_index) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/; - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_SUBLIST_H */ diff --git a/include/libgnulib/gl_xlist.h b/include/libgnulib/gl_xlist.h deleted file mode 100755 index 74dafb3..0000000 --- a/include/libgnulib/gl_xlist.h +++ /dev/null @@ -1,210 +0,0 @@ -/* Abstract sequential list data type, with out-of-memory checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - 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 3 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, see . */ - -#ifndef _GL_XLIST_H -#define _GL_XLIST_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "gl_list.h" -#include "xalloc.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XLIST_INLINE -# define GL_XLIST_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions are thin wrappers around the corresponding functions with - _nx_ infix from gl_list.h. Upon out-of-memory, they invoke xalloc_die (), - instead of returning an error indicator. */ -#if 0 /* These are defined inline below. */ -extern gl_list_t gl_list_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern gl_list_t gl_list_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) - /*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern void gl_list_node_set_value (gl_list_t list, gl_list_node_t node, - const void *elt); -extern gl_list_node_t gl_list_set_at (gl_list_t list, size_t position, - const void *elt); -extern gl_list_node_t gl_list_set_first (gl_list_t list, const void *elt); -extern gl_list_node_t gl_list_set_last (gl_list_t list, const void *elt); -extern gl_list_node_t gl_list_add_first (gl_list_t list, const void *elt); -extern gl_list_node_t gl_list_add_last (gl_list_t list, const void *elt); -extern gl_list_node_t gl_list_add_before (gl_list_t list, gl_list_node_t node, - const void *elt); -extern gl_list_node_t gl_list_add_after (gl_list_t list, gl_list_node_t node, - const void *elt); -extern gl_list_node_t gl_list_add_at (gl_list_t list, size_t position, - const void *elt); -extern gl_list_node_t gl_sortedlist_add (gl_list_t list, - gl_listelement_compar_fn compar, - const void *elt); -#endif - -GL_XLIST_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_list_t -gl_list_create_empty (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates) -{ - gl_list_t result = - gl_list_nx_create_empty (implementation, equals_fn, hashcode_fn, dispose_fn, - allow_duplicates); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_list_t -gl_list_create (gl_list_implementation_t implementation, - gl_listelement_equals_fn equals_fn, - gl_listelement_hashcode_fn hashcode_fn, - gl_listelement_dispose_fn dispose_fn, - bool allow_duplicates, - size_t count, const void **contents) -{ - gl_list_t result = - gl_list_nx_create (implementation, equals_fn, hashcode_fn, dispose_fn, - allow_duplicates, count, contents); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE void -gl_list_node_set_value (gl_list_t list, gl_list_node_t node, const void *elt) -{ - int result = gl_list_node_nx_set_value (list, node, elt); - if (result < 0) - xalloc_die (); -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_set_at (gl_list_t list, size_t position, const void *elt) -{ - gl_list_node_t result = gl_list_nx_set_at (list, position, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_set_first (gl_list_t list, const void *elt) -{ - gl_list_node_t result = gl_list_nx_set_first (list, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_set_last (gl_list_t list, const void *elt) -{ - gl_list_node_t result = gl_list_nx_set_last (list, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_add_first (gl_list_t list, const void *elt) -{ - gl_list_node_t result = gl_list_nx_add_first (list, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_add_last (gl_list_t list, const void *elt) -{ - gl_list_node_t result = gl_list_nx_add_last (list, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_add_before (gl_list_t list, gl_list_node_t node, const void *elt) -{ - gl_list_node_t result = gl_list_nx_add_before (list, node, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_add_after (gl_list_t list, gl_list_node_t node, const void *elt) -{ - gl_list_node_t result = gl_list_nx_add_after (list, node, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_list_add_at (gl_list_t list, size_t position, const void *elt) -{ - gl_list_node_t result = gl_list_nx_add_at (list, position, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XLIST_INLINE gl_list_node_t -gl_sortedlist_add (gl_list_t list, gl_listelement_compar_fn compar, - const void *elt) -{ - gl_list_node_t result = gl_sortedlist_nx_add (list, compar, elt); - if (result == NULL) - xalloc_die (); - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_XLIST_H */ diff --git a/include/libgnulib/gl_xmap.h b/include/libgnulib/gl_xmap.h deleted file mode 100755 index dc6889a..0000000 --- a/include/libgnulib/gl_xmap.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Abstract map data type, with out-of-memory checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_XMAP_H -#define _GL_XMAP_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "gl_map.h" -#include "xalloc.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XMAP_INLINE -# define GL_XMAP_INLINE _GL_INLINE -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions are thin wrappers around the corresponding functions with - _nx_ infix from gl_map.h. Upon out-of-memory, they invoke xalloc_die (), - instead of returning an error indicator. */ -#if 0 /* These are defined inline below. */ -extern gl_map_t gl_map_create_empty (gl_map_implementation_t implementation, - gl_mapkey_equals_fn equals_fn, - gl_mapkey_hashcode_fn hashcode_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_map_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern bool gl_map_put (gl_map_t map, const void *key, const void *value); -extern bool gl_map_getput (gl_map_t map, const void *key, const void *value, - const void **oldvaluep); -#endif - -GL_XMAP_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_map_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_map_t -gl_map_create_empty (gl_map_implementation_t implementation, - gl_mapkey_equals_fn equals_fn, - gl_mapkey_hashcode_fn hashcode_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) -{ - gl_map_t result = - gl_map_nx_create_empty (implementation, equals_fn, hashcode_fn, - kdispose_fn, vdispose_fn); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XMAP_INLINE bool -gl_map_put (gl_map_t map, const void *key, const void *value) -{ - int result = gl_map_nx_put (map, key, value); - if (result < 0) - xalloc_die (); - return result; -} - -GL_XMAP_INLINE bool -gl_map_getput (gl_map_t map, const void *key, const void *value, - const void **oldvaluep) -{ - int result = gl_map_nx_getput (map, key, value, oldvaluep); - if (result < 0) - xalloc_die (); - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_XMAP_H */ diff --git a/include/libgnulib/gl_xomap.h b/include/libgnulib/gl_xomap.h deleted file mode 100755 index 61c6811..0000000 --- a/include/libgnulib/gl_xomap.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Abstract ordered map data type, with out-of-memory checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - 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 3 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, see . */ - -#ifndef _GL_XOMAP_H -#define _GL_XOMAP_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "gl_omap.h" -#include "xalloc.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XOMAP_INLINE -# define GL_XOMAP_INLINE _GL_INLINE -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions are thin wrappers around the corresponding functions with - _nx_ infix from gl_omap.h. Upon out-of-memory, they invoke xalloc_die (), - instead of returning an error indicator. */ -#if 0 /* These are defined inline below. */ -extern gl_omap_t gl_omap_create_empty (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_omap_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern bool gl_omap_put (gl_omap_t map, const void *key, const void *value); -extern bool gl_omap_getput (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep); -#endif - -GL_XOMAP_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_omap_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_omap_t -gl_omap_create_empty (gl_omap_implementation_t implementation, - gl_mapkey_compar_fn compar_fn, - gl_mapkey_dispose_fn kdispose_fn, - gl_mapvalue_dispose_fn vdispose_fn) -{ - gl_omap_t result = - gl_omap_nx_create_empty (implementation, compar_fn, kdispose_fn, vdispose_fn); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XOMAP_INLINE bool -gl_omap_put (gl_omap_t map, const void *key, const void *value) -{ - int result = gl_omap_nx_put (map, key, value); - if (result < 0) - xalloc_die (); - return result; -} - -GL_XOMAP_INLINE bool -gl_omap_getput (gl_omap_t map, const void *key, const void *value, - const void **oldvaluep) -{ - int result = gl_omap_nx_getput (map, key, value, oldvaluep); - if (result < 0) - xalloc_die (); - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_XOMAP_H */ diff --git a/include/libgnulib/gl_xoset.h b/include/libgnulib/gl_xoset.h deleted file mode 100755 index 454463d..0000000 --- a/include/libgnulib/gl_xoset.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Abstract ordered set data type, with out-of-memory checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - 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 3 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, see . */ - -#ifndef _GL_XOSET_H -#define _GL_XOSET_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "gl_oset.h" -#include "xalloc.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XOSET_INLINE -# define GL_XOSET_INLINE _GL_INLINE -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions are thin wrappers around the corresponding functions with - _nx_ infix from gl_oset.h. Upon out-of-memory, they invoke xalloc_die (), - instead of returning an error indicator. */ -#if 0 /* These are defined inline below. */ -extern gl_oset_t gl_oset_create_empty (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_oset_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern bool gl_oset_add (gl_oset_t set, const void *elt); -#endif - -GL_XOSET_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_oset_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_oset_t -gl_oset_create_empty (gl_oset_implementation_t implementation, - gl_setelement_compar_fn compar_fn, - gl_setelement_dispose_fn dispose_fn) -{ - gl_oset_t result = - gl_oset_nx_create_empty (implementation, compar_fn, dispose_fn); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XOSET_INLINE bool -gl_oset_add (gl_oset_t set, const void *elt) -{ - int result = gl_oset_nx_add (set, elt); - if (result < 0) - xalloc_die (); - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_XOSET_H */ diff --git a/include/libgnulib/gl_xset.h b/include/libgnulib/gl_xset.h deleted file mode 100755 index 697c73b..0000000 --- a/include/libgnulib/gl_xset.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Abstract set data type, with out-of-memory checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - 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 3 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, see . */ - -#ifndef _GL_XSET_H -#define _GL_XSET_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "gl_set.h" -#include "xalloc.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XSET_INLINE -# define GL_XSET_INLINE _GL_INLINE -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions are thin wrappers around the corresponding functions with - _nx_ infix from gl_set.h. Upon out-of-memory, they invoke xalloc_die (), - instead of returning an error indicator. */ -#if 0 /* These are defined inline below. */ -extern gl_set_t gl_set_create_empty (gl_set_implementation_t implementation, - gl_setelement_equals_fn equals_fn, - gl_setelement_hashcode_fn hashcode_fn, - gl_setelement_dispose_fn dispose_fn) - /*_GL_ATTRIBUTE_DEALLOC (gl_set_free, 1)*/ - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern bool gl_set_add (gl_set_t set, const void *elt); -#endif - -GL_XSET_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_set_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_set_t -gl_set_create_empty (gl_set_implementation_t implementation, - gl_setelement_equals_fn equals_fn, - gl_setelement_hashcode_fn hashcode_fn, - gl_setelement_dispose_fn dispose_fn) -{ - gl_set_t result = - gl_set_nx_create_empty (implementation, equals_fn, hashcode_fn, dispose_fn); - if (result == NULL) - xalloc_die (); - return result; -} - -GL_XSET_INLINE bool -gl_set_add (gl_set_t set, const void *elt) -{ - int result = gl_set_nx_add (set, elt); - if (result < 0) - xalloc_die (); - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_XSET_H */ diff --git a/include/libgnulib/gl_xsublist.h b/include/libgnulib/gl_xsublist.h deleted file mode 100755 index 86170c9..0000000 --- a/include/libgnulib/gl_xsublist.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Sequential list data type backed by another list, with out-of-memory - checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - 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 3 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, see . */ - -#ifndef _GL_XSUBLIST_H -#define _GL_XSUBLIST_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "gl_sublist.h" -#include "xalloc.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XSUBLIST_INLINE -# define GL_XSUBLIST_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions are thin wrappers around the corresponding functions with - _nx_ infix from gl_sublist.h. Upon out-of-memory, they invoke - xalloc_die (), instead of returning an error indicator. */ -GL_XSUBLIST_INLINE -/*_GL_ATTRIBUTE_DEALLOC (gl_list_free, 1)*/ -_GL_ATTRIBUTE_RETURNS_NONNULL -gl_list_t -gl_sublist_create (gl_list_t whole_list, size_t start_index, size_t end_index) -{ - gl_list_t result = gl_sublist_nx_create (whole_list, start_index, end_index); - if (result == NULL) - xalloc_die (); - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_XSUBLIST_H */ diff --git a/include/libgnulib/glob-libc.h b/include/libgnulib/glob-libc.h deleted file mode 100755 index b719bfd..0000000 --- a/include/libgnulib/glob-libc.h +++ /dev/null @@ -1,195 +0,0 @@ -/* Copyright (C) 1991-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _GLOB_H -#define _GLOB_H 1 - -#ifndef __GLOB_GNULIB -# include -#endif - -__BEGIN_DECLS - -#define __need_size_t -#include - -/* Bits set in the FLAGS argument to 'glob'. */ -#define GLOB_ERR (1 << 0)/* Return on read errors. */ -#define GLOB_MARK (1 << 1)/* Append a slash to each name. */ -#define GLOB_NOSORT (1 << 2)/* Don't sort the names. */ -#define GLOB_DOOFFS (1 << 3)/* Insert PGLOB->gl_offs NULLs. */ -#define GLOB_NOCHECK (1 << 4)/* If nothing matches, return the pattern. */ -#define GLOB_APPEND (1 << 5)/* Append to results of a previous call. */ -#define GLOB_NOESCAPE (1 << 6)/* Backslashes don't quote metacharacters. */ -#define GLOB_PERIOD (1 << 7)/* Leading '.' can be matched by metachars. */ - -#if !defined __USE_POSIX2 || defined __USE_MISC -# define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ -# define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */ -# define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */ -# define GLOB_NOMAGIC (1 << 11)/* If no magic chars, return the pattern. */ -# define GLOB_TILDE (1 << 12)/* Expand ~user and ~ to home directories. */ -# define GLOB_ONLYDIR (1 << 13)/* Match only directories. */ -# define GLOB_TILDE_CHECK (1 << 14)/* Like GLOB_TILDE but return an error - if the user name is not available. */ -# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS \ - |GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND \ - |GLOB_PERIOD|GLOB_ALTDIRFUNC|GLOB_BRACE \ - |GLOB_NOMAGIC|GLOB_TILDE|GLOB_ONLYDIR|GLOB_TILDE_CHECK) -#else -# define __GLOB_FLAGS (GLOB_ERR|GLOB_MARK|GLOB_NOSORT|GLOB_DOOFFS \ - |GLOB_NOESCAPE|GLOB_NOCHECK|GLOB_APPEND \ - |GLOB_PERIOD) -#endif - -/* Error returns from 'glob'. */ -#define GLOB_NOSPACE 1 /* Ran out of memory. */ -#define GLOB_ABORTED 2 /* Read error. */ -#define GLOB_NOMATCH 3 /* No matches found. */ -#define GLOB_NOSYS 4 /* Not implemented. */ -#ifdef __USE_GNU -/* Previous versions of this file defined GLOB_ABEND instead of - GLOB_ABORTED. Provide a compatibility definition here. */ -# define GLOB_ABEND GLOB_ABORTED -#endif - -/* Structure describing a globbing run. */ -#ifdef __USE_GNU -struct stat; -#endif -typedef struct - { - size_t gl_pathc; /* Count of paths matched by the pattern. */ - char **gl_pathv; /* List of matched pathnames. */ - size_t gl_offs; /* Slots to reserve in 'gl_pathv'. */ - int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */ - - /* If the GLOB_ALTDIRFUNC flag is set, the following functions - are used instead of the normal file access functions. */ - void (*gl_closedir) (void *); -#ifdef __USE_GNU - struct dirent *(*gl_readdir) (void *); -#else - void *(*gl_readdir) (void *); -#endif - void *(*gl_opendir) (const char *); -#ifdef __USE_GNU - int (*gl_lstat) (const char *__restrict, struct stat *__restrict); - int (*gl_stat) (const char *__restrict, struct stat *__restrict); -#else - int (*gl_lstat) (const char *__restrict, void *__restrict); - int (*gl_stat) (const char *__restrict, void *__restrict); -#endif - } glob_t; - -#ifdef __USE_LARGEFILE64 -# ifdef __USE_GNU -struct stat64; -# endif -typedef struct - { - size_t gl_pathc; - char **gl_pathv; - size_t gl_offs; - int gl_flags; - - /* If the GLOB_ALTDIRFUNC flag is set, the following functions - are used instead of the normal file access functions. */ - void (*gl_closedir) (void *); -# ifdef __USE_GNU - struct dirent64 *(*gl_readdir) (void *); -# else - void *(*gl_readdir) (void *); -# endif - void *(*gl_opendir) (const char *); -# ifdef __USE_GNU - int (*gl_lstat) (const char *__restrict, struct stat64 *__restrict); - int (*gl_stat) (const char *__restrict, struct stat64 *__restrict); -# else - int (*gl_lstat) (const char *__restrict, void *__restrict); - int (*gl_stat) (const char *__restrict, void *__restrict); -# endif - } glob64_t; -#endif - -/* Do glob searching for PATTERN, placing results in PGLOB. - The bits defined above may be set in FLAGS. - If a directory cannot be opened or read and ERRFUNC is not nil, - it is called with the pathname that caused the error, and the - 'errno' value from the failing call; if it returns non-zero - 'glob' returns GLOB_ABEND; if it returns zero, the error is ignored. - If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. - Otherwise, 'glob' returns zero. */ -#if !defined __USE_FILE_OFFSET64 || defined __GLOB_GNULIB -extern int glob (const char *__restrict __pattern, int __flags, - int (*__errfunc) (const char *, int), - glob_t *__restrict __pglob) __THROWNL; - -/* Free storage allocated in PGLOB by a previous 'glob' call. */ -extern void globfree (glob_t *__pglob) __THROW; -#else -# ifdef __USE_TIME_BITS64 -extern int __REDIRECT_NTHNL (glob, (const char *__restrict __pattern, - int __flags, - int (*__errfunc) (const char *, int), - glob_t *__restrict __pglob), - __glob64_time64); - -extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), - __globfree64_time64); -# else -extern int __REDIRECT_NTHNL (glob, (const char *__restrict __pattern, - int __flags, - int (*__errfunc) (const char *, int), - glob_t *__restrict __pglob), glob64); - -extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64); -# endif -#endif - -#ifdef __USE_LARGEFILE64 -# ifdef __USE_TIME_BITS64 -extern int __REDIRECT_NTHNL (glob64, (const char *__restrict __pattern, - int __flags, - int (*__errfunc) (const char *, int), - glob64_t *__restrict __pglob), - __glob64_time64); - -extern void __REDIRECT_NTH (globfree64, (glob64_t *__pglob), - __globfree64_time64); -# else -extern int glob64 (const char *__restrict __pattern, int __flags, - int (*__errfunc) (const char *, int), - glob64_t *__restrict __pglob) __THROWNL; - -extern void globfree64 (glob64_t *__pglob) __THROW; -# endif -#endif - - -#ifdef __USE_GNU -/* Return nonzero if PATTERN contains any metacharacters. - Metacharacters can be quoted with backslashes if QUOTE is nonzero. - - This function is not part of the interface specified by POSIX - but several programs want to use it. */ -extern int glob_pattern_p (const char *__pattern, int __quote) __THROW; -#endif - -__END_DECLS - -#endif /* glob.h */ diff --git a/include/libgnulib/glob_internal.h b/include/libgnulib/glob_internal.h deleted file mode 100755 index f66ad47..0000000 --- a/include/libgnulib/glob_internal.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Shared definition for glob and glob_pattern_p. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef GLOB_INTERNAL_H -# define GLOB_INTERNAL_H - -enum -{ - GLOBPAT_NONE = 0x0, - GLOBPAT_SPECIAL = 0x1, - GLOBPAT_BACKSLASH = 0x2, - GLOBPAT_BRACKET = 0x4 -}; - -static inline int -__glob_pattern_type (const char *pattern, int quote) -{ - const char *p; - int ret = GLOBPAT_NONE; - - for (p = pattern; *p != '\0'; ++p) - switch (*p) - { - case '?': - case '*': - return GLOBPAT_SPECIAL; - - case '\\': - if (quote) - { - if (p[1] != '\0') - ++p; - ret |= GLOBPAT_BACKSLASH; - } - break; - - case '[': - ret |= GLOBPAT_BRACKET; - break; - - case ']': - if (ret & 4) - return GLOBPAT_SPECIAL; - break; - } - - return ret; -} - -#endif /* GLOB_INTERNAL_H */ diff --git a/include/libgnulib/glthread/cond.h b/include/libgnulib/glthread/cond.h deleted file mode 100755 index 0f55f9f..0000000 --- a/include/libgnulib/glthread/cond.h +++ /dev/null @@ -1,344 +0,0 @@ -/* Condition variables for multithreading. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Yoann Vandoorselaere , 2008. - Based on Bruno Haible lock.h */ - -/* - Condition variables can be used for waiting until a condition - becomes true. In this respect, they are similar to wait queues. But - contrary to wait queues, condition variables have different - semantics that allows events to be lost when there is no thread - waiting for them. - - Condition variable: - Type: gl_cond_t - Declaration: gl_cond_define(extern, name) - Initializer: gl_cond_define_initialized(, name) - Initialization: gl_cond_init (name); - Waiting: gl_cond_wait (name, lock); - Timed wait: bool timedout = gl_cond_timedwait (name, lock, abstime); - where lock is a gl_lock_t variable (cf. ) - Signaling: gl_cond_signal (name); - Broadcasting: gl_cond_broadcast (name); - De-initialization: gl_cond_destroy (name); - Equivalent functions with control of error handling: - Initialization: err = glthread_cond_init (&name); - Waiting: err = glthread_cond_wait (&name); - Timed wait: err = glthread_cond_timedwait (&name, &lock, abstime); - Signaling: err = glthread_cond_signal (&name); - Broadcasting: err = glthread_cond_broadcast (&name); - De-initialization: err = glthread_cond_destroy (&name); -*/ - - -#ifndef _GLTHREAD_COND_H -#define _GLTHREAD_COND_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, HAVE_THREADS_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include - -#include "glthread/lock.h" - -#if !defined c11_threads_in_use -# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC -# define c11_threads_in_use() 1 -# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef _GLTHREAD_COND_INLINE -# define _GLTHREAD_COND_INLINE _GL_INLINE -#endif - -/* ========================================================================= */ - -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_cond_t datatype -------------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - cnd_t condition; - } - gl_cond_t; -# define gl_cond_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_cond_t NAME; -# define gl_cond_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_cond_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_cond_init (&(NAME))) \ - abort (); \ - } -extern int glthread_cond_init (gl_cond_t *condition); -extern int glthread_cond_wait (gl_cond_t *condition, gl_lock_t *lock); -extern int glthread_cond_timedwait (gl_cond_t *condition, gl_lock_t *lock, - const struct timespec *abstime); -extern int glthread_cond_signal (gl_cond_t *condition); -extern int glthread_cond_broadcast (gl_cond_t *condition); -extern int glthread_cond_destroy (gl_cond_t *condition); - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_POSIX_THREADS - -/* Use the POSIX threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# if PTHREAD_IN_USE_DETECTION_HARD - -/* The pthread_in_use() detection needs to be done at runtime. */ -# define pthread_in_use() \ - glthread_in_use () -extern int glthread_in_use (void); - -# endif - -# if USE_POSIX_THREADS_WEAK - -/* Use weak references to the POSIX threads library. */ - -/* Weak references avoid dragging in external libraries if the other parts - of the program don't use them. Here we use them, because we don't want - every program that uses libintl to depend on libpthread. This assumes - that libpthread would not be loaded after libintl; i.e. if libintl is - loaded first, by an executable that does not depend on libpthread, and - then a module is dynamically loaded that depends on libpthread, libintl - will not be multithread-safe. */ - -/* The way to test at runtime whether libpthread is present is to test - whether a function pointer's value, such as &pthread_mutex_init, is - non-NULL. However, some versions of GCC have a bug through which, in - PIC mode, &foo != NULL always evaluates to true if there is a direct - call to foo(...) in the same function. To avoid this, we test the - address of a function in libpthread that we don't use. */ - -# pragma weak pthread_cond_init -# pragma weak pthread_cond_wait -# pragma weak pthread_cond_timedwait -# pragma weak pthread_cond_signal -# pragma weak pthread_cond_broadcast -# pragma weak pthread_cond_destroy -# ifndef pthread_self -# pragma weak pthread_self -# endif - -# if !PTHREAD_IN_USE_DETECTION_HARD -# pragma weak pthread_mutexattr_gettype -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) -# endif - -# else - -# if !PTHREAD_IN_USE_DETECTION_HARD -# define pthread_in_use() 1 -# endif - -# endif - -/* -------------------------- gl_cond_t datatype -------------------------- */ - -typedef pthread_cond_t gl_cond_t; -# define gl_cond_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_cond_t NAME; -# define gl_cond_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_cond_t NAME = gl_cond_initializer; -# define gl_cond_initializer \ - PTHREAD_COND_INITIALIZER -# define glthread_cond_init(COND) \ - (pthread_in_use () ? pthread_cond_init (COND, NULL) : 0) -# define glthread_cond_wait(COND, LOCK) \ - (pthread_in_use () ? pthread_cond_wait (COND, LOCK) : 0) -# define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ - (pthread_in_use () ? pthread_cond_timedwait (COND, LOCK, ABSTIME) : 0) -# define glthread_cond_signal(COND) \ - (pthread_in_use () ? pthread_cond_signal (COND) : 0) -# define glthread_cond_broadcast(COND) \ - (pthread_in_use () ? pthread_cond_broadcast (COND) : 0) -# define glthread_cond_destroy(COND) \ - (pthread_in_use () ? pthread_cond_destroy (COND) : 0) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_WINDOWS_THREADS - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-cond.h" - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_cond_t datatype -------------------------- */ - -typedef glwthread_cond_t gl_cond_t; -# define gl_cond_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_cond_t NAME; -# define gl_cond_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_cond_t NAME = gl_cond_initializer; -# define gl_cond_initializer \ - GLWTHREAD_COND_INIT -# define glthread_cond_init(COND) \ - glwthread_cond_init (COND) -# define glthread_cond_wait(COND, LOCK) \ - glwthread_cond_wait (COND, LOCK, \ - (int (*) (void *)) glwthread_mutex_lock, \ - (int (*) (void *)) glwthread_mutex_unlock) -# define glthread_cond_timedwait(COND, LOCK, ABSTIME) \ - glwthread_cond_timedwait (COND, LOCK, \ - (int (*) (void *)) glwthread_mutex_lock, \ - (int (*) (void *)) glwthread_mutex_unlock, \ - ABSTIME) -# define glthread_cond_signal(COND) \ - glwthread_cond_signal (COND) -# define glthread_cond_broadcast(COND) \ - glwthread_cond_broadcast (COND) -# define glthread_cond_destroy(COND) \ - glwthread_cond_destroy (COND) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) - -/* Provide dummy implementation if threads are not supported. */ - -typedef int gl_cond_t; -# define gl_cond_define(STORAGECLASS, NAME) -# define gl_cond_define_initialized(STORAGECLASS, NAME) -# define glthread_cond_init(COND) 0 -# define glthread_cond_wait(COND, LOCK) 0 -# define glthread_cond_timedwait(COND, LOCK, ABSTIME) 0 -# define glthread_cond_signal(COND) 0 -# define glthread_cond_broadcast(COND) 0 -# define glthread_cond_destroy(COND) 0 - -#endif - -/* ========================================================================= */ - -/* Macros with built-in error handling. */ - -#ifdef __cplusplus -extern "C" { -#endif - -#define gl_cond_init(COND) \ - do \ - { \ - if (glthread_cond_init (&COND)) \ - abort (); \ - } \ - while (0) -#define gl_cond_wait(COND, LOCK) \ - do \ - { \ - if (glthread_cond_wait (&COND, &LOCK)) \ - abort (); \ - } \ - while (0) -#define gl_cond_timedwait(COND, LOCK, ABSTIME) \ - gl_cond_timedwait_func (&COND, &LOCK, ABSTIME) -_GLTHREAD_COND_INLINE bool -gl_cond_timedwait_func (gl_cond_t *cond, gl_lock_t *lock, struct timespec *abstime) -{ - int err = glthread_cond_timedwait (cond, lock, abstime); - if (err == ETIMEDOUT) - return true; - if (err != 0) - abort (); - return false; -} -#define gl_cond_signal(COND) \ - do \ - { \ - if (glthread_cond_signal (&COND)) \ - abort (); \ - } \ - while (0) -#define gl_cond_broadcast(COND) \ - do \ - { \ - if (glthread_cond_broadcast (&COND)) \ - abort (); \ - } \ - while (0) -#define gl_cond_destroy(COND) \ - do \ - { \ - if (glthread_cond_destroy (&COND)) \ - abort (); \ - } \ - while (0) - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GLTHREAD_COND_H */ diff --git a/include/libgnulib/glthread/lock.h b/include/libgnulib/glthread/lock.h deleted file mode 100755 index 2b9c0f2..0000000 --- a/include/libgnulib/glthread/lock.h +++ /dev/null @@ -1,656 +0,0 @@ -/* Locking in multithreaded situations. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */ - -/* This file contains locking primitives for use with a given thread library. - It does not contain primitives for creating threads or for other - synchronization primitives. - - Normal (non-recursive) locks: - Type: gl_lock_t - Declaration: gl_lock_define(extern, name) - Initializer: gl_lock_define_initialized(, name) - Initialization: gl_lock_init (name); - Taking the lock: gl_lock_lock (name); - Releasing the lock: gl_lock_unlock (name); - De-initialization: gl_lock_destroy (name); - Equivalent functions with control of error handling: - Initialization: err = glthread_lock_init (&name); - Taking the lock: err = glthread_lock_lock (&name); - Releasing the lock: err = glthread_lock_unlock (&name); - De-initialization: err = glthread_lock_destroy (&name); - - Read-Write (non-recursive) locks: - Type: gl_rwlock_t - Declaration: gl_rwlock_define(extern, name) - Initializer: gl_rwlock_define_initialized(, name) - Initialization: gl_rwlock_init (name); - Taking the lock: gl_rwlock_rdlock (name); - gl_rwlock_wrlock (name); - Releasing the lock: gl_rwlock_unlock (name); - De-initialization: gl_rwlock_destroy (name); - Equivalent functions with control of error handling: - Initialization: err = glthread_rwlock_init (&name); - Taking the lock: err = glthread_rwlock_rdlock (&name); - err = glthread_rwlock_wrlock (&name); - Releasing the lock: err = glthread_rwlock_unlock (&name); - De-initialization: err = glthread_rwlock_destroy (&name); - - Recursive locks: - Type: gl_recursive_lock_t - Declaration: gl_recursive_lock_define(extern, name) - Initializer: gl_recursive_lock_define_initialized(, name) - Initialization: gl_recursive_lock_init (name); - Taking the lock: gl_recursive_lock_lock (name); - Releasing the lock: gl_recursive_lock_unlock (name); - De-initialization: gl_recursive_lock_destroy (name); - Equivalent functions with control of error handling: - Initialization: err = glthread_recursive_lock_init (&name); - Taking the lock: err = glthread_recursive_lock_lock (&name); - Releasing the lock: err = glthread_recursive_lock_unlock (&name); - De-initialization: err = glthread_recursive_lock_destroy (&name); -*/ - - -#ifndef _LOCK_H -#define _LOCK_H - -/* This file uses HAVE_THREADS_H, HAVE_PTHREAD_RWLOCK, - HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER, - PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP, - HAVE_PTHREAD_MUTEX_RECURSIVE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#include "glthread/once.h" - -/* c11_threads_in_use() is defined in glthread/once.h. */ - -/* ========================================================================= */ - -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - mtx_t mutex; - } - gl_lock_t; -# define gl_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_lock_t NAME; -# define gl_lock_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_lock_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_lock_init (&(NAME))) \ - abort (); \ - } -extern int glthread_lock_init (gl_lock_t *lock); -extern int glthread_lock_lock (gl_lock_t *lock); -extern int glthread_lock_unlock (gl_lock_t *lock); -extern int glthread_lock_destroy (gl_lock_t *lock); - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - mtx_t lock; /* protects the remaining fields */ - cnd_t waiting_readers; /* waiting readers */ - cnd_t waiting_writers; /* waiting writers */ - unsigned int waiting_writers_count; /* number of waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME; -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_rwlock_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_rwlock_init (&(NAME))) \ - abort (); \ - } -extern int glthread_rwlock_init (gl_rwlock_t *lock); -extern int glthread_rwlock_rdlock (gl_rwlock_t *lock); -extern int glthread_rwlock_wrlock (gl_rwlock_t *lock); -extern int glthread_rwlock_unlock (gl_rwlock_t *lock); -extern int glthread_rwlock_destroy (gl_rwlock_t *lock); - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -typedef struct - { - int volatile init_needed; - once_flag init_once; - void (*init_func) (void); - mtx_t mutex; - } - gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME; -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ - static void _atomic_init_##NAME (void); \ - STORAGECLASS gl_recursive_lock_t NAME = \ - { 1, ONCE_FLAG_INIT, _atomic_init_##NAME }; \ - static void _atomic_init_##NAME (void) \ - { \ - if (glthread_recursive_lock_init (&(NAME))) \ - abort (); \ - } -extern int glthread_recursive_lock_init (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_lock (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_unlock (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_destroy (gl_recursive_lock_t *lock); - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_POSIX_THREADS - -/* Use the POSIX threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* pthread_in_use() is defined in glthread/once.h. */ - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -typedef pthread_mutex_t gl_lock_t; -# define gl_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS pthread_mutex_t NAME; -# define gl_lock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer; -# define gl_lock_initializer \ - PTHREAD_MUTEX_INITIALIZER -# define glthread_lock_init(LOCK) \ - (pthread_in_use () ? pthread_mutex_init (LOCK, NULL) : 0) -# define glthread_lock_lock(LOCK) \ - (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) -# define glthread_lock_unlock(LOCK) \ - (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) -# define glthread_lock_destroy(LOCK) \ - (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -# if HAVE_PTHREAD_RWLOCK && (HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER || (defined PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP && (__GNU_LIBRARY__ > 1))) - -# if defined PTHREAD_RWLOCK_INITIALIZER || defined PTHREAD_RWLOCK_INITIALIZER_NP - -typedef pthread_rwlock_t gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) \ - STORAGECLASS pthread_rwlock_t NAME; -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; -# if HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER -# if defined PTHREAD_RWLOCK_INITIALIZER -# define gl_rwlock_initializer \ - PTHREAD_RWLOCK_INITIALIZER -# else -# define gl_rwlock_initializer \ - PTHREAD_RWLOCK_INITIALIZER_NP -# endif -# define glthread_rwlock_init(LOCK) \ - (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) -# else /* glibc with bug https://sourceware.org/bugzilla/show_bug.cgi?id=13701 */ -# define gl_rwlock_initializer \ - PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP -# define glthread_rwlock_init(LOCK) \ - (pthread_in_use () ? glthread_rwlock_init_for_glibc (LOCK) : 0) -extern int glthread_rwlock_init_for_glibc (pthread_rwlock_t *lock); -# endif -# define glthread_rwlock_rdlock(LOCK) \ - (pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0) -# define glthread_rwlock_wrlock(LOCK) \ - (pthread_in_use () ? pthread_rwlock_wrlock (LOCK) : 0) -# define glthread_rwlock_unlock(LOCK) \ - (pthread_in_use () ? pthread_rwlock_unlock (LOCK) : 0) -# define glthread_rwlock_destroy(LOCK) \ - (pthread_in_use () ? pthread_rwlock_destroy (LOCK) : 0) - -# else - -typedef struct - { - int initialized; - pthread_mutex_t guard; /* protects the initialization */ - pthread_rwlock_t rwlock; /* read-write lock */ - } - gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME; -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; -# define gl_rwlock_initializer \ - { 0, PTHREAD_MUTEX_INITIALIZER } -# define glthread_rwlock_init(LOCK) \ - (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) -# define glthread_rwlock_rdlock(LOCK) \ - (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) -# define glthread_rwlock_wrlock(LOCK) \ - (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) -# define glthread_rwlock_unlock(LOCK) \ - (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) -# define glthread_rwlock_destroy(LOCK) \ - (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) -extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); - -# endif - -# else - -typedef struct - { - pthread_mutex_t lock; /* protects the remaining fields */ - pthread_cond_t waiting_readers; /* waiting readers */ - pthread_cond_t waiting_writers; /* waiting writers */ - unsigned int waiting_writers_count; /* number of waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME; -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; -# define gl_rwlock_initializer \ - { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } -# define glthread_rwlock_init(LOCK) \ - (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) -# define glthread_rwlock_rdlock(LOCK) \ - (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) -# define glthread_rwlock_wrlock(LOCK) \ - (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) -# define glthread_rwlock_unlock(LOCK) \ - (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) -# define glthread_rwlock_destroy(LOCK) \ - (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) -extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); -extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); - -# endif - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -# if HAVE_PTHREAD_MUTEX_RECURSIVE - -# if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP - -typedef pthread_mutex_t gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS pthread_mutex_t NAME; -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer; -# ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER -# define gl_recursive_lock_initializer \ - PTHREAD_RECURSIVE_MUTEX_INITIALIZER -# else -# define gl_recursive_lock_initializer \ - PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP -# endif -# define glthread_recursive_lock_init(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_lock(LOCK) \ - (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) -# define glthread_recursive_lock_unlock(LOCK) \ - (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) -# define glthread_recursive_lock_destroy(LOCK) \ - (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) -extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); - -# else - -typedef struct - { - pthread_mutex_t recmutex; /* recursive mutex */ - pthread_mutex_t guard; /* protects the initialization */ - int initialized; - } - gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME; -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; -# define gl_recursive_lock_initializer \ - { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 } -# define glthread_recursive_lock_init(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_lock(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_unlock(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_destroy(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) -extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); - -# endif - -# else - -/* Old versions of POSIX threads on Solaris did not have recursive locks. - We have to implement them ourselves. */ - -typedef struct - { - pthread_mutex_t mutex; - pthread_t owner; - unsigned long depth; - } - gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME; -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; -# define gl_recursive_lock_initializer \ - { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 } -# define glthread_recursive_lock_init(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_lock(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_unlock(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) -# define glthread_recursive_lock_destroy(LOCK) \ - (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) -extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); -extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); - -# endif - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_WINDOWS_THREADS - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-mutex.h" -# include "windows-rwlock.h" -# include "windows-recmutex.h" - -# ifdef __cplusplus -extern "C" { -# endif - -/* We can use CRITICAL_SECTION directly, rather than the native Windows Event, - Mutex, Semaphore types, because - - we need only to synchronize inside a single process (address space), - not inter-process locking, - - we don't need to support trylock operations. (TryEnterCriticalSection - does not work on Windows 95/98/ME. Packages that need trylock usually - define their own mutex type.) */ - -/* There is no way to statically initialize a CRITICAL_SECTION. It needs - to be done lazily, once only. For this we need spinlocks. */ - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -typedef glwthread_mutex_t gl_lock_t; -# define gl_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_lock_t NAME; -# define gl_lock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_lock_t NAME = gl_lock_initializer; -# define gl_lock_initializer \ - GLWTHREAD_MUTEX_INIT -# define glthread_lock_init(LOCK) \ - (glwthread_mutex_init (LOCK), 0) -# define glthread_lock_lock(LOCK) \ - glwthread_mutex_lock (LOCK) -# define glthread_lock_unlock(LOCK) \ - glwthread_mutex_unlock (LOCK) -# define glthread_lock_destroy(LOCK) \ - glwthread_mutex_destroy (LOCK) - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -typedef glwthread_rwlock_t gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME; -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; -# define gl_rwlock_initializer \ - GLWTHREAD_RWLOCK_INIT -# define glthread_rwlock_init(LOCK) \ - (glwthread_rwlock_init (LOCK), 0) -# define glthread_rwlock_rdlock(LOCK) \ - glwthread_rwlock_rdlock (LOCK) -# define glthread_rwlock_wrlock(LOCK) \ - glwthread_rwlock_wrlock (LOCK) -# define glthread_rwlock_unlock(LOCK) \ - glwthread_rwlock_unlock (LOCK) -# define glthread_rwlock_destroy(LOCK) \ - glwthread_rwlock_destroy (LOCK) - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -typedef glwthread_recmutex_t gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME; -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ - STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; -# define gl_recursive_lock_initializer \ - GLWTHREAD_RECMUTEX_INIT -# define glthread_recursive_lock_init(LOCK) \ - (glwthread_recmutex_init (LOCK), 0) -# define glthread_recursive_lock_lock(LOCK) \ - glwthread_recmutex_lock (LOCK) -# define glthread_recursive_lock_unlock(LOCK) \ - glwthread_recmutex_unlock (LOCK) -# define glthread_recursive_lock_destroy(LOCK) \ - glwthread_recmutex_destroy (LOCK) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) - -/* Provide dummy implementation if threads are not supported. */ - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -typedef int gl_lock_t; -# define gl_lock_define(STORAGECLASS, NAME) -# define gl_lock_define_initialized(STORAGECLASS, NAME) -# define glthread_lock_init(NAME) 0 -# define glthread_lock_lock(NAME) 0 -# define glthread_lock_unlock(NAME) 0 -# define glthread_lock_destroy(NAME) 0 - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -typedef int gl_rwlock_t; -# define gl_rwlock_define(STORAGECLASS, NAME) -# define gl_rwlock_define_initialized(STORAGECLASS, NAME) -# define glthread_rwlock_init(NAME) 0 -# define glthread_rwlock_rdlock(NAME) 0 -# define glthread_rwlock_wrlock(NAME) 0 -# define glthread_rwlock_unlock(NAME) 0 -# define glthread_rwlock_destroy(NAME) 0 - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -typedef int gl_recursive_lock_t; -# define gl_recursive_lock_define(STORAGECLASS, NAME) -# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) -# define glthread_recursive_lock_init(NAME) 0 -# define glthread_recursive_lock_lock(NAME) 0 -# define glthread_recursive_lock_unlock(NAME) 0 -# define glthread_recursive_lock_destroy(NAME) 0 - -#endif - -/* ========================================================================= */ - -/* Macros with built-in error handling. */ - -/* -------------------------- gl_lock_t datatype -------------------------- */ - -#define gl_lock_init(NAME) \ - do \ - { \ - if (glthread_lock_init (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_lock_lock(NAME) \ - do \ - { \ - if (glthread_lock_lock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_lock_unlock(NAME) \ - do \ - { \ - if (glthread_lock_unlock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_lock_destroy(NAME) \ - do \ - { \ - if (glthread_lock_destroy (&NAME)) \ - abort (); \ - } \ - while (0) - -/* ------------------------- gl_rwlock_t datatype ------------------------- */ - -#define gl_rwlock_init(NAME) \ - do \ - { \ - if (glthread_rwlock_init (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_rwlock_rdlock(NAME) \ - do \ - { \ - if (glthread_rwlock_rdlock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_rwlock_wrlock(NAME) \ - do \ - { \ - if (glthread_rwlock_wrlock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_rwlock_unlock(NAME) \ - do \ - { \ - if (glthread_rwlock_unlock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_rwlock_destroy(NAME) \ - do \ - { \ - if (glthread_rwlock_destroy (&NAME)) \ - abort (); \ - } \ - while (0) - -/* --------------------- gl_recursive_lock_t datatype --------------------- */ - -#define gl_recursive_lock_init(NAME) \ - do \ - { \ - if (glthread_recursive_lock_init (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_recursive_lock_lock(NAME) \ - do \ - { \ - if (glthread_recursive_lock_lock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_recursive_lock_unlock(NAME) \ - do \ - { \ - if (glthread_recursive_lock_unlock (&NAME)) \ - abort (); \ - } \ - while (0) -#define gl_recursive_lock_destroy(NAME) \ - do \ - { \ - if (glthread_recursive_lock_destroy (&NAME)) \ - abort (); \ - } \ - while (0) - -/* ========================================================================= */ - -#endif /* _LOCK_H */ diff --git a/include/libgnulib/glthread/once.h b/include/libgnulib/glthread/once.h deleted file mode 100755 index 2452f88..0000000 --- a/include/libgnulib/glthread/once.h +++ /dev/null @@ -1,272 +0,0 @@ -/* Once-only initialization in multithreaded situations. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */ - -/* This file contains once-only initialization primitives for use with a given - thread library. - It does not contain primitives for creating threads or for other - synchronization primitives. - - Once-only execution: - Type: gl_once_t - Initializer: gl_once_define(extern, name) - Execution: gl_once (name, initfunction); - Equivalent functions with control of error handling: - Execution: err = glthread_once (&name, initfunction); -*/ - - -#ifndef _ONCE_H -#define _ONCE_H - -/* This file uses HAVE_THREADS_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#if !defined c11_threads_in_use -# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC -# define c11_threads_in_use() 1 -# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif -#endif - -/* ========================================================================= */ - -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_once_t datatype -------------------------- */ - -typedef once_flag gl_once_t; -# define gl_once_define(STORAGECLASS, NAME) \ - STORAGECLASS once_flag NAME = ONCE_FLAG_INIT; -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (call_once (ONCE_CONTROL, INITFUNCTION), 0) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_POSIX_THREADS - -/* Use the POSIX threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# if PTHREAD_IN_USE_DETECTION_HARD - -/* The pthread_in_use() detection needs to be done at runtime. */ -# define pthread_in_use() \ - glthread_in_use () -extern int glthread_in_use (void); - -# endif - -# if USE_POSIX_THREADS_WEAK - -/* Use weak references to the POSIX threads library. */ - -/* Weak references avoid dragging in external libraries if the other parts - of the program don't use them. Here we use them, because we don't want - every program that uses libintl to depend on libpthread. This assumes - that libpthread would not be loaded after libintl; i.e. if libintl is - loaded first, by an executable that does not depend on libpthread, and - then a module is dynamically loaded that depends on libpthread, libintl - will not be multithread-safe. */ - -/* The way to test at runtime whether libpthread is present is to test - whether a function pointer's value, such as &pthread_mutex_init, is - non-NULL. However, some versions of GCC have a bug through which, in - PIC mode, &foo != NULL always evaluates to true if there is a direct - call to foo(...) in the same function. To avoid this, we test the - address of a function in libpthread that we don't use. */ - -# pragma weak pthread_mutex_init -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock -# pragma weak pthread_mutex_destroy -/* Work around clang bug */ -# ifndef pthread_rwlock_init -# pragma weak pthread_rwlock_init -# endif -# pragma weak pthread_rwlock_rdlock -# pragma weak pthread_rwlock_wrlock -# pragma weak pthread_rwlock_unlock -# pragma weak pthread_rwlock_destroy -# pragma weak pthread_once -# pragma weak pthread_cond_init -# pragma weak pthread_cond_wait -# pragma weak pthread_cond_signal -# pragma weak pthread_cond_broadcast -# pragma weak pthread_cond_destroy -# pragma weak pthread_mutexattr_init -# pragma weak pthread_mutexattr_settype -# pragma weak pthread_mutexattr_destroy -/* Work around clang bug */ -# ifndef pthread_rwlockattr_init -# pragma weak pthread_rwlockattr_init -# endif -# if __GNU_LIBRARY__ > 1 -# pragma weak pthread_rwlockattr_setkind_np -# endif -# pragma weak pthread_rwlockattr_destroy -# ifndef pthread_self -# pragma weak pthread_self -# endif - -# if !PTHREAD_IN_USE_DETECTION_HARD - /* Considering all platforms with USE_POSIX_THREADS_WEAK, only few symbols - can be used to determine whether libpthread is in use. These are: - pthread_mutexattr_gettype - pthread_rwlockattr_destroy - pthread_rwlockattr_init - */ -# pragma weak pthread_mutexattr_gettype -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) -# endif - -# else - -# if !PTHREAD_IN_USE_DETECTION_HARD -# define pthread_in_use() 1 -# endif - -# endif - -/* -------------------------- gl_once_t datatype -------------------------- */ - -typedef pthread_once_t gl_once_t; -# define gl_once_define(STORAGECLASS, NAME) \ - STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; -# if PTHREAD_IN_USE_DETECTION_HARD || USE_POSIX_THREADS_WEAK -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (pthread_in_use () \ - ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ - : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) -# else -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (pthread_in_use () \ - ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ - : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) -extern int glthread_once_multithreaded (pthread_once_t *once_control, - void (*init_function) (void)); -# endif -extern int glthread_once_singlethreaded (pthread_once_t *once_control); - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_WINDOWS_THREADS - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-once.h" - -# ifdef __cplusplus -extern "C" { -# endif - -/* We can use CRITICAL_SECTION directly, rather than the native Windows Event, - Mutex, Semaphore types, because - - we need only to synchronize inside a single process (address space), - not inter-process locking, - - we don't need to support trylock operations. (TryEnterCriticalSection - does not work on Windows 95/98/ME. Packages that need trylock usually - define their own mutex type.) */ - -/* There is no way to statically initialize a CRITICAL_SECTION. It needs - to be done lazily, once only. For this we need spinlocks. */ - -/* -------------------------- gl_once_t datatype -------------------------- */ - -typedef glwthread_once_t gl_once_t; -# define gl_once_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_once_t NAME = GLWTHREAD_ONCE_INIT; -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (glwthread_once (ONCE_CONTROL, INITFUNCTION), 0) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) - -/* Provide dummy implementation if threads are not supported. */ - -/* -------------------------- gl_once_t datatype -------------------------- */ - -typedef int gl_once_t; -# define gl_once_define(STORAGECLASS, NAME) \ - STORAGECLASS gl_once_t NAME = 0; -# define glthread_once(ONCE_CONTROL, INITFUNCTION) \ - (*(ONCE_CONTROL) == 0 ? (*(ONCE_CONTROL) = ~ 0, INITFUNCTION (), 0) : 0) - -#endif - -/* ========================================================================= */ - -/* Macros with built-in error handling. */ - -/* -------------------------- gl_once_t datatype -------------------------- */ - -#define gl_once(NAME, INITFUNCTION) \ - do \ - { \ - if (glthread_once (&NAME, INITFUNCTION)) \ - abort (); \ - } \ - while (0) - -/* ========================================================================= */ - -#endif /* _ONCE_H */ diff --git a/include/libgnulib/glthread/thread.h b/include/libgnulib/glthread/thread.h deleted file mode 100755 index 748bb04..0000000 --- a/include/libgnulib/glthread/thread.h +++ /dev/null @@ -1,346 +0,0 @@ -/* Creating and controlling threads. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h. */ - -/* This file contains primitives for creating and controlling threads. - - Thread data type: gl_thread_t. - - Creating a thread: - thread = gl_thread_create (func, arg); - Or with control of error handling: - err = glthread_create (&thread, func, arg); - extern int glthread_create (gl_thread_t *result, - void *(*func) (void *), void *arg); - - Querying and changing the signal mask of a thread (not supported on all - platforms): - gl_thread_sigmask (how, newmask, oldmask); - Or with control of error handling: - err = glthread_sigmask (how, newmask, oldmask); - extern int glthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask); - - Waiting for termination of another thread: - gl_thread_join (thread, &return_value); - Or with control of error handling: - err = glthread_join (thread, &return_value); - extern int glthread_join (gl_thread_t thread, void **return_value_ptr); - - Getting a reference to the current thread: - current = gl_thread_self (); - extern gl_thread_t gl_thread_self (void); - - Getting a reference to the current thread as a pointer, for debugging: - ptr = gl_thread_self_pointer (); - extern void * gl_thread_self_pointer (void); - - Terminating the current thread: - gl_thread_exit (return_value); - extern _Noreturn void gl_thread_exit (void *return_value); - - Requesting custom code to be executed at fork() time (not supported on all - platforms): - gl_thread_atfork (prepare_func, parent_func, child_func); - Or with control of error handling: - err = glthread_atfork (prepare_func, parent_func, child_func); - extern int glthread_atfork (void (*prepare_func) (void), - void (*parent_func) (void), - void (*child_func) (void)); - Note that even on platforms where this is supported, use of fork() and - threads together is problematic, see - - */ - - -#ifndef _GLTHREAD_THREAD_H -#define _GLTHREAD_THREAD_H - -/* This file uses _Noreturn, HAVE_THREADS_H, HAVE_PTHREAD_ATFORK. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#if !defined c11_threads_in_use -# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC -# define c11_threads_in_use() 1 -# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif -#endif - -/* ========================================================================= */ - -#if USE_ISOC_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_thread_t datatype -------------------------- */ - -typedef struct thrd_with_exitvalue *gl_thread_t; -extern int glthread_create (gl_thread_t *threadp, - void *(*func) (void *), void *arg); -# define glthread_sigmask(HOW, SET, OSET) \ - pthread_sigmask (HOW, SET, OSET) -extern int glthread_join (gl_thread_t thread, void **return_value_ptr); -extern gl_thread_t gl_thread_self (void); -# define gl_thread_self_pointer() \ - (void *) gl_thread_self () -extern _Noreturn void gl_thread_exit (void *return_value); -# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the POSIX threads library. */ - -# include - -/* Get intptr_t. */ -# include - -/* On IRIX, pthread_atfork is declared in , not in . */ -# if defined __sgi -# include -# endif - -# if USE_POSIX_THREADS_WEAK -/* Compilers other than GCC need to see the declaration of pthread_sigmask - before the "#pragma weak pthread_sigmask" below. */ -# include -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# if PTHREAD_IN_USE_DETECTION_HARD - -/* The pthread_in_use() detection needs to be done at runtime. */ -# define pthread_in_use() \ - glthread_in_use () -extern int glthread_in_use (void); - -# endif - -# if USE_POSIX_THREADS_WEAK - -/* Use weak references to the POSIX threads library. */ - -/* Weak references avoid dragging in external libraries if the other parts - of the program don't use them. Here we use them, because we don't want - every program that uses libintl to depend on libpthread. This assumes - that libpthread would not be loaded after libintl; i.e. if libintl is - loaded first, by an executable that does not depend on libpthread, and - then a module is dynamically loaded that depends on libpthread, libintl - will not be multithread-safe. */ - -/* The way to test at runtime whether libpthread is present is to test - whether a function pointer's value, such as &pthread_mutex_init, is - non-NULL. However, some versions of GCC have a bug through which, in - PIC mode, &foo != NULL always evaluates to true if there is a direct - call to foo(...) in the same function. To avoid this, we test the - address of a function in libpthread that we don't use. */ - -# ifndef pthread_sigmask /* Do not declare rpl_pthread_sigmask weak. */ -# pragma weak pthread_sigmask -# endif - -# pragma weak pthread_join -# ifndef pthread_self -# pragma weak pthread_self -# endif -# pragma weak pthread_exit -# if HAVE_PTHREAD_ATFORK -# pragma weak pthread_atfork -# endif - -# if !PTHREAD_IN_USE_DETECTION_HARD -# pragma weak pthread_mutexattr_gettype -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) -# endif - -# else - -# if !PTHREAD_IN_USE_DETECTION_HARD -# define pthread_in_use() 1 -# endif - -# endif - -/* -------------------------- gl_thread_t datatype -------------------------- */ - -/* This choice of gl_thread_t assumes that - pthread_equal (a, b) is equivalent to ((a) == (b)). - This is the case on all platforms in use in 2008. */ -typedef pthread_t gl_thread_t; -# define glthread_create(THREADP, FUNC, ARG) \ - (pthread_in_use () ? pthread_create (THREADP, NULL, FUNC, ARG) : ENOSYS) -# define glthread_sigmask(HOW, SET, OSET) \ - (pthread_in_use () ? pthread_sigmask (HOW, SET, OSET) : 0) -# define glthread_join(THREAD, RETVALP) \ - (pthread_in_use () ? pthread_join (THREAD, RETVALP) : 0) -# ifdef PTW32_VERSION - /* In pthreads-win32, pthread_t is a struct with a pointer field 'p' and - other fields. */ -# define gl_thread_self() \ - (pthread_in_use () ? pthread_self () : gl_null_thread) -# define gl_thread_self_pointer() \ - (pthread_in_use () ? pthread_self ().p : NULL) -extern const gl_thread_t gl_null_thread; -# elif defined __MVS__ - /* On IBM z/OS, pthread_t is a struct with an 8-byte '__' field. - The first three bytes of this field appear to uniquely identify a - pthread_t, though not necessarily representing a pointer. */ -# define gl_thread_self() \ - (pthread_in_use () ? pthread_self () : gl_null_thread) -# define gl_thread_self_pointer() \ - (pthread_in_use () ? *((void **) pthread_self ().__) : NULL) -extern const gl_thread_t gl_null_thread; -# else -# define gl_thread_self() \ - (pthread_in_use () ? pthread_self () : (pthread_t) 0) -# define gl_thread_self_pointer() \ - (pthread_in_use () ? (void *) (intptr_t) (pthread_t) pthread_self () : NULL) -# endif -# define gl_thread_exit(RETVAL) \ - (void) (pthread_in_use () ? (pthread_exit (RETVAL), 0) : 0) - -# if HAVE_PTHREAD_ATFORK -# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) \ - (pthread_in_use () ? pthread_atfork (PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) : 0) -# else -# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 -# endif - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_WINDOWS_THREADS - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-thread.h" - -# ifdef __cplusplus -extern "C" { -# endif - -/* -------------------------- gl_thread_t datatype -------------------------- */ - -typedef glwthread_thread_t gl_thread_t; -# define glthread_create(THREADP, FUNC, ARG) \ - glwthread_thread_create (THREADP, 0, FUNC, ARG) -# define glthread_sigmask(HOW, SET, OSET) \ - /* unsupported */ 0 -# define glthread_join(THREAD, RETVALP) \ - glwthread_thread_join (THREAD, RETVALP) -# define gl_thread_self() \ - glwthread_thread_self () -# define gl_thread_self_pointer() \ - gl_thread_self () -# define gl_thread_exit(RETVAL) \ - glwthread_thread_exit (RETVAL) -# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) - -/* Provide dummy implementation if threads are not supported. */ - -typedef int gl_thread_t; -# define glthread_create(THREADP, FUNC, ARG) ENOSYS -# define glthread_sigmask(HOW, SET, OSET) 0 -# define glthread_join(THREAD, RETVALP) 0 -# define gl_thread_self() 0 -# define gl_thread_self_pointer() \ - ((void *) gl_thread_self ()) -# define gl_thread_exit(RETVAL) (void)0 -# define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 - -#endif - -/* ========================================================================= */ - -/* Macros with built-in error handling. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern gl_thread_t gl_thread_create (void *(*func) (void *arg), void *arg); -#define gl_thread_sigmask(HOW, SET, OSET) \ - do \ - { \ - if (glthread_sigmask (HOW, SET, OSET)) \ - abort (); \ - } \ - while (0) -#define gl_thread_join(THREAD, RETVAL) \ - do \ - { \ - if (glthread_join (THREAD, RETVAL)) \ - abort (); \ - } \ - while (0) -#define gl_thread_atfork(PREPARE, PARENT, CHILD) \ - do \ - { \ - if (glthread_atfork (PREPARE, PARENT, CHILD)) \ - abort (); \ - } \ - while (0) - -#ifdef __cplusplus -} -#endif - -#endif /* _GLTHREAD_THREAD_H */ diff --git a/include/libgnulib/glthread/tls.h b/include/libgnulib/glthread/tls.h deleted file mode 100755 index ab8839f..0000000 --- a/include/libgnulib/glthread/tls.h +++ /dev/null @@ -1,267 +0,0 @@ -/* Thread-local storage in multithreaded situations. - Copyright (C) 2005, 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. */ - -/* This file contains thread-local storage primitives for use with a given - thread library. It does not contain primitives for creating threads or - for other multithreading primitives. - - Type: gl_tls_key_t - Initialization: gl_tls_key_init (name, destructor); - Getting per-thread value: gl_tls_get (name) - Setting per-thread value: gl_tls_set (name, pointer); - De-initialization: gl_tls_key_destroy (name); - Equivalent functions with control of error handling: - Initialization: err = glthread_tls_key_init (&name, destructor); - Setting per-thread value: err = glthread_tls_set (&name, pointer); - De-initialization: err = glthread_tls_key_destroy (&name); - - A per-thread value is of type 'void *'. - - A destructor is a function pointer of type 'void (*) (void *)', called - when a thread exits, and taking the last per-thread value as argument. It - is unspecified whether the destructor function is called when the last - per-thread value is NULL. On some platforms, the destructor function is - not called at all. -*/ - - -#ifndef _TLS_H -#define _TLS_H - -/* This file uses HAVE_THREADS_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#if !defined c11_threads_in_use -# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC -# define c11_threads_in_use() 1 -# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif -#endif - -/* ========================================================================= */ - -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* ------------------------- gl_tls_key_t datatype ------------------------- */ - -typedef tss_t gl_tls_key_t; -# define glthread_tls_key_init(KEY, DESTRUCTOR) \ - (tss_create (KEY, DESTRUCTOR) != thrd_success ? EAGAIN : 0) -# define gl_tls_get(NAME) \ - tss_get (NAME) -# define glthread_tls_set(KEY, POINTER) \ - (tss_set (*(KEY), (POINTER)) != thrd_success ? ENOMEM : 0) -# define glthread_tls_key_destroy(KEY) \ - (tss_delete (*(KEY)), 0) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_POSIX_THREADS - -/* Use the POSIX threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# if PTHREAD_IN_USE_DETECTION_HARD - -/* The pthread_in_use() detection needs to be done at runtime. */ -# define pthread_in_use() \ - glthread_in_use () -extern int glthread_in_use (void); - -# endif - -# if USE_POSIX_THREADS_WEAK - -/* Use weak references to the POSIX threads library. */ - -# pragma weak pthread_key_create -# pragma weak pthread_getspecific -# pragma weak pthread_setspecific -# pragma weak pthread_key_delete -# ifndef pthread_self -# pragma weak pthread_self -# endif - -# if !PTHREAD_IN_USE_DETECTION_HARD -# pragma weak pthread_mutexattr_gettype -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) -# endif - -# else - -# if !PTHREAD_IN_USE_DETECTION_HARD -# define pthread_in_use() 1 -# endif - -# endif - -/* ------------------------- gl_tls_key_t datatype ------------------------- */ - -typedef union - { - void *singlethread_value; - pthread_key_t key; - } - gl_tls_key_t; -# define glthread_tls_key_init(KEY, DESTRUCTOR) \ - (pthread_in_use () \ - ? pthread_key_create (&(KEY)->key, DESTRUCTOR) \ - : ((KEY)->singlethread_value = NULL, 0)) -# define gl_tls_get(NAME) \ - (pthread_in_use () \ - ? pthread_getspecific ((NAME).key) \ - : (NAME).singlethread_value) -# define glthread_tls_set(KEY, POINTER) \ - (pthread_in_use () \ - ? pthread_setspecific ((KEY)->key, (POINTER)) \ - : ((KEY)->singlethread_value = (POINTER), 0)) -# define glthread_tls_key_destroy(KEY) \ - (pthread_in_use () ? pthread_key_delete ((KEY)->key) : 0) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_WINDOWS_THREADS - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-tls.h" - -# ifdef __cplusplus -extern "C" { -# endif - -/* ------------------------- gl_tls_key_t datatype ------------------------- */ - -typedef glwthread_tls_key_t gl_tls_key_t; -# define glthread_tls_key_init(KEY, DESTRUCTOR) \ - glwthread_tls_key_create (KEY, DESTRUCTOR) -# define gl_tls_get(NAME) \ - TlsGetValue (NAME) -# define glthread_tls_set(KEY, POINTER) \ - (!TlsSetValue (*(KEY), POINTER) ? EINVAL : 0) -# define glthread_tls_key_destroy(KEY) \ - glwthread_tls_key_delete (*(KEY)) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) - -/* Provide dummy implementation if threads are not supported. */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* ------------------------- gl_tls_key_t datatype ------------------------- */ - -typedef struct - { - void *singlethread_value; - } - gl_tls_key_t; -# define glthread_tls_key_init(KEY, DESTRUCTOR) \ - ((KEY)->singlethread_value = NULL, \ - (void) (DESTRUCTOR), \ - 0) -# define gl_tls_get(NAME) \ - (NAME).singlethread_value -# define glthread_tls_set(KEY, POINTER) \ - ((KEY)->singlethread_value = (POINTER), 0) -# define glthread_tls_key_destroy(KEY) \ - 0 - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -/* Macros with built-in error handling. */ - -/* ------------------------- gl_tls_key_t datatype ------------------------- */ - -#define gl_tls_key_init(NAME, DESTRUCTOR) \ - do \ - { \ - if (glthread_tls_key_init (&NAME, DESTRUCTOR)) \ - abort (); \ - } \ - while (0) -#define gl_tls_set(NAME, POINTER) \ - do \ - { \ - if (glthread_tls_set (&NAME, POINTER)) \ - abort (); \ - } \ - while (0) -#define gl_tls_key_destroy(NAME) \ - do \ - { \ - if (glthread_tls_key_destroy (&NAME)) \ - abort (); \ - } \ - while (0) - -/* ========================================================================= */ - -#endif /* _TLS_H */ diff --git a/include/libgnulib/glthread/yield.h b/include/libgnulib/glthread/yield.h deleted file mode 100755 index 29105cc..0000000 --- a/include/libgnulib/glthread/yield.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Yielding the processor to other threads and processes. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file contains a primitive for yielding the processor to other threads. - extern void gl_thread_yield (void); - */ - -#ifndef _GLTHREAD_YIELD_H -#define _GLTHREAD_YIELD_H - -#include - -/* ========================================================================= */ - -#if USE_ISOC_THREADS || USE_ISOC_AND_POSIX_THREADS - -/* Use the ISO C threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define gl_thread_yield() \ - thrd_yield () - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_POSIX_THREADS - -/* Use the POSIX threads library. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define gl_thread_yield() \ - sched_yield () - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if USE_WINDOWS_THREADS - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define gl_thread_yield() \ - Sleep (0) - -# ifdef __cplusplus -} -# endif - -#endif - -/* ========================================================================= */ - -#if !(USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS) - -/* Provide dummy implementation if threads are not supported. */ - -# define gl_thread_yield() 0 - -#endif - -/* ========================================================================= */ - -#endif /* _GLTHREAD_YIELD_H */ diff --git a/include/libgnulib/hamt.h b/include/libgnulib/hamt.h deleted file mode 100755 index b483aa1..0000000 --- a/include/libgnulib/hamt.h +++ /dev/null @@ -1,275 +0,0 @@ -/* (Persistent) hash array mapped tries. - Copyright (C) 2021-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Marc Nieper-Wißkirchen , 2021. */ - -/* This module provides a persistent version of hash array mapped - tries (hamts) that can be used in place of hash tables when pure - (functional) operations are needed. - - A hash function and an equivalence predicate has to be provided for - the elements that can be inserted, replaced and removed in a hamt. - A hamt cannot contain duplicates that compare equal. - - Each non-destructive updating operation returns a new hamt, which - shares structure with the original one. Destructive updates only - effect the hamt, on which the destructive operation is applied. - For example, given a hamt HAMT1, any non-destructive update - operation (e.g. hamt_insert) will result in a new hamt HAMT2. - Whatever further operations (destructive or not, including freeing - a hamt) are applied to HAMT1 won't change HAMT2 and vice versa. To - free all the memory, hash_free has therefore to be applied to both - HAMT1 and HAMT2. - - If persistence is not needed, transient hash tables are probably - faster. - - See also: Phil Bagwell (2000). Ideal Hash Trees (Report). Infoscience - Department, École Polytechnique Fédérale de Lausanne. - - http://infoscience.epfl.ch/record/64398/files/idealhashtrees.pdf */ - -#ifndef _GL_HAMT_H -#define _GL_HAMT_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_DEALLOC, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_HAMT_INLINE -# define _GL_HAMT_INLINE _GL_INLINE -#endif - -/* The GL_HAMT_THREAD_SAFE flag is set if the implementation of hamts - is thread-safe as long as two threads do not simultaneously access - the same hamt. This is non-trivial as different hamts may share - some structure. - We can define it only when the compiler supports _Atomic. For GCC, - it is supported starting with GCC 4.9. For clang, with clang 4. */ - -#if (__GNUC__ + (__GNUC_MINOR__ >= 9) > 4 && !defined __clang \ - || __clang_major__ >= 4) \ - && __STDC_VERSION__ >= 201112L && !defined __STD_NO_ATOMICS__ \ - && !defined __cplusplus -# define GL_HAMT_THREAD_SAFE 1 -#else -# define GL_HAMT_THREAD_SAFE 0 -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Hash values are of type size_t. For each level of the trie, we use - 5 bits (corresponding to lg2 of the width of a 32-bit word. */ -#define _GL_HAMT_MAX_DEPTH ((SIZE_WIDTH + 4) / 5) - -/************/ -/* Elements */ -/************/ - -/* A hamt stores pointers to elements. Each element has to be a - struct whose initial member is of the type Hamt_entry. You need to - define this struct yourself. It will typically contain an - Hamt_entry, a key, and, optionally, a value. - - An element is conceptually owned by a hamt as soon as it is - inserted. It will be automatically freed as soon as the last hamt - containing it is freed. */ -typedef struct -{ -#if GL_HAMT_THREAD_SAFE - _Atomic -#endif - size_t ref_count; -} Hamt_entry; - -/* Initialize *ELT, which has to point to a structure as described - above and return ELT type-cast. - - Before an element is inserted into any hamt, whether once or - multiple times, it has to be initialized exactly once. */ -_GL_HAMT_INLINE Hamt_entry * -hamt_element (void *elt) -{ - Hamt_entry *entry = elt; - entry->ref_count = 0; /* This assumes that element_entry == - 0. */ - return entry; -} - -/*************************/ -/* Opaque Hamt Structure */ -/*************************/ - -/* In user-code, hamts are accessed through pointers to the opaque - Hamt type. Two hamts are said to be the same if and only if their - pointers are equal. */ -typedef struct hamt Hamt; - -/*************/ -/* Interface */ -/*************/ - -/* A hash function has to be pure, and two elements that compare equal - have to have the same hash value. For a hash function to be a good - one, it is important that it uses all SIZE_WIDTH bits in - size_t. */ -typedef size_t (Hamt_hasher) (const void *elt); - -/* A comparison function has to be pure, and two elements that have - equal pointers have to compare equal. */ -typedef bool (Hamt_comparator) (const void *elt1, const void *elt2); - -/* A user-defined function that is called when the last hamt - containing a particular element is freed. */ -typedef void (Hamt_freer) (Hamt_entry *elt); - -/****************************/ -/* Creation and Destruction */ -/****************************/ - -/* Free the resources solely allocated by HAMT and all elements solely - contained in it. */ -extern void hamt_free (Hamt *hamt); - -/* Create and return a new and empty hash array mapped trie. */ -_GL_ATTRIBUTE_NODISCARD -extern Hamt *hamt_create (Hamt_hasher *hasher, Hamt_comparator *comparator, - Hamt_freer *freer) - _GL_ATTRIBUTE_DEALLOC (hamt_free, 1); - -/* Return a copy of HAMT, which is not the same in the sense above. - This procedure can be used, for example, so that two threads can - access the same data independently. */ -_GL_ATTRIBUTE_NODISCARD -extern Hamt *hamt_copy (Hamt *hamt) - _GL_ATTRIBUTE_DEALLOC (hamt_free, 1); - -/**********/ -/* Lookup */ -/**********/ - -/* If ELT matches an entry in HAMT, return this entry. Otherwise, - return NULL. */ -extern Hamt_entry *hamt_lookup (const Hamt *hamt, const void *elt); - -/**************************/ -/* Insertion and Deletion */ -/**************************/ - -/* If *ELT_PTR matches an element already in HAMT, set *ELT_PTR to the - existing element and return the original hamt. Otherwise, insert - *ELT_PTR into a copy of the hamt and return the copy. */ -_GL_ATTRIBUTE_NODISCARD -extern Hamt *hamt_insert (Hamt *hamt, Hamt_entry **elt_ptr); - -/* If *ELT_PTR matches an element already in HAMT, set *ELT_PTR to the -existing element, remove the element from a copy of the hamt and -return the copy. Otherwise, return the original hamt. */ -_GL_ATTRIBUTE_NODISCARD -extern Hamt *hamt_remove (Hamt *hamt, Hamt_entry **elt_ptr); - -/* Insert *ELT_PTR into a copy of HAMT and return the copy. If an - existing element was replaced, set *ELT_PTR to this element, and to - NULL otherwise. */ -_GL_ATTRIBUTE_NODISCARD -extern Hamt *hamt_replace (Hamt *hamt, Hamt_entry **elt_ptr); - -/*************/ -/* Iteration */ -/*************/ - -/* A processor function is called during walking of a hamt, which - returns true to continue the walking. */ -typedef bool (Hamt_processor) (Hamt_entry *elt, void *data); - -/* Call PROC for every entry of the hamt until it returns false. The - first argument to the processor is the entry, the second argument - is the value of DATA as received. Return the number of calls that - returned true. During processing, the hamt mustn't be - modified. */ -extern size_t hamt_do_while (const Hamt *hamt, Hamt_processor *proc, - void *data); - -/* An alternative interface to iterating through the entry of a hamt - that does not make use of a higher-order function like - hamt_do_while uses the Hamt_iterator type, which can be allocated - through automatic variables on the stack. As a hamt iterator - operates on a copy of a hamt, the original hamt can modified - (including freeing it) without affecting the iterator. */ -struct hamt_iterator -{ - Hamt* hamt; - int depth; - size_t path; - size_t position; - Hamt_entry *entry[_GL_HAMT_MAX_DEPTH + 1]; -}; -typedef struct hamt_iterator Hamt_iterator; - -/* Create of copy of HAMT and return an initialized ITER on the - copy. */ -extern Hamt_iterator hamt_iterator (Hamt *hamt); - -/* Free the resources allocated for ITER, including the hamt copy - associated with it. */ -extern void hamt_iterator_free (Hamt_iterator *iter); - -/* Return an independent copy of ITER that is initially in the same - state. Any operation on the original iterator (including freeing - it) doesn't affect the iterator copy and vice versa. */ -extern Hamt_iterator hamt_iterator_copy (Hamt_iterator *iter); - -/* Return true if ITER is not at the end, place the current element in - *ELT_PTR and move the iterator forward. Otherwise, return - false. */ -extern bool hamt_iterator_next (Hamt_iterator *iter, - Hamt_entry **elt_ptr); - -/***********************/ -/* Destructive Updates */ -/***********************/ - -/* If *ELT_PTR matches an element already in HAMT, set *ELT_PTR to the - element from the table and return false. Otherwise, insert *ELT_PTR - destructively into the hamt and return true. */ -extern bool hamt_insert_x (Hamt *hamt, Hamt_entry **elt_ptr); - -/* Insert ELT destructively into HAMT. If an existing element was - replaced, return true. Otherwise, return false. */ -extern bool hamt_replace_x (Hamt *hamt, Hamt_entry *elt); - -/* If ELT matches an element already in HAMT, remove the element - destructively from the hamt and return true. Otherwise, return - false. */ -extern bool hamt_remove_x (Hamt *hamt, Hamt_entry *elt); - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_HAMT_H */ diff --git a/include/libgnulib/hard-locale.h b/include/libgnulib/hard-locale.h deleted file mode 100755 index 5d40e52..0000000 --- a/include/libgnulib/hard-locale.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Determine whether a locale is hard. - - Copyright (C) 1999, 2003-2004, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef HARD_LOCALE_H_ -#define HARD_LOCALE_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return true if the specified CATEGORY of the current locale is hard, i.e. - different from the C or POSIX locale that has a fixed behavior. - CATEGORY must be one of the LC_* values, but not LC_ALL. - Note: This function uses the current global locale; it ignores the - per-thread locale. */ -extern bool hard_locale (int category); - - -#ifdef __cplusplus -} -#endif - -#endif /* HARD_LOCALE_H_ */ diff --git a/include/libgnulib/hash-pjw-bare.h b/include/libgnulib/hash-pjw-bare.h deleted file mode 100755 index fe74805..0000000 --- a/include/libgnulib/hash-pjw-bare.h +++ /dev/null @@ -1,39 +0,0 @@ -/* hash-pjw-bare.h -- declaration for a simple hash function - Copyright (C) 2012-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compute a hash code for a buffer starting at X and of size N, - and return the hash code. Note that unlike hash_pjw(), it does not - return it modulo a table size. - The result is platform dependent: it depends on the size of the 'size_t' - type. */ -extern size_t hash_pjw_bare (const void *x, size_t n) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/hash-pjw.h b/include/libgnulib/hash-pjw.h deleted file mode 100755 index 2962dfc..0000000 --- a/include/libgnulib/hash-pjw.h +++ /dev/null @@ -1,38 +0,0 @@ -/* hash-pjw.h -- declaration for a simple hash function - Copyright (C) 2001, 2003, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compute a hash code for a NUL-terminated string starting at X, - and return the hash code modulo TABLESIZE. - The result is platform dependent: it depends on the size of the 'size_t' - type and on the signedness of the 'char' type. */ -extern size_t hash_pjw (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/hash-triple.h b/include/libgnulib/hash-triple.h deleted file mode 100755 index b80ea57..0000000 --- a/include/libgnulib/hash-triple.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Hash functions for file-related (name, device, inode) triples. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2007. */ - -#ifndef HASH_TRIPLE_H -#define HASH_TRIPLE_H - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Describe a just-created or just-renamed destination file. */ -struct F_triple -{ - char *name; - ino_t st_ino; - dev_t st_dev; -}; - -/* Defined in module 'hash-triple-simple'. */ - -extern size_t triple_hash (void const *x, size_t table_size) _GL_ATTRIBUTE_PURE; -extern bool triple_compare_ino_str (void const *x, void const *y) - _GL_ATTRIBUTE_PURE; -extern void triple_free (void *x); - -/* Defined in module 'hash-triple'. */ -extern size_t triple_hash_no_name (void const *x, size_t table_size) - _GL_ATTRIBUTE_PURE; -extern bool triple_compare (void const *x, void const *y); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/hash.h b/include/libgnulib/hash.h deleted file mode 100755 index f764985..0000000 --- a/include/libgnulib/hash.h +++ /dev/null @@ -1,273 +0,0 @@ -/* hash - hashing table processing. - Copyright (C) 1998-1999, 2001, 2003, 2009-2024 Free Software Foundation, - Inc. - Written by Jim Meyering , 1998. - - This file 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 file 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 program. If not, see . */ - -/* A generic hash table package. */ - -/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use - obstacks instead of malloc, and recompile 'hash.c' with same setting. */ - -#ifndef HASH_H_ -# define HASH_H_ - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_DEPRECATED, - _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_PURE, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -struct hash_tuning - { - /* This structure is mainly used for 'hash_initialize', see the block - documentation of 'hash_reset_tuning' for more complete comments. */ - - float shrink_threshold; /* ratio of used buckets to trigger a shrink */ - float shrink_factor; /* ratio of new smaller size to original size */ - float growth_threshold; /* ratio of used buckets to trigger a growth */ - float growth_factor; /* ratio of new bigger size to original size */ - bool is_n_buckets; /* if CANDIDATE really means table size */ - }; - -typedef struct hash_tuning Hash_tuning; - -struct hash_table; - -typedef struct hash_table Hash_table; - -/* - * Information and lookup. - */ - -/* The following few functions provide information about the overall hash - table organization: the number of entries, number of buckets and maximum - length of buckets. */ - -/* Return the number of buckets in the hash table. The table size, the total - number of buckets (used plus unused), or the maximum number of slots, are - the same quantity. */ -extern size_t hash_get_n_buckets (const Hash_table *table) - _GL_ATTRIBUTE_PURE; - -/* Return the number of slots in use (non-empty buckets). */ -extern size_t hash_get_n_buckets_used (const Hash_table *table) - _GL_ATTRIBUTE_PURE; - -/* Return the number of active entries. */ -extern size_t hash_get_n_entries (const Hash_table *table) - _GL_ATTRIBUTE_PURE; - -/* Return the length of the longest chain (bucket). */ -extern size_t hash_get_max_bucket_length (const Hash_table *table) - _GL_ATTRIBUTE_PURE; - -/* Do a mild validation of a hash table, by traversing it and checking two - statistics. */ -extern bool hash_table_ok (const Hash_table *table) - _GL_ATTRIBUTE_PURE; - -extern void hash_print_statistics (const Hash_table *table, FILE *stream); - -/* If ENTRY matches an entry already in the hash table, return the - entry from the table. Otherwise, return NULL. */ -extern void *hash_lookup (const Hash_table *table, const void *entry); - -/* - * Walking. - */ - -/* The functions in this page traverse the hash table and process the - contained entries. For the traversal to work properly, the hash table - should not be resized nor modified while any particular entry is being - processed. In particular, entries should not be added, and an entry - may be removed only if there is no shrink threshold and the entry being - removed has already been passed to hash_get_next. */ - -/* Return the first data in the table, or NULL if the table is empty. */ -extern void *hash_get_first (const Hash_table *table) - _GL_ATTRIBUTE_PURE; - -/* Return the user data for the entry following ENTRY, where ENTRY has been - returned by a previous call to either 'hash_get_first' or 'hash_get_next'. - Return NULL if there are no more entries. */ -extern void *hash_get_next (const Hash_table *table, const void *entry); - -/* Fill BUFFER with pointers to active user entries in the hash table, then - return the number of pointers copied. Do not copy more than BUFFER_SIZE - pointers. */ -extern size_t hash_get_entries (const Hash_table *table, void **buffer, - size_t buffer_size); - -typedef bool (*Hash_processor) (void *entry, void *processor_data); - -/* Call a PROCESSOR function for each entry of a hash table, and return the - number of entries for which the processor function returned success. A - pointer to some PROCESSOR_DATA which will be made available to each call to - the processor function. The PROCESSOR accepts two arguments: the first is - the user entry being walked into, the second is the value of PROCESSOR_DATA - as received. The walking continue for as long as the PROCESSOR function - returns nonzero. When it returns zero, the walking is interrupted. */ -extern size_t hash_do_for_each (const Hash_table *table, - Hash_processor processor, void *processor_data); - -/* - * Allocation and clean-up. - */ - -/* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1. - This is a convenience routine for constructing other hashing functions. */ -extern size_t hash_string (const char *string, size_t n_buckets) - _GL_ATTRIBUTE_PURE; - -extern void hash_reset_tuning (Hash_tuning *tuning); - -typedef size_t (*Hash_hasher) (const void *entry, size_t table_size); -typedef bool (*Hash_comparator) (const void *entry1, const void *entry2); -typedef void (*Hash_data_freer) (void *entry); - -/* Reclaim all storage associated with a hash table. If a data_freer - function has been supplied by the user when the hash table was created, - this function applies it to the data of each entry before freeing that - entry. This function preserves errno, like 'free'. */ -extern void hash_free (Hash_table *table); - -/* Allocate and return a new hash table, or NULL upon failure. The initial - number of buckets is automatically selected so as to _guarantee_ that you - may insert at least CANDIDATE different user entries before any growth of - the hash table size occurs. So, if have a reasonably tight a-priori upper - bound on the number of entries you intend to insert in the hash table, you - may save some table memory and insertion time, by specifying it here. If - the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE - argument has its meaning changed to the wanted number of buckets. - - TUNING points to a structure of user-supplied values, in case some fine - tuning is wanted over the default behavior of the hasher. If TUNING is - NULL, the default tuning parameters are used instead. If TUNING is - provided but the values requested are out of bounds or might cause - rounding errors, return NULL. - - The user-supplied HASHER function, when not NULL, accepts two - arguments ENTRY and TABLE_SIZE. It computes, by hashing ENTRY contents, a - slot number for that entry which should be in the range 0..TABLE_SIZE-1. - This slot number is then returned. - - The user-supplied COMPARATOR function, when not NULL, accepts two - arguments pointing to user data, it then returns true for a pair of entries - that compare equal, or false otherwise. This function is internally called - on entries which are already known to hash to the same bucket index, - but which are distinct pointers. - - The user-supplied DATA_FREER function, when not NULL, may be later called - with the user data as an argument, just before the entry containing the - data gets freed. This happens from within 'hash_free' or 'hash_clear'. - You should specify this function only if you want these functions to free - all of your 'data' data. This is typically the case when your data is - simply an auxiliary struct that you have malloc'd to aggregate several - values. - - Set errno on failure; otherwise errno is unspecified. */ -_GL_ATTRIBUTE_NODISCARD -extern Hash_table *hash_initialize (size_t candidate, - const Hash_tuning *tuning, - Hash_hasher hasher, - Hash_comparator comparator, - Hash_data_freer data_freer) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (hash_free, 1); - -/* Like hash_initialize, but invokes xalloc_die instead of returning NULL. */ -/* This function is defined by module 'xhash'. */ -_GL_ATTRIBUTE_NODISCARD -extern Hash_table *hash_xinitialize (size_t candidate, - const Hash_tuning *tuning, - Hash_hasher hasher, - Hash_comparator comparator, - Hash_data_freer data_freer) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (hash_free, 1) - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Make all buckets empty, placing any chained entries on the free list. - Apply the user-specified function data_freer (if any) to the data of any - affected entries. */ -extern void hash_clear (Hash_table *table); - -/* - * Insertion and deletion. - */ - -/* For an already existing hash table, change the number of buckets through - specifying CANDIDATE. The contents of the hash table are preserved. The - new number of buckets is automatically selected so as to _guarantee_ that - the table may receive at least CANDIDATE different user entries, including - those already in the table, before any other growth of the hash table size - occurs. If TUNING->IS_N_BUCKETS is true, then CANDIDATE specifies the - exact number of buckets desired. Return true iff the rehash succeeded, - false (setting errno) otherwise. */ -_GL_ATTRIBUTE_NODISCARD -extern bool hash_rehash (Hash_table *table, size_t candidate); - -/* If ENTRY matches an entry already in the hash table, return the pointer - to the entry from the table. Otherwise, insert ENTRY and return ENTRY. - Return NULL (setting errno) if the storage required for insertion - cannot be allocated. This implementation does not support - duplicate entries or insertion of NULL. */ -_GL_ATTRIBUTE_NODISCARD -extern void *hash_insert (Hash_table *table, const void *entry); - -/* Same as hash_insert, but invokes xalloc_die instead of returning NULL. */ -/* This function is defined by module 'xhash'. */ -extern void *hash_xinsert (Hash_table *table, const void *entry); - -/* Insert ENTRY into hash TABLE if there is not already a matching entry. - - Return -1 (setting errno) upon memory allocation failure. - Return 1 if insertion succeeded. - Return 0 if there is already a matching entry in the table, - and in that case, if MATCHED_ENT is non-NULL, set *MATCHED_ENT - to that entry. - - This interface is easier to use than hash_insert when you must - distinguish between the latter two cases. More importantly, - hash_insert is unusable for some types of ENTRY values. When using - hash_insert, the only way to distinguish those cases is to compare - the return value and ENTRY. That works only when you can have two - different ENTRY values that point to data that compares "equal". Thus, - when the ENTRY value is a simple scalar, you must use - hash_insert_if_absent. ENTRY must not be NULL. */ -extern int hash_insert_if_absent (Hash_table *table, const void *entry, - const void **matched_ent); - -/* If ENTRY is already in the table, remove it and return the just-deleted - data (the user may want to deallocate its storage). If ENTRY is not in the - table, don't modify the table and return NULL. */ -extern void *hash_remove (Hash_table *table, const void *entry); - -/* Same as hash_remove. This interface is deprecated. - FIXME: Remove in 2022. */ -_GL_ATTRIBUTE_DEPRECATED -extern void *hash_delete (Hash_table *table, const void *entry); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/hmac.h b/include/libgnulib/hmac.h deleted file mode 100755 index 41b2712..0000000 --- a/include/libgnulib/hmac.h +++ /dev/null @@ -1,66 +0,0 @@ -/* hmac.h -- hashed message authentication codes - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Simon Josefsson. */ - -#ifndef HMAC_H -#define HMAC_H 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compute Hashed Message Authentication Code with MD5, as described - in RFC 2104, over BUFFER data of BUFLEN bytes using the KEY of - KEYLEN bytes, writing the output to pre-allocated 16 byte minimum - RESBUF buffer. Return 0 on success. */ -int -hmac_md5 (const void *key, size_t keylen, - const void *buffer, size_t buflen, void *restrict resbuf); - -/* Compute Hashed Message Authentication Code with SHA-1, over BUFFER - data of BUFLEN bytes using the KEY of KEYLEN bytes, writing the - output to pre-allocated 20 byte minimum RESBUF buffer. Return 0 on - success. */ -int -hmac_sha1 (const void *key, size_t keylen, - const void *in, size_t inlen, void *restrict resbuf); - -/* Compute Hashed Message Authentication Code with SHA-256, over BUFFER - data of BUFLEN bytes using the KEY of KEYLEN bytes, writing the - output to pre-allocated 32 byte minimum RESBUF buffer. Return 0 on - success. */ -int -hmac_sha256 (const void *key, size_t keylen, - const void *in, size_t inlen, void *restrict resbuf); - -/* Compute Hashed Message Authentication Code with SHA-512, over BUFFER - data of BUFLEN bytes using the KEY of KEYLEN bytes, writing the - output to pre-allocated 64 byte minimum RESBUF buffer. Return 0 on - success. */ -int -hmac_sha512 (const void *key, size_t keylen, - const void *in, size_t inlen, void *restrict resbuf); - - -#ifdef __cplusplus -} -#endif - -#endif /* HMAC_H */ diff --git a/include/libgnulib/human.h b/include/libgnulib/human.h deleted file mode 100755 index 6d8a598..0000000 --- a/include/libgnulib/human.h +++ /dev/null @@ -1,92 +0,0 @@ -/* human.h -- print human readable file size - - Copyright (C) 1996-2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert and Larry McVoy. */ - -#ifndef HUMAN_H_ -#define HUMAN_H_ 1 - -#include -#include -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* A conservative bound on the maximum length of a human-readable string. - The output can be the square of the largest uintmax_t, so double - its size before converting to a bound. - log10 (2.0) < 146/485. Add 1 for integer division truncation. - Also, the output can have a thousands separator between every digit, - so multiply by MB_LEN_MAX + 1 and then subtract MB_LEN_MAX. - Append 1 for a space before the suffix. - Finally, append 3, the maximum length of a suffix. */ -#define LONGEST_HUMAN_READABLE \ - ((2 * sizeof (uintmax_t) * CHAR_BIT * 146 / 485 + 1) * (MB_LEN_MAX + 1) \ - - MB_LEN_MAX + 1 + 3) - -/* Options for human_readable. */ -enum -{ - /* Unless otherwise specified these options may be ORed together. */ - - /* The following three options are mutually exclusive. */ - /* Round to plus infinity (default). */ - human_ceiling = 0, - /* Round to nearest, ties to even. */ - human_round_to_nearest = 1, - /* Round to minus infinity. */ - human_floor = 2, - - /* Group digits together, e.g. "1,000,000". This uses the - locale-defined grouping; the traditional C locale does not group, - so this has effect only if some other locale is in use. */ - human_group_digits = 4, - - /* When autoscaling, suppress ".0" at end. */ - human_suppress_point_zero = 8, - - /* Scale output and use SI-style units, ignoring the output block size. */ - human_autoscale = 16, - - /* Prefer base 1024 to base 1000. */ - human_base_1024 = 32, - - /* Prepend " " before unit symbol. */ - human_space_before_unit = 64, - - /* Append SI prefix, e.g. "k" or "M". */ - human_SI = 128, - - /* Append "B" (if base 1000) or "iB" (if base 1024) to SI prefix. */ - human_B = 256 -}; - -char *human_readable (uintmax_t, char *, int, uintmax_t, uintmax_t); - -enum strtol_error human_options (char const *, int *, uintmax_t *); - - -#ifdef __cplusplus -} -#endif - -#endif /* HUMAN_H_ */ diff --git a/include/libgnulib/i-ring.h b/include/libgnulib/i-ring.h deleted file mode 100755 index 2dfcd40..0000000 --- a/include/libgnulib/i-ring.h +++ /dev/null @@ -1,57 +0,0 @@ -/* definitions for a simple ring buffer - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -enum { I_RING_SIZE = 4 }; -static_assert (1 <= I_RING_SIZE); - -/* When ir_empty is true, the ring is empty. - Otherwise, ir_data[B..F] are defined, where B..F is the contiguous - range of indices, modulo I_RING_SIZE, from back to front, inclusive. - Undefined elements of ir_data are always set to ir_default_val. - Popping from an empty ring aborts. - Pushing onto a full ring returns the displaced value. - An empty ring has F==B and ir_empty == true. - A ring with one entry still has F==B, but now ir_empty == false. */ -struct I_ring -{ - int ir_data[I_RING_SIZE]; - int ir_default_val; - unsigned int ir_front; - unsigned int ir_back; - bool ir_empty; -}; -typedef struct I_ring I_ring; - -void i_ring_init (I_ring *ir, int ir_default_val); -int i_ring_push (I_ring *ir, int val); -int i_ring_pop (I_ring *ir); -bool i_ring_empty (I_ring const *ir) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/ialloc.h b/include/libgnulib/ialloc.h deleted file mode 100755 index 0ec0877..0000000 --- a/include/libgnulib/ialloc.h +++ /dev/null @@ -1,145 +0,0 @@ -/* ialloc.h -- malloc with idx_t rather than size_t - - Copyright 2021-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef IALLOC_H_ -#define IALLOC_H_ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_COLD, - _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if __ANDROID_API__ < 29 -#undef __ANDROID_API__ -#define __ANDROID_API__ 29 -#endif - -#include "idx.h" - -#include -#include -#include -#if defined __CHERI_PURE_CAPABILITY__ -# include -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef IALLOC_INLINE -# define IALLOC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -IALLOC_INLINE void * _GL_ATTRIBUTE_COLD -_gl_alloc_nomem (void) -{ - errno = ENOMEM; - return NULL; -} - -/* imalloc (size) is like malloc (size). - It returns a non-NULL pointer to size bytes of memory. - Upon failure, it returns NULL with errno set. */ -IALLOC_INLINE -_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/ -void * -imalloc (idx_t s) -{ - return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem (); -} - -/* irealloc (ptr, size) is like realloc (ptr, size). - It returns a non-NULL pointer to size bytes of memory. - Upon failure, it returns NULL with errno set. */ -IALLOC_INLINE -/*_GL_ATTRIBUTE_DEALLOC_FREE*/ -void * -irealloc (void *p, idx_t s) -{ - if (s <= SIZE_MAX) - { - /* Work around GNU realloc glitch by treating a zero size as if it - were 1, so that returning NULL is equivalent to failing. */ - p = realloc (p, s | !s); -#if defined __CHERI_PURE_CAPABILITY__ - if (p != NULL) - p = cheri_bounds_set (p, s); -#endif - return p; - } - else - return _gl_alloc_nomem (); -} - -/* icalloc (num, size) is like calloc (num, size). - It returns a non-NULL pointer to num * size bytes of memory. - Upon failure, it returns NULL with errno set. */ -IALLOC_INLINE -_GL_ATTRIBUTE_MALLOC /*_GL_ATTRIBUTE_DEALLOC_FREE*/ -void * -icalloc (idx_t n, idx_t s) -{ - if (SIZE_MAX < n) - { - if (s != 0) - return _gl_alloc_nomem (); - n = 0; - } - if (SIZE_MAX < s) - { - if (n != 0) - return _gl_alloc_nomem (); - s = 0; - } - return calloc (n, s); -} - -/* ireallocarray (ptr, num, size) is like reallocarray (ptr, num, size). - It returns a non-NULL pointer to num * size bytes of memory. - Upon failure, it returns NULL with errno set. */ -IALLOC_INLINE void * -ireallocarray (void *p, idx_t n, idx_t s) -{ - if (n <= SIZE_MAX && s <= SIZE_MAX) - { - /* Work around GNU reallocarray glitch by treating a zero size as if - it were 1, so that returning NULL is equivalent to failing. */ - size_t nx = n; - size_t sx = s; - if (n == 0 || s == 0) - nx = sx = 1; - p = reallocarray (p, nx, sx); -#if defined __CHERI_PURE_CAPABILITY__ - if (p != NULL && (n == 0 || s == 0)) - p = cheri_bounds_set (p, 0); -#endif - return p; - } - else - return _gl_alloc_nomem (); -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/iconv_open-aix.gperf b/include/libgnulib/iconv_open-aix.gperf deleted file mode 100755 index 55cccd0..0000000 --- a/include/libgnulib/iconv_open-aix.gperf +++ /dev/null @@ -1,60 +0,0 @@ -/* Character set conversion. - Copyright (C) 2007, 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct mapping { int standard_name; const char vendor_name[10 + 1]; }; -%struct-type -%language=ANSI-C -%define slot-name standard_name -%define hash-function-name mapping_hash -%define lookup-function-name mapping_lookup -%readonly-tables -%global-table -%define word-array-name mappings -%pic -%% -# On AIX 5.1, look in /usr/lib/nls/loc/uconvTable. -ISO-8859-1, "ISO8859-1" -ISO-8859-2, "ISO8859-2" -ISO-8859-3, "ISO8859-3" -ISO-8859-4, "ISO8859-4" -ISO-8859-5, "ISO8859-5" -ISO-8859-6, "ISO8859-6" -ISO-8859-7, "ISO8859-7" -ISO-8859-8, "ISO8859-8" -ISO-8859-9, "ISO8859-9" -ISO-8859-15, "ISO8859-15" -CP437, "IBM-437" -CP850, "IBM-850" -CP852, "IBM-852" -CP856, "IBM-856" -CP857, "IBM-857" -CP861, "IBM-861" -CP865, "IBM-865" -CP869, "IBM-869" -ISO-8859-13, "IBM-921" -CP922, "IBM-922" -CP932, "IBM-932" -CP943, "IBM-943" -CP1046, "IBM-1046" -CP1124, "IBM-1124" -CP1125, "IBM-1125" -CP1129, "IBM-1129" -CP1252, "IBM-1252" -GB2312, "IBM-eucCN" -EUC-JP, "IBM-eucJP" -EUC-KR, "IBM-eucKR" -EUC-TW, "IBM-eucTW" -BIG5, "big5" diff --git a/include/libgnulib/iconv_open-hpux.gperf b/include/libgnulib/iconv_open-hpux.gperf deleted file mode 100755 index ddf51e3..0000000 --- a/include/libgnulib/iconv_open-hpux.gperf +++ /dev/null @@ -1,72 +0,0 @@ -/* Character set conversion. - Copyright (C) 2007, 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct mapping { int standard_name; const char vendor_name[9 + 1]; }; -%struct-type -%language=ANSI-C -%define slot-name standard_name -%define hash-function-name mapping_hash -%define lookup-function-name mapping_lookup -%readonly-tables -%global-table -%define word-array-name mappings -%pic -%% -# On HP-UX 11.11, look in /usr/lib/nls/iconv. -ISO-8859-1, "iso88591" -ISO-8859-2, "iso88592" -ISO-8859-5, "iso88595" -ISO-8859-6, "iso88596" -ISO-8859-7, "iso88597" -ISO-8859-8, "iso88598" -ISO-8859-9, "iso88599" -ISO-8859-15, "iso885915" -CP437, "cp437" -CP775, "cp775" -CP850, "cp850" -CP852, "cp852" -CP855, "cp855" -CP857, "cp857" -CP861, "cp861" -CP862, "cp862" -CP864, "cp864" -CP865, "cp865" -CP866, "cp866" -CP869, "cp869" -CP874, "cp874" -CP1250, "cp1250" -CP1251, "cp1251" -CP1252, "cp1252" -CP1253, "cp1253" -CP1254, "cp1254" -CP1255, "cp1255" -CP1256, "cp1256" -CP1257, "cp1257" -CP1258, "cp1258" -HP-ROMAN8, "roman8" -HP-ARABIC8, "arabic8" -HP-GREEK8, "greek8" -HP-HEBREW8, "hebrew8" -HP-TURKISH8, "turkish8" -HP-KANA8, "kana8" -TIS-620, "tis620" -GB2312, "hp15CN" -EUC-JP, "eucJP" -EUC-KR, "eucKR" -EUC-TW, "eucTW" -BIG5, "big5" -SHIFT_JIS, "sjis" -UTF-8, "utf8" diff --git a/include/libgnulib/iconv_open-irix.gperf b/include/libgnulib/iconv_open-irix.gperf deleted file mode 100755 index cd0ad54..0000000 --- a/include/libgnulib/iconv_open-irix.gperf +++ /dev/null @@ -1,47 +0,0 @@ -/* Character set conversion. - Copyright (C) 2007, 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct mapping { int standard_name; const char vendor_name[10 + 1]; }; -%struct-type -%language=ANSI-C -%define slot-name standard_name -%define hash-function-name mapping_hash -%define lookup-function-name mapping_lookup -%readonly-tables -%global-table -%define word-array-name mappings -%pic -%% -# On IRIX 6.5, look in /usr/lib/iconv and /usr/lib/international/encodings. -ISO-8859-1, "ISO8859-1" -ISO-8859-2, "ISO8859-2" -ISO-8859-3, "ISO8859-3" -ISO-8859-4, "ISO8859-4" -ISO-8859-5, "ISO8859-5" -ISO-8859-6, "ISO8859-6" -ISO-8859-7, "ISO8859-7" -ISO-8859-8, "ISO8859-8" -ISO-8859-9, "ISO8859-9" -ISO-8859-15, "ISO8859-15" -KOI8-R, "KOI8" -CP855, "DOS855" -CP1251, "WIN1251" -GB2312, "eucCN" -EUC-JP, "eucJP" -EUC-KR, "eucKR" -EUC-TW, "eucTW" -SHIFT_JIS, "sjis" -TIS-620, "TIS620" diff --git a/include/libgnulib/iconv_open-osf.gperf b/include/libgnulib/iconv_open-osf.gperf deleted file mode 100755 index 417f7e3..0000000 --- a/include/libgnulib/iconv_open-osf.gperf +++ /dev/null @@ -1,66 +0,0 @@ -/* Character set conversion. - Copyright (C) 2007, 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct mapping { int standard_name; const char vendor_name[10 + 1]; }; -%struct-type -%language=ANSI-C -%define slot-name standard_name -%define hash-function-name mapping_hash -%define lookup-function-name mapping_lookup -%readonly-tables -%global-table -%define word-array-name mappings -%pic -%% -# On OSF/1 5.1, look in /usr/lib/nls/loc/iconv. -ISO-8859-1, "ISO8859-1" -ISO-8859-2, "ISO8859-2" -ISO-8859-3, "ISO8859-3" -ISO-8859-4, "ISO8859-4" -ISO-8859-5, "ISO8859-5" -ISO-8859-6, "ISO8859-6" -ISO-8859-7, "ISO8859-7" -ISO-8859-8, "ISO8859-8" -ISO-8859-9, "ISO8859-9" -ISO-8859-15, "ISO8859-15" -CP437, "cp437" -CP775, "cp775" -CP850, "cp850" -CP852, "cp852" -CP855, "cp855" -CP857, "cp857" -CP861, "cp861" -CP862, "cp862" -CP865, "cp865" -CP866, "cp866" -CP869, "cp869" -CP874, "cp874" -CP949, "KSC5601" -CP1250, "cp1250" -CP1251, "cp1251" -CP1252, "cp1252" -CP1253, "cp1253" -CP1254, "cp1254" -CP1255, "cp1255" -CP1256, "cp1256" -CP1257, "cp1257" -CP1258, "cp1258" -EUC-JP, "eucJP" -EUC-KR, "eucKR" -EUC-TW, "eucTW" -BIG5, "big5" -SHIFT_JIS, "SJIS" -TIS-620, "TACTIS" diff --git a/include/libgnulib/iconv_open-solaris.gperf b/include/libgnulib/iconv_open-solaris.gperf deleted file mode 100755 index d5411de..0000000 --- a/include/libgnulib/iconv_open-solaris.gperf +++ /dev/null @@ -1,46 +0,0 @@ -/* Character set conversion. - Copyright (C) 2007, 2009, 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct mapping { int standard_name; const char vendor_name[10 + 1]; }; -%struct-type -%language=ANSI-C -%define slot-name standard_name -%define hash-function-name mapping_hash -%define lookup-function-name mapping_lookup -%readonly-tables -%global-table -%define word-array-name mappings -%pic -%% -# On Solaris 10, look in the "iconv -l" output. Some aliases are advertised but -# not actually supported by the iconv() function and by the 'iconv' program. -# For example: -# $ echo abc | iconv -f 646 -t ISO-8859-1 -# Not supported 646 to ISO-8859-1 -# $ echo abc | iconv -f 646 -t ISO8859-1 -$ abc -ASCII, "646" -ISO-8859-1, "ISO8859-1" -ISO-8859-2, "ISO8859-2" -ISO-8859-3, "ISO8859-3" -ISO-8859-4, "ISO8859-4" -ISO-8859-5, "ISO8859-5" -ISO-8859-6, "ISO8859-6" -ISO-8859-7, "ISO8859-7" -ISO-8859-8, "ISO8859-8" -ISO-8859-9, "ISO8859-9" -ISO-8859-15, "ISO8859-15" -CP1251, "ansi-1251" diff --git a/include/libgnulib/iconv_open-zos.gperf b/include/libgnulib/iconv_open-zos.gperf deleted file mode 100755 index a7fc3dc..0000000 --- a/include/libgnulib/iconv_open-zos.gperf +++ /dev/null @@ -1,76 +0,0 @@ -/* Character set conversion. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct mapping { int standard_name; const char vendor_name[10 + 1]; }; -%struct-type -%language=ANSI-C -%define slot-name standard_name -%define hash-function-name mapping_hash -%define lookup-function-name mapping_lookup -%readonly-tables -%global-table -%define word-array-name mappings -%pic -%% -ASCII, "00367" -ISO-8859-1, "ISO8859-1" -ISO-8859-2, "ISO8859-2" -ISO-8859-3, "00913" -ISO-8859-4, "ISO8859-4" -ISO-8859-5, "ISO8859-5" -ISO-8859-6, "ISO8859-6" -ISO-8859-7, "ISO8859-7" -ISO-8859-8, "05012" -ISO-8859-9, "ISO8859-9" -ISO-8859-13, "ISO8859-13" -ISO-8859-15, "ISO8859-15" -KOI8-R, "00878" -KOI8-U, "01168" -CP437, "IBM-437" -CP775, "00775" -CP850, "09042" -CP852, "IBM-852" -CP855, "13143" -CP856, "IBM-856" -CP857, "00857" -CP861, "IBM-861" -CP862, "IBM-862" -CP864, "IBM-864" -CP865, "00865" -CP866, "04962" -CP869, "IBM-869" -CP874, "TIS-620" -CP922, "IBM-922" -CP932, "IBM-943" -CP943, "IBM-943" -CP949, "IBM-1363" -CP1046, "IBM-1046" -CP1124, "IBM-1124" -CP1125, "IBM-1125" -CP1129, "01129" -CP1131, "01131" -CP1250, "IBM-5346" -CP1251, "IBM-5347" -CP1252, "IBM-5348" -CP1253, "IBM-5349" -CP1254, "IBM-5350" -CP1255, "09447" -CP1256, "09448" -CP1257, "09449" -GB2312, "IBM-eucCN" -EUC-JP, "01350" -EUC-KR, "IBM-eucKR" -GBK, "IBM-1386" diff --git a/include/libgnulib/iconveh.h b/include/libgnulib/iconveh.h deleted file mode 100755 index c607373..0000000 --- a/include/libgnulib/iconveh.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Character set conversion handler type. - Copyright (C) 2001-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible. - - This file 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 file 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 program. If not, see . */ - -#ifndef _ICONVEH_H -#define _ICONVEH_H - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Handling of unconvertible characters. */ -enum iconv_ilseq_handler -{ - iconveh_error, /* return and set errno = EILSEQ */ - iconveh_question_mark, /* use one '?' per unconvertible character */ - iconveh_escape_sequence, /* use escape sequence \uxxxx or \Uxxxxxxxx */ - iconveh_replacement_character /* use one U+FFFD per unconvertible character - if that fits in the target encoding, - otherwise one '?' */ -}; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _ICONVEH_H */ diff --git a/include/libgnulib/idcache.h b/include/libgnulib/idcache.h deleted file mode 100755 index 8901416..0000000 --- a/include/libgnulib/idcache.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Username <--> uid and groupname <--> gid conversions, with cache for speed. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2007. */ - -#ifndef IDCACHE_H -#define IDCACHE_H 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -extern char *getuser (uid_t uid); -extern char *getgroup (gid_t gid); -extern uid_t *getuidbyname (const char *user); -extern gid_t *getgidbyname (const char *group); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/idpriv.h b/include/libgnulib/idpriv.h deleted file mode 100755 index a3ae592..0000000 --- a/include/libgnulib/idpriv.h +++ /dev/null @@ -1,116 +0,0 @@ -/* Dropping uid/gid privileges of the current process. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _IDPRIV_H -#define _IDPRIV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* This module allows programs which are installed with setuid or setgid bit - (and which therefore initially run with an effective user id or group id - different from the one of the current user) to drop their uid or gid - privilege, either permanently or temporarily. - - It is absolutely necessary to minimize the amount of code that is running - with escalated privileges (e.g. with effective uid = root). The reason is - that any bug or exploit in a part of a program that is running with - escalated privileges is a security vulnerability that - upon discovery - - puts the users in danger and requires immediate fixing. Then consider that - there's a bug every 10 or 20 lines of code on average... - - For programs that temporarily drop privileges but have the ability to - restore them later, there are additionally the dangers that - - Any bug in the non-privileged part of the program may be used to - create invalid data structures that will trigger security - vulnerabilities in the privileged part of the program. - - Code execution exploits in the non-privileged part of the program may - be used to invoke the function that restores high privileges and then - execute additional arbitrary code. - - 1) The usual, and reasonably safe, way to minimize the amount of code - running with privileges is to create a separate executable, with setuid - or setgid bit, that contains only code for the tasks that require - privileges (and,of course, strict checking of the arguments, so that the - program cannot be abused). The main program is installed without setuid - or setgid bit. - - 2) A less safe way is to do some privileged tasks at the beginning of the - program's run, and drop privileges permanently as soon as possible. - - Note: There may still be security issues if the privileged task puts - sensitive data into the process memory or opens communication channels - to restricted facilities. - - 3) The most unsafe way is to drop privileges temporarily for most of the - main program but to re-enable them for the duration of privileged tasks. - - As explained above, this approach has uncontrollable dangers for - security. - - This approach is normally not usable in multithreaded programs, because - you cannot know what kind of system calls the other threads could be - doing during the time the privileges are enabled. - - With approach 1, you don't need gnulib modules. - With approach 2, you need the gnulib module 'idpriv-drop'. - With approach 3, you need the gnulib module 'idpriv-droptemp'. But really, - you should better stay away from this approach. - */ - -/* For more in-depth discussion of these topics, see the papers/articles - * Hao Chen, David Wagner, Drew Dean: Setuid Demystified - - * Dan Tsafrir, Dilma da Silva, David Wagner: The Murky Issue of Changing - Process Identity: Revising "Setuid Demystified" - - - * Dhruv Mohindra: Observe correct revocation order while relinquishing - privileges - - */ - - -/* For approach 2. */ - -/* Drop the uid and gid privileges of the current process. - Return 0 if successful, or -1 with errno set upon failure. The recommended - handling of failure is to terminate the process. */ -extern int idpriv_drop (void); - - -/* For approach 3. */ - -/* Drop the uid and gid privileges of the current process in a way that allows - them to be restored later. - Return 0 if successful, or -1 with errno set upon failure. The recommended - handling of failure is to terminate the process. */ -extern int idpriv_temp_drop (void); - -/* Restore the uid and gid privileges of the current process. - Return 0 if successful, or -1 with errno set upon failure. The recommended - handling of failure is to not perform the actions that require the escalated - privileges. */ -extern int idpriv_temp_restore (void); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _IDPRIV_H */ diff --git a/include/libgnulib/idx.h b/include/libgnulib/idx.h deleted file mode 100755 index 43793f2..0000000 --- a/include/libgnulib/idx.h +++ /dev/null @@ -1,144 +0,0 @@ -/* A type for indices and sizes. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _IDX_H -#define _IDX_H - -/* Get ptrdiff_t. */ -#include - -/* Get PTRDIFF_MAX. */ -#include - -/* The type 'idx_t' holds an (array) index or an (object) size. - Its implementation promotes to a signed integer type, - which can hold the values - 0..2^63-1 (on 64-bit platforms) or - 0..2^31-1 (on 32-bit platforms). - - Why a signed integer type? - - * Security: Signed types can be checked for overflow via - '-fsanitize=undefined', but unsigned types cannot. - - * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few - surprising results for comparisons, such as - - (int) -3 < (unsigned long) 7 => false - (int) -3 < (unsigned int) 7 => false - and on 32-bit machines: - (long) -3 < (unsigned int) 7 => false - - This is surprising because the natural comparison order is by - value in the realm of infinite-precision signed integers (ℤ). - - The best way to get rid of such surprises is to use signed types - for numerical integer values, and use unsigned types only for - bit masks and enums. - - Why not use 'size_t' directly? - - * Because 'size_t' is an unsigned type, and a signed type is better. - See above. - - Why not use 'ssize_t'? - - * 'ptrdiff_t' is more portable; it is standardized by ISO C - whereas 'ssize_t' is standardized only by POSIX. - - * 'ssize_t' is not required to be as wide as 'size_t', and some - now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'. - - * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider - than 'size_t', which can be a win and conforms to POSIX. - - Won't this cause a problem with objects larger than PTRDIFF_MAX? - - * Typical modern or large platforms do not allocate such objects, - so this is not much of a problem in practice; for example, you - can safely write 'idx_t len = strlen (s);'. To port to older - small platforms where allocations larger than PTRDIFF_MAX could - in theory be a problem, you can use Gnulib's ialloc module, or - functions like ximalloc in Gnulib's xalloc module. - - Why not use 'ptrdiff_t' directly? - - * Maintainability: When reading and modifying code, it helps to know that - a certain variable cannot have negative values. For example, when you - have a loop - - int n = ...; - for (int i = 0; i < n; i++) ... - - or - - ptrdiff_t n = ...; - for (ptrdiff_t i = 0; i < n; i++) ... - - you have to ask yourself "what if n < 0?". Whereas in - - idx_t n = ...; - for (idx_t i = 0; i < n; i++) ... - - you know that this case cannot happen. - - Similarly, when a programmer writes - - idx_t = ptr2 - ptr1; - - there is an implied assertion that ptr1 and ptr2 point into the same - object and that ptr1 <= ptr2. - - * Being future-proof: In the future, range types (integers which are - constrained to a certain range of values) may be added to C compilers - or to the C standard. Several programming languages (Ada, Haskell, - Common Lisp, Pascal) already have range types. Such range types may - help producing good code and good warnings. The type 'idx_t' could - then be typedef'ed to a range type that is signed after promotion. */ - -#ifdef __cplusplus -extern "C" { -#endif - - -/* In the future, idx_t could be typedef'ed to a signed range type. - The clang "extended integer types", supported in Clang 11 or newer - , - are a special case of range types. However, these types don't support binary - operators with plain integer types (e.g. expressions such as x > 1). - Therefore, they don't behave like signed types (and not like unsigned types - either). So, we cannot use them here. */ - -/* Use the signed type 'ptrdiff_t'. */ -/* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same - size, but it is so on all platforms we have seen since 1990. */ -typedef ptrdiff_t idx_t; - -/* IDX_MAX is the maximum value of an idx_t. */ -#define IDX_MAX PTRDIFF_MAX - -/* So far no need has been found for an IDX_WIDTH macro. - Perhaps there should be another macro IDX_VALUE_BITS that does not - count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ - - -#ifdef __cplusplus -} -#endif - -#endif /* _IDX_H */ diff --git a/include/libgnulib/ignore-value.h b/include/libgnulib/ignore-value.h deleted file mode 100755 index de4a240..0000000 --- a/include/libgnulib/ignore-value.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ignore a function return without a compiler warning. -*- coding: utf-8 -*- - - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Jim Meyering, Eric Blake and Pádraig Brady. */ - -/* Use "ignore_value" to avoid a warning when using a function declared with - gcc's warn_unused_result attribute, but for which you really do want to - ignore the result. Traditionally, people have used a "(void)" cast to - indicate that a function's return value is deliberately unused. However, - if the function is declared with __attribute__((warn_unused_result)), - gcc issues a warning even with the cast. - - Caution: most of the time, you really should heed gcc's warning, and - check the return value. However, in those exceptional cases in which - you're sure you know what you're doing, use this function. - - For the record, here's one of the ignorable warnings: - "copy.c:233: warning: ignoring return value of 'fchown', - declared with attribute warn_unused_result". */ - -#ifndef _GL_IGNORE_VALUE_H -#define _GL_IGNORE_VALUE_H - -/* Normally casting an expression to void discards its value, but GCC - versions 3.4 and newer have __attribute__ ((__warn_unused_result__)) - which may cause unwanted diagnostics in that case. Use __typeof__ - and __extension__ to work around the problem, if the workaround is - known to be needed. - The workaround is not needed with clang. */ -#if (3 < __GNUC__ + (4 <= __GNUC_MINOR__)) && !defined __clang__ -# define ignore_value(x) \ - (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; })) -#else -# define ignore_value(x) ((void) (x)) -#endif - -#endif diff --git a/include/libgnulib/immutable.h b/include/libgnulib/immutable.h deleted file mode 100755 index c524771..0000000 --- a/include/libgnulib/immutable.h +++ /dev/null @@ -1,98 +0,0 @@ -/* Immutable data. - - Copyright (C) 2021-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2021. */ - -#ifndef _IMMUTABLE_H -#define _IMMUTABLE_H - -/* This file provide a facility to allocate and free immutable data objects. - - An immutable data object is allocated in three steps: - 1. You allocate an immutable memory region. - DATA *wp = immmalloc (sizeof (*wp)); - The pointer wp is actually a writable view to the memory region. - 2. You fill the memory region, through the pointer wp: - wp->x = ...; - wp->y = ...; - ... - 3. You declare the memory region as frozen. This means that you relinquish - write access. - DATA const *p = immfreeze (wp); - You can now let wp get out-of-scope. - - Then the pointer p can be used only in read-only ways. That is, if you cast - away the 'const' and attempt to write to the memory region, it will crash at - runtime (through a SIGSEGV signal). - p->x = ...; // rejected by the compiler - ((DATA *) p)->x = ...; // crashes at runtime - - Finally, you can free the immutable data object: - immfree (p); - */ - -/* If you compile this module with the C macro NO_IMMUTABLE set to 1, or on a - platform that lacks support for read-only and writeable memory areas, the - functions work alike, except that the "read-only" pointers are actually - writable. */ - -/* This file uses HAVE_WORKING_MPROTECT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* This macro tells whether the implementation effectively rejects writes to - immutable data. */ -#if !NO_IMMUTABLE && ((defined _WIN32 && !defined __CYGWIN__) || HAVE_WORKING_MPROTECT) -# define IMMUTABLE_EFFECTIVE 1 -#else -# define IMMUTABLE_EFFECTIVE 0 -#endif - -/* Allocates an immutable memory region. - SIZE if the number of bytes; should be > 0. - Returns a writeable pointer to the memory region. - Upon memory allocation failure, returns NULL with errno set to ENOMEM. */ -extern void * immmalloc (size_t size); - -/* Freezes an immutable memory region. - WRITABLE_POINTER is a non-NULL return value from immmalloc(). - Returns a read-only pointer to the same memory region. */ -extern const void * immfreeze (void *writable_pointer); - -/* Frees an immutable memory region. - READONLY_POINTER is a return value from immfreeze(). */ -extern void immfree (const void *readonly_pointer); - -/* The following is just an application to some data types. */ - -/* Allocates an immutable memory region that contains a copy of the given string. - Returns a read-only pointer to this duplicated string. - Upon memory allocation failure, returns NULL with errno set to ENOMEM. */ -extern const char * immstrdup (const char *string); - -#ifdef __cplusplus -} -#endif - -#endif /* _IMMUTABLE_H */ diff --git a/include/libgnulib/ino-map.h b/include/libgnulib/ino-map.h deleted file mode 100755 index 06dd4af..0000000 --- a/include/libgnulib/ino-map.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Maintain a mapping of ino_t numbers to small integers. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert, 2010. */ - -#ifndef _GL_INO_MAP_H -#define _GL_INO_MAP_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define INO_MAP_INSERT_FAILURE ((size_t) -1) - -struct ino_map; - -void ino_map_free (struct ino_map *) _GL_ATTRIBUTE_NONNULL ((1)); - -struct ino_map *ino_map_alloc (size_t) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (ino_map_free, 1); - -size_t ino_map_insert (struct ino_map *, ino_t) _GL_ATTRIBUTE_NONNULL ((1)); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/integer_length.h b/include/libgnulib/integer_length.h deleted file mode 100755 index 12500ac..0000000 --- a/include/libgnulib/integer_length.h +++ /dev/null @@ -1,47 +0,0 @@ -/* integer_length - find most significant bit in an unsigned integer. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2011. */ - -#ifndef _INTEGER_LENGTH_H -#define _INTEGER_LENGTH_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* These functions return the minimum number of bits required to represent - the given unsigned integer. - For non-zero values, this is the position of the most significant bit - that is set, plus one. For zero, it is 0. */ - -/* Returns the integer length of x. - The result is >= 0, <= sizeof (unsigned int) * CHAR_BIT. */ -extern int integer_length (unsigned int x); - -/* Returns the integer length of x. - The result is >= 0, <= sizeof (unsigned long) * CHAR_BIT. */ -extern int integer_length_l (unsigned long x); - -/* Returns the integer length of x. - The result is >= 0, <= sizeof (unsigned long long) * CHAR_BIT. */ -extern int integer_length_ll (unsigned long long x); - -#ifdef __cplusplus -} -#endif - -#endif /* _INTEGER_LENGTH_H */ diff --git a/include/libgnulib/intprops-internal.h b/include/libgnulib/intprops-internal.h deleted file mode 100755 index c8cc0e2..0000000 --- a/include/libgnulib/intprops-internal.h +++ /dev/null @@ -1,399 +0,0 @@ -/* intprops-internal.h -- properties of integer types not visible to users - - Copyright (C) 2001-2024 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_INTPROPS_INTERNAL_H -#define _GL_INTPROPS_INTERNAL_H - -#include - -/* Pacify GCC 13.2 in some calls to _GL_EXPR_SIGNED. */ -#if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) && !defined __clang__ -# pragma GCC diagnostic ignored "-Wtype-limits" -#endif - -/* Return a value with the common real type of E and V and the value of V. - Do not evaluate E. */ -#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) - -/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see - . */ -#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) - -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if the real type T is signed. */ -#define _GL_TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* Return 1 if the real expression E, after promotion, has a - signed or floating type. Do not evaluate E. */ -#define _GL_EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) - - -/* Minimum and maximum values for integer types and expressions. */ - -/* The width in bits of the integer type or expression T. - Do not evaluate T. T must not be a bit-field expression. - Padding bits are not supported; this is checked at compile-time below. */ -#define _GL_TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) - -/* The maximum and minimum values for the type of the expression E, - after integer promotion. E is not evaluated. */ -#define _GL_INT_MINIMUM(e) \ - (_GL_EXPR_SIGNED (e) \ - ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ - : _GL_INT_CONVERT (e, 0)) -#define _GL_INT_MAXIMUM(e) \ - (_GL_EXPR_SIGNED (e) \ - ? _GL_SIGNED_INT_MAXIMUM (e) \ - : _GL_INT_NEGATE_CONVERT (e, 1)) -#define _GL_SIGNED_INT_MAXIMUM(e) \ - (((_GL_INT_CONVERT (e, 1) << (_GL_TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) - -/* Work around OpenVMS incompatibility with C99. */ -#if !defined LLONG_MAX && defined __INT64_MAX -# define LLONG_MAX __INT64_MAX -# define LLONG_MIN __INT64_MIN -#endif - -/* This include file assumes that signed types are two's complement without - padding bits; the above macros have undefined behavior otherwise. - If this is a problem for you, please let us know how to fix it for your host. - This assumption is tested by the intprops-tests module. */ - -/* Does the __typeof__ keyword work? This could be done by - 'configure', but for now it's easier to do it by hand. */ -#if (2 <= __GNUC__ \ - || (4 <= __clang_major__) \ - || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ - || (0x5110 <= __SUNPRO_C && !__STDC__)) -# define _GL_HAVE___TYPEOF__ 1 -#else -# define _GL_HAVE___TYPEOF__ 0 -#endif - -/* Return 1 if the integer type or expression T might be signed. Return 0 - if it is definitely unsigned. T must not be a bit-field expression. - This macro does not evaluate its argument, and expands to an - integer constant expression. */ -#if _GL_HAVE___TYPEOF__ -# define _GL_SIGNED_TYPE_OR_EXPR(t) _GL_TYPE_SIGNED (__typeof__ (t)) -#else -# define _GL_SIGNED_TYPE_OR_EXPR(t) 1 -#endif - -/* Return 1 if - A would overflow in [MIN,MAX] arithmetic. - A should not have side effects, and A's type should be an - integer with minimum value MIN and maximum MAX. */ -#define _GL_INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ - ((min) < 0 ? (a) < - (max) : 0 < (a)) - -/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow - (A, B, P) work when P is non-null. */ -#ifdef __EDG__ -/* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned - . */ -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) -/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, - see . */ -#elif 7 <= __GNUC__ -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 -#else -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 -#endif - -/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ -#if defined __clang_major__ && __clang_major__ < 14 -/* Work around Clang bug . */ -# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 -#else -# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW -#endif - -/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for - __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ -#ifdef __EDG__ -/* In EDG-based compilers like ICC 2021.3 and earlier, - __builtin_add_overflow_p etc. are not treated as integral constant - expressions even when all arguments are. */ -# define _GL_HAS_BUILTIN_OVERFLOW_P 0 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) -#else -# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) -#endif - -#if (!defined _GL_STDCKDINT_H && 202311 <= __STDC_VERSION__ \ - && ! (_GL_HAS_BUILTIN_ADD_OVERFLOW && _GL_HAS_BUILTIN_MUL_OVERFLOW)) -# include -#endif - -/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. - Return 1 if the result overflows. Arguments should not have side - effects and A, B and *R can be of any integer type other than char, - bool, a bit-precise integer type, or an enumeration type. */ -#if _GL_HAS_BUILTIN_ADD_OVERFLOW -# define _GL_INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) -# define _GL_INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) -#elif defined ckd_add && defined ckd_sub && !defined _GL_STDCKDINT_H -# define _GL_INT_ADD_WRAPV(a, b, r) ckd_add (r, + (a), + (b)) -# define _GL_INT_SUBTRACT_WRAPV(a, b, r) ckd_sub (r, + (a), + (b)) -#else -# define _GL_INT_ADD_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) -# define _GL_INT_SUBTRACT_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) -#endif -#if _GL_HAS_BUILTIN_MUL_OVERFLOW -# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ - || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ - && !defined __clang__ && !defined __EDG__) -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) -# else - /* Work around GCC bug 91450. */ -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ - ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && _GL_EXPR_SIGNED (a) && _GL_EXPR_SIGNED (b) \ - && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, \ - (__typeof__ (*(r))) 0, \ - (__typeof__ (*(r))) -1)) \ - ? ((void) __builtin_mul_overflow (a, b, r), 1) \ - : __builtin_mul_overflow (a, b, r)) -# endif -#elif defined ckd_mul && !defined _GL_STDCKDINT_H -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) ckd_mul (r, + (a), + (b)) -#else -# define _GL_INT_MULTIPLY_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) -#endif - -/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 - https://llvm.org/bugs/show_bug.cgi?id=25390 - For now, assume GCC < 14 and all Clang versions generate bogus - warnings for _Generic. This matters only for compilers that - lack relevant builtins. */ -#if (__GNUC__ && __GNUC__ < 14) || defined __clang__ -# define _GL__GENERIC_BOGUS 1 -#else -# define _GL__GENERIC_BOGUS 0 -#endif - -/* Store the low-order bits of A B into *R, where OP specifies - the operation and OVERFLOW the overflow predicate. Return 1 if the - result overflows. Arguments should not have side effects, - and A, B and *R can be of any integer type other than char, bool, a - bit-precise integer type, or an enumeration type. */ -#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS -# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ - (_Generic \ - (*(r), \ - signed char: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - signed char, SCHAR_MIN, SCHAR_MAX), \ - unsigned char: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned char, 0, UCHAR_MAX), \ - short int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - short int, SHRT_MIN, SHRT_MAX), \ - unsigned short int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned short int, 0, USHRT_MAX), \ - int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX), \ - unsigned int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned int, 0, UINT_MAX), \ - long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX), \ - unsigned long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX), \ - long long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX), \ - unsigned long long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - unsigned long long int, 0, ULLONG_MAX))) -#else -/* Store the low-order bits of A B into *R, where OP specifies - the operation and OVERFLOW the overflow predicate. If *R is - signed, its type is ST with bounds SMIN..SMAX; otherwise its type - is UT with bounds U..UMAX. ST and UT are narrower than int. - Return 1 if the result overflows. Arguments should not have side - effects, and A, B and *R can be of any integer type other than - char, bool, a bit-precise integer type, or an enumeration type. */ -# if _GL_HAVE___TYPEOF__ -# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ - (_GL_TYPE_SIGNED (__typeof__ (*(r))) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) -# else -# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ - (overflow (a, b, smin, smax) \ - ? (overflow (a, b, 0, umax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ - : (overflow (a, b, 0, umax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) -# endif - -# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ - (sizeof *(r) == sizeof (signed char) \ - ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ - signed char, SCHAR_MIN, SCHAR_MAX, \ - unsigned char, UCHAR_MAX) \ - : sizeof *(r) == sizeof (short int) \ - ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ - short int, SHRT_MIN, SHRT_MAX, \ - unsigned short int, USHRT_MAX) \ - : sizeof *(r) == sizeof (int) \ - ? (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned int, 0, UINT_MAX)) \ - : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) -# ifdef LLONG_MAX -# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - (sizeof *(r) == sizeof (long int) \ - ? (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX)) \ - : (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - unsigned long long int, 0, ULLONG_MAX))) -# else -# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - (_GL_EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX)) -# endif -#endif - -/* Store the low-order bits of A B into *R, where the operation - is given by OP. Use the unsigned type UT for calculation to avoid - overflow problems. *R's type is T, with extrema TMIN and TMAX. - T can be any signed integer type other than char, bool, a - bit-precise integer type, or an enumeration type. - Return 1 if the result overflows. */ -#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ - (overflow (a, b, tmin, tmax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) - -/* Return 1 if the integer expressions A - B and -A would overflow, - respectively. Arguments should not have side effects, - and can be any signed integer type other than char, bool, a - bit-precise integer type, or an enumeration type. - These macros are tuned for their last input argument being a constant. */ - -#if _GL_HAS_BUILTIN_OVERFLOW_P -# define _GL_INT_NEGATE_OVERFLOW(a) \ - __builtin_sub_overflow_p (0, a, (__typeof__ (- (a))) 0) -#else -# define _GL_INT_NEGATE_OVERFLOW(a) \ - _GL_INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) -#endif - -/* Return the low-order bits of A B, where the operation is given - by OP. Use the unsigned type UT for calculation to avoid undefined - behavior on signed integer overflow, and convert the result to type T. - UT is at least as wide as T and is no narrower than unsigned int, - T is two's complement, and there is no padding or trap representations. - Assume that converting UT to T yields the low-order bits, as is - done in all known two's-complement C compilers. E.g., see: - https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html - - According to the C standard, converting UT to T yields an - implementation-defined result or signal for values outside T's - range. However, code that works around this theoretical problem - runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: - https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html - As the compiler bug is real, don't try to work around the - theoretical problem. */ - -#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ - ((t) ((ut) (a) op (ut) (b))) - -/* Return true if the numeric values A + B, A - B, A * B fall outside - the range TMIN..TMAX. Arguments should not have side effects - and can be any integer type other than char, bool, - a bit-precise integer type, or an enumeration type. - TMIN should be signed and nonpositive. - TMAX should be positive, and should be signed unless TMIN is zero. */ -#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ - ((b) < 0 \ - ? (((tmin) \ - ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ - && (a) < (tmin) - (b)) \ - : (a) <= -1 - (b)) \ - || ((_GL_EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ - : (a) < 0 \ - ? (((tmin) \ - ? ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ - && (b) < (tmin) - (a)) \ - : (b) <= -1 - (a)) \ - || ((_GL_EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ - && (tmax) < (a) + (b))) \ - : (tmax) < (b) || (tmax) - (b) < (a)) -#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ - (((a) < 0) == ((b) < 0) \ - ? ((a) < (b) \ - ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ - : (tmax) < (a) - (b)) \ - : (a) < 0 \ - ? ((!_GL_EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ - || (a) - (tmin) < (b)) \ - : ((! (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ - && _GL_EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ - && (tmax) <= -1 - (b)) \ - || (tmax) + (b) < (a))) -#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ - ((b) < 0 \ - ? ((a) < 0 \ - ? (_GL_EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ - ? (a) < (tmax) / (b) \ - : ((_GL_INT_NEGATE_OVERFLOW (b) \ - ? _GL_INT_CONVERT (b, tmax) >> (_GL_TYPE_WIDTH (+ (b)) - 1) \ - : (tmax) / -(b)) \ - <= -1 - (a))) \ - : _GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ - ? (_GL_EXPR_SIGNED (a) \ - ? 0 < (a) + (tmin) \ - : 0 < (a) && -1 - (tmin) < (a) - 1) \ - : (tmin) / (b) < (a)) \ - : (b) == 0 \ - ? 0 \ - : ((a) < 0 \ - ? (_GL_INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ - ? (_GL_EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ - : (tmin) / (a) < (b)) \ - : (tmax) / (b) < (a))) - -#endif /* _GL_INTPROPS_INTERNAL_H */ diff --git a/include/libgnulib/intprops.h b/include/libgnulib/intprops.h deleted file mode 100755 index 43734f3..0000000 --- a/include/libgnulib/intprops.h +++ /dev/null @@ -1,335 +0,0 @@ -/* intprops.h -- properties of integer types - - Copyright (C) 2001-2024 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_INTPROPS_H -#define _GL_INTPROPS_H - -#include "intprops-internal.h" - -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if the arithmetic type T is an integer type. bool counts as - an integer. */ -#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) - -/* True if the real type T is signed. */ -#define TYPE_SIGNED(t) _GL_TYPE_SIGNED (t) - -/* Return 1 if the real expression E, after promotion, has a - signed or floating type. Do not evaluate E. */ -#define EXPR_SIGNED(e) _GL_EXPR_SIGNED (e) - - -/* Minimum and maximum values for integer types and expressions. */ - -/* The width in bits of the integer type or expression T. - Do not evaluate T. T must not be a bit-field expression. - Padding bits are not supported; this is checked at compile-time below. */ -#define TYPE_WIDTH(t) _GL_TYPE_WIDTH (t) - -/* The maximum and minimum values for the integer type T. */ -#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) -#define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) - -/* Bound on length of the string representing an unsigned integer - value representable in B bits. log10 (2.0) < 146/485. The - smallest value of B where this bound is not tight is 2621. */ -#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) - -/* Bound on length of the string representing an integer type or expression T. - T must not be a bit-field expression. - - Subtract 1 for the sign bit if T is signed, and then add 1 more for - a minus sign if needed. - - Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is - unsigned, this macro may overestimate the true bound by one byte when - applied to unsigned types of size 2, 4, 16, ... bytes. */ -#define INT_STRLEN_BOUND(t) \ - (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ - + _GL_SIGNED_TYPE_OR_EXPR (t)) - -/* Bound on buffer size needed to represent an integer type or expression T, - including the terminating null. T must not be a bit-field expression. */ -#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) - - -/* Range overflow checks. - - The INT__RANGE_OVERFLOW macros return 1 if the corresponding C - operators overflow arithmetically when given the same arguments. - These macros do not rely on undefined or implementation-defined behavior. - Although their implementations are simple and straightforward, - they are harder to use and may be less efficient than the - INT__WRAPV, INT__OK, and INT__OVERFLOW macros described below. - - Example usage: - - long int i = ...; - long int j = ...; - if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) - printf ("multiply would overflow"); - else - printf ("product is %ld", i * j); - - Restrictions on *_RANGE_OVERFLOW macros: - - These macros do not check for all possible numerical problems or - undefined or unspecified behavior: they do not check for division - by zero, for bad shift counts, or for shifting negative numbers. - - These macros may evaluate their arguments zero or multiple times, - so the arguments should not have side effects. The arithmetic - arguments (including the MIN and MAX arguments) must be of the same - integer type after the usual arithmetic conversions, and the type - must have minimum value MIN and maximum MAX. Unsigned types should - use a zero MIN of the proper type. - - Because all arguments are subject to integer promotions, these - macros typically do not work on types narrower than 'int'. - - These macros are tuned for constant MIN and MAX. For commutative - operations such as A + B, they are also tuned for constant B. */ - -/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. */ -#define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ - ((b) < 0 \ - ? (a) < (min) - (b) \ - : (max) - (b) < (a)) - -/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. */ -#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ - ((b) < 0 \ - ? (max) + (b) < (a) \ - : (a) < (min) + (b)) - -/* Return 1 if - A would overflow in [MIN,MAX] arithmetic. - See above for restrictions. */ -#define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ - _GL_INT_NEGATE_RANGE_OVERFLOW (a, min, max) - -/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Avoid && and || as they tickle - bugs in Sun C 5.11 2010/08/13 and other compilers; see - . */ -#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ - ((b) < 0 \ - ? ((a) < 0 \ - ? (a) < (max) / (b) \ - : (b) == -1 \ - ? 0 \ - : (min) / (b) < (a)) \ - : (b) == 0 \ - ? 0 \ - : ((a) < 0 \ - ? (a) < (min) / (b) \ - : (max) / (b) < (a))) - -/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Do not check for division by zero. */ -#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ - ((min) < 0 && (b) == -1 && (a) < - (max)) - -/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Do not check for division by zero. - Mathematically, % should never overflow, but on x86-like hosts - INT_MIN % -1 traps, and the C standard permits this, so treat this - as an overflow too. */ -#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ - INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) - -/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Here, MIN and MAX are for A only, and B need - not be of the same type as the other arguments. The C standard says that - behavior is undefined for shifts unless 0 <= B < wordwidth, and that when - A is negative then A << B has undefined behavior and A >> B has - implementation-defined behavior, but do not check these other - restrictions. */ -#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ - ((a) < 0 \ - ? (a) < (min) >> (b) \ - : (max) >> (b) < (a)) - -/* The _GL*_OVERFLOW macros have the same restrictions as the - *_RANGE_OVERFLOW macros, except that they do not assume that operands - (e.g., A and B) have the same type as MIN and MAX. Instead, they assume - that the result (e.g., A + B) has that type. */ -#if _GL_HAS_BUILTIN_OVERFLOW_P -# define _GL_ADD_OVERFLOW(a, b, min, max) \ - __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) -# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ - __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) -# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ - __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) -#else -# define _GL_ADD_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ - : (a) < 0 ? (b) <= (a) + (b) \ - : (b) < 0 ? (a) <= (a) + (b) \ - : (a) + (b) < (b)) -# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ - : (a) < 0 ? 1 \ - : (b) < 0 ? (a) - (b) <= (a) \ - : (a) < (b)) -# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ - (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ - || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) -#endif -#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ - : (a) < 0 ? (b) <= (a) + (b) - 1 \ - : (b) < 0 && (a) + (b) <= (a)) -#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ - : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ - : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) - -/* Return a nonzero value if A is a mathematical multiple of B, where - A is unsigned, B is negative, and MAX is the maximum value of A's - type. A's type must be the same as (A % B)'s type. Normally (A % - -B == 0) suffices, but things get tricky if -B would overflow. */ -#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ - (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ - ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ - ? (a) \ - : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ - : (a) % - (b)) \ - == 0) - -/* Check for integer overflow, and report low order bits of answer. - - The INT__OVERFLOW macros return 1 if the corresponding C operators - might not yield numerically correct answers due to arithmetic overflow. - The INT__WRAPV macros compute the low-order bits of the sum, - difference, and product of two C integers, and return 1 if these - low-order bits are not numerically correct. - These macros work correctly on all known practical hosts, and do not rely - on undefined behavior due to signed arithmetic overflow. - - Example usage, assuming A and B are long int: - - if (INT_MULTIPLY_OVERFLOW (a, b)) - printf ("result would overflow\n"); - else - printf ("result is %ld (no overflow)\n", a * b); - - Example usage with WRAPV flavor: - - long int result; - bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); - printf ("result is %ld (%s)\n", result, - overflow ? "after overflow" : "no overflow"); - - Restrictions on these macros: - - These macros do not check for all possible numerical problems or - undefined or unspecified behavior: they do not check for division - by zero, for bad shift counts, or for shifting negative numbers. - - These macros may evaluate their arguments zero or multiple times, so the - arguments should not have side effects. - - The WRAPV macros are not constant expressions. They support only - +, binary -, and *. - - Because the WRAPV macros convert the result, they report overflow - in different circumstances than the OVERFLOW macros do. For - example, in the typical case with 16-bit 'short' and 32-bit 'int', - if A, B and *R are all of type 'short' then INT_ADD_OVERFLOW (A, B) - returns false because the addition cannot overflow after A and B - are converted to 'int', whereas INT_ADD_WRAPV (A, B, R) returns - true or false depending on whether the sum fits into 'short'. - - These macros are tuned for their last input argument being a constant. - - A, B, and *R should be integers; they need not be the same type, - and they need not be all signed or all unsigned. - However, none of the integer types should be bit-precise, - and *R's type should not be char, bool, or an enumeration type. - - Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, - A % B, and A << B would overflow, respectively. */ - -#define INT_ADD_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) -#define INT_SUBTRACT_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) -#define INT_NEGATE_OVERFLOW(a) _GL_INT_NEGATE_OVERFLOW (a) -#define INT_MULTIPLY_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) -#define INT_DIVIDE_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) -#define INT_REMAINDER_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) -#define INT_LEFT_SHIFT_OVERFLOW(a, b) \ - INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ - _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) - -/* Return 1 if the expression A B would overflow, - where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, - assuming MIN and MAX are the minimum and maximum for the result type. - Arguments should be free of side effects. */ -#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ - op_result_overflow (a, b, \ - _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ - _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) - -/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. - Return 1 if the result overflows. See above for restrictions. */ -#define INT_ADD_WRAPV(a, b, r) _GL_INT_ADD_WRAPV (a, b, r) -#define INT_SUBTRACT_WRAPV(a, b, r) _GL_INT_SUBTRACT_WRAPV (a, b, r) -#define INT_MULTIPLY_WRAPV(a, b, r) _GL_INT_MULTIPLY_WRAPV (a, b, r) - -/* The following macros compute A + B, A - B, and A * B, respectively. - If no overflow occurs, they set *R to the result and return 1; - otherwise, they return 0 and may modify *R. - - Example usage: - - long int result; - if (INT_ADD_OK (a, b, &result)) - printf ("result is %ld\n", result); - else - printf ("overflow\n"); - - A, B, and *R should be integers; they need not be the same type, - and they need not be all signed or all unsigned. - However, none of the integer types should be bit-precise, - and *R's type should not be char, bool, or an enumeration type. - - These macros work correctly on all known practical hosts, and do not rely - on undefined behavior due to signed arithmetic overflow. - - These macros are not constant expressions. - - These macros may evaluate their arguments zero or multiple times, so the - arguments should not have side effects. - - These macros are tuned for B being a constant. */ - -#define INT_ADD_OK(a, b, r) (! INT_ADD_WRAPV (a, b, r)) -#define INT_SUBTRACT_OK(a, b, r) (! INT_SUBTRACT_WRAPV (a, b, r)) -#define INT_MULTIPLY_OK(a, b, r) (! INT_MULTIPLY_WRAPV (a, b, r)) - -#endif /* _GL_INTPROPS_H */ diff --git a/include/libgnulib/inttostr.h b/include/libgnulib/inttostr.h deleted file mode 100755 index 8f1bb36..0000000 --- a/include/libgnulib/inttostr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* inttostr.h -- convert integers to printable strings - - Copyright (C) 2001-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert */ - -/* This file uses _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#include "intprops.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -_GL_ATTRIBUTE_NODISCARD char *imaxtostr (intmax_t, char *); -_GL_ATTRIBUTE_NODISCARD char *inttostr (int, char *); -_GL_ATTRIBUTE_NODISCARD char *offtostr (off_t, char *); -_GL_ATTRIBUTE_NODISCARD char *uinttostr (unsigned int, char *); -_GL_ATTRIBUTE_NODISCARD char *umaxtostr (uintmax_t, char *); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/isapipe.h b/include/libgnulib/isapipe.h deleted file mode 100755 index b86cf26..0000000 --- a/include/libgnulib/isapipe.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Test whether a file descriptor is a pipe. - - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* This file uses HAVE_FIFO_PIPES. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Whether pipes are FIFOs; -1 if not known. */ -#ifndef HAVE_FIFO_PIPES -# define HAVE_FIFO_PIPES (-1) -#endif - -int isapipe (int fd); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/isdir.h b/include/libgnulib/isdir.h deleted file mode 100755 index ecf135f..0000000 --- a/include/libgnulib/isdir.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Determine whether a directory exists. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -int isdir (const char *path); diff --git a/include/libgnulib/isnand-nolibm.h b/include/libgnulib/isnand-nolibm.h deleted file mode 100755 index 1a0f27b..0000000 --- a/include/libgnulib/isnand-nolibm.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Test for NaN that does not need libm. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses HAVE_ISNAND_IN_LIBC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if HAVE_ISNAND_IN_LIBC -/* Get declaration of isnan macro. */ -# include -# if (__GNUC__ >= 4) || (__clang_major__ >= 4) - /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. */ -# undef isnand -# define isnand(x) __builtin_isnan ((double)(x)) -# else -# undef isnand -# define isnand(x) isnan ((double)(x)) -# endif -#else -/* Test whether X is a NaN. */ -# undef isnand -# define isnand rpl_isnand -extern -# ifdef __cplusplus -"C" -# endif -int isnand (double x); -#endif - -/* Tell that our isnand does not need libm. */ -#define HAVE_ISNAND_NOLIBM 1 diff --git a/include/libgnulib/isnanf-nolibm.h b/include/libgnulib/isnanf-nolibm.h deleted file mode 100755 index d004bbe..0000000 --- a/include/libgnulib/isnanf-nolibm.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Test for NaN that does not need libm. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses HAVE_ISNANF_IN_LIBC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if HAVE_ISNANF_IN_LIBC -/* Get declaration of isnan macro or (older) isnanf function. */ -# include -# if (__GNUC__ >= 4) || (__clang_major__ >= 4) - /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. - GCC >= 4.0 also provides __builtin_isnanf, but clang doesn't. */ -# undef isnanf -# define isnanf(x) __builtin_isnan ((float)(x)) -# elif defined isnan -# undef isnanf -# define isnanf(x) isnan ((float)(x)) -# else - /* Get declaration of isnanf(), if not declared in . */ -# if defined __sgi - /* We can't include , because it conflicts with our definition of - isnand. Therefore declare isnanf separately. */ -extern -# ifdef __cplusplus -"C" -# endif -int isnanf (float x); -# endif -# endif -#else -/* Test whether X is a NaN. */ -# undef isnanf -# define isnanf rpl_isnanf -extern -# ifdef __cplusplus -"C" -# endif -int isnanf (float x); -#endif - -/* Tell that our isnanf does not need libm. */ -#define HAVE_ISNANF_NOLIBM 1 diff --git a/include/libgnulib/isnanl-nolibm.h b/include/libgnulib/isnanl-nolibm.h deleted file mode 100755 index f0219de..0000000 --- a/include/libgnulib/isnanl-nolibm.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Test for NaN that does not need libm. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses HAVE_ISNANL_IN_LIBC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if HAVE_ISNANL_IN_LIBC -/* Get declaration of isnan macro or (older) isnanl function. */ -# include -# if (__GNUC__ >= 4) || (__clang_major__ >= 4) - /* GCC >= 4.0 and clang provide a type-generic built-in for isnan. - GCC >= 4.0 also provides __builtin_isnanl, but clang doesn't. */ -# undef isnanl -# define isnanl(x) __builtin_isnan ((long double)(x)) -# elif defined isnan -# undef isnanl -# define isnanl(x) isnan ((long double)(x)) -# endif -#else -/* Test whether X is a NaN. */ -# undef isnanl -# define isnanl rpl_isnanl -extern -# ifdef __cplusplus -"C" -# endif -int isnanl (long double x); -#endif - -/* Tell that our isnanl does not need libm. */ -#define HAVE_ISNANL_NOLIBM 1 diff --git a/include/libgnulib/iswctype-impl.h b/include/libgnulib/iswctype-impl.h deleted file mode 100755 index 999f220..0000000 --- a/include/libgnulib/iswctype-impl.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Test whether a wide character has a given property. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -int -iswctype (wint_t wc, wctype_t desc) -{ - return ((int (*) (wint_t)) desc) (wc); -} diff --git a/include/libgnulib/javacomp.h b/include/libgnulib/javacomp.h deleted file mode 100755 index af42f00..0000000 --- a/include/libgnulib/javacomp.h +++ /dev/null @@ -1,98 +0,0 @@ -/* Compile a Java program. - Copyright (C) 2001-2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _JAVACOMP_H -#define _JAVACOMP_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compile a Java source file to bytecode. - java_sources is an array of source file names. - classpaths is a list of pathnames to be prepended to the CLASSPATH. - - source_version can be: support for - 1.6 assert keyword (1.4), generic classes and methods (1.5) - 1.7 switch(string) - 1.8 lambdas - 9 private interface methods - 10 type inference for local variables - 11 'var' in parameters of lambda expressions - ... - If source-version 1.3 or 1.4 or 1.5 is requested, it gets mapped to 1.6, for - backward compatibility. (Currently the minimum Java and javac version we need - to support is Java 1.6, since that's the default Java version on Solaris 10.) - - target_version can be: classfile version: - 1.6 50.0 - 1.7 51.0 - 1.8 52.0 - 9 53.0 - 10 54.0 - 11 55.0 - ... ... - If a target-version below 1.6 is requested, it gets mapped to 1.6, for - backward compatibility. (Currently the minimum Java and javac version we need - to support is Java 1.6, since that's the default Java version on Solaris 10.) - target_version can also be given as NULL. In this case, the required - target_version is determined from the found JVM (see javaversion.h). - Specifying target_version is useful when building a library (.jar) that is - useful outside the given package. Passing target_version = NULL is useful - when building an application. - It is unreasonable to ask for a target-version < source-version, such as - - target_version < 1.4 with source_version >= 1.4, or - - target_version < 1.5 with source_version >= 1.5, or - - target_version < 1.6 with source_version >= 1.6, or - - target_version < 1.7 with source_version >= 1.7, or - - target_version < 1.8 with source_version >= 1.8, or - - target_version < 9 with source_version >= 9, or - - target_version < 10 with source_version >= 10, or - - target_version < 11 with source_version >= 11, or - - ... - because even Sun's/Oracle's javac doesn't support these combinations. - It is redundant to ask for a target_version > source_version, since the - smaller target_version = source_version will also always work and newer JVMs - support the older target_versions too. - - directory is the target directory. The .class file for class X.Y.Z is - written at directory/X/Y/Z.class. If directory is NULL, the .class - file is written in the source's directory. - use_minimal_classpath = true means to ignore the user's CLASSPATH and - use a minimal one. This is likely to reduce possible problems if the - user's CLASSPATH contains garbage or a classes.zip file of the wrong - Java version. - If verbose, the command to be executed will be printed. - Return false if OK, true on error. */ -extern bool compile_java_class (const char * const *java_sources, - unsigned int java_sources_count, - const char * const *classpaths, - unsigned int classpaths_count, - const char *source_version, - const char *target_version, - const char *directory, - bool optimize, bool debug, - bool use_minimal_classpath, - bool verbose); - - -#ifdef __cplusplus -} -#endif - -#endif /* _JAVACOMP_H */ diff --git a/include/libgnulib/javaexec.h b/include/libgnulib/javaexec.h deleted file mode 100755 index 671f872..0000000 --- a/include/libgnulib/javaexec.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Execute a Java program. - Copyright (C) 2001-2002, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _JAVAEXEC_H -#define _JAVAEXEC_H - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef bool execute_fn (const char *progname, - const char *prog_path, const char * const *prog_argv, - void *private_data); - -/* Execute a Java class. - class_name is the Java class name to be executed. - classpaths is a list of pathnames to be prepended to the CLASSPATH. - use_minimal_classpath = true means to ignore the user's CLASSPATH and - use a minimal one. This is likely to reduce possible problems if the - user's CLASSPATH contains garbage or a classes.zip file of the wrong - Java version. - exe_dir is a directory that may contain a native executable for the class. - args is a NULL terminated list of arguments to be passed to the program. - If verbose, the command to be executed will be printed. - Then the command is passed to the execute function together with the - private_data argument. This function returns false if OK, true on error. - Return false if OK, true on error. - If quiet, error messages will not be printed. */ -extern bool execute_java_class (const char *class_name, - const char * const *classpaths, - unsigned int classpaths_count, - bool use_minimal_classpath, - const char *exe_dir, - const char * const *args, - bool verbose, bool quiet, - execute_fn *executer, void *private_data); - - -#ifdef __cplusplus -} -#endif - -#endif /* _JAVAEXEC_H */ diff --git a/include/libgnulib/javaversion.class b/include/libgnulib/javaversion.class deleted file mode 100755 index d62585b0ecd259dc3d661247c323788c927ff140..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmZutO;5r=5Pi#6p;SSzh#(>tQ%$5l0OQ5P6HyWj7f(xF$r9RN#n}O8;*si zHlY4uri4$EgfTtXE1xoSdt_3PRl)rZDUO8dMd4ILYQb>oY#HZ2#8B2o+)XtGW2&_$ zv>1Dv&;TuDX#e^o!1NL*nsjSWW|Y(CZ(z? diff --git a/include/libgnulib/javaversion.h b/include/libgnulib/javaversion.h deleted file mode 100755 index e93cbfb..0000000 --- a/include/libgnulib/javaversion.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Determine the Java version supported by javaexec. - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -#ifndef _JAVAVERSION_H -#define _JAVAVERSION_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return information about the Java version used by execute_java_class(). - This is the value of System.getProperty("java.specification.version"). - Some possible values are: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20. - Return NULL if the Java version cannot be determined. */ -extern char * javaexec_version (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _JAVAVERSION_H */ diff --git a/include/libgnulib/javaversion.java b/include/libgnulib/javaversion.java deleted file mode 100755 index 8251d86..0000000 --- a/include/libgnulib/javaversion.java +++ /dev/null @@ -1,31 +0,0 @@ -/* Show the Java version. - * Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - * - * 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 3 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, see . - */ - -/** - * This program shows the Java version. - * - * This program _must_ be compiled with - * javac -d . -target 1.1 javaversion.java - * since its purpose is to show the version of _any_ Java implementation. - * - * @author Bruno Haible - */ -public class javaversion { - public static void main (String[] args) { - System.out.println(System.getProperty("java.specification.version")); - } -} diff --git a/include/libgnulib/jit/cache.h b/include/libgnulib/jit/cache.h deleted file mode 100755 index 16835d5..0000000 --- a/include/libgnulib/jit/cache.h +++ /dev/null @@ -1,198 +0,0 @@ -/* JIT compiler - Flushing the instruction cache. - - Copyright (C) 1995-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -#include -#if ENABLE_VALGRIND_SUPPORT -# include -#endif -#if defined _WIN32 && !defined __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include -#endif -#if defined __APPLE__ && defined __MACH__ -# include -#endif -#if defined _AIX -# include -#endif -#if defined __sgi -# include -#endif -#if defined __sun -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Clears the instruction cache for addresses - start <= address < end. - We need this because some CPUs have separate data cache and instruction - cache. The freshly built trampoline is visible to the data cache, but - maybe not to the instruction cache. This is hairy. */ -static inline void -clear_cache (void *start, void *end) -{ -#if ENABLE_VALGRIND_SUPPORT - /* Documentation: - */ - VALGRIND_DISCARD_TRANSLATIONS (start, (char *) end - (char *) start); -#endif -#if (defined __x86_64__ || defined _M_X64) || (defined __i386 || defined _M_IX86) - /* On this architecture, data cache and instruction cache are not separate. - Therefore, nothing to do. - For details, see - */ - -/* Use the operating system provided function, when available. */ -#elif defined _WIN32 && !defined __CYGWIN__ - /* Native Windows. - FlushInstructionCache - */ - HANDLE process = GetCurrentProcess (); - while (!FlushInstructionCache (process, start, (char *) end - (char *) start)) - ; -#elif defined __APPLE__ && defined __MACH__ - /* macOS */ - sys_icache_invalidate (start, (char *) end - (char *) start); -#elif defined _AIX - /* AIX. */ - _sync_cache_range (start, (char *) end - (char *) start); -#elif defined __sgi - /* IRIX. */ - cacheflush (start, (char *) end - (char *) start, ICACHE); -#elif defined __sun - /* Solaris. */ - extern void sync_instruction_memory (char *, size_t); - sync_instruction_memory (start, (char *) end - (char *) start); - -/* No operating system provided function. Dispatch according to the CPU. */ -#elif (defined __GNUC__ || defined __clang__) && defined __powerpc__ - /* XXX Is this enough, or do we also need the 'clf' instruction? */ - uintptr_t addr = (uintptr_t) start & ~(intptr_t)3; - uintptr_t end_addr = (uintptr_t) end; - do - { - asm volatile ("icbi 0,%0; dcbf 0,%0" : : "r" (addr)); - addr += 4; - } - while (addr < end_addr); - asm volatile ("sync; isync"); -#elif (defined __GNUC__ || defined __clang__) && defined __sparc - /* Use inline assembly. */ - /* The 'flush' instruction was earlier called 'iflush'. */ - uintptr_t addr = (uintptr_t) start & ~(intptr_t)7; - uintptr_t end_addr = (uintptr_t) end; - do - { - asm volatile ("flush %0+0" : : "r" (addr)); - addr += 8; - } - while (addr < end_addr); -#elif (defined __GNUC__ || defined __clang__) && defined __hppa - /* Use inline assembly. */ - /* The PA-RISC 1.1 Architecture and Instruction Set Reference Manual says: - "A cache line can be 16, 32, or 64 bytes in length." */ - /* XXX Is this good enough, or do we need the space register business - like in gcc/gcc/config/pa/pa.md and libffcall/trampoline/cache-hppa.c? */ - intptr_t cache_line_size = 16; - uintptr_t addr = (uintptr_t) start & ~cache_line_size; - uintptr_t end_addr = (uintptr_t) end; - do - { - asm volatile ("fdc 0(0,%0)" - "\n\t" "sync" - "\n\t" "fic 0(0,%0)" - "\n\t" "sync" : : "r" (addr)); - addr += cache_line_size; - } - while (addr < end_addr); - asm volatile ("nop" - "\n\t" "nop" - "\n\t" "nop" - "\n\t" "nop" - "\n\t" "nop" - "\n\t" "nop"); -#elif (defined __GNUC__ || defined __clang__) && defined __ia64 - /* Use inline assembly. */ - /* The Intel IA-64 Architecture Software Developer's Manual volume 3 says: - "The line size affected is at least 32 bytes." */ - intptr_t cache_line_size = 32; - uintptr_t addr = (uintptr_t) start & ~cache_line_size; - uintptr_t end_addr = (uintptr_t) end; - do - { - /* Flush a cache line. */ - asm volatile ("fc %0" : : "r" (addr)); - addr += cache_line_size; - } - while (addr < end_addr); - /* Ensure the preceding 'fc' instructions become effective in the local - processor and all remote processors. */ - asm volatile ("sync.i"); - /* Ensure the preceding 'sync.i' instruction becomes effective in the - local processor's instruction cache. */ - asm volatile ("srlz.i"); -#elif (defined __GNUC__ || defined __clang__) && defined __m68k__ && defined __linux__ - /* Use inline assembly to call the 'cacheflush' system call. - sys_cacheflush (addr, scope, cache, len) - d1 d2 d3 d4 - */ - register uintptr_t addr __asm__ ("%d1") = (uintptr_t) start; - register uintptr_t len __asm__ ("%d4") = (uintptr_t) end - addr; - __asm__ __volatile__ ( - "move%.l %#123,%/d0" /* __NR_cacheflush */ - "\n\t" "move%.l %#1,%/d2" /* FLUSH_SCOPE_LINE */ - "\n\t" "move%.l %#3,%/d3" /* FLUSH_CACHE_BOTH */ - "\n\t" "trap %#0" - : - : "d" (addr), "d" (len) - : "%d0", "%d2", "%d3" - ); -#elif (__GNUC__ + (__GNUC_MINOR__ >= 3) > 4 && !defined __clang__) \ - || ((__clang_major__ + (__clang_minor__ >= 4) > 3) \ - && (defined __aarch64__ /* arm64 */ || defined __arm__)) - /* GCC >= 4.3 has a GCC built-in. - - But it's sometimes not correctly implemented. - clang >= 3.4 has it as well, at least on ARM and ARM64. */ - /* On ARM, cache flushing can only be done through a system call. - GCC implements it for Linux with EABI, through an "swi 0" with code - 0xf0002. For other systems, it may be an "swi 0x9f0002", - an "swi 0xf00000", or similar. */ - /* On ARM64, cache flushing is done through special instructions, - and the length of the cache lines must be determined at runtime. - See gcc/libgcc/config/aarch64/sync-cache.c. */ - __builtin___clear_cache (start, end); -#elif HAVE___CLEAR_CACHE - /* Older versions of GCC have this libgcc function, but only on some - platforms. */ - extern void __clear_cache (char *, char *); - __clear_cache (start, end); -#else -# error "Don't know how to implement clear_cache on this platform." -#endif -} - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/lc-charset-dispatch.h b/include/libgnulib/lc-charset-dispatch.h deleted file mode 100755 index 4c1cf5f..0000000 --- a/include/libgnulib/lc-charset-dispatch.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Dispatching based on the current locale's character encoding. - Copyright (C) 2018-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2018. */ - -#include - -#if GNULIB_defined_mbstate_t - -/* A classification of special values of the encoding of the current locale. */ -typedef enum - { - enc_other, /* other */ - enc_utf8, /* UTF-8 */ - enc_eucjp, /* EUC-JP */ - enc_94, /* EUC-KR, GB2312, BIG5 */ - enc_euctw, /* EUC-TW */ - enc_gb18030, /* GB18030 */ - enc_sjis /* SJIS */ - } - enc_t; - -/* Returns a classification of special values of the encoding of the current - locale. */ -extern enc_t locale_encoding_classification (void); - -#endif diff --git a/include/libgnulib/lc-charset-unicode.h b/include/libgnulib/lc-charset-unicode.h deleted file mode 100755 index 9644e63..0000000 --- a/include/libgnulib/lc-charset-unicode.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Conversion between the current locale's character encoding and Unicode. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2023. */ - -/* This facility is only needed on specific platforms. */ -#if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION - -# include -# include - -/* Returns WC (must be != 0) as a Unicode character, - or 0 in case it cannot be converted. */ -extern char32_t locale_encoding_to_unicode (wchar_t wc); - -/* Returns UC (must be != 0) as a wide character, - or 0 in case it cannot be converted. */ -extern wchar_t unicode_to_locale_encoding (char32_t uc); - -#endif diff --git a/include/libgnulib/libc-config.h b/include/libgnulib/libc-config.h deleted file mode 100755 index 33bdb73..0000000 --- a/include/libgnulib/libc-config.h +++ /dev/null @@ -1,209 +0,0 @@ -/* System definitions for code taken from the GNU C Library - - Copyright 2017-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, see - . */ - -/* Written by Paul Eggert. */ - -/* This is intended to be a good-enough substitute for glibc system - macros like those defined in , so that Gnulib code - shared with glibc can do this as the first #include: - - #ifndef _LIBC - # include - #endif - - When compiled as part of glibc this is a no-op; when compiled as - part of Gnulib this includes Gnulib's and defines macros - that glibc library code would normally assume. - - Note: This header file MUST NOT be included by public header files - of Gnulib. */ - -#include - -/* On glibc this includes and and #defines - _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and - DragonFlyBSD 5.9 it includes which defines __nonnull. - Elsewhere it is harmless. */ -#include - -/* From glibc . */ -#ifndef __set_errno -# define __set_errno(val) (errno = (val)) -#endif - -/* From glibc . */ - -#if defined __clang__ - /* clang really only groks GNU C 4.2, regardless of its value of __GNUC__. */ -# undef __GNUC_PREREQ -# define __GNUC_PREREQ(maj, min) ((maj) < 4 + ((min) <= 2)) -#endif -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#ifndef __glibc_clang_prereq -# if defined __clang_major__ && defined __clang_minor__ -# ifdef __apple_build_version__ -/* Apple for some reason renumbers __clang_major__ and __clang_minor__. - Gnulib code uses only __glibc_clang_prereq (3, 5); map it to - 6000000 <= __apple_build_version__. Support for other calls to - __glibc_clang_prereq can be added here as needed. */ -# define __glibc_clang_prereq(maj, min) \ - ((maj) == 3 && (min) == 5 ? 6000000 <= __apple_build_version__ : 0) -# else -# define __glibc_clang_prereq(maj, min) \ - ((maj) < __clang_major__ + ((min) <= __clang_minor__)) -# endif -# else -# define __glibc_clang_prereq(maj, min) 0 -# endif -#endif - -#ifndef __attribute_nonnull__ -/* either does not exist, or is too old for Gnulib. - Prepare to include , which is Gnulib's version of a - more-recent glibc . */ - -/* Define _FEATURES_H so that does not include . */ -# ifndef _FEATURES_H -# define _FEATURES_H 1 -# endif -/* Define __GNULIB_CDEFS so that does not attempt to include - nonexistent files. */ -# define __GNULIB_CDEFS -/* Undef the macros unconditionally defined by our copy of glibc - , so that they do not clash with any system-defined - versions. */ -# undef _SYS_CDEFS_H -# undef __ASMNAME -# undef __ASMNAME2 -# undef __BEGIN_DECLS -# undef __CONCAT -# undef __END_DECLS -# undef __HAVE_GENERIC_SELECTION -# undef __LDBL_COMPAT -# undef __LDBL_REDIR -# undef __LDBL_REDIR1 -# undef __LDBL_REDIR1_DECL -# undef __LDBL_REDIR1_NTH -# undef __LDBL_REDIR2_DECL -# undef __LDBL_REDIR_DECL -# undef __LDBL_REDIR_NTH -# undef __LEAF -# undef __LEAF_ATTR -# undef __NTH -# undef __NTHNL -# undef __REDIRECT -# undef __REDIRECT_LDBL -# undef __REDIRECT_NTH -# undef __REDIRECT_NTHNL -# undef __REDIRECT_NTH_LDBL -# undef __STRING -# undef __THROW -# undef __THROWNL -# undef __attr_access -# undef __attr_access_none -# undef __attr_dealloc -# undef __attr_dealloc_free -# undef __attribute__ -# undef __attribute_alloc_align__ -# undef __attribute_alloc_size__ -# undef __attribute_artificial__ -# undef __attribute_const__ -# undef __attribute_deprecated__ -# undef __attribute_deprecated_msg__ -# undef __attribute_format_arg__ -# undef __attribute_format_strfmon__ -# undef __attribute_malloc__ -# undef __attribute_maybe_unused__ -# undef __attribute_noinline__ -# undef __attribute_nonstring__ -# undef __attribute_pure__ -# undef __attribute_returns_twice__ -# undef __attribute_used__ -# undef __attribute_warn_unused_result__ -# undef __errordecl -# undef __extension__ -# undef __extern_always_inline -# undef __extern_inline -# undef __flexarr -# undef __fortified_attr_access -# undef __fortify_function -# undef __glibc_c99_flexarr_available -# undef __glibc_has_attribute -# undef __glibc_has_builtin -# undef __glibc_has_extension -# undef __glibc_likely -# undef __glibc_macro_warning -# undef __glibc_macro_warning1 -# undef __glibc_unlikely -# undef __inline -# undef __ptr_t -# undef __restrict -# undef __restrict_arr -# undef __va_arg_pack -# undef __va_arg_pack_len -# undef __warnattr -# undef __wur -# ifndef __GNULIB_CDEFS -# undef __bos -# undef __bos0 -# undef __glibc_fortify -# undef __glibc_fortify_n -# undef __glibc_objsize -# undef __glibc_objsize0 -# undef __glibc_safe_len_cond -# undef __glibc_safe_or_unknown_len -# undef __glibc_unsafe_len -# undef __glibc_unsigned_or_positive -# endif - -/* Include our copy of glibc . */ -# include - -/* __inline is too pessimistic for non-GCC. */ -# undef __inline -# ifndef HAVE___INLINE -# if 199901 <= __STDC_VERSION__ || defined inline -# define __inline inline -# else -# define __inline -# endif -# endif - -#endif /* defined __glibc_likely */ - - -/* A substitute for glibc , good enough for Gnulib. */ -#define attribute_hidden -#define libc_hidden_proto(name) -#define libc_hidden_def(name) -#define libc_hidden_weak(name) -#define libc_hidden_ver(local, name) -#define strong_alias(name, aliasname) -#define weak_alias(name, aliasname) - -/* A substitute for glibc , good enough for Gnulib. */ -#define SHLIB_COMPAT(lib, introduced, obsoleted) 0 -#define compat_symbol(lib, local, symbol, version) extern int dummy -#define versioned_symbol(lib, local, symbol, version) extern int dummy diff --git a/include/libgnulib/libunistring.valgrind b/include/libgnulib/libunistring.valgrind deleted file mode 100755 index c4d6a5c..0000000 --- a/include/libgnulib/libunistring.valgrind +++ /dev/null @@ -1,32 +0,0 @@ -# Suppress valgrind messages in an installed libunistring. - -# Copyright (C) 2010-2024 Free Software Foundation, Inc. -# -# This file is free software. -# It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". -# You can redistribute it and/or modify it under either -# - the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3, or (at your -# option) any later version, or -# - 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, or -# - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". -# -# 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 -# Lesser General Public License and the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License and of the GNU General Public License along with this -# program. If not, see . - -# Suppress a valgrind message about use of uninitialized memory in freea(). -# This use is OK because it provides only a speedup. -{ - libunistring_freea - Memcheck:Cond - fun:libunistring_freea -} diff --git a/include/libgnulib/linebuffer.h b/include/libgnulib/linebuffer.h deleted file mode 100755 index 9be2eca..0000000 --- a/include/libgnulib/linebuffer.h +++ /dev/null @@ -1,64 +0,0 @@ -/* linebuffer.h -- declarations for reading arbitrarily long lines - - Copyright (C) 1986, 1991, 1998-1999, 2002-2003, 2007, 2009-2024 Free - Software Foundation, Inc. - - 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 3 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, see . */ - -#if !defined LINEBUFFER_H -#define LINEBUFFER_H - -#include "idx.h" -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* A 'struct linebuffer' holds a line of text. */ - -struct linebuffer -{ - idx_t size; /* Allocated. */ - idx_t length; /* Used. */ - char *buffer; -}; - -/* Initialize linebuffer LINEBUFFER for use. */ -void initbuffer (struct linebuffer *linebuffer); - -/* Read an arbitrarily long line of text from STREAM into LINEBUFFER. - Consider lines to be terminated by DELIMITER. - Keep the delimiter; append DELIMITER if we reach EOF and it wasn't - the last character in the file. Do not NUL-terminate. - Return LINEBUFFER, except at end of file return NULL. */ -struct linebuffer *readlinebuffer_delim (struct linebuffer *linebuffer, - FILE *stream, char delimiter); - -/* Read an arbitrarily long line of text from STREAM into LINEBUFFER. - Keep the newline; append a newline if it's the last line of a file - that ends in a non-newline character. Do not NUL-terminate. - Return LINEBUFFER, except at end of file return NULL. */ -struct linebuffer *readlinebuffer (struct linebuffer *linebuffer, FILE *stream); - -/* Free linebuffer LINEBUFFER and its data, all allocated with malloc. */ -void freebuffer (struct linebuffer *); - - -#ifdef __cplusplus -} -#endif - -#endif /* LINEBUFFER_H */ diff --git a/include/libgnulib/localcharset.h b/include/libgnulib/localcharset.h deleted file mode 100755 index 4721402..0000000 --- a/include/libgnulib/localcharset.h +++ /dev/null @@ -1,135 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2024 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. - - This file 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 file 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 program. If not, see . */ - -#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 below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. - If the canonical name cannot be determined, the result is a non-canonical - name. */ -extern const char * locale_charset (void); - -/* About GNU canonical names for character encodings: - - Every canonical name must be supported by GNU libiconv. Support by GNU libc - is also desirable. - - The name is case insensitive. Usually an upper case MIME charset name is - preferred. - - The current list of these GNU canonical names is: - - name MIME? used by which systems - (darwin = Mac OS X, windows = native Windows) - - ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin - ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-3 Y glibc solaris cygwin - ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin - ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-6 Y glibc aix hpux solaris cygwin - ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos - ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos - ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-14 glibc cygwin - ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin - KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin - KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin - 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 openbsd darwin dos - CP869 dos - CP874 windows dos - CP922 aix - CP932 aix cygwin windows dos - CP943 aix zos - CP949 osf darwin windows dos - CP950 windows dos - CP1046 aix - CP1124 aix - CP1125 dos - CP1129 aix - CP1131 freebsd darwin - CP1250 windows - CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows - CP1252 aix windows - CP1253 windows - CP1254 windows - CP1255 glibc windows - CP1256 windows - CP1257 windows - GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos - EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin - EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos - EUC-TW glibc aix hpux irix osf solaris netbsd - BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos - BIG5-HKSCS glibc hpux solaris netbsd darwin - GBK glibc aix osf solaris freebsd darwin cygwin windows dos - GB18030 glibc hpux solaris freebsd netbsd darwin - SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin - JOHAB solaris windows - TIS-620 glibc aix hpux osf solaris cygwin zos - ARMSCII-8 glibc freebsd netbsd darwin - GEORGIAN-PS glibc cygwin - PT154 glibc netbsd cygwin - 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 cygwin zos - - 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. - */ - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LOCALCHARSET_H */ diff --git a/include/libgnulib/localeinfo.h b/include/libgnulib/localeinfo.h deleted file mode 100755 index 765c237..0000000 --- a/include/libgnulib/localeinfo.h +++ /dev/null @@ -1,74 +0,0 @@ -/* locale information - - Copyright 2016-2024 Free Software Foundation, Inc. - - 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 3, 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, see . */ - -/* Written by Paul Eggert. */ - -#include -#include -#if GAWK -/* Use ISO C 99 API. */ -# define char32_t wchar_t -#else -/* Use ISO C 11 + gnulib API. */ -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -struct localeinfo -{ - /* MB_CUR_MAX > 1. */ - bool multibyte; - - /* The locale is simple, like the C locale. These locales can be - processed more efficiently, as they are single-byte, their native - character set is in collating-sequence order, and they do not - have multi-character collating elements. */ - bool simple; - - /* The locale uses UTF-8. */ - bool using_utf8; - - /* An array indexed by byte values B that contains 1 if B is a - single-byte character, -1 if B is an encoding error, and -2 if B - is the leading byte of a multibyte character that contains more - than one byte. */ - signed char sbclen[UCHAR_MAX + 1]; - - /* An array indexed by byte values B that contains the corresponding - 32-bit wide character (if any) for B if sbclen[B] == 1. WEOF means - the byte is not a valid single-byte character, i.e., sbclen[B] == -1 - or -2. */ - wint_t sbctowc[UCHAR_MAX + 1]; -}; - -extern void init_localeinfo (struct localeinfo *); - -/* Maximum number of characters that can be the case-folded - counterparts of a single character, not counting the character - itself. This is a generous upper bound. */ -enum { CASE_FOLDED_BUFSIZE = 32 }; - -extern int case_folded_counterparts (wint_t, char32_t[CASE_FOLDED_BUFSIZE]); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/localename-table.h b/include/libgnulib/localename-table.h deleted file mode 100755 index eaa98fa..0000000 --- a/include/libgnulib/localename-table.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Table that maps a locale object to the names of the locale categories. - Copyright (C) 2018-2024 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* Written by Bruno Haible , 2018. */ - -#if HAVE_WORKING_USELOCALE && HAVE_NAMELESS_LOCALES - -# include -# include - -# include "glthread/lock.h" - -struct locale_categories_names - { - /* Locale category -> name (allocated with indefinite extent). */ - const char *category_name[6]; - }; - -/* A hash table of fixed size. Multiple threads can access it read-only - simultaneously, but only one thread can insert into it or remove from it - at the same time. - This hash table has global scope, so that when an application uses both - GNU libintl and gnulib, the application sees only one hash table. (When - linking statically with libintl, the fact that localename-table.c is a - separate compilation unit resolves the duplicate symbol conflict. When - linking with libintl as a shared library, we rely on ELF and the symbol - conflict resolution implemented in the ELF dynamic loader here.) - Both the libintl overrides and the gnulib overrides of the functions - newlocale, duplocale, freelocale see the same hash table (and the same lock). - For this reason, the internal layout of the hash table and the hash function - MUST NEVER CHANGE. If you need to change the internal layout or the hash - function, introduce versioning by appending a version suffix to the symbols - at the linker level. */ -# define locale_hash_function libintl_locale_hash_function -# define locale_hash_table libintl_locale_hash_table -# define locale_lock libintl_locale_lock - -extern size_t _GL_ATTRIBUTE_CONST locale_hash_function (locale_t x); - -/* A node in a hash bucket collision list. */ -struct locale_hash_node - { - struct locale_hash_node *next; - locale_t locale; - struct locale_categories_names names; - }; - -# define LOCALE_HASH_TABLE_SIZE 101 -extern struct locale_hash_node * locale_hash_table[LOCALE_HASH_TABLE_SIZE]; - -/* This lock protects the locale_hash_table against multiple simultaneous - accesses (except that multiple simultaneous read accesses are allowed). */ - -gl_rwlock_define(extern, locale_lock) - -#endif diff --git a/include/libgnulib/localename.h b/include/libgnulib/localename.h deleted file mode 100755 index 0690614..0000000 --- a/include/libgnulib/localename.h +++ /dev/null @@ -1,116 +0,0 @@ -/* Determine name of the currently selected locale. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_LOCALENAME_H -#define _GL_LOCALENAME_H - -/* This file uses _GL_ATTRIBUTE_CONST, HAVE_CFPREFERENCESCOPYAPPVALUE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Determine the current locale's name. - It considers both the POSIX notion of locale name (see functions - gl_locale_name_thread and gl_locale_name_posix) and the system notion - of locale name (see function gl_locale_name_default). - CATEGORY is a locale category abbreviation, as defined in , - but not LC_ALL. E.g. LC_MESSAGES. - CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". - Return the locale category's name, canonicalized into XPG syntax - language[_territory][.codeset][@modifier] - The codeset part in the result is not reliable; the locale_charset() - should be used for codeset information instead. - The result must not be freed; it is statically allocated. */ -extern const char * gl_locale_name (int category, const char *categoryname); - -/* Determine the current per-thread locale's name, as specified by uselocale() - calls. - CATEGORY is a locale category abbreviation, as defined in , - but not LC_ALL. E.g. LC_MESSAGES. - CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". - Return the locale category's name, canonicalized into XPG syntax - language[_territory][.codeset][@modifier] - or NULL if no locale has been specified for the current thread. - The codeset part in the result is not reliable; the locale_charset() - should be used for codeset information instead. - The result must not be freed; it is statically allocated. */ -extern const char * gl_locale_name_thread (int category, const char *categoryname); - -/* Determine the thread-independent current locale's name, as specified by - setlocale() calls or by environment variables. - CATEGORY is a locale category abbreviation, as defined in , - but not LC_ALL. E.g. LC_MESSAGES. - CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". - Return the locale category's name, canonicalized into XPG syntax - language[_territory][.codeset][@modifier] - or NULL if no locale has been specified to setlocale() or by environment - variables. - The codeset part in the result is not reliable; the locale_charset() - should be used for codeset information instead. - The result must not be freed; it is statically allocated. */ -extern const char * gl_locale_name_posix (int category, const char *categoryname); - -/* Determine the default locale's name, as specified by environment - variables. - Return the locale category's name, or NULL if no locale has been specified - by environment variables. - The result must not be freed; it is statically allocated. */ -extern const char * gl_locale_name_environ (int category, const char *categoryname); - -/* Determine the default locale's name. This is the current locale's name, - if not specified by uselocale() calls, by setlocale() calls, or by - environment variables. This locale name is usually determined by systems - settings that the user can manipulate through a GUI. - - Quoting POSIX:2001: - "All implementations shall define a locale as the default locale, - to be invoked when no environment variables are set, or set to the - empty string. This default locale can be the C locale or any other - implementation-defined locale. Some implementations may provide - facilities for local installation administrators to set the default - locale, customizing it for each location. IEEE Std 1003.1-2001 does - not require such a facility." - - The result must not be freed; it is statically allocated. */ -extern const char * gl_locale_name_default (void) -#if !(HAVE_CFPREFERENCESCOPYAPPVALUE || defined _WIN32 || defined __CYGWIN__) - _GL_ATTRIBUTE_CONST -#endif - ; - - -/* These functions with the '_unsafe' suffix are like the functions without - this suffix, above, except that the result is not statically allocated, but - instead only valid in the current thread, until the next uselocale(), - setlocale(), newlocale(), or freelocale() call. */ -extern const char * gl_locale_name_unsafe (int category, - const char *categoryname); -extern const char * gl_locale_name_thread_unsafe (int category, - const char *categoryname); -extern const char * gl_locale_name_posix_unsafe (int category, - const char *categoryname); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_LOCALENAME_H */ diff --git a/include/libgnulib/long-options.h b/include/libgnulib/long-options.h deleted file mode 100755 index a32a130..0000000 --- a/include/libgnulib/long-options.h +++ /dev/null @@ -1,50 +0,0 @@ -/* long-options.h -- declaration for --help- and --version-handling function. - Copyright (C) 1993-1994, 1998-1999, 2003, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#ifndef LONG_OPTIONS_H_ -# define LONG_OPTIONS_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - - -void parse_long_options (int _argc, - char **_argv, - const char *_command_name, - const char *_package, - const char *_version, - void (*_usage) (int), - /* const char *author1, ...*/ ...); - -void parse_gnu_standard_options_only (int argc, - char **argv, - const char *command_name, - const char *package, - const char *version, - bool scan_all, - void (*usage_func) (int), - /* const char *author1, ...*/ ...); - - -#ifdef __cplusplus -} -#endif - -#endif /* LONG_OPTIONS_H_ */ diff --git a/include/libgnulib/malloc/dynarray.h b/include/libgnulib/malloc/dynarray.h deleted file mode 100755 index 3163e27..0000000 --- a/include/libgnulib/malloc/dynarray.h +++ /dev/null @@ -1,177 +0,0 @@ -/* Type-safe arrays which grow dynamically. Shared definitions. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* To use the dynarray facility, you need to include - and define the parameter macros - documented in that file. - - A minimal example which provides a growing list of integers can be - defined like this: - - struct int_array - { - // Pointer to result array followed by its length, - // as required by DYNARRAY_FINAL_TYPE. - int *array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_int - #define DYNARRAY_ELEMENT int - #define DYNARRAY_PREFIX dynarray_int_ - #define DYNARRAY_FINAL_TYPE struct int_array - #include - - To create a three-element array with elements 1, 2, 3, use this - code: - - struct dynarray_int dyn; - dynarray_int_init (&dyn); - for (int i = 1; i <= 3; ++i) - { - int *place = dynarray_int_emplace (&dyn); - assert (place != NULL); - *place = i; - } - struct int_array result; - bool ok = dynarray_int_finalize (&dyn, &result); - assert (ok); - assert (result.length == 3); - assert (result.array[0] == 1); - assert (result.array[1] == 2); - assert (result.array[2] == 3); - free (result.array); - - If the elements contain resources which must be freed, define - DYNARRAY_ELEMENT_FREE appropriately, like this: - - struct str_array - { - char **array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_str - #define DYNARRAY_ELEMENT char * - #define DYNARRAY_ELEMENT_FREE(ptr) free (*ptr) - #define DYNARRAY_PREFIX dynarray_str_ - #define DYNARRAY_FINAL_TYPE struct str_array - #include - - Compared to scratch buffers, dynamic arrays have the following - features: - - - They have an element type, and are not just an untyped buffer of - bytes. - - - When growing, previously stored elements are preserved. (It is - expected that scratch_buffer_grow_preserve and - scratch_buffer_set_array_size eventually go away because all - current users are moved to dynamic arrays.) - - - Scratch buffers have a more aggressive growth policy because - growing them typically means a retry of an operation (across an - NSS service module boundary), which is expensive. - - - For the same reason, scratch buffers have a much larger initial - stack allocation. */ - -#ifndef _DYNARRAY_H -#define _DYNARRAY_H - -#include -#include - -struct dynarray_header -{ - size_t used; - size_t allocated; - void *array; -}; - -/* Marker used in the allocated member to indicate that an error was - encountered. */ -static inline size_t -__dynarray_error_marker (void) -{ - return -1; -} - -/* Internal function. See the has_failed function in - dynarray-skeleton.c. */ -static inline bool -__dynarray_error (struct dynarray_header *list) -{ - return list->allocated == __dynarray_error_marker (); -} - -/* Internal function. Enlarge the dynamically allocated area of the - array to make room for one more element. SCRATCH is a pointer to - the scratch area (which is not heap-allocated and must not be - freed). ELEMENT_SIZE is the size, in bytes, of one element. - Return false on failure, true on success. */ -bool __libc_dynarray_emplace_enlarge (struct dynarray_header *, - void *scratch, size_t element_size); - -/* Internal function. Enlarge the dynamically allocated area of the - array to make room for at least SIZE elements (which must be larger - than the existing used part of the dynamic array). SCRATCH is a - pointer to the scratch area (which is not heap-allocated and must - not be freed). ELEMENT_SIZE is the size, in bytes, of one element. - Return false on failure, true on success. */ -bool __libc_dynarray_resize (struct dynarray_header *, size_t size, - void *scratch, size_t element_size); - -/* Internal function. Like __libc_dynarray_resize, but clear the new - part of the dynamic array. */ -bool __libc_dynarray_resize_clear (struct dynarray_header *, size_t size, - void *scratch, size_t element_size); - -/* Internal type. */ -struct dynarray_finalize_result -{ - void *array; - size_t length; -}; - -/* Internal function. Copy the dynamically-allocated area to an - explicitly-sized heap allocation. SCRATCH is a pointer to the - embedded scratch space. ELEMENT_SIZE is the size, in bytes, of the - element type. On success, true is returned, and pointer and length - are written to *RESULT. On failure, false is returned. The caller - has to take care of some of the memory management; this function is - expected to be called from dynarray-skeleton.c. */ -bool __libc_dynarray_finalize (struct dynarray_header *list, void *scratch, - size_t element_size, - struct dynarray_finalize_result *result); - - -/* Internal function. Terminate the process after an index error. - SIZE is the number of elements of the dynamic array. INDEX is the - lookup index which triggered the failure. */ -_Noreturn void __libc_dynarray_at_failure (size_t size, size_t index); - -#ifndef _ISOMAC -libc_hidden_proto (__libc_dynarray_emplace_enlarge) -libc_hidden_proto (__libc_dynarray_resize) -libc_hidden_proto (__libc_dynarray_resize_clear) -libc_hidden_proto (__libc_dynarray_finalize) -libc_hidden_proto (__libc_dynarray_at_failure) -#endif - -#endif /* _DYNARRAY_H */ diff --git a/include/libgnulib/malloc/scratch_buffer.h b/include/libgnulib/malloc/scratch_buffer.h deleted file mode 100755 index b94f872..0000000 --- a/include/libgnulib/malloc/scratch_buffer.h +++ /dev/null @@ -1,135 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _SCRATCH_BUFFER_H -#define _SCRATCH_BUFFER_H - -/* Scratch buffers with a default stack allocation and fallback to - heap allocation. It is expected that this function is used in this - way: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - return -1; - - scratch_buffer_free (&tmpbuf); - return 0; - - The allocation functions (scratch_buffer_grow, - scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make - sure that the heap allocation, if any, is freed, so that the code - above does not have a memory leak. The buffer still remains in a - state that can be deallocated using scratch_buffer_free, so a loop - like this is valid as well: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - break; - - scratch_buffer_free (&tmpbuf); - - scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed - to grow the buffer by at least 512 bytes. This means that when - using the scratch buffer as a backing store for a non-character - array whose element size, in bytes, is 512 or smaller, the scratch - buffer only has to grow once to make room for at least one more - element. -*/ - -#include -#include -#include - -/* Scratch buffer. Must be initialized with scratch_buffer_init - before its use. */ -struct scratch_buffer { - void *data; /* Pointer to the beginning of the scratch area. */ - size_t length; /* Allocated space at the data pointer, in bytes. */ - union { max_align_t __align; char __c[1024]; } __space; -}; - -/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space - and BUFFER->length reflects the available space. */ -static inline void -scratch_buffer_init (struct scratch_buffer *buffer) -{ - buffer->data = buffer->__space.__c; - buffer->length = sizeof (buffer->__space); -} - -/* Deallocates *BUFFER (if it was heap-allocated). */ -static inline void -scratch_buffer_free (struct scratch_buffer *buffer) -{ - if (buffer->data != buffer->__space.__c) - free (buffer->data); -} - -/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT - preserved. Return true on success, false on allocation failure (in - which case the old buffer is freed). On success, the new buffer is - larger than the previous size. On failure, *BUFFER is deallocated, - but remains in a free-able state, and errno is set. */ -bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer); -libc_hidden_proto (__libc_scratch_buffer_grow) - -/* Alias for __libc_scratch_buffer_grow. */ -static __always_inline bool -scratch_buffer_grow (struct scratch_buffer *buffer) -{ - return __glibc_likely (__libc_scratch_buffer_grow (buffer)); -} - -/* Like __libc_scratch_buffer_grow, but preserve the old buffer - contents on success, as a prefix of the new buffer. */ -bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer); -libc_hidden_proto (__libc_scratch_buffer_grow_preserve) - -/* Alias for __libc_scratch_buffer_grow_preserve. */ -static __always_inline bool -scratch_buffer_grow_preserve (struct scratch_buffer *buffer) -{ - return __glibc_likely (__libc_scratch_buffer_grow_preserve (buffer)); -} - -/* Grow *BUFFER so that it can store at least NELEM elements of SIZE - bytes. The buffer contents are NOT preserved. Both NELEM and SIZE - can be zero. Return true on success, false on allocation failure - (in which case the old buffer is freed, but *BUFFER remains in a - free-able state, and errno is set). It is unspecified whether this - function can reduce the array size. */ -bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size); -libc_hidden_proto (__libc_scratch_buffer_set_array_size) - -/* Alias for __libc_scratch_set_array_size. */ -static __always_inline bool -scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size) -{ - return __glibc_likely (__libc_scratch_buffer_set_array_size - (buffer, nelem, size)); -} - -#endif /* _SCRATCH_BUFFER_H */ diff --git a/include/libgnulib/malloca.h b/include/libgnulib/malloca.h deleted file mode 100755 index c520842..0000000 --- a/include/libgnulib/malloca.h +++ /dev/null @@ -1,147 +0,0 @@ -/* Safe automatic memory allocation. - Copyright (C) 2003-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MALLOCA_H -#define _MALLOCA_H - -/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC, - _GL_ATTRIBUTE_MALLOC, HAVE_ALLOCA. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include -#if defined __CHERI_PURE_CAPABILITY__ -# include -#endif - -#include "xalloc-oversized.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* safe_alloca(N) is equivalent to alloca(N) when it is safe to call - alloca(N); otherwise it returns NULL. It either returns N bytes of - memory allocated on the stack, that lasts until the function returns, - or NULL. - Use of safe_alloca should be avoided: - - inside arguments of function calls - undefined behaviour, - - in inline functions - the allocation may actually last until the - calling function returns. -*/ -#if HAVE_ALLOCA -/* The OS usually guarantees only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - allocate anything larger than 4096 bytes. Also care for the possibility - of a few compiler-allocated temporary stack slots. - This must be a macro, not a function. */ -# define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) -#else -# define safe_alloca(N) ((void) (N), NULL) -#endif - -/* Free a block of memory allocated through malloca(). */ -#if HAVE_ALLOCA -extern void freea (void *p); -#else -# define freea free -#endif - -/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of - memory allocated on the stack, that must be freed using freea() before - the function returns. Upon failure, it returns NULL. */ -#if HAVE_ALLOCA -# if defined __CHERI_PURE_CAPABILITY__ -# define malloca(N) \ - ((N) < 4032 - (2 * sa_alignment_max - 1) \ - ? cheri_bounds_set ((void *) (((uintptr_t) \ - (char *) \ - alloca ((N) + 2 * sa_alignment_max - 1) \ - + (2 * sa_alignment_max - 1)) \ - & ~(uintptr_t)(2 * sa_alignment_max - 1)), \ - (N)) \ - : mmalloca (N)) -# else -# define malloca(N) \ - ((N) < 4032 - (2 * sa_alignment_max - 1) \ - ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ - + (2 * sa_alignment_max - 1)) \ - & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ - : mmalloca (N)) -# endif -#else -# define malloca(N) \ - mmalloca (N) -#endif -extern void *mmalloca (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1) - _GL_ATTRIBUTE_ALLOC_SIZE ((1)); - -/* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). - It allocates an array of N objects, each with S bytes of memory, - on the stack. N and S should be nonnegative and free of side effects. - The array must be freed using freea() before the function returns. */ -#define nmalloca(n, s) \ - (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) - - -#ifdef __cplusplus -} -#endif - - -/* ------------------- Auxiliary, non-public definitions ------------------- */ - -/* Determine the alignment of a type at compile time. */ -#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ -# define sa_alignof __alignof__ -#elif defined __cplusplus - template struct sa_alignof_helper { char __slot1; type __slot2; }; -# define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) -#elif defined __hpux - /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof - values. */ -# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) -#elif defined _AIX - /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof - values. */ -# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) -#else -# define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) -#endif - -enum -{ -/* The desired alignment of memory allocations is the maximum alignment - among all elementary types. */ - sa_alignment_long = sa_alignof (long), - sa_alignment_double = sa_alignof (double), - sa_alignment_longlong = sa_alignof (long long), - sa_alignment_longdouble = sa_alignof (long double), - sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) - | (sa_alignment_longlong - 1) - | (sa_alignment_longdouble - 1) - ) + 1 -}; - -#endif /* _MALLOCA_H */ diff --git a/include/libgnulib/mbchar.h b/include/libgnulib/mbchar.h deleted file mode 100755 index 5a1529d..0000000 --- a/include/libgnulib/mbchar.h +++ /dev/null @@ -1,383 +0,0 @@ -/* Multibyte character data type. - Copyright (C) 2001, 2005-2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -/* A multibyte character is a short subsequence of a char* string, - representing a single 32-bit wide character. - - We use multibyte characters instead of 32-bit wide characters because - of the following goals: - 1) correct multibyte handling, i.e. operate according to the LC_CTYPE - locale, - 2) ease of maintenance, i.e. the maintainer needs not know all details - of the ISO C 99 standard, - 3) don't fail grossly if the input is not in the encoding set by the - locale, because often different encodings are in use in the same - countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...), - 4) fast in the case of ASCII characters. - - Multibyte characters are only accessed through the mb* macros. - - mb_ptr (mbc) - return a pointer to the beginning of the multibyte sequence. - - mb_len (mbc) - returns the number of bytes occupied by the multibyte sequence. - Always > 0. - - mb_iseq (mbc, sc) - returns true if mbc is the standard ASCII character sc. - - mb_isnul (mbc) - returns true if mbc is the nul character. - - mb_cmp (mbc1, mbc2) - returns a positive, zero, or negative value depending on whether mbc1 - sorts after, same or before mbc2. - - mb_casecmp (mbc1, mbc2) - returns a positive, zero, or negative value depending on whether mbc1 - sorts after, same or before mbc2, modulo upper/lowercase conversion. - - mb_equal (mbc1, mbc2) - returns true if mbc1 and mbc2 are equal. - - mb_caseequal (mbc1, mbc2) - returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion. - - mb_isalnum (mbc) - returns true if mbc is alphanumeric. - - mb_isalpha (mbc) - returns true if mbc is alphabetic. - - mb_isascii(mbc) - returns true if mbc is plain ASCII. - - mb_isblank (mbc) - returns true if mbc is a blank. - - mb_iscntrl (mbc) - returns true if mbc is a control character. - - mb_isdigit (mbc) - returns true if mbc is a decimal digit. - - mb_isgraph (mbc) - returns true if mbc is a graphic character. - - mb_islower (mbc) - returns true if mbc is lowercase. - - mb_isprint (mbc) - returns true if mbc is a printable character. - - mb_ispunct (mbc) - returns true if mbc is a punctuation character. - - mb_isspace (mbc) - returns true if mbc is a space character. - - mb_isupper (mbc) - returns true if mbc is uppercase. - - mb_isxdigit (mbc) - returns true if mbc is a hexadecimal digit. - - mb_width (mbc) - returns the number of columns on the output device occupied by mbc. - Always >= 0. - - mb_putc (mbc, stream) - outputs mbc on stream, a byte oriented FILE stream opened for output. - - mb_setascii (&mbc, sc) - assigns the standard ASCII character sc to mbc. - (Only available if the 'mbfile' module is in use.) - - mb_copy (&destmbc, &srcmbc) - copies srcmbc to destmbc. - - Here are the function prototypes of the macros. - - extern const char * mb_ptr (const mbchar_t mbc); - extern size_t mb_len (const mbchar_t mbc); - extern bool mb_iseq (const mbchar_t mbc, char sc); - extern bool mb_isnul (const mbchar_t mbc); - extern int mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2); - extern int mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_equal (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2); - extern bool mb_isalnum (const mbchar_t mbc); - extern bool mb_isalpha (const mbchar_t mbc); - extern bool mb_isascii (const mbchar_t mbc); - extern bool mb_isblank (const mbchar_t mbc); - extern bool mb_iscntrl (const mbchar_t mbc); - extern bool mb_isdigit (const mbchar_t mbc); - extern bool mb_isgraph (const mbchar_t mbc); - extern bool mb_islower (const mbchar_t mbc); - extern bool mb_isprint (const mbchar_t mbc); - extern bool mb_ispunct (const mbchar_t mbc); - extern bool mb_isspace (const mbchar_t mbc); - extern bool mb_isupper (const mbchar_t mbc); - extern bool mb_isxdigit (const mbchar_t mbc); - extern int mb_width (const mbchar_t mbc); - extern void mb_putc (const mbchar_t mbc, FILE *stream); - extern void mb_setascii (mbchar_t *new, char sc); - extern void mb_copy (mbchar_t *new, const mbchar_t *old); - */ - -#ifndef _MBCHAR_H -#define _MBCHAR_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef MBCHAR_INLINE -# define MBCHAR_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* The longest multibyte characters, nowadays, are 4 bytes long. - Regardless of the values of MB_CUR_MAX and MB_LEN_MAX. */ -#define MBCHAR_BUF_SIZE 4 - -struct mbchar -{ - const char *ptr; /* pointer to current character */ - size_t bytes; /* number of bytes of current character, > 0 */ - bool wc_valid; /* true if wc is a valid 32-bit wide character */ - char32_t wc; /* if wc_valid: the current character */ -#if defined GNULIB_MBFILE - char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */ -#endif -}; - -/* EOF (not a real character) is represented with bytes = 0 and - wc_valid = false. */ - -typedef struct mbchar mbchar_t; - -/* Access the current character. */ -#define mb_ptr(mbc) ((mbc).ptr) -#define mb_len(mbc) ((mbc).bytes) - -/* Comparison of characters. */ -#define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc)) -#define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0) -#define mb_cmp(mbc1, mbc2) \ - ((mbc1).wc_valid \ - ? ((mbc2).wc_valid \ - ? _GL_CMP ((mbc1).wc, (mbc2).wc) \ - : -1) \ - : ((mbc2).wc_valid \ - ? 1 \ - : (mbc1).bytes == (mbc2).bytes \ - ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ - : (mbc1).bytes < (mbc2).bytes \ - ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ - : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) -#define mb_casecmp(mbc1, mbc2) \ - ((mbc1).wc_valid \ - ? ((mbc2).wc_valid \ - ? _GL_CMP (c32tolower ((mbc1).wc), c32tolower ((mbc2).wc)) \ - : -1) \ - : ((mbc2).wc_valid \ - ? 1 \ - : (mbc1).bytes == (mbc2).bytes \ - ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) \ - : (mbc1).bytes < (mbc2).bytes \ - ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \ - : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1))) -#define mb_equal(mbc1, mbc2) \ - ((mbc1).wc_valid && (mbc2).wc_valid \ - ? (mbc1).wc == (mbc2).wc \ - : (mbc1).bytes == (mbc2).bytes \ - && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) -#define mb_caseequal(mbc1, mbc2) \ - ((mbc1).wc_valid && (mbc2).wc_valid \ - ? c32tolower ((mbc1).wc) == c32tolower ((mbc2).wc) \ - : (mbc1).bytes == (mbc2).bytes \ - && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0) - -/* , classification. */ -#define mb_isascii(mbc) \ - ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127) -#define mb_isalnum(mbc) ((mbc).wc_valid && c32isalnum ((mbc).wc)) -#define mb_isalpha(mbc) ((mbc).wc_valid && c32isalpha ((mbc).wc)) -#define mb_isblank(mbc) ((mbc).wc_valid && c32isblank ((mbc).wc)) -#define mb_iscntrl(mbc) ((mbc).wc_valid && c32iscntrl ((mbc).wc)) -#define mb_isdigit(mbc) ((mbc).wc_valid && c32isdigit ((mbc).wc)) -#define mb_isgraph(mbc) ((mbc).wc_valid && c32isgraph ((mbc).wc)) -#define mb_islower(mbc) ((mbc).wc_valid && c32islower ((mbc).wc)) -#define mb_isprint(mbc) ((mbc).wc_valid && c32isprint ((mbc).wc)) -#define mb_ispunct(mbc) ((mbc).wc_valid && c32ispunct ((mbc).wc)) -#define mb_isspace(mbc) ((mbc).wc_valid && c32isspace ((mbc).wc)) -#define mb_isupper(mbc) ((mbc).wc_valid && c32isupper ((mbc).wc)) -#define mb_isxdigit(mbc) ((mbc).wc_valid && c32isxdigit ((mbc).wc)) - -/* Extra function. */ - -/* Unprintable characters appear as a small box of width 1. */ -#define MB_UNPRINTABLE_WIDTH 1 - -MBCHAR_INLINE int -mb_width_aux (char32_t wc) -{ - int w = c32width (wc); - /* For unprintable characters, arbitrarily return 0 for control characters - and MB_UNPRINTABLE_WIDTH otherwise. */ - return (w >= 0 ? w : c32iscntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH); -} - -#define mb_width(mbc) \ - ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH) - -/* Output. */ -#define mb_putc(mbc, stream) fwrite ((mbc).ptr, 1, (mbc).bytes, (stream)) - -#if defined GNULIB_MBFILE -/* Assignment. */ -# define mb_setascii(mbc, sc) \ - ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \ - (mbc)->wc = (mbc)->buf[0] = (sc)) -#endif - -/* Copying a character. */ -MBCHAR_INLINE void -mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc) -{ -#if defined GNULIB_MBFILE - if (old_mbc->ptr == &old_mbc->buf[0]) - { - memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes); - new_mbc->ptr = &new_mbc->buf[0]; - } - else -#endif - new_mbc->ptr = old_mbc->ptr; - new_mbc->bytes = old_mbc->bytes; - if ((new_mbc->wc_valid = old_mbc->wc_valid)) - new_mbc->wc = old_mbc->wc; -} - - -/* is_basic(c) tests whether the single-byte character c is - - in the ISO C "basic character set" or is one of '@', '$', and '`' - which ISO C 23 § 5.2.1.1.(1) guarantees to be single-byte and in - practice are safe to treat as basic in the execution character set, - or - - in the POSIX "portable character set", which - - equally guarantees to be single-byte. - This is a convenience function, and is in this file only to share code - between mbiter.h, mbuiter.h, and mbfile.h. */ -#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('$' == 36) && ('%' == 37) && ('&' == 38) && ('\'' == 39) \ - && ('(' == 40) && (')' == 41) && ('*' == 42) && ('+' == 43) \ - && (',' == 44) && ('-' == 45) && ('.' == 46) && ('/' == 47) \ - && ('0' == 48) && ('1' == 49) && ('2' == 50) && ('3' == 51) \ - && ('4' == 52) && ('5' == 53) && ('6' == 54) && ('7' == 55) \ - && ('8' == 56) && ('9' == 57) && (':' == 58) && (';' == 59) \ - && ('<' == 60) && ('=' == 61) && ('>' == 62) && ('?' == 63) \ - && ('@' == 64) && ('A' == 65) && ('B' == 66) && ('C' == 67) \ - && ('D' == 68) && ('E' == 69) && ('F' == 70) && ('G' == 71) \ - && ('H' == 72) && ('I' == 73) && ('J' == 74) && ('K' == 75) \ - && ('L' == 76) && ('M' == 77) && ('N' == 78) && ('O' == 79) \ - && ('P' == 80) && ('Q' == 81) && ('R' == 82) && ('S' == 83) \ - && ('T' == 84) && ('U' == 85) && ('V' == 86) && ('W' == 87) \ - && ('X' == 88) && ('Y' == 89) && ('Z' == 90) && ('[' == 91) \ - && ('\\' == 92) && (']' == 93) && ('^' == 94) && ('_' == 95) \ - && ('`' == 96) && ('a' == 97) && ('b' == 98) && ('c' == 99) \ - && ('d' == 100) && ('e' == 101) && ('f' == 102) && ('g' == 103) \ - && ('h' == 104) && ('i' == 105) && ('j' == 106) && ('k' == 107) \ - && ('l' == 108) && ('m' == 109) && ('n' == 110) && ('o' == 111) \ - && ('p' == 112) && ('q' == 113) && ('r' == 114) && ('s' == 115) \ - && ('t' == 116) && ('u' == 117) && ('v' == 118) && ('w' == 119) \ - && ('x' == 120) && ('y' == 121) && ('z' == 122) && ('{' == 123) \ - && ('|' == 124) && ('}' == 125) && ('~' == 126) -/* The character set is ISO-646, not EBCDIC. */ -# define IS_BASIC_ASCII 1 - -/* All locale encodings (see localcharset.h) map the characters 0x00..0x7F - to U+0000..U+007F, like ASCII, except for - CP864 different mapping of '%' - SHIFT_JIS different mappings of 0x5C, 0x7E - JOHAB different mapping of 0x5C - However, these characters in the range 0x20..0x7E are in the ISO C - "basic character set" and in the POSIX "portable character set", which - ISO C and POSIX guarantee to be single-byte. Thus, locales with these - encodings are not POSIX compliant. And they are most likely not in use - any more (as of 2023). */ -# define is_basic(c) ((unsigned char) (c) < 0x80) - -#else - -MBCHAR_INLINE bool -is_basic (char c) -{ - switch (c) - { - case '\0': - case '\007': case '\010': - case '\t': case '\n': case '\v': case '\f': case '\r': - case ' ': case '!': case '"': case '#': case '$': case '%': - case '&': case '\'': case '(': case ')': case '*': - case '+': case ',': case '-': case '.': case '/': - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case ':': case ';': case '<': case '=': case '>': - case '?': case '@': - case 'A': case 'B': case 'C': case 'D': case 'E': - case 'F': case 'G': case 'H': case 'I': case 'J': - case 'K': case 'L': case 'M': case 'N': case 'O': - case 'P': case 'Q': case 'R': case 'S': case 'T': - case 'U': case 'V': case 'W': case 'X': case 'Y': - case 'Z': - case '[': case '\\': case ']': case '^': case '_': case '`': - case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': case 'g': case 'h': case 'i': case 'j': - case 'k': case 'l': case 'm': case 'n': case 'o': - case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': case '{': case '|': case '}': case '~': - return 1; - default: - return 0; - } -} - -#endif - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MBCHAR_H */ diff --git a/include/libgnulib/mbfile.h b/include/libgnulib/mbfile.h deleted file mode 100755 index fe83eb6..0000000 --- a/include/libgnulib/mbfile.h +++ /dev/null @@ -1,277 +0,0 @@ -/* Multibyte character I/O: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Mitsuru Chinen - and Bruno Haible . */ - -/* The macros in this file implement multi-byte character input from a - stream. - - mb_file_t - is the type for multibyte character input stream, usable for variable - declarations. - - mbf_char_t - is the type for multibyte character or EOF, usable for variable - declarations. - - mbf_init (mbf, stream) - initializes the MB_FILE for reading from stream. - - mbf_getc (mbc, mbf) - reads the next multibyte character from mbf and stores it in mbc. - - mb_iseof (mbc) - returns true if mbc represents the EOF value. - - Here are the function prototypes of the macros. - - extern void mbf_init (mb_file_t mbf, FILE *stream); - extern void mbf_getc (mbf_char_t mbc, mb_file_t mbf); - extern bool mb_iseof (const mbf_char_t mbc); - */ - -#ifndef _MBFILE_H -#define _MBFILE_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include - -#include "mbchar.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef MBFILE_INLINE -# define MBFILE_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -struct mbfile_multi { - FILE *fp; - bool eof_seen; - bool have_pushback; - mbstate_t state; - unsigned int bufcount; - char buf[MBCHAR_BUF_SIZE]; - struct mbchar pushback; -}; - -MBFILE_INLINE void -mbfile_multi_getc (struct mbchar *mbc, struct mbfile_multi *mbf) -{ - unsigned int new_bufcount; - size_t bytes; - - /* If EOF has already been seen, don't use getc. This matters if - mbf->fp is connected to an interactive tty. */ - if (mbf->eof_seen) - goto eof; - - /* Return character pushed back, if there is one. */ - if (mbf->have_pushback) - { - mb_copy (mbc, &mbf->pushback); - mbf->have_pushback = false; - return; - } - - new_bufcount = mbf->bufcount; - - /* If mbf->state is not in an initial state, some more 32-bit wide character - may be hiding in the state. We need to call mbrtoc32 again. */ - #if GNULIB_MBRTOC32_REGULAR - assert (mbsinit (&mbf->state)); - #else - if (mbsinit (&mbf->state)) - #endif - { - /* Before using mbrtoc32, we need at least one byte. */ - if (new_bufcount == 0) - { - int c = getc (mbf->fp); - if (c == EOF) - { - mbf->eof_seen = true; - goto eof; - } - mbf->buf[0] = (unsigned char) c; - new_bufcount++; - } - - /* Handle most ASCII characters quickly, without calling mbrtoc32(). */ - if (new_bufcount == 1 && is_basic (mbf->buf[0])) - { - /* These characters are part of the POSIX portable character set. - For most of them, namely those in the ISO C basic character set, - ISO C 99 guarantees that their wide character code is identical to - their char code. For the few other ones, this is the case as well, - in all locale encodings that are in use. The 32-bit wide character - code is the same as well. */ - mbc->wc = mbc->buf[0] = mbf->buf[0]; - mbc->wc_valid = true; - mbc->ptr = &mbc->buf[0]; - mbc->bytes = 1; - mbf->bufcount = 0; - return; - } - } - - /* Use mbrtoc32 on an increasing number of bytes. Read only as many bytes - from mbf->fp as needed. This is needed to give reasonable interactive - behaviour when mbf->fp is connected to an interactive tty. */ - for (;;) - { - /* Feed the bytes one by one into mbrtoc32. */ - bytes = mbrtoc32 (&mbc->wc, &mbf->buf[mbf->bufcount], new_bufcount - mbf->bufcount, &mbf->state); - - if (bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - mbf->bufcount = new_bufcount; - /* Return a single byte. */ - bytes = 1; - mbc->wc_valid = false; - /* Allow the next invocation to continue from a sane state. */ - mbszero (&mbf->state); - break; - } - else if (bytes == (size_t) -2) - { - /* An incomplete multibyte character. */ - mbf->bufcount = new_bufcount; - if (mbf->bufcount == MBCHAR_BUF_SIZE) - { - /* An overlong incomplete multibyte sequence was encountered. */ - /* Return a single byte. */ - bytes = 1; - mbc->wc_valid = false; - break; - } - else - { - /* Read one more byte and retry mbrtoc32. */ - int c = getc (mbf->fp); - if (c == EOF) - { - /* An incomplete multibyte character at the end. */ - mbf->eof_seen = true; - bytes = new_bufcount; - mbc->wc_valid = false; - break; - } - mbf->buf[new_bufcount] = (unsigned char) c; - new_bufcount++; - } - } - else - { - #if !GNULIB_MBRTOC32_REGULAR - if (bytes == (size_t) -3) - { - /* The previous multibyte sequence produced an additional 32-bit - wide character. */ - mbf->bufcount = new_bufcount; - bytes = 0; - } - else - #endif - { - bytes = mbf->bufcount + bytes; - mbf->bufcount = new_bufcount; - if (bytes == 0) - { - /* A null 32-bit wide character was encountered. */ - bytes = 1; - assert (mbf->buf[0] == '\0'); - assert (mbc->wc == 0); - } - } - mbc->wc_valid = true; - break; - } - } - - /* Return the multibyte sequence mbf->buf[0..bytes-1]. */ - mbc->ptr = &mbc->buf[0]; - memcpy (&mbc->buf[0], &mbf->buf[0], bytes); - mbc->bytes = bytes; - - mbf->bufcount -= bytes; - if (mbf->bufcount > 0) - { - /* It's not worth calling memmove() for so few bytes. */ - unsigned int count = mbf->bufcount; - char *p = &mbf->buf[0]; - - do - { - *p = *(p + bytes); - p++; - } - while (--count > 0); - } - return; - -eof: - /* An mbchar_t with bytes == 0 is used to indicate EOF. */ - mbc->ptr = NULL; - mbc->bytes = 0; - mbc->wc_valid = false; - return; -} - -MBFILE_INLINE void -mbfile_multi_ungetc (const struct mbchar *mbc, struct mbfile_multi *mbf) -{ - mb_copy (&mbf->pushback, mbc); - mbf->have_pushback = true; -} - -typedef struct mbfile_multi mb_file_t; - -typedef mbchar_t mbf_char_t; - -#define mbf_init(mbf, stream) \ - ((mbf).fp = (stream), \ - (mbf).eof_seen = false, \ - (mbf).have_pushback = false, \ - mbszero (&(mbf).state), \ - (mbf).bufcount = 0) - -#define mbf_getc(mbc, mbf) mbfile_multi_getc (&(mbc), &(mbf)) - -#define mbf_ungetc(mbc, mbf) mbfile_multi_ungetc (&(mbc), &(mbf)) - -#define mb_iseof(mbc) ((mbc).bytes == 0) - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MBFILE_H */ diff --git a/include/libgnulib/mbiter.h b/include/libgnulib/mbiter.h deleted file mode 100755 index bee76d2..0000000 --- a/include/libgnulib/mbiter.h +++ /dev/null @@ -1,278 +0,0 @@ -/* Iterating through multibyte strings: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -/* The macros in this file implement forward iteration through a - multi-byte string. - - With these macros, an iteration loop that looks like - - char *iter; - for (iter = buf; iter < buf + buflen; iter++) - { - do_something (*iter); - } - - becomes - - mbi_iterator_t iter; - for (mbi_init (iter, buf, buflen); mbi_avail (iter); mbi_advance (iter)) - { - do_something (mbi_cur_ptr (iter), mb_len (mbi_cur (iter))); - } - - The benefit of these macros over plain use of mbrtowc is: - - Handling of invalid multibyte sequences is possible without - making the code more complicated, while still preserving the - invalid multibyte sequences. - - mbi_iterator_t - is a type usable for variable declarations. - - mbi_init (iter, startptr, length) - initializes the iterator, starting at startptr and crossing length bytes. - - mbi_avail (iter) - returns true if there are more multibyte characters available before - the end of string is reached. In this case, mbi_cur (iter) is - initialized to the next multibyte character. - - mbi_advance (iter) - advances the iterator by one multibyte character. - - mbi_cur (iter) - returns the current multibyte character, of type mbchar_t. All the - macros defined in mbchar.h can be used on it. - - mbi_cur_ptr (iter) - return a pointer to the beginning of the current multibyte character. - - mbi_reloc (iter, ptrdiff) - relocates iterator when the string is moved by ptrdiff bytes. - - mbi_copy (&destiter, &srciter) - copies srciter to destiter. - - Here are the function prototypes of the macros. - - extern void mbi_init (mbi_iterator_t iter, - const char *startptr, size_t length); - extern bool mbi_avail (mbi_iterator_t iter); - extern void mbi_advance (mbi_iterator_t iter); - extern mbchar_t mbi_cur (mbi_iterator_t iter); - extern const char * mbi_cur_ptr (mbi_iterator_t iter); - extern void mbi_reloc (mbi_iterator_t iter, ptrdiff_t ptrdiff); - extern void mbi_copy (mbi_iterator_t *new, const mbi_iterator_t *old); - */ - -#ifndef _MBITER_H -#define _MBITER_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_ALWAYS_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include -#include - -#include "mbchar.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef MBITER_INLINE -# define MBITER_INLINE _GL_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -struct mbiter_multi -{ - const char *limit; /* pointer to end of string */ - #if !GNULIB_MBRTOC32_REGULAR - bool in_shift; /* true if next byte may not be interpreted as ASCII */ - /* If GNULIB_MBRTOC32_REGULAR, it is always false, - so optimize it away. */ - #endif - mbstate_t state; /* if in_shift: current shift state */ - /* If GNULIB_MBRTOC32_REGULAR, it is in an initial state - before and after every mbiter_multi_next invocation. - */ - bool next_done; /* true if mbi_avail has already filled the following */ - struct mbchar cur; /* the current character: - const char *cur.ptr pointer to current character - The following are only valid after mbi_avail. - size_t cur.bytes number of bytes of current character - bool cur.wc_valid true if wc is a valid 32-bit wide character - char32_t cur.wc if wc_valid: the current character - */ -}; - -MBITER_INLINE void -mbiter_multi_next (struct mbiter_multi *iter) -{ - if (iter->next_done) - return; - #if !GNULIB_MBRTOC32_REGULAR - if (iter->in_shift) - goto with_shift; - #endif - /* Handle most ASCII characters quickly, without calling mbrtowc(). */ - if (is_basic (*iter->cur.ptr)) - { - /* These characters are part of the POSIX portable character set. - For most of them, namely those in the ISO C basic character set, - ISO C 99 guarantees that their wide character code is identical to - their char code. For the few other ones, this is the case as well, - in all locale encodings that are in use. The 32-bit wide character - code is the same as well. */ - iter->cur.bytes = 1; - iter->cur.wc = *iter->cur.ptr; - iter->cur.wc_valid = true; - } - else - { - assert (mbsinit (&iter->state)); - #if !GNULIB_MBRTOC32_REGULAR - iter->in_shift = true; - with_shift: - #endif - iter->cur.bytes = mbrtoc32 (&iter->cur.wc, iter->cur.ptr, - iter->limit - iter->cur.ptr, &iter->state); - if (iter->cur.bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - iter->cur.bytes = 1; - iter->cur.wc_valid = false; - /* Allow the next invocation to continue from a sane state. */ - #if !GNULIB_MBRTOC32_REGULAR - iter->in_shift = false; - #endif - mbszero (&iter->state); - } - else if (iter->cur.bytes == (size_t) -2) - { - /* An incomplete multibyte character at the end. */ - iter->cur.bytes = iter->limit - iter->cur.ptr; - iter->cur.wc_valid = false; - #if !GNULIB_MBRTOC32_REGULAR - /* Cause the next mbi_avail invocation to return false. */ - iter->in_shift = false; - #endif - /* Whether to reset iter->state or not is not important; the - string end is reached anyway. */ - } - else - { - if (iter->cur.bytes == 0) - { - /* A null wide character was encountered. */ - iter->cur.bytes = 1; - assert (*iter->cur.ptr == '\0'); - assert (iter->cur.wc == 0); - } - #if !GNULIB_MBRTOC32_REGULAR - else if (iter->cur.bytes == (size_t) -3) - /* The previous multibyte sequence produced an additional 32-bit - wide character. */ - iter->cur.bytes = 0; - #endif - iter->cur.wc_valid = true; - - /* When in an initial state, we can go back treating ASCII - characters more quickly. */ - #if !GNULIB_MBRTOC32_REGULAR - if (mbsinit (&iter->state)) - iter->in_shift = false; - #endif - } - } - iter->next_done = true; -} - -MBITER_INLINE void -mbiter_multi_reloc (struct mbiter_multi *iter, ptrdiff_t ptrdiff) -{ - iter->cur.ptr += ptrdiff; - iter->limit += ptrdiff; -} - -MBITER_INLINE void -mbiter_multi_copy (struct mbiter_multi *new_iter, const struct mbiter_multi *old_iter) -{ - new_iter->limit = old_iter->limit; - #if !GNULIB_MBRTOC32_REGULAR - if ((new_iter->in_shift = old_iter->in_shift)) - memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t)); - else - #endif - mbszero (&new_iter->state); - new_iter->next_done = old_iter->next_done; - mb_copy (&new_iter->cur, &old_iter->cur); -} - -/* Iteration macros. */ -typedef struct mbiter_multi mbi_iterator_t; -#if !GNULIB_MBRTOC32_REGULAR -#define mbi_init(iter, startptr, length) \ - ((iter).cur.ptr = (startptr), (iter).limit = (iter).cur.ptr + (length), \ - (iter).in_shift = false, mbszero (&(iter).state), \ - (iter).next_done = false) -#else -/* Optimized: no in_shift. */ -#define mbi_init(iter, startptr, length) \ - ((iter).cur.ptr = (startptr), (iter).limit = (iter).cur.ptr + (length), \ - mbszero (&(iter).state), \ - (iter).next_done = false) -#endif -#if !GNULIB_MBRTOC32_REGULAR -#define mbi_avail(iter) \ - (((iter).cur.ptr < (iter).limit || (iter).in_shift) \ - && (mbiter_multi_next (&(iter)), true)) -#else -/* Optimized: no in_shift. */ -#define mbi_avail(iter) \ - ((iter).cur.ptr < (iter).limit \ - && (mbiter_multi_next (&(iter)), true)) -#endif -#define mbi_advance(iter) \ - ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false) - -/* Access to the current character. */ -#define mbi_cur(iter) (iter).cur -#define mbi_cur_ptr(iter) (iter).cur.ptr - -/* Relocation. */ -#define mbi_reloc(iter, ptrdiff) mbiter_multi_reloc (&iter, ptrdiff) - -/* Copying an iterator. */ -#define mbi_copy mbiter_multi_copy - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MBITER_H */ diff --git a/include/libgnulib/mbiterf.h b/include/libgnulib/mbiterf.h deleted file mode 100755 index c57815c..0000000 --- a/include/libgnulib/mbiterf.h +++ /dev/null @@ -1,214 +0,0 @@ -/* Iterating through multibyte strings, faster: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , - with insights from Paul Eggert. */ - -/* The macros in this file implement forward iteration through a - multi-byte string. - - With these macros, an iteration loop that looks like - - char *iter; - for (iter = buf; iter < buf + buflen; iter++) - { - do_something (*iter); - } - - becomes - - const char *buf_end = buf + buflen; - mbif_state_t state; - [const] char *iter; - for (mbif_init (state), iter = buf; mbif_avail (state, iter, buf_end); ) - { - mbchar_t cur = mbif_next (state, iter, buf_end); - // Note: Here always mb_ptr (cur) == iter. - do_something (iter, mb_len (cur)); - iter += mb_len (cur); - } - - The benefit of these macros over plain use of mbrtowc or mbrtoc32 is: - - Handling of invalid multibyte sequences is possible without - making the code more complicated, while still preserving the - invalid multibyte sequences. - - The benefit of these macros over those from mbiter.h is that it - produces faster code with today's optimizing compilers (because mbif_next - returns its result by value). - - mbif_state_t - is a type usable for variable declarations. - - mbif_init (state) - initializes the state. - - mbif_avail (state, iter, endptr) - returns true if another loop round is needed. - - mbif_next (state, iter, endptr) - returns the next multibyte character. - It asssumes that the state is initialized and that iter < endptr. - - Here are the function prototypes of the macros. - - extern void mbif_init (mbif_state_t state); - extern bool mbif_avail (mbif_state_t state, const char *iter, const char *endptr); - extern mbchar_t mbif_next (mbif_state_t state, const char *iter, const char *endptr); - */ - -#ifndef _MBITERF_H -#define _MBITERF_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_ALWAYS_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include -#include - -#include "mbchar.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef MBITERF_INLINE -# define MBITERF_INLINE _GL_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -struct mbif_state -{ - #if !GNULIB_MBRTOC32_REGULAR - bool in_shift; /* true if next byte may not be interpreted as ASCII */ - /* If GNULIB_MBRTOC32_REGULAR, it is always false, - so optimize it away. */ - #endif - mbstate_t state; /* if in_shift: current shift state */ - /* If GNULIB_MBRTOC32_REGULAR, it is in an initial state - before and after every mbiterf_next invocation. - */ -}; - -MBITERF_INLINE mbchar_t -mbiterf_next (struct mbif_state *ps, const char *iter, const char *endptr) -{ - #if !GNULIB_MBRTOC32_REGULAR - if (ps->in_shift) - goto with_shift; - #endif - /* Handle most ASCII characters quickly, without calling mbrtowc(). */ - if (is_basic (*iter)) - { - /* These characters are part of the POSIX portable character set. - For most of them, namely those in the ISO C basic character set, - ISO C 99 guarantees that their wide character code is identical to - their char code. For the few other ones, this is the case as well, - in all locale encodings that are in use. The 32-bit wide character - code is the same as well. */ - return (mbchar_t) { .ptr = iter, .bytes = 1, .wc_valid = true, .wc = *iter }; - } - else - { - assert (mbsinit (&ps->state)); - #if !GNULIB_MBRTOC32_REGULAR - ps->in_shift = true; - with_shift:; - #endif - size_t bytes; - char32_t wc; - bytes = mbrtoc32 (&wc, iter, endptr - iter, &ps->state); - if (bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - /* Allow the next invocation to continue from a sane state. */ - #if !GNULIB_MBRTOC32_REGULAR - ps->in_shift = false; - #endif - mbszero (&ps->state); - return (mbchar_t) { .ptr = iter, .bytes = 1, .wc_valid = false }; - } - else if (bytes == (size_t) -2) - { - /* An incomplete multibyte character at the end. */ - #if !GNULIB_MBRTOC32_REGULAR - ps->in_shift = false; - #endif - /* Whether to reset ps->state or not is not important; the string end - is reached anyway. */ - return (mbchar_t) { .ptr = iter, .bytes = endptr - iter, .wc_valid = false }; - } - else - { - if (bytes == 0) - { - /* A null wide character was encountered. */ - bytes = 1; - assert (*iter == '\0'); - assert (wc == 0); - } - #if !GNULIB_MBRTOC32_REGULAR - else if (bytes == (size_t) -3) - /* The previous multibyte sequence produced an additional 32-bit - wide character. */ - bytes = 0; - #endif - - /* When in an initial state, we can go back treating ASCII - characters more quickly. */ - #if !GNULIB_MBRTOC32_REGULAR - if (mbsinit (&ps->state)) - ps->in_shift = false; - #endif - return (mbchar_t) { .ptr = iter, .bytes = bytes, .wc_valid = true, .wc = wc }; - } - } -} - -/* Iteration macros. */ -typedef struct mbif_state mbif_state_t; -#if !GNULIB_MBRTOC32_REGULAR -#define mbif_init(st) \ - ((st).in_shift = false, mbszero (&(st).state)) -#else -/* Optimized: no in_shift. */ -#define mbif_init(st) \ - (mbszero (&(st).state)) -#endif -#if !GNULIB_MBRTOC32_REGULAR -#define mbif_avail(st, iter, endptr) ((st).in_shift || ((iter) < (endptr))) -#else -/* Optimized: no in_shift. */ -#define mbif_avail(st, iter, endptr) ((iter) < (endptr)) -#endif -#define mbif_next(st, iter, endptr) \ - mbiterf_next (&(st), (iter), (endptr)) - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MBITERF_H */ diff --git a/include/libgnulib/mbmemcasecmp.h b/include/libgnulib/mbmemcasecmp.h deleted file mode 100755 index 647eb40..0000000 --- a/include/libgnulib/mbmemcasecmp.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Compare two memory areas with possibly different lengths, case-insensitive. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 3 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef MBMEMCASECMP_H -#define MBMEMCASECMP_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compare the memory regions S1 = [s1..s1+N1-1], S2 = [s2..s2+n2-1], that - contain character sequences, lexicographically, ignoring case. - This function's result is locale dependent. Unlike memcasecmp(), it works - correctly in multibyte locales and also handles Turkish i / dotless i. - Unlike ulc_casecmp(), it does not handle the German sharp s and the Greek - final sigma. Unlike memcoll() and ulc_casecoll(), it ignores collation - order. - Return a negative number if S1 < S2, a positive number if S1 > S2, or - 0 if S1 and S2 have the same contents. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! */ -extern int mbmemcasecmp (const char *s1, size_t n1, const char *s2, size_t n2); - - -#ifdef __cplusplus -} -#endif - -#endif /* MBMEMCASECMP_H */ diff --git a/include/libgnulib/mbmemcasecoll.h b/include/libgnulib/mbmemcasecoll.h deleted file mode 100755 index 2b6a250..0000000 --- a/include/libgnulib/mbmemcasecoll.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Locale-specific case-ignoring memory comparison. - Copyright (C) 2001, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* Written by Bruno Haible , 2001. */ - -#ifndef MBMEMCASECOLL_H -#define MBMEMCASECOLL_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compare the memory regions S1 = [s1..s1+s1len-1], S2 = [s2..s2+s2len-1], - that contain character sequences, using the rules of the current locale, - ignoring case. - HARD_LC_COLLATE is false if the LC_COLLATE category of the current locale - is equivalent to the "C" locale. - - This function's result is locale dependent. Unlike memcasecmp(), it works - correctly in multibyte locales and also handles Turkish i / dotless i. - Unlike ulc_casecmp(), it does not handle the German sharp s and the Greek - final sigma. Like memcoll() and ulc_casecoll(), it uses collation order. - - Return a negative number if S1 < S2, a positive number if S1 > S2, 0 if - S1 and S2 have the same contents, or an unspecified value if there is an - error. - Set errno to an error number if there is an error, and to zero otherwise. - - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! */ - -extern int mbmemcasecoll (const char *s1, size_t s1len, - const char *s2, size_t s2len, - bool hard_LC_COLLATE); - - -#ifdef __cplusplus -} -#endif - -#endif /* MBMEMCASECOLL_H */ diff --git a/include/libgnulib/mbrtowc-impl-utf8.h b/include/libgnulib/mbrtowc-impl-utf8.h deleted file mode 100755 index 3a3ba13..0000000 --- a/include/libgnulib/mbrtowc-impl-utf8.h +++ /dev/null @@ -1,138 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2008. */ - -/* This file contains the part of the body of the mbrtowc and mbrtoc32 functions - that handles the special case of the UTF-8 encoding. */ - - /* Cf. unistr/u8-mbtouc.c. */ - unsigned char c = (unsigned char) p[0]; - - if (c < 0x80) - { - if (pwc != NULL) - *pwc = c; - res = (c == 0 ? 0 : 1); - goto success; - } - if (c >= 0xc2) - { - if (c < 0xe0) - { - if (m == 1) - goto incomplete; - else /* m >= 2 */ - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40) - { - if (pwc != NULL) - *pwc = ((unsigned int) (c & 0x1f) << 6) - | (unsigned int) (c2 ^ 0x80); - res = 2; - goto success; - } - } - } - else if (c < 0xf0) - { - if (m == 1) - goto incomplete; - else - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xe1 || c2 >= 0xa0) - && (c != 0xed || c2 < 0xa0)) - { - if (m == 2) - goto incomplete; - else /* m >= 3 */ - { - unsigned char c3 = (unsigned char) p[2]; - - if ((c3 ^ 0x80) < 0x40) - { - unsigned int wc = - (((unsigned int) (c & 0x0f) << 12) - | ((unsigned int) (c2 ^ 0x80) << 6) - | (unsigned int) (c3 ^ 0x80)); - - if (FITS_IN_CHAR_TYPE (wc)) - { - if (pwc != NULL) - *pwc = wc; - res = 3; - goto success; - } - } - } - } - } - } - else if (c <= 0xf4) - { - if (m == 1) - goto incomplete; - else - { - unsigned char c2 = (unsigned char) p[1]; - - if ((c2 ^ 0x80) < 0x40 - && (c >= 0xf1 || c2 >= 0x90) - && (c < 0xf4 || (/* c == 0xf4 && */ c2 < 0x90))) - { - if (m == 2) - goto incomplete; - else - { - unsigned char c3 = (unsigned char) p[2]; - - if ((c3 ^ 0x80) < 0x40) - { - if (m == 3) - goto incomplete; - else /* m >= 4 */ - { - unsigned char c4 = (unsigned char) p[3]; - - if ((c4 ^ 0x80) < 0x40) - { - unsigned int wc = - (((unsigned int) (c & 0x07) << 18) - | ((unsigned int) (c2 ^ 0x80) << 12) - | ((unsigned int) (c3 ^ 0x80) << 6) - | (unsigned int) (c4 ^ 0x80)); - - if (FITS_IN_CHAR_TYPE (wc)) - { - if (pwc != NULL) - *pwc = wc; - res = 4; - goto success; - } - } - } - } - } - } - } - } - } - goto invalid; diff --git a/include/libgnulib/mbrtowc-impl.h b/include/libgnulib/mbrtowc-impl.h deleted file mode 100755 index 963631c..0000000 --- a/include/libgnulib/mbrtowc-impl.h +++ /dev/null @@ -1,262 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2008. */ - -/* This file contains the body of the mbrtowc and mbrtoc32 functions, - when GNULIB_defined_mbstate_t is defined. */ - - char *pstate = (char *)ps; - - if (s == NULL) - { - pwc = NULL; - s = ""; - n = 1; - } - - if (n == 0) - return (size_t)(-2); - - /* Here n > 0. */ - - if (pstate == NULL) - pstate = internal_state; - - { - size_t nstate = pstate[0]; - char buf[4]; - const char *p; - size_t m; - enc_t enc; - int res; - - switch (nstate) - { - case 0: - p = s; - m = n; - break; - case 3: - buf[2] = pstate[3]; - FALLTHROUGH; - case 2: - buf[1] = pstate[2]; - FALLTHROUGH; - case 1: - buf[0] = pstate[1]; - p = buf; - m = nstate; - buf[m++] = s[0]; - if (n >= 2 && m < 4) - { - buf[m++] = s[1]; - if (n >= 3 && m < 4) - buf[m++] = s[2]; - } - break; - default: - errno = EINVAL; - return (size_t)(-1); - } - - /* Here m > 0. */ - - enc = locale_encoding_classification (); - - if (enc == enc_utf8) /* UTF-8 */ - { - /* Achieve - - multi-thread safety and - - the ability to produce wide character values > WCHAR_MAX - by not calling mbtowc() at all. */ -#include "mbrtowc-impl-utf8.h" - } - else - { - /* The hidden internal state of mbtowc would make this function not - multi-thread safe. Achieve multi-thread safety through a lock. */ - wchar_t wc; - res = mbtowc_with_lock (&wc, p, m); - - if (res >= 0) - { - if ((wc == 0) != (res == 0)) - abort (); - if (pwc != NULL) - *pwc = wc; - goto success; - } - - /* mbtowc does not distinguish between invalid and incomplete multibyte - sequences. But mbrtowc needs to make this distinction. - There are two possible approaches: - - Use iconv() and its return value. - - Use built-in knowledge about the possible encodings. - Given the low quality of implementation of iconv() on the systems - that lack mbrtowc(), we use the second approach. - The possible encodings are: - - 8-bit encodings, - - EUC-JP, EUC-KR, GB2312, EUC-TW, BIG5, GB18030, SJIS, - - UTF-8 (already handled above). - Use specialized code for each. */ - if (m >= 4 || m >= MB_CUR_MAX) - goto invalid; - /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ - switch (enc) - { - /* As a reference for this code, you can use the GNU libiconv - implementation. Look for uses of the RET_TOOFEW macro. */ - - case enc_eucjp: /* EUC-JP */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e || c == 0x8f) - goto incomplete; - } - if (m == 2) - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8f) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0xa1 && c2 < 0xff) - goto incomplete; - } - } - goto invalid; - } - - case enc_94: /* EUC-KR, GB2312, BIG5 */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0xa1 && c < 0xff) - goto incomplete; - } - goto invalid; - } - - case enc_euctw: /* EUC-TW */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0xa1 && c < 0xff) || c == 0x8e) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c == 0x8e) - goto incomplete; - } - goto invalid; - } - - case enc_gb18030: /* GB18030 */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x90 && c <= 0xe3) || (c >= 0xf8 && c <= 0xfe)) - goto incomplete; - } - else /* m == 2 || m == 3 */ - { - unsigned char c = (unsigned char) p[0]; - - if (c >= 0x90 && c <= 0xe3) - { - unsigned char c2 = (unsigned char) p[1]; - - if (c2 >= 0x30 && c2 <= 0x39) - { - if (m == 2) - goto incomplete; - else /* m == 3 */ - { - unsigned char c3 = (unsigned char) p[2]; - - if (c3 >= 0x81 && c3 <= 0xfe) - goto incomplete; - } - } - } - } - goto invalid; - } - - case enc_sjis: /* SJIS */ - { - if (m == 1) - { - unsigned char c = (unsigned char) p[0]; - - if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xea) - || (c >= 0xf0 && c <= 0xf9)) - goto incomplete; - } - goto invalid; - } - - default: - /* An unknown multibyte encoding. */ - goto incomplete; - } - } - - success: - /* res >= 0 is the corrected return value of - mbtowc_with_lock (&wc, p, m). */ - if (nstate >= (res > 0 ? res : 1)) - abort (); - res -= nstate; - pstate[0] = 0; - return res; - - incomplete: - { - size_t k = nstate; - /* Here 0 <= k < m < 4. */ - pstate[++k] = s[0]; - if (k < m) - { - pstate[++k] = s[1]; - if (k < m) - pstate[++k] = s[2]; - } - if (k != m) - abort (); - } - pstate[0] = m; - return (size_t)(-2); - - invalid: - errno = EILSEQ; - /* The conversion state is undefined, says POSIX. */ - return (size_t)(-1); - } diff --git a/include/libgnulib/mbsnrtowcs-impl.h b/include/libgnulib/mbsnrtowcs-impl.h deleted file mode 100755 index b3b5e2d..0000000 --- a/include/libgnulib/mbsnrtowcs-impl.h +++ /dev/null @@ -1,127 +0,0 @@ -/* Convert string to wide string. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -FUNC (DCHAR_T *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) -{ - if (ps == NULL) - ps = &INTERNAL_STATE; - { - const char *src = *srcp; - - if (dest != NULL) - { - DCHAR_T *destptr = dest; - - for (; srclen > 0 && len > 0; destptr++, len--) - { - size_t src_avail; - size_t ret; - - /* An optimized variant of - src_avail = strnlen1 (src, MIN (srclen, MB_LEN_MAX)); */ - if (srclen == 1 || src[0] == '\0') - src_avail = 1; - else if (srclen == 2 || src[1] == '\0') - src_avail = 2; - else if (srclen == 3 || src[2] == '\0') - src_avail = 3; - else if (MB_LEN_MAX <= 4 || srclen == 4 || src[3] == '\0') - src_avail = 4; - else - src_avail = 4 + strnlen1 (src + 4, MIN (srclen, MB_LEN_MAX) - 4); - - /* Parse the next multibyte character. */ - ret = MBRTOWC (destptr, src, src_avail, ps); - - if (ret == (size_t)(-2)) - /* Encountered a multibyte character that extends past a '\0' byte - or that is longer than MB_LEN_MAX bytes. Cannot happen. */ - abort (); - - if (ret == (size_t)(-1)) - goto bad_input; - if (ret == 0) - { - src = NULL; - /* Here mbsinit (ps). */ - break; - } - if (!(USES_C32 && ret == (size_t)(-3))) - { - src += ret; - srclen -= ret; - } - } - - *srcp = src; - return destptr - dest; - } - else - { - /* Ignore dest and len, don't store *srcp at the end, and - don't clobber *ps. */ - mbstate_t state = *ps; - size_t totalcount = 0; - - for (; srclen > 0; totalcount++) - { - size_t src_avail; - size_t ret; - - /* An optimized variant of - src_avail = strnlen1 (src, MIN (srclen, MB_LEN_MAX)); */ - if (srclen == 1 || src[0] == '\0') - src_avail = 1; - else if (srclen == 2 || src[1] == '\0') - src_avail = 2; - else if (srclen == 3 || src[2] == '\0') - src_avail = 3; - else if (MB_LEN_MAX <= 4 || srclen == 4 || src[3] == '\0') - src_avail = 4; - else - src_avail = 4 + strnlen1 (src + 4, MIN (srclen, MB_LEN_MAX) - 4); - - /* Parse the next multibyte character. */ - ret = MBRTOWC (NULL, src, src_avail, &state); - - if (ret == (size_t)(-2)) - /* Encountered a multibyte character that extends past a '\0' byte - or that is longer than MB_LEN_MAX bytes. Cannot happen. */ - abort (); - - if (ret == (size_t)(-1)) - goto bad_input2; - if (ret == 0) - { - /* Here mbsinit (&state). */ - break; - } - src += ret; - srclen -= ret; - } - - return totalcount; - } - - bad_input: - *srcp = src; - bad_input2: - errno = EILSEQ; - return (size_t)(-1); - } -} diff --git a/include/libgnulib/mbsrtowcs-impl.h b/include/libgnulib/mbsrtowcs-impl.h deleted file mode 100755 index 9043fb8..0000000 --- a/include/libgnulib/mbsrtowcs-impl.h +++ /dev/null @@ -1,123 +0,0 @@ -/* Convert string to wide string. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 file 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 program. If not, see . */ - -size_t -FUNC (DCHAR_T *dest, const char **srcp, size_t len, mbstate_t *ps) -{ - if (ps == NULL) - ps = &INTERNAL_STATE; - { - const char *src = *srcp; - - if (dest != NULL) - { - DCHAR_T *destptr = dest; - - for (; len > 0; destptr++, len--) - { - size_t src_avail; - size_t ret; - - /* An optimized variant of - src_avail = strnlen1 (src, MB_LEN_MAX); */ - if (src[0] == '\0') - src_avail = 1; - else if (src[1] == '\0') - src_avail = 2; - else if (src[2] == '\0') - src_avail = 3; - else if (MB_LEN_MAX <= 4 || src[3] == '\0') - src_avail = 4; - else - src_avail = 4 + strnlen1 (src + 4, MB_LEN_MAX - 4); - - /* Parse the next multibyte character. */ - ret = MBRTOWC (destptr, src, src_avail, ps); - - if (ret == (size_t)(-2)) - /* Encountered a multibyte character that extends past a '\0' byte - or that is longer than MB_LEN_MAX bytes. Cannot happen. */ - abort (); - - if (ret == (size_t)(-1)) - goto bad_input; - if (ret == 0) - { - src = NULL; - /* Here mbsinit (ps). */ - break; - } - if (!(USES_C32 && ret == (size_t)(-3))) - src += ret; - } - - *srcp = src; - return destptr - dest; - } - else - { - /* Ignore dest and len, don't store *srcp at the end, and - don't clobber *ps. */ - mbstate_t state = *ps; - size_t totalcount = 0; - - for (;; totalcount++) - { - size_t src_avail; - size_t ret; - - /* An optimized variant of - src_avail = strnlen1 (src, MB_LEN_MAX); */ - if (src[0] == '\0') - src_avail = 1; - else if (src[1] == '\0') - src_avail = 2; - else if (src[2] == '\0') - src_avail = 3; - else if (MB_LEN_MAX <= 4 || src[3] == '\0') - src_avail = 4; - else - src_avail = 4 + strnlen1 (src + 4, MB_LEN_MAX - 4); - - /* Parse the next multibyte character. */ - ret = MBRTOWC (NULL, src, src_avail, &state); - - if (ret == (size_t)(-2)) - /* Encountered a multibyte character that extends past a '\0' byte - or that is longer than MB_LEN_MAX bytes. Cannot happen. */ - abort (); - - if (ret == (size_t)(-1)) - goto bad_input2; - if (ret == 0) - { - /* Here mbsinit (&state). */ - break; - } - src += ret; - } - - return totalcount; - } - - bad_input: - *srcp = src; - bad_input2: - errno = EILSEQ; - return (size_t)(-1); - } -} diff --git a/include/libgnulib/mbswidth.h b/include/libgnulib/mbswidth.h deleted file mode 100755 index ccd176d..0000000 --- a/include/libgnulib/mbswidth.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Determine the number of screen columns needed for a string. - Copyright (C) 2000-2004, 2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* This file uses HAVE_DECL_MBSWIDTH_IN_WCHAR_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Avoid a clash of our mbswidth() with a function of the same name defined - in UnixWare 7.1.1 . We need this #include before the #define - below. */ -#if HAVE_DECL_MBSWIDTH_IN_WCHAR_H -# include -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Optional flags to influence mbswidth/mbsnwidth behavior. */ - -/* If this bit is set, return -1 upon finding an invalid or incomplete - character. Otherwise, assume invalid characters have width 1. */ -#define MBSW_REJECT_INVALID 1 - -/* If this bit is set, return -1 upon finding a non-printable character. - Otherwise, assume unprintable characters have width 0 if they are - control characters and 1 otherwise. */ -#define MBSW_REJECT_UNPRINTABLE 2 - - -/* Returns the number of screen columns needed for STRING. */ -#define mbswidth gnu_mbswidth /* avoid clash with UnixWare 7.1.1 function */ -extern int mbswidth (const char *string, int flags); - -/* Returns the number of screen columns needed for the NBYTES bytes - starting at BUF. */ -extern int mbsnwidth (const char *buf, size_t nbytes, int flags); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/mbtowc-impl.h b/include/libgnulib/mbtowc-impl.h deleted file mode 100755 index 92efb4a..0000000 --- a/include/libgnulib/mbtowc-impl.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -/* We don't need a static internal state, because the encoding is not state - dependent, and when mbrtowc returns (size_t)(-2). we throw the result - away. */ - -int -mbtowc (wchar_t *pwc, const char *s, size_t n) -{ - if (s == NULL) - return 0; - else - { - mbstate_t state; - wchar_t wc; - size_t result; - - mbszero (&state); - result = mbrtowc (&wc, s, n, &state); - if (result == (size_t)-1 || result == (size_t)-2) - { - errno = EILSEQ; - return -1; - } - if (pwc != NULL) - *pwc = wc; - return (wc == 0 ? 0 : result); - } -} diff --git a/include/libgnulib/mbtowc-lock.h b/include/libgnulib/mbtowc-lock.h deleted file mode 100755 index 10f7dc7..0000000 --- a/include/libgnulib/mbtowc-lock.h +++ /dev/null @@ -1,125 +0,0 @@ -/* Use the internal lock used by mbrtowc and mbrtoc32. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019-2020. */ - -/* Use a lock, so that no two threads can invoke mbtowc at the same time. */ - -static inline int -mbtowc_unlocked (wchar_t *pwc, const char *p, size_t m) -{ - /* Put the hidden internal state of mbtowc into an initial state. - This is needed at least with glibc, uClibc, and MSVC CRT. - See . */ - mbtowc (NULL, NULL, 0); - - return mbtowc (pwc, p, m); -} - -/* Prohibit renaming this symbol. */ -#undef gl_get_mbtowc_lock - -#if AVOID_ANY_THREADS || GNULIB_MBRTOWC_SINGLE_THREAD - -/* All uses of this function are in a single thread. No locking needed. */ - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - return mbtowc_unlocked (pwc, p, m); -} - -#elif defined _WIN32 && !defined __CYGWIN__ - -extern __declspec(dllimport) CRITICAL_SECTION *gl_get_mbtowc_lock (void); - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - CRITICAL_SECTION *lock = gl_get_mbtowc_lock (); - int ret; - - EnterCriticalSection (lock); - ret = mbtowc_unlocked (pwc, p, m); - LeaveCriticalSection (lock); - - return ret; -} - -#elif HAVE_PTHREAD_API /* AIX, IRIX, Cygwin */ - -extern -# if defined _WIN32 || defined __CYGWIN__ - __declspec(dllimport) -# endif - pthread_mutex_t *gl_get_mbtowc_lock (void); - -# if HAVE_WEAK_SYMBOLS /* IRIX */ - - /* Avoid the need to link with '-lpthread'. */ -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock - - /* Determine whether libpthread is in use. */ -# pragma weak pthread_mutexattr_gettype - /* See the comments in lock.h. */ -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) - -# else -# define pthread_in_use() 1 -# endif - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - if (pthread_in_use()) - { - pthread_mutex_t *lock = gl_get_mbtowc_lock (); - int ret; - - if (pthread_mutex_lock (lock)) - abort (); - ret = mbtowc_unlocked (pwc, p, m); - if (pthread_mutex_unlock (lock)) - abort (); - - return ret; - } - else - return mbtowc_unlocked (pwc, p, m); -} - -#elif HAVE_THREADS_H - -extern mtx_t *gl_get_mbtowc_lock (void); - -static int -mbtowc_with_lock (wchar_t *pwc, const char *p, size_t m) -{ - mtx_t *lock = gl_get_mbtowc_lock (); - int ret; - - if (mtx_lock (lock) != thrd_success) - abort (); - ret = mbtowc_unlocked (pwc, p, m); - if (mtx_unlock (lock) != thrd_success) - abort (); - - return ret; -} - -#endif diff --git a/include/libgnulib/mbuiter.h b/include/libgnulib/mbuiter.h deleted file mode 100755 index 1860311..0000000 --- a/include/libgnulib/mbuiter.h +++ /dev/null @@ -1,277 +0,0 @@ -/* Iterating through multibyte strings: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -/* The macros in this file implement forward iteration through a - multi-byte string, without knowing its length a-priori. - - With these macros, an iteration loop that looks like - - char *iter; - for (iter = buf; *iter != '\0'; iter++) - { - do_something (*iter); - } - - becomes - - mbui_iterator_t iter; - for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter)) - { - do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter))); - } - - The benefit of these macros over plain use of mbrtowc is: - - Handling of invalid multibyte sequences is possible without - making the code more complicated, while still preserving the - invalid multibyte sequences. - - Compared to mbiter.h, the macros here don't need to know the string's - length a-priori. The downside is that at each step, the look-ahead - that guards against overrunning the terminating '\0' is more expensive. - The mbui_* macros are therefore suitable when there is a high probability - that only the first few multibyte characters need to be inspected. - Whereas the mbi_* macros are better if usually the iteration runs - through the entire string. - - mbui_iterator_t - is a type usable for variable declarations. - - mbui_init (iter, startptr) - initializes the iterator, starting at startptr. - - mbui_avail (iter) - returns true if there are more multibyte characters available before - the end of string is reached. In this case, mbui_cur (iter) is - initialized to the next multibyte character. - - mbui_advance (iter) - advances the iterator by one multibyte character. - - mbui_cur (iter) - returns the current multibyte character, of type mbchar_t. All the - macros defined in mbchar.h can be used on it. - - mbui_cur_ptr (iter) - return a pointer to the beginning of the current multibyte character. - - mbui_reloc (iter, ptrdiff) - relocates iterator when the string is moved by ptrdiff bytes. - - mbui_copy (&destiter, &srciter) - copies srciter to destiter. - - Here are the function prototypes of the macros. - - extern void mbui_init (mbui_iterator_t iter, const char *startptr); - extern bool mbui_avail (mbui_iterator_t iter); - extern void mbui_advance (mbui_iterator_t iter); - extern mbchar_t mbui_cur (mbui_iterator_t iter); - extern const char * mbui_cur_ptr (mbui_iterator_t iter); - extern void mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff); - extern void mbui_copy (mbui_iterator_t *new, const mbui_iterator_t *old); - */ - -#ifndef _MBUITER_H -#define _MBUITER_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_ALWAYS_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include -#include -#include - -#include "mbchar.h" -#include "strnlen1.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef MBUITER_INLINE -# define MBUITER_INLINE _GL_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -struct mbuiter_multi -{ - #if !GNULIB_MBRTOC32_REGULAR - bool in_shift; /* true if next byte may not be interpreted as ASCII */ - /* If GNULIB_MBRTOC32_REGULAR, it is always false, - so optimize it away. */ - #endif - mbstate_t state; /* if in_shift: current shift state */ - /* If GNULIB_MBRTOC32_REGULAR, it is in an initial state - before and after every mbuiter_multi_next invocation. - */ - bool next_done; /* true if mbui_avail has already filled the following */ - unsigned int cur_max; /* A cache of MB_CUR_MAX. */ - struct mbchar cur; /* the current character: - const char *cur.ptr pointer to current character - The following are only valid after mbui_avail. - size_t cur.bytes number of bytes of current character - bool cur.wc_valid true if wc is a valid 32-bit wide character - char32_t cur.wc if wc_valid: the current character - */ -}; - -MBUITER_INLINE void -mbuiter_multi_next (struct mbuiter_multi *iter) -{ - if (iter->next_done) - return; - #if !GNULIB_MBRTOC32_REGULAR - if (iter->in_shift) - goto with_shift; - #endif - /* Handle most ASCII characters quickly, without calling mbrtowc(). */ - if (is_basic (*iter->cur.ptr)) - { - /* These characters are part of the POSIX portable character set. - For most of them, namely those in the ISO C basic character set, - ISO C 99 guarantees that their wide character code is identical to - their char code. For the few other ones, this is the case as well, - in all locale encodings that are in use. The 32-bit wide character - code is the same as well. */ - iter->cur.bytes = 1; - iter->cur.wc = *iter->cur.ptr; - iter->cur.wc_valid = true; - } - else - { - assert (mbsinit (&iter->state)); - #if !GNULIB_MBRTOC32_REGULAR - iter->in_shift = true; - with_shift: - #endif - iter->cur.bytes = mbrtoc32 (&iter->cur.wc, iter->cur.ptr, - strnlen1 (iter->cur.ptr, iter->cur_max), - &iter->state); - if (iter->cur.bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - iter->cur.bytes = 1; - iter->cur.wc_valid = false; - /* Allow the next invocation to continue from a sane state. */ - #if !GNULIB_MBRTOC32_REGULAR - iter->in_shift = false; - #endif - mbszero (&iter->state); - } - else if (iter->cur.bytes == (size_t) -2) - { - /* An incomplete multibyte character at the end. */ - iter->cur.bytes = strlen (iter->cur.ptr); - iter->cur.wc_valid = false; - /* Whether to set iter->in_shift = false and reset iter->state - or not is not important; the string end is reached anyway. */ - } - else - { - if (iter->cur.bytes == 0) - { - /* A null wide character was encountered. */ - iter->cur.bytes = 1; - assert (*iter->cur.ptr == '\0'); - assert (iter->cur.wc == 0); - } - #if !GNULIB_MBRTOC32_REGULAR - else if (iter->cur.bytes == (size_t) -3) - /* The previous multibyte sequence produced an additional 32-bit - wide character. */ - iter->cur.bytes = 0; - #endif - iter->cur.wc_valid = true; - - /* When in an initial state, we can go back treating ASCII - characters more quickly. */ - #if !GNULIB_MBRTOC32_REGULAR - if (mbsinit (&iter->state)) - iter->in_shift = false; - #endif - } - } - iter->next_done = true; -} - -MBUITER_INLINE void -mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff) -{ - iter->cur.ptr += ptrdiff; -} - -MBUITER_INLINE void -mbuiter_multi_copy (struct mbuiter_multi *new_iter, const struct mbuiter_multi *old_iter) -{ - #if !GNULIB_MBRTOC32_REGULAR - if ((new_iter->in_shift = old_iter->in_shift)) - memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t)); - else - #endif - mbszero (&new_iter->state); - new_iter->next_done = old_iter->next_done; - new_iter->cur_max = old_iter->cur_max; - mb_copy (&new_iter->cur, &old_iter->cur); -} - -/* Iteration macros. */ -typedef struct mbuiter_multi mbui_iterator_t; -#if !GNULIB_MBRTOC32_REGULAR -#define mbui_init(iter, startptr) \ - ((iter).cur.ptr = (startptr), \ - (iter).in_shift = false, mbszero (&(iter).state), \ - (iter).next_done = false, \ - (iter).cur_max = MB_CUR_MAX) -#else -/* Optimized: no in_shift. */ -#define mbui_init(iter, startptr) \ - ((iter).cur.ptr = (startptr), \ - mbszero (&(iter).state), \ - (iter).next_done = false, \ - (iter).cur_max = MB_CUR_MAX) -#endif -#define mbui_avail(iter) \ - (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur)) -#define mbui_advance(iter) \ - ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false) - -/* Access to the current character. */ -#define mbui_cur(iter) (iter).cur -#define mbui_cur_ptr(iter) (iter).cur.ptr - -/* Relocation. */ -#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff) - -/* Copying an iterator. */ -#define mbui_copy mbuiter_multi_copy - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MBUITER_H */ diff --git a/include/libgnulib/mbuiterf.h b/include/libgnulib/mbuiterf.h deleted file mode 100755 index 1814e35..0000000 --- a/include/libgnulib/mbuiterf.h +++ /dev/null @@ -1,223 +0,0 @@ -/* Iterating through multibyte strings, faster: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , - with insights from Paul Eggert. */ - -/* The macros in this file implement forward iteration through a - multi-byte string, without knowing its length a-priori. - - With these macros, an iteration loop that looks like - - char *iter; - for (iter = buf; *iter != '\0'; iter++) - { - do_something (*iter); - } - - becomes - - mbuif_state_t state; - [const] char *iter; - for (mbuif_init (state), iter = buf; mbuif_avail (state, iter); ) - { - mbchar_t cur = mbuif_next (state, iter); - // Note: Here always mb_ptr (cur) == iter. - do_something (iter, mb_len (cur)); - iter += mb_len (cur); - } - - The benefit of these macros over plain use of mbrtowc or mbrtoc32 is: - - Handling of invalid multibyte sequences is possible without - making the code more complicated, while still preserving the - invalid multibyte sequences. - - Compared to mbiterf.h, the macros here don't need to know the string's - length a-priori. The downside is that at each step, the look-ahead - that guards against overrunning the terminating '\0' is more expensive. - The mbuif_* macros are therefore suitable when there is a high probability - that only the first few multibyte characters need to be inspected. - Whereas the mbif_* macros are better if usually the iteration runs - through the entire string. - - The benefit of these macros over those from mbuiter.h is that it - produces faster code with today's optimizing compilers (because mbuif_next - returns its result by value). - - mbuif_state_t - is a type usable for variable declarations. - - mbuif_init (state) - initializes the state. - - mbuif_avail (state, iter) - returns true if another loop round is needed. - - mbuif_next (state, iter) - returns the next multibyte character. - It asssumes that the state is initialized and that *iter != '\0'. - - Here are the function prototypes of the macros. - - extern void mbuif_init (mbuif_state_t state); - extern bool mbuif_avail (mbuif_state_t state, const char *iter); - extern mbchar_t mbuif_next (mbuif_state_t state, const char *iter); - */ - -#ifndef _MBUITERF_H -#define _MBUITERF_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_ALWAYS_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include -#include -#include - -#include "mbchar.h" -#include "strnlen1.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef MBUITERF_INLINE -# define MBUITERF_INLINE _GL_INLINE _GL_ATTRIBUTE_ALWAYS_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -struct mbuif_state -{ - #if !GNULIB_MBRTOC32_REGULAR - bool in_shift; /* true if next byte may not be interpreted as ASCII */ - /* If GNULIB_MBRTOC32_REGULAR, it is always false, - so optimize it away. */ - #endif - mbstate_t state; /* if in_shift: current shift state */ - /* If GNULIB_MBRTOC32_REGULAR, it is in an initial state - before and after every mbuiterf_next invocation. - */ - unsigned int cur_max; /* A cache of MB_CUR_MAX. */ -}; - -MBUITERF_INLINE mbchar_t -mbuiterf_next (struct mbuif_state *ps, const char *iter) -{ - #if !GNULIB_MBRTOC32_REGULAR - if (ps->in_shift) - goto with_shift; - #endif - /* Handle most ASCII characters quickly, without calling mbrtowc(). */ - if (is_basic (*iter)) - { - /* These characters are part of the POSIX portable character set. - For most of them, namely those in the ISO C basic character set, - ISO C 99 guarantees that their wide character code is identical to - their char code. For the few other ones, this is the case as well, - in all locale encodings that are in use. The 32-bit wide character - code is the same as well. */ - return (mbchar_t) { .ptr = iter, .bytes = 1, .wc_valid = true, .wc = *iter }; - } - else - { - assert (mbsinit (&ps->state)); - #if !GNULIB_MBRTOC32_REGULAR - ps->in_shift = true; - with_shift:; - #endif - size_t bytes; - char32_t wc; - bytes = mbrtoc32 (&wc, iter, strnlen1 (iter, ps->cur_max), &ps->state); - if (bytes == (size_t) -1) - { - /* An invalid multibyte sequence was encountered. */ - /* Allow the next invocation to continue from a sane state. */ - #if !GNULIB_MBRTOC32_REGULAR - ps->in_shift = false; - #endif - mbszero (&ps->state); - return (mbchar_t) { .ptr = iter, .bytes = 1, .wc_valid = false }; - } - else if (bytes == (size_t) -2) - { - /* An incomplete multibyte character at the end. */ - /* Whether to set ps->in_shift = false and reset ps->state or not is - not important; the string end is reached anyway. */ - return (mbchar_t) { .ptr = iter, .bytes = strlen (iter), .wc_valid = false }; - } - else - { - if (bytes == 0) - { - /* A null wide character was encountered. */ - bytes = 1; - assert (*iter == '\0'); - assert (wc == 0); - } - #if !GNULIB_MBRTOC32_REGULAR - else if (bytes == (size_t) -3) - /* The previous multibyte sequence produced an additional 32-bit - wide character. */ - bytes = 0; - #endif - - /* When in an initial state, we can go back treating ASCII - characters more quickly. */ - #if !GNULIB_MBRTOC32_REGULAR - if (mbsinit (&ps->state)) - ps->in_shift = false; - #endif - return (mbchar_t) { .ptr = iter, .bytes = bytes, .wc_valid = true, .wc = wc }; - } - } -} - -/* Iteration macros. */ -typedef struct mbuif_state mbuif_state_t; -#if !GNULIB_MBRTOC32_REGULAR -#define mbuif_init(st) \ - ((st).in_shift = false, mbszero (&(st).state), \ - (st).cur_max = MB_CUR_MAX) -#else -/* Optimized: no in_shift. */ -#define mbuif_init(st) \ - (mbszero (&(st).state), \ - (st).cur_max = MB_CUR_MAX) -#endif -#if !GNULIB_MBRTOC32_REGULAR -#define mbuif_avail(st, iter) ((st).in_shift || (*(iter) != '\0')) -#else -/* Optimized: no in_shift. */ -#define mbuif_avail(st, iter) (*(iter) != '\0') -#endif -#define mbuif_next(st, iter) \ - mbuiterf_next (&(st), (iter)) - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MBUITERF_H */ diff --git a/include/libgnulib/mcel.h b/include/libgnulib/mcel.h deleted file mode 100755 index e5b0765..0000000 --- a/include/libgnulib/mcel.h +++ /dev/null @@ -1,307 +0,0 @@ -/* Multi-byte characters, Error encodings, and Lengths (MCELs) - Copyright 2023-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -/* The macros in this file implement multi-byte character representation - and forward iteration through a multi-byte string. - They are simpler and can be faster than the mbiter family. - However, they do not support obsolescent encodings like CP864, - EBCDIC, Johab, and Shift JIS that glibc also does not support, - and it is up to the caller to coalesce encoding-error bytes if desired. - - The mcel_scan function lets code iterate through an array of bytes, - supporting character encodings in practical use - more simply than using plain mbrtoc32. - - Instead of this single-byte code: - - char *p = ..., *lim = ...; - for (; p < lim; p++) - process (*p); - - You can use this multi-byte code: - - char *p = ..., *lim = ...; - for (mcel_t g; p < lim; p += g.len) - { - g = mcel_scan (p, lim); - process (g); - } - - You can select from G using G.ch, G.err, and G.len. - G is an encoding error if G.err is nonzero, a character otherwise. - - The mcel_scanz function is similar except it works with a - string of unknown but positive length that is terminated with '\0'. - Instead of this single-byte code: - - char *p = ...; - for (; *p; p++) - process (*p); - - You can use this multi-byte code: - - char *p = ...; - for (mcel_t g; *p; p += g.len) - { - g = mcel_scanz (p); - process (g); - } - - mcel_scant (P, TERMINATOR) is like mcel_scanz (P) except the - string is terminated by TERMINATOR. The C standard says that the - TERMINATORs '\0', '\r', '\n', '.', '/' are safe, as they cannot be - a part (even a trailing byte) of a multi-byte character. - In practice TERMINATOR is safe if 0 <= TERMINATOR <= 0x2f (ASCII '/'). - - mcel_ch (CH, LEN) and mcel_err (ERR) construct mcel_t values. - - mcel_cmp (G1, G2) compares two mcel_t values lexicographically by - character or by encoding byte value, with encoding bytes sorting - after characters. - - Calls like c32isalpha (G.ch) test G; they return false for encoding - errors since calls like c32isalpha (0) return false. Calls like - mcel_tocmp (c32tolower, G1, G2) are like mcel_cmp (G1, G2), - but transliterate first. - - Although ISO C and POSIX allow encodings that have shift states or - that can produce multiple characters from an indivisible byte sequence, - POSIX does not require support for these encodings, - they are not in practical use on GNUish platforms, - and omitting support for them simplifies the API. */ - -#ifndef _MCEL_H -#define _MCEL_H 1 - -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#include -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef MCEL_INLINE -# define MCEL_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Pacify GCC re type limits. */ -#if 4 < __GNUC__ + (3 <= __GNUC_MINOR__) && !defined __clang__ -# pragma GCC diagnostic ignored "-Wtype-limits" -#endif - -/* The maximum multi-byte character length supported on any platform. - This can be less than MB_LEN_MAX because many platforms have a - large MB_LEN_MAX to allow for stateful encodings, and mcel does not - support these encodings. MCEL_LEN_MAX is enough for UTF-8, EUC, - Shift-JIS, GB18030, etc. In all multi-byte encodings supported by glibc, - 0 < MB_CUR_MAX <= MCEL_LEN_MAX <= MB_LEN_MAX. */ -enum { MCEL_LEN_MAX = MB_LEN_MAX < 4 ? MB_LEN_MAX : 4 }; - -/* Bounds for mcel_t members. */ -enum { MCEL_CHAR_MAX = 0x10FFFF }; -enum { MCEL_ERR_MIN = 0x80 }; - -/* mcel_t is a type representing a character CH or an encoding error byte ERR, - along with a count of the LEN bytes that represent CH or ERR. - If ERR is zero, CH is a valid character and 0 < LEN <= MCEL_LEN_MAX; - otherwise ERR is an encoding error byte, MCEL_ERR_MIN <= ERR, - CH == 0, and LEN == 1. */ -typedef struct -{ - char32_t ch; - unsigned char err; - unsigned char len; -} mcel_t; - -/* Every multi-byte character length fits in mcel_t's LEN. */ -static_assert (MB_LEN_MAX <= UCHAR_MAX); - -/* Shifting an encoding error byte left by this value - suffices to sort encoding errors after characters. */ -enum { MCEL_ERR_SHIFT = 14 }; -static_assert (MCEL_CHAR_MAX < MCEL_ERR_MIN << MCEL_ERR_SHIFT); - -/* Unsigned char promotes to int. */ -static_assert (UCHAR_MAX <= INT_MAX); - -/* Bytes have 8 bits, as POSIX requires. */ -static_assert (CHAR_BIT == 8); - -#ifndef _GL_LIKELY -/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ -# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) -# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) -#endif - -/* mcel_t constructors. */ -MCEL_INLINE mcel_t -mcel_ch (char32_t ch, size_t len) -{ - assume (0 < len); - assume (len <= MCEL_LEN_MAX); - assume (ch <= MCEL_CHAR_MAX); - return (mcel_t) {.ch = ch, .len = len}; -} -MCEL_INLINE mcel_t -mcel_err (unsigned char err) -{ - assume (MCEL_ERR_MIN <= err); - return (mcel_t) {.err = err, .len = 1}; -} - -/* Compare C1 and C2, with encoding errors sorting after characters. - Return <0, 0, >0 for <, =, >. */ -MCEL_INLINE int -mcel_cmp (mcel_t c1, mcel_t c2) -{ - int ch1 = c1.ch, ch2 = c2.ch; - return ((c1.err - c2.err) * (1 << MCEL_ERR_SHIFT)) + (ch1 - ch2); -} - -/* Apply the uchar translator TO to C1 and C2 and compare the results, - with encoding errors sorting after characters, - Return <0, 0, >0 for <, =, >. */ -MCEL_INLINE int -mcel_tocmp (wint_t (*to) (wint_t), mcel_t c1, mcel_t c2) -{ - int cmp = mcel_cmp (c1, c2); - if (_GL_LIKELY ((c1.err - c2.err) | !cmp)) - return cmp; - int ch1 = to (c1.ch), ch2 = to (c2.ch); - return ch1 - ch2; -} - -/* Whether C represents itself as a Unicode character - when it is the first byte of a single- or multi-byte character. - These days it is safe to assume ASCII, so do not support - obsolescent encodings like CP864, EBCDIC, Johab, and Shift JIS. */ -MCEL_INLINE bool -mcel_isbasic (char c) -{ - return _GL_LIKELY (0 <= c && c < MCEL_ERR_MIN); -} - -/* With mcel there should be no need for the performance overhead of - replacing glibc mbrtoc32, as callers shouldn't care whether the - C locale treats a byte with the high bit set as an encoding error. */ -#ifdef __GLIBC__ -# undef mbrtoc32 -#endif - -/* Scan bytes from P inclusive to LIM exclusive. P must be less than LIM. - Return the character or encoding error starting at P. */ -MCEL_INLINE mcel_t -mcel_scan (char const *p, char const *lim) -{ - /* Handle ASCII quickly to avoid the overhead of calling mbrtoc32. - In supported encodings, the first byte of a multi-byte character - cannot be an ASCII byte. */ - char c = *p; - if (mcel_isbasic (c)) - return mcel_ch (c, 1); - - /* An initial mbstate_t; initialization optimized for some platforms. - For details about these and other platforms, see wchar.in.h. */ -#if (defined __GLIBC__ && 2 < __GLIBC__ + (2 <= __GLIBC_MINOR__) \ - && !defined __UCLIBC__) - /* Although only a trivial optimization, it's worth it for GNU. */ - mbstate_t mbs; mbs.__count = 0; -#elif (defined __FreeBSD__ || defined __DragonFly__ || defined __OpenBSD__ \ - || (defined __APPLE__ && defined __MACH__)) - /* These platforms have 128-byte mbstate_t. What were they thinking? - Initialize just for supported encodings (UTF-8, EUC, etc.). - Avoid memset because some compilers generate function call code. */ - struct mbhidden { char32_t ch; int utf8_want, euc_want; } - _GL_ATTRIBUTE_MAY_ALIAS; - union { mbstate_t m; struct mbhidden s; } u; - u.s.ch = u.s.utf8_want = u.s.euc_want = 0; -# define mbs u.m -#elif defined __NetBSD__ - /* Experiments on both 32- and 64-bit NetBSD platforms have - shown that it doesn't work to clear fewer than 24 bytes. */ - struct mbhidden { long long int a, b, c; } _GL_ATTRIBUTE_MAY_ALIAS; - union { mbstate_t m; struct mbhidden s; } u; - u.s.a = u.s.b = u.s.c = 0; -# define mbs u.m -#else - /* mbstate_t has unknown structure or is not worth optimizing. */ - mbstate_t mbs = {0}; -#endif - - char32_t ch; - size_t len = mbrtoc32 (&ch, p, lim - p, &mbs); - -#undef mbs - - /* Any LEN with top bit set is an encoding error, as LEN == (size_t) -3 - is not supported and MB_LEN_MAX is small. */ - if (_GL_UNLIKELY ((size_t) -1 / 2 < len)) - return mcel_err (c); - - /* A multi-byte character. LEN must be positive, - as *P != '\0' and shift sequences are not supported. */ - return mcel_ch (ch, len); -} - -/* Scan bytes from P, a byte sequence terminated by TERMINATOR. - If *P == TERMINATOR, scan just that byte; otherwise scan - bytes up to but not including TERMINATOR. - TERMINATOR must be ASCII, and should be '\0', '\r', '\n', '.', or '/'. - Return the character or encoding error starting at P. */ -MCEL_INLINE mcel_t -mcel_scant (char const *p, char terminator) -{ - /* Handle ASCII quickly for speed. */ - if (mcel_isbasic (*p)) - return mcel_ch (*p, 1); - - /* Defer to mcel_scan for non-ASCII. Compute length with code that - is typically faster than strnlen. */ - char const *lim = p + 1; - for (int i = 0; i < MCEL_LEN_MAX - 1; i++) - lim += *lim != terminator; - return mcel_scan (p, lim); -} - -/* Scan bytes from P, a byte sequence terminated by '\0'. - If *P == '\0', scan just that byte; otherwise scan - bytes up to but not including '\0'. - Return the character or encoding error starting at P. */ -MCEL_INLINE mcel_t -mcel_scanz (char const *p) -{ - return mcel_scant (p, '\0'); -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _MCEL_H */ diff --git a/include/libgnulib/md2.h b/include/libgnulib/md2.h deleted file mode 100755 index 2a1f318..0000000 --- a/include/libgnulib/md2.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Declarations of functions and data types used for MD2 sum - library functions. - Copyright (C) 2000-2001, 2003, 2005, 2008-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef MD2_H -# define MD2_H 1 - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define MD2_DIGEST_SIZE 16 - -/* Structure to save state of computation between the single steps. */ -struct md2_ctx -{ - unsigned char chksum[16], X[48], buf[16]; - size_t curlen; -}; - - -/* Initialize structure containing state of computation. */ -extern void md2_init_ctx (struct md2_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void md2_process_block (const void *buffer, size_t len, - struct md2_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void md2_process_bytes (const void *buffer, size_t len, - struct md2_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 16 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *md2_finish_ctx (struct md2_ctx *ctx, void *restrict resbuf); - - -/* Put result from CTX in first 16 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *md2_read_ctx (const struct md2_ctx *ctx, void *restrict resbuf); - - -/* Compute MD2 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *md2_buffer (const char *buffer, size_t len, - void *restrict resblock); - - -/* Compute MD2 message digest for bytes read from STREAM. The - resulting message digest number will be written into the 16 bytes - beginning at RESBLOCK. */ -extern int md2_stream (FILE *stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/md4.h b/include/libgnulib/md4.h deleted file mode 100755 index 939c98b..0000000 --- a/include/libgnulib/md4.h +++ /dev/null @@ -1,93 +0,0 @@ -/* Declarations of functions and data types used for MD4 sum - library functions. - Copyright (C) 2000-2001, 2003, 2005, 2008-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef MD4_H -# define MD4_H 1 - -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# define MD4_DIGEST_SIZE 16 - -/* Structure to save state of computation between the single steps. */ -struct md4_ctx -{ - uint32_t A; - uint32_t B; - uint32_t C; - uint32_t D; - - uint32_t total[2]; - uint32_t buflen; - uint32_t buffer[32]; -}; - - -/* Initialize structure containing state of computation. */ -extern void md4_init_ctx (struct md4_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void md4_process_block (const void *buffer, size_t len, - struct md4_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void md4_process_bytes (const void *buffer, size_t len, - struct md4_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 16 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *md4_finish_ctx (struct md4_ctx *ctx, void *restrict resbuf); - - -/* Put result from CTX in first 16 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *md4_read_ctx (const struct md4_ctx *ctx, void *restrict resbuf); - - -/* Compute MD4 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *md4_buffer (const char *buffer, size_t len, - void *restrict resblock); - - -/* Compute MD4 message digest for bytes read from STREAM. The - resulting message digest number will be written into the 16 bytes - beginning at RESBLOCK. */ -extern int md4_stream (FILE * stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/md5.h b/include/libgnulib/md5.h deleted file mode 100755 index 94cc699..0000000 --- a/include/libgnulib/md5.h +++ /dev/null @@ -1,178 +0,0 @@ -/* Declaration of functions and data types used for MD5 sum computing - library functions. - Copyright (C) 1995-1997, 1999-2001, 2004-2006, 2008-2024 Free Software - Foundation, Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MD5_H -#define _MD5_H 1 - -/* This file uses HAVE_OPENSSL_MD5. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -# if HAVE_OPENSSL_MD5 -# ifndef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ -# endif -/* If would give a compile-time error, don't use OpenSSL. */ -# include -# if OPENSSL_VERSION_MAJOR >= 3 -# include -# if (OPENSSL_CONFIGURED_API \ - < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ - ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) -# undef HAVE_OPENSSL_MD5 -# endif -# endif -# if HAVE_OPENSSL_MD5 -# include -# endif -# endif - -#define MD5_DIGEST_SIZE 16 -#define MD5_BLOCK_SIZE 64 - -#if defined __clang__ - /* clang really only groks GNU C 4.2, regardless of its value of __GNUC__. */ -# undef __GNUC_PREREQ -# define __GNUC_PREREQ(maj, min) ((maj) < 4 + ((min) <= 2)) -#endif -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#ifndef __THROW -# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major__ >= 4) -# if __cplusplus >= 201103L -# define __THROW noexcept (true) -# else -# define __THROW throw () -# endif -# else -# define __THROW -# endif -#endif - -#ifndef _LIBC -# define __md5_buffer md5_buffer -# define __md5_finish_ctx md5_finish_ctx -# define __md5_init_ctx md5_init_ctx -# define __md5_process_block md5_process_block -# define __md5_process_bytes md5_process_bytes -# define __md5_read_ctx md5_read_ctx -# define __md5_stream md5_stream -#endif - -# ifdef __cplusplus -extern "C" { -# endif - -# if HAVE_OPENSSL_MD5 -# define GL_OPENSSL_NAME 5 -# include "gl_openssl.h" -# else -/* Structure to save state of computation between the single steps. */ -struct md5_ctx -{ - uint32_t A; - uint32_t B; - uint32_t C; - uint32_t D; - - uint32_t total[2]; - uint32_t buflen; /* ≥ 0, ≤ 128 */ - uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ -}; - -/* - * The following three functions are build up the low level used in - * the functions 'md5_stream' and 'md5_buffer'. - */ - -/* Initialize structure containing state of computation. - (RFC 1321, 3.3: Step 3) */ -extern void __md5_init_ctx (struct md5_ctx *ctx) __THROW; - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void __md5_process_block (const void *buffer, size_t len, - struct md5_ctx *ctx) __THROW; - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void __md5_process_bytes (const void *buffer, size_t len, - struct md5_ctx *ctx) __THROW; - -/* Process the remaining bytes in the buffer and put result from CTX - in first 16 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *__md5_finish_ctx (struct md5_ctx *ctx, void *restrict resbuf) - __THROW; - - -/* Put result from CTX in first 16 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *__md5_read_ctx (const struct md5_ctx *ctx, void *restrict resbuf) - __THROW; - - -/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *__md5_buffer (const char *buffer, size_t len, - void *restrict resblock) __THROW; - -# endif - -/* Compute MD5 message digest for bytes read from STREAM. - STREAM is an open file stream. Regular files are handled more efficiently. - The contents of STREAM from its current position to its end will be read. - The case that the last operation on STREAM was an 'ungetc' is not supported. - The resulting message digest number will be written into the 16 bytes - beginning at RESBLOCK. */ -extern int __md5_stream (FILE *stream, void *resblock) __THROW; - - -# ifdef __cplusplus -} -# endif - -#endif /* md5.h */ - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/memcasecmp.h b/include/libgnulib/memcasecmp.h deleted file mode 100755 index 992768c..0000000 --- a/include/libgnulib/memcasecmp.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Case-insensitive buffer comparator. - - Copyright (C) 1996, 1998, 2003, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int memcasecmp (const void *vs1, const void *vs2, size_t n) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/memchr.valgrind b/include/libgnulib/memchr.valgrind deleted file mode 100755 index 0295d7e..0000000 --- a/include/libgnulib/memchr.valgrind +++ /dev/null @@ -1,30 +0,0 @@ -# Suppress a valgrind message about use of uninitialized memory in memchr(). - -# Copyright (C) 2009-2024 Free Software Foundation, Inc. -# -# This file 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 file 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 program. If not, see . - -# POSIX states that when the character is found, memchr must not read extra -# bytes in an overestimated length (for example, where memchr is used to -# implement strnlen). However, we use a safe word read to provide a speedup. -{ - memchr-value4 - Memcheck:Value4 - fun:rpl_memchr -} -{ - memchr-value8 - Memcheck:Value8 - fun:rpl_memchr -} diff --git a/include/libgnulib/memchr2.h b/include/libgnulib/memchr2.h deleted file mode 100755 index 089936b..0000000 --- a/include/libgnulib/memchr2.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Scan memory for the first of two bytes. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return the first address of either C1 or C2 (treated as unsigned - char) that occurs within N bytes of the memory region S. If - neither byte appears, return NULL. */ - -extern void *memchr2 (void const *s, int c1, int c2, size_t n) - _GL_ATTRIBUTE_PURE; - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/memchr2.valgrind b/include/libgnulib/memchr2.valgrind deleted file mode 100755 index 08eccd3..0000000 --- a/include/libgnulib/memchr2.valgrind +++ /dev/null @@ -1,30 +0,0 @@ -# Suppress a valgrind message about use of uninitialized memory in memchr2(). - -# Copyright (C) 2009-2024 Free Software Foundation, Inc. -# -# This file 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 file 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 program. If not, see . - -# Like memchr, it is safe to overestimate the length when the terminator -# is guaranteed to be found. In this case, we may end up reading a word -# that is partially uninitialized, but this use is OK for a speedup. -{ - memchr2-value4 - Memcheck:Value4 - fun:memchr2 -} -{ - memchr2-value8 - Memcheck:Value8 - fun:memchr2 -} diff --git a/include/libgnulib/memcmp2.h b/include/libgnulib/memcmp2.h deleted file mode 100755 index 5cea70e..0000000 --- a/include/libgnulib/memcmp2.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Compare two memory areas with possibly different lengths. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef MEMCMP2_H -#define MEMCMP2_H - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compare the memory regions S1 = [s1..s1+N1-1], S2 = [s2..s2+n2-1], - lexicographically. - This function's result is locale independent, unlike memcoll()'s. - Return a negative number if S1 < S2, a positive number if S1 > S2, or - 0 if S1 and S2 have the same contents. */ -extern int memcmp2 (const char *s1, size_t n1, const char *s2, size_t n2) - _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - -#endif /* MEMCMP2_H */ diff --git a/include/libgnulib/memcoll.h b/include/libgnulib/memcoll.h deleted file mode 100755 index 587a6c2..0000000 --- a/include/libgnulib/memcoll.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Locale-specific memory comparison. - - Copyright (C) 1999, 2003, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Contributed by Paul Eggert . */ - -#ifndef MEMCOLL_H_ -#define MEMCOLL_H_ 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int memcoll (char *restrict, size_t, char *restrict, size_t); -int memcoll0 (char const *, size_t, char const *, size_t); - - -#ifdef __cplusplus -} -#endif - -#endif /* MEMCOLL_H_ */ diff --git a/include/libgnulib/memxor.h b/include/libgnulib/memxor.h deleted file mode 100755 index 9d0c1f1..0000000 --- a/include/libgnulib/memxor.h +++ /dev/null @@ -1,47 +0,0 @@ -/* memxor.h -- perform binary exclusive OR operation on memory blocks. - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Simon Josefsson. The interface was inspired by memxor - in Niels Möller's Nettle. */ - -#ifndef MEMXOR_H -#define MEMXOR_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Compute binary exclusive OR of memory areas DEST and SRC, putting - the result in DEST, of length N bytes. Returns a pointer to - DEST. */ -void *memxor (void *restrict dest, const void *restrict src, size_t n); - - -#ifdef __cplusplus -} -#endif - -#endif /* MEMXOR_H */ - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/mgetgroups.h b/include/libgnulib/mgetgroups.h deleted file mode 100755 index 2cfdfe9..0000000 --- a/include/libgnulib/mgetgroups.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Get a list of all group IDs associated with a specified user ID. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int mgetgroups (const char *username, gid_t gid, gid_t **groups); -#if GNULIB_XGETGROUPS -int xgetgroups (const char *username, gid_t gid, gid_t **groups); -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/mini-gmp.h b/include/libgnulib/mini-gmp.h deleted file mode 100755 index f28cb36..0000000 --- a/include/libgnulib/mini-gmp.h +++ /dev/null @@ -1,311 +0,0 @@ -/* mini-gmp, a minimalistic implementation of a GNU GMP subset. - -Copyright 2011-2015, 2017, 2019-2021 Free Software Foundation, Inc. - -This file is part of the GNU MP Library. - -The GNU MP Library is free software; you can redistribute it and/or modify -it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - -or - - * 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. - -or both in parallel, as here. - -The GNU MP 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 General Public License -for more details. - -You should have received copies of the GNU General Public License and the -GNU Lesser General Public License along with the GNU MP Library. If not, -see https://www.gnu.org/licenses/. */ - -/* About mini-gmp: This is a minimal implementation of a subset of the - GMP interface. It is intended for inclusion into applications which - have modest bignums needs, as a fallback when the real GMP library - is not installed. - - This file defines the public interface. */ - -#ifndef __MINI_GMP_H__ -#define __MINI_GMP_H__ - -/* For size_t */ -#include - -#if defined (__cplusplus) -extern "C" { -#endif - -void mp_set_memory_functions (void *(*) (size_t), - void *(*) (void *, size_t, size_t), - void (*) (void *, size_t)); - -void mp_get_memory_functions (void *(**) (size_t), - void *(**) (void *, size_t, size_t), - void (**) (void *, size_t)); - -#ifndef MINI_GMP_LIMB_TYPE -#define MINI_GMP_LIMB_TYPE long -#endif - -typedef unsigned MINI_GMP_LIMB_TYPE mp_limb_t; -typedef long mp_size_t; -typedef unsigned long mp_bitcnt_t; - -typedef mp_limb_t *mp_ptr; -typedef const mp_limb_t *mp_srcptr; - -typedef struct -{ - int _mp_alloc; /* Number of *limbs* allocated and pointed - to by the _mp_d field. */ - int _mp_size; /* abs(_mp_size) is the number of limbs the - last field points to. If _mp_size is - negative this is a negative number. */ - mp_limb_t *_mp_d; /* Pointer to the limbs. */ -} __mpz_struct; - -typedef __mpz_struct mpz_t[1]; - -typedef __mpz_struct *mpz_ptr; -typedef const __mpz_struct *mpz_srcptr; - -extern const int mp_bits_per_limb; - -void mpn_copyi (mp_ptr, mp_srcptr, mp_size_t); -void mpn_copyd (mp_ptr, mp_srcptr, mp_size_t); -void mpn_zero (mp_ptr, mp_size_t); - -int mpn_cmp (mp_srcptr, mp_srcptr, mp_size_t); -int mpn_zero_p (mp_srcptr, mp_size_t); - -mp_limb_t mpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); -mp_limb_t mpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); -mp_limb_t mpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); - -mp_limb_t mpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); -mp_limb_t mpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); -mp_limb_t mpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); - -mp_limb_t mpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); -mp_limb_t mpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); -mp_limb_t mpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t); - -mp_limb_t mpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t); -void mpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t); -void mpn_sqr (mp_ptr, mp_srcptr, mp_size_t); -int mpn_perfect_square_p (mp_srcptr, mp_size_t); -mp_size_t mpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t); -mp_size_t mpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t); - -mp_limb_t mpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); -mp_limb_t mpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int); - -mp_bitcnt_t mpn_scan0 (mp_srcptr, mp_bitcnt_t); -mp_bitcnt_t mpn_scan1 (mp_srcptr, mp_bitcnt_t); - -void mpn_com (mp_ptr, mp_srcptr, mp_size_t); -mp_limb_t mpn_neg (mp_ptr, mp_srcptr, mp_size_t); - -mp_bitcnt_t mpn_popcount (mp_srcptr, mp_size_t); - -mp_limb_t mpn_invert_3by2 (mp_limb_t, mp_limb_t); -#define mpn_invert_limb(x) mpn_invert_3by2 ((x), 0) - -size_t mpn_get_str (unsigned char *, int, mp_ptr, mp_size_t); -mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int); - -void mpz_init (mpz_t); -void mpz_init2 (mpz_t, mp_bitcnt_t); -void mpz_clear (mpz_t); - -#define mpz_odd_p(z) (((z)->_mp_size != 0) & (int) (z)->_mp_d[0]) -#define mpz_even_p(z) (! mpz_odd_p (z)) - -int mpz_sgn (const mpz_t); -int mpz_cmp_si (const mpz_t, long); -int mpz_cmp_ui (const mpz_t, unsigned long); -int mpz_cmp (const mpz_t, const mpz_t); -int mpz_cmpabs_ui (const mpz_t, unsigned long); -int mpz_cmpabs (const mpz_t, const mpz_t); -int mpz_cmp_d (const mpz_t, double); -int mpz_cmpabs_d (const mpz_t, double); - -void mpz_abs (mpz_t, const mpz_t); -void mpz_neg (mpz_t, const mpz_t); -void mpz_swap (mpz_t, mpz_t); - -void mpz_add_ui (mpz_t, const mpz_t, unsigned long); -void mpz_add (mpz_t, const mpz_t, const mpz_t); -void mpz_sub_ui (mpz_t, const mpz_t, unsigned long); -void mpz_ui_sub (mpz_t, unsigned long, const mpz_t); -void mpz_sub (mpz_t, const mpz_t, const mpz_t); - -void mpz_mul_si (mpz_t, const mpz_t, long int); -void mpz_mul_ui (mpz_t, const mpz_t, unsigned long int); -void mpz_mul (mpz_t, const mpz_t, const mpz_t); -void mpz_mul_2exp (mpz_t, const mpz_t, mp_bitcnt_t); -void mpz_addmul_ui (mpz_t, const mpz_t, unsigned long int); -void mpz_addmul (mpz_t, const mpz_t, const mpz_t); -void mpz_submul_ui (mpz_t, const mpz_t, unsigned long int); -void mpz_submul (mpz_t, const mpz_t, const mpz_t); - -void mpz_cdiv_qr (mpz_t, mpz_t, const mpz_t, const mpz_t); -void mpz_fdiv_qr (mpz_t, mpz_t, const mpz_t, const mpz_t); -void mpz_tdiv_qr (mpz_t, mpz_t, const mpz_t, const mpz_t); -void mpz_cdiv_q (mpz_t, const mpz_t, const mpz_t); -void mpz_fdiv_q (mpz_t, const mpz_t, const mpz_t); -void mpz_tdiv_q (mpz_t, const mpz_t, const mpz_t); -void mpz_cdiv_r (mpz_t, const mpz_t, const mpz_t); -void mpz_fdiv_r (mpz_t, const mpz_t, const mpz_t); -void mpz_tdiv_r (mpz_t, const mpz_t, const mpz_t); - -void mpz_cdiv_q_2exp (mpz_t, const mpz_t, mp_bitcnt_t); -void mpz_fdiv_q_2exp (mpz_t, const mpz_t, mp_bitcnt_t); -void mpz_tdiv_q_2exp (mpz_t, const mpz_t, mp_bitcnt_t); -void mpz_cdiv_r_2exp (mpz_t, const mpz_t, mp_bitcnt_t); -void mpz_fdiv_r_2exp (mpz_t, const mpz_t, mp_bitcnt_t); -void mpz_tdiv_r_2exp (mpz_t, const mpz_t, mp_bitcnt_t); - -void mpz_mod (mpz_t, const mpz_t, const mpz_t); - -void mpz_divexact (mpz_t, const mpz_t, const mpz_t); - -int mpz_divisible_p (const mpz_t, const mpz_t); -int mpz_congruent_p (const mpz_t, const mpz_t, const mpz_t); - -unsigned long mpz_cdiv_qr_ui (mpz_t, mpz_t, const mpz_t, unsigned long); -unsigned long mpz_fdiv_qr_ui (mpz_t, mpz_t, const mpz_t, unsigned long); -unsigned long mpz_tdiv_qr_ui (mpz_t, mpz_t, const mpz_t, unsigned long); -unsigned long mpz_cdiv_q_ui (mpz_t, const mpz_t, unsigned long); -unsigned long mpz_fdiv_q_ui (mpz_t, const mpz_t, unsigned long); -unsigned long mpz_tdiv_q_ui (mpz_t, const mpz_t, unsigned long); -unsigned long mpz_cdiv_r_ui (mpz_t, const mpz_t, unsigned long); -unsigned long mpz_fdiv_r_ui (mpz_t, const mpz_t, unsigned long); -unsigned long mpz_tdiv_r_ui (mpz_t, const mpz_t, unsigned long); -unsigned long mpz_cdiv_ui (const mpz_t, unsigned long); -unsigned long mpz_fdiv_ui (const mpz_t, unsigned long); -unsigned long mpz_tdiv_ui (const mpz_t, unsigned long); - -unsigned long mpz_mod_ui (mpz_t, const mpz_t, unsigned long); - -void mpz_divexact_ui (mpz_t, const mpz_t, unsigned long); - -int mpz_divisible_ui_p (const mpz_t, unsigned long); - -unsigned long mpz_gcd_ui (mpz_t, const mpz_t, unsigned long); -void mpz_gcd (mpz_t, const mpz_t, const mpz_t); -void mpz_gcdext (mpz_t, mpz_t, mpz_t, const mpz_t, const mpz_t); -void mpz_lcm_ui (mpz_t, const mpz_t, unsigned long); -void mpz_lcm (mpz_t, const mpz_t, const mpz_t); -int mpz_invert (mpz_t, const mpz_t, const mpz_t); - -void mpz_sqrtrem (mpz_t, mpz_t, const mpz_t); -void mpz_sqrt (mpz_t, const mpz_t); -int mpz_perfect_square_p (const mpz_t); - -void mpz_pow_ui (mpz_t, const mpz_t, unsigned long); -void mpz_ui_pow_ui (mpz_t, unsigned long, unsigned long); -void mpz_powm (mpz_t, const mpz_t, const mpz_t, const mpz_t); -void mpz_powm_ui (mpz_t, const mpz_t, unsigned long, const mpz_t); - -void mpz_rootrem (mpz_t, mpz_t, const mpz_t, unsigned long); -int mpz_root (mpz_t, const mpz_t, unsigned long); - -void mpz_fac_ui (mpz_t, unsigned long); -void mpz_2fac_ui (mpz_t, unsigned long); -void mpz_mfac_uiui (mpz_t, unsigned long, unsigned long); -void mpz_bin_uiui (mpz_t, unsigned long, unsigned long); - -int mpz_probab_prime_p (const mpz_t, int); - -int mpz_tstbit (const mpz_t, mp_bitcnt_t); -void mpz_setbit (mpz_t, mp_bitcnt_t); -void mpz_clrbit (mpz_t, mp_bitcnt_t); -void mpz_combit (mpz_t, mp_bitcnt_t); - -void mpz_com (mpz_t, const mpz_t); -void mpz_and (mpz_t, const mpz_t, const mpz_t); -void mpz_ior (mpz_t, const mpz_t, const mpz_t); -void mpz_xor (mpz_t, const mpz_t, const mpz_t); - -mp_bitcnt_t mpz_popcount (const mpz_t); -mp_bitcnt_t mpz_hamdist (const mpz_t, const mpz_t); -mp_bitcnt_t mpz_scan0 (const mpz_t, mp_bitcnt_t); -mp_bitcnt_t mpz_scan1 (const mpz_t, mp_bitcnt_t); - -int mpz_fits_slong_p (const mpz_t); -int mpz_fits_ulong_p (const mpz_t); -int mpz_fits_sint_p (const mpz_t); -int mpz_fits_uint_p (const mpz_t); -int mpz_fits_sshort_p (const mpz_t); -int mpz_fits_ushort_p (const mpz_t); -long int mpz_get_si (const mpz_t); -unsigned long int mpz_get_ui (const mpz_t); -double mpz_get_d (const mpz_t); -size_t mpz_size (const mpz_t); -mp_limb_t mpz_getlimbn (const mpz_t, mp_size_t); - -void mpz_realloc2 (mpz_t, mp_bitcnt_t); -mp_srcptr mpz_limbs_read (mpz_srcptr); -mp_ptr mpz_limbs_modify (mpz_t, mp_size_t); -mp_ptr mpz_limbs_write (mpz_t, mp_size_t); -void mpz_limbs_finish (mpz_t, mp_size_t); -mpz_srcptr mpz_roinit_n (mpz_t, mp_srcptr, mp_size_t); - -#define MPZ_ROINIT_N(xp, xs) {{0, (xs),(xp) }} - -void mpz_set_si (mpz_t, signed long int); -void mpz_set_ui (mpz_t, unsigned long int); -void mpz_set (mpz_t, const mpz_t); -void mpz_set_d (mpz_t, double); - -void mpz_init_set_si (mpz_t, signed long int); -void mpz_init_set_ui (mpz_t, unsigned long int); -void mpz_init_set (mpz_t, const mpz_t); -void mpz_init_set_d (mpz_t, double); - -size_t mpz_sizeinbase (const mpz_t, int); -char *mpz_get_str (char *, int, const mpz_t); -int mpz_set_str (mpz_t, const char *, int); -int mpz_init_set_str (mpz_t, const char *, int); - -/* This long list taken from gmp.h. */ -/* For reference, "defined(EOF)" cannot be used here. In g++ 2.95.4, - defines EOF but not FILE. */ -#if defined (FILE) \ - || defined (H_STDIO) \ - || defined (_H_STDIO) /* AIX */ \ - || defined (_STDIO_H) /* glibc, Sun, SCO */ \ - || defined (_STDIO_H_) /* BSD, OSF */ \ - || defined (__STDIO_H) /* Borland */ \ - || defined (__STDIO_H__) /* IRIX */ \ - || defined (_STDIO_INCLUDED) /* HPUX */ \ - || defined (__dj_include_stdio_h_) /* DJGPP */ \ - || defined (_FILE_DEFINED) /* Microsoft */ \ - || defined (__STDIO__) /* Apple MPW MrC */ \ - || defined (_MSL_STDIO_H) /* Metrowerks */ \ - || defined (_STDIO_H_INCLUDED) /* QNX4 */ \ - || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ \ - || defined (__STDIO_LOADED) /* VMS */ \ - || defined (_STDIO) /* HPE NonStop */ \ - || defined (__DEFINED_FILE) /* musl */ -size_t mpz_out_str (FILE *, int, const mpz_t); -#endif - -void mpz_import (mpz_t, size_t, int, size_t, int, size_t, const void *); -void *mpz_export (void *, size_t *, int, size_t, int, size_t, const mpz_t); - -#if defined (__cplusplus) -} -#endif -#endif /* __MINI_GMP_H__ */ diff --git a/include/libgnulib/mini-mpq.h b/include/libgnulib/mini-mpq.h deleted file mode 100755 index 8eabcec..0000000 --- a/include/libgnulib/mini-mpq.h +++ /dev/null @@ -1,114 +0,0 @@ -/* mini-mpq, a minimalistic implementation of a GNU GMP subset. - -Copyright 2018, 2019 Free Software Foundation, Inc. - -This file is part of the GNU MP Library. - -The GNU MP Library is free software; you can redistribute it and/or modify -it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - -or - - * 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. - -or both in parallel, as here. - -The GNU MP 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 General Public License -for more details. - -You should have received copies of the GNU General Public License and the -GNU Lesser General Public License along with the GNU MP Library. If not, -see https://www.gnu.org/licenses/. */ - -/* Header */ - -#ifndef __MINI_MPQ_H__ -#define __MINI_MPQ_H__ - -#include "mini-gmp.h" - -#if defined (__cplusplus) -extern "C" { -#endif - -typedef struct -{ - __mpz_struct _mp_num; - __mpz_struct _mp_den; -} __mpq_struct; - -typedef __mpq_struct mpq_t[1]; - -typedef const __mpq_struct *mpq_srcptr; -typedef __mpq_struct *mpq_ptr; - -#define mpq_numref(Q) (&((Q)->_mp_num)) -#define mpq_denref(Q) (&((Q)->_mp_den)) - -void mpq_abs (mpq_t, const mpq_t); -void mpq_add (mpq_t, const mpq_t, const mpq_t); -void mpq_canonicalize (mpq_t); -void mpq_clear (mpq_t); -int mpq_cmp (const mpq_t, const mpq_t); -int mpq_cmp_si (const mpq_t, signed long, unsigned long); -int mpq_cmp_ui (const mpq_t, unsigned long, unsigned long); -int mpq_cmp_z (const mpq_t, const mpz_t); -void mpq_div (mpq_t, const mpq_t, const mpq_t); -void mpq_div_2exp (mpq_t, const mpq_t, mp_bitcnt_t); -int mpq_equal (const mpq_t, const mpq_t); -double mpq_get_d (const mpq_t); -void mpq_get_den (mpz_t, const mpq_t); -void mpq_get_num (mpz_t, const mpq_t); -char * mpq_get_str (char *, int, const mpq_t q); -void mpq_init (mpq_t); -void mpq_inv (mpq_t, const mpq_t); -void mpq_mul (mpq_t, const mpq_t, const mpq_t); -void mpq_mul_2exp (mpq_t, const mpq_t, mp_bitcnt_t); -void mpq_neg (mpq_t, const mpq_t); -void mpq_set (mpq_t, const mpq_t); -void mpq_set_d (mpq_t, double); -void mpq_set_den (mpq_t, const mpz_t); -void mpq_set_num (mpq_t, const mpz_t); -void mpq_set_si (mpq_t, signed long, unsigned long); -int mpq_set_str (mpq_t, const char *, int); -void mpq_set_ui (mpq_t, unsigned long, unsigned long); -void mpq_set_z (mpq_t, const mpz_t); -int mpq_sgn (const mpq_t); -void mpq_sub (mpq_t, const mpq_t, const mpq_t); -void mpq_swap (mpq_t, mpq_t); - -/* This long list taken from gmp.h. */ -/* For reference, "defined(EOF)" cannot be used here. In g++ 2.95.4, - defines EOF but not FILE. */ -#if defined (FILE) \ - || defined (H_STDIO) \ - || defined (_H_STDIO) /* AIX */ \ - || defined (_STDIO_H) /* glibc, Sun, SCO */ \ - || defined (_STDIO_H_) /* BSD, OSF */ \ - || defined (__STDIO_H) /* Borland */ \ - || defined (__STDIO_H__) /* IRIX */ \ - || defined (_STDIO_INCLUDED) /* HPUX */ \ - || defined (__dj_include_stdio_h_) /* DJGPP */ \ - || defined (_FILE_DEFINED) /* Microsoft */ \ - || defined (__STDIO__) /* Apple MPW MrC */ \ - || defined (_MSL_STDIO_H) /* Metrowerks */ \ - || defined (_STDIO_H_INCLUDED) /* QNX4 */ \ - || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ \ - || defined (__STDIO_LOADED) /* VMS */ -size_t mpq_out_str (FILE *, int, const mpq_t); -#endif - -void mpz_set_q (mpz_t, const mpq_t); - -#if defined (__cplusplus) -} -#endif -#endif /* __MINI_MPQ_H__ */ diff --git a/include/libgnulib/minmax.h b/include/libgnulib/minmax.h deleted file mode 100755 index f3df58b..0000000 --- a/include/libgnulib/minmax.h +++ /dev/null @@ -1,65 +0,0 @@ -/* MIN, MAX macros. - Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MINMAX_H -#define _MINMAX_H - -/* Note: MIN, MAX are also defined in on some systems - (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about - MIN, MAX macro redefinitions on some systems; the workaround is to - #include this file as the last one among the #include list. */ - -/* This file uses HAVE_MINMAX_IN_LIMITS_H, HAVE_MINMAX_IN_SYS_PARAM_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Before we define the following symbols we get the file - since otherwise we get redefinitions on some systems if is - included after this file. Likewise for . - If more than one of these system headers define MIN and MAX, pick just - one of the headers (because the definitions most likely are the same). */ -#if HAVE_MINMAX_IN_LIMITS_H -# include -#elif HAVE_MINMAX_IN_SYS_PARAM_H -# include -#endif - -/* Note: MIN and MAX should be used with two arguments of the - same type. They might not return the minimum and maximum of their two - arguments, if the arguments have different types or have unusual - floating-point values. For example, on a typical host with 32-bit 'int', - 64-bit 'long long', and 64-bit IEEE 754 'double' types: - - MAX (-1, 2147483648) returns 4294967295. - MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. - MAX (NaN, 0.0) returns 0.0. - MAX (+0.0, -0.0) returns -0.0. - - and in each case the answer is in some sense bogus. */ - -/* MAX(a,b) returns the maximum of A and B. */ -#ifndef MAX -# define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - -/* MIN(a,b) returns the minimum of A and B. */ -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#endif /* _MINMAX_H */ diff --git a/include/libgnulib/mkancesdirs.h b/include/libgnulib/mkancesdirs.h deleted file mode 100755 index 3024083..0000000 --- a/include/libgnulib/mkancesdirs.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Ensure the existence of the ancestor directories of a file. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert, 2006. */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct savewd; -ptrdiff_t mkancesdirs (char *, struct savewd *, - int (*) (char const *, char const *, void *), void *); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/mkdir-p.h b/include/libgnulib/mkdir-p.h deleted file mode 100755 index 9285056..0000000 --- a/include/libgnulib/mkdir-p.h +++ /dev/null @@ -1,44 +0,0 @@ -/* mkdir-p.h -- Ensure that a directory and its parents exist. - - Copyright (C) 1994-1997, 2000, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert, David MacKenzie, and Jim Meyering. */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -struct savewd; -bool make_dir_parents (char *dir, - struct savewd *wd, - int (*make_ancestor) (char const *, char const *, - void *), - void *options, - mode_t mode, - void (*announce) (char const *, void *), - mode_t mode_bits, - uid_t owner, - gid_t group, - bool preserve_existing); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/mktime-internal.h b/include/libgnulib/mktime-internal.h deleted file mode 100755 index 3e2848c..0000000 --- a/include/libgnulib/mktime-internal.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Internals of mktime and related functions - Copyright 2016-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Paul Eggert . - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -/* mktime_offset_t is a signed type wide enough to hold a UTC offset - in seconds, and used as part of the type of the offset-guess - argument to mktime_internal. In Glibc, it is always long int. - When in Gnulib, use time_t on platforms where time_t - is signed, to be compatible with platforms like BeOS that export - this implementation detail of mktime. On platforms where time_t is - unsigned, GNU and POSIX code can assume 'int' is at least 32 bits - which is wide enough for a UTC offset. */ -#ifdef _LIBC -typedef long int mktime_offset_t; -#elif defined TIME_T_IS_SIGNED -typedef time_t mktime_offset_t; -#else -typedef int mktime_offset_t; -#endif - -/* The source code uses identifiers like __time64_t for glibc - timestamps that can contain 64-bit values even when time_t is only - 32 bits. These are just macros for the ordinary identifiers unless - compiling within glibc when time_t is 32 bits. */ -#if ! (defined _LIBC && __TIMESIZE != 64) -# undef __time64_t -# define __time64_t time_t -# define __gmtime64_r __gmtime_r -# define __localtime64_r __localtime_r -# define __mktime64 mktime -# define __timegm64 timegm -#endif - -#ifndef _LIBC - -/* Although glibc source code uses leading underscores, Gnulib wants - ordinary names. - - Portable standalone applications should supply a that - declares a POSIX-compliant localtime_r, for the benefit of older - implementations that lack localtime_r or have a nonstandard one. - Similarly for gmtime_r. See the gnulib time_r module for one way - to implement this. */ - -# undef __gmtime_r -# undef __localtime_r -# define __gmtime_r gmtime_r -# define __localtime_r localtime_r - -# define __mktime_internal mktime_internal - -#endif - -/* Subroutine of mktime. Return the time_t representation of TP and - normalize TP, given that a struct tm * maps to a time_t. If - LOCAL, the mapping is performed by localtime_r, otherwise by gmtime_r. - Record next guess for localtime-gmtime offset in *OFFSET. */ -extern __time64_t __mktime_internal (struct tm *tp, bool local, - mktime_offset_t *offset) attribute_hidden; diff --git a/include/libgnulib/modechange.h b/include/libgnulib/modechange.h deleted file mode 100755 index 633a726..0000000 --- a/include/libgnulib/modechange.h +++ /dev/null @@ -1,48 +0,0 @@ -/* modechange.h -- definitions for file mode manipulation - - Copyright (C) 1989-1990, 1997, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#if ! defined MODECHANGE_H_ -#define MODECHANGE_H_ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -struct mode_change *mode_compile (const char *) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -struct mode_change *mode_create_from_ref (const char *) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -mode_t mode_adjust (mode_t, bool, mode_t, struct mode_change const *, - mode_t *) - _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/mountlist.h b/include/libgnulib/mountlist.h deleted file mode 100755 index 9728e38..0000000 --- a/include/libgnulib/mountlist.h +++ /dev/null @@ -1,58 +0,0 @@ -/* mountlist.h -- declarations for list of mounted file systems - - Copyright (C) 1991-1992, 1998, 2000-2005, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#ifndef MOUNTLIST_H_ -#define MOUNTLIST_H_ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* A mount table entry. */ -struct mount_entry -{ - char *me_devname; /* Device node name, including "/dev/". */ - char *me_mountdir; /* Mount point directory name. */ - char *me_mntroot; /* Directory on filesystem of device used */ - /* as root for the (bind) mount. */ - char *me_type; /* "nfs", "4.2", etc. */ - dev_t me_dev; /* Device number of me_mountdir. */ - unsigned int me_dummy : 1; /* Nonzero for dummy file systems. */ - unsigned int me_remote : 1; /* Nonzero for remote file systems. */ - unsigned int me_type_malloced : 1; /* Nonzero if me_type was malloced. */ - struct mount_entry *me_next; -}; - -struct mount_entry *read_file_system_list (bool need_fs_type) - _GL_ATTRIBUTE_MALLOC; -void free_mount_entry (struct mount_entry *entry); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/mpsort.h b/include/libgnulib/mpsort.h deleted file mode 100755 index 0e0b5f7..0000000 --- a/include/libgnulib/mpsort.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Sort a vector of pointers to data. - - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -void mpsort (void const **, size_t, int (*) (void const *, void const *)); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/msvc-inval.h b/include/libgnulib/msvc-inval.h deleted file mode 100755 index 7aee6e5..0000000 --- a/include/libgnulib/msvc-inval.h +++ /dev/null @@ -1,227 +0,0 @@ -/* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MSVC_INVAL_H -#define _MSVC_INVAL_H - -/* With MSVC runtime libraries with the "invalid parameter handler" concept, - functions like fprintf(), dup2(), or close() crash when the caller passes - an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) - instead. - This file defines macros that turn such an invalid parameter notification - into a non-local exit. An error code can then be produced at the target - of this exit. You can thus write code like - - TRY_MSVC_INVAL - { - - } - CATCH_MSVC_INVAL - { - - } - DONE_MSVC_INVAL; - - This entire block expands to a single statement. - - The handling of invalid parameters can be done in three ways: - - * The default way, which is reasonable for programs (not libraries): - AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) - - * The way for libraries that make "hairy" calls (like close(-1), or - fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): - AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) - - * The way for libraries that make no "hairy" calls: - AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) - */ - -/* This file uses HAVE_MSVC_INVALID_PARAMETER_HANDLER. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#define DEFAULT_HANDLING 0 -#define HAIRY_LIBRARY_HANDLING 1 -#define SANE_LIBRARY_HANDLING 2 - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ - && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) -/* A native Windows platform with the "invalid parameter handler" concept, - and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ - -# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING -/* Default handling. */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* Ensure that the invalid parameter handler in installed that just returns. - Because we assume no other part of the program installs a different - invalid parameter handler, this solution is multithread-safe. */ -extern void gl_msvc_inval_ensure_handler (void); - -# ifdef __cplusplus -} -# endif - -# define TRY_MSVC_INVAL \ - do \ - { \ - gl_msvc_inval_ensure_handler (); \ - if (1) -# define CATCH_MSVC_INVAL \ - else -# define DONE_MSVC_INVAL \ - } \ - while (0) - -# else -/* Handling for hairy libraries. */ - -# include - -/* Gnulib can define its own status codes, as described in the page - "Raising Software Exceptions" on microsoft.com - . - Our status codes are composed of - - 0xE0000000, mandatory for all user-defined status codes, - - 0x474E550, a API identifier ("GNU"), - - 0, 1, 2, ..., used to distinguish different status codes from the - same API. */ -# define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) - -# if defined _MSC_VER -/* A compiler that supports __try/__except, as described in the page - "try-except statement" on microsoft.com - . - With __try/__except, we can use the multithread-safe exception handling. */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* Ensure that the invalid parameter handler in installed that raises a - software exception with code STATUS_GNULIB_INVALID_PARAMETER. - Because we assume no other part of the program installs a different - invalid parameter handler, this solution is multithread-safe. */ -extern void gl_msvc_inval_ensure_handler (void); - -# ifdef __cplusplus -} -# endif - -# define TRY_MSVC_INVAL \ - do \ - { \ - gl_msvc_inval_ensure_handler (); \ - __try -# define CATCH_MSVC_INVAL \ - __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ - ? EXCEPTION_EXECUTE_HANDLER \ - : EXCEPTION_CONTINUE_SEARCH) -# define DONE_MSVC_INVAL \ - } \ - while (0) - -# else -/* Any compiler. - We can only use setjmp/longjmp. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -struct gl_msvc_inval_per_thread -{ - /* The restart that will resume execution at the code between - CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between - TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ - jmp_buf restart; - - /* Tells whether the contents of restart is valid. */ - int restart_valid; -}; - -/* Ensure that the invalid parameter handler in installed that passes - control to the gl_msvc_inval_restart if it is valid, or raises a - software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. - Because we assume no other part of the program installs a different - invalid parameter handler, this solution is multithread-safe. */ -extern void gl_msvc_inval_ensure_handler (void); - -/* Return a pointer to the per-thread data for the current thread. */ -extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); - -# ifdef __cplusplus -} -# endif - -# define TRY_MSVC_INVAL \ - do \ - { \ - struct gl_msvc_inval_per_thread *msvc_inval_current; \ - gl_msvc_inval_ensure_handler (); \ - msvc_inval_current = gl_msvc_inval_current (); \ - /* First, initialize gl_msvc_inval_restart. */ \ - if (setjmp (msvc_inval_current->restart) == 0) \ - { \ - /* Then, mark it as valid. */ \ - msvc_inval_current->restart_valid = 1; -# define CATCH_MSVC_INVAL \ - /* Execution completed. \ - Mark gl_msvc_inval_restart as invalid. */ \ - msvc_inval_current->restart_valid = 0; \ - } \ - else \ - { \ - /* Execution triggered an invalid parameter notification. \ - Mark gl_msvc_inval_restart as invalid. */ \ - msvc_inval_current->restart_valid = 0; -# define DONE_MSVC_INVAL \ - } \ - } \ - while (0) - -# endif - -# endif - -#else -/* A platform that does not need to the invalid parameter handler, - or when SANE_LIBRARY_HANDLING is desired. */ - -/* The braces here avoid GCC warnings like - "warning: suggest explicit braces to avoid ambiguous 'else'". */ -# define TRY_MSVC_INVAL \ - do \ - { \ - if (1) -# define CATCH_MSVC_INVAL \ - else -# define DONE_MSVC_INVAL \ - } \ - while (0) - -#endif - -#endif /* _MSVC_INVAL_H */ diff --git a/include/libgnulib/msvc-nothrow.h b/include/libgnulib/msvc-nothrow.h deleted file mode 100755 index 121773d..0000000 --- a/include/libgnulib/msvc-nothrow.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Wrappers that don't throw invalid parameter notifications - with MSVC runtime libraries. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MSVC_NOTHROW_H -#define _MSVC_NOTHROW_H - -/* With MSVC runtime libraries with the "invalid parameter handler" concept, - functions like fprintf(), dup2(), or close() crash when the caller passes - an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) - instead. - This file defines wrappers that turn such an invalid parameter notification - into an error code. */ - -/* This file uses HAVE_MSVC_INVALID_PARAMETER_HANDLER. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ - -/* Get original declaration of _get_osfhandle. */ -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER - -/* Override _get_osfhandle. */ -extern intptr_t _gl_nothrow_get_osfhandle (int fd); -# define _get_osfhandle _gl_nothrow_get_osfhandle - -# endif - -# ifdef __cplusplus -} -# endif - -#endif - -#endif /* _MSVC_NOTHROW_H */ diff --git a/include/libgnulib/nan.h b/include/libgnulib/nan.h deleted file mode 100755 index 0a7622c..0000000 --- a/include/libgnulib/nan.h +++ /dev/null @@ -1,105 +0,0 @@ -/* Macros for quiet not-a-number. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_NAN_H -#define _GL_NAN_H - -/* IBM z/OS supports both hexadecimal and IEEE floating-point formats. The - former does not support NaN and its isnan() implementation returns zero - for all values. */ -#if defined __MVS__ && defined __IBMC__ && !defined __BFP__ -# error "NaN is not supported with IBM's hexadecimal floating-point format; please re-compile with -qfloat=ieee" -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* NaNf () returns a 'float' not-a-number. */ - -/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke - on the expression 0.0 / 0.0. The IBM XL C compiler on z/OS complains. - PGI 16.10 complains. clang 13 on mips64 does incorrect constant-folding. */ -#if (defined __DECC || defined _MSC_VER \ - || (defined __MVS__ && defined __IBMC__) \ - || defined __PGI \ - || defined __mips__) -static float -NaNf () -{ - static float volatile zero = 0.0f; - return zero / zero; -} -#else -# define NaNf() (0.0f / 0.0f) -#endif - - -/* NaNd () returns a 'double' not-a-number. */ - -/* The Compaq (ex-DEC) C 6.4 compiler and the Microsoft MSVC 9 compiler choke - on the expression 0.0 / 0.0. The IBM XL C compiler on z/OS complains. - PGI 16.10 complains. clang 13 on mips64 does incorrect constant-folding. */ -#if (defined __DECC || defined _MSC_VER \ - || (defined __MVS__ && defined __IBMC__) \ - || defined __PGI \ - || defined __mips__) -static double -NaNd () -{ - static double volatile zero = 0.0; - return zero / zero; -} -#else -# define NaNd() (0.0 / 0.0) -#endif - - -/* NaNl () returns a 'long double' not-a-number. */ - -/* On Irix 6.5, gcc 3.4.3 can't compute compile-time NaN, and needs the - runtime type conversion. - The Microsoft MSVC 9 compiler chokes on the expression 0.0L / 0.0L. - The IBM XL C compiler on z/OS complains. - PGI 16.10 complains. - Avoid possible incorrect constant-folding on mips. */ -#ifdef __sgi -static long double NaNl () -{ - double zero = 0.0; - return zero / zero; -} -#elif (defined _MSC_VER \ - || (defined __MVS__ && defined __IBMC__) \ - || defined __PGI \ - || defined __mips__) -static long double -NaNl () -{ - static long double volatile zero = 0.0L; - return zero / zero; -} -#else -# define NaNl() (0.0L / 0.0L) -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_NAN_H */ diff --git a/include/libgnulib/nonblocking.h b/include/libgnulib/nonblocking.h deleted file mode 100755 index 61a9398..0000000 --- a/include/libgnulib/nonblocking.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Non-blocking I/O for pipe or socket descriptors. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _NONBLOCKING_H -#define _NONBLOCKING_H - -/* Non-blocking I/O is an I/O mode by which read(), write() calls avoid - blocking the current thread. When non-blocking is enabled: - - A read() call returns -1 with errno set to EAGAIN when no data or EOF - information is immediately available. - - A write() call returns -1 with errno set to EAGAIN when it cannot - transport the requested amount of data (but at most one pipe buffer) - without blocking. - Non-blocking I/O is most useful for character devices, pipes, and sockets. - Whether it also works on regular files and block devices is platform - dependent. - - There are three modern alternatives to non-blocking I/O: - - use select() or poll() followed by read() or write() if the descriptor - is ready, - - call read() or write() in separate threads, - - use interfaces. */ - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return 1 if I/O to the descriptor DESC is currently non-blocking, 0 - it is blocking, or -1 with errno set if fd is invalid or blocking - status cannot be determined (such as with sockets on mingw). */ -extern int get_nonblocking_flag (int desc); - -/* Specify the non-blocking flag for the descriptor DESC. - Return 0 upon success, or -1 with errno set upon failure. - The default depends on the presence of the O_NONBLOCK flag for files - or pipes opened with open() or on the presence of the SOCK_NONBLOCK - flag for sockets. */ -extern int set_nonblocking_flag (int desc, bool value); - - -#ifdef __cplusplus -} -#endif - -#endif /* _NONBLOCKING_H */ diff --git a/include/libgnulib/noreturn.h b/include/libgnulib/noreturn.h deleted file mode 100755 index c428057..0000000 --- a/include/libgnulib/noreturn.h +++ /dev/null @@ -1,116 +0,0 @@ -/* Macros for declaring functions as non-returning. - - Copyright (C) 2017-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert and Bruno Haible. */ - -#ifndef _NORETURN_H -#define _NORETURN_H 1 - -/* A "non-returning" function is a function which cannot return normally. - It can transfer control only through longjmp(), throw (in C++), or similar - mechanisms. - - This file defines two macros _GL_NORETURN_FUNC and _GL_NORETURN_FUNCPTR, - that declare a function to be non-returning. - _GL_NORETURN_FUNC is for use in function declarations and function - definitions. - _GL_NORETURN_FUNCPTR is for use on function pointers. - - Comparison of this file with : - defines a macro (or keyword) _Noreturn that declares - a function to be non-returning. _Noreturn is only for use in function - declarations and function definitions. - Therefore, if the non-returning functions you have to declare are unlikely - to be accessed through function pointers, and if the efficiency with C++ - compilers other than g++, clang, MSVC++ is not an issue to you, you can use - module 'stdnoreturn' instead of this one, and _Noreturn instead of - _GL_NORETURN_FUNC. - */ - -/* Declares that a function is nonreturning. - Use in C only code: - _GL_NORETURN_FUNC extern void func (void); - extern _GL_NORETURN_FUNC void func (void); - extern void _GL_NORETURN_FUNC func (void); - Use in C++ only code for a function with C linkage: - extern "C" { _GL_NORETURN_FUNC void func (void); } - Use in C++ only code for a function with C++ linkage: - _GL_NORETURN_FUNC extern void func (void); - Use in C & C++ code for a function with C linkage: - #ifdef __cplusplus - extern "C" { - #endif - _GL_NORETURN_FUNC void func (void); - #ifdef __cplusplus - } - #endif - Use in C & C++ code for a function with current language linkage: - _GL_NORETURN_FUNC extern void func (void); - */ -#if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__)) \ - || defined __clang__ \ - || (0x5110 <= __SUNPRO_C) - /* For compatibility with _GL_NORETURN_FUNCPTR on clang, use - __attribute__((__noreturn__)), not _Noreturn. */ -# define _GL_NORETURN_FUNC __attribute__ ((__noreturn__)) -#elif 1200 <= _MSC_VER - /* Use MSVC specific syntax. */ -# define _GL_NORETURN_FUNC __declspec (noreturn) -#elif defined __cplusplus - /* Use ISO C++11 syntax when the compiler supports it. */ -# if (__cplusplus >= 201103 && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (_MSC_VER >= 1900) -# define _GL_NORETURN_FUNC [[noreturn]] - /* clang++ supports the _Noreturn keyword, but g++ doesn't. */ -# elif defined __clang__ -# define _GL_NORETURN_FUNC _Noreturn -# else -# define _GL_NORETURN_FUNC /* empty */ -# endif -#else - /* Use ISO C11 syntax when the compiler supports it. */ -# if __STDC_VERSION__ >= 201112 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) -# define _GL_NORETURN_FUNC _Noreturn -# else -# define _GL_NORETURN_FUNC /* empty */ -# endif -#endif - -/* Declares that a function is nonreturning. - Use in types and declarations that involve function pointers: - _GL_NORETURN_FUNCPTR void (*funcptr) (void); - */ -#if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__)) \ - || defined __clang__ \ - || (0x5110 <= __SUNPRO_C) -# define _GL_NORETURN_FUNCPTR __attribute__ ((__noreturn__)) -#else -# define _GL_NORETURN_FUNCPTR /* empty */ -#endif - -/* Comments about the compiler dependent language features: - - '_Noreturn' - standardized by ISO C11, available in C only (not in C++), - and not applicable to pointers. - - '[[noreturn]]' - standardized by ISO C++11, available in C++ only, - and not applicable to pointers. - - '__attribute__((__noreturn__))' - available in GCC and clang only, - both in C and C++. - - '__declspec(noreturn)' - available in MSVC only, - both in C and C++, not applicable to pointers. - */ - -#endif /* _NORETURN_H */ diff --git a/include/libgnulib/nproc.h b/include/libgnulib/nproc.h deleted file mode 100755 index 7054df5..0000000 --- a/include/libgnulib/nproc.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Detect the number of processors. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Glen Lenker and Bruno Haible. */ - -/* Allow the use in C++ code. */ -#ifdef __cplusplus -extern "C" { -#endif - -/* A "processor" in this context means a thread execution unit, that is either - - an execution core in a (possibly multi-core) chip, in a (possibly multi- - chip) module, in a single computer, or - - a thread execution unit inside a core - (hyper-threading, see ). - Which of the two definitions is used, is unspecified. */ - -enum nproc_query -{ - NPROC_ALL, /* total number of processors */ - NPROC_CURRENT, /* processors available to the current process */ - NPROC_CURRENT_OVERRIDABLE /* likewise, but overridable through the - OMP_NUM_THREADS environment variable */ -}; - -/* Return the total number of processors. The result is guaranteed to - be at least 1. */ -extern unsigned long int num_processors (enum nproc_query query); - -#ifdef __cplusplus -} -#endif /* C++ */ diff --git a/include/libgnulib/openat-priv.h b/include/libgnulib/openat-priv.h deleted file mode 100755 index 63093f4..0000000 --- a/include/libgnulib/openat-priv.h +++ /dev/null @@ -1,74 +0,0 @@ -/* Internals for openat-like functions. - - Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* written by Jim Meyering */ - -#ifndef _GL_HEADER_OPENAT_PRIV -#define _GL_HEADER_OPENAT_PRIV - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Maximum number of bytes that it is safe to allocate as a single - array on the stack, and that is known as a compile-time constant. - The assumption is that we'll touch the array very quickly, or a - temporary very near the array, provoking an out-of-memory trap. On - some operating systems, there is only one guard page for the stack, - and a page size can be as small as 4096 bytes. Subtract 64 in the - hope that this will let the compiler touch a nearby temporary and - provoke a trap. */ -#define SAFER_ALLOCA_MAX (4096 - 64) - -#define SAFER_ALLOCA(m) ((m) < SAFER_ALLOCA_MAX ? (m) : SAFER_ALLOCA_MAX) - -#if defined PATH_MAX -# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (PATH_MAX) -#elif defined _XOPEN_PATH_MAX -# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (_XOPEN_PATH_MAX) -#else -# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (1024) -#endif - -char *openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file); - -/* Trying to access a BUILD_PROC_NAME file will fail on systems without - /proc support, and even on systems *with* ProcFS support. Return - nonzero if the failure may be legitimate, e.g., because /proc is not - readable, or the particular .../fd/N directory is not present. */ -#define EXPECTED_ERRNO(Errno) \ - ((Errno) == ENOTDIR || (Errno) == ENOENT \ - || (Errno) == EPERM || (Errno) == EACCES \ - || (Errno) == ENOSYS /* Solaris 8 */ \ - || (Errno) == EOPNOTSUPP /* FreeBSD */) - -/* Wrapper function shared among linkat and renameat. */ -int at_func2 (int fd1, char const *file1, - int fd2, char const *file2, - int (*func) (char const *file1, char const *file2)); - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_HEADER_OPENAT_PRIV */ diff --git a/include/libgnulib/openat.h b/include/libgnulib/openat.h deleted file mode 100755 index b6b94f6..0000000 --- a/include/libgnulib/openat.h +++ /dev/null @@ -1,137 +0,0 @@ -/* provide a replacement openat function - Copyright (C) 2004-2006, 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* written by Jim Meyering */ - -#ifndef _GL_HEADER_OPENAT -#define _GL_HEADER_OPENAT - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn, - _GL_ATTRIBUTE_DEPRECATED, HAVE_OPENAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#include -#include -#include - -_GL_INLINE_HEADER_BEGIN - -#ifdef __cplusplus -extern "C" { -#endif - - -#if !HAVE_OPENAT - -int openat_permissive (int fd, char const *file, int flags, mode_t mode, - int *cwd_errno); -bool openat_needs_fchdir (void); - -#else - -# define openat_permissive(Fd, File, Flags, Mode, Cwd_errno) \ - openat (Fd, File, Flags, Mode) -# define openat_needs_fchdir() false - -#endif - -_Noreturn void openat_restore_fail (int); -_Noreturn void openat_save_fail (int); - -/* Using these function names makes application code - slightly more readable than it would be with - fchownat (..., 0) or fchownat (..., AT_SYMLINK_NOFOLLOW). */ - -#if GNULIB_CHOWNAT - -# ifndef CHOWNAT_INLINE -# define CHOWNAT_INLINE _GL_INLINE -# endif - -CHOWNAT_INLINE int -chownat (int fd, char const *file, uid_t owner, gid_t group) -{ - return fchownat (fd, file, owner, group, 0); -} - -CHOWNAT_INLINE int -lchownat (int fd, char const *file, uid_t owner, gid_t group) -{ - return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW); -} - -#endif - -#if GNULIB_CHMODAT - -# ifndef CHMODAT_INLINE -# define CHMODAT_INLINE _GL_INLINE -# endif - -CHMODAT_INLINE int -chmodat (int fd, char const *file, mode_t mode) -{ - return fchmodat (fd, file, mode, 0); -} - -CHMODAT_INLINE int -lchmodat (int fd, char const *file, mode_t mode) -{ - return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW); -} - -#endif - -#if GNULIB_STATAT - -# ifndef STATAT_INLINE -# define STATAT_INLINE _GL_INLINE -# endif - -_GL_ATTRIBUTE_DEPRECATED -STATAT_INLINE int -statat (int fd, char const *name, struct stat *st) -{ - return fstatat (fd, name, st, 0); -} - -_GL_ATTRIBUTE_DEPRECATED -STATAT_INLINE int -lstatat (int fd, char const *name, struct stat *st) -{ - return fstatat (fd, name, st, AT_SYMLINK_NOFOLLOW); -} - -#endif - -/* For now, there are no wrappers named laccessat or leuidaccessat, - since gnulib doesn't support faccessat(,AT_SYMLINK_NOFOLLOW) and - since access rights on symlinks are of limited utility. Likewise, - wrappers are not provided for accessat or euidaccessat, so as to - avoid dragging in -lgen on some platforms. */ - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_HEADER_OPENAT */ diff --git a/include/libgnulib/opendirat.h b/include/libgnulib/opendirat.h deleted file mode 100755 index 618fc00..0000000 --- a/include/libgnulib/opendirat.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Open a directory relative to another directory. - - Copyright (C) 2018-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -DIR *opendirat (int, char const *, int, int *) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (closedir, 1); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/os2-spawn.h b/include/libgnulib/os2-spawn.h deleted file mode 100755 index e71791f..0000000 --- a/include/libgnulib/os2-spawn.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Auxiliary functions for the creation of subprocesses. OS/2 kLIBC API. - Copyright (C) 2001, 2003-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -#ifndef _OS2_SPAWN_H -#define _OS2_SPAWN_H - -/* Duplicates a file handle, making the copy uninheritable and ensuring the - result is none of STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO. - Returns -1 for a file handle that is equivalent to closed. */ -extern int dup_safer_noinherit (int fd); - -/* Undoes the effect of TEMPFD = dup_safer_noinherit (ORIGFD); */ -extern void undup_safer_noinherit (int tempfd, int origfd); - -/* Prepares an argument vector before calling spawn(). */ -extern const char ** prepare_spawn (const char * const *argv, - char **mem_to_free); - -/* Creates a subprocess. */ -extern int spawnpvech (int mode, const char *progname, - const char * const *argv, const char * const *envp, - const char *currdir, - int stdin_fd, int stdout_fd, int stderr_fd); - -#endif /* _OS2_SPAWN_H */ diff --git a/include/libgnulib/pagealign_alloc.h b/include/libgnulib/pagealign_alloc.h deleted file mode 100755 index 5460d79..0000000 --- a/include/libgnulib/pagealign_alloc.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Memory allocation aligned to system page boundaries. - - Copyright (C) 2005, 2008, 2010-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _PAGEALIGN_ALLOC_H -#define _PAGEALIGN_ALLOC_H - -/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC, - _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NONNULL, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Free a memory block. - PTR must be a non-NULL pointer returned by pagealign_alloc or - pagealign_xalloc. */ -extern void pagealign_free (void *ptr) - _GL_ATTRIBUTE_NONNULL ((1)); - -/* Allocate a block of memory of SIZE bytes, aligned on a system page - boundary. - If SIZE is not a multiple of the system page size, it will be rounded up - to the next multiple. - Return a pointer to the start of the memory block. Upon allocation failure, - return NULL and set errno. */ -extern void *pagealign_alloc (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (pagealign_free, 1) - _GL_ATTRIBUTE_ALLOC_SIZE ((1)); - -/* Like pagealign_alloc, except it exits the program if the allocation - fails. */ -extern void *pagealign_xalloc (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (pagealign_free, 1) - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; - - -#ifdef __cplusplus -} -#endif - -#endif /* _PAGEALIGN_ALLOC_H */ diff --git a/include/libgnulib/parse-datetime.h b/include/libgnulib/parse-datetime.h deleted file mode 100755 index 784041f..0000000 --- a/include/libgnulib/parse-datetime.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Parse a string into an internal timestamp. - - Copyright (C) 1995, 1997-1998, 2003-2004, 2007, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -bool parse_datetime (struct timespec *restrict, - char const *, struct timespec const *); - -/* parse_datetime2 flag: if set, print debug/progress information to STDERR */ -#define PARSE_DATETIME_DEBUG 1 - -/* same as above, supporting additional flags */ -bool parse_datetime2 (struct timespec *restrict, - char const *, struct timespec const *, - unsigned int flags, timezone_t, char const *); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/parse-datetime.y b/include/libgnulib/parse-datetime.y deleted file mode 100755 index c27ab60..0000000 --- a/include/libgnulib/parse-datetime.y +++ /dev/null @@ -1,2439 +0,0 @@ -%{ -/* Parse a string into an internal timestamp. - - Copyright (C) 1999-2000, 2002-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Originally written by Steven M. Bellovin while - at the University of North Carolina at Chapel Hill. Later tweaked by - a couple of people on Usenet. Completely overhauled by Rich $alz - and Jim Berets in August, 1990. - - Modified by Assaf Gordon in 2016 to add - debug output. - - Modified by Paul Eggert in 1999 to do the - right thing about local DST. Also modified by Paul Eggert - in 2004 to support nanosecond-resolution - timestamps, in 2004 to support TZ strings in dates, and in 2017 and 2020 to - check for integer overflow and to support longer-than-'long' - 'time_t' and 'tv_nsec'. */ - -#include - -#include "parse-datetime.h" - -#include "idx.h" -#include "intprops.h" -#include "timespec.h" - -/* There's no need to extend the stack, so there's no need to involve - alloca. */ -#define YYSTACK_USE_ALLOCA 0 - -/* Tell Bison how much stack space is needed. 20 should be plenty for - this grammar, which is not right recursive. Beware setting it too - high, since that might cause problems on machines whose - implementations have lame stack-overflow checking. */ -#define YYMAXDEPTH 20 -#define YYINITDEPTH YYMAXDEPTH - -#include -#include -#include -#include -#include -#include -#include - -#include "gettext.h" - -#define _(str) gettext (str) - -/* Bison's skeleton tests _STDLIB_H, while some stdlib.h headers - use _STDLIB_H_ as witness. Map the latter to the one bison uses. */ -/* FIXME: this is temporary. Remove when we have a mechanism to ensure - that the version we're using is fixed, too. */ -#ifdef _STDLIB_H_ -# undef _STDLIB_H -# define _STDLIB_H 1 -#endif - -/* Shift A right by B bits portably, by dividing A by 2**B and - truncating towards minus infinity. A and B should be free of side - effects, and B should be in the range 0 <= B <= INT_BITS - 2, where - INT_BITS is the number of useful bits in an int. GNU code can - assume that INT_BITS is at least 32. - - ISO C99 says that A >> B is implementation-defined if A < 0. Some - implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift - right in the usual way when A < 0, so SHR falls back on division if - ordinary A >> B doesn't seem to be the usual signed shift. */ -#define SHR(a, b) \ - (-1 >> 1 == -1 \ - ? (a) >> (b) \ - : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) - -#define HOUR(x) (60 * 60 * (x)) - -#define STREQ(a, b) (strcmp (a, b) == 0) - -/* Verify that time_t is an integer as POSIX requires, and that every - time_t value fits in intmax_t. Please file a bug report if these - assumptions are false on your platform. */ -static_assert (TYPE_IS_INTEGER (time_t)); -static_assert (!TYPE_SIGNED (time_t) || INTMAX_MIN <= TYPE_MINIMUM (time_t)); -static_assert (TYPE_MAXIMUM (time_t) <= INTMAX_MAX); - -/* True if N is out of range for time_t. */ -static bool -time_overflow (intmax_t n) -{ - return ! ((TYPE_SIGNED (time_t) ? TYPE_MINIMUM (time_t) <= n : 0 <= n) - && n <= TYPE_MAXIMUM (time_t)); -} - -/* Convert a possibly-signed character to an unsigned character. This is - a bit safer than casting to unsigned char, since it catches some type - errors that the cast doesn't. */ -static unsigned char to_uchar (char ch) { return ch; } - -static void _GL_ATTRIBUTE_FORMAT ((__printf__, 1, 2)) -dbg_printf (char const *msg, ...) -{ - va_list args; - /* TODO: use gnulib's 'program_name' instead? */ - fputs ("date: ", stderr); - - va_start (args, msg); - vfprintf (stderr, msg, args); - va_end (args); -} - - -/* An integer value, and the number of digits in its textual - representation. */ -typedef struct -{ - bool negative; - intmax_t value; - idx_t digits; -} textint; - -/* An entry in the lexical lookup table. */ -typedef struct -{ - char const *name; - int type; - int value; -} table; - -/* Meridian: am, pm, or 24-hour style. */ -enum { MERam, MERpm, MER24 }; - -/* Maximum length of a time zone abbreviation, plus 1. */ -enum { TIME_ZONE_BUFSIZE = INT_STRLEN_BOUND (intmax_t) + sizeof ":MM:SS" }; - -/* A reasonable upper bound for the buffer used in debug output. */ -enum { DBGBUFSIZE = 100 }; - -enum { BILLION = 1000000000, LOG10_BILLION = 9 }; - -/* Relative times. */ -typedef struct -{ - /* Relative year, month, day, hour, minutes, seconds, and nanoseconds. */ - intmax_t year; - intmax_t month; - intmax_t day; - intmax_t hour; - intmax_t minutes; - intmax_t seconds; - int ns; -} relative_time; - -#if HAVE_COMPOUND_LITERALS -# define RELATIVE_TIME_0 ((relative_time) { 0, 0, 0, 0, 0, 0, 0 }) -#else -static relative_time const RELATIVE_TIME_0; -#endif - -/* Information passed to and from the parser. */ -typedef struct -{ - /* The input string remaining to be parsed. */ - const char *input; - - /* N, if this is the Nth Tuesday. */ - intmax_t day_ordinal; - - /* Day of week; Sunday is 0. */ - int day_number; - - /* tm_isdst flag for the local zone. */ - int local_isdst; - - /* Time zone, in seconds east of UT. */ - int time_zone; - - /* Style used for time. */ - int meridian; - - /* Gregorian year, month, day, hour, minutes, seconds, and nanoseconds. */ - textint year; - intmax_t month; - intmax_t day; - intmax_t hour; - intmax_t minutes; - struct timespec seconds; /* includes nanoseconds */ - - /* Relative year, month, day, hour, minutes, seconds, and nanoseconds. */ - relative_time rel; - - /* Presence or counts of nonterminals of various flavors parsed so far. */ - bool timespec_seen; - bool rels_seen; - idx_t dates_seen; - idx_t days_seen; - idx_t J_zones_seen; - idx_t local_zones_seen; - idx_t dsts_seen; - idx_t times_seen; - idx_t zones_seen; - bool year_seen; - -#ifdef GNULIB_PARSE_DATETIME2 - /* Print debugging output to stderr. */ - bool parse_datetime_debug; -#endif - - /* Which of the 'seen' parts have been printed when debugging. */ - bool debug_dates_seen; - bool debug_days_seen; - bool debug_local_zones_seen; - bool debug_times_seen; - bool debug_zones_seen; - bool debug_year_seen; - - /* The user specified explicit ordinal day value. */ - bool debug_ordinal_day_seen; - - /* Table of local time zone abbreviations, terminated by a null entry. */ - table local_time_zone_table[3]; - -#if !HAVE_STRUCT_TM_TM_ZONE - /* The abbreviations in LOCAL_TIME_ZONE_TABLE. */ - char tz_abbr[2][TIME_ZONE_BUFSIZE]; -#endif -} parser_control; - -static bool -debugging (parser_control const *pc) -{ -#ifdef GNULIB_PARSE_DATETIME2 - return pc->parse_datetime_debug; -#else - return false; -#endif -} - -union YYSTYPE; -static int yylex (union YYSTYPE *, parser_control *); -static void yyerror (parser_control const *, char const *); -static bool time_zone_hhmm (parser_control *, textint, intmax_t); - -/* Extract into *PC any date and time info from a string of digits - of the form e.g., YYYYMMDD, YYMMDD, HHMM, HH (and sometimes YYY, - YYYY, ...). */ -static void -digits_to_date_time (parser_control *pc, textint text_int) -{ - if (pc->dates_seen && ! pc->year.digits - && ! pc->rels_seen && (pc->times_seen || 2 < text_int.digits)) - { - pc->year_seen = true; - pc->year = text_int; - } - else - { - if (4 < text_int.digits) - { - pc->dates_seen++; - pc->day = text_int.value % 100; - pc->month = (text_int.value / 100) % 100; - pc->year.value = text_int.value / 10000; - pc->year.digits = text_int.digits - 4; - } - else - { - pc->times_seen++; - if (text_int.digits <= 2) - { - pc->hour = text_int.value; - pc->minutes = 0; - } - else - { - pc->hour = text_int.value / 100; - pc->minutes = text_int.value % 100; - } - pc->seconds = (struct timespec) {0}; - pc->meridian = MER24; - } - } -} - -/* Increment PC->rel by FACTOR * REL (FACTOR is 1 or -1). Return true - if successful, false if an overflow occurred. */ -static bool -apply_relative_time (parser_control *pc, relative_time rel, int factor) -{ - if (factor < 0 - ? (ckd_sub (&pc->rel.ns, pc->rel.ns, rel.ns) - | ckd_sub (&pc->rel.seconds, pc->rel.seconds, rel.seconds) - | ckd_sub (&pc->rel.minutes, pc->rel.minutes, rel.minutes) - | ckd_sub (&pc->rel.hour, pc->rel.hour, rel.hour) - | ckd_sub (&pc->rel.day, pc->rel.day, rel.day) - | ckd_sub (&pc->rel.month, pc->rel.month, rel.month) - | ckd_sub (&pc->rel.year, pc->rel.year, rel.year)) - : (ckd_add (&pc->rel.ns, pc->rel.ns, rel.ns) - | ckd_add (&pc->rel.seconds, pc->rel.seconds, rel.seconds) - | ckd_add (&pc->rel.minutes, pc->rel.minutes, rel.minutes) - | ckd_add (&pc->rel.hour, pc->rel.hour, rel.hour) - | ckd_add (&pc->rel.day, pc->rel.day, rel.day) - | ckd_add (&pc->rel.month, pc->rel.month, rel.month) - | ckd_add (&pc->rel.year, pc->rel.year, rel.year))) - return false; - pc->rels_seen = true; - return true; -} - -/* Set PC-> hour, minutes, seconds and nanoseconds members from arguments. */ -static void -set_hhmmss (parser_control *pc, intmax_t hour, intmax_t minutes, - time_t sec, int nsec) -{ - pc->hour = hour; - pc->minutes = minutes; - pc->seconds = (struct timespec) { .tv_sec = sec, .tv_nsec = nsec }; -} - -/* Return a textual representation of the day ordinal/number values - in the parser_control struct (e.g., "last wed", "this tues", "thu"). */ -static const char * -str_days (parser_control *pc, char *buffer, int n) -{ - /* TODO: use relative_time_table for reverse lookup. */ - static char const ordinal_values[][11] = { - "last", - "this", - "next/first", - "(SECOND)", /* SECOND is commented out in relative_time_table. */ - "third", - "fourth", - "fifth", - "sixth", - "seventh", - "eight", - "ninth", - "tenth", - "eleventh", - "twelfth" - }; - - static char const days_values[][4] = { - "Sun", - "Mon", - "Tue", - "Wed", - "Thu", - "Fri", - "Sat" - }; - - int len; - - /* Don't add an ordinal prefix if the user didn't specify it - (e.g., "this wed" vs "wed"). */ - if (pc->debug_ordinal_day_seen) - { - /* Use word description if possible (e.g., -1 = last, 3 = third). */ - len = (-1 <= pc->day_ordinal && pc->day_ordinal <= 12 - ? snprintf (buffer, n, "%s", ordinal_values[pc->day_ordinal + 1]) - : snprintf (buffer, n, "%"PRIdMAX, pc->day_ordinal)); - } - else - { - buffer[0] = '\0'; - len = 0; - } - - /* Add the day name */ - if (0 <= pc->day_number && pc->day_number <= 6 && 0 <= len && len < n) - snprintf (buffer + len, n - len, &" %s"[len == 0], - days_values[pc->day_number]); - else - { - /* invalid day_number value - should never happen */ - } - return buffer; -} - -/* Convert a time zone to its string representation. */ - -static char const * -time_zone_str (int time_zone, char time_zone_buf[TIME_ZONE_BUFSIZE]) -{ - char *p = time_zone_buf; - char sign = time_zone < 0 ? '-' : '+'; - int hour = abs (time_zone / (60 * 60)); - p += sprintf (time_zone_buf, "%c%02d", sign, hour); - int offset_from_hour = abs (time_zone % (60 * 60)); - if (offset_from_hour != 0) - { - int mm = offset_from_hour / 60; - int ss = offset_from_hour % 60; - *p++ = ':'; - *p++ = '0' + mm / 10; - *p++ = '0' + mm % 10; - if (ss) - { - *p++ = ':'; - *p++ = '0' + ss / 10; - *p++ = '0' + ss % 10; - } - *p = '\0'; - } - return time_zone_buf; -} - -/* debugging: print the current time in the parser_control structure. - The parser will increment "*_seen" members for those which were parsed. - This function will print only newly seen parts. */ -static void -debug_print_current_time (char const *item, parser_control *pc) -{ - bool space = false; - - if (!debugging (pc)) - return; - - /* no newline, more items printed below */ - dbg_printf (_("parsed %s part: "), item); - - if (pc->dates_seen && !pc->debug_dates_seen) - { - /*TODO: use pc->year.negative? */ - fprintf (stderr, "(Y-M-D) %04"PRIdMAX"-%02"PRIdMAX"-%02"PRIdMAX, - pc->year.value, pc->month, pc->day); - pc->debug_dates_seen = true; - space = true; - } - - if (pc->year_seen != pc->debug_year_seen) - { - if (space) - fputc (' ', stderr); - fprintf (stderr, _("year: %04"PRIdMAX), pc->year.value); - - pc->debug_year_seen = pc->year_seen; - space = true; - } - - if (pc->times_seen && !pc->debug_times_seen) - { - intmax_t sec = pc->seconds.tv_sec; - fprintf (stderr, &" %02"PRIdMAX":%02"PRIdMAX":%02"PRIdMAX[!space], - pc->hour, pc->minutes, sec); - if (pc->seconds.tv_nsec != 0) - { - int nsec = pc->seconds.tv_nsec; - fprintf (stderr, ".%09d", nsec); - } - if (pc->meridian == MERpm) - fputs ("pm", stderr); - - pc->debug_times_seen = true; - space = true; - } - - if (pc->days_seen && !pc->debug_days_seen) - { - if (space) - fputc (' ', stderr); - char tmp[DBGBUFSIZE]; - fprintf (stderr, _("%s (day ordinal=%"PRIdMAX" number=%d)"), - str_days (pc, tmp, sizeof tmp), - pc->day_ordinal, pc->day_number); - pc->debug_days_seen = true; - space = true; - } - - /* local zone strings only change the DST settings, - not the timezone value. If seen, inform about the DST. */ - if (pc->local_zones_seen && !pc->debug_local_zones_seen) - { - fprintf (stderr, &" isdst=%d%s"[!space], - pc->local_isdst, pc->dsts_seen ? " DST" : ""); - pc->debug_local_zones_seen = true; - space = true; - } - - if (pc->zones_seen && !pc->debug_zones_seen) - { - char time_zone_buf[TIME_ZONE_BUFSIZE]; - fprintf (stderr, &" UTC%s"[!space], - time_zone_str (pc->time_zone, time_zone_buf)); - pc->debug_zones_seen = true; - space = true; - } - - if (pc->timespec_seen) - { - intmax_t sec = pc->seconds.tv_sec; - if (space) - fputc (' ', stderr); - fprintf (stderr, _("number of seconds: %"PRIdMAX), sec); - } - - fputc ('\n', stderr); -} - -/* Debugging: print the current relative values. */ - -static bool -print_rel_part (bool space, intmax_t val, char const *name) -{ - if (val == 0) - return space; - fprintf (stderr, &" %+"PRIdMAX" %s"[!space], val, name); - return true; -} - -static void -debug_print_relative_time (char const *item, parser_control const *pc) -{ - bool space = false; - - if (!debugging (pc)) - return; - - /* no newline, more items printed below */ - dbg_printf (_("parsed %s part: "), item); - - if (pc->rel.year == 0 && pc->rel.month == 0 && pc->rel.day == 0 - && pc->rel.hour == 0 && pc->rel.minutes == 0 && pc->rel.seconds == 0 - && pc->rel.ns == 0) - { - /* Special case: relative time of this/today/now */ - fputs (_("today/this/now\n"), stderr); - return; - } - - space = print_rel_part (space, pc->rel.year, "year(s)"); - space = print_rel_part (space, pc->rel.month, "month(s)"); - space = print_rel_part (space, pc->rel.day, "day(s)"); - space = print_rel_part (space, pc->rel.hour, "hour(s)"); - space = print_rel_part (space, pc->rel.minutes, "minutes"); - space = print_rel_part (space, pc->rel.seconds, "seconds"); - print_rel_part (space, pc->rel.ns, "nanoseconds"); - - fputc ('\n', stderr); -} - - - -%} - -/* We want a reentrant parser, even if the TZ manipulation and the calls to - localtime and gmtime are not reentrant. */ -%define api.pure -%parse-param { parser_control *pc } -%lex-param { parser_control *pc } - -/* This grammar has 31 shift/reduce conflicts. */ -%expect 31 - -%union -{ - intmax_t intval; - textint textintval; - struct timespec timespec; - relative_time rel; -} - -%token tAGO -%token tDST - -%token tYEAR_UNIT tMONTH_UNIT tHOUR_UNIT tMINUTE_UNIT tSEC_UNIT -%token tDAY_UNIT tDAY_SHIFT - -%token tDAY tDAYZONE tLOCAL_ZONE tMERIDIAN -%token tMONTH tORDINAL tZONE - -%token tSNUMBER tUNUMBER -%token tSDECIMAL_NUMBER tUDECIMAL_NUMBER - -%type o_colon_minutes -%type seconds signed_seconds unsigned_seconds - -%type relunit relunit_snumber dayshift - -%% - -spec: - timespec - | items - ; - -timespec: - '@' seconds - { - pc->seconds = $2; - pc->timespec_seen = true; - debug_print_current_time (_("number of seconds"), pc); - } - ; - -items: - /* empty */ - | items item - ; - -item: - datetime - { - pc->times_seen++; pc->dates_seen++; - debug_print_current_time (_("datetime"), pc); - } - | time - { - pc->times_seen++; - debug_print_current_time (_("time"), pc); - } - | local_zone - { - pc->local_zones_seen++; - debug_print_current_time (_("local_zone"), pc); - } - | 'J' - { - pc->J_zones_seen++; - debug_print_current_time ("J", pc); - } - | zone - { - pc->zones_seen++; - debug_print_current_time (_("zone"), pc); - } - | date - { - pc->dates_seen++; - debug_print_current_time (_("date"), pc); - } - | day - { - pc->days_seen++; - debug_print_current_time (_("day"), pc); - } - | rel - { - debug_print_relative_time (_("relative"), pc); - } - | number - { - debug_print_current_time (_("number"), pc); - } - | hybrid - { - debug_print_relative_time (_("hybrid"), pc); - } - ; - -datetime: - iso_8601_datetime - ; - -iso_8601_datetime: - iso_8601_date 'T' iso_8601_time - ; - -time: - tUNUMBER tMERIDIAN - { - set_hhmmss (pc, $1.value, 0, 0, 0); - pc->meridian = $2; - } - | tUNUMBER ':' tUNUMBER tMERIDIAN - { - set_hhmmss (pc, $1.value, $3.value, 0, 0); - pc->meridian = $4; - } - | tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN - { - set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); - pc->meridian = $6; - } - | iso_8601_time - ; - -iso_8601_time: - tUNUMBER zone_offset - { - set_hhmmss (pc, $1.value, 0, 0, 0); - pc->meridian = MER24; - } - | tUNUMBER ':' tUNUMBER o_zone_offset - { - set_hhmmss (pc, $1.value, $3.value, 0, 0); - pc->meridian = MER24; - } - | tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset - { - set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec); - pc->meridian = MER24; - } - ; - -o_zone_offset: - /* empty */ - | zone_offset - ; - -zone_offset: - tSNUMBER o_colon_minutes - { - pc->zones_seen++; - if (! time_zone_hhmm (pc, $1, $2)) YYABORT; - } - ; - -/* Local zone strings affect only the DST setting, and take effect - only if the current TZ setting is relevant. - - Example 1: - 'EEST' is parsed as tLOCAL_ZONE, as it relates to the effective TZ: - TZ='Europe/Helsinki' date -d '2016-06-30 EEST' - - Example 2: - 'EEST' is parsed as tDAYZONE: - TZ='Asia/Tokyo' date -d '2016-06-30 EEST' - - This is implemented by probing the next three calendar quarters - of the effective timezone and looking for DST changes - - if found, the timezone name (EEST) is inserted into - the lexical lookup table with type tLOCAL_ZONE. - (Search for 'quarter' comment in 'parse_datetime2'.) -*/ -local_zone: - tLOCAL_ZONE - { pc->local_isdst = $1; } - | tLOCAL_ZONE tDST - { - pc->local_isdst = 1; - pc->dsts_seen++; - } - ; - -/* Note 'T' is a special case, as it is used as the separator in ISO - 8601 date and time of day representation. */ -zone: - tZONE - { pc->time_zone = $1; } - | 'T' - { pc->time_zone = -HOUR (7); } - | tZONE relunit_snumber - { pc->time_zone = $1; - if (! apply_relative_time (pc, $2, 1)) YYABORT; - debug_print_relative_time (_("relative"), pc); - } - | 'T' relunit_snumber - { pc->time_zone = -HOUR (7); - if (! apply_relative_time (pc, $2, 1)) YYABORT; - debug_print_relative_time (_("relative"), pc); - } - | tZONE tSNUMBER o_colon_minutes - { if (! time_zone_hhmm (pc, $2, $3)) YYABORT; - if (ckd_add (&pc->time_zone, pc->time_zone, $1)) YYABORT; } - | tDAYZONE - { pc->time_zone = $1 + 60 * 60; } - | tZONE tDST - { pc->time_zone = $1 + 60 * 60; } - ; - -day: - tDAY - { - pc->day_ordinal = 0; - pc->day_number = $1; - } - | tDAY ',' - { - pc->day_ordinal = 0; - pc->day_number = $1; - } - | tORDINAL tDAY - { - pc->day_ordinal = $1; - pc->day_number = $2; - pc->debug_ordinal_day_seen = true; - } - | tUNUMBER tDAY - { - pc->day_ordinal = $1.value; - pc->day_number = $2; - pc->debug_ordinal_day_seen = true; - } - ; - -date: - tUNUMBER '/' tUNUMBER - { - pc->month = $1.value; - pc->day = $3.value; - } - | tUNUMBER '/' tUNUMBER '/' tUNUMBER - { - /* Interpret as YYYY/MM/DD if the first value has 4 or more digits, - otherwise as MM/DD/YY. - The goal in recognizing YYYY/MM/DD is solely to support legacy - machine-generated dates like those in an RCS log listing. If - you want portability, use the ISO 8601 format. */ - if (4 <= $1.digits) - { - if (debugging (pc)) - { - intmax_t digits = $1.digits; - dbg_printf (_("warning: value %"PRIdMAX" has %"PRIdMAX" digits. " - "Assuming YYYY/MM/DD\n"), - $1.value, digits); - } - - pc->year = $1; - pc->month = $3.value; - pc->day = $5.value; - } - else - { - if (debugging (pc)) - dbg_printf (_("warning: value %"PRIdMAX" has less than 4 digits. " - "Assuming MM/DD/YY[YY]\n"), - $1.value); - - pc->month = $1.value; - pc->day = $3.value; - pc->year = $5; - } - } - | tUNUMBER tMONTH tSNUMBER - { - /* E.g., 17-JUN-1992. */ - pc->day = $1.value; - pc->month = $2; - if (ckd_sub (&pc->year.value, 0, $3.value)) YYABORT; - pc->year.digits = $3.digits; - } - | tMONTH tSNUMBER tSNUMBER - { - /* E.g., JUN-17-1992. */ - pc->month = $1; - if (ckd_sub (&pc->day, 0, $2.value)) YYABORT; - if (ckd_sub (&pc->year.value, 0, $3.value)) YYABORT; - pc->year.digits = $3.digits; - } - | tMONTH tUNUMBER - { - pc->month = $1; - pc->day = $2.value; - } - | tMONTH tUNUMBER ',' tUNUMBER - { - pc->month = $1; - pc->day = $2.value; - pc->year = $4; - } - | tUNUMBER tMONTH - { - pc->day = $1.value; - pc->month = $2; - } - | tUNUMBER tMONTH tUNUMBER - { - pc->day = $1.value; - pc->month = $2; - pc->year = $3; - } - | iso_8601_date - ; - -iso_8601_date: - tUNUMBER tSNUMBER tSNUMBER - { - /* ISO 8601 format. YYYY-MM-DD. */ - pc->year = $1; - if (ckd_sub (&pc->month, 0, $2.value)) YYABORT; - if (ckd_sub (&pc->day, 0, $3.value)) YYABORT; - } - ; - -rel: - relunit tAGO - { if (! apply_relative_time (pc, $1, $2)) YYABORT; } - | relunit - { if (! apply_relative_time (pc, $1, 1)) YYABORT; } - | dayshift - { if (! apply_relative_time (pc, $1, 1)) YYABORT; } - ; - -relunit: - tORDINAL tYEAR_UNIT - { $$ = RELATIVE_TIME_0; $$.year = $1; } - | tUNUMBER tYEAR_UNIT - { $$ = RELATIVE_TIME_0; $$.year = $1.value; } - | tYEAR_UNIT - { $$ = RELATIVE_TIME_0; $$.year = 1; } - | tORDINAL tMONTH_UNIT - { $$ = RELATIVE_TIME_0; $$.month = $1; } - | tUNUMBER tMONTH_UNIT - { $$ = RELATIVE_TIME_0; $$.month = $1.value; } - | tMONTH_UNIT - { $$ = RELATIVE_TIME_0; $$.month = 1; } - | tORDINAL tDAY_UNIT - { $$ = RELATIVE_TIME_0; - if (ckd_mul (&$$.day, $1, $2)) YYABORT; } - | tUNUMBER tDAY_UNIT - { $$ = RELATIVE_TIME_0; - if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } - | tDAY_UNIT - { $$ = RELATIVE_TIME_0; $$.day = $1; } - | tORDINAL tHOUR_UNIT - { $$ = RELATIVE_TIME_0; $$.hour = $1; } - | tUNUMBER tHOUR_UNIT - { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } - | tHOUR_UNIT - { $$ = RELATIVE_TIME_0; $$.hour = 1; } - | tORDINAL tMINUTE_UNIT - { $$ = RELATIVE_TIME_0; $$.minutes = $1; } - | tUNUMBER tMINUTE_UNIT - { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } - | tMINUTE_UNIT - { $$ = RELATIVE_TIME_0; $$.minutes = 1; } - | tORDINAL tSEC_UNIT - { $$ = RELATIVE_TIME_0; $$.seconds = $1; } - | tUNUMBER tSEC_UNIT - { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } - | tSDECIMAL_NUMBER tSEC_UNIT - { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } - | tUDECIMAL_NUMBER tSEC_UNIT - { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; } - | tSEC_UNIT - { $$ = RELATIVE_TIME_0; $$.seconds = 1; } - | relunit_snumber - ; - -relunit_snumber: - tSNUMBER tYEAR_UNIT - { $$ = RELATIVE_TIME_0; $$.year = $1.value; } - | tSNUMBER tMONTH_UNIT - { $$ = RELATIVE_TIME_0; $$.month = $1.value; } - | tSNUMBER tDAY_UNIT - { $$ = RELATIVE_TIME_0; - if (ckd_mul (&$$.day, $1.value, $2)) YYABORT; } - | tSNUMBER tHOUR_UNIT - { $$ = RELATIVE_TIME_0; $$.hour = $1.value; } - | tSNUMBER tMINUTE_UNIT - { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; } - | tSNUMBER tSEC_UNIT - { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; } - ; - -dayshift: - tDAY_SHIFT - { $$ = RELATIVE_TIME_0; $$.day = $1; } - ; - -seconds: signed_seconds | unsigned_seconds; - -signed_seconds: - tSDECIMAL_NUMBER - | tSNUMBER - { if (time_overflow ($1.value)) YYABORT; - $$ = (struct timespec) { .tv_sec = $1.value }; } - ; - -unsigned_seconds: - tUDECIMAL_NUMBER - | tUNUMBER - { if (time_overflow ($1.value)) YYABORT; - $$ = (struct timespec) { .tv_sec = $1.value }; } - ; - -number: - tUNUMBER - { digits_to_date_time (pc, $1); } - ; - -hybrid: - tUNUMBER relunit_snumber - { - /* Hybrid all-digit and relative offset, so that we accept e.g., - "YYYYMMDD +N days" as well as "YYYYMMDD N days". */ - digits_to_date_time (pc, $1); - if (! apply_relative_time (pc, $2, 1)) YYABORT; - } - ; - -o_colon_minutes: - /* empty */ - { $$ = -1; } - | ':' tUNUMBER - { $$ = $2.value; } - ; - -%% - -static table const meridian_table[] = -{ - { "AM", tMERIDIAN, MERam }, - { "A.M.", tMERIDIAN, MERam }, - { "PM", tMERIDIAN, MERpm }, - { "P.M.", tMERIDIAN, MERpm }, - { NULL, 0, 0 } -}; - -static table const dst_table[] = -{ - { "DST", tDST, 0 } -}; - -static table const month_and_day_table[] = -{ - { "JANUARY", tMONTH, 1 }, - { "FEBRUARY", tMONTH, 2 }, - { "MARCH", tMONTH, 3 }, - { "APRIL", tMONTH, 4 }, - { "MAY", tMONTH, 5 }, - { "JUNE", tMONTH, 6 }, - { "JULY", tMONTH, 7 }, - { "AUGUST", tMONTH, 8 }, - { "SEPTEMBER",tMONTH, 9 }, - { "SEPT", tMONTH, 9 }, - { "OCTOBER", tMONTH, 10 }, - { "NOVEMBER", tMONTH, 11 }, - { "DECEMBER", tMONTH, 12 }, - { "SUNDAY", tDAY, 0 }, - { "MONDAY", tDAY, 1 }, - { "TUESDAY", tDAY, 2 }, - { "TUES", tDAY, 2 }, - { "WEDNESDAY",tDAY, 3 }, - { "WEDNES", tDAY, 3 }, - { "THURSDAY", tDAY, 4 }, - { "THUR", tDAY, 4 }, - { "THURS", tDAY, 4 }, - { "FRIDAY", tDAY, 5 }, - { "SATURDAY", tDAY, 6 }, - { NULL, 0, 0 } -}; - -static table const time_units_table[] = -{ - { "YEAR", tYEAR_UNIT, 1 }, - { "MONTH", tMONTH_UNIT, 1 }, - { "FORTNIGHT",tDAY_UNIT, 14 }, - { "WEEK", tDAY_UNIT, 7 }, - { "DAY", tDAY_UNIT, 1 }, - { "HOUR", tHOUR_UNIT, 1 }, - { "MINUTE", tMINUTE_UNIT, 1 }, - { "MIN", tMINUTE_UNIT, 1 }, - { "SECOND", tSEC_UNIT, 1 }, - { "SEC", tSEC_UNIT, 1 }, - { NULL, 0, 0 } -}; - -/* Assorted relative-time words. */ -static table const relative_time_table[] = -{ - { "TOMORROW", tDAY_SHIFT, 1 }, - { "YESTERDAY",tDAY_SHIFT, -1 }, - { "TODAY", tDAY_SHIFT, 0 }, - { "NOW", tDAY_SHIFT, 0 }, - { "LAST", tORDINAL, -1 }, - { "THIS", tORDINAL, 0 }, - { "NEXT", tORDINAL, 1 }, - { "FIRST", tORDINAL, 1 }, -/*{ "SECOND", tORDINAL, 2 }, */ - { "THIRD", tORDINAL, 3 }, - { "FOURTH", tORDINAL, 4 }, - { "FIFTH", tORDINAL, 5 }, - { "SIXTH", tORDINAL, 6 }, - { "SEVENTH", tORDINAL, 7 }, - { "EIGHTH", tORDINAL, 8 }, - { "NINTH", tORDINAL, 9 }, - { "TENTH", tORDINAL, 10 }, - { "ELEVENTH", tORDINAL, 11 }, - { "TWELFTH", tORDINAL, 12 }, - { "AGO", tAGO, -1 }, - { "HENCE", tAGO, 1 }, - { NULL, 0, 0 } -}; - -/* The universal time zone table. These labels can be used even for - timestamps that would not otherwise be valid, e.g., GMT timestamps - oin London during summer. */ -static table const universal_time_zone_table[] = -{ - { "GMT", tZONE, HOUR ( 0) }, /* Greenwich Mean */ - { "UT", tZONE, HOUR ( 0) }, /* Universal (Coordinated) */ - { "UTC", tZONE, HOUR ( 0) }, - { NULL, 0, 0 } -}; - -/* The time zone table. This table is necessarily incomplete, as time - zone abbreviations are ambiguous; e.g., Australians interpret "EST" - as Eastern time in Australia, not as US Eastern Standard Time. - You cannot rely on parse_datetime to handle arbitrary time zone - abbreviations; use numeric abbreviations like "-0500" instead. */ -static table const time_zone_table[] = -{ - { "WET", tZONE, HOUR ( 0) }, /* Western European */ - { "WEST", tDAYZONE, HOUR ( 0) }, /* Western European Summer */ - { "BST", tDAYZONE, HOUR ( 0) }, /* British Summer */ - { "ART", tZONE, -HOUR ( 3) }, /* Argentina */ - { "BRT", tZONE, -HOUR ( 3) }, /* Brazil */ - { "BRST", tDAYZONE, -HOUR ( 3) }, /* Brazil Summer */ - { "NST", tZONE, -(HOUR ( 3) + 30 * 60) }, /* Newfoundland Standard */ - { "NDT", tDAYZONE,-(HOUR ( 3) + 30 * 60) }, /* Newfoundland Daylight */ - { "AST", tZONE, -HOUR ( 4) }, /* Atlantic Standard */ - { "ADT", tDAYZONE, -HOUR ( 4) }, /* Atlantic Daylight */ - { "CLT", tZONE, -HOUR ( 4) }, /* Chile */ - { "CLST", tDAYZONE, -HOUR ( 4) }, /* Chile Summer */ - { "EST", tZONE, -HOUR ( 5) }, /* Eastern Standard */ - { "EDT", tDAYZONE, -HOUR ( 5) }, /* Eastern Daylight */ - { "CST", tZONE, -HOUR ( 6) }, /* Central Standard */ - { "CDT", tDAYZONE, -HOUR ( 6) }, /* Central Daylight */ - { "MST", tZONE, -HOUR ( 7) }, /* Mountain Standard */ - { "MDT", tDAYZONE, -HOUR ( 7) }, /* Mountain Daylight */ - { "PST", tZONE, -HOUR ( 8) }, /* Pacific Standard */ - { "PDT", tDAYZONE, -HOUR ( 8) }, /* Pacific Daylight */ - { "AKST", tZONE, -HOUR ( 9) }, /* Alaska Standard */ - { "AKDT", tDAYZONE, -HOUR ( 9) }, /* Alaska Daylight */ - { "HST", tZONE, -HOUR (10) }, /* Hawaii Standard */ - { "HAST", tZONE, -HOUR (10) }, /* Hawaii-Aleutian Standard */ - { "HADT", tDAYZONE, -HOUR (10) }, /* Hawaii-Aleutian Daylight */ - { "SST", tZONE, -HOUR (12) }, /* Samoa Standard */ - { "WAT", tZONE, HOUR ( 1) }, /* West Africa */ - { "CET", tZONE, HOUR ( 1) }, /* Central European */ - { "CEST", tDAYZONE, HOUR ( 1) }, /* Central European Summer */ - { "MET", tZONE, HOUR ( 1) }, /* Middle European */ - { "MEZ", tZONE, HOUR ( 1) }, /* Middle European */ - { "MEST", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ - { "MESZ", tDAYZONE, HOUR ( 1) }, /* Middle European Summer */ - { "EET", tZONE, HOUR ( 2) }, /* Eastern European */ - { "EEST", tDAYZONE, HOUR ( 2) }, /* Eastern European Summer */ - { "CAT", tZONE, HOUR ( 2) }, /* Central Africa */ - { "SAST", tZONE, HOUR ( 2) }, /* South Africa Standard */ - { "EAT", tZONE, HOUR ( 3) }, /* East Africa */ - { "MSK", tZONE, HOUR ( 3) }, /* Moscow */ - { "MSD", tDAYZONE, HOUR ( 3) }, /* Moscow Daylight */ - { "IST", tZONE, (HOUR ( 5) + 30 * 60) }, /* India Standard */ - { "SGT", tZONE, HOUR ( 8) }, /* Singapore */ - { "KST", tZONE, HOUR ( 9) }, /* Korea Standard */ - { "JST", tZONE, HOUR ( 9) }, /* Japan Standard */ - { "GST", tZONE, HOUR (10) }, /* Guam Standard */ - { "NZST", tZONE, HOUR (12) }, /* New Zealand Standard */ - { "NZDT", tDAYZONE, HOUR (12) }, /* New Zealand Daylight */ - { NULL, 0, 0 } -}; - -/* Military time zone table. - - RFC 822 got these backwards, but RFC 5322 makes the incorrect - treatment optional, so do them the right way here. - - 'J' is special, as it is local time. - 'T' is also special, as it is the separator in ISO - 8601 date and time of day representation. */ -static table const military_table[] = -{ - { "A", tZONE, HOUR ( 1) }, - { "B", tZONE, HOUR ( 2) }, - { "C", tZONE, HOUR ( 3) }, - { "D", tZONE, HOUR ( 4) }, - { "E", tZONE, HOUR ( 5) }, - { "F", tZONE, HOUR ( 6) }, - { "G", tZONE, HOUR ( 7) }, - { "H", tZONE, HOUR ( 8) }, - { "I", tZONE, HOUR ( 9) }, - { "J", 'J', 0 }, - { "K", tZONE, HOUR (10) }, - { "L", tZONE, HOUR (11) }, - { "M", tZONE, HOUR (12) }, - { "N", tZONE, -HOUR ( 1) }, - { "O", tZONE, -HOUR ( 2) }, - { "P", tZONE, -HOUR ( 3) }, - { "Q", tZONE, -HOUR ( 4) }, - { "R", tZONE, -HOUR ( 5) }, - { "S", tZONE, -HOUR ( 6) }, - { "T", 'T', 0 }, - { "U", tZONE, -HOUR ( 8) }, - { "V", tZONE, -HOUR ( 9) }, - { "W", tZONE, -HOUR (10) }, - { "X", tZONE, -HOUR (11) }, - { "Y", tZONE, -HOUR (12) }, - { "Z", tZONE, HOUR ( 0) }, - { NULL, 0, 0 } -}; - - - -/* Convert a time zone expressed as HH:MM into an integer count of - seconds. If MM is negative, then S is of the form HHMM and needs - to be picked apart; otherwise, S is of the form HH. As specified in - https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03, allow - only valid TZ range, and consider first two digits as hours, if no - minutes specified. Return true if successful. */ - -static bool -time_zone_hhmm (parser_control *pc, textint s, intmax_t mm) -{ - intmax_t n_minutes; - bool overflow = false; - - /* If the length of S is 1 or 2 and no minutes are specified, - interpret it as a number of hours. */ - if (s.digits <= 2 && mm < 0) - s.value *= 100; - - if (mm < 0) - n_minutes = (s.value / 100) * 60 + s.value % 100; - else - { - overflow |= ckd_mul (&n_minutes, s.value, 60); - overflow |= (s.negative - ? ckd_sub (&n_minutes, n_minutes, mm) - : ckd_add (&n_minutes, n_minutes, mm)); - } - - if (overflow || ! (-24 * 60 <= n_minutes && n_minutes <= 24 * 60)) - return false; - pc->time_zone = n_minutes * 60; - return true; -} - -static int -to_hour (intmax_t hours, int meridian) -{ - switch (meridian) - { - default: /* Pacify GCC. */ - case MER24: - return 0 <= hours && hours < 24 ? hours : -1; - case MERam: - return 0 < hours && hours < 12 ? hours : hours == 12 ? 0 : -1; - case MERpm: - return 0 < hours && hours < 12 ? hours + 12 : hours == 12 ? 12 : -1; - } -} - -enum { TM_YEAR_BASE = 1900 }; -enum { TM_YEAR_BUFSIZE = INT_BUFSIZE_BOUND (int) + 1 }; - -/* Convert TM_YEAR, a year minus 1900, to a string that is numerically - correct even if subtracting 1900 would overflow. */ - -static char const * -tm_year_str (int tm_year, char buf[TM_YEAR_BUFSIZE]) -{ - static_assert (TM_YEAR_BASE % 100 == 0); - sprintf (buf, &"-%02d%02d"[-TM_YEAR_BASE <= tm_year], - abs (tm_year / 100 + TM_YEAR_BASE / 100), - abs (tm_year % 100)); - return buf; -} - -/* Convert a text year number to a year minus 1900, working correctly - even if the input is in the range INT_MAX .. INT_MAX + 1900 - 1. */ - -static bool -to_tm_year (textint textyear, bool debug, int *tm_year) -{ - intmax_t year = textyear.value; - - /* XPG4 suggests that years 00-68 map to 2000-2068, and - years 69-99 map to 1969-1999. */ - if (0 <= year && textyear.digits == 2) - { - year += year < 69 ? 2000 : 1900; - if (debug) - dbg_printf (_("warning: adjusting year value %"PRIdMAX - " to %"PRIdMAX"\n"), - textyear.value, year); - } - - if (year < 0 - ? ckd_sub (tm_year, -TM_YEAR_BASE, year) - : ckd_sub (tm_year, year, TM_YEAR_BASE)) - { - if (debug) - dbg_printf (_("error: out-of-range year %"PRIdMAX"\n"), year); - return false; - } - - return true; -} - -static table const * _GL_ATTRIBUTE_PURE -lookup_zone (parser_control const *pc, char const *name) -{ - table const *tp; - - for (tp = universal_time_zone_table; tp->name; tp++) - if (strcmp (name, tp->name) == 0) - return tp; - - /* Try local zone abbreviations before those in time_zone_table, as - the local ones are more likely to be right. */ - for (tp = pc->local_time_zone_table; tp->name; tp++) - if (strcmp (name, tp->name) == 0) - return tp; - - for (tp = time_zone_table; tp->name; tp++) - if (strcmp (name, tp->name) == 0) - return tp; - - return NULL; -} - -#if ! HAVE_STRUCT_TM_TM_GMTOFF -/* Yield the difference between *A and *B, - measured in seconds, ignoring leap seconds. - The body of this function is taken directly from the GNU C Library; - see strftime.c. */ -static int -tm_diff (const struct tm *a, const struct tm *b) -{ - /* Compute intervening leap days correctly even if year is negative. - Take care to avoid int overflow in leap day calculations, - but it's OK to assume that A and B are close to each other. */ - int a4 = SHR (a->tm_year, 2) + SHR (TM_YEAR_BASE, 2) - ! (a->tm_year & 3); - int b4 = SHR (b->tm_year, 2) + SHR (TM_YEAR_BASE, 2) - ! (b->tm_year & 3); - int a100 = a4 / 25 - (a4 % 25 < 0); - int b100 = b4 / 25 - (b4 % 25 < 0); - int a400 = SHR (a100, 2); - int b400 = SHR (b100, 2); - int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); - int years = a->tm_year - b->tm_year; - int days = (365 * years + intervening_leap_days - + (a->tm_yday - b->tm_yday)); - return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) - + (a->tm_min - b->tm_min)) - + (a->tm_sec - b->tm_sec)); -} -#endif - -static table const * -lookup_word (parser_control const *pc, char *word) -{ - char *p; - char *q; - idx_t wordlen; - table const *tp; - bool period_found; - bool abbrev; - - /* Make it uppercase. */ - for (p = word; *p; p++) - *p = c_toupper (to_uchar (*p)); - - for (tp = meridian_table; tp->name; tp++) - if (strcmp (word, tp->name) == 0) - return tp; - - /* See if we have an abbreviation for a month. */ - wordlen = strlen (word); - abbrev = wordlen == 3 || (wordlen == 4 && word[3] == '.'); - - for (tp = month_and_day_table; tp->name; tp++) - if ((abbrev ? strncmp (word, tp->name, 3) : strcmp (word, tp->name)) == 0) - return tp; - - if ((tp = lookup_zone (pc, word))) - return tp; - - if (strcmp (word, dst_table[0].name) == 0) - return dst_table; - - for (tp = time_units_table; tp->name; tp++) - if (strcmp (word, tp->name) == 0) - return tp; - - /* Strip off any plural and try the units table again. */ - if (word[wordlen - 1] == 'S') - { - word[wordlen - 1] = '\0'; - for (tp = time_units_table; tp->name; tp++) - if (strcmp (word, tp->name) == 0) - return tp; - word[wordlen - 1] = 'S'; /* For "this" in relative_time_table. */ - } - - for (tp = relative_time_table; tp->name; tp++) - if (strcmp (word, tp->name) == 0) - return tp; - - /* Military time zones. */ - if (wordlen == 1) - for (tp = military_table; tp->name; tp++) - if (word[0] == tp->name[0]) - return tp; - - /* Drop out any periods and try the time zone table again. */ - for (period_found = false, p = q = word; (*p = *q); q++) - if (*q == '.') - period_found = true; - else - p++; - if (period_found && (tp = lookup_zone (pc, word))) - return tp; - - return NULL; -} - -static int -yylex (union YYSTYPE *lvalp, parser_control *pc) -{ - unsigned char c; - - for (;;) - { - while (c = *pc->input, c_isspace (c)) - pc->input++; - - if (c_isdigit (c) || c == '-' || c == '+') - { - char const *p = pc->input; - int sign; - if (c == '-' || c == '+') - { - sign = c == '-' ? -1 : 1; - while (c = *(pc->input = ++p), c_isspace (c)) - continue; - if (! c_isdigit (c)) - /* skip the '-' sign */ - continue; - } - else - sign = 0; - - time_t value = 0; - do - { - if (ckd_mul (&value, value, 10)) - return '?'; - if (ckd_add (&value, value, sign < 0 ? '0' - c : c - '0')) - return '?'; - c = *++p; - } - while (c_isdigit (c)); - - if ((c == '.' || c == ',') && c_isdigit (p[1])) - { - time_t s = value; - int digits; - - /* Accumulate fraction, to ns precision. */ - p++; - int ns = *p++ - '0'; - for (digits = 2; digits <= LOG10_BILLION; digits++) - { - ns *= 10; - if (c_isdigit (*p)) - ns += *p++ - '0'; - } - - /* Skip excess digits, truncating toward -Infinity. */ - if (sign < 0) - for (; c_isdigit (*p); p++) - if (*p != '0') - { - ns++; - break; - } - while (c_isdigit (*p)) - p++; - - /* Adjust to the timespec convention, which is that - tv_nsec is always a positive offset even if tv_sec is - negative. */ - if (sign < 0 && ns) - { - if (ckd_sub (&s, s, 1)) - return '?'; - ns = BILLION - ns; - } - - lvalp->timespec = (struct timespec) { .tv_sec = s, - .tv_nsec = ns }; - pc->input = p; - return sign ? tSDECIMAL_NUMBER : tUDECIMAL_NUMBER; - } - else - { - lvalp->textintval.negative = sign < 0; - lvalp->textintval.value = value; - lvalp->textintval.digits = p - pc->input; - pc->input = p; - return sign ? tSNUMBER : tUNUMBER; - } - } - - if (c_isalpha (c)) - { - char buff[20]; - char *p = buff; - table const *tp; - - do - { - if (p < buff + sizeof buff - 1) - *p++ = c; - c = *++pc->input; - } - while (c_isalpha (c) || c == '.'); - - *p = '\0'; - tp = lookup_word (pc, buff); - if (! tp) - { - if (debugging (pc)) - dbg_printf (_("error: unknown word '%s'\n"), buff); - return '?'; - } - lvalp->intval = tp->value; - return tp->type; - } - - if (c != '(') - return to_uchar (*pc->input++); - - idx_t count = 0; - do - { - c = *pc->input++; - if (c == '\0') - return c; - if (c == '(') - count++; - else if (c == ')') - count--; - } - while (count != 0); - } -} - -/* Do nothing if the parser reports an error. */ -static void -yyerror (_GL_UNUSED parser_control const *pc, - _GL_UNUSED char const *s) -{ -} - -/* If *TM0 is the old and *TM1 is the new value of a struct tm after - passing it to mktime_z, return true if it's OK. It's not OK if - mktime failed or if *TM0 has out-of-range mainline members. - The caller should set TM1->tm_wday to -1 before calling mktime, - as a negative tm_wday is how mktime failure is inferred. */ - -static bool -mktime_ok (struct tm const *tm0, struct tm const *tm1) -{ - if (tm1->tm_wday < 0) - return false; - - return ! ((tm0->tm_sec ^ tm1->tm_sec) - | (tm0->tm_min ^ tm1->tm_min) - | (tm0->tm_hour ^ tm1->tm_hour) - | (tm0->tm_mday ^ tm1->tm_mday) - | (tm0->tm_mon ^ tm1->tm_mon) - | (tm0->tm_year ^ tm1->tm_year)); -} - -/* Populate PC's local time zone table with information from TM. */ - -static void -populate_local_time_zone_table (parser_control *pc, struct tm const *tm) -{ - bool first_entry_exists = !!pc->local_time_zone_table[0].name; - - /* The table entry to be filled in. There are only two, so this is - the first entry if it is missing, the second entry otherwise. */ - table *e = &pc->local_time_zone_table[first_entry_exists]; - - e->type = tLOCAL_ZONE; - e->value = tm->tm_isdst; - - char const *zone = NULL; -#if HAVE_STRUCT_TM_TM_ZONE - if (tm->tm_zone[0]) - zone = tm->tm_zone; -#else - char *tz_abbr = pc->tz_abbr[first_entry_exists]; - if (strftime (tz_abbr, TIME_ZONE_BUFSIZE, "%Z", tm)) - zone = tz_abbr; -#endif - e->name = zone; - e[1].name = NULL; -} - -/* Debugging: format a 'struct tm' into a buffer, taking the parser's - timezone information into account (if pc != NULL). */ -static char const * -debug_strfdatetime (struct tm const *tm, parser_control const *pc, - char *buf, int n) -{ - /* TODO: - 1. find an optimal way to print date string in a clear and unambiguous - format. Currently, always add '(Y-M-D)' prefix. - Consider '2016y01m10d' or 'year(2016) month(01) day(10)'. - - If the user needs debug printing, it means he/she already having - issues with the parsing - better to avoid formats that could - be mis-interpreted (e.g., just YYYY-MM-DD). - - 2. Print timezone information ? - - 3. Print DST information ? - - 4. Print nanosecond information ? - - NOTE: - Printed date/time values might not be valid, e.g., '2016-02-31' - or '2016-19-2016' . These are the values as parsed from the user - string, before validation. - */ - int m = strftime (buf, n, "(Y-M-D) %Y-%m-%d %H:%M:%S", tm); - - /* If parser_control information was provided (for timezone), - and there's enough space in the buffer, add timezone info. */ - if (pc && m < n && pc->zones_seen) - { - int tz = pc->time_zone; - - /* Account for DST if tLOCAL_ZONE was seen. */ - if (pc->local_zones_seen && !pc->zones_seen && 0 < pc->local_isdst) - tz += 60 * 60; - - char time_zone_buf[TIME_ZONE_BUFSIZE]; - snprintf (&buf[m], n - m, " TZ=%s", time_zone_str (tz, time_zone_buf)); - } - return buf; -} - -static char const * -debug_strfdate (struct tm const *tm, char *buf, int n) -{ - char tm_year_buf[TM_YEAR_BUFSIZE]; - snprintf (buf, n, "(Y-M-D) %s-%02d-%02d", - tm_year_str (tm->tm_year, tm_year_buf), - tm->tm_mon + 1, tm->tm_mday); - return buf; -} - -static char const * -debug_strftime (struct tm const *tm, char *buf, int n) -{ - snprintf (buf, n, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec); - return buf; -} - -/* If mktime_ok failed, display the failed time values, - and provide possible hints. Example output: - - date: error: invalid date/time value: - date: user provided time: '(Y-M-D) 2006-04-02 02:45:00' - date: normalized time: '(Y-M-D) 2006-04-02 03:45:00' - date: __ - date: possible reasons: - date: nonexistent due to daylight-saving time; - date: numeric values overflow; - date: missing timezone; - */ -static void -debug_mktime_not_ok (struct tm const *tm0, struct tm const *tm1, - parser_control const *pc, bool time_zone_seen) -{ - /* TODO: handle t == -1 (as in 'mktime_ok'). */ - char tmp[DBGBUFSIZE]; - int i; - const bool eq_sec = (tm0->tm_sec == tm1->tm_sec); - const bool eq_min = (tm0->tm_min == tm1->tm_min); - const bool eq_hour = (tm0->tm_hour == tm1->tm_hour); - const bool eq_mday = (tm0->tm_mday == tm1->tm_mday); - const bool eq_month = (tm0->tm_mon == tm1->tm_mon); - const bool eq_year = (tm0->tm_year == tm1->tm_year); - - const bool dst_shift = eq_sec && eq_min && !eq_hour - && eq_mday && eq_month && eq_year; - - if (!debugging (pc)) - return; - - dbg_printf (_("error: invalid date/time value:\n")); - dbg_printf (_(" user provided time: '%s'\n"), - debug_strfdatetime (tm0, pc, tmp, sizeof tmp)); - dbg_printf (_(" normalized time: '%s'\n"), - debug_strfdatetime (tm1, pc, tmp, sizeof tmp)); - /* The format must be aligned with debug_strfdatetime and the two - DEBUG statements above. This string is not translated. */ - i = snprintf (tmp, sizeof tmp, - " %4s %2s %2s %2s %2s %2s", - eq_year ? "" : "----", - eq_month ? "" : "--", - eq_mday ? "" : "--", - eq_hour ? "" : "--", - eq_min ? "" : "--", - eq_sec ? "" : "--"); - /* Trim trailing whitespace. */ - if (0 <= i) - { - if (sizeof tmp - 1 < i) - i = sizeof tmp - 1; - while (0 < i && tmp[i - 1] == ' ') - --i; - tmp[i] = '\0'; - } - dbg_printf ("%s\n", tmp); - - dbg_printf (_(" possible reasons:\n")); - if (dst_shift) - dbg_printf (_(" nonexistent due to daylight-saving time;\n")); - if (!eq_mday && !eq_month) - dbg_printf (_(" invalid day/month combination;\n")); - dbg_printf (_(" numeric values overflow;\n")); - dbg_printf (" %s\n", (time_zone_seen ? _("incorrect timezone") - : _("missing timezone"))); -} - -/* Parse a date/time string, storing the resulting time value into *RESULT. - The string itself is pointed to by P. Return true if successful. - P can be an incomplete or relative time specification; if so, use - *NOW as the basis for the returned time. Default to timezone - TZDEFAULT, which corresponds to tzalloc (TZSTRING). */ -static bool -parse_datetime_body (struct timespec *result, char const *p, - struct timespec const *now, unsigned int flags, - timezone_t tzdefault, char const *tzstring) -{ - struct tm tm; - struct tm tm0; - char time_zone_buf[TIME_ZONE_BUFSIZE]; - char dbg_tm[DBGBUFSIZE]; - bool ok = false; - char const *input_sentinel = p + strlen (p); - char *tz1alloc = NULL; - - /* A reasonable upper bound for the size of ordinary TZ strings. - Use heap allocation if TZ's length exceeds this. */ - enum { TZBUFSIZE = 100 }; - char tz1buf[TZBUFSIZE]; - - struct timespec gettime_buffer; - if (! now) - { - gettime (&gettime_buffer); - now = &gettime_buffer; - } - - time_t Start = now->tv_sec; - int Start_ns = now->tv_nsec; - - unsigned char c; - while (c = *p, c_isspace (c)) - p++; - - timezone_t tz = tzdefault; - - /* Store a local copy prior to first "goto". Without this, a prior use - below of RELATIVE_TIME_0 on the RHS might translate to an assignment- - to-temporary, which would trigger a -Wjump-misses-init warning. */ - const relative_time rel_time_0 = RELATIVE_TIME_0; - - if (strncmp (p, "TZ=\"", 4) == 0) - { - char const *tzbase = p + 4; - idx_t tzsize = 1; - char const *s; - - for (s = tzbase; *s; s++, tzsize++) - if (*s == '\\') - { - s++; - if (! (*s == '\\' || *s == '"')) - break; - } - else if (*s == '"') - { - timezone_t tz1; - char *tz1string = tz1buf; - char *z; - if (TZBUFSIZE < tzsize) - { - tz1alloc = malloc (tzsize); - if (!tz1alloc) - goto fail; - tz1string = tz1alloc; - } - z = tz1string; - for (s = tzbase; *s != '"'; s++) - *z++ = *(s += *s == '\\'); - *z = '\0'; - tz1 = tzalloc (tz1string); - if (!tz1) - goto fail; - tz = tz1; - tzstring = tz1string; - - p = s + 1; - while (c = *p, c_isspace (c)) - p++; - - break; - } - } - - struct tm tmp; - if (! localtime_rz (tz, &now->tv_sec, &tmp)) - goto fail; - - /* As documented, be careful to treat the empty string just like - a date string of "0". Without this, an empty string would be - declared invalid when parsed during a DST transition. */ - if (*p == '\0') - p = "0"; - - parser_control pc; - pc.input = p; -#ifdef GNULIB_PARSE_DATETIME2 - pc.parse_datetime_debug = (flags & PARSE_DATETIME_DEBUG) != 0; -#endif - if (ckd_add (&pc.year.value, tmp.tm_year, TM_YEAR_BASE)) - { - if (debugging (&pc)) - dbg_printf (_("error: initial year out of range\n")); - goto fail; - } - pc.year.digits = 0; - pc.month = tmp.tm_mon + 1; - pc.day = tmp.tm_mday; - pc.hour = tmp.tm_hour; - pc.minutes = tmp.tm_min; - pc.seconds = (struct timespec) { .tv_sec = tmp.tm_sec, .tv_nsec = Start_ns }; - tm.tm_isdst = tmp.tm_isdst; - - pc.meridian = MER24; - pc.rel = rel_time_0; - pc.timespec_seen = false; - pc.rels_seen = false; - pc.dates_seen = 0; - pc.days_seen = 0; - pc.times_seen = 0; - pc.J_zones_seen = 0; - pc.local_zones_seen = 0; - pc.dsts_seen = 0; - pc.zones_seen = 0; - pc.year_seen = false; - pc.debug_dates_seen = false; - pc.debug_days_seen = false; - pc.debug_times_seen = false; - pc.debug_local_zones_seen = false; - pc.debug_zones_seen = false; - pc.debug_year_seen = false; - pc.debug_ordinal_day_seen = false; - - pc.local_time_zone_table[0].name = NULL; - populate_local_time_zone_table (&pc, &tmp); - - /* Probe the names used in the next three calendar quarters, looking - for a tm_isdst different from the one we already have. */ - for (int quarter = 1; quarter <= 3; quarter++) - { - time_t probe; - if (ckd_add (&probe, Start, quarter * (90 * 24 * 60 * 60))) - break; - struct tm probe_tm; - if (localtime_rz (tz, &probe, &probe_tm) - && (! pc.local_time_zone_table[0].name - || probe_tm.tm_isdst != pc.local_time_zone_table[0].value)) - { - populate_local_time_zone_table (&pc, &probe_tm); - if (pc.local_time_zone_table[1].name) - { - if (! strcmp (pc.local_time_zone_table[0].name, - pc.local_time_zone_table[1].name)) - { - /* This locale uses the same abbreviation for standard and - daylight times. So if we see that abbreviation, we don't - know whether it's daylight time. */ - pc.local_time_zone_table[0].value = -1; - pc.local_time_zone_table[1].name = NULL; - } - - break; - } - } - } - - if (yyparse (&pc) != 0) - { - if (debugging (&pc)) - dbg_printf ((input_sentinel <= pc.input - ? _("error: parsing failed\n") - : _("error: parsing failed, stopped at '%s'\n")), - pc.input); - goto fail; - } - - - /* Determine effective timezone source. */ - - if (debugging (&pc)) - { - dbg_printf (_("input timezone: ")); - - if (pc.timespec_seen) - fprintf (stderr, _("'@timespec' - always UTC")); - else if (pc.zones_seen) - fprintf (stderr, _("parsed date/time string")); - else if (tzstring) - { - if (tz != tzdefault) - fprintf (stderr, _("TZ=\"%s\" in date string"), tzstring); - else if (STREQ (tzstring, "UTC0")) - { - /* Special case: 'date -u' sets TZ="UTC0". */ - fprintf (stderr, _("TZ=\"UTC0\" environment value or -u")); - } - else - fprintf (stderr, _("TZ=\"%s\" environment value"), tzstring); - } - else - fprintf (stderr, _("system default")); - - /* Account for DST changes if tLOCAL_ZONE was seen. - local timezone only changes DST and is relative to the - default timezone.*/ - if (pc.local_zones_seen && !pc.zones_seen && 0 < pc.local_isdst) - fprintf (stderr, ", dst"); - - if (pc.zones_seen) - fprintf (stderr, " (%s)", time_zone_str (pc.time_zone, time_zone_buf)); - - fputc ('\n', stderr); - } - - if (pc.timespec_seen) - *result = pc.seconds; - else - { - if (1 < (pc.times_seen | pc.dates_seen | pc.days_seen | pc.dsts_seen - | (pc.J_zones_seen + pc.local_zones_seen + pc.zones_seen))) - { - if (debugging (&pc)) - { - if (pc.times_seen > 1) - dbg_printf ("error: seen multiple time parts\n"); - if (pc.dates_seen > 1) - dbg_printf ("error: seen multiple date parts\n"); - if (pc.days_seen > 1) - dbg_printf ("error: seen multiple days parts\n"); - if (pc.dsts_seen > 1) - dbg_printf ("error: seen multiple daylight-saving parts\n"); - if ((pc.J_zones_seen + pc.local_zones_seen + pc.zones_seen) > 1) - dbg_printf ("error: seen multiple time-zone parts\n"); - } - goto fail; - } - - if (! to_tm_year (pc.year, debugging (&pc), &tm.tm_year) - || ckd_add (&tm.tm_mon, pc.month, -1) - || ckd_add (&tm.tm_mday, pc.day, 0)) - { - if (debugging (&pc)) - dbg_printf (_("error: year, month, or day overflow\n")); - goto fail; - } - if (pc.times_seen || (pc.rels_seen && ! pc.dates_seen && ! pc.days_seen)) - { - tm.tm_hour = to_hour (pc.hour, pc.meridian); - if (tm.tm_hour < 0) - { - char const *mrd = (pc.meridian == MERam ? "am" - : pc.meridian == MERpm ?"pm" : ""); - if (debugging (&pc)) - dbg_printf (_("error: invalid hour %"PRIdMAX"%s\n"), - pc.hour, mrd); - goto fail; - } - tm.tm_min = pc.minutes; - tm.tm_sec = pc.seconds.tv_sec; - if (debugging (&pc)) - dbg_printf ((pc.times_seen - ? _("using specified time as starting value: '%s'\n") - : _("using current time as starting value: '%s'\n")), - debug_strftime (&tm, dbg_tm, sizeof dbg_tm)); - } - else - { - tm.tm_hour = tm.tm_min = tm.tm_sec = 0; - pc.seconds.tv_nsec = 0; - if (debugging (&pc)) - dbg_printf ("warning: using midnight as starting time: 00:00:00\n"); - } - - /* Let mktime deduce tm_isdst if we have an absolute timestamp. */ - if (pc.dates_seen | pc.days_seen | pc.times_seen) - tm.tm_isdst = -1; - - /* But if the input explicitly specifies local time with or without - DST, give mktime that information. */ - if (pc.local_zones_seen) - tm.tm_isdst = pc.local_isdst; - - tm0.tm_sec = tm.tm_sec; - tm0.tm_min = tm.tm_min; - tm0.tm_hour = tm.tm_hour; - tm0.tm_mday = tm.tm_mday; - tm0.tm_mon = tm.tm_mon; - tm0.tm_year = tm.tm_year; - tm0.tm_isdst = tm.tm_isdst; - tm.tm_wday = -1; - - Start = mktime_z (tz, &tm); - - if (! mktime_ok (&tm0, &tm)) - { - bool repaired = false; - bool time_zone_seen = pc.zones_seen != 0; - if (time_zone_seen) - { - /* Guard against falsely reporting errors near the time_t - boundaries when parsing times in other time zones. For - example, suppose the input string "1969-12-31 23:00:00 -0100", - the current time zone is 8 hours ahead of UTC, and the min - time_t value is 1970-01-01 00:00:00 UTC. Then the min - localtime value is 1970-01-01 08:00:00, and mktime will - therefore fail on 1969-12-31 23:00:00. To work around the - problem, set the time zone to 1 hour behind UTC temporarily - by setting TZ="XXX1:00" and try mktime again. */ - - char tz2buf[sizeof "XXX" - 1 + TIME_ZONE_BUFSIZE]; - tz2buf[0] = tz2buf[1] = tz2buf[2] = 'X'; - time_zone_str (pc.time_zone, &tz2buf[3]); - timezone_t tz2 = tzalloc (tz2buf); - if (!tz2) - { - if (debugging (&pc)) - dbg_printf (_("error: tzalloc (\"%s\") failed\n"), tz2buf); - goto fail; - } - tm.tm_sec = tm0.tm_sec; - tm.tm_min = tm0.tm_min; - tm.tm_hour = tm0.tm_hour; - tm.tm_mday = tm0.tm_mday; - tm.tm_mon = tm0.tm_mon; - tm.tm_year = tm0.tm_year; - tm.tm_isdst = tm0.tm_isdst; - tm.tm_wday = -1; - Start = mktime_z (tz2, &tm); - repaired = mktime_ok (&tm0, &tm); - tzfree (tz2); - } - - if (! repaired) - { - debug_mktime_not_ok (&tm0, &tm, &pc, time_zone_seen); - goto fail; - } - } - - char dbg_ord[DBGBUFSIZE]; - - if (pc.days_seen && ! pc.dates_seen) - { - intmax_t dayincr; - tm.tm_yday = -1; - intmax_t day_ordinal = (pc.day_ordinal - - (0 < pc.day_ordinal - && tm.tm_wday != pc.day_number)); - if (! (ckd_mul (&dayincr, day_ordinal, 7) - || ckd_add (&dayincr, (pc.day_number - tm.tm_wday + 7) % 7, - dayincr) - || ckd_add (&tm.tm_mday, dayincr, tm.tm_mday))) - { - tm.tm_isdst = -1; - Start = mktime_z (tz, &tm); - } - - if (tm.tm_yday < 0) - { - if (debugging (&pc)) - dbg_printf (_("error: day '%s' " - "(day ordinal=%"PRIdMAX" number=%d) " - "resulted in an invalid date: '%s'\n"), - str_days (&pc, dbg_ord, sizeof dbg_ord), - pc.day_ordinal, pc.day_number, - debug_strfdatetime (&tm, &pc, dbg_tm, - sizeof dbg_tm)); - goto fail; - } - - if (debugging (&pc)) - dbg_printf (_("new start date: '%s' is '%s'\n"), - str_days (&pc, dbg_ord, sizeof dbg_ord), - debug_strfdatetime (&tm, &pc, dbg_tm, sizeof dbg_tm)); - - } - - if (debugging (&pc)) - { - if (!pc.dates_seen && !pc.days_seen) - dbg_printf (_("using current date as starting value: '%s'\n"), - debug_strfdate (&tm, dbg_tm, sizeof dbg_tm)); - - if (pc.days_seen && pc.dates_seen) - dbg_printf (_("warning: day (%s) ignored when explicit dates " - "are given\n"), - str_days (&pc, dbg_ord, sizeof dbg_ord)); - - dbg_printf (_("starting date/time: '%s'\n"), - debug_strfdatetime (&tm, &pc, dbg_tm, sizeof dbg_tm)); - } - - /* Add relative date. */ - if (pc.rel.year | pc.rel.month | pc.rel.day) - { - if (debugging (&pc)) - { - if ((pc.rel.year != 0 || pc.rel.month != 0) && tm.tm_mday != 15) - dbg_printf (_("warning: when adding relative months/years, " - "it is recommended to specify the 15th of the " - "months\n")); - - if (pc.rel.day != 0 && tm.tm_hour != 12) - dbg_printf (_("warning: when adding relative days, " - "it is recommended to specify noon\n")); - } - - int year, month, day; - if (ckd_add (&year, tm.tm_year, pc.rel.year) - || ckd_add (&month, tm.tm_mon, pc.rel.month) - || ckd_add (&day, tm.tm_mday, pc.rel.day)) - { - if (debugging (&pc)) - dbg_printf (_("error: %s:%d\n"), __FILE__, __LINE__); - goto fail; - } - tm.tm_year = year; - tm.tm_mon = month; - tm.tm_mday = day; - tm.tm_hour = tm0.tm_hour; - tm.tm_min = tm0.tm_min; - tm.tm_sec = tm0.tm_sec; - tm.tm_isdst = tm0.tm_isdst; - tm.tm_wday = -1; - Start = mktime_z (tz, &tm); - if (tm.tm_wday < 0) - { - if (debugging (&pc)) - dbg_printf (_("error: adding relative date resulted " - "in an invalid date: '%s'\n"), - debug_strfdatetime (&tm, &pc, dbg_tm, - sizeof dbg_tm)); - goto fail; - } - - if (debugging (&pc)) - { - dbg_printf (_("after date adjustment " - "(%+"PRIdMAX" years, %+"PRIdMAX" months, " - "%+"PRIdMAX" days),\n"), - pc.rel.year, pc.rel.month, pc.rel.day); - dbg_printf (_(" new date/time = '%s'\n"), - debug_strfdatetime (&tm, &pc, dbg_tm, - sizeof dbg_tm)); - - /* Warn about crossing DST due to time adjustment. - Example: https://bugs.gnu.org/8357 - env TZ=Europe/Helsinki \ - date --debug \ - -d 'Mon Mar 28 00:36:07 2011 EEST 1 day ago' - - This case is different than DST changes due to time adjustment, - i.e., "1 day ago" vs "24 hours ago" are calculated in different - places. - - 'tm0.tm_isdst' contains the DST of the input date, - 'tm.tm_isdst' is the normalized result after calling - mktime (&tm). - */ - if (tm0.tm_isdst != -1 && tm.tm_isdst != tm0.tm_isdst) - dbg_printf (_("warning: daylight saving time changed after " - "date adjustment\n")); - - /* Warn if the user did not ask to adjust days but mday changed, - or - user did not ask to adjust months/days but the month changed. - - Example for first case: - 2016-05-31 + 1 month => 2016-06-31 => 2016-07-01. - User asked to adjust month, but the day changed from 31 to 01. - - Example for second case: - 2016-02-29 + 1 year => 2017-02-29 => 2017-03-01. - User asked to adjust year, but the month changed from 02 to 03. - */ - if (pc.rel.day == 0 - && (tm.tm_mday != day - || (pc.rel.month == 0 && tm.tm_mon != month))) - { - dbg_printf (_("warning: month/year adjustment resulted in " - "shifted dates:\n")); - char tm_year_buf[TM_YEAR_BUFSIZE]; - dbg_printf (_(" adjusted Y M D: %s %02d %02d\n"), - tm_year_str (year, tm_year_buf), month + 1, day); - dbg_printf (_(" normalized Y M D: %s %02d %02d\n"), - tm_year_str (tm.tm_year, tm_year_buf), - tm.tm_mon + 1, tm.tm_mday); - } - } - - } - - /* The only "output" of this if-block is an updated Start value, - so this block must follow others that clobber Start. */ - if (pc.zones_seen) - { - bool overflow = false; -#ifdef HAVE_STRUCT_TM_TM_GMTOFF - long int utcoff = tm.tm_gmtoff; -#else - time_t t = Start; - struct tm gmt; - int utcoff = (gmtime_r (&t, &gmt) - ? tm_diff (&tm, &gmt) - : (overflow = true, 0)); -#endif - intmax_t delta; - overflow |= ckd_sub (&delta, pc.time_zone, utcoff); - time_t t1; - overflow |= ckd_sub (&t1, Start, delta); - if (overflow) - { - if (debugging (&pc)) - dbg_printf (_("error: timezone %d caused time_t overflow\n"), - pc.time_zone); - goto fail; - } - Start = t1; - } - - if (debugging (&pc)) - { - intmax_t Starti = Start; - dbg_printf (_("'%s' = %"PRIdMAX" epoch-seconds\n"), - debug_strfdatetime (&tm, &pc, dbg_tm, sizeof dbg_tm), - Starti); - } - - - /* Add relative hours, minutes, and seconds. On hosts that support - leap seconds, ignore the possibility of leap seconds; e.g., - "+ 10 minutes" adds 600 seconds, even if one of them is a - leap second. Typically this is not what the user wants, but it's - too hard to do it the other way, because the time zone indicator - must be applied before relative times, and if mktime is applied - again the time zone will be lost. */ - { - intmax_t orig_ns = pc.seconds.tv_nsec; - intmax_t sum_ns = orig_ns + pc.rel.ns; - int normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; - int d4 = (sum_ns - normalized_ns) / BILLION; - intmax_t d1, t1, d2, t2, t3; - time_t t4; - if (ckd_mul (&d1, pc.rel.hour, 60 * 60) - || ckd_add (&t1, Start, d1) - || ckd_mul (&d2, pc.rel.minutes, 60) - || ckd_add (&t2, t1, d2) - || ckd_add (&t3, t2, pc.rel.seconds) - || ckd_add (&t4, t3, d4)) - { - if (debugging (&pc)) - dbg_printf (_("error: adding relative time caused an " - "overflow\n")); - goto fail; - } - - result->tv_sec = t4; - result->tv_nsec = normalized_ns; - - if (debugging (&pc) - && (pc.rel.hour | pc.rel.minutes | pc.rel.seconds | pc.rel.ns)) - { - dbg_printf (_("after time adjustment (%+"PRIdMAX" hours, " - "%+"PRIdMAX" minutes, " - "%+"PRIdMAX" seconds, %+d ns),\n"), - pc.rel.hour, pc.rel.minutes, pc.rel.seconds, - pc.rel.ns); - intmax_t t4i = t4; - dbg_printf (_(" new time = %"PRIdMAX" epoch-seconds\n"), t4i); - - /* Warn about crossing DST due to time adjustment. - Example: https://bugs.gnu.org/8357 - env TZ=Europe/Helsinki \ - date --debug \ - -d 'Mon Mar 28 00:36:07 2011 EEST 24 hours ago' - - This case is different than DST changes due to days adjustment, - i.e., "1 day ago" vs "24 hours ago" are calculated in different - places. - - 'tm.tm_isdst' contains the date after date adjustment. */ - struct tm lmt; - if (tm.tm_isdst != -1 && localtime_rz (tz, &result->tv_sec, &lmt) - && tm.tm_isdst != lmt.tm_isdst) - dbg_printf (_("warning: daylight saving time changed after " - "time adjustment\n")); - } - } - } - - if (debugging (&pc)) - { - /* Special case: using 'date -u' simply set TZ=UTC0 */ - if (! tzstring) - dbg_printf (_("timezone: system default\n")); - else if (STREQ (tzstring, "UTC0")) - dbg_printf (_("timezone: Universal Time\n")); - else - dbg_printf (_("timezone: TZ=\"%s\" environment value\n"), tzstring); - - intmax_t sec = result->tv_sec; - int nsec = result->tv_nsec; - dbg_printf (_("final: %"PRIdMAX".%09d (epoch-seconds)\n"), - sec, nsec); - - struct tm gmt, lmt; - bool got_utc = !!gmtime_r (&result->tv_sec, &gmt); - if (got_utc) - dbg_printf (_("final: %s (UTC)\n"), - debug_strfdatetime (&gmt, NULL, - dbg_tm, sizeof dbg_tm)); - if (localtime_rz (tz, &result->tv_sec, &lmt)) - { -#ifdef HAVE_STRUCT_TM_TM_GMTOFF - bool got_utcoff = true; - long int utcoff = lmt.tm_gmtoff; -#else - bool got_utcoff = got_utc; - int utcoff; - if (got_utcoff) - utcoff = tm_diff (&lmt, &gmt); -#endif - if (got_utcoff) - dbg_printf (_("final: %s (UTC%s)\n"), - debug_strfdatetime (&lmt, NULL, dbg_tm, sizeof dbg_tm), - time_zone_str (utcoff, time_zone_buf)); - else - dbg_printf (_("final: %s (unknown time zone offset)\n"), - debug_strfdatetime (&lmt, NULL, dbg_tm, sizeof dbg_tm)); - } - } - - ok = true; - - fail: - if (tz != tzdefault) - tzfree (tz); - free (tz1alloc); - return ok; -} - -#ifdef GNULIB_PARSE_DATETIME2 -/* Parse a date/time string, storing the resulting time value into *RESULT. - The string itself is pointed to by P. Return true if successful. - P can be an incomplete or relative time specification; if so, use - *NOW as the basis for the returned time. Default to timezone - TZDEFAULT, which corresponds to tzalloc (TZSTRING). */ -bool -parse_datetime2 (struct timespec *result, char const *p, - struct timespec const *now, unsigned int flags, - timezone_t tzdefault, char const *tzstring) -{ - return parse_datetime_body (result, p, now, flags, tzdefault, tzstring); -} -#endif - - -/* The plain interface: run with debug=false and the default timezone. */ -bool -parse_datetime (struct timespec *result, char const *p, - struct timespec const *now) -{ - char const *tzstring = getenv ("TZ"); - timezone_t tz = tzalloc (tzstring); - if (!tz) - return false; - bool ok = parse_datetime_body (result, p, now, 0, tz, tzstring); - tzfree (tz); - return ok; -} - -#if TEST - -int -main (int ac, char **av) -{ - char buff[BUFSIZ]; - - printf ("Enter date, or blank line to exit.\n\t> "); - fflush (stdout); - - buff[BUFSIZ - 1] = '\0'; - while (fgets (buff, BUFSIZ - 1, stdin) && buff[0]) - { - struct timespec d; - struct tm const *tm; - if (! parse_datetime (&d, buff, NULL)) - printf ("Bad format - couldn't convert.\n"); - else if (! (tm = localtime (&d.tv_sec))) - { - intmax_t sec = d.tv_sec; - printf ("localtime (%"PRIdMAX") failed\n", sec); - } - else - { - int ns = d.tv_nsec; - char tm_year_buf[TM_YEAR_BUFSIZE]; - printf ("%s-%02d-%02d %02d:%02d:%02d.%09d\n", - tm_year_str (tm->tm_year, tm_year_buf), - tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec, ns); - } - printf ("\t> "); - fflush (stdout); - } - return 0; -} -#endif /* TEST */ diff --git a/include/libgnulib/parse-duration.h b/include/libgnulib/parse-duration.h deleted file mode 100755 index bdd3dcb..0000000 --- a/include/libgnulib/parse-duration.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Parse a time duration and return a seconds count - Copyright (C) 2008-2024 Free Software Foundation, Inc. - Written by Bruce Korb , 2008. - - This file 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 file 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 program. If not, see . */ - -/* - - Readers and users of this function are referred to the ISO-8601 - specification, with particular attention to "Durations". - - At the time of writing, this worked: - - https://en.wikipedia.org/wiki/ISO_8601#Durations - - The string must start with a 'P', 'T' or a digit. - - ==== if it is a digit - - the string may contain: NNN Y NNN M NNN W NNN d NNN h NNN m NNN s - This represents NNN years, NNN months, NNN weeks, NNN days, NNN hours, - NNN minutes and NNN seconds. - The embedded white space is optional. - These terms must appear in this order. - Case is significant: 'M' is months and 'm' is minutes. - The final "s" is optional. - All of the terms ("NNN" plus designator) are optional. - Minutes and seconds may optionally be represented as NNN:NNN. - Also, hours, minute and seconds may be represented as NNN:NNN:NNN. - There is no limitation on the value of any of the terms, except - that the final result must fit in a time_t value. - - ==== if it is a 'P' or 'T', please see ISO-8601 for a rigorous definition. - - The 'P' term may be followed by any of three formats: - yyyymmdd - yy-mm-dd - yy Y mm M ww W dd D - - or it may be empty and followed by a 'T'. The "yyyymmdd" must be eight - digits long. - - NOTE! Months are always 30 days and years are always 365 days long. - 5 years is always 1825 days, not 1826 or 1827 depending on leap year - considerations. 3 months is always 90 days. There is no consideration - for how many days are in the current, next or previous months. - - For the final format: - * Embedded white space is allowed, but it is optional. - * All of the terms are optional. Any or all-but-one may be omitted. - * The meanings are yy years, mm months, ww weeks and dd days. - * The terms must appear in this order. - - ==== The 'T' term may be followed by any of these formats: - - hhmmss - hh:mm:ss - hh H mm M ss S - - For the final format: - * Embedded white space is allowed, but it is optional. - * All of the terms are optional. Any or all-but-one may be omitted. - * The terms must appear in this order. - - */ -#ifndef GNULIB_PARSE_DURATION_H -#define GNULIB_PARSE_DURATION_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return value when a valid duration cannot be parsed. */ -#define BAD_TIME ((time_t)~0) - -/* Parses the given string. If it has the syntax of a valid duration, - this duration is returned. Otherwise, the return value is BAD_TIME, - and errno is set to either EINVAL (bad syntax) or ERANGE (out of range). */ -extern time_t parse_duration (char const * in_pz); - - -#ifdef __cplusplus -} -#endif - -#endif /* GNULIB_PARSE_DURATION_H */ diff --git a/include/libgnulib/passfd.h b/include/libgnulib/passfd.h deleted file mode 100755 index 24bb607..0000000 --- a/include/libgnulib/passfd.h +++ /dev/null @@ -1,32 +0,0 @@ -/* passfd.h -- definitions and prototypes for passfd.c - - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef PASSFD_H_ -#define PASSFD_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - -extern int sendfd (int sock, int fd); -extern int recvfd (int sock, int flags); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/pathmax.h b/include/libgnulib/pathmax.h deleted file mode 100755 index d6512c6..0000000 --- a/include/libgnulib/pathmax.h +++ /dev/null @@ -1,88 +0,0 @@ -/* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _PATHMAX_H -# define _PATHMAX_H - -/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, - including the terminating NUL byte. - - PATH_MAX is not defined on systems which have no limit on filename length, - such as GNU/Hurd. - - This file does *not* define PATH_MAX always. Programs that use this file - can handle the GNU/Hurd case in several ways: - - Either with a package-wide handling, or with a per-file handling, - - Either through a - #ifdef PATH_MAX - or through a fallback like - #ifndef PATH_MAX - # define PATH_MAX 8192 - #endif - or through a fallback like - #ifndef PATH_MAX - # define PATH_MAX pathconf ("/", _PC_PATH_MAX) - #endif - */ - -/* This file uses HAVE_SYS_PARAM_H. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include - -# include - -# ifndef _POSIX_PATH_MAX -# define _POSIX_PATH_MAX 256 -# endif - -/* Don't include sys/param.h if it already has been. */ -# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -# include -# endif - -# if !defined PATH_MAX && defined MAXPATHLEN -# define PATH_MAX MAXPATHLEN -# endif - -# ifdef __hpux -/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, - *not* including the terminating NUL byte, and is set to 1023. - Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is - not defined at all any more. */ -# undef PATH_MAX -# define PATH_MAX 1024 -# endif - -# if defined _WIN32 && ! defined __CYGWIN__ -/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, - section "Maximum Path Length Limitation", - - explains that the maximum size of a filename, including the terminating - NUL byte, is 260 = 3 + 256 + 1. - This is the same value as - - FILENAME_MAX in , - - _MAX_PATH in , - - MAX_PATH in . - Undefine the original value, because mingw's gets it wrong. */ -# undef PATH_MAX -# define PATH_MAX 260 -# endif - -#endif /* _PATHMAX_H */ diff --git a/include/libgnulib/physmem.h b/include/libgnulib/physmem.h deleted file mode 100755 index 9c5438d..0000000 --- a/include/libgnulib/physmem.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Calculate the size of physical memory. - - Copyright (C) 2000, 2003, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef PHYSMEM_H_ -# define PHYSMEM_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Returns the total amount of physical memory. - This value is more or less a hard limit for the working set. */ -double physmem_total (void); - -/* Returns the amount of physical memory available. - This value is the amount of memory the application can use without hindering - any other process (assuming that no other process increases its memory - usage). */ -double physmem_available (void); - -/* Returns the amount of physical memory that can be claimed, with a given - aggressivity. - For AGGRESSIVITY == 0.0, the result is like physmem_available (): the amount - of memory the application can use without hindering any other process. - For AGGRESSIVITY == 1.0, the result is the amount of memory the application - can use, while causing memory shortage to other processes, but without - bringing the machine into an out-of-memory state. - Values in between, for example AGGRESSIVITY == 0.5, are a reasonable middle - ground. */ -double physmem_claimable (double aggressivity); - - -#ifdef __cplusplus -} -#endif - -#endif /* PHYSMEM_H_ */ diff --git a/include/libgnulib/pipe-filter-aux.h b/include/libgnulib/pipe-filter-aux.h deleted file mode 100755 index caf24c4..0000000 --- a/include/libgnulib/pipe-filter-aux.h +++ /dev/null @@ -1,127 +0,0 @@ -/* Auxiliary code for filtering of data through a subprocess. - Copyright (C) 2001-2003, 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - 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 3 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, see . */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef PIPE_FILTER_AUX_INLINE -# define PIPE_FILTER_AUX_INLINE _GL_INLINE -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ -/* In the pipe-filter-* modules we want to use the write() function that is - not overridden to emulate SIGPIPE behaviour, because we don't want force - the caller to do - signal (SIGPIPE, SIG_DFL); - To reproduce the problem, use a gnulib testdir for the modules - 'pipe-filter-gi', 'write', 'sigpipe'. */ -# undef write -# define write _write -#endif - -#ifndef SSIZE_MAX -# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) -#endif -#ifdef _AIX -/* On AIX, despite having select() and despite having put the file descriptor - in non-blocking mode, it can happen that select() reports that fd[1] is - writable but writing a large amount of data to fd[1] then fails with errno - EAGAIN. Seen with test-pipe-filter-gi1 on AIX 7.2, with data sizes of - 29 KB. So, limit the size of data passed to the write() call to 4 KB. */ -# undef SSIZE_MAX -# define SSIZE_MAX 4096 -#endif - -/* We use a child process, and communicate through a bidirectional pipe. - To avoid deadlocks, let the child process decide when it wants to read - or to write, and let the parent behave accordingly. The parent uses - select() to know whether it must write or read. On platforms without - select(), we use non-blocking I/O. (This means the parent is busy - looping while waiting for the child. Not good. But hardly any platform - lacks select() nowadays.) */ - -/* On BeOS and OS/2 kLIBC select() works only on sockets, not on normal file - descriptors. */ -#if defined __BEOS__ || defined __KLIBC__ -# undef HAVE_SELECT -#endif - -#ifdef EINTR - -/* EINTR handling for close(), read(), write(), select(). - These functions can return -1/EINTR even though we don't have any - signal handlers set up, namely when we get interrupted via SIGSTOP. */ - -PIPE_FILTER_AUX_INLINE int -nonintr_close (int fd) -{ - int retval; - - do - retval = close (fd); - while (retval < 0 && errno == EINTR); - - return retval; -} -#undef close /* avoid warning related to gnulib module unistd */ -#define close nonintr_close - -PIPE_FILTER_AUX_INLINE ssize_t -nonintr_read (int fd, void *buf, size_t count) -{ - ssize_t retval; - - do - retval = read (fd, buf, count); - while (retval < 0 && errno == EINTR); - - return retval; -} -#undef read /* avoid warning related to gnulib module unistd */ -#define read nonintr_read - -PIPE_FILTER_AUX_INLINE ssize_t -nonintr_write (int fd, const void *buf, size_t count) -{ - ssize_t retval; - - do - retval = write (fd, buf, count); - while (retval < 0 && errno == EINTR); - - return retval; -} -#undef write /* avoid warning on VMS */ -#define write nonintr_write - -#endif - -/* Non-blocking I/O. */ -#if HAVE_SELECT -# define IS_EAGAIN(errcode) 0 -#else -# ifdef EWOULDBLOCK -# define IS_EAGAIN(errcode) ((errcode) == EAGAIN || (errcode) == EWOULDBLOCK) -# else -# define IS_EAGAIN(errcode) ((errcode) == EAGAIN) -# endif -#endif - -_GL_INLINE_HEADER_END diff --git a/include/libgnulib/pipe-filter.h b/include/libgnulib/pipe-filter.h deleted file mode 100755 index 4d116f2..0000000 --- a/include/libgnulib/pipe-filter.h +++ /dev/null @@ -1,243 +0,0 @@ -/* Filtering of data through a subprocess. -*- coding: utf-8 -*- - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009, - and Paolo Bonzini , 2009. - - 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 3 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, see . */ - -#ifndef _PIPE_FILTER_H -#define _PIPE_FILTER_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Piping data through a subprocess in the naïve way - write data to the - subprocess and read from the subprocess when you expect it to have - produced results - is subject to two kinds of deadlocks: - 1) If you write more than PIPE_MAX bytes or, more generally, if you write - more bytes than the subprocess can handle at once, the subprocess - may write its data and wait on you to read it, but you are currently - busy writing. - 2) When you don't know ahead of time how many bytes the subprocess - will produce, the usual technique of calling read (fd, buf, BUFSIZ) - with a fixed BUFSIZ will, on Linux 2.2.17 and on BSD systems, cause - the read() call to block until *all* of the buffer has been filled. - But the subprocess cannot produce more data until you gave it more - input. But you are currently busy reading from it. - - This header file declares four set of functions that pipes data through - the subprocess, without risking these deadlocks. - - The side that writes data to the subprocess can be seen as a "generator", - that is, as a subroutine that produces and writes a piece of data here and - there, see . - But often, it can be written in the form of an "iterator", that is, as a - function that, each time it is invoked, produces and writes one more piece - of data. - - Similarly, the side that reads data from the subprocess can be seen as - a "generator", that is, as a subroutine that consumes a piece of data here - and there. Often, it can be written in the form of an "iterator", that - is, as a function that, each time it is invoked, consumes one more piece - of data. - - This header file declares four set of functions: - - | writer | reader | - ----------------+------------+------------+ - pipe_filter_ii | iterator | iterator | - pipe_filter_ig | iterator | generator | - pipe_filter_gi | generator | iterator | - pipe_filter_gg | generator | generator | - ----------------+------------+------------+ - - The last one uses threads in order to implement two generators running at - the same time. (For the relation between generators, coroutines, and - threads, see - and .) It is therefore only - portable to platforms with kernel-based POSIX threads. */ - -/* These two functions together describe the side that writes data to the - subprocess when it has the form of an iterator. - - prepare_write (&num_bytes, p) must either return a pointer to data that - is ready to be written and set num_bytes to the number of bytes ready to - be written, or return NULL when no more bytes are to be written. - - done_write (data_written, num_bytes_written) is called after - num_bytes_written bytes were written. It is guaranteed that - num_bytes_written > 0. - Here p is always the private_data argument passed to the main function. */ -typedef const void * (*prepare_write_fn) (size_t *num_bytes_p, - void *private_data); -typedef void (*done_write_fn) (void *data_written, size_t num_bytes_written, - void *private_data); - -/* These two functions together describe the side that reads data from the - subprocess when it has the form of an iterator. - - prepare_read (&num_bytes, p) must return a pointer to a buffer for data - that can be read and set num_bytes to the size of that buffer - (must be > 0). - - done_read (data_read, num_bytes_read, p) is called after num_bytes_read - bytes were read into the buffer. - Here p is always the private_data argument passed to the main function. */ -typedef void * (*prepare_read_fn) (size_t *num_bytes_p, - void *private_data); -typedef void (*done_read_fn) (void *data_read, size_t num_bytes_read, - void *private_data); - - -/* ============================ pipe_filter_ii ============================ */ - -/* Create a subprocess and pipe some data through it. - Arguments: - - progname is the program name used in error messages. - - prog_path is the file name of the program to invoke. - - prog_argv is a NULL terminated argument list, starting with prog_path as - first element. - - If null_stderr is true, the subprocess' stderr will be redirected to - /dev/null, and the usual error message to stderr will be omitted. - This is suitable when the subprocess does not fulfill an important task. - - If exit_on_error is true, any error will cause the main process to exit - with an error status. - If the subprocess does not terminate correctly, exit if exit_on_error is - true, otherwise return 127. - Callback arguments are as described above. - - Data is alternately written to the subprocess, through the functions - prepare_write and done_write, and read from the subprocess, through the - functions prepare_read and done_read. - - Note that the prepare_write/done_write functions and the - prepare_read/done_read functions may be called in different threads than - the current thread (depending on the platform). But they will not be - called after the pipe_filter_ii_execute function has returned. - - Return 0 upon success, or (only if exit_on_error is false): - - -1 with errno set upon failure, - - the positive exit code of the subprocess if that failed. */ -extern int - pipe_filter_ii_execute (const char *progname, - const char *prog_path, - const char * const *prog_argv, - bool null_stderr, bool exit_on_error, - prepare_write_fn prepare_write, - done_write_fn done_write, - prepare_read_fn prepare_read, - done_read_fn done_read, - void *private_data); - - -/* ============================ pipe_filter_ig ============================ */ - -struct pipe_filter_ig; - - -/* ============================ pipe_filter_gi ============================ */ - -struct pipe_filter_gi; - -/* Finish reading the output via the prepare_read/done_read functions - specified to pipe_filter_gi_create. - - Note that the prepare_read/done_read functions may be called in a - different thread than the current thread (depending on the platform). - However, they will always be called before pipe_filter_gi_close has - returned. - - The write side of the pipe is closed as soon as pipe_filter_gi_close - starts, while the read side will be closed just before it finishes. - - Return 0 upon success, or (only if exit_on_error is false): - - -1 with errno set upon failure, - - the positive exit code of the subprocess if that failed. */ -extern int - pipe_filter_gi_close (struct pipe_filter_gi *filter); - -/* Create a subprocess and pipe some data through it. - Arguments: - - progname is the program name used in error messages. - - prog_path is the file name of the program to invoke. - - prog_argv is a NULL terminated argument list, starting with - prog_path as first element. - - If null_stderr is true, the subprocess' stderr will be redirected - to /dev/null, and the usual error message to stderr will be - omitted. This is suitable when the subprocess does not fulfill an - important task. - - If exit_on_error is true, any error will cause the main process to - exit with an error status. - If the subprocess does not start correctly, exit if exit_on_error is - true, otherwise return NULL and set errno. - - The caller will write to the subprocess through pipe_filter_gi_write - and finally call pipe_filter_gi_close. During such calls, the - prepare_read and done_read function may be called to process any data - that the subprocess has written. - - Note that the prepare_read/done_read functions may be called in a - different thread than the current thread (depending on the platform). - But they will not be called after the pipe_filter_gi_close function has - returned. - - Return the freshly created 'struct pipe_filter_gi'. */ -extern struct pipe_filter_gi * - pipe_filter_gi_create (const char *progname, - const char *prog_path, - const char * const *prog_argv, - bool null_stderr, bool exit_on_error, - prepare_read_fn prepare_read, - done_read_fn done_read, - void *private_data) - _GL_ATTRIBUTE_DEALLOC (pipe_filter_gi_close, 1); - -/* Write size bytes starting at buf into the pipe and in the meanwhile - possibly call the prepare_read and done_read functions specified to - pipe_filter_gi_create. - - Note that the prepare_read/done_read functions may be called in a - different thread than the current thread (depending on the platform). - However, they will always be called before pipe_filter_gi_write has - returned, or otherwise not sooner than the next call to - pipe_filter_gi_write or pipe_filter_gi_close. - - Return only after all the entire buffer has been written to the pipe or - the subprocess has exited. - - Return 0 upon success, or (only if exit_on_error is false): - - -1 with errno set upon failure, - - the positive exit code of the subprocess if that failed. */ -extern int - pipe_filter_gi_write (struct pipe_filter_gi *filter, - const void *buf, size_t size); - - -/* ============================ pipe_filter_gg ============================ */ - - -/* ======================================================================== */ - - -#ifdef __cplusplus -} -#endif - - -#endif /* _PIPE_FILTER_H */ diff --git a/include/libgnulib/posixtm.h b/include/libgnulib/posixtm.h deleted file mode 100755 index 74b4abe..0000000 --- a/include/libgnulib/posixtm.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Parse dates for touch and date. - - Copyright (C) 1998, 2003, 2005, 2007-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Yacc-based version written by Jim Kingdon and David MacKenzie. - Rewritten by Jim Meyering. */ - -#ifndef POSIXTM_H_ -#define POSIXTM_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* POSIX Date Syntax flags. */ -#define PDS_TRAILING_YEAR 1 -#define PDS_CENTURY 2 -#define PDS_SECONDS 4 -#define PDS_PRE_2000 8 - -/* For compatibility with older versions of this header, in which - PDS_LEADING_YEAR had its own bit. */ -#define PDS_LEADING_YEAR 0 - -bool posixtime (time_t *p, const char *s, unsigned int syntax_bits); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/posixver.h b/include/libgnulib/posixver.h deleted file mode 100755 index 91ecf15..0000000 --- a/include/libgnulib/posixver.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Which POSIX version to conform to, for utilities. - - Copyright (C) 2002-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - - -int posix2_version (void); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/printf-args.h b/include/libgnulib/printf-args.h deleted file mode 100755 index 24a8674..0000000 --- a/include/libgnulib/printf-args.h +++ /dev/null @@ -1,196 +0,0 @@ -/* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _PRINTF_ARGS_H -#define _PRINTF_ARGS_H - -/* This file can be parametrized with the following macros: - ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. - PRINTF_FETCHARGS Name of the function to be declared. - STATIC Set to 'static' to declare the function static. */ - -/* Default parameters. */ -#ifndef PRINTF_FETCHARGS -# define PRINTF_FETCHARGS printf_fetchargs -#endif - -/* Get size_t, wchar_t. */ -#include - -/* Get wint_t. */ -#if HAVE_WINT_T -# include -#endif - -/* Get intN_t, uintN_t, intN_fast_t, uintN_fast_t. */ -#include - -/* Get va_list. */ -#include - - -/* Argument types */ -typedef enum -{ - TYPE_NONE, - TYPE_SCHAR, - TYPE_UCHAR, - TYPE_SHORT, - TYPE_USHORT, - TYPE_INT, - TYPE_UINT, - TYPE_LONGINT, - TYPE_ULONGINT, - TYPE_LONGLONGINT, - TYPE_ULONGLONGINT, - /* According to ISO C 23 § 7.23.6.1, "all exact-width integer types", - "all minimum-width integer types", and "all fastest minimum-width integer - types" defined in should be supported. But for portability - between platforms, we support only those with N = 8, 16, 32, 64. */ - TYPE_INT8_T, - TYPE_UINT8_T, - TYPE_INT16_T, - TYPE_UINT16_T, - TYPE_INT32_T, - TYPE_UINT32_T, - TYPE_INT64_T, - TYPE_UINT64_T, - TYPE_INT_FAST8_T, - TYPE_UINT_FAST8_T, - TYPE_INT_FAST16_T, - TYPE_UINT_FAST16_T, - TYPE_INT_FAST32_T, - TYPE_UINT_FAST32_T, - TYPE_INT_FAST64_T, - TYPE_UINT_FAST64_T, - TYPE_DOUBLE, - TYPE_LONGDOUBLE, - TYPE_CHAR, -#if HAVE_WINT_T - TYPE_WIDE_CHAR, -#endif - TYPE_STRING, - TYPE_WIDE_STRING, - TYPE_POINTER, - TYPE_COUNT_SCHAR_POINTER, - TYPE_COUNT_SHORT_POINTER, - TYPE_COUNT_INT_POINTER, - TYPE_COUNT_LONGINT_POINTER, - TYPE_COUNT_LONGLONGINT_POINTER, - TYPE_COUNT_INT8_T_POINTER, - TYPE_COUNT_INT16_T_POINTER, - TYPE_COUNT_INT32_T_POINTER, - TYPE_COUNT_INT64_T_POINTER, - TYPE_COUNT_INT_FAST8_T_POINTER, - TYPE_COUNT_INT_FAST16_T_POINTER, - TYPE_COUNT_INT_FAST32_T_POINTER, - TYPE_COUNT_INT_FAST64_T_POINTER -#if ENABLE_UNISTDIO - /* The unistdio extensions. */ -, TYPE_U8_STRING -, TYPE_U16_STRING -, TYPE_U32_STRING -#endif -} arg_type; - -/* Polymorphic argument */ -typedef struct -{ - arg_type type; - union - { - signed char a_schar; - unsigned char a_uchar; - short a_short; - unsigned short a_ushort; - int a_int; - unsigned int a_uint; - long int a_longint; - unsigned long int a_ulongint; - long long int a_longlongint; - unsigned long long int a_ulonglongint; - int8_t a_int8_t; - uint8_t a_uint8_t; - int16_t a_int16_t; - uint16_t a_uint16_t; - int32_t a_int32_t; - uint32_t a_uint32_t; - int64_t a_int64_t; - uint64_t a_uint64_t; - int_fast8_t a_int_fast8_t; - uint_fast8_t a_uint_fast8_t; - int_fast16_t a_int_fast16_t; - uint_fast16_t a_uint_fast16_t; - int_fast32_t a_int_fast32_t; - uint_fast32_t a_uint_fast32_t; - int_fast64_t a_int_fast64_t; - uint_fast64_t a_uint_fast64_t; - float a_float; /* unused */ - double a_double; - long double a_longdouble; - int a_char; -#if HAVE_WINT_T - wint_t a_wide_char; -#endif - const char* a_string; - const wchar_t* a_wide_string; - void* a_pointer; - signed char * a_count_schar_pointer; - short * a_count_short_pointer; - int * a_count_int_pointer; - long int * a_count_longint_pointer; - long long int * a_count_longlongint_pointer; - int8_t * a_count_int8_t_pointer; - int16_t * a_count_int16_t_pointer; - int32_t * a_count_int32_t_pointer; - int64_t * a_count_int64_t_pointer; - int_fast8_t * a_count_int_fast8_t_pointer; - int_fast16_t * a_count_int_fast16_t_pointer; - int_fast32_t * a_count_int_fast32_t_pointer; - int_fast64_t * a_count_int_fast64_t_pointer; -#if ENABLE_UNISTDIO - /* The unistdio extensions. */ - const uint8_t * a_u8_string; - const uint16_t * a_u16_string; - const uint32_t * a_u32_string; -#endif - } - a; -} -argument; - -/* Number of directly allocated arguments (no malloc() needed). */ -#define N_DIRECT_ALLOC_ARGUMENTS 7 - -typedef struct -{ - size_t count; - argument *arg; - argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS]; -} -arguments; - - -/* Fetch the arguments, putting them into a. */ -#ifdef STATIC -STATIC -#else -extern -#endif -int PRINTF_FETCHARGS (va_list args, arguments *a); - -#endif /* _PRINTF_ARGS_H */ diff --git a/include/libgnulib/printf-frexp.h b/include/libgnulib/printf-frexp.h deleted file mode 100755 index 8467f98..0000000 --- a/include/libgnulib/printf-frexp.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Split a double into fraction and mantissa, for hexadecimal printf. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Write a finite, positive number x as - x = mantissa * 2^exp - where exp >= DBL_MIN_EXP - 1, - mantissa < 2.0, - if x is not a denormalized number then mantissa >= 1.0. - Store exp in *EXPPTR and return mantissa. */ -extern double printf_frexp (double x, int *expptr); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/printf-frexpl.h b/include/libgnulib/printf-frexpl.h deleted file mode 100755 index 11562ed..0000000 --- a/include/libgnulib/printf-frexpl.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Split a 'long double' into fraction and mantissa, for hexadecimal printf. - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Write a finite, positive number x as - x = mantissa * 2^exp - where exp >= LDBL_MIN_EXP - 1, - mantissa < 2.0, - if x is not a denormalized number then mantissa >= 1.0. - Store exp in *EXPPTR and return mantissa. */ -extern long double printf_frexpl (long double x, int *expptr); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/printf-parse.h b/include/libgnulib/printf-parse.h deleted file mode 100755 index 949b875..0000000 --- a/include/libgnulib/printf-parse.h +++ /dev/null @@ -1,193 +0,0 @@ -/* Parse printf format string. - Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _PRINTF_PARSE_H -#define _PRINTF_PARSE_H - -/* This file can be parametrized with the following macros: - ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. - STATIC Set to 'static' to declare the function static. */ - -#if HAVE_FEATURES_H -# include /* for __GLIBC__, __UCLIBC__ */ -#endif - -#include "printf-args.h" - - -/* Flags */ -#define FLAG_GROUP 1 /* ' flag */ -#define FLAG_LEFT 2 /* - flag */ -#define FLAG_SHOWSIGN 4 /* + flag */ -#define FLAG_SPACE 8 /* space flag */ -#define FLAG_ALT 16 /* # flag */ -#define FLAG_ZERO 32 -#if __GLIBC__ >= 2 && !defined __UCLIBC__ -# define FLAG_LOCALIZED 64 /* I flag, uses localized digits */ -#endif - -/* arg_index value indicating that no argument is consumed. */ -#define ARG_NONE (~(size_t)0) - -/* xxx_directive: A parsed directive. - xxx_directives: A parsed format string. */ - -/* Number of directly allocated directives (no malloc() needed). */ -#define N_DIRECT_ALLOC_DIRECTIVES 7 - -/* A parsed directive. */ -typedef struct -{ - const char* dir_start; - const char* dir_end; - int flags; - const char* width_start; - const char* width_end; - size_t width_arg_index; - const char* precision_start; - const char* precision_end; - size_t precision_arg_index; - char conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */ - size_t arg_index; -} -char_directive; - -/* A parsed format string. */ -typedef struct -{ - size_t count; - char_directive *dir; - size_t max_width_length; - size_t max_precision_length; - char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; -} -char_directives; - -#if ENABLE_UNISTDIO - -/* A parsed directive. */ -typedef struct -{ - const uint8_t* dir_start; - const uint8_t* dir_end; - int flags; - const uint8_t* width_start; - const uint8_t* width_end; - size_t width_arg_index; - const uint8_t* precision_start; - const uint8_t* precision_end; - size_t precision_arg_index; - uint8_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */ - size_t arg_index; -} -u8_directive; - -/* A parsed format string. */ -typedef struct -{ - size_t count; - u8_directive *dir; - size_t max_width_length; - size_t max_precision_length; - u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; -} -u8_directives; - -/* A parsed directive. */ -typedef struct -{ - const uint16_t* dir_start; - const uint16_t* dir_end; - int flags; - const uint16_t* width_start; - const uint16_t* width_end; - size_t width_arg_index; - const uint16_t* precision_start; - const uint16_t* precision_end; - size_t precision_arg_index; - uint16_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */ - size_t arg_index; -} -u16_directive; - -/* A parsed format string. */ -typedef struct -{ - size_t count; - u16_directive *dir; - size_t max_width_length; - size_t max_precision_length; - u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; -} -u16_directives; - -/* A parsed directive. */ -typedef struct -{ - const uint32_t* dir_start; - const uint32_t* dir_end; - int flags; - const uint32_t* width_start; - const uint32_t* width_end; - size_t width_arg_index; - const uint32_t* precision_start; - const uint32_t* precision_end; - size_t precision_arg_index; - uint32_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */ - size_t arg_index; -} -u32_directive; - -/* A parsed format string. */ -typedef struct -{ - size_t count; - u32_directive *dir; - size_t max_width_length; - size_t max_precision_length; - u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; -} -u32_directives; - -#endif - - -/* Parses the format string. Fills in the number N of directives, and fills - in directives[0], ..., directives[N-1], and sets directives[N].dir_start - to the end of the format string. Also fills in the arg_type fields of the - arguments and the needed count of arguments. */ -#if ENABLE_UNISTDIO -extern int - ulc_printf_parse (const char *format, char_directives *d, arguments *a); -extern int - u8_printf_parse (const uint8_t *format, u8_directives *d, arguments *a); -extern int - u16_printf_parse (const uint16_t *format, u16_directives *d, - arguments *a); -extern int - u32_printf_parse (const uint32_t *format, u32_directives *d, - arguments *a); -#else -# ifdef STATIC -STATIC -# else -extern -# endif -int printf_parse (const char *format, char_directives *d, arguments *a); -#endif - -#endif /* _PRINTF_PARSE_H */ diff --git a/include/libgnulib/priv-set.h b/include/libgnulib/priv-set.h deleted file mode 100755 index 6201b74..0000000 --- a/include/libgnulib/priv-set.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Query, remove, or restore a Solaris privilege. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . - - Written by David Bartley. */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, HAVE_PRIV_H, - HAVE_GETPPRIV. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef PRIV_SET_INLINE -# define PRIV_SET_INLINE _GL_INLINE -#endif - -#if HAVE_GETPPRIV && HAVE_PRIV_H - -# include - -# ifdef __cplusplus -extern "C" { -# endif - - -int priv_set_ismember (const char *priv); -int priv_set_remove (const char *priv); -int priv_set_restore (const char *priv); - -PRIV_SET_INLINE int -priv_set_remove_linkdir (void) -{ - return priv_set_remove (PRIV_SYS_LINKDIR); -} - -PRIV_SET_INLINE int -priv_set_restore_linkdir (void) -{ - return priv_set_restore (PRIV_SYS_LINKDIR); -} - -#else - -PRIV_SET_INLINE int -priv_set_remove_linkdir (void) -{ - return -1; -} - -PRIV_SET_INLINE int -priv_set_restore_linkdir (void) -{ - return -1; -} - - -# ifdef __cplusplus -} -# endif - -#endif - -_GL_INLINE_HEADER_END diff --git a/include/libgnulib/progname.h b/include/libgnulib/progname.h deleted file mode 100755 index a61872b..0000000 --- a/include/libgnulib/progname.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Program name management. - Copyright (C) 2001-2004, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _PROGNAME_H -#define _PROGNAME_H - -/* Programs using this file should do the following in main(): - set_program_name (argv[0]); - */ - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* String containing name the program is called with. */ -extern const char *program_name; - -/* Set program_name, based on argv[0]. - argv0 must be a string allocated with indefinite extent, and must not be - modified after this call. */ -extern void set_program_name (const char *argv0); - -#if ENABLE_RELOCATABLE - -/* Set program_name, based on argv[0], and original installation prefix and - directory, for relocatability. */ -extern void set_program_name_and_installdir (const char *argv0, - const char *orig_installprefix, - const char *orig_installdir); -#undef set_program_name -#define set_program_name(ARG0) \ - set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR) - -/* Return the full pathname of the current executable, based on the earlier - call to set_program_name_and_installdir. Return NULL if unknown. */ -extern char *get_full_program_name (void); - -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _PROGNAME_H */ diff --git a/include/libgnulib/propername.h b/include/libgnulib/propername.h deleted file mode 100755 index 6247a99..0000000 --- a/include/libgnulib/propername.h +++ /dev/null @@ -1,134 +0,0 @@ -/* Localization of proper names. -*- coding: utf-8 -*- - Copyright (C) 2006, 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - 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 3 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, see . */ - -/* INTRODUCTION - - What do - - Torbjörn Granlund (coreutils) - François Pinard (coreutils) - Danilo Šegan (gettext) - - have in common? - - A non-ASCII name. This causes trouble in the --version output. The simple - "solution" unfortunately mutilates the name. - - $ du --version | grep Granlund - Écrit par Torbjorn Granlund, David MacKenzie, Paul Eggert et Jim Meyering. - - $ ptx --version | grep Pinard - Écrit par F. Pinard. - - What is desirable, is to print the full name if the output character set - allows it, and the ASCIIfied name only as a fallback. - - $ recode-sr-latin --version - ... - Written by Danilo Šegan and Bruno Haible. - - $ LC_ALL=C recode-sr-latin --version - ... - Written by Danilo Segan and Bruno Haible. - - The 'propername' and 'propername-lite' modules do this. Plus, for - languages that do not use the Latin alphabet, they allow a translator - to write the name using that different writing system. In that case the - propername and propername_utf8 output will look like this: - () - whereas the propername_lite output will just be the translated name - if available, otherwise the original name (in UTF-8 if possible and - in ASCII if not). - - To use the 'propername' module requires two simple steps: - - 1) Add it to the list of gnulib modules to import, - - 2) Change the arguments of version_etc(), - - from "Paul Eggert" - to proper_name ("Paul Eggert") - - from "Torbjorn Granlund" - to proper_name_utf8 ("Torbjorn Granlund", "Torbj\303\266rn Granlund") - or proper_name_lite ("Torbjorn Granlund", "Torbj\303\266rn Granlund") - - from "F. Pinard" - to proper_name_utf8 ("Franc,ois Pinard", "Fran\303\247ois Pinard") - or proper_name_lite ("Franc,ois Pinard", "Fran\303\247ois Pinard") - - In source code, the second argument of proper_name_lite and - proper_name_utf8 should use octal escapes, not UTF-8 - e.g., - "Fran\303\247ois Pinard", not "François Pinard". Doing it - this way can avoid mishandling non-ASCII characters if the - source is recoded to non-UTF-8, or if the compiler does not - treat UTF-8 as-is in character string contents. - - (Optionally, here you can also add / * TRANSLATORS: ... * / comments - explaining how the name is written or pronounced.) - - Here is an example in context. - - char const *author_names[2] = { - / * TRANSLATORS: This is the proper name "Danilo Šegan". - In the original Cyrillic it is "Данило Шеган". * / - proper_name_utf8 ("Danilo Segan", "Danilo \305\240egan"), - proper_name ("Bruno Haible") - }; - - Differences between proper_name_utf8 and proper_name_lite: - * proper_name_lite uses the localization provided by the translator. - If there is no localization, it uses the name with Unicode characters - only in UTF-8 locales, otherwise it uses the original name in English. - * proper_name_utf8 is more elaborate: - - It uses the name with Unicode characters also when the locale encoding - is not UTF-8 but contains the necessary characters (e.g. ISO-8859-x or - GB18030). - - If there is a localization, it produces a better result when the - translator has given a poor localization. - */ - -#ifndef _PROPERNAME_H -#define _PROPERNAME_H - - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return the localization of NAME. NAME is written in ASCII. */ -extern const char * proper_name (const char *name) /* NOT attribute const */; - -/* Return the localization of a name whose original writing is not ASCII. - NAME_UTF8 is the real name, written in UTF-8 with octal or hexadecimal - escape sequences. NAME_ASCII is a fallback written only with ASCII - characters. */ -extern const char * proper_name_utf8 (const char *name_ascii, - const char *name_utf8); - -/* Return the localization of the name spelled NAME_ASCII in ASCII, - and NAME_UTF8 in UTF-8. This function needs less infrastructure - than proper_name and proper_name_utf8. */ -extern const char *proper_name_lite (const char *name_ascii, - const char *name_utf8); - -#ifdef __cplusplus -} -#endif - - -#endif /* _PROPERNAME_H */ diff --git a/include/libgnulib/pty-private.h b/include/libgnulib/pty-private.h deleted file mode 100755 index 5dfcb7c..0000000 --- a/include/libgnulib/pty-private.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Interface to the pt_chown program. - Copyright (C) 1998-1999, 2009-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Zack Weinberg , 1998. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _PTY_PRIVATE_H -#define _PTY_PRIVATE_H 1 - -/* The group slave pseudo terminals belong to. */ -#define TTY_GROUP "tty" - -/* The file descriptor connected to the master pseudo terminal. */ -#define PTY_FILENO 3 - -/* Path to the helper program that implements 'grantpt' in user space. */ -#define _PATH_PT_CHOWN PKGLIBEXECDIR "/pt_chown" - -/* Test whether given TTY is really a Unix98 pseudo terminal. */ -/* #define unix98_pseudo_p(Dev) ... */ - -/* Exit codes for the helper program. */ -enum /* failure modes */ -{ - FAIL_EBADF = 1, - FAIL_EINVAL, - FAIL_EACCES, - FAIL_EXEC, - FAIL_ENOMEM -}; - -#endif /* pty-private.h */ diff --git a/include/libgnulib/quote.h b/include/libgnulib/quote.h deleted file mode 100755 index f087a85..0000000 --- a/include/libgnulib/quote.h +++ /dev/null @@ -1,56 +0,0 @@ -/* quote.h - prototypes for quote.c - - Copyright (C) 1998-2001, 2003, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef QUOTE_H_ -#define QUOTE_H_ 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* The quoting options used by quote_n and quote. Its type is incomplete, - so it's useful only in expressions like '"e_quoting_options'. */ -extern struct quoting_options quote_quoting_options; - -/* Return an unambiguous printable representation of ARG (of size - ARGSIZE), allocated in slot N, suitable for diagnostics. If - ARGSIZE is SIZE_MAX, use the string length of the argument for - ARGSIZE. */ -char const *quote_n_mem (int n, char const *arg, size_t argsize); - -/* Return an unambiguous printable representation of ARG (of size - ARGSIZE), suitable for diagnostics. If ARGSIZE is SIZE_MAX, use - the string length of the argument for ARGSIZE. */ -char const *quote_mem (char const *arg, size_t argsize); - -/* Return an unambiguous printable representation of ARG, allocated in - slot N, suitable for diagnostics. */ -char const *quote_n (int n, char const *arg); - -/* Return an unambiguous printable representation of ARG, suitable for - diagnostics. */ -char const *quote (char const *arg); - - -#ifdef __cplusplus -} -#endif - -#endif /* !QUOTE_H_ */ diff --git a/include/libgnulib/quotearg.h b/include/libgnulib/quotearg.h deleted file mode 100755 index e525b9a..0000000 --- a/include/libgnulib/quotearg.h +++ /dev/null @@ -1,452 +0,0 @@ -/* quotearg.h - quote arguments for output - - Copyright (C) 1998-2002, 2004, 2006, 2008-2024 Free Software Foundation, - Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert */ - -#ifndef QUOTEARG_H_ -#define QUOTEARG_H_ 1 - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Basic quoting styles. For each style, an example is given on the - input strings "simple", "\0 \t\n'\"\033?""?/\\", and "a:b", using - quotearg_buffer, quotearg_mem, and quotearg_colon_mem with that - style and the default flags and quoted characters. Note that the - examples are shown here as valid C strings rather than what - displays on a terminal (with "??/" as a trigraph for "\\"). */ -enum quoting_style - { - /* Output names as-is (ls --quoting-style=literal). Can result in - embedded null bytes if QA_ELIDE_NULL_BYTES is not in - effect. - - quotearg_buffer: - "simple", "\0 \t\n'\"\033??/\\", "a:b" - quotearg: - "simple", " \t\n'\"\033??/\\", "a:b" - quotearg_colon: - "simple", " \t\n'\"\033??/\\", "a:b" - */ - literal_quoting_style, - - /* Quote names for the shell if they contain shell metacharacters - or would cause ambiguous output (ls --quoting-style=shell). - Can result in embedded null bytes if QA_ELIDE_NULL_BYTES is not - in effect. - - quotearg_buffer: - "simple", "'\0 \t\n'\\''\"\033??/\\'", "a:b" - quotearg: - "simple", "' \t\n'\\''\"\033??/\\'", "a:b" - quotearg_colon: - "simple", "' \t\n'\\''\"\033??/\\'", "'a:b'" - */ - shell_quoting_style, - - /* Quote names for the shell, even if they would normally not - require quoting (ls --quoting-style=shell-always). Can result - in embedded null bytes if QA_ELIDE_NULL_BYTES is not in effect. - Behaves like shell_quoting_style if QA_ELIDE_OUTER_QUOTES is in - effect. - - quotearg_buffer: - "'simple'", "'\0 \t\n'\\''\"\033??/\\'", "'a:b'" - quotearg: - "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'" - quotearg_colon: - "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'" - */ - shell_always_quoting_style, - - /* Quote names for the shell if they contain shell metacharacters - or other problematic characters (ls --quoting-style=shell-escape). - Non printable characters are quoted using the $'...' syntax - , - which originated in ksh93 and is widely supported by most shells, - and proposed for inclusion in POSIX. - - quotearg_buffer: - "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b" - quotearg: - "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b" - quotearg_colon: - "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "'a:b'" - */ - shell_escape_quoting_style, - - /* Quote names for the shell even if they would normally not - require quoting (ls --quoting-style=shell-escape). - Non printable characters are quoted using the $'...' syntax - , - which originated in ksh93 and is widely supported by most shells, - and proposed for inclusion in POSIX. Behaves like - shell_escape_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect. - - quotearg_buffer: - "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b" - quotearg: - "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b" - quotearg_colon: - "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "'a:b'" - */ - shell_escape_always_quoting_style, - - /* Quote names as for a C language string (ls --quoting-style=c). - Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is - in effect. Split into consecutive strings if - QA_SPLIT_TRIGRAPHS. - - quotearg_buffer: - "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" - quotearg: - "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" - quotearg_colon: - "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a\\:b\"" - */ - c_quoting_style, - - /* Like c_quoting_style except omit the surrounding double-quote - characters if no quoted characters are encountered. - - quotearg_buffer: - "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "a:b" - quotearg: - "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "a:b" - quotearg_colon: - "simple", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" - */ - c_maybe_quoting_style, - - /* Like c_quoting_style except always omit the surrounding - double-quote characters and ignore QA_SPLIT_TRIGRAPHS - (ls --quoting-style=escape). - - quotearg_buffer: - "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b" - quotearg: - "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a:b" - quotearg_colon: - "simple", "\\0 \\t\\n'\"\\033??/\\\\", "a\\:b" - */ - escape_quoting_style, - - /* Like clocale_quoting_style, but use single quotes in the - default C locale or if the program does not use gettext - (ls --quoting-style=locale). For UTF-8 locales, quote - characters will use Unicode. - - LC_MESSAGES=C - quotearg_buffer: - "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" - quotearg: - "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" - quotearg_colon: - "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a\\:b'" - - LC_MESSAGES=pt_PT.utf8 - quotearg_buffer: - "\302\253simple\302\273", - "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" - quotearg: - "\302\253simple\302\273", - "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" - quotearg_colon: - "\302\253simple\302\273", - "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273" - */ - locale_quoting_style, - - /* Like c_quoting_style except use quotation marks appropriate for - the locale and ignore QA_SPLIT_TRIGRAPHS - (ls --quoting-style=clocale). - - LC_MESSAGES=C - quotearg_buffer: - "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" - quotearg: - "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a:b\"" - quotearg_colon: - "\"simple\"", "\"\\0 \\t\\n'\\\"\\033??/\\\\\"", "\"a\\:b\"" - - LC_MESSAGES=pt_PT.utf8 - quotearg_buffer: - "\302\253simple\302\273", - "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" - quotearg: - "\302\253simple\302\273", - "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273" - quotearg_colon: - "\302\253simple\302\273", - "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273" - */ - clocale_quoting_style, - - /* Like clocale_quoting_style except use the custom quotation marks - set by set_custom_quoting. If custom quotation marks are not - set, the behavior is undefined. - - left_quote = right_quote = "'" - quotearg_buffer: - "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" - quotearg: - "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a:b'" - quotearg_colon: - "'simple'", "'\\0 \\t\\n\\'\"\\033??/\\\\'", "'a\\:b'" - - left_quote = "(" and right_quote = ")" - quotearg_buffer: - "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)" - quotearg: - "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a:b)" - quotearg_colon: - "(simple)", "(\\0 \\t\\n'\"\\033??/\\\\)", "(a\\:b)" - - left_quote = ":" and right_quote = " " - quotearg_buffer: - ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b " - quotearg: - ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a:b " - quotearg_colon: - ":simple ", ":\\0\\ \\t\\n'\"\\033??/\\\\ ", ":a\\:b " - - left_quote = "\"'" and right_quote = "'\"" - Notice that this is treated as a single level of quotes or two - levels where the outer quote need not be escaped within the inner - quotes. For two levels where the outer quote must be escaped - within the inner quotes, you must use separate quotearg - invocations. - quotearg_buffer: - "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\"" - quotearg: - "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a:b'\"" - quotearg_colon: - "\"'simple'\"", "\"'\\0 \\t\\n\\'\"\\033??/\\\\'\"", "\"'a\\:b'\"" - */ - custom_quoting_style - }; - -/* Flags for use in set_quoting_flags. */ -enum quoting_flags - { - /* Always elide null bytes from styles that do not quote them, - even when the length of the result is available to the - caller. */ - QA_ELIDE_NULL_BYTES = 0x01, - - /* Omit the surrounding quote characters if no escaped characters - are encountered. Note that if no other character needs - escaping, then neither does the escape character. - *Attention!* This flag is unsupported in combination with the styles - shell_escape_quoting_style and shell_escape_always_quoting_style - (because in this situation it cannot handle strings that start - with a non-printable character). */ - QA_ELIDE_OUTER_QUOTES = 0x02, - - /* In the c_quoting_style and c_maybe_quoting_style, split ANSI - trigraph sequences into concatenated strings (for example, - "?""?/" rather than "??/", which could be confused with - "\\"). */ - QA_SPLIT_TRIGRAPHS = 0x04 - }; - -/* For now, --quoting-style=literal is the default, but this may change. */ -#ifndef DEFAULT_QUOTING_STYLE -# define DEFAULT_QUOTING_STYLE literal_quoting_style -#endif - -/* Names of quoting styles and their corresponding values. */ -extern char const *const quoting_style_args[]; -extern enum quoting_style const quoting_style_vals[]; - -struct quoting_options; - -/* The functions listed below set and use a hidden variable - that contains the default quoting style options. */ - -/* Allocate a new set of quoting options, with contents initially identical - to O if O is not null, or to the default if O is null. - It is the caller's responsibility to free the result. */ -struct quoting_options *clone_quoting_options (struct quoting_options *o) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Get the value of O's quoting style. If O is null, use the default. */ -enum quoting_style get_quoting_style (struct quoting_options const *o); - -/* In O (or in the default if O is null), - set the value of the quoting style to S. */ -void set_quoting_style (struct quoting_options *o, enum quoting_style s); - -/* In O (or in the default if O is null), - set the value of the quoting options for character C to I. - Return the old value. Currently, the only values defined for I are - 0 (the default) and 1 (which means to quote the character even if - it would not otherwise be quoted). C must never be a digit or a - letter that has special meaning after a backslash (for example, "\t" - for tab). */ -int set_char_quoting (struct quoting_options *o, char c, int i); - -/* In O (or in the default if O is null), - set the value of the quoting options flag to I, which can be a - bitwise combination of enum quoting_flags, or 0 for default - behavior. Return the old value. */ -int set_quoting_flags (struct quoting_options *o, int i); - -/* In O (or in the default if O is null), - set the value of the quoting style to custom_quoting_style, - set the left quote to LEFT_QUOTE, and set the right quote to - RIGHT_QUOTE. Each of LEFT_QUOTE and RIGHT_QUOTE must be - null-terminated and can be the empty string. Because backslashes are - used for escaping, it does not make sense for RIGHT_QUOTE to contain - a backslash. RIGHT_QUOTE must not begin with a digit or a letter - that has special meaning after a backslash (for example, "\t" for - tab). */ -void set_custom_quoting (struct quoting_options *o, - char const *left_quote, - char const *right_quote); - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using O to control quoting. - If O is null, use the default. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is -1, use the string length of the argument for ARGSIZE. - On output, BUFFER might contain embedded null bytes if ARGSIZE was - not -1, the style of O does not use backslash escapes, and the - flags of O do not request elision of null bytes.*/ -size_t quotearg_buffer (char *restrict buffer, size_t buffersize, - char const *arg, size_t argsize, - struct quoting_options const *o); - -/* Like quotearg_buffer, except return the result in a newly allocated - buffer. It is the caller's responsibility to free the result. The - result will not contain embedded null bytes. */ -char *quotearg_alloc (char const *arg, size_t argsize, - struct quoting_options const *o) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Like quotearg_alloc, except that the length of the result, - excluding the terminating null byte, is stored into SIZE if it is - non-NULL. The result might contain embedded null bytes if ARGSIZE - was not -1, SIZE was not NULL, the style of O does not use - backslash escapes, and the flags of O do not request elision of - null bytes.*/ -char *quotearg_alloc_mem (char const *arg, size_t argsize, - size_t *size, struct quoting_options const *o) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Use storage slot N to return a quoted version of the string ARG. - Use the default quoting options. - The returned value points to static storage that can be - reused by the next call to this function with the same value of N. - N must be nonnegative. The output of all functions in the - quotearg_n family are guaranteed to not contain embedded null - bytes.*/ -char *quotearg_n (int n, char const *arg); - -/* Equivalent to quotearg_n (0, ARG). */ -char *quotearg (char const *arg); - -/* Use storage slot N to return a quoted version of the argument ARG - of size ARGSIZE. This is like quotearg_n (N, ARG), except it can - quote null bytes. */ -char *quotearg_n_mem (int n, char const *arg, size_t argsize); - -/* Equivalent to quotearg_n_mem (0, ARG, ARGSIZE). */ -char *quotearg_mem (char const *arg, size_t argsize); - -/* Use style S and storage slot N to return a quoted version of the string ARG. - This is like quotearg_n (N, ARG), except that it uses S with no other - options to specify the quoting method. */ -char *quotearg_n_style (int n, enum quoting_style s, char const *arg); - -/* Use style S and storage slot N to return a quoted version of the - argument ARG of size ARGSIZE. This is like quotearg_n_style - (N, S, ARG), except it can quote null bytes. */ -char *quotearg_n_style_mem (int n, enum quoting_style s, - char const *arg, size_t argsize); - -/* Equivalent to quotearg_n_style (0, S, ARG). */ -char *quotearg_style (enum quoting_style s, char const *arg); - -/* Equivalent to quotearg_n_style_mem (0, S, ARG, ARGSIZE). */ -char *quotearg_style_mem (enum quoting_style s, - char const *arg, size_t argsize); - -/* Like quotearg (ARG), except also quote any instances of CH. - See set_char_quoting for a description of acceptable CH values. */ -char *quotearg_char (char const *arg, char ch); - -/* Like quotearg_char (ARG, CH), except it can quote null bytes. */ -char *quotearg_char_mem (char const *arg, size_t argsize, char ch); - -/* Equivalent to quotearg_char (ARG, ':'). */ -char *quotearg_colon (char const *arg); - -/* Like quotearg_colon (ARG), except it can quote null bytes. */ -char *quotearg_colon_mem (char const *arg, size_t argsize); - -/* Like quotearg_n_style, except with ':' quoting enabled. */ -char *quotearg_n_style_colon (int n, enum quoting_style s, char const *arg); - -/* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style - with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE. See - set_custom_quoting for a description of acceptable LEFT_QUOTE and - RIGHT_QUOTE values. */ -char *quotearg_n_custom (int n, char const *left_quote, - char const *right_quote, char const *arg); - -/* Like quotearg_n_custom (N, LEFT_QUOTE, RIGHT_QUOTE, ARG) except it - can quote null bytes. */ -char *quotearg_n_custom_mem (int n, char const *left_quote, - char const *right_quote, - char const *arg, size_t argsize); - -/* Equivalent to quotearg_n_custom (0, LEFT_QUOTE, RIGHT_QUOTE, ARG). */ -char *quotearg_custom (char const *left_quote, char const *right_quote, - char const *arg); - -/* Equivalent to quotearg_n_custom_mem (0, LEFT_QUOTE, RIGHT_QUOTE, ARG, - ARGSIZE). */ -char *quotearg_custom_mem (char const *left_quote, - char const *right_quote, - char const *arg, size_t argsize); - -/* Free any dynamically allocated memory. */ -void quotearg_free (void); - - -#ifdef __cplusplus -} -#endif - -#endif /* !QUOTEARG_H_ */ diff --git a/include/libgnulib/rawmemchr.valgrind b/include/libgnulib/rawmemchr.valgrind deleted file mode 100755 index bb201f7..0000000 --- a/include/libgnulib/rawmemchr.valgrind +++ /dev/null @@ -1,28 +0,0 @@ -# Suppress a valgrind message about use of uninitialized memory in rawmemchr(). - -# Copyright (C) 2008-2024 Free Software Foundation, Inc. -# -# This file 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 file 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 program. If not, see . - -# This use is OK because it provides only a speedup. -{ - rawmemchr-value4 - Memcheck:Value4 - fun:rawmemchr -} -{ - rawmemchr-value8 - Memcheck:Value8 - fun:rawmemchr -} diff --git a/include/libgnulib/read-file.h b/include/libgnulib/read-file.h deleted file mode 100755 index e91699f..0000000 --- a/include/libgnulib/read-file.h +++ /dev/null @@ -1,54 +0,0 @@ -/* read-file.h -- read file contents into a string - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - Written by Simon Josefsson. - - This file 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 file 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 program. If not, see . */ - -#ifndef READ_FILE_H -#define READ_FILE_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get size_t, free(). */ -#include - -/* Get FILE. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Indicate that the file is treated as binary. */ -#define RF_BINARY 0x1 - -/* Indicate that the file content contains sensitive information. */ -#define RF_SENSITIVE 0x2 - -extern char *fread_file (FILE * stream, int flags, size_t * length) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -extern char *read_file (const char *filename, int flags, size_t * length) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - -#endif /* READ_FILE_H */ diff --git a/include/libgnulib/readline.h b/include/libgnulib/readline.h deleted file mode 100755 index b4941df..0000000 --- a/include/libgnulib/readline.h +++ /dev/null @@ -1,51 +0,0 @@ -/* readline.h --- Simple implementation of readline. - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - Written by Simon Josefsson - - 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 3 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, see . */ - -#ifndef GL_READLINE_H -#define GL_READLINE_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_READLINE_READLINE_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if HAVE_READLINE_READLINE_H -/* makes use of the FILE type without including - itself. */ -# include -# include -#else -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/* Prints a prompt PROMPT and then reads and returns a single line of - text from the user. If PROMPT is NULL or the empty string, no - prompt is displayed. The returned line is allocated with malloc; - the caller should free the line when it has finished with it. */ -extern char *readline (const char *prompt) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -# ifdef __cplusplus -} -# endif - -#endif - -#endif /* GL_READLINE_H */ diff --git a/include/libgnulib/readtokens.h b/include/libgnulib/readtokens.h deleted file mode 100755 index 7514308..0000000 --- a/include/libgnulib/readtokens.h +++ /dev/null @@ -1,55 +0,0 @@ -/* readtokens.h -- Functions for reading tokens from an input stream. - - Copyright (C) 1990-1991, 1999, 2001-2004, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . - - Written by Jim Meyering. */ - -#ifndef READTOKENS_H -# define READTOKENS_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* FIXME: This header should use idx_t, not size_t. */ - -struct tokenbuffer -{ - size_t size; - char *buffer; -}; -typedef struct tokenbuffer token_buffer; - -void init_tokenbuffer (token_buffer *tokenbuffer); - -size_t - readtoken (FILE *stream, const char *delim, size_t n_delim, - token_buffer *tokenbuffer); -size_t - readtokens (FILE *stream, size_t projected_n_tokens, - const char *delim, size_t n_delim, - char ***tokens_out, size_t **token_lengths); - - -#ifdef __cplusplus -} -#endif - -#endif /* not READTOKENS_H */ diff --git a/include/libgnulib/readtokens0.h b/include/libgnulib/readtokens0.h deleted file mode 100755 index e135dfc..0000000 --- a/include/libgnulib/readtokens0.h +++ /dev/null @@ -1,51 +0,0 @@ -/* readtokens0.h -- read NUL-separated tokens from an input stream. - - Copyright (C) 2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . - - Written by Jim Meyering. */ - -#ifndef READTOKENS0_H -#define READTOKENS0_H 1 - -#include -#include -#include "obstack.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -struct Tokens -{ - size_t n_tok; - char **tok; - size_t *tok_len; - struct obstack o_data; /* Contains data pointed to by each tok[i]. */ - struct obstack o_tok; /* array of pointers to tokens */ - struct obstack o_tok_len; /* array of token lengths */ -}; - -void readtokens0_init (struct Tokens *t); -void readtokens0_free (struct Tokens *t); -bool readtokens0 (FILE *in, struct Tokens *t); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/readutmp.h b/include/libgnulib/readutmp.h deleted file mode 100755 index dcfd44d..0000000 --- a/include/libgnulib/readutmp.h +++ /dev/null @@ -1,338 +0,0 @@ -/* Declarations for GNU's read utmp module. - - Copyright (C) 1992-2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by jla; revised by djm */ - -#ifndef __READUTMP_H__ -#define __READUTMP_H__ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL, - HAVE_UTMP_H, HAVE_UTMPX_H, HAVE_STRUCT_UTMP_*, HAVE_STRUCT_UTMPX_*, - HAVE_UTMPNAME, HAVE_UTMPXNAME. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include "idx.h" - -#include -#include -#include - -/* AIX 4.3.3 has both utmp.h and utmpx.h, but only struct utmp - has the ut_exit member. */ -#if (HAVE_UTMPX_H && HAVE_UTMP_H && HAVE_STRUCT_UTMP_UT_EXIT \ - && ! HAVE_STRUCT_UTMPX_UT_EXIT) -# undef HAVE_UTMPX_H -#endif - -/* HPUX 10.20 needs utmp.h, for the definition of e.g., UTMP_FILE. */ -#if HAVE_UTMP_H -# include -#endif - -/* Needed for BOOT_TIME and USER_PROCESS. */ -#if HAVE_UTMPX_H -# if defined _THREAD_SAFE && defined UTMP_DATA_INIT - /* When including both utmp.h and utmpx.h on AIX 4.3, with _THREAD_SAFE - defined, work around the duplicate struct utmp_data declaration. */ -# define utmp_data gl_aix_4_3_workaround_utmp_data -# endif -# include -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Type of entries returned by read_utmp on all platforms. */ -struct gl_utmp -{ - /* All 'char *' here are of arbitrary length and point to storage - with lifetime equal to that of this struct. */ - char *ut_user; /* User name */ - char *ut_id; /* Session ID */ - char *ut_line; /* seat / device */ - char *ut_host; /* for remote sessions: user@host or host, - for local sessions: the X11 display :N */ - struct timespec ut_ts; /* time */ - pid_t ut_pid; /* process ID of ? */ - pid_t ut_session; /* process ID of session leader */ - short ut_type; /* BOOT_TIME, USER_PROCESS, or other */ - struct { int e_termination; int e_exit; } ut_exit; -}; - -/* The following types, macros, and constants describe the 'struct gl_utmp'. */ -#define UT_USER(UT) ((UT)->ut_user) -#define UT_TIME_MEMBER(UT) ((UT)->ut_ts.tv_sec) -#define UT_PID(UT) ((UT)->ut_pid) -#define UT_TYPE_EQ(UT, V) ((UT)->ut_type == (V)) -#define UT_TYPE_NOT_DEFINED 0 -#define UT_EXIT_E_TERMINATION(UT) ((UT)->ut_exit.e_termination) -#define UT_EXIT_E_EXIT(UT) ((UT)->ut_exit.e_exit) - -/* Type of entry returned by read_utmp(). */ -typedef struct gl_utmp STRUCT_UTMP; - -/* Size of the UT_USER (ut) member, or -1 if unbounded. */ -enum { UT_USER_SIZE = -1 }; - -/* Size of the ut->ut_id member, or -1 if unbounded. */ -enum { UT_ID_SIZE = -1 }; - -/* Size of the ut->ut_line member, or -1 if unbounded. */ -enum { UT_LINE_SIZE = -1 }; - -/* Size of the ut->ut_host member, or -1 if unbounded. */ -enum { UT_HOST_SIZE = -1 }; - - -/* When read_utmp accesses a file (as opposed to fetching the information - from systemd), it uses the following low-level types and macros. - Keep them here, rather than moving them into readutmp.c, for backward - compatibility. */ - -#if HAVE_UTMPX_H - -/* defines 'struct utmpx' with the following fields: - - Field Type Platforms - ---------- ------ --------- - ⎡ ut_user char[] glibc, musl, macOS, FreeBSD, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ⎣ ut_name char[] NetBSD, Minix - ut_id char[] glibc, musl, macOS, FreeBSD, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_line char[] glibc, musl, macOS, FreeBSD, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_pid pid_t glibc, musl, macOS, FreeBSD, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_type short glibc, musl, macOS, FreeBSD, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ⎡ ut_tv struct glibc, musl, macOS, FreeBSD, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ⎢ { tv_sec; tv_usec; } - ⎣ ut_time time_t Cygwin - ut_host char[] glibc, musl, macOS, FreeBSD, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_exit struct glibc, musl, NetBSD, Minix, HP-UX, IRIX, Solaris, Android - { e_termination; e_exit; } - ut_session [long] int glibc, musl, NetBSD, Minix, IRIX, Solaris, Android - ⎡ ut_addr [long] int HP-UX, Cygwin - ⎢ ut_addr_v6 [u]int[4] glibc, musl, Android - ⎣ ut_ss struct sockaddr_storage NetBSD, Minix - */ - -# if __GLIBC__ && _TIME_BITS == 64 -/* This is a near-copy of glibc's struct utmpx, which stops working - after the year 2038. Unlike the glibc version, struct utmpx32 - describes the file format even if time_t is 64 bits. */ -#define _GL_UT_USER_SIZE sizeof (((struct utmpx *) 0)->ut_user) -#define _GL_UT_ID_SIZE sizeof (((struct utmpx *) 0)->ut_id) -#define _GL_UT_LINE_SIZE sizeof (((struct utmpx *) 0)->ut_line) -#define _GL_UT_HOST_SIZE sizeof (((struct utmpx *) 0)->ut_host) -struct utmpx32 -{ - short int ut_type; /* Type of login. */ - pid_t ut_pid; /* Process ID of login process. */ - char ut_line[_GL_UT_LINE_SIZE]; /* Devicename. */ - char ut_id[_GL_UT_ID_SIZE]; /* Inittab ID. */ - char ut_user[_GL_UT_USER_SIZE]; /* Username. */ - char ut_host[_GL_UT_HOST_SIZE]; /* Hostname for remote login. */ - struct __exit_status ut_exit; /* Exit status of a process marked - as DEAD_PROCESS. */ - /* The fields ut_session and ut_tv must be the same size when compiled - 32- and 64-bit. This allows files and shared memory to be shared - between 32- and 64-bit applications. */ - int ut_session; /* Session ID, used for windowing. */ - struct - { - /* Seconds. Unsigned not signed, as glibc did not exist before 1970, - and if the format is still in use after 2038 its timestamps - will surely have the sign bit on. This hack stops working - at 2106-02-07 06:28:16 UTC. */ - unsigned int tv_sec; - int tv_usec; /* Microseconds. */ - } ut_tv; /* Time entry was made. */ - int ut_addr_v6[4]; /* Internet address of remote host. */ - char ut_reserved[20]; /* Reserved for future use. */ -}; -# define UTMP_STRUCT_NAME utmpx32 -# else -# define UTMP_STRUCT_NAME utmpx -# endif -# define SET_UTMP_ENT setutxent -# define GET_UTMP_ENT getutxent -# define END_UTMP_ENT endutxent -# ifdef HAVE_UTMPXNAME /* glibc, musl, macOS, NetBSD, Minix, IRIX, Solaris, Cygwin */ -# define UTMP_NAME_FUNCTION utmpxname -# elif defined UTXDB_ACTIVE /* FreeBSD */ -# define UTMP_NAME_FUNCTION(x) setutxdb (UTXDB_ACTIVE, x) -# elif defined __ANDROID__ /* Android */ -/* As of Android NDK r26, the getutxent, setutxent functions are no-ops. - Therefore we can ignore the file name. */ -# define UTMP_NAME_FUNCTION(x) ((void) (x)) -# endif - -#elif HAVE_UTMP_H - -/* defines 'struct utmp' with the following fields: - - Field Type Platforms - ---------- ------ --------- - ⎡ ut_user char[] glibc, musl, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ⎣ ut_name char[] macOS, old FreeBSD, NetBSD, OpenBSD, Minix - ut_id char[] glibc, musl, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_line char[] glibc, musl, macOS, old FreeBSD, NetBSD, OpenBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_pid pid_t glibc, musl, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ut_type short glibc, musl, AIX, HP-UX, IRIX, Solaris, Cygwin, Android - ⎡ ut_tv struct glibc, musl, Android - ⎢ { tv_sec; tv_usec; } - ⎣ ut_time time_t macOS, old FreeBSD, NetBSD, OpenBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin - ut_host char[] glibc, musl, macOS, old FreeBSD, NetBSD, OpenBSD, Minix, AIX, HP-UX, Cygwin, Android - ut_exit struct glibc, musl, AIX, HP-UX, IRIX, Solaris, Android - { e_termination; e_exit; } - ut_session [long] int glibc, musl, Android - ⎡ ut_addr [long] int HP-UX, Cygwin - ⎣ ut_addr_v6 [u]int[4] glibc, musl, Android - */ - -# define UTMP_STRUCT_NAME utmp -# define SET_UTMP_ENT setutent -# define GET_UTMP_ENT getutent -# define END_UTMP_ENT endutent -# ifdef HAVE_UTMPNAME /* glibc, musl, NetBSD, Minix, AIX, HP-UX, IRIX, Solaris, Cygwin, Android */ -# define UTMP_NAME_FUNCTION utmpname -# endif - -#endif - -/* Evaluates to 1 if gl_utmp's ut_id field may ever have a non-zero value. */ -#define HAVE_STRUCT_XTMP_UT_ID \ - (READUTMP_USE_SYSTEMD \ - || (HAVE_UTMPX_H ? HAVE_STRUCT_UTMPX_UT_ID : HAVE_STRUCT_UTMP_UT_ID)) - -/* Evaluates to 1 if gl_utmp's ut_pid field may ever have a non-zero value. */ -#define HAVE_STRUCT_XTMP_UT_PID \ - (READUTMP_USE_SYSTEMD \ - || (HAVE_UTMPX_H ? HAVE_STRUCT_UTMPX_UT_PID : HAVE_STRUCT_UTMP_UT_PID)) - -/* Evaluates to 1 if gl_utmp's ut_host field may ever be non-empty. */ -#define HAVE_STRUCT_XTMP_UT_HOST \ - (READUTMP_USE_SYSTEMD \ - || (HAVE_UTMPX_H ? HAVE_STRUCT_UTMPX_UT_HOST : HAVE_STRUCT_UTMP_UT_HOST)) - -/* Definition of UTMP_FILE. - On glibc systems, UTMP_FILE is "/var/run/utmp". */ -#if !defined UTMP_FILE && defined _PATH_UTMP -# define UTMP_FILE _PATH_UTMP -#endif -#ifdef UTMPX_FILE /* Solaris, SysVr4 */ -# undef UTMP_FILE -# define UTMP_FILE UTMPX_FILE -#endif -#ifndef UTMP_FILE -# define UTMP_FILE "/etc/utmp" -#endif - -/* Definition of WTMP_FILE. - On glibc systems, UTMP_FILE is "/var/log/wtmp". */ -#if !defined WTMP_FILE && defined _PATH_WTMP -# define WTMP_FILE _PATH_WTMP -#endif -#ifdef WTMPX_FILE /* Solaris, SysVr4 */ -# undef WTMP_FILE -# define WTMP_FILE WTMPX_FILE -#endif -#ifndef WTMP_FILE -# define WTMP_FILE "/etc/wtmp" -#endif - -/* In early versions of Android, did not define BOOT_TIME, only - USER_PROCESS. We need to use the value that is defined in newer versions - of Android. */ -#if defined __ANDROID__ && !defined BOOT_TIME -# define BOOT_TIME 2 -#endif - -/* Some platforms, such as OpenBSD, don't have an ut_type field and don't have - the BOOT_TIME and USER_PROCESS macros. But we want to support them in - 'struct gl_utmp'. */ -#if !(HAVE_UTMPX_H ? HAVE_STRUCT_UTMPX_UT_TYPE : HAVE_STRUCT_UTMP_UT_TYPE) -# define BOOT_TIME 2 -# define USER_PROCESS 0 -#endif - -/* Macros that test (UT)->ut_type. */ -#ifdef BOOT_TIME -# define UT_TYPE_BOOT_TIME(UT) ((UT)->ut_type == BOOT_TIME) -#else -# define UT_TYPE_BOOT_TIME(UT) 0 -#endif -#ifdef USER_PROCESS -# define UT_TYPE_USER_PROCESS(UT) ((UT)->ut_type == USER_PROCESS) -#else -# define UT_TYPE_USER_PROCESS(UT) 0 -#endif - -/* Determines whether an entry *UT corresponds to a user process. */ -#define IS_USER_PROCESS(UT) \ - ((UT)->ut_user[0] && UT_TYPE_USER_PROCESS (UT)) - -/* Define if read_utmp is not just a dummy. */ -#if READUTMP_USE_SYSTEMD || HAVE_UTMPX_H || HAVE_UTMP_H || defined __CYGWIN__ || defined _WIN32 -# define READ_UTMP_SUPPORTED 1 -#endif - -/* Options for read_utmp. */ -enum - { - READ_UTMP_CHECK_PIDS = 1, - READ_UTMP_USER_PROCESS = 2, - READ_UTMP_BOOT_TIME = 4, - READ_UTMP_NO_BOOT_TIME = 8 - }; - -/* Return a copy of (UT)->ut_user, without trailing spaces, - as a freshly allocated string. */ -char *extract_trimmed_name (const STRUCT_UTMP *ut) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Read the utmp entries corresponding to file FILE into freshly- - malloc'd storage, set *UTMP_BUF to that pointer, set *N_ENTRIES to - the number of entries, and return zero. If there is any error, - return -1, setting errno, and don't modify the parameters. - A good candidate for FILE is UTMP_FILE. - If OPTIONS & READ_UTMP_CHECK_PIDS is nonzero, omit entries whose - process-IDs do not currently exist. - If OPTIONS & READ_UTMP_USER_PROCESS is nonzero, omit entries which - do not correspond to a user process. - If OPTIONS & READ_UTMP_BOOT_TIME is nonzero, omit all entries except - the one that contains the boot time. - If OPTIONS & READ_UTMP_NO_BOOT_TIME is nonzero, omit the boot time - entries. - - This function is not multithread-safe, since on many platforms it - invokes the functions setutxent, getutxent, endutxent. These - functions are needed because they may lock FILE (so that we don't - read garbage when a concurrent process writes to FILE), but their - drawback is that they have a common global state. */ -int read_utmp (char const *file, idx_t *n_entries, STRUCT_UTMP **utmp_buf, - int options); - - -#ifdef __cplusplus -} -#endif - -#endif /* __READUTMP_H__ */ diff --git a/include/libgnulib/regex-quote.h b/include/libgnulib/regex-quote.h deleted file mode 100755 index fe271e3..0000000 --- a/include/libgnulib/regex-quote.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Construct a regular expression from a literal string. - Copyright (C) 1995, 2010-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2010. - - 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 3 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, see . */ - -#ifndef _REGEX_QUOTE_H -#define _REGEX_QUOTE_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Specifies a quotation task for converting a fixed string to a regular - expression pattern. */ -struct regex_quote_spec -{ - /* True if the regular expression pattern consists of multibyte characters - (in the encoding given by the LC_CTYPE category of the locale), - false if it consists of single bytes or UTF-8 characters. */ - unsigned int /*bool*/ multibyte : 1; - /* True if the regular expression pattern shall match only entire lines. */ - unsigned int /*bool*/ anchored : 1; - /* Set of characters that need to be escaped (all ASCII), as a - NUL-terminated string. */ - char special[30 + 1]; -}; - - -/* Creates a quotation task that produces a POSIX regular expression, that is, - a pattern that can be compiled with regcomp(). - CFLAGS can be 0 or REG_EXTENDED. - If it is 0, the result is a Basic Regular Expression (BRE) - . - If it is REG_EXTENDED, the result is an Extended Regular Expression (ERE) - . - If ANCHORED is false, the regular expression will match substrings of lines. - If ANCHORED is true, it will match only complete lines, */ -extern struct regex_quote_spec - regex_quote_spec_posix (int cflags, bool anchored); - -/* Creates a quotation task that produces a regular expression that can be - compiled with the GNU API function re_compile_pattern(). - SYNTAX describes the syntax of the regular expression (such as - RE_SYNTAX_POSIX_BASIC, RE_SYNTAX_POSIX_EXTENDED, RE_SYNTAX_EMACS, all - defined in ). It must be the same value as 're_syntax_options' - at the moment of the re_compile_pattern() call. - If ANCHORED is false, the regular expression will match substrings of lines. - If ANCHORED is true, it will match only complete lines, */ -extern struct regex_quote_spec - regex_quote_spec_gnu (unsigned long /*reg_syntax_t*/ syntax, bool anchored); - -/* Creates a quotation task that produces a PCRE regular expression, that is, - a pattern that can be compiled with pcre_compile(). - OPTIONS is the same value as the second argument passed to pcre_compile(). - If ANCHORED is false, the regular expression will match substrings of lines. - If ANCHORED is true, it will match only complete lines, */ -extern struct regex_quote_spec - regex_quote_spec_pcre (int options, bool anchored); - - -/* Returns the number of bytes needed for the quoted string. */ -extern size_t - regex_quote_length (const char *string, const struct regex_quote_spec *spec); - -/* Copies the quoted string to p and returns the incremented p. - There must be room for regex_quote_length (string, spec) + 1 bytes at p. */ -extern char * - regex_quote_copy (char *restrict p, - const char *string, const struct regex_quote_spec *spec); - -/* Returns the freshly allocated quoted string. */ -extern char * - regex_quote (const char *string, const struct regex_quote_spec *spec) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - - -#ifdef __cplusplus -} -#endif - -#endif /* _REGEX_QUOTE_H */ diff --git a/include/libgnulib/regex.h b/include/libgnulib/regex.h deleted file mode 100755 index ccf40ce..0000000 --- a/include/libgnulib/regex.h +++ /dev/null @@ -1,699 +0,0 @@ -/* Definitions for data structures and routines for the regular - expression library. - Copyright (C) 1985, 1989-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _REGEX_H -#define _REGEX_H 1 - -#include - -/* Allow the use in C++ code. */ -#ifdef __cplusplus -extern "C" { -#endif - -/* Define __USE_GNU to declare GNU extensions that violate the - POSIX name space rules. */ -#ifdef _GNU_SOURCE -# define __USE_GNU 1 -#endif - -#ifdef _REGEX_LARGE_OFFSETS - -/* Use types and values that are wide enough to represent signed and - unsigned byte offsets in memory. This currently works only when - the regex code is used outside of the GNU C library; it is not yet - supported within glibc itself, and glibc users should not define - _REGEX_LARGE_OFFSETS. */ - -/* The type of object sizes. */ -typedef size_t __re_size_t; - -/* The type of object sizes, in places where the traditional code - uses unsigned long int. */ -typedef size_t __re_long_size_t; - -#else - -/* The traditional GNU regex implementation mishandles strings longer - than INT_MAX. */ -typedef unsigned int __re_size_t; -typedef unsigned long int __re_long_size_t; - -#endif - -/* The following two types have to be signed and unsigned integer type - wide enough to hold a value of a pointer. For most ANSI compilers - ptrdiff_t and size_t should be likely OK. Still size of these two - types is 2 for Microsoft C. Ugh... */ -typedef long int s_reg_t; -typedef unsigned long int active_reg_t; - -/* The following bits are used to determine the regexp syntax we - recognize. The set/not-set meanings are chosen so that Emacs syntax - remains the value 0. The bits are given in alphabetical order, and - the definitions shifted by one from the previous bit; thus, when we - add or remove a bit, only one other definition need change. */ -typedef unsigned long int reg_syntax_t; - -#ifdef __USE_GNU -/* If this bit is not set, then \ inside a bracket expression is literal. - If set, then such a \ quotes the following character. */ -# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) - -/* If this bit is not set, then + and ? are operators, and \+ and \? are - literals. - If set, then \+ and \? are operators and + and ? are literals. */ -# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) - -/* If this bit is set, then character classes are supported. They are: - [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], - [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. - If not set, then character classes are not supported. */ -# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) - -/* If this bit is set, then ^ and $ are always anchors (outside bracket - expressions, of course). - If this bit is not set, then it depends: - ^ is an anchor if it is at the beginning of a regular - expression or after an open-group or an alternation operator; - $ is an anchor if it is at the end of a regular expression, or - before a close-group or an alternation operator. - - This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because - POSIX draft 11.2 says that * etc. in leading positions is undefined. - We already implemented a previous draft which made those constructs - invalid, though, so we haven't changed the code back. */ -# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) - -/* If this bit is set, then special characters are always special - regardless of where they are in the pattern. - If this bit is not set, then special characters are special only in - some contexts; otherwise they are ordinary. Specifically, - * + ? and intervals are only special when not after the beginning, - open-group, or alternation operator. */ -# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) - -/* If this bit is set, then *, +, ?, and { cannot be first in an re or - immediately after an alternation or begin-group operator. */ -# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) - -/* If this bit is set, then . matches newline. - If not set, then it doesn't. */ -# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) - -/* If this bit is set, then . doesn't match NUL. - If not set, then it does. */ -# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) - -/* If this bit is set, nonmatching lists [^...] do not match newline. - If not set, they do. */ -# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) - -/* If this bit is set, either \{...\} or {...} defines an - interval, depending on RE_NO_BK_BRACES. - If not set, \{, \}, {, and } are literals. */ -# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - -/* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ -# define RE_LIMITED_OPS (RE_INTERVALS << 1) - -/* If this bit is set, newline is an alternation operator. - If not set, newline is literal. */ -# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) - -/* If this bit is set, then '{...}' defines an interval, and \{ and \} - are literals. - If not set, then '\{...\}' defines an interval. */ -# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) - -/* If this bit is set, (...) defines a group, and \( and \) are literals. - If not set, \(...\) defines a group, and ( and ) are literals. */ -# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) - -/* If this bit is set, then \ matches . - If not set, then \ is a back-reference. */ -# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) - -/* If this bit is set, then | is an alternation operator, and \| is literal. - If not set, then \| is an alternation operator, and | is literal. */ -# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) - -/* If this bit is set, then an ending range point collating higher - than the starting range point, as in [z-a], is invalid. - If not set, then when ending range point collates higher than the - starting range point, the range is ignored. */ -# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) - -/* If this bit is set, then an unmatched ) is ordinary. - If not set, then an unmatched ) is invalid. */ -# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) - -/* If this bit is set, succeed as soon as we match the whole pattern, - without further backtracking. */ -# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) - -/* If this bit is set, do not process the GNU regex operators. - If not set, then the GNU regex operators are recognized. */ -# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) - -/* If this bit is set, turn on internal regex debugging. - If not set, and debugging was on, turn it off. - This only works if regex.c is compiled -DDEBUG. - We define this bit always, so that all that's needed to turn on - debugging is to recompile regex.c; the calling code can always have - this bit set, and it won't affect anything in the normal case. */ -# define RE_DEBUG (RE_NO_GNU_OPS << 1) - -/* If this bit is set, a syntactically invalid interval is treated as - a string of ordinary characters. For example, the ERE 'a{1' is - treated as 'a\{1'. */ -# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) - -/* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ -# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1) - -/* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only - for ^, because it is difficult to scan the regex backwards to find - whether ^ should be special. */ -# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1) - -/* If this bit is set, then \{ cannot be first in a regex or - immediately after an alternation, open-group or \} operator. */ -# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1) - -/* If this bit is set, then no_sub will be set to 1 during - re_compile_pattern. */ -# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1) -#endif - -/* This global variable defines the particular regexp syntax to use (for - some interfaces). When a regexp is compiled, the syntax used is - stored in the pattern buffer, so changing this does not affect - already-compiled regexps. */ -extern reg_syntax_t re_syntax_options; - -#ifdef __USE_GNU -/* Define combinations of the above bits for the standard possibilities. - (The [[[ comments delimit what gets put into the Texinfo file, so - don't delete them!) */ -/* [[[begin syntaxes]]] */ -# define RE_SYNTAX_EMACS 0 - -# define RE_SYNTAX_AWK \ - (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ - | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CHAR_CLASSES \ - | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) - -# define RE_SYNTAX_GNU_AWK \ - ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ - | RE_INVALID_INTERVAL_ORD) \ - & ~(RE_DOT_NOT_NULL | RE_CONTEXT_INDEP_OPS \ - | RE_CONTEXT_INVALID_OPS )) - -# define RE_SYNTAX_POSIX_AWK \ - (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ - | RE_INTERVALS | RE_NO_GNU_OPS \ - | RE_INVALID_INTERVAL_ORD) - -# define RE_SYNTAX_GREP \ - ((RE_SYNTAX_POSIX_BASIC | RE_NEWLINE_ALT) \ - & ~(RE_CONTEXT_INVALID_DUP | RE_DOT_NOT_NULL)) - -# define RE_SYNTAX_EGREP \ - ((RE_SYNTAX_POSIX_EXTENDED | RE_INVALID_INTERVAL_ORD | RE_NEWLINE_ALT) \ - & ~(RE_CONTEXT_INVALID_OPS | RE_DOT_NOT_NULL)) - -/* POSIX grep -E behavior is no longer incompatible with GNU. */ -# define RE_SYNTAX_POSIX_EGREP \ - RE_SYNTAX_EGREP - -/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ -# define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC - -# define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC - -/* Syntax bits common to both basic and extended POSIX regex syntax. */ -# define _RE_SYNTAX_POSIX_COMMON \ - (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ - | RE_INTERVALS | RE_NO_EMPTY_RANGES) - -# define RE_SYNTAX_POSIX_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP) - -/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes - RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this - isn't minimal, since other operators, such as \`, aren't disabled. */ -# define RE_SYNTAX_POSIX_MINIMAL_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) - -# define RE_SYNTAX_POSIX_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ - | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) - -/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is - removed and RE_NO_BK_REFS is added. */ -# define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) -/* [[[end syntaxes]]] */ - -/* Maximum number of duplicates an interval can allow. POSIX-conforming - systems might define this in , but we want our - value, so remove any previous define. */ -# ifdef _REGEX_INCLUDE_LIMITS_H -# include -# endif -# ifdef RE_DUP_MAX -# undef RE_DUP_MAX -# endif - -/* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored - the counter as a 2-byte signed integer. This is no longer true, so - RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to - ((SIZE_MAX - 9) / 10) if _REGEX_LARGE_OFFSETS is defined. - However, there would be a huge performance problem if someone - actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains - its historical value. */ -# define RE_DUP_MAX (0x7fff) -#endif - - -/* POSIX 'cflags' bits (i.e., information for 'regcomp'). */ - -/* If this bit is set, then use extended regular expression syntax. - If not set, then use basic regular expression syntax. */ -#define REG_EXTENDED 1 - -/* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ -#define REG_ICASE (1 << 1) - -/* If this bit is set, then anchors do not match at newline - characters in the string. - If not set, then anchors do match at newlines. */ -#define REG_NEWLINE (1 << 2) - -/* If this bit is set, then report only success or fail in regexec. - If not set, then returns differ between not matching and errors. */ -#define REG_NOSUB (1 << 3) - - -/* POSIX 'eflags' bits (i.e., information for regexec). */ - -/* If this bit is set, then the beginning-of-line operator doesn't match - the beginning of the string (presumably because it's not the - beginning of a line). - If not set, then the beginning-of-line operator does match the - beginning of the string. */ -#define REG_NOTBOL 1 - -/* Like REG_NOTBOL, except for the end-of-line. */ -#define REG_NOTEOL (1 << 1) - -/* Use PMATCH[0] to delimit the start and end of the search in the - buffer. */ -#define REG_STARTEND (1 << 2) - - -/* If any error codes are removed, changed, or added, update the - '__re_error_msgid' table in regcomp.c. */ - -typedef enum -{ - _REG_ENOSYS = -1, /* This will never happen for this implementation. */ - _REG_NOERROR = 0, /* Success. */ - _REG_NOMATCH, /* Didn't find a match (for regexec). */ - - /* POSIX regcomp return error codes. (In the order listed in the - standard.) */ - _REG_BADPAT, /* Invalid pattern. */ - _REG_ECOLLATE, /* Invalid collating element. */ - _REG_ECTYPE, /* Invalid character class name. */ - _REG_EESCAPE, /* Trailing backslash. */ - _REG_ESUBREG, /* Invalid back reference. */ - _REG_EBRACK, /* Unmatched left bracket. */ - _REG_EPAREN, /* Parenthesis imbalance. */ - _REG_EBRACE, /* Unmatched \{. */ - _REG_BADBR, /* Invalid contents of \{\}. */ - _REG_ERANGE, /* Invalid range end. */ - _REG_ESPACE, /* Ran out of memory. */ - _REG_BADRPT, /* No preceding re for repetition op. */ - - /* Error codes we've added. */ - _REG_EEND, /* Premature end. */ - _REG_ESIZE, /* Too large (e.g., repeat count too large). */ - _REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ -} reg_errcode_t; - -#if defined _XOPEN_SOURCE || defined __USE_XOPEN2K -# define REG_ENOSYS _REG_ENOSYS -#endif -#define REG_NOERROR _REG_NOERROR -#define REG_NOMATCH _REG_NOMATCH -#define REG_BADPAT _REG_BADPAT -#define REG_ECOLLATE _REG_ECOLLATE -#define REG_ECTYPE _REG_ECTYPE -#define REG_EESCAPE _REG_EESCAPE -#define REG_ESUBREG _REG_ESUBREG -#define REG_EBRACK _REG_EBRACK -#define REG_EPAREN _REG_EPAREN -#define REG_EBRACE _REG_EBRACE -#define REG_BADBR _REG_BADBR -#define REG_ERANGE _REG_ERANGE -#define REG_ESPACE _REG_ESPACE -#define REG_BADRPT _REG_BADRPT -#define REG_EEND _REG_EEND -#define REG_ESIZE _REG_ESIZE -#define REG_ERPAREN _REG_ERPAREN - -/* This data structure represents a compiled pattern. Before calling - the pattern compiler, the fields 'buffer', 'allocated', 'fastmap', - and 'translate' can be set. After the pattern has been compiled, - the fields 're_nsub', 'not_bol' and 'not_eol' are available. All - other fields are private to the regex routines. */ - -#ifndef RE_TRANSLATE_TYPE -# define __RE_TRANSLATE_TYPE unsigned char * -# ifdef __USE_GNU -# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE -# endif -#endif - -#ifdef __USE_GNU -# define __REPB_PREFIX(name) name -#else -# define __REPB_PREFIX(name) __##name -#endif - -struct re_pattern_buffer -{ - /* Space that holds the compiled pattern. The type - 'struct re_dfa_t' is private and is not declared here. */ - struct re_dfa_t *__REPB_PREFIX(buffer); - - /* Number of bytes to which 'buffer' points. */ - __re_long_size_t __REPB_PREFIX(allocated); - - /* Number of bytes actually used in 'buffer'. */ - __re_long_size_t __REPB_PREFIX(used); - - /* Syntax setting with which the pattern was compiled. */ - reg_syntax_t __REPB_PREFIX(syntax); - - /* Pointer to a fastmap, if any, otherwise zero. re_search uses the - fastmap, if there is one, to skip over impossible starting points - for matches. */ - char *__REPB_PREFIX(fastmap); - - /* Either a translate table to apply to all characters before - comparing them, or zero for no translation. The translation is - applied to a pattern when it is compiled and to a string when it - is matched. */ - __RE_TRANSLATE_TYPE __REPB_PREFIX(translate); - - /* Number of subexpressions found by the compiler. */ - size_t re_nsub; - - /* Zero if this pattern cannot match the empty string, one else. - Well, in truth it's used only in 're_search_2', to see whether or - not we should use the fastmap, so we don't set this absolutely - perfectly; see 're_compile_fastmap' (the "duplicate" case). */ - unsigned __REPB_PREFIX(can_be_null) : 1; - - /* If REGS_UNALLOCATED, allocate space in the 'regs' structure - for 'max (RE_NREGS, re_nsub + 1)' groups. - If REGS_REALLOCATE, reallocate space if necessary. - If REGS_FIXED, use what's there. */ -#ifdef __USE_GNU -# define REGS_UNALLOCATED 0 -# define REGS_REALLOCATE 1 -# define REGS_FIXED 2 -#endif - unsigned __REPB_PREFIX(regs_allocated) : 2; - - /* Set to zero when 're_compile_pattern' compiles a pattern; set to - one by 're_compile_fastmap' if it updates the fastmap. */ - unsigned __REPB_PREFIX(fastmap_accurate) : 1; - - /* If set, 're_match_2' does not return information about - subexpressions. */ - unsigned __REPB_PREFIX(no_sub) : 1; - - /* If set, a beginning-of-line anchor doesn't match at the beginning - of the string. */ - unsigned __REPB_PREFIX(not_bol) : 1; - - /* Similarly for an end-of-line anchor. */ - unsigned __REPB_PREFIX(not_eol) : 1; - - /* If true, an anchor at a newline matches. */ - unsigned __REPB_PREFIX(newline_anchor) : 1; -}; - -typedef struct re_pattern_buffer regex_t; - -/* Type for byte offsets within the string. POSIX mandates this. */ -#ifdef _REGEX_LARGE_OFFSETS -/* POSIX 1003.1-2008 requires that regoff_t be at least as wide as - ptrdiff_t and ssize_t. We don't know of any hosts where ptrdiff_t - is wider than ssize_t, so ssize_t is safe. ptrdiff_t is not - visible here, so use ssize_t. */ -typedef ssize_t regoff_t; -#else -/* The traditional GNU regex implementation mishandles strings longer - than INT_MAX. */ -typedef int regoff_t; -#endif - - -#ifdef __USE_GNU -/* This is the structure we store register match data in. See - regex.texinfo for a full description of what registers match. */ -struct re_registers -{ - __re_size_t num_regs; - regoff_t *start; - regoff_t *end; -}; - - -/* If 'regs_allocated' is REGS_UNALLOCATED in the pattern buffer, - 're_match_2' returns information about at least this many registers - the first time a 'regs' structure is passed. */ -# ifndef RE_NREGS -# define RE_NREGS 30 -# endif -#endif - - -/* POSIX specification for registers. Aside from the different names than - 're_registers', POSIX uses an array of structures, instead of a - structure of arrays. */ -typedef struct -{ - regoff_t rm_so; /* Byte offset from string's start to substring's start. */ - regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ -} regmatch_t; - -/* Declarations for routines. */ - -#ifndef _REGEX_NELTS -# if (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ - && !defined __STDC_NO_VLA__) -# define _REGEX_NELTS(n) n -# else -# define _REGEX_NELTS(n) -# endif -#endif - -#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wvla" -#endif - -#ifndef _Attr_access_ -# ifdef __attr_access -# define _Attr_access_(arg) __attr_access (arg) -# elif defined __GNUC__ && 10 <= __GNUC__ -# define _Attr_access_(x) __attribute__ ((__access__ x)) -# else -# define _Attr_access_(x) -# endif -#endif - -#ifdef __USE_GNU -/* Sets the current default syntax to SYNTAX, and return the old syntax. - You can also simply assign to the 're_syntax_options' variable. */ -extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); - -/* Compile the regular expression PATTERN, with length LENGTH - and syntax given by the global 're_syntax_options', into the buffer - BUFFER. Return NULL if successful, and an error string if not. - - To free the allocated storage, you must call 'regfree' on BUFFER. - Note that the translate table must either have been initialized by - 'regcomp', with a malloc'ed value, or set to NULL before calling - 'regfree'. */ -extern const char *re_compile_pattern (const char *__pattern, size_t __length, - struct re_pattern_buffer *__buffer) - _Attr_access_ ((__read_only__, 1, 2)); - - -/* Compile a fastmap for the compiled pattern in BUFFER; used to - accelerate searches. Return 0 if successful and -2 if was an - internal error. */ -extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); - - -/* Search in the string STRING (with length LENGTH) for the pattern - compiled into BUFFER. Start searching at position START, for RANGE - characters. Return the starting position of the match, -1 for no - match, or -2 for an internal error. Also return register - information in REGS (if REGS and BUFFER->no_sub are nonzero). */ -extern regoff_t re_search (struct re_pattern_buffer *__buffer, - const char *__String, regoff_t __length, - regoff_t __start, regoff_t __range, - struct re_registers *__regs) - _Attr_access_ ((__read_only__, 2, 3)); - - -/* Like 're_search', but search in the concatenation of STRING1 and - STRING2. Also, stop searching at index START + STOP. */ -extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer, - const char *__string1, regoff_t __length1, - const char *__string2, regoff_t __length2, - regoff_t __start, regoff_t __range, - struct re_registers *__regs, - regoff_t __stop) - _Attr_access_ ((__read_only__, 2, 3)) - _Attr_access_ ((__read_only__, 4, 5)); - - -/* Like 're_search', but return how many characters in STRING the regexp - in BUFFER matched, starting at position START. */ -extern regoff_t re_match (struct re_pattern_buffer *__buffer, - const char *__String, regoff_t __length, - regoff_t __start, struct re_registers *__regs) - _Attr_access_ ((__read_only__, 2, 3)); - - -/* Relates to 're_match' as 're_search_2' relates to 're_search'. */ -extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer, - const char *__string1, regoff_t __length1, - const char *__string2, regoff_t __length2, - regoff_t __start, struct re_registers *__regs, - regoff_t __stop) - _Attr_access_ ((__read_only__, 2, 3)) - _Attr_access_ ((__read_only__, 4, 5)); - - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using BUFFER and REGS will use this memory - for recording register information. STARTS and ENDS must be - allocated with malloc, and must each be at least 'NUM_REGS * sizeof - (regoff_t)' bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - BUFFER will allocate its own register data, without - freeing the old data. */ -extern void re_set_registers (struct re_pattern_buffer *__buffer, - struct re_registers *__regs, - __re_size_t __num_regs, - regoff_t *__starts, regoff_t *__ends); -#endif /* Use GNU */ - -#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC) -/* 4.2 bsd compatibility. */ -extern char *re_comp (const char *); -extern int re_exec (const char *); -#endif - -/* For plain 'restrict', use glibc's __restrict if defined. - Otherwise, GCC 2.95 and later have "__restrict"; C99 compilers have - "restrict", and "configure" may have defined "restrict". - Other compilers use __restrict, __restrict__, and _Restrict, and - 'configure' might #define 'restrict' to those words, so pick a - different name. */ -#ifndef _Restrict_ -# if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 -# define _Restrict_ __restrict -# elif 199901L <= __STDC_VERSION__ || defined restrict -# define _Restrict_ restrict -# else -# define _Restrict_ -# endif -#endif -/* For the ISO C99 syntax - array_name[restrict] - use glibc's __restrict_arr if available. - Otherwise, GCC 3.1 and clang support this syntax (but not in C++ mode). - Other ISO C99 compilers support it as well. */ -#ifndef _Restrict_arr_ -# ifdef __restrict_arr -# define _Restrict_arr_ __restrict_arr -# elif ((199901L <= __STDC_VERSION__ \ - || 3 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3) \ - && !defined __cplusplus) -# define _Restrict_arr_ _Restrict_ -# else -# define _Restrict_arr_ -# endif -#endif - -/* POSIX compatibility. */ -extern int regcomp (regex_t *_Restrict_ __preg, - const char *_Restrict_ __pattern, - int __cflags); - -extern int regexec (const regex_t *_Restrict_ __preg, - const char *_Restrict_ __String, size_t __nmatch, - regmatch_t __pmatch[_Restrict_arr_ - _REGEX_NELTS (__nmatch)], - int __eflags); - -extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg, - char *_Restrict_ __errbuf, size_t __errbuf_size) - _Attr_access_ ((__write_only__, 3, 4)); - -extern void regfree (regex_t *__preg); - -#if defined __GNUC__ && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -# pragma GCC diagnostic pop -#endif - -#ifdef __cplusplus -} -#endif /* C++ */ - -#endif /* regex.h */ diff --git a/include/libgnulib/regex_internal.h b/include/libgnulib/regex_internal.h deleted file mode 100755 index 6165cb1..0000000 --- a/include/libgnulib/regex_internal.h +++ /dev/null @@ -1,832 +0,0 @@ -/* Extended regular expression matching and search library. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Isamu Hasegawa . - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _REGEX_INTERNAL_H -#define _REGEX_INTERNAL_H 1 - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#ifndef _LIBC -# include -#endif - -#include -#include - -#if defined DEBUG && DEBUG != 0 -# include -# define DEBUG_ASSERT(x) assert (x) -#else -# define DEBUG_ASSERT(x) assume (x) -#endif - -#ifdef _LIBC -# include -# define lock_define(name) __libc_lock_define (, name) -# define lock_init(lock) (__libc_lock_init (lock), 0) -# define lock_fini(lock) ((void) 0) -# define lock_lock(lock) __libc_lock_lock (lock) -# define lock_unlock(lock) __libc_lock_unlock (lock) -#elif defined GNULIB_LOCK && !defined GNULIB_REGEX_SINGLE_THREAD -# include "glthread/lock.h" -# define lock_define(name) gl_lock_define (, name) -# define lock_init(lock) glthread_lock_init (&(lock)) -# define lock_fini(lock) glthread_lock_destroy (&(lock)) -# define lock_lock(lock) glthread_lock_lock (&(lock)) -# define lock_unlock(lock) glthread_lock_unlock (&(lock)) -#elif defined GNULIB_PTHREAD && !defined GNULIB_REGEX_SINGLE_THREAD -# include -# define lock_define(name) pthread_mutex_t name; -# define lock_init(lock) pthread_mutex_init (&(lock), 0) -# define lock_fini(lock) pthread_mutex_destroy (&(lock)) -# define lock_lock(lock) pthread_mutex_lock (&(lock)) -# define lock_unlock(lock) pthread_mutex_unlock (&(lock)) -#else -# define lock_define(name) -# define lock_init(lock) 0 -# define lock_fini(lock) ((void) 0) - /* The 'dfa' avoids an "unused variable 'dfa'" warning from GCC. */ -# define lock_lock(lock) ((void) dfa) -# define lock_unlock(lock) ((void) 0) -#endif - -/* In case that the system doesn't have isblank(). */ -#if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK)) -# define isblank(ch) ((ch) == ' ' || (ch) == '\t') -#endif - -/* regex code assumes isascii has its usual numeric meaning, - even if the portable character set uses EBCDIC encoding, - and even if wint_t is wider than int. */ -#ifndef _LIBC -# undef isascii -# define isascii(c) (((c) & ~0x7f) == 0) -#endif - -#ifdef _LIBC -# ifndef _RE_DEFINE_LOCALE_FUNCTIONS -# define _RE_DEFINE_LOCALE_FUNCTIONS 1 -# include -# include -# endif -#endif - -/* This is for other GNU distributions with internationalized messages. */ -#if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC -# include -# ifdef _LIBC -# undef gettext -# define gettext(msgid) \ - __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES) -# endif -#else -# undef gettext -# define gettext(msgid) (msgid) -#endif - -#ifndef gettext_noop -/* This define is so xgettext can find the internationalizable - strings. */ -# define gettext_noop(String) String -#endif - -/* Number of ASCII characters. */ -#define ASCII_CHARS 0x80 - -/* Number of single byte characters. */ -#define SBC_MAX (UCHAR_MAX + 1) - -#define COLL_ELEM_LEN_MAX 8 - -/* The character which represents newline. */ -#define NEWLINE_CHAR '\n' -#define WIDE_NEWLINE_CHAR L'\n' - -/* Rename to standard API for using out of glibc. */ -#ifndef _LIBC -# undef __wctype -# undef __iswalnum -# undef __iswctype -# undef __towlower -# undef __towupper -# define __wctype wctype -# define __iswalnum iswalnum -# define __iswctype iswctype -# define __towlower towlower -# define __towupper towupper -# define __btowc btowc -# define __mbrtowc mbrtowc -# define __wcrtomb wcrtomb -# define __regfree regfree -#endif /* not _LIBC */ - -/* Types related to integers. Unless protected by #ifdef _LIBC, the - regex code should avoid exact-width types like int32_t and uint64_t - as some non-GCC platforms lack them, an issue when this code is - used in Gnulib. */ - -#ifndef ULONG_WIDTH -# define ULONG_WIDTH REGEX_UINTEGER_WIDTH (ULONG_MAX) -/* The number of usable bits in an unsigned integer type with maximum - value MAX, as an int expression suitable in #if. Cover all known - practical hosts. This implementation exploits the fact that MAX is - 1 less than a power of 2, and merely counts the number of 1 bits in - MAX; "COBn" means "count the number of 1 bits in the low-order n bits". */ -# define REGEX_UINTEGER_WIDTH(max) REGEX_COB128 (max) -# define REGEX_COB128(n) (REGEX_COB64 ((n) >> 31 >> 31 >> 2) + REGEX_COB64 (n)) -# define REGEX_COB64(n) (REGEX_COB32 ((n) >> 31 >> 1) + REGEX_COB32 (n)) -# define REGEX_COB32(n) (REGEX_COB16 ((n) >> 16) + REGEX_COB16 (n)) -# define REGEX_COB16(n) (REGEX_COB8 ((n) >> 8) + REGEX_COB8 (n)) -# define REGEX_COB8(n) (REGEX_COB4 ((n) >> 4) + REGEX_COB4 (n)) -# define REGEX_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + ((n) & 1)) -# if ULONG_MAX / 2 + 1 != 1ul << (ULONG_WIDTH - 1) -# error "ULONG_MAX out of range" -# endif -#endif - -/* The type of indexes into strings. This is signed, not size_t, - since the API requires indexes to fit in regoff_t anyway, and using - signed integers makes the code a bit smaller and presumably faster. - The traditional GNU regex implementation uses int for indexes. - The POSIX-compatible implementation uses a possibly-wider type. - The name 'Idx' is three letters to minimize the hassle of - reindenting a lot of regex code that formerly used 'int'. */ -typedef regoff_t Idx; -#ifdef _REGEX_LARGE_OFFSETS -# define IDX_MAX SSIZE_MAX -#else -# define IDX_MAX INT_MAX -#endif - -/* A hash value, suitable for computing hash tables. */ -typedef __re_size_t re_hashval_t; - -/* An integer used to represent a set of bits. It must be unsigned, - and must be at least as wide as unsigned int. */ -typedef unsigned long int bitset_word_t; -/* All bits set in a bitset_word_t. */ -#define BITSET_WORD_MAX ULONG_MAX -/* Number of bits in a bitset_word_t. */ -#define BITSET_WORD_BITS ULONG_WIDTH - -/* Number of bitset_word_t values in a bitset_t. */ -#define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS) - -typedef bitset_word_t bitset_t[BITSET_WORDS]; -typedef bitset_word_t *re_bitset_ptr_t; -typedef const bitset_word_t *re_const_bitset_ptr_t; - -#define PREV_WORD_CONSTRAINT 0x0001 -#define PREV_NOTWORD_CONSTRAINT 0x0002 -#define NEXT_WORD_CONSTRAINT 0x0004 -#define NEXT_NOTWORD_CONSTRAINT 0x0008 -#define PREV_NEWLINE_CONSTRAINT 0x0010 -#define NEXT_NEWLINE_CONSTRAINT 0x0020 -#define PREV_BEGBUF_CONSTRAINT 0x0040 -#define NEXT_ENDBUF_CONSTRAINT 0x0080 -#define WORD_DELIM_CONSTRAINT 0x0100 -#define NOT_WORD_DELIM_CONSTRAINT 0x0200 - -typedef enum -{ - INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, - WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT, - WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, - INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT, - LINE_FIRST = PREV_NEWLINE_CONSTRAINT, - LINE_LAST = NEXT_NEWLINE_CONSTRAINT, - BUF_FIRST = PREV_BEGBUF_CONSTRAINT, - BUF_LAST = NEXT_ENDBUF_CONSTRAINT, - WORD_DELIM = WORD_DELIM_CONSTRAINT, - NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT -} re_context_type; - -typedef struct -{ - Idx alloc; - Idx nelem; - Idx *elems; -} re_node_set; - -typedef enum -{ - NON_TYPE = 0, - - /* Node type, These are used by token, node, tree. */ - CHARACTER = 1, - END_OF_RE = 2, - SIMPLE_BRACKET = 3, - OP_BACK_REF = 4, - OP_PERIOD = 5, - COMPLEX_BRACKET = 6, - OP_UTF8_PERIOD = 7, - - /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used - when the debugger shows values of this enum type. */ -#define EPSILON_BIT 8 - OP_OPEN_SUBEXP = EPSILON_BIT | 0, - OP_CLOSE_SUBEXP = EPSILON_BIT | 1, - OP_ALT = EPSILON_BIT | 2, - OP_DUP_ASTERISK = EPSILON_BIT | 3, - ANCHOR = EPSILON_BIT | 4, - - /* Tree type, these are used only by tree. */ - CONCAT = 16, - SUBEXP = 17, - - /* Token type, these are used only by token. */ - OP_DUP_PLUS = 18, - OP_DUP_QUESTION, - OP_OPEN_BRACKET, - OP_CLOSE_BRACKET, - OP_CHARSET_RANGE, - OP_OPEN_DUP_NUM, - OP_CLOSE_DUP_NUM, - OP_NON_MATCH_LIST, - OP_OPEN_COLL_ELEM, - OP_CLOSE_COLL_ELEM, - OP_OPEN_EQUIV_CLASS, - OP_CLOSE_EQUIV_CLASS, - OP_OPEN_CHAR_CLASS, - OP_CLOSE_CHAR_CLASS, - OP_WORD, - OP_NOTWORD, - OP_SPACE, - OP_NOTSPACE, - BACK_SLASH - -} re_token_type_t; - -typedef struct -{ - /* Multibyte characters. */ - wchar_t *mbchars; - -#ifdef _LIBC - /* Collating symbols. */ - int32_t *coll_syms; -#endif - -#ifdef _LIBC - /* Equivalence classes. */ - int32_t *equiv_classes; -#endif - - /* Range expressions. */ -#ifdef _LIBC - uint32_t *range_starts; - uint32_t *range_ends; -#else - wchar_t *range_starts; - wchar_t *range_ends; -#endif - - /* Character classes. */ - wctype_t *char_classes; - - /* If this character set is the non-matching list. */ - unsigned int non_match : 1; - - /* # of multibyte characters. */ - Idx nmbchars; - - /* # of collating symbols. */ - Idx ncoll_syms; - - /* # of equivalence classes. */ - Idx nequiv_classes; - - /* # of range expressions. */ - Idx nranges; - - /* # of character classes. */ - Idx nchar_classes; -} re_charset_t; - -typedef struct -{ - union - { - unsigned char c; /* for CHARACTER */ - re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */ - re_charset_t *mbcset; /* for COMPLEX_BRACKET */ - Idx idx; /* for BACK_REF */ - re_context_type ctx_type; /* for ANCHOR */ - } opr; -#if (__GNUC__ >= 2 || defined __clang__) && !defined __STRICT_ANSI__ - re_token_type_t type : 8; -#else - re_token_type_t type; -#endif - unsigned int constraint : 10; /* context constraint */ - unsigned int duplicated : 1; - unsigned int opt_subexp : 1; - unsigned int accept_mb : 1; - /* These 2 bits can be moved into the union if needed (e.g. if running out - of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */ - unsigned int mb_partial : 1; - unsigned int word_char : 1; -} re_token_t; - -#define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT) - -struct re_string_t -{ - /* Indicate the raw buffer which is the original string passed as an - argument of regexec(), re_search(), etc.. */ - const unsigned char *raw_mbs; - /* Store the multibyte string. In case of "case insensitive mode" like - REG_ICASE, upper cases of the string are stored, otherwise MBS points - the same address that RAW_MBS points. */ - unsigned char *mbs; - /* Store the wide character string which is corresponding to MBS. */ - wint_t *wcs; - Idx *offsets; - mbstate_t cur_state; - /* Index in RAW_MBS. Each character mbs[i] corresponds to - raw_mbs[raw_mbs_idx + i]. */ - Idx raw_mbs_idx; - /* The length of the valid characters in the buffers. */ - Idx valid_len; - /* The corresponding number of bytes in raw_mbs array. */ - Idx valid_raw_len; - /* The length of the buffers MBS and WCS. */ - Idx bufs_len; - /* The index in MBS, which is updated by re_string_fetch_byte. */ - Idx cur_idx; - /* length of RAW_MBS array. */ - Idx raw_len; - /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN. */ - Idx len; - /* End of the buffer may be shorter than its length in the cases such - as re_match_2, re_search_2. Then, we use STOP for end of the buffer - instead of LEN. */ - Idx raw_stop; - /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS. */ - Idx stop; - - /* The context of mbs[0]. We store the context independently, since - the context of mbs[0] may be different from raw_mbs[0], which is - the beginning of the input string. */ - unsigned int tip_context; - /* The translation passed as a part of an argument of re_compile_pattern. */ - RE_TRANSLATE_TYPE trans; - /* Copy of re_dfa_t's word_char. */ - re_const_bitset_ptr_t word_char; - /* true if REG_ICASE. */ - unsigned char icase; - unsigned char is_utf8; - unsigned char map_notascii; - unsigned char mbs_allocated; - unsigned char offsets_needed; - unsigned char newline_anchor; - unsigned char word_ops_used; - int mb_cur_max; -}; -typedef struct re_string_t re_string_t; - - -struct re_dfa_t; -typedef struct re_dfa_t re_dfa_t; - -#ifndef _LIBC -# define IS_IN(libc) false -#endif - -#define re_string_peek_byte(pstr, offset) \ - ((pstr)->mbs[(pstr)->cur_idx + offset]) -#define re_string_fetch_byte(pstr) \ - ((pstr)->mbs[(pstr)->cur_idx++]) -#define re_string_first_byte(pstr, idx) \ - ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF) -#define re_string_is_single_byte_char(pstr, idx) \ - ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \ - || (pstr)->wcs[(idx) + 1] != WEOF)) -#define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx) -#define re_string_cur_idx(pstr) ((pstr)->cur_idx) -#define re_string_get_buffer(pstr) ((pstr)->mbs) -#define re_string_length(pstr) ((pstr)->len) -#define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx]) -#define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) -#define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) - -#ifdef _LIBC -# define MALLOC_0_IS_NONNULL 1 -#elif !defined MALLOC_0_IS_NONNULL -# define MALLOC_0_IS_NONNULL 0 -#endif - -#ifndef MAX -# define MAX(a,b) ((a) < (b) ? (b) : (a)) -#endif -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) -#define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t))) -#define re_free(p) free (p) - -struct bin_tree_t -{ - struct bin_tree_t *parent; - struct bin_tree_t *left; - struct bin_tree_t *right; - struct bin_tree_t *first; - struct bin_tree_t *next; - - re_token_t token; - - /* 'node_idx' is the index in dfa->nodes, if 'type' == 0. - Otherwise 'type' indicate the type of this node. */ - Idx node_idx; -}; -typedef struct bin_tree_t bin_tree_t; - -#define BIN_TREE_STORAGE_SIZE \ - ((1024 - sizeof (void *)) / sizeof (bin_tree_t)) - -struct bin_tree_storage_t -{ - struct bin_tree_storage_t *next; - bin_tree_t data[BIN_TREE_STORAGE_SIZE]; -}; -typedef struct bin_tree_storage_t bin_tree_storage_t; - -#define CONTEXT_WORD 1 -#define CONTEXT_NEWLINE (CONTEXT_WORD << 1) -#define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1) -#define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1) - -#define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD) -#define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE) -#define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF) -#define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF) -#define IS_ORDINARY_CONTEXT(c) ((c) == 0) - -#define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_') -#define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR) -#define IS_WIDE_WORD_CHAR(ch) (__iswalnum (ch) || (ch) == L'_') -#define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR) - -#define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \ - ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ - || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ - || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\ - || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context))) - -#define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \ - ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \ - || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \ - || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \ - || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context))) - -struct re_dfastate_t -{ - re_hashval_t hash; - re_node_set nodes; - re_node_set non_eps_nodes; - re_node_set inveclosure; - re_node_set *entrance_nodes; - struct re_dfastate_t **trtable, **word_trtable; - unsigned int context : 4; - unsigned int halt : 1; - /* If this state can accept "multi byte". - Note that we refer to multibyte characters, and multi character - collating elements as "multi byte". */ - unsigned int accept_mb : 1; - /* If this state has backreference node(s). */ - unsigned int has_backref : 1; - unsigned int has_constraint : 1; -}; -typedef struct re_dfastate_t re_dfastate_t; - -struct re_state_table_entry -{ - Idx num; - Idx alloc; - re_dfastate_t **array; -}; - -/* Array type used in re_sub_match_last_t and re_sub_match_top_t. */ - -typedef struct -{ - Idx next_idx; - Idx alloc; - re_dfastate_t **array; -} state_array_t; - -/* Store information about the node NODE whose type is OP_CLOSE_SUBEXP. */ - -typedef struct -{ - Idx node; - Idx str_idx; /* The position NODE match at. */ - state_array_t path; -} re_sub_match_last_t; - -/* Store information about the node NODE whose type is OP_OPEN_SUBEXP. - And information about the node, whose type is OP_CLOSE_SUBEXP, - corresponding to NODE is stored in LASTS. */ - -typedef struct -{ - Idx str_idx; - Idx node; - state_array_t *path; - Idx alasts; /* Allocation size of LASTS. */ - Idx nlasts; /* The number of LASTS. */ - re_sub_match_last_t **lasts; -} re_sub_match_top_t; - -struct re_backref_cache_entry -{ - Idx node; - Idx str_idx; - Idx subexp_from; - Idx subexp_to; - bitset_word_t eps_reachable_subexps_map; - char more; -}; - -typedef struct -{ - /* The string object corresponding to the input string. */ - re_string_t input; - const re_dfa_t *const dfa; - /* EFLAGS of the argument of regexec. */ - int eflags; - /* Where the matching ends. */ - Idx match_last; - Idx last_node; - /* The state log used by the matcher. */ - re_dfastate_t **state_log; - Idx state_log_top; - /* Back reference cache. */ - Idx nbkref_ents; - Idx abkref_ents; - struct re_backref_cache_entry *bkref_ents; - int max_mb_elem_len; - Idx nsub_tops; - Idx asub_tops; - re_sub_match_top_t **sub_tops; -} re_match_context_t; - -typedef struct -{ - re_dfastate_t **sifted_states; - re_dfastate_t **limited_states; - Idx last_node; - Idx last_str_idx; - re_node_set limits; -} re_sift_context_t; - -struct re_fail_stack_ent_t -{ - Idx idx; - Idx node; - regmatch_t *regs; - re_node_set eps_via_nodes; -}; - -struct re_fail_stack_t -{ - Idx num; - Idx alloc; - struct re_fail_stack_ent_t *stack; -}; - -struct re_dfa_t -{ - re_token_t *nodes; - size_t nodes_alloc; - size_t nodes_len; - Idx *nexts; - Idx *org_indices; - re_node_set *edests; - re_node_set *eclosures; - re_node_set *inveclosures; - struct re_state_table_entry *state_table; - re_dfastate_t *init_state; - re_dfastate_t *init_state_word; - re_dfastate_t *init_state_nl; - re_dfastate_t *init_state_begbuf; - bin_tree_t *str_tree; - bin_tree_storage_t *str_tree_storage; - re_bitset_ptr_t sb_char; - int str_tree_storage_idx; - - /* number of subexpressions 're_nsub' is in regex_t. */ - re_hashval_t state_hash_mask; - Idx init_node; - Idx nbackref; /* The number of backreference in this dfa. */ - - /* Bitmap expressing which backreference is used. */ - bitset_word_t used_bkref_map; - bitset_word_t completed_bkref_map; - - unsigned int has_plural_match : 1; - /* If this dfa has "multibyte node", which is a backreference or - a node which can accept multibyte character or multi character - collating element. */ - unsigned int has_mb_node : 1; - unsigned int is_utf8 : 1; - unsigned int map_notascii : 1; - unsigned int word_ops_used : 1; - int mb_cur_max; - bitset_t word_char; - reg_syntax_t syntax; - Idx *subexp_map; -#ifdef DEBUG - char* re_str; -#endif - lock_define (lock) -}; - -#define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) -#define re_node_set_remove(set,id) \ - (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) -#define re_node_set_empty(p) ((p)->nelem = 0) -#define re_node_set_free(set) re_free ((set)->elems) - - -typedef enum -{ - SB_CHAR, - MB_CHAR, - EQUIV_CLASS, - COLL_SYM, - CHAR_CLASS -} bracket_elem_type; - -typedef struct -{ - bracket_elem_type type; - union - { - unsigned char ch; - unsigned char *name; - wchar_t wch; - } opr; -} bracket_elem_t; - - -/* Functions for bitset_t operation. */ - -static inline void -bitset_set (bitset_t set, Idx i) -{ - set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS; -} - -static inline void -bitset_clear (bitset_t set, Idx i) -{ - set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS); -} - -static inline bool -bitset_contain (const bitset_t set, Idx i) -{ - return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1; -} - -static inline void -bitset_empty (bitset_t set) -{ - memset (set, '\0', sizeof (bitset_t)); -} - -static inline void -bitset_set_all (bitset_t set) -{ - memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS)); - if (SBC_MAX % BITSET_WORD_BITS != 0) - set[BITSET_WORDS - 1] = - ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1; -} - -static inline void -bitset_copy (bitset_t dest, const bitset_t src) -{ - memcpy (dest, src, sizeof (bitset_t)); -} - -static inline void -bitset_not (bitset_t set) -{ - int bitset_i; - for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i) - set[bitset_i] = ~set[bitset_i]; - if (SBC_MAX % BITSET_WORD_BITS != 0) - set[BITSET_WORDS - 1] = - ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1) - & ~set[BITSET_WORDS - 1]); -} - -static inline void -bitset_merge (bitset_t dest, const bitset_t src) -{ - int bitset_i; - for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) - dest[bitset_i] |= src[bitset_i]; -} - -static inline void -bitset_mask (bitset_t dest, const bitset_t src) -{ - int bitset_i; - for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) - dest[bitset_i] &= src[bitset_i]; -} - -/* Functions for re_string. */ -static int -__attribute__ ((pure, unused)) -re_string_char_size_at (const re_string_t *pstr, Idx idx) -{ - int byte_idx; - if (pstr->mb_cur_max == 1) - return 1; - for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx) - if (pstr->wcs[idx + byte_idx] != WEOF) - break; - return byte_idx; -} - -static wint_t -__attribute__ ((pure, unused)) -re_string_wchar_at (const re_string_t *pstr, Idx idx) -{ - if (pstr->mb_cur_max == 1) - return (wint_t) pstr->mbs[idx]; - return (wint_t) pstr->wcs[idx]; -} - -#ifdef _LIBC -# include -#endif - -static int -__attribute__ ((pure, unused)) -re_string_elem_size_at (const re_string_t *pstr, Idx idx) -{ -#ifdef _LIBC - const unsigned char *p, *extra; - const int32_t *table, *indirect; - uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - - if (nrules != 0) - { - table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); - indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_INDIRECTMB); - p = pstr->mbs + idx; - findidx (table, indirect, extra, &p, pstr->len - idx); - return p - pstr->mbs - idx; - } -#endif /* _LIBC */ - - return 1; -} - -#ifdef _LIBC -# if __glibc_has_attribute (__fallthrough__) -# define FALLTHROUGH __attribute__ ((__fallthrough__)) -# else -# define FALLTHROUGH ((void) 0) -# endif -#else -# include "attribute.h" -#endif - -#endif /* _REGEX_INTERNAL_H */ diff --git a/include/libgnulib/relocatable.h b/include/libgnulib/relocatable.h deleted file mode 100755 index 0c10ebe..0000000 --- a/include/libgnulib/relocatable.h +++ /dev/null @@ -1,124 +0,0 @@ -/* Provide relocatable packages. - Copyright (C) 2003, 2005, 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - -#ifndef _RELOCATABLE_H -#define _RELOCATABLE_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_VISIBILITY. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* This can be enabled through the configure --enable-relocatable option. */ -#if ENABLE_RELOCATABLE - -/* When building a shared library, we must export some functions. - Note that because this is a private .h file, we don't need to use - __declspec(dllimport) in any case. */ -#if HAVE_VISIBILITY && BUILDING_DLL -# define RELOCATABLE_SHLIB_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_DLL -/* When building with MSVC, exporting a symbol means that the object file - contains a "linker directive" of the form /EXPORT:symbol. This can be - inspected through the "objdump -s --section=.drectve FILE" or - "dumpbin /directives FILE" commands. - The symbols from this file should be exported if and only if the object - file gets included in a DLL. Libtool, on Windows platforms, defines - the C macro DLL_EXPORT (together with PIC) when compiling for a shared - library (called DLL under Windows) and does not define it when compiling - an object file meant to be linked statically into some executable. */ -# if defined DLL_EXPORT -# define RELOCATABLE_SHLIB_EXPORTED __declspec(dllexport) -# else -# define RELOCATABLE_SHLIB_EXPORTED -# endif -#else -# define RELOCATABLE_SHLIB_EXPORTED -#endif - -/* 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 RELOCATABLE_SHLIB_EXPORTED void - set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - -/* Returns the pathname, relocated according to the current installation - directory. - The returned string is either PATHNAME unmodified or a freshly allocated - string that you can free with free() after casting it to 'char *'. */ -extern const char * relocate (const char *pathname); - -/* Returns the pathname, relocated according to the current installation - directory. - This function sets *ALLOCATEDP to the allocated memory, or to NULL if - no memory allocation occurs. So that, after you're done with the return - value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ -extern const char * relocate2 (const char *pathname, char **allocatedp); - -/* Memory management: relocate() potentially allocates memory, because it has - to construct a fresh pathname. If this is a problem because your program - calls relocate() frequently or because you want to fix all potential memory - leaks anyway, you have three options: - 1) Use this idiom: - const char *pathname = ...; - const char *rel_pathname = relocate (pathname); - ... - if (rel_pathname != pathname) - free ((char *) rel_pathname); - 2) Use this idiom: - char *allocated; - const char *rel_pathname = relocate2 (..., &allocated); - ... - free (allocated); - 3) Think about caching the result. */ - -/* Convenience function: - Computes the current installation prefix, based on the original - installation prefix, the original installation directory of a particular - file, and the current pathname of this file. - Returns it, freshly allocated. Returns NULL upon failure. */ -extern char * compute_curr_prefix (const char *orig_installprefix, - const char *orig_installdir, - const char *curr_pathname) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#else - -/* By default, we use the hardwired pathnames. */ -#define set_relocation_prefix(orig_prefix, curr_prefix) \ - ((void) (orig_prefix), (void) (curr_prefix)) -#define relocate(pathname) (pathname) -#define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _RELOCATABLE_H */ diff --git a/include/libgnulib/relocatable.valgrind b/include/libgnulib/relocatable.valgrind deleted file mode 100755 index 7e1722d..0000000 --- a/include/libgnulib/relocatable.valgrind +++ /dev/null @@ -1,25 +0,0 @@ -# Suppress a valgrind message about a memory leak in relocatable.c. - -# Copyright (C) 2017-2024 Free Software Foundation, Inc. -# -# This file 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 file 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 program. If not, see . - -# set_this_relocation_prefix leaks intentionally -{ - relocatable/set_this_relocation_prefix - Memcheck:Leak - fun:malloc - fun:set_this_relocation_prefix - fun:set_relocation_prefix -} diff --git a/include/libgnulib/renameatu.h b/include/libgnulib/renameatu.h deleted file mode 100755 index cf97b71..0000000 --- a/include/libgnulib/renameatu.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Rename a file relative to open directories. - Copyright 2017-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* written by Paul Eggert */ - -/* Get RENAME_* macros from if present, otherwise supply - the traditional Linux values. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifndef RENAME_NOREPLACE -# define RENAME_NOREPLACE (1 << 0) -# define RENAME_EXCHANGE (1 << 1) -# define RENAME_WHITEOUT (1 << 2) -#endif - -extern int renameatu (int, char const *, int, char const *, unsigned int); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/resource-ext.h b/include/libgnulib/resource-ext.h deleted file mode 100755 index e2a7b03..0000000 --- a/include/libgnulib/resource-ext.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Extra functions for resource usage. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - 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 3 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, see . */ - -#ifndef _RESOURCE_EXT_H -#define _RESOURCE_EXT_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Returns the amount of address space currently in use by the current - process, or zero if unknown. - This is the quantity which is limited by setrlimit(RLIMIT_AS,...). - Note: This function always returns zero on AIX. */ -extern uintptr_t get_rusage_as (void); - -/* Returns the size of the data segment, or zero if unknown. - This is the quantity which is limited by setrlimit(RLIMIT_DATA,...). - Note: This function always returns zero on HP-UX 11.00. - Note: The total size of all malloc()ed memory is bounded by the size of - the data segment only on the following platforms: - FreeBSD, AIX, HP-UX 11.23 and newer, IRIX, OSF/1, Solaris, BeOS, Haiku. */ -extern uintptr_t get_rusage_data (void); - - -#ifdef __cplusplus -} -#endif - -#endif /* _RESOURCE_EXT_H */ diff --git a/include/libgnulib/rijndael-alg-fst.h b/include/libgnulib/rijndael-alg-fst.h deleted file mode 100755 index 780c9fc..0000000 --- a/include/libgnulib/rijndael-alg-fst.h +++ /dev/null @@ -1,75 +0,0 @@ -/* rijndael-alg-fst.h --- Rijndael cipher implementation. - * Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - * - * This file 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 file 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 program. If not, see . - * - */ - -/* Adapted for gnulib by Simon Josefsson. */ - -/** - * rijndael-alg-fst.h - * - * @version 3.0 (December 2000) - * - * Optimised ANSI C code for the Rijndael cipher (now AES) - * - * @author Vincent Rijmen - * @author Antoon Bosselaers - * @author Paulo Barreto - * - * This code is hereby placed in the public domain. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''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 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 __RIJNDAEL_ALG_FST_H -#define __RIJNDAEL_ALG_FST_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define RIJNDAEL_MAXKC (256/32) -#define RIJNDAEL_MAXKB (256/8) -#define RIJNDAEL_MAXNR 14 - -int rijndaelKeySetupEnc (uint32_t rk[ /*4*(Nr + 1) */ ], - const char cipherKey[], size_t keyBits); -int rijndaelKeySetupDec (uint32_t rk[ /*4*(Nr + 1) */ ], - const char cipherKey[], size_t keyBits); -void rijndaelEncrypt (const uint32_t rk[ /*4*(Nr + 1) */ ], size_t Nr, - const char pt[16], char ct[16]); -void rijndaelDecrypt (const uint32_t rk[ /*4*(Nr + 1) */ ], size_t Nr, - const char ct[16], char pt[16]); - - -#ifdef __cplusplus -} -#endif - -#endif /* __RIJNDAEL_ALG_FST_H */ diff --git a/include/libgnulib/rijndael-api-fst.h b/include/libgnulib/rijndael-api-fst.h deleted file mode 100755 index 002fc58..0000000 --- a/include/libgnulib/rijndael-api-fst.h +++ /dev/null @@ -1,215 +0,0 @@ -/* rijndael-api-fst.h --- Rijndael cipher implementation. - * Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - * - * This file 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 file 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 program. If not, see . - * - */ - -/* Adapted for gnulib by Simon Josefsson. */ - -/** - * rijndael-api-fst.h - * - * @version 2.9 (December 2000) - * - * Optimised ANSI C code for the Rijndael cipher (now AES) - * - * @author Vincent Rijmen - * @author Antoon Bosselaers - * @author Paulo Barreto - * - * This code is hereby placed in the public domain. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''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 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. - * - * Acknowledgements: - * - * We are deeply indebted to the following people for their bug reports, - * fixes, and improvement suggestions to this implementation. Though we - * tried to list all contributions, we apologise in advance for any - * missing reference. - * - * Andrew Bales - * Markus Friedl - * John Skodon - */ - -#ifndef __RIJNDAEL_API_FST_H -#define __RIJNDAEL_API_FST_H - -#include "rijndael-alg-fst.h" - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Default number of bits in a cipher block */ -#define RIJNDAEL_BITSPERBLOCK 128 - -/* Number of ASCII char's needed to represent a key */ -#define RIJNDAEL_MAX_KEY_SIZE 64 - -/* Number bytes needed to represent an IV */ -#define RIJNDAEL_MAX_IV_SIZE 16 - -typedef enum -{ - /* Key direction is invalid, e.g., unknown value */ - RIJNDAEL_BAD_KEY_DIR = -1, - /* Key material not of correct length */ - RIJNDAEL_BAD_KEY_MAT = -2, - /* Key passed is not valid */ - RIJNDAEL_BAD_KEY_INSTANCE = -3, - /* Params struct passed to cipherInit invalid */ - RIJNDAEL_BAD_CIPHER_MODE = -4, - /* Cipher in wrong state (e.g., not initialized) */ - RIJNDAEL_BAD_CIPHER_STATE = -5, - RIJNDAEL_BAD_BLOCK_LENGTH = -6, - RIJNDAEL_BAD_CIPHER_INSTANCE = -7, - /* Data contents are invalid, e.g., invalid padding */ - RIJNDAEL_BAD_DATA = -8, - /* Unknown error */ - RIJNDAEL_BAD_OTHER = -9 -} rijndael_rc; - -typedef enum -{ - RIJNDAEL_DIR_ENCRYPT = 0, /* Are we encrypting? */ - RIJNDAEL_DIR_DECRYPT = 1 /* Are we decrypting? */ -} rijndael_direction; - -typedef enum -{ - RIJNDAEL_MODE_ECB = 1, /* Are we ciphering in ECB mode? */ - RIJNDAEL_MODE_CBC = 2, /* Are we ciphering in CBC mode? */ - RIJNDAEL_MODE_CFB1 = 3 /* Are we ciphering in 1-bit CFB mode? */ -} rijndael_mode; - -/* The structure for key information */ -typedef struct -{ - /* Key used for encrypting or decrypting? */ - rijndael_direction direction; - /* Length of the key */ - size_t keyLen; - /* Raw key data in ASCII, e.g., user input or KAT values */ - char keyMaterial[RIJNDAEL_MAX_KEY_SIZE + 1]; - /* key-length-dependent number of rounds */ - int Nr; - /* key schedule */ - uint32_t rk[4 * (RIJNDAEL_MAXNR + 1)]; - /* CFB1 key schedule (encryption only) */ - uint32_t ek[4 * (RIJNDAEL_MAXNR + 1)]; -} rijndaelKeyInstance; - -/* The structure for cipher information */ -typedef struct -{ /* changed order of the components */ - rijndael_mode mode; /* MODE_ECB, MODE_CBC, or MODE_CFB1 */ - /* A possible Initialization Vector for ciphering */ - char IV[RIJNDAEL_MAX_IV_SIZE]; -} rijndaelCipherInstance; - -/* Function prototypes */ - -/* Create KEY, for encryption or decryption depending on DIRECTION, - from KEYMATERIAL, a hex string, of KEYLEN size. KEYLEN should be - 128, 192 or 256. Returns 0 on success, or an error code. */ -extern rijndael_rc -rijndaelMakeKey (rijndaelKeyInstance *key, rijndael_direction direction, - size_t keyLen, const char *keyMaterial); - -/* Initialize cipher state CIPHER for encryption MODE (e.g., - RIJNDAEL_MODE_CBC) with initialization vector IV, a hex string of - 2*RIJNDAEL_MAX_IV_SIZE length. IV may be NULL for modes that do - not need an IV (i.e., RIJNDAEL_MODE_ECB). */ -extern rijndael_rc -rijndaelCipherInit (rijndaelCipherInstance *cipher, - rijndael_mode mode, const char *IV); - -/* Encrypt data in INPUT, of INPUTLEN/8 bytes length, placing the - output in the pre-allocated OUTBUFFER which must hold at least - INPUTLEN/8 bytes of data. The CIPHER is used as state, and must be - initialized with rijndaelCipherInit before calling this function. - The encryption KEY must be initialized with rijndaelMakeKey before - calling this function. Return the number of bits written, or a - negative rijndael_rc error code. */ -extern int -rijndaelBlockEncrypt (rijndaelCipherInstance *cipher, - const rijndaelKeyInstance *key, - const char *input, size_t inputLen, - char *restrict outBuffer); - -/* Encrypt data in INPUT, of INPUTOCTETS bytes length, placing the - output in the pre-allocated OUTBUFFER which must hold at least - INPUTOCTETS aligned to the next block size boundary. - Ciphertext-Stealing as described in RFC 2040 is used to encrypt - partial blocks. The CIPHER is used as state, and must be - initialized with rijndaelCipherInit before calling this function. - The encryption KEY must be initialized with rijndaelMakeKey before - calling this function. Return the number of bits written, or a - negative rijndael_rc error code. */ -extern int -rijndaelPadEncrypt (rijndaelCipherInstance *cipher, - const rijndaelKeyInstance *key, - const char *input, size_t inputOctets, - char *restrict outBuffer); - -/* Decrypt data in INPUT, of INPUTLEN/8 bytes length, placing the - output in the pre-allocated OUTBUFFER which must hold at least - INPUTLEN/8 bytes of data. The CIPHER is used as state, and must be - initialized with rijndaelCipherInit before calling this function. - The encryption KEY must be initialized with rijndaelMakeKey before - calling this function. Return the number of bits written, or a - negative rijndael_rc error code. */ -extern int -rijndaelBlockDecrypt (rijndaelCipherInstance *cipher, - const rijndaelKeyInstance *key, - const char *input, size_t inputLen, - char *restrict outBuffer); - -/* Decrypt data in INPUT, of INPUTOCTETS bytes length, placing the - output in the pre-allocated OUTBUFFER which must hold at least - INPUTOCTETS aligned to the next block size boundary. - Ciphertext-Stealing as described in RFC 2040 is used to encrypt - partial blocks. The CIPHER is used as state, and must be - initialized with rijndaelCipherInit before calling this function. - The encryption KEY must be initialized with rijndaelMakeKey before - calling this function. Return the number of bits written, or a - negative rijndael_rc error code. */ -extern int -rijndaelPadDecrypt (rijndaelCipherInstance *cipher, - const rijndaelKeyInstance *key, - const char *input, size_t inputOctets, - char *restrict outBuffer); - - -#ifdef __cplusplus -} -#endif - -#endif /* __RIJNDAEL_API_FST_H */ diff --git a/include/libgnulib/root-uid.h b/include/libgnulib/root-uid.h deleted file mode 100755 index ba50bfd..0000000 --- a/include/libgnulib/root-uid.h +++ /dev/null @@ -1,30 +0,0 @@ -/* The user ID that always has appropriate privileges in the POSIX sense. - - Copyright 2012-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef ROOT_UID_H_ -#define ROOT_UID_H_ - -/* The user ID that always has appropriate privileges in the POSIX sense. */ -#ifdef __TANDEM -# define ROOT_UID 65535 -#else -# define ROOT_UID 0 -#endif - -#endif diff --git a/include/libgnulib/safe-alloc.h b/include/libgnulib/safe-alloc.h deleted file mode 100755 index bee973e..0000000 --- a/include/libgnulib/safe-alloc.h +++ /dev/null @@ -1,136 +0,0 @@ -/* safe-alloc.h: safer memory allocation - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Daniel Berrange and Paul Eggert. */ - -#ifndef SAFE_ALLOC_H_ -#define SAFE_ALLOC_H_ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#if defined __CHERI_PURE_CAPABILITY__ -# include -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef SAFE_ALLOC_INLINE -# define SAFE_ALLOC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Don't call these directly - use the macros below. */ -SAFE_ALLOC_INLINE void * -safe_alloc_realloc_n (void *ptr, size_t count, size_t size) -{ - size_t countx = count; - size_t sizex = size; - if (count == 0 || size == 0) - countx = sizex = 1; - ptr = reallocarray (ptr, countx, sizex); -#if defined __CHERI_PURE_CAPABILITY__ - if (ptr != NULL && (count == 0 || size == 0)) - ptr = cheri_bounds_set (ptr, 0); -#endif - return ptr; -} -_GL_ATTRIBUTE_NODISCARD SAFE_ALLOC_INLINE int -safe_alloc_check (void *ptr) -{ - /* Return 0 if the allocation was successful, -1 otherwise. */ - return -!ptr; -} - -/** - * ALLOC: - * @ptr: pointer to allocated memory - * - * Allocate sizeof *ptr bytes of memory and store - * the address of allocated memory in 'ptr'. Fill the - * newly allocated memory with zeros. - * - * Return -1 on failure to allocate, zero on success. - */ -#define ALLOC(ptr) ALLOC_N (ptr, 1) - -/** - * ALLOC_N: - * @ptr: pointer to allocated memory - * @count: number of elements to allocate - * - * Allocate an array of 'count' elements, each sizeof *ptr - * bytes long and store the address of allocated memory in - * 'ptr'. Fill the newly allocated memory with zeros. - * - * Return -1 on failure, 0 on success. - */ -#define ALLOC_N(ptr, count) \ - safe_alloc_check ((ptr) = calloc (count, sizeof *(ptr))) - -/** - * ALLOC_N_UNINITIALIZED: - * @ptr: pointer to allocated memory - * @count: number of elements to allocate - * - * Allocate an array of 'count' elements, each sizeof *ptr - * bytes long and store the address of allocated memory in - * 'ptr'. Do not initialize the new memory at all. - * - * Return -1 on failure to allocate, zero on success. - */ -#define ALLOC_N_UNINITIALIZED(ptr, count) \ - safe_alloc_check ((ptr) = safe_alloc_realloc_n (NULL, count, sizeof *(ptr))) - -/** - * REALLOC_N: - * @ptr: pointer to allocated memory - * @count: number of elements to allocate - * - * Re-allocate an array of 'count' elements, each sizeof *ptr - * bytes long and store the address of allocated memory in - * 'ptr'. Fill the newly allocated memory with zeros. - * - * Return -1 on failure to reallocate, zero on success. - */ -#define REALLOC_N(ptr, count) \ - safe_alloc_check ((ptr) = safe_alloc_realloc_n (ptr, count, sizeof *(ptr))) - -/** - * FREE: - * @ptr: pointer holding address to be freed - * - * Free the memory stored in 'ptr' and update to point - * to NULL. - */ -#define FREE(ptr) ((void) (free (ptr), (ptr) = NULL)) - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* SAFE_ALLOC_H_ */ diff --git a/include/libgnulib/safe-read.h b/include/libgnulib/safe-read.h deleted file mode 100755 index 6843092..0000000 --- a/include/libgnulib/safe-read.h +++ /dev/null @@ -1,50 +0,0 @@ -/* An interface to read() that retries after interrupts. - Copyright (C) 2002, 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Some system calls may be interrupted and fail with errno = EINTR in the - following situations: - - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user - types Ctrl-Z) on some platforms: Mac OS X. - - The process receives a signal for which a signal handler was installed - with sigaction() with an sa_flags field that does not contain - SA_RESTART. - - The process receives a signal for which a signal handler was installed - with signal() and for which no call to siginterrupt(sig,0) was done, - on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. - - This module provides a wrapper around read() that handles EINTR. */ - -#include - -#include "idx.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* This is present for backward compatibility with older versions of this code - where safe_read returned size_t, so SAFE_READ_ERROR was SIZE_MAX. */ -#define SAFE_READ_ERROR ((ptrdiff_t) -1) - -/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted. - Return the number of bytes read, zero for EOF, or -1 upon error. */ -extern ptrdiff_t safe_read (int fd, void *buf, idx_t count); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/safe-write.h b/include/libgnulib/safe-write.h deleted file mode 100755 index 0f77156..0000000 --- a/include/libgnulib/safe-write.h +++ /dev/null @@ -1,50 +0,0 @@ -/* An interface to write() that retries after interrupts. - Copyright (C) 2002, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Some system calls may be interrupted and fail with errno = EINTR in the - following situations: - - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user - types Ctrl-Z) on some platforms: Mac OS X. - - The process receives a signal for which a signal handler was installed - with sigaction() with an sa_flags field that does not contain - SA_RESTART. - - The process receives a signal for which a signal handler was installed - with signal() and for which no call to siginterrupt(sig,0) was done, - on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. - - This module provides a wrapper around write() that handles EINTR. */ - -#include - -#include "idx.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* This is present for backward compatibility with older versions of this code - where safe_read returned size_t, so SAFE_WRITE_ERROR was SIZE_MAX. */ -#define SAFE_WRITE_ERROR ((ptrdiff_t) -1) - -/* Write up to COUNT bytes at BUF to descriptor FD, retrying if interrupted. - Return the number of bytes written, zero for EOF, or -1 upon error. */ -extern ptrdiff_t safe_write (int fd, const void *buf, idx_t count); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/same-inode.h b/include/libgnulib/same-inode.h deleted file mode 100755 index 13ae24b..0000000 --- a/include/libgnulib/same-inode.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Determine whether two stat buffers are known to refer to the same file. - - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef SAME_INODE_H -#define SAME_INODE_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef SAME_INODE_INLINE -# define SAME_INODE_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* True if A and B point to structs with st_dev and st_ino members - that are known to represent the same file. - - Use | and ^ to shorten generated code, and to lessen the - probability of screwups if st_ino is an array. */ - -#if defined __VMS && __CRTL_VER < 80200000 -# define PSAME_INODE(a, b) (! (((a)->st_dev ^ (b)->st_dev) \ - | ((a)->st_ino[0] ^ (b)->st_ino[0]) \ - | ((a)->st_ino[1] ^ (b)->st_ino[1]) \ - | ((a)->st_ino[2] ^ (b)->st_ino[2]))) -#elif defined _WIN32 && ! defined __CYGWIN__ - /* Native Windows. */ -# if _GL_WINDOWS_STAT_INODES - /* stat() and fstat() set st_dev and st_ino to 0 if information about - the inode is not available. */ -# if _GL_WINDOWS_STAT_INODES == 2 -# define PSAME_INODE(a, b) \ - (! (! ((a)->st_dev | (a)->st_ino._gl_ino[0] | (a)->st_ino._gl_ino[1]) \ - | ((a)->st_dev ^ (b)->st_dev) \ - | ((a)->st_ino._gl_ino[0] ^ (b)->st_ino._gl_ino[0]) \ - | ((a)->st_ino._gl_ino[1] ^ (b)->st_ino._gl_ino[1]))) -# else -# define PSAME_INODE(a, b) (! (! ((a)->st_dev | (a)->st_ino) \ - | ((a)->st_dev ^ (b)->st_dev) \ - | ((a)->st_ino ^ (b)->st_ino))) -# endif -# else - /* stat() and fstat() set st_ino to 0 always. */ -# define PSAME_INODE(a, b) 0 -# endif -#else - /* POSIX. */ -# define PSAME_INODE(a, b) (! (((a)->st_dev ^ (b)->st_dev) \ - | ((a)->st_ino ^ (b)->st_ino))) -#endif - -/* True if struct objects A and B are known to represent the same file. */ - -#define SAME_INODE(a, b) PSAME_INODE (&(a), &(b)) - -/* True if *A and *B represent the same file. Unlike PSAME_INODE, - args are evaluated once and must point to struct stat. */ - -SAME_INODE_INLINE bool -psame_inode (struct stat const *a, struct stat const *b) -{ - return PSAME_INODE (a, b); -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/same.h b/include/libgnulib/same.h deleted file mode 100755 index 87ef6fe..0000000 --- a/include/libgnulib/same.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Determine whether two file names refer to the same file. - - Copyright (C) 1997-2000, 2003-2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef SAME_H_ -#define SAME_H_ 1 - -#ifdef __cplusplus -extern "C" { -#endif - - -bool same_name (const char *source, const char *dest); -bool same_nameat (int, char const *, int, char const *); - - -#ifdef __cplusplus -} -#endif - -#endif /* SAME_H_ */ diff --git a/include/libgnulib/save-cwd.h b/include/libgnulib/save-cwd.h deleted file mode 100755 index 9d314c2..0000000 --- a/include/libgnulib/save-cwd.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Save and restore current working directory. - - Copyright (C) 1995, 1997-1998, 2003, 2009-2024 Free Software Foundation, - Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#ifndef SAVE_CWD_H -#define SAVE_CWD_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - - -struct saved_cwd - { - int desc; - char *name; - }; - -int save_cwd (struct saved_cwd *cwd); -int restore_cwd (const struct saved_cwd *cwd); -void free_cwd (struct saved_cwd *cwd); - - -#ifdef __cplusplus -} -#endif - -#endif /* SAVE_CWD_H */ diff --git a/include/libgnulib/savedir.h b/include/libgnulib/savedir.h deleted file mode 100755 index 02f2157..0000000 --- a/include/libgnulib/savedir.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Save the list of files in a directory in a string. - - Copyright (C) 1997, 1999, 2001, 2003, 2005, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by David MacKenzie . */ - -#ifndef _GL_SAVEDIR_H -#define _GL_SAVEDIR_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -enum savedir_option - { - SAVEDIR_SORT_NONE, - SAVEDIR_SORT_NAME, -#if D_INO_IN_DIRENT - SAVEDIR_SORT_INODE, - SAVEDIR_SORT_FASTREAD = SAVEDIR_SORT_INODE -#else - SAVEDIR_SORT_FASTREAD = SAVEDIR_SORT_NONE -#endif - }; - -char *streamsavedir (DIR *, enum savedir_option) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -char *savedir (char const *, enum savedir_option) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/savewd.h b/include/libgnulib/savewd.h deleted file mode 100755 index e74ba82..0000000 --- a/include/libgnulib/savewd.h +++ /dev/null @@ -1,164 +0,0 @@ -/* Save and restore the working directory, possibly using a subprocess. - - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#ifndef SAVEWD_H -#define SAVEWD_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef SAVEWD_INLINE -# define SAVEWD_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* A saved working directory. The member names and constants defined - by this structure are private to the savewd module. */ -struct savewd -{ - /* The state of this object. */ - enum - { - /* This object has been created but does not yet represent - the working directory. */ - INITIAL_STATE, - - /* val.fd is the original working directory's file descriptor. - It is still the working directory. */ - FD_STATE, - - /* Like FD_STATE, but the working directory has changed, so - restoring it will require a fchdir. */ - FD_POST_CHDIR_STATE, - - /* Fork and let the subprocess do the work. val.child is 0 in a - child, negative in a childless parent, and the child process - ID in a parent with a child. */ - FORKING_STATE, - - /* A serious problem argues against further efforts. val.errnum - contains the error number (e.g., EIO). */ - ERROR_STATE, - - /* savewd_finish has been called, so the application no longer - cares whether the working directory is saved, and there is no - more work to do. */ - FINAL_STATE - } state; - - /* The object's value. */ - union - { - int fd; - int errnum; - pid_t child; - } val; -}; - -/* Initialize a saved working directory object. */ -SAVEWD_INLINE void -savewd_init (struct savewd *wd) -{ - wd->state = INITIAL_STATE; -} - - -/* Options for savewd_chdir. Can be ORed together. */ -enum - { - /* Do not follow symbolic links, if supported. */ - SAVEWD_CHDIR_NOFOLLOW = 1, - - /* Do not chdir if the directory is readable; simply succeed - without invoking chdir if the directory was opened. */ - SAVEWD_CHDIR_SKIP_READABLE = 2 - }; - -/* Change the directory, and if successful, record into *WD the fact - that the process chdired into DIR. A process using this module - should use savewd_chdir rather than chdir or fchdir. Obey the - options specified in OPTIONS. - - If OPEN_RESULT is not null, store into OPEN_RESULT[0] a file - descriptor that accesses DIR if a file descriptor is successfully - obtained. Store -1 otherwise, setting OPEN_RESULT[1] to the error - number. Store through OPEN_RESULT regardless of whether the chdir - is successful. However, when -2 is returned, the contents of - OPEN_RESULT are indeterminate since the file descriptor is closed - in the parent. - - Return -2 if a subprocess was spun off to do the real work, -1 - (setting errno) if unsuccessful, 0 if successful. */ -int savewd_chdir (struct savewd *wd, char const *dir, int options, - int open_result[2]); - -/* Restore the working directory from *WD. STATUS indicates the exit - status corresponding to the work done since the last save; this is - used when the caller is in a subprocess. Return 0 if successful, - -1 (setting errno) on our failure, a positive subprocess exit - status if the working directory was restored in the parent but the - subprocess failed. */ -int savewd_restore (struct savewd *wd, int status); - -/* Return WD's error number, or 0 if WD is not in an error state. */ -SAVEWD_INLINE int _GL_ATTRIBUTE_PURE -savewd_errno (struct savewd const *wd) -{ - return (wd->state == ERROR_STATE ? wd->val.errnum : 0); -} - -/* Deallocate any resources associated with WD. A program that chdirs - should restore before finishing. */ -void savewd_finish (struct savewd *wd); - -/* Process N_FILES file names, FILE[0] through FILE[N_FILES - 1]. - For each file name F, call ACT (F, WD, OPTIONS); ACT should invoke - savewd_chdir as needed, and should return an exit status. WD - represents the working directory; it may be in an error state when - ACT is called. - - Save and restore the working directory as needed by the file name - vector; assume that ACT does not require access to any relative - file names other than its first argument, and that it is OK if the - working directory is changed when this function returns. Some - actions may be applied in a subprocess. - - Return the maximum exit status that any call to ACT returned, or - EXIT_SUCCESS (i.e., 0) if no calls were made. */ -int savewd_process_files (int n_files, char **file, - int (*act) (char *, struct savewd *, void *), - void *options); - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/scratch_buffer.h b/include/libgnulib/scratch_buffer.h deleted file mode 100755 index 4f28203..0000000 --- a/include/libgnulib/scratch_buffer.h +++ /dev/null @@ -1,117 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, 2017. */ - -#ifndef _GL_SCRATCH_BUFFER_H -#define _GL_SCRATCH_BUFFER_H - -/* Scratch buffers with a default stack allocation and fallback to - heap allocation. It is expected that this function is used in this - way: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - return -1; - - scratch_buffer_free (&tmpbuf); - return 0; - - The allocation functions (scratch_buffer_grow, - scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make - sure that the heap allocation, if any, is freed, so that the code - above does not have a memory leak. The buffer still remains in a - state that can be deallocated using scratch_buffer_free, so a loop - like this is valid as well: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - break; - - scratch_buffer_free (&tmpbuf); - - scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed - to grow the buffer by at least 512 bytes. This means that when - using the scratch buffer as a backing store for a non-character - array whose element size, in bytes, is 512 or smaller, the scratch - buffer only has to grow once to make room for at least one more - element. -*/ - -/* Scratch buffer. Must be initialized with scratch_buffer_init - before its use. */ -struct scratch_buffer; - -/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space - and BUFFER->length reflects the available space. */ -#if 0 -extern void scratch_buffer_init (struct scratch_buffer *buffer); -#endif - -/* Deallocates *BUFFER (if it was heap-allocated). */ -#if 0 -extern void scratch_buffer_free (struct scratch_buffer *buffer); -#endif - -/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT - preserved. Return true on success, false on allocation failure (in - which case the old buffer is freed). On success, the new buffer is - larger than the previous size. On failure, *BUFFER is deallocated, - but remains in a free-able state, and errno is set. */ -#if 0 -extern bool scratch_buffer_grow (struct scratch_buffer *buffer); -#endif - -/* Like scratch_buffer_grow, but preserve the old buffer - contents on success, as a prefix of the new buffer. */ -#if 0 -extern bool scratch_buffer_grow_preserve (struct scratch_buffer *buffer); -#endif - -/* Grow *BUFFER so that it can store at least NELEM elements of SIZE - bytes. The buffer contents are NOT preserved. Both NELEM and SIZE - can be zero. Return true on success, false on allocation failure - (in which case the old buffer is freed, but *BUFFER remains in a - free-able state, and errno is set). It is unspecified whether this - function can reduce the array size. */ -#if 0 -extern bool scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size); -#endif - - -/* The implementation is imported from glibc. */ - -/* Avoid possible conflicts with symbols exported by the GNU libc. */ -#define __libc_scratch_buffer_grow gl_scratch_buffer_grow -#define __libc_scratch_buffer_grow_preserve gl_scratch_buffer_grow_preserve -#define __libc_scratch_buffer_set_array_size gl_scratch_buffer_set_array_size - -#ifndef _GL_LIKELY -/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ -# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) -# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) -#endif - -#include - -#endif /* _GL_SCRATCH_BUFFER_H */ diff --git a/include/libgnulib/selinux-at.h b/include/libgnulib/selinux-at.h deleted file mode 100755 index c25e362..0000000 --- a/include/libgnulib/selinux-at.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Prototypes for openat-style fd-relative SELinux functions - Copyright (C) 2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* These are the dir-fd-relative variants of the functions without the - "at" suffix. For example, getfileconat (AT_FDCWD, file, &c) is usually - equivalent to getfilecon (file, &c). The emulation is accomplished - by first attempting getfilecon ("/proc/self/fd/DIR_FD/FILE", &c). - Failing that, simulate it via save_cwd/fchdir/getfilecon/restore_cwd. - If either the save_cwd or the restore_cwd fails (relatively unlikely), - then give a diagnostic and exit nonzero. */ - -/* dir-fd-relative getfilecon. Set *CON to the SELinux security context - of the file specified by DIR_FD and FILE and return the length of *CON. - DIR_FD and FILE are interpreted as for fstatat[*]. A non-NULL *CON - must be freed with freecon. Upon error, set *CON to NULL, set errno - and return -1. - [*] with flags=0 here, with flags=AT_SYMLINK_NOFOLLOW for lgetfileconat */ -int getfileconat (int dir_fd, char const *file, char **con); - -/* dir-fd-relative lgetfilecon. This function is just like getfileconat, - except when DIR_FD and FILE specify a symlink: lgetfileconat operates on - the symlink, while getfileconat operates on the referent of the symlink. */ -int lgetfileconat (int dir_fd, char const *file, char **con); - -/* dir-fd-relative setfilecon. Set the SELinux security context of - the file specified by DIR_FD and FILE to CON. DIR_FD and FILE are - interpreted as for fstatat[*]. Upon success, return 0. - Otherwise, return -1 and set errno. */ -int setfileconat (int dir_fd, char const *file, char const *con); - -/* dir-fd-relative lsetfilecon. This function is just like setfileconat, - except that rather than dereferencing a symlink, this function affects it. */ -/* dir-fd-relative lsetfilecon. This function is just like setfileconat, - except when DIR_FD and FILE specify a symlink: lsetfileconat operates on - the symlink, while setfileconat operates on the referent of the symlink. */ -int lsetfileconat (int dir_fd, char const *file, char const *con); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/setlocale_null.h b/include/libgnulib/setlocale_null.h deleted file mode 100755 index 966c53c..0000000 --- a/include/libgnulib/setlocale_null.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Query the name of the current global locale. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#ifndef _SETLOCALE_NULL_H -#define _SETLOCALE_NULL_H - -#include - -#include "arg-nonnull.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Recommended size of a buffer for a locale name for a single category. - On glibc systems, you can have locale names that are relative file names; - assume a maximum length 256. - In native Windows, in 2018 the longest locale name was of length 58 - ("FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251"). */ -#define SETLOCALE_NULL_MAX (256+1) - -/* Recommended size of a buffer for a locale name with all categories. - On glibc systems, you can have locale names that are relative file names; - assume maximum length 256 for each. There are 12 categories; so, the - maximum total length is 148+12*256. - In native Windows, there are 5 categories, and the maximum total length is - 55+5*58. */ -#define SETLOCALE_NULL_ALL_MAX (148+12*256+1) - -/* setlocale_null_r_unlocked (CATEGORY, BUF, BUFSIZE) is like - setlocale (CATEGORY, NULL), except that - - it returns the resulting locale category name or locale name in the - user-supplied buffer BUF, which must be BUFSIZE bytes long. - The recommended minimum buffer size is - - SETLOCALE_NULL_MAX for CATEGORY != LC_ALL, and - - SETLOCALE_NULL_ALL_MAX for CATEGORY == LC_ALL. - The return value is an error code: 0 if the call is successful, EINVAL if - CATEGORY is invalid, or ERANGE if BUFSIZE is smaller than the length needed - size (including the trailing NUL byte). In the latter case, a truncated - result is returned in BUF, but still NUL-terminated if BUFSIZE > 0. - This call is guaranteed to be multithread-safe only if - - CATEGORY != LC_ALL and SETLOCALE_NULL_ONE_MTSAFE is true, or - - CATEGORY == LC_ALL and SETLOCALE_NULL_ALL_MTSAFE is true, - and the other threads must not make other setlocale invocations (since - changing the global locale has side effects on all threads). */ -extern int setlocale_null_r_unlocked (int category, char *buf, size_t bufsize) - _GL_ARG_NONNULL ((2)); - -/* setlocale_null_unlocked (CATEGORY) is like setlocale (CATEGORY, NULL). - The return value is NULL if CATEGORY is invalid. - This call is guaranteed to be multithread-safe only if - - CATEGORY != LC_ALL and SETLOCALE_NULL_ONE_MTSAFE is true, or - - CATEGORY == LC_ALL and SETLOCALE_NULL_ALL_MTSAFE is true, - and the other threads must not make other setlocale invocations (since - changing the global locale has side effects on all threads). */ -extern const char *setlocale_null_unlocked (int category); - -/* setlocale_null_r (CATEGORY, BUF, BUFSIZE) is like setlocale (CATEGORY, NULL), - except that - - it is guaranteed to be multithread-safe, - - it returns the resulting locale category name or locale name in the - user-supplied buffer BUF, which must be BUFSIZE bytes long. - The recommended minimum buffer size is - - SETLOCALE_NULL_MAX for CATEGORY != LC_ALL, and - - SETLOCALE_NULL_ALL_MAX for CATEGORY == LC_ALL. - The return value is an error code: 0 if the call is successful, EINVAL if - CATEGORY is invalid, or ERANGE if BUFSIZE is smaller than the length needed - size (including the trailing NUL byte). In the latter case, a truncated - result is returned in BUF, but still NUL-terminated if BUFSIZE > 0. - For this call to be multithread-safe, *all* calls to - setlocale (CATEGORY, NULL) in all other threads must have been converted - to use setlocale_null_r or setlocale_null as well, and the other threads - must not make other setlocale invocations (since changing the global locale - has side effects on all threads). */ -extern int setlocale_null_r (int category, char *buf, size_t bufsize) - _GL_ARG_NONNULL ((2)); - -/* setlocale_null (CATEGORY) is like setlocale (CATEGORY, NULL), except that - it is guaranteed to be multithread-safe. - The return value is NULL if CATEGORY is invalid. - For this call to be multithread-safe, *all* calls to - setlocale (CATEGORY, NULL) in all other threads must have been converted - to use setlocale_null_r or setlocale_null as well, and the other threads - must not make other setlocale invocations (since changing the global locale - has side effects on all threads). */ -extern const char *setlocale_null (int category); - - -#ifdef __cplusplus -} -#endif - -#endif /* _SETLOCALE_NULL_H */ diff --git a/include/libgnulib/sf-istream.h b/include/libgnulib/sf-istream.h deleted file mode 100755 index e45c561..0000000 --- a/include/libgnulib/sf-istream.h +++ /dev/null @@ -1,77 +0,0 @@ -/* A string or file based input stream. - Copyright (C) 2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2024. */ - -#ifndef _SF_ISTREAM_H -#define _SF_ISTREAM_H - -#include - -#include "string-desc.h" - -/* An input stream type that can read from a file or from a string. */ -typedef struct sf_istream sf_istream_t; -struct sf_istream -{ - /* The input file stream, when reading from a file. */ - FILE *fp; - /* The input area, when reading from a string. */ - const char *input; - const char *input_end; -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializes STREAM to read from FP. - FP must be a FILE stream open for reading. */ -extern void sf_istream_init_from_file (sf_istream_t *stream, FILE *fp); -/* Initializes STREAM to read from a NUL-terminated string INPUT. - The contents of INPUT must stay available and unchanged as long as STREAM - is in use. */ -extern void sf_istream_init_from_string (sf_istream_t *stream, - const char *input); -/* Initializes STREAM to read from a string INPUT. - The contents of INPUT must stay available and unchanged as long as STREAM - is in use. Operations on STREAM will not modify the contents of INPUT. */ -extern void sf_istream_init_from_string_desc (sf_istream_t *stream, - string_desc_t input); - -/* Reads a single 'char' from STREAM, and returns it as an 'unsigned char'. - Returns EOF when the end of stream was already reached. */ -extern int sf_getc (sf_istream_t *stream); - -/* Tests whether STREAM has encountered an error. - You may want to call this function after sf_getc (stream) has - returned EOF; in other situations it is guaranteed to return 0. */ -extern int sf_ferror (sf_istream_t *stream); - -/* Assuming that C was the last value returned by sf_getc (stream), - this call pushes back C onto the stream. - Only 1 character of pushback is guaranteed. */ -extern void sf_ungetc (sf_istream_t *stream, int c); - -/* Frees all memory held by STREAM. - This call has no effect on the arguments provided to sf_istream_init_*. */ -extern void sf_free (sf_istream_t *stream); - -#ifdef __cplusplus -} -#endif - -#endif /* _SF_ISTREAM_H */ diff --git a/include/libgnulib/sfl-istream.h b/include/libgnulib/sfl-istream.h deleted file mode 100755 index 7b487ab..0000000 --- a/include/libgnulib/sfl-istream.h +++ /dev/null @@ -1,79 +0,0 @@ -/* A string or file based input stream, that keeps track of a line number. - Copyright (C) 2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2024. */ - -#ifndef _SFL_ISTREAM_H -#define _SFL_ISTREAM_H - -#include "sf-istream.h" - -/* An input stream type that can read from a file or from a string - and that keeps track of a line number. */ -typedef struct sfl_istream sfl_istream_t; -struct sfl_istream -{ - sf_istream_t istream; - size_t line_number; -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Initializes STREAM to read from FP. - FP must be a FILE stream open for reading. */ -extern void sfl_istream_init_from_file (sfl_istream_t *stream, FILE *fp); -/* Initializes STREAM to read from a NUL-terminated string INPUT. - The contents of INPUT must stay available and unchanged as long as STREAM - is in use. */ -extern void sfl_istream_init_from_string (sfl_istream_t *stream, - const char *input); -/* Initializes STREAM to read from a string INPUT. - The contents of INPUT must stay available and unchanged as long as STREAM - is in use. Operations on STREAM will not modify the contents of INPUT. */ -extern void sfl_istream_init_from_string_desc (sfl_istream_t *stream, - string_desc_t input); - -/* Sets the current line number of STREAM. */ -extern void sfl_set_line_number (sfl_istream_t *stream, size_t line_number); - -/* Returns the current line number of STREAM. */ -extern size_t sfl_get_line_number (sfl_istream_t *stream); - -/* Reads a single 'char' from STREAM, and returns it as an 'unsigned char'. - Returns EOF when the end of stream was already reached. */ -extern int sfl_getc (sfl_istream_t *stream); - -/* Tests whether STREAM has encountered an error. - You may want to call this function after sf_getc (stream) has - returned EOF; in other situations it is guaranteed to return 0. */ -extern int sfl_ferror (sfl_istream_t *stream); - -/* Assuming that C was the last value returned by sf_getc (stream), - this call pushes back C onto the stream. - Only 1 character of pushback is guaranteed. */ -extern void sfl_ungetc (sfl_istream_t *stream, int c); - -/* Frees all memory held by STREAM. - This call has no effect on the arguments provided to sfl_istream_init_*. */ -extern void sfl_free (sfl_istream_t *stream); - -#ifdef __cplusplus -} -#endif - -#endif /* _SFL_ISTREAM_H */ diff --git a/include/libgnulib/sh-quote.h b/include/libgnulib/sh-quote.h deleted file mode 100755 index 753a27b..0000000 --- a/include/libgnulib/sh-quote.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Shell quoting. - Copyright (C) 2001-2002, 2004, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _SH_QUOTE_H -#define _SH_QUOTE_H - -/* When passing a command to a shell, we must quote the program name and - arguments, since Unix shells interpret characters like " ", "'", "<", ">", - "$", '*', '?' etc. in a special way. */ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Returns the number of bytes needed for the quoted string. */ -extern size_t shell_quote_length (const char *string); - -/* Copies the quoted string to p and returns the incremented p. - There must be room for shell_quote_length (string) + 1 bytes at p. */ -extern char * shell_quote_copy (char *restrict p, const char *string); - -/* Returns the freshly allocated quoted string. */ -extern char * shell_quote (const char *string) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Returns a freshly allocated string containing all argument strings, quoted, - separated through spaces. */ -extern char * shell_quote_argv (const char * const *argv) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -#ifdef __cplusplus -} -#endif - -#endif /* _SH_QUOTE_H */ diff --git a/include/libgnulib/sha1.h b/include/libgnulib/sha1.h deleted file mode 100755 index 940163e..0000000 --- a/include/libgnulib/sha1.h +++ /dev/null @@ -1,134 +0,0 @@ -/* Declarations of functions and data types used for SHA1 sum - library functions. - Copyright (C) 2000-2001, 2003, 2005-2006, 2008-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef SHA1_H -# define SHA1_H 1 - -/* This file uses HAVE_OPENSSL_SHA1. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include - -# if HAVE_OPENSSL_SHA1 -# ifndef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ -# endif -/* If would give a compile-time error, don't use OpenSSL. */ -# include -# if OPENSSL_VERSION_MAJOR >= 3 -# include -# if (OPENSSL_CONFIGURED_API \ - < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ - ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) -# undef HAVE_OPENSSL_SHA1 -# endif -# endif -# if HAVE_OPENSSL_SHA1 -# include -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -# define SHA1_DIGEST_SIZE 20 - -# if HAVE_OPENSSL_SHA1 -# define GL_OPENSSL_NAME 1 -# include "gl_openssl.h" -# else -/* Structure to save state of computation between the single steps. */ -struct sha1_ctx -{ - uint32_t A; - uint32_t B; - uint32_t C; - uint32_t D; - uint32_t E; - - uint32_t total[2]; - uint32_t buflen; /* ≥ 0, ≤ 128 */ - uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ -}; - -/* Initialize structure containing state of computation. */ -extern void sha1_init_ctx (struct sha1_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void sha1_process_block (const void *buffer, size_t len, - struct sha1_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void sha1_process_bytes (const void *buffer, size_t len, - struct sha1_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 20 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *restrict resbuf); - - -/* Put result from CTX in first 20 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *restrict resbuf); - - -/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sha1_buffer (const char *buffer, size_t len, - void *restrict resblock); - -# endif - -/* Compute SHA1 message digest for bytes read from STREAM. - STREAM is an open file stream. Regular files are handled more efficiently. - The contents of STREAM from its current position to its end will be read. - The case that the last operation on STREAM was an 'ungetc' is not supported. - The resulting message digest number will be written into the 20 bytes - beginning at RESBLOCK. */ -extern int sha1_stream (FILE *stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/sha256.h b/include/libgnulib/sha256.h deleted file mode 100755 index a9d7abb..0000000 --- a/include/libgnulib/sha256.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Declarations of functions and data types used for SHA256 and SHA224 sum - library functions. - Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef SHA256_H -# define SHA256_H 1 - -/* This file uses HAVE_OPENSSL_SHA256. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include - -# if HAVE_OPENSSL_SHA256 -# ifndef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ -# endif -/* If would give a compile-time error, don't use OpenSSL. */ -# include -# if OPENSSL_VERSION_MAJOR >= 3 -# include -# if (OPENSSL_CONFIGURED_API \ - < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ - ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) -# undef HAVE_OPENSSL_SHA256 -# endif -# endif -# if HAVE_OPENSSL_SHA256 -# include -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -enum { SHA224_DIGEST_SIZE = 224 / 8 }; -enum { SHA256_DIGEST_SIZE = 256 / 8 }; - -# if HAVE_OPENSSL_SHA256 -# define GL_OPENSSL_NAME 224 -# include "gl_openssl.h" -# define GL_OPENSSL_NAME 256 -# include "gl_openssl.h" -# else -/* Structure to save state of computation between the single steps. */ -struct sha256_ctx -{ - uint32_t state[8]; - - uint32_t total[2]; - size_t buflen; /* ≥ 0, ≤ 128 */ - uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ -}; - -/* Initialize structure containing state of computation. */ -extern void sha256_init_ctx (struct sha256_ctx *ctx); -extern void sha224_init_ctx (struct sha256_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void sha256_process_block (const void *buffer, size_t len, - struct sha256_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void sha256_process_bytes (const void *buffer, size_t len, - struct sha256_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 32 (28) bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *sha256_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf); -extern void *sha224_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf); - - -/* Put result from CTX in first 32 (28) bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *sha256_read_ctx (const struct sha256_ctx *ctx, - void *restrict resbuf); -extern void *sha224_read_ctx (const struct sha256_ctx *ctx, - void *restrict resbuf); - - -/* Compute SHA256 (SHA224) message digest for LEN bytes beginning at BUFFER. - The result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sha256_buffer (const char *buffer, size_t len, - void *restrict resblock); -extern void *sha224_buffer (const char *buffer, size_t len, - void *restrict resblock); - -# endif - -/* Compute SHA256 (SHA224) message digest for bytes read from STREAM. - STREAM is an open file stream. Regular files are handled more efficiently. - The contents of STREAM from its current position to its end will be read. - The case that the last operation on STREAM was an 'ungetc' is not supported. - The resulting message digest number will be written into the 32 (28) bytes - beginning at RESBLOCK. */ -extern int sha256_stream (FILE *stream, void *resblock); -extern int sha224_stream (FILE *stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/sha512.h b/include/libgnulib/sha512.h deleted file mode 100755 index f6bac85..0000000 --- a/include/libgnulib/sha512.h +++ /dev/null @@ -1,143 +0,0 @@ -/* Declarations of functions and data types used for SHA512 and SHA384 sum - library functions. - Copyright (C) 2005-2006, 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef SHA512_H -# define SHA512_H 1 - -/* This file uses HAVE_OPENSSL_SHA512. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include "u64.h" - -# if HAVE_OPENSSL_SHA512 -# ifndef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ -# endif -/* If would give a compile-time error, don't use OpenSSL. */ -# include -# if OPENSSL_VERSION_MAJOR >= 3 -# include -# if (OPENSSL_CONFIGURED_API \ - < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ - ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) -# undef HAVE_OPENSSL_SHA512 -# endif -# endif -# if HAVE_OPENSSL_SHA512 -# include -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -enum { SHA384_DIGEST_SIZE = 384 / 8 }; -enum { SHA512_DIGEST_SIZE = 512 / 8 }; - -# if HAVE_OPENSSL_SHA512 -# define GL_OPENSSL_NAME 384 -# include "gl_openssl.h" -# define GL_OPENSSL_NAME 512 -# include "gl_openssl.h" -# else -/* Structure to save state of computation between the single steps. */ -struct sha512_ctx -{ - u64 state[8]; - - u64 total[2]; - size_t buflen; /* ≥ 0, ≤ 256 */ - u64 buffer[32]; /* 256 bytes; the first buflen bytes are in use */ -}; - -/* Initialize structure containing state of computation. */ -extern void sha512_init_ctx (struct sha512_ctx *ctx); -extern void sha384_init_ctx (struct sha512_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 128!!! */ -extern void sha512_process_block (const void *buffer, size_t len, - struct sha512_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 128. */ -extern void sha512_process_bytes (const void *buffer, size_t len, - struct sha512_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 64 (48) bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *sha512_finish_ctx (struct sha512_ctx *ctx, void *restrict resbuf); -extern void *sha384_finish_ctx (struct sha512_ctx *ctx, void *restrict resbuf); - - -/* Put result from CTX in first 64 (48) bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. - - IMPORTANT: On some systems it is required that RESBUF is correctly - aligned for a 32 bits value. */ -extern void *sha512_read_ctx (const struct sha512_ctx *ctx, - void *restrict resbuf); -extern void *sha384_read_ctx (const struct sha512_ctx *ctx, - void *restrict resbuf); - - -/* Compute SHA512 (SHA384) message digest for LEN bytes beginning at BUFFER. - The result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sha512_buffer (const char *buffer, size_t len, - void *restrict resblock); -extern void *sha384_buffer (const char *buffer, size_t len, - void *restrict resblock); - -# endif - -/* Compute SHA512 (SHA384) message digest for bytes read from STREAM. - STREAM is an open file stream. Regular files are handled more efficiently. - The contents of STREAM from its current position to its end will be read. - The case that the last operation on STREAM was an 'ungetc' is not supported. - The resulting message digest number will be written into the 64 (48) bytes - beginning at RESBLOCK. */ -extern int sha512_stream (FILE *stream, void *resblock); -extern int sha384_stream (FILE *stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/sig-handler.h b/include/libgnulib/sig-handler.h deleted file mode 100755 index 076d0ab..0000000 --- a/include/libgnulib/sig-handler.h +++ /dev/null @@ -1,53 +0,0 @@ -/* Convenience declarations when working with . - - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_SIG_HANDLER_H -#define _GL_SIG_HANDLER_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef SIG_HANDLER_INLINE -# define SIG_HANDLER_INLINE _GL_INLINE -#endif - -/* Convenience type when working with signal handlers. */ -typedef void (*sa_handler_t) (int); - -/* Return the handler of a signal, as a sa_handler_t value regardless - of its true type. The resulting function can be compared to - special values like SIG_IGN but it is not portable to call it. */ -SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE -get_handler (struct sigaction const *a) -{ - /* POSIX says that special values like SIG_IGN can only occur when - action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4, - for example, sa_sigaction and sa_handler are aliases and a signal - is ignored if sa_sigaction (after casting) equals SIG_IGN. In - this case, this implementation relies on the fact that the two - are aliases, and simply returns sa_handler. */ - return a->sa_handler; -} - -_GL_INLINE_HEADER_END - -#endif /* _GL_SIG_HANDLER_H */ diff --git a/include/libgnulib/sig2str.h b/include/libgnulib/sig2str.h deleted file mode 100755 index 1abdb14..0000000 --- a/include/libgnulib/sig2str.h +++ /dev/null @@ -1,32 +0,0 @@ -/* sig2str.h -- convert between signal names and numbers - - Copyright (C) 2002, 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#include - -/* An upper bound on signal numbers allowed by the system. */ - -#if defined _sys_nsig -# define SIGNUM_BOUND (_sys_nsig - 1) -#elif defined _SIG_MAXSIG -# define SIGNUM_BOUND (_SIG_MAXSIG - 2) /* FreeBSD >= 7. */ -#elif defined NSIG -# define SIGNUM_BOUND (NSIG - 1) -#else -# define SIGNUM_BOUND 64 -#endif diff --git a/include/libgnulib/siglist.h b/include/libgnulib/siglist.h deleted file mode 100755 index 8d06e9b..0000000 --- a/include/libgnulib/siglist.h +++ /dev/null @@ -1,132 +0,0 @@ -/* Canonical list of all signal names. - Copyright (C) 1996-1999, 2008-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -/* This file should be usable for any platform, since it just associates - the SIG* macros with text names and descriptions. The actual values - come from (via ). For any signal macros do not - exist on every platform, we can use #ifdef tests here and still use - this single common file for all platforms. */ - -/* This file is included multiple times. */ - -/* Duplicate values (such as SIGBUS==SIGSEGV on Haiku) favor the last - list entry. */ - -/* Standard signals */ -#ifdef SIGHUP - init_sig (SIGHUP, "HUP", N_("Hangup")) -#endif -#ifdef SIGINT - init_sig (SIGINT, "INT", N_("Interrupt")) -#endif -#ifdef SIGQUIT - init_sig (SIGQUIT, "QUIT", N_("Quit")) -#endif -#ifdef SIGILL - init_sig (SIGILL, "ILL", N_("Illegal instruction")) -#endif -#ifdef SIGTRAP - init_sig (SIGTRAP, "TRAP", N_("Trace/breakpoint trap")) -#endif -#ifdef SIGABRT - init_sig (SIGABRT, "ABRT", N_("Aborted")) -#endif -#ifdef SIGFPE - init_sig (SIGFPE, "FPE", N_("Floating point exception")) -#endif -#ifdef SIGKILL - init_sig (SIGKILL, "KILL", N_("Killed")) -#endif -#ifdef SIGBUS - init_sig (SIGBUS, "BUS", N_("Bus error")) -#endif -#ifdef SIGSEGV - init_sig (SIGSEGV, "SEGV", N_("Segmentation fault")) -#endif -#ifdef SIGPIPE - init_sig (SIGPIPE, "PIPE", N_("Broken pipe")) -#endif -#ifdef SIGALRM - init_sig (SIGALRM, "ALRM", N_("Alarm clock")) -#endif -#ifdef SIGTERM - init_sig (SIGTERM, "TERM", N_("Terminated")) -#endif -#ifdef SIGURG - init_sig (SIGURG, "URG", N_("Urgent I/O condition")) -#endif -#ifdef SIGSTOP - init_sig (SIGSTOP, "STOP", N_("Stopped (signal)")) -#endif -#ifdef SIGTSTP - init_sig (SIGTSTP, "TSTP", N_("Stopped")) -#endif -#ifdef SIGCONT - init_sig (SIGCONT, "CONT", N_("Continued")) -#endif -#ifdef SIGCHLD - init_sig (SIGCHLD, "CHLD", N_("Child exited")) -#endif -#ifdef SIGTTIN - init_sig (SIGTTIN, "TTIN", N_("Stopped (tty input)")) -#endif -#ifdef SIGTTOU - init_sig (SIGTTOU, "TTOU", N_("Stopped (tty output)")) -#endif -#ifdef SIGIO - init_sig (SIGIO, "IO", N_("I/O possible")) -#endif -#ifdef SIGXCPU - init_sig (SIGXCPU, "XCPU", N_("CPU time limit exceeded")) -#endif -#ifdef SIGXFSZ - init_sig (SIGXFSZ, "XFSZ", N_("File size limit exceeded")) -#endif -#ifdef SIGVTALRM - init_sig (SIGVTALRM, "VTALRM", N_("Virtual timer expired")) -#endif -#ifdef SIGPROF - init_sig (SIGPROF, "PROF", N_("Profiling timer expired")) -#endif -#ifdef SIGWINCH - init_sig (SIGWINCH, "WINCH", N_("Window changed")) -#endif -#ifdef SIGUSR1 - init_sig (SIGUSR1, "USR1", N_("User defined signal 1")) -#endif -#ifdef SIGUSR2 - init_sig (SIGUSR2, "USR2", N_("User defined signal 2")) -#endif - -/* Variations */ -#ifdef SIGEMT - init_sig (SIGEMT, "EMT", N_("EMT trap")) -#endif -#ifdef SIGSYS - init_sig (SIGSYS, "SYS", N_("Bad system call")) -#endif -#ifdef SIGSTKFLT - init_sig (SIGSTKFLT, "STKFLT", N_("Stack fault")) -#endif -#ifdef SIGINFO - init_sig (SIGINFO, "INFO", N_("Information request")) -#elif defined(SIGPWR) && (!defined(SIGLOST) || (SIGPWR != SIGLOST)) - init_sig (SIGPWR, "PWR", N_("Power failure")) -#endif -#ifdef SIGLOST - init_sig (SIGLOST, "LOST", N_("Resource lost")) -#endif diff --git a/include/libgnulib/signed-nan.h b/include/libgnulib/signed-nan.h deleted file mode 100755 index cae6c5d..0000000 --- a/include/libgnulib/signed-nan.h +++ /dev/null @@ -1,138 +0,0 @@ -/* Macros for quiet not-a-number. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _SIGNED_NAN_H -#define _SIGNED_NAN_H - -#include - -#include "nan.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Returns - x, implemented by inverting the sign bit, - so that it works also on 'float' NaN values. */ -_GL_UNUSED static float -minus_NaNf (float x) -{ -#if defined __mips__ - /* The mips instruction neg.s may have no effect on NaNs. - Therefore, invert the sign bit using integer operations. */ - union { unsigned int i; float value; } u; - u.value = x; - u.i ^= 1U << 31; - return u.value; -#else - return - x; -#endif -} - -/* Returns a quiet 'float' NaN with sign bit == 0. */ -_GL_UNUSED static float -positive_NaNf () -{ - /* 'volatile' works around a GCC bug: - */ - float volatile nan = NaNf (); - return (signbit (nan) ? minus_NaNf (nan) : nan); -} - -/* Returns a quiet 'float' NaN with sign bit == 1. */ -_GL_UNUSED static float -negative_NaNf () -{ - /* 'volatile' works around a GCC bug: - */ - float volatile nan = NaNf (); - return (signbit (nan) ? nan : minus_NaNf (nan)); -} - - -/* Returns - x, implemented by inverting the sign bit, - so that it works also on 'double' NaN values. */ -_GL_UNUSED static double -minus_NaNd (double x) -{ -#if defined __mips__ - /* The mips instruction neg.d may have no effect on NaNs. - Therefore, invert the sign bit using integer operations. */ - union { unsigned long long i; double value; } u; - u.value = x; - u.i ^= 1ULL << 63; - return u.value; -#else - return - x; -#endif -} - -/* Returns a quiet 'double' NaN with sign bit == 0. */ -_GL_UNUSED static double -positive_NaNd () -{ - /* 'volatile' works around a GCC bug: - */ - double volatile nan = NaNd (); - return (signbit (nan) ? minus_NaNd (nan) : nan); -} - -/* Returns a quiet 'double' NaN with sign bit == 1. */ -_GL_UNUSED static double -negative_NaNd () -{ - /* 'volatile' works around a GCC bug: - */ - double volatile nan = NaNd (); - return (signbit (nan) ? nan : minus_NaNd (nan)); -} - - -/* Returns - x, implemented by inverting the sign bit, - so that it works also on 'long double' NaN values. */ -_GL_UNUSED static long double -minus_NaNl (long double x) -{ - return - x; -} - -/* Returns a quiet 'long double' NaN with sign bit == 0. */ -_GL_UNUSED static long double -positive_NaNl () -{ - /* 'volatile' works around a GCC bug: - */ - long double volatile nan = NaNl (); - return (signbit (nan) ? minus_NaNl (nan) : nan); -} - -/* Returns a quiet 'long double' NaN with sign bit == 1. */ -_GL_UNUSED static long double -negative_NaNl () -{ - /* 'volatile' works around a GCC bug: - */ - long double volatile nan = NaNl (); - return (signbit (nan) ? nan : minus_NaNl (nan)); -} - - -#ifdef __cplusplus -} -#endif - -#endif /* _SIGNED_NAN_H */ diff --git a/include/libgnulib/signed-snan.h b/include/libgnulib/signed-snan.h deleted file mode 100755 index 7a73ee8..0000000 --- a/include/libgnulib/signed-snan.h +++ /dev/null @@ -1,150 +0,0 @@ -/* Macros for signalling not-a-number. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _SIGNED_SNAN_H -#define _SIGNED_SNAN_H - -#include "signed-nan.h" -#include "snan.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -#if HAVE_SNANF - -/* Returns a signalling 'float' NaN with sign bit == 0 in memory. */ -_GL_UNUSED static memory_float -memory_positive_SNaNf () -{ - return construct_memory_SNaNf (positive_NaNf ()); -} - -/* Returns a signalling 'float' NaN with sign bit == 1 in memory. */ -_GL_UNUSED static memory_float -memory_negative_SNaNf () -{ - return construct_memory_SNaNf (negative_NaNf ()); -} - -/* Note: On 32-bit x86 processors, as well as on x86_64 processors with - CC="gcc -mfpmath=387", the following functions may return a quiet NaN - instead. Use the functions with 'memory_' prefix if you need to avoid this. - See - for details. */ - -/* Returns a signalling 'float' NaN with sign bit == 0. */ -_GL_UNUSED static float -positive_SNaNf () -{ - return memory_positive_SNaNf ().value; -} - -/* Returns a signalling 'float' NaN with sign bit == 1. */ -_GL_UNUSED static float -negative_SNaNf () -{ - return memory_negative_SNaNf ().value; -} - -#endif - - -#if HAVE_SNAND - -/* Returns a signalling 'double' NaN with sign bit == 0 in memory. */ -_GL_UNUSED static memory_double -memory_positive_SNaNd () -{ - return construct_memory_SNaNd (positive_NaNd ()); -} - -/* Returns a signalling 'double' NaN with sign bit == 1 in memory. */ -_GL_UNUSED static memory_double -memory_negative_SNaNd () -{ - return construct_memory_SNaNd (negative_NaNd ()); -} - -/* Note: On 32-bit x86 processors, as well as on x86_64 processors with - CC="gcc -mfpmath=387", the following functions may return a quiet NaN - instead. Use the functions with 'memory_' prefix if you need to avoid this. - See - for details. */ - -/* Returns a signalling 'double' NaN with sign bit == 0. */ -_GL_UNUSED static double -positive_SNaNd () -{ - return memory_positive_SNaNd ().value; -} - -/* Returns a signalling 'double' NaN with sign bit == 1. */ -_GL_UNUSED static double -negative_SNaNd () -{ - return memory_negative_SNaNd ().value; -} - -#endif - - -#if HAVE_SNANL - -/* Returns a signalling 'long double' NaN with sign bit == 0 in memory. */ -_GL_UNUSED static memory_long_double -memory_positive_SNaNl () -{ - return construct_memory_SNaNl (positive_NaNl ()); -} - -/* Returns a signalling 'long double' NaN with sign bit == 1 in memory. */ -_GL_UNUSED static memory_long_double -memory_negative_SNaNl () -{ - return construct_memory_SNaNl (negative_NaNl ()); -} - -/* Note: On 32-bit x86 processors, as well as on x86_64 processors with - CC="gcc -mfpmath=387", if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE is 1, the - following functions may return a quiet NaN instead. Use the functions - with 'memory_' prefix if you need to avoid this. See - - for details. */ - -/* Returns a signalling 'long double' NaN with sign bit == 0. */ -_GL_UNUSED static long double -positive_SNaNl () -{ - return memory_positive_SNaNl ().value; -} - -/* Returns a signalling 'long double' NaN with sign bit == 1. */ -_GL_UNUSED static long double -negative_SNaNl () -{ - return memory_negative_SNaNl ().value; -} - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _SIGNED_SNAN_H */ diff --git a/include/libgnulib/sigpipe-die.h b/include/libgnulib/sigpipe-die.h deleted file mode 100755 index ee6aa05..0000000 --- a/include/libgnulib/sigpipe-die.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Report a SIGPIPE signal and exit. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Bruno Haible , 2008. */ - -/* SIGPIPE is the signal sent to a process calling write() on a pipe with no - readers. Together with the signal, the write() call is terminated with - return value -1, errno = EPIPE. Note that SIGPIPE is a *synchronous* - signal: it occurs only during write(), without delay (unless blocked). - - The default reaction on SIGPIPE, namely terminating the process without - an error message, is suitable for programs which only produce output to - standard output and don't have side effects. - - When a program has side effects, other than writing to standard output, the - suitable behaviour is either - (a) to exit with an error message - or - in certain cases, for example when writing to subprocesses - - (b) to continue the operation without writing to the pipe/socket with - no readers. - - This file provides support for (a). - For (b), the program needs to know which of the output file descriptors - has no readers. This is usually implemented by blocking the SIGPIPE signal - and handling an EPIPE error indicator in all affected library calls - (write(), send(), fwrite(), fflush(), fclose(), etc.). */ - -#ifndef _SIGPIPE_DIE_H -#define _SIGPIPE_DIE_H - -/* This file uses _Noreturn. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Emit an error message indicating a SIGPIPE signal, and terminate the - process with an error code. */ -/*extern*/ _Noreturn void sigpipe_die (void); - -/* Install a SIGPIPE handler that invokes PREPARE_DIE and then emits an - error message and exits. PREPARE_DIE may be NULL, meaning a no-op. */ -extern void install_sigpipe_die_handler (void (*prepare_die) (void)); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _SIGPIPE_DIE_H */ diff --git a/include/libgnulib/simple-atomic.h b/include/libgnulib/simple-atomic.h deleted file mode 100755 index 6205c91..0000000 --- a/include/libgnulib/simple-atomic.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Simple atomic operations for multithreading. - Copyright (C) 2021-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2021. */ - -#ifndef _SIMPLE_ATOMIC_H -#define _SIMPLE_ATOMIC_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Guarantees that memory stores that are in code before this call - are finished before this call, and that memory loads that are in code - after this call are started after this call. */ -extern void memory_barrier (void); - -/* Stores NEWVAL in *VP if the old value *VP is == CMP. - Returns the old value. */ -extern unsigned int atomic_compare_and_swap (unsigned int volatile *vp, - unsigned int cmp, - unsigned int newval); - -/* Stores NEWVAL in *VP if the old value *VP is == CMP. - Returns the old value. */ -extern uintptr_t atomic_compare_and_swap_ptr (uintptr_t volatile *vp, - uintptr_t cmp, - uintptr_t newval); - -#ifdef __cplusplus -} -#endif - -#endif /* _SIMPLE_ATOMIC_H */ diff --git a/include/libgnulib/size_max.h b/include/libgnulib/size_max.h deleted file mode 100755 index bd2eb43..0000000 --- a/include/libgnulib/size_max.h +++ /dev/null @@ -1,35 +0,0 @@ -/* size_max.h -- declare SIZE_MAX through system headers - Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. - Written by Simon Josefsson. - - This file 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 file 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 program. If not, see . */ - -#ifndef GNULIB_SIZE_MAX_H -#define GNULIB_SIZE_MAX_H - -/* This file uses HAVE_STDINT_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */ -# include -/* Get SIZE_MAX declaration on systems like glibc 2. */ -# if HAVE_STDINT_H -# include -# endif -/* On systems where these include files don't define it, SIZE_MAX is defined - in config.h. */ - -#endif /* GNULIB_SIZE_MAX_H */ diff --git a/include/libgnulib/sm3.h b/include/libgnulib/sm3.h deleted file mode 100755 index 216246b..0000000 --- a/include/libgnulib/sm3.h +++ /dev/null @@ -1,133 +0,0 @@ -/* Declarations of functions and data types used for SM3 sum library - function. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This module can be used to compute SM3 message digest of files or - memory blocks according to the specification GM/T 004-2012 - Cryptographic Hash Algorithm SM3, published by State Cryptography - Administration, China. - - The official SM3 cryptographic hash algorithm specification is - available at - . */ - -#ifndef SM3_H -# define SM3_H 1 - -/* This file uses HAVE_OPENSSL_SM3. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include - -# if HAVE_OPENSSL_SM3 -# ifndef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT 0x10101000L /* FIXME: Use OpenSSL 1.1+ API. */ -# endif -/* If would give a compile-time error, don't use OpenSSL. */ -# include -# if OPENSSL_VERSION_MAJOR >= 3 -# include -# if (OPENSSL_CONFIGURED_API \ - < (OPENSSL_API_COMPAT < 0x900000L ? OPENSSL_API_COMPAT : \ - ((OPENSSL_API_COMPAT >> 28) & 0xF) * 10000 \ - + ((OPENSSL_API_COMPAT >> 20) & 0xFF) * 100 \ - + ((OPENSSL_API_COMPAT >> 12) & 0xFF))) -# undef HAVE_OPENSSL_SM3 -# endif -# endif -# if HAVE_OPENSSL_SM3 -# include -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -enum { SM3_DIGEST_SIZE = 256 / 8 }; - -# if HAVE_OPENSSL_SM3 -# define GL_OPENSSL_NAME 3 -# include "gl_openssl.h" -# else -/* Structure to save state of computation between the single steps. */ -struct sm3_ctx -{ - uint32_t state[8]; - - uint32_t total[2]; - size_t buflen; /* ≥ 0, ≤ 128 */ - uint32_t buffer[32]; /* 128 bytes; the first buflen bytes are in use */ -}; - -/* Initialize structure containing state of computation. */ -extern void sm3_init_ctx (struct sm3_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is necessary that LEN is a multiple of 64!!! */ -extern void sm3_process_block (const void *buffer, size_t len, - struct sm3_ctx *ctx); - -/* Starting with the result of former calls of this function (or the - initialization function update the context for the next LEN bytes - starting at BUFFER. - It is NOT required that LEN is a multiple of 64. */ -extern void sm3_process_bytes (const void *buffer, size_t len, - struct sm3_ctx *ctx); - -/* Process the remaining bytes in the buffer and put result from CTX - in first 32 bytes following RESBUF. The result is always in little - endian byte order, so that a byte-wise output yields to the wanted - ASCII representation of the message digest. */ -extern void *sm3_finish_ctx (struct sm3_ctx *ctx, void *restrict resbuf); - -/* Put result from CTX in first 32 bytes following RESBUF. The result is - always in little endian byte order, so that a byte-wise output yields - to the wanted ASCII representation of the message digest. */ -extern void *sm3_read_ctx (const struct sm3_ctx *ctx, void *restrict resbuf); - -/* Compute SM3 message digest for LEN bytes beginning at BUFFER. The - result is always in little endian byte order, so that a byte-wise - output yields to the wanted ASCII representation of the message - digest. */ -extern void *sm3_buffer (const char *buffer, size_t len, - void *restrict resblock); - -# endif - -/* Compute SM3 message digest for bytes read from STREAM. The - resulting message digest number will be written into the 32 bytes - beginning at RESBLOCK. */ -extern int sm3_stream (FILE *stream, void *resblock); - - -# ifdef __cplusplus -} -# endif - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/snan.h b/include/libgnulib/snan.h deleted file mode 100755 index 986dac1..0000000 --- a/include/libgnulib/snan.h +++ /dev/null @@ -1,289 +0,0 @@ -/* Macros for signalling not-a-number. - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _SNAN_H -#define _SNAN_H - -#include -#include -#include - -#include "nan.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* The bit that distinguishes a quiet NaN from a signalling NaN is, according to - , the most significant bit of the - mantissa field. - According to , this is the - next bit, right below the bit 0 of the exponent. - This bit is - * == 0 to indicate a quiet NaN or Infinity, - == 1 to indicate a signalling NaN, - on these CPUs: hppa, mips (*), sh4. - * == 1 to indicate a quiet NaN, - == 0 to indicate a signalling NaN or Infinity, - on all other CPUs. - On these platforms, additionally a signalling NaN must have some other - mantissa bit == 1, because when all exponent bits are == 1 and all - mantissa bits are == 0, the number denotes ±Infinity. - This NaN encoding is specified by IEEE 754-2008 § 6.2.1. - - (*) On mips CPUs, it depends on the CPU model. The classical behaviour is - as indicated above. On some newer models, it's like on the other CPUs. - On some (but not all!) models this meta-info can be determined from two - special CPU registers: If the "Floating Point Implementation Register" (fir) - bit 23, also known as Has2008 bit, is set, the "Floating Point Control and - Status Register" (fcsr) bit 18, also known as the NAN2008 bit, has the value - - 0 for the classical behaviour, - - 1 for like on the other CPUs. - Both of these bits are read-only. - This module has determined the behaviour at configure time and defines the - C macros MIPS_NAN2008_FLOAT, MIPS_NAN2008_DOUBLE, MIPS_NAN2008_LONG_DOUBLE - accordingly. */ - - -/* 'float' = IEEE 754 single-precision - */ - -#define NWORDS \ - ((sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) -typedef union { float value; unsigned int word[NWORDS]; } memory_float; - -#if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT - -# define HAVE_SNANF 1 - -_GL_UNUSED static memory_float -construct_memory_SNaNf (float quiet_value) -{ - memory_float m; - m.value = quiet_value; - /* Turn the quiet NaN into a signalling NaN. */ - #if FLT_EXPBIT0_BIT > 0 - m.word[FLT_EXPBIT0_WORD] ^= (unsigned int) 1 << (FLT_EXPBIT0_BIT - 1); - #else - m.word[FLT_EXPBIT0_WORD + (FLT_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] - ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); - #endif - /* Set some arbitrary mantissa bit. */ - if (FLT_EXPBIT0_WORD < NWORDS / 2) /* NWORDS > 1 and big endian */ - m.word[FLT_EXPBIT0_WORD + 1] |= (unsigned int) 1 << FLT_EXPBIT0_BIT; - else /* NWORDS == 1 or little endian */ - m.word[0] |= (unsigned int) 1; - return m; -} - -/* Returns a signalling 'float' NaN in memory. */ -_GL_UNUSED static memory_float -memory_SNaNf () -{ - return construct_memory_SNaNf (NaNf ()); -} - -_GL_UNUSED static float -construct_SNaNf (float quiet_value) -{ - return construct_memory_SNaNf (quiet_value).value; -} - -/* Returns a signalling 'float' NaN. - Note: On 32-bit x86 processors, as well as on x86_64 processors with - CC="gcc -mfpmath=387", this function may return a quiet NaN instead. - Use memory_SNaNf() if you need to avoid this. See - - for details. */ -_GL_UNUSED static float -SNaNf () -{ - return memory_SNaNf ().value; -} - -#endif - -#undef NWORDS - - -/* 'double' = IEEE 754 double-precision - */ - -#define NWORDS \ - ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) -typedef union { double value; unsigned int word[NWORDS]; } memory_double; - -#if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT - -# define HAVE_SNAND 1 - -_GL_UNUSED static memory_double -construct_memory_SNaNd (double quiet_value) -{ - memory_double m; - m.value = quiet_value; - /* Turn the quiet NaN into a signalling NaN. */ - #if DBL_EXPBIT0_BIT > 0 - m.word[DBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (DBL_EXPBIT0_BIT - 1); - #else - m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] - ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); - #endif - /* Set some arbitrary mantissa bit. */ - m.word[DBL_EXPBIT0_WORD + (DBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] - |= (unsigned int) 1 << DBL_EXPBIT0_BIT; - return m; -} - -/* Returns a signalling 'double' NaN in memory. */ -_GL_UNUSED static memory_double -memory_SNaNd () -{ - return construct_memory_SNaNd (NaNd ()); -} - -_GL_UNUSED static double -construct_SNaNd (double quiet_value) -{ - return construct_memory_SNaNd (quiet_value).value; -} - -/* Returns a signalling 'double' NaN. - Note: On 32-bit x86 processors, as well as on x86_64 processors with - CC="gcc -mfpmath=387", this function may return a quiet NaN instead. - Use memory_SNaNf() if you need to avoid this. See - - for details. */ -_GL_UNUSED static double -SNaNd () -{ - return memory_SNaNd ().value; -} - -#endif - -#undef NWORDS - - -/* 'long double' = - * if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE: - IEEE 754 double-precision - - * Otherwise: - - On i386, x86_64, ia64: - 80-bits extended-precision - - - On alpha, arm64, loongarch64, mips64, riscv64, s390x, sparc64: - IEEE 754 quadruple-precision - - - On powerpc, powerpc64, powerpc64le: - 2x64-bits double-double - - - On m68k: - 80-bits extended-precision, padded to 96 bits, with non-IEEE exponent - */ - -#define NWORDS \ - ((sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) -typedef union { long double value; unsigned int word[NWORDS]; } - memory_long_double; - -#if defined LDBL_EXPBIT0_WORD && defined LDBL_EXPBIT0_BIT - -# define HAVE_SNANL 1 - -_GL_UNUSED static memory_long_double -construct_memory_SNaNl (long double quiet_value) -{ - memory_long_double m; - m.value = quiet_value; - #if defined __powerpc__ && LDBL_MANT_DIG == 106 - /* This is PowerPC "double double", a pair of two doubles. Inf and NaN are - represented as the corresponding 64-bit IEEE values in the first double; - the second is ignored. Manipulate only the first double. */ - #define HNWORDS \ - ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)) - #else - #define HNWORDS NWORDS - #endif - /* Turn the quiet NaN into a signalling NaN. */ - #if ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE - /* In this representation, the leading 1 of the mantissa is explicitly - stored. */ - #if LDBL_EXPBIT0_BIT > 1 - m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 2); - #else - m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < HNWORDS / 2 ? 1 : - 1)] - ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 2); - #endif - #elif (defined __m68k__ && LDBL_MANT_DIG == 64) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE - /* In this representation, there is a 16-bits gap between the exponent and - the mantissa, and the leading 1 of the mantissa is explicitly stored. */ - m.word[LDBL_EXPBIT0_WORD + 1] - ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 2); - #else - /* In this representation, the leading 1 of the mantissa is implicit. */ - #if LDBL_EXPBIT0_BIT > 0 - m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1); - #else - m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < HNWORDS / 2 ? 1 : - 1)] - ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); - #endif - #endif - /* Set some arbitrary mantissa bit. */ - m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < HNWORDS / 2 ? 1 : - 1)] - |= (unsigned int) 1 << LDBL_EXPBIT0_BIT; - #undef HNWORDS - return m; -} - -/* Returns a signalling 'long double' NaN in memory. */ -_GL_UNUSED static memory_long_double -memory_SNaNl () -{ - return construct_memory_SNaNl (NaNl ()); -} - -_GL_UNUSED static long double -construct_SNaNl (long double quiet_value) -{ - return construct_memory_SNaNl (quiet_value).value; -} - -/* Returns a signalling 'long double' NaN. - Note: On 32-bit x86 processors, as well as on x86_64 processors with - CC="gcc -mfpmath=387", if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE is 1, this - function may return a quiet NaN instead. Use memory_SNaNf() if you - need to avoid this. See - - for details. */ -_GL_UNUSED static long double -SNaNl () -{ - return memory_SNaNl ().value; -} - -#endif - -#undef NWORDS - - -#ifdef __cplusplus -} -#endif - -#endif /* _SNAN_H */ diff --git a/include/libgnulib/sockets.h b/include/libgnulib/sockets.h deleted file mode 100755 index 55077ae..0000000 --- a/include/libgnulib/sockets.h +++ /dev/null @@ -1,80 +0,0 @@ -/* sockets.h - wrappers for Windows socket functions - - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Simon Josefsson */ - -#ifndef SOCKETS_H -#define SOCKETS_H 1 - -/* This file uses _GL_ATTRIBUTE_CONST. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#define SOCKETS_1_0 0x0001 -#define SOCKETS_1_1 0x0101 -#define SOCKETS_2_0 0x0002 -#define SOCKETS_2_1 0x0102 -#define SOCKETS_2_2 0x0202 - -int gl_sockets_startup (int version) -#ifndef WINDOWS_SOCKETS - _GL_ATTRIBUTE_CONST -#endif - ; - -int gl_sockets_cleanup (void) -#ifndef WINDOWS_SOCKETS - _GL_ATTRIBUTE_CONST -#endif - ; - -#ifdef __cplusplus -} -#endif - - -/* This function is useful it you create a socket using gnulib's - Winsock wrappers but needs to pass on the socket handle to some - other library that only accepts sockets. */ -#ifdef WINDOWS_SOCKETS - -# include - -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -static inline SOCKET -gl_fd_to_handle (int fd) -{ - return _get_osfhandle (fd); -} - -#else - -# define gl_fd_to_handle(x) (x) - -#endif /* WINDOWS_SOCKETS */ - -#endif /* SOCKETS_H */ diff --git a/include/libgnulib/spawn-pipe.h b/include/libgnulib/spawn-pipe.h deleted file mode 100755 index 1fe07da..0000000 --- a/include/libgnulib/spawn-pipe.h +++ /dev/null @@ -1,171 +0,0 @@ -/* Creation of subprocesses, communicating via pipes. - Copyright (C) 2001-2003, 2006, 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _SPAWN_PIPE_H -#define _SPAWN_PIPE_H - -/* Get pid_t. */ -#include -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* All these functions create a subprocess and don't wait for its termination. - They return the process id of the subprocess. They also return in fd[] - one or two file descriptors for communication with the subprocess. - If the subprocess creation fails: if exit_on_error is true, the main - process exits with an error message; otherwise, an error message is given - if null_stderr is false, then -1 is returned, with errno set, and fd[] - remain uninitialized. - - After finishing communication, the caller should call wait_subprocess() - to get rid of the subprocess in the process table. - - progname is the name of the program to be executed by the subprocess, used - for error messages. - prog_path is the file name of the program to be executed by the subprocess. - If it contains no slashes, a search is conducted in $PATH. An operating - system dependent suffix is added, if necessary. - prog_argv is the array of strings that the subprocess shall receive in - argv[]. It is a NULL-terminated array. prog_argv[0] should normally be - identical to prog_path. - - dll_dirs is, on Windows platforms, a NULL-terminated list of directories - that contain DLLs needed to execute the program, or NULL if none is needed. - On other platforms, always pass NULL. - - If directory is not NULL, the subprocess is started in that directory. If - prog_path is a relative file name, it resolved before changing to that - directory. The current directory of the current process remains unchanged. - - If slave_process is true, the child process will be terminated when its - creator receives a catchable fatal signal or exits normally. If - slave_process is false, the child process will continue running in this - case, until it is lucky enough to attempt to communicate with its creator - and thus get a SIGPIPE signal. - - If exit_on_error is false, a child process id of -1 should be treated the - same way as a subprocess which accepts no input, produces no output and - terminates with exit code 127. Why? Some errors during posix_spawnp() - cause the function posix_spawnp() to return an error code; some other - errors cause the subprocess to exit with return code 127. It is - implementation dependent which error is reported which way. The caller - must treat both cases as equivalent. - - It is recommended that no signal is blocked or ignored (i.e. have a - signal handler with value SIG_IGN) while any of these functions is called. - The reason is that child processes inherit the mask of blocked signals - from their parent (both through posix_spawn() and fork()/exec()); - likewise, signals ignored in the parent are also ignored in the child - (except possibly for SIGCHLD). And POSIX:2001 says [in the description - of exec()]: - "it should be noted that many existing applications wrongly - assume that they start with certain signals set to the default - action and/or unblocked. In particular, applications written - with a simpler signal model that does not include blocking of - signals, such as the one in the ISO C standard, may not behave - properly if invoked with some signals blocked. Therefore, it is - best not to block or ignore signals across execs without explicit - reason to do so, and especially not to block signals across execs - of arbitrary (not closely co-operating) programs." */ - -/* Open a pipe for output to a child process. - * The child's stdout goes to a file. - * - * write system read - * parent -> fd[0] -> STDIN_FILENO -> child - * - * Note: When writing to a child process, it is useful to ignore the SIGPIPE - * signal and the EPIPE error code. - */ -extern pid_t create_pipe_out (const char *progname, - const char *prog_path, - const char * const *prog_argv, - const char * const *dll_dirs, - const char *directory, - const char *prog_stdout, bool null_stderr, - bool slave_process, bool exit_on_error, - int fd[1]); - -/* Open a pipe for input from a child process. - * The child's stdin comes from a file. - * - * read system write - * parent <- fd[0] <- STDOUT_FILENO <- child - * - */ -extern pid_t create_pipe_in (const char *progname, - const char *prog_path, - const char * const *prog_argv, - const char * const *dll_dirs, - const char *directory, - const char *prog_stdin, bool null_stderr, - bool slave_process, bool exit_on_error, - int fd[1]); - -/* Open a bidirectional pipe. - * - * write system read - * parent -> fd[1] -> STDIN_FILENO -> child - * parent <- fd[0] <- STDOUT_FILENO <- child - * read system write - * - * Note: When writing to a child process, it is useful to ignore the SIGPIPE - * signal and the EPIPE error code. - * - * Note: The parent process must be careful to avoid deadlock. - * 1) If you write more than PIPE_MAX bytes or, more generally, if you write - * more bytes than the subprocess can handle at once, the subprocess - * may write its data and wait on you to read it, but you are currently - * busy writing. - * 2) When you don't know ahead of time how many bytes the subprocess - * will produce, the usual technique of calling read (fd, buf, BUFSIZ) - * with a fixed BUFSIZ will, on Linux 2.2.17 and on BSD systems, cause - * the read() call to block until *all* of the buffer has been filled. - * But the subprocess cannot produce more data until you gave it more - * input. But you are currently busy reading from it. - */ -extern pid_t create_pipe_bidi (const char *progname, - const char *prog_path, - const char * const *prog_argv, - const char * const *dll_dirs, - const char *directory, - bool null_stderr, - bool slave_process, bool exit_on_error, - int fd[2]); - -/* The name of the "always silent" device. */ -#if defined _WIN32 && ! defined __CYGWIN__ -/* Native Windows API. */ -# define DEV_NULL "NUL" -#else -/* Unix API. */ -# define DEV_NULL "/dev/null" -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _SPAWN_PIPE_H */ diff --git a/include/libgnulib/spawn_int.h b/include/libgnulib/spawn_int.h deleted file mode 100755 index 021d2ad..0000000 --- a/include/libgnulib/spawn_int.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (C) 2000, 2008-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Data structure to contain the action information. */ -struct __spawn_action -{ - enum - { - spawn_do_close, - spawn_do_dup2, - spawn_do_open, - spawn_do_chdir, - spawn_do_fchdir - } tag; - - union - { - struct - { - int fd; - } close_action; - struct - { - int fd; - int newfd; - } dup2_action; - struct - { - int fd; - char *path; - int oflag; - mode_t mode; - } open_action; - struct - { - char *path; - } chdir_action; - struct - { - int fd; - } fchdir_action; - } action; -}; - -#if !_LIBC -# define __posix_spawn_file_actions_realloc gl_posix_spawn_file_actions_realloc -#endif -extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t * - file_actions); - -#if !_LIBC -# define __spawni gl_posix_spawn_internal -#endif -extern int __spawni (pid_t *pid, const char *path, - const posix_spawn_file_actions_t *file_actions, - const posix_spawnattr_t *attrp, const char *const argv[], - const char *const envp[], int use_path); diff --git a/include/libgnulib/ssfmalloc-bitmap.h b/include/libgnulib/ssfmalloc-bitmap.h deleted file mode 100755 index 7fb6498..0000000 --- a/include/libgnulib/ssfmalloc-bitmap.h +++ /dev/null @@ -1,629 +0,0 @@ -/* Simple and straight-forward malloc implementation (front end). - - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -/* ===================== Low-level functions for bitmaps ==================== */ - -/* A bitmap is represented as an array of uint32_t = 'unsigned int', each with - 32 bits. The bit i in the word with index j therefore represents bit - k = 32 * j + i of the entire bit sequence. */ - -/* Initializes a bitmap. */ -static inline void -init_bitmap_all_bits_clear (size_t num_words, uint32_t *words) -{ - size_t i; - for (i = 0; i < num_words; i++) - words[i] = 0; -} - -/* Initializes a bitmap. */ -static inline void -init_bitmap_all_bits_set (size_t num_words, uint32_t *words) -{ - size_t i; - for (i = 0; i < num_words; i++) - words[i] = ~(uint32_t)0; -} - -/* Returns the smallest index k >= k0 for which the bit k is set in the bitmap - consisting of num_words words. Returns (size_t)(-1) if there is none. */ -static size_t -find_first_bit_set (size_t num_words, const uint32_t *words, size_t k0) -{ - size_t j0 = k0 / 32; - if (j0 < num_words) - { - size_t i0 = k0 % 32; - const uint32_t *ptr = words + j0; - /* Look at the word j0, ignoring the i0 least significant bits. */ - { - size_t found = ffs (*ptr & (-1U << i0)); - if (found > 0) - return 32 * j0 + (found - 1); - } - /* Look at the subsequent words. */ - const uint32_t *words_end = words + num_words; - while (++ptr < words_end) - { - size_t found = ffs (*ptr); - if (found > 0) - return 32 * (ptr - words) + (found - 1); - } - } - return (size_t)(-1); -} - -/* Returns the smallest index k >= 0 for which the bit packet of c consecutive - bits (1 <= c <= 32) is all set in the bitmap consisting of num_words words. - Returns (size_t)(-1) if there is none. */ -static size_t -find_first_packet_set (size_t num_words, const uint32_t *words, size_t c) -{ - const uint32_t *ptr = words; - const uint32_t *words_end = words + num_words; - switch (c) - { - case 1: - { - /* A simplified variant of find_first_bit_set. */ - for (; ptr < words_end; ptr++) - { - size_t found = ffs (*ptr); - if (found > 0) - return 32 * (ptr - words) + (found - 1); - } - return (size_t)(-1); - } - case 2: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t combined = longword & (longword >> 1); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 3: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t combined = longword & (longword >> 1) & (longword >> 2); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 4: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t combined = tmp1 & (tmp1 >> 2); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 5: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t combined = tmp2 & (longword >> 4); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 6: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t combined = tmp1 & (tmp1 >> 2) & (tmp1 >> 4); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 7: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t combined = - tmp1 & (tmp1 >> 2) & (tmp1 >> 4) & (longword >> 6); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 8: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t combined = tmp2 & (tmp2 >> 4); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 9: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = tmp3 & (longword >> 8); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 10: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = tmp3 & (tmp1 >> 8); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 11: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = tmp3 & (tmp1 >> 8) & (longword >> 10); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 12: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t combined = tmp2 & (tmp2 >> 4) & (tmp2 >> 8); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 13: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t combined = - tmp2 & (tmp2 >> 4) & (tmp2 >> 8) & (longword >> 12); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 14: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t combined = tmp2 & (tmp2 >> 4) & (tmp2 >> 8) & (tmp1 >> 12); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 15: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - /* Optimized: Use 5, not 6, '&' operations. */ - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (longword >> 4); - uint64_t combined = tmp3 & (tmp3 >> 5) & (tmp3 >> 10); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 16: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = tmp3 & (tmp3 >> 8); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 17: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (longword >> 16); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 18: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (tmp1 >> 16); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 19: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (tmp1 >> 16) & (longword >> 18); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 20: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (tmp2 >> 16); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 21: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (tmp2 >> 16) & (longword >> 20); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 22: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (tmp2 >> 16) & (tmp1 >> 20); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 23: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = - tmp4 & (tmp2 >> 16) & (tmp1 >> 20) & (longword >> 22); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 24: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = tmp3 & (tmp3 >> 8) & (tmp3 >> 16); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 25: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = - tmp3 & (tmp3 >> 8) & (tmp3 >> 16) & (longword >> 24); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 26: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = - tmp3 & (tmp3 >> 8) & (tmp3 >> 16) & (tmp1 >> 24); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 27: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - /* Optimized: Use 6, not 7, '&' operations. */ - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (longword >> 8); - uint64_t combined = tmp4 & (tmp4 >> 9) & (tmp4 >> 18); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 28: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = - tmp3 & (tmp3 >> 8) & (tmp3 >> 16) & (tmp2 >> 24); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 29: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t combined = - tmp3 & (tmp3 >> 8) & (tmp3 >> 16) & (tmp2 >> 24) & (longword >> 28); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 30: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - /* Optimized: Use 6, not 7, '&' operations. */ - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp1 >> 8); - uint64_t combined = tmp4 & (tmp4 >> 10) & (tmp4 >> 20); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 31: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = - tmp4 & (tmp3 >> 16) & (tmp2 >> 24) & (tmp1 >> 28) & (longword >> 30); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - case 32: - { - while (ptr < words_end) - { - uint64_t longword = *ptr++; - if (likely (ptr < words_end)) - longword |= ((uint64_t) *ptr) << 32; - uint64_t tmp1 = longword & (longword >> 1); - uint64_t tmp2 = tmp1 & (tmp1 >> 2); - uint64_t tmp3 = tmp2 & (tmp2 >> 4); - uint64_t tmp4 = tmp3 & (tmp3 >> 8); - uint64_t combined = tmp4 & (tmp4 >> 16); - size_t found = ffsll (combined); - if (found > 0) - return 32 * (ptr - 1 - words) + (found - 1); - } - return (size_t)(-1); - } - default: - /* Invalid argument. */ - abort (); - } -} diff --git a/include/libgnulib/ssfmalloc.h b/include/libgnulib/ssfmalloc.h deleted file mode 100755 index 6fe3a24..0000000 --- a/include/libgnulib/ssfmalloc.h +++ /dev/null @@ -1,976 +0,0 @@ -/* Simple and straight-forward malloc implementation (front end). - - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -/* This file implements an allocator of memory blocks of given size (a - "malloc front end"), based on an allocator of memory pages (a "malloc - back end"). - - The need for such an allocator arises because a memory block is often - 50 bytes large or less, whereas an allocator of memory pages provides - entire pages (4096 bytes or more). - - This implementation attempts to be - - simple and straight-forward, - - respecting locality of reference, - - usable for small allocations, - - nevertheless of reasonable speed. - - Simple and straight-forward - means that it contains only a small amount - of code (compared to e.g. tcmalloc). - - Respecting locality of reference - means that searching for a free block - will not follow lists of pointers that touch unrelated cache lines in - the same page or even unrelated memory pages, because that would cause - cache misses or even swapping in of unrelated memory pages. - - Usable for small allocations - means that it can be used for data types - with few instances. It does not, unlike some other malloc implementations, - allocate 256 KB of memory up-front. Nor does it allocate memory pages - per thread. - - Reasonable speed is nevertheless guaranteed by - - choosing algorithms that lead to little fragmentation, - - small caches where they make sense. - */ - -/* The user of this file needs to define the following macros before including - this file: - - PAGESIZE A variable-like macro of type intptr_t or uintptr_t - that evaluates to the memory page size (>= 4096). - - PAGESIZE_MAX A constant that specifies an upper bound for PAGESIZE. - - ALLOC_PAGES A function-like macro with the signature - uintptr_t ALLOC_PAGES (size_t size) - where the argument size is > 0 and a multiple of the - PAGESIZE. It returns a multiple of PAGESIZE, or 0 - upon failure. - - FREE_PAGES A function-like macro with the signature - void FREE_PAGES (uintptr_t pages, size_t size) - where pages is a non-zero value returned by - ALLOC_PAGES (size). - - ALIGNMENT A constant that specifies the desired alignment of all - the returned memory blocks. Possible values are the - powers of 2, from sizeof (void *) to 32. - - PAGE_RESERVED_HEADER_SIZE A constant, either 0 or a multiple of - sizeof (void *), that denotes the size of a reserved - header - not to be used by the application - at the - beginning of a page sequence returned by ALLOC_PAGES. - */ - -/* This file uses _GL_CMP. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* =================== Declarations of exported functions =================== */ - -#include - -/* Allocates a block of memory, aligned to ALIGNMENT bytes. - Returns 0 upon failure. */ -static uintptr_t allocate_block (size_t size); - -/* Frees a block of memory, returned by allocate_block. */ -static void free_block (uintptr_t block); - -/* ============================= Implementation ============================= */ - -/* Outline of the implementation decisions (ID): - - * ID: This implementation considers three types of blocks: - - small blocks - these are allocated in "small block" pages. - - medium blocks - these are allocated in "medium block" pages. - - large blocks - these are allocated individually, with a page or - sequence of pages uniquely for this block. - * Rationale: - - Most memory allocations are small (e.g. <= 32 bytes); this is a lesson - learned from xc/programs/Xserver/os/xalloc.c (1997) [Pascal Haible]. - - Fragmentation is one of the biggest problems, and keeping large - blocks and small blocks separate from medium blocks is one way to - control it. - - * ID: If an allocation succeeds in one page, the next allocation (of the - same type of block) will try to use the same page. - * Rationale: Locality of reference. - - * ID: Pages of small or medium blocks have their management data structures - concentrated at the beginning of the page. No chained lists that force - to walk through the page. - * Rationale: Locality of reference. - - * ID: Across pages, the management of the free space is done through data - structures outside the pages. No chained lists across pages. - * Rationale: Locality of reference. - - */ - -#include -#include /* ffsll */ -#include /* ffs */ -#include "flexmember.h" -#include "glthread/lock.h" -#include "thread-optim.h" -#include "gl_oset.h" -#include "gl_rbtree_oset.h" -#ifdef __CHERI_PURE_CAPABILITY__ -# include -#endif - -/* Help the branch prediction. */ -#if __GNUC__ >= 3 -# define likely(cond) __builtin_expect ((cond), 1) -# define unlikely(cond) __builtin_expect ((cond), 0) -#else -# define likely(cond) (cond) -# define unlikely(cond) (cond) -#endif - -enum { small_page_type = 1, medium_page_type = 2, large_page_type = 3 }; - -/* Header of a page of small or medium blocks or of a large block. - Lies at an address that is a multiple of PAGESIZE. */ -struct any_page_header -{ - #if PAGE_RESERVED_HEADER_SIZE > 0 - void * reserved[PAGE_RESERVED_HEADER_SIZE / sizeof (void *)]; - #endif - /* small_page_type or medium_page_type or large_page_type */ - unsigned char page_type; -}; - -/* ========================= Small and medium blocks ======================== */ - -/* An integer type, capable of holding the values 0 .. PAGESIZE. */ -#if PAGESIZE_MAX >= 0x10000 -typedef unsigned int pg_offset_t; -#else -typedef unsigned short pg_offset_t; -#endif - -/* Tree element that corresponds to a page. - These tree elements are allocated via malloc(). */ -struct page_tree_element -{ - uintptr_t page; - pg_offset_t free_space; -}; - -/* Header of a page of small or medium blocks. - Lies at an address that is a multiple of PAGESIZE. */ -struct dissected_page_header -{ - struct any_page_header common; - #ifdef __CHERI_PURE_CAPABILITY__ - /* This page, with bounds [page, page + PAGESIZE). */ - uintptr_t whole_page; - #endif - /* Amount of free space in this page. Always a multiple of ALIGNMENT. */ - pg_offset_t free_space; - /* The tree element. */ - struct page_tree_element *tree_element; -}; - -/* Data structure for managing a pool of pages. */ -struct page_pool -{ - /* Methods. */ - void (*init_page_pool) (struct page_pool *pool); - void (*init_page) (uintptr_t page); - uintptr_t (*allocate_block_in_page) (size_t size, uintptr_t page); - void (*free_block_in_page) (uintptr_t block, uintptr_t page); - - /* Maximum free space in a page of this pool. */ - size_t page_capacity; - - /* Page that provided the last successful allocation from this pool, - or 0. */ - uintptr_t last_page; - - /* Ordered set of managed pages, sorted according to free_space, in ascending - order. */ - gl_oset_t /* */ managed_pages; - - /* A queue of pages which have a modified free_space but which have not been - updated in the managed_pages tree so far. */ - #define UPDATE_QUEUE_SIZE 10 - unsigned int update_queue_count; /* <= UPDATE_QUEUE_SIZE */ - uintptr_t update_queue[UPDATE_QUEUE_SIZE]; - - /* A page that could be freed. - We don't free it immediately, so that on allocation/deallocation - pattern like - 2x allocate, 2x free, 2x allocate, 2x free, 2x allocate, 2x free, ... - will not allocate and free a page so frequently. */ - uintptr_t freeable_page; -}; - -/* Comparison function for managed_pages. */ -static int -compare_pages_by_free_space (const void *elt1, const void *elt2) -{ - struct page_tree_element *element1 = (struct page_tree_element *) elt1; - struct page_tree_element *element2 = (struct page_tree_element *) elt2; - int cmp = _GL_CMP (element1->free_space, element2->free_space); - if (unlikely (cmp == 0)) - cmp = _GL_CMP (element1->page, element2->page); - return cmp; -} - -/* Tests whether the free space in a tree element is greater or equal than the - given threshold. */ -static bool -page_free_space_is_at_least (const void *elt, const void *threshold) -{ - struct page_tree_element *element = (struct page_tree_element *) elt; - - return element->free_space >= (uintptr_t) threshold; -} - -/* Updates the free space of a 'struct page_tree_element *'. - Only to be called through gl_oset_update! */ -static void -set_free_space (const void *elt, void *action_data) -{ - struct page_tree_element *element = (struct page_tree_element *) elt; - - element->free_space = (pg_offset_t) (uintptr_t) action_data; -} - -/* Executes the pending updates in the managed_pages tree. */ -static void -flush_all_updates (struct page_pool *pool) -{ - size_t count = pool->update_queue_count; - while (likely (count > 0)) - { - --count; - uintptr_t page = pool->update_queue[count]; - struct dissected_page_header *pageptr = - (struct dissected_page_header *) page; - struct page_tree_element *tree_element = pageptr->tree_element; - if (gl_oset_update (pool->managed_pages, tree_element, - set_free_space, - (void *) (uintptr_t) pageptr->free_space) - < 0) - /* A collision was found. This contradicts the definition of - compare_pages_by_free_space. */ - abort (); - } - pool->update_queue_count = 0; -} - -/* Adds a page to the update queue. - This function has to be called when the free_space of the page has - changed. */ -static inline void -add_update (uintptr_t page, struct page_pool *pool) -{ - size_t count = pool->update_queue_count; - size_t i; - for (i = 0; i < count; i++) - if (pool->update_queue[i] == page) - /* It's already in the queue. */ - return; - - /* Ensure there is room for adding one more page to the update queue. */ - if (unlikely (count == UPDATE_QUEUE_SIZE)) - flush_all_updates (pool); - - /* Add it to the update queue. */ - pool->update_queue[pool->update_queue_count++] = page; -} - -/* Drops a page from the update queue. */ -static inline void -drop_update (uintptr_t page, struct page_pool *pool) -{ - size_t count = pool->update_queue_count; - size_t i; - for (i = 0; i < count; i++) - if (pool->update_queue[i] == page) - { - /* It's in the queue. Remove it. */ - for (i = i + 1; i < count; i++) - pool->update_queue[i - 1] = pool->update_queue[i]; - pool->update_queue_count--; - return; - } -} - -/* ============================== Small blocks ============================== */ - -#include "ssfmalloc-bitmap.h" - -/* Maximum size of a small block. - Must be a power of 2. */ -#define SMALL_BLOCK_MAX_SIZE (ALIGNMENT < 8 ? 32 * ALIGNMENT : 256) - -/* Number of rows of ALIGNMENT bytes available in an empty page. */ -static unsigned int small_block_page_num_bits; -/* Offset in the page where the memory blocks start. - A multiple of ALIGNMENT. */ -static unsigned int small_block_page_blocks_start; -/* Number of uint32_t words in each of the two bitmaps. */ -static unsigned int small_block_page_num_bitmap_words; - -/* Header of a page of small blocks. - Lies at an address that is a multiple of PAGESIZE. */ -struct small_page_header -{ - struct dissected_page_header common; - /* Two bitmaps, each with small_block_page_num_bitmap_words words. In each - a bit represents ALIGNMENT bytes. - - available_bitmap: bit set means available, bit clear means allocated. - - blockend_bitmap: bit set means the an allocated block ends here. */ - uint32_t bitmap_words[FLEXIBLE_ARRAY_MEMBER]; -}; - -static inline uint32_t * -small_block_page_available_bitmap (struct small_page_header *pageptr) -{ - return &pageptr->bitmap_words[0]; -} - -static inline uint32_t * -small_block_page_blockend_bitmap (struct small_page_header *pageptr) -{ - return &pageptr->bitmap_words[small_block_page_num_bitmap_words]; -} - -static void -init_small_block_page_pool (struct page_pool *pool) -{ - /* How many usable rows of ALIGNMENT bytes can we have? - Each takes ALIGNMENT bytes + 1/8 byte in each bitmap, so approximately - (ALIGNMENT + 1/4) bytes. */ - unsigned int num_bits = (unsigned int) (4 * PAGESIZE) / (4 * ALIGNMENT + 1); - unsigned int num_bitmap_words; - unsigned int blocks_start; - /* Iterate until it converges. */ - for (;;) - { - num_bitmap_words = (num_bits + 32 - 1) / 32; - blocks_start = - (FLEXNSIZEOF (struct small_page_header, bitmap_words, - 2 * num_bitmap_words) - + ALIGNMENT - 1) & -ALIGNMENT; - unsigned int num_bits_r = (unsigned int) (PAGESIZE - blocks_start) / ALIGNMENT; - if (num_bits_r >= num_bits) - break; - num_bits = num_bits_r; - } - - small_block_page_num_bits = num_bits; - small_block_page_num_bitmap_words = num_bitmap_words; - small_block_page_blocks_start = blocks_start; - - pool->page_capacity = small_block_page_num_bits * ALIGNMENT; -} - -static void -init_small_block_page (uintptr_t page) -{ - struct small_page_header *pageptr = (struct small_page_header *) page; - pageptr->common.common.page_type = small_page_type; - #ifdef __CHERI_PURE_CAPABILITY__ - pageptr->common.whole_page = page; - #endif - - /* Initialize available_bitmap. */ - uint32_t *available_bitmap = small_block_page_available_bitmap (pageptr); - init_bitmap_all_bits_set (small_block_page_num_bitmap_words, - available_bitmap); - if ((small_block_page_num_bits % 32) != 0) - available_bitmap[small_block_page_num_bitmap_words - 1] = - (1U << (small_block_page_num_bits % 32)) - 1; - - /* Initialize blockend_bitmap. */ - init_bitmap_all_bits_clear (small_block_page_num_bitmap_words, - small_block_page_blockend_bitmap (pageptr)); - - pageptr->common.free_space = small_block_page_num_bits * ALIGNMENT; -} - -/* Allocates a block of memory of size <= SMALL_BLOCK_MAX_SIZE, - aligned to ALIGNMENT bytes, from the given page. - Returns 0 upon failure. */ -static uintptr_t -allocate_small_block_in_page (size_t size, uintptr_t page) -{ - struct small_page_header *pageptr = (struct small_page_header *) page; - - /* glibc compatible. */ - if (size == 0) - size = 1; - - /* Number of consecutive bits to look for in the bitmap. */ - size_t c = (size + ALIGNMENT - 1) / ALIGNMENT; - - /* SMALL_BLOCK_MAX_SIZE has been chosen so that c <= 32. */ - if (!(c > 0 && c <= 32)) - abort (); - - uint32_t *available_bitmap = small_block_page_available_bitmap (pageptr); - size_t k = find_first_packet_set (small_block_page_num_bitmap_words, - available_bitmap, - c); - if (unlikely (k == (size_t)(-1))) - /* Failed to find c consecutive available rows of ALIGNMENT bytes each. */ - return 0; - - uint32_t *blockend_bitmap = small_block_page_blockend_bitmap (pageptr); - size_t j = k / 32; - size_t i = k % 32; - if (i + c <= 32) - { - available_bitmap[j] &= ~(((2U << (c - 1)) - 1) << i); - blockend_bitmap[j] |= (1U << (i + c - 1)); - } - else - { - available_bitmap[j] &= ~(-1U << i); - available_bitmap[j + 1] &= ~((1U << (i + c - 32)) - 1); - blockend_bitmap[j + 1] |= (1U << (i + c - 1 - 32)); - } - - pageptr->common.free_space -= c * ALIGNMENT; - - return page + small_block_page_blocks_start + k * ALIGNMENT; -} - -static void -free_small_block_in_page (uintptr_t block, uintptr_t page) -{ - struct small_page_header *pageptr = (struct small_page_header *) page; - - if (!(block >= page + small_block_page_blocks_start - && (block % ALIGNMENT) == 0)) - /* Invalid argument. */ - abort (); - - uint32_t *available_bitmap = small_block_page_available_bitmap (pageptr); - uint32_t *blockend_bitmap = small_block_page_blockend_bitmap (pageptr); - - /* The bit that corresponds to where the block starts. */ - size_t k = (block - page - small_block_page_blocks_start) / ALIGNMENT; - /* The bit that corresponds to where the block ends. */ - size_t ke = find_first_bit_set (small_block_page_num_bitmap_words, - blockend_bitmap, - k); - if (/* ke == (size_t)(-1) || */ ke >= k + 32) - /* Invalid argument or invalid state. */ - abort (); - - /* Number of consecutive bits to manipulate in the bitmap. */ - size_t c = ke - k + 1; - - size_t j = k / 32; - size_t i = k % 32; - if (i + c <= 32) - { - available_bitmap[j] |= (((2U << (c - 1)) - 1) << i); - blockend_bitmap[j] &= ~(1U << (i + c - 1)); - } - else - { - available_bitmap[j] |= (-1U << i); - available_bitmap[j + 1] |= ((1U << (i + c - 32)) - 1); - blockend_bitmap[j + 1] &= ~(1U << (i + c - 1 - 32)); - } - - pageptr->common.free_space += c * ALIGNMENT; -} - -/* Management of pages of small blocks. */ -struct page_pool small_block_pages = - { - init_small_block_page_pool, - init_small_block_page, - allocate_small_block_in_page, - free_small_block_in_page - }; - -/* ============================== Medium blocks ============================= */ - -/* A range of memory in a page. - It covers the address range [page+start, page+end). - start <= end. */ -struct memory_range -{ - pg_offset_t start; - pg_offset_t end; -}; - -/* Header of a page of medium blocks. - Lies at an address that is a multiple of PAGESIZE. */ -struct medium_page_header -{ - struct dissected_page_header common; - /* If n blocks are allocated, there are n+1 gaps before, between, and - after them. Keep them in an array, sorted in ascending order. */ - unsigned int num_gaps; /* > 0 */ - struct memory_range gaps[FLEXIBLE_ARRAY_MEMBER /* PAGESIZE / SMALL_BLOCK_MAX_SIZE + 1 */]; -}; - -#define MEDIUM_BLOCKS_PAGE_MAX_GAPS \ - (PAGESIZE / SMALL_BLOCK_MAX_SIZE + 1) -#define MEDIUM_BLOCKS_PAGE_FIRST_GAP_START \ - ((FLEXSIZEOF (struct medium_page_header, gaps, \ - MEDIUM_BLOCKS_PAGE_MAX_GAPS * sizeof (struct memory_range)) \ - + ALIGNMENT - 1) & -ALIGNMENT) -#define MEDIUM_BLOCKS_PAGE_LAST_GAP_END \ - PAGESIZE -#define MEDIUM_BLOCKS_PAGE_CAPACITY \ - (MEDIUM_BLOCKS_PAGE_LAST_GAP_END - MEDIUM_BLOCKS_PAGE_FIRST_GAP_START) - -static void -init_medium_block_page_pool (struct page_pool *pool) -{ - pool->page_capacity = MEDIUM_BLOCKS_PAGE_CAPACITY; -} - -static void -init_medium_block_page (uintptr_t page) -{ - struct medium_page_header *pageptr = (struct medium_page_header *) page; - pageptr->common.common.page_type = medium_page_type; - #ifdef __CHERI_PURE_CAPABILITY__ - pageptr->common.whole_page = page; - #endif - pageptr->num_gaps = 1; - pageptr->gaps[0].start = MEDIUM_BLOCKS_PAGE_FIRST_GAP_START; - pageptr->gaps[0].end = MEDIUM_BLOCKS_PAGE_LAST_GAP_END; - pageptr->common.free_space = MEDIUM_BLOCKS_PAGE_CAPACITY; -} - -/* Allocates a block of memory of size > SMALL_BLOCK_MAX_SIZE, - aligned to ALIGNMENT bytes, from the given page. - Returns 0 upon failure. */ -static uintptr_t -allocate_medium_block_in_page (size_t size, uintptr_t page) -{ - struct medium_page_header *pageptr = (struct medium_page_header *) page; - - /* Walk through the gaps and remember the smallest gap of at least - the given size. */ - size_t best_i = (size_t)(-1); - size_t best_length = (size_t)(-1); - size_t num_gaps = pageptr->num_gaps; - size_t i; - for (i = 0; i < num_gaps; i++) - { - size_t length = pageptr->gaps[i].end - pageptr->gaps[i].start; - if (length >= size) - { - /* Found a gap of sufficient size. */ - if (length < best_length) - { - best_i = i; - best_length = length; - } - } - } - if (unlikely (best_i == (size_t)(-1))) - /* Failed to find a gap of sufficient size. */ - return 0; - - size_t aligned_size = (size + ALIGNMENT - 1) & -ALIGNMENT; - - if (pageptr->common.free_space < aligned_size) - /* Invalid state: Less free space than expected. */ - abort (); - - /* Split the gap, leaving an empty gap and a remaining gap. */ - for (i = num_gaps - 1; ; i--) - { - pageptr->gaps[i + 1] = pageptr->gaps[i]; - if (i == best_i) - break; - } - size_t result = pageptr->gaps[best_i].start; - pageptr->gaps[best_i].end = result; - pageptr->gaps[best_i + 1].start = result + aligned_size; - pageptr->num_gaps = num_gaps + 1; - if (pageptr->num_gaps > PAGESIZE / SMALL_BLOCK_MAX_SIZE + 1) - /* Invalid state: More gaps than expected. */ - abort (); - - pageptr->common.free_space -= aligned_size; - - return page + result; -} - -static void -free_medium_block_in_page (uintptr_t block, uintptr_t page) -{ - struct medium_page_header *pageptr = (struct medium_page_header *) page; - size_t offset = block - page; - - /* Search for the gap that ends where this block begins. - We can ignore the last gap here, since it ends where the page ends. */ - struct memory_range *gaps = pageptr->gaps; - size_t lo = 0; - size_t hi = pageptr->num_gaps - 1; - size_t index; - while (lo < hi) - { - /* Invariant: - for i < lo, gaps[i].end < offset, - for i >= hi, gaps[i].end > offset. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - if (offset > gaps[mid].end) - lo = mid + 1; - else if (offset < gaps[mid].end) - hi = mid; - else - { - /* Found it: offset == gaps[mid].end. */ - index = mid; - goto found; - } - } - /* Invalid argument: block is not the start of a currently allocated - block. */ - abort (); - - found: - /* Here 0 <= index < pageptr->num_gaps - 1. - Combine the gaps index and index+1. */ - pageptr->common.free_space += gaps[index + 1].start - gaps[index].end; - if (pageptr->common.free_space < gaps[index + 1].start - gaps[index].end) - /* Wrap around. */ - abort (); - - gaps[index].end = gaps[index + 1].end; - - size_t num_gaps = pageptr->num_gaps - 1; - size_t i; - for (i = index + 1; i < num_gaps; i++) - gaps[i] = gaps[i + 1]; - pageptr->num_gaps = num_gaps; -} - -/* Management of pages of medium blocks. */ -struct page_pool medium_block_pages = - { - init_medium_block_page_pool, - init_medium_block_page, - allocate_medium_block_in_page, - free_medium_block_in_page - }; - -/* ==================== Pages of small and medium blocks ==================== */ - -/* Allocates a block of memory from the given pool, aligned to ALIGNMENT bytes. - Returns 0 upon failure. */ -static inline uintptr_t -allocate_block_from_pool (size_t size, struct page_pool *pool) -{ - uintptr_t page; - - /* Try in the last used page first. */ - page = pool->last_page; - if (likely (page != 0)) - { - uintptr_t block = pool->allocate_block_in_page (size, page); - if (likely (block != 0)) - { - add_update (page, pool); - return block; - } - } - - /* Ensure that the pool and its managed_pages is initialized. */ - if (unlikely (pool->managed_pages == NULL)) - { - pool->managed_pages = - gl_oset_nx_create_empty (GL_RBTREE_OSET, compare_pages_by_free_space, NULL); - if (unlikely (pool->managed_pages == NULL)) - /* Could not allocate the managed_pages. */ - return 0; - pool->init_page_pool (pool); - } - - /* Ensure that managed_pages is up-to-date. */ - flush_all_updates (pool); - - /* Try in the other managed_pages. */ - { - gl_oset_iterator_t iter = - gl_oset_iterator_atleast (pool->managed_pages, - page_free_space_is_at_least, - (void *) (uintptr_t) size); - const void *elt; - while (gl_oset_iterator_next (&iter, &elt)) - { - struct page_tree_element *element = (struct page_tree_element *) elt; - page = element->page; - /* No need to try the last used page again. */ - if (likely (page != pool->last_page)) - { - uintptr_t block = pool->allocate_block_in_page (size, page); - if (likely (block != 0)) - { - gl_oset_iterator_free (&iter); - add_update (page, pool); - pool->last_page = page; - return block; - } - } - } - gl_oset_iterator_free (&iter); - } - - /* If we have a freeable page ready for reuse, use it. */ - if (pool->freeable_page != 0) - { - page = pool->freeable_page; - pool->init_page (page); - struct page_tree_element *element = - (struct page_tree_element *) malloc (sizeof (struct page_tree_element)); - if (unlikely (element == NULL)) - { - /* Could not allocate the tree element. */ - pool->last_page = 0; - return 0; - } - element->page = page; - element->free_space = ((struct dissected_page_header *) page)->free_space; - if (unlikely (gl_oset_nx_add (pool->managed_pages, element) < 0)) - { - /* Could not allocate the tree node. */ - free (element); - pool->last_page = 0; - return 0; - } - ((struct dissected_page_header *) page)->tree_element = element; - pool->freeable_page = 0; - - uintptr_t block = pool->allocate_block_in_page (size, page); - if (block == 0) - /* If the size is too large for an empty page, this function should not - have been invoked. */ - abort (); - add_update (page, pool); - pool->last_page = page; - return block; - } - - /* Allocate a fresh page. */ - page = ALLOC_PAGES (PAGESIZE); - if (unlikely (page == 0)) - { - /* Failed. */ - pool->last_page = 0; - return 0; - } - if ((page & (PAGESIZE - 1)) != 0) - /* ALLOC_PAGES's result is not aligned as expected. */ - abort (); - - pool->init_page (page); - struct page_tree_element *element = - (struct page_tree_element *) malloc (sizeof (struct page_tree_element)); - if (unlikely (element == NULL)) - { - /* Could not allocate the tree element. */ - FREE_PAGES (page, PAGESIZE); - pool->last_page = 0; - return 0; - } - element->page = page; - element->free_space = ((struct dissected_page_header *) page)->free_space; - if (unlikely (gl_oset_nx_add (pool->managed_pages, element) < 0)) - { - /* Could not allocate the tree node. */ - free (element); - FREE_PAGES (page, PAGESIZE); - pool->last_page = 0; - return 0; - } - ((struct dissected_page_header *) page)->tree_element = element; - - uintptr_t block = pool->allocate_block_in_page (size, page); - if (block == 0) - /* If the size is too large for an empty page, this function should not - have been invoked. */ - abort (); - add_update (page, pool); - pool->last_page = page; - return block; -} - -static void -free_block_from_pool (uintptr_t block, uintptr_t page, struct page_pool *pool) -{ - if (pool->page_capacity == 0) - /* Invalid argument: The block is not valid, since the pool has not yet - been initialized. */ - abort (); - - pool->free_block_in_page (block, page); - - struct dissected_page_header *pageptr = (struct dissected_page_header *) page; - if (likely (pageptr->free_space != pool->page_capacity)) - { - /* The page is not entirely free. */ - add_update (page, pool); - } - else - { - /* The page is now entirely free. */ - /* Remove its tree element and free it. */ - struct page_tree_element *element = pageptr->tree_element; - if (!gl_oset_remove (pool->managed_pages, element)) - /* Invalid state: The element is not in the managed_pages. */ - abort (); - free (element); - - if (pool->last_page == page) - pool->last_page = 0; - - drop_update (page, pool); - - /* If we would now have two freeable pages, free the old one. */ - if (pool->freeable_page != 0) - FREE_PAGES (pool->freeable_page, PAGESIZE); - - /* Don't free the page now, but later. */ - #ifdef __CHERI_PURE_CAPABILITY__ - pool->freeable_page = pageptr->whole_page; - #else - pool->freeable_page = page; - #endif - } -} - -/* Lock that protects the management of small and medium blocks from - simultaneous access from multiple threads. */ -gl_lock_define_initialized(static, ssfmalloc_lock) - -/* ============================== Large blocks ============================== */ - -/* Header of a page sequence for a large block. - Lies at an address that is a multiple of PAGESIZE. */ -struct large_block_header -{ - #if PAGE_RESERVED_HEADER_SIZE > 0 - void * reserved[PAGE_RESERVED_HEADER_SIZE / sizeof (void *)]; - #endif - unsigned char page_type; /* large_page_type */ -}; - -/* Information about a large block. - Ends at an address that is a multiple of ALIGNMENT. */ -struct large_block_caption -{ - size_t pages_size; /* A multiple of PAGESIZE. */ -}; - -/* Size of large block page header, gap, and caption. */ -#define LARGE_BLOCK_OFFSET \ - ((sizeof (struct large_block_header) + sizeof (struct large_block_caption) \ - + ALIGNMENT - 1) & -ALIGNMENT) - -/* =========================== Exported functions =========================== */ - -/* Allocates a block of memory, aligned to ALIGNMENT bytes. - Returns 0 upon failure. */ -static uintptr_t -allocate_block (size_t size) -{ - uintptr_t block; - - if (unlikely (size > MEDIUM_BLOCKS_PAGE_CAPACITY)) - { - /* Allocate a large block. */ - size_t pages_size = (size + LARGE_BLOCK_OFFSET + PAGESIZE - 1) & -PAGESIZE; - uintptr_t pages = ALLOC_PAGES (pages_size); - if (unlikely (pages == 0)) - /* Failed. */ - return 0; - if ((pages & (PAGESIZE - 1)) != 0) - /* ALLOC_PAGES's result is not aligned as expected. */ - abort (); - ((struct any_page_header *) pages)->page_type = large_page_type; - block = pages + LARGE_BLOCK_OFFSET; - ((struct large_block_caption *) block)[-1].pages_size = pages_size; - } - else - { - bool mt = gl_multithreaded (); - if (mt) gl_lock_lock (ssfmalloc_lock); - struct page_pool *pool = - (size <= SMALL_BLOCK_MAX_SIZE ? &small_block_pages : &medium_block_pages); - block = allocate_block_from_pool (size, pool); - if (mt) gl_lock_unlock (ssfmalloc_lock); -#if defined __CHERI_PURE_CAPABILITY__ - if (block != 0) - { - size_t offset = block & (PAGESIZE - 1); - block = (uintptr_t) cheri_bounds_set ((void *) (block - offset), - offset + size) - + offset; - } -#endif - } - return block; -} - -/* Frees a block of memory, returned by allocate_block. */ -static void -free_block (uintptr_t block) -{ - if (block == 0 || (block % ALIGNMENT) != 0) - /* Invalid argument. */ - abort (); - uintptr_t pages = block & -PAGESIZE; - unsigned char type = ((struct any_page_header *) pages)->page_type; - if (unlikely (type == large_page_type)) - { - if (block != pages + LARGE_BLOCK_OFFSET) - /* Invalid argument. */ - abort (); - size_t pages_size = ((struct large_block_caption *) block)[-1].pages_size; - if ((pages_size & (PAGESIZE - 1)) != 0) - /* Invalid memory state: pages_size not as expected. */ - abort (); - FREE_PAGES (pages, pages_size); - } - else - { - bool mt = gl_multithreaded (); - if (mt) gl_lock_lock (ssfmalloc_lock); - struct page_pool *pool; - if (type == small_page_type) - pool = &small_block_pages; - else if (type == medium_page_type) - pool = &medium_block_pages; - else - /* Invalid memory state: type not as expected. */ - abort (); - free_block_from_pool (block, pages, pool); - if (mt) gl_lock_unlock (ssfmalloc_lock); - } -} diff --git a/include/libgnulib/stack-trace-impl.h b/include/libgnulib/stack-trace-impl.h deleted file mode 100755 index 529afad..0000000 --- a/include/libgnulib/stack-trace-impl.h +++ /dev/null @@ -1,90 +0,0 @@ -/* print_stack_trace() function that prints a stack trace. - Copyright (C) 2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if HAVE_LIBBACKTRACE - -# include - -static struct backtrace_state *state /* = NULL */; - -static inline void -# if (__GNUC__ >= 3) || (__clang_major__ >= 4) -__attribute__ ((always_inline)) -# endif -print_stack_trace_to (FILE *stream) -{ - if (state == NULL) - state = backtrace_create_state (NULL, 0, NULL, NULL); - fprintf (stream, "Stack trace:\n"); - /* Pass skip=0, to work around . */ - backtrace_print (state, 0, stream); -} - -#elif HAVE_LIBASAN - -# include - -/* We need only one declaration from . */ -extern -# ifdef __cplusplus -"C" -# endif -void __sanitizer_print_stack_trace (void); - -/* The only supported stream, in this case, is stderr. */ -static inline void -# if (__GNUC__ >= 3) || (__clang_major__ >= 4) -__attribute__ ((always_inline)) -# endif -print_stack_trace_to (FILE *stream) -{ - fprintf (stream, "Stack trace:\n"); - __sanitizer_print_stack_trace (); -} - -#elif HAVE_EXECINFO_H - -# include - -# include "execinfo.h" - -static inline void -# if (__GNUC__ >= 3) || (__clang_major__ >= 4) -__attribute__ ((always_inline)) -# endif -print_stack_trace_to (FILE *stream) -{ - void *buffer[100]; - int max_size = sizeof (buffer) / sizeof (buffer[0]); - int size = backtrace (buffer, max_size); - if (size > 0) - { - char **symbols = backtrace_symbols (buffer, size); - if (symbols != NULL) - { - int i; - - fprintf (stream, "Stack trace:\n"); - for (i = 0; i < size; i++) - fprintf (stream, "%s\n", symbols[i]); - fflush (stream); - - free (symbols); - } - } -} - -#endif diff --git a/include/libgnulib/stack.h b/include/libgnulib/stack.h deleted file mode 100755 index b0a33a5..0000000 --- a/include/libgnulib/stack.h +++ /dev/null @@ -1,178 +0,0 @@ -/* Type-safe stack data type. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Marc Nieper-Wißkirchen , 2020. */ - -/* This header file does not have include-guards as it is meant to be - includable multiple times as long as the necessary defines have - been set up. - - A stack is implemented with a homogenous array of elements in - memory, which will be resized (and moved) as needed. Elements are - passed by value and it is the responsibility of the user-code to - free any resources associated with individual elements. - - The exported names are all prefixed by ‘stack’ (e.g. stack_init), - but this can be changed by setting an appropriate define. - Type: stack_type - Initialization: stack_init (&stack); - De-initialization: stack_destroy (&stack); - Predicate: bool res = stack_empty (&stack); - Introspection: ELEMENT *base = stack_current_base (&stack); - Pushing: stack_push (&stack, element); - Popping: ELEMENT element = stack_pop (&stack); - Discarding: stack_discard (&stack); - Top-of-stack: ELEMENT element = stack_top (&stack); - Size: idx_t size = stack_size (&stack); - - Here, ELEMENT is the type to which GL_STACK_ELEMENT was defined when - this file was included. -*/ - -/* Before including this file, you need to define: - GL_STACK_ELEMENT The type of the elements on the stack. - GL_STACK_STORAGECLASS (Optional) The storage class specifier (e.g. static) - to use in the function definitions. - GL_STACK_NAME (Optional) The prefix to use for the type names - and functions definitions instead of the default - ‘stack’. - - After including this file, these names will be undefined. - - Before including this file, you also need to include: - #include - #include "assure.h" - #include "xalloc.h" -*/ - -/* This file uses _GL_ATTRIBUTE_MAYBE_UNUSED, _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifndef GL_STACK_ELEMENT -# error "Please define GL_STACK_ELEMENT first." -#endif - -#ifndef GL_STACK_STORAGECLASS -# define GL_STACK_STORAGECLASS -#endif - -#ifndef GL_STACK_NAME -# define GL_STACK_NAME stack -#endif - -#define _GL_STACK_PREFIX(name) _GL_CONCAT(GL_STACK_NAME, _GL_CONCAT(_, name)) -#define _GL_STACK_TYPE _GL_STACK_PREFIX(type) - -typedef struct -{ - GL_STACK_ELEMENT *base; - idx_t size; - idx_t allocated; -} _GL_STACK_TYPE; - -/* Initialize a stack. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -GL_STACK_STORAGECLASS void -_GL_STACK_PREFIX (init) (_GL_STACK_TYPE *stack) -{ - stack->base = NULL; - stack->size = 0; - stack->allocated = 0; -} - -/* Destroy a stack by freeing the allocated space. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -GL_STACK_STORAGECLASS void -_GL_STACK_PREFIX (destroy) (_GL_STACK_TYPE *stack) -{ - free (stack->base); -} - -/* Return true if the stack currently holds no element. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_PURE -GL_STACK_STORAGECLASS bool -_GL_STACK_PREFIX (empty) (const _GL_STACK_TYPE *stack) -{ - return stack->size == 0; -} - -/* Return the current address of the array of stack elements. - - The result is invalidated as soon as an element is added or removed - from the stack. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_PURE -GL_STACK_STORAGECLASS GL_STACK_ELEMENT * -_GL_STACK_PREFIX (current_base) (const _GL_STACK_TYPE *stack) -{ - return stack->base; -} - -/* Push an element to the top of the stack. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -GL_STACK_STORAGECLASS void -_GL_STACK_PREFIX (push) (_GL_STACK_TYPE *stack, GL_STACK_ELEMENT item) -{ - if (stack->size == stack->allocated) - stack->base = xpalloc (stack->base, &stack->allocated, 1, -1, - sizeof *stack->base); - stack->base [stack->size++] = item; -} - -/* Pop the element from the top of the stack, which must be non-empty, - and return it. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -GL_STACK_STORAGECLASS GL_STACK_ELEMENT -_GL_STACK_PREFIX (pop) (_GL_STACK_TYPE *stack) -{ - affirm (!_GL_STACK_PREFIX (empty) (stack)); - return stack->base [--stack->size]; -} - -/* Pop the element from the top of the stack, which must be - non-empty. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -GL_STACK_STORAGECLASS void -_GL_STACK_PREFIX (discard) (_GL_STACK_TYPE *stack) -{ - affirm (!_GL_STACK_PREFIX (empty) (stack)); - --stack->size; -} - -/* Return the element from the top of the stack, which must be - non-empty. */ -_GL_ATTRIBUTE_MAYBE_UNUSED -GL_STACK_STORAGECLASS GL_STACK_ELEMENT -_GL_STACK_PREFIX (top) (const _GL_STACK_TYPE *stack) -{ - affirm (!_GL_STACK_PREFIX (empty) (stack)); - return stack->base [stack->size - 1]; -} - -/* Return the currently stored number of elements in the stack. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_PURE -GL_STACK_STORAGECLASS idx_t -_GL_STACK_PREFIX (size) (const _GL_STACK_TYPE *stack) -{ - return stack->size; -} - -#undef GL_STACK_ELEMENT -#undef GL_STACK_STORAGECLASS -#undef GL_STACK_NAME -#undef _GL_STACK_PREFIX -#undef _GL_STACK_TYPE diff --git a/include/libgnulib/stackvma.h b/include/libgnulib/stackvma.h deleted file mode 100755 index 3b92a2d..0000000 --- a/include/libgnulib/stackvma.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Determine the virtual memory area of a given address. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - Copyright (C) 2003-2006 Paolo Bonzini - - 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 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, see . */ - -/* Written by Bruno Haible and Paolo Bonzini. */ - -#ifndef _STACKVMA_H -#define _STACKVMA_H - -#include - -/* Describes a virtual memory area, with some info about the gap between - it and the next or previous virtual memory area. */ -struct vma_struct -{ - uintptr_t start; - uintptr_t end; -#if STACK_DIRECTION < 0 - /* Info about the gap between this VMA and the previous one. - addr must be < vma->start. */ - int (*is_near_this) (uintptr_t addr, struct vma_struct *vma); - /* Private field, not provided by all sigsegv_get_vma implementations. */ - uintptr_t prev_end; -#endif -#if STACK_DIRECTION > 0 - /* Info about the gap between this VMA and the next one. - addr must be > vma->end - 1. */ - int (*is_near_this) (uintptr_t addr, struct vma_struct *vma); - /* Private field, not provided by all sigsegv_get_vma implementations. */ - uintptr_t next_start; -#endif -}; - -/* Determines the virtual memory area to which a given address belongs, - and returns 0. Returns -1 if it cannot be determined. - This function is used to determine the stack extent when a fault occurs. */ -extern int sigsegv_get_vma (uintptr_t address, struct vma_struct *vma); - -/* Defined if sigsegv_get_vma actually works (i.e. does not always fail). */ -#if defined __linux__ || defined __ANDROID__ \ - || defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ \ - || defined __NetBSD__ || defined __OpenBSD__ \ - || (defined __APPLE__ && defined __MACH__) \ - || defined _AIX || defined __sgi || defined __sun \ - || defined __CYGWIN__ || defined __HAIKU__ -# define HAVE_STACKVMA 1 -#endif - -#endif /* _STACKVMA_H */ diff --git a/include/libgnulib/stat-macros.h b/include/libgnulib/stat-macros.h deleted file mode 100755 index 8ab44ab..0000000 --- a/include/libgnulib/stat-macros.h +++ /dev/null @@ -1,20 +0,0 @@ -/* stat-related macros - - Copyright (C) 1993-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* All the mode bits that can be affected by chmod. */ -#define CHMOD_MODE_BITS \ - (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) diff --git a/include/libgnulib/stat-size.h b/include/libgnulib/stat-size.h deleted file mode 100755 index 8ec324b..0000000 --- a/include/libgnulib/stat-size.h +++ /dev/null @@ -1,94 +0,0 @@ -/* Yield size-related values in struct stat. - Copyright (C) 1989, 1991-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef STAT_SIZE_H -#define STAT_SIZE_H - -/* This file uses HAVE_SYS_PARAM_H, HAVE_STRUCT_STAT_ST_BLOCKS. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* sys/param.h may define DEV_BSIZE */ -#if HAVE_SYS_PARAM_H -# include -#endif - -/* The device blocksize, or a faked version thereof. - But use ST_NBLOCKSIZE instead. - Usually defined by sys/param.h (if at all). */ -#if !defined DEV_BSIZE && defined BSIZE -# define DEV_BSIZE BSIZE -#endif -#if !defined DEV_BSIZE && defined BBSIZE /* SGI sys/param.h */ -# define DEV_BSIZE BBSIZE -#endif -#ifndef DEV_BSIZE -# define DEV_BSIZE 4096 -#endif - -/* Extract or fake data from a struct stat *st. - STP_BLKSIZE(st): Preferred performance I/O blocksize, in bytes. - STP_NBLOCKS(st): Number of blocks, including indirect blocks. - ST_NBLOCKSIZE: Size of blocks used when calculating ST_NBLOCKS. */ -#ifndef HAVE_STRUCT_STAT_ST_BLOCKS -# define STP_BLKSIZE(st) DEV_BSIZE - /* coreutils' fileblocks.c also uses BSIZE. */ -# if defined _POSIX_SOURCE || !defined BSIZE -# define STP_NBLOCKS(st) \ - ((st)->st_size / ST_NBLOCKSIZE + ((st)->st_size % ST_NBLOCKSIZE != 0)) -# else - /* This definition calls st_blocks, which is in the fileblocks module. */ -# define STP_NBLOCKS(st) \ - (S_ISREG ((st)->st_mode) || S_ISDIR ((st)->st_mode) \ - ? st_blocks ((st)->st_size) : 0) -# endif -#else -/* When running 'rsh hpux11-system cat any-file', cat would - determine that the output stream had an st_blksize of 2147421096. - Conversely st_blksize can be 2 GiB (or maybe even larger) with XFS - on 64-bit hosts. Somewhat arbitrarily, limit the "optimal" block - size to SIZE_MAX / 8 + 1. (Dividing SIZE_MAX by only 4 wouldn't - suffice, since "cat" sometimes multiplies the result by 4.) If - anyone knows of a system for which this limit is too small, please - report it as a bug in this code. */ -# define STP_BLKSIZE(st) ((0 < (st)->st_blksize \ - && (st)->st_blksize <= (size_t) -1 / 8 + 1) \ - ? (st)->st_blksize : DEV_BSIZE) -# if defined hpux || defined __hpux__ || defined __hpux - /* HP-UX counts st_blocks in 1024-byte units. - This loses when mixing HP-UX and BSD file systems with NFS. */ -# define ST_NBLOCKSIZE 1024 -# endif -#endif - -#ifndef STP_NBLOCKS -# define STP_NBLOCKS(st) ((st)->st_blocks) -#endif - -#ifndef ST_NBLOCKSIZE -# ifdef S_BLKSIZE -# define ST_NBLOCKSIZE S_BLKSIZE -# else -# define ST_NBLOCKSIZE 512 -# endif -#endif - -/* Preferred blocksize and number of blocks for a struct stat object. */ -#define ST_BLKSIZE(statbuf) STP_BLKSIZE (&(statbuf)) -#define ST_NBLOCKS(statbuf) STP_NBLOCKS (&(statbuf)) - -#endif /* STAT_SIZE_H */ diff --git a/include/libgnulib/stat-time.h b/include/libgnulib/stat-time.h deleted file mode 100755 index 3cd8478..0000000 --- a/include/libgnulib/stat-time.h +++ /dev/null @@ -1,245 +0,0 @@ -/* stat-related time functions. - - Copyright (C) 2005, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef STAT_TIME_H -#define STAT_TIME_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_UNUSED, - _GL_ATTRIBUTE_PURE, HAVE_STRUCT_STAT_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include -#include -#include -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_STAT_TIME_INLINE -# define _GL_STAT_TIME_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type - struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, - ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, - if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim - for access, status change, data modification, or birth (creation) - time respectively. - - These macros are private to stat-time.h. */ -#if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC -# if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC -# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) -# define STAT_TIMESPEC_OFFSETOF(st_xtim) offsetof (struct stat, st_xtim) -# else -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) -# endif -#elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC -# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) -# define STAT_TIMESPEC_OFFSETOF(st_xtim) offsetof (struct stat, st_xtim##espec) -#elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) -#elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) -#endif - -/* Return the nanosecond component of *ST's access time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_atime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_atim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_atim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's status change time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_ctime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_ctim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_ctim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's data modification time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_mtime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_mtim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_mtim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's birth time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_birthtime_ns (_GL_UNUSED struct stat const *st) -{ -# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC - return STAT_TIMESPEC (st, st_birthtim).tv_nsec; -# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - return STAT_TIMESPEC_NS (st, st_birthtim); -# else - return 0; -# endif -} - -/* Return *ST's access time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_atime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_atim); -#else - return (struct timespec) { .tv_sec = st->st_atime, - .tv_nsec = get_stat_atime_ns (st) }; -#endif -} - -/* Return *ST's status change time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_ctime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_ctim); -#else - return (struct timespec) { .tv_sec = st->st_ctime, - .tv_nsec = get_stat_ctime_ns (st) }; -#endif -} - -/* Return *ST's data modification time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_mtime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_mtim); -#else - return (struct timespec) { .tv_sec = st->st_mtime, - .tv_nsec = get_stat_mtime_ns (st) }; -#endif -} - -/* Return *ST's birth time, if available; otherwise return a value - with tv_sec and tv_nsec both equal to -1. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_birthtime (_GL_UNUSED struct stat const *st) -{ - struct timespec t; - -#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) - t = STAT_TIMESPEC (st, st_birthtim); -#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - t = (struct timespec) { .tv_sec = st->st_birthtime, - .tv_nsec = st->st_birthtimensec }; -#elif defined _WIN32 && ! defined __CYGWIN__ - /* Native Windows platforms (but not Cygwin) put the "file creation - time" in st_ctime (!). See - . */ -# if _GL_WINDOWS_STAT_TIMESPEC - t = st->st_ctim; -# else - t = (struct timespec) { .tv_sec = st->st_ctime }; -# endif -#else - /* Birth time is not supported. */ - t = (struct timespec) { .tv_sec = -1, .tv_nsec = -1 }; -#endif - -#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) - /* FreeBSD and NetBSD sometimes signal the absence of knowledge by - using zero. Attempt to work around this problem. Alas, this can - report failure even for valid timestamps. Also, NetBSD - sometimes returns junk in the birth time fields; work around this - bug if it is detected. */ - if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) - t = (struct timespec) { .tv_sec = -1, .tv_nsec = -1 }; -#endif - - return t; -} - -/* If a stat-like function returned RESULT, normalize the timestamps - in *ST, if this platform suffers from a macOS and Solaris bug where - tv_nsec might be negative. Return the adjusted RESULT, setting - errno to EOVERFLOW if normalization overflowed. This function - is intended to be private to this .h file. */ -_GL_STAT_TIME_INLINE int -stat_time_normalize (int result, _GL_UNUSED struct stat *st) -{ -#if (((defined __APPLE__ && defined __MACH__) || defined __sun) \ - && defined STAT_TIMESPEC_OFFSETOF) - if (result == 0) - { - long int timespec_hz = 1000000000; - short int const ts_off[] = { STAT_TIMESPEC_OFFSETOF (st_atim), - STAT_TIMESPEC_OFFSETOF (st_mtim), - STAT_TIMESPEC_OFFSETOF (st_ctim) }; - int i; - for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) - { - struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); - long int q = ts->tv_nsec / timespec_hz; - long int r = ts->tv_nsec % timespec_hz; - if (r < 0) - { - r += timespec_hz; - q--; - } - ts->tv_nsec = r; - /* Overflow is possible, as Solaris 11 stat can yield - tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. */ - if (ckd_add (&ts->tv_sec, q, ts->tv_sec)) - { - errno = EOVERFLOW; - return -1; - } - } - } -#endif - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/stat-w32.h b/include/libgnulib/stat-w32.h deleted file mode 100755 index 392faed..0000000 --- a/include/libgnulib/stat-w32.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _STAT_W32_H -#define _STAT_W32_H 1 - -/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ -#if _GL_WINDOWS_STAT_TIMESPEC -extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); -#else -extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); -#endif - -/* Fill *BUF with information about the file designated by H. - PATH is the file name, if known, otherwise NULL. - Return 0 if successful, or -1 with errno set upon failure. */ -extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); - -/* Bitmasks for st_mode. */ -#define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) -#define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) -#define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) - -#endif /* _STAT_W32_H */ diff --git a/include/libgnulib/stdio--.h b/include/libgnulib/stdio--.h deleted file mode 100755 index 0be7ef6..0000000 --- a/include/libgnulib/stdio--.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Like stdio.h, but redefine some names to avoid glitches. - - Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#include -#include "stdio-safer.h" - -#if GNULIB_FOPEN_SAFER -# undef fopen -# define fopen fopen_safer -#endif - -#if GNULIB_FREOPEN_SAFER -# undef freopen -# define freopen freopen_safer -#endif - -#if GNULIB_TMPFILE_SAFER -# undef tmpfile -# define tmpfile tmpfile_safer -#endif - -#if GNULIB_POPEN_SAFER -# undef popen -# define popen popen_safer -#endif diff --git a/include/libgnulib/stdio-impl.h b/include/libgnulib/stdio-impl.h deleted file mode 100755 index 63ebf7c..0000000 --- a/include/libgnulib/stdio-impl.h +++ /dev/null @@ -1,218 +0,0 @@ -/* Implementation details of FILE streams. - Copyright (C) 2007-2008, 2010-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Many stdio implementations have the same logic and therefore can share - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -/* Glibc 2.28 made _IO_UNBUFFERED and _IO_IN_BACKUP private. For now, work - around this problem by defining them ourselves. FIXME: Do not rely on glibc - internals. */ -#if defined _IO_EOF_SEEN -# if !defined _IO_UNBUFFERED -# define _IO_UNBUFFERED 0x2 -# endif -# if !defined _IO_IN_BACKUP -# define _IO_IN_BACKUP 0x100 -# endif -#endif - -/* BSD stdio derived implementations. */ - -#if defined __NetBSD__ /* NetBSD */ -/* Get __NetBSD_Version__. */ -# include -#endif - -#include /* For detecting Plan9. */ - -#if defined __sferror || defined __DragonFly__ || defined __ANDROID__ - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ - -# if defined __DragonFly__ /* DragonFly */ - /* See . */ -# define fp_ ((struct { struct __FILE_public pub; \ - struct { unsigned char *_base; int _size; } _bf; \ - void *cookie; \ - void *_close; \ - void *_read; \ - void *_seek; \ - void *_write; \ - struct { unsigned char *_base; int _size; } _ub; \ - int _ur; \ - unsigned char _ubuf[3]; \ - unsigned char _nbuf[1]; \ - struct { unsigned char *_base; int _size; } _lb; \ - int _blksize; \ - fpos_t _offset; \ - /* More fields, not relevant here. */ \ - } *) fp) - /* See . */ -# define _p pub._p -# define _flags pub._flags -# define _r pub._r -# define _w pub._w -# elif defined __ANDROID__ /* Android */ -# ifdef __LP64__ -# define _gl_flags_file_t int -# else -# define _gl_flags_file_t short -# endif -# ifdef __LP64__ -# define _gl_file_offset_t int64_t -# else - /* see https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md */ -# define _gl_file_offset_t __kernel_off_t -# endif - /* Up to this commit from 2015-10-12 - - the innards of FILE were public, and fp_ub could be defined like for OpenBSD, - see - and . - After this commit, the innards of FILE are hidden. */ -# define fp_ ((struct { unsigned char *_p; \ - int _r; \ - int _w; \ - _gl_flags_file_t _flags; \ - _gl_flags_file_t _file; \ - struct { unsigned char *_base; size_t _size; } _bf; \ - int _lbfsize; \ - void *_cookie; \ - void *_close; \ - void *_read; \ - void *_seek; \ - void *_write; \ - struct { unsigned char *_base; size_t _size; } _ext; \ - unsigned char *_up; \ - int _ur; \ - unsigned char _ubuf[3]; \ - unsigned char _nbuf[1]; \ - struct { unsigned char *_base; size_t _size; } _lb; \ - int _blksize; \ - _gl_file_offset_t _offset; \ - /* More fields, not relevant here. */ \ - } *) fp) -# else -# define fp_ fp -# endif - -# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix /* NetBSD >= 1.5ZA, OpenBSD, Minix 3 */ - /* See - and - and */ - struct __sfileext - { - struct __sbuf _ub; /* ungetc buffer */ - /* More fields, not relevant here. */ - }; -# define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub -# elif defined __ANDROID__ /* Android */ - struct __sfileext - { - struct { unsigned char *_base; size_t _size; } _ub; /* ungetc buffer */ - /* More fields, not relevant here. */ - }; -# define fp_ub ((struct __sfileext *) fp_->_ext._base)->_ub -# else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */ -# define fp_ub fp_->_ub -# endif - -# define HASUB(fp) (fp_ub._base != NULL) - -# if defined __ANDROID__ /* Android */ - /* Needed after this commit from 2016-01-25 - */ -# ifndef __SEOF -# define __SLBF 1 -# define __SNBF 2 -# define __SRD 4 -# define __SWR 8 -# define __SRW 0x10 -# define __SEOF 0x20 -# define __SERR 0x40 -# endif -# ifndef __SOFF -# define __SOFF 0x1000 -# endif -# endif - -#endif - - -/* SystemV derived implementations. */ - -#ifdef __TANDEM /* NonStop Kernel */ -# ifndef _IOERR -/* These values were determined by the program 'stdioext-flags' at - . */ -# define _IOERR 0x40 -# define _IOREAD 0x80 -# define _IOWRT 0x4 -# define _IORW 0x100 -# endif -#endif - -#if defined _IOERR - -# if defined __sun && defined _LP64 /* Solaris/{SPARC,AMD64} 64-bit */ -# define fp_ ((struct { unsigned char *_ptr; \ - unsigned char *_base; \ - unsigned char *_end; \ - long _cnt; \ - int _file; \ - unsigned int _flag; \ - } *) fp) -# elif defined __VMS /* OpenVMS */ -# define fp_ ((struct _iobuf *) fp) -# else -# define fp_ fp -# endif - -# if defined _SCO_DS || (defined __SCO_VERSION__ || defined __sysv5__) /* OpenServer 5, OpenServer 6, UnixWare 7 */ -# define _cnt __cnt -# define _ptr __ptr -# define _base __base -# define _flag __flag -# endif - -#elif defined _WIN32 && ! defined __CYGWIN__ /* newer Windows with MSVC */ - -/* does not define the innards of FILE any more. */ -# define WINDOWS_OPAQUE_FILE - -struct _gl_real_FILE -{ - /* Note: Compared to older Windows and to mingw, it has the fields - _base and _cnt swapped. */ - unsigned char *_ptr; - unsigned char *_base; - int _cnt; - int _flag; - int _file; - int _charbuf; - int _bufsiz; -}; -# define fp_ ((struct _gl_real_FILE *) fp) - -/* These values were determined by a program similar to the one at - . */ -# define _IOREAD 0x1 -# define _IOWRT 0x2 -# define _IORW 0x4 -# define _IOEOF 0x8 -# define _IOERR 0x10 - -#endif diff --git a/include/libgnulib/stdio-safer.h b/include/libgnulib/stdio-safer.h deleted file mode 100755 index 8e2e777..0000000 --- a/include/libgnulib/stdio-safer.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Invoke stdio functions, but avoid some glitches. - - Copyright (C) 2001, 2003, 2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -/* This file uses _GL_ATTRIBUTE_DEALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#if GNULIB_FOPEN_SAFER -FILE *fopen_safer (char const *, char const *) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1); -#endif - -#if GNULIB_FREOPEN_SAFER -FILE *freopen_safer (char const *, char const *, FILE *) - _GL_ARG_NONNULL ((2, 3)); -#endif - -#if GNULIB_POPEN_SAFER -FILE *popen_safer (char const *, char const *) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1); -#endif - -#if GNULIB_TMPFILE_SAFER -FILE *tmpfile_safer (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1); -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/stdlib--.h b/include/libgnulib/stdlib--.h deleted file mode 100755 index 13a80b1..0000000 --- a/include/libgnulib/stdlib--.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Like stdlib.h, but redefine some names to avoid glitches. - - Copyright (C) 2005-2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#include -#include "stdlib-safer.h" - -#undef mkstemp -#define mkstemp mkstemp_safer - -#if GNULIB_MKOSTEMP -# define mkostemp mkostemp_safer -#endif - -#if GNULIB_MKOSTEMPS -# define mkostemps mkostemps_safer -#endif - -#if GNULIB_MKSTEMPS -# define mkstemps mkstemps_safer -#endif diff --git a/include/libgnulib/stdlib-safer.h b/include/libgnulib/stdlib-safer.h deleted file mode 100755 index 07357d9..0000000 --- a/include/libgnulib/stdlib-safer.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Invoke stdlib.h functions, but avoid some glitches. - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#ifdef __cplusplus -extern "C" { -#endif - - -int mkstemp_safer (char *); - -#if GNULIB_MKOSTEMP -int mkostemp_safer (char *, int); -#endif - -#if GNULIB_MKOSTEMPS -int mkostemps_safer (char *, int, int); -#endif - -#if GNULIB_MKSTEMPS -int mkstemps_safer (char *, int); -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/stdopen.h b/include/libgnulib/stdopen.h deleted file mode 100755 index 96ac301..0000000 --- a/include/libgnulib/stdopen.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Arrange for stdin/stdout/stderr to be open. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2005. */ - -#ifndef STDOPEN_H -# define STDOPEN_H 1 - -# ifdef __cplusplus -extern "C" { -# endif - -int stdopen (void); - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/include/libgnulib/str-kmp.h b/include/libgnulib/str-kmp.h deleted file mode 100755 index 091b921..0000000 --- a/include/libgnulib/str-kmp.h +++ /dev/null @@ -1,161 +0,0 @@ -/* Substring search in a NUL terminated string of UNIT elements, - using the Knuth-Morris-Pratt algorithm. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2005. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -/* Before including this file, you need to define: - UNIT The element type of the needle and haystack. - CANON_ELEMENT(c) A macro that canonicalizes an element right after - it has been fetched from needle or haystack. - The argument is of type UNIT; the result must be - of type UNIT as well. */ - -/* Knuth-Morris-Pratt algorithm. - See https://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm - HAYSTACK is the NUL terminated string in which to search for. - NEEDLE is the string to search for in HAYSTACK, consisting of NEEDLE_LEN - units. - Return a boolean indicating success: - Return true and set *RESULTP if the search was completed. - Return false if it was aborted because not enough memory was available. */ -static bool -knuth_morris_pratt (const UNIT *haystack, - const UNIT *needle, size_t needle_len, - const UNIT **resultp) -{ - size_t m = needle_len; - - /* Allocate the table. */ - size_t *table = (size_t *) nmalloca (m, sizeof (size_t)); - if (table == NULL) - return false; - /* Fill the table. - For 0 < i < m: - 0 < table[i] <= i is defined such that - forall 0 < x < table[i]: needle[x..i-1] != needle[0..i-1-x], - and table[i] is as large as possible with this property. - This implies: - 1) For 0 < i < m: - If table[i] < i, - needle[table[i]..i-1] = needle[0..i-1-table[i]]. - 2) For 0 < i < m: - rhaystack[0..i-1] == needle[0..i-1] - and exists h, i <= h < m: rhaystack[h] != needle[h] - implies - forall 0 <= x < table[i]: rhaystack[x..x+m-1] != needle[0..m-1]. - table[0] remains uninitialized. */ - { - size_t i, j; - - /* i = 1: Nothing to verify for x = 0. */ - table[1] = 1; - j = 0; - - for (i = 2; i < m; i++) - { - /* Here: j = i-1 - table[i-1]. - The inequality needle[x..i-1] != needle[0..i-1-x] is known to hold - for x < table[i-1], by induction. - Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1]. */ - UNIT b = CANON_ELEMENT (needle[i - 1]); - - for (;;) - { - /* Invariants: The inequality needle[x..i-1] != needle[0..i-1-x] - is known to hold for x < i-1-j. - Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1]. */ - if (b == CANON_ELEMENT (needle[j])) - { - /* Set table[i] := i-1-j. */ - table[i] = i - ++j; - break; - } - /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds - for x = i-1-j, because - needle[i-1] != needle[j] = needle[i-1-x]. */ - if (j == 0) - { - /* The inequality holds for all possible x. */ - table[i] = i; - break; - } - /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds - for i-1-j < x < i-1-j+table[j], because for these x: - needle[x..i-2] - = needle[x-(i-1-j)..j-1] - != needle[0..j-1-(x-(i-1-j))] (by definition of table[j]) - = needle[0..i-2-x], - hence needle[x..i-1] != needle[0..i-1-x]. - Furthermore - needle[i-1-j+table[j]..i-2] - = needle[table[j]..j-1] - = needle[0..j-1-table[j]] (by definition of table[j]). */ - j = j - table[j]; - } - /* Here: j = i - table[i]. */ - } - } - - /* Search, using the table to accelerate the processing. */ - { - size_t j; - const UNIT *rhaystack; - const UNIT *phaystack; - - *resultp = NULL; - j = 0; - rhaystack = haystack; - phaystack = haystack; - /* Invariant: phaystack = rhaystack + j. */ - while (*phaystack != 0) - if (CANON_ELEMENT (needle[j]) == CANON_ELEMENT (*phaystack)) - { - j++; - phaystack++; - if (j == m) - { - /* The entire needle has been found. */ - *resultp = rhaystack; - break; - } - } - else if (j > 0) - { - /* Found a match of needle[0..j-1], mismatch at needle[j]. */ - rhaystack += table[j]; - j -= table[j]; - } - else - { - /* Found a mismatch at needle[0] already. */ - rhaystack++; - phaystack++; - } - } - - freea (table); - return true; -} - -#undef CANON_ELEMENT diff --git a/include/libgnulib/str-two-way.h b/include/libgnulib/str-two-way.h deleted file mode 100755 index cf85e26..0000000 --- a/include/libgnulib/str-two-way.h +++ /dev/null @@ -1,452 +0,0 @@ -/* Byte-wise substring search, using the Two-Way algorithm. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Eric Blake , 2008. - - This file 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 file 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 program. If not, see . */ - -/* Before including this file, you need to include and - , and define: - RETURN_TYPE A macro that expands to the return type. - AVAILABLE(h, h_l, j, n_l) - A macro that returns nonzero if there are - at least N_L bytes left starting at H[J]. - H is 'unsigned char *', H_L, J, and N_L - are 'size_t'; H_L is an lvalue. For - NUL-terminated searches, H_L can be - modified each iteration to avoid having - to compute the end of H up front. - - For case-insensitivity, you may optionally define: - CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L - characters of P1 and P2 are equal. - CANON_ELEMENT(c) A macro that canonicalizes an element right after - it has been fetched from one of the two strings. - The argument is an 'unsigned char'; the result - must be an 'unsigned char' as well. - - This file undefines the macros documented above, and defines - LONG_NEEDLE_THRESHOLD. -*/ - -#include -#include - -/* We use the Two-Way string matching algorithm (also known as - Chrochemore-Perrin), which guarantees linear complexity with - constant space. Additionally, for long needles, we also use a bad - character shift table similar to the Boyer-Moore algorithm to - achieve improved (potentially sub-linear) performance. - - See https://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260, - https://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm, - https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.6641&rep=rep1&type=pdf -*/ - -/* Point at which computing a bad-byte shift table is likely to be - worthwhile. Small needles should not compute a table, since it - adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a - speedup no greater than a factor of NEEDLE_LEN. The larger the - needle, the better the potential performance gain. On the other - hand, on non-POSIX systems with CHAR_BIT larger than eight, the - memory required for the table is prohibitive. */ -#if CHAR_BIT < 10 -# define LONG_NEEDLE_THRESHOLD 32U -#else -# define LONG_NEEDLE_THRESHOLD SIZE_MAX -#endif - -#ifndef MAX -# define MAX(a, b) ((a < b) ? (b) : (a)) -#endif - -#ifndef CANON_ELEMENT -# define CANON_ELEMENT(c) c -#endif -#ifndef CMP_FUNC -# define CMP_FUNC memcmp -#endif - -/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. - Return the index of the first byte in the right half, and set - *PERIOD to the global period of the right half. - - The global period of a string is the smallest index (possibly its - length) at which all remaining bytes in the string are repetitions - of the prefix (the last repetition may be a subset of the prefix). - - When NEEDLE is factored into two halves, a local period is the - length of the smallest word that shares a suffix with the left half - and shares a prefix with the right half. All factorizations of a - non-empty NEEDLE have a local period of at least 1 and no greater - than NEEDLE_LEN. - - A critical factorization has the property that the local period - equals the global period. All strings have at least one critical - factorization with the left half smaller than the global period. - And while some strings have more than one critical factorization, - it is provable that with an ordered alphabet, at least one of the - critical factorizations corresponds to a maximal suffix. - - Given an ordered alphabet, a critical factorization can be computed - in linear time, with 2 * NEEDLE_LEN comparisons, by computing the - shorter of two ordered maximal suffixes. The ordered maximal - suffixes are determined by lexicographic comparison while tracking - periodicity. */ -static size_t -critical_factorization (const unsigned char *needle, size_t needle_len, - size_t *period) -{ - /* Index of last byte of left half, or SIZE_MAX. */ - size_t max_suffix, max_suffix_rev; - size_t j; /* Index into NEEDLE for current candidate suffix. */ - size_t k; /* Offset into current period. */ - size_t p; /* Intermediate period. */ - unsigned char a, b; /* Current comparison bytes. */ - - /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered - out 0-length needles. */ - if (needle_len < 3) - { - *period = 1; - return needle_len - 1; - } - - /* Invariants: - 0 <= j < NEEDLE_LEN - 1 - -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) - min(max_suffix, max_suffix_rev) < global period of NEEDLE - 1 <= p <= global period of NEEDLE - p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] - 1 <= k <= p - */ - - /* Perform lexicographic search. */ - max_suffix = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix + k]); - if (a < b) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* b < a */ - { - /* Suffix is larger, start over from current location. */ - max_suffix = j++; - k = p = 1; - } - } - *period = p; - - /* Perform reverse lexicographic search. */ - max_suffix_rev = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix_rev + k]); - if (b < a) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix_rev; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* a < b */ - { - /* Suffix is larger, start over from current location. */ - max_suffix_rev = j++; - k = p = 1; - } - } - - /* Choose the shorter suffix. Return the index of the first byte of - the right half, rather than the last byte of the left half. - - For some examples, 'banana' has two critical factorizations, both - exposed by the two lexicographic extreme suffixes of 'anana' and - 'nana', where both suffixes have a period of 2. On the other - hand, with 'aab' and 'bba', both strings have a single critical - factorization of the last byte, with the suffix having a period - of 1. While the maximal lexicographic suffix of 'aab' is 'b', - the maximal lexicographic suffix of 'bba' is 'ba', which is not a - critical factorization. Conversely, the maximal reverse - lexicographic suffix of 'a' works for 'bba', but not 'ab' for - 'aab'. The shorter suffix of the two will always be a critical - factorization. */ - if (max_suffix_rev + 1 < max_suffix + 1) - return max_suffix + 1; - *period = p; - return max_suffix_rev + 1; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. - Performance is guaranteed to be linear, with an initialization cost - of 2 * NEEDLE_LEN comparisons. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ -static RETURN_TYPE _GL_ATTRIBUTE_PURE -two_way_short_needle (const unsigned char *haystack, size_t haystack_len, - const unsigned char *needle, size_t needle_len) -{ - size_t i; /* Index into current byte of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch in the left half can - only advance by the period, so use memory to avoid rescanning - known occurrences of the period in the right half. */ - size_t memory = 0; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = MAX (suffix, memory); - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = suffix; - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN. - Performance is guaranteed to be linear, with an initialization cost - of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, - and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and - sublinear performance is not possible. */ -static RETURN_TYPE _GL_ATTRIBUTE_PURE -two_way_long_needle (const unsigned char *haystack, size_t haystack_len, - const unsigned char *needle, size_t needle_len) -{ - size_t i; /* Index into current byte of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - size_t shift_table[1U << CHAR_BIT]; /* See below. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Populate shift_table. For each possible byte value c, - shift_table[c] is the distance from the last occurrence of c to - the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE. - shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0. */ - for (i = 0; i < 1U << CHAR_BIT; i++) - shift_table[i] = needle_len; - for (i = 0; i < needle_len; i++) - shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1; - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch in the left half can - only advance by the period, so use memory to avoid rescanning - known occurrences of the period in the right half. */ - size_t memory = 0; - size_t shift; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Check the last byte first; if it does not match, then - shift to the next possible match location. */ - shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; - if (0 < shift) - { - if (memory && shift < period) - { - /* Since needle is periodic, but the last period has - a byte out of place, there can be no match until - after the mismatch. */ - shift = needle_len - period; - } - memory = 0; - j += shift; - continue; - } - /* Scan for matches in right half. The last byte has - already been matched, by virtue of the shift table. */ - i = MAX (suffix, memory); - while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len - 1 <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - size_t shift; - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Check the last byte first; if it does not match, then - shift to the next possible match location. */ - shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])]; - if (0 < shift) - { - j += shift; - continue; - } - /* Scan for matches in right half. The last byte has - already been matched, by virtue of the shift table. */ - i = suffix; - while (i < needle_len - 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len - 1 <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -#undef AVAILABLE -#undef CANON_ELEMENT -#undef CMP_FUNC -#undef MAX -#undef RETURN_TYPE diff --git a/include/libgnulib/strchrnul.valgrind b/include/libgnulib/strchrnul.valgrind deleted file mode 100755 index 0ae2e65..0000000 --- a/include/libgnulib/strchrnul.valgrind +++ /dev/null @@ -1,28 +0,0 @@ -# Suppress a valgrind message about use of uninitialized memory in strchrnul(). - -# Copyright (C) 2008-2024 Free Software Foundation, Inc. -# -# This file 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 file 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 program. If not, see . - -# This use is OK because it provides only a speedup. -{ - strchrnul-value4 - Memcheck:Value4 - fun:strchrnul -} -{ - strchrnul-value8 - Memcheck:Value8 - fun:strchrnul -} diff --git a/include/libgnulib/streq.h b/include/libgnulib/streq.h deleted file mode 100755 index 8593de6..0000000 --- a/include/libgnulib/streq.h +++ /dev/null @@ -1,186 +0,0 @@ -/* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -#ifndef _GL_STREQ_H -#define _GL_STREQ_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* STREQ_OPT allows to optimize string comparison with a small literal string. - STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - is semantically equivalent to - strcmp (s, "EUC-KR") == 0 - just faster. */ - -/* Help GCC to generate good code for string comparisons with - immediate strings. */ -#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ - -static inline int -streq9 (const char *s1, const char *s2) -{ - return strcmp (s1 + 9, s2 + 9) == 0; -} - -static inline int -streq8 (const char *s1, const char *s2, char s28) -{ - if (s1[8] == s28) - { - if (s28 == 0) - return 1; - else - return streq9 (s1, s2); - } - else - return 0; -} - -static inline int -streq7 (const char *s1, const char *s2, char s27, char s28) -{ - if (s1[7] == s27) - { - if (s27 == 0) - return 1; - else - return streq8 (s1, s2, s28); - } - else - return 0; -} - -static inline int -streq6 (const char *s1, const char *s2, char s26, char s27, char s28) -{ - if (s1[6] == s26) - { - if (s26 == 0) - return 1; - else - return streq7 (s1, s2, s27, s28); - } - else - return 0; -} - -static inline int -streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) -{ - if (s1[5] == s25) - { - if (s25 == 0) - return 1; - else - return streq6 (s1, s2, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[4] == s24) - { - if (s24 == 0) - return 1; - else - return streq5 (s1, s2, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[3] == s23) - { - if (s23 == 0) - return 1; - else - return streq4 (s1, s2, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[2] == s22) - { - if (s22 == 0) - return 1; - else - return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[1] == s21) - { - if (s21 == 0) - return 1; - else - return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[0] == s20) - { - if (s20 == 0) - return 1; - else - return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) - -#else - -#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - (strcmp (s1, s2) == 0) - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_STREQ_H */ diff --git a/include/libgnulib/strerror-override.h b/include/libgnulib/strerror-override.h deleted file mode 100755 index c496000..0000000 --- a/include/libgnulib/strerror-override.h +++ /dev/null @@ -1,73 +0,0 @@ -/* strerror-override.h --- POSIX compatible system error routine - - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_STRERROR_OVERRIDE_H -#define _GL_STRERROR_OVERRIDE_H - -/* This file uses _GL_ATTRIBUTE_CONST. */ -#if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Reasonable buffer size that should never trigger ERANGE; if this - proves too small, we intentionally abort(), to remind us to fix - this value. */ -#define STACKBUF_LEN 256 - -/* If ERRNUM maps to an errno value defined by gnulib, return a string - describing the error. Otherwise return NULL. */ -#if REPLACE_STRERROR_0 \ - || GNULIB_defined_ESOCK \ - || GNULIB_defined_ESTREAMS \ - || GNULIB_defined_EWINSOCK \ - || GNULIB_defined_ENOMSG \ - || GNULIB_defined_EIDRM \ - || GNULIB_defined_ENOLINK \ - || GNULIB_defined_EPROTO \ - || GNULIB_defined_EMULTIHOP \ - || GNULIB_defined_EBADMSG \ - || GNULIB_defined_EOVERFLOW \ - || GNULIB_defined_ENOTSUP \ - || GNULIB_defined_ENETRESET \ - || GNULIB_defined_ECONNABORTED \ - || GNULIB_defined_ESTALE \ - || GNULIB_defined_EDQUOT \ - || GNULIB_defined_ECANCELED \ - || GNULIB_defined_EOWNERDEAD \ - || GNULIB_defined_ENOTRECOVERABLE \ - || GNULIB_defined_EILSEQ \ - || GNULIB_defined_ESOCKTNOSUPPORT -extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; -#else -# define strerror_override(ignored) NULL -# define GNULIB_defined_strerror_override_macro 1 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_STRERROR_OVERRIDE_H */ diff --git a/include/libgnulib/strftime.h b/include/libgnulib/strftime.h deleted file mode 100755 index 3179874..0000000 --- a/include/libgnulib/strftime.h +++ /dev/null @@ -1,85 +0,0 @@ -/* declarations for strftime.c - - Copyright (C) 2002, 2004, 2008-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Format the broken-down time *__TP, with additional __NS nanoseconds, - into the buffer __S of size __MAXSIZE, according to the rules of the - LC_TIME category of the current locale. - - Use the time zone __TZ. - If *__TP represents local time, __TZ should be set to - tzalloc (getenv ("TZ")). - If *__TP represents universal time (a.k.a. GMT), __TZ should be set to - (timezone_t) 0. - - The format string __FORMAT, including GNU extensions, is described in - the GNU libc's strftime() documentation: - - Additionally, the following conversion is supported: - %N The number of nanoseconds, passed as __NS argument. - Here's a summary of the available conversions (= format directives): - literal characters %n %t %% - date: - century %C - year %Y %y - week-based year %G %g - month (in year) %m %B %b %h - week in year %U %W %V - day in year %j - day (in month) %d %e - day in week %u %w %A %a - year, month, day %x %F %D - time: - half-day %p %P - hour %H %k %I %l - minute (in hour) %M - hour, minute %R - second (in minute) %S - hour, minute, second %r %T %X - second (since epoch) %s - date and time: %c - time zone: %z %Z - nanosecond %N - - Store the result, as a string with a trailing NUL character, at the - beginning of the array __S[0..__MAXSIZE-1] and return the length of - that string, not counting the trailing NUL, and without changing errno. - If unsuccessful, possibly change the array __S, set errno, and return 0; - errno == ERANGE means the string didn't fit. - - This function is like strftime, but with two more arguments: - * __TZ instead of the local timezone information, - * __NS as the number of nanoseconds in the %N directive. - */ -size_t nstrftime (char *restrict __s, size_t __maxsize, - char const *__format, - struct tm const *__tp, timezone_t __tz, int __ns); - -/* Like nstrftime, except that it uses the "C" locale instead of the - current locale. */ -size_t c_nstrftime (char *restrict __s, size_t __maxsize, - char const *__format, - struct tm const *__tp, timezone_t __tz, int __ns); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/striconv.h b/include/libgnulib/striconv.h deleted file mode 100755 index cb42c7b..0000000 --- a/include/libgnulib/striconv.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Charset conversion. - Copyright (C) 2001-2004, 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible and Simon Josefsson. - - This file 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 file 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 program. If not, see . */ - -#ifndef _STRICONV_H -#define _STRICONV_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_ICONV. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#if HAVE_ICONV -#include -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if HAVE_ICONV - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - The conversion descriptor is passed as CD. - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - The conversion descriptor is passed as CD. Both the "from" and the "to" - encoding must use a single NUL byte at the end of the string (i.e. not - UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * str_cd_iconv (const char *src, iconv_t cd) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#endif - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - Both the "from" and the "to" encoding must use a single NUL byte at the - end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * str_iconv (const char *src, - const char *from_codeset, const char *to_codeset) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STRICONV_H */ diff --git a/include/libgnulib/striconveh.h b/include/libgnulib/striconveh.h deleted file mode 100755 index dee51eb..0000000 --- a/include/libgnulib/striconveh.h +++ /dev/null @@ -1,147 +0,0 @@ -/* Character set conversion with error handling. - Copyright (C) 2001-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible and Simon Josefsson. - - This file 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 file 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 program. If not, see . */ - -#ifndef _STRICONVEH_H -#define _STRICONVEH_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_ICONV. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#if HAVE_ICONV -#include -#endif - -#include "iconveh.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if HAVE_ICONV - -/* A conversion descriptor for use by the iconveh functions. */ -typedef struct - { - /* Conversion descriptor from FROM_CODESET to TO_CODESET, or (iconv_t)(-1) - if the system does not support a direct conversion from FROM_CODESET to - TO_CODESET. */ - iconv_t cd; - /* Conversion descriptor from FROM_CODESET to UTF-8 (or (iconv_t)(-1) if - FROM_CODESET is UTF-8). */ - iconv_t cd1; - /* Conversion descriptor from UTF-8 to TO_CODESET (or (iconv_t)(-1) if - TO_CODESET is UTF-8). */ - iconv_t cd2; - } - iconveh_t; - -/* Open a conversion descriptor for use by the iconveh functions. - If successful, fills *CDP and returns 0. Upon failure, return -1 with errno - set. */ -extern int - iconveh_open (const char *to_codeset, const char *from_codeset, - iconveh_t *cdp); - -/* Close a conversion descriptor created by iconveh_open(). - Return value: 0 if successful, otherwise -1 and errno set. */ -extern int - iconveh_close (const iconveh_t *cd); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - CD points to the conversion descriptor from FROMCODE to TOCODE, created by - the function iconveh_open(). - If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this - array is filled with offsets into the result, i.e. the character starting - at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], - and other offsets are set to (size_t)(-1). - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int - mem_cd_iconveh (const char *src, size_t srclen, - const iconveh_t *cd, - enum iconv_ilseq_handler handler, - size_t *offsets, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - CD points to the conversion descriptor from FROMCODE to TOCODE, created by - the function iconveh_open(). - Both the "from" and the "to" encoding must use a single NUL byte at the end - of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * - str_cd_iconveh (const char *src, - const iconveh_t *cd, - enum iconv_ilseq_handler handler) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#endif - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this - array is filled with offsets into the result, i.e. the character starting - at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], - and other offsets are set to (size_t)(-1). - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int - mem_iconveh (const char *src, size_t srclen, - const char *from_codeset, const char *to_codeset, - enum iconv_ilseq_handler handler, - size_t *offsets, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - Both the "from" and the "to" encoding must use a single NUL byte at the - end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * - str_iconveh (const char *src, - const char *from_codeset, const char *to_codeset, - enum iconv_ilseq_handler handler) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STRICONVEH_H */ diff --git a/include/libgnulib/striconveha.h b/include/libgnulib/striconveha.h deleted file mode 100755 index e93d0b4..0000000 --- a/include/libgnulib/striconveha.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Character set conversion with error handling and autodetection. - Copyright (C) 2002, 2005, 2007-2024 Free Software Foundation, Inc. - Written by Bruno Haible. - - This file 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 file 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 program. If not, see . */ - -#ifndef _STRICONVEHA_H -#define _STRICONVEHA_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#include "iconveh.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - The "from" encoding can also be a name defined for autodetection. - If TRANSLITERATE is true, transliteration will attempted to avoid conversion - errors, for iconv implementations that support this. Usually you'll choose - TRANSLITERATE = true if HANDLER != iconveh_error. - If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this - array is filled with offsets into the result, i.e. the character starting - at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], - and other offsets are set to (size_t)(-1). - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int - mem_iconveha (const char *src, size_t srclen, - const char *from_codeset, const char *to_codeset, - bool transliterate, - enum iconv_ilseq_handler handler, - size_t *offsets, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - Both the "from" and the "to" encoding must use a single NUL byte at the - end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - The "from" encoding can also be a name defined for autodetection. - If TRANSLITERATE is true, transliteration will attempted to avoid conversion - errors, for iconv implementations that support this. Usually you'll choose - TRANSLITERATE = true if HANDLER != iconveh_error. - Allocate a malloced memory block for the result. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * - str_iconveha (const char *src, - const char *from_codeset, const char *to_codeset, - bool transliterate, - enum iconv_ilseq_handler handler) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -/* In the above, FROM_CODESET can also be one of the following values: - "autodetect_utf8" supports ISO-8859-1 and UTF-8 - "autodetect_jp" supports EUC-JP, ISO-2022-JP-2 and SHIFT_JIS - "autodetect_kr" supports EUC-KR and ISO-2022-KR - More names can be defined for autodetection. */ - -/* Registers an encoding name for autodetection. - TRY_IN_ORDER is a NULL terminated list of encodings to be tried. - Returns 0 upon success, or -1 (with errno set) in case of error. - Particular errno values: ENOMEM. */ -extern int - uniconv_register_autodetect (const char *name, - const char * const *try_in_order); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STRICONVEHA_H */ diff --git a/include/libgnulib/string-buffer.h b/include/libgnulib/string-buffer.h deleted file mode 100755 index 2d9824e..0000000 --- a/include/libgnulib/string-buffer.h +++ /dev/null @@ -1,205 +0,0 @@ -/* A buffer that accumulates a string by piecewise concatenation. - Copyright (C) 2021-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2021. */ - -#ifndef _STRING_BUFFER_H -#define _STRING_BUFFER_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL, - _GL_ATTRIBUTE_CAPABILITY_TYPE, _GL_ATTRIBUTE_ACQUIRE_CAPABILITY, - _GL_ATTRIBUTE_RELEASE_CAPABILITY. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#include "attribute.h" -#include "string-desc.h" - -typedef char * _GL_ATTRIBUTE_CAPABILITY_TYPE ("memory resource") - sb_heap_allocated_pointer_t; - -/* A string buffer type. */ -struct string_buffer -{ - sb_heap_allocated_pointer_t data; - size_t length; /* used bytes, <= allocated */ - size_t allocated; /* allocated bytes */ - bool error; /* true if there was an error */ - char space[1024]; /* stack allocated space */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* ================== Functions in module 'string-buffer' ================== */ - -/* Initializes BUFFER to the empty string. */ -extern void sb_init (struct string_buffer *buffer) - _GL_ATTRIBUTE_ACQUIRE_CAPABILITY (buffer->data); - -/* Appends the character C to BUFFER. - Returns 0, or -1 in case of out-of-memory error. */ -extern int sb_append1 (struct string_buffer *buffer, char c); - -/* Appends the contents of the memory area S to BUFFER. - Returns 0, or -1 in case of out-of-memory error. */ -extern int sb_append_desc (struct string_buffer *buffer, string_desc_t s); - -/* Appends the contents of the C string STR to BUFFER. - Returns 0, or -1 in case of out-of-memory error. */ -extern int sb_append_c (struct string_buffer *buffer, const char *str); - -/* Appends the result of the printf-compatible FORMATSTRING with the argument - list LIST to BUFFER. - Returns 0, or -1 with errno set in case of error. - Error code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible error code is ENOMEM. */ -extern int sb_appendvf (struct string_buffer *buffer, - const char *formatstring, va_list list) - #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4) && !defined __clang__ - ATTRIBUTE_FORMAT ((__gnu_printf__, 2, 0)) - #else - ATTRIBUTE_FORMAT ((__printf__, 2, 0)) - #endif - ; - -/* Appends the result of the printf-compatible FORMATSTRING with the following - arguments to BUFFER. - Returns 0, or -1 with errno set in case of error. - Error code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible error code is ENOMEM. */ -extern int sb_appendf (struct string_buffer *buffer, - const char *formatstring, ...) - #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4) && !defined __clang__ - ATTRIBUTE_FORMAT ((__gnu_printf__, 2, 3)) - #else - ATTRIBUTE_FORMAT ((__printf__, 2, 3)) - #endif - ; - -/* Frees the memory held by BUFFER. */ -extern void sb_free (struct string_buffer *buffer) - _GL_ATTRIBUTE_RELEASE_CAPABILITY (buffer->data); - -/* Returns a read-only view of the current contents of BUFFER. - The result is only valid until the next operation on BUFFER. */ -extern string_desc_t sb_contents (struct string_buffer *buffer); - -/* Ensures the contents of BUFFER is followed by a NUL byte (without - incrementing the length of the contents). - Then returns a read-only view of the current contents of BUFFER, - that is, the current contents of BUFFER as a C string. - Returns NULL upon out-of-memory error. - The result is only valid until the next operation on BUFFER. */ -extern const char * sb_contents_c (struct string_buffer *buffer); - -/* Returns the contents of BUFFER and frees all other memory held by BUFFER. - Returns NULL upon failure or if there was an error earlier. - It is the responsibility of the caller to string_desc_free() the result. */ -extern string_desc_t sb_dupfree (struct string_buffer *buffer) - _GL_ATTRIBUTE_RELEASE_CAPABILITY (buffer->data); - -/* Returns the contents of BUFFER (with an added trailing NUL, that is, - as a C string), and frees all other memory held by BUFFER. - Returns NULL upon failure or if there was an error earlier. - It is the responsibility of the caller to free() the result. */ -extern char * sb_dupfree_c (struct string_buffer *buffer) - _GL_ATTRIBUTE_RELEASE_CAPABILITY (buffer->data); - -/* ================== Functions in module 'xstring-buffer' ================== */ - -#if GNULIB_XSTRING_BUFFER - -/* The following functions invoke xalloc_die () in case of out-of-memory - error. */ - -/* Appends the character C to BUFFER. */ -extern void sb_xappend1 (struct string_buffer *buffer, char c); - -/* Appends the contents of the memory area S to BUFFER. */ -extern void sb_xappend_desc (struct string_buffer *buffer, string_desc_t s); - -/* Appends the contents of the C string STR to BUFFER. */ -extern void sb_xappend_c (struct string_buffer *buffer, const char *str); - -/* Appends the result of the printf-compatible FORMATSTRING with the argument - list LIST to BUFFER. - Returns 0, or -1 in case of error other than out-of-memory error. - Error code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, no error is possible. */ -extern int sb_xappendvf (struct string_buffer *buffer, - const char *formatstring, va_list list) - #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4) && !defined __clang__ - ATTRIBUTE_FORMAT ((__gnu_printf__, 2, 0)) - #else - ATTRIBUTE_FORMAT ((__printf__, 2, 0)) - #endif - ; - -/* Appends the result of the printf-compatible FORMATSTRING with the following - arguments to BUFFER. - Returns 0, or -1 in case of error other than out-of-memory error. - Error code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, no error is possible. */ -extern int sb_xappendf (struct string_buffer *buffer, - const char *formatstring, ...) - #if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4) && !defined __clang__ - ATTRIBUTE_FORMAT ((__gnu_printf__, 2, 3)) - #else - ATTRIBUTE_FORMAT ((__printf__, 2, 3)) - #endif - ; - -/* Ensures the contents of BUFFER is followed by a NUL byte (without - incrementing the length of the contents). - Then returns a read-only view of the current contents of BUFFER, - that is, the current contents of BUFFER as a C string. - The result is only valid until the next operation on BUFFER. */ -extern const char * sb_xcontents_c (struct string_buffer *buffer) - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Returns the contents of BUFFER and frees all other memory held by BUFFER. - Returns (0, NULL) if there was an error earlier. - It is the responsibility of the caller to string_desc_free() the result. */ -extern string_desc_t sb_xdupfree (struct string_buffer *buffer) - _GL_ATTRIBUTE_RELEASE_CAPABILITY (buffer->data); - -/* Returns the contents of BUFFER (with an added trailing NUL, that is, - as a C string), and frees all other memory held by BUFFER. - Returns NULL if there was an error earlier. - It is the responsibility of the caller to free() the result. */ -extern char * sb_xdupfree_c (struct string_buffer *buffer) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RELEASE_CAPABILITY (buffer->data); - -#endif /* GNULIB_XSTRING_BUFFER */ - -/* ========================================================================== */ - -#ifdef __cplusplus -} -#endif - -#endif /* _STRING_BUFFER_H */ diff --git a/include/libgnulib/string-desc-quotearg.h b/include/libgnulib/string-desc-quotearg.h deleted file mode 100755 index eefc7b0..0000000 --- a/include/libgnulib/string-desc-quotearg.h +++ /dev/null @@ -1,223 +0,0 @@ -/* Quote string descriptors for output. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* Written by Bruno Haible , 2023. */ - -#ifndef _STRING_DESC_QUOTEARG_H -#define _STRING_DESC_QUOTEARG_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NONNULL, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "string-desc.h" -#include "quotearg.h" - - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_STRING_DESC_QUOTEARG_INLINE -# define GL_STRING_DESC_QUOTEARG_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG, using O to control quoting. - If O is null, use the default. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - On output, BUFFER might contain embedded null bytes if the style of O - does not use backslash escapes and the flags of O do not request - elision of null bytes. */ -#if 0 -extern size_t string_desc_quotearg_buffer (char *restrict buffer, - size_t buffersize, - string_desc_t arg, - struct quoting_options const *o); -#endif - -/* Like string_desc_quotearg_buffer, except return the result in a newly - allocated buffer and store its length, excluding the terminating null - byte, in *SIZE. It is the caller's responsibility to free the result. - The result might contain embedded null bytes if the style of O does - not use backslash escapes and the flags of O do not request elision - of null bytes. */ -#if 0 -extern char *string_desc_quotearg_alloc (string_desc_t arg, - size_t *size, - struct quoting_options const *o) - _GL_ATTRIBUTE_NONNULL ((2)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -#endif - -/* Use storage slot N to return a quoted version of the string ARG. - Use the default quoting options. - The returned value points to static storage that can be - reused by the next call to this function with the same value of N. - N must be nonnegative. */ -#if 0 -extern char *string_desc_quotearg_n (int n, string_desc_t arg); -#endif - -/* Equivalent to string_desc_quotearg_n (0, ARG). */ -#if 0 -extern char *string_desc_quotearg (string_desc_t arg); -#endif - -/* Use style S and storage slot N to return a quoted version of the string ARG. - This is like string_desc_quotearg_n (N, ARG), except that it uses S - with no other options to specify the quoting method. */ -#if 0 -extern char *string_desc_quotearg_n_style (int n, enum quoting_style s, - string_desc_t arg); -#endif - -/* Equivalent to string_desc_quotearg_n_style (0, S, ARG). */ -#if 0 -extern char *string_desc_quotearg_style (enum quoting_style s, - string_desc_t arg); -#endif - -/* Like string_desc_quotearg (ARG), except also quote any instances of CH. - See set_char_quoting for a description of acceptable CH values. */ -#if 0 -extern char *string_desc_quotearg_char (string_desc_t arg, char ch); -#endif - -/* Equivalent to string_desc_quotearg_char (ARG, ':'). */ -#if 0 -extern char *string_desc_quotearg_colon (string_desc_t arg); -#endif - -/* Like string_desc_quotearg_n_style (N, S, ARG) but with S as - custom_quoting_style with left quote as LEFT_QUOTE and right quote - as RIGHT_QUOTE. See set_custom_quoting for a description of acceptable - LEFT_QUOTE and RIGHT_QUOTE values. */ -#if 0 -extern char *string_desc_quotearg_n_custom (int n, - char const *left_quote, - char const *right_quote, - string_desc_t arg); -#endif - -/* Equivalent to - string_desc_quotearg_n_custom (0, LEFT_QUOTE, RIGHT_QUOTE, ARG). */ -#if 0 -extern char *string_desc_quotearg_custom (char const *left_quote, - char const *right_quote, - string_desc_t arg); -#endif - - -/* ==== Inline function definitions ==== */ - -GL_STRING_DESC_QUOTEARG_INLINE size_t -string_desc_quotearg_buffer (char *restrict buffer, size_t buffersize, - string_desc_t arg, - struct quoting_options const *o) -{ - return quotearg_buffer (buffer, buffersize, - string_desc_data (arg), string_desc_length (arg), - o); -} - -GL_STRING_DESC_QUOTEARG_INLINE -_GL_ATTRIBUTE_NONNULL ((2)) -_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE -_GL_ATTRIBUTE_RETURNS_NONNULL -char * -string_desc_quotearg_alloc (string_desc_t arg, - size_t *size, - struct quoting_options const *o) -{ - return quotearg_alloc_mem (string_desc_data (arg), string_desc_length (arg), - size, - o); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_n (int n, string_desc_t arg) -{ - return quotearg_n_mem (n, string_desc_data (arg), string_desc_length (arg)); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg (string_desc_t arg) -{ - return quotearg_mem (string_desc_data (arg), string_desc_length (arg)); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_n_style (int n, enum quoting_style s, string_desc_t arg) -{ - return quotearg_n_style_mem (n, s, - string_desc_data (arg), string_desc_length (arg)); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_style (enum quoting_style s, string_desc_t arg) -{ - return quotearg_style_mem (s, - string_desc_data (arg), string_desc_length (arg)); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_char (string_desc_t arg, char ch) -{ - return quotearg_char_mem (string_desc_data (arg), string_desc_length (arg), - ch); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_colon (string_desc_t arg) -{ - return quotearg_colon_mem (string_desc_data (arg), string_desc_length (arg)); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_n_custom (int n, - char const *left_quote, char const *right_quote, - string_desc_t arg) -{ - return quotearg_n_custom_mem (n, left_quote, right_quote, - string_desc_data (arg), string_desc_length (arg)); -} - -GL_STRING_DESC_QUOTEARG_INLINE char * -string_desc_quotearg_custom (char const *left_quote, char const *right_quote, - string_desc_t arg) -{ - return quotearg_custom_mem (left_quote, right_quote, - string_desc_data (arg), string_desc_length (arg)); -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - - -#endif /* _STRING_DESC_QUOTEARG_H */ diff --git a/include/libgnulib/string-desc.h b/include/libgnulib/string-desc.h deleted file mode 100755 index 0b82871..0000000 --- a/include/libgnulib/string-desc.h +++ /dev/null @@ -1,238 +0,0 @@ -/* String descriptors. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2023. */ - -#ifndef _STRING_DESC_H -#define _STRING_DESC_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - _GL_ATTRIBUTE_NODISCARD. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get ptrdiff_t. */ -#include - -/* Get FILE. */ -#include - -/* Get abort(), free(). */ -#include - -/* Get idx_t. */ -#include "idx.h" - - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_STRING_DESC_INLINE -# define GL_STRING_DESC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Type describing a string that may contain NUL bytes. - It's merely a descriptor of an array of bytes. */ -typedef struct string_desc_t string_desc_t; -struct string_desc_t -{ - /* The fields of this struct should be considered private. */ - idx_t _nbytes; - char *_data; -}; - -/* String descriptors can be passed and returned by value. - - String descriptors and NUL-terminated 'const char *'/'char *' C strings - cannot be used interchangeably. You will get compilation errors if you - attempt to assign a string descriptor to a C string or vice versa. */ - - -/* ==== Side-effect-free operations on string descriptors ==== */ - -/* Return the length of the string S. */ -#if 0 /* Defined inline below. */ -extern idx_t string_desc_length (string_desc_t s); -#endif - -/* Return the byte at index I of string S. - I must be < length(S). */ -#if 0 /* Defined inline below. */ -extern char string_desc_char_at (string_desc_t s, idx_t i); -#endif - -/* Return a read-only view of the bytes of S. */ -#if 0 /* Defined inline below. */ -extern const char * string_desc_data (string_desc_t s); -#endif - -/* Return true if S is the empty string. */ -#if 0 /* Defined inline below. */ -extern bool string_desc_is_empty (string_desc_t s); -#endif - -/* Return true if A and B are equal. */ -extern bool string_desc_equals (string_desc_t a, string_desc_t b); - -/* Return true if S starts with PREFIX. */ -extern bool string_desc_startswith (string_desc_t s, string_desc_t prefix); - -/* Return true if S ends with SUFFIX. */ -extern bool string_desc_endswith (string_desc_t s, string_desc_t suffix); - -/* Return > 0, == 0, or < 0 if A > B, A == B, A < B. - This uses a lexicographic ordering, where the bytes are compared as - 'unsigned char'. */ -extern int string_desc_cmp (string_desc_t a, string_desc_t b); - -/* Return > 0, == 0, or < 0 if A > B, A == B, A < B. - Either A or B must be entirely ASCII. - This uses a lexicographic ordering, where the bytes are compared as - 'unsigned char', ignoring case, in the "C" locale. */ -extern int string_desc_c_casecmp (string_desc_t a, string_desc_t b); - -/* Return the index of the first occurrence of C in S, - or -1 if there is none. */ -extern ptrdiff_t string_desc_index (string_desc_t s, char c); - -/* Return the index of the last occurrence of C in S, - or -1 if there is none. */ -extern ptrdiff_t string_desc_last_index (string_desc_t s, char c); - -/* Return the index of the first occurrence of NEEDLE in HAYSTACK, - or -1 if there is none. */ -extern ptrdiff_t string_desc_contains (string_desc_t haystack, string_desc_t needle); - -/* Return an empty string. */ -extern string_desc_t string_desc_new_empty (void); - -/* Construct and return a string of length N, at the given memory address. */ -extern string_desc_t string_desc_new_addr (idx_t n, char *addr); - -/* Return a string that represents the C string S, of length strlen (S). */ -extern string_desc_t string_desc_from_c (const char *s); - -/* Return the substring of S, starting at offset START and ending at offset END. - START must be <= END. - The result is of length END - START. - The result must not be freed (since its storage is part of the storage - of S). */ -extern string_desc_t string_desc_substring (string_desc_t s, idx_t start, idx_t end); - -/* Output S to the file descriptor FD. - Return 0 if successful. - Upon error, return -1 with errno set. */ -extern int string_desc_write (int fd, string_desc_t s); - -/* Output S to the FILE stream FP. - Return 0 if successful. - Upon error, return -1. */ -extern int string_desc_fwrite (FILE *fp, string_desc_t s); - - -/* ==== Memory-allocating operations on string descriptors ==== */ - -/* Construct a string of length N, with uninitialized contents. - Return 0 if successful. - Upon error, return -1 with errno set. */ -_GL_ATTRIBUTE_NODISCARD -extern int string_desc_new (string_desc_t *resultp, idx_t n); - -/* Construct a string of length N, filled with C. - Return 0 if successful. - Upon error, return -1 with errno set. */ -_GL_ATTRIBUTE_NODISCARD -extern int string_desc_new_filled (string_desc_t *resultp, idx_t n, char c); - -/* Construct a copy of string S. - Return 0 if successful. - Upon error, return -1 with errno set. */ -_GL_ATTRIBUTE_NODISCARD -extern int string_desc_copy (string_desc_t *resultp, string_desc_t s); - -/* Construct the concatenation of N strings. N must be > 0. - Return 0 if successful. - Upon error, return -1 with errno set. */ -_GL_ATTRIBUTE_NODISCARD -extern int string_desc_concat (string_desc_t *resultp, idx_t n, string_desc_t string1, ...); - -/* Construct a copy of string S, as a NUL-terminated C string. - Return it is successful. - Upon error, return NULL with errno set. */ -extern char * string_desc_c (string_desc_t s) _GL_ATTRIBUTE_DEALLOC_FREE; - - -/* ==== Operations with side effects on string descriptors ==== */ - -/* Overwrite the byte at index I of string S with C. - I must be < length(S). */ -extern void string_desc_set_char_at (string_desc_t s, idx_t i, char c); - -/* Fill part of S, starting at offset START and ending at offset END, - with copies of C. - START must be <= END. */ -extern void string_desc_fill (string_desc_t s, idx_t start, idx_t end, char c); - -/* Overwrite part of S with T, starting at offset START. - START + length(T) must be <= length (S). */ -extern void string_desc_overwrite (string_desc_t s, idx_t start, string_desc_t t); - -/* Free S. */ -extern void string_desc_free (string_desc_t s); - - -/* ==== Inline function definitions ==== */ - -GL_STRING_DESC_INLINE idx_t -string_desc_length (string_desc_t s) -{ - return s._nbytes; -} - -GL_STRING_DESC_INLINE char -string_desc_char_at (string_desc_t s, idx_t i) -{ - if (!(i >= 0 && i < s._nbytes)) - /* Invalid argument. */ - abort (); - return s._data[i]; -} - -GL_STRING_DESC_INLINE const char * -string_desc_data (string_desc_t s) -{ - return s._data; -} - -GL_STRING_DESC_INLINE bool -string_desc_is_empty (string_desc_t s) -{ - return s._nbytes == 0; -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - - -#endif /* _STRING_DESC_H */ diff --git a/include/libgnulib/strnlen1.h b/include/libgnulib/strnlen1.h deleted file mode 100755 index 8943f3e..0000000 --- a/include/libgnulib/strnlen1.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _STRNLEN1_H -#define _STRNLEN1_H - -/* This file uses _GL_ATTRIBUTE_PURE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Find the length of STRING + 1, but scan at most MAXLEN bytes. - If no '\0' terminator is found in that many characters, return MAXLEN. */ -/* This is the same as strnlen (string, maxlen - 1) + 1. */ -extern size_t strnlen1 (const char *string, size_t maxlen) - _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _STRNLEN1_H */ diff --git a/include/libgnulib/struniq.h b/include/libgnulib/struniq.h deleted file mode 100755 index e67ea0f..0000000 --- a/include/libgnulib/struniq.h +++ /dev/null @@ -1,119 +0,0 @@ -/* Define a file-local string uniquification function. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2009. */ - - -/* This file needs the following includes: - - #include - #include - #include - #include "flexmember.h" - #include "glthread/lock.h" - #include "thread-optim.h" - - and the following gnulib modules as dependencies: - - flexmember - lock - stdbool - thread-optim - */ - - -/* Simple hash set of strings. We don't want to drag in lots of hash table - code here. */ - -#define SIZE_BITS (sizeof (size_t) * CHAR_BIT) - -/* A hash function for NUL-terminated char* strings using - the method described by Bruno Haible. - See https://www.haible.de/bruno/hashfunc.html. */ -static size_t _GL_ATTRIBUTE_PURE -string_hash (const void *x) -{ - const char *s = (const char *) x; - size_t h = 0; - - for (; *s; s++) - h = *s + ((h << 9) | (h >> (SIZE_BITS - 9))); - - return h; -} - -/* A hash table of fixed size. Multiple threads can access it read-only - simultaneously, but only one thread can insert into it at the same time. */ - -/* A node in a hash bucket collision list. */ -struct struniq_hash_node - { - struct struniq_hash_node * volatile next; - char contents[FLEXIBLE_ARRAY_MEMBER]; - }; - -#define STRUNIQ_HASH_TABLE_SIZE 257 -static struct struniq_hash_node * volatile struniq_hash_table[STRUNIQ_HASH_TABLE_SIZE] - /* = { NULL, ..., NULL } */; - -/* This lock protects the struniq_hash_table against multiple simultaneous - insertions. */ -gl_lock_define_initialized(static, struniq_lock) - -/* Store a copy of the given string in a string pool with indefinite extent. - Return a pointer to this copy. */ -static const char * -struniq (const char *string) -{ - size_t hashcode = string_hash (string); - size_t slot = hashcode % STRUNIQ_HASH_TABLE_SIZE; - size_t size; - struct struniq_hash_node *new_node; - struct struniq_hash_node *p; - for (p = struniq_hash_table[slot]; p != NULL; p = p->next) - if (strcmp (p->contents, string) == 0) - return p->contents; - size = strlen (string) + 1; - new_node = - (struct struniq_hash_node *) - malloc (FLEXSIZEOF (struct struniq_hash_node, contents, size)); - if (new_node == NULL) - /* Out of memory. Return a statically allocated string. */ - return "C"; - memcpy (new_node->contents, string, size); - { - bool mt = gl_multithreaded (); - /* Lock while inserting new_node. */ - if (mt) gl_lock_lock (struniq_lock); - /* Check whether another thread already added the string while we were - waiting on the lock. */ - for (p = struniq_hash_table[slot]; p != NULL; p = p->next) - if (strcmp (p->contents, string) == 0) - { - free (new_node); - new_node = p; - goto done; - } - /* Really insert new_node into the hash table. Fill new_node entirely - first, because other threads may be iterating over the linked list. */ - new_node->next = struniq_hash_table[slot]; - struniq_hash_table[slot] = new_node; - done: - /* Unlock after new_node is inserted. */ - if (mt) gl_lock_unlock (struniq_lock); - } - return new_node->contents; -} diff --git a/include/libgnulib/supersede.h b/include/libgnulib/supersede.h deleted file mode 100755 index f77d3c3..0000000 --- a/include/libgnulib/supersede.h +++ /dev/null @@ -1,156 +0,0 @@ -/* Open a file, without destroying an old file with the same name. - - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Bruno Haible, 2020. */ - -#ifndef _GL_SUPERSEDE_H -#define _GL_SUPERSEDE_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* When writing a file, for some usages it is important that at any moment, - a process that opens the file will see consistent data in the file. This - can be important in two situations: - * If supersede_if_exists == true, then when the file already existed, - it is important that a process that opens the file while the new file's - contents is being written sees consistent data - namely the old file's - data. - * If supersede_if_does_not_exist == true, then when the file did not exist, - it is important that a process that opens the file while the new file's - contents is being written sees no file (as opposed to a file with - truncated contents). - - In both situations, the effect is implemented by creating a temporary file, - writing into that temporary file, and renaming the temporary file when the - temporary file's contents is complete. - - Note that opening a file with superseding may fail when it would succeed - without superseding (for example, for a writable file in an unwritable - directory). And also the other way around: Opening a file with superseding - may succeed although it would fail without superseding (for example, for - an unwritable file in a writable directory). */ - -/* This type holds everything that needs to needs to be remembered in order to - execute the final rename action. */ -struct supersede_final_action -{ - char *final_rename_temp; - char *final_rename_dest; -}; - -/* =================== open() and close() with supersede =================== */ - -/* The typical code idiom is like this: - - struct supersede_final_action action; - int fd = open_supersede (filename, O_RDWR, mode, - supersede_if_exists, supersede_if_does_not_exist, - &action); - if (fd >= 0) - { - ... write the file's contents ... - if (successful) - { - if (close_supersede (fd, &action) < 0) - error (...); - } - else - { - // Abort the operation. - close (fd); - close_supersede (-1, &action); - } - } - */ - -/* Opens a file (typically for writing) in superseding mode, depending on - supersede_if_exists and supersede_if_does_not_exist. - FLAGS should not contain O_CREAT nor O_EXCL. - MODE is used when the file does not yet exist. The umask of the process - is considered, like in open(), i.e. the effective mode is - (MODE & ~ getumask ()). - Upon success, it fills in ACTION and returns a file descriptor. - Upon failure, it returns -1 and sets errno. */ -extern int open_supersede (const char *filename, int flags, mode_t mode, - bool supersede_if_exists, - bool supersede_if_does_not_exist, - struct supersede_final_action *action); - -/* Closes a file and executes the final rename action. - FD must have been returned by open_supersede(), or -1 if you want to abort - the operation. */ -extern int close_supersede (int fd, - const struct supersede_final_action *action); - -/* ================== fopen() and fclose() with supersede ================== */ - -/* The typical code idiom is like this: - - struct supersede_final_action action; - FILE *stream = - fopen_supersede (filename, O_RDWR, mode, - supersede_if_exists, supersede_if_does_not_exist, - &action); - if (stream != NULL) - { - ... write the file's contents ... - if (successful) - { - if (fclose_supersede (stream, &action) < 0) - error (...); - } - else - { - // Abort the operation. - fclose (stream); - fclose_supersede (NULL, &action); - } - } - */ - -/* Opens a file (typically for writing) in superseding mode, depending on - supersede_if_exists and supersede_if_does_not_exist. - Upon success, it fills in ACTION and returns a file stream. - Upon failure, it returns NULL and sets errno. */ -extern FILE *fopen_supersede (const char *filename, const char *mode, - bool supersede_if_exists, - bool supersede_if_does_not_exist, - struct supersede_final_action *action); - -/* Closes a file stream and executes the final rename action. - STREAM must have been returned by fopen_supersede(), or NULL if you want to - abort the operation. */ -extern int fclose_supersede (FILE *stream, - const struct supersede_final_action *action); - -/* Closes a file stream, like with fwriteerror, and executes the final rename - action. - STREAM must have been returned by fopen_supersede(), or NULL if you want to - abort the operation. */ -extern int fwriteerror_supersede (FILE *stream, - const struct supersede_final_action *action); - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_SUPERSEDE_H */ diff --git a/include/libgnulib/sys-limits.h b/include/libgnulib/sys-limits.h deleted file mode 100755 index d2f29d8..0000000 --- a/include/libgnulib/sys-limits.h +++ /dev/null @@ -1,42 +0,0 @@ -/* System call limits - - Copyright 2018-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_SYS_LIMITS_H -#define _GL_SYS_LIMITS_H - -#include - -/* Maximum number of bytes to read or write in a single system call. - This can be useful for system calls like sendfile on GNU/Linux, - which do not handle more than MAX_RW_COUNT bytes correctly. - The Linux kernel MAX_RW_COUNT is at least INT_MAX >> 20 << 20, - where the 20 comes from the Hexagon port with 1 MiB pages; use that - as an approximation, as the exact value may not be available to us. - - Using this also works around a serious Linux bug before 2.6.16; see - . - - Using this also works around a Tru64 5.1 bug, where attempting - to read INT_MAX bytes fails with errno == EINVAL. See - . - - Using this is likely to work around similar bugs in other operating - systems. */ - -enum { SYS_BUFSIZE_MAX = INT_MAX >> 20 << 20 }; - -#endif diff --git a/include/libgnulib/system-quote.h b/include/libgnulib/system-quote.h deleted file mode 100755 index ba9d704..0000000 --- a/include/libgnulib/system-quote.h +++ /dev/null @@ -1,108 +0,0 @@ -/* Quoting for a system command. - Copyright (C) 2001-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2012. - - 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 3 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, see . */ - -#ifndef _SYSTEM_QUOTE_H -#define _SYSTEM_QUOTE_H - -/* When passing a command the system's command interpreter, we must quote the - program name and arguments, since - - Unix shells interpret characters like " ", "'", "<", ">", "$", '*', '?' - etc. in a special way, - - Windows CreateProcess() interprets characters like ' ', '\t', '\\', '"' - etc. (but not '<' and '>') in a special way, - - Windows cmd.exe also interprets characters like '<', '>', '&', '%', etc. - in a special way. Note that it is impossible to pass arguments that - contain newlines or carriage return characters to programs through - cmd.exe. - - Windows programs usually perform wildcard expansion when they receive - arguments that contain unquoted '*', '?' characters. - - With this module, you can build a command that will invoke a program with - specific strings as arguments. - - Note: If you want wildcard expansion to happen, you have to first do wildcard - expansion through the 'glob' module, then quote the resulting strings through - this module, and then invoke the system's command interpreter. - - Limitations: - - When invoking native Windows programs on Windows Vista or newer, - wildcard expansion will occur in the invoked program nevertheless. - - On native Windows, for SCI_SYSTEM and SCI_WINDOWS_CMD, newlines and - carriage return characters are not supported. Their undesired effect - is to truncate the entire command line. - */ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Identifier for the kind of interpreter of the command. */ -enum system_command_interpreter -{ - /* The interpreter used by the system() and popen() functions. - This is equivalent to SCI_POSIX_SH on Unix platforms and - SCI_WINDOWS_CMD on native Windows platforms. */ - SCI_SYSTEM = 0 - /* The POSIX /bin/sh. */ - , SCI_POSIX_SH = 1 -#if defined _WIN32 && ! defined __CYGWIN__ - /* The native Windows CreateProcess() function. */ - , SCI_WINDOWS_CREATEPROCESS = 2 - /* The native Windows cmd.exe interpreter. */ - , SCI_WINDOWS_CMD = 3 -#endif -}; - -/* Returns the number of bytes needed for the quoted string. */ -extern size_t - system_quote_length (enum system_command_interpreter interpreter, - const char *string); - -/* Copies the quoted string to p and returns the incremented p. - There must be room for system_quote_length (string) + 1 bytes at p. */ -extern char * - system_quote_copy (char *restrict p, - enum system_command_interpreter interpreter, - const char *string); - -/* Returns the freshly allocated quoted string. */ -extern char * - system_quote (enum system_command_interpreter interpreter, - const char *string) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* Returns a freshly allocated string containing all argument strings, quoted, - separated through spaces. */ -extern char * - system_quote_argv (enum system_command_interpreter interpreter, - char * const *argv) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYSTEM_QUOTE_H */ diff --git a/include/libgnulib/t-idcache b/include/libgnulib/t-idcache deleted file mode 100755 index 0a08d49..0000000 --- a/include/libgnulib/t-idcache +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -# Compare the two halves (user and group) of idcache.c. -# Once xformed, they'd better be the same: - -pwd=`pwd` -t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$ -trap 'status=$?; cd "$pwd" && chmod -R u+rwx $t0 && rm -rf $t0 && exit $status' EXIT -trap '(exit $?); exit $?' HUP INT PIPE TERM - -srcdir=../.. -framework_failure=0 -mkdir -p $tmp || framework_failure=1 -cd $tmp || framework_failure=1 - -if test $framework_failure = 1; then - echo "$0: failure in testing framework" 1>&2 - (exit 1); exit 1 -fi - -# Extract user-oriented functions. -perl -ne \ - 'print if /^static struct.*user_alist/ .. /^static struct.*group_alist/' \ - $srcdir/idcache.c | head -n -3 > u -# Extract group-oriented functions. -perl -ne 'print if /^static struct.*group_alist/ .. eof' $srcdir/idcache.c > g - -# Convert user-specific strings of "u" into corresponding group-specific strings -subst=' -s/user_/group_/g; -s/\buser\b/group/g; -s/USER/GROUP/g; -s/\bu\b/g/g; -s/passwd/group/g; -s/pw_uid/gr_gid/g; -s/pwnam/grnam/g; -s/pwent/grent/g; -s/getpw/getgr/g; -s/pw_/gr_/g; -s/UID/GID/g; -s/uid/gid/g; -s/getuser/getgroup/; -s/login name/group name/; -s/to be the/to belong to/; -s/pwd fun/grp fun/; -' - -fail=0 -# Ensure that the transformed "u" is the same as g. -# Any differences here constitute an error. -perl -pe "$subst" u | diff -u - g || fail=1 - -exit $fail diff --git a/include/libgnulib/tempname.h b/include/libgnulib/tempname.h deleted file mode 100755 index 7cbdac9..0000000 --- a/include/libgnulib/tempname.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Create a temporary file or directory. - - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* header written by Eric Blake */ - -#ifndef GL_TEMPNAME_H -# define GL_TEMPNAME_H - -# include - -# ifdef __GT_FILE -# define GT_FILE __GT_FILE -# define GT_DIR __GT_DIR -# define GT_NOCREATE __GT_NOCREATE -# else -# define GT_FILE 0 -# define GT_DIR 1 -# define GT_NOCREATE 2 -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix). - The name constructed does not exist at the time of the call to - gen_tempname. TMPL is overwritten with the result. - - KIND may be one of: - GT_NOCREATE: simply verify that the name does not exist - at the time of the call. - GT_FILE: create a large file using open(O_CREAT|O_EXCL) - and return a read-write fd. The file is mode 0600. - GT_DIR: create a directory, which will be mode 0700. - - */ -extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind); -/* Similar, except X_SUFFIX_LEN gives the number of Xs. */ -extern int gen_tempname_len (char *tmpl, int suffixlen, int flags, int kind, - size_t x_suffix_len); - -/* Similar to gen_tempname, but TRYFUNC is called for each temporary - name to try. If TRYFUNC returns a non-negative number, TRY_GEN_TEMPNAME - returns with this value. Otherwise, if errno is set to EEXIST, another - name is tried, or else TRY_GEN_TEMPNAME returns -1. */ -extern int try_tempname (char *tmpl, int suffixlen, void *args, - int (*tryfunc) (char *, void *)); -/* Similar, except X_SUFFIX_LEN gives the number of Xs. */ -extern int try_tempname_len (char *tmpl, int suffixlen, void *args, - int (*tryfunc) (char *, void *), - size_t x_suffix_len); - -#ifdef __cplusplus -} -#endif - -#endif /* GL_TEMPNAME_H */ diff --git a/include/libgnulib/term-style-control.h b/include/libgnulib/term-style-control.h deleted file mode 100755 index 5b57f75..0000000 --- a/include/libgnulib/term-style-control.h +++ /dev/null @@ -1,185 +0,0 @@ -/* Terminal control for outputting styled text to a terminal. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2019. - - 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 3 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, see . */ - -#ifndef _TERM_STYLE_CONTROL_H -#define _TERM_STYLE_CONTROL_H - -/* The user of this file will define a macro 'term_style_user_data', such that - 'struct term_style_user_data' is a user-defined struct. */ - -/* This file uses _GL_ASYNC_SAFE, HAVE_TCGETATTR. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - - -/* The amount of control to take over the underlying tty in order to avoid - garbled output on the screen, due to interleaved output of escape sequences - and output from the kernel (such as when the kernel echoes user's input - or when the kernel prints '^C' after the user pressed Ctrl-C). */ -typedef enum -{ - TTYCTL_AUTO = 0, /* Automatic best-possible choice. */ - TTYCTL_NONE, /* No control. - Result: Garbled output can occur, and the terminal can - be left in any state when the program is interrupted. */ - TTYCTL_PARTIAL, /* Signal handling. - Result: Garbled output can occur, but the terminal will - be left in the default state when the program is - interrupted. */ - TTYCTL_FULL /* Signal handling and disabling echo and flush-upon-signal. - Result: No garbled output, and the terminal will - be left in the default state when the program is - interrupted. */ -} ttyctl_t; - -/* This struct contains data, used by implementation of this module. - You should not access the members of this struct; they may be renamed or - removed without notice. */ -struct term_style_control_data -{ - int volatile fd; - ttyctl_t volatile tty_control; /* Signal handling and tty control. */ - #if HAVE_TCGETATTR - bool volatile same_as_stderr; - #endif - bool non_default_active; /* True if activate_term_non_default_mode() - is in effect. */ -}; - -/* Forward declaration. */ -struct term_style_user_data; - -/* This struct contains function pointers. You implement these functions - in your application; this module invokes them when it needs to. */ -struct term_style_controller -{ - /* This function returns a pointer to the embedded - 'struct term_style_control_data' contained in a - 'struct term_style_user_data'. */ - struct term_style_control_data * (*get_control_data) (struct term_style_user_data *); - - /* This function brings the terminal's state back to the default state - (no styling attributes set). It is invoked when the process terminates - through exit(). */ - void (*restore) (struct term_style_user_data *); - - /* This function brings the terminal's state back to the default state - (no styling attributes set). It is async-safe (see gnulib-common.m4 for - the precise definition). It is invoked when the process receives a fatal - or stopping signal. */ - _GL_ASYNC_SAFE void (*async_restore) (struct term_style_user_data *); - - /* This function brings the terminal's state, from the default state, back - to the state where it has the desired attributes set. It is async-safe - (see gnulib-common.m4 for the precise definition). It is invoked when - the process receives a SIGCONT signal. */ - _GL_ASYNC_SAFE void (*async_set_attributes_from_default) (struct term_style_user_data *); -}; - - -#ifdef __cplusplus -extern "C" { -#endif - -/* This module is used as follows: - 1. You fill a 'struct term_style_controller' with function pointers. - You create a 'struct term_style_user_data' that contains, among other - members, a 'struct term_style_control_data'. - You will pass these two objects to all API functions below. - 2. You call activate_term_style_controller to activate this controller. - Activation of the controller is the prerequisite for activating - the non-default mode, which in turn is the prerequisite for changing - the terminal's attributes. - When you are done with the styled output, you may deactivate the - controller. This is not required before exiting the program, but is - required before activating a different controller. - You cannot have more than one controller activated at the same time. - 3. Once the controller is activated, you may turn on the non-default mode. - The non-default mode is the prerequisite for changing the terminal's - attributes. Once the terminal's attributes are in the default state - again, you may turn off the non-default mode again. - In other words: - - In the default mode, the terminal's attributes MUST be in the default - state; no styled output is possible. - - In the non-default mode, the terminal's attributes MAY switch among - the default state and other states. - This module exercises a certain amount of control over the terminal - during the non-default mode phases; see above (ttyctl_t) for details. - You may switch between the default and the non-default modes any number - of times. - The idea is that you switch back to the default mode before doing large - amounts of output of unstyled text. However, this is not a requirement: - You may leave the non-default mode turned on all the time until the - the program exits. - 4. Once the non-default mode is activated, you may change the attributes - (foreground color, background color, font weight, font posture, underline - decoration, etc.) of the terminal. On Unix, this is typically done by - outputting appropriate escape sequences. - 5. Once attributes are set, text output to the terminal will be rendered - with these attributes. - Note: You MUST return the terminal to the default state before outputting - a newline. - */ - -/* Activates a controller. The CONTROLLER and its USER_DATA controls the - terminal associated with FD. FD is usually STDOUT_FILENO. - TTY_CONTROL specifies the amount of control to take over the underlying tty. - The effects of this functions are undone by calling - deactivate_term_style_controller. - You cannot have more than one controller activated at the same time. - You must not close FD while the controller is active. */ -extern void - activate_term_style_controller (const struct term_style_controller *controller, - struct term_style_user_data *user_data, - int fd, ttyctl_t tty_control); - -/* Activates the non-default mode. - CONTROLLER and its USER_DATA must be a currently active controller. - This function fiddles with the signals of the current process and with - the underlying tty, to an extent described by TTY_CONTROL. - This function is idempotent: When you call it twice in a row, the second - invocation does nothing. - The effects of this function are undone by calling - deactivate_term_non_default_mode. */ -extern void - activate_term_non_default_mode (const struct term_style_controller *controller, - struct term_style_user_data *user_data); - -/* Deactivates the non-default mode. - CONTROLLER and its USER_DATA must be a currently active controller. - This function is idempotent: When you call it twice in a row, the second - invocation does nothing. - Before invoking this function, you must put the terminal's attributes in - the default state. */ -extern void - deactivate_term_non_default_mode (const struct term_style_controller *controller, - struct term_style_user_data *user_data); - -/* Deactivates a controller. - CONTROLLER and its USER_DATA must be a currently active controller. - Before invoking this function, you must ensure that the non-default mode - is deactivated. */ -extern void - deactivate_term_style_controller (const struct term_style_controller *controller, - struct term_style_user_data *user_data); - -#ifdef __cplusplus -} -#endif - -#endif /* _TERM_STYLE_CONTROL_H */ diff --git a/include/libgnulib/termcap.h b/include/libgnulib/termcap.h deleted file mode 100755 index 0cd472d..0000000 --- a/include/libgnulib/termcap.h +++ /dev/null @@ -1,123 +0,0 @@ -/* Information about terminal capabilities. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2006. */ - -#ifndef _TERMCAP_H -#define _TERMCAP_H - -/* This file uses HAVE_TERMCAP, HAVE_TERMINFO, HAVE_TPARAM. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Including or is dangerous, because it also declares - a lot of junk, such as variables PC, UP, and other. */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if HAVE_TERMCAP - -/* Gets the capability information for terminal type TYPE. - BP must point to a buffer, at least 2048 bytes large. - Returns 1 if successful, 0 if TYPE is unknown, -1 on other error. */ -extern int tgetent (char *bp, const char *type); - -/* Retrieves the value of a numerical capability. - Returns -1 if it is not available. */ -extern int tgetnum (const char *id); - -/* Retrieves the value of a boolean capability. - Returns 1 if it available, 0 otherwise. */ -extern int tgetflag (const char *id); - -/* Retrieves the value of a string capability. - Returns NULL if it is not available. - Also, if AREA != NULL, stores it at *AREA and advances *AREA. */ -extern const char * tgetstr (const char *id, char **area); - -#endif - -#if HAVE_TERMINFO - -/* Gets the capability information for terminal type TYPE and prepares FD. - Returns 0 if successful, -1 upon error. If ERRP is non-NULL, also returns - an error indicator in *ERRP; otherwise an error is signalled. */ -extern int setupterm (const char *type, int fd, int *errp); - -/* Retrieves the value of a numerical capability. - Returns -1 if it is not available, -2 if ID is invalid. */ -extern int tigetnum (const char *id); - -/* Retrieves the value of a boolean capability. - Returns 1 if it available, 0 if not available, -1 if ID is invalid. */ -extern int tigetflag (const char *id); - -/* Retrieves the value of a string capability. - Returns NULL if it is not available, (char *)(-1) if ID is invalid. */ -extern const char * tigetstr (const char *id); - -#endif - -#if HAVE_TPARAM - -/* API provided by GNU termcap in . */ - -/* Instantiates a string capability with format strings. - BUF must be a buffer having room for BUFSIZE bytes. - The return value is either equal to BUF or freshly malloc()ed. */ -extern char * tparam (const char *str, void *buf, int bufsize, ...); - -#else - -/* API provided by - - GNU ncurses in , , , - - OSF/1 curses in , , - - Solaris, AIX, HP-UX, IRIX curses in , - - gnulib's replacement. */ - -/* Instantiates a string capability with format strings. - The return value is statically allocated and must not be freed. */ -extern char * tparm (const char *str, ...); - -#endif - -#if HAVE_TERMCAP || HAVE_TERMINFO - -/* Retrieves a string that causes cursor positioning to (column, row). - This function is necessary because the string returned by tgetstr ("cm") - is in a special format. */ -extern const char * tgoto (const char *cm, int column, int row); - -#endif - -/* Retrieves the value of a string capability. - OUTCHARFUN is called in turn for each 'char' of the result. - This function is necessary because string capabilities can contain - padding commands. */ -extern void tputs (const char *cp, int affcnt, int (*outcharfun) (int)); - -/* The ncurses functions for color handling (see ncurses/base/lib_color.c) - are overkill: Most terminal emulators support only a fixed, small number - of colors. */ - -#ifdef __cplusplus -} -#endif - -#endif /* _TERMCAP_H */ diff --git a/include/libgnulib/terminfo.h b/include/libgnulib/terminfo.h deleted file mode 100755 index 1c5f111..0000000 --- a/include/libgnulib/terminfo.h +++ /dev/null @@ -1,121 +0,0 @@ -/* Information about terminal capabilities. - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2006. */ - -#ifndef _TERMINFO_H -#define _TERMINFO_H - -/* This file uses HAVE_TERMINFO, HAVE_TERMCAP, HAVE_TPARAM. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Including or is dangerous, because it also declares - a lot of junk, such as variables PC, UP, and other. */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if HAVE_TERMINFO - -/* Gets the capability information for terminal type TYPE and prepares FD. - Returns 0 if successful, -1 upon error. If ERRP is non-NULL, also returns - an error indicator in *ERRP; otherwise an error is signalled. */ -extern int setupterm (const char *type, int fd, int *errp); - -/* Retrieves the value of a numerical capability. - Returns -1 if it is not available, -2 if ID is invalid. */ -extern int tigetnum (const char *id); - -/* Retrieves the value of a boolean capability. - Returns 1 if it available, 0 if not available, -1 if ID is invalid. */ -extern int tigetflag (const char *id); - -/* Retrieves the value of a string capability. - Returns NULL if it is not available, (char *)(-1) if ID is invalid. */ -extern const char * tigetstr (const char *id); - -#elif HAVE_TERMCAP - -/* Gets the capability information for terminal type TYPE. - BP must point to a buffer, at least 2048 bytes large. - Returns 1 if successful, 0 if TYPE is unknown, -1 on other error. */ -extern int tgetent (char *bp, const char *type); - -/* Retrieves the value of a numerical capability. - Returns -1 if it is not available. */ -extern int tgetnum (const char *id); - -/* Retrieves the value of a boolean capability. - Returns 1 if it available, 0 otherwise. */ -extern int tgetflag (const char *id); - -/* Retrieves the value of a string capability. - Returns NULL if it is not available. - Also, if AREA != NULL, stores it at *AREA and advances *AREA. */ -extern const char * tgetstr (const char *id, char **area); - -#endif - -#if HAVE_TPARAM - -/* API provided by GNU termcap in . */ - -/* Instantiates a string capability with format strings. - BUF must be a buffer having room for BUFSIZE bytes. - The return value is either equal to BUF or freshly malloc()ed. */ -extern char * tparam (const char *str, void *buf, int bufsize, ...); - -#else - -/* API provided by - - GNU ncurses in , , , - - OSF/1 curses in , , - - Solaris, AIX, HP-UX, IRIX curses in , - - gnulib's replacement. */ - -/* Instantiates a string capability with format strings. - The return value is statically allocated and must not be freed. */ -extern char * tparm (const char *str, ...); - -#endif - -#if HAVE_TERMINFO || HAVE_TERMCAP - -/* Retrieves a string that causes cursor positioning to (column, row). - This function is necessary because the string returned by tgetstr ("cm") - is in a special format. */ -extern const char * tgoto (const char *cm, int column, int row); - -#endif - -/* Retrieves the value of a string capability. - OUTCHARFUN is called in turn for each 'char' of the result. - This function is necessary because string capabilities can contain - padding commands. */ -extern void tputs (const char *cp, int affcnt, int (*outcharfun) (int)); - -/* The ncurses functions for color handling (see ncurses/base/lib_color.c) - are overkill: Most terminal emulators support only a fixed, small number - of colors. */ - -#ifdef __cplusplus -} -#endif - -#endif /* _TERMINFO_H */ diff --git a/include/libgnulib/thread-optim.h b/include/libgnulib/thread-optim.h deleted file mode 100755 index 4bcc8af..0000000 --- a/include/libgnulib/thread-optim.h +++ /dev/null @@ -1,65 +0,0 @@ -/* Optimization of multithreaded code. - - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -#ifndef _THREAD_OPTIM_H -#define _THREAD_OPTIM_H - -/* This file defines a way to optimize multithreaded code for the single-thread - case, based on the variable '__libc_single_threaded', defined in - glibc >= 2.32. */ - -/* Typical use: In a block or function, use - - bool mt = gl_multithreaded (); - ... - if (mt) - if (pthread_mutex_lock (&lock)) abort (); - ... - if (mt) - if (pthread_mutex_unlock (&lock)) abort (); - - The gl_multithreaded () invocation determines whether the program currently - is multithreaded. - - if (mt) STATEMENT executes STATEMENT in the multithreaded case, and skips - it in the single-threaded case. - - The code between the gl_multithreaded () invocation and any use of the - variable 'mt' must not create threads or invoke functions that may - indirectly create threads (e.g. 'dlopen' may, indirectly through C++ - initializers of global variables in the shared library being opened, - create threads). - - The lock here is meant to synchronize threads in the same process. The - same optimization cannot be applied to locks that synchronize different - processes (e.g. through shared memory mappings). */ - -/* This file uses HAVE_SYS_SINGLE_THREADED_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if HAVE_SYS_SINGLE_THREADED_H /* glibc >= 2.32 */ -# include -# define gl_multithreaded() (!__libc_single_threaded) -#else -# define gl_multithreaded() 1 -#endif - -#endif /* _THREAD_OPTIM_H */ diff --git a/include/libgnulib/time-internal.h b/include/libgnulib/time-internal.h deleted file mode 100755 index 3d778ba..0000000 --- a/include/libgnulib/time-internal.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Time internal interface - - Copyright 2015-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -/* This file is for Gnulib internal use only. - Applications should not use it. */ - -/* A time zone rule. */ -struct tm_zone -{ - /* More abbreviations, should they be needed. Their TZ_IS_SET - members are zero. */ - struct tm_zone *next; - - /* If nonzero, the rule represents the TZ environment variable set - to the first "abbreviation" (this may be the empty string). - Otherwise, it represents an unset TZ. */ - char tz_is_set; - - /* A sequence of null-terminated strings packed next to each other. - The strings are followed by an extra null byte. If TZ_IS_SET, - there must be at least one string and the first string (which is - actually a TZ environment value) may be empty. Otherwise all - strings must be nonempty. - - Abbreviations are stored here even on platforms with tm_zone, because - otherwise tm_zone values would be dead after changing TZ and calling - tzset. Abbreviations never move once allocated, and are live - until tzfree is called. */ - char abbrs[FLEXIBLE_ARRAY_MEMBER]; -}; - -timezone_t set_tz (timezone_t); -bool revert_tz (timezone_t); - -/* Magic cookie timezone_t value, for local time. It differs from - NULL and from all other timezone_t values. Only the address - matters; the pointer is never dereferenced. */ -#define local_tz ((timezone_t) 1) diff --git a/include/libgnulib/timespec.h b/include/libgnulib/timespec.h deleted file mode 100755 index 69ce348..0000000 --- a/include/libgnulib/timespec.h +++ /dev/null @@ -1,102 +0,0 @@ -/* timespec -- System time interface - - Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2024 Free Software - Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#if ! defined TIMESPEC_H -#define TIMESPEC_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_ATTRIBUTE_CONST, - _GL_ATTRIBUTE_PURE, _GL_CMP. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_TIMESPEC_INLINE -# define _GL_TIMESPEC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include "arg-nonnull.h" - -/* Inverse resolution of timespec timestamps (in units per second), - and log base 10 of the inverse resolution. */ - -enum { TIMESPEC_HZ = 1000000000 }; -enum { LOG10_TIMESPEC_HZ = 9 }; - -/* Obsolescent names for backward compatibility. - They are misnomers, because TIMESPEC_RESOLUTION is not a resolution. */ - -enum { TIMESPEC_RESOLUTION = TIMESPEC_HZ }; -enum { LOG10_TIMESPEC_RESOLUTION = LOG10_TIMESPEC_HZ }; - -/* Return a timespec with seconds S and nanoseconds NS. */ - -_GL_TIMESPEC_INLINE struct timespec -make_timespec (time_t s, long int ns) -{ - return (struct timespec) { .tv_sec = s, .tv_nsec = ns }; -} - -/* Return negative, zero, positive if A < B, A == B, A > B, respectively. */ - -_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE -timespec_cmp (struct timespec a, struct timespec b) -{ - return 2 * _GL_CMP (a.tv_sec, b.tv_sec) + _GL_CMP (a.tv_nsec, b.tv_nsec); -} - -/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be - nonnegative. */ -_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE -timespec_sign (struct timespec a) -{ - return _GL_CMP (a.tv_sec, 0) + (!a.tv_sec & !!a.tv_nsec); -} - -struct timespec timespec_add (struct timespec, struct timespec) - _GL_ATTRIBUTE_CONST; -struct timespec timespec_sub (struct timespec, struct timespec) - _GL_ATTRIBUTE_CONST; -struct timespec dtotimespec (double) - _GL_ATTRIBUTE_CONST; - -/* Return an approximation to A, of type 'double'. */ -_GL_TIMESPEC_INLINE double -timespectod (struct timespec a) -{ - return a.tv_sec + a.tv_nsec / 1e9; -} - -long int gettime_res (void); -struct timespec current_timespec (void); -void gettime (struct timespec *) _GL_ARG_NONNULL ((1)); -int settime (struct timespec const *) _GL_ARG_NONNULL ((1)); - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/timevar.def b/include/libgnulib/timevar.def deleted file mode 100755 index acfa0a4..0000000 --- a/include/libgnulib/timevar.def +++ /dev/null @@ -1,52 +0,0 @@ -/* This file contains the definitions for timing variables used to -*- C -*- - measure run-time performance of the compiler. - - Copyright (C) 2002, 2007, 2009-2015, 2018-2024 Free Software Foundation, - Inc. - - Contributed by Akim Demaille . - - 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 3 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, see . */ - -/* This file contains the list of timing variable definitions, used by - timevar.h and timevar.c. - - Syntax: - - DEFTIMEVAR (Id, Name) - - where: - - - Id is the value used to identify the timing variable. - It's an enum value, i.e., behaves like a nonnegative integer. - It is used only the manipulate the timer: the user of the - program will never see this identifier. - - - Name is a string describing its purpose. This string - will be presented to the user in the timing tables. It does not - need to be a literal, you may for instance use gettext. - - The order of this list matters: that is the order in which the - timing table is printed, except that 'tv_total' is printed last. - */ - -/* The total execution time. Mandatory. */ -DEFTIMEVAR (tv_total, "total time") - -/* Examples. */ -DEFTIMEVAR (tv_read, "read") -DEFTIMEVAR (tv_work, "work") -DEFTIMEVAR (tv_work_1, "work: phase 1") -DEFTIMEVAR (tv_work_2, "work: phase 2") -DEFTIMEVAR (tv_output, "output") diff --git a/include/libgnulib/timevar.h b/include/libgnulib/timevar.h deleted file mode 100755 index d7d05e7..0000000 --- a/include/libgnulib/timevar.h +++ /dev/null @@ -1,138 +0,0 @@ -/* Timing variables for measuring application performance. - - Copyright (C) 2000, 2002, 2004, 2009-2015, 2018-2024 Free Software - Foundation, Inc. - - Contributed by Alex Samuel - - 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 3 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, see . */ - -#ifndef _TIMEVAR_H -# define _TIMEVAR_H 1 - -# include - -# include "xtime.h" - -# ifdef __cplusplus -extern "C" { -# endif - -/* Timing variables are used to measure elapsed time in various - portions of the application. Each measures elapsed user, system, and - wall-clock time, as appropriate to and supported by the host - system. - - Timing variables are defined using the DEFTIMEVAR macro in - timevar.def. Each has an identifier of type timevar_id_t, used to refer - to the timing variable in code, and a character string name. - - Timing variables can be used in two ways: - - - On the timing stack, using timevar_push and timevar_pop. - Timing variables may be pushed onto the stack; elapsed time is - attributed to the topmost timing variable on the stack. When - another variable is pushed on, the previous topmost variable is - 'paused' until the pushed variable is popped back off. - - - As a standalone timer, using timevar_start and timevar_stop. - All time elapsed between the two calls is attributed to the - variable. -*/ - -/* This structure stores the various varieties of time that can be - measured. Times are stored in seconds. The time may be an - absolute time or a time difference; in the former case, the time - base is undefined, except that the difference between two times - produces a valid time difference. */ - -struct timevar_time_def -{ - /* User time in this process. */ - xtime_t user; - - /* System time (if applicable for this host platform) in this - process. */ - xtime_t sys; - - /* Wall clock time. */ - xtime_t wall; -}; - -/* An enumeration of timing variable identifiers. Constructed from - the contents of timevar.def. */ - -#define DEFTIMEVAR(identifier__, name__) \ - identifier__, -typedef enum -{ -#include "timevar.def" - TIMEVAR_LAST -} -timevar_id_t; -#undef DEFTIMEVAR - -/* Initialize timing variables. */ - -void timevar_init (void); - -/* Push TIMEVAR onto the timing stack. No further elapsed time is - attributed to the previous topmost timing variable on the stack; - subsequent elapsed time is attributed to TIMEVAR, until it is - popped or another element is pushed on top. - - TIMEVAR cannot be running as a standalone timer. */ - -void timevar_push (timevar_id_t timevar); - -/* Pop the topmost timing variable element off the timing stack. The - popped variable must be TIMEVAR. Elapsed time since the that - element was pushed on, or since it was last exposed on top of the - stack when the element above it was popped off, is credited to that - timing variable. */ - -void timevar_pop (timevar_id_t timevar); - -/* Start timing TIMEVAR independently of the timing stack. Elapsed - time until timevar_stop is called for the same timing variable is - attributed to TIMEVAR. */ - -void timevar_start (timevar_id_t timevar); - -/* Stop timing TIMEVAR. Time elapsed since timevar_start was called - is attributed to it. */ - -void timevar_stop (timevar_id_t timevar); - -/* Fill the elapsed time for TIMEVAR into ELAPSED. Returns - update-to-date information even if TIMEVAR is currently running. */ - -void timevar_get (timevar_id_t timevar, struct timevar_time_def *elapsed); - -/* Summarize timing variables to FP. The timing variable TV_TOTAL has - a special meaning -- it's considered to be the total elapsed time, - for normalizing the others, and is displayed last. */ - -void timevar_print (FILE *fp); - -/* Set to to nonzero to enable timing variables. All the timevar - functions make an early exit if timevar is disabled. */ - -extern int timevar_enabled; - -# ifdef __cplusplus -} -# endif - -#endif /* ! _TIMEVAR_H */ diff --git a/include/libgnulib/tmpdir.h b/include/libgnulib/tmpdir.h deleted file mode 100755 index f5493ae..0000000 --- a/include/libgnulib/tmpdir.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Determine a temporary directory. - Copyright (C) 2001-2002, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is - non-null and exists, uses it; otherwise uses the first of $TMPDIR, - P_tmpdir, /tmp that exists. Copies into TMPL a template suitable - for use with mk[s]temp. Will fail (-1) if DIR is non-null and - doesn't exist, none of the searched dirs exists, or there's not - enough space in TMPL. */ -extern int path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, bool try_tmpdir); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/towctrans-impl.h b/include/libgnulib/towctrans-impl.h deleted file mode 100755 index 47fdfed..0000000 --- a/include/libgnulib/towctrans-impl.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Convert a wide character using a case mapping. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -wint_t -towctrans (wint_t wc, wctrans_t desc) -{ - return ((wint_t (*) (wint_t)) desc) (wc); -} diff --git a/include/libgnulib/trigl.h b/include/libgnulib/trigl.h deleted file mode 100755 index ac3e3ad..0000000 --- a/include/libgnulib/trigl.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Declarations for sinl, cosl, tanl internal functions. -*- coding: utf-8 -*- - Contributed by Paolo Bonzini - - Copyright 2002-2003, 2009-2024 Free Software Foundation, Inc. - - This file is part of gnulib. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Decompose x into x = k * π/2 + r - where k is an integer and abs(r) <= π/4. - Store r in y[0] and y[1] (main part in y[0], small additional part in - y[1], r = y[0] + y[1]). - Return k. */ -extern int ieee754_rem_pio2l (long double x, long double *y); - -/* Compute and return sinl (x + y), where x is the main part and y is the - small additional part of a floating-point number. - iy is 0 when y is known to be 0.0, otherwise iy is 1. */ -extern long double kernel_sinl (long double x, long double y, int iy); - -/* Compute and return cosl (x + y), where x is the main part and y is the - small additional part of a floating-point number. */ -extern long double kernel_cosl (long double x, long double y); diff --git a/include/libgnulib/trim.h b/include/libgnulib/trim.h deleted file mode 100755 index 33a5fee..0000000 --- a/include/libgnulib/trim.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Removes leading and/or trailing whitespaces - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Davide Angelocola */ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Trim mode. */ -#define TRIM_TRAILING 0 -#define TRIM_LEADING 1 -#define TRIM_BOTH 2 - -/* Removes trailing and leading whitespaces. */ -#define trim(s) trim2(s, TRIM_BOTH) - -/* Removes trailing whitespaces. */ -#define trim_trailing(s) trim2(s, TRIM_TRAILING) - -/* Removes leading whitespaces. */ -#define trim_leading(s) trim2(s, TRIM_LEADING) - -char *trim2 (const char *, int) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/u64.h b/include/libgnulib/u64.h deleted file mode 100755 index cfb5588..0000000 --- a/include/libgnulib/u64.h +++ /dev/null @@ -1,211 +0,0 @@ -/* uint64_t-like operations that work even on hosts lacking uint64_t - - Copyright (C) 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#include - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_U64_INLINE -# define _GL_U64_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef UINT64_MAX - -/* Native implementations are trivial. See below for comments on what - these operations do. */ -typedef uint64_t u64; -# define u64hilo(hi, lo) ((u64) (((u64) (hi) << 32) + (lo))) -# define u64init(hi, lo) u64hilo (hi, lo) -# define u64lo(x) ((u64) (x)) -# define u64size(x) u64lo (x) -# define u64lt(x, y) ((x) < (y)) -# define u64and(x, y) ((x) & (y)) -# define u64or(x, y) ((x) | (y)) -# define u64xor(x, y) ((x) ^ (y)) -# define u64plus(x, y) ((x) + (y)) -# define u64shl(x, n) ((x) << (n)) -# define u64shr(x, n) ((x) >> (n)) -# define u64bswap(x) bswap_64 (x) - -#else - -# define _GL_U64_MASK32 0xfffffffful /* 2**32 - 1. */ - -/* u64 represents a 64-bit unsigned integer value equal to (HI << 32) + LO. - Implement it with unsigned int, which the GNU coding standards say - is wide enough to hold 32 bits, and which does not signal an error - when adding (theoretically possible with types like uint_fast32_t). - u64init (HI, LO), is like u64hilo (HI, LO), but for use in - initializer contexts. */ -# ifdef WORDS_BIGENDIAN -typedef struct { unsigned int hi, lo; } u64; -# define u64init(hi, lo) { hi, lo } -# else -typedef struct { unsigned int lo, hi; } u64; -# define u64init(hi, lo) { lo, hi } -# endif - -/* Given the high and low-order 32-bit quantities HI and LO, return a u64 - value representing (HI << 32) + LO. */ -_GL_U64_INLINE u64 -u64hilo (unsigned int hi, unsigned int lo) -{ - u64 r; - r.hi = hi; - r.lo = lo; - return r; -} - -/* Return a u64 value representing the 32-bit quantity LO. */ -_GL_U64_INLINE u64 -u64lo (unsigned int lo) -{ - u64 r; - r.hi = 0; - r.lo = lo; - return r; -} - -/* Return a u64 value representing SIZE, where 0 <= SIZE < 2**64. */ -_GL_U64_INLINE u64 -u64size (size_t size) -{ - u64 r; - r.hi = size >> 31 >> 1; - r.lo = size & _GL_U64_MASK32; - return r; -} - -/* Return X < Y. */ -_GL_U64_INLINE bool -u64lt (u64 x, u64 y) -{ - return x.hi < y.hi || (x.hi == y.hi && x.lo < y.lo); -} - -/* Return X & Y. */ -_GL_U64_INLINE u64 -u64and (u64 x, u64 y) -{ - u64 r; - r.hi = x.hi & y.hi; - r.lo = x.lo & y.lo; - return r; -} - -/* Return X | Y. */ -_GL_U64_INLINE u64 -u64or (u64 x, u64 y) -{ - u64 r; - r.hi = x.hi | y.hi; - r.lo = x.lo | y.lo; - return r; -} - -/* Return X ^ Y. */ -_GL_U64_INLINE u64 -u64xor (u64 x, u64 y) -{ - u64 r; - r.hi = x.hi ^ y.hi; - r.lo = x.lo ^ y.lo; - return r; -} - -/* Return X + Y, wrapping around on overflow. */ -_GL_U64_INLINE u64 -u64plus (u64 x, u64 y) -{ - u64 r; - r.lo = (x.lo + y.lo) & _GL_U64_MASK32; - r.hi = (x.hi + y.hi + (r.lo < x.lo)) & _GL_U64_MASK32; - return r; -} - -/* Return X << N, where 0 <= N < 64. */ -_GL_U64_INLINE u64 -u64shl (u64 x, int n) -{ - u64 r; - if (n < 32) - { - r.hi = (x.hi << n & _GL_U64_MASK32) | x.lo >> (32 - n); - r.lo = x.lo << n & _GL_U64_MASK32; - } - else - { - r.hi = x.lo << (n - 32) & _GL_U64_MASK32; - r.lo = 0; - } - return r; -} - -/* Return X >> N. */ -_GL_U64_INLINE u64 -u64shr (u64 x, int n) -{ - u64 r; - if (n < 32) - { - r.hi = x.hi >> n; - r.lo = (x.hi << (32 - n) & _GL_U64_MASK32) | x.lo >> n; - } - else - { - r.hi = 0; - r.lo = x.hi >> (n - 32); - } - return r; -} - -/* Return X with bytes in reverse order. */ -_GL_U64_INLINE u64 -u64bswap (u64 x) -{ - return u64hilo (bswap_32 (x.lo), bswap_32 (x.hi)); -} - -#endif - -/* Return X rotated left by N bits, where 0 < N < 64. */ -_GL_U64_INLINE u64 -u64rol (u64 x, int n) -{ - return u64or (u64shl (x, n), u64shr (x, 64 - n)); -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END diff --git a/include/libgnulib/unicase/cased.h b/include/libgnulib/unicase/cased.h deleted file mode 100755 index 16e548e..0000000 --- a/include/libgnulib/unicase/cased.h +++ /dev/null @@ -1,407 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Casing Properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 -static const -struct - { - int header[1]; - int level1[2]; - short level2[2 << 7]; - unsigned int level3[25 << 4]; - } -u_casing_property_cased = -{ - { 2 }, - { - 3 * sizeof (int) / sizeof (short) + 0, - 3 * sizeof (int) / sizeof (short) + 128 - }, - { - 3 + 256 * sizeof (short) / sizeof (int) + 0, - 3 + 256 * sizeof (short) / sizeof (int) + 16, - 3 + 256 * sizeof (short) / sizeof (int) + 32, - -1, - -1, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 48, - 3 + 256 * sizeof (short) / sizeof (int) + 64, - -1, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 80, - 3 + 256 * sizeof (short) / sizeof (int) + 96, - 3 + 256 * sizeof (short) / sizeof (int) + 112, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 128, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 144, - -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, - 3 + 256 * sizeof (short) / sizeof (int) + 160, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 176, - -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, - 3 + 256 * sizeof (short) / sizeof (int) + 192, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 208, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 224, - 3 + 256 * sizeof (short) / sizeof (int) + 240, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 256, - -1, - -1, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 272, - -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, - 3 + 256 * sizeof (short) / sizeof (int) + 288, - -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, - 3 + 256 * sizeof (short) / sizeof (int) + 304, - 3 + 256 * sizeof (short) / sizeof (int) + 320, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 336, - 3 + 256 * sizeof (short) / sizeof (int) + 352, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 368, - -1, - -1, - -1, - 3 + 256 * sizeof (short) / sizeof (int) + 384, - -1, - -1, - -1, - -1, - -1, - -1, - -1 - }, - { - 0x00000000U, 0x00000000U, 0x07FFFFFEU, 0x07FFFFFEU, - 0x00000000U, 0x04200400U, 0xFF7FFFFFU, 0xFF7FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xF7FFFFFFU, 0xFFFFFFF0U, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFEFFFFFU, 0x01FFFFFFU, 0x00000003U, 0x0000001FU, - 0x00000000U, 0x00000000U, 0x00000020U, 0xBCCF0000U, - 0xFFFFD740U, 0xFFFFFFFBU, 0xFFFFFFFFU, 0xFFBFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFC03U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFEFFFFU, 0x007FFFFFU, 0xFFFFFFFFU, - 0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFFFFFFU, 0xFFFF20BFU, 0xF7FFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3F3FFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFF07FFU, 0xE7FFFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x3F3FFFFFU, 0xFFFFFFFFU, 0xAAFF3F3FU, 0x3FFFFFFFU, - 0xFFFFFFFFU, 0x5FDFFFFFU, 0x0FCF1FDCU, 0x1FDC1FFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x80020000U, - 0x1FFF0000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x3E2FFC84U, 0xF21FBD50U, 0x000043E0U, 0xFFFFFFFFU, - 0x00000018U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFC00000U, 0xFFFFFFFFU, 0x000003FFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000C781FU, - 0xFFFFFFFFU, 0x000020BFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0x00003FFFU, - 0x3FFFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFFFFFCU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFF78FFU, 0xFFFFFFFFU, 0x1FEB3FFFU, 0x077C0000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFF0000U, 0xF7FFFFFFU, 0xFFFF03FFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00F8007FU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x07FFFFFEU, 0x07FFFFFEU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, - 0x00000000U, 0xFFFF0000U, 0xFF0FFFFFU, 0x0FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0xF7FF0000U, - 0xFFB7F7FFU, 0x1BFBFFFBU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFB9U, 0x07FDFFFFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0x0007FFFFU, 0xFFFFFFFFU, 0x0007FFFFU, - 0x00000000U, 0x00000000U, 0xFFFF0000U, 0xFFFF003FU, - 0x0000003FU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFDFFFFFU, 0xFFFFFFFFU, - 0xDFFFFFFFU, 0xEBFFDE64U, 0xFFFFFFEFU, 0xFFFFFFFFU, - 0xDFDFE7BFU, 0x7BFFFFFFU, 0xFFFDFC5FU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFF3FU, 0xF7FFFFFDU, 0xF7FFFFFFU, - 0xFFDFFFFFU, 0xFFDFFFFFU, 0xFFFF7FFFU, 0xFFFF7FFFU, - 0xFFFFFDFFU, 0xFFFFFDFFU, 0x00000FF7U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x7FFFFBFFU, 0x000007E0U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFF0000U, 0xFFFFFFFFU, 0x00003FFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFF0000U, 0xFFFF03FFU, 0xFFFF03FFU, - 0x000003FFU, 0x00000000U, 0x00000000U, 0x00000000U - } -}; diff --git a/include/libgnulib/unicase/casefold.h b/include/libgnulib/unicase/casefold.h deleted file mode 100755 index bb32067..0000000 --- a/include/libgnulib/unicase/casefold.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Casefolding of Unicode characters. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include "unitypes.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the casefold mapping of a Unicode character. */ -extern ucs4_t - uc_tocasefold (ucs4_t uc); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unicase/caseprop.h b/include/libgnulib/unicase/caseprop.h deleted file mode 100755 index d6b95bd..0000000 --- a/include/libgnulib/unicase/caseprop.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Case related properties of Unicode characters. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include "unitypes.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Determine whether a character is "cased" according to the Unicode Standard, - , section 3.13, - definition D120. */ -extern bool - uc_is_cased (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Determine whether a character is "case-ignorable" - according to the Unicode Standard, - , section 3.13, - definition D121. */ -extern bool - uc_is_case_ignorable (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unicase/context.h b/include/libgnulib/unicase/context.h deleted file mode 100755 index 541da56..0000000 --- a/include/libgnulib/unicase/context.h +++ /dev/null @@ -1,73 +0,0 @@ -/* Case-mapping contexts of UTF-8/UTF-16/UTF-32 substring. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - - -/* The context of a prefix string combines the information of the "Before C" - conditions of the Unicode Standard, - , section 3.13, - table 3-14 "Context Specification for Casing". - - casing_prefix_context_t contains the following fields: - - // Helper for evaluating the FINAL_SIGMA condition: - // Last character that was not case-ignorable. - ucs4_t last_char_except_ignorable; - - // Helper for evaluating the AFTER_SOFT_DOTTED and AFTER_I conditions: - // Last character that was of combining class 230 ("Above") or 0. - ucs4_t last_char_normal_or_above; - - Three bits would be sufficient to carry the context information, but - that would require to invoke uc_is_cased and uc_is_property_soft_dotted - ahead of time, more often than actually needed. */ - - -/* The context of a suffix string combines the information of the "After C" - conditions of the Unicode Standard, - , section 3.13, - table 3-14 "Context Specification for Casing". - - casing_suffix_context_t contains the following fields: - - // For evaluating the FINAL_SIGMA condition: - // First character that was not case-ignorable. - ucs4_t first_char_except_ignorable; - - // For evaluating the MORE_ABOVE condition: - // Bit 0 is set if the suffix contains a character of combining class - // 230 (Above) with no character of combining class 0 or 230 (Above) - // before it. - // - // For evaluating the BEFORE_DOT condition: - // Bit 1 is set if the suffix contains a COMBINING DOT ABOVE (U+0307) - // with no character of combining class 0 or 230 (Above) before it. - // - uint32_t bits; - - Three bits would be sufficient to carry the context information, but - that would require to invoke uc_is_cased ahead of time, more often than - actually needed. */ -#define SCC_MORE_ABOVE_MASK 1 -#define SCC_BEFORE_DOT_MASK 2 diff --git a/include/libgnulib/unicase/ignorable.h b/include/libgnulib/unicase/ignorable.h deleted file mode 100755 index c59ceab..0000000 --- a/include/libgnulib/unicase/ignorable.h +++ /dev/null @@ -1,676 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Casing Properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 -static const -struct - { - int header[1]; - int level1[15]; - short level2[3 << 7]; - unsigned int level3[57 << 4]; - } -u_casing_property_case_ignorable = -{ - { 15 }, - { - 16 * sizeof (int) / sizeof (short) + 0, - 16 * sizeof (int) / sizeof (short) + 128, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 16 * sizeof (int) / sizeof (short) + 256 - }, - { - 16 + 384 * sizeof (short) / sizeof (int) + 0, - 16 + 384 * sizeof (short) / sizeof (int) + 16, - 16 + 384 * sizeof (short) / sizeof (int) + 32, - 16 + 384 * sizeof (short) / sizeof (int) + 48, - 16 + 384 * sizeof (short) / sizeof (int) + 64, - 16 + 384 * sizeof (short) / sizeof (int) + 80, - 16 + 384 * sizeof (short) / sizeof (int) + 96, - 16 + 384 * sizeof (short) / sizeof (int) + 112, - 16 + 384 * sizeof (short) / sizeof (int) + 128, - 16 + 384 * sizeof (short) / sizeof (int) + 144, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 160, - 16 + 384 * sizeof (short) / sizeof (int) + 176, - 16 + 384 * sizeof (short) / sizeof (int) + 192, - 16 + 384 * sizeof (short) / sizeof (int) + 208, - 16 + 384 * sizeof (short) / sizeof (int) + 224, - 16 + 384 * sizeof (short) / sizeof (int) + 240, - -1, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 256, - 16 + 384 * sizeof (short) / sizeof (int) + 272, - 16 + 384 * sizeof (short) / sizeof (int) + 288, - -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, - 16 + 384 * sizeof (short) / sizeof (int) + 304, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 320, - 16 + 384 * sizeof (short) / sizeof (int) + 336, - 16 + 384 * sizeof (short) / sizeof (int) + 352, - 16 + 384 * sizeof (short) / sizeof (int) + 368, - -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, - 16 + 384 * sizeof (short) / sizeof (int) + 384, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 400, - 16 + 384 * sizeof (short) / sizeof (int) + 416, - 16 + 384 * sizeof (short) / sizeof (int) + 432, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 448, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 464, - 16 + 384 * sizeof (short) / sizeof (int) + 480, - 16 + 384 * sizeof (short) / sizeof (int) + 496, - 16 + 384 * sizeof (short) / sizeof (int) + 512, - 16 + 384 * sizeof (short) / sizeof (int) + 528, - 16 + 384 * sizeof (short) / sizeof (int) + 544, - 16 + 384 * sizeof (short) / sizeof (int) + 560, - 16 + 384 * sizeof (short) / sizeof (int) + 576, - 16 + 384 * sizeof (short) / sizeof (int) + 592, - 16 + 384 * sizeof (short) / sizeof (int) + 608, - 16 + 384 * sizeof (short) / sizeof (int) + 624, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 640, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 656, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 672, - 16 + 384 * sizeof (short) / sizeof (int) + 688, - 16 + 384 * sizeof (short) / sizeof (int) + 704, - -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, - 16 + 384 * sizeof (short) / sizeof (int) + 720, - -1, - -1, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 736, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 752, - 16 + 384 * sizeof (short) / sizeof (int) + 768, - 16 + 384 * sizeof (short) / sizeof (int) + 784, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 800, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 816, - 16 + 384 * sizeof (short) / sizeof (int) + 832, - 16 + 384 * sizeof (short) / sizeof (int) + 848, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 864, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 880, - -1, - -1, - -1, - -1, - -1, - -1, - 16 + 384 * sizeof (short) / sizeof (int) + 896, - -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 - }, - { - 0x00000000U, 0x04004000U, 0x40000000U, 0x00000001U, - 0x00000000U, 0x0190A100U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFE000000U, 0xFFFFFFFCU, 0xFFFFFFE0U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFDFU, 0x0030FFFFU, - 0x000000B0U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x000003F8U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x82000000U, 0x00000000U, - 0xFFFE0000U, 0xBFFFFFFFU, 0x000000B6U, 0x00100000U, - 0x17FF003FU, 0x00000000U, 0xFFFFF801U, 0x00010000U, - 0x00000000U, 0x00000000U, 0xBFC00000U, 0x00003DFFU, - 0x00028000U, 0xFFFF0000U, 0x000007FFU, 0x00000000U, - 0x00000000U, 0x0001FFC0U, 0x00000000U, 0x243FF800U, - 0xFFC00000U, 0x00003FFFU, 0x0E000000U, 0x00000000U, - 0xFF830100U, 0x00000000U, 0xFFFFFE00U, 0xFFFFFFFFU, - 0x00000007U, 0x14000000U, 0x00FE21FEU, 0x0002000CU, - 0x00000002U, 0x10000000U, 0x0000201EU, 0x4000000CU, - 0x00000006U, 0x10000000U, 0x00023986U, 0x00230000U, - 0x00000006U, 0x10000000U, 0x000021BEU, 0xFC00000CU, - 0x00000002U, 0x90000000U, 0x0060201EU, 0x0000000CU, - 0x00000004U, 0x00000000U, 0x00002001U, 0x00000000U, - 0x00000011U, 0xD0000000U, 0x00603DC1U, 0x0000000CU, - 0x00000002U, 0x90000000U, 0x00003040U, 0x0000000CU, - 0x00000003U, 0x18000000U, 0x0000201EU, 0x0000000CU, - 0x00000002U, 0x00000000U, 0x005C0400U, 0x00000000U, - 0x00000000U, 0x07F20000U, 0x00007FC0U, 0x00000000U, - 0x00000000U, 0x1FF20000U, 0x00007F40U, 0x00000000U, - 0x03000000U, 0x02A00000U, 0x00000000U, 0x7FFE0000U, - 0xFEFFE0DFU, 0x1FFFFFFFU, 0x00000040U, 0x00000000U, - 0x00000000U, 0x66FDE000U, 0xC3000000U, 0x001E0001U, - 0x20002064U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xE0000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x001C0000U, 0x000C0000U, 0x000C0000U, 0x000C0000U, - 0x00000000U, 0x3FB00000U, 0x208FFE40U, 0x00000000U, - 0x0000F800U, 0x00000000U, 0x00000008U, 0x00000000U, - 0x00000060U, 0x00000200U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x0E040187U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x09800000U, 0x00000000U, 0x7F400000U, 0x9FF81FE5U, - 0x00000000U, 0xFFFF0080U, 0x00007FFFU, 0x00000000U, - 0x0000000FU, 0x17D00000U, 0x00000004U, 0x000FF800U, - 0x00000003U, 0x00003B3CU, 0x00000000U, 0x0003A340U, - 0x00000000U, 0x00CFF000U, 0x00000000U, 0x3F000000U, - 0x00000000U, 0x00000000U, 0xFFF70000U, 0x031021FDU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xA0000000U, 0xE000E003U, 0x6000E000U, - 0x0300F800U, 0x00007C90U, 0x00000000U, 0x0000FFDFU, - 0x00000000U, 0x00000000U, 0xFFFF0000U, 0x0001FFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00038000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x80008000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0xFFFFFFFFU, - 0x00000000U, 0x00008000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000020U, 0x083E3C00U, 0x00000000U, 0x00000000U, - 0x7E000000U, 0x00000000U, 0x00000000U, 0x70000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00200000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x3F000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00001000U, 0x00000000U, 0x00000000U, 0xBFF78000U, - 0xC0000000U, 0x00000000U, 0x00000000U, 0x00030000U, - 0xFFFFFFFFU, 0x00000003U, 0x00000000U, 0x00000000U, - 0x00000700U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000844U, 0x00001060U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000030U, 0x8003FFFFU, - 0x00000000U, 0x00003FC0U, 0x0003FF80U, 0x00000000U, - 0x00000007U, 0x33C80000U, 0x00008000U, 0x00000060U, - 0x00000000U, 0x00667E00U, 0x00001008U, 0x10010000U, - 0x00000000U, 0xC19D0000U, 0x20000002U, 0x00583000U, - 0x00000000U, 0x00000000U, 0x08000000U, 0x00000C00U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00002120U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x40000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFC0000U, 0x00000007U, 0x00000000U, - 0x0008FFFFU, 0x0000FFFFU, 0x00240000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x80000000U, - 0x04004080U, 0x40000000U, 0x00000001U, 0x00010000U, - 0xC0000000U, 0x00000000U, 0x00000000U, 0x0E000008U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x20000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000001U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x07C00000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000006U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x0000F06EU, 0x87000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000060U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x000000F0U, 0x00004000U, 0x0000BE00U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00001800U, 0x00000000U, 0xF0000000U, - 0x00000000U, 0x00000000U, 0x0001FFC0U, 0x00000000U, - 0x0000003CU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000002U, 0xFF000000U, 0x0000007FU, 0x80190000U, - 0x00000003U, 0x26780000U, 0x00002004U, 0x00000000U, - 0x00000007U, 0x001FEF80U, 0x00000000U, 0x00080000U, - 0x00000003U, 0x7FC00000U, 0x00009E00U, 0x00000000U, - 0x00000000U, 0x40D38000U, 0x00000002U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x80000000U, 0x000007F8U, - 0x00000003U, 0x18000000U, 0x00000001U, 0x001F1FC0U, - 0x00000000U, 0xF8000000U, 0x00054001U, 0x00000006U, - 0x00000000U, 0xFF000000U, 0x4000005CU, 0x00000000U, - 0x00000000U, 0x85F80000U, 0x0000000DU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xB03C0000U, 0x30000001U, 0x00000000U, - 0x00000000U, 0xA7F80000U, 0x00000001U, 0x00000000U, - 0x00000000U, 0x00BF2800U, 0x00000000U, 0x00000000U, - 0xA0000000U, 0x00000FBCU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x06FF8000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x58000000U, 0x00000008U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x0CF00000U, 0x00000001U, - 0x000007FEU, 0x79F80000U, 0x0E7E0080U, 0x00000000U, - 0x037FFC00U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xBF7F0000U, 0x00000000U, 0x00000000U, - 0xFFFC0000U, 0x006DFCFFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0xB47E0000U, 0x000000BFU, 0x00000000U, - 0x00A30000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00180000U, - 0x00000003U, 0x07C00000U, 0x04000005U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFF0000U, 0x003FFF81U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xC0000000U, 0x0000E3FFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x001F0000U, - 0x00000000U, 0x007F0000U, 0x0000000FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000007U, 0x00001800U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00008000U, 0x00000000U, - 0xFFFF8000U, 0x00000000U, 0x00000000U, 0x0000001BU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x60000000U, 0x0000000FU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFF3FFFU, 0x0000007FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0xFFF80380U, - 0x00000FE7U, 0x00003C00U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x0000001CU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xF87FFFFFU, 0xFFFFFFFFU, 0x00201FFFU, - 0xF8000010U, 0x0000FFFEU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xF9FFFF7FU, 0x000007DBU, 0x00000000U, 0x00000000U, - 0x00008000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x3FFF0000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00004000U, 0x00000000U, 0x0000F000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x0000F800U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x0000C000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x007F0000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000FF0U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0xF8000000U, - 0x00000002U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU - } -}; diff --git a/include/libgnulib/unicase/invariant.h b/include/libgnulib/unicase/invariant.h deleted file mode 100755 index 136c630..0000000 --- a/include/libgnulib/unicase/invariant.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Internal functions for Unicode character case mappings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include - -#include "unitypes.h" -#include "uninorm.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return true if mapping NFD(S) to via MAPPING is a no-op. */ -extern int - u8_is_invariant (const uint8_t *s, size_t n, - uint8_t * (*mapping) (const uint8_t *s, size_t n, const char *iso639_language, - uninorm_t nf, - uint8_t *resultbuf, size_t *lengthp), - const char *iso639_language, - bool *resultp); -extern int - u16_is_invariant (const uint16_t *s, size_t n, - uint16_t * (*mapping) (const uint16_t *s, size_t n, const char *iso639_language, - uninorm_t nf, - uint16_t *resultbuf, size_t *lengthp), - const char *iso639_language, - bool *resultp); -extern int - u32_is_invariant (const uint32_t *s, size_t n, - uint32_t * (*mapping) (const uint32_t *s, size_t n, const char *iso639_language, - uninorm_t nf, - uint32_t *resultbuf, size_t *lengthp), - const char *iso639_language, - bool *resultp); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unicase/locale-languages.gperf b/include/libgnulib/unicase/locale-languages.gperf deleted file mode 100755 index 9db1558..0000000 --- a/include/libgnulib/unicase/locale-languages.gperf +++ /dev/null @@ -1,300 +0,0 @@ -/* Language codes of locales. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -%language=ANSI-C -%define hash-function-name uc_locale_language_hash -%define lookup-function-name uc_locale_languages_lookup -%compare-lengths -%compare-strncmp -%readonly-tables -%pic -/* List of languages taken from gettext/gettext-tools/src/lang-table.c - on 2009-02-07. */ -%% -"aa", /* Afar" */ -"ab", /* Abkhazian" */ -"ace", /* Achinese" */ -"ae", /* Avestan" */ -"af", /* Afrikaans" */ -"ak", /* Akan" */ -"am", /* Amharic" */ -"an", /* Aragonese" */ -"ang", /* Old English" */ -"ar", /* Arabic" */ -"as", /* Assamese" */ -"ast", /* Asturian" */ -"av", /* Avaric" */ -"awa", /* Awadhi" */ -"ay", /* Aymara" */ -"az", /* Azerbaijani" */ -"ba", /* Bashkir" */ -"bal", /* Baluchi" */ -"ban", /* Balinese" */ -"be", /* Belarusian" */ -"bej", /* Beja" */ -"bem", /* Bemba" */ -"bg", /* Bulgarian" */ -"bh", /* Bihari" */ -"bho", /* Bhojpuri" */ -"bi", /* Bislama" */ -"bik", /* Bikol" */ -"bin", /* Bini" */ -"bm", /* Bambara" */ -"bn", /* Bengali" */ -"bo", /* Tibetan" */ -"br", /* Breton" */ -"bs", /* Bosnian" */ -"bug", /* Buginese" */ -"ca", /* Catalan" */ -"ce", /* Chechen" */ -"ceb", /* Cebuano" */ -"ch", /* Chamorro" */ -"co", /* Corsican" */ -"cr", /* Cree" */ -"crh", /* Crimean Tatar" */ -"cs", /* Czech" */ -"csb", /* Kashubian" */ -"cu", /* Church Slavic" */ -"cv", /* Chuvash" */ -"cy", /* Welsh" */ -"da", /* Danish" */ -"de", /* German" */ -"din", /* Dinka" */ -"doi", /* Dogri" */ -"dv", /* Divehi" */ -"dz", /* Dzongkha" */ -"ee", /* Ewe" */ -"el", /* Greek" */ -"en", /* English" */ -"eo", /* Esperanto" */ -"es", /* Spanish" */ -"et", /* Estonian" */ -"eu", /* Basque" */ -"fa", /* Persian" */ -"ff", /* Fulah" */ -"fi", /* Finnish" */ -"fil", /* Filipino" */ -"fj", /* Fijian" */ -"fo", /* Faroese" */ -"fon", /* Fon" */ -"fr", /* French" */ -"fur", /* Friulian" */ -"fy", /* Western Frisian" */ -"ga", /* Irish" */ -"gd", /* Scottish Gaelic" */ -"gl", /* Galician" */ -"gn", /* Guarani" */ -"gon", /* Gondi" */ -"gsw", /* Swiss German" */ -"gu", /* Gujarati" */ -"gv", /* Manx" */ -"ha", /* Hausa" */ -"he", /* Hebrew" */ -"hi", /* Hindi" */ -"hil", /* Hiligaynon" */ -"hmn", /* Hmong" */ -"ho", /* Hiri Motu" */ -"hr", /* Croatian" */ -"ht", /* Haitian" */ -"hu", /* Hungarian" */ -"hy", /* Armenian" */ -"hz", /* Herero" */ -"ia", /* Interlingua" */ -"id", /* Indonesian" */ -"ie", /* Interlingue" */ -"ig", /* Igbo" */ -"ii", /* Sichuan Yi" */ -"ik", /* Inupiak" */ -"ilo", /* Iloko" */ -"is", /* Icelandic" */ -"it", /* Italian" */ -"iu", /* Inuktitut" */ -"ja", /* Japanese" */ -"jab", /* Hyam" */ -"jv", /* Javanese" */ -"ka", /* Georgian" */ -"kab", /* Kabyle" */ -"kaj", /* Jju" */ -"kam", /* Kamba" */ -"kbd", /* Kabardian" */ -"kcg", /* Tyap" */ -"kdm", /* Kagoma" */ -"kg", /* Kongo" */ -"ki", /* Kikuyu" */ -"kj", /* Kuanyama" */ -"kk", /* Kazakh" */ -"kl", /* Kalaallisut" */ -"km", /* Central Khmer" */ -"kmb", /* Kimbundu" */ -"kn", /* Kannada" */ -"ko", /* Korean" */ -"kr", /* Kanuri" */ -"kru", /* Kurukh" */ -"ks", /* Kashmiri" */ -"ku", /* Kurdish" */ -"kv", /* Komi" */ -"kw", /* Cornish" */ -"ky", /* Kirghiz" */ -"kok", /* Konkani" */ -"la", /* Latin" */ -"lb", /* Letzeburgesch" */ -"lg", /* Ganda" */ -"li", /* Limburgish" */ -"ln", /* Lingala" */ -"lo", /* Laotian" */ -"lt", /* Lithuanian" */ -"lu", /* Luba-Katanga" */ -"lua", /* Luba-Lulua" */ -"luo", /* Luo" */ -"lv", /* Latvian" */ -"mad", /* Madurese" */ -"mag", /* Magahi" */ -"mai", /* Maithili" */ -"mak", /* Makasar" */ -"man", /* Mandingo" */ -"men", /* Mende" */ -"mg", /* Malagasy" */ -"mh", /* Marshallese" */ -"mi", /* Maori" */ -"min", /* Minangkabau" */ -"mk", /* Macedonian" */ -"ml", /* Malayalam" */ -"mn", /* Mongolian" */ -"mni", /* Manipuri" */ -"mo", /* Moldavian" */ -"mos", /* Mossi" */ -"mr", /* Marathi" */ -"ms", /* Malay" */ -"mt", /* Maltese" */ -"mwr", /* Marwari" */ -"my", /* Burmese" */ -"myn", /* Mayan" */ -"na", /* Nauru" */ -"nap", /* Neapolitan" */ -"nah", /* Nahuatl" */ -"nb", /* Norwegian Bokmal" */ -"nd", /* North Ndebele" */ -"nds", /* Low Saxon" */ -"ne", /* Nepali" */ -"ng", /* Ndonga" */ -"nl", /* Dutch" */ -"nn", /* Norwegian Nynorsk" */ -"no", /* Norwegian" */ -"nr", /* South Ndebele" */ -"nso", /* Northern Sotho" */ -"nv", /* Navajo" */ -"ny", /* Nyanja" */ -"nym", /* Nyamwezi" */ -"nyn", /* Nyankole" */ -"oc", /* Occitan" */ -"oj", /* Ojibwa" */ -"om", /* (Afan) Oromo" */ -"or", /* Oriya" */ -"os", /* Ossetian" */ -"pa", /* Punjabi" */ -"pag", /* Pangasinan" */ -"pam", /* Pampanga" */ -"pap", /* Papiamento" */ -"pbb", /* Páez" */ -"pi", /* Pali" */ -"pl", /* Polish" */ -"ps", /* Pashto" */ -"pt", /* Portuguese" */ -"qu", /* Quechua" */ -"raj", /* Rajasthani" */ -"rm", /* Romansh" */ -"rn", /* Kirundi" */ -"ro", /* Romanian" */ -"ru", /* Russian" */ -"rw", /* Kinyarwanda" */ -"sa", /* Sanskrit" */ -"sas", /* Sasak" */ -"sat", /* Santali" */ -"sc", /* Sardinian" */ -"scn", /* Sicilian" */ -"sd", /* Sindhi" */ -"se", /* Northern Sami" */ -"sg", /* Sango" */ -"shn", /* Shan" */ -"si", /* Sinhala" */ -"sid", /* Sidamo" */ -"sk", /* Slovak" */ -"sl", /* Slovenian" */ -"sm", /* Samoan" */ -"sn", /* Shona" */ -"so", /* Somali" */ -"sq", /* Albanian" */ -"sr", /* Serbian" */ -"srr", /* Serer" */ -"ss", /* Siswati" */ -"st", /* Sesotho" */ -"su", /* Sundanese" */ -"suk", /* Sukuma" */ -"sus", /* Susu" */ -"sv", /* Swedish" */ -"sw", /* Swahili" */ -"ta", /* Tamil" */ -"te", /* Telugu" */ -"tem", /* Timne" */ -"tet", /* Tetum" */ -"tg", /* Tajik" */ -"th", /* Thai" */ -"ti", /* Tigrinya" */ -"tiv", /* Tiv" */ -"tk", /* Turkmen" */ -"tl", /* Tagalog" */ -"tn", /* Setswana" */ -"to", /* Tonga" */ -"tr", /* Turkish" */ -"ts", /* Tsonga" */ -"tt", /* Tatar" */ -"tum", /* Tumbuka" */ -"tw", /* Twi" */ -"ty", /* Tahitian" */ -"ug", /* Uighur" */ -"uk", /* Ukrainian" */ -"umb", /* Umbundu" */ -"ur", /* Urdu" */ -"uz", /* Uzbek" */ -"ve", /* Venda" */ -"vi", /* Vietnamese" */ -"vo", /* Volapuk" */ -"wal", /* Walamo" */ -"war", /* Waray" */ -"wen", /* Sorbian" */ -"wo", /* Wolof" */ -"xh", /* Xhosa" */ -"yao", /* Yao" */ -"yi", /* Yiddish" */ -"yo", /* Yoruba" */ -"za", /* Zhuang" */ -"zh", /* Chinese" */ -"zu", /* Zulu" */ -"zap", /* Zapotec" */ -%% -/* - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/unicase/simple-mapping.h b/include/libgnulib/unicase/simple-mapping.h deleted file mode 100755 index 6102b76..0000000 --- a/include/libgnulib/unicase/simple-mapping.h +++ /dev/null @@ -1,39 +0,0 @@ -/* Simple case mapping for Unicode characters. - Copyright (C) 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - -ucs4_t -FUNC (ucs4_t uc) -{ - unsigned int index1 = uc >> mapping_header_0; - if (index1 < mapping_header_1) - { - int lookup1 = u_mapping.level1[index1]; - if (lookup1 >= 0) - { - unsigned int index2 = (uc >> mapping_header_2) & mapping_header_3; - int lookup2 = u_mapping.level2[lookup1 + index2]; - if (lookup2 >= 0) - { - unsigned int index3 = (uc & mapping_header_4); - int lookup3 = u_mapping.level3[lookup2 + index3]; - - return uc + lookup3; - } - } - } - return uc; -} diff --git a/include/libgnulib/unicase/special-casing-table.gperf b/include/libgnulib/unicase/special-casing-table.gperf deleted file mode 100755 index f4b82c3..0000000 --- a/include/libgnulib/unicase/special-casing-table.gperf +++ /dev/null @@ -1,160 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Special casing rules of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -struct special_casing_rule { char code[3]; }; -%struct-type -%language=ANSI-C -%define slot-name code -%define hash-function-name gl_unicase_special_hash -%define lookup-function-name gl_unicase_special_lookup -%compare-lengths -%compare-strncmp -%readonly-tables -%omit-struct-type -%% -"\x00\x49\x00", 1, SCC_MORE_ABOVE , { 'l', 't' }, { 0x0049, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 } -"\x00\x49\x01", 1, -SCC_BEFORE_DOT , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 } -"\x00\x49\x02", 1, -SCC_BEFORE_DOT , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 } -"\x00\x49\x03", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 } -"\x00\x49\x04", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0049, 0, 0 }, { 0x0069, 0, 0 }, { 0x0049, 0, 0 }, { 0x0131, 0, 0 } -"\x00\x4a\x00", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x004A, 0, 0 }, { 0x006A, 0x0307, 0 }, { 0x004A, 0, 0 }, { 0x006A, 0, 0 } -"\x00\x69\x00", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 } -"\x00\x69\x01", 0, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 } -"\x00\xcc\x00", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CC, 0, 0 }, { 0x0069, 0x0307, 0x0300 }, { 0x00CC, 0, 0 }, { 0x00EC, 0, 0 } -"\x00\xcd\x00", 0, SCC_ALWAYS , { 'l', 't' }, { 0x00CD, 0, 0 }, { 0x0069, 0x0307, 0x0301 }, { 0x00CD, 0, 0 }, { 0x00ED, 0, 0 } -"\x00\xdf\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0053, 0 }, { 0x00DF, 0, 0 }, { 0x0053, 0x0073, 0 }, { 0x0073, 0x0073, 0 } -"\x01\x28\x00", 0, SCC_ALWAYS , { 'l', 't' }, { 0x0128, 0, 0 }, { 0x0069, 0x0307, 0x0303 }, { 0x0128, 0, 0 }, { 0x0129, 0, 0 } -"\x01\x2e\x00", 0, SCC_MORE_ABOVE , { 'l', 't' }, { 0x012E, 0, 0 }, { 0x012F, 0x0307, 0 }, { 0x012E, 0, 0 }, { 0x012F, 0, 0 } -"\x01\x30\x00", 1, SCC_ALWAYS , { 't', 'r' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 } -"\x01\x30\x01", 1, SCC_ALWAYS , { 'a', 'z' }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0, 0 } -"\x01\x30\x02", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 }, { 0x0130, 0, 0 }, { 0x0069, 0x0307, 0 } -"\x01\x49\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x02BC, 0x004E, 0 }, { 0x0149, 0, 0 }, { 0x02BC, 0x004E, 0 }, { 0x02BC, 0x006E, 0 } -"\x01\xf0\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x004A, 0x030C, 0 }, { 0x01F0, 0, 0 }, { 0x004A, 0x030C, 0 }, { 0x006A, 0x030C, 0 } -"\x03\x07\x00", 1, SCC_AFTER_SOFT_DOTTED, { 'l', 't' }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 } -"\x03\x07\x01", 1, SCC_AFTER_I , { 't', 'r' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 } -"\x03\x07\x02", 0, SCC_AFTER_I , { 'a', 'z' }, { 0x0307, 0, 0 }, { 0, 0, 0 }, { 0x0307, 0, 0 }, { 0x0307, 0, 0 } -"\x03\x90\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x0390, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 } -"\x03\xa3\x00", 0, SCC_FINAL_SIGMA , { '\0', '\0' }, { 0x03A3, 0, 0 }, { 0x03C2, 0, 0 }, { 0x03A3, 0, 0 }, { 0x03C3, 0, 0 } -"\x03\xb0\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x03B0, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 } -"\x05\x87\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0535, 0x0552, 0 }, { 0x0587, 0, 0 }, { 0x0535, 0x0582, 0 }, { 0x0565, 0x0582, 0 } -"\x1e\x96\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0048, 0x0331, 0 }, { 0x1E96, 0, 0 }, { 0x0048, 0x0331, 0 }, { 0x0068, 0x0331, 0 } -"\x1e\x97\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0054, 0x0308, 0 }, { 0x1E97, 0, 0 }, { 0x0054, 0x0308, 0 }, { 0x0074, 0x0308, 0 } -"\x1e\x98\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0057, 0x030A, 0 }, { 0x1E98, 0, 0 }, { 0x0057, 0x030A, 0 }, { 0x0077, 0x030A, 0 } -"\x1e\x99\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0059, 0x030A, 0 }, { 0x1E99, 0, 0 }, { 0x0059, 0x030A, 0 }, { 0x0079, 0x030A, 0 } -"\x1e\x9a\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0041, 0x02BE, 0 }, { 0x1E9A, 0, 0 }, { 0x0041, 0x02BE, 0 }, { 0x0061, 0x02BE, 0 } -"\x1e\x9e\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1E9E, 0, 0 }, { 0x00DF, 0, 0 }, { 0x1E9E, 0, 0 }, { 0x0073, 0x0073, 0 } -"\x1f\x50\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0 }, { 0x1F50, 0, 0 }, { 0x03A5, 0x0313, 0 }, { 0x03C5, 0x0313, 0 } -"\x1f\x52\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0300 }, { 0x1F52, 0, 0 }, { 0x03A5, 0x0313, 0x0300 }, { 0x03C5, 0x0313, 0x0300 } -"\x1f\x54\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0301 }, { 0x1F54, 0, 0 }, { 0x03A5, 0x0313, 0x0301 }, { 0x03C5, 0x0313, 0x0301 } -"\x1f\x56\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0313, 0x0342 }, { 0x1F56, 0, 0 }, { 0x03A5, 0x0313, 0x0342 }, { 0x03C5, 0x0313, 0x0342 } -"\x1f\x80\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 } -"\x1f\x81\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 } -"\x1f\x82\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 } -"\x1f\x83\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 } -"\x1f\x84\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 } -"\x1f\x85\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 } -"\x1f\x86\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 } -"\x1f\x87\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 } -"\x1f\x88\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F08, 0x0399, 0 }, { 0x1F80, 0, 0 }, { 0x1F88, 0, 0 }, { 0x1F00, 0x03B9, 0 } -"\x1f\x89\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F09, 0x0399, 0 }, { 0x1F81, 0, 0 }, { 0x1F89, 0, 0 }, { 0x1F01, 0x03B9, 0 } -"\x1f\x8a\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0A, 0x0399, 0 }, { 0x1F82, 0, 0 }, { 0x1F8A, 0, 0 }, { 0x1F02, 0x03B9, 0 } -"\x1f\x8b\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0B, 0x0399, 0 }, { 0x1F83, 0, 0 }, { 0x1F8B, 0, 0 }, { 0x1F03, 0x03B9, 0 } -"\x1f\x8c\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0C, 0x0399, 0 }, { 0x1F84, 0, 0 }, { 0x1F8C, 0, 0 }, { 0x1F04, 0x03B9, 0 } -"\x1f\x8d\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0D, 0x0399, 0 }, { 0x1F85, 0, 0 }, { 0x1F8D, 0, 0 }, { 0x1F05, 0x03B9, 0 } -"\x1f\x8e\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0E, 0x0399, 0 }, { 0x1F86, 0, 0 }, { 0x1F8E, 0, 0 }, { 0x1F06, 0x03B9, 0 } -"\x1f\x8f\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F0F, 0x0399, 0 }, { 0x1F87, 0, 0 }, { 0x1F8F, 0, 0 }, { 0x1F07, 0x03B9, 0 } -"\x1f\x90\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 } -"\x1f\x91\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 } -"\x1f\x92\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 } -"\x1f\x93\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 } -"\x1f\x94\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 } -"\x1f\x95\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 } -"\x1f\x96\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 } -"\x1f\x97\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 } -"\x1f\x98\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F28, 0x0399, 0 }, { 0x1F90, 0, 0 }, { 0x1F98, 0, 0 }, { 0x1F20, 0x03B9, 0 } -"\x1f\x99\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F29, 0x0399, 0 }, { 0x1F91, 0, 0 }, { 0x1F99, 0, 0 }, { 0x1F21, 0x03B9, 0 } -"\x1f\x9a\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2A, 0x0399, 0 }, { 0x1F92, 0, 0 }, { 0x1F9A, 0, 0 }, { 0x1F22, 0x03B9, 0 } -"\x1f\x9b\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2B, 0x0399, 0 }, { 0x1F93, 0, 0 }, { 0x1F9B, 0, 0 }, { 0x1F23, 0x03B9, 0 } -"\x1f\x9c\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2C, 0x0399, 0 }, { 0x1F94, 0, 0 }, { 0x1F9C, 0, 0 }, { 0x1F24, 0x03B9, 0 } -"\x1f\x9d\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2D, 0x0399, 0 }, { 0x1F95, 0, 0 }, { 0x1F9D, 0, 0 }, { 0x1F25, 0x03B9, 0 } -"\x1f\x9e\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2E, 0x0399, 0 }, { 0x1F96, 0, 0 }, { 0x1F9E, 0, 0 }, { 0x1F26, 0x03B9, 0 } -"\x1f\x9f\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F2F, 0x0399, 0 }, { 0x1F97, 0, 0 }, { 0x1F9F, 0, 0 }, { 0x1F27, 0x03B9, 0 } -"\x1f\xa0\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 } -"\x1f\xa1\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 } -"\x1f\xa2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 } -"\x1f\xa3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 } -"\x1f\xa4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 } -"\x1f\xa5\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 } -"\x1f\xa6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 } -"\x1f\xa7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 } -"\x1f\xa8\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F68, 0x0399, 0 }, { 0x1FA0, 0, 0 }, { 0x1FA8, 0, 0 }, { 0x1F60, 0x03B9, 0 } -"\x1f\xa9\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F69, 0x0399, 0 }, { 0x1FA1, 0, 0 }, { 0x1FA9, 0, 0 }, { 0x1F61, 0x03B9, 0 } -"\x1f\xaa\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6A, 0x0399, 0 }, { 0x1FA2, 0, 0 }, { 0x1FAA, 0, 0 }, { 0x1F62, 0x03B9, 0 } -"\x1f\xab\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6B, 0x0399, 0 }, { 0x1FA3, 0, 0 }, { 0x1FAB, 0, 0 }, { 0x1F63, 0x03B9, 0 } -"\x1f\xac\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6C, 0x0399, 0 }, { 0x1FA4, 0, 0 }, { 0x1FAC, 0, 0 }, { 0x1F64, 0x03B9, 0 } -"\x1f\xad\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6D, 0x0399, 0 }, { 0x1FA5, 0, 0 }, { 0x1FAD, 0, 0 }, { 0x1F65, 0x03B9, 0 } -"\x1f\xae\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6E, 0x0399, 0 }, { 0x1FA6, 0, 0 }, { 0x1FAE, 0, 0 }, { 0x1F66, 0x03B9, 0 } -"\x1f\xaf\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1F6F, 0x0399, 0 }, { 0x1FA7, 0, 0 }, { 0x1FAF, 0, 0 }, { 0x1F67, 0x03B9, 0 } -"\x1f\xb2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FBA, 0x0399, 0 }, { 0x1FB2, 0, 0 }, { 0x1FBA, 0x0345, 0 }, { 0x1F70, 0x03B9, 0 } -"\x1f\xb3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 } -"\x1f\xb4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0386, 0x0399, 0 }, { 0x1FB4, 0, 0 }, { 0x0386, 0x0345, 0 }, { 0x03AC, 0x03B9, 0 } -"\x1f\xb6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0 }, { 0x1FB6, 0, 0 }, { 0x0391, 0x0342, 0 }, { 0x03B1, 0x0342, 0 } -"\x1f\xb7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0342, 0x0399 }, { 0x1FB7, 0, 0 }, { 0x0391, 0x0342, 0x0345 }, { 0x03B1, 0x0342, 0x03B9 } -"\x1f\xbc\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0391, 0x0399, 0 }, { 0x1FB3, 0, 0 }, { 0x1FBC, 0, 0 }, { 0x03B1, 0x03B9, 0 } -"\x1f\xc2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FCA, 0x0399, 0 }, { 0x1FC2, 0, 0 }, { 0x1FCA, 0x0345, 0 }, { 0x1F74, 0x03B9, 0 } -"\x1f\xc3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 } -"\x1f\xc4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0389, 0x0399, 0 }, { 0x1FC4, 0, 0 }, { 0x0389, 0x0345, 0 }, { 0x03AE, 0x03B9, 0 } -"\x1f\xc6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0 }, { 0x1FC6, 0, 0 }, { 0x0397, 0x0342, 0 }, { 0x03B7, 0x0342, 0 } -"\x1f\xc7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0342, 0x0399 }, { 0x1FC7, 0, 0 }, { 0x0397, 0x0342, 0x0345 }, { 0x03B7, 0x0342, 0x03B9 } -"\x1f\xcc\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0397, 0x0399, 0 }, { 0x1FC3, 0, 0 }, { 0x1FCC, 0, 0 }, { 0x03B7, 0x03B9, 0 } -"\x1f\xd2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0300 }, { 0x1FD2, 0, 0 }, { 0x0399, 0x0308, 0x0300 }, { 0x03B9, 0x0308, 0x0300 } -"\x1f\xd3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0301 }, { 0x1FD3, 0, 0 }, { 0x0399, 0x0308, 0x0301 }, { 0x03B9, 0x0308, 0x0301 } -"\x1f\xd6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0342, 0 }, { 0x1FD6, 0, 0 }, { 0x0399, 0x0342, 0 }, { 0x03B9, 0x0342, 0 } -"\x1f\xd7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0399, 0x0308, 0x0342 }, { 0x1FD7, 0, 0 }, { 0x0399, 0x0308, 0x0342 }, { 0x03B9, 0x0308, 0x0342 } -"\x1f\xe2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0300 }, { 0x1FE2, 0, 0 }, { 0x03A5, 0x0308, 0x0300 }, { 0x03C5, 0x0308, 0x0300 } -"\x1f\xe3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0301 }, { 0x1FE3, 0, 0 }, { 0x03A5, 0x0308, 0x0301 }, { 0x03C5, 0x0308, 0x0301 } -"\x1f\xe4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A1, 0x0313, 0 }, { 0x1FE4, 0, 0 }, { 0x03A1, 0x0313, 0 }, { 0x03C1, 0x0313, 0 } -"\x1f\xe6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0342, 0 }, { 0x1FE6, 0, 0 }, { 0x03A5, 0x0342, 0 }, { 0x03C5, 0x0342, 0 } -"\x1f\xe7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A5, 0x0308, 0x0342 }, { 0x1FE7, 0, 0 }, { 0x03A5, 0x0308, 0x0342 }, { 0x03C5, 0x0308, 0x0342 } -"\x1f\xf2\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x1FFA, 0x0399, 0 }, { 0x1FF2, 0, 0 }, { 0x1FFA, 0x0345, 0 }, { 0x1F7C, 0x03B9, 0 } -"\x1f\xf3\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 } -"\x1f\xf4\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x038F, 0x0399, 0 }, { 0x1FF4, 0, 0 }, { 0x038F, 0x0345, 0 }, { 0x03CE, 0x03B9, 0 } -"\x1f\xf6\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0 }, { 0x1FF6, 0, 0 }, { 0x03A9, 0x0342, 0 }, { 0x03C9, 0x0342, 0 } -"\x1f\xf7\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0342, 0x0399 }, { 0x1FF7, 0, 0 }, { 0x03A9, 0x0342, 0x0345 }, { 0x03C9, 0x0342, 0x03B9 } -"\x1f\xfc\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x03A9, 0x0399, 0 }, { 0x1FF3, 0, 0 }, { 0x1FFC, 0, 0 }, { 0x03C9, 0x03B9, 0 } -"\xfb\x00\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0 }, { 0xFB00, 0, 0 }, { 0x0046, 0x0066, 0 }, { 0x0066, 0x0066, 0 } -"\xfb\x01\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0049, 0 }, { 0xFB01, 0, 0 }, { 0x0046, 0x0069, 0 }, { 0x0066, 0x0069, 0 } -"\xfb\x02\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x004C, 0 }, { 0xFB02, 0, 0 }, { 0x0046, 0x006C, 0 }, { 0x0066, 0x006C, 0 } -"\xfb\x03\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x0049 }, { 0xFB03, 0, 0 }, { 0x0046, 0x0066, 0x0069 }, { 0x0066, 0x0066, 0x0069 } -"\xfb\x04\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0046, 0x0046, 0x004C }, { 0xFB04, 0, 0 }, { 0x0046, 0x0066, 0x006C }, { 0x0066, 0x0066, 0x006C } -"\xfb\x05\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB05, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 } -"\xfb\x06\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0053, 0x0054, 0 }, { 0xFB06, 0, 0 }, { 0x0053, 0x0074, 0 }, { 0x0073, 0x0074, 0 } -"\xfb\x13\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0546, 0 }, { 0xFB13, 0, 0 }, { 0x0544, 0x0576, 0 }, { 0x0574, 0x0576, 0 } -"\xfb\x14\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x0535, 0 }, { 0xFB14, 0, 0 }, { 0x0544, 0x0565, 0 }, { 0x0574, 0x0565, 0 } -"\xfb\x15\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053B, 0 }, { 0xFB15, 0, 0 }, { 0x0544, 0x056B, 0 }, { 0x0574, 0x056B, 0 } -"\xfb\x16\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x054E, 0x0546, 0 }, { 0xFB16, 0, 0 }, { 0x054E, 0x0576, 0 }, { 0x057E, 0x0576, 0 } -"\xfb\x17\x00", 0, SCC_ALWAYS , { '\0', '\0' }, { 0x0544, 0x053D, 0 }, { 0xFB17, 0, 0 }, { 0x0544, 0x056D, 0 }, { 0x0574, 0x056D, 0 } diff --git a/include/libgnulib/unicase/tocasefold.h b/include/libgnulib/unicase/tocasefold.h deleted file mode 100755 index c8e54dd..0000000 --- a/include/libgnulib/unicase/tocasefold.h +++ /dev/null @@ -1,783 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Simple character mapping of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define mapping_header_0 16 -#define mapping_header_1 2 -#define mapping_header_2 7 -#define mapping_header_3 511 -#define mapping_header_4 127 -static const -struct - { - int level1[2]; - short level2[2 << 9]; - int level3[38 << 7]; - } -u_mapping = -{ - { 0, 512 }, - { - 0, 128, 256, 384, 512, -1, 640, 768, - 896, 1024, 1152, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1280, -1, -1, -1, -1, -1, 1408, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1536, -1, -1, 1664, 1792, 1920, 2048, - -1, -1, 2176, 2304, -1, -1, -1, -1, - -1, 2432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2560, 2688, -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, -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, 2816, 2944, 3072, 3200, - -1, -1, -1, -1, -1, -1, 3328, 3456, - -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, 3584, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3712, 3840, 3968, 4096, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4224, 4352, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4480, -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, 4608, -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, -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, 4736, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 - }, - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 775, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 0, - 32, 32, 32, 32, 32, 32, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - -121, 1, 0, 1, 0, 1, 0, -268, - 0, 210, 1, 0, 1, 0, 206, 1, - 0, 205, 205, 1, 0, 0, 79, 202, - 203, 1, 0, 205, 207, 0, 211, 209, - 1, 0, 0, 0, 211, 213, 0, 214, - 1, 0, 1, 0, 1, 0, 218, 1, - 0, 218, 0, 0, 1, 0, 218, 1, - 0, 217, 217, 1, 0, 1, 0, 219, - 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 1, 0, 2, - 1, 0, 2, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 2, 1, 0, 1, 0, -97, -56, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - -130, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 10795, 1, 0, -163, 10792, 0, - 0, 1, 0, -195, 69, 71, 1, 0, - 1, 0, 1, 0, 1, 0, 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, 116, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 116, - 0, 0, 0, 0, 0, 0, 38, 0, - 37, 37, 37, 0, 64, 0, 63, 63, - 0, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 0, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - -30, -25, 0, 0, 0, -15, -22, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - -54, -48, 0, 0, -60, -64, 0, 1, - 0, -7, 1, 0, 0, -130, -130, -130, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 15, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 0, 7264, - 0, 0, 0, 0, 0, 7264, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, -8, -8, -8, -8, 0, 0, - -6222, -6221, -6212, -6210, -6210, -6211, -6204, -6180, - 35267, 1, 0, 0, 0, 0, 0, 0, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, 0, 0, -3008, -3008, -3008, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, -58, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -8, 0, -8, 0, -8, 0, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -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, - -8, -8, -74, -74, 0, 0, -7173, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -86, -86, -86, -86, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -100, -100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -112, -112, -7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -128, -128, -126, -126, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -7517, 0, - 0, 0, -8383, -8262, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 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, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, -10743, -3814, -10727, 0, 0, 1, - 0, 1, 0, 1, 0, -10780, -10749, -10783, - -10782, 0, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, -10815, -10815, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 1, 0, 0, - 0, 0, 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, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 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, 0, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, -35332, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 1, 0, -42280, 0, 0, - 1, 0, 1, 0, 0, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, -42308, -42319, -42315, -42305, -42308, 0, - -42258, -42282, -42261, 928, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, -48, -42307, -35384, 1, - 0, 1, 0, -42343, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 1, 0, -42561, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 0, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 0, 39, 39, 39, 39, - 39, 39, 39, 0, 39, 39, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } -}; diff --git a/include/libgnulib/unicase/tolower.h b/include/libgnulib/unicase/tolower.h deleted file mode 100755 index 794f4c0..0000000 --- a/include/libgnulib/unicase/tolower.h +++ /dev/null @@ -1,743 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Simple character mapping of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#define mapping_header_0 16 -#define mapping_header_1 2 -#define mapping_header_2 7 -#define mapping_header_3 511 -#define mapping_header_4 127 -static const -struct - { - int level1[2]; - short level2[2 << 9]; - int level3[36 << 7]; - } -u_mapping = -{ - { 0, 512 }, - { - 0, 128, 256, 384, 512, -1, 640, 768, - 896, 1024, 1152, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1280, -1, -1, -1, -1, -1, 1408, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1536, -1, -1, 1664, 1792, 1920, 2048, - -1, -1, 2176, 2304, -1, -1, -1, -1, - -1, 2432, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2560, 2688, -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, -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, 2816, 2944, 3072, 3200, - -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, 3328, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3456, 3584, 3712, 3840, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3968, 4096, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4224, -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, 4352, -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, -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, 4480, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 - }, - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 0, - 32, 32, 32, 32, 32, 32, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - -199, 0, 1, 0, 1, 0, 1, 0, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - -121, 1, 0, 1, 0, 1, 0, 0, - 0, 210, 1, 0, 1, 0, 206, 1, - 0, 205, 205, 1, 0, 0, 79, 202, - 203, 1, 0, 205, 207, 0, 211, 209, - 1, 0, 0, 0, 211, 213, 0, 214, - 1, 0, 1, 0, 1, 0, 218, 1, - 0, 218, 0, 0, 1, 0, 218, 1, - 0, 217, 217, 1, 0, 1, 0, 219, - 1, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 2, 1, 0, 2, - 1, 0, 2, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 2, 1, 0, 1, 0, -97, -56, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - -130, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 10795, 1, 0, -163, 10792, 0, - 0, 1, 0, -195, 69, 71, 1, 0, - 1, 0, 1, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 116, - 0, 0, 0, 0, 0, 0, 38, 0, - 37, 37, 37, 0, 64, 0, 63, 63, - 0, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 0, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, -60, 0, 0, 1, - 0, -7, 1, 0, 0, -130, -130, -130, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 15, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, - 7264, 7264, 7264, 7264, 7264, 7264, 0, 7264, - 0, 0, 0, 0, 0, 7264, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 38864, 38864, 38864, 38864, 38864, 38864, 38864, 38864, - 8, 8, 8, 8, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, -3008, -3008, -3008, -3008, -3008, - -3008, -3008, -3008, 0, 0, -3008, -3008, -3008, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -7615, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -8, 0, -8, 0, -8, 0, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -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, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -8, -8, -8, -8, -8, -8, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -74, -74, -9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -86, -86, -86, -86, -9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -100, -100, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -8, -8, -112, -112, -7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -128, -128, -126, -126, -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, -7517, 0, - 0, 0, -8383, -8262, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 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, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 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, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, -10743, -3814, -10727, 0, 0, 1, - 0, 1, 0, 1, 0, -10780, -10749, -10783, - -10782, 0, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, -10815, -10815, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 0, 1, 0, 0, - 0, 0, 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, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 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, 0, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 1, 0, -35332, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 1, 0, -42280, 0, 0, - 1, 0, 1, 0, 0, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, -42308, -42319, -42315, -42305, -42308, 0, - -42258, -42282, -42261, 928, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, -48, -42307, -35384, 1, - 0, 1, 0, -42343, 1, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 1, 0, - 1, 0, 1, 0, -42561, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 0, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 0, 39, 39, 39, 39, - 39, 39, 39, 0, 39, 39, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } -}; diff --git a/include/libgnulib/unicase/totitle.h b/include/libgnulib/unicase/totitle.h deleted file mode 100755 index ed17a52..0000000 --- a/include/libgnulib/unicase/totitle.h +++ /dev/null @@ -1,847 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Simple character mapping of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define mapping_header_0 16 -#define mapping_header_1 2 -#define mapping_header_2 7 -#define mapping_header_3 511 -#define mapping_header_4 127 -static const -struct - { - int level1[2]; - short level2[2 << 9]; - int level3[42 << 7]; - } -u_mapping = -{ - { 0, 512 }, - { - 0, 128, 256, 384, 512, 640, 768, 896, - 1024, 1152, 1280, 1408, -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, 1536, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1664, 1792, 1920, 2048, 2176, 2304, 2432, - -1, -1, 2560, 2688, -1, -1, -1, -1, - -1, 2816, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2944, 3072, 3200, -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, -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, 3328, 3456, 3584, 3712, - -1, -1, -1, -1, -1, -1, 3840, 3968, - -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, 4096, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 4224, 4352, -1, 4480, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4608, 4736, 4864, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4992, -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, 5120, -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, -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, 5248, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 - }, - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 743, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, 0, - -32, -32, -32, -32, -32, -32, -32, 121, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -232, 0, -1, 0, -1, 0, -1, - 0, 0, -1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, 0, -1, 0, - -1, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, -1, 0, -1, 0, -1, -300, - 195, 0, 0, -1, 0, -1, 0, 0, - -1, 0, 0, 0, -1, 0, 0, 0, - 0, 0, -1, 0, 0, 97, 0, 0, - 0, -1, 163, 42561, 0, 0, 130, 0, - 0, -1, 0, -1, 0, -1, 0, 0, - -1, 0, 0, 0, 0, -1, 0, 0, - -1, 0, 0, 0, -1, 0, -1, 0, - 0, -1, 0, 0, 0, -1, 0, 56, - 0, 0, 0, 0, 1, 0, -1, 1, - 0, -1, 1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, -79, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 1, 0, -1, 0, -1, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, 0, 10815, - 10815, 0, -1, 0, 0, 0, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 10783, 10780, 10782, -210, -206, 0, -205, -205, - 0, -202, 0, -203, 42319, 0, 0, 0, - -205, 42315, 0, -207, 42343, 42280, 42308, 0, - -209, -211, 42308, 10743, 42305, 0, 0, -211, - 0, 10749, -213, 0, 0, -214, 0, 0, - 0, 0, 0, 0, 0, 10727, 0, 0, - -218, 0, 42307, -218, 0, 0, 0, 42282, - -218, -69, -217, -217, -71, 0, 0, 0, - 0, 0, -219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 42261, 42258, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 84, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, 0, 0, -1, - 0, 0, 0, 130, 130, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -38, -37, -37, -37, - 0, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -31, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -64, -63, -63, 0, - -62, -57, 0, 0, 0, -47, -54, -8, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - -86, -80, 7, -116, 0, -96, 0, 0, - -1, 0, 0, -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, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, -80, -80, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, -1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, 0, -1, -15, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -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, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, -8, -8, -8, -8, 0, 0, - -6254, -6253, -6244, -6242, -6242, -6243, -6236, -6181, - 35266, 0, -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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 35332, 0, 0, 0, 3814, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35384, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, 0, - 0, 0, 0, -59, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 8, 0, 8, 0, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 74, 74, 86, 86, 86, 86, 100, 100, - 128, 128, 112, 112, 126, 126, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -7205, 0, - 0, 0, 0, 9, 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, - 8, 8, 0, 0, 0, 7, 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, -28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -16, -16, - 0, 0, 0, 0, -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, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, - -26, -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, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - 0, -1, 0, 0, 0, -10795, -10792, 0, - -1, 0, -1, 0, -1, 0, 0, 0, - 0, 0, 0, -1, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, -1, 0, - 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, 0, -7264, - 0, 0, 0, 0, 0, -7264, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -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, 0, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, -1, 0, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, 0, -1, 0, 0, 0, - 0, -1, 0, -1, 48, 0, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, 0, 0, 0, - -1, 0, -1, 0, 0, -1, 0, 0, - 0, -1, 0, 0, 0, 0, 0, -1, - 0, -1, 0, -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, -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, -928, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -39, - -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, 0, -39, -39, -39, -39, -39, - -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, 0, -39, -39, -39, -39, -39, - -39, -39, 0, -39, -39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } -}; diff --git a/include/libgnulib/unicase/toupper.h b/include/libgnulib/unicase/toupper.h deleted file mode 100755 index ff117e0..0000000 --- a/include/libgnulib/unicase/toupper.h +++ /dev/null @@ -1,855 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Simple character mapping of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#define mapping_header_0 16 -#define mapping_header_1 2 -#define mapping_header_2 7 -#define mapping_header_3 511 -#define mapping_header_4 127 -static const -struct - { - int level1[2]; - short level2[2 << 9]; - int level3[43 << 7]; - } -u_mapping = -{ - { 0, 512 }, - { - 0, 128, 256, 384, 512, 640, 768, 896, - 1024, 1152, 1280, 1408, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1536, -1, -1, -1, -1, -1, 1664, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1792, 1920, 2048, 2176, 2304, 2432, 2560, - -1, -1, 2688, 2816, -1, -1, -1, -1, - -1, 2944, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3072, 3200, 3328, -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, -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, 3456, 3584, 3712, 3840, - -1, -1, -1, -1, -1, -1, 3968, 4096, - -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, 4224, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 4352, 4480, -1, 4608, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4736, 4864, 4992, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5120, -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, 5248, -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, -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, 5376, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 - }, - { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 743, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, 0, - -32, -32, -32, -32, -32, -32, -32, 121, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -232, 0, -1, 0, -1, 0, -1, - 0, 0, -1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, 0, -1, 0, - -1, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, -1, 0, -1, 0, -1, -300, - 195, 0, 0, -1, 0, -1, 0, 0, - -1, 0, 0, 0, -1, 0, 0, 0, - 0, 0, -1, 0, 0, 97, 0, 0, - 0, -1, 163, 42561, 0, 0, 130, 0, - 0, -1, 0, -1, 0, -1, 0, 0, - -1, 0, 0, 0, 0, -1, 0, 0, - -1, 0, 0, 0, -1, 0, -1, 0, - 0, -1, 0, 0, 0, -1, 0, 56, - 0, 0, 0, 0, 0, -1, -2, 0, - -1, -2, 0, -1, -2, 0, -1, 0, - -1, 0, -1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, -79, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, -1, -2, 0, -1, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, 0, 10815, - 10815, 0, -1, 0, 0, 0, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 10783, 10780, 10782, -210, -206, 0, -205, -205, - 0, -202, 0, -203, 42319, 0, 0, 0, - -205, 42315, 0, -207, 42343, 42280, 42308, 0, - -209, -211, 42308, 10743, 42305, 0, 0, -211, - 0, 10749, -213, 0, 0, -214, 0, 0, - 0, 0, 0, 0, 0, 10727, 0, 0, - -218, 0, 42307, -218, 0, 0, 0, 42282, - -218, -69, -217, -217, -71, 0, 0, 0, - 0, 0, -219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 42261, 42258, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 84, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, 0, 0, -1, - 0, 0, 0, 130, 130, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -38, -37, -37, -37, - 0, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -31, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -64, -63, -63, 0, - -62, -57, 0, 0, 0, -47, -54, -8, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - -86, -80, 7, -116, 0, -96, 0, 0, - -1, 0, 0, -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, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -80, -80, -80, -80, -80, -80, -80, -80, - -80, -80, -80, -80, -80, -80, -80, -80, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, -1, 0, -1, 0, -1, 0, - -1, 0, -1, 0, -1, 0, -1, -15, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -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, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, - 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, - 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, - 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, - 3008, 3008, 3008, 3008, 3008, 3008, 3008, 3008, - 3008, 3008, 3008, 0, 0, 3008, 3008, 3008, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, -8, -8, -8, -8, 0, 0, - -6254, -6253, -6244, -6242, -6242, -6243, -6236, -6181, - 35266, 0, -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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 35332, 0, 0, 0, 3814, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35384, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, 0, - 0, 0, 0, -59, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 8, 0, 8, 0, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 74, 74, 86, 86, 86, 86, 100, 100, - 128, 128, 112, 112, 126, 126, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -7205, 0, - 0, 0, 0, 9, 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, - 8, 8, 0, 0, 0, 7, 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, -28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -16, -16, -16, -16, -16, -16, -16, -16, - -16, -16, -16, -16, -16, -16, -16, -16, - 0, 0, 0, 0, -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, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 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, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, - -26, -26, -26, -26, -26, -26, -26, -26, - -26, -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, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -48, -48, -48, - 0, -1, 0, 0, 0, -10795, -10792, 0, - -1, 0, -1, 0, -1, 0, 0, 0, - 0, 0, 0, -1, 0, 0, -1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, -1, 0, -1, 0, - 0, 0, 0, -1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, -7264, -7264, - -7264, -7264, -7264, -7264, -7264, -7264, 0, -7264, - 0, 0, 0, 0, 0, -7264, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -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, 0, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1, 0, -1, 0, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, 0, 0, 0, -1, 0, 0, 0, - 0, -1, 0, -1, 48, 0, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1, 0, -1, - 0, -1, 0, -1, 0, -1, 0, -1, - 0, -1, 0, -1, 0, 0, 0, 0, - -1, 0, -1, 0, 0, -1, 0, 0, - 0, -1, 0, 0, 0, 0, 0, -1, - 0, -1, 0, -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, -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, -928, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - -38864, -38864, -38864, -38864, -38864, -38864, -38864, -38864, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, -40, -40, -40, -40, - -40, -40, -40, -40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -39, - -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, 0, -39, -39, -39, -39, -39, - -39, -39, -39, -39, -39, -39, -39, -39, - -39, -39, 0, -39, -39, -39, -39, -39, - -39, -39, 0, -39, -39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -64, -64, -64, -64, -64, -64, - -64, -64, -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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - -32, -32, -32, -32, -32, -32, -32, -32, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, -34, -34, -34, -34, - -34, -34, -34, -34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 - } -}; diff --git a/include/libgnulib/unicase/u-casecmp.h b/include/libgnulib/unicase/u-casecmp.h deleted file mode 100755 index f960b6b..0000000 --- a/include/libgnulib/unicase/u-casecmp.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Case and normalization insensitive comparison of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const SRC_UNIT *s1, size_t n1, const SRC_UNIT *s2, size_t n2, - const char *iso639_language, uninorm_t nf, int *resultp) -{ - UNIT buf1[2048 / sizeof (UNIT)]; - UNIT buf2[2048 / sizeof (UNIT)]; - UNIT *norms1; - size_t norms1_length; - UNIT *norms2; - size_t norms2_length; - int cmp; - - /* Optimization: There is no need to do canonical composition of each string. - Decomposition is enough. */ - if (nf != NULL) - nf = uninorm_decomposing_form (nf); - - /* Case-fold and normalize S1. */ - norms1_length = sizeof (buf1) / sizeof (UNIT); - norms1 = U_CASEFOLD (s1, n1, iso639_language, nf, buf1, &norms1_length); - if (norms1 == NULL) - /* errno is set here. */ - return -1; - - /* Case-fold and normalize S2. */ - norms2_length = sizeof (buf2) / sizeof (UNIT); - norms2 = U_CASEFOLD (s2, n2, iso639_language, nf, buf2, &norms2_length); - if (norms2 == NULL) - { - if (norms1 != buf1) - { - int saved_errno = errno; - free (norms1); - errno = saved_errno; - } - return -1; - } - - /* Compare the normalized strings. */ - cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length); - if (cmp > 0) - cmp = 1; - else if (cmp < 0) - cmp = -1; - - if (norms2 != buf2) - free (norms2); - if (norms1 != buf1) - free (norms1); - *resultp = cmp; - return 0; -} diff --git a/include/libgnulib/unicase/u-casecoll.h b/include/libgnulib/unicase/u-casecoll.h deleted file mode 100755 index f65d958..0000000 --- a/include/libgnulib/unicase/u-casecoll.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Locale dependent, case and normalization insensitive comparison of Unicode - strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2, - const char *iso639_language, uninorm_t nf, int *resultp) -{ - char buf1[2048]; - char buf2[2048]; - char *transformed1; - size_t transformed1_length; - char *transformed2; - size_t transformed2_length; - int cmp; - - /* Normalize and transform S1. */ - transformed1_length = sizeof (buf1); - transformed1 = - U_CASEXFRM (s1, n1, iso639_language, nf, buf1, &transformed1_length); - if (transformed1 == NULL) - /* errno is set here. */ - return -1; - - /* Normalize and transform S2. */ - transformed2_length = sizeof (buf2); - transformed2 = - U_CASEXFRM (s2, n2, iso639_language, nf, buf2, &transformed2_length); - if (transformed2 == NULL) - { - if (transformed1 != buf1) - { - int saved_errno = errno; - free (transformed1); - errno = saved_errno; - } - return -1; - } - - /* Compare the transformed strings. */ - cmp = memcmp2 (transformed1, transformed1_length, - transformed2, transformed2_length); - if (cmp < 0) - cmp = -1; - else if (cmp > 0) - cmp = 1; - - if (transformed2 != buf2) - free (transformed2); - if (transformed1 != buf1) - free (transformed1); - *resultp = cmp; - return 0; -} diff --git a/include/libgnulib/unicase/u-casefold.h b/include/libgnulib/unicase/u-casefold.h deleted file mode 100755 index 173a6d4..0000000 --- a/include/libgnulib/unicase/u-casefold.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Casefolding mapping for Unicode strings (locale dependent). - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (const UNIT *s, size_t n, const char *iso639_language, - uninorm_t nf, - UNIT *resultbuf, size_t *lengthp) -{ - return U_CT_CASEFOLD (s, n, - unicase_empty_prefix_context, unicase_empty_suffix_context, - iso639_language, - nf, - resultbuf, lengthp); -} diff --git a/include/libgnulib/unicase/u-casemap.h b/include/libgnulib/unicase/u-casemap.h deleted file mode 100755 index 20690df..0000000 --- a/include/libgnulib/unicase/u-casemap.h +++ /dev/null @@ -1,424 +0,0 @@ -/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent). - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (const UNIT *s, size_t n, - casing_prefix_context_t prefix_context, - casing_suffix_context_t suffix_context, - const char *iso639_language, - ucs4_t (*single_character_map) (ucs4_t), - size_t offset_in_rule, /* offset in 'struct special_casing_rule' */ - uninorm_t nf, - UNIT *resultbuf, size_t *lengthp) -{ - /* The result being accumulated. */ - UNIT *result; - size_t length; - size_t allocated; - - /* Initialize the accumulator. */ - if (nf != NULL || resultbuf == NULL) - { - result = NULL; - allocated = 0; - } - else - { - result = resultbuf; - allocated = *lengthp; - } - length = 0; - - { - const UNIT *s_end = s + n; - - /* Helper for evaluating the FINAL_SIGMA condition: - Last character that was not case-ignorable. */ - ucs4_t last_char_except_ignorable = - prefix_context.last_char_except_ignorable; - - /* Helper for evaluating the AFTER_SOFT_DOTTED and AFTER_I conditions: - Last character that was of combining class 230 ("Above") or 0. */ - ucs4_t last_char_normal_or_above = - prefix_context.last_char_normal_or_above; - - while (s < s_end) - { - ucs4_t uc; - int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s); - - ucs4_t mapped_uc[3]; - unsigned int mapped_count; - - if (uc < 0x10000) - { - /* Look first in the special-casing table. */ - char code[3]; - - code[0] = (uc >> 8) & 0xff; - code[1] = uc & 0xff; - - for (code[2] = 0; ; code[2]++) - { - const struct special_casing_rule *rule = - gl_unicase_special_lookup (code, 3); - - if (rule == NULL) - break; - - /* Test if the condition applies. */ - /* Does the language apply? */ - if (rule->language[0] == '\0' - || (iso639_language != NULL - && iso639_language[0] == rule->language[0] - && iso639_language[1] == rule->language[1])) - { - /* Does the context apply? */ - int context = rule->context; - bool applies; - - if (context < 0) - context = - context; - switch (context) - { - case SCC_ALWAYS: - applies = true; - break; - - case SCC_FINAL_SIGMA: - /* "Before" condition: preceded by a sequence - consisting of a cased letter and a case-ignorable - sequence. - "After" condition: not followed by a sequence - consisting of a case-ignorable sequence and then a - cased letter. */ - /* Test the "before" condition. */ - applies = uc_is_cased (last_char_except_ignorable); - /* Test the "after" condition. */ - if (applies) - { - const UNIT *s2 = s + count; - for (;;) - { - if (s2 < s_end) - { - ucs4_t uc2; - int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2); - /* Our uc_is_case_ignorable function is - known to return false for all cased - characters. So we can call - uc_is_case_ignorable first. */ - if (!uc_is_case_ignorable (uc2)) - { - applies = ! uc_is_cased (uc2); - break; - } - s2 += count2; - } - else - { - applies = ! uc_is_cased (suffix_context.first_char_except_ignorable); - break; - } - } - } - break; - - case SCC_AFTER_SOFT_DOTTED: - /* "Before" condition: There is a Soft_Dotted character - before it, with no intervening character of - combining class 0 or 230 (Above). */ - /* Test the "before" condition. */ - applies = uc_is_property_soft_dotted (last_char_normal_or_above); - break; - - case SCC_MORE_ABOVE: - /* "After" condition: followed by a character of - combining class 230 (Above) with no intervening - character of combining class 0 or 230 (Above). */ - /* Test the "after" condition. */ - { - const UNIT *s2 = s + count; - applies = false; - for (;;) - { - if (s2 < s_end) - { - ucs4_t uc2; - int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2); - int ccc = uc_combining_class (uc2); - if (ccc == UC_CCC_A) - { - applies = true; - break; - } - if (ccc == UC_CCC_NR) - break; - s2 += count2; - } - else - { - applies = ((suffix_context.bits & SCC_MORE_ABOVE_MASK) != 0); - break; - } - } - } - break; - - case SCC_BEFORE_DOT: - /* "After" condition: followed by COMBINING DOT ABOVE - (U+0307). Any sequence of characters with a - combining class that is neither 0 nor 230 may - intervene between the current character and the - combining dot above. */ - /* Test the "after" condition. */ - { - const UNIT *s2 = s + count; - applies = false; - for (;;) - { - if (s2 < s_end) - { - ucs4_t uc2; - int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2); - if (uc2 == 0x0307) /* COMBINING DOT ABOVE */ - { - applies = true; - break; - } - { - int ccc = uc_combining_class (uc2); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - break; - } - s2 += count2; - } - else - { - applies = ((suffix_context.bits & SCC_BEFORE_DOT_MASK) != 0); - break; - } - } - } - break; - - case SCC_AFTER_I: - /* "Before" condition: There is an uppercase I before - it, and there is no intervening character of - combining class 0 or 230 (Above). */ - /* Test the "before" condition. */ - applies = (last_char_normal_or_above == 'I'); - break; - - default: - abort (); - } - if (rule->context < 0) - applies = !applies; - - if (applies) - { - /* The rule applies. - Look up the mapping (0 to 3 characters). */ - const unsigned short *mapped_in_rule = - (const unsigned short *)((const char *)rule + offset_in_rule); - - if (mapped_in_rule[0] == 0) - mapped_count = 0; - else - { - mapped_uc[0] = mapped_in_rule[0]; - if (mapped_in_rule[1] == 0) - mapped_count = 1; - else - { - mapped_uc[1] = mapped_in_rule[1]; - if (mapped_in_rule[2] == 0) - mapped_count = 2; - else - { - mapped_uc[2] = mapped_in_rule[2]; - mapped_count = 3; - } - } - } - goto found_mapping; - } - } - - /* Optimization: Save a hash table lookup in the next round. */ - if (!rule->has_next) - break; - } - } - - /* No special-cased mapping. So use the locale and context independent - mapping. */ - mapped_uc[0] = single_character_map (uc); - mapped_count = 1; - - found_mapping: - /* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */ - { - unsigned int i; - - for (i = 0; i < mapped_count; i++) - { - ucs4_t muc = mapped_uc[i]; - - /* Append muc to the result accumulator. */ - if (length < allocated) - { - int ret = U_UCTOMB (result + length, muc, allocated - length); - if (ret == -1) - { - errno = EINVAL; - goto fail; - } - if (ret >= 0) - { - length += ret; - goto done_appending; - } - } - { - size_t old_allocated = allocated; - size_t new_allocated = 2 * old_allocated; - if (new_allocated < 64) - new_allocated = 64; - if (new_allocated < old_allocated) /* integer overflow? */ - abort (); - { - UNIT *larger_result; - if (result == NULL) - { - larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail; - } - } - else if (result == resultbuf) - { - larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail; - } - U_CPY (larger_result, resultbuf, length); - } - else - { - larger_result = - (UNIT *) realloc (result, new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail; - } - } - result = larger_result; - allocated = new_allocated; - { - int ret = U_UCTOMB (result + length, muc, allocated - length); - if (ret == -1) - { - errno = EINVAL; - goto fail; - } - if (ret < 0) - abort (); - length += ret; - goto done_appending; - } - } - } - done_appending: ; - } - } - - if (!uc_is_case_ignorable (uc)) - last_char_except_ignorable = uc; - - { - int ccc = uc_combining_class (uc); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - last_char_normal_or_above = uc; - } - - s += count; - } - } - - if (nf != NULL) - { - /* Finally, normalize the result. */ - UNIT *normalized_result; - - normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp); - if (normalized_result == NULL) - goto fail; - - free (result); - return normalized_result; - } - - if (length == 0) - { - if (result == NULL) - { - /* Return a non-NULL value. NULL means error. */ - result = (UNIT *) malloc (1); - if (result == NULL) - { - errno = ENOMEM; - goto fail; - } - } - } - else if (result != resultbuf && length < allocated) - { - /* Shrink the allocated memory if possible. */ - UNIT *memory; - - memory = (UNIT *) realloc (result, length * sizeof (UNIT)); - if (memory != NULL) - result = memory; - } - - *lengthp = length; - return result; - - fail: - if (result != resultbuf) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } - return NULL; -} diff --git a/include/libgnulib/unicase/u-casexfrm.h b/include/libgnulib/unicase/u-casexfrm.h deleted file mode 100755 index 2c38297..0000000 --- a/include/libgnulib/unicase/u-casexfrm.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Locale dependent transformation for case insensitive comparison of Unicode - strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -char * -FUNC (const UNIT *s, size_t n, const char *iso639_language, uninorm_t nf, - char *resultbuf, size_t *lengthp) -{ - UNIT foldedsbuf[2048 / sizeof (UNIT)]; - UNIT *foldeds; - size_t foldeds_length; - char convsbuf[2048]; - char *convs; - size_t convs_length; - char *result; - - /* Casefold and normalize the Unicode string. */ - foldeds_length = sizeof (foldedsbuf) / sizeof (UNIT); - foldeds = U_CASEFOLD (s, n, iso639_language, nf, foldedsbuf, &foldeds_length); - if (foldeds == NULL) - /* errno is set here. */ - return NULL; - - /* Convert it to locale encoding. */ - convs_length = sizeof (convsbuf) - 1; - convs = U_CONV_TO_ENCODING (locale_charset (), - iconveh_error, - foldeds, foldeds_length, - NULL, - convsbuf, &convs_length); - if (convs == NULL) - { - if (foldeds != foldedsbuf) - { - int saved_errno = errno; - free (foldeds); - errno = saved_errno; - } - return NULL; - } - - if (foldeds != foldedsbuf) - free (foldeds); - - /* Ensure one more byte is available. */ - if (convs != convsbuf) - { - char *memory = (char *) realloc (convs, convs_length + 1); - if (memory == NULL) - { - free (convs); - errno = ENOMEM; - return NULL; - } - convs = memory; - } - - /* Apply locale dependent transformations for comparison. */ - result = amemxfrm (convs, convs_length, resultbuf, lengthp); - if (result == NULL) - { - if (convs != convsbuf) - { - int saved_errno = errno; - free (convs); - errno = saved_errno; - } - return NULL; - } - - if (convs != convsbuf) - free (convs); - return result; -} diff --git a/include/libgnulib/unicase/u-ct-casefold.h b/include/libgnulib/unicase/u-ct-casefold.h deleted file mode 100755 index 2ee011f..0000000 --- a/include/libgnulib/unicase/u-ct-casefold.h +++ /dev/null @@ -1,115 +0,0 @@ -/* Casefolding mapping for Unicode substrings (locale dependent). - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (const UNIT *s, size_t n, - casing_prefix_context_t prefix_context, - casing_suffix_context_t suffix_context, - const char *iso639_language, - uninorm_t nf, - UNIT *resultbuf, size_t *lengthp) -{ - /* Implement the three definitions of caseless matching, as described in - Unicode 5.0, section "Default caseless matching": - - If no normalization is requested, simply apply the casefolding. - X -> toCasefold(X). - - If canonical normalization is requested, apply it, and apply an NFD - before. - X -> NFD(toCasefold(NFD(X))). - - If compatibility normalization is requested, apply it twice, apply - the normalization after each, and apply an NFD before: - X -> NFKD(toCasefold(NFKD(toCasefold(NFD(X))))). */ - if (nf == NULL) - /* X -> toCasefold(X) */ - return U_CASEMAP (s, n, prefix_context, suffix_context, iso639_language, - uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]), - NULL, - resultbuf, lengthp); - else - { - uninorm_t nfd = uninorm_decomposing_form (nf); - /* X -> nf(toCasefold(NFD(X))) or - X -> nf(toCasefold(nfd(toCasefold(NFD(X))))) */ - int repeat = (uninorm_is_compat_decomposing (nf) ? 2 : 1); - UNIT tmpbuf1[2048 / sizeof (UNIT)]; - UNIT tmpbuf2[2048 / sizeof (UNIT)]; - UNIT *tmp1; - size_t tmp1_length; - UNIT *tmp2; - size_t tmp2_length; - - tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT); - tmp1 = U_NORMALIZE (UNINORM_NFD, s, n, tmpbuf1, &tmp1_length); - if (tmp1 == NULL) - /* errno is set here. */ - return NULL; - - do - { - tmp2_length = sizeof (tmpbuf2) / sizeof (UNIT); - tmp2 = U_CASEMAP (tmp1, tmp1_length, - prefix_context, suffix_context, iso639_language, - uc_tocasefold, offsetof (struct special_casing_rule, casefold[0]), - NULL, - tmpbuf2, &tmp2_length); - if (tmp2 == NULL) - { - int saved_errno = errno; - if (tmp1 != tmpbuf1) - free (tmp1); - errno = saved_errno; - return NULL; - } - - if (tmp1 != tmpbuf1) - free (tmp1); - - if (repeat > 1) - { - tmp1_length = sizeof (tmpbuf1) / sizeof (UNIT); - tmp1 = U_NORMALIZE (nfd, tmp2, tmp2_length, - tmpbuf1, &tmp1_length); - } - else - /* Last run through this loop. */ - tmp1 = U_NORMALIZE (nf, tmp2, tmp2_length, - resultbuf, lengthp); - if (tmp1 == NULL) - { - int saved_errno = errno; - if (tmp2 != tmpbuf2) - free (tmp2); - errno = saved_errno; - return NULL; - } - - if (tmp2 != tmpbuf2) - free (tmp2); - } - while (--repeat > 0); - - return tmp1; - } -} diff --git a/include/libgnulib/unicase/u-ct-totitle.h b/include/libgnulib/unicase/u-ct-totitle.h deleted file mode 100755 index b670f51..0000000 --- a/include/libgnulib/unicase/u-ct-totitle.h +++ /dev/null @@ -1,515 +0,0 @@ -/* Titlecase mapping for UTF-8/UTF-16/UTF-32 substrings (locale dependent). - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -/* Quoting the Unicode standard, section "Default Case Algorithms": - Find the word boundaries in X according to Unicode Standard Annex #29, - “Text Boundaries.†For each word boundary, find the first cased character - F following the word boundary. If F exists, map F to Titlecase_Mapping(F); - then map all characters C between F and the following word boundary to - Lowercase_Mapping(C). */ - -UNIT * -FUNC (const UNIT *s, size_t n, - casing_prefix_context_t prefix_context, - casing_suffix_context_t suffix_context, - const char *iso639_language, - uninorm_t nf, - UNIT *resultbuf, size_t *lengthp) -{ - /* The result being accumulated. */ - UNIT *result; - size_t length; - size_t allocated; - /* An array containing the word break positions. */ - char *wordbreaks; - - /* Initialize the accumulator. */ - if (nf != NULL || resultbuf == NULL) - { - result = NULL; - allocated = 0; - } - else - { - result = resultbuf; - allocated = *lengthp; - } - length = 0; - - /* Initialize the word breaks array. */ - if (n > 0) - { - wordbreaks = (char *) malloc (n); - if (wordbreaks == NULL) - { - errno = ENOMEM; - goto fail2; - } - U_WORDBREAKS (s, n, wordbreaks); - } - else - wordbreaks = NULL; - - { - const UNIT *s_end = s + n; - const char *wp = wordbreaks; - - /* When considering the string as segmented by word boundaries: For each - such segment: - - In the first part, we are searching for the first cased character. - In this state, in_word_first_part = true, and no conversion takes - place. - - In the second part, we are converting every character: the first - among these characters to title case, the other ones to lower case. - In this state, in_word_first_part = false. */ - bool in_word_first_part = true; - - /* Helper for evaluating the FINAL_SIGMA condition: - Last character that was not case-ignorable. */ - ucs4_t last_char_except_ignorable = - prefix_context.last_char_except_ignorable; - - /* Helper for evaluating the AFTER_SOFT_DOTTED and AFTER_I conditions: - Last character that was of combining class 230 ("Above") or 0. */ - ucs4_t last_char_normal_or_above = - prefix_context.last_char_normal_or_above; - - while (s < s_end) - { - /* Fetch the next character. */ - ucs4_t uc; - int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s); - - ucs4_t (*single_character_map) (ucs4_t); - size_t offset_in_rule; /* offset in 'struct special_casing_rule' */ - - ucs4_t mapped_uc[3]; - unsigned int mapped_count; - - if (*wp) - /* Crossing a word boundary. */ - in_word_first_part = true; - - /* Determine single_character_map, offset_in_rule. - There are three possibilities: - - uc should not be converted. - - uc should be titlecased. - - uc should be lowercased. */ - if (in_word_first_part) - { - if (uc_is_cased (uc)) - { - /* uc is to be titlecased. */ - single_character_map = uc_totitle; - offset_in_rule = offsetof (struct special_casing_rule, title[0]); - in_word_first_part = false; - } - else - { - /* uc is not converted. */ - single_character_map = NULL; - offset_in_rule = 0; - } - } - else - { - /* uc is to be lowercased. */ - single_character_map = uc_tolower; - offset_in_rule = offsetof (struct special_casing_rule, lower[0]); - } - - /* Actually map uc. */ - if (single_character_map == NULL) - { - mapped_uc[0] = uc; - mapped_count = 1; - goto found_mapping; - } - - if (uc < 0x10000) - { - /* Look first in the special-casing table. */ - char code[3]; - - code[0] = (uc >> 8) & 0xff; - code[1] = uc & 0xff; - - for (code[2] = 0; ; code[2]++) - { - const struct special_casing_rule *rule = - gl_unicase_special_lookup (code, 3); - - if (rule == NULL) - break; - - /* Test if the condition applies. */ - /* Does the language apply? */ - if (rule->language[0] == '\0' - || (iso639_language != NULL - && iso639_language[0] == rule->language[0] - && iso639_language[1] == rule->language[1])) - { - /* Does the context apply? */ - int context = rule->context; - bool applies; - - if (context < 0) - context = - context; - switch (context) - { - case SCC_ALWAYS: - applies = true; - break; - - case SCC_FINAL_SIGMA: - /* "Before" condition: preceded by a sequence - consisting of a cased letter and a case-ignorable - sequence. - "After" condition: not followed by a sequence - consisting of a case-ignorable sequence and then a - cased letter. */ - /* Test the "before" condition. */ - applies = uc_is_cased (last_char_except_ignorable); - /* Test the "after" condition. */ - if (applies) - { - const UNIT *s2 = s + count; - for (;;) - { - if (s2 < s_end) - { - ucs4_t uc2; - int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2); - /* Our uc_is_case_ignorable function is - known to return false for all cased - characters. So we can call - uc_is_case_ignorable first. */ - if (!uc_is_case_ignorable (uc2)) - { - applies = ! uc_is_cased (uc2); - break; - } - s2 += count2; - } - else - { - applies = ! uc_is_cased (suffix_context.first_char_except_ignorable); - break; - } - } - } - break; - - case SCC_AFTER_SOFT_DOTTED: - /* "Before" condition: There is a Soft_Dotted character - before it, with no intervening character of - combining class 0 or 230 (Above). */ - /* Test the "before" condition. */ - applies = uc_is_property_soft_dotted (last_char_normal_or_above); - break; - - case SCC_MORE_ABOVE: - /* "After" condition: followed by a character of - combining class 230 (Above) with no intervening - character of combining class 0 or 230 (Above). */ - /* Test the "after" condition. */ - { - const UNIT *s2 = s + count; - applies = false; - for (;;) - { - if (s2 < s_end) - { - ucs4_t uc2; - int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2); - int ccc = uc_combining_class (uc2); - if (ccc == UC_CCC_A) - { - applies = true; - break; - } - if (ccc == UC_CCC_NR) - break; - s2 += count2; - } - else - { - applies = ((suffix_context.bits & SCC_MORE_ABOVE_MASK) != 0); - break; - } - } - } - break; - - case SCC_BEFORE_DOT: - /* "After" condition: followed by COMBINING DOT ABOVE - (U+0307). Any sequence of characters with a - combining class that is neither 0 nor 230 may - intervene between the current character and the - combining dot above. */ - /* Test the "after" condition. */ - { - const UNIT *s2 = s + count; - applies = false; - for (;;) - { - if (s2 < s_end) - { - ucs4_t uc2; - int count2 = U_MBTOUC_UNSAFE (&uc2, s2, s_end - s2); - if (uc2 == 0x0307) /* COMBINING DOT ABOVE */ - { - applies = true; - break; - } - { - int ccc = uc_combining_class (uc2); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - break; - } - s2 += count2; - } - else - { - applies = ((suffix_context.bits & SCC_BEFORE_DOT_MASK) != 0); - break; - } - } - } - break; - - case SCC_AFTER_I: - /* "Before" condition: There is an uppercase I before - it, and there is no intervening character of - combining class 0 or 230 (Above). */ - /* Test the "before" condition. */ - applies = (last_char_normal_or_above == 'I'); - break; - - default: - abort (); - } - if (rule->context < 0) - applies = !applies; - - if (applies) - { - /* The rule applies. - Look up the mapping (0 to 3 characters). */ - const unsigned short *mapped_in_rule = - (const unsigned short *)((const char *)rule + offset_in_rule); - - if (mapped_in_rule[0] == 0) - mapped_count = 0; - else - { - mapped_uc[0] = mapped_in_rule[0]; - if (mapped_in_rule[1] == 0) - mapped_count = 1; - else - { - mapped_uc[1] = mapped_in_rule[1]; - if (mapped_in_rule[2] == 0) - mapped_count = 2; - else - { - mapped_uc[2] = mapped_in_rule[2]; - mapped_count = 3; - } - } - } - goto found_mapping; - } - } - - /* Optimization: Save a hash table lookup in the next round. */ - if (!rule->has_next) - break; - } - } - - /* No special-cased mapping. So use the locale and context independent - mapping. */ - mapped_uc[0] = single_character_map (uc); - mapped_count = 1; - - found_mapping: - /* Found the mapping: uc maps to mapped_uc[0..mapped_count-1]. */ - { - unsigned int i; - - for (i = 0; i < mapped_count; i++) - { - ucs4_t muc = mapped_uc[i]; - - /* Append muc to the result accumulator. */ - if (length < allocated) - { - int ret = U_UCTOMB (result + length, muc, allocated - length); - if (ret == -1) - { - errno = EINVAL; - goto fail1; - } - if (ret >= 0) - { - length += ret; - goto done_appending; - } - } - { - size_t old_allocated = allocated; - size_t new_allocated = 2 * old_allocated; - if (new_allocated < 64) - new_allocated = 64; - if (new_allocated < old_allocated) /* integer overflow? */ - abort (); - { - UNIT *larger_result; - if (result == NULL) - { - larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail1; - } - } - else if (result == resultbuf) - { - larger_result = (UNIT *) malloc (new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail1; - } - U_CPY (larger_result, resultbuf, length); - } - else - { - larger_result = - (UNIT *) realloc (result, new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail1; - } - } - result = larger_result; - allocated = new_allocated; - { - int ret = U_UCTOMB (result + length, muc, allocated - length); - if (ret == -1) - { - errno = EINVAL; - goto fail1; - } - if (ret < 0) - abort (); - length += ret; - goto done_appending; - } - } - } - done_appending: ; - } - } - - if (!uc_is_case_ignorable (uc)) - last_char_except_ignorable = uc; - - { - int ccc = uc_combining_class (uc); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - last_char_normal_or_above = uc; - } - - s += count; - wp += count; - } - } - - free (wordbreaks); - - if (nf != NULL) - { - /* Finally, normalize the result. */ - UNIT *normalized_result; - - normalized_result = U_NORMALIZE (nf, result, length, resultbuf, lengthp); - if (normalized_result == NULL) - goto fail2; - - free (result); - return normalized_result; - } - - if (length == 0) - { - if (result == NULL) - { - /* Return a non-NULL value. NULL means error. */ - result = (UNIT *) malloc (1); - if (result == NULL) - { - errno = ENOMEM; - goto fail2; - } - } - } - else if (result != resultbuf && length < allocated) - { - /* Shrink the allocated memory if possible. */ - UNIT *memory; - - memory = (UNIT *) realloc (result, length * sizeof (UNIT)); - if (memory != NULL) - result = memory; - } - - *lengthp = length; - return result; - - fail1: - { - int saved_errno = errno; - free (wordbreaks); - errno = saved_errno; - } - fail2: - if (result != resultbuf) - { - int saved_errno = errno; - free (result); - errno = saved_errno; - } - return NULL; -} - -/* - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/include/libgnulib/unicase/u-is-cased.h b/include/libgnulib/unicase/u-is-cased.h deleted file mode 100755 index a86d9b8..0000000 --- a/include/libgnulib/unicase/u-is-cased.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Test whether case matters for a Unicode string. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s, size_t n, const char *iso639_language, - bool *resultp) -{ - UNIT normsbuf[2048 / sizeof (UNIT)]; - UNIT *norms; - size_t norms_length; - UNIT mappedbuf[2048 / sizeof (UNIT)]; - UNIT *mapped_toupper; - UNIT *mapped_tolower; - UNIT *mapped_totitle; - size_t mapped_length; - - /* Apply canonical decomposition to S. */ - norms_length = sizeof (normsbuf) / sizeof (UNIT); - norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length); - if (norms == NULL) - /* errno is set here. */ - return -1; - - mapped_length = sizeof (mappedbuf) / sizeof (UNIT); - - /* Apply toupper mapping. */ - mapped_toupper = U_TOUPPER (norms, norms_length, iso639_language, NULL, - mappedbuf, &mapped_length); - if (mapped_toupper == NULL) - goto fail; - - /* Compare. */ - if (!(mapped_length == norms_length - && U_CMP (mapped_toupper, norms, norms_length) == 0)) - { - if (mapped_toupper != mappedbuf) - free (mapped_toupper); - goto yes; - } - - /* Apply tolower mapping. */ - mapped_tolower = U_TOLOWER (norms, norms_length, iso639_language, NULL, - mapped_toupper, &mapped_length); - if (mapped_tolower == NULL) - { - if (mapped_toupper != mappedbuf) - { - int saved_errno = errno; - free (mapped_toupper); - errno = saved_errno; - } - goto fail; - } - - if (mapped_toupper != mapped_tolower && mapped_toupper != mappedbuf) - free (mapped_toupper); - - /* Compare. */ - if (!(mapped_length == norms_length - && U_CMP (mapped_tolower, norms, norms_length) == 0)) - { - if (mapped_tolower != mappedbuf) - free (mapped_tolower); - goto yes; - } - - /* Apply totitle mapping. */ - mapped_totitle = U_TOTITLE (norms, norms_length, iso639_language, NULL, - mapped_tolower, &mapped_length); - if (mapped_totitle == NULL) - { - if (mapped_tolower != mappedbuf) - { - int saved_errno = errno; - free (mapped_tolower); - errno = saved_errno; - } - goto fail; - } - - if (mapped_tolower != mapped_totitle && mapped_tolower != mappedbuf) - free (mapped_tolower); - - /* Compare. */ - if (!(mapped_length == norms_length - && U_CMP (mapped_totitle, norms, norms_length) == 0)) - { - if (mapped_totitle != mappedbuf) - free (mapped_totitle); - goto yes; - } - - if (mapped_totitle != mappedbuf) - free (mapped_totitle); - if (norms != normsbuf) - free (norms); - *resultp = false; - return 0; - - yes: - if (norms != normsbuf) - free (norms); - *resultp = true; - return 0; - - fail: - if (norms != normsbuf) - { - int saved_errno = errno; - free (norms); - errno = saved_errno; - } - return -1; -} diff --git a/include/libgnulib/unicase/u-is-invariant.h b/include/libgnulib/unicase/u-is-invariant.h deleted file mode 100755 index 2301b7f..0000000 --- a/include/libgnulib/unicase/u-is-invariant.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Test whether a Unicode string is invariant under a given case mapping. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s, size_t n, - UNIT * (*mapping) (const UNIT *s, size_t n, const char *iso639_language, - uninorm_t nf, - UNIT *resultbuf, size_t *lengthp), - const char *iso639_language, - bool *resultp) -{ - UNIT normsbuf[2048 / sizeof (UNIT)]; - UNIT *norms; - size_t norms_length; - UNIT mappedbuf[2048 / sizeof (UNIT)]; - UNIT *mapped; - size_t mapped_length; - - /* Apply canonical decomposition to S. */ - norms_length = sizeof (normsbuf) / sizeof (UNIT); - norms = U_NORMALIZE (UNINORM_NFD, s, n, normsbuf, &norms_length); - if (norms == NULL) - /* errno is set here. */ - return -1; - - /* Apply mapping. */ - mapped_length = sizeof (mappedbuf) / sizeof (UNIT); - mapped = mapping (norms, norms_length, iso639_language, NULL, - mappedbuf, &mapped_length); - if (mapped == NULL) - { - if (norms != normsbuf) - { - int saved_errno = errno; - free (norms); - errno = saved_errno; - } - return -1; - } - - /* Compare. */ - *resultp = (mapped_length == norms_length - && U_CMP (mapped, norms, norms_length) == 0); - - if (mapped != mappedbuf) - free (mapped); - if (norms != normsbuf) - free (norms); - return 0; -} diff --git a/include/libgnulib/unicase/u-prefix-context.h b/include/libgnulib/unicase/u-prefix-context.h deleted file mode 100755 index b69fd5a..0000000 --- a/include/libgnulib/unicase/u-prefix-context.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Case-mapping context of prefix UTF-8/UTF-16/UTF-32 string. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -casing_prefix_context_t -FUNC1 (const UNIT *s, size_t n) -{ - return FUNC2 (s, n, unicase_empty_prefix_context); -} - -casing_prefix_context_t -FUNC2 (const UNIT *s, size_t n, casing_prefix_context_t a_context) -{ -#if 0 - /* Forward iteration. Slow for long strings. */ - casing_prefix_context_t context = a_context; - const UNIT *s_end = s + n; - - while (s < s_end) - { - ucs4_t uc; - int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s); - - if (!uc_is_case_ignorable (uc)) - context.last_char_except_ignorable = uc; - - { - int ccc = uc_combining_class (uc); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - context.last_char_normal_or_above = uc; - } - - s += count; - } - - return context; -#else - /* Iterate backwards, only as far as needed. */ - casing_prefix_context_t context; - ucs4_t last_char_except_ignorable = (ucs4_t)(-1); - ucs4_t last_char_normal_or_above = (ucs4_t)(-1); - const UNIT *p = s + n; - - for (;;) - { - ucs4_t uc; - p = U_PREV (&uc, p, s); - if (p == NULL) - break; - - if (last_char_except_ignorable == (ucs4_t)(-1)) - { - if (!uc_is_case_ignorable (uc)) - last_char_except_ignorable = uc; - } - - if (last_char_normal_or_above == (ucs4_t)(-1)) - { - int ccc = uc_combining_class (uc); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - last_char_normal_or_above = uc; - } - - if (last_char_except_ignorable != (ucs4_t)(-1) - && last_char_normal_or_above != (ucs4_t)(-1)) - break; - } - context.last_char_except_ignorable = - (last_char_except_ignorable != (ucs4_t)(-1) - ? last_char_except_ignorable - : a_context.last_char_except_ignorable); - context.last_char_normal_or_above = - (last_char_normal_or_above != (ucs4_t)(-1) - ? last_char_normal_or_above - : a_context.last_char_normal_or_above); - - return context; -#endif -} diff --git a/include/libgnulib/unicase/u-suffix-context.h b/include/libgnulib/unicase/u-suffix-context.h deleted file mode 100755 index 173d32d..0000000 --- a/include/libgnulib/unicase/u-suffix-context.h +++ /dev/null @@ -1,98 +0,0 @@ -/* Case-mapping context of suffix UTF-8/UTF-16/UTF-32 string. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -casing_suffix_context_t -FUNC1 (const UNIT *s, size_t n) -{ - return FUNC2 (s, n, unicase_empty_suffix_context); -} - -casing_suffix_context_t -FUNC2 (const UNIT *s, size_t n, casing_suffix_context_t a_context) -{ - casing_suffix_context_t context; - /* Evaluate all three conditions in a single pass through the string S. - The three variables are -1 as long as the value of the condition has - not been determined. */ - ucs4_t first_char_except_ignorable = (ucs4_t)(-1); - int scc_MORE_ABOVE = -1; - int scc_BEFORE_DOT = -1; - const UNIT *s_end = s + n; - - while (s < s_end) - { - ucs4_t uc; - int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s); - - if (first_char_except_ignorable == (ucs4_t)(-1)) - { - if (!uc_is_case_ignorable (uc)) - first_char_except_ignorable = uc; - } - - if (scc_MORE_ABOVE < 0) - { - int ccc = uc_combining_class (uc); - if (ccc == UC_CCC_A) - scc_MORE_ABOVE = SCC_MORE_ABOVE_MASK; - else if (ccc == UC_CCC_NR) - scc_MORE_ABOVE = 0; - } - - if (scc_BEFORE_DOT < 0) - { - if (uc == 0x0307) /* COMBINING DOT ABOVE */ - scc_BEFORE_DOT = SCC_BEFORE_DOT_MASK; - else - { - int ccc = uc_combining_class (uc); - if (ccc == UC_CCC_A || ccc == UC_CCC_NR) - scc_BEFORE_DOT = 0; - } - } - - if (first_char_except_ignorable != (ucs4_t)(-1) - && (scc_MORE_ABOVE | scc_BEFORE_DOT) >= 0) - /* All conditions have been determined. */ - break; - - s += count; - } - - /* For those conditions that have not been determined so far, use the - value from the argument context. */ - context.first_char_except_ignorable = - (first_char_except_ignorable != (ucs4_t)(-1) - ? first_char_except_ignorable - : a_context.first_char_except_ignorable); - context.bits = - (scc_MORE_ABOVE >= 0 - ? scc_MORE_ABOVE - : a_context.bits & SCC_MORE_ABOVE_MASK) - | (scc_BEFORE_DOT >= 0 - ? scc_BEFORE_DOT - : a_context.bits & SCC_BEFORE_DOT_MASK); - return context; -} diff --git a/include/libgnulib/unicase/u-totitle.h b/include/libgnulib/unicase/u-totitle.h deleted file mode 100755 index effa1a1..0000000 --- a/include/libgnulib/unicase/u-totitle.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Titlecase mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent). - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (const UNIT *s, size_t n, const char *iso639_language, - uninorm_t nf, - UNIT *resultbuf, size_t *lengthp) -{ - return U_CT_TOTITLE (s, n, - unicase_empty_prefix_context, unicase_empty_suffix_context, - iso639_language, - nf, - resultbuf, lengthp); -} diff --git a/include/libgnulib/unicase/unicasemap.h b/include/libgnulib/unicase/unicasemap.h deleted file mode 100755 index 6783b9b..0000000 --- a/include/libgnulib/unicase/unicasemap.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Case mapping for UTF-8/UTF-16/UTF-32 strings (locale dependent). - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include - -#include "unitypes.h" -#include "unicase.h" -#include "uninorm.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -extern uint8_t * - u8_casemap (const uint8_t *s, size_t n, - casing_prefix_context_t prefix_context, - casing_suffix_context_t suffix_context, - const char *iso639_language, - ucs4_t (*single_character_map) (ucs4_t), - size_t offset_in_rule, /* offset in 'struct special_casing_rule' */ - uninorm_t nf, - uint8_t *resultbuf, size_t *lengthp); - -extern uint16_t * - u16_casemap (const uint16_t *s, size_t n, - casing_prefix_context_t prefix_context, - casing_suffix_context_t suffix_context, - const char *iso639_language, - ucs4_t (*single_character_map) (ucs4_t), - size_t offset_in_rule, /* offset in 'struct special_casing_rule' */ - uninorm_t nf, - uint16_t *resultbuf, size_t *lengthp); - -extern uint32_t * - u32_casemap (const uint32_t *s, size_t n, - casing_prefix_context_t prefix_context, - casing_suffix_context_t suffix_context, - const char *iso639_language, - ucs4_t (*single_character_map) (ucs4_t), - size_t offset_in_rule, /* offset in 'struct special_casing_rule' */ - uninorm_t nf, - uint32_t *resultbuf, size_t *lengthp); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unicodeio.h b/include/libgnulib/unicodeio.h deleted file mode 100755 index 0db1d35..0000000 --- a/include/libgnulib/unicodeio.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Unicode character output to streams with locale dependent encoding. - - Copyright (C) 2000-2003, 2005, 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef UNICODEIO_H -#define UNICODEIO_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Converts the Unicode character CODE to its multibyte representation - in the current locale and calls the SUCCESS callback on the resulting - byte sequence. If an error occurs, invokes the FAILURE callback instead, - passing it CODE and an English error string. - Returns whatever the callback returned. - Assumes that the locale doesn't change between two calls. */ -extern long unicode_to_mb (unsigned int code, - long (*success) (const char *buf, size_t buflen, - void *callback_arg), - long (*failure) (unsigned int code, const char *msg, - void *callback_arg), - void *callback_arg); - -/* Outputs the Unicode character CODE to the output stream STREAM. - Upon failure, exit if exit_on_error is true, otherwise output a fallback - notation. */ -extern void print_unicode_char (FILE *stream, unsigned int code, - int exit_on_error); - -/* Simple success callback that outputs the converted string. - The STREAM is passed as callback_arg. */ -extern long fwrite_success_callback (const char *buf, size_t buflen, - void *callback_arg); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/uniconv/u-conv-from-enc.h b/include/libgnulib/uniconv/u-conv-from-enc.h deleted file mode 100755 index 31e30e1..0000000 --- a/include/libgnulib/uniconv/u-conv-from-enc.h +++ /dev/null @@ -1,99 +0,0 @@ -/* Conversion to UTF-16/UTF-32 from legacy encodings. - Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (const char *fromcode, - enum iconv_ilseq_handler handler, - const char *src, size_t srclen, - size_t *offsets, - UNIT *resultbuf, size_t *lengthp) -{ -#if HAVE_UTF_NAME - char *result = (char *) resultbuf; - size_t length = *lengthp * sizeof (UNIT); - - if (mem_iconveha (src, srclen, fromcode, UTF_NAME, true, handler, - offsets, &result, &length) < 0) - return NULL; - if (offsets != NULL) - { - /* Convert 'char *' offsets to 'UNIT *' offsets. */ - size_t *offsets_end = offsets + srclen; - size_t *o; - - for (o = offsets; o < offsets_end; o++) - if (*o != (size_t)(-1)) - *o = *o / sizeof (UNIT); - } - if ((length % sizeof (UNIT)) != 0) - abort (); - *lengthp = length / sizeof (UNIT); - return (UNIT *) result; -#else - uint8_t *utf8_string; - size_t utf8_length; - UNIT *result; - - utf8_string = - u8_conv_from_encoding (fromcode, handler, src, srclen, offsets, - NULL, &utf8_length); - if (utf8_string == NULL) - return NULL; - result = U8_TO_U (utf8_string, utf8_length, resultbuf, lengthp); - if (result == NULL) - { - int saved_errno = errno; - free (utf8_string); - errno = saved_errno; - return NULL; - } - if (offsets != NULL) - { - size_t length = *lengthp; - size_t *offsets_end = offsets + srclen; - size_t *o; - size_t off8 = 0; /* offset into utf8_string */ - size_t offunit = 0; /* offset into result */ - - for (o = offsets; o < offsets_end; o++) - if (*o != (size_t)(-1)) - { - while (off8 < *o) - { - int count8 = u8_mblen (utf8_string + off8, utf8_length - off8); - int countunit = U_MBLEN (result + offunit, length - offunit); - if (count8 < 0 || countunit < 0) - abort (); - off8 += count8; - offunit += countunit; - } - if (*o != off8) - abort (); - *o = offunit; - } - } - free (utf8_string); - return result; -#endif -} diff --git a/include/libgnulib/uniconv/u-conv-to-enc.h b/include/libgnulib/uniconv/u-conv-to-enc.h deleted file mode 100755 index 74c7fa3..0000000 --- a/include/libgnulib/uniconv/u-conv-to-enc.h +++ /dev/null @@ -1,164 +0,0 @@ -/* Conversion from UTF-16/UTF-32 to legacy encodings. - Copyright (C) 2002, 2006-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -char * -FUNC (const char *tocode, - enum iconv_ilseq_handler handler, - const UNIT *src, size_t srclen, - size_t *offsets, - char *resultbuf, size_t *lengthp) -{ -#if HAVE_UTF_NAME - size_t *scaled_offsets; - char *result; - size_t length; - - if (offsets != NULL && srclen > 0) - { - scaled_offsets = - (size_t *) malloc (srclen * sizeof (UNIT) * sizeof (size_t)); - if (scaled_offsets == NULL) - { - errno = ENOMEM; - return NULL; - } - } - else - scaled_offsets = NULL; - - result = resultbuf; - length = *lengthp; - if (mem_iconveha ((const char *) src, srclen * sizeof (UNIT), - UTF_NAME, tocode, - handler == iconveh_question_mark, handler, - scaled_offsets, &result, &length) < 0) - { - int saved_errno = errno; - free (scaled_offsets); - errno = saved_errno; - return NULL; - } - - if (offsets != NULL) - { - /* Convert scaled_offsets[srclen * sizeof (UNIT)] to - offsets[srclen]. */ - size_t i; - - for (i = 0; i < srclen; i++) - offsets[i] = scaled_offsets[i * sizeof (UNIT)]; - free (scaled_offsets); - } - - if (result == NULL) /* when (resultbuf == NULL && length == 0) */ - { - result = (char *) malloc (1); - if (result == NULL) - { - errno = ENOMEM; - return NULL; - } - } - *lengthp = length; - return result; -#else - uint8_t tmpbuf[4096]; - size_t tmpbufsize = SIZEOF (tmpbuf); - uint8_t *utf8_src; - size_t utf8_srclen; - size_t *scaled_offsets; - char *result; - - utf8_src = U_TO_U8 (src, srclen, tmpbuf, &tmpbufsize); - if (utf8_src == NULL) - return NULL; - utf8_srclen = tmpbufsize; - - if (offsets != NULL && utf8_srclen > 0) - { - scaled_offsets = (size_t *) malloc (utf8_srclen * sizeof (size_t)); - if (scaled_offsets == NULL) - { - if (utf8_src != tmpbuf) - free (utf8_src); - errno = ENOMEM; - return NULL; - } - } - else - scaled_offsets = NULL; - - result = u8_conv_to_encoding (tocode, handler, utf8_src, utf8_srclen, - scaled_offsets, resultbuf, lengthp); - if (result == NULL) - { - int saved_errno = errno; - free (scaled_offsets); - if (utf8_src != tmpbuf) - free (utf8_src); - errno = saved_errno; - return NULL; - } - if (offsets != NULL) - { - size_t iunit; /* offset into src */ - size_t i8; /* offset into utf8_src */ - - for (iunit = 0; iunit < srclen; iunit++) - offsets[iunit] = (size_t)(-1); - - iunit = 0; - i8 = 0; - while (iunit < srclen && i8 < utf8_srclen) - { - int countunit; - int count8; - - offsets[iunit] = scaled_offsets[i8]; - - countunit = U_MBLEN (src + iunit, srclen - iunit); - count8 = u8_mblen (utf8_src + i8, utf8_srclen - i8); - if (countunit < 0 || count8 < 0) - abort (); - iunit += countunit; - i8 += count8; - } - /* Check that utf8_src has been traversed entirely. */ - if (i8 < utf8_srclen) - abort (); - /* Check that src has been traversed entirely, except possibly for an - incomplete sequence of units at the end. */ - if (iunit < srclen) - { - offsets[iunit] = *lengthp; - if (!(U_MBLEN (src + iunit, srclen - iunit) < 0)) - abort (); - } - free (scaled_offsets); - } - if (utf8_src != tmpbuf) - free (utf8_src); - return result; -#endif -} diff --git a/include/libgnulib/uniconv/u-strconv-from-enc.h b/include/libgnulib/uniconv/u-strconv-from-enc.h deleted file mode 100755 index 9f3e099..0000000 --- a/include/libgnulib/uniconv/u-strconv-from-enc.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Conversion to UTF-8/UTF-16/UTF-32 from legacy encodings. - Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -UNIT * -FUNC (const char *string, - const char *fromcode, - enum iconv_ilseq_handler handler) -{ - UNIT *result; - size_t length; - - result = - U_CONV_FROM_ENCODING (fromcode, handler, - string, strlen (string) + 1, NULL, - NULL, &length); - if (result == NULL) - return NULL; - /* Verify the result has exactly one NUL unit, at the end. */ - if (!(length > 0 && result[length-1] == 0 - && U_STRLEN (result) == length-1)) - { - free (result); - errno = EILSEQ; - return NULL; - } - return result; -} diff --git a/include/libgnulib/uniconv/u-strconv-to-enc.h b/include/libgnulib/uniconv/u-strconv-to-enc.h deleted file mode 100755 index ee7f964..0000000 --- a/include/libgnulib/uniconv/u-strconv-to-enc.h +++ /dev/null @@ -1,71 +0,0 @@ -/* Conversion from UTF-16/UTF-32 to legacy encodings. - Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -char * -FUNC (const UNIT *string, - const char *tocode, - enum iconv_ilseq_handler handler) -{ -#if HAVE_UTF_NAME - char *result = NULL; - size_t length = 0; - - if (mem_iconveha ((const char *) string, (U_STRLEN (string) + 1) * sizeof (UNIT), - UTF_NAME, tocode, - handler == iconveh_question_mark, handler, - NULL, &result, &length) < 0) - return NULL; - /* Verify the result has exactly one NUL byte, at the end. */ - if (!(length > 0 && result[length-1] == '\0' && strlen (result) == length-1)) - { - free (result); - errno = EILSEQ; - return NULL; - } - return result; -#else - uint8_t tmpbuf[4096]; - size_t tmpbufsize = SIZEOF (tmpbuf); - uint8_t *utf8_string; - char *result; - - utf8_string = U_TO_U8 (string, U_STRLEN (string) + 1, tmpbuf, &tmpbufsize); - if (utf8_string == NULL) - return NULL; - result = u8_strconv_to_encoding (utf8_string, tocode, handler); - if (result == NULL) - { - if (utf8_string != tmpbuf) - { - int saved_errno = errno; - free (utf8_string); - errno = saved_errno; - } - return NULL; - } - if (utf8_string != tmpbuf) - free (utf8_string); - return result; -#endif -} diff --git a/include/libgnulib/unigbrk/gbrkprop.h b/include/libgnulib/unigbrk/gbrkprop.h deleted file mode 100755 index 7c098bf..0000000 --- a/include/libgnulib/unigbrk/gbrkprop.h +++ /dev/null @@ -1,4434 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Grapheme break property of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define gbrkprop_header_0 16 -#define gbrkprop_header_1 15 -#define gbrkprop_header_2 7 -#define gbrkprop_header_3 511 -#define gbrkprop_header_4 127 -static const -struct - { - int level1[15]; - short level2[3 << 9]; - unsigned char level3[131 << 7]; - } -unigbrkprop = -{ - { - 0, 512, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1024 - }, - { - 0, 128, -1, -1, -1, -1, 256, -1, - -1, 384, -1, 512, 640, 768, 896, 1024, - 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048, - 2176, 2304, 2432, 2560, 2688, 2816, 2944, 3072, - 3200, 3328, 3456, 3584, -1, -1, 3712, -1, - -1, -1, -1, -1, -1, -1, 3840, 3968, - 4096, 4224, 4352, -1, 4480, 4608, 4736, 4864, - 4992, 5120, -1, 5248, -1, -1, -1, -1, - 5376, 5504, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5632, 5760, 5888, -1, -1, -1, -1, - 6016, 6144, -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, -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, 6272, 6400, -1, -1, - 6528, 6656, 6784, 6912, 7040, 7168, -1, 7296, - 7424, 7552, 7680, 7808, 7936, 8064, 8192, 7424, - 7552, 7680, 7808, 7936, 8064, 8192, 7424, 7552, - 7680, 7808, 7936, 8064, 8192, 7424, 7552, 7680, - 7808, 7936, 8064, 8192, 7424, 7552, 7680, 7808, - 7936, 8064, 8192, 7424, 7552, 7680, 7808, 7936, - 8064, 8192, 7424, 7552, 7680, 7808, 7936, 8064, - 8192, 7424, 7552, 7680, 7808, 7936, 8064, 8192, - 7424, 7552, 7680, 7808, 7936, 8064, 8192, 7424, - 7552, 7680, 7808, 7936, 8064, 8192, 7424, 7552, - 7680, 7808, 7936, 8064, 8192, 7424, 7552, 7680, - 7808, 7936, 8064, 8192, 7424, 7552, 7680, 8320, - -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, 8448, -1, - -1, -1, -1, -1, 8576, 8704, -1, 8832, - -1, -1, -1, 8960, -1, 9088, 9216, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 9344, 9472, -1, -1, - -1, -1, 9600, -1, -1, 9728, 9856, 9984, - 10112, 10240, 10368, 10496, 10624, 10752, 10880, 11008, - 11136, 11264, -1, 11392, 11520, 11648, 11776, -1, - 11904, -1, 12032, 12160, 12288, 12416, -1, -1, - 12544, 12672, 12800, 12928, -1, 13056, 13184, -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, - 13312, -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, 13440, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 13568, 13696, -1, - -1, -1, 13824, -1, -1, -1, 13952, 14080, - -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, 14208, -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, 14336, -1, - -1, -1, 14464, 14592, 14720, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 14848, 14976, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 15104, 15232, 13696, -1, -1, 15360, -1, -1, - -1, 15488, -1, 15616, -1, -1, -1, -1, - -1, 15744, 15872, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 16000, -1, -1, -1, 16128, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 16256, 16384, 16512, 16640, 16384, 16384, 16384, 16384, - 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, - 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, - 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, - -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, - -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, - -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 - }, - { - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_LF, GBP_CONTROL, - GBP_CONTROL, GBP_CR, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_CONTROL, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_PREPEND, GBP_PREPEND, GBP_PREPEND, GBP_PREPEND, - GBP_PREPEND, GBP_PREPEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_CONTROL, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_PREPEND, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_PREPEND, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_PREPEND, GBP_PREPEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_PREPEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_PREPEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_CONTROL, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_CONTROL, - GBP_EXTEND, GBP_ZWJ, GBP_CONTROL, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_L, GBP_L, GBP_L, - GBP_L, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, - GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LV, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_LVT, GBP_LVT, GBP_LVT, GBP_LVT, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_T, GBP_T, GBP_T, GBP_T, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_PREPEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_PREPEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_OTHER, GBP_PREPEND, GBP_PREPEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_PREPEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_PREPEND, - GBP_SPACINGMARK, GBP_PREPEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_PREPEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_PREPEND, GBP_PREPEND, GBP_PREPEND, GBP_PREPEND, - GBP_PREPEND, GBP_PREPEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_PREPEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_SPACINGMARK, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_PREPEND, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_V, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_V, - GBP_V, GBP_V, GBP_V, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, GBP_SPACINGMARK, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_EXTEND, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_EXTEND, GBP_EXTEND, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_RI, GBP_RI, - GBP_RI, GBP_RI, GBP_RI, GBP_RI, - GBP_RI, GBP_RI, GBP_RI, GBP_RI, - GBP_RI, GBP_RI, GBP_RI, GBP_RI, - GBP_RI, GBP_RI, GBP_RI, GBP_RI, - GBP_RI, GBP_RI, GBP_RI, GBP_RI, - GBP_RI, GBP_RI, GBP_RI, GBP_RI, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_OTHER, - GBP_OTHER, GBP_OTHER, GBP_OTHER, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, GBP_EXTEND, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, - GBP_CONTROL, GBP_CONTROL, GBP_CONTROL, GBP_CONTROL - } -}; diff --git a/include/libgnulib/unigbrk/u-grapheme-breaks.h b/include/libgnulib/unigbrk/u-grapheme-breaks.h deleted file mode 100755 index 3e8f495..0000000 --- a/include/libgnulib/unigbrk/u-grapheme-breaks.h +++ /dev/null @@ -1,161 +0,0 @@ -/* Grapheme cluster break function. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - Written by Ben Pfaff , 2010. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -/* This file implements section 3 "Grapheme Cluster Boundaries" - of Unicode Standard Annex #29 . */ - -void -FUNC (const UNIT *s, size_t n, char *p) -{ - if (n > 0) - { - const UNIT *s_end = s + n; - - /* Grapheme Cluster break property of the last character. - -1 at the very beginning of the string. */ - int last_char_prop = -1; - - /* True if the last character ends a sequence of Indic_Conjunct_Break - values: consonant {extend|linker}* */ - bool incb_consonant_extended = false; - /* True if the last character ends a sequence of Indic_Conjunct_Break - values: consonant {extend|linker}* linker */ - bool incb_consonant_extended_linker = false; - /* True if the last character ends a sequence of Indic_Conjunct_Break - values: consonant {extend|linker}* linker {extend|linker}* */ - bool incb_consonant_extended_linker_extended = false; - - /* True if the last character ends an emoji modifier sequence - \p{Extended_Pictographic} Extend*. */ - bool emoji_modifier_sequence = false; - /* True if the last character was immediately preceded by an - emoji modifier sequence \p{Extended_Pictographic} Extend*. */ - bool emoji_modifier_sequence_before_last_char = false; - - /* Number of consecutive regional indicator (RI) characters seen - immediately before the current point. */ - size_t ri_count = 0; - - /* Don't break inside multibyte characters. */ - memset (p, 0, n); - - while (s < s_end) - { - ucs4_t uc; - int count = U_MBTOUC (&uc, s, s_end - s); - int prop = uc_graphemeclusterbreak_property (uc); - int incb = uc_indic_conjunct_break (uc); - - /* Break at the start of the string (GB1). */ - if (last_char_prop < 0) - *p = 1; - else - { - /* No break between CR and LF (GB3). */ - if (last_char_prop == GBP_CR && prop == GBP_LF) - /* *p = 0 */; - /* Break before and after newlines (GB4, GB5). */ - else if ((last_char_prop == GBP_CR - || last_char_prop == GBP_LF - || last_char_prop == GBP_CONTROL) - || (prop == GBP_CR - || prop == GBP_LF - || prop == GBP_CONTROL)) - *p = 1; - /* No break between Hangul syllable sequences (GB6, GB7, GB8). */ - else if ((last_char_prop == GBP_L - && (prop == GBP_L - || prop == GBP_V - || prop == GBP_LV - || prop == GBP_LVT)) - || ((last_char_prop == GBP_LV - || last_char_prop == GBP_V) - && (prop == GBP_V - || prop == GBP_T)) - || ((last_char_prop == GBP_LVT - || last_char_prop == GBP_T) - && prop == GBP_T)) - /* *p = 0 */; - /* No break before extending characters or ZWJ (GB9). */ - else if (prop == GBP_EXTEND || prop == GBP_ZWJ) - /* *p = 0 */; - /* No break before SpacingMarks (GB9a). */ - else if (prop == GBP_SPACINGMARK) - /* *p = 0 */; - /* No break after Prepend characters (GB9b). */ - else if (last_char_prop == GBP_PREPEND) - /* *p = 0 */; - /* No break within certain combinations of Indic_Conjunct_Break - values: Between - consonant {extend|linker}* linker {extend|linker}* - and - consonant - (GB9c). */ - else if (incb_consonant_extended_linker_extended - && incb == UC_INDIC_CONJUNCT_BREAK_CONSONANT) - /* *p = 0 */; - /* No break within emoji modifier sequences or emoji zwj sequences - (GB11). */ - else if (last_char_prop == GBP_ZWJ - && emoji_modifier_sequence_before_last_char - && uc_is_property_extended_pictographic (uc)) - /* *p = 0 */; - /* No break between RI if there is an odd number of RI - characters before (GB12, GB13). */ - else if (prop == GBP_RI && (ri_count % 2) != 0) - /* *p = 0 */; - /* Break everywhere (GB999). */ - else - *p = 1; - } - - incb_consonant_extended_linker = - incb_consonant_extended && incb == UC_INDIC_CONJUNCT_BREAK_LINKER; - incb_consonant_extended_linker_extended = - (incb_consonant_extended_linker - || (incb_consonant_extended_linker_extended - && incb >= UC_INDIC_CONJUNCT_BREAK_LINKER)); - incb_consonant_extended = - (incb == UC_INDIC_CONJUNCT_BREAK_CONSONANT - || (incb_consonant_extended - && incb >= UC_INDIC_CONJUNCT_BREAK_LINKER)); - - emoji_modifier_sequence_before_last_char = emoji_modifier_sequence; - emoji_modifier_sequence = - (emoji_modifier_sequence && prop == GBP_EXTEND) - || uc_is_property_extended_pictographic (uc); - - last_char_prop = prop; - - if (prop == GBP_RI) - ri_count++; - else - ri_count = 0; - - s += count; - p += count; - } - } -} diff --git a/include/libgnulib/unilbrk/internal.h b/include/libgnulib/unilbrk/internal.h deleted file mode 100755 index b1e9ba0..0000000 --- a/include/libgnulib/unilbrk/internal.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Internal functions for line breaking of Unicode strings. - Copyright (C) 2001-2003, 2005-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2021. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -extern void - u8_possible_linebreaks_loop (const uint8_t *s, size_t n, - const char *encoding, int cr, - char *_UC_RESTRICT p); -extern void - u16_possible_linebreaks_loop (const uint16_t *s, size_t n, - const char *encoding, int cr, - char *_UC_RESTRICT p); -extern void - u32_possible_linebreaks_loop (const uint32_t *s, size_t n, - const char *encoding, int cr, - char *_UC_RESTRICT p); - -extern int - u8_width_linebreaks_internal (const uint8_t *s, size_t n, - int width, int start_column, int at_end_columns, - const char *o, const char *encoding, int cr, - char *p); diff --git a/include/libgnulib/unilbrk/lbrkprop1.h b/include/libgnulib/unilbrk/lbrkprop1.h deleted file mode 100755 index a0cc17a..0000000 --- a/include/libgnulib/unilbrk/lbrkprop1.h +++ /dev/null @@ -1,41 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Line breaking properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define lbrkprop_header_0 16 -#define lbrkprop_header_1 15 -#define lbrkprop_header_2 7 -#define lbrkprop_header_3 511 -#define lbrkprop_header_4 127 - -typedef struct - { - int level1[15]; - int level2[4 << 9]; - unsigned char level3[260 << 7]; - } -lbrkprop_t; -extern const lbrkprop_t unilbrkprop; diff --git a/include/libgnulib/unilbrk/lbrkprop2.h b/include/libgnulib/unilbrk/lbrkprop2.h deleted file mode 100755 index 99d9a6a..0000000 --- a/include/libgnulib/unilbrk/lbrkprop2.h +++ /dev/null @@ -1,8614 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Line breaking properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -const lbrkprop_t unilbrkprop = -{ - { - 0, 512, 1024, 1024, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1536 - }, - { - 0, 128, 256, 256, 256, 384, 512, 640, - 256, 768, 896, 1024, 1152, 1280, 1408, 1536, - 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, - 2688, 2816, 2944, 3072, 3200, 3328, 3456, 3584, - 3712, 3840, 3968, 4096, 4224, 4352, 4480, 4608, - 4736, 256, 256, 256, 256, 4864, 4992, 5120, - 5248, 5376, 5504, 5632, 5760, 5888, 6016, 6144, - 6272, 6400, 256, 6528, 256, 256, 6656, 6784, - 6912, 7040, 7168, 7296, 7424, 7552, 7680, 7808, - 7936, 8064, 8192, 8320, 8448, 8576, 8704, 8832, - 256, 256, 256, 8960, 256, 256, 9088, 9216, - 256, 9344, 9472, 9600, 9728, 9856, 9984, 10112, - 10240, 10368, 10496, 10624, 10752, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 10880, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 11008, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 11136, 256, 256, 11264, 11392, 256, 11520, - 11648, 11776, 11904, 12032, 12160, 12288, 12416, 12544, - 12672, 12800, 12928, 13056, 13184, 13312, 13440, 12672, - 12800, 12928, 13056, 13184, 13312, 13440, 12672, 12800, - 12928, 13056, 13184, 13312, 13440, 12672, 12800, 12928, - 13056, 13184, 13312, 13440, 12672, 12800, 12928, 13056, - 13184, 13312, 13440, 12672, 12800, 12928, 13056, 13184, - 13312, 13440, 12672, 12800, 12928, 13056, 13184, 13312, - 13440, 12672, 12800, 12928, 13056, 13184, 13312, 13440, - 12672, 12800, 12928, 13056, 13184, 13312, 13440, 12672, - 12800, 12928, 13056, 13184, 13312, 13440, 12672, 12800, - 12928, 13056, 13184, 13312, 13440, 12672, 12800, 12928, - 13056, 13184, 13312, 13440, 12672, 12800, 12928, 13568, - -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, 9984, 9984, 9984, 9984, 13696, 13824, - 256, 256, 13952, 14080, 14208, 14336, 14464, 14592, - 14720, 14848, 14976, 15104, -1, 15232, 15360, 15488, - 256, 15616, 15744, 15872, 256, 256, 16000, 16128, - 16256, 16384, 16512, 16640, 16768, 16896, 17024, 17152, - 17280, 17408, 17536, 17664, 17792, 17920, 18048, 18176, - 18304, 18432, 18560, 18688, 18816, 18944, 19072, 19200, - 19328, 19456, -1, 19584, 19712, 19840, 19968, -1, - 20096, 20224, 20352, 20480, 20608, 20736, 20864, 20992, - 21120, 21248, 21376, 21504, -1, 21632, 21760, 21888, - 256, 256, 256, 256, 256, 256, 256, 22016, - 22144, 256, 22272, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 22400, - 256, 256, 256, 256, 22528, 22656, 22784, 256, - 22912, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 14848, - 256, 256, 256, 23040, 23168, -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, 23296, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 256, 256, 256, 256, 23424, 23552, 23680, 23808, - -1, -1, 23936, -1, 24064, 24192, 24320, 24448, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 24576, - 9984, 9984, 9984, 9984, 9984, 9984, 24704, 24704, - 24704, 24832, 24960, -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, 25088, - 9984, 9984, 25216, 9984, 9984, 25344, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 25472, 25600, -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, - 256, 25728, 256, 256, 256, 25856, 25984, 22272, - 256, 26112, 26240, 26368, 26496, 26624, 26752, -1, - 26880, 27008, 27136, 256, 256, 27264, 256, 27392, - 256, 256, 256, 256, 27520, 27648, -1, -1, - -1, -1, -1, -1, -1, -1, 27776, -1, - 27904, 28032, 28160, -1, -1, 28288, -1, -1, - -1, 28416, -1, 28544, -1, -1, -1, 28672, - 256, 28800, 28928, -1, -1, -1, -1, -1, - 29056, 29184, 29312, -1, 29440, 29568, -1, -1, - 29696, 29824, 29952, 30080, 30208, 30336, 30464, 30592, - 30720, 30848, 30976, 31104, 31232, 31360, 31488, 31616, - 31744, 31872, 32000, 32128, 32256, 32384, 256, 32512, - 30336, 30336, 30336, 30336, 30336, 30336, 30336, 32640, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, - 9984, 9984, 9984, 9984, 9984, 9984, 9984, 32768, - 32896, -1, 33024, 33152, -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, -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, -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 - }, - { - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_LF<<1)|0, (LBP_BK<<1)|0, - (LBP_BK<<1)|0, (LBP_CR<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_SP<<1)|0, (LBP_EX<<1)|0, (LBP_QU1<<1)|0, (LBP_AL1<<1)|0, - (LBP_PR<<1)|0, (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_QU1<<1)|0, - (LBP_OP1<<1)|0, (LBP_CP1<<1)|0, (LBP_AL1<<1)|0, (LBP_PR<<1)|0, - (LBP_IS<<1)|0, (LBP_HY<<1)|0, (LBP_IS<<1)|0, (LBP_SY<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_IS<<1)|0, (LBP_IS<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_EX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, - (LBP_PR<<1)|0, (LBP_CP1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, - (LBP_BA<<1)|0, (LBP_CL<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BK<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_GL<<1)|0, (LBP_OP1<<1)|0, (LBP_PO<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_QU2<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_PO<<1)|0, (LBP_PR<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_QU3<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_OP1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_BB<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_BB<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_BB<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_GL<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, - (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_IS<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_IS<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_PR<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_EX<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, - (LBP_IS<<1)|0, (LBP_IS<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_EX<<1)|0, - (LBP_CM<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_PO<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_EX<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_IS<<1)|0, (LBP_EX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_NU<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_PR<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_AL1<<1)|0, (LBP_PR<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_PR<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_BB<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_PR<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_GL<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BA<<1)|0, - (LBP_GL<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, - (LBP_EX<<1)|0, (LBP_EX<<1)|0, (LBP_GL<<1)|0, (LBP_AL1<<1)|0, - (LBP_EX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BA<<1)|0, (LBP_BB<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_NS<<1)|0, (LBP_SA<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_PR<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BB<<1)|0, (LBP_AL1<<1)|0, - (LBP_EX<<1)|0, (LBP_EX<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_GL<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_EX<<1)|0, (LBP_EX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_VI<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_ID1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_VF<<1)|0, (LBP_VF<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_GL<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_GL<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_GL<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_ZW<<1)|0, - (LBP_CM<<1)|0, (LBP_ZWJ<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_BA<<1)|0, (LBP_GL<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_B2<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_OP1<<1)|0, (LBP_QU2<<1)|0, - (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_OP1<<1)|0, (LBP_QU2<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_IN<<1)|0, (LBP_IN<<1)|0, (LBP_IN<<1)|0, (LBP_BA<<1)|0, - (LBP_BK<<1)|0, (LBP_BK<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_GL<<1)|0, - (LBP_PO<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, - (LBP_PO<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, - (LBP_AL1<<1)|0, (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_AI<<1)|0, - (LBP_NS<<1)|0, (LBP_NS<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_IS<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_NS<<1)|0, - (LBP_NS<<1)|0, (LBP_NS<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_PO<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_WJ<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PO<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|1, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PO<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PO<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PO<<1)|0, (LBP_PR<<1)|0, - (LBP_PO<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_PO<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_PR<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_PR<<1)|0, (LBP_PR<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_IN<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL2<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_ID1<<1)|0, (LBP_AL1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_EB<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_ID1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_ID1<<1)|0, (LBP_AL1<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_AI<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_ID1<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_AL1<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_ID1<<1)|1, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, (LBP_AI<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_EB<<1)|0, (LBP_ID1<<1)|1, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|0, (LBP_EB<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AI<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_QU1<<1)|0, - (LBP_QU1<<1)|0, (LBP_QU1<<1)|0, (LBP_QU1<<1)|0, (LBP_QU1<<1)|0, - (LBP_QU1<<1)|0, (LBP_AL1<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, - (LBP_ID1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AI<<1)|1, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_EX<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_EX<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_QU1<<1)|0, (LBP_QU1<<1)|0, (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, - (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_QU1<<1)|0, (LBP_QU1<<1)|0, - (LBP_QU1<<1)|0, (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_QU1<<1)|0, - (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_OP1<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_QU2<<1)|0, (LBP_QU3<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_EX<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_B2<<1)|0, (LBP_B2<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_OP1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_EX<<1)|0, - (LBP_EX<<1)|0, (LBP_OP1<<1)|0, (LBP_CP1<<1)|0, (LBP_OP1<<1)|0, - (LBP_CP1<<1)|0, (LBP_OP1<<1)|0, (LBP_CP1<<1)|0, (LBP_OP1<<1)|0, - (LBP_CP1<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_BA<<1)|1, (LBP_CL<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, - (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, - (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, - (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, - (LBP_NS<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_CL<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_CM<<1)|1, (LBP_CM<<1)|1, - (LBP_CM<<1)|1, (LBP_CM<<1)|1, (LBP_CM<<1)|1, (LBP_CM<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_CM<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, - (LBP_XX<<1)|0, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|1, (LBP_CM<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_EX<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_EX<<1)|0, (LBP_EX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, (LBP_JL<<1)|1, - (LBP_JL<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_VI<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_CM<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H2<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, (LBP_H3<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, - (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_JV<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, (LBP_JT<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_HL<<1)|0, (LBP_CM<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_AL1<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_XX<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_XX<<1)|0, (LBP_HL<<1)|0, (LBP_XX<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_XX<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_XX<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, (LBP_HL<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CL<<1)|1, (LBP_CL<<1)|1, (LBP_CL<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_EX<<1)|1, (LBP_EX<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_IN<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_GL<<1)|0, (LBP_CM<<1)|0, (LBP_GL<<1)|0, (LBP_CM<<1)|0, - (LBP_GL<<1)|0, (LBP_CM<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, - (LBP_CM<<1)|0, (LBP_GL<<1)|0, (LBP_CM<<1)|0, (LBP_GL<<1)|0, - (LBP_CM<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_CM<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_CL<<1)|1, (LBP_XX<<1)|0, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_EX<<1)|1, (LBP_EX<<1)|1, - (LBP_ID1<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_PR<<1)|1, (LBP_PO<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_WJ<<1)|0, - (LBP_XX<<1)|0, (LBP_EX<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_PR<<1)|1, (LBP_PO<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_OP2<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EX<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_OP2<<1)|1, - (LBP_ID1<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_OP2<<1)|1, - (LBP_ID1<<1)|1, (LBP_CL<<1)|1, (LBP_ID1<<1)|1, (LBP_OP2<<1)|1, - (LBP_CL<<1)|1, (LBP_CL<<1)|1, (LBP_OP2<<1)|1, (LBP_CL<<1)|1, - (LBP_CL<<1)|1, (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_NS<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_PO<<1)|1, (LBP_PR<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_PR<<1)|1, (LBP_PR<<1)|1, (LBP_XX<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CB<<1)|0, (LBP_AI<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_IN<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AP<<1)|0, - (LBP_AP<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_VI<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_CM<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_GL<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_NU<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_BB<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_VI<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_BA<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_XX<<1)|0, (LBP_AS<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AS<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_VI<<1)|0, (LBP_AP<<1)|0, (LBP_CM<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_XX<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BB<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_EX<<1)|0, (LBP_EX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, - (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_SA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_XX<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_VI<<1)|0, (LBP_AP<<1)|0, - (LBP_CM<<1)|0, (LBP_AP<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_BB<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BB<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BB<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_BB<<1)|0, - (LBP_BB<<1)|0, (LBP_BB<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_BB<<1)|0, (LBP_EX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_BA<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AP<<1)|0, (LBP_CM<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_XX<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, (LBP_AK<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_VI<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, (LBP_PO<<1)|0, - (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_OP1<<1)|0, (LBP_OP1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_CL<<1)|0, (LBP_CL<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CL<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_CL<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, - (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, - (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_OP1<<1)|0, - (LBP_CL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, (LBP_GL<<1)|0, - (LBP_OP1<<1)|0, (LBP_CL<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_OP1<<1)|0, (LBP_CL<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_AS<<1)|0, - (LBP_AS<<1)|0, (LBP_AS<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_BA<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_GL<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|1, (LBP_CM<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_XX<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_XX<<1)|0, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NS<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_NS<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, (LBP_NS<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_BA<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_BA<<1)|0, - (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_BA<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_PR<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_AL1<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_OP1<<1)|0, (LBP_OP1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_PO<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID2<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|1, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|1, (LBP_AI<<1)|1, (LBP_AI<<1)|1, - (LBP_AI<<1)|1, (LBP_AI<<1)|1, (LBP_AI<<1)|1, (LBP_AI<<1)|1, - (LBP_AI<<1)|1, (LBP_AI<<1)|1, (LBP_AI<<1)|1, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, (LBP_AI<<1)|0, - (LBP_AI<<1)|0, (LBP_AL1<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, (LBP_RI<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|0, - (LBP_EB<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EM<<1)|1, - (LBP_EM<<1)|1, (LBP_EM<<1)|1, (LBP_EM<<1)|1, (LBP_EM<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_AL1<<1)|1, - (LBP_ID1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, - (LBP_AL1<<1)|1, (LBP_AL1<<1)|1, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_EB<<1)|0, (LBP_EB<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_EB<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_EB<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_QU1<<1)|0, (LBP_QU1<<1)|0, - (LBP_QU1<<1)|0, (LBP_NS<<1)|0, (LBP_NS<<1)|0, (LBP_NS<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_EB<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_ID1<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, - (LBP_ID1<<1)|0, (LBP_ID1<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, (LBP_EB<<1)|1, - (LBP_EB<<1)|1, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_XX<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, (LBP_AL1<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_NU<<1)|0, - (LBP_NU<<1)|0, (LBP_NU<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, - (LBP_ID2<<1)|0, (LBP_ID2<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, - (LBP_ID1<<1)|1, (LBP_ID1<<1)|1, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_CM<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, (LBP_CM<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, - (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0, (LBP_XX<<1)|0 - } -}; diff --git a/include/libgnulib/unilbrk/lbrktables.h b/include/libgnulib/unilbrk/lbrktables.h deleted file mode 100755 index 865bea1..0000000 --- a/include/libgnulib/unilbrk/lbrktables.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Line breaking auxiliary tables. - Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include "unitypes.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Line breaking classification. */ - -enum -{ - /* Values >= 41 are resolved at run time. */ - LBP_BK = 41, /* mandatory break */ - LBP_CR = 42, /* carriage return */ - LBP_LF = 43, /* line feed */ - LBP_CM = 44, /* attached characters and combining marks */ -/*LBP_NL, next line - not used here because it's equivalent to LBP_BK */ -/*LBP_SG, surrogates - not used here because they are not characters */ - LBP_WJ = 0, /* word joiner */ - LBP_ZW = 45, /* zero width space */ - LBP_GL = 1, /* non-breaking (glue) */ - LBP_SP = 46, /* space */ - LBP_B2 = 2, /* break opportunity before and after */ - LBP_BA = 3, /* break opportunity after */ - LBP_BB = 4, /* break opportunity before */ - LBP_HY = 5, /* hyphen */ - LBP_CB = 47, /* contingent break opportunity */ - LBP_CL = 6, /* closing punctuation */ - LBP_CP1 = 7, /* closing parenthesis, non-EastAsian character */ - LBP_CP2 = 8, /* closing parenthesis, EastAsian character */ - LBP_EX = 9, /* exclamation/interrogation */ - LBP_IN = 10, /* inseparable */ - LBP_NS = 11, /* non starter */ - LBP_OP1 = 12, /* opening punctuation, non-EastAsian character */ - LBP_OP2 = 13, /* opening punctuation, EastAsian character */ - LBP_QU1 = 14, /* ambiguous quotation, neither initial nor final punctuation */ - LBP_QU2 = 15, /* ambiguous quotation, initial punctuation */ - LBP_QU3 = 16, /* ambiguous quotation, final punctuation */ - LBP_IS = 17, /* infix separator (numeric) */ - LBP_NU = 18, /* numeric */ - LBP_PO = 19, /* postfix (numeric) */ - LBP_PR = 20, /* prefix (numeric) */ - LBP_SY = 21, /* symbols allowing breaks */ - LBP_AI = 48, /* ambiguous (alphabetic or ideograph) */ - LBP_AL1 = 22, /* ordinary alphabetic and symbol characters, != U+25CC */ - LBP_AL2 = 23, /* ordinary alphabetic and symbol characters, == U+25CC */ -/*LBP_CJ, conditional Japanese starter, resolved to NS */ - LBP_H2 = 24, /* Hangul LV syllable */ - LBP_H3 = 25, /* Hangul LVT syllable */ - LBP_HL = 31, /* Hebrew letter */ - LBP_ID1 = 26, /* ideographic */ - LBP_ID2 = 27, /* ideographic and potential future emoji */ - LBP_JL = 28, /* Hangul L Jamo */ - LBP_JV = 29, /* Hangul V Jamo */ - LBP_JT = 30, /* Hangul T Jamo */ - LBP_AP = 32, /* Brahmic scripts: pre-base repha */ - LBP_AK = 33, /* Brahmic scripts: consonants */ - LBP_AS = 34, /* Brahmic scripts: independent vowels */ - LBP_VI = 35, /* Brahmic scripts: conjoining viramas */ - LBP_VF = 36, /* Brahmic scripts: viramas for final consonants */ - LBP_RI = 37, /* regional indicator */ - LBP_SA = 49, /* complex context (South East Asian) */ - LBP_ZWJ = 38, /* zero width joiner */ - LBP_EB = 39, /* emoji base */ - LBP_EM = 40, /* emoji modifier */ - LBP_XX = 50, /* unknown */ - /* Artificial values that exist only at runtime, not in the tables. */ - LBP_AKLS_VI = 100, - LBP_HL_BA = 101 -}; - -#include "lbrkprop1.h" - -/* Combining prop and ea to a table entry. */ -#define PROP_EA(prop,ea) (((prop) << 1) | (ea)) - -/* Splitting a table entry into prop and ea. */ -#define PROP(entry) ((entry) >> 1) -#define EA(entry) ((entry) & 1) - -/* Returns (prop << 1) | ea, where - - prop is the line breaking property, - - ea is the EastAsian property (1 bit) - of UC. */ -static inline unsigned char -unilbrkprop_lookup (ucs4_t uc) -{ - unsigned int index1 = uc >> lbrkprop_header_0; - if (index1 < lbrkprop_header_1) - { - int lookup1 = unilbrkprop.level1[index1]; - if (lookup1 >= 0) - { - unsigned int index2 = (uc >> lbrkprop_header_2) & lbrkprop_header_3; - int lookup2 = unilbrkprop.level2[lookup1 + index2]; - if (lookup2 >= 0) - { - unsigned int index3 = uc & lbrkprop_header_4; - return unilbrkprop.level3[lookup2 + index3]; - } - } - } - return PROP_EA (LBP_XX, 0); -} - - -/* Table indexed by two line breaking classifications. */ -#define D 1 /* direct break opportunity, empty in table 7.3 of UTR #14 */ -#define I 2 /* indirect break opportunity, '%' in table 7.3 of UTR #14 */ -#define P 3 /* prohibited break, '^' in table 7.3 of UTR #14 */ - -extern const unsigned char unilbrk_table[41][41]; - -/* We don't support line breaking of complex-context dependent characters - (Thai, Lao, Myanmar, Khmer) yet, because it requires dictionary lookup. */ - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unilbrk/ulc-common.h b/include/libgnulib/unilbrk/ulc-common.h deleted file mode 100755 index a3f713d..0000000 --- a/include/libgnulib/unilbrk/ulc-common.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Line breaking auxiliary functions. - Copyright (C) 2001-2003, 2006-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -/* Get size_t. */ -#include - -#include "c-ctype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -#define is_utf8_encoding unilbrk_is_utf8_encoding -extern int is_utf8_encoding (const char *encoding); - -#if C_CTYPE_ASCII - -# define is_all_ascii unilbrk_is_all_ascii -extern int is_all_ascii (const char *s, size_t n); - -#endif /* C_CTYPE_ASCII */ - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/uniname/gen-uninames.lisp b/include/libgnulib/uniname/gen-uninames.lisp deleted file mode 100755 index 30191f2..0000000 --- a/include/libgnulib/uniname/gen-uninames.lisp +++ /dev/null @@ -1,376 +0,0 @@ -#!/usr/bin/env -S clisp -C - -;;; Creation of gnulib's uninames.h from the UnicodeData.txt and NameAliases.txt -;;; tables. - -;;; Copyright (C) 2000-2024 Free Software Foundation, Inc. -;;; Written by Bruno Haible , 2000-12-28. -;;; -;;; This program is free software. -;;; It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". -;;; You can redistribute it and/or modify it under either -;;; - the terms of the GNU Lesser General Public License as published -;;; by the Free Software Foundation, either version 3, or (at your -;;; option) any later version, or -;;; - 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, or -;;; - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". -;;; -;;; 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 -;;; Lesser General Public License and the GNU General Public License -;;; for more details. -;;; -;;; You should have received a copy of the GNU Lesser General Public -;;; License and of the GNU General Public License along with this -;;; program. If not, see . - -(defparameter add-comments nil) - -(defstruct unicode-char - (index nil :type integer) - (name nil :type string) - word-indices - word-indices-index -) - -(defstruct range - (index nil :type integer) - (start-code nil :type integer) - (end-code nil :type integer) -) - -(defstruct word-list - (hashed nil :type hash-table) - (sorted nil :type list) - size ; number of characters total - length ; number of words -) - -(defun main (inputfile aliasfile outputfile) - (declare (type string inputfile aliasfile outputfile)) - #+UNICODE (setq *default-file-encoding* charset:utf-8) - (let ((all-chars '()) - (all-chars-hashed (make-hash-table :test #'equal)) - (all-aliases '()) - all-chars-and-aliases - (all-ranges '()) - (name-index 0) - range) - ;; Read all characters and names from the input file. - (with-open-file (istream inputfile :direction :input) - (loop - (let ((line (read-line istream nil nil))) - (unless line (return)) - (let* ((i1 (position #\; line)) - (i2 (position #\; line :start (1+ i1))) - (code-string (subseq line 0 i1)) - (code (parse-integer code-string :radix 16)) - (name-string (subseq line (1+ i1) i2))) - ; Ignore characters whose name starts with "<". - (unless (eql (char name-string 0) #\<) - ; Also ignore Hangul syllables; they are treated specially. - (unless (<= #xAC00 code #xD7A3) - ; Also ignore CJK compatibility ideographs; they are treated - ; specially as well. - (unless (or (<= #xF900 code #xFA2D) (<= #xFA30 code #xFA6A) - (<= #xFA70 code #xFAD9) (<= #x2F800 code #x2FA1D)) - ;; Also ignore variationselectors; they are treated - ;; specially as well. - (unless (or (<= #xFE00 code #xFE0F) (<= #xE0100 code #xE01EF)) - (push (make-unicode-char :index name-index - :name name-string) - all-chars - ) - (setf (gethash code all-chars-hashed) (car all-chars)) - ;; Update the contiguous range, or start a new range. - (if (and range (= (1+ (range-end-code range)) code)) - (setf (range-end-code range) code) - (progn - (when range - (push range all-ranges)) - (setq range (make-range :index name-index - :start-code code - :end-code code)))) - (incf name-index) - ) ) ) ) - ) ) ) ) - (setq all-chars (nreverse all-chars)) - (if range - (push range all-ranges)) - (setq all-ranges (nreverse all-ranges)) - (when aliasfile - ;; Read all characters and names from the alias file. - (with-open-file (istream aliasfile :direction :input) - (loop - (let ((line (read-line istream nil nil))) - (unless line (return)) - (unless (or (equal line "") (equal (subseq line 0 1) "#")) - (let* ((i1 (position #\; line)) - (i2 (position #\; line :start (1+ i1))) - (code-string (subseq line 0 i1)) - (code (parse-integer code-string :radix 16)) - (name-string (subseq line (1+ i1) i2)) - (uc (gethash code all-chars-hashed))) - (when uc - (push (make-unicode-char :index (unicode-char-index uc) - :name name-string) - all-aliases - ) ) ) ) ) ) ) ) - (setq all-aliases (nreverse all-aliases) - all-chars-and-aliases (append all-chars all-aliases) - ) - ;; Split into words. - (let ((words-by-length (make-array 0 :adjustable t))) - (dolist (name (list* "HANGUL SYLLABLE" "CJK COMPATIBILITY" "VARIATION" - (mapcar #'unicode-char-name all-chars-and-aliases))) - (let ((i1 0)) - (loop - (when (>= i1 (length name)) (return)) - (let ((i2 (or (position #\Space name :start i1) (length name)))) - (let* ((word (subseq name i1 i2)) - (len (length word))) - (when (>= len (length words-by-length)) - (adjust-array words-by-length (1+ len)) - ) - (unless (aref words-by-length len) - (setf (aref words-by-length len) - (make-word-list - :hashed (make-hash-table :test #'equal) - :sorted '() - ) ) ) - (let ((word-list (aref words-by-length len))) - (unless (gethash word (word-list-hashed word-list)) - (setf (gethash word (word-list-hashed word-list)) t) - (push word (word-list-sorted word-list)) - ) ) - ) - (setq i1 (1+ i2)) - ) ) ) ) - ;; Sort the word lists. - (dotimes (len (length words-by-length)) - (unless (aref words-by-length len) - (setf (aref words-by-length len) - (make-word-list - :hashed (make-hash-table :test #'equal) - :sorted '() - ) ) ) - (let ((word-list (aref words-by-length len))) - (setf (word-list-sorted word-list) - (sort (word-list-sorted word-list) #'string<) - ) - (setf (word-list-size word-list) - (reduce #'+ (mapcar #'length (word-list-sorted word-list))) - ) - (setf (word-list-length word-list) - (length (word-list-sorted word-list)) - ) ) ) - ;; Output the tables. - (with-open-file (ostream outputfile :direction :output - #+UNICODE :external-format #+UNICODE charset:ascii) - (format ostream "/* DO NOT EDIT! GENERATED AUTOMATICALLY! */~%") - (format ostream "/*~%") - (format ostream " * ~A~%" (file-namestring outputfile)) - (format ostream " *~%") - (format ostream " * Unicode character name table.~%") - (format ostream " * Generated automatically by the gen-uninames utility.~%") - (format ostream " */~%") - (format ostream "/* Copyright (C) 2000-2024 Free Software Foundation, Inc.~%") - (format ostream "~%") - (format ostream " This file is free software.~%") - (format ostream " It is dual-licensed under \"the GNU LGPLv3+ or the GNU GPLv2+\".~%") - (format ostream " You can redistribute it and/or modify it under either~%") - (format ostream " - the terms of the GNU Lesser General Public License as published~%") - (format ostream " by the Free Software Foundation, either version 3, or (at your~%") - (format ostream " option) any later version, or~%") - (format ostream " - the terms of the GNU General Public License as published by the~%") - (format ostream " Free Software Foundation; either version 2, or (at your option)~%") - (format ostream " any later version, or~%") - (format ostream " - the same dual license \"the GNU LGPLv3+ or the GNU GPLv2+\".~%") - (format ostream "~%") - (format ostream " This file is distributed in the hope that it will be useful,~%") - (format ostream " but WITHOUT ANY WARRANTY; without even the implied warranty of~%") - (format ostream " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU~%") - (format ostream " Lesser General Public License and the GNU General Public License~%") - (format ostream " for more details.~%") - (format ostream "~%") - (format ostream " You should have received a copy of the GNU Lesser General Public~%") - (format ostream " License and of the GNU General Public License along with this~%") - (format ostream " program. If not, see . */~%") - (format ostream "~%") - (format ostream "static const char unicode_name_words[~D] = {~%" - (let ((sum 0)) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (incf sum (word-list-size word-list)) - ) ) - sum - ) ) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (dolist (word (word-list-sorted word-list)) - (format ostream " ~{ '~C',~}~%" (coerce word 'list)) - ) ) ) - (format ostream "};~%") - (format ostream "#define UNICODE_CHARNAME_NUM_WORDS ~D~%" - (let ((sum 0)) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (incf sum (word-list-length word-list)) - ) ) - sum - ) ) - #| ; Redundant data - (format ostream "static const uint16_t unicode_name_word_offsets[~D] = {~%" - (let ((sum 0)) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (incf sum (word-list-length word-list)) - ) ) - sum - ) ) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (when (word-list-sorted word-list) - (format ostream " ") - (do ((l (word-list-sorted word-list) (cdr l)) - (offset 0 (+ offset (length (car l))))) - ((endp l)) - (format ostream "~<~% ~0,79:; ~D,~>" offset) - ) - (format ostream "~%") - ) ) ) - (format ostream "};~%") - |# - (format ostream "static const struct { uint32_t extra_offset; uint16_t ind_offset; } unicode_name_by_length[~D] = {~%" - (1+ (length words-by-length)) - ) - (let ((extra-offset 0) - (ind-offset 0)) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (format ostream " { ~D, ~D },~%" extra-offset ind-offset) - (incf extra-offset (word-list-size word-list)) - (incf ind-offset (word-list-length word-list)) - ) ) - (format ostream " { ~D, ~D }~%" extra-offset ind-offset) - ) - (format ostream "};~%") - (let ((ind-offset 0)) - (dotimes (len (length words-by-length)) - (let ((word-list (aref words-by-length len))) - (dolist (word (word-list-sorted word-list)) - (setf (gethash word (word-list-hashed word-list)) ind-offset) - (incf ind-offset) - ) ) ) ) - (dolist (word '("HANGUL" "SYLLABLE" "CJK" "COMPATIBILITY" "VARIATION")) - (format ostream "#define UNICODE_CHARNAME_WORD_~A ~D~%" word - (gethash word (word-list-hashed (aref words-by-length (length word)))) - ) ) - ;; Compute the word-indices for every unicode-char. - (dolist (uc all-chars-and-aliases) - (let ((name (unicode-char-name uc)) - (indices '())) - (let ((i1 0)) - (loop - (when (>= i1 (length name)) (return)) - (let ((i2 (or (position #\Space name :start i1) (length name)))) - (let* ((word (subseq name i1 i2)) - (len (length word))) - (push (gethash word (word-list-hashed (aref words-by-length len))) - indices - ) - ) - (setq i1 (1+ i2)) - ) ) ) - (setf (unicode-char-word-indices uc) - (coerce (nreverse indices) 'vector) - ) - ) ) - ;; Sort the list of unicode-chars by word-indices. - (setq all-chars-and-aliases - (sort all-chars-and-aliases - (lambda (vec1 vec2) - (let ((len1 (length vec1)) - (len2 (length vec2))) - (do ((i 0 (1+ i))) - (nil) - (if (< i len2) - (if (< i len1) - (cond ((< (aref vec1 i) (aref vec2 i)) (return t)) - ((> (aref vec1 i) (aref vec2 i)) (return nil)) - ) - (return t) - ) - (return nil) - ) ) ) ) - :key #'unicode-char-word-indices - ) ) - ;; Output the word-indices. - (format ostream "static const uint16_t unicode_names[~D] = {~%" - (reduce #'+ (mapcar (lambda (uc) (length (unicode-char-word-indices uc))) all-chars-and-aliases)) - ) - (let ((i 0)) - (dolist (uc all-chars-and-aliases) - (format ostream " ~{ ~D,~}" - (maplist (lambda (r) (+ (* 2 (car r)) (if (cdr r) 1 0))) - (coerce (unicode-char-word-indices uc) 'list) - ) - ) - (when add-comments - (format ostream "~40T/* ~A */" (unicode-char-name uc)) - ) - (format ostream "~%") - (setf (unicode-char-word-indices-index uc) i) - (incf i (length (unicode-char-word-indices uc))) - ) ) - (format ostream "};~%") - (format ostream "static const struct { uint16_t index; uint32_t name:24; } ATTRIBUTE_PACKED unicode_name_to_index[~D] = {~%" - (length all-chars-and-aliases) - ) - (dolist (uc all-chars-and-aliases) - (format ostream " { 0x~4,'0X, ~D }," - (unicode-char-index uc) - (unicode-char-word-indices-index uc) - ) - (when add-comments - (format ostream "~21T/* ~A */" (unicode-char-name uc)) - ) - (format ostream "~%") - ) - (format ostream "};~%") - (format ostream "static const struct { uint16_t index; uint32_t name:24; } ATTRIBUTE_PACKED unicode_index_to_name[~D] = {~%" - (length all-chars) - ) - (dolist (uc (sort (copy-list all-chars) #'< :key #'unicode-char-index)) - (format ostream " { 0x~4,'0X, ~D }," - (unicode-char-index uc) - (unicode-char-word-indices-index uc) - ) - (when add-comments - (format ostream "~21T/* ~A */" (unicode-char-name uc)) - ) - (format ostream "~%") - ) - (format ostream "};~%") - (format ostream "#define UNICODE_CHARNAME_MAX_LENGTH ~D~%" - (reduce #'max (mapcar (lambda (uc) (length (unicode-char-name uc))) all-chars-and-aliases)) - ) - (format ostream "#define UNICODE_CHARNAME_MAX_WORDS ~D~%" - (reduce #'max (mapcar (lambda (uc) (length (unicode-char-word-indices uc))) all-chars-and-aliases)) - ) - (format ostream "static const struct { uint16_t index; uint32_t gap; uint16_t length; } unicode_ranges[~D] = {~%" - (length all-ranges)) - (dolist (range all-ranges) - (format ostream " { ~D, ~D, ~D },~%" - (range-index range) - (- (range-start-code range) (range-index range)) - (1+ (- (range-end-code range) (range-start-code range)))) - ) - (format ostream "};~%") - ) -) ) ) - -(main (first *args*) (second *args*) (third *args*)) diff --git a/include/libgnulib/uniname/uninames.h b/include/libgnulib/uniname/uninames.h deleted file mode 100755 index d21adcc..0000000 --- a/include/libgnulib/uniname/uninames.h +++ /dev/null @@ -1,135356 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* - * uninames.h - * - * Unicode character name table. - * Generated automatically by the gen-uninames utility. - */ -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -static const char unicode_name_words[159015] = { - 'A', - 'B', - 'C', - 'D', - 'E', - 'F', - 'G', - 'H', - 'I', - 'J', - 'K', - 'L', - 'M', - 'N', - 'O', - 'P', - 'Q', - 'R', - 'S', - 'T', - 'U', - 'V', - 'W', - 'X', - 'Y', - 'Z', - '-', 'A', - 'A', '2', - 'A', '3', - 'A', 'A', - 'A', 'B', - 'A', 'C', - 'A', 'D', - 'A', 'E', - 'A', 'G', - 'A', 'H', - 'A', 'I', - 'A', 'J', - 'A', 'K', - 'A', 'L', - 'A', 'M', - 'A', 'N', - 'A', 'O', - 'A', 'P', - 'A', 'Q', - 'A', 'R', - 'A', 'S', - 'A', 'T', - 'A', 'U', - 'A', 'V', - 'A', 'W', - 'A', 'X', - 'A', 'Y', - 'A', 'Z', - 'B', 'A', - 'B', 'B', - 'B', 'E', - 'B', 'H', - 'B', 'I', - 'B', 'O', - 'B', 'Q', - 'B', 'U', - 'B', 'Y', - 'C', 'A', - 'C', 'C', - 'C', 'D', - 'C', 'E', - 'C', 'H', - 'C', 'I', - 'C', 'L', - 'C', 'M', - 'C', 'O', - 'C', 'U', - 'C', 'Y', - 'D', '2', - 'D', 'A', - 'D', 'B', - 'D', 'D', - 'D', 'E', - 'D', 'H', - 'D', 'I', - 'D', 'J', - 'D', 'L', - 'D', 'M', - 'D', 'O', - 'D', 'U', - 'D', 'V', - 'D', 'Z', - 'E', '2', - 'E', 'A', - 'E', 'B', - 'E', 'C', - 'E', 'D', - 'E', 'E', - 'E', 'F', - 'E', 'G', - 'E', 'H', - 'E', 'I', - 'E', 'J', - 'E', 'K', - 'E', 'L', - 'E', 'M', - 'E', 'N', - 'E', 'O', - 'E', 'P', - 'E', 'Q', - 'E', 'R', - 'E', 'S', - 'E', 'T', - 'E', 'U', - 'E', 'V', - 'E', 'W', - 'E', 'X', - 'E', 'Z', - 'F', 'A', - 'F', 'E', - 'F', 'F', - 'F', 'I', - 'F', 'L', - 'F', 'M', - 'F', 'O', - 'F', 'U', - 'F', 'Y', - 'G', '2', - 'G', 'A', - 'G', 'B', - 'G', 'E', - 'G', 'G', - 'G', 'H', - 'G', 'I', - 'G', 'N', - 'G', 'O', - 'G', 'U', - 'G', 'V', - 'G', 'W', - 'G', 'Y', - 'H', 'A', - 'H', 'C', - 'H', 'E', - 'H', 'G', - 'H', 'I', - 'H', 'K', - 'H', 'L', - 'H', 'M', - 'H', 'O', - 'H', 'P', - 'H', 'U', - 'H', 'V', - 'H', 'Z', - 'I', 'A', - 'I', 'B', - 'I', 'C', - 'I', 'D', - 'I', 'E', - 'I', 'F', - 'I', 'G', - 'I', 'H', - 'I', 'I', - 'I', 'J', - 'I', 'L', - 'I', 'M', - 'I', 'N', - 'I', 'O', - 'I', 'P', - 'I', 'Q', - 'I', 'R', - 'I', 'S', - 'I', 'T', - 'I', 'U', - 'I', 'X', - 'I', 'Y', - 'I', 'Z', - 'J', 'A', - 'J', 'E', - 'J', 'I', - 'J', 'O', - 'J', 'U', - 'J', 'Y', - 'K', '2', - 'K', 'A', - 'K', 'B', - 'K', 'E', - 'K', 'G', - 'K', 'I', - 'K', 'K', - 'K', 'L', - 'K', 'M', - 'K', 'O', - 'K', 'P', - 'K', 'T', - 'K', 'U', - 'K', 'V', - 'K', 'W', - 'L', '2', - 'L', '3', - 'L', '4', - 'L', '6', - 'L', 'A', - 'L', 'D', - 'L', 'E', - 'L', 'H', - 'L', 'I', - 'L', 'J', - 'L', 'L', - 'L', 'M', - 'L', 'N', - 'L', 'O', - 'L', 'S', - 'L', 'U', - 'L', 'V', - 'L', 'X', - 'L', 'Y', - 'L', 'Z', - 'M', 'A', - 'M', 'B', - 'M', 'C', - 'M', 'D', - 'M', 'E', - 'M', 'G', - 'M', 'H', - 'M', 'I', - 'M', 'L', - 'M', 'M', - 'M', 'O', - 'M', 'Q', - 'M', 'R', - 'M', 'S', - 'M', 'U', - 'M', 'V', - 'M', 'W', - 'M', 'X', - 'M', 'Y', - 'M', 'Z', - 'N', 'A', - 'N', 'D', - 'N', 'E', - 'N', 'F', - 'N', 'G', - 'N', 'H', - 'N', 'I', - 'N', 'J', - 'N', 'M', - 'N', 'N', - 'N', 'O', - 'N', 'S', - 'N', 'U', - 'N', 'V', - 'N', 'W', - 'N', 'Y', - 'O', 'A', - 'O', 'B', - 'O', 'C', - 'O', 'E', - 'O', 'F', - 'O', 'G', - 'O', 'H', - 'O', 'I', - 'O', 'K', - 'O', 'L', - 'O', 'M', - 'O', 'N', - 'O', 'O', - 'O', 'P', - 'O', 'Q', - 'O', 'R', - 'O', 'S', - 'O', 'T', - 'O', 'U', - 'O', 'V', - 'O', 'W', - 'O', 'X', - 'O', 'Y', - 'O', 'Z', - 'P', '2', - 'P', 'A', - 'P', 'C', - 'P', 'D', - 'P', 'E', - 'P', 'F', - 'P', 'G', - 'P', 'H', - 'P', 'I', - 'P', 'M', - 'P', 'O', - 'P', 'R', - 'P', 'S', - 'P', 'U', - 'P', 'V', - 'P', 'W', - 'P', 'Y', - 'P', 'Z', - 'Q', 'A', - 'Q', 'E', - 'Q', 'I', - 'Q', 'N', - 'Q', 'O', - 'Q', 'P', - 'Q', 'U', - 'Q', 'Y', - 'R', 'A', - 'R', 'E', - 'R', 'H', - 'R', 'I', - 'R', 'O', - 'R', 'R', - 'R', 'U', - 'R', 'Y', - 'S', 'A', - 'S', 'D', - 'S', 'E', - 'S', 'G', - 'S', 'H', - 'S', 'I', - 'S', 'K', - 'S', 'O', - 'S', 'P', - 'S', 'R', - 'S', 'S', - 'S', 'T', - 'S', 'U', - 'S', 'V', - 'S', 'W', - 'S', 'Y', - 'S', 'Z', - 'T', 'A', - 'T', 'C', - 'T', 'E', - 'T', 'H', - 'T', 'I', - 'T', 'N', - 'T', 'O', - 'T', 'R', - 'T', 'S', - 'T', 'T', - 'T', 'U', - 'T', 'Z', - 'U', '2', - 'U', 'A', - 'U', 'B', - 'U', 'C', - 'U', 'D', - 'U', 'E', - 'U', 'H', - 'U', 'I', - 'U', 'J', - 'U', 'K', - 'U', 'M', - 'U', 'N', - 'U', 'O', - 'U', 'P', - 'U', 'Q', - 'U', 'R', - 'U', 'S', - 'U', 'U', - 'U', 'X', - 'U', 'Y', - 'U', 'Z', - 'V', 'A', - 'V', 'C', - 'V', 'E', - 'V', 'I', - 'V', 'O', - 'V', 'Q', - 'V', 'S', - 'V', 'U', - 'V', 'W', - 'V', 'X', - 'V', 'Y', - 'V', 'Z', - 'W', 'A', - 'W', 'B', - 'W', 'C', - 'W', 'E', - 'W', 'G', - 'W', 'H', - 'W', 'I', - 'W', 'J', - 'W', 'O', - 'W', 'U', - 'W', 'V', - 'W', 'Z', - 'X', 'A', - 'X', 'E', - 'X', 'G', - 'X', 'I', - 'X', 'O', - 'X', 'U', - 'X', 'W', - 'X', 'Y', - 'Y', 'A', - 'Y', 'E', - 'Y', 'I', - 'Y', 'N', - 'Y', 'O', - 'Y', 'R', - 'Y', 'U', - 'Y', 'V', - 'Y', 'Y', - 'Z', 'A', - 'Z', 'E', - 'Z', 'H', - 'Z', 'I', - 'Z', 'O', - 'Z', 'U', - 'Z', 'Y', - '-', 'U', 'M', - 'A', '-', '1', - 'A', '-', '2', - 'A', '-', '3', - 'A', '-', 'O', - 'A', '-', 'U', - 'A', 'A', 'I', - 'A', 'A', 'J', - 'A', 'A', 'K', - 'A', 'A', 'L', - 'A', 'A', 'M', - 'A', 'A', 'N', - 'A', 'A', 'O', - 'A', 'A', 'U', - 'A', 'A', 'W', - 'A', 'A', 'Y', - 'A', 'B', '2', - 'A', 'B', 'B', - 'A', 'C', 'E', - 'A', 'D', 'I', - 'A', 'D', 'O', - 'A', 'E', 'B', - 'A', 'E', 'D', - 'A', 'E', 'E', - 'A', 'E', 'G', - 'A', 'E', 'K', - 'A', 'E', 'L', - 'A', 'E', 'N', - 'A', 'E', 'R', - 'A', 'E', 'S', - 'A', 'E', 'T', - 'A', 'E', 'Y', - 'A', 'G', 'E', - 'A', 'H', 'H', - 'A', 'I', 'D', - 'A', 'I', 'N', - 'A', 'I', 'R', - 'A', 'L', 'F', - 'A', 'L', 'I', - 'A', 'L', 'L', - 'A', 'L', 'M', - 'A', 'L', 'T', - 'A', 'M', 'B', - 'A', 'N', 'D', - 'A', 'N', 'G', - 'A', 'N', 'H', - 'A', 'N', 'N', - 'A', 'N', 'O', - 'A', 'N', 'T', - 'A', 'N', 'Y', - 'A', 'O', 'R', - 'A', 'O', 'U', - 'A', 'P', 'L', - 'A', 'R', 'C', - 'A', 'R', 'E', - 'A', 'R', 'M', - 'A', 'S', 'H', - 'A', 'S', 'Z', - 'A', 'T', 'T', - 'A', 'U', 'E', - 'A', 'V', 'A', - 'A', 'W', 'C', - 'A', 'W', 'E', - 'A', 'W', 'Q', - 'A', 'W', 'X', - 'A', 'W', 'Z', - 'A', 'X', 'E', - 'A', 'Y', 'B', - 'A', 'Y', 'N', - 'A', 'Z', 'U', - 'B', 'A', 'A', - 'B', 'A', 'D', - 'B', 'A', 'G', - 'B', 'A', 'H', - 'B', 'A', 'L', - 'B', 'A', 'N', - 'B', 'A', 'P', - 'B', 'A', 'R', - 'B', 'A', 'T', - 'B', 'A', 'U', - 'B', 'A', 'X', - 'B', 'B', 'A', - 'B', 'B', 'E', - 'B', 'B', 'I', - 'B', 'B', 'O', - 'B', 'B', 'U', - 'B', 'B', 'Y', - 'B', 'E', 'D', - 'B', 'E', 'E', - 'B', 'E', 'H', - 'B', 'E', 'I', - 'B', 'E', 'N', - 'B', 'E', 'P', - 'B', 'E', 'T', - 'B', 'E', 'X', - 'B', 'H', 'A', - 'B', 'H', 'E', - 'B', 'H', 'I', - 'B', 'H', 'O', - 'B', 'H', 'U', - 'B', 'I', 'B', - 'B', 'I', 'E', - 'B', 'I', 'G', - 'B', 'I', 'P', - 'B', 'I', 'T', - 'B', 'I', 'X', - 'B', 'L', 'A', - 'B', 'O', 'A', - 'B', 'O', 'M', - 'B', 'O', 'O', - 'B', 'O', 'P', - 'B', 'O', 'T', - 'B', 'O', 'W', - 'B', 'O', 'X', - 'B', 'O', 'Y', - 'B', 'R', 'A', - 'B', 'R', 'I', - 'B', 'U', 'D', - 'B', 'U', 'G', - 'B', 'U', 'O', - 'B', 'U', 'P', - 'B', 'U', 'R', - 'B', 'U', 'S', - 'B', 'U', 'T', - 'B', 'U', 'X', - 'B', 'W', 'A', - 'B', 'W', 'E', - 'B', 'W', 'I', - 'B', 'X', 'G', - 'B', 'Y', 'P', - 'B', 'Y', 'R', - 'B', 'Y', 'T', - 'B', 'Y', 'X', - 'C', 'A', 'A', - 'C', 'A', 'H', - 'C', 'A', 'I', - 'C', 'A', 'L', - 'C', 'A', 'N', - 'C', 'A', 'P', - 'C', 'A', 'R', - 'C', 'A', 'T', - 'C', 'A', 'U', - 'C', 'A', 'X', - 'C', 'C', 'A', - 'C', 'C', 'E', - 'C', 'C', 'I', - 'C', 'C', 'O', - 'C', 'C', 'U', - 'C', 'E', 'E', - 'C', 'E', 'N', - 'C', 'E', 'P', - 'C', 'E', 'X', - 'C', 'G', 'J', - 'C', 'H', 'A', - 'C', 'H', 'E', - 'C', 'H', 'I', - 'C', 'H', 'O', - 'C', 'H', 'U', - 'C', 'H', 'Y', - 'C', 'I', 'E', - 'C', 'I', 'I', - 'C', 'I', 'L', - 'C', 'I', 'M', - 'C', 'I', 'N', - 'C', 'I', 'P', - 'C', 'I', 'T', - 'C', 'I', 'X', - 'C', 'J', 'K', - 'C', 'O', 'A', - 'C', 'O', 'N', - 'C', 'O', 'O', - 'C', 'O', 'P', - 'C', 'O', 'T', - 'C', 'O', 'W', - 'C', 'O', 'X', - 'C', 'U', 'M', - 'C', 'U', 'O', - 'C', 'U', 'P', - 'C', 'U', 'R', - 'C', 'U', 'T', - 'C', 'U', 'X', - 'C', 'W', 'A', - 'C', 'W', 'E', - 'C', 'W', 'I', - 'C', 'W', 'O', - 'C', 'Y', 'A', - 'C', 'Y', 'P', - 'C', 'Y', 'R', - 'C', 'Y', 'T', - 'C', 'Y', 'X', - 'D', 'A', 'A', - 'D', 'A', 'D', - 'D', 'A', 'G', - 'D', 'A', 'H', - 'D', 'A', 'I', - 'D', 'A', 'L', - 'D', 'A', 'M', - 'D', 'A', 'P', - 'D', 'A', 'R', - 'D', 'A', 'T', - 'D', 'A', 'X', - 'D', 'A', 'Y', - 'D', 'D', 'A', - 'D', 'D', 'E', - 'D', 'D', 'I', - 'D', 'D', 'O', - 'D', 'D', 'U', - 'D', 'E', 'E', - 'D', 'E', 'I', - 'D', 'E', 'K', - 'D', 'E', 'L', - 'D', 'E', 'P', - 'D', 'E', 'X', - 'D', 'H', 'A', - 'D', 'H', 'E', - 'D', 'H', 'I', - 'D', 'H', 'O', - 'D', 'H', 'U', - 'D', 'I', 'B', - 'D', 'I', 'E', - 'D', 'I', 'L', - 'D', 'I', 'M', - 'D', 'I', 'N', - 'D', 'I', 'P', - 'D', 'I', 'T', - 'D', 'I', 'X', - 'D', 'J', 'A', - 'D', 'J', 'E', - 'D', 'L', 'A', - 'D', 'L', 'E', - 'D', 'L', 'I', - 'D', 'L', 'O', - 'D', 'L', 'U', - 'D', 'N', 'A', - 'D', 'O', 'A', - 'D', 'O', 'G', - 'D', 'O', 'I', - 'D', 'O', 'N', - 'D', 'O', 'O', - 'D', 'O', 'P', - 'D', 'O', 'T', - 'D', 'O', 'X', - 'D', 'R', 'Y', - 'D', 'U', 'B', - 'D', 'U', 'G', - 'D', 'U', 'H', - 'D', 'U', 'L', - 'D', 'U', 'M', - 'D', 'U', 'N', - 'D', 'U', 'O', - 'D', 'U', 'P', - 'D', 'U', 'R', - 'D', 'U', 'T', - 'D', 'U', 'X', - 'D', 'V', 'A', - 'D', 'V', 'D', - 'D', 'W', 'A', - 'D', 'W', 'E', - 'D', 'W', 'O', - 'D', 'Y', 'O', - 'D', 'Z', 'A', - 'D', 'Z', 'E', - 'D', 'Z', 'I', - 'D', 'Z', 'O', - 'D', 'Z', 'U', - 'E', '-', '1', - 'E', '-', '2', - 'E', '-', '3', - 'E', '-', '4', - 'E', '-', '5', - 'E', '-', '6', - 'E', 'A', 'R', - 'E', 'A', 'T', - 'E', 'C', 'H', - 'E', 'C', 'S', - 'E', 'D', 'D', - 'E', 'E', 'H', - 'E', 'E', 'N', - 'E', 'G', 'G', - 'E', 'G', 'Y', - 'E', 'I', 'E', - 'E', 'I', 'N', - 'E', 'I', 'S', - 'E', 'K', 'O', - 'E', 'K', 'S', - 'E', 'L', 'F', - 'E', 'L', 'L', - 'E', 'L', 'T', - 'E', 'L', 'Y', - 'E', 'M', 'P', - 'E', 'N', 'C', - 'E', 'N', 'D', - 'E', 'N', 'G', - 'E', 'N', 'N', - 'E', 'N', 'T', - 'E', 'N', 'Y', - 'E', 'O', 'H', - 'E', 'R', 'A', - 'E', 'R', 'G', - 'E', 'R', 'R', - 'E', 'R', 'S', - 'E', 'S', 'H', - 'E', 'S', 'O', - 'E', 'S', 'S', - 'E', 'S', 'Z', - 'E', 'T', 'A', - 'E', 'T', 'H', - 'E', 'T', 'T', - 'E', 'T', 'Y', - 'E', 'W', 'E', - 'E', 'X', 'O', - 'E', 'Y', 'E', - 'E', 'Y', 'N', - 'E', 'Z', 'H', - 'E', 'Z', 'S', - 'F', 'A', 'A', - 'F', 'A', 'J', - 'F', 'A', 'M', - 'F', 'A', 'N', - 'F', 'A', 'P', - 'F', 'A', 'Q', - 'F', 'A', 'R', - 'F', 'A', 'T', - 'F', 'A', 'X', - 'F', 'A', 'Y', - 'F', 'E', 'E', - 'F', 'E', 'H', - 'F', 'E', 'I', - 'F', 'F', 'I', - 'F', 'F', 'L', - 'F', 'I', 'I', - 'F', 'I', 'P', - 'F', 'I', 'T', - 'F', 'I', 'X', - 'F', 'L', 'A', - 'F', 'L', 'Y', - 'F', 'O', 'G', - 'F', 'O', 'M', - 'F', 'O', 'N', - 'F', 'O', 'O', - 'F', 'O', 'P', - 'F', 'O', 'R', - 'F', 'O', 'X', - 'F', 'S', 'I', - 'F', 'U', 'A', - 'F', 'U', 'E', - 'F', 'U', 'P', - 'F', 'U', 'R', - 'F', 'U', 'T', - 'F', 'U', 'X', - 'F', 'W', 'A', - 'F', 'W', 'E', - 'F', 'W', 'I', - 'F', 'Y', 'A', - 'F', 'Y', 'P', - 'F', 'Y', 'T', - 'F', 'Y', 'X', - 'G', 'A', '2', - 'G', 'A', 'A', - 'G', 'A', 'D', - 'G', 'A', 'F', - 'G', 'A', 'G', - 'G', 'A', 'H', - 'G', 'A', 'I', - 'G', 'A', 'L', - 'G', 'A', 'M', - 'G', 'A', 'N', - 'G', 'A', 'P', - 'G', 'A', 'R', - 'G', 'A', 'T', - 'G', 'A', 'X', - 'G', 'A', 'Y', - 'G', 'B', 'A', - 'G', 'B', 'E', - 'G', 'B', 'I', - 'G', 'B', 'O', - 'G', 'B', 'U', - 'G', 'E', 'E', - 'G', 'E', 'M', - 'G', 'E', 'N', - 'G', 'E', 'P', - 'G', 'E', 'R', - 'G', 'E', 'T', - 'G', 'E', 'X', - 'G', 'G', 'A', - 'G', 'G', 'E', - 'G', 'G', 'I', - 'G', 'G', 'O', - 'G', 'G', 'U', - 'G', 'H', 'A', - 'G', 'H', 'E', - 'G', 'H', 'I', - 'G', 'H', 'O', - 'G', 'H', 'U', - 'G', 'H', 'Z', - 'G', 'I', '4', - 'G', 'I', 'E', - 'G', 'I', 'G', - 'G', 'I', 'L', - 'G', 'I', 'M', - 'G', 'I', 'P', - 'G', 'I', 'T', - 'G', 'I', 'X', - 'G', 'J', 'A', - 'G', 'J', 'E', - 'G', 'L', 'A', - 'G', 'O', 'A', - 'G', 'O', 'K', - 'G', 'O', 'O', - 'G', 'O', 'P', - 'G', 'O', 'T', - 'G', 'O', 'X', - 'G', 'P', 'A', - 'G', 'R', 'U', - 'G', 'U', '2', - 'G', 'U', 'A', - 'G', 'U', 'D', - 'G', 'U', 'G', - 'G', 'U', 'L', - 'G', 'U', 'M', - 'G', 'U', 'O', - 'G', 'U', 'P', - 'G', 'U', 'R', - 'G', 'U', 'T', - 'G', 'U', 'X', - 'G', 'W', 'A', - 'G', 'W', 'E', - 'G', 'W', 'I', - 'G', 'W', 'U', - 'G', 'Y', 'A', - 'G', 'Y', 'E', - 'G', 'Y', 'I', - 'G', 'Y', 'O', - 'G', 'Y', 'U', - 'H', 'A', 'A', - 'H', 'A', 'E', - 'H', 'A', 'H', - 'H', 'A', 'I', - 'H', 'A', 'L', - 'H', 'A', 'M', - 'H', 'A', 'N', - 'H', 'A', 'O', - 'H', 'A', 'P', - 'H', 'A', 'R', - 'H', 'A', 'T', - 'H', 'A', 'U', - 'H', 'A', 'X', - 'H', 'A', 'Y', - 'H', 'D', 'R', - 'H', 'E', 'E', - 'H', 'E', 'H', - 'H', 'E', 'I', - 'H', 'E', 'N', - 'H', 'E', 'P', - 'H', 'E', 'T', - 'H', 'E', 'X', - 'H', 'H', 'A', - 'H', 'H', 'E', - 'H', 'H', 'I', - 'H', 'H', 'O', - 'H', 'H', 'U', - 'H', 'I', 'E', - 'H', 'I', 'I', - 'H', 'I', 'N', - 'H', 'I', 'P', - 'H', 'I', 'T', - 'H', 'J', 'A', - 'H', 'L', 'A', - 'H', 'L', 'E', - 'H', 'L', 'I', - 'H', 'L', 'O', - 'H', 'L', 'U', - 'H', 'L', 'Y', - 'H', 'M', 'A', - 'H', 'M', 'E', - 'H', 'M', 'I', - 'H', 'M', 'O', - 'H', 'M', 'U', - 'H', 'M', 'Y', - 'H', 'N', 'A', - 'H', 'N', 'E', - 'H', 'N', 'I', - 'H', 'O', 'A', - 'H', 'O', 'E', - 'H', 'O', 'I', - 'H', 'O', 'M', - 'H', 'O', 'N', - 'H', 'O', 'O', - 'H', 'O', 'P', - 'H', 'O', 'T', - 'H', 'O', 'X', - 'H', 'O', 'Y', - 'H', 'P', 'A', - 'H', 'T', 'A', - 'H', 'U', 'B', - 'H', 'U', 'K', - 'H', 'U', 'N', - 'H', 'U', 'O', - 'H', 'U', 'T', - 'H', 'W', 'A', - 'H', 'W', 'E', - 'H', 'W', 'I', - 'H', 'W', 'O', - 'H', 'W', 'U', - 'H', 'X', 'A', - 'H', 'X', 'E', - 'H', 'X', 'G', - 'H', 'X', 'I', - 'H', 'X', 'O', - 'H', 'Y', 'A', - 'H', 'Z', 'G', - 'H', 'Z', 'T', - 'H', 'Z', 'W', - 'H', 'Z', 'Z', - 'I', '-', '1', - 'I', '-', '2', - 'I', '-', '3', - 'I', '-', '4', - 'I', '-', 'A', - 'I', '-', 'I', - 'I', '-', 'O', - 'I', '-', 'U', - 'I', 'A', 'N', - 'I', 'C', 'E', - 'I', 'D', 'D', - 'I', 'E', 'P', - 'I', 'E', 'T', - 'I', 'E', 'X', - 'I', 'G', 'I', - 'I', 'J', 'E', - 'I', 'L', '2', - 'I', 'M', 'N', - 'I', 'M', 'P', - 'I', 'N', 'G', - 'I', 'N', 'I', - 'I', 'N', 'K', - 'I', 'N', 'N', - 'I', 'N', 'Y', - 'I', 'O', 'R', - 'I', 'R', 'B', - 'I', 'R', 'I', - 'I', 'S', 'H', - 'I', 'S', 'S', - 'I', 'T', 'S', - 'I', 'T', 'T', - 'I', 'W', 'N', - 'J', 'A', 'A', - 'J', 'A', 'H', - 'J', 'A', 'R', - 'J', 'A', 'W', - 'J', 'E', 'E', - 'J', 'E', 'H', - 'J', 'E', 'R', - 'J', 'E', 'U', - 'J', 'H', 'A', - 'J', 'H', 'O', - 'J', 'I', 'A', - 'J', 'I', 'E', - 'J', 'I', 'L', - 'J', 'I', 'P', - 'J', 'I', 'T', - 'J', 'I', 'X', - 'J', 'J', 'A', - 'J', 'J', 'E', - 'J', 'J', 'I', - 'J', 'J', 'O', - 'J', 'J', 'U', - 'J', 'J', 'Y', - 'J', 'O', 'A', - 'J', 'O', 'O', - 'J', 'O', 'P', - 'J', 'O', 'T', - 'J', 'O', 'X', - 'J', 'O', 'Y', - 'J', 'U', 'O', - 'J', 'U', 'P', - 'J', 'U', 'R', - 'J', 'U', 'T', - 'J', 'U', 'U', - 'J', 'U', 'X', - 'J', 'W', 'A', - 'J', 'Y', 'P', - 'J', 'Y', 'R', - 'J', 'Y', 'T', - 'J', 'Y', 'X', - 'K', 'A', '2', - 'K', 'A', 'A', - 'K', 'A', 'B', - 'K', 'A', 'D', - 'K', 'A', 'F', - 'K', 'A', 'H', - 'K', 'A', 'I', - 'K', 'A', 'K', - 'K', 'A', 'L', - 'K', 'A', 'M', - 'K', 'A', 'N', - 'K', 'A', 'P', - 'K', 'A', 'Q', - 'K', 'A', 'R', - 'K', 'A', 'T', - 'K', 'A', 'V', - 'K', 'A', 'X', - 'K', 'A', 'Y', - 'K', 'E', 'B', - 'K', 'E', 'E', - 'K', 'E', 'H', - 'K', 'E', 'N', - 'K', 'E', 'P', - 'K', 'E', 'S', - 'K', 'E', 'T', - 'K', 'E', 'V', - 'K', 'E', 'X', - 'K', 'E', 'Y', - 'K', 'H', 'A', - 'K', 'H', 'E', - 'K', 'H', 'I', - 'K', 'H', 'O', - 'K', 'H', 'U', - 'K', 'H', 'Z', - 'K', 'I', 'B', - 'K', 'I', 'D', - 'K', 'I', 'E', - 'K', 'I', 'H', - 'K', 'I', 'I', - 'K', 'I', 'K', - 'K', 'I', 'N', - 'K', 'I', 'P', - 'K', 'I', 'Q', - 'K', 'I', 'T', - 'K', 'I', 'V', - 'K', 'I', 'W', - 'K', 'I', 'X', - 'K', 'J', 'E', - 'K', 'K', 'A', - 'K', 'K', 'E', - 'K', 'K', 'I', - 'K', 'K', 'O', - 'K', 'K', 'U', - 'K', 'L', 'A', - 'K', 'O', 'A', - 'K', 'O', 'B', - 'K', 'O', 'H', - 'K', 'O', 'I', - 'K', 'O', 'K', - 'K', 'O', 'N', - 'K', 'O', 'O', - 'K', 'O', 'P', - 'K', 'O', 'T', - 'K', 'O', 'V', - 'K', 'O', 'X', - 'K', 'P', 'A', - 'K', 'P', 'E', - 'K', 'P', 'I', - 'K', 'P', 'O', - 'K', 'P', 'U', - 'K', 'R', 'A', - 'K', 'S', 'I', - 'K', 'U', '3', - 'K', 'U', '4', - 'K', 'U', '7', - 'K', 'U', 'A', - 'K', 'U', 'B', - 'K', 'U', 'G', - 'K', 'U', 'L', - 'K', 'U', 'N', - 'K', 'U', 'O', - 'K', 'U', 'P', - 'K', 'U', 'Q', - 'K', 'U', 'R', - 'K', 'U', 'T', - 'K', 'U', 'V', - 'K', 'U', 'X', - 'K', 'V', 'A', - 'K', 'W', 'A', - 'K', 'W', 'B', - 'K', 'W', 'E', - 'K', 'W', 'I', - 'K', 'W', 'M', - 'K', 'W', 'O', - 'K', 'W', 'V', - 'K', 'X', 'A', - 'K', 'X', 'E', - 'K', 'X', 'I', - 'K', 'X', 'O', - 'K', 'X', 'U', - 'K', 'Y', 'A', - 'K', 'Y', 'E', - 'K', 'Y', 'I', - 'K', 'Y', 'O', - 'K', 'Y', 'U', - 'L', 'A', 'A', - 'L', 'A', 'B', - 'L', 'A', 'E', - 'L', 'A', 'H', - 'L', 'A', 'I', - 'L', 'A', 'L', - 'L', 'A', 'M', - 'L', 'A', 'N', - 'L', 'A', 'O', - 'L', 'A', 'P', - 'L', 'A', 'Q', - 'L', 'A', 'S', - 'L', 'A', 'T', - 'L', 'A', 'U', - 'L', 'A', 'W', - 'L', 'A', 'X', - 'L', 'A', 'Y', - 'L', 'C', 'E', - 'L', 'C', 'I', - 'L', 'D', '2', - 'L', 'E', 'E', - 'L', 'E', 'G', - 'L', 'E', 'I', - 'L', 'E', 'K', - 'L', 'E', 'O', - 'L', 'E', 'P', - 'L', 'E', 'T', - 'L', 'E', 'U', - 'L', 'E', 'X', - 'L', 'H', 'A', - 'L', 'H', 'E', - 'L', 'H', 'I', - 'L', 'H', 'O', - 'L', 'H', 'U', - 'L', 'I', 'D', - 'L', 'I', 'E', - 'L', 'I', 'I', - 'L', 'I', 'L', - 'L', 'I', 'P', - 'L', 'I', 'Q', - 'L', 'I', 'S', - 'L', 'I', 'T', - 'L', 'I', 'X', - 'L', 'J', 'E', - 'L', 'L', 'A', - 'L', 'L', 'E', - 'L', 'L', 'L', - 'L', 'O', 'A', - 'L', 'O', 'G', - 'L', 'O', 'M', - 'L', 'O', 'O', - 'L', 'O', 'P', - 'L', 'O', 'Q', - 'L', 'O', 'S', - 'L', 'O', 'T', - 'L', 'O', 'W', - 'L', 'O', 'X', - 'L', 'R', 'E', - 'L', 'R', 'I', - 'L', 'R', 'M', - 'L', 'R', 'O', - 'L', 'U', '2', - 'L', 'U', '3', - 'L', 'U', 'B', - 'L', 'U', 'E', - 'L', 'U', 'H', - 'L', 'U', 'L', - 'L', 'U', 'M', - 'L', 'U', 'O', - 'L', 'U', 'P', - 'L', 'U', 'R', - 'L', 'U', 'S', - 'L', 'U', 'T', - 'L', 'U', 'X', - 'L', 'W', 'A', - 'L', 'W', 'E', - 'L', 'W', 'I', - 'L', 'W', 'O', - 'L', 'Y', 'A', - 'L', 'Y', 'P', - 'L', 'Y', 'R', - 'L', 'Y', 'T', - 'L', 'Y', 'X', - 'L', 'Y', 'Y', - 'M', 'A', '2', - 'M', 'A', 'A', - 'M', 'A', 'E', - 'M', 'A', 'H', - 'M', 'A', 'I', - 'M', 'A', 'N', - 'M', 'A', 'O', - 'M', 'A', 'P', - 'M', 'A', 'Q', - 'M', 'A', 'R', - 'M', 'A', 'T', - 'M', 'A', 'U', - 'M', 'A', 'X', - 'M', 'A', 'Y', - 'M', 'B', '2', - 'M', 'B', '3', - 'M', 'B', '4', - 'M', 'B', 'A', - 'M', 'B', 'E', - 'M', 'B', 'I', - 'M', 'B', 'O', - 'M', 'B', 'U', - 'M', 'E', 'D', - 'M', 'E', 'E', - 'M', 'E', 'M', - 'M', 'E', 'N', - 'M', 'E', 'S', - 'M', 'E', 'X', - 'M', 'F', 'O', - 'M', 'G', 'A', - 'M', 'G', 'E', - 'M', 'G', 'O', - 'M', 'G', 'U', - 'M', 'H', 'A', - 'M', 'H', 'Z', - 'M', 'I', 'D', - 'M', 'I', 'E', - 'M', 'I', 'G', - 'M', 'I', 'I', - 'M', 'I', 'L', - 'M', 'I', 'M', - 'M', 'I', 'N', - 'M', 'I', 'P', - 'M', 'I', 'T', - 'M', 'I', 'X', - 'M', 'L', 'A', - 'M', 'O', 'A', - 'M', 'O', 'L', - 'M', 'O', 'N', - 'M', 'O', 'O', - 'M', 'O', 'P', - 'M', 'O', 'T', - 'M', 'O', 'X', - 'M', 'P', 'A', - 'M', 'R', 'O', - 'M', 'U', 'E', - 'M', 'U', 'G', - 'M', 'U', 'M', - 'M', 'U', 'N', - 'M', 'U', 'O', - 'M', 'U', 'P', - 'M', 'U', 'R', - 'M', 'U', 'S', - 'M', 'U', 'T', - 'M', 'U', 'X', - 'M', 'V', 'I', - 'M', 'V', 'S', - 'M', 'W', 'A', - 'M', 'W', 'E', - 'M', 'W', 'I', - 'M', 'W', 'O', - 'M', 'Y', 'A', - 'M', 'Y', 'P', - 'M', 'Y', 'T', - 'M', 'Y', 'X', - 'N', 'A', '2', - 'N', 'A', '4', - 'N', 'A', 'A', - 'N', 'A', 'E', - 'N', 'A', 'G', - 'N', 'A', 'H', - 'N', 'A', 'M', - 'N', 'A', 'N', - 'N', 'A', 'P', - 'N', 'A', 'Q', - 'N', 'A', 'R', - 'N', 'A', 'U', - 'N', 'A', 'X', - 'N', 'A', 'Y', - 'N', 'B', 'A', - 'N', 'B', 'I', - 'N', 'B', 'O', - 'N', 'B', 'U', - 'N', 'B', 'Y', - 'N', 'C', 'A', - 'N', 'D', 'A', - 'N', 'D', 'E', - 'N', 'D', 'I', - 'N', 'D', 'O', - 'N', 'D', 'U', - 'N', 'E', 'E', - 'N', 'E', 'L', - 'N', 'E', 'N', - 'N', 'E', 'O', - 'N', 'E', 'P', - 'N', 'E', 'T', - 'N', 'E', 'W', - 'N', 'E', 'X', - 'N', 'G', 'A', - 'N', 'G', 'E', - 'N', 'G', 'G', - 'N', 'G', 'I', - 'N', 'G', 'O', - 'N', 'G', 'U', - 'N', 'H', 'A', - 'N', 'I', '2', - 'N', 'I', 'A', - 'N', 'I', 'B', - 'N', 'I', 'E', - 'N', 'I', 'I', - 'N', 'I', 'M', - 'N', 'I', 'N', - 'N', 'I', 'P', - 'N', 'I', 'T', - 'N', 'I', 'X', - 'N', 'J', 'A', - 'N', 'J', 'E', - 'N', 'J', 'I', - 'N', 'J', 'O', - 'N', 'J', 'U', - 'N', 'J', 'Y', - 'N', 'K', 'A', - 'N', 'K', 'O', - 'N', 'N', 'A', - 'N', 'N', 'E', - 'N', 'N', 'G', - 'N', 'N', 'O', - 'N', 'O', 'A', - 'N', 'O', 'N', - 'N', 'O', 'O', - 'N', 'O', 'P', - 'N', 'O', 'R', - 'N', 'O', 'T', - 'N', 'O', 'W', - 'N', 'O', 'X', - 'N', 'O', 'Y', - 'N', 'P', 'A', - 'N', 'P', 'N', - 'N', 'Q', 'A', - 'N', 'R', 'A', - 'N', 'R', 'E', - 'N', 'R', 'O', - 'N', 'R', 'U', - 'N', 'R', 'Y', - 'N', 'S', 'A', - 'N', 'T', 'A', - 'N', 'T', 'U', - 'N', 'U', 'E', - 'N', 'U', 'M', - 'N', 'U', 'N', - 'N', 'U', 'O', - 'N', 'U', 'P', - 'N', 'U', 'R', - 'N', 'U', 'T', - 'N', 'U', 'X', - 'N', 'W', 'A', - 'N', 'W', 'E', - 'N', 'W', 'I', - 'N', 'W', 'O', - 'N', 'X', 'A', - 'N', 'Y', 'A', - 'N', 'Y', 'D', - 'N', 'Y', 'E', - 'N', 'Y', 'I', - 'N', 'Y', 'O', - 'N', 'Y', 'U', - 'N', 'Z', 'A', - 'N', 'Z', 'E', - 'N', 'Z', 'I', - 'N', 'Z', 'U', - 'N', 'Z', 'Y', - 'O', '-', '1', - 'O', '-', '2', - 'O', '-', '3', - 'O', '-', 'E', - 'O', '-', 'O', - 'O', '-', 'U', - 'O', 'A', 'K', - 'O', 'A', 'Y', - 'O', 'C', 'R', - 'O', 'D', 'D', - 'O', 'E', 'E', - 'O', 'E', 'K', - 'O', 'E', 'R', - 'O', 'E', 'Y', - 'O', 'F', 'F', - 'O', 'H', 'M', - 'O', 'I', 'L', - 'O', 'I', 'N', - 'O', 'L', 'D', - 'O', 'L', 'E', - 'O', 'N', 'E', - 'O', 'N', 'G', - 'O', 'N', 'N', - 'O', 'N', 'U', - 'O', 'O', 'E', - 'O', 'O', 'H', - 'O', 'O', 'N', - 'O', 'O', 'U', - 'O', 'R', 'E', - 'O', 'R', 'R', - 'O', 'T', 'T', - 'O', 'T', 'U', - 'O', 'U', 'T', - 'O', 'W', 'L', - 'P', 'A', 'A', - 'P', 'A', 'D', - 'P', 'A', 'H', - 'P', 'A', 'N', - 'P', 'A', 'O', - 'P', 'A', 'P', - 'P', 'A', 'R', - 'P', 'A', 'T', - 'P', 'A', 'U', - 'P', 'A', 'W', - 'P', 'A', 'X', - 'P', 'A', 'Y', - 'P', 'D', 'F', - 'P', 'D', 'I', - 'P', 'E', 'A', - 'P', 'E', 'E', - 'P', 'E', 'H', - 'P', 'E', 'N', - 'P', 'E', 'R', - 'P', 'E', 'S', - 'P', 'E', 'T', - 'P', 'H', 'A', - 'P', 'H', 'E', - 'P', 'H', 'I', - 'P', 'H', 'O', - 'P', 'H', 'U', - 'P', 'I', 'E', - 'P', 'I', 'G', - 'P', 'I', 'I', - 'P', 'I', 'N', - 'P', 'I', 'P', - 'P', 'I', 'T', - 'P', 'I', 'X', - 'P', 'L', 'A', - 'P', 'N', 'P', - 'P', 'O', 'A', - 'P', 'O', 'D', - 'P', 'O', 'N', - 'P', 'O', 'O', - 'P', 'O', 'P', - 'P', 'O', 'T', - 'P', 'O', 'X', - 'P', 'O', 'Y', - 'P', 'P', 'A', - 'P', 'P', 'M', - 'P', 'P', 'V', - 'P', 'S', 'A', - 'P', 'S', 'I', - 'P', 'T', 'E', - 'P', 'U', '2', - 'P', 'U', 'B', - 'P', 'U', 'E', - 'P', 'U', 'M', - 'P', 'U', 'O', - 'P', 'U', 'P', - 'P', 'U', 'Q', - 'P', 'U', 'R', - 'P', 'U', 'T', - 'P', 'U', 'X', - 'P', 'V', 'O', - 'P', 'W', 'A', - 'P', 'W', 'E', - 'P', 'W', 'I', - 'P', 'W', 'O', - 'P', 'Y', 'P', - 'P', 'Y', 'R', - 'P', 'Y', 'T', - 'P', 'Y', 'X', - 'Q', 'A', 'A', - 'Q', 'A', 'F', - 'Q', 'A', 'I', - 'Q', 'A', 'Q', - 'Q', 'A', 'R', - 'Q', 'A', 'U', - 'Q', 'A', 'Y', - 'Q', 'E', 'E', - 'Q', 'G', 'A', - 'Q', 'H', 'A', - 'Q', 'H', 'E', - 'Q', 'H', 'I', - 'Q', 'H', 'O', - 'Q', 'H', 'U', - 'Q', 'I', 'E', - 'Q', 'I', 'F', - 'Q', 'I', 'I', - 'Q', 'I', 'P', - 'Q', 'I', 'T', - 'Q', 'I', 'X', - 'Q', 'O', 'A', - 'Q', 'O', 'F', - 'Q', 'O', 'O', - 'Q', 'O', 'P', - 'Q', 'O', 'T', - 'Q', 'O', 'X', - 'Q', 'U', 'A', - 'Q', 'U', 'E', - 'Q', 'U', 'F', - 'Q', 'U', 'I', - 'Q', 'U', 'K', - 'Q', 'U', 'O', - 'Q', 'U', 'P', - 'Q', 'U', 'R', - 'Q', 'U', 'T', - 'Q', 'U', 'U', - 'Q', 'U', 'V', - 'Q', 'U', 'X', - 'Q', 'W', 'A', - 'Q', 'W', 'E', - 'Q', 'W', 'I', - 'Q', 'Y', 'A', - 'Q', 'Y', 'E', - 'Q', 'Y', 'I', - 'Q', 'Y', 'O', - 'Q', 'Y', 'P', - 'Q', 'Y', 'R', - 'Q', 'Y', 'T', - 'Q', 'Y', 'U', - 'Q', 'Y', 'X', - 'R', 'A', '2', - 'R', 'A', '3', - 'R', 'A', 'A', - 'R', 'A', 'B', - 'R', 'A', 'D', - 'R', 'A', 'E', - 'R', 'A', 'H', - 'R', 'A', 'I', - 'R', 'A', 'M', - 'R', 'A', 'N', - 'R', 'A', 'P', - 'R', 'A', 'Q', - 'R', 'A', 'T', - 'R', 'A', 'U', - 'R', 'A', 'X', - 'R', 'A', 'Y', - 'R', 'D', 'O', - 'R', 'E', 'D', - 'R', 'E', 'E', - 'R', 'E', 'H', - 'R', 'E', 'I', - 'R', 'E', 'N', - 'R', 'E', 'P', - 'R', 'E', 'U', - 'R', 'E', 'X', - 'R', 'H', 'A', - 'R', 'H', 'O', - 'R', 'I', 'I', - 'R', 'I', 'M', - 'R', 'I', 'N', - 'R', 'I', 'P', - 'R', 'J', 'E', - 'R', 'L', 'E', - 'R', 'L', 'I', - 'R', 'L', 'M', - 'R', 'L', 'O', - 'R', 'M', 'T', - 'R', 'O', '2', - 'R', 'O', 'A', - 'R', 'O', 'C', - 'R', 'O', 'D', - 'R', 'O', 'G', - 'R', 'O', 'M', - 'R', 'O', 'O', - 'R', 'O', 'P', - 'R', 'O', 'T', - 'R', 'O', 'X', - 'R', 'R', 'A', - 'R', 'R', 'E', - 'R', 'R', 'O', - 'R', 'R', 'U', - 'R', 'R', 'Y', - 'R', 'T', 'E', - 'R', 'U', 'A', - 'R', 'U', 'B', - 'R', 'U', 'E', - 'R', 'U', 'M', - 'R', 'U', 'N', - 'R', 'U', 'O', - 'R', 'U', 'P', - 'R', 'U', 'R', - 'R', 'U', 'T', - 'R', 'U', 'X', - 'R', 'W', 'A', - 'R', 'W', 'E', - 'R', 'W', 'I', - 'R', 'W', 'O', - 'R', 'Y', 'A', - 'R', 'Y', 'P', - 'R', 'Y', 'R', - 'R', 'Y', 'T', - 'R', 'Y', 'X', - 'R', 'Y', 'Y', - 'S', '-', 'W', - 'S', 'A', 'A', - 'S', 'A', 'D', - 'S', 'A', 'G', - 'S', 'A', 'H', - 'S', 'A', 'L', - 'S', 'A', 'M', - 'S', 'A', 'N', - 'S', 'A', 'P', - 'S', 'A', 'Q', - 'S', 'A', 'R', - 'S', 'A', 'T', - 'S', 'A', 'W', - 'S', 'A', 'X', - 'S', 'A', 'Y', - 'S', 'E', 'E', - 'S', 'E', 'H', - 'S', 'E', 'P', - 'S', 'E', 'T', - 'S', 'E', 'X', - 'S', 'H', '2', - 'S', 'H', 'A', - 'S', 'H', 'E', - 'S', 'H', 'I', - 'S', 'H', 'O', - 'S', 'H', 'U', - 'S', 'H', 'V', - 'S', 'H', 'Y', - 'S', 'I', 'A', - 'S', 'I', 'E', - 'S', 'I', 'G', - 'S', 'I', 'I', - 'S', 'I', 'N', - 'S', 'I', 'P', - 'S', 'I', 'T', - 'S', 'I', 'X', - 'S', 'J', 'E', - 'S', 'K', 'I', - 'S', 'K', 'W', - 'S', 'N', 'A', - 'S', 'O', 'A', - 'S', 'O', 'F', - 'S', 'O', 'M', - 'S', 'O', 'N', - 'S', 'O', 'O', - 'S', 'O', 'P', - 'S', 'O', 'Q', - 'S', 'O', 'S', - 'S', 'O', 'T', - 'S', 'O', 'U', - 'S', 'O', 'W', - 'S', 'O', 'X', - 'S', 'O', 'Y', - 'S', 'P', 'A', - 'S', 'P', 'E', - 'S', 'P', 'I', - 'S', 'P', 'O', - 'S', 'P', 'Y', - 'S', 'S', 'A', - 'S', 'S', 'E', - 'S', 'S', 'I', - 'S', 'S', 'O', - 'S', 'S', 'U', - 'S', 'S', 'Y', - 'S', 'T', '2', - 'S', 'T', 'A', - 'S', 'U', 'A', - 'S', 'U', 'D', - 'S', 'U', 'E', - 'S', 'U', 'M', - 'S', 'U', 'N', - 'S', 'U', 'O', - 'S', 'U', 'P', - 'S', 'U', 'R', - 'S', 'U', 'T', - 'S', 'U', 'U', - 'S', 'U', 'X', - 'S', 'W', 'A', - 'S', 'W', 'E', - 'S', 'W', 'G', - 'S', 'W', 'I', - 'S', 'W', 'O', - 'S', 'W', 'Z', - 'S', 'Y', 'A', - 'S', 'Y', 'I', - 'S', 'Y', 'P', - 'S', 'Y', 'R', - 'S', 'Y', 'T', - 'S', 'Y', 'X', - 'S', 'Z', 'A', - 'S', 'Z', 'E', - 'S', 'Z', 'I', - 'S', 'Z', 'O', - 'S', 'Z', 'P', - 'S', 'Z', 'U', - 'S', 'Z', 'Z', - 'T', 'A', '2', - 'T', 'A', 'A', - 'T', 'A', 'B', - 'T', 'A', 'E', - 'T', 'A', 'G', - 'T', 'A', 'H', - 'T', 'A', 'I', - 'T', 'A', 'K', - 'T', 'A', 'M', - 'T', 'A', 'N', - 'T', 'A', 'O', - 'T', 'A', 'P', - 'T', 'A', 'Q', - 'T', 'A', 'R', - 'T', 'A', 'S', - 'T', 'A', 'T', - 'T', 'A', 'U', - 'T', 'A', 'V', - 'T', 'A', 'W', - 'T', 'A', 'X', - 'T', 'A', 'Y', - 'T', 'E', 'A', - 'T', 'E', 'E', - 'T', 'E', 'H', - 'T', 'E', 'K', - 'T', 'E', 'N', - 'T', 'E', 'P', - 'T', 'E', 'T', - 'T', 'E', 'U', - 'T', 'E', 'X', - 'T', 'H', 'A', - 'T', 'H', 'E', - 'T', 'H', 'I', - 'T', 'H', 'O', - 'T', 'H', 'U', - 'T', 'H', 'Z', - 'T', 'I', '2', - 'T', 'I', 'E', - 'T', 'I', 'I', - 'T', 'I', 'L', - 'T', 'I', 'N', - 'T', 'I', 'P', - 'T', 'I', 'R', - 'T', 'I', 'T', - 'T', 'I', 'X', - 'T', 'J', 'E', - 'T', 'L', 'A', - 'T', 'L', 'E', - 'T', 'L', 'I', - 'T', 'L', 'O', - 'T', 'L', 'U', - 'T', 'L', 'V', - 'T', 'O', 'A', - 'T', 'O', 'N', - 'T', 'O', 'O', - 'T', 'O', 'P', - 'T', 'O', 'Q', - 'T', 'O', 'S', - 'T', 'O', 'T', - 'T', 'O', 'V', - 'T', 'O', 'X', - 'T', 'R', 'A', - 'T', 'R', 'I', - 'T', 'S', 'A', - 'T', 'S', 'E', - 'T', 'S', 'I', - 'T', 'S', 'O', - 'T', 'S', 'U', - 'T', 'S', 'V', - 'T', 'T', '2', - 'T', 'T', 'A', - 'T', 'T', 'E', - 'T', 'T', 'H', - 'T', 'T', 'I', - 'T', 'T', 'O', - 'T', 'T', 'U', - 'T', 'U', 'B', - 'T', 'U', 'K', - 'T', 'U', 'M', - 'T', 'U', 'O', - 'T', 'U', 'P', - 'T', 'U', 'R', - 'T', 'U', 'T', - 'T', 'U', 'X', - 'T', 'W', 'A', - 'T', 'W', 'E', - 'T', 'W', 'I', - 'T', 'W', 'O', - 'T', 'X', 'A', - 'T', 'Y', 'A', - 'T', 'Y', 'E', - 'T', 'Y', 'I', - 'T', 'Y', 'O', - 'T', 'Y', 'R', - 'T', 'Z', 'A', - 'T', 'Z', 'E', - 'T', 'Z', 'I', - 'T', 'Z', 'O', - 'T', 'Z', 'U', - 'U', '-', '1', - 'U', '-', '2', - 'U', '-', '3', - 'U', '-', '4', - 'U', '-', '5', - 'U', '-', 'A', - 'U', '-', 'U', - 'U', 'A', 'N', - 'U', 'D', 'D', - 'U', 'E', 'A', - 'U', 'E', 'C', - 'U', 'E', 'E', - 'U', 'E', 'I', - 'U', 'E', 'N', - 'U', 'E', 'Q', - 'U', 'E', 'X', - 'U', 'E', 'Y', - 'U', 'E', 'Z', - 'U', 'H', 'D', - 'U', 'I', 'C', - 'U', 'I', 'Q', - 'U', 'I', 'X', - 'U', 'I', 'Z', - 'U', 'K', 'U', - 'U', 'L', 'U', - 'U', 'N', 'A', - 'U', 'N', 'G', - 'U', 'N', 'K', - 'U', 'N', 'N', - 'U', 'N', 'Y', - 'U', 'O', 'G', - 'U', 'O', 'N', - 'U', 'O', 'P', - 'U', 'O', 'X', - 'U', 'R', '2', - 'U', 'R', '4', - 'U', 'R', 'A', - 'U', 'R', 'I', - 'U', 'R', 'N', - 'U', 'R', 'U', - 'U', 'S', 'E', - 'U', 'S', 'H', - 'U', 'U', 'E', - 'U', 'U', 'U', - 'U', 'W', 'U', - 'U', 'Z', '3', - 'U', 'Z', 'U', - 'V', 'A', 'A', - 'V', 'A', 'H', - 'V', 'A', 'I', - 'V', 'A', 'J', - 'V', 'A', 'P', - 'V', 'A', 'T', - 'V', 'A', 'U', - 'V', 'A', 'V', - 'V', 'A', 'X', - 'V', 'E', 'E', - 'V', 'E', 'H', - 'V', 'E', 'P', - 'V', 'E', 'R', - 'V', 'E', 'W', - 'V', 'E', 'X', - 'V', 'F', 'A', - 'V', 'H', 'A', - 'V', 'I', 'E', - 'V', 'I', 'N', - 'V', 'I', 'P', - 'V', 'I', 'T', - 'V', 'I', 'X', - 'V', 'O', 'D', - 'V', 'O', 'M', - 'V', 'O', 'O', - 'V', 'O', 'P', - 'V', 'O', 'S', - 'V', 'O', 'T', - 'V', 'O', 'U', - 'V', 'O', 'W', - 'V', 'O', 'X', - 'V', 'U', 'P', - 'V', 'U', 'R', - 'V', 'U', 'T', - 'V', 'U', 'X', - 'V', 'W', 'A', - 'V', 'W', 'J', - 'V', 'Y', 'P', - 'V', 'Y', 'R', - 'V', 'Y', 'T', - 'V', 'Y', 'X', - 'W', 'A', 'A', - 'W', 'A', 'E', - 'W', 'A', 'I', - 'W', 'A', 'N', - 'W', 'A', 'P', - 'W', 'A', 'T', - 'W', 'A', 'U', - 'W', 'A', 'W', - 'W', 'A', 'X', - 'W', 'A', 'Y', - 'W', 'E', 'B', - 'W', 'E', 'E', - 'W', 'E', 'I', - 'W', 'E', 'N', - 'W', 'E', 'O', - 'W', 'E', 'P', - 'W', 'E', 'T', - 'W', 'E', 'X', - 'W', 'I', 'I', - 'W', 'I', 'N', - 'W', 'O', 'A', - 'W', 'O', 'E', - 'W', 'O', 'N', - 'W', 'O', 'O', - 'W', 'O', 'P', - 'W', 'O', 'W', - 'W', 'O', 'X', - 'W', 'R', 'Y', - 'W', 'U', 'E', - 'W', 'U', 'I', - 'W', 'U', 'N', - 'W', 'U', 'O', - 'W', 'U', 'P', - 'W', 'V', 'A', - 'W', 'V', 'E', - 'W', 'V', 'I', - 'X', '-', 'X', - 'X', 'A', 'A', - 'X', 'A', 'N', - 'X', 'A', 'U', - 'X', 'E', 'E', - 'X', 'E', 'H', - 'X', 'H', 'A', - 'X', 'I', 'E', - 'X', 'I', 'P', - 'X', 'I', 'T', - 'X', 'I', 'X', - 'X', 'O', 'A', - 'X', 'O', 'P', - 'X', 'O', 'R', - 'X', 'O', 'T', - 'X', 'O', 'X', - 'X', 'U', 'O', - 'X', 'V', 'A', - 'X', 'V', 'E', - 'X', 'W', 'A', - 'X', 'W', 'E', - 'X', 'W', 'I', - 'X', 'Y', 'A', - 'X', 'Y', 'E', - 'X', 'Y', 'I', - 'X', 'Y', 'O', - 'X', 'Y', 'P', - 'X', 'Y', 'R', - 'X', 'Y', 'T', - 'X', 'Y', 'U', - 'X', 'Y', 'X', - 'Y', 'A', 'A', - 'Y', 'A', 'B', - 'Y', 'A', 'D', - 'Y', 'A', 'E', - 'Y', 'A', 'F', - 'Y', 'A', 'G', - 'Y', 'A', 'H', - 'Y', 'A', 'J', - 'Y', 'A', 'K', - 'Y', 'A', 'L', - 'Y', 'A', 'M', - 'Y', 'A', 'N', - 'Y', 'A', 'P', - 'Y', 'A', 'Q', - 'Y', 'A', 'R', - 'Y', 'A', 'S', - 'Y', 'A', 'T', - 'Y', 'A', 'U', - 'Y', 'A', 'V', - 'Y', 'A', 'W', - 'Y', 'A', 'Y', - 'Y', 'A', 'Z', - 'Y', 'E', 'A', - 'Y', 'E', 'E', - 'Y', 'E', 'H', - 'Y', 'E', 'N', - 'Y', 'E', 'O', - 'Y', 'E', 'R', - 'Y', 'E', 'W', - 'Y', 'E', 'Y', - 'Y', 'H', 'A', - 'Y', 'H', 'E', - 'Y', 'I', 'E', - 'Y', 'I', 'G', - 'Y', 'I', 'H', - 'Y', 'I', 'I', - 'Y', 'I', 'N', - 'Y', 'I', 'P', - 'Y', 'I', 'T', - 'Y', 'I', 'X', - 'Y', 'O', 'A', - 'Y', 'O', 'D', - 'Y', 'O', 'O', - 'Y', 'O', 'P', - 'Y', 'O', 'Q', - 'Y', 'O', 'T', - 'Y', 'O', 'U', - 'Y', 'O', 'X', - 'Y', 'O', 'Y', - 'Y', 'R', 'Y', - 'Y', 'U', 'E', - 'Y', 'U', 'I', - 'Y', 'U', 'J', - 'Y', 'U', 'M', - 'Y', 'U', 'N', - 'Y', 'U', 'O', - 'Y', 'U', 'P', - 'Y', 'U', 'Q', - 'Y', 'U', 'R', - 'Y', 'U', 'S', - 'Y', 'U', 'T', - 'Y', 'U', 'X', - 'Y', 'W', 'A', - 'Y', 'W', 'E', - 'Y', 'W', 'I', - 'Y', 'W', 'O', - 'Y', 'Y', 'A', - 'Y', 'Y', 'E', - 'Y', 'Y', 'P', - 'Y', 'Y', 'R', - 'Y', 'Y', 'T', - 'Y', 'Y', 'X', - 'Z', 'A', '7', - 'Z', 'A', 'A', - 'Z', 'A', 'G', - 'Z', 'A', 'H', - 'Z', 'A', 'I', - 'Z', 'A', 'L', - 'Z', 'A', 'P', - 'Z', 'A', 'T', - 'Z', 'A', 'X', - 'Z', 'E', '2', - 'Z', 'E', 'E', - 'Z', 'E', 'N', - 'Z', 'E', 'P', - 'Z', 'E', 'X', - 'Z', 'H', 'A', - 'Z', 'H', 'E', - 'Z', 'H', 'I', - 'Z', 'H', 'O', - 'Z', 'H', 'U', - 'Z', 'H', 'Y', - 'Z', 'I', '3', - 'Z', 'I', 'B', - 'Z', 'I', 'E', - 'Z', 'I', 'G', - 'Z', 'I', 'P', - 'Z', 'I', 'T', - 'Z', 'I', 'X', - 'Z', 'J', 'E', - 'Z', 'L', 'A', - 'Z', 'O', 'A', - 'Z', 'O', 'O', - 'Z', 'O', 'P', - 'Z', 'O', 'T', - 'Z', 'O', 'X', - 'Z', 'R', 'A', - 'Z', 'S', 'A', - 'Z', 'U', '5', - 'Z', 'U', 'M', - 'Z', 'U', 'O', - 'Z', 'U', 'P', - 'Z', 'U', 'R', - 'Z', 'U', 'T', - 'Z', 'U', 'X', - 'Z', 'W', 'A', - 'Z', 'W', 'J', - 'Z', 'Y', 'P', - 'Z', 'Y', 'R', - 'Z', 'Y', 'T', - 'Z', 'Y', 'X', - 'Z', 'Z', 'A', - 'Z', 'Z', 'E', - 'Z', 'Z', 'I', - 'Z', 'Z', 'O', - 'Z', 'Z', 'U', - 'Z', 'Z', 'Y', - 'A', '-', 'E', 'U', - 'A', '-', 'W', 'O', - 'A', '0', '0', '1', - 'A', '0', '0', '2', - 'A', '0', '0', '3', - 'A', '0', '0', '4', - 'A', '0', '0', '5', - 'A', '0', '0', '6', - 'A', '0', '0', '7', - 'A', '0', '0', '8', - 'A', '0', '0', '9', - 'A', '0', '1', '0', - 'A', '0', '1', '1', - 'A', '0', '1', '2', - 'A', '0', '1', '3', - 'A', '0', '1', '4', - 'A', '0', '1', '5', - 'A', '0', '1', '6', - 'A', '0', '1', '7', - 'A', '0', '1', '8', - 'A', '0', '1', '9', - 'A', '0', '2', '0', - 'A', '0', '2', '1', - 'A', '0', '2', '2', - 'A', '0', '2', '3', - 'A', '0', '2', '4', - 'A', '0', '2', '5', - 'A', '0', '2', '6', - 'A', '0', '2', '7', - 'A', '0', '2', '8', - 'A', '0', '2', '9', - 'A', '0', '3', '0', - 'A', '0', '3', '1', - 'A', '0', '3', '2', - 'A', '0', '3', '3', - 'A', '0', '3', '4', - 'A', '0', '3', '5', - 'A', '0', '3', '6', - 'A', '0', '3', '7', - 'A', '0', '3', '8', - 'A', '0', '3', '9', - 'A', '0', '4', '0', - 'A', '0', '4', '1', - 'A', '0', '4', '2', - 'A', '0', '4', '3', - 'A', '0', '4', '4', - 'A', '0', '4', '5', - 'A', '0', '4', '6', - 'A', '0', '4', '7', - 'A', '0', '4', '8', - 'A', '0', '4', '9', - 'A', '0', '5', '0', - 'A', '0', '5', '1', - 'A', '0', '5', '2', - 'A', '0', '5', '3', - 'A', '0', '5', '4', - 'A', '0', '5', '5', - 'A', '0', '5', '6', - 'A', '0', '5', '7', - 'A', '0', '5', '8', - 'A', '0', '5', '9', - 'A', '0', '6', '0', - 'A', '0', '6', '1', - 'A', '0', '6', '2', - 'A', '0', '6', '3', - 'A', '0', '6', '4', - 'A', '0', '6', '5', - 'A', '0', '6', '6', - 'A', '0', '6', '7', - 'A', '0', '6', '8', - 'A', '0', '6', '9', - 'A', '0', '7', '0', - 'A', '0', '7', '1', - 'A', '0', '7', '2', - 'A', '0', '7', '3', - 'A', '0', '7', '4', - 'A', '0', '7', '5', - 'A', '0', '7', '6', - 'A', '0', '7', '7', - 'A', '0', '7', '8', - 'A', '0', '7', '9', - 'A', '0', '8', '0', - 'A', '0', '8', '1', - 'A', '0', '8', '2', - 'A', '0', '8', '3', - 'A', '0', '8', '4', - 'A', '0', '8', '5', - 'A', '0', '8', '6', - 'A', '0', '8', '7', - 'A', '0', '8', '8', - 'A', '0', '8', '9', - 'A', '0', '9', '0', - 'A', '0', '9', '1', - 'A', '0', '9', '2', - 'A', '0', '9', '3', - 'A', '0', '9', '4', - 'A', '0', '9', '5', - 'A', '0', '9', '6', - 'A', '0', '9', '7', - 'A', '0', '9', '8', - 'A', '0', '9', '9', - 'A', '1', '0', '0', - 'A', '1', '0', '1', - 'A', '1', '0', '2', - 'A', '1', '0', '3', - 'A', '1', '0', '4', - 'A', '1', '0', '5', - 'A', '1', '0', '6', - 'A', '1', '0', '7', - 'A', '1', '0', '8', - 'A', '1', '0', '9', - 'A', '1', '1', '0', - 'A', '1', '1', '1', - 'A', '1', '1', '2', - 'A', '1', '1', '3', - 'A', '1', '1', '4', - 'A', '1', '1', '5', - 'A', '1', '1', '6', - 'A', '1', '1', '7', - 'A', '1', '1', '8', - 'A', '1', '1', '9', - 'A', '1', '2', '0', - 'A', '1', '2', '1', - 'A', '1', '2', '2', - 'A', '1', '2', '3', - 'A', '1', '2', '4', - 'A', '1', '2', '5', - 'A', '1', '2', '6', - 'A', '1', '2', '7', - 'A', '1', '2', '8', - 'A', '1', '2', '9', - 'A', '1', '3', '0', - 'A', '1', '3', '1', - 'A', '1', '3', '2', - 'A', '1', '3', '3', - 'A', '1', '3', '4', - 'A', '1', '3', '5', - 'A', '1', '3', '6', - 'A', '1', '3', '7', - 'A', '1', '3', '8', - 'A', '1', '3', '9', - 'A', '1', '4', '0', - 'A', '1', '4', '1', - 'A', '1', '4', '2', - 'A', '1', '4', '3', - 'A', '1', '4', '4', - 'A', '1', '4', '5', - 'A', '1', '4', '6', - 'A', '1', '4', '7', - 'A', '1', '4', '8', - 'A', '1', '4', '9', - 'A', '1', '5', '0', - 'A', '1', '5', '1', - 'A', '1', '5', '2', - 'A', '1', '5', '3', - 'A', '1', '5', '4', - 'A', '1', '5', '5', - 'A', '1', '5', '6', - 'A', '1', '5', '7', - 'A', '1', '5', '8', - 'A', '1', '5', '9', - 'A', '1', '6', '0', - 'A', '1', '6', '1', - 'A', '1', '6', '2', - 'A', '1', '6', '3', - 'A', '1', '6', '4', - 'A', '1', '6', '5', - 'A', '1', '6', '6', - 'A', '1', '6', '7', - 'A', '1', '6', '8', - 'A', '1', '6', '9', - 'A', '1', '7', '0', - 'A', '1', '7', '1', - 'A', '1', '7', '2', - 'A', '1', '7', '3', - 'A', '1', '7', '4', - 'A', '1', '7', '5', - 'A', '1', '7', '6', - 'A', '1', '7', '7', - 'A', '1', '7', '8', - 'A', '1', '7', '9', - 'A', '1', '8', '0', - 'A', '1', '8', '1', - 'A', '1', '8', '2', - 'A', '1', '8', '3', - 'A', '1', '8', '4', - 'A', '1', '8', '5', - 'A', '1', '8', '6', - 'A', '1', '8', '7', - 'A', '1', '8', '8', - 'A', '1', '8', '9', - 'A', '1', '9', '0', - 'A', '1', '9', '1', - 'A', '1', '9', '2', - 'A', '1', '9', '3', - 'A', '1', '9', '4', - 'A', '1', '9', '5', - 'A', '1', '9', '6', - 'A', '1', '9', '7', - 'A', '1', '9', '8', - 'A', '1', '9', '9', - 'A', '2', '0', '0', - 'A', '2', '0', '1', - 'A', '2', '0', '2', - 'A', '2', '0', '3', - 'A', '2', '0', '4', - 'A', '2', '0', '5', - 'A', '2', '0', '6', - 'A', '2', '0', '7', - 'A', '2', '0', '8', - 'A', '2', '0', '9', - 'A', '2', '1', '0', - 'A', '2', '1', '1', - 'A', '2', '1', '2', - 'A', '2', '1', '3', - 'A', '2', '1', '4', - 'A', '2', '1', '5', - 'A', '2', '1', '6', - 'A', '2', '1', '7', - 'A', '2', '1', '8', - 'A', '2', '1', '9', - 'A', '2', '2', '0', - 'A', '2', '2', '1', - 'A', '2', '2', '2', - 'A', '2', '2', '3', - 'A', '2', '2', '4', - 'A', '2', '2', '5', - 'A', '2', '2', '6', - 'A', '2', '2', '7', - 'A', '2', '2', '8', - 'A', '2', '2', '9', - 'A', '2', '3', '0', - 'A', '2', '3', '1', - 'A', '2', '3', '2', - 'A', '2', '3', '3', - 'A', '2', '3', '4', - 'A', '2', '3', '5', - 'A', '2', '3', '6', - 'A', '2', '3', '7', - 'A', '2', '3', '8', - 'A', '2', '3', '9', - 'A', '2', '4', '0', - 'A', '2', '4', '1', - 'A', '2', '4', '2', - 'A', '2', '4', '3', - 'A', '2', '4', '4', - 'A', '2', '4', '5', - 'A', '2', '4', '6', - 'A', '2', '4', '7', - 'A', '2', '4', '8', - 'A', '2', '4', '9', - 'A', '2', '5', '0', - 'A', '2', '5', '1', - 'A', '2', '5', '2', - 'A', '2', '5', '3', - 'A', '2', '5', '4', - 'A', '2', '5', '5', - 'A', '2', '5', '6', - 'A', '2', '5', '7', - 'A', '2', '5', '8', - 'A', '2', '5', '9', - 'A', '2', '6', '0', - 'A', '2', '6', '1', - 'A', '2', '6', '2', - 'A', '2', '6', '3', - 'A', '2', '6', '4', - 'A', '2', '6', '5', - 'A', '2', '6', '6', - 'A', '2', '6', '7', - 'A', '2', '6', '8', - 'A', '2', '6', '9', - 'A', '2', '7', '0', - 'A', '2', '7', '1', - 'A', '2', '7', '2', - 'A', '2', '7', '3', - 'A', '2', '7', '4', - 'A', '2', '7', '5', - 'A', '2', '7', '6', - 'A', '2', '7', '7', - 'A', '2', '7', '8', - 'A', '2', '7', '9', - 'A', '2', '8', '0', - 'A', '2', '8', '1', - 'A', '2', '8', '2', - 'A', '2', '8', '3', - 'A', '2', '8', '4', - 'A', '2', '8', '5', - 'A', '2', '8', '6', - 'A', '2', '8', '7', - 'A', '2', '8', '8', - 'A', '2', '8', '9', - 'A', '2', '9', '0', - 'A', '2', '9', '1', - 'A', '2', '9', '2', - 'A', '2', '9', '3', - 'A', '2', '9', '4', - 'A', '2', '9', '5', - 'A', '2', '9', '6', - 'A', '2', '9', '7', - 'A', '2', '9', '8', - 'A', '2', '9', '9', - 'A', '3', '0', '0', - 'A', '3', '0', '1', - 'A', '3', '0', '2', - 'A', '3', '0', '3', - 'A', '3', '0', '4', - 'A', '3', '0', '5', - 'A', '3', '0', '6', - 'A', '3', '0', '7', - 'A', '3', '0', '8', - 'A', '3', '0', '9', - 'A', '3', '1', '0', - 'A', '3', '1', '1', - 'A', '3', '1', '2', - 'A', '3', '1', '3', - 'A', '3', '1', '4', - 'A', '3', '1', '5', - 'A', '3', '1', '6', - 'A', '3', '1', '7', - 'A', '3', '1', '8', - 'A', '3', '1', '9', - 'A', '3', '2', '0', - 'A', '3', '2', '1', - 'A', '3', '2', '2', - 'A', '3', '2', '3', - 'A', '3', '2', '4', - 'A', '3', '2', '5', - 'A', '3', '2', '6', - 'A', '3', '2', '7', - 'A', '3', '2', '8', - 'A', '3', '2', '9', - 'A', '3', '3', '0', - 'A', '3', '3', '1', - 'A', '3', '3', '2', - 'A', '3', '3', '3', - 'A', '3', '3', '4', - 'A', '3', '3', '5', - 'A', '3', '3', '6', - 'A', '3', '3', '7', - 'A', '3', '3', '8', - 'A', '3', '3', '9', - 'A', '3', '4', '0', - 'A', '3', '4', '1', - 'A', '3', '4', '2', - 'A', '3', '4', '3', - 'A', '3', '4', '4', - 'A', '3', '4', '5', - 'A', '3', '4', '6', - 'A', '3', '4', '7', - 'A', '3', '4', '8', - 'A', '3', '4', '9', - 'A', '3', '5', '0', - 'A', '3', '5', '1', - 'A', '3', '5', '2', - 'A', '3', '5', '3', - 'A', '3', '5', '4', - 'A', '3', '5', '5', - 'A', '3', '5', '6', - 'A', '3', '5', '7', - 'A', '3', '5', '8', - 'A', '3', '5', '9', - 'A', '3', '6', '0', - 'A', '3', '6', '1', - 'A', '3', '6', '2', - 'A', '3', '6', '3', - 'A', '3', '6', '4', - 'A', '3', '6', '5', - 'A', '3', '6', '6', - 'A', '3', '6', '7', - 'A', '3', '6', '8', - 'A', '3', '6', '9', - 'A', '3', '7', '0', - 'A', '3', '7', '1', - 'A', '3', '7', '2', - 'A', '3', '7', '3', - 'A', '3', '7', '4', - 'A', '3', '7', '5', - 'A', '3', '7', '6', - 'A', '3', '7', '7', - 'A', '3', '7', '8', - 'A', '3', '7', '9', - 'A', '3', '8', '0', - 'A', '3', '8', '1', - 'A', '3', '8', '2', - 'A', '3', '8', '3', - 'A', '3', '8', '4', - 'A', '3', '8', '5', - 'A', '3', '8', '6', - 'A', '3', '8', '7', - 'A', '3', '8', '8', - 'A', '3', '8', '9', - 'A', '3', '9', '0', - 'A', '3', '9', '1', - 'A', '3', '9', '2', - 'A', '3', '9', '3', - 'A', '3', '9', '4', - 'A', '3', '9', '5', - 'A', '3', '9', '6', - 'A', '3', '9', '7', - 'A', '3', '9', '8', - 'A', '3', '9', '9', - 'A', '4', '0', '0', - 'A', '4', '0', '1', - 'A', '4', '0', '2', - 'A', '4', '0', '3', - 'A', '4', '0', '4', - 'A', '4', '0', '5', - 'A', '4', '0', '6', - 'A', '4', '0', '7', - 'A', '4', '0', '8', - 'A', '4', '0', '9', - 'A', '4', '1', '0', - 'A', '4', '1', '1', - 'A', '4', '1', '2', - 'A', '4', '1', '3', - 'A', '4', '1', '4', - 'A', '4', '1', '5', - 'A', '4', '1', '6', - 'A', '4', '1', '7', - 'A', '4', '1', '8', - 'A', '4', '1', '9', - 'A', '4', '2', '0', - 'A', '4', '2', '1', - 'A', '4', '2', '2', - 'A', '4', '2', '3', - 'A', '4', '2', '4', - 'A', '4', '2', '5', - 'A', '4', '2', '6', - 'A', '4', '2', '7', - 'A', '4', '2', '8', - 'A', '4', '2', '9', - 'A', '4', '3', '0', - 'A', '4', '3', '1', - 'A', '4', '3', '2', - 'A', '4', '3', '3', - 'A', '4', '3', '4', - 'A', '4', '3', '5', - 'A', '4', '3', '6', - 'A', '4', '3', '7', - 'A', '4', '3', '8', - 'A', '4', '3', '9', - 'A', '4', '4', '0', - 'A', '4', '4', '1', - 'A', '4', '4', '2', - 'A', '4', '4', '3', - 'A', '4', '4', '4', - 'A', '4', '4', '5', - 'A', '4', '4', '6', - 'A', '4', '4', '7', - 'A', '4', '4', '8', - 'A', '4', '4', '9', - 'A', '4', '5', '0', - 'A', '4', '5', '1', - 'A', '4', '5', '2', - 'A', '4', '5', '3', - 'A', '4', '5', '4', - 'A', '4', '5', '5', - 'A', '4', '5', '6', - 'A', '4', '5', '7', - 'A', '4', '5', '8', - 'A', '4', '5', '9', - 'A', '4', '6', '0', - 'A', '4', '6', '1', - 'A', '4', '6', '2', - 'A', '4', '6', '3', - 'A', '4', '6', '4', - 'A', '4', '6', '5', - 'A', '4', '6', '6', - 'A', '4', '6', '7', - 'A', '4', '6', '8', - 'A', '4', '6', '9', - 'A', '4', '7', '0', - 'A', '4', '7', '1', - 'A', '4', '7', '2', - 'A', '4', '7', '3', - 'A', '4', '7', '4', - 'A', '4', '7', '5', - 'A', '4', '7', '6', - 'A', '4', '7', '7', - 'A', '4', '7', '8', - 'A', '4', '7', '9', - 'A', '4', '8', '0', - 'A', '4', '8', '1', - 'A', '4', '8', '2', - 'A', '4', '8', '3', - 'A', '4', '8', '4', - 'A', '4', '8', '5', - 'A', '4', '8', '6', - 'A', '4', '8', '7', - 'A', '4', '8', '8', - 'A', '4', '8', '9', - 'A', '4', '9', '0', - 'A', '4', '9', '1', - 'A', '4', '9', '2', - 'A', '4', '9', '3', - 'A', '4', '9', '4', - 'A', '4', '9', '5', - 'A', '4', '9', '6', - 'A', '4', '9', '7', - 'A', '5', '0', '1', - 'A', '5', '0', '2', - 'A', '5', '0', '3', - 'A', '5', '0', '4', - 'A', '5', '0', '5', - 'A', '5', '0', '6', - 'A', '5', '0', '7', - 'A', '5', '0', '8', - 'A', '5', '0', '9', - 'A', '5', '1', '0', - 'A', '5', '1', '1', - 'A', '5', '1', '2', - 'A', '5', '1', '3', - 'A', '5', '1', '4', - 'A', '5', '1', '5', - 'A', '5', '1', '6', - 'A', '5', '1', '7', - 'A', '5', '1', '8', - 'A', '5', '1', '9', - 'A', '5', '2', '0', - 'A', '5', '2', '1', - 'A', '5', '2', '2', - 'A', '5', '2', '3', - 'A', '5', '2', '4', - 'A', '5', '2', '5', - 'A', '5', '2', '6', - 'A', '5', '2', '7', - 'A', '5', '2', '8', - 'A', '5', '2', '9', - 'A', '5', '3', '0', - 'A', '5', '3', '1', - 'A', '5', '3', '2', - 'A', '5', '3', '4', - 'A', '5', '3', '5', - 'A', '5', '3', '6', - 'A', '5', '3', '7', - 'A', '5', '3', '8', - 'A', '5', '3', '9', - 'A', '5', '4', '0', - 'A', '5', '4', '1', - 'A', '5', '4', '2', - 'A', '5', '4', '5', - 'A', '5', '4', '7', - 'A', '5', '4', '8', - 'A', '5', '4', '9', - 'A', '5', '5', '0', - 'A', '5', '5', '1', - 'A', '5', '5', '2', - 'A', '5', '5', '3', - 'A', '5', '5', '4', - 'A', '5', '5', '5', - 'A', '5', '5', '6', - 'A', '5', '5', '7', - 'A', '5', '5', '9', - 'A', '5', '6', '3', - 'A', '5', '6', '4', - 'A', '5', '6', '5', - 'A', '5', '6', '6', - 'A', '5', '6', '8', - 'A', '5', '6', '9', - 'A', '5', '7', '0', - 'A', '5', '7', '1', - 'A', '5', '7', '2', - 'A', '5', '7', '3', - 'A', '5', '7', '4', - 'A', '5', '7', '5', - 'A', '5', '7', '6', - 'A', '5', '7', '7', - 'A', '5', '7', '8', - 'A', '5', '7', '9', - 'A', '5', '8', '0', - 'A', '5', '8', '1', - 'A', '5', '8', '2', - 'A', '5', '8', '3', - 'A', '5', '8', '4', - 'A', '5', '8', '5', - 'A', '5', '8', '6', - 'A', '5', '8', '7', - 'A', '5', '8', '8', - 'A', '5', '8', '9', - 'A', '5', '9', '1', - 'A', '5', '9', '2', - 'A', '5', '9', '4', - 'A', '5', '9', '5', - 'A', '5', '9', '6', - 'A', '5', '9', '8', - 'A', '6', '0', '0', - 'A', '6', '0', '1', - 'A', '6', '0', '2', - 'A', '6', '0', '3', - 'A', '6', '0', '4', - 'A', '6', '0', '6', - 'A', '6', '0', '8', - 'A', '6', '0', '9', - 'A', '6', '1', '0', - 'A', '6', '1', '1', - 'A', '6', '1', '2', - 'A', '6', '1', '3', - 'A', '6', '1', '4', - 'A', '6', '1', '5', - 'A', '6', '1', '6', - 'A', '6', '1', '7', - 'A', '6', '1', '8', - 'A', '6', '1', '9', - 'A', '6', '2', '0', - 'A', '6', '2', '1', - 'A', '6', '2', '2', - 'A', '6', '2', '3', - 'A', '6', '2', '4', - 'A', '6', '2', '6', - 'A', '6', '2', '7', - 'A', '6', '2', '8', - 'A', '6', '2', '9', - 'A', '6', '3', '4', - 'A', '6', '3', '7', - 'A', '6', '3', '8', - 'A', '6', '4', '0', - 'A', '6', '4', '2', - 'A', '6', '4', '3', - 'A', '6', '4', '4', - 'A', '6', '4', '5', - 'A', '6', '4', '6', - 'A', '6', '4', '8', - 'A', '6', '4', '9', - 'A', '6', '5', '1', - 'A', '6', '5', '2', - 'A', '6', '5', '3', - 'A', '6', '5', '4', - 'A', '6', '5', '5', - 'A', '6', '5', '6', - 'A', '6', '5', '7', - 'A', '6', '5', '8', - 'A', '6', '5', '9', - 'A', '6', '6', '0', - 'A', '6', '6', '1', - 'A', '6', '6', '2', - 'A', '6', '6', '3', - 'A', '6', '6', '4', - 'A', '7', '0', '1', - 'A', '7', '0', '2', - 'A', '7', '0', '3', - 'A', '7', '0', '4', - 'A', '7', '0', '5', - 'A', '7', '0', '6', - 'A', '7', '0', '7', - 'A', '7', '0', '8', - 'A', '7', '0', '9', - 'A', '7', '1', '0', - 'A', '7', '1', '1', - 'A', '7', '1', '2', - 'A', '7', '1', '3', - 'A', '7', '1', '4', - 'A', '7', '1', '5', - 'A', '7', '1', '7', - 'A', '7', '2', '6', - 'A', '7', '3', '2', - 'A', '8', '0', '0', - 'A', '8', '0', '1', - 'A', '8', '0', '2', - 'A', '8', '0', '3', - 'A', '8', '0', '4', - 'A', '8', '0', '5', - 'A', '8', '0', '6', - 'A', '8', '0', '7', - 'A', 'A', 'N', 'G', - 'A', 'A', 'R', 'U', - 'A', 'D', 'A', 'K', - 'A', 'D', 'E', 'G', - 'A', 'E', 'N', 'G', - 'A', 'E', 'S', 'C', - 'A', 'H', 'A', 'D', - 'A', 'H', 'O', 'M', - 'A', 'H', 'S', 'A', - 'A', 'I', 'L', 'M', - 'A', 'I', 'N', 'N', - 'A', 'I', 'N', 'U', - 'A', 'I', 'V', 'A', - 'A', 'K', 'S', 'A', - 'A', 'L', 'A', 'F', - 'A', 'L', 'A', 'N', - 'A', 'L', 'E', 'F', - 'A', 'L', 'F', 'A', - 'A', 'L', 'I', 'F', - 'A', 'L', 'L', 'I', - 'A', 'L', 'L', 'O', - 'A', 'L', 'P', 'A', - 'A', 'L', 'T', 'A', - 'A', 'L', 'U', 'M', - 'A', 'M', 'A', 'R', - 'A', 'M', 'B', 'A', - 'A', 'M', 'P', 'S', - 'A', 'N', 'A', 'P', - 'A', 'N', 'H', 'U', - 'A', 'N', 'J', 'I', - 'A', 'N', 'K', 'H', - 'A', 'P', 'I', 'N', - 'A', 'P', 'L', 'I', - 'A', 'P', 'U', 'N', - 'A', 'Q', 'U', 'A', - 'A', 'R', 'A', 'D', - 'A', 'R', 'C', 'H', - 'A', 'R', 'G', 'I', - 'A', 'R', 'M', 'S', - 'A', 'R', 'M', 'Y', - 'A', 'R', 'T', 'A', - 'A', 'R', 'T', 'S', - 'A', 'S', 'A', 'T', - 'A', 'S', 'H', '2', - 'A', 'S', 'H', '3', - 'A', 'S', 'H', '9', - 'A', 'T', 'I', 'U', - 'A', 'T', 'O', 'M', - 'A', 'U', 'N', 'N', - 'A', 'U', 'T', 'O', - 'A', 'W', 'A', 'Y', - 'A', 'Y', 'A', 'H', - 'A', 'Y', 'E', 'R', - 'A', 'Y', 'I', 'N', - 'A', 'Z', 'Z', 'A', - 'B', '0', '0', '1', - 'B', '0', '0', '2', - 'B', '0', '0', '3', - 'B', '0', '0', '4', - 'B', '0', '0', '5', - 'B', '0', '0', '6', - 'B', '0', '0', '7', - 'B', '0', '0', '8', - 'B', '0', '0', '9', - 'B', '0', '1', '0', - 'B', '0', '1', '1', - 'B', '0', '1', '2', - 'B', '0', '1', '3', - 'B', '0', '1', '4', - 'B', '0', '1', '5', - 'B', '0', '1', '6', - 'B', '0', '1', '7', - 'B', '0', '1', '8', - 'B', '0', '1', '9', - 'B', '0', '2', '0', - 'B', '0', '2', '1', - 'B', '0', '2', '2', - 'B', '0', '2', '3', - 'B', '0', '2', '4', - 'B', '0', '2', '5', - 'B', '0', '2', '6', - 'B', '0', '2', '7', - 'B', '0', '2', '8', - 'B', '0', '2', '9', - 'B', '0', '3', '0', - 'B', '0', '3', '1', - 'B', '0', '3', '2', - 'B', '0', '3', '3', - 'B', '0', '3', '4', - 'B', '0', '3', '6', - 'B', '0', '3', '7', - 'B', '0', '3', '8', - 'B', '0', '3', '9', - 'B', '0', '4', '0', - 'B', '0', '4', '1', - 'B', '0', '4', '2', - 'B', '0', '4', '3', - 'B', '0', '4', '4', - 'B', '0', '4', '5', - 'B', '0', '4', '6', - 'B', '0', '4', '7', - 'B', '0', '4', '8', - 'B', '0', '4', '9', - 'B', '0', '5', '0', - 'B', '0', '5', '1', - 'B', '0', '5', '2', - 'B', '0', '5', '3', - 'B', '0', '5', '4', - 'B', '0', '5', '5', - 'B', '0', '5', '6', - 'B', '0', '5', '7', - 'B', '0', '5', '8', - 'B', '0', '5', '9', - 'B', '0', '6', '0', - 'B', '0', '6', '1', - 'B', '0', '6', '2', - 'B', '0', '6', '3', - 'B', '0', '6', '4', - 'B', '0', '6', '5', - 'B', '0', '6', '6', - 'B', '0', '6', '7', - 'B', '0', '6', '8', - 'B', '0', '6', '9', - 'B', '0', '7', '0', - 'B', '0', '7', '1', - 'B', '0', '7', '2', - 'B', '0', '7', '3', - 'B', '0', '7', '4', - 'B', '0', '7', '5', - 'B', '0', '7', '6', - 'B', '0', '7', '7', - 'B', '0', '7', '8', - 'B', '0', '7', '9', - 'B', '0', '8', '0', - 'B', '0', '8', '1', - 'B', '0', '8', '2', - 'B', '0', '8', '3', - 'B', '0', '8', '5', - 'B', '0', '8', '6', - 'B', '0', '8', '7', - 'B', '0', '8', '9', - 'B', '0', '9', '0', - 'B', '0', '9', '1', - 'B', '1', '0', '0', - 'B', '1', '0', '2', - 'B', '1', '0', '4', - 'B', '1', '0', '5', - 'B', '1', '2', '0', - 'B', '1', '2', '1', - 'B', '1', '2', '2', - 'B', '1', '2', '3', - 'B', '1', '2', '5', - 'B', '1', '2', '7', - 'B', '1', '2', '8', - 'B', '1', '3', '0', - 'B', '1', '3', '1', - 'B', '1', '3', '2', - 'B', '1', '3', '3', - 'B', '1', '3', '5', - 'B', '1', '4', '0', - 'B', '1', '4', '1', - 'B', '1', '4', '2', - 'B', '1', '4', '5', - 'B', '1', '4', '6', - 'B', '1', '5', '0', - 'B', '1', '5', '1', - 'B', '1', '5', '2', - 'B', '1', '5', '3', - 'B', '1', '5', '4', - 'B', '1', '5', '5', - 'B', '1', '5', '6', - 'B', '1', '5', '7', - 'B', '1', '5', '8', - 'B', '1', '5', '9', - 'B', '1', '6', '0', - 'B', '1', '6', '1', - 'B', '1', '6', '2', - 'B', '1', '6', '3', - 'B', '1', '6', '4', - 'B', '1', '6', '5', - 'B', '1', '6', '6', - 'B', '1', '6', '7', - 'B', '1', '6', '8', - 'B', '1', '6', '9', - 'B', '1', '7', '0', - 'B', '1', '7', '1', - 'B', '1', '7', '2', - 'B', '1', '7', '3', - 'B', '1', '7', '4', - 'B', '1', '7', '6', - 'B', '1', '7', '7', - 'B', '1', '7', '8', - 'B', '1', '7', '9', - 'B', '1', '8', '0', - 'B', '1', '8', '1', - 'B', '1', '8', '2', - 'B', '1', '8', '3', - 'B', '1', '8', '4', - 'B', '1', '8', '5', - 'B', '1', '8', '9', - 'B', '1', '9', '0', - 'B', '1', '9', '1', - 'B', '2', '0', '0', - 'B', '2', '0', '1', - 'B', '2', '0', '2', - 'B', '2', '0', '3', - 'B', '2', '0', '4', - 'B', '2', '0', '5', - 'B', '2', '0', '6', - 'B', '2', '0', '7', - 'B', '2', '0', '8', - 'B', '2', '0', '9', - 'B', '2', '1', '0', - 'B', '2', '1', '1', - 'B', '2', '1', '2', - 'B', '2', '1', '3', - 'B', '2', '1', '4', - 'B', '2', '1', '5', - 'B', '2', '1', '6', - 'B', '2', '1', '7', - 'B', '2', '1', '8', - 'B', '2', '1', '9', - 'B', '2', '2', '0', - 'B', '2', '2', '1', - 'B', '2', '2', '2', - 'B', '2', '2', '5', - 'B', '2', '2', '6', - 'B', '2', '2', '7', - 'B', '2', '2', '8', - 'B', '2', '2', '9', - 'B', '2', '3', '0', - 'B', '2', '3', '1', - 'B', '2', '3', '2', - 'B', '2', '3', '3', - 'B', '2', '3', '4', - 'B', '2', '3', '6', - 'B', '2', '4', '0', - 'B', '2', '4', '1', - 'B', '2', '4', '2', - 'B', '2', '4', '3', - 'B', '2', '4', '5', - 'B', '2', '4', '6', - 'B', '2', '4', '7', - 'B', '2', '4', '8', - 'B', '2', '4', '9', - 'B', '2', '5', '0', - 'B', '2', '5', '1', - 'B', '2', '5', '2', - 'B', '2', '5', '3', - 'B', '2', '5', '4', - 'B', '2', '5', '5', - 'B', '2', '5', '6', - 'B', '2', '5', '7', - 'B', '2', '5', '8', - 'B', '2', '5', '9', - 'B', '3', '0', '5', - 'B', 'A', '-', '2', - 'B', 'A', 'B', 'Y', - 'B', 'A', 'C', 'K', - 'B', 'A', 'G', '3', - 'B', 'A', 'G', 'A', - 'B', 'A', 'G', 'S', - 'B', 'A', 'H', 'T', - 'B', 'A', 'L', 'D', - 'B', 'A', 'L', 'L', - 'B', 'A', 'N', '2', - 'B', 'A', 'N', 'D', - 'B', 'A', 'N', 'G', - 'B', 'A', 'N', 'K', - 'B', 'A', 'R', 'B', - 'B', 'A', 'R', 'S', - 'B', 'A', 'S', 'E', - 'B', 'A', 'S', 'H', - 'B', 'A', 'T', 'H', - 'B', 'B', 'A', 'A', - 'B', 'B', 'A', 'P', - 'B', 'B', 'A', 'T', - 'B', 'B', 'A', 'X', - 'B', 'B', 'E', 'E', - 'B', 'B', 'E', 'P', - 'B', 'B', 'E', 'X', - 'B', 'B', 'I', 'E', - 'B', 'B', 'I', 'P', - 'B', 'B', 'I', 'T', - 'B', 'B', 'I', 'X', - 'B', 'B', 'O', 'P', - 'B', 'B', 'O', 'T', - 'B', 'B', 'O', 'X', - 'B', 'B', 'U', 'O', - 'B', 'B', 'U', 'P', - 'B', 'B', 'U', 'R', - 'B', 'B', 'U', 'T', - 'B', 'B', 'U', 'X', - 'B', 'B', 'Y', 'P', - 'B', 'B', 'Y', 'T', - 'B', 'B', 'Y', 'X', - 'B', 'C', 'A', 'D', - 'B', 'E', 'A', 'M', - 'B', 'E', 'A', 'N', - 'B', 'E', 'A', 'R', - 'B', 'E', 'A', 'T', - 'B', 'E', 'E', 'H', - 'B', 'E', 'E', 'R', - 'B', 'E', 'L', 'L', - 'B', 'E', 'L', 'T', - 'B', 'E', 'N', 'D', - 'B', 'E', 'N', 'T', - 'B', 'E', 'T', 'A', - 'B', 'E', 'T', 'H', - 'B', 'H', 'A', 'A', - 'B', 'H', 'A', 'M', - 'B', 'H', 'E', 'E', - 'B', 'H', 'O', 'O', - 'B', 'I', 'E', 'P', - 'B', 'I', 'E', 'T', - 'B', 'I', 'E', 'X', - 'B', 'I', 'R', 'D', - 'B', 'I', 'R', 'U', - 'B', 'I', 'T', 'E', - 'B', 'K', 'A', '-', - 'B', 'L', 'O', 'W', - 'B', 'L', 'U', 'E', - 'B', 'O', 'A', 'R', - 'B', 'O', 'A', 'T', - 'B', 'O', 'D', 'Y', - 'B', 'O', 'L', 'D', - 'B', 'O', 'L', 'T', - 'B', 'O', 'M', 'B', - 'B', 'O', 'N', 'E', - 'B', 'O', 'O', 'K', - 'B', 'O', 'O', 'T', - 'B', 'O', 'T', 'H', - 'B', 'O', 'W', 'L', - 'B', 'O', 'Y', 'S', - 'B', 'R', 'D', 'A', - 'B', 'U', 'K', 'Y', - 'B', 'U', 'L', 'B', - 'B', 'U', 'L', 'L', - 'B', 'U', 'N', 'G', - 'B', 'U', 'O', 'N', - 'B', 'U', 'O', 'P', - 'B', 'U', 'O', 'X', - 'B', 'U', 'O', 'Y', - 'B', 'U', 'R', '2', - 'B', 'U', 'R', 'U', - 'B', 'U', 'R', 'X', - 'B', 'U', 'S', 'T', - 'B', 'W', 'E', 'E', - 'B', 'Y', 'R', 'X', - 'B', 'Y', 'T', 'E', - 'B', 'Z', 'H', 'I', - 'C', '-', '1', '8', - 'C', '-', '3', '9', - 'C', '0', '0', '1', - 'C', '0', '0', '2', - 'C', '0', '0', '3', - 'C', '0', '0', '4', - 'C', '0', '0', '5', - 'C', '0', '0', '6', - 'C', '0', '0', '7', - 'C', '0', '0', '8', - 'C', '0', '0', '9', - 'C', '0', '1', '0', - 'C', '0', '1', '1', - 'C', '0', '1', '2', - 'C', '0', '1', '3', - 'C', '0', '1', '4', - 'C', '0', '1', '5', - 'C', '0', '1', '6', - 'C', '0', '1', '7', - 'C', '0', '1', '8', - 'C', '0', '1', '9', - 'C', '0', '2', '0', - 'C', '0', '2', '1', - 'C', '0', '2', '2', - 'C', '0', '2', '3', - 'C', '0', '2', '4', - 'C', 'A', 'A', 'I', - 'C', 'A', 'D', 'A', - 'C', 'A', 'K', 'E', - 'C', 'A', 'L', 'C', - 'C', 'A', 'L', 'L', - 'C', 'A', 'L', 'X', - 'C', 'A', 'N', 'E', - 'C', 'A', 'N', 'G', - 'C', 'A', 'P', 'O', - 'C', 'A', 'R', 'D', - 'C', 'A', 'R', 'E', - 'C', 'A', 'R', 'P', - 'C', 'A', 'R', 'S', - 'C', 'A', 'R', 'T', - 'C', 'A', 'V', 'E', - 'C', 'A', 'Y', 'N', - 'C', 'C', 'A', 'A', - 'C', 'C', 'E', 'E', - 'C', 'C', 'H', 'A', - 'C', 'C', 'H', 'E', - 'C', 'C', 'H', 'I', - 'C', 'C', 'H', 'O', - 'C', 'C', 'H', 'U', - 'C', 'E', 'D', 'I', - 'C', 'E', 'E', 'B', - 'C', 'E', 'E', 'V', - 'C', 'E', 'N', 'T', - 'C', 'H', 'A', 'A', - 'C', 'H', 'A', 'D', - 'C', 'H', 'A', 'M', - 'C', 'H', 'A', 'N', - 'C', 'H', 'A', 'P', - 'C', 'H', 'A', 'R', - 'C', 'H', 'A', 'T', - 'C', 'H', 'A', 'U', - 'C', 'H', 'A', 'X', - 'C', 'H', 'E', 'E', - 'C', 'H', 'E', 'H', - 'C', 'H', 'E', 'N', - 'C', 'H', 'E', 'P', - 'C', 'H', 'E', 'T', - 'C', 'H', 'E', 'X', - 'C', 'H', 'H', 'A', - 'C', 'H', 'I', 'L', - 'C', 'H', 'I', 'M', - 'C', 'H', 'I', 'N', - 'C', 'H', 'O', 'A', - 'C', 'H', 'O', 'E', - 'C', 'H', 'O', 'P', - 'C', 'H', 'O', 'T', - 'C', 'H', 'O', 'X', - 'C', 'H', 'O', 'Y', - 'C', 'H', 'U', 'O', - 'C', 'H', 'U', 'P', - 'C', 'H', 'U', 'R', - 'C', 'H', 'U', 'X', - 'C', 'H', 'W', 'A', - 'C', 'H', 'W', 'V', - 'C', 'H', 'Y', 'P', - 'C', 'H', 'Y', 'R', - 'C', 'H', 'Y', 'T', - 'C', 'H', 'Y', 'X', - 'C', 'I', 'E', 'P', - 'C', 'I', 'E', 'T', - 'C', 'I', 'E', 'X', - 'C', 'I', 'T', 'I', - 'C', 'I', 'T', 'Y', - 'C', 'L', 'A', 'N', - 'C', 'L', 'A', 'W', - 'C', 'L', 'E', 'F', - 'C', 'L', 'U', 'B', - 'C', 'O', 'A', 'T', - 'C', 'O', 'D', 'A', - 'C', 'O', 'I', 'N', - 'C', 'O', 'L', 'D', - 'C', 'O', 'L', 'L', - 'C', 'O', 'M', 'B', - 'C', 'O', 'O', 'L', - 'C', 'O', 'P', 'Y', - 'C', 'O', 'R', 'K', - 'C', 'R', 'A', 'B', - 'C', 'R', 'O', 'P', - 'C', 'U', 'A', 'M', - 'C', 'U', 'B', 'E', - 'C', 'U', 'O', 'P', - 'C', 'U', 'O', 'X', - 'C', 'U', 'R', 'L', - 'C', 'U', 'R', 'X', - 'C', 'U', 'S', 'P', - 'C', 'W', 'A', 'A', - 'C', 'W', 'I', 'I', - 'C', 'W', 'O', 'O', - 'C', 'Y', 'A', 'W', - 'C', 'Y', 'A', 'Y', - 'C', 'Y', 'R', 'X', - 'D', '0', '0', '1', - 'D', '0', '0', '2', - 'D', '0', '0', '3', - 'D', '0', '0', '4', - 'D', '0', '0', '5', - 'D', '0', '0', '6', - 'D', '0', '0', '7', - 'D', '0', '0', '8', - 'D', '0', '0', '9', - 'D', '0', '1', '0', - 'D', '0', '1', '1', - 'D', '0', '1', '2', - 'D', '0', '1', '3', - 'D', '0', '1', '4', - 'D', '0', '1', '5', - 'D', '0', '1', '6', - 'D', '0', '1', '7', - 'D', '0', '1', '8', - 'D', '0', '1', '9', - 'D', '0', '2', '0', - 'D', '0', '2', '1', - 'D', '0', '2', '2', - 'D', '0', '2', '3', - 'D', '0', '2', '4', - 'D', '0', '2', '5', - 'D', '0', '2', '6', - 'D', '0', '2', '7', - 'D', '0', '2', '8', - 'D', '0', '2', '9', - 'D', '0', '3', '0', - 'D', '0', '3', '1', - 'D', '0', '3', '2', - 'D', '0', '3', '3', - 'D', '0', '3', '4', - 'D', '0', '3', '5', - 'D', '0', '3', '6', - 'D', '0', '3', '7', - 'D', '0', '3', '8', - 'D', '0', '3', '9', - 'D', '0', '4', '0', - 'D', '0', '4', '1', - 'D', '0', '4', '2', - 'D', '0', '4', '3', - 'D', '0', '4', '4', - 'D', '0', '4', '5', - 'D', '0', '4', '6', - 'D', '0', '4', '7', - 'D', '0', '4', '8', - 'D', '0', '4', '9', - 'D', '0', '5', '0', - 'D', '0', '5', '1', - 'D', '0', '5', '2', - 'D', '0', '5', '3', - 'D', '0', '5', '4', - 'D', '0', '5', '5', - 'D', '0', '5', '6', - 'D', '0', '5', '7', - 'D', '0', '5', '8', - 'D', '0', '5', '9', - 'D', '0', '6', '0', - 'D', '0', '6', '1', - 'D', '0', '6', '2', - 'D', '0', '6', '3', - 'D', '0', '6', '4', - 'D', '0', '6', '5', - 'D', '0', '6', '6', - 'D', '0', '6', '7', - 'D', 'A', 'E', 'G', - 'D', 'A', 'G', '3', - 'D', 'A', 'G', 'S', - 'D', 'A', 'I', 'R', - 'D', 'A', 'M', 'P', - 'D', 'A', 'N', 'G', - 'D', 'A', 'R', 'K', - 'D', 'A', 'R', 'T', - 'D', 'A', 'S', 'H', - 'D', 'A', 'T', 'A', - 'D', 'A', 'T', 'E', - 'D', 'A', 'W', 'B', - 'D', 'C', 'H', 'E', - 'D', 'D', 'A', 'A', - 'D', 'D', 'A', 'L', - 'D', 'D', 'A', 'P', - 'D', 'D', 'A', 'T', - 'D', 'D', 'A', 'X', - 'D', 'D', 'D', 'A', - 'D', 'D', 'E', 'E', - 'D', 'D', 'E', 'P', - 'D', 'D', 'E', 'X', - 'D', 'D', 'H', 'A', - 'D', 'D', 'H', 'E', - 'D', 'D', 'H', 'I', - 'D', 'D', 'H', 'O', - 'D', 'D', 'H', 'U', - 'D', 'D', 'I', 'E', - 'D', 'D', 'I', 'P', - 'D', 'D', 'I', 'T', - 'D', 'D', 'I', 'X', - 'D', 'D', 'O', 'A', - 'D', 'D', 'O', 'P', - 'D', 'D', 'O', 'T', - 'D', 'D', 'O', 'X', - 'D', 'D', 'U', 'O', - 'D', 'D', 'U', 'P', - 'D', 'D', 'U', 'R', - 'D', 'D', 'U', 'T', - 'D', 'D', 'U', 'X', - 'D', 'D', 'W', 'A', - 'D', 'E', 'A', 'D', - 'D', 'E', 'A', 'F', - 'D', 'E', 'E', 'L', - 'D', 'E', 'E', 'R', - 'D', 'E', 'H', 'I', - 'D', 'E', 'K', 'A', - 'D', 'E', 'L', 'T', - 'D', 'E', 'N', 'E', - 'D', 'E', 'N', 'G', - 'D', 'E', 'S', 'I', - 'D', 'E', 'S', 'K', - 'D', 'E', 'V', 'I', - 'D', 'E', 'Z', 'H', - 'D', 'H', 'A', 'A', - 'D', 'H', 'A', 'L', - 'D', 'H', 'E', 'E', - 'D', 'H', 'H', 'A', - 'D', 'H', 'H', 'E', - 'D', 'H', 'H', 'I', - 'D', 'H', 'H', 'O', - 'D', 'H', 'H', 'U', - 'D', 'H', 'I', 'I', - 'D', 'H', 'O', 'O', - 'D', 'H', 'O', 'U', - 'D', 'I', 'E', 'P', - 'D', 'I', 'E', 'X', - 'D', 'I', 'G', 'A', - 'D', 'I', 'M', '2', - 'D', 'I', 'N', 'G', - 'D', 'I', 'S', 'C', - 'D', 'I', 'S', 'H', - 'D', 'I', 'S', 'K', - 'D', 'I', 'Y', 'A', - 'D', 'K', 'A', 'R', - 'D', 'L', 'E', 'E', - 'D', 'L', 'H', 'A', - 'D', 'O', '-', 'O', - 'D', 'O', 'D', 'O', - 'D', 'O', 'E', 'S', - 'D', 'O', 'I', 'T', - 'D', 'O', 'N', 'G', - 'D', 'O', 'O', 'R', - 'D', 'O', 'R', 'U', - 'D', 'O', 'T', 'S', - 'D', 'O', 'V', 'E', - 'D', 'O', 'W', 'N', - 'D', 'R', 'A', 'M', - 'D', 'R', 'I', 'L', - 'D', 'R', 'O', 'P', - 'D', 'R', 'U', 'M', - 'D', 'U', 'B', '2', - 'D', 'U', 'C', 'K', - 'D', 'U', 'D', 'A', - 'D', 'U', 'N', '3', - 'D', 'U', 'N', '4', - 'D', 'U', 'N', 'G', - 'D', 'U', 'O', 'X', - 'D', 'U', 'R', '2', - 'D', 'U', 'R', 'X', - 'D', 'U', 'S', 'K', - 'D', 'Y', 'A', 'N', - 'D', 'Y', 'E', 'H', - 'D', 'Z', 'A', 'A', - 'D', 'Z', 'A', 'Y', - 'D', 'Z', 'E', 'E', - 'D', 'Z', 'H', 'A', - 'D', 'Z', 'H', 'E', - 'D', 'Z', 'J', 'E', - 'D', 'Z', 'W', 'E', - 'D', 'Z', 'Y', 'I', - 'D', 'Z', 'Z', 'A', - 'D', 'Z', 'Z', 'E', - 'E', '0', '0', '1', - 'E', '0', '0', '2', - 'E', '0', '0', '3', - 'E', '0', '0', '4', - 'E', '0', '0', '5', - 'E', '0', '0', '6', - 'E', '0', '0', '7', - 'E', '0', '0', '8', - 'E', '0', '0', '9', - 'E', '0', '1', '0', - 'E', '0', '1', '1', - 'E', '0', '1', '2', - 'E', '0', '1', '3', - 'E', '0', '1', '4', - 'E', '0', '1', '5', - 'E', '0', '1', '6', - 'E', '0', '1', '7', - 'E', '0', '1', '8', - 'E', '0', '1', '9', - 'E', '0', '2', '0', - 'E', '0', '2', '1', - 'E', '0', '2', '2', - 'E', '0', '2', '3', - 'E', '0', '2', '4', - 'E', '0', '2', '5', - 'E', '0', '2', '6', - 'E', '0', '2', '7', - 'E', '0', '2', '8', - 'E', '0', '2', '9', - 'E', '0', '3', '0', - 'E', '0', '3', '1', - 'E', '0', '3', '2', - 'E', '0', '3', '3', - 'E', '0', '3', '4', - 'E', '0', '3', '6', - 'E', '0', '3', '7', - 'E', '0', '3', '8', - 'E', 'A', 'R', 'S', - 'E', 'A', 'S', 'E', - 'E', 'A', 'S', 'T', - 'E', 'D', 'I', 'N', - 'E', 'G', 'G', 'S', - 'E', 'G', 'I', 'R', - 'E', 'H', 'K', 'A', - 'E', 'H', 'P', 'A', - 'E', 'H', 'T', 'A', - 'E', 'K', 'A', 'M', - 'E', 'L', 'I', 'F', - 'E', 'N', 'N', 'I', - 'E', 'N', 'O', 'S', - 'E', 'O', '-', 'O', - 'E', 'O', '-', 'U', - 'E', 'R', 'E', 'N', - 'E', 'R', 'I', 'S', - 'E', 'S', '-', '1', - 'E', 'S', '-', '2', - 'E', 'S', '-', '3', - 'E', 'S', 'H', '2', - 'E', 'U', '-', 'A', - 'E', 'U', '-', 'E', - 'E', 'U', '-', 'O', - 'E', 'U', '-', 'U', - 'E', 'U', 'R', 'O', - 'E', 'V', 'E', 'N', - 'E', 'Y', 'E', 'S', - 'E', 'Y', 'Y', 'Y', - 'E', 'Z', 'E', 'N', - 'F', '0', '0', '1', - 'F', '0', '0', '2', - 'F', '0', '0', '3', - 'F', '0', '0', '4', - 'F', '0', '0', '5', - 'F', '0', '0', '6', - 'F', '0', '0', '7', - 'F', '0', '0', '8', - 'F', '0', '0', '9', - 'F', '0', '1', '0', - 'F', '0', '1', '1', - 'F', '0', '1', '2', - 'F', '0', '1', '3', - 'F', '0', '1', '4', - 'F', '0', '1', '5', - 'F', '0', '1', '6', - 'F', '0', '1', '7', - 'F', '0', '1', '8', - 'F', '0', '1', '9', - 'F', '0', '2', '0', - 'F', '0', '2', '1', - 'F', '0', '2', '2', - 'F', '0', '2', '3', - 'F', '0', '2', '4', - 'F', '0', '2', '5', - 'F', '0', '2', '6', - 'F', '0', '2', '7', - 'F', '0', '2', '8', - 'F', '0', '2', '9', - 'F', '0', '3', '0', - 'F', '0', '3', '1', - 'F', '0', '3', '2', - 'F', '0', '3', '3', - 'F', '0', '3', '4', - 'F', '0', '3', '5', - 'F', '0', '3', '6', - 'F', '0', '3', '7', - 'F', '0', '3', '8', - 'F', '0', '3', '9', - 'F', '0', '4', '0', - 'F', '0', '4', '1', - 'F', '0', '4', '2', - 'F', '0', '4', '3', - 'F', '0', '4', '4', - 'F', '0', '4', '5', - 'F', '0', '4', '6', - 'F', '0', '4', '7', - 'F', '0', '4', '8', - 'F', '0', '4', '9', - 'F', '0', '5', '0', - 'F', '0', '5', '1', - 'F', '0', '5', '2', - 'F', '0', '5', '3', - 'F', 'A', 'A', 'I', - 'F', 'A', 'C', 'E', - 'F', 'A', 'I', 'B', - 'F', 'A', 'N', 'G', - 'F', 'A', 'S', 'T', - 'F', 'E', 'A', 'R', - 'F', 'E', 'E', 'D', - 'F', 'E', 'E', 'M', - 'F', 'E', 'H', 'U', - 'F', 'E', 'N', 'G', - 'F', 'E', 'O', 'H', - 'F', 'E', 'T', 'H', - 'F', 'E', 'U', 'X', - 'F', 'I', 'L', 'E', - 'F', 'I', 'L', 'L', - 'F', 'I', 'L', 'M', - 'F', 'I', 'R', 'E', - 'F', 'I', 'R', 'I', - 'F', 'I', 'S', 'H', - 'F', 'I', 'S', 'T', - 'F', 'I', 'T', 'A', - 'F', 'I', 'V', 'E', - 'F', 'L', 'A', 'G', - 'F', 'L', 'A', 'T', - 'F', 'L', 'E', 'X', - 'F', 'L', 'I', 'P', - 'F', 'O', 'N', 'T', - 'F', 'O', 'O', 'D', - 'F', 'O', 'O', 'L', - 'F', 'O', 'O', 'T', - 'F', 'O', 'R', 'K', - 'F', 'O', 'R', 'M', - 'F', 'O', 'U', 'R', - 'F', 'R', 'E', 'E', - 'F', 'R', 'O', 'G', - 'F', 'R', 'O', 'M', - 'F', 'U', 'E', 'L', - 'F', 'U', 'E', 'T', - 'F', 'U', 'J', 'I', - 'F', 'U', 'L', 'L', - 'F', 'U', 'R', 'X', - 'F', 'U', 'S', 'A', - 'F', 'U', 'S', 'E', - 'F', 'V', 'S', '1', - 'F', 'V', 'S', '2', - 'F', 'V', 'S', '3', - 'F', 'V', 'S', '4', - 'F', 'W', 'A', 'A', - 'F', 'W', 'E', 'E', - 'G', '0', '0', '1', - 'G', '0', '0', '2', - 'G', '0', '0', '3', - 'G', '0', '0', '4', - 'G', '0', '0', '5', - 'G', '0', '0', '6', - 'G', '0', '0', '7', - 'G', '0', '0', '8', - 'G', '0', '0', '9', - 'G', '0', '1', '0', - 'G', '0', '1', '1', - 'G', '0', '1', '2', - 'G', '0', '1', '3', - 'G', '0', '1', '4', - 'G', '0', '1', '5', - 'G', '0', '1', '6', - 'G', '0', '1', '7', - 'G', '0', '1', '8', - 'G', '0', '1', '9', - 'G', '0', '2', '0', - 'G', '0', '2', '1', - 'G', '0', '2', '2', - 'G', '0', '2', '3', - 'G', '0', '2', '4', - 'G', '0', '2', '5', - 'G', '0', '2', '6', - 'G', '0', '2', '7', - 'G', '0', '2', '8', - 'G', '0', '2', '9', - 'G', '0', '3', '0', - 'G', '0', '3', '1', - 'G', '0', '3', '2', - 'G', '0', '3', '3', - 'G', '0', '3', '4', - 'G', '0', '3', '5', - 'G', '0', '3', '6', - 'G', '0', '3', '7', - 'G', '0', '3', '8', - 'G', '0', '3', '9', - 'G', '0', '4', '0', - 'G', '0', '4', '1', - 'G', '0', '4', '2', - 'G', '0', '4', '3', - 'G', '0', '4', '4', - 'G', '0', '4', '5', - 'G', '0', '4', '6', - 'G', '0', '4', '7', - 'G', '0', '4', '8', - 'G', '0', '4', '9', - 'G', '0', '5', '0', - 'G', '0', '5', '1', - 'G', '0', '5', '2', - 'G', '0', '5', '3', - 'G', '0', '5', '4', - 'G', 'A', 'B', 'A', - 'G', 'A', 'L', 'I', - 'G', 'A', 'M', 'E', - 'G', 'A', 'M', 'L', - 'G', 'A', 'N', '2', - 'G', 'A', 'R', '3', - 'G', 'A', 'T', 'E', - 'G', 'B', 'E', 'E', - 'G', 'B', 'E', 'N', - 'G', 'B', 'E', 'T', - 'G', 'B', 'O', 'N', - 'G', 'B', 'O', 'O', - 'G', 'C', 'A', 'N', - 'G', 'C', 'I', 'G', - 'G', 'D', 'A', 'N', - 'G', 'E', '2', '2', - 'G', 'E', 'A', 'R', - 'G', 'E', 'B', 'A', - 'G', 'E', 'B', 'O', - 'G', 'E', 'D', 'E', - 'G', 'E', 'E', 'M', - 'G', 'E', 'T', 'A', - 'G', 'G', 'A', 'A', - 'G', 'G', 'A', 'P', - 'G', 'G', 'A', 'T', - 'G', 'G', 'A', 'X', - 'G', 'G', 'E', 'E', - 'G', 'G', 'E', 'P', - 'G', 'G', 'E', 'T', - 'G', 'G', 'E', 'X', - 'G', 'G', 'I', 'E', - 'G', 'G', 'I', 'T', - 'G', 'G', 'I', 'X', - 'G', 'G', 'O', 'P', - 'G', 'G', 'O', 'T', - 'G', 'G', 'O', 'X', - 'G', 'G', 'U', 'O', - 'G', 'G', 'U', 'P', - 'G', 'G', 'U', 'R', - 'G', 'G', 'U', 'T', - 'G', 'G', 'U', 'X', - 'G', 'G', 'W', 'A', - 'G', 'G', 'W', 'E', - 'G', 'G', 'W', 'I', - 'G', 'H', 'A', 'A', - 'G', 'H', 'A', 'D', - 'G', 'H', 'A', 'N', - 'G', 'H', 'A', 'P', - 'G', 'H', 'E', 'E', - 'G', 'H', 'E', 'T', - 'G', 'H', 'H', 'A', - 'G', 'H', 'O', 'M', - 'G', 'H', 'O', 'U', - 'G', 'H', 'W', 'A', - 'G', 'I', 'B', 'A', - 'G', 'I', 'E', 'P', - 'G', 'I', 'E', 'T', - 'G', 'I', 'E', 'X', - 'G', 'I', 'F', 'T', - 'G', 'I', 'G', 'A', - 'G', 'I', 'R', '2', - 'G', 'I', 'R', '3', - 'G', 'I', 'R', 'L', - 'G', 'I', 'S', 'H', - 'G', 'O', 'A', 'L', - 'G', 'O', 'A', 'T', - 'G', 'O', 'L', 'D', - 'G', 'O', 'N', 'G', - 'G', 'O', 'O', 'D', - 'G', 'O', 'R', 'A', - 'G', 'O', 'R', 'T', - 'G', 'R', 'A', 'F', - 'G', 'R', 'A', 'M', - 'G', 'R', 'E', 'Y', - 'G', 'S', 'U', 'M', - 'G', 'T', 'E', 'R', - 'G', 'U', 'A', 'N', - 'G', 'U', 'E', 'H', - 'G', 'U', 'E', 'I', - 'G', 'U', 'N', 'U', - 'G', 'U', 'O', 'P', - 'G', 'U', 'O', 'T', - 'G', 'U', 'O', 'X', - 'G', 'U', 'R', '7', - 'G', 'U', 'R', 'X', - 'G', 'W', 'A', 'A', - 'G', 'W', 'E', 'E', - 'G', 'Y', 'A', 'A', - 'G', 'Y', 'A', 'N', - 'G', 'Y', 'A', 'S', - 'G', 'Y', 'E', 'E', - 'G', 'Y', 'F', 'U', - 'G', 'Y', 'O', 'N', - 'H', '0', '0', '1', - 'H', '0', '0', '2', - 'H', '0', '0', '3', - 'H', '0', '0', '4', - 'H', '0', '0', '5', - 'H', '0', '0', '6', - 'H', '0', '0', '7', - 'H', '0', '0', '8', - 'H', 'A', '-', '1', - 'H', 'A', '-', '2', - 'H', 'A', '-', '3', - 'H', 'A', '-', '4', - 'H', 'A', '-', '5', - 'H', 'A', '-', '6', - 'H', 'A', '-', '7', - 'H', 'A', '-', '8', - 'H', 'A', '-', '9', - 'H', 'A', 'A', 'M', - 'H', 'A', 'G', 'L', - 'H', 'A', 'I', 'R', - 'H', 'A', 'I', 'S', - 'H', 'A', 'L', 'F', - 'H', 'A', 'L', 'O', - 'H', 'A', 'N', 'D', - 'H', 'A', 'N', 'G', - 'H', 'A', 'R', 'D', - 'H', 'A', 'R', 'P', - 'H', 'A', 'T', 'E', - 'H', 'A', 'V', 'E', - 'H', 'A', 'W', 'J', - 'H', 'E', '-', '1', - 'H', 'E', '-', '2', - 'H', 'E', '-', '3', - 'H', 'E', '-', '4', - 'H', 'E', '-', '5', - 'H', 'E', '-', '6', - 'H', 'E', '-', '7', - 'H', 'E', 'A', 'D', - 'H', 'E', 'E', 'I', - 'H', 'E', 'E', 'L', - 'H', 'E', 'L', 'M', - 'H', 'E', 'M', 'P', - 'H', 'E', 'N', 'G', - 'H', 'E', 'R', 'B', - 'H', 'E', 'R', 'U', - 'H', 'E', 'T', 'A', - 'H', 'E', 'T', 'H', - 'H', 'E', 'Y', 'T', - 'H', 'H', 'A', 'A', - 'H', 'H', 'E', 'E', - 'H', 'H', 'W', 'A', - 'H', 'H', 'W', 'E', - 'H', 'H', 'W', 'I', - 'H', 'H', 'Y', 'A', - 'H', 'H', 'Y', 'E', - 'H', 'H', 'Y', 'I', - 'H', 'H', 'Y', 'O', - 'H', 'H', 'Y', 'U', - 'H', 'I', '-', '1', - 'H', 'I', '-', '2', - 'H', 'I', '-', '3', - 'H', 'I', '-', '4', - 'H', 'I', '-', '5', - 'H', 'I', '-', '6', - 'H', 'I', '-', '7', - 'H', 'I', 'D', 'E', - 'H', 'I', 'E', 'X', - 'H', 'I', 'G', 'H', - 'H', 'I', 'Y', 'O', - 'H', 'I', 'Z', 'B', - 'H', 'L', 'A', 'P', - 'H', 'L', 'A', 'T', - 'H', 'L', 'A', 'U', - 'H', 'L', 'A', 'X', - 'H', 'L', 'E', 'P', - 'H', 'L', 'E', 'X', - 'H', 'L', 'I', 'E', - 'H', 'L', 'I', 'P', - 'H', 'L', 'I', 'T', - 'H', 'L', 'I', 'X', - 'H', 'L', 'O', 'P', - 'H', 'L', 'O', 'X', - 'H', 'L', 'U', 'O', - 'H', 'L', 'U', 'P', - 'H', 'L', 'U', 'R', - 'H', 'L', 'U', 'T', - 'H', 'L', 'U', 'X', - 'H', 'L', 'Y', 'P', - 'H', 'L', 'Y', 'R', - 'H', 'L', 'Y', 'T', - 'H', 'L', 'Y', 'X', - 'H', 'M', 'A', 'P', - 'H', 'M', 'A', 'T', - 'H', 'M', 'A', 'X', - 'H', 'M', 'I', 'E', - 'H', 'M', 'I', 'P', - 'H', 'M', 'I', 'T', - 'H', 'M', 'I', 'X', - 'H', 'M', 'O', 'P', - 'H', 'M', 'O', 'T', - 'H', 'M', 'O', 'X', - 'H', 'M', 'U', 'O', - 'H', 'M', 'U', 'P', - 'H', 'M', 'U', 'R', - 'H', 'M', 'U', 'T', - 'H', 'M', 'U', 'X', - 'H', 'M', 'Y', 'P', - 'H', 'M', 'Y', 'R', - 'H', 'M', 'Y', 'X', - 'H', 'N', 'A', 'P', - 'H', 'N', 'A', 'T', - 'H', 'N', 'A', 'U', - 'H', 'N', 'A', 'X', - 'H', 'N', 'E', 'P', - 'H', 'N', 'E', 'X', - 'H', 'N', 'I', 'E', - 'H', 'N', 'I', 'P', - 'H', 'N', 'I', 'T', - 'H', 'N', 'I', 'X', - 'H', 'N', 'O', 'P', - 'H', 'N', 'O', 'T', - 'H', 'N', 'O', 'X', - 'H', 'N', 'U', 'B', - 'H', 'N', 'U', 'O', - 'H', 'N', 'U', 'T', - 'H', 'O', '-', '1', - 'H', 'O', '-', '2', - 'H', 'O', '-', '3', - 'H', 'O', '-', '4', - 'H', 'O', '-', '5', - 'H', 'O', '-', '6', - 'H', 'O', '-', '7', - 'H', 'O', '-', '8', - 'H', 'O', 'K', 'A', - 'H', 'O', 'L', 'E', - 'H', 'O', 'L', 'O', - 'H', 'O', 'O', 'K', - 'H', 'O', 'O', 'N', - 'H', 'O', 'O', 'P', - 'H', 'O', 'O', 'U', - 'H', 'O', 'R', 'A', - 'H', 'O', 'R', 'I', - 'H', 'O', 'R', 'N', - 'H', 'O', 'R', 'R', - 'H', 'O', 'T', 'A', - 'H', 'O', 'U', 'R', - 'H', 'P', 'W', 'G', - 'H', 'T', 'T', 'A', - 'H', 'U', '-', '1', - 'H', 'U', '-', '2', - 'H', 'U', '-', '3', - 'H', 'U', 'A', 'N', - 'H', 'U', 'B', '2', - 'H', 'U', 'L', '2', - 'H', 'U', 'M', 'P', - 'H', 'U', 'N', 'G', - 'H', 'U', 'O', 'P', - 'H', 'U', 'O', 'T', - 'H', 'U', 'O', 'X', - 'H', 'U', 'S', 'H', - 'H', 'U', 'V', 'A', - 'H', 'W', 'A', 'H', - 'H', 'W', 'E', 'E', - 'H', 'X', 'A', 'P', - 'H', 'X', 'A', 'T', - 'H', 'X', 'A', 'X', - 'H', 'X', 'E', 'P', - 'H', 'X', 'E', 'X', - 'H', 'X', 'I', 'E', - 'H', 'X', 'I', 'P', - 'H', 'X', 'I', 'T', - 'H', 'X', 'I', 'X', - 'H', 'X', 'O', 'P', - 'H', 'X', 'O', 'T', - 'H', 'X', 'O', 'X', - 'H', 'X', 'U', 'O', - 'H', 'X', 'W', 'G', - 'H', 'Z', 'W', 'G', - 'H', 'Z', 'Z', 'P', - 'H', 'Z', 'Z', 'Z', - 'I', '-', 'E', 'U', - 'I', '-', 'Y', 'A', - 'I', '-', 'Y', 'E', - 'I', '-', 'Y', 'O', - 'I', '-', 'Y', 'U', - 'I', '0', '0', '1', - 'I', '0', '0', '2', - 'I', '0', '0', '3', - 'I', '0', '0', '4', - 'I', '0', '0', '5', - 'I', '0', '0', '6', - 'I', '0', '0', '7', - 'I', '0', '0', '8', - 'I', '0', '0', '9', - 'I', '0', '1', '0', - 'I', '0', '1', '1', - 'I', '0', '1', '2', - 'I', '0', '1', '3', - 'I', '0', '1', '4', - 'I', '0', '1', '5', - 'I', 'A', 'N', 'G', - 'I', 'C', 'O', 'N', - 'I', 'D', 'I', 'M', - 'I', 'D', 'L', 'E', - 'I', 'F', 'I', 'N', - 'I', 'K', 'I', 'R', - 'I', 'L', 'U', 'T', - 'I', 'L', 'U', 'Y', - 'I', 'M', 'A', 'R', - 'I', 'M', 'I', 'N', - 'I', 'N', 'A', 'P', - 'I', 'N', 'C', 'H', - 'I', 'N', 'N', 'N', - 'I', 'N', 'T', 'I', - 'I', 'N', 'Y', 'A', - 'I', 'O', 'N', 'G', - 'I', 'O', 'T', 'A', - 'I', 'R', 'O', 'N', - 'I', 'S', 'A', 'Z', - 'I', 'S', 'O', 'N', - 'I', 'T', 'E', 'M', - 'I', 'U', 'J', 'A', - 'I', 'W', 'A', 'Z', - 'I', 'Y', 'E', 'K', - 'I', 'Z', 'H', 'E', - 'J', 'A', 'C', 'K', - 'J', 'A', 'D', 'E', - 'J', 'A', 'I', 'N', - 'J', 'A', 'L', 'L', - 'J', 'A', 'W', 'S', - 'J', 'A', 'Y', 'N', - 'J', 'E', 'E', 'M', - 'J', 'E', 'R', 'A', - 'J', 'H', 'A', 'A', - 'J', 'H', 'A', 'M', - 'J', 'H', 'A', 'N', - 'J', 'H', 'E', 'H', - 'J', 'H', 'O', 'X', - 'J', 'I', 'E', 'P', - 'J', 'I', 'E', 'T', - 'J', 'I', 'E', 'X', - 'J', 'I', 'I', 'M', - 'J', 'J', 'E', 'E', - 'J', 'J', 'I', 'E', - 'J', 'J', 'I', 'P', - 'J', 'J', 'I', 'T', - 'J', 'J', 'I', 'X', - 'J', 'J', 'O', 'P', - 'J', 'J', 'O', 'T', - 'J', 'J', 'O', 'X', - 'J', 'J', 'U', 'O', - 'J', 'J', 'U', 'P', - 'J', 'J', 'U', 'R', - 'J', 'J', 'U', 'T', - 'J', 'J', 'U', 'X', - 'J', 'J', 'Y', 'P', - 'J', 'J', 'Y', 'T', - 'J', 'J', 'Y', 'X', - 'J', 'N', 'Y', 'A', - 'J', 'O', 'I', 'N', - 'J', 'O', 'N', 'A', - 'J', 'O', 'N', 'G', - 'J', 'O', 'V', 'E', - 'J', 'U', 'L', 'Y', - 'J', 'U', 'N', 'E', - 'J', 'U', 'N', 'O', - 'J', 'U', 'O', 'P', - 'J', 'U', 'O', 'T', - 'J', 'U', 'O', 'X', - 'J', 'U', 'R', 'X', - 'J', 'Y', 'A', 'H', - 'J', 'Y', 'R', 'X', - 'K', '0', '0', '1', - 'K', '0', '0', '2', - 'K', '0', '0', '3', - 'K', '0', '0', '4', - 'K', '0', '0', '5', - 'K', '0', '0', '6', - 'K', '0', '0', '7', - 'K', '0', '0', '8', - 'K', 'A', '-', '1', - 'K', 'A', '-', '2', - 'K', 'A', '-', '3', - 'K', 'A', '-', '4', - 'K', 'A', '-', '5', - 'K', 'A', '-', '6', - 'K', 'A', '-', '7', - 'K', 'A', '-', '8', - 'K', 'A', '-', '9', - 'K', 'A', 'A', 'B', - 'K', 'A', 'A', 'F', - 'K', 'A', 'A', 'I', - 'K', 'A', 'A', 'N', - 'K', 'A', 'A', 'V', - 'K', 'A', 'B', 'A', - 'K', 'A', 'D', '2', - 'K', 'A', 'D', '3', - 'K', 'A', 'D', '4', - 'K', 'A', 'D', '5', - 'K', 'A', 'F', 'A', - 'K', 'A', 'I', 'B', - 'K', 'A', 'I', 'V', - 'K', 'A', 'K', 'O', - 'K', 'A', 'M', '2', - 'K', 'A', 'M', '4', - 'K', 'A', 'N', 'A', - 'K', 'A', 'N', 'G', - 'K', 'A', 'P', 'A', - 'K', 'A', 'P', 'H', - 'K', 'A', 'P', 'O', - 'K', 'A', 'R', 'O', - 'K', 'A', 'T', 'O', - 'K', 'A', 'U', 'B', - 'K', 'A', 'U', 'N', - 'K', 'A', 'U', 'V', - 'K', 'A', 'W', 'B', - 'K', 'A', 'W', 'I', - 'K', 'A', 'W', 'V', - 'K', 'C', 'A', 'L', - 'K', 'E', '-', '1', - 'K', 'E', '-', '2', - 'K', 'E', '-', '3', - 'K', 'E', '-', '4', - 'K', 'E', '-', '5', - 'K', 'E', '-', '6', - 'K', 'E', 'E', 'B', - 'K', 'E', 'E', 'V', - 'K', 'E', 'O', 'W', - 'K', 'E', 'U', 'M', - 'K', 'E', 'U', 'P', - 'K', 'E', 'U', 'X', - 'K', 'H', 'A', 'A', - 'K', 'H', 'A', 'B', - 'K', 'H', 'A', 'F', - 'K', 'H', 'A', 'H', - 'K', 'H', 'A', 'I', - 'K', 'H', 'A', 'N', - 'K', 'H', 'A', 'R', - 'K', 'H', 'A', 'V', - 'K', 'H', 'E', 'E', - 'K', 'H', 'E', 'I', - 'K', 'H', 'H', 'A', - 'K', 'H', 'H', 'O', - 'K', 'H', 'I', 'T', - 'K', 'H', 'M', 'U', - 'K', 'H', 'O', 'N', - 'K', 'H', 'O', 'T', - 'K', 'H', 'O', 'U', - 'K', 'I', '-', '1', - 'K', 'I', '-', '2', - 'K', 'I', '-', '3', - 'K', 'I', '-', '4', - 'K', 'I', '-', '5', - 'K', 'I', '-', '6', - 'K', 'I', '-', '7', - 'K', 'I', '-', '8', - 'K', 'I', 'A', 'B', - 'K', 'I', 'A', 'V', - 'K', 'I', 'C', 'K', - 'K', 'I', 'E', 'P', - 'K', 'I', 'E', 'X', - 'K', 'I', 'N', 'G', - 'K', 'I', 'R', 'O', - 'K', 'I', 'S', 'H', - 'K', 'I', 'S', 'S', - 'K', 'I', 'T', 'E', - 'K', 'K', 'E', 'E', - 'K', 'N', 'O', 'T', - 'K', 'O', '-', '1', - 'K', 'O', '-', '2', - 'K', 'O', '-', '3', - 'K', 'O', 'E', 'T', - 'K', 'O', 'K', 'E', - 'K', 'O', 'K', 'O', - 'K', 'O', 'M', 'I', - 'K', 'O', 'O', 'B', - 'K', 'O', 'O', 'V', - 'K', 'O', 'T', 'O', - 'K', 'P', 'A', 'H', - 'K', 'P', 'A', 'N', - 'K', 'P', 'E', 'E', - 'K', 'P', 'E', 'N', - 'K', 'P', 'O', 'O', - 'K', 'P', 'O', 'Q', - 'K', 'S', 'S', 'A', - 'K', 'U', '-', '1', - 'K', 'U', '-', '2', - 'K', 'U', '-', '3', - 'K', 'U', '-', '4', - 'K', 'U', '-', '5', - 'K', 'U', '-', '6', - 'K', 'U', '-', '7', - 'K', 'U', 'A', 'B', - 'K', 'U', 'A', 'V', - 'K', 'U', 'E', 'T', - 'K', 'U', 'N', 'G', - 'K', 'U', 'O', 'M', - 'K', 'U', 'O', 'P', - 'K', 'U', 'O', 'Q', - 'K', 'U', 'O', 'X', - 'K', 'U', 'R', 'T', - 'K', 'U', 'R', 'X', - 'K', 'U', 'U', 'H', - 'K', 'W', 'A', 'A', - 'K', 'W', 'A', 'Y', - 'K', 'W', 'E', 'E', - 'K', 'W', 'I', 'I', - 'K', 'W', 'O', 'O', - 'K', 'X', 'A', 'A', - 'K', 'X', 'E', 'E', - 'K', 'X', 'W', 'A', - 'K', 'X', 'W', 'E', - 'K', 'X', 'W', 'I', - 'K', 'Y', 'A', 'A', - 'K', 'Y', 'E', 'E', - 'L', '0', '0', '1', - 'L', '0', '0', '2', - 'L', '0', '0', '3', - 'L', '0', '0', '4', - 'L', '0', '0', '5', - 'L', '0', '0', '6', - 'L', '0', '0', '7', - 'L', '0', '0', '8', - 'L', 'A', 'A', 'I', - 'L', 'A', 'A', 'M', - 'L', 'A', 'A', 'N', - 'L', 'A', 'C', 'A', - 'L', 'A', 'C', 'K', - 'L', 'A', 'D', 'Y', - 'L', 'A', 'E', 'V', - 'L', 'A', 'G', 'U', - 'L', 'A', 'K', 'E', - 'L', 'A', 'K', 'H', - 'L', 'A', 'M', 'D', - 'L', 'A', 'M', 'E', - 'L', 'A', 'M', 'P', - 'L', 'A', 'N', 'D', - 'L', 'A', 'N', 'E', - 'L', 'A', 'R', 'I', - 'L', 'A', 'S', 'T', - 'L', 'A', 'T', 'E', - 'L', 'A', 'U', 'J', - 'L', 'A', 'Z', 'Y', - 'L', 'D', 'A', 'N', - 'L', 'E', 'A', 'D', - 'L', 'E', 'A', 'F', - 'L', 'E', 'E', 'K', - 'L', 'E', 'F', 'T', - 'L', 'E', 'G', 'S', - 'L', 'E', 'S', 'H', - 'L', 'E', 'S', 'S', - 'L', 'E', 'U', 'M', - 'L', 'E', 'Z', 'H', - 'L', 'H', 'A', 'A', - 'L', 'H', 'A', 'G', - 'L', 'H', 'E', 'E', - 'L', 'H', 'I', 'I', - 'L', 'H', 'O', 'O', - 'L', 'H', 'Y', 'A', - 'L', 'I', 'E', 'E', - 'L', 'I', 'E', 'P', - 'L', 'I', 'E', 'T', - 'L', 'I', 'E', 'X', - 'L', 'I', 'F', 'E', - 'L', 'I', 'L', 'Y', - 'L', 'I', 'M', 'B', - 'L', 'I', 'M', 'E', - 'L', 'I', 'N', 'E', - 'L', 'I', 'N', 'G', - 'L', 'I', 'N', 'K', - 'L', 'I', 'O', 'N', - 'L', 'I', 'P', 'S', - 'L', 'I', 'R', 'A', - 'L', 'I', 'S', 'H', - 'L', 'I', 'S', 'U', - 'L', 'I', 'T', 'H', - 'L', 'I', 'W', 'N', - 'L', 'L', 'H', 'A', - 'L', 'L', 'L', 'A', - 'L', 'O', 'C', 'K', - 'L', 'O', 'G', 'R', - 'L', 'O', 'L', 'L', - 'L', 'O', 'N', 'G', - 'L', 'O', 'O', 'K', - 'L', 'O', 'O', 'N', - 'L', 'O', 'O', 'P', - 'L', 'O', 'O', 'T', - 'L', 'O', 'S', 'T', - 'L', 'O', 'V', 'E', - 'L', 'U', 'I', 'S', - 'L', 'U', 'O', 'P', - 'L', 'U', 'O', 'T', - 'L', 'U', 'O', 'X', - 'L', 'U', 'R', 'X', - 'L', 'W', 'A', 'A', - 'L', 'W', 'I', 'I', - 'L', 'W', 'O', 'O', - 'L', 'Y', 'I', 'T', - 'L', 'Y', 'R', 'X', - 'M', '0', '0', '1', - 'M', '0', '0', '2', - 'M', '0', '0', '3', - 'M', '0', '0', '4', - 'M', '0', '0', '5', - 'M', '0', '0', '6', - 'M', '0', '0', '7', - 'M', '0', '0', '8', - 'M', '0', '0', '9', - 'M', '0', '1', '0', - 'M', '0', '1', '1', - 'M', '0', '1', '2', - 'M', '0', '1', '3', - 'M', '0', '1', '4', - 'M', '0', '1', '5', - 'M', '0', '1', '6', - 'M', '0', '1', '7', - 'M', '0', '1', '8', - 'M', '0', '1', '9', - 'M', '0', '2', '0', - 'M', '0', '2', '1', - 'M', '0', '2', '2', - 'M', '0', '2', '3', - 'M', '0', '2', '4', - 'M', '0', '2', '5', - 'M', '0', '2', '6', - 'M', '0', '2', '7', - 'M', '0', '2', '8', - 'M', '0', '2', '9', - 'M', '0', '3', '0', - 'M', '0', '3', '1', - 'M', '0', '3', '2', - 'M', '0', '3', '3', - 'M', '0', '3', '4', - 'M', '0', '3', '5', - 'M', '0', '3', '6', - 'M', '0', '3', '7', - 'M', '0', '3', '8', - 'M', '0', '3', '9', - 'M', '0', '4', '0', - 'M', '0', '4', '1', - 'M', '0', '4', '2', - 'M', '0', '4', '3', - 'M', '0', '4', '4', - 'M', '0', '4', '5', - 'M', '0', '4', '6', - 'M', '0', '4', '7', - 'M', '0', '4', '8', - 'M', '0', '4', '9', - 'M', '0', '5', '0', - 'M', '0', '5', '1', - 'M', '0', '5', '2', - 'M', '0', '5', '3', - 'M', '0', '5', '4', - 'M', '0', '5', '5', - 'M', '0', '5', '6', - 'M', '0', '5', '7', - 'M', '0', '5', '8', - 'M', '0', '5', '9', - 'M', '0', '6', '0', - 'M', '0', '6', '1', - 'M', '0', '6', '2', - 'M', '0', '6', '3', - 'M', '0', '6', '4', - 'M', '0', '6', '5', - 'M', '0', '6', '6', - 'M', '0', '6', '7', - 'M', '0', '6', '8', - 'M', '0', '6', '9', - 'M', '0', '7', '0', - 'M', '0', '7', '1', - 'M', '0', '7', '2', - 'M', '0', '7', '3', - 'M', '0', '7', '4', - 'M', '0', '7', '5', - 'M', '0', '7', '6', - 'M', '0', '7', '7', - 'M', '0', '7', '8', - 'M', '0', '7', '9', - 'M', '0', '8', '0', - 'M', '0', '8', '1', - 'M', '0', '8', '2', - 'M', '0', '8', '3', - 'M', '0', '8', '4', - 'M', '0', '8', '5', - 'M', '0', '8', '6', - 'M', '0', '8', '7', - 'M', '0', '8', '8', - 'M', '0', '8', '9', - 'M', '0', '9', '0', - 'M', '0', '9', '1', - 'M', '0', '9', '2', - 'M', '0', '9', '3', - 'M', '0', '9', '4', - 'M', '0', '9', '5', - 'M', '0', '9', '6', - 'M', '0', '9', '7', - 'M', '0', '9', '8', - 'M', '0', '9', '9', - 'M', '1', '0', '0', - 'M', '1', '0', '1', - 'M', '1', '0', '2', - 'M', '1', '0', '3', - 'M', '1', '0', '4', - 'M', '1', '0', '5', - 'M', '1', '0', '6', - 'M', '1', '0', '7', - 'M', '1', '0', '8', - 'M', '1', '0', '9', - 'M', '1', '1', '0', - 'M', '1', '1', '1', - 'M', '1', '1', '2', - 'M', '1', '1', '3', - 'M', '1', '1', '4', - 'M', '1', '1', '5', - 'M', '1', '1', '6', - 'M', '1', '1', '7', - 'M', '1', '1', '8', - 'M', '1', '1', '9', - 'M', '1', '2', '0', - 'M', '1', '2', '1', - 'M', '1', '2', '2', - 'M', '1', '2', '3', - 'M', '1', '2', '4', - 'M', '1', '2', '5', - 'M', '1', '2', '6', - 'M', '1', '2', '7', - 'M', '1', '2', '8', - 'M', '1', '2', '9', - 'M', '1', '3', '0', - 'M', '1', '3', '1', - 'M', '1', '3', '2', - 'M', '1', '3', '3', - 'M', '1', '3', '4', - 'M', '1', '3', '5', - 'M', '1', '3', '6', - 'M', '1', '3', '7', - 'M', '1', '3', '8', - 'M', '1', '3', '9', - 'M', '1', '4', '0', - 'M', '1', '4', '1', - 'M', '1', '4', '2', - 'M', '1', '4', '3', - 'M', '1', '4', '4', - 'M', '1', '4', '5', - 'M', '1', '4', '6', - 'M', '1', '4', '7', - 'M', '1', '4', '8', - 'M', '1', '4', '9', - 'M', '1', '5', '0', - 'M', '1', '5', '1', - 'M', '1', '5', '2', - 'M', '1', '5', '3', - 'M', '1', '5', '4', - 'M', '1', '5', '5', - 'M', '1', '5', '6', - 'M', '1', '5', '7', - 'M', '1', '5', '8', - 'M', '1', '5', '9', - 'M', '1', '6', '0', - 'M', '1', '6', '1', - 'M', '1', '6', '2', - 'M', '1', '6', '3', - 'M', '1', '6', '4', - 'M', '1', '6', '5', - 'M', '1', '6', '6', - 'M', '1', '6', '7', - 'M', '1', '6', '8', - 'M', '1', '6', '9', - 'M', '1', '7', '0', - 'M', '1', '7', '1', - 'M', '1', '7', '2', - 'M', '1', '7', '3', - 'M', '1', '7', '4', - 'M', '1', '7', '5', - 'M', '1', '7', '6', - 'M', '1', '7', '7', - 'M', '1', '7', '8', - 'M', '1', '7', '9', - 'M', '1', '8', '0', - 'M', '1', '8', '1', - 'M', '1', '8', '2', - 'M', '1', '8', '3', - 'M', '1', '8', '4', - 'M', '1', '8', '5', - 'M', '1', '8', '6', - 'M', '1', '8', '7', - 'M', '1', '8', '8', - 'M', '1', '8', '9', - 'M', '1', '9', '0', - 'M', '1', '9', '1', - 'M', '1', '9', '2', - 'M', '1', '9', '3', - 'M', '1', '9', '4', - 'M', '1', '9', '5', - 'M', '1', '9', '6', - 'M', '1', '9', '7', - 'M', 'A', '-', '1', - 'M', 'A', '-', '2', - 'M', 'A', '-', '3', - 'M', 'A', '-', '4', - 'M', 'A', '-', '5', - 'M', 'A', '-', '6', - 'M', 'A', '-', '7', - 'M', 'A', 'A', 'I', - 'M', 'A', 'D', 'U', - 'M', 'A', 'E', 'M', - 'M', 'A', 'G', 'E', - 'M', 'A', 'L', 'E', - 'M', 'A', 'L', 'O', - 'M', 'A', 'N', 'S', - 'M', 'A', 'R', 'E', - 'M', 'A', 'R', 'K', - 'M', 'A', 'R', 'Y', - 'M', 'A', 'S', 'H', - 'M', 'A', 'S', 'K', - 'M', 'A', 'S', 'U', - 'M', 'A', 'T', 'E', - 'M', 'B', 'A', 'A', - 'M', 'B', 'A', 'Q', - 'M', 'B', 'E', 'E', - 'M', 'B', 'E', 'N', - 'M', 'B', 'I', 'T', - 'M', 'B', 'O', 'O', - 'M', 'B', 'U', 'E', - 'M', 'B', 'U', 'O', - 'M', 'B', 'U', 'U', - 'M', 'C', 'H', 'U', - 'M', 'D', 'U', 'N', - 'M', 'E', '-', '1', - 'M', 'E', '-', '2', - 'M', 'E', 'A', 'T', - 'M', 'E', 'E', 'J', - 'M', 'E', 'E', 'M', - 'M', 'E', 'E', 'T', - 'M', 'E', 'G', 'A', - 'M', 'E', 'M', 'O', - 'M', 'E', 'N', 'S', - 'M', 'E', 'R', 'I', - 'M', 'E', 'S', 'H', - 'M', 'E', 'S', 'I', - 'M', 'E', 'S', 'O', - 'M', 'E', 'T', 'A', - 'M', 'E', 'U', 'N', - 'M', 'E', 'U', 'Q', - 'M', 'E', 'U', 'T', - 'M', 'F', 'A', 'A', - 'M', 'F', 'O', 'N', - 'M', 'G', 'A', 'P', - 'M', 'G', 'A', 'T', - 'M', 'G', 'A', 'X', - 'M', 'G', 'B', 'A', - 'M', 'G', 'B', 'E', - 'M', 'G', 'B', 'I', - 'M', 'G', 'B', 'O', - 'M', 'G', 'B', 'U', - 'M', 'G', 'E', 'P', - 'M', 'G', 'E', 'X', - 'M', 'G', 'I', 'E', - 'M', 'G', 'O', 'P', - 'M', 'G', 'O', 'T', - 'M', 'G', 'O', 'X', - 'M', 'G', 'U', 'O', - 'M', 'G', 'U', 'P', - 'M', 'G', 'U', 'R', - 'M', 'G', 'U', 'T', - 'M', 'G', 'U', 'X', - 'M', 'I', '-', '1', - 'M', 'I', '-', '2', - 'M', 'I', '-', '3', - 'M', 'I', '-', '4', - 'M', 'I', '-', '5', - 'M', 'I', '-', '6', - 'M', 'I', '-', '7', - 'M', 'I', 'A', 'O', - 'M', 'I', 'C', 'R', - 'M', 'I', 'E', 'E', - 'M', 'I', 'E', 'P', - 'M', 'I', 'E', 'X', - 'M', 'I', 'I', 'M', - 'M', 'I', 'I', 'N', - 'M', 'I', 'L', 'K', - 'M', 'I', 'L', 'L', - 'M', 'I', 'M', 'E', - 'M', 'I', 'N', 'Y', - 'M', 'I', 'R', 'I', - 'M', 'M', 'S', 'P', - 'M', 'N', 'A', 'S', - 'M', 'O', '-', '1', - 'M', 'O', '-', '2', - 'M', 'O', '-', '3', - 'M', 'O', '-', '4', - 'M', 'O', '-', '5', - 'M', 'O', '-', '6', - 'M', 'O', 'D', 'E', - 'M', 'O', 'D', 'I', - 'M', 'O', 'N', 'I', - 'M', 'O', 'O', 'D', - 'M', 'O', 'O', 'N', - 'M', 'O', 'V', 'E', - 'M', 'U', '-', '1', - 'M', 'U', '-', '2', - 'M', 'U', '-', '3', - 'M', 'U', '-', '4', - 'M', 'U', 'A', 'E', - 'M', 'U', 'A', 'N', - 'M', 'U', 'A', 'S', - 'M', 'U', 'C', 'H', - 'M', 'U', 'E', 'N', - 'M', 'U', 'G', 'S', - 'M', 'U', 'I', 'N', - 'M', 'U', 'O', 'P', - 'M', 'U', 'O', 'T', - 'M', 'U', 'O', 'X', - 'M', 'U', 'O', 'Y', - 'M', 'U', 'R', 'E', - 'M', 'U', 'R', 'X', - 'M', 'U', 'S', 'H', - 'M', 'V', 'O', 'P', - 'M', 'W', 'A', 'A', - 'M', 'W', 'E', 'E', - 'M', 'W', 'I', 'I', - 'M', 'W', 'O', 'O', - 'N', '0', '0', '1', - 'N', '0', '0', '2', - 'N', '0', '0', '3', - 'N', '0', '0', '4', - 'N', '0', '0', '5', - 'N', '0', '0', '6', - 'N', '0', '0', '7', - 'N', '0', '0', '8', - 'N', '0', '0', '9', - 'N', '0', '1', '0', - 'N', '0', '1', '1', - 'N', '0', '1', '2', - 'N', '0', '1', '3', - 'N', '0', '1', '4', - 'N', '0', '1', '5', - 'N', '0', '1', '6', - 'N', '0', '1', '7', - 'N', '0', '1', '8', - 'N', '0', '1', '9', - 'N', '0', '2', '0', - 'N', '0', '2', '1', - 'N', '0', '2', '2', - 'N', '0', '2', '3', - 'N', '0', '2', '4', - 'N', '0', '2', '5', - 'N', '0', '2', '6', - 'N', '0', '2', '7', - 'N', '0', '2', '8', - 'N', '0', '2', '9', - 'N', '0', '3', '0', - 'N', '0', '3', '1', - 'N', '0', '3', '2', - 'N', '0', '3', '3', - 'N', '0', '3', '4', - 'N', '0', '3', '5', - 'N', '0', '3', '6', - 'N', '0', '3', '7', - 'N', '0', '3', '8', - 'N', '0', '3', '9', - 'N', '0', '4', '0', - 'N', '0', '4', '1', - 'N', '0', '4', '2', - 'N', 'A', '-', '1', - 'N', 'A', '-', '2', - 'N', 'A', '-', '3', - 'N', 'A', '-', '4', - 'N', 'A', '-', '5', - 'N', 'A', '-', '6', - 'N', 'A', '-', '7', - 'N', 'A', '-', '8', - 'N', 'A', '-', '9', - 'N', 'A', 'A', 'I', - 'N', 'A', 'G', 'A', - 'N', 'A', 'I', 'L', - 'N', 'A', 'M', '2', - 'N', 'A', 'M', 'E', - 'N', 'A', 'N', 'A', - 'N', 'A', 'N', 'D', - 'N', 'A', 'N', 'O', - 'N', 'A', 'O', 'S', - 'N', 'A', 'U', 'D', - 'N', 'B', 'A', 'P', - 'N', 'B', 'A', 'T', - 'N', 'B', 'A', 'X', - 'N', 'B', 'I', 'E', - 'N', 'B', 'I', 'P', - 'N', 'B', 'I', 'T', - 'N', 'B', 'I', 'X', - 'N', 'B', 'O', 'P', - 'N', 'B', 'O', 'T', - 'N', 'B', 'O', 'X', - 'N', 'B', 'S', 'P', - 'N', 'B', 'U', 'P', - 'N', 'B', 'U', 'R', - 'N', 'B', 'U', 'T', - 'N', 'B', 'U', 'X', - 'N', 'B', 'Y', 'P', - 'N', 'B', 'Y', 'R', - 'N', 'B', 'Y', 'T', - 'N', 'B', 'Y', 'X', - 'N', 'D', 'A', 'A', - 'N', 'D', 'A', 'M', - 'N', 'D', 'A', 'P', - 'N', 'D', 'A', 'T', - 'N', 'D', 'A', 'X', - 'N', 'D', 'E', 'E', - 'N', 'D', 'E', 'P', - 'N', 'D', 'E', 'X', - 'N', 'D', 'I', 'E', - 'N', 'D', 'I', 'P', - 'N', 'D', 'I', 'Q', - 'N', 'D', 'I', 'T', - 'N', 'D', 'I', 'X', - 'N', 'D', 'O', 'N', - 'N', 'D', 'O', 'O', - 'N', 'D', 'O', 'P', - 'N', 'D', 'O', 'T', - 'N', 'D', 'O', 'X', - 'N', 'D', 'U', 'N', - 'N', 'D', 'U', 'P', - 'N', 'D', 'U', 'R', - 'N', 'D', 'U', 'T', - 'N', 'D', 'U', 'X', - 'N', 'E', '-', '1', - 'N', 'E', '-', '2', - 'N', 'E', '-', '3', - 'N', 'E', '-', '4', - 'N', 'E', '-', '5', - 'N', 'E', '-', '6', - 'N', 'E', 'C', 'K', - 'N', 'E', 'R', 'D', - 'N', 'E', 'S', 'T', - 'N', 'E', 'W', 'A', - 'N', 'E', 'X', 'T', - 'N', 'G', 'A', 'A', - 'N', 'G', 'A', 'H', - 'N', 'G', 'A', 'I', - 'N', 'G', 'A', 'N', - 'N', 'G', 'A', 'P', - 'N', 'G', 'A', 'Q', - 'N', 'G', 'A', 'R', - 'N', 'G', 'A', 'S', - 'N', 'G', 'A', 'T', - 'N', 'G', 'A', 'X', - 'N', 'G', 'E', 'N', - 'N', 'G', 'E', 'P', - 'N', 'G', 'E', 'X', - 'N', 'G', 'G', 'A', - 'N', 'G', 'G', 'E', - 'N', 'G', 'G', 'I', - 'N', 'G', 'G', 'O', - 'N', 'G', 'G', 'U', - 'N', 'G', 'H', 'A', - 'N', 'G', 'I', 'E', - 'N', 'G', 'I', 'I', - 'N', 'G', 'J', 'A', - 'N', 'G', 'K', 'A', - 'N', 'G', 'O', 'M', - 'N', 'G', 'O', 'N', - 'N', 'G', 'O', 'O', - 'N', 'G', 'O', 'P', - 'N', 'G', 'O', 'Q', - 'N', 'G', 'O', 'T', - 'N', 'G', 'O', 'U', - 'N', 'G', 'O', 'X', - 'N', 'G', 'U', 'E', - 'N', 'G', 'U', 'N', - 'N', 'G', 'U', 'O', - 'N', 'G', 'V', 'E', - 'N', 'G', 'Y', 'E', - 'N', 'H', 'A', 'Y', - 'N', 'H', 'J', 'A', - 'N', 'H', 'U', 'E', - 'N', 'I', '-', '1', - 'N', 'I', '-', '2', - 'N', 'I', '-', '3', - 'N', 'I', '-', '4', - 'N', 'I', '-', '5', - 'N', 'I', '-', '6', - 'N', 'I', '-', '7', - 'N', 'I', 'E', 'P', - 'N', 'I', 'E', 'X', - 'N', 'I', 'K', 'A', - 'N', 'I', 'N', '9', - 'N', 'I', 'N', 'E', - 'N', 'I', 'O', 'N', - 'N', 'J', 'A', 'A', - 'N', 'J', 'A', 'M', - 'N', 'J', 'A', 'N', - 'N', 'J', 'A', 'P', - 'N', 'J', 'A', 'Q', - 'N', 'J', 'E', 'E', - 'N', 'J', 'I', 'E', - 'N', 'J', 'I', 'P', - 'N', 'J', 'I', 'T', - 'N', 'J', 'I', 'X', - 'N', 'J', 'O', 'O', - 'N', 'J', 'O', 'P', - 'N', 'J', 'O', 'T', - 'N', 'J', 'O', 'X', - 'N', 'J', 'U', 'O', - 'N', 'J', 'U', 'P', - 'N', 'J', 'U', 'R', - 'N', 'J', 'U', 'X', - 'N', 'J', 'Y', 'P', - 'N', 'J', 'Y', 'R', - 'N', 'J', 'Y', 'T', - 'N', 'J', 'Y', 'X', - 'N', 'K', 'A', 'U', - 'N', 'K', 'O', 'M', - 'N', 'L', 'A', 'U', - 'N', 'N', 'A', 'A', - 'N', 'N', 'G', 'A', - 'N', 'N', 'G', 'I', - 'N', 'N', 'G', 'O', - 'N', 'N', 'H', 'A', - 'N', 'N', 'N', 'A', - 'N', 'N', 'Y', 'A', - 'N', 'O', '-', '1', - 'N', 'O', '-', '2', - 'N', 'O', '-', '3', - 'N', 'O', '-', '4', - 'N', 'O', '-', '5', - 'N', 'O', 'D', 'E', - 'N', 'O', 'O', 'N', - 'N', 'O', 'S', 'E', - 'N', 'O', 'T', 'E', - 'N', 'O', 'W', 'C', - 'N', 'P', 'L', 'A', - 'N', 'Q', 'I', 'G', - 'N', 'R', 'A', 'P', - 'N', 'R', 'A', 'T', - 'N', 'R', 'A', 'X', - 'N', 'R', 'E', 'P', - 'N', 'R', 'E', 'S', - 'N', 'R', 'E', 'T', - 'N', 'R', 'E', 'X', - 'N', 'R', 'O', 'P', - 'N', 'R', 'O', 'X', - 'N', 'R', 'U', 'A', - 'N', 'R', 'U', 'P', - 'N', 'R', 'U', 'R', - 'N', 'R', 'U', 'T', - 'N', 'R', 'U', 'X', - 'N', 'R', 'Y', 'P', - 'N', 'R', 'Y', 'R', - 'N', 'R', 'Y', 'T', - 'N', 'R', 'Y', 'X', - 'N', 'S', 'E', 'N', - 'N', 'S', 'H', 'A', - 'N', 'S', 'O', 'M', - 'N', 'S', 'U', 'M', - 'N', 'S', 'U', 'N', - 'N', 'T', 'A', 'A', - 'N', 'T', 'A', 'P', - 'N', 'T', 'E', 'E', - 'N', 'T', 'E', 'N', - 'N', 'T', 'O', 'G', - 'N', 'T', 'S', 'A', - 'N', 'T', 'U', 'J', - 'N', 'T', 'U', 'M', - 'N', 'T', 'U', 'U', - 'N', 'T', 'X', 'A', - 'N', 'U', '-', '1', - 'N', 'U', '-', '2', - 'N', 'U', '-', '3', - 'N', 'U', '1', '1', - 'N', 'U', 'A', 'E', - 'N', 'U', 'L', 'L', - 'N', 'U', 'N', 'G', - 'N', 'U', 'O', 'P', - 'N', 'U', 'O', 'X', - 'N', 'U', 'R', 'X', - 'N', 'U', 'U', 'N', - 'N', 'W', 'A', 'A', - 'N', 'W', 'I', 'I', - 'N', 'W', 'O', 'O', - 'N', 'X', 'H', 'A', - 'N', 'Y', 'A', 'A', - 'N', 'Y', 'A', 'H', - 'N', 'Y', 'A', 'J', - 'N', 'Y', 'A', 'M', - 'N', 'Y', 'A', 'N', - 'N', 'Y', 'C', 'A', - 'N', 'Y', 'E', 'E', - 'N', 'Y', 'E', 'H', - 'N', 'Y', 'E', 'N', - 'N', 'Y', 'E', 'T', - 'N', 'Y', 'H', 'A', - 'N', 'Y', 'I', 'E', - 'N', 'Y', 'I', 'N', - 'N', 'Y', 'I', 'P', - 'N', 'Y', 'I', 'R', - 'N', 'Y', 'I', 'S', - 'N', 'Y', 'I', 'T', - 'N', 'Y', 'I', 'X', - 'N', 'Y', 'J', 'A', - 'N', 'Y', 'O', 'A', - 'N', 'Y', 'O', 'N', - 'N', 'Y', 'O', 'O', - 'N', 'Y', 'O', 'P', - 'N', 'Y', 'O', 'T', - 'N', 'Y', 'O', 'X', - 'N', 'Y', 'U', 'E', - 'N', 'Y', 'U', 'N', - 'N', 'Y', 'U', 'O', - 'N', 'Y', 'U', 'P', - 'N', 'Y', 'U', 'T', - 'N', 'Y', 'U', 'X', - 'N', 'Y', 'W', 'A', - 'N', 'Z', 'A', 'P', - 'N', 'Z', 'A', 'Q', - 'N', 'Z', 'A', 'T', - 'N', 'Z', 'A', 'X', - 'N', 'Z', 'E', 'X', - 'N', 'Z', 'I', 'E', - 'N', 'Z', 'I', 'P', - 'N', 'Z', 'I', 'T', - 'N', 'Z', 'I', 'X', - 'N', 'Z', 'O', 'P', - 'N', 'Z', 'O', 'X', - 'N', 'Z', 'U', 'N', - 'N', 'Z', 'U', 'O', - 'N', 'Z', 'U', 'P', - 'N', 'Z', 'U', 'Q', - 'N', 'Z', 'U', 'R', - 'N', 'Z', 'U', 'X', - 'N', 'Z', 'Y', 'P', - 'N', 'Z', 'Y', 'R', - 'N', 'Z', 'Y', 'T', - 'N', 'Z', 'Y', 'X', - 'O', '-', 'E', 'O', - 'O', '-', 'Y', 'A', - 'O', '-', 'Y', 'E', - 'O', '0', '0', '1', - 'O', '0', '0', '2', - 'O', '0', '0', '3', - 'O', '0', '0', '4', - 'O', '0', '0', '5', - 'O', '0', '0', '6', - 'O', '0', '0', '7', - 'O', '0', '0', '8', - 'O', '0', '0', '9', - 'O', '0', '1', '0', - 'O', '0', '1', '1', - 'O', '0', '1', '2', - 'O', '0', '1', '3', - 'O', '0', '1', '4', - 'O', '0', '1', '5', - 'O', '0', '1', '6', - 'O', '0', '1', '7', - 'O', '0', '1', '8', - 'O', '0', '1', '9', - 'O', '0', '2', '0', - 'O', '0', '2', '1', - 'O', '0', '2', '2', - 'O', '0', '2', '3', - 'O', '0', '2', '4', - 'O', '0', '2', '5', - 'O', '0', '2', '6', - 'O', '0', '2', '7', - 'O', '0', '2', '8', - 'O', '0', '2', '9', - 'O', '0', '3', '0', - 'O', '0', '3', '1', - 'O', '0', '3', '2', - 'O', '0', '3', '3', - 'O', '0', '3', '4', - 'O', '0', '3', '5', - 'O', '0', '3', '6', - 'O', '0', '3', '7', - 'O', '0', '3', '8', - 'O', '0', '3', '9', - 'O', '0', '4', '0', - 'O', '0', '4', '1', - 'O', '0', '4', '2', - 'O', '0', '4', '3', - 'O', '0', '4', '4', - 'O', '0', '4', '5', - 'O', '0', '4', '6', - 'O', '0', '4', '7', - 'O', '0', '4', '8', - 'O', '0', '4', '9', - 'O', '0', '5', '0', - 'O', '0', '5', '1', - 'O', 'B', 'O', 'L', - 'O', 'D', 'E', 'N', - 'O', 'G', 'R', 'E', - 'O', 'J', 'O', 'D', - 'O', 'K', 'T', 'O', - 'O', 'M', 'E', 'T', - 'O', 'N', 'A', 'L', - 'O', 'N', 'A', 'P', - 'O', 'N', 'S', 'U', - 'O', 'O', 'M', 'U', - 'O', 'O', 'Z', 'E', - 'O', 'P', 'E', 'N', - 'O', 'V', 'A', 'L', - 'O', 'V', 'E', 'R', - 'O', 'X', 'I', 'A', - 'P', '0', '0', '1', - 'P', '0', '0', '2', - 'P', '0', '0', '3', - 'P', '0', '0', '4', - 'P', '0', '0', '5', - 'P', '0', '0', '6', - 'P', '0', '0', '7', - 'P', '0', '0', '8', - 'P', '0', '0', '9', - 'P', '0', '1', '0', - 'P', '0', '1', '1', - 'P', 'A', 'A', 'I', - 'P', 'A', 'A', 'M', - 'P', 'A', 'D', 'A', - 'P', 'A', 'G', 'E', - 'P', 'A', 'L', 'I', - 'P', 'A', 'L', 'M', - 'P', 'A', 'N', 'G', - 'P', 'A', 'R', 'A', - 'P', 'A', 'R', 'K', - 'P', 'A', 'R', 'T', - 'P', 'A', 'T', 'H', - 'P', 'A', 'U', 'K', - 'P', 'A', 'W', 'N', - 'P', 'E', 'A', 'R', - 'P', 'E', 'E', 'I', - 'P', 'E', 'E', 'M', - 'P', 'E', 'E', 'P', - 'P', 'E', 'S', 'O', - 'P', 'E', 'U', 'T', - 'P', 'E', 'U', 'X', - 'P', 'H', 'A', 'A', - 'P', 'H', 'A', 'B', - 'P', 'H', 'A', 'M', - 'P', 'H', 'A', 'N', - 'P', 'H', 'A', 'R', - 'P', 'H', 'E', 'E', - 'P', 'H', 'O', 'A', - 'P', 'H', 'U', 'R', - 'P', 'H', 'W', 'A', - 'P', 'I', 'C', 'K', - 'P', 'I', 'E', 'P', - 'P', 'I', 'E', 'T', - 'P', 'I', 'E', 'X', - 'P', 'I', 'K', 'O', - 'P', 'I', 'L', 'E', - 'P', 'I', 'L', 'L', - 'P', 'I', 'N', 'E', - 'P', 'I', 'N', 'G', - 'P', 'I', 'N', 'K', - 'P', 'I', 'R', '2', - 'P', 'I', 'W', 'R', - 'P', 'L', 'A', 'K', - 'P', 'L', 'O', 'W', - 'P', 'L', 'U', 'G', - 'P', 'L', 'U', 'K', - 'P', 'L', 'U', 'M', - 'P', 'L', 'U', 'S', - 'P', 'O', 'L', 'E', - 'P', 'O', 'L', 'I', - 'P', 'O', 'L', 'O', - 'P', 'O', 'O', 'N', - 'P', 'O', 'S', 'T', - 'P', 'R', 'A', 'M', - 'P', 'U', 'A', 'E', - 'P', 'U', 'A', 'Q', - 'P', 'U', 'C', 'K', - 'P', 'U', 'M', 'P', - 'P', 'U', 'N', 'G', - 'P', 'U', 'O', 'P', - 'P', 'U', 'O', 'X', - 'P', 'U', 'R', 'X', - 'P', 'U', 'U', 'T', - 'P', 'W', 'A', 'A', - 'P', 'W', 'E', 'E', - 'P', 'W', 'I', 'I', - 'P', 'W', 'O', 'O', - 'P', 'W', 'O', 'Y', - 'P', 'Y', 'R', 'X', - 'Q', '0', '0', '1', - 'Q', '0', '0', '2', - 'Q', '0', '0', '3', - 'Q', '0', '0', '4', - 'Q', '0', '0', '5', - 'Q', '0', '0', '6', - 'Q', '0', '0', '7', - 'Q', 'A', 'A', 'F', - 'Q', 'A', 'A', 'I', - 'Q', 'A', 'L', 'A', - 'Q', 'A', 'P', 'H', - 'Q', 'A', 'S', 'R', - 'Q', 'H', 'A', 'A', - 'Q', 'H', 'A', 'U', - 'Q', 'H', 'E', 'E', - 'Q', 'H', 'W', 'A', - 'Q', 'H', 'W', 'E', - 'Q', 'H', 'W', 'I', - 'Q', 'I', 'E', 'P', - 'Q', 'I', 'E', 'T', - 'Q', 'I', 'E', 'X', - 'Q', 'O', 'P', 'A', - 'Q', 'O', 'P', 'H', - 'Q', 'U', 'A', 'D', - 'Q', 'U', 'O', 'P', - 'Q', 'U', 'O', 'T', - 'Q', 'U', 'O', 'X', - 'Q', 'U', 'R', 'X', - 'Q', 'U', 'U', 'V', - 'Q', 'W', 'A', 'A', - 'Q', 'W', 'E', 'E', - 'Q', 'Y', 'A', 'A', - 'Q', 'Y', 'E', 'E', - 'Q', 'Y', 'R', 'X', - 'R', '0', '0', '1', - 'R', '0', '0', '2', - 'R', '0', '0', '3', - 'R', '0', '0', '4', - 'R', '0', '0', '5', - 'R', '0', '0', '6', - 'R', '0', '0', '7', - 'R', '0', '0', '8', - 'R', '0', '0', '9', - 'R', '0', '1', '0', - 'R', '0', '1', '1', - 'R', '0', '1', '2', - 'R', '0', '1', '3', - 'R', '0', '1', '4', - 'R', '0', '1', '5', - 'R', '0', '1', '6', - 'R', '0', '1', '7', - 'R', '0', '1', '8', - 'R', '0', '1', '9', - 'R', '0', '2', '0', - 'R', '0', '2', '1', - 'R', '0', '2', '2', - 'R', '0', '2', '3', - 'R', '0', '2', '4', - 'R', '0', '2', '5', - 'R', '0', '2', '6', - 'R', '0', '2', '7', - 'R', '0', '2', '8', - 'R', '0', '2', '9', - 'R', 'A', '-', '1', - 'R', 'A', '-', '2', - 'R', 'A', '-', '3', - 'R', 'A', '-', '4', - 'R', 'A', 'A', 'I', - 'R', 'A', 'D', 'I', - 'R', 'A', 'E', 'M', - 'R', 'A', 'F', 'E', - 'R', 'A', 'I', 'L', - 'R', 'A', 'I', 'N', - 'R', 'A', 'M', 'S', - 'R', 'A', 'N', 'A', - 'R', 'A', 'T', 'A', - 'R', 'A', 'Y', 'S', - 'R', 'D', 'E', 'L', - 'R', 'E', '-', '1', - 'R', 'E', '-', '2', - 'R', 'E', '-', '3', - 'R', 'E', '-', '4', - 'R', 'E', 'I', 'D', - 'R', 'E', 'M', 'U', - 'R', 'E', 'P', 'A', - 'R', 'E', 'P', 'H', - 'R', 'E', 'S', 'H', - 'R', 'E', 'S', 'T', - 'R', 'E', 'U', 'X', - 'R', 'G', 'Y', 'A', - 'R', 'I', '-', '1', - 'R', 'I', '-', '2', - 'R', 'I', '-', '3', - 'R', 'I', '-', '4', - 'R', 'I', '-', '5', - 'R', 'I', '-', '6', - 'R', 'I', '-', '7', - 'R', 'I', 'A', 'L', - 'R', 'I', 'C', 'E', - 'R', 'I', 'E', 'E', - 'R', 'I', 'E', 'L', - 'R', 'I', 'N', 'G', - 'R', 'I', 'R', 'A', - 'R', 'I', 'S', 'H', - 'R', 'J', 'E', 'S', - 'R', 'N', 'A', 'M', - 'R', 'O', '-', '1', - 'R', 'O', '-', '2', - 'R', 'O', '-', '3', - 'R', 'O', '-', '4', - 'R', 'O', '-', '5', - 'R', 'O', '-', '6', - 'R', 'O', 'A', 'R', - 'R', 'O', 'C', 'K', - 'R', 'O', 'L', 'L', - 'R', 'O', 'O', 'F', - 'R', 'O', 'O', 'K', - 'R', 'O', 'O', 'M', - 'R', 'O', 'O', 'T', - 'R', 'O', 'S', 'E', - 'R', 'O', 'S', 'H', - 'R', 'R', 'A', 'X', - 'R', 'R', 'E', 'H', - 'R', 'R', 'E', 'P', - 'R', 'R', 'E', 'T', - 'R', 'R', 'E', 'X', - 'R', 'R', 'O', 'P', - 'R', 'R', 'O', 'T', - 'R', 'R', 'O', 'X', - 'R', 'R', 'R', 'A', - 'R', 'R', 'U', 'O', - 'R', 'R', 'U', 'P', - 'R', 'R', 'U', 'R', - 'R', 'R', 'U', 'T', - 'R', 'R', 'U', 'X', - 'R', 'R', 'Y', 'P', - 'R', 'R', 'Y', 'R', - 'R', 'R', 'Y', 'T', - 'R', 'R', 'Y', 'X', - 'R', 'U', '-', '1', - 'R', 'U', '-', '2', - 'R', 'U', '-', '3', - 'R', 'U', '-', '4', - 'R', 'U', '-', '5', - 'R', 'U', '-', '6', - 'R', 'U', 'I', 'S', - 'R', 'U', 'L', 'E', - 'R', 'U', 'M', 'I', - 'R', 'U', 'O', 'P', - 'R', 'U', 'O', 'X', - 'R', 'U', 'R', 'X', - 'R', 'U', 'S', 'I', - 'R', 'W', 'A', 'A', - 'R', 'W', 'E', 'E', - 'R', 'W', 'I', 'I', - 'R', 'W', 'O', 'O', - 'R', 'Y', 'R', 'X', - 'S', '0', '0', '1', - 'S', '0', '0', '2', - 'S', '0', '0', '3', - 'S', '0', '0', '4', - 'S', '0', '0', '5', - 'S', '0', '0', '6', - 'S', '0', '0', '7', - 'S', '0', '0', '8', - 'S', '0', '0', '9', - 'S', '0', '1', '0', - 'S', '0', '1', '1', - 'S', '0', '1', '2', - 'S', '0', '1', '3', - 'S', '0', '1', '4', - 'S', '0', '1', '5', - 'S', '0', '1', '6', - 'S', '0', '1', '7', - 'S', '0', '1', '8', - 'S', '0', '1', '9', - 'S', '0', '2', '0', - 'S', '0', '2', '1', - 'S', '0', '2', '2', - 'S', '0', '2', '3', - 'S', '0', '2', '4', - 'S', '0', '2', '5', - 'S', '0', '2', '6', - 'S', '0', '2', '7', - 'S', '0', '2', '8', - 'S', '0', '2', '9', - 'S', '0', '3', '0', - 'S', '0', '3', '1', - 'S', '0', '3', '2', - 'S', '0', '3', '3', - 'S', '0', '3', '4', - 'S', '0', '3', '5', - 'S', '0', '3', '6', - 'S', '0', '3', '7', - 'S', '0', '3', '8', - 'S', '0', '3', '9', - 'S', '0', '4', '0', - 'S', '0', '4', '1', - 'S', '0', '4', '2', - 'S', '0', '4', '3', - 'S', '0', '4', '4', - 'S', '0', '4', '5', - 'S', '0', '4', '6', - 'S', 'A', '-', '1', - 'S', 'A', '-', '2', - 'S', 'A', '-', '3', - 'S', 'A', '-', '4', - 'S', 'A', '-', '5', - 'S', 'A', '-', '6', - 'S', 'A', '-', '7', - 'S', 'A', '-', '8', - 'S', 'A', '-', 'I', - 'S', 'A', 'A', 'I', - 'S', 'A', 'A', 'T', - 'S', 'A', 'D', 'E', - 'S', 'A', 'G', 'A', - 'S', 'A', 'I', 'L', - 'S', 'A', 'K', 'E', - 'S', 'A', 'L', 'A', - 'S', 'A', 'L', 'T', - 'S', 'A', 'N', 'D', - 'S', 'A', 'P', 'A', - 'S', 'A', 'R', 'A', - 'S', 'A', 'R', 'I', - 'S', 'A', 'S', 'H', - 'S', 'B', 'U', 'B', - 'S', 'C', 'A', 'N', - 'S', 'C', 'W', 'A', - 'S', 'E', '-', '1', - 'S', 'E', '-', '2', - 'S', 'E', '-', '3', - 'S', 'E', '-', '4', - 'S', 'E', '-', '5', - 'S', 'E', 'A', 'L', - 'S', 'E', 'A', 'T', - 'S', 'E', 'E', 'N', - 'S', 'E', 'E', 'V', - 'S', 'E', 'L', 'F', - 'S', 'E', 'M', 'K', - 'S', 'E', 'U', 'X', - 'S', 'E', 'Y', 'K', - 'S', 'G', 'A', 'B', - 'S', 'G', 'A', 'W', - 'S', 'G', 'O', 'R', - 'S', 'G', 'R', 'A', - 'S', 'H', 'A', '3', - 'S', 'H', 'A', '6', - 'S', 'H', 'A', 'A', - 'S', 'H', 'A', 'D', - 'S', 'H', 'A', 'K', - 'S', 'H', 'A', 'N', - 'S', 'H', 'A', 'P', - 'S', 'H', 'A', 'T', - 'S', 'H', 'A', 'X', - 'S', 'H', 'A', 'Y', - 'S', 'H', 'E', 'E', - 'S', 'H', 'E', 'I', - 'S', 'H', 'E', 'N', - 'S', 'H', 'E', 'P', - 'S', 'H', 'E', 'T', - 'S', 'H', 'E', 'X', - 'S', 'H', 'H', 'A', - 'S', 'H', 'I', 'D', - 'S', 'H', 'I', 'I', - 'S', 'H', 'I', 'M', - 'S', 'H', 'I', 'N', - 'S', 'H', 'I', 'P', - 'S', 'H', 'I', 'Q', - 'S', 'H', 'I', 'R', - 'S', 'H', 'O', 'A', - 'S', 'H', 'O', 'E', - 'S', 'H', 'O', 'G', - 'S', 'H', 'O', 'O', - 'S', 'H', 'O', 'P', - 'S', 'H', 'O', 'Q', - 'S', 'H', 'O', 'T', - 'S', 'H', 'O', 'U', - 'S', 'H', 'O', 'X', - 'S', 'H', 'O', 'Y', - 'S', 'H', 'R', 'A', - 'S', 'H', 'R', 'I', - 'S', 'H', 'R', 'O', - 'S', 'H', 'T', 'A', - 'S', 'H', 'U', '2', - 'S', 'H', 'U', 'L', - 'S', 'H', 'U', 'M', - 'S', 'H', 'U', 'O', - 'S', 'H', 'U', 'P', - 'S', 'H', 'U', 'R', - 'S', 'H', 'U', 'T', - 'S', 'H', 'U', 'X', - 'S', 'H', 'W', 'A', - 'S', 'H', 'W', 'E', - 'S', 'H', 'W', 'I', - 'S', 'H', 'W', 'O', - 'S', 'H', 'Y', 'A', - 'S', 'H', 'Y', 'E', - 'S', 'H', 'Y', 'P', - 'S', 'H', 'Y', 'R', - 'S', 'H', 'Y', 'T', - 'S', 'H', 'Y', 'X', - 'S', 'I', '-', '1', - 'S', 'I', '-', '2', - 'S', 'I', '-', '3', - 'S', 'I', '-', '4', - 'S', 'I', '-', '5', - 'S', 'I', '-', '6', - 'S', 'I', 'B', 'E', - 'S', 'I', 'D', 'E', - 'S', 'I', 'E', 'E', - 'S', 'I', 'E', 'P', - 'S', 'I', 'E', 'X', - 'S', 'I', 'G', '4', - 'S', 'I', 'G', 'N', - 'S', 'I', 'K', '2', - 'S', 'I', 'K', 'I', - 'S', 'I', 'L', 'K', - 'S', 'I', 'M', 'A', - 'S', 'I', 'N', 'E', - 'S', 'I', 'O', 'S', - 'S', 'I', 'S', 'A', - 'S', 'I', 'T', 'E', - 'S', 'I', 'Z', 'E', - 'S', 'K', 'A', 'N', - 'S', 'K', 'I', 'N', - 'S', 'K', 'W', 'A', - 'S', 'L', 'E', 'D', - 'S', 'L', 'O', 'T', - 'S', 'L', 'O', 'W', - 'S', 'L', 'U', 'R', - 'S', 'N', 'A', 'P', - 'S', 'N', 'O', 'W', - 'S', 'O', '-', '1', - 'S', 'O', '-', '2', - 'S', 'O', '-', '3', - 'S', 'O', '-', '4', - 'S', 'O', '-', '5', - 'S', 'O', '-', '6', - 'S', 'O', '-', '7', - 'S', 'O', 'A', 'P', - 'S', 'O', 'F', 'T', - 'S', 'O', 'N', 'G', - 'S', 'O', 'O', 'N', - 'S', 'O', 'R', 'A', - 'S', 'O', 'R', 'I', - 'S', 'P', 'O', 'T', - 'S', 'P', 'W', 'A', - 'S', 'S', 'A', 'A', - 'S', 'S', 'A', 'P', - 'S', 'S', 'A', 'T', - 'S', 'S', 'A', 'X', - 'S', 'S', 'E', 'E', - 'S', 'S', 'E', 'P', - 'S', 'S', 'E', 'X', - 'S', 'S', 'H', 'E', - 'S', 'S', 'I', 'E', - 'S', 'S', 'I', 'P', - 'S', 'S', 'I', 'T', - 'S', 'S', 'I', 'X', - 'S', 'S', 'O', 'P', - 'S', 'S', 'O', 'T', - 'S', 'S', 'O', 'X', - 'S', 'S', 'U', 'P', - 'S', 'S', 'U', 'T', - 'S', 'S', 'U', 'U', - 'S', 'S', 'U', 'X', - 'S', 'S', 'Y', 'P', - 'S', 'S', 'Y', 'R', - 'S', 'S', 'Y', 'T', - 'S', 'S', 'Y', 'X', - 'S', 'T', 'A', 'N', - 'S', 'T', 'A', 'R', - 'S', 'T', 'E', 'M', - 'S', 'T', 'E', 'P', - 'S', 'T', 'O', 'P', - 'S', 'T', 'W', 'A', - 'S', 'U', '-', '1', - 'S', 'U', '-', '2', - 'S', 'U', '-', '3', - 'S', 'U', '-', '4', - 'S', 'U', '-', '5', - 'S', 'U', '-', '6', - 'S', 'U', '-', '7', - 'S', 'U', '-', '8', - 'S', 'U', 'A', 'B', - 'S', 'U', 'A', 'E', - 'S', 'U', 'A', 'M', - 'S', 'U', 'C', 'K', - 'S', 'U', 'D', '2', - 'S', 'U', 'I', 'T', - 'S', 'U', 'K', 'U', - 'S', 'U', 'N', 'G', - 'S', 'U', 'O', 'P', - 'S', 'U', 'O', 'X', - 'S', 'U', 'R', '9', - 'S', 'U', 'R', 'E', - 'S', 'U', 'R', 'X', - 'S', 'W', 'A', 'A', - 'S', 'W', 'A', 'N', - 'S', 'W', 'I', 'I', - 'S', 'W', 'O', 'O', - 'S', 'Y', 'R', 'X', - 'S', 'Z', 'A', 'A', - 'S', 'Z', 'E', 'E', - 'S', 'Z', 'W', 'A', - 'S', 'Z', 'W', 'G', - 'T', '0', '0', '1', - 'T', '0', '0', '2', - 'T', '0', '0', '3', - 'T', '0', '0', '4', - 'T', '0', '0', '5', - 'T', '0', '0', '6', - 'T', '0', '0', '7', - 'T', '0', '0', '8', - 'T', '0', '0', '9', - 'T', '0', '1', '0', - 'T', '0', '1', '1', - 'T', '0', '1', '2', - 'T', '0', '1', '3', - 'T', '0', '1', '4', - 'T', '0', '1', '5', - 'T', '0', '1', '6', - 'T', '0', '1', '7', - 'T', '0', '1', '8', - 'T', '0', '1', '9', - 'T', '0', '2', '0', - 'T', '0', '2', '1', - 'T', '0', '2', '2', - 'T', '0', '2', '3', - 'T', '0', '2', '4', - 'T', '0', '2', '5', - 'T', '0', '2', '6', - 'T', '0', '2', '7', - 'T', '0', '2', '8', - 'T', '0', '2', '9', - 'T', '0', '3', '0', - 'T', '0', '3', '1', - 'T', '0', '3', '2', - 'T', '0', '3', '3', - 'T', '0', '3', '4', - 'T', '0', '3', '5', - 'T', '0', '3', '6', - 'T', 'A', '-', '1', - 'T', 'A', '-', '2', - 'T', 'A', '-', '3', - 'T', 'A', '-', '4', - 'T', 'A', 'A', 'F', - 'T', 'A', 'A', 'I', - 'T', 'A', 'A', 'M', - 'T', 'A', 'A', 'Q', - 'T', 'A', 'B', 'S', - 'T', 'A', 'C', 'K', - 'T', 'A', 'C', 'O', - 'T', 'A', 'E', 'N', - 'T', 'A', 'I', 'L', - 'T', 'A', 'K', '4', - 'T', 'A', 'K', 'E', - 'T', 'A', 'L', 'L', - 'T', 'A', 'N', 'A', - 'T', 'A', 'N', 'G', - 'T', 'A', 'N', 'K', - 'T', 'A', 'P', 'E', - 'T', 'A', 'U', 'M', - 'T', 'A', 'W', 'A', - 'T', 'A', 'X', 'I', - 'T', 'C', 'H', 'E', - 'T', 'E', '-', '1', - 'T', 'E', '-', '2', - 'T', 'E', '-', '3', - 'T', 'E', '-', '4', - 'T', 'E', '-', '5', - 'T', 'E', '-', '6', - 'T', 'E', '-', '7', - 'T', 'E', '-', '8', - 'T', 'E', '-', '9', - 'T', 'E', '-', 'U', - 'T', 'E', 'A', 'R', - 'T', 'E', 'L', 'U', - 'T', 'E', 'N', 'S', - 'T', 'E', 'N', 'T', - 'T', 'E', 'N', 'U', - 'T', 'E', 'S', 'H', - 'T', 'E', 'S', 'T', - 'T', 'E', 'T', 'H', - 'T', 'E', 'U', 'N', - 'T', 'E', 'U', 'T', - 'T', 'E', 'X', 'T', - 'T', 'H', 'A', 'A', - 'T', 'H', 'A', 'I', - 'T', 'H', 'A', 'J', - 'T', 'H', 'A', 'L', - 'T', 'H', 'A', 'M', - 'T', 'H', 'A', 'N', - 'T', 'H', 'A', 'W', - 'T', 'H', 'E', 'A', - 'T', 'H', 'E', 'E', - 'T', 'H', 'E', 'H', - 'T', 'H', 'E', 'N', - 'T', 'H', 'E', 'S', - 'T', 'H', 'E', 'Y', - 'T', 'H', 'I', 'I', - 'T', 'H', 'I', 'N', - 'T', 'H', 'O', 'A', - 'T', 'H', 'O', 'J', - 'T', 'H', 'O', 'M', - 'T', 'H', 'O', 'O', - 'T', 'H', 'O', 'U', - 'T', 'H', 'W', 'A', - 'T', 'H', 'W', 'E', - 'T', 'H', 'W', 'I', - 'T', 'H', 'W', 'O', - 'T', 'I', '-', '1', - 'T', 'I', '-', '2', - 'T', 'I', '-', '3', - 'T', 'I', '-', '4', - 'T', 'I', '-', '5', - 'T', 'I', '-', '6', - 'T', 'I', '-', '7', - 'T', 'I', 'C', 'K', - 'T', 'I', 'E', 'P', - 'T', 'I', 'E', 'X', - 'T', 'I', 'L', 'E', - 'T', 'I', 'L', 'T', - 'T', 'I', 'M', 'E', - 'T', 'I', 'N', 'G', - 'T', 'I', 'N', 'Y', - 'T', 'I', 'T', 'A', - 'T', 'I', 'W', 'N', - 'T', 'I', 'W', 'R', - 'T', 'L', 'E', 'E', - 'T', 'L', 'H', 'A', - 'T', 'L', 'H', 'E', - 'T', 'L', 'H', 'I', - 'T', 'L', 'H', 'O', - 'T', 'L', 'H', 'U', - 'T', 'O', '-', '1', - 'T', 'O', '-', '2', - 'T', 'O', '-', '3', - 'T', 'O', '-', '4', - 'T', 'O', '-', '5', - 'T', 'O', '-', '6', - 'T', 'O', 'D', 'O', - 'T', 'O', 'N', 'E', - 'T', 'O', 'N', 'G', - 'T', 'O', 'O', 'N', - 'T', 'O', 'T', 'O', - 'T', 'R', 'A', 'M', - 'T', 'R', 'A', 'P', - 'T', 'R', 'A', 'Y', - 'T', 'R', 'E', 'E', - 'T', 'R', 'I', 'A', - 'T', 'R', 'U', 'E', - 'T', 'S', 'A', 'A', - 'T', 'S', 'A', 'B', - 'T', 'S', 'E', 'E', - 'T', 'S', 'H', 'A', - 'T', 'S', 'H', 'E', - 'T', 'S', 'I', 'U', - 'T', 'S', 'O', 'V', - 'T', 'S', 'S', 'A', - 'T', 'S', 'S', 'E', - 'T', 'S', 'W', 'A', - 'T', 'S', 'W', 'B', - 'T', 'S', 'W', 'E', - 'T', 'T', 'A', 'A', - 'T', 'T', 'E', 'E', - 'T', 'T', 'E', 'H', - 'T', 'T', 'H', 'A', - 'T', 'T', 'H', 'E', - 'T', 'T', 'H', 'I', - 'T', 'T', 'H', 'O', - 'T', 'T', 'H', 'U', - 'T', 'T', 'S', 'A', - 'T', 'T', 'S', 'E', - 'T', 'T', 'S', 'I', - 'T', 'T', 'S', 'O', - 'T', 'T', 'S', 'U', - 'T', 'T', 'T', 'A', - 'T', 'U', '-', '1', - 'T', 'U', '-', '2', - 'T', 'U', '-', '3', - 'T', 'U', '-', '4', - 'T', 'U', 'A', 'E', - 'T', 'U', 'B', 'E', - 'T', 'U', 'G', '2', - 'T', 'U', 'O', 'P', - 'T', 'U', 'O', 'T', - 'T', 'U', 'O', 'X', - 'T', 'U', 'R', 'N', - 'T', 'U', 'R', 'U', - 'T', 'U', 'R', 'X', - 'T', 'W', 'A', 'A', - 'T', 'W', 'I', 'I', - 'T', 'W', 'O', 'O', - 'T', 'X', 'W', 'V', - 'T', 'Y', 'A', 'Y', - 'T', 'Y', 'P', 'E', - 'T', 'Z', 'A', 'A', - 'T', 'Z', 'E', 'E', - 'T', 'Z', 'I', 'R', - 'T', 'Z', 'O', 'A', - 'U', '-', 'A', 'E', - 'U', '-', 'Y', 'E', - 'U', '0', '0', '1', - 'U', '0', '0', '2', - 'U', '0', '0', '3', - 'U', '0', '0', '4', - 'U', '0', '0', '5', - 'U', '0', '0', '6', - 'U', '0', '0', '7', - 'U', '0', '0', '8', - 'U', '0', '0', '9', - 'U', '0', '1', '0', - 'U', '0', '1', '1', - 'U', '0', '1', '2', - 'U', '0', '1', '3', - 'U', '0', '1', '4', - 'U', '0', '1', '5', - 'U', '0', '1', '6', - 'U', '0', '1', '7', - 'U', '0', '1', '8', - 'U', '0', '1', '9', - 'U', '0', '2', '0', - 'U', '0', '2', '1', - 'U', '0', '2', '2', - 'U', '0', '2', '3', - 'U', '0', '2', '4', - 'U', '0', '2', '5', - 'U', '0', '2', '6', - 'U', '0', '2', '7', - 'U', '0', '2', '8', - 'U', '0', '2', '9', - 'U', '0', '3', '0', - 'U', '0', '3', '1', - 'U', '0', '3', '2', - 'U', '0', '3', '3', - 'U', '0', '3', '4', - 'U', '0', '3', '5', - 'U', '0', '3', '6', - 'U', '0', '3', '7', - 'U', '0', '3', '8', - 'U', '0', '3', '9', - 'U', '0', '4', '0', - 'U', '0', '4', '1', - 'U', '0', '4', '2', - 'U', 'A', 'N', 'G', - 'U', 'A', 'T', 'H', - 'U', 'D', 'U', 'G', - 'U', 'I', 'U', 'C', - 'U', 'I', 'U', 'Q', - 'U', 'I', 'U', 'X', - 'U', 'I', 'U', 'Z', - 'U', 'M', 'U', 'M', - 'U', 'N', 'A', 'P', - 'U', 'N', 'D', 'O', - 'U', 'N', 'I', 'T', - 'U', 'R', 'I', '3', - 'U', 'R', 'U', 'S', - 'U', 'R', 'U', 'Z', - 'U', 'S', 'E', 'D', - 'U', 'S', 'H', '2', - 'U', 'S', 'H', 'X', - 'U', 'S', 'S', 'U', - 'U', 'U', 'U', '2', - 'U', 'U', 'U', '3', - 'U', 'U', 'U', 'U', - 'V', '0', '0', '1', - 'V', '0', '0', '2', - 'V', '0', '0', '3', - 'V', '0', '0', '4', - 'V', '0', '0', '5', - 'V', '0', '0', '6', - 'V', '0', '0', '7', - 'V', '0', '0', '8', - 'V', '0', '0', '9', - 'V', '0', '1', '0', - 'V', '0', '1', '1', - 'V', '0', '1', '2', - 'V', '0', '1', '3', - 'V', '0', '1', '4', - 'V', '0', '1', '5', - 'V', '0', '1', '6', - 'V', '0', '1', '7', - 'V', '0', '1', '8', - 'V', '0', '1', '9', - 'V', '0', '2', '0', - 'V', '0', '2', '1', - 'V', '0', '2', '2', - 'V', '0', '2', '3', - 'V', '0', '2', '4', - 'V', '0', '2', '5', - 'V', '0', '2', '6', - 'V', '0', '2', '7', - 'V', '0', '2', '8', - 'V', '0', '2', '9', - 'V', '0', '3', '0', - 'V', '0', '3', '1', - 'V', '0', '3', '2', - 'V', '0', '3', '3', - 'V', '0', '3', '4', - 'V', '0', '3', '5', - 'V', '0', '3', '6', - 'V', '0', '3', '7', - 'V', '0', '3', '8', - 'V', '0', '3', '9', - 'V', '0', '4', '0', - 'V', 'A', 'N', 'E', - 'V', 'E', 'D', 'E', - 'V', 'E', 'I', 'L', - 'V', 'E', 'L', 'I', - 'V', 'E', 'N', 'D', - 'V', 'E', 'R', 'Y', - 'V', 'E', 'S', 'T', - 'V', 'E', 'U', 'M', - 'V', 'E', 'U', 'X', - 'V', 'E', 'Y', 'Z', - 'V', 'I', 'D', 'A', - 'V', 'I', 'D', 'J', - 'V', 'I', 'E', 'P', - 'V', 'I', 'E', 'T', - 'V', 'I', 'E', 'X', - 'V', 'I', 'N', 'E', - 'V', 'I', 'Y', 'O', - 'V', 'O', 'I', 'D', - 'V', 'O', 'O', 'I', - 'V', 'U', 'E', 'Q', - 'V', 'U', 'R', 'X', - 'V', 'Y', 'R', 'X', - 'W', '0', '0', '1', - 'W', '0', '0', '2', - 'W', '0', '0', '3', - 'W', '0', '0', '4', - 'W', '0', '0', '5', - 'W', '0', '0', '6', - 'W', '0', '0', '7', - 'W', '0', '0', '8', - 'W', '0', '0', '9', - 'W', '0', '1', '0', - 'W', '0', '1', '1', - 'W', '0', '1', '2', - 'W', '0', '1', '3', - 'W', '0', '1', '4', - 'W', '0', '1', '5', - 'W', '0', '1', '6', - 'W', '0', '1', '7', - 'W', '0', '1', '8', - 'W', '0', '1', '9', - 'W', '0', '2', '0', - 'W', '0', '2', '1', - 'W', '0', '2', '2', - 'W', '0', '2', '3', - 'W', '0', '2', '4', - 'W', '0', '2', '5', - 'W', 'A', '-', '1', - 'W', 'A', '-', '2', - 'W', 'A', '-', '3', - 'W', 'A', '-', '4', - 'W', 'A', '-', '5', - 'W', 'A', 'E', 'N', - 'W', 'A', 'L', 'K', - 'W', 'A', 'L', 'L', - 'W', 'A', 'N', 'D', - 'W', 'A', 'V', 'E', - 'W', 'A', 'V', 'Y', - 'W', 'E', '-', '1', - 'W', 'E', '-', '2', - 'W', 'E', '-', '3', - 'W', 'E', '-', '4', - 'W', 'E', 'E', 'N', - 'W', 'E', 'L', 'L', - 'W', 'E', 'S', 'T', - 'W', 'E', 'U', 'X', - 'W', 'I', '-', '1', - 'W', 'I', '-', '2', - 'W', 'I', '-', '3', - 'W', 'I', '-', '4', - 'W', 'I', '-', '5', - 'W', 'I', 'D', 'E', - 'W', 'I', 'N', 'D', - 'W', 'I', 'N', 'E', - 'W', 'I', 'N', 'G', - 'W', 'I', 'N', 'K', - 'W', 'I', 'T', 'H', - 'W', 'O', '-', '1', - 'W', 'O', '-', '2', - 'W', 'O', '-', '3', - 'W', 'O', '-', '4', - 'W', 'O', '-', '5', - 'W', 'O', '-', '6', - 'W', 'O', '-', '7', - 'W', 'O', 'L', 'F', - 'W', 'O', 'O', 'D', - 'W', 'O', 'O', 'L', - 'W', 'O', 'O', 'N', - 'W', 'O', 'R', 'D', - 'W', 'O', 'R', 'K', - 'W', 'O', 'R', 'M', - 'W', 'R', 'A', 'P', - 'W', 'U', 'L', 'U', - 'W', 'U', 'O', 'P', - 'W', 'U', 'O', 'X', - 'W', 'Y', 'N', 'N', - 'X', '0', '0', '1', - 'X', '0', '0', '2', - 'X', '0', '0', '3', - 'X', '0', '0', '4', - 'X', '0', '0', '5', - 'X', '0', '0', '6', - 'X', '0', '0', '7', - 'X', '0', '0', '8', - 'X', 'A', 'P', 'H', - 'X', 'A', 'U', 'S', - 'X', 'E', 'Y', 'N', - 'X', 'I', 'A', 'B', - 'X', 'I', 'E', 'P', - 'X', 'I', 'E', 'T', - 'X', 'I', 'E', 'X', - 'X', 'O', 'P', 'H', - 'X', 'U', 'O', 'X', - 'X', 'W', 'A', 'A', - 'X', 'W', 'E', 'E', - 'X', 'Y', 'A', 'A', - 'X', 'Y', 'E', 'E', - 'X', 'Y', 'O', 'O', - 'X', 'Y', 'R', 'X', - 'Y', '0', '0', '1', - 'Y', '0', '0', '2', - 'Y', '0', '0', '3', - 'Y', '0', '0', '4', - 'Y', '0', '0', '5', - 'Y', '0', '0', '6', - 'Y', '0', '0', '7', - 'Y', '0', '0', '8', - 'Y', 'A', '-', '1', - 'Y', 'A', '-', '2', - 'Y', 'A', '-', '3', - 'Y', 'A', '-', '4', - 'Y', 'A', '-', '5', - 'Y', 'A', '-', 'O', - 'Y', 'A', '-', 'U', - 'Y', 'A', 'A', 'I', - 'Y', 'A', 'B', 'H', - 'Y', 'A', 'C', 'H', - 'Y', 'A', 'D', 'D', - 'Y', 'A', 'D', 'H', - 'Y', 'A', 'F', 'U', - 'Y', 'A', 'G', 'H', - 'Y', 'A', 'G', 'N', - 'Y', 'A', 'H', 'H', - 'Y', 'A', 'K', 'H', - 'Y', 'A', 'N', 'G', - 'Y', 'A', 'R', 'N', - 'Y', 'A', 'R', 'R', - 'Y', 'A', 'S', 'H', - 'Y', 'A', 'S', 'S', - 'Y', 'A', 'T', 'H', - 'Y', 'A', 'T', 'I', - 'Y', 'A', 'T', 'T', - 'Y', 'A', 'W', 'N', - 'Y', 'A', 'Y', 'D', - 'Y', 'A', 'Z', 'H', - 'Y', 'A', 'Z', 'Z', - 'Y', 'E', 'A', 'R', - 'Y', 'E', 'E', 'G', - 'Y', 'E', 'I', 'N', - 'Y', 'E', 'R', 'I', - 'Y', 'E', 'R', 'U', - 'Y', 'E', 'U', 'M', - 'Y', 'E', 'U', 'Q', - 'Y', 'E', 'U', 'X', - 'Y', 'F', 'E', 'N', - 'Y', 'I', '-', 'U', - 'Y', 'I', 'E', 'E', - 'Y', 'I', 'E', 'P', - 'Y', 'I', 'E', 'T', - 'Y', 'I', 'E', 'X', - 'Y', 'I', 'N', 'G', - 'Y', 'I', 'W', 'N', - 'Y', 'O', '-', '1', - 'Y', 'O', '-', '2', - 'Y', 'O', '-', '3', - 'Y', 'O', '-', '4', - 'Y', 'O', '-', '5', - 'Y', 'O', '-', '6', - 'Y', 'O', '-', 'A', - 'Y', 'O', '-', 'I', - 'Y', 'O', '-', 'O', - 'Y', 'O', 'D', 'H', - 'Y', 'O', 'G', 'H', - 'Y', 'O', 'M', 'O', - 'Y', 'O', 'R', 'I', - 'Y', 'O', 'W', 'D', - 'Y', 'U', '-', '1', - 'Y', 'U', '-', '2', - 'Y', 'U', '-', '3', - 'Y', 'U', '-', '4', - 'Y', 'U', '-', 'A', - 'Y', 'U', '-', 'E', - 'Y', 'U', '-', 'I', - 'Y', 'U', '-', 'O', - 'Y', 'U', '-', 'U', - 'Y', 'U', 'A', 'N', - 'Y', 'U', 'D', 'H', - 'Y', 'U', 'E', 'Q', - 'Y', 'U', 'O', 'M', - 'Y', 'U', 'O', 'P', - 'Y', 'U', 'O', 'T', - 'Y', 'U', 'O', 'X', - 'Y', 'U', 'P', 'I', - 'Y', 'U', 'R', 'X', - 'Y', 'W', 'A', 'A', - 'Y', 'W', 'I', 'I', - 'Y', 'W', 'O', 'O', - 'Y', 'Y', 'A', 'A', - 'Y', 'Y', 'R', 'X', - 'Z', '0', '0', '1', - 'Z', '0', '0', '2', - 'Z', '0', '0', '3', - 'Z', '0', '0', '4', - 'Z', '0', '0', '5', - 'Z', '0', '0', '6', - 'Z', '0', '0', '7', - 'Z', '0', '0', '8', - 'Z', '0', '0', '9', - 'Z', '0', '1', '0', - 'Z', '0', '1', '1', - 'Z', '0', '1', '2', - 'Z', '0', '1', '3', - 'Z', '0', '1', '4', - 'Z', '0', '1', '5', - 'Z', '0', '1', '6', - 'Z', 'A', 'E', 'F', - 'Z', 'A', 'I', 'N', - 'Z', 'A', 'M', 'X', - 'Z', 'A', 'R', 'L', - 'Z', 'A', 'T', 'A', - 'Z', 'A', 'Y', 'N', - 'Z', 'E', 'L', 'O', - 'Z', 'E', 'R', 'O', - 'Z', 'E', 'T', 'A', - 'Z', 'E', 'U', 'S', - 'Z', 'H', 'A', 'A', - 'Z', 'H', 'A', 'P', - 'Z', 'H', 'A', 'R', - 'Z', 'H', 'A', 'T', - 'Z', 'H', 'A', 'X', - 'Z', 'H', 'E', 'E', - 'Z', 'H', 'E', 'P', - 'Z', 'H', 'E', 'T', - 'Z', 'H', 'E', 'X', - 'Z', 'H', 'I', 'L', - 'Z', 'H', 'O', 'I', - 'Z', 'H', 'O', 'O', - 'Z', 'H', 'O', 'P', - 'Z', 'H', 'O', 'T', - 'Z', 'H', 'O', 'X', - 'Z', 'H', 'U', 'O', - 'Z', 'H', 'U', 'P', - 'Z', 'H', 'U', 'R', - 'Z', 'H', 'U', 'T', - 'Z', 'H', 'U', 'X', - 'Z', 'H', 'W', 'A', - 'Z', 'H', 'W', 'E', - 'Z', 'H', 'Y', 'P', - 'Z', 'H', 'Y', 'R', - 'Z', 'H', 'Y', 'T', - 'Z', 'H', 'Y', 'X', - 'Z', 'I', 'D', 'A', - 'Z', 'I', 'E', 'P', - 'Z', 'I', 'E', 'X', - 'Z', 'I', 'Z', '2', - 'Z', 'S', 'H', 'A', - 'Z', 'U', 'O', 'P', - 'Z', 'U', 'O', 'X', - 'Z', 'U', 'R', 'X', - 'Z', 'W', 'N', 'J', - 'Z', 'W', 'S', 'P', - 'Z', 'Y', 'R', 'X', - 'Z', 'Z', 'A', 'A', - 'Z', 'Z', 'A', 'P', - 'Z', 'Z', 'A', 'T', - 'Z', 'Z', 'A', 'X', - 'Z', 'Z', 'E', 'E', - 'Z', 'Z', 'E', 'P', - 'Z', 'Z', 'E', 'X', - 'Z', 'Z', 'I', 'E', - 'Z', 'Z', 'I', 'P', - 'Z', 'Z', 'I', 'T', - 'Z', 'Z', 'I', 'X', - 'Z', 'Z', 'O', 'P', - 'Z', 'Z', 'O', 'X', - 'Z', 'Z', 'S', 'A', - 'Z', 'Z', 'U', 'P', - 'Z', 'Z', 'U', 'R', - 'Z', 'Z', 'U', 'X', - 'Z', 'Z', 'Y', 'A', - 'Z', 'Z', 'Y', 'P', - 'Z', 'Z', 'Y', 'R', - 'Z', 'Z', 'Y', 'T', - 'Z', 'Z', 'Y', 'X', - '-', 'C', 'H', 'A', 'L', - '-', 'C', 'H', 'A', 'R', - '-', 'D', 'Z', 'U', 'D', - '-', 'P', 'H', 'R', 'U', - 'A', '0', '0', '5', 'A', - 'A', '0', '0', '6', 'A', - 'A', '0', '0', '6', 'B', - 'A', '0', '1', '0', 'A', - 'A', '0', '1', '4', 'A', - 'A', '0', '1', '7', 'A', - 'A', '0', '2', '6', 'A', - 'A', '0', '2', '8', 'B', - 'A', '0', '3', '2', 'A', - 'A', '0', '3', '9', 'A', - 'A', '0', '4', '0', 'A', - 'A', '0', '4', '1', 'A', - 'A', '0', '4', '2', 'A', - 'A', '0', '4', '3', 'A', - 'A', '0', '4', '5', 'A', - 'A', '0', '4', '6', 'A', - 'A', '0', '4', '6', 'B', - 'A', '0', '6', '6', 'A', - 'A', '0', '6', '6', 'B', - 'A', '0', '6', '6', 'C', - 'A', '0', '9', '7', 'A', - 'A', '0', '9', '8', 'A', - 'A', '1', '0', '0', 'A', - 'A', '1', '0', '1', 'A', - 'A', '1', '0', '2', 'A', - 'A', '1', '0', '4', 'A', - 'A', '1', '0', '4', 'B', - 'A', '1', '0', '4', 'C', - 'A', '1', '0', '5', 'A', - 'A', '1', '0', '5', 'B', - 'A', '1', '0', '7', 'A', - 'A', '1', '0', '7', 'B', - 'A', '1', '0', '7', 'C', - 'A', '1', '1', '0', 'A', - 'A', '1', '1', '0', 'B', - 'A', '1', '1', '5', 'A', - 'A', '1', '2', '0', 'B', - 'A', '1', '2', '5', 'A', - 'A', '1', '3', '1', 'C', - 'A', '1', '3', '5', 'A', - 'A', '2', '0', '2', 'A', - 'A', '2', '0', '2', 'B', - 'A', '2', '0', '7', 'A', - 'A', '2', '0', '9', 'A', - 'A', '2', '1', '5', 'A', - 'A', '2', '1', '6', 'A', - 'A', '2', '2', '7', 'A', - 'A', '2', '6', '7', 'A', - 'A', '2', '8', '9', 'A', - 'A', '2', '9', '4', 'A', - 'A', '2', '9', '9', 'A', - 'A', '3', '0', '9', 'A', - 'A', '3', '0', '9', 'B', - 'A', '3', '0', '9', 'C', - 'A', '3', '1', '3', 'A', - 'A', '3', '1', '3', 'B', - 'A', '3', '1', '3', 'C', - 'A', '3', '2', '9', 'A', - 'A', '3', '3', '2', 'A', - 'A', '3', '3', '2', 'B', - 'A', '3', '3', '2', 'C', - 'A', '3', '3', '6', 'A', - 'A', '3', '3', '6', 'B', - 'A', '3', '3', '6', 'C', - 'A', '3', '5', '9', 'A', - 'A', '3', '6', '4', 'A', - 'A', '3', '6', '8', 'A', - 'A', '3', '7', '1', 'A', - 'A', '3', '8', '1', 'A', - 'A', '3', '8', '3', 'A', - 'A', '3', '8', '6', 'A', - 'A', '4', '1', '0', 'A', - 'A', '4', '5', '0', 'A', - 'A', '4', '5', '7', 'A', - 'A', 'A', '0', '0', '1', - 'A', 'A', '0', '0', '2', - 'A', 'A', '0', '0', '3', - 'A', 'A', '0', '0', '4', - 'A', 'A', '0', '0', '5', - 'A', 'A', '0', '0', '6', - 'A', 'A', '0', '0', '7', - 'A', 'A', '0', '0', '8', - 'A', 'A', '0', '0', '9', - 'A', 'A', '0', '1', '0', - 'A', 'A', '0', '1', '1', - 'A', 'A', '0', '1', '2', - 'A', 'A', '0', '1', '3', - 'A', 'A', '0', '1', '4', - 'A', 'A', '0', '1', '5', - 'A', 'A', '0', '1', '6', - 'A', 'A', '0', '1', '7', - 'A', 'A', '0', '1', '8', - 'A', 'A', '0', '1', '9', - 'A', 'A', '0', '2', '0', - 'A', 'A', '0', '2', '1', - 'A', 'A', '0', '2', '2', - 'A', 'A', '0', '2', '3', - 'A', 'A', '0', '2', '4', - 'A', 'A', '0', '2', '5', - 'A', 'A', '0', '2', '6', - 'A', 'A', '0', '2', '7', - 'A', 'A', '0', '2', '8', - 'A', 'A', '0', '2', '9', - 'A', 'A', '0', '3', '0', - 'A', 'A', '0', '3', '1', - 'A', 'A', '0', '3', '2', - 'A', 'A', 'Y', 'I', 'N', - 'A', 'B', '0', '0', '1', - 'A', 'B', '0', '0', '2', - 'A', 'B', '0', '0', '3', - 'A', 'B', '0', '0', '4', - 'A', 'B', '0', '0', '5', - 'A', 'B', '0', '0', '6', - 'A', 'B', '0', '0', '7', - 'A', 'B', '0', '0', '8', - 'A', 'B', '0', '0', '9', - 'A', 'B', '0', '1', '0', - 'A', 'B', '0', '1', '1', - 'A', 'B', '0', '1', '3', - 'A', 'B', '0', '1', '6', - 'A', 'B', '0', '1', '7', - 'A', 'B', '0', '2', '0', - 'A', 'B', '0', '2', '1', - 'A', 'B', '0', '2', '2', - 'A', 'B', '0', '2', '3', - 'A', 'B', '0', '2', '4', - 'A', 'B', '0', '2', '6', - 'A', 'B', '0', '2', '7', - 'A', 'B', '0', '2', '8', - 'A', 'B', '0', '2', '9', - 'A', 'B', '0', '3', '0', - 'A', 'B', '0', '3', '1', - 'A', 'B', '0', '3', '4', - 'A', 'B', '0', '3', '7', - 'A', 'B', '0', '3', '8', - 'A', 'B', '0', '3', '9', - 'A', 'B', '0', '4', '0', - 'A', 'B', '0', '4', '1', - 'A', 'B', '0', '4', '4', - 'A', 'B', '0', '4', '5', - 'A', 'B', '0', '4', '6', - 'A', 'B', '0', '4', '7', - 'A', 'B', '0', '4', '8', - 'A', 'B', '0', '4', '9', - 'A', 'B', '0', '5', '0', - 'A', 'B', '0', '5', '1', - 'A', 'B', '0', '5', '3', - 'A', 'B', '0', '5', '4', - 'A', 'B', '0', '5', '5', - 'A', 'B', '0', '5', '6', - 'A', 'B', '0', '5', '7', - 'A', 'B', '0', '5', '8', - 'A', 'B', '0', '5', '9', - 'A', 'B', '0', '6', '0', - 'A', 'B', '0', '6', '1', - 'A', 'B', '0', '6', '5', - 'A', 'B', '0', '6', '6', - 'A', 'B', '0', '6', '7', - 'A', 'B', '0', '6', '9', - 'A', 'B', '0', '7', '0', - 'A', 'B', '0', '7', '3', - 'A', 'B', '0', '7', '4', - 'A', 'B', '0', '7', '6', - 'A', 'B', '0', '7', '7', - 'A', 'B', '0', '7', '8', - 'A', 'B', '0', '7', '9', - 'A', 'B', '0', '8', '0', - 'A', 'B', '0', '8', '1', - 'A', 'B', '0', '8', '2', - 'A', 'B', '0', '8', '5', - 'A', 'B', '0', '8', '6', - 'A', 'B', '0', '8', '7', - 'A', 'B', '1', '1', '8', - 'A', 'B', '1', '2', '0', - 'A', 'B', '1', '2', '2', - 'A', 'B', '1', '2', '3', - 'A', 'B', '1', '6', '4', - 'A', 'B', '1', '7', '1', - 'A', 'B', '1', '8', '0', - 'A', 'B', '1', '8', '8', - 'A', 'B', '1', '9', '1', - 'A', 'B', 'O', 'V', 'E', - 'A', 'C', 'U', 'T', 'E', - 'A', 'D', 'D', 'A', 'K', - 'A', 'D', 'L', 'A', 'M', - 'A', 'D', 'U', 'L', 'T', - 'A', 'F', 'F', 'I', 'X', - 'A', 'F', 'T', 'E', 'R', - 'A', 'G', 'A', 'I', 'N', - 'A', 'G', 'O', 'G', 'I', - 'A', 'G', 'U', 'N', 'G', - 'A', 'H', 'A', 'N', 'G', - 'A', 'H', 'S', 'D', 'A', - 'A', 'I', 'T', 'O', 'N', - 'A', 'K', 'A', 'R', 'A', - 'A', 'K', 'B', 'A', 'R', - 'A', 'K', 'U', 'R', 'U', - 'A', 'L', 'A', 'P', 'H', - 'A', 'L', 'A', 'R', 'M', - 'A', 'L', 'E', 'P', 'H', - 'A', 'L', 'E', 'U', 'T', - 'A', 'L', 'G', 'I', 'Z', - 'A', 'L', 'I', 'E', 'N', - 'A', 'L', 'I', 'F', 'U', - 'A', 'L', 'L', 'A', 'H', - 'A', 'L', 'P', 'H', 'A', - 'A', 'N', 'D', 'A', 'P', - 'A', 'N', 'G', 'E', 'D', - 'A', 'N', 'G', 'E', 'L', - 'A', 'N', 'G', 'E', 'R', - 'A', 'N', 'G', 'K', 'A', - 'A', 'N', 'G', 'L', 'E', - 'A', 'N', 'G', 'R', 'Y', - 'A', 'N', 'H', 'A', 'A', - 'A', 'N', 'H', 'U', 'M', - 'A', 'N', 'P', 'E', 'A', - 'A', 'N', 'S', 'H', 'E', - 'A', 'N', 'S', 'U', 'Z', - 'A', 'P', 'A', 'R', 'T', - 'A', 'P', 'E', 'S', 'O', - 'A', 'P', 'P', 'H', 'O', - 'A', 'P', 'P', 'L', 'E', - 'A', 'P', 'R', 'I', 'L', - 'A', 'R', 'A', 'E', 'A', - 'A', 'R', 'E', 'P', 'A', - 'A', 'R', 'G', 'O', 'N', - 'A', 'R', 'I', 'E', 'S', - 'A', 'R', 'K', 'A', 'B', - 'A', 'R', 'R', 'A', 'Y', - 'A', 'R', 'R', 'O', 'W', - 'A', 'S', 'A', 'L', '2', - 'A', 'S', 'C', 'I', 'A', - 'A', 'S', 'H', 'E', 'S', - 'A', 'S', 'P', 'E', 'R', - 'A', 'T', 'I', 'Y', 'A', - 'A', 'T', 'N', 'A', 'H', - 'A', 'T', 'T', 'A', 'K', - 'A', 'T', 'T', 'I', 'C', - 'B', '0', '0', '5', 'A', - 'B', '1', '0', '5', 'F', - 'B', '1', '0', '5', 'M', - 'B', '1', '0', '6', 'F', - 'B', '1', '0', '6', 'M', - 'B', '1', '0', '7', 'F', - 'B', '1', '0', '7', 'M', - 'B', '1', '0', '8', 'F', - 'B', '1', '0', '8', 'M', - 'B', '1', '0', '9', 'F', - 'B', '1', '0', '9', 'M', - 'B', 'A', 'C', 'O', 'N', - 'B', 'A', 'D', 'G', 'E', - 'B', 'A', 'G', 'E', 'L', - 'B', 'A', 'L', 'A', 'G', - 'B', 'A', 'M', 'U', 'M', - 'B', 'A', 'N', 'J', 'O', - 'B', 'A', 'R', 'A', '2', - 'B', 'A', 'S', 'S', 'A', - 'B', 'A', 'T', 'A', 'K', - 'B', 'A', 'W', 'A', 'K', - 'B', 'B', 'I', 'E', 'P', - 'B', 'B', 'I', 'E', 'T', - 'B', 'B', 'I', 'E', 'X', - 'B', 'B', 'U', 'O', 'P', - 'B', 'B', 'U', 'O', 'X', - 'B', 'B', 'U', 'R', 'X', - 'B', 'E', 'A', 'C', 'H', - 'B', 'E', 'A', 'D', 'S', - 'B', 'E', 'A', 'M', 'S', - 'B', 'E', 'A', 'N', 'S', - 'B', 'E', 'E', 'T', 'A', - 'B', 'E', 'G', 'I', 'N', - 'B', 'E', 'H', 'E', 'H', - 'B', 'E', 'I', 'T', 'H', - 'B', 'E', 'L', 'O', 'W', - 'B', 'E', 'N', 'D', 'E', - 'B', 'E', 'N', 'T', 'O', - 'B', 'E', 'O', 'R', 'C', - 'B', 'H', 'A', 'L', 'E', - 'B', 'H', 'E', 'T', 'H', - 'B', 'I', 'N', 'D', 'I', - 'B', 'I', 'N', 'D', 'U', - 'B', 'I', 'R', 'G', 'A', - 'B', 'I', 'S', 'A', 'H', - 'B', 'I', 'S', 'O', 'N', - 'B', 'L', 'A', 'C', 'K', - 'B', 'L', 'A', 'D', 'E', - 'B', 'L', 'A', 'N', 'K', - 'B', 'L', 'I', 'N', 'K', - 'B', 'L', 'O', 'C', 'K', - 'B', 'L', 'O', 'N', 'D', - 'B', 'L', 'O', 'O', 'D', - 'B', 'O', 'A', 'R', 'D', - 'B', 'O', 'O', 'K', 'S', - 'B', 'O', 'O', 'T', 'S', - 'B', 'O', 'R', 'A', 'X', - 'B', 'O', 'R', 'Z', 'Y', - 'B', 'R', 'A', 'C', 'E', - 'B', 'R', 'A', 'I', 'N', - 'B', 'R', 'E', 'A', 'D', - 'B', 'R', 'E', 'V', 'E', - 'B', 'R', 'I', 'C', 'K', - 'B', 'R', 'I', 'D', 'E', - 'B', 'R', 'O', 'A', 'D', - 'B', 'R', 'O', 'O', 'M', - 'B', 'R', 'O', 'W', 'N', - 'B', 'R', 'U', 'S', 'H', - 'B', 'S', 'D', 'U', 'S', - 'B', 'S', 'K', 'A', '-', - 'B', 'S', 'K', 'U', 'R', - 'B', 'S', 'T', 'A', 'R', - 'B', 'U', 'H', 'I', 'D', - 'B', 'U', 'L', 'L', 'S', - 'B', 'U', 'L', 'U', 'G', - 'B', 'U', 'M', 'P', 'Y', - 'B', 'U', 'N', 'N', 'Y', - 'B', 'U', 'S', 'T', 'S', - 'B', 'Z', 'U', 'N', 'G', - 'C', '0', '0', '2', 'A', - 'C', '0', '0', '2', 'B', - 'C', '0', '0', '2', 'C', - 'C', '0', '1', '0', 'A', - 'C', 'A', 'A', 'N', 'G', - 'C', 'A', 'K', 'R', 'A', - 'C', 'A', 'L', 'Y', 'A', - 'C', 'A', 'M', 'E', 'L', - 'C', 'A', 'N', 'D', 'Y', - 'C', 'A', 'N', 'O', 'E', - 'C', 'A', 'P', 'U', 'T', - 'C', 'A', 'R', 'D', 'S', - 'C', 'A', 'R', 'E', 'T', - 'C', 'A', 'R', 'I', 'K', - 'C', 'A', 'R', 'M', 'I', - 'C', 'A', 'R', 'O', 'N', - 'C', 'A', 'U', 'D', 'A', - 'C', 'C', 'H', 'A', 'A', - 'C', 'C', 'H', 'E', 'E', - 'C', 'C', 'H', 'H', 'A', - 'C', 'C', 'H', 'H', 'E', - 'C', 'C', 'H', 'H', 'I', - 'C', 'C', 'H', 'H', 'O', - 'C', 'C', 'H', 'H', 'U', - 'C', 'E', 'A', 'L', 'C', - 'C', 'E', 'C', 'A', 'K', - 'C', 'E', 'C', 'E', 'K', - 'C', 'E', 'I', 'R', 'T', - 'C', 'E', 'R', 'E', 'K', - 'C', 'E', 'R', 'E', 'S', - 'C', 'H', 'A', 'D', 'A', - 'C', 'H', 'A', 'I', 'R', - 'C', 'H', 'A', 'N', 'G', - 'C', 'H', 'A', 'R', 'T', - 'C', 'H', 'E', 'C', 'K', - 'C', 'H', 'E', 'E', 'K', - 'C', 'H', 'E', 'E', 'M', - 'C', 'H', 'E', 'R', 'Y', - 'C', 'H', 'E', 'S', 'S', - 'C', 'H', 'E', 'S', 'T', - 'C', 'H', 'H', 'I', 'M', - 'C', 'H', 'I', 'C', 'K', - 'C', 'H', 'I', 'K', 'I', - 'C', 'H', 'I', 'L', 'D', - 'C', 'H', 'I', 'M', 'E', - 'C', 'H', 'I', 'N', 'G', - 'C', 'H', 'O', 'K', 'E', - 'C', 'H', 'R', 'O', 'A', - 'C', 'H', 'U', 'L', 'A', - 'C', 'H', 'U', 'O', 'P', - 'C', 'H', 'U', 'O', 'T', - 'C', 'H', 'U', 'O', 'X', - 'C', 'H', 'U', 'R', 'X', - 'C', 'H', 'Y', 'R', 'X', - 'C', 'I', 'E', 'U', 'C', - 'C', 'L', 'A', 'I', 'M', - 'C', 'L', 'E', 'A', 'R', - 'C', 'L', 'I', 'C', 'K', - 'C', 'L', 'I', 'F', 'F', - 'C', 'L', 'O', 'C', 'K', - 'C', 'L', 'O', 'S', 'E', - 'C', 'L', 'O', 'T', 'H', - 'C', 'L', 'O', 'U', 'D', - 'C', 'L', 'O', 'W', 'N', - 'C', 'L', 'U', 'B', 'S', - 'C', 'M', '0', '0', '1', - 'C', 'M', '0', '0', '2', - 'C', 'M', '0', '0', '4', - 'C', 'M', '0', '0', '5', - 'C', 'M', '0', '0', '6', - 'C', 'M', '0', '0', '7', - 'C', 'M', '0', '0', '8', - 'C', 'M', '0', '0', '9', - 'C', 'M', '0', '1', '0', - 'C', 'M', '0', '1', '1', - 'C', 'M', '0', '1', '2', - 'C', 'M', '0', '1', '3', - 'C', 'M', '0', '1', '5', - 'C', 'M', '0', '1', '7', - 'C', 'M', '0', '1', '9', - 'C', 'M', '0', '2', '1', - 'C', 'M', '0', '2', '3', - 'C', 'M', '0', '2', '4', - 'C', 'M', '0', '2', '5', - 'C', 'M', '0', '2', '6', - 'C', 'M', '0', '2', '7', - 'C', 'M', '0', '2', '8', - 'C', 'M', '0', '2', '9', - 'C', 'M', '0', '3', '0', - 'C', 'M', '0', '3', '3', - 'C', 'M', '0', '3', '4', - 'C', 'M', '0', '3', '5', - 'C', 'M', '0', '3', '6', - 'C', 'M', '0', '3', '7', - 'C', 'M', '0', '3', '8', - 'C', 'M', '0', '3', '9', - 'C', 'M', '0', '4', '0', - 'C', 'M', '0', '4', '1', - 'C', 'M', '0', '4', '4', - 'C', 'M', '0', '4', '6', - 'C', 'M', '0', '4', '7', - 'C', 'M', '0', '4', '9', - 'C', 'M', '0', '5', '0', - 'C', 'M', '0', '5', '1', - 'C', 'M', '0', '5', '2', - 'C', 'M', '0', '5', '3', - 'C', 'M', '0', '5', '4', - 'C', 'M', '0', '5', '5', - 'C', 'M', '0', '5', '6', - 'C', 'M', '0', '5', '8', - 'C', 'M', '0', '5', '9', - 'C', 'M', '0', '6', '0', - 'C', 'M', '0', '6', '1', - 'C', 'M', '0', '6', '2', - 'C', 'M', '0', '6', '3', - 'C', 'M', '0', '6', '4', - 'C', 'M', '0', '6', '6', - 'C', 'M', '0', '6', '7', - 'C', 'M', '0', '6', '8', - 'C', 'M', '0', '6', '9', - 'C', 'M', '0', '7', '0', - 'C', 'M', '0', '7', '1', - 'C', 'M', '0', '7', '2', - 'C', 'M', '0', '7', '3', - 'C', 'M', '0', '7', '4', - 'C', 'M', '0', '7', '5', - 'C', 'M', '0', '7', '6', - 'C', 'M', '0', '7', '8', - 'C', 'M', '0', '7', '9', - 'C', 'M', '0', '8', '0', - 'C', 'M', '0', '8', '1', - 'C', 'M', '0', '8', '2', - 'C', 'M', '0', '8', '3', - 'C', 'M', '0', '8', '4', - 'C', 'M', '0', '8', '5', - 'C', 'M', '0', '8', '6', - 'C', 'M', '0', '8', '7', - 'C', 'M', '0', '8', '8', - 'C', 'M', '0', '8', '9', - 'C', 'M', '0', '9', '0', - 'C', 'M', '0', '9', '1', - 'C', 'M', '0', '9', '2', - 'C', 'M', '0', '9', '4', - 'C', 'M', '0', '9', '5', - 'C', 'M', '0', '9', '6', - 'C', 'M', '0', '9', '7', - 'C', 'M', '0', '9', '8', - 'C', 'M', '0', '9', '9', - 'C', 'M', '1', '0', '0', - 'C', 'M', '1', '0', '1', - 'C', 'M', '1', '0', '2', - 'C', 'M', '1', '0', '3', - 'C', 'M', '1', '0', '4', - 'C', 'M', '1', '0', '5', - 'C', 'M', '1', '0', '7', - 'C', 'M', '1', '0', '8', - 'C', 'M', '1', '0', '9', - 'C', 'M', '1', '1', '0', - 'C', 'M', '1', '1', '2', - 'C', 'M', '1', '1', '4', - 'C', 'M', '3', '0', '1', - 'C', 'M', '3', '0', '2', - 'C', 'O', 'E', 'N', 'G', - 'C', 'O', 'L', 'O', 'N', - 'C', 'O', 'L', 'O', 'R', - 'C', 'O', 'M', 'E', 'T', - 'C', 'O', 'M', 'M', 'A', - 'C', 'O', 'R', 'A', 'L', - 'C', 'O', 'U', 'C', 'H', - 'C', 'O', 'V', 'E', 'R', - 'C', 'R', 'E', 'A', 'M', - 'C', 'R', 'O', 'I', 'X', - 'C', 'R', 'O', 'S', 'S', - 'C', 'R', 'O', 'W', 'N', - 'C', 'U', 'B', 'E', 'D', - 'C', 'U', 'R', 'L', 'Y', - 'C', 'U', 'R', 'R', 'Y', - 'C', 'U', 'R', 'V', 'E', - 'D', '0', '0', '8', 'A', - 'D', '0', '2', '7', 'A', - 'D', '0', '3', '1', 'A', - 'D', '0', '3', '4', 'A', - 'D', '0', '4', '6', 'A', - 'D', '0', '4', '8', 'A', - 'D', '0', '5', '0', 'A', - 'D', '0', '5', '0', 'B', - 'D', '0', '5', '0', 'C', - 'D', '0', '5', '0', 'D', - 'D', '0', '5', '0', 'E', - 'D', '0', '5', '0', 'F', - 'D', '0', '5', '0', 'G', - 'D', '0', '5', '0', 'H', - 'D', '0', '5', '0', 'I', - 'D', '0', '5', '2', 'A', - 'D', '0', '5', '4', 'A', - 'D', '0', '6', '7', 'A', - 'D', '0', '6', '7', 'B', - 'D', '0', '6', '7', 'C', - 'D', '0', '6', '7', 'D', - 'D', '0', '6', '7', 'E', - 'D', '0', '6', '7', 'F', - 'D', '0', '6', '7', 'G', - 'D', '0', '6', '7', 'H', - 'D', 'A', 'A', 'L', 'I', - 'D', 'A', 'A', 'S', 'U', - 'D', 'A', 'E', 'N', 'G', - 'D', 'A', 'G', 'A', 'Z', - 'D', 'A', 'H', 'A', 'L', - 'D', 'A', 'I', 'N', 'G', - 'D', 'A', 'L', 'A', 'T', - 'D', 'A', 'L', 'D', 'A', - 'D', 'A', 'L', 'E', 'T', - 'D', 'A', 'M', 'M', 'A', - 'D', 'A', 'N', 'D', 'A', - 'D', 'A', 'N', 'G', 'O', - 'D', 'A', 'R', 'A', '3', - 'D', 'A', 'R', 'A', '4', - 'D', 'A', 'R', 'G', 'A', - 'D', 'A', 'S', 'I', 'A', - 'D', 'A', 'V', 'I', 'D', - 'D', 'D', 'D', 'H', 'A', - 'D', 'D', 'H', 'A', 'A', - 'D', 'D', 'H', 'E', 'E', - 'D', 'D', 'I', 'E', 'P', - 'D', 'D', 'I', 'E', 'X', - 'D', 'D', 'U', 'O', 'P', - 'D', 'D', 'U', 'O', 'X', - 'D', 'D', 'U', 'R', 'X', - 'D', 'E', 'A', 'T', 'H', - 'D', 'E', 'B', 'I', 'T', - 'D', 'E', 'L', 'T', 'A', - 'D', 'E', 'N', 'S', 'E', - 'D', 'E', 'P', 'T', 'H', - 'D', 'E', 'R', 'E', 'T', - 'D', 'E', 'U', 'N', 'G', - 'D', 'E', 'X', 'I', 'A', - 'D', 'H', 'H', 'E', 'E', - 'D', 'H', 'H', 'O', 'O', - 'D', 'I', 'F', 'A', 'T', - 'D', 'I', 'G', 'I', 'T', - 'D', 'I', 'O', 'D', 'E', - 'D', 'I', 'P', 'L', 'I', - 'D', 'I', 'P', 'T', 'E', - 'D', 'I', 'R', 'G', 'A', - 'D', 'I', 'T', 'T', 'O', - 'D', 'I', 'V', 'E', 'S', - 'D', 'I', 'Z', 'Z', 'Y', - 'D', 'J', 'E', 'R', 'V', - 'D', 'L', 'H', 'Y', 'A', - 'D', 'O', 'B', 'R', 'O', - 'D', 'O', 'G', 'R', 'A', - 'D', 'O', 'I', 'N', 'G', - 'D', 'O', 'L', 'L', 'S', - 'D', 'O', 'N', 'G', 'A', - 'D', 'O', 'O', 'N', 'G', - 'D', 'O', 'U', 'B', 'T', - 'D', 'R', 'E', 'S', 'S', - 'D', 'R', 'I', 'N', 'K', - 'D', 'R', 'I', 'V', 'E', - 'D', 'R', 'O', 'P', 'S', - 'D', 'U', 'G', 'U', 'D', - 'D', 'Z', 'E', 'L', 'O', - 'D', 'Z', 'H', 'O', 'I', - 'D', 'Z', 'I', 'T', 'A', - 'D', 'Z', 'Y', 'A', 'Y', - 'D', 'Z', 'Z', 'H', 'E', - 'E', '0', '0', '8', 'A', - 'E', '0', '0', '9', 'A', - 'E', '0', '1', '6', 'A', - 'E', '0', '1', '7', 'A', - 'E', '0', '2', '0', 'A', - 'E', '0', '2', '8', 'A', - 'E', '0', '3', '4', 'A', - 'E', 'A', 'G', 'L', 'E', - 'E', 'A', 'R', 'L', 'Y', - 'E', 'A', 'R', 'T', 'H', - 'E', 'E', 'K', 'A', 'A', - 'E', 'H', 'C', 'H', 'A', - 'E', 'H', 'T', 'S', 'A', - 'E', 'H', 'W', 'A', 'Z', - 'E', 'I', 'G', 'H', 'T', - 'E', 'J', 'E', 'C', 'T', - 'E', 'K', 'A', 'R', 'A', - 'E', 'L', 'I', 'F', 'I', - 'E', 'M', 'O', 'J', 'I', - 'E', 'M', 'P', 'T', 'Y', - 'E', 'N', 'D', 'E', 'P', - 'E', 'N', 'T', 'E', 'R', - 'E', 'N', 'T', 'R', 'Y', - 'E', 'O', '-', 'E', 'U', - 'E', 'O', 'L', 'H', 'X', - 'E', 'P', 'A', 'C', 'T', - 'E', 'P', 'O', 'C', 'H', - 'E', 'Q', 'U', 'A', 'L', - 'E', 'Q', 'U', 'I', 'D', - 'E', 'R', 'A', 'S', 'E', - 'E', 'R', 'I', 'N', '2', - 'E', 'S', '-', 'T', 'E', - 'E', 'S', 'A', 'S', 'A', - 'E', 'S', 'H', '1', '6', - 'E', 'S', 'H', '2', '1', - 'E', 'S', 'H', 'E', '3', - 'E', 'T', 'H', 'E', 'L', - 'E', 'U', '-', 'E', 'O', - 'E', 'U', '-', 'E', 'U', - 'E', 'U', 'L', 'E', 'R', - 'E', 'V', 'E', 'R', 'Y', - 'E', 'X', 'I', 'S', 'T', - 'E', 'X', 'T', 'R', 'A', - 'F', '0', '0', '1', 'A', - 'F', '0', '1', '3', 'A', - 'F', '0', '2', '1', 'A', - 'F', '0', '3', '1', 'A', - 'F', '0', '3', '7', 'A', - 'F', '0', '3', '8', 'A', - 'F', '0', '4', '5', 'A', - 'F', '0', '4', '6', 'A', - 'F', '0', '4', '7', 'A', - 'F', '0', '5', '1', 'A', - 'F', '0', '5', '1', 'B', - 'F', '0', '5', '1', 'C', - 'F', 'A', 'A', 'F', 'U', - 'F', 'A', 'I', 'H', 'U', - 'F', 'A', 'I', 'R', 'Y', - 'F', 'A', 'R', 'S', 'I', - 'F', 'A', 'T', 'H', 'A', - 'F', 'E', 'A', 'R', 'N', - 'F', 'E', 'E', 'N', 'G', - 'F', 'E', 'N', 'C', 'E', - 'F', 'E', 'R', 'R', 'Y', - 'F', 'I', 'E', 'L', 'D', - 'F', 'I', 'F', 'T', 'H', - 'F', 'I', 'F', 'T', 'Y', - 'F', 'I', 'G', 'H', 'T', - 'F', 'I', 'N', 'A', 'L', - 'F', 'I', 'R', 'S', 'T', - 'F', 'L', 'A', 'G', 'S', - 'F', 'L', 'A', 'M', 'E', - 'F', 'L', 'A', 'S', 'H', - 'F', 'L', 'I', 'C', 'K', - 'F', 'L', 'O', 'O', 'R', - 'F', 'L', 'U', 'T', 'E', - 'F', 'O', 'G', 'G', 'Y', - 'F', 'O', 'L', 'L', 'Y', - 'F', 'O', 'R', 'C', 'E', - 'F', 'O', 'R', 'M', 'S', - 'F', 'O', 'R', 'T', 'E', - 'F', 'O', 'R', 'T', 'Y', - 'F', 'R', 'A', 'M', 'E', - 'F', 'R', 'A', 'N', 'C', - 'F', 'R', 'I', 'E', 'D', - 'F', 'R', 'I', 'E', 'S', - 'F', 'R', 'I', 'T', 'U', - 'F', 'R', 'O', 'N', 'T', - 'F', 'R', 'O', 'W', 'N', - 'G', '0', '0', '6', 'A', - 'G', '0', '0', '7', 'A', - 'G', '0', '0', '7', 'B', - 'G', '0', '1', '1', 'A', - 'G', '0', '2', '0', 'A', - 'G', '0', '2', '6', 'A', - 'G', '0', '3', '6', 'A', - 'G', '0', '3', '7', 'A', - 'G', '0', '4', '3', 'A', - 'G', '0', '4', '5', 'A', - 'G', 'A', 'A', 'F', 'U', - 'G', 'A', 'D', 'O', 'L', - 'G', 'A', 'L', 'A', 'M', - 'G', 'A', 'M', 'A', 'L', - 'G', 'A', 'M', 'A', 'N', - 'G', 'A', 'M', 'L', 'A', - 'G', 'A', 'M', 'M', 'A', - 'G', 'A', 'N', 'D', 'A', - 'G', 'A', 'N', 'M', 'A', - 'G', 'A', 'R', 'A', 'Y', - 'G', 'A', 'R', 'O', 'N', - 'G', 'B', 'A', 'Y', 'I', - 'G', 'B', 'E', 'U', 'X', - 'G', 'B', 'I', 'E', 'E', - 'G', 'E', 'N', 'I', 'E', - 'G', 'E', 'S', 'H', '2', - 'G', 'E', 'S', 'H', 'U', - 'G', 'G', 'I', 'E', 'P', - 'G', 'G', 'I', 'E', 'X', - 'G', 'G', 'U', 'O', 'P', - 'G', 'G', 'U', 'O', 'T', - 'G', 'G', 'U', 'O', 'X', - 'G', 'G', 'U', 'R', 'X', - 'G', 'G', 'W', 'A', 'A', - 'G', 'G', 'W', 'E', 'E', - 'G', 'H', 'A', 'I', 'N', - 'G', 'H', 'A', 'Y', 'N', - 'G', 'H', 'E', 'U', 'N', - 'G', 'H', 'E', 'U', 'X', - 'G', 'H', 'E', 'Y', 'S', - 'G', 'H', 'O', 'S', 'T', - 'G', 'I', 'D', 'I', 'M', - 'G', 'I', 'M', 'E', 'L', - 'G', 'I', 'N', 'I', 'I', - 'G', 'I', 'R', 'L', 'S', - 'G', 'I', 'S', 'A', 'L', - 'G', 'L', 'A', 'S', 'S', - 'G', 'L', 'O', 'B', 'E', - 'G', 'L', 'O', 'V', 'E', - 'G', 'N', 'Y', 'I', 'S', - 'G', 'O', 'I', 'N', 'G', - 'G', 'O', 'N', 'D', 'I', - 'G', 'O', 'O', 'S', 'E', - 'G', 'O', 'R', 'G', 'I', - 'G', 'R', 'A', 'C', 'E', - 'G', 'R', 'A', 'I', 'N', - 'G', 'R', 'A', 'S', 'P', - 'G', 'R', 'A', 'S', 'S', - 'G', 'R', 'A', 'V', 'E', - 'G', 'R', 'E', 'A', 'T', - 'G', 'R', 'E', 'E', 'K', - 'G', 'R', 'E', 'E', 'N', - 'G', 'R', 'O', 'U', 'P', - 'G', 'U', 'A', 'R', 'D', - 'G', 'U', 'I', 'D', 'E', - 'G', 'U', 'R', 'U', 'N', - 'G', 'V', 'A', 'N', 'G', - 'H', '0', '0', '6', 'A', - 'H', 'A', '-', '1', '0', - 'H', 'A', '-', '1', '1', - 'H', 'A', '-', 'H', 'A', - 'H', 'A', 'A', 'R', 'U', - 'H', 'A', 'D', 'E', 'S', - 'H', 'A', 'E', 'G', 'L', - 'H', 'A', 'I', 'T', 'U', - 'H', 'A', 'L', 'Q', 'A', - 'H', 'A', 'M', 'S', 'A', - 'H', 'A', 'M', 'S', 'O', - 'H', 'A', 'M', 'Z', 'A', - 'H', 'A', 'N', 'D', 'S', - 'H', 'A', 'P', 'P', 'Y', - 'H', 'A', 'S', 'E', 'R', - 'H', 'A', 'T', 'A', 'F', - 'H', 'A', 'T', 'H', 'I', - 'H', 'B', 'A', 'S', 'A', - 'H', 'E', 'A', 'R', 'T', - 'H', 'E', 'A', 'V', 'Y', - 'H', 'E', 'L', 'I', 'X', - 'H', 'H', 'W', 'E', 'E', - 'H', 'H', 'Y', 'A', 'A', - 'H', 'H', 'Y', 'E', 'E', - 'H', 'I', 'D', 'E', 'T', - 'H', 'I', 'E', 'U', 'H', - 'H', 'I', 'N', 'D', 'U', - 'H', 'I', 'N', 'G', 'E', - 'H', 'I', 'R', 'I', 'Q', - 'H', 'L', 'I', 'E', 'P', - 'H', 'L', 'I', 'E', 'X', - 'H', 'L', 'U', 'O', 'P', - 'H', 'L', 'U', 'O', 'X', - 'H', 'L', 'U', 'R', 'X', - 'H', 'L', 'Y', 'R', 'X', - 'H', 'M', 'I', 'E', 'P', - 'H', 'M', 'I', 'E', 'X', - 'H', 'M', 'O', 'N', 'G', - 'H', 'M', 'U', 'O', 'P', - 'H', 'M', 'U', 'O', 'X', - 'H', 'M', 'U', 'R', 'X', - 'H', 'M', 'Y', 'R', 'X', - 'H', 'N', 'I', 'E', 'P', - 'H', 'N', 'I', 'E', 'T', - 'H', 'N', 'I', 'E', 'X', - 'H', 'N', 'U', 'O', 'X', - 'H', 'O', 'C', 'H', 'O', - 'H', 'O', 'L', 'A', 'M', - 'H', 'O', 'N', 'E', 'Y', - 'H', 'O', 'O', 'R', 'U', - 'H', 'O', 'R', 'N', 'S', - 'H', 'O', 'R', 'S', 'E', - 'H', 'O', 'T', 'E', 'L', - 'H', 'O', 'U', 'S', 'E', - 'H', 'U', 'M', 'A', 'N', - 'H', 'U', 'R', 'A', 'N', - 'H', 'W', 'A', 'I', 'R', - 'H', 'X', 'I', 'E', 'P', - 'H', 'X', 'I', 'E', 'T', - 'H', 'X', 'I', 'E', 'X', - 'H', 'X', 'U', 'O', 'P', - 'H', 'X', 'U', 'O', 'T', - 'H', 'X', 'U', 'O', 'X', - 'H', 'Z', 'Z', 'Z', 'G', - 'I', '-', 'O', '-', 'I', - 'I', '-', 'Y', 'A', 'E', - 'I', '-', 'Y', 'E', 'O', - 'I', '0', '0', '5', 'A', - 'I', '0', '0', '9', 'A', - 'I', '0', '1', '0', 'A', - 'I', '0', '1', '1', 'A', - 'I', 'A', 'U', 'D', 'A', - 'I', 'C', 'H', 'O', 'S', - 'I', 'C', 'H', 'O', 'U', - 'I', 'E', 'U', 'N', 'G', - 'I', 'G', 'G', 'W', 'S', - 'I', 'K', 'A', 'R', 'A', - 'I', 'M', 'A', 'G', 'E', - 'I', 'M', 'I', 'N', '3', - 'I', 'N', 'B', 'O', 'X', - 'I', 'N', 'D', 'E', 'X', - 'I', 'N', 'D', 'I', 'C', - 'I', 'N', 'N', 'E', 'R', - 'I', 'N', 'P', 'U', 'T', - 'J', 'A', 'C', 'K', 'S', - 'J', 'A', 'P', 'A', 'N', - 'J', 'A', 'Y', 'I', 'N', - 'J', 'E', 'A', 'N', 'S', - 'J', 'E', 'R', 'A', 'N', - 'J', 'J', 'I', 'E', 'P', - 'J', 'J', 'I', 'E', 'T', - 'J', 'J', 'I', 'E', 'X', - 'J', 'J', 'U', 'O', 'P', - 'J', 'J', 'U', 'O', 'X', - 'J', 'J', 'U', 'R', 'X', - 'J', 'O', 'I', 'N', 'T', - 'J', 'O', 'K', 'E', 'R', - 'J', 'U', 'D', 'G', 'E', - 'J', 'U', 'D', 'U', 'L', - 'J', 'U', 'E', 'U', 'I', - 'K', 'A', '-', '1', '0', - 'K', 'A', '-', '1', '1', - 'K', 'A', '-', 'K', 'E', - 'K', 'A', 'A', 'B', 'A', - 'K', 'A', 'A', 'C', 'U', - 'K', 'A', 'A', 'F', 'U', - 'K', 'A', 'I', 'R', 'I', - 'K', 'A', 'L', 'A', 'M', - 'K', 'A', 'P', 'A', 'L', - 'K', 'A', 'P', 'P', 'A', - 'K', 'A', 'R', 'A', 'N', - 'K', 'A', 'R', 'E', 'N', - 'K', 'A', 'R', 'O', 'R', - 'K', 'A', 'S', 'R', 'A', - 'K', 'A', 'U', 'N', 'A', - 'K', 'A', 'Y', 'A', 'H', - 'K', 'E', 'A', 'A', 'E', - 'K', 'E', 'E', 'N', 'G', - 'K', 'E', 'E', 'S', 'U', - 'K', 'E', 'H', 'E', 'H', - 'K', 'E', 'N', 'A', 'T', - 'K', 'E', 'R', 'E', 'T', - 'K', 'E', 'S', 'H', '2', - 'K', 'E', 'T', 'T', 'I', - 'K', 'E', 'U', 'A', 'E', - 'K', 'E', 'U', 'O', 'T', - 'K', 'H', 'A', 'N', 'G', - 'K', 'H', 'A', 'P', 'H', - 'K', 'H', 'E', 'M', 'A', - 'K', 'H', 'E', 'T', 'H', - 'K', 'H', 'M', 'E', 'R', - 'K', 'H', 'U', 'A', 'T', - 'K', 'H', 'U', 'E', 'N', - 'K', 'H', 'W', 'A', 'I', - 'K', 'I', 'E', 'E', 'M', - 'K', 'I', 'I', 'Z', 'H', - 'K', 'I', 'N', 'N', 'A', - 'K', 'I', 'R', 'A', 'T', - 'K', 'I', 'S', 'A', 'L', - 'K', 'L', 'O', 'K', 'O', - 'K', 'N', 'I', 'F', 'E', - 'K', 'N', 'O', 'B', 'S', - 'K', 'O', '-', 'K', 'I', - 'K', 'O', 'A', 'L', 'A', - 'K', 'O', 'I', 'N', 'I', - 'K', 'O', 'M', 'B', 'U', - 'K', 'O', 'O', 'P', 'O', - 'K', 'O', 'P', 'P', 'A', - 'K', 'O', 'R', 'O', 'N', - 'K', 'O', 'V', 'U', 'U', - 'K', 'P', 'E', 'U', 'X', - 'K', 'R', 'Y', 'U', 'K', - 'K', 'R', 'Y', 'Z', 'H', - 'K', 'U', 'S', 'M', 'A', - 'K', 'U', 'Z', 'H', 'I', - 'K', 'W', 'A', 'E', 'T', - 'K', 'X', 'W', 'A', 'A', - 'K', 'X', 'W', 'E', 'E', - 'L', '0', '0', '2', 'A', - 'L', '0', '0', '6', 'A', - 'L', 'A', 'A', 'M', 'U', - 'L', 'A', 'B', 'A', 'T', - 'L', 'A', 'B', 'E', 'L', - 'L', 'A', 'B', 'O', 'R', - 'L', 'A', 'G', 'A', 'B', - 'L', 'A', 'G', 'A', 'R', - 'L', 'A', 'G', 'U', 'S', - 'L', 'A', 'I', 'N', 'G', - 'L', 'A', 'M', 'D', 'A', - 'L', 'A', 'M', 'E', 'D', - 'L', 'A', 'N', 'E', 'S', - 'L', 'A', 'P', 'A', 'Q', - 'L', 'A', 'R', 'G', 'E', - 'L', 'A', 'T', 'I', 'K', - 'L', 'A', 'T', 'I', 'N', - 'L', 'A', 'U', 'L', 'A', - 'L', 'A', 'Y', 'A', 'R', - 'L', 'E', 'A', 'F', 'Y', - 'L', 'E', 'E', 'E', 'E', - 'L', 'E', 'L', 'E', 'T', - 'L', 'E', 'M', 'O', 'I', - 'L', 'E', 'M', 'O', 'N', - 'L', 'E', 'N', 'G', 'A', - 'L', 'E', 'N', 'I', 'S', - 'L', 'E', 'V', 'E', 'L', - 'L', 'I', 'B', 'R', 'A', - 'L', 'I', 'G', 'H', 'T', - 'L', 'I', 'M', 'B', 'S', - 'L', 'I', 'M', 'B', 'U', - 'L', 'I', 'M', 'I', 'T', - 'L', 'I', 'M', 'M', 'U', - 'L', 'I', 'N', 'E', 'S', - 'L', 'I', 'T', 'R', 'A', - 'L', 'I', 'V', 'R', 'E', - 'L', 'L', 'A', 'M', 'A', - 'L', 'O', 'G', 'I', 'C', - 'L', 'O', 'M', 'K', 'A', - 'L', 'O', 'N', 'G', 'A', - 'L', 'O', 'R', 'R', 'Y', - 'L', 'O', 'T', 'U', 'S', - 'L', 'O', 'U', 'R', 'E', - 'L', 'O', 'W', '-', '9', - 'L', 'O', 'W', 'E', 'R', - 'L', 'U', 'A', 'E', 'P', - 'L', 'U', 'G', 'A', 'L', - 'L', 'U', 'H', 'U', 'R', - 'L', 'U', 'N', 'A', 'R', - 'L', 'U', 'N', 'G', 'S', - 'L', 'Y', 'I', 'N', 'G', - 'M', '0', '0', '1', 'A', - 'M', '0', '0', '1', 'B', - 'M', '0', '0', '3', 'A', - 'M', '0', '1', '0', 'A', - 'M', '0', '1', '2', 'A', - 'M', '0', '1', '2', 'B', - 'M', '0', '1', '2', 'C', - 'M', '0', '1', '2', 'D', - 'M', '0', '1', '2', 'E', - 'M', '0', '1', '2', 'F', - 'M', '0', '1', '2', 'G', - 'M', '0', '1', '2', 'H', - 'M', '0', '1', '5', 'A', - 'M', '0', '1', '6', 'A', - 'M', '0', '1', '7', 'A', - 'M', '0', '2', '2', 'A', - 'M', '0', '2', '4', 'A', - 'M', '0', '2', '8', 'A', - 'M', '0', '3', '1', 'A', - 'M', '0', '3', '3', 'A', - 'M', '0', '3', '3', 'B', - 'M', '0', '4', '0', 'A', - 'M', 'A', 'D', 'D', 'A', - 'M', 'A', 'D', 'Y', 'A', - 'M', 'A', 'E', 'S', 'I', - 'M', 'A', 'G', 'I', 'C', - 'M', 'A', 'H', 'H', 'A', - 'M', 'A', 'I', 'R', 'U', - 'M', 'A', 'I', 'Z', 'E', - 'M', 'A', 'N', 'A', 'T', - 'M', 'A', 'N', 'G', 'O', - 'M', 'A', 'N', 'N', 'A', - 'M', 'A', 'P', 'I', 'Q', - 'M', 'A', 'P', 'L', 'E', - 'M', 'A', 'Q', 'A', 'F', - 'M', 'A', 'R', 'C', 'H', - 'M', 'A', 'R', 'K', 'S', - 'M', 'A', 'S', 'H', '2', - 'M', 'A', 'Y', 'A', 'N', - 'M', 'A', 'Y', 'E', 'K', - 'M', 'B', 'E', 'U', 'M', - 'M', 'B', 'E', 'U', 'X', - 'M', 'B', 'U', 'A', 'E', - 'M', 'B', 'U', 'O', 'Q', - 'M', 'C', 'H', 'A', 'N', - 'M', 'E', '-', 'M', 'A', - 'M', 'E', 'D', 'A', 'L', - 'M', 'E', 'E', 'E', 'E', - 'M', 'E', 'E', 'M', 'U', - 'M', 'E', 'I', 'Z', 'I', - 'M', 'E', 'L', 'I', 'K', - 'M', 'E', 'L', 'O', 'N', - 'M', 'E', 'N', 'D', 'E', - 'M', 'E', 'N', 'O', 'E', - 'M', 'E', 'R', 'G', 'E', - 'M', 'E', 'T', 'A', 'L', - 'M', 'E', 'T', 'E', 'G', - 'M', 'E', 'T', 'E', 'K', - 'M', 'E', 'T', 'R', 'O', - 'M', 'E', 'Z', 'Z', 'O', - 'M', 'F', 'E', 'U', 'Q', - 'M', 'F', 'E', 'U', 'T', - 'M', 'F', 'I', 'E', 'E', - 'M', 'G', 'B', 'E', 'E', - 'M', 'G', 'B', 'E', 'N', - 'M', 'G', 'B', 'O', 'O', - 'M', 'G', 'I', 'E', 'X', - 'M', 'G', 'U', 'O', 'P', - 'M', 'G', 'U', 'O', 'X', - 'M', 'G', 'U', 'R', 'X', - 'M', 'I', 'C', 'R', 'O', - 'M', 'I', 'E', 'U', 'M', - 'M', 'I', 'K', 'R', 'I', - 'M', 'I', 'L', 'K', 'Y', - 'M', 'I', 'L', 'L', 'E', - 'M', 'I', 'N', 'D', 'U', - 'M', 'I', 'N', 'U', 'S', - 'M', 'I', 'R', 'E', 'D', - 'M', 'I', 'S', 'R', 'A', - 'M', 'N', 'Y', 'A', 'M', - 'M', 'O', 'D', 'E', 'L', - 'M', 'O', 'D', 'E', 'M', - 'M', 'O', 'N', 'E', 'Y', - 'M', 'O', 'N', 'T', 'H', - 'M', 'O', 'O', 'S', 'E', - 'M', 'O', 'T', 'O', 'R', - 'M', 'O', 'U', 'N', 'D', - 'M', 'O', 'U', 'N', 'T', - 'M', 'O', 'U', 'S', 'E', - 'M', 'O', 'U', 'T', 'H', - 'M', 'O', 'V', 'E', 'D', - 'M', 'O', 'V', 'E', 'S', - 'M', 'O', 'V', 'I', 'E', - 'M', 'O', 'Y', 'A', 'I', - 'M', 'U', 'H', 'O', 'R', - 'M', 'U', 'K', 'H', 'A', - 'M', 'U', 'L', 'T', 'I', - 'M', 'U', 'N', 'A', 'H', - 'M', 'U', 'R', 'D', 'A', - 'M', 'U', 'S', 'H', '3', - 'M', 'U', 'S', 'I', 'C', - 'N', '-', 'A', 'R', 'Y', - 'N', '0', '1', '8', 'A', - 'N', '0', '1', '8', 'B', - 'N', '0', '2', '5', 'A', - 'N', '0', '3', '3', 'A', - 'N', '0', '3', '4', 'A', - 'N', '0', '3', '5', 'A', - 'N', '0', '3', '7', 'A', - 'N', 'A', 'B', 'L', 'A', - 'N', 'A', 'G', 'A', 'R', - 'N', 'A', 'G', 'R', 'I', - 'N', 'A', 'I', 'R', 'A', - 'N', 'A', 'S', 'A', 'L', - 'N', 'A', 'S', 'H', 'I', - 'N', 'A', 'Z', 'A', 'R', - 'N', 'B', 'I', 'E', 'P', - 'N', 'B', 'I', 'E', 'X', - 'N', 'B', 'U', 'R', 'X', - 'N', 'B', 'Y', 'R', 'X', - 'N', 'C', 'H', 'A', 'U', - 'N', 'D', 'E', 'U', 'T', - 'N', 'D', 'E', 'U', 'X', - 'N', 'D', 'I', 'A', 'Q', - 'N', 'D', 'I', 'D', 'A', - 'N', 'D', 'I', 'E', 'X', - 'N', 'D', 'O', 'L', 'E', - 'N', 'D', 'U', 'R', 'X', - 'N', 'E', '-', 'K', 'O', - 'N', 'E', 'M', 'K', 'A', - 'N', 'E', 'N', 'O', 'E', - 'N', 'E', 'U', 'M', 'E', - 'N', 'G', 'A', 'A', 'I', - 'N', 'G', 'G', 'A', 'A', - 'N', 'G', 'G', 'A', 'P', - 'N', 'G', 'G', 'E', 'E', - 'N', 'G', 'G', 'E', 'N', - 'N', 'G', 'G', 'E', 'U', - 'N', 'G', 'G', 'O', 'O', - 'N', 'G', 'G', 'U', 'A', - 'N', 'G', 'G', 'U', 'M', - 'N', 'G', 'G', 'U', 'P', - 'N', 'G', 'I', 'E', 'P', - 'N', 'G', 'I', 'E', 'X', - 'N', 'G', 'K', 'A', 'P', - 'N', 'G', 'K', 'A', 'Q', - 'N', 'G', 'K', 'U', 'E', - 'N', 'G', 'K', 'U', 'M', - 'N', 'G', 'K', 'U', 'N', - 'N', 'G', 'K', 'U', 'P', - 'N', 'G', 'O', 'E', 'H', - 'N', 'G', 'U', 'A', 'E', - 'N', 'G', 'U', 'A', 'N', - 'N', 'G', 'U', 'O', 'T', - 'N', 'G', 'U', 'O', 'X', - 'N', 'I', '-', 'T', 'E', - 'N', 'I', 'E', 'U', 'N', - 'N', 'I', 'G', 'H', 'T', - 'N', 'I', 'N', 'J', 'A', - 'N', 'I', 'N', 'T', 'H', - 'N', 'I', 'S', 'A', 'G', - 'N', 'I', 'T', 'R', 'E', - 'N', 'I', 'Z', 'K', 'O', - 'N', 'J', 'A', 'E', 'M', - 'N', 'J', 'E', 'U', 'T', - 'N', 'J', 'E', 'U', 'X', - 'N', 'J', 'I', 'E', 'E', - 'N', 'J', 'I', 'E', 'P', - 'N', 'J', 'I', 'E', 'T', - 'N', 'J', 'I', 'E', 'X', - 'N', 'J', 'U', 'A', 'E', - 'N', 'J', 'U', 'E', 'Q', - 'N', 'J', 'U', 'O', 'X', - 'N', 'J', 'U', 'Q', 'A', - 'N', 'J', 'U', 'R', 'X', - 'N', 'J', 'Y', 'R', 'X', - 'N', 'L', '0', '0', '1', - 'N', 'L', '0', '0', '2', - 'N', 'L', '0', '0', '3', - 'N', 'L', '0', '0', '4', - 'N', 'L', '0', '0', '5', - 'N', 'L', '0', '0', '6', - 'N', 'L', '0', '0', '7', - 'N', 'L', '0', '0', '8', - 'N', 'L', '0', '0', '9', - 'N', 'L', '0', '1', '0', - 'N', 'L', '0', '1', '1', - 'N', 'L', '0', '1', '2', - 'N', 'L', '0', '1', '3', - 'N', 'L', '0', '1', '4', - 'N', 'L', '0', '1', '5', - 'N', 'L', '0', '1', '6', - 'N', 'L', '0', '1', '7', - 'N', 'L', '0', '1', '8', - 'N', 'L', '0', '1', '9', - 'N', 'L', '0', '2', '0', - 'N', 'N', 'B', 'S', 'P', - 'N', 'N', 'G', 'A', 'A', - 'N', 'N', 'G', 'I', 'I', - 'N', 'N', 'G', 'O', 'O', - 'N', 'O', 'O', 'N', 'U', - 'N', 'O', 'R', 'T', 'H', - 'N', 'O', 'T', 'C', 'H', - 'N', 'O', 'T', 'E', 'S', - 'N', 'O', 'T', 'T', 'O', - 'N', 'R', 'U', 'R', 'X', - 'N', 'R', 'Y', 'R', 'X', - 'N', 'S', 'H', 'A', 'Q', - 'N', 'S', 'H', 'E', 'E', - 'N', 'S', 'H', 'U', 'E', - 'N', 'S', 'H', 'U', 'T', - 'N', 'S', 'I', 'E', 'E', - 'N', 'S', 'U', 'O', 'T', - 'N', 'T', 'E', 'U', 'M', - 'N', 'T', 'H', 'A', 'U', - 'N', 'T', 'I', 'E', 'E', - 'N', 'T', 'S', 'A', 'U', - 'N', 'T', 'X', 'I', 'V', - 'N', 'U', '0', '0', '1', - 'N', 'U', '0', '0', '2', - 'N', 'U', '0', '0', '3', - 'N', 'U', '0', '0', '4', - 'N', 'U', '0', '0', '5', - 'N', 'U', '0', '0', '6', - 'N', 'U', '0', '0', '7', - 'N', 'U', '0', '0', '8', - 'N', 'U', '0', '0', '9', - 'N', 'U', '0', '1', '0', - 'N', 'U', '0', '1', '1', - 'N', 'U', '0', '1', '2', - 'N', 'U', '0', '1', '3', - 'N', 'U', '0', '1', '4', - 'N', 'U', '0', '1', '5', - 'N', 'U', '0', '1', '6', - 'N', 'U', '0', '1', '7', - 'N', 'U', '0', '1', '8', - 'N', 'U', '0', '1', '9', - 'N', 'U', '0', '2', '0', - 'N', 'U', '0', '2', '1', - 'N', 'U', '0', '2', '2', - 'N', 'U', 'E', 'N', 'G', - 'N', 'U', 'K', 'T', 'A', - 'N', 'U', 'N', 'U', 'Z', - 'N', 'U', 'S', 'H', 'U', - 'N', 'Y', 'I', 'E', 'P', - 'N', 'Y', 'I', 'E', 'T', - 'N', 'Y', 'I', 'E', 'X', - 'N', 'Y', 'U', 'O', 'P', - 'N', 'Y', 'U', 'O', 'X', - 'N', 'Z', 'E', 'U', 'M', - 'N', 'Z', 'I', 'E', 'P', - 'N', 'Z', 'I', 'E', 'X', - 'N', 'Z', 'U', 'O', 'X', - 'N', 'Z', 'U', 'R', 'X', - 'N', 'Z', 'Y', 'R', 'X', - 'O', '-', 'O', '-', 'I', - 'O', '-', 'Y', 'A', 'E', - 'O', '-', 'Y', 'E', 'O', - 'O', '0', '0', '1', 'A', - 'O', '0', '0', '5', 'A', - 'O', '0', '0', '6', 'A', - 'O', '0', '0', '6', 'B', - 'O', '0', '0', '6', 'C', - 'O', '0', '0', '6', 'D', - 'O', '0', '0', '6', 'E', - 'O', '0', '0', '6', 'F', - 'O', '0', '1', '0', 'A', - 'O', '0', '1', '0', 'B', - 'O', '0', '1', '0', 'C', - 'O', '0', '1', '9', 'A', - 'O', '0', '2', '0', 'A', - 'O', '0', '2', '4', 'A', - 'O', '0', '2', '5', 'A', - 'O', '0', '2', '9', 'A', - 'O', '0', '3', '0', 'A', - 'O', '0', '3', '3', 'A', - 'O', '0', '3', '6', 'A', - 'O', '0', '3', '6', 'B', - 'O', '0', '3', '6', 'C', - 'O', '0', '3', '6', 'D', - 'O', '0', '5', '0', 'A', - 'O', '0', '5', '0', 'B', - 'O', 'B', 'O', 'L', 'S', - 'O', 'G', 'H', 'A', 'M', - 'O', 'J', 'E', 'O', 'N', - 'O', 'K', 'A', 'R', 'A', - 'O', 'L', 'D', 'E', 'R', - 'O', 'L', 'I', 'V', 'E', - 'O', 'M', 'E', 'G', 'A', - 'O', 'N', 'I', 'O', 'N', - 'O', 'N', 'K', 'A', 'R', - 'O', 'R', 'C', 'U', 'S', - 'O', 'R', 'D', 'E', 'R', - 'O', 'R', 'E', '-', '2', - 'O', 'R', 'I', 'Y', 'A', - 'O', 'S', 'A', 'G', 'E', - 'O', 'S', 'O', 'K', 'A', - 'O', 'T', 'H', 'A', 'L', - 'O', 'T', 'H', 'E', 'R', - 'O', 'T', 'T', 'E', 'R', - 'O', 'T', 'T', 'H', 'I', - 'O', 'U', 'N', 'C', 'E', - 'O', 'U', 'T', 'E', 'R', - 'O', 'X', 'E', 'I', 'A', - 'P', '0', '0', '1', 'A', - 'P', '0', '0', '3', 'A', - 'P', 'A', 'A', 'T', 'U', - 'P', 'A', 'D', 'M', 'A', - 'P', 'A', 'G', 'E', 'R', - 'P', 'A', 'G', 'E', 'S', - 'P', 'A', 'L', 'K', 'A', - 'P', 'A', 'L', 'M', 'S', - 'P', 'A', 'N', 'A', 'M', - 'P', 'A', 'N', 'D', 'A', - 'P', 'A', 'N', 'T', 'I', - 'P', 'A', 'P', 'E', 'R', - 'P', 'A', 'R', 'T', 'Y', - 'P', 'A', 'R', 'U', 'M', - 'P', 'A', 'S', 'E', 'Q', - 'P', 'A', 'S', 'U', 'Q', - 'P', 'A', 'T', 'A', 'H', - 'P', 'A', 'T', 'A', 'K', - 'P', 'A', 'T', 'T', 'Y', - 'P', 'A', 'U', 'S', 'E', - 'P', 'A', 'Z', 'E', 'R', - 'P', 'E', 'A', 'C', 'E', - 'P', 'E', 'A', 'C', 'H', - 'P', 'E', 'A', 'K', 'S', - 'P', 'E', 'D', 'A', 'L', - 'P', 'E', 'E', 'Z', 'I', - 'P', 'E', 'H', 'E', 'H', - 'P', 'E', 'I', 'T', 'H', - 'P', 'E', 'N', 'N', 'Y', - 'P', 'E', 'N', 'S', 'U', - 'P', 'E', 'P', 'E', 'T', - 'P', 'E', 'S', 'H', '2', - 'P', 'E', 'T', 'R', 'I', - 'P', 'H', 'O', 'N', 'E', - 'P', 'H', 'U', 'N', 'G', - 'P', 'I', 'A', 'N', 'O', - 'P', 'I', 'E', 'C', 'E', - 'P', 'I', 'E', 'E', 'Q', - 'P', 'I', 'E', 'E', 'T', - 'P', 'I', 'E', 'U', 'P', - 'P', 'I', 'R', 'I', 'G', - 'P', 'I', 'Z', 'Z', 'A', - 'P', 'L', 'A', 'C', 'E', - 'P', 'L', 'A', 'N', 'E', - 'P', 'L', 'A', 'N', 'T', - 'P', 'L', 'A', 'T', 'E', - 'P', 'L', 'H', 'A', 'U', - 'P', 'L', 'U', 'T', 'A', - 'P', 'L', 'U', 'T', 'O', - 'P', 'O', 'I', 'N', 'T', - 'P', 'O', 'L', 'L', 'U', - 'P', 'O', 'N', 'D', 'O', - 'P', 'O', 'U', 'C', 'H', - 'P', 'O', 'U', 'N', 'D', - 'P', 'O', 'W', 'E', 'R', - 'P', 'R', 'I', 'M', 'E', - 'P', 'R', 'I', 'N', 'T', - 'P', 'R', 'O', 'O', 'F', - 'P', 'R', 'O', 'V', 'E', - 'P', 'S', 'I', 'L', 'I', - 'P', 'U', 'R', 'S', 'E', - 'Q', 'A', 'A', 'F', 'U', - 'Q', 'A', 'D', 'M', 'A', - 'Q', 'A', 'T', 'A', 'N', - 'Q', 'H', 'O', 'P', 'H', - 'Q', 'H', 'W', 'A', 'A', - 'Q', 'H', 'W', 'E', 'E', - 'Q', 'I', 'T', 'S', 'A', - 'Q', 'U', 'E', 'E', 'N', - 'Q', 'U', 'I', 'C', 'K', - 'Q', 'U', 'I', 'L', 'L', - 'Q', 'U', 'I', 'L', 'T', - 'Q', 'U', 'O', 'T', 'E', - 'R', '0', '0', '2', 'A', - 'R', '0', '0', '3', 'A', - 'R', '0', '0', '3', 'B', - 'R', '0', '1', '0', 'A', - 'R', '0', '1', '6', 'A', - 'R', 'A', 'D', 'I', 'O', - 'R', 'A', 'I', 'D', 'A', - 'R', 'A', 'I', 'D', 'O', - 'R', 'A', 'N', 'G', 'E', - 'R', 'A', 'S', 'H', 'A', - 'R', 'A', 'T', 'H', 'A', - 'R', 'A', 'T', 'I', 'O', - 'R', 'A', 'V', 'N', 'O', - 'R', 'A', 'Z', 'O', 'R', - 'R', 'B', 'A', 'S', 'A', - 'R', 'E', 'A', 'C', 'H', - 'R', 'E', 'G', 'I', 'A', - 'R', 'E', 'I', 'W', 'A', - 'R', 'E', 'L', 'A', 'A', - 'R', 'E', 'P', 'H', 'A', - 'R', 'E', 'V', 'I', 'A', - 'R', 'E', 'V', 'M', 'A', - 'R', 'G', 'Y', 'A', 'N', - 'R', 'I', 'C', 'E', 'M', - 'R', 'I', 'E', 'U', 'L', - 'R', 'I', 'F', 'L', 'E', - 'R', 'I', 'G', 'H', 'T', - 'R', 'I', 'N', 'G', 'S', - 'R', 'I', 'T', 'S', 'I', - 'R', 'I', 'V', 'E', 'R', - 'R', 'N', 'O', 'O', 'N', - 'R', 'O', 'B', 'A', 'T', - 'R', 'O', 'B', 'O', 'T', - 'R', 'O', 'G', 'O', 'M', - 'R', 'O', 'M', 'A', 'N', - 'R', 'O', 'U', 'N', 'D', - 'R', 'R', 'U', 'O', 'X', - 'R', 'R', 'U', 'R', 'X', - 'R', 'R', 'Y', 'R', 'X', - 'R', 'T', 'A', 'G', 'S', - 'R', 'U', 'B', 'L', 'E', - 'R', 'U', 'G', 'B', 'Y', - 'R', 'U', 'L', 'A', 'I', - 'R', 'U', 'L', 'E', 'R', - 'R', 'U', 'M', 'A', 'I', - 'R', 'U', 'N', 'I', 'C', - 'R', 'U', 'P', 'E', 'E', - 'R', 'U', 'P', 'I', 'I', - 'R', 'W', 'A', 'H', 'A', - 'S', '0', '0', '2', 'A', - 'S', '0', '0', '6', 'A', - 'S', '0', '1', '4', 'A', - 'S', '0', '1', '4', 'B', - 'S', '0', '1', '7', 'A', - 'S', '0', '2', '6', 'A', - 'S', '0', '2', '6', 'B', - 'S', '0', '3', '5', 'A', - 'S', 'A', 'D', 'H', 'E', - 'S', 'A', 'F', 'H', 'A', - 'S', 'A', 'K', 'H', 'A', - 'S', 'A', 'K', 'I', 'N', - 'S', 'A', 'K', 'O', 'T', - 'S', 'A', 'K', 'T', 'A', - 'S', 'A', 'L', 'A', 'D', - 'S', 'A', 'L', 'A', 'M', - 'S', 'A', 'L', 'L', 'A', - 'S', 'A', 'M', 'B', 'A', - 'S', 'A', 'M', 'K', 'A', - 'S', 'A', 'M', 'P', 'I', - 'S', 'A', 'N', 'A', 'H', - 'S', 'A', 'S', 'A', 'K', - 'S', 'A', 'U', 'I', 'L', - 'S', 'A', 'W', 'A', 'N', - 'S', 'B', 'R', 'U', 'L', - 'S', 'C', 'A', 'R', 'F', - 'S', 'C', 'H', 'W', 'A', - 'S', 'C', 'O', 'R', 'E', - 'S', 'C', 'O', 'T', 'S', - 'S', 'D', 'O', 'N', 'G', - 'S', 'E', 'D', 'N', 'A', - 'S', 'E', 'E', 'N', 'U', - 'S', 'E', 'G', 'N', 'O', - 'S', 'E', 'G', 'O', 'L', - 'S', 'E', 'N', 'T', 'I', - 'S', 'E', 'N', 'T', 'O', - 'S', 'E', 'R', 'I', 'F', - 'S', 'E', 'V', 'E', 'N', - 'S', 'H', 'A', 'B', '6', - 'S', 'H', 'A', 'D', 'E', - 'S', 'H', 'A', 'F', 'T', - 'S', 'H', 'A', 'N', 'G', - 'S', 'H', 'A', 'P', 'E', - 'S', 'H', 'A', 'R', '2', - 'S', 'H', 'A', 'R', 'A', - 'S', 'H', 'A', 'R', 'K', - 'S', 'H', 'A', 'R', 'P', - 'S', 'H', 'A', 'R', 'U', - 'S', 'H', 'C', 'H', 'A', - 'S', 'H', 'E', 'E', 'N', - 'S', 'H', 'E', 'E', 'P', - 'S', 'H', 'E', 'G', '9', - 'S', 'H', 'E', 'L', 'F', - 'S', 'H', 'E', 'L', 'L', - 'S', 'H', 'E', 'S', 'H', - 'S', 'H', 'E', 'U', 'X', - 'S', 'H', 'E', 'V', 'A', - 'S', 'H', 'I', 'F', 'T', - 'S', 'H', 'I', 'I', 'N', - 'S', 'H', 'I', 'M', 'A', - 'S', 'H', 'I', 'R', 'T', - 'S', 'H', 'I', 'T', 'A', - 'S', 'H', 'O', 'E', 'S', - 'S', 'H', 'O', 'G', 'I', - 'S', 'H', 'O', 'O', 'I', - 'S', 'H', 'O', 'O', 'T', - 'S', 'H', 'O', 'R', 'T', - 'S', 'H', 'R', 'A', 'A', - 'S', 'H', 'R', 'I', 'I', - 'S', 'H', 'R', 'O', 'O', - 'S', 'H', 'R', 'U', 'G', - 'S', 'H', 'U', 'E', 'Q', - 'S', 'H', 'U', 'O', 'P', - 'S', 'H', 'U', 'O', 'X', - 'S', 'H', 'U', 'R', 'X', - 'S', 'H', 'W', 'A', 'A', - 'S', 'H', 'W', 'I', 'I', - 'S', 'H', 'W', 'O', 'O', - 'S', 'H', 'W', 'O', 'Y', - 'S', 'H', 'Y', 'E', 'R', - 'S', 'H', 'Y', 'R', 'X', - 'S', 'I', 'G', 'E', 'L', - 'S', 'I', 'G', 'M', 'A', - 'S', 'I', 'G', 'N', 'S', - 'S', 'I', 'L', 'A', '3', - 'S', 'I', 'X', 'T', 'H', - 'S', 'I', 'X', 'T', 'Y', - 'S', 'I', 'Y', 'A', 'Q', - 'S', 'K', 'A', 'T', 'E', - 'S', 'K', 'I', 'E', 'R', - 'S', 'K', 'O', 'B', 'A', - 'S', 'K', 'U', 'L', 'L', - 'S', 'K', 'U', 'N', 'K', - 'S', 'L', 'A', 'S', 'H', - 'S', 'L', 'A', 'V', 'E', - 'S', 'L', 'E', 'E', 'P', - 'S', 'L', 'I', 'C', 'E', - 'S', 'L', 'I', 'D', 'E', - 'S', 'L', 'I', 'N', 'G', - 'S', 'L', 'O', 'A', 'N', - 'S', 'L', 'O', 'P', 'E', - 'S', 'L', 'O', 'T', 'H', - 'S', 'L', 'O', 'V', 'O', - 'S', 'M', 'A', 'L', 'L', - 'S', 'M', 'A', 'S', 'H', - 'S', 'M', 'E', 'A', 'R', - 'S', 'M', 'I', 'L', 'E', - 'S', 'N', 'A', 'I', 'L', - 'S', 'N', 'A', 'K', 'E', - 'S', 'N', 'O', 'U', 'T', - 'S', 'O', 'C', 'K', 'S', - 'S', 'O', 'L', 'I', 'D', - 'S', 'O', 'U', 'N', 'D', - 'S', 'O', 'U', 'T', 'H', - 'S', 'P', 'A', 'C', 'E', - 'S', 'P', 'A', 'D', 'E', - 'S', 'P', 'E', 'A', 'R', - 'S', 'P', 'E', 'N', 'T', - 'S', 'P', 'I', 'C', 'E', - 'S', 'P', 'I', 'N', 'E', - 'S', 'P', 'L', 'I', 'T', - 'S', 'P', 'O', 'O', 'L', - 'S', 'P', 'O', 'O', 'N', - 'S', 'Q', 'U', 'A', 'T', - 'S', 'Q', 'U', 'I', 'D', - 'S', 'S', 'H', 'I', 'N', - 'S', 'S', 'I', 'E', 'P', - 'S', 'S', 'I', 'E', 'X', - 'S', 'S', 'Y', 'R', 'X', - 'S', 'T', 'A', 'F', 'F', - 'S', 'T', 'A', 'N', 'D', - 'S', 'T', 'A', 'R', 'K', - 'S', 'T', 'A', 'R', 'S', - 'S', 'T', 'A', 'R', 'T', - 'S', 'T', 'E', 'A', 'M', - 'S', 'T', 'I', 'C', 'K', - 'S', 'T', 'I', 'L', 'E', - 'S', 'T', 'I', 'L', 'L', - 'S', 'T', 'O', 'C', 'K', - 'S', 'T', 'O', 'N', 'E', - 'S', 'T', 'O', 'R', 'E', - 'S', 'T', 'O', 'V', 'E', - 'S', 'T', 'R', 'A', 'W', - 'S', 'T', 'U', 'D', 'Y', - 'S', 'T', 'U', 'P', 'A', - 'S', 'U', 'A', 'E', 'N', - 'S', 'U', 'A', 'E', 'T', - 'S', 'U', 'H', 'U', 'R', - 'S', 'U', 'K', 'U', 'N', - 'S', 'U', 'P', 'E', 'R', - 'S', 'U', 'R', 'Y', 'A', - 'S', 'U', 'S', 'H', 'I', - 'S', 'U', 'T', 'R', 'A', - 'S', 'U', 'T', 'U', 'H', - 'S', 'W', 'A', 'S', 'H', - 'S', 'W', 'E', 'A', 'T', - 'S', 'W', 'E', 'E', 'T', - 'S', 'W', 'I', 'R', 'L', - 'S', 'W', 'O', 'R', 'D', - 'S', 'W', 'U', 'N', 'G', - 'S', 'Y', 'R', 'M', 'A', - 'T', '-', 'R', 'E', 'X', - 'T', '0', '0', '3', 'A', - 'T', '0', '0', '7', 'A', - 'T', '0', '0', '8', 'A', - 'T', '0', '0', '9', 'A', - 'T', '0', '1', '1', 'A', - 'T', '0', '1', '6', 'A', - 'T', '0', '3', '2', 'A', - 'T', '0', '3', '3', 'A', - 'T', 'A', 'B', 'L', 'E', - 'T', 'A', 'K', 'R', 'I', - 'T', 'A', 'L', 'L', 'Y', - 'T', 'A', 'M', 'A', 'N', - 'T', 'A', 'M', 'I', 'L', - 'T', 'A', 'P', 'E', 'R', - 'T', 'A', 'S', 'L', 'A', - 'T', 'A', 'S', 'S', 'I', - 'T', 'C', 'H', 'E', 'H', - 'T', 'E', 'A', 'R', 'S', - 'T', 'E', 'D', 'D', 'Y', - 'T', 'E', 'E', 'E', 'E', - 'T', 'E', 'E', 'N', 'S', - 'T', 'E', 'E', 'T', 'H', - 'T', 'E', 'G', 'E', 'H', - 'T', 'E', 'H', 'E', 'H', - 'T', 'E', 'I', 'W', 'S', - 'T', 'E', 'N', 'G', 'E', - 'T', 'E', 'N', 'S', 'E', - 'T', 'E', 'N', 'T', 'H', - 'T', 'E', 'N', 'T', 'U', - 'T', 'E', 'V', 'I', 'R', - 'T', 'H', 'A', 'R', 'I', - 'T', 'H', 'E', 'L', 'E', - 'T', 'H', 'E', 'M', 'A', - 'T', 'H', 'E', 'R', 'E', - 'T', 'H', 'E', 'T', 'A', - 'T', 'H', 'E', 'T', 'H', - 'T', 'H', 'I', 'A', 'B', - 'T', 'H', 'I', 'C', 'K', - 'T', 'H', 'I', 'G', 'H', - 'T', 'H', 'I', 'N', 'G', - 'T', 'H', 'I', 'R', 'D', - 'T', 'H', 'I', 'T', 'A', - 'T', 'H', 'O', 'N', 'G', - 'T', 'H', 'O', 'R', 'N', - 'T', 'H', 'R', 'E', 'E', - 'T', 'H', 'U', 'M', 'B', - 'T', 'H', 'U', 'N', 'G', - 'T', 'H', 'U', 'R', 'S', - 'T', 'H', 'W', 'A', 'A', - 'T', 'H', 'W', 'E', 'E', - 'T', 'H', 'W', 'I', 'I', - 'T', 'H', 'W', 'O', 'O', - 'T', 'I', 'A', 'R', 'A', - 'T', 'I', 'G', 'E', 'R', - 'T', 'I', 'G', 'H', 'T', - 'T', 'I', 'K', 'H', 'Y', - 'T', 'I', 'L', 'D', 'E', - 'T', 'I', 'L', 'E', 'S', - 'T', 'I', 'M', 'E', 'R', - 'T', 'I', 'M', 'E', 'S', - 'T', 'I', 'N', 'N', 'E', - 'T', 'I', 'P', 'P', 'I', - 'T', 'I', 'R', 'E', 'D', - 'T', 'I', 'R', 'T', 'A', - 'T', 'I', 'T', 'L', 'O', - 'T', 'I', 'W', 'A', 'Z', - 'T', 'L', 'H', 'E', 'E', - 'T', 'L', 'H', 'O', 'O', - 'T', 'L', 'H', 'W', 'E', - 'T', 'L', 'H', 'Y', 'A', - 'T', 'O', '-', 'R', 'A', - 'T', 'O', 'K', 'Y', 'O', - 'T', 'O', 'M', 'P', 'I', - 'T', 'O', 'N', 'A', 'L', - 'T', 'O', 'N', 'O', 'S', - 'T', 'O', 'N', 'P', 'I', - 'T', 'O', 'O', 'T', 'H', - 'T', 'O', 'R', 'C', 'H', - 'T', 'O', 'R', 'S', 'O', - 'T', 'O', 'T', 'A', 'L', - 'T', 'O', 'U', 'C', 'H', - 'T', 'O', 'W', 'E', 'R', - 'T', 'O', 'Y', 'O', 'R', - 'T', 'R', 'A', 'C', 'K', - 'T', 'R', 'A', 'D', 'E', - 'T', 'R', 'A', 'I', 'N', - 'T', 'R', 'E', 'N', 'D', - 'T', 'R', 'I', 'L', 'L', - 'T', 'R', 'I', 'O', 'N', - 'T', 'R', 'O', 'L', 'L', - 'T', 'R', 'U', 'C', 'K', - 'T', 'R', 'U', 'N', 'K', - 'T', 'R', 'U', 'T', 'H', - 'T', 'S', 'A', 'D', 'I', - 'T', 'S', 'A', 'T', 'A', - 'T', 'S', 'E', 'E', 'B', - 'T', 'S', 'E', 'R', 'E', - 'T', 'S', 'H', 'A', 'B', - 'T', 'S', 'H', 'E', 'G', - 'T', 'S', 'H', 'E', 'S', - 'T', 'T', 'H', 'A', 'A', - 'T', 'T', 'H', 'E', 'E', - 'T', 'T', 'H', 'O', 'O', - 'T', 'T', 'H', 'W', 'E', - 'T', 'T', 'S', 'E', 'E', - 'T', 'T', 'T', 'H', 'A', - 'T', 'U', '-', 'T', 'O', - 'T', 'U', 'A', 'E', 'P', - 'T', 'U', 'L', 'I', 'P', - 'T', 'U', 'M', 'A', 'E', - 'T', 'U', 'N', 'N', 'Y', - 'T', 'U', 'P', 'N', 'I', - 'T', 'U', 'R', 'O', '2', - 'T', 'U', 'T', 'T', 'Y', - 'T', 'U', 'U', 'M', 'U', - 'U', '-', 'I', '-', 'I', - 'U', '-', 'Y', 'E', 'O', - 'U', '0', '0', '6', 'A', - 'U', '0', '0', '6', 'B', - 'U', '0', '2', '3', 'A', - 'U', '0', '2', '9', 'A', - 'U', '0', '3', '2', 'A', - 'U', 'D', 'A', 'A', 'T', - 'U', 'K', 'A', 'R', 'A', - 'U', 'M', 'B', 'I', 'N', - 'U', 'N', 'C', 'I', 'A', - 'U', 'N', 'D', 'E', 'R', - 'U', 'N', 'I', 'O', 'N', - 'U', 'N', 'I', 'T', 'Y', - 'U', 'P', 'P', 'E', 'R', - 'U', 'R', 'I', 'N', 'E', - 'U', 'R', 'U', 'D', 'A', - 'U', 'S', 'S', 'U', '3', - 'U', 'T', 'T', 'H', 'I', - 'U', 'T', 'U', 'K', 'I', - 'V', '0', '0', '1', 'A', - 'V', '0', '0', '1', 'B', - 'V', '0', '0', '1', 'C', - 'V', '0', '0', '1', 'D', - 'V', '0', '0', '1', 'E', - 'V', '0', '0', '1', 'F', - 'V', '0', '0', '1', 'G', - 'V', '0', '0', '1', 'H', - 'V', '0', '0', '1', 'I', - 'V', '0', '0', '2', 'A', - 'V', '0', '0', '7', 'A', - 'V', '0', '0', '7', 'B', - 'V', '0', '1', '1', 'A', - 'V', '0', '1', '1', 'B', - 'V', '0', '1', '1', 'C', - 'V', '0', '1', '1', 'D', - 'V', '0', '1', '2', 'A', - 'V', '0', '1', '2', 'B', - 'V', '0', '2', '0', 'A', - 'V', '0', '2', '0', 'B', - 'V', '0', '2', '0', 'C', - 'V', '0', '2', '0', 'D', - 'V', '0', '2', '0', 'E', - 'V', '0', '2', '0', 'F', - 'V', '0', '2', '0', 'G', - 'V', '0', '2', '0', 'H', - 'V', '0', '2', '0', 'I', - 'V', '0', '2', '0', 'J', - 'V', '0', '2', '0', 'K', - 'V', '0', '2', '0', 'L', - 'V', '0', '2', '3', 'A', - 'V', '0', '2', '8', 'A', - 'V', '0', '2', '9', 'A', - 'V', '0', '3', '0', 'A', - 'V', '0', '3', '1', 'A', - 'V', '0', '3', '3', 'A', - 'V', '0', '3', '7', 'A', - 'V', '0', '4', '0', 'A', - 'V', 'A', 'A', 'V', 'U', - 'V', 'A', 'R', 'C', 'A', - 'V', 'A', 'R', 'I', 'A', - 'V', 'A', 'R', 'Y', 'S', - 'V', 'A', 'S', 'I', 'S', - 'V', 'A', 'T', 'H', 'Y', - 'V', 'E', 'D', 'I', 'C', - 'V', 'E', 'R', 'G', 'E', - 'V', 'E', 'R', 'S', 'E', - 'V', 'E', 'S', 'T', 'A', - 'V', 'E', 'U', 'A', 'E', - 'V', 'I', 'D', 'E', 'O', - 'V', 'I', 'R', 'G', 'A', - 'V', 'I', 'R', 'G', 'O', - 'V', 'I', 'T', 'A', 'E', - 'V', 'O', 'C', 'A', 'L', - 'V', 'O', 'W', 'E', 'L', - 'V', 'Z', 'M', 'E', 'T', - 'W', '0', '0', '3', 'A', - 'W', '0', '0', '9', 'A', - 'W', '0', '1', '0', 'A', - 'W', '0', '1', '4', 'A', - 'W', '0', '1', '7', 'A', - 'W', '0', '1', '8', 'A', - 'W', '0', '2', '4', 'A', - 'W', 'A', 'A', 'V', 'U', - 'W', 'A', 'D', 'D', 'A', - 'W', 'A', 'I', 'S', 'T', - 'W', 'A', 'Q', 'F', 'A', - 'W', 'A', 'S', 'L', 'A', - 'W', 'A', 'T', 'C', 'H', - 'W', 'A', 'T', 'E', 'R', - 'W', 'A', 'T', 'T', 'O', - 'W', 'A', 'V', 'E', 'S', - 'W', 'E', 'A', 'R', 'Y', - 'W', 'E', 'D', 'G', 'E', - 'W', 'H', 'A', 'L', 'E', - 'W', 'H', 'E', 'A', 'T', - 'W', 'H', 'E', 'E', 'L', - 'W', 'H', 'I', 'T', 'E', - 'W', 'H', 'O', 'L', 'E', - 'W', 'I', 'A', 'N', 'G', - 'W', 'I', 'D', 'T', 'H', - 'W', 'I', 'N', 'D', 'U', - 'W', 'I', 'N', 'G', 'S', - 'W', 'I', 'N', 'J', 'A', - 'W', 'I', 'R', 'E', 'D', - 'W', 'O', 'M', 'A', 'N', - 'W', 'O', 'M', 'E', 'N', - 'W', 'O', 'R', 'L', 'D', - 'W', 'R', 'I', 'S', 'T', - 'W', 'R', 'O', 'N', 'G', - 'W', 'U', 'A', 'E', 'N', - 'W', 'U', 'A', 'E', 'T', - 'W', 'U', 'N', 'J', 'O', - 'X', '-', 'R', 'A', 'Y', - 'X', '0', '0', '4', 'A', - 'X', '0', '0', '4', 'B', - 'X', '0', '0', '6', 'A', - 'X', '0', '0', '8', 'A', - 'X', 'H', 'E', 'Y', 'N', - 'X', 'I', 'R', 'O', 'N', - 'X', 'Y', 'E', 'E', 'M', - 'X', 'Y', 'O', 'O', 'J', - 'Y', '0', '0', '1', 'A', - 'Y', 'A', '-', 'Y', 'O', - 'Y', 'A', 'A', 'D', 'O', - 'Y', 'A', 'A', 'R', 'U', - 'Y', 'A', 'D', 'D', 'H', - 'Y', 'A', 'G', 'H', 'H', - 'Y', 'A', 'K', 'H', 'H', - 'Y', 'A', 'M', 'O', 'K', - 'Y', 'E', 'N', 'A', 'P', - 'Y', 'E', 'O', '-', 'O', - 'Y', 'E', 'O', '-', 'U', - 'Y', 'E', 'R', 'A', 'H', - 'Y', 'E', 'S', 'T', 'U', - 'Y', 'E', 'T', 'I', 'V', - 'Y', 'E', 'U', 'A', 'E', - 'Y', 'I', 'Z', 'E', 'T', - 'Y', 'O', '-', 'A', 'E', - 'Y', 'O', '-', 'E', 'O', - 'Y', 'O', '-', 'Y', 'A', - 'Y', 'O', '-', 'Y', 'O', - 'Y', 'U', '-', 'A', 'E', - 'Y', 'U', '-', 'E', 'O', - 'Y', 'U', '-', 'Y', 'E', - 'Y', 'U', 'A', 'E', 'N', - 'Y', 'U', 'W', 'O', 'Q', - 'Z', '0', '0', '2', 'A', - 'Z', '0', '0', '2', 'B', - 'Z', '0', '0', '2', 'C', - 'Z', '0', '0', '2', 'D', - 'Z', '0', '0', '3', 'A', - 'Z', '0', '0', '3', 'B', - 'Z', '0', '0', '4', 'A', - 'Z', '0', '0', '5', 'A', - 'Z', '0', '1', '5', 'A', - 'Z', '0', '1', '5', 'B', - 'Z', '0', '1', '5', 'C', - 'Z', '0', '1', '5', 'D', - 'Z', '0', '1', '5', 'E', - 'Z', '0', '1', '5', 'F', - 'Z', '0', '1', '5', 'G', - 'Z', '0', '1', '5', 'H', - 'Z', '0', '1', '5', 'I', - 'Z', '0', '1', '6', 'A', - 'Z', '0', '1', '6', 'B', - 'Z', '0', '1', '6', 'C', - 'Z', '0', '1', '6', 'D', - 'Z', '0', '1', '6', 'E', - 'Z', '0', '1', '6', 'F', - 'Z', '0', '1', '6', 'G', - 'Z', '0', '1', '6', 'H', - 'Z', 'A', 'Q', 'E', 'F', - 'Z', 'A', 'R', 'Q', 'A', - 'Z', 'A', 'Y', 'I', 'N', - 'Z', 'E', 'B', 'R', 'A', - 'Z', 'E', 'V', 'O', 'K', - 'Z', 'H', 'A', 'I', 'N', - 'Z', 'H', 'U', 'O', 'P', - 'Z', 'H', 'U', 'O', 'X', - 'Z', 'H', 'U', 'R', 'X', - 'Z', 'H', 'Y', 'R', 'X', - 'Z', 'I', 'L', 'D', 'E', - 'Z', 'I', 'N', 'O', 'R', - 'Z', 'I', 'Q', 'A', 'A', - 'Z', 'L', 'A', 'M', 'A', - 'Z', 'U', 'B', 'U', 'R', - 'Z', 'Y', 'G', 'O', 'S', - 'Z', 'Z', 'I', 'E', 'P', - 'Z', 'Z', 'I', 'E', 'T', - 'Z', 'Z', 'I', 'E', 'X', - 'Z', 'Z', 'S', 'Y', 'A', - 'Z', 'Z', 'U', 'R', 'X', - 'Z', 'Z', 'Y', 'R', 'X', - '-', 'K', 'H', 'Y', 'I', 'L', - '-', 'K', 'H', 'Y', 'U', 'D', - 'A', '7', '0', '9', '-', '2', - 'A', '7', '0', '9', '-', '3', - 'A', '7', '0', '9', '-', '4', - 'A', '7', '0', '9', '-', '6', - 'A', 'A', '0', '0', '7', 'A', - 'A', 'A', '0', '0', '7', 'B', - 'A', 'B', '0', '2', '1', 'F', - 'A', 'B', '0', '2', '1', 'M', - 'A', 'B', '0', '2', '2', 'F', - 'A', 'B', '0', '2', '2', 'M', - 'A', 'B', '0', '2', '3', 'M', - 'A', 'B', '1', '3', '1', 'A', - 'A', 'B', '1', '3', '1', 'B', - 'A', 'B', 'A', 'C', 'U', 'S', - 'A', 'C', 'C', 'E', 'N', 'T', - 'A', 'C', 'C', 'E', 'P', 'T', - 'A', 'E', 'G', 'E', 'A', 'N', - 'A', 'E', 'R', 'I', 'A', 'L', - 'A', 'F', 'S', 'A', 'A', 'Q', - 'A', 'I', 'H', 'V', 'U', 'S', - 'A', 'I', 'K', 'A', 'R', 'A', - 'A', 'L', '-', 'J', 'U', 'Z', - 'A', 'L', 'A', 'Y', 'H', 'E', - 'A', 'L', 'A', 'Y', 'H', 'I', - 'A', 'L', 'K', 'A', 'L', 'I', - 'A', 'L', 'L', 'A', 'A', 'H', - 'A', 'L', 'M', 'O', 'S', 'T', - 'A', 'M', 'O', 'U', 'N', 'T', - 'A', 'M', 'U', 'L', 'E', 'T', - 'A', 'N', 'C', 'H', 'O', 'R', - 'A', 'N', 'C', 'O', 'R', 'A', - 'A', 'N', 'G', 'L', 'E', 'D', - 'A', 'N', 'I', 'M', 'A', 'L', - 'A', 'N', 'N', 'A', 'A', 'U', - 'A', 'P', 'A', 'A', 'T', 'O', - 'A', 'P', 'L', 'O', 'U', 'N', - 'A', 'R', '-', 'R', 'U', 'B', - 'A', 'R', 'A', 'B', 'I', 'C', - 'A', 'R', 'A', 'E', 'A', 'E', - 'A', 'R', 'L', 'A', 'U', 'G', - 'A', 'R', 'M', 'O', 'U', 'R', - 'A', 'R', 'O', 'U', 'N', 'D', - 'A', 'R', 'O', 'U', 'R', 'A', - 'A', 'R', 'R', 'I', 'V', 'E', - 'A', 'R', 'R', 'O', 'W', 'S', - 'A', 'R', 'S', 'E', 'O', 'S', - 'A', 'R', 'T', 'A', 'B', 'E', - 'A', 'R', 'T', 'I', 'S', 'T', - 'A', 'R', 'U', 'H', 'U', 'A', - 'A', 'S', 'C', 'E', 'N', 'T', - 'A', 'S', 'H', 'G', 'A', 'B', - 'A', 'S', 'Y', 'U', 'R', 'A', - 'A', 'T', 'M', 'A', 'A', 'U', - 'A', 'T', 'O', 'M', 'I', 'C', - 'A', 'U', 'G', 'U', 'S', 'T', - 'A', 'U', 'T', 'U', 'M', 'N', - 'A', 'Y', 'A', 'N', 'N', 'A', - 'B', 'A', 'D', 'G', 'E', 'R', - 'B', 'A', 'H', 'A', 'R', '2', - 'B', 'A', 'I', 'M', 'A', 'I', - 'B', 'A', 'L', 'L', 'E', 'T', - 'B', 'A', 'L', 'L', 'O', 'T', - 'B', 'A', 'L', 'U', 'D', 'A', - 'B', 'A', 'M', 'B', 'O', 'O', - 'B', 'A', 'N', 'A', 'N', 'A', - 'B', 'A', 'N', 'T', 'O', 'C', - 'B', 'A', 'R', 'B', 'E', 'R', - 'B', 'A', 'R', 'L', 'E', 'Y', - 'B', 'A', 'R', 'R', 'E', 'D', - 'B', 'A', 'R', 'R', 'E', 'E', - 'B', 'A', 'S', 'K', 'E', 'T', - 'B', 'E', 'A', 'M', 'E', 'D', - 'B', 'E', 'A', 'V', 'E', 'R', - 'B', 'E', 'E', 'T', 'L', 'E', - 'B', 'E', 'F', 'O', 'R', 'E', - 'B', 'E', 'H', 'I', 'N', 'D', - 'B', 'E', 'R', 'B', 'E', 'R', - 'B', 'E', 'S', 'I', 'D', 'E', - 'B', 'E', 'Y', 'Y', 'A', 'L', - 'B', 'I', 'C', 'E', 'P', 'S', - 'B', 'I', 'K', 'I', 'N', 'I', - 'B', 'I', 'L', 'L', 'E', 'D', - 'B', 'I', 'N', 'A', 'R', 'Y', - 'B', 'I', 'S', 'H', 'O', 'P', - 'B', 'I', 'T', 'I', 'N', 'G', - 'B', 'I', 'T', 'T', 'E', 'R', - 'B', 'O', 'R', 'U', 'T', 'O', - 'B', 'O', 'T', 'T', 'L', 'E', - 'B', 'O', 'T', 'T', 'O', 'M', - 'B', 'O', 'W', 'I', 'N', 'G', - 'B', 'O', 'W', 'T', 'I', 'E', - 'B', 'O', 'X', 'I', 'N', 'G', - 'B', 'R', 'A', 'H', 'M', 'I', - 'B', 'R', 'A', 'N', 'C', 'H', - 'B', 'R', 'E', 'A', 'T', 'H', - 'B', 'R', 'E', 'V', 'I', 'S', - 'B', 'R', 'I', 'D', 'G', 'E', - 'B', 'R', 'I', 'E', 'F', 'S', - 'B', 'R', 'O', 'K', 'E', 'N', - 'B', 'R', 'O', 'N', 'Z', 'E', - 'B', 'U', 'B', 'B', 'L', 'E', - 'B', 'U', 'C', 'K', 'E', 'T', - 'B', 'U', 'C', 'K', 'L', 'E', - 'B', 'U', 'F', 'F', 'E', 'R', - 'B', 'U', 'L', 'L', 'E', 'T', - 'B', 'U', 'T', 'T', 'E', 'R', - 'B', 'U', 'T', 'T', 'O', 'N', - 'C', 'A', 'C', 'T', 'U', 'S', - 'C', 'A', 'M', 'E', 'R', 'A', - 'C', 'A', 'M', 'N', 'U', 'C', - 'C', 'A', 'N', 'C', 'E', 'L', - 'C', 'A', 'N', 'C', 'E', 'R', - 'C', 'A', 'N', 'D', 'L', 'E', - 'C', 'A', 'N', 'D', 'R', 'A', - 'C', 'A', 'N', 'N', 'E', 'D', - 'C', 'A', 'N', 'N', 'O', 'N', - 'C', 'A', 'P', 'P', 'E', 'D', - 'C', 'A', 'R', 'I', 'A', 'N', - 'C', 'A', 'R', 'R', 'O', 'T', - 'C', 'A', 'S', 'K', 'E', 'T', - 'C', 'A', 'S', 'T', 'L', 'E', - 'C', 'A', 'T', 'A', 'W', 'A', - 'C', 'C', 'H', 'H', 'A', 'A', - 'C', 'C', 'H', 'H', 'E', 'E', - 'C', 'E', 'L', 'T', 'I', 'C', - 'C', 'E', 'N', 'T', 'R', 'E', - 'C', 'E', 'R', '-', 'W', 'A', - 'C', 'E', 'V', 'I', 'T', 'U', - 'C', 'H', 'A', 'I', 'N', 'S', - 'C', 'H', 'A', 'K', 'M', 'A', - 'C', 'H', 'A', 'M', 'K', 'O', - 'C', 'H', 'A', 'N', 'G', 'E', - 'C', 'H', 'E', 'E', 'K', 'S', - 'C', 'H', 'E', 'E', 'S', 'E', - 'C', 'H', 'E', 'L', 'A', 'P', - 'C', 'H', 'E', 'L', 'N', 'U', - 'C', 'H', 'E', 'R', 'R', 'Y', - 'C', 'H', 'I', 'L', 'L', 'U', - 'C', 'H', 'I', 'R', 'E', 'T', - 'C', 'H', 'I', 'R', 'O', 'N', - 'C', 'H', 'R', 'I', 'V', 'I', - 'C', 'H', 'R', 'O', 'M', 'A', - 'C', 'H', 'U', 'R', 'C', 'H', - 'C', 'I', 'N', 'E', 'M', 'A', - 'C', 'I', 'R', 'C', 'L', 'E', - 'C', 'I', 'R', 'C', 'U', 'S', - 'C', 'L', 'E', 'F', '-', '1', - 'C', 'L', 'E', 'F', '-', '2', - 'C', 'L', 'I', 'V', 'I', 'S', - 'C', 'L', 'O', 'S', 'E', 'D', - 'C', 'L', 'O', 'S', 'E', 'T', - 'C', 'L', 'O', 'V', 'E', 'R', - 'C', 'M', '0', '1', '2', 'B', - 'C', 'M', '0', '7', '5', 'B', - 'C', 'O', 'F', 'F', 'I', 'N', - 'C', 'O', 'L', 'U', 'M', 'N', - 'C', 'O', 'M', 'I', 'N', 'G', - 'C', 'O', 'M', 'M', 'O', 'N', - 'C', 'O', 'O', 'K', 'E', 'D', - 'C', 'O', 'O', 'K', 'I', 'E', - 'C', 'O', 'P', 'P', 'E', 'R', - 'C', 'O', 'P', 'T', 'I', 'C', - 'C', 'O', 'R', 'N', 'E', 'R', - 'C', 'O', 'R', 'P', 'S', 'E', - 'C', 'O', 'U', 'P', 'L', 'E', - 'C', 'O', 'W', 'B', 'O', 'Y', - 'C', 'R', 'A', 'Y', 'O', 'N', - 'C', 'R', 'E', 'D', 'I', 'T', - 'C', 'R', 'O', 'C', 'U', 'S', - 'C', 'R', 'O', 'T', 'C', 'H', - 'C', 'R', 'U', 'T', 'C', 'H', - 'C', 'R', 'Y', 'I', 'N', 'G', - 'C', 'U', 'P', 'I', 'D', 'O', - 'C', 'U', 'P', 'P', 'E', 'D', - 'C', 'U', 'R', 'L', 'E', 'D', - 'C', 'U', 'R', 'V', 'E', 'D', - 'D', 'A', 'A', 'D', 'H', 'U', - 'D', 'A', 'G', 'E', 'S', 'H', - 'D', 'A', 'G', 'G', 'E', 'R', - 'D', 'A', 'L', 'A', 'T', 'H', - 'D', 'A', 'L', 'E', 'T', 'H', - 'D', 'A', 'M', 'A', 'R', 'U', - 'D', 'A', 'N', 'C', 'E', 'R', - 'D', 'A', 'S', 'E', 'I', 'A', - 'D', 'A', 'S', 'H', 'E', 'D', - 'D', 'D', 'A', 'H', 'A', 'L', - 'D', 'E', 'E', 'P', 'L', 'Y', - 'D', 'E', 'G', 'R', 'E', 'E', - 'D', 'E', 'L', 'E', 'T', 'E', - 'D', 'E', 'N', 'N', 'E', 'N', - 'D', 'E', 'N', 'T', 'A', 'L', - 'D', 'E', 'S', 'E', 'R', 'T', - 'D', 'E', 'S', 'I', 'G', 'N', - 'D', 'E', 'V', 'I', 'C', 'E', - 'D', 'H', 'A', 'A', 'L', 'U', - 'D', 'H', 'A', 'D', 'H', 'E', - 'D', 'H', 'A', 'R', 'M', 'A', - 'D', 'I', 'E', 'S', 'E', 'L', - 'D', 'I', 'E', 'S', 'I', 'S', - 'D', 'I', 'G', 'I', 'T', 'S', - 'D', 'I', 'G', 'R', 'A', 'M', - 'D', 'I', 'P', 'P', 'E', 'R', - 'D', 'I', 'R', 'E', 'C', 'T', - 'D', 'I', 'V', 'I', 'D', 'E', - 'D', 'I', 'V', 'I', 'N', 'G', - 'D', 'J', 'E', 'R', 'V', 'I', - 'D', 'O', 'K', 'M', 'A', 'I', - 'D', 'O', 'L', 'I', 'U', 'M', - 'D', 'O', 'L', 'L', 'A', 'R', - 'D', 'O', 'M', 'A', 'I', 'N', - 'D', 'O', 'M', 'I', 'N', 'O', - 'D', 'O', 'N', 'K', 'E', 'Y', - 'D', 'O', 'R', 'O', 'M', 'E', - 'D', 'O', 'T', 'S', '-', '1', - 'D', 'O', 'T', 'S', '-', '2', - 'D', 'O', 'T', 'S', '-', '3', - 'D', 'O', 'T', 'S', '-', '4', - 'D', 'O', 'T', 'S', '-', '5', - 'D', 'O', 'T', 'S', '-', '6', - 'D', 'O', 'T', 'S', '-', '7', - 'D', 'O', 'T', 'S', '-', '8', - 'D', 'O', 'T', 'T', 'E', 'D', - 'D', 'O', 'U', 'B', 'L', 'E', - 'D', 'R', 'A', 'G', 'O', 'N', - 'D', 'R', 'E', 'A', 'M', 'Y', - 'D', 'U', 'T', 'I', 'E', 'S', - 'D', 'V', 'U', 'M', 'Y', 'A', - 'E', '-', 'M', 'A', 'I', 'L', - 'E', 'I', 'G', 'H', 'T', 'H', - 'E', 'I', 'G', 'H', 'T', 'Y', - 'E', 'L', 'E', 'V', 'E', 'N', - 'E', 'M', 'B', 'L', 'E', 'M', - 'E', 'N', 'D', 'I', 'N', 'G', - 'E', 'N', 'E', 'R', 'G', 'Y', - 'E', 'N', 'G', 'I', 'N', 'E', - 'E', 'Q', 'U', 'A', 'L', 'S', - 'E', 'S', 'C', 'A', 'P', 'E', - 'E', 'T', 'E', 'R', 'O', 'N', - 'E', 'X', 'C', 'E', 'S', 'S', - 'E', 'X', 'H', 'A', 'L', 'E', - 'E', 'X', 'I', 'S', 'T', 'S', - 'E', 'Y', 'A', 'N', 'N', 'A', - 'F', 'A', 'A', 'M', 'A', 'E', - 'F', 'A', 'C', 'E', '-', '1', - 'F', 'A', 'C', 'E', '-', '2', - 'F', 'A', 'C', 'E', '-', '3', - 'F', 'A', 'C', 'E', '-', '4', - 'F', 'A', 'C', 'E', '-', '5', - 'F', 'A', 'C', 'E', '-', '6', - 'F', 'A', 'C', 'I', 'N', 'G', - 'F', 'A', 'C', 'T', 'O', 'R', - 'F', 'A', 'L', 'L', 'E', 'N', - 'F', 'A', 'M', 'I', 'L', 'Y', - 'F', 'A', 'T', 'H', 'E', 'R', - 'F', 'E', 'M', 'A', 'L', 'E', - 'F', 'E', 'N', 'C', 'E', 'R', - 'F', 'E', 'R', 'R', 'I', 'S', - 'F', 'H', 'T', 'O', 'R', 'A', - 'F', 'I', 'F', 'T', 'H', 'S', - 'F', 'I', 'G', 'U', 'R', 'E', - 'F', 'I', 'L', 'L', 'E', 'D', - 'F', 'I', 'L', 'L', 'E', 'R', - 'F', 'I', 'N', 'G', 'E', 'R', - 'F', 'I', 'N', 'I', 'T', 'E', - 'F', 'I', 'S', 'T', 'E', 'D', - 'F', 'L', 'A', 'G', '-', '1', - 'F', 'L', 'A', 'G', '-', '2', - 'F', 'L', 'A', 'G', '-', '3', - 'F', 'L', 'A', 'G', '-', '4', - 'F', 'L', 'A', 'G', '-', '5', - 'F', 'L', 'E', 'X', 'E', 'D', - 'F', 'L', 'E', 'X', 'U', 'S', - 'F', 'L', 'I', 'G', 'H', 'T', - 'F', 'L', 'O', 'P', 'P', 'Y', - 'F', 'L', 'O', 'R', 'A', 'L', - 'F', 'L', 'O', 'W', 'E', 'R', - 'F', 'L', 'Y', 'I', 'N', 'G', - 'F', 'O', 'L', 'D', 'E', 'D', - 'F', 'O', 'L', 'D', 'E', 'R', - 'F', 'O', 'N', 'D', 'U', 'E', - 'F', 'O', 'R', 'C', 'E', 'S', - 'F', 'O', 'R', 'K', 'E', 'D', - 'F', 'O', 'R', 'M', 'A', 'T', - 'F', 'O', 'R', 'M', 'E', 'E', - 'F', 'O', 'U', 'R', 'T', 'H', - 'F', 'R', 'A', 'M', 'E', 'S', - 'F', 'R', 'A', 'N', 'K', 'S', - 'F', 'R', 'E', 'N', 'C', 'H', - 'F', 'T', 'H', 'O', 'R', 'A', - 'F', 'U', 'N', 'N', 'E', 'L', - 'G', 'A', 'N', 'G', 'I', 'A', - 'G', 'A', 'P', 'P', 'E', 'D', - 'G', 'A', 'R', 'D', 'E', 'N', - 'G', 'A', 'R', 'L', 'I', 'C', - 'G', 'A', 'S', 'H', 'A', 'N', - 'G', 'E', 'D', 'O', 'L', 'A', - 'G', 'E', 'M', 'I', 'N', 'I', - 'G', 'E', 'N', 'I', 'K', 'I', - 'G', 'E', 'N', 'T', 'L', 'E', - 'G', 'E', 'R', 'E', 'S', 'H', - 'G', 'E', 'R', 'M', 'A', 'N', - 'G', 'H', 'A', 'I', 'N', 'U', - 'G', 'H', 'A', 'M', 'A', 'L', - 'G', 'H', 'A', 'M', 'M', 'A', - 'G', 'H', 'A', 'R', 'A', 'E', - 'G', 'H', 'E', 'U', 'A', 'E', - 'G', 'H', 'I', 'M', 'E', 'L', - 'G', 'H', 'U', 'N', 'N', 'A', - 'G', 'I', 'N', 'G', 'E', 'R', - 'G', 'L', 'E', 'I', 'C', 'H', - 'G', 'L', 'O', 'V', 'E', 'S', - 'G', 'O', 'B', 'L', 'I', 'N', - 'G', 'O', 'L', 'F', 'E', 'R', - 'G', 'O', 'R', 'G', 'O', 'N', - 'G', 'O', 'T', 'H', 'I', 'C', - 'G', 'R', 'A', 'M', 'M', 'A', - 'G', 'R', 'A', 'P', 'E', 'S', - 'G', 'R', 'A', 'T', 'E', 'R', - 'G', 'R', 'O', 'U', 'N', 'D', - 'G', 'U', 'I', 'T', 'A', 'R', - 'G', 'U', 'R', 'A', 'G', 'E', - 'G', 'U', 'R', 'A', 'M', 'U', - 'G', 'U', 'R', 'U', 'N', 'G', - 'G', 'U', 'R', 'U', 'S', 'H', - 'H', '-', 'T', 'Y', 'P', 'E', - 'H', 'A', 'F', 'U', 'K', 'H', - 'H', 'A', 'G', 'L', 'A', 'Z', - 'H', 'A', 'L', 'F', '-', '1', - 'H', 'A', 'L', 'F', '-', '2', - 'H', 'A', 'M', 'M', 'E', 'R', - 'H', 'A', 'N', 'D', 'L', 'E', - 'H', 'A', 'N', 'G', 'U', 'L', - 'H', 'A', 'N', 'I', 'F', 'I', - 'H', 'A', 'T', 'R', 'A', 'N', - 'H', 'A', 'U', 'M', 'E', 'A', - 'H', 'E', 'A', 'D', 'E', 'D', - 'H', 'E', 'A', 'R', 'T', 'S', - 'H', 'E', 'A', 'V', 'E', 'N', - 'H', 'E', 'B', 'R', 'E', 'W', - 'H', 'E', 'I', 'G', 'H', 'T', - 'H', 'E', 'I', 'S', 'E', 'I', - 'H', 'E', 'L', 'M', 'E', 'T', - 'H', 'E', 'R', 'M', 'E', 'S', - 'H', 'E', 'R', 'U', 'T', 'U', - 'H', 'I', '-', 'R', 'E', 'S', - 'H', 'I', 'D', 'I', 'N', 'G', - 'H', 'I', 'K', 'I', 'N', 'G', - 'H', 'I', 'N', 'G', 'E', 'D', - 'H', 'O', 'C', 'K', 'E', 'Y', - 'H', 'O', 'L', 'L', 'O', 'W', - 'H', 'O', 'O', 'K', 'E', 'D', - 'H', 'U', 'I', 'I', 'T', 'O', - 'H', 'U', 'S', 'H', 'E', 'D', - 'H', 'Y', 'G', 'I', 'E', 'A', - 'H', 'Y', 'P', 'H', 'E', 'N', - 'I', '-', 'B', 'E', 'A', 'M', - 'I', '-', 'Y', 'A', '-', 'O', - 'I', 'L', 'I', 'M', 'M', 'U', - 'I', 'M', 'A', 'A', 'L', 'A', - 'I', 'N', 'D', 'I', 'A', 'N', - 'I', 'N', 'G', 'W', 'A', 'Z', - 'I', 'N', 'H', 'A', 'L', 'E', - 'I', 'N', 'I', 'N', 'G', 'U', - 'I', 'N', 'P', 'U', 'T', 'S', - 'I', 'N', 'S', 'E', 'C', 'T', - 'I', 'N', 'S', 'E', 'R', 'T', - 'I', 'N', 'S', 'I', 'D', 'E', - 'I', 'N', 'W', 'A', 'R', 'D', - 'I', 'S', 'A', 'K', 'I', 'A', - 'I', 'S', 'L', 'A', 'N', 'D', - 'I', 'S', 'S', 'H', 'A', 'R', - 'I', 'T', 'A', 'L', 'I', 'C', - 'I', 'Y', 'A', 'N', 'N', 'A', - 'J', 'H', 'A', 'Y', 'I', 'N', - 'J', 'I', 'G', 'S', 'A', 'W', - 'J', 'O', 'I', 'N', 'E', 'D', - 'J', 'O', 'I', 'N', 'E', 'R', - 'J', 'O', 'I', 'N', 'T', 'S', - 'J', 'O', 'Y', 'O', 'U', 'S', - 'K', 'A', 'C', 'H', 'K', 'A', - 'K', 'A', 'I', 'T', 'H', 'I', - 'K', 'A', 'N', 'A', 'K', 'O', - 'K', 'A', 'N', 'G', 'X', 'I', - 'K', 'A', 'S', 'K', 'A', 'L', - 'K', 'A', 'T', 'A', 'V', 'A', - 'K', 'A', 'V', 'Y', 'K', 'A', - 'K', 'A', 'Z', 'A', 'K', 'H', - 'K', 'E', 'F', 'U', 'L', 'A', - 'K', 'E', 'L', 'V', 'I', 'N', - 'K', 'E', 'M', 'P', 'L', 'I', - 'K', 'E', 'M', 'P', 'U', 'L', - 'K', 'E', 'U', 'A', 'E', 'M', - 'K', 'E', 'U', 'K', 'A', 'Q', - 'K', 'E', 'U', 'P', 'U', 'Q', - 'K', 'E', 'Y', 'C', 'A', 'P', - 'K', 'H', 'A', 'M', 'T', 'I', - 'K', 'H', 'A', 'N', 'D', 'A', - 'K', 'H', 'I', 'T', 'A', 'N', - 'K', 'H', 'O', 'J', 'K', 'I', - 'K', 'H', 'O', 'M', 'U', 'T', - 'K', 'H', 'O', 'N', 'N', 'A', - 'K', 'H', 'U', 'D', 'A', 'M', - 'K', 'I', 'E', 'V', 'A', 'N', - 'K', 'I', 'L', 'L', 'E', 'R', - 'K', 'I', 'M', 'O', 'N', 'O', - 'K', 'I', 'S', 'I', 'M', '5', - 'K', 'I', 'Y', 'E', 'O', 'K', - 'K', 'L', 'A', 'S', 'M', 'A', - 'K', 'L', 'I', 'T', 'O', 'N', - 'K', 'L', 'Y', 'U', 'C', 'H', - 'K', 'N', 'I', 'G', 'H', 'T', - 'K', 'O', 'B', 'Y', 'L', 'A', - 'K', 'O', 'G', 'H', 'O', 'M', - 'K', 'O', 'R', 'E', 'A', 'N', - 'K', 'O', 'R', 'U', 'N', 'A', - 'K', 'P', 'A', 'R', 'A', 'Q', - 'K', 'R', 'O', 'N', 'O', 'S', - 'K', 'U', 'R', 'U', 'N', 'I', - 'K', 'U', 'S', 'H', 'U', '2', - 'K', 'W', 'U', '3', '1', '8', - 'K', 'Y', 'U', 'R', 'I', 'I', - 'L', '-', 'T', 'Y', 'P', 'E', - 'L', 'A', 'A', 'N', 'A', 'E', - 'L', 'A', 'B', 'I', 'A', 'L', - 'L', 'A', 'D', 'D', 'E', 'R', - 'L', 'A', 'H', 'S', 'H', 'U', - 'L', 'A', 'K', 'H', 'A', 'N', - 'L', 'A', 'M', 'A', 'D', 'H', - 'L', 'A', 'M', 'B', 'D', 'A', - 'L', 'A', 'M', 'E', 'D', 'H', - 'L', 'A', 'N', 'D', 'E', 'R', - 'L', 'A', 'R', 'G', 'E', 'R', - 'L', 'A', 'U', 'K', 'A', 'Z', - 'L', 'E', 'A', 'D', 'E', 'R', - 'L', 'E', 'D', 'G', 'E', 'R', - 'L', 'E', 'G', 'I', 'O', 'N', - 'L', 'E', 'I', 'M', 'M', 'A', - 'L', 'E', 'N', 'G', 'T', 'H', - 'L', 'E', 'P', 'C', 'H', 'A', - 'L', 'E', 'S', 'S', 'E', 'R', - 'L', 'E', 'T', 'T', 'E', 'R', - 'L', 'E', 'U', 'A', 'E', 'M', - 'L', 'E', 'U', 'A', 'E', 'P', - 'L', 'I', 'F', 'T', 'E', 'R', - 'L', 'I', 'L', 'I', 'T', 'H', - 'L', 'I', 'M', 'M', 'U', '2', - 'L', 'I', 'M', 'M', 'U', '4', - 'L', 'I', 'N', 'E', '-', '1', - 'L', 'I', 'N', 'E', '-', '3', - 'L', 'I', 'N', 'E', '-', '7', - 'L', 'I', 'N', 'E', '-', '9', - 'L', 'I', 'N', 'E', 'A', 'R', - 'L', 'I', 'N', 'G', 'S', 'A', - 'L', 'I', 'N', 'K', 'E', 'D', - 'L', 'I', 'Q', 'U', 'I', 'D', - 'L', 'I', 'T', 'T', 'E', 'R', - 'L', 'I', 'T', 'T', 'L', 'E', - 'L', 'I', 'Z', 'A', 'R', 'D', - 'L', 'O', 'A', 'C', 'H', 'A', - 'L', 'O', 'M', 'M', 'A', 'E', - 'L', 'O', 'N', 'S', 'U', 'M', - 'L', 'O', 'O', 'P', 'E', 'D', - 'L', 'O', 'T', 'I', 'O', 'N', - 'L', 'O', 'U', 'D', 'L', 'Y', - 'L', 'U', 'N', 'A', 'T', 'E', - 'L', 'U', 'N', 'G', 'S', 'I', - 'L', 'Y', 'C', 'I', 'A', 'N', - 'L', 'Y', 'D', 'I', 'A', 'N', - 'M', 'A', 'C', 'R', 'O', 'N', - 'M', 'A', 'D', 'D', 'A', 'H', - 'M', 'A', 'E', 'L', 'E', 'E', - 'M', 'A', 'E', 'M', 'B', 'A', - 'M', 'A', 'E', 'N', 'Y', 'I', - 'M', 'A', 'G', 'N', 'E', 'T', - 'M', 'A', 'I', 'D', 'E', 'N', - 'M', 'A', 'N', 'C', 'H', 'U', - 'M', 'A', 'N', 'N', 'A', 'Z', - 'M', 'A', 'N', 'U', 'A', 'L', - 'M', 'A', 'R', 'K', '-', '1', - 'M', 'A', 'R', 'K', '-', '2', - 'M', 'A', 'R', 'K', '-', '3', - 'M', 'A', 'R', 'K', '-', '4', - 'M', 'A', 'R', 'K', 'E', 'R', - 'M', 'A', 'R', 'U', 'K', 'U', - 'M', 'A', 'S', 'O', 'R', 'A', - 'M', 'A', 'T', 'R', 'I', 'X', - 'M', 'A', 'X', 'I', 'M', 'A', - 'M', 'B', 'A', 'N', 'Y', 'I', - 'M', 'B', 'E', 'R', 'A', 'E', - 'M', 'B', 'E', 'U', 'R', 'I', - 'M', 'B', 'U', 'A', 'E', 'M', - 'M', 'E', 'C', 'H', 'I', 'K', - 'M', 'E', 'D', 'I', 'A', 'L', - 'M', 'E', 'D', 'I', 'U', 'M', - 'M', 'E', 'E', 'T', 'E', 'I', - 'M', 'E', 'G', 'A', 'L', 'I', - 'M', 'E', 'M', 'B', 'E', 'R', - 'M', 'E', 'N', 'D', 'U', 'T', - 'M', 'E', 'R', 'K', 'H', 'A', - 'M', 'E', 'T', 'R', 'I', 'A', - 'M', 'F', 'E', 'U', 'A', 'E', - 'M', 'F', 'I', 'Y', 'A', 'Q', - 'M', 'G', 'B', 'A', 'S', 'A', - 'M', 'G', 'B', 'E', 'U', 'N', - 'M', 'G', 'B', 'I', 'E', 'E', - 'M', 'I', 'D', 'D', 'L', 'E', - 'M', 'I', 'K', 'R', 'O', 'N', - 'M', 'I', 'L', 'L', 'E', 'T', - 'M', 'I', 'N', 'I', 'M', 'A', - 'M', 'I', 'N', 'N', 'A', 'N', - 'M', 'I', 'R', 'R', 'O', 'R', - 'M', 'O', 'B', 'I', 'L', 'E', - 'M', 'O', 'D', 'E', 'L', 'S', - 'M', 'O', 'D', 'E', 'R', 'N', - 'M', 'O', 'D', 'U', 'L', 'O', - 'M', 'O', 'N', 'K', 'E', 'Y', - 'M', 'O', 'R', 'T', 'A', 'R', - 'M', 'O', 'S', 'Q', 'U', 'E', - 'M', 'O', 'T', 'H', 'E', 'R', - 'M', 'U', 'C', 'A', 'A', 'D', - 'M', 'U', 'N', 'S', 'U', 'B', - 'M', 'U', 'O', 'M', 'A', 'E', - 'M', 'U', 'Q', 'D', 'A', 'M', - 'M', 'U', 'R', 'G', 'U', '2', - 'N', '-', 'C', 'R', 'E', 'E', - 'N', 'A', 'R', 'R', 'O', 'W', - 'N', 'A', 'U', 'D', 'I', 'Z', - 'N', 'A', 'U', 'T', 'H', 'S', - 'N', 'A', 'X', 'I', 'A', 'N', - 'N', 'D', 'O', 'M', 'B', 'U', - 'N', 'E', 'E', 'D', 'L', 'E', - 'N', 'E', 'N', 'A', 'N', 'O', - 'N', 'E', 'S', 'S', 'U', 'S', - 'N', 'E', 'S', 'T', 'E', 'D', - 'N', 'E', 'U', 'T', 'E', 'R', - 'N', 'G', 'A', 'N', 'G', 'U', - 'N', 'G', 'G', 'A', 'A', 'M', - 'N', 'G', 'G', 'E', 'E', 'T', - 'N', 'G', 'G', 'E', 'U', 'X', - 'N', 'G', 'G', 'U', 'O', 'M', - 'N', 'G', 'G', 'U', 'O', 'N', - 'N', 'G', 'G', 'U', 'O', 'Q', - 'N', 'G', 'K', 'E', 'U', 'X', - 'N', 'G', 'K', 'I', 'E', 'E', - 'N', 'G', 'K', 'Y', 'E', 'E', - 'N', 'G', 'U', 'A', 'E', 'T', - 'N', 'I', 'N', 'D', 'A', '2', - 'N', 'I', 'N', 'E', 'T', 'Y', - 'N', 'I', 'R', 'U', 'G', 'U', - 'N', 'J', 'E', 'E', 'E', 'E', - 'N', 'K', 'I', 'N', 'D', 'I', - 'N', 'L', '0', '0', '5', 'A', - 'N', 'L', '0', '1', '7', 'A', - 'N', 'O', 'K', 'H', 'U', 'K', - 'N', 'O', 'R', 'D', 'I', 'C', - 'N', 'O', 'R', 'M', 'A', 'L', - 'N', 'O', 'V', 'I', 'L', 'E', - 'N', 'O', 'Z', 'H', 'K', 'A', - 'N', 'S', 'H', 'I', 'E', 'E', - 'N', 'S', 'H', 'U', 'E', 'T', - 'N', 'S', 'H', 'U', 'O', 'P', - 'N', 'S', 'I', 'E', 'E', 'P', - 'N', 'S', 'I', 'E', 'E', 'T', - 'N', 'U', '0', '1', '0', 'A', - 'N', 'U', '0', '1', '1', 'A', - 'N', 'U', '0', '1', '8', 'A', - 'N', 'U', '0', '2', '2', 'A', - 'N', 'U', 'B', 'I', 'A', 'N', - 'N', 'U', 'M', 'B', 'E', 'R', - 'N', 'U', 'M', 'E', 'R', 'O', - 'O', 'B', 'E', 'L', 'O', 'S', - 'O', 'B', 'E', 'L', 'U', 'S', - 'O', 'B', 'J', 'E', 'C', 'T', - 'O', 'B', 'L', 'A', 'K', 'O', - 'O', 'C', 'H', 'K', 'O', 'M', - 'O', 'C', 'L', 'O', 'C', 'K', - 'O', 'F', 'F', 'I', 'C', 'E', - 'O', 'G', 'O', 'N', 'E', 'K', - 'O', 'L', 'I', 'G', 'O', 'N', - 'O', 'M', 'A', 'L', 'O', 'N', - 'O', 'N', '-', 'O', 'F', 'F', - 'O', 'P', 'E', 'N', '-', 'O', - 'O', 'P', 'E', 'N', '-', 'P', - 'O', 'P', 'P', 'O', 'S', 'E', - 'O', 'P', 'T', 'I', 'O', 'N', - 'O', 'R', 'A', 'N', 'G', 'E', - 'O', 'R', 'C', 'H', 'I', 'D', - 'O', 'R', 'I', 'G', 'I', 'N', - 'O', 'R', 'K', 'H', 'O', 'N', - 'O', 'R', 'N', 'A', 'T', 'E', - 'O', 'T', 'H', 'E', 'R', 'S', - 'O', 'T', 'T', 'A', 'V', 'A', - 'O', 'U', 'N', 'K', 'I', 'A', - 'O', 'U', 'T', 'B', 'O', 'X', - 'O', 'U', 'T', 'P', 'U', 'T', - 'O', 'X', 'E', 'I', 'A', 'I', - 'O', 'Y', 'A', 'N', 'N', 'A', - 'O', 'Y', 'S', 'T', 'E', 'R', - 'P', 'A', 'A', 'R', 'A', 'E', - 'P', 'A', 'A', 'R', 'A', 'M', - 'P', 'A', 'D', 'D', 'L', 'E', - 'P', 'A', 'G', 'O', 'D', 'A', - 'P', 'A', 'H', 'A', 'W', 'H', - 'P', 'A', 'I', 'R', 'E', 'D', - 'P', 'A', 'K', 'P', 'A', 'K', - 'P', 'A', 'L', 'L', 'A', 'S', - 'P', 'A', 'L', 'U', 'T', 'A', - 'P', 'A', 'M', 'A', 'D', 'A', - 'P', 'A', 'R', 'R', 'O', 'T', - 'P', 'A', 'S', 'H', 'A', 'E', - 'P', 'A', 'S', 'H', 'T', 'A', - 'P', 'A', 'S', 'S', 'E', 'D', - 'P', 'E', 'E', 'S', 'H', 'I', - 'P', 'E', 'N', 'C', 'I', 'L', - 'P', 'E', 'N', 'I', 'H', 'I', - 'P', 'E', 'O', 'P', 'L', 'E', - 'P', 'E', 'O', 'R', 'T', 'H', - 'P', 'E', 'P', 'P', 'E', 'R', - 'P', 'E', 'R', 'M', 'I', 'C', - 'P', 'E', 'R', 'N', 'I', 'N', - 'P', 'E', 'R', 'S', 'O', 'N', - 'P', 'E', 'R', 'T', 'H', 'O', - 'P', 'E', 'S', 'E', 'T', 'A', - 'P', 'E', 'U', 'T', 'A', 'E', - 'P', 'H', 'N', 'A', 'E', 'K', - 'P', 'H', 'O', 'L', 'U', 'S', - 'P', 'H', 'O', 'N', 'E', 'S', - 'P', 'H', 'R', 'A', 'S', 'E', - 'P', 'I', 'A', 'S', 'M', 'A', - 'P', 'I', 'C', 'K', 'E', 'T', - 'P', 'I', 'C', 'K', 'U', 'P', - 'P', 'I', 'K', 'U', 'R', 'U', - 'P', 'I', 'N', 'A', 'T', 'A', - 'P', 'I', 'P', 'I', 'N', 'G', - 'P', 'I', 'R', 'A', 'C', 'Y', - 'P', 'I', 'S', 'C', 'E', 'S', - 'P', 'I', 'S', 'T', 'O', 'L', - 'P', 'L', 'A', 'N', 'C', 'K', - 'P', 'L', 'A', 'N', 'E', 'T', - 'P', 'L', 'O', 'P', 'H', 'U', - 'P', 'L', 'U', 'M', 'E', 'D', - 'P', 'L', 'U', 'R', 'A', 'L', - 'P', 'O', 'C', 'K', 'E', 'T', - 'P', 'O', 'E', 'T', 'I', 'C', - 'P', 'O', 'E', 'T', 'R', 'Y', - 'P', 'O', 'I', 'N', 'T', 'O', - 'P', 'O', 'I', 'N', 'T', 'S', - 'P', 'O', 'K', 'O', 'J', 'I', - 'P', 'O', 'L', 'I', 'C', 'E', - 'P', 'O', 'L', 'I', 'S', 'H', - 'P', 'O', 'M', 'M', 'E', 'E', - 'P', 'O', 'O', 'D', 'L', 'E', - 'P', 'O', 'P', 'P', 'E', 'R', - 'P', 'O', 'S', 'T', 'A', 'L', - 'P', 'O', 'T', 'A', 'T', 'O', - 'P', 'O', 'T', 'T', 'E', 'D', - 'P', 'O', 'W', 'D', 'E', 'R', - 'P', 'O', 'W', 'E', 'R', 'S', - 'P', 'R', 'A', 'Y', 'E', 'R', - 'P', 'R', 'I', 'N', 'C', 'E', - 'P', 'R', 'I', 'N', 'T', 'S', - 'P', 'R', 'O', 'T', 'O', 'S', - 'P', 'S', 'I', 'L', 'O', 'N', - 'P', 'T', 'H', 'A', 'H', 'A', - 'P', 'U', 'B', 'L', 'I', 'C', - 'P', 'U', 'F', 'F', 'E', 'D', - 'P', 'U', 'R', 'I', 'F', 'Y', - 'P', 'U', 'R', 'I', 'T', 'Y', - 'P', 'U', 'R', 'P', 'L', 'E', - 'P', 'U', 'Z', 'Z', 'L', 'E', - 'Q', 'A', 'M', 'A', 'T', 'S', - 'Q', 'A', 'R', 'N', 'E', 'Y', - 'Q', 'E', 'T', 'A', 'N', 'A', - 'Q', 'U', 'A', 'O', 'A', 'R', - 'Q', 'U', 'B', 'U', 'T', 'S', - 'R', '-', 'C', 'R', 'E', 'E', - 'R', 'A', 'B', 'B', 'I', 'T', - 'R', 'A', 'C', 'I', 'N', 'G', - 'R', 'A', 'I', 'S', 'E', 'D', - 'R', 'A', 'M', 'B', 'A', 'T', - 'R', 'A', 'S', 'O', 'U', 'L', - 'R', 'E', 'C', 'O', 'R', 'D', - 'R', 'E', 'J', 'A', 'N', 'G', - 'R', 'E', 'M', 'E', 'D', 'Y', - 'R', 'E', 'P', 'E', 'A', 'T', - 'R', 'E', 'T', 'O', 'R', 'T', - 'R', 'E', 'T', 'U', 'R', 'N', - 'R', 'H', 'O', 'T', 'I', 'C', - 'R', 'I', 'B', 'B', 'O', 'N', - 'R', 'I', 'K', 'R', 'I', 'K', - 'R', 'I', 'M', 'G', 'B', 'A', - 'R', 'I', 'N', 'G', 'E', 'D', - 'R', 'I', 'P', 'P', 'L', 'E', - 'R', 'I', 'S', 'I', 'N', 'G', - 'R', 'I', 'T', 'U', 'A', 'L', - 'R', 'N', 'Y', 'I', 'N', 'G', - 'R', 'O', 'C', 'K', 'E', 'T', - 'R', 'O', 'L', 'L', 'E', 'R', - 'R', 'T', 'H', 'A', 'N', 'G', - 'R', 'U', 'N', 'N', 'E', 'R', - 'R', 'U', 'N', 'O', 'U', 'T', - 'S', 'A', 'A', 'D', 'H', 'U', - 'S', 'A', 'F', 'E', 'T', 'Y', - 'S', 'A', 'J', 'D', 'A', 'H', - 'S', 'A', 'L', 'T', '-', '2', - 'S', 'A', 'M', 'E', 'K', 'H', - 'S', 'A', 'M', 'V', 'A', 'T', - 'S', 'A', 'M', 'Y', 'O', 'K', - 'S', 'A', 'N', 'D', 'A', 'L', - 'S', 'A', 'N', 'D', 'H', 'I', - 'S', 'A', 'N', 'G', 'A', '2', - 'S', 'A', 'N', 'N', 'Y', 'A', - 'S', 'A', 'T', 'U', 'R', 'N', - 'S', 'A', 'U', 'C', 'E', 'R', - 'S', 'A', 'Y', 'I', 'S', 'I', - 'S', 'C', 'A', 'L', 'E', 'S', - 'S', 'C', 'H', 'E', 'M', 'A', - 'S', 'C', 'H', 'O', 'O', 'L', - 'S', 'C', 'R', 'E', 'E', 'N', - 'S', 'C', 'R', 'I', 'P', 'T', - 'S', 'C', 'R', 'O', 'L', 'L', - 'S', 'E', 'C', 'A', 'N', 'T', - 'S', 'E', 'C', 'O', 'N', 'D', - 'S', 'E', 'C', 'R', 'E', 'T', - 'S', 'E', 'C', 'T', 'O', 'R', - 'S', 'E', 'I', 'S', 'M', 'A', - 'S', 'E', 'L', 'E', 'N', 'A', - 'S', 'E', 'L', 'F', 'I', 'E', - 'S', 'E', 'R', 'I', 'F', 'S', - 'S', 'E', 'S', 'A', 'M', 'E', - 'S', 'E', 'T', 'F', 'O', 'N', - 'S', 'E', 'U', 'A', 'E', 'Q', - 'S', 'E', 'W', 'I', 'N', 'G', - 'S', 'H', 'A', 'D', 'D', 'A', - 'S', 'H', 'A', 'D', 'E', 'D', - 'S', 'H', 'A', 'K', 'E', 'R', - 'S', 'H', 'A', 'K', 'T', 'I', - 'S', 'H', 'A', 'P', 'E', 'S', - 'S', 'H', 'A', 'V', 'E', 'D', - 'S', 'H', 'E', 'E', 'N', 'U', - 'S', 'H', 'E', 'Q', 'E', 'L', - 'S', 'H', 'E', 'S', 'H', '2', - 'S', 'H', 'E', 'U', 'A', 'E', - 'S', 'H', 'E', 'U', 'O', 'Q', - 'S', 'H', 'I', 'E', 'L', 'D', - 'S', 'H', 'I', 'N', 'D', 'A', - 'S', 'H', 'I', 'N', 'I', 'G', - 'S', 'H', 'I', 'N', 'T', 'O', - 'S', 'H', 'I', 'R', 'A', 'E', - 'S', 'H', 'O', 'R', 'T', 'S', - 'S', 'H', 'O', 'V', 'E', 'L', - 'S', 'H', 'O', 'W', 'E', 'R', - 'S', 'H', 'R', 'I', 'M', 'P', - 'S', 'H', 'R', 'I', 'N', 'E', - 'S', 'H', 'U', 'B', 'U', 'R', - 'S', 'H', 'Y', 'E', 'L', 'E', - 'S', 'I', 'C', 'K', 'L', 'E', - 'S', 'I', 'D', 'D', 'H', 'I', - 'S', 'I', 'L', 'V', 'E', 'R', - 'S', 'I', 'N', 'D', 'H', 'I', - 'S', 'I', 'N', 'G', 'L', 'E', - 'S', 'I', 'R', 'R', 'A', 'H', - 'S', 'I', 'X', 'T', 'H', 'S', - 'S', 'K', 'E', 'W', 'E', 'D', - 'S', 'L', 'E', 'E', 'P', 'Y', - 'S', 'L', 'E', 'U', 'T', 'H', - 'S', 'L', 'I', 'D', 'E', 'R', - 'S', 'L', 'O', 'W', 'L', 'Y', - 'S', 'O', 'C', 'C', 'E', 'R', - 'S', 'O', 'N', 'J', 'A', 'M', - 'S', 'O', 'U', 'N', 'A', 'P', - 'S', 'O', 'U', 'R', 'C', 'E', - 'S', 'O', 'W', 'I', 'L', 'O', - 'S', 'P', 'A', 'D', 'E', 'S', - 'S', 'P', 'A', 'R', 'S', 'E', - 'S', 'P', 'A', 'T', 'H', 'I', - 'S', 'P', 'E', 'E', 'C', 'H', - 'S', 'P', 'I', 'D', 'E', 'R', - 'S', 'P', 'I', 'R', 'A', 'L', - 'S', 'P', 'I', 'R', 'I', 'T', - 'S', 'P', 'O', 'K', 'E', 'D', - 'S', 'P', 'O', 'N', 'G', 'E', - 'S', 'P', 'O', 'R', 'T', 'S', - 'S', 'P', 'R', 'E', 'A', 'D', - 'S', 'P', 'R', 'I', 'N', 'G', - 'S', 'P', 'R', 'O', 'U', 'T', - 'S', 'P', 'U', 'N', 'G', 'S', - 'S', 'Q', 'U', 'A', 'R', 'E', - 'S', 'Q', 'U', 'I', 'S', 'H', - 'S', 'R', 'E', 'D', 'N', 'E', - 'S', 'T', 'A', 'T', 'U', 'E', - 'S', 'T', 'A', 'T', 'Y', 'A', - 'S', 'T', 'E', 'A', 'M', 'Y', - 'S', 'T', 'E', 'M', '-', '2', - 'S', 'T', 'E', 'M', '-', '3', - 'S', 'T', 'E', 'M', '-', '4', - 'S', 'T', 'E', 'P', '-', '1', - 'S', 'T', 'E', 'P', '-', '2', - 'S', 'T', 'E', 'R', 'E', 'O', - 'S', 'T', 'I', 'G', 'M', 'A', - 'S', 'T', 'I', 'M', 'M', 'E', - 'S', 'T', 'R', 'A', 'I', 'F', - 'S', 'T', 'R', 'E', 'L', 'A', - 'S', 'T', 'R', 'E', 'S', 'S', - 'S', 'T', 'R', 'I', 'D', 'E', - 'S', 'T', 'R', 'I', 'K', 'E', - 'S', 'T', 'R', 'I', 'P', 'E', - 'S', 'T', 'R', 'O', 'K', 'E', - 'S', 'T', 'R', 'O', 'N', 'G', - 'S', 'T', 'U', 'D', 'I', 'O', - 'S', 'U', 'B', 'I', 'T', 'O', - 'S', 'U', 'B', 'S', 'E', 'T', - 'S', 'U', 'C', 'K', 'E', 'D', - 'S', 'U', 'L', 'F', 'U', 'R', - 'S', 'U', 'M', 'A', 'S', 'H', - 'S', 'U', 'M', 'M', 'E', 'R', - 'S', 'U', 'N', 'S', 'E', 'T', - 'S', 'U', 'R', 'A', 'N', 'G', - 'S', 'U', 'R', 'F', 'E', 'R', - 'S', 'V', 'A', 'S', 'T', 'I', - 'S', 'V', 'E', 'T', 'L', 'O', - 'S', 'V', 'E', 'T', 'L', 'Y', - 'S', 'W', 'O', 'R', 'D', 'S', - 'S', 'Y', 'L', 'O', 'T', 'I', - 'S', 'Y', 'M', 'B', 'O', 'L', - 'S', 'Y', 'N', 'A', 'F', 'I', - 'S', 'Y', 'O', 'U', 'W', 'A', - 'S', 'Y', 'R', 'I', 'A', 'C', - 'T', 'A', '-', 'R', 'O', 'L', - 'T', 'A', 'H', 'A', 'L', 'A', - 'T', 'A', 'I', 'L', 'E', 'D', - 'T', 'A', 'L', 'E', 'N', 'T', - 'T', 'A', 'L', 'I', 'N', 'G', - 'T', 'A', 'M', 'A', 'L', 'E', - 'T', 'A', 'M', 'I', 'N', 'G', - 'T', 'A', 'N', 'G', 'S', 'A', - 'T', 'A', 'N', 'G', 'U', 'T', - 'T', 'A', 'N', 'N', 'E', 'D', - 'T', 'A', 'R', 'G', 'E', 'T', - 'T', 'A', 'R', 'T', 'A', 'R', - 'T', 'A', 'R', 'U', 'N', 'G', - 'T', 'A', 'U', 'R', 'U', 'S', - 'T', 'E', 'A', 'C', 'U', 'P', - 'T', 'E', 'A', 'P', 'O', 'T', - 'T', 'E', 'D', 'U', 'N', 'G', - 'T', 'E', 'L', 'E', 'I', 'A', - 'T', 'E', 'L', 'L', 'E', 'R', - 'T', 'E', 'L', 'O', 'U', 'S', - 'T', 'E', 'L', 'U', 'G', 'U', - 'T', 'E', 'M', 'P', 'L', 'E', - 'T', 'E', 'M', 'P', 'U', 'S', - 'T', 'E', 'N', 'N', 'I', 'S', - 'T', 'E', 'N', 'U', 'T', 'O', - 'T', 'E', 'U', 'A', 'E', 'N', - 'T', 'E', 'U', 'A', 'E', 'Q', - 'T', 'H', 'A', 'A', 'L', 'U', - 'T', 'H', 'A', 'A', 'N', 'A', - 'T', 'H', 'A', 'H', 'A', 'N', - 'T', 'H', 'A', 'N', 'N', 'A', - 'T', 'H', 'E', 'T', 'H', 'E', - 'T', 'H', 'I', 'R', 'D', 'S', - 'T', 'H', 'I', 'R', 'T', 'Y', - 'T', 'H', 'I', 'U', 'T', 'H', - 'T', 'H', 'R', 'E', 'A', 'D', - 'T', 'H', 'U', 'M', 'B', 'S', - 'T', 'H', 'Y', 'O', 'O', 'M', - 'T', 'I', 'C', 'K', 'E', 'T', - 'T', 'I', 'K', 'E', 'U', 'T', - 'T', 'I', 'P', 'E', 'H', 'A', - 'T', 'I', 'R', 'Y', 'A', 'K', - 'T', 'O', 'C', 'H', 'K', 'A', - 'T', 'O', 'D', 'H', 'R', 'I', - 'T', 'O', 'I', 'L', 'E', 'T', - 'T', 'O', 'L', 'O', 'N', 'G', - 'T', 'O', 'M', 'A', 'T', 'O', - 'T', 'O', 'N', 'E', '-', '1', - 'T', 'O', 'N', 'E', '-', '2', - 'T', 'O', 'N', 'E', '-', '3', - 'T', 'O', 'N', 'E', '-', '4', - 'T', 'O', 'N', 'E', '-', '5', - 'T', 'O', 'N', 'E', '-', '6', - 'T', 'O', 'N', 'E', '-', '7', - 'T', 'O', 'N', 'E', '-', '8', - 'T', 'O', 'N', 'E', '-', 'B', - 'T', 'O', 'N', 'E', '-', 'D', - 'T', 'O', 'N', 'E', '-', 'G', - 'T', 'O', 'N', 'E', '-', 'J', - 'T', 'O', 'N', 'E', '-', 'M', - 'T', 'O', 'N', 'E', '-', 'S', - 'T', 'O', 'N', 'E', '-', 'V', - 'T', 'O', 'N', 'G', 'U', 'E', - 'T', 'O', 'P', 'B', 'A', 'R', - 'T', 'R', 'I', 'P', 'L', 'E', - 'T', 'R', 'I', 'P', 'L', 'I', - 'T', 'R', 'I', 'P', 'O', 'D', - 'T', 'R', 'I', 'T', 'O', 'S', - 'T', 'R', 'O', 'P', 'H', 'Y', - 'T', 'S', 'H', 'E', 'E', 'J', - 'T', 'S', 'H', 'O', 'O', 'J', - 'T', 'S', 'H', 'O', 'O', 'K', - 'T', 'S', 'H', 'U', 'G', 'S', - 'T', 'T', 'E', 'H', 'E', 'H', - 'T', 'U', 'A', 'R', 'E', 'G', - 'T', 'U', 'G', 'R', 'I', 'K', - 'T', 'U', 'R', 'B', 'A', 'N', - 'T', 'U', 'R', 'K', 'E', 'Y', - 'T', 'U', 'R', 'K', 'I', 'C', - 'T', 'U', 'R', 'N', 'E', 'D', - 'T', 'U', 'R', 'T', 'L', 'E', - 'T', 'U', 'X', 'E', 'D', 'O', - 'T', 'V', 'R', 'I', 'D', 'O', - 'T', 'W', 'E', 'L', 'V', 'E', - 'T', 'W', 'E', 'N', 'T', 'Y', - 'T', 'W', 'O', '-', 'E', 'M', - 'T', 'X', 'H', 'E', 'E', 'J', - 'T', 'Y', 'P', 'E', '-', '1', - 'T', 'Y', 'P', 'E', '-', '2', - 'T', 'Y', 'P', 'E', '-', '3', - 'T', 'Y', 'P', 'E', '-', '4', - 'T', 'Y', 'P', 'E', '-', '5', - 'T', 'Y', 'P', 'E', '-', '6', - 'T', 'Y', 'P', 'E', '-', '7', - 'U', 'D', 'A', 'R', 'K', 'A', - 'U', 'D', 'A', 'T', 'T', 'A', - 'U', 'I', 'G', 'H', 'U', 'R', - 'U', 'N', 'E', 'V', 'E', 'N', - 'U', 'N', 'I', 'T', 'E', 'D', - 'U', 'P', 'T', 'U', 'R', 'N', - 'U', 'P', 'W', 'A', 'R', 'D', - 'U', 'R', 'A', 'N', 'U', 'S', - 'U', 'S', 'H', 'U', 'M', 'X', - 'U', 'Y', 'A', 'N', 'N', 'A', - 'U', 'Y', 'G', 'H', 'U', 'R', - 'V', 'A', 'L', 'L', 'E', 'Y', - 'V', 'A', 'R', 'E', 'I', 'A', - 'V', 'A', 'R', 'I', 'K', 'A', - 'V', 'E', 'C', 'T', 'O', 'R', - 'V', 'E', 'R', 'T', 'E', 'X', - 'V', 'E', 'S', 'S', 'E', 'L', - 'V', 'I', 'D', 'J', '-', '2', - 'V', 'I', 'E', 'W', 'E', 'R', - 'V', 'I', 'O', 'L', 'I', 'N', - 'V', 'I', 'R', 'A', 'M', 'A', - 'V', 'I', 'R', 'I', 'A', 'M', - 'V', 'O', 'I', 'C', 'E', 'D', - 'V', 'O', 'I', 'D', 'E', 'D', - 'V', 'O', 'L', 'U', 'M', 'E', - 'V', 'R', 'A', 'C', 'H', 'Y', - 'V', 'U', 'L', 'G', 'A', 'R', - 'V', 'Y', 'S', 'O', 'K', 'O', - 'W', 'A', 'A', 'J', 'I', 'B', - 'W', 'A', 'F', 'F', 'L', 'E', - 'W', 'A', 'L', 'L', 'E', 'D', - 'W', 'A', 'N', 'C', 'H', 'O', - 'W', 'A', 'N', 'I', 'N', 'G', - 'W', 'A', 'R', 'A', 'N', 'G', - 'W', 'A', 'V', 'I', 'N', 'G', - 'W', 'A', 'X', 'I', 'N', 'G', - 'W', 'E', 'A', 'P', 'O', 'N', - 'W', 'E', 'I', 'G', 'H', 'T', - 'W', 'I', 'G', 'G', 'L', 'Y', - 'W', 'I', 'L', 'T', 'E', 'D', - 'W', 'I', 'N', 'D', 'O', 'W', - 'W', 'I', 'N', 'T', 'E', 'R', - 'W', 'I', 'T', 'H', 'I', 'N', - 'W', 'O', 'L', 'O', 'S', 'O', - 'W', 'O', 'M', 'A', 'N', 'S', - 'W', 'O', 'M', 'E', 'N', 'S', - 'W', 'O', 'R', 'K', 'E', 'R', - 'W', 'R', 'E', 'A', 'T', 'H', - 'W', 'R', 'E', 'N', 'C', 'H', - 'X', 'E', 'S', 'T', 'E', 'S', - 'Y', '-', 'C', 'R', 'E', 'E', - 'Y', 'A', 'K', 'A', 'S', 'H', - 'Y', 'E', 'L', 'L', 'O', 'W', - 'Y', 'E', 'O', '-', 'Y', 'A', - 'Y', 'E', 'U', 'A', 'E', 'T', - 'Y', 'E', 'U', 'R', 'A', 'E', - 'Y', 'E', 'Z', 'I', 'D', 'I', - 'Y', 'F', 'E', 'S', 'I', 'S', - 'Y', 'O', '-', 'Y', 'A', 'E', - 'Y', 'O', '-', 'Y', 'E', 'O', - 'Y', 'P', 'S', 'I', 'L', 'I', - 'Y', 'U', '-', 'Y', 'E', 'O', - 'Z', 'E', 'M', 'L', 'J', 'A', - 'Z', 'E', 'M', 'L', 'Y', 'A', - 'Z', 'H', 'A', 'Y', 'I', 'N', - 'Z', 'I', 'G', 'Z', 'A', 'G', - 'Z', 'O', 'M', 'B', 'I', 'E', - 'Z', 'Q', 'A', 'P', 'H', 'A', - 'Z', 'W', 'N', 'B', 'S', 'P', - 'A', 'A', 'Y', 'A', 'N', 'N', 'A', - 'A', 'B', 'A', 'F', 'I', 'L', 'I', - 'A', 'B', 'Y', 'S', 'M', 'A', 'L', - 'A', 'C', 'A', 'D', 'E', 'M', 'Y', - 'A', 'C', 'C', 'O', 'U', 'N', 'T', - 'A', 'D', 'D', 'R', 'E', 'S', 'S', - 'A', 'D', 'M', 'E', 'T', 'O', 'S', - 'A', 'D', 'V', 'A', 'N', 'C', 'E', - 'A', 'E', 'Y', 'A', 'N', 'N', 'A', - 'A', 'F', 'G', 'H', 'A', 'N', 'I', - 'A', 'F', 'R', 'I', 'C', 'A', 'N', - 'A', 'G', 'A', 'I', 'N', 'S', 'T', - 'A', 'H', 'A', 'G', 'G', 'A', 'R', - 'A', 'I', 'V', 'I', 'L', 'I', 'K', - 'A', 'I', 'Y', 'A', 'N', 'N', 'A', - 'A', 'L', 'A', 'Y', 'H', 'A', 'A', - 'A', 'L', 'A', 'Y', 'H', 'I', 'M', - 'A', 'L', 'A', 'Y', 'N', 'A', 'A', - 'A', 'L', 'E', 'M', 'B', 'I', 'C', - 'A', 'L', 'I', 'G', 'N', 'E', 'D', - 'A', 'L', 'L', 'A', 'A', 'H', 'U', - 'A', 'L', 'L', 'A', 'H', 'O', 'U', - 'A', 'M', 'A', 'L', 'G', 'A', 'M', - 'A', 'M', 'P', 'H', 'O', 'R', 'A', - 'A', 'N', '-', 'N', 'I', 'S', 'F', - 'A', 'N', 'G', 'U', 'L', 'A', 'R', - 'A', 'N', 'H', 'U', 'M', 'A', 'A', - 'A', 'N', 'H', 'U', 'N', 'N', 'A', - 'A', 'N', 'N', 'U', 'I', 'T', 'Y', - 'A', 'N', 'T', 'E', 'N', 'N', 'A', - 'A', 'P', 'O', 'L', 'L', 'O', 'N', - 'A', 'P', 'O', 'T', 'H', 'E', 'S', - 'A', 'R', 'A', 'B', 'I', 'A', 'N', - 'A', 'R', 'A', 'E', 'A', '-', 'A', - 'A', 'R', 'A', 'E', 'A', '-', 'E', - 'A', 'R', 'A', 'E', 'A', '-', 'I', - 'A', 'R', 'A', 'E', 'A', '-', 'U', - 'A', 'R', 'A', 'M', 'A', 'I', 'C', - 'A', 'R', 'C', 'H', 'A', 'I', 'C', - 'A', 'R', 'K', 'A', 'A', 'N', 'U', - 'A', 'R', 'K', 'T', 'I', 'K', 'O', - 'A', 'R', 'S', 'E', 'N', 'I', 'C', - 'A', 'S', 'T', 'R', 'A', 'E', 'A', - 'A', 'U', 'S', 'T', 'R', 'A', 'L', - 'A', 'U', 'Y', 'A', 'N', 'N', 'A', - 'A', 'V', 'E', 'R', 'A', 'G', 'E', - 'A', 'V', 'E', 'S', 'T', 'A', 'N', - 'A', 'V', 'O', 'C', 'A', 'D', 'O', - 'B', 'A', 'A', 'R', 'E', 'R', 'U', - 'B', 'A', 'G', 'G', 'A', 'G', 'E', - 'B', 'A', 'I', 'R', 'K', 'A', 'N', - 'B', 'A', 'L', 'L', 'O', 'O', 'N', - 'B', 'A', 'M', 'B', 'O', 'O', 'S', - 'B', 'A', 'N', 'D', 'A', 'G', 'E', - 'B', 'A', 'R', 'L', 'I', 'N', 'E', - 'B', 'A', 'R', 'R', 'E', 'K', 'H', - 'B', 'A', 'R', 'R', 'I', 'E', 'R', - 'B', 'A', 'S', 'H', 'K', 'I', 'R', - 'B', 'A', 'T', 'H', 'T', 'U', 'B', - 'B', 'A', 'T', 'T', 'E', 'R', 'Y', - 'B', 'A', 'Y', 'A', 'N', 'N', 'A', - 'B', 'E', 'A', 'R', 'D', 'E', 'D', - 'B', 'E', 'A', 'T', 'I', 'N', 'G', - 'B', 'E', 'C', 'A', 'U', 'S', 'E', - 'B', 'E', 'E', 'H', 'I', 'V', 'E', - 'B', 'E', 'L', 'L', 'H', 'O', 'P', - 'B', 'E', 'N', 'G', 'A', 'L', 'I', - 'B', 'E', 'N', 'Z', 'E', 'N', 'E', - 'B', 'E', 'T', 'W', 'E', 'E', 'N', - 'B', 'I', 'C', 'Y', 'C', 'L', 'E', - 'B', 'I', 'N', 'D', 'I', 'N', 'G', - 'B', 'I', 'S', 'M', 'U', 'T', 'H', - 'B', 'I', 'T', 'C', 'O', 'I', 'N', - 'B', 'J', 'A', 'R', 'K', 'A', 'N', - 'B', 'L', 'E', 'N', 'D', 'E', 'D', - 'B', 'L', 'O', 'C', 'K', '-', '2', - 'B', 'L', 'O', 'C', 'K', '-', '3', - 'B', 'L', 'O', 'C', 'K', '-', '4', - 'B', 'L', 'O', 'C', 'K', '-', '5', - 'B', 'L', 'O', 'C', 'K', '-', '6', - 'B', 'L', 'O', 'C', 'K', '-', '7', - 'B', 'L', 'O', 'S', 'S', 'O', 'M', - 'B', 'L', 'O', 'W', 'I', 'N', 'G', - 'B', 'O', 'O', 'S', 'T', 'E', 'R', - 'B', 'O', 'R', 'A', 'X', '-', '2', - 'B', 'O', 'R', 'A', 'X', '-', '3', - 'B', 'O', 'R', 'Z', 'A', 'Y', 'A', - 'B', 'O', 'U', 'Q', 'U', 'E', 'T', - 'B', 'O', 'W', 'L', 'I', 'N', 'G', - 'B', 'R', 'A', 'C', 'K', 'E', 'T', - 'B', 'R', 'A', 'I', 'L', 'L', 'E', - 'B', 'R', 'A', 'K', 'C', 'E', 'T', - 'B', 'R', 'E', 'A', 'T', 'H', 'Y', - 'B', 'R', 'I', 'S', 'T', 'L', 'E', - 'B', 'U', 'B', 'B', 'L', 'E', 'S', - 'B', 'U', 'F', 'F', 'A', 'L', 'O', - 'B', 'U', 'R', 'R', 'I', 'T', 'O', - 'B', 'U', 'U', 'M', 'I', 'S', 'H', - 'C', 'A', 'B', 'I', 'N', 'E', 'T', - 'C', 'A', 'E', 'S', 'U', 'R', 'A', - 'C', 'A', 'M', 'P', 'I', 'N', 'G', - 'C', 'A', 'P', 'I', 'T', 'A', 'L', - 'C', 'A', 'P', 'T', 'I', 'V', 'E', - 'C', 'A', 'R', 'R', 'I', 'E', 'R', - 'C', 'A', 'U', 'D', 'A', 'T', 'E', - 'C', 'A', 'U', 'T', 'I', 'O', 'N', - 'C', 'A', 'Y', 'A', 'N', 'N', 'A', - 'C', 'E', 'D', 'I', 'L', 'L', 'A', - 'C', 'E', 'I', 'L', 'I', 'N', 'G', - 'C', 'E', 'L', 'S', 'I', 'U', 'S', - 'C', 'E', 'N', 'T', 'R', 'E', 'D', - 'C', 'H', 'A', 'M', 'I', 'L', 'I', - 'C', 'H', 'A', 'P', 'T', 'E', 'R', - 'C', 'H', 'A', 'R', 'I', 'O', 'T', - 'C', 'H', 'A', 'S', 'H', 'K', 'A', - 'C', 'H', 'E', 'C', 'K', 'E', 'R', - 'C', 'H', 'E', 'I', 'N', 'A', 'P', - 'C', 'H', 'E', 'V', 'R', 'O', 'N', - 'C', 'H', 'I', 'C', 'K', 'E', 'N', - 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'C', 'H', 'I', 'N', 'E', 'S', 'E', - 'C', 'H', 'I', 'N', 'O', 'O', 'K', - 'C', 'H', 'R', 'O', 'N', 'O', 'N', - 'C', 'H', 'R', 'O', 'N', 'O', 'U', - 'C', 'I', 'R', 'C', 'L', 'E', 'D', - 'C', 'I', 'R', 'C', 'L', 'E', 'S', - 'C', 'L', 'A', 'P', 'P', 'E', 'R', - 'C', 'L', 'E', 'A', 'V', 'E', 'R', - 'C', 'L', 'O', 'S', 'I', 'N', 'G', - 'C', 'L', 'O', 'S', 'U', 'R', 'E', - 'C', 'L', 'O', 'T', 'H', 'E', 'S', - 'C', 'L', 'U', 'S', 'T', 'E', 'R', - 'C', 'O', 'A', 'S', 'T', 'E', 'R', - 'C', 'O', 'C', 'O', 'N', 'U', 'T', - 'C', 'O', 'M', 'P', 'A', 'R', 'E', - 'C', 'O', 'M', 'P', 'A', 'S', 'S', - 'C', 'O', 'N', 'I', 'C', 'A', 'L', - 'C', 'O', 'N', 'T', 'A', 'C', 'T', - 'C', 'O', 'N', 'T', 'A', 'I', 'N', - 'C', 'O', 'N', 'T', 'O', 'U', 'R', - 'C', 'O', 'N', 'T', 'R', 'O', 'L', - 'C', 'O', 'O', 'K', 'I', 'N', 'G', - 'C', 'O', 'R', 'N', 'E', 'R', 'S', - 'C', 'O', 'R', 'N', 'I', 'S', 'H', - 'C', 'O', 'R', 'O', 'N', 'I', 'S', - 'C', 'O', 'R', 'R', 'E', 'C', 'T', - 'C', 'O', 'U', 'N', 'C', 'I', 'L', - 'C', 'R', 'A', 'C', 'K', 'E', 'R', - 'C', 'R', 'I', 'C', 'K', 'E', 'T', - 'C', 'R', 'O', 'S', 'S', 'E', 'D', - 'C', 'R', 'Y', 'S', 'T', 'A', 'L', - 'C', 'U', 'P', 'C', 'A', 'K', 'E', - 'C', 'U', 'R', 'L', 'I', 'N', 'G', - 'C', 'U', 'R', 'R', 'E', 'N', 'T', - 'C', 'U', 'R', 'S', 'I', 'V', 'E', - 'C', 'U', 'R', 'V', 'I', 'N', 'G', - 'C', 'U', 'S', 'T', 'A', 'R', 'D', - 'C', 'U', 'S', 'T', 'O', 'M', 'S', - 'C', 'W', 'E', 'O', 'R', 'T', 'H', - 'C', 'Y', 'C', 'L', 'O', 'N', 'E', - 'C', 'Y', 'P', 'E', 'R', 'U', 'S', - 'C', 'Y', 'P', 'R', 'I', 'O', 'T', - 'D', 'A', 'G', 'A', 'L', 'G', 'A', - 'D', 'A', 'M', 'A', 'G', 'E', 'D', - 'D', 'A', 'N', 'C', 'I', 'N', 'G', - 'D', 'A', 'N', 'T', 'A', 'J', 'A', - 'D', 'A', 'P', '-', 'B', 'E', 'I', - 'D', 'A', 'P', '-', 'P', 'I', 'I', - 'D', 'A', 'Y', 'A', 'N', 'N', 'A', - 'D', 'E', 'C', 'A', 'Y', 'E', 'D', - 'D', 'E', 'C', 'I', 'M', 'A', 'L', - 'D', 'E', 'G', 'R', 'E', 'E', 'S', - 'D', 'E', 'L', 'P', 'H', 'I', 'C', - 'D', 'E', 'S', 'E', 'R', 'E', 'T', - 'D', 'E', 'S', 'K', 'T', 'O', 'P', - 'D', 'H', 'A', 'L', 'A', 'T', 'H', - 'D', 'H', 'A', 'L', 'E', 'T', 'H', - 'D', 'H', 'A', 'M', 'E', 'D', 'H', - 'D', 'I', 'A', 'M', 'O', 'N', 'D', - 'D', 'I', 'A', 'R', 'G', 'O', 'N', - 'D', 'I', 'G', 'A', 'M', 'M', 'A', - 'D', 'I', 'G', 'R', 'A', 'P', 'H', - 'D', 'I', 'M', 'I', 'D', 'I', 'A', - 'D', 'I', 'M', 'M', 'I', 'N', 'G', - 'D', 'I', 'N', 'G', 'B', 'A', 'T', - 'D', 'I', 'P', 'L', 'O', 'U', 'N', - 'D', 'I', 'S', 'I', 'M', 'O', 'U', - 'D', 'I', 'S', 'T', 'I', 'L', 'L', - 'D', 'I', 'V', 'I', 'D', 'E', 'D', - 'D', 'I', 'V', 'I', 'D', 'E', 'R', - 'D', 'I', 'V', 'I', 'D', 'E', 'S', - 'D', 'I', 'V', 'O', 'R', 'C', 'E', - 'D', 'O', 'L', 'P', 'H', 'I', 'N', - 'D', 'O', 'T', 'L', 'E', 'S', 'S', - 'D', 'O', 'T', 'S', '-', '1', '2', - 'D', 'O', 'T', 'S', '-', '1', '3', - 'D', 'O', 'T', 'S', '-', '1', '4', - 'D', 'O', 'T', 'S', '-', '1', '5', - 'D', 'O', 'T', 'S', '-', '1', '6', - 'D', 'O', 'T', 'S', '-', '1', '7', - 'D', 'O', 'T', 'S', '-', '1', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', - 'D', 'O', 'T', 'S', '-', '2', '4', - 'D', 'O', 'T', 'S', '-', '2', '5', - 'D', 'O', 'T', 'S', '-', '2', '6', - 'D', 'O', 'T', 'S', '-', '2', '7', - 'D', 'O', 'T', 'S', '-', '2', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', - 'D', 'O', 'T', 'S', '-', '3', '5', - 'D', 'O', 'T', 'S', '-', '3', '6', - 'D', 'O', 'T', 'S', '-', '3', '7', - 'D', 'O', 'T', 'S', '-', '3', '8', - 'D', 'O', 'T', 'S', '-', '4', '5', - 'D', 'O', 'T', 'S', '-', '4', '6', - 'D', 'O', 'T', 'S', '-', '4', '7', - 'D', 'O', 'T', 'S', '-', '4', '8', - 'D', 'O', 'T', 'S', '-', '5', '6', - 'D', 'O', 'T', 'S', '-', '5', '7', - 'D', 'O', 'T', 'S', '-', '5', '8', - 'D', 'O', 'T', 'S', '-', '6', '7', - 'D', 'O', 'T', 'S', '-', '6', '8', - 'D', 'O', 'T', 'S', '-', '7', '8', - 'D', 'O', 'U', 'B', 'L', 'E', 'D', - 'D', 'R', 'A', 'C', 'H', 'M', 'A', - 'D', 'R', 'O', 'P', 'L', 'E', 'T', - 'D', 'Y', 'N', 'A', 'M', 'I', 'C', - 'E', 'A', 'B', 'H', 'A', 'D', 'H', - 'E', 'A', 'D', 'H', 'A', 'D', 'H', - 'E', 'A', 'R', 'T', 'H', 'L', 'Y', - 'E', 'A', 'S', 'T', 'E', 'R', 'N', - 'E', 'B', 'E', 'F', 'I', 'L', 'I', - 'E', 'C', 'L', 'I', 'P', 'S', 'E', - 'E', 'E', 'Y', 'A', 'N', 'N', 'A', - 'E', 'I', 'G', 'H', 'T', 'H', 'S', - 'E', 'L', 'A', 'F', 'R', 'O', 'N', - 'E', 'L', 'A', 'M', 'I', 'T', 'E', - 'E', 'L', 'B', 'A', 'S', 'A', 'N', - 'E', 'L', 'E', 'M', 'E', 'N', 'T', - 'E', 'L', 'L', 'I', 'P', 'S', 'E', - 'E', 'L', 'Y', 'M', 'A', 'I', 'C', - 'E', 'N', 'A', 'R', 'X', 'I', 'S', - 'E', 'N', 'Q', 'U', 'I', 'R', 'Y', - 'E', 'N', 'T', 'R', 'Y', '-', '1', - 'E', 'N', 'T', 'R', 'Y', '-', '2', - 'E', 'P', 'S', 'I', 'L', 'O', 'N', - 'E', 'T', 'N', 'A', 'H', 'T', 'A', - 'E', 'V', 'E', 'N', 'I', 'N', 'G', - 'E', 'Y', 'E', 'B', 'R', 'O', 'W', - 'F', 'A', 'C', 'I', 'N', 'G', 'S', - 'F', 'A', 'C', 'T', 'O', 'R', 'Y', - 'F', 'A', 'I', 'L', 'U', 'R', 'E', - 'F', 'A', 'L', 'A', 'F', 'E', 'L', - 'F', 'A', 'L', 'L', 'I', 'N', 'G', - 'F', 'A', 'T', 'I', 'G', 'U', 'E', - 'F', 'A', 'Y', 'A', 'N', 'N', 'A', - 'F', 'E', 'A', 'R', 'F', 'U', 'L', - 'F', 'E', 'A', 'T', 'H', 'E', 'R', - 'F', 'E', 'R', 'M', 'A', 'T', 'A', - 'F', 'I', 'F', 'T', 'E', 'E', 'N', - 'F', 'I', 'N', 'G', 'E', 'R', 'S', - 'F', 'I', 'S', 'H', 'E', 'Y', 'E', - 'F', 'I', 'S', 'H', 'I', 'N', 'G', - 'F', 'L', 'E', 'U', 'R', 'O', 'N', - 'F', 'L', 'O', 'W', 'E', 'R', 'S', - 'F', 'L', 'O', 'W', 'I', 'N', 'G', - 'F', 'L', 'U', 'S', 'H', 'E', 'D', - 'F', 'O', 'L', 'D', 'I', 'N', 'G', - 'F', 'O', 'N', 'G', 'M', 'A', 'N', - 'F', 'O', 'R', 'K', 'I', 'N', 'G', - 'F', 'O', 'R', 'T', 'U', 'N', 'E', - 'F', 'O', 'R', 'W', 'A', 'R', 'D', - 'F', 'R', 'A', 'K', 'T', 'U', 'R', - 'F', 'R', 'A', 'M', 'E', '-', '1', - 'F', 'R', 'A', 'M', 'E', '-', '2', - 'F', 'R', 'A', 'M', 'E', '-', '3', - 'F', 'R', 'A', 'M', 'E', '-', '4', - 'F', 'U', 'N', 'E', 'R', 'A', 'L', - 'G', 'A', 'A', 'H', 'L', 'A', 'A', - 'G', 'A', 'R', 'M', 'E', 'N', 'T', - 'G', 'A', 'Y', 'A', 'N', 'N', 'A', - 'G', 'E', 'N', 'E', 'R', 'A', 'L', - 'G', 'E', 'N', 'E', 'R', 'I', 'C', - 'G', 'E', 'S', 'H', 'T', 'I', 'N', - 'G', 'E', 'S', 'T', 'U', 'R', 'E', - 'G', 'H', 'A', 'A', 'M', 'A', 'E', - 'G', 'I', 'B', 'B', 'O', 'U', 'S', - 'G', 'I', 'R', 'A', 'F', 'F', 'E', - 'G', 'I', 'R', 'U', 'D', 'A', 'A', - 'G', 'L', 'A', 'G', 'O', 'L', 'I', - 'G', 'L', 'A', 'S', 'S', 'E', 'S', - 'G', 'L', 'O', 'T', 'T', 'A', 'L', - 'G', 'L', 'O', 'W', 'I', 'N', 'G', - 'G', 'O', '-', 'K', 'A', 'R', 'T', - 'G', 'O', 'G', 'G', 'L', 'E', 'S', - 'G', 'O', 'R', 'A', 'Z', 'D', 'O', - 'G', 'O', 'R', 'I', 'L', 'L', 'A', - 'G', 'R', 'A', 'D', 'U', 'A', 'L', - 'G', 'R', 'A', 'N', 'T', 'H', 'A', - 'G', 'R', 'E', 'A', 'T', 'E', 'R', - 'G', 'R', 'O', 'W', 'I', 'N', 'G', - 'G', 'U', 'A', 'R', 'A', 'N', 'I', - 'G', 'U', 'N', 'J', 'A', 'L', 'A', - 'H', 'A', 'F', 'U', 'K', 'H', 'A', - 'H', 'A', 'I', 'R', 'C', 'U', 'T', - 'H', 'A', 'L', 'A', 'N', 'T', 'A', - 'H', 'A', 'L', 'B', 'E', 'R', 'D', - 'H', 'A', 'M', 'S', 'T', 'E', 'R', - 'H', 'A', 'N', 'D', 'B', 'A', 'G', - 'H', 'A', 'N', 'D', 'L', 'E', 'S', - 'H', 'A', 'N', 'U', 'N', 'O', 'O', - 'H', 'A', 'R', 'P', 'O', 'O', 'N', - 'H', 'A', 'S', 'A', 'N', 'T', 'A', - 'H', 'A', 'Y', 'A', 'N', 'N', 'A', - 'H', 'E', '-', 'G', 'O', 'A', 'T', - 'H', 'E', 'A', 'D', 'I', 'N', 'G', - 'H', 'E', 'A', 'R', 'I', 'N', 'G', - 'H', 'E', 'R', 'A', 'E', 'U', 'M', - 'H', 'E', 'X', 'A', 'G', 'O', 'N', - 'H', 'I', 'T', 'T', 'I', 'N', 'G', - 'H', 'O', 'D', 'D', 'O', 'N', 'D', - 'H', 'O', 'L', 'D', 'I', 'N', 'G', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', - 'H', 'R', 'Y', 'V', 'N', 'I', 'A', - 'H', 'U', 'G', 'G', 'I', 'N', 'G', - 'H', 'U', 'N', 'D', 'R', 'E', 'D', - 'H', 'Y', 'G', 'I', 'E', 'I', 'A', - 'I', '-', 'A', 'R', 'A', 'E', 'A', - 'I', 'B', 'I', 'F', 'I', 'L', 'I', - 'I', 'C', 'H', 'A', 'D', 'I', 'N', - 'I', 'I', 'Y', 'A', 'N', 'N', 'A', - 'I', 'L', 'I', 'M', 'M', 'U', '3', - 'I', 'L', 'I', 'M', 'M', 'U', '4', - 'I', 'M', 'I', 'S', 'E', 'O', 'S', - 'I', 'N', '-', 'A', 'L', 'A', 'F', - 'I', 'N', 'H', 'I', 'B', 'I', 'T', - 'I', 'N', 'I', 'T', 'I', 'A', 'L', - 'I', 'N', 'S', 'U', 'L', 'A', 'R', - 'I', 'N', 'V', 'E', 'R', 'S', 'E', - 'I', 'O', 'D', 'H', 'A', 'D', 'H', - 'I', 'O', 'T', 'A', 'T', 'E', 'D', - 'I', 'S', 'H', 'M', 'A', 'A', 'M', - 'I', 'S', 'O', 'L', 'A', 'T', 'E', - 'I', 'Z', 'A', 'K', 'A', 'Y', 'A', - 'I', 'Z', 'H', 'I', 'T', 'S', 'A', - 'J', 'A', 'N', 'U', 'A', 'R', 'Y', - 'J', 'A', 'Y', 'A', 'N', 'N', 'A', - 'J', 'E', 'G', 'O', 'G', 'A', 'N', - 'J', 'U', 'P', 'I', 'T', 'E', 'R', - 'K', 'A', 'A', 'N', 'K', 'U', 'U', - 'K', 'A', 'K', 'A', 'B', 'A', 'T', - 'K', 'A', 'N', 'N', 'A', 'D', 'A', - 'K', 'A', 'N', 'T', 'A', 'J', 'A', - 'K', 'A', 'R', 'A', 'T', 'T', 'O', - 'K', 'A', 'R', 'O', 'R', 'A', 'N', - 'K', 'A', 'R', 'O', 'R', 'I', 'I', - 'K', 'A', 'T', 'H', 'A', 'K', 'A', - 'K', 'A', 'Y', 'A', 'N', 'N', 'A', - 'K', 'E', 'E', 'P', 'I', 'N', 'G', - 'K', 'E', 'M', 'B', 'A', 'N', 'G', - 'K', 'E', 'N', 'T', 'I', 'M', 'A', - 'K', 'E', 'U', 'A', 'E', 'R', 'I', - 'K', 'E', 'U', 'S', 'E', 'U', 'X', - 'K', 'E', 'U', 'Y', 'E', 'U', 'X', - 'K', 'E', 'Y', 'H', 'O', 'L', 'E', - 'K', 'H', 'A', 'M', 'I', 'L', 'O', - 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'K', 'I', 'K', 'A', 'K', 'U', 'I', - 'K', 'I', 'N', 'S', 'H', 'I', 'P', - 'K', 'I', 'R', 'G', 'H', 'I', 'Z', - 'K', 'I', 'S', 'S', 'I', 'N', 'G', - 'K', 'N', 'U', 'C', 'K', 'L', 'E', - 'K', 'O', 'M', 'B', 'U', 'V', 'A', - 'K', 'O', 'O', 'M', 'U', 'U', 'T', - 'K', 'O', 'Q', 'N', 'D', 'O', 'N', - 'K', 'O', 'R', 'A', 'N', 'I', 'C', - 'K', 'O', 'R', 'O', 'N', 'I', 'S', - 'K', 'R', 'A', 'T', 'I', 'M', 'A', - 'K', 'R', 'Y', 'Z', 'H', 'E', 'M', - 'K', 'U', 'F', 'I', 'S', 'M', 'A', - 'K', 'U', 'P', 'N', 'A', 'Y', 'A', - 'K', 'U', 'R', 'O', 'O', 'N', 'E', - 'K', 'Y', 'A', 'T', 'H', 'O', 'S', - 'K', 'Y', 'L', 'I', 'S', 'M', 'A', - 'L', 'A', 'K', '-', '0', '0', '3', - 'L', 'A', 'K', '-', '0', '2', '0', - 'L', 'A', 'K', '-', '0', '2', '1', - 'L', 'A', 'K', '-', '0', '2', '5', - 'L', 'A', 'K', '-', '0', '3', '0', - 'L', 'A', 'K', '-', '0', '5', '0', - 'L', 'A', 'K', '-', '0', '5', '1', - 'L', 'A', 'K', '-', '0', '6', '2', - 'L', 'A', 'K', '-', '0', '7', '9', - 'L', 'A', 'K', '-', '0', '8', '0', - 'L', 'A', 'K', '-', '0', '8', '1', - 'L', 'A', 'K', '-', '0', '9', '2', - 'L', 'A', 'K', '-', '1', '3', '0', - 'L', 'A', 'K', '-', '1', '4', '2', - 'L', 'A', 'K', '-', '2', '1', '0', - 'L', 'A', 'K', '-', '2', '1', '9', - 'L', 'A', 'K', '-', '2', '2', '0', - 'L', 'A', 'K', '-', '2', '2', '5', - 'L', 'A', 'K', '-', '2', '2', '8', - 'L', 'A', 'K', '-', '2', '3', '8', - 'L', 'A', 'K', '-', '2', '6', '5', - 'L', 'A', 'K', '-', '2', '6', '6', - 'L', 'A', 'K', '-', '3', '4', '3', - 'L', 'A', 'K', '-', '3', '4', '7', - 'L', 'A', 'K', '-', '3', '4', '8', - 'L', 'A', 'K', '-', '3', '8', '3', - 'L', 'A', 'K', '-', '3', '8', '4', - 'L', 'A', 'K', '-', '3', '9', '0', - 'L', 'A', 'K', '-', '4', '4', '1', - 'L', 'A', 'K', '-', '4', '4', '9', - 'L', 'A', 'K', '-', '4', '5', '0', - 'L', 'A', 'K', '-', '4', '5', '7', - 'L', 'A', 'K', '-', '4', '7', '0', - 'L', 'A', 'K', '-', '4', '8', '3', - 'L', 'A', 'K', '-', '4', '9', '0', - 'L', 'A', 'K', '-', '4', '9', '2', - 'L', 'A', 'K', '-', '4', '9', '3', - 'L', 'A', 'K', '-', '4', '9', '5', - 'L', 'A', 'K', '-', '5', '5', '0', - 'L', 'A', 'K', '-', '6', '0', '8', - 'L', 'A', 'K', '-', '6', '1', '7', - 'L', 'A', 'K', '-', '6', '3', '6', - 'L', 'A', 'K', '-', '6', '4', '8', - 'L', 'A', 'K', '-', '6', '6', '8', - 'L', 'A', 'K', '-', '7', '2', '4', - 'L', 'A', 'K', '-', '7', '4', '9', - 'L', 'A', 'N', 'T', 'A', 'N', 'G', - 'L', 'A', 'N', 'T', 'E', 'R', 'N', - 'L', 'A', 'R', 'G', 'E', 'S', 'T', - 'L', 'A', 'T', 'E', 'R', 'A', 'L', - 'L', 'A', 'Y', 'A', 'N', 'N', 'A', - 'L', 'E', 'A', 'D', 'I', 'N', 'G', - 'L', 'E', 'A', 'N', 'I', 'N', 'G', - 'L', 'E', 'A', 'T', 'H', 'E', 'R', - 'L', 'E', 'G', 'E', 'T', 'O', 'S', - 'L', 'E', 'O', 'P', 'A', 'R', 'D', - 'L', 'E', 'T', 'T', 'E', 'R', 'S', - 'L', 'E', 'V', 'E', 'L', '-', '2', - 'L', 'E', 'V', 'E', 'L', '-', '3', - 'L', 'I', 'B', 'E', 'R', 'T', 'Y', - 'L', 'I', 'C', 'K', 'I', 'N', 'G', - 'L', 'I', 'M', 'I', 'T', 'E', 'D', - 'L', 'I', 'N', 'K', 'I', 'N', 'G', - 'L', 'J', 'U', 'D', 'I', 'J', 'E', - 'L', 'O', 'B', 'S', 'T', 'E', 'R', - 'L', 'O', 'G', 'I', 'C', 'A', 'L', - 'L', 'O', 'W', '-', 'M', 'I', 'D', - 'L', 'O', 'W', 'E', 'R', 'E', 'D', - 'L', 'O', 'Z', 'E', 'N', 'G', 'E', - 'L', 'U', 'G', 'G', 'A', 'G', 'E', - 'L', 'Y', 'G', 'I', 'S', 'M', 'A', - 'M', 'A', 'A', 'Y', 'Y', 'A', 'A', - 'M', 'A', 'C', 'H', 'I', 'N', 'E', - 'M', 'A', 'E', 'K', 'E', 'U', 'P', - 'M', 'A', 'E', 'N', 'J', 'E', 'T', - 'M', 'A', 'H', 'J', 'O', 'N', 'G', - 'M', 'A', 'I', 'K', 'U', 'R', 'O', - 'M', 'A', 'I', 'L', 'B', 'O', 'X', - 'M', 'A', 'I', 'M', 'U', 'A', 'N', - 'M', 'A', 'K', 'A', 'S', 'A', 'R', - 'M', 'A', 'K', 'S', 'U', 'R', 'A', - 'M', 'A', 'L', 'A', 'K', 'O', 'N', - 'M', 'A', 'L', 'E', 'E', 'R', 'I', - 'M', 'A', 'L', 'T', 'E', 'S', 'E', - 'M', 'A', 'M', 'M', 'O', 'T', 'H', - 'M', 'A', 'N', 'D', 'A', 'I', 'C', - 'M', 'A', 'N', 'S', 'U', 'A', 'E', - 'M', 'A', 'N', 'S', 'Y', 'O', 'N', - 'M', 'A', 'R', 'A', 'C', 'A', 'S', - 'M', 'A', 'R', 'B', 'U', 'T', 'A', - 'M', 'A', 'R', 'C', 'A', 'T', 'O', - 'M', 'A', 'R', 'C', 'H', 'E', 'N', - 'M', 'A', 'R', 'T', 'I', 'A', 'L', - 'M', 'A', 'R', 'W', 'A', 'R', 'I', - 'M', 'A', 'S', 'A', 'R', 'A', 'M', - 'M', 'A', 'S', 'S', 'A', 'G', 'E', - 'M', 'A', 'S', 'S', 'I', 'N', 'G', - 'M', 'A', 'T', 'T', 'O', 'C', 'K', - 'M', 'A', 'Y', 'A', 'N', 'N', 'A', - 'M', 'B', 'A', 'A', 'K', 'E', 'T', - 'M', 'B', 'A', 'A', 'R', 'A', 'E', - 'M', 'E', 'A', 'S', 'U', 'R', 'E', - 'M', 'E', 'D', 'I', 'C', 'A', 'L', - 'M', 'E', 'E', 'T', 'O', 'R', 'U', - 'M', 'E', 'G', 'A', 'T', 'O', 'N', - 'M', 'E', 'L', 'O', 'D', 'I', 'C', - 'M', 'E', 'L', 'T', 'I', 'N', 'G', - 'M', 'E', 'N', 'O', 'R', 'A', 'H', - 'M', 'E', 'R', 'C', 'U', 'R', 'Y', - 'M', 'G', 'B', 'A', 'S', 'A', 'Q', - 'M', 'G', 'B', 'O', 'F', 'U', 'M', - 'M', 'I', 'C', 'R', 'O', 'B', 'E', - 'M', 'I', 'D', 'L', 'I', 'N', 'E', - 'M', 'I', 'K', 'U', 'R', 'O', 'N', - 'M', 'I', 'N', 'I', 'B', 'U', 'S', - 'M', 'K', 'P', 'A', 'R', 'A', 'Q', - 'M', 'O', 'D', 'E', 'S', 'T', 'Y', - 'M', 'O', 'N', 'I', 'T', 'O', 'R', - 'M', 'O', 'N', 'O', 'C', 'L', 'E', - 'M', 'O', 'N', 'S', 'T', 'E', 'R', - 'M', 'O', 'O', 'M', 'E', 'U', 'T', - 'M', 'O', 'O', 'M', 'P', 'U', 'Q', - 'M', 'O', 'R', 'N', 'I', 'N', 'G', - 'M', 'O', 'R', 'T', 'U', 'U', 'M', - 'M', 'R', 'A', 'C', 'H', 'N', 'O', - 'M', 'R', 'A', 'C', 'H', 'N', 'Y', - 'M', 'U', 'L', 'T', 'A', 'N', 'I', - 'M', 'U', 'N', 'D', 'A', 'R', 'I', - 'M', 'U', 'S', 'I', 'C', 'A', 'L', - 'M', 'Y', 'A', 'N', 'M', 'A', 'R', - 'M', 'Y', 'S', 'L', 'I', 'T', 'E', - 'N', 'A', 'K', 'A', 'A', 'R', 'A', - 'N', 'A', 'S', 'K', 'A', 'P', 'I', - 'N', 'A', 'T', 'U', 'R', 'A', 'L', - 'N', 'A', 'Y', 'A', 'N', 'N', 'A', - 'N', 'E', 'C', 'K', 'T', 'I', 'E', - 'N', 'E', 'G', 'A', 'T', 'E', 'D', - 'N', 'E', 'I', 'T', 'H', 'E', 'R', - 'N', 'E', 'P', 'T', 'U', 'N', 'E', - 'N', 'E', 'Q', 'U', 'D', 'A', 'A', - 'N', 'E', 'S', 'T', 'I', 'N', 'G', - 'N', 'E', 'U', 'T', 'R', 'A', 'L', - 'N', 'E', 'W', 'L', 'I', 'N', 'E', - 'N', 'G', 'E', 'A', 'D', 'A', 'L', - 'N', 'G', 'G', 'E', 'E', 'E', 'E', - 'N', 'G', 'G', 'E', 'U', 'A', 'E', - 'N', 'G', 'G', 'U', 'A', 'E', 'N', - 'N', 'G', 'G', 'U', 'E', 'E', 'T', - 'N', 'G', 'G', 'U', 'R', 'A', 'E', - 'N', 'G', 'G', 'W', 'A', 'E', 'N', - 'N', 'G', 'K', 'A', 'A', 'M', 'I', - 'N', 'G', 'K', 'E', 'U', 'R', 'I', - 'N', 'G', 'K', 'I', 'N', 'D', 'I', - 'N', 'G', 'K', 'W', 'A', 'E', 'N', - 'N', 'I', 'K', 'A', 'H', 'I', 'T', - 'N', 'J', 'A', 'E', 'M', 'L', 'I', - 'N', 'J', 'E', 'U', 'A', 'E', 'M', - 'N', 'K', 'A', 'A', 'R', 'A', 'E', - 'N', 'O', 'M', 'I', 'N', 'A', 'L', - 'N', 'O', 'M', 'I', 'S', 'M', 'A', - 'N', 'O', 'T', 'C', 'H', 'E', 'D', - 'N', 'S', 'E', 'U', 'A', 'E', 'N', - 'N', 'T', 'O', 'Q', 'P', 'E', 'N', - 'N', 'U', 'M', 'B', 'E', 'R', 'S', - 'N', 'U', 'M', 'E', 'R', 'A', 'L', - 'N', 'U', 'M', 'E', 'R', 'I', 'C', - 'N', 'U', 'N', 'A', 'V', 'I', 'K', - 'N', 'U', 'N', 'A', 'V', 'U', 'T', - 'N', 'U', 'T', 'I', 'L', 'L', 'U', - 'N', 'Y', 'A', 'E', 'M', 'A', 'E', - 'N', 'Y', 'I', 'N', '-', 'D', 'O', - 'O', 'B', 'L', 'I', 'Q', 'U', 'E', - 'O', 'B', 'O', 'F', 'I', 'L', 'I', - 'O', 'C', 'T', 'A', 'G', 'O', 'N', - 'O', 'C', 'T', 'O', 'B', 'E', 'R', - 'O', 'C', 'T', 'O', 'P', 'U', 'S', - 'O', 'F', 'F', 'I', 'C', 'E', 'R', - 'O', 'J', 'I', 'B', 'W', 'A', 'Y', - 'O', 'M', 'I', 'C', 'R', 'O', 'N', - 'O', 'N', 'E', '-', 'W', 'A', 'Y', - 'O', 'N', 'E', 'S', 'E', 'L', 'F', - 'O', 'O', 'Y', 'A', 'N', 'N', 'A', - 'O', 'P', 'E', 'N', 'I', 'N', 'G', - 'O', 'P', 'T', 'I', 'C', 'A', 'L', - 'O', 'R', 'D', 'I', 'N', 'A', 'L', - 'O', 'S', 'M', 'A', 'N', 'Y', 'A', - 'O', 'T', 'H', 'A', 'L', 'A', 'N', - 'O', 'T', 'T', 'O', 'M', 'A', 'N', - 'O', 'U', 'T', 'L', 'I', 'N', 'E', - 'O', 'U', 'T', 'W', 'A', 'R', 'D', - 'O', 'V', 'E', 'R', 'B', 'A', 'R', - 'O', 'V', 'E', 'R', 'L', 'A', 'P', - 'O', 'V', 'E', 'R', 'L', 'A', 'Y', - 'P', 'A', 'C', 'K', 'A', 'G', 'E', - 'P', 'A', 'C', 'K', 'I', 'N', 'G', - 'P', 'A', 'H', 'L', 'A', 'V', 'I', - 'P', 'A', 'L', 'A', 'T', 'A', 'L', - 'P', 'A', 'L', 'A', 'U', 'N', 'G', - 'P', 'A', 'L', 'E', 'T', 'T', 'E', - 'P', 'A', 'L', 'L', 'A', 'W', 'A', - 'P', 'A', 'M', 'A', 'A', 'E', 'H', - 'P', 'A', 'M', 'E', 'P', 'E', 'T', - 'P', 'A', 'M', 'S', 'H', 'A', 'E', - 'P', 'A', 'N', 'G', 'K', 'A', 'T', - 'P', 'A', 'N', 'G', 'K', 'O', 'N', - 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'P', 'A', 'N', 'Y', 'I', 'K', 'U', - 'P', 'A', 'N', 'Y', 'U', 'K', 'U', - 'P', 'A', 'P', 'Y', 'R', 'U', 'S', - 'P', 'A', 'R', 'E', 'R', 'E', 'N', - 'P', 'A', 'R', 'T', 'I', 'A', 'L', - 'P', 'A', 'T', 'T', 'E', 'R', 'N', - 'P', 'A', 'Y', 'A', 'N', 'N', 'A', - 'P', 'A', 'Y', 'E', 'R', 'O', 'K', - 'P', 'E', 'A', 'C', 'O', 'C', 'K', - 'P', 'E', 'A', 'N', 'U', 'T', 'S', - 'P', 'E', 'E', 'K', 'I', 'N', 'G', - 'P', 'E', 'N', 'G', 'K', 'A', 'L', - 'P', 'E', 'N', 'G', 'U', 'I', 'N', - 'P', 'E', 'N', 'N', 'A', 'N', 'T', - 'P', 'E', 'N', 'S', 'I', 'V', 'E', - 'P', 'E', 'R', 'C', 'E', 'N', 'T', - 'P', 'E', 'R', 'S', 'I', 'A', 'N', - 'P', 'E', 'T', 'A', 'S', 'M', 'A', - 'P', 'E', 'T', 'A', 'S', 'T', 'I', - 'P', 'H', 'A', 'S', 'E', '-', 'A', - 'P', 'H', 'A', 'S', 'E', '-', 'B', - 'P', 'H', 'A', 'S', 'E', '-', 'C', - 'P', 'H', 'A', 'S', 'E', '-', 'D', - 'P', 'H', 'A', 'S', 'E', '-', 'E', - 'P', 'H', 'A', 'S', 'E', '-', 'F', - 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'P', 'H', 'I', 'N', 'T', 'H', 'U', - 'P', 'H', 'U', 'T', 'H', 'A', 'O', - 'P', 'I', 'A', 'S', 'T', 'R', 'E', - 'P', 'I', 'C', 'T', 'U', 'R', 'E', - 'P', 'I', 'L', 'C', 'R', 'O', 'W', - 'P', 'I', 'N', 'C', 'H', 'E', 'D', - 'P', 'I', 'R', 'I', 'E', 'E', 'N', - 'P', 'I', 'S', 'E', 'L', 'E', 'H', - 'P', 'L', 'A', 'C', 'A', 'R', 'D', - 'P', 'L', 'A', 'G', 'I', 'O', 'S', - 'P', 'L', 'A', 'Y', 'I', 'N', 'G', - 'P', 'L', 'U', 'N', 'G', 'E', 'R', - 'P', 'O', 'D', 'A', 'T', 'U', 'S', - 'P', 'O', 'I', 'N', 'T', 'E', 'D', - 'P', 'O', 'I', 'N', 'T', 'E', 'R', - 'P', 'O', 'L', 'N', 'A', 'Y', 'A', - 'P', 'O', 'P', 'C', 'O', 'R', 'N', - 'P', 'O', 'P', 'P', 'I', 'N', 'G', - 'P', 'O', 'S', 'T', 'B', 'O', 'X', - 'P', 'O', 'T', 'A', 'B', 'L', 'E', - 'P', 'O', 'U', 'L', 'T', 'R', 'Y', - 'P', 'O', 'U', 'R', 'I', 'N', 'G', - 'P', 'O', 'U', 'T', 'I', 'N', 'G', - 'P', 'O', 'V', 'O', 'D', 'N', 'Y', - 'P', 'O', 'V', 'Y', 'S', 'H', 'E', - 'P', 'R', 'E', 'C', 'E', 'D', 'E', - 'P', 'R', 'E', 'F', 'A', 'C', 'E', - 'P', 'R', 'E', 'N', 'K', 'H', 'A', - 'P', 'R', 'E', 'S', 'E', 'N', 'T', - 'P', 'R', 'E', 'S', 'S', 'E', 'D', - 'P', 'R', 'E', 'T', 'Z', 'E', 'L', - 'P', 'R', 'I', 'N', 'T', 'E', 'R', - 'P', 'R', 'I', 'V', 'A', 'T', 'E', - 'P', 'R', 'I', 'Z', 'N', 'A', 'K', - 'P', 'R', 'O', 'B', 'I', 'N', 'G', - 'P', 'R', 'O', 'D', 'U', 'C', 'T', - 'P', 'S', 'A', 'L', 'T', 'E', 'R', - 'P', 'U', 'A', 'C', 'H', 'U', 'E', - 'P', 'U', 'N', 'C', 'T', 'U', 'S', - 'P', 'U', 'N', 'G', 'A', 'A', 'M', - 'P', 'U', 'R', 'N', 'A', 'M', 'A', - 'P', 'U', 'S', 'H', 'I', 'N', 'G', - 'P', 'U', 'S', 'H', 'P', 'I', 'N', - 'P', 'U', 'T', 'N', 'A', 'Y', 'A', - 'Q', 'U', 'A', 'R', 'T', 'E', 'R', - 'Q', 'U', 'D', 'D', 'I', 'S', 'A', - 'R', 'A', '-', 'K', 'A', 'R', 'A', - 'R', 'A', 'C', 'C', 'O', 'O', 'N', - 'R', 'A', 'C', 'Q', 'U', 'E', 'T', - 'R', 'A', 'D', 'I', 'C', 'A', 'L', - 'R', 'A', 'I', 'L', 'W', 'A', 'Y', - 'R', 'A', 'I', 'N', 'B', 'O', 'W', - 'R', 'A', 'I', 'S', 'I', 'N', 'G', - 'R', 'A', 'K', 'H', 'A', 'N', 'G', - 'R', 'A', 'P', 'I', 'S', 'M', 'A', - 'R', 'A', 'S', 'W', 'A', 'D', 'I', - 'R', 'A', 'Y', 'A', 'N', 'N', 'A', - 'R', 'A', 'Z', 'S', 'E', 'K', 'A', - 'R', 'E', 'A', 'D', 'I', 'N', 'G', - 'R', 'E', 'A', 'H', 'M', 'U', 'K', - 'R', 'E', 'A', 'L', 'G', 'A', 'R', - 'R', 'E', 'C', 'E', 'I', 'P', 'T', - 'R', 'E', 'G', 'I', 'A', '-', '2', - 'R', 'E', 'G', 'U', 'L', 'U', 'S', - 'R', 'E', 'L', 'A', 'X', 'E', 'D', - 'R', 'E', 'L', 'E', 'A', 'S', 'E', - 'R', 'E', 'R', 'E', 'K', 'A', 'N', - 'R', 'E', 'T', 'R', 'E', 'A', 'T', - 'R', 'E', 'V', 'E', 'R', 'S', 'E', - 'R', 'G', 'Y', 'I', 'N', 'G', 'S', - 'R', 'I', 'N', 'G', 'I', 'N', 'G', - 'R', 'I', 'T', 'T', 'O', 'R', 'U', - 'R', 'O', 'A', 'S', 'T', 'E', 'D', - 'R', 'O', 'L', 'L', 'I', 'N', 'G', - 'R', 'O', 'O', 'S', 'T', 'E', 'R', - 'R', 'O', 'S', 'E', 'T', 'T', 'E', - 'R', 'O', 'T', 'A', 'T', 'E', 'D', - 'R', 'O', 'T', 'U', 'N', 'D', 'A', - 'R', 'O', 'U', 'N', 'D', 'E', 'D', - 'R', 'O', 'W', 'B', 'O', 'A', 'T', - 'R', 'U', 'N', 'N', 'I', 'N', 'G', - 'R', 'U', 'S', 'S', 'I', 'A', 'N', - 'R', 'U', 'U', 'B', 'U', 'R', 'U', - 'S', 'A', 'I', 'K', 'U', 'R', 'U', - 'S', 'A', 'K', 'E', 'U', 'A', 'E', - 'S', 'A', 'L', 'T', 'I', 'R', 'E', - 'S', 'A', 'M', 'P', 'H', 'A', 'O', - 'S', 'A', 'N', 'Y', 'A', 'K', 'A', - 'S', 'A', 'T', 'A', 'N', 'G', 'A', - 'S', 'A', 'T', 'C', 'H', 'E', 'L', - 'S', 'A', 'T', 'K', 'A', 'A', 'N', - 'S', 'A', 'Y', 'A', 'N', 'N', 'A', - 'S', 'C', 'E', 'P', 'T', 'E', 'R', - 'S', 'C', 'H', 'O', 'L', 'A', 'R', - 'S', 'C', 'O', 'O', 'T', 'E', 'R', - 'S', 'C', 'R', 'U', 'P', 'L', 'E', - 'S', 'E', 'A', 'G', 'U', 'L', 'L', - 'S', 'E', 'C', 'T', 'I', 'O', 'N', - 'S', 'E', 'G', 'M', 'E', 'N', 'T', - 'S', 'E', 'M', 'K', 'A', 'T', 'H', - 'S', 'E', 'R', 'I', 'O', 'U', 'S', - 'S', 'E', 'R', 'V', 'I', 'C', 'E', - 'S', 'E', 'U', 'N', 'Y', 'A', 'M', - 'S', 'E', 'V', 'E', 'N', 'T', 'H', - 'S', 'E', 'V', 'E', 'N', 'T', 'Y', - 'S', 'E', 'X', 'T', 'A', 'N', 'S', - 'S', 'E', 'X', 'T', 'I', 'L', 'E', - 'S', 'E', 'X', 'T', 'U', 'L', 'A', - 'S', 'H', 'A', 'K', 'I', 'N', 'G', - 'S', 'H', 'A', 'L', 'L', 'O', 'W', - 'S', 'H', 'A', 'P', 'I', 'N', 'G', - 'S', 'H', 'A', 'R', 'A', 'D', 'A', - 'S', 'H', 'A', 'V', 'I', 'A', 'N', - 'S', 'H', 'C', 'H', 'O', 'O', 'I', - 'S', 'H', 'E', 'S', 'H', 'I', 'G', - 'S', 'H', 'E', 'U', 'A', 'E', 'Q', - 'S', 'H', 'O', 'C', 'K', 'E', 'D', - 'S', 'H', 'T', 'A', 'P', 'I', 'C', - 'S', 'H', 'U', 'F', 'F', 'L', 'E', - 'S', 'I', 'D', 'D', 'H', 'A', 'M', - 'S', 'I', 'G', 'M', 'O', 'I', 'D', - 'S', 'I', 'L', 'I', 'Q', 'U', 'A', - 'S', 'I', 'M', 'I', 'L', 'A', 'R', - 'S', 'I', 'N', 'G', 'A', 'A', 'T', - 'S', 'I', 'N', 'H', 'A', 'L', 'A', - 'S', 'I', 'N', 'K', 'I', 'N', 'G', - 'S', 'I', 'R', 'I', 'N', 'G', 'U', - 'S', 'I', 'X', 'T', 'E', 'E', 'N', - 'S', 'K', 'L', 'I', 'R', 'O', 'N', - 'S', 'L', 'A', 'N', 'T', 'E', 'D', - 'S', 'L', 'I', 'D', 'I', 'N', 'G', - 'S', 'L', 'O', 'P', 'I', 'N', 'G', - 'S', 'M', 'A', 'L', 'L', 'E', 'R', - 'S', 'M', 'I', 'L', 'I', 'N', 'G', - 'S', 'M', 'O', 'K', 'I', 'N', 'G', - 'S', 'N', 'O', 'W', 'M', 'A', 'N', - 'S', 'O', 'C', 'I', 'E', 'T', 'Y', - 'S', 'O', 'G', 'D', 'I', 'A', 'N', - 'S', 'O', 'L', 'D', 'I', 'E', 'R', - 'S', 'O', 'L', 'I', 'D', 'U', 'S', - 'S', 'O', 'M', 'P', 'E', 'N', 'G', - 'S', 'O', 'Y', 'O', 'M', 'B', 'O', - 'S', 'P', 'A', 'C', 'I', 'N', 'G', - 'S', 'P', 'A', 'R', 'K', 'L', 'E', - 'S', 'P', 'E', 'A', 'K', 'E', 'R', - 'S', 'P', 'E', 'C', 'I', 'A', 'L', - 'S', 'P', 'E', 'C', 'K', 'L', 'E', - 'S', 'P', 'I', 'D', 'E', 'R', 'Y', - 'S', 'P', 'I', 'R', 'A', 'N', 'T', - 'S', 'P', 'L', 'A', 'Y', 'E', 'D', - 'S', 'P', 'R', 'I', 'N', 'G', 'S', - 'S', 'Q', 'U', 'A', 'R', 'E', 'D', - 'S', 'Q', 'U', 'A', 'R', 'E', 'S', - 'S', 'Q', 'U', 'E', 'E', 'Z', 'E', - 'S', 'T', 'A', 'C', 'K', 'E', 'D', - 'S', 'T', 'A', 'D', 'I', 'U', 'M', - 'S', 'T', 'A', 'M', 'P', 'E', 'D', - 'S', 'T', 'A', 'R', 'R', 'E', 'D', - 'S', 'T', 'A', 'T', 'E', 'R', 'S', - 'S', 'T', 'A', 'T', 'I', 'O', 'N', - 'S', 'T', 'A', 'U', 'R', 'O', 'S', - 'S', 'T', 'A', 'V', 'R', 'O', 'S', - 'S', 'T', 'A', 'V', 'R', 'O', 'U', - 'S', 'T', 'E', 'M', '-', '1', '2', - 'S', 'T', 'E', 'M', '-', '2', '3', - 'S', 'T', 'E', 'M', '-', '3', '4', - 'S', 'T', 'E', 'M', '-', '4', '5', - 'S', 'T', 'I', 'R', 'R', 'U', 'P', - 'S', 'T', 'R', 'A', 'N', 'N', 'O', - 'S', 'T', 'R', 'A', 'T', 'U', 'M', - 'S', 'T', 'R', 'E', 'T', 'C', 'H', - 'S', 'T', 'R', 'I', 'P', 'E', 'D', - 'S', 'T', 'R', 'O', 'K', 'E', 'S', - 'S', 'T', 'U', 'F', 'F', 'E', 'D', - 'S', 'U', 'B', 'J', 'E', 'C', 'T', - 'S', 'U', 'B', 'U', 'N', 'I', 'T', - 'S', 'U', 'C', 'C', 'E', 'E', 'D', - 'S', 'U', 'C', 'K', 'I', 'N', 'G', - 'S', 'U', 'N', 'R', 'I', 'S', 'E', - 'S', 'U', 'N', 'U', 'W', 'A', 'R', - 'S', 'U', 'R', 'F', 'A', 'C', 'E', - 'S', 'V', 'A', 'R', 'I', 'T', 'A', - 'S', 'W', 'I', 'M', 'M', 'E', 'R', - 'S', 'Y', 'M', 'B', 'O', 'L', 'S', - 'S', 'Y', 'N', 'A', 'G', 'M', 'A', - 'S', 'Y', 'N', 'E', 'V', 'M', 'A', - 'S', 'Y', 'R', 'I', 'N', 'G', 'E', - 'T', '-', 'S', 'H', 'I', 'R', 'T', - 'T', 'A', 'A', 'A', 'L', 'A', 'A', - 'T', 'A', 'A', 'L', 'U', 'J', 'A', - 'T', 'A', 'A', 'S', 'H', 'A', 'E', - 'T', 'A', 'G', 'A', 'L', 'O', 'G', - 'T', 'A', 'I', 'S', 'Y', 'O', 'U', - 'T', 'A', 'K', 'E', 'O', 'U', 'T', - 'T', 'A', 'L', 'E', 'N', 'T', 'S', - 'T', 'A', 'N', 'G', 'E', 'N', 'T', - 'T', 'A', 'S', 'H', 'E', 'E', 'L', - 'T', 'A', 'T', 'W', 'E', 'E', 'L', - 'T', 'A', 'Y', 'A', 'N', 'N', 'A', - 'T', 'C', 'H', 'E', 'H', 'E', 'H', - 'T', 'E', 'L', 'I', 'S', 'H', 'A', - 'T', 'E', 'S', 'S', 'E', 'R', 'A', - 'T', 'E', 'U', 'T', 'E', 'U', 'X', - 'T', 'H', '-', 'C', 'R', 'E', 'E', - 'T', 'H', 'A', 'M', 'E', 'D', 'H', - 'T', 'H', 'E', 'S', 'E', 'O', 'S', - 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'T', 'H', 'O', 'U', 'G', 'H', 'T', - 'T', 'H', 'R', 'E', 'E', '-', 'D', - 'T', 'H', 'R', 'O', 'U', 'G', 'H', - 'T', 'H', 'U', 'N', 'D', 'E', 'R', - 'T', 'I', 'B', 'E', 'T', 'A', 'N', - 'T', 'I', 'C', 'K', 'E', 'T', 'S', - 'T', 'I', 'K', 'H', 'A', 'Y', 'A', - 'T', 'I', 'L', 'T', 'I', 'N', 'G', - 'T', 'I', 'N', 'A', 'G', 'M', 'A', - 'T', 'I', 'R', 'H', 'U', 'T', 'A', - 'T', 'I', 'T', 'U', 'A', 'E', 'P', - 'T', 'O', 'O', 'L', 'B', 'O', 'X', - 'T', 'O', 'R', 'N', 'A', 'D', 'O', - 'T', 'O', 'U', 'C', 'H', 'E', 'S', - 'T', 'O', 'W', 'A', 'R', 'D', 'S', - 'T', 'R', 'A', 'C', 'T', 'O', 'R', - 'T', 'R', 'A', 'F', 'F', 'I', 'C', - 'T', 'R', 'A', 'M', 'W', 'A', 'Y', - 'T', 'R', 'I', 'D', 'E', 'N', 'T', - 'T', 'R', 'I', 'G', 'R', 'A', 'M', - 'T', 'R', 'I', 'I', 'S', 'A', 'P', - 'T', 'R', 'I', 'S', 'E', 'M', 'E', - 'T', 'R', 'I', 'U', 'M', 'P', 'H', - 'T', 'R', 'O', 'L', 'L', 'E', 'Y', - 'T', 'R', 'U', 'M', 'P', '-', '1', - 'T', 'R', 'U', 'M', 'P', '-', '2', - 'T', 'R', 'U', 'M', 'P', '-', '3', - 'T', 'R', 'U', 'M', 'P', '-', '4', - 'T', 'R', 'U', 'M', 'P', '-', '5', - 'T', 'R', 'U', 'M', 'P', '-', '6', - 'T', 'R', 'U', 'M', 'P', '-', '7', - 'T', 'R', 'U', 'M', 'P', '-', '8', - 'T', 'R', 'U', 'M', 'P', '-', '9', - 'T', 'R', 'U', 'M', 'P', 'E', 'T', - 'T', 'R', 'Y', 'A', 'S', 'K', 'A', - 'T', 'S', 'A', 'A', 'D', 'I', 'Y', - 'T', 'T', 'U', 'D', 'D', 'A', 'G', - 'T', 'U', 'M', 'B', 'L', 'E', 'R', - 'T', 'U', 'M', 'E', 'T', 'E', 'S', - 'T', 'U', 'R', 'K', 'I', 'S', 'H', - 'T', 'W', 'E', 'L', 'F', 'T', 'H', - 'T', 'W', 'I', 'S', 'T', 'E', 'D', - 'T', 'W', 'O', '-', 'W', 'A', 'Y', - 'U', '-', 'E', 'O', '-', 'E', 'U', - 'U', 'B', 'A', 'D', 'A', 'M', 'A', - 'U', 'B', 'U', 'F', 'I', 'L', 'I', - 'U', 'N', 'I', 'C', 'O', 'R', 'N', - 'U', 'N', 'I', 'F', 'I', 'E', 'D', - 'U', 'N', 'I', 'F', 'O', 'R', 'M', - 'U', 'N', 'K', 'N', 'O', 'W', 'N', - 'U', 'P', 'R', 'I', 'G', 'H', 'T', - 'U', 'P', 'S', 'I', 'L', 'O', 'N', - 'U', 'P', 'W', 'A', 'R', 'D', 'S', - 'U', 'S', 'H', 'E', 'N', 'N', 'A', - 'U', 'U', 'Y', 'A', 'N', 'N', 'A', - 'U', 'Z', 'H', 'A', 'K', 'K', 'U', - 'V', 'A', 'M', 'P', 'I', 'R', 'E', - 'V', 'A', 'P', 'O', 'U', 'R', 'S', - 'V', 'A', 'R', 'E', 'I', 'A', 'I', - 'V', 'A', 'R', 'I', 'A', 'N', 'T', - 'V', 'A', 'Y', 'A', 'N', 'N', 'A', - 'V', 'E', 'H', 'I', 'C', 'L', 'E', - 'V', 'I', 'C', 'T', 'O', 'R', 'Y', - 'V', 'I', 'E', 'W', 'I', 'N', 'G', - 'V', 'I', 'L', 'L', 'A', 'G', 'E', - 'V', 'I', 'N', 'E', 'G', 'A', 'R', - 'V', 'I', 'S', 'A', 'R', 'G', 'A', - 'V', 'I', 'T', 'A', 'E', '-', '2', - 'V', 'I', 'T', 'R', 'I', 'O', 'L', - 'V', 'O', 'C', 'A', 'L', 'I', 'C', - 'V', 'O', 'I', 'C', 'I', 'N', 'G', - 'V', 'O', 'L', 'A', 'P', 'U', 'K', - 'V', 'O', 'L', 'C', 'A', 'N', 'O', - 'V', 'O', 'L', 'T', 'A', 'G', 'E', - 'W', 'A', 'I', 'T', 'I', 'N', 'G', - 'W', 'A', 'R', 'N', 'I', 'N', 'G', - 'W', 'A', 'S', 'T', 'I', 'N', 'G', - 'W', 'E', 'D', 'D', 'I', 'N', 'G', - 'W', 'E', 'S', 'T', 'E', 'R', 'N', - 'W', 'H', 'E', 'E', 'L', 'E', 'D', - 'W', 'I', 'G', 'G', 'L', 'E', 'S', - 'W', 'I', 'G', 'N', 'Y', 'A', 'N', - 'W', 'I', 'N', 'K', 'I', 'N', 'G', - 'W', 'I', 'T', 'H', 'O', 'U', 'T', - 'W', 'O', 'R', 'R', 'I', 'E', 'D', - 'W', 'O', 'R', 'S', 'H', 'I', 'P', - 'W', 'R', 'A', 'P', 'P', 'E', 'D', - 'W', 'R', 'I', 'T', 'I', 'N', 'G', - 'X', 'I', 'A', 'N', 'G', 'Q', 'I', - 'Y', 'A', 'E', 'M', 'M', 'A', 'E', - 'Y', 'A', 'W', 'N', 'I', 'N', 'G', - 'Y', 'A', 'Y', 'A', 'N', 'N', 'A', - 'Y', 'E', 'N', 'I', 'S', 'E', 'I', - 'Y', 'I', 'D', 'D', 'I', 'S', 'H', - 'Y', 'P', 'O', 'R', 'R', 'O', 'I', - 'Z', 'H', 'I', 'V', 'E', 'T', 'E', - 'Z', 'M', 'E', 'Y', 'T', 'S', 'A', - 'A', '1', '0', '0', '-', '1', '0', '2', - 'A', '4', '0', '0', '-', 'V', 'A', 'S', - 'A', '4', '0', '1', '-', 'V', 'A', 'S', - 'A', '4', '0', '2', '-', 'V', 'A', 'S', - 'A', '4', '0', '3', '-', 'V', 'A', 'S', - 'A', '4', '0', '4', '-', 'V', 'A', 'S', - 'A', '4', '0', '5', '-', 'V', 'A', 'S', - 'A', '4', '0', '6', '-', 'V', 'A', 'S', - 'A', '4', '0', '7', '-', 'V', 'A', 'S', - 'A', '4', '0', '8', '-', 'V', 'A', 'S', - 'A', '4', '0', '9', '-', 'V', 'A', 'S', - 'A', '4', '1', '0', '-', 'V', 'A', 'S', - 'A', '4', '1', '1', '-', 'V', 'A', 'S', - 'A', '4', '1', '2', '-', 'V', 'A', 'S', - 'A', '4', '1', '3', '-', 'V', 'A', 'S', - 'A', '4', '1', '4', '-', 'V', 'A', 'S', - 'A', '4', '1', '5', '-', 'V', 'A', 'S', - 'A', '4', '1', '6', '-', 'V', 'A', 'S', - 'A', '4', '1', '7', '-', 'V', 'A', 'S', - 'A', '4', '1', '8', '-', 'V', 'A', 'S', - 'A', 'C', 'T', 'I', 'V', 'A', 'T', 'E', - 'A', 'C', 'T', 'U', 'A', 'L', 'L', 'Y', - 'A', 'D', 'H', 'E', 'S', 'I', 'V', 'E', - 'A', 'E', 'E', 'Y', 'A', 'N', 'N', 'A', - 'A', 'I', 'R', 'P', 'L', 'A', 'N', 'E', - 'A', 'K', 'H', 'M', 'I', 'M', 'I', 'C', - 'A', 'L', 'B', 'A', 'N', 'I', 'A', 'N', - 'A', 'L', 'K', 'A', 'L', 'I', '-', '2', - 'A', 'L', 'L', 'I', 'A', 'N', 'C', 'E', - 'A', 'L', 'V', 'E', 'O', 'L', 'A', 'R', - 'A', 'M', 'E', 'R', 'I', 'C', 'A', 'N', - 'A', 'M', 'E', 'R', 'I', 'C', 'A', 'S', - 'A', 'N', 'G', 'S', 'T', 'R', 'O', 'M', - 'A', 'N', 'T', 'I', 'M', 'O', 'N', 'Y', - 'A', 'N', 'U', 'D', 'A', 'T', 'T', 'A', - 'A', 'N', 'U', 'S', 'V', 'A', 'R', 'A', - 'A', 'P', 'E', 'R', 'T', 'U', 'R', 'E', - 'A', 'P', 'O', 'D', 'E', 'R', 'M', 'A', - 'A', 'P', 'O', 'D', 'E', 'X', 'I', 'A', - 'A', 'P', 'O', 'T', 'H', 'E', 'M', 'A', - 'A', 'P', 'P', 'R', 'O', 'A', 'C', 'H', - 'A', 'Q', 'U', 'A', 'R', 'I', 'U', 'S', - 'A', 'R', 'A', 'E', 'A', '-', 'E', 'O', - 'A', 'R', 'C', 'H', 'A', 'I', 'O', 'N', - 'A', 'R', 'G', 'O', 'T', 'E', 'R', 'I', - 'A', 'R', 'I', 'S', 'T', 'E', 'R', 'A', - 'A', 'R', 'M', 'E', 'N', 'I', 'A', 'N', - 'A', 'R', 'O', 'U', 'S', 'I', 'N', 'G', - 'A', 'R', 'R', 'I', 'V', 'I', 'N', 'G', - 'A', 'S', '-', 'S', 'A', 'J', 'D', 'A', - 'A', 'S', 'S', 'A', 'L', 'L', 'A', 'M', - 'A', 'S', 'S', 'Y', 'R', 'I', 'A', 'N', - 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'K', - 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'M', - 'A', 'T', 'H', 'L', 'E', 'T', 'I', 'C', - 'A', 'T', 'I', 'K', 'R', 'A', 'M', 'A', - 'A', 'T', 'T', 'A', 'C', 'H', 'E', 'D', - 'A', 'T', 'T', 'H', 'A', 'C', 'A', 'N', - 'A', 'V', 'A', 'G', 'R', 'A', 'H', 'A', - 'B', 'A', 'C', 'K', 'H', 'A', 'N', 'D', - 'B', 'A', 'C', 'T', 'R', 'I', 'A', 'N', - 'B', 'A', 'G', 'U', 'E', 'T', 'T', 'E', - 'B', 'A', 'L', 'I', 'N', 'E', 'S', 'E', - 'B', 'A', 'N', 'K', 'N', 'O', 'T', 'E', - 'B', 'A', 'S', 'E', 'B', 'A', 'L', 'L', - 'B', 'A', 'S', 'E', 'L', 'I', 'N', 'E', - 'B', 'A', 'S', 'S', 'I', 'N', 'E', 'T', - 'B', 'E', 'G', 'I', 'N', 'N', 'E', 'R', - 'B', 'E', 'L', 'G', 'T', 'H', 'O', 'R', - 'B', 'E', 'R', 'K', 'A', 'N', 'A', 'N', - 'B', 'E', 'V', 'E', 'R', 'A', 'G', 'E', - 'B', 'I', 'C', 'Y', 'C', 'L', 'E', 'S', - 'B', 'I', 'D', 'E', 'N', 'T', 'A', 'L', - 'B', 'I', 'L', 'A', 'B', 'I', 'A', 'L', - 'B', 'I', 'L', 'L', 'I', 'O', 'N', 'S', - 'B', 'I', 'N', 'O', 'V', 'I', 'L', 'E', - 'B', 'I', 'R', 'T', 'H', 'D', 'A', 'Y', - 'B', 'L', 'O', 'W', 'F', 'I', 'S', 'H', - 'B', 'O', 'H', 'A', 'I', 'R', 'I', 'C', - 'B', 'O', 'O', 'K', 'M', 'A', 'R', 'K', - 'B', 'O', 'P', 'O', 'M', 'O', 'F', 'O', - 'B', 'O', 'U', 'N', 'D', 'A', 'R', 'Y', - 'B', 'R', 'A', 'C', 'K', 'E', 'T', 'S', - 'B', 'R', 'A', 'N', 'C', 'H', 'E', 'S', - 'B', 'R', 'O', 'C', 'C', 'O', 'L', 'I', - 'B', 'U', 'G', 'I', 'N', 'E', 'S', 'E', - 'B', 'U', 'I', 'L', 'D', 'I', 'N', 'G', - 'B', 'U', 'L', 'L', 'H', 'O', 'R', 'N', - 'B', 'U', 'L', 'L', 'S', 'E', 'Y', 'E', - 'B', 'U', 'S', 'I', 'N', 'E', 'S', 'S', - 'B', 'U', 'S', 'S', 'Y', 'E', 'R', 'U', - 'C', 'A', 'B', 'L', 'E', 'W', 'A', 'Y', - 'C', 'A', 'D', 'U', 'C', 'E', 'U', 'S', - 'C', 'A', 'L', 'E', 'N', 'D', 'A', 'R', - 'C', 'A', 'N', 'A', 'D', 'I', 'A', 'N', - 'C', 'A', 'R', 'O', 'U', 'S', 'E', 'L', - 'C', 'A', 'R', 'R', 'I', 'A', 'G', 'E', - 'C', 'A', 'U', 'L', 'D', 'R', 'O', 'N', - 'C', 'E', 'R', 'E', 'M', 'O', 'N', 'Y', - 'C', 'H', 'A', 'M', 'I', 'L', 'O', 'N', - 'C', 'H', 'A', 'T', 'T', 'A', 'W', 'A', - 'C', 'H', 'E', 'E', 'R', 'I', 'N', 'G', - 'C', 'H', 'E', 'I', 'K', 'H', 'A', 'N', - 'C', 'H', 'E', 'I', 'K', 'H', 'E', 'I', - 'C', 'H', 'E', 'R', 'O', 'K', 'E', 'E', - 'C', 'H', 'E', 'R', 'R', 'I', 'E', 'S', - 'C', 'H', 'E', 'S', 'T', 'N', 'U', 'T', - 'C', 'H', 'I', 'L', 'D', 'R', 'E', 'N', - 'C', 'H', 'I', 'P', 'M', 'U', 'N', 'K', - 'C', 'H', 'O', 'R', 'E', 'V', 'M', 'A', - 'C', 'H', 'O', 'S', 'E', 'O', 'N', 'G', - 'C', 'I', 'N', 'N', 'A', 'B', 'A', 'R', - 'C', 'I', 'R', 'C', 'L', 'I', 'N', 'G', - 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R', - 'C', 'I', 'T', 'A', 'T', 'I', 'O', 'N', - 'C', 'I', 'V', 'I', 'L', 'I', 'A', 'N', - 'C', 'L', 'A', 'P', 'P', 'I', 'N', 'G', - 'C', 'L', 'I', 'M', 'A', 'C', 'U', 'S', - 'C', 'L', 'I', 'M', 'B', 'I', 'N', 'G', - 'C', 'L', 'I', 'N', 'G', 'I', 'N', 'G', - 'C', 'L', 'I', 'N', 'K', 'I', 'N', 'G', - 'C', 'O', 'C', 'K', 'T', 'A', 'I', 'L', - 'C', 'O', 'M', 'B', 'I', 'N', 'E', 'D', - 'C', 'O', 'M', 'P', 'U', 'T', 'E', 'R', - 'C', 'O', 'N', 'F', 'E', 'T', 'T', 'I', - 'C', 'O', 'N', 'F', 'L', 'I', 'C', 'T', - 'C', 'O', 'N', 'F', 'U', 'S', 'E', 'D', - 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', - 'C', 'O', 'N', 'T', 'A', 'I', 'N', 'S', - 'C', 'O', 'P', 'P', 'E', 'R', '-', '2', - 'C', 'O', 'P', 'Y', 'L', 'E', 'F', 'T', - 'C', 'O', 'U', 'N', 'T', 'I', 'N', 'G', - 'C', 'O', 'V', 'E', 'R', 'I', 'N', 'G', - 'C', 'R', 'E', 'A', 'T', 'I', 'V', 'E', - 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'T', - 'C', 'R', 'O', 'S', 'S', 'B', 'A', 'R', - 'C', 'R', 'O', 'S', 'S', 'I', 'N', 'G', - 'C', 'R', 'U', 'C', 'I', 'B', 'L', 'E', - 'C', 'R', 'U', 'Z', 'E', 'I', 'R', 'O', - 'C', 'U', 'C', 'U', 'M', 'B', 'E', 'R', - 'C', 'U', 'R', 'L', 'I', 'C', 'U', 'E', - 'C', 'U', 'R', 'R', 'E', 'N', 'C', 'Y', - 'C', 'U', 'S', 'T', 'O', 'M', 'E', 'R', - 'C', 'Y', 'R', 'E', 'N', 'A', 'I', 'C', - 'C', 'Y', 'R', 'I', 'L', 'L', 'I', 'C', - 'D', 'A', 'M', 'M', 'A', 'T', 'A', 'N', - 'D', 'A', 'P', '-', 'B', 'U', 'O', 'N', - 'D', 'A', 'P', '-', 'M', 'U', 'O', 'Y', - 'D', 'A', 'P', '-', 'P', 'R', 'A', 'M', - 'D', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'D', 'D', 'A', 'Y', 'A', 'N', 'N', 'A', - 'D', 'E', 'C', 'E', 'M', 'B', 'E', 'R', - 'D', 'E', 'C', 'R', 'E', 'A', 'S', 'E', - 'D', 'E', 'L', 'E', 'T', 'I', 'O', 'N', - 'D', 'E', 'L', 'I', 'V', 'E', 'R', 'Y', - 'D', 'E', 'N', 'A', 'R', 'I', 'U', 'S', - 'D', 'E', 'R', 'B', 'I', 'T', 'S', 'A', - 'D', 'E', 'R', 'E', 'L', 'I', 'C', 'T', - 'D', 'E', 'Y', 'T', 'E', 'R', 'O', 'S', - 'D', 'E', 'Y', 'T', 'E', 'R', 'O', 'U', - 'D', 'I', 'A', 'G', 'O', 'N', 'A', 'L', - 'D', 'I', 'A', 'M', 'E', 'T', 'E', 'R', - 'D', 'I', 'A', 'M', 'O', 'N', 'D', 'S', - 'D', 'I', 'A', 'S', 'T', 'O', 'L', 'I', - 'D', 'I', 'A', 'T', 'O', 'N', 'O', 'N', - 'D', 'I', 'F', 'O', 'N', 'I', 'A', 'S', - 'D', 'I', 'G', 'O', 'R', 'G', 'O', 'N', - 'D', 'I', 'G', 'R', 'A', 'M', 'M', 'A', - 'D', 'I', 'R', 'E', 'C', 'T', 'L', 'Y', - 'D', 'I', 'S', 'A', 'B', 'L', 'E', 'D', - 'D', 'I', 'S', 'P', 'U', 'T', 'E', 'D', - 'D', 'I', 'S', 'S', 'O', 'L', 'V', 'E', - 'D', 'I', 'V', 'I', 'D', 'E', 'R', 'S', - 'D', 'I', 'V', 'I', 'S', 'I', 'O', 'N', - 'D', 'O', 'C', 'U', 'M', 'E', 'N', 'T', - 'D', 'O', 'D', 'E', 'K', 'A', 'T', 'A', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', - 'D', 'O', 'T', 'S', '-', '1', '2', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', - 'D', 'O', 'T', 'S', '-', '1', '3', '6', - 'D', 'O', 'T', 'S', '-', '1', '3', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', - 'D', 'O', 'T', 'S', '-', '1', '4', '6', - 'D', 'O', 'T', 'S', '-', '1', '4', '7', - 'D', 'O', 'T', 'S', '-', '1', '4', '8', - 'D', 'O', 'T', 'S', '-', '1', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', - 'D', 'O', 'T', 'S', '-', '2', '3', '6', - 'D', 'O', 'T', 'S', '-', '2', '3', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', - 'D', 'O', 'T', 'S', '-', '2', '4', '6', - 'D', 'O', 'T', 'S', '-', '2', '4', '7', - 'D', 'O', 'T', 'S', '-', '2', '4', '8', - 'D', 'O', 'T', 'S', '-', '2', '5', '6', - 'D', 'O', 'T', 'S', '-', '2', '5', '7', - 'D', 'O', 'T', 'S', '-', '2', '5', '8', - 'D', 'O', 'T', 'S', '-', '2', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', - 'D', 'O', 'T', 'S', '-', '3', '4', '6', - 'D', 'O', 'T', 'S', '-', '3', '4', '7', - 'D', 'O', 'T', 'S', '-', '3', '4', '8', - 'D', 'O', 'T', 'S', '-', '3', '5', '6', - 'D', 'O', 'T', 'S', '-', '3', '5', '7', - 'D', 'O', 'T', 'S', '-', '3', '5', '8', - 'D', 'O', 'T', 'S', '-', '3', '6', '7', - 'D', 'O', 'T', 'S', '-', '3', '6', '8', - 'D', 'O', 'T', 'S', '-', '3', '7', '8', - 'D', 'O', 'T', 'S', '-', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '6', '7', '8', - 'D', 'O', 'T', 'T', 'E', 'D', '-', 'L', - 'D', 'O', 'T', 'T', 'E', 'D', '-', 'N', - 'D', 'O', 'T', 'T', 'E', 'D', '-', 'P', - 'D', 'O', 'U', 'G', 'H', 'N', 'U', 'T', - 'D', 'O', 'W', 'N', 'W', 'A', 'R', 'D', - 'D', 'R', 'A', 'C', 'H', 'M', 'A', 'S', - 'D', 'R', 'A', 'F', 'T', 'I', 'N', 'G', - 'D', 'R', 'A', 'U', 'G', 'H', 'T', 'S', - 'D', 'R', 'A', 'W', 'I', 'N', 'G', 'S', - 'D', 'R', 'O', 'O', 'L', 'I', 'N', 'G', - 'D', 'U', 'M', 'P', 'L', 'I', 'N', 'G', - 'D', 'U', 'P', 'L', 'O', 'Y', 'A', 'N', - 'D', 'U', 'R', 'A', 'T', 'I', 'O', 'N', - 'D', 'U', 'S', 'H', 'E', 'N', 'N', 'A', - 'D', 'V', 'I', 'S', 'V', 'A', 'R', 'A', - 'E', 'G', 'Y', 'P', 'T', 'I', 'A', 'N', - 'E', 'I', 'G', 'H', 'T', 'E', 'E', 'N', - 'E', 'L', 'E', 'C', 'T', 'R', 'I', 'C', - 'E', 'L', 'E', 'P', 'H', 'A', 'N', 'T', - 'E', 'L', 'E', 'V', 'A', 'T', 'O', 'R', - 'E', 'L', 'E', 'V', 'A', 'T', 'U', 'S', - 'E', 'L', 'L', 'I', 'P', 'S', 'I', 'S', - 'E', 'L', 'L', 'I', 'P', 'T', 'I', 'C', - 'E', 'M', 'P', 'H', 'A', 'S', 'I', 'S', - 'E', 'M', 'P', 'H', 'A', 'T', 'I', 'C', - 'E', 'N', 'T', 'E', 'R', 'I', 'N', 'G', - 'E', 'N', 'V', 'E', 'L', 'O', 'P', 'E', - 'E', 'P', 'E', 'G', 'E', 'R', 'M', 'A', - 'E', 'S', 'U', 'K', 'U', 'U', 'D', 'O', - 'E', 'T', 'E', 'R', 'N', 'I', 'T', 'Y', - 'E', 'T', 'H', 'I', 'O', 'P', 'I', 'C', - 'E', 'U', 'R', 'O', 'P', 'E', 'A', 'N', - 'E', 'X', 'C', 'H', 'A', 'N', 'G', 'E', - 'E', 'X', 'P', 'O', 'N', 'E', 'N', 'T', - 'E', 'X', 'T', 'E', 'N', 'D', 'E', 'D', - 'E', 'Y', 'E', 'B', 'R', 'O', 'W', 'S', - 'F', 'A', 'T', 'H', 'A', 'T', 'A', 'N', - 'F', 'E', 'B', 'R', 'U', 'A', 'R', 'Y', - 'F', 'E', 'M', 'I', 'N', 'I', 'N', 'E', - 'F', 'E', 'S', 'T', 'I', 'V', 'A', 'L', - 'F', 'I', 'G', 'U', 'R', 'E', '-', '1', - 'F', 'I', 'G', 'U', 'R', 'E', '-', '2', - 'F', 'I', 'G', 'U', 'R', 'E', '-', '3', - 'F', 'I', 'L', 'L', 'E', 'R', '-', '1', - 'F', 'I', 'L', 'L', 'E', 'R', '-', '2', - 'F', 'I', 'N', 'G', 'E', 'R', 'E', 'D', - 'F', 'I', 'R', 'E', 'W', 'O', 'R', 'K', - 'F', 'I', 'S', 'H', 'H', 'O', 'O', 'K', - 'F', 'L', 'A', 'I', 'L', 'I', 'N', 'G', - 'F', 'L', 'A', 'M', 'I', 'N', 'G', 'O', - 'F', 'L', 'A', 'P', 'P', 'I', 'N', 'G', - 'F', 'L', 'A', 'T', 'N', 'E', 'S', 'S', - 'F', 'L', 'O', 'R', 'E', 'T', 'T', 'E', - 'F', 'L', 'O', 'U', 'R', 'I', 'S', 'H', - 'F', 'O', 'O', 'T', 'B', 'A', 'L', 'L', - 'F', 'O', 'O', 'T', 'N', 'O', 'T', 'E', - 'F', 'O', 'R', 'E', 'H', 'E', 'A', 'D', - 'F', 'O', 'R', 'T', 'I', 'E', 'T', 'H', - 'F', 'O', 'U', 'N', 'T', 'A', 'I', 'N', - 'F', 'O', 'U', 'R', 'T', 'E', 'E', 'N', - 'F', 'R', 'A', 'C', 'T', 'I', 'O', 'N', - 'F', 'R', 'A', 'G', 'M', 'E', 'N', 'T', - 'F', 'R', 'A', 'G', 'R', 'A', 'N', 'T', - 'F', 'R', 'E', 'E', 'Z', 'I', 'N', 'G', - 'F', 'R', 'O', 'W', 'N', 'I', 'N', 'G', - 'F', 'U', 'L', 'L', 'N', 'E', 'S', 'S', - 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', - 'G', 'A', 'R', 'S', 'H', 'U', 'N', 'I', - 'G', 'A', 'U', 'N', 'T', 'L', 'E', 'T', - 'G', 'E', 'M', 'I', 'N', 'A', 'T', 'E', - 'G', 'E', 'N', 'I', 'T', 'I', 'V', 'E', - 'G', 'E', 'O', 'R', 'G', 'I', 'A', 'N', - 'G', 'H', 'E', 'U', 'G', 'H', 'E', 'N', - 'G', 'O', 'N', 'G', 'G', 'O', 'N', 'G', - 'G', 'R', 'A', 'P', 'H', 'E', 'M', 'E', - 'G', 'R', 'I', 'N', 'N', 'I', 'N', 'G', - 'G', 'R', 'O', 'M', 'N', 'A', 'Y', 'A', - 'G', 'U', 'J', 'A', 'R', 'A', 'T', 'I', - 'G', 'U', 'R', 'M', 'U', 'K', 'H', 'I', - 'H', 'A', 'N', '-', 'A', 'K', 'A', 'T', - 'H', 'A', 'N', 'D', '-', 'C', 'U', 'P', - 'H', 'A', 'N', 'D', 'B', 'A', 'L', 'L', - 'H', 'A', 'N', 'G', 'Z', 'H', 'O', 'U', - 'H', 'A', 'R', 'B', 'A', 'H', 'A', 'Y', - 'H', 'A', 'R', 'D', 'N', 'E', 'S', 'S', - 'H', 'A', 'R', 'K', 'L', 'E', 'A', 'N', - 'H', 'A', 'R', 'M', 'O', 'N', 'I', 'C', - 'H', 'A', 'T', 'C', 'H', 'I', 'N', 'G', - 'H', 'E', 'A', 'V', 'E', 'N', 'L', 'Y', - 'H', 'E', 'D', 'G', 'E', 'H', 'O', 'G', - 'H', 'E', 'X', 'A', 'G', 'R', 'A', 'M', - 'H', 'E', 'X', 'I', 'F', 'O', 'R', 'M', - 'H', 'I', 'B', 'I', 'S', 'C', 'U', 'S', - 'H', 'I', 'G', 'H', '-', 'L', 'O', 'W', - 'H', 'I', 'R', 'A', 'G', 'A', 'N', 'A', - 'H', 'I', 'S', 'T', 'O', 'R', 'I', 'C', - 'H', 'O', 'N', 'E', 'Y', 'B', 'E', 'E', - 'H', 'O', 'S', 'P', 'I', 'T', 'A', 'L', - 'H', 'U', 'A', 'R', 'A', 'D', 'D', 'O', - 'H', 'U', 'N', 'D', 'R', 'E', 'D', 'S', - 'H', 'Y', 'A', 'C', 'I', 'N', 'T', 'H', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'M', - 'I', 'L', 'U', 'Y', 'A', 'N', 'N', 'A', - 'I', 'M', 'I', 'F', 'O', 'N', 'O', 'N', - 'I', 'M', 'P', 'E', 'R', 'I', 'A', 'L', - 'I', 'N', 'C', 'O', 'M', 'I', 'N', 'G', - 'I', 'N', 'C', 'R', 'E', 'A', 'S', 'E', - 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', - 'I', 'N', 'D', 'U', 'C', 'T', 'O', 'R', - 'I', 'N', 'F', 'I', 'N', 'I', 'T', 'Y', - 'I', 'N', 'H', 'E', 'R', 'E', 'N', 'T', - 'I', 'N', 'T', 'E', 'G', 'R', 'A', 'L', - 'I', 'N', 'T', 'E', 'R', 'E', 'S', 'T', - 'I', 'N', 'T', 'E', 'R', 'I', 'O', 'R', - 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'D', - 'I', 'O', 'T', 'I', 'F', 'I', 'E', 'D', - 'I', 'R', 'U', 'Y', 'A', 'N', 'N', 'A', - 'I', 'S', '-', 'P', 'I', 'L', 'L', 'A', - 'I', 'S', 'O', 'L', 'A', 'T', 'E', 'D', - 'J', 'A', 'P', 'A', 'N', 'E', 'S', 'E', - 'J', 'A', 'V', 'A', 'N', 'E', 'S', 'E', - 'J', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'J', 'O', 'Y', 'S', 'T', 'I', 'C', 'K', - 'J', 'U', 'G', 'G', 'L', 'I', 'N', 'G', - 'K', 'A', 'K', 'T', 'O', 'V', 'I', 'K', - 'K', 'A', 'N', 'G', 'A', 'R', 'O', 'O', - 'K', 'A', 'R', 'S', 'H', 'A', 'N', 'A', - 'K', 'A', 'S', 'H', 'M', 'I', 'R', 'I', - 'K', 'A', 'S', 'R', 'A', 'T', 'A', 'N', - 'K', 'A', 'T', 'A', 'K', 'A', 'N', 'A', - 'K', 'A', 'T', 'H', 'I', 'S', 'T', 'I', - 'K', 'E', 'Y', 'B', 'O', 'A', 'R', 'D', - 'K', 'H', 'O', 'K', 'H', 'L', 'O', 'M', - 'K', 'N', 'E', 'E', 'L', 'I', 'N', 'G', - 'K', 'N', 'U', 'C', 'K', 'L', 'E', 'S', - 'K', 'O', 'N', 'T', 'E', 'V', 'M', 'A', - 'K', 'O', 'U', 'F', 'I', 'S', 'M', 'A', - 'K', 'R', 'E', 'M', 'A', 'S', 'T', 'I', - 'L', '-', 'S', 'H', 'A', 'P', 'E', 'D', - 'L', 'A', 'C', 'R', 'O', 'S', 'S', 'E', - 'L', 'A', 'N', 'G', 'U', 'A', 'G', 'E', - 'L', 'A', 'T', 'I', 'N', 'A', 'T', 'E', - 'L', 'A', 'U', 'G', 'H', 'I', 'N', 'G', - 'L', 'E', 'A', 'F', 'L', 'E', 'S', 'S', - 'L', 'E', 'E', 'R', 'A', 'E', 'W', 'A', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '1', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '2', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '3', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '4', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '5', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '6', - 'L', 'E', 'N', 'G', 'T', 'H', '-', '7', - 'L', 'I', 'G', 'A', 'T', 'I', 'N', 'G', - 'L', 'I', 'G', 'A', 'T', 'U', 'R', 'E', - 'L', 'I', 'P', 'S', 'T', 'I', 'C', 'K', - 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', - 'L', 'O', 'C', 'A', 'T', 'I', 'V', 'E', - 'L', 'O', 'G', 'O', 'G', 'R', 'A', 'M', - 'L', 'O', 'G', 'O', 'T', 'Y', 'P', 'E', - 'L', 'O', 'L', 'L', 'I', 'P', 'O', 'P', - 'L', 'O', 'R', 'R', 'A', 'I', 'N', 'E', - 'L', 'O', 'S', 'S', 'L', 'E', 'S', 'S', - 'M', 'A', 'E', 'M', 'K', 'P', 'E', 'N', - 'M', 'A', 'E', 'M', 'V', 'E', 'U', 'X', - 'M', 'A', 'H', 'A', 'J', 'A', 'N', 'I', - 'M', 'A', 'H', 'A', 'P', 'A', 'K', 'H', - 'M', 'A', 'I', 'M', 'A', 'L', 'A', 'I', - 'M', 'A', 'I', 'Y', 'A', 'M', 'O', 'K', - 'M', 'A', 'K', 'E', 'M', 'A', 'K', 'E', - 'M', 'A', 'N', 'A', 'C', 'L', 'E', 'S', - 'M', 'A', 'N', 'D', 'A', 'R', 'I', 'N', - 'M', 'A', 'N', 'G', 'A', 'L', 'A', 'M', - 'M', 'A', 'R', 'R', 'A', 'T', 'A', 'N', - 'M', 'A', 'R', 'R', 'I', 'A', 'G', 'E', - 'M', 'A', 'R', 'R', 'Y', 'I', 'N', 'G', - 'M', 'A', 'R', 'T', 'Y', 'R', 'I', 'A', - 'M', 'A', 'S', 'H', 'F', 'A', 'A', 'T', - 'M', 'A', 'X', 'I', 'M', 'I', 'Z', 'E', - 'M', 'B', 'E', 'E', 'K', 'E', 'E', 'T', - 'M', 'B', 'I', 'R', 'I', 'E', 'E', 'N', - 'M', 'E', 'A', 'S', 'U', 'R', 'E', 'D', - 'M', 'E', 'D', 'I', 'C', 'I', 'N', 'E', - 'M', 'E', 'D', 'I', 'E', 'V', 'A', 'L', - 'M', 'E', 'M', '-', 'Q', 'O', 'P', 'H', - 'M', 'E', 'R', 'O', 'I', 'T', 'I', 'C', - 'M', 'E', 'T', 'R', 'E', 'T', 'E', 'S', - 'M', 'E', 'T', 'R', 'I', 'C', 'A', 'L', - 'M', 'I', 'L', 'I', 'T', 'A', 'R', 'Y', - 'M', 'I', 'L', 'L', 'I', 'O', 'N', 'S', - 'M', 'I', 'N', 'I', 'D', 'I', 'S', 'C', - 'M', 'I', 'N', 'I', 'M', 'I', 'Z', 'E', - 'M', 'I', 'N', 'I', 'S', 'T', 'E', 'R', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', - 'M', 'O', 'H', 'A', 'M', 'M', 'A', 'D', - 'M', 'O', 'N', 'O', 'G', 'R', 'A', 'M', - 'M', 'O', 'N', 'O', 'R', 'A', 'I', 'L', - 'M', 'O', 'N', 'T', 'I', 'E', 'E', 'N', - 'M', 'O', 'S', 'Q', 'U', 'I', 'T', 'O', - 'M', 'O', 'T', 'O', 'R', 'W', 'A', 'Y', - 'M', 'O', 'U', 'N', 'T', 'A', 'I', 'N', - 'M', 'O', 'V', 'E', 'M', 'E', 'N', 'T', - 'M', 'T', 'A', 'V', 'R', 'U', 'L', 'I', - 'M', 'U', 'L', 'T', 'I', 'M', 'A', 'P', - 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'E', - 'M', 'U', 'L', 'T', 'I', 'S', 'E', 'T', - 'M', 'U', 'S', 'H', 'R', 'O', 'O', 'M', - 'N', 'A', 'N', 'S', 'A', 'N', 'A', 'Q', - 'N', 'A', 'T', 'I', 'O', 'N', 'A', 'L', - 'N', 'A', 'T', 'T', 'I', 'L', 'I', 'K', - 'N', 'E', 'G', 'A', 'T', 'I', 'O', 'N', - 'N', 'E', 'G', 'A', 'T', 'I', 'V', 'E', - 'N', 'G', 'E', 'U', 'R', 'E', 'U', 'T', - 'N', 'G', 'G', 'A', 'A', 'M', 'A', 'E', - 'N', 'G', 'G', 'E', 'U', 'A', 'E', 'T', - 'N', 'G', 'K', 'E', 'U', 'A', 'E', 'M', - 'N', 'G', 'K', 'E', 'U', 'A', 'E', 'Q', - 'N', 'I', 'K', 'H', 'A', 'H', 'I', 'T', - 'N', 'I', 'N', 'E', 'T', 'E', 'E', 'N', - 'N', 'J', 'E', 'U', 'A', 'E', 'N', 'A', - 'N', 'O', '-', 'B', 'R', 'E', 'A', 'K', - 'N', 'O', 'R', 'T', 'H', 'E', 'R', 'N', - 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N', - 'N', 'O', 'T', 'E', 'B', 'O', 'O', 'K', - 'N', 'O', 'T', 'E', 'H', 'E', 'A', 'D', - 'N', 'O', 'V', 'E', 'M', 'B', 'E', 'R', - 'N', 'T', 'E', 'U', 'N', 'G', 'B', 'A', - 'N', 'Y', 'I', 'A', 'K', 'E', 'N', 'G', - 'O', 'B', 'L', 'A', 'C', 'H', 'K', 'O', - 'O', 'B', 'S', 'E', 'R', 'V', 'E', 'R', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '6', - 'O', 'M', 'I', 'S', 'S', 'I', 'O', 'N', - 'O', 'N', 'C', 'O', 'M', 'I', 'N', 'G', - 'O', 'N', 'E', '-', 'L', 'I', 'N', 'E', - 'O', 'P', 'E', 'R', 'A', 'T', 'O', 'R', - 'O', 'P', 'P', 'O', 'S', 'I', 'N', 'G', - 'O', 'R', 'I', 'G', 'I', 'N', 'A', 'L', - 'O', 'R', 'N', 'A', 'M', 'E', 'N', 'T', - 'O', 'R', 'T', 'H', 'O', 'D', 'O', 'X', - 'O', 'T', 'S', 'E', 'C', 'H', 'K', 'A', - 'O', 'U', 'T', 'L', 'I', 'N', 'E', 'D', - 'O', 'V', 'E', 'R', 'L', 'A', 'I', 'D', - 'O', 'V', 'E', 'R', 'L', 'I', 'N', 'E', - 'O', 'V', 'E', 'R', 'L', 'O', 'N', 'G', - 'O', 'V', 'E', 'R', 'R', 'I', 'D', 'E', - 'P', 'A', 'A', 'S', 'E', 'N', 'T', 'O', - 'P', 'A', 'I', 'R', 'T', 'H', 'R', 'A', - 'P', 'A', 'L', 'O', 'C', 'H', 'K', 'A', - 'P', 'A', 'M', 'E', 'N', 'E', 'N', 'G', - 'P', 'A', 'M', 'U', 'D', 'P', 'O', 'D', - 'P', 'A', 'N', 'C', 'A', 'K', 'E', 'S', - 'P', 'A', 'N', 'G', 'H', 'U', 'L', 'U', - 'P', 'A', 'N', 'G', 'L', 'O', 'N', 'G', - 'P', 'A', 'N', 'G', 'O', 'L', 'A', 'T', - 'P', 'A', 'N', 'O', 'L', 'O', 'N', 'G', - 'P', 'A', 'N', 'Y', 'A', 'K', 'R', 'A', - 'P', 'A', 'N', 'Y', 'E', 'C', 'E', 'K', - 'P', 'A', 'R', 'A', 'K', 'L', 'I', 'T', - 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', - 'P', 'A', 'R', 'I', 'C', 'H', 'O', 'N', - 'P', 'A', 'R', 'T', 'H', 'I', 'A', 'N', - 'P', 'A', 'S', 'A', 'N', 'G', 'A', 'N', - 'P', 'A', 'S', 'S', 'P', 'O', 'R', 'T', - 'P', 'A', 'T', 'H', 'A', 'K', 'K', 'U', - 'P', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'P', 'E', 'D', 'E', 'S', 'T', 'A', 'L', - 'P', 'E', 'L', 'A', 'S', 'T', 'O', 'N', - 'P', 'E', 'N', 'T', 'A', 'G', 'O', 'N', - 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'A', - 'P', 'E', 'R', 'S', 'O', 'N', 'A', 'L', - 'P', 'E', 'T', 'A', 'L', 'L', 'E', 'D', - 'P', 'H', 'A', 'A', 'R', 'K', 'A', 'A', - 'P', 'H', 'A', 'G', 'S', '-', 'P', 'A', - 'P', 'H', 'A', 'I', 'S', 'T', 'O', 'S', - 'P', 'I', 'N', 'C', 'H', 'I', 'N', 'G', - 'P', 'I', 'N', 'W', 'H', 'E', 'E', 'L', - 'P', 'I', 'P', 'A', 'E', 'M', 'B', 'A', - 'P', 'L', 'A', 'S', 'T', 'I', 'C', 'S', - 'P', 'L', 'E', 'A', 'D', 'I', 'N', 'G', - 'P', 'L', 'E', 'T', 'H', 'R', 'O', 'N', - 'P', 'N', 'E', 'U', 'M', 'A', 'T', 'A', - 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G', - 'P', 'O', 'K', 'R', 'Y', 'T', 'I', 'E', - 'P', 'O', 'R', 'T', 'A', 'B', 'L', 'E', - 'P', 'O', 'R', 'T', 'R', 'A', 'I', 'T', - 'P', 'O', 'S', 'E', 'I', 'D', 'O', 'N', - 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', - 'P', 'O', 'W', 'D', 'E', 'R', 'E', 'D', - 'P', 'R', 'A', 'M', '-', 'B', 'E', 'I', - 'P', 'R', 'A', 'M', '-', 'P', 'I', 'I', - 'P', 'R', 'E', 'C', 'E', 'D', 'E', 'D', - 'P', 'R', 'E', 'C', 'E', 'D', 'E', 'S', - 'P', 'R', 'E', 'F', 'I', 'X', 'E', 'D', - 'P', 'R', 'E', 'G', 'N', 'A', 'N', 'T', - 'P', 'R', 'E', 'V', 'I', 'O', 'U', 'S', - 'P', 'R', 'I', 'N', 'C', 'E', 'S', 'S', - 'P', 'R', 'O', 'F', 'O', 'U', 'N', 'D', - 'P', 'R', 'O', 'G', 'R', 'E', 'S', 'S', - 'P', 'R', 'O', 'P', 'E', 'R', 'T', 'Y', - 'P', 'R', 'O', 'S', 'T', 'A', 'Y', 'A', - 'P', 'U', 'S', 'H', 'P', 'I', 'K', 'A', - 'Q', 'A', 'I', 'R', 'T', 'H', 'R', 'A', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', - 'Q', 'U', 'A', 'N', 'T', 'I', 'T', 'Y', - 'Q', 'U', 'A', 'R', 'T', 'E', 'R', 'S', - 'Q', 'U', 'E', 'S', 'T', 'I', 'O', 'N', - 'Q', 'U', 'I', 'N', 'C', 'U', 'N', 'X', - 'Q', 'U', 'I', 'N', 'T', 'I', 'L', 'E', - 'R', 'A', 'H', 'I', 'M', 'A', 'H', 'U', - 'R', 'E', 'C', 'E', 'I', 'V', 'E', 'R', - 'R', 'E', 'C', 'O', 'R', 'D', 'E', 'R', - 'R', 'E', 'C', 'Y', 'C', 'L', 'E', 'D', - 'R', 'E', 'F', 'O', 'R', 'M', 'E', 'D', - 'R', 'E', 'G', 'I', 'O', 'N', 'A', 'L', - 'R', 'E', 'L', 'A', 'T', 'I', 'O', 'N', - 'R', 'E', 'L', 'I', 'E', 'V', 'E', 'D', - 'R', 'E', 'L', 'I', 'G', 'I', 'O', 'N', - 'R', 'E', 'M', 'I', 'N', 'D', 'E', 'R', - 'R', 'E', 'N', 'T', 'O', 'G', 'E', 'N', - 'R', 'E', 'P', 'E', 'A', 'T', 'E', 'D', - 'R', 'E', 'S', 'I', 'S', 'T', 'O', 'R', - 'R', 'E', 'S', 'O', 'U', 'R', 'C', 'E', - 'R', 'E', 'S', 'P', 'O', 'N', 'S', 'E', - 'R', 'E', 'S', 'T', 'R', 'O', 'O', 'M', - 'R', 'E', 'V', 'E', 'R', 'S', 'E', 'D', - 'R', 'I', 'C', 'K', 'S', 'H', 'A', 'W', - 'R', 'I', 'G', 'V', 'E', 'D', 'I', 'C', - 'R', 'O', 'H', 'I', 'N', 'G', 'Y', 'A', - 'R', 'O', 'M', 'A', 'N', 'I', 'A', 'N', - 'R', 'O', 'T', 'A', 'T', 'I', 'O', 'N', - 'R', 'U', 'K', 'K', 'A', 'K', 'H', 'A', - 'S', '-', 'S', 'H', 'A', 'P', 'E', 'D', - 'S', 'A', 'I', 'L', 'B', 'O', 'A', 'T', - 'S', 'A', 'L', 'T', 'I', 'L', 'L', 'O', - 'S', 'A', 'L', 'T', 'I', 'R', 'E', 'S', - 'S', 'A', 'L', 'U', 'T', 'I', 'N', 'G', - 'S', 'A', 'N', 'D', 'W', 'I', 'C', 'H', - 'S', 'A', 'N', 'S', 'K', 'R', 'I', 'T', - 'S', 'A', 'N', 'T', 'I', 'I', 'M', 'U', - 'S', 'A', 'N', 'Y', 'O', 'O', 'G', 'A', - 'S', 'A', 'U', 'R', 'O', 'P', 'O', 'D', - 'S', 'A', 'X', 'I', 'M', 'A', 'T', 'A', - 'S', 'C', 'I', 'S', 'S', 'O', 'R', 'S', - 'S', 'C', 'O', 'R', 'P', 'I', 'O', 'N', - 'S', 'C', 'O', 'R', 'P', 'I', 'U', 'S', - 'S', 'E', 'E', 'D', 'L', 'I', 'N', 'G', - 'S', 'E', 'L', 'E', 'C', 'T', 'O', 'R', - 'S', 'E', 'M', 'I', 'S', 'O', 'F', 'T', - 'S', 'E', 'M', 'U', 'N', 'C', 'I', 'A', - 'S', 'E', 'N', 'T', 'A', 'G', 'O', 'N', - 'S', 'E', 'P', 'T', 'U', 'P', 'L', 'E', - 'S', 'H', 'A', 'D', 'O', 'W', 'E', 'D', - 'S', 'H', 'A', 'M', 'R', 'O', 'C', 'K', - 'S', 'H', 'E', '-', 'G', 'O', 'A', 'T', - 'S', 'H', 'E', 'S', 'H', 'L', 'A', 'M', - 'S', 'H', 'O', 'O', 'T', 'I', 'N', 'G', - 'S', 'H', 'O', 'P', 'P', 'I', 'N', 'G', - 'S', 'H', 'O', 'U', 'L', 'D', 'E', 'R', - 'S', 'H', 'U', 'A', 'N', 'G', 'X', 'I', - 'S', 'I', 'C', 'K', 'N', 'E', 'S', 'S', - 'S', 'I', 'D', 'E', 'W', 'A', 'Y', 'S', - 'S', 'I', 'M', 'A', 'N', 'S', 'I', 'S', - 'S', 'I', 'N', 'U', 'S', 'O', 'I', 'D', - 'S', 'I', 'X', '-', 'L', 'I', 'N', 'E', - 'S', 'L', 'A', 'V', 'O', 'N', 'I', 'C', - 'S', 'L', 'E', 'E', 'P', 'I', 'N', 'G', - 'S', 'L', 'I', 'G', 'H', 'T', 'L', 'Y', - 'S', 'M', 'I', 'R', 'K', 'I', 'N', 'G', - 'S', 'N', 'E', 'E', 'Z', 'I', 'N', 'G', - 'S', 'O', 'F', 'T', 'B', 'A', 'L', 'L', - 'S', 'O', 'F', 'T', 'N', 'E', 'S', 'S', - 'S', 'O', 'R', 'O', 'C', 'H', 'Y', 'A', - 'S', 'O', 'U', 'T', 'H', 'E', 'R', 'N', - 'S', 'P', 'A', 'R', 'K', 'L', 'E', 'R', - 'S', 'P', 'A', 'R', 'K', 'L', 'E', 'S', - 'S', 'P', 'E', 'A', 'K', 'I', 'N', 'G', - 'S', 'P', 'E', 'S', 'M', 'I', 'L', 'O', - 'S', 'P', 'I', 'R', 'I', 'T', 'U', 'S', - 'S', 'P', 'L', 'A', 'T', 'T', 'E', 'R', - 'S', 'P', 'O', 'U', 'T', 'I', 'N', 'G', - 'S', 'Q', 'U', 'E', 'E', 'Z', 'E', 'D', - 'S', 'Q', 'U', 'I', 'G', 'G', 'L', 'E', - 'S', 'Q', 'U', 'I', 'R', 'R', 'E', 'L', - 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'O', - 'S', 'T', 'A', 'L', 'L', 'I', 'O', 'N', - 'S', 'T', 'A', 'N', 'D', 'A', 'R', 'D', - 'S', 'T', 'A', 'N', 'D', 'I', 'N', 'G', - 'S', 'T', 'A', 'R', 'T', 'I', 'N', 'G', - 'S', 'T', 'E', 'A', 'M', 'I', 'N', 'G', - 'S', 'T', 'E', 'M', '-', '2', '3', '4', - 'S', 'T', 'E', 'P', 'P', 'I', 'N', 'G', - 'S', 'T', 'I', 'C', 'K', 'I', 'N', 'G', - 'S', 'T', 'O', 'P', 'I', 'T', 'S', 'A', - 'S', 'T', 'O', 'P', 'P', 'A', 'G', 'E', - 'S', 'T', 'O', 'P', 'P', 'I', 'N', 'G', - 'S', 'T', 'R', 'A', 'I', 'G', 'H', 'T', - 'S', 'T', 'R', 'A', 'I', 'N', 'E', 'R', - 'S', 'T', 'R', 'A', 'T', 'I', 'A', 'N', - 'S', 'T', 'R', 'E', 'A', 'M', 'E', 'R', - 'S', 'T', 'R', 'E', 'N', 'G', 'T', 'H', - 'S', 'T', 'R', 'I', 'C', 'T', 'L', 'Y', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '1', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '2', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '3', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '4', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '5', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '6', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '7', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '8', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '9', - 'S', 'U', 'B', 'G', 'R', 'O', 'U', 'P', - 'S', 'U', 'C', 'C', 'E', 'E', 'D', 'S', - 'S', 'U', 'I', 'T', 'A', 'B', 'L', 'E', - 'S', 'U', 'P', 'E', 'R', 'S', 'E', 'T', - 'S', 'U', 'R', 'R', 'O', 'U', 'N', 'D', - 'S', 'V', 'E', 'T', 'L', 'A', 'Y', 'A', - 'S', 'W', 'A', 'P', 'P', 'I', 'N', 'G', - 'S', 'W', 'I', 'M', 'M', 'I', 'N', 'G', - 'S', 'W', 'I', 'M', 'S', 'U', 'I', 'T', - 'S', 'Y', 'L', 'L', 'A', 'B', 'L', 'E', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '6', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '7', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '8', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '9', - 'S', 'Y', 'M', 'M', 'E', 'T', 'R', 'Y', - 'T', 'A', 'G', 'B', 'A', 'N', 'W', 'A', - 'T', 'A', 'I', 'L', 'L', 'E', 'S', 'S', - 'T', 'A', 'N', 'A', 'B', 'A', 'T', 'A', - 'T', 'A', 'R', 'T', 'A', 'R', '-', '2', - 'T', 'A', 'T', 'T', 'O', 'O', 'E', 'D', - 'T', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'T', 'E', 'A', 'R', '-', 'O', 'F', 'F', - 'T', 'E', 'R', 'M', 'I', 'N', 'A', 'L', - 'T', 'E', 'S', 'S', 'A', 'R', 'O', 'N', - 'T', 'E', 'T', 'A', 'R', 'T', 'O', 'S', - 'T', 'E', 'T', 'R', 'A', 'P', 'L', 'I', - 'T', 'H', 'E', 'S', 'P', 'I', 'A', 'N', - 'T', 'H', 'I', 'N', 'K', 'I', 'N', 'G', - 'T', 'H', 'I', 'R', 'T', 'E', 'E', 'N', - 'T', 'H', 'O', 'L', 'H', 'O', 'M', 'A', - 'T', 'H', 'O', 'U', 'S', 'A', 'N', 'D', - 'T', 'H', 'R', 'E', 'E', '-', 'E', 'M', - 'T', 'H', 'R', 'O', 'W', 'I', 'N', 'G', - 'T', 'H', 'U', 'R', 'I', 'S', 'A', 'Z', - 'T', 'I', 'F', 'I', 'N', 'A', 'G', 'H', - 'T', 'I', 'N', 'C', 'T', 'U', 'R', 'E', - 'T', 'I', 'R', 'O', 'N', 'I', 'A', 'N', - 'T', 'O', 'G', 'E', 'T', 'H', 'E', 'R', - 'T', 'O', 'R', 'C', 'U', 'L', 'U', 'S', - 'T', 'O', 'R', 'T', 'O', 'I', 'S', 'E', - 'T', 'O', 'U', 'C', 'H', 'I', 'N', 'G', - 'T', 'O', 'U', 'R', 'N', 'O', 'I', 'S', - 'T', 'R', 'A', 'I', 'L', 'I', 'N', 'G', - 'T', 'R', 'E', 'A', 'D', 'I', 'N', 'G', - 'T', 'R', 'E', 'S', 'I', 'L', 'L', 'O', - 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', - 'T', 'R', 'I', 'C', 'O', 'L', 'O', 'N', - 'T', 'R', 'I', 'S', 'I', 'M', 'O', 'U', - 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'N', - 'T', 'R', 'O', 'P', 'I', 'C', 'A', 'L', - 'T', 'R', 'U', 'M', 'P', '-', '1', '0', - 'T', 'R', 'U', 'M', 'P', '-', '1', '1', - 'T', 'R', 'U', 'M', 'P', '-', '1', '2', - 'T', 'R', 'U', 'M', 'P', '-', '1', '3', - 'T', 'R', 'U', 'M', 'P', '-', '1', '4', - 'T', 'R', 'U', 'M', 'P', '-', '1', '5', - 'T', 'R', 'U', 'M', 'P', '-', '1', '6', - 'T', 'R', 'U', 'M', 'P', '-', '1', '7', - 'T', 'R', 'U', 'M', 'P', '-', '1', '8', - 'T', 'R', 'U', 'M', 'P', '-', '1', '9', - 'T', 'R', 'U', 'M', 'P', '-', '2', '0', - 'T', 'R', 'U', 'M', 'P', '-', '2', '1', - 'T', 'R', 'Y', 'B', 'L', 'I', 'O', 'N', - 'T', 'T', 'A', 'Y', 'A', 'N', 'N', 'A', - 'T', 'T', 'U', 'D', 'D', 'A', 'A', 'G', - 'T', 'V', 'I', 'M', 'A', 'D', 'U', 'R', - 'T', 'W', 'E', 'L', 'F', 'T', 'H', 'S', - 'T', 'W', 'I', 'S', 'T', 'I', 'N', 'G', - 'T', 'W', 'O', '-', 'L', 'I', 'N', 'E', - 'T', 'Y', 'P', 'E', '-', '1', '-', '2', - 'U', '-', 'S', 'H', 'A', 'P', 'E', 'D', - 'U', 'B', 'H', 'A', 'Y', 'A', 'T', 'O', - 'U', 'G', 'A', 'R', 'I', 'T', 'I', 'C', - 'U', 'I', 'L', 'L', 'E', 'A', 'N', 'N', - 'U', 'M', 'B', 'R', 'E', 'L', 'L', 'A', - 'U', 'N', 'A', 'M', 'U', 'S', 'E', 'D', - 'U', 'N', 'D', 'E', 'R', 'B', 'A', 'R', - 'U', 'N', 'D', 'E', 'R', 'D', 'O', 'T', - 'U', 'N', 'D', 'E', 'R', 'T', 'I', 'E', - 'V', 'A', 'R', 'A', 'A', 'K', 'A', 'N', - 'V', 'A', 'S', 'T', 'N', 'E', 'S', 'S', - 'V', 'E', 'R', 'S', 'I', 'C', 'L', 'E', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', - 'V', 'E', 'U', 'A', 'E', 'P', 'E', 'N', - 'V', 'I', 'E', 'W', 'D', 'A', 'T', 'A', - 'V', 'I', 'T', 'H', 'K', 'U', 'Q', 'I', - 'V', 'O', 'M', 'I', 'T', 'I', 'N', 'G', - 'V', 'R', 'A', 'K', 'H', 'I', 'Y', 'A', - 'V', 'U', 'L', 'C', 'A', 'N', 'U', 'S', - 'W', 'A', '-', 'A', 'A', 'L', 'I', 'H', - 'W', 'A', 'N', 'D', 'E', 'R', 'E', 'R', - 'W', 'A', 'N', 'G', 'K', 'U', 'O', 'Q', - 'W', 'A', 'S', 'A', 'L', 'L', 'A', 'M', - 'W', 'I', 'D', 'E', 'N', 'I', 'N', 'G', - 'W', 'I', 'R', 'E', 'L', 'E', 'S', 'S', - 'W', 'R', 'I', 'N', 'K', 'L', 'E', 'D', - 'W', 'R', 'I', 'N', 'K', 'L', 'E', 'S', - 'Y', 'A', 'M', 'A', 'K', 'K', 'A', 'N', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', - 'Y', 'O', 'U', 'T', 'H', 'F', 'U', 'L', - 'Z', 'A', 'K', 'R', 'Y', 'T', 'O', 'E', - 'Z', 'A', 'N', 'O', 'Z', 'H', 'E', 'K', - 'Z', 'A', 'P', 'Y', 'A', 'T', 'O', 'Y', - 'Z', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'Z', 'N', 'A', 'M', 'E', 'N', 'N', 'Y', - 'Z', 'W', 'A', 'R', 'A', 'K', 'A', 'Y', - 'A', 'A', 'B', 'A', 'A', 'F', 'I', 'L', 'I', - 'A', 'A', 'Z', 'H', 'A', 'A', 'K', 'K', 'U', - 'A', 'B', 'K', 'H', 'A', 'S', 'I', 'A', 'N', - 'A', 'B', 'U', 'N', 'D', 'A', 'N', 'C', 'E', - 'A', 'C', 'C', 'O', 'R', 'D', 'I', 'O', 'N', - 'A', 'D', 'D', 'R', 'E', 'S', 'S', 'E', 'D', - 'A', 'D', 'M', 'I', 'S', 'S', 'I', 'O', 'N', - 'A', 'D', 'V', 'A', 'N', 'T', 'A', 'G', 'E', - 'A', 'L', '-', 'L', 'A', 'K', 'U', 'N', 'A', - 'A', 'L', 'A', 'Y', 'H', 'I', 'M', 'A', 'A', - 'A', 'L', 'P', 'A', 'P', 'R', 'A', 'N', 'A', - 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'E', - 'A', 'M', 'B', 'U', 'L', 'A', 'N', 'C', 'E', - 'A', 'M', 'P', 'E', 'R', 'S', 'A', 'N', 'D', - 'A', 'N', 'A', 'T', 'O', 'L', 'I', 'A', 'N', - 'A', 'N', 'G', 'L', 'I', 'C', 'A', 'N', 'A', - 'A', 'N', 'G', 'U', 'I', 'S', 'H', 'E', 'D', - 'A', 'N', 'T', 'I', 'F', 'O', 'N', 'I', 'A', - 'A', 'N', 'U', 'N', 'A', 'S', 'I', 'K', 'A', - 'A', 'R', '-', 'R', 'A', 'H', 'E', 'E', 'M', - 'A', 'R', '-', 'R', 'A', 'H', 'M', 'A', 'N', - 'A', 'R', 'R', 'O', 'W', 'H', 'E', 'A', 'D', - 'A', 'S', '-', 'S', 'A', 'L', 'A', 'A', 'M', - 'A', 'S', 'C', 'E', 'N', 'D', 'I', 'N', 'G', - 'A', 'S', 'P', 'I', 'R', 'A', 'T', 'E', 'D', - 'A', 'S', 'S', 'E', 'R', 'T', 'I', 'O', 'N', - 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'K', 'S', - 'A', 'T', 'T', 'A', 'C', 'H', 'I', 'N', 'G', - 'A', 'T', 'T', 'E', 'N', 'T', 'I', 'O', 'N', - 'A', 'U', 'B', 'E', 'R', 'G', 'I', 'N', 'E', - 'A', 'U', 'T', 'O', 'M', 'A', 'T', 'E', 'D', - 'B', 'A', 'C', 'K', 'S', 'L', 'A', 'S', 'H', - 'B', 'A', 'C', 'K', 'S', 'P', 'A', 'C', 'E', - 'B', 'A', 'D', 'M', 'I', 'N', 'T', 'O', 'N', - 'B', 'A', 'L', 'L', 'P', 'O', 'I', 'N', 'T', - 'B', 'E', 'G', 'I', 'N', 'N', 'I', 'N', 'G', - 'B', 'H', 'A', 'I', 'K', 'S', 'U', 'K', 'I', - 'B', 'I', 'C', 'Y', 'C', 'L', 'I', 'S', 'T', - 'B', 'I', 'L', 'L', 'I', 'A', 'R', 'D', 'S', - 'B', 'I', 'N', 'O', 'C', 'U', 'L', 'A', 'R', - 'B', 'I', 'O', 'H', 'A', 'Z', 'A', 'R', 'D', - 'B', 'I', 'S', 'E', 'C', 'T', 'I', 'N', 'G', - 'B', 'I', 'S', 'M', 'I', 'L', 'L', 'A', 'H', - 'B', 'L', 'A', 'C', 'K', 'F', 'O', 'O', 'T', - 'B', 'O', 'O', 'M', 'E', 'R', 'A', 'N', 'G', - 'B', 'R', 'A', 'C', 'K', 'E', 'T', 'E', 'D', - 'B', 'R', 'A', 'N', 'C', 'H', 'I', 'N', 'G', - 'B', 'R', 'I', 'E', 'F', 'C', 'A', 'S', 'E', - 'B', 'U', 'I', 'L', 'D', 'I', 'N', 'G', 'S', - 'B', 'U', 'T', 'T', 'E', 'R', 'F', 'L', 'Y', - 'B', 'Y', 'Z', 'A', 'N', 'T', 'I', 'N', 'E', - 'C', 'A', 'P', 'A', 'C', 'I', 'T', 'O', 'R', - 'C', 'A', 'P', 'I', 'T', 'U', 'L', 'U', 'M', - 'C', 'A', 'P', 'R', 'I', 'C', 'O', 'R', 'N', - 'C', 'A', 'R', 'P', 'E', 'N', 'T', 'R', 'Y', - 'C', 'A', 'R', 'T', 'R', 'I', 'D', 'G', 'E', - 'C', 'A', 'R', 'T', 'W', 'H', 'E', 'E', 'L', - 'C', 'A', 'R', 'Y', 'S', 'T', 'I', 'A', 'N', - 'C', 'A', 'U', 'C', 'A', 'S', 'I', 'A', 'N', - 'C', 'E', 'N', 'T', 'U', 'R', 'I', 'A', 'L', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', - 'C', 'H', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'C', 'H', 'E', 'Q', 'U', 'E', 'R', 'E', 'D', - 'C', 'H', 'O', 'C', 'O', 'L', 'A', 'T', 'E', - 'C', 'H', 'R', 'I', 'S', 'T', 'M', 'A', 'S', - 'C', 'I', 'T', 'Y', 'S', 'C', 'A', 'P', 'E', - 'C', 'L', 'A', 'M', 'S', 'H', 'E', 'L', 'L', - 'C', 'L', 'A', 'S', 'S', 'I', 'C', 'A', 'L', - 'C', 'L', 'I', 'P', 'B', 'O', 'A', 'R', 'D', - 'C', 'L', 'O', 'C', 'K', 'W', 'I', 'S', 'E', - 'C', 'L', 'O', 'S', 'E', 'N', 'E', 'S', 'S', - 'C', 'O', 'C', 'K', 'R', 'O', 'A', 'C', 'H', - 'C', 'O', 'L', 'L', 'I', 'S', 'I', 'O', 'N', - 'C', 'O', 'M', 'B', 'I', 'N', 'I', 'N', 'G', - 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', 'D', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', - 'C', 'O', 'M', 'P', 'U', 'T', 'E', 'R', 'S', - 'C', 'O', 'N', 'G', 'R', 'U', 'E', 'N', 'T', - 'C', 'O', 'N', 'J', 'O', 'I', 'N', 'E', 'D', - 'C', 'O', 'N', 'J', 'O', 'I', 'N', 'E', 'R', - 'C', 'O', 'N', 'J', 'U', 'G', 'A', 'T', 'E', - 'C', 'O', 'N', 'S', 'O', 'N', 'A', 'N', 'T', - 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'C', 'Y', - 'C', 'O', 'N', 'T', 'O', 'U', 'R', 'E', 'D', - 'C', 'O', 'P', 'R', 'O', 'D', 'U', 'C', 'T', - 'C', 'O', 'P', 'Y', 'R', 'I', 'G', 'H', 'T', - 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'D', 'O', - 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'T', 'S', - 'C', 'R', 'O', 'C', 'O', 'D', 'I', 'L', 'E', - 'C', 'R', 'O', 'I', 'S', 'S', 'A', 'N', 'T', - 'C', 'R', 'O', 'U', 'C', 'H', 'I', 'N', 'G', - 'C', 'R', 'U', 'C', 'I', 'F', 'O', 'R', 'M', - 'C', 'U', 'A', 'T', 'R', 'I', 'L', 'L', 'O', - 'C', 'U', 'N', 'E', 'I', 'F', 'O', 'R', 'M', - 'D', 'A', 'H', 'Y', 'A', 'A', 'U', 'S', 'H', - 'D', 'A', 'R', 'K', 'E', 'N', 'I', 'N', 'G', - 'D', 'A', 'Y', '-', 'N', 'I', 'G', 'H', 'T', - 'D', 'E', 'C', 'I', 'D', 'U', 'O', 'U', 'S', - 'D', 'E', 'L', 'I', 'C', 'I', 'O', 'U', 'S', - 'D', 'E', 'L', 'I', 'M', 'I', 'T', 'E', 'R', - 'D', 'E', 'N', 'T', 'I', 'S', 'T', 'R', 'Y', - 'D', 'E', 'P', 'A', 'R', 'T', 'I', 'N', 'G', - 'D', 'E', 'P', 'A', 'R', 'T', 'U', 'R', 'E', - 'D', 'E', 'S', 'C', 'E', 'N', 'D', 'E', 'R', - 'D', 'I', 'A', 'E', 'R', 'E', 'S', 'I', 'S', - 'D', 'I', 'A', 'G', 'O', 'N', 'A', 'L', 'S', - 'D', 'I', 'A', 'L', 'E', 'C', 'T', '-', 'P', - 'D', 'I', 'A', 'L', 'Y', 'T', 'I', 'K', 'A', - 'D', 'I', 'A', 'T', 'O', 'N', 'I', 'K', 'I', - 'D', 'I', 'F', 'T', 'O', 'G', 'G', 'O', 'S', - 'D', 'I', 'G', 'R', 'A', 'M', 'M', 'O', 'S', - 'D', 'I', 'M', 'E', 'N', 'S', 'I', 'O', 'N', - 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', - 'D', 'I', 'S', 'G', 'U', 'I', 'S', 'E', 'D', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '3', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '3', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '3', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '5', '6', '7', '8', - 'D', 'O', 'W', 'N', 'W', 'A', 'R', 'D', 'S', - 'D', 'R', 'O', 'M', 'E', 'D', 'A', 'R', 'Y', - 'D', 'U', 'P', 'O', 'N', 'D', 'I', 'U', 'S', - 'E', 'D', 'I', 'T', 'O', 'R', 'I', 'A', 'L', - 'E', 'E', 'B', 'E', 'E', 'F', 'I', 'L', 'I', - 'E', 'I', 'G', 'H', 'T', 'I', 'E', 'T', 'H', - 'E', 'M', 'B', 'E', 'D', 'D', 'I', 'N', 'G', - 'E', 'N', 'C', 'L', 'O', 'S', 'I', 'N', 'G', - 'E', 'N', 'C', 'L', 'O', 'S', 'U', 'R', 'E', - 'E', 'N', 'D', 'E', 'A', 'V', 'O', 'U', 'R', - 'E', 'N', 'D', 'O', 'F', 'O', 'N', 'O', 'N', - 'E', 'S', 'T', 'I', 'M', 'A', 'T', 'E', 'D', - 'E', 'S', 'T', 'I', 'M', 'A', 'T', 'E', 'S', - 'E', 'V', 'E', 'R', 'G', 'R', 'E', 'E', 'N', - 'E', 'X', 'C', 'E', 'L', 'L', 'E', 'N', 'T', - 'E', 'X', 'P', 'L', 'O', 'D', 'I', 'N', 'G', - 'E', 'X', 'P', 'L', 'O', 'S', 'I', 'O', 'N', - 'E', 'X', 'T', 'E', 'N', 'S', 'I', 'O', 'N', - 'E', 'X', 'T', 'R', 'A', '-', 'L', 'O', 'W', - 'E', 'X', 'T', 'R', 'E', 'M', 'E', 'L', 'Y', - 'E', 'Y', 'B', 'E', 'Y', 'F', 'I', 'L', 'I', - 'E', 'Y', 'E', 'L', 'A', 'S', 'H', 'E', 'S', - 'F', 'A', 'C', 'S', 'I', 'M', 'I', 'L', 'E', - 'F', 'A', 'N', 'E', 'R', 'O', 'S', 'I', 'S', - 'F', 'E', 'U', 'F', 'E', 'U', 'A', 'E', 'T', - 'F', 'I', 'N', 'A', 'N', 'C', 'I', 'A', 'L', - 'F', 'I', 'R', 'E', 'W', 'O', 'R', 'K', 'S', - 'F', 'I', 'V', 'E', '-', 'L', 'I', 'K', 'E', - 'F', 'I', 'V', 'E', '-', 'L', 'I', 'N', 'E', - 'F', 'L', 'A', 'T', 'B', 'R', 'E', 'A', 'D', - 'F', 'L', 'A', 'T', 'T', 'E', 'N', 'E', 'D', - 'F', 'O', 'L', 'L', 'O', 'W', 'I', 'N', 'G', - 'F', 'O', 'O', 'T', 'S', 'T', 'O', 'O', 'L', - 'F', 'O', 'S', 'T', 'E', 'R', 'I', 'N', 'G', - 'F', 'O', 'U', 'R', '-', 'L', 'I', 'N', 'E', - 'F', 'R', 'E', 'T', 'B', 'O', 'A', 'R', 'D', - 'F', 'R', 'I', 'C', 'A', 'T', 'I', 'V', 'E', - 'F', 'U', 'L', 'L', 'W', 'I', 'D', 'T', 'H', - 'G', 'A', 'T', 'H', 'E', 'R', 'I', 'N', 'G', - 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'I', 'C', - 'G', 'E', 'R', 'S', 'H', 'A', 'Y', 'I', 'M', - 'G', 'H', 'E', 'U', 'A', 'E', 'R', 'A', 'E', - 'G', 'L', 'I', 'S', 'S', 'A', 'N', 'D', 'O', - 'G', 'N', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'G', 'O', 'L', 'U', 'B', 'C', 'H', 'I', 'K', - 'G', 'O', 'R', 'G', 'O', 'T', 'E', 'R', 'I', - 'G', 'R', 'A', 'V', 'E', 'Y', 'A', 'R', 'D', - 'G', 'R', 'E', 'A', 'T', 'N', 'E', 'S', 'S', - 'G', 'R', 'E', 'G', 'O', 'R', 'I', 'A', 'N', - 'G', 'R', 'I', 'M', 'A', 'C', 'I', 'N', 'G', - 'G', 'U', 'A', 'R', 'D', 'S', 'M', 'A', 'N', - 'G', 'U', 'R', 'A', 'M', 'U', 'T', 'O', 'N', - 'H', 'A', 'L', 'F', 'W', 'I', 'D', 'T', 'H', - 'H', 'A', 'M', 'B', 'U', 'R', 'G', 'E', 'R', - 'H', 'A', 'N', 'D', '-', 'C', 'L', 'A', 'W', - 'H', 'A', 'N', 'D', '-', 'F', 'I', 'S', 'T', - 'H', 'A', 'N', 'D', '-', 'F', 'L', 'A', 'T', - 'H', 'A', 'N', 'D', '-', 'H', 'O', 'O', 'K', - 'H', 'A', 'N', 'D', '-', 'O', 'V', 'A', 'L', - 'H', 'A', 'N', 'D', 'S', 'H', 'A', 'K', 'E', - 'H', 'E', 'A', 'D', 'P', 'H', 'O', 'N', 'E', - 'H', 'E', 'A', 'D', 'S', 'C', 'A', 'R', 'F', - 'H', 'E', 'A', 'D', 'S', 'T', 'O', 'N', 'E', - 'H', 'E', 'K', 'U', 'T', 'A', 'A', 'R', 'U', - 'H', 'E', 'R', 'M', 'I', 'T', 'I', 'A', 'N', - 'H', 'O', 'U', 'R', 'G', 'L', 'A', 'S', 'S', - 'H', 'U', 'N', 'G', 'A', 'R', 'I', 'A', 'N', - 'I', 'C', 'H', 'I', 'M', 'A', 'T', 'O', 'S', - 'I', 'D', 'E', 'N', 'T', 'I', 'C', 'A', 'L', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', - 'I', 'L', 'U', 'U', 'Y', 'A', 'N', 'N', 'A', - 'I', 'M', 'I', 'F', 'T', 'H', 'O', 'R', 'A', - 'I', 'N', 'C', 'L', 'U', 'D', 'I', 'N', 'G', - 'I', 'N', 'C', 'R', 'E', 'A', 'S', 'E', 'S', - 'I', 'N', 'C', 'R', 'E', 'M', 'E', 'N', 'T', - 'I', 'N', 'D', 'I', 'C', 'A', 'T', 'O', 'R', - 'I', 'N', 'D', 'I', 'C', 'T', 'I', 'O', 'N', - 'I', 'N', 'F', 'L', 'U', 'E', 'N', 'C', 'E', - 'I', 'N', 'N', 'O', 'C', 'E', 'N', 'C', 'E', - 'I', 'N', 'S', 'E', 'R', 'T', 'I', 'O', 'N', - 'I', 'N', 'V', 'I', 'S', 'I', 'B', 'L', 'E', - 'I', 'R', 'U', 'U', 'Y', 'A', 'N', 'N', 'A', - 'I', 'S', 'E', 'N', '-', 'I', 'S', 'E', 'N', - 'I', 'S', 'O', 'S', 'C', 'E', 'L', 'E', 'S', - 'I', 'T', 'E', 'R', 'A', 'T', 'I', 'O', 'N', - 'J', 'E', 'L', 'L', 'Y', 'F', 'I', 'S', 'H', - 'J', 'E', 'R', 'U', 'S', 'A', 'L', 'E', 'M', - 'J', 'O', 'N', 'G', 'S', 'E', 'O', 'N', 'G', - 'J', 'U', 'N', 'G', 'S', 'E', 'O', 'N', 'G', - 'J', 'U', 'S', 'T', 'I', 'F', 'I', 'E', 'D', - 'K', 'A', 'T', 'A', 'V', 'A', 'S', 'M', 'A', - 'K', 'E', 'M', 'P', 'H', 'R', 'E', 'N', 'G', - 'K', 'E', 'N', 'T', 'I', 'M', 'A', 'T', 'A', - 'K', 'H', 'U', 'D', 'A', 'W', 'A', 'D', 'I', - 'K', 'H', 'U', 'E', 'N', '-', 'L', 'U', 'E', - 'K', 'I', 'R', 'O', 'W', 'A', 'T', 'T', 'O', - 'K', 'I', 'W', 'I', 'F', 'R', 'U', 'I', 'T', - 'K', 'R', 'A', 'T', 'I', 'M', 'A', 'T', 'A', - 'K', 'U', 'R', 'U', 'Z', 'E', 'I', 'R', 'O', - 'L', 'A', 'B', 'O', 'U', 'R', 'I', 'N', 'G', - 'L', 'A', 'R', 'Y', 'N', 'G', 'E', 'A', 'L', - 'L', 'E', 'F', 'T', '-', 'H', 'A', 'N', 'D', - 'L', 'E', 'F', 'T', '-', 'S', 'I', 'D', 'E', - 'L', 'E', 'F', 'T', '-', 'S', 'T', 'E', 'M', - 'L', 'E', 'F', 'T', 'W', 'A', 'R', 'D', 'S', - 'L', 'E', 'S', 'S', '-', 'T', 'H', 'A', 'N', - 'L', 'H', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'L', 'I', 'A', 'B', 'I', 'L', 'I', 'T', 'Y', - 'L', 'I', 'G', 'H', 'T', 'N', 'I', 'N', 'G', - 'L', 'O', 'D', 'E', 'S', 'T', 'O', 'N', 'E', - 'M', 'A', 'E', 'M', 'G', 'B', 'I', 'E', 'E', - 'M', 'A', 'H', 'A', 'P', 'R', 'A', 'N', 'A', - 'M', 'A', 'I', 'T', 'A', 'I', 'K', 'H', 'U', - 'M', 'A', 'L', 'A', 'Y', 'A', 'L', 'A', 'M', - 'M', 'A', 'R', 'C', 'A', 'S', 'I', 'T', 'E', - 'M', 'A', 'S', 'C', 'U', 'L', 'I', 'N', 'E', - 'M', 'A', 'T', 'E', 'R', 'I', 'A', 'L', 'S', - 'M', 'E', 'G', 'A', 'P', 'H', 'O', 'N', 'E', - 'M', 'E', 'R', 'I', 'D', 'I', 'A', 'N', 'S', - 'M', 'E', 'R', 'P', 'E', 'R', 'S', 'O', 'N', - 'M', 'E', 'S', 'S', 'E', 'N', 'I', 'A', 'N', - 'M', 'E', 'T', 'O', 'B', 'E', 'L', 'U', 'S', - 'M', 'I', 'D', '-', 'L', 'E', 'V', 'E', 'L', - 'M', 'I', 'R', 'I', 'B', 'A', 'A', 'R', 'U', - 'M', 'O', 'K', 'H', 'A', 'S', 'S', 'A', 'S', - 'M', 'O', 'N', 'G', 'O', 'L', 'I', 'A', 'N', - 'M', 'O', 'N', 'O', 'C', 'U', 'L', 'A', 'R', - 'M', 'O', 'N', 'O', 'G', 'R', 'A', 'P', 'H', - 'M', 'O', 'N', 'O', 'S', 'P', 'A', 'C', 'E', - 'M', 'O', 'T', 'O', 'R', 'I', 'Z', 'E', 'D', - 'M', 'O', 'U', 'N', 'T', 'A', 'I', 'N', 'S', - 'M', 'R', 'A', 'C', 'H', 'N', 'A', 'Y', 'A', - 'M', 'U', 'K', 'K', 'U', 'R', 'U', 'N', 'I', - 'M', 'U', 'K', 'P', 'H', 'R', 'E', 'N', 'G', - 'M', 'U', 'T', 'H', 'A', 'L', 'I', 'Y', 'A', - 'M', 'U', 'U', 'R', 'D', 'H', 'A', 'J', 'A', - 'N', '-', 'M', 'U', '-', 'M', 'O', '-', '1', - 'N', '-', 'M', 'U', '-', 'M', 'O', '-', '2', - 'N', 'A', 'B', 'A', 'T', 'A', 'E', 'A', 'N', - 'N', 'A', 'S', 'A', 'L', 'I', 'Z', 'E', 'D', - 'N', 'A', 'U', 'S', 'E', 'A', 'T', 'E', 'D', - 'N', 'D', 'E', 'U', 'A', 'E', 'R', 'E', 'E', - 'N', 'E', 'T', 'W', 'O', 'R', 'K', 'E', 'D', - 'N', 'E', 'W', 'S', 'P', 'A', 'P', 'E', 'R', - 'N', 'I', 'G', 'G', 'A', 'H', 'I', 'T', 'A', - 'N', 'I', 'G', 'I', 'D', 'A', 'E', 'S', 'H', - 'N', 'I', 'G', 'I', 'D', 'A', 'M', 'I', 'N', - 'N', 'I', 'H', 'S', 'H', 'V', 'A', 'S', 'A', - 'N', 'I', 'N', 'E', '-', 'L', 'I', 'K', 'E', - 'N', 'O', 'R', 'T', 'H', 'W', 'E', 'S', 'T', - 'N', 'U', 'M', 'E', 'R', 'A', 'T', 'O', 'R', - 'O', 'A', 'B', 'O', 'A', 'F', 'I', 'L', 'I', - 'O', 'C', 'C', 'L', 'U', 'S', 'I', 'O', 'N', - 'O', 'C', 'T', 'A', 'G', 'O', 'N', 'A', 'L', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '6', '7', - 'O', 'N', 'E', '-', 'P', 'I', 'E', 'C', 'E', - 'O', 'O', 'B', 'O', 'O', 'F', 'I', 'L', 'I', - 'O', 'P', 'H', 'I', 'U', 'C', 'H', 'U', 'S', - 'O', 'R', 'A', 'N', 'G', 'U', 'T', 'A', 'N', - 'O', 'R', 'N', 'A', 'M', 'E', 'N', 'T', 'S', - 'O', 'Y', 'R', 'A', 'N', 'I', 'S', 'M', 'A', - 'P', 'A', 'A', '-', 'P', 'I', 'L', 'L', 'A', - 'P', 'A', 'I', 'Y', 'A', 'N', 'N', 'O', 'I', - 'P', 'A', 'L', 'M', 'Y', 'R', 'E', 'N', 'E', - 'P', 'A', 'M', 'I', 'N', 'G', 'K', 'A', 'L', - 'P', 'A', 'M', 'U', 'N', 'G', 'K', 'A', 'H', - 'P', 'A', 'N', 'G', 'L', 'A', 'Y', 'A', 'R', - 'P', 'A', 'N', 'G', 'W', 'I', 'S', 'A', 'D', - 'P', 'A', 'N', 'Y', 'A', 'N', 'G', 'G', 'A', - 'P', 'A', 'P', 'E', 'R', 'C', 'L', 'I', 'P', - 'P', 'A', 'R', 'A', 'C', 'H', 'U', 'T', 'E', - 'P', 'A', 'R', 'A', 'G', 'R', 'A', 'P', 'H', - 'P', 'A', 'S', 'S', 'E', 'N', 'G', 'E', 'R', - 'P', 'E', 'N', 'T', 'A', 'G', 'R', 'A', 'M', - 'P', 'E', 'N', 'T', 'A', 'S', 'E', 'M', 'E', - 'P', 'E', 'R', 'E', 'V', 'O', 'D', 'K', 'A', - 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'U', 'M', - 'P', 'E', 'R', 'M', 'A', 'N', 'E', 'N', 'T', - 'P', 'I', 'A', 'S', 'U', 'T', 'O', 'R', 'U', - 'P', 'I', 'N', 'E', 'A', 'P', 'P', 'L', 'E', - 'P', 'I', 'T', 'C', 'H', 'F', 'O', 'R', 'K', - 'P', 'I', 'Z', 'Z', 'I', 'C', 'A', 'T', 'O', - 'P', 'O', 'D', 'V', 'E', 'R', 'T', 'K', 'A', - 'P', 'O', 'R', 'R', 'E', 'C', 'T', 'U', 'S', - 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', 'S', - 'P', 'O', 'V', 'O', 'D', 'N', 'A', 'Y', 'A', - 'P', 'R', 'A', 'M', '-', 'B', 'U', 'O', 'N', - 'P', 'R', 'A', 'M', '-', 'M', 'U', 'O', 'Y', - 'P', 'R', 'E', 'C', 'E', 'D', 'I', 'N', 'G', - 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'O', 'R', - 'P', 'R', 'O', 'L', 'O', 'N', 'G', 'E', 'D', - 'P', 'R', 'O', 'P', 'E', 'L', 'L', 'E', 'R', - 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'N', - 'Q', 'U', 'A', 'D', 'C', 'O', 'L', 'O', 'N', - 'Q', 'U', 'A', 'D', 'R', 'U', 'P', 'L', 'E', - 'Q', 'U', 'I', 'N', 'A', 'R', 'I', 'U', 'S', - 'Q', 'U', 'O', 'T', 'A', 'T', 'I', 'O', 'N', - 'Q', 'U', 'S', 'H', 'S', 'H', 'A', 'Y', 'A', - 'R', 'A', 'H', 'I', 'M', 'A', 'H', 'U', 'M', - 'R', 'E', 'A', 'L', 'G', 'A', 'R', '-', '2', - 'R', 'E', 'C', 'E', 'P', 'T', 'I', 'V', 'E', - 'R', 'E', 'C', 'O', 'R', 'D', 'I', 'N', 'G', - 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'L', 'E', - 'R', 'E', 'C', 'Y', 'C', 'L', 'I', 'N', 'G', - 'R', 'E', 'F', 'E', 'R', 'E', 'N', 'C', 'E', - 'R', 'E', 'G', 'U', 'L', 'U', 'S', '-', '2', - 'R', 'E', 'G', 'U', 'L', 'U', 'S', '-', '3', - 'R', 'E', 'G', 'U', 'L', 'U', 'S', '-', '4', - 'R', 'E', 'P', 'R', 'E', 'S', 'E', 'N', 'T', - 'R', 'E', 'R', 'E', 'N', 'G', 'G', 'A', 'N', - 'R', 'E', 'S', 'H', '-', 'A', 'Y', 'I', 'N', - 'R', 'E', 'S', 'I', 'D', 'E', 'N', 'C', 'E', - 'R', 'E', 'S', 'U', 'P', 'I', 'N', 'U', 'S', - 'R', 'E', 'T', 'R', 'O', 'F', 'L', 'E', 'X', - 'R', 'E', 'V', 'O', 'L', 'V', 'I', 'N', 'G', - 'R', 'I', 'G', 'H', 'T', 'H', 'A', 'N', 'D', - 'R', 'O', 'L', 'L', 'E', 'D', '-', 'U', 'P', - 'R', 'O', 'T', 'A', 'T', 'I', 'O', 'N', 'S', - 'R', 'U', 'D', 'I', 'M', 'E', 'N', 'T', 'A', - 'S', 'A', 'L', 'A', 'A', 'M', 'U', 'H', 'U', - 'S', 'A', 'M', 'A', 'R', 'I', 'T', 'A', 'N', - 'S', 'A', 'T', 'E', 'L', 'L', 'I', 'T', 'E', - 'S', 'A', 'V', 'O', 'U', 'R', 'I', 'N', 'G', - 'S', 'A', 'X', 'O', 'P', 'H', 'O', 'N', 'E', - 'S', 'C', 'A', 'N', 'D', 'I', 'C', 'U', 'S', - 'S', 'C', 'H', 'R', 'O', 'E', 'D', 'E', 'R', - 'S', 'C', 'R', 'E', 'A', 'M', 'I', 'N', 'G', - 'S', 'E', 'B', 'A', 'T', 'B', 'E', 'I', 'T', - 'S', 'E', 'G', 'M', 'E', 'N', 'T', 'E', 'D', - 'S', 'E', 'M', 'I', 'C', 'O', 'L', 'O', 'N', - 'S', 'E', 'M', 'I', 'V', 'O', 'W', 'E', 'L', - 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'E', 'D', - 'S', 'E', 'P', 'A', 'R', 'A', 'T', 'O', 'R', - 'S', 'E', 'P', 'T', 'E', 'M', 'B', 'E', 'R', - 'S', 'E', 'V', 'E', 'N', 'T', 'E', 'E', 'N', - 'S', 'E', 'V', 'E', 'R', 'A', 'N', 'C', 'E', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '6', - 'S', 'H', 'A', 'V', 'I', 'Y', 'A', 'N', 'I', - 'S', 'H', 'E', 'U', 'A', 'E', 'Q', 'T', 'U', - 'S', 'H', 'O', 'R', 'T', 'C', 'A', 'K', 'E', - 'S', 'H', 'O', 'R', 'T', 'E', 'N', 'E', 'R', - 'S', 'H', 'O', 'R', 'T', 'H', 'A', 'N', 'D', - 'S', 'I', 'X', 'T', 'E', 'E', 'N', 'T', 'H', - 'S', 'K', 'A', 'M', 'E', 'Y', 'T', 'S', 'A', - 'S', 'L', 'O', 'Z', 'H', 'I', 'T', 'I', 'E', - 'S', 'N', 'O', 'W', 'F', 'L', 'A', 'K', 'E', - 'S', 'P', 'A', 'G', 'H', 'E', 'T', 'T', 'I', - 'S', 'P', 'A', 'R', 'K', 'L', 'I', 'N', 'G', - 'S', 'P', 'E', 'E', 'D', 'B', 'O', 'A', 'T', - 'S', 'P', 'H', 'E', 'R', 'I', 'C', 'A', 'L', - 'S', 'P', 'L', 'A', 'S', 'H', 'I', 'N', 'G', - 'S', 'P', 'L', 'I', 'T', 'T', 'I', 'N', 'G', - 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'S', 'T', 'E', 'M', '-', '1', '2', '3', '4', - 'S', 'T', 'E', 'M', '-', '2', '3', '4', '5', - 'S', 'T', 'O', 'P', 'W', 'A', 'T', 'C', 'H', - 'S', 'T', 'R', 'A', 'T', 'U', 'M', '-', '2', - 'S', 'T', 'R', 'E', 'T', 'C', 'H', 'E', 'D', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '1', '0', - 'S', 'T', 'R', 'O', 'K', 'E', '-', '1', '1', - 'S', 'T', 'U', 'C', 'K', '-', 'O', 'U', 'T', - 'S', 'U', 'B', 'J', 'O', 'I', 'N', 'E', 'D', - 'S', 'U', 'B', 'J', 'O', 'I', 'N', 'E', 'R', - 'S', 'U', 'B', 'L', 'I', 'M', 'A', 'T', 'E', - 'S', 'U', 'B', 'L', 'I', 'N', 'E', 'A', 'R', - 'S', 'U', 'B', 'S', 'C', 'R', 'I', 'P', 'T', - 'S', 'U', 'M', 'M', 'A', 'T', 'I', 'O', 'N', - 'S', 'U', 'N', 'D', 'A', 'N', 'E', 'S', 'E', - 'S', 'U', 'N', 'F', 'L', 'O', 'W', 'E', 'R', - 'S', 'U', 'P', 'E', 'R', 'H', 'E', 'R', 'O', - 'S', 'U', 'P', 'E', 'R', 'V', 'I', 'S', 'E', - 'S', 'Y', 'L', 'L', 'A', 'B', 'I', 'C', 'S', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '0', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '1', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '2', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '3', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '4', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '5', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '6', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '7', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '8', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '1', '9', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '0', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '1', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '2', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '3', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '4', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '5', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '6', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '7', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '2', '9', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '0', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '2', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '6', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '7', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '8', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '3', '9', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '0', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '2', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '3', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '5', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '7', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '8', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '4', '9', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '0', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '1', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '2', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '3', - 'S', 'Y', 'M', 'B', 'O', 'L', '-', '5', '4', - 'S', 'Y', 'M', 'M', 'E', 'T', 'R', 'I', 'C', - 'S', 'Y', 'N', 'A', 'G', 'O', 'G', 'U', 'E', - 'S', 'Y', 'N', 'D', 'E', 'S', 'M', 'O', 'S', - 'S', 'Y', 'R', 'M', 'A', 'T', 'I', 'K', 'I', - 'T', 'A', 'B', 'A', 'A', 'R', 'A', 'K', 'A', - 'T', 'A', 'K', 'H', 'A', 'L', 'L', 'U', 'S', - 'T', 'A', 'N', 'G', 'E', 'R', 'I', 'N', 'E', - 'T', 'E', 'L', 'E', 'G', 'R', 'A', 'P', 'H', - 'T', 'E', 'L', 'E', 'P', 'H', 'O', 'N', 'E', - 'T', 'E', 'L', 'E', 'S', 'C', 'O', 'P', 'E', - 'T', 'E', 'N', 'T', 'A', 'C', 'L', 'E', 'S', - 'T', 'E', 'T', 'R', 'A', 'G', 'R', 'A', 'M', - 'T', 'E', 'T', 'R', 'A', 'S', 'E', 'M', 'E', - 'T', 'E', 'U', 'T', 'E', 'U', 'W', 'E', 'N', - 'T', 'H', 'E', 'R', 'E', 'F', 'O', 'R', 'E', - 'T', 'H', 'O', 'U', 'S', 'A', 'N', 'D', 'S', - 'T', 'H', 'R', 'E', 'E', '-', 'D', 'O', 'T', - 'T', 'O', 'U', 'C', 'H', 'T', 'O', 'N', 'E', - 'T', 'R', 'A', 'C', 'K', 'B', 'A', 'L', 'L', - 'T', 'R', 'A', 'P', 'E', 'Z', 'I', 'U', 'M', - 'T', 'R', 'E', 'D', 'E', 'C', 'I', 'L', 'E', - 'T', 'R', 'E', 'M', 'O', 'L', 'O', '-', '1', - 'T', 'R', 'E', 'M', 'O', 'L', 'O', '-', '2', - 'T', 'R', 'E', 'M', 'O', 'L', 'O', '-', '3', - 'T', 'R', 'E', 'S', 'V', 'E', 'T', 'L', 'O', - 'T', 'R', 'E', 'S', 'V', 'E', 'T', 'L', 'Y', - 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', 'S', - 'T', 'R', 'I', 'F', 'O', 'N', 'I', 'A', 'S', - 'T', 'R', 'I', 'G', 'O', 'R', 'G', 'O', 'N', - 'T', 'R', 'I', 'L', 'L', 'I', 'O', 'N', 'S', - 'T', 'R', 'U', 'N', 'C', 'A', 'T', 'E', 'D', - 'T', 'U', 'K', 'W', 'E', 'N', 'T', 'I', 'S', - 'T', 'U', 'R', 'N', 'S', 'T', 'I', 'L', 'E', - 'T', 'U', 'T', 'E', 'Y', 'A', 'S', 'A', 'T', - 'T', 'W', 'E', 'N', 'T', 'I', 'E', 'T', 'H', - 'U', 'K', 'R', 'A', 'I', 'N', 'I', 'A', 'N', - 'U', 'N', 'B', 'L', 'E', 'N', 'D', 'E', 'D', - 'U', 'N', 'D', 'E', 'R', 'L', 'I', 'N', 'E', - 'U', 'N', 'I', 'V', 'E', 'R', 'S', 'A', 'L', - 'U', 'N', 'M', 'A', 'R', 'R', 'I', 'E', 'D', - 'U', 'P', '-', 'F', 'A', 'C', 'I', 'N', 'G', - 'V', 'A', 'R', 'I', 'A', 'T', 'I', 'O', 'N', - 'V', 'E', 'G', 'E', 'T', 'A', 'B', 'L', 'E', - 'V', 'E', 'R', 'D', 'I', 'G', 'R', 'I', 'S', - 'V', 'I', 'B', 'R', 'A', 'T', 'I', 'O', 'N', - 'V', 'I', 'G', 'I', 'N', 'T', 'I', 'L', 'E', - 'V', 'I', 'N', 'E', 'G', 'A', 'R', '-', '2', - 'V', 'I', 'N', 'E', 'G', 'A', 'R', '-', '3', - 'V', 'I', 'S', 'A', 'R', 'G', 'A', 'Y', 'A', - 'V', 'I', 'T', 'R', 'I', 'O', 'L', '-', '2', - 'V', 'O', 'I', 'C', 'E', 'L', 'E', 'S', 'S', - 'W', 'A', '-', 'S', 'A', 'L', 'L', 'A', 'M', - 'W', 'A', 'A', 'A', 'L', 'I', 'H', 'E', 'E', - 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'W', 'A', 'S', 'S', 'A', 'L', 'L', 'A', 'M', - 'W', 'E', 'S', 'T', '-', 'C', 'R', 'E', 'E', - 'W', 'I', 'A', 'N', 'G', 'W', 'A', 'A', 'K', - 'W', 'O', 'R', 'D', 'S', 'P', 'A', 'C', 'E', - 'W', 'R', 'E', 'S', 'T', 'L', 'E', 'R', 'S', - 'Y', 'P', 'O', 'K', 'R', 'I', 'S', 'I', 'S', - 'Z', 'A', 'D', 'E', 'R', 'Z', 'H', 'K', 'A', - 'Z', 'A', 'K', 'R', 'Y', 'T', 'A', 'Y', 'A', - 'Z', 'A', 'N', 'A', 'B', 'A', 'Z', 'A', 'R', - 'Z', 'A', 'P', 'Y', 'A', 'T', 'A', 'Y', 'A', - 'Z', 'A', 'P', 'Y', 'A', 'T', 'Y', 'M', 'I', - 'A', 'C', 'R', 'O', 'P', 'H', 'O', 'N', 'I', 'C', - 'A', 'E', 'D', 'A', '-', 'P', 'I', 'L', 'L', 'A', - 'A', 'E', 'L', 'A', '-', 'P', 'I', 'L', 'L', 'A', - 'A', 'G', 'G', 'R', 'A', 'V', 'A', 'T', 'E', 'D', - 'A', 'L', 'C', 'H', 'E', 'M', 'I', 'C', 'A', 'L', - 'A', 'L', 'P', 'A', 'P', 'R', 'A', 'A', 'N', 'A', - 'A', 'N', 'A', 'T', 'O', 'M', 'I', 'C', 'A', 'L', - 'A', 'N', 'G', 'K', 'H', 'A', 'N', 'K', 'H', 'U', - 'A', 'N', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N', - 'A', 'N', 'T', 'I', 'K', 'E', 'N', 'O', 'M', 'A', - 'A', 'N', 'T', 'I', 'M', 'O', 'N', 'Y', '-', '2', - 'A', 'N', 'U', 'S', 'V', 'A', 'R', 'A', 'Y', 'A', - 'A', 'P', 'O', 'S', 'T', 'R', 'O', 'F', 'O', 'I', - 'A', 'P', 'O', 'S', 'T', 'R', 'O', 'F', 'O', 'S', - 'A', 'P', 'O', 'S', 'T', 'R', 'O', 'P', 'H', 'E', - 'A', 'P', 'P', 'R', 'O', 'A', 'C', 'H', 'E', 'S', - 'A', 'Q', 'U', 'A', 'F', 'O', 'R', 'T', 'I', 'S', - 'A', 'R', 'P', 'E', 'G', 'G', 'I', 'A', 'T', 'O', - 'A', 'R', 'R', 'O', 'W', '-', 'T', 'A', 'I', 'L', - 'A', 'R', 'R', 'O', 'W', 'H', 'E', 'A', 'D', 'S', - 'A', 'S', '-', 'S', 'A', 'L', 'A', 'A', 'T', 'U', - 'A', 'S', 'P', 'I', 'R', 'A', 'T', 'I', 'O', 'N', - 'A', 'S', 'T', 'E', 'R', 'I', 'S', 'C', 'U', 'S', - 'A', 'S', 'T', 'O', 'N', 'I', 'S', 'H', 'E', 'D', - 'A', 'T', 'H', 'A', 'P', 'A', 'S', 'C', 'A', 'N', - 'A', 'U', 'R', 'A', 'M', 'A', 'Z', 'D', 'A', 'A', - 'A', 'U', 'T', 'O', 'M', 'O', 'B', 'I', 'L', 'E', - 'B', 'A', 'R', 'I', 'Y', 'O', 'O', 'S', 'A', 'N', - 'B', 'A', 'S', 'K', 'E', 'T', 'B', 'A', 'L', 'L', - 'B', 'A', 'T', 'H', 'A', 'M', 'A', 'S', 'A', 'T', - 'B', 'I', 'B', 'L', 'E', '-', 'C', 'R', 'E', 'E', - 'B', 'L', 'O', 'C', 'K', '-', '1', '3', '5', '8', - 'B', 'R', 'I', 'G', 'H', 'T', 'N', 'E', 'S', 'S', - 'C', 'A', 'L', 'C', 'U', 'L', 'A', 'T', 'O', 'R', - 'C', 'E', 'N', 'T', 'R', 'E', 'L', 'I', 'N', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', 'S', - 'C', 'H', 'E', 'L', 'Y', 'U', 'S', 'T', 'K', 'A', - 'C', 'H', 'O', 'P', 'S', 'T', 'I', 'C', 'K', 'S', - 'C', 'H', 'O', 'R', 'A', 'S', 'M', 'I', 'A', 'N', - 'C', 'I', 'R', 'C', 'U', 'M', 'F', 'L', 'E', 'X', - 'C', 'O', 'M', 'M', 'E', 'R', 'C', 'I', 'A', 'L', - 'C', 'O', 'M', 'P', 'L', 'E', 'M', 'E', 'N', 'T', - 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'I', 'O', 'N', - 'C', 'O', 'M', 'P', 'L', 'I', 'A', 'N', 'C', 'E', - 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'E', 'D', - 'C', 'O', 'N', 'F', 'O', 'U', 'N', 'D', 'E', 'D', - 'C', 'O', 'N', 'J', 'O', 'I', 'N', 'I', 'N', 'G', - 'C', 'O', 'N', 'T', 'A', 'I', 'N', 'I', 'N', 'G', - 'C', 'O', 'N', 'T', 'E', 'N', 'T', 'I', 'O', 'N', - 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'I', 'N', 'G', - 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'O', 'U', 'S', - 'C', 'O', 'N', 'V', 'E', 'R', 'G', 'I', 'N', 'G', - 'C', 'R', 'O', 'S', 'S', 'B', 'O', 'N', 'E', 'S', - 'C', 'R', 'O', 'S', 'S', 'H', 'A', 'T', 'C', 'H', - 'C', 'R', 'U', 'C', 'I', 'B', 'L', 'E', '-', '2', - 'C', 'R', 'U', 'C', 'I', 'B', 'L', 'E', '-', '3', - 'C', 'R', 'U', 'C', 'I', 'B', 'L', 'E', '-', '4', - 'C', 'R', 'U', 'C', 'I', 'B', 'L', 'E', '-', '5', - 'D', 'A', 'G', 'B', 'A', 'S', 'I', 'N', 'N', 'A', - 'D', 'A', 'N', 'T', 'A', 'Y', 'A', 'L', 'A', 'N', - 'D', 'E', 'C', 'O', 'R', 'A', 'T', 'I', 'O', 'N', - 'D', 'E', 'C', 'O', 'R', 'A', 'T', 'I', 'V', 'E', - 'D', 'E', 'F', 'I', 'N', 'I', 'T', 'I', 'O', 'N', - 'D', 'E', 'P', 'A', 'R', 'T', 'M', 'E', 'N', 'T', - 'D', 'E', 'S', 'C', 'E', 'N', 'D', 'I', 'N', 'G', - 'D', 'E', 'V', 'A', 'N', 'A', 'G', 'A', 'R', 'I', - 'D', 'I', 'F', 'F', 'E', 'R', 'E', 'N', 'C', 'E', - 'D', 'I', 'F', 'F', 'I', 'C', 'U', 'L', 'T', 'Y', - 'D', 'I', 'S', 'P', 'E', 'R', 'S', 'I', 'O', 'N', - 'D', 'I', 'S', 'S', 'O', 'L', 'V', 'E', '-', '2', - 'D', 'I', 'S', 'T', 'O', 'R', 'T', 'I', 'O', 'N', - 'D', 'I', 'V', 'E', 'R', 'G', 'E', 'N', 'C', 'E', - 'D', 'I', 'V', 'I', 'N', 'A', 'T', 'I', 'O', 'N', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '4', '5', '6', '7', '8', - 'D', 'R', 'U', 'M', 'S', 'T', 'I', 'C', 'K', 'S', - 'D', 'V', 'O', 'E', 'T', 'O', 'C', 'H', 'I', 'E', - 'E', 'I', 'G', 'H', 'T', 'I', 'E', 'T', 'H', 'S', - 'E', 'K', 'S', 'T', 'R', 'E', 'P', 'T', 'O', 'N', - 'E', 'L', 'E', 'C', 'T', 'R', 'I', 'C', 'A', 'L', - 'E', 'M', 'B', 'R', 'O', 'I', 'D', 'E', 'R', 'Y', - 'E', 'N', 'A', 'R', 'M', 'O', 'N', 'I', 'O', 'S', - 'E', 'N', 'C', 'L', 'O', 'S', 'U', 'R', 'E', 'S', - 'E', 'N', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', - 'E', 'N', 'T', '-', 'S', 'H', 'A', 'P', 'E', 'D', - 'E', 'N', 'T', 'E', 'R', 'P', 'R', 'I', 'S', 'E', - 'E', 'N', 'T', 'H', 'U', 'S', 'I', 'A', 'S', 'M', - 'E', 'P', 'E', 'N', 'T', 'H', 'E', 'T', 'I', 'C', - 'E', 'P', 'I', 'D', 'A', 'U', 'R', 'E', 'A', 'N', - 'E', 'P', 'I', 'G', 'R', 'A', 'P', 'H', 'I', 'C', - 'E', 'Q', 'U', 'I', 'H', 'O', 'P', 'P', 'E', 'R', - 'E', 'Q', 'U', 'I', 'V', 'A', 'L', 'E', 'N', 'T', - 'E', 'X', 'C', 'I', 'T', 'E', 'M', 'E', 'N', 'T', - 'E', 'X', 'H', 'A', 'U', 'S', 'T', 'I', 'O', 'N', - 'E', 'X', 'T', 'R', 'A', '-', 'H', 'I', 'G', 'H', - 'E', 'Y', 'E', 'G', 'L', 'A', 'S', 'S', 'E', 'S', - 'F', 'A', 'H', 'R', 'E', 'N', 'H', 'E', 'I', 'T', - 'F', 'E', 'L', 'L', 'O', 'W', 'S', 'H', 'I', 'P', - 'F', 'I', 'X', 'E', 'D', '-', 'F', 'O', 'R', 'M', - 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'F', 'L', 'U', 'T', 'T', 'E', 'R', 'I', 'N', 'G', - 'F', 'O', 'O', 'T', 'P', 'R', 'I', 'N', 'T', 'S', - 'F', 'O', 'R', 'M', 'A', 'T', 'T', 'I', 'N', 'G', - 'F', 'O', 'R', 'T', 'Y', '-', 'F', 'I', 'V', 'E', - 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', 'A', 'L', - 'G', 'B', 'A', 'K', 'U', 'R', 'U', 'N', 'E', 'N', - 'G', 'E', 'M', 'I', 'N', 'A', 'T', 'I', 'O', 'N', - 'G', 'I', 'M', 'E', 'L', '-', 'H', 'E', 'T', 'H', - 'G', 'L', 'A', 'G', 'O', 'L', 'I', 'T', 'I', 'C', - 'G', 'O', 'R', 'T', 'H', 'M', 'I', 'K', 'O', 'N', - 'G', 'R', 'A', 'D', 'U', 'A', 'T', 'I', 'O', 'N', - 'H', 'A', 'N', 'D', '-', 'A', 'N', 'G', 'L', 'E', - 'H', 'A', 'N', 'D', '-', 'H', 'I', 'N', 'G', 'E', - 'H', 'E', 'A', 'D', 'S', 'T', 'R', 'O', 'K', 'E', - 'H', 'E', 'L', 'I', 'C', 'O', 'P', 'T', 'E', 'R', - 'H', 'E', 'N', 'T', 'A', 'I', 'G', 'A', 'N', 'A', - 'H', 'E', 'R', 'M', 'I', 'O', 'N', 'I', 'A', 'N', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', - 'H', 'I', 'E', 'U', 'H', '-', 'S', 'I', 'O', 'S', - 'H', 'I', 'G', 'H', '-', 'S', 'P', 'E', 'E', 'D', - 'H', 'O', 'M', 'O', 'T', 'H', 'E', 'T', 'I', 'C', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', - 'H', 'Y', 'S', 'T', 'E', 'R', 'E', 'S', 'I', 'S', - 'I', 'E', 'U', 'N', 'G', '-', 'S', 'I', 'O', 'S', - 'I', 'M', 'I', 'D', 'I', 'A', 'R', 'G', 'O', 'N', - 'I', 'M', 'I', 'F', 'T', 'H', 'O', 'R', 'O', 'N', - 'I', 'M', 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'A', - 'I', 'N', 'C', 'O', 'M', 'P', 'L', 'E', 'T', 'E', - 'I', 'N', 'D', 'U', 'S', 'T', 'R', 'I', 'A', 'L', - 'I', 'N', 'T', 'E', 'R', 'L', 'A', 'C', 'E', 'D', - 'K', 'E', 'U', 'A', 'E', 'T', 'M', 'E', 'U', 'N', - 'K', 'E', 'U', 'K', 'E', 'U', 'T', 'N', 'D', 'A', - 'K', 'E', 'U', 'S', 'H', 'E', 'U', 'A', 'E', 'P', - 'K', 'H', 'A', 'K', 'A', 'S', 'S', 'I', 'A', 'N', - 'K', 'H', 'A', 'R', 'O', 'S', 'H', 'T', 'H', 'I', - 'K', 'I', 'R', 'O', 'G', 'U', 'R', 'A', 'M', 'U', - 'K', 'L', 'Y', 'U', 'C', 'H', 'E', 'V', 'O', 'Y', - 'K', 'R', 'Y', 'U', 'K', 'O', 'V', 'A', 'Y', 'A', - 'K', 'R', 'Y', 'Z', 'H', 'E', 'V', 'A', 'Y', 'A', - 'K', 'U', 'N', 'D', 'D', 'A', 'L', 'I', 'Y', 'A', - 'L', 'A', 'J', 'A', 'N', 'Y', 'A', 'L', 'A', 'N', - 'L', 'E', 'N', 'G', 'T', 'H', 'E', 'N', 'E', 'R', - 'L', 'E', 'N', 'T', 'I', 'C', 'U', 'L', 'A', 'R', - 'L', 'E', 'V', 'I', 'T', 'A', 'T', 'I', 'N', 'G', - 'L', 'I', 'G', 'H', 'T', 'H', 'O', 'U', 'S', 'E', - 'L', 'I', 'M', 'I', 'T', 'A', 'T', 'I', 'O', 'N', - 'L', 'O', 'C', 'O', 'M', 'O', 'T', 'I', 'V', 'E', - 'M', 'A', 'E', 'M', 'B', 'G', 'B', 'I', 'E', 'E', - 'M', 'A', 'G', 'N', 'I', 'F', 'Y', 'I', 'N', 'G', - 'M', 'A', 'N', 'D', 'A', 'I', 'L', 'I', 'N', 'G', - 'M', 'A', 'N', 'I', 'C', 'H', 'A', 'E', 'A', 'N', - 'M', 'E', 'C', 'H', 'A', 'N', 'I', 'C', 'A', 'L', - 'M', 'E', 'M', 'B', 'E', 'R', 'S', 'H', 'I', 'P', - 'M', 'I', 'C', 'R', 'O', 'P', 'H', 'O', 'N', 'E', - 'M', 'I', 'C', 'R', 'O', 'S', 'C', 'O', 'P', 'E', - 'M', 'I', 'D', '-', 'H', 'E', 'I', 'G', 'H', 'T', - 'M', 'I', 'E', 'U', 'M', '-', 'S', 'I', 'O', 'S', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '2', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '3', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '4', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '5', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '6', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '7', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '8', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '9', - 'M', 'O', 'N', 'G', 'K', 'E', 'U', 'A', 'E', 'Q', - 'M', 'O', 'N', 'O', 'F', 'O', 'N', 'I', 'A', 'S', - 'M', 'O', 'N', 'O', 'S', 'T', 'A', 'B', 'L', 'E', - 'M', 'O', 'O', 'S', 'E', '-', 'C', 'R', 'E', 'E', - 'M', 'O', 'T', 'O', 'R', 'C', 'Y', 'C', 'L', 'E', - 'M', 'U', '-', 'G', 'A', 'A', 'H', 'L', 'A', 'A', - 'M', 'V', 'E', 'U', 'A', 'E', 'N', 'G', 'A', 'M', - 'N', 'A', 'A', 'S', 'I', 'K', 'Y', 'A', 'Y', 'A', - 'N', 'A', 'N', 'G', 'M', 'O', 'N', 'T', 'H', 'O', - 'N', 'G', 'G', 'U', 'A', 'E', 'S', 'H', 'A', 'E', - 'N', 'G', 'K', 'U', 'E', 'N', 'Z', 'E', 'U', 'M', - 'N', 'I', 'E', 'U', 'N', '-', 'S', 'I', 'O', 'S', - 'N', 'I', 'K', 'O', 'L', 'S', 'B', 'U', 'R', 'G', - 'N', 'O', 'N', '-', 'J', 'O', 'I', 'N', 'E', 'R', - 'N', 'O', 'N', 'F', 'O', 'R', 'K', 'I', 'N', 'G', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '6', '7', '8', - 'O', 'N', 'E', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'O', 'P', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', - 'O', 'P', 'P', 'R', 'E', 'S', 'S', 'I', 'O', 'N', - 'O', 'R', 'T', 'H', 'O', 'G', 'O', 'N', 'A', 'L', - 'O', 'V', 'E', 'R', 'H', 'E', 'A', 'T', 'E', 'D', - 'O', 'V', 'E', 'R', 'S', 'T', 'R', 'U', 'C', 'K', - 'P', 'A', 'I', 'N', 'T', 'B', 'R', 'U', 'S', 'H', - 'P', 'A', 'M', 'P', 'H', 'Y', 'L', 'I', 'A', 'N', - 'P', 'A', 'N', 'A', 'E', 'L', 'A', 'E', 'N', 'G', - 'P', 'A', 'N', 'E', 'U', 'L', 'E', 'U', 'N', 'G', - 'P', 'A', 'N', 'O', 'N', 'G', 'O', 'N', 'A', 'N', - 'P', 'A', 'P', 'E', 'R', 'C', 'L', 'I', 'P', 'S', - 'P', 'A', 'R', 'A', 'P', 'H', 'R', 'A', 'S', 'E', - 'P', 'A', 'S', 'S', 'I', 'M', 'B', 'A', 'N', 'G', - 'P', 'A', 'T', 'H', 'A', 'M', 'A', 'S', 'A', 'T', - 'P', 'E', 'D', 'E', 'S', 'T', 'R', 'I', 'A', 'N', - 'P', 'E', 'N', 'T', 'A', 'T', 'H', 'L', 'O', 'N', - 'P', 'E', 'R', 'C', 'U', 'S', 'S', 'I', 'V', 'E', - 'P', 'E', 'R', 'F', 'O', 'R', 'M', 'I', 'N', 'G', - 'P', 'H', 'A', 'R', 'Y', 'N', 'G', 'E', 'A', 'L', - 'P', 'H', 'I', 'L', 'I', 'P', 'P', 'I', 'N', 'E', - 'P', 'H', 'O', 'E', 'N', 'I', 'C', 'I', 'A', 'N', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', - 'P', 'I', 'N', 'A', 'R', 'B', 'O', 'R', 'A', 'S', - 'P', 'L', 'A', 'Y', 'G', 'R', 'O', 'U', 'N', 'D', - 'P', 'L', 'U', 'S', '-', 'M', 'I', 'N', 'U', 'S', - 'P', 'O', 'D', 'C', 'H', 'A', 'S', 'H', 'I', 'E', - 'P', 'O', 'L', 'K', 'U', 'L', 'I', 'Z', 'M', 'Y', - 'P', 'O', 'S', 'S', 'E', 'S', 'S', 'I', 'O', 'N', - 'P', 'R', 'O', 'H', 'I', 'B', 'I', 'T', 'E', 'D', - 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'O', 'N', - 'P', 'R', 'O', 'J', 'E', 'C', 'T', 'I', 'V', 'E', - 'P', 'R', 'O', 'L', 'A', 'T', 'I', 'O', 'N', 'E', - 'P', 'R', 'O', 'P', 'O', 'R', 'T', 'I', 'O', 'N', - 'P', 'R', 'O', 'S', 'E', 'R', 'P', 'I', 'N', 'A', - 'P', 'R', 'O', 'T', 'O', 'V', 'A', 'R', 'Y', 'S', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '2', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '3', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '4', - 'Q', 'U', 'A', 'T', 'E', 'R', 'N', 'I', 'O', 'N', - 'Q', 'U', 'E', 'S', 'T', 'I', 'O', 'N', 'E', 'D', - 'R', 'E', 'C', 'E', 'P', 'T', 'A', 'C', 'L', 'E', - 'R', 'E', 'C', 'I', 'T', 'A', 'T', 'I', 'V', 'E', - 'R', 'E', 'F', 'L', 'E', 'C', 'T', 'I', 'O', 'N', - 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 'E', 'D', - 'R', 'E', 'L', 'A', 'T', 'I', 'O', 'N', 'A', 'L', - 'R', 'E', 'P', 'E', 'T', 'I', 'T', 'I', 'O', 'N', - 'R', 'E', 'S', 'I', 'S', 'T', 'A', 'N', 'C', 'E', - 'R', 'E', 'S', 'O', 'L', 'U', 'T', 'I', 'O', 'N', - 'R', 'E', 'S', 'T', 'R', 'I', 'C', 'T', 'E', 'D', - 'R', 'E', 'V', 'O', 'L', 'U', 'T', 'I', 'O', 'N', - 'R', 'H', 'I', 'N', 'O', 'C', 'E', 'R', 'O', 'S', - 'R', 'I', 'E', 'U', 'L', '-', 'S', 'I', 'O', 'S', - 'R', 'I', 'G', 'H', 'T', '-', 'H', 'A', 'N', 'D', - 'R', 'I', 'G', 'H', 'T', '-', 'S', 'I', 'D', 'E', - 'R', 'I', 'G', 'H', 'T', 'W', 'A', 'R', 'D', 'S', - 'S', 'A', 'L', 'L', 'A', 'L', 'L', 'A', 'H', 'U', - 'S', 'A', 'N', 'S', '-', 'S', 'E', 'R', 'I', 'F', - 'S', 'A', 'T', 'K', 'A', 'A', 'N', 'K', 'U', 'U', - 'S', 'A', 'U', 'R', 'A', 'S', 'H', 'T', 'R', 'A', - 'S', 'E', 'M', 'I', 'B', 'R', 'E', 'V', 'I', 'S', - 'S', 'E', 'M', 'I', 'C', 'I', 'R', 'C', 'L', 'E', - 'S', 'E', 'M', 'I', 'D', 'I', 'R', 'E', 'C', 'T', - 'S', 'E', 'M', 'I', 'M', 'I', 'N', 'I', 'M', 'A', - 'S', 'E', 'Q', 'U', 'E', 'N', 'T', 'I', 'A', 'L', - 'S', 'E', 'S', 'T', 'E', 'R', 'T', 'I', 'U', 'S', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '5', '6', - 'S', 'H', 'A', 'L', 'S', 'H', 'E', 'L', 'E', 'T', - 'S', 'H', 'I', 'Y', 'Y', 'A', 'A', 'L', 'A', 'A', - 'S', 'H', 'O', 'U', 'L', 'D', 'E', 'R', 'E', 'D', - 'S', 'H', 'U', 'E', 'N', 'S', 'H', 'U', 'E', 'T', - 'S', 'I', 'L', 'H', 'O', 'U', 'E', 'T', 'T', 'E', - 'S', 'I', 'M', 'A', 'L', 'U', 'N', 'G', 'U', 'N', - 'S', 'I', 'M', 'P', 'L', 'I', 'F', 'I', 'E', 'D', - 'S', 'I', 'N', 'N', 'Y', 'I', 'I', 'Y', 'H', 'E', - 'S', 'I', 'O', 'S', '-', 'C', 'I', 'E', 'U', 'C', - 'S', 'I', 'O', 'S', '-', 'H', 'I', 'E', 'U', 'H', - 'S', 'I', 'O', 'S', '-', 'I', 'E', 'U', 'N', 'G', - 'S', 'I', 'O', 'S', '-', 'M', 'I', 'E', 'U', 'M', - 'S', 'I', 'O', 'S', '-', 'N', 'I', 'E', 'U', 'N', - 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P', - 'S', 'I', 'O', 'S', '-', 'R', 'I', 'E', 'U', 'L', - 'S', 'I', 'X', '-', 'P', 'E', 'R', '-', 'E', 'M', - 'S', 'I', 'X', '-', 'S', 'T', 'R', 'I', 'N', 'G', - 'S', 'I', 'X', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'S', 'I', 'X', 'T', 'E', 'E', 'N', 'T', 'H', 'S', - 'S', 'K', 'A', 'T', 'E', 'B', 'O', 'A', 'R', 'D', - 'S', 'S', 'A', 'N', 'G', 'A', 'R', 'A', 'E', 'A', - 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C', - 'S', 'S', 'A', 'N', 'G', 'H', 'I', 'E', 'U', 'H', - 'S', 'S', 'A', 'N', 'G', 'I', 'E', 'U', 'N', 'G', - 'S', 'S', 'A', 'N', 'G', 'M', 'I', 'E', 'U', 'M', - 'S', 'S', 'A', 'N', 'G', 'N', 'I', 'E', 'U', 'N', - 'S', 'S', 'A', 'N', 'G', 'P', 'I', 'E', 'U', 'P', - 'S', 'S', 'A', 'N', 'G', 'R', 'I', 'E', 'U', 'L', - 'S', 'T', 'A', 'N', 'D', 'S', 'T', 'I', 'L', 'L', - 'S', 'T', 'R', 'A', 'W', 'B', 'E', 'R', 'R', 'Y', - 'S', 'U', 'B', 'H', 'A', 'A', 'N', 'A', 'H', 'U', - 'S', 'U', 'B', 'P', 'U', 'N', 'C', 'T', 'I', 'S', - 'S', 'U', 'B', 'S', 'T', 'I', 'T', 'U', 'T', 'E', - 'S', 'U', 'N', 'G', 'L', 'A', 'S', 'S', 'E', 'S', - 'S', 'U', 'P', 'E', 'R', 'F', 'I', 'X', 'E', 'D', - 'S', 'U', 'S', 'P', 'E', 'N', 'S', 'I', 'O', 'N', - 'T', 'A', 'B', 'U', 'L', 'A', 'T', 'I', 'O', 'N', - 'T', 'A', 'W', 'E', 'L', 'L', 'E', 'M', 'E', 'T', - 'T', 'E', 'L', 'E', 'V', 'I', 'S', 'I', 'O', 'N', - 'T', 'E', 'N', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'T', 'E', 'R', 'M', 'I', 'N', 'A', 'T', 'O', 'R', - 'T', 'E', 'T', 'R', 'A', 'S', 'I', 'M', 'O', 'U', - 'T', 'H', 'I', 'R', 'T', 'Y', '-', 'O', 'N', 'E', - 'T', 'H', 'R', 'E', 'E', '-', 'L', 'I', 'N', 'E', - 'T', 'O', 'O', 'T', 'H', 'B', 'R', 'U', 'S', 'H', - 'T', 'R', 'A', 'N', 'S', 'I', 'S', 'T', 'O', 'R', - 'T', 'R', 'A', 'N', 'S', 'P', 'L', 'U', 'T', 'O', - 'T', 'R', 'I', 'A', 'N', 'G', 'U', 'L', 'A', 'R', - 'T', 'R', 'I', 'F', 'O', 'L', 'I', 'A', 'T', 'E', - 'T', 'R', 'I', 'G', 'R', 'A', 'M', 'M', 'O', 'S', - 'T', 'R', 'O', 'E', 'Z', 'E', 'N', 'I', 'A', 'N', - 'T', 'R', 'O', 'K', 'U', 'T', 'A', 'S', 'T', 'I', - 'T', 'R', 'O', 'L', 'L', 'E', 'Y', 'B', 'U', 'S', - 'T', 'W', 'E', 'N', 'T', 'I', 'E', 'T', 'H', 'S', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'O', 'N', 'E', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'S', 'I', 'X', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'T', 'W', 'O', - 'T', 'W', 'O', '-', 'C', 'I', 'R', 'C', 'L', 'E', - 'T', 'W', 'O', '-', 'H', 'E', 'A', 'D', 'E', 'D', - 'T', 'W', 'O', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'V', 'A', 'K', 'A', 'I', 'Y', 'A', 'R', 'A', 'A', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', 'L', 'Y', - 'V', 'I', 'E', 'T', 'N', 'A', 'M', 'E', 'S', 'E', - 'V', 'I', 'S', 'I', 'G', 'O', 'T', 'H', 'I', 'C', - 'V', 'O', 'L', 'L', 'E', 'Y', 'B', 'A', 'L', 'L', - 'W', 'A', '-', 'T', 'A', 'A', 'A', 'L', 'A', 'A', - 'W', 'A', 'S', '-', 'S', 'A', 'L', 'A', 'A', 'M', - 'W', 'A', 'T', 'E', 'R', 'M', 'E', 'L', 'O', 'N', - 'W', 'H', 'E', 'E', 'L', 'C', 'H', 'A', 'I', 'R', - 'W', 'O', 'O', 'D', 'S', '-', 'C', 'R', 'E', 'E', - 'Y', 'A', 'J', 'U', 'R', 'V', 'E', 'D', 'I', 'C', - 'Z', 'A', 'Y', 'I', 'N', '-', 'Y', 'O', 'D', 'H', - 'A', 'C', 'K', 'N', 'O', 'W', 'L', 'E', 'D', 'G', 'E', - 'A', 'E', 'S', 'C', 'U', 'L', 'A', 'P', 'I', 'U', 'S', - 'A', 'F', 'F', 'R', 'I', 'C', 'A', 'T', 'I', 'O', 'N', - 'A', 'G', 'G', 'R', 'A', 'V', 'A', 'T', 'I', 'O', 'N', - 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'I', 'N', 'G', - 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'I', 'O', 'N', - 'A', 'L', 'T', 'E', 'R', 'N', 'A', 'T', 'I', 'V', 'E', - 'A', 'N', 'T', 'I', 'M', 'O', 'N', 'I', 'A', 'T', 'E', - 'A', 'P', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N', - 'A', 'P', 'P', 'R', 'O', 'X', 'I', 'M', 'A', 'T', 'E', - 'A', 'R', 'D', 'H', 'A', 'C', 'A', 'N', 'D', 'R', 'A', - 'A', 'R', 'T', 'I', 'C', 'U', 'L', 'A', 'T', 'E', 'D', - 'A', 'U', 'R', 'I', 'P', 'I', 'G', 'M', 'E', 'N', 'T', - 'A', 'Y', 'I', 'N', '-', 'D', 'A', 'L', 'E', 'T', 'H', - 'B', 'A', 'C', 'K', '-', 'T', 'I', 'L', 'T', 'E', 'D', - 'B', 'A', 'C', 'K', 'S', 'L', 'A', 'N', 'T', 'E', 'D', - 'B', 'H', 'A', 'T', 'T', 'I', 'P', 'R', 'O', 'L', 'U', - 'B', 'L', 'A', 'C', 'K', 'L', 'E', 'T', 'T', 'E', 'R', - 'B', 'L', 'U', 'E', 'B', 'E', 'R', 'R', 'I', 'E', 'S', - 'C', 'A', 'N', 'D', 'R', 'A', 'B', 'I', 'N', 'D', 'U', - 'C', 'E', 'L', 'E', 'B', 'R', 'A', 'T', 'I', 'O', 'N', - 'C', 'I', 'E', 'U', 'C', '-', 'I', 'E', 'U', 'N', 'G', - 'C', 'I', 'E', 'U', 'C', '-', 'P', 'I', 'E', 'U', 'P', - 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'T', 'I', 'O', 'N', - 'C', 'L', 'U', 'B', '-', 'S', 'P', 'O', 'K', 'E', 'D', - 'C', 'O', 'M', 'B', 'I', 'N', 'A', 'T', 'I', 'O', 'N', - 'C', 'O', 'M', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', - 'C', 'O', 'M', 'P', 'R', 'E', 'S', 'S', 'I', 'O', 'N', - 'C', 'O', 'N', 'J', 'U', 'N', 'C', 'T', 'I', 'O', 'N', - 'C', 'O', 'N', 'S', 'E', 'C', 'U', 'T', 'I', 'V', 'E', - 'C', 'O', 'N', 'T', 'R', 'A', 'C', 'T', 'I', 'O', 'N', - 'C', 'O', 'N', 'T', 'R', 'A', 'R', 'I', 'E', 'T', 'Y', - 'C', 'O', 'N', 'V', 'E', 'N', 'I', 'E', 'N', 'C', 'E', - 'C', 'O', 'R', 'P', 'O', 'R', 'A', 'T', 'I', 'O', 'N', - 'C', 'O', 'R', 'R', 'E', 'S', 'P', 'O', 'N', 'D', 'S', - 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'B', 'O', 'R', 'E', - 'C', 'O', 'U', 'N', 'T', 'E', 'R', 'S', 'I', 'N', 'K', - 'C', 'U', 'L', 'T', 'I', 'V', 'A', 'T', 'I', 'O', 'N', - 'D', 'A', 'H', 'Y', 'A', 'A', 'U', 'S', 'H', '-', '2', - 'D', 'A', 'L', 'E', 'T', 'H', '-', 'R', 'E', 'S', 'H', - 'D', 'E', 'C', 'R', 'E', 'S', 'C', 'E', 'N', 'D', 'O', - 'D', 'E', 'L', 'I', 'V', 'E', 'R', 'A', 'N', 'C', 'E', - 'D', 'E', 'M', 'E', 'S', 'T', 'V', 'E', 'N', 'N', 'Y', - 'D', 'E', 'N', 'O', 'M', 'I', 'N', 'A', 'T', 'O', 'R', - 'D', 'E', 'R', 'E', 'T', '-', 'H', 'I', 'D', 'E', 'T', - 'D', 'E', 'S', 'C', 'R', 'I', 'P', 'T', 'I', 'O', 'N', - 'D', 'E', 'V', 'E', 'L', 'O', 'P', 'M', 'E', 'N', 'T', - 'D', 'I', 'A', 'E', 'R', 'E', 'S', 'I', 'Z', 'E', 'D', - 'D', 'I', 'M', 'E', 'N', 'S', 'I', 'O', 'N', 'A', 'L', - 'D', 'I', 'R', 'E', 'C', 'T', 'I', 'O', 'N', 'A', 'L', - 'D', 'I', 'S', 'T', 'I', 'N', 'G', 'U', 'I', 'S', 'H', - 'D', 'O', 'A', 'C', 'H', 'A', 'S', 'H', 'M', 'E', 'E', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '4', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '4', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '3', '4', '5', '6', '7', '8', - 'D', 'O', 'U', 'B', 'L', 'E', '-', 'L', 'I', 'N', 'E', - 'D', 'O', 'W', 'N', '-', 'F', 'A', 'C', 'I', 'N', 'G', - 'D', 'O', 'W', 'N', 'S', 'C', 'A', 'L', 'I', 'N', 'G', - 'E', 'A', 'M', 'H', 'A', 'N', 'C', 'H', 'O', 'L', 'L', - 'E', 'K', 'F', 'O', 'N', 'I', 'T', 'I', 'K', 'O', 'N', - 'E', 'L', 'E', 'C', 'T', 'R', 'O', 'N', 'I', 'C', 'S', - 'E', 'N', 'L', 'A', 'R', 'G', 'E', 'M', 'E', 'N', 'T', - 'E', 'N', 'U', 'M', 'E', 'R', 'A', 'T', 'I', 'O', 'N', - 'E', 'Q', 'U', 'I', 'A', 'N', 'G', 'U', 'L', 'A', 'R', - 'E', 'Q', 'U', 'I', 'L', 'A', 'T', 'E', 'R', 'A', 'L', - 'E', 'X', 'C', 'L', 'A', 'M', 'A', 'T', 'I', 'O', 'N', - 'F', 'I', 'N', 'G', 'E', 'R', '-', 'P', 'O', 'S', 'T', - 'F', 'I', 'N', 'G', 'E', 'R', 'N', 'A', 'I', 'L', 'S', - 'F', 'I', 'N', 'G', 'E', 'R', 'P', 'R', 'I', 'N', 'T', - 'F', 'I', 'R', 'E', 'C', 'R', 'A', 'C', 'K', 'E', 'R', - 'F', 'I', 'T', 'Z', 'P', 'A', 'T', 'R', 'I', 'C', 'K', - 'F', 'I', 'V', 'E', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'F', 'O', 'U', 'R', '-', 'P', 'E', 'R', '-', 'E', 'M', - 'F', 'O', 'U', 'R', '-', 'S', 'T', 'R', 'I', 'N', 'G', - 'F', 'O', 'U', 'R', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'G', 'A', 'Y', 'A', 'N', 'U', 'K', 'I', 'T', 'T', 'A', - 'G', 'H', 'E', 'U', 'G', 'H', 'E', 'U', 'A', 'E', 'M', - 'G', 'U', 'A', 'R', 'D', 'E', 'D', 'N', 'E', 'S', 'S', - 'H', 'A', 'L', 'F', '-', 'C', 'I', 'R', 'C', 'L', 'E', - 'H', 'A', 'N', 'D', '-', 'C', 'I', 'R', 'C', 'L', 'E', - 'H', 'A', 'U', 'P', 'T', 'S', 'T', 'I', 'M', 'M', 'E', - 'H', 'B', 'A', 'S', 'A', '-', 'E', 'S', 'A', 'S', 'A', - 'H', 'I', 'E', 'U', 'H', '-', 'M', 'I', 'E', 'U', 'M', - 'H', 'I', 'E', 'U', 'H', '-', 'N', 'I', 'E', 'U', 'N', - 'H', 'I', 'E', 'U', 'H', '-', 'P', 'I', 'E', 'U', 'P', - 'H', 'I', 'E', 'U', 'H', '-', 'R', 'I', 'E', 'U', 'L', - 'H', 'I', 'G', 'H', '-', 'H', 'E', 'E', 'L', 'E', 'D', - 'H', 'Y', 'P', 'H', 'E', 'N', 'A', 'T', 'I', 'O', 'N', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', 'I', 'C', - 'I', 'E', 'U', 'N', 'G', '-', 'C', 'I', 'E', 'U', 'C', - 'I', 'E', 'U', 'N', 'G', '-', 'H', 'I', 'E', 'U', 'H', - 'I', 'E', 'U', 'N', 'G', '-', 'M', 'I', 'E', 'U', 'M', - 'I', 'E', 'U', 'N', 'G', '-', 'P', 'I', 'E', 'U', 'P', - 'I', 'E', 'U', 'N', 'G', '-', 'R', 'I', 'E', 'U', 'L', - 'I', 'M', 'P', 'E', 'R', 'F', 'E', 'C', 'T', 'U', 'M', - 'I', 'N', 'D', 'E', 'P', 'E', 'N', 'D', 'E', 'N', 'T', - 'I', 'N', 'F', 'O', 'R', 'M', 'A', 'T', 'I', 'O', 'N', - 'I', 'N', 'T', 'E', 'G', 'R', 'A', 'T', 'I', 'O', 'N', - 'I', 'N', 'T', 'E', 'R', 'C', 'A', 'L', 'A', 'T', 'E', - 'I', 'N', 'T', 'E', 'R', 'L', 'I', 'N', 'E', 'A', 'R', - 'I', 'N', 'T', 'E', 'R', 'L', 'O', 'C', 'K', 'E', 'D', - 'I', 'N', 'T', 'E', 'R', 'R', 'O', 'B', 'A', 'N', 'G', - 'I', 'R', 'O', 'N', '-', 'C', 'O', 'P', 'P', 'E', 'R', - 'J', 'I', 'H', 'V', 'A', 'M', 'U', 'L', 'I', 'Y', 'A', - 'K', 'I', 'R', 'O', 'M', 'E', 'E', 'T', 'O', 'R', 'U', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'S', 'I', 'O', 'S', - 'K', 'L', 'Y', 'U', 'C', 'H', 'E', 'V', 'A', 'Y', 'A', - 'K', 'N', 'I', 'G', 'H', 'T', '-', 'R', 'O', 'O', 'K', - 'L', 'A', 'K', 'K', 'H', 'A', 'N', 'G', 'Y', 'A', 'O', - 'L', 'E', 'F', 'T', '-', 'F', 'A', 'C', 'I', 'N', 'G', - 'L', 'E', 'F', 'T', '-', 'H', 'A', 'N', 'D', 'E', 'D', - 'L', 'E', 'F', 'T', '-', 'S', 'H', 'A', 'D', 'E', 'D', - 'L', 'O', 'N', 'G', '-', 'L', 'E', 'G', 'G', 'E', 'D', - 'L', 'O', 'U', 'D', 'S', 'P', 'E', 'A', 'K', 'E', 'R', - 'L', 'O', 'W', '-', 'F', 'A', 'L', 'L', 'I', 'N', 'G', - 'M', 'A', 'H', 'A', 'A', 'P', 'R', 'A', 'A', 'N', 'A', - 'M', 'A', 'N', 'T', 'E', 'L', 'P', 'I', 'E', 'C', 'E', - 'M', 'E', 'D', 'E', 'F', 'A', 'I', 'D', 'R', 'I', 'N', - 'M', 'I', 'E', 'U', 'M', '-', 'C', 'I', 'E', 'U', 'C', - 'M', 'I', 'E', 'U', 'M', '-', 'H', 'I', 'E', 'U', 'H', - 'M', 'I', 'E', 'U', 'M', '-', 'N', 'I', 'E', 'U', 'N', - 'M', 'I', 'E', 'U', 'M', '-', 'P', 'I', 'E', 'U', 'P', - 'M', 'I', 'E', 'U', 'M', '-', 'R', 'I', 'E', 'U', 'L', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '0', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '1', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '2', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '3', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '4', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '5', - 'M', 'O', 'D', 'I', 'F', 'I', 'E', 'R', '-', '1', '6', - 'M', 'O', 'N', 'E', 'Y', '-', 'M', 'O', 'U', 'T', 'H', - 'M', 'O', 'N', 'O', 'G', 'R', 'A', 'M', 'M', 'O', 'S', - 'M', 'U', 'L', 'T', 'I', 'O', 'C', 'U', 'L', 'A', 'R', - 'M', 'U', 'U', 'S', 'I', 'K', 'A', 'T', 'O', 'A', 'N', - 'M', 'U', 'U', 'V', 'U', 'Z', 'H', 'A', 'K', 'K', 'U', - 'N', 'A', 'A', 'K', 'S', 'I', 'K', 'Y', 'A', 'Y', 'A', - 'N', 'A', 'N', 'D', 'I', 'N', 'A', 'G', 'A', 'R', 'I', - 'N', 'E', 'B', 'E', 'N', 'S', 'T', 'I', 'M', 'M', 'E', - 'N', 'I', 'E', 'U', 'N', '-', 'C', 'I', 'E', 'U', 'C', - 'N', 'I', 'E', 'U', 'N', '-', 'H', 'I', 'E', 'U', 'H', - 'N', 'I', 'E', 'U', 'N', '-', 'P', 'I', 'E', 'U', 'P', - 'N', 'I', 'E', 'U', 'N', '-', 'R', 'I', 'E', 'U', 'L', - 'N', 'I', 'N', 'E', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'N', 'O', 'N', '-', 'P', 'O', 'T', 'A', 'B', 'L', 'E', - 'O', 'B', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', - 'O', 'C', 'C', 'U', 'L', 'T', 'A', 'T', 'I', 'O', 'N', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '6', '7', '8', - 'O', 'P', 'E', 'N', '-', 'H', 'E', 'A', 'D', 'E', 'D', - 'O', 'R', 'I', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N', - 'O', 'V', 'E', 'R', 'L', 'A', 'P', 'P', 'I', 'N', 'G', - 'P', 'A', 'L', 'A', 'T', 'A', 'L', 'I', 'Z', 'E', 'D', - 'P', 'A', 'N', 'G', 'R', 'A', 'N', 'G', 'K', 'E', 'P', - 'P', 'A', 'R', 'A', 'G', 'R', 'A', 'P', 'H', 'O', 'S', - 'P', 'A', 'R', 'A', 'G', 'R', 'A', 'P', 'H', 'U', 'S', - 'P', 'A', 'R', 'A', 'K', 'A', 'L', 'E', 'S', 'M', 'A', - 'P', 'A', 'R', 'A', 'K', 'L', 'I', 'T', 'I', 'K', 'I', - 'P', 'A', 'R', 'E', 'N', 'T', 'H', 'E', 'S', 'E', 'S', - 'P', 'A', 'R', 'E', 'N', 'T', 'H', 'E', 'S', 'I', 'S', - 'P', 'A', 'R', 'T', 'N', 'E', 'R', 'S', 'H', 'I', 'P', - 'P', 'E', 'D', 'E', 'S', 'T', 'R', 'I', 'A', 'N', 'S', - 'P', 'E', 'N', 'E', 'T', 'R', 'A', 'T', 'I', 'O', 'N', - 'P', 'E', 'R', 'I', 'S', 'P', 'O', 'M', 'E', 'N', 'I', - 'P', 'E', 'R', 'S', 'E', 'V', 'E', 'R', 'I', 'N', 'G', - 'P', 'E', 'R', 'S', 'P', 'E', 'C', 'T', 'I', 'V', 'E', - 'P', 'I', 'E', 'U', 'P', '-', 'C', 'I', 'E', 'U', 'C', - 'P', 'I', 'E', 'U', 'P', '-', 'H', 'I', 'E', 'U', 'H', - 'P', 'I', 'E', 'U', 'P', '-', 'M', 'I', 'E', 'U', 'M', - 'P', 'I', 'E', 'U', 'P', '-', 'N', 'I', 'E', 'U', 'N', - 'P', 'I', 'E', 'U', 'P', '-', 'R', 'I', 'E', 'U', 'L', - 'P', 'I', 'P', 'A', 'E', 'M', 'G', 'B', 'I', 'E', 'E', - 'P', 'L', 'A', 'C', 'E', 'H', 'O', 'L', 'D', 'E', 'R', - 'P', 'O', 'D', 'C', 'H', 'A', 'S', 'H', 'I', 'E', 'M', - 'P', 'R', 'E', 'C', 'I', 'P', 'I', 'T', 'A', 'T', 'E', - 'P', 'U', 'N', 'C', 'T', 'U', 'A', 'T', 'I', 'O', 'N', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '2', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '3', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '4', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '2', '3', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '2', '4', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '3', '4', - 'R', 'A', 'D', 'I', 'O', 'A', 'C', 'T', 'I', 'V', 'E', - 'R', 'A', 'H', 'M', 'A', 'T', 'U', 'L', 'L', 'A', 'H', - 'R', 'E', 'C', 'T', 'A', 'N', 'G', 'U', 'L', 'A', 'R', - 'R', 'E', 'C', 'T', 'I', 'L', 'I', 'N', 'E', 'A', 'R', - 'R', 'E', 'P', 'L', 'A', 'C', 'E', 'M', 'E', 'N', 'T', - 'R', 'I', 'E', 'U', 'L', '-', 'C', 'I', 'E', 'U', 'C', - 'R', 'I', 'E', 'U', 'L', '-', 'H', 'I', 'E', 'U', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M', - 'R', 'I', 'E', 'U', 'L', '-', 'N', 'I', 'E', 'U', 'N', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', - 'R', 'I', 'N', 'F', 'O', 'R', 'Z', 'A', 'N', 'D', 'O', - 'S', 'A', 'C', 'R', 'I', 'F', 'I', 'C', 'I', 'A', 'L', - 'S', 'A', 'G', 'I', 'T', 'T', 'A', 'R', 'I', 'U', 'S', - 'S', 'A', 'L', 'L', 'A', 'L', 'L', 'A', 'A', 'H', 'U', - 'S', 'A', 'L', 'L', 'A', 'L', 'L', 'A', 'H', 'O', 'U', - 'S', 'C', 'R', 'E', 'W', 'D', 'R', 'I', 'V', 'E', 'R', - 'S', 'E', 'E', '-', 'N', 'O', '-', 'E', 'V', 'I', 'L', - 'S', 'E', 'M', 'I', '-', 'V', 'O', 'I', 'C', 'E', 'D', - 'S', 'E', 'M', 'I', 'S', 'E', 'X', 'T', 'I', 'L', 'E', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '4', '5', '6', - 'S', 'H', 'U', 'T', 'T', 'L', 'E', 'C', 'O', 'C', 'K', - 'S', 'I', 'G', 'N', 'W', 'R', 'I', 'T', 'I', 'N', 'G', - 'S', 'I', 'N', 'G', 'L', 'E', '-', 'L', 'I', 'N', 'E', - 'S', 'I', 'N', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L', - 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'S', 'I', 'O', 'S', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'S', 'I', 'X', 'T', 'E', 'E', 'N', 'T', 'H', '-', '1', - 'S', 'I', 'X', 'T', 'E', 'E', 'N', 'T', 'H', '-', '2', - 'S', 'N', 'O', 'W', 'B', 'O', 'A', 'R', 'D', 'E', 'R', - 'S', 'S', 'A', 'N', 'G', 'K', 'I', 'Y', 'E', 'O', 'K', - 'S', 'S', 'A', 'N', 'G', 'T', 'I', 'K', 'E', 'U', 'T', - 'S', 'T', 'E', 'T', 'H', 'O', 'S', 'C', 'O', 'P', 'E', - 'S', 'U', 'B', 'L', 'I', 'M', 'A', 'T', 'E', '-', '2', - 'S', 'U', 'B', 'L', 'I', 'M', 'A', 'T', 'E', '-', '3', - 'S', 'U', 'B', 'L', 'I', 'M', 'A', 'T', 'I', 'O', 'N', - 'S', 'U', 'B', 'T', 'R', 'A', 'C', 'T', 'I', 'O', 'N', - 'S', 'U', 'P', 'E', 'R', 'S', 'C', 'R', 'I', 'P', 'T', - 'S', 'U', 'P', 'R', 'A', 'L', 'I', 'N', 'E', 'A', 'R', - 'S', 'Y', 'N', 'C', 'H', 'R', 'O', 'N', 'O', 'U', 'S', - 'T', 'E', 'T', 'R', 'A', 'F', 'O', 'N', 'I', 'A', 'S', - 'T', 'H', 'A', 'N', 'T', 'H', 'A', 'K', 'H', 'A', 'T', - 'T', 'H', 'E', 'M', 'A', 'T', 'I', 'S', 'M', 'O', 'S', - 'T', 'H', 'E', 'R', 'M', 'O', 'M', 'E', 'T', 'E', 'R', - 'T', 'H', 'I', 'R', 'D', '-', 'S', 'T', 'A', 'G', 'E', - 'T', 'H', 'I', 'R', 'T', 'Y', '-', 'F', 'I', 'V', 'E', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'S', 'I', 'O', 'S', - 'T', 'O', 'A', 'N', 'D', 'A', 'K', 'H', 'I', 'A', 'T', - 'T', 'O', 'P', '-', 'L', 'I', 'G', 'H', 'T', 'E', 'D', - 'T', 'R', 'A', 'D', 'I', 'T', 'I', 'O', 'N', 'A', 'L', - 'T', 'R', 'A', 'N', 'S', 'V', 'E', 'R', 'S', 'A', 'L', - 'T', 'R', 'E', 'S', 'V', 'E', 'T', 'L', 'A', 'Y', 'A', - 'T', 'R', 'I', 'T', 'I', 'M', 'O', 'R', 'I', 'O', 'N', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'F', 'I', 'V', 'E', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'F', 'O', 'U', 'R', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'N', 'I', 'N', 'E', - 'U', 'N', 'A', 'S', 'P', 'I', 'R', 'A', 'T', 'E', 'D', - 'U', 'N', 'C', 'E', 'R', 'T', 'A', 'I', 'N', 'T', 'Y', - 'U', 'P', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G', - 'U', 'P', 'A', 'D', 'H', 'M', 'A', 'N', 'I', 'Y', 'A', - 'U', 'P', 'S', 'I', 'D', 'E', '-', 'D', 'O', 'W', 'N', - 'V', 'A', 'M', 'A', 'G', 'O', 'M', 'U', 'K', 'H', 'A', - 'W', 'A', 'S', 'T', 'E', 'B', 'A', 'S', 'K', 'E', 'T', - 'W', 'E', 'I', 'E', 'R', 'S', 'T', 'R', 'A', 'S', 'S', - 'W', 'I', 'D', 'E', '-', 'H', 'E', 'A', 'D', 'E', 'D', - 'Y', 'E', 'O', 'R', 'I', 'N', 'H', 'I', 'E', 'U', 'H', - 'A', 'B', 'B', 'R', 'E', 'V', 'I', 'A', 'T', 'I', 'O', 'N', - 'A', 'C', 'C', 'U', 'M', 'U', 'L', 'A', 'T', 'I', 'O', 'N', - 'A', 'C', 'U', 'T', 'E', '-', 'M', 'A', 'C', 'R', 'O', 'N', - 'A', 'K', 'T', 'I', 'E', 'S', 'E', 'L', 'S', 'K', 'A', 'B', - 'A', 'M', 'A', 'L', 'G', 'A', 'M', 'A', 'T', 'I', 'O', 'N', - 'A', 'N', 'A', 'T', 'R', 'I', 'C', 'H', 'I', 'S', 'M', 'A', - 'A', 'N', 'T', 'A', 'R', 'G', 'O', 'M', 'U', 'K', 'H', 'A', - 'A', 'R', 'A', 'B', 'I', 'C', '-', 'I', 'N', 'D', 'I', 'C', - 'A', 'R', 'D', 'H', 'A', 'V', 'I', 'S', 'A', 'R', 'G', 'A', - 'A', 'S', 'T', 'R', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L', - 'A', 'S', 'T', 'R', 'O', 'N', 'O', 'M', 'I', 'C', 'A', 'L', - 'A', 'T', 'H', '-', 'T', 'H', 'A', 'L', 'A', 'T', 'H', 'A', - 'A', 'T', 'H', 'A', 'R', 'V', 'A', 'V', 'E', 'D', 'I', 'C', - 'A', 'U', 'G', 'M', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N', - 'A', 'U', 'R', 'A', 'M', 'A', 'Z', 'D', 'A', 'A', '-', '2', - 'A', 'U', 'R', 'A', 'M', 'A', 'Z', 'D', 'A', 'A', 'H', 'A', - 'B', 'A', 'H', 'I', 'R', 'G', 'O', 'M', 'U', 'K', 'H', 'A', - 'B', 'L', 'A', 'C', 'K', '-', 'L', 'E', 'T', 'T', 'E', 'R', - 'B', 'R', 'E', 'A', 'K', 'T', 'H', 'R', 'O', 'U', 'G', 'H', - 'B', 'R', 'E', 'V', 'E', '-', 'M', 'A', 'C', 'R', 'O', 'N', - 'C', '-', 'S', 'I', 'M', 'P', 'L', 'I', 'F', 'I', 'E', 'D', - 'C', 'A', 'B', 'B', 'A', 'G', 'E', '-', 'T', 'R', 'E', 'E', - 'C', 'A', 'N', 'C', 'E', 'L', 'L', 'A', 'T', 'I', 'O', 'N', - 'C', 'A', 'N', 'T', 'I', 'L', 'L', 'A', 'T', 'I', 'O', 'N', - 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'S', 'I', 'O', 'S', - 'C', 'O', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', - 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'A', 'T', 'I', 'O', 'N', - 'C', 'R', 'O', 'S', 'S', 'E', 'D', '-', 'T', 'A', 'I', 'L', - 'C', 'Y', 'L', 'I', 'N', 'D', 'R', 'I', 'C', 'I', 'T', 'Y', - 'C', 'Y', 'P', 'R', 'O', '-', 'M', 'I', 'N', 'O', 'A', 'N', - 'D', 'E', 'C', 'I', 'S', 'I', 'V', 'E', 'N', 'E', 'S', 'S', - 'D', 'I', 'F', 'F', 'E', 'R', 'E', 'N', 'T', 'I', 'A', 'L', - 'D', 'I', 'F', 'F', 'I', 'C', 'U', 'L', 'T', 'I', 'E', 'S', - 'D', 'I', 'M', 'I', 'N', 'I', 'S', 'H', 'M', 'E', 'N', 'T', - 'D', 'I', 'M', 'I', 'N', 'U', 'T', 'I', 'O', 'N', '-', '1', - 'D', 'I', 'M', 'I', 'N', 'U', 'T', 'I', 'O', 'N', '-', '2', - 'D', 'I', 'M', 'I', 'N', 'U', 'T', 'I', 'O', 'N', '-', '3', - 'D', 'I', 'S', 'A', 'P', 'P', 'O', 'I', 'N', 'T', 'E', 'D', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', '7', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '2', '4', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '1', '3', '4', '5', '6', '7', '8', - 'D', 'O', 'T', 'S', '-', '2', '3', '4', '5', '6', '7', '8', - 'D', 'O', 'U', 'B', 'L', 'E', '-', 'E', 'N', 'D', 'E', 'D', - 'D', 'O', 'U', 'B', 'L', 'E', '-', 'L', 'I', 'N', 'E', 'D', - 'D', 'V', 'O', 'E', 'C', 'H', 'E', 'L', 'N', 'A', 'Y', 'A', - 'E', 'I', 'G', 'H', 'T', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'E', 'R', 'R', 'O', 'R', '-', 'B', 'A', 'R', 'R', 'E', 'D', - 'E', 'X', 'T', 'I', 'N', 'G', 'U', 'I', 'S', 'H', 'E', 'R', - 'F', 'L', 'E', 'U', 'R', '-', 'D', 'E', '-', 'L', 'I', 'S', - 'F', 'R', 'O', 'N', 'T', '-', 'F', 'A', 'C', 'I', 'N', 'G', - 'F', 'R', 'O', 'N', 'T', '-', 'T', 'I', 'L', 'T', 'E', 'D', - 'G', 'A', 'E', 'T', 'T', 'A', '-', 'P', 'I', 'L', 'L', 'A', - 'G', 'H', 'E', 'U', 'A', 'E', 'G', 'H', 'E', 'U', 'A', 'E', - 'G', 'R', 'A', 'V', 'E', '-', 'M', 'A', 'C', 'R', 'O', 'N', - 'G', 'R', 'E', 'A', 'T', 'E', 'R', '-', 'T', 'H', 'A', 'N', - 'G', 'R', 'O', 'N', 'T', 'H', 'I', 'S', 'M', 'A', 'T', 'A', - 'H', 'E', 'A', 'D', '-', 'B', 'A', 'N', 'D', 'A', 'G', 'E', - 'H', 'E', 'A', 'R', '-', 'N', 'O', '-', 'E', 'V', 'I', 'L', - 'H', 'E', 'A', 'R', 'T', '-', 'S', 'H', 'A', 'P', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', 'I', 'C', - 'H', 'I', 'P', 'P', 'O', 'P', 'O', 'T', 'A', 'M', 'U', 'S', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', 'L', 'Y', - 'H', 'Y', 'P', 'H', 'E', 'N', '-', 'M', 'I', 'N', 'U', 'S', - 'H', 'Y', 'P', 'O', 'D', 'I', 'A', 'S', 'T', 'O', 'L', 'E', - 'I', 'C', 'E', 'L', 'A', 'N', 'D', 'I', 'C', '-', 'Y', 'R', - 'I', 'E', 'U', 'N', 'G', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'I', 'E', 'U', 'N', 'G', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'I', 'N', 'S', 'T', 'R', 'U', 'M', 'E', 'N', 'T', 'A', 'L', - 'I', 'N', 'T', 'E', 'R', 'S', 'E', 'C', 'T', 'I', 'N', 'G', - 'I', 'N', 'T', 'E', 'R', 'S', 'E', 'C', 'T', 'I', 'O', 'N', - 'I', 'N', 'V', 'E', 'R', 'T', 'E', 'B', 'R', 'A', 'T', 'E', - 'J', '-', 'S', 'I', 'M', 'P', 'L', 'I', 'F', 'I', 'E', 'D', - 'K', 'I', 'N', 'D', 'E', 'R', 'G', 'A', 'R', 'T', 'E', 'N', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'H', 'I', 'E', 'U', 'H', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'N', 'I', 'E', 'U', 'N', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'P', 'I', 'E', 'U', 'P', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'R', 'I', 'E', 'U', 'L', - 'K', 'N', 'I', 'G', 'H', 'T', '-', 'Q', 'U', 'E', 'E', 'N', - 'L', 'E', 'F', 'T', '-', 'L', 'I', 'G', 'H', 'T', 'E', 'D', - 'M', 'A', 'C', 'R', 'O', 'N', '-', 'A', 'C', 'U', 'T', 'E', - 'M', 'A', 'C', 'R', 'O', 'N', '-', 'B', 'R', 'E', 'V', 'E', - 'M', 'A', 'C', 'R', 'O', 'N', '-', 'G', 'R', 'A', 'V', 'E', - 'M', 'A', 'T', 'H', 'E', 'M', 'A', 'T', 'I', 'C', 'A', 'L', - 'M', 'E', 'U', 'N', 'J', 'O', 'M', 'N', 'D', 'E', 'U', 'Q', - 'M', 'I', 'D', 'D', 'L', 'E', '-', 'W', 'E', 'L', 'S', 'H', - 'M', 'I', 'E', 'U', 'M', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'M', 'I', 'E', 'U', 'M', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'N', 'A', 'S', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', - 'N', 'D', 'A', 'A', 'N', 'G', 'G', 'E', 'U', 'A', 'E', 'T', - 'N', 'I', 'E', 'U', 'N', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'N', 'I', 'E', 'U', 'N', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'N', 'O', 'N', '-', 'B', 'R', 'E', 'A', 'K', 'I', 'N', 'G', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '6', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '3', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '4', '5', '6', '7', '8', - 'P', 'H', 'I', 'E', 'U', 'P', 'H', '-', 'S', 'I', 'O', 'S', - 'P', 'H', 'I', 'L', 'O', 'S', 'O', 'P', 'H', 'E', 'R', 'S', - 'P', 'I', 'E', 'U', 'P', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'P', 'I', 'E', 'U', 'P', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'P', 'O', 'S', 'T', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', - 'P', 'R', 'E', 'S', 'C', 'R', 'I', 'P', 'T', 'I', 'O', 'N', - 'P', 'R', 'E', 'S', 'E', 'N', 'T', 'A', 'T', 'I', 'O', 'N', - 'P', 'R', 'O', 'P', 'O', 'R', 'T', 'I', 'O', 'N', 'A', 'L', - 'P', 'U', 'T', 'R', 'E', 'F', 'A', 'C', 'T', 'I', 'O', 'N', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '2', '3', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '2', '4', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '3', '4', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '2', '3', '4', - 'Q', 'U', 'I', 'N', 'D', 'I', 'C', 'E', 'S', 'I', 'M', 'A', - 'Q', 'U', 'I', 'N', 'T', 'E', 'S', 'S', 'E', 'N', 'C', 'E', - 'R', 'E', 'C', 'R', 'E', 'A', 'T', 'I', 'O', 'N', 'A', 'L', - 'R', 'I', 'E', 'U', 'L', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'R', 'I', 'E', 'U', 'L', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'R', 'I', 'G', 'H', 'T', '-', 'F', 'A', 'C', 'I', 'N', 'G', - 'R', 'I', 'G', 'H', 'T', '-', 'H', 'A', 'N', 'D', 'E', 'D', - 'R', 'I', 'G', 'H', 'T', '-', 'S', 'H', 'A', 'D', 'E', 'D', - 'R', 'O', 'U', 'N', 'D', '-', 'T', 'I', 'P', 'P', 'E', 'D', - 'R', 'U', 'L', 'E', '-', 'D', 'E', 'L', 'A', 'Y', 'E', 'D', - 'S', 'A', 'L', '-', 'A', 'M', 'M', 'O', 'N', 'I', 'A', 'C', - 'S', 'E', 'M', 'I', 'C', 'I', 'R', 'C', 'U', 'L', 'A', 'R', - 'S', 'E', 'V', 'E', 'N', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '4', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '3', '4', '5', '6', - 'S', 'I', 'M', 'U', 'L', 'T', 'A', 'N', 'E', 'O', 'U', 'S', - 'S', 'I', 'O', 'S', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'S', 'I', 'O', 'S', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'S', 'I', 'O', 'S', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'S', 'I', 'O', 'S', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'S', 'I', 'O', 'S', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'S', 'I', 'X', 'T', 'Y', '-', 'F', 'O', 'U', 'R', 'T', 'H', - 'S', 'O', 'U', 'T', 'H', '-', 'S', 'L', 'A', 'V', 'E', 'Y', - 'S', 'P', 'R', 'E', 'C', 'H', 'G', 'E', 'S', 'A', 'N', 'G', - 'S', 'S', 'A', 'N', 'G', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'S', 'T', 'E', 'N', 'O', 'G', 'R', 'A', 'P', 'H', 'I', 'C', - 'S', 'T', 'R', 'A', 'G', 'G', 'I', 'S', 'M', 'A', 'T', 'A', - 'S', 'T', 'R', 'A', 'I', 'G', 'H', 'T', 'N', 'E', 'S', 'S', - 'S', 'U', 'B', 'S', 'T', 'I', 'T', 'U', 'T', 'I', 'O', 'N', - 'S', 'U', 'P', 'E', 'R', 'I', 'M', 'P', 'O', 'S', 'E', 'D', - 'S', 'U', 'P', 'E', 'R', 'V', 'I', 'L', 'L', 'A', 'I', 'N', - 'T', 'H', 'R', 'E', 'E', '-', 'C', 'I', 'R', 'C', 'L', 'E', - 'T', 'H', 'R', 'E', 'E', '-', 'L', 'E', 'G', 'G', 'E', 'D', - 'T', 'H', 'R', 'E', 'E', '-', 'P', 'E', 'R', '-', 'E', 'M', - 'T', 'H', 'R', 'E', 'E', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'T', 'H', 'U', 'N', 'D', 'E', 'R', 'S', 'T', 'O', 'R', 'M', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'C', 'I', 'E', 'U', 'C', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'M', 'I', 'E', 'U', 'M', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'P', 'I', 'E', 'U', 'P', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'R', 'I', 'E', 'U', 'L', - 'T', 'R', 'A', 'N', 'S', 'M', 'I', 'S', 'S', 'I', 'O', 'N', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'E', 'I', 'G', 'H', 'T', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'S', 'E', 'V', 'E', 'N', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'T', 'H', 'R', 'E', 'E', - 'V', 'O', 'C', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', - 'W', 'E', 'D', 'G', 'E', '-', 'T', 'A', 'I', 'L', 'E', 'D', - 'X', 'S', 'H', 'A', 'A', 'Y', 'A', 'T', 'H', 'I', 'Y', 'A', - 'Y', 'O', 'U', 'T', 'H', 'F', 'U', 'L', 'N', 'E', 'S', 'S', - 'Z', 'I', 'P', 'P', 'E', 'R', '-', 'M', 'O', 'U', 'T', 'H', - 'A', 'C', 'C', 'O', 'M', 'M', 'O', 'D', 'A', 'T', 'I', 'O', 'N', - 'A', 'N', 'T', 'I', 'C', 'L', 'O', 'C', 'K', 'W', 'I', 'S', 'E', - 'A', 'P', 'P', 'R', 'O', 'X', 'I', 'M', 'A', 'T', 'E', 'L', 'Y', - 'A', 'R', 'G', 'O', 'S', 'Y', 'N', 'T', 'H', 'E', 'T', 'O', 'N', - 'A', 'V', 'A', 'K', 'R', 'A', 'H', 'A', 'S', 'A', 'N', 'Y', 'A', - 'B', 'O', 'T', 'T', 'O', 'M', '-', 'S', 'H', 'A', 'D', 'E', 'D', - 'C', 'H', 'I', 'E', 'U', 'C', 'H', '-', 'H', 'I', 'E', 'U', 'H', - 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'C', 'I', 'E', 'U', 'C', - 'C', 'H', 'R', 'Y', 'S', 'A', 'N', 'T', 'H', 'E', 'M', 'U', 'M', - 'C', 'L', 'U', 'S', 'T', 'E', 'R', '-', 'F', 'I', 'N', 'A', 'L', - 'C', 'O', 'M', 'P', 'A', 'T', 'I', 'B', 'I', 'L', 'I', 'T', 'Y', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '0', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '1', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '2', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '3', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '4', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '5', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '6', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '7', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '8', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '6', '9', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '0', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '1', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '2', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '3', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '4', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '8', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '5', '9', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '0', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '1', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '2', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '3', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '4', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '5', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '6', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '7', - 'C', 'O', 'M', 'P', 'O', 'N', 'E', 'N', 'T', '-', '7', '6', '8', - 'C', 'O', 'N', 'C', 'A', 'V', 'E', '-', 'S', 'I', 'D', 'E', 'D', - 'C', 'O', 'N', 'T', 'E', 'M', 'P', 'L', 'A', 'T', 'I', 'O', 'N', - 'C', 'R', 'Y', 'P', 'T', 'O', 'G', 'R', 'A', 'M', 'M', 'I', 'C', - 'D', 'E', 'F', 'E', 'C', 'T', 'I', 'V', 'E', 'N', 'E', 'S', 'S', - 'D', 'I', 'S', 'C', 'O', 'N', 'T', 'I', 'N', 'U', 'O', 'U', 'S', - 'D', 'O', 'T', 'S', '-', '1', '2', '3', '4', '5', '6', '7', '8', - 'D', 'O', 'U', 'B', 'L', 'E', '-', 'S', 'T', 'R', 'U', 'C', 'K', - 'D', 'O', 'W', 'N', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G', - 'D', 'R', 'O', 'P', '-', 'S', 'H', 'A', 'D', 'O', 'W', 'E', 'D', - 'E', 'G', 'Y', 'P', 'T', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L', - 'E', 'L', 'E', 'V', 'E', 'N', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'E', 'M', 'B', 'E', 'L', 'L', 'I', 'S', 'H', 'M', 'E', 'N', 'T', - 'E', 'U', 'R', 'O', '-', 'C', 'U', 'R', 'R', 'E', 'N', 'C', 'Y', - 'E', 'U', 'R', 'O', 'P', 'E', '-', 'A', 'F', 'R', 'I', 'C', 'A', - 'G', 'E', 'O', 'M', 'E', 'T', 'R', 'I', 'C', 'A', 'L', 'L', 'Y', - 'H', 'A', 'N', 'D', '-', 'C', 'U', 'R', 'L', 'I', 'C', 'U', 'E', - 'H', 'E', 'L', 'L', 'S', 'C', 'H', 'R', 'E', 'I', 'B', 'E', 'R', - 'I', 'E', 'U', 'N', 'G', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'I', 'E', 'U', 'N', 'G', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'I', 'E', 'U', 'N', 'G', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'I', 'E', 'U', 'N', 'G', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'I', 'E', 'U', 'N', 'G', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'I', 'N', 'S', 'C', 'R', 'I', 'P', 'T', 'I', 'O', 'N', 'A', 'L', - 'I', 'N', 'T', 'E', 'R', 'P', 'O', 'L', 'A', 'T', 'I', 'O', 'N', - 'I', 'N', 'T', 'E', 'R', 'S', 'Y', 'L', 'L', 'A', 'B', 'I', 'C', - 'J', 'U', 'D', 'E', 'O', '-', 'S', 'P', 'A', 'N', 'I', 'S', 'H', - 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'M', 'I', 'E', 'U', 'M', - 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'I', 'E', 'U', 'P', - 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'R', 'I', 'E', 'U', 'L', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'K', 'N', 'I', 'G', 'H', 'T', '-', 'B', 'I', 'S', 'H', 'O', 'P', - 'L', 'A', 'B', 'I', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', - 'L', 'E', 'F', 'T', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G', - 'L', 'E', 'F', 'T', '-', 'T', 'O', '-', 'R', 'I', 'G', 'H', 'T', - 'M', 'I', 'C', 'R', 'O', 'C', 'O', 'M', 'P', 'U', 'T', 'E', 'R', - 'M', 'I', 'E', 'U', 'M', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'M', 'I', 'E', 'U', 'M', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'M', 'I', 'N', 'U', 'S', '-', 'O', 'R', '-', 'P', 'L', 'U', 'S', - 'M', 'O', 'R', 'P', 'H', 'O', 'L', 'O', 'G', 'I', 'C', 'A', 'L', - 'N', 'I', 'E', 'U', 'N', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'N', 'I', 'E', 'U', 'N', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'N', 'I', 'E', 'U', 'N', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '4', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '5', '6', '7', '8', - 'O', 'P', 'E', 'N', '-', 'O', 'U', 'T', 'L', 'I', 'N', 'E', 'D', - 'P', 'A', 'N', 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P', - 'P', 'A', 'R', 'A', 'L', 'L', 'E', 'L', 'O', 'G', 'R', 'A', 'M', - 'P', 'A', 'R', 'E', 'N', 'T', 'H', 'E', 'S', 'I', 'Z', 'E', 'D', - 'P', 'A', 'R', 'E', 'S', 'T', 'I', 'G', 'M', 'E', 'N', 'O', 'N', - 'P', 'E', 'R', 'P', 'E', 'N', 'D', 'I', 'C', 'U', 'L', 'A', 'R', - 'P', 'H', 'I', 'E', 'U', 'P', 'H', '-', 'H', 'I', 'E', 'U', 'H', - 'P', 'H', 'I', 'E', 'U', 'P', 'H', '-', 'P', 'I', 'E', 'U', 'P', - 'P', 'I', 'E', 'U', 'P', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'P', 'I', 'E', 'U', 'P', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'P', 'I', 'E', 'U', 'P', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'P', 'I', 'E', 'U', 'P', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'P', 'O', 'L', 'U', 'P', 'O', 'V', 'O', 'D', 'N', 'A', 'Y', 'A', - 'P', 'R', 'E', 'P', 'O', 'N', 'D', 'E', 'R', 'A', 'N', 'C', 'E', - 'P', 'R', 'I', 'S', 'H', 'T', 'H', 'A', 'M', 'A', 'T', 'R', 'A', - 'Q', 'U', 'A', 'D', 'R', 'A', 'N', 'T', '-', '1', '2', '3', '4', - 'R', 'E', 'D', 'U', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N', - 'R', 'I', 'E', 'U', 'L', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'R', 'I', 'G', 'H', 'T', '-', 'L', 'I', 'G', 'H', 'T', 'E', 'D', - 'R', 'I', 'G', 'H', 'T', '-', 'T', 'O', '-', 'L', 'E', 'F', 'T', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '6', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '6', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'A', 'R', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'Y', 'R', - 'S', 'I', 'X', 'T', 'Y', '-', 'F', 'O', 'U', 'R', 'T', 'H', 'S', - 'S', 'P', 'E', 'A', 'K', '-', 'N', 'O', '-', 'E', 'V', 'I', 'L', - 'S', 'S', 'A', 'N', 'G', 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', - 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'I', 'S', 'S', 'I', 'M', 'O', - 'S', 'T', 'R', 'I', 'K', 'E', 'T', 'H', 'R', 'O', 'U', 'G', 'H', - 'T', 'E', 'T', 'A', 'R', 'T', 'I', 'M', 'O', 'R', 'I', 'O', 'N', - 'T', 'H', 'E', 'R', 'M', 'O', 'D', 'Y', 'N', 'A', 'M', 'I', 'C', - 'T', 'H', 'I', 'R', 'T', 'Y', '-', 'S', 'E', 'C', 'O', 'N', 'D', - 'T', 'H', 'R', 'E', 'E', '-', 'Q', 'U', 'A', 'R', 'T', 'E', 'R', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'T', 'R', 'A', 'N', 'S', 'P', 'O', 'S', 'I', 'T', 'I', 'O', 'N', - 'T', 'U', 'L', 'U', '-', 'T', 'I', 'G', 'A', 'L', 'A', 'R', 'I', - 'T', 'W', 'E', 'L', 'V', 'E', '-', 'T', 'H', 'I', 'R', 'T', 'Y', - 'T', 'W', 'E', 'N', 'T', 'Y', '-', 'E', 'I', 'G', 'H', 'T', 'H', - 'V', 'I', 'D', 'E', 'O', 'C', 'A', 'S', 'S', 'E', 'T', 'T', 'E', - 'V', 'O', 'W', 'E', 'L', '-', 'C', 'A', 'R', 'R', 'I', 'E', 'R', - 'W', 'A', 'W', '-', 'A', 'Y', 'I', 'N', '-', 'R', 'E', 'S', 'H', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'S', 'I', 'O', 'S', - 'Y', 'P', 'O', 'G', 'E', 'G', 'R', 'A', 'M', 'M', 'E', 'N', 'I', - 'Y', 'U', 'U', 'K', 'A', 'L', 'E', 'A', 'P', 'I', 'N', 'T', 'U', - 'A', 'F', 'O', 'R', 'E', 'M', 'E', 'N', 'T', 'I', 'O', 'N', 'E', 'D', - 'A', 'R', 'O', 'U', 'N', 'D', '-', 'P', 'R', 'O', 'F', 'I', 'L', 'E', - 'A', 'S', 'I', 'A', '-', 'A', 'U', 'S', 'T', 'R', 'A', 'L', 'I', 'A', - 'A', 'S', 'Y', 'M', 'P', 'T', 'O', 'T', 'I', 'C', 'A', 'L', 'L', 'Y', - 'B', 'A', 'L', 'L', 'O', 'O', 'N', '-', 'S', 'P', 'O', 'K', 'E', 'D', - 'B', 'O', 'T', 'T', 'O', 'M', '-', 'L', 'I', 'G', 'H', 'T', 'E', 'D', - 'B', 'R', 'E', 'A', 'S', 'T', '-', 'F', 'E', 'E', 'D', 'I', 'N', 'G', - 'C', 'E', 'N', 'T', 'R', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', - 'C', 'O', 'N', 'G', 'R', 'A', 'T', 'U', 'L', 'A', 'T', 'I', 'O', 'N', - 'D', 'I', 'A', 'E', 'R', 'E', 'S', 'I', 'S', '-', 'R', 'I', 'N', 'G', - 'E', 'X', 'P', 'R', 'E', 'S', 'S', 'I', 'O', 'N', 'L', 'E', 'S', 'S', - 'F', 'O', 'R', 'W', 'A', 'R', 'D', '-', 'F', 'A', 'C', 'I', 'N', 'G', - 'G', 'O', 'R', 'G', 'O', 'S', 'Y', 'N', 'T', 'H', 'E', 'T', 'O', 'N', - 'G', 'R', 'O', 'M', 'O', 'P', 'O', 'V', 'O', 'D', 'N', 'A', 'Y', 'A', - 'I', 'D', 'E', 'N', 'T', 'I', 'F', 'I', 'C', 'A', 'T', 'I', 'O', 'N', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '4', 'E', '0', '0', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '4', 'E', '0', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '4', 'E', '2', 'D', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '4', 'E', '8', 'C', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '4', 'E', 'A', '4', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '1', '8', 'D', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '2', '1', 'D', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '2', '4', 'D', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '2', '7', '2', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '2', 'D', 'D', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '3', 'C', 'C', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '3', 'F', '3', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '4', '0', '8', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '4', '3', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '5', 'B', '6', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '8', 'F', '0', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '9', '1', 'A', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', '9', '2', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', 'B', '5', '7', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', 'B', '8', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', 'D', 'E', '6', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '5', 'F', '8', 'C', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '2', '4', 'B', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '2', '5', '3', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '2', '9', '5', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '3', '0', '7', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '3', '5', '5', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '5', '5', '7', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '5', '9', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '5', 'B', '0', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '6', '2', '0', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '7', '0', '8', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '7', '0', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', '7', '2', 'C', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', 'E', '8', '0', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '6', 'F', '1', '4', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', '0', 'B', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', '1', '2', '1', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', '5', '1', 'F', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', '5', '3', '3', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', '6', 'D', '7', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', '9', '8', '1', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', 'A', '7', 'A', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '7', 'D', '4', '2', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '8', '9', 'E', '3', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '8', 'C', 'A', '9', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '8', 'D', '7', '0', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '9', '0', '4', 'A', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', '9', '1', '4', 'D', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', 'F', 'A', '2', 'E', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', 'F', 'A', '2', 'F', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', 'F', 'A', '6', 'B', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', 'F', 'A', '6', 'C', - 'I', 'D', 'E', 'O', 'G', 'R', 'A', 'P', 'H', '-', 'F', 'A', '6', 'D', - 'J', 'A', 'C', 'K', '-', 'O', '-', 'L', 'A', 'N', 'T', 'E', 'R', 'N', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'K', 'L', 'Y', 'U', 'C', 'H', 'E', 'P', 'O', 'V', 'O', 'D', 'N', 'Y', - 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'A', 'R', - 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'Y', 'R', - 'L', 'O', 'W', '-', 'R', 'E', 'V', 'E', 'R', 'S', 'E', 'D', '-', '9', - 'M', 'O', 'V', 'E', 'M', 'E', 'N', 'T', '-', 'H', 'I', 'N', 'G', 'E', - 'M', 'R', 'A', 'C', 'H', 'N', 'O', 'T', 'I', 'K', 'H', 'A', 'Y', 'A', - 'M', 'U', 'L', 'T', 'I', 'P', 'L', 'I', 'C', 'A', 'T', 'I', 'O', 'N', - 'N', 'E', 'P', 'O', 'S', 'T', 'O', 'Y', 'A', 'N', 'N', 'A', 'Y', 'A', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', '6', '7', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', '6', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '2', '4', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '1', '3', '4', '5', '6', '7', '8', - 'O', 'C', 'T', 'A', 'N', 'T', '-', '2', '3', '4', '5', '6', '7', '8', - 'P', 'A', 'L', 'A', 'T', 'A', 'L', 'I', 'Z', 'A', 'T', 'I', 'O', 'N', - 'P', 'R', 'O', 'S', 'G', 'E', 'G', 'R', 'A', 'M', 'M', 'E', 'N', 'I', - 'R', 'E', 'V', 'E', 'R', 'S', 'E', 'D', '-', 'S', 'C', 'H', 'W', 'A', - 'R', 'I', 'E', 'U', 'L', '-', 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', - 'R', 'I', 'G', 'H', 'T', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G', - 'R', 'I', 'G', 'H', 'T', '-', 'S', 'H', 'A', 'D', 'O', 'W', 'E', 'D', - 'S', 'E', 'S', 'Q', 'U', 'I', 'Q', 'U', 'A', 'D', 'R', 'A', 'T', 'E', - 'S', 'E', 'X', 'T', 'A', 'N', 'T', '-', '1', '2', '3', '4', '5', '6', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'O', 'S', 'S', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'S', 'O', 'L', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'T', 'Y', 'R', - 'S', 'I', 'O', 'S', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'T', 'I', 'G', 'H', 'T', 'L', 'Y', '-', 'C', 'L', 'O', 'S', 'E', 'D', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '-', 'R', 'O', 'U', 'N', 'D', - 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'L', 'Y', 'G', 'I', 'S', 'M', 'A', - 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'S', 'Y', 'N', 'A', 'G', 'M', 'A', - 'T', 'R', 'Y', 'A', 'S', 'O', 'G', 'L', 'A', 'S', 'N', 'A', 'Y', 'A', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '0', '-', '0', '6', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '1', '-', '0', '6', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '2', '-', '0', '6', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '3', '-', '0', '6', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '4', '-', '0', '6', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '5', '-', '0', '6', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '0', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '1', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '2', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '3', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '4', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '5', - 'V', 'E', 'R', 'T', 'I', 'C', 'A', 'L', '-', '0', '6', '-', '0', '6', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'H', 'I', 'E', 'U', 'H', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'M', 'I', 'E', 'U', 'M', - 'A', 'C', 'C', 'E', 'N', 'T', '-', 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'O', - 'A', 'N', 'T', 'I', 'K', 'E', 'N', 'O', 'K', 'Y', 'L', 'I', 'S', 'M', 'A', - 'A', 'N', 'T', 'I', 'R', 'E', 'S', 'T', 'R', 'I', 'C', 'T', 'I', 'O', 'N', - 'B', 'L', 'A', 'C', 'K', '-', 'F', 'E', 'A', 'T', 'H', 'E', 'R', 'E', 'D', - 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'S', 'I', 'O', 'S', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '0', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '1', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '2', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '3', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '4', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '5', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '6', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '7', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '8', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', '9', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'A', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'B', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'C', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'D', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'E', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'B', 'F', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '0', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '1', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '2', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '3', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '4', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '5', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '6', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '7', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '8', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', '9', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'A', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'B', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'C', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'D', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'D', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'D', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'D', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'D', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'D', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', '8', 'C', 'F', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '7', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '8', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', '9', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'A', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'B', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'C', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'D', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'E', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '1', 'F', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '0', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '1', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '2', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '3', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '4', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '5', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '6', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '7', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '8', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', '9', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'A', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'B', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'C', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'D', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', 'B', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', 'C', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', 'D', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', 'E', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'E', 'F', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '0', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '1', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '2', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '3', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '4', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '5', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '6', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '7', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '8', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', '9', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', 'A', - 'C', 'H', 'A', 'R', 'A', 'C', 'T', 'E', 'R', '-', '1', 'B', '2', 'F', 'B', - 'C', 'H', 'I', 'E', 'U', 'C', 'H', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'C', 'L', 'U', 'S', 'T', 'E', 'R', '-', 'I', 'N', 'I', 'T', 'I', 'A', 'L', - 'C', 'O', 'N', 'C', 'A', 'V', 'E', '-', 'P', 'O', 'I', 'N', 'T', 'E', 'D', - 'G', 'R', 'O', 'M', 'O', 'K', 'R', 'Y', 'Z', 'H', 'E', 'V', 'A', 'Y', 'A', - 'H', 'I', 'G', 'H', '-', 'R', 'E', 'V', 'E', 'R', 'S', 'E', 'D', '-', '9', - 'J', 'A', 'L', 'L', 'A', 'J', 'A', 'L', 'A', 'L', 'O', 'U', 'H', 'O', 'U', - 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'K', 'R', 'A', 'T', 'I', 'M', 'O', 'K', 'O', 'U', 'F', 'I', 'S', 'M', 'A', - 'K', 'R', 'A', 'T', 'I', 'M', 'O', 'Y', 'P', 'O', 'R', 'R', 'O', 'O', 'N', - 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'O', 'S', 'S', - 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'S', 'O', 'L', - 'M', 'I', 'E', 'U', 'M', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'P', 'E', 'T', 'A', 'S', 'T', 'O', 'K', 'O', 'U', 'F', 'I', 'S', 'M', 'A', - 'P', 'H', 'I', 'E', 'U', 'P', 'H', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'L', 'Y', 'G', 'I', 'S', 'M', 'A', - 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'S', 'Y', 'N', 'A', 'G', 'M', 'A', - 'R', 'I', 'E', 'U', 'L', '-', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'M', 'A', 'D', 'R', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'N', 'A', 'U', 'D', - 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P', - 'T', 'E', 'A', 'R', 'D', 'R', 'O', 'P', '-', 'B', 'A', 'R', 'B', 'E', 'D', - 'T', 'E', 'A', 'R', 'D', 'R', 'O', 'P', '-', 'S', 'P', 'O', 'K', 'E', 'D', - 'T', 'O', 'R', 'S', 'O', '-', 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'T', 'R', 'I', 'A', 'N', 'G', 'L', 'E', '-', 'H', 'E', 'A', 'D', 'E', 'D', - 'T', 'R', 'Y', 'A', 'S', 'O', 'P', 'O', 'V', 'O', 'D', 'N', 'A', 'Y', 'A', - 'T', 'R', 'Y', 'A', 'S', 'O', 'S', 'T', 'R', 'E', 'L', 'N', 'A', 'Y', 'A', - 'W', 'H', 'I', 'T', 'E', '-', 'F', 'E', 'A', 'T', 'H', 'E', 'R', 'E', 'D', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'A', 'R', 'R', 'O', 'W', 'H', 'E', 'A', 'D', '-', 'S', 'H', 'A', 'P', 'E', 'D', - 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'C', 'I', 'E', 'U', 'C', - 'C', 'I', 'E', 'U', 'C', '-', 'S', 'S', 'A', 'N', 'G', 'P', 'I', 'E', 'U', 'P', - 'E', 'X', 'T', 'R', 'A', 'T', 'E', 'R', 'R', 'E', 'S', 'T', 'R', 'I', 'A', 'L', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '4', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '5', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '6', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '7', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '8', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', '9', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'A', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'B', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'C', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'D', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'E', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '3', 'F', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '0', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '1', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '2', 'F', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '0', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '1', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '2', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '3', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '4', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '5', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '6', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '7', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '8', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', '9', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'A', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'B', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'C', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'D', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', 'A', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', 'B', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', 'C', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', 'D', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', 'E', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'E', 'F', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '0', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '1', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '2', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '3', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '4', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '5', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '6', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '7', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '8', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', '9', - 'H', 'I', 'E', 'R', 'O', 'G', 'L', 'Y', 'P', 'H', '-', '1', '4', '3', 'F', 'A', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '0', '-', '0', '6', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '1', '-', '0', '6', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '2', '-', '0', '6', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '3', '-', '0', '6', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '4', '-', '0', '6', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '5', '-', '0', '6', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '0', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '1', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '2', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '3', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '4', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '5', - 'H', 'O', 'R', 'I', 'Z', 'O', 'N', 'T', 'A', 'L', '-', '0', '6', '-', '0', '6', - 'K', 'L', 'Y', 'U', 'C', 'H', 'E', 'P', 'O', 'V', 'O', 'D', 'N', 'A', 'Y', 'A', - 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'M', 'A', 'D', 'R', - 'M', 'A', 'R', 'C', 'A', 'T', 'O', '-', 'S', 'T', 'A', 'C', 'C', 'A', 'T', 'O', - 'M', 'I', 'E', 'U', 'M', '-', 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', - 'M', 'I', 'E', 'U', 'M', '-', 'S', 'S', 'A', 'N', 'G', 'N', 'I', 'E', 'U', 'N', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'C', 'I', 'E', 'U', 'C', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P', - 'R', 'E', 'S', 'H', '-', 'A', 'Y', 'I', 'N', '-', 'D', 'A', 'L', 'E', 'T', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M', '-', 'S', 'I', 'O', 'S', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', - 'R', 'I', 'E', 'U', 'L', '-', 'S', 'S', 'A', 'N', 'G', 'P', 'I', 'E', 'U', 'P', - 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C', '-', 'H', 'I', 'E', 'U', 'H', - 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'S', 'S', 'A', 'N', 'G', 'Y', 'E', 'O', 'R', 'I', 'N', 'H', 'I', 'E', 'U', 'H', - 'T', 'E', 'A', 'R', 'D', 'R', 'O', 'P', '-', 'S', 'H', 'A', 'N', 'K', 'E', 'D', - 'T', 'O', 'R', 'S', 'O', '-', 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'T', 'R', 'A', 'V', 'E', 'L', '-', 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'N', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'P', 'A', 'N', 'S', 'I', 'O', 'S', - 'A', 'C', 'U', 'T', 'E', '-', 'G', 'R', 'A', 'V', 'E', '-', 'A', 'C', 'U', 'T', 'E', - 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'E', 'Y', 'E', 'G', 'A', 'Z', 'E', '-', 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'G', 'R', 'A', 'V', 'E', '-', 'A', 'C', 'U', 'T', 'E', '-', 'G', 'R', 'A', 'V', 'E', - 'I', 'E', 'U', 'N', 'G', '-', 'S', 'S', 'A', 'N', 'G', 'K', 'I', 'Y', 'E', 'O', 'K', - 'K', 'A', 'T', 'A', 'K', 'A', 'N', 'A', '-', 'H', 'I', 'R', 'A', 'G', 'A', 'N', 'A', - 'M', 'O', 'V', 'E', 'M', 'E', 'N', 'T', '-', 'D', 'I', 'A', 'G', 'O', 'N', 'A', 'L', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'R', 'I', 'E', 'U', 'L', '-', 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'S', 'I', 'O', 'S', - 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M', '-', 'H', 'I', 'E', 'U', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', '-', 'H', 'I', 'E', 'U', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'S', 'S', 'A', 'N', 'G', 'K', 'I', 'Y', 'E', 'O', 'K', - 'R', 'I', 'E', 'U', 'L', '-', 'S', 'S', 'A', 'N', 'G', 'T', 'I', 'K', 'E', 'U', 'T', - 'R', 'I', 'E', 'U', 'L', '-', 'Y', 'E', 'O', 'R', 'I', 'N', 'H', 'I', 'E', 'U', 'H', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'H', 'A', 'G', 'A', 'L', 'L', - 'S', 'I', 'O', 'S', '-', 'P', 'I', 'E', 'U', 'P', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'S', 'O', 'F', 'T', 'W', 'A', 'R', 'E', '-', 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', - 'S', 'S', 'A', 'N', 'G', 'T', 'I', 'K', 'E', 'U', 'T', '-', 'P', 'I', 'E', 'U', 'P', - 'T', 'R', 'A', 'V', 'E', 'L', '-', 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'C', 'H', 'I', 'E', 'U', 'C', 'H', - 'C', 'H', 'I', 'T', 'U', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C', - 'E', 'Y', 'E', 'G', 'A', 'Z', 'E', '-', 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'S', 'S', 'A', 'N', 'G', 'P', 'I', 'E', 'U', 'P', - 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '-', 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'L', 'O', 'N', 'G', '-', 'B', 'R', 'A', 'N', 'C', 'H', '-', 'H', 'A', 'G', 'A', 'L', 'L', - 'M', 'O', 'V', 'E', 'M', 'E', 'N', 'T', '-', 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'N', 'O', 'R', 'T', 'H', 'E', 'A', 'S', 'T', '-', 'P', 'O', 'I', 'N', 'T', 'I', 'N', 'G', - 'P', 'A', 'R', 'T', 'I', 'A', 'L', 'L', 'Y', '-', 'R', 'E', 'C', 'Y', 'C', 'L', 'E', 'D', - 'P', 'I', 'E', 'U', 'P', '-', 'S', 'I', 'O', 'S', '-', 'T', 'H', 'I', 'E', 'U', 'T', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'K', 'I', 'Y', 'E', 'O', 'K', '-', 'H', 'I', 'E', 'U', 'H', - 'R', 'I', 'E', 'U', 'L', '-', 'M', 'I', 'E', 'U', 'M', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', '-', 'T', 'I', 'K', 'E', 'U', 'T', - 'R', 'I', 'E', 'U', 'L', '-', 'T', 'I', 'K', 'E', 'U', 'T', '-', 'H', 'I', 'E', 'U', 'H', - 'R', 'O', 'T', 'A', 'T', 'I', 'O', 'N', '-', 'W', 'A', 'L', 'L', 'P', 'L', 'A', 'N', 'E', - 'S', 'H', 'O', 'R', 'T', '-', 'T', 'W', 'I', 'G', '-', 'B', 'J', 'A', 'R', 'K', 'A', 'N', - 'S', 'I', 'O', 'S', '-', 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'I', 'E', 'U', 'P', - 'S', 'S', 'A', 'N', 'G', 'R', 'I', 'E', 'U', 'L', '-', 'K', 'H', 'I', 'E', 'U', 'K', 'H', - 'T', 'I', 'K', 'E', 'U', 'T', '-', 'S', 'I', 'O', 'S', '-', 'K', 'I', 'Y', 'E', 'O', 'K', - 'T', 'R', 'O', 'M', 'I', 'K', 'O', 'P', 'A', 'R', 'A', 'K', 'A', 'L', 'E', 'S', 'M', 'A', - 'D', 'V', 'O', 'E', 'C', 'H', 'E', 'L', 'N', 'O', 'P', 'O', 'V', 'O', 'D', 'N', 'A', 'Y', 'A', - 'K', 'L', 'Y', 'U', 'C', 'H', 'E', 'N', 'E', 'P', 'O', 'S', 'T', 'O', 'Y', 'A', 'N', 'N', 'Y', - 'L', 'O', 'C', 'A', 'T', 'I', 'O', 'N', '-', 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'M', 'O', 'V', 'E', 'M', 'E', 'N', 'T', '-', 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'O', 'P', 'E', 'N', '-', 'C', 'I', 'R', 'C', 'U', 'I', 'T', '-', 'O', 'U', 'T', 'P', 'U', 'T', - 'P', 'I', 'E', 'U', 'P', '-', 'R', 'I', 'E', 'U', 'L', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'P', 'S', 'I', 'F', 'I', 'S', 'T', 'O', 'P', 'A', 'R', 'A', 'K', 'A', 'L', 'E', 'S', 'M', 'A', - 'R', 'I', 'E', 'U', 'L', '-', 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'I', 'E', 'U', 'P', - 'R', 'I', 'E', 'U', 'L', '-', 'P', 'I', 'E', 'U', 'P', '-', 'P', 'H', 'I', 'E', 'U', 'P', 'H', - 'R', 'O', 'T', 'A', 'T', 'I', 'O', 'N', '-', 'F', 'L', 'O', 'O', 'R', 'P', 'L', 'A', 'N', 'E', - 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'S', 'I', 'O', 'S', - 'D', 'V', 'O', 'E', 'C', 'H', 'E', 'L', 'N', 'O', 'K', 'R', 'Y', 'Z', 'H', 'E', 'V', 'A', 'Y', 'A', - 'Y', 'E', 'S', 'I', 'E', 'U', 'N', 'G', '-', 'S', 'S', 'A', 'N', 'G', 'K', 'I', 'Y', 'E', 'O', 'K', - 'A', 'N', 'T', 'I', 'C', 'L', 'O', 'C', 'K', 'W', 'I', 'S', 'E', '-', 'R', 'O', 'T', 'A', 'T', 'E', 'D', - 'C', 'E', 'O', 'N', 'G', 'C', 'H', 'I', 'E', 'U', 'M', 'S', 'S', 'A', 'N', 'G', 'C', 'I', 'E', 'U', 'C', - 'K', 'L', 'Y', 'U', 'C', 'H', 'E', 'N', 'E', 'P', 'O', 'S', 'T', 'O', 'Y', 'A', 'N', 'N', 'A', 'Y', 'A', - 'P', 'A', 'N', 'S', 'I', 'O', 'S', '-', 'K', 'A', 'P', 'Y', 'E', 'O', 'U', 'N', 'P', 'I', 'E', 'U', 'P', - 'B', 'Y', 'E', 'L', 'O', 'R', 'U', 'S', 'S', 'I', 'A', 'N', '-', 'U', 'K', 'R', 'A', 'I', 'N', 'I', 'A', 'N', - 'P', 'A', 'S', 'S', 'I', 'V', 'E', '-', 'P', 'U', 'L', 'L', '-', 'U', 'P', '-', 'O', 'U', 'T', 'P', 'U', 'T', - 'R', 'I', 'E', 'U', 'L', '-', 'Y', 'E', 'O', 'R', 'I', 'N', 'H', 'I', 'E', 'U', 'H', '-', 'H', 'I', 'E', 'U', 'H', - 'O', 'N', 'E', '-', 'H', 'U', 'N', 'D', 'R', 'E', 'D', '-', 'A', 'N', 'D', '-', 'S', 'I', 'X', 'T', 'I', 'E', 'T', 'H', - 'P', 'A', 'S', 'S', 'I', 'V', 'E', '-', 'P', 'U', 'L', 'L', '-', 'D', 'O', 'W', 'N', '-', 'O', 'U', 'T', 'P', 'U', 'T', - 'T', 'H', 'R', 'E', 'E', '-', 'H', 'U', 'N', 'D', 'R', 'E', 'D', '-', 'A', 'N', 'D', '-', 'T', 'W', 'E', 'N', 'T', 'I', 'E', 'T', 'H', -}; -#define UNICODE_CHARNAME_NUM_WORDS 18182 -static const struct { uint32_t extra_offset; uint16_t ind_offset; } unicode_name_by_length[29] = { - { 0, 0 }, - { 0, 0 }, - { 26, 26 }, - { 784, 405 }, - { 5755, 2062 }, - { 21403, 5974 }, - { 30648, 7823 }, - { 36606, 8816 }, - { 43039, 9735 }, - { 49079, 10490 }, - { 54317, 11072 }, - { 58757, 11516 }, - { 62629, 11868 }, - { 65353, 12095 }, - { 76975, 12989 }, - { 79187, 13147 }, - { 92717, 14049 }, - { 157821, 18118 }, - { 158161, 18138 }, - { 158539, 18159 }, - { 158729, 18169 }, - { 158789, 18172 }, - { 158873, 18176 }, - { 158917, 18178 }, - { 158940, 18179 }, - { 158988, 18181 }, - { 158988, 18181 }, - { 158988, 18181 }, - { 159015, 18182 } -}; -#define UNICODE_CHARNAME_WORD_HANGUL 8156 -#define UNICODE_CHARNAME_WORD_SYLLABLE 10388 -#define UNICODE_CHARNAME_WORD_CJK 572 -#define UNICODE_CHARNAME_WORD_COMPATIBILITY 12105 -#define UNICODE_CHARNAME_WORD_VARIATION 11048 -static const uint16_t unicode_names[144953] = { - 17, 8363, 3963, 7433, 10574, - 23, 3, 965, 17298, - 37, 323, 20858, - 47, 323, 1, 21791, 1036, - 51, 20377, 955, 22556, - 51, 20377, 8281, 13589, 17810, - 51, 20377, 8281, 17773, 17810, - 51, 20377, 10638, - 51, 20377, 11141, 12916, - 51, 20377, 14623, 26298, - 51, 20377, 14659, 13589, 17810, - 51, 20377, 14659, 17773, 17810, - 51, 20377, 16069, 26298, - 51, 20377, 17083, 16916, - 51, 20377, 17083, 22784, - 51, 20377, 17083, 23084, - 51, 20377, 22817, 23084, - 63, 17938, - 169, 2643, 16561, 17298, - 203, 6544, - 203, 9994, - 203, 14932, - 205, 6544, - 205, 9994, - 205, 14932, - 487, 2761, 15281, 19967, 17298, - 487, 13166, - 487, 13167, 10574, - 487, 16673, 16902, - 487, 16918, - 487, 19131, 17298, - 487, 19612, - 487, 23526, - 515, 7433, 10574, - 517, 9773, 10575, 454, - 517, 9773, 10575, 7796, - 517, 9773, 10575, 18270, - 517, 9773, 13069, 2760, - 517, 9773, 13069, 3240, - 517, 9773, 13069, 3536, - 517, 9773, 13069, 7036, - 517, 9773, 13069, 7058, - 517, 9773, 13069, 9358, - 517, 9773, 13069, 11824, - 517, 9773, 13069, 13150, - 517, 9773, 13069, 14778, - 517, 9773, 13069, 15116, - 517, 9773, 16531, 0, - 517, 9773, 16531, 8, - 517, 9773, 16531, 16, - 517, 9773, 16531, 28, - 517, 9773, 16531, 40, - 517, 9773, 16531, 60, - 517, 9773, 16531, 64, - 517, 9773, 16531, 70, - 517, 9773, 16531, 78, - 517, 9773, 16531, 100, - 517, 9773, 16531, 182, - 517, 9773, 16531, 190, - 517, 9773, 16531, 192, - 517, 9773, 16531, 214, - 517, 9773, 16531, 304, - 517, 9773, 16531, 322, - 517, 9773, 16531, 326, - 517, 9773, 16531, 334, - 517, 9773, 16531, 518, - 517, 9773, 16531, 522, - 517, 9773, 16531, 542, - 517, 9773, 16531, 688, - 517, 9773, 16531, 690, - 517, 9773, 16531, 702, - 517, 9773, 16531, 1396, - 517, 9773, 16531, 1898, - 517, 9773, 16531, 2762, - 517, 9773, 16531, 2778, - 517, 9773, 16531, 3576, - 517, 9773, 16531, 3618, - 517, 9773, 23737, 10574, - 517, 12675, 455, 19348, - 517, 12675, 5462, - 517, 12675, 13069, 2760, - 517, 12675, 13069, 3240, - 517, 12675, 13069, 3536, - 517, 12675, 13069, 7036, - 517, 12675, 13069, 7058, - 517, 12675, 13069, 9358, - 517, 12675, 13069, 11824, - 517, 12675, 13069, 13150, - 517, 12675, 13069, 14778, - 517, 12675, 13069, 15116, - 517, 12675, 14642, - 517, 12675, 16531, 68, - 517, 12675, 16531, 78, - 517, 12675, 16531, 94, - 517, 12675, 16531, 204, - 517, 12675, 16531, 208, - 517, 12675, 16531, 312, - 517, 12675, 16531, 330, - 517, 12675, 16531, 332, - 517, 12675, 16531, 394, - 517, 12675, 16531, 398, - 517, 12675, 16531, 402, - 517, 12675, 16531, 412, - 517, 12675, 16531, 416, - 517, 12675, 16531, 500, - 517, 12675, 16531, 510, - 517, 12675, 16531, 536, - 517, 12675, 16531, 678, - 517, 12675, 16531, 680, - 517, 12675, 16531, 710, - 517, 12675, 16531, 824, - 517, 12675, 16531, 826, - 517, 12675, 16531, 830, - 517, 12675, 16531, 838, - 517, 12675, 16531, 898, - 517, 12675, 16531, 1360, - 517, 12675, 16531, 1408, - 517, 12675, 16531, 1884, - 517, 12675, 16531, 2190, - 517, 12675, 16531, 2780, - 517, 12675, 16531, 3616, - 517, 12675, 18187, 20896, - 517, 12675, 20480, - 517, 12675, 22593, 20896, - 517, 12675, 23555, 16095, 16688, - 517, 12675, 23555, 16688, - 519, 17298, - 521, 11513, 23213, 8809, 11513, 8281, 14659, 12415, 12318, - 529, 11513, 1291, 16382, - 540, - 630, - 699, 5989, 8281, 6701, 5989, 8281, 18252, - 699, 5989, 8281, 6701, 5989, 14659, 18252, - 699, 5989, 14659, 6701, 5989, 8281, 18252, - 699, 5989, 14659, 6701, 5989, 14659, 18252, - 699, 6701, 12414, - 699, 6701, 12415, 11513, 5992, - 699, 6701, 12525, 12414, - 699, 6701, 15453, 12414, - 699, 6701, 16095, 12414, - 699, 6701, 22841, 12414, - 699, 6701, 28089, 12414, - 699, 7031, 10856, - 699, 10850, - 699, 10851, 11513, 15939, 12318, - 699, 12415, 19281, 15938, - 699, 14659, 19791, 19976, - 699, 21022, - 699, 21023, 323, 1, 21791, 1036, - 699, 21023, 17769, 3537, 22495, 5990, - 752, - 783, 18961, 146, - 783, 18961, 170, - 783, 18961, 248, - 783, 18961, 350, - 783, 18961, 362, - 783, 18961, 402, - 783, 18961, 440, - 783, 18961, 524, - 783, 18961, 668, - 783, 18961, 754, - 783, 18961, 786, - 783, 18961, 796, - 783, 18961, 1052, - 783, 18961, 1118, - 783, 18961, 1138, - 783, 18961, 1182, - 783, 18961, 1186, - 783, 18961, 1570, - 783, 18961, 1630, - 783, 18961, 1762, - 783, 18961, 1944, - 783, 18961, 2066, - 783, 18961, 2260, - 783, 18961, 2350, - 783, 18961, 2458, - 783, 18961, 2902, - 783, 18961, 2920, - 783, 18961, 2972, - 783, 18961, 3224, - 783, 18961, 3290, - 783, 18961, 3392, - 783, 18961, 3676, - 783, 18961, 3718, - 783, 18961, 3946, - 783, 18961, 4078, - 783, 18961, 4092, - 783, 18961, 4094, - 783, 18961, 6032, - 783, 18961, 6372, - 783, 18961, 6602, - 783, 18961, 7266, - 783, 18961, 7272, - 783, 18961, 7726, - 783, 18961, 7730, - 783, 18961, 7736, - 783, 18961, 7872, - 783, 18961, 7892, - 783, 18961, 9158, - 783, 18961, 9572, - 783, 18961, 9590, - 783, 18961, 9636, - 783, 18961, 10452, - 783, 18961, 10494, - 783, 18961, 10524, - 783, 18961, 15636, - 783, 20777, 0, - 783, 20777, 8, - 783, 20777, 16, - 783, 20777, 28, - 783, 20777, 86, - 783, 20777, 94, - 783, 20777, 102, - 783, 20777, 108, - 783, 20777, 112, - 783, 20777, 116, - 783, 20777, 118, - 783, 20777, 122, - 783, 20777, 124, - 783, 20777, 126, - 783, 20777, 132, - 783, 20777, 136, - 783, 20777, 142, - 783, 20777, 144, - 783, 20777, 146, - 783, 20777, 150, - 783, 20777, 156, - 783, 20777, 160, - 783, 20777, 168, - 783, 20777, 170, - 783, 20777, 224, - 783, 20777, 228, - 783, 20777, 234, - 783, 20777, 240, - 783, 20777, 242, - 783, 20777, 244, - 783, 20777, 248, - 783, 20777, 252, - 783, 20777, 258, - 783, 20777, 262, - 783, 20777, 264, - 783, 20777, 272, - 783, 20777, 276, - 783, 20777, 288, - 783, 20777, 306, - 783, 20777, 326, - 783, 20777, 334, - 783, 20777, 338, - 783, 20777, 348, - 783, 20777, 350, - 783, 20777, 352, - 783, 20777, 354, - 783, 20777, 358, - 783, 20777, 362, - 783, 20777, 366, - 783, 20777, 374, - 783, 20777, 380, - 783, 20777, 394, - 783, 20777, 398, - 783, 20777, 402, - 783, 20777, 412, - 783, 20777, 416, - 783, 20777, 422, - 783, 20777, 426, - 783, 20777, 434, - 783, 20777, 440, - 783, 20777, 446, - 783, 20777, 454, - 783, 20777, 462, - 783, 20777, 466, - 783, 20777, 470, - 783, 20777, 478, - 783, 20777, 486, - 783, 20777, 490, - 783, 20777, 524, - 783, 20777, 532, - 783, 20777, 540, - 783, 20777, 548, - 783, 20777, 562, - 783, 20777, 566, - 783, 20777, 572, - 783, 20777, 578, - 783, 20777, 586, - 783, 20777, 590, - 783, 20777, 594, - 783, 20777, 596, - 783, 20777, 598, - 783, 20777, 600, - 783, 20777, 606, - 783, 20777, 610, - 783, 20777, 612, - 783, 20777, 614, - 783, 20777, 618, - 783, 20777, 624, - 783, 20777, 628, - 783, 20777, 638, - 783, 20777, 644, - 783, 20777, 648, - 783, 20777, 652, - 783, 20777, 656, - 783, 20777, 660, - 783, 20777, 668, - 783, 20777, 696, - 783, 20777, 714, - 783, 20777, 720, - 783, 20777, 722, - 783, 20777, 728, - 783, 20777, 734, - 783, 20777, 738, - 783, 20777, 744, - 783, 20777, 754, - 783, 20777, 756, - 783, 20777, 768, - 783, 20777, 770, - 783, 20777, 776, - 783, 20777, 782, - 783, 20777, 786, - 783, 20777, 790, - 783, 20777, 794, - 783, 20777, 796, - 783, 20777, 798, - 783, 20777, 802, - 783, 20777, 804, - 783, 20777, 806, - 783, 20777, 808, - 783, 20777, 962, - 783, 20777, 966, - 783, 20777, 970, - 783, 20777, 972, - 783, 20777, 974, - 783, 20777, 976, - 783, 20777, 978, - 783, 20777, 980, - 783, 20777, 982, - 783, 20777, 994, - 783, 20777, 998, - 783, 20777, 1012, - 783, 20777, 1016, - 783, 20777, 1018, - 783, 20777, 1020, - 783, 20777, 1030, - 783, 20777, 1032, - 783, 20777, 1036, - 783, 20777, 1048, - 783, 20777, 1050, - 783, 20777, 1052, - 783, 20777, 1056, - 783, 20777, 1058, - 783, 20777, 1068, - 783, 20777, 1070, - 783, 20777, 1072, - 783, 20777, 1074, - 783, 20777, 1086, - 783, 20777, 1090, - 783, 20777, 1094, - 783, 20777, 1110, - 783, 20777, 1112, - 783, 20777, 1116, - 783, 20777, 1118, - 783, 20777, 1122, - 783, 20777, 1124, - 783, 20777, 1126, - 783, 20777, 1128, - 783, 20777, 1138, - 783, 20777, 1140, - 783, 20777, 1142, - 783, 20777, 1152, - 783, 20777, 1154, - 783, 20777, 1158, - 783, 20777, 1162, - 783, 20777, 1164, - 783, 20777, 1166, - 783, 20777, 1168, - 783, 20777, 1170, - 783, 20777, 1182, - 783, 20777, 1184, - 783, 20777, 1186, - 783, 20777, 1188, - 783, 20777, 1204, - 783, 20777, 1208, - 783, 20777, 1210, - 783, 20777, 1214, - 783, 20777, 1216, - 783, 20777, 1218, - 783, 20777, 1220, - 783, 20777, 1222, - 783, 20777, 1232, - 783, 20777, 1234, - 783, 20777, 1248, - 783, 20777, 1256, - 783, 20777, 1258, - 783, 20777, 1260, - 783, 20777, 1288, - 783, 20777, 1290, - 783, 20777, 1292, - 783, 20777, 1308, - 783, 20777, 1310, - 783, 20777, 1312, - 783, 20777, 1314, - 783, 20777, 1316, - 783, 20777, 1448, - 783, 20777, 1454, - 783, 20777, 1456, - 783, 20777, 1472, - 783, 20777, 1474, - 783, 20777, 1476, - 783, 20777, 1490, - 783, 20777, 1494, - 783, 20777, 1502, - 783, 20777, 1504, - 783, 20777, 1506, - 783, 20777, 1508, - 783, 20777, 1518, - 783, 20777, 1520, - 783, 20777, 1522, - 783, 20777, 1544, - 783, 20777, 1548, - 783, 20777, 1550, - 783, 20777, 1570, - 783, 20777, 1574, - 783, 20777, 1576, - 783, 20777, 1578, - 783, 20777, 1580, - 783, 20777, 1582, - 783, 20777, 1584, - 783, 20777, 1586, - 783, 20777, 1602, - 783, 20777, 1610, - 783, 20777, 1612, - 783, 20777, 1614, - 783, 20777, 1628, - 783, 20777, 1630, - 783, 20777, 1632, - 783, 20777, 1650, - 783, 20777, 1652, - 783, 20777, 1654, - 783, 20777, 1656, - 783, 20777, 1658, - 783, 20777, 1694, - 783, 20777, 1698, - 783, 20777, 1702, - 783, 20777, 1716, - 783, 20777, 1720, - 783, 20777, 1732, - 783, 20777, 1740, - 783, 20777, 1744, - 783, 20777, 1746, - 783, 20777, 1748, - 783, 20777, 1750, - 783, 20777, 1752, - 783, 20777, 1754, - 783, 20777, 1756, - 783, 20777, 1760, - 783, 20777, 1762, - 783, 20777, 1764, - 783, 20777, 1766, - 783, 20777, 1768, - 783, 20777, 1770, - 783, 20777, 1772, - 783, 20777, 1786, - 783, 20777, 1788, - 783, 20777, 1790, - 783, 20777, 1804, - 783, 20777, 1818, - 783, 20777, 1820, - 783, 20777, 1824, - 783, 20777, 1826, - 783, 20777, 1860, - 783, 20777, 1862, - 783, 20777, 1864, - 783, 20777, 1924, - 783, 20777, 1928, - 783, 20777, 1930, - 783, 20777, 1932, - 783, 20777, 1938, - 783, 20777, 1940, - 783, 20777, 1942, - 783, 20777, 1944, - 783, 20777, 1950, - 783, 20777, 1952, - 783, 20777, 1954, - 783, 20777, 1958, - 783, 20777, 1960, - 783, 20777, 1962, - 783, 20777, 1964, - 783, 20777, 1968, - 783, 20777, 1972, - 783, 20777, 1974, - 783, 20777, 1976, - 783, 20777, 1978, - 783, 20777, 2002, - 783, 20777, 2008, - 783, 20777, 2012, - 783, 20777, 2024, - 783, 20777, 2028, - 783, 20777, 2032, - 783, 20777, 2052, - 783, 20777, 2062, - 783, 20777, 2066, - 783, 20777, 2072, - 783, 20777, 2102, - 783, 20777, 2104, - 783, 20777, 2108, - 783, 20777, 2140, - 783, 20777, 2142, - 783, 20777, 2146, - 783, 20777, 2148, - 783, 20777, 2152, - 783, 20777, 2208, - 783, 20777, 2214, - 783, 20777, 2220, - 783, 20777, 2240, - 783, 20777, 2246, - 783, 20777, 2260, - 783, 20777, 2266, - 783, 20777, 2272, - 783, 20777, 2274, - 783, 20777, 2292, - 783, 20777, 2298, - 783, 20777, 2302, - 783, 20777, 2326, - 783, 20777, 2328, - 783, 20777, 2330, - 783, 20777, 2334, - 783, 20777, 2336, - 783, 20777, 2348, - 783, 20777, 2350, - 783, 20777, 2352, - 783, 20777, 2354, - 783, 20777, 2372, - 783, 20777, 2378, - 783, 20777, 2382, - 783, 20777, 2412, - 783, 20777, 2416, - 783, 20777, 2418, - 783, 20777, 2420, - 783, 20777, 2422, - 783, 20777, 2430, - 783, 20777, 2442, - 783, 20777, 2444, - 783, 20777, 2446, - 783, 20777, 2458, - 783, 20777, 2460, - 783, 20777, 2462, - 783, 20777, 2476, - 783, 20777, 2478, - 783, 20777, 2480, - 783, 20777, 2484, - 783, 20777, 2486, - 783, 20777, 2502, - 783, 20777, 2504, - 783, 20777, 2506, - 783, 20777, 2524, - 783, 20777, 2532, - 783, 20777, 2536, - 783, 20777, 2538, - 783, 20777, 2540, - 783, 20777, 2542, - 783, 20777, 2544, - 783, 20777, 2548, - 783, 20777, 2550, - 783, 20777, 2552, - 783, 20777, 2554, - 783, 20777, 2556, - 783, 20777, 2566, - 783, 20777, 2572, - 783, 20777, 2574, - 783, 20777, 2576, - 783, 20777, 2582, - 783, 20777, 2594, - 783, 20777, 2602, - 783, 20777, 2604, - 783, 20777, 2606, - 783, 20777, 2612, - 783, 20777, 2614, - 783, 20777, 2616, - 783, 20777, 2618, - 783, 20777, 2638, - 783, 20777, 2642, - 783, 20777, 2646, - 783, 20777, 2656, - 783, 20777, 2658, - 783, 20777, 2660, - 783, 20777, 2662, - 783, 20777, 2664, - 783, 20777, 2678, - 783, 20777, 2680, - 783, 20777, 2682, - 783, 20777, 2684, - 783, 20777, 2686, - 783, 20777, 2704, - 783, 20777, 2706, - 783, 20777, 2708, - 783, 20777, 2710, - 783, 20777, 2712, - 783, 20777, 2714, - 783, 20777, 2716, - 783, 20777, 2718, - 783, 20777, 2798, - 783, 20777, 2802, - 783, 20777, 2808, - 783, 20777, 2840, - 783, 20777, 2848, - 783, 20777, 2850, - 783, 20777, 2852, - 783, 20777, 2866, - 783, 20777, 2868, - 783, 20777, 2870, - 783, 20777, 2894, - 783, 20777, 2896, - 783, 20777, 2900, - 783, 20777, 2902, - 783, 20777, 2904, - 783, 20777, 2916, - 783, 20777, 2918, - 783, 20777, 2920, - 783, 20777, 2922, - 783, 20777, 2952, - 783, 20777, 2958, - 783, 20777, 2960, - 783, 20777, 2962, - 783, 20777, 2970, - 783, 20777, 2972, - 783, 20777, 2974, - 783, 20777, 2986, - 783, 20777, 2988, - 783, 20777, 2990, - 783, 20777, 2992, - 783, 20777, 2998, - 783, 20777, 3014, - 783, 20777, 3016, - 783, 20777, 3018, - 783, 20777, 3022, - 783, 20777, 3044, - 783, 20777, 3048, - 783, 20777, 3052, - 783, 20777, 3068, - 783, 20777, 3072, - 783, 20777, 3112, - 783, 20777, 3114, - 783, 20777, 3116, - 783, 20777, 3118, - 783, 20777, 3120, - 783, 20777, 3122, - 783, 20777, 3124, - 783, 20777, 3126, - 783, 20777, 3140, - 783, 20777, 3142, - 783, 20777, 3144, - 783, 20777, 3146, - 783, 20777, 3148, - 783, 20777, 3160, - 783, 20777, 3162, - 783, 20777, 3164, - 783, 20777, 3166, - 783, 20777, 3186, - 783, 20777, 3192, - 783, 20777, 3196, - 783, 20777, 3204, - 783, 20777, 3208, - 783, 20777, 3212, - 783, 20777, 3214, - 783, 20777, 3218, - 783, 20777, 3220, - 783, 20777, 3224, - 783, 20777, 3228, - 783, 20777, 3236, - 783, 20777, 3238, - 783, 20777, 3240, - 783, 20777, 3260, - 783, 20777, 3266, - 783, 20777, 3272, - 783, 20777, 3286, - 783, 20777, 3288, - 783, 20777, 3290, - 783, 20777, 3292, - 783, 20777, 3294, - 783, 20777, 3296, - 783, 20777, 3312, - 783, 20777, 3314, - 783, 20777, 3316, - 783, 20777, 3318, - 783, 20777, 3322, - 783, 20777, 3340, - 783, 20777, 3342, - 783, 20777, 3344, - 783, 20777, 3346, - 783, 20777, 3384, - 783, 20777, 3392, - 783, 20777, 3400, - 783, 20777, 3414, - 783, 20777, 3420, - 783, 20777, 3436, - 783, 20777, 3444, - 783, 20777, 3448, - 783, 20777, 3450, - 783, 20777, 3472, - 783, 20777, 3478, - 783, 20777, 3482, - 783, 20777, 3520, - 783, 20777, 3522, - 783, 20777, 3524, - 783, 20777, 3526, - 783, 20777, 3528, - 783, 20777, 3624, - 783, 20777, 3626, - 783, 20777, 3662, - 783, 20777, 3664, - 783, 20777, 3670, - 783, 20777, 3676, - 783, 20777, 3682, - 783, 20777, 3688, - 783, 20777, 3692, - 783, 20777, 3694, - 783, 20777, 3696, - 783, 20777, 3704, - 783, 20777, 3708, - 783, 20777, 3714, - 783, 20777, 3716, - 783, 20777, 3718, - 783, 20777, 3720, - 783, 20777, 3722, - 783, 20777, 3728, - 783, 20777, 3730, - 783, 20777, 3732, - 783, 20777, 3734, - 783, 20777, 3744, - 783, 20777, 3746, - 783, 20777, 3752, - 783, 20777, 3766, - 783, 20777, 3770, - 783, 20777, 3784, - 783, 20777, 3788, - 783, 20777, 3798, - 783, 20777, 3822, - 783, 20777, 3824, - 783, 20777, 3826, - 783, 20777, 3828, - 783, 20777, 3832, - 783, 20777, 3836, - 783, 20777, 3838, - 783, 20777, 3840, - 783, 20777, 3860, - 783, 20777, 3862, - 783, 20777, 3864, - 783, 20777, 3868, - 783, 20777, 3934, - 783, 20777, 3944, - 783, 20777, 3946, - 783, 20777, 3948, - 783, 20777, 3956, - 783, 20777, 3960, - 783, 20777, 3964, - 783, 20777, 3980, - 783, 20777, 3982, - 783, 20777, 3986, - 783, 20777, 3990, - 783, 20777, 3992, - 783, 20777, 4006, - 783, 20777, 4008, - 783, 20777, 4010, - 783, 20777, 4012, - 783, 20777, 4026, - 783, 20777, 4028, - 783, 20777, 4030, - 783, 20777, 4038, - 783, 20777, 4040, - 783, 20777, 4042, - 783, 20777, 4044, - 783, 20777, 4048, - 783, 20777, 4050, - 783, 20777, 4052, - 783, 20777, 4058, - 783, 20777, 4062, - 783, 20777, 4064, - 783, 20777, 4066, - 783, 20777, 4076, - 783, 20777, 4078, - 783, 20777, 4080, - 783, 20777, 4090, - 783, 20777, 4092, - 783, 20777, 4094, - 783, 20777, 4096, - 783, 20777, 4098, - 783, 20777, 4104, - 783, 20777, 4106, - 783, 20777, 4108, - 783, 20777, 4110, - 783, 20777, 4112, - 783, 20777, 4114, - 783, 20777, 4116, - 783, 20777, 4118, - 783, 20777, 4120, - 783, 20777, 4122, - 783, 20777, 6000, - 783, 20777, 6002, - 783, 20777, 6004, - 783, 20777, 6008, - 783, 20777, 6010, - 783, 20777, 6012, - 783, 20777, 6014, - 783, 20777, 6016, - 783, 20777, 6018, - 783, 20777, 6020, - 783, 20777, 6022, - 783, 20777, 6024, - 783, 20777, 6026, - 783, 20777, 6028, - 783, 20777, 6030, - 783, 20777, 6032, - 783, 20777, 6034, - 783, 20777, 6036, - 783, 20777, 6038, - 783, 20777, 6040, - 783, 20777, 6076, - 783, 20777, 6078, - 783, 20777, 6080, - 783, 20777, 6130, - 783, 20777, 6132, - 783, 20777, 6140, - 783, 20777, 6146, - 783, 20777, 6266, - 783, 20777, 6270, - 783, 20777, 6274, - 783, 20777, 6282, - 783, 20777, 6284, - 783, 20777, 6286, - 783, 20777, 6300, - 783, 20777, 6302, - 783, 20777, 6304, - 783, 20777, 6308, - 783, 20777, 6310, - 783, 20777, 6312, - 783, 20777, 6314, - 783, 20777, 6320, - 783, 20777, 6322, - 783, 20777, 6324, - 783, 20777, 6326, - 783, 20777, 6328, - 783, 20777, 6330, - 783, 20777, 6332, - 783, 20777, 6372, - 783, 20777, 6374, - 783, 20777, 6378, - 783, 20777, 6392, - 783, 20777, 6558, - 783, 20777, 6560, - 783, 20777, 6562, - 783, 20777, 6568, - 783, 20777, 6570, - 783, 20777, 6582, - 783, 20777, 6584, - 783, 20777, 6586, - 783, 20777, 6588, - 783, 20777, 6592, - 783, 20777, 6594, - 783, 20777, 6596, - 783, 20777, 6598, - 783, 20777, 6600, - 783, 20777, 6602, - 783, 20777, 6604, - 783, 20777, 6606, - 783, 20777, 6658, - 783, 20777, 6660, - 783, 20777, 6722, - 783, 20777, 6726, - 783, 20777, 7074, - 783, 20777, 7246, - 783, 20777, 7248, - 783, 20777, 7250, - 783, 20777, 7254, - 783, 20777, 7256, - 783, 20777, 7258, - 783, 20777, 7260, - 783, 20777, 7262, - 783, 20777, 7264, - 783, 20777, 7266, - 783, 20777, 7268, - 783, 20777, 7270, - 783, 20777, 7272, - 783, 20777, 7274, - 783, 20777, 7276, - 783, 20777, 7278, - 783, 20777, 7280, - 783, 20777, 7310, - 783, 20777, 7312, - 783, 20777, 7314, - 783, 20777, 7360, - 783, 20777, 7362, - 783, 20777, 7364, - 783, 20777, 7368, - 783, 20777, 7518, - 783, 20777, 7526, - 783, 20777, 7528, - 783, 20777, 7532, - 783, 20777, 7534, - 783, 20777, 7536, - 783, 20777, 7538, - 783, 20777, 7540, - 783, 20777, 7542, - 783, 20777, 7544, - 783, 20777, 7546, - 783, 20777, 7548, - 783, 20777, 7550, - 783, 20777, 7552, - 783, 20777, 7554, - 783, 20777, 7556, - 783, 20777, 7558, - 783, 20777, 7560, - 783, 20777, 7562, - 783, 20777, 7564, - 783, 20777, 7566, - 783, 20777, 7568, - 783, 20777, 7570, - 783, 20777, 7572, - 783, 20777, 7574, - 783, 20777, 7576, - 783, 20777, 7578, - 783, 20777, 7580, - 783, 20777, 7582, - 783, 20777, 7584, - 783, 20777, 7586, - 783, 20777, 7588, - 783, 20777, 7590, - 783, 20777, 7592, - 783, 20777, 7594, - 783, 20777, 7596, - 783, 20777, 7598, - 783, 20777, 7600, - 783, 20777, 7602, - 783, 20777, 7604, - 783, 20777, 7606, - 783, 20777, 7610, - 783, 20777, 7612, - 783, 20777, 7614, - 783, 20777, 7616, - 783, 20777, 7618, - 783, 20777, 7620, - 783, 20777, 7622, - 783, 20777, 7624, - 783, 20777, 7626, - 783, 20777, 7628, - 783, 20777, 7632, - 783, 20777, 7634, - 783, 20777, 7698, - 783, 20777, 7700, - 783, 20777, 7702, - 783, 20777, 7712, - 783, 20777, 7714, - 783, 20777, 7716, - 783, 20777, 7718, - 783, 20777, 7720, - 783, 20777, 7722, - 783, 20777, 7724, - 783, 20777, 7726, - 783, 20777, 7728, - 783, 20777, 7730, - 783, 20777, 7732, - 783, 20777, 7734, - 783, 20777, 7736, - 783, 20777, 7862, - 783, 20777, 7864, - 783, 20777, 7866, - 783, 20777, 7872, - 783, 20777, 7874, - 783, 20777, 7876, - 783, 20777, 7878, - 783, 20777, 7880, - 783, 20777, 7882, - 783, 20777, 7884, - 783, 20777, 7886, - 783, 20777, 7888, - 783, 20777, 7890, - 783, 20777, 7892, - 783, 20777, 7894, - 783, 20777, 7896, - 783, 20777, 7898, - 783, 20777, 7900, - 783, 20777, 7918, - 783, 20777, 7920, - 783, 20777, 7922, - 783, 20777, 7924, - 783, 20777, 7928, - 783, 20777, 8104, - 783, 20777, 8106, - 783, 20777, 8180, - 783, 20777, 8184, - 783, 20777, 8188, - 783, 20777, 8306, - 783, 20777, 8308, - 783, 20777, 8310, - 783, 20777, 8366, - 783, 20777, 8368, - 783, 20777, 8370, - 783, 20777, 8372, - 783, 20777, 8382, - 783, 20777, 8880, - 783, 20777, 8882, - 783, 20777, 8884, - 783, 20777, 8896, - 783, 20777, 8898, - 783, 20777, 8900, - 783, 20777, 8902, - 783, 20777, 8904, - 783, 20777, 8906, - 783, 20777, 8908, - 783, 20777, 8910, - 783, 20777, 8912, - 783, 20777, 8914, - 783, 20777, 8916, - 783, 20777, 8938, - 783, 20777, 8940, - 783, 20777, 9006, - 783, 20777, 9008, - 783, 20777, 9010, - 783, 20777, 9016, - 783, 20777, 9152, - 783, 20777, 9154, - 783, 20777, 9156, - 783, 20777, 9158, - 783, 20777, 9160, - 783, 20777, 9162, - 783, 20777, 9164, - 783, 20777, 9166, - 783, 20777, 9168, - 783, 20777, 9170, - 783, 20777, 9174, - 783, 20777, 9176, - 783, 20777, 9178, - 783, 20777, 9180, - 783, 20777, 9182, - 783, 20777, 9184, - 783, 20777, 9186, - 783, 20777, 9188, - 783, 20777, 9194, - 783, 20777, 9196, - 783, 20777, 9198, - 783, 20777, 9202, - 783, 20777, 9204, - 783, 20777, 9206, - 783, 20777, 9208, - 783, 20777, 9212, - 783, 20777, 9214, - 783, 20777, 9220, - 783, 20777, 9222, - 783, 20777, 9224, - 783, 20777, 9228, - 783, 20777, 9230, - 783, 20777, 9232, - 783, 20777, 9234, - 783, 20777, 9266, - 783, 20777, 9274, - 783, 20777, 9276, - 783, 20777, 9280, - 783, 20777, 9282, - 783, 20777, 9296, - 783, 20777, 9310, - 783, 20777, 9314, - 783, 20777, 9318, - 783, 20777, 9324, - 783, 20777, 9350, - 783, 20777, 9352, - 783, 20777, 9374, - 783, 20777, 9376, - 783, 20777, 9378, - 783, 20777, 9380, - 783, 20777, 9384, - 783, 20777, 9386, - 783, 20777, 9388, - 783, 20777, 9390, - 783, 20777, 9392, - 783, 20777, 9394, - 783, 20777, 9396, - 783, 20777, 9398, - 783, 20777, 9400, - 783, 20777, 9402, - 783, 20777, 9404, - 783, 20777, 9450, - 783, 20777, 9452, - 783, 20777, 9454, - 783, 20777, 9456, - 783, 20777, 9460, - 783, 20777, 9462, - 783, 20777, 9464, - 783, 20777, 9466, - 783, 20777, 9470, - 783, 20777, 9472, - 783, 20777, 9474, - 783, 20777, 9476, - 783, 20777, 9478, - 783, 20777, 9480, - 783, 20777, 9482, - 783, 20777, 9484, - 783, 20777, 9530, - 783, 20777, 9532, - 783, 20777, 9534, - 783, 20777, 9568, - 783, 20777, 9572, - 783, 20777, 9578, - 783, 20777, 9580, - 783, 20777, 9590, - 783, 20777, 9592, - 783, 20777, 9594, - 783, 20777, 9600, - 783, 20777, 9602, - 783, 20777, 9604, - 783, 20777, 9606, - 783, 20777, 9610, - 783, 20777, 9614, - 783, 20777, 9616, - 783, 20777, 9618, - 783, 20777, 9620, - 783, 20777, 9622, - 783, 20777, 9624, - 783, 20777, 9626, - 783, 20777, 9628, - 783, 20777, 9630, - 783, 20777, 9634, - 783, 20777, 9636, - 783, 20777, 9640, - 783, 20777, 9642, - 783, 20777, 9644, - 783, 20777, 9646, - 783, 20777, 9648, - 783, 20777, 9650, - 783, 20777, 9872, - 783, 20777, 9876, - 783, 20777, 9928, - 783, 20777, 9930, - 783, 20777, 9932, - 783, 20777, 9946, - 783, 20777, 9984, - 783, 20777, 9986, - 783, 20777, 9988, - 783, 20777, 9996, - 783, 20777, 9998, - 783, 20777, 10000, - 783, 20777, 10002, - 783, 20777, 10014, - 783, 20777, 10190, - 783, 20777, 10194, - 783, 20777, 10196, - 783, 20777, 10198, - 783, 20777, 10200, - 783, 20777, 10202, - 783, 20777, 10204, - 783, 20777, 10208, - 783, 20777, 10210, - 783, 20777, 10212, - 783, 20777, 10214, - 783, 20777, 10216, - 783, 20777, 10218, - 783, 20777, 10220, - 783, 20777, 10222, - 783, 20777, 10224, - 783, 20777, 10244, - 783, 20777, 10246, - 783, 20777, 10248, - 783, 20777, 10260, - 783, 20777, 10450, - 783, 20777, 10452, - 783, 20777, 10454, - 783, 20777, 10464, - 783, 20777, 10466, - 783, 20777, 10468, - 783, 20777, 10494, - 783, 20777, 10498, - 783, 20777, 10502, - 783, 20777, 10520, - 783, 20777, 10522, - 783, 20777, 10524, - 783, 20777, 10526, - 783, 20777, 10528, - 783, 20777, 10542, - 783, 20777, 10544, - 783, 20777, 10546, - 783, 20777, 10548, - 783, 20777, 10568, - 783, 20777, 10570, - 783, 20777, 10644, - 783, 20777, 10646, - 783, 20777, 10648, - 783, 20777, 10652, - 783, 20777, 10654, - 783, 20777, 10658, - 783, 20777, 10660, - 783, 20777, 10662, - 783, 20777, 10664, - 783, 20777, 10666, - 783, 20777, 10668, - 783, 20777, 10670, - 783, 20777, 10672, - 783, 20777, 10674, - 783, 20777, 10678, - 783, 20777, 10680, - 783, 20777, 10682, - 783, 20777, 10684, - 783, 20777, 10686, - 783, 20777, 10732, - 783, 20777, 10734, - 783, 20777, 10740, - 783, 20777, 10750, - 783, 20777, 10986, - 783, 20777, 10988, - 783, 20777, 11118, - 783, 20777, 11120, - 783, 20777, 11122, - 783, 20777, 11128, - 783, 20777, 11384, - 783, 20777, 11386, - 783, 20777, 11388, - 783, 20777, 11400, - 783, 20777, 11402, - 783, 20777, 11546, - 783, 20777, 11548, - 783, 20777, 11576, - 783, 20777, 11578, - 783, 20777, 11580, - 783, 20777, 11584, - 783, 20777, 11596, - 783, 20777, 11694, - 783, 20777, 11696, - 783, 20777, 11698, - 783, 20777, 11758, - 783, 20777, 11760, - 783, 20777, 11762, - 783, 20777, 11766, - 783, 20777, 11776, - 783, 20777, 11832, - 783, 20777, 11836, - 783, 20777, 11838, - 783, 20777, 11842, - 783, 20777, 11844, - 783, 20777, 11846, - 783, 20777, 11854, - 783, 20777, 11856, - 783, 20777, 11858, - 783, 20777, 11860, - 783, 20777, 11862, - 783, 20777, 11864, - 783, 20777, 11866, - 783, 20777, 11868, - 783, 20777, 11874, - 783, 20777, 11876, - 783, 20777, 11878, - 783, 20777, 11880, - 783, 20777, 11884, - 783, 20777, 11886, - 783, 20777, 11892, - 783, 20777, 11894, - 783, 20777, 11896, - 783, 20777, 11902, - 783, 20777, 11906, - 783, 20777, 11908, - 783, 20777, 11910, - 783, 20777, 11914, - 783, 20777, 11916, - 783, 20777, 11918, - 783, 20777, 11920, - 783, 20777, 11922, - 783, 20777, 11924, - 783, 20777, 11926, - 783, 20777, 11928, - 783, 20777, 11932, - 783, 20777, 11934, - 783, 20777, 11936, - 783, 20777, 11940, - 783, 20777, 11942, - 783, 20777, 11944, - 783, 20777, 11946, - 783, 20777, 12474, - 783, 20777, 12476, - 783, 20777, 12478, - 783, 20777, 12480, - 783, 20777, 12482, - 783, 20777, 12484, - 783, 20777, 12688, - 783, 20777, 12690, - 783, 20777, 12692, - 783, 20777, 12694, - 783, 20777, 12696, - 783, 20777, 13036, - 783, 20777, 13038, - 783, 20777, 13040, - 783, 20777, 13042, - 783, 20777, 13044, - 783, 20777, 13354, - 783, 20777, 13356, - 783, 20777, 13358, - 783, 20777, 13360, - 783, 20777, 13362, - 783, 20777, 13364, - 783, 20777, 13492, - 783, 20777, 13494, - 783, 20777, 13496, - 783, 20777, 13498, - 783, 20777, 13500, - 783, 20777, 13502, - 783, 20777, 13504, - 783, 20777, 13506, - 783, 20777, 13510, - 783, 20777, 13512, - 783, 20777, 13514, - 783, 20777, 13516, - 783, 20777, 13518, - 783, 20777, 13520, - 783, 20777, 13522, - 783, 20777, 13524, - 783, 20777, 13548, - 783, 20777, 13550, - 783, 20777, 13552, - 783, 20777, 13554, - 783, 20777, 13556, - 783, 20777, 13558, - 783, 20777, 13612, - 783, 20777, 13614, - 783, 20777, 13616, - 783, 20777, 13618, - 783, 20777, 13620, - 783, 20777, 13622, - 783, 20777, 13984, - 783, 20777, 13986, - 783, 20777, 13988, - 783, 20777, 13990, - 783, 20777, 14084, - 783, 20777, 14086, - 783, 20777, 14088, - 783, 20777, 14090, - 783, 20777, 14102, - 783, 20777, 14106, - 783, 20777, 14136, - 783, 20777, 14138, - 783, 20777, 14158, - 783, 20777, 14160, - 783, 20777, 14186, - 783, 20777, 14188, - 783, 20777, 14190, - 783, 20777, 14196, - 783, 20777, 14200, - 783, 20777, 14202, - 783, 20777, 14262, - 783, 20777, 14264, - 783, 20777, 14340, - 783, 20777, 14342, - 783, 20777, 14344, - 783, 20777, 14346, - 783, 20777, 14348, - 783, 20777, 14352, - 783, 20777, 14354, - 783, 20777, 14356, - 783, 20777, 14358, - 783, 20777, 14360, - 783, 20777, 14678, - 783, 20777, 14680, - 783, 20777, 14682, - 783, 20777, 14848, - 783, 20777, 14850, - 783, 20777, 14852, - 783, 20777, 14864, - 783, 20777, 14956, - 783, 20777, 14958, - 783, 20777, 14960, - 783, 20777, 15614, - 783, 20777, 15616, - 783, 20777, 15618, - 783, 20777, 15620, - 783, 20777, 15634, - 783, 20777, 15636, - 783, 20777, 15638, - 783, 20777, 15642, - 783, 20777, 15644, - 783, 20777, 21517, 8808, - 849, 17122, - 889, 13177, 660, - 889, 25980, - 890, - 897, 11513, 1290, - 906, - 915, 22461, 17299, 699, 10489, 1952, - 915, 22461, 17299, 699, 10851, 1952, - 915, 22461, 17299, 699, 10851, 18778, - 915, 22461, 17299, 699, 10851, 21188, - 915, 22461, 17299, 699, 12615, 15140, - 915, 22461, 17299, 1231, 14976, - 915, 22461, 17299, 1231, 15140, - 915, 22461, 17299, 1231, 21188, - 915, 22461, 17299, 1953, 20920, - 915, 22461, 17299, 1953, 21188, - 915, 22461, 17299, 3076, - 915, 22461, 17299, 6701, 10489, 14976, - 915, 22461, 17299, 6701, 10851, 1952, - 915, 22461, 17299, 6701, 10851, 20920, - 915, 22461, 17299, 6701, 12615, 15140, - 915, 22461, 17299, 7818, - 915, 22461, 17299, 7819, 20920, - 915, 22461, 17299, 8281, 10489, 14976, - 915, 22461, 17299, 9994, - 915, 22461, 17299, 9995, 699, 12614, - 915, 22461, 17299, 9995, 1230, - 915, 22461, 17299, 9995, 1952, - 915, 22461, 17299, 9995, 2643, 13176, - 915, 22461, 17299, 9995, 6701, 12614, - 915, 22461, 17299, 9995, 12916, - 915, 22461, 17299, 9995, 13050, - 915, 22461, 17299, 9995, 13176, - 915, 22461, 17299, 9995, 14890, - 915, 22461, 17299, 9995, 15938, - 915, 22461, 17299, 9995, 16056, - 915, 22461, 17299, 9995, 17988, - 915, 22461, 17299, 9995, 19381, 12414, - 915, 22461, 17299, 9995, 20548, - 915, 22461, 17299, 9995, 21042, - 915, 22461, 17299, 9995, 21349, 12414, - 915, 22461, 17299, 9995, 21557, 12414, - 915, 22461, 17299, 9995, 21558, - 915, 22461, 17299, 9995, 22837, 12414, - 915, 22461, 17299, 9995, 23852, - 915, 22461, 17299, 10691, 21188, - 915, 22461, 17299, 12366, - 915, 22461, 17299, 12367, 20920, - 915, 22461, 17299, 12923, 964, - 915, 22461, 17299, 13051, 14976, - 915, 22461, 17299, 13051, 20920, - 915, 22461, 17299, 14428, - 915, 22461, 17299, 14429, 20920, - 915, 22461, 17299, 14605, 9994, - 915, 22461, 17299, 14605, 20920, - 915, 22461, 17299, 14891, 964, - 915, 22461, 17299, 14977, 15140, - 915, 22461, 17299, 15141, 21188, - 915, 22461, 17299, 15622, - 915, 22461, 17299, 15939, 1952, - 915, 22461, 17299, 15939, 10690, - 915, 22461, 17299, 15939, 14976, - 915, 22461, 17299, 15939, 20920, - 915, 22461, 17299, 15939, 21042, - 915, 22461, 17299, 15939, 21188, - 915, 22461, 17299, 16360, - 915, 22461, 17299, 17227, 9994, - 915, 22461, 17299, 17989, 20920, - 915, 22461, 17299, 18121, 20920, - 915, 22461, 17299, 19381, 11360, - 915, 22461, 17299, 21043, 964, - 915, 22461, 17299, 21349, 11360, - 915, 22461, 17299, 21557, 11360, - 915, 22461, 17299, 21845, 20920, - 915, 22461, 17299, 22837, 11360, - 915, 22461, 17299, 23853, 21188, - 916, - 942, - 965, 507, 10626, - 965, 12656, - 966, - 984, - 997, 17298, - 1015, 18999, 19140, - 1015, 19140, - 1026, - 1035, 897, 12414, - 1037, 19951, 699, 13473, 897, 6701, 22495, 13806, - 1037, 19951, 699, 13473, 897, 8281, 6701, 13806, - 1037, 19951, 699, 13473, 897, 8281, 13806, - 1037, 19951, 699, 13473, 897, 14659, 6701, 13806, - 1037, 19951, 699, 13473, 897, 14659, 13806, - 1037, 19951, 699, 13473, 897, 22495, 13806, - 1037, 19951, 699, 13807, 897, 6701, 22495, 13472, - 1037, 19951, 699, 13807, 897, 8281, 6701, 13472, - 1037, 19951, 699, 13807, 897, 8281, 13472, - 1037, 19951, 699, 13807, 897, 14659, 6701, 13472, - 1037, 19951, 699, 13807, 897, 14659, 13472, - 1037, 19951, 699, 13807, 897, 22495, 13472, - 1037, 19951, 699, 16095, 897, 8281, 17170, - 1037, 19951, 699, 16095, 897, 14659, 17170, - 1037, 19951, 699, 16095, 897, 22495, 17170, - 1037, 19951, 699, 17171, 897, 8281, 16094, - 1037, 19951, 699, 17171, 897, 14659, 16094, - 1037, 19951, 699, 17171, 897, 22495, 16094, - 1037, 19951, 6701, 13473, 897, 699, 22495, 13806, - 1037, 19951, 6701, 13473, 897, 8281, 699, 13806, - 1037, 19951, 6701, 13473, 897, 8281, 13806, - 1037, 19951, 6701, 13473, 897, 14659, 699, 13806, - 1037, 19951, 6701, 13473, 897, 14659, 13806, - 1037, 19951, 6701, 13473, 897, 22495, 13806, - 1037, 19951, 6701, 13807, 897, 699, 22495, 13472, - 1037, 19951, 6701, 13807, 897, 8281, 699, 13472, - 1037, 19951, 6701, 13807, 897, 8281, 13472, - 1037, 19951, 6701, 13807, 897, 14659, 699, 13472, - 1037, 19951, 6701, 13807, 897, 14659, 13472, - 1037, 19951, 6701, 13807, 897, 22495, 13472, - 1037, 19951, 6701, 16095, 897, 8281, 17170, - 1037, 19951, 6701, 16095, 897, 14659, 17170, - 1037, 19951, 6701, 16095, 897, 22495, 17170, - 1037, 19951, 6701, 17171, 897, 8281, 16094, - 1037, 19951, 6701, 17171, 897, 14659, 16094, - 1037, 19951, 6701, 17171, 897, 22495, 16094, - 1037, 19951, 8281, 699, 13473, 897, 14659, 6701, 13806, - 1037, 19951, 8281, 6701, 13473, 897, 14659, 699, 13806, - 1037, 19951, 8281, 13473, 897, 14659, 699, 13806, - 1037, 19951, 8281, 13473, 897, 14659, 6701, 13806, - 1037, 19951, 8281, 13473, 897, 14659, 20933, 13806, - 1037, 19951, 8281, 13807, 897, 14659, 699, 13472, - 1037, 19951, 8281, 13807, 897, 14659, 6701, 13472, - 1037, 19951, 8281, 13807, 897, 14659, 20933, 13472, - 1037, 19951, 13473, 698, - 1037, 19951, 13473, 699, 897, 8280, - 1037, 19951, 13473, 699, 897, 13807, 6700, - 1037, 19951, 13473, 699, 897, 14658, - 1037, 19951, 13473, 699, 897, 22494, - 1037, 19951, 13473, 6700, - 1037, 19951, 13473, 6701, 897, 8280, - 1037, 19951, 13473, 6701, 897, 14658, - 1037, 19951, 13473, 6701, 897, 22494, - 1037, 19951, 13473, 8280, - 1037, 19951, 13473, 8281, 897, 13807, 14658, - 1037, 19951, 13473, 14658, - 1037, 19951, 13473, 16095, 6545, 20932, - 1037, 19951, 13473, 16095, 6545, 22494, - 1037, 19951, 13473, 17435, 6545, 20932, - 1037, 19951, 13473, 17435, 6545, 22494, - 1037, 19951, 13473, 20932, - 1037, 19951, 13473, 20933, 897, 8280, - 1037, 19951, 13473, 20933, 897, 14658, - 1037, 19951, 13473, 20933, 897, 22494, - 1037, 19951, 13473, 21775, 6545, 20932, - 1037, 19951, 13473, 21775, 6545, 22494, - 1037, 19951, 13473, 22494, - 1037, 19951, 13807, 698, - 1037, 19951, 13807, 699, 897, 8280, - 1037, 19951, 13807, 699, 897, 13473, 6700, - 1037, 19951, 13807, 699, 897, 14658, - 1037, 19951, 13807, 699, 897, 22494, - 1037, 19951, 13807, 917, 699, 897, 8280, - 1037, 19951, 13807, 917, 699, 897, 14658, - 1037, 19951, 13807, 917, 6701, 897, 8280, - 1037, 19951, 13807, 917, 6701, 897, 14658, - 1037, 19951, 13807, 3473, 897, 15287, 8280, - 1037, 19951, 13807, 6700, - 1037, 19951, 13807, 6701, 897, 8280, - 1037, 19951, 13807, 6701, 897, 14658, - 1037, 19951, 13807, 6701, 897, 22494, - 1037, 19951, 13807, 8280, - 1037, 19951, 13807, 8281, 897, 13473, 14658, - 1037, 19951, 13807, 14658, - 1037, 19951, 13807, 15827, 897, 13839, 8280, - 1037, 19951, 13807, 16095, 6545, 20932, - 1037, 19951, 13807, 16095, 6545, 22494, - 1037, 19951, 13807, 17435, 6545, 20932, - 1037, 19951, 13807, 17435, 6545, 22494, - 1037, 19951, 13807, 19791, 12934, - 1037, 19951, 13807, 19791, 13839, 8281, 661, 15287, 15901, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 13839, 8281, 661, 16661, 15901, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 13839, 15901, 661, 15287, 14658, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 16661, 14658, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 16661, 14659, 661, 13839, 8280, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 16661, 15901, 661, 13839, 8280, - 1037, 19951, 13807, 19791, 15287, 8281, 661, 16661, 15901, 661, 15287, 14658, - 1037, 19951, 13807, 19791, 15287, 14659, 661, 13839, 8280, - 1037, 19951, 13807, 19791, 15287, 14659, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 15287, 14659, 661, 16661, 8280, - 1037, 19951, 13807, 19791, 15287, 14659, 661, 16661, 8281, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 15287, 14659, 661, 16661, 15901, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 13839, 8280, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 8280, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 8281, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 8281, 661, 13839, 15901, 661, 16661, 14658, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 8281, 897, 16661, 14659, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 14658, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 14659, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 14659, 661, 13839, 15901, 661, 16661, 8280, - 1037, 19951, 13807, 19791, 15287, 15901, 661, 16661, 14659, 897, 16661, 8281, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 16661, 8281, 661, 13839, 14658, - 1037, 19951, 13807, 19791, 16661, 8281, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 16661, 8281, 661, 13839, 15901, 661, 16661, 14658, - 1037, 19951, 13807, 19791, 16661, 8281, 661, 15287, 15901, 661, 16661, 14658, - 1037, 19951, 13807, 19791, 16661, 8281, 661, 15287, 15901, 661, 16661, 14659, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 16661, 14659, 661, 13839, 8280, - 1037, 19951, 13807, 19791, 16661, 14659, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 16661, 14659, 661, 15287, 15901, 661, 16661, 8281, 661, 13839, 15900, - 1037, 19951, 13807, 19791, 17988, - 1037, 19951, 13807, 20932, - 1037, 19951, 13807, 20933, 897, 3473, 8280, - 1037, 19951, 13807, 20933, 897, 3473, 14658, - 1037, 19951, 13807, 20933, 897, 8280, - 1037, 19951, 13807, 20933, 897, 14658, - 1037, 19951, 13807, 20933, 897, 15827, 8280, - 1037, 19951, 13807, 20933, 897, 15827, 14658, - 1037, 19951, 13807, 20933, 897, 22494, - 1037, 19951, 13807, 21775, 6545, 20932, - 1037, 19951, 13807, 21775, 6545, 22494, - 1037, 19951, 13807, 22494, - 1037, 19951, 13807, 22495, 897, 13839, 14658, - 1037, 19951, 13807, 22495, 897, 15287, 14658, - 1037, 19951, 13807, 22495, 11513, 20933, 17264, - 1037, 19951, 14659, 699, 13473, 897, 8281, 6701, 13806, - 1037, 19951, 14659, 6701, 13473, 897, 8281, 699, 13806, - 1037, 19951, 14659, 13473, 897, 8281, 699, 13806, - 1037, 19951, 14659, 13473, 897, 8281, 6701, 13806, - 1037, 19951, 14659, 13473, 897, 8281, 20933, 13806, - 1037, 19951, 14659, 13807, 897, 8281, 699, 13472, - 1037, 19951, 14659, 13807, 897, 8281, 6701, 13472, - 1037, 19951, 14659, 13807, 897, 8281, 20933, 13472, - 1037, 19951, 16095, 699, 897, 8280, - 1037, 19951, 16095, 699, 897, 14658, - 1037, 19951, 16095, 699, 897, 22494, - 1037, 19951, 16095, 6701, 897, 8280, - 1037, 19951, 16095, 6701, 897, 14658, - 1037, 19951, 16095, 6701, 897, 22494, - 1037, 19951, 16095, 19791, 13839, 8281, 661, 16661, 15901, 661, 13839, 14658, - 1037, 19951, 16095, 19791, 15287, 8281, 661, 13839, 14658, - 1037, 19951, 16095, 19791, 15287, 8281, 661, 16661, 15901, 661, 15287, 14658, - 1037, 19951, 16095, 19791, 15287, 14659, 661, 13839, 8280, - 1037, 19951, 16095, 20932, - 1037, 19951, 16095, 20933, 897, 8280, - 1037, 19951, 16095, 20933, 897, 14658, - 1037, 19951, 16095, 20933, 897, 22494, - 1037, 19951, 16095, 22494, - 1037, 19951, 20933, 13473, 897, 8281, 13806, - 1037, 19951, 20933, 13473, 897, 14659, 13806, - 1037, 19951, 20933, 13473, 897, 22495, 13806, - 1037, 19951, 20933, 13807, 897, 8281, 13472, - 1037, 19951, 20933, 13807, 897, 14659, 13472, - 1037, 19951, 20933, 13807, 897, 22495, 13472, - 1037, 19951, 20933, 16095, 897, 8281, 17170, - 1037, 19951, 20933, 16095, 897, 14659, 17170, - 1037, 19951, 20933, 16095, 897, 22495, 17170, - 1037, 19951, 20933, 17171, 897, 8281, 16094, - 1037, 19951, 20933, 17171, 897, 14659, 16094, - 1037, 19951, 20933, 17171, 897, 22495, 16094, - 1038, - 1046, - 1054, - 1055, 10696, - 1089, 19122, - 1090, - 1091, 6996, - 1091, 6997, 11513, 3791, 14916, - 1091, 6997, 11513, 15063, 507, 1956, - 1114, - 1121, 3076, - 1145, 17265, 6, - 1145, 17265, 14, - 1145, 17265, 26, - 1145, 17265, 30, - 1145, 17265, 32, - 1145, 17265, 36, - 1145, 17265, 38, - 1145, 17265, 278, - 1145, 17265, 290, - 1145, 17265, 296, - 1145, 17265, 552, - 1145, 17265, 558, - 1145, 17265, 580, - 1145, 17265, 620, - 1145, 17265, 630, - 1145, 17265, 636, - 1145, 17265, 642, - 1145, 17265, 646, - 1145, 17265, 658, - 1145, 17265, 746, - 1145, 17265, 766, - 1145, 17265, 1066, - 1145, 17265, 1822, - 1145, 17265, 1830, - 1145, 17265, 1832, - 1145, 17265, 1834, - 1145, 17265, 1836, - 1145, 17265, 3328, - 1145, 17265, 3334, - 1145, 17265, 3356, - 1145, 17265, 3360, - 1145, 17265, 7678, - 1145, 17265, 7738, - 1145, 17265, 7740, - 1145, 17265, 7742, - 1145, 17265, 7744, - 1145, 17265, 10758, - 1145, 17265, 13560, - 1145, 18961, 1036, - 1145, 18961, 1156, - 1145, 18961, 1280, - 1145, 18961, 1355, 2760, - 1145, 18961, 1355, 3536, - 1145, 18961, 1355, 15116, - 1145, 18961, 1428, - 1145, 18961, 1432, - 1145, 18961, 2569, 2760, - 1145, 18961, 2569, 3536, - 1145, 18961, 2569, 7058, - 1145, 18961, 2569, 15116, - 1145, 18961, 2756, - 1145, 18961, 2807, 2760, - 1145, 18961, 2807, 3536, - 1145, 18961, 3040, - 1145, 18961, 3044, - 1145, 18961, 3310, - 1145, 18961, 6092, - 1145, 18961, 6103, 507, 12712, - 1145, 18961, 6106, - 1145, 18961, 6336, - 1145, 18961, 7026, - 1145, 18961, 7052, - 1145, 18961, 7432, - 1145, 18961, 7460, - 1145, 18961, 7670, - 1145, 18961, 7838, - 1145, 18961, 8255, 2760, - 1145, 18961, 8255, 3536, - 1145, 18961, 8255, 7058, - 1145, 18961, 8255, 15116, - 1145, 18961, 8351, 2760, - 1145, 18961, 8351, 3536, - 1145, 18961, 8846, - 1145, 18961, 8862, - 1145, 18961, 8980, - 1145, 18961, 10092, - 1145, 18961, 10414, - 1145, 18961, 10580, - 1145, 18961, 11467, 2760, - 1145, 18961, 11467, 3536, - 1145, 18961, 11489, 2760, - 1145, 18961, 11489, 3536, - 1145, 18961, 12567, 2760, - 1145, 18961, 12567, 3536, - 1145, 18961, 12682, - 1145, 18961, 12706, - 1145, 18961, 13046, - 1145, 18961, 13380, - 1145, 18961, 13415, 2760, - 1145, 18961, 13415, 3536, - 1145, 18961, 13415, 15116, - 1145, 18961, 13471, 2760, - 1145, 18961, 13471, 3536, - 1145, 18961, 13715, 2760, - 1145, 18961, 13715, 3536, - 1145, 18961, 14025, 2760, - 1145, 18961, 14025, 3536, - 1145, 18961, 14804, - 1145, 18961, 14911, 2760, - 1145, 18961, 14911, 3536, - 1145, 18961, 14920, - 1145, 18961, 14923, 2760, - 1145, 18961, 14923, 3536, - 1145, 18961, 15044, - 1145, 18961, 15134, - 1145, 18961, 15437, 2760, - 1145, 18961, 15437, 3536, - 1145, 18961, 15776, - 1145, 18961, 16682, - 1145, 18961, 16686, - 1145, 18961, 16890, - 1145, 18961, 17018, - 1145, 18961, 17095, 2760, - 1145, 18961, 17095, 3536, - 1145, 18961, 17095, 15116, - 1145, 18961, 17209, 2760, - 1145, 18961, 17209, 3536, - 1145, 18961, 17376, - 1145, 18961, 17466, - 1145, 18961, 17892, - 1145, 18961, 19700, - 1145, 18961, 22288, - 1145, 18961, 22901, 7429, 11047, 15210, - 1145, 18961, 22901, 7670, - 1145, 18961, 22901, 11466, - 1145, 18961, 22901, 15448, - 1145, 18961, 22901, 17598, - 1145, 18961, 23777, 1354, - 1145, 18961, 23777, 1480, - 1145, 18961, 23777, 3200, - 1145, 18961, 23777, 6082, - 1145, 18961, 23777, 6230, - 1145, 18961, 23777, 6880, - 1145, 18961, 23777, 7030, - 1145, 18961, 23777, 7062, - 1145, 18961, 23777, 7212, - 1145, 18961, 23777, 7332, - 1145, 18961, 23777, 8276, - 1145, 18961, 23777, 8350, - 1145, 18961, 23777, 10386, - 1145, 18961, 23777, 10580, - 1145, 18961, 23777, 11504, - 1145, 18961, 23777, 13536, - 1145, 18961, 23777, 14810, - 1145, 18961, 23777, 15180, - 1145, 18961, 23777, 16096, - 1145, 18961, 23777, 17202, - 1145, 18961, 23777, 17325, 18504, - 1145, 18961, 23777, 17466, - 1145, 18961, 23887, 6880, - 1145, 18961, 23887, 15180, - 1145, 18961, 23887, 16096, - 1145, 18961, 23887, 17466, - 1145, 24211, 26106, - 1145, 24211, 26108, - 1145, 24211, 26110, - 1145, 24211, 26112, - 1145, 24211, 26114, - 1156, - 1157, 6996, - 1165, 521, 12525, 17224, - 1165, 11513, 14988, - 1169, 507, 8846, - 1249, 16136, - 1249, 16138, - 1249, 16140, - 1249, 16142, - 1249, 16144, - 1249, 16146, - 1277, 16095, 13474, - 1280, - 1281, 6996, - 1291, 9904, - 1291, 12318, - 1291, 14004, - 1291, 20406, - 1320, - 1352, - 1353, 507, 10144, - 1353, 507, 13908, - 1353, 11513, 18263, 878, - 1366, - 1380, - 1393, 507, 14574, - 1393, 11513, 21557, 12415, 12318, - 1432, - 1457, 7788, - 1457, 18542, - 1480, - 1482, - 1493, 888, - 1495, 6996, - 1496, - 1567, 14982, - 1789, 1280, - 1789, 16884, - 1789, 19162, - 1789, 19610, - 1806, - 1857, 6370, - 1857, 12930, - 1857, 14880, - 1857, 16347, 14975, 897, 9922, - 1874, - 1906, - 2034, - 2063, 10574, - 2193, 6346, - 2207, 289, 446, - 2207, 289, 486, - 2207, 375, 394, - 2207, 10575, 9821, 17534, - 2207, 11033, 2367, 198, - 2207, 11033, 2367, 656, - 2207, 11033, 2367, 3428, - 2207, 11033, 2367, 15892, - 2207, 13069, 2760, - 2207, 13069, 3240, - 2207, 13069, 3536, - 2207, 13069, 7036, - 2207, 13069, 7058, - 2207, 13069, 9358, - 2207, 13069, 11824, - 2207, 13069, 13150, - 2207, 13069, 14778, - 2207, 13069, 15116, - 2207, 15407, 10575, 0, - 2207, 15407, 10575, 8, - 2207, 15407, 10575, 16, - 2207, 15407, 10575, 28, - 2207, 15407, 10575, 40, - 2207, 15407, 10575, 48, - 2207, 15407, 10575, 58, - 2207, 15407, 10575, 72, - 2207, 15407, 10575, 80, - 2207, 15407, 10575, 104, - 2207, 15407, 10575, 194, - 2207, 15407, 10575, 314, - 2207, 15407, 10575, 706, - 2207, 15407, 10575, 794, - 2207, 15407, 10575, 2367, 2000, - 2207, 15407, 10575, 2367, 2098, - 2207, 16531, 28, - 2207, 16531, 118, - 2207, 16531, 142, - 2207, 16531, 168, - 2207, 16531, 241, 1458, - 2207, 16531, 241, 1486, - 2207, 16531, 241, 3378, - 2207, 16531, 241, 10730, - 2207, 16531, 289, 3378, - 2207, 16531, 289, 10730, - 2207, 16531, 374, - 2207, 16531, 412, - 2207, 16531, 413, 8322, - 2207, 16531, 413, 8358, - 2207, 16531, 446, - 2207, 16531, 486, - 2207, 16531, 566, - 2207, 16531, 606, - 2207, 16531, 629, 3378, - 2207, 16531, 629, 10730, - 2207, 16531, 660, - 2207, 16531, 754, - 2207, 16531, 786, - 2207, 16531, 2043, 3378, - 2207, 16531, 2043, 10730, - 2207, 16531, 2582, - 2207, 16531, 2706, - 2207, 16531, 2837, 3378, - 2207, 16531, 2837, 10730, - 2207, 16531, 3429, 3378, - 2207, 16531, 3429, 10730, - 2207, 16531, 8075, 262, - 2207, 16531, 8075, 2706, - 2207, 16531, 9821, 1000, - 2207, 16531, 9821, 1116, - 2207, 16531, 9821, 1214, - 2207, 16531, 9821, 1236, - 2207, 16531, 9821, 1588, - 2207, 16531, 9821, 1918, - 2207, 16531, 9821, 2278, - 2207, 16531, 9821, 2624, - 2207, 16531, 9821, 2698, - 2207, 16531, 9821, 3502, - 2207, 16531, 9821, 6572, - 2207, 16531, 9821, 11082, - 2207, 16531, 20613, 3212, - 2207, 16531, 20613, 3286, - 2207, 19976, - 2207, 20962, - 2207, 21636, - 2207, 21847, 10575, 412, - 2207, 21847, 10575, 2706, - 2207, 23781, 8808, - 2232, - 2238, - 2299, 507, 18170, - 2301, 8320, - 2301, 16095, 14571, 21779, 8808, - 2301, 16420, - 2301, 16421, 11513, 1290, - 2301, 17750, - 2301, 19574, - 2301, 22209, 17298, - 2304, - 2306, - 2308, - 2310, - 2368, - 2369, 323, 17468, - 2369, 323, 19649, 10727, 22538, - 2369, 897, 15469, 18273, 13458, - 2369, 11513, 1641, 563, 2370, - 2369, 11513, 17458, - 2369, 17960, - 2373, 17299, 1493, 22540, - 2467, 13016, - 2467, 13069, 2760, - 2467, 13069, 3240, - 2467, 13069, 3536, - 2467, 13069, 7036, - 2467, 13069, 7058, - 2467, 13069, 9358, - 2467, 13069, 11824, - 2467, 13069, 13150, - 2467, 13069, 14778, - 2467, 13069, 15116, - 2467, 16095, 13016, - 2467, 16531, 0, - 2467, 16531, 8, - 2467, 16531, 28, - 2467, 16531, 108, - 2467, 16531, 150, - 2467, 16531, 178, - 2467, 16531, 374, - 2467, 16531, 394, - 2467, 16531, 516, - 2467, 16531, 522, - 2467, 16531, 548, - 2467, 16531, 604, - 2467, 16531, 606, - 2467, 16531, 648, - 2467, 16531, 738, - 2467, 16531, 786, - 2467, 16531, 1124, - 2467, 16531, 1198, - 2467, 16531, 1684, - 2467, 16531, 1692, - 2467, 16531, 2204, - 2467, 16531, 2438, - 2467, 16531, 2580, - 2467, 16531, 2600, - 2467, 16531, 2834, - 2467, 16531, 3216, - 2467, 16531, 3410, - 2467, 16531, 8056, - 2467, 16531, 8796, - 2467, 16531, 10936, - 2467, 16531, 13666, - 2490, - 2517, 18653, 10575, 7796, - 2517, 18653, 10575, 9766, - 2517, 18653, 10575, 14040, - 2517, 18653, 10575, 15010, - 2517, 18653, 10575, 15192, - 2517, 18653, 13069, 2760, - 2517, 18653, 13069, 3240, - 2517, 18653, 13069, 3536, - 2517, 18653, 13069, 7036, - 2517, 18653, 13069, 7058, - 2517, 18653, 13069, 9358, - 2517, 18653, 13069, 11824, - 2517, 18653, 13069, 13150, - 2517, 18653, 13069, 14778, - 2517, 18653, 13069, 15116, - 2517, 18653, 16531, 0, - 2517, 18653, 16531, 8, - 2517, 18653, 16531, 16, - 2517, 18653, 16531, 28, - 2517, 18653, 16531, 40, - 2517, 18653, 16531, 60, - 2517, 18653, 16531, 70, - 2517, 18653, 16531, 74, - 2517, 18653, 16531, 190, - 2517, 18653, 16531, 202, - 2517, 18653, 16531, 204, - 2517, 18653, 16531, 312, - 2517, 18653, 16531, 332, - 2517, 18653, 16531, 334, - 2517, 18653, 16531, 516, - 2517, 18653, 16531, 524, - 2517, 18653, 16531, 542, - 2517, 18653, 16531, 678, - 2517, 18653, 16531, 680, - 2517, 18653, 16531, 690, - 2517, 18653, 16531, 702, - 2517, 18653, 16531, 908, - 2517, 18653, 16531, 1382, - 2517, 18653, 16531, 1396, - 2517, 18653, 16531, 1424, - 2517, 18653, 16531, 1858, - 2517, 18653, 16531, 2762, - 2571, 3375, 2319, 10575, 2194, - 2571, 3375, 2319, 10575, 8244, - 2571, 3375, 2319, 10931, 13069, 2760, - 2571, 3375, 2319, 11033, 16606, - 2571, 3375, 2319, 11033, 16608, - 2571, 3375, 2319, 13069, 2760, - 2571, 3375, 2319, 13069, 3240, - 2571, 3375, 2319, 13069, 3536, - 2571, 3375, 2319, 13069, 7036, - 2571, 3375, 2319, 13069, 7058, - 2571, 3375, 2319, 13069, 9358, - 2571, 3375, 2319, 13069, 11824, - 2571, 3375, 2319, 13069, 13150, - 2571, 3375, 2319, 13069, 14778, - 2571, 3375, 2319, 13069, 15116, - 2571, 3375, 2319, 15407, 10575, 8, - 2571, 3375, 2319, 15407, 10575, 28, - 2571, 3375, 2319, 15407, 10575, 40, - 2571, 3375, 2319, 15407, 10575, 58, - 2571, 3375, 2319, 15407, 10575, 66, - 2571, 3375, 2319, 15407, 10575, 104, - 2571, 3375, 2319, 15407, 10575, 314, - 2571, 3375, 2319, 15407, 10575, 340, - 2571, 3375, 2319, 15407, 10575, 498, - 2571, 3375, 2319, 15407, 10575, 542, - 2571, 3375, 2319, 15407, 10575, 682, - 2571, 3375, 2319, 15407, 10575, 706, - 2571, 3375, 2319, 15407, 10575, 710, - 2571, 3375, 2319, 15407, 10575, 840, - 2571, 3375, 2319, 15407, 10575, 2734, - 2571, 3375, 2319, 15407, 10575, 3592, - 2571, 3375, 2319, 15407, 10575, 15407, 21876, - 2571, 3375, 2319, 16531, 2301, 108, - 2571, 3375, 2319, 16531, 2301, 150, - 2571, 3375, 2319, 16531, 2301, 228, - 2571, 3375, 2319, 16531, 2301, 272, - 2571, 3375, 2319, 16531, 2301, 358, - 2571, 3375, 2319, 16531, 2301, 394, - 2571, 3375, 2319, 16531, 2301, 426, - 2571, 3375, 2319, 16531, 2301, 466, - 2571, 3375, 2319, 16531, 2301, 548, - 2571, 3375, 2319, 16531, 2301, 582, - 2571, 3375, 2319, 16531, 2301, 614, - 2571, 3375, 2319, 16531, 2301, 648, - 2571, 3375, 2319, 16531, 2301, 714, - 2571, 3375, 2319, 16531, 2301, 762, - 2571, 3375, 2319, 16531, 2301, 778, - 2571, 3375, 2319, 16531, 2301, 2154, - 2571, 3375, 2319, 16531, 2301, 2574, - 2571, 3375, 2319, 16531, 2301, 2830, - 2571, 3375, 2319, 16531, 2301, 3302, - 2571, 3375, 2319, 16531, 2301, 3422, - 2571, 3375, 2319, 16531, 2301, 3488, - 2571, 3375, 2319, 16531, 2301, 3842, - 2571, 3375, 2319, 16531, 7521, 108, - 2571, 3375, 2319, 16531, 7521, 150, - 2571, 3375, 2319, 16531, 7521, 228, - 2571, 3375, 2319, 16531, 7521, 272, - 2571, 3375, 2319, 16531, 7521, 358, - 2571, 3375, 2319, 16531, 7521, 394, - 2571, 3375, 2319, 16531, 7521, 426, - 2571, 3375, 2319, 16531, 7521, 466, - 2571, 3375, 2319, 16531, 7521, 548, - 2571, 3375, 2319, 16531, 7521, 582, - 2571, 3375, 2319, 16531, 7521, 614, - 2571, 3375, 2319, 16531, 7521, 648, - 2571, 3375, 2319, 16531, 7521, 714, - 2571, 3375, 2319, 16531, 7521, 762, - 2571, 3375, 2319, 16531, 7521, 778, - 2571, 3375, 2319, 16531, 7521, 2154, - 2571, 3375, 2319, 16531, 7521, 2574, - 2571, 3375, 2319, 16531, 7521, 2830, - 2571, 3375, 2319, 16531, 7521, 3302, - 2571, 3375, 2319, 16531, 7521, 3422, - 2571, 3375, 2319, 16531, 7521, 3488, - 2571, 3375, 2319, 16531, 7521, 3842, - 2571, 3375, 2319, 16531, 13259, 2, - 2571, 3375, 2319, 16531, 13259, 6, - 2571, 3375, 2319, 16531, 13259, 20, - 2571, 3375, 2319, 16531, 13259, 24, - 2571, 3375, 2319, 16531, 13259, 26, - 2571, 3375, 2319, 16531, 13259, 42, - 2571, 3375, 2319, 16531, 13259, 474, - 2571, 8981, 11513, 6996, - 2571, 8981, 17298, - 2571, 17131, 10574, - 2623, 2301, 11033, 22172, - 2623, 7521, 11033, 22172, - 2623, 12922, - 2623, 13069, 2760, - 2623, 13069, 3240, - 2623, 13069, 3536, - 2623, 13069, 7036, - 2623, 13069, 7058, - 2623, 13069, 9358, - 2623, 13069, 11824, - 2623, 13069, 13150, - 2623, 13069, 14778, - 2623, 13069, 15116, - 2623, 15051, 10574, - 2623, 16075, 10574, - 2623, 16531, 0, - 2623, 16531, 8, - 2623, 16531, 16, - 2623, 16531, 26, - 2623, 16531, 28, - 2623, 16531, 40, - 2623, 16531, 108, - 2623, 16531, 150, - 2623, 16531, 186, - 2623, 16531, 228, - 2623, 16531, 272, - 2623, 16531, 344, - 2623, 16531, 358, - 2623, 16531, 394, - 2623, 16531, 426, - 2623, 16531, 466, - 2623, 16531, 467, 17580, - 2623, 16531, 522, - 2623, 16531, 548, - 2623, 16531, 598, - 2623, 16531, 614, - 2623, 16531, 648, - 2623, 16531, 738, - 2623, 16531, 778, - 2623, 16531, 1116, - 2623, 16531, 1554, - 2623, 16531, 2698, - 2623, 16531, 2699, 17580, - 2623, 16531, 3118, - 2623, 16531, 7907, 344, - 2623, 16531, 7907, 598, - 2623, 16531, 7907, 1116, - 2623, 16531, 22260, - 2623, 17299, 523, 16028, - 2623, 17299, 22462, - 2623, 21127, 8351, 2301, 11032, - 2623, 21127, 8351, 7521, 11032, - 2623, 21127, 8351, 17037, 11032, - 2623, 21127, 8351, 22273, 11032, - 2623, 21127, 14837, 2301, 11032, - 2623, 21127, 14837, 7521, 11032, - 2623, 21127, 14837, 17037, 11032, - 2623, 21127, 16095, 1291, 12318, - 2623, 21127, 23919, 8808, - 2623, 22262, - 2623, 22532, - 2623, 23213, 8808, - 2640, - 2643, 1, 17273, 506, - 2643, 1, 20765, 506, - 2643, 83, 18107, 506, - 2643, 10574, - 2643, 11050, - 2643, 12659, 8808, - 2643, 13177, 660, - 2643, 15140, - 2643, 15703, 13177, 660, - 2643, 16761, 20759, 506, - 2643, 16761, 20759, 507, 529, 13177, 660, - 2643, 17225, 13589, 507, 529, 13177, 660, - 2643, 17225, 20411, 507, 529, 13177, 660, - 2643, 20455, 660, - 2643, 21485, 660, - 2643, 21558, - 2643, 22435, 660, - 2643, 23852, - 2643, 25985, 13177, 660, - 2653, 22978, - 2685, 897, 6102, - 2737, 1035, 3436, - 2737, 6059, 15854, - 2737, 6544, - 2737, 7054, - 2737, 7658, - 2737, 12652, - 2737, 15705, 507, 12658, - 2737, 15837, 5987, 26006, - 2737, 16095, 21042, - 2737, 19755, 17641, 16786, - 2737, 20163, 7054, - 2751, 10574, - 2753, 6708, - 2757, 2034, - 2757, 14255, 17697, 16531, 880, - 2757, 14255, 17697, 16531, 988, - 2757, 14255, 17697, 16531, 1192, - 2757, 14255, 17697, 16531, 1200, - 2757, 14255, 17697, 16531, 1462, - 2757, 14255, 17697, 16531, 1682, - 2757, 14255, 17697, 16531, 1710, - 2757, 14255, 17697, 16531, 1988, - 2757, 14255, 17697, 16531, 2202, - 2757, 14255, 17697, 16531, 2926, - 2757, 14255, 17697, 16531, 3062, - 2757, 14255, 17697, 16531, 3174, - 2757, 14255, 17697, 16531, 3372, - 2757, 14255, 17697, 16531, 3408, - 2757, 14255, 17697, 16531, 3750, - 2757, 14255, 17697, 16531, 3918, - 2757, 14255, 17697, 16531, 4020, - 2757, 14255, 17697, 16531, 5482, - 2757, 14255, 17697, 16531, 6862, - 2757, 14255, 17697, 16531, 6864, - 2757, 14255, 17697, 16531, 6866, - 2757, 14255, 17697, 16531, 7240, - 2757, 14255, 17697, 16531, 8054, - 2757, 14255, 17697, 16531, 8850, - 2757, 14255, 17697, 16531, 9438, - 2757, 14255, 17697, 16531, 10928, - 2757, 14255, 17697, 16531, 10940, - 2757, 14255, 17697, 16531, 11812, - 2757, 14255, 17697, 16531, 13370, - 2757, 14255, 17697, 16787, 2760, - 2757, 14255, 17697, 16787, 3412, - 2757, 14255, 17697, 16787, 17474, - 2757, 14931, 17697, 16531, 230, - 2757, 14931, 17697, 16531, 276, - 2757, 14931, 17697, 16531, 946, - 2757, 14931, 17697, 16531, 2406, - 2757, 14931, 17697, 16531, 2676, - 2757, 14931, 17697, 16531, 3192, - 2757, 14931, 17697, 16531, 3398, - 2757, 14931, 17697, 16531, 3750, - 2757, 14931, 17697, 16531, 5482, - 2757, 14931, 17697, 16531, 6066, - 2757, 14931, 17697, 16531, 7478, - 2757, 14931, 17697, 16531, 8002, - 2757, 14931, 17697, 16531, 9992, - 2757, 14931, 17697, 16531, 10120, - 2757, 14931, 17697, 16531, 10478, - 2757, 14931, 17697, 16531, 10914, - 2757, 14931, 17697, 16531, 10934, - 2757, 14931, 17697, 16531, 11722, - 2757, 14931, 17697, 16531, 11820, - 2757, 14931, 17697, 16531, 13372, - 2757, 14931, 17697, 16531, 13384, - 2757, 14931, 17697, 16531, 13692, - 2757, 14931, 17697, 16531, 14720, - 2757, 14931, 17697, 16531, 15098, - 2757, 14931, 17697, 16531, 16010, - 2757, 14931, 17697, 16531, 16040, - 2757, 14931, 17697, 16531, 16508, - 2757, 14931, 17697, 16531, 17060, - 2757, 14931, 17697, 16531, 17984, - 2757, 14931, 17697, 16787, 2760, - 2757, 14931, 17697, 16787, 13254, - 2757, 14931, 17697, 18729, 21498, - 2757, 16393, 16531, 0, - 2757, 16393, 16531, 8, - 2757, 16393, 16531, 16, - 2757, 16393, 16531, 28, - 2757, 16393, 16531, 40, - 2757, 16393, 16531, 112, - 2757, 16393, 16531, 156, - 2757, 16393, 16531, 188, - 2757, 16393, 16531, 200, - 2757, 16393, 16531, 202, - 2757, 16393, 16531, 204, - 2757, 16393, 16531, 212, - 2757, 16393, 16531, 214, - 2757, 16393, 16531, 276, - 2757, 16393, 16531, 314, - 2757, 16393, 16531, 358, - 2757, 16393, 16531, 362, - 2757, 16393, 16531, 380, - 2757, 16393, 16531, 554, - 2757, 16393, 16531, 652, - 2757, 16393, 16531, 706, - 2757, 16393, 16531, 718, - 2757, 16393, 16531, 780, - 2757, 16393, 16531, 798, - 2757, 16393, 16531, 1118, - 2757, 16393, 16531, 1378, - 2757, 16393, 16531, 1410, - 2757, 16393, 16531, 1412, - 2757, 16393, 16531, 1416, - 2757, 16393, 16531, 2038, - 2757, 16393, 16531, 2832, - 2757, 16393, 16531, 3214, - 2757, 16393, 16531, 3424, - 2757, 16393, 16531, 20375, 3490, - 2757, 16393, 16531, 20683, 3490, - 2757, 16393, 18727, 2760, - 2757, 16393, 18727, 3412, - 2757, 16393, 18727, 7036, - 2757, 16393, 18727, 13254, - 2757, 16887, 16531, 8, - 2757, 16887, 16531, 16, - 2757, 16887, 16531, 28, - 2757, 16887, 16531, 40, - 2757, 16887, 16531, 82, - 2757, 16887, 16531, 188, - 2757, 16887, 16531, 272, - 2757, 16887, 16531, 298, - 2757, 16887, 16531, 306, - 2757, 16887, 16531, 522, - 2757, 16887, 16531, 778, - 2757, 16887, 16531, 790, - 2757, 16887, 16531, 1052, - 2757, 16887, 16531, 1282, - 2757, 16887, 16531, 1536, - 2757, 16887, 16531, 2234, - 2757, 16887, 16531, 3064, - 2757, 16887, 16531, 3232, - 2757, 16887, 16531, 3374, - 2757, 16887, 16531, 3678, - 2757, 16887, 16531, 3902, - 2757, 16887, 16531, 3924, - 2757, 16887, 16531, 3968, - 2757, 16887, 16531, 8130, - 2757, 16887, 16531, 9840, - 2757, 16887, 16531, 11062, - 2757, 16887, 16531, 11396, - 2757, 16887, 16531, 11678, - 2757, 16887, 16531, 11680, - 2757, 16887, 16531, 11818, - 2757, 16887, 16531, 11850, - 2757, 16887, 16531, 12664, - 2757, 16887, 16531, 13114, - 2757, 16887, 16531, 13116, - 2757, 16887, 16531, 13958, - 2757, 16887, 16531, 14112, - 2757, 16887, 16531, 14832, - 2757, 16887, 16531, 19088, - 2757, 17463, 16531, 16827, 0, - 2757, 17463, 16531, 16827, 16, - 2757, 17463, 16531, 16827, 28, - 2757, 17463, 16531, 16827, 60, - 2757, 17463, 16531, 16827, 64, - 2757, 17463, 16531, 16827, 68, - 2757, 17463, 16531, 16827, 78, - 2757, 17463, 16531, 16827, 82, - 2757, 17463, 16531, 16827, 88, - 2757, 17463, 16531, 16827, 90, - 2757, 17463, 16531, 16827, 92, - 2757, 17463, 16531, 16827, 94, - 2757, 17463, 16531, 16827, 104, - 2757, 17463, 16531, 16827, 182, - 2757, 17463, 16531, 16827, 202, - 2757, 17463, 16531, 16827, 208, - 2757, 17463, 16531, 16827, 226, - 2757, 17463, 16531, 16827, 302, - 2757, 17463, 16531, 16827, 328, - 2757, 17463, 16531, 16827, 504, - 2757, 17463, 16531, 16827, 524, - 2757, 17463, 16531, 16827, 526, - 2757, 17463, 16531, 16827, 532, - 2757, 17463, 16531, 16827, 852, - 2757, 17463, 16531, 16827, 854, - 2757, 17463, 16531, 16827, 858, - 2757, 17463, 16531, 16827, 860, - 2757, 17463, 16531, 16827, 862, - 2757, 17463, 16531, 16827, 864, - 2757, 17463, 16531, 16827, 866, - 2757, 17463, 16531, 16827, 868, - 2757, 17463, 16531, 16827, 870, - 2757, 17463, 16531, 16827, 872, - 2757, 17463, 16531, 16827, 922, - 2757, 17463, 16531, 16827, 1384, - 2757, 17463, 16531, 16827, 1390, - 2757, 17463, 16531, 16827, 1394, - 2757, 17463, 16531, 16827, 1398, - 2757, 17463, 16531, 16827, 1400, - 2757, 17463, 16531, 16827, 1412, - 2757, 17463, 16531, 16827, 2742, - 2757, 17463, 16531, 16827, 5994, - 2757, 17463, 16531, 19461, 0, - 2757, 17463, 16531, 19461, 8, - 2757, 17463, 16531, 19461, 16, - 2757, 17463, 16531, 19461, 60, - 2757, 17463, 16531, 19461, 64, - 2757, 17463, 16531, 19461, 66, - 2757, 17463, 16531, 19461, 68, - 2757, 17463, 16531, 19461, 78, - 2757, 17463, 16531, 19461, 88, - 2757, 17463, 16531, 19461, 90, - 2757, 17463, 16531, 19461, 94, - 2757, 17463, 16531, 19461, 104, - 2757, 17463, 16531, 19461, 182, - 2757, 17463, 16531, 19461, 226, - 2757, 17463, 16531, 19461, 328, - 2757, 17463, 16531, 19461, 504, - 2757, 17463, 16531, 19461, 526, - 2757, 17463, 16531, 19461, 852, - 2757, 17463, 16531, 19461, 858, - 2757, 17463, 16531, 19461, 860, - 2757, 17463, 16531, 19461, 864, - 2757, 17463, 16531, 19461, 870, - 2757, 17463, 16531, 19461, 872, - 2757, 17463, 16531, 19461, 898, - 2757, 17463, 16531, 19461, 922, - 2757, 17463, 16531, 19461, 1390, - 2757, 17463, 16531, 19461, 1398, - 2757, 17463, 16531, 19461, 1400, - 2757, 17463, 16531, 19461, 1412, - 2757, 17463, 16531, 19461, 2742, - 2757, 17463, 16531, 19461, 5458, - 2757, 17515, 16531, 554, - 2757, 17515, 16531, 2406, - 2757, 17515, 16531, 2676, - 2757, 17515, 16531, 3398, - 2757, 17515, 16531, 3750, - 2757, 17515, 16531, 6066, - 2757, 17515, 16531, 8002, - 2757, 17515, 16531, 8284, - 2757, 17515, 16531, 10120, - 2757, 17515, 16531, 10478, - 2757, 17515, 16531, 11722, - 2757, 17515, 16531, 12354, - 2757, 17515, 16531, 13259, 7478, - 2757, 17515, 16531, 14720, - 2757, 17515, 16531, 15606, - 2757, 17515, 16531, 16508, - 2757, 17515, 16531, 17060, - 2757, 17515, 16531, 22466, - 2757, 17515, 21127, 1291, 12318, - 2757, 17515, 21127, 1291, 12502, - 2757, 17515, 21127, 3537, 6697, 12318, - 2757, 17515, 21127, 3537, 6697, 12502, - 2757, 17515, 23555, 964, - 2757, 17515, 23555, 3537, 5990, - 2757, 17515, 23555, 3537, 6696, - 2757, 17515, 23555, 7059, 6696, - 2757, 17873, 7659, 8808, - 2757, 17873, 21517, 8808, - 2757, 18843, 10575, 0, - 2757, 18843, 10575, 16, - 2757, 18843, 10575, 40, - 2757, 18843, 10575, 108, - 2757, 18843, 10575, 126, - 2757, 18843, 10575, 150, - 2757, 18843, 10575, 160, - 2757, 18843, 10575, 170, - 2757, 18843, 10575, 228, - 2757, 18843, 10575, 248, - 2757, 18843, 10575, 264, - 2757, 18843, 10575, 272, - 2757, 18843, 10575, 344, - 2757, 18843, 10575, 348, - 2757, 18843, 10575, 358, - 2757, 18843, 10575, 380, - 2757, 18843, 10575, 394, - 2757, 18843, 10575, 426, - 2757, 18843, 10575, 440, - 2757, 18843, 10575, 454, - 2757, 18843, 10575, 466, - 2757, 18843, 10575, 490, - 2757, 18843, 10575, 548, - 2757, 18843, 10575, 598, - 2757, 18843, 10575, 610, - 2757, 18843, 10575, 614, - 2757, 18843, 10575, 648, - 2757, 18843, 10575, 668, - 2757, 18843, 10575, 714, - 2757, 18843, 10575, 720, - 2757, 18843, 10575, 762, - 2757, 18843, 10575, 778, - 2757, 18843, 10575, 796, - 2757, 18843, 10575, 3212, - 2757, 18843, 10575, 3286, - 2757, 18843, 10575, 3422, - 2757, 18843, 10575, 5970, - 2757, 18843, 10575, 17826, - 2757, 18843, 10575, 21168, - 2757, 18843, 10575, 22194, - 2757, 18843, 10575, 23108, - 2757, 18843, 10575, 23764, - 2757, 18843, 10575, 23766, - 2757, 18843, 10575, 24184, - 2757, 18843, 11537, 18010, - 2757, 18843, 16787, 2760, - 2757, 18843, 16787, 3412, - 2757, 18843, 16787, 3536, - 2757, 18843, 16787, 17474, - 2757, 18843, 16787, 18280, - 2757, 19137, 16531, 276, - 2757, 19137, 16531, 554, - 2757, 19137, 16531, 2406, - 2757, 19137, 16531, 2676, - 2757, 19137, 16531, 3398, - 2757, 19137, 16531, 3750, - 2757, 19137, 16531, 5556, - 2757, 19137, 16531, 6066, - 2757, 19137, 16531, 7478, - 2757, 19137, 16531, 8002, - 2757, 19137, 16531, 10478, - 2757, 19137, 16531, 11722, - 2757, 19137, 16531, 12354, - 2757, 19137, 16531, 13259, 276, - 2757, 19137, 16531, 13259, 2676, - 2757, 19137, 16531, 13259, 2677, 11513, 20933, 10856, - 2757, 19137, 16531, 13259, 3398, - 2757, 19137, 16531, 13259, 3399, 11513, 20933, 10856, - 2757, 19137, 16531, 13259, 6066, - 2757, 19137, 16531, 13259, 12354, - 2757, 19137, 16531, 13259, 14720, - 2757, 19137, 16531, 13259, 14721, 11513, 20933, 10856, - 2757, 19137, 16531, 13384, - 2757, 19137, 16531, 14720, - 2757, 19137, 16531, 15606, - 2757, 19137, 16531, 16508, - 2757, 19137, 16531, 17060, - 2757, 19137, 16531, 21003, 5556, - 2757, 19137, 16531, 36208, - 2757, 19137, 16787, 2760, - 2757, 19137, 16787, 2761, 18280, - 2757, 19137, 16787, 3412, - 2757, 19137, 16787, 3536, - 2757, 19137, 16787, 7036, - 2757, 19137, 16787, 7058, - 2757, 19137, 16787, 15116, - 2757, 19137, 16787, 17372, - 2757, 19137, 16787, 17474, - 2757, 19137, 20055, 2761, 7428, - 2757, 19137, 20241, 23058, - 2757, 20477, 19716, - 2757, 20477, 19717, 11513, 18633, 323, 20507, 23504, - 2757, 21481, 14911, 16531, 0, - 2757, 21481, 14911, 16531, 8, - 2757, 21481, 14911, 16531, 16, - 2757, 21481, 14911, 16531, 28, - 2757, 21481, 14911, 16531, 40, - 2757, 21481, 14911, 16531, 58, - 2757, 21481, 14911, 16531, 76, - 2757, 21481, 14911, 16531, 180, - 2757, 21481, 14911, 16531, 182, - 2757, 21481, 14911, 16531, 184, - 2757, 21481, 14911, 16531, 186, - 2757, 21481, 14911, 16531, 188, - 2757, 21481, 14911, 16531, 190, - 2757, 21481, 14911, 16531, 192, - 2757, 21481, 14911, 16531, 196, - 2757, 21481, 14911, 16531, 198, - 2757, 21481, 14911, 16531, 200, - 2757, 21481, 14911, 16531, 202, - 2757, 21481, 14911, 16531, 204, - 2757, 21481, 14911, 16531, 208, - 2757, 21481, 14911, 16531, 212, - 2757, 21481, 14911, 16531, 214, - 2757, 21481, 14911, 16531, 216, - 2757, 21481, 14911, 16531, 220, - 2757, 21481, 14911, 16531, 226, - 2757, 21481, 14911, 16531, 314, - 2757, 21481, 14911, 16531, 522, - 2757, 21481, 14911, 16531, 704, - 2757, 21481, 14911, 16531, 706, - 2757, 21481, 14911, 16531, 894, - 2757, 21481, 14911, 16531, 896, - 2757, 21481, 14911, 16531, 1356, - 2757, 21481, 14911, 16531, 1358, - 2757, 21481, 14911, 16531, 1368, - 2757, 21481, 14911, 16531, 1386, - 2757, 21481, 14911, 16531, 1388, - 2757, 21481, 14911, 16531, 1390, - 2757, 21481, 14911, 16531, 1398, - 2757, 21481, 14911, 16531, 1400, - 2757, 21481, 14911, 16531, 1418, - 2757, 21481, 14911, 16531, 1426, - 2757, 21481, 14911, 16531, 1438, - 2757, 21481, 14911, 16531, 2740, - 2757, 21481, 14911, 16531, 3614, - 2757, 21481, 14911, 16531, 12711, 8, - 2757, 21481, 14911, 16531, 14837, 212, - 2757, 21481, 14911, 16531, 21823, 504, - 2757, 21481, 14911, 16531, 21823, 682, - 2757, 21481, 14911, 16531, 22421, 10574, - 2757, 21481, 14911, 16531, 22607, 504, - 2757, 21481, 14911, 16531, 22607, 682, - 2757, 21481, 16787, 2760, - 2757, 21481, 16787, 2761, 18280, - 2757, 21481, 16787, 2761, 20828, - 2757, 21481, 16787, 3412, - 2757, 21481, 16787, 7036, - 2757, 21481, 16787, 13254, - 2757, 21481, 17835, 16531, 0, - 2757, 21481, 17835, 16531, 8, - 2757, 21481, 17835, 16531, 16, - 2757, 21481, 17835, 16531, 28, - 2757, 21481, 17835, 16531, 40, - 2757, 21481, 17835, 16531, 58, - 2757, 21481, 17835, 16531, 76, - 2757, 21481, 17835, 16531, 180, - 2757, 21481, 17835, 16531, 182, - 2757, 21481, 17835, 16531, 184, - 2757, 21481, 17835, 16531, 186, - 2757, 21481, 17835, 16531, 188, - 2757, 21481, 17835, 16531, 190, - 2757, 21481, 17835, 16531, 192, - 2757, 21481, 17835, 16531, 196, - 2757, 21481, 17835, 16531, 198, - 2757, 21481, 17835, 16531, 200, - 2757, 21481, 17835, 16531, 202, - 2757, 21481, 17835, 16531, 204, - 2757, 21481, 17835, 16531, 208, - 2757, 21481, 17835, 16531, 212, - 2757, 21481, 17835, 16531, 214, - 2757, 21481, 17835, 16531, 216, - 2757, 21481, 17835, 16531, 220, - 2757, 21481, 17835, 16531, 226, - 2757, 21481, 17835, 16531, 314, - 2757, 21481, 17835, 16531, 522, - 2757, 21481, 17835, 16531, 704, - 2757, 21481, 17835, 16531, 706, - 2757, 21481, 17835, 16531, 894, - 2757, 21481, 17835, 16531, 896, - 2757, 21481, 17835, 16531, 1356, - 2757, 21481, 17835, 16531, 1358, - 2757, 21481, 17835, 16531, 1368, - 2757, 21481, 17835, 16531, 1386, - 2757, 21481, 17835, 16531, 1388, - 2757, 21481, 17835, 16531, 1390, - 2757, 21481, 17835, 16531, 1398, - 2757, 21481, 17835, 16531, 1400, - 2757, 21481, 17835, 16531, 1418, - 2757, 21481, 17835, 16531, 1426, - 2757, 21481, 17835, 16531, 1438, - 2757, 21481, 17835, 16531, 2740, - 2757, 21481, 17835, 16531, 3614, - 2757, 21481, 17835, 16531, 12711, 8, - 2757, 21481, 17835, 16531, 14837, 212, - 2757, 21481, 17835, 16531, 21823, 504, - 2757, 21481, 17835, 16531, 21823, 682, - 2757, 21481, 17835, 16531, 22421, 10574, - 2757, 21481, 17835, 16531, 22607, 504, - 2757, 21481, 17835, 16531, 22607, 682, - 2761, 1291, 9787, 3537, 6697, 23554, - 2761, 1291, 16516, - 2761, 15863, 14028, - 2786, - 2805, 1137, 1701, 16531, 0, - 2805, 1137, 1701, 16531, 8, - 2805, 1137, 1701, 16531, 16, - 2805, 1137, 1701, 16531, 28, - 2805, 1137, 1701, 16531, 40, - 2805, 1137, 1701, 16531, 108, - 2805, 1137, 1701, 16531, 126, - 2805, 1137, 1701, 16531, 150, - 2805, 1137, 1701, 16531, 228, - 2805, 1137, 1701, 16531, 248, - 2805, 1137, 1701, 16531, 272, - 2805, 1137, 1701, 16531, 298, - 2805, 1137, 1701, 16531, 358, - 2805, 1137, 1701, 16531, 394, - 2805, 1137, 1701, 16531, 426, - 2805, 1137, 1701, 16531, 466, - 2805, 1137, 1701, 16531, 548, - 2805, 1137, 1701, 16531, 598, - 2805, 1137, 1701, 16531, 614, - 2805, 1137, 1701, 16531, 648, - 2805, 1137, 1701, 16531, 674, - 2805, 1137, 1701, 16531, 714, - 2805, 1137, 1701, 16531, 796, - 2805, 1137, 1701, 16531, 1116, - 2805, 1137, 1701, 16531, 2036, - 2805, 1137, 1701, 16531, 2574, - 2805, 1137, 1701, 16531, 2830, - 2805, 1137, 1701, 16531, 3422, - 2805, 1137, 1701, 16531, 13259, 20, - 2805, 1137, 1701, 16531, 13259, 22, - 2805, 1137, 1701, 16531, 13259, 24, - 2805, 1137, 1701, 16531, 13259, 26, - 2805, 1137, 1701, 16531, 13259, 30, - 2805, 1137, 1701, 16531, 13259, 38, - 2805, 1137, 1701, 16531, 13259, 44, - 2805, 1137, 1701, 16531, 13259, 48, - 2805, 1137, 1701, 16531, 13259, 474, - 2805, 1137, 1701, 17037, 11032, - 2805, 1137, 1701, 17037, 11033, 8350, - 2805, 1137, 1701, 17037, 11033, 8351, 13258, - 2805, 1137, 1701, 17037, 11033, 13258, - 2805, 1137, 1701, 17069, 11032, - 2805, 1137, 1701, 17069, 11033, 8350, - 2805, 1137, 1701, 17069, 11033, 8351, 13258, - 2805, 1137, 1701, 17069, 11033, 13258, - 2805, 1137, 1701, 17069, 18213, 10696, - 2805, 1137, 1701, 17069, 18213, 10697, 13258, - 2805, 1137, 1701, 18213, 10696, - 2805, 1137, 1701, 18213, 10697, 13258, - 2805, 1137, 1701, 18213, 10697, 19394, - 2805, 1137, 1701, 21593, 11032, - 2805, 1137, 1701, 21593, 11033, 8351, 13258, - 2805, 1137, 1701, 21593, 11033, 13258, - 2805, 1137, 1701, 23311, 11032, - 2805, 1137, 1701, 23311, 11033, 8350, - 2805, 1137, 1701, 23311, 11033, 8351, 13258, - 2805, 1137, 1701, 23311, 11033, 13258, - 2807, 16970, - 2812, - 2814, - 2817, 2860, - 2823, 9787, 19175, 19986, - 2825, 3413, 20829, 10574, - 2825, 10574, - 2825, 14001, 10574, - 2840, - 2842, - 2843, 6996, - 2843, 9440, - 2857, 22978, - 2867, 23131, 18314, - 2867, 23131, 22456, - 2869, 507, 7048, - 2903, 16561, 323, 1897, 14545, 17298, - 3040, - 3048, - 3059, 7317, 19986, - 3059, 12398, - 3088, - 3090, - 3092, - 3094, - 3207, 14004, - 3224, - 3241, 18889, 10691, 11513, 16661, 1290, - 3241, 18889, 12525, 10690, - 3241, 18889, 20489, 10690, - 3241, 20479, 12525, 897, 15453, 20038, - 3245, 897, 3245, 6110, - 3255, 10574, - 3310, - 3311, 11513, 6996, - 3311, 15801, 12714, - 3371, 2301, 8320, - 3371, 7073, 10696, - 3371, 8281, 12941, 17810, - 3371, 8281, 17225, 17810, - 3371, 8281, 23522, - 3371, 9905, 10574, - 3371, 12916, - 3371, 12922, - 3371, 13069, 2760, - 3371, 13069, 3240, - 3371, 13069, 3536, - 3371, 13069, 7036, - 3371, 13069, 7058, - 3371, 13069, 9358, - 3371, 13069, 11824, - 3371, 13069, 13150, - 3371, 13069, 14778, - 3371, 13069, 15116, - 3371, 13417, 15678, - 3371, 13783, 14911, 16531, 0, - 3371, 13783, 14911, 16531, 2, - 3371, 13783, 14911, 16531, 4, - 3371, 13783, 14911, 16531, 6, - 3371, 13783, 14911, 16531, 8, - 3371, 13783, 14911, 16531, 10, - 3371, 13783, 14911, 16531, 12, - 3371, 13783, 14911, 16531, 14, - 3371, 13783, 14911, 16531, 16, - 3371, 13783, 14911, 16531, 18, - 3371, 13783, 14911, 16531, 20, - 3371, 13783, 14911, 16531, 22, - 3371, 13783, 14911, 16531, 24, - 3371, 13783, 14911, 16531, 26, - 3371, 13783, 14911, 16531, 28, - 3371, 13783, 14911, 16531, 30, - 3371, 13783, 14911, 16531, 32, - 3371, 13783, 14911, 16531, 34, - 3371, 13783, 14911, 16531, 36, - 3371, 13783, 14911, 16531, 38, - 3371, 13783, 14911, 16531, 40, - 3371, 13783, 14911, 16531, 42, - 3371, 13783, 14911, 16531, 44, - 3371, 13783, 14911, 16531, 46, - 3371, 13783, 14911, 16531, 48, - 3371, 13783, 14911, 16531, 50, - 3371, 13783, 17835, 16531, 0, - 3371, 13783, 17835, 16531, 2, - 3371, 13783, 17835, 16531, 4, - 3371, 13783, 17835, 16531, 6, - 3371, 13783, 17835, 16531, 8, - 3371, 13783, 17835, 16531, 10, - 3371, 13783, 17835, 16531, 12, - 3371, 13783, 17835, 16531, 14, - 3371, 13783, 17835, 16531, 16, - 3371, 13783, 17835, 16531, 18, - 3371, 13783, 17835, 16531, 20, - 3371, 13783, 17835, 16531, 22, - 3371, 13783, 17835, 16531, 24, - 3371, 13783, 17835, 16531, 26, - 3371, 13783, 17835, 16531, 28, - 3371, 13783, 17835, 16531, 30, - 3371, 13783, 17835, 16531, 32, - 3371, 13783, 17835, 16531, 34, - 3371, 13783, 17835, 16531, 36, - 3371, 13783, 17835, 16531, 38, - 3371, 13783, 17835, 16531, 40, - 3371, 13783, 17835, 16531, 42, - 3371, 13783, 17835, 16531, 44, - 3371, 13783, 17835, 16531, 46, - 3371, 13783, 17835, 16531, 48, - 3371, 13783, 17835, 16531, 50, - 3371, 14659, 12941, 17810, - 3371, 14659, 17225, 17810, - 3371, 14659, 23522, - 3371, 14932, - 3371, 15140, - 3371, 16067, 10574, - 3371, 16121, 10574, - 3371, 16787, 10574, - 3371, 18841, 10574, - 3371, 18999, 19140, - 3371, 19140, - 3371, 19574, - 3371, 20549, 8808, - 3371, 20933, 8320, - 3371, 21006, - 3371, 21559, 10574, - 3371, 21779, 8808, - 3371, 21844, - 3371, 22172, - 3371, 22223, 15678, - 3371, 22225, 94, - 3371, 23213, 8808, - 3371, 23853, 10574, - 3371, 23868, - 3375, 399, 16531, 0, - 3375, 399, 16531, 8, - 3375, 399, 16531, 16, - 3375, 399, 16531, 28, - 3375, 399, 16531, 40, - 3375, 399, 16531, 72, - 3375, 399, 16531, 186, - 3375, 399, 16531, 192, - 3375, 399, 16531, 228, - 3375, 399, 16531, 272, - 3375, 399, 16531, 358, - 3375, 399, 16531, 394, - 3375, 399, 16531, 426, - 3375, 399, 16531, 466, - 3375, 399, 16531, 522, - 3375, 399, 16531, 548, - 3375, 399, 16531, 582, - 3375, 399, 16531, 614, - 3375, 399, 16531, 648, - 3375, 399, 16531, 682, - 3375, 399, 16531, 714, - 3375, 399, 16531, 762, - 3375, 399, 16531, 778, - 3375, 399, 16531, 928, - 3375, 399, 16531, 2036, - 3375, 399, 16531, 2574, - 3375, 399, 16531, 2830, - 3375, 399, 16531, 3422, - 3375, 399, 16531, 3488, - 3375, 399, 16531, 11058, - 3375, 399, 16531, 17402, - 3375, 399, 16531, 17404, - 3375, 399, 16531, 17406, - 3375, 399, 16531, 17408, - 3375, 399, 16531, 17410, - 3375, 10931, 7667, 13069, 2760, - 3375, 10931, 7667, 13069, 3240, - 3375, 10931, 7667, 13069, 3536, - 3375, 10931, 7667, 13069, 7036, - 3375, 10931, 7667, 13069, 7058, - 3375, 10931, 7667, 13069, 9358, - 3375, 10931, 7667, 13069, 11824, - 3375, 10931, 7667, 13069, 13150, - 3375, 10931, 7667, 13069, 14778, - 3375, 10931, 7667, 13069, 15116, - 3375, 10931, 10575, 599, 7420, - 3375, 10931, 10575, 1792, - 3375, 10931, 10575, 2367, 3182, - 3375, 10931, 10575, 2367, 7998, - 3375, 10931, 10575, 2367, 7999, 2198, - 3375, 10931, 10575, 2367, 15516, - 3375, 10931, 10575, 7434, - 3375, 10931, 10575, 7970, - 3375, 10931, 10575, 8040, - 3375, 10931, 10575, 12598, - 3375, 10931, 10575, 13699, 17404, - 3375, 10931, 10575, 13699, 17406, - 3375, 10931, 10575, 13699, 17408, - 3375, 10931, 10575, 14728, - 3375, 10931, 10575, 14750, - 3375, 10931, 10575, 15456, - 3375, 10931, 10575, 16062, - 3375, 10931, 10575, 17400, - 3375, 10931, 10575, 17402, - 3375, 10931, 10575, 18328, - 3375, 10931, 10575, 19042, - 3375, 10931, 10575, 20587, 19015, 10096, - 3375, 10931, 10575, 21537, 13654, - 3375, 10931, 10575, 22126, - 3375, 10931, 10575, 22842, - 3375, 10931, 10931, 13069, 2760, - 3375, 10931, 10931, 13069, 3240, - 3375, 10931, 10931, 13069, 3536, - 3375, 10931, 10931, 13069, 7036, - 3375, 10931, 10931, 13069, 7058, - 3375, 10931, 10931, 13069, 9358, - 3375, 10931, 10931, 13069, 11824, - 3375, 10931, 10931, 13069, 13150, - 3375, 10931, 10931, 13069, 14778, - 3375, 10931, 10931, 13069, 15116, - 3375, 10931, 15407, 10575, 0, - 3375, 10931, 15407, 10575, 8, - 3375, 10931, 15407, 10575, 16, - 3375, 10931, 15407, 10575, 28, - 3375, 10931, 15407, 10575, 40, - 3375, 10931, 15407, 10575, 58, - 3375, 10931, 15407, 10575, 66, - 3375, 10931, 15407, 10575, 72, - 3375, 10931, 15407, 10575, 314, - 3375, 10931, 15407, 10575, 499, 12318, - 3375, 10931, 15407, 10575, 499, 12502, - 3375, 10931, 15407, 10575, 522, - 3375, 10931, 15407, 10575, 542, - 3375, 10931, 15407, 10575, 682, - 3375, 10931, 15407, 10575, 706, - 3375, 10931, 15407, 10575, 2367, 3192, - 3375, 10931, 15407, 10575, 3644, - 3375, 10931, 15407, 10575, 10863, 58, - 3375, 10931, 15407, 10575, 10931, 72, - 3375, 10931, 16531, 0, - 3375, 10931, 16531, 16, - 3375, 10931, 16531, 40, - 3375, 10931, 16531, 108, - 3375, 10931, 16531, 150, - 3375, 10931, 16531, 186, - 3375, 10931, 16531, 314, - 3375, 10931, 16531, 394, - 3375, 10931, 16531, 426, - 3375, 10931, 16531, 466, - 3375, 10931, 16531, 522, - 3375, 10931, 16531, 598, - 3375, 10931, 16531, 706, - 3375, 10931, 16531, 738, - 3375, 10931, 16531, 2194, - 3375, 10931, 16531, 2278, - 3375, 10931, 16531, 2301, 126, - 3375, 10931, 16531, 2301, 228, - 3375, 10931, 16531, 2301, 272, - 3375, 10931, 16531, 2301, 358, - 3375, 10931, 16531, 2301, 548, - 3375, 10931, 16531, 2301, 614, - 3375, 10931, 16531, 2301, 648, - 3375, 10931, 16531, 2301, 778, - 3375, 10931, 16531, 2301, 1116, - 3375, 10931, 16531, 2301, 2036, - 3375, 10931, 16531, 2301, 2170, - 3375, 10931, 16531, 2301, 2830, - 3375, 10931, 16531, 2301, 3422, - 3375, 10931, 16531, 2301, 14626, - 3375, 10931, 16531, 2318, - 3375, 10931, 16531, 2574, - 3375, 10931, 16531, 2698, - 3375, 10931, 16531, 3134, - 3375, 10931, 16531, 7521, 126, - 3375, 10931, 16531, 7521, 228, - 3375, 10931, 16531, 7521, 272, - 3375, 10931, 16531, 7521, 358, - 3375, 10931, 16531, 7521, 548, - 3375, 10931, 16531, 7521, 614, - 3375, 10931, 16531, 7521, 648, - 3375, 10931, 16531, 7521, 778, - 3375, 10931, 16531, 7521, 1116, - 3375, 10931, 16531, 7521, 2036, - 3375, 10931, 16531, 7521, 2170, - 3375, 10931, 16531, 7521, 2830, - 3375, 10931, 16531, 7521, 3212, - 3375, 10931, 16531, 7521, 3286, - 3375, 10931, 16531, 7521, 3422, - 3375, 10931, 16531, 7521, 14626, - 3375, 10931, 16531, 10096, - 3375, 10931, 16531, 10098, - 3375, 10931, 16531, 13419, 614, - 3375, 10931, 21127, 25753, 1290, - 3375, 10931, 21143, 10575, 108, - 3375, 10931, 21143, 10575, 395, 10867, 2198, - 3375, 10931, 21143, 10575, 426, - 3375, 10931, 21143, 10575, 614, - 3375, 10931, 21143, 10575, 2301, 548, - 3375, 10931, 21143, 10575, 7521, 14627, 529, 2301, 548, - 3375, 10931, 21143, 10575, 13259, 2574, - 3375, 10931, 21143, 10575, 16635, 394, - 3375, 10931, 21143, 10575, 16635, 598, - 3375, 11387, 2367, 7998, - 3375, 11387, 2367, 8072, - 3375, 11387, 11033, 2367, 198, - 3375, 11387, 11033, 2367, 3428, - 3375, 11387, 11033, 2367, 10630, - 3375, 11387, 11033, 2367, 14332, - 3375, 11387, 15407, 8, - 3375, 11387, 15407, 16, - 3375, 11387, 15407, 28, - 3375, 11387, 15407, 40, - 3375, 11387, 15407, 58, - 3375, 11387, 15407, 80, - 3375, 11387, 15407, 82, - 3375, 11387, 15407, 104, - 3375, 11387, 15407, 298, - 3375, 11387, 15407, 674, - 3375, 11387, 15407, 682, - 3375, 11387, 15407, 928, - 3375, 11387, 15407, 3578, - 3375, 11387, 16531, 2301, 28, - 3375, 11387, 16531, 2301, 118, - 3375, 11387, 16531, 2301, 142, - 3375, 11387, 16531, 2301, 168, - 3375, 11387, 16531, 2301, 240, - 3375, 11387, 16531, 2301, 262, - 3375, 11387, 16531, 2301, 288, - 3375, 11387, 16531, 2301, 374, - 3375, 11387, 16531, 2301, 412, - 3375, 11387, 16531, 2301, 446, - 3375, 11387, 16531, 2301, 486, - 3375, 11387, 16531, 2301, 566, - 3375, 11387, 16531, 2301, 606, - 3375, 11387, 16531, 2301, 628, - 3375, 11387, 16531, 2301, 660, - 3375, 11387, 16531, 2301, 722, - 3375, 11387, 16531, 2301, 786, - 3375, 11387, 16531, 2301, 1122, - 3375, 11387, 16531, 2301, 2042, - 3375, 11387, 16531, 2301, 2582, - 3375, 11387, 16531, 2301, 2706, - 3375, 11387, 16531, 2301, 2836, - 3375, 11387, 16531, 2301, 3428, - 3375, 11387, 16531, 2301, 8070, - 3375, 11387, 16531, 7521, 28, - 3375, 11387, 16531, 7521, 118, - 3375, 11387, 16531, 7521, 142, - 3375, 11387, 16531, 7521, 168, - 3375, 11387, 16531, 7521, 240, - 3375, 11387, 16531, 7521, 262, - 3375, 11387, 16531, 7521, 288, - 3375, 11387, 16531, 7521, 374, - 3375, 11387, 16531, 7521, 412, - 3375, 11387, 16531, 7521, 446, - 3375, 11387, 16531, 7521, 486, - 3375, 11387, 16531, 7521, 566, - 3375, 11387, 16531, 7521, 606, - 3375, 11387, 16531, 7521, 628, - 3375, 11387, 16531, 7521, 660, - 3375, 11387, 16531, 7521, 722, - 3375, 11387, 16531, 7521, 786, - 3375, 11387, 16531, 7521, 1122, - 3375, 11387, 16531, 7521, 2042, - 3375, 11387, 16531, 7521, 2582, - 3375, 11387, 16531, 7521, 2706, - 3375, 11387, 16531, 7521, 2836, - 3375, 11387, 16531, 7521, 3428, - 3375, 11387, 16531, 7521, 8070, - 3375, 11387, 17299, 289, 1778, - 3375, 11387, 17299, 2095, 2094, - 3375, 11387, 17299, 2098, - 3375, 11387, 17299, 3182, - 3375, 11387, 17299, 14332, - 3437, 9787, 20152, - 3473, 917, 21119, 12415, 11513, 14004, - 3473, 917, 24193, 12414, - 3473, 917, 24193, 12415, 11513, 9904, - 3473, 1698, - 3473, 7429, 8281, 23522, - 3473, 7429, 12525, 15938, - 3473, 7429, 14659, 23522, - 3473, 7429, 19057, 10574, - 3473, 7429, 20031, 14671, 18176, - 3473, 7429, 20031, 14671, 18178, - 3473, 7429, 20156, - 3473, 7429, 20711, 16890, - 3473, 7429, 23301, 14670, - 3473, 7429, 23301, 17049, 18176, - 3473, 7429, 23301, 17049, 18178, - 3473, 7429, 24077, 14670, - 3473, 7429, 24077, 17049, 18176, - 3473, 7429, 24077, 17049, 18178, - 3473, 7429, 26001, 14670, - 3473, 7429, 26001, 17048, - 3473, 8281, 6366, - 3473, 8281, 7429, 17810, - 3473, 8281, 12525, 25813, 14911, 20858, - 3473, 8281, 15974, - 3473, 8281, 21527, 13839, 14659, 18951, 12525, 15938, - 3473, 11513, 19381, 12415, 12318, - 3473, 12941, 17810, - 3473, 14659, 6366, - 3473, 14659, 7429, 17810, - 3473, 14659, 15974, - 3473, 14659, 21527, 13839, 8281, 18951, 12525, 15938, - 3473, 17225, 17810, - 3473, 20847, 14811, 17810, - 3473, 21527, 13839, 7429, 12525, 15938, - 3473, 21527, 13839, 7429, 15453, 15938, - 3473, 23522, - 3537, 1291, 16516, - 3537, 1291, 23554, - 3537, 2409, 18273, 13458, - 3537, 6697, 9787, 2761, 1291, 23554, - 3537, 14661, 17671, 23866, - 3537, 15471, 18273, 13458, - 3537, 15863, 14028, - 3537, 16322, - 3537, 16401, 19166, - 3537, 17203, 17820, - 3537, 18529, 529, 20406, - 3537, 18529, 897, 20406, - 3537, 21033, 17671, 23010, - 3537, 23091, 16121, 14870, - 3537, 23881, 18529, 528, - 3537, 23881, 18529, 896, - 3659, 7073, 10696, - 3659, 12922, - 3659, 13069, 2760, - 3659, 13069, 3240, - 3659, 13069, 3536, - 3659, 13069, 7036, - 3659, 13069, 7058, - 3659, 13069, 9358, - 3659, 13069, 11824, - 3659, 13069, 13150, - 3659, 13069, 14778, - 3659, 13069, 15116, - 3659, 17299, 1440, - 3659, 17299, 2596, - 3659, 17299, 3364, - 3659, 17299, 5984, - 3659, 17299, 6538, - 3659, 17299, 6682, - 3659, 17299, 7908, - 3659, 17299, 8176, - 3659, 17299, 10996, - 3659, 17299, 11034, - 3659, 17299, 13098, - 3659, 17299, 13244, - 3659, 17299, 13668, - 3659, 20549, 8808, - 3659, 20777, 0, - 3659, 20777, 8, - 3659, 20777, 16, - 3659, 20777, 28, - 3659, 20777, 40, - 3659, 20777, 82, - 3659, 20777, 108, - 3659, 20777, 112, - 3659, 20777, 116, - 3659, 20777, 118, - 3659, 20777, 122, - 3659, 20777, 126, - 3659, 20777, 132, - 3659, 20777, 136, - 3659, 20777, 142, - 3659, 20777, 144, - 3659, 20777, 150, - 3659, 20777, 156, - 3659, 20777, 160, - 3659, 20777, 168, - 3659, 20777, 170, - 3659, 20777, 186, - 3659, 20777, 204, - 3659, 20777, 228, - 3659, 20777, 230, - 3659, 20777, 234, - 3659, 20777, 240, - 3659, 20777, 242, - 3659, 20777, 248, - 3659, 20777, 252, - 3659, 20777, 258, - 3659, 20777, 262, - 3659, 20777, 264, - 3659, 20777, 272, - 3659, 20777, 276, - 3659, 20777, 280, - 3659, 20777, 288, - 3659, 20777, 292, - 3659, 20777, 322, - 3659, 20777, 344, - 3659, 20777, 346, - 3659, 20777, 348, - 3659, 20777, 350, - 3659, 20777, 352, - 3659, 20777, 358, - 3659, 20777, 362, - 3659, 20777, 366, - 3659, 20777, 374, - 3659, 20777, 380, - 3659, 20777, 394, - 3659, 20777, 398, - 3659, 20777, 402, - 3659, 20777, 412, - 3659, 20777, 416, - 3659, 20777, 426, - 3659, 20777, 434, - 3659, 20777, 440, - 3659, 20777, 446, - 3659, 20777, 454, - 3659, 20777, 466, - 3659, 20777, 470, - 3659, 20777, 474, - 3659, 20777, 478, - 3659, 20777, 486, - 3659, 20777, 490, - 3659, 20777, 520, - 3659, 20777, 522, - 3659, 20777, 548, - 3659, 20777, 554, - 3659, 20777, 562, - 3659, 20777, 566, - 3659, 20777, 572, - 3659, 20777, 598, - 3659, 20777, 600, - 3659, 20777, 604, - 3659, 20777, 606, - 3659, 20777, 610, - 3659, 20777, 614, - 3659, 20777, 618, - 3659, 20777, 624, - 3659, 20777, 628, - 3659, 20777, 638, - 3659, 20777, 648, - 3659, 20777, 652, - 3659, 20777, 656, - 3659, 20777, 660, - 3659, 20777, 668, - 3659, 20777, 694, - 3659, 20777, 714, - 3659, 20777, 718, - 3659, 20777, 720, - 3659, 20777, 722, - 3659, 20777, 728, - 3659, 20777, 738, - 3659, 20777, 744, - 3659, 20777, 750, - 3659, 20777, 754, - 3659, 20777, 756, - 3659, 20777, 778, - 3659, 20777, 780, - 3659, 20777, 782, - 3659, 20777, 786, - 3659, 20777, 790, - 3659, 20777, 796, - 3659, 20777, 798, - 3659, 20777, 802, - 3659, 20777, 804, - 3659, 20777, 806, - 3659, 20777, 986, - 3659, 20777, 1000, - 3659, 20777, 1002, - 3659, 20777, 1004, - 3659, 20777, 1006, - 3659, 20777, 1008, - 3659, 20777, 1028, - 3659, 20777, 1106, - 3659, 20777, 1150, - 3659, 20777, 1224, - 3659, 20777, 1236, - 3659, 20777, 1238, - 3659, 20777, 1240, - 3659, 20777, 1242, - 3659, 20777, 1244, - 3659, 20777, 1286, - 3659, 20777, 1364, - 3659, 20777, 1460, - 3659, 20777, 1488, - 3659, 20777, 1554, - 3659, 20777, 1556, - 3659, 20777, 1558, - 3659, 20777, 1560, - 3659, 20777, 1562, - 3659, 20777, 1564, - 3659, 20777, 1568, - 3659, 20777, 1626, - 3659, 20777, 1690, - 3659, 20777, 1708, - 3659, 20777, 1714, - 3659, 20777, 1736, - 3659, 20777, 1782, - 3659, 20777, 1784, - 3659, 20777, 1802, - 3659, 20777, 1910, - 3659, 20777, 1948, - 3659, 20777, 2000, - 3659, 20777, 2018, - 3659, 20777, 2100, - 3659, 20777, 2110, - 3659, 20777, 2112, - 3659, 20777, 2114, - 3659, 20777, 2116, - 3659, 20777, 2118, - 3659, 20777, 2230, - 3659, 20777, 2290, - 3659, 20777, 2392, - 3659, 20777, 2394, - 3659, 20777, 2396, - 3659, 20777, 2398, - 3659, 20777, 2400, - 3659, 20777, 2404, - 3659, 20777, 2456, - 3659, 20777, 2548, - 3659, 20777, 2550, - 3659, 20777, 2552, - 3659, 20777, 2554, - 3659, 20777, 2556, - 3659, 20777, 2558, - 3659, 20777, 2608, - 3659, 20777, 2610, - 3659, 20777, 2612, - 3659, 20777, 2614, - 3659, 20777, 2616, - 3659, 20777, 2636, - 3659, 20777, 2698, - 3659, 20777, 2702, - 3659, 20777, 2704, - 3659, 20777, 2706, - 3659, 20777, 2708, - 3659, 20777, 2772, - 3659, 20777, 2818, - 3659, 20777, 2864, - 3659, 20777, 3060, - 3659, 20777, 3110, - 3659, 20777, 3200, - 3659, 20777, 3212, - 3659, 20777, 3214, - 3659, 20777, 3216, - 3659, 20777, 3218, - 3659, 20777, 3220, - 3659, 20777, 3258, - 3659, 20777, 3406, - 3659, 20777, 3422, - 3659, 20777, 3424, - 3659, 20777, 3426, - 3659, 20777, 3428, - 3659, 20777, 3430, - 3659, 20777, 3470, - 3659, 20777, 3672, - 3659, 20777, 3702, - 3659, 20777, 3742, - 3659, 20777, 3758, - 3659, 20777, 3762, - 3659, 20777, 3774, - 3659, 20777, 3780, - 3659, 20777, 3782, - 3659, 20777, 3796, - 3659, 20777, 3916, - 3659, 20777, 3954, - 3659, 20777, 4034, - 3659, 20777, 4042, - 3659, 20777, 4044, - 3659, 20777, 4046, - 3659, 20777, 4048, - 3659, 20777, 4050, - 3659, 20777, 4074, - 3659, 20777, 6072, - 3659, 20777, 6074, - 3659, 20777, 6640, - 3659, 20777, 6642, - 3659, 20777, 6644, - 3659, 20777, 6646, - 3659, 20777, 6648, - 3659, 20777, 6650, - 3659, 20777, 6654, - 3659, 20777, 7214, - 3659, 20777, 7216, - 3659, 20777, 7220, - 3659, 20777, 7222, - 3659, 20777, 8144, - 3659, 20777, 8146, - 3659, 20777, 8148, - 3659, 20777, 8150, - 3659, 20777, 8824, - 3659, 20777, 8830, - 3659, 20777, 8886, - 3659, 20777, 8888, - 3659, 20777, 8890, - 3659, 20777, 8892, - 3659, 20777, 8894, - 3659, 20777, 9200, - 3659, 20777, 9218, - 3659, 20777, 9264, - 3659, 20777, 9278, - 3659, 20777, 9284, - 3659, 20777, 9286, - 3659, 20777, 9288, - 3659, 20777, 9290, - 3659, 20777, 9292, - 3659, 20777, 9306, - 3659, 20777, 9372, - 3659, 20777, 9382, - 3659, 20777, 9558, - 3659, 20777, 9588, - 3659, 20777, 10458, - 3659, 20777, 10492, - 3659, 20777, 10938, - 3659, 20777, 10958, - 3659, 20777, 11484, - 3659, 20777, 11534, - 3659, 20777, 11840, - 3659, 20777, 11852, - 3659, 20777, 13062, - 3659, 20777, 13064, - 3659, 20777, 13978, - 3659, 20777, 13982, - 3659, 20777, 14105, 168, - 3659, 20777, 14105, 228, - 3659, 20777, 14105, 358, - 3659, 20777, 14105, 426, - 3659, 20777, 14105, 3258, - 3659, 20777, 14122, - 3659, 20777, 14124, - 3659, 20777, 14128, - 3659, 20777, 22534, - 3781, 10574, - 3834, - 3921, 10574, - 3943, 11648, - 4102, - 5465, 10575, 14690, - 5465, 10575, 14911, 19056, - 5465, 10575, 16456, - 5465, 10575, 19056, - 5465, 13069, 2760, - 5465, 13069, 3240, - 5465, 13069, 3536, - 5465, 13069, 7036, - 5465, 13069, 7058, - 5465, 13069, 9358, - 5465, 13069, 11824, - 5465, 13069, 13150, - 5465, 13069, 14778, - 5465, 13069, 15116, - 5465, 15407, 10575, 0, - 5465, 15407, 10575, 8, - 5465, 15407, 10575, 16, - 5465, 15407, 10575, 28, - 5465, 15407, 10575, 40, - 5465, 15407, 10575, 58, - 5465, 15407, 10575, 72, - 5465, 15407, 10575, 80, - 5465, 15407, 10575, 100, - 5465, 15407, 10575, 314, - 5465, 15407, 10575, 706, - 5465, 16531, 0, - 5465, 16531, 108, - 5465, 16531, 126, - 5465, 16531, 150, - 5465, 16531, 248, - 5465, 16531, 272, - 5465, 16531, 344, - 5465, 16531, 358, - 5465, 16531, 394, - 5465, 16531, 426, - 5465, 16531, 466, - 5465, 16531, 548, - 5465, 16531, 598, - 5465, 16531, 614, - 5465, 16531, 648, - 5465, 16531, 1000, - 5465, 16531, 1116, - 5465, 16531, 1214, - 5465, 16531, 1236, - 5465, 16531, 1588, - 5465, 16531, 1918, - 5465, 16531, 2036, - 5465, 16531, 2278, - 5465, 16531, 2574, - 5465, 16531, 2624, - 5465, 16531, 2698, - 5465, 16531, 2830, - 5465, 16531, 3422, - 5465, 16531, 3502, - 5465, 16531, 6572, - 5465, 16531, 11082, - 5465, 16531, 21003, 108, - 5465, 16531, 21003, 248, - 5465, 16531, 21003, 648, - 5465, 16787, 3412, - 5465, 16787, 17474, - 5465, 17299, 720, - 5465, 21143, 10575, 16635, 394, - 5465, 21143, 10575, 16635, 598, - 5465, 21143, 10575, 16635, 20239, 598, - 5483, 17298, - 5510, - 5545, 17298, - 5549, 20588, - 5964, - 5965, 12372, - 5965, 12672, - 5965, 15824, - 5965, 17298, - 5967, 507, 19986, - 5967, 11513, 21557, 12415, 12318, - 5979, 507, 11650, - 5986, - 5996, - 6049, 6996, - 6055, 2470, - 6056, - 6057, 11513, 23781, 17264, - 6057, 16884, - 6057, 17298, - 6063, 12415, 20501, 21349, 10943, 14255, 6832, - 6082, - 6093, 6108, - 6093, 13470, - 6094, - 6101, 3241, 17211, 19574, - 6101, 7037, 17211, 19574, - 6101, 13151, 17211, 19574, - 6101, 13421, 12934, - 6101, 15453, 15938, - 6101, 15453, 17224, - 6101, 19032, - 6104, - 6106, - 6108, - 6115, 507, 18282, - 6115, 11513, 14948, - 6117, 17298, - 6143, 323, 22896, - 6149, 14437, 8808, - 6207, 3610, - 6213, 435, 7432, - 6223, 7021, 1036, - 6223, 13594, - 6223, 13595, 19814, - 6225, 506, - 6227, 20734, - 6251, 10574, - 6257, 10574, - 6263, 13069, 2760, - 6263, 13069, 3240, - 6263, 13069, 3536, - 6263, 13069, 7036, - 6263, 13069, 7058, - 6263, 13069, 9358, - 6263, 13069, 11824, - 6263, 13069, 13150, - 6263, 13069, 14778, - 6263, 13069, 15116, - 6263, 15407, 10575, 16, - 6263, 15407, 10575, 28, - 6263, 15407, 10575, 40, - 6263, 15407, 10575, 58, - 6263, 15407, 10575, 72, - 6263, 15407, 10575, 96, - 6263, 15407, 10575, 194, - 6263, 15407, 10575, 314, - 6263, 15407, 10575, 504, - 6263, 15407, 10575, 682, - 6263, 16531, 0, - 6263, 16531, 8, - 6263, 16531, 16, - 6263, 16531, 28, - 6263, 16531, 40, - 6263, 16531, 72, - 6263, 16531, 108, - 6263, 16531, 150, - 6263, 16531, 248, - 6263, 16531, 272, - 6263, 16531, 344, - 6263, 16531, 358, - 6263, 16531, 394, - 6263, 16531, 426, - 6263, 16531, 466, - 6263, 16531, 548, - 6263, 16531, 598, - 6263, 16531, 614, - 6263, 16531, 648, - 6263, 16531, 714, - 6263, 16531, 778, - 6263, 16531, 972, - 6263, 16531, 1000, - 6263, 16531, 1116, - 6263, 16531, 1214, - 6263, 16531, 1236, - 6263, 16531, 1588, - 6263, 16531, 1918, - 6263, 16531, 2036, - 6263, 16531, 2468, - 6263, 16531, 2574, - 6263, 16531, 2586, - 6263, 16531, 2672, - 6263, 16531, 2830, - 6263, 16531, 2874, - 6263, 16531, 3286, - 6263, 16531, 3422, - 6263, 16531, 6288, - 6263, 16531, 9320, - 6263, 16531, 9332, - 6263, 16531, 9334, - 6263, 16531, 13259, 12, - 6263, 16531, 13259, 20, - 6263, 16531, 13259, 22, - 6263, 16531, 13259, 26, - 6263, 16531, 13259, 30, - 6263, 16531, 13259, 34, - 6263, 16531, 13259, 38, - 6263, 16531, 13259, 48, - 6263, 16531, 13259, 134, - 6263, 16531, 13259, 474, - 6263, 16531, 13259, 634, - 6263, 21143, 10575, 394, - 6263, 21143, 10575, 598, - 6263, 21143, 10575, 738, - 6263, 21143, 10575, 778, - 6263, 21143, 10575, 13259, 14, - 6263, 21143, 10575, 13259, 24, - 6263, 21143, 10575, 13259, 474, - 6263, 23555, 13016, - 6263, 23555, 16095, 13016, - 6263, 23555, 17206, - 6263, 23555, 17435, 13016, - 6346, - 6350, - 6364, - 6371, 10184, - 6541, 14782, - 6541, 22954, - 6545, 11513, 8281, 17504, - 6545, 17298, - 6613, 16890, - 6616, - 6675, 8256, - 6684, - 6687, 2643, 13278, - 6687, 2643, 14576, - 6687, 2643, 16056, - 6687, 2643, 16057, 11513, 20587, 20353, 14890, - 6687, 2643, 17909, 93, 16642, - 6687, 2643, 17909, 93, 16761, 20758, - 6687, 2643, 17909, 93, 16761, 20759, 529, 13176, - 6687, 2643, 18912, - 6687, 2643, 18913, 529, 13176, - 6687, 2643, 19214, - 6687, 2643, 19215, 529, 13176, - 6691, 10574, - 6692, - 6699, 507, 14502, - 6701, 7031, 10856, - 6701, 10850, - 6701, 10851, 11513, 15939, 12502, - 6701, 14659, 19791, 19976, - 6701, 21022, - 6707, 507, 12536, - 6709, 11513, 22402, - 6712, - 6833, 17305, 12934, - 6861, 7057, 2760, - 6861, 7057, 3536, - 6879, 10574, - 6882, - 6997, 9822, - 6997, 11513, 487, 7337, 18198, - 6997, 11513, 515, 18198, - 6997, 11513, 2761, 18127, 17006, - 6997, 11513, 5973, 15281, 6882, - 6997, 11513, 6353, 15014, - 6997, 11513, 8353, 507, 19320, - 6997, 11513, 9783, 6883, 897, 7433, 9787, 14030, - 6997, 11513, 9783, 14030, - 6997, 11513, 9783, 14031, 897, 6353, 15014, - 6997, 11513, 9783, 14031, 20940, - 6997, 11513, 14485, 7671, 897, 14485, 1698, - 6997, 11513, 15063, 507, 1956, - 6997, 11513, 15981, 1698, - 6997, 11513, 16175, 19735, 15949, 8328, - 6997, 11513, 17501, 6883, 897, 11475, 14030, - 6997, 11513, 18603, 8814, - 6997, 11513, 18634, - 6997, 11513, 18831, 1432, - 6997, 11513, 19009, 6882, - 6997, 11513, 19791, 14030, - 6997, 11513, 20495, 6882, - 6997, 11513, 21917, 17430, - 6997, 11513, 21917, 17431, 897, 19441, 1432, - 6997, 11513, 21917, 17431, 897, 26179, 6882, - 6997, 11513, 23690, - 6997, 11513, 23856, - 6997, 18273, 5967, 15062, - 6997, 18588, - 6997, 19443, 14030, - 6997, 20833, 1, 8114, - 6997, 21831, 21177, 7048, - 6997, 21839, 323, 7004, - 7021, 16206, - 7021, 17828, - 7025, 16220, - 7025, 21764, - 7026, - 7027, 16118, - 7027, 23838, - 7030, - 7031, 6209, 11513, 15019, 16034, - 7037, 1291, 8808, - 7037, 1291, 23554, - 7039, 323, 7654, - 7041, 10488, - 7052, - 7055, 897, 13714, - 7055, 897, 13715, 11513, 14550, - 7059, 1291, 8808, - 7059, 1291, 23554, - 7059, 8277, 15952, - 7059, 15975, 15739, 19695, 24192, - 7059, 18889, 12525, 10690, - 7059, 23081, 19574, - 7059, 25987, 19574, - 7059, 28085, 19574, - 7063, 6996, - 7067, 9924, - 7073, 8981, 11513, 6996, - 7073, 8981, 17298, - 7073, 10696, - 7073, 12532, - 7073, 14457, 7904, - 7078, - 7080, - 7082, - 7084, - 7086, - 7205, 1248, - 7232, - 7233, 11513, 18248, - 7233, 19443, 1798, - 7243, 8808, - 7324, - 7329, 2568, - 7330, - 7347, 13470, - 7425, 9870, - 7425, 14932, - 7433, 11513, 13595, 897, 16661, 18151, 17930, - 7433, 11513, 13595, 16175, 897, 15119, 17930, - 7437, 6672, - 7438, - 7467, 17298, - 7472, - 7521, 19423, 10574, - 7521, 22209, 17298, - 7654, - 7658, - 7904, - 7916, - 8019, 10575, 14334, - 8019, 10575, 14644, - 8019, 10575, 16456, - 8019, 10575, 19408, - 8019, 10575, 19540, - 8019, 10575, 23070, - 8019, 13016, - 8019, 13069, 2760, - 8019, 13069, 3240, - 8019, 13069, 3536, - 8019, 13069, 7036, - 8019, 13069, 7058, - 8019, 13069, 9358, - 8019, 13069, 11824, - 8019, 13069, 13150, - 8019, 13069, 14778, - 8019, 13069, 15116, - 8019, 15407, 10575, 8, - 8019, 15407, 10575, 16, - 8019, 15407, 10575, 40, - 8019, 15407, 10575, 58, - 8019, 15407, 10575, 72, - 8019, 15407, 10575, 218, - 8019, 15407, 10575, 314, - 8019, 15407, 10575, 706, - 8019, 15407, 10575, 19415, 34, - 8019, 15407, 10575, 21003, 58, - 8019, 16095, 13016, - 8019, 16531, 0, - 8019, 16531, 8, - 8019, 16531, 16, - 8019, 16531, 28, - 8019, 16531, 40, - 8019, 16531, 58, - 8019, 16531, 72, - 8019, 16531, 108, - 8019, 16531, 126, - 8019, 16531, 150, - 8019, 16531, 248, - 8019, 16531, 272, - 8019, 16531, 314, - 8019, 16531, 344, - 8019, 16531, 358, - 8019, 16531, 394, - 8019, 16531, 426, - 8019, 16531, 466, - 8019, 16531, 548, - 8019, 16531, 598, - 8019, 16531, 614, - 8019, 16531, 648, - 8019, 16531, 706, - 8019, 16531, 738, - 8019, 16531, 778, - 8019, 16531, 1000, - 8019, 16531, 1116, - 8019, 16531, 1214, - 8019, 16531, 1236, - 8019, 16531, 1588, - 8019, 16531, 1918, - 8019, 16531, 2036, - 8019, 16531, 2574, - 8019, 16531, 2624, - 8019, 16531, 2698, - 8019, 16531, 2830, - 8019, 16531, 3212, - 8019, 16531, 3286, - 8019, 16531, 3422, - 8019, 16531, 3502, - 8019, 16531, 6572, - 8019, 16531, 7902, - 8019, 16531, 11082, - 8019, 16531, 19415, 22, - 8019, 16531, 19415, 34, - 8019, 16531, 19415, 406, - 8019, 16531, 19415, 608, - 8019, 21138, - 8019, 23555, 1290, - 8019, 23555, 14933, 16172, - 8019, 23555, 15938, - 8019, 23555, 16095, 1290, - 8019, 23555, 16171, 15938, - 8019, 23555, 16200, - 8019, 23555, 17206, - 8019, 23555, 17435, 1290, - 8019, 23555, 17889, 17206, - 8019, 23555, 19057, 16614, - 8019, 23555, 21003, 19057, 16614, - 8114, - 8115, 8808, - 8116, - 8120, - 8243, 15796, - 8263, 10574, - 8265, 18951, 8980, - 8265, 18951, 8981, 11513, 6996, - 8265, 18951, 8981, 17298, - 8277, 22453, 323, 11504, - 8281, 897, 13839, 897, 14659, 22983, 15117, 20547, 12532, - 8281, 897, 13839, 2761, 16107, 12532, - 8281, 897, 14659, 10850, - 8281, 897, 14659, 16095, 22078, - 8281, 897, 14659, 22983, 7429, 12532, - 8281, 897, 15287, 897, 14659, 22983, 15117, 20547, 12532, - 8281, 897, 15287, 2761, 16107, 12532, - 8281, 897, 15287, 2761, 16107, 12533, 22239, 12525, 14911, 17224, - 8281, 917, 21559, 17810, - 8281, 2301, 22749, 17810, - 8281, 2761, 15109, 12532, - 8281, 2761, 16107, 12532, - 8281, 2761, 18951, 12532, - 8281, 3537, 17371, 12532, - 8281, 5989, 699, 14659, 5989, 699, 18252, - 8281, 5989, 699, 14659, 5989, 6701, 18252, - 8281, 5989, 6701, 14659, 5989, 699, 18252, - 8281, 5989, 6701, 14659, 5989, 6701, 18252, - 8281, 7031, 10856, - 8281, 7037, 18099, 12532, - 8281, 7429, 12525, 10690, - 8281, 7429, 12525, 15938, - 8281, 7429, 12532, - 8281, 7429, 13839, 2761, 18951, 12532, - 8281, 7429, 15287, 2761, 18951, 12532, - 8281, 7429, 15453, 18108, - 8281, 7429, 15938, - 8281, 7429, 15939, 11513, 1290, - 8281, 7429, 15939, 11513, 3537, 6696, - 8281, 7429, 15939, 11513, 7059, 6696, - 8281, 7429, 15939, 11513, 15117, 6696, - 8281, 7429, 16203, 17076, - 8281, 7429, 16206, - 8281, 7429, 16637, 14782, - 8281, 7429, 17435, 6545, 22494, - 8281, 7429, 18307, 16637, 14783, 897, 14659, 7429, 12532, - 8281, 7429, 19023, 2368, - 8281, 7429, 22495, 8321, 11513, 15117, 10985, 13924, - 8281, 7433, 22031, 20556, - 8281, 10850, - 8281, 12375, 15850, - 8281, 12379, 17810, - 8281, 12379, 17811, 11513, 1290, - 8281, 12415, 11513, 14911, 15938, - 8281, 12415, 11513, 17881, 9904, - 8281, 12525, 20847, 14811, 17810, - 8281, 12525, 22537, 17810, - 8281, 12941, 17810, - 8281, 12941, 17811, 13839, 7658, - 8281, 12941, 17811, 15287, 7658, - 8281, 12941, 17811, 16661, 14532, - 8281, 13270, - 8281, 14457, 7904, - 8281, 14659, 11473, 12414, - 8281, 14659, 12414, - 8281, 14659, 12415, 11513, 16095, 20933, 17264, - 8281, 14659, 12415, 11513, 17264, - 8281, 14659, 12415, 11513, 20933, 17264, - 8281, 14659, 12415, 19281, 14911, 15938, - 8281, 14659, 12525, 12414, - 8281, 14659, 15453, 12414, - 8281, 14659, 16095, 12414, - 8281, 14659, 16095, 12415, 11513, 17264, - 8281, 14659, 16095, 12415, 11513, 20933, 17264, - 8281, 14659, 22841, 12414, - 8281, 14659, 23503, 12414, - 8281, 14659, 28089, 12414, - 8281, 14779, 18099, 12532, - 8281, 15109, 15453, 14659, 20501, 13594, - 8281, 15109, 20150, - 8281, 15117, 18099, 12532, - 8281, 15117, 20547, 12532, - 8281, 15117, 20547, 13839, 2761, 18951, 12532, - 8281, 15117, 20547, 15287, 2761, 18951, 12532, - 8281, 15453, 12941, 17810, - 8281, 15453, 15975, 17810, - 8281, 15453, 17225, 17810, - 8281, 15453, 20847, 14811, 17810, - 8281, 15453, 22537, 17810, - 8281, 15453, 23522, - 8281, 15949, 13166, - 8281, 15975, 17810, - 8281, 16093, 24149, 17810, - 8281, 16095, 12379, 17810, - 8281, 16095, 17571, 13246, - 8281, 16095, 21779, 8808, - 8281, 16095, 23522, - 8281, 16761, 16151, 22851, 18932, - 8281, 17007, 20401, 17810, - 8281, 17171, 21779, 8808, - 8281, 17203, 15850, - 8281, 17225, 17810, - 8281, 17225, 17811, 11513, 10985, 323, 3473, 15974, - 8281, 17225, 17811, 11513, 10985, 323, 15827, 15974, - 8281, 17225, 17811, 11513, 14600, - 8281, 17225, 17811, 11513, 16095, 17264, - 8281, 17225, 17811, 11513, 17264, - 8281, 17225, 17811, 11513, 20920, - 8281, 17225, 17811, 13839, 15974, - 8281, 17225, 17811, 15287, 15974, - 8281, 17225, 17811, 21382, - 8281, 17571, 13246, - 8281, 17848, - 8281, 18536, - 8281, 19277, 15850, - 8281, 19451, 7432, - 8281, 20338, - 8281, 20601, 955, 21178, - 8281, 20659, 41, 17810, - 8281, 20847, 14811, 17810, - 8281, 20859, 15805, 20933, 964, - 8281, 20933, 965, 11513, 14600, - 8281, 20933, 1037, 8320, - 8281, 21527, 14659, 7429, 12525, 15938, - 8281, 21527, 14659, 7429, 15453, 15938, - 8281, 22851, 18932, - 8281, 22983, 2761, 18951, 12532, - 8281, 23522, - 8281, 23523, 13839, 7658, - 8281, 23523, 15287, 7658, - 8281, 23523, 21382, - 8281, 24149, 17810, - 8281, 25959, 17810, - 8321, 21850, - 8321, 23277, 2643, 21493, 3425, 9906, - 8321, 23277, 11513, 23573, 9833, 15733, 9906, - 8321, 23277, 11513, 24089, 9833, 15733, 9906, - 8325, 17298, - 8327, 6996, - 8328, - 8331, 10574, - 8335, 16531, 0, - 8335, 16531, 8, - 8335, 16531, 16, - 8335, 16531, 28, - 8335, 16531, 40, - 8335, 16531, 66, - 8335, 16531, 108, - 8335, 16531, 126, - 8335, 16531, 150, - 8335, 16531, 218, - 8335, 16531, 228, - 8335, 16531, 248, - 8335, 16531, 272, - 8335, 16531, 344, - 8335, 16531, 358, - 8335, 16531, 394, - 8335, 16531, 426, - 8335, 16531, 466, - 8335, 16531, 504, - 8335, 16531, 548, - 8335, 16531, 614, - 8335, 16531, 648, - 8335, 16531, 682, - 8335, 16531, 684, - 8335, 16531, 738, - 8335, 16531, 762, - 8335, 16531, 778, - 8335, 16531, 796, - 8335, 16531, 1116, - 8335, 16531, 1330, - 8335, 16531, 1588, - 8335, 16531, 1722, - 8335, 16531, 2036, - 8335, 16531, 2574, - 8335, 16531, 2830, - 8335, 16531, 3212, - 8335, 16531, 3422, - 8335, 16531, 3488, - 8335, 16531, 3930, - 8335, 16531, 4042, - 8335, 16531, 11033, 467, 566, - 8335, 16531, 11033, 2501, 118, - 8335, 16531, 11033, 2501, 466, - 8335, 16531, 11033, 2501, 656, - 8335, 16531, 11033, 2501, 1180, - 8335, 16531, 11033, 2501, 1916, - 8335, 16531, 11058, - 8335, 23555, 7073, 10696, - 8335, 23555, 12922, - 8344, - 8345, 11513, 1881, 2822, - 8351, 6545, 7065, 8281, 16643, 507, 16095, 20932, - 8351, 6708, - 8351, 8281, 10850, - 8351, 8281, 14659, 12414, - 8351, 8281, 14659, 16095, 12414, - 8351, 14659, 10850, - 8351, 19816, - 8351, 21557, 12414, - 8351, 21557, 12415, 7065, 964, - 8351, 21557, 16095, 12414, - 8351, 21557, 16095, 12415, 7065, 964, - 8351, 21557, 20701, 12414, - 8351, 22837, 12414, - 8351, 22837, 12415, 7065, 964, - 8351, 22837, 16095, 12414, - 8351, 22837, 16095, 12415, 7065, 964, - 8351, 22837, 20701, 12414, - 8363, 13538, - 8363, 16530, - 8798, - 8801, 897, 16159, 10574, - 8801, 10574, - 8801, 11513, 17265, 897, 8801, 897, 16159, 10574, - 8801, 11513, 17265, 10574, - 8805, 10488, - 8815, 11539, 17298, - 8817, 8808, - 8819, 13104, - 8847, 521, 6106, - 8856, - 8859, 17298, - 8933, 10575, 20563, 19416, - 8933, 10575, 20563, 22186, - 8933, 10575, 21143, 20319, 964, - 8933, 10575, 22186, - 8933, 11033, 3473, 14658, - 8933, 11033, 12318, - 8933, 11033, 12502, - 8933, 11033, 14658, - 8933, 15407, 10575, 0, - 8933, 15407, 10575, 8, - 8933, 15407, 10575, 16, - 8933, 15407, 10575, 26, - 8933, 15407, 10575, 28, - 8933, 15407, 10575, 40, - 8933, 15407, 10575, 44, - 8933, 15407, 10575, 48, - 8933, 15407, 10575, 58, - 8933, 15407, 10575, 66, - 8933, 15407, 10575, 72, - 8933, 15407, 10575, 82, - 8933, 15407, 10575, 96, - 8933, 15407, 10575, 178, - 8933, 15407, 10575, 194, - 8933, 15407, 10575, 204, - 8933, 15407, 10575, 212, - 8933, 15407, 10575, 298, - 8933, 15407, 10575, 306, - 8933, 15407, 10575, 310, - 8933, 15407, 10575, 314, - 8933, 15407, 10575, 324, - 8933, 15407, 10575, 336, - 8933, 15407, 10575, 474, - 8933, 15407, 10575, 508, - 8933, 15407, 10575, 522, - 8933, 15407, 10575, 534, - 8933, 15407, 10575, 674, - 8933, 15407, 10575, 686, - 8933, 15407, 10575, 706, - 8933, 15407, 10575, 730, - 8933, 15407, 10575, 754, - 8933, 15407, 10575, 782, - 8933, 15407, 10575, 856, - 8933, 15407, 10575, 876, - 8933, 15407, 10575, 898, - 8933, 15407, 10575, 1394, - 8933, 15407, 10575, 1408, - 8933, 15407, 10575, 1854, - 8933, 15407, 10575, 1876, - 8933, 15407, 10575, 2744, - 8933, 15407, 10575, 2746, - 8933, 15407, 10575, 3574, - 8933, 15407, 10575, 3584, - 8933, 15407, 10575, 3612, - 8933, 15407, 10575, 3620, - 8933, 15407, 10575, 3972, - 8933, 15407, 10575, 7786, - 8933, 15407, 10575, 7816, - 8933, 15407, 10575, 11238, - 8933, 15407, 10575, 19019, 212, - 8933, 15407, 10575, 19019, 1408, - 8933, 16531, 70, - 8933, 16531, 108, - 8933, 16531, 150, - 8933, 16531, 228, - 8933, 16531, 248, - 8933, 16531, 272, - 8933, 16531, 358, - 8933, 16531, 394, - 8933, 16531, 426, - 8933, 16531, 466, - 8933, 16531, 548, - 8933, 16531, 582, - 8933, 16531, 614, - 8933, 16531, 648, - 8933, 16531, 652, - 8933, 16531, 714, - 8933, 16531, 738, - 8933, 16531, 762, - 8933, 16531, 783, 358, - 8933, 16531, 783, 548, - 8933, 16531, 783, 648, - 8933, 16531, 783, 2624, - 8933, 16531, 783, 3488, - 8933, 16531, 783, 3502, - 8933, 16531, 783, 6740, - 8933, 16531, 783, 11058, - 8933, 16531, 796, - 8933, 16531, 1042, - 8933, 16531, 1214, - 8933, 16531, 1330, - 8933, 16531, 1588, - 8933, 16531, 1722, - 8933, 16531, 2248, - 8933, 16531, 2346, - 8933, 16531, 2424, - 8933, 16531, 2574, - 8933, 16531, 2586, - 8933, 16531, 2624, - 8933, 16531, 2698, - 8933, 16531, 2854, - 8933, 16531, 2940, - 8933, 16531, 3128, - 8933, 16531, 3212, - 8933, 16531, 3286, - 8933, 16531, 3338, - 8933, 16531, 3488, - 8933, 16531, 3490, - 8933, 16531, 3502, - 8933, 16531, 3684, - 8933, 16531, 4042, - 8933, 16531, 4084, - 8933, 16531, 4112, - 8933, 16531, 6680, - 8933, 16531, 6740, - 8933, 16531, 6748, - 8933, 16531, 6750, - 8933, 16531, 7300, - 8933, 16531, 8302, - 8933, 16531, 9294, - 8933, 16531, 9420, - 8933, 16531, 9566, - 8933, 16531, 11008, - 8933, 16531, 11058, - 8933, 16531, 11066, - 8933, 16531, 11890, - 8933, 16531, 11930, - 8933, 16531, 11938, - 8933, 16531, 13086, - 8933, 16531, 15166, - 8933, 16531, 15640, - 8933, 16531, 17402, - 8933, 16531, 17404, - 8933, 16531, 17406, - 8933, 16531, 17408, - 8933, 16531, 17410, - 8933, 16531, 17412, - 8933, 16531, 17414, - 8933, 16531, 17709, 426, - 8933, 16531, 17709, 466, - 8933, 16531, 17709, 2574, - 8933, 16531, 17709, 4112, - 8933, 16531, 20563, 11058, - 8933, 16531, 20563, 17400, - 8933, 16531, 20563, 17402, - 8933, 16531, 20563, 17406, - 8933, 16531, 20563, 17408, - 8933, 16531, 20563, 17410, - 8933, 16531, 20563, 17414, - 8933, 16531, 23918, - 8935, 521, 705, 17298, - 8935, 6545, 17298, - 8949, 10574, - 8952, - 8956, - 8975, 10575, 7706, - 8975, 10575, 17534, - 8975, 10575, 19408, - 8975, 10575, 19540, - 8975, 10575, 23052, - 8975, 13016, - 8975, 13069, 2760, - 8975, 13069, 3240, - 8975, 13069, 3536, - 8975, 13069, 7036, - 8975, 13069, 7058, - 8975, 13069, 9358, - 8975, 13069, 11824, - 8975, 13069, 13150, - 8975, 13069, 14778, - 8975, 13069, 15116, - 8975, 15407, 10575, 8, - 8975, 15407, 10575, 16, - 8975, 15407, 10575, 28, - 8975, 15407, 10575, 40, - 8975, 15407, 10575, 58, - 8975, 15407, 10575, 72, - 8975, 15407, 10575, 96, - 8975, 15407, 10575, 314, - 8975, 15407, 10575, 706, - 8975, 15407, 10575, 19415, 22, - 8975, 15407, 10575, 19415, 34, - 8975, 15407, 10575, 19415, 406, - 8975, 15407, 10575, 19415, 608, - 8975, 16095, 13016, - 8975, 16531, 0, - 8975, 16531, 8, - 8975, 16531, 16, - 8975, 16531, 28, - 8975, 16531, 40, - 8975, 16531, 58, - 8975, 16531, 72, - 8975, 16531, 96, - 8975, 16531, 108, - 8975, 16531, 126, - 8975, 16531, 150, - 8975, 16531, 248, - 8975, 16531, 272, - 8975, 16531, 314, - 8975, 16531, 344, - 8975, 16531, 358, - 8975, 16531, 394, - 8975, 16531, 426, - 8975, 16531, 466, - 8975, 16531, 548, - 8975, 16531, 598, - 8975, 16531, 614, - 8975, 16531, 648, - 8975, 16531, 706, - 8975, 16531, 714, - 8975, 16531, 778, - 8975, 16531, 1000, - 8975, 16531, 1116, - 8975, 16531, 1214, - 8975, 16531, 1236, - 8975, 16531, 1588, - 8975, 16531, 1918, - 8975, 16531, 2036, - 8975, 16531, 2278, - 8975, 16531, 2574, - 8975, 16531, 2624, - 8975, 16531, 2698, - 8975, 16531, 2830, - 8975, 16531, 3212, - 8975, 16531, 3286, - 8975, 16531, 3422, - 8975, 16531, 3502, - 8975, 16531, 6572, - 8975, 16531, 11082, - 8975, 16531, 19415, 22, - 8975, 16531, 19415, 34, - 8975, 16531, 19415, 406, - 8975, 16531, 19415, 608, - 8975, 23737, 10574, - 8979, 15850, - 8981, 6208, - 8981, 16510, - 8981, 19403, 19666, - 8999, 21558, - 8999, 23852, - 9137, 16948, - 9141, 12456, - 9144, - 9172, - 9251, 6996, - 9253, 11513, 6836, - 9255, 518, - 9255, 1545, 16172, - 9255, 10575, 13259, 19540, - 9255, 10575, 14334, - 9255, 10575, 17534, - 9255, 10575, 19408, - 9255, 10575, 19540, - 9255, 10575, 19586, - 9255, 10575, 23070, - 9255, 10575, 23288, - 9255, 10575, 23722, - 9255, 12922, - 9255, 13016, - 9255, 13069, 2760, - 9255, 13069, 3240, - 9255, 13069, 3536, - 9255, 13069, 7036, - 9255, 13069, 7058, - 9255, 13069, 9358, - 9255, 13069, 11824, - 9255, 13069, 13150, - 9255, 13069, 14778, - 9255, 13069, 15116, - 9255, 15407, 10575, 8, - 9255, 15407, 10575, 16, - 9255, 15407, 10575, 28, - 9255, 15407, 10575, 40, - 9255, 15407, 10575, 58, - 9255, 15407, 10575, 72, - 9255, 15407, 10575, 96, - 9255, 15407, 10575, 314, - 9255, 15407, 10575, 706, - 9255, 15407, 10575, 19415, 22, - 9255, 15407, 10575, 19415, 34, - 9255, 15407, 10575, 19415, 406, - 9255, 15407, 10575, 19415, 608, - 9255, 16095, 12922, - 9255, 16095, 13016, - 9255, 16531, 0, - 9255, 16531, 8, - 9255, 16531, 16, - 9255, 16531, 28, - 9255, 16531, 40, - 9255, 16531, 58, - 9255, 16531, 72, - 9255, 16531, 96, - 9255, 16531, 108, - 9255, 16531, 126, - 9255, 16531, 150, - 9255, 16531, 248, - 9255, 16531, 272, - 9255, 16531, 314, - 9255, 16531, 344, - 9255, 16531, 358, - 9255, 16531, 394, - 9255, 16531, 426, - 9255, 16531, 466, - 9255, 16531, 548, - 9255, 16531, 598, - 9255, 16531, 614, - 9255, 16531, 648, - 9255, 16531, 706, - 9255, 16531, 738, - 9255, 16531, 778, - 9255, 16531, 1000, - 9255, 16531, 1116, - 9255, 16531, 1214, - 9255, 16531, 1236, - 9255, 16531, 1588, - 9255, 16531, 1918, - 9255, 16531, 2036, - 9255, 16531, 2248, - 9255, 16531, 2424, - 9255, 16531, 2574, - 9255, 16531, 2586, - 9255, 16531, 2624, - 9255, 16531, 2698, - 9255, 16531, 2830, - 9255, 16531, 3074, - 9255, 16531, 3212, - 9255, 16531, 3286, - 9255, 16531, 3422, - 9255, 16531, 3502, - 9255, 16531, 6572, - 9255, 16531, 9294, - 9255, 16531, 9566, - 9255, 16531, 11082, - 9255, 16531, 15387, 19540, - 9255, 16531, 19415, 22, - 9255, 16531, 19415, 34, - 9255, 16531, 19415, 406, - 9255, 16531, 19415, 608, - 9255, 17069, 8808, - 9255, 17164, - 9255, 21507, 10574, - 9255, 23549, 8808, - 9255, 23737, 10574, - 9257, 9818, - 9359, 18889, 15453, 10690, - 9440, - 9442, - 9443, 2790, - 9443, 9818, - 9762, - 9783, 1036, - 9783, 6108, - 9783, 7021, 16206, - 9783, 8344, - 9783, 13459, 10574, - 9783, 15901, 12525, 10690, - 9783, 15901, 12934, - 9783, 15901, 19574, - 9783, 15901, 28085, 19574, - 9783, 16206, - 9783, 17272, - 9783, 18553, 11513, 17007, 7038, - 9783, 18553, 11513, 18533, 7038, - 9783, 20764, - 9818, - 9819, 11513, 6376, - 9819, 11513, 17881, 10920, - 9819, 16149, 698, - 9823, 699, 7432, - 9823, 6701, 7432, - 9823, 11046, - 9823, 15836, - 9831, 23043, 8808, - 9838, - 9847, 10574, - 9870, - 9881, 507, 2864, - 9882, - 9885, 22264, - 9889, 13470, - 9905, 10574, - 9905, 10575, 323, 8281, 7429, 15938, - 9905, 10575, 323, 14659, 7429, 15938, - 9905, 10575, 323, 20858, - 9905, 10575, 11513, 1291, 12502, - 9905, 10575, 11513, 12525, 20858, - 9905, 10575, 11513, 14911, 15939, 12318, - 9905, 10575, 11513, 15141, 12318, - 9905, 10575, 11513, 15141, 12502, - 9905, 10575, 11513, 21927, 3536, - 9905, 10575, 11513, 22223, 15679, 12318, - 9905, 10575, 12319, 16121, 10574, - 10092, - 10143, 10574, - 10145, 5978, - 10145, 17926, - 10150, - 10151, 323, 13177, 660, - 10151, 6134, - 10151, 12318, - 10151, 13177, 660, - 10151, 14558, - 10151, 20406, - 10174, - 10177, 507, 14482, - 10185, 22098, - 10186, - 10243, 13069, 2760, - 10243, 13069, 3240, - 10243, 13069, 3536, - 10243, 13069, 7036, - 10243, 13069, 7058, - 10243, 13069, 9358, - 10243, 13069, 13150, - 10243, 13069, 14778, - 10243, 13069, 15116, - 10243, 16787, 2761, 18280, - 10243, 16787, 3241, 18280, - 10243, 16787, 3412, - 10243, 16787, 3537, 18280, - 10243, 16787, 7037, 18280, - 10243, 16787, 7059, 18280, - 10243, 16787, 9359, 18280, - 10243, 16787, 13151, 18280, - 10243, 16787, 13254, - 10243, 16787, 13284, - 10243, 16787, 14779, 18280, - 10243, 16787, 14876, - 10243, 16787, 15117, 18280, - 10243, 16787, 16108, - 10243, 16787, 16744, - 10243, 16787, 17372, - 10243, 16787, 17474, - 10243, 16787, 19070, - 10243, 20055, 2761, 7428, - 10243, 20055, 2761, 15108, - 10243, 20055, 2761, 18950, - 10243, 20055, 3537, 17370, - 10383, 15825, 897, 1164, - 10387, 17120, - 10394, - 10414, - 10416, - 10480, - 10575, 507, 3425, 13534, - 10585, 11472, - 10600, - 10603, 18542, - 10611, 15883, 20332, - 10629, 1857, 12930, - 10629, 14811, 16197, 6672, - 10629, 16358, - 10633, 11513, 22837, 12415, 12318, - 10635, 19143, 13069, 2760, - 10635, 19143, 13069, 3240, - 10635, 19143, 13069, 3536, - 10635, 19143, 13069, 7036, - 10635, 19143, 13069, 7058, - 10635, 19143, 13069, 9358, - 10635, 19143, 13069, 11824, - 10635, 19143, 13069, 13150, - 10635, 19143, 13069, 14778, - 10635, 19143, 13069, 15116, - 10635, 19143, 16531, 70, - 10635, 19143, 16531, 192, - 10635, 19143, 16531, 312, - 10635, 19143, 16531, 510, - 10635, 19143, 16531, 684, - 10635, 19143, 16531, 956, - 10635, 19143, 16531, 1078, - 10635, 19143, 16531, 1196, - 10635, 19143, 16531, 1362, - 10635, 19143, 16531, 1534, - 10635, 19143, 16531, 1682, - 10635, 19143, 16531, 1904, - 10635, 19143, 16531, 1990, - 10635, 19143, 16531, 2196, - 10635, 19143, 16531, 2362, - 10635, 19143, 16531, 2364, - 10635, 19143, 16531, 2518, - 10635, 19143, 16531, 2792, - 10635, 19143, 16531, 3036, - 10635, 19143, 16531, 3178, - 10635, 19143, 16531, 3372, - 10635, 19143, 16531, 3656, - 10635, 19143, 16531, 3882, - 10635, 19143, 16531, 9260, - 10635, 19143, 16531, 9548, - 10691, 507, 13028, - 10691, 897, 19738, - 10691, 11513, 8281, 7429, 12524, - 10691, 11513, 14659, 7429, 12524, - 10691, 16120, - 10691, 20406, - 10744, - 10852, - 10871, 13106, - 10871, 21090, - 10876, - 10906, - 10913, 11114, - 10925, 13069, 2760, - 10925, 13069, 3240, - 10925, 13069, 3536, - 10925, 13069, 7036, - 10925, 13069, 7058, - 10925, 13069, 9358, - 10925, 13069, 11824, - 10925, 13069, 13150, - 10925, 13069, 14778, - 10925, 13069, 15116, - 10925, 19753, 17299, 5974, - 10925, 21101, 29, 898, - 10925, 21101, 119, 15768, - 10925, 21101, 169, 1228, - 10925, 21101, 169, 12650, - 10925, 21101, 241, 228, - 10925, 21101, 241, 1446, - 10925, 21101, 289, 1738, - 10925, 21101, 289, 16756, - 10925, 21101, 375, 1992, - 10925, 21101, 413, 8322, - 10925, 21101, 413, 12686, - 10925, 21101, 416, - 10925, 21101, 447, 426, - 10925, 21101, 487, 490, - 10925, 21101, 487, 2562, - 10925, 21101, 567, 2854, - 10925, 21101, 607, 3130, - 10925, 21101, 610, - 10925, 21101, 629, 628, - 10925, 21101, 629, 3302, - 10925, 21101, 629, 10250, - 10925, 21101, 629, 10384, - 10925, 21101, 661, 3382, - 10925, 21101, 661, 14494, - 10925, 21101, 755, 11464, - 10925, 21101, 787, 3886, - 10925, 21101, 787, 11700, - 10925, 21101, 1123, 6264, - 10925, 21101, 1123, 6298, - 10925, 21101, 1123, 12654, - 10925, 21101, 1123, 12680, - 10925, 21101, 2043, 8056, - 10925, 21101, 2043, 8076, - 10925, 21101, 2043, 13696, - 10925, 21101, 2043, 13700, - 10925, 21101, 2043, 18968, - 10925, 21101, 2367, 198, - 10925, 21101, 2367, 3428, - 10925, 21101, 2367, 3486, - 10925, 21101, 2367, 19670, - 10925, 21101, 2367, 20092, - 10925, 21101, 2583, 2584, - 10925, 21101, 2837, 9858, - 10925, 21101, 2837, 14528, - 10925, 21101, 2837, 19034, - 10925, 21101, 3429, 10932, - 10925, 21101, 3429, 15112, - 10925, 21101, 3429, 15120, - 10925, 21101, 3429, 17364, - 10925, 21101, 3429, 18864, - 10925, 21101, 3429, 22598, - 10925, 21101, 10393, 0, - 10925, 21101, 10393, 8, - 10925, 21101, 10393, 16, - 10925, 21101, 10393, 28, - 10925, 21101, 10393, 40, - 10925, 21101, 10393, 58, - 10925, 21101, 10393, 66, - 10925, 21101, 10393, 73, 18554, - 10925, 21101, 10393, 73, 20266, - 10925, 21101, 10393, 80, - 10925, 21101, 10393, 314, - 10925, 21101, 10393, 682, - 10925, 21101, 10393, 706, - 10925, 21101, 10393, 3582, - 10925, 21101, 16448, - 10925, 21101, 18166, - 10925, 21101, 18862, - 10925, 21101, 20268, - 10925, 21101, 20366, - 10925, 21101, 20962, - 10925, 21101, 21572, - 10925, 21101, 21710, - 10925, 21101, 22158, - 10925, 21101, 23298, - 10925, 21101, 23686, - 10951, 13421, 12934, - 10951, 14932, - 10951, 19032, - 10998, - 10999, 3537, 6697, 9787, 2761, 1291, 23554, - 11039, 10575, 17037, 11032, - 11039, 16531, 0, - 11039, 16531, 8, - 11039, 16531, 16, - 11039, 16531, 28, - 11039, 16531, 40, - 11039, 16531, 66, - 11039, 16531, 108, - 11039, 16531, 150, - 11039, 16531, 206, - 11039, 16531, 248, - 11039, 16531, 272, - 11039, 16531, 336, - 11039, 16531, 344, - 11039, 16531, 358, - 11039, 16531, 394, - 11039, 16531, 426, - 11039, 16531, 466, - 11039, 16531, 548, - 11039, 16531, 598, - 11039, 16531, 614, - 11039, 16531, 648, - 11039, 16531, 738, - 11039, 16531, 778, - 11039, 16531, 1116, - 11039, 16531, 2574, - 11039, 16531, 17817, 8, - 11039, 16531, 17817, 16, - 11039, 16531, 17817, 66, - 11039, 16531, 17817, 206, - 11039, 16531, 17817, 336, - 11040, - 11041, 1088, - 11050, - 11051, 13807, 8981, 5530, - 11257, 17298, - 11371, 6101, 13421, 12934, - 11371, 8999, 21558, - 11371, 8999, 23852, - 11371, 13473, 3241, 17211, 19574, - 11371, 13473, 7037, 17211, 19574, - 11371, 13473, 13151, 17211, 19574, - 11371, 13473, 13151, 18889, 12525, 10690, - 11371, 13473, 13421, 12934, - 11371, 13473, 15453, 15938, - 11371, 13473, 15453, 17224, - 11371, 13473, 18999, 19140, - 11371, 13473, 19032, - 11371, 13473, 19140, - 11473, 6544, - 11473, 12415, 20501, 19807, 8280, - 11473, 12415, 20501, 19807, 14658, - 11475, 2301, 8320, - 11475, 6544, - 11475, 8320, - 11475, 20422, - 11489, 17305, 12934, - 11505, 12678, - 11505, 17797, 6996, - 11507, 13392, - 11508, - 11529, 6996, - 11530, - 11537, 16402, - 11537, 21851, 16661, 1290, - 11540, - 11825, 15459, 14932, - 11825, 15459, 16402, - 11825, 15459, 20373, 14932, - 11825, 15459, 22608, - 11828, - 11898, - 11900, - 12321, 12378, - 12321, 15678, - 12325, 5487, 22534, - 12325, 13069, 2760, - 12325, 13069, 3240, - 12325, 13069, 3536, - 12325, 13069, 7036, - 12325, 13069, 7058, - 12325, 13069, 9358, - 12325, 13069, 11824, - 12325, 13069, 13150, - 12325, 13069, 14778, - 12325, 13069, 15116, - 12325, 13456, - 12325, 14334, - 12325, 14911, 16531, 8, - 12325, 14911, 16531, 16, - 12325, 14911, 16531, 28, - 12325, 14911, 16531, 40, - 12325, 14911, 16531, 108, - 12325, 14911, 16531, 228, - 12325, 14911, 16531, 248, - 12325, 14911, 16531, 272, - 12325, 14911, 16531, 554, - 12325, 14911, 16531, 598, - 12325, 14911, 16531, 668, - 12325, 14911, 16531, 714, - 12325, 14911, 16531, 778, - 12325, 14911, 16531, 1002, - 12325, 14911, 16531, 1120, - 12325, 14911, 16531, 1236, - 12325, 14911, 16531, 1556, - 12325, 14911, 16531, 1988, - 12325, 14911, 16531, 2036, - 12325, 14911, 16531, 2116, - 12325, 14911, 16531, 2586, - 12325, 14911, 16531, 2676, - 12325, 14911, 16531, 2698, - 12325, 14911, 16531, 3212, - 12325, 14911, 16531, 3750, - 12325, 14911, 16531, 3932, - 12325, 14911, 16531, 4024, - 12325, 14911, 16531, 5486, - 12325, 14911, 16531, 7868, - 12325, 14911, 16531, 8234, - 12325, 14911, 16531, 8942, - 12325, 14911, 16531, 9962, - 12325, 14911, 16531, 12996, - 12325, 14911, 16531, 22902, - 12325, 15407, 22534, - 12325, 17835, 16531, 8, - 12325, 17835, 16531, 16, - 12325, 17835, 16531, 28, - 12325, 17835, 16531, 40, - 12325, 17835, 16531, 108, - 12325, 17835, 16531, 228, - 12325, 17835, 16531, 248, - 12325, 17835, 16531, 272, - 12325, 17835, 16531, 554, - 12325, 17835, 16531, 598, - 12325, 17835, 16531, 668, - 12325, 17835, 16531, 714, - 12325, 17835, 16531, 778, - 12325, 17835, 16531, 1002, - 12325, 17835, 16531, 1120, - 12325, 17835, 16531, 1236, - 12325, 17835, 16531, 1556, - 12325, 17835, 16531, 1988, - 12325, 17835, 16531, 2036, - 12325, 17835, 16531, 2116, - 12325, 17835, 16531, 2586, - 12325, 17835, 16531, 2676, - 12325, 17835, 16531, 2698, - 12325, 17835, 16531, 3212, - 12325, 17835, 16531, 3750, - 12325, 17835, 16531, 3932, - 12325, 17835, 16531, 4024, - 12325, 17835, 16531, 5486, - 12325, 17835, 16531, 7868, - 12325, 17835, 16531, 8234, - 12325, 17835, 16531, 8942, - 12325, 17835, 16531, 9962, - 12325, 17835, 16531, 12996, - 12325, 17835, 16531, 22902, - 12325, 18303, 20549, 8808, - 12325, 18303, 23213, 8808, - 12325, 20073, 21143, 20318, - 12325, 21143, 20318, - 12325, 22465, 8808, - 12325, 23919, 8808, - 12326, - 12353, 12708, - 12361, 6365, 20719, 8280, - 12361, 6365, 20719, 14658, - 12361, 14953, 9783, 22034, - 12361, 14953, 15949, 22034, - 12361, 17205, 17216, - 12361, 17205, 21160, - 12361, 18636, - 12361, 18637, 9783, 7844, - 12361, 18637, 15949, 7844, - 12361, 18637, 17242, - 12361, 18637, 17244, - 12375, 17298, - 12378, - 12379, 11513, 37, 16382, - 12379, 11513, 20920, - 12381, 6996, - 12408, - 12415, 20501, 19381, 10943, 14255, 11488, - 12415, 20501, 21349, 10943, 17943, 21556, - 12415, 20501, 21349, 10943, 17943, 22836, - 12415, 20501, 22837, 10943, 17943, 14931, 11488, - 12415, 20501, 22837, 10943, 17943, 19380, - 12415, 20501, 22837, 10943, 17943, 21348, - 12419, 17298, - 12454, - 12458, - 12463, 7073, 10696, - 12463, 12916, - 12463, 12922, - 12463, 16531, 0, - 12463, 16531, 16, - 12463, 16531, 24, - 12463, 16531, 28, - 12463, 16531, 40, - 12463, 16531, 186, - 12463, 16531, 242, - 12463, 16531, 358, - 12463, 16531, 366, - 12463, 16531, 374, - 12463, 16531, 380, - 12463, 16531, 394, - 12463, 16531, 402, - 12463, 16531, 416, - 12463, 16531, 426, - 12463, 16531, 440, - 12463, 16531, 446, - 12463, 16531, 454, - 12463, 16531, 466, - 12463, 16531, 478, - 12463, 16531, 490, - 12463, 16531, 548, - 12463, 16531, 562, - 12463, 16531, 610, - 12463, 16531, 624, - 12463, 16531, 656, - 12463, 16531, 738, - 12463, 16531, 778, - 12463, 16531, 1460, - 12463, 16531, 1484, - 12463, 16531, 2022, - 12463, 16531, 2028, - 12463, 16531, 2110, - 12463, 16531, 2294, - 12463, 16531, 2408, - 12463, 16531, 2574, - 12463, 16531, 2704, - 12463, 16531, 2818, - 12463, 16531, 2890, - 12463, 16531, 3034, - 12463, 16531, 3060, - 12463, 16531, 3066, - 12463, 16531, 3078, - 12463, 16531, 3218, - 12463, 16531, 3220, - 12463, 16531, 3320, - 12463, 16531, 3364, - 12463, 16531, 3368, - 12463, 16531, 3412, - 12463, 16531, 3416, - 12463, 16531, 3792, - 12463, 16531, 3958, - 12463, 16531, 3984, - 12463, 16531, 8046, - 12463, 16531, 8214, - 12463, 16531, 8820, - 12463, 16531, 8826, - 12463, 16531, 9190, - 12463, 16531, 9284, - 12463, 16531, 9372, - 12463, 16531, 9488, - 12463, 16531, 9500, - 12463, 16531, 9512, - 12463, 16531, 9524, - 12463, 16531, 9850, - 12463, 16531, 9918, - 12463, 16531, 10124, - 12463, 16531, 10146, - 12463, 16531, 10426, - 12463, 16531, 10474, - 12463, 16531, 13732, - 12463, 16531, 13790, - 12463, 16531, 13946, - 12463, 16531, 14178, - 12463, 16531, 14192, - 12463, 16531, 14738, - 12463, 16531, 14814, - 12463, 16531, 16134, - 12463, 16531, 16474, - 12463, 16531, 18704, - 12463, 16531, 18849, 41, 3985, 2514, - 12463, 16531, 18849, 416, - 12463, 16531, 18849, 549, 20222, - 12463, 16531, 18849, 669, 16592, - 12463, 16531, 18849, 2004, - 12463, 16531, 18849, 2028, - 12463, 16531, 18849, 2243, 2148, - 12463, 16531, 18849, 2373, 14536, - 12463, 16531, 18849, 2455, 20360, - 12463, 16531, 18849, 2513, 8878, - 12463, 16531, 18849, 2526, - 12463, 16531, 18849, 2549, 20222, - 12463, 16531, 18849, 2562, - 12463, 16531, 18849, 2704, - 12463, 16531, 18849, 2711, 8878, - 12463, 16531, 18849, 2828, - 12463, 16531, 18849, 2863, 549, 2613, 20490, - 12463, 16531, 18849, 2863, 549, 2613, 23546, - 12463, 16531, 18849, 2863, 8879, 20490, - 12463, 16531, 18849, 2863, 8879, 23546, - 12463, 16531, 18849, 2896, - 12463, 16531, 18849, 3108, - 12463, 16531, 18849, 3262, - 12463, 16531, 18849, 3266, - 12463, 16531, 18849, 3320, - 12463, 16531, 18849, 3672, - 12463, 16531, 18849, 7028, - 12463, 16531, 18849, 7984, - 12463, 16531, 18849, 8152, - 12463, 16531, 18849, 8182, - 12463, 16531, 18849, 8796, - 12463, 16531, 18849, 8822, - 12463, 16531, 18849, 9354, - 12463, 16531, 18849, 9364, - 12463, 16531, 18849, 9488, - 12463, 16531, 18849, 9498, - 12463, 16531, 18849, 9499, 8876, - 12463, 16531, 18849, 9499, 9496, - 12463, 16531, 18849, 9564, - 12463, 16531, 18849, 9579, 22582, - 12463, 16531, 18849, 9633, 8874, - 12463, 16531, 18849, 9814, - 12463, 16531, 18849, 10497, 14273, 3976, - 12463, 16531, 18849, 10518, - 12463, 16531, 18849, 10588, - 12463, 16531, 18849, 11001, 8878, - 12463, 16531, 18849, 13347, 1486, - 12463, 16531, 18849, 13776, - 12463, 16531, 18849, 13840, - 12463, 16531, 18849, 13900, - 12463, 16531, 18849, 14124, - 12463, 16531, 18849, 14145, 8878, - 12463, 16531, 18849, 15242, - 12463, 16531, 18849, 16568, - 12463, 16531, 18849, 16594, - 12463, 16531, 18849, 16624, - 12463, 16531, 18849, 16654, - 12463, 16531, 18849, 16720, - 12463, 16531, 18849, 16750, - 12463, 16531, 18849, 16766, - 12463, 16531, 18849, 16846, - 12463, 16531, 18849, 16868, - 12463, 16531, 18849, 17141, 549, 2612, - 12463, 16531, 18849, 17146, - 12463, 16531, 18849, 17188, - 12463, 16531, 18849, 17356, - 12463, 16531, 18849, 18544, - 12463, 16531, 18849, 18570, - 12463, 16531, 18849, 18638, - 12463, 16531, 18849, 18640, - 12463, 16531, 18849, 18712, - 12463, 16531, 18849, 18722, - 12463, 16531, 18849, 18802, - 12463, 16531, 18849, 19066, - 12463, 16531, 18849, 19374, - 12463, 16531, 18849, 20258, - 12463, 16531, 18849, 20260, - 12463, 16531, 18849, 21430, - 12463, 16531, 18849, 21568, - 12463, 16531, 18849, 22040, - 12463, 16531, 18849, 22514, - 12463, 16531, 18849, 22546, - 12463, 16531, 18849, 22594, - 12463, 16531, 18849, 22602, - 12463, 16531, 18849, 22894, - 12463, 16531, 18849, 23848, - 12463, 16531, 18849, 23910, - 12463, 16531, 18849, 23920, - 12463, 16531, 18851, 426, - 12463, 16531, 18851, 427, 14198, - 12463, 16531, 18851, 427, 20370, - 12463, 16531, 18851, 669, 14274, - 12463, 16531, 18851, 669, 21568, - 12463, 16531, 18851, 1460, - 12463, 16531, 18851, 1998, - 12463, 16531, 18851, 2064, - 12463, 16531, 18851, 2203, 14273, 9552, - 12463, 16531, 18851, 2242, - 12463, 16531, 18851, 2289, 14278, - 12463, 16531, 18851, 2393, 16590, - 12463, 16531, 18851, 2557, 9362, - 12463, 16531, 18851, 2705, 14278, - 12463, 16531, 18851, 2850, - 12463, 16531, 18851, 3207, 668, - 12463, 16531, 18851, 3306, - 12463, 16531, 18851, 7018, - 12463, 16531, 18851, 8829, 18596, - 12463, 16531, 18851, 8872, - 12463, 16531, 18851, 8875, 16724, - 12463, 16531, 18851, 8879, 17358, - 12463, 16531, 18851, 9304, - 12463, 16531, 18851, 9486, - 12463, 16531, 18851, 10467, 9370, - 12463, 16531, 18851, 10566, - 12463, 16531, 18851, 10844, - 12463, 16531, 18851, 11374, - 12463, 16531, 18851, 11639, 20222, - 12463, 16531, 18851, 13702, - 12463, 16531, 18851, 13938, - 12463, 16531, 18851, 14127, 2400, - 12463, 16531, 18851, 14283, 17136, - 12463, 16531, 18851, 14486, - 12463, 16531, 18851, 15480, - 12463, 16531, 18851, 16432, - 12463, 16531, 18851, 16436, - 12463, 16531, 18851, 16494, - 12463, 16531, 18851, 16628, - 12463, 16531, 18851, 16652, - 12463, 16531, 18851, 16722, - 12463, 16531, 18851, 16732, - 12463, 16531, 18851, 16733, 13778, - 12463, 16531, 18851, 16768, - 12463, 16531, 18851, 16874, - 12463, 16531, 18851, 17604, - 12463, 16531, 18851, 18356, - 12463, 16531, 18851, 18598, - 12463, 16531, 18851, 18703, 9020, - 12463, 16531, 18851, 18736, - 12463, 16531, 18851, 18940, - 12463, 16531, 18851, 19030, - 12463, 16531, 18851, 20078, - 12463, 16531, 18851, 20326, - 12463, 16531, 18851, 21872, - 12463, 16531, 18851, 23234, - 12463, 16531, 18853, 416, - 12463, 16531, 18853, 427, 14274, - 12463, 16531, 18853, 427, 18352, - 12463, 16531, 18853, 610, - 12463, 16531, 18853, 791, 16692, - 12463, 16531, 18853, 1500, - 12463, 16531, 18853, 1982, - 12463, 16531, 18853, 2023, 2218, - 12463, 16531, 18853, 2023, 18138, - 12463, 16531, 18853, 2028, - 12463, 16531, 18853, 2148, - 12463, 16531, 18853, 2202, - 12463, 16531, 18853, 2208, - 12463, 16531, 18853, 2268, - 12463, 16531, 18853, 2396, - 12463, 16531, 18853, 2526, - 12463, 16531, 18853, 2666, - 12463, 16531, 18853, 2671, 8828, - 12463, 16531, 18853, 2710, - 12463, 16531, 18853, 2822, - 12463, 16531, 18853, 2846, - 12463, 16531, 18853, 3416, - 12463, 16531, 18853, 3800, - 12463, 16531, 18853, 3870, - 12463, 16531, 18853, 3976, - 12463, 16531, 18853, 6126, - 12463, 16531, 18853, 7294, - 12463, 16531, 18853, 8042, - 12463, 16531, 18853, 8181, 18712, - 12463, 16531, 18853, 8821, 16908, - 12463, 16531, 18853, 8821, 23778, - 12463, 16531, 18853, 8828, - 12463, 16531, 18853, 8832, - 12463, 16531, 18853, 8936, - 12463, 16531, 18853, 8992, - 12463, 16531, 18853, 9192, - 12463, 16531, 18853, 9194, - 12463, 16531, 18853, 9268, - 12463, 16531, 18853, 9292, - 12463, 16531, 18853, 9304, - 12463, 16531, 18853, 9364, - 12463, 16531, 18853, 9490, - 12463, 16531, 18853, 9494, - 12463, 16531, 18853, 9496, - 12463, 16531, 18853, 9502, - 12463, 16531, 18853, 9575, 18629, 8870, - 12463, 16531, 18853, 10426, - 12463, 16531, 18853, 10482, - 12463, 16531, 18853, 11001, 3970, - 12463, 16531, 18853, 11376, - 12463, 16531, 18853, 11684, - 12463, 16531, 18853, 13342, - 12463, 16531, 18853, 13900, - 12463, 16531, 18853, 13932, - 12463, 16531, 18853, 13934, - 12463, 16531, 18853, 14094, - 12463, 16531, 18853, 14100, - 12463, 16531, 18853, 14124, - 12463, 16531, 18853, 14132, - 12463, 16531, 18853, 14142, - 12463, 16531, 18853, 14145, 16592, - 12463, 16531, 18853, 14178, - 12463, 16531, 18853, 14182, - 12463, 16531, 18853, 14194, - 12463, 16531, 18853, 14266, - 12463, 16531, 18853, 14277, 9304, - 12463, 16531, 18853, 14350, - 12463, 16531, 18853, 14846, - 12463, 16531, 18853, 14996, - 12463, 16531, 18853, 15550, - 12463, 16531, 18853, 16258, - 12463, 16531, 18853, 16434, - 12463, 16531, 18853, 16480, - 12463, 16531, 18853, 16592, - 12463, 16531, 18853, 16624, - 12463, 16531, 18853, 16626, - 12463, 16531, 18853, 16630, - 12463, 16531, 18853, 16708, - 12463, 16531, 18853, 16730, - 12463, 16531, 18853, 16748, - 12463, 16531, 18853, 17110, - 12463, 16531, 18853, 18354, - 12463, 16531, 18853, 18616, - 12463, 16531, 18853, 18691, 9552, - 12463, 16531, 18853, 18692, - 12463, 16531, 18853, 18720, - 12463, 16531, 18853, 18874, - 12463, 16531, 18853, 19242, - 12463, 16531, 18853, 19266, - 12463, 16531, 18853, 19296, - 12463, 16531, 18853, 20290, - 12463, 16531, 18853, 20292, - 12463, 16531, 18853, 20346, - 12463, 16531, 18853, 20384, - 12463, 16531, 18853, 20934, - 12463, 16531, 18853, 20950, - 12463, 16531, 18853, 21630, - 12463, 16531, 18853, 22516, - 12463, 16531, 18855, 24, - 12463, 16531, 18855, 380, - 12463, 16531, 18855, 454, - 12463, 16531, 18855, 478, - 12463, 16531, 18855, 490, - 12463, 16531, 18855, 656, - 12463, 16531, 18855, 668, - 12463, 16531, 18855, 1440, - 12463, 16531, 18855, 2028, - 12463, 16531, 18855, 2138, - 12463, 16531, 18855, 2144, - 12463, 16531, 18855, 2242, - 12463, 16531, 18855, 2294, - 12463, 16531, 18855, 2324, - 12463, 16531, 18855, 2414, - 12463, 16531, 18855, 2612, - 12463, 16531, 18855, 2704, - 12463, 16531, 18855, 2798, - 12463, 16531, 18855, 2818, - 12463, 16531, 18855, 2848, - 12463, 16531, 18855, 2898, - 12463, 16531, 18855, 3067, 2756, - 12463, 16531, 18855, 3067, 8998, - 12463, 16531, 18855, 3078, - 12463, 16531, 18855, 3186, - 12463, 16531, 18855, 3188, - 12463, 16531, 18855, 3220, - 12463, 16531, 18855, 3266, - 12463, 16531, 18855, 3306, - 12463, 16531, 18855, 3320, - 12463, 16531, 18855, 3368, - 12463, 16531, 18855, 3474, - 12463, 16531, 18855, 3744, - 12463, 16531, 18855, 3920, - 12463, 16531, 18855, 7288, - 12463, 16531, 18855, 8042, - 12463, 16531, 18855, 8044, - 12463, 16531, 18855, 8178, - 12463, 16531, 18855, 8214, - 12463, 16531, 18855, 8288, - 12463, 16531, 18855, 8304, - 12463, 16531, 18855, 8820, - 12463, 16531, 18855, 8821, 14778, - 12463, 16531, 18855, 8834, - 12463, 16531, 18855, 8870, - 12463, 16531, 18855, 8874, - 12463, 16531, 18855, 8878, - 12463, 16531, 18855, 8976, - 12463, 16531, 18855, 9020, - 12463, 16531, 18855, 9192, - 12463, 16531, 18855, 9200, - 12463, 16531, 18855, 9216, - 12463, 16531, 18855, 9368, - 12463, 16531, 18855, 9492, - 12463, 16531, 18855, 9500, - 12463, 16531, 18855, 9512, - 12463, 16531, 18855, 9552, - 12463, 16531, 18855, 9564, - 12463, 16531, 18855, 9596, - 12463, 16531, 18855, 9934, - 12463, 16531, 18855, 10086, - 12463, 16531, 18855, 10458, - 12463, 16531, 18855, 10474, - 12463, 16531, 18855, 10496, - 12463, 16531, 18855, 10718, - 12463, 16531, 18855, 10916, - 12463, 16531, 18855, 10918, - 12463, 16531, 18855, 11120, - 12463, 16531, 18855, 11756, - 12463, 16531, 18855, 11758, - 12463, 16531, 18855, 13685, 13936, - 12463, 16531, 18855, 13744, - 12463, 16531, 18855, 13790, - 12463, 16531, 18855, 13946, - 12463, 16531, 18855, 13974, - 12463, 16531, 18855, 13976, - 12463, 16531, 18855, 14096, - 12463, 16531, 18855, 14120, - 12463, 16531, 18855, 14140, - 12463, 16531, 18855, 14148, - 12463, 16531, 18855, 14180, - 12463, 16531, 18855, 14184, - 12463, 16531, 18855, 14194, - 12463, 16531, 18855, 14268, - 12463, 16531, 18855, 14272, - 12463, 16531, 18855, 14278, - 12463, 16531, 18855, 14814, - 12463, 16531, 18855, 15066, - 12463, 16531, 18855, 15478, - 12463, 16531, 18855, 15550, - 12463, 16531, 18855, 16260, - 12463, 16531, 18855, 16534, - 12463, 16531, 18855, 16650, - 12463, 16531, 18855, 16656, - 12463, 16531, 18855, 16658, - 12463, 16531, 18855, 16722, - 12463, 16531, 18855, 16726, - 12463, 16531, 18855, 16728, - 12463, 16531, 18855, 16736, - 12463, 16531, 18855, 16738, - 12463, 16531, 18855, 16772, - 12463, 16531, 18855, 16774, - 12463, 16531, 18855, 16896, - 12463, 16531, 18855, 17112, - 12463, 16531, 18855, 17134, - 12463, 16531, 18855, 17356, - 12463, 16531, 18855, 18546, - 12463, 16531, 18855, 18562, - 12463, 16531, 18855, 18618, - 12463, 16531, 18855, 18696, - 12463, 16531, 18855, 18700, - 12463, 16531, 18855, 18710, - 12463, 16531, 18855, 19454, - 12463, 16531, 18855, 20358, - 12463, 16531, 18855, 20364, - 12463, 16531, 18855, 21396, - 12463, 16531, 18855, 22512, - 12463, 16531, 18857, 0, - 12463, 16531, 18857, 16, - 12463, 16531, 18857, 28, - 12463, 16531, 18857, 228, - 12463, 16531, 18857, 243, 16, - 12463, 16531, 18857, 243, 6212, - 12463, 16531, 18857, 243, 17016, - 12463, 16531, 18857, 366, - 12463, 16531, 18857, 374, - 12463, 16531, 18857, 416, - 12463, 16531, 18857, 426, - 12463, 16531, 18857, 440, - 12463, 16531, 18857, 466, - 12463, 16531, 18857, 549, 16880, - 12463, 16531, 18857, 549, 16932, - 12463, 16531, 18857, 562, - 12463, 16531, 18857, 566, - 12463, 16531, 18857, 572, - 12463, 16531, 18857, 1450, - 12463, 16531, 18857, 1460, - 12463, 16531, 18857, 1484, - 12463, 16531, 18857, 1500, - 12463, 16531, 18857, 2028, - 12463, 16531, 18857, 2148, - 12463, 16531, 18857, 2208, - 12463, 16531, 18857, 2210, - 12463, 16531, 18857, 2288, - 12463, 16531, 18857, 2294, - 12463, 16531, 18857, 2362, - 12463, 16531, 18857, 2372, - 12463, 16531, 18857, 2374, - 12463, 16531, 18857, 2408, - 12463, 16531, 18857, 2454, - 12463, 16531, 18857, 2488, - 12463, 16531, 18857, 2514, - 12463, 16531, 18857, 2574, - 12463, 16531, 18857, 2705, 17768, - 12463, 16531, 18857, 2705, 17886, - 12463, 16531, 18857, 2788, - 12463, 16531, 18857, 2890, - 12463, 16531, 18857, 2892, - 12463, 16531, 18857, 3034, - 12463, 16531, 18857, 3046, - 12463, 16531, 18857, 3172, - 12463, 16531, 18857, 3200, - 12463, 16531, 18857, 3206, - 12463, 16531, 18857, 3218, - 12463, 16531, 18857, 3254, - 12463, 16531, 18857, 3364, - 12463, 16531, 18857, 3378, - 12463, 16531, 18857, 3386, - 12463, 16531, 18857, 3412, - 12463, 16531, 18857, 3418, - 12463, 16531, 18857, 3470, - 12463, 16531, 18857, 3474, - 12463, 16531, 18857, 3518, - 12463, 16531, 18857, 3672, - 12463, 16531, 18857, 3700, - 12463, 16531, 18857, 3792, - 12463, 16531, 18857, 3798, - 12463, 16531, 18857, 3894, - 12463, 16531, 18857, 3946, - 12463, 16531, 18857, 3959, 12928, - 12463, 16531, 18857, 3959, 20772, - 12463, 16531, 18857, 3978, - 12463, 16531, 18857, 3984, - 12463, 16531, 18857, 7068, - 12463, 16531, 18857, 7218, - 12463, 16531, 18857, 7298, - 12463, 16531, 18857, 7302, - 12463, 16531, 18857, 8046, - 12463, 16531, 18857, 8174, - 12463, 16531, 18857, 8180, - 12463, 16531, 18857, 8234, - 12463, 16531, 18857, 8354, - 12463, 16531, 18857, 8358, - 12463, 16531, 18857, 8796, - 12463, 16531, 18857, 8824, - 12463, 16531, 18857, 8886, - 12463, 16531, 18857, 8936, - 12463, 16531, 18857, 8992, - 12463, 16531, 18857, 9191, 463, 13540, - 12463, 16531, 18857, 9191, 20678, - 12463, 16531, 18857, 9194, - 12463, 16531, 18857, 9210, - 12463, 16531, 18857, 9226, - 12463, 16531, 18857, 9302, - 12463, 16531, 18857, 9310, - 12463, 16531, 18857, 9312, - 12463, 16531, 18857, 9372, - 12463, 16531, 18857, 9373, 13174, - 12463, 16531, 18857, 9408, - 12463, 16531, 18857, 9498, - 12463, 16531, 18857, 9510, - 12463, 16531, 18857, 9612, - 12463, 16531, 18857, 9638, - 12463, 16531, 18857, 9814, - 12463, 16531, 18857, 9842, - 12463, 16531, 18857, 9848, - 12463, 16531, 18857, 9850, - 12463, 16531, 18857, 9874, - 12463, 16531, 18857, 9912, - 12463, 16531, 18857, 9918, - 12463, 16531, 18857, 9920, - 12463, 16531, 18857, 10124, - 12463, 16531, 18857, 10482, - 12463, 16531, 18857, 10496, - 12463, 16531, 18857, 10846, - 12463, 16531, 18857, 10855, 14278, - 12463, 16531, 18857, 11036, - 12463, 16531, 18857, 11112, - 12463, 16531, 18857, 11490, - 12463, 16531, 18857, 11682, - 12463, 16531, 18857, 11686, - 12463, 16531, 18857, 11692, - 12463, 16531, 18857, 11754, - 12463, 16531, 18857, 13344, - 12463, 16531, 18857, 13374, - 12463, 16531, 18857, 13376, - 12463, 16531, 18857, 13682, - 12463, 16531, 18857, 13734, - 12463, 16531, 18857, 13932, - 12463, 16531, 18857, 13972, - 12463, 16531, 18857, 13980, - 12463, 16531, 18857, 14098, - 12463, 16531, 18857, 14134, - 12463, 16531, 18857, 14146, - 12463, 16531, 18857, 14150, - 12463, 16531, 18857, 14154, - 12463, 16531, 18857, 14182, - 12463, 16531, 18857, 14270, - 12463, 16531, 18857, 14534, - 12463, 16531, 18857, 14994, - 12463, 16531, 18857, 15246, - 12463, 16531, 18857, 15394, - 12463, 16531, 18857, 15530, - 12463, 16531, 18857, 15548, - 12463, 16531, 18857, 16260, - 12463, 16531, 18857, 16532, - 12463, 16531, 18857, 16734, - 12463, 16531, 18857, 16740, - 12463, 16531, 18857, 16766, - 12463, 16531, 18857, 16770, - 12463, 16531, 18857, 17030, - 12463, 16531, 18857, 17358, - 12463, 16531, 18857, 17602, - 12463, 16531, 18857, 18200, - 12463, 16531, 18857, 18686, - 12463, 16531, 18857, 18688, - 12463, 16531, 18857, 18694, - 12463, 16531, 18857, 18698, - 12463, 16531, 18857, 18708, - 12463, 16531, 18857, 19092, - 12463, 16531, 18857, 20356, - 12463, 16531, 18857, 20360, - 12463, 16531, 18857, 20362, - 12463, 16531, 18857, 22601, 9552, - 12463, 16531, 18859, 24, - 12463, 16531, 18859, 40, - 12463, 16531, 18859, 186, - 12463, 16531, 18859, 358, - 12463, 16531, 18859, 374, - 12463, 16531, 18859, 380, - 12463, 16531, 18859, 394, - 12463, 16531, 18859, 402, - 12463, 16531, 18859, 426, - 12463, 16531, 18859, 446, - 12463, 16531, 18859, 478, - 12463, 16531, 18859, 490, - 12463, 16531, 18859, 610, - 12463, 16531, 18859, 624, - 12463, 16531, 18859, 738, - 12463, 16531, 18859, 778, - 12463, 16531, 18859, 1484, - 12463, 16531, 18859, 2022, - 12463, 16531, 18859, 2028, - 12463, 16531, 18859, 2110, - 12463, 16531, 18859, 2294, - 12463, 16531, 18859, 2704, - 12463, 16531, 18859, 2818, - 12463, 16531, 18859, 3060, - 12463, 16531, 18859, 3066, - 12463, 16531, 18859, 3078, - 12463, 16531, 18859, 3218, - 12463, 16531, 18859, 3220, - 12463, 16531, 18859, 3320, - 12463, 16531, 18859, 3364, - 12463, 16531, 18859, 3368, - 12463, 16531, 18859, 3416, - 12463, 16531, 18859, 3792, - 12463, 16531, 18859, 3958, - 12463, 16531, 18859, 8214, - 12463, 16531, 18859, 8820, - 12463, 16531, 18859, 8826, - 12463, 16531, 18859, 9190, - 12463, 16531, 18859, 9284, - 12463, 16531, 18859, 9488, - 12463, 16531, 18859, 9500, - 12463, 16531, 18859, 9524, - 12463, 16531, 18859, 9850, - 12463, 16531, 18859, 9918, - 12463, 16531, 18859, 10124, - 12463, 16531, 18859, 10146, - 12463, 16531, 18859, 10426, - 12463, 16531, 18859, 10474, - 12463, 16531, 18859, 11398, - 12463, 16531, 18859, 13946, - 12463, 16531, 18859, 14178, - 12463, 16531, 18859, 14192, - 12463, 16531, 18859, 14738, - 12463, 16531, 18859, 18704, - 12463, 18708, - 12463, 20549, 8808, - 12463, 21127, 8809, 18378, - 12463, 21127, 8809, 22076, - 12463, 21844, - 12464, - 12469, 3657, 7073, 10696, - 12469, 3657, 16531, 0, - 12469, 3657, 16531, 8, - 12469, 3657, 16531, 16, - 12469, 3657, 16531, 28, - 12469, 3657, 16531, 40, - 12469, 3657, 16531, 108, - 12469, 3657, 16531, 132, - 12469, 3657, 16531, 168, - 12469, 3657, 16531, 186, - 12469, 3657, 16531, 228, - 12469, 3657, 16531, 350, - 12469, 3657, 16531, 358, - 12469, 3657, 16531, 522, - 12469, 3657, 16531, 548, - 12469, 3657, 16531, 618, - 12469, 3657, 16531, 660, - 12469, 3657, 16531, 728, - 12469, 3657, 16531, 738, - 12469, 3657, 16531, 804, - 12469, 3657, 16531, 1534, - 12469, 3657, 16531, 1562, - 12469, 3657, 16531, 2394, - 12469, 3657, 16531, 3648, - 12469, 3657, 16531, 3934, - 12469, 3657, 16531, 6652, - 12469, 3657, 16531, 6850, - 12469, 3657, 16531, 7708, - 12469, 3657, 16531, 8142, - 12469, 3657, 16531, 11676, - 12469, 3657, 16531, 15426, - 12469, 3657, 21127, 2301, 11032, - 12469, 3657, 21127, 2429, 11032, - 12469, 3657, 21127, 7521, 11032, - 12469, 3657, 21127, 18531, 11032, - 12469, 3657, 21127, 20121, 11032, - 12471, 10575, 15172, - 12471, 15407, 10575, 8, - 12471, 15407, 10575, 16, - 12471, 15407, 10575, 28, - 12471, 15407, 10575, 40, - 12471, 15407, 10575, 41, 1493, 22899, 614, - 12471, 15407, 10575, 186, - 12471, 15407, 10575, 8007, 16, - 12471, 15407, 10575, 8007, 28, - 12471, 15407, 10575, 16859, 8, - 12471, 16531, 0, - 12471, 16531, 16, - 12471, 16531, 40, - 12471, 16531, 108, - 12471, 16531, 126, - 12471, 16531, 150, - 12471, 16531, 248, - 12471, 16531, 272, - 12471, 16531, 344, - 12471, 16531, 394, - 12471, 16531, 426, - 12471, 16531, 466, - 12471, 16531, 548, - 12471, 16531, 598, - 12471, 16531, 614, - 12471, 16531, 738, - 12471, 16531, 778, - 12471, 16531, 2392, - 12471, 16531, 2548, - 12471, 16531, 2574, - 12471, 16531, 2698, - 12471, 16531, 8007, 108, - 12471, 16531, 16859, 738, - 12471, 16531, 20375, 648, - 12471, 16531, 20683, 648, - 12471, 16531, 22551, 272, - 12471, 16531, 22551, 466, - 12471, 16531, 22551, 614, - 12471, 16531, 22899, 0, - 12471, 16531, 22899, 248, - 12471, 16531, 22899, 272, - 12471, 16531, 22899, 394, - 12471, 16531, 22899, 426, - 12471, 16531, 22899, 548, - 12471, 16531, 22899, 598, - 12471, 16531, 22899, 614, - 12471, 16531, 22899, 738, - 12471, 16531, 22899, 778, - 12471, 17299, 12517, 467, 13966, - 12471, 17299, 12517, 13630, - 12471, 17299, 12517, 20444, - 12471, 17299, 12517, 22770, - 12471, 20444, - 12471, 21143, 10575, 14, - 12471, 21143, 10575, 474, - 12471, 22744, - 12487, 11513, 20916, - 12492, - 12507, 1036, - 12522, - 12525, 699, 20501, 19589, 13594, - 12525, 2592, - 12525, 3311, 11513, 10100, - 12525, 6345, 10726, - 12525, 6701, 20501, 19589, 13594, - 12525, 7038, - 12525, 7059, 18889, 10690, - 12525, 7437, 14811, 16197, 6672, - 12525, 8281, 8261, 13960, - 12525, 8281, 20501, 13594, - 12525, 8281, 20501, 19589, 13594, - 12525, 8981, 16538, - 12525, 10690, - 12525, 10999, 17224, - 12525, 10999, 17988, - 12525, 10999, 18534, - 12525, 11371, 14911, 17224, - 12525, 11371, 14911, 17988, - 12525, 11371, 14911, 18534, - 12525, 12667, 8108, - 12525, 12667, 8109, 19015, 3537, 18281, 19071, 17974, - 12525, 12667, 8109, 19015, 16745, 17974, - 12525, 12667, 9836, - 12525, 12667, 9837, 19015, 3537, 18281, 19071, 17974, - 12525, 12667, 9837, 19015, 16745, 17974, - 12525, 12667, 10180, - 12525, 12667, 10181, 19015, 3537, 18281, 19071, 17974, - 12525, 12667, 10181, 19015, 16745, 17974, - 12525, 12667, 14596, - 12525, 12667, 14597, 19015, 3537, 18281, 19071, 17974, - 12525, 12667, 14597, 19015, 16745, 17974, - 12525, 12667, 15816, - 12525, 12667, 15817, 19015, 3537, 18281, 19071, 17974, - 12525, 12667, 15817, 19015, 16745, 17974, - 12525, 12667, 16470, - 12525, 12667, 16471, 19015, 2761, 18281, 23695, 17974, - 12525, 12667, 16471, 19015, 3537, 18281, 19071, 17974, - 12525, 12667, 16471, 19015, 3537, 18281, 23711, 17974, - 12525, 12667, 16471, 19015, 15117, 18281, 18149, 17974, - 12525, 12667, 16471, 19015, 16745, 17974, - 12525, 12667, 16471, 19015, 22459, 17974, - 12525, 12667, 17465, 8108, - 12525, 12667, 17465, 9836, - 12525, 12667, 17465, 10180, - 12525, 12667, 17465, 14596, - 12525, 12667, 17465, 15816, - 12525, 12667, 17465, 16470, - 12525, 12667, 22432, - 12525, 12667, 22433, 19015, 16745, 17974, - 12525, 12667, 23296, - 12525, 12667, 23898, - 12525, 12667, 25808, - 12525, 12935, 521, 17138, - 12525, 13470, - 12525, 13471, 10726, - 12525, 13779, 15938, - 12525, 13779, 15939, 14005, 8281, 18951, 19056, - 12525, 13779, 15939, 14005, 13839, 18951, 19056, - 12525, 13779, 15939, 14005, 14659, 18951, 19056, - 12525, 13779, 15939, 14005, 15287, 18951, 19056, - 12525, 13779, 17224, - 12525, 13839, 8281, 20858, - 12525, 13839, 14659, 20858, - 12525, 14659, 20501, 13594, - 12525, 14659, 20501, 19589, 13594, - 12525, 14659, 20859, 12614, - 12525, 14831, 14532, - 12525, 14887, 897, 22248, - 12525, 14911, 10690, - 12525, 14911, 17224, - 12525, 14911, 17988, - 12525, 14911, 18534, - 12525, 14911, 23721, 17866, - 12525, 14935, 10726, - 12525, 15208, - 12525, 15287, 8281, 20858, - 12525, 15287, 14659, 20858, - 12525, 15830, - 12525, 15901, 15453, 10690, - 12525, 15938, - 12525, 15939, 1493, 17012, - 12525, 15939, 11513, 3537, 15453, 6696, - 12525, 15939, 11513, 6701, 12414, - 12525, 15939, 11513, 15453, 1291, 14658, - 12525, 16001, 19381, 897, 21557, 12414, - 12525, 16001, 19381, 897, 22837, 12414, - 12525, 16001, 21349, 897, 21557, 12414, - 12525, 16001, 21349, 897, 22837, 12414, - 12525, 16001, 21557, 897, 19381, 12414, - 12525, 16001, 21557, 897, 21349, 12414, - 12525, 16001, 22837, 897, 19381, 12414, - 12525, 16001, 22837, 897, 21349, 12414, - 12525, 16206, - 12525, 16637, 14911, 17224, - 12525, 16637, 14911, 17988, - 12525, 16637, 14911, 18534, - 12525, 16637, 17224, - 12525, 16637, 17988, - 12525, 16637, 18534, - 12525, 16637, 23721, 20858, - 12525, 16637, 23721, 20859, 17852, - 12525, 16637, 25763, 20858, - 12525, 16637, 25763, 20859, 17852, - 12525, 16637, 25813, 20858, - 12525, 16637, 25813, 20859, 17852, - 12525, 16637, 26163, 20858, - 12525, 16637, 26163, 20859, 17852, - 12525, 17055, 20622, - 12525, 17224, - 12525, 17225, 1493, 10696, - 12525, 17225, 15862, - 12525, 17225, 17852, - 12525, 17988, - 12525, 17989, 521, 12934, - 12525, 17989, 10726, - 12525, 17989, 11513, 6701, 12414, - 12525, 17989, 14005, 15453, 46, - 12525, 17989, 17852, - 12525, 18080, - 12525, 18266, - 12525, 18534, - 12525, 18681, 6996, - 12525, 18744, - 12525, 18836, - 12525, 18946, - 12525, 19012, - 12525, 19129, 6996, - 12525, 19132, - 12525, 19361, 8281, 3755, 19308, - 12525, 19381, 23211, 21022, - 12525, 19949, 2368, - 12525, 19949, 8108, - 12525, 20038, - 12525, 20472, - 12525, 20549, 8809, 20412, - 12525, 20622, - 12525, 20671, 14911, 15938, - 12525, 20671, 14911, 17224, - 12525, 20933, 18108, - 12525, 20933, 21790, - 12525, 21349, 23211, 21022, - 12525, 21478, - 12525, 21557, 15858, - 12525, 21557, 23211, 21022, - 12525, 21790, - 12525, 22030, - 12525, 22049, 22030, - 12525, 22091, 21793, 17298, - 12525, 22495, 18108, - 12525, 22837, 12414, - 12525, 22837, 15858, - 12525, 22837, 21022, - 12525, 22837, 23211, 21022, - 12525, 23721, 14911, 20858, - 12525, 23721, 16095, 20858, - 12525, 23721, 20858, - 12525, 23721, 21515, 14659, 20858, - 12525, 25763, 14911, 20858, - 12525, 25763, 16095, 20858, - 12525, 25763, 20858, - 12525, 25763, 21515, 14659, 20858, - 12525, 25813, 14911, 20858, - 12525, 25813, 16095, 20858, - 12525, 25813, 16095, 20859, 11513, 20933, 964, - 12525, 25813, 18890, - 12525, 25813, 20858, - 12525, 25813, 21515, 14659, 20858, - 12525, 25880, - 12525, 26163, 14911, 20858, - 12525, 26163, 16095, 20858, - 12525, 26163, 16095, 20859, 11513, 20933, 964, - 12525, 26163, 18890, - 12525, 26163, 20472, - 12525, 26163, 20858, - 12525, 26163, 20859, 11513, 16095, 20933, 964, - 12525, 26163, 21515, 14659, 20858, - 12529, 17298, - 12533, 20392, - 12533, 20394, - 12533, 20396, - 12533, 20398, - 12533, 21656, - 12533, 21658, - 12533, 21660, - 12533, 21662, - 12533, 21664, - 12533, 21666, - 12533, 21668, - 12533, 21670, - 12533, 21672, - 12533, 21674, - 12533, 21676, - 12533, 21678, - 12533, 21680, - 12533, 21682, - 12533, 21684, - 12533, 21686, - 12533, 21688, - 12533, 21690, - 12533, 21692, - 12533, 21694, - 12533, 21858, - 12533, 21860, - 12533, 21862, - 12533, 21864, - 12533, 21866, - 12533, 21868, - 12533, 22612, - 12533, 22614, - 12533, 22616, - 12533, 22618, - 12533, 22620, - 12533, 22622, - 12533, 22624, - 12533, 22626, - 12533, 22628, - 12533, 22630, - 12533, 22632, - 12533, 22634, - 12533, 22636, - 12533, 22638, - 12533, 22640, - 12533, 22642, - 12533, 22644, - 12533, 22646, - 12533, 22648, - 12533, 22650, - 12533, 22652, - 12533, 22654, - 12533, 22656, - 12533, 22658, - 12533, 22660, - 12533, 22662, - 12533, 22664, - 12533, 22666, - 12533, 22668, - 12533, 22670, - 12533, 22672, - 12533, 22674, - 12533, 22676, - 12533, 22678, - 12533, 22680, - 12533, 22682, - 12533, 22684, - 12533, 22686, - 12533, 22688, - 12533, 22690, - 12533, 22692, - 12533, 22694, - 12533, 22696, - 12533, 22698, - 12533, 22700, - 12533, 22702, - 12533, 22704, - 12533, 22706, - 12533, 22708, - 12533, 22710, - 12533, 22712, - 12533, 22714, - 12533, 22716, - 12533, 22718, - 12533, 22720, - 12533, 22722, - 12533, 22858, - 12533, 22860, - 12533, 22862, - 12533, 22864, - 12533, 22866, - 12533, 22868, - 12533, 22870, - 12533, 22872, - 12533, 22874, - 12533, 22876, - 12533, 22878, - 12533, 22880, - 12533, 22882, - 12533, 22884, - 12533, 22886, - 12533, 23374, - 12533, 23376, - 12533, 23378, - 12533, 23380, - 12533, 23382, - 12533, 23384, - 12533, 23386, - 12533, 23388, - 12533, 23390, - 12533, 23392, - 12533, 23394, - 12533, 23396, - 12533, 23398, - 12533, 23400, - 12533, 23402, - 12533, 23404, - 12533, 23406, - 12533, 23408, - 12533, 23410, - 12533, 23412, - 12533, 23414, - 12533, 23416, - 12533, 23418, - 12533, 23420, - 12533, 23422, - 12533, 23424, - 12533, 23426, - 12533, 23428, - 12533, 23430, - 12533, 23432, - 12533, 23434, - 12533, 23436, - 12533, 23438, - 12533, 23440, - 12533, 23442, - 12533, 23444, - 12533, 23446, - 12533, 23448, - 12533, 23450, - 12533, 23452, - 12533, 23454, - 12533, 23456, - 12533, 23458, - 12533, 23460, - 12533, 23462, - 12533, 23464, - 12533, 23466, - 12533, 23468, - 12533, 23470, - 12533, 23472, - 12533, 23474, - 12533, 23476, - 12533, 23478, - 12533, 23480, - 12533, 23482, - 12533, 23484, - 12533, 23486, - 12533, 23488, - 12533, 23490, - 12533, 23492, - 12533, 23494, - 12533, 23496, - 12533, 23498, - 12533, 23500, - 12533, 23606, - 12533, 23608, - 12533, 23610, - 12533, 23612, - 12533, 23614, - 12533, 23618, - 12533, 23620, - 12533, 23622, - 12533, 23624, - 12533, 23626, - 12533, 23628, - 12533, 23630, - 12533, 23632, - 12533, 23636, - 12533, 23638, - 12533, 23640, - 12533, 23642, - 12533, 23644, - 12533, 23928, - 12533, 23930, - 12533, 23932, - 12533, 23934, - 12533, 23936, - 12533, 23938, - 12533, 23940, - 12533, 23942, - 12533, 23944, - 12533, 23946, - 12533, 23948, - 12533, 23950, - 12533, 23952, - 12533, 23954, - 12533, 23956, - 12533, 23958, - 12533, 23960, - 12533, 23962, - 12533, 23964, - 12533, 23966, - 12533, 23968, - 12533, 23970, - 12533, 23972, - 12533, 23974, - 12533, 23976, - 12533, 23978, - 12533, 23980, - 12533, 23982, - 12533, 23984, - 12533, 23986, - 12533, 23988, - 12533, 23990, - 12533, 23992, - 12533, 23994, - 12533, 23996, - 12533, 23998, - 12533, 24000, - 12533, 24002, - 12533, 24004, - 12533, 24006, - 12533, 24008, - 12533, 24010, - 12533, 24012, - 12533, 24014, - 12533, 24016, - 12533, 24018, - 12533, 24020, - 12533, 24022, - 12533, 24024, - 12533, 24026, - 12533, 24028, - 12533, 24030, - 12533, 24032, - 12533, 24034, - 12533, 24036, - 12533, 24038, - 12533, 24092, - 12533, 24094, - 12533, 24096, - 12533, 24098, - 12533, 24100, - 12533, 24102, - 12533, 24104, - 12533, 24106, - 12533, 24108, - 12533, 24110, - 12533, 24112, - 12533, 24114, - 12533, 24116, - 12533, 24118, - 12533, 24120, - 12533, 25832, - 12533, 25834, - 12533, 25836, - 12533, 25838, - 12533, 25840, - 12533, 25842, - 12533, 25844, - 12533, 25846, - 12533, 25848, - 12533, 25850, - 12533, 25852, - 12533, 25854, - 12533, 25856, - 12533, 25858, - 12533, 25860, - 12533, 25862, - 12533, 25864, - 12533, 25866, - 12533, 25868, - 12533, 25870, - 12533, 25872, - 12533, 25874, - 12533, 25922, - 12533, 25924, - 12533, 25926, - 12533, 25928, - 12533, 25930, - 12533, 25932, - 12533, 26138, - 12533, 26140, - 12533, 26142, - 12533, 26144, - 12533, 26146, - 12533, 26148, - 12533, 26150, - 12533, 26152, - 12540, - 12550, - 12552, - 12554, - 12556, - 12559, 11513, 11364, - 12562, - 12565, 13470, - 12577, 15407, 10575, 16, - 12577, 15407, 10575, 40, - 12577, 16531, 0, - 12577, 16531, 16, - 12577, 16531, 40, - 12577, 16531, 108, - 12577, 16531, 150, - 12577, 16531, 248, - 12577, 16531, 272, - 12577, 16531, 358, - 12577, 16531, 394, - 12577, 16531, 426, - 12577, 16531, 466, - 12577, 16531, 548, - 12577, 16531, 598, - 12577, 16531, 614, - 12577, 16531, 648, - 12577, 16531, 738, - 12577, 16531, 778, - 12577, 16531, 2574, - 12587, 323, 22896, - 12606, - 12608, - 12614, - 12615, 21507, 14558, - 12620, - 12648, - 12652, - 12657, 11513, 19381, 15200, - 12657, 11513, 19381, 15201, 897, 3921, 10574, - 12657, 11513, 21349, 15200, - 12659, 8808, - 12676, - 12703, 17087, 17298, - 12709, 6997, 2761, 16800, - 12709, 6997, 3241, 16800, - 12709, 6997, 3413, 16800, - 12709, 6997, 3537, 16800, - 12709, 6997, 7037, 16800, - 12709, 6997, 7059, 16800, - 12709, 6997, 9359, 16800, - 12709, 6997, 13151, 16800, - 12709, 6997, 14779, 16800, - 12709, 6997, 15117, 16800, - 12709, 6997, 16111, 16800, - 12709, 6997, 17473, 16800, - 12709, 6997, 22724, - 12709, 6997, 22922, - 12709, 6997, 22966, - 12709, 6997, 23006, - 12709, 6997, 23224, - 12709, 6997, 23230, - 12709, 6997, 23366, - 12709, 6997, 23834, - 12709, 6997, 24090, - 12709, 6997, 24160, - 12709, 6997, 25768, - 12709, 6997, 25962, - 12711, 698, - 12714, - 12715, 11513, 10092, - 12715, 11513, 10610, - 12715, 11513, 19300, - 12715, 11513, 21564, - 12717, 6996, - 12916, - 12917, 10574, - 12917, 16120, - 12920, - 12922, - 12924, - 12927, 897, 8256, - 12935, 507, 20254, - 12935, 507, 21520, - 12935, 8808, - 12935, 14497, 11513, 8281, 19740, - 12935, 14497, 11513, 14659, 19740, - 12935, 16950, - 12935, 16951, 11513, 23239, 12502, - 12936, - 12941, 8356, - 12941, 17811, 21382, - 12941, 18529, 528, - 12941, 18529, 896, - 12943, 897, 10144, - 13013, 17298, - 13018, - 13051, 13177, 660, - 13053, 20933, 7022, - 13053, 22495, 7022, - 13069, 2760, - 13069, 2761, 7073, 10696, - 13069, 2761, 12922, - 13069, 3240, - 13069, 3241, 7073, 10696, - 13069, 3241, 12922, - 13069, 3536, - 13069, 3537, 7073, 10696, - 13069, 3537, 12922, - 13069, 7036, - 13069, 7037, 7073, 10696, - 13069, 7037, 12922, - 13069, 7058, - 13069, 7059, 7073, 10696, - 13069, 7059, 12922, - 13069, 9358, - 13069, 9359, 7073, 10696, - 13069, 9359, 12922, - 13069, 11824, - 13069, 11825, 7073, 10696, - 13069, 11825, 12922, - 13069, 13150, - 13069, 13151, 7073, 10696, - 13069, 13151, 12922, - 13069, 14778, - 13069, 14779, 7073, 10696, - 13069, 14779, 12922, - 13069, 15116, - 13069, 15117, 7073, 10696, - 13069, 15117, 12922, - 13079, 8808, - 13081, 12349, 1393, 507, 10921, 8808, - 13081, 12349, 1545, 16172, - 13081, 12349, 10575, 14334, - 13081, 12349, 10575, 18240, - 13081, 12349, 10575, 19540, - 13081, 12349, 10575, 23070, - 13081, 12349, 13069, 2760, - 13081, 12349, 13069, 3240, - 13081, 12349, 13069, 3536, - 13081, 12349, 13069, 7036, - 13081, 12349, 13069, 7058, - 13081, 12349, 13069, 9358, - 13081, 12349, 13069, 11824, - 13081, 12349, 13069, 13150, - 13081, 12349, 13069, 14778, - 13081, 12349, 13069, 15116, - 13081, 12349, 15407, 10575, 8, - 13081, 12349, 15407, 10575, 16, - 13081, 12349, 15407, 10575, 28, - 13081, 12349, 15407, 10575, 40, - 13081, 12349, 15407, 10575, 58, - 13081, 12349, 15407, 10575, 72, - 13081, 12349, 15407, 10575, 314, - 13081, 12349, 15407, 10575, 706, - 13081, 12349, 16095, 13016, - 13081, 12349, 16531, 0, - 13081, 12349, 16531, 8, - 13081, 12349, 16531, 16, - 13081, 12349, 16531, 28, - 13081, 12349, 16531, 40, - 13081, 12349, 16531, 58, - 13081, 12349, 16531, 108, - 13081, 12349, 16531, 126, - 13081, 12349, 16531, 150, - 13081, 12349, 16531, 248, - 13081, 12349, 16531, 272, - 13081, 12349, 16531, 314, - 13081, 12349, 16531, 344, - 13081, 12349, 16531, 358, - 13081, 12349, 16531, 394, - 13081, 12349, 16531, 426, - 13081, 12349, 16531, 466, - 13081, 12349, 16531, 548, - 13081, 12349, 16531, 598, - 13081, 12349, 16531, 614, - 13081, 12349, 16531, 648, - 13081, 12349, 16531, 706, - 13081, 12349, 16531, 714, - 13081, 12349, 16531, 778, - 13081, 12349, 16531, 796, - 13081, 12349, 16531, 1000, - 13081, 12349, 16531, 1116, - 13081, 12349, 16531, 1214, - 13081, 12349, 16531, 1236, - 13081, 12349, 16531, 1588, - 13081, 12349, 16531, 2036, - 13081, 12349, 16531, 2278, - 13081, 12349, 16531, 2574, - 13081, 12349, 16531, 2624, - 13081, 12349, 16531, 2698, - 13081, 12349, 16531, 2830, - 13081, 12349, 16531, 3212, - 13081, 12349, 16531, 3286, - 13081, 12349, 16531, 3422, - 13081, 12349, 16531, 3502, - 13081, 12349, 16531, 4002, - 13081, 12349, 16531, 6572, - 13081, 12349, 16635, 598, - 13081, 12349, 16635, 778, - 13081, 12349, 17534, - 13081, 12349, 18303, 598, - 13081, 12349, 20523, 14079, 10574, - 13083, 6996, - 13083, 17298, - 13091, 10575, 14334, - 13091, 10575, 17534, - 13091, 10575, 19408, - 13091, 10575, 19540, - 13091, 15407, 10575, 8, - 13091, 15407, 10575, 16, - 13091, 15407, 10575, 28, - 13091, 15407, 10575, 40, - 13091, 15407, 10575, 58, - 13091, 15407, 10575, 72, - 13091, 15407, 10575, 96, - 13091, 15407, 10575, 314, - 13091, 15407, 10575, 706, - 13091, 15407, 10575, 19415, 34, - 13091, 15407, 10575, 19415, 608, - 13091, 16531, 0, - 13091, 16531, 8, - 13091, 16531, 16, - 13091, 16531, 28, - 13091, 16531, 40, - 13091, 16531, 58, - 13091, 16531, 72, - 13091, 16531, 96, - 13091, 16531, 108, - 13091, 16531, 126, - 13091, 16531, 150, - 13091, 16531, 248, - 13091, 16531, 272, - 13091, 16531, 314, - 13091, 16531, 344, - 13091, 16531, 358, - 13091, 16531, 394, - 13091, 16531, 426, - 13091, 16531, 466, - 13091, 16531, 548, - 13091, 16531, 598, - 13091, 16531, 614, - 13091, 16531, 648, - 13091, 16531, 706, - 13091, 16531, 714, - 13091, 16531, 778, - 13091, 16531, 1000, - 13091, 16531, 1116, - 13091, 16531, 1214, - 13091, 16531, 1236, - 13091, 16531, 1588, - 13091, 16531, 1918, - 13091, 16531, 2036, - 13091, 16531, 2574, - 13091, 16531, 2624, - 13091, 16531, 2698, - 13091, 16531, 2830, - 13091, 16531, 3118, - 13091, 16531, 3212, - 13091, 16531, 3286, - 13091, 16531, 3422, - 13091, 16531, 3502, - 13091, 16531, 6572, - 13091, 16531, 11082, - 13091, 23737, 10574, - 13102, - 13107, 10605, 10574, - 13136, - 13140, - 13141, 13395, 19532, - 13141, 13395, 25774, - 13141, 13395, 25982, - 13141, 16286, - 13151, 10101, 16384, - 13151, 10101, 18776, - 13151, 17211, 19574, - 13151, 18889, 12525, 10690, - 13151, 18889, 20489, 10690, - 13151, 18889, 23575, 12525, 10690, - 13151, 20479, 20419, 12525, 20038, - 13151, 28085, 21769, 19574, - 13153, 17298, - 13159, 20319, 23223, 17484, - 13159, 20319, 23223, 17486, - 13159, 20319, 23223, 17488, - 13159, 20319, 23223, 17490, - 13159, 20319, 23223, 20906, - 13159, 21131, 3059, 7424, - 13159, 21131, 5976, - 13159, 21131, 12941, 7424, - 13159, 21131, 15453, 7424, - 13161, 3206, - 13161, 3207, 11513, 8281, 12415, 12318, - 13161, 3207, 11513, 14659, 12415, 12318, - 13161, 3207, 11513, 14911, 15939, 12318, - 13161, 3207, 11513, 18778, - 13161, 9252, - 13161, 9442, - 13161, 9443, 2790, - 13161, 9443, 9818, - 13161, 9818, - 13161, 14470, - 13161, 19818, - 13165, 17298, - 13177, 661, 125, 22268, - 13177, 661, 529, 20520, - 13177, 661, 529, 20760, - 13177, 661, 529, 21558, - 13177, 661, 529, 23852, - 13177, 897, 20455, 660, - 13181, 661, 3425, 8280, - 13181, 661, 3425, 14658, - 13201, 19724, - 13236, - 13239, 17298, - 13248, - 13251, 16347, 14975, 897, 5978, - 13261, 14545, 13944, - 13261, 17267, 18314, - 13261, 18951, 8980, - 13261, 18951, 8981, 11513, 6996, - 13261, 18951, 8981, 17298, - 13272, - 13274, - 13287, 11513, 83, 46, - 13287, 11513, 15142, - 13287, 11513, 18868, - 13291, 17154, - 13298, - 13339, 9905, 10574, - 13339, 13069, 2760, - 13339, 13069, 3240, - 13339, 13069, 3536, - 13339, 13069, 7036, - 13339, 13069, 7058, - 13339, 13069, 9358, - 13339, 13069, 11824, - 13339, 13069, 13150, - 13339, 13069, 14778, - 13339, 13069, 15116, - 13339, 14005, 10574, - 13339, 14911, 16531, 0, - 13339, 14911, 16531, 108, - 13339, 14911, 16531, 126, - 13339, 14911, 16531, 150, - 13339, 14911, 16531, 228, - 13339, 14911, 16531, 248, - 13339, 14911, 16531, 272, - 13339, 14911, 16531, 344, - 13339, 14911, 16531, 358, - 13339, 14911, 16531, 394, - 13339, 14911, 16531, 426, - 13339, 14911, 16531, 466, - 13339, 14911, 16531, 548, - 13339, 14911, 16531, 598, - 13339, 14911, 16531, 614, - 13339, 14911, 16531, 648, - 13339, 14911, 16531, 738, - 13339, 14911, 16531, 762, - 13339, 14911, 16531, 778, - 13339, 14911, 16531, 2698, - 13339, 14911, 16531, 2757, 358, - 13339, 14911, 16531, 2757, 466, - 13339, 15000, - 13339, 15407, 10575, 0, - 13339, 15407, 10575, 8, - 13339, 15407, 10575, 16, - 13339, 15407, 10575, 28, - 13339, 15407, 10575, 186, - 13339, 15407, 16525, 8808, - 13339, 16358, - 13339, 17835, 16531, 0, - 13339, 17835, 16531, 108, - 13339, 17835, 16531, 126, - 13339, 17835, 16531, 150, - 13339, 17835, 16531, 228, - 13339, 17835, 16531, 248, - 13339, 17835, 16531, 272, - 13339, 17835, 16531, 344, - 13339, 17835, 16531, 358, - 13339, 17835, 16531, 394, - 13339, 17835, 16531, 426, - 13339, 17835, 16531, 466, - 13339, 17835, 16531, 548, - 13339, 17835, 16531, 598, - 13339, 17835, 16531, 614, - 13339, 17835, 16531, 648, - 13339, 17835, 16531, 738, - 13339, 17835, 16531, 762, - 13339, 17835, 16531, 778, - 13339, 17835, 16531, 2698, - 13339, 17835, 16531, 2757, 358, - 13339, 17835, 16531, 2757, 466, - 13339, 21127, 1291, 12318, - 13339, 21127, 16095, 1291, 12318, - 13339, 21143, 22465, 8808, - 13339, 21143, 23919, 8808, - 13339, 25909, 8808, - 13348, - 13380, - 13385, 17298, - 13389, 17298, - 13393, 507, 8946, - 13395, 11513, 21584, - 13404, - 13417, 15678, - 13421, 563, 17298, - 13421, 905, 17340, - 13421, 1993, 17298, - 13421, 2761, 7429, 10574, - 13421, 2761, 7429, 10575, 21003, 7056, - 13421, 2761, 18951, 10574, - 13421, 2835, 17298, - 13421, 3077, 11513, 17265, 17298, - 13421, 3077, 17298, - 13421, 3537, 14417, 10574, - 13421, 3537, 17371, 10574, - 13421, 6065, 17298, - 13421, 7037, 14417, 10574, - 13421, 7059, 14417, 10574, - 13421, 9761, 10574, - 13421, 9788, - 13421, 11673, 10574, - 13421, 11825, 10574, - 13421, 13026, - 13421, 13027, 897, 9788, - 13421, 13027, 897, 15378, - 13421, 13027, 897, 23530, - 13421, 13653, 17298, - 13421, 13819, 10574, - 13421, 13839, 18727, 10574, - 13421, 14578, - 13421, 14579, 897, 9788, - 13421, 14579, 897, 15378, - 13421, 14579, 897, 23530, - 13421, 14911, 16093, 16579, 14869, 17298, - 13421, 14911, 16531, 454, - 13421, 14911, 16531, 490, - 13421, 14911, 16531, 562, - 13421, 14911, 16531, 768, - 13421, 14911, 16531, 1120, - 13421, 14911, 16531, 1420, - 13421, 14911, 16531, 1421, 11513, 9788, - 13421, 14911, 16531, 1421, 11513, 9789, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 13026, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 9789, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 15379, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 23530, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 23531, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 13027, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 14578, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 9789, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 15379, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 23530, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 23531, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 14579, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 15176, - 13421, 14911, 16531, 1421, 11513, 15378, - 13421, 14911, 16531, 1421, 11513, 15379, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 23530, - 13421, 14911, 16531, 1421, 11513, 23531, 897, 25974, - 13421, 14911, 16531, 1421, 11513, 25974, - 13421, 14911, 16531, 2834, - 13421, 14911, 16531, 2882, - 13421, 14911, 16531, 3076, - 13421, 14911, 16531, 3077, 11513, 13026, - 13421, 14911, 16531, 3077, 11513, 14578, - 13421, 14911, 16531, 3184, - 13421, 14911, 16531, 3218, - 13421, 14911, 16531, 3394, - 13421, 14911, 16531, 6064, - 13421, 14911, 16531, 7476, - 13421, 14911, 16531, 7818, - 13421, 14911, 16531, 7819, 11513, 9788, - 13421, 14911, 16531, 7819, 11513, 13026, - 13421, 14911, 16531, 7819, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 7819, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 7819, 11513, 13027, 897, 23530, - 13421, 14911, 16531, 7819, 11513, 14578, - 13421, 14911, 16531, 7819, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 7819, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 7819, 11513, 14579, 897, 23530, - 13421, 14911, 16531, 7819, 11513, 15176, - 13421, 14911, 16531, 7819, 11513, 15378, - 13421, 14911, 16531, 7819, 11513, 16586, - 13421, 14911, 16531, 7819, 11513, 17544, - 13421, 14911, 16531, 7819, 11513, 21194, - 13421, 14911, 16531, 7819, 11513, 21195, 897, 9788, - 13421, 14911, 16531, 7819, 11513, 21195, 897, 15176, - 13421, 14911, 16531, 7819, 11513, 21195, 897, 15378, - 13421, 14911, 16531, 7819, 11513, 21195, 897, 23530, - 13421, 14911, 16531, 7819, 11513, 23530, - 13421, 14911, 16531, 11826, - 13421, 14911, 16531, 12366, - 13421, 14911, 16531, 12367, 11513, 9788, - 13421, 14911, 16531, 12367, 11513, 9789, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 13026, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 9789, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 15379, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 23530, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 23531, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 13027, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 14578, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 9789, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 15379, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 23530, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 23531, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 14579, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 15176, - 13421, 14911, 16531, 12367, 11513, 15378, - 13421, 14911, 16531, 12367, 11513, 15379, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 16586, - 13421, 14911, 16531, 12367, 11513, 17544, - 13421, 14911, 16531, 12367, 11513, 23530, - 13421, 14911, 16531, 12367, 11513, 23531, 897, 25974, - 13421, 14911, 16531, 12367, 11513, 25974, - 13421, 14911, 16531, 13050, - 13421, 14911, 16531, 13259, 14868, - 13421, 14911, 16531, 13332, - 13421, 14911, 16531, 13652, - 13421, 14911, 16531, 13728, - 13421, 14911, 16531, 13770, - 13421, 14911, 16531, 14428, - 13421, 14911, 16531, 14429, 11513, 9788, - 13421, 14911, 16531, 14429, 11513, 9789, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 13026, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 9789, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 15379, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 23530, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 23531, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 13027, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 14578, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 9789, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 15379, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 23530, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 23531, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 14579, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 15176, - 13421, 14911, 16531, 14429, 11513, 15378, - 13421, 14911, 16531, 14429, 11513, 15379, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 23530, - 13421, 14911, 16531, 14429, 11513, 23531, 897, 25974, - 13421, 14911, 16531, 14429, 11513, 25974, - 13421, 14911, 16531, 14742, - 13421, 14911, 16531, 14868, - 13421, 14911, 16531, 15096, - 13421, 14911, 16531, 17248, - 13421, 14911, 16531, 17709, 13728, - 13421, 14911, 16531, 17709, 14742, - 13421, 14911, 16531, 17992, - 13421, 14911, 16531, 18120, - 13421, 14911, 16531, 18121, 11513, 9788, - 13421, 14911, 16531, 18121, 11513, 13026, - 13421, 14911, 16531, 18121, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 18121, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 18121, 11513, 14578, - 13421, 14911, 16531, 18121, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 18121, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 18121, 11513, 15176, - 13421, 14911, 16531, 18121, 11513, 15378, - 13421, 14911, 16531, 18754, - 13421, 14911, 16531, 18755, 11513, 9788, - 13421, 14911, 16531, 18755, 11513, 13026, - 13421, 14911, 16531, 18755, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 18755, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 18755, 11513, 14578, - 13421, 14911, 16531, 18755, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 18755, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 18755, 11513, 15176, - 13421, 14911, 16531, 18755, 11513, 15378, - 13421, 14911, 16531, 19378, - 13421, 14911, 16531, 19379, 11513, 9788, - 13421, 14911, 16531, 19379, 11513, 13026, - 13421, 14911, 16531, 19379, 11513, 13027, 897, 9788, - 13421, 14911, 16531, 19379, 11513, 13027, 897, 15378, - 13421, 14911, 16531, 19379, 11513, 13027, 897, 23530, - 13421, 14911, 16531, 19379, 11513, 14578, - 13421, 14911, 16531, 19379, 11513, 14579, 897, 9788, - 13421, 14911, 16531, 19379, 11513, 14579, 897, 15378, - 13421, 14911, 16531, 19379, 11513, 14579, 897, 23530, - 13421, 14911, 16531, 19379, 11513, 15176, - 13421, 14911, 16531, 19379, 11513, 15378, - 13421, 14911, 16531, 19379, 11513, 16586, - 13421, 14911, 16531, 19379, 11513, 17544, - 13421, 14911, 16531, 19379, 11513, 21194, - 13421, 14911, 16531, 19379, 11513, 21195, 897, 9788, - 13421, 14911, 16531, 19379, 11513, 21195, 897, 15176, - 13421, 14911, 16531, 19379, 11513, 21195, 897, 15378, - 13421, 14911, 16531, 19379, 11513, 21195, 897, 23530, - 13421, 14911, 16531, 19379, 11513, 23530, - 13421, 14911, 16531, 22739, 17992, - 13421, 14911, 20587, 16093, 16579, 14869, 17298, - 13421, 14911, 20587, 16579, 14869, 17298, - 13421, 15097, 17298, - 13421, 15117, 14417, 10574, - 13421, 15117, 20547, 10574, - 13421, 15176, - 13421, 15378, - 13421, 15405, 20377, 20778, - 13421, 15405, 20377, 20780, - 13421, 15405, 20377, 20782, - 13421, 15405, 20377, 20784, - 13421, 15405, 20377, 20786, - 13421, 15405, 20377, 20788, - 13421, 15405, 20377, 20790, - 13421, 15405, 20377, 20792, - 13421, 15405, 20377, 20794, - 13421, 15405, 20377, 21940, - 13421, 15405, 20377, 21942, - 13421, 15405, 20377, 21944, - 13421, 15405, 20377, 21946, - 13421, 15405, 20377, 21948, - 13421, 15405, 20377, 21950, - 13421, 15405, 20377, 21952, - 13421, 15405, 20377, 21954, - 13421, 15405, 20377, 21956, - 13421, 15405, 20377, 21958, - 13421, 15405, 20377, 21960, - 13421, 15405, 20377, 21962, - 13421, 15405, 20377, 21964, - 13421, 15405, 20377, 21966, - 13421, 15405, 20377, 21968, - 13421, 15405, 20377, 22004, - 13421, 15405, 20377, 22006, - 13421, 15405, 20377, 22008, - 13421, 15405, 20377, 22010, - 13421, 15405, 20377, 22012, - 13421, 15735, 10574, - 13421, 15743, 10574, - 13421, 16281, 10574, - 13421, 16531, 3960, - 13421, 16531, 13728, - 13421, 16531, 14742, - 13421, 16531, 14911, 17835, 562, - 13421, 16531, 14911, 17835, 2882, - 13421, 16531, 14911, 17835, 3076, - 13421, 16531, 14911, 17835, 13332, - 13421, 16531, 14911, 17835, 13770, - 13421, 16531, 14911, 17835, 14428, - 13421, 16531, 17248, - 13421, 16531, 17709, 13728, - 13421, 16531, 17992, - 13421, 16579, 14869, 17298, - 13421, 16579, 18121, 17298, - 13421, 16835, 10574, - 13421, 17299, 3395, 3076, - 13421, 17313, 10574, - 13421, 17593, 10574, - 13421, 17835, 1993, 17298, - 13421, 17835, 15097, 17298, - 13421, 17835, 16093, 16579, 14869, 17298, - 13421, 17835, 16531, 454, - 13421, 17835, 16531, 490, - 13421, 17835, 16531, 562, - 13421, 17835, 16531, 768, - 13421, 17835, 16531, 1120, - 13421, 17835, 16531, 1420, - 13421, 17835, 16531, 1421, 11513, 9788, - 13421, 17835, 16531, 1421, 11513, 13026, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 9789, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 15379, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 23530, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 23531, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 13027, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 14578, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 9788, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 9789, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 15378, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 15379, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 23530, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 23531, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 14579, 897, 26156, - 13421, 17835, 16531, 1421, 11513, 15176, - 13421, 17835, 16531, 1421, 11513, 15378, - 13421, 17835, 16531, 1421, 11513, 26156, - 13421, 17835, 16531, 2834, - 13421, 17835, 16531, 2882, - 13421, 17835, 16531, 3076, - 13421, 17835, 16531, 3077, 11513, 13026, - 13421, 17835, 16531, 3184, - 13421, 17835, 16531, 3218, - 13421, 17835, 16531, 3394, - 13421, 17835, 16531, 3960, - 13421, 17835, 16531, 6064, - 13421, 17835, 16531, 7476, - 13421, 17835, 16531, 7818, - 13421, 17835, 16531, 7819, 11513, 9788, - 13421, 17835, 16531, 7819, 11513, 13026, - 13421, 17835, 16531, 7819, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 7819, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 7819, 11513, 13027, 897, 23530, - 13421, 17835, 16531, 7819, 11513, 14578, - 13421, 17835, 16531, 7819, 11513, 14579, 897, 9788, - 13421, 17835, 16531, 7819, 11513, 14579, 897, 15378, - 13421, 17835, 16531, 7819, 11513, 14579, 897, 23530, - 13421, 17835, 16531, 7819, 11513, 15176, - 13421, 17835, 16531, 7819, 11513, 15378, - 13421, 17835, 16531, 7819, 11513, 16586, - 13421, 17835, 16531, 7819, 11513, 17544, - 13421, 17835, 16531, 7819, 11513, 21194, - 13421, 17835, 16531, 11826, - 13421, 17835, 16531, 12366, - 13421, 17835, 16531, 12367, 11513, 9788, - 13421, 17835, 16531, 12367, 11513, 13026, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 9789, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 15379, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 23530, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 23531, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 13027, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 14578, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 9788, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 9789, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 15378, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 15379, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 23530, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 23531, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 14579, 897, 26156, - 13421, 17835, 16531, 12367, 11513, 15176, - 13421, 17835, 16531, 12367, 11513, 15378, - 13421, 17835, 16531, 12367, 11513, 16586, - 13421, 17835, 16531, 12367, 11513, 17544, - 13421, 17835, 16531, 12367, 11513, 26156, - 13421, 17835, 16531, 13050, - 13421, 17835, 16531, 13332, - 13421, 17835, 16531, 13652, - 13421, 17835, 16531, 13770, - 13421, 17835, 16531, 14428, - 13421, 17835, 16531, 14429, 11513, 9788, - 13421, 17835, 16531, 14429, 11513, 13026, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 9789, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 15379, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 23530, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 23531, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 13027, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 14578, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 9788, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 9789, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 15378, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 15379, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 23530, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 23531, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 14579, 897, 26156, - 13421, 17835, 16531, 14429, 11513, 15176, - 13421, 17835, 16531, 14429, 11513, 15378, - 13421, 17835, 16531, 14429, 11513, 26156, - 13421, 17835, 16531, 14868, - 13421, 17835, 16531, 15096, - 13421, 17835, 16531, 17709, 14742, - 13421, 17835, 16531, 18120, - 13421, 17835, 16531, 18121, 11513, 9788, - 13421, 17835, 16531, 18121, 11513, 13026, - 13421, 17835, 16531, 18121, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 18121, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 18121, 11513, 14578, - 13421, 17835, 16531, 18121, 11513, 14579, 897, 9788, - 13421, 17835, 16531, 18121, 11513, 14579, 897, 15378, - 13421, 17835, 16531, 18121, 11513, 15176, - 13421, 17835, 16531, 18121, 11513, 15378, - 13421, 17835, 16531, 18754, - 13421, 17835, 16531, 18755, 11513, 9788, - 13421, 17835, 16531, 18755, 11513, 13026, - 13421, 17835, 16531, 18755, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 18755, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 18755, 11513, 14578, - 13421, 17835, 16531, 18755, 11513, 14579, 897, 9788, - 13421, 17835, 16531, 18755, 11513, 14579, 897, 15378, - 13421, 17835, 16531, 18755, 11513, 15176, - 13421, 17835, 16531, 18755, 11513, 15378, - 13421, 17835, 16531, 19378, - 13421, 17835, 16531, 19379, 11513, 9788, - 13421, 17835, 16531, 19379, 11513, 13026, - 13421, 17835, 16531, 19379, 11513, 13027, 897, 9788, - 13421, 17835, 16531, 19379, 11513, 13027, 897, 15378, - 13421, 17835, 16531, 19379, 11513, 13027, 897, 23530, - 13421, 17835, 16531, 19379, 11513, 15176, - 13421, 17835, 16531, 19379, 11513, 15378, - 13421, 17835, 16531, 19379, 11513, 16586, - 13421, 17835, 16531, 19379, 11513, 17544, - 13421, 17835, 16531, 19379, 11513, 21194, - 13421, 17835, 16531, 22739, 17992, - 13421, 17835, 16579, 14869, 17298, - 13421, 17835, 20587, 16093, 16579, 14869, 17298, - 13421, 17835, 20587, 16579, 14869, 17298, - 13421, 18079, 10574, - 13421, 18382, - 13421, 18395, 5993, 10574, - 13421, 18655, 16522, - 13421, 18727, 10574, - 13421, 19379, 11513, 7659, 17298, - 13421, 19379, 11513, 12321, 897, 7659, 17298, - 13421, 19379, 11513, 21189, 897, 7659, 17298, - 13421, 20305, 10574, - 13421, 20549, 8808, - 13421, 20587, 16579, 18121, 17298, - 13421, 20663, 10574, - 13421, 20893, 5993, 10574, - 13421, 21195, 897, 9788, - 13421, 21195, 897, 15378, - 13421, 21195, 897, 23530, - 13421, 21195, 15176, - 13421, 21501, 10574, - 13421, 21927, 14911, 16531, 1120, - 13421, 21927, 14911, 16531, 2834, - 13421, 21927, 14911, 16531, 3076, - 13421, 21927, 14911, 16531, 6064, - 13421, 21927, 14911, 16531, 13332, - 13421, 22145, 12431, 2761, 7428, - 13421, 22145, 12431, 2761, 18078, - 13421, 22145, 12431, 2761, 18281, 19178, - 13421, 22145, 12431, 2761, 18281, 19250, - 13421, 22145, 12431, 2761, 18950, - 13421, 22145, 12431, 2761, 20829, 19178, - 13421, 22145, 12431, 2761, 20829, 19250, - 13421, 22145, 12431, 3413, 8958, - 13421, 22145, 12431, 3413, 19178, - 13421, 22145, 12431, 3413, 19250, - 13421, 22145, 12431, 3413, 20829, 19178, - 13421, 22145, 12431, 7036, - 13421, 22145, 12431, 7037, 18280, - 13421, 22145, 12431, 7037, 18281, 19178, - 13421, 22145, 12431, 7037, 18281, 19250, - 13421, 22145, 12431, 7037, 19178, - 13421, 22145, 12431, 7037, 19250, - 13421, 22145, 12431, 7037, 20828, - 13421, 22145, 12431, 7037, 20829, 19250, - 13421, 22145, 12431, 13254, - 13421, 22145, 12431, 13255, 19178, - 13421, 22145, 12431, 13255, 19250, - 13421, 22145, 12431, 13255, 20828, - 13421, 22145, 12431, 13255, 20829, 19178, - 13421, 22145, 16707, 7037, 18280, - 13421, 22145, 17977, 7037, 8958, - 13421, 22145, 18265, 2761, 20496, - 13421, 22145, 19757, 3537, 19944, - 13421, 22145, 20733, 13255, 8958, - 13421, 22145, 20821, 2760, - 13421, 22145, 20821, 2761, 18280, - 13421, 22145, 20821, 2761, 20828, - 13421, 22145, 20821, 3412, - 13421, 22145, 20821, 3536, - 13421, 22145, 20821, 7037, 18280, - 13421, 22145, 20821, 7037, 20828, - 13421, 22145, 20821, 13254, - 13421, 22145, 20821, 15117, 18280, - 13421, 22145, 20821, 17372, - 13421, 22145, 21095, 7037, 18280, - 13421, 22145, 21589, 3412, - 13421, 22145, 22429, 3536, - 13421, 22145, 22429, 3537, 19944, - 13421, 22145, 22429, 7037, 18280, - 13421, 22145, 22485, 2760, - 13421, 22145, 22485, 3412, - 13421, 22145, 22485, 13254, - 13421, 22145, 22989, 3412, - 13421, 22145, 22989, 3413, 21003, 7056, - 13421, 22145, 22989, 7036, - 13421, 22145, 22989, 7037, 18280, - 13421, 22145, 22989, 13254, - 13421, 22145, 22989, 13255, 21003, 7056, - 13421, 23530, - 13421, 23879, 20377, 20778, - 13421, 23879, 20377, 20780, - 13421, 23879, 20377, 20784, - 13421, 23879, 20377, 20786, - 13421, 23879, 20377, 20790, - 13421, 23879, 20377, 20792, - 13421, 23879, 20377, 21942, - 13421, 23879, 20377, 21944, - 13421, 23879, 20377, 21946, - 13421, 23879, 20377, 21948, - 13421, 23879, 20377, 21954, - 13421, 23879, 20377, 21956, - 13421, 23879, 20377, 21958, - 13421, 23879, 20377, 21966, - 13421, 23879, 20377, 21968, - 13421, 23879, 20377, 21970, - 13421, 23879, 20377, 21972, - 13421, 23879, 20377, 21974, - 13421, 23879, 20377, 21976, - 13421, 23879, 20377, 21978, - 13421, 23879, 20377, 21980, - 13421, 23879, 20377, 21982, - 13421, 23879, 20377, 21984, - 13421, 23879, 20377, 21986, - 13421, 23879, 20377, 21988, - 13421, 23879, 20377, 21990, - 13421, 23879, 20377, 21992, - 13421, 23879, 20377, 21994, - 13421, 23879, 20377, 21996, - 13421, 23879, 20377, 21998, - 13421, 23879, 20377, 22000, - 13421, 23879, 20377, 22002, - 13421, 23879, 20377, 22004, - 13421, 23879, 20377, 22006, - 13421, 23879, 20377, 22008, - 13421, 23879, 20377, 22010, - 13421, 23879, 20377, 22012, - 13421, 25974, - 13421, 26156, - 13423, 6108, - 13423, 12398, - 13423, 13470, - 13423, 14732, - 13425, 8808, - 13429, 1280, - 13444, - 13452, - 13461, 16891, 18967, 2761, 7432, - 13471, 11513, 3445, 521, 3425, 8280, - 13471, 11513, 12414, - 13471, 11513, 17026, - 13471, 13458, - 13471, 22264, - 13473, 2301, 16095, 12923, 21779, 8809, 20412, - 13473, 2301, 17171, 12923, 21779, 8809, 20412, - 13473, 3241, 17211, 19574, - 13473, 3241, 18889, 12525, 10690, - 13473, 7037, 17211, 19574, - 13473, 7037, 18889, 12525, 10690, - 13473, 7059, 25987, 19574, - 13473, 9783, 15901, 12934, - 13473, 9785, 11513, 9785, 16382, - 13473, 9905, 10574, - 13473, 12415, 14785, 15459, 2760, - 13473, 12415, 14785, 15459, 2761, 7428, - 13473, 12415, 14785, 15459, 2761, 15108, - 13473, 12415, 14785, 15459, 3537, 17370, - 13473, 12525, 13470, - 13473, 12525, 16001, 19381, 897, 22837, 12414, - 13473, 12525, 16001, 21349, 897, 22837, 12414, - 13473, 12659, 8808, - 13473, 13151, 17211, 19574, - 13473, 13151, 18889, 12525, 10690, - 13473, 13151, 18889, 20489, 10690, - 13473, 13151, 18889, 23575, 12525, 10690, - 13473, 13151, 28085, 21769, 19574, - 13473, 13421, 12934, - 13473, 13471, 23213, 8809, 20412, - 13473, 13779, 15938, - 13473, 13783, 12934, - 13473, 13839, 26165, 15453, 22837, 12414, - 13473, 14005, 10574, - 13473, 14255, 6833, 12414, - 13473, 14255, 6833, 20501, 1044, - 13473, 14255, 6833, 20501, 11391, 8276, - 13473, 14255, 11489, 20501, 1044, - 13473, 14255, 11489, 20501, 11391, 8276, - 13473, 14931, 6833, 12414, - 13473, 14931, 6833, 20501, 1044, - 13473, 14931, 6833, 20501, 11391, 8276, - 13473, 14931, 11489, 20501, 1044, - 13473, 14931, 11489, 20501, 11391, 8276, - 13473, 15287, 26165, 15453, 22837, 12414, - 13473, 15453, 15938, - 13473, 15453, 17224, - 13473, 15453, 17225, 22239, 12525, 11371, 14911, 17224, - 13473, 15453, 25763, 20858, - 13473, 15773, 46, - 13473, 15938, - 13473, 15939, 11513, 15939, 16382, - 13473, 15939, 11513, 17265, 897, 3537, 6697, 12318, - 13473, 16019, 28089, 22837, 12414, - 13473, 16067, 10574, - 13473, 16095, 12923, 21779, 8809, 20412, - 13473, 16095, 17465, 12923, 21779, 8809, 20412, - 13473, 16121, 10574, - 13473, 17089, 20241, 217, 20412, - 13473, 17171, 12923, 21779, 8809, 20412, - 13473, 17171, 17465, 12923, 21779, 8809, 20412, - 13473, 17473, 18889, 12525, 10690, - 13473, 17473, 18889, 20489, 10690, - 13473, 17867, 21886, - 13473, 17881, 19032, - 13473, 19032, - 13473, 19148, - 13473, 19381, 12415, 11513, 13779, 23211, 21022, - 13473, 19381, 12415, 11513, 23211, 21022, - 13473, 19574, - 13473, 19817, 10574, - 13473, 20241, 9783, 217, 20412, - 13473, 20419, 12525, 10690, - 13473, 20933, 964, - 13473, 21007, 20412, - 13473, 21349, 12415, 11513, 13779, 23211, 21022, - 13473, 21349, 12415, 11513, 23211, 21022, - 13473, 21557, 12415, 11513, 13779, 23211, 21022, - 13473, 21557, 12415, 11513, 23211, 21022, - 13473, 22495, 7022, - 13473, 22837, 12414, - 13473, 22837, 12415, 11513, 13779, 23211, 21022, - 13473, 22837, 12415, 11513, 23211, 21022, - 13473, 22841, 23285, 20412, - 13473, 23213, 8809, 17298, - 13473, 23213, 8809, 20412, - 13473, 23285, 20412, - 13473, 23733, 22837, 12414, - 13473, 24083, 22837, 12414, - 13473, 24183, 22837, 12414, - 13473, 25813, 12379, 17811, 20412, - 13473, 25813, 12379, 21779, 8809, 20412, - 13473, 26135, 46, - 13473, 26163, 12379, 17811, 20412, - 13473, 26163, 12379, 21779, 8809, 20412, - 13473, 26301, 14255, 6833, 12414, - 13473, 26301, 14931, 6833, 12414, - 13473, 26301, 22837, 12414, - 13473, 28045, 12525, 22837, 12414, - 13473, 28085, 19574, - 13473, 28085, 20489, 19574, - 13473, 28089, 22837, 12414, - 13473, 36225, 22837, 12414, - 13487, 17348, - 13526, - 13531, 2868, - 13536, - 13537, 6996, - 13537, 17004, - 13538, - 13540, - 13541, 11513, 16234, - 13541, 19642, - 13541, 21076, - 13589, 506, - 13589, 507, 529, 24195, 13177, 660, - 13593, 11044, - 13595, 20501, 95, 3425, 17530, - 13597, 14879, 8251, 8808, - 13597, 14879, 14699, 8808, - 13597, 14879, 16787, 2760, - 13597, 14879, 16787, 2761, 18280, - 13597, 14879, 16787, 2761, 20828, - 13597, 14879, 16787, 3240, - 13597, 14879, 16787, 3241, 18280, - 13597, 14879, 16787, 3241, 20828, - 13597, 14879, 16787, 3412, - 13597, 14879, 16787, 3413, 20828, - 13597, 14879, 16787, 3536, - 13597, 14879, 16787, 3537, 18280, - 13597, 14879, 16787, 3537, 20828, - 13597, 14879, 16787, 7036, - 13597, 14879, 16787, 7037, 18280, - 13597, 14879, 16787, 7037, 20828, - 13597, 14879, 16787, 7058, - 13597, 14879, 16787, 7059, 18280, - 13597, 14879, 16787, 7059, 20828, - 13597, 14879, 16787, 8250, - 13597, 14879, 16787, 9358, - 13597, 14879, 16787, 9359, 18280, - 13597, 14879, 16787, 9359, 20828, - 13597, 14879, 16787, 13150, - 13597, 14879, 16787, 13151, 18280, - 13597, 14879, 16787, 13151, 20828, - 13597, 14879, 16787, 13254, - 13597, 14879, 16787, 13255, 20828, - 13597, 14879, 16787, 13284, - 13597, 14879, 16787, 13285, 20828, - 13597, 14879, 16787, 13658, - 13597, 14879, 16787, 14778, - 13597, 14879, 16787, 14779, 18280, - 13597, 14879, 16787, 14779, 20828, - 13597, 14879, 16787, 14876, - 13597, 14879, 16787, 14877, 20828, - 13597, 14879, 16787, 15116, - 13597, 14879, 16787, 15117, 18280, - 13597, 14879, 16787, 15117, 20828, - 13597, 14879, 16787, 16108, - 13597, 14879, 16787, 16109, 20828, - 13597, 14879, 16787, 16502, - 13597, 14879, 16787, 16744, - 13597, 14879, 16787, 16745, 20828, - 13597, 14879, 16787, 17372, - 13597, 14879, 16787, 17373, 20828, - 13597, 14879, 16787, 17474, - 13597, 14879, 16787, 17475, 20828, - 13597, 14879, 16787, 18338, - 13597, 14879, 16787, 19070, - 13597, 14879, 16787, 19071, 20828, - 13597, 14879, 16787, 20523, 2760, - 13597, 14879, 16787, 20523, 3240, - 13597, 14879, 16787, 20523, 3536, - 13597, 14879, 16787, 20523, 7036, - 13597, 14879, 16787, 20523, 7058, - 13597, 14879, 16787, 20523, 9358, - 13597, 14879, 16787, 20523, 13150, - 13597, 14879, 16787, 20523, 14778, - 13597, 14879, 16787, 20523, 15116, - 13597, 14879, 16787, 21003, 2760, - 13597, 14879, 16787, 21003, 3413, 20828, - 13597, 14879, 16787, 21003, 3536, - 13597, 14879, 20055, 2761, 7428, - 13597, 14879, 20055, 2761, 18950, - 13597, 14879, 20055, 15117, 20546, - 13597, 14879, 21003, 8251, 8808, - 13597, 14879, 23548, - 13601, 17299, 1493, 13783, 14911, 18510, - 13601, 17299, 1493, 13783, 17835, 18510, - 13601, 17299, 1493, 13783, 18510, - 13601, 17299, 1493, 18724, - 13601, 17299, 1493, 19228, - 13608, - 13640, - 13665, 403, 10575, 1176, - 13665, 403, 10575, 10538, - 13665, 403, 11033, 12602, - 13665, 403, 11033, 12603, 16928, - 13665, 403, 11033, 16928, - 13665, 403, 13069, 2760, - 13665, 403, 13069, 3240, - 13665, 403, 13069, 3536, - 13665, 403, 13069, 7036, - 13665, 403, 13069, 7058, - 13665, 403, 13069, 9358, - 13665, 403, 13069, 11824, - 13665, 403, 13069, 13150, - 13665, 403, 13069, 14778, - 13665, 403, 13069, 15116, - 13665, 403, 15407, 8, - 13665, 403, 15407, 28, - 13665, 403, 15407, 40, - 13665, 403, 15407, 186, - 13665, 403, 15407, 682, - 13665, 403, 16531, 0, - 13665, 403, 16531, 16, - 13665, 403, 16531, 108, - 13665, 403, 16531, 126, - 13665, 403, 16531, 150, - 13665, 403, 16531, 248, - 13665, 403, 16531, 272, - 13665, 403, 16531, 358, - 13665, 403, 16531, 394, - 13665, 403, 16531, 426, - 13665, 403, 16531, 466, - 13665, 403, 16531, 504, - 13665, 403, 16531, 522, - 13665, 403, 16531, 548, - 13665, 403, 16531, 598, - 13665, 403, 16531, 614, - 13665, 403, 16531, 648, - 13665, 403, 16531, 714, - 13665, 403, 16531, 738, - 13665, 403, 16531, 778, - 13665, 403, 16531, 796, - 13665, 403, 16531, 1796, - 13665, 403, 16531, 2036, - 13665, 403, 16531, 2574, - 13665, 403, 16531, 2698, - 13665, 403, 16531, 2830, - 13665, 403, 16531, 3212, - 13665, 403, 16531, 3422, - 13695, 10575, 2237, 3470, - 13695, 10575, 8058, - 13695, 10575, 12340, - 13695, 10575, 12914, - 13695, 10575, 14668, - 13695, 10575, 15780, - 13695, 10575, 15806, - 13695, 10575, 15869, 2845, 8190, - 13695, 10575, 16899, 8994, - 13695, 10575, 17065, 17072, - 13695, 10575, 17536, - 13695, 10575, 18330, - 13695, 10575, 18376, - 13695, 10575, 18706, - 13695, 10575, 18980, - 13695, 10575, 19316, - 13695, 10575, 19584, - 13695, 10575, 22198, - 13695, 10575, 22202, - 13695, 10575, 23348, - 13695, 10575, 23698, - 13695, 10575, 24198, - 13695, 10575, 25976, - 13695, 13069, 2760, - 13695, 13069, 3240, - 13695, 13069, 3536, - 13695, 13069, 7036, - 13695, 13069, 7058, - 13695, 13069, 9358, - 13695, 13069, 11824, - 13695, 13069, 13150, - 13695, 13069, 14778, - 13695, 13069, 15116, - 13695, 15407, 10575, 8, - 13695, 15407, 10575, 16, - 13695, 15407, 10575, 40, - 13695, 15407, 10575, 48, - 13695, 15407, 10575, 58, - 13695, 15407, 10575, 66, - 13695, 15407, 10575, 72, - 13695, 15407, 10575, 96, - 13695, 15407, 10575, 306, - 13695, 15407, 10575, 314, - 13695, 15407, 10575, 504, - 13695, 15407, 10575, 522, - 13695, 15407, 10575, 674, - 13695, 15407, 10575, 706, - 13695, 15407, 10575, 778, - 13695, 15407, 10575, 794, - 13695, 15407, 20155, 58, - 13695, 15407, 20155, 88, - 13695, 16531, 108, - 13695, 16531, 126, - 13695, 16531, 142, - 13695, 16531, 150, - 13695, 16531, 168, - 13695, 16531, 272, - 13695, 16531, 358, - 13695, 16531, 374, - 13695, 16531, 394, - 13695, 16531, 412, - 13695, 16531, 446, - 13695, 16531, 486, - 13695, 16531, 566, - 13695, 16531, 582, - 13695, 16531, 606, - 13695, 16531, 614, - 13695, 16531, 648, - 13695, 16531, 660, - 13695, 16531, 722, - 13695, 16531, 786, - 13695, 16531, 1116, - 13695, 16531, 1122, - 13695, 16531, 2036, - 13695, 16531, 2042, - 13695, 16531, 2582, - 13695, 16531, 2630, - 13695, 16531, 2706, - 13695, 16531, 2830, - 13695, 16531, 2836, - 13695, 16531, 3212, - 13695, 16531, 3292, - 13695, 16531, 3422, - 13695, 16531, 3428, - 13695, 16531, 11082, - 13695, 16531, 11088, - 13695, 17299, 991, 3102, - 13695, 17299, 991, 8128, - 13695, 17299, 1205, 3102, - 13695, 17299, 1205, 8128, - 13695, 17299, 2237, 12429, 990, - 13695, 17299, 2237, 12429, 2844, - 13695, 17299, 2237, 12429, 3256, - 13695, 17299, 2237, 12429, 6128, - 13695, 17299, 2237, 12429, 9012, - 13695, 17299, 2237, 12429, 9916, - 13695, 17299, 2237, 12429, 20514, - 13695, 17299, 2237, 12429, 20516, - 13695, 17299, 2237, 12429, 21758, - 13695, 17299, 2237, 12429, 21760, - 13695, 17299, 2845, 3102, - 13695, 17299, 2845, 8128, - 13695, 17299, 6129, 3102, - 13695, 17299, 6129, 8128, - 13695, 17299, 9013, 3102, - 13695, 17299, 9013, 8128, - 13695, 17299, 9917, 3102, - 13695, 17299, 9917, 8128, - 13695, 17299, 17965, 3102, - 13695, 17299, 17965, 8128, - 13695, 17299, 17967, 3102, - 13695, 17299, 17967, 8128, - 13695, 17299, 19763, 3102, - 13695, 17299, 19763, 8128, - 13695, 17299, 19765, 3102, - 13695, 17299, 19765, 8128, - 13695, 17299, 19767, 3102, - 13695, 17299, 19767, 8128, - 13695, 17299, 20515, 3102, - 13695, 17299, 20515, 8128, - 13695, 17299, 20517, 3102, - 13695, 17299, 20517, 8128, - 13695, 17299, 21759, 3102, - 13695, 17299, 21759, 8128, - 13695, 17299, 21761, 3102, - 13695, 17299, 21761, 8128, - 13695, 17299, 22080, - 13695, 17299, 22752, - 13695, 19753, 17299, 10148, - 13695, 23273, 15407, 422, - 13695, 23273, 15407, 584, - 13695, 23273, 15407, 586, - 13695, 23273, 15407, 594, - 13695, 23273, 15407, 612, - 13695, 23273, 15407, 2356, - 13695, 23273, 15407, 2924, - 13695, 23273, 15407, 2928, - 13695, 23273, 15407, 2930, - 13695, 23273, 15407, 2934, - 13695, 23273, 15407, 2956, - 13695, 23273, 15407, 2969, 11141, 2760, - 13695, 23273, 15407, 2969, 11141, 3536, - 13695, 23273, 15407, 2984, - 13695, 23273, 15407, 2994, - 13695, 23273, 15407, 3168, - 13695, 23273, 15407, 10004, - 13709, 3039, 10575, 10374, - 13709, 3039, 10575, 11764, - 13709, 3039, 10575, 15178, - 13709, 3039, 10575, 17534, - 13709, 3039, 10575, 19408, - 13709, 3039, 10575, 19540, - 13709, 3039, 13016, - 13709, 3039, 13069, 2760, - 13709, 3039, 13069, 3240, - 13709, 3039, 13069, 3536, - 13709, 3039, 13069, 7036, - 13709, 3039, 13069, 7058, - 13709, 3039, 13069, 9358, - 13709, 3039, 13069, 11824, - 13709, 3039, 13069, 13150, - 13709, 3039, 13069, 14778, - 13709, 3039, 13069, 15116, - 13709, 3039, 15407, 10575, 8, - 13709, 3039, 15407, 10575, 16, - 13709, 3039, 15407, 10575, 28, - 13709, 3039, 15407, 10575, 40, - 13709, 3039, 15407, 10575, 58, - 13709, 3039, 15407, 10575, 72, - 13709, 3039, 15407, 10575, 96, - 13709, 3039, 15407, 10575, 682, - 13709, 3039, 16095, 13016, - 13709, 3039, 16531, 0, - 13709, 3039, 16531, 108, - 13709, 3039, 16531, 126, - 13709, 3039, 16531, 150, - 13709, 3039, 16531, 248, - 13709, 3039, 16531, 272, - 13709, 3039, 16531, 344, - 13709, 3039, 16531, 358, - 13709, 3039, 16531, 394, - 13709, 3039, 16531, 426, - 13709, 3039, 16531, 466, - 13709, 3039, 16531, 548, - 13709, 3039, 16531, 598, - 13709, 3039, 16531, 614, - 13709, 3039, 16531, 648, - 13709, 3039, 16531, 714, - 13709, 3039, 16531, 778, - 13709, 3039, 16531, 1000, - 13709, 3039, 16531, 1116, - 13709, 3039, 16531, 1214, - 13709, 3039, 16531, 1236, - 13709, 3039, 16531, 1588, - 13709, 3039, 16531, 1918, - 13709, 3039, 16531, 2036, - 13709, 3039, 16531, 2574, - 13709, 3039, 16531, 2698, - 13709, 3039, 16531, 2830, - 13709, 3039, 16531, 3212, - 13709, 3039, 16531, 3422, - 13709, 3039, 16531, 3502, - 13709, 3039, 16531, 6572, - 13709, 3039, 16531, 11082, - 13720, - 13758, - 13779, 699, 10850, - 13779, 2761, 1291, 9787, 3537, 6697, 23554, - 13779, 2761, 10151, 9787, 3537, 14661, 23554, - 13779, 3059, 15938, - 13779, 3059, 17224, - 13779, 3537, 6697, 9787, 2761, 1291, 23554, - 13779, 3537, 14661, 9787, 2761, 10151, 23554, - 13779, 6093, 15938, - 13779, 6093, 17224, - 13779, 6093, 17988, - 13779, 6701, 10850, - 13779, 8281, 20859, 20406, - 13779, 11141, 14533, 8281, 920, - 13779, 11141, 14533, 10692, - 13779, 11141, 14533, 10693, 11513, 8281, 13624, - 13779, 11141, 14533, 10693, 11513, 8281, 19740, - 13779, 11141, 14533, 10693, 11513, 14659, 19740, - 13779, 11141, 14533, 10693, 11513, 19740, - 13779, 11141, 14533, 13839, 7429, 17525, 507, 24, - 13779, 11141, 14533, 13839, 7429, 17525, 507, 44, - 13779, 11141, 14533, 13839, 8281, 897, 15287, 8281, 916, - 13779, 11141, 14533, 13839, 8281, 916, - 13779, 11141, 14533, 13839, 8281, 15974, - 13779, 11141, 14533, 13839, 8281, 15988, - 13779, 11141, 14533, 13839, 14659, 897, 15287, 14659, 916, - 13779, 11141, 14533, 13839, 14659, 916, - 13779, 11141, 14533, 13839, 14659, 917, 11513, 10856, - 13779, 11141, 14533, 13839, 14659, 15974, - 13779, 11141, 14533, 13839, 14659, 15988, - 13779, 11141, 14533, 13839, 20812, - 13779, 11141, 14533, 14659, 920, - 13779, 11141, 14533, 14837, 13839, 20812, - 13779, 11141, 14533, 14837, 15287, 20812, - 13779, 11141, 14533, 15287, 7429, 17525, 507, 24, - 13779, 11141, 14533, 15287, 7429, 17525, 507, 44, - 13779, 11141, 14533, 15287, 8281, 916, - 13779, 11141, 14533, 15287, 8281, 15974, - 13779, 11141, 14533, 15287, 8281, 15988, - 13779, 11141, 14533, 15287, 14659, 916, - 13779, 11141, 14533, 15287, 14659, 15974, - 13779, 11141, 14533, 15287, 14659, 15988, - 13779, 11141, 14533, 15287, 20812, - 13779, 11141, 14533, 15901, 507, 20, - 13779, 11141, 14533, 15901, 507, 46, - 13779, 11141, 14533, 15901, 507, 48, - 13779, 11141, 14533, 15901, 507, 51, 11513, 19740, - 13779, 11141, 14533, 17007, 15287, 8281, 916, - 13779, 11141, 14533, 17236, - 13779, 11141, 14533, 17238, - 13779, 11141, 14533, 17240, - 13779, 11141, 14533, 17525, 507, 42, - 13779, 11141, 14533, 19188, - 13779, 11141, 14533, 19190, - 13779, 11141, 14533, 19192, - 13779, 11141, 14533, 19194, - 13779, 11141, 14533, 19740, - 13779, 11141, 14533, 19741, 11513, 13839, 10692, - 13779, 11141, 14533, 19741, 11513, 15287, 10692, - 13779, 11141, 14533, 19791, 13839, 8280, - 13779, 11141, 14533, 19791, 13839, 14658, - 13779, 11141, 14533, 19791, 15287, 8280, - 13779, 11141, 14533, 19791, 15287, 8281, 897, 13839, 8280, - 13779, 11141, 14533, 19791, 15287, 14658, - 13779, 11141, 14533, 19791, 15287, 14659, 897, 13839, 14658, - 13779, 11141, 14533, 20716, - 13779, 11141, 14533, 21902, - 13779, 11141, 14533, 21904, - 13779, 12565, 15938, - 13779, 12565, 17224, - 13779, 13423, 15938, - 13779, 13423, 17224, - 13779, 15938, - 13779, 16821, 15938, - 13779, 16821, 17224, - 13779, 16821, 17988, - 13779, 16987, 15938, - 13779, 16987, 17224, - 13779, 17435, 20933, 965, 20406, - 13779, 17599, 15938, - 13779, 17599, 17224, - 13783, 12934, - 13783, 14911, 16531, 0, - 13783, 14911, 16531, 1, 11513, 1291, 12318, - 13783, 14911, 16531, 1, 11513, 1291, 12319, 897, 16586, - 13783, 14911, 16531, 1, 11513, 1291, 12502, - 13783, 14911, 16531, 1, 11513, 7659, 12318, - 13783, 14911, 16531, 1, 11513, 10151, 12318, - 13783, 14911, 16531, 1, 11513, 10151, 12319, 897, 12320, - 13783, 14911, 16531, 1, 11513, 10151, 12502, - 13783, 14911, 16531, 1, 11513, 12320, - 13783, 14911, 16531, 1, 11513, 12554, - 13783, 14911, 16531, 1, 11513, 12555, 897, 1291, 12502, - 13783, 14911, 16531, 1, 11513, 12555, 897, 7659, 12318, - 13783, 14911, 16531, 1, 11513, 12555, 897, 12320, - 13783, 14911, 16531, 1, 11513, 12555, 897, 13416, - 13783, 14911, 16531, 1, 11513, 12555, 897, 15140, - 13783, 14911, 16531, 1, 11513, 12620, - 13783, 14911, 16531, 1, 11513, 13416, - 13783, 14911, 16531, 1, 11513, 14659, 7429, 10150, - 13783, 14911, 16531, 1, 11513, 15140, - 13783, 14911, 16531, 1, 11513, 16095, 13416, - 13783, 14911, 16531, 1, 11513, 16586, - 13783, 14911, 16531, 1, 11513, 16804, - 13783, 14911, 16531, 1, 11513, 17264, - 13783, 14911, 16531, 1, 11513, 20163, 12554, - 13783, 14911, 16531, 1, 11513, 21188, - 13783, 14911, 16531, 1, 11513, 21189, 897, 16586, - 13783, 14911, 16531, 1, 11513, 21813, 7658, - 13783, 14911, 16531, 1, 11513, 22222, - 13783, 14911, 16531, 1, 11513, 22223, 897, 1291, 12502, - 13783, 14911, 16531, 1, 11513, 22223, 897, 7659, 12318, - 13783, 14911, 16531, 1, 11513, 22223, 897, 12320, - 13783, 14911, 16531, 1, 11513, 22223, 897, 13416, - 13783, 14911, 16531, 1, 11513, 22223, 897, 15140, - 13783, 14911, 16531, 1, 26158, - 13783, 14911, 16531, 2, - 13783, 14911, 16531, 3, 11513, 1291, 12318, - 13783, 14911, 16531, 3, 11513, 1291, 12502, - 13783, 14911, 16531, 3, 11513, 7658, - 13783, 14911, 16531, 3, 11513, 8321, 12502, - 13783, 14911, 16531, 3, 11513, 16661, 15140, - 13783, 14911, 16531, 3, 11513, 17264, - 13783, 14911, 16531, 3, 11513, 17432, - 13783, 14911, 16531, 3, 11513, 18791, 7658, - 13783, 14911, 16531, 3, 11513, 20040, - 13783, 14911, 16531, 4, - 13783, 14911, 16531, 5, 11513, 964, - 13783, 14911, 16531, 5, 11513, 1291, 12318, - 13783, 14911, 16531, 5, 11513, 6376, - 13783, 14911, 16531, 5, 11513, 7658, - 13783, 14911, 16531, 5, 11513, 12320, - 13783, 14911, 16531, 5, 11513, 12620, - 13783, 14911, 16531, 5, 11513, 17264, - 13783, 14911, 16531, 5, 11513, 17846, - 13783, 14911, 16531, 5, 11513, 17847, 897, 12320, - 13783, 14911, 16531, 5, 11513, 18791, 7658, - 13783, 14911, 16531, 5, 11513, 21813, 7658, - 13783, 14911, 16531, 5, 11513, 22222, - 13783, 14911, 16531, 6, - 13783, 14911, 16531, 7, 11513, 1291, 12318, - 13783, 14911, 16531, 7, 11513, 1291, 12502, - 13783, 14911, 16531, 7, 11513, 6376, - 13783, 14911, 16531, 7, 11513, 7658, - 13783, 14911, 16531, 7, 11513, 7659, 897, 10856, - 13783, 14911, 16531, 7, 11513, 8321, 12502, - 13783, 14911, 16531, 7, 11513, 10856, - 13783, 14911, 16531, 7, 11513, 12620, - 13783, 14911, 16531, 7, 11513, 14837, 17265, 18782, - 13783, 14911, 16531, 7, 11513, 16661, 15140, - 13783, 14911, 16531, 7, 11513, 17264, - 13783, 14911, 16531, 7, 11513, 17432, - 13783, 14911, 16531, 7, 11513, 17846, - 13783, 14911, 16531, 7, 11513, 18791, 7658, - 13783, 14911, 16531, 7, 11513, 22223, 12502, - 13783, 14911, 16531, 7, 11513, 22563, 8281, 7658, - 13783, 14911, 16531, 8, - 13783, 14911, 16531, 9, 11513, 1291, 12318, - 13783, 14911, 16531, 9, 11513, 1291, 12502, - 13783, 14911, 16531, 9, 11513, 7659, 12318, - 13783, 14911, 16531, 9, 11513, 12320, - 13783, 14911, 16531, 9, 11513, 12554, - 13783, 14911, 16531, 9, 11513, 12620, - 13783, 14911, 16531, 9, 11513, 13416, - 13783, 14911, 16531, 9, 11513, 14256, - 13783, 14911, 16531, 9, 11513, 15140, - 13783, 14911, 16531, 9, 11513, 15141, 12502, - 13783, 14911, 16531, 9, 11513, 16095, 13416, - 13783, 14911, 16531, 9, 11513, 16586, - 13783, 14911, 16531, 9, 11513, 16587, 897, 12320, - 13783, 14911, 16531, 9, 11513, 16587, 897, 13416, - 13783, 14911, 16531, 9, 11513, 16804, - 13783, 14911, 16531, 9, 11513, 17264, - 13783, 14911, 16531, 9, 11513, 17846, - 13783, 14911, 16531, 9, 11513, 17847, 897, 12554, - 13783, 14911, 16531, 9, 11513, 20040, - 13783, 14911, 16531, 9, 11513, 20163, 12554, - 13783, 14911, 16531, 9, 11513, 21188, - 13783, 14911, 16531, 9, 11513, 21813, 7658, - 13783, 14911, 16531, 9, 11513, 22222, - 13783, 14911, 16531, 9, 11513, 22223, 897, 1291, 12502, - 13783, 14911, 16531, 9, 11513, 22223, 897, 7659, 12318, - 13783, 14911, 16531, 9, 11513, 22223, 897, 12320, - 13783, 14911, 16531, 9, 11513, 22223, 897, 13416, - 13783, 14911, 16531, 9, 11513, 22223, 897, 15140, - 13783, 14911, 16531, 9, 11513, 22223, 12502, - 13783, 14911, 16531, 10, - 13783, 14911, 16531, 11, 11513, 1291, 12318, - 13783, 14911, 16531, 11, 11513, 7658, - 13783, 14911, 16531, 11, 11513, 16661, 15140, - 13783, 14911, 16531, 11, 11513, 17264, - 13783, 14911, 16531, 11, 11513, 18791, 7658, - 13783, 14911, 16531, 12, - 13783, 14911, 16531, 13, 11513, 1291, 12318, - 13783, 14911, 16531, 13, 11513, 7658, - 13783, 14911, 16531, 13, 11513, 12320, - 13783, 14911, 16531, 13, 11513, 12554, - 13783, 14911, 16531, 13, 11513, 12620, - 13783, 14911, 16531, 13, 11513, 16586, - 13783, 14911, 16531, 13, 11513, 17264, - 13783, 14911, 16531, 13, 11513, 17846, - 13783, 14911, 16531, 13, 11513, 18741, 17264, - 13783, 14911, 16531, 13, 11513, 18791, 7658, - 13783, 14911, 16531, 13, 11513, 22222, - 13783, 14911, 16531, 14, - 13783, 14911, 16531, 15, 11513, 1291, 12318, - 13783, 14911, 16531, 15, 11513, 1291, 12502, - 13783, 14911, 16531, 15, 11513, 7658, - 13783, 14911, 16531, 15, 11513, 8321, 12502, - 13783, 14911, 16531, 15, 11513, 12555, 12502, - 13783, 14911, 16531, 15, 11513, 12620, - 13783, 14911, 16531, 15, 11513, 17264, - 13783, 14911, 16531, 15, 11513, 17846, - 13783, 14911, 16531, 15, 11513, 18791, 7658, - 13783, 14911, 16531, 15, 11513, 21186, - 13783, 14911, 16531, 15, 11513, 21188, - 13783, 14911, 16531, 15, 11513, 22222, - 13783, 14911, 16531, 16, - 13783, 14911, 16531, 17, 11513, 1291, 12502, - 13783, 14911, 16531, 17, 11513, 7659, 12318, - 13783, 14911, 16531, 17, 11513, 12320, - 13783, 14911, 16531, 17, 11513, 12554, - 13783, 14911, 16531, 17, 11513, 12620, - 13783, 14911, 16531, 17, 11513, 13416, - 13783, 14911, 16531, 17, 11513, 15140, - 13783, 14911, 16531, 17, 11513, 15141, 12502, - 13783, 14911, 16531, 17, 11513, 16095, 13416, - 13783, 14911, 16531, 17, 11513, 16586, - 13783, 14911, 16531, 17, 11513, 16804, - 13783, 14911, 16531, 17, 11513, 17264, - 13783, 14911, 16531, 17, 11513, 17265, 897, 21813, 7658, - 13783, 14911, 16531, 17, 11513, 20163, 12554, - 13783, 14911, 16531, 17, 11513, 21188, - 13783, 14911, 16531, 17, 11513, 21189, 897, 12320, - 13783, 14911, 16531, 17, 11513, 21813, 7658, - 13783, 14911, 16531, 17, 11513, 22222, - 13783, 14911, 16531, 18, - 13783, 14911, 16531, 19, 11513, 12620, - 13783, 14911, 16531, 19, 11513, 17264, - 13783, 14911, 16531, 19, 11513, 22222, - 13783, 14911, 16531, 19, 11513, 23790, - 13783, 14911, 16531, 20, - 13783, 14911, 16531, 21, 11513, 1291, 12502, - 13783, 14911, 16531, 21, 11513, 7658, - 13783, 14911, 16531, 21, 11513, 8321, 12502, - 13783, 14911, 16531, 21, 11513, 12320, - 13783, 14911, 16531, 21, 11513, 12620, - 13783, 14911, 16531, 21, 11513, 17264, - 13783, 14911, 16531, 21, 11513, 17265, 897, 19791, 17264, - 13783, 14911, 16531, 21, 11513, 17846, - 13783, 14911, 16531, 21, 11513, 18741, 17264, - 13783, 14911, 16531, 21, 11513, 18791, 7658, - 13783, 14911, 16531, 21, 11513, 19791, 17264, - 13783, 14911, 16531, 21, 11513, 21186, - 13783, 14911, 16531, 22, - 13783, 14911, 16531, 23, 11513, 964, - 13783, 14911, 16531, 23, 11513, 1291, 12502, - 13783, 14911, 16531, 23, 11513, 1291, 12503, 897, 16586, - 13783, 14911, 16531, 23, 11513, 6058, - 13783, 14911, 16531, 23, 11513, 6059, 897, 18791, 7658, - 13783, 14911, 16531, 23, 11513, 6376, - 13783, 14911, 16531, 23, 11513, 7521, 17264, - 13783, 14911, 16531, 23, 11513, 8321, 12502, - 13783, 14911, 16531, 23, 11513, 12320, - 13783, 14911, 16531, 23, 11513, 12620, - 13783, 14911, 16531, 23, 11513, 16095, 964, - 13783, 14911, 16531, 23, 11513, 16095, 16661, 15140, - 13783, 14911, 16531, 23, 11513, 16661, 1290, - 13783, 14911, 16531, 23, 11513, 16661, 10150, - 13783, 14911, 16531, 23, 11513, 16661, 15140, - 13783, 14911, 16531, 23, 11513, 17264, - 13783, 14911, 16531, 23, 11513, 17846, - 13783, 14911, 16531, 23, 11513, 18791, 7658, - 13783, 14911, 16531, 23, 11513, 20028, - 13783, 14911, 16531, 23, 11513, 20163, 8271, 36, - 13783, 14911, 16531, 23, 11513, 21813, 7658, - 13783, 14911, 16531, 23, 11513, 21813, 7659, 897, 6058, - 13783, 14911, 16531, 23, 11513, 22223, 12502, - 13783, 14911, 16531, 23, 11513, 22563, 8281, 7658, - 13783, 14911, 16531, 24, - 13783, 14911, 16531, 25, 11513, 1291, 12318, - 13783, 14911, 16531, 25, 11513, 1291, 12502, - 13783, 14911, 16531, 25, 11513, 7658, - 13783, 14911, 16531, 25, 11513, 12320, - 13783, 14911, 16531, 25, 11513, 16661, 15140, - 13783, 14911, 16531, 25, 11513, 18791, 7658, - 13783, 14911, 16531, 25, 11513, 23790, - 13783, 14911, 16531, 26, - 13783, 14911, 16531, 27, 11513, 1291, 12318, - 13783, 14911, 16531, 27, 11513, 1291, 12502, - 13783, 14911, 16531, 27, 11513, 6376, - 13783, 14911, 16531, 27, 11513, 8281, 7658, - 13783, 14911, 16531, 27, 11513, 8321, 12502, - 13783, 14911, 16531, 27, 11513, 8351, 14659, 2232, - 13783, 14911, 16531, 27, 11513, 12320, - 13783, 14911, 16531, 27, 11513, 12620, - 13783, 14911, 16531, 27, 11513, 13416, - 13783, 14911, 16531, 27, 11513, 15140, - 13783, 14911, 16531, 27, 11513, 16661, 15140, - 13783, 14911, 16531, 27, 11513, 17846, - 13783, 14911, 16531, 27, 11513, 18741, 17264, - 13783, 14911, 16531, 27, 11513, 18791, 7658, - 13783, 14911, 16531, 27, 11513, 21186, - 13783, 14911, 16531, 27, 11513, 21813, 7658, - 13783, 14911, 16531, 27, 11513, 22223, 12502, - 13783, 14911, 16531, 27, 11513, 22563, 8281, 7658, - 13783, 14911, 16531, 27, 11513, 23790, - 13783, 14911, 16531, 27, 20519, 125, 22172, - 13783, 14911, 16531, 28, - 13783, 14911, 16531, 29, 11513, 1291, 12318, - 13783, 14911, 16531, 29, 11513, 1291, 12319, 897, 16586, - 13783, 14911, 16531, 29, 11513, 1291, 12502, - 13783, 14911, 16531, 29, 11513, 2301, 10151, 16382, - 13783, 14911, 16531, 29, 11513, 7659, 12318, - 13783, 14911, 16531, 29, 11513, 7670, - 13783, 14911, 16531, 29, 11513, 7671, 897, 1291, 12502, - 13783, 14911, 16531, 29, 11513, 7671, 897, 7659, 12318, - 13783, 14911, 16531, 29, 11513, 7671, 897, 12320, - 13783, 14911, 16531, 29, 11513, 7671, 897, 13416, - 13783, 14911, 16531, 29, 11513, 7671, 897, 15140, - 13783, 14911, 16531, 29, 11513, 8351, 17265, 18782, - 13783, 14911, 16531, 29, 11513, 8356, - 13783, 14911, 16531, 29, 11513, 12320, - 13783, 14911, 16531, 29, 11513, 12554, - 13783, 14911, 16531, 29, 11513, 12620, - 13783, 14911, 16531, 29, 11513, 13416, - 13783, 14911, 16531, 29, 11513, 15140, - 13783, 14911, 16531, 29, 11513, 15141, 897, 12320, - 13783, 14911, 16531, 29, 11513, 15141, 897, 16586, - 13783, 14911, 16531, 29, 11513, 15141, 897, 21188, - 13783, 14911, 16531, 29, 11513, 16095, 12320, - 13783, 14911, 16531, 29, 11513, 16095, 13416, - 13783, 14911, 16531, 29, 11513, 16586, - 13783, 14911, 16531, 29, 11513, 16587, 897, 12320, - 13783, 14911, 16531, 29, 11513, 16587, 897, 13416, - 13783, 14911, 16531, 29, 11513, 16804, - 13783, 14911, 16531, 29, 11513, 16805, 897, 16586, - 13783, 14911, 16531, 29, 11513, 17264, - 13783, 14911, 16531, 29, 11513, 17265, 897, 12320, - 13783, 14911, 16531, 29, 11513, 20163, 12554, - 13783, 14911, 16531, 29, 11513, 21188, - 13783, 14911, 16531, 29, 11513, 21189, 897, 16586, - 13783, 14911, 16531, 29, 11513, 21813, 7658, - 13783, 14911, 16531, 29, 11513, 22222, - 13783, 14911, 16531, 29, 11513, 22223, 897, 1291, 12502, - 13783, 14911, 16531, 29, 11513, 22223, 897, 7659, 12318, - 13783, 14911, 16531, 29, 11513, 22223, 897, 12320, - 13783, 14911, 16531, 29, 11513, 22223, 897, 13416, - 13783, 14911, 16531, 29, 11513, 22223, 897, 15140, - 13783, 14911, 16531, 30, - 13783, 14911, 16531, 31, 11513, 1291, 12318, - 13783, 14911, 16531, 31, 11513, 7658, - 13783, 14911, 16531, 31, 11513, 12320, - 13783, 14911, 16531, 31, 11513, 16661, 15140, - 13783, 14911, 16531, 31, 11513, 17264, - 13783, 14911, 16531, 31, 11513, 17265, 19281, 21186, - 13783, 14911, 16531, 31, 11513, 18791, 7658, - 13783, 14911, 16531, 31, 11513, 20040, - 13783, 14911, 16531, 31, 11513, 20703, 10856, - 13783, 14911, 16531, 32, - 13783, 14911, 16531, 33, 11513, 7658, - 13783, 14911, 16531, 33, 11513, 7659, 10856, - 13783, 14911, 16531, 33, 11513, 17265, 19281, 21186, - 13783, 14911, 16531, 33, 11513, 19791, 17264, - 13783, 14911, 16531, 34, - 13783, 14911, 16531, 35, 11513, 1291, 12318, - 13783, 14911, 16531, 35, 11513, 1291, 12502, - 13783, 14911, 16531, 35, 11513, 1291, 12503, 897, 16586, - 13783, 14911, 16531, 35, 11513, 8321, 12502, - 13783, 14911, 16531, 35, 11513, 8351, 2232, - 13783, 14911, 16531, 35, 11513, 10856, - 13783, 14911, 16531, 35, 11513, 12320, - 13783, 14911, 16531, 35, 11513, 12620, - 13783, 14911, 16531, 35, 11513, 16095, 13416, - 13783, 14911, 16531, 35, 11513, 16661, 15140, - 13783, 14911, 16531, 35, 11513, 17264, - 13783, 14911, 16531, 35, 11513, 17846, - 13783, 14911, 16531, 35, 11513, 18741, 17264, - 13783, 14911, 16531, 35, 11513, 18791, 7658, - 13783, 14911, 16531, 35, 11513, 20028, - 13783, 14911, 16531, 35, 11513, 20029, 897, 16661, 15140, - 13783, 14911, 16531, 35, 11513, 20029, 897, 18791, 7658, - 13783, 14911, 16531, 35, 11513, 20163, 12554, - 13783, 14911, 16531, 35, 11513, 22563, 8281, 7658, - 13783, 14911, 16531, 35, 11513, 23790, - 13783, 14911, 16531, 35, 19016, - 13783, 14911, 16531, 35, 19443, 16310, - 13783, 14911, 16531, 36, - 13783, 14911, 16531, 37, 11513, 1291, 12318, - 13783, 14911, 16531, 37, 11513, 1291, 12502, - 13783, 14911, 16531, 37, 11513, 1291, 12503, 897, 1291, 12318, - 13783, 14911, 16531, 37, 11513, 6376, - 13783, 14911, 16531, 37, 11513, 7658, - 13783, 14911, 16531, 37, 11513, 12320, - 13783, 14911, 16531, 37, 11513, 12321, 897, 1291, 12318, - 13783, 14911, 16531, 37, 11513, 12620, - 13783, 14911, 16531, 37, 11513, 12621, 897, 1291, 12318, - 13783, 14911, 16531, 37, 11513, 12923, 12502, - 13783, 14911, 16531, 37, 11513, 14837, 17265, 18782, - 13783, 14911, 16531, 37, 11513, 15013, 10856, - 13783, 14911, 16531, 37, 11513, 16661, 15140, - 13783, 14911, 16531, 37, 11513, 17846, - 13783, 14911, 16531, 37, 11513, 18741, 17264, - 13783, 14911, 16531, 37, 11513, 18791, 7658, - 13783, 14911, 16531, 37, 11513, 19791, 17264, - 13783, 14911, 16531, 37, 11513, 22222, - 13783, 14911, 16531, 37, 11513, 22563, 8281, 7658, - 13783, 14911, 16531, 38, - 13783, 14911, 16531, 39, 11513, 1291, 12318, - 13783, 14911, 16531, 39, 11513, 1291, 12502, - 13783, 14911, 16531, 39, 11513, 6376, - 13783, 14911, 16531, 39, 11513, 7658, - 13783, 14911, 16531, 39, 11513, 7659, 897, 21813, 7658, - 13783, 14911, 16531, 39, 11513, 8321, 12502, - 13783, 14911, 16531, 39, 11513, 12620, - 13783, 14911, 16531, 39, 11513, 12923, 12502, - 13783, 14911, 16531, 39, 11513, 16661, 15140, - 13783, 14911, 16531, 39, 11513, 17264, - 13783, 14911, 16531, 39, 11513, 17846, - 13783, 14911, 16531, 39, 11513, 18791, 7658, - 13783, 14911, 16531, 39, 11513, 19791, 17264, - 13783, 14911, 16531, 39, 11513, 21188, - 13783, 14911, 16531, 39, 11513, 21813, 7658, - 13783, 14911, 16531, 39, 11513, 22223, 12502, - 13783, 14911, 16531, 39, 11513, 22563, 8281, 7658, - 13783, 14911, 16531, 40, - 13783, 14911, 16531, 41, 964, - 13783, 14911, 16531, 41, 965, 11513, 14837, 14659, 2232, - 13783, 14911, 16531, 41, 11513, 1291, 12502, - 13783, 14911, 16531, 41, 11513, 7659, 12318, - 13783, 14911, 16531, 41, 11513, 7670, - 13783, 14911, 16531, 41, 11513, 7671, 897, 1291, 12502, - 13783, 14911, 16531, 41, 11513, 7671, 897, 7659, 12318, - 13783, 14911, 16531, 41, 11513, 7671, 897, 12320, - 13783, 14911, 16531, 41, 11513, 7671, 897, 13416, - 13783, 14911, 16531, 41, 11513, 7671, 897, 15140, - 13783, 14911, 16531, 41, 11513, 8281, 7658, - 13783, 14911, 16531, 41, 11513, 10151, 12318, - 13783, 14911, 16531, 41, 11513, 12320, - 13783, 14911, 16531, 41, 11513, 12554, - 13783, 14911, 16531, 41, 11513, 12620, - 13783, 14911, 16531, 41, 11513, 13416, - 13783, 14911, 16531, 41, 11513, 14837, 14659, 2232, - 13783, 14911, 16531, 41, 11513, 15140, - 13783, 14911, 16531, 41, 11513, 15141, 897, 12320, - 13783, 14911, 16531, 41, 11513, 15141, 12502, - 13783, 14911, 16531, 41, 11513, 16095, 12320, - 13783, 14911, 16531, 41, 11513, 16095, 13416, - 13783, 14911, 16531, 41, 11513, 16586, - 13783, 14911, 16531, 41, 11513, 16587, 897, 21188, - 13783, 14911, 16531, 41, 11513, 16804, - 13783, 14911, 16531, 41, 11513, 17264, - 13783, 14911, 16531, 41, 11513, 20163, 12554, - 13783, 14911, 16531, 41, 11513, 21188, - 13783, 14911, 16531, 41, 11513, 21189, 897, 12320, - 13783, 14911, 16531, 41, 11513, 21189, 897, 12620, - 13783, 14911, 16531, 41, 11513, 21189, 897, 13416, - 13783, 14911, 16531, 41, 11513, 21189, 897, 16586, - 13783, 14911, 16531, 41, 11513, 21189, 12502, - 13783, 14911, 16531, 41, 11513, 21813, 7658, - 13783, 14911, 16531, 41, 11513, 22222, - 13783, 14911, 16531, 41, 11513, 22223, 12502, - 13783, 14911, 16531, 42, - 13783, 14911, 16531, 43, 11513, 1291, 12502, - 13783, 14911, 16531, 43, 11513, 6376, - 13783, 14911, 16531, 43, 11513, 7658, - 13783, 14911, 16531, 43, 11513, 14659, 7658, - 13783, 14911, 16531, 43, 11513, 15140, - 13783, 14911, 16531, 43, 11513, 18791, 7658, - 13783, 14911, 16531, 43, 11513, 19791, 17264, - 13783, 14911, 16531, 44, - 13783, 14911, 16531, 45, 11513, 1291, 12318, - 13783, 14911, 16531, 45, 11513, 1291, 12502, - 13783, 14911, 16531, 45, 11513, 7658, - 13783, 14911, 16531, 45, 11513, 10151, 12318, - 13783, 14911, 16531, 45, 11513, 12320, - 13783, 14911, 16531, 45, 11513, 13416, - 13783, 14911, 16531, 45, 11513, 21188, - 13783, 14911, 16531, 45, 11513, 22222, - 13783, 14911, 16531, 46, - 13783, 14911, 16531, 47, 11513, 1291, 12318, - 13783, 14911, 16531, 47, 11513, 2301, 14659, 10150, - 13783, 14911, 16531, 47, 11513, 8351, 8281, 2232, - 13783, 14911, 16531, 47, 11513, 8351, 8281, 2233, 897, 2301, 14659, 10150, - 13783, 14911, 16531, 47, 11513, 8351, 8281, 2233, 11513, 14776, - 13783, 14911, 16531, 47, 11513, 18791, 7658, - 13783, 14911, 16531, 47, 11513, 21188, - 13783, 14911, 16531, 48, - 13783, 14911, 16531, 49, 11513, 1291, 12318, - 13783, 14911, 16531, 49, 11513, 1291, 12502, - 13783, 14911, 16531, 49, 11513, 7658, - 13783, 14911, 16531, 49, 11513, 7659, 12318, - 13783, 14911, 16531, 49, 11513, 8356, - 13783, 14911, 16531, 49, 11513, 10151, 12318, - 13783, 14911, 16531, 49, 11513, 12320, - 13783, 14911, 16531, 49, 11513, 13416, - 13783, 14911, 16531, 49, 11513, 14837, 14659, 2232, - 13783, 14911, 16531, 49, 11513, 15140, - 13783, 14911, 16531, 49, 11513, 16586, - 13783, 14911, 16531, 49, 11513, 17264, - 13783, 14911, 16531, 49, 11513, 21188, - 13783, 14911, 16531, 49, 11513, 22222, - 13783, 14911, 16531, 50, - 13783, 14911, 16531, 51, 11513, 1291, 12318, - 13783, 14911, 16531, 51, 11513, 1291, 12502, - 13783, 14911, 16531, 51, 11513, 6376, - 13783, 14911, 16531, 51, 11513, 7658, - 13783, 14911, 16531, 51, 11513, 8321, 12502, - 13783, 14911, 16531, 51, 11513, 12320, - 13783, 14911, 16531, 51, 11513, 12620, - 13783, 14911, 16531, 51, 11513, 15013, 10856, - 13783, 14911, 16531, 51, 11513, 16661, 15140, - 13783, 14911, 16531, 51, 11513, 17264, - 13783, 14911, 16531, 51, 11513, 18791, 7658, - 13783, 14911, 16531, 51, 11513, 21186, - 13783, 14911, 16531, 51, 11513, 21813, 7658, - 13783, 14911, 16531, 51, 11513, 22222, - 13783, 14911, 16531, 58, - 13783, 14911, 16531, 66, - 13783, 14911, 16531, 67, 11513, 12320, - 13783, 14911, 16531, 67, 11513, 16586, - 13783, 14911, 16531, 84, - 13783, 14911, 16531, 96, - 13783, 14911, 16531, 98, - 13783, 14911, 16531, 99, 11513, 22495, 964, - 13783, 14911, 16531, 104, - 13783, 14911, 16531, 153, 17994, - 13783, 14911, 16531, 174, - 13783, 14911, 16531, 175, 11513, 12620, - 13783, 14911, 16531, 175, 17994, - 13783, 14911, 16531, 175, 17995, 11513, 6376, - 13783, 14911, 16531, 175, 17995, 11513, 21813, 7658, - 13783, 14911, 16531, 216, - 13783, 14911, 16531, 294, - 13783, 14911, 16531, 332, - 13783, 14911, 16531, 404, - 13783, 14911, 16531, 415, 17994, - 13783, 14911, 16531, 425, 17994, - 13783, 14911, 16531, 480, - 13783, 14911, 16531, 512, - 13783, 14911, 16531, 522, - 13783, 14911, 16531, 534, - 13783, 14911, 16531, 593, 17994, - 13783, 14911, 16531, 651, 17995, 11513, 6376, - 13783, 14911, 16531, 655, 11513, 25946, - 13783, 14911, 16531, 665, 17994, - 13783, 14911, 16531, 665, 17995, 11513, 21813, 7658, - 13783, 14911, 16531, 670, - 13783, 14911, 16531, 682, - 13783, 14911, 16531, 686, - 13783, 14911, 16531, 692, - 13783, 14911, 16531, 696, - 13783, 14911, 16531, 734, - 13783, 14911, 16531, 1120, - 13783, 14911, 16531, 1121, 11513, 2301, 8281, 14776, - 13783, 14911, 16531, 1121, 11513, 2301, 14659, 10150, - 13783, 14911, 16531, 1148, - 13783, 14911, 16531, 1304, - 13783, 14911, 16531, 1394, - 13783, 14911, 16531, 1395, 11513, 18791, 7658, - 13783, 14911, 16531, 1395, 11513, 23790, - 13783, 14911, 16531, 1412, - 13783, 14911, 16531, 1413, 11513, 6376, - 13783, 14911, 16531, 1413, 11513, 16095, 964, - 13783, 14911, 16531, 1413, 11513, 16095, 965, 897, 6376, - 13783, 14911, 16531, 1413, 11513, 18791, 7658, - 13783, 14911, 16531, 1413, 11513, 21813, 7658, - 13783, 14911, 16531, 1422, - 13783, 14911, 16531, 1436, - 13783, 14911, 16531, 1437, 11513, 6376, - 13783, 14911, 16531, 1437, 11513, 10856, - 13783, 14911, 16531, 1437, 11513, 12620, - 13783, 14911, 16531, 1437, 11513, 18791, 7658, - 13783, 14911, 16531, 1437, 11513, 21813, 7658, - 13783, 14911, 16531, 1437, 20586, - 13783, 14911, 16531, 1588, - 13783, 14911, 16531, 2120, - 13783, 14911, 16531, 2324, - 13783, 14911, 16531, 2472, - 13783, 14911, 16531, 2674, - 13783, 14911, 16531, 2757, 16949, 28, - 13783, 14911, 16531, 2834, - 13783, 14911, 16531, 3136, - 13783, 14911, 16531, 3137, 19016, - 13783, 14911, 16531, 3473, 7429, 28, - 13783, 14911, 16531, 3518, - 13783, 14911, 16531, 6064, - 13783, 14911, 16531, 6635, 17994, - 13783, 14911, 16531, 6635, 17995, 11513, 18791, 7658, - 13783, 14911, 16531, 6635, 17995, 11513, 21813, 7658, - 13783, 14911, 16531, 7013, 17994, - 13783, 14911, 16531, 7013, 17995, 11513, 15202, - 13783, 14911, 16531, 7429, 14, - 13783, 14911, 16531, 7470, - 13783, 14911, 16531, 7471, 11513, 7658, - 13783, 14911, 16531, 7818, - 13783, 14911, 16531, 7819, 11513, 17264, - 13783, 14911, 16531, 8290, - 13783, 14911, 16531, 8291, 11513, 21813, 7658, - 13783, 14911, 16531, 8351, 36, - 13783, 14911, 16531, 8351, 37, 11513, 1291, 12318, - 13783, 14911, 16531, 8351, 37, 11513, 7521, 17264, - 13783, 14911, 16531, 8351, 37, 11513, 19791, 17264, - 13783, 14911, 16531, 9783, 8, - 13783, 14911, 16531, 9783, 9, 11513, 21813, 7658, - 13783, 14911, 16531, 9783, 28, - 13783, 14911, 16531, 9783, 29, 11513, 17264, - 13783, 14911, 16531, 9783, 29, 11513, 21813, 7658, - 13783, 14911, 16531, 9783, 504, - 13783, 14911, 16531, 10095, 7670, - 13783, 14911, 16531, 10911, 17994, - 13783, 14911, 16531, 10911, 17995, 11513, 18791, 7658, - 13783, 14911, 16531, 10911, 17995, 11513, 21813, 7658, - 13783, 14911, 16531, 11033, 3240, - 13783, 14911, 16531, 11033, 3536, - 13783, 14911, 16531, 11033, 7036, - 13783, 14911, 16531, 11368, - 13783, 14911, 16531, 11724, - 13783, 14911, 16531, 12366, - 13783, 14911, 16531, 12367, 11513, 21813, 7658, - 13783, 14911, 16531, 13050, - 13783, 14911, 16531, 13332, - 13783, 14911, 16531, 13801, 10, - 13783, 14911, 16531, 14428, - 13783, 14911, 16531, 14725, 3902, - 13783, 14911, 16531, 14756, - 13783, 14911, 16531, 14757, 11513, 7658, - 13783, 14911, 16531, 14757, 11513, 21813, 7658, - 13783, 14911, 16531, 14797, 36, - 13783, 14911, 16531, 14951, 20587, 1412, - 13783, 14911, 16531, 15114, - 13783, 14911, 16531, 15115, 11513, 17264, - 13783, 14911, 16531, 15115, 11513, 17265, 19281, 21186, - 13783, 14911, 16531, 15787, 8, - 13783, 14911, 16531, 15787, 28, - 13783, 14911, 16531, 15787, 12366, - 13783, 14911, 16531, 15827, 7429, 28, - 13783, 14911, 16531, 15847, 22, - 13783, 14911, 16531, 15949, 9783, 8, - 13783, 14911, 16531, 15949, 14428, - 13783, 14911, 16531, 15949, 18305, 12, - 13783, 14911, 16531, 15949, 20587, 9783, 8, - 13783, 14911, 16531, 16095, 34, - 13783, 14911, 16531, 16095, 35, 11513, 23790, - 13783, 14911, 16531, 16095, 11550, - 13783, 14911, 16531, 16095, 15114, - 13783, 14911, 16531, 16506, - 13783, 14911, 16531, 16507, 11513, 17264, - 13783, 14911, 16531, 16661, 14761, 36, - 13783, 14911, 16531, 17089, 12, - 13783, 14911, 16531, 17089, 13, 11513, 23790, - 13783, 14911, 16531, 17089, 34, - 13783, 14911, 16531, 17089, 35, 11513, 10150, - 13783, 14911, 16531, 17465, 0, - 13783, 14911, 16531, 17465, 8, - 13783, 14911, 16531, 17465, 12, - 13783, 14911, 16531, 17465, 14, - 13783, 14911, 16531, 17465, 15, 11513, 20028, - 13783, 14911, 16531, 17465, 15, 11513, 20029, 897, 10856, - 13783, 14911, 16531, 17465, 16, - 13783, 14911, 16531, 17465, 20, - 13783, 14911, 16531, 17465, 22, - 13783, 14911, 16531, 17465, 24, - 13783, 14911, 16531, 17465, 25, 11513, 8351, 2232, - 13783, 14911, 16531, 17465, 29, 16812, - 13783, 14911, 16531, 17465, 29, 16813, 11513, 17264, - 13783, 14911, 16531, 17465, 34, - 13783, 14911, 16531, 17465, 35, 11513, 7658, - 13783, 14911, 16531, 17465, 35, 11513, 8351, 2232, - 13783, 14911, 16531, 17465, 35, 11513, 8351, 2233, 897, 21813, 7658, - 13783, 14911, 16531, 17465, 35, 11513, 10856, - 13783, 14911, 16531, 17465, 35, 11513, 16661, 15140, - 13783, 14911, 16531, 17465, 35, 11513, 18791, 7658, - 13783, 14911, 16531, 17465, 38, - 13783, 14911, 16531, 17465, 39, 11513, 6376, - 13783, 14911, 16531, 17465, 42, - 13783, 14911, 16531, 17465, 44, - 13783, 14911, 16531, 17465, 48, - 13783, 14911, 16531, 17465, 49, 11513, 6058, - 13783, 14911, 16531, 17465, 66, - 13783, 14911, 16531, 17465, 504, - 13783, 14911, 16531, 17465, 505, 11513, 17264, - 13783, 14911, 16531, 17465, 505, 11513, 22495, 17264, - 13783, 14911, 16531, 17465, 686, - 13783, 14911, 16531, 17465, 9783, 8, - 13783, 14911, 16531, 17465, 12366, - 13783, 14911, 16531, 17465, 13050, - 13783, 14911, 16531, 17465, 18305, 12, - 13783, 14911, 16531, 18019, 16, - 13783, 14911, 16531, 18019, 18, - 13783, 14911, 16531, 18019, 19, 11513, 17264, - 13783, 14911, 16531, 18019, 19, 11513, 17265, 897, 7658, - 13783, 14911, 16531, 18213, 0, - 13783, 14911, 16531, 18213, 16, - 13783, 14911, 16531, 18213, 40, - 13783, 14911, 16531, 18213, 10696, - 13783, 14911, 16531, 18305, 6, - 13783, 14911, 16531, 18305, 10, - 13783, 14911, 16531, 18305, 12, - 13783, 14911, 16531, 18305, 34, - 13783, 14911, 16531, 18305, 36, - 13783, 14911, 16531, 18305, 38, - 13783, 14911, 16531, 19103, 36, - 13783, 14911, 16531, 19197, 34, - 13783, 14911, 16531, 19378, - 13783, 14911, 16531, 19379, 11513, 17264, - 13783, 14911, 16531, 19419, 66, - 13783, 14911, 16531, 19419, 504, - 13783, 14911, 16531, 19419, 682, - 13783, 14911, 16531, 19601, 1412, - 13783, 14911, 16531, 20163, 504, - 13783, 14911, 16531, 20163, 12366, - 13783, 14911, 16531, 20165, 8, - 13783, 14911, 16531, 20587, 4, - 13783, 14911, 16531, 20587, 5, 11513, 1290, - 13783, 14911, 16531, 20587, 8, - 13783, 14911, 16531, 20587, 20, - 13783, 14911, 16531, 20587, 35, 11513, 20028, - 13783, 14911, 16531, 20587, 1394, - 13783, 14911, 16531, 20587, 7429, 14, - 13783, 14911, 16531, 20587, 9783, 8, - 13783, 14911, 16531, 20587, 9783, 9, 11513, 7658, - 13783, 14911, 16531, 20587, 9783, 9, 11513, 21813, 7658, - 13783, 14911, 16531, 20587, 17089, 12, - 13783, 14911, 16531, 20604, - 13783, 14911, 16531, 20659, 28, - 13783, 14911, 16531, 20659, 29, 11513, 17264, - 13783, 14911, 16531, 20659, 40, - 13783, 14911, 16531, 20659, 9783, 28, - 13783, 14911, 16531, 20659, 17465, 24, - 13783, 14911, 16531, 20659, 23127, 40, - 13783, 14911, 16531, 20801, 2834, - 13783, 14911, 16531, 20856, - 13783, 14911, 16531, 21011, 44, - 13783, 14911, 16531, 21164, - 13783, 14911, 16531, 21165, 11513, 12922, - 13783, 14911, 16531, 23015, 50, - 13783, 14911, 16531, 23067, 8, - 13783, 14911, 16531, 23067, 28, - 13783, 14911, 16531, 23067, 29, 11513, 17264, - 13783, 14911, 16531, 23913, 42, - 13783, 14911, 16531, 23913, 406, - 13783, 14911, 16531, 25767, 880, - 13783, 14911, 16531, 25767, 5482, - 13783, 14911, 17835, 16531, 17, 11513, 17264, - 13783, 14911, 17835, 16531, 41, 11513, 17264, - 13783, 14911, 20241, 232, - 13783, 14911, 20241, 234, - 13783, 14911, 20241, 236, - 13783, 14911, 20241, 316, - 13783, 14911, 20241, 504, - 13783, 14911, 20241, 636, - 13783, 14911, 20241, 1466, - 13783, 14911, 20241, 1468, - 13783, 14911, 20241, 8351, 37, 38, - 13783, 16531, 788, - 13783, 16531, 880, - 13783, 16531, 3537, 11513, 17264, - 13783, 16531, 11550, - 13783, 16531, 14911, 17835, 0, - 13783, 16531, 14911, 17835, 2, - 13783, 16531, 14911, 17835, 4, - 13783, 16531, 14911, 17835, 6, - 13783, 16531, 14911, 17835, 8, - 13783, 16531, 14911, 17835, 10, - 13783, 16531, 14911, 17835, 12, - 13783, 16531, 14911, 17835, 13, 11513, 7658, - 13783, 16531, 14911, 17835, 14, - 13783, 16531, 14911, 17835, 16, - 13783, 16531, 14911, 17835, 18, - 13783, 16531, 14911, 17835, 20, - 13783, 16531, 14911, 17835, 22, - 13783, 16531, 14911, 17835, 23, 11513, 6058, - 13783, 16531, 14911, 17835, 23, 11513, 17264, - 13783, 16531, 14911, 17835, 24, - 13783, 16531, 14911, 17835, 26, - 13783, 16531, 14911, 17835, 28, - 13783, 16531, 14911, 17835, 30, - 13783, 16531, 14911, 17835, 32, - 13783, 16531, 14911, 17835, 34, - 13783, 16531, 14911, 17835, 35, 11513, 14659, 2232, - 13783, 16531, 14911, 17835, 36, - 13783, 16531, 14911, 17835, 38, - 13783, 16531, 14911, 17835, 40, - 13783, 16531, 14911, 17835, 42, - 13783, 16531, 14911, 17835, 44, - 13783, 16531, 14911, 17835, 48, - 13783, 16531, 14911, 17835, 50, - 13783, 16531, 14911, 17835, 66, - 13783, 16531, 14911, 17835, 504, - 13783, 16531, 14911, 17835, 534, - 13783, 16531, 14911, 17835, 1422, - 13783, 16531, 14911, 17835, 1436, - 13783, 16531, 14911, 17835, 3136, - 13783, 16531, 14911, 17835, 9783, 28, - 13783, 16531, 14911, 17835, 15787, 2, - 13783, 16531, 14911, 17835, 17465, 8, - 13783, 16531, 14911, 17835, 17465, 12, - 13783, 16531, 14911, 17835, 17465, 20, - 13783, 16531, 14911, 17835, 17465, 24, - 13783, 16531, 14911, 17835, 17465, 34, - 13783, 16531, 14911, 17835, 20163, 34, - 13783, 16531, 14911, 17835, 20587, 26, - 13783, 16531, 14911, 17835, 20587, 34, - 13783, 16531, 16031, 12704, - 13783, 16531, 17539, 21549, 19158, - 13783, 16531, 18213, 10696, - 13783, 16531, 18213, 10697, 11513, 17264, - 13783, 16531, 18497, 12704, - 13783, 16531, 19529, 12704, - 13783, 16531, 19615, 22758, - 13783, 16531, 19617, 12704, - 13783, 16531, 19617, 22758, - 13783, 16531, 20163, 18213, 10696, - 13783, 16531, 20163, 18213, 10697, 11513, 6376, - 13783, 16531, 20163, 18213, 10697, 11513, 17264, - 13783, 16531, 20587, 1413, 8356, - 13783, 16531, 20587, 18213, 10697, 11513, 17264, - 13783, 16531, 21813, 12704, - 13783, 16531, 21813, 12705, 11513, 21813, 7658, - 13783, 16531, 21911, 4, - 13783, 16531, 21911, 5, 11513, 6376, - 13783, 16531, 22763, 17539, 21420, - 13783, 16531, 23653, 1290, - 13783, 17835, 16531, 0, - 13783, 17835, 16531, 1, 11513, 1291, 12318, - 13783, 17835, 16531, 1, 11513, 1291, 12319, 897, 16586, - 13783, 17835, 16531, 1, 11513, 1291, 12502, - 13783, 17835, 16531, 1, 11513, 7659, 12318, - 13783, 17835, 16531, 1, 11513, 10151, 12318, - 13783, 17835, 16531, 1, 11513, 10151, 12319, 897, 12320, - 13783, 17835, 16531, 1, 11513, 10151, 12502, - 13783, 17835, 16531, 1, 11513, 12320, - 13783, 17835, 16531, 1, 11513, 12554, - 13783, 17835, 16531, 1, 11513, 12555, 897, 1291, 12502, - 13783, 17835, 16531, 1, 11513, 12555, 897, 7659, 12318, - 13783, 17835, 16531, 1, 11513, 12555, 897, 12320, - 13783, 17835, 16531, 1, 11513, 12555, 897, 13416, - 13783, 17835, 16531, 1, 11513, 12555, 897, 15140, - 13783, 17835, 16531, 1, 11513, 12620, - 13783, 17835, 16531, 1, 11513, 13416, - 13783, 17835, 16531, 1, 11513, 15140, - 13783, 17835, 16531, 1, 11513, 16095, 13416, - 13783, 17835, 16531, 1, 11513, 16586, - 13783, 17835, 16531, 1, 11513, 16804, - 13783, 17835, 16531, 1, 11513, 17264, - 13783, 17835, 16531, 1, 11513, 20163, 12554, - 13783, 17835, 16531, 1, 11513, 21188, - 13783, 17835, 16531, 1, 11513, 21189, 897, 16586, - 13783, 17835, 16531, 1, 11513, 22222, - 13783, 17835, 16531, 1, 11513, 22223, 897, 1291, 12502, - 13783, 17835, 16531, 1, 11513, 22223, 897, 7659, 12318, - 13783, 17835, 16531, 1, 11513, 22223, 897, 12320, - 13783, 17835, 16531, 1, 11513, 22223, 897, 13416, - 13783, 17835, 16531, 1, 11513, 22223, 897, 15140, - 13783, 17835, 16531, 2, - 13783, 17835, 16531, 3, 11513, 1291, 12318, - 13783, 17835, 16531, 3, 11513, 1291, 12502, - 13783, 17835, 16531, 3, 11513, 7658, - 13783, 17835, 16531, 3, 11513, 8321, 12502, - 13783, 17835, 16531, 3, 11513, 17264, - 13783, 17835, 16531, 3, 11513, 17432, - 13783, 17835, 16531, 3, 11513, 20040, - 13783, 17835, 16531, 4, - 13783, 17835, 16531, 5, 11513, 964, - 13783, 17835, 16531, 5, 11513, 1291, 12318, - 13783, 17835, 16531, 5, 11513, 7658, - 13783, 17835, 16531, 5, 11513, 12320, - 13783, 17835, 16531, 5, 11513, 12620, - 13783, 17835, 16531, 5, 11513, 17264, - 13783, 17835, 16531, 5, 11513, 17846, - 13783, 17835, 16531, 5, 11513, 17847, 897, 12320, - 13783, 17835, 16531, 5, 11513, 18791, 7658, - 13783, 17835, 16531, 5, 11513, 22222, - 13783, 17835, 16531, 6, - 13783, 17835, 16531, 7, 11513, 1291, 12318, - 13783, 17835, 16531, 7, 11513, 1291, 12502, - 13783, 17835, 16531, 7, 11513, 7658, - 13783, 17835, 16531, 7, 11513, 8321, 12502, - 13783, 17835, 16531, 7, 11513, 12620, - 13783, 17835, 16531, 7, 11513, 14837, 17265, 18782, - 13783, 17835, 16531, 7, 11513, 14911, 16531, 50, - 13783, 17835, 16531, 7, 11513, 14911, 16531, 51, 11513, 12620, - 13783, 17835, 16531, 7, 11513, 17264, - 13783, 17835, 16531, 7, 11513, 17432, - 13783, 17835, 16531, 7, 11513, 17846, - 13783, 17835, 16531, 7, 11513, 22223, 12502, - 13783, 17835, 16531, 8, - 13783, 17835, 16531, 9, 11513, 1291, 12318, - 13783, 17835, 16531, 9, 11513, 1291, 12502, - 13783, 17835, 16531, 9, 11513, 7659, 12318, - 13783, 17835, 16531, 9, 11513, 12320, - 13783, 17835, 16531, 9, 11513, 12554, - 13783, 17835, 16531, 9, 11513, 12620, - 13783, 17835, 16531, 9, 11513, 13416, - 13783, 17835, 16531, 9, 11513, 15140, - 13783, 17835, 16531, 9, 11513, 15141, 12502, - 13783, 17835, 16531, 9, 11513, 16095, 13416, - 13783, 17835, 16531, 9, 11513, 16586, - 13783, 17835, 16531, 9, 11513, 16587, 897, 12320, - 13783, 17835, 16531, 9, 11513, 16587, 897, 13416, - 13783, 17835, 16531, 9, 11513, 16804, - 13783, 17835, 16531, 9, 11513, 17264, - 13783, 17835, 16531, 9, 11513, 17846, - 13783, 17835, 16531, 9, 11513, 17847, 897, 12554, - 13783, 17835, 16531, 9, 11513, 20163, 12554, - 13783, 17835, 16531, 9, 11513, 21188, - 13783, 17835, 16531, 9, 11513, 22222, - 13783, 17835, 16531, 9, 11513, 22223, 897, 1291, 12502, - 13783, 17835, 16531, 9, 11513, 22223, 897, 7659, 12318, - 13783, 17835, 16531, 9, 11513, 22223, 897, 12320, - 13783, 17835, 16531, 9, 11513, 22223, 897, 13416, - 13783, 17835, 16531, 9, 11513, 22223, 897, 15140, - 13783, 17835, 16531, 9, 11513, 22223, 12502, - 13783, 17835, 16531, 10, - 13783, 17835, 16531, 11, 11513, 1291, 12318, - 13783, 17835, 16531, 11, 11513, 7658, - 13783, 17835, 16531, 11, 11513, 17264, - 13783, 17835, 16531, 12, - 13783, 17835, 16531, 13, 11513, 1291, 12318, - 13783, 17835, 16531, 13, 11513, 7658, - 13783, 17835, 16531, 13, 11513, 12320, - 13783, 17835, 16531, 13, 11513, 12554, - 13783, 17835, 16531, 13, 11513, 12620, - 13783, 17835, 16531, 13, 11513, 16586, - 13783, 17835, 16531, 13, 11513, 17264, - 13783, 17835, 16531, 13, 11513, 17846, - 13783, 17835, 16531, 13, 11513, 18741, 17264, - 13783, 17835, 16531, 13, 11513, 22222, - 13783, 17835, 16531, 14, - 13783, 17835, 16531, 15, 11513, 1291, 12318, - 13783, 17835, 16531, 15, 11513, 1291, 12502, - 13783, 17835, 16531, 15, 11513, 7658, - 13783, 17835, 16531, 15, 11513, 12555, 12502, - 13783, 17835, 16531, 15, 11513, 12620, - 13783, 17835, 16531, 15, 11513, 17264, - 13783, 17835, 16531, 15, 11513, 17846, - 13783, 17835, 16531, 15, 11513, 21186, - 13783, 17835, 16531, 15, 11513, 21188, - 13783, 17835, 16531, 15, 11513, 22222, - 13783, 17835, 16531, 16, - 13783, 17835, 16531, 17, 11513, 1291, 12318, - 13783, 17835, 16531, 17, 11513, 1291, 12502, - 13783, 17835, 16531, 17, 11513, 7659, 12318, - 13783, 17835, 16531, 17, 11513, 12320, - 13783, 17835, 16531, 17, 11513, 12554, - 13783, 17835, 16531, 17, 11513, 12620, - 13783, 17835, 16531, 17, 11513, 13416, - 13783, 17835, 16531, 17, 11513, 15140, - 13783, 17835, 16531, 17, 11513, 15141, 12502, - 13783, 17835, 16531, 17, 11513, 16095, 13416, - 13783, 17835, 16531, 17, 11513, 16586, - 13783, 17835, 16531, 17, 11513, 16804, - 13783, 17835, 16531, 17, 11513, 17264, - 13783, 17835, 16531, 17, 11513, 20163, 12554, - 13783, 17835, 16531, 17, 11513, 21188, - 13783, 17835, 16531, 17, 11513, 21189, 897, 12320, - 13783, 17835, 16531, 17, 11513, 22222, - 13783, 17835, 16531, 18, - 13783, 17835, 16531, 19, 11513, 17264, - 13783, 17835, 16531, 19, 11513, 22222, - 13783, 17835, 16531, 19, 11513, 23790, - 13783, 17835, 16531, 20, - 13783, 17835, 16531, 21, 11513, 1291, 12502, - 13783, 17835, 16531, 21, 11513, 7658, - 13783, 17835, 16531, 21, 11513, 8321, 12502, - 13783, 17835, 16531, 21, 11513, 12320, - 13783, 17835, 16531, 21, 11513, 12620, - 13783, 17835, 16531, 21, 11513, 17264, - 13783, 17835, 16531, 21, 11513, 17265, 897, 19791, 17264, - 13783, 17835, 16531, 21, 11513, 17846, - 13783, 17835, 16531, 21, 11513, 18741, 17264, - 13783, 17835, 16531, 21, 11513, 19791, 17264, - 13783, 17835, 16531, 21, 11513, 21186, - 13783, 17835, 16531, 22, - 13783, 17835, 16531, 23, 11513, 964, - 13783, 17835, 16531, 23, 11513, 1291, 12502, - 13783, 17835, 16531, 23, 11513, 1291, 12503, 897, 16586, - 13783, 17835, 16531, 23, 11513, 6058, - 13783, 17835, 16531, 23, 11513, 7521, 17264, - 13783, 17835, 16531, 23, 11513, 8321, 12502, - 13783, 17835, 16531, 23, 11513, 12320, - 13783, 17835, 16531, 23, 11513, 12620, - 13783, 17835, 16531, 23, 11513, 14911, 16531, 18, - 13783, 17835, 16531, 23, 11513, 16095, 964, - 13783, 17835, 16531, 23, 11513, 16661, 1290, - 13783, 17835, 16531, 23, 11513, 16661, 15140, - 13783, 17835, 16531, 23, 11513, 17264, - 13783, 17835, 16531, 23, 11513, 17846, - 13783, 17835, 16531, 23, 11513, 22223, 12502, - 13783, 17835, 16531, 24, - 13783, 17835, 16531, 25, 11513, 1291, 12318, - 13783, 17835, 16531, 25, 11513, 1291, 12502, - 13783, 17835, 16531, 25, 11513, 7658, - 13783, 17835, 16531, 25, 11513, 12320, - 13783, 17835, 16531, 26, - 13783, 17835, 16531, 27, 11513, 1291, 12318, - 13783, 17835, 16531, 27, 11513, 1291, 12502, - 13783, 17835, 16531, 27, 11513, 8281, 7658, - 13783, 17835, 16531, 27, 11513, 8321, 12502, - 13783, 17835, 16531, 27, 11513, 8351, 14659, 2232, - 13783, 17835, 16531, 27, 11513, 12320, - 13783, 17835, 16531, 27, 11513, 12620, - 13783, 17835, 16531, 27, 11513, 13416, - 13783, 17835, 16531, 27, 11513, 14911, 16531, 18, - 13783, 17835, 16531, 27, 11513, 15140, - 13783, 17835, 16531, 27, 11513, 17846, - 13783, 17835, 16531, 27, 11513, 18741, 17264, - 13783, 17835, 16531, 27, 11513, 21186, - 13783, 17835, 16531, 27, 11513, 22223, 12502, - 13783, 17835, 16531, 28, - 13783, 17835, 16531, 29, 11513, 1291, 12318, - 13783, 17835, 16531, 29, 11513, 1291, 12319, 897, 16586, - 13783, 17835, 16531, 29, 11513, 1291, 12502, - 13783, 17835, 16531, 29, 11513, 7659, 12318, - 13783, 17835, 16531, 29, 11513, 7670, - 13783, 17835, 16531, 29, 11513, 7671, 897, 1291, 12502, - 13783, 17835, 16531, 29, 11513, 7671, 897, 7659, 12318, - 13783, 17835, 16531, 29, 11513, 7671, 897, 12320, - 13783, 17835, 16531, 29, 11513, 7671, 897, 13416, - 13783, 17835, 16531, 29, 11513, 7671, 897, 15140, - 13783, 17835, 16531, 29, 11513, 8351, 17265, 18782, - 13783, 17835, 16531, 29, 11513, 8356, - 13783, 17835, 16531, 29, 11513, 12320, - 13783, 17835, 16531, 29, 11513, 12554, - 13783, 17835, 16531, 29, 11513, 12620, - 13783, 17835, 16531, 29, 11513, 13416, - 13783, 17835, 16531, 29, 11513, 15140, - 13783, 17835, 16531, 29, 11513, 15141, 897, 12320, - 13783, 17835, 16531, 29, 11513, 15141, 897, 16586, - 13783, 17835, 16531, 29, 11513, 15141, 897, 21188, - 13783, 17835, 16531, 29, 11513, 16095, 12320, - 13783, 17835, 16531, 29, 11513, 16095, 13416, - 13783, 17835, 16531, 29, 11513, 16586, - 13783, 17835, 16531, 29, 11513, 16587, 897, 12320, - 13783, 17835, 16531, 29, 11513, 16587, 897, 13416, - 13783, 17835, 16531, 29, 11513, 16661, 15140, - 13783, 17835, 16531, 29, 11513, 16804, - 13783, 17835, 16531, 29, 11513, 16805, 897, 16586, - 13783, 17835, 16531, 29, 11513, 17264, - 13783, 17835, 16531, 29, 11513, 17265, 897, 12320, - 13783, 17835, 16531, 29, 11513, 20163, 12554, - 13783, 17835, 16531, 29, 11513, 21188, - 13783, 17835, 16531, 29, 11513, 21189, 897, 16586, - 13783, 17835, 16531, 29, 11513, 22222, - 13783, 17835, 16531, 29, 11513, 22223, 897, 1291, 12502, - 13783, 17835, 16531, 29, 11513, 22223, 897, 7659, 12318, - 13783, 17835, 16531, 29, 11513, 22223, 897, 12320, - 13783, 17835, 16531, 29, 11513, 22223, 897, 13416, - 13783, 17835, 16531, 29, 11513, 22223, 897, 15140, - 13783, 17835, 16531, 30, - 13783, 17835, 16531, 31, 11513, 1291, 12318, - 13783, 17835, 16531, 31, 11513, 7658, - 13783, 17835, 16531, 31, 11513, 12320, - 13783, 17835, 16531, 31, 11513, 17264, - 13783, 17835, 16531, 31, 11513, 17265, 19281, 21186, - 13783, 17835, 16531, 31, 11513, 20040, - 13783, 17835, 16531, 31, 11513, 20703, 10856, - 13783, 17835, 16531, 32, - 13783, 17835, 16531, 33, 11513, 17265, 19281, 21186, - 13783, 17835, 16531, 33, 11513, 19791, 17264, - 13783, 17835, 16531, 34, - 13783, 17835, 16531, 35, 11513, 1291, 12318, - 13783, 17835, 16531, 35, 11513, 1291, 12502, - 13783, 17835, 16531, 35, 11513, 1291, 12503, 897, 16586, - 13783, 17835, 16531, 35, 11513, 8321, 12502, - 13783, 17835, 16531, 35, 11513, 10856, - 13783, 17835, 16531, 35, 11513, 12320, - 13783, 17835, 16531, 35, 11513, 12620, - 13783, 17835, 16531, 35, 11513, 16095, 13416, - 13783, 17835, 16531, 35, 11513, 17264, - 13783, 17835, 16531, 35, 11513, 17846, - 13783, 17835, 16531, 35, 11513, 18741, 17264, - 13783, 17835, 16531, 35, 11513, 20163, 12554, - 13783, 17835, 16531, 35, 19016, - 13783, 17835, 16531, 36, - 13783, 17835, 16531, 37, 11513, 1291, 12318, - 13783, 17835, 16531, 37, 11513, 1291, 12502, - 13783, 17835, 16531, 37, 11513, 1291, 12503, 897, 1291, 12318, - 13783, 17835, 16531, 37, 11513, 7658, - 13783, 17835, 16531, 37, 11513, 12320, - 13783, 17835, 16531, 37, 11513, 12321, 897, 1291, 12318, - 13783, 17835, 16531, 37, 11513, 12620, - 13783, 17835, 16531, 37, 11513, 12621, 897, 1291, 12318, - 13783, 17835, 16531, 37, 11513, 12923, 12502, - 13783, 17835, 16531, 37, 11513, 14837, 17265, 18782, - 13783, 17835, 16531, 37, 11513, 15013, 10856, - 13783, 17835, 16531, 37, 11513, 17846, - 13783, 17835, 16531, 37, 11513, 18741, 17264, - 13783, 17835, 16531, 37, 11513, 19791, 17264, - 13783, 17835, 16531, 37, 11513, 22222, - 13783, 17835, 16531, 38, - 13783, 17835, 16531, 39, 11513, 1291, 12318, - 13783, 17835, 16531, 39, 11513, 1291, 12502, - 13783, 17835, 16531, 39, 11513, 7658, - 13783, 17835, 16531, 39, 11513, 8321, 12502, - 13783, 17835, 16531, 39, 11513, 12620, - 13783, 17835, 16531, 39, 11513, 12923, 12502, - 13783, 17835, 16531, 39, 11513, 17264, - 13783, 17835, 16531, 39, 11513, 17846, - 13783, 17835, 16531, 39, 11513, 19791, 17264, - 13783, 17835, 16531, 39, 11513, 21813, 7658, - 13783, 17835, 16531, 39, 11513, 22223, 12502, - 13783, 17835, 16531, 40, - 13783, 17835, 16531, 41, 964, - 13783, 17835, 16531, 41, 11513, 1291, 12502, - 13783, 17835, 16531, 41, 11513, 7659, 12318, - 13783, 17835, 16531, 41, 11513, 7670, - 13783, 17835, 16531, 41, 11513, 7671, 897, 1291, 12502, - 13783, 17835, 16531, 41, 11513, 7671, 897, 7659, 12318, - 13783, 17835, 16531, 41, 11513, 7671, 897, 12320, - 13783, 17835, 16531, 41, 11513, 7671, 897, 13416, - 13783, 17835, 16531, 41, 11513, 7671, 897, 15140, - 13783, 17835, 16531, 41, 11513, 10151, 12318, - 13783, 17835, 16531, 41, 11513, 12320, - 13783, 17835, 16531, 41, 11513, 12554, - 13783, 17835, 16531, 41, 11513, 12620, - 13783, 17835, 16531, 41, 11513, 13416, - 13783, 17835, 16531, 41, 11513, 15140, - 13783, 17835, 16531, 41, 11513, 15141, 897, 12320, - 13783, 17835, 16531, 41, 11513, 15141, 12502, - 13783, 17835, 16531, 41, 11513, 16095, 12320, - 13783, 17835, 16531, 41, 11513, 16095, 13416, - 13783, 17835, 16531, 41, 11513, 16586, - 13783, 17835, 16531, 41, 11513, 16587, 897, 21188, - 13783, 17835, 16531, 41, 11513, 16804, - 13783, 17835, 16531, 41, 11513, 17264, - 13783, 17835, 16531, 41, 11513, 20163, 12554, - 13783, 17835, 16531, 41, 11513, 21188, - 13783, 17835, 16531, 41, 11513, 21189, 897, 12320, - 13783, 17835, 16531, 41, 11513, 21189, 897, 12620, - 13783, 17835, 16531, 41, 11513, 21189, 897, 13416, - 13783, 17835, 16531, 41, 11513, 21189, 897, 16586, - 13783, 17835, 16531, 41, 11513, 21189, 12502, - 13783, 17835, 16531, 41, 11513, 22222, - 13783, 17835, 16531, 41, 11513, 22223, 12502, - 13783, 17835, 16531, 42, - 13783, 17835, 16531, 43, 11513, 1291, 12502, - 13783, 17835, 16531, 43, 11513, 7658, - 13783, 17835, 16531, 43, 11513, 15140, - 13783, 17835, 16531, 43, 11513, 19791, 17264, - 13783, 17835, 16531, 44, - 13783, 17835, 16531, 45, 11513, 1291, 12318, - 13783, 17835, 16531, 45, 11513, 1291, 12502, - 13783, 17835, 16531, 45, 11513, 7658, - 13783, 17835, 16531, 45, 11513, 12320, - 13783, 17835, 16531, 45, 11513, 13416, - 13783, 17835, 16531, 45, 11513, 21188, - 13783, 17835, 16531, 45, 11513, 22222, - 13783, 17835, 16531, 46, - 13783, 17835, 16531, 47, 11513, 1291, 12318, - 13783, 17835, 16531, 47, 11513, 21188, - 13783, 17835, 16531, 48, - 13783, 17835, 16531, 49, 11513, 1291, 12318, - 13783, 17835, 16531, 49, 11513, 1291, 12502, - 13783, 17835, 16531, 49, 11513, 7658, - 13783, 17835, 16531, 49, 11513, 7659, 12318, - 13783, 17835, 16531, 49, 11513, 8356, - 13783, 17835, 16531, 49, 11513, 12320, - 13783, 17835, 16531, 49, 11513, 13416, - 13783, 17835, 16531, 49, 11513, 15140, - 13783, 17835, 16531, 49, 11513, 16586, - 13783, 17835, 16531, 49, 11513, 17264, - 13783, 17835, 16531, 49, 11513, 21188, - 13783, 17835, 16531, 49, 11513, 22222, - 13783, 17835, 16531, 50, - 13783, 17835, 16531, 51, 11513, 1291, 12318, - 13783, 17835, 16531, 51, 11513, 1291, 12502, - 13783, 17835, 16531, 51, 11513, 7658, - 13783, 17835, 16531, 51, 11513, 8321, 12502, - 13783, 17835, 16531, 51, 11513, 12320, - 13783, 17835, 16531, 51, 11513, 12620, - 13783, 17835, 16531, 51, 11513, 15013, 10856, - 13783, 17835, 16531, 51, 11513, 17264, - 13783, 17835, 16531, 51, 11513, 18791, 7658, - 13783, 17835, 16531, 51, 11513, 21186, - 13783, 17835, 16531, 51, 11513, 22222, - 13783, 17835, 16531, 58, - 13783, 17835, 16531, 66, - 13783, 17835, 16531, 67, 11513, 12320, - 13783, 17835, 16531, 67, 11513, 16586, - 13783, 17835, 16531, 84, - 13783, 17835, 16531, 96, - 13783, 17835, 16531, 98, - 13783, 17835, 16531, 99, 11513, 22495, 964, - 13783, 17835, 16531, 104, - 13783, 17835, 16531, 174, - 13783, 17835, 16531, 175, 11513, 12620, - 13783, 17835, 16531, 216, - 13783, 17835, 16531, 332, - 13783, 17835, 16531, 404, - 13783, 17835, 16531, 480, - 13783, 17835, 16531, 512, - 13783, 17835, 16531, 522, - 13783, 17835, 16531, 534, - 13783, 17835, 16531, 670, - 13783, 17835, 16531, 734, - 13783, 17835, 16531, 1120, - 13783, 17835, 16531, 1148, - 13783, 17835, 16531, 1394, - 13783, 17835, 16531, 1412, - 13783, 17835, 16531, 1422, - 13783, 17835, 16531, 1436, - 13783, 17835, 16531, 1437, 11513, 12620, - 13783, 17835, 16531, 1437, 20586, - 13783, 17835, 16531, 1588, - 13783, 17835, 16531, 2757, 16949, 28, - 13783, 17835, 16531, 3137, 19016, - 13783, 17835, 16531, 6064, - 13783, 17835, 16531, 7429, 14, - 13783, 17835, 16531, 7470, - 13783, 17835, 16531, 7818, - 13783, 17835, 16531, 9783, 8, - 13783, 17835, 16531, 9783, 28, - 13783, 17835, 16531, 10095, 7670, - 13783, 17835, 16531, 11033, 3240, - 13783, 17835, 16531, 11033, 3536, - 13783, 17835, 16531, 11033, 7036, - 13783, 17835, 16531, 11368, - 13783, 17835, 16531, 11550, - 13783, 17835, 16531, 11724, - 13783, 17835, 16531, 12366, - 13783, 17835, 16531, 13332, - 13783, 17835, 16531, 13546, - 13783, 17835, 16531, 14428, - 13783, 17835, 16531, 14756, - 13783, 17835, 16531, 14797, 36, - 13783, 17835, 16531, 14911, 33, 11513, 7659, 10856, - 13783, 17835, 16531, 14911, 17835, 16, - 13783, 17835, 16531, 15114, - 13783, 17835, 16531, 15115, 11513, 17264, - 13783, 17835, 16531, 15115, 11513, 17265, 19281, 21186, - 13783, 17835, 16531, 15847, 22, - 13783, 17835, 16531, 15949, 18305, 12, - 13783, 17835, 16531, 16506, - 13783, 17835, 16531, 16507, 11513, 17264, - 13783, 17835, 16531, 16661, 14761, 36, - 13783, 17835, 16531, 17089, 12, - 13783, 17835, 16531, 17465, 0, - 13783, 17835, 16531, 17465, 14, - 13783, 17835, 16531, 17465, 20, - 13783, 17835, 16531, 17465, 22, - 13783, 17835, 16531, 17465, 24, - 13783, 17835, 16531, 17465, 38, - 13783, 17835, 16531, 17465, 42, - 13783, 17835, 16531, 17465, 12366, - 13783, 17835, 16531, 17465, 18305, 12, - 13783, 17835, 16531, 17653, 6, - 13783, 17835, 16531, 18213, 0, - 13783, 17835, 16531, 18213, 16, - 13783, 17835, 16531, 18213, 40, - 13783, 17835, 16531, 18213, 10696, - 13783, 17835, 16531, 18305, 6, - 13783, 17835, 16531, 18305, 10, - 13783, 17835, 16531, 18305, 12, - 13783, 17835, 16531, 18305, 34, - 13783, 17835, 16531, 18305, 36, - 13783, 17835, 16531, 18305, 38, - 13783, 17835, 16531, 19103, 36, - 13783, 17835, 16531, 19378, - 13783, 17835, 16531, 19419, 66, - 13783, 17835, 16531, 19419, 504, - 13783, 17835, 16531, 19419, 682, - 13783, 17835, 16531, 20587, 5, 11513, 1290, - 13783, 17835, 16531, 20587, 8, - 13783, 17835, 16531, 20587, 7429, 14, - 13783, 17835, 16531, 20587, 9783, 8, - 13783, 17835, 16531, 20604, - 13783, 17835, 16531, 20856, - 13783, 17835, 16531, 21011, 44, - 13783, 17835, 16531, 21164, - 13783, 17835, 16531, 21165, 11513, 12922, - 13783, 17835, 16531, 23015, 50, - 13783, 17835, 16531, 23913, 42, - 13783, 17835, 16531, 23913, 406, - 13783, 17835, 16531, 25767, 880, - 13783, 17835, 16531, 25767, 5482, - 13783, 17835, 20241, 316, - 13783, 17835, 20241, 504, - 13783, 21927, 14911, 16531, 0, - 13783, 21927, 14911, 16531, 8, - 13783, 21927, 14911, 16531, 14, - 13783, 21927, 14911, 16531, 16, - 13783, 21927, 14911, 16531, 18, - 13783, 21927, 14911, 16531, 20, - 13783, 21927, 14911, 16531, 22, - 13783, 21927, 14911, 16531, 24, - 13783, 21927, 14911, 16531, 26, - 13783, 21927, 14911, 16531, 28, - 13783, 21927, 14911, 16531, 30, - 13783, 21927, 14911, 16531, 34, - 13783, 21927, 14911, 16531, 36, - 13783, 21927, 14911, 16531, 38, - 13783, 21927, 14911, 16531, 40, - 13783, 21927, 14911, 16531, 42, - 13783, 21927, 14911, 16531, 46, - 13783, 21927, 14911, 16531, 14756, - 13783, 22431, 16531, 17, 13828, - 13783, 22431, 16531, 17709, 24, - 13783, 22431, 16531, 20163, 24, - 13783, 22431, 16531, 20587, 10, - 13783, 22431, 16531, 20587, 30, - 13783, 22431, 16531, 20659, 16, - 13789, 13422, - 13796, - 13803, 17182, - 13804, - 13807, 3241, 17211, 19574, - 13807, 6093, 13470, - 13807, 7037, 17211, 19574, - 13807, 7037, 18889, 12525, 10690, - 13807, 7059, 18889, 12525, 6380, - 13807, 7059, 18889, 12525, 10690, - 13807, 8281, 20847, 14811, 17811, 20412, - 13807, 10090, - 13807, 12659, 8808, - 13807, 13151, 17211, 19574, - 13807, 13421, 12934, - 13807, 14659, 20847, 14811, 17811, 20412, - 13807, 14782, - 13807, 15117, 18889, 12525, 10690, - 13807, 15453, 17224, - 13807, 17473, 18889, 12525, 10690, - 13807, 19032, - 13807, 20933, 964, - 13811, 10575, 2290, - 13811, 10575, 10370, - 13811, 10575, 21530, - 13811, 10575, 21614, - 13811, 13069, 2760, - 13811, 13069, 3240, - 13811, 13069, 3536, - 13811, 13069, 7036, - 13811, 13069, 7058, - 13811, 13069, 9358, - 13811, 13069, 11824, - 13811, 13069, 13150, - 13811, 13069, 14778, - 13811, 13069, 15116, - 13811, 14911, 16531, 358, - 13811, 14911, 16531, 394, - 13811, 14911, 16531, 426, - 13811, 14911, 16531, 466, - 13811, 14911, 16531, 548, - 13811, 14911, 16531, 598, - 13811, 14911, 16531, 648, - 13811, 14911, 16531, 2574, - 13811, 14911, 16531, 19540, - 13811, 15407, 10575, 0, - 13811, 15407, 10575, 8, - 13811, 15407, 10575, 16, - 13811, 15407, 10575, 28, - 13811, 15407, 10575, 40, - 13811, 15407, 10575, 72, - 13811, 15407, 10575, 96, - 13811, 15407, 10575, 186, - 13811, 15407, 10575, 522, - 13811, 16531, 108, - 13811, 16531, 126, - 13811, 16531, 150, - 13811, 16531, 248, - 13811, 16531, 272, - 13811, 16531, 344, - 13811, 16531, 358, - 13811, 16531, 394, - 13811, 16531, 426, - 13811, 16531, 466, - 13811, 16531, 548, - 13811, 16531, 598, - 13811, 16531, 614, - 13811, 16531, 648, - 13811, 16531, 738, - 13811, 16531, 778, - 13811, 16531, 1000, - 13811, 16531, 1116, - 13811, 16531, 1236, - 13811, 16531, 1588, - 13811, 16531, 1918, - 13811, 16531, 2036, - 13811, 16531, 2574, - 13811, 16531, 2830, - 13811, 16531, 3212, - 13811, 16531, 3286, - 13811, 16531, 3422, - 13811, 16531, 3484, - 13811, 16531, 3892, - 13811, 16531, 7376, - 13811, 20549, 8808, - 13811, 21919, 16531, 598, - 13811, 21919, 16531, 738, - 13811, 21919, 16531, 778, - 13811, 23213, 8808, - 13811, 25969, 16530, - 13821, 20851, 10574, - 13822, - 13825, 7213, 528, - 13825, 7213, 896, - 13825, 7213, 15856, - 13825, 7213, 15857, 11513, 20163, 13600, - 13825, 7213, 20163, 16376, - 13825, 7213, 20163, 16838, - 13832, - 13839, 2761, 16107, 12532, - 13839, 2761, 18951, 12532, - 13839, 7037, 18099, 12532, - 13839, 7429, 897, 15287, 7429, 15453, 15938, - 13839, 7429, 8281, 2761, 18951, 12532, - 13839, 7429, 12532, - 13839, 7429, 13473, 15453, 17224, - 13839, 7429, 14659, 2761, 18951, 12532, - 13839, 7429, 15938, - 13839, 7429, 16637, 14782, - 13839, 7429, 18307, 15453, 15938, - 13839, 7429, 20933, 8321, 11513, 15117, 10985, 13924, - 13839, 8281, 2761, 21881, 12532, - 13839, 8281, 12533, 19791, 13839, 16661, 8281, 661, 13839, 14658, - 13839, 8281, 12533, 19791, 13839, 16661, 8281, 661, 13839, 15900, - 13839, 8281, 12533, 19791, 15287, 8281, 661, 13839, 15900, - 13839, 8281, 12533, 19791, 15287, 8281, 661, 13839, 16661, 14658, - 13839, 8281, 12533, 19791, 15287, 8281, 661, 15287, 16661, 14658, - 13839, 8281, 12533, 19791, 15287, 15901, 661, 13839, 14658, - 13839, 8281, 12533, 19791, 15287, 15901, 661, 13839, 16661, 14658, - 13839, 8281, 12533, 19791, 15287, 15901, 661, 15287, 16661, 14658, - 13839, 8281, 12533, 19791, 15287, 16661, 8281, 661, 13839, 14658, - 13839, 8281, 12533, 19791, 15287, 16661, 8281, 661, 13839, 15900, - 13839, 8281, 12533, 19791, 15287, 16661, 8281, 661, 13839, 16661, 14658, - 13839, 8281, 15982, - 13839, 8281, 16876, - 13839, 8281, 18951, 15938, - 13839, 8281, 19357, 15938, - 13839, 8281, 20051, 2822, - 13839, 8281, 20543, 6997, 11513, 9783, 14030, - 13839, 8281, 20543, 12667, 8108, - 13839, 8281, 20543, 12667, 9836, - 13839, 8281, 20543, 12667, 10180, - 13839, 8281, 20543, 12667, 14596, - 13839, 8281, 20543, 12667, 15816, - 13839, 8281, 20543, 12667, 16470, - 13839, 8281, 20543, 18681, 6996, - 13839, 8281, 20543, 19129, 6996, - 13839, 8281, 20543, 19697, 916, - 13839, 8281, 20543, 20063, 6996, - 13839, 8281, 20543, 20711, 16470, - 13839, 8281, 20543, 22964, - 13839, 8281, 20543, 25816, - 13839, 8281, 20858, - 13839, 8281, 21049, 2822, - 13839, 8281, 22736, - 13839, 8281, 22983, 16637, 14782, - 13839, 8281, 24089, 24193, 12414, - 13839, 12527, 20622, - 13839, 14659, 2761, 21881, 12532, - 13839, 14659, 12533, 19791, 13839, 8281, 661, 13839, 16661, 14658, - 13839, 14659, 12533, 19791, 13839, 8281, 661, 15287, 15900, - 13839, 14659, 12533, 19791, 13839, 8281, 661, 15287, 16661, 14658, - 13839, 14659, 12533, 19791, 13839, 15901, 661, 13839, 16661, 14658, - 13839, 14659, 12533, 19791, 13839, 15901, 661, 15287, 14658, - 13839, 14659, 12533, 19791, 13839, 15901, 661, 15287, 16661, 14658, - 13839, 14659, 12533, 19791, 13839, 16661, 8281, 661, 15287, 14658, - 13839, 14659, 12533, 19791, 13839, 16661, 8281, 661, 15287, 15900, - 13839, 14659, 12533, 19791, 13839, 16661, 8281, 661, 15287, 16661, 14658, - 13839, 14659, 12533, 19791, 15287, 16661, 8281, 661, 15287, 14658, - 13839, 14659, 12533, 19791, 15287, 16661, 8281, 661, 15287, 15900, - 13839, 14659, 14693, 19058, - 13839, 14659, 15975, 11513, 1290, - 13839, 14659, 16876, - 13839, 14659, 18951, 15938, - 13839, 14659, 19357, 15938, - 13839, 14659, 20543, 6997, 11513, 9783, 14030, - 13839, 14659, 20543, 12667, 8108, - 13839, 14659, 20543, 12667, 9836, - 13839, 14659, 20543, 12667, 10180, - 13839, 14659, 20543, 12667, 14596, - 13839, 14659, 20543, 12667, 15816, - 13839, 14659, 20543, 12667, 16470, - 13839, 14659, 20543, 18681, 6996, - 13839, 14659, 20543, 19129, 6996, - 13839, 14659, 20543, 19697, 916, - 13839, 14659, 20543, 20063, 6996, - 13839, 14659, 20543, 20711, 16470, - 13839, 14659, 20543, 22964, - 13839, 14659, 20543, 25816, - 13839, 14659, 20641, 15453, 15938, - 13839, 14659, 20641, 15453, 17224, - 13839, 14659, 20858, - 13839, 14659, 22983, 16637, 14782, - 13839, 14659, 24089, 21119, 12414, - 13839, 14659, 25765, 15453, 17224, - 13839, 14779, 18099, 12532, - 13839, 15117, 18099, 12532, - 13839, 15117, 20547, 8281, 2761, 18951, 12532, - 13839, 15117, 20547, 12532, - 13839, 15117, 20547, 14659, 2761, 18951, 12532, - 13839, 15901, 2761, 18951, 12532, - 13839, 15901, 8281, 2761, 21881, 12532, - 13839, 15901, 8281, 19357, 15938, - 13839, 15901, 14659, 2761, 21881, 12532, - 13839, 15901, 14659, 19357, 15938, - 13839, 16661, 8281, 2761, 21881, 12532, - 13839, 16661, 8281, 19357, 15938, - 13839, 16661, 14659, 2761, 21881, 12532, - 13839, 16661, 14659, 19357, 15938, - 13839, 16661, 15901, 8281, 2761, 21881, 12532, - 13839, 16661, 15901, 14659, 2761, 21881, 12532, - 13839, 22495, 14693, 19058, - 13839, 22983, 2761, 18951, 12532, - 13847, 18094, - 13848, - 13851, 6996, - 13903, 11470, - 13911, 10574, - 13912, - 13919, 8276, - 13929, 18727, 2760, - 13929, 18727, 3240, - 13929, 18727, 3412, - 13929, 18727, 3536, - 13929, 18727, 7036, - 13929, 18727, 7058, - 13929, 18727, 9358, - 13929, 18727, 11824, - 13929, 18727, 13150, - 13929, 18727, 14778, - 13929, 18727, 15116, - 13929, 18727, 16110, - 13929, 18727, 17472, - 13929, 18727, 18148, - 13929, 18727, 19116, - 13929, 18727, 19966, - 13929, 18727, 20052, - 13929, 18727, 20368, - 13929, 18727, 20824, - 13929, 18727, 21854, - 13954, - 13957, 18365, 13069, 2760, - 13957, 18365, 13069, 3240, - 13957, 18365, 13069, 3536, - 13957, 18365, 13069, 7036, - 13957, 18365, 13069, 7058, - 13957, 18365, 13069, 9358, - 13957, 18365, 13069, 13150, - 13957, 18365, 13069, 14778, - 13957, 18365, 13069, 15116, - 13957, 18365, 20777, 8385, 366, - 13957, 18365, 20777, 8387, 358, - 13957, 18365, 20777, 8389, 380, - 13957, 18365, 20777, 8391, 750, - 13957, 18365, 20777, 8393, 738, - 13957, 18365, 20777, 8395, 756, - 13957, 18365, 20777, 8397, 2440, - 13957, 18365, 20777, 8399, 2368, - 13957, 18365, 20777, 8401, 2474, - 13957, 18365, 20777, 8403, 116, - 13957, 18365, 20777, 8405, 108, - 13957, 18365, 20777, 8407, 122, - 13957, 18365, 20777, 8409, 16, - 13957, 18365, 20777, 8411, 0, - 13957, 18365, 20777, 8413, 40, - 13957, 18365, 20777, 8415, 160, - 13957, 18365, 20777, 8417, 150, - 13957, 18365, 20777, 8419, 170, - 13957, 18365, 20777, 8421, 624, - 13957, 18365, 20777, 8423, 614, - 13957, 18365, 20777, 8425, 638, - 13957, 18365, 20777, 8427, 656, - 13957, 18365, 20777, 8429, 648, - 13957, 18365, 20777, 8431, 668, - 13957, 18365, 20777, 8433, 402, - 13957, 18365, 20777, 8435, 394, - 13957, 18365, 20777, 8437, 416, - 13957, 18365, 20777, 8439, 348, - 13957, 18365, 20777, 8441, 344, - 13957, 18365, 20777, 8443, 352, - 13957, 18365, 20777, 8445, 782, - 13957, 18365, 20777, 8447, 778, - 13957, 18365, 20777, 8449, 790, - 13957, 18365, 20777, 8451, 234, - 13957, 18365, 20777, 8453, 228, - 13957, 18365, 20777, 8455, 242, - 13957, 18365, 20777, 8457, 2600, - 13957, 18365, 20777, 8459, 2522, - 13957, 18365, 20777, 8461, 2676, - 13957, 18365, 20777, 8463, 1708, - 13957, 18365, 20777, 8465, 272, - 13957, 18365, 20777, 8467, 1784, - 13957, 18365, 20777, 8469, 9284, - 13957, 18365, 20777, 8471, 8146, - 13957, 18365, 20777, 8473, 754, - 13957, 18365, 20777, 8475, 7688, - 13957, 18365, 20777, 8477, 8824, - 13957, 18365, 20777, 8479, 374, - 13957, 18365, 20777, 8481, 3802, - 13957, 18365, 20777, 8483, 572, - 13957, 18365, 20777, 8485, 554, - 13957, 18365, 20777, 8487, 1714, - 13957, 18365, 20777, 8489, 1736, - 13957, 18365, 20777, 8491, 2290, - 13957, 18365, 20777, 8493, 652, - 13957, 18365, 20777, 8495, 1554, - 13957, 18365, 20777, 8497, 9306, - 13957, 18365, 20777, 8499, 9554, - 13957, 18365, 20777, 8501, 2408, - 13957, 18365, 20777, 8503, 9586, - 13957, 18365, 20777, 8505, 3806, - 13957, 18365, 20777, 8507, 2392, - 13957, 18365, 20777, 8509, 350, - 13957, 18365, 20777, 8511, 2554, - 13957, 18365, 20777, 8513, 2018, - 13957, 18365, 20777, 8515, 566, - 13957, 18365, 20777, 8517, 9218, - 13957, 18365, 20777, 8519, 562, - 13957, 18365, 20777, 8521, 660, - 13957, 18365, 20777, 8523, 1560, - 13957, 18365, 20777, 8525, 7222, - 13957, 18365, 20777, 8527, 2394, - 13957, 18365, 20777, 8529, 398, - 13957, 18365, 20777, 8531, 2118, - 13957, 18365, 20777, 8533, 230, - 13957, 18365, 20777, 8535, 2100, - 13957, 18365, 20777, 8537, 722, - 13957, 18365, 20777, 8539, 1460, - 13957, 18365, 20777, 8541, 628, - 13957, 18365, 20777, 8543, 780, - 13957, 18365, 20777, 8545, 2818, - 13957, 18365, 20777, 8547, 9292, - 13957, 18365, 20777, 8549, 7462, - 13957, 18365, 20777, 8551, 2230, - 13957, 18365, 20777, 8553, 718, - 13957, 18365, 20777, 8555, 8351, 9286, - 13957, 18365, 20777, 8557, 1802, - 13957, 18365, 20777, 8559, 240, - 13957, 18365, 20777, 8561, 1224, - 13957, 18365, 20777, 8563, 9288, - 13957, 18365, 20777, 8565, 3406, - 13957, 18365, 20777, 8567, 2110, - 13957, 18365, 20777, 8569, 7214, - 13957, 18365, 20777, 8571, 2454, - 13957, 18365, 20777, 8573, 362, - 13957, 18365, 20777, 8575, 276, - 13957, 18365, 20777, 8577, 112, - 13957, 18365, 20777, 8579, 9562, - 13957, 18365, 20777, 8581, 548, - 13957, 18365, 20777, 8583, 8, - 13957, 18365, 20777, 8585, 1446, - 13957, 18365, 20777, 8587, 2864, - 13957, 18365, 20777, 8589, 1028, - 13957, 18365, 20777, 8591, 3470, - 13957, 18365, 20777, 8593, 8351, 8830, - 13957, 18365, 20777, 8595, 8351, 14128, - 13957, 18365, 20777, 8597, 1556, - 13957, 18365, 20777, 8599, 2112, - 13957, 18365, 20777, 8601, 3916, - 13957, 18365, 20777, 8603, 8351, 398, - 13957, 18365, 20777, 8605, 248, - 13957, 18365, 20777, 8607, 8150, - 13957, 18365, 20777, 8609, 346, - 13957, 18365, 20777, 8611, 3782, - 13957, 18365, 20777, 8613, 14122, - 13957, 18365, 20777, 8615, 618, - 13957, 18365, 20777, 8617, 2562, - 13957, 18365, 20777, 8619, 744, - 13957, 18365, 20777, 8621, 2550, - 13957, 18365, 20777, 8623, 9290, - 13957, 18365, 20777, 8625, 786, - 13957, 18365, 20777, 8627, 2400, - 13957, 18365, 20777, 8629, 2552, - 13957, 18365, 20777, 8631, 1558, - 13957, 18365, 20777, 8633, 2556, - 13957, 18365, 20777, 8635, 3758, - 13957, 18365, 20777, 8637, 14130, - 13957, 18365, 20777, 8639, 7664, - 13957, 18365, 20777, 8641, 2548, - 13957, 18365, 20777, 8643, 1690, - 13957, 18365, 20777, 8645, 322, - 13957, 18365, 20777, 8647, 2114, - 13957, 18365, 20777, 8649, 1488, - 13957, 18365, 20777, 8651, 9382, - 13957, 18365, 20777, 8653, 322, - 13957, 18365, 20777, 8655, 3258, - 13957, 18365, 20777, 8657, 194, - 13957, 18365, 20777, 8659, 118, - 13957, 18365, 20777, 8661, 3804, - 13957, 18365, 20777, 8663, 288, - 13957, 18365, 20777, 8665, 3954, - 13957, 18365, 20777, 8667, 8351, 2398, - 13957, 18365, 20777, 8669, 3760, - 13957, 18365, 20777, 8671, 3702, - 13957, 18365, 20777, 8673, 2396, - 13957, 18365, 20777, 8675, 9286, - 13957, 18365, 20777, 8677, 28, - 13957, 18365, 20777, 8679, 1562, - 13957, 18365, 20777, 8681, 9372, - 13957, 18365, 20777, 8683, 986, - 13957, 18365, 20777, 8685, 728, - 13957, 18365, 20777, 8687, 2608, - 13957, 18365, 20777, 8689, 412, - 13957, 18365, 20777, 8691, 8994, - 13957, 18365, 20777, 8693, 258, - 13957, 18365, 20777, 8695, 14128, - 13957, 18365, 20777, 8697, 1910, - 13957, 18365, 20777, 8699, 2116, - 13957, 18365, 20777, 8701, 14118, - 13957, 18365, 20777, 8703, 1948, - 13957, 18365, 20777, 8705, 8351, 2394, - 13957, 18365, 20777, 8707, 3200, - 13957, 18365, 20777, 8709, 186, - 13957, 18365, 20777, 8711, 9570, - 13957, 18365, 20777, 8713, 522, - 13957, 18365, 20777, 8715, 7356, - 13957, 18365, 20777, 8717, 7352, - 13957, 18365, 20777, 8719, 264, - 13957, 18365, 20777, 8721, 2634, - 13957, 18365, 20777, 8723, 9598, - 13957, 18365, 20777, 8725, 598, - 13957, 18365, 20777, 8727, 2398, - 13957, 18365, 20777, 8727, 8830, - 13957, 18365, 20777, 8729, 3672, - 13957, 18365, 20777, 8731, 2398, - 13957, 18365, 20777, 8731, 8830, - 13957, 18365, 20777, 8733, 8351, 350, - 13957, 18365, 20777, 8735, 280, - 13957, 18365, 20777, 8737, 14156, - 13957, 18365, 20777, 8739, 204, - 13957, 18365, 20777, 8741, 2130, - 13957, 18365, 20777, 8743, 1286, - 13957, 18365, 20777, 8745, 168, - 13957, 18365, 20777, 8747, 720, - 13957, 18365, 20777, 8749, 8351, 9290, - 13957, 18365, 20777, 8751, 9278, - 13957, 18365, 20777, 8753, 714, - 13957, 18365, 20777, 8755, 292, - 13957, 18365, 20777, 8757, 8836, - 13957, 18365, 20777, 8759, 8824, - 13957, 18365, 20777, 8761, 9000, - 13957, 18365, 20777, 8763, 1564, - 13957, 18365, 20777, 8765, 9200, - 13957, 18365, 20777, 8767, 2616, - 13957, 18365, 20777, 8769, 1782, - 13957, 18365, 20777, 8771, 3794, - 13957, 18365, 20777, 8773, 82, - 13957, 18365, 20777, 8775, 3226, - 13957, 18365, 20777, 8777, 1498, - 13957, 18365, 21127, 16787, 3413, 22044, - 13957, 18365, 21127, 16787, 10904, - 13957, 18365, 21127, 16787, 15068, - 13957, 18365, 21127, 16787, 18281, 22044, - 13957, 18365, 21127, 16787, 20132, - 13957, 18365, 21127, 16787, 20310, - 13957, 18365, 21127, 16787, 22044, - 13968, - 13993, 10574, - 13999, 3754, - 14005, 10574, - 14005, 10575, 323, 20858, - 14005, 10575, 11513, 1291, 12502, - 14005, 10575, 11513, 12923, 12318, - 14005, 10575, 11513, 17037, 6696, - 14005, 10575, 11513, 18137, 6696, - 14005, 15140, - 14017, 954, - 14017, 11513, 15462, - 14020, - 14023, 6096, - 14023, 19050, - 14027, 7070, - 14028, - 14029, 6996, - 14029, 11042, - 14030, - 14037, 15866, - 14038, - 14053, 7041, 10574, - 14053, 14797, 10574, - 14053, 18665, 10574, - 14055, 15147, 20406, - 14055, 15282, - 14055, 15283, 20407, 11513, 1290, - 14055, 15283, 20407, 11513, 9904, - 14055, 15453, 20933, 964, - 14055, 17225, 15283, 20406, - 14055, 17225, 23883, 20406, - 14055, 17881, 1291, 20406, - 14055, 17881, 9905, 20406, - 14055, 17881, 15147, 20406, - 14055, 18529, 528, - 14055, 18529, 896, - 14055, 18932, - 14055, 21148, - 14055, 21928, - 14055, 23882, - 14070, - 14077, 10574, - 14083, 15706, - 14167, 11513, 14968, - 14168, - 14244, - 14255, 6833, 897, 14931, 11489, 12414, - 14255, 6833, 12414, - 14255, 6833, 12415, 897, 14931, 6833, 12414, - 14255, 6833, 12415, 7065, 964, - 14255, 6833, 12415, 11513, 7658, - 14255, 6833, 12415, 19743, 14255, 11489, 12414, - 14255, 6833, 12415, 19743, 14931, 6833, 12414, - 14255, 6833, 12525, 12414, - 14255, 6833, 15453, 12414, - 14255, 6833, 16095, 12414, - 14255, 6833, 20501, 1044, - 14255, 6833, 20501, 8276, - 14255, 6833, 20501, 11391, 8276, - 14255, 6833, 22841, 12414, - 14255, 6833, 28089, 12414, - 14255, 6833, 28089, 12415, 661, 964, - 14255, 11489, 897, 14931, 6833, 12414, - 14255, 11489, 12414, - 14255, 11489, 12415, 661, 8351, 964, - 14255, 11489, 12415, 661, 15974, - 14255, 11489, 12415, 897, 14255, 6833, 12414, - 14255, 11489, 12415, 7065, 964, - 14255, 11489, 12415, 11513, 7658, - 14255, 11489, 12415, 19743, 14255, 6833, 12414, - 14255, 11489, 12525, 12414, - 14255, 11489, 15453, 12414, - 14255, 11489, 16095, 12414, - 14255, 11489, 20501, 1044, - 14255, 11489, 20501, 8276, - 14255, 11489, 20501, 11391, 8276, - 14255, 11489, 22841, 12414, - 14255, 11489, 28089, 12414, - 14255, 11489, 28089, 12415, 661, 964, - 14255, 13597, 14699, 8808, - 14255, 13597, 18951, 8808, - 14255, 13597, 20055, 2761, 7428, - 14255, 13597, 20055, 2761, 16106, - 14255, 13597, 20055, 2761, 18950, - 14255, 13597, 20055, 2761, 21880, - 14255, 13597, 20055, 15117, 20546, - 14255, 13597, 20055, 15117, 22924, - 14255, 13597, 20545, 8808, - 14255, 13597, 23549, 8808, - 14339, 21517, 8808, - 14339, 27246, - 14339, 27248, - 14339, 27250, - 14339, 27252, - 14339, 27254, - 14339, 27256, - 14339, 27258, - 14339, 27260, - 14339, 27262, - 14339, 27264, - 14339, 27266, - 14339, 27268, - 14339, 27270, - 14339, 27272, - 14339, 27274, - 14339, 27276, - 14339, 27278, - 14339, 27280, - 14339, 27282, - 14339, 27284, - 14339, 27286, - 14339, 27288, - 14339, 27290, - 14339, 27292, - 14339, 27294, - 14339, 27296, - 14339, 27298, - 14339, 27300, - 14339, 27302, - 14339, 27304, - 14339, 27306, - 14339, 27308, - 14339, 27310, - 14339, 27312, - 14339, 27314, - 14339, 27316, - 14339, 27318, - 14339, 27320, - 14339, 27322, - 14339, 27324, - 14339, 27326, - 14339, 27328, - 14339, 27330, - 14339, 27332, - 14339, 27334, - 14339, 27336, - 14339, 27338, - 14339, 27340, - 14339, 27342, - 14339, 27344, - 14339, 27346, - 14339, 27348, - 14339, 27350, - 14339, 27352, - 14339, 27354, - 14339, 27356, - 14339, 27358, - 14339, 27360, - 14339, 27362, - 14339, 27364, - 14339, 27366, - 14339, 27368, - 14339, 27370, - 14339, 27372, - 14339, 27374, - 14339, 27376, - 14339, 27378, - 14339, 27380, - 14339, 27382, - 14339, 27384, - 14339, 27386, - 14339, 27388, - 14339, 27390, - 14339, 27392, - 14339, 27394, - 14339, 27396, - 14339, 27398, - 14339, 27400, - 14339, 27402, - 14339, 27404, - 14339, 27406, - 14339, 27408, - 14339, 27410, - 14339, 27412, - 14339, 27414, - 14339, 27416, - 14339, 27418, - 14339, 27420, - 14339, 27422, - 14339, 27424, - 14339, 27426, - 14339, 27428, - 14339, 27430, - 14339, 27432, - 14339, 27434, - 14339, 27436, - 14339, 27438, - 14339, 27440, - 14339, 27442, - 14339, 27444, - 14339, 27446, - 14339, 27448, - 14339, 27450, - 14339, 27452, - 14339, 27454, - 14339, 27456, - 14339, 27458, - 14339, 27460, - 14339, 27462, - 14339, 27464, - 14339, 27466, - 14339, 27468, - 14339, 27470, - 14339, 27472, - 14339, 27474, - 14339, 27476, - 14339, 27478, - 14339, 27480, - 14339, 27482, - 14339, 27484, - 14339, 27486, - 14339, 27488, - 14339, 27490, - 14339, 27492, - 14339, 27494, - 14339, 27496, - 14339, 27498, - 14339, 27500, - 14339, 27502, - 14339, 27504, - 14339, 27506, - 14339, 27508, - 14339, 27510, - 14339, 27512, - 14339, 27514, - 14339, 27516, - 14339, 27518, - 14339, 27520, - 14339, 27522, - 14339, 27524, - 14339, 27526, - 14339, 27528, - 14339, 27530, - 14339, 27532, - 14339, 27534, - 14339, 27536, - 14339, 27538, - 14339, 27540, - 14339, 27542, - 14339, 27544, - 14339, 27546, - 14339, 27548, - 14339, 27550, - 14339, 27552, - 14339, 27554, - 14339, 27556, - 14339, 27558, - 14339, 27560, - 14339, 27562, - 14339, 27564, - 14339, 27566, - 14339, 27568, - 14339, 27570, - 14339, 27572, - 14339, 27574, - 14339, 27576, - 14339, 27578, - 14339, 27580, - 14339, 27582, - 14339, 27584, - 14339, 27586, - 14339, 27588, - 14339, 27590, - 14339, 27592, - 14339, 27594, - 14339, 27596, - 14339, 27598, - 14339, 27600, - 14339, 27602, - 14339, 27604, - 14339, 27606, - 14339, 27608, - 14339, 27610, - 14339, 27612, - 14339, 27614, - 14339, 27616, - 14339, 27618, - 14339, 27620, - 14339, 27622, - 14339, 27624, - 14339, 27626, - 14339, 27628, - 14339, 27630, - 14339, 27632, - 14339, 27634, - 14339, 27636, - 14339, 27638, - 14339, 27640, - 14339, 27642, - 14339, 27644, - 14339, 27646, - 14339, 27648, - 14339, 27650, - 14339, 27652, - 14339, 27654, - 14339, 27656, - 14339, 27658, - 14339, 27660, - 14339, 27662, - 14339, 27664, - 14339, 27666, - 14339, 27668, - 14339, 27670, - 14339, 27672, - 14339, 27674, - 14339, 27676, - 14339, 27678, - 14339, 27680, - 14339, 27682, - 14339, 27684, - 14339, 27686, - 14339, 27688, - 14339, 27690, - 14339, 27692, - 14339, 27694, - 14339, 27696, - 14339, 27698, - 14339, 27700, - 14339, 27702, - 14339, 27704, - 14339, 27706, - 14339, 27708, - 14339, 27710, - 14339, 27712, - 14339, 27714, - 14339, 27716, - 14339, 27718, - 14339, 27720, - 14339, 27722, - 14339, 27724, - 14339, 27726, - 14339, 27728, - 14339, 27730, - 14339, 27732, - 14339, 27734, - 14339, 27736, - 14339, 27738, - 14339, 27740, - 14339, 27742, - 14339, 27744, - 14339, 27746, - 14339, 27748, - 14339, 27750, - 14339, 27752, - 14339, 27754, - 14339, 27756, - 14339, 27758, - 14339, 27760, - 14339, 27762, - 14339, 27764, - 14339, 27766, - 14339, 27768, - 14339, 27770, - 14339, 27772, - 14339, 27774, - 14339, 27776, - 14339, 27778, - 14339, 27780, - 14339, 27782, - 14339, 27784, - 14339, 27786, - 14339, 27788, - 14339, 27790, - 14339, 27792, - 14339, 27794, - 14339, 27796, - 14339, 27798, - 14339, 27800, - 14339, 27802, - 14339, 27804, - 14339, 27806, - 14339, 27808, - 14339, 27810, - 14339, 27812, - 14339, 27814, - 14339, 27816, - 14339, 27818, - 14339, 27820, - 14339, 27822, - 14339, 27824, - 14339, 27826, - 14339, 27828, - 14339, 27830, - 14339, 27832, - 14339, 27834, - 14339, 27836, - 14339, 27838, - 14339, 27840, - 14339, 27842, - 14339, 27844, - 14339, 27846, - 14339, 27848, - 14339, 27850, - 14339, 27852, - 14339, 27854, - 14339, 27856, - 14339, 27858, - 14339, 27860, - 14339, 27862, - 14339, 27864, - 14339, 27866, - 14339, 27868, - 14339, 27870, - 14339, 27872, - 14339, 27874, - 14339, 27876, - 14339, 27878, - 14339, 27880, - 14339, 27882, - 14339, 27884, - 14339, 27886, - 14339, 27888, - 14339, 27890, - 14339, 27892, - 14339, 27894, - 14339, 27896, - 14339, 27898, - 14339, 27900, - 14339, 27902, - 14339, 27904, - 14339, 27906, - 14339, 27908, - 14339, 27910, - 14339, 27912, - 14339, 27914, - 14339, 27916, - 14339, 27918, - 14339, 27920, - 14339, 27922, - 14339, 27924, - 14339, 27926, - 14339, 27928, - 14339, 27930, - 14339, 27932, - 14339, 27934, - 14339, 27936, - 14339, 27938, - 14339, 27940, - 14339, 27942, - 14339, 27944, - 14339, 27946, - 14339, 27948, - 14339, 27950, - 14339, 27952, - 14339, 27954, - 14339, 27956, - 14339, 27958, - 14339, 27960, - 14339, 27962, - 14339, 27964, - 14339, 27966, - 14339, 27968, - 14339, 27970, - 14339, 27972, - 14339, 27974, - 14339, 27976, - 14339, 27978, - 14339, 27980, - 14339, 27982, - 14339, 27984, - 14339, 27986, - 14339, 27988, - 14339, 27990, - 14339, 27992, - 14339, 27994, - 14339, 27996, - 14339, 27998, - 14339, 28000, - 14339, 28002, - 14339, 28004, - 14339, 28006, - 14339, 28008, - 14339, 28010, - 14339, 28012, - 14339, 28014, - 14339, 28016, - 14339, 28018, - 14339, 28020, - 14339, 28022, - 14339, 28024, - 14339, 28026, - 14339, 28028, - 14339, 28030, - 14339, 28032, - 14339, 28034, - 14339, 28036, - 14419, 14933, 8808, - 14419, 16531, 528, - 14419, 16531, 702, - 14419, 16531, 2764, - 14419, 16531, 5468, - 14419, 16531, 6354, - 14419, 16531, 6534, - 14419, 16531, 7340, - 14419, 16531, 7794, - 14419, 16531, 8364, - 14419, 16531, 9004, - 14419, 16531, 9360, - 14419, 16531, 10238, - 14419, 16531, 10380, - 14419, 16531, 11240, - 14419, 16531, 12500, - 14419, 16531, 12644, - 14419, 16531, 13242, - 14419, 16531, 14514, - 14419, 16531, 15148, - 14419, 16531, 17252, - 14419, 16531, 18084, - 14419, 16531, 18086, - 14419, 16531, 18308, - 14419, 16531, 18684, - 14419, 16531, 20914, - 14419, 16531, 23198, - 14419, 18145, 8808, - 14419, 20587, 18145, 8808, - 14425, 2368, - 14425, 12326, - 14425, 15468, - 14426, - 14430, - 14434, - 14441, 73, 16525, 8808, - 14441, 97, 16525, 8808, - 14441, 10575, 14334, - 14441, 10575, 17534, - 14441, 10575, 19408, - 14441, 10575, 19540, - 14441, 10575, 19586, - 14441, 10575, 20422, - 14441, 10575, 23070, - 14441, 13069, 2760, - 14441, 13069, 3240, - 14441, 13069, 3536, - 14441, 13069, 7036, - 14441, 13069, 7058, - 14441, 13069, 9358, - 14441, 13069, 11824, - 14441, 13069, 13150, - 14441, 13069, 14778, - 14441, 13069, 15116, - 14441, 15407, 10575, 8, - 14441, 15407, 10575, 16, - 14441, 15407, 10575, 28, - 14441, 15407, 10575, 40, - 14441, 15407, 10575, 58, - 14441, 15407, 10575, 72, - 14441, 15407, 10575, 96, - 14441, 15407, 10575, 314, - 14441, 15407, 10575, 706, - 14441, 15407, 10575, 19415, 22, - 14441, 15407, 10575, 19415, 34, - 14441, 15407, 10575, 19415, 406, - 14441, 15407, 10575, 19415, 608, - 14441, 16390, - 14441, 16531, 0, - 14441, 16531, 8, - 14441, 16531, 16, - 14441, 16531, 28, - 14441, 16531, 40, - 14441, 16531, 58, - 14441, 16531, 72, - 14441, 16531, 96, - 14441, 16531, 108, - 14441, 16531, 126, - 14441, 16531, 150, - 14441, 16531, 248, - 14441, 16531, 272, - 14441, 16531, 314, - 14441, 16531, 344, - 14441, 16531, 358, - 14441, 16531, 394, - 14441, 16531, 426, - 14441, 16531, 466, - 14441, 16531, 548, - 14441, 16531, 598, - 14441, 16531, 614, - 14441, 16531, 648, - 14441, 16531, 706, - 14441, 16531, 714, - 14441, 16531, 738, - 14441, 16531, 778, - 14441, 16531, 1000, - 14441, 16531, 1116, - 14441, 16531, 1214, - 14441, 16531, 1236, - 14441, 16531, 1588, - 14441, 16531, 1918, - 14441, 16531, 2036, - 14441, 16531, 2278, - 14441, 16531, 2574, - 14441, 16531, 2624, - 14441, 16531, 2698, - 14441, 16531, 2830, - 14441, 16531, 3074, - 14441, 16531, 3118, - 14441, 16531, 3212, - 14441, 16531, 3286, - 14441, 16531, 3422, - 14441, 16531, 3502, - 14441, 16531, 4002, - 14441, 16531, 6572, - 14441, 16531, 11082, - 14441, 16531, 19415, 22, - 14441, 16531, 19415, 34, - 14441, 16531, 19415, 406, - 14441, 16531, 19415, 608, - 14441, 20055, 2761, 7428, - 14441, 20055, 2761, 16106, - 14441, 20055, 2761, 18950, - 14441, 20055, 2761, 21880, - 14441, 20055, 15117, 20546, - 14441, 20055, 15117, 22924, - 14443, 14911, 16531, 0, - 14443, 14911, 16531, 8, - 14443, 14911, 16531, 16, - 14443, 14911, 16531, 28, - 14443, 14911, 16531, 40, - 14443, 14911, 16531, 70, - 14443, 14911, 16531, 72, - 14443, 14911, 16531, 272, - 14443, 14911, 16531, 358, - 14443, 14911, 16531, 394, - 14443, 14911, 16531, 426, - 14443, 14911, 16531, 466, - 14443, 14911, 16531, 548, - 14443, 14911, 16531, 614, - 14443, 14911, 16531, 648, - 14443, 14911, 16531, 738, - 14443, 14911, 16531, 796, - 14443, 14911, 16531, 880, - 14443, 14911, 16531, 1040, - 14443, 14911, 16531, 1116, - 14443, 14911, 16531, 1236, - 14443, 14911, 16531, 1372, - 14443, 14911, 16531, 1588, - 14443, 14911, 16531, 1828, - 14443, 14911, 16531, 2036, - 14443, 14911, 16531, 2180, - 14443, 14911, 16531, 2754, - 14443, 14911, 16531, 3212, - 14443, 14911, 16531, 3488, - 14443, 14911, 16531, 4042, - 14443, 14911, 16531, 6840, - 14443, 14911, 16531, 6842, - 14443, 14911, 16531, 6844, - 14443, 14911, 16531, 11058, - 14443, 14911, 16531, 13144, - 14443, 14911, 16531, 13146, - 14443, 17835, 16531, 0, - 14443, 17835, 16531, 8, - 14443, 17835, 16531, 16, - 14443, 17835, 16531, 28, - 14443, 17835, 16531, 40, - 14443, 17835, 16531, 70, - 14443, 17835, 16531, 72, - 14443, 17835, 16531, 272, - 14443, 17835, 16531, 358, - 14443, 17835, 16531, 394, - 14443, 17835, 16531, 426, - 14443, 17835, 16531, 466, - 14443, 17835, 16531, 548, - 14443, 17835, 16531, 614, - 14443, 17835, 16531, 648, - 14443, 17835, 16531, 738, - 14443, 17835, 16531, 796, - 14443, 17835, 16531, 880, - 14443, 17835, 16531, 1040, - 14443, 17835, 16531, 1116, - 14443, 17835, 16531, 1236, - 14443, 17835, 16531, 1372, - 14443, 17835, 16531, 1588, - 14443, 17835, 16531, 1828, - 14443, 17835, 16531, 2036, - 14443, 17835, 16531, 2180, - 14443, 17835, 16531, 2754, - 14443, 17835, 16531, 3212, - 14443, 17835, 16531, 3488, - 14443, 17835, 16531, 4042, - 14443, 17835, 16531, 6840, - 14443, 17835, 16531, 6842, - 14443, 17835, 16531, 6844, - 14443, 17835, 16531, 11058, - 14443, 17835, 16531, 13144, - 14443, 17835, 16531, 13146, - 14450, - 14455, 10574, - 14468, - 14470, - 14475, 699, 20842, - 14479, 6996, - 14485, 16954, - 14503, 17298, - 14504, - 14525, 6670, - 14545, 507, 19446, - 14545, 507, 20159, 10574, - 14556, - 14557, 7057, 3536, - 14557, 7057, 7036, - 14557, 7057, 7058, - 14557, 7057, 15116, - 14564, - 14567, 10574, - 14569, 521, 17298, - 14569, 14895, 17298, - 14569, 16811, 17298, - 14569, 17298, - 14570, - 14573, 17087, 17298, - 14580, - 14616, - 14617, 15862, - 14628, - 14632, - 14656, - 14659, 897, 13839, 2761, 16107, 12532, - 14659, 897, 15287, 2761, 16107, 12532, - 14659, 917, 23853, 17810, - 14659, 2301, 22749, 17810, - 14659, 2761, 16107, 12532, - 14659, 2761, 18951, 12532, - 14659, 7031, 10856, - 14659, 7037, 18099, 12532, - 14659, 7429, 897, 8281, 7429, 15453, 15938, - 14659, 7429, 12525, 10690, - 14659, 7429, 12525, 15938, - 14659, 7429, 12532, - 14659, 7429, 13839, 2761, 18951, 12532, - 14659, 7429, 15287, 2761, 18951, 12532, - 14659, 7429, 15453, 18108, - 14659, 7429, 16203, 17076, - 14659, 7429, 16206, - 14659, 7429, 16637, 14782, - 14659, 7429, 17435, 6545, 22494, - 14659, 7429, 19023, 2368, - 14659, 7429, 22495, 8321, 11513, 15117, 10985, 13924, - 14659, 7433, 22031, 20556, - 14659, 9783, 19165, 1290, - 14659, 10850, - 14659, 12375, 15850, - 14659, 12378, - 14659, 12379, 11513, 916, - 14659, 12379, 11513, 21349, 17625, 12414, - 14659, 12379, 16093, 24149, 16614, - 14659, 12379, 17810, - 14659, 12379, 17811, 11513, 1290, - 14659, 12379, 19395, 11513, 17224, - 14659, 12379, 24149, 16614, - 14659, 12415, 11513, 14911, 15938, - 14659, 12415, 11513, 17881, 9904, - 14659, 12525, 20847, 14811, 17810, - 14659, 12525, 22537, 17810, - 14659, 12941, 17810, - 14659, 12941, 17811, 13839, 7658, - 14659, 12941, 17811, 15287, 7658, - 14659, 12941, 17811, 16661, 14532, - 14659, 13270, - 14659, 14457, 7904, - 14659, 14779, 18099, 12532, - 14659, 15109, 15453, 14659, 20501, 13594, - 14659, 15109, 20150, - 14659, 15117, 18099, 12532, - 14659, 15117, 20547, 12532, - 14659, 15117, 20547, 13839, 2761, 18951, 12532, - 14659, 15117, 20547, 15287, 2761, 18951, 12532, - 14659, 15453, 12941, 17810, - 14659, 15453, 15975, 17810, - 14659, 15453, 17225, 17810, - 14659, 15453, 20847, 14811, 17810, - 14659, 15453, 22537, 17810, - 14659, 15453, 23522, - 14659, 15975, 17810, - 14659, 16093, 24149, 17810, - 14659, 16095, 12379, 17810, - 14659, 16095, 12415, 11513, 19019, 7460, - 14659, 16095, 17571, 13246, - 14659, 16095, 21779, 8808, - 14659, 16095, 23522, - 14659, 16761, 16151, 22851, 18932, - 14659, 17007, 20401, 17810, - 14659, 17171, 21779, 8808, - 14659, 17203, 15850, - 14659, 17225, 17810, - 14659, 17225, 17811, 11513, 10985, 323, 3473, 15974, - 14659, 17225, 17811, 11513, 10985, 323, 15827, 15974, - 14659, 17225, 17811, 11513, 14600, - 14659, 17225, 17811, 11513, 16095, 17264, - 14659, 17225, 17811, 11513, 17264, - 14659, 17225, 17811, 11513, 20920, - 14659, 17225, 17811, 13839, 15974, - 14659, 17225, 17811, 15287, 15974, - 14659, 17225, 17811, 21382, - 14659, 17571, 13246, - 14659, 17848, - 14659, 19150, - 14659, 19151, 11513, 2761, 14929, 11472, - 14659, 19151, 11513, 15117, 14929, 15440, - 14659, 19277, 15850, - 14659, 20601, 955, 21178, - 14659, 20659, 41, 17810, - 14659, 20847, 14811, 17810, - 14659, 20858, - 14659, 20859, 12319, 8281, 20858, - 14659, 20933, 965, 11513, 14600, - 14659, 20933, 1037, 8320, - 14659, 20933, 14693, 19058, - 14659, 21527, 8281, 7429, 12525, 15938, - 14659, 21527, 8281, 7429, 15453, 15938, - 14659, 22851, 18932, - 14659, 22983, 2761, 18951, 12532, - 14659, 23522, - 14659, 23523, 13839, 7658, - 14659, 23523, 15287, 7658, - 14659, 23523, 21382, - 14659, 24149, 17810, - 14659, 25959, 17810, - 14671, 6996, - 14675, 93, 10574, - 14675, 15279, 10574, - 14675, 17997, 19077, 10574, - 14675, 18727, 2760, - 14675, 18727, 2761, 18280, - 14675, 18727, 2761, 18281, 20828, - 14675, 18727, 2761, 20828, - 14675, 18727, 2761, 20829, 5, 6, - 14675, 18727, 3240, - 14675, 18727, 3241, 8267, 7056, - 14675, 18727, 3412, - 14675, 18727, 3413, 20828, - 14675, 18727, 3536, - 14675, 18727, 7036, - 14675, 18727, 7037, 18280, - 14675, 18727, 7037, 20828, - 14675, 18727, 7058, - 14675, 18727, 9358, - 14675, 18727, 13150, - 14675, 18727, 13254, - 14675, 18727, 13255, 13139, 7056, - 14675, 18727, 13255, 20828, - 14675, 18727, 14778, - 14675, 18727, 15116, - 14675, 18727, 16110, - 14675, 18727, 17472, - 14675, 18727, 20587, 2761, 18280, - 14675, 19073, 10574, - 14675, 19077, 10574, - 14675, 19105, 10574, - 14675, 19781, 10574, - 14675, 20635, 10574, - 14675, 21099, 10574, - 14675, 21353, 10574, - 14675, 21777, 10574, - 14675, 22857, 10574, - 14677, 17326, - 14677, 18946, - 14687, 10574, - 14689, 20042, - 14697, 12935, 23554, - 14697, 15729, 17298, - 14697, 16531, 4, - 14697, 16531, 6, - 14697, 16531, 8, - 14697, 16531, 12, - 14697, 16531, 20, - 14697, 16531, 28, - 14697, 16531, 32, - 14697, 16531, 42, - 14697, 16531, 44, - 14697, 16531, 46, - 14697, 16531, 48, - 14697, 16531, 50, - 14697, 16531, 63, 0, - 14697, 16531, 504, - 14697, 16531, 520, - 14697, 16531, 522, - 14697, 16531, 531, 28, - 14697, 16531, 622, - 14697, 16531, 788, - 14697, 16531, 1108, - 14697, 16531, 1352, - 14697, 16531, 1394, - 14697, 16531, 1422, - 14697, 16531, 1546, - 14697, 16531, 1572, - 14697, 16531, 1876, - 14697, 16531, 1886, - 14697, 16531, 5460, - 14697, 16531, 6210, - 14697, 16531, 7011, 7015, 231, 10, - 14697, 16531, 7237, 7383, 12, - 14697, 16531, 7823, 333, 1895, 16, - 14697, 16531, 7831, 1402, - 14697, 16531, 8013, 20, - 14697, 16531, 10688, - 14697, 16531, 11265, 703, 40, - 14697, 16531, 12359, 13170, - 14697, 16531, 12391, 0, - 14697, 16531, 12638, - 14697, 16531, 13003, 6529, 6, - 14697, 16531, 13149, 193, 8, - 14697, 16531, 13447, 14, - 14697, 16531, 13611, 18, - 14697, 16531, 13662, - 14697, 16531, 14621, 3033, 10113, 34, - 14697, 16531, 14867, 28061, 36, - 14697, 16531, 15159, 3447, 3549, 38, - 14697, 16531, 15483, 11551, 44, - 14697, 16531, 16223, 15889, 62, - 14697, 16531, 16223, 15889, 192, - 14697, 16531, 16223, 15889, 332, - 14697, 16531, 16223, 15889, 530, - 14697, 16531, 16223, 15889, 5460, - 14697, 16531, 16303, 14, - 14697, 16531, 16370, - 14697, 16531, 16515, 8247, 8347, 22, - 14697, 16531, 16603, 2369, 24, - 14697, 16531, 16703, 2701, 9151, 26, - 14697, 16531, 16814, - 14697, 16531, 16893, 16883, 30, - 14697, 16531, 17195, 36, - 14697, 16531, 17948, - 14697, 16531, 18771, 13195, 28, - 14697, 16531, 19609, 12509, 17779, 2, - 14697, 16531, 19934, - 14697, 16531, 19936, - 14697, 16531, 19938, - 14697, 16531, 20835, 15123, 15114, - 14697, 16531, 23872, - 14697, 16531, 25935, 0, - 14697, 16531, 25936, - 14697, 16531, 26125, 66, - 14697, 16531, 26126, - 14697, 16531, 26171, 28, - 14697, 16531, 26173, 36, - 14697, 16531, 26175, 38, - 14697, 16531, 28059, 28, - 14697, 16531, 28077, 24, - 14697, 16531, 28079, 26, - 14697, 16531, 36197, 24, - 14697, 16531, 36267, 14, - 14697, 16531, 36289, 14, - 14697, 16531, 36309, 2, - 14697, 17171, 23554, - 14697, 19607, 17298, - 14697, 20341, 23554, - 14697, 20899, 17298, - 14699, 10574, - 14754, - 14764, - 14794, - 14804, - 14837, 699, 10850, - 14837, 699, 10851, 11513, 20920, - 14837, 699, 10851, 12319, 14837, 6701, 10850, - 14837, 6063, 12415, 20501, 21349, 10943, 14255, 6832, - 14837, 6701, 10850, - 14837, 6701, 10851, 11513, 18778, - 14837, 8281, 10850, - 14837, 19121, 14255, 12414, - 14837, 22837, 12415, 12319, 21557, 12414, - 14837, 23063, 14931, 12414, - 14844, - 14882, - 14886, - 14887, 897, 22248, - 14888, - 14897, 507, 14542, - 14904, - 14906, - 14911, 203, 6544, - 14911, 3537, 6697, 9787, 2761, 1291, 23554, - 14911, 3673, 11513, 20920, - 14911, 6093, 17988, - 14911, 7073, 10696, - 14911, 8281, 12941, 17810, - 14911, 8281, 20847, 14811, 17810, - 14911, 8281, 23522, - 14911, 9905, 10574, - 14911, 12916, - 14911, 12922, - 14911, 14659, 12941, 17810, - 14911, 14659, 20847, 14811, 17810, - 14911, 14659, 23522, - 14911, 14675, 18727, 2760, - 14911, 14675, 18727, 2761, 18280, - 14911, 14675, 18727, 2761, 20828, - 14911, 14675, 18727, 3240, - 14911, 14675, 18727, 3412, - 14911, 14675, 18727, 3536, - 14911, 14675, 18727, 7036, - 14911, 14675, 18727, 7037, 18280, - 14911, 14675, 18727, 7058, - 14911, 14675, 18727, 9358, - 14911, 14675, 18727, 13150, - 14911, 14675, 18727, 13254, - 14911, 14675, 18727, 14778, - 14911, 14675, 18727, 15116, - 14911, 14675, 18727, 16110, - 14911, 14675, 18727, 17472, - 14911, 15140, - 14911, 16067, 10574, - 14911, 16121, 10574, - 14911, 16787, 10574, - 14911, 16821, 17988, - 14911, 18107, 506, - 14911, 18107, 507, 11513, 18778, - 14911, 18107, 507, 11513, 20933, 965, 95, 1393, 507, 22495, 17264, - 14911, 18841, 10574, - 14911, 18999, 19140, - 14911, 19518, - 14911, 19574, - 14911, 19727, 93, 16642, - 14911, 19727, 11513, 18778, - 14911, 19727, 11513, 20933, 965, 95, 1393, 507, 22495, 17264, - 14911, 20549, 8808, - 14911, 21006, - 14911, 21559, 10574, - 14911, 21844, - 14911, 22225, 94, - 14911, 23213, 8808, - 14911, 23259, 12922, - 14911, 23721, 19518, - 14911, 23853, 10574, - 14911, 23868, - 14913, 18932, - 14916, - 14918, - 14920, - 14924, - 14927, 14603, 17225, 20412, - 14927, 14603, 17225, 20413, 323, 12525, 17224, - 14929, 21789, 21150, - 14931, 6833, 12414, - 14931, 6833, 12415, 661, 15974, - 14931, 6833, 12415, 897, 14931, 11489, 12414, - 14931, 6833, 12415, 7065, 964, - 14931, 6833, 12415, 11513, 7658, - 14931, 6833, 12415, 19743, 14255, 6833, 12414, - 14931, 6833, 12525, 12414, - 14931, 6833, 15453, 12414, - 14931, 6833, 16095, 12414, - 14931, 6833, 20501, 1044, - 14931, 6833, 20501, 8276, - 14931, 6833, 20501, 11391, 8276, - 14931, 6833, 22841, 12414, - 14931, 6833, 28089, 12414, - 14931, 6833, 28089, 12415, 661, 964, - 14931, 11489, 12414, - 14931, 11489, 12415, 897, 14255, 11489, 12414, - 14931, 11489, 12415, 7065, 964, - 14931, 11489, 12415, 11513, 7658, - 14931, 11489, 12525, 12414, - 14931, 11489, 15453, 12414, - 14931, 11489, 16095, 12414, - 14931, 11489, 20501, 1044, - 14931, 11489, 20501, 8276, - 14931, 11489, 20501, 11391, 8276, - 14931, 11489, 22841, 12414, - 14931, 11489, 28089, 12414, - 14931, 11489, 28089, 12415, 661, 964, - 14932, - 14947, 507, 17376, - 14948, - 14951, 12525, 22837, 12414, - 14952, - 14963, 507, 16334, - 14963, 507, 23034, - 14973, 22544, - 14975, 16168, - 14975, 16169, 11513, 5527, 17006, - 14975, 16169, 11513, 13102, - 14975, 16169, 18503, 8280, - 14975, 16169, 18503, 14658, - 14981, 12656, - 14992, - 15006, - 15013, 21007, 20412, - 15023, 6544, - 15026, - 15045, 17353, 16851, 897, 5978, - 15047, 10575, 14334, - 15047, 10575, 17534, - 15047, 10575, 19408, - 15047, 10575, 19540, - 15047, 13069, 2760, - 15047, 13069, 3240, - 15047, 13069, 3536, - 15047, 13069, 7036, - 15047, 13069, 7058, - 15047, 13069, 9358, - 15047, 13069, 11824, - 15047, 13069, 13150, - 15047, 13069, 14778, - 15047, 13069, 15116, - 15047, 15407, 10575, 8, - 15047, 15407, 10575, 16, - 15047, 15407, 10575, 28, - 15047, 15407, 10575, 40, - 15047, 15407, 10575, 58, - 15047, 15407, 10575, 72, - 15047, 15407, 10575, 96, - 15047, 15407, 10575, 314, - 15047, 15407, 10575, 706, - 15047, 16531, 0, - 15047, 16531, 8, - 15047, 16531, 16, - 15047, 16531, 28, - 15047, 16531, 40, - 15047, 16531, 58, - 15047, 16531, 72, - 15047, 16531, 96, - 15047, 16531, 108, - 15047, 16531, 126, - 15047, 16531, 150, - 15047, 16531, 248, - 15047, 16531, 272, - 15047, 16531, 314, - 15047, 16531, 344, - 15047, 16531, 358, - 15047, 16531, 394, - 15047, 16531, 426, - 15047, 16531, 466, - 15047, 16531, 548, - 15047, 16531, 598, - 15047, 16531, 614, - 15047, 16531, 648, - 15047, 16531, 706, - 15047, 16531, 714, - 15047, 16531, 778, - 15047, 16531, 1000, - 15047, 16531, 1116, - 15047, 16531, 1214, - 15047, 16531, 1236, - 15047, 16531, 1588, - 15047, 16531, 1918, - 15047, 16531, 2036, - 15047, 16531, 2574, - 15047, 16531, 2624, - 15047, 16531, 2698, - 15047, 16531, 2830, - 15047, 16531, 3118, - 15047, 16531, 3212, - 15047, 16531, 3422, - 15047, 16531, 3502, - 15047, 16531, 6572, - 15047, 16531, 11082, - 15047, 16531, 17709, 2036, - 15047, 23737, 10574, - 15049, 8809, 2760, - 15049, 8809, 7036, - 15053, 93, 12319, 10574, - 15053, 97, 16525, 8808, - 15053, 323, 22781, 10574, - 15053, 518, - 15053, 897, 2739, 10574, - 15053, 1213, 10574, - 15053, 1295, 23107, 10574, - 15053, 3769, 23107, 10574, - 15053, 8259, 10574, - 15053, 10387, 2795, 10574, - 15053, 10575, 2560, - 15053, 10575, 2862, - 15053, 10575, 11366, - 15053, 10575, 13642, - 15053, 10575, 13742, - 15053, 10575, 14476, - 15053, 10575, 15904, - 15053, 10575, 16484, - 15053, 10575, 16848, - 15053, 10575, 17534, - 15053, 10575, 19386, - 15053, 10575, 19408, - 15053, 10575, 19540, - 15053, 10575, 20464, - 15053, 10575, 20926, - 15053, 10575, 20982, - 15053, 10575, 21612, - 15053, 10575, 21616, - 15053, 10575, 23008, - 15053, 10575, 23350, - 15053, 11673, 10574, - 15053, 13049, 10574, - 15053, 13069, 2760, - 15053, 13069, 3240, - 15053, 13069, 3536, - 15053, 13069, 7036, - 15053, 13069, 7058, - 15053, 13069, 9358, - 15053, 13069, 11824, - 15053, 13069, 13150, - 15053, 13069, 14778, - 15053, 13069, 15116, - 15053, 14019, 10574, - 15053, 14699, 10574, - 15053, 14939, 10574, - 15053, 15187, 10574, - 15053, 15407, 10575, 8, - 15053, 15407, 10575, 16, - 15053, 15407, 10575, 28, - 15053, 15407, 10575, 40, - 15053, 15407, 10575, 58, - 15053, 15407, 10575, 72, - 15053, 15407, 10575, 96, - 15053, 15407, 10575, 186, - 15053, 15407, 10575, 314, - 15053, 15407, 10575, 522, - 15053, 15407, 10575, 706, - 15053, 15985, 10574, - 15053, 16531, 0, - 15053, 16531, 8, - 15053, 16531, 16, - 15053, 16531, 28, - 15053, 16531, 40, - 15053, 16531, 58, - 15053, 16531, 72, - 15053, 16531, 96, - 15053, 16531, 126, - 15053, 16531, 186, - 15053, 16531, 272, - 15053, 16531, 314, - 15053, 16531, 344, - 15053, 16531, 358, - 15053, 16531, 394, - 15053, 16531, 426, - 15053, 16531, 466, - 15053, 16531, 522, - 15053, 16531, 548, - 15053, 16531, 598, - 15053, 16531, 614, - 15053, 16531, 648, - 15053, 16531, 706, - 15053, 16531, 714, - 15053, 16531, 778, - 15053, 16531, 2278, - 15053, 16531, 2574, - 15053, 16531, 2624, - 15053, 16531, 2698, - 15053, 16531, 3118, - 15053, 16531, 3212, - 15053, 16531, 3286, - 15053, 16531, 3502, - 15053, 16531, 8342, - 15053, 16531, 9422, - 15053, 16787, 2761, 18280, - 15053, 16787, 2761, 20828, - 15053, 16787, 3412, - 15053, 16787, 10574, - 15053, 17939, 10574, - 15053, 20055, 2761, 13252, - 15053, 20055, 2761, 15082, - 15053, 20055, 2761, 16106, - 15053, 20055, 2761, 16304, - 15053, 20055, 2761, 16306, - 15053, 20055, 2761, 18950, - 15053, 20055, 2761, 20048, - 15053, 20055, 2761, 21358, - 15053, 20055, 2761, 22082, - 15053, 20055, 2761, 23658, - 15053, 20055, 2761, 23660, - 15053, 20055, 2761, 24134, - 15053, 20055, 2761, 25952, - 15053, 20055, 2761, 36358, - 15053, 20055, 2761, 36362, - 15053, 20055, 15117, 20546, - 15053, 20055, 15117, 22406, - 15053, 20055, 15117, 22924, - 15053, 20055, 15117, 22994, - 15053, 20055, 15117, 25938, - 15053, 20055, 23197, 16151, 13704, - 15053, 20713, 7065, 10574, - 15053, 23555, 1393, 507, 10920, - 15053, 23703, 15985, 10574, - 15053, 23703, 16787, 10574, - 15065, 6048, - 15079, 10574, - 15095, 6687, 2643, 13204, - 15095, 16130, - 15109, 14545, 13944, - 15113, 17066, - 15117, 1291, 23554, - 15117, 10101, 8280, - 15117, 10101, 12318, - 15117, 10101, 12502, - 15117, 10101, 14658, - 15117, 13817, 22247, 8280, - 15117, 13817, 22247, 14658, - 15117, 15863, 14028, - 15117, 17203, 17820, - 15117, 18889, 12525, 10690, - 15117, 21557, 15738, - 15117, 21633, 21132, - 15117, 22837, 15738, - 15117, 23091, 16121, 14870, - 15117, 23129, 12378, - 15134, - 15135, 6996, - 15137, 22985, 21886, - 15140, - 15141, 11513, 1291, 12318, - 15141, 11513, 1291, 12502, - 15141, 11513, 10151, 12318, - 15141, 20406, - 15141, 20407, 11513, 1291, 12318, - 15141, 20407, 11513, 17037, 6696, - 15141, 20407, 12319, 21557, 12414, - 15141, 20407, 12319, 22837, 12414, - 15145, 12708, - 15147, 11513, 8281, 7429, 12524, - 15147, 11513, 14659, 7429, 12524, - 15153, 6996, - 15171, 15190, - 15180, - 15187, 17050, - 15197, 8809, 10574, - 15198, - 15206, - 15244, - 15282, - 15283, 11513, 14005, 10574, - 15283, 11513, 18529, 528, - 15283, 11513, 18778, - 15283, 12319, 965, 12319, 23882, - 15283, 12319, 23882, - 15283, 15805, 897, 16401, 11513, 15282, - 15287, 897, 8281, 897, 13839, 22983, 15117, 20547, 12532, - 15287, 897, 13839, 2761, 16107, 12532, - 15287, 897, 13839, 22983, 7429, 12532, - 15287, 897, 14659, 897, 13839, 22983, 15117, 20547, 12532, - 15287, 2761, 16107, 12532, - 15287, 2761, 18951, 12532, - 15287, 7037, 18099, 12532, - 15287, 7429, 8281, 2761, 18951, 12532, - 15287, 7429, 12532, - 15287, 7429, 12533, 897, 13839, 7429, 18307, 16637, 14782, - 15287, 7429, 13473, 15453, 17224, - 15287, 7429, 14659, 2761, 18951, 12532, - 15287, 7429, 15938, - 15287, 7429, 16637, 14782, - 15287, 7429, 18307, 15453, 15938, - 15287, 7429, 18307, 16637, 14783, 897, 13839, 7429, 12532, - 15287, 7429, 20933, 8321, 11513, 15117, 10985, 13924, - 15287, 8281, 529, 13839, 14659, 12941, 17811, 19056, - 15287, 8281, 661, 13839, 14659, 7022, - 15287, 8281, 2761, 21881, 12532, - 15287, 8281, 12533, 19791, 13839, 8281, 661, 13839, 16661, 14658, - 15287, 8281, 12533, 19791, 13839, 8281, 661, 15287, 15900, - 15287, 8281, 12533, 19791, 13839, 8281, 661, 15287, 16661, 14658, - 15287, 8281, 12533, 19791, 13839, 15901, 661, 13839, 16661, 14658, - 15287, 8281, 12533, 19791, 13839, 15901, 661, 15287, 14658, - 15287, 8281, 12533, 19791, 13839, 15901, 661, 15287, 16661, 14658, - 15287, 8281, 12533, 19791, 13839, 16661, 8281, 661, 15287, 14658, - 15287, 8281, 12533, 19791, 13839, 16661, 8281, 661, 15287, 15900, - 15287, 8281, 12533, 19791, 13839, 16661, 8281, 661, 15287, 16661, 14658, - 15287, 8281, 12533, 19791, 15287, 16661, 8281, 661, 15287, 14658, - 15287, 8281, 12533, 19791, 15287, 16661, 8281, 661, 15287, 15900, - 15287, 8281, 15975, 11513, 1290, - 15287, 8281, 18951, 15938, - 15287, 8281, 19357, 15938, - 15287, 8281, 20543, 6997, 11513, 9783, 6882, - 15287, 8281, 20543, 6997, 11513, 15949, 6882, - 15287, 8281, 20543, 12667, 8108, - 15287, 8281, 20543, 12667, 9836, - 15287, 8281, 20543, 12667, 10180, - 15287, 8281, 20543, 12667, 14596, - 15287, 8281, 20543, 12667, 15816, - 15287, 8281, 20543, 12667, 16470, - 15287, 8281, 20543, 19697, 916, - 15287, 8281, 20543, 20711, 16470, - 15287, 8281, 20543, 22964, - 15287, 8281, 20543, 25816, - 15287, 8281, 20858, - 15287, 8281, 22983, 16637, 14782, - 15287, 12527, 20622, - 15287, 14659, 529, 13839, 8281, 12941, 17811, 19056, - 15287, 14659, 661, 13839, 8281, 7022, - 15287, 14659, 2761, 21881, 12532, - 15287, 14659, 12533, 19791, 13839, 16661, 8281, 661, 13839, 14658, - 15287, 14659, 12533, 19791, 13839, 16661, 8281, 661, 13839, 15900, - 15287, 14659, 12533, 19791, 15287, 8281, 661, 13839, 15900, - 15287, 14659, 12533, 19791, 15287, 8281, 661, 13839, 16661, 14658, - 15287, 14659, 12533, 19791, 15287, 8281, 661, 15287, 16661, 14658, - 15287, 14659, 12533, 19791, 15287, 15901, 661, 13839, 14658, - 15287, 14659, 12533, 19791, 15287, 15901, 661, 13839, 16661, 14658, - 15287, 14659, 12533, 19791, 15287, 15901, 661, 15287, 16661, 14658, - 15287, 14659, 12533, 19791, 15287, 16661, 8281, 661, 13839, 14658, - 15287, 14659, 12533, 19791, 15287, 16661, 8281, 661, 13839, 15900, - 15287, 14659, 12533, 19791, 15287, 16661, 8281, 661, 13839, 16661, 14658, - 15287, 14659, 16876, - 15287, 14659, 18951, 15938, - 15287, 14659, 19357, 15938, - 15287, 14659, 20543, 6997, 11513, 9783, 6882, - 15287, 14659, 20543, 6997, 11513, 15949, 6882, - 15287, 14659, 20543, 12667, 8108, - 15287, 14659, 20543, 12667, 9836, - 15287, 14659, 20543, 12667, 10180, - 15287, 14659, 20543, 12667, 14596, - 15287, 14659, 20543, 12667, 15816, - 15287, 14659, 20543, 12667, 16470, - 15287, 14659, 20543, 19697, 916, - 15287, 14659, 20543, 20711, 16470, - 15287, 14659, 20543, 22964, - 15287, 14659, 20543, 25816, - 15287, 14659, 20641, 15453, 15938, - 15287, 14659, 20641, 15453, 17224, - 15287, 14659, 20858, - 15287, 14659, 22983, 16637, 14782, - 15287, 14659, 25765, 15453, 17224, - 15287, 14779, 18099, 12532, - 15287, 15117, 18099, 12532, - 15287, 15117, 20547, 8281, 2761, 18951, 12532, - 15287, 15117, 20547, 12532, - 15287, 15117, 20547, 14659, 2761, 18951, 12532, - 15287, 15901, 2761, 18951, 12532, - 15287, 15901, 8281, 2761, 21881, 12532, - 15287, 15901, 8281, 19357, 15938, - 15287, 15901, 14659, 2761, 21881, 12532, - 15287, 15901, 14659, 19357, 15938, - 15287, 16661, 8281, 2761, 21881, 12532, - 15287, 16661, 8281, 19357, 15938, - 15287, 16661, 14659, 2761, 21881, 12532, - 15287, 16661, 14659, 19357, 15938, - 15287, 16661, 15901, 8281, 2761, 21881, 12532, - 15287, 16661, 15901, 14659, 2761, 21881, 12532, - 15287, 22983, 2761, 18951, 12532, - 15387, 10575, 8351, 19540, - 15387, 10575, 16095, 19541, 23748, - 15387, 10575, 17047, 8351, 19540, - 15387, 10575, 17388, - 15387, 10575, 19015, 23752, - 15387, 10575, 19409, 17496, - 15387, 10575, 19409, 17497, 11513, 10856, - 15387, 10575, 19409, 19224, - 15387, 10575, 19409, 19538, - 15387, 10575, 19409, 19539, 11513, 10856, - 15387, 10575, 19541, 20911, 14042, - 15387, 10575, 19541, 23726, - 15387, 10575, 19541, 23727, 11513, 10856, - 15387, 10575, 19541, 23748, - 15387, 10575, 19541, 23768, - 15387, 10575, 19580, - 15387, 10575, 20117, 8351, 19540, - 15387, 10575, 20587, 19409, 17496, - 15387, 10575, 20587, 19409, 19538, - 15387, 10575, 21642, - 15387, 10575, 23029, 18623, 19224, - 15387, 10575, 23288, - 15387, 10575, 23722, - 15387, 10575, 23752, - 15387, 11033, 1291, 12502, - 15387, 11033, 3537, 6697, 12502, - 15387, 11033, 10151, 12318, - 15387, 11033, 14792, - 15387, 11033, 15117, 6697, 12502, - 15387, 11033, 15877, 12318, - 15387, 11033, 15877, 12502, - 15387, 11033, 16095, 10151, 12318, - 15387, 11033, 16095, 19224, - 15387, 11033, 17435, 19224, - 15387, 11033, 18343, 19538, - 15387, 11033, 18916, - 15387, 11033, 20186, - 15387, 11033, 20591, 20189, 23273, 19224, - 15387, 11033, 23029, 18343, 23273, 19224, - 15387, 11033, 23029, 18343, 23273, 19225, 21836, - 15387, 11033, 23029, 22151, 23273, 19224, - 15387, 11033, 23029, 23273, 19224, - 15387, 11033, 23761, 23273, 19224, - 15392, - 15397, 7204, - 15397, 15866, - 15400, - 15434, - 15437, 9910, - 15437, 11472, - 15437, 15950, - 15437, 17822, - 15443, 1091, 6996, - 15443, 6996, - 15446, - 15450, - 15451, 507, 16042, - 15453, 699, 20501, 13594, - 15453, 699, 20501, 19589, 13594, - 15453, 2592, - 15453, 3310, - 15453, 3311, 11513, 10100, - 15453, 3311, 11513, 14911, 12714, - 15453, 3311, 15801, 12714, - 15453, 3311, 15801, 12715, 11513, 10092, - 15453, 6345, 10726, - 15453, 6701, 20501, 8281, 7433, 13594, - 15453, 6701, 20501, 13594, - 15453, 6701, 20501, 19589, 13594, - 15453, 7038, - 15453, 7039, 11513, 22495, 16661, 12525, 17262, - 15453, 7059, 18889, 6380, - 15453, 7059, 18889, 10690, - 15453, 7437, 14811, 16197, 6672, - 15453, 8281, 8261, 13960, - 15453, 8281, 20501, 13594, - 15453, 8281, 20501, 19589, 13594, - 15453, 8981, 17102, - 15453, 10690, - 15453, 11371, 14911, 17224, - 15453, 12415, 14785, 15459, 2760, - 15453, 12415, 14785, 15459, 3537, 17370, - 15453, 12667, 8108, - 15453, 12667, 8109, 19015, 3537, 18281, 19071, 17974, - 15453, 12667, 8109, 19015, 16745, 17974, - 15453, 12667, 9836, - 15453, 12667, 9837, 19015, 3537, 18281, 19071, 17974, - 15453, 12667, 9837, 19015, 16745, 17974, - 15453, 12667, 10180, - 15453, 12667, 10181, 19015, 3537, 18281, 19071, 17974, - 15453, 12667, 10181, 19015, 16745, 17974, - 15453, 12667, 14596, - 15453, 12667, 14597, 19015, 3537, 18281, 19071, 17974, - 15453, 12667, 14597, 19015, 16745, 17974, - 15453, 12667, 15816, - 15453, 12667, 15817, 19015, 3537, 18281, 19071, 17974, - 15453, 12667, 15817, 19015, 16745, 17974, - 15453, 12667, 16470, - 15453, 12667, 16471, 19015, 2761, 18281, 23695, 17974, - 15453, 12667, 16471, 19015, 3537, 18281, 19071, 17974, - 15453, 12667, 16471, 19015, 3537, 18281, 23711, 17974, - 15453, 12667, 16471, 19015, 15117, 18281, 18149, 17974, - 15453, 12667, 16471, 19015, 16745, 17974, - 15453, 12667, 16471, 19015, 22459, 17974, - 15453, 12667, 17465, 8108, - 15453, 12667, 17465, 9836, - 15453, 12667, 17465, 10180, - 15453, 12667, 17465, 14596, - 15453, 12667, 17465, 15816, - 15453, 12667, 17465, 16470, - 15453, 12667, 22432, - 15453, 12667, 22433, 19015, 16745, 17974, - 15453, 12667, 23296, - 15453, 12667, 23898, - 15453, 12667, 25808, - 15453, 12935, 8808, - 15453, 13470, - 15453, 13471, 10726, - 15453, 13473, 12659, 8808, - 15453, 13473, 19033, 11513, 19019, 17916, - 15453, 13779, 17224, - 15453, 13783, 12934, - 15453, 13839, 8281, 18890, - 15453, 13839, 14659, 18890, - 15453, 14659, 20501, 13594, - 15453, 14659, 20501, 19589, 13594, - 15453, 14831, 14532, - 15453, 14911, 10690, - 15453, 14911, 17224, - 15453, 14911, 18534, - 15453, 14935, 10726, - 15453, 15858, - 15453, 15938, - 15453, 15939, 11513, 1291, 14658, - 15453, 15939, 11513, 3537, 6696, - 15453, 15939, 11513, 6701, 12414, - 15453, 15939, 11513, 13839, 8281, 20542, - 15453, 15939, 11513, 13839, 14659, 20542, - 15453, 15939, 11513, 15287, 8281, 20542, - 15453, 15939, 11513, 15287, 14659, 20542, - 15453, 15939, 22239, 12525, 14911, 15938, - 15453, 16200, - 15453, 16637, 10690, - 15453, 16637, 14911, 17224, - 15453, 16637, 17224, - 15453, 16637, 17988, - 15453, 16637, 18534, - 15453, 17109, 1290, - 15453, 17224, - 15453, 17225, 11513, 13839, 8281, 20542, - 15453, 17225, 11513, 13839, 14659, 20542, - 15453, 17225, 11513, 15287, 8281, 20542, - 15453, 17225, 11513, 15287, 14659, 20542, - 15453, 17225, 11513, 15901, 20933, 8320, - 15453, 17225, 11513, 19019, 17916, - 15453, 17225, 11513, 20933, 21063, 8320, - 15453, 17225, 11513, 21557, 10984, - 15453, 17225, 11513, 22837, 10984, - 15453, 17225, 15862, - 15453, 17225, 22239, 12525, 11371, 14911, 17224, - 15453, 17225, 22239, 12525, 14911, 17224, - 15453, 17225, 22239, 12525, 16637, 17224, - 15453, 17988, - 15453, 17989, 323, 17224, - 15453, 17989, 10726, - 15453, 17989, 11513, 17853, 1290, - 15453, 17989, 22239, 12525, 11371, 14911, 17988, - 15453, 17989, 22239, 12525, 14911, 17988, - 15453, 17989, 22239, 12525, 16637, 17988, - 15453, 18266, - 15453, 18535, 22239, 12525, 14911, 18534, - 15453, 18836, - 15453, 19129, 6996, - 15453, 19361, 8281, 3755, 19308, - 15453, 19949, 2368, - 15453, 19949, 8108, - 15453, 20038, - 15453, 20063, 6996, - 15453, 20472, - 15453, 20549, 8809, 20412, - 15453, 20622, - 15453, 20859, 22239, 14911, 15453, 20858, - 15453, 20933, 964, - 15453, 20933, 18108, - 15453, 20933, 21790, - 15453, 20933, 21791, 11513, 22495, 964, - 15453, 21478, - 15453, 21790, - 15453, 22030, - 15453, 22049, 22030, - 15453, 22052, - 15453, 22495, 18108, - 15453, 23213, 8809, 20412, - 15453, 23721, 14911, 20858, - 15453, 23721, 17866, - 15453, 23721, 20858, - 15453, 23721, 20859, 11513, 1290, - 15453, 25749, 17988, - 15453, 25749, 17989, 11513, 21557, 10984, - 15453, 25749, 17989, 11513, 22837, 10984, - 15453, 25763, 14911, 20858, - 15453, 25763, 20858, - 15453, 25813, 14911, 20858, - 15453, 25813, 18890, - 15453, 25813, 20858, - 15453, 25880, - 15453, 26163, 14911, 20858, - 15453, 26163, 18890, - 15453, 26163, 20472, - 15453, 26163, 20858, - 15467, 20196, - 15468, - 15469, 11513, 12585, 6828, - 15473, 2372, - 15484, - 15540, - 15609, 6996, - 15676, - 15683, 1295, 18601, 13261, 19212, - 15683, 11537, 21851, 1290, - 15683, 11537, 21851, 8320, - 15683, 12659, 8808, - 15683, 16559, 18601, 13261, 19212, - 15683, 16787, 2760, - 15683, 16787, 2761, 18280, - 15683, 16787, 2761, 20828, - 15683, 16787, 3240, - 15683, 16787, 3241, 18280, - 15683, 16787, 3241, 20828, - 15683, 16787, 3412, - 15683, 16787, 3413, 20828, - 15683, 16787, 3536, - 15683, 16787, 3537, 18280, - 15683, 16787, 3537, 20828, - 15683, 16787, 7036, - 15683, 16787, 7037, 18280, - 15683, 16787, 7037, 20828, - 15683, 16787, 7058, - 15683, 16787, 7059, 18280, - 15683, 16787, 7059, 20828, - 15683, 16787, 9358, - 15683, 16787, 9359, 18280, - 15683, 16787, 9359, 20828, - 15683, 16787, 13150, - 15683, 16787, 13151, 18280, - 15683, 16787, 13151, 20828, - 15683, 16787, 13254, - 15683, 16787, 13255, 20828, - 15683, 16787, 13284, - 15683, 16787, 13285, 20828, - 15683, 16787, 14778, - 15683, 16787, 14779, 18280, - 15683, 16787, 14779, 20828, - 15683, 16787, 14876, - 15683, 16787, 14877, 20828, - 15683, 16787, 15116, - 15683, 16787, 15117, 18280, - 15683, 16787, 15117, 20828, - 15683, 16787, 16108, - 15683, 16787, 16109, 20828, - 15683, 16787, 16744, - 15683, 16787, 16745, 20828, - 15683, 16787, 17372, - 15683, 16787, 17373, 20828, - 15683, 16787, 17474, - 15683, 16787, 17475, 20828, - 15683, 16787, 19070, - 15683, 16787, 19071, 20828, - 15683, 17569, 5993, 11258, - 15683, 17569, 13261, 19212, - 15683, 17569, 15109, 19212, - 15683, 17569, 16219, 19212, - 15683, 17569, 17095, 19212, - 15683, 18601, 15109, 19212, - 15683, 18601, 17095, 19212, - 15685, 19310, - 15703, 13177, 529, 13177, 660, - 15703, 13177, 660, - 15703, 13177, 661, 11513, 22223, 15678, - 15708, - 15725, 1393, 507, 5552, - 15725, 1393, 507, 10921, 8808, - 15725, 3054, - 15725, 6549, 21850, - 15725, 7037, 18889, 10690, - 15725, 7073, 10696, - 15725, 7429, 13897, 9787, 13896, - 15725, 8281, 21023, 12318, - 15725, 8281, 21023, 12502, - 15725, 8809, 9439, 16264, - 15725, 8809, 20659, 9439, 16264, - 15725, 9783, 19760, - 15725, 9783, 20006, - 15725, 9783, 20190, - 15725, 10575, 10085, 17675, 5506, - 15725, 10575, 14008, - 15725, 10575, 14722, - 15725, 10575, 14744, - 15725, 10575, 15695, 19570, - 15725, 10575, 17062, - 15725, 10575, 17169, 21006, - 15725, 10575, 17169, 24049, 2408, - 15725, 10575, 22024, - 15725, 10575, 23571, 15694, - 15725, 10575, 23597, 15695, 22122, - 15725, 10857, 20056, - 15725, 11033, 2761, 1291, 12318, - 15725, 11033, 2761, 1291, 12502, - 15725, 11033, 3537, 6697, 12318, - 15725, 11033, 3537, 6697, 12502, - 15725, 11033, 8357, 12318, - 15725, 11033, 8357, 12502, - 15725, 11475, 13457, 12502, - 15725, 12922, - 15725, 12941, 13014, - 15725, 12941, 13240, - 15725, 12941, 13660, - 15725, 12941, 19760, - 15725, 12941, 20006, - 15725, 12941, 20190, - 15725, 13014, - 15725, 13015, 11513, 1290, - 15725, 13015, 16635, 7056, - 15725, 13015, 20171, 7056, - 15725, 13161, 15901, 2301, 10696, - 15725, 13161, 15901, 7521, 10696, - 15725, 13240, - 15725, 13241, 11513, 1291, 12318, - 15725, 13241, 11513, 3537, 6696, - 15725, 13241, 11513, 10150, - 15725, 13241, 16635, 7056, - 15725, 13241, 20171, 7056, - 15725, 13457, 12318, - 15725, 13457, 12502, - 15725, 13660, - 15725, 13661, 11513, 1291, 12502, - 15725, 13661, 16635, 7056, - 15725, 13661, 20171, 7056, - 15725, 13779, 14677, 1291, 12318, - 15725, 13779, 14677, 1291, 12502, - 15725, 13779, 14677, 1291, 16383, 15939, 12502, - 15725, 13779, 15939, 12502, - 15725, 13897, 17550, - 15725, 14520, - 15725, 14545, 507, 17056, - 15725, 14567, 8809, 12318, - 15725, 14659, 21023, 12318, - 15725, 14659, 21023, 12319, 11513, 1290, - 15725, 14659, 21023, 12502, - 15725, 14911, 2301, 3750, - 15725, 14911, 2301, 8850, - 15725, 14911, 2301, 9439, 11513, 13660, - 15725, 14911, 2301, 10418, - 15725, 14911, 2301, 11537, 9970, - 15725, 14911, 2301, 11537, 13896, - 15725, 14911, 2301, 11537, 14730, - 15725, 14911, 2301, 11537, 16366, - 15725, 14911, 2301, 11537, 18312, - 15725, 14911, 2301, 11537, 19254, - 15725, 14911, 3750, - 15725, 14911, 3918, - 15725, 14911, 7521, 880, - 15725, 14911, 7521, 2203, 5482, - 15725, 14911, 7521, 2926, - 15725, 14911, 7521, 3174, - 15725, 14911, 7521, 3372, - 15725, 14911, 7521, 3750, - 15725, 14911, 7521, 3918, - 15725, 14911, 7521, 3919, 15789, 11513, 3537, 6697, 12502, - 15725, 14911, 7521, 4020, - 15725, 14911, 7521, 7848, - 15725, 14911, 7521, 8851, 18303, 7056, - 15725, 14911, 7521, 8851, 20171, 7056, - 15725, 14911, 7521, 9438, - 15725, 14911, 7521, 9439, 11513, 13660, - 15725, 14911, 7521, 10418, - 15725, 14911, 7521, 10575, 14722, - 15725, 14911, 7521, 11537, 2954, - 15725, 14911, 7521, 11537, 3178, - 15725, 14911, 7521, 11537, 14730, - 15725, 14911, 7521, 11537, 15430, - 15725, 14911, 7521, 11537, 15692, - 15725, 14911, 7521, 11537, 15722, - 15725, 14911, 7521, 11537, 17680, - 15725, 14911, 7521, 11537, 19568, - 15725, 14911, 7521, 11537, 23758, - 15725, 14911, 7521, 11812, - 15725, 14911, 7521, 13239, 3918, - 15725, 14911, 7521, 13896, - 15725, 14911, 7521, 15117, 6696, - 15725, 14911, 7521, 18019, 7461, 507, 8054, - 15725, 14911, 7521, 19019, 11824, - 15725, 14911, 7521, 19377, 23573, 11824, - 15725, 14911, 7521, 20045, 16614, - 15725, 14911, 7521, 20241, 2927, 11513, 2203, 11513, 5483, 18558, - 15725, 14911, 7521, 20241, 3175, 11513, 2203, 11513, 5483, 18558, - 15725, 14911, 7521, 20241, 5483, 11513, 2203, 11513, 3918, - 15725, 14911, 7521, 20241, 5483, 11513, 3919, 15788, - 15725, 14911, 13014, - 15725, 14911, 13239, 3918, - 15725, 14911, 13240, - 15725, 14911, 13660, - 15725, 14971, 507, 3133, 201, 7524, - 15725, 15000, - 15725, 15001, 12502, - 15725, 15001, 16635, 7056, - 15725, 15001, 20171, 7056, - 15725, 15407, 10575, 1291, 12502, - 15725, 15407, 10575, 14911, 43, 12318, - 15725, 15407, 10575, 20163, 14911, 43, 12318, - 15725, 16095, 14659, 21023, 12318, - 15725, 16095, 14659, 21023, 12319, 11513, 1290, - 15725, 16531, 8, - 15725, 16531, 9, 13259, 7056, - 15725, 16531, 9, 16635, 7056, - 15725, 16531, 9, 18303, 7056, - 15725, 16531, 9, 20171, 7056, - 15725, 16531, 40, - 15725, 16531, 41, 11513, 13457, 12318, - 15725, 16531, 41, 11513, 13457, 12319, 20171, 7056, - 15725, 16531, 41, 13259, 7056, - 15725, 16531, 41, 20171, 7056, - 15725, 16531, 66, - 15725, 16531, 474, - 15725, 16531, 475, 13259, 7056, - 15725, 16531, 475, 16635, 7056, - 15725, 16531, 475, 18303, 7056, - 15725, 16531, 475, 20171, 7056, - 15725, 16531, 504, - 15725, 16531, 505, 13259, 7056, - 15725, 16531, 505, 20171, 7056, - 15725, 16531, 718, - 15725, 16531, 719, 13259, 7056, - 15725, 16531, 719, 20171, 7056, - 15725, 16531, 790, - 15725, 16531, 791, 13259, 7056, - 15725, 16531, 791, 20171, 7056, - 15725, 16531, 880, - 15725, 16531, 881, 11513, 3537, 6697, 12318, - 15725, 16531, 881, 11513, 3537, 6697, 23011, 12318, - 15725, 16531, 881, 11513, 15117, 6697, 12318, - 15725, 16531, 881, 11513, 15117, 6697, 12502, - 15725, 16531, 881, 11513, 15117, 6697, 20501, 21349, 12318, - 15725, 16531, 881, 13259, 7056, - 15725, 16531, 881, 16635, 7056, - 15725, 16531, 881, 18303, 7056, - 15725, 16531, 881, 20171, 7056, - 15725, 16531, 988, - 15725, 16531, 989, 11513, 1291, 12503, 897, 15117, 6697, 12318, - 15725, 16531, 989, 11513, 3537, 6697, 12503, 897, 1291, 12318, - 15725, 16531, 989, 11513, 13457, 12318, - 15725, 16531, 989, 11513, 14911, 42, - 15725, 16531, 989, 11513, 14911, 43, 12502, - 15725, 16531, 989, 11513, 14911, 8851, 12318, - 15725, 16531, 989, 11513, 15117, 6697, 20501, 19381, 12502, - 15725, 16531, 989, 11513, 15117, 6697, 20501, 19381, 12503, 897, 3537, 6697, 12318, - 15725, 16531, 989, 11513, 15117, 6697, 23867, 12502, - 15725, 16531, 989, 11513, 20163, 14911, 43, 12502, - 15725, 16531, 989, 13259, 7056, - 15725, 16531, 989, 16635, 7056, - 15725, 16531, 989, 18303, 7056, - 15725, 16531, 989, 20171, 7056, - 15725, 16531, 1192, - 15725, 16531, 1193, 11513, 1291, 12502, - 15725, 16531, 1193, 13259, 7056, - 15725, 16531, 1193, 16635, 7056, - 15725, 16531, 1193, 18303, 7056, - 15725, 16531, 1193, 20171, 7056, - 15725, 16531, 1200, - 15725, 16531, 1201, 11513, 1291, 12502, - 15725, 16531, 1201, 11513, 1291, 12503, 897, 14911, 3372, - 15725, 16531, 1201, 11513, 3537, 6697, 23011, 12502, - 15725, 16531, 1201, 11513, 3537, 6697, 23011, 12503, 897, 14911, 3372, - 15725, 16531, 1201, 11513, 7059, 6697, 12318, - 15725, 16531, 1201, 11513, 10150, - 15725, 16531, 1201, 11513, 15117, 6697, 12319, 21348, - 15725, 16531, 1201, 11513, 15117, 6697, 12502, - 15725, 16531, 1201, 11513, 20163, 42, - 15725, 16531, 1201, 11513, 20163, 14911, 43, 12502, - 15725, 16531, 1201, 13259, 7056, - 15725, 16531, 1201, 20171, 7056, - 15725, 16531, 1302, - 15725, 16531, 1303, 13259, 7056, - 15725, 16531, 1303, 20171, 7056, - 15725, 16531, 1462, - 15725, 16531, 1463, 11513, 1291, 12502, - 15725, 16531, 1463, 11513, 1291, 12503, 897, 15117, 6697, 12318, - 15725, 16531, 1463, 11513, 1291, 14033, 12502, - 15725, 16531, 1463, 11513, 3537, 6697, 12502, - 15725, 16531, 1463, 11513, 15117, 6697, 12502, - 15725, 16531, 1463, 11513, 15117, 6697, 20501, 19381, 12502, - 15725, 16531, 1463, 13259, 7056, - 15725, 16531, 1463, 16635, 7056, - 15725, 16531, 1463, 18303, 7056, - 15725, 16531, 1463, 20171, 7056, - 15725, 16531, 1530, - 15725, 16531, 1531, 11513, 3537, 6697, 12502, - 15725, 16531, 1531, 11513, 10150, - 15725, 16531, 1531, 11513, 15117, 6697, 12318, - 15725, 16531, 1531, 11513, 20163, 17264, - 15725, 16531, 1531, 13259, 7056, - 15725, 16531, 1531, 16635, 7056, - 15725, 16531, 1531, 18303, 7056, - 15725, 16531, 1531, 20171, 7056, - 15725, 16531, 1682, - 15725, 16531, 1683, 11513, 3537, 6697, 12318, - 15725, 16531, 1683, 11513, 3537, 6697, 20933, 12318, - 15725, 16531, 1683, 11513, 13457, 12318, - 15725, 16531, 1683, 11513, 14911, 15725, 16531, 3373, 897, 3537, 6696, - 15725, 16531, 1683, 11513, 14911, 15725, 16531, 3373, 12318, - 15725, 16531, 1683, 11513, 14911, 15725, 16531, 3373, 12502, - 15725, 16531, 1683, 11513, 15117, 6697, 12318, - 15725, 16531, 1683, 11513, 15117, 6697, 20501, 19381, 12502, - 15725, 16531, 1683, 11513, 20003, 23751, 13069, 7059, 12502, - 15725, 16531, 1683, 11513, 20163, 14911, 43, 12502, - 15725, 16531, 1683, 13259, 7056, - 15725, 16531, 1683, 16635, 7056, - 15725, 16531, 1683, 18303, 7056, - 15725, 16531, 1683, 20171, 7056, - 15725, 16531, 1710, - 15725, 16531, 1711, 7328, - 15725, 16531, 1711, 7329, 11513, 13457, 12318, - 15725, 16531, 1711, 7329, 13259, 7056, - 15725, 16531, 1711, 7329, 16635, 7056, - 15725, 16531, 1711, 7329, 18303, 7056, - 15725, 16531, 1711, 7329, 20171, 7056, - 15725, 16531, 1711, 11513, 3919, 12318, - 15725, 16531, 1711, 11513, 3919, 12319, 13259, 7056, - 15725, 16531, 1711, 11513, 3919, 12319, 20171, 7056, - 15725, 16531, 1711, 11513, 20163, 42, - 15725, 16531, 1711, 13259, 7056, - 15725, 16531, 1711, 16635, 7056, - 15725, 16531, 1711, 18303, 7056, - 15725, 16531, 1711, 20171, 7056, - 15725, 16531, 1711, 23134, - 15725, 16531, 1711, 23135, 13259, 7056, - 15725, 16531, 1711, 23135, 16635, 7056, - 15725, 16531, 1711, 23135, 18303, 7056, - 15725, 16531, 1711, 23135, 20171, 7056, - 15725, 16531, 1912, - 15725, 16531, 1913, 13259, 7056, - 15725, 16531, 1913, 20171, 7056, - 15725, 16531, 1988, - 15725, 16531, 1989, 11513, 1291, 12318, - 15725, 16531, 1989, 11513, 1291, 12502, - 15725, 16531, 1989, 11513, 3537, 6697, 12318, - 15725, 16531, 1989, 11513, 3537, 6697, 23011, 12502, - 15725, 16531, 1989, 11513, 10150, - 15725, 16531, 1989, 11513, 15117, 6697, 12502, - 15725, 16531, 1989, 13259, 7056, - 15725, 16531, 1989, 16635, 7056, - 15725, 16531, 1989, 18303, 7056, - 15725, 16531, 1989, 20171, 7056, - 15725, 16531, 2202, - 15725, 16531, 2203, 11513, 964, - 15725, 16531, 2203, 11513, 1291, 12318, - 15725, 16531, 2203, 11513, 14911, 42, - 15725, 16531, 2203, 11513, 14911, 15725, 16531, 3373, 12318, - 15725, 16531, 2203, 11513, 15117, 6697, 12318, - 15725, 16531, 2203, 11513, 15117, 6697, 12502, - 15725, 16531, 2203, 11513, 16095, 964, - 15725, 16531, 2203, 13259, 7056, - 15725, 16531, 2203, 16635, 7056, - 15725, 16531, 2203, 18303, 7056, - 15725, 16531, 2203, 20171, 7056, - 15725, 16531, 2301, 5482, - 15725, 16531, 2820, - 15725, 16531, 2821, 11513, 14911, 42, - 15725, 16531, 2821, 11513, 14911, 8851, 12318, - 15725, 16531, 2821, 13259, 7056, - 15725, 16531, 2821, 16635, 7056, - 15725, 16531, 2821, 18303, 7056, - 15725, 16531, 2821, 20171, 7056, - 15725, 16531, 2926, - 15725, 16531, 2927, 11513, 1291, 12318, - 15725, 16531, 2927, 11513, 1291, 12502, - 15725, 16531, 2927, 11513, 1291, 12503, 897, 487, 6697, 12318, - 15725, 16531, 2927, 11513, 15117, 6697, 12318, - 15725, 16531, 2927, 13259, 7056, - 15725, 16531, 2927, 16635, 7056, - 15725, 16531, 2927, 18303, 7056, - 15725, 16531, 2927, 20171, 7056, - 15725, 16531, 3062, - 15725, 16531, 3063, 11513, 1291, 12502, - 15725, 16531, 3063, 11513, 1291, 12503, 897, 1291, 12318, - 15725, 16531, 3063, 11513, 3537, 6697, 12318, - 15725, 16531, 3063, 11513, 3537, 6697, 23011, 12318, - 15725, 16531, 3063, 11513, 7059, 6697, 12318, - 15725, 16531, 3063, 11513, 8356, - 15725, 16531, 3063, 11513, 10150, - 15725, 16531, 3063, 11513, 13457, 12318, - 15725, 16531, 3063, 11513, 14911, 42, - 15725, 16531, 3063, 11513, 14911, 43, 12502, - 15725, 16531, 3063, 11513, 14911, 9439, 12318, - 15725, 16531, 3063, 11513, 14911, 15725, 16531, 3373, 897, 3537, 6696, - 15725, 16531, 3063, 11513, 17264, - 15725, 16531, 3063, 11513, 20163, 42, - 15725, 16531, 3063, 13259, 7056, - 15725, 16531, 3063, 20171, 7056, - 15725, 16531, 3174, - 15725, 16531, 3175, 11513, 3537, 6697, 12502, - 15725, 16531, 3175, 11513, 15117, 6697, 12318, - 15725, 16531, 3175, 11513, 15117, 6697, 12502, - 15725, 16531, 3175, 13259, 7056, - 15725, 16531, 3175, 16635, 7056, - 15725, 16531, 3175, 18303, 7056, - 15725, 16531, 3175, 20171, 7056, - 15725, 16531, 3372, - 15725, 16531, 3373, 11513, 1291, 12502, - 15725, 16531, 3373, 11513, 3537, 6697, 12318, - 15725, 16531, 3373, 11513, 3537, 6697, 23011, 12502, - 15725, 16531, 3373, 11513, 15117, 6697, 12318, - 15725, 16531, 3373, 11513, 15117, 6697, 12502, - 15725, 16531, 3373, 13259, 7056, - 15725, 16531, 3373, 16635, 7056, - 15725, 16531, 3373, 18303, 7056, - 15725, 16531, 3373, 20171, 7056, - 15725, 16531, 3408, - 15725, 16531, 3409, 11513, 10150, - 15725, 16531, 3409, 11513, 14911, 42, - 15725, 16531, 3409, 11513, 14911, 3409, 12318, - 15725, 16531, 3409, 11513, 15117, 6697, 12319, 21348, - 15725, 16531, 3409, 13259, 7056, - 15725, 16531, 3409, 16635, 7056, - 15725, 16531, 3409, 18303, 7056, - 15725, 16531, 3409, 18576, - 15725, 16531, 3409, 18577, 7328, - 15725, 16531, 3409, 18577, 13259, 7056, - 15725, 16531, 3409, 18577, 20171, 7056, - 15725, 16531, 3409, 20171, 7056, - 15725, 16531, 3674, - 15725, 16531, 3675, 13259, 7056, - 15725, 16531, 3675, 16635, 7056, - 15725, 16531, 3675, 18303, 7056, - 15725, 16531, 3675, 20171, 7056, - 15725, 16531, 3750, - 15725, 16531, 3751, 11513, 1291, 12318, - 15725, 16531, 3751, 11513, 1291, 17578, - 15725, 16531, 3751, 11513, 3537, 6697, 12318, - 15725, 16531, 3751, 11513, 10150, - 15725, 16531, 3751, 11513, 13457, 12318, - 15725, 16531, 3751, 11513, 13457, 12319, 13259, 7056, - 15725, 16531, 3751, 11513, 13457, 12319, 20171, 7056, - 15725, 16531, 3751, 11513, 20003, 23751, 13069, 3537, 12318, - 15725, 16531, 3751, 11513, 20003, 23751, 13069, 15117, 12318, - 15725, 16531, 3751, 13259, 7056, - 15725, 16531, 3751, 20171, 7056, - 15725, 16531, 3918, - 15725, 16531, 3919, 11513, 3537, 6697, 12503, 897, 1291, 12318, - 15725, 16531, 3919, 11513, 3537, 6697, 12503, 897, 13457, 12318, - 15725, 16531, 3919, 11513, 3537, 6697, 12503, 897, 14911, 9439, 12318, - 15725, 16531, 3919, 11513, 10856, - 15725, 16531, 3919, 11513, 13457, 12318, - 15725, 16531, 3919, 11513, 13457, 12319, 13259, 7056, - 15725, 16531, 3919, 11513, 13457, 12319, 16635, 7056, - 15725, 16531, 3919, 11513, 13457, 12319, 18303, 7056, - 15725, 16531, 3919, 11513, 13457, 12319, 20171, 7056, - 15725, 16531, 3919, 11513, 14911, 42, - 15725, 16531, 3919, 11513, 15117, 6697, 12502, - 15725, 16531, 3919, 13259, 7056, - 15725, 16531, 3919, 15788, - 15725, 16531, 3919, 15789, 11513, 13457, 12318, - 15725, 16531, 3919, 15789, 11513, 13457, 12319, 13259, 7056, - 15725, 16531, 3919, 15789, 11513, 13457, 12319, 20171, 7056, - 15725, 16531, 3919, 15789, 11513, 20003, 23751, 13069, 3537, 12318, - 15725, 16531, 3919, 15789, 11513, 20003, 23751, 13069, 15117, 12318, - 15725, 16531, 3919, 15789, 13259, 7056, - 15725, 16531, 3919, 15789, 20171, 7056, - 15725, 16531, 3919, 16635, 7056, - 15725, 16531, 3919, 18303, 7056, - 15725, 16531, 3919, 20171, 7056, - 15725, 16531, 4020, - 15725, 16531, 4021, 13259, 7056, - 15725, 16531, 4021, 16635, 7056, - 15725, 16531, 4021, 18303, 7056, - 15725, 16531, 4021, 20171, 7056, - 15725, 16531, 5482, - 15725, 16531, 5483, 11513, 1291, 12318, - 15725, 16531, 5483, 11513, 8281, 16661, 17264, - 15725, 16531, 5483, 11513, 11475, 13457, 12318, - 15725, 16531, 5483, 11513, 11475, 13457, 12502, - 15725, 16531, 5483, 11513, 13457, 12318, - 15725, 16531, 5483, 11513, 13457, 12319, 13259, 7056, - 15725, 16531, 5483, 11513, 13457, 12319, 20171, 7056, - 15725, 16531, 5483, 11513, 13457, 12502, - 15725, 16531, 5483, 11513, 13457, 12503, 13259, 7056, - 15725, 16531, 5483, 11513, 13457, 12503, 20171, 7056, - 15725, 16531, 5483, 11513, 13897, 12318, - 15725, 16531, 5483, 11513, 13897, 12319, 13259, 7056, - 15725, 16531, 5483, 11513, 13897, 12319, 20171, 7056, - 15725, 16531, 5483, 11513, 14659, 16661, 17264, - 15725, 16531, 5483, 11513, 14659, 16661, 17265, 897, 1291, 12318, - 15725, 16531, 5483, 11513, 14659, 16661, 17265, 897, 8281, 10150, - 15725, 16531, 5483, 11513, 19583, 3473, 14659, 13240, - 15725, 16531, 5483, 11513, 19583, 3473, 14659, 13241, 897, 1291, 12318, - 15725, 16531, 5483, 11513, 19583, 3473, 14659, 13241, 897, 8281, 10150, - 15725, 16531, 5483, 11513, 19583, 8281, 13456, - 15725, 16531, 5483, 11513, 19583, 8281, 14677, 1290, - 15725, 16531, 5483, 11513, 19583, 13240, - 15725, 16531, 5483, 11513, 19583, 13660, - 15725, 16531, 5483, 11513, 19583, 14659, 13456, - 15725, 16531, 5483, 11513, 19583, 14659, 14677, 1290, - 15725, 16531, 5483, 11513, 19583, 14677, 1291, 12318, - 15725, 16531, 5483, 11513, 19583, 14677, 1291, 12502, - 15725, 16531, 5483, 11513, 19583, 15827, 14659, 13660, - 15725, 16531, 5483, 11513, 19583, 15827, 14659, 13661, 897, 1291, 12318, - 15725, 16531, 5483, 11513, 19583, 15827, 14659, 13661, 897, 8281, 10150, - 15725, 16531, 5483, 11513, 20003, 23751, 13069, 3537, 12318, - 15725, 16531, 5483, 11513, 20003, 23751, 13069, 15117, 12318, - 15725, 16531, 5483, 13259, 7056, - 15725, 16531, 5483, 15432, - 15725, 16531, 5483, 15433, 13259, 7056, - 15725, 16531, 5483, 15433, 20171, 7056, - 15725, 16531, 5483, 18558, - 15725, 16531, 5483, 18559, 13259, 7056, - 15725, 16531, 5483, 18559, 20171, 7056, - 15725, 16531, 5483, 20171, 7056, - 15725, 16531, 6052, - 15725, 16531, 6053, 13259, 7056, - 15725, 16531, 6053, 16635, 7056, - 15725, 16531, 6053, 18303, 7056, - 15725, 16531, 6053, 20171, 7056, - 15725, 16531, 6556, - 15725, 16531, 6557, 13259, 7056, - 15725, 16531, 6557, 20171, 7056, - 15725, 16531, 6732, - 15725, 16531, 6733, 13259, 7056, - 15725, 16531, 6733, 16635, 7056, - 15725, 16531, 6733, 18303, 7056, - 15725, 16531, 6733, 20171, 7056, - 15725, 16531, 7342, - 15725, 16531, 7354, - 15725, 16531, 7355, 13259, 7056, - 15725, 16531, 7355, 16635, 7056, - 15725, 16531, 7355, 18303, 7056, - 15725, 16531, 7355, 20171, 7056, - 15725, 16531, 7521, 13456, - 15725, 16531, 7521, 13457, 3750, - 15725, 16531, 7521, 13457, 3918, - 15725, 16531, 7521, 13457, 5482, - 15725, 16531, 7848, - 15725, 16531, 7849, 11513, 3537, 6697, 12318, - 15725, 16531, 7849, 11513, 15117, 6697, 12318, - 15725, 16531, 7849, 11513, 15117, 6697, 12502, - 15725, 16531, 7849, 13259, 7056, - 15725, 16531, 7849, 16635, 7056, - 15725, 16531, 7849, 18303, 7056, - 15725, 16531, 7849, 20171, 7056, - 15725, 16531, 8054, - 15725, 16531, 8055, 13259, 7056, - 15725, 16531, 8055, 16635, 7056, - 15725, 16531, 8055, 18303, 7056, - 15725, 16531, 8055, 20171, 7056, - 15725, 16531, 8808, - 15725, 16531, 8850, - 15725, 16531, 8851, 11513, 1291, 12318, - 15725, 16531, 8851, 11513, 1291, 12502, - 15725, 16531, 8851, 11513, 15117, 6697, 12318, - 15725, 16531, 8851, 13259, 7056, - 15725, 16531, 8851, 16635, 7056, - 15725, 16531, 8851, 18303, 7056, - 15725, 16531, 8851, 20171, 7056, - 15725, 16531, 9438, - 15725, 16531, 9439, 11513, 1291, 12502, - 15725, 16531, 9439, 11513, 3537, 6697, 12502, - 15725, 16531, 9439, 11513, 10150, - 15725, 16531, 9439, 11513, 14911, 42, - 15725, 16531, 9439, 11513, 14911, 3372, - 15725, 16531, 9439, 11513, 15117, 6697, 12318, - 15725, 16531, 9439, 11513, 20163, 14911, 42, - 15725, 16531, 9439, 13259, 7056, - 15725, 16531, 9439, 16264, - 15725, 16531, 9439, 16265, 13259, 7056, - 15725, 16531, 9439, 16265, 20171, 7056, - 15725, 16531, 9439, 16635, 7056, - 15725, 16531, 9439, 18303, 7056, - 15725, 16531, 9439, 20171, 7056, - 15725, 16531, 9560, - 15725, 16531, 9561, 13259, 7056, - 15725, 16531, 9561, 16635, 7056, - 15725, 16531, 9561, 18303, 7056, - 15725, 16531, 9561, 20171, 7056, - 15725, 16531, 10192, - 15725, 16531, 10193, 13259, 7056, - 15725, 16531, 10193, 20171, 7056, - 15725, 16531, 10418, - 15725, 16531, 10419, 11513, 1291, 12503, 897, 1291, 12318, - 15725, 16531, 10419, 11513, 3537, 6697, 23011, 12318, - 15725, 16531, 10419, 11513, 7059, 6697, 12318, - 15725, 16531, 10419, 11513, 14911, 15725, 16531, 3373, 897, 3537, 6696, - 15725, 16531, 10419, 11513, 15117, 6697, 12502, - 15725, 16531, 10419, 11513, 15117, 6697, 12503, 897, 15117, 6697, 12318, - 15725, 16531, 10419, 11513, 20003, 23751, 13069, 7059, 12318, - 15725, 16531, 10419, 11513, 20163, 42, - 15725, 16531, 10419, 13259, 7056, - 15725, 16531, 10419, 16635, 7056, - 15725, 16531, 10419, 18303, 7056, - 15725, 16531, 10419, 20171, 7056, - 15725, 16531, 10928, - 15725, 16531, 10929, 13259, 7056, - 15725, 16531, 10929, 20171, 7056, - 15725, 16531, 10940, - 15725, 16531, 10941, 13259, 7056, - 15725, 16531, 10941, 16635, 7056, - 15725, 16531, 10941, 18303, 7056, - 15725, 16531, 10941, 20171, 7056, - 15725, 16531, 10951, 3918, - 15725, 16531, 11080, - 15725, 16531, 11081, 11513, 14911, 42, - 15725, 16531, 11081, 13259, 7056, - 15725, 16531, 11081, 16635, 7056, - 15725, 16531, 11081, 18303, 7056, - 15725, 16531, 11081, 20171, 7056, - 15725, 16531, 11812, - 15725, 16531, 11813, 11513, 20163, 43, 12318, - 15725, 16531, 11813, 13259, 7056, - 15725, 16531, 11813, 20171, 7056, - 15725, 16531, 12498, - 15725, 16531, 12499, 13259, 7056, - 15725, 16531, 12499, 16635, 7056, - 15725, 16531, 12499, 18303, 7056, - 15725, 16531, 12499, 20171, 7056, - 15725, 16531, 13004, - 15725, 16531, 13005, 13259, 7056, - 15725, 16531, 13005, 20171, 7056, - 15725, 16531, 13239, 3918, - 15725, 16531, 13239, 3919, 11513, 3537, 6697, 12318, - 15725, 16531, 13239, 3919, 11513, 15117, 6697, 12318, - 15725, 16531, 13239, 3919, 11513, 20003, 23751, 13069, 3537, 12318, - 15725, 16531, 13239, 3919, 11513, 20003, 23751, 13069, 7059, 12502, - 15725, 16531, 13239, 3919, 11513, 20003, 23751, 13069, 15117, 12318, - 15725, 16531, 13239, 3919, 11513, 20163, 42, - 15725, 16531, 13239, 3919, 13259, 7056, - 15725, 16531, 13239, 3919, 16635, 7056, - 15725, 16531, 13239, 3919, 18303, 7056, - 15725, 16531, 13239, 3919, 20171, 7056, - 15725, 16531, 13370, - 15725, 16531, 13371, 11513, 1291, 12502, - 15725, 16531, 13371, 11513, 15117, 6697, 12318, - 15725, 16531, 13371, 13259, 7056, - 15725, 16531, 13371, 16635, 7056, - 15725, 16531, 13371, 18303, 7056, - 15725, 16531, 13371, 20171, 7056, - 15725, 16531, 13456, - 15725, 16531, 13457, 20171, 7056, - 15725, 16531, 13672, - 15725, 16531, 13673, 11513, 1291, 12318, - 15725, 16531, 13673, 11513, 3537, 6697, 12318, - 15725, 16531, 13673, 11513, 3537, 6697, 23011, 12502, - 15725, 16531, 13673, 11513, 14911, 42, - 15725, 16531, 13673, 11513, 15117, 6697, 12318, - 15725, 16531, 13673, 11513, 15117, 6697, 12502, - 15725, 16531, 13673, 11513, 15117, 6697, 20501, 19381, 12502, - 15725, 16531, 13673, 13259, 7056, - 15725, 16531, 13673, 16635, 7056, - 15725, 16531, 13673, 18303, 7056, - 15725, 16531, 13673, 20171, 7056, - 15725, 16531, 14152, - 15725, 16531, 14153, 13259, 7056, - 15725, 16531, 14153, 16635, 7056, - 15725, 16531, 14153, 18303, 7056, - 15725, 16531, 14153, 20171, 7056, - 15725, 16531, 14512, - 15725, 16531, 14513, 13259, 7056, - 15725, 16531, 14513, 16635, 7056, - 15725, 16531, 14513, 18303, 7056, - 15725, 16531, 14513, 20171, 7056, - 15725, 16531, 14666, - 15725, 16531, 14667, 13259, 7056, - 15725, 16531, 14667, 16635, 7056, - 15725, 16531, 14667, 18303, 7056, - 15725, 16531, 14667, 20171, 7056, - 15725, 16531, 14802, - 15725, 16531, 14803, 11513, 1291, 12502, - 15725, 16531, 14803, 13259, 7056, - 15725, 16531, 14803, 16635, 7056, - 15725, 16531, 14803, 18303, 7056, - 15725, 16531, 14803, 20171, 7056, - 15725, 16531, 15013, 1988, - 15725, 16531, 15060, - 15725, 16531, 15061, 11513, 1291, 12318, - 15725, 16531, 15061, 11513, 14911, 42, - 15725, 16531, 15061, 13259, 7056, - 15725, 16531, 15061, 16635, 7056, - 15725, 16531, 15061, 18303, 7056, - 15725, 16531, 15061, 20171, 7056, - 15725, 16531, 15074, - 15725, 16531, 15075, 13259, 7056, - 15725, 16531, 15075, 16635, 7056, - 15725, 16531, 15075, 18303, 7056, - 15725, 16531, 15075, 20171, 7056, - 15725, 16531, 16020, - 15725, 16531, 16021, 13259, 7056, - 15725, 16531, 16021, 20171, 7056, - 15725, 16531, 17452, - 15725, 16531, 17453, 13259, 7056, - 15725, 16531, 17453, 16635, 7056, - 15725, 16531, 17453, 18303, 7056, - 15725, 16531, 17453, 20171, 7056, - 15725, 16531, 17499, 16423, 18369, 5483, 18559, 16635, 7056, - 15725, 16531, 17499, 16423, 18369, 5483, 18559, 18303, 7056, - 15725, 16531, 17653, 1462, - 15725, 16531, 17653, 2926, - 15725, 16531, 17653, 2927, 11513, 15117, 6697, 12318, - 15725, 16531, 17653, 9438, - 15725, 16531, 18019, 988, - 15725, 16531, 18019, 1462, - 15725, 16531, 18019, 2926, - 15725, 16531, 18369, 504, - 15725, 16531, 18369, 505, 13259, 7056, - 15725, 16531, 18369, 505, 20171, 7056, - 15725, 16531, 18369, 790, - 15725, 16531, 18369, 791, 13259, 7056, - 15725, 16531, 18369, 791, 20171, 7056, - 15725, 16531, 19260, - 15725, 16531, 19261, 13259, 7056, - 15725, 16531, 19261, 16635, 7056, - 15725, 16531, 19261, 18303, 7056, - 15725, 16531, 19261, 20171, 7056, - 15725, 16531, 20189, 3918, - 15725, 16531, 20593, 3918, - 15725, 16531, 20729, 3750, - 15725, 16531, 23679, 5482, - 15725, 16589, 12318, - 15725, 16787, 8809, 12318, - 15725, 16787, 10574, - 15725, 16937, 15391, 10574, - 15725, 17007, 14677, 1290, - 15725, 17116, - 15725, 17117, 16635, 7056, - 15725, 17117, 20171, 7056, - 15725, 17299, 1291, 12318, - 15725, 17299, 1291, 12502, - 15725, 17299, 3537, 6697, 12318, - 15725, 17299, 3537, 6697, 12502, - 15725, 17299, 3537, 6697, 23011, 12318, - 15725, 17299, 3537, 6697, 23011, 12502, - 15725, 17299, 7059, 6697, 12318, - 15725, 17299, 7059, 6697, 12502, - 15725, 17299, 10150, - 15725, 17299, 14911, 3373, 12318, - 15725, 17299, 14911, 3373, 12502, - 15725, 17299, 15117, 6697, 12318, - 15725, 17299, 15117, 6697, 12502, - 15725, 17299, 15117, 6697, 20501, 21349, 12318, - 15725, 17299, 15117, 6697, 20501, 21349, 12502, - 15725, 17299, 15433, 12318, - 15725, 17299, 16095, 20933, 965, 12502, - 15725, 17435, 1291, 23555, 8808, - 15725, 17465, 13015, 12502, - 15725, 17973, 21850, - 15725, 18077, 13896, - 15725, 18841, 10574, - 15725, 18867, 8809, 12318, - 15725, 19019, 7521, 10697, 11513, 16171, 15900, - 15725, 19256, - 15725, 19257, 11513, 3537, 6697, 12502, - 15725, 19257, 11513, 20007, 12318, - 15725, 19257, 11513, 22735, 3750, - 15725, 19257, 11513, 22735, 13456, - 15725, 19601, 14677, 1290, - 15725, 19760, - 15725, 19761, 20171, 7056, - 15725, 19811, 1393, 507, 5552, - 15725, 20006, - 15725, 20007, 20171, 7056, - 15725, 20045, 16614, - 15725, 20163, 13014, - 15725, 20190, - 15725, 20191, 20171, 7056, - 15725, 20241, 881, 11513, 3919, 13259, 7056, - 15725, 20241, 881, 11513, 3919, 20171, 7056, - 15725, 20241, 881, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 881, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 881, 11513, 7849, 11513, 8851, 13259, 7056, - 15725, 20241, 881, 11513, 7849, 11513, 8851, 18303, 7056, - 15725, 20241, 881, 11513, 7849, 18303, 7056, - 15725, 20241, 881, 11513, 7849, 20171, 7056, - 15725, 20241, 881, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 881, 11513, 8851, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 881, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 881, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 881, 11513, 8851, 18303, 7056, - 15725, 20241, 881, 11513, 8851, 20171, 7056, - 15725, 20241, 989, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 989, 11513, 1683, 18303, 7056, - 15725, 20241, 989, 11513, 1683, 20171, 7056, - 15725, 20241, 989, 11513, 1711, 16635, 7056, - 15725, 20241, 989, 11513, 1711, 18303, 7056, - 15725, 20241, 989, 11513, 3063, 13259, 7056, - 15725, 20241, 989, 11513, 3919, 13259, 7056, - 15725, 20241, 989, 11513, 3919, 20171, 7056, - 15725, 20241, 989, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 989, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 989, 11513, 7849, 18303, 7056, - 15725, 20241, 989, 11513, 7849, 20171, 7056, - 15725, 20241, 989, 11513, 8055, 11513, 3919, 13259, 7056, - 15725, 20241, 989, 11513, 8055, 18303, 7056, - 15725, 20241, 989, 11513, 8055, 20171, 7056, - 15725, 20241, 989, 11513, 8851, 13259, 7056, - 15725, 20241, 989, 11513, 8851, 16635, 7056, - 15725, 20241, 989, 11513, 8851, 18303, 7056, - 15725, 20241, 989, 11513, 8851, 20171, 7056, - 15725, 20241, 989, 11513, 9439, 13259, 7056, - 15725, 20241, 989, 11513, 11813, 13259, 7056, - 15725, 20241, 1193, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 1193, 11513, 1683, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 1193, 11513, 1683, 18303, 7056, - 15725, 20241, 1193, 11513, 1683, 20171, 7056, - 15725, 20241, 1193, 11513, 3063, 13259, 7056, - 15725, 20241, 1193, 11513, 3063, 20171, 7056, - 15725, 20241, 1193, 11513, 3919, 13259, 7056, - 15725, 20241, 1193, 11513, 3919, 20171, 7056, - 15725, 20241, 1193, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 1193, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 1193, 11513, 7849, 18303, 7056, - 15725, 20241, 1193, 11513, 7849, 20171, 7056, - 15725, 20241, 1193, 11513, 8055, 11513, 8851, 13259, 7056, - 15725, 20241, 1193, 11513, 8055, 11513, 8851, 18303, 7056, - 15725, 20241, 1193, 11513, 8055, 18303, 7056, - 15725, 20241, 1193, 11513, 8055, 20171, 7056, - 15725, 20241, 1193, 11513, 8851, 18303, 7056, - 15725, 20241, 1193, 11513, 8851, 20171, 7056, - 15725, 20241, 1463, 11513, 1683, 18303, 7056, - 15725, 20241, 1463, 11513, 1683, 20171, 7056, - 15725, 20241, 1463, 11513, 3919, 13259, 7056, - 15725, 20241, 1463, 11513, 3919, 20171, 7056, - 15725, 20241, 1463, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 1463, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 1463, 11513, 7849, 18303, 7056, - 15725, 20241, 1463, 11513, 7849, 20171, 7056, - 15725, 20241, 1463, 11513, 8055, 11513, 8851, 13259, 7056, - 15725, 20241, 1463, 11513, 8055, 11513, 8851, 18303, 7056, - 15725, 20241, 1463, 11513, 8055, 18303, 7056, - 15725, 20241, 1463, 11513, 8055, 20171, 7056, - 15725, 20241, 1463, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 1463, 11513, 8851, 18303, 7056, - 15725, 20241, 1463, 11513, 8851, 20171, 7056, - 15725, 20241, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 1683, 11513, 3919, 20171, 7056, - 15725, 20241, 1683, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 1683, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 1683, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 1683, 11513, 7849, 18303, 7056, - 15725, 20241, 1683, 11513, 7849, 20171, 7056, - 15725, 20241, 1683, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 1683, 11513, 8851, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 1683, 11513, 8851, 18303, 7056, - 15725, 20241, 1683, 11513, 8851, 20171, 7056, - 15725, 20241, 1711, 11513, 3919, 20171, 7056, - 15725, 20241, 1711, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 1711, 11513, 7849, 18303, 7056, - 15725, 20241, 1711, 11513, 7849, 20171, 7056, - 15725, 20241, 1711, 11513, 8851, 11513, 7849, 18303, 7056, - 15725, 20241, 1711, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 1711, 11513, 8851, 18303, 7056, - 15725, 20241, 1711, 11513, 8851, 20171, 7056, - 15725, 20241, 1711, 11513, 23679, 5483, 18303, 7056, - 15725, 20241, 1989, 11513, 1683, 18303, 7056, - 15725, 20241, 1989, 11513, 1683, 20171, 7056, - 15725, 20241, 1989, 11513, 2203, 13259, 7056, - 15725, 20241, 1989, 11513, 2203, 16635, 7056, - 15725, 20241, 1989, 11513, 2203, 18303, 7056, - 15725, 20241, 1989, 11513, 2203, 20171, 7056, - 15725, 20241, 1989, 11513, 3919, 13259, 7056, - 15725, 20241, 1989, 11513, 3919, 20171, 7056, - 15725, 20241, 1989, 11513, 5483, 13259, 7056, - 15725, 20241, 1989, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 1989, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 1989, 11513, 5483, 20171, 7056, - 15725, 20241, 1989, 11513, 7849, 18303, 7056, - 15725, 20241, 1989, 11513, 7849, 20171, 7056, - 15725, 20241, 1989, 11513, 8055, 18303, 7056, - 15725, 20241, 1989, 11513, 8055, 20171, 7056, - 15725, 20241, 1989, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 1989, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 1989, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 1989, 11513, 8851, 13259, 7056, - 15725, 20241, 1989, 11513, 8851, 16635, 7056, - 15725, 20241, 1989, 11513, 8851, 18303, 7056, - 15725, 20241, 1989, 11513, 8851, 20171, 7056, - 15725, 20241, 2203, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 2203, 11513, 1683, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 2203, 11513, 1683, 11513, 8851, 13259, 7056, - 15725, 20241, 2203, 11513, 1683, 11513, 8851, 18303, 7056, - 15725, 20241, 2203, 11513, 1683, 18303, 7056, - 15725, 20241, 2203, 11513, 1683, 20171, 7056, - 15725, 20241, 2203, 11513, 1711, 18303, 7056, - 15725, 20241, 2203, 11513, 3919, 13259, 7056, - 15725, 20241, 2203, 11513, 3919, 20171, 7056, - 15725, 20241, 2203, 11513, 5483, 11513, 13457, 12319, 13259, 7056, - 15725, 20241, 2203, 11513, 5483, 11513, 13457, 12319, 20171, 7056, - 15725, 20241, 2203, 11513, 5483, 11513, 13457, 12503, 13259, 7056, - 15725, 20241, 2203, 11513, 5483, 11513, 13457, 12503, 20171, 7056, - 15725, 20241, 2203, 11513, 5483, 11513, 13897, 12319, 13259, 7056, - 15725, 20241, 2203, 11513, 5483, 11513, 13897, 12319, 20171, 7056, - 15725, 20241, 2203, 11513, 5483, 13259, 7056, - 15725, 20241, 2203, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 2203, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 2203, 11513, 5483, 20171, 7056, - 15725, 20241, 2203, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 2203, 11513, 7849, 11513, 7849, 13259, 7056, - 15725, 20241, 2203, 11513, 7849, 11513, 7849, 18303, 7056, - 15725, 20241, 2203, 11513, 7849, 11513, 8851, 13259, 7056, - 15725, 20241, 2203, 11513, 7849, 11513, 8851, 18303, 7056, - 15725, 20241, 2203, 11513, 7849, 18303, 7056, - 15725, 20241, 2203, 11513, 7849, 20171, 7056, - 15725, 20241, 2203, 11513, 8055, 11513, 8851, 13259, 7056, - 15725, 20241, 2203, 11513, 8055, 11513, 8851, 18303, 7056, - 15725, 20241, 2203, 11513, 8055, 18303, 7056, - 15725, 20241, 2203, 11513, 8055, 20171, 7056, - 15725, 20241, 2203, 11513, 8851, 11513, 1683, 13259, 7056, - 15725, 20241, 2203, 11513, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 2203, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 2203, 11513, 8851, 13259, 7056, - 15725, 20241, 2203, 11513, 8851, 16635, 7056, - 15725, 20241, 2203, 11513, 8851, 18303, 7056, - 15725, 20241, 2203, 11513, 8851, 20171, 7056, - 15725, 20241, 2927, 11513, 1683, 18303, 7056, - 15725, 20241, 2927, 11513, 1683, 20171, 7056, - 15725, 20241, 2927, 11513, 3919, 13259, 7056, - 15725, 20241, 2927, 11513, 3919, 20171, 7056, - 15725, 20241, 2927, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 2927, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 2927, 11513, 8851, 11513, 1683, 13259, 7056, - 15725, 20241, 2927, 11513, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 2927, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 2927, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 2927, 11513, 8851, 18303, 7056, - 15725, 20241, 2927, 11513, 8851, 20171, 7056, - 15725, 20241, 3063, 11513, 23679, 5483, 20171, 7056, - 15725, 20241, 3175, 11513, 1683, 11513, 1683, 13259, 7056, - 15725, 20241, 3175, 11513, 1683, 11513, 1683, 18303, 7056, - 15725, 20241, 3175, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 3175, 11513, 1683, 18303, 7056, - 15725, 20241, 3175, 11513, 1683, 20171, 7056, - 15725, 20241, 3175, 11513, 3063, 13259, 7056, - 15725, 20241, 3175, 11513, 3063, 20171, 7056, - 15725, 20241, 3175, 11513, 3919, 13259, 7056, - 15725, 20241, 3175, 11513, 3919, 20171, 7056, - 15725, 20241, 3175, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3175, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 3175, 11513, 8055, 18303, 7056, - 15725, 20241, 3175, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 3175, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 3175, 11513, 8851, 18303, 7056, - 15725, 20241, 3175, 11513, 8851, 20171, 7056, - 15725, 20241, 3373, 11513, 1683, 18303, 7056, - 15725, 20241, 3373, 11513, 1683, 20171, 7056, - 15725, 20241, 3373, 11513, 3919, 13259, 7056, - 15725, 20241, 3373, 11513, 3919, 20171, 7056, - 15725, 20241, 3373, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3373, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 3373, 11513, 8851, 11513, 1683, 13259, 7056, - 15725, 20241, 3373, 11513, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 3373, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 3373, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 3373, 11513, 8851, 16635, 7056, - 15725, 20241, 3373, 11513, 8851, 18303, 7056, - 15725, 20241, 3373, 11513, 8851, 20171, 7056, - 15725, 20241, 3409, 11513, 1683, 11513, 7849, 13259, 7056, - 15725, 20241, 3409, 11513, 1683, 11513, 7849, 18303, 7056, - 15725, 20241, 3409, 11513, 1683, 11513, 8851, 18303, 7056, - 15725, 20241, 3409, 11513, 1683, 18303, 7056, - 15725, 20241, 3409, 11513, 1683, 20171, 7056, - 15725, 20241, 3409, 11513, 1711, 16635, 7056, - 15725, 20241, 3409, 11513, 1711, 18303, 7056, - 15725, 20241, 3409, 11513, 3063, 13259, 7056, - 15725, 20241, 3409, 11513, 3919, 13259, 7056, - 15725, 20241, 3409, 11513, 3919, 20171, 7056, - 15725, 20241, 3409, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3409, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 3409, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 3409, 11513, 7849, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3409, 11513, 7849, 11513, 8851, 18303, 7056, - 15725, 20241, 3409, 11513, 7849, 18303, 7056, - 15725, 20241, 3409, 11513, 7849, 20171, 7056, - 15725, 20241, 3409, 11513, 8055, 11513, 3919, 13259, 7056, - 15725, 20241, 3409, 11513, 8055, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3409, 11513, 8055, 11513, 8851, 18303, 7056, - 15725, 20241, 3409, 11513, 8055, 18303, 7056, - 15725, 20241, 3409, 11513, 8055, 20171, 7056, - 15725, 20241, 3409, 11513, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 3409, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 3409, 11513, 8851, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3409, 11513, 8851, 11513, 7849, 18303, 7056, - 15725, 20241, 3409, 11513, 8851, 11513, 8055, 18303, 7056, - 15725, 20241, 3409, 11513, 8851, 13259, 7056, - 15725, 20241, 3409, 11513, 8851, 16635, 7056, - 15725, 20241, 3409, 11513, 8851, 18303, 7056, - 15725, 20241, 3409, 11513, 8851, 20171, 7056, - 15725, 20241, 3409, 11513, 9439, 13259, 7056, - 15725, 20241, 3409, 11513, 11813, 13259, 7056, - 15725, 20241, 3919, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 3919, 11513, 1683, 18303, 7056, - 15725, 20241, 3919, 11513, 1683, 20171, 7056, - 15725, 20241, 3919, 11513, 1711, 16635, 7056, - 15725, 20241, 3919, 11513, 1711, 18303, 7056, - 15725, 20241, 3919, 11513, 3063, 13259, 7056, - 15725, 20241, 3919, 11513, 3919, 13259, 7056, - 15725, 20241, 3919, 11513, 3919, 20171, 7056, - 15725, 20241, 3919, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3919, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 3919, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 3919, 11513, 7849, 18303, 7056, - 15725, 20241, 3919, 11513, 7849, 20171, 7056, - 15725, 20241, 3919, 11513, 8055, 18303, 7056, - 15725, 20241, 3919, 11513, 8055, 20171, 7056, - 15725, 20241, 3919, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 3919, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 3919, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 3919, 11513, 8851, 13259, 7056, - 15725, 20241, 3919, 11513, 8851, 16635, 7056, - 15725, 20241, 3919, 11513, 8851, 18303, 7056, - 15725, 20241, 3919, 11513, 8851, 20171, 7056, - 15725, 20241, 3919, 11513, 9439, 13259, 7056, - 15725, 20241, 3919, 11513, 11813, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 9, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 9, 18303, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 9, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 41, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 41, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 67, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 67, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 505, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 505, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 791, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 791, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 1683, 18303, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 1683, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 1711, 16635, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 1711, 18303, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 3063, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 3751, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 3751, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 3919, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 3919, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 5483, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 5483, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 7849, 18303, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 7849, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 8055, 18303, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 8851, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 8851, 16635, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 8851, 18303, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 8851, 20171, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 9439, 13259, 7056, - 15725, 20241, 3919, 11513, 13457, 12319, 11513, 11813, 13259, 7056, - 15725, 20241, 4021, 11513, 8851, 16635, 7056, - 15725, 20241, 4021, 11513, 8851, 18303, 7056, - 15725, 20241, 4021, 11513, 8851, 20171, 7056, - 15725, 20241, 5483, 11513, 20007, 13259, 7056, - 15725, 20241, 5483, 11513, 20007, 20171, 7056, - 15725, 20241, 5483, 18559, 11513, 23679, 5483, 13259, 7056, - 15725, 20241, 5483, 18559, 11513, 23679, 5483, 20171, 7056, - 15725, 20241, 5559, 739, 7842, - 15725, 20241, 7849, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 7849, 11513, 1683, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 7849, 11513, 1683, 18303, 7056, - 15725, 20241, 7849, 11513, 1683, 20171, 7056, - 15725, 20241, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 7849, 11513, 3919, 20171, 7056, - 15725, 20241, 7849, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 7849, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 7849, 11513, 8851, 11513, 1683, 13259, 7056, - 15725, 20241, 7849, 11513, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 7849, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 7849, 11513, 8851, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 7849, 11513, 8851, 18303, 7056, - 15725, 20241, 7849, 11513, 8851, 20171, 7056, - 15725, 20241, 8055, 11513, 1683, 20171, 7056, - 15725, 20241, 8055, 11513, 3919, 13259, 7056, - 15725, 20241, 8055, 11513, 3919, 20171, 7056, - 15725, 20241, 8055, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 8055, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 8055, 11513, 7849, 18303, 7056, - 15725, 20241, 8055, 11513, 7849, 20171, 7056, - 15725, 20241, 8055, 11513, 8851, 18303, 7056, - 15725, 20241, 8055, 11513, 8851, 20171, 7056, - 15725, 20241, 8851, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 8851, 11513, 1683, 11513, 7849, 18303, 7056, - 15725, 20241, 8851, 11513, 1683, 11513, 8851, 18303, 7056, - 15725, 20241, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 8851, 11513, 1683, 20171, 7056, - 15725, 20241, 8851, 11513, 3919, 20171, 7056, - 15725, 20241, 8851, 11513, 5483, 13259, 7056, - 15725, 20241, 8851, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 8851, 11513, 7849, 11513, 1683, 18303, 7056, - 15725, 20241, 8851, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 8851, 11513, 7849, 11513, 8055, 18303, 7056, - 15725, 20241, 8851, 11513, 7849, 11513, 8851, 18303, 7056, - 15725, 20241, 8851, 11513, 7849, 18303, 7056, - 15725, 20241, 8851, 11513, 7849, 20171, 7056, - 15725, 20241, 8851, 11513, 8055, 11513, 3919, 13259, 7056, - 15725, 20241, 8851, 11513, 8055, 11513, 7849, 18303, 7056, - 15725, 20241, 8851, 11513, 8055, 11513, 8851, 18303, 7056, - 15725, 20241, 8851, 11513, 8055, 18303, 7056, - 15725, 20241, 8851, 11513, 8055, 20171, 7056, - 15725, 20241, 8851, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 8851, 11513, 8851, 20171, 7056, - 15725, 20241, 9439, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 9439, 11513, 1683, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 9439, 11513, 1683, 11513, 8851, 18303, 7056, - 15725, 20241, 9439, 11513, 1683, 18303, 7056, - 15725, 20241, 9439, 11513, 1683, 20171, 7056, - 15725, 20241, 9439, 11513, 1711, 16635, 7056, - 15725, 20241, 9439, 11513, 1711, 18303, 7056, - 15725, 20241, 9439, 11513, 3063, 13259, 7056, - 15725, 20241, 9439, 11513, 3919, 13259, 7056, - 15725, 20241, 9439, 11513, 3919, 20171, 7056, - 15725, 20241, 9439, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 9439, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 9439, 11513, 7849, 11513, 1683, 13259, 7056, - 15725, 20241, 9439, 11513, 7849, 11513, 1683, 18303, 7056, - 15725, 20241, 9439, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 9439, 11513, 7849, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 9439, 11513, 7849, 11513, 8851, 13259, 7056, - 15725, 20241, 9439, 11513, 7849, 11513, 8851, 18303, 7056, - 15725, 20241, 9439, 11513, 7849, 18303, 7056, - 15725, 20241, 9439, 11513, 7849, 20171, 7056, - 15725, 20241, 9439, 11513, 8055, 18303, 7056, - 15725, 20241, 9439, 11513, 8055, 20171, 7056, - 15725, 20241, 9439, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 9439, 11513, 8851, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 9439, 11513, 8851, 13259, 7056, - 15725, 20241, 9439, 11513, 8851, 16635, 7056, - 15725, 20241, 9439, 11513, 8851, 18303, 7056, - 15725, 20241, 9439, 11513, 8851, 20171, 7056, - 15725, 20241, 9439, 11513, 9439, 13259, 7056, - 15725, 20241, 9439, 11513, 11813, 13259, 7056, - 15725, 20241, 9967, 11267, 93, 18381, 10697, 10575, 20171, 7056, - 15725, 20241, 10085, 17673, 900, - 15725, 20241, 10085, 17673, 12382, - 15725, 20241, 10085, 17673, 12384, - 15725, 20241, 10085, 17673, 17684, - 15725, 20241, 10085, 17673, 17686, - 15725, 20241, 10419, 11513, 1683, 11513, 7849, 18303, 7056, - 15725, 20241, 10419, 11513, 1683, 16635, 7056, - 15725, 20241, 10419, 11513, 1683, 18303, 7056, - 15725, 20241, 10419, 11513, 1683, 20171, 7056, - 15725, 20241, 10419, 11513, 1711, 16635, 7056, - 15725, 20241, 10419, 11513, 1711, 18303, 7056, - 15725, 20241, 10419, 11513, 3063, 13259, 7056, - 15725, 20241, 10419, 11513, 3063, 20171, 7056, - 15725, 20241, 10419, 11513, 3919, 13259, 7056, - 15725, 20241, 10419, 11513, 3919, 20171, 7056, - 15725, 20241, 10419, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 10419, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 10419, 11513, 7849, 11513, 1683, 18303, 7056, - 15725, 20241, 10419, 11513, 7849, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 10419, 11513, 7849, 16635, 7056, - 15725, 20241, 10419, 11513, 7849, 18303, 7056, - 15725, 20241, 10419, 11513, 7849, 20171, 7056, - 15725, 20241, 10419, 11513, 8055, 11513, 3919, 13259, 7056, - 15725, 20241, 10419, 11513, 8055, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 10419, 11513, 8055, 16635, 7056, - 15725, 20241, 10419, 11513, 8055, 18303, 7056, - 15725, 20241, 10419, 11513, 8055, 20171, 7056, - 15725, 20241, 10419, 11513, 8851, 11513, 1683, 13259, 7056, - 15725, 20241, 10419, 11513, 8851, 11513, 1683, 18303, 7056, - 15725, 20241, 10419, 11513, 8851, 11513, 7849, 18303, 7056, - 15725, 20241, 10419, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 10419, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 10419, 11513, 8851, 16635, 7056, - 15725, 20241, 10419, 11513, 8851, 18303, 7056, - 15725, 20241, 10419, 11513, 8851, 20171, 7056, - 15725, 20241, 10929, 11513, 23679, 5483, 20171, 7056, - 15725, 20241, 10941, 11513, 1711, 16635, 7056, - 15725, 20241, 10941, 11513, 3063, 13259, 7056, - 15725, 20241, 10941, 11513, 3919, 13259, 7056, - 15725, 20241, 10941, 11513, 3919, 20171, 7056, - 15725, 20241, 10941, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 10941, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 10941, 11513, 7849, 20171, 7056, - 15725, 20241, 10941, 11513, 8851, 13259, 7056, - 15725, 20241, 10941, 11513, 8851, 16635, 7056, - 15725, 20241, 10941, 11513, 8851, 18303, 7056, - 15725, 20241, 10941, 11513, 8851, 20171, 7056, - 15725, 20241, 10941, 11513, 9439, 13259, 7056, - 15725, 20241, 10941, 11513, 11813, 13259, 7056, - 15725, 20241, 12347, 20171, 7056, - 15725, 20241, 12365, 20171, 7056, - 15725, 20241, 13371, 11513, 3919, 13259, 7056, - 15725, 20241, 13371, 11513, 3919, 20171, 7056, - 15725, 20241, 13371, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 13371, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 13371, 11513, 7849, 18303, 7056, - 15725, 20241, 13371, 11513, 7849, 20171, 7056, - 15725, 20241, 13371, 11513, 8851, 11513, 3919, 13259, 7056, - 15725, 20241, 13371, 11513, 8851, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 13371, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 13371, 11513, 8851, 18303, 7056, - 15725, 20241, 13371, 11513, 8851, 20171, 7056, - 15725, 20241, 14735, 20171, 7056, - 15725, 20241, 14737, 11267, 93, 18381, 10697, 10575, 20171, 7056, - 15725, 20241, 14737, 20171, 7056, - 15725, 20241, 14803, 11513, 1683, 11513, 3919, 13259, 7056, - 15725, 20241, 14803, 11513, 1683, 11513, 8851, 13259, 7056, - 15725, 20241, 14803, 11513, 1683, 11513, 8851, 18303, 7056, - 15725, 20241, 14803, 11513, 1683, 13259, 7056, - 15725, 20241, 14803, 11513, 1683, 16635, 7056, - 15725, 20241, 14803, 11513, 1683, 18303, 7056, - 15725, 20241, 14803, 11513, 1683, 20171, 7056, - 15725, 20241, 14803, 11513, 1711, 16635, 7056, - 15725, 20241, 14803, 11513, 1711, 18303, 7056, - 15725, 20241, 14803, 11513, 3063, 13259, 7056, - 15725, 20241, 14803, 11513, 3063, 20171, 7056, - 15725, 20241, 14803, 11513, 3919, 13259, 7056, - 15725, 20241, 14803, 11513, 3919, 20171, 7056, - 15725, 20241, 14803, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 14803, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 14803, 11513, 7849, 11513, 3919, 13259, 7056, - 15725, 20241, 14803, 11513, 7849, 13259, 7056, - 15725, 20241, 14803, 11513, 7849, 16635, 7056, - 15725, 20241, 14803, 11513, 7849, 18303, 7056, - 15725, 20241, 14803, 11513, 7849, 20171, 7056, - 15725, 20241, 14803, 11513, 8055, 13259, 7056, - 15725, 20241, 14803, 11513, 8055, 16635, 7056, - 15725, 20241, 14803, 11513, 8055, 18303, 7056, - 15725, 20241, 14803, 11513, 8055, 20171, 7056, - 15725, 20241, 14803, 11513, 8851, 11513, 8055, 13259, 7056, - 15725, 20241, 14803, 11513, 8851, 11513, 8055, 18303, 7056, - 15725, 20241, 14803, 11513, 8851, 11513, 8851, 13259, 7056, - 15725, 20241, 14803, 11513, 8851, 11513, 8851, 18303, 7056, - 15725, 20241, 14803, 11513, 8851, 13259, 7056, - 15725, 20241, 14803, 11513, 8851, 16635, 7056, - 15725, 20241, 14803, 11513, 8851, 18303, 7056, - 15725, 20241, 14803, 11513, 8851, 20171, 7056, - 15725, 20241, 15695, 20171, 7056, - 15725, 20241, 15697, 21024, - 15725, 20241, 15697, 22185, 23020, - 15725, 20241, 17011, 20171, 7056, - 15725, 20241, 17117, 11513, 13015, 16635, 7056, - 15725, 20241, 17117, 11513, 13015, 20171, 7056, - 15725, 20241, 17117, 11513, 13241, 16635, 7056, - 15725, 20241, 17117, 11513, 13241, 20171, 7056, - 15725, 20241, 17117, 11513, 13661, 16635, 7056, - 15725, 20241, 17117, 11513, 13661, 20171, 7056, - 15725, 20241, 17117, 11513, 19761, 20171, 7056, - 15725, 20241, 17117, 11513, 20191, 20171, 7056, - 15725, 20241, 17117, 11513, 23679, 5483, 20171, 7056, - 15725, 20241, 17499, 18369, 3919, 11513, 13457, 12319, 11513, 5483, 18559, 13259, 7056, - 15725, 20241, 17499, 18369, 3919, 11513, 13457, 12319, 11513, 5483, 18559, 18303, 7056, - 15725, 20241, 17499, 18369, 3919, 11513, 13457, 12319, 11513, 5483, 18559, 20171, 7056, - 15725, 20241, 17663, 21024, - 15725, 20241, 17665, 21024, - 15725, 20241, 18953, 17172, - 15725, 20241, 20321, 20171, 7056, - 15725, 20241, 20555, 15700, - 15725, 20241, 20953, 20171, 7056, - 15725, 20241, 20999, 21024, - 15725, 20241, 21065, 21021, 21018, - 15725, 20241, 21783, 15700, - 15725, 20241, 21825, 17666, - 15725, 20241, 22023, 23018, - 15725, 20241, 22839, 15697, 22119, 22116, - 15725, 20241, 22949, 739, 19238, - 15725, 20241, 23595, 15697, 20946, - 15725, 20241, 23597, 15695, 20952, - 15725, 20241, 28050, - 15725, 20549, 8808, - 15725, 20587, 13014, - 15725, 20933, 10856, - 15725, 20978, - 15725, 21127, 5483, 18782, - 15725, 21844, - 15725, 21927, 5482, - 15725, 22045, 21850, - 15725, 23679, 5483, 21596, - 15725, 23909, 880, - 15725, 23909, 988, - 15725, 23909, 1192, - 15725, 23909, 1200, - 15725, 23909, 1462, - 15725, 23909, 1682, - 15725, 23909, 1988, - 15725, 23909, 2202, - 15725, 23909, 2926, - 15725, 23909, 3062, - 15725, 23909, 3174, - 15725, 23909, 3372, - 15725, 23909, 3408, - 15725, 23909, 3750, - 15725, 23909, 3918, - 15725, 23909, 4020, - 15725, 23909, 5482, - 15725, 23909, 7848, - 15725, 23909, 8054, - 15725, 23909, 8850, - 15725, 23909, 9438, - 15725, 23909, 10418, - 15725, 23909, 10928, - 15725, 23909, 10940, - 15725, 23909, 11812, - 15725, 23909, 13370, - 15725, 23909, 14802, - 15725, 23909, 16573, 880, - 15725, 23909, 16573, 988, - 15725, 23909, 16573, 1192, - 15725, 23909, 16573, 1200, - 15725, 23909, 16573, 1462, - 15725, 23909, 16573, 1682, - 15725, 23909, 16573, 1710, - 15725, 23909, 16573, 2202, - 15725, 23909, 16573, 2926, - 15725, 23909, 16573, 3062, - 15725, 23909, 16573, 3174, - 15725, 23909, 16573, 3372, - 15725, 23909, 16573, 3408, - 15725, 23909, 16573, 3750, - 15725, 23909, 16573, 3918, - 15725, 23909, 16573, 4020, - 15725, 23909, 16573, 5482, - 15725, 23909, 16573, 7848, - 15725, 23909, 16573, 8054, - 15725, 23909, 16573, 8850, - 15725, 23909, 16573, 9438, - 15725, 23909, 16573, 10418, - 15725, 23909, 16573, 10928, - 15725, 23909, 16573, 10940, - 15725, 23909, 16573, 11812, - 15725, 23909, 16573, 13370, - 15725, 23909, 16573, 14802, - 15725, 23909, 17311, 880, - 15725, 23909, 17311, 1192, - 15725, 23909, 17311, 1682, - 15725, 23909, 17311, 2202, - 15725, 23909, 17311, 2926, - 15725, 23909, 17311, 3174, - 15725, 23909, 17311, 3918, - 15725, 23909, 17311, 7848, - 15725, 23909, 17311, 8054, - 15725, 23909, 17311, 9438, - 15725, 23909, 17311, 10418, - 15725, 23909, 17311, 13370, - 15725, 23909, 17311, 14802, - 15725, 23909, 17311, 18019, 2926, - 15725, 23909, 17311, 18019, 9438, - 15725, 23909, 18019, 988, - 15725, 23909, 18019, 1462, - 15725, 23909, 18019, 2926, - 15725, 23909, 18019, 9438, - 15725, 23909, 18303, 880, - 15725, 23909, 18303, 988, - 15725, 23909, 18303, 1192, - 15725, 23909, 18303, 1462, - 15725, 23909, 18303, 1682, - 15725, 23909, 18303, 1710, - 15725, 23909, 18303, 1988, - 15725, 23909, 18303, 2202, - 15725, 23909, 18303, 2926, - 15725, 23909, 18303, 3174, - 15725, 23909, 18303, 3408, - 15725, 23909, 18303, 3918, - 15725, 23909, 18303, 7848, - 15725, 23909, 18303, 8054, - 15725, 23909, 18303, 8850, - 15725, 23909, 18303, 9438, - 15725, 23909, 18303, 10418, - 15725, 23909, 18303, 10940, - 15725, 23909, 18303, 13370, - 15725, 23909, 18303, 14802, - 15725, 23909, 20407, 1683, 11513, 1200, - 15725, 23909, 20407, 8851, 11513, 1683, 11513, 19256, - 15725, 23909, 21911, 880, - 15725, 23909, 21911, 988, - 15725, 23909, 21911, 1192, - 15725, 23909, 21911, 1462, - 15725, 23909, 21911, 1682, - 15725, 23909, 21911, 1710, - 15725, 23909, 21911, 1988, - 15725, 23909, 21911, 2926, - 15725, 23909, 21911, 3174, - 15725, 23909, 21911, 3372, - 15725, 23909, 21911, 3408, - 15725, 23909, 21911, 3918, - 15725, 23909, 21911, 4020, - 15725, 23909, 21911, 7848, - 15725, 23909, 21911, 8054, - 15725, 23909, 21911, 8850, - 15725, 23909, 21911, 9438, - 15725, 23909, 21911, 10418, - 15725, 23909, 21911, 10940, - 15725, 23909, 21911, 13370, - 15725, 23909, 21911, 14802, - 15725, 23909, 21911, 18019, 988, - 15725, 23909, 21911, 18019, 1462, - 15725, 23909, 25761, 880, - 15725, 23909, 25761, 988, - 15725, 23909, 25761, 1192, - 15725, 23909, 25761, 1200, - 15725, 23909, 25761, 1462, - 15725, 23909, 25761, 1682, - 15725, 23909, 25761, 2202, - 15725, 23909, 25761, 2926, - 15725, 23909, 25761, 3062, - 15725, 23909, 25761, 3174, - 15725, 23909, 25761, 3372, - 15725, 23909, 25761, 3408, - 15725, 23909, 25761, 3750, - 15725, 23909, 25761, 3918, - 15725, 23909, 25761, 4020, - 15725, 23909, 25761, 7848, - 15725, 23909, 25761, 8054, - 15725, 23909, 25761, 8850, - 15725, 23909, 25761, 9438, - 15725, 23909, 25761, 10418, - 15725, 23909, 25761, 10928, - 15725, 23909, 25761, 10940, - 15725, 23909, 25761, 11812, - 15725, 23909, 25761, 13370, - 15725, 23909, 25761, 14802, - 15745, 18794, - 15764, - 15771, 14828, - 15773, 46, - 15773, 1036, - 15773, 1037, 11513, 46, - 15773, 1037, 11513, 6101, 12658, - 15773, 1037, 11513, 6101, 17089, 46, - 15773, 1037, 11513, 12658, - 15773, 1037, 11513, 13807, 46, - 15773, 1037, 11513, 15772, - 15773, 1037, 11513, 17089, 46, - 15773, 6101, 17089, 46, - 15773, 17089, 46, - 15778, - 15783, 9906, - 15790, - 15793, 16107, 14258, - 15793, 21027, 18655, 14258, - 15793, 21881, 14258, - 15793, 22273, 18655, 14258, - 15794, - 15796, - 15810, - 15813, 1086, - 15819, 2266, - 15825, 11513, 18897, 6362, - 15827, 917, 24193, 12414, - 15827, 7429, 8281, 23522, - 15827, 7429, 12525, 15938, - 15827, 7429, 14659, 23522, - 15827, 7429, 20156, - 15827, 7429, 20711, 16890, - 15827, 7429, 23301, 14670, - 15827, 7429, 23301, 17049, 18176, - 15827, 7429, 23301, 17049, 18178, - 15827, 7429, 24077, 14670, - 15827, 7429, 24077, 17049, 18176, - 15827, 7429, 24077, 17049, 18178, - 15827, 7429, 26001, 14670, - 15827, 7429, 26001, 17049, 18176, - 15827, 7429, 26001, 17049, 18178, - 15827, 7429, 26001, 17049, 18180, - 15827, 7429, 26001, 17049, 18182, - 15827, 8281, 6366, - 15827, 8281, 7429, 17810, - 15827, 8281, 15974, - 15827, 8281, 21527, 15287, 14659, 18951, 12525, 15938, - 15827, 12941, 17810, - 15827, 14659, 6366, - 15827, 14659, 7429, 17810, - 15827, 14659, 15974, - 15827, 14659, 21527, 15287, 8281, 18951, 12525, 15938, - 15827, 17225, 17810, - 15827, 17225, 17811, 9787, 3473, 17225, 17810, - 15827, 20847, 14811, 17810, - 15827, 21527, 15287, 7429, 12525, 15938, - 15827, 21527, 15287, 7429, 15453, 15938, - 15827, 23522, - 15830, - 15831, 11513, 8281, 7429, 12524, - 15831, 11513, 14659, 7429, 12524, - 15833, 13396, - 15835, 10575, 2757, 15053, 17534, - 15835, 10575, 19408, - 15835, 10575, 19540, - 15835, 10575, 23070, - 15835, 10575, 23288, - 15835, 10575, 23722, - 15835, 13016, - 15835, 13069, 2760, - 15835, 13069, 3240, - 15835, 13069, 3536, - 15835, 13069, 7036, - 15835, 13069, 7058, - 15835, 13069, 9358, - 15835, 13069, 11824, - 15835, 13069, 13150, - 15835, 13069, 14778, - 15835, 13069, 15116, - 15835, 15407, 10575, 8, - 15835, 15407, 10575, 16, - 15835, 15407, 10575, 28, - 15835, 15407, 10575, 40, - 15835, 15407, 10575, 58, - 15835, 15407, 10575, 72, - 15835, 15407, 10575, 96, - 15835, 15407, 10575, 314, - 15835, 15407, 10575, 706, - 15835, 15407, 10575, 2757, 15053, 14837, 8, - 15835, 15407, 10575, 2757, 15053, 14837, 28, - 15835, 15407, 10575, 19415, 22, - 15835, 15407, 10575, 19415, 34, - 15835, 15407, 10575, 19415, 406, - 15835, 15407, 10575, 19415, 608, - 15835, 15407, 10575, 23065, 58, - 15835, 16095, 13016, - 15835, 16531, 0, - 15835, 16531, 8, - 15835, 16531, 16, - 15835, 16531, 28, - 15835, 16531, 40, - 15835, 16531, 58, - 15835, 16531, 72, - 15835, 16531, 96, - 15835, 16531, 108, - 15835, 16531, 126, - 15835, 16531, 150, - 15835, 16531, 248, - 15835, 16531, 272, - 15835, 16531, 314, - 15835, 16531, 344, - 15835, 16531, 358, - 15835, 16531, 394, - 15835, 16531, 426, - 15835, 16531, 466, - 15835, 16531, 548, - 15835, 16531, 598, - 15835, 16531, 614, - 15835, 16531, 648, - 15835, 16531, 706, - 15835, 16531, 714, - 15835, 16531, 778, - 15835, 16531, 1000, - 15835, 16531, 1116, - 15835, 16531, 1214, - 15835, 16531, 1236, - 15835, 16531, 1588, - 15835, 16531, 1918, - 15835, 16531, 2036, - 15835, 16531, 2278, - 15835, 16531, 2574, - 15835, 16531, 2624, - 15835, 16531, 2698, - 15835, 16531, 2757, 15053, 2278, - 15835, 16531, 2757, 15053, 3118, - 15835, 16531, 2757, 15053, 8342, - 15835, 16531, 2757, 15053, 9422, - 15835, 16531, 2757, 15053, 14837, 8, - 15835, 16531, 2757, 15053, 14837, 28, - 15835, 16531, 2830, - 15835, 16531, 3212, - 15835, 16531, 3286, - 15835, 16531, 3422, - 15835, 16531, 3502, - 15835, 16531, 6572, - 15835, 16531, 11082, - 15835, 16531, 19415, 22, - 15835, 16531, 19415, 34, - 15835, 16531, 19415, 406, - 15835, 16531, 19415, 608, - 15835, 16787, 2760, - 15835, 16787, 2761, 18280, - 15835, 16787, 2761, 20828, - 15835, 16787, 3240, - 15835, 16787, 3412, - 15835, 16787, 3536, - 15835, 16787, 7036, - 15835, 16787, 7058, - 15835, 16787, 9358, - 15835, 16787, 13150, - 15835, 16787, 13254, - 15835, 16787, 13284, - 15835, 16787, 14778, - 15835, 16787, 14876, - 15835, 16787, 15116, - 15835, 16787, 16108, - 15835, 16787, 16402, - 15835, 16787, 16744, - 15835, 16787, 17372, - 15835, 16787, 17474, - 15835, 16787, 19070, - 15835, 17534, - 15835, 23555, 1290, - 15835, 23555, 8320, - 15835, 23555, 13832, - 15835, 23555, 16095, 1290, - 15835, 23555, 19739, 964, - 15843, 95, 14166, - 15844, - 15847, 964, - 15847, 13470, - 15847, 15939, 11513, 21647, 12414, - 15851, 3404, - 15852, - 15858, - 15859, 20406, - 15860, - 15864, - 15866, - 15867, 11513, 13266, - 15871, 3370, - 15872, - 15874, - 15879, 7048, - 15885, 16531, 0, - 15885, 16531, 2, - 15885, 16531, 6, - 15885, 16531, 8, - 15885, 16531, 12, - 15885, 16531, 16, - 15885, 16531, 20, - 15885, 16531, 22, - 15885, 16531, 24, - 15885, 16531, 26, - 15885, 16531, 28, - 15885, 16531, 30, - 15885, 16531, 32, - 15885, 16531, 34, - 15885, 16531, 36, - 15885, 16531, 38, - 15885, 16531, 40, - 15885, 16531, 46, - 15885, 16531, 54, - 15885, 16531, 148, - 15885, 16531, 176, - 15885, 16531, 246, - 15885, 16531, 314, - 15885, 16531, 356, - 15885, 16531, 396, - 15885, 16531, 428, - 15885, 16531, 468, - 15885, 16531, 474, - 15885, 16531, 484, - 15885, 16531, 546, - 15885, 16531, 608, - 15885, 16531, 622, - 15885, 16531, 634, - 15885, 16531, 636, - 15885, 16531, 666, - 15885, 16531, 706, - 15885, 16531, 2228, - 15885, 16531, 2386, - 15885, 16531, 2388, - 15885, 16531, 2390, - 15885, 16531, 3210, - 15885, 16531, 3298, - 15885, 16531, 3500, - 15885, 16531, 3646, - 15885, 16531, 6152, - 15885, 16531, 6154, - 15885, 16531, 11274, - 15885, 16531, 11276, - 15885, 16531, 11278, - 15886, - 15890, - 15899, 12934, - 15901, 8321, 17298, - 15906, - 15909, 29, 8808, - 15909, 97, 8808, - 15909, 10575, 19408, - 15909, 10575, 19540, - 15909, 10575, 23070, - 15909, 13016, - 15909, 13069, 2760, - 15909, 13069, 3240, - 15909, 13069, 3536, - 15909, 13069, 7036, - 15909, 13069, 7058, - 15909, 13069, 9358, - 15909, 13069, 11824, - 15909, 13069, 13150, - 15909, 13069, 14778, - 15909, 13069, 15116, - 15909, 15407, 10575, 0, - 15909, 15407, 10575, 8, - 15909, 15407, 10575, 16, - 15909, 15407, 10575, 28, - 15909, 15407, 10575, 40, - 15909, 15407, 10575, 58, - 15909, 15407, 10575, 72, - 15909, 15407, 10575, 96, - 15909, 15407, 10575, 194, - 15909, 15407, 10575, 314, - 15909, 15407, 10575, 512, - 15909, 15407, 10575, 706, - 15909, 16095, 13016, - 15909, 16531, 8, - 15909, 16531, 16, - 15909, 16531, 40, - 15909, 16531, 58, - 15909, 16531, 950, - 15909, 16531, 1076, - 15909, 16531, 1190, - 15909, 16531, 1526, - 15909, 16531, 1678, - 15909, 16531, 1902, - 15909, 16531, 1982, - 15909, 16531, 2190, - 15909, 16531, 2360, - 15909, 16531, 2512, - 15909, 16531, 2788, - 15909, 16531, 3028, - 15909, 16531, 3172, - 15909, 16531, 3364, - 15909, 16531, 3654, - 15909, 16531, 3736, - 15909, 16531, 3870, - 15909, 16531, 6068, - 15909, 16531, 6258, - 15909, 16531, 6554, - 15909, 16531, 6636, - 15909, 16531, 7288, - 15909, 16531, 7852, - 15909, 16531, 8048, - 15909, 16531, 8292, - 15909, 16531, 9258, - 15909, 16531, 9412, - 15909, 16531, 9546, - 15909, 16531, 9852, - 15909, 16531, 10922, - 15909, 16531, 11076, - 15909, 16531, 11774, - 15909, 16531, 13032, - 15909, 16531, 15228, - 15909, 17534, - 15909, 18540, - 15909, 19057, 8808, - 15909, 20549, 8808, - 15917, 15444, - 15923, 17794, - 15928, - 15934, - 15936, - 15939, 11513, 889, 1057, 15287, 8281, 20543, 12524, - 15939, 11513, 3537, 22495, 19207, 661, 3425, 14658, - 15939, 11513, 8281, 7429, 12524, - 15939, 11513, 13839, 7429, 12524, - 15939, 11513, 14659, 7429, 12524, - 15939, 11513, 14911, 15939, 661, 3425, 14658, - 15939, 11513, 15287, 7429, 12524, - 15939, 11513, 15287, 14659, 20543, 12524, - 15939, 11513, 20933, 7022, - 15939, 11513, 22495, 964, - 15939, 11513, 24151, 46, - 15939, 18009, 125, 22495, 965, 897, 3473, 7429, 18009, 125, 20933, 964, - 15941, 10906, - 15949, 6108, - 15949, 8345, 11513, 2034, - 15949, 15283, 11513, 17106, - 15949, 15283, 11513, 17107, 897, 14913, 18932, - 15949, 17272, - 15949, 17273, 529, 13177, 660, - 15949, 18553, 11513, 17007, 7038, - 15949, 18553, 11513, 18533, 7038, - 15949, 20764, - 15949, 20765, 529, 13177, 660, - 15949, 20916, - 15949, 23883, 11513, 17106, - 15958, - 15967, 10144, - 15968, - 15973, 2757, 16785, 7073, 10696, - 15973, 2757, 16785, 15391, 18010, - 15973, 2757, 16785, 16055, 20549, 8808, - 15973, 2757, 16785, 20149, 20549, 8808, - 15973, 7073, 10696, - 15973, 13173, 13069, 2760, - 15973, 13173, 13069, 3240, - 15973, 13173, 13069, 3536, - 15973, 13173, 13069, 7036, - 15973, 13173, 13069, 7058, - 15973, 13173, 13069, 9358, - 15973, 13173, 13069, 13150, - 15973, 13173, 13069, 14778, - 15973, 13173, 13069, 15116, - 15973, 13173, 16787, 2761, 18280, - 15973, 13173, 16787, 3241, 18280, - 15973, 13173, 16787, 3412, - 15973, 13173, 16787, 3537, 18280, - 15973, 13173, 16787, 7037, 18280, - 15973, 13173, 16787, 7059, 18280, - 15973, 13173, 16787, 9359, 18280, - 15973, 13173, 16787, 13151, 18280, - 15973, 13173, 16787, 13254, - 15973, 13173, 16787, 13284, - 15973, 13173, 16787, 14779, 18280, - 15973, 13173, 16787, 14876, - 15973, 13173, 16787, 15117, 18280, - 15973, 13173, 16787, 16108, - 15973, 13173, 16787, 16744, - 15973, 13173, 16787, 17372, - 15973, 13173, 16787, 17474, - 15973, 13173, 16787, 19070, - 15973, 13173, 22045, 8808, - 15973, 14911, 16531, 28, - 15973, 14911, 16531, 234, - 15973, 14911, 16531, 440, - 15973, 14911, 16531, 478, - 15973, 14911, 16531, 562, - 15973, 14911, 16531, 606, - 15973, 14911, 16531, 674, - 15973, 14911, 16531, 1226, - 15973, 14911, 16531, 1370, - 15973, 14911, 16531, 1464, - 15973, 14911, 16531, 2040, - 15973, 14911, 16531, 2122, - 15973, 14911, 16531, 2757, 15973, 272, - 15973, 14911, 16531, 2757, 15973, 880, - 15973, 14911, 16531, 2757, 15973, 1262, - 15973, 14911, 16531, 2757, 15973, 1412, - 15973, 14911, 16531, 2757, 15973, 1698, - 15973, 14911, 16531, 2757, 15973, 1712, - 15973, 14911, 16531, 2757, 15973, 2774, - 15973, 14911, 16531, 2757, 15973, 7668, - 15973, 14911, 16531, 2757, 15973, 10460, - 15973, 14911, 16531, 2757, 15973, 14822, - 15973, 14911, 16531, 2757, 15973, 16230, - 15973, 14911, 16531, 2757, 16785, 2580, - 15973, 14911, 16531, 2757, 16785, 2704, - 15973, 14911, 16531, 2757, 16785, 3748, - 15973, 14911, 16531, 2757, 16785, 14822, - 15973, 14911, 16531, 2774, - 15973, 14911, 16531, 2882, - 15973, 14911, 16531, 3268, - 15973, 14911, 16531, 3394, - 15973, 14911, 16531, 5484, - 15973, 14911, 16531, 7440, - 15973, 14911, 16531, 7668, - 15973, 14911, 16531, 8000, - 15973, 14911, 16531, 8066, - 15973, 14911, 16531, 10460, - 15973, 14911, 16531, 10582, - 15973, 14911, 16531, 11380, - 15973, 14911, 16531, 11818, - 15973, 14911, 16531, 13010, - 15973, 14911, 16531, 13332, - 15973, 14911, 16531, 13576, - 15973, 14911, 16531, 13784, - 15973, 14911, 16531, 14742, - 15973, 14911, 16531, 14822, - 15973, 14911, 16531, 16230, - 15973, 14911, 16531, 17368, - 15973, 14911, 16531, 17931, 10460, - 15973, 14911, 16531, 19521, 8066, - 15973, 14911, 16531, 19627, 8066, - 15973, 14911, 16531, 20211, 272, - 15973, 14911, 16531, 21193, 478, - 15973, 14911, 16531, 21193, 5482, - 15973, 14911, 16531, 21193, 7668, - 15973, 14911, 16531, 21193, 8000, - 15973, 14911, 16531, 25753, 478, - 15973, 14911, 16531, 25753, 1370, - 15973, 14911, 16531, 25753, 10460, - 15973, 14911, 16531, 25753, 16230, - 15973, 17299, 441, 606, - 15973, 17299, 563, 606, - 15973, 17299, 1992, - 15973, 17299, 2041, 606, - 15973, 17299, 3395, 606, - 15973, 17299, 14823, 10582, - 15973, 17299, 19182, - 15973, 17835, 16531, 28, - 15973, 17835, 16531, 234, - 15973, 17835, 16531, 440, - 15973, 17835, 16531, 478, - 15973, 17835, 16531, 562, - 15973, 17835, 16531, 606, - 15973, 17835, 16531, 674, - 15973, 17835, 16531, 1226, - 15973, 17835, 16531, 1370, - 15973, 17835, 16531, 1464, - 15973, 17835, 16531, 2040, - 15973, 17835, 16531, 2122, - 15973, 17835, 16531, 2757, 15973, 272, - 15973, 17835, 16531, 2757, 15973, 880, - 15973, 17835, 16531, 2757, 15973, 1262, - 15973, 17835, 16531, 2757, 15973, 1412, - 15973, 17835, 16531, 2757, 15973, 1698, - 15973, 17835, 16531, 2757, 15973, 1712, - 15973, 17835, 16531, 2757, 15973, 2774, - 15973, 17835, 16531, 2757, 15973, 7668, - 15973, 17835, 16531, 2757, 15973, 10460, - 15973, 17835, 16531, 2757, 15973, 14822, - 15973, 17835, 16531, 2757, 15973, 16230, - 15973, 17835, 16531, 2757, 16785, 2580, - 15973, 17835, 16531, 2757, 16785, 2704, - 15973, 17835, 16531, 2757, 16785, 3748, - 15973, 17835, 16531, 2757, 16785, 14822, - 15973, 17835, 16531, 2774, - 15973, 17835, 16531, 2882, - 15973, 17835, 16531, 3268, - 15973, 17835, 16531, 3394, - 15973, 17835, 16531, 5484, - 15973, 17835, 16531, 7440, - 15973, 17835, 16531, 7668, - 15973, 17835, 16531, 8000, - 15973, 17835, 16531, 8066, - 15973, 17835, 16531, 10460, - 15973, 17835, 16531, 10582, - 15973, 17835, 16531, 11380, - 15973, 17835, 16531, 11818, - 15973, 17835, 16531, 13010, - 15973, 17835, 16531, 13332, - 15973, 17835, 16531, 13576, - 15973, 17835, 16531, 13784, - 15973, 17835, 16531, 14742, - 15973, 17835, 16531, 14822, - 15973, 17835, 16531, 16230, - 15973, 17835, 16531, 17368, - 15973, 17835, 16531, 17931, 10460, - 15973, 17835, 16531, 19521, 8066, - 15973, 17835, 16531, 19627, 8066, - 15973, 17835, 16531, 20211, 272, - 15973, 17835, 16531, 21193, 478, - 15973, 17835, 16531, 21193, 5482, - 15973, 17835, 16531, 21193, 7668, - 15973, 17835, 16531, 21193, 8000, - 15973, 17835, 16531, 25753, 478, - 15973, 17835, 16531, 25753, 1370, - 15973, 17835, 16531, 25753, 10460, - 15973, 17835, 16531, 25753, 16230, - 15973, 20055, 2761, 7428, - 15973, 21127, 479, 12318, - 15973, 21127, 20693, 12422, - 15973, 21127, 20693, 13800, - 15973, 25825, 18010, - 15979, 11513, 13470, - 15985, 6222, - 15990, - 15993, 1091, 6996, - 15993, 6996, - 15994, - 16001, 10693, 21729, 10575, 20412, - 16006, - 16007, 11513, 8281, 13426, - 16007, 11513, 14659, 13426, - 16007, 13714, - 16014, - 16019, 2301, 8320, - 16019, 20422, - 16019, 28089, 22837, 12414, - 16025, 10574, - 16025, 17850, - 16025, 22444, - 16032, - 16033, 16388, - 16045, 22544, - 16051, 1493, 13140, - 16051, 1493, 13543, 13140, - 16051, 1493, 16529, 3942, - 16051, 1493, 16529, 11648, - 16051, 1493, 18089, 13542, - 16051, 1493, 18089, 16324, - 16051, 1493, 18229, 3942, - 16051, 1493, 18229, 11648, - 16051, 1493, 20111, 13140, - 16055, 1740, - 16055, 17939, 17299, 7057, 3536, - 16059, 8814, - 16067, 10574, - 16071, 10991, 20933, 5966, - 16071, 10991, 22495, 5966, - 16071, 10991, 26192, - 16071, 10991, 26194, - 16071, 10991, 26196, - 16071, 10991, 26198, - 16071, 10991, 26200, - 16071, 10991, 26202, - 16071, 10991, 26204, - 16071, 10991, 26206, - 16071, 10991, 26208, - 16071, 10991, 26210, - 16071, 10991, 26212, - 16071, 10991, 26214, - 16071, 10991, 26216, - 16071, 10991, 26218, - 16071, 10991, 26220, - 16071, 10991, 26222, - 16071, 10991, 26224, - 16071, 10991, 26226, - 16071, 10991, 26228, - 16071, 10991, 26230, - 16071, 10991, 26232, - 16071, 10991, 26234, - 16071, 10991, 26236, - 16071, 10991, 26238, - 16071, 10991, 26240, - 16071, 10991, 26242, - 16071, 10991, 26244, - 16071, 10991, 26246, - 16071, 10991, 26248, - 16071, 10991, 26250, - 16071, 10991, 26252, - 16071, 10991, 26254, - 16071, 10991, 26256, - 16071, 10991, 26258, - 16071, 10991, 26260, - 16071, 10991, 26262, - 16071, 10991, 26264, - 16071, 10991, 26266, - 16071, 10991, 26268, - 16071, 10991, 26270, - 16071, 10991, 26272, - 16071, 10991, 26274, - 16071, 10991, 26276, - 16071, 10991, 26278, - 16071, 10991, 26280, - 16071, 10991, 26282, - 16071, 10991, 26284, - 16071, 10991, 26286, - 16071, 10991, 26288, - 16071, 10991, 36096, - 16071, 10991, 36098, - 16071, 10991, 36100, - 16071, 10991, 36102, - 16071, 10991, 36104, - 16071, 10991, 36106, - 16071, 10991, 36108, - 16071, 10991, 36110, - 16071, 10991, 36112, - 16071, 10991, 36114, - 16071, 10991, 36116, - 16071, 10991, 36118, - 16071, 10991, 36120, - 16071, 10991, 36122, - 16071, 10991, 36124, - 16071, 10991, 36126, - 16071, 10991, 36128, - 16071, 10991, 36130, - 16071, 10991, 36132, - 16071, 10991, 36134, - 16071, 10991, 36136, - 16071, 10991, 36138, - 16071, 10991, 36140, - 16071, 10991, 36142, - 16071, 10991, 36144, - 16071, 10991, 36146, - 16071, 10991, 36148, - 16071, 10991, 36150, - 16071, 10991, 36152, - 16071, 10991, 36154, - 16071, 10991, 36156, - 16071, 10991, 36158, - 16071, 10991, 36160, - 16071, 10991, 36162, - 16071, 10991, 36164, - 16071, 10991, 36166, - 16071, 10991, 36168, - 16071, 10991, 36170, - 16071, 10991, 36172, - 16071, 10991, 36174, - 16071, 10991, 36176, - 16071, 10991, 36178, - 16071, 10991, 36180, - 16071, 10991, 36182, - 16071, 10991, 36184, - 16071, 10991, 36186, - 16071, 10991, 36188, - 16071, 10991, 36190, - 16071, 10991, 36192, - 16072, - 16093, 8321, 6996, - 16093, 12934, - 16093, 13246, - 16093, 15938, - 16093, 16790, - 16093, 17224, - 16093, 19140, - 16093, 25959, 16614, - 16093, 26163, 12378, - 16095, 699, 10850, - 16095, 2301, 8320, - 16095, 6701, 10850, - 16095, 8281, 917, 23853, 17810, - 16095, 9904, - 16095, 11475, 20422, - 16095, 12321, 15678, - 16095, 12917, 13176, - 16095, 12941, 8356, - 16095, 13837, 21779, 8808, - 16095, 14570, - 16095, 14571, 21779, 8808, - 16095, 14659, 917, 21559, 17810, - 16095, 15282, - 16095, 16006, - 16095, 16358, - 16095, 16717, 21558, - 16095, 16717, 21559, 11513, 20920, - 16095, 16717, 23852, - 16095, 17225, 15282, - 16095, 17225, 23882, - 16095, 17265, 2643, 10574, - 16095, 17272, - 16095, 17881, 13069, 2760, - 16095, 17881, 13069, 3240, - 16095, 17881, 13069, 3536, - 16095, 17881, 13069, 7036, - 16095, 17881, 13069, 7058, - 16095, 17881, 13069, 9358, - 16095, 17881, 13069, 13150, - 16095, 17881, 13069, 14778, - 16095, 17881, 13069, 15116, - 16095, 17881, 16787, 3412, - 16095, 18529, 528, - 16095, 18529, 896, - 16095, 18741, 16358, - 16095, 19141, 20406, - 16095, 19171, 12922, - 16095, 20156, - 16095, 20520, - 16095, 20549, 8808, - 16095, 20760, - 16095, 20764, - 16095, 20933, 964, - 16095, 20933, 965, 8281, 22078, - 16095, 20933, 965, 16095, 8281, 22078, - 16095, 20933, 965, 16095, 14659, 22078, - 16095, 20933, 8320, - 16095, 22959, 8808, - 16095, 23213, 8808, - 16095, 23882, - 16095, 26129, 21779, 8808, - 16095, 28049, 21779, 8808, - 16096, - 16097, 6996, - 16105, 17298, - 16107, 9442, - 16121, 10574, - 16121, 10575, 897, 19121, 20454, - 16121, 10575, 897, 19121, 20455, 11513, 15141, 12318, - 16121, 10575, 11513, 1291, 12502, - 16121, 10575, 11513, 3537, 6697, 12319, 897, 3537, 6697, 12502, - 16121, 10575, 11513, 12583, 12318, - 16121, 10575, 11513, 20153, 12502, - 16121, 10575, 12319, 9905, 10574, - 16121, 10575, 12319, 15141, 20406, - 16121, 10575, 12319, 21557, 12414, - 16121, 10575, 12319, 22837, 12414, - 16121, 11513, 19574, - 16121, 12916, - 16126, - 16153, 8276, - 16154, - 16157, 21108, - 16159, 10574, - 16160, - 16163, 15450, - 16169, 6544, - 16169, 14932, - 16177, 9831, 20156, - 16179, 7433, 10574, - 16191, 15808, - 16197, 6672, - 16199, 13470, - 16200, - 16201, 18883, 12612, - 16201, 23555, 8808, - 16203, 6668, - 16203, 17076, - 16203, 17077, 11513, 12490, - 16203, 17077, 19443, 12490, - 16203, 19986, - 16206, - 16208, - 16210, - 16213, 23512, - 16219, 10184, - 16225, 13289, 10574, - 16225, 13292, - 16228, - 16236, - 16242, - 16251, 14517, 10574, - 16267, 10184, - 16269, 14966, - 16270, - 16274, - 16279, 16531, 1374, - 16279, 16531, 1914, - 16279, 16531, 5466, - 16279, 16531, 6532, - 16279, 16531, 7308, - 16279, 16531, 7422, - 16279, 16531, 7828, - 16279, 16531, 9359, 18280, - 16279, 16531, 11262, - 16279, 16531, 13234, - 16279, 16531, 13546, - 16279, 16531, 13584, - 16279, 16531, 13740, - 16279, 16531, 13766, - 16279, 16531, 13914, - 16279, 16531, 14446, - 16279, 16531, 14618, - 16279, 16531, 14748, - 16279, 16531, 15076, - 16279, 16531, 15464, - 16279, 16531, 15688, - 16279, 16531, 16704, - 16279, 16531, 16744, - 16279, 16531, 17374, - 16279, 16531, 17732, - 16279, 16531, 20430, - 16279, 16531, 20540, - 16282, - 16288, - 16295, 13691, 10575, 19540, - 16295, 13691, 10575, 20826, - 16295, 13691, 13069, 2760, - 16295, 13691, 13069, 3240, - 16295, 13691, 13069, 3536, - 16295, 13691, 13069, 7036, - 16295, 13691, 13069, 7058, - 16295, 13691, 13069, 9358, - 16295, 13691, 13069, 11824, - 16295, 13691, 13069, 13150, - 16295, 13691, 13069, 14778, - 16295, 13691, 13069, 15116, - 16295, 13691, 15407, 10575, 8, - 16295, 13691, 15407, 10575, 16, - 16295, 13691, 15407, 10575, 28, - 16295, 13691, 15407, 10575, 40, - 16295, 13691, 15407, 10575, 58, - 16295, 13691, 15407, 10575, 72, - 16295, 13691, 15407, 10575, 96, - 16295, 13691, 15407, 10575, 186, - 16295, 13691, 15407, 10575, 314, - 16295, 13691, 15407, 10575, 522, - 16295, 13691, 15407, 10575, 706, - 16295, 13691, 15407, 16525, 8808, - 16295, 13691, 16531, 0, - 16295, 13691, 16531, 108, - 16295, 13691, 16531, 126, - 16295, 13691, 16531, 150, - 16295, 13691, 16531, 248, - 16295, 13691, 16531, 272, - 16295, 13691, 16531, 344, - 16295, 13691, 16531, 358, - 16295, 13691, 16531, 394, - 16295, 13691, 16531, 426, - 16295, 13691, 16531, 466, - 16295, 13691, 16531, 548, - 16295, 13691, 16531, 598, - 16295, 13691, 16531, 614, - 16295, 13691, 16531, 648, - 16295, 13691, 16531, 714, - 16295, 13691, 16531, 778, - 16295, 13691, 16531, 1000, - 16295, 13691, 16531, 1116, - 16295, 13691, 16531, 1214, - 16295, 13691, 16531, 1236, - 16295, 13691, 16531, 1588, - 16295, 13691, 16531, 1918, - 16295, 13691, 16531, 2036, - 16295, 13691, 16531, 2574, - 16295, 13691, 16531, 2830, - 16295, 13691, 16531, 3422, - 16295, 13691, 16531, 3502, - 16295, 13691, 16531, 6572, - 16295, 13691, 16531, 11082, - 16295, 13691, 21143, 10575, 16635, 272, - 16295, 13691, 21143, 10575, 16635, 598, - 16295, 13691, 21143, 10575, 16635, 714, - 16295, 13691, 21143, 10575, 16635, 778, - 16308, - 16309, 897, 9870, - 16309, 897, 17162, - 16309, 897, 17590, - 16313, 16095, 1291, 11033, 8808, - 16313, 16172, - 16313, 16531, 0, - 16313, 16531, 8, - 16313, 16531, 16, - 16313, 16531, 28, - 16313, 16531, 40, - 16313, 16531, 66, - 16313, 16531, 206, - 16313, 16531, 218, - 16313, 16531, 504, - 16313, 16531, 738, - 16313, 16531, 744, - 16313, 16531, 750, - 16313, 16531, 778, - 16313, 16531, 780, - 16313, 16531, 782, - 16313, 16531, 786, - 16313, 16531, 790, - 16313, 16531, 3738, - 16313, 16531, 3764, - 16313, 16531, 3876, - 16313, 16531, 3922, - 16313, 16531, 10586, - 16313, 16531, 11718, - 16313, 16531, 11744, - 16313, 16531, 12402, - 16313, 16531, 12698, - 16313, 16531, 13484, - 16313, 16531, 13582, - 16313, 16531, 13994, - 16313, 16531, 14164, - 16313, 16531, 14538, - 16313, 16531, 14654, - 16313, 16531, 15538, - 16313, 16531, 15546, - 16313, 16531, 15726, - 16313, 16531, 16462, - 16313, 16531, 17384, - 16313, 16531, 17610, - 16313, 16531, 17616, - 16313, 16531, 17870, - 16313, 16531, 18362, - 16313, 16531, 18808, - 16313, 16531, 18860, - 16313, 16531, 19274, - 16313, 16531, 20964, - 16313, 16531, 21900, - 16313, 16531, 22564, - 16313, 16531, 22604, - 16313, 16531, 22768, - 16313, 16531, 22830, - 16313, 16531, 22904, - 16313, 16531, 22912, - 16313, 16531, 22914, - 16313, 16531, 22930, - 16313, 16531, 22932, - 16313, 16531, 22934, - 16313, 16531, 22938, - 16313, 16531, 22940, - 16313, 16531, 23292, - 16313, 16531, 23324, - 16313, 16531, 23358, - 16313, 16531, 23360, - 16313, 16531, 23536, - 16313, 16531, 23580, - 16313, 16531, 23582, - 16313, 16531, 23586, - 16313, 16531, 23654, - 16313, 16531, 23656, - 16313, 16531, 23664, - 16313, 16531, 23666, - 16313, 16531, 23734, - 16313, 16531, 23924, - 16313, 16531, 24044, - 16313, 16531, 24046, - 16313, 16531, 24072, - 16313, 16531, 24074, - 16313, 16531, 25800, - 16313, 16531, 25802, - 16313, 16531, 25820, - 16313, 16531, 25828, - 16313, 16531, 25898, - 16313, 16531, 25912, - 16313, 16531, 25914, - 16313, 16531, 25916, - 16313, 16531, 25972, - 16313, 16531, 28052, - 16313, 16531, 36212, - 16313, 16531, 36234, - 16313, 16531, 36250, - 16313, 16531, 36252, - 16313, 16531, 36254, - 16313, 16531, 36264, - 16313, 16531, 36282, - 16313, 17171, 1291, 11033, 8808, - 16313, 19691, 10586, - 16313, 19691, 12698, - 16313, 19691, 13484, - 16313, 19691, 13582, - 16313, 19691, 13994, - 16313, 19691, 14164, - 16313, 19691, 14538, - 16313, 19691, 14654, - 16313, 19691, 16172, - 16313, 19691, 16462, - 16313, 19691, 17384, - 16313, 19691, 17870, - 16313, 19691, 18362, - 16313, 19691, 18808, - 16313, 19691, 18860, - 16313, 19691, 19274, - 16313, 19691, 20964, - 16313, 19691, 21900, - 16313, 19691, 22488, - 16313, 19691, 22498, - 16313, 19691, 22564, - 16313, 19691, 22604, - 16313, 19691, 22768, - 16313, 19691, 22830, - 16313, 19691, 22904, - 16313, 19691, 22906, - 16313, 19691, 22908, - 16313, 19691, 22910, - 16313, 19691, 22912, - 16313, 19691, 22914, - 16313, 19691, 22916, - 16313, 19691, 22930, - 16313, 19691, 22932, - 16313, 19691, 22934, - 16313, 19691, 22938, - 16313, 19691, 22940, - 16313, 19691, 22942, - 16313, 19691, 23074, - 16313, 19691, 23260, - 16313, 19691, 23262, - 16313, 19691, 23264, - 16313, 19691, 23266, - 16313, 19691, 23268, - 16313, 19691, 23324, - 16313, 19691, 23358, - 16313, 19691, 23360, - 16313, 19691, 23362, - 16313, 19691, 23536, - 16313, 19691, 23538, - 16313, 19691, 23542, - 16313, 19691, 23578, - 16313, 19691, 23580, - 16313, 19691, 23582, - 16313, 19691, 23584, - 16313, 19691, 23586, - 16313, 19691, 23654, - 16313, 19691, 23656, - 16313, 19691, 23664, - 16313, 19691, 23666, - 16313, 19691, 23696, - 16313, 19691, 23734, - 16313, 19691, 23784, - 16313, 19691, 23874, - 16313, 19691, 23876, - 16313, 19691, 23914, - 16313, 19691, 23916, - 16313, 19691, 23922, - 16313, 19691, 23924, - 16313, 19691, 24044, - 16313, 19691, 24046, - 16313, 19691, 24072, - 16313, 19691, 24074, - 16313, 19691, 24124, - 16313, 19691, 24126, - 16313, 19691, 24130, - 16313, 19691, 24132, - 16313, 19691, 24140, - 16313, 19691, 24164, - 16313, 19691, 24166, - 16313, 19691, 24168, - 16313, 19691, 24170, - 16313, 19691, 24202, - 16313, 19691, 24204, - 16313, 19691, 25782, - 16313, 19691, 25786, - 16313, 19691, 25788, - 16313, 19691, 25790, - 16313, 19691, 25800, - 16313, 19691, 25802, - 16313, 19691, 25804, - 16313, 19691, 25806, - 16313, 19691, 25888, - 16313, 19691, 25890, - 16313, 19691, 25892, - 16313, 19691, 25894, - 16313, 19691, 25896, - 16313, 19691, 25898, - 16313, 19691, 25910, - 16313, 19691, 25956, - 16313, 19691, 26176, - 16313, 19691, 26302, - 16313, 19691, 28038, - 16313, 19691, 28040, - 16313, 19691, 28052, - 16313, 19691, 28068, - 16313, 19691, 28080, - 16313, 19691, 28100, - 16313, 19691, 36204, - 16313, 19691, 36206, - 16313, 19691, 36214, - 16313, 19691, 36216, - 16313, 19691, 36222, - 16313, 19691, 36238, - 16313, 19691, 36250, - 16313, 19691, 36252, - 16313, 19691, 36260, - 16313, 19691, 36262, - 16313, 19691, 36268, - 16313, 19691, 36276, - 16313, 19691, 36278, - 16313, 19691, 36282, - 16313, 19691, 36296, - 16313, 19691, 36332, - 16313, 19691, 36338, - 16313, 19691, 36346, - 16313, 21523, 10586, - 16313, 21523, 12698, - 16313, 21523, 13484, - 16313, 21523, 13582, - 16313, 21523, 13994, - 16313, 21523, 14164, - 16313, 21523, 14538, - 16313, 21523, 14654, - 16313, 21523, 16462, - 16313, 21523, 17384, - 16313, 21523, 17870, - 16313, 21523, 18362, - 16313, 21523, 18808, - 16313, 21523, 18860, - 16313, 21523, 19274, - 16313, 21523, 20964, - 16313, 21523, 21900, - 16313, 21523, 22564, - 16313, 21523, 22604, - 16313, 21523, 22768, - 16313, 21523, 22830, - 16313, 21523, 22904, - 16313, 21523, 22906, - 16313, 21523, 22910, - 16313, 21523, 22914, - 16313, 21523, 22916, - 16313, 21523, 22930, - 16313, 21523, 22934, - 16313, 21523, 22936, - 16313, 21523, 22938, - 16313, 21523, 22940, - 16313, 21523, 22942, - 16313, 21523, 23076, - 16313, 21523, 23246, - 16313, 21523, 23248, - 16313, 21523, 23250, - 16313, 21523, 23252, - 16313, 21523, 23292, - 16313, 21523, 23318, - 16313, 21523, 23320, - 16313, 21523, 23322, - 16313, 21523, 23324, - 16313, 21523, 23326, - 16313, 21523, 23358, - 16313, 21523, 23360, - 16313, 21523, 23364, - 16313, 21523, 23536, - 16313, 21523, 23538, - 16313, 21523, 23540, - 16313, 21523, 23544, - 16313, 21523, 23580, - 16313, 21523, 23582, - 16313, 21523, 23584, - 16313, 21523, 23586, - 16313, 21523, 23654, - 16313, 21523, 23656, - 16313, 21523, 23664, - 16313, 21523, 23666, - 16313, 21523, 23696, - 16313, 21523, 23734, - 16313, 21523, 23874, - 16313, 21523, 23890, - 16313, 21523, 23892, - 16313, 21523, 23894, - 16313, 21523, 23896, - 16313, 21523, 23914, - 16313, 21523, 23922, - 16313, 21523, 23924, - 16313, 21523, 24040, - 16313, 21523, 24046, - 16313, 21523, 24072, - 16313, 21523, 24074, - 16313, 21523, 24124, - 16313, 21523, 24128, - 16313, 21523, 24132, - 16313, 21523, 24164, - 16313, 21523, 24168, - 16313, 21523, 24170, - 16313, 21523, 25784, - 16313, 21523, 25800, - 16313, 21523, 25802, - 16313, 21523, 25804, - 16313, 21523, 25818, - 16313, 21523, 25820, - 16313, 21523, 25826, - 16313, 21523, 25828, - 16313, 21523, 25830, - 16313, 21523, 25878, - 16313, 21523, 25890, - 16313, 21523, 25892, - 16313, 21523, 25896, - 16313, 21523, 25910, - 16313, 21523, 25912, - 16313, 21523, 25914, - 16313, 21523, 25916, - 16313, 21523, 25942, - 16313, 21523, 25956, - 16313, 21523, 25972, - 16313, 21523, 26118, - 16313, 21523, 26120, - 16313, 21523, 26160, - 16313, 21523, 26180, - 16313, 21523, 26182, - 16313, 21523, 26290, - 16313, 21523, 26292, - 16313, 21523, 28052, - 16313, 21523, 28062, - 16313, 21523, 28066, - 16313, 21523, 28074, - 16313, 21523, 28096, - 16313, 21523, 28102, - 16313, 21523, 36200, - 16313, 21523, 36202, - 16313, 21523, 36210, - 16313, 21523, 36212, - 16313, 21523, 36218, - 16313, 21523, 36220, - 16313, 21523, 36232, - 16313, 21523, 36234, - 16313, 21523, 36244, - 16313, 21523, 36252, - 16313, 21523, 36254, - 16313, 21523, 36256, - 16313, 21523, 36258, - 16313, 21523, 36260, - 16313, 21523, 36264, - 16313, 21523, 36272, - 16313, 21523, 36284, - 16313, 21523, 36298, - 16313, 21523, 36300, - 16313, 21523, 36302, - 16313, 21523, 36304, - 16313, 21523, 36310, - 16313, 21523, 36312, - 16313, 21523, 36314, - 16313, 21523, 36328, - 16313, 21523, 36332, - 16313, 21523, 36334, - 16313, 21523, 36342, - 16313, 21523, 36350, - 16313, 21523, 36356, - 16313, 21525, 0, - 16313, 21525, 8, - 16313, 21525, 16, - 16313, 21525, 28, - 16313, 21525, 40, - 16313, 21525, 66, - 16313, 21525, 206, - 16313, 21525, 218, - 16313, 21525, 504, - 16313, 21525, 738, - 16313, 21525, 744, - 16313, 21525, 750, - 16313, 21525, 778, - 16313, 21525, 780, - 16313, 21525, 782, - 16313, 21525, 786, - 16313, 21525, 790, - 16313, 21525, 818, - 16313, 21525, 820, - 16313, 21525, 1846, - 16313, 21525, 1848, - 16313, 21525, 1850, - 16313, 21525, 1852, - 16313, 21525, 2726, - 16313, 21525, 2728, - 16313, 21525, 2730, - 16313, 21525, 3570, - 16313, 21525, 3572, - 16313, 21525, 3738, - 16313, 21525, 3764, - 16313, 21525, 3876, - 16313, 21525, 3922, - 16313, 21525, 4124, - 16313, 21525, 6854, - 16313, 21525, 6856, - 16313, 21525, 6870, - 16313, 21525, 6872, - 16313, 21525, 6874, - 16313, 21525, 6876, - 16313, 21525, 7746, - 16313, 21525, 7748, - 16313, 21525, 7750, - 16313, 21525, 7752, - 16313, 21525, 7754, - 16313, 21525, 9652, - 16313, 21525, 9654, - 16313, 21525, 9656, - 16313, 21525, 11150, - 16313, 21525, 11152, - 16313, 21525, 11624, - 16313, 21525, 11626, - 16313, 21525, 11690, - 16313, 21525, 11716, - 16313, 21525, 11718, - 16313, 21525, 11720, - 16313, 21525, 11740, - 16313, 21525, 11742, - 16313, 21525, 11744, - 16313, 21525, 11746, - 16313, 21525, 11748, - 16313, 21525, 12402, - 16313, 21525, 13168, - 16313, 21525, 13196, - 16313, 21525, 13198, - 16313, 21525, 13562, - 16313, 21525, 13564, - 16313, 21525, 13566, - 16313, 21525, 14362, - 16313, 21525, 14364, - 16313, 21525, 14366, - 16313, 21525, 15258, - 16313, 21525, 15260, - 16313, 21525, 15504, - 16313, 21525, 15520, - 16313, 21525, 15522, - 16313, 21525, 15534, - 16313, 21525, 15536, - 16313, 21525, 15538, - 16313, 21525, 15542, - 16313, 21525, 15544, - 16313, 21525, 15546, - 16313, 21525, 16172, - 16313, 21525, 16362, - 16313, 21525, 17600, - 16313, 21525, 17610, - 16313, 21525, 17612, - 16313, 21525, 17616, - 16313, 21525, 17698, - 16313, 21525, 17700, - 16313, 21525, 17702, - 16313, 21525, 17704, - 16313, 21525, 18284, - 16313, 21525, 19362, - 16313, 21525, 19554, - 16313, 21525, 22928, - 16315, 20593, 8809, 467, 16450, - 16315, 20593, 8809, 14726, - 16315, 20593, 10575, 10864, - 16315, 20593, 10575, 15058, - 16315, 20593, 10575, 17308, - 16315, 20593, 10575, 20100, - 16315, 20593, 13069, 2760, - 16315, 20593, 13069, 3240, - 16315, 20593, 13069, 3536, - 16315, 20593, 13069, 7036, - 16315, 20593, 13069, 7058, - 16315, 20593, 13069, 9358, - 16315, 20593, 13069, 11824, - 16315, 20593, 13069, 13150, - 16315, 20593, 13069, 14778, - 16315, 20593, 13069, 15116, - 16315, 20593, 15407, 0, - 16315, 20593, 15407, 8, - 16315, 20593, 15407, 16, - 16315, 20593, 15407, 28, - 16315, 20593, 15407, 40, - 16315, 20593, 16531, 0, - 16315, 20593, 16531, 108, - 16315, 20593, 16531, 126, - 16315, 20593, 16531, 150, - 16315, 20593, 16531, 228, - 16315, 20593, 16531, 248, - 16315, 20593, 16531, 272, - 16315, 20593, 16531, 344, - 16315, 20593, 16531, 358, - 16315, 20593, 16531, 394, - 16315, 20593, 16531, 426, - 16315, 20593, 16531, 466, - 16315, 20593, 16531, 548, - 16315, 20593, 16531, 598, - 16315, 20593, 16531, 614, - 16315, 20593, 16531, 648, - 16315, 20593, 16531, 714, - 16315, 20593, 16531, 738, - 16315, 20593, 16531, 778, - 16315, 20593, 16531, 796, - 16315, 20593, 16531, 1214, - 16315, 20593, 16531, 2036, - 16315, 20593, 16531, 2574, - 16315, 20593, 16531, 2698, - 16315, 20593, 16531, 3118, - 16315, 20593, 16531, 3212, - 16315, 20593, 16531, 3502, - 16315, 20593, 16531, 13707, 738, - 16315, 20593, 16531, 13707, 778, - 16317, 16531, 276, - 16317, 16531, 554, - 16317, 16531, 946, - 16317, 16531, 2406, - 16317, 16531, 2676, - 16317, 16531, 3398, - 16317, 16531, 3750, - 16317, 16531, 6066, - 16317, 16531, 7478, - 16317, 16531, 8002, - 16317, 16531, 9992, - 16317, 16531, 10478, - 16317, 16531, 10914, - 16317, 16531, 11722, - 16317, 16531, 11820, - 16317, 16531, 12354, - 16317, 16531, 13384, - 16317, 16531, 14720, - 16317, 16531, 16508, - 16317, 16531, 17060, - 16317, 16531, 23110, - 16317, 16787, 2760, - 16317, 16787, 2761, 18280, - 16317, 16787, 3412, - 16317, 16787, 7036, - 16317, 16787, 17474, - 16318, - 16327, 3953, 20858, - 16327, 8809, 13839, 1290, - 16327, 8809, 15287, 1290, - 16327, 8809, 16619, 15938, - 16327, 14559, 3235, 1290, - 16327, 14559, 10088, - 16327, 14559, 10479, 1290, - 16327, 14559, 13465, 14492, - 16327, 14559, 13465, 14770, - 16327, 14559, 13465, 16990, - 16327, 14559, 13490, - 16327, 14559, 13528, - 16327, 14559, 13529, 13463, 1493, 3668, - 16327, 14559, 13964, - 16327, 14559, 14492, - 16327, 14559, 14770, - 16327, 14559, 14816, - 16327, 14559, 15220, - 16327, 14559, 16005, 529, 13916, - 16327, 14559, 16990, - 16327, 14559, 16991, 14586, - 16327, 14559, 16998, - 16327, 14559, 25799, 17520, - 16327, 15679, 2758, - 16327, 15679, 6618, - 16327, 15679, 7800, - 16327, 15679, 12427, 16300, - 16327, 15679, 13024, - 16327, 15679, 14046, - 16327, 15679, 14500, - 16327, 15679, 14584, - 16327, 15679, 14646, - 16327, 15679, 14770, - 16327, 15679, 15086, - 16327, 15679, 15525, 993, 11726, - 16327, 15679, 15528, - 16327, 15679, 15603, 13322, - 16327, 15679, 15603, 14586, - 16327, 15679, 15604, - 16327, 15679, 15624, - 16327, 15679, 16248, - 16327, 15679, 16249, 16694, - 16327, 15679, 16646, - 16327, 15679, 16647, 16424, - 16327, 15679, 16870, - 16327, 15679, 16993, 9826, - 16327, 15679, 17386, - 16327, 15679, 18122, - 16327, 15679, 19263, 16240, - 16327, 15679, 19263, 16994, - 16327, 15679, 20264, - 16327, 15679, 21428, - 16327, 15679, 22888, - 16327, 16531, 276, - 16327, 16531, 277, 11513, 13916, - 16327, 16531, 554, - 16327, 16531, 555, 11513, 10088, - 16327, 16531, 555, 11513, 16004, - 16327, 16531, 996, - 16327, 16531, 997, 11513, 10088, - 16327, 16531, 997, 11513, 16004, - 16327, 16531, 1718, - 16327, 16531, 1988, - 16327, 16531, 1989, 11513, 10088, - 16327, 16531, 1989, 11513, 16004, - 16327, 16531, 2406, - 16327, 16531, 2407, 11513, 16004, - 16327, 16531, 2676, - 16327, 16531, 2677, 11513, 16004, - 16327, 16531, 2966, - 16327, 16531, 2967, 11513, 16004, - 16327, 16531, 3396, - 16327, 16531, 3397, 11513, 16004, - 16327, 16531, 3416, - 16327, 16531, 3417, 11513, 16004, - 16327, 16531, 3668, - 16327, 16531, 3669, 11513, 13528, - 16327, 16531, 3669, 11513, 16004, - 16327, 16531, 3952, - 16327, 16531, 3953, 11513, 13490, - 16327, 16531, 3953, 11513, 16004, - 16327, 16531, 5482, - 16327, 16531, 5483, 11513, 13916, - 16327, 16531, 5483, 11513, 14492, - 16327, 16531, 5483, 11513, 16990, - 16327, 16531, 5556, - 16327, 16531, 10120, - 16327, 16531, 10121, 11513, 16004, - 16327, 16531, 10478, - 16327, 16531, 10479, 11513, 3235, 1290, - 16327, 16531, 10479, 11513, 10479, 1290, - 16327, 16531, 10479, 11513, 16004, - 16327, 16531, 10479, 11513, 16005, 897, 3235, 1290, - 16327, 16531, 10479, 11513, 16005, 897, 10479, 1290, - 16327, 16531, 11503, 276, - 16327, 16531, 11503, 1988, - 16327, 16531, 11503, 3396, - 16327, 16531, 11503, 5482, - 16327, 16531, 11503, 10120, - 16327, 16531, 11503, 13012, - 16327, 16531, 11503, 13259, 2406, - 16327, 16531, 11503, 13772, - 16327, 16531, 13012, - 16327, 16531, 13013, 11513, 16004, - 16327, 16531, 13259, 554, - 16327, 16531, 13259, 555, 11513, 16004, - 16327, 16531, 13259, 1988, - 16327, 16531, 13259, 1989, 11513, 16004, - 16327, 16531, 13259, 2406, - 16327, 16531, 13259, 2676, - 16327, 16531, 13259, 15214, - 16327, 16531, 13384, - 16327, 16531, 13385, 11513, 16004, - 16327, 16531, 13772, - 16327, 16531, 13773, 11513, 16004, - 16327, 16531, 15214, - 16327, 16531, 15215, 11513, 16004, - 16327, 16531, 15606, - 16327, 16531, 15607, 11513, 16004, - 16327, 16531, 17060, - 16327, 16531, 17061, 11513, 16004, - 16327, 16531, 23045, 5556, - 16327, 16531, 23045, 9905, 10574, - 16327, 20241, 5483, 13772, - 16327, 20241, 19463, 3669, 3952, - 16327, 20241, 19463, 3953, 3953, 14492, - 16327, 20241, 19463, 16095, 3668, - 16327, 20241, 19463, 16095, 3952, - 16327, 23555, 2677, 18236, - 16327, 23555, 3253, 14490, - 16327, 23555, 13920, - 16327, 23555, 14488, - 16327, 23555, 16248, - 16327, 23555, 21428, - 16333, 11513, 15453, 12934, - 16343, 6110, - 16349, 14603, 17225, 20412, - 16349, 14603, 17225, 20413, 323, 12525, 17224, - 16355, 6996, - 16356, - 16358, - 16359, 11513, 21188, - 16359, 15858, - 16369, 14699, 10574, - 16399, 16989, 14532, - 16411, 10575, 14334, - 16411, 10575, 17534, - 16411, 10575, 19408, - 16411, 10575, 19540, - 16411, 10575, 23070, - 16411, 13016, - 16411, 15407, 10575, 8, - 16411, 15407, 10575, 16, - 16411, 15407, 10575, 28, - 16411, 15407, 10575, 40, - 16411, 15407, 10575, 58, - 16411, 15407, 10575, 72, - 16411, 15407, 10575, 96, - 16411, 15407, 10575, 314, - 16411, 15407, 10575, 706, - 16411, 15407, 10575, 19415, 34, - 16411, 16095, 13016, - 16411, 16095, 19057, 8808, - 16411, 16531, 0, - 16411, 16531, 8, - 16411, 16531, 16, - 16411, 16531, 28, - 16411, 16531, 40, - 16411, 16531, 58, - 16411, 16531, 72, - 16411, 16531, 96, - 16411, 16531, 108, - 16411, 16531, 126, - 16411, 16531, 150, - 16411, 16531, 248, - 16411, 16531, 272, - 16411, 16531, 314, - 16411, 16531, 344, - 16411, 16531, 358, - 16411, 16531, 394, - 16411, 16531, 426, - 16411, 16531, 466, - 16411, 16531, 548, - 16411, 16531, 598, - 16411, 16531, 614, - 16411, 16531, 648, - 16411, 16531, 706, - 16411, 16531, 714, - 16411, 16531, 778, - 16411, 16531, 1000, - 16411, 16531, 1116, - 16411, 16531, 1214, - 16411, 16531, 1236, - 16411, 16531, 1588, - 16411, 16531, 1918, - 16411, 16531, 2036, - 16411, 16531, 2574, - 16411, 16531, 2624, - 16411, 16531, 2698, - 16411, 16531, 2830, - 16411, 16531, 3074, - 16411, 16531, 3212, - 16411, 16531, 3286, - 16411, 16531, 3422, - 16411, 16531, 3502, - 16411, 16531, 6572, - 16411, 16531, 11082, - 16411, 16531, 13030, - 16411, 16787, 10574, - 16411, 16787, 10575, 12318, - 16411, 19057, 8808, - 16411, 23207, 10574, - 16411, 23737, 10574, - 16415, 18961, 169, 2642, - 16415, 18961, 262, - 16415, 18961, 263, 17184, - 16415, 18961, 896, - 16415, 18961, 942, - 16415, 18961, 1014, - 16415, 18961, 1034, - 16415, 18961, 1156, - 16415, 18961, 1280, - 16415, 18961, 1290, - 16415, 18961, 1294, - 16415, 18961, 1352, - 16415, 18961, 1354, - 16415, 18961, 1432, - 16415, 18961, 1480, - 16415, 18961, 1504, - 16415, 18961, 1856, - 16415, 18961, 1906, - 16415, 18961, 2258, - 16415, 18961, 2368, - 16415, 18961, 2568, - 16415, 18961, 2642, - 16415, 18961, 2756, - 16415, 18961, 2760, - 16415, 18961, 2842, - 16415, 18961, 3044, - 16415, 18961, 3048, - 16415, 18961, 3058, - 16415, 18961, 3138, - 16415, 18961, 3198, - 16415, 18961, 3200, - 16415, 18961, 3310, - 16415, 18961, 3412, - 16415, 18961, 3536, - 16415, 18961, 3537, 13458, - 16415, 18961, 3640, - 16415, 18961, 6046, - 16415, 18961, 6082, - 16415, 18961, 6092, - 16415, 18961, 6096, - 16415, 18961, 6098, - 16415, 18961, 6103, 507, 12712, - 16415, 18961, 6106, - 16415, 18961, 6230, - 16415, 18961, 6232, - 16415, 18961, 6336, - 16415, 18961, 6338, - 16415, 18961, 6340, - 16415, 18961, 6616, - 16415, 18961, 6670, - 16415, 18961, 6692, - 16415, 18961, 6701, 1036, - 16415, 18961, 6708, - 16415, 18961, 6880, - 16415, 18961, 6996, - 16415, 18961, 7000, - 16415, 18961, 7026, - 16415, 18961, 7030, - 16415, 18961, 7052, - 16415, 18961, 7062, - 16415, 18961, 7212, - 16415, 18961, 7332, - 16415, 18961, 7424, - 16415, 18961, 7429, 11047, 15210, - 16415, 18961, 7432, - 16415, 18961, 7460, - 16415, 18961, 7468, - 16415, 18961, 7658, - 16415, 18961, 7670, - 16415, 18961, 7808, - 16415, 18961, 7838, - 16415, 18961, 8240, - 16415, 18961, 8254, - 16415, 18961, 8276, - 16415, 18961, 8278, - 16415, 18961, 8282, - 16415, 18961, 8312, - 16415, 18961, 8320, - 16415, 18961, 8350, - 16415, 18961, 8351, 17258, - 16415, 18961, 8846, - 16415, 18961, 8980, - 16415, 18961, 9440, - 16415, 18961, 9783, 1036, - 16415, 18961, 9896, - 16415, 18961, 10092, - 16415, 18961, 10144, - 16415, 18961, 10178, - 16415, 18961, 10386, - 16415, 18961, 10414, - 16415, 18961, 10422, - 16415, 18961, 10580, - 16415, 18961, 10596, - 16415, 18961, 10694, - 16415, 18961, 10696, - 16415, 18961, 10862, - 16415, 18961, 10990, - 16415, 18961, 11046, - 16415, 18961, 11466, - 16415, 18961, 11467, 21364, - 16415, 18961, 11488, - 16415, 18961, 11504, - 16415, 18961, 11506, - 16415, 18961, 11538, - 16415, 18961, 11542, - 16415, 18961, 12332, - 16415, 18961, 12414, - 16415, 18961, 12524, - 16415, 18961, 12536, - 16415, 18961, 12566, - 16415, 18961, 12676, - 16415, 18961, 12706, - 16415, 18961, 12918, - 16415, 18961, 12928, - 16415, 18961, 13046, - 16415, 18961, 13140, - 16415, 18961, 13150, - 16415, 18961, 13164, - 16415, 18961, 13250, - 16415, 18961, 13256, - 16415, 18961, 13272, - 16415, 18961, 13380, - 16415, 18961, 13410, - 16415, 18961, 13414, - 16415, 18961, 13470, - 16415, 18961, 13536, - 16415, 18961, 13714, - 16415, 18961, 13954, - 16415, 18961, 14024, - 16415, 18961, 14030, - 16415, 18961, 14568, - 16415, 18961, 14659, 9783, 1036, - 16415, 18961, 14664, - 16415, 18961, 14804, - 16415, 18961, 14810, - 16415, 18961, 14834, - 16415, 18961, 14837, 17311, 6082, - 16415, 18961, 14837, 17376, - 16415, 18961, 14890, - 16415, 18961, 14892, - 16415, 18961, 14896, - 16415, 18961, 14910, - 16415, 18961, 14922, - 16415, 18961, 14928, - 16415, 18961, 14936, - 16415, 18961, 14948, - 16415, 18961, 14964, - 16415, 18961, 14972, - 16415, 18961, 14982, - 16415, 18961, 15016, - 16415, 18961, 15044, - 16415, 18961, 15134, - 16415, 18961, 15180, - 16415, 18961, 15194, - 16415, 18961, 15436, - 16415, 18961, 15448, - 16415, 18961, 15452, - 16415, 18961, 15468, - 16415, 18961, 15476, - 16415, 18961, 15736, - 16415, 18961, 15764, - 16415, 18961, 15776, - 16415, 18961, 15820, - 16415, 18961, 15836, - 16415, 18961, 15976, - 16415, 18961, 16052, - 16415, 18961, 16093, 10906, - 16415, 18961, 16093, 12706, - 16415, 18961, 16095, 46, - 16415, 18961, 16096, - 16415, 18961, 16156, - 16415, 18961, 16341, 21364, - 16415, 18961, 16378, - 16415, 18961, 16664, - 16415, 18961, 16682, - 16415, 18961, 16816, - 16415, 18961, 17088, - 16415, 18961, 17094, - 16415, 18961, 17202, - 16415, 18961, 17208, - 16415, 18961, 17220, - 16415, 18961, 17224, - 16415, 18961, 17325, 18504, - 16415, 18961, 17430, - 16415, 18961, 17438, - 16415, 18961, 17458, - 16415, 18961, 17466, - 16415, 18961, 17516, - 16415, 18961, 17566, - 16415, 18961, 17598, - 16415, 18961, 17818, - 16415, 18961, 17892, - 16415, 18961, 17900, - 16415, 18961, 18124, - 16415, 18961, 18144, - 16415, 18961, 18242, - 16415, 18961, 18504, - 16415, 18961, 18642, - 16415, 18961, 18758, - 16415, 18961, 18926, - 16415, 18961, 19048, - 16415, 18961, 19404, - 16415, 18961, 19664, - 16415, 18961, 20058, - 16415, 18961, 20316, - 16415, 18961, 20332, - 16415, 18961, 20530, - 16415, 18961, 20656, - 16415, 18961, 20726, - 16415, 18961, 21364, - 16415, 18961, 22288, - 16415, 18961, 22412, - 16415, 18961, 23132, - 16415, 18961, 23591, 11506, - 16427, 10574, - 16439, 3412, - 16442, - 16445, 14911, 17089, 16172, - 16445, 14911, 17089, 26304, - 16445, 14911, 17089, 26306, - 16445, 14911, 17089, 26308, - 16445, 14911, 17089, 26310, - 16445, 14911, 17089, 26312, - 16445, 14911, 17089, 26314, - 16445, 14911, 17089, 26316, - 16445, 14911, 17089, 26318, - 16445, 14911, 17089, 26320, - 16445, 14911, 17089, 26322, - 16445, 14911, 17089, 26324, - 16445, 14911, 17089, 26326, - 16445, 14911, 17089, 26328, - 16445, 14911, 17089, 26330, - 16445, 14911, 17089, 26332, - 16445, 14911, 17089, 26334, - 16445, 14911, 17089, 26336, - 16445, 14911, 17089, 26338, - 16445, 14911, 17089, 26340, - 16445, 14911, 17089, 26342, - 16445, 14911, 17089, 26344, - 16445, 14911, 17089, 26346, - 16445, 14911, 17089, 26348, - 16445, 14911, 17089, 26350, - 16445, 14911, 17089, 26352, - 16445, 14911, 17089, 26354, - 16445, 14911, 17089, 26356, - 16445, 14911, 17089, 26358, - 16445, 14911, 17089, 26360, - 16445, 14911, 17089, 26362, - 16445, 14911, 17089, 26364, - 16445, 14911, 17089, 26366, - 16445, 14911, 17089, 26368, - 16445, 14911, 17089, 26370, - 16445, 14911, 17089, 26372, - 16445, 14911, 17089, 26374, - 16445, 14911, 17089, 26376, - 16445, 14911, 17089, 26378, - 16445, 14911, 17089, 26380, - 16445, 14911, 17089, 26382, - 16445, 14911, 17089, 26384, - 16445, 14911, 17089, 26386, - 16445, 14911, 17089, 26388, - 16445, 14911, 17089, 26390, - 16445, 14911, 17089, 26392, - 16445, 14911, 17089, 26394, - 16445, 14911, 17089, 26396, - 16445, 14911, 17089, 26398, - 16445, 14911, 17089, 26400, - 16445, 14911, 17089, 26402, - 16445, 14911, 17089, 26404, - 16445, 14911, 17089, 26406, - 16445, 14911, 17089, 26408, - 16445, 14911, 17089, 26410, - 16445, 14911, 17089, 26412, - 16445, 14911, 17089, 26414, - 16445, 14911, 17089, 26416, - 16445, 14911, 17089, 26418, - 16445, 14911, 17089, 26420, - 16445, 14911, 17089, 26422, - 16445, 14911, 17089, 26424, - 16445, 14911, 17089, 26426, - 16445, 14911, 17089, 26428, - 16445, 14911, 17089, 26430, - 16445, 14911, 17089, 26432, - 16445, 14911, 17089, 26434, - 16445, 14911, 17089, 26436, - 16445, 14911, 17089, 26438, - 16445, 14911, 17089, 26440, - 16445, 14911, 17089, 26442, - 16445, 14911, 17089, 26444, - 16445, 14911, 17089, 26446, - 16445, 14911, 17089, 26448, - 16445, 14911, 17089, 26450, - 16445, 14911, 17089, 26452, - 16445, 14911, 17089, 26454, - 16445, 14911, 17089, 26456, - 16445, 14911, 17089, 26458, - 16445, 14911, 17089, 26460, - 16445, 14911, 17089, 26462, - 16445, 14911, 17089, 26464, - 16445, 14911, 17089, 26466, - 16445, 14911, 17089, 26468, - 16445, 14911, 17089, 26470, - 16445, 14911, 17089, 26472, - 16445, 14911, 17089, 26474, - 16445, 14911, 17089, 26476, - 16445, 14911, 17089, 26478, - 16445, 14911, 17089, 26480, - 16445, 14911, 17089, 26482, - 16445, 14911, 17089, 26484, - 16445, 14911, 17089, 26486, - 16445, 14911, 17089, 26488, - 16445, 14911, 17089, 26490, - 16445, 14911, 17089, 26492, - 16445, 14911, 17089, 26494, - 16445, 14911, 17089, 26496, - 16445, 14911, 17089, 26498, - 16445, 14911, 17089, 26500, - 16445, 14911, 17089, 26502, - 16445, 14911, 17089, 26504, - 16445, 14911, 17089, 26506, - 16445, 14911, 17089, 26508, - 16445, 14911, 17089, 26510, - 16445, 14911, 17089, 26512, - 16445, 14911, 17089, 26514, - 16445, 14911, 17089, 26516, - 16445, 14911, 17089, 26518, - 16445, 14911, 17089, 26520, - 16445, 14911, 17089, 26522, - 16445, 14911, 17089, 26524, - 16445, 14911, 17089, 26526, - 16445, 14911, 17089, 26528, - 16445, 14911, 17089, 26530, - 16445, 14911, 17089, 26532, - 16445, 14911, 17089, 26534, - 16445, 14911, 17089, 26536, - 16445, 14911, 17089, 26538, - 16445, 14911, 17089, 26540, - 16445, 14911, 17089, 26542, - 16445, 14911, 17089, 26544, - 16445, 14911, 17089, 26546, - 16445, 14911, 17089, 26548, - 16445, 14911, 17089, 26550, - 16445, 14911, 17089, 26552, - 16445, 14911, 17089, 26554, - 16445, 14911, 17089, 26556, - 16445, 14911, 17089, 26558, - 16445, 14911, 17089, 26560, - 16445, 14911, 17089, 26562, - 16445, 14911, 17089, 26564, - 16445, 14911, 17089, 26566, - 16445, 14911, 17089, 26568, - 16445, 14911, 17089, 26570, - 16445, 14911, 17089, 26572, - 16445, 14911, 17089, 26574, - 16445, 14911, 17089, 26576, - 16445, 14911, 17089, 26578, - 16445, 14911, 17089, 26580, - 16445, 14911, 17089, 26582, - 16445, 14911, 17089, 26584, - 16445, 14911, 17089, 26586, - 16445, 14911, 17089, 26588, - 16445, 14911, 17089, 26590, - 16445, 14911, 17089, 26592, - 16445, 14911, 17089, 26594, - 16445, 14911, 17089, 26596, - 16445, 14911, 17089, 26598, - 16445, 14911, 17089, 26600, - 16445, 14911, 17089, 26602, - 16445, 14911, 17089, 26604, - 16445, 14911, 17089, 26606, - 16445, 14911, 17089, 26608, - 16445, 14911, 17089, 26610, - 16445, 14911, 17089, 26612, - 16445, 14911, 17089, 26614, - 16445, 14911, 17089, 26616, - 16445, 14911, 17089, 26618, - 16445, 14911, 17089, 26620, - 16445, 14911, 17089, 26622, - 16445, 14911, 17089, 26624, - 16445, 14911, 17089, 26626, - 16445, 14911, 17089, 26628, - 16445, 14911, 17089, 26630, - 16445, 14911, 17089, 26632, - 16445, 14911, 17089, 26634, - 16445, 14911, 17089, 26636, - 16445, 14911, 17089, 26638, - 16445, 14911, 17089, 26640, - 16445, 14911, 17089, 26642, - 16445, 14911, 17089, 26644, - 16445, 14911, 17089, 26646, - 16445, 14911, 17089, 26648, - 16445, 14911, 17089, 26650, - 16445, 14911, 17089, 26652, - 16445, 14911, 17089, 26654, - 16445, 14911, 17089, 26656, - 16445, 14911, 17089, 26658, - 16445, 14911, 17089, 26660, - 16445, 14911, 17089, 26662, - 16445, 14911, 17089, 26664, - 16445, 14911, 17089, 26666, - 16445, 14911, 17089, 26668, - 16445, 14911, 17089, 26670, - 16445, 14911, 17089, 26672, - 16445, 14911, 17089, 26674, - 16445, 14911, 17089, 26676, - 16445, 14911, 17089, 26678, - 16445, 14911, 17089, 26680, - 16445, 14911, 17089, 26682, - 16445, 14911, 17089, 26684, - 16445, 14911, 17089, 26686, - 16445, 14911, 17089, 26688, - 16445, 14911, 17089, 26690, - 16445, 14911, 17089, 26692, - 16445, 14911, 17089, 26694, - 16445, 14911, 17089, 26696, - 16445, 14911, 17089, 26698, - 16445, 14911, 17089, 26700, - 16445, 14911, 17089, 26702, - 16445, 14911, 17089, 26704, - 16445, 14911, 17089, 26706, - 16445, 14911, 17089, 26708, - 16445, 14911, 17089, 26710, - 16445, 14911, 17089, 26712, - 16445, 14911, 17089, 26714, - 16445, 14911, 17089, 26716, - 16445, 14911, 17089, 26718, - 16445, 14911, 17089, 26720, - 16445, 14911, 17089, 26722, - 16445, 14911, 17089, 26724, - 16445, 14911, 17089, 26726, - 16445, 14911, 17089, 26728, - 16445, 14911, 17089, 26730, - 16445, 14911, 17089, 26732, - 16445, 14911, 17089, 26734, - 16445, 14911, 17089, 26736, - 16445, 14911, 17089, 26738, - 16445, 14911, 17089, 26740, - 16445, 14911, 17089, 26742, - 16445, 14911, 17089, 26744, - 16445, 14911, 17089, 26746, - 16445, 14911, 17089, 26748, - 16445, 14911, 17089, 26750, - 16445, 14911, 17089, 26752, - 16445, 14911, 17089, 26754, - 16445, 14911, 17089, 26756, - 16445, 14911, 17089, 26758, - 16445, 14911, 17089, 26760, - 16445, 14911, 17089, 26762, - 16445, 14911, 17089, 26764, - 16445, 14911, 17089, 26766, - 16445, 14911, 17089, 26768, - 16445, 14911, 17089, 26770, - 16445, 14911, 17089, 26772, - 16445, 14911, 17089, 26774, - 16445, 14911, 17089, 26776, - 16445, 14911, 17089, 26778, - 16445, 14911, 17089, 26780, - 16445, 14911, 17089, 26782, - 16445, 14911, 17089, 26784, - 16445, 14911, 17089, 26786, - 16445, 14911, 17089, 26788, - 16445, 14911, 17089, 26790, - 16445, 14911, 17089, 26792, - 16445, 14911, 17089, 26794, - 16445, 14911, 17089, 26796, - 16445, 14911, 17089, 26798, - 16445, 14911, 17089, 26800, - 16445, 14911, 17089, 26802, - 16445, 14911, 17089, 26804, - 16445, 14911, 17089, 26806, - 16445, 14911, 17089, 26808, - 16445, 14911, 17089, 26810, - 16445, 14911, 17089, 26812, - 16445, 14911, 17089, 26814, - 16445, 14911, 17089, 26816, - 16445, 14911, 17089, 26818, - 16445, 14911, 17089, 26820, - 16445, 14911, 17089, 26822, - 16445, 14911, 17089, 26824, - 16445, 14911, 17089, 26826, - 16445, 14911, 17089, 26828, - 16445, 14911, 17089, 26830, - 16445, 14911, 17089, 26832, - 16445, 14911, 17089, 26834, - 16445, 14911, 17089, 26836, - 16445, 14911, 17089, 26838, - 16445, 14911, 17089, 26840, - 16445, 14911, 17089, 26842, - 16445, 14911, 17089, 26844, - 16445, 14911, 17089, 26846, - 16445, 14911, 17089, 26848, - 16445, 14911, 17089, 26850, - 16445, 14911, 17089, 26852, - 16445, 14911, 17089, 26854, - 16445, 14911, 17089, 26856, - 16445, 14911, 17089, 26858, - 16445, 14911, 17089, 26860, - 16445, 14911, 17089, 26862, - 16445, 14911, 17089, 26864, - 16445, 14911, 17089, 26866, - 16445, 14911, 17089, 26868, - 16445, 14911, 17089, 26870, - 16445, 14911, 17089, 26872, - 16445, 14911, 17089, 26874, - 16445, 14911, 17089, 26876, - 16445, 14911, 17089, 26878, - 16445, 14911, 17089, 26880, - 16445, 14911, 17089, 26882, - 16445, 14911, 17089, 26884, - 16445, 14911, 17089, 26886, - 16445, 14911, 17089, 26888, - 16445, 14911, 17089, 26890, - 16445, 14911, 17089, 26892, - 16445, 14911, 17089, 26894, - 16445, 14911, 17089, 26896, - 16445, 14911, 17089, 26898, - 16445, 14911, 17089, 26900, - 16445, 14911, 17089, 26902, - 16445, 14911, 17089, 26904, - 16445, 14911, 17089, 26906, - 16445, 14911, 17089, 26908, - 16445, 14911, 17089, 26910, - 16445, 14911, 17089, 26912, - 16445, 14911, 17089, 26914, - 16445, 14911, 17089, 26916, - 16445, 14911, 17089, 26918, - 16445, 14911, 17089, 26920, - 16445, 14911, 17089, 26922, - 16445, 14911, 17089, 26924, - 16445, 14911, 17089, 26926, - 16445, 14911, 17089, 26928, - 16445, 14911, 17089, 26930, - 16445, 14911, 17089, 26932, - 16445, 14911, 17089, 26934, - 16445, 14911, 17089, 26936, - 16445, 14911, 17089, 26938, - 16445, 14911, 17089, 26940, - 16445, 14911, 17089, 26942, - 16445, 14911, 17089, 26944, - 16445, 14911, 17089, 26946, - 16445, 14911, 17089, 26948, - 16445, 14911, 17089, 26950, - 16445, 14911, 17089, 26952, - 16445, 14911, 17089, 26954, - 16445, 14911, 17089, 26956, - 16445, 14911, 17089, 26958, - 16445, 14911, 17089, 26960, - 16445, 14911, 17089, 26962, - 16445, 14911, 17089, 26964, - 16445, 14911, 17089, 26966, - 16445, 14911, 17089, 26968, - 16445, 14911, 17089, 26970, - 16445, 14911, 17089, 26972, - 16445, 14911, 17089, 26974, - 16445, 14911, 17089, 26976, - 16445, 14911, 17089, 26978, - 16445, 14911, 17089, 26980, - 16445, 14911, 17089, 26982, - 16445, 14911, 17089, 26984, - 16445, 14911, 17089, 26986, - 16445, 14911, 17089, 26988, - 16445, 14911, 17089, 26990, - 16445, 14911, 17089, 26992, - 16445, 14911, 17089, 26994, - 16445, 14911, 17089, 26996, - 16445, 14911, 17089, 26998, - 16445, 14911, 17089, 27000, - 16445, 14911, 17089, 27002, - 16445, 14911, 17089, 27004, - 16445, 14911, 17089, 27006, - 16445, 14911, 17089, 27008, - 16445, 14911, 17089, 27010, - 16445, 14911, 17089, 27012, - 16445, 14911, 17089, 27014, - 16445, 14911, 17089, 27016, - 16445, 14911, 17089, 27018, - 16445, 14911, 17089, 27020, - 16445, 14911, 17089, 27022, - 16445, 14911, 17089, 27024, - 16445, 14911, 17089, 27026, - 16445, 14911, 17089, 27028, - 16445, 14911, 17089, 27030, - 16445, 14911, 17089, 27032, - 16445, 14911, 17089, 27034, - 16445, 14911, 17089, 27036, - 16445, 14911, 17089, 27038, - 16445, 14911, 17089, 27040, - 16445, 14911, 17089, 27042, - 16445, 14911, 17089, 27044, - 16445, 14911, 17089, 27046, - 16445, 14911, 17089, 27048, - 16445, 14911, 17089, 27050, - 16445, 14911, 17089, 27052, - 16445, 14911, 17089, 27054, - 16445, 14911, 17089, 27056, - 16445, 14911, 17089, 27058, - 16445, 14911, 17089, 27060, - 16445, 14911, 17089, 27062, - 16445, 14911, 17089, 27064, - 16445, 14911, 17089, 27066, - 16445, 14911, 17089, 27068, - 16445, 14911, 17089, 27070, - 16445, 14911, 17089, 27072, - 16445, 14911, 17089, 27074, - 16445, 14911, 17089, 27076, - 16445, 14911, 17089, 27078, - 16445, 14911, 17089, 27080, - 16445, 14911, 17089, 27082, - 16445, 14911, 17089, 27084, - 16445, 14911, 17089, 27086, - 16445, 14911, 17089, 27088, - 16445, 14911, 17089, 27090, - 16445, 14911, 17089, 27092, - 16445, 14911, 17089, 27094, - 16445, 14911, 17089, 27096, - 16445, 14911, 17089, 27098, - 16445, 14911, 17089, 27100, - 16445, 14911, 17089, 27102, - 16445, 14911, 17089, 27104, - 16445, 14911, 17089, 27106, - 16445, 14911, 17089, 27108, - 16445, 14911, 17089, 27110, - 16445, 14911, 17089, 27112, - 16445, 14911, 17089, 27114, - 16445, 14911, 17089, 27116, - 16445, 14911, 17089, 27118, - 16445, 14911, 17089, 27120, - 16445, 14911, 17089, 27122, - 16445, 14911, 17089, 27124, - 16445, 14911, 17089, 27126, - 16445, 14911, 17089, 27128, - 16445, 14911, 17089, 27130, - 16445, 14911, 17089, 27132, - 16445, 14911, 17089, 27134, - 16445, 14911, 17089, 27136, - 16445, 14911, 17089, 27138, - 16445, 14911, 17089, 27140, - 16445, 14911, 17089, 27142, - 16445, 14911, 17089, 27144, - 16445, 14911, 17089, 27146, - 16445, 14911, 17089, 27148, - 16445, 14911, 17089, 27150, - 16445, 14911, 17089, 27152, - 16445, 14911, 17089, 27154, - 16445, 14911, 17089, 27156, - 16445, 14911, 17089, 27158, - 16445, 14911, 17089, 27160, - 16445, 14911, 17089, 27162, - 16445, 14911, 17089, 27164, - 16445, 14911, 17089, 27166, - 16445, 14911, 17089, 27168, - 16445, 14911, 17089, 27170, - 16445, 14911, 17089, 27172, - 16445, 14911, 17089, 27174, - 16445, 14911, 17089, 27176, - 16445, 14911, 17089, 27178, - 16445, 14911, 17089, 27180, - 16445, 14911, 17089, 27182, - 16445, 14911, 17089, 27184, - 16445, 14911, 17089, 27186, - 16445, 14911, 17089, 27188, - 16445, 14911, 17089, 27190, - 16445, 14911, 17089, 27192, - 16445, 14911, 17089, 27194, - 16445, 14911, 17089, 27196, - 16445, 14911, 17089, 27198, - 16445, 14911, 17089, 27200, - 16445, 14911, 17089, 27202, - 16445, 14911, 17089, 27204, - 16445, 14911, 17089, 27206, - 16445, 14911, 17089, 27208, - 16445, 14911, 17089, 27210, - 16445, 14911, 17089, 27212, - 16445, 14911, 17089, 27214, - 16445, 14911, 17089, 27216, - 16445, 14911, 17089, 27218, - 16445, 14911, 17089, 27220, - 16445, 14911, 17089, 27222, - 16445, 14911, 17089, 27224, - 16445, 14911, 17089, 27226, - 16445, 14911, 17089, 27228, - 16445, 14911, 17089, 27230, - 16445, 14911, 17089, 27232, - 16445, 14911, 17089, 27234, - 16445, 14911, 17089, 27236, - 16445, 14911, 17089, 27238, - 16445, 14911, 17089, 27240, - 16445, 14911, 17089, 27242, - 16445, 14911, 17089, 27244, - 16447, 10575, 14334, - 16447, 10575, 15000, - 16447, 10575, 17116, - 16447, 10575, 17534, - 16447, 10575, 19540, - 16447, 11537, 21850, - 16447, 13016, - 16447, 15407, 10575, 8, - 16447, 15407, 10575, 16, - 16447, 15407, 10575, 28, - 16447, 15407, 10575, 40, - 16447, 15407, 10575, 58, - 16447, 15407, 10575, 72, - 16447, 15407, 10575, 96, - 16447, 15407, 10575, 314, - 16447, 15407, 10575, 19415, 34, - 16447, 16095, 13016, - 16447, 16095, 19057, 8808, - 16447, 16531, 0, - 16447, 16531, 8, - 16447, 16531, 16, - 16447, 16531, 28, - 16447, 16531, 40, - 16447, 16531, 58, - 16447, 16531, 72, - 16447, 16531, 96, - 16447, 16531, 108, - 16447, 16531, 126, - 16447, 16531, 150, - 16447, 16531, 248, - 16447, 16531, 272, - 16447, 16531, 344, - 16447, 16531, 358, - 16447, 16531, 394, - 16447, 16531, 426, - 16447, 16531, 466, - 16447, 16531, 548, - 16447, 16531, 582, - 16447, 16531, 598, - 16447, 16531, 614, - 16447, 16531, 648, - 16447, 16531, 714, - 16447, 16531, 778, - 16447, 16531, 972, - 16447, 16531, 1000, - 16447, 16531, 1116, - 16447, 16531, 1214, - 16447, 16531, 1236, - 16447, 16531, 1578, - 16447, 16531, 1588, - 16447, 16531, 1934, - 16447, 16531, 2036, - 16447, 16531, 2278, - 16447, 16531, 2574, - 16447, 16531, 2624, - 16447, 16531, 2698, - 16447, 16531, 2830, - 16447, 16531, 3422, - 16447, 16531, 3502, - 16447, 16531, 6564, - 16447, 16531, 6572, - 16447, 16531, 11082, - 16447, 16531, 14837, 16, - 16447, 19057, 8808, - 16447, 23737, 10574, - 16458, - 16477, 20709, 17298, - 16482, - 16498, - 16513, 10932, - 16513, 10933, 529, 13177, 660, - 16518, - 16527, 10575, 3042, - 16527, 10575, 14334, - 16527, 13069, 2760, - 16527, 13069, 3240, - 16527, 13069, 3536, - 16527, 13069, 7036, - 16527, 13069, 7058, - 16527, 13069, 9358, - 16527, 13069, 11824, - 16527, 13069, 13150, - 16527, 13069, 14778, - 16527, 13069, 15116, - 16527, 15407, 10575, 8, - 16527, 15407, 10575, 16, - 16527, 15407, 10575, 28, - 16527, 15407, 10575, 40, - 16527, 15407, 10575, 58, - 16527, 15407, 10575, 522, - 16527, 15407, 10575, 706, - 16527, 16531, 0, - 16527, 16531, 108, - 16527, 16531, 126, - 16527, 16531, 150, - 16527, 16531, 228, - 16527, 16531, 248, - 16527, 16531, 272, - 16527, 16531, 344, - 16527, 16531, 358, - 16527, 16531, 394, - 16527, 16531, 426, - 16527, 16531, 466, - 16527, 16531, 548, - 16527, 16531, 598, - 16527, 16531, 614, - 16527, 16531, 648, - 16527, 16531, 714, - 16527, 16531, 738, - 16527, 16531, 778, - 16527, 16531, 1022, - 16527, 16531, 1116, - 16527, 16531, 1214, - 16527, 16531, 1330, - 16527, 16531, 1478, - 16527, 16531, 1620, - 16527, 16531, 1744, - 16527, 16531, 2036, - 16527, 16531, 2086, - 16527, 16531, 2448, - 16527, 16531, 2574, - 16527, 16531, 2698, - 16527, 16531, 2830, - 16527, 16531, 2854, - 16527, 16531, 3212, - 16527, 16531, 3422, - 16527, 16531, 3488, - 16527, 16531, 3502, - 16527, 16531, 11058, - 16527, 16531, 11082, - 16527, 21143, 10575, 20, - 16527, 21143, 10575, 22, - 16527, 21143, 10575, 24, - 16527, 21143, 10575, 26, - 16527, 21143, 10575, 30, - 16527, 21143, 10575, 34, - 16527, 21143, 10575, 38, - 16527, 21143, 10575, 7998, - 16527, 21143, 10575, 18738, - 16527, 21919, 16531, 598, - 16527, 21919, 16531, 778, - 16527, 23555, 9565, 17381, 17306, - 16527, 23555, 15902, - 16527, 23555, 17306, - 16527, 23555, 17448, - 16527, 23555, 17449, 15902, - 16553, 1, 10575, 4728, - 16553, 1, 10575, 4730, - 16553, 1, 10575, 4732, - 16553, 1, 10575, 4734, - 16553, 1, 10575, 4736, - 16553, 1, 10575, 4738, - 16553, 1, 10575, 4740, - 16553, 1, 10575, 4742, - 16553, 1, 10575, 4746, - 16553, 1, 10575, 4748, - 16553, 1, 10575, 4750, - 16553, 1, 10575, 4754, - 16553, 1, 10575, 4756, - 16553, 1, 10575, 4758, - 16553, 1, 10575, 4760, - 16553, 1, 10575, 4762, - 16553, 1, 10575, 4764, - 16553, 1, 10575, 4766, - 16553, 1, 10575, 4768, - 16553, 1, 10575, 4770, - 16553, 1, 10575, 4772, - 16553, 1, 10575, 4774, - 16553, 1, 10575, 4776, - 16553, 1, 10575, 4778, - 16553, 1, 10575, 4780, - 16553, 1, 10575, 4782, - 16553, 1, 10575, 4784, - 16553, 1, 10575, 4786, - 16553, 1, 10575, 4788, - 16553, 1, 10575, 4790, - 16553, 1, 10575, 4792, - 16553, 1, 10575, 4794, - 16553, 1, 10575, 4796, - 16553, 1, 10575, 4798, - 16553, 1, 10575, 4800, - 16553, 1, 10575, 4802, - 16553, 1, 10575, 4804, - 16553, 1, 10575, 4806, - 16553, 1, 10575, 4808, - 16553, 1, 10575, 4810, - 16553, 1, 10575, 4812, - 16553, 1, 10575, 4814, - 16553, 1, 10575, 4816, - 16553, 1, 10575, 4818, - 16553, 1, 10575, 4820, - 16553, 1, 10575, 4822, - 16553, 1, 10575, 4824, - 16553, 1, 10575, 4826, - 16553, 1, 10575, 4828, - 16553, 1, 10575, 4830, - 16553, 1, 10575, 4832, - 16553, 1, 10575, 4834, - 16553, 1, 10575, 4836, - 16553, 1, 10575, 4838, - 16553, 1, 10575, 4840, - 16553, 1, 10575, 4842, - 16553, 1, 10575, 4844, - 16553, 1, 10575, 4846, - 16553, 1, 10575, 4848, - 16553, 1, 10575, 4850, - 16553, 1, 10575, 4852, - 16553, 1, 10575, 4854, - 16553, 1, 10575, 4856, - 16553, 1, 10575, 4858, - 16553, 1, 10575, 4860, - 16553, 1, 10575, 4862, - 16553, 1, 10575, 4864, - 16553, 1, 10575, 4866, - 16553, 1, 10575, 4868, - 16553, 1, 10575, 5122, - 16553, 1, 10575, 5124, - 16553, 1, 10575, 5126, - 16553, 1, 10575, 5128, - 16553, 1, 10575, 5130, - 16553, 1, 10575, 5132, - 16553, 1, 10575, 5136, - 16553, 1, 10575, 5138, - 16553, 1, 10575, 5140, - 16553, 1, 10575, 5142, - 16553, 1, 10575, 5144, - 16553, 1, 10575, 5146, - 16553, 1, 10575, 5150, - 16553, 1, 10575, 5152, - 16553, 1, 10575, 5160, - 16553, 1, 10575, 5162, - 16553, 1, 10575, 5166, - 16553, 1, 10575, 5168, - 16553, 1, 10575, 5170, - 16553, 1, 10575, 5172, - 16553, 1, 10575, 5174, - 16553, 1, 10575, 5176, - 16553, 1, 10575, 5178, - 16553, 1, 10575, 5180, - 16553, 1, 10575, 5182, - 16553, 1, 10575, 5184, - 16553, 1, 10575, 5186, - 16553, 1, 10575, 5188, - 16553, 1, 10575, 5190, - 16553, 1, 10575, 5192, - 16553, 1, 10575, 5194, - 16553, 1, 10575, 5196, - 16553, 1, 10575, 5198, - 16553, 1, 10575, 5200, - 16553, 1, 10575, 5202, - 16553, 1, 10575, 5204, - 16553, 1, 10575, 5206, - 16553, 1, 10575, 5208, - 16553, 1, 10575, 5210, - 16553, 1, 10575, 5212, - 16553, 1, 10575, 5214, - 16553, 1, 10575, 5216, - 16553, 1, 10575, 5218, - 16553, 1, 10575, 5220, - 16553, 1, 10575, 5222, - 16553, 1, 10575, 5224, - 16553, 1, 10575, 5226, - 16553, 1, 10575, 5228, - 16553, 1, 10575, 5230, - 16553, 1, 10575, 5232, - 16553, 1, 10575, 5234, - 16553, 1, 10575, 5236, - 16553, 1, 10575, 5238, - 16553, 1, 10575, 5240, - 16553, 1, 10575, 5242, - 16553, 1, 10575, 5244, - 16553, 1, 10575, 5246, - 16553, 1, 10575, 5248, - 16553, 1, 10575, 5250, - 16553, 1, 10575, 5252, - 16553, 1, 10575, 5254, - 16553, 1, 10575, 5256, - 16553, 1, 10575, 5258, - 16553, 1, 10575, 5260, - 16553, 1, 10575, 5262, - 16553, 1, 10575, 5264, - 16553, 1, 10575, 5266, - 16553, 1, 10575, 5268, - 16553, 1, 10575, 5270, - 16553, 1, 10575, 5272, - 16553, 1, 10575, 5274, - 16553, 1, 10575, 5276, - 16553, 1, 10575, 5278, - 16553, 1, 10575, 5280, - 16553, 1, 10575, 5282, - 16553, 1, 10575, 5284, - 16553, 1, 10575, 5286, - 16553, 1, 10575, 5288, - 16553, 1, 10575, 5290, - 16553, 1, 10575, 5292, - 16553, 1, 10575, 5294, - 16553, 1, 10575, 5296, - 16553, 1, 10575, 5298, - 16553, 1, 10575, 5300, - 16553, 1, 10575, 5302, - 16553, 1, 10575, 5304, - 16553, 1, 10575, 5306, - 16553, 1, 10575, 5308, - 16553, 1, 10575, 5310, - 16553, 1, 10575, 5312, - 16553, 1, 10575, 5314, - 16553, 1, 10575, 5316, - 16553, 1, 10575, 5318, - 16553, 1, 10575, 5320, - 16553, 1, 10575, 5322, - 16553, 1, 10575, 5324, - 16553, 1, 10575, 5326, - 16553, 1, 10575, 5328, - 16553, 1, 10575, 5330, - 16553, 1, 10575, 5332, - 16553, 1, 10575, 5334, - 16553, 1, 10575, 5336, - 16553, 1, 10575, 5338, - 16553, 1, 10575, 5340, - 16553, 1, 10575, 5342, - 16553, 1, 10575, 5344, - 16553, 1, 10575, 5346, - 16553, 1, 10575, 5348, - 16553, 1, 10575, 5350, - 16553, 1, 10575, 5352, - 16553, 1, 10575, 5354, - 16553, 1, 10575, 5356, - 16553, 1, 10575, 5358, - 16553, 1, 10575, 5360, - 16553, 1, 10575, 5362, - 16553, 1, 10575, 5364, - 16553, 1, 10575, 5366, - 16553, 1, 10575, 5368, - 16553, 1, 10575, 5370, - 16553, 1, 10575, 5372, - 16553, 1, 10575, 5374, - 16553, 1, 10575, 5376, - 16553, 1, 10575, 5378, - 16553, 1, 10575, 5380, - 16553, 1, 10575, 5382, - 16553, 1, 10575, 5384, - 16553, 1, 10575, 5386, - 16553, 1, 10575, 5388, - 16553, 1, 10575, 5390, - 16553, 1, 10575, 5392, - 16553, 1, 10575, 5394, - 16553, 1, 10575, 5396, - 16553, 1, 10575, 5399, 0, - 16553, 1, 10575, 5401, 2, - 16553, 1, 10575, 5403, 6, - 16553, 1, 10575, 5405, 8, - 16553, 1, 10575, 5407, 10, - 16553, 1, 10575, 5409, 14, - 16553, 1, 10575, 5411, 18, - 16553, 1, 10575, 5413, 20, - 16553, 1, 10575, 5415, 22, - 16553, 1, 10575, 5417, 44, - 16553, 1, 10575, 5419, 46, - 16553, 1, 10575, 5421, 48, - 16553, 1, 10575, 5423, 14428, - 16553, 1, 10575, 5425, 844, - 16553, 1, 10575, 5427, 110, - 16553, 1, 10575, 5429, 154, - 16553, 1, 10575, 5431, 6884, - 16553, 1, 10575, 5433, 346, - 16553, 1, 10575, 5434, - 16553, 1, 10575, 5436, - 16553, 1, 10575, 5438, - 16553, 1, 10575, 5440, - 16553, 1, 10575, 5442, - 16553, 1, 10575, 5444, - 16553, 1, 10575, 5446, - 16553, 1, 10575, 5448, - 16553, 1, 10575, 11970, - 16553, 1, 10575, 12028, - 16553, 1, 10575, 12032, - 16553, 1, 10575, 12058, - 16553, 1, 10575, 12060, - 16553, 1, 10575, 12062, - 16553, 1, 10575, 12064, - 16553, 1, 10575, 12066, - 16553, 1, 10575, 12068, - 16553, 1, 10575, 12170, - 16553, 1, 10575, 12172, - 16553, 1, 10575, 12174, - 16553, 1, 10575, 12176, - 16553, 1, 10575, 12178, - 16553, 1, 10575, 12180, - 16553, 1, 10575, 12182, - 16553, 1, 10575, 12184, - 16553, 1, 10575, 12186, - 16553, 1, 10575, 12188, - 16553, 1, 10575, 12190, - 16553, 1, 10575, 12192, - 16553, 1, 10575, 12194, - 16553, 1, 10575, 12196, - 16553, 1, 10575, 12198, - 16553, 1, 10575, 12200, - 16553, 1, 10575, 12202, - 16553, 1, 10575, 12204, - 16553, 1, 10575, 12206, - 16553, 1, 10575, 12208, - 16553, 1, 10575, 12210, - 16553, 1, 10575, 12212, - 16553, 1, 10575, 12214, - 16553, 1, 10575, 12216, - 16553, 1, 10575, 12218, - 16553, 1, 10575, 12220, - 16553, 1, 10575, 12222, - 16553, 1, 10575, 12224, - 16553, 1, 10575, 12226, - 16553, 1, 10575, 12228, - 16553, 1, 10575, 12230, - 16553, 1, 10575, 12232, - 16553, 1, 10575, 12234, - 16553, 1, 10575, 12236, - 16553, 1, 10575, 12238, - 16553, 1, 10575, 12240, - 16553, 1, 10575, 12242, - 16553, 1, 10575, 12244, - 16553, 1, 10575, 12246, - 16553, 1, 10575, 12248, - 16553, 1, 10575, 12250, - 16553, 1, 10575, 12252, - 16553, 1, 10575, 12254, - 16553, 1, 10575, 12256, - 16553, 1, 10575, 12258, - 16553, 1, 10575, 12260, - 16553, 1, 10575, 12262, - 16553, 1, 10575, 12264, - 16553, 1, 10575, 12266, - 16553, 1, 10575, 12268, - 16553, 1, 10575, 12270, - 16553, 1, 10575, 12272, - 16553, 1, 10575, 12274, - 16553, 1, 10575, 12276, - 16553, 1, 10575, 12278, - 16553, 1, 10575, 12280, - 16553, 1, 10575, 12282, - 16553, 1, 10575, 12284, - 16553, 1, 10575, 12286, - 16553, 1, 10575, 12288, - 16553, 1, 10575, 12290, - 16553, 1, 10575, 12292, - 16553, 1, 10575, 12294, - 16553, 1, 10575, 12296, - 16553, 1, 10575, 12298, - 16553, 1, 10575, 12300, - 16553, 1, 10575, 12302, - 16553, 1, 10575, 12304, - 16553, 1, 10575, 12306, - 16553, 1, 10575, 12308, - 16553, 1, 10575, 12310, - 16553, 1, 10575, 12312, - 16553, 1, 10575, 12314, - 16553, 1, 10575, 12316, - 16553, 1, 10575, 15651, 386, - 16553, 1, 10575, 15653, 388, - 16553, 1, 10575, 15655, 390, - 16553, 1, 10575, 15657, 392, - 16553, 1, 10575, 15662, - 16553, 1, 10575, 15664, - 16553, 1, 10575, 15666, - 16553, 1, 10575, 15668, - 16553, 1, 10575, 15670, - 16553, 1, 10575, 15672, - 16553, 1, 10575, 15674, - 16553, 1, 10575, 19470, - 16553, 1, 10575, 19472, - 16553, 1, 10575, 19474, - 16553, 1, 10575, 19476, - 16553, 1, 10575, 19478, - 16553, 1, 10575, 19480, - 16553, 1, 10575, 19482, - 16553, 1, 10575, 19484, - 16553, 1, 10575, 19486, - 16553, 1, 10575, 19488, - 16553, 1, 10575, 19490, - 16553, 1, 10575, 19492, - 16553, 1, 10575, 19494, - 16553, 1, 10575, 19496, - 16553, 1, 10575, 19498, - 16553, 1, 10575, 19500, - 16553, 1, 10575, 19502, - 16553, 1, 10575, 19504, - 16553, 1, 10575, 19506, - 16553, 1, 10575, 19508, - 16553, 3, 17299, 5594, - 16553, 3, 17299, 5596, - 16553, 3, 17299, 5602, - 16553, 3, 17299, 5626, - 16553, 3, 17299, 5650, - 16553, 3, 17299, 5654, - 16553, 3, 17299, 5668, - 16553, 3, 17299, 5682, - 16553, 3, 17299, 5684, - 16553, 3, 17299, 5714, - 16553, 3, 17299, 5720, - 16553, 3, 17299, 5722, - 16553, 3, 17299, 5726, - 16553, 3, 17299, 5730, - 16553, 3, 20137, 5737, 2368, - 16553, 3, 20137, 5739, 15468, - 16553, 3, 20137, 5741, 6616, - 16553, 3, 20137, 5743, 13178, - 16553, 3, 20137, 5745, 15448, - 16553, 3, 20137, 5747, 15784, - 16553, 3, 20137, 5749, 14426, - 16553, 3, 20137, 5751, 14940, - 16553, 3, 20137, 5753, 17952, - 16553, 3, 20137, 5759, 2752, - 16553, 3, 20137, 5761, 11506, - 16553, 3, 20137, 5762, - 16553, 3, 20137, 5769, 15848, - 16553, 3, 20137, 5771, 7332, - 16553, 3, 20137, 5772, - 16553, 3, 20137, 5775, 11532, - 16553, 3, 20137, 5776, - 16553, 3, 20137, 5778, - 16553, 3, 20137, 5781, 7670, - 16553, 3, 20137, 5782, - 16553, 3, 20137, 5784, - 16553, 3, 20137, 5786, - 16553, 3, 20137, 5792, - 16553, 3, 20137, 5794, - 16553, 3, 20137, 5797, 12712, - 16553, 3, 20137, 5798, - 16553, 3, 20137, 5800, - 16553, 3, 20137, 5803, 18188, - 16553, 3, 20137, 5805, 15730, - 16553, 3, 20137, 5806, - 16553, 3, 20137, 5808, - 16553, 3, 20137, 5810, - 16553, 3, 20137, 5812, - 16553, 3, 20137, 5814, - 16553, 3, 20137, 5816, - 16553, 3, 20137, 5818, - 16553, 3, 20137, 5820, - 16553, 3, 20137, 5822, - 16553, 3, 20137, 5825, 14018, - 16553, 3, 20137, 5826, - 16553, 3, 20137, 5829, 11046, - 16553, 3, 20137, 5830, - 16553, 3, 20137, 5832, - 16553, 3, 20137, 5834, - 16553, 3, 20137, 5836, - 16553, 3, 20137, 5838, - 16553, 3, 20137, 5840, - 16553, 3, 20137, 5842, - 16553, 3, 20137, 5844, - 16553, 3, 20137, 5846, - 16553, 3, 20137, 5848, - 16553, 3, 20137, 5850, - 16553, 3, 20137, 5853, 16332, - 16553, 3, 20137, 5895, 21412, - 16553, 3, 20137, 5901, 17748, - 16553, 3, 20137, 5911, 14936, - 16553, 3, 20137, 5913, 12414, - 16553, 3, 20137, 5914, - 16553, 3, 20137, 5917, 15020, - 16553, 3, 20137, 5918, - 16553, 3, 20137, 5920, - 16553, 3, 20137, 5923, 19435, 17858, - 16553, 3, 20137, 5925, 17858, - 16553, 3, 20137, 5927, 17859, 13286, - 16553, 3, 20137, 5929, 15450, - 16553, 3, 20137, 5930, - 16553, 3, 20137, 5932, - 16553, 3, 20137, 5936, - 16553, 3, 20137, 5938, - 16553, 3, 20137, 5942, - 16553, 3, 20137, 5944, - 16553, 3, 20137, 5946, - 16553, 3, 20137, 5949, 6542, - 16553, 3, 20137, 5950, - 16553, 3, 20137, 5952, - 16553, 3, 20137, 5954, - 16553, 3, 20137, 5956, - 16553, 3, 20137, 5958, - 16553, 3, 20137, 12435, 8806, - 16553, 3, 20137, 12437, 20706, - 16553, 3, 20137, 12439, 1428, - 16553, 3, 20137, 12441, 3040, - 16553, 3, 20137, 12443, 20644, - 16553, 3, 20137, 12445, 18258, - 16553, 3, 20137, 12447, 3270, - 16553, 3, 20137, 12449, 6094, - 16553, 3, 20137, 12451, 1156, - 16553, 3, 20137, 12453, 6124, - 16553, 3, 20137, 17527, 5788, - 16553, 3, 20137, 17527, 5854, - 16553, 3, 20137, 17527, 5856, - 16553, 3, 20137, 17527, 5858, - 16553, 3, 20137, 17527, 5860, - 16553, 3, 20137, 17527, 5862, - 16553, 3, 20137, 17527, 5864, - 16553, 3, 20137, 17527, 5866, - 16553, 3, 20137, 17527, 5868, - 16553, 3, 20137, 17527, 5870, - 16553, 3, 20137, 17527, 5872, - 16553, 3, 20137, 17527, 5874, - 16553, 3, 20137, 17527, 5876, - 16553, 3, 20137, 17527, 5878, - 16553, 3, 20137, 17527, 5880, - 16553, 3, 20137, 17527, 5882, - 16553, 3, 20137, 17527, 5884, - 16553, 3, 20137, 17527, 5886, - 16553, 3, 20137, 17527, 5888, - 16553, 3, 20137, 17527, 5890, - 16553, 3, 20137, 17527, 5892, - 16553, 3, 20137, 17527, 5896, - 16553, 3, 20137, 17527, 5898, - 16553, 3, 20137, 17527, 5902, - 16553, 3, 20137, 17527, 5904, - 16553, 3, 20137, 17527, 5906, - 16553, 3, 20137, 17527, 5908, - 16553, 3, 20137, 17527, 5940, - 16553, 3, 20137, 17527, 5960, - 16553, 3, 20323, 5755, 8004, - 16553, 3, 20323, 5757, 16412, - 16553, 3, 20323, 5765, 12404, - 16553, 3, 20323, 5767, 8860, - 16553, 3, 20323, 5791, 15252, - 16553, 3, 20323, 5935, 13074, - 16553, 3, 20777, 5561, 150, - 16553, 3, 20777, 5563, 606, - 16553, 3, 20777, 5565, 548, - 16553, 3, 20777, 5567, 652, - 16553, 3, 20777, 5569, 660, - 16553, 3, 20777, 5571, 466, - 16553, 3, 20777, 5573, 160, - 16553, 3, 20777, 5575, 0, - 16553, 3, 20777, 5577, 618, - 16553, 3, 20777, 5579, 40, - 16553, 3, 20777, 5581, 566, - 16553, 3, 20777, 5583, 628, - 16553, 3, 20777, 5585, 434, - 16553, 3, 20777, 5587, 168, - 16553, 3, 20777, 5589, 446, - 16553, 3, 20777, 5591, 582, - 16553, 3, 20777, 5593, 796, - 16553, 3, 20777, 5599, 804, - 16553, 3, 20777, 5601, 586, - 16553, 3, 20777, 5605, 454, - 16553, 3, 20777, 5607, 470, - 16553, 3, 20777, 5609, 54, - 16553, 3, 20777, 5611, 610, - 16553, 3, 20777, 5613, 600, - 16553, 3, 20777, 5615, 16, - 16553, 3, 20777, 5617, 2886, - 16553, 3, 20777, 5619, 478, - 16553, 3, 20777, 5621, 614, - 16553, 3, 20777, 5623, 590, - 16553, 3, 20777, 5625, 3026, - 16553, 3, 20777, 5629, 350, - 16553, 3, 20777, 5631, 656, - 16553, 3, 20777, 5633, 8, - 16553, 3, 20777, 5635, 562, - 16553, 3, 20777, 5637, 750, - 16553, 3, 20777, 5639, 624, - 16553, 3, 20777, 5641, 754, - 16553, 3, 20777, 5643, 56, - 16553, 3, 20777, 5645, 362, - 16553, 3, 20777, 5647, 156, - 16553, 3, 20777, 5649, 346, - 16553, 3, 20777, 5653, 2688, - 16553, 3, 20777, 5657, 572, - 16553, 3, 20777, 5659, 170, - 16553, 3, 20777, 5661, 486, - 16553, 3, 20777, 5663, 604, - 16553, 3, 20777, 5665, 738, - 16553, 3, 20777, 5667, 490, - 16553, 3, 20777, 5671, 344, - 16553, 3, 20777, 5673, 638, - 16553, 3, 20777, 5675, 648, - 16553, 3, 20777, 5677, 598, - 16553, 3, 20777, 5679, 28, - 16553, 3, 20777, 5681, 2884, - 16553, 3, 20777, 5687, 352, - 16553, 3, 20777, 5689, 3362, - 16553, 3, 20777, 5691, 366, - 16553, 3, 20777, 5693, 3098, - 16553, 3, 20777, 5695, 668, - 16553, 3, 20777, 5697, 374, - 16553, 3, 20777, 5699, 1324, - 16553, 3, 20777, 5701, 554, - 16553, 3, 20777, 5703, 440, - 16553, 3, 20777, 5705, 798, - 16553, 3, 20777, 5707, 744, - 16553, 3, 20777, 5709, 3024, - 16553, 3, 20777, 5711, 358, - 16553, 3, 20777, 5713, 584, - 16553, 3, 20777, 5717, 426, - 16553, 3, 20777, 5719, 380, - 16553, 3, 20777, 5725, 96, - 16553, 3, 20777, 5729, 3532, - 16553, 3, 20777, 5733, 1326, - 16553, 3, 20777, 5735, 3536, - 16557, 22746, - 16564, - 16575, 15824, - 16577, 15993, 6996, - 16583, 16531, 0, - 16583, 16531, 2, - 16583, 16531, 6, - 16583, 16531, 8, - 16583, 16531, 12, - 16583, 16531, 14, - 16583, 16531, 16, - 16583, 16531, 18, - 16583, 16531, 20, - 16583, 16531, 22, - 16583, 16531, 24, - 16583, 16531, 26, - 16583, 16531, 30, - 16583, 16531, 32, - 16583, 16531, 34, - 16583, 16531, 36, - 16583, 16531, 38, - 16583, 16531, 40, - 16583, 16531, 44, - 16583, 16531, 46, - 16583, 16531, 50, - 16583, 16531, 82, - 16583, 16531, 114, - 16583, 16531, 204, - 16583, 16531, 368, - 16583, 16531, 444, - 16583, 16531, 484, - 16583, 16531, 654, - 16583, 16531, 666, - 16585, 16531, 0, - 16585, 16531, 2, - 16585, 16531, 4, - 16585, 16531, 6, - 16585, 16531, 8, - 16585, 16531, 10, - 16585, 16531, 12, - 16585, 16531, 16, - 16585, 16531, 20, - 16585, 16531, 22, - 16585, 16531, 24, - 16585, 16531, 26, - 16585, 16531, 28, - 16585, 16531, 32, - 16585, 16531, 34, - 16585, 16531, 36, - 16585, 16531, 38, - 16585, 16531, 40, - 16585, 16531, 42, - 16585, 16531, 48, - 16585, 16531, 82, - 16585, 16531, 204, - 16585, 16531, 422, - 16585, 16531, 484, - 16585, 16531, 634, - 16585, 16531, 666, - 16585, 22983, 8808, - 16586, - 16596, - 16605, 23024, - 16637, 3241, 17211, 19574, - 16637, 3241, 18889, 12525, 10690, - 16637, 6101, 15453, 15938, - 16637, 7037, 17211, 19574, - 16637, 7059, 18889, 12525, 10690, - 16637, 7059, 18889, 20489, 10690, - 16637, 8281, 12941, 17811, 20412, - 16637, 8281, 23523, 20412, - 16637, 12525, 15938, - 16637, 13151, 17211, 19574, - 16637, 13151, 18889, 12525, 10690, - 16637, 13421, 12934, - 16637, 14659, 12941, 17811, 20412, - 16637, 14659, 23523, 20412, - 16637, 14782, - 16637, 14911, 15453, 15938, - 16637, 15117, 18889, 12525, 10690, - 16637, 15117, 18889, 20489, 10690, - 16637, 15453, 15938, - 16637, 15453, 17224, - 16637, 19032, - 16637, 20933, 964, - 16637, 21409, 8281, 23523, 20412, - 16637, 21409, 14659, 23523, 20412, - 16637, 23909, 14932, - 16637, 25813, 12379, 17811, 20412, - 16637, 26163, 12379, 17811, 20412, - 16639, 13931, 2325, 7832, - 16639, 13931, 5508, - 16639, 13931, 5517, 7832, - 16639, 13931, 11537, 22819, 8808, - 16639, 13931, 12339, 16452, - 16639, 13931, 13069, 2760, - 16639, 13931, 13069, 3240, - 16639, 13931, 13069, 3536, - 16639, 13931, 13069, 7036, - 16639, 13931, 13069, 7058, - 16639, 13931, 13069, 9358, - 16639, 13931, 13069, 11824, - 16639, 13931, 13069, 13150, - 16639, 13931, 13069, 14778, - 16639, 13931, 13069, 15116, - 16639, 13931, 15407, 10575, 96, - 16639, 13931, 15407, 10575, 314, - 16639, 13931, 15407, 10575, 706, - 16639, 13931, 15407, 10575, 822, - 16639, 13931, 15407, 10575, 836, - 16639, 13931, 15407, 10575, 5504, - 16639, 13931, 15407, 10575, 7806, - 16639, 13931, 15407, 10575, 9528, - 16639, 13931, 15407, 10575, 9774, - 16639, 13931, 15407, 10575, 11254, - 16639, 13931, 15407, 10575, 15518, - 16639, 13931, 15407, 10575, 17190, - 16639, 13931, 15407, 10575, 17864, - 16639, 13931, 15407, 10575, 19408, - 16639, 13931, 16531, 8, - 16639, 13931, 16531, 16, - 16639, 13931, 16531, 17, 16570, - 16639, 13931, 16531, 28, - 16639, 13931, 16531, 108, - 16639, 13931, 16531, 466, - 16639, 13931, 16531, 467, 16570, - 16639, 13931, 16531, 548, - 16639, 13931, 16531, 549, 16570, - 16639, 13931, 16531, 694, - 16639, 13931, 16531, 1116, - 16639, 13931, 16531, 1214, - 16639, 13931, 16531, 1250, - 16639, 13931, 16531, 1624, - 16639, 13931, 16531, 1800, - 16639, 13931, 16531, 1926, - 16639, 13931, 16531, 2096, - 16639, 13931, 16531, 2097, 16570, - 16639, 13931, 16531, 2198, - 16639, 13931, 16531, 2199, 16570, - 16639, 13931, 16531, 2444, - 16639, 13931, 16531, 2445, 16570, - 16639, 13931, 16531, 2624, - 16639, 13931, 16531, 2698, - 16639, 13931, 16531, 3038, - 16639, 13931, 16531, 3182, - 16639, 13931, 16531, 3212, - 16639, 13931, 16531, 3286, - 16639, 13931, 16531, 3440, - 16639, 13931, 16531, 3441, 16570, - 16639, 13931, 16531, 3502, - 16639, 13931, 16531, 3740, - 16639, 13931, 16531, 6070, - 16639, 13931, 16531, 6290, - 16639, 13931, 16531, 6572, - 16639, 13931, 16531, 6656, - 16639, 13931, 16531, 7304, - 16639, 13931, 16531, 7854, - 16639, 13931, 16531, 8080, - 16639, 13931, 16531, 9316, - 16639, 13931, 16531, 9317, 16570, - 16639, 13931, 16531, 9856, - 16639, 13931, 16531, 10960, - 16639, 13931, 16531, 11082, - 16639, 13931, 16531, 11648, - 16639, 13931, 16531, 12424, - 16639, 13931, 17534, - 16639, 13931, 19674, - 16639, 13931, 19676, - 16639, 13931, 20777, 22819, 8808, - 16661, 1290, - 16661, 8281, 2761, 18951, 12532, - 16661, 14659, 2761, 18951, 12532, - 16661, 15109, 15453, 14659, 20501, 13594, - 16661, 15109, 20150, - 16670, - 16671, 5978, - 16673, 14526, - 16673, 14527, 2748, - 16673, 14527, 11513, 22837, 12415, 95, 8280, - 16674, - 16677, 22756, - 16679, 3537, 3308, - 16680, - 16681, 6996, - 16684, - 16687, 21108, - 16701, 20373, 14932, - 16714, - 16718, - 16759, 8809, 10574, - 16761, 20759, 506, - 16761, 20759, 507, 529, 13177, 660, - 16787, 3413, 7073, 10696, - 16787, 10574, - 16787, 16111, 7073, 10696, - 16787, 17473, 7073, 10696, - 16787, 17475, 7073, 10696, - 16787, 18149, 7073, 10696, - 16787, 19117, 7073, 10696, - 16787, 19967, 7073, 10696, - 16787, 20053, 7073, 10696, - 16787, 20369, 7073, 10696, - 16787, 20825, 7073, 10696, - 16787, 21855, 7073, 10696, - 16789, 10574, - 16795, 23577, 21100, - 16803, 19642, - 16804, - 16819, 2034, - 16821, 6108, - 16821, 13470, - 16829, 8281, 23522, - 16829, 14659, 23522, - 16837, 11044, - 16844, - 16852, - 16855, 13509, 6339, 10575, 1442, - 16855, 13509, 6339, 10575, 1688, - 16855, 13509, 6339, 10575, 2100, - 16855, 13509, 6339, 10575, 2164, - 16855, 13509, 6339, 10575, 2270, - 16855, 13509, 6339, 10575, 3660, - 16855, 13509, 6339, 10575, 3726, - 16855, 13509, 6339, 10575, 3884, - 16855, 13509, 6339, 10575, 7444, - 16855, 13509, 6339, 10575, 8050, - 16855, 13509, 6339, 10575, 8268, - 16855, 13509, 6339, 10575, 8996, - 16855, 13509, 6339, 10575, 9854, - 16855, 13509, 6339, 10575, 10954, - 16855, 13509, 6339, 10575, 11054, - 16855, 13509, 6339, 10575, 11072, - 16855, 13509, 6339, 10575, 11674, - 16855, 13509, 6339, 10575, 15500, - 16855, 13509, 6339, 10575, 17444, - 16855, 13509, 8809, 1135, 628, - 16855, 13509, 8809, 1135, 1780, - 16855, 13509, 8809, 1135, 2026, - 16855, 13509, 8809, 1135, 3514, - 16855, 13509, 8809, 1135, 8062, - 16855, 13509, 8809, 1135, 10720, - 16855, 13509, 8809, 1135, 10872, - 16855, 13509, 10575, 98, - 16855, 13509, 10575, 301, 3890, - 16855, 13509, 10575, 1135, 2889, 6550, - 16855, 13509, 10575, 1135, 6369, 17446, - 16855, 13509, 10575, 1135, 7427, 2333, 9505, 9504, - 16855, 13509, 10575, 1135, 9459, 3476, - 16855, 13509, 10575, 1135, 11065, 3106, - 16855, 13509, 10575, 1135, 11136, - 16855, 13509, 10575, 1135, 11137, 6318, - 16855, 13509, 10575, 1135, 12662, - 16855, 13509, 10575, 1748, - 16855, 13509, 10575, 2296, - 16855, 13509, 10575, 2482, - 16855, 13509, 10575, 3394, - 16855, 13509, 10575, 3707, 2316, - 16855, 13509, 10575, 3707, 7008, - 16855, 13509, 10575, 3707, 9468, - 16855, 13509, 10575, 3707, 10420, - 16855, 13509, 10575, 3707, 10956, - 16855, 13509, 10575, 3707, 15100, - 16855, 13509, 10575, 3707, 15223, 6252, - 16855, 13509, 10575, 4103, 10926, - 16855, 13509, 10575, 7630, - 16855, 13509, 10575, 8849, 10716, - 16855, 13509, 10575, 8849, 15218, - 16855, 13509, 10575, 9448, - 16855, 13509, 10575, 9508, - 16855, 13509, 10575, 11570, - 16855, 13509, 10575, 11574, - 16855, 13509, 10575, 11594, - 16855, 13509, 10575, 15499, 3076, - 16855, 13509, 10575, 15499, 3480, - 16855, 13509, 10575, 15499, 6998, - 16855, 13509, 10575, 15499, 14286, - 16855, 13509, 10575, 17479, 6254, - 16855, 13509, 10575, 23693, 1748, - 16855, 13509, 13069, 2760, - 16855, 13509, 13069, 3240, - 16855, 13509, 13069, 3536, - 16855, 13509, 13069, 7036, - 16855, 13509, 13069, 7058, - 16855, 13509, 13069, 9358, - 16855, 13509, 13069, 11824, - 16855, 13509, 13069, 13150, - 16855, 13509, 13069, 14778, - 16855, 13509, 13069, 15116, - 16855, 13509, 15407, 1984, - 16855, 13509, 15407, 2010, - 16855, 13509, 15407, 2016, - 16855, 13509, 15407, 2030, - 16855, 13509, 15407, 2048, - 16855, 13509, 15407, 2068, - 16855, 13509, 15407, 2090, - 16855, 13509, 15407, 2106, - 16855, 13509, 15407, 2132, - 16855, 13509, 15407, 2150, - 16855, 13509, 15407, 2158, - 16855, 13509, 15407, 2168, - 16855, 13509, 15407, 7964, - 16855, 13509, 15407, 7972, - 16855, 13509, 15407, 7986, - 16855, 13509, 15407, 7988, - 16855, 13509, 15407, 8010, - 16855, 13509, 15407, 8014, - 16855, 13509, 15407, 8016, - 16855, 13509, 15407, 8020, - 16855, 13509, 15407, 8036, - 16855, 13509, 15407, 8038, - 16855, 13509, 15407, 8098, - 16855, 13509, 15407, 8100, - 16855, 13509, 15407, 8136, - 16855, 13509, 15407, 8138, - 16855, 13509, 15407, 8170, - 16855, 13509, 15407, 8172, - 16855, 13509, 16787, 3413, 19618, - 16855, 13509, 16787, 3413, 22044, - 16855, 13509, 16787, 10904, - 16855, 13509, 16787, 18281, 20310, - 16855, 13509, 16787, 20132, - 16855, 13509, 16787, 20310, - 16855, 13509, 16787, 22072, - 16855, 13509, 21143, 96, - 16855, 13509, 21143, 1092, - 16855, 13509, 21143, 1700, - 16855, 13509, 21143, 2216, - 16855, 13509, 21143, 2380, - 16855, 13509, 21143, 2530, - 16855, 13509, 21143, 3050, - 16855, 13509, 21143, 3666, - 16855, 13509, 21143, 3814, - 16855, 13509, 21143, 3904, - 16855, 13509, 21143, 6272, - 16855, 13509, 21143, 7530, - 16855, 13509, 21143, 7608, - 16855, 13509, 21143, 9406, - 16855, 13509, 21143, 9410, - 16855, 13509, 21143, 9974, - 16855, 13509, 21143, 14092, - 16855, 13509, 21143, 14280, - 16855, 13509, 21143, 14284, - 16855, 13509, 21143, 14552, - 16860, - 16866, - 16873, 17298, - 16876, - 16881, 18278, - 16891, 323, 13833, 20510, - 16891, 323, 17235, 10182, - 16891, 11513, 5978, - 16891, 11513, 12535, 7424, - 16891, 11513, 12936, - 16891, 11513, 16205, 13458, - 16891, 11513, 18907, 6996, - 16891, 11513, 21470, - 16891, 13093, 21092, - 16891, 15829, 16022, - 16891, 18967, 6113, 13459, 323, 23072, - 16891, 19706, - 16891, 20062, - 16895, 10574, - 16900, - 16911, 15208, - 16914, - 16920, - 16922, - 16925, 19724, - 16925, 19725, 9787, 3537, 562, - 16935, 22210, - 16947, 1088, - 16947, 6229, 21815, 13806, - 16947, 18750, - 16952, - 16957, 7670, - 16957, 8808, - 16957, 8809, 6996, - 16958, - 16961, 14548, - 16967, 12488, - 16968, - 16979, 17643, 23308, - 16987, 13470, - 16996, - 17002, - 17003, 6996, - 17005, 1088, - 17005, 22590, - 17007, 431, 10574, - 17007, 433, 10574, - 17007, 451, 10574, - 17007, 1290, - 17007, 5967, 507, 7432, - 17007, 7032, - 17007, 7432, - 17007, 7433, 11513, 9831, 17769, 16661, 897, 10151, 18150, - 17007, 7433, 11513, 18151, 19160, - 17007, 12922, - 17007, 14911, 8281, 17225, 17810, - 17007, 16093, 25795, 16614, - 17007, 17224, - 17007, 25795, 16614, - 17015, 15407, 10575, 8, - 17015, 15407, 10575, 16, - 17015, 15407, 10575, 28, - 17015, 15407, 10575, 40, - 17015, 15407, 10575, 72, - 17015, 15407, 10575, 96, - 17015, 15407, 10575, 178, - 17015, 15407, 10575, 218, - 17015, 16531, 0, - 17015, 16531, 108, - 17015, 16531, 126, - 17015, 16531, 150, - 17015, 16531, 248, - 17015, 16531, 272, - 17015, 16531, 344, - 17015, 16531, 358, - 17015, 16531, 394, - 17015, 16531, 426, - 17015, 16531, 466, - 17015, 16531, 548, - 17015, 16531, 598, - 17015, 16531, 614, - 17015, 16531, 648, - 17015, 16531, 738, - 17015, 16531, 778, - 17015, 16531, 2392, - 17015, 16531, 2548, - 17015, 16531, 2574, - 17015, 16531, 2698, - 17015, 16531, 9284, - 17015, 16531, 9582, - 17015, 17534, - 17015, 19057, 8808, - 17015, 21143, 10575, 14, - 17015, 21143, 10575, 26, - 17015, 21143, 10575, 34, - 17015, 21143, 10575, 474, - 17023, 8280, - 17023, 14658, - 17023, 17298, - 17026, - 17027, 12415, 699, 8280, - 17027, 12415, 699, 14658, - 17027, 12415, 6701, 8280, - 17027, 12415, 6701, 14658, - 17027, 12415, 8281, 698, - 17027, 12415, 8281, 6700, - 17027, 12415, 14659, 698, - 17027, 12415, 14659, 6700, - 17033, 16926, - 17037, 19791, 19743, 14931, 6833, 12414, - 17037, 19791, 19743, 18137, 19790, - 17042, - 17045, 14880, - 17045, 17896, - 17048, - 17055, 2846, - 17055, 11372, - 17074, - 17080, - 17084, - 17085, 19040, - 17086, - 17089, 14911, 8, - 17089, 14911, 12, - 17089, 14911, 22, - 17089, 14911, 28, - 17089, 17835, 2, - 17089, 17835, 8, - 17089, 17835, 10, - 17089, 17835, 14, - 17089, 17835, 16, - 17089, 17835, 22, - 17089, 17835, 24, - 17089, 17835, 30, - 17089, 17835, 34, - 17089, 20241, 217, 20412, - 17090, - 17095, 14545, 13944, - 17098, - 17104, - 17109, 1290, - 17115, 16710, - 17127, 1856, - 17138, - 17145, 17156, - 17148, - 17150, - 17152, - 17154, - 17171, 13837, 21779, 8808, - 17171, 25813, 12379, 21779, 8808, - 17171, 26163, 12379, 21779, 8808, - 17171, 28049, 21779, 8808, - 17179, 6996, - 17181, 529, 3284, - 17187, 5978, - 17199, 20933, 7022, - 17199, 22495, 7022, - 17203, 17734, - 17204, - 17205, 3756, - 17207, 9443, 2790, - 17207, 14810, - 17207, 19657, 2790, - 17212, - 17215, 13944, - 17225, 1, 9787, 24, - 17225, 5, 9787, 364, - 17225, 21, 2750, - 17225, 25, 2750, - 17225, 25, 9787, 36, - 17225, 25, 9787, 37, 19164, - 17225, 25, 12938, - 17225, 25, 19164, - 17225, 43, 9787, 24, - 17225, 80, - 17225, 96, - 17225, 120, - 17225, 128, - 17225, 130, - 17225, 140, - 17225, 141, 12938, - 17225, 141, 19164, - 17225, 142, - 17225, 150, - 17225, 152, - 17225, 162, - 17225, 164, - 17225, 166, - 17225, 167, 12938, - 17225, 167, 19164, - 17225, 220, - 17225, 238, - 17225, 250, - 17225, 270, - 17225, 272, - 17225, 278, - 17225, 290, - 17225, 296, - 17225, 322, - 17225, 336, - 17225, 358, - 17225, 360, - 17225, 364, - 17225, 368, - 17225, 370, - 17225, 372, - 17225, 373, 12938, - 17225, 373, 17834, - 17225, 373, 19164, - 17225, 378, - 17225, 382, - 17225, 384, - 17225, 408, - 17225, 410, - 17225, 420, - 17225, 426, - 17225, 428, - 17225, 429, 14910, - 17225, 436, - 17225, 442, - 17225, 444, - 17225, 445, 12938, - 17225, 445, 19164, - 17225, 452, - 17225, 455, 0, - 17225, 455, 10, - 17225, 455, 12, - 17225, 455, 22, - 17225, 455, 24, - 17225, 455, 36, - 17225, 455, 42, - 17225, 455, 44, - 17225, 456, - 17225, 457, 8854, - 17225, 458, - 17225, 459, 8854, - 17225, 466, - 17225, 472, - 17225, 482, - 17225, 488, - 17225, 492, - 17225, 494, - 17225, 536, - 17225, 548, - 17225, 549, 5502, - 17225, 550, - 17225, 556, - 17225, 560, - 17225, 564, - 17225, 568, - 17225, 570, - 17225, 574, - 17225, 576, - 17225, 632, - 17225, 640, - 17225, 740, - 17225, 964, - 17225, 1082, - 17225, 1086, - 17225, 1164, - 17225, 1405, 9141, 13950, - 17225, 1405, 9141, 14640, - 17225, 1405, 9141, 16330, - 17225, 1405, 9141, 17302, - 17225, 1405, 9141, 19246, - 17225, 1406, - 17225, 1538, - 17225, 1598, - 17225, 1634, - 17225, 1782, - 17225, 1794, - 17225, 2046, - 17225, 2110, - 17225, 2286, - 17225, 2426, - 17225, 2436, - 17225, 2452, - 17225, 2464, - 17225, 2876, - 17225, 3032, - 17225, 3033, 9787, 36, - 17225, 3033, 9787, 37, 19164, - 17225, 3432, - 17225, 3468, - 17225, 3622, - 17225, 5452, - 17225, 6084, - 17225, 6628, - 17225, 6694, - 17225, 7052, - 17225, 7059, 15975, 12525, 22066, - 17225, 7059, 15975, 20606, - 17225, 7059, 15975, 21190, - 17225, 7059, 17916, - 17225, 7318, - 17225, 7660, - 17225, 7812, - 17225, 8022, - 17225, 8110, - 17225, 8281, 9783, 1037, 20406, - 17225, 8854, - 17225, 8954, - 17225, 9146, - 17225, 9776, - 17225, 9778, - 17225, 9846, - 17225, 9878, - 17225, 10114, - 17225, 10152, - 17225, 10184, - 17225, 11513, 3473, 7429, 12524, - 17225, 11513, 8281, 7429, 12524, - 17225, 11513, 13839, 8281, 19791, 7429, 12524, - 17225, 11513, 13839, 14659, 19791, 7429, 12524, - 17225, 11513, 14659, 7429, 12524, - 17225, 11513, 15287, 8281, 661, 13839, 14659, 7022, - 17225, 11513, 15287, 8281, 19791, 7429, 12524, - 17225, 11513, 15287, 14659, 661, 13839, 8281, 7022, - 17225, 11513, 15287, 14659, 19791, 7429, 12524, - 17225, 11513, 15827, 7429, 12524, - 17225, 11513, 19791, 22251, 7022, - 17225, 11513, 20933, 7022, - 17225, 11513, 21147, 18774, - 17225, 11513, 22495, 7022, - 17225, 11513, 22731, 22251, 7022, - 17225, 11750, - 17225, 12386, - 17225, 12494, - 17225, 12998, - 17225, 13142, - 17225, 13336, - 17225, 13340, - 17225, 13386, - 17225, 13448, - 17225, 13532, - 17225, 13544, - 17225, 13589, 506, - 17225, 13589, 507, 529, 2643, 13177, 660, - 17225, 13589, 507, 529, 13177, 660, - 17225, 13646, - 17225, 13670, - 17225, 13726, - 17225, 13904, - 17225, 13906, - 17225, 14260, - 17225, 14464, - 17225, 14510, - 17225, 14518, - 17225, 14562, - 17225, 14659, 9783, 1037, 20406, - 17225, 14700, - 17225, 14772, - 17225, 14774, - 17225, 15438, - 17225, 15506, - 17225, 15508, - 17225, 15718, - 17225, 15746, - 17225, 15822, - 17225, 16292, - 17225, 16336, - 17225, 16352, - 17225, 16374, - 17225, 16478, - 17225, 16490, - 17225, 16616, - 17225, 16878, - 17225, 16912, - 17225, 16940, - 17225, 17207, 7065, 3473, 8280, - 17225, 17207, 7065, 3473, 14658, - 17225, 17207, 7065, 15827, 8280, - 17225, 17207, 7065, 15827, 14658, - 17225, 17326, - 17225, 17728, - 17225, 18206, - 17225, 18336, - 17225, 18340, - 17225, 18392, - 17225, 18534, - 17225, 18550, - 17225, 18572, - 17225, 18604, - 17225, 18606, - 17225, 18624, - 17225, 19004, - 17225, 19026, - 17225, 19028, - 17225, 19114, - 17225, 19542, - 17225, 19650, - 17225, 19990, - 17225, 20123, 7652, - 17225, 20130, - 17225, 20411, 506, - 17225, 20411, 507, 529, 2643, 13177, 660, - 17225, 20411, 507, 529, 13177, 660, - 17225, 20428, - 17225, 20511, 21498, - 17225, 20574, - 17225, 20614, - 17225, 21450, - 17225, 21474, - 17225, 21538, - 17225, 21544, - 17225, 21594, - 17225, 21742, - 17225, 22522, - 17225, 23098, - 17225, 23290, - 17231, 507, 18516, - 17257, 20419, 15453, 10690, - 17269, 22558, - 17273, 506, - 17273, 507, 529, 13177, 660, - 17273, 507, 529, 13177, 661, 11513, 1291, 12318, - 17273, 507, 11513, 2643, 13177, 660, - 17273, 507, 12319, 2643, 13177, 660, - 17273, 507, 12319, 15141, 20406, - 17273, 507, 12319, 15703, 13177, 660, - 17273, 507, 12319, 16121, 10574, - 17273, 11513, 1290, - 17273, 11513, 9905, 10575, 12502, - 17273, 11513, 26135, 10575, 12502, - 17273, 12319, 17272, - 17273, 12319, 20764, - 17273, 12319, 22837, 12414, - 17283, 9787, 21076, - 17286, - 17297, 14075, 10575, 18254, - 17297, 14075, 10575, 19540, - 17297, 14075, 10575, 19962, - 17297, 14075, 10575, 21003, 18254, - 17297, 14075, 15407, 10575, 0, - 17297, 14075, 15407, 10575, 8, - 17297, 14075, 15407, 10575, 16, - 17297, 14075, 15407, 10575, 40, - 17297, 14075, 15407, 10575, 522, - 17297, 14075, 16531, 0, - 17297, 14075, 16531, 8, - 17297, 14075, 16531, 16, - 17297, 14075, 16531, 28, - 17297, 14075, 16531, 40, - 17297, 14075, 16531, 118, - 17297, 14075, 16531, 142, - 17297, 14075, 16531, 168, - 17297, 14075, 16531, 262, - 17297, 14075, 16531, 288, - 17297, 14075, 16531, 350, - 17297, 14075, 16531, 374, - 17297, 14075, 16531, 412, - 17297, 14075, 16531, 446, - 17297, 14075, 16531, 486, - 17297, 14075, 16531, 566, - 17297, 14075, 16531, 606, - 17297, 14075, 16531, 628, - 17297, 14075, 16531, 660, - 17297, 14075, 16531, 1006, - 17297, 14075, 16531, 1122, - 17297, 14075, 16531, 1220, - 17297, 14075, 16531, 1242, - 17297, 14075, 16531, 1594, - 17297, 14075, 16531, 1920, - 17297, 14075, 16531, 2042, - 17297, 14075, 16531, 2836, - 17297, 14075, 16531, 3122, - 17297, 14075, 16531, 3428, - 17297, 14075, 16531, 3510, - 17297, 14075, 16531, 6578, - 17297, 14075, 16531, 11088, - 17297, 14075, 16939, 16606, - 17297, 14075, 16939, 16608, - 17297, 14075, 16939, 16610, - 17297, 14075, 16939, 16612, - 17299, 1493, 1393, 507, 10920, - 17299, 1493, 1393, 507, 16636, - 17299, 1493, 1393, 507, 24172, - 17299, 1493, 1393, 507, 24173, 12532, - 17299, 1493, 6056, - 17299, 1493, 6547, 8325, 16122, - 17299, 1493, 7021, 21850, - 17299, 1493, 7057, 7006, - 17299, 1493, 8321, 7006, - 17299, 1493, 9526, - 17299, 1493, 11141, 1, 23202, - 17299, 1493, 11259, 21850, - 17299, 1493, 13425, 21850, - 17299, 1493, 13925, 17856, - 17299, 1493, 14819, 322, - 17299, 1493, 14819, 2784, - 17299, 1493, 14932, - 17299, 1493, 14971, 507, 10920, - 17299, 1493, 14971, 507, 18260, - 17299, 1493, 15870, - 17299, 1493, 16026, - 17299, 1493, 16027, 7057, 3536, - 17299, 1493, 16027, 16637, 14783, 7056, - 17299, 1493, 16027, 17225, 17863, 12539, 7056, - 17299, 1493, 16027, 23573, 17863, 12539, 7056, - 17299, 1493, 16037, 17913, 2760, - 17299, 1493, 16037, 17913, 3536, - 17299, 1493, 16037, 17913, 7058, - 17299, 1493, 16037, 17913, 15116, - 17299, 1493, 16122, - 17299, 1493, 17013, 21850, - 17299, 1493, 18114, - 17299, 1493, 18682, - 17299, 1493, 19663, 17022, - 17299, 1493, 20355, 23032, - 17299, 1493, 20933, 22960, - 17299, 1493, 21044, - 17299, 1493, 21827, 17192, - 17299, 1493, 22495, 22960, - 17299, 1493, 22952, - 17299, 1493, 22953, 7057, 3536, - 17299, 1493, 23032, - 17299, 1493, 23683, 7792, - 17305, 1393, 507, 21728, - 17305, 3537, 20933, 6697, 12318, - 17305, 3537, 20933, 6697, 12502, - 17305, 12917, 17177, 8280, - 17305, 12917, 17177, 14658, - 17305, 13187, 12318, - 17305, 13187, 12502, - 17305, 13469, 12318, - 17305, 13469, 12502, - 17305, 14052, - 17305, 14635, 12318, - 17305, 14635, 12502, - 17305, 14702, - 17305, 15117, 6697, 12318, - 17305, 15117, 6697, 12502, - 17305, 16093, 15629, 17682, - 17305, 16093, 15629, 22494, - 17305, 16531, 8, - 17305, 16531, 276, - 17305, 16531, 554, - 17305, 16531, 2438, - 17305, 16531, 2676, - 17305, 16531, 3398, - 17305, 16531, 3750, - 17305, 16531, 6066, - 17305, 16531, 7478, - 17305, 16531, 8002, - 17305, 16531, 9968, - 17305, 16531, 10154, - 17305, 16531, 10478, - 17305, 16531, 10914, - 17305, 16531, 10915, 20068, - 17305, 16531, 11752, - 17305, 16531, 11753, 276, - 17305, 16531, 11812, - 17305, 16531, 12350, - 17305, 16531, 13259, 19060, - 17305, 16531, 13326, - 17305, 16531, 13327, 20068, - 17305, 16531, 14720, - 17305, 16531, 16008, - 17305, 16531, 16504, - 17305, 16531, 18019, 16009, 10154, - 17305, 16531, 18843, 12512, - 17305, 16531, 18843, 16254, - 17305, 16531, 18843, 17982, - 17305, 16531, 19060, - 17305, 16531, 19137, 230, - 17305, 16531, 19137, 13688, - 17305, 16531, 19137, 15612, - 17305, 16531, 20587, 554, - 17305, 16531, 21575, 344, - 17305, 16531, 21575, 598, - 17305, 16531, 21575, 1000, - 17305, 16531, 21575, 2278, - 17305, 16531, 21575, 2574, - 17305, 16531, 21575, 2624, - 17305, 16531, 21575, 2698, - 17305, 16531, 21575, 3286, - 17305, 16531, 21575, 3502, - 17305, 16531, 21575, 8342, - 17305, 16531, 21575, 9422, - 17305, 16531, 23679, 12350, - 17305, 16977, 12318, - 17305, 16977, 12502, - 17305, 16977, 16092, - 17305, 17629, 12318, - 17305, 17629, 12502, - 17305, 17629, 16092, - 17305, 17742, - 17305, 18741, 8321, 12318, - 17305, 18741, 8321, 12502, - 17305, 20011, 1290, - 17305, 20105, 16792, - 17305, 20105, 21590, - 17305, 20105, 22188, - 17305, 20598, - 17305, 21780, - 17305, 21925, 7073, 10696, - 17305, 21925, 12916, - 17305, 21925, 12917, 17177, 8280, - 17305, 21925, 12917, 17177, 14658, - 17305, 22495, 12916, - 17305, 23092, - 17305, 23245, 16092, - 17305, 23681, 7073, 10696, - 17305, 23681, 12916, - 17305, 23681, 12917, 17177, 8280, - 17305, 23737, 8808, - 17316, - 17321, 13069, 2760, - 17321, 13069, 3240, - 17321, 13069, 3536, - 17321, 13069, 7036, - 17321, 13069, 7058, - 17321, 13069, 9358, - 17321, 13069, 11824, - 17321, 13069, 13150, - 17321, 13069, 14778, - 17321, 13069, 15116, - 17321, 16531, 62, - 17321, 16531, 88, - 17321, 16531, 102, - 17321, 16531, 106, - 17321, 16531, 108, - 17321, 16531, 126, - 17321, 16531, 150, - 17321, 16531, 182, - 17321, 16531, 210, - 17321, 16531, 224, - 17321, 16531, 226, - 17321, 16531, 228, - 17321, 16531, 248, - 17321, 16531, 272, - 17321, 16531, 302, - 17321, 16531, 328, - 17321, 16531, 338, - 17321, 16531, 342, - 17321, 16531, 358, - 17321, 16531, 394, - 17321, 16531, 426, - 17321, 16531, 430, - 17321, 16531, 448, - 17321, 16531, 460, - 17321, 16531, 464, - 17321, 16531, 466, - 17321, 16531, 502, - 17321, 16531, 526, - 17321, 16531, 540, - 17321, 16531, 544, - 17321, 16531, 548, - 17321, 16531, 598, - 17321, 16531, 614, - 17321, 16531, 648, - 17321, 16531, 678, - 17321, 16531, 700, - 17321, 16531, 708, - 17321, 16531, 712, - 17321, 16531, 716, - 17321, 16531, 724, - 17321, 16531, 732, - 17321, 16531, 736, - 17321, 16531, 738, - 17321, 16531, 762, - 17321, 16531, 778, - 17321, 16531, 796, - 17321, 16531, 932, - 17321, 16531, 936, - 17321, 16531, 938, - 17321, 16531, 940, - 17321, 16531, 1116, - 17321, 16531, 1236, - 17321, 16531, 1588, - 17321, 16531, 1796, - 17321, 16531, 2036, - 17321, 16531, 2574, - 17321, 16531, 2586, - 17321, 16531, 2698, - 17321, 16531, 2830, - 17321, 16531, 3212, - 17321, 16531, 3422, - 17321, 16531, 3488, - 17321, 16531, 3580, - 17321, 16531, 3588, - 17321, 16531, 3590, - 17321, 16531, 3594, - 17321, 16531, 3598, - 17321, 16531, 3600, - 17321, 16531, 3602, - 17321, 16531, 3604, - 17321, 16531, 7680, - 17321, 16531, 8351, 3590, - 17321, 16531, 11244, - 17321, 16531, 11246, - 17321, 16531, 11248, - 17321, 16531, 11250, - 17321, 16531, 13259, 474, - 17321, 16531, 14837, 938, - 17321, 16531, 14837, 3594, - 17323, 21517, 8808, - 17323, 24212, - 17323, 24214, - 17323, 24216, - 17323, 24218, - 17323, 24220, - 17323, 24222, - 17323, 24224, - 17323, 24226, - 17323, 24228, - 17323, 24230, - 17323, 24232, - 17323, 24234, - 17323, 24236, - 17323, 24238, - 17323, 24240, - 17323, 24242, - 17323, 24244, - 17323, 24246, - 17323, 24248, - 17323, 24250, - 17323, 24252, - 17323, 24254, - 17323, 24256, - 17323, 24258, - 17323, 24260, - 17323, 24262, - 17323, 24264, - 17323, 24266, - 17323, 24268, - 17323, 24270, - 17323, 24272, - 17323, 24274, - 17323, 24276, - 17323, 24278, - 17323, 24280, - 17323, 24282, - 17323, 24284, - 17323, 24286, - 17323, 24288, - 17323, 24290, - 17323, 24292, - 17323, 24294, - 17323, 24296, - 17323, 24298, - 17323, 24300, - 17323, 24302, - 17323, 24304, - 17323, 24306, - 17323, 24308, - 17323, 24310, - 17323, 24312, - 17323, 24314, - 17323, 24316, - 17323, 24318, - 17323, 24320, - 17323, 24322, - 17323, 24324, - 17323, 24326, - 17323, 24328, - 17323, 24330, - 17323, 24332, - 17323, 24334, - 17323, 24336, - 17323, 24338, - 17323, 24340, - 17323, 24342, - 17323, 24344, - 17323, 24346, - 17323, 24348, - 17323, 24350, - 17323, 24352, - 17323, 24354, - 17323, 24356, - 17323, 24358, - 17323, 24360, - 17323, 24362, - 17323, 24364, - 17323, 24366, - 17323, 24368, - 17323, 24370, - 17323, 24372, - 17323, 24374, - 17323, 24376, - 17323, 24378, - 17323, 24380, - 17323, 24382, - 17323, 24384, - 17323, 24386, - 17323, 24388, - 17323, 24390, - 17323, 24392, - 17323, 24394, - 17323, 24396, - 17323, 24398, - 17323, 24400, - 17323, 24402, - 17323, 24404, - 17323, 24406, - 17323, 24408, - 17323, 24410, - 17323, 24412, - 17323, 24414, - 17323, 24416, - 17323, 24418, - 17323, 24420, - 17323, 24422, - 17323, 24424, - 17323, 24426, - 17323, 24428, - 17323, 24430, - 17323, 24432, - 17323, 24434, - 17323, 24436, - 17323, 24438, - 17323, 24440, - 17323, 24442, - 17323, 24444, - 17323, 24446, - 17323, 24448, - 17323, 24450, - 17323, 24452, - 17323, 24454, - 17323, 24456, - 17323, 24458, - 17323, 24460, - 17323, 24462, - 17323, 24464, - 17323, 24466, - 17323, 24468, - 17323, 24470, - 17323, 24472, - 17323, 24474, - 17323, 24476, - 17323, 24478, - 17323, 24480, - 17323, 24482, - 17323, 24484, - 17323, 24486, - 17323, 24488, - 17323, 24490, - 17323, 24492, - 17323, 24494, - 17323, 24496, - 17323, 24498, - 17323, 24500, - 17323, 24502, - 17323, 24504, - 17323, 24506, - 17323, 24508, - 17323, 24510, - 17323, 24512, - 17323, 24514, - 17323, 24516, - 17323, 24518, - 17323, 24520, - 17323, 24522, - 17323, 24524, - 17323, 24526, - 17323, 24528, - 17323, 24530, - 17323, 24532, - 17323, 24534, - 17323, 24536, - 17323, 24538, - 17323, 24540, - 17323, 24542, - 17323, 24544, - 17323, 24546, - 17323, 24548, - 17323, 24550, - 17323, 24552, - 17323, 24554, - 17323, 24556, - 17323, 24558, - 17323, 24560, - 17323, 24562, - 17323, 24564, - 17323, 24566, - 17323, 24568, - 17323, 24570, - 17323, 24572, - 17323, 24574, - 17323, 24576, - 17323, 24578, - 17323, 24580, - 17323, 24582, - 17323, 24584, - 17323, 24586, - 17323, 24588, - 17323, 24590, - 17323, 24592, - 17323, 24594, - 17323, 24596, - 17323, 24598, - 17323, 24600, - 17323, 24602, - 17323, 24604, - 17323, 24606, - 17323, 24608, - 17323, 24610, - 17323, 24612, - 17323, 24614, - 17323, 24616, - 17323, 24618, - 17323, 24620, - 17323, 24622, - 17323, 24624, - 17323, 24626, - 17323, 24628, - 17323, 24630, - 17323, 24632, - 17323, 24634, - 17323, 24636, - 17323, 24638, - 17323, 24640, - 17323, 24642, - 17323, 24644, - 17323, 24646, - 17323, 24648, - 17323, 24650, - 17323, 24652, - 17323, 24654, - 17323, 24656, - 17323, 24658, - 17323, 24660, - 17323, 24662, - 17323, 24664, - 17323, 24666, - 17323, 24668, - 17323, 24670, - 17323, 24672, - 17323, 24674, - 17323, 24676, - 17323, 24678, - 17323, 24680, - 17323, 24682, - 17323, 24684, - 17323, 24686, - 17323, 24688, - 17323, 24690, - 17323, 24692, - 17323, 24694, - 17323, 24696, - 17323, 24698, - 17323, 24700, - 17323, 24702, - 17323, 24704, - 17323, 24706, - 17323, 24708, - 17323, 24710, - 17323, 24712, - 17323, 24714, - 17323, 24716, - 17323, 24718, - 17323, 24720, - 17323, 24722, - 17323, 24724, - 17323, 24726, - 17323, 24728, - 17323, 24730, - 17323, 24732, - 17323, 24734, - 17323, 24736, - 17323, 24738, - 17323, 24740, - 17323, 24742, - 17323, 24744, - 17323, 24746, - 17323, 24748, - 17323, 24750, - 17323, 24752, - 17323, 24754, - 17323, 24756, - 17323, 24758, - 17323, 24760, - 17323, 24762, - 17323, 24764, - 17323, 24766, - 17323, 24768, - 17323, 24770, - 17323, 24772, - 17323, 24774, - 17323, 24776, - 17323, 24778, - 17323, 24780, - 17323, 24782, - 17323, 24784, - 17323, 24786, - 17323, 24788, - 17323, 24790, - 17323, 24792, - 17323, 24794, - 17323, 24796, - 17323, 24798, - 17323, 24800, - 17323, 24802, - 17323, 24804, - 17323, 24806, - 17323, 24808, - 17323, 24810, - 17323, 24812, - 17323, 24814, - 17323, 24816, - 17323, 24818, - 17323, 24820, - 17323, 24822, - 17323, 24824, - 17323, 24826, - 17323, 24828, - 17323, 24830, - 17323, 24832, - 17323, 24834, - 17323, 24836, - 17323, 24838, - 17323, 24840, - 17323, 24842, - 17323, 24844, - 17323, 24846, - 17323, 24848, - 17323, 24850, - 17323, 24852, - 17323, 24854, - 17323, 24856, - 17323, 24858, - 17323, 24860, - 17323, 24862, - 17323, 24864, - 17323, 24866, - 17323, 24868, - 17323, 24870, - 17323, 24872, - 17323, 24874, - 17323, 24876, - 17323, 24878, - 17323, 24880, - 17323, 24882, - 17323, 24884, - 17323, 24886, - 17323, 24888, - 17323, 24890, - 17323, 24892, - 17323, 24894, - 17323, 24896, - 17323, 24898, - 17323, 24900, - 17323, 24902, - 17323, 24904, - 17323, 24906, - 17323, 24908, - 17323, 24910, - 17323, 24912, - 17323, 24914, - 17323, 24916, - 17323, 24918, - 17323, 24920, - 17323, 24922, - 17323, 24924, - 17323, 24926, - 17323, 24928, - 17323, 24930, - 17323, 24932, - 17323, 24934, - 17323, 24936, - 17323, 24938, - 17323, 24940, - 17323, 24942, - 17323, 24944, - 17323, 24946, - 17323, 24948, - 17323, 24950, - 17323, 24952, - 17323, 24954, - 17323, 24956, - 17323, 24958, - 17323, 24960, - 17323, 24962, - 17323, 24964, - 17323, 24966, - 17323, 24968, - 17323, 24970, - 17323, 24972, - 17323, 24974, - 17323, 24976, - 17323, 24978, - 17323, 24980, - 17323, 24982, - 17323, 24984, - 17323, 24986, - 17323, 24988, - 17323, 24990, - 17323, 24992, - 17323, 24994, - 17323, 24996, - 17323, 24998, - 17323, 25000, - 17323, 25002, - 17323, 25004, - 17323, 25006, - 17323, 25008, - 17323, 25010, - 17323, 25012, - 17323, 25014, - 17323, 25016, - 17323, 25018, - 17323, 25020, - 17323, 25022, - 17323, 25024, - 17323, 25026, - 17323, 25028, - 17323, 25030, - 17323, 25032, - 17323, 25034, - 17323, 25036, - 17323, 25038, - 17323, 25040, - 17323, 25042, - 17323, 25044, - 17323, 25046, - 17323, 25048, - 17323, 25050, - 17323, 25052, - 17323, 25054, - 17323, 25056, - 17323, 25058, - 17323, 25060, - 17323, 25062, - 17323, 25064, - 17323, 25066, - 17323, 25068, - 17323, 25070, - 17323, 25072, - 17323, 25074, - 17323, 25076, - 17323, 25078, - 17323, 25080, - 17323, 25082, - 17323, 25084, - 17323, 25086, - 17323, 25088, - 17323, 25090, - 17323, 25092, - 17323, 25094, - 17323, 25096, - 17323, 25098, - 17323, 25100, - 17323, 25102, - 17323, 25104, - 17323, 25106, - 17323, 25108, - 17323, 25110, - 17323, 25112, - 17323, 25114, - 17323, 25116, - 17323, 25118, - 17323, 25120, - 17323, 25122, - 17323, 25124, - 17323, 25126, - 17323, 25128, - 17323, 25130, - 17323, 25132, - 17323, 25134, - 17323, 25136, - 17323, 25138, - 17323, 25140, - 17323, 25142, - 17323, 25144, - 17323, 25146, - 17323, 25148, - 17323, 25150, - 17323, 25152, - 17323, 25154, - 17323, 25156, - 17323, 25158, - 17323, 25160, - 17323, 25162, - 17323, 25164, - 17323, 25166, - 17323, 25168, - 17323, 25170, - 17323, 25172, - 17323, 25174, - 17323, 25176, - 17323, 25178, - 17323, 25180, - 17323, 25182, - 17323, 25184, - 17323, 25186, - 17323, 25188, - 17323, 25190, - 17323, 25192, - 17323, 25194, - 17323, 25196, - 17323, 25198, - 17323, 25200, - 17323, 25202, - 17323, 25204, - 17323, 25206, - 17323, 25208, - 17323, 25210, - 17323, 25212, - 17323, 25214, - 17323, 25216, - 17323, 25218, - 17323, 25220, - 17323, 25222, - 17323, 25224, - 17323, 25226, - 17323, 25228, - 17323, 25230, - 17323, 25232, - 17323, 25234, - 17323, 25236, - 17323, 25238, - 17323, 25240, - 17323, 25242, - 17323, 25244, - 17323, 25246, - 17323, 25248, - 17323, 25250, - 17323, 25252, - 17323, 25254, - 17323, 25256, - 17323, 25258, - 17323, 25260, - 17323, 25262, - 17323, 25264, - 17323, 25266, - 17323, 25268, - 17323, 25270, - 17323, 25272, - 17323, 25274, - 17323, 25276, - 17323, 25278, - 17323, 25280, - 17323, 25282, - 17323, 25284, - 17323, 25286, - 17323, 25288, - 17323, 25290, - 17323, 25292, - 17323, 25294, - 17323, 25296, - 17323, 25298, - 17323, 25300, - 17323, 25302, - 17323, 25304, - 17323, 25306, - 17323, 25308, - 17323, 25310, - 17323, 25312, - 17323, 25314, - 17323, 25316, - 17323, 25318, - 17323, 25320, - 17323, 25322, - 17323, 25324, - 17323, 25326, - 17323, 25328, - 17323, 25330, - 17323, 25332, - 17323, 25334, - 17323, 25336, - 17323, 25338, - 17323, 25340, - 17323, 25342, - 17323, 25344, - 17323, 25346, - 17323, 25348, - 17323, 25350, - 17323, 25352, - 17323, 25354, - 17323, 25356, - 17323, 25358, - 17323, 25360, - 17323, 25362, - 17323, 25364, - 17323, 25366, - 17323, 25368, - 17323, 25370, - 17323, 25372, - 17323, 25374, - 17323, 25376, - 17323, 25378, - 17323, 25380, - 17323, 25382, - 17323, 25384, - 17323, 25386, - 17323, 25388, - 17323, 25390, - 17323, 25392, - 17323, 25394, - 17323, 25396, - 17323, 25398, - 17323, 25400, - 17323, 25402, - 17323, 25404, - 17323, 25406, - 17323, 25408, - 17323, 25410, - 17323, 25412, - 17323, 25414, - 17323, 25416, - 17323, 25418, - 17323, 25420, - 17323, 25422, - 17323, 25424, - 17323, 25426, - 17323, 25428, - 17323, 25430, - 17323, 25432, - 17323, 25434, - 17323, 25436, - 17323, 25438, - 17323, 25440, - 17323, 25442, - 17323, 25444, - 17323, 25446, - 17323, 25448, - 17323, 25450, - 17323, 25452, - 17323, 25454, - 17323, 25456, - 17323, 25458, - 17323, 25460, - 17323, 25462, - 17323, 25464, - 17323, 25466, - 17323, 25468, - 17323, 25470, - 17323, 25472, - 17323, 25474, - 17323, 25476, - 17323, 25478, - 17323, 25480, - 17323, 25482, - 17323, 25484, - 17323, 25486, - 17323, 25488, - 17323, 25490, - 17323, 25492, - 17323, 25494, - 17323, 25496, - 17323, 25498, - 17323, 25500, - 17323, 25502, - 17323, 25504, - 17323, 25506, - 17323, 25508, - 17323, 25510, - 17323, 25512, - 17323, 25514, - 17323, 25516, - 17323, 25518, - 17323, 25520, - 17323, 25522, - 17323, 25524, - 17323, 25526, - 17323, 25528, - 17323, 25530, - 17323, 25532, - 17323, 25534, - 17323, 25536, - 17323, 25538, - 17323, 25540, - 17323, 25542, - 17323, 25544, - 17323, 25546, - 17323, 25548, - 17323, 25550, - 17323, 25552, - 17323, 25554, - 17323, 25556, - 17323, 25558, - 17323, 25560, - 17323, 25562, - 17323, 25564, - 17323, 25566, - 17323, 25568, - 17323, 25570, - 17323, 25572, - 17323, 25574, - 17323, 25576, - 17323, 25578, - 17323, 25580, - 17323, 25582, - 17323, 25584, - 17323, 25586, - 17323, 25588, - 17323, 25590, - 17323, 25592, - 17323, 25594, - 17323, 25596, - 17323, 25598, - 17323, 25600, - 17323, 25602, - 17323, 25604, - 17323, 25606, - 17323, 25608, - 17323, 25610, - 17323, 25612, - 17323, 25614, - 17323, 25616, - 17323, 25618, - 17323, 25620, - 17323, 25622, - 17323, 25624, - 17323, 25626, - 17323, 25628, - 17323, 25630, - 17323, 25632, - 17323, 25634, - 17323, 25636, - 17323, 25638, - 17323, 25640, - 17323, 25642, - 17323, 25644, - 17323, 25646, - 17323, 25648, - 17323, 25650, - 17323, 25652, - 17323, 25654, - 17323, 25656, - 17323, 25658, - 17323, 25660, - 17323, 25662, - 17323, 25664, - 17323, 25666, - 17323, 25668, - 17323, 25670, - 17323, 25672, - 17323, 25674, - 17323, 25676, - 17323, 25678, - 17323, 25680, - 17323, 25682, - 17323, 25684, - 17323, 25686, - 17323, 25688, - 17323, 25690, - 17323, 25692, - 17323, 25694, - 17323, 25696, - 17323, 25698, - 17323, 25700, - 17323, 25702, - 17323, 25704, - 17323, 25706, - 17323, 25708, - 17323, 25710, - 17323, 25712, - 17323, 25714, - 17323, 25716, - 17323, 25718, - 17323, 25720, - 17323, 25722, - 17323, 25724, - 17323, 25726, - 17323, 25728, - 17323, 25730, - 17323, 25732, - 17323, 25734, - 17323, 25736, - 17323, 25738, - 17323, 25740, - 17323, 25742, - 17323, 25744, - 17323, 25746, - 17332, - 17335, 19443, 16310, - 17336, - 17347, 73, 16525, 8808, - 17347, 10575, 14334, - 17347, 10575, 15256, - 17347, 10575, 17534, - 17347, 10575, 19100, - 17347, 10575, 19408, - 17347, 10575, 19540, - 17347, 10575, 19586, - 17347, 10575, 21127, 19541, 12318, - 17347, 10575, 21127, 23071, 12318, - 17347, 10575, 23070, - 17347, 13069, 2760, - 17347, 13069, 3240, - 17347, 13069, 3536, - 17347, 13069, 7036, - 17347, 13069, 7058, - 17347, 13069, 9358, - 17347, 13069, 11824, - 17347, 13069, 13150, - 17347, 13069, 14778, - 17347, 13069, 15116, - 17347, 15407, 10575, 8, - 17347, 15407, 10575, 16, - 17347, 15407, 10575, 28, - 17347, 15407, 10575, 40, - 17347, 15407, 10575, 58, - 17347, 15407, 10575, 72, - 17347, 15407, 10575, 96, - 17347, 15407, 10575, 186, - 17347, 15407, 10575, 314, - 17347, 15407, 10575, 522, - 17347, 15407, 10575, 706, - 17347, 15407, 10575, 19415, 22, - 17347, 15407, 10575, 19415, 34, - 17347, 15407, 10575, 19415, 406, - 17347, 15407, 10575, 19415, 608, - 17347, 16525, 8808, - 17347, 16531, 0, - 17347, 16531, 8, - 17347, 16531, 16, - 17347, 16531, 28, - 17347, 16531, 40, - 17347, 16531, 58, - 17347, 16531, 72, - 17347, 16531, 96, - 17347, 16531, 108, - 17347, 16531, 126, - 17347, 16531, 150, - 17347, 16531, 186, - 17347, 16531, 248, - 17347, 16531, 272, - 17347, 16531, 314, - 17347, 16531, 344, - 17347, 16531, 358, - 17347, 16531, 394, - 17347, 16531, 426, - 17347, 16531, 466, - 17347, 16531, 522, - 17347, 16531, 548, - 17347, 16531, 598, - 17347, 16531, 614, - 17347, 16531, 648, - 17347, 16531, 706, - 17347, 16531, 714, - 17347, 16531, 778, - 17347, 16531, 1000, - 17347, 16531, 1116, - 17347, 16531, 1214, - 17347, 16531, 1236, - 17347, 16531, 1330, - 17347, 16531, 1588, - 17347, 16531, 1918, - 17347, 16531, 2036, - 17347, 16531, 2278, - 17347, 16531, 2574, - 17347, 16531, 2624, - 17347, 16531, 2698, - 17347, 16531, 2830, - 17347, 16531, 3118, - 17347, 16531, 3212, - 17347, 16531, 3286, - 17347, 16531, 3422, - 17347, 16531, 3488, - 17347, 16531, 3502, - 17347, 16531, 6572, - 17347, 16531, 8342, - 17347, 16531, 10206, - 17347, 16531, 11082, - 17347, 16531, 18661, 14560, - 17347, 16531, 19415, 22, - 17347, 16531, 19415, 34, - 17347, 16531, 19415, 406, - 17347, 16531, 19415, 608, - 17347, 20055, 13069, 2761, 1493, 2739, 16965, 507, 7058, - 17347, 20055, 13069, 2761, 1493, 6881, 16965, 507, 7058, - 17347, 20055, 13069, 3537, 1493, 2739, 16965, 507, 7058, - 17347, 20055, 13069, 3537, 1493, 6881, 16965, 507, 7058, - 17347, 20055, 13069, 11825, 1493, 2739, 16965, 507, 7058, - 17347, 20055, 13069, 15117, 1493, 2739, 16965, 507, 7058, - 17347, 20055, 13069, 15117, 1493, 6881, 16965, 507, 7058, - 17353, 18959, 897, 5978, - 17363, 15000, - 17363, 16531, 660, - 17363, 16531, 804, - 17363, 16531, 950, - 17363, 16531, 1678, - 17363, 16531, 2512, - 17363, 16531, 3028, - 17363, 16531, 3870, - 17363, 16531, 4016, - 17363, 16531, 5472, - 17363, 16531, 7482, - 17363, 16531, 8048, - 17363, 16531, 10922, - 17363, 16531, 11076, - 17363, 16531, 12362, - 17363, 16531, 13232, - 17363, 16531, 13320, - 17363, 16531, 13644, - 17363, 16531, 13754, - 17363, 16531, 13948, - 17363, 16531, 14252, - 17363, 16531, 14582, - 17363, 16531, 14766, - 17363, 16531, 15374, - 17363, 16531, 15424, - 17363, 16531, 16002, - 17363, 16531, 16038, - 17363, 16531, 16252, - 17363, 16531, 17052, - 17363, 16531, 17128, - 17363, 16531, 17360, - 17363, 16531, 19768, - 17363, 16531, 20176, - 17363, 16531, 20466, - 17363, 16531, 20808, - 17363, 16531, 20974, - 17363, 16531, 21102, - 17363, 16531, 21434, - 17363, 16531, 21560, - 17363, 16531, 21870, - 17363, 17634, - 17363, 18092, - 17363, 18286, - 17363, 18742, - 17363, 19366, - 17363, 20980, - 17363, 21356, - 17363, 21388, - 17363, 21650, - 17363, 21698, - 17379, 699, 10574, - 17379, 6701, 10574, - 17382, - 17393, 16531, 0, - 17393, 16531, 8, - 17393, 16531, 16, - 17393, 16531, 28, - 17393, 16531, 40, - 17393, 16531, 48, - 17393, 16531, 92, - 17393, 16531, 108, - 17393, 16531, 126, - 17393, 16531, 150, - 17393, 16531, 194, - 17393, 16531, 228, - 17393, 16531, 248, - 17393, 16531, 272, - 17393, 16531, 344, - 17393, 16531, 354, - 17393, 16531, 358, - 17393, 16531, 394, - 17393, 16531, 426, - 17393, 16531, 466, - 17393, 16531, 522, - 17393, 16531, 548, - 17393, 16531, 582, - 17393, 16531, 598, - 17393, 16531, 614, - 17393, 16531, 648, - 17393, 16531, 714, - 17393, 16531, 762, - 17393, 16531, 796, - 17393, 16531, 1116, - 17393, 16531, 1236, - 17393, 16531, 1588, - 17393, 16531, 1616, - 17393, 16531, 1742, - 17393, 16531, 2036, - 17393, 16531, 2278, - 17393, 16531, 2392, - 17393, 16531, 2548, - 17393, 16531, 2574, - 17393, 16531, 2696, - 17393, 16531, 2880, - 17393, 16531, 3118, - 17393, 16531, 3212, - 17393, 16531, 3300, - 17393, 16531, 3422, - 17393, 16531, 3820, - 17393, 16531, 4042, - 17393, 16531, 9300, - 17393, 16531, 9366, - 17393, 16531, 9544, - 17393, 16531, 10512, - 17393, 16531, 10594, - 17394, - 17398, - 17430, - 17435, 9904, - 17435, 12917, 20406, - 17435, 14570, - 17435, 15140, - 17435, 16006, - 17435, 16717, 21558, - 17435, 16717, 23852, - 17435, 19141, 15815, 20566, - 17435, 20156, - 17435, 20933, 965, 11513, 22495, 17264, - 17435, 20933, 965, 14659, 22078, - 17435, 20933, 965, 15815, 20566, - 17435, 20933, 965, 21178, - 17435, 22495, 965, 11513, 16095, 20933, 17264, - 17435, 22495, 965, 11513, 17435, 20933, 17264, - 17442, - 17457, 10574, - 17460, - 17465, 515, 7433, 10574, - 17465, 2643, 10574, - 17465, 12378, - 17465, 12525, 14831, 14532, - 17465, 12525, 20472, - 17465, 12922, - 17465, 13069, 3536, - 17465, 13069, 15116, - 17465, 13421, 14911, 16531, 7818, - 17465, 14255, 6833, 20501, 8276, - 17465, 14255, 11489, 20501, 8276, - 17465, 14911, 10, - 17465, 14931, 6833, 20501, 8276, - 17465, 14931, 11489, 20501, 8276, - 17465, 15453, 14831, 14532, - 17465, 16006, - 17465, 17835, 10, - 17465, 21006, - 17465, 21844, - 17465, 22841, 17835, 12, - 17465, 22841, 17835, 22, - 17465, 22841, 17835, 48, - 17466, - 17473, 18889, 12525, 10690, - 17477, 6544, - 17503, 17298, - 17508, - 17523, 529, 12935, 18932, - 17532, - 17541, 13421, 12934, - 17543, 20156, - 17547, 20055, 2761, 7428, - 17547, 20055, 2761, 13252, - 17547, 20055, 2761, 14170, - 17547, 20055, 2761, 14874, - 17547, 20055, 2761, 15082, - 17547, 20055, 2761, 15108, - 17547, 20055, 2761, 16106, - 17547, 20055, 2761, 18950, - 17547, 20055, 2761, 19068, - 17547, 20055, 3537, 16166, - 17547, 20055, 3537, 17370, - 17547, 20055, 7037, 17174, - 17547, 20055, 7037, 18098, - 17547, 20055, 7059, 16166, - 17547, 20055, 11825, 17370, - 17547, 20055, 14779, 18098, - 17547, 20055, 15117, 16166, - 17547, 20055, 15117, 18098, - 17547, 20055, 15117, 20546, - 17552, - 17557, 9323, 10574, - 17557, 11033, 2094, - 17557, 11033, 3522, - 17557, 11033, 13722, - 17557, 11033, 15250, - 17557, 13069, 2760, - 17557, 13069, 3240, - 17557, 13069, 3536, - 17557, 13069, 7036, - 17557, 13069, 7058, - 17557, 13069, 9358, - 17557, 13069, 11824, - 17557, 13069, 13150, - 17557, 13069, 14778, - 17557, 13069, 15116, - 17557, 16531, 0, - 17557, 16531, 8, - 17557, 16531, 16, - 17557, 16531, 28, - 17557, 16531, 40, - 17557, 16531, 58, - 17557, 16531, 96, - 17557, 16531, 108, - 17557, 16531, 126, - 17557, 16531, 150, - 17557, 16531, 204, - 17557, 16531, 228, - 17557, 16531, 248, - 17557, 16531, 272, - 17557, 16531, 344, - 17557, 16531, 358, - 17557, 16531, 394, - 17557, 16531, 426, - 17557, 16531, 466, - 17557, 16531, 520, - 17557, 16531, 548, - 17557, 16531, 598, - 17557, 16531, 614, - 17557, 16531, 648, - 17557, 16531, 714, - 17557, 16531, 738, - 17557, 16531, 778, - 17557, 16531, 796, - 17557, 16531, 832, - 17557, 16531, 898, - 17557, 16531, 1876, - 17557, 16531, 2036, - 17557, 16531, 2574, - 17557, 16531, 2698, - 17557, 16531, 2762, - 17557, 16531, 2830, - 17557, 16531, 3212, - 17557, 16531, 3422, - 17557, 16531, 3484, - 17557, 16531, 3488, - 17557, 16531, 3586, - 17557, 16531, 3938, - 17557, 16531, 5450, - 17557, 16531, 8340, - 17559, 18203, 8981, 17298, - 17559, 19739, 8981, 17298, - 17561, 6335, 518, - 17561, 6335, 13069, 2760, - 17561, 6335, 13069, 3240, - 17561, 6335, 13069, 3536, - 17561, 6335, 13069, 7036, - 17561, 6335, 13069, 7058, - 17561, 6335, 13069, 9358, - 17561, 6335, 13069, 11824, - 17561, 6335, 13069, 13150, - 17561, 6335, 13069, 14778, - 17561, 6335, 13069, 15116, - 17561, 6335, 14911, 16531, 0, - 17561, 6335, 14911, 16531, 8, - 17561, 6335, 14911, 16531, 28, - 17561, 6335, 14911, 16531, 80, - 17561, 6335, 14911, 16531, 94, - 17561, 6335, 14911, 16531, 122, - 17561, 6335, 14911, 16531, 150, - 17561, 6335, 14911, 16531, 248, - 17561, 6335, 14911, 16531, 314, - 17561, 6335, 14911, 16531, 374, - 17561, 6335, 14911, 16531, 572, - 17561, 6335, 14911, 16531, 678, - 17561, 6335, 14911, 16531, 706, - 17561, 6335, 14911, 16531, 750, - 17561, 6335, 14911, 16531, 778, - 17561, 6335, 14911, 16531, 786, - 17561, 6335, 14911, 16531, 790, - 17561, 6335, 14911, 16531, 898, - 17561, 6335, 14911, 16531, 1396, - 17561, 6335, 14911, 16531, 1400, - 17561, 6335, 14911, 16531, 1696, - 17561, 6335, 14911, 16531, 2738, - 17561, 6335, 14911, 16531, 3232, - 17561, 6335, 14911, 16531, 3504, - 17561, 6335, 14911, 16531, 3974, - 17561, 6335, 14911, 16531, 7522, - 17561, 6335, 14911, 16531, 7656, - 17561, 6335, 14911, 16531, 7672, - 17561, 6335, 14911, 16531, 9258, - 17561, 6335, 14911, 16531, 9528, - 17561, 6335, 14911, 16531, 10676, - 17561, 6335, 14911, 16531, 11392, - 17561, 6335, 16787, 3412, - 17561, 6335, 16787, 13254, - 17561, 6335, 16787, 13284, - 17561, 6335, 16787, 14876, - 17561, 6335, 16787, 16108, - 17561, 6335, 16787, 16744, - 17561, 6335, 16787, 17372, - 17561, 6335, 16787, 17474, - 17561, 6335, 16787, 19070, - 17561, 6335, 17835, 16531, 0, - 17561, 6335, 17835, 16531, 8, - 17561, 6335, 17835, 16531, 28, - 17561, 6335, 17835, 16531, 80, - 17561, 6335, 17835, 16531, 94, - 17561, 6335, 17835, 16531, 122, - 17561, 6335, 17835, 16531, 150, - 17561, 6335, 17835, 16531, 248, - 17561, 6335, 17835, 16531, 314, - 17561, 6335, 17835, 16531, 374, - 17561, 6335, 17835, 16531, 572, - 17561, 6335, 17835, 16531, 678, - 17561, 6335, 17835, 16531, 706, - 17561, 6335, 17835, 16531, 750, - 17561, 6335, 17835, 16531, 778, - 17561, 6335, 17835, 16531, 786, - 17561, 6335, 17835, 16531, 790, - 17561, 6335, 17835, 16531, 898, - 17561, 6335, 17835, 16531, 1396, - 17561, 6335, 17835, 16531, 1400, - 17561, 6335, 17835, 16531, 1696, - 17561, 6335, 17835, 16531, 2738, - 17561, 6335, 17835, 16531, 3232, - 17561, 6335, 17835, 16531, 3504, - 17561, 6335, 17835, 16531, 3974, - 17561, 6335, 17835, 16531, 7522, - 17561, 6335, 17835, 16531, 7656, - 17561, 6335, 17835, 16531, 7672, - 17561, 6335, 17835, 16531, 9258, - 17561, 6335, 17835, 16531, 9528, - 17561, 6335, 17835, 16531, 10676, - 17561, 6335, 17835, 16531, 11392, - 17563, 7433, 10574, - 17563, 12525, 7038, - 17563, 15453, 7038, - 17565, 18203, 8981, 17298, - 17565, 19739, 8981, 17298, - 17569, 16536, - 17571, 20933, 8320, - 17573, 16200, - 17574, - 17583, 1698, - 17583, 12542, - 17583, 17066, - 17583, 17892, - 17585, 17298, - 17589, 18932, - 17590, - 17599, 13470, - 17607, 16531, 112, - 17607, 16531, 216, - 17607, 16531, 222, - 17607, 16531, 228, - 17607, 16531, 344, - 17607, 16531, 538, - 17607, 16531, 554, - 17607, 16531, 598, - 17607, 16531, 618, - 17607, 16531, 648, - 17607, 16531, 692, - 17607, 16531, 714, - 17607, 16531, 715, 21003, 7056, - 17607, 16531, 762, - 17607, 16531, 796, - 17607, 16531, 798, - 17607, 16531, 1134, - 17607, 16531, 1192, - 17607, 16531, 1200, - 17607, 16531, 1434, - 17607, 16531, 1530, - 17607, 16531, 1704, - 17607, 16531, 1722, - 17607, 16531, 1988, - 17607, 16531, 2202, - 17607, 16531, 2203, 11513, 1291, 12318, - 17607, 16531, 2438, - 17607, 16531, 2676, - 17607, 16531, 2832, - 17607, 16531, 2926, - 17607, 16531, 3074, - 17607, 16531, 3174, - 17607, 16531, 3234, - 17607, 16531, 3424, - 17607, 16531, 3750, - 17607, 16531, 3960, - 17607, 16531, 3961, 11513, 22223, 12318, - 17607, 16531, 4024, - 17607, 16531, 6292, - 17607, 16531, 6848, - 17607, 16531, 8052, - 17607, 16531, 10478, - 17607, 16531, 12670, - 17607, 16531, 15494, - 17607, 21127, 13457, 8808, - 17607, 21127, 13897, 8808, - 17607, 23257, 8808, - 17626, - 17630, - 17641, 506, - 17644, - 17651, 10574, - 17668, - 17678, - 17690, - 17691, 11513, 5990, - 17692, - 17716, - 17719, 10574, - 17725, 16531, 0, - 17725, 16531, 8, - 17725, 16531, 16, - 17725, 16531, 28, - 17725, 16531, 40, - 17725, 16531, 58, - 17725, 16531, 66, - 17725, 16531, 82, - 17725, 16531, 84, - 17725, 16531, 112, - 17725, 16531, 132, - 17725, 16531, 156, - 17725, 16531, 186, - 17725, 16531, 230, - 17725, 16531, 252, - 17725, 16531, 276, - 17725, 16531, 314, - 17725, 16531, 346, - 17725, 16531, 362, - 17725, 16531, 398, - 17725, 16531, 434, - 17725, 16531, 470, - 17725, 16531, 522, - 17725, 16531, 554, - 17725, 16531, 600, - 17725, 16531, 618, - 17725, 16531, 652, - 17725, 16531, 706, - 17725, 16531, 718, - 17725, 16531, 764, - 17725, 16531, 780, - 17725, 16531, 798, - 17725, 16531, 832, - 17725, 16531, 834, - 17725, 16531, 856, - 17725, 16531, 1002, - 17725, 16531, 1238, - 17725, 16531, 1580, - 17725, 16531, 1590, - 17725, 16531, 1758, - 17725, 16531, 2576, - 17725, 16531, 2626, - 17725, 16531, 2702, - 17725, 16531, 3214, - 17725, 16531, 3424, - 17725, 16531, 3504, - 17725, 16531, 3844, - 17725, 16531, 3854, - 17725, 16531, 4004, - 17725, 16531, 4044, - 17725, 16531, 9326, - 17725, 16531, 9328, - 17725, 16531, 10540, - 17725, 16531, 10656, - 17725, 23737, 8808, - 17726, - 17731, 12700, - 17734, - 17748, - 17750, - 17755, 16890, - 17757, 13470, - 17758, - 17763, 6056, - 17765, 97, 16525, 8808, - 17765, 5508, - 17765, 10575, 14334, - 17765, 10575, 17534, - 17765, 10575, 19408, - 17765, 10575, 19540, - 17765, 10575, 19586, - 17765, 10575, 23070, - 17765, 13069, 2760, - 17765, 13069, 3240, - 17765, 13069, 3536, - 17765, 13069, 7036, - 17765, 13069, 7058, - 17765, 13069, 9358, - 17765, 13069, 11824, - 17765, 13069, 13150, - 17765, 13069, 14778, - 17765, 13069, 15116, - 17765, 13335, 8808, - 17765, 14699, 8808, - 17765, 14699, 10574, - 17765, 15407, 10575, 8, - 17765, 15407, 10575, 16, - 17765, 15407, 10575, 28, - 17765, 15407, 10575, 40, - 17765, 15407, 10575, 58, - 17765, 15407, 10575, 72, - 17765, 15407, 10575, 96, - 17765, 15407, 10575, 314, - 17765, 15407, 10575, 706, - 17765, 15407, 10575, 19415, 22, - 17765, 15407, 10575, 19415, 34, - 17765, 15407, 10575, 19415, 406, - 17765, 15407, 10575, 19415, 608, - 17765, 16390, - 17765, 16531, 0, - 17765, 16531, 8, - 17765, 16531, 16, - 17765, 16531, 28, - 17765, 16531, 40, - 17765, 16531, 58, - 17765, 16531, 72, - 17765, 16531, 96, - 17765, 16531, 108, - 17765, 16531, 126, - 17765, 16531, 150, - 17765, 16531, 248, - 17765, 16531, 272, - 17765, 16531, 314, - 17765, 16531, 344, - 17765, 16531, 358, - 17765, 16531, 394, - 17765, 16531, 426, - 17765, 16531, 466, - 17765, 16531, 548, - 17765, 16531, 598, - 17765, 16531, 599, 11513, 13839, 19790, - 17765, 16531, 599, 11513, 16661, 19790, - 17765, 16531, 614, - 17765, 16531, 648, - 17765, 16531, 706, - 17765, 16531, 778, - 17765, 16531, 1000, - 17765, 16531, 1116, - 17765, 16531, 1214, - 17765, 16531, 1236, - 17765, 16531, 1588, - 17765, 16531, 1918, - 17765, 16531, 2036, - 17765, 16531, 2574, - 17765, 16531, 2624, - 17765, 16531, 2698, - 17765, 16531, 2830, - 17765, 16531, 3074, - 17765, 16531, 3118, - 17765, 16531, 3212, - 17765, 16531, 3286, - 17765, 16531, 3422, - 17765, 16531, 3502, - 17765, 16531, 4002, - 17765, 16531, 6572, - 17765, 16531, 11082, - 17765, 16531, 15387, 19540, - 17765, 16531, 16443, 648, - 17765, 16531, 19415, 22, - 17765, 16531, 19415, 34, - 17765, 16531, 19415, 406, - 17765, 16531, 19415, 608, - 17765, 17069, 8808, - 17765, 19753, 21649, 2760, - 17765, 19753, 21649, 2761, 8287, 10933, 3425, 23118, - 17765, 19753, 21649, 3536, - 17765, 19753, 21649, 7058, - 17765, 19753, 21649, 15116, - 17765, 19753, 23119, 19116, - 17765, 23737, 10574, - 17767, 10150, - 17767, 10151, 11513, 15938, - 17768, - 17770, - 17777, 10574, - 17794, - 17806, - 17807, 507, 18158, - 17808, - 17813, 18821, 12528, - 17813, 18821, 16076, - 17813, 18821, 16078, - 17813, 18821, 16080, - 17813, 18821, 16082, - 17813, 18821, 16084, - 17813, 18821, 16086, - 17813, 18821, 16088, - 17813, 18821, 16090, - 17813, 18821, 18020, - 17813, 18821, 18022, - 17813, 18821, 18024, - 17813, 18821, 18026, - 17813, 18821, 18028, - 17813, 18821, 18030, - 17813, 18821, 18032, - 17813, 18821, 18034, - 17813, 18821, 18036, - 17813, 18821, 18038, - 17813, 18821, 18040, - 17813, 18821, 18042, - 17813, 18821, 18044, - 17813, 18821, 18046, - 17813, 18821, 18048, - 17813, 18821, 18050, - 17813, 18821, 18052, - 17813, 18821, 18054, - 17813, 18821, 18056, - 17813, 18821, 18058, - 17813, 18821, 18060, - 17813, 18821, 18062, - 17813, 18821, 18064, - 17813, 18821, 18066, - 17813, 18821, 18068, - 17813, 18821, 18070, - 17813, 18821, 18072, - 17813, 18821, 18074, - 17813, 18821, 19822, - 17813, 18821, 19824, - 17813, 18821, 19826, - 17813, 18821, 19828, - 17813, 18821, 19830, - 17813, 18821, 19832, - 17813, 18821, 19834, - 17813, 18821, 19836, - 17813, 18821, 19838, - 17813, 18821, 19840, - 17813, 18821, 19842, - 17813, 18821, 19844, - 17813, 18821, 19846, - 17813, 18821, 19848, - 17813, 18821, 19850, - 17813, 18821, 19852, - 17813, 18821, 19854, - 17813, 18821, 19856, - 17813, 18821, 19858, - 17813, 18821, 19860, - 17813, 18821, 19862, - 17813, 18821, 19864, - 17813, 18821, 19866, - 17813, 18821, 19868, - 17813, 18821, 19870, - 17813, 18821, 19872, - 17813, 18821, 19874, - 17813, 18821, 19876, - 17813, 18821, 19878, - 17813, 18821, 19880, - 17813, 18821, 19882, - 17813, 18821, 19884, - 17813, 18821, 19886, - 17813, 18821, 19888, - 17813, 18821, 19890, - 17813, 18821, 19892, - 17813, 18821, 19894, - 17813, 18821, 19896, - 17813, 18821, 19898, - 17813, 18821, 19900, - 17813, 18821, 19902, - 17813, 18821, 19904, - 17813, 18821, 19906, - 17813, 18821, 19908, - 17813, 18821, 19910, - 17813, 18821, 19912, - 17813, 18821, 19914, - 17813, 18821, 19916, - 17813, 18821, 19918, - 17813, 18821, 19920, - 17813, 18821, 19922, - 17813, 18821, 19924, - 17813, 18821, 19926, - 17813, 18821, 19928, - 17813, 18821, 19930, - 17813, 18821, 19932, - 17813, 18821, 21208, - 17813, 18821, 21210, - 17813, 18821, 21212, - 17813, 18821, 21214, - 17813, 18821, 21216, - 17813, 18821, 21218, - 17813, 18821, 21220, - 17813, 18821, 21222, - 17813, 18821, 21224, - 17813, 18821, 21226, - 17813, 18821, 21228, - 17813, 18821, 21230, - 17813, 18821, 21232, - 17813, 18821, 21234, - 17813, 18821, 21236, - 17813, 18821, 21238, - 17813, 18821, 21240, - 17813, 18821, 21242, - 17813, 18821, 21244, - 17813, 18821, 21246, - 17813, 18821, 21248, - 17813, 18821, 21250, - 17813, 18821, 21252, - 17813, 18821, 21254, - 17813, 18821, 21256, - 17813, 18821, 21258, - 17813, 18821, 21260, - 17813, 18821, 21262, - 17813, 18821, 21264, - 17813, 18821, 21266, - 17813, 18821, 21268, - 17813, 18821, 21270, - 17813, 18821, 21272, - 17813, 18821, 21274, - 17813, 18821, 21276, - 17813, 18821, 21278, - 17813, 18821, 21280, - 17813, 18821, 21282, - 17813, 18821, 21284, - 17813, 18821, 21286, - 17813, 18821, 21288, - 17813, 18821, 21290, - 17813, 18821, 21292, - 17813, 18821, 21294, - 17813, 18821, 21296, - 17813, 18821, 21298, - 17813, 18821, 21300, - 17813, 18821, 21302, - 17813, 18821, 21304, - 17813, 18821, 21306, - 17813, 18821, 21308, - 17813, 18821, 21310, - 17813, 18821, 21312, - 17813, 18821, 21314, - 17813, 18821, 21316, - 17813, 18821, 21318, - 17813, 18821, 21320, - 17813, 18821, 21322, - 17813, 18821, 21324, - 17813, 18821, 21326, - 17813, 18821, 21328, - 17813, 18821, 21330, - 17813, 18821, 21332, - 17813, 18821, 21334, - 17813, 18821, 21336, - 17813, 18821, 21338, - 17813, 18821, 21340, - 17813, 18821, 21342, - 17813, 18821, 21344, - 17813, 18821, 21346, - 17813, 18821, 22290, - 17813, 18821, 22292, - 17813, 18821, 22294, - 17813, 18821, 22296, - 17813, 18821, 22298, - 17813, 18821, 22300, - 17813, 18821, 22302, - 17813, 18821, 22304, - 17813, 18821, 22306, - 17813, 18821, 22308, - 17813, 18821, 22310, - 17813, 18821, 22312, - 17813, 18821, 22314, - 17813, 18821, 22316, - 17813, 18821, 22318, - 17813, 18821, 22320, - 17813, 18821, 22322, - 17813, 18821, 22324, - 17813, 18821, 22326, - 17813, 18821, 22328, - 17813, 18821, 22330, - 17813, 18821, 22332, - 17813, 18821, 22334, - 17813, 18821, 22336, - 17813, 18821, 22338, - 17813, 18821, 22340, - 17813, 18821, 22342, - 17813, 18821, 22344, - 17813, 18821, 22346, - 17813, 18821, 22348, - 17813, 18821, 22350, - 17813, 18821, 22352, - 17813, 18821, 22354, - 17813, 18821, 22356, - 17813, 18821, 22358, - 17813, 18821, 22360, - 17813, 18821, 22362, - 17813, 18821, 22364, - 17813, 18821, 22366, - 17813, 18821, 22368, - 17813, 18821, 22370, - 17813, 18821, 22372, - 17813, 18821, 22374, - 17813, 18821, 22376, - 17813, 18821, 22378, - 17813, 18821, 22380, - 17813, 18821, 22382, - 17813, 18821, 22384, - 17813, 18821, 22386, - 17813, 18821, 22388, - 17813, 18821, 22390, - 17813, 18821, 22392, - 17813, 18821, 22394, - 17813, 18821, 22396, - 17813, 18821, 22398, - 17813, 18821, 22400, - 17813, 18821, 23136, - 17813, 18821, 23138, - 17813, 18821, 23140, - 17813, 18821, 23142, - 17813, 18821, 23144, - 17813, 18821, 23146, - 17813, 18821, 23148, - 17813, 18821, 23150, - 17813, 18821, 23152, - 17813, 18821, 23154, - 17813, 18821, 23156, - 17813, 18821, 23158, - 17813, 18821, 23160, - 17813, 18821, 23162, - 17813, 18821, 23164, - 17813, 18821, 23166, - 17813, 18821, 23168, - 17813, 18821, 23170, - 17813, 18821, 23172, - 17813, 18821, 23174, - 17813, 18821, 23176, - 17813, 18821, 23178, - 17813, 18821, 23180, - 17813, 18821, 23182, - 17813, 18821, 23184, - 17813, 18821, 23186, - 17813, 18821, 23188, - 17813, 18821, 23190, - 17813, 18821, 23812, - 17813, 18821, 23814, - 17813, 18821, 23816, - 17813, 18821, 23818, - 17813, 18821, 23820, - 17813, 18821, 23822, - 17813, 18821, 23824, - 17813, 18821, 23826, - 17813, 18821, 25758, - 17820, - 17824, - 17832, - 17843, 10574, - 17846, - 17863, 12538, - 17863, 12539, 7022, - 17868, - 17881, 5, 11513, 20421, 21042, - 17881, 46, - 17881, 128, - 17881, 130, - 17881, 760, - 17881, 1291, 20406, - 17881, 6101, 46, - 17881, 6544, - 17881, 9783, 15901, 13151, 18889, 10690, - 17881, 9904, - 17881, 10151, 20406, - 17881, 11825, 11513, 14890, - 17881, 12935, 16216, - 17881, 12935, 16217, 11513, 3537, 6696, - 17881, 12935, 16217, 11513, 7059, 6696, - 17881, 12935, 16950, - 17881, 13069, 2760, - 17881, 13069, 3240, - 17881, 13069, 3536, - 17881, 13069, 7036, - 17881, 13069, 7058, - 17881, 13069, 9358, - 17881, 13069, 11824, - 17881, 13069, 13150, - 17881, 13069, 14778, - 17881, 13069, 15116, - 17881, 13473, 15453, 22837, 12414, - 17881, 13543, 16168, - 17881, 13783, 14911, 16531, 0, - 17881, 13783, 14911, 16531, 2, - 17881, 13783, 14911, 16531, 4, - 17881, 13783, 14911, 16531, 6, - 17881, 13783, 14911, 16531, 8, - 17881, 13783, 14911, 16531, 10, - 17881, 13783, 14911, 16531, 12, - 17881, 13783, 14911, 16531, 14, - 17881, 13783, 14911, 16531, 16, - 17881, 13783, 14911, 16531, 18, - 17881, 13783, 14911, 16531, 20, - 17881, 13783, 14911, 16531, 22, - 17881, 13783, 14911, 16531, 24, - 17881, 13783, 14911, 16531, 26, - 17881, 13783, 14911, 16531, 28, - 17881, 13783, 14911, 16531, 30, - 17881, 13783, 14911, 16531, 32, - 17881, 13783, 14911, 16531, 34, - 17881, 13783, 14911, 16531, 36, - 17881, 13783, 14911, 16531, 38, - 17881, 13783, 14911, 16531, 40, - 17881, 13783, 14911, 16531, 42, - 17881, 13783, 14911, 16531, 44, - 17881, 13783, 14911, 16531, 46, - 17881, 13783, 14911, 16531, 48, - 17881, 13783, 14911, 16531, 50, - 17881, 13783, 17835, 16531, 0, - 17881, 13783, 17835, 16531, 2, - 17881, 13783, 17835, 16531, 4, - 17881, 13783, 17835, 16531, 6, - 17881, 13783, 17835, 16531, 8, - 17881, 13783, 17835, 16531, 10, - 17881, 13783, 17835, 16531, 12, - 17881, 13783, 17835, 16531, 14, - 17881, 13783, 17835, 16531, 16, - 17881, 13783, 17835, 16531, 18, - 17881, 13783, 17835, 16531, 20, - 17881, 13783, 17835, 16531, 22, - 17881, 13783, 17835, 16531, 24, - 17881, 13783, 17835, 16531, 26, - 17881, 13783, 17835, 16531, 28, - 17881, 13783, 17835, 16531, 30, - 17881, 13783, 17835, 16531, 32, - 17881, 13783, 17835, 16531, 34, - 17881, 13783, 17835, 16531, 36, - 17881, 13783, 17835, 16531, 38, - 17881, 13783, 17835, 16531, 40, - 17881, 13783, 17835, 16531, 42, - 17881, 13783, 17835, 16531, 44, - 17881, 13783, 17835, 16531, 46, - 17881, 13783, 17835, 16531, 48, - 17881, 13783, 17835, 16531, 50, - 17881, 14004, - 17881, 15146, - 17881, 15453, 10690, - 17881, 15453, 15858, - 17881, 15858, - 17881, 16067, 10575, 11513, 20421, 21042, - 17881, 16120, - 17881, 16313, 10586, - 17881, 16313, 10587, 0, - 17881, 16313, 12698, - 17881, 16313, 12699, 0, - 17881, 16313, 13484, - 17881, 16313, 13485, 0, - 17881, 16313, 13582, - 17881, 16313, 13583, 0, - 17881, 16313, 13583, 40, - 17881, 16313, 13994, - 17881, 16313, 13995, 0, - 17881, 16313, 14164, - 17881, 16313, 14165, 0, - 17881, 16313, 14538, - 17881, 16313, 14539, 0, - 17881, 16313, 14654, - 17881, 16313, 14655, 0, - 17881, 16313, 16462, - 17881, 16313, 16463, 0, - 17881, 16313, 17384, - 17881, 16313, 17385, 0, - 17881, 16313, 17870, - 17881, 16313, 17871, 0, - 17881, 16313, 18362, - 17881, 16313, 18363, 0, - 17881, 16313, 18860, - 17881, 16313, 18861, 0, - 17881, 16313, 19274, - 17881, 16313, 19275, 0, - 17881, 16393, 13783, 17835, 16531, 4, - 17881, 16393, 13783, 17835, 16531, 34, - 17881, 16477, 21101, 13632, - 17881, 16477, 21101, 15910, - 17881, 16787, 3412, - 17881, 16787, 3413, 521, 12525, 17224, - 17881, 16787, 13254, - 17881, 16787, 13255, 521, 12525, 17224, - 17881, 16787, 13284, - 17881, 16787, 13285, 521, 12525, 17224, - 17881, 16787, 13285, 2760, - 17881, 16787, 13285, 3240, - 17881, 16787, 13285, 3536, - 17881, 16787, 13285, 7036, - 17881, 16787, 13285, 7058, - 17881, 16787, 13285, 9358, - 17881, 16787, 13285, 13150, - 17881, 16787, 13285, 14778, - 17881, 16787, 13285, 15116, - 17881, 16787, 14877, 521, 12525, 17224, - 17881, 16787, 16109, 521, 12525, 17224, - 17881, 16787, 16110, - 17881, 16787, 17372, - 17881, 16787, 17373, 521, 12525, 17224, - 17881, 16787, 17373, 2760, - 17881, 16787, 17373, 3240, - 17881, 16787, 17373, 3536, - 17881, 16787, 17373, 7036, - 17881, 16787, 17373, 7058, - 17881, 16787, 17373, 9358, - 17881, 16787, 17373, 13150, - 17881, 16787, 17373, 14778, - 17881, 16787, 17373, 15116, - 17881, 16787, 17472, - 17881, 16787, 17474, - 17881, 16787, 17475, 521, 12525, 17224, - 17881, 16787, 17475, 2760, - 17881, 16787, 17475, 3240, - 17881, 16787, 17475, 3536, - 17881, 16787, 17475, 7036, - 17881, 16787, 17475, 7058, - 17881, 16787, 17475, 9358, - 17881, 16787, 17475, 13150, - 17881, 16787, 17475, 14778, - 17881, 16787, 17475, 15116, - 17881, 16787, 18148, - 17881, 16787, 19071, 521, 12525, 17224, - 17881, 16787, 19116, - 17881, 16787, 19966, - 17881, 16787, 20052, - 17881, 16787, 20368, - 17881, 16787, 20824, - 17881, 16787, 21854, - 17881, 16957, 8808, - 17881, 17224, - 17881, 18999, 19140, - 17881, 19575, 20406, - 17881, 19743, 13774, - 17881, 19817, 10574, - 17881, 19817, 14890, - 17881, 20193, 0, - 17881, 20193, 8, - 17881, 20193, 16, - 17881, 20193, 28, - 17881, 20193, 40, - 17881, 20193, 272, - 17881, 20193, 276, - 17881, 20193, 280, - 17881, 20193, 288, - 17881, 20193, 292, - 17881, 20193, 358, - 17881, 20193, 362, - 17881, 20193, 366, - 17881, 20193, 374, - 17881, 20193, 380, - 17881, 20193, 426, - 17881, 20193, 434, - 17881, 20193, 440, - 17881, 20193, 446, - 17881, 20193, 454, - 17881, 20193, 466, - 17881, 20193, 470, - 17881, 20193, 478, - 17881, 20193, 486, - 17881, 20193, 490, - 17881, 20193, 598, - 17881, 20193, 600, - 17881, 20193, 604, - 17881, 20193, 606, - 17881, 20193, 610, - 17881, 20193, 614, - 17881, 20193, 618, - 17881, 20193, 624, - 17881, 20193, 628, - 17881, 20193, 638, - 17881, 20193, 648, - 17881, 20193, 652, - 17881, 20193, 656, - 17881, 20193, 660, - 17881, 20193, 668, - 17881, 20193, 738, - 17881, 20193, 744, - 17881, 20193, 750, - 17881, 20193, 754, - 17881, 20193, 778, - 17881, 20193, 786, - 17881, 20193, 790, - 17881, 20454, - 17881, 20858, - 17881, 20859, 6700, - 17881, 20933, 964, - 17881, 21487, 2300, - 17881, 21487, 2760, - 17881, 21487, 3240, - 17881, 21487, 3310, - 17881, 21487, 3412, - 17881, 21487, 3536, - 17881, 21487, 6360, - 17881, 21487, 7026, - 17881, 21487, 7036, - 17881, 21487, 7058, - 17881, 21487, 7442, - 17881, 21487, 7520, - 17881, 21487, 7826, - 17881, 21487, 8140, - 17881, 21487, 8280, - 17881, 21487, 8800, - 17881, 21487, 8980, - 17881, 21487, 9140, - 17881, 21487, 9358, - 17881, 21487, 10122, - 17881, 21487, 11530, - 17881, 21487, 13140, - 17881, 21487, 13150, - 17881, 21487, 13760, - 17881, 21487, 13962, - 17881, 21487, 14166, - 17881, 21487, 14572, - 17881, 21487, 14658, - 17881, 21487, 14778, - 17881, 21487, 14980, - 17881, 21487, 14990, - 17881, 21487, 15116, - 17881, 21487, 15436, - 17881, 21487, 15680, - 17881, 21487, 15900, - 17881, 21487, 16158, - 17881, 21487, 17084, - 17881, 21487, 17096, - 17881, 21487, 17922, - 17881, 21487, 19134, - 17881, 21487, 19152, - 17881, 21487, 19526, - 17881, 21487, 20296, - 17881, 21487, 20548, - 17881, 21487, 20570, - 17881, 21487, 20580, - 17881, 21487, 20762, - 17881, 21487, 20994, - 17881, 21487, 21036, - 17881, 21487, 21376, - 17881, 21487, 21398, - 17881, 21487, 21936, - 17881, 21487, 22422, - 17881, 21487, 23888, - 17881, 21487, 25994, - 17881, 21558, - 17881, 22495, 965, 11513, 14256, - 17881, 23275, 17192, - 17881, 23852, - 17881, 24193, 12414, - 17881, 25886, - 17881, 26135, 10575, 11513, 22223, 15678, - 17881, 36345, 19817, 10574, - 17885, 12538, - 17898, - 17902, - 17905, 15054, - 17911, 20156, - 17913, 13716, - 17914, - 17919, 15391, 18010, - 17928, - 17929, 967, 897, 5978, - 17931, 13262, - 17931, 17294, - 17931, 20355, 19165, 13783, 17835, 16531, 30, - 17933, 5978, - 17934, - 17937, 14982, - 17944, - 17946, - 17950, - 17955, 20777, 0, - 17955, 20777, 8, - 17955, 20777, 16, - 17955, 20777, 28, - 17955, 20777, 40, - 17955, 20777, 344, - 17955, 20777, 350, - 17955, 20777, 358, - 17955, 20777, 362, - 17955, 20777, 366, - 17955, 20777, 374, - 17955, 20777, 380, - 17955, 20777, 394, - 17955, 20777, 398, - 17955, 20777, 402, - 17955, 20777, 412, - 17955, 20777, 416, - 17955, 20777, 426, - 17955, 20777, 434, - 17955, 20777, 440, - 17955, 20777, 446, - 17955, 20777, 454, - 17955, 20777, 466, - 17955, 20777, 470, - 17955, 20777, 478, - 17955, 20777, 486, - 17955, 20777, 490, - 17955, 20777, 548, - 17955, 20777, 554, - 17955, 20777, 562, - 17955, 20777, 566, - 17955, 20777, 572, - 17955, 20777, 598, - 17955, 20777, 600, - 17955, 20777, 604, - 17955, 20777, 606, - 17955, 20777, 610, - 17955, 20777, 614, - 17955, 20777, 618, - 17955, 20777, 624, - 17955, 20777, 628, - 17955, 20777, 638, - 17955, 20777, 648, - 17955, 20777, 652, - 17955, 20777, 656, - 17955, 20777, 660, - 17955, 20777, 668, - 17955, 20777, 738, - 17955, 20777, 744, - 17955, 20777, 750, - 17955, 20777, 754, - 17955, 20777, 762, - 17955, 20777, 764, - 17955, 20777, 796, - 17955, 20777, 804, - 17973, 20001, 17298, - 17973, 21851, 2035, 17298, - 17979, 14911, 16531, 14, - 17979, 14911, 16531, 104, - 17979, 14911, 16531, 188, - 17979, 14911, 16531, 200, - 17979, 14911, 16531, 202, - 17979, 14911, 16531, 204, - 17979, 14911, 16531, 212, - 17979, 14911, 16531, 214, - 17979, 14911, 16531, 222, - 17979, 14911, 16531, 512, - 17979, 14911, 16531, 538, - 17979, 14911, 16531, 756, - 17979, 14911, 16531, 986, - 17979, 14911, 16531, 1224, - 17979, 14911, 16531, 1394, - 17979, 14911, 16531, 1412, - 17979, 14911, 16531, 1422, - 17979, 14911, 16531, 1552, - 17979, 14911, 16531, 1910, - 17979, 14911, 16531, 2014, - 17979, 14911, 16531, 2818, - 17979, 14911, 16531, 3406, - 17979, 14911, 16531, 3672, - 17979, 14911, 16531, 3916, - 17979, 14911, 16531, 4034, - 17979, 14911, 16531, 6276, - 17979, 14911, 16531, 8351, 0, - 17979, 14911, 16531, 8351, 8, - 17979, 14911, 16531, 8351, 16, - 17979, 14911, 16531, 8351, 28, - 17979, 14911, 16531, 8351, 70, - 17979, 14911, 16531, 8351, 522, - 17979, 14911, 16531, 10938, - 17979, 14911, 16531, 11840, - 17979, 14911, 16531, 14837, 0, - 17979, 14911, 16531, 14837, 8, - 17979, 14911, 16531, 14837, 16, - 17979, 14911, 16531, 14837, 28, - 17979, 14911, 16531, 14837, 70, - 17979, 14911, 16531, 14837, 522, - 17979, 17835, 16531, 14, - 17979, 17835, 16531, 104, - 17979, 17835, 16531, 188, - 17979, 17835, 16531, 200, - 17979, 17835, 16531, 202, - 17979, 17835, 16531, 204, - 17979, 17835, 16531, 212, - 17979, 17835, 16531, 214, - 17979, 17835, 16531, 222, - 17979, 17835, 16531, 512, - 17979, 17835, 16531, 538, - 17979, 17835, 16531, 756, - 17979, 17835, 16531, 986, - 17979, 17835, 16531, 1224, - 17979, 17835, 16531, 1394, - 17979, 17835, 16531, 1412, - 17979, 17835, 16531, 1422, - 17979, 17835, 16531, 1552, - 17979, 17835, 16531, 1910, - 17979, 17835, 16531, 2014, - 17979, 17835, 16531, 2818, - 17979, 17835, 16531, 3406, - 17979, 17835, 16531, 3672, - 17979, 17835, 16531, 3916, - 17979, 17835, 16531, 4034, - 17979, 17835, 16531, 6276, - 17979, 17835, 16531, 8351, 0, - 17979, 17835, 16531, 8351, 8, - 17979, 17835, 16531, 8351, 16, - 17979, 17835, 16531, 8351, 28, - 17979, 17835, 16531, 8351, 70, - 17979, 17835, 16531, 8351, 522, - 17979, 17835, 16531, 10938, - 17979, 17835, 16531, 11840, - 17979, 17835, 16531, 14837, 0, - 17979, 17835, 16531, 14837, 8, - 17979, 17835, 16531, 14837, 16, - 17979, 17835, 16531, 14837, 28, - 17979, 17835, 16531, 14837, 70, - 17979, 17835, 16531, 14837, 522, - 17981, 17574, - 17981, 19716, - 17989, 11513, 3473, 7429, 12524, - 17989, 11513, 8281, 7429, 12524, - 17989, 11513, 14659, 7429, 12524, - 17989, 11513, 15827, 7429, 12524, - 17989, 14789, 11513, 1, 1291, 16382, - 17989, 17326, - 17989, 20406, - 18001, 17881, 22841, 13069, 2760, - 18001, 17881, 22841, 13069, 3240, - 18001, 17881, 22841, 13069, 3536, - 18001, 17881, 22841, 13069, 7036, - 18001, 17881, 22841, 13069, 7058, - 18001, 17881, 22841, 13069, 9358, - 18001, 17881, 22841, 13069, 11824, - 18001, 17881, 22841, 13069, 13150, - 18001, 17881, 22841, 13069, 14778, - 18001, 17881, 22841, 13069, 15116, - 18001, 17881, 22841, 16787, 3412, - 18001, 20355, 17881, 13069, 2760, - 18001, 20355, 17881, 13069, 3240, - 18001, 20355, 17881, 13069, 3536, - 18001, 20355, 17881, 13069, 7036, - 18001, 20355, 17881, 13069, 7058, - 18001, 20355, 17881, 13069, 9358, - 18001, 20355, 17881, 13069, 13150, - 18001, 20355, 17881, 13069, 14778, - 18001, 20355, 17881, 13069, 15116, - 18001, 20355, 17881, 16787, 3412, - 18001, 20355, 17881, 22841, 13069, 2760, - 18001, 20355, 17881, 22841, 13069, 3240, - 18001, 20355, 17881, 22841, 13069, 3536, - 18001, 20355, 17881, 22841, 13069, 7036, - 18001, 20355, 17881, 22841, 13069, 7058, - 18001, 20355, 17881, 22841, 13069, 9358, - 18001, 20355, 17881, 22841, 13069, 11824, - 18001, 20355, 17881, 22841, 13069, 13150, - 18001, 20355, 17881, 22841, 13069, 14778, - 18001, 20355, 17881, 22841, 13069, 15116, - 18001, 20355, 17881, 22841, 16787, 3412, - 18012, - 18015, 17298, - 18016, - 18077, 8801, 10574, - 18077, 16159, 10574, - 18077, 17298, - 18079, 10574, - 18080, - 18105, 16531, 0, - 18105, 16531, 8, - 18105, 16531, 16, - 18105, 16531, 28, - 18105, 16531, 40, - 18105, 16531, 48, - 18105, 16531, 112, - 18105, 16531, 132, - 18105, 16531, 156, - 18105, 16531, 194, - 18105, 16531, 230, - 18105, 16531, 252, - 18105, 16531, 276, - 18105, 16531, 346, - 18105, 16531, 362, - 18105, 16531, 398, - 18105, 16531, 434, - 18105, 16531, 466, - 18105, 16531, 470, - 18105, 16531, 554, - 18105, 16531, 584, - 18105, 16531, 600, - 18105, 16531, 618, - 18105, 16531, 652, - 18105, 16531, 718, - 18105, 16531, 764, - 18105, 16531, 798, - 18105, 16531, 1118, - 18105, 16531, 1238, - 18105, 16531, 1590, - 18105, 16531, 1618, - 18105, 16531, 2038, - 18105, 16531, 2280, - 18105, 16531, 2550, - 18105, 16531, 2610, - 18105, 16531, 3120, - 18105, 16531, 3214, - 18105, 16531, 3424, - 18105, 16531, 4044, - 18105, 16531, 16256, - 18107, 506, - 18107, 507, 11513, 1291, 12318, - 18107, 507, 11513, 3537, 22495, 19206, - 18107, 507, 11513, 8351, 22495, 17264, - 18107, 507, 11513, 18778, - 18107, 507, 11513, 20920, - 18107, 507, 11513, 20933, 965, 95, 1393, 507, 22495, 17264, - 18107, 507, 18763, 19380, - 18107, 507, 18763, 21348, - 18111, 16531, 276, - 18111, 16531, 554, - 18111, 16531, 2406, - 18111, 16531, 2676, - 18111, 16531, 3398, - 18111, 16531, 3750, - 18111, 16531, 5556, - 18111, 16531, 6066, - 18111, 16531, 7478, - 18111, 16531, 8002, - 18111, 16531, 9992, - 18111, 16531, 10120, - 18111, 16531, 10478, - 18111, 16531, 10914, - 18111, 16531, 11722, - 18111, 16531, 12354, - 18111, 16531, 13384, - 18111, 16531, 14720, - 18111, 16531, 15606, - 18111, 16531, 16010, - 18111, 16531, 16508, - 18111, 16531, 17060, - 18111, 20241, 23030, - 18130, - 18134, - 18137, 19791, 323, 15453, 15939, 323, 12525, 17224, - 18137, 19791, 19743, 14255, 6833, 12414, - 18137, 19791, 19743, 17037, 19790, - 18143, 6996, - 18144, - 18152, - 18155, 9907, 897, 7030, - 18163, 6996, - 18165, 7433, 1446, - 18168, - 18171, 15968, - 18185, 3636, - 18205, 6996, - 18215, 10690, - 18218, - 18222, - 18227, 97, 16525, 8808, - 18227, 518, - 18227, 10575, 14334, - 18227, 10575, 14554, - 18227, 10575, 17534, - 18227, 10575, 19408, - 18227, 10575, 19540, - 18227, 10575, 19586, - 18227, 10575, 21127, 19541, 12318, - 18227, 10575, 23070, - 18227, 15407, 10575, 16, - 18227, 15407, 10575, 40, - 18227, 15407, 10575, 58, - 18227, 15407, 10575, 72, - 18227, 15407, 10575, 96, - 18227, 15407, 10575, 186, - 18227, 15407, 10575, 314, - 18227, 15407, 10575, 522, - 18227, 15407, 10575, 706, - 18227, 15407, 10575, 19415, 22, - 18227, 15407, 10575, 19415, 34, - 18227, 15407, 10575, 19415, 406, - 18227, 15407, 10575, 19415, 608, - 18227, 16531, 0, - 18227, 16531, 16, - 18227, 16531, 40, - 18227, 16531, 58, - 18227, 16531, 72, - 18227, 16531, 96, - 18227, 16531, 108, - 18227, 16531, 126, - 18227, 16531, 150, - 18227, 16531, 186, - 18227, 16531, 248, - 18227, 16531, 272, - 18227, 16531, 314, - 18227, 16531, 344, - 18227, 16531, 358, - 18227, 16531, 394, - 18227, 16531, 426, - 18227, 16531, 466, - 18227, 16531, 522, - 18227, 16531, 548, - 18227, 16531, 598, - 18227, 16531, 614, - 18227, 16531, 648, - 18227, 16531, 706, - 18227, 16531, 714, - 18227, 16531, 778, - 18227, 16531, 1000, - 18227, 16531, 1116, - 18227, 16531, 1214, - 18227, 16531, 1236, - 18227, 16531, 1588, - 18227, 16531, 1918, - 18227, 16531, 2036, - 18227, 16531, 2278, - 18227, 16531, 2574, - 18227, 16531, 2624, - 18227, 16531, 2698, - 18227, 16531, 2830, - 18227, 16531, 3212, - 18227, 16531, 3286, - 18227, 16531, 3422, - 18227, 16531, 3502, - 18227, 16531, 6572, - 18227, 16531, 11082, - 18227, 16531, 15387, 16095, 19540, - 18227, 16531, 15387, 19540, - 18227, 16531, 19415, 22, - 18227, 16531, 19415, 34, - 18227, 16531, 19415, 406, - 18227, 16531, 19415, 608, - 18231, 13470, - 18233, 10574, - 18235, 13403, 518, - 18235, 13403, 10575, 19408, - 18235, 13403, 10575, 19540, - 18235, 13403, 13069, 2760, - 18235, 13403, 13069, 3240, - 18235, 13403, 13069, 3536, - 18235, 13403, 13069, 7036, - 18235, 13403, 13069, 7058, - 18235, 13403, 13069, 9358, - 18235, 13403, 13069, 11824, - 18235, 13403, 13069, 13150, - 18235, 13403, 13069, 14778, - 18235, 13403, 13069, 15116, - 18235, 13403, 15407, 10575, 16, - 18235, 13403, 15407, 10575, 40, - 18235, 13403, 15407, 10575, 58, - 18235, 13403, 15407, 10575, 72, - 18235, 13403, 15407, 10575, 96, - 18235, 13403, 15407, 10575, 186, - 18235, 13403, 15407, 10575, 314, - 18235, 13403, 15407, 10575, 522, - 18235, 13403, 15407, 10575, 706, - 18235, 13403, 16531, 0, - 18235, 13403, 16531, 16, - 18235, 13403, 16531, 40, - 18235, 13403, 16531, 58, - 18235, 13403, 16531, 72, - 18235, 13403, 16531, 96, - 18235, 13403, 16531, 108, - 18235, 13403, 16531, 126, - 18235, 13403, 16531, 150, - 18235, 13403, 16531, 186, - 18235, 13403, 16531, 248, - 18235, 13403, 16531, 272, - 18235, 13403, 16531, 314, - 18235, 13403, 16531, 344, - 18235, 13403, 16531, 358, - 18235, 13403, 16531, 394, - 18235, 13403, 16531, 426, - 18235, 13403, 16531, 466, - 18235, 13403, 16531, 522, - 18235, 13403, 16531, 548, - 18235, 13403, 16531, 598, - 18235, 13403, 16531, 614, - 18235, 13403, 16531, 648, - 18235, 13403, 16531, 706, - 18235, 13403, 16531, 714, - 18235, 13403, 16531, 778, - 18235, 13403, 16531, 1000, - 18235, 13403, 16531, 1116, - 18235, 13403, 16531, 1214, - 18235, 13403, 16531, 1236, - 18235, 13403, 16531, 1588, - 18235, 13403, 16531, 1918, - 18235, 13403, 16531, 2036, - 18235, 13403, 16531, 2278, - 18235, 13403, 16531, 2574, - 18235, 13403, 16531, 2830, - 18235, 13403, 16531, 3422, - 18235, 13403, 16531, 3502, - 18235, 13403, 16531, 6572, - 18235, 13403, 16531, 11082, - 18235, 13403, 17534, - 18238, - 18245, 6996, - 18246, - 18251, 10575, 20436, - 18251, 15407, 10575, 16, - 18251, 15407, 10575, 40, - 18251, 16531, 0, - 18251, 16531, 16, - 18251, 16531, 40, - 18251, 16531, 108, - 18251, 16531, 150, - 18251, 16531, 248, - 18251, 16531, 272, - 18251, 16531, 358, - 18251, 16531, 394, - 18251, 16531, 426, - 18251, 16531, 466, - 18251, 16531, 548, - 18251, 16531, 598, - 18251, 16531, 614, - 18251, 16531, 648, - 18251, 16531, 738, - 18251, 16531, 778, - 18251, 16531, 2574, - 18277, 10574, - 18279, 6996, - 18281, 16943, 17298, - 18301, 15725, 7057, 19082, - 18301, 22015, 20770, - 18307, 12525, 14911, 17224, - 18307, 12525, 17988, - 18307, 12659, 8808, - 18307, 15453, 15938, - 18307, 15858, - 18307, 16637, 14782, - 18307, 17863, 12539, 7022, - 18307, 21349, 12415, 11513, 3445, 21556, - 18317, 18492, - 18326, - 18333, 73, 16525, 8808, - 18333, 10575, 14334, - 18333, 10575, 17534, - 18333, 10575, 19100, - 18333, 10575, 19147, 23070, - 18333, 10575, 19408, - 18333, 10575, 19540, - 18333, 10575, 19586, - 18333, 10575, 21127, 19541, 12319, 14658, - 18333, 10575, 23070, - 18333, 10575, 23288, - 18333, 10575, 23722, - 18333, 13069, 2760, - 18333, 13069, 3240, - 18333, 13069, 3536, - 18333, 13069, 7036, - 18333, 13069, 7058, - 18333, 13069, 9358, - 18333, 13069, 11824, - 18333, 13069, 13150, - 18333, 13069, 14778, - 18333, 13069, 15116, - 18333, 15407, 10575, 8, - 18333, 15407, 10575, 16, - 18333, 15407, 10575, 28, - 18333, 15407, 10575, 40, - 18333, 15407, 10575, 58, - 18333, 15407, 10575, 72, - 18333, 15407, 10575, 96, - 18333, 15407, 10575, 186, - 18333, 15407, 10575, 314, - 18333, 15407, 10575, 522, - 18333, 15407, 10575, 706, - 18333, 15407, 10575, 19415, 22, - 18333, 15407, 10575, 19415, 34, - 18333, 15407, 10575, 19415, 406, - 18333, 15407, 10575, 19415, 608, - 18333, 16525, 8808, - 18333, 16531, 0, - 18333, 16531, 8, - 18333, 16531, 16, - 18333, 16531, 28, - 18333, 16531, 40, - 18333, 16531, 58, - 18333, 16531, 72, - 18333, 16531, 96, - 18333, 16531, 108, - 18333, 16531, 126, - 18333, 16531, 150, - 18333, 16531, 186, - 18333, 16531, 228, - 18333, 16531, 248, - 18333, 16531, 272, - 18333, 16531, 314, - 18333, 16531, 344, - 18333, 16531, 358, - 18333, 16531, 394, - 18333, 16531, 426, - 18333, 16531, 466, - 18333, 16531, 522, - 18333, 16531, 548, - 18333, 16531, 598, - 18333, 16531, 614, - 18333, 16531, 648, - 18333, 16531, 706, - 18333, 16531, 714, - 18333, 16531, 778, - 18333, 16531, 1000, - 18333, 16531, 1116, - 18333, 16531, 1214, - 18333, 16531, 1236, - 18333, 16531, 1588, - 18333, 16531, 1918, - 18333, 16531, 2036, - 18333, 16531, 2278, - 18333, 16531, 2574, - 18333, 16531, 2624, - 18333, 16531, 2698, - 18333, 16531, 2830, - 18333, 16531, 3118, - 18333, 16531, 3212, - 18333, 16531, 3286, - 18333, 16531, 3422, - 18333, 16531, 3502, - 18333, 16531, 6572, - 18333, 16531, 8342, - 18333, 16531, 11082, - 18333, 16531, 18661, 14560, - 18333, 16531, 19415, 22, - 18333, 16531, 19415, 34, - 18333, 16531, 19415, 406, - 18333, 16531, 19415, 608, - 18358, - 18371, 1091, 6997, 11513, 15949, 6882, - 18371, 6996, - 18371, 6997, 11513, 15949, 6882, - 18371, 6997, 11513, 19129, 6882, - 18508, - 18521, 21563, 10574, - 18526, - 18529, 528, - 18529, 529, 11513, 1291, 12318, - 18529, 529, 11513, 16095, 18778, - 18529, 529, 11513, 16095, 20920, - 18529, 529, 11513, 16661, 10692, - 18529, 529, 11513, 22495, 6544, - 18529, 529, 23507, 18529, 896, - 18529, 896, - 18529, 897, 11513, 1291, 12318, - 18529, 897, 11513, 16095, 18778, - 18529, 897, 11513, 16095, 20920, - 18529, 897, 11513, 16661, 10692, - 18529, 897, 11513, 20920, - 18529, 897, 11513, 22495, 6544, - 18534, - 18535, 18009, 125, 22495, 10240, - 18536, - 18549, 10991, 2761, 507, 17736, - 18549, 10991, 2761, 507, 17882, - 18549, 10991, 2761, 507, 22214, - 18549, 10991, 3059, 16096, - 18549, 10991, 3241, 507, 17736, - 18549, 10991, 3241, 507, 17882, - 18549, 10991, 3241, 507, 22214, - 18549, 10991, 3537, 507, 17736, - 18549, 10991, 3537, 507, 17882, - 18549, 10991, 3537, 507, 22214, - 18549, 10991, 5966, - 18549, 10991, 6833, 11504, - 18549, 10991, 7037, 507, 17736, - 18549, 10991, 7037, 507, 17882, - 18549, 10991, 7037, 507, 22214, - 18549, 10991, 7059, 507, 17736, - 18549, 10991, 7059, 507, 17882, - 18549, 10991, 7059, 507, 22214, - 18549, 10991, 9359, 507, 17736, - 18549, 10991, 9359, 507, 17882, - 18549, 10991, 9359, 507, 22214, - 18549, 10991, 9902, - 18549, 10991, 11489, 11504, - 18549, 10991, 13151, 507, 17736, - 18549, 10991, 13151, 507, 17882, - 18549, 10991, 13151, 507, 22214, - 18549, 10991, 13423, 16096, - 18549, 10991, 13626, - 18549, 10991, 14255, 11504, - 18549, 10991, 14779, 507, 17736, - 18549, 10991, 14779, 507, 17882, - 18549, 10991, 14779, 507, 22214, - 18549, 10991, 14931, 11504, - 18549, 10991, 15117, 507, 17736, - 18549, 10991, 15117, 507, 17882, - 18549, 10991, 15117, 507, 22214, - 18549, 10991, 15453, 16096, - 18549, 10991, 15760, - 18549, 10991, 15776, - 18549, 10991, 16822, - 18549, 10991, 17218, - 18549, 10991, 17280, - 18549, 10991, 17576, - 18549, 10991, 24206, - 18557, 1393, 507, 19056, - 18557, 12376, - 18557, 15407, 10575, 8, - 18557, 15407, 10575, 16, - 18557, 15407, 10575, 28, - 18557, 15407, 10575, 40, - 18557, 16531, 0, - 18557, 16531, 108, - 18557, 16531, 126, - 18557, 16531, 150, - 18557, 16531, 248, - 18557, 16531, 344, - 18557, 16531, 358, - 18557, 16531, 394, - 18557, 16531, 426, - 18557, 16531, 466, - 18557, 16531, 548, - 18557, 16531, 598, - 18557, 16531, 614, - 18557, 16531, 648, - 18557, 16531, 714, - 18557, 16531, 778, - 18557, 16531, 2574, - 18557, 16531, 2698, - 18557, 22750, - 18565, 12934, - 18566, - 18569, 16531, 60, - 18569, 16531, 64, - 18569, 16531, 68, - 18569, 16531, 70, - 18569, 16531, 76, - 18569, 16531, 78, - 18569, 16531, 80, - 18569, 16531, 82, - 18569, 16531, 86, - 18569, 16531, 88, - 18569, 16531, 90, - 18569, 16531, 92, - 18569, 16531, 94, - 18569, 16531, 106, - 18569, 16531, 322, - 18569, 16531, 334, - 18569, 16531, 880, - 18569, 16531, 922, - 18569, 16531, 924, - 18569, 16531, 926, - 18569, 16531, 1986, - 18569, 16531, 5476, - 18569, 16531, 13450, - 18569, 16531, 19382, - 18569, 16531, 19960, - 18569, 22465, 8808, - 18569, 23037, 8808, - 18569, 23554, - 18569, 24181, 8808, - 18574, - 18581, 7461, 8808, - 18581, 8809, 10444, - 18581, 10575, 19540, - 18581, 10575, 23070, - 18581, 15407, 10575, 8, - 18581, 15407, 10575, 16, - 18581, 15407, 10575, 28, - 18581, 15407, 10575, 40, - 18581, 15407, 10575, 58, - 18581, 16531, 0, - 18581, 16531, 52, - 18581, 16531, 108, - 18581, 16531, 126, - 18581, 16531, 150, - 18581, 16531, 248, - 18581, 16531, 272, - 18581, 16531, 344, - 18581, 16531, 358, - 18581, 16531, 394, - 18581, 16531, 426, - 18581, 16531, 466, - 18581, 16531, 548, - 18581, 16531, 598, - 18581, 16531, 614, - 18581, 16531, 648, - 18581, 16531, 738, - 18581, 16531, 778, - 18581, 16531, 796, - 18581, 16531, 1116, - 18581, 16531, 1330, - 18581, 16531, 2036, - 18581, 16531, 2574, - 18581, 16531, 2698, - 18581, 16531, 2830, - 18581, 16531, 3212, - 18581, 16531, 3422, - 18581, 16531, 3488, - 18581, 16531, 4042, - 18581, 16531, 11058, - 18581, 21919, 16531, 0, - 18581, 21919, 16531, 108, - 18581, 21919, 16531, 126, - 18581, 21919, 16531, 150, - 18581, 21919, 16531, 248, - 18581, 21919, 16531, 272, - 18581, 21919, 16531, 344, - 18581, 21919, 16531, 358, - 18581, 21919, 16531, 394, - 18581, 21919, 16531, 426, - 18581, 21919, 16531, 466, - 18581, 21919, 16531, 548, - 18581, 21919, 16531, 598, - 18581, 21919, 16531, 614, - 18581, 21919, 16531, 648, - 18581, 21919, 16531, 738, - 18581, 21919, 16531, 778, - 18581, 21919, 16531, 796, - 18581, 21919, 16531, 1116, - 18581, 21919, 16531, 1330, - 18581, 21919, 16531, 2036, - 18581, 21919, 16531, 2574, - 18581, 21919, 16531, 2698, - 18581, 21919, 16531, 2830, - 18581, 21919, 16531, 3212, - 18581, 21919, 16531, 3422, - 18581, 21919, 16531, 3488, - 18581, 21919, 16531, 4042, - 18581, 21919, 16531, 11058, - 18583, 5533, 19372, - 18587, 13403, 10575, 14334, - 18587, 13403, 10575, 15876, - 18587, 13403, 10575, 18240, - 18587, 13403, 10575, 19408, - 18587, 13403, 10575, 19540, - 18587, 13403, 13069, 2760, - 18587, 13403, 13069, 3240, - 18587, 13403, 13069, 3536, - 18587, 13403, 13069, 7036, - 18587, 13403, 13069, 7058, - 18587, 13403, 13069, 9358, - 18587, 13403, 13069, 11824, - 18587, 13403, 13069, 13150, - 18587, 13403, 13069, 14778, - 18587, 13403, 13069, 15116, - 18587, 13403, 14644, - 18587, 13403, 15407, 10575, 8, - 18587, 13403, 15407, 10575, 16, - 18587, 13403, 15407, 10575, 28, - 18587, 13403, 15407, 10575, 40, - 18587, 13403, 15407, 10575, 58, - 18587, 13403, 15407, 10575, 72, - 18587, 13403, 15407, 10575, 96, - 18587, 13403, 15407, 10575, 314, - 18587, 13403, 15407, 10575, 706, - 18587, 13403, 15407, 10575, 19415, 34, - 18587, 13403, 16531, 0, - 18587, 13403, 16531, 8, - 18587, 13403, 16531, 16, - 18587, 13403, 16531, 28, - 18587, 13403, 16531, 40, - 18587, 13403, 16531, 58, - 18587, 13403, 16531, 72, - 18587, 13403, 16531, 96, - 18587, 13403, 16531, 108, - 18587, 13403, 16531, 126, - 18587, 13403, 16531, 150, - 18587, 13403, 16531, 248, - 18587, 13403, 16531, 272, - 18587, 13403, 16531, 314, - 18587, 13403, 16531, 344, - 18587, 13403, 16531, 358, - 18587, 13403, 16531, 394, - 18587, 13403, 16531, 426, - 18587, 13403, 16531, 466, - 18587, 13403, 16531, 548, - 18587, 13403, 16531, 598, - 18587, 13403, 16531, 614, - 18587, 13403, 16531, 648, - 18587, 13403, 16531, 706, - 18587, 13403, 16531, 714, - 18587, 13403, 16531, 778, - 18587, 13403, 16531, 1000, - 18587, 13403, 16531, 1116, - 18587, 13403, 16531, 1214, - 18587, 13403, 16531, 1236, - 18587, 13403, 16531, 1588, - 18587, 13403, 16531, 1918, - 18587, 13403, 16531, 2036, - 18587, 13403, 16531, 2278, - 18587, 13403, 16531, 2574, - 18587, 13403, 16531, 2624, - 18587, 13403, 16531, 2698, - 18587, 13403, 16531, 2830, - 18587, 13403, 16531, 3212, - 18587, 13403, 16531, 3286, - 18587, 13403, 16531, 3422, - 18587, 13403, 16531, 3484, - 18587, 13403, 16531, 3502, - 18587, 13403, 16531, 6572, - 18587, 13403, 16531, 7902, - 18587, 13403, 16531, 8154, - 18587, 13403, 16531, 11082, - 18587, 13403, 17534, - 18587, 13403, 18954, - 18611, 6996, - 18613, 11513, 9359, 19636, - 18614, - 18620, - 18623, 22495, 19976, - 18626, - 18651, 16531, 0, - 18651, 16531, 8, - 18651, 16531, 16, - 18651, 16531, 40, - 18651, 16531, 108, - 18651, 16531, 126, - 18651, 16531, 150, - 18651, 16531, 248, - 18651, 16531, 272, - 18651, 16531, 344, - 18651, 16531, 358, - 18651, 16531, 394, - 18651, 16531, 426, - 18651, 16531, 466, - 18651, 16531, 548, - 18651, 16531, 598, - 18651, 16531, 614, - 18651, 16531, 648, - 18651, 16531, 714, - 18651, 16531, 778, - 18651, 16531, 1000, - 18651, 16531, 1116, - 18651, 16531, 1214, - 18651, 16531, 1236, - 18651, 16531, 1588, - 18651, 16531, 1934, - 18651, 16531, 2036, - 18651, 16531, 2624, - 18651, 16531, 2698, - 18651, 16531, 2830, - 18651, 16531, 3074, - 18651, 16531, 3118, - 18651, 16531, 3422, - 18651, 16531, 3502, - 18651, 16531, 6564, - 18651, 16531, 6572, - 18651, 16531, 11082, - 18651, 19057, 8808, - 18655, 9442, - 18655, 14758, - 18655, 17299, 5, 6342, - 18655, 17299, 11, 6342, - 18655, 17299, 11, 6343, 16833, 5494, - 18655, 17299, 11, 6343, 16833, 12468, - 18655, 17299, 13, 6342, - 18655, 17299, 13, 6343, 16833, 5494, - 18655, 17299, 13, 6343, 16833, 12468, - 18655, 17299, 47, 20380, - 18655, 17299, 50, - 18655, 17299, 151, 6220, - 18655, 17299, 662, - 18655, 17299, 1169, 10994, - 18655, 17299, 1201, 14768, - 18655, 17299, 1393, 507, 17250, - 18655, 17299, 1393, 3436, - 18655, 17299, 1393, 6044, - 18655, 17299, 1393, 10606, - 18655, 17299, 1393, 16904, - 18655, 17299, 2761, 18281, 25965, 9442, - 18655, 17299, 2761, 18281, 25965, 10122, - 18655, 17299, 2827, 22950, - 18655, 17299, 6348, - 18655, 17299, 6536, - 18655, 17299, 6537, 888, - 18655, 17299, 6709, 15942, - 18655, 17299, 6709, 15944, - 18655, 17299, 7041, 698, - 18655, 17299, 7041, 6700, - 18655, 17299, 7077, 12524, - 18655, 17299, 7077, 15452, - 18655, 17299, 7429, 9442, - 18655, 17299, 7429, 10122, - 18655, 17299, 7429, 14509, 8808, - 18655, 17299, 8281, 17019, 10574, - 18655, 17299, 8981, 20381, 12524, - 18655, 17299, 8981, 20381, 15452, - 18655, 17299, 9527, 20380, - 18655, 17299, 9905, 20380, - 18655, 17299, 10636, - 18655, 17299, 11124, - 18655, 17299, 11125, 698, - 18655, 17299, 11125, 14890, - 18655, 17299, 11395, 20380, - 18655, 17299, 11513, 23216, - 18655, 17299, 12497, 3436, - 18655, 17299, 12497, 6044, - 18655, 17299, 12497, 10606, - 18655, 17299, 12497, 16904, - 18655, 17299, 12548, - 18655, 17299, 12554, - 18655, 17299, 12932, - 18655, 17299, 13259, 17740, - 18655, 17299, 13282, - 18655, 17299, 13409, 9443, 487, 14890, - 18655, 17299, 13409, 9443, 14890, - 18655, 17299, 13730, - 18655, 17299, 13828, - 18655, 17299, 13829, 20475, 10122, - 18655, 17299, 13829, 22505, 10122, - 18655, 17299, 13970, - 18655, 17299, 14045, 10122, - 18655, 17299, 14509, 699, 8808, - 18655, 17299, 14509, 8808, - 18655, 17299, 14530, - 18655, 17299, 14659, 17019, 10574, - 18655, 17299, 14768, - 18655, 17299, 14797, 698, - 18655, 17299, 14797, 6700, - 18655, 17299, 14837, 17740, - 18655, 17299, 15398, - 18655, 17299, 15455, 9442, - 18655, 17299, 15455, 10122, - 18655, 17299, 15839, 8808, - 18655, 17299, 15840, - 18655, 17299, 15841, 10122, - 18655, 17299, 15939, 47, 20380, - 18655, 17299, 15946, - 18655, 17299, 15965, 10994, - 18655, 17299, 16019, 17740, - 18655, 17299, 16025, 14890, - 18655, 17299, 16095, 7040, - 18655, 17299, 16095, 14796, - 18655, 17299, 16095, 17740, - 18655, 17299, 16107, 9442, - 18655, 17299, 16107, 10122, - 18655, 17299, 16455, 5, 6342, - 18655, 17299, 16455, 1393, 507, 14532, - 18655, 17299, 16455, 7041, 10574, - 18655, 17299, 16455, 7429, 9442, - 18655, 17299, 16455, 13259, 9442, - 18655, 17299, 16455, 15455, 9442, - 18655, 17299, 16455, 16107, 9443, 10693, 698, - 18655, 17299, 16455, 16107, 9443, 10693, 6700, - 18655, 17299, 16455, 18951, 9443, 10693, 698, - 18655, 17299, 16455, 18951, 9443, 10693, 6700, - 18655, 17299, 16455, 22811, 8808, - 18655, 17299, 16622, - 18655, 17299, 16666, - 18655, 17299, 16667, 10122, - 18655, 17299, 16667, 12524, - 18655, 17299, 16833, 5494, - 18655, 17299, 16833, 12468, - 18655, 17299, 17019, 6696, - 18655, 17299, 17171, 17740, - 18655, 17299, 17225, 2, - 18655, 17299, 17225, 20381, 12524, - 18655, 17299, 17225, 20381, 15452, - 18655, 17299, 17270, - 18655, 17299, 17351, 21739, 1161, 22789, 20474, - 18655, 17299, 17351, 21739, 1161, 22789, 20475, 23804, - 18655, 17299, 17351, 21739, 1161, 22789, 22504, - 18655, 17299, 17351, 23271, 1161, 22789, 20474, - 18655, 17299, 17351, 23271, 1161, 22789, 22504, - 18655, 17299, 17351, 23271, 1161, 22789, 22505, 23804, - 18655, 17299, 17351, 23271, 1161, 22789, 22505, 23806, - 18655, 17299, 17351, 23271, 1161, 22789, 22505, 23808, - 18655, 17299, 17810, - 18655, 17299, 17830, - 18655, 17299, 17895, 20381, 12524, - 18655, 17299, 17895, 20381, 15452, - 18655, 17299, 18146, - 18655, 17299, 18147, 12502, - 18655, 17299, 18665, 698, - 18655, 17299, 18665, 6700, - 18655, 17299, 18886, - 18655, 17299, 18951, 9442, - 18655, 17299, 18951, 10122, - 18655, 17299, 18951, 11033, 7040, - 18655, 17299, 18951, 11033, 14796, - 18655, 17299, 18999, 13259, 17740, - 18655, 17299, 19704, - 18655, 17299, 20025, 22056, - 18655, 17299, 20025, 22058, - 18655, 17299, 20025, 22060, - 18655, 17299, 20163, 11124, - 18655, 17299, 20341, 18601, 10122, - 18655, 17299, 20381, 12524, - 18655, 17299, 20405, 14962, - 18655, 17299, 20413, 20740, - 18655, 17299, 20413, 20742, - 18655, 17299, 20413, 20744, - 18655, 17299, 20413, 20746, - 18655, 17299, 20413, 20748, - 18655, 17299, 20413, 20750, - 18655, 17299, 20413, 20752, - 18655, 17299, 20413, 20754, - 18655, 17299, 20413, 20756, - 18655, 17299, 20413, 21912, - 18655, 17299, 20413, 21914, - 18655, 17299, 20577, 20014, - 18655, 17299, 20577, 20016, - 18655, 17299, 20577, 20018, - 18655, 17299, 20665, 14962, - 18655, 17299, 20844, - 18655, 17299, 20845, 21810, - 18655, 17299, 20859, 20381, 699, 12524, - 18655, 17299, 20859, 20381, 699, 14659, 12524, - 18655, 17299, 20859, 20381, 699, 14659, 15452, - 18655, 17299, 20859, 20381, 699, 15452, - 18655, 17299, 20859, 20381, 6701, 12524, - 18655, 17299, 20859, 20381, 6701, 15452, - 18655, 17299, 20859, 20381, 8281, 12524, - 18655, 17299, 20859, 20381, 8281, 15452, - 18655, 17299, 20859, 20381, 14659, 12524, - 18655, 17299, 20859, 20381, 14659, 15452, - 18655, 17299, 20905, 14962, - 18655, 17299, 21127, 699, 1034, - 18655, 17299, 21127, 3084, - 18655, 17299, 21127, 6060, - 18655, 17299, 21127, 6688, - 18655, 17299, 21127, 6701, 1034, - 18655, 17299, 21127, 7044, - 18655, 17299, 21127, 10609, 21748, - 18655, 17299, 21127, 10692, - 18655, 17299, 21127, 13834, - 18655, 17299, 21127, 14914, - 18655, 17299, 21127, 15678, - 18655, 17299, 21127, 16095, 17430, - 18655, 17299, 21127, 16180, - 18655, 17299, 21127, 16182, - 18655, 17299, 21127, 16184, - 18655, 17299, 21127, 16186, - 18655, 17299, 21127, 16188, - 18655, 17299, 21127, 17354, - 18655, 17299, 21127, 17435, 17430, - 18655, 17299, 21127, 18578, - 18655, 17299, 21127, 20106, - 18655, 17299, 21127, 20704, - 18655, 17299, 21127, 22056, - 18655, 17299, 21127, 22058, - 18655, 17299, 21127, 22060, - 18655, 17299, 21127, 23763, 1290, - 18655, 17299, 21127, 24139, 10692, - 18655, 17299, 21127, 25944, - 18655, 17299, 21127, 26294, - 18655, 17299, 21127, 36198, - 18655, 17299, 21152, - 18655, 17299, 21405, 14962, - 18655, 17299, 21417, 14962, - 18655, 17299, 21433, 698, - 18655, 17299, 21433, 6700, - 18655, 17299, 21445, 5, 6342, - 18655, 17299, 21445, 11, 6342, - 18655, 17299, 21752, - 18655, 17299, 21753, 16192, - 18655, 17299, 21834, - 18655, 17299, 21835, 16192, - 18655, 17299, 21881, 9442, - 18655, 17299, 21881, 10122, - 18655, 17299, 22179, 698, - 18655, 17299, 22179, 6700, - 18655, 17299, 22847, 10122, - 18655, 17299, 22847, 12524, - 18655, 17299, 22847, 15452, - 18655, 17299, 22853, 10122, - 18655, 17299, 22853, 12524, - 18655, 17299, 22853, 15452, - 18655, 17299, 22921, 21418, - 18655, 17299, 22975, 14962, - 18655, 17299, 23112, - 18655, 17299, 23229, 21418, - 18655, 17299, 23242, - 18655, 17299, 23356, - 18655, 17299, 23523, 20380, - 18655, 17299, 23588, - 18655, 17299, 24067, 5494, - 18655, 17299, 24067, 12468, - 18655, 17299, 24135, 9442, - 18655, 17299, 24135, 10122, - 18655, 17299, 25953, 9442, - 18655, 17299, 25953, 10122, - 18655, 17299, 26185, 20381, 6701, 12524, - 18655, 17299, 26185, 20381, 6701, 15452, - 18655, 20196, - 18655, 20197, 11513, 13602, - 18657, 2797, 13069, 2760, - 18657, 2797, 13069, 3240, - 18657, 2797, 13069, 3536, - 18657, 2797, 13069, 7036, - 18657, 2797, 13069, 7058, - 18657, 2797, 13069, 9358, - 18657, 2797, 13069, 11824, - 18657, 2797, 13069, 13150, - 18657, 2797, 13069, 14778, - 18657, 2797, 13069, 15116, - 18657, 3375, 13769, 13069, 2760, - 18657, 3375, 13769, 13069, 3240, - 18657, 3375, 13769, 13069, 3536, - 18657, 3375, 13769, 13069, 7036, - 18657, 3375, 13769, 13069, 7058, - 18657, 3375, 13769, 13069, 9358, - 18657, 3375, 13769, 13069, 11824, - 18657, 3375, 13769, 13069, 13150, - 18657, 3375, 13769, 13069, 14778, - 18657, 3375, 13769, 13069, 15116, - 18657, 10449, 13069, 2760, - 18657, 10449, 13069, 3240, - 18657, 10449, 13069, 3536, - 18657, 10449, 13069, 7036, - 18657, 10449, 13069, 7058, - 18657, 10449, 13069, 9358, - 18657, 10449, 13069, 11824, - 18657, 10449, 13069, 13150, - 18657, 10449, 13069, 14778, - 18657, 10449, 13069, 15116, - 18657, 10575, 1291, 12502, - 18657, 10575, 2797, 13657, 11032, - 18657, 10575, 3375, 13769, 17402, - 18657, 10575, 3375, 13769, 17408, - 18657, 10575, 5534, - 18657, 10575, 10449, 3194, - 18657, 10575, 10449, 17402, - 18657, 10575, 10449, 17404, - 18657, 10575, 10449, 17408, - 18657, 10575, 10449, 17410, - 18657, 10575, 10449, 17925, 17402, - 18657, 10575, 10449, 17925, 17404, - 18657, 10575, 10449, 17925, 19983, 11032, - 18657, 10575, 14695, 18793, 17408, - 18657, 10575, 16441, 17400, - 18657, 10575, 16441, 17404, - 18657, 10575, 16563, 19056, - 18657, 10575, 17534, - 18657, 10575, 19056, - 18657, 10575, 19408, - 18657, 10575, 19433, 2915, 13657, 17400, - 18657, 10575, 19433, 2915, 13657, 17402, - 18657, 10575, 19433, 2915, 13657, 17404, - 18657, 10575, 19433, 2915, 13657, 17406, - 18657, 10575, 19433, 2915, 13657, 17408, - 18657, 10575, 19540, - 18657, 11033, 8809, 10433, 13657, 363, 2836, - 18657, 11033, 8809, 10433, 13657, 13466, - 18657, 13069, 2760, - 18657, 13069, 3240, - 18657, 13069, 3536, - 18657, 13069, 7036, - 18657, 13069, 7058, - 18657, 13069, 9358, - 18657, 13069, 11824, - 18657, 13069, 13150, - 18657, 13069, 14778, - 18657, 13069, 15116, - 18657, 15407, 10575, 8, - 18657, 15407, 10575, 9, 12318, - 18657, 15407, 10575, 16, - 18657, 15407, 10575, 40, - 18657, 15407, 10575, 58, - 18657, 15407, 10575, 72, - 18657, 15407, 10575, 314, - 18657, 15407, 10575, 706, - 18657, 15407, 10575, 2455, 28, - 18657, 15407, 10575, 2455, 314, - 18657, 15407, 10575, 7235, 13657, 16, - 18657, 15407, 10575, 10433, 13657, 218, - 18657, 15407, 10575, 10449, 8, - 18657, 15407, 10575, 10449, 9, 12318, - 18657, 15407, 10575, 10449, 58, - 18657, 15407, 10575, 10449, 13259, 48, - 18657, 15407, 10575, 10863, 58, - 18657, 15407, 10575, 12343, 0, - 18657, 15407, 10575, 12343, 72, - 18657, 15407, 10575, 13665, 40, - 18657, 15407, 10575, 13665, 186, - 18657, 15407, 10575, 13665, 504, - 18657, 15407, 10575, 19415, 22, - 18657, 15407, 10575, 19415, 34, - 18657, 15407, 10575, 19415, 406, - 18657, 15407, 10575, 19415, 608, - 18657, 15407, 10575, 19433, 2915, 13657, 218, - 18657, 15407, 10575, 19433, 2915, 13657, 682, - 18657, 16531, 0, - 18657, 16531, 8, - 18657, 16531, 16, - 18657, 16531, 28, - 18657, 16531, 40, - 18657, 16531, 96, - 18657, 16531, 108, - 18657, 16531, 126, - 18657, 16531, 150, - 18657, 16531, 248, - 18657, 16531, 272, - 18657, 16531, 314, - 18657, 16531, 344, - 18657, 16531, 358, - 18657, 16531, 394, - 18657, 16531, 426, - 18657, 16531, 466, - 18657, 16531, 548, - 18657, 16531, 598, - 18657, 16531, 614, - 18657, 16531, 648, - 18657, 16531, 706, - 18657, 16531, 738, - 18657, 16531, 778, - 18657, 16531, 1000, - 18657, 16531, 1116, - 18657, 16531, 1214, - 18657, 16531, 1236, - 18657, 16531, 1588, - 18657, 16531, 1918, - 18657, 16531, 2036, - 18657, 16531, 2278, - 18657, 16531, 2455, 8, - 18657, 16531, 2455, 972, - 18657, 16531, 2455, 974, - 18657, 16531, 2455, 1918, - 18657, 16531, 2455, 2574, - 18657, 16531, 2574, - 18657, 16531, 2624, - 18657, 16531, 2698, - 18657, 16531, 2830, - 18657, 16531, 3212, - 18657, 16531, 3286, - 18657, 16531, 3375, 13769, 108, - 18657, 16531, 3375, 13769, 150, - 18657, 16531, 3375, 13769, 228, - 18657, 16531, 3375, 13769, 248, - 18657, 16531, 3375, 13769, 344, - 18657, 16531, 3375, 13769, 1000, - 18657, 16531, 3375, 13769, 1214, - 18657, 16531, 3375, 13769, 1236, - 18657, 16531, 3375, 13769, 1588, - 18657, 16531, 3375, 13769, 1918, - 18657, 16531, 3375, 13769, 2278, - 18657, 16531, 3375, 13769, 2624, - 18657, 16531, 3375, 13769, 2698, - 18657, 16531, 3375, 13769, 6572, - 18657, 16531, 3422, - 18657, 16531, 3502, - 18657, 16531, 6572, - 18657, 16531, 9424, - 18657, 16531, 10433, 13657, 3212, - 18657, 16531, 10449, 0, - 18657, 16531, 10449, 108, - 18657, 16531, 10449, 126, - 18657, 16531, 10449, 150, - 18657, 16531, 10449, 228, - 18657, 16531, 10449, 248, - 18657, 16531, 10449, 272, - 18657, 16531, 10449, 358, - 18657, 16531, 10449, 466, - 18657, 16531, 10449, 796, - 18657, 16531, 10449, 1000, - 18657, 16531, 10449, 1116, - 18657, 16531, 10449, 1588, - 18657, 16531, 10449, 1918, - 18657, 16531, 10449, 2036, - 18657, 16531, 10449, 2624, - 18657, 16531, 10449, 2698, - 18657, 16531, 10449, 2830, - 18657, 16531, 10449, 3422, - 18657, 16531, 10533, 18793, 1116, - 18657, 16531, 10533, 18793, 3212, - 18657, 16531, 11082, - 18657, 16531, 12343, 598, - 18657, 16531, 13419, 614, - 18657, 16531, 14695, 18793, 228, - 18657, 16531, 16441, 126, - 18657, 16531, 16441, 228, - 18657, 16531, 16441, 248, - 18657, 16531, 16441, 272, - 18657, 16531, 16441, 344, - 18657, 16531, 16441, 466, - 18657, 16531, 16441, 598, - 18657, 16531, 16441, 614, - 18657, 16531, 16441, 762, - 18657, 16531, 16441, 796, - 18657, 16531, 16441, 1116, - 18657, 16531, 16441, 1214, - 18657, 16531, 16441, 1236, - 18657, 16531, 16441, 1722, - 18657, 16531, 16441, 1918, - 18657, 16531, 16441, 2278, - 18657, 16531, 16441, 2698, - 18657, 16531, 16441, 3502, - 18657, 16531, 16441, 6572, - 18657, 16531, 16441, 11082, - 18657, 16531, 18091, 2915, 13657, 2624, - 18657, 16531, 18091, 2915, 13657, 3994, - 18657, 16531, 18091, 2915, 13657, 7306, - 18657, 16531, 19415, 22, - 18657, 16531, 19415, 34, - 18657, 16531, 19415, 406, - 18657, 16531, 19415, 608, - 18657, 16531, 19433, 2915, 13657, 2908, - 18657, 16531, 19433, 2915, 13657, 3422, - 18657, 17299, 10449, 2760, - 18657, 17299, 10449, 23212, - 18657, 17299, 12343, 2760, - 18657, 17299, 12343, 3536, - 18657, 17299, 12343, 23212, - 18657, 17299, 20074, - 18657, 17299, 20246, - 18657, 17299, 21128, - 18657, 17299, 25978, - 18657, 18091, 2915, 13657, 13069, 2760, - 18657, 18091, 2915, 13657, 13069, 3240, - 18657, 18091, 2915, 13657, 13069, 3536, - 18657, 18091, 2915, 13657, 13069, 7036, - 18657, 18091, 2915, 13657, 13069, 7058, - 18657, 18091, 2915, 13657, 13069, 9358, - 18657, 18091, 2915, 13657, 13069, 11824, - 18657, 18091, 2915, 13657, 13069, 13150, - 18657, 18091, 2915, 13657, 13069, 14778, - 18657, 18091, 2915, 13657, 13069, 15116, - 18657, 20249, 16441, 286, - 18657, 20249, 16441, 588, - 18657, 20249, 16441, 2734, - 18657, 20319, 16531, 10449, 25908, - 18657, 20319, 16531, 16441, 25908, - 18657, 21143, 10575, 2455, 16635, 394, - 18657, 21143, 10575, 2455, 16635, 426, - 18657, 21143, 10575, 2455, 16635, 466, - 18657, 21143, 10575, 10449, 16635, 738, - 18657, 21143, 10575, 16635, 272, - 18657, 21143, 10575, 16635, 598, - 18657, 21143, 10575, 16635, 738, - 18657, 21143, 10575, 16635, 778, - 18668, - 18671, 16095, 20933, 965, 16095, 14659, 22078, - 18673, 1, 17273, 507, 2641, 13177, 660, - 18673, 1, 20765, 507, 2641, 13177, 660, - 18673, 21559, 2641, 13177, 660, - 18673, 21559, 2641, 22435, 660, - 18673, 21559, 2641, 23852, - 18673, 23853, 2641, 13177, 660, - 18673, 23853, 2641, 21558, - 18673, 23853, 2641, 22435, 660, - 18673, 24195, 2641, 19513, 13177, 660, - 18674, - 18675, 7057, 3536, - 18679, 13094, - 18681, 6996, - 18681, 12667, 8108, - 18681, 12667, 8109, 19015, 3537, 18281, 19071, 17974, - 18681, 12667, 8109, 19015, 16745, 17974, - 18681, 12667, 9836, - 18681, 12667, 9837, 19015, 3537, 18281, 19071, 17974, - 18681, 12667, 9837, 19015, 16745, 17974, - 18681, 12667, 10180, - 18681, 12667, 10181, 19015, 3537, 18281, 19071, 17974, - 18681, 12667, 10181, 19015, 16745, 17974, - 18681, 12667, 14596, - 18681, 12667, 14597, 19015, 3537, 18281, 19071, 17974, - 18681, 12667, 14597, 19015, 16745, 17974, - 18681, 12667, 15816, - 18681, 12667, 15817, 19015, 3537, 18281, 19071, 17974, - 18681, 12667, 15817, 19015, 16745, 17974, - 18681, 12667, 16470, - 18681, 12667, 16471, 19015, 2761, 18281, 23695, 17974, - 18681, 12667, 16471, 19015, 3537, 18281, 19071, 17974, - 18681, 12667, 16471, 19015, 3537, 18281, 23711, 17974, - 18681, 12667, 16471, 19015, 15117, 18281, 18149, 17974, - 18681, 12667, 16471, 19015, 16745, 17974, - 18681, 12667, 16471, 19015, 22459, 17974, - 18681, 12667, 17465, 8108, - 18681, 12667, 17465, 9836, - 18681, 12667, 17465, 10180, - 18681, 12667, 17465, 14596, - 18681, 12667, 17465, 15816, - 18681, 12667, 17465, 16470, - 18681, 12667, 22432, - 18681, 12667, 22433, 19015, 16745, 17974, - 18683, 8280, - 18683, 14658, - 18715, 13069, 17124, - 18717, 10574, - 18719, 8281, 22849, 11513, 15117, 6696, - 18719, 13839, 26165, 15453, 22837, 12414, - 18719, 14659, 22849, 11513, 15117, 6696, - 18719, 15287, 26165, 15453, 22837, 12414, - 18741, 12379, 18763, 698, - 18741, 12379, 18763, 6700, - 18741, 16358, - 18748, - 18765, 6668, - 18765, 6669, 7788, - 18769, 13069, 2760, - 18769, 13069, 3240, - 18769, 13069, 3536, - 18769, 13069, 7036, - 18769, 13069, 7058, - 18769, 13069, 9358, - 18769, 13069, 11824, - 18769, 13069, 13150, - 18769, 13069, 14778, - 18769, 13069, 15116, - 18769, 16531, 0, - 18769, 16531, 8, - 18769, 16531, 16, - 18769, 16531, 28, - 18769, 16531, 40, - 18769, 16531, 58, - 18769, 16531, 108, - 18769, 16531, 186, - 18769, 16531, 228, - 18769, 16531, 248, - 18769, 16531, 272, - 18769, 16531, 344, - 18769, 16531, 522, - 18769, 16531, 598, - 18769, 16531, 614, - 18769, 16531, 648, - 18769, 16531, 762, - 18769, 16531, 778, - 18769, 16531, 1236, - 18769, 16531, 2036, - 18769, 16531, 3750, - 18769, 16531, 5482, - 18769, 16531, 6234, - 18769, 16531, 6614, - 18769, 16531, 7966, - 18769, 16531, 8236, - 18769, 16531, 8944, - 18769, 16531, 9536, - 18769, 16531, 9962, - 18769, 16531, 14820, - 18773, 14879, 16787, 2760, - 18773, 14879, 16787, 2761, 18280, - 18773, 14879, 16787, 2761, 20828, - 18773, 14879, 16787, 3240, - 18773, 14879, 16787, 3241, 18280, - 18773, 14879, 16787, 3241, 20828, - 18773, 14879, 16787, 3412, - 18773, 14879, 16787, 3413, 20828, - 18773, 14879, 16787, 3536, - 18773, 14879, 16787, 3537, 18280, - 18773, 14879, 16787, 3537, 20828, - 18773, 14879, 16787, 7036, - 18773, 14879, 16787, 7037, 18280, - 18773, 14879, 16787, 7037, 20828, - 18773, 14879, 16787, 7058, - 18773, 14879, 16787, 7059, 18280, - 18773, 14879, 16787, 7059, 20828, - 18773, 14879, 16787, 9358, - 18773, 14879, 16787, 9359, 18280, - 18773, 14879, 16787, 9359, 20828, - 18773, 14879, 16787, 13150, - 18773, 14879, 16787, 13151, 18280, - 18773, 14879, 16787, 13151, 20828, - 18773, 14879, 16787, 13254, - 18773, 14879, 16787, 13255, 20828, - 18773, 14879, 16787, 13284, - 18773, 14879, 16787, 13285, 20828, - 18773, 14879, 16787, 14778, - 18773, 14879, 16787, 14779, 18280, - 18773, 14879, 16787, 14779, 20828, - 18773, 14879, 16787, 14876, - 18773, 14879, 16787, 14877, 20828, - 18773, 14879, 16787, 15116, - 18773, 14879, 16787, 15117, 18280, - 18773, 14879, 16787, 15117, 20828, - 18773, 14879, 16787, 16108, - 18773, 14879, 16787, 16109, 20828, - 18773, 14879, 16787, 16744, - 18773, 14879, 16787, 16745, 20828, - 18773, 14879, 16787, 17372, - 18773, 14879, 16787, 17373, 20828, - 18773, 14879, 16787, 17474, - 18773, 14879, 16787, 17475, 20828, - 18773, 14879, 16787, 19070, - 18773, 14879, 16787, 19071, 20828, - 18773, 14879, 20055, 2761, 7428, - 18773, 14879, 20055, 2761, 14874, - 18773, 14879, 20278, - 18773, 14879, 21003, 16787, 3240, - 18773, 14879, 21003, 16787, 3241, 18280, - 18773, 14879, 21003, 16787, 3412, - 18773, 14879, 21003, 16787, 3413, 20828, - 18773, 14879, 21003, 16787, 3536, - 18773, 14879, 21003, 16787, 3537, 20828, - 18773, 14879, 21003, 16787, 7036, - 18773, 14879, 21003, 16787, 7058, - 18773, 14879, 21003, 16787, 7059, 18280, - 18773, 14879, 21003, 16787, 9358, - 18773, 14879, 21003, 16787, 13150, - 18773, 14879, 21003, 16787, 14778, - 18773, 14879, 21003, 16787, 15116, - 18780, - 18784, - 18819, 23798, - 18826, - 18828, - 18834, - 18839, 6996, - 18841, 10574, - 18871, 10574, - 18873, 18150, - 18878, - 18883, 6223, 847, 507, 12718, - 18883, 6223, 847, 507, 16322, - 18883, 6223, 847, 507, 17196, - 18883, 6223, 847, 507, 19794, - 18883, 6223, 3059, 13626, - 18883, 6223, 3241, 507, 12718, - 18883, 6223, 3241, 507, 16322, - 18883, 6223, 3241, 507, 17196, - 18883, 6223, 3241, 507, 19794, - 18883, 6223, 3413, 507, 12718, - 18883, 6223, 3413, 507, 16322, - 18883, 6223, 3413, 507, 17196, - 18883, 6223, 3413, 507, 19794, - 18883, 6223, 3537, 507, 12718, - 18883, 6223, 3537, 507, 16322, - 18883, 6223, 3537, 507, 17196, - 18883, 6223, 3537, 507, 19794, - 18883, 6223, 5966, - 18883, 6223, 7037, 507, 12718, - 18883, 6223, 7037, 507, 16322, - 18883, 6223, 7037, 507, 17196, - 18883, 6223, 7037, 507, 19794, - 18883, 6223, 7050, - 18883, 6223, 7059, 507, 12718, - 18883, 6223, 7059, 507, 16322, - 18883, 6223, 7059, 507, 17196, - 18883, 6223, 7059, 507, 19794, - 18883, 6223, 7837, 507, 12718, - 18883, 6223, 7837, 507, 16322, - 18883, 6223, 7837, 507, 17196, - 18883, 6223, 7837, 507, 19794, - 18883, 6223, 8109, 507, 12718, - 18883, 6223, 8109, 507, 16322, - 18883, 6223, 8109, 507, 17196, - 18883, 6223, 8109, 507, 19794, - 18883, 6223, 9359, 507, 12718, - 18883, 6223, 9359, 507, 16322, - 18883, 6223, 9359, 507, 17196, - 18883, 6223, 9359, 507, 19794, - 18883, 6223, 12525, 13626, - 18883, 6223, 13151, 507, 12718, - 18883, 6223, 13151, 507, 16322, - 18883, 6223, 13151, 507, 17196, - 18883, 6223, 13151, 507, 19794, - 18883, 6223, 14597, 507, 12718, - 18883, 6223, 14597, 507, 16322, - 18883, 6223, 14597, 507, 17196, - 18883, 6223, 14597, 507, 19794, - 18883, 6223, 14779, 507, 12718, - 18883, 6223, 14779, 507, 16322, - 18883, 6223, 14779, 507, 17196, - 18883, 6223, 14779, 507, 19794, - 18883, 6223, 15117, 507, 12718, - 18883, 6223, 15117, 507, 16322, - 18883, 6223, 15117, 507, 17196, - 18883, 6223, 15117, 507, 19794, - 18883, 6223, 15453, 13626, - 18883, 6223, 16471, 507, 12718, - 18883, 6223, 16471, 507, 16322, - 18883, 6223, 16471, 507, 17196, - 18883, 6223, 16471, 507, 19794, - 18883, 6223, 19324, - 18883, 6223, 19326, - 18883, 6223, 19328, - 18883, 6223, 19330, - 18883, 6223, 19332, - 18883, 6223, 19334, - 18883, 6223, 19336, - 18883, 6223, 19338, - 18883, 6223, 19340, - 18883, 6223, 20868, - 18883, 6223, 20870, - 18883, 6223, 20872, - 18883, 6223, 20874, - 18883, 6223, 20876, - 18883, 6223, 20878, - 18883, 6223, 20880, - 18883, 6223, 20882, - 18883, 6223, 20884, - 18883, 6223, 20886, - 18883, 6223, 20888, - 18883, 6223, 20890, - 18884, - 18894, - 18898, - 18901, 15437, 17298, - 18903, 2232, - 18905, 16558, - 18907, 1091, 6996, - 18907, 6996, - 18922, - 18924, - 18925, 7788, - 18931, 6216, - 18935, 18789, 7059, 6697, 11513, 1290, - 18935, 18789, 7059, 6697, 11513, 12934, - 18935, 18789, 16531, 276, - 18935, 18789, 16531, 554, - 18935, 18789, 16531, 2676, - 18935, 18789, 16531, 3398, - 18935, 18789, 16531, 6066, - 18935, 18789, 16531, 7478, - 18935, 18789, 16531, 8002, - 18935, 18789, 16531, 10478, - 18935, 18789, 16531, 11722, - 18935, 18789, 16531, 12354, - 18935, 18789, 16531, 13384, - 18935, 18789, 16531, 14720, - 18935, 18789, 16531, 15606, - 18935, 18789, 16531, 16010, - 18935, 18789, 16531, 16508, - 18935, 18789, 16531, 17060, - 18935, 18789, 16531, 20300, - 18935, 18789, 16531, 25970, - 18935, 18789, 16787, 2760, - 18935, 18789, 16787, 2761, 18280, - 18935, 18789, 16787, 3412, - 18935, 18789, 16787, 3536, - 18935, 18789, 16787, 7058, - 18935, 18789, 16787, 15116, - 18935, 18789, 16787, 17474, - 18935, 18789, 17465, 19057, 8808, - 18935, 18789, 19057, 8808, - 18939, 19975, 8808, - 18946, - 18951, 9442, - 18956, - 18961, 17299, 15826, - 18963, 1088, - 18963, 15194, - 18964, - 18984, - 18999, 13807, 7059, 18889, 20489, 10690, - 18999, 15141, 20407, 12319, 21557, 12414, - 18999, 15141, 20407, 12319, 22837, 12414, - 18999, 17863, 12538, - 18999, 19140, - 18999, 19141, 11513, 22495, 17264, - 18999, 19141, 20406, - 18999, 19141, 21763, 17272, - 19003, 6056, - 19007, 15017, 16958, - 19009, 521, 3425, 13271, 20218, - 19010, - 19012, - 19015, 13473, 12525, 13471, 15858, - 19015, 13807, 7059, 18889, 12525, 6380, - 19015, 15453, 7059, 18889, 6380, - 19015, 16199, 13471, 15858, - 19015, 17835, 32, - 19019, 17299, 1493, 242, - 19019, 17299, 1493, 416, - 19019, 17299, 1493, 768, - 19019, 17299, 1493, 1080, - 19019, 17299, 1493, 10500, - 19019, 17299, 1493, 20654, - 19020, - 19023, 14825, 11513, 10396, - 19025, 23755, 17299, 16762, - 19025, 23755, 17299, 19620, - 19025, 23755, 17299, 20552, - 19025, 23755, 17299, 20636, - 19025, 23755, 17299, 22054, - 19025, 23755, 17299, 22104, - 19032, - 19050, - 19052, - 19057, 10574, - 19058, - 19063, 6997, 11513, 19229, 19735, 14030, - 19065, 8808, - 19074, - 19079, 6996, - 19081, 2795, 507, 7048, - 19085, 518, - 19085, 6846, - 19085, 10575, 14334, - 19085, 10575, 17534, - 19085, 10575, 19100, - 19085, 10575, 19408, - 19085, 10575, 19540, - 19085, 10575, 19586, - 19085, 10575, 20163, 23070, - 19085, 10575, 23070, - 19085, 10575, 23288, - 19085, 10575, 23722, - 19085, 13016, - 19085, 13069, 2760, - 19085, 13069, 3240, - 19085, 13069, 3536, - 19085, 13069, 7036, - 19085, 13069, 7058, - 19085, 13069, 9358, - 19085, 13069, 11824, - 19085, 13069, 13150, - 19085, 13069, 14778, - 19085, 13069, 15116, - 19085, 13207, 14837, 15407, 8808, - 19085, 15009, 8808, - 19085, 15407, 10575, 8, - 19085, 15407, 10575, 16, - 19085, 15407, 10575, 28, - 19085, 15407, 10575, 40, - 19085, 15407, 10575, 58, - 19085, 15407, 10575, 72, - 19085, 15407, 10575, 96, - 19085, 15407, 10575, 314, - 19085, 15407, 10575, 706, - 19085, 15407, 10575, 19415, 22, - 19085, 15407, 10575, 19415, 34, - 19085, 15407, 10575, 19415, 406, - 19085, 15407, 10575, 19415, 608, - 19085, 15407, 10575, 25905, 8, - 19085, 15407, 20319, 8808, - 19085, 16095, 13016, - 19085, 16531, 0, - 19085, 16531, 8, - 19085, 16531, 16, - 19085, 16531, 28, - 19085, 16531, 40, - 19085, 16531, 58, - 19085, 16531, 72, - 19085, 16531, 96, - 19085, 16531, 108, - 19085, 16531, 126, - 19085, 16531, 150, - 19085, 16531, 248, - 19085, 16531, 272, - 19085, 16531, 314, - 19085, 16531, 344, - 19085, 16531, 358, - 19085, 16531, 394, - 19085, 16531, 426, - 19085, 16531, 466, - 19085, 16531, 548, - 19085, 16531, 598, - 19085, 16531, 614, - 19085, 16531, 648, - 19085, 16531, 706, - 19085, 16531, 714, - 19085, 16531, 778, - 19085, 16531, 1000, - 19085, 16531, 1116, - 19085, 16531, 1214, - 19085, 16531, 1236, - 19085, 16531, 1588, - 19085, 16531, 1918, - 19085, 16531, 2036, - 19085, 16531, 2278, - 19085, 16531, 2574, - 19085, 16531, 2624, - 19085, 16531, 2698, - 19085, 16531, 2830, - 19085, 16531, 3212, - 19085, 16531, 3286, - 19085, 16531, 3422, - 19085, 16531, 3502, - 19085, 16531, 6572, - 19085, 16531, 11082, - 19085, 16531, 19415, 22, - 19085, 16531, 19415, 34, - 19085, 16531, 19415, 406, - 19085, 16531, 19415, 608, - 19085, 17069, 8808, - 19085, 19057, 16606, - 19085, 19057, 16608, - 19085, 21850, - 19085, 22478, - 19085, 23737, 10574, - 19085, 23789, 10574, - 19087, 16531, 70, - 19087, 16531, 308, - 19087, 16531, 520, - 19087, 16531, 528, - 19087, 16531, 628, - 19087, 16531, 698, - 19087, 16531, 850, - 19087, 16531, 874, - 19087, 16531, 882, - 19087, 16531, 918, - 19087, 16531, 922, - 19087, 16531, 934, - 19087, 16531, 1010, - 19087, 16531, 1352, - 19087, 16531, 1354, - 19087, 16531, 1366, - 19087, 16531, 1408, - 19087, 16531, 1460, - 19087, 16531, 1532, - 19087, 16531, 1854, - 19087, 16531, 1856, - 19087, 16531, 2676, - 19087, 16531, 2732, - 19087, 16531, 2752, - 19087, 16531, 2784, - 19087, 16531, 3478, - 19087, 16531, 3712, - 19087, 16531, 3778, - 19087, 16531, 3914, - 19087, 16531, 3926, - 19087, 16531, 4074, - 19087, 16531, 6610, - 19087, 16531, 7696, - 19087, 16531, 8102, - 19087, 16531, 8348, - 19087, 16531, 8950, - 19087, 16531, 9780, - 19087, 16531, 9844, - 19087, 16531, 10172, - 19087, 16531, 10738, - 19087, 16531, 10946, - 19087, 16531, 11532, - 19087, 16531, 12412, - 19087, 16531, 13440, - 19087, 16531, 13628, - 19087, 16531, 15104, - 19087, 16531, 15934, - 19087, 16531, 18600, - 19095, 6997, 11513, 21379, 7460, - 19099, 18932, - 19101, 1393, 507, 10921, 8808, - 19101, 10575, 14334, - 19101, 10575, 17534, - 19101, 10575, 19100, - 19101, 10575, 19408, - 19101, 10575, 19540, - 19101, 10575, 23070, - 19101, 13016, - 19101, 15407, 10575, 8, - 19101, 15407, 10575, 16, - 19101, 15407, 10575, 28, - 19101, 15407, 10575, 40, - 19101, 15407, 10575, 58, - 19101, 15407, 10575, 72, - 19101, 15407, 10575, 96, - 19101, 15407, 10575, 314, - 19101, 15407, 10575, 706, - 19101, 15407, 10575, 19415, 34, - 19101, 15407, 10575, 19415, 608, - 19101, 15407, 10575, 21003, 40, - 19101, 15407, 10575, 21003, 706, - 19101, 16095, 13016, - 19101, 16531, 0, - 19101, 16531, 8, - 19101, 16531, 16, - 19101, 16531, 28, - 19101, 16531, 40, - 19101, 16531, 58, - 19101, 16531, 72, - 19101, 16531, 96, - 19101, 16531, 108, - 19101, 16531, 126, - 19101, 16531, 150, - 19101, 16531, 248, - 19101, 16531, 272, - 19101, 16531, 314, - 19101, 16531, 344, - 19101, 16531, 358, - 19101, 16531, 394, - 19101, 16531, 426, - 19101, 16531, 466, - 19101, 16531, 548, - 19101, 16531, 598, - 19101, 16531, 614, - 19101, 16531, 648, - 19101, 16531, 706, - 19101, 16531, 714, - 19101, 16531, 778, - 19101, 16531, 1000, - 19101, 16531, 1116, - 19101, 16531, 1214, - 19101, 16531, 1236, - 19101, 16531, 1588, - 19101, 16531, 1918, - 19101, 16531, 2036, - 19101, 16531, 2574, - 19101, 16531, 2624, - 19101, 16531, 2698, - 19101, 16531, 2830, - 19101, 16531, 3212, - 19101, 16531, 3286, - 19101, 16531, 3422, - 19101, 16531, 3502, - 19101, 16531, 6572, - 19101, 16531, 11082, - 19101, 16531, 19415, 22, - 19101, 16531, 19415, 34, - 19101, 16531, 19415, 406, - 19101, 16531, 19415, 608, - 19101, 16531, 21003, 40, - 19101, 16531, 23003, 21003, 16, - 19101, 16531, 23003, 21003, 314, - 19101, 16531, 24155, 21003, 16, - 19101, 19057, 8809, 11513, 10101, 897, 16093, 16095, 21154, - 19101, 19057, 8809, 11513, 10101, 897, 16093, 17435, 21154, - 19101, 19057, 8809, 11513, 10101, 897, 16093, 21154, - 19101, 19057, 8809, 11513, 16095, 21154, - 19101, 19057, 8809, 11513, 17435, 21154, - 19101, 19057, 8809, 11513, 17883, 897, 3537, 22416, - 19101, 19057, 8809, 11513, 17883, 897, 7059, 22416, - 19101, 19057, 8809, 11513, 17883, 897, 10100, - 19101, 19057, 8809, 11513, 19313, 897, 16093, 21154, - 19101, 19057, 8809, 11513, 19313, 897, 20909, 21704, - 19101, 19057, 8809, 11513, 20639, 21154, - 19101, 19057, 8809, 11513, 21775, 21154, - 19101, 19057, 8809, 16095, 10150, - 19101, 19057, 8809, 16095, 10151, 11513, 10100, - 19101, 21851, 964, - 19101, 21851, 1290, - 19101, 22819, 16606, - 19101, 22819, 16608, - 19101, 22819, 16610, - 19107, 529, 21558, - 19107, 529, 23852, - 19107, 12319, 21559, 12319, 16121, 10574, - 19107, 12319, 23853, 12319, 16121, 10574, - 19107, 14005, 19106, - 19111, 8337, 13069, 2760, - 19111, 8337, 13069, 3240, - 19111, 8337, 13069, 3536, - 19111, 8337, 13069, 7036, - 19111, 8337, 13069, 7058, - 19111, 8337, 13069, 9358, - 19111, 8337, 13069, 11824, - 19111, 8337, 13069, 13150, - 19111, 8337, 13069, 14778, - 19111, 8337, 13069, 15116, - 19111, 10575, 20996, - 19111, 10575, 22110, - 19111, 10575, 22166, - 19111, 10575, 23070, - 19111, 15407, 10575, 6663, 18374, - 19111, 15407, 10575, 6663, 20168, - 19111, 15407, 10575, 6663, 21708, - 19111, 15407, 10575, 6663, 22146, - 19111, 15407, 10575, 6663, 23232, - 19111, 15407, 10575, 6663, 23846, - 19111, 15407, 10575, 13681, 20168, - 19111, 15407, 10575, 13681, 21708, - 19111, 15407, 10575, 13681, 22146, - 19111, 15407, 10575, 13725, 6620, - 19111, 15407, 10575, 18374, - 19111, 15407, 10575, 18375, 1679, 6663, 22148, - 19111, 15407, 10575, 18375, 1679, 22148, - 19111, 15407, 10575, 18375, 1679, 23232, - 19111, 15407, 10575, 22148, - 19111, 15407, 10575, 23232, - 19111, 15407, 10575, 23846, - 19111, 16531, 5501, 17752, - 19111, 16531, 15762, - 19111, 16531, 16132, - 19111, 16531, 16394, - 19111, 16531, 16842, - 19111, 16531, 17512, - 19111, 16531, 17632, - 19111, 16531, 17648, - 19111, 16531, 17660, - 19111, 16531, 17720, - 19111, 16531, 17963, 18498, - 19111, 16531, 17963, 18666, - 19111, 16531, 17963, 19044, - 19111, 16531, 18096, - 19111, 16531, 18140, - 19111, 16531, 18256, - 19111, 16531, 18290, - 19111, 16531, 18335, 22596, - 19111, 16531, 18594, - 19111, 16531, 18760, - 19111, 16531, 18974, - 19111, 16531, 19037, 17968, - 19111, 16531, 19037, 18190, - 19111, 16531, 19037, 18322, - 19111, 16531, 19037, 19770, - 19111, 16531, 19241, 19044, - 19111, 16531, 19241, 20617, 23352, - 19111, 16531, 19241, 22596, - 19111, 16531, 19384, - 19111, 16531, 19396, - 19111, 16531, 19458, - 19111, 16531, 19516, - 19111, 16531, 20138, - 19111, 16531, 20166, - 19111, 16531, 21488, - 19111, 16531, 21510, - 19111, 16531, 21619, 18498, - 19111, 16531, 21619, 18666, - 19111, 16531, 21619, 19044, - 19111, 16531, 22155, 17752, - 19111, 16531, 22155, 17844, - 19111, 16531, 22155, 17968, - 19111, 16531, 22155, 18190, - 19111, 16531, 22155, 18322, - 19111, 16531, 22155, 18344, - 19111, 16531, 22155, 18822, - 19111, 16531, 22155, 19258, - 19111, 16531, 22155, 19770, - 19111, 16531, 22155, 20894, - 19111, 16531, 23313, 17752, - 19111, 16531, 23313, 17844, - 19111, 16531, 23313, 17968, - 19111, 16531, 23313, 18190, - 19111, 16531, 23313, 18322, - 19111, 16531, 23313, 18344, - 19111, 16531, 23313, 18822, - 19111, 16531, 23313, 19258, - 19111, 16531, 23313, 19770, - 19111, 16531, 23313, 20894, - 19111, 17709, 13069, 2760, - 19111, 17709, 13069, 3240, - 19111, 17709, 13069, 3536, - 19111, 17709, 13069, 7036, - 19111, 17709, 13069, 7058, - 19111, 17709, 13069, 9358, - 19111, 17709, 13069, 13150, - 19111, 17709, 13069, 14778, - 19111, 17709, 13069, 15116, - 19111, 17709, 16787, 2761, 18280, - 19111, 17709, 16787, 2761, 20828, - 19111, 17709, 16787, 3412, - 19111, 17709, 16787, 13254, - 19111, 17709, 16787, 13284, - 19111, 17709, 16787, 14876, - 19111, 17709, 16787, 16108, - 19111, 17709, 16787, 16744, - 19111, 17709, 16787, 17372, - 19111, 17709, 16787, 17474, - 19111, 17709, 16787, 19070, - 19111, 23555, 22530, - 19117, 18889, 19574, - 19121, 13177, 661, 529, 21558, - 19121, 13177, 661, 529, 21559, 11513, 1291, 16382, - 19121, 13177, 661, 529, 23852, - 19121, 13177, 661, 529, 23853, 11513, 1291, 16382, - 19121, 14255, 12415, 11513, 16351, 7460, - 19121, 14255, 12415, 11513, 22495, 10856, - 19125, 13779, 528, - 19125, 13779, 896, - 19127, 10932, - 19127, 10933, 529, 13177, 660, - 19129, 1091, 6997, 11513, 9783, 14030, - 19129, 1091, 6997, 11513, 23861, 6882, - 19129, 6997, 11513, 7430, - 19129, 6997, 11513, 9783, 14030, - 19129, 6997, 11513, 9783, 14031, 897, 6353, 15014, - 19129, 6997, 11513, 9783, 14031, 897, 19129, 6882, - 19129, 6997, 11513, 9783, 14031, 897, 26179, 6882, - 19129, 6997, 11513, 10900, - 19129, 6997, 11513, 13534, - 19129, 6997, 11513, 19129, 6882, - 19129, 6997, 11513, 19129, 6883, 897, 7433, 19735, 14030, - 19129, 6997, 11513, 19129, 6883, 897, 15117, 16322, - 19129, 6997, 11513, 22954, - 19129, 6997, 11513, 23861, 6882, - 19131, 17298, - 19132, - 19133, 19443, 10610, - 19137, 16531, 276, - 19137, 16531, 554, - 19137, 16531, 2406, - 19137, 16531, 2676, - 19137, 16531, 3398, - 19137, 16531, 3750, - 19137, 16531, 5556, - 19137, 16531, 6066, - 19137, 16531, 7016, - 19137, 16531, 7478, - 19137, 16531, 8002, - 19137, 16531, 8284, - 19137, 16531, 10478, - 19137, 16531, 11722, - 19137, 16531, 12354, - 19137, 16531, 13384, - 19137, 16531, 14720, - 19137, 16531, 15606, - 19137, 16531, 16508, - 19137, 16531, 17060, - 19137, 16531, 21806, - 19137, 16787, 2760, - 19137, 16787, 2761, 18280, - 19137, 16787, 3412, - 19137, 16787, 17474, - 19137, 21127, 1291, 12318, - 19137, 21127, 1291, 12502, - 19137, 21127, 3537, 6697, 12318, - 19137, 21127, 3537, 6697, 12502, - 19137, 21127, 7659, 12318, - 19137, 21127, 7659, 12502, - 19137, 21127, 8351, 7659, 12502, - 19137, 21127, 10121, 12502, - 19137, 21127, 12945, 12318, - 19137, 21127, 12945, 12502, - 19137, 21127, 17265, 12502, - 19137, 23273, 10478, - 19137, 23555, 3537, 17883, 11513, 6696, - 19137, 23555, 3537, 20933, 5990, - 19137, 23555, 3537, 20933, 5991, 11513, 6696, - 19137, 23555, 7429, 15939, 11513, 1290, - 19137, 23555, 15939, 11513, 1290, - 19140, - 19141, 11513, 18778, - 19145, 7461, 8809, 11513, 8981, 897, 3310, - 19145, 7461, 8809, 11513, 8981, 897, 3311, 897, 13264, - 19145, 7461, 8809, 11513, 8981, 897, 3311, 897, 17435, 13264, - 19145, 8809, 10444, - 19145, 8809, 14554, - 19145, 8809, 15224, - 19145, 8809, 16095, 10444, - 19145, 10575, 19408, - 19145, 10575, 19540, - 19145, 10575, 23288, - 19145, 10575, 23722, - 19145, 13259, 21143, 10575, 2, - 19145, 13259, 21143, 10575, 6, - 19145, 13259, 21143, 10575, 12, - 19145, 13259, 21143, 10575, 20, - 19145, 13259, 21143, 10575, 22, - 19145, 13259, 21143, 10575, 24, - 19145, 13259, 21143, 10575, 26, - 19145, 13259, 21143, 10575, 34, - 19145, 13259, 21143, 10575, 36, - 19145, 13259, 21143, 10575, 52, - 19145, 13259, 21143, 10575, 474, - 19145, 13259, 21143, 10575, 622, - 19145, 15407, 10575, 8, - 19145, 15407, 10575, 16, - 19145, 15407, 10575, 28, - 19145, 15407, 10575, 40, - 19145, 15407, 10575, 72, - 19145, 15407, 10575, 96, - 19145, 15407, 10575, 504, - 19145, 15407, 10575, 682, - 19145, 15407, 10575, 19415, 22, - 19145, 15407, 10575, 19415, 34, - 19145, 15407, 16525, 8808, - 19145, 16531, 0, - 19145, 16531, 52, - 19145, 16531, 108, - 19145, 16531, 126, - 19145, 16531, 150, - 19145, 16531, 248, - 19145, 16531, 272, - 19145, 16531, 344, - 19145, 16531, 358, - 19145, 16531, 394, - 19145, 16531, 426, - 19145, 16531, 466, - 19145, 16531, 548, - 19145, 16531, 598, - 19145, 16531, 614, - 19145, 16531, 648, - 19145, 16531, 714, - 19145, 16531, 778, - 19145, 16531, 796, - 19145, 16531, 1000, - 19145, 16531, 1116, - 19145, 16531, 1214, - 19145, 16531, 1236, - 19145, 16531, 1330, - 19145, 16531, 1588, - 19145, 16531, 1918, - 19145, 16531, 2036, - 19145, 16531, 2574, - 19145, 16531, 2624, - 19145, 16531, 2698, - 19145, 16531, 2830, - 19145, 16531, 3212, - 19145, 16531, 3286, - 19145, 16531, 3422, - 19145, 16531, 3488, - 19145, 16531, 3502, - 19145, 16531, 4042, - 19145, 16531, 6572, - 19145, 16531, 8154, - 19145, 16531, 11058, - 19145, 16531, 11082, - 19145, 20813, 16606, - 19145, 20813, 16608, - 19145, 21920, - 19145, 22465, 8808, - 19145, 28043, 16531, 394, - 19145, 28043, 16531, 598, - 19145, 28043, 16531, 614, - 19145, 28043, 16531, 3212, - 19148, - 19150, - 19151, 11513, 2761, 14929, 11472, - 19151, 11513, 15117, 14929, 15440, - 19151, 11513, 23781, 17264, - 19155, 7023, 18176, - 19155, 7023, 18178, - 19165, 138, - 19165, 274, - 19165, 294, - 19165, 304, - 19165, 456, - 19165, 474, - 19165, 514, - 19165, 616, - 19165, 634, - 19165, 699, 11513, 23213, 8808, - 19165, 726, - 19165, 742, - 19165, 1145, 19371, 26008, - 19165, 1145, 19371, 26010, - 19165, 1145, 19371, 26012, - 19165, 1145, 19371, 26014, - 19165, 1145, 19371, 26016, - 19165, 1145, 19371, 26018, - 19165, 1145, 19371, 26020, - 19165, 1145, 19371, 26022, - 19165, 1145, 19371, 26024, - 19165, 1145, 19371, 26028, - 19165, 1145, 19371, 26030, - 19165, 1145, 19371, 26032, - 19165, 1145, 19371, 26034, - 19165, 1145, 19371, 26036, - 19165, 1145, 19371, 26038, - 19165, 1145, 19371, 26040, - 19165, 1145, 19371, 26042, - 19165, 1145, 19371, 26044, - 19165, 1145, 19371, 26048, - 19165, 1145, 19371, 26050, - 19165, 1145, 19371, 26052, - 19165, 1145, 19371, 26054, - 19165, 1145, 19371, 26056, - 19165, 1145, 19371, 26058, - 19165, 1145, 19371, 26060, - 19165, 1145, 19371, 26064, - 19165, 1145, 19371, 26066, - 19165, 1145, 19371, 26068, - 19165, 1145, 19371, 26070, - 19165, 1145, 19371, 26072, - 19165, 1145, 19371, 26076, - 19165, 1145, 19371, 26078, - 19165, 1145, 19371, 26082, - 19165, 1145, 19371, 26084, - 19165, 1145, 19371, 26086, - 19165, 1145, 19371, 26090, - 19165, 1145, 19371, 26092, - 19165, 1145, 19371, 26094, - 19165, 1145, 19371, 26096, - 19165, 1145, 19371, 26098, - 19165, 1145, 19371, 26100, - 19165, 1145, 19371, 26102, - 19165, 1145, 19371, 26104, - 19165, 1291, 20406, - 19165, 1706, - 19165, 2034, - 19165, 2570, - 19165, 2761, 18281, 17475, 30, - 19165, 2878, - 19165, 3222, - 19165, 3264, - 19165, 3537, 20, - 19165, 3596, - 19165, 3698, - 19165, 6358, - 19165, 7037, 14559, 2760, - 19165, 7059, 20, - 19165, 7059, 1291, 23554, - 19165, 7060, - 19165, 9904, - 19165, 13151, 20, - 19165, 13783, 14911, 16531, 6, - 19165, 13783, 17835, 16531, 0, - 19165, 13783, 17835, 16531, 2, - 19165, 13783, 17835, 16531, 4, - 19165, 13783, 17835, 16531, 6, - 19165, 13783, 17835, 16531, 8, - 19165, 13783, 17835, 16531, 10, - 19165, 13783, 17835, 16531, 12, - 19165, 13783, 17835, 16531, 14, - 19165, 13783, 17835, 16531, 16, - 19165, 13783, 17835, 16531, 18, - 19165, 13783, 17835, 16531, 20, - 19165, 13783, 17835, 16531, 22, - 19165, 13783, 17835, 16531, 24, - 19165, 13783, 17835, 16531, 26, - 19165, 13783, 17835, 16531, 28, - 19165, 13783, 17835, 16531, 30, - 19165, 13783, 17835, 16531, 32, - 19165, 13783, 17835, 16531, 34, - 19165, 13783, 17835, 16531, 36, - 19165, 13783, 17835, 16531, 38, - 19165, 13783, 17835, 16531, 40, - 19165, 13783, 17835, 16531, 42, - 19165, 13783, 17835, 16531, 44, - 19165, 13783, 17835, 16531, 46, - 19165, 13783, 17835, 16531, 48, - 19165, 13783, 17835, 16531, 50, - 19165, 14004, - 19165, 14779, 14559, 2760, - 19165, 14877, 30, - 19165, 14911, 15938, - 19165, 15117, 6, - 19165, 15146, - 19165, 16338, - 19165, 17037, 19791, 14890, - 19165, 17095, 17086, - 19165, 17224, - 19165, 18137, 19791, 14890, - 19165, 18529, 528, - 19165, 18529, 896, - 19165, 19032, - 19165, 19574, - 19165, 20193, 156, - 19165, 20193, 614, - 19165, 20193, 8132, - 19165, 20256, - 19165, 23001, 14559, 3536, - 19172, - 19175, 19986, - 19180, - 19205, 23721, 20858, - 19205, 25763, 20858, - 19205, 25813, 20858, - 19205, 26163, 20858, - 19209, 21406, - 19218, - 19219, 9787, 21608, - 19221, 10575, 2906, - 19221, 13069, 2760, - 19221, 13069, 3240, - 19221, 13069, 3536, - 19221, 13069, 7036, - 19221, 13069, 7058, - 19221, 13069, 9358, - 19221, 13069, 11824, - 19221, 13069, 13150, - 19221, 13069, 14778, - 19221, 13069, 15116, - 19221, 16531, 426, - 19221, 16531, 828, - 19221, 16531, 930, - 19221, 16531, 1052, - 19221, 16531, 1376, - 19221, 16531, 1606, - 19221, 16531, 2036, - 19221, 16531, 2058, - 19221, 16531, 2518, - 19221, 16531, 2848, - 19221, 16531, 3070, - 19221, 16531, 3902, - 19221, 16531, 6632, - 19221, 16531, 7802, - 19221, 16531, 7926, - 19221, 16531, 9270, - 19221, 16531, 9860, - 19221, 16531, 12396, - 19221, 16531, 12618, - 19221, 16531, 13096, - 19221, 16531, 13454, - 19221, 16531, 13712, - 19221, 16531, 14452, - 19221, 16531, 14862, - 19221, 16531, 15056, - 19221, 16531, 15084, - 19221, 16531, 15088, - 19221, 16531, 15090, - 19221, 16531, 15294, - 19221, 16531, 15376, - 19221, 16531, 15918, - 19221, 16531, 16566, - 19221, 16531, 17160, - 19223, 20156, - 19226, - 19234, - 19236, - 19245, 10575, 17534, - 19245, 10575, 20436, - 19245, 15407, 10575, 16, - 19245, 15407, 10575, 40, - 19245, 16531, 0, - 19245, 16531, 16, - 19245, 16531, 40, - 19245, 16531, 108, - 19245, 16531, 150, - 19245, 16531, 248, - 19245, 16531, 272, - 19245, 16531, 358, - 19245, 16531, 394, - 19245, 16531, 426, - 19245, 16531, 466, - 19245, 16531, 548, - 19245, 16531, 598, - 19245, 16531, 614, - 19245, 16531, 648, - 19245, 16531, 738, - 19245, 16531, 778, - 19245, 16531, 2574, - 19245, 16531, 17709, 598, - 19249, 1036, - 19277, 17734, - 19279, 23701, 21557, 23211, 21022, - 19279, 23701, 22837, 21022, - 19279, 23701, 22837, 23211, 21022, - 19279, 23901, 21349, 23211, 21022, - 19279, 25919, 19381, 23211, 21022, - 19279, 25989, 22837, 21022, - 19283, 12715, 897, 10092, - 19285, 381, 611, 2036, - 19285, 381, 611, 2037, 6151, 2433, 1084, - 19285, 8809, 899, 13687, 7378, - 19285, 8809, 899, 13687, 7384, - 19285, 8809, 1119, 2420, - 19285, 8809, 1645, 14685, 7378, - 19285, 8809, 1645, 14685, 7384, - 19285, 8809, 3083, 6281, 17223, 10444, - 19285, 8809, 3489, 11954, - 19285, 8809, 3937, 2421, 15225, 10445, 426, - 19285, 8809, 6089, 10491, 259, 2421, 14650, - 19285, 8809, 6089, 10491, 3937, 2420, - 19285, 8809, 7351, 3937, 2421, 811, 7351, 15225, 426, - 19285, 8809, 7351, 3937, 2421, 811, 10159, 6043, 426, - 19285, 8809, 7351, 3937, 2421, 22075, 0, - 19285, 8809, 7351, 15224, - 19285, 8809, 9273, 12589, 2705, 4070, - 19285, 8809, 9273, 12589, 10435, 14684, - 19285, 8809, 9577, 10444, - 19285, 8809, 9577, 15224, - 19285, 8809, 9577, 15225, 10444, - 19285, 8809, 10127, 7345, 10444, - 19285, 8809, 10444, - 19285, 8809, 12569, 14684, - 19285, 8809, 12571, 10491, 259, 2421, 14650, - 19285, 8809, 12573, 3937, 2420, - 19285, 8809, 12615, 3937, 2421, 9867, 10445, 426, - 19285, 8809, 12615, 11953, 14685, 435, 8351, 1084, - 19285, 8809, 12615, 11953, 14685, 6151, 2433, 1084, - 19285, 8809, 14011, 3937, 259, 2421, 14650, - 19285, 8809, 14753, 10444, - 19285, 8809, 15225, 10444, - 19285, 8809, 16862, - 19285, 8809, 17889, 3937, 2421, 10431, 426, - 19285, 8809, 17889, 6119, 17041, 3937, 2421, 10431, 426, - 19285, 8809, 18240, - 19285, 8809, 18303, 3937, 2421, 8841, 426, - 19285, 8809, 18303, 6119, 17041, 3937, 2421, 8841, 426, - 19285, 8809, 18501, 13941, 14684, - 19285, 8809, 20853, 13941, 14684, - 19285, 8809, 21179, 15225, 12574, - 19285, 8809, 25797, 15224, - 19285, 10575, 1637, 1085, 19000, - 19285, 10575, 1637, 2403, 19000, - 19285, 10575, 2225, 3489, 1084, - 19285, 10575, 2227, 14684, - 19285, 10575, 2377, 15226, - 19285, 10575, 2705, 4071, 2513, 150, - 19285, 10575, 3249, 8272, - 19285, 10575, 3899, 15226, - 19285, 10575, 8839, 1084, - 19285, 10575, 10103, 2517, 7226, - 19285, 10575, 10103, 2517, 7348, - 19285, 10575, 10103, 2517, 10103, 6676, - 19285, 10575, 10103, 2517, 13398, - 19285, 10575, 10103, 6677, 7226, - 19285, 10575, 10103, 6677, 7348, - 19285, 10575, 10103, 6677, 10103, 2516, - 19285, 10575, 10103, 6677, 13398, - 19285, 10575, 10157, 639, 2575, 606, - 19285, 10575, 10159, 6042, - 19285, 10575, 11649, 14684, - 19285, 10575, 20163, 8839, 1084, - 19285, 13069, 2760, - 19285, 13069, 3240, - 19285, 13069, 3536, - 19285, 13069, 7036, - 19285, 13069, 7058, - 19285, 13069, 7429, 2760, - 19285, 13069, 7429, 3240, - 19285, 13069, 7429, 3536, - 19285, 13069, 7429, 7036, - 19285, 13069, 7429, 7058, - 19285, 13069, 7429, 9358, - 19285, 13069, 7429, 11824, - 19285, 13069, 7429, 13150, - 19285, 13069, 7429, 14778, - 19285, 13069, 7429, 15116, - 19285, 13069, 9358, - 19285, 13069, 11824, - 19285, 13069, 13150, - 19285, 13069, 14778, - 19285, 13069, 15116, - 19285, 15407, 10575, 8, - 19285, 15407, 10575, 16, - 19285, 15407, 10575, 28, - 19285, 15407, 10575, 40, - 19285, 15407, 10575, 58, - 19285, 15407, 10575, 186, - 19285, 15407, 10575, 314, - 19285, 15407, 10575, 522, - 19285, 15407, 10575, 706, - 19285, 15407, 10575, 19415, 22, - 19285, 15407, 10575, 19415, 34, - 19285, 15407, 10575, 19415, 406, - 19285, 15407, 10575, 19415, 608, - 19285, 15407, 10575, 20587, 16, - 19285, 15407, 10575, 20587, 314, - 19285, 16531, 0, - 19285, 16531, 52, - 19285, 16531, 108, - 19285, 16531, 126, - 19285, 16531, 150, - 19285, 16531, 248, - 19285, 16531, 272, - 19285, 16531, 344, - 19285, 16531, 358, - 19285, 16531, 394, - 19285, 16531, 426, - 19285, 16531, 466, - 19285, 16531, 548, - 19285, 16531, 598, - 19285, 16531, 614, - 19285, 16531, 648, - 19285, 16531, 738, - 19285, 16531, 778, - 19285, 16531, 796, - 19285, 16531, 1000, - 19285, 16531, 1116, - 19285, 16531, 1214, - 19285, 16531, 1236, - 19285, 16531, 1330, - 19285, 16531, 1588, - 19285, 16531, 2036, - 19285, 16531, 2076, - 19285, 16531, 2574, - 19285, 16531, 2624, - 19285, 16531, 2698, - 19285, 16531, 2830, - 19285, 16531, 3118, - 19285, 16531, 3212, - 19285, 16531, 3286, - 19285, 16531, 3422, - 19285, 16531, 3488, - 19285, 16531, 3502, - 19285, 16531, 4042, - 19285, 16531, 6572, - 19285, 16531, 6740, - 19285, 16531, 8154, - 19285, 16531, 11058, - 19285, 16531, 11082, - 19285, 16531, 22449, 598, - 19285, 17299, 2641, 122, - 19285, 17299, 2641, 123, 6151, 15646, - 19285, 17299, 2641, 123, 7349, 15646, - 19285, 17299, 2641, 123, 9577, 15646, - 19285, 17299, 3057, 3086, - 19285, 17299, 3057, 3087, 10127, 7344, - 19285, 17299, 6705, 122, - 19285, 17299, 9867, 548, - 19285, 17299, 14467, 7228, - 19285, 20251, 10575, 6261, 14684, - 19285, 20251, 10575, 8295, 14684, - 19285, 20777, 518, - 19285, 21919, 10575, 2225, 3489, 1084, - 19285, 21919, 10575, 8839, 1084, - 19285, 21919, 10575, 20163, 8839, 1084, - 19285, 21919, 16531, 0, - 19285, 21919, 16531, 52, - 19285, 21919, 16531, 108, - 19285, 21919, 16531, 126, - 19285, 21919, 16531, 150, - 19285, 21919, 16531, 248, - 19285, 21919, 16531, 272, - 19285, 21919, 16531, 344, - 19285, 21919, 16531, 358, - 19285, 21919, 16531, 394, - 19285, 21919, 16531, 426, - 19285, 21919, 16531, 466, - 19285, 21919, 16531, 548, - 19285, 21919, 16531, 598, - 19285, 21919, 16531, 614, - 19285, 21919, 16531, 648, - 19285, 21919, 16531, 738, - 19285, 21919, 16531, 778, - 19285, 21919, 16531, 796, - 19285, 21919, 16531, 1000, - 19285, 21919, 16531, 1116, - 19285, 21919, 16531, 1214, - 19285, 21919, 16531, 1236, - 19285, 21919, 16531, 1330, - 19285, 21919, 16531, 1588, - 19285, 21919, 16531, 2036, - 19285, 21919, 16531, 2574, - 19285, 21919, 16531, 2624, - 19285, 21919, 16531, 2698, - 19285, 21919, 16531, 2830, - 19285, 21919, 16531, 3212, - 19285, 21919, 16531, 3286, - 19285, 21919, 16531, 3422, - 19285, 21919, 16531, 3488, - 19285, 21919, 16531, 3502, - 19285, 21919, 16531, 4042, - 19285, 21919, 16531, 6572, - 19285, 21919, 16531, 6740, - 19285, 21919, 16531, 8154, - 19285, 21919, 16531, 11058, - 19285, 21919, 16531, 11082, - 19285, 21919, 16531, 22449, 598, - 19285, 21919, 16531, 22449, 738, - 19285, 21919, 16531, 22449, 778, - 19285, 23755, 10575, 10437, 7225, 11951, 14684, - 19285, 23755, 10575, 14763, 17450, - 19285, 23755, 10575, 15649, 548, - 19285, 23783, 10575, 6219, 10898, - 19285, 23783, 10575, 10399, 11948, - 19285, 23783, 10575, 13473, 6050, - 19285, 23783, 10575, 13807, 6050, - 19295, 518, - 19295, 5508, - 19295, 10575, 14334, - 19295, 10575, 17534, - 19295, 10575, 19408, - 19295, 10575, 19540, - 19295, 10575, 19586, - 19295, 10575, 23070, - 19295, 13069, 2760, - 19295, 13069, 3240, - 19295, 13069, 3536, - 19295, 13069, 7036, - 19295, 13069, 7058, - 19295, 13069, 9358, - 19295, 13069, 11824, - 19295, 13069, 13150, - 19295, 13069, 14778, - 19295, 13069, 15116, - 19295, 13432, - 19295, 15407, 10575, 8, - 19295, 15407, 10575, 16, - 19295, 15407, 10575, 28, - 19295, 15407, 10575, 40, - 19295, 15407, 10575, 58, - 19295, 15407, 10575, 72, - 19295, 15407, 10575, 96, - 19295, 15407, 10575, 314, - 19295, 15407, 10575, 706, - 19295, 15407, 10575, 14837, 8, - 19295, 15407, 10575, 14837, 28, - 19295, 15407, 10575, 19415, 22, - 19295, 15407, 10575, 19415, 34, - 19295, 15407, 10575, 19415, 406, - 19295, 15407, 10575, 19415, 608, - 19295, 16531, 0, - 19295, 16531, 8, - 19295, 16531, 16, - 19295, 16531, 28, - 19295, 16531, 40, - 19295, 16531, 58, - 19295, 16531, 72, - 19295, 16531, 96, - 19295, 16531, 108, - 19295, 16531, 126, - 19295, 16531, 150, - 19295, 16531, 248, - 19295, 16531, 272, - 19295, 16531, 314, - 19295, 16531, 344, - 19295, 16531, 358, - 19295, 16531, 394, - 19295, 16531, 426, - 19295, 16531, 466, - 19295, 16531, 548, - 19295, 16531, 598, - 19295, 16531, 614, - 19295, 16531, 648, - 19295, 16531, 706, - 19295, 16531, 714, - 19295, 16531, 778, - 19295, 16531, 1000, - 19295, 16531, 1116, - 19295, 16531, 1214, - 19295, 16531, 1236, - 19295, 16531, 1588, - 19295, 16531, 1918, - 19295, 16531, 2036, - 19295, 16531, 2574, - 19295, 16531, 2624, - 19295, 16531, 2698, - 19295, 16531, 2830, - 19295, 16531, 3212, - 19295, 16531, 3286, - 19295, 16531, 3422, - 19295, 16531, 3502, - 19295, 16531, 6572, - 19295, 16531, 11082, - 19295, 16531, 19415, 22, - 19295, 16531, 19415, 34, - 19295, 16531, 19415, 406, - 19295, 16531, 19415, 608, - 19295, 23737, 10574, - 19298, - 19306, - 19313, 16112, - 19315, 1493, 7026, - 19315, 1493, 8248, - 19315, 1493, 11504, - 19315, 1493, 13140, - 19315, 1493, 15436, - 19315, 1493, 16324, - 19315, 1493, 19282, - 19315, 1493, 20332, - 19342, - 19351, 13392, - 19355, 8331, 10574, - 19359, 22837, 15738, - 19369, 6996, - 19381, 3537, 16321, 12414, - 19381, 12414, - 19381, 12415, 661, 964, - 19381, 12415, 897, 14659, 2761, 16107, 12532, - 19381, 12415, 7065, 964, - 19381, 12415, 11513, 3445, 21556, - 19381, 12415, 11513, 3445, 22836, - 19381, 12415, 11513, 13779, 20859, 21022, - 19381, 12415, 11513, 14911, 20859, 21022, - 19381, 12415, 11513, 14911, 23211, 21022, - 19381, 12415, 11513, 16095, 17264, - 19381, 12415, 11513, 16637, 20859, 21022, - 19381, 12415, 11513, 18719, 10856, - 19381, 12415, 11513, 22495, 17264, - 19381, 12415, 11513, 23211, 21022, - 19381, 12415, 21557, 507, 21349, 12414, - 19381, 12525, 12414, - 19381, 12525, 17881, 15453, 12414, - 19381, 13473, 12414, - 19381, 13473, 22233, 12414, - 19381, 15453, 12414, - 19381, 15453, 12415, 521, 20468, - 19381, 15453, 12415, 521, 20469, 11513, 20933, 964, - 19381, 15453, 12415, 521, 20469, 11513, 22495, 964, - 19381, 15453, 12415, 7065, 964, - 19381, 15453, 12415, 7065, 965, 11513, 22495, 964, - 19381, 15453, 12415, 17579, 20859, 21022, - 19381, 15453, 16095, 12414, - 19381, 15453, 16095, 12415, 521, 20468, - 19381, 15710, - 19381, 16019, 12414, - 19381, 16095, 12414, - 19381, 16857, 15738, - 19381, 17042, - 19381, 17435, 12414, - 19381, 18253, 11513, 5989, 8281, 661, 964, - 19381, 18253, 11513, 5989, 8281, 7065, 964, - 19381, 18253, 11513, 5989, 8281, 15805, 19381, 18253, 11513, 5989, 14658, - 19381, 18253, 11513, 5989, 8281, 15805, 21349, 18253, 11513, 5989, 14658, - 19381, 18253, 11513, 5989, 14659, 661, 964, - 19381, 18253, 11513, 5989, 14659, 7065, 964, - 19381, 18253, 11513, 5989, 21556, - 19381, 18253, 11513, 5989, 22836, - 19381, 19165, 12414, - 19381, 20859, 21022, - 19381, 21775, 12414, - 19381, 22233, 12414, - 19381, 22841, 12414, - 19381, 23005, 12415, 7065, 14911, 15938, - 19381, 23005, 12415, 11513, 20859, 22182, - 19381, 23215, 12414, - 19381, 28089, 12414, - 19381, 28089, 12415, 661, 964, - 19381, 28089, 12415, 11513, 6101, 14784, - 19381, 28089, 12415, 11513, 8351, 3445, 21556, - 19381, 28089, 12415, 11513, 8351, 3445, 22836, - 19381, 28089, 12415, 11513, 11371, 13473, 14784, - 19381, 28089, 12415, 11513, 13473, 14784, - 19381, 28089, 12415, 11513, 16095, 22495, 17264, - 19381, 28089, 12415, 11513, 16637, 14784, - 19381, 28089, 12415, 11513, 16701, 14784, - 19381, 28089, 12415, 21557, 507, 21349, 28089, 12414, - 19381, 28089, 16019, 12414, - 19381, 28089, 16857, 15738, - 19388, - 19401, 7432, - 19420, - 19427, 10574, - 19430, - 19441, 6996, - 19445, 6996, - 19449, 18918, - 19451, 7432, - 19453, 3059, 13536, - 19453, 3059, 15880, - 19453, 3059, 17858, - 19453, 3059, 18192, - 19453, 3059, 19138, - 19453, 3059, 19970, - 19453, 3059, 20274, - 19453, 12525, 13536, - 19453, 12525, 15880, - 19453, 12525, 17858, - 19453, 12525, 18192, - 19453, 12525, 19138, - 19453, 12525, 19970, - 19453, 12525, 20274, - 19457, 6996, - 19511, 15725, 7057, 19082, - 19511, 22015, 20770, - 19515, 17738, - 19518, - 19519, 19566, - 19519, 21184, - 19531, 20042, - 19535, 10574, - 19552, - 19563, 6703, 10574, - 19563, 7073, 10696, - 19563, 12922, - 19563, 14911, 16531, 126, - 19563, 14911, 16531, 142, - 19563, 14911, 16531, 150, - 19563, 14911, 16531, 192, - 19563, 14911, 16531, 216, - 19563, 14911, 16531, 288, - 19563, 14911, 16531, 344, - 19563, 14911, 16531, 510, - 19563, 14911, 16531, 598, - 19563, 14911, 16531, 660, - 19563, 14911, 16531, 722, - 19563, 14911, 16531, 782, - 19563, 14911, 16531, 783, 11513, 17264, - 19563, 14911, 16531, 796, - 19563, 14911, 16531, 944, - 19563, 14911, 16531, 992, - 19563, 14911, 16531, 1116, - 19563, 14911, 16531, 1356, - 19563, 14911, 16531, 1462, - 19563, 14911, 16531, 1608, - 19563, 14911, 16531, 1878, - 19563, 14911, 16531, 2020, - 19563, 14911, 16531, 2022, - 19563, 14911, 16531, 2408, - 19563, 14911, 16531, 2644, - 19563, 14911, 16531, 2820, - 19563, 14911, 16531, 3062, - 19563, 14911, 16531, 3202, - 19563, 14911, 16531, 3212, - 19563, 14911, 16531, 3680, - 19563, 14911, 16531, 3818, - 19563, 14911, 16531, 4044, - 19563, 14911, 16531, 6278, - 19563, 14911, 16531, 7290, - 19563, 14911, 16531, 7858, - 19563, 14911, 16531, 8338, - 19563, 14911, 16531, 9892, - 19563, 14911, 16531, 11002, - 19563, 14911, 16531, 11702, - 19563, 14911, 16531, 17465, 944, - 19563, 14911, 20241, 1357, 11702, - 19563, 14911, 20241, 2409, 1356, - 19563, 14911, 20241, 2409, 1878, - 19563, 14911, 20241, 2409, 2644, - 19563, 14911, 20241, 2409, 3818, - 19563, 14911, 20241, 3681, 2644, - 19563, 16358, - 19563, 17835, 16531, 126, - 19563, 17835, 16531, 142, - 19563, 17835, 16531, 150, - 19563, 17835, 16531, 192, - 19563, 17835, 16531, 216, - 19563, 17835, 16531, 288, - 19563, 17835, 16531, 344, - 19563, 17835, 16531, 510, - 19563, 17835, 16531, 598, - 19563, 17835, 16531, 660, - 19563, 17835, 16531, 722, - 19563, 17835, 16531, 782, - 19563, 17835, 16531, 796, - 19563, 17835, 16531, 944, - 19563, 17835, 16531, 992, - 19563, 17835, 16531, 1116, - 19563, 17835, 16531, 1356, - 19563, 17835, 16531, 1462, - 19563, 17835, 16531, 1608, - 19563, 17835, 16531, 1878, - 19563, 17835, 16531, 2020, - 19563, 17835, 16531, 2022, - 19563, 17835, 16531, 2408, - 19563, 17835, 16531, 2644, - 19563, 17835, 16531, 2820, - 19563, 17835, 16531, 3062, - 19563, 17835, 16531, 3202, - 19563, 17835, 16531, 3212, - 19563, 17835, 16531, 3680, - 19563, 17835, 16531, 3818, - 19563, 17835, 16531, 4044, - 19563, 17835, 16531, 6278, - 19563, 17835, 16531, 7290, - 19563, 17835, 16531, 7858, - 19563, 17835, 16531, 8338, - 19563, 17835, 16531, 9892, - 19563, 17835, 16531, 11002, - 19563, 17835, 16531, 11702, - 19563, 19981, 8808, - 19563, 20319, 16531, 8281, 7429, 10150, - 19563, 20549, 8808, - 19563, 22172, - 19563, 23213, 8808, - 19563, 23737, 8808, - 19574, - 19575, 20406, - 19576, - 19579, 10488, - 19591, 12604, - 19593, 12552, - 19595, 5457, 5456, - 19595, 10575, 3609, 14652, - 19595, 10575, 3609, 15876, - 19595, 10575, 12520, - 19595, 10575, 12642, - 19595, 10575, 17284, - 19595, 10575, 18994, - 19595, 12617, 10578, - 19595, 12617, 18816, - 19595, 12617, 21716, - 19595, 13069, 2760, - 19595, 13069, 3240, - 19595, 13069, 3536, - 19595, 13069, 7036, - 19595, 13069, 7058, - 19595, 13069, 9358, - 19595, 13069, 11824, - 19595, 13069, 13150, - 19595, 13069, 14778, - 19595, 13069, 15116, - 19595, 14480, - 19595, 14481, 12472, - 19595, 14481, 18490, - 19595, 15407, 10575, 395, 13798, - 19595, 15407, 10575, 395, 13799, 17338, - 19595, 15407, 10575, 599, 10116, - 19595, 15407, 10575, 599, 10117, 17338, - 19595, 15407, 10575, 3608, - 19595, 15407, 10575, 3609, 10394, - 19595, 15407, 10575, 10728, - 19595, 15407, 10575, 10729, 7798, - 19595, 15407, 10575, 14520, - 19595, 15407, 10575, 14521, 17338, - 19595, 15407, 10575, 17314, - 19595, 15407, 10575, 17315, 10116, - 19595, 15407, 10575, 17315, 10117, 17338, - 19595, 15407, 10575, 17315, 17338, - 19595, 15407, 10575, 17338, - 19595, 15460, - 19595, 16531, 108, - 19595, 16531, 109, 18348, - 19595, 16531, 126, - 19595, 16531, 127, 8238, - 19595, 16531, 150, - 19595, 16531, 151, 8794, - 19595, 16531, 151, 14049, 21000, - 19595, 16531, 151, 14049, 21570, - 19595, 16531, 189, 14746, - 19595, 16531, 248, - 19595, 16531, 249, 7338, - 19595, 16531, 272, - 19595, 16531, 344, - 19595, 16531, 345, 7850, - 19595, 16531, 358, - 19595, 16531, 359, 21570, - 19595, 16531, 394, - 19595, 16531, 395, 13798, - 19595, 16531, 395, 13799, 17338, - 19595, 16531, 426, - 19595, 16531, 466, - 19595, 16531, 467, 17008, - 19595, 16531, 548, - 19595, 16531, 549, 13650, - 19595, 16531, 598, - 19595, 16531, 599, 10116, - 19595, 16531, 599, 10117, 17338, - 19595, 16531, 614, - 19595, 16531, 615, 10378, - 19595, 16531, 615, 10390, - 19595, 16531, 648, - 19595, 16531, 649, 10874, - 19595, 16531, 649, 13780, - 19595, 16531, 649, 14049, 21570, - 19595, 16531, 719, 14746, - 19595, 16531, 738, - 19595, 16531, 778, - 19595, 16531, 1989, 14746, - 19595, 16531, 2574, - 19595, 16531, 2698, - 19595, 16531, 4025, 14746, - 19595, 16531, 8079, 14746, - 19595, 16531, 11147, 14746, - 19595, 16531, 12344, - 19595, 16531, 12345, 17338, - 19595, 16531, 13154, - 19595, 16531, 13586, - 19595, 16531, 13587, 17338, - 19595, 16531, 14422, - 19595, 16531, 14423, 17338, - 19595, 16531, 15274, - 19595, 16531, 15275, 17338, - 19595, 16531, 15690, - 19595, 16531, 15753, 14746, - 19595, 16531, 17709, 7902, - 19595, 16864, - 19595, 16865, 18490, - 19595, 18655, 17299, 6538, - 19595, 18655, 17299, 6539, 7238, - 19595, 18655, 17299, 6539, 17284, - 19595, 18655, 17299, 6626, - 19595, 18655, 17299, 6666, - 19595, 18655, 17299, 6690, - 19595, 18655, 17299, 6720, - 19595, 18655, 17299, 13000, - 19595, 18655, 17299, 13006, - 19595, 18655, 17299, 13058, - 19595, 18655, 17299, 21127, 7334, - 19595, 18655, 17299, 21127, 12504, - 19595, 18655, 17299, 21127, 13162, - 19595, 18655, 17299, 21127, 15072, - 19595, 18655, 17299, 21127, 16428, - 19595, 18655, 17299, 21127, 16429, 11513, 18324, - 19595, 18655, 17299, 21127, 16430, - 19595, 18655, 17299, 21127, 16431, 11513, 18324, - 19595, 18655, 17299, 21127, 18324, - 19595, 18655, 17299, 21551, 9783, 9824, - 19595, 18655, 17299, 21551, 9783, 9886, - 19595, 18655, 17299, 21551, 9783, 9926, - 19595, 18655, 17299, 21551, 15949, 9894, - 19595, 18655, 17299, 21551, 15949, 9900, - 19595, 18655, 17299, 22833, 9783, 1194, - 19595, 18655, 17299, 22833, 9783, 1298, - 19595, 18655, 17299, 22833, 15949, 3376, - 19595, 18655, 17299, 22833, 15949, 3516, - 19595, 20163, 12617, 10578, - 19595, 20163, 12617, 18816, - 19595, 20434, - 19597, 11513, 3921, 10574, - 19597, 11513, 6879, 10574, - 19597, 11513, 14567, 10574, - 19597, 11513, 16067, 10574, - 19598, - 19611, 1036, - 19623, 6208, - 19624, - 19628, - 19629, 10848, - 19631, 13259, 16531, 12, - 19631, 13259, 16531, 14, - 19631, 13259, 16531, 20, - 19631, 13259, 16531, 30, - 19631, 13259, 16531, 38, - 19631, 16531, 0, - 19631, 16531, 2, - 19631, 16531, 4, - 19631, 16531, 6, - 19631, 16531, 8, - 19631, 16531, 10, - 19631, 16531, 12, - 19631, 16531, 14, - 19631, 16531, 16, - 19631, 16531, 18, - 19631, 16531, 20, - 19631, 16531, 22, - 19631, 16531, 24, - 19631, 16531, 26, - 19631, 16531, 28, - 19631, 16531, 29, 11513, 1291, 12318, - 19631, 16531, 30, - 19631, 16531, 32, - 19631, 16531, 34, - 19631, 16531, 36, - 19631, 16531, 38, - 19631, 16531, 40, - 19631, 16531, 42, - 19631, 16531, 46, - 19631, 16531, 50, - 19631, 16531, 70, - 19631, 16531, 72, - 19631, 16531, 80, - 19631, 16531, 82, - 19631, 16531, 96, - 19631, 16531, 122, - 19631, 16531, 134, - 19631, 16531, 186, - 19631, 16531, 192, - 19631, 16531, 194, - 19631, 16531, 204, - 19631, 16531, 212, - 19631, 16531, 256, - 19631, 16531, 260, - 19631, 16531, 264, - 19631, 16531, 268, - 19631, 16531, 312, - 19631, 16531, 320, - 19631, 16531, 330, - 19631, 16531, 336, - 19631, 16531, 348, - 19631, 16531, 384, - 19631, 16531, 400, - 19631, 16531, 474, - 19631, 16531, 484, - 19631, 16531, 504, - 19631, 16531, 518, - 19631, 16531, 522, - 19631, 16531, 534, - 19631, 16531, 622, - 19631, 16531, 800, - 19631, 16531, 802, - 19631, 16531, 808, - 19631, 16531, 898, - 19631, 16531, 902, - 19631, 16531, 1394, - 19631, 16531, 1396, - 19631, 16531, 1882, - 19631, 16531, 2578, - 19631, 16531, 2762, - 19631, 16531, 2764, - 19631, 16531, 3616, - 19631, 16531, 5470, - 19631, 16531, 5546, - 19631, 16531, 7810, - 19638, - 19641, 1393, 507, 19056, - 19641, 15407, 10575, 8, - 19641, 15407, 10575, 16, - 19641, 15407, 10575, 28, - 19641, 15407, 10575, 40, - 19641, 15407, 10575, 66, - 19641, 16531, 0, - 19641, 16531, 108, - 19641, 16531, 126, - 19641, 16531, 150, - 19641, 16531, 248, - 19641, 16531, 272, - 19641, 16531, 344, - 19641, 16531, 358, - 19641, 16531, 394, - 19641, 16531, 426, - 19641, 16531, 466, - 19641, 16531, 548, - 19641, 16531, 598, - 19641, 16531, 614, - 19641, 16531, 648, - 19641, 16531, 714, - 19641, 16531, 778, - 19641, 16531, 2464, - 19641, 16531, 2574, - 19641, 16531, 2656, - 19641, 16531, 2698, - 19641, 16531, 9302, - 19641, 16531, 9556, - 19641, 18796, - 19643, 23786, - 19644, - 19645, 11513, 14929, 15440, - 19646, - 19654, - 19656, - 19659, 21939, 0, - 19659, 21939, 4, - 19659, 21939, 8, - 19659, 21939, 10, - 19659, 21939, 16, - 19659, 21939, 20, - 19659, 21939, 22, - 19659, 21939, 24, - 19659, 21939, 26, - 19659, 21939, 28, - 19659, 21939, 30, - 19659, 21939, 32, - 19659, 21939, 34, - 19659, 21939, 36, - 19659, 21939, 38, - 19659, 21939, 48, - 19659, 21939, 58, - 19659, 21939, 72, - 19659, 21939, 82, - 19659, 21939, 104, - 19659, 21939, 126, - 19659, 21939, 132, - 19659, 21939, 136, - 19659, 21939, 142, - 19659, 21939, 204, - 19659, 21939, 228, - 19659, 21939, 230, - 19659, 21939, 234, - 19659, 21939, 240, - 19659, 21939, 282, - 19659, 21939, 314, - 19659, 21939, 322, - 19659, 21939, 358, - 19659, 21939, 362, - 19659, 21939, 366, - 19659, 21939, 374, - 19659, 21939, 384, - 19659, 21939, 394, - 19659, 21939, 398, - 19659, 21939, 400, - 19659, 21939, 402, - 19659, 21939, 412, - 19659, 21939, 426, - 19659, 21939, 434, - 19659, 21939, 438, - 19659, 21939, 440, - 19659, 21939, 446, - 19659, 21939, 466, - 19659, 21939, 470, - 19659, 21939, 474, - 19659, 21939, 476, - 19659, 21939, 478, - 19659, 21939, 486, - 19659, 21939, 520, - 19659, 21939, 522, - 19659, 21939, 542, - 19659, 21939, 548, - 19659, 21939, 554, - 19659, 21939, 562, - 19659, 21939, 566, - 19659, 21939, 582, - 19659, 21939, 586, - 19659, 21939, 590, - 19659, 21939, 598, - 19659, 21939, 600, - 19659, 21939, 604, - 19659, 21939, 606, - 19659, 21939, 614, - 19659, 21939, 618, - 19659, 21939, 622, - 19659, 21939, 624, - 19659, 21939, 628, - 19659, 21939, 642, - 19659, 21939, 648, - 19659, 21939, 652, - 19659, 21939, 654, - 19659, 21939, 656, - 19659, 21939, 660, - 19659, 21939, 738, - 19659, 21939, 744, - 19659, 21939, 750, - 19659, 21939, 754, - 19659, 21939, 778, - 19659, 21939, 780, - 19659, 21939, 782, - 19659, 21939, 786, - 19659, 21939, 822, - 19659, 21939, 840, - 19659, 21939, 1076, - 19659, 21939, 1121, 10574, - 19659, 21939, 1130, - 19659, 21939, 1150, - 19659, 21939, 1172, - 19659, 21939, 1174, - 19659, 21939, 1176, - 19659, 21939, 1178, - 19659, 21939, 1440, - 19659, 21939, 1470, - 19659, 21939, 1488, - 19659, 21939, 1982, - 19659, 21939, 2014, - 19659, 21939, 2056, - 19659, 21939, 2100, - 19659, 21939, 2156, - 19659, 21939, 2160, - 19659, 21939, 2162, - 19659, 21939, 2166, - 19659, 21939, 2190, - 19659, 21939, 2222, - 19659, 21939, 2248, - 19659, 21939, 2252, - 19659, 21939, 2254, - 19659, 21939, 2262, - 19659, 21939, 2290, - 19659, 21939, 2338, - 19659, 21939, 2340, - 19659, 21939, 2342, - 19659, 21939, 2344, - 19659, 21939, 2360, - 19659, 21939, 2384, - 19659, 21939, 2434, - 19659, 21939, 2456, - 19659, 21939, 2492, - 19659, 21939, 2494, - 19659, 21939, 2496, - 19659, 21939, 2498, - 19659, 21939, 2512, - 19659, 21939, 2534, - 19659, 21939, 2574, - 19659, 21939, 2580, - 19659, 21939, 2582, - 19659, 21939, 2596, - 19659, 21939, 2628, - 19659, 21939, 2636, - 19659, 21939, 2648, - 19659, 21939, 2688, - 19659, 21939, 2690, - 19659, 21939, 2692, - 19659, 21939, 2694, - 19659, 21939, 2788, - 19659, 21939, 2810, - 19659, 21939, 2844, - 19659, 21939, 2864, - 19659, 21939, 2872, - 19659, 21939, 2908, - 19659, 21939, 2910, - 19659, 21939, 2912, - 19659, 21939, 2914, - 19659, 21939, 2924, - 19659, 21939, 2928, - 19659, 21939, 2956, - 19659, 21939, 2968, - 19659, 21939, 3028, - 19659, 21939, 3054, - 19659, 21939, 3078, - 19659, 21939, 3110, - 19659, 21939, 3150, - 19659, 21939, 3154, - 19659, 21939, 3156, - 19659, 21939, 3172, - 19659, 21939, 3198, - 19659, 21939, 3212, - 19659, 21939, 3214, - 19659, 21939, 3216, - 19659, 21939, 3218, - 19659, 21939, 3232, - 19659, 21939, 3258, - 19659, 21939, 3274, - 19659, 21939, 3276, - 19659, 21939, 3278, - 19659, 21939, 3280, - 19659, 21939, 3282, - 19659, 21939, 3324, - 19659, 21939, 3326, - 19659, 21939, 3330, - 19659, 21939, 3332, - 19659, 21939, 3364, - 19659, 21939, 3402, - 19659, 21939, 3422, - 19659, 21939, 3424, - 19659, 21939, 3426, - 19659, 21939, 3428, - 19659, 21939, 3438, - 19659, 21939, 3470, - 19659, 21939, 3502, - 19659, 21939, 3504, - 19659, 21939, 3506, - 19659, 21939, 3508, - 19659, 21939, 3510, - 19659, 21939, 3530, - 19659, 21939, 3532, - 19659, 21939, 3534, - 19659, 21939, 3536, - 19659, 21939, 3540, - 19659, 21939, 3542, - 19659, 21939, 3544, - 19659, 21939, 3546, - 19659, 21939, 3736, - 19659, 21939, 3754, - 19659, 21939, 3772, - 19659, 21939, 3782, - 19659, 21939, 3870, - 19659, 21939, 3910, - 19659, 21939, 3940, - 19659, 21939, 3954, - 19659, 21939, 3966, - 19659, 21939, 3994, - 19659, 21939, 3996, - 19659, 21939, 3998, - 19659, 21939, 4000, - 19659, 21939, 6204, - 19659, 21939, 6382, - 19659, 21939, 6384, - 19659, 21939, 6386, - 19659, 21939, 6994, - 19659, 21939, 7073, 10696, - 19659, 21939, 7088, - 19659, 21939, 7968, - 19659, 21939, 8192, - 19659, 21939, 8194, - 19659, 21939, 8198, - 19659, 21939, 8200, - 19659, 21939, 8232, - 19659, 21939, 8292, - 19659, 21939, 8298, - 19659, 21939, 8300, - 19659, 21939, 8374, - 19659, 21939, 8376, - 19659, 21939, 8378, - 19659, 21939, 8792, - 19659, 21939, 9022, - 19659, 21939, 9026, - 19659, 21939, 9028, - 19659, 21939, 9132, - 19659, 21939, 9258, - 19659, 21939, 9262, - 19659, 21939, 9298, - 19659, 21939, 9308, - 19659, 21939, 9414, - 19659, 21939, 9416, - 19659, 21939, 9418, - 19659, 21939, 9538, - 19659, 21939, 9540, - 19659, 21939, 9542, - 19659, 21939, 9812, - 19659, 21939, 9936, - 19659, 21939, 9940, - 19659, 21939, 9942, - 19659, 21939, 9944, - 19659, 21939, 9964, - 19659, 21939, 10082, - 19659, 21939, 10252, - 19659, 21939, 10254, - 19659, 21939, 10256, - 19659, 21939, 10258, - 19659, 21939, 10372, - 19659, 21939, 10442, - 19659, 21939, 10456, - 19659, 21939, 10474, - 19659, 21939, 10492, - 19659, 21939, 10504, - 19659, 21939, 10530, - 19659, 21939, 10532, - 19659, 21939, 10534, - 19659, 21939, 10536, - 19659, 21939, 10742, - 19659, 21939, 10746, - 19659, 21939, 10748, - 19659, 21939, 10842, - 19659, 21939, 10922, - 19659, 21939, 10948, - 19659, 21939, 10958, - 19659, 21939, 10962, - 19659, 21939, 10964, - 19659, 21939, 11008, - 19659, 21939, 11010, - 19659, 21939, 11012, - 19659, 21939, 11014, - 19659, 21939, 11082, - 19659, 21939, 11084, - 19659, 21939, 11086, - 19659, 21939, 11088, - 19659, 21939, 11130, - 19659, 21939, 11132, - 19659, 21939, 11134, - 19659, 21939, 11628, - 19659, 21939, 11768, - 19659, 21939, 11770, - 19659, 21939, 11772, - 19659, 21939, 13259, 3473, 7429, 10150, - 19659, 21939, 13259, 6701, 10850, - 19659, 21939, 13259, 9904, - 19659, 21939, 13259, 10150, - 19659, 21939, 13259, 12320, - 19659, 21939, 13259, 13416, - 19659, 21939, 13259, 14659, 7429, 10150, - 19659, 21939, 13259, 14837, 22495, 17264, - 19659, 21939, 13259, 14911, 10150, - 19659, 21939, 13259, 15827, 7429, 10150, - 19659, 21939, 13259, 16095, 12320, - 19659, 21939, 13259, 16095, 14837, 20933, 19206, - 19659, 21939, 13259, 16661, 1290, - 19659, 21939, 13259, 17007, 1290, - 19659, 21939, 14116, - 19659, 21939, 14246, - 19659, 21939, 14248, - 19659, 21939, 14250, - 19659, 21939, 14854, - 19659, 21939, 14856, - 19659, 21939, 14858, - 19659, 21939, 14860, - 19659, 21939, 15124, - 19659, 21939, 15162, - 19659, 21939, 15164, - 19659, 21939, 15228, - 19659, 21939, 15232, - 19659, 21939, 15234, - 19659, 21939, 15795, 6625, 22, - 19659, 21939, 15795, 6625, 34, - 19659, 21939, 16358, - 19659, 21939, 16635, 22, - 19659, 21939, 16635, 34, - 19659, 21939, 16699, 3424, - 19659, 21939, 16699, 3426, - 19659, 21939, 16699, 10948, - 19659, 21939, 17001, 600, - 19659, 21939, 17001, 3152, - 19659, 21939, 17079, 24, - 19659, 21939, 17079, 272, - 19659, 21939, 17079, 276, - 19659, 21939, 17079, 280, - 19659, 21939, 17079, 288, - 19659, 21939, 17079, 348, - 19659, 21939, 17079, 352, - 19659, 21939, 17079, 654, - 19659, 21939, 17079, 782, - 19659, 21939, 17079, 1784, - 19659, 21939, 17079, 1966, - 19659, 21939, 17079, 3212, - 19659, 21939, 17079, 3214, - 19659, 21939, 17079, 3216, - 19659, 21939, 17079, 3218, - 19659, 21939, 17079, 10492, - 19659, 21939, 17079, 10532, - 19659, 21939, 17595, 44, - 19659, 21939, 17595, 522, - 19659, 21939, 17595, 1150, - 19659, 21939, 17595, 2100, - 19659, 21939, 17595, 2290, - 19659, 21939, 17595, 2456, - 19659, 21939, 17595, 2636, - 19659, 21939, 17595, 2864, - 19659, 21939, 17595, 3258, - 19659, 21939, 17595, 3470, - 19659, 21939, 17595, 3954, - 19659, 21939, 17595, 9936, - 19659, 21939, 17659, 2, - 19659, 21939, 17839, 14, - 19659, 21939, 17839, 16, - 19659, 21939, 17839, 30, - 19659, 21939, 17839, 50, - 19659, 21939, 17839, 160, - 19659, 21939, 17839, 186, - 19659, 21939, 17839, 248, - 19659, 21939, 17839, 252, - 19659, 21939, 17839, 258, - 19659, 21939, 17839, 262, - 19659, 21939, 17839, 264, - 19659, 21939, 17839, 280, - 19659, 21939, 17839, 344, - 19659, 21939, 17839, 346, - 19659, 21939, 17839, 348, - 19659, 21939, 17839, 350, - 19659, 21939, 17839, 352, - 19659, 21939, 17839, 368, - 19659, 21939, 17839, 394, - 19659, 21939, 17839, 398, - 19659, 21939, 17839, 402, - 19659, 21939, 17839, 412, - 19659, 21939, 17839, 416, - 19659, 21939, 17839, 426, - 19659, 21939, 17839, 434, - 19659, 21939, 17839, 440, - 19659, 21939, 17839, 446, - 19659, 21939, 17839, 454, - 19659, 21939, 17839, 466, - 19659, 21939, 17839, 470, - 19659, 21939, 17839, 474, - 19659, 21939, 17839, 478, - 19659, 21939, 17839, 486, - 19659, 21939, 17839, 490, - 19659, 21939, 17839, 548, - 19659, 21939, 17839, 554, - 19659, 21939, 17839, 562, - 19659, 21939, 17839, 566, - 19659, 21939, 17839, 572, - 19659, 21939, 17839, 598, - 19659, 21939, 17839, 600, - 19659, 21939, 17839, 604, - 19659, 21939, 17839, 606, - 19659, 21939, 17839, 610, - 19659, 21939, 17839, 614, - 19659, 21939, 17839, 618, - 19659, 21939, 17839, 622, - 19659, 21939, 17839, 624, - 19659, 21939, 17839, 628, - 19659, 21939, 17839, 638, - 19659, 21939, 17839, 738, - 19659, 21939, 17839, 744, - 19659, 21939, 17839, 750, - 19659, 21939, 17839, 754, - 19659, 21939, 17839, 756, - 19659, 21939, 17839, 778, - 19659, 21939, 17839, 780, - 19659, 21939, 17839, 782, - 19659, 21939, 17839, 786, - 19659, 21939, 17839, 790, - 19659, 21939, 17839, 796, - 19659, 21939, 17839, 798, - 19659, 21939, 17839, 802, - 19659, 21939, 17839, 804, - 19659, 21939, 17839, 806, - 19659, 21939, 17839, 1116, - 19659, 21939, 17839, 1118, - 19659, 21939, 17839, 1120, - 19659, 21939, 17839, 1122, - 19659, 21939, 17839, 1124, - 19659, 21939, 17839, 1224, - 19659, 21939, 17839, 1266, - 19659, 21939, 17839, 1268, - 19659, 21939, 17839, 1270, - 19659, 21939, 17839, 1272, - 19659, 21939, 17839, 1274, - 19659, 21939, 17839, 1330, - 19659, 21939, 17839, 1332, - 19659, 21939, 17839, 1334, - 19659, 21939, 17839, 1336, - 19659, 21939, 17839, 1338, - 19659, 21939, 17839, 1526, - 19659, 21939, 17839, 1564, - 19659, 21939, 17839, 1588, - 19659, 21939, 17839, 1590, - 19659, 21939, 17839, 1592, - 19659, 21939, 17839, 1594, - 19659, 21939, 17839, 1596, - 19659, 21939, 17839, 1660, - 19659, 21939, 17839, 1666, - 19659, 21939, 17839, 1708, - 19659, 21939, 17839, 1808, - 19659, 21939, 17839, 1810, - 19659, 21939, 17839, 1812, - 19659, 21939, 17839, 1814, - 19659, 21939, 17839, 1816, - 19659, 21939, 17839, 1910, - 19659, 21939, 17839, 1934, - 19659, 21939, 17839, 1936, - 19659, 21939, 17839, 1938, - 19659, 21939, 17839, 1940, - 19659, 21939, 17839, 1942, - 19659, 21939, 17839, 1970, - 19659, 21939, 17839, 2036, - 19659, 21939, 17839, 2038, - 19659, 21939, 17839, 2040, - 19659, 21939, 17839, 2042, - 19659, 21939, 17839, 2044, - 19659, 21939, 17839, 2076, - 19659, 21939, 17839, 2078, - 19659, 21939, 17839, 2080, - 19659, 21939, 17839, 2082, - 19659, 21939, 17839, 2084, - 19659, 21939, 17839, 2230, - 19659, 21939, 17839, 2248, - 19659, 21939, 17839, 2250, - 19659, 21939, 17839, 2252, - 19659, 21939, 17839, 2254, - 19659, 21939, 17839, 2256, - 19659, 21939, 17839, 2404, - 19659, 21939, 17839, 2558, - 19659, 21939, 17839, 2818, - 19659, 21939, 17839, 3060, - 19659, 21939, 17839, 3200, - 19659, 21939, 17839, 3212, - 19659, 21939, 17839, 3214, - 19659, 21939, 17839, 3216, - 19659, 21939, 17839, 3218, - 19659, 21939, 17839, 3220, - 19659, 21939, 17839, 3422, - 19659, 21939, 17839, 3424, - 19659, 21939, 17839, 3426, - 19659, 21939, 17839, 3428, - 19659, 21939, 17839, 3430, - 19659, 21939, 17839, 3454, - 19659, 21939, 17839, 3456, - 19659, 21939, 17839, 3458, - 19659, 21939, 17839, 3460, - 19659, 21939, 17839, 3462, - 19659, 21939, 17839, 3488, - 19659, 21939, 17839, 3490, - 19659, 21939, 17839, 3492, - 19659, 21939, 17839, 3494, - 19659, 21939, 17839, 3496, - 19659, 21939, 17839, 3502, - 19659, 21939, 17839, 3504, - 19659, 21939, 17839, 3508, - 19659, 21939, 17839, 3510, - 19659, 21939, 17839, 3512, - 19659, 21939, 17839, 3758, - 19659, 21939, 17839, 3916, - 19659, 21939, 17839, 4034, - 19659, 21939, 17839, 6276, - 19659, 21939, 17839, 6625, 1564, - 19659, 21939, 17839, 6678, - 19659, 21939, 17839, 6738, - 19659, 21939, 17839, 7296, - 19659, 21939, 17839, 7710, - 19659, 21939, 17839, 7870, - 19659, 21939, 17839, 8064, - 19659, 21939, 17839, 8118, - 19659, 21939, 17839, 8296, - 19659, 21939, 17839, 10458, - 19659, 21939, 17839, 10938, - 19659, 21939, 17839, 11006, - 19659, 21939, 17839, 11008, - 19659, 21939, 17839, 11010, - 19659, 21939, 17839, 11012, - 19659, 21939, 17839, 11014, - 19659, 21939, 17839, 11016, - 19659, 21939, 17839, 11056, - 19659, 21939, 17839, 11078, - 19659, 21939, 17839, 11092, - 19659, 21939, 17839, 11094, - 19659, 21939, 17839, 11096, - 19659, 21939, 17839, 11098, - 19659, 21939, 17839, 11100, - 19659, 21939, 17839, 15160, - 19659, 21939, 17839, 15236, - 19659, 21939, 17839, 16031, 36, - 19659, 21939, 17839, 18303, 50, - 19659, 21939, 18091, 44, - 19659, 21939, 18213, 10696, - 19659, 21939, 18663, 3170, - 19659, 21939, 18663, 3246, - 19659, 21939, 18663, 3736, - 19659, 21939, 18663, 3782, - 19659, 21939, 18663, 6382, - 19659, 21939, 18663, 8192, - 19659, 21939, 18663, 9022, - 19659, 21939, 18663, 9538, - 19659, 21939, 18663, 10402, - 19659, 21939, 18663, 10598, - 19659, 21939, 18663, 10640, - 19659, 21939, 18663, 10698, - 19659, 21939, 18663, 10742, - 19659, 21939, 18663, 11130, - 19659, 21939, 18663, 11768, - 19659, 21939, 18731, 14, - 19659, 21939, 18731, 272, - 19659, 21939, 18731, 276, - 19659, 21939, 18731, 280, - 19659, 21939, 18731, 288, - 19659, 21939, 18731, 1678, - 19659, 21939, 18731, 1734, - 19659, 21939, 18731, 1784, - 19659, 21939, 18733, 14, - 19659, 21939, 18753, 4, - 19659, 21939, 18753, 20, - 19659, 21939, 18753, 24, - 19659, 21939, 18753, 26, - 19659, 21939, 18753, 30, - 19659, 21939, 18753, 36, - 19659, 21939, 18753, 38, - 19659, 21939, 18753, 622, - 19659, 21939, 18753, 2692, - 19659, 21939, 18753, 2694, - 19659, 21939, 18753, 9540, - 19659, 21939, 18753, 9542, - 19659, 21939, 19269, 654, - 19659, 21939, 19269, 3422, - 19659, 21939, 19269, 3424, - 19659, 21939, 19269, 3426, - 19659, 21939, 19269, 3428, - 19659, 21939, 19269, 10922, - 19659, 21939, 19269, 10948, - 19659, 21939, 19269, 10958, - 19659, 21939, 19433, 44, - 19659, 21939, 20351, 272, - 19659, 21939, 20351, 280, - 19659, 21939, 20351, 288, - 19659, 21939, 20351, 1678, - 19659, 21939, 20351, 1734, - 19659, 21939, 20351, 1784, - 19659, 21939, 20351, 10506, - 19659, 21939, 20351, 10508, - 19659, 21939, 20351, 10510, - 19659, 21939, 20351, 14838, - 19659, 21939, 20351, 14840, - 19659, 21939, 20351, 14842, - 19659, 21939, 21067, 0, - 19659, 21939, 21067, 8, - 19659, 21939, 21067, 16, - 19659, 21939, 21067, 28, - 19659, 21939, 21067, 36, - 19659, 21939, 21067, 44, - 19659, 21939, 21067, 358, - 19659, 21939, 21067, 362, - 19659, 21939, 21067, 366, - 19659, 21939, 21067, 374, - 19659, 21939, 21067, 466, - 19659, 21939, 21067, 470, - 19659, 21939, 21067, 478, - 19659, 21939, 21067, 486, - 19659, 21939, 21067, 738, - 19659, 21939, 21067, 744, - 19659, 21939, 21067, 750, - 19659, 21939, 21067, 754, - 19659, 21939, 22125, 22, - 19659, 21939, 22125, 24, - 19659, 21939, 22125, 30, - 19659, 21939, 22125, 34, - 19659, 21939, 22125, 48, - 19659, 21939, 22125, 394, - 19659, 21939, 22125, 398, - 19659, 21939, 22125, 412, - 19659, 21939, 22125, 598, - 19659, 21939, 22125, 600, - 19659, 21939, 22125, 604, - 19659, 21939, 22125, 606, - 19659, 21939, 22125, 738, - 19659, 21939, 22125, 744, - 19659, 21939, 22125, 750, - 19659, 21939, 22125, 754, - 19659, 21939, 22125, 1172, - 19659, 21939, 22125, 1174, - 19659, 21939, 22125, 1176, - 19659, 21939, 22125, 1178, - 19659, 21939, 22125, 2156, - 19659, 21939, 22125, 2160, - 19659, 21939, 22125, 2162, - 19659, 21939, 22125, 2166, - 19659, 21939, 22125, 2190, - 19659, 21939, 22125, 2290, - 19659, 21939, 22125, 2338, - 19659, 21939, 22125, 2340, - 19659, 21939, 22125, 2342, - 19659, 21939, 22125, 2344, - 19659, 21939, 22125, 2492, - 19659, 21939, 22125, 2494, - 19659, 21939, 22125, 2496, - 19659, 21939, 22125, 2498, - 19659, 21939, 22125, 2688, - 19659, 21939, 22125, 2690, - 19659, 21939, 22125, 2908, - 19659, 21939, 22125, 2910, - 19659, 21939, 22125, 2912, - 19659, 21939, 22125, 2914, - 19659, 21939, 22125, 3324, - 19659, 21939, 22125, 3326, - 19659, 21939, 22125, 3330, - 19659, 21939, 22125, 3332, - 19659, 21939, 22125, 3530, - 19659, 21939, 22125, 3532, - 19659, 21939, 22125, 3534, - 19659, 21939, 22125, 3536, - 19659, 21939, 22125, 3736, - 19659, 21939, 22125, 3772, - 19659, 21939, 22125, 3782, - 19659, 21939, 22125, 3994, - 19659, 21939, 22125, 3996, - 19659, 21939, 22125, 3998, - 19659, 21939, 22125, 4000, - 19659, 21939, 22125, 6382, - 19659, 21939, 22125, 6384, - 19659, 21939, 22125, 6386, - 19659, 21939, 22125, 7088, - 19659, 21939, 22125, 8192, - 19659, 21939, 22125, 8198, - 19659, 21939, 22125, 8200, - 19659, 21939, 22125, 8374, - 19659, 21939, 22125, 8376, - 19659, 21939, 22125, 8378, - 19659, 21939, 22125, 9022, - 19659, 21939, 22125, 9026, - 19659, 21939, 22125, 9028, - 19659, 21939, 22125, 9538, - 19659, 21939, 22125, 9936, - 19659, 21939, 22125, 9940, - 19659, 21939, 22125, 9942, - 19659, 21939, 22125, 10252, - 19659, 21939, 22125, 10530, - 19659, 21939, 22125, 10532, - 19659, 21939, 22125, 10534, - 19659, 21939, 22125, 10536, - 19659, 21939, 22125, 10742, - 19659, 21939, 22125, 10746, - 19659, 21939, 22125, 10748, - 19659, 21939, 22125, 11130, - 19659, 21939, 22125, 11132, - 19659, 21939, 22125, 11134, - 19659, 21939, 22125, 11768, - 19659, 21939, 22125, 11770, - 19659, 21939, 22125, 11772, - 19659, 21939, 22125, 14854, - 19659, 21939, 22125, 14856, - 19659, 21939, 22125, 14858, - 19659, 21939, 22125, 15124, - 19659, 21939, 22193, 24, - 19659, 21939, 22193, 36, - 19659, 21939, 22205, 48, - 19659, 21939, 22589, 626, - 19659, 21939, 23027, 654, - 19659, 21939, 23027, 3422, - 19659, 21939, 23027, 3424, - 19659, 21939, 23027, 3426, - 19659, 21939, 23027, 3428, - 19659, 21939, 23027, 10962, - 19659, 21939, 23027, 10966, - 19659, 21939, 23027, 10968, - 19659, 21939, 23027, 13259, 654, - 19659, 21939, 23027, 15124, - 19659, 21939, 23027, 15126, - 19659, 21939, 23027, 15128, - 19659, 21939, 23027, 15130, - 19659, 21939, 24137, 1990, - 19659, 21939, 24137, 2020, - 19659, 21939, 24137, 2054, - 19659, 21939, 24137, 2092, - 19661, 13536, - 19673, 21582, - 19679, 14911, 16531, 0, - 19679, 14911, 16531, 8, - 19679, 14911, 16531, 16, - 19679, 14911, 16531, 28, - 19679, 14911, 16531, 36, - 19679, 14911, 16531, 40, - 19679, 14911, 16531, 42, - 19679, 14911, 16531, 150, - 19679, 14911, 16531, 156, - 19679, 14911, 16531, 160, - 19679, 14911, 16531, 168, - 19679, 14911, 16531, 170, - 19679, 14911, 16531, 172, - 19679, 14911, 16531, 248, - 19679, 14911, 16531, 252, - 19679, 14911, 16531, 258, - 19679, 14911, 16531, 262, - 19679, 14911, 16531, 264, - 19679, 14911, 16531, 266, - 19679, 14911, 16531, 272, - 19679, 14911, 16531, 276, - 19679, 14911, 16531, 280, - 19679, 14911, 16531, 288, - 19679, 14911, 16531, 292, - 19679, 14911, 16531, 294, - 19679, 14911, 16531, 358, - 19679, 14911, 16531, 394, - 19679, 14911, 16531, 398, - 19679, 14911, 16531, 402, - 19679, 14911, 16531, 412, - 19679, 14911, 16531, 416, - 19679, 14911, 16531, 418, - 19679, 14911, 16531, 426, - 19679, 14911, 16531, 434, - 19679, 14911, 16531, 440, - 19679, 14911, 16531, 446, - 19679, 14911, 16531, 454, - 19679, 14911, 16531, 456, - 19679, 14911, 16531, 466, - 19679, 14911, 16531, 470, - 19679, 14911, 16531, 478, - 19679, 14911, 16531, 486, - 19679, 14911, 16531, 490, - 19679, 14911, 16531, 492, - 19679, 14911, 16531, 614, - 19679, 14911, 16531, 618, - 19679, 14911, 16531, 624, - 19679, 14911, 16531, 628, - 19679, 14911, 16531, 638, - 19679, 14911, 16531, 640, - 19679, 14911, 16531, 648, - 19679, 14911, 16531, 652, - 19679, 14911, 16531, 656, - 19679, 14911, 16531, 738, - 19679, 14911, 16531, 744, - 19679, 14911, 16531, 750, - 19679, 14911, 16531, 754, - 19679, 14911, 16531, 756, - 19679, 14911, 16531, 758, - 19679, 14911, 16531, 778, - 19679, 14911, 16531, 780, - 19679, 14911, 16531, 782, - 19679, 14911, 16531, 786, - 19679, 14911, 16531, 790, - 19679, 14911, 16531, 792, - 19679, 14911, 16531, 1266, - 19679, 14911, 16531, 1768, - 19679, 14911, 16531, 2518, - 19679, 14911, 16531, 2976, - 19679, 14911, 16531, 2978, - 19679, 14911, 16531, 2982, - 19679, 14911, 16531, 2986, - 19679, 14911, 16531, 2994, - 19679, 14911, 16531, 2996, - 19679, 14911, 16531, 3454, - 19679, 14911, 16531, 3456, - 19679, 14911, 16531, 3458, - 19679, 14911, 16531, 3460, - 19679, 14911, 16531, 3462, - 19679, 14911, 16531, 3464, - 19679, 14911, 16531, 3488, - 19679, 14911, 16531, 3490, - 19679, 14911, 16531, 3492, - 19679, 14911, 16531, 3494, - 19679, 14911, 16531, 3496, - 19679, 14911, 16531, 3498, - 19679, 16531, 0, - 19679, 16531, 8, - 19679, 16531, 16, - 19679, 16531, 28, - 19679, 16531, 36, - 19679, 16531, 40, - 19679, 16531, 42, - 19679, 16531, 150, - 19679, 16531, 156, - 19679, 16531, 160, - 19679, 16531, 168, - 19679, 16531, 170, - 19679, 16531, 172, - 19679, 16531, 248, - 19679, 16531, 252, - 19679, 16531, 258, - 19679, 16531, 262, - 19679, 16531, 264, - 19679, 16531, 266, - 19679, 16531, 272, - 19679, 16531, 276, - 19679, 16531, 280, - 19679, 16531, 288, - 19679, 16531, 292, - 19679, 16531, 294, - 19679, 16531, 358, - 19679, 16531, 394, - 19679, 16531, 398, - 19679, 16531, 402, - 19679, 16531, 412, - 19679, 16531, 416, - 19679, 16531, 418, - 19679, 16531, 426, - 19679, 16531, 434, - 19679, 16531, 440, - 19679, 16531, 446, - 19679, 16531, 454, - 19679, 16531, 456, - 19679, 16531, 466, - 19679, 16531, 470, - 19679, 16531, 478, - 19679, 16531, 486, - 19679, 16531, 490, - 19679, 16531, 492, - 19679, 16531, 614, - 19679, 16531, 618, - 19679, 16531, 624, - 19679, 16531, 628, - 19679, 16531, 638, - 19679, 16531, 640, - 19679, 16531, 648, - 19679, 16531, 652, - 19679, 16531, 656, - 19679, 16531, 738, - 19679, 16531, 744, - 19679, 16531, 750, - 19679, 16531, 754, - 19679, 16531, 756, - 19679, 16531, 758, - 19679, 16531, 778, - 19679, 16531, 780, - 19679, 16531, 782, - 19679, 16531, 786, - 19679, 16531, 790, - 19679, 16531, 792, - 19679, 16531, 1266, - 19679, 16531, 1768, - 19679, 16531, 2518, - 19679, 16531, 2976, - 19679, 16531, 2978, - 19679, 16531, 2982, - 19679, 16531, 2986, - 19679, 16531, 2994, - 19679, 16531, 2996, - 19679, 16531, 3454, - 19679, 16531, 3456, - 19679, 16531, 3458, - 19679, 16531, 3460, - 19679, 16531, 3462, - 19679, 16531, 3464, - 19679, 16531, 3488, - 19679, 16531, 3490, - 19679, 16531, 3492, - 19679, 16531, 3494, - 19679, 16531, 3496, - 19679, 16531, 3498, - 19680, - 19682, - 19685, 19742, - 19686, - 19703, 13459, 10574, - 19711, 6055, 9002, - 19711, 18210, - 19713, 13392, - 19719, 5978, - 19723, 6996, - 19727, 93, 16642, - 19727, 93, 16761, 20758, - 19727, 93, 16761, 20759, 529, 13177, 660, - 19727, 11513, 8351, 22495, 17264, - 19727, 11513, 18778, - 19727, 11513, 20933, 965, 95, 1393, 507, 22495, 17264, - 19731, 17298, - 19733, 3105, 10905, 13069, 2760, - 19733, 3105, 10905, 13069, 3240, - 19733, 3105, 10905, 13069, 3536, - 19733, 3105, 10905, 13069, 7036, - 19733, 3105, 10905, 13069, 7058, - 19733, 3105, 10905, 13069, 9358, - 19733, 3105, 10905, 13069, 13150, - 19733, 3105, 10905, 13069, 14778, - 19733, 3105, 10905, 13069, 15116, - 19733, 3105, 11259, 13069, 2760, - 19733, 3105, 11259, 13069, 3240, - 19733, 3105, 11259, 13069, 3536, - 19733, 3105, 11259, 13069, 7036, - 19733, 3105, 11259, 13069, 7058, - 19733, 3105, 11259, 13069, 9358, - 19733, 3105, 11259, 13069, 13150, - 19733, 3105, 11259, 13069, 14778, - 19733, 3105, 11259, 13069, 15116, - 19739, 8980, - 19743, 13774, - 19747, 10574, - 19748, - 19753, 10574, - 19753, 19998, - 19759, 14911, 16531, 0, - 19759, 14911, 16531, 1, 11513, 12554, - 19759, 14911, 16531, 1, 11513, 21188, - 19759, 14911, 16531, 8, - 19759, 14911, 16531, 9, 11513, 21188, - 19759, 14911, 16531, 16, - 19759, 14911, 16531, 17, 11513, 13416, - 19759, 14911, 16531, 17, 11513, 16586, - 19759, 14911, 16531, 17, 11513, 21188, - 19759, 14911, 16531, 28, - 19759, 14911, 16531, 29, 11513, 21188, - 19759, 14911, 16531, 40, - 19759, 14911, 16531, 41, 11513, 16095, 12320, - 19759, 14911, 16531, 41, 11513, 16586, - 19759, 14911, 16531, 41, 11513, 21188, - 19759, 14911, 16531, 112, - 19759, 14911, 16531, 156, - 19759, 14911, 16531, 188, - 19759, 14911, 16531, 200, - 19759, 14911, 16531, 201, 11513, 7658, - 19759, 14911, 16531, 201, 11513, 10856, - 19759, 14911, 16531, 201, 11513, 16661, 7658, - 19759, 14911, 16531, 201, 11513, 21186, - 19759, 14911, 16531, 202, - 19759, 14911, 16531, 203, 11513, 10856, - 19759, 14911, 16531, 204, - 19759, 14911, 16531, 205, 11513, 7658, - 19759, 14911, 16531, 205, 11513, 8281, 7658, - 19759, 14911, 16531, 205, 11513, 10856, - 19759, 14911, 16531, 205, 11513, 16661, 7658, - 19759, 14911, 16531, 205, 11513, 21186, - 19759, 14911, 16531, 212, - 19759, 14911, 16531, 213, 11513, 10984, - 19759, 14911, 16531, 214, - 19759, 14911, 16531, 215, 11513, 21186, - 19759, 14911, 16531, 272, - 19759, 14911, 16531, 273, 11513, 7658, - 19759, 14911, 16531, 273, 11513, 17264, - 19759, 14911, 16531, 273, 11513, 21186, - 19759, 14911, 16531, 306, - 19759, 14911, 16531, 307, 11513, 12554, - 19759, 14911, 16531, 307, 11513, 13416, - 19759, 14911, 16531, 324, - 19759, 14911, 16531, 346, - 19759, 14911, 16531, 358, - 19759, 14911, 16531, 359, 11513, 7658, - 19759, 14911, 16531, 359, 11513, 17264, - 19759, 14911, 16531, 359, 11513, 20933, 17264, - 19759, 14911, 16531, 359, 11513, 21186, - 19759, 14911, 16531, 532, - 19759, 14911, 16531, 554, - 19759, 14911, 16531, 555, 11513, 16661, 7658, - 19759, 14911, 16531, 555, 11513, 21186, - 19759, 14911, 16531, 582, - 19759, 14911, 16531, 652, - 19759, 14911, 16531, 653, 11513, 16661, 7658, - 19759, 14911, 16531, 653, 11513, 21186, - 19759, 14911, 16531, 690, - 19759, 14911, 16531, 718, - 19759, 14911, 16531, 744, - 19759, 14911, 16531, 778, - 19759, 14911, 16531, 782, - 19759, 14911, 16531, 784, - 19759, 14911, 16531, 790, - 19759, 14911, 16531, 798, - 19759, 14911, 16531, 799, 11513, 21186, - 19759, 14911, 16531, 799, 11513, 21188, - 19759, 14911, 16531, 1015, 3988, - 19759, 14911, 16531, 1118, - 19759, 14911, 16531, 1119, 11513, 20933, 17264, - 19759, 14911, 16531, 1119, 11513, 21186, - 19759, 14911, 16531, 1119, 11513, 21188, - 19759, 14911, 16531, 1264, - 19759, 14911, 16531, 1324, - 19759, 14911, 16531, 1332, - 19759, 14911, 16531, 1590, - 19759, 14911, 16531, 1591, 11513, 16661, 7658, - 19759, 14911, 16531, 1591, 11513, 17264, - 19759, 14911, 16531, 1591, 11513, 17265, 897, 7658, - 19759, 14911, 16531, 1591, 11513, 17504, - 19759, 14911, 16531, 1591, 11513, 21186, - 19759, 14911, 16531, 1618, - 19759, 14911, 16531, 1810, - 19759, 14911, 16531, 2074, - 19759, 14911, 16531, 2122, - 19759, 14911, 16531, 2248, - 19759, 14911, 16531, 2276, - 19759, 14911, 16531, 2610, - 19759, 14911, 16531, 2882, - 19759, 14911, 16531, 3074, - 19759, 14911, 16531, 3212, - 19759, 14911, 16531, 3452, - 19759, 14911, 16531, 3490, - 19759, 14911, 16531, 3532, - 19759, 14911, 16531, 3876, - 19759, 14911, 16531, 3902, - 19759, 14911, 16531, 4044, - 19759, 14911, 16531, 4045, 11513, 12554, - 19759, 14911, 16531, 4045, 11513, 21186, - 19759, 14911, 16531, 4045, 11513, 21188, - 19759, 14911, 16531, 6242, - 19759, 14911, 16531, 6552, - 19759, 14911, 16531, 6742, - 19759, 14911, 16531, 6746, - 19759, 14911, 16531, 6752, - 19759, 14911, 16531, 7034, - 19759, 14911, 16531, 7437, 10574, - 19759, 14911, 16531, 7818, - 19759, 14911, 16531, 8135, 156, - 19759, 14911, 16531, 8135, 1264, - 19759, 14911, 16531, 8135, 2276, - 19759, 14911, 16531, 8135, 2610, - 19759, 14911, 16531, 8135, 3242, - 19759, 14911, 16531, 8135, 3452, - 19759, 14911, 16531, 8135, 4068, - 19759, 14911, 16531, 8135, 6744, - 19759, 14911, 16531, 10470, - 19759, 14911, 16531, 10471, 11513, 21186, - 19759, 14911, 16531, 10532, - 19759, 14911, 16531, 10629, 156, - 19759, 14911, 16531, 10629, 200, - 19759, 14911, 16531, 10629, 202, - 19759, 14911, 16531, 10629, 10574, - 19759, 14911, 16531, 10863, 652, - 19759, 14911, 16531, 10863, 3902, - 19759, 14911, 16531, 10863, 7437, 10574, - 19759, 14911, 16531, 10878, - 19759, 14911, 16531, 11060, - 19759, 14911, 16531, 11068, - 19759, 14911, 16531, 11074, - 19759, 14911, 16531, 11503, 214, - 19759, 14911, 16531, 11680, - 19759, 14911, 16531, 11681, 11513, 5967, 3924, - 19759, 14911, 16531, 11681, 11513, 21188, - 19759, 14911, 16531, 11872, - 19759, 14911, 16531, 12357, 358, - 19759, 14911, 16531, 12561, 14428, - 19759, 14911, 16531, 13084, - 19759, 14911, 16531, 13112, - 19759, 14911, 16531, 13120, - 19759, 14911, 16531, 13728, - 19759, 14911, 16531, 14428, - 19759, 14911, 16531, 14429, 11513, 15156, - 19759, 14911, 16531, 14677, 14428, - 19759, 14911, 16531, 14756, - 19759, 14911, 16531, 14757, 11513, 21188, - 19759, 14911, 16531, 14800, - 19759, 14911, 16531, 14837, 16, - 19759, 14911, 16531, 14837, 17, 11513, 10856, - 19759, 14911, 16531, 14837, 40, - 19759, 14911, 16531, 15787, 28, - 19759, 14911, 16531, 15787, 29, 11513, 21188, - 19759, 14911, 16531, 15949, 16563, 3988, - 19759, 14911, 16531, 16095, 28, - 19759, 14911, 16531, 16095, 21601, 28, - 19759, 14911, 16531, 16563, 3988, - 19759, 14911, 16531, 16701, 28, - 19759, 14911, 16531, 17620, - 19759, 14911, 16531, 17747, 358, - 19759, 14911, 16531, 17781, 3988, - 19759, 14911, 16531, 17931, 28, - 19759, 14911, 16531, 18318, - 19759, 14911, 16531, 18319, 11513, 16095, 13417, 15678, - 19759, 14911, 16531, 18681, 3924, - 19759, 14911, 16531, 19019, 718, - 19759, 14911, 16531, 20165, 0, - 19759, 14911, 16531, 20165, 8, - 19759, 14911, 16531, 20165, 1015, 3988, - 19759, 14911, 16531, 20165, 3902, - 19759, 14911, 16531, 20165, 15949, 16563, 3988, - 19759, 14911, 16531, 20165, 16563, 3988, - 19759, 14911, 16531, 20432, - 19759, 14911, 16531, 20587, 790, - 19759, 14911, 16531, 20587, 798, - 19759, 14911, 16531, 20587, 1332, - 19759, 14911, 16531, 20587, 3490, - 19759, 14911, 16531, 20633, 10574, - 19759, 14911, 16531, 20729, 40, - 19759, 14911, 16531, 20729, 41, 11513, 17264, - 19759, 14911, 16531, 20985, 272, - 19759, 14911, 16531, 20985, 1118, - 19759, 14911, 16531, 20985, 1119, 11513, 21186, - 19759, 14911, 16531, 20985, 1332, - 19759, 14911, 16531, 21059, 28, - 19759, 14911, 16531, 21601, 28, - 19759, 14911, 16531, 21603, 690, - 19759, 14911, 16531, 22085, 306, - 19759, 14911, 16531, 22087, 690, - 19759, 14911, 16531, 22519, 1118, - 19759, 14911, 16531, 23307, 156, - 19759, 14911, 16531, 24157, 652, - 19759, 14911, 16531, 36353, 16, - 19759, 14911, 20241, 1, 306, - 19759, 14911, 20241, 205, 1590, - 19759, 14911, 20241, 653, 3490, - 19759, 16420, - 19759, 16531, 14911, 17835, 200, - 19759, 16531, 20432, - 19759, 16531, 23347, 28, - 19759, 17835, 16531, 0, - 19759, 17835, 16531, 1, 11513, 12554, - 19759, 17835, 16531, 1, 11513, 21188, - 19759, 17835, 16531, 8, - 19759, 17835, 16531, 9, 11513, 21188, - 19759, 17835, 16531, 16, - 19759, 17835, 16531, 17, 11513, 13416, - 19759, 17835, 16531, 17, 11513, 16586, - 19759, 17835, 16531, 17, 11513, 21188, - 19759, 17835, 16531, 28, - 19759, 17835, 16531, 29, 11513, 21188, - 19759, 17835, 16531, 40, - 19759, 17835, 16531, 41, 11513, 16095, 12320, - 19759, 17835, 16531, 41, 11513, 16586, - 19759, 17835, 16531, 41, 11513, 21188, - 19759, 17835, 16531, 112, - 19759, 17835, 16531, 156, - 19759, 17835, 16531, 188, - 19759, 17835, 16531, 200, - 19759, 17835, 16531, 201, 11513, 7658, - 19759, 17835, 16531, 201, 11513, 10856, - 19759, 17835, 16531, 201, 11513, 16661, 7658, - 19759, 17835, 16531, 201, 11513, 21186, - 19759, 17835, 16531, 202, - 19759, 17835, 16531, 203, 11513, 10856, - 19759, 17835, 16531, 204, - 19759, 17835, 16531, 205, 11513, 7658, - 19759, 17835, 16531, 205, 11513, 8281, 7658, - 19759, 17835, 16531, 205, 11513, 10856, - 19759, 17835, 16531, 205, 11513, 16661, 7658, - 19759, 17835, 16531, 205, 11513, 21186, - 19759, 17835, 16531, 212, - 19759, 17835, 16531, 213, 11513, 10984, - 19759, 17835, 16531, 214, - 19759, 17835, 16531, 215, 11513, 21186, - 19759, 17835, 16531, 272, - 19759, 17835, 16531, 273, 11513, 7658, - 19759, 17835, 16531, 273, 11513, 17264, - 19759, 17835, 16531, 273, 11513, 21186, - 19759, 17835, 16531, 306, - 19759, 17835, 16531, 307, 11513, 12554, - 19759, 17835, 16531, 307, 11513, 13416, - 19759, 17835, 16531, 324, - 19759, 17835, 16531, 346, - 19759, 17835, 16531, 358, - 19759, 17835, 16531, 359, 11513, 7658, - 19759, 17835, 16531, 359, 11513, 17264, - 19759, 17835, 16531, 359, 11513, 20933, 17264, - 19759, 17835, 16531, 359, 11513, 21186, - 19759, 17835, 16531, 532, - 19759, 17835, 16531, 554, - 19759, 17835, 16531, 555, 11513, 16661, 7658, - 19759, 17835, 16531, 555, 11513, 21186, - 19759, 17835, 16531, 582, - 19759, 17835, 16531, 652, - 19759, 17835, 16531, 653, 11513, 16661, 7658, - 19759, 17835, 16531, 653, 11513, 21186, - 19759, 17835, 16531, 690, - 19759, 17835, 16531, 718, - 19759, 17835, 16531, 744, - 19759, 17835, 16531, 778, - 19759, 17835, 16531, 782, - 19759, 17835, 16531, 784, - 19759, 17835, 16531, 790, - 19759, 17835, 16531, 798, - 19759, 17835, 16531, 799, 11513, 21186, - 19759, 17835, 16531, 799, 11513, 21188, - 19759, 17835, 16531, 1015, 3988, - 19759, 17835, 16531, 1118, - 19759, 17835, 16531, 1119, 11513, 20933, 17264, - 19759, 17835, 16531, 1119, 11513, 21186, - 19759, 17835, 16531, 1119, 11513, 21188, - 19759, 17835, 16531, 1264, - 19759, 17835, 16531, 1324, - 19759, 17835, 16531, 1332, - 19759, 17835, 16531, 1590, - 19759, 17835, 16531, 1591, 11513, 16661, 7658, - 19759, 17835, 16531, 1591, 11513, 17264, - 19759, 17835, 16531, 1591, 11513, 17265, 897, 7658, - 19759, 17835, 16531, 1591, 11513, 17504, - 19759, 17835, 16531, 1591, 11513, 21186, - 19759, 17835, 16531, 1618, - 19759, 17835, 16531, 1810, - 19759, 17835, 16531, 2074, - 19759, 17835, 16531, 2122, - 19759, 17835, 16531, 2248, - 19759, 17835, 16531, 2276, - 19759, 17835, 16531, 2610, - 19759, 17835, 16531, 2882, - 19759, 17835, 16531, 3074, - 19759, 17835, 16531, 3212, - 19759, 17835, 16531, 3452, - 19759, 17835, 16531, 3490, - 19759, 17835, 16531, 3532, - 19759, 17835, 16531, 3876, - 19759, 17835, 16531, 3902, - 19759, 17835, 16531, 4044, - 19759, 17835, 16531, 4045, 11513, 12554, - 19759, 17835, 16531, 4045, 11513, 21186, - 19759, 17835, 16531, 4045, 11513, 21188, - 19759, 17835, 16531, 6242, - 19759, 17835, 16531, 6552, - 19759, 17835, 16531, 6742, - 19759, 17835, 16531, 6746, - 19759, 17835, 16531, 6752, - 19759, 17835, 16531, 7034, - 19759, 17835, 16531, 7437, 10574, - 19759, 17835, 16531, 7818, - 19759, 17835, 16531, 8135, 156, - 19759, 17835, 16531, 8135, 1264, - 19759, 17835, 16531, 8135, 2276, - 19759, 17835, 16531, 8135, 2610, - 19759, 17835, 16531, 8135, 3242, - 19759, 17835, 16531, 8135, 3452, - 19759, 17835, 16531, 8135, 4068, - 19759, 17835, 16531, 8135, 6744, - 19759, 17835, 16531, 10470, - 19759, 17835, 16531, 10471, 11513, 21186, - 19759, 17835, 16531, 10532, - 19759, 17835, 16531, 10629, 156, - 19759, 17835, 16531, 10629, 200, - 19759, 17835, 16531, 10629, 202, - 19759, 17835, 16531, 10629, 10574, - 19759, 17835, 16531, 10878, - 19759, 17835, 16531, 11060, - 19759, 17835, 16531, 11068, - 19759, 17835, 16531, 11074, - 19759, 17835, 16531, 11680, - 19759, 17835, 16531, 11681, 11513, 5967, 3924, - 19759, 17835, 16531, 11681, 11513, 21188, - 19759, 17835, 16531, 11872, - 19759, 17835, 16531, 12357, 358, - 19759, 17835, 16531, 12561, 14428, - 19759, 17835, 16531, 13084, - 19759, 17835, 16531, 13112, - 19759, 17835, 16531, 13120, - 19759, 17835, 16531, 13728, - 19759, 17835, 16531, 14428, - 19759, 17835, 16531, 14429, 11513, 15156, - 19759, 17835, 16531, 14677, 14428, - 19759, 17835, 16531, 14756, - 19759, 17835, 16531, 14757, 11513, 21188, - 19759, 17835, 16531, 14800, - 19759, 17835, 16531, 14837, 16, - 19759, 17835, 16531, 14837, 17, 11513, 10856, - 19759, 17835, 16531, 14837, 40, - 19759, 17835, 16531, 15787, 28, - 19759, 17835, 16531, 15787, 29, 11513, 21188, - 19759, 17835, 16531, 15949, 16563, 3988, - 19759, 17835, 16531, 16095, 28, - 19759, 17835, 16531, 16095, 21601, 28, - 19759, 17835, 16531, 16563, 3988, - 19759, 17835, 16531, 17620, - 19759, 17835, 16531, 17747, 358, - 19759, 17835, 16531, 17781, 3988, - 19759, 17835, 16531, 17931, 28, - 19759, 17835, 16531, 18318, - 19759, 17835, 16531, 18319, 11513, 16095, 13417, 15678, - 19759, 17835, 16531, 18681, 3924, - 19759, 17835, 16531, 20165, 0, - 19759, 17835, 16531, 20165, 8, - 19759, 17835, 16531, 20165, 1015, 3988, - 19759, 17835, 16531, 20165, 3902, - 19759, 17835, 16531, 20165, 15949, 16563, 3988, - 19759, 17835, 16531, 20165, 16563, 3988, - 19759, 17835, 16531, 20587, 790, - 19759, 17835, 16531, 20587, 798, - 19759, 17835, 16531, 20587, 1332, - 19759, 17835, 16531, 20587, 3490, - 19759, 17835, 16531, 20633, 10574, - 19759, 17835, 16531, 20729, 40, - 19759, 17835, 16531, 20729, 41, 11513, 17264, - 19759, 17835, 16531, 20985, 272, - 19759, 17835, 16531, 20985, 1118, - 19759, 17835, 16531, 20985, 1119, 11513, 21186, - 19759, 17835, 16531, 20985, 1332, - 19759, 17835, 16531, 21059, 28, - 19759, 17835, 16531, 21601, 28, - 19759, 17835, 16531, 21603, 690, - 19759, 17835, 16531, 22085, 306, - 19759, 17835, 16531, 22519, 1118, - 19759, 17835, 16531, 36353, 16, - 19759, 17835, 20241, 1, 306, - 19759, 17835, 20241, 205, 1590, - 19759, 17835, 20241, 653, 3490, - 19759, 18824, - 19759, 21927, 14911, 16531, 0, - 19759, 21927, 14911, 16531, 16, - 19759, 21927, 14911, 16531, 28, - 19759, 21927, 14911, 16531, 40, - 19759, 21927, 14911, 16531, 112, - 19759, 21927, 14911, 16531, 156, - 19759, 21927, 14911, 16531, 188, - 19759, 21927, 14911, 16531, 200, - 19759, 21927, 14911, 16531, 214, - 19759, 21927, 14911, 16531, 272, - 19759, 21927, 14911, 16531, 306, - 19759, 21927, 14911, 16531, 358, - 19759, 21927, 14911, 16531, 554, - 19759, 21927, 14911, 16531, 718, - 19759, 21927, 14911, 16531, 798, - 19759, 21927, 14911, 16531, 1118, - 19759, 21927, 14911, 16531, 1332, - 19759, 21927, 14911, 16531, 1590, - 19759, 21927, 14911, 16531, 1591, 11513, 17504, - 19759, 21927, 14911, 16531, 3212, - 19759, 21927, 14911, 16531, 3490, - 19759, 21927, 14911, 16531, 4044, - 19759, 21927, 14911, 16531, 6742, - 19759, 21927, 14911, 16531, 7437, 10574, - 19759, 21927, 14911, 16531, 11680, - 19759, 21927, 14911, 16531, 36353, 16, - 19759, 22045, 10574, - 19775, 7047, 10593, 17298, - 19779, 15208, - 19785, 13541, 19642, - 19791, 22251, 7022, - 19793, 10574, - 19809, 1088, - 19817, 10574, - 19817, 14890, - 19817, 15146, - 19818, - 19819, 11513, 10920, - 19819, 11513, 10921, 897, 18868, - 19819, 11513, 18868, - 19940, - 19943, 16149, 7658, - 19943, 16149, 7659, 11513, 1290, - 19943, 16149, 18719, 7658, - 19943, 16149, 18719, 7659, 11513, 1290, - 19947, 14559, 22837, 12414, - 19953, 6996, - 19954, - 19957, 10575, 29, 11513, 12934, - 19957, 12329, 2301, 1290, - 19957, 12329, 2301, 8320, - 19957, 12329, 2301, 8351, 13416, - 19957, 12329, 2301, 11472, - 19957, 12329, 2301, 12320, - 19957, 12329, 2301, 12414, - 19957, 12329, 2301, 13416, - 19957, 12329, 2301, 15137, 12320, - 19957, 12329, 2301, 15938, - 19957, 12329, 2301, 20932, - 19957, 12329, 2301, 20933, 17092, - 19957, 12329, 2429, 20933, 17092, - 19957, 12329, 2429, 22495, 17092, - 19957, 12329, 7521, 1290, - 19957, 12329, 7521, 8320, - 19957, 12329, 7521, 8351, 13416, - 19957, 12329, 7521, 11472, - 19957, 12329, 7521, 12320, - 19957, 12329, 7521, 13416, - 19957, 12329, 7521, 15137, 12320, - 19957, 12329, 7521, 15938, - 19957, 12329, 7521, 20932, - 19957, 12329, 7521, 20933, 17092, - 19957, 12329, 8281, 22495, 17092, - 19957, 12329, 14659, 22495, 17092, - 19957, 12329, 19583, 9, 7658, - 19957, 12329, 19583, 17, 7658, - 19957, 12329, 19583, 10856, - 19957, 12329, 19583, 17092, - 19957, 12329, 19583, 19252, - 19957, 12329, 19583, 19253, 7658, - 19957, 12329, 19583, 25815, 17092, - 19957, 15103, 16531, 20630, - 19957, 16095, 8808, - 19957, 16531, 0, - 19957, 16531, 2, - 19957, 16531, 6, - 19957, 16531, 7, 36, - 19957, 16531, 8, - 19957, 16531, 10, - 19957, 16531, 11, 26, - 19957, 16531, 12, - 19957, 16531, 13, 35, 36, - 19957, 16531, 14, - 19957, 16531, 16, - 19957, 16531, 18, - 19957, 16531, 19, 24, - 19957, 16531, 19, 25, 36, - 19957, 16531, 19, 26, - 19957, 16531, 19, 27, 36, - 19957, 16531, 19, 36, - 19957, 16531, 19, 37, 11513, 1290, - 19957, 16531, 19, 11513, 1290, - 19957, 16531, 19, 11513, 6697, 16383, 897, 12318, - 19957, 16531, 20, - 19957, 16531, 21, 24, - 19957, 16531, 21, 35, 36, - 19957, 16531, 22, - 19957, 16531, 24, - 19957, 16531, 25, 26, - 19957, 16531, 25, 27, 36, - 19957, 16531, 25, 36, - 19957, 16531, 25, 11513, 1290, - 19957, 16531, 26, - 19957, 16531, 27, 24, - 19957, 16531, 27, 25, 36, - 19957, 16531, 27, 36, - 19957, 16531, 27, 11513, 1290, - 19957, 16531, 28, - 19957, 16531, 30, - 19957, 16531, 31, 26, - 19957, 16531, 34, - 19957, 16531, 35, 36, - 19957, 16531, 36, - 19957, 16531, 37, 18, - 19957, 16531, 37, 19, 36, - 19957, 16531, 37, 20, - 19957, 16531, 37, 21, 34, - 19957, 16531, 37, 24, - 19957, 16531, 37, 26, - 19957, 16531, 37, 30, - 19957, 16531, 37, 31, 34, - 19957, 16531, 37, 36, - 19957, 16531, 37, 38, - 19957, 16531, 37, 39, 34, - 19957, 16531, 37, 11513, 1290, - 19957, 16531, 37, 11513, 1291, 12502, - 19957, 16531, 38, - 19957, 16531, 39, 35, 36, - 19957, 16531, 39, 36, - 19957, 16531, 40, - 19957, 16531, 41, 26, - 19957, 16531, 42, - 19957, 16531, 44, - 19957, 16531, 45, 34, - 19957, 16531, 46, - 19957, 16531, 158, - 19957, 16531, 186, - 19957, 16531, 218, - 19957, 16531, 284, - 19957, 16531, 306, - 19957, 16531, 368, - 19957, 16531, 400, - 19957, 16531, 498, - 19957, 16531, 534, - 19957, 16531, 538, - 19957, 16531, 602, - 19957, 16531, 654, - 19957, 16531, 684, - 19957, 16531, 686, - 19957, 16531, 738, - 19957, 16531, 748, - 19957, 16531, 750, - 19957, 16531, 754, - 19957, 16531, 774, - 19957, 16531, 780, - 19957, 16531, 912, - 19957, 16531, 2770, - 19957, 16531, 3760, - 19957, 16531, 3786, - 19957, 16531, 8351, 16, - 19957, 16531, 8351, 40, - 19957, 16531, 14079, 0, - 19957, 16531, 14079, 16, - 19957, 16531, 14079, 28, - 19957, 16531, 14079, 40, - 19957, 16531, 14837, 16, - 19957, 16531, 14903, 18, - 19957, 16531, 14903, 40, - 19957, 16531, 14903, 82, - 19957, 16531, 14903, 158, - 19957, 16531, 14903, 186, - 19957, 16531, 14903, 192, - 19957, 16531, 14903, 204, - 19957, 16531, 14903, 520, - 19957, 16531, 14903, 538, - 19957, 16531, 16889, 80, - 19957, 16531, 16889, 82, - 19957, 16531, 19415, 24, - 19957, 16531, 20595, 16, - 19957, 16531, 20595, 40, - 19957, 23555, 17875, 7073, 10696, - 19965, 22487, 1393, 17555, 21364, - 19965, 22487, 1393, 19058, - 19965, 22487, 1393, 21364, - 19965, 22487, 4128, - 19965, 22487, 4130, - 19965, 22487, 4132, - 19965, 22487, 4134, - 19965, 22487, 4136, - 19965, 22487, 4138, - 19965, 22487, 4140, - 19965, 22487, 4142, - 19965, 22487, 4144, - 19965, 22487, 4146, - 19965, 22487, 4148, - 19965, 22487, 4150, - 19965, 22487, 4152, - 19965, 22487, 4154, - 19965, 22487, 4156, - 19965, 22487, 4158, - 19965, 22487, 4160, - 19965, 22487, 4162, - 19965, 22487, 4164, - 19965, 22487, 4166, - 19965, 22487, 4168, - 19965, 22487, 4170, - 19965, 22487, 4172, - 19965, 22487, 4174, - 19965, 22487, 4176, - 19965, 22487, 4178, - 19965, 22487, 4180, - 19965, 22487, 4182, - 19965, 22487, 4184, - 19965, 22487, 4186, - 19965, 22487, 4188, - 19965, 22487, 4190, - 19965, 22487, 4192, - 19965, 22487, 4194, - 19965, 22487, 4196, - 19965, 22487, 4198, - 19965, 22487, 4200, - 19965, 22487, 4202, - 19965, 22487, 4204, - 19965, 22487, 4206, - 19965, 22487, 4208, - 19965, 22487, 4210, - 19965, 22487, 4212, - 19965, 22487, 4214, - 19965, 22487, 4216, - 19965, 22487, 4218, - 19965, 22487, 4220, - 19965, 22487, 4222, - 19965, 22487, 4224, - 19965, 22487, 4226, - 19965, 22487, 4228, - 19965, 22487, 4230, - 19965, 22487, 4232, - 19965, 22487, 4234, - 19965, 22487, 4236, - 19965, 22487, 4238, - 19965, 22487, 4240, - 19965, 22487, 4242, - 19965, 22487, 4244, - 19965, 22487, 4246, - 19965, 22487, 4248, - 19965, 22487, 4250, - 19965, 22487, 4252, - 19965, 22487, 4254, - 19965, 22487, 4256, - 19965, 22487, 4258, - 19965, 22487, 4260, - 19965, 22487, 4262, - 19965, 22487, 4264, - 19965, 22487, 4266, - 19965, 22487, 5560, - 19965, 22487, 5562, - 19965, 22487, 5564, - 19965, 22487, 5566, - 19965, 22487, 5568, - 19965, 22487, 5570, - 19965, 22487, 5572, - 19965, 22487, 5574, - 19965, 22487, 5576, - 19965, 22487, 6156, - 19965, 22487, 6158, - 19965, 22487, 6160, - 19965, 22487, 6162, - 19965, 22487, 6164, - 19965, 22487, 6166, - 19965, 22487, 6168, - 19965, 22487, 6170, - 19965, 22487, 6172, - 19965, 22487, 6174, - 19965, 22487, 6176, - 19965, 22487, 6178, - 19965, 22487, 6180, - 19965, 22487, 6182, - 19965, 22487, 6184, - 19965, 22487, 6186, - 19965, 22487, 6188, - 19965, 22487, 6190, - 19965, 22487, 6192, - 19965, 22487, 6194, - 19965, 22487, 6196, - 19965, 22487, 6198, - 19965, 22487, 6200, - 19965, 22487, 6202, - 19965, 22487, 6394, - 19965, 22487, 6396, - 19965, 22487, 6398, - 19965, 22487, 6400, - 19965, 22487, 6402, - 19965, 22487, 6404, - 19965, 22487, 6406, - 19965, 22487, 6408, - 19965, 22487, 6410, - 19965, 22487, 6412, - 19965, 22487, 6414, - 19965, 22487, 6416, - 19965, 22487, 6418, - 19965, 22487, 6420, - 19965, 22487, 6422, - 19965, 22487, 6424, - 19965, 22487, 6426, - 19965, 22487, 6428, - 19965, 22487, 6430, - 19965, 22487, 6432, - 19965, 22487, 6434, - 19965, 22487, 6436, - 19965, 22487, 6438, - 19965, 22487, 6440, - 19965, 22487, 6442, - 19965, 22487, 6444, - 19965, 22487, 6446, - 19965, 22487, 6448, - 19965, 22487, 6450, - 19965, 22487, 6452, - 19965, 22487, 6454, - 19965, 22487, 6456, - 19965, 22487, 6458, - 19965, 22487, 6460, - 19965, 22487, 6462, - 19965, 22487, 6464, - 19965, 22487, 6466, - 19965, 22487, 6468, - 19965, 22487, 6470, - 19965, 22487, 6472, - 19965, 22487, 6474, - 19965, 22487, 6476, - 19965, 22487, 6478, - 19965, 22487, 6480, - 19965, 22487, 6482, - 19965, 22487, 6484, - 19965, 22487, 6486, - 19965, 22487, 6488, - 19965, 22487, 6490, - 19965, 22487, 6492, - 19965, 22487, 6494, - 19965, 22487, 6496, - 19965, 22487, 6498, - 19965, 22487, 6500, - 19965, 22487, 6502, - 19965, 22487, 6504, - 19965, 22487, 6506, - 19965, 22487, 6508, - 19965, 22487, 6510, - 19965, 22487, 6512, - 19965, 22487, 6514, - 19965, 22487, 6516, - 19965, 22487, 6518, - 19965, 22487, 6520, - 19965, 22487, 6522, - 19965, 22487, 6524, - 19965, 22487, 6526, - 19965, 22487, 6754, - 19965, 22487, 6756, - 19965, 22487, 6758, - 19965, 22487, 6760, - 19965, 22487, 6762, - 19965, 22487, 6764, - 19965, 22487, 6766, - 19965, 22487, 6768, - 19965, 22487, 6770, - 19965, 22487, 6772, - 19965, 22487, 6774, - 19965, 22487, 6776, - 19965, 22487, 6778, - 19965, 22487, 6780, - 19965, 22487, 6782, - 19965, 22487, 6784, - 19965, 22487, 6786, - 19965, 22487, 6788, - 19965, 22487, 6790, - 19965, 22487, 6792, - 19965, 22487, 6794, - 19965, 22487, 6796, - 19965, 22487, 6798, - 19965, 22487, 6800, - 19965, 22487, 6802, - 19965, 22487, 6804, - 19965, 22487, 6806, - 19965, 22487, 6808, - 19965, 22487, 6810, - 19965, 22487, 6812, - 19965, 22487, 6814, - 19965, 22487, 6816, - 19965, 22487, 6818, - 19965, 22487, 6820, - 19965, 22487, 6822, - 19965, 22487, 6824, - 19965, 22487, 6826, - 19965, 22487, 6888, - 19965, 22487, 6890, - 19965, 22487, 6892, - 19965, 22487, 6894, - 19965, 22487, 6896, - 19965, 22487, 6898, - 19965, 22487, 6900, - 19965, 22487, 6902, - 19965, 22487, 6904, - 19965, 22487, 6906, - 19965, 22487, 6908, - 19965, 22487, 6910, - 19965, 22487, 6912, - 19965, 22487, 6914, - 19965, 22487, 6916, - 19965, 22487, 6918, - 19965, 22487, 6920, - 19965, 22487, 6922, - 19965, 22487, 6924, - 19965, 22487, 6926, - 19965, 22487, 6928, - 19965, 22487, 6930, - 19965, 22487, 6932, - 19965, 22487, 6934, - 19965, 22487, 6936, - 19965, 22487, 6938, - 19965, 22487, 6940, - 19965, 22487, 6942, - 19965, 22487, 6944, - 19965, 22487, 6946, - 19965, 22487, 6948, - 19965, 22487, 6950, - 19965, 22487, 6952, - 19965, 22487, 6954, - 19965, 22487, 6956, - 19965, 22487, 6958, - 19965, 22487, 6960, - 19965, 22487, 6962, - 19965, 22487, 6964, - 19965, 22487, 6966, - 19965, 22487, 6968, - 19965, 22487, 6970, - 19965, 22487, 6972, - 19965, 22487, 6974, - 19965, 22487, 6976, - 19965, 22487, 6978, - 19965, 22487, 6980, - 19965, 22487, 6982, - 19965, 22487, 6984, - 19965, 22487, 6986, - 19965, 22487, 6988, - 19965, 22487, 6990, - 19965, 22487, 6992, - 19965, 22487, 7073, 12528, - 19965, 22487, 7092, - 19965, 22487, 7094, - 19965, 22487, 7096, - 19965, 22487, 7098, - 19965, 22487, 7100, - 19965, 22487, 7102, - 19965, 22487, 7104, - 19965, 22487, 7106, - 19965, 22487, 7108, - 19965, 22487, 7110, - 19965, 22487, 7112, - 19965, 22487, 7114, - 19965, 22487, 7116, - 19965, 22487, 7118, - 19965, 22487, 7120, - 19965, 22487, 7122, - 19965, 22487, 7124, - 19965, 22487, 7126, - 19965, 22487, 7128, - 19965, 22487, 7130, - 19965, 22487, 7132, - 19965, 22487, 7134, - 19965, 22487, 7136, - 19965, 22487, 7138, - 19965, 22487, 7140, - 19965, 22487, 7142, - 19965, 22487, 7144, - 19965, 22487, 7146, - 19965, 22487, 7148, - 19965, 22487, 7150, - 19965, 22487, 7152, - 19965, 22487, 7154, - 19965, 22487, 7156, - 19965, 22487, 7158, - 19965, 22487, 7160, - 19965, 22487, 7162, - 19965, 22487, 7164, - 19965, 22487, 7166, - 19965, 22487, 7168, - 19965, 22487, 7170, - 19965, 22487, 7172, - 19965, 22487, 7174, - 19965, 22487, 7176, - 19965, 22487, 7178, - 19965, 22487, 7180, - 19965, 22487, 7182, - 19965, 22487, 7184, - 19965, 22487, 7186, - 19965, 22487, 7188, - 19965, 22487, 7190, - 19965, 22487, 7192, - 19965, 22487, 7194, - 19965, 22487, 7196, - 19965, 22487, 7198, - 19965, 22487, 7386, - 19965, 22487, 7388, - 19965, 22487, 7390, - 19965, 22487, 7392, - 19965, 22487, 7394, - 19965, 22487, 7396, - 19965, 22487, 7398, - 19965, 22487, 7400, - 19965, 22487, 7429, 8361, 10574, - 19965, 22487, 7429, 12528, - 19965, 22487, 7756, - 19965, 22487, 7758, - 19965, 22487, 7760, - 19965, 22487, 7762, - 19965, 22487, 7764, - 19965, 22487, 7766, - 19965, 22487, 7768, - 19965, 22487, 7770, - 19965, 22487, 7772, - 19965, 22487, 7774, - 19965, 22487, 7776, - 19965, 22487, 7778, - 19965, 22487, 7780, - 19965, 22487, 7782, - 19965, 22487, 7784, - 19965, 22487, 7930, - 19965, 22487, 7932, - 19965, 22487, 7934, - 19965, 22487, 7936, - 19965, 22487, 7938, - 19965, 22487, 7940, - 19965, 22487, 7942, - 19965, 22487, 7944, - 19965, 22487, 8216, - 19965, 22487, 8218, - 19965, 22487, 8220, - 19965, 22487, 8222, - 19965, 22487, 8224, - 19965, 22487, 8226, - 19965, 22487, 8228, - 19965, 22487, 8230, - 19965, 22487, 8361, 10574, - 19965, 22487, 8384, - 19965, 22487, 8386, - 19965, 22487, 8388, - 19965, 22487, 8390, - 19965, 22487, 8392, - 19965, 22487, 8394, - 19965, 22487, 8396, - 19965, 22487, 8398, - 19965, 22487, 8400, - 19965, 22487, 8402, - 19965, 22487, 8404, - 19965, 22487, 8406, - 19965, 22487, 8408, - 19965, 22487, 8410, - 19965, 22487, 8412, - 19965, 22487, 8414, - 19965, 22487, 8416, - 19965, 22487, 8418, - 19965, 22487, 8420, - 19965, 22487, 8422, - 19965, 22487, 8424, - 19965, 22487, 8426, - 19965, 22487, 8428, - 19965, 22487, 8430, - 19965, 22487, 8432, - 19965, 22487, 8434, - 19965, 22487, 8436, - 19965, 22487, 8438, - 19965, 22487, 8440, - 19965, 22487, 8442, - 19965, 22487, 8444, - 19965, 22487, 8446, - 19965, 22487, 8448, - 19965, 22487, 8450, - 19965, 22487, 8452, - 19965, 22487, 8454, - 19965, 22487, 8456, - 19965, 22487, 8458, - 19965, 22487, 8460, - 19965, 22487, 8462, - 19965, 22487, 8464, - 19965, 22487, 8466, - 19965, 22487, 8468, - 19965, 22487, 8470, - 19965, 22487, 9030, - 19965, 22487, 9032, - 19965, 22487, 9034, - 19965, 22487, 9036, - 19965, 22487, 9038, - 19965, 22487, 9040, - 19965, 22487, 9042, - 19965, 22487, 9044, - 19965, 22487, 9046, - 19965, 22487, 9048, - 19965, 22487, 9050, - 19965, 22487, 9052, - 19965, 22487, 9054, - 19965, 22487, 9056, - 19965, 22487, 9058, - 19965, 22487, 9060, - 19965, 22487, 9062, - 19965, 22487, 9064, - 19965, 22487, 9066, - 19965, 22487, 9068, - 19965, 22487, 9070, - 19965, 22487, 9072, - 19965, 22487, 9074, - 19965, 22487, 9076, - 19965, 22487, 9078, - 19965, 22487, 9080, - 19965, 22487, 9082, - 19965, 22487, 9084, - 19965, 22487, 9086, - 19965, 22487, 9088, - 19965, 22487, 9090, - 19965, 22487, 9092, - 19965, 22487, 9094, - 19965, 22487, 9096, - 19965, 22487, 9098, - 19965, 22487, 9100, - 19965, 22487, 9102, - 19965, 22487, 9104, - 19965, 22487, 9106, - 19965, 22487, 9108, - 19965, 22487, 9110, - 19965, 22487, 9112, - 19965, 22487, 9658, - 19965, 22487, 9660, - 19965, 22487, 9662, - 19965, 22487, 9664, - 19965, 22487, 9666, - 19965, 22487, 9668, - 19965, 22487, 9670, - 19965, 22487, 9672, - 19965, 22487, 9674, - 19965, 22487, 9676, - 19965, 22487, 9678, - 19965, 22487, 9680, - 19965, 22487, 9682, - 19965, 22487, 9684, - 19965, 22487, 9686, - 19965, 22487, 9688, - 19965, 22487, 9690, - 19965, 22487, 9692, - 19965, 22487, 9694, - 19965, 22487, 9696, - 19965, 22487, 9698, - 19965, 22487, 9700, - 19965, 22487, 9702, - 19965, 22487, 9704, - 19965, 22487, 9706, - 19965, 22487, 9708, - 19965, 22487, 9710, - 19965, 22487, 9712, - 19965, 22487, 9714, - 19965, 22487, 9716, - 19965, 22487, 9718, - 19965, 22487, 9720, - 19965, 22487, 9722, - 19965, 22487, 9724, - 19965, 22487, 9726, - 19965, 22487, 9728, - 19965, 22487, 9730, - 19965, 22487, 9732, - 19965, 22487, 9734, - 19965, 22487, 9736, - 19965, 22487, 9738, - 19965, 22487, 9740, - 19965, 22487, 9742, - 19965, 22487, 9744, - 19965, 22487, 9746, - 19965, 22487, 9748, - 19965, 22487, 9750, - 19965, 22487, 9752, - 19965, 22487, 9754, - 19965, 22487, 9756, - 19965, 22487, 9758, - 19965, 22487, 9790, - 19965, 22487, 9792, - 19965, 22487, 9794, - 19965, 22487, 9796, - 19965, 22487, 9798, - 19965, 22487, 9800, - 19965, 22487, 9802, - 19965, 22487, 9804, - 19965, 22487, 9806, - 19965, 22487, 9808, - 19965, 22487, 9810, - 19965, 22487, 9948, - 19965, 22487, 9950, - 19965, 22487, 9952, - 19965, 22487, 9954, - 19965, 22487, 9956, - 19965, 22487, 9958, - 19965, 22487, 9960, - 19965, 22487, 10016, - 19965, 22487, 10018, - 19965, 22487, 10020, - 19965, 22487, 10022, - 19965, 22487, 10024, - 19965, 22487, 10026, - 19965, 22487, 10028, - 19965, 22487, 10030, - 19965, 22487, 10032, - 19965, 22487, 10034, - 19965, 22487, 10036, - 19965, 22487, 10038, - 19965, 22487, 10040, - 19965, 22487, 10042, - 19965, 22487, 10044, - 19965, 22487, 10046, - 19965, 22487, 10048, - 19965, 22487, 10050, - 19965, 22487, 10052, - 19965, 22487, 10054, - 19965, 22487, 10056, - 19965, 22487, 10058, - 19965, 22487, 10060, - 19965, 22487, 10062, - 19965, 22487, 10064, - 19965, 22487, 10066, - 19965, 22487, 10068, - 19965, 22487, 10070, - 19965, 22487, 10072, - 19965, 22487, 10262, - 19965, 22487, 10264, - 19965, 22487, 10266, - 19965, 22487, 10268, - 19965, 22487, 10270, - 19965, 22487, 10272, - 19965, 22487, 10274, - 19965, 22487, 10276, - 19965, 22487, 10278, - 19965, 22487, 10280, - 19965, 22487, 10282, - 19965, 22487, 10284, - 19965, 22487, 10286, - 19965, 22487, 10288, - 19965, 22487, 10290, - 19965, 22487, 10292, - 19965, 22487, 10294, - 19965, 22487, 10296, - 19965, 22487, 10298, - 19965, 22487, 10300, - 19965, 22487, 10302, - 19965, 22487, 10304, - 19965, 22487, 10306, - 19965, 22487, 10308, - 19965, 22487, 10310, - 19965, 22487, 10312, - 19965, 22487, 10314, - 19965, 22487, 10316, - 19965, 22487, 10318, - 19965, 22487, 10320, - 19965, 22487, 10322, - 19965, 22487, 10324, - 19965, 22487, 10326, - 19965, 22487, 10328, - 19965, 22487, 10330, - 19965, 22487, 10332, - 19965, 22487, 10334, - 19965, 22487, 10336, - 19965, 22487, 10338, - 19965, 22487, 10340, - 19965, 22487, 10342, - 19965, 22487, 10344, - 19965, 22487, 10346, - 19965, 22487, 10348, - 19965, 22487, 10350, - 19965, 22487, 10352, - 19965, 22487, 10760, - 19965, 22487, 10762, - 19965, 22487, 10764, - 19965, 22487, 10766, - 19965, 22487, 10768, - 19965, 22487, 10770, - 19965, 22487, 10772, - 19965, 22487, 10774, - 19965, 22487, 10776, - 19965, 22487, 10778, - 19965, 22487, 10780, - 19965, 22487, 10782, - 19965, 22487, 10784, - 19965, 22487, 10786, - 19965, 22487, 10788, - 19965, 22487, 10790, - 19965, 22487, 10792, - 19965, 22487, 10794, - 19965, 22487, 10796, - 19965, 22487, 10798, - 19965, 22487, 10800, - 19965, 22487, 10802, - 19965, 22487, 10804, - 19965, 22487, 10806, - 19965, 22487, 10808, - 19965, 22487, 10810, - 19965, 22487, 10812, - 19965, 22487, 10814, - 19965, 22487, 10816, - 19965, 22487, 10818, - 19965, 22487, 10820, - 19965, 22487, 10822, - 19965, 22487, 10824, - 19965, 22487, 10826, - 19965, 22487, 10828, - 19965, 22487, 10830, - 19965, 22487, 10863, 8361, 10574, - 19965, 22487, 11154, - 19965, 22487, 11156, - 19965, 22487, 11158, - 19965, 22487, 11160, - 19965, 22487, 11162, - 19965, 22487, 11164, - 19965, 22487, 11166, - 19965, 22487, 11168, - 19965, 22487, 11170, - 19965, 22487, 11172, - 19965, 22487, 11174, - 19965, 22487, 11176, - 19965, 22487, 11178, - 19965, 22487, 11180, - 19965, 22487, 11182, - 19965, 22487, 11184, - 19965, 22487, 11186, - 19965, 22487, 11188, - 19965, 22487, 11190, - 19965, 22487, 11192, - 19965, 22487, 11194, - 19965, 22487, 11196, - 19965, 22487, 11198, - 19965, 22487, 11200, - 19965, 22487, 11202, - 19965, 22487, 11204, - 19965, 22487, 11206, - 19965, 22487, 11208, - 19965, 22487, 11210, - 19965, 22487, 11212, - 19965, 22487, 11214, - 19965, 22487, 11216, - 19965, 22487, 11218, - 19965, 22487, 11220, - 19965, 22487, 11222, - 19965, 22487, 11224, - 19965, 22487, 11226, - 19965, 22487, 11228, - 19965, 22487, 11230, - 19965, 22487, 11232, - 19965, 22487, 11234, - 19965, 22487, 11236, - 19965, 22487, 11280, - 19965, 22487, 11282, - 19965, 22487, 11284, - 19965, 22487, 11286, - 19965, 22487, 11288, - 19965, 22487, 11290, - 19965, 22487, 11292, - 19965, 22487, 11294, - 19965, 22487, 11296, - 19965, 22487, 11298, - 19965, 22487, 11300, - 19965, 22487, 11302, - 19965, 22487, 11304, - 19965, 22487, 11306, - 19965, 22487, 11308, - 19965, 22487, 11310, - 19965, 22487, 11312, - 19965, 22487, 11314, - 19965, 22487, 11316, - 19965, 22487, 11318, - 19965, 22487, 11320, - 19965, 22487, 11322, - 19965, 22487, 11324, - 19965, 22487, 11326, - 19965, 22487, 11328, - 19965, 22487, 11330, - 19965, 22487, 11332, - 19965, 22487, 11334, - 19965, 22487, 11336, - 19965, 22487, 11338, - 19965, 22487, 11340, - 19965, 22487, 11342, - 19965, 22487, 11344, - 19965, 22487, 11346, - 19965, 22487, 11348, - 19965, 22487, 11350, - 19965, 22487, 11352, - 19965, 22487, 11354, - 19965, 22487, 11356, - 19965, 22487, 11358, - 19965, 22487, 11404, - 19965, 22487, 11406, - 19965, 22487, 11408, - 19965, 22487, 11410, - 19965, 22487, 11412, - 19965, 22487, 11414, - 19965, 22487, 11416, - 19965, 22487, 11418, - 19965, 22487, 11420, - 19965, 22487, 11422, - 19965, 22487, 11424, - 19965, 22487, 11426, - 19965, 22487, 11428, - 19965, 22487, 11430, - 19965, 22487, 11432, - 19965, 22487, 11434, - 19965, 22487, 11436, - 19965, 22487, 11438, - 19965, 22487, 11440, - 19965, 22487, 11442, - 19965, 22487, 11444, - 19965, 22487, 11446, - 19965, 22487, 11448, - 19965, 22487, 11450, - 19965, 22487, 11452, - 19965, 22487, 11503, 8361, 10574, - 19965, 22487, 11552, - 19965, 22487, 11554, - 19965, 22487, 11556, - 19965, 22487, 11558, - 19965, 22487, 11560, - 19965, 22487, 11562, - 19965, 22487, 11564, - 19965, 22487, 11566, - 19965, 22487, 11598, - 19965, 22487, 11600, - 19965, 22487, 11602, - 19965, 22487, 11604, - 19965, 22487, 11606, - 19965, 22487, 11608, - 19965, 22487, 11610, - 19965, 22487, 11612, - 19965, 22487, 11778, - 19965, 22487, 11780, - 19965, 22487, 11782, - 19965, 22487, 11784, - 19965, 22487, 11786, - 19965, 22487, 11788, - 19965, 22487, 11790, - 19965, 22487, 11792, - 19965, 22487, 11794, - 19965, 22487, 11796, - 19965, 22487, 11798, - 19965, 22487, 11800, - 19965, 22487, 11802, - 19965, 22487, 11804, - 19965, 22487, 11806, - 19965, 22487, 11808, - 19965, 22487, 11956, - 19965, 22487, 11958, - 19965, 22487, 11960, - 19965, 22487, 11964, - 19965, 22487, 11966, - 19965, 22487, 11972, - 19965, 22487, 11976, - 19965, 22487, 11980, - 19965, 22487, 11982, - 19965, 22487, 11984, - 19965, 22487, 12104, - 19965, 22487, 12106, - 19965, 22487, 12108, - 19965, 22487, 12110, - 19965, 22487, 12112, - 19965, 22487, 12114, - 19965, 22487, 12116, - 19965, 22487, 12118, - 19965, 22487, 12120, - 19965, 22487, 12122, - 19965, 22487, 12124, - 19965, 22487, 12126, - 19965, 22487, 12128, - 19965, 22487, 12130, - 19965, 22487, 12132, - 19965, 22487, 12134, - 19965, 22487, 12136, - 19965, 22487, 12138, - 19965, 22487, 12140, - 19965, 22487, 12142, - 19965, 22487, 12144, - 19965, 22487, 12146, - 19965, 22487, 12148, - 19965, 22487, 12150, - 19965, 22487, 12152, - 19965, 22487, 12154, - 19965, 22487, 12156, - 19965, 22487, 12158, - 19965, 22487, 12160, - 19965, 22487, 12162, - 19965, 22487, 12164, - 19965, 22487, 12166, - 19965, 22487, 12432, - 19965, 22487, 12497, 17555, 21364, - 19965, 22487, 12497, 19058, - 19965, 22487, 12497, 21364, - 19965, 22487, 12590, - 19965, 22487, 12592, - 19965, 22487, 12594, - 19965, 22487, 12596, - 19965, 22487, 12946, - 19965, 22487, 12948, - 19965, 22487, 12950, - 19965, 22487, 12952, - 19965, 22487, 12954, - 19965, 22487, 12956, - 19965, 22487, 12958, - 19965, 22487, 12960, - 19965, 22487, 12962, - 19965, 22487, 12964, - 19965, 22487, 12966, - 19965, 22487, 12968, - 19965, 22487, 12970, - 19965, 22487, 12972, - 19965, 22487, 12974, - 19965, 22487, 12976, - 19965, 22487, 12978, - 19965, 22487, 12980, - 19965, 22487, 12982, - 19965, 22487, 12984, - 19965, 22487, 12986, - 19965, 22487, 12988, - 19965, 22487, 12990, - 19965, 22487, 12992, - 19965, 22487, 12994, - 19965, 22487, 13122, - 19965, 22487, 13124, - 19965, 22487, 13126, - 19965, 22487, 13128, - 19965, 22487, 13130, - 19965, 22487, 13132, - 19965, 22487, 13134, - 19965, 22487, 13208, - 19965, 22487, 13210, - 19965, 22487, 13212, - 19965, 22487, 13214, - 19965, 22487, 13216, - 19965, 22487, 13218, - 19965, 22487, 13220, - 19965, 22487, 13222, - 19965, 22487, 13224, - 19965, 22487, 13226, - 19965, 22487, 13228, - 19965, 22487, 13230, - 19965, 22487, 13300, - 19965, 22487, 13302, - 19965, 22487, 13304, - 19965, 22487, 13306, - 19965, 22487, 13308, - 19965, 22487, 13310, - 19965, 22487, 13312, - 19965, 22487, 13314, - 19965, 22487, 13316, - 19965, 22487, 13318, - 19965, 22487, 13434, - 19965, 22487, 13568, - 19965, 22487, 13570, - 19965, 22487, 13572, - 19965, 22487, 13574, - 19965, 22487, 13750, - 19965, 22487, 13752, - 19965, 22487, 13852, - 19965, 22487, 13854, - 19965, 22487, 13856, - 19965, 22487, 13858, - 19965, 22487, 13860, - 19965, 22487, 13862, - 19965, 22487, 13864, - 19965, 22487, 13866, - 19965, 22487, 13868, - 19965, 22487, 13870, - 19965, 22487, 13872, - 19965, 22487, 13874, - 19965, 22487, 13876, - 19965, 22487, 13878, - 19965, 22487, 13880, - 19965, 22487, 13882, - 19965, 22487, 13884, - 19965, 22487, 13886, - 19965, 22487, 13888, - 19965, 22487, 13890, - 19965, 22487, 13892, - 19965, 22487, 13894, - 19965, 22487, 14056, - 19965, 22487, 14058, - 19965, 22487, 14060, - 19965, 22487, 14062, - 19965, 22487, 14064, - 19965, 22487, 14066, - 19965, 22487, 14068, - 19965, 22487, 14204, - 19965, 22487, 14206, - 19965, 22487, 14208, - 19965, 22487, 14210, - 19965, 22487, 14212, - 19965, 22487, 14214, - 19965, 22487, 14216, - 19965, 22487, 14218, - 19965, 22487, 14220, - 19965, 22487, 14222, - 19965, 22487, 14224, - 19965, 22487, 14226, - 19965, 22487, 14228, - 19965, 22487, 14230, - 19965, 22487, 14232, - 19965, 22487, 14234, - 19965, 22487, 14236, - 19965, 22487, 14238, - 19965, 22487, 14240, - 19965, 22487, 14242, - 19965, 22487, 14288, - 19965, 22487, 14290, - 19965, 22487, 14292, - 19965, 22487, 14294, - 19965, 22487, 14296, - 19965, 22487, 14298, - 19965, 22487, 14300, - 19965, 22487, 14302, - 19965, 22487, 14304, - 19965, 22487, 14306, - 19965, 22487, 14308, - 19965, 22487, 14310, - 19965, 22487, 14312, - 19965, 22487, 14314, - 19965, 22487, 14316, - 19965, 22487, 14318, - 19965, 22487, 14320, - 19965, 22487, 14322, - 19965, 22487, 14324, - 19965, 22487, 14326, - 19965, 22487, 14328, - 19965, 22487, 14330, - 19965, 22487, 14368, - 19965, 22487, 14370, - 19965, 22487, 14372, - 19965, 22487, 14374, - 19965, 22487, 14376, - 19965, 22487, 14378, - 19965, 22487, 14380, - 19965, 22487, 14382, - 19965, 22487, 14384, - 19965, 22487, 14386, - 19965, 22487, 14388, - 19965, 22487, 14390, - 19965, 22487, 14392, - 19965, 22487, 14394, - 19965, 22487, 14396, - 19965, 22487, 14398, - 19965, 22487, 14400, - 19965, 22487, 14402, - 19965, 22487, 14404, - 19965, 22487, 14406, - 19965, 22487, 14408, - 19965, 22487, 14410, - 19965, 22487, 14412, - 19965, 22487, 14414, - 19965, 22487, 14460, - 19965, 22487, 14462, - 19965, 22487, 14606, - 19965, 22487, 14608, - 19965, 22487, 14610, - 19965, 22487, 14612, - 19965, 22487, 14614, - 19965, 22487, 14704, - 19965, 22487, 14706, - 19965, 22487, 14708, - 19965, 22487, 14710, - 19965, 22487, 14712, - 19965, 22487, 14714, - 19965, 22487, 14716, - 19965, 22487, 14718, - 19965, 22487, 15028, - 19965, 22487, 15030, - 19965, 22487, 15032, - 19965, 22487, 15034, - 19965, 22487, 15036, - 19965, 22487, 15038, - 19965, 22487, 15040, - 19965, 22487, 15042, - 19965, 22487, 15262, - 19965, 22487, 15264, - 19965, 22487, 15266, - 19965, 22487, 15268, - 19965, 22487, 15270, - 19965, 22487, 15298, - 19965, 22487, 15300, - 19965, 22487, 15302, - 19965, 22487, 15304, - 19965, 22487, 15306, - 19965, 22487, 15308, - 19965, 22487, 15310, - 19965, 22487, 15312, - 19965, 22487, 15314, - 19965, 22487, 15316, - 19965, 22487, 15318, - 19965, 22487, 15320, - 19965, 22487, 15322, - 19965, 22487, 15324, - 19965, 22487, 15326, - 19965, 22487, 15328, - 19965, 22487, 15330, - 19965, 22487, 15332, - 19965, 22487, 15334, - 19965, 22487, 15336, - 19965, 22487, 15338, - 19965, 22487, 15340, - 19965, 22487, 15342, - 19965, 22487, 15344, - 19965, 22487, 15346, - 19965, 22487, 15348, - 19965, 22487, 15350, - 19965, 22487, 15352, - 19965, 22487, 15354, - 19965, 22487, 15356, - 19965, 22487, 15358, - 19965, 22487, 15360, - 19965, 22487, 15362, - 19965, 22487, 15364, - 19965, 22487, 15366, - 19965, 22487, 15368, - 19965, 22487, 15370, - 19965, 22487, 15372, - 19965, 22487, 15410, - 19965, 22487, 15412, - 19965, 22487, 15414, - 19965, 22487, 15416, - 19965, 22487, 15418, - 19965, 22487, 15420, - 19965, 22487, 15422, - 19965, 22487, 15486, - 19965, 22487, 15488, - 19965, 22487, 15490, - 19965, 22487, 15492, - 19965, 22487, 15502, - 19965, 22487, 15552, - 19965, 22487, 15554, - 19965, 22487, 15556, - 19965, 22487, 15558, - 19965, 22487, 15560, - 19965, 22487, 15562, - 19965, 22487, 15564, - 19965, 22487, 15566, - 19965, 22487, 15568, - 19965, 22487, 15570, - 19965, 22487, 15572, - 19965, 22487, 15574, - 19965, 22487, 15576, - 19965, 22487, 15578, - 19965, 22487, 15580, - 19965, 22487, 15582, - 19965, 22487, 15584, - 19965, 22487, 15586, - 19965, 22487, 15588, - 19965, 22487, 15590, - 19965, 22487, 15592, - 19965, 22487, 15594, - 19965, 22487, 15596, - 19965, 22487, 15598, - 19965, 22487, 15600, - 19965, 22487, 15658, - 19965, 22487, 15660, - 19965, 22487, 16381, 95, 3472, - 19965, 22487, 16381, 95, 3473, 1392, - 19965, 22487, 16381, 95, 3473, 14970, - 19965, 22487, 16381, 95, 15826, - 19965, 22487, 16381, 95, 15827, 1392, - 19965, 22487, 16381, 95, 15827, 14970, - 19965, 22487, 16381, 95, 16660, - 19965, 22487, 16671, 23866, - 19965, 22487, 16752, - 19965, 22487, 16754, - 19965, 22487, 16776, - 19965, 22487, 16778, - 19965, 22487, 16780, - 19965, 22487, 16782, - 19965, 22487, 18783, 16660, - 19965, 22487, 20319, 17958, - 19965, 22487, 20319, 17959, 95, 1392, - 19965, 22487, 20319, 17959, 95, 3472, - 19965, 22487, 20319, 17959, 95, 3473, 897, 1392, - 19965, 22487, 20319, 17959, 95, 3473, 1392, - 19965, 22487, 20319, 17959, 95, 3473, 14970, - 19965, 22487, 20319, 17959, 95, 3473, 14971, 897, 15827, 1392, - 19965, 22487, 20319, 17959, 95, 14970, - 19965, 22487, 20319, 17959, 95, 14971, 897, 3472, - 19965, 22487, 20319, 17959, 95, 14971, 897, 15826, - 19965, 22487, 20319, 17959, 95, 15826, - 19965, 22487, 20319, 17959, 95, 15827, 897, 1392, - 19965, 22487, 20319, 17959, 95, 15827, 1392, - 19965, 22487, 20319, 17959, 95, 15827, 14970, - 19965, 22487, 20319, 17959, 95, 15827, 14971, 897, 3473, 1392, - 19965, 22487, 20933, 16402, - 19965, 22487, 22495, 16402, - 19965, 28106, - 19965, 28108, - 19965, 28110, - 19965, 28112, - 19965, 28114, - 19965, 28116, - 19965, 28118, - 19965, 28120, - 19965, 28122, - 19965, 28124, - 19965, 28126, - 19965, 28128, - 19965, 28130, - 19965, 28132, - 19965, 28134, - 19965, 28136, - 19965, 28138, - 19965, 28140, - 19965, 28142, - 19965, 28144, - 19965, 28146, - 19965, 28148, - 19965, 28150, - 19965, 28152, - 19965, 28154, - 19965, 28156, - 19965, 28158, - 19965, 28160, - 19965, 28162, - 19965, 28164, - 19965, 28166, - 19965, 28168, - 19965, 28170, - 19965, 28172, - 19965, 28174, - 19965, 28176, - 19965, 28178, - 19965, 28180, - 19965, 28182, - 19965, 28184, - 19965, 28186, - 19965, 28188, - 19965, 28190, - 19965, 28192, - 19965, 28194, - 19965, 28196, - 19965, 28198, - 19965, 28200, - 19965, 28202, - 19965, 28204, - 19965, 28206, - 19965, 28208, - 19965, 28210, - 19965, 28212, - 19965, 28214, - 19965, 28216, - 19965, 28218, - 19965, 28220, - 19965, 28222, - 19965, 28224, - 19965, 28226, - 19965, 28228, - 19965, 28230, - 19965, 28232, - 19965, 28234, - 19965, 28236, - 19965, 28238, - 19965, 28240, - 19965, 28242, - 19965, 28244, - 19965, 28246, - 19965, 28248, - 19965, 28250, - 19965, 28252, - 19965, 28254, - 19965, 28256, - 19965, 28258, - 19965, 28260, - 19965, 28262, - 19965, 28264, - 19965, 28266, - 19965, 28268, - 19965, 28270, - 19965, 28272, - 19965, 28274, - 19965, 28276, - 19965, 28278, - 19965, 28280, - 19965, 28282, - 19965, 28284, - 19965, 28286, - 19965, 28288, - 19965, 28290, - 19965, 28292, - 19965, 28294, - 19965, 28296, - 19965, 28298, - 19965, 28300, - 19965, 28302, - 19965, 28304, - 19965, 28306, - 19965, 28308, - 19965, 28310, - 19965, 28312, - 19965, 28314, - 19965, 28316, - 19965, 28318, - 19965, 28320, - 19965, 28322, - 19965, 28324, - 19965, 28326, - 19965, 28328, - 19965, 28330, - 19965, 28332, - 19965, 28334, - 19965, 28336, - 19965, 28338, - 19965, 28340, - 19965, 28342, - 19965, 28344, - 19965, 28346, - 19965, 28348, - 19965, 28350, - 19965, 28352, - 19965, 28354, - 19965, 28356, - 19965, 28358, - 19965, 28360, - 19965, 28362, - 19965, 28364, - 19965, 28366, - 19965, 28368, - 19965, 28370, - 19965, 28372, - 19965, 28374, - 19965, 28376, - 19965, 28378, - 19965, 28380, - 19965, 28382, - 19965, 28384, - 19965, 28386, - 19965, 28388, - 19965, 28390, - 19965, 28392, - 19965, 28394, - 19965, 28396, - 19965, 28398, - 19965, 28400, - 19965, 28402, - 19965, 28404, - 19965, 28406, - 19965, 28408, - 19965, 28410, - 19965, 28412, - 19965, 28414, - 19965, 28416, - 19965, 28418, - 19965, 28420, - 19965, 28422, - 19965, 28424, - 19965, 28426, - 19965, 28428, - 19965, 28430, - 19965, 28432, - 19965, 28434, - 19965, 28436, - 19965, 28438, - 19965, 28440, - 19965, 28442, - 19965, 28444, - 19965, 28446, - 19965, 28448, - 19965, 28450, - 19965, 28452, - 19965, 28454, - 19965, 28456, - 19965, 28458, - 19965, 28460, - 19965, 28462, - 19965, 28464, - 19965, 28466, - 19965, 28468, - 19965, 28470, - 19965, 28472, - 19965, 28474, - 19965, 28476, - 19965, 28478, - 19965, 28480, - 19965, 28482, - 19965, 28484, - 19965, 28486, - 19965, 28488, - 19965, 28490, - 19965, 28492, - 19965, 28494, - 19965, 28496, - 19965, 28498, - 19965, 28500, - 19965, 28502, - 19965, 28504, - 19965, 28506, - 19965, 28508, - 19965, 28510, - 19965, 28512, - 19965, 28514, - 19965, 28516, - 19965, 28518, - 19965, 28520, - 19965, 28522, - 19965, 28524, - 19965, 28526, - 19965, 28528, - 19965, 28530, - 19965, 28532, - 19965, 28534, - 19965, 28536, - 19965, 28538, - 19965, 28540, - 19965, 28542, - 19965, 28544, - 19965, 28546, - 19965, 28548, - 19965, 28550, - 19965, 28552, - 19965, 28554, - 19965, 28556, - 19965, 28558, - 19965, 28560, - 19965, 28562, - 19965, 28564, - 19965, 28566, - 19965, 28568, - 19965, 28570, - 19965, 28572, - 19965, 28574, - 19965, 28576, - 19965, 28578, - 19965, 28580, - 19965, 28582, - 19965, 28584, - 19965, 28586, - 19965, 28588, - 19965, 28590, - 19965, 28592, - 19965, 28594, - 19965, 28596, - 19965, 28598, - 19965, 28600, - 19965, 28602, - 19965, 28604, - 19965, 28606, - 19965, 28608, - 19965, 28610, - 19965, 28612, - 19965, 28614, - 19965, 28616, - 19965, 28618, - 19965, 28620, - 19965, 28622, - 19965, 28624, - 19965, 28626, - 19965, 28628, - 19965, 28630, - 19965, 28632, - 19965, 28634, - 19965, 28636, - 19965, 28638, - 19965, 28640, - 19965, 28642, - 19965, 28644, - 19965, 28646, - 19965, 28648, - 19965, 28650, - 19965, 28652, - 19965, 28654, - 19965, 28656, - 19965, 28658, - 19965, 28660, - 19965, 28662, - 19965, 28664, - 19965, 28666, - 19965, 28668, - 19965, 28670, - 19965, 28672, - 19965, 28674, - 19965, 28676, - 19965, 28678, - 19965, 28680, - 19965, 28682, - 19965, 28684, - 19965, 28686, - 19965, 28688, - 19965, 28690, - 19965, 28692, - 19965, 28694, - 19965, 28696, - 19965, 28698, - 19965, 28700, - 19965, 28702, - 19965, 28704, - 19965, 28706, - 19965, 28708, - 19965, 28710, - 19965, 28712, - 19965, 28714, - 19965, 28716, - 19965, 28718, - 19965, 28720, - 19965, 28722, - 19965, 28724, - 19965, 28726, - 19965, 28728, - 19965, 28730, - 19965, 28732, - 19965, 28734, - 19965, 28736, - 19965, 28738, - 19965, 28740, - 19965, 28742, - 19965, 28744, - 19965, 28746, - 19965, 28748, - 19965, 28750, - 19965, 28752, - 19965, 28754, - 19965, 28756, - 19965, 28758, - 19965, 28760, - 19965, 28762, - 19965, 28764, - 19965, 28766, - 19965, 28768, - 19965, 28770, - 19965, 28772, - 19965, 28774, - 19965, 28776, - 19965, 28778, - 19965, 28780, - 19965, 28782, - 19965, 28784, - 19965, 28786, - 19965, 28788, - 19965, 28790, - 19965, 28792, - 19965, 28794, - 19965, 28796, - 19965, 28798, - 19965, 28800, - 19965, 28802, - 19965, 28804, - 19965, 28806, - 19965, 28808, - 19965, 28810, - 19965, 28812, - 19965, 28814, - 19965, 28816, - 19965, 28818, - 19965, 28820, - 19965, 28822, - 19965, 28824, - 19965, 28826, - 19965, 28828, - 19965, 28830, - 19965, 28832, - 19965, 28834, - 19965, 28836, - 19965, 28838, - 19965, 28840, - 19965, 28842, - 19965, 28844, - 19965, 28846, - 19965, 28848, - 19965, 28850, - 19965, 28852, - 19965, 28854, - 19965, 28856, - 19965, 28858, - 19965, 28860, - 19965, 28862, - 19965, 28864, - 19965, 28866, - 19965, 28868, - 19965, 28870, - 19965, 28872, - 19965, 28874, - 19965, 28876, - 19965, 28878, - 19965, 28880, - 19965, 28882, - 19965, 28884, - 19965, 28886, - 19965, 28888, - 19965, 28890, - 19965, 28892, - 19965, 28894, - 19965, 28896, - 19965, 28898, - 19965, 28900, - 19965, 28902, - 19965, 28904, - 19965, 28906, - 19965, 28908, - 19965, 28910, - 19965, 28912, - 19965, 28914, - 19965, 28916, - 19965, 28918, - 19965, 28920, - 19965, 28922, - 19965, 28924, - 19965, 28926, - 19965, 28928, - 19965, 28930, - 19965, 28932, - 19965, 28934, - 19965, 28936, - 19965, 28938, - 19965, 28940, - 19965, 28942, - 19965, 28944, - 19965, 28946, - 19965, 28948, - 19965, 28950, - 19965, 28952, - 19965, 28954, - 19965, 28956, - 19965, 28958, - 19965, 28960, - 19965, 28962, - 19965, 28964, - 19965, 28966, - 19965, 28968, - 19965, 28970, - 19965, 28972, - 19965, 28974, - 19965, 28976, - 19965, 28978, - 19965, 28980, - 19965, 28982, - 19965, 28984, - 19965, 28986, - 19965, 28988, - 19965, 28990, - 19965, 28992, - 19965, 28994, - 19965, 28996, - 19965, 28998, - 19965, 29000, - 19965, 29002, - 19965, 29004, - 19965, 29006, - 19965, 29008, - 19965, 29010, - 19965, 29012, - 19965, 29014, - 19965, 29016, - 19965, 29018, - 19965, 29020, - 19965, 29022, - 19965, 29024, - 19965, 29026, - 19965, 29028, - 19965, 29030, - 19965, 29032, - 19965, 29034, - 19965, 29036, - 19965, 29038, - 19965, 29040, - 19965, 29042, - 19965, 29044, - 19965, 29046, - 19965, 29048, - 19965, 29050, - 19965, 29052, - 19965, 29054, - 19965, 29056, - 19965, 29058, - 19965, 29060, - 19965, 29062, - 19965, 29064, - 19965, 29066, - 19965, 29068, - 19965, 29070, - 19965, 29072, - 19965, 29074, - 19965, 29076, - 19965, 29078, - 19965, 29080, - 19965, 29082, - 19965, 29084, - 19965, 29086, - 19965, 29088, - 19965, 29090, - 19965, 29092, - 19965, 29094, - 19965, 29096, - 19965, 29098, - 19965, 29100, - 19965, 29102, - 19965, 29104, - 19965, 29106, - 19965, 29108, - 19965, 29110, - 19965, 29112, - 19965, 29114, - 19965, 29116, - 19965, 29118, - 19965, 29120, - 19965, 29122, - 19965, 29124, - 19965, 29126, - 19965, 29128, - 19965, 29130, - 19965, 29132, - 19965, 29134, - 19965, 29136, - 19965, 29138, - 19965, 29140, - 19965, 29142, - 19965, 29144, - 19965, 29146, - 19965, 29148, - 19965, 29150, - 19965, 29152, - 19965, 29154, - 19965, 29156, - 19965, 29158, - 19965, 29160, - 19965, 29162, - 19965, 29164, - 19965, 29166, - 19965, 29168, - 19965, 29170, - 19965, 29172, - 19965, 29174, - 19965, 29176, - 19965, 29178, - 19965, 29180, - 19965, 29182, - 19965, 29184, - 19965, 29186, - 19965, 29188, - 19965, 29190, - 19965, 29192, - 19965, 29194, - 19965, 29196, - 19965, 29198, - 19965, 29200, - 19965, 29202, - 19965, 29204, - 19965, 29206, - 19965, 29208, - 19965, 29210, - 19965, 29212, - 19965, 29214, - 19965, 29216, - 19965, 29218, - 19965, 29220, - 19965, 29222, - 19965, 29224, - 19965, 29226, - 19965, 29228, - 19965, 29230, - 19965, 29232, - 19965, 29234, - 19965, 29236, - 19965, 29238, - 19965, 29240, - 19965, 29242, - 19965, 29244, - 19965, 29246, - 19965, 29248, - 19965, 29250, - 19965, 29252, - 19965, 29254, - 19965, 29256, - 19965, 29258, - 19965, 29260, - 19965, 29262, - 19965, 29264, - 19965, 29266, - 19965, 29268, - 19965, 29270, - 19965, 29272, - 19965, 29274, - 19965, 29276, - 19965, 29278, - 19965, 29280, - 19965, 29282, - 19965, 29284, - 19965, 29286, - 19965, 29288, - 19965, 29290, - 19965, 29292, - 19965, 29294, - 19965, 29296, - 19965, 29298, - 19965, 29300, - 19965, 29302, - 19965, 29304, - 19965, 29306, - 19965, 29308, - 19965, 29310, - 19965, 29312, - 19965, 29314, - 19965, 29316, - 19965, 29318, - 19965, 29320, - 19965, 29322, - 19965, 29324, - 19965, 29326, - 19965, 29328, - 19965, 29330, - 19965, 29332, - 19965, 29334, - 19965, 29336, - 19965, 29338, - 19965, 29340, - 19965, 29342, - 19965, 29344, - 19965, 29346, - 19965, 29348, - 19965, 29350, - 19965, 29352, - 19965, 29354, - 19965, 29356, - 19965, 29358, - 19965, 29360, - 19965, 29362, - 19965, 29364, - 19965, 29366, - 19965, 29368, - 19965, 29370, - 19965, 29372, - 19965, 29374, - 19965, 29376, - 19965, 29378, - 19965, 29380, - 19965, 29382, - 19965, 29384, - 19965, 29386, - 19965, 29388, - 19965, 29390, - 19965, 29392, - 19965, 29394, - 19965, 29396, - 19965, 29398, - 19965, 29400, - 19965, 29402, - 19965, 29404, - 19965, 29406, - 19965, 29408, - 19965, 29410, - 19965, 29412, - 19965, 29414, - 19965, 29416, - 19965, 29418, - 19965, 29420, - 19965, 29422, - 19965, 29424, - 19965, 29426, - 19965, 29428, - 19965, 29430, - 19965, 29432, - 19965, 29434, - 19965, 29436, - 19965, 29438, - 19965, 29440, - 19965, 29442, - 19965, 29444, - 19965, 29446, - 19965, 29448, - 19965, 29450, - 19965, 29452, - 19965, 29454, - 19965, 29456, - 19965, 29458, - 19965, 29460, - 19965, 29462, - 19965, 29464, - 19965, 29466, - 19965, 29468, - 19965, 29470, - 19965, 29472, - 19965, 29474, - 19965, 29476, - 19965, 29478, - 19965, 29480, - 19965, 29482, - 19965, 29484, - 19965, 29486, - 19965, 29488, - 19965, 29490, - 19965, 29492, - 19965, 29494, - 19965, 29496, - 19965, 29498, - 19965, 29500, - 19965, 29502, - 19965, 29504, - 19965, 29506, - 19965, 29508, - 19965, 29510, - 19965, 29512, - 19965, 29514, - 19965, 29516, - 19965, 29518, - 19965, 29520, - 19965, 29522, - 19965, 29524, - 19965, 29526, - 19965, 29528, - 19965, 29530, - 19965, 29532, - 19965, 29534, - 19965, 29536, - 19965, 29538, - 19965, 29540, - 19965, 29542, - 19965, 29544, - 19965, 29546, - 19965, 29548, - 19965, 29550, - 19965, 29552, - 19965, 29554, - 19965, 29556, - 19965, 29558, - 19965, 29560, - 19965, 29562, - 19965, 29564, - 19965, 29566, - 19965, 29568, - 19965, 29570, - 19965, 29572, - 19965, 29574, - 19965, 29576, - 19965, 29578, - 19965, 29580, - 19965, 29582, - 19965, 29584, - 19965, 29586, - 19965, 29588, - 19965, 29590, - 19965, 29592, - 19965, 29594, - 19965, 29596, - 19965, 29598, - 19965, 29600, - 19965, 29602, - 19965, 29604, - 19965, 29606, - 19965, 29608, - 19965, 29610, - 19965, 29612, - 19965, 29614, - 19965, 29616, - 19965, 29618, - 19965, 29620, - 19965, 29622, - 19965, 29624, - 19965, 29626, - 19965, 29628, - 19965, 29630, - 19965, 29632, - 19965, 29634, - 19965, 29636, - 19965, 29638, - 19965, 29640, - 19965, 29642, - 19965, 29644, - 19965, 29646, - 19965, 29648, - 19965, 29650, - 19965, 29652, - 19965, 29654, - 19965, 29656, - 19965, 29658, - 19965, 29660, - 19965, 29662, - 19965, 29664, - 19965, 29666, - 19965, 29668, - 19965, 29670, - 19965, 29672, - 19965, 29674, - 19965, 29676, - 19965, 29678, - 19965, 29680, - 19965, 29682, - 19965, 29684, - 19965, 29686, - 19965, 29688, - 19965, 29690, - 19965, 29692, - 19965, 29694, - 19965, 29696, - 19965, 29698, - 19965, 29700, - 19965, 29702, - 19965, 29704, - 19965, 29706, - 19965, 29708, - 19965, 29710, - 19965, 29712, - 19965, 29714, - 19965, 29716, - 19965, 29718, - 19965, 29720, - 19965, 29722, - 19965, 29724, - 19965, 29726, - 19965, 29728, - 19965, 29730, - 19965, 29732, - 19965, 29734, - 19965, 29736, - 19965, 29738, - 19965, 29740, - 19965, 29742, - 19965, 29744, - 19965, 29746, - 19965, 29748, - 19965, 29750, - 19965, 29752, - 19965, 29754, - 19965, 29756, - 19965, 29758, - 19965, 29760, - 19965, 29762, - 19965, 29764, - 19965, 29766, - 19965, 29768, - 19965, 29770, - 19965, 29772, - 19965, 29774, - 19965, 29776, - 19965, 29778, - 19965, 29780, - 19965, 29782, - 19965, 29784, - 19965, 29786, - 19965, 29788, - 19965, 29790, - 19965, 29792, - 19965, 29794, - 19965, 29796, - 19965, 29798, - 19965, 29800, - 19965, 29802, - 19965, 29804, - 19965, 29806, - 19965, 29808, - 19965, 29810, - 19965, 29812, - 19965, 29814, - 19965, 29816, - 19965, 29818, - 19965, 29820, - 19965, 29822, - 19965, 29824, - 19965, 29826, - 19965, 29828, - 19965, 29830, - 19965, 29832, - 19965, 29834, - 19965, 29836, - 19965, 29838, - 19965, 29840, - 19965, 29842, - 19965, 29844, - 19965, 29846, - 19965, 29848, - 19965, 29850, - 19965, 29852, - 19965, 29854, - 19965, 29856, - 19965, 29858, - 19965, 29860, - 19965, 29862, - 19965, 29864, - 19965, 29866, - 19965, 29868, - 19965, 29870, - 19965, 29872, - 19965, 29874, - 19965, 29876, - 19965, 29878, - 19965, 29880, - 19965, 29882, - 19965, 29884, - 19965, 29886, - 19965, 29888, - 19965, 29890, - 19965, 29892, - 19965, 29894, - 19965, 29896, - 19965, 29898, - 19965, 29900, - 19965, 29902, - 19965, 29904, - 19965, 29906, - 19965, 29908, - 19965, 29910, - 19965, 29912, - 19965, 29914, - 19965, 29916, - 19965, 29918, - 19965, 29920, - 19965, 29922, - 19965, 29924, - 19965, 29926, - 19965, 29928, - 19965, 29930, - 19965, 29932, - 19965, 29934, - 19965, 29936, - 19965, 29938, - 19965, 29940, - 19965, 29942, - 19965, 29944, - 19965, 29946, - 19965, 29948, - 19965, 29950, - 19965, 29952, - 19965, 29954, - 19965, 29956, - 19965, 29958, - 19965, 29960, - 19965, 29962, - 19965, 29964, - 19965, 29966, - 19965, 29968, - 19965, 29970, - 19965, 29972, - 19965, 29974, - 19965, 29976, - 19965, 29978, - 19965, 29980, - 19965, 29982, - 19965, 29984, - 19965, 29986, - 19965, 29988, - 19965, 29990, - 19965, 29992, - 19965, 29994, - 19965, 29996, - 19965, 29998, - 19965, 30000, - 19965, 30002, - 19965, 30004, - 19965, 30006, - 19965, 30008, - 19965, 30010, - 19965, 30012, - 19965, 30014, - 19965, 30016, - 19965, 30018, - 19965, 30020, - 19965, 30022, - 19965, 30024, - 19965, 30026, - 19965, 30028, - 19965, 30030, - 19965, 30032, - 19965, 30034, - 19965, 30036, - 19965, 30038, - 19965, 30040, - 19965, 30042, - 19965, 30044, - 19965, 30046, - 19965, 30048, - 19965, 30050, - 19965, 30052, - 19965, 30054, - 19965, 30056, - 19965, 30058, - 19965, 30060, - 19965, 30062, - 19965, 30064, - 19965, 30066, - 19965, 30068, - 19965, 30070, - 19965, 30072, - 19965, 30074, - 19965, 30076, - 19965, 30078, - 19965, 30080, - 19965, 30082, - 19965, 30084, - 19965, 30086, - 19965, 30088, - 19965, 30090, - 19965, 30092, - 19965, 30094, - 19965, 30096, - 19965, 30098, - 19965, 30100, - 19965, 30102, - 19965, 30104, - 19965, 30106, - 19965, 30108, - 19965, 30110, - 19965, 30112, - 19965, 30114, - 19965, 30116, - 19965, 30118, - 19965, 30120, - 19965, 30122, - 19965, 30124, - 19965, 30126, - 19965, 30128, - 19965, 30130, - 19965, 30132, - 19965, 30134, - 19965, 30136, - 19965, 30138, - 19965, 30140, - 19965, 30142, - 19965, 30144, - 19965, 30146, - 19965, 30148, - 19965, 30150, - 19965, 30152, - 19965, 30154, - 19965, 30156, - 19965, 30158, - 19965, 30160, - 19965, 30162, - 19965, 30164, - 19965, 30166, - 19965, 30168, - 19965, 30170, - 19965, 30172, - 19965, 30174, - 19965, 30176, - 19965, 30178, - 19965, 30180, - 19965, 30182, - 19965, 30184, - 19965, 30186, - 19965, 30188, - 19965, 30190, - 19965, 30192, - 19965, 30194, - 19965, 30196, - 19965, 30198, - 19965, 30200, - 19965, 30202, - 19965, 30204, - 19965, 30206, - 19965, 30208, - 19965, 30210, - 19965, 30212, - 19965, 30214, - 19965, 30216, - 19965, 30218, - 19965, 30220, - 19965, 30222, - 19965, 30224, - 19965, 30226, - 19965, 30228, - 19965, 30230, - 19965, 30232, - 19965, 30234, - 19965, 30236, - 19965, 30238, - 19965, 30240, - 19965, 30242, - 19965, 30244, - 19965, 30246, - 19965, 30248, - 19965, 30250, - 19965, 30252, - 19965, 30254, - 19965, 30256, - 19965, 30258, - 19965, 30260, - 19965, 30262, - 19965, 30264, - 19965, 30266, - 19965, 30268, - 19965, 30270, - 19965, 30272, - 19965, 30274, - 19965, 30276, - 19965, 30278, - 19965, 30280, - 19965, 30282, - 19965, 30284, - 19965, 30286, - 19965, 30288, - 19965, 30290, - 19965, 30292, - 19965, 30294, - 19965, 30296, - 19965, 30298, - 19965, 30300, - 19965, 30302, - 19965, 30304, - 19965, 30306, - 19965, 30308, - 19965, 30310, - 19965, 30312, - 19965, 30314, - 19965, 30316, - 19965, 30318, - 19965, 30320, - 19965, 30322, - 19965, 30324, - 19965, 30326, - 19965, 30328, - 19965, 30330, - 19965, 30332, - 19965, 30334, - 19965, 30336, - 19965, 30338, - 19965, 30340, - 19965, 30342, - 19965, 30344, - 19965, 30346, - 19965, 30348, - 19965, 30350, - 19965, 30352, - 19965, 30354, - 19965, 30356, - 19965, 30358, - 19965, 30360, - 19965, 30362, - 19965, 30364, - 19965, 30366, - 19965, 30368, - 19965, 30370, - 19965, 30372, - 19965, 30374, - 19965, 30376, - 19965, 30378, - 19965, 30380, - 19965, 30382, - 19965, 30384, - 19965, 30386, - 19965, 30388, - 19965, 30390, - 19965, 30392, - 19965, 30394, - 19965, 30396, - 19965, 30398, - 19965, 30400, - 19965, 30402, - 19965, 30404, - 19965, 30406, - 19965, 30408, - 19965, 30410, - 19965, 30412, - 19965, 30414, - 19965, 30416, - 19965, 30418, - 19965, 30420, - 19965, 30422, - 19965, 30424, - 19965, 30426, - 19965, 30428, - 19965, 30430, - 19965, 30432, - 19965, 30434, - 19965, 30436, - 19965, 30438, - 19965, 30440, - 19965, 30442, - 19965, 30444, - 19965, 30446, - 19965, 30448, - 19965, 30450, - 19965, 30452, - 19965, 30454, - 19965, 30456, - 19965, 30458, - 19965, 30460, - 19965, 30462, - 19965, 30464, - 19965, 30466, - 19965, 30468, - 19965, 30470, - 19965, 30472, - 19965, 30474, - 19965, 30476, - 19965, 30478, - 19965, 30480, - 19965, 30482, - 19965, 30484, - 19965, 30486, - 19965, 30488, - 19965, 30490, - 19965, 30492, - 19965, 30494, - 19965, 30496, - 19965, 30498, - 19965, 30500, - 19965, 30502, - 19965, 30504, - 19965, 30506, - 19965, 30508, - 19965, 30510, - 19965, 30512, - 19965, 30514, - 19965, 30516, - 19965, 30518, - 19965, 30520, - 19965, 30522, - 19965, 30524, - 19965, 30526, - 19965, 30528, - 19965, 30530, - 19965, 30532, - 19965, 30534, - 19965, 30536, - 19965, 30538, - 19965, 30540, - 19965, 30542, - 19965, 30544, - 19965, 30546, - 19965, 30548, - 19965, 30550, - 19965, 30552, - 19965, 30554, - 19965, 30556, - 19965, 30558, - 19965, 30560, - 19965, 30562, - 19965, 30564, - 19965, 30566, - 19965, 30568, - 19965, 30570, - 19965, 30572, - 19965, 30574, - 19965, 30576, - 19965, 30578, - 19965, 30580, - 19965, 30582, - 19965, 30584, - 19965, 30586, - 19965, 30588, - 19965, 30590, - 19965, 30592, - 19965, 30594, - 19965, 30596, - 19965, 30598, - 19965, 30600, - 19965, 30602, - 19965, 30604, - 19965, 30606, - 19965, 30608, - 19965, 30610, - 19965, 30612, - 19965, 30614, - 19965, 30616, - 19965, 30618, - 19965, 30620, - 19965, 30622, - 19965, 30624, - 19965, 30626, - 19965, 30628, - 19965, 30630, - 19965, 30632, - 19965, 30634, - 19965, 30636, - 19965, 30638, - 19965, 30640, - 19965, 30642, - 19965, 30644, - 19965, 30646, - 19965, 30648, - 19965, 30650, - 19965, 30652, - 19965, 30654, - 19965, 30656, - 19965, 30658, - 19965, 30660, - 19965, 30662, - 19965, 30664, - 19965, 30666, - 19965, 30668, - 19965, 30670, - 19965, 30672, - 19965, 30674, - 19965, 30676, - 19965, 30678, - 19965, 30680, - 19965, 30682, - 19965, 30684, - 19965, 30686, - 19965, 30688, - 19965, 30690, - 19965, 30692, - 19965, 30694, - 19965, 30696, - 19965, 30698, - 19965, 30700, - 19965, 30702, - 19965, 30704, - 19965, 30706, - 19965, 30708, - 19965, 30710, - 19965, 30712, - 19965, 30714, - 19965, 30716, - 19965, 30718, - 19965, 30720, - 19965, 30722, - 19965, 30724, - 19965, 30726, - 19965, 30728, - 19965, 30730, - 19965, 30732, - 19965, 30734, - 19965, 30736, - 19965, 30738, - 19965, 30740, - 19965, 30742, - 19965, 30744, - 19965, 30746, - 19965, 30748, - 19965, 30750, - 19965, 30752, - 19965, 30754, - 19965, 30756, - 19965, 30758, - 19965, 30760, - 19965, 30762, - 19965, 30764, - 19965, 30766, - 19965, 30768, - 19965, 30770, - 19965, 30772, - 19965, 30774, - 19965, 30776, - 19965, 30778, - 19965, 30780, - 19965, 30782, - 19965, 30784, - 19965, 30786, - 19965, 30788, - 19965, 30790, - 19965, 30792, - 19965, 30794, - 19965, 30796, - 19965, 30798, - 19965, 30800, - 19965, 30802, - 19965, 30804, - 19965, 30806, - 19965, 30808, - 19965, 30810, - 19965, 30812, - 19965, 30814, - 19965, 30816, - 19965, 30818, - 19965, 30820, - 19965, 30822, - 19965, 30824, - 19965, 30826, - 19965, 30828, - 19965, 30830, - 19965, 30832, - 19965, 30834, - 19965, 30836, - 19965, 30838, - 19965, 30840, - 19965, 30842, - 19965, 30844, - 19965, 30846, - 19965, 30848, - 19965, 30850, - 19965, 30852, - 19965, 30854, - 19965, 30856, - 19965, 30858, - 19965, 30860, - 19965, 30862, - 19965, 30864, - 19965, 30866, - 19965, 30868, - 19965, 30870, - 19965, 30872, - 19965, 30874, - 19965, 30876, - 19965, 30878, - 19965, 30880, - 19965, 30882, - 19965, 30884, - 19965, 30886, - 19965, 30888, - 19965, 30890, - 19965, 30892, - 19965, 30894, - 19965, 30896, - 19965, 30898, - 19965, 30900, - 19965, 30902, - 19965, 30904, - 19965, 30906, - 19965, 30908, - 19965, 30910, - 19965, 30912, - 19965, 30914, - 19965, 30916, - 19965, 30918, - 19965, 30920, - 19965, 30922, - 19965, 30924, - 19965, 30926, - 19965, 30928, - 19965, 30930, - 19965, 30932, - 19965, 30934, - 19965, 30936, - 19965, 30938, - 19965, 30940, - 19965, 30942, - 19965, 30944, - 19965, 30946, - 19965, 30948, - 19965, 30950, - 19965, 30952, - 19965, 30954, - 19965, 30956, - 19965, 30958, - 19965, 30960, - 19965, 30962, - 19965, 30964, - 19965, 30966, - 19965, 30968, - 19965, 30970, - 19965, 30972, - 19965, 30974, - 19965, 30976, - 19965, 30978, - 19965, 30980, - 19965, 30982, - 19965, 30984, - 19965, 30986, - 19965, 30988, - 19965, 30990, - 19965, 30992, - 19965, 30994, - 19965, 30996, - 19965, 30998, - 19965, 31000, - 19965, 31002, - 19965, 31004, - 19965, 31006, - 19965, 31008, - 19965, 31010, - 19965, 31012, - 19965, 31014, - 19965, 31016, - 19965, 31018, - 19965, 31020, - 19965, 31022, - 19965, 31024, - 19965, 31026, - 19965, 31028, - 19965, 31030, - 19965, 31032, - 19965, 31034, - 19965, 31036, - 19965, 31038, - 19965, 31040, - 19965, 31042, - 19965, 31044, - 19965, 31046, - 19965, 31048, - 19965, 31050, - 19965, 31052, - 19965, 31054, - 19965, 31056, - 19965, 31058, - 19965, 31060, - 19965, 31062, - 19965, 31064, - 19965, 31066, - 19965, 31068, - 19965, 31070, - 19965, 31072, - 19965, 31074, - 19965, 31076, - 19965, 31078, - 19965, 31080, - 19965, 31082, - 19965, 31084, - 19965, 31086, - 19965, 31088, - 19965, 31090, - 19965, 31092, - 19965, 31094, - 19965, 31096, - 19965, 31098, - 19965, 31100, - 19965, 31102, - 19965, 31104, - 19965, 31106, - 19965, 31108, - 19965, 31110, - 19965, 31112, - 19965, 31114, - 19965, 31116, - 19965, 31118, - 19965, 31120, - 19965, 31122, - 19965, 31124, - 19965, 31126, - 19965, 31128, - 19965, 31130, - 19965, 31132, - 19965, 31134, - 19965, 31136, - 19965, 31138, - 19965, 31140, - 19965, 31142, - 19965, 31144, - 19965, 31146, - 19965, 31148, - 19965, 31150, - 19965, 31152, - 19965, 31154, - 19965, 31156, - 19965, 31158, - 19965, 31160, - 19965, 31162, - 19965, 31164, - 19965, 31166, - 19965, 31168, - 19965, 31170, - 19965, 31172, - 19965, 31174, - 19965, 31176, - 19965, 31178, - 19965, 31180, - 19965, 31182, - 19965, 31184, - 19965, 31186, - 19965, 31188, - 19965, 31190, - 19965, 31192, - 19965, 31194, - 19965, 31196, - 19965, 31198, - 19965, 31200, - 19965, 31202, - 19965, 31204, - 19965, 31206, - 19965, 31208, - 19965, 31210, - 19965, 31212, - 19965, 31214, - 19965, 31216, - 19965, 31218, - 19965, 31220, - 19965, 31222, - 19965, 31224, - 19965, 31226, - 19965, 31228, - 19965, 31230, - 19965, 31232, - 19965, 31234, - 19965, 31236, - 19965, 31238, - 19965, 31240, - 19965, 31242, - 19965, 31244, - 19965, 31246, - 19965, 31248, - 19965, 31250, - 19965, 31252, - 19965, 31254, - 19965, 31256, - 19965, 31258, - 19965, 31260, - 19965, 31262, - 19965, 31264, - 19965, 31266, - 19965, 31268, - 19965, 31270, - 19965, 31272, - 19965, 31274, - 19965, 31276, - 19965, 31278, - 19965, 31280, - 19965, 31282, - 19965, 31284, - 19965, 31286, - 19965, 31288, - 19965, 31290, - 19965, 31292, - 19965, 31294, - 19965, 31296, - 19965, 31298, - 19965, 31300, - 19965, 31302, - 19965, 31304, - 19965, 31306, - 19965, 31308, - 19965, 31310, - 19965, 31312, - 19965, 31314, - 19965, 31316, - 19965, 31318, - 19965, 31320, - 19965, 31322, - 19965, 31324, - 19965, 31326, - 19965, 31328, - 19965, 31330, - 19965, 31332, - 19965, 31334, - 19965, 31336, - 19965, 31338, - 19965, 31340, - 19965, 31342, - 19965, 31344, - 19965, 31346, - 19965, 31348, - 19965, 31350, - 19965, 31352, - 19965, 31354, - 19965, 31356, - 19965, 31358, - 19965, 31360, - 19965, 31362, - 19965, 31364, - 19965, 31366, - 19965, 31368, - 19965, 31370, - 19965, 31372, - 19965, 31374, - 19965, 31376, - 19965, 31378, - 19965, 31380, - 19965, 31382, - 19965, 31384, - 19965, 31386, - 19965, 31388, - 19965, 31390, - 19965, 31392, - 19965, 31394, - 19965, 31396, - 19965, 31398, - 19965, 31400, - 19965, 31402, - 19965, 31404, - 19965, 31406, - 19965, 31408, - 19965, 31410, - 19965, 31412, - 19965, 31414, - 19965, 31416, - 19965, 31418, - 19965, 31420, - 19965, 31422, - 19965, 31424, - 19965, 31426, - 19965, 31428, - 19965, 31430, - 19965, 31432, - 19965, 31434, - 19965, 31436, - 19965, 31438, - 19965, 31440, - 19965, 31442, - 19965, 31444, - 19965, 31446, - 19965, 31448, - 19965, 31450, - 19965, 31452, - 19965, 31454, - 19965, 31456, - 19965, 31458, - 19965, 31460, - 19965, 31462, - 19965, 31464, - 19965, 31466, - 19965, 31468, - 19965, 31470, - 19965, 31472, - 19965, 31474, - 19965, 31476, - 19965, 31478, - 19965, 31480, - 19965, 31482, - 19965, 31484, - 19965, 31486, - 19965, 31488, - 19965, 31490, - 19965, 31492, - 19965, 31494, - 19965, 31496, - 19965, 31498, - 19965, 31500, - 19965, 31502, - 19965, 31504, - 19965, 31506, - 19965, 31508, - 19965, 31510, - 19965, 31512, - 19965, 31514, - 19965, 31516, - 19965, 31518, - 19965, 31520, - 19965, 31522, - 19965, 31524, - 19965, 31526, - 19965, 31528, - 19965, 31530, - 19965, 31532, - 19965, 31534, - 19965, 31536, - 19965, 31538, - 19965, 31540, - 19965, 31542, - 19965, 31544, - 19965, 31546, - 19965, 31548, - 19965, 31550, - 19965, 31552, - 19965, 31554, - 19965, 31556, - 19965, 31558, - 19965, 31560, - 19965, 31562, - 19965, 31564, - 19965, 31566, - 19965, 31568, - 19965, 31570, - 19965, 31572, - 19965, 31574, - 19965, 31576, - 19965, 31578, - 19965, 31580, - 19965, 31582, - 19965, 31584, - 19965, 31586, - 19965, 31588, - 19965, 31590, - 19965, 31592, - 19965, 31594, - 19965, 31596, - 19965, 31598, - 19965, 31600, - 19965, 31602, - 19965, 31604, - 19965, 31606, - 19965, 31608, - 19965, 31610, - 19965, 31612, - 19965, 31614, - 19965, 31616, - 19965, 31618, - 19965, 31620, - 19965, 31622, - 19965, 31624, - 19965, 31626, - 19965, 31628, - 19965, 31630, - 19965, 31632, - 19965, 31634, - 19965, 31636, - 19965, 31638, - 19965, 31640, - 19965, 31642, - 19965, 31644, - 19965, 31646, - 19965, 31648, - 19965, 31650, - 19965, 31652, - 19965, 31654, - 19965, 31656, - 19965, 31658, - 19965, 31660, - 19965, 31662, - 19965, 31664, - 19965, 31666, - 19965, 31668, - 19965, 31670, - 19965, 31672, - 19965, 31674, - 19965, 31676, - 19965, 31678, - 19965, 31680, - 19965, 31682, - 19965, 31684, - 19965, 31686, - 19965, 31688, - 19965, 31690, - 19965, 31692, - 19965, 31694, - 19965, 31696, - 19965, 31698, - 19965, 31700, - 19965, 31702, - 19965, 31704, - 19965, 31706, - 19965, 31708, - 19965, 31710, - 19965, 31712, - 19965, 31714, - 19965, 31716, - 19965, 31718, - 19965, 31720, - 19965, 31722, - 19965, 31724, - 19965, 31726, - 19965, 31728, - 19965, 31730, - 19965, 31732, - 19965, 31734, - 19965, 31736, - 19965, 31738, - 19965, 31740, - 19965, 31742, - 19965, 31744, - 19965, 31746, - 19965, 31748, - 19965, 31750, - 19965, 31752, - 19965, 31754, - 19965, 31756, - 19965, 31758, - 19965, 31760, - 19965, 31762, - 19965, 31764, - 19965, 31766, - 19965, 31768, - 19965, 31770, - 19965, 31772, - 19965, 31774, - 19965, 31776, - 19965, 31778, - 19965, 31780, - 19965, 31782, - 19965, 31784, - 19965, 31786, - 19965, 31788, - 19965, 31790, - 19965, 31792, - 19965, 31794, - 19965, 31796, - 19965, 31798, - 19965, 31800, - 19965, 31802, - 19965, 31804, - 19965, 31806, - 19965, 31808, - 19965, 31810, - 19965, 31812, - 19965, 31814, - 19965, 31816, - 19965, 31818, - 19965, 31820, - 19965, 31822, - 19965, 31824, - 19965, 31826, - 19965, 31828, - 19965, 31830, - 19965, 31832, - 19965, 31834, - 19965, 31836, - 19965, 31838, - 19965, 31840, - 19965, 31842, - 19965, 31844, - 19965, 31846, - 19965, 31848, - 19965, 31850, - 19965, 31852, - 19965, 31854, - 19965, 31856, - 19965, 31858, - 19965, 31860, - 19965, 31862, - 19965, 31864, - 19965, 31866, - 19965, 31868, - 19965, 31870, - 19965, 31872, - 19965, 31874, - 19965, 31876, - 19965, 31878, - 19965, 31880, - 19965, 31882, - 19965, 31884, - 19965, 31886, - 19965, 31888, - 19965, 31890, - 19965, 31892, - 19965, 31894, - 19965, 31896, - 19965, 31898, - 19965, 31900, - 19965, 31902, - 19965, 31904, - 19965, 31906, - 19965, 31908, - 19965, 31910, - 19965, 31912, - 19965, 31914, - 19965, 31916, - 19965, 31918, - 19965, 31920, - 19965, 31922, - 19965, 31924, - 19965, 31926, - 19965, 31928, - 19965, 31930, - 19965, 31932, - 19965, 31934, - 19965, 31936, - 19965, 31938, - 19965, 31940, - 19965, 31942, - 19965, 31944, - 19965, 31946, - 19965, 31948, - 19965, 31950, - 19965, 31952, - 19965, 31954, - 19965, 31956, - 19965, 31958, - 19965, 31960, - 19965, 31962, - 19965, 31964, - 19965, 31966, - 19965, 31968, - 19965, 31970, - 19965, 31972, - 19965, 31974, - 19965, 31976, - 19965, 31978, - 19965, 31980, - 19965, 31982, - 19965, 31984, - 19965, 31986, - 19965, 31988, - 19965, 31990, - 19965, 31992, - 19965, 31994, - 19965, 31996, - 19965, 31998, - 19965, 32000, - 19965, 32002, - 19965, 32004, - 19965, 32006, - 19965, 32008, - 19965, 32010, - 19965, 32012, - 19965, 32014, - 19965, 32016, - 19965, 32018, - 19965, 32020, - 19965, 32022, - 19965, 32024, - 19965, 32026, - 19965, 32028, - 19965, 32030, - 19965, 32032, - 19965, 32034, - 19965, 32036, - 19965, 32038, - 19965, 32040, - 19965, 32042, - 19965, 32044, - 19965, 32046, - 19965, 32048, - 19965, 32050, - 19965, 32052, - 19965, 32054, - 19965, 32056, - 19965, 32058, - 19965, 32060, - 19965, 32062, - 19965, 32064, - 19965, 32066, - 19965, 32068, - 19965, 32070, - 19965, 32072, - 19965, 32074, - 19965, 32076, - 19965, 32078, - 19965, 32080, - 19965, 32082, - 19965, 32084, - 19965, 32086, - 19965, 32088, - 19965, 32090, - 19965, 32092, - 19965, 32094, - 19965, 32096, - 19965, 32098, - 19965, 32100, - 19965, 32102, - 19965, 32104, - 19965, 32106, - 19965, 32108, - 19965, 32110, - 19965, 32112, - 19965, 32114, - 19965, 32116, - 19965, 32118, - 19965, 32120, - 19965, 32122, - 19965, 32124, - 19965, 32126, - 19965, 32128, - 19965, 32130, - 19965, 32132, - 19965, 32134, - 19965, 32136, - 19965, 32138, - 19965, 32140, - 19965, 32142, - 19965, 32144, - 19965, 32146, - 19965, 32148, - 19965, 32150, - 19965, 32152, - 19965, 32154, - 19965, 32156, - 19965, 32158, - 19965, 32160, - 19965, 32162, - 19965, 32164, - 19965, 32166, - 19965, 32168, - 19965, 32170, - 19965, 32172, - 19965, 32174, - 19965, 32176, - 19965, 32178, - 19965, 32180, - 19965, 32182, - 19965, 32184, - 19965, 32186, - 19965, 32188, - 19965, 32190, - 19965, 32192, - 19965, 32194, - 19965, 32196, - 19965, 32198, - 19965, 32200, - 19965, 32202, - 19965, 32204, - 19965, 32206, - 19965, 32208, - 19965, 32210, - 19965, 32212, - 19965, 32214, - 19965, 32216, - 19965, 32218, - 19965, 32220, - 19965, 32222, - 19965, 32224, - 19965, 32226, - 19965, 32228, - 19965, 32230, - 19965, 32232, - 19965, 32234, - 19965, 32236, - 19965, 32238, - 19965, 32240, - 19965, 32242, - 19965, 32244, - 19965, 32246, - 19965, 32248, - 19965, 32250, - 19965, 32252, - 19965, 32254, - 19965, 32256, - 19965, 32258, - 19965, 32260, - 19965, 32262, - 19965, 32264, - 19965, 32266, - 19965, 32268, - 19965, 32270, - 19965, 32272, - 19965, 32274, - 19965, 32276, - 19965, 32278, - 19965, 32280, - 19965, 32282, - 19965, 32284, - 19965, 32286, - 19965, 32288, - 19965, 32290, - 19965, 32292, - 19965, 32294, - 19965, 32296, - 19965, 32298, - 19965, 32300, - 19965, 32302, - 19965, 32304, - 19965, 32306, - 19965, 32308, - 19965, 32310, - 19965, 32312, - 19965, 32314, - 19965, 32316, - 19965, 32318, - 19965, 32320, - 19965, 32322, - 19965, 32324, - 19965, 32326, - 19965, 32328, - 19965, 32330, - 19965, 32332, - 19965, 32334, - 19965, 32336, - 19965, 32338, - 19965, 32340, - 19965, 32342, - 19965, 32344, - 19965, 32346, - 19965, 32348, - 19965, 32350, - 19965, 32352, - 19965, 32354, - 19965, 32356, - 19965, 32358, - 19965, 32360, - 19965, 32362, - 19965, 32364, - 19965, 32366, - 19965, 32368, - 19965, 32370, - 19965, 32372, - 19965, 32374, - 19965, 32376, - 19965, 32378, - 19965, 32380, - 19965, 32382, - 19965, 32384, - 19965, 32386, - 19965, 32388, - 19965, 32390, - 19965, 32392, - 19965, 32394, - 19965, 32396, - 19965, 32398, - 19965, 32400, - 19965, 32402, - 19965, 32404, - 19965, 32406, - 19965, 32408, - 19965, 32410, - 19965, 32412, - 19965, 32414, - 19965, 32416, - 19965, 32418, - 19965, 32420, - 19965, 32422, - 19965, 32424, - 19965, 32426, - 19965, 32428, - 19965, 32430, - 19965, 32432, - 19965, 32434, - 19965, 32436, - 19965, 32438, - 19965, 32440, - 19965, 32442, - 19965, 32444, - 19965, 32446, - 19965, 32448, - 19965, 32450, - 19965, 32452, - 19965, 32454, - 19965, 32456, - 19965, 32458, - 19965, 32460, - 19965, 32462, - 19965, 32464, - 19965, 32466, - 19965, 32468, - 19965, 32470, - 19965, 32472, - 19965, 32474, - 19965, 32476, - 19965, 32478, - 19965, 32480, - 19965, 32482, - 19965, 32484, - 19965, 32486, - 19965, 32488, - 19965, 32490, - 19965, 32492, - 19965, 32494, - 19965, 32496, - 19965, 32498, - 19965, 32500, - 19965, 32502, - 19965, 32504, - 19965, 32506, - 19965, 32508, - 19965, 32510, - 19965, 32512, - 19965, 32514, - 19965, 32516, - 19965, 32518, - 19965, 32520, - 19965, 32522, - 19965, 32524, - 19965, 32526, - 19965, 32528, - 19965, 32530, - 19965, 32532, - 19965, 32534, - 19965, 32536, - 19965, 32538, - 19965, 32540, - 19965, 32542, - 19965, 32544, - 19965, 32546, - 19965, 32548, - 19965, 32550, - 19965, 32552, - 19965, 32554, - 19965, 32556, - 19965, 32558, - 19965, 32560, - 19965, 32562, - 19965, 32564, - 19965, 32566, - 19965, 32568, - 19965, 32570, - 19965, 32572, - 19965, 32574, - 19965, 32576, - 19965, 32578, - 19965, 32580, - 19965, 32582, - 19965, 32584, - 19965, 32586, - 19965, 32588, - 19965, 32590, - 19965, 32592, - 19965, 32594, - 19965, 32596, - 19965, 32598, - 19965, 32600, - 19965, 32602, - 19965, 32604, - 19965, 32606, - 19965, 32608, - 19965, 32610, - 19965, 32612, - 19965, 32614, - 19965, 32616, - 19965, 32618, - 19965, 32620, - 19965, 32622, - 19965, 32624, - 19965, 32626, - 19965, 32628, - 19965, 32630, - 19965, 32632, - 19965, 32634, - 19965, 32636, - 19965, 32638, - 19965, 32640, - 19965, 32642, - 19965, 32644, - 19965, 32646, - 19965, 32648, - 19965, 32650, - 19965, 32652, - 19965, 32654, - 19965, 32656, - 19965, 32658, - 19965, 32660, - 19965, 32662, - 19965, 32664, - 19965, 32666, - 19965, 32668, - 19965, 32670, - 19965, 32672, - 19965, 32674, - 19965, 32676, - 19965, 32678, - 19965, 32680, - 19965, 32682, - 19965, 32684, - 19965, 32686, - 19965, 32688, - 19965, 32690, - 19965, 32692, - 19965, 32694, - 19965, 32696, - 19965, 32698, - 19965, 32700, - 19965, 32702, - 19965, 32704, - 19965, 32706, - 19965, 32708, - 19965, 32710, - 19965, 32712, - 19965, 32714, - 19965, 32716, - 19965, 32718, - 19965, 32720, - 19965, 32722, - 19965, 32724, - 19965, 32726, - 19965, 32728, - 19965, 32730, - 19965, 32732, - 19965, 32734, - 19965, 32736, - 19965, 32738, - 19965, 32740, - 19965, 32742, - 19965, 32744, - 19965, 32746, - 19965, 32748, - 19965, 32750, - 19965, 32752, - 19965, 32754, - 19965, 32756, - 19965, 32758, - 19965, 32760, - 19965, 32762, - 19965, 32764, - 19965, 32766, - 19965, 32768, - 19965, 32770, - 19965, 32772, - 19965, 32774, - 19965, 32776, - 19965, 32778, - 19965, 32780, - 19965, 32782, - 19965, 32784, - 19965, 32786, - 19965, 32788, - 19965, 32790, - 19965, 32792, - 19965, 32794, - 19965, 32796, - 19965, 32798, - 19965, 32800, - 19965, 32802, - 19965, 32804, - 19965, 32806, - 19965, 32808, - 19965, 32810, - 19965, 32812, - 19965, 32814, - 19965, 32816, - 19965, 32818, - 19965, 32820, - 19965, 32822, - 19965, 32824, - 19965, 32826, - 19965, 32828, - 19965, 32830, - 19965, 32832, - 19965, 32834, - 19965, 32836, - 19965, 32838, - 19965, 32840, - 19965, 32842, - 19965, 32844, - 19965, 32846, - 19965, 32848, - 19965, 32850, - 19965, 32852, - 19965, 32854, - 19965, 32856, - 19965, 32858, - 19965, 32860, - 19965, 32862, - 19965, 32864, - 19965, 32866, - 19965, 32868, - 19965, 32870, - 19965, 32872, - 19965, 32874, - 19965, 32876, - 19965, 32878, - 19965, 32880, - 19965, 32882, - 19965, 32884, - 19965, 32886, - 19965, 32888, - 19965, 32890, - 19965, 32892, - 19965, 32894, - 19965, 32896, - 19965, 32898, - 19965, 32900, - 19965, 32902, - 19965, 32904, - 19965, 32906, - 19965, 32908, - 19965, 32910, - 19965, 32912, - 19965, 32914, - 19965, 32916, - 19965, 32918, - 19965, 32920, - 19965, 32922, - 19965, 32924, - 19965, 32926, - 19965, 32928, - 19965, 32930, - 19965, 32932, - 19965, 32934, - 19965, 32936, - 19965, 32938, - 19965, 32940, - 19965, 32942, - 19965, 32944, - 19965, 32946, - 19965, 32948, - 19965, 32950, - 19965, 32952, - 19965, 32954, - 19965, 32956, - 19965, 32958, - 19965, 32960, - 19965, 32962, - 19965, 32964, - 19965, 32966, - 19965, 32968, - 19965, 32970, - 19965, 32972, - 19965, 32974, - 19965, 32976, - 19965, 32978, - 19965, 32980, - 19965, 32982, - 19965, 32984, - 19965, 32986, - 19965, 32988, - 19965, 32990, - 19965, 32992, - 19965, 32994, - 19965, 32996, - 19965, 32998, - 19965, 33000, - 19965, 33002, - 19965, 33004, - 19965, 33006, - 19965, 33008, - 19965, 33010, - 19965, 33012, - 19965, 33014, - 19965, 33016, - 19965, 33018, - 19965, 33020, - 19965, 33022, - 19965, 33024, - 19965, 33026, - 19965, 33028, - 19965, 33030, - 19965, 33032, - 19965, 33034, - 19965, 33036, - 19965, 33038, - 19965, 33040, - 19965, 33042, - 19965, 33044, - 19965, 33046, - 19965, 33048, - 19965, 33050, - 19965, 33052, - 19965, 33054, - 19965, 33056, - 19965, 33058, - 19965, 33060, - 19965, 33062, - 19965, 33064, - 19965, 33066, - 19965, 33068, - 19965, 33070, - 19965, 33072, - 19965, 33074, - 19965, 33076, - 19965, 33078, - 19965, 33080, - 19965, 33082, - 19965, 33084, - 19965, 33086, - 19965, 33088, - 19965, 33090, - 19965, 33092, - 19965, 33094, - 19965, 33096, - 19965, 33098, - 19965, 33100, - 19965, 33102, - 19965, 33104, - 19965, 33106, - 19965, 33108, - 19965, 33110, - 19965, 33112, - 19965, 33114, - 19965, 33116, - 19965, 33118, - 19965, 33120, - 19965, 33122, - 19965, 33124, - 19965, 33126, - 19965, 33128, - 19965, 33130, - 19965, 33132, - 19965, 33134, - 19965, 33136, - 19965, 33138, - 19965, 33140, - 19965, 33142, - 19965, 33144, - 19965, 33146, - 19965, 33148, - 19965, 33150, - 19965, 33152, - 19965, 33154, - 19965, 33156, - 19965, 33158, - 19965, 33160, - 19965, 33162, - 19965, 33164, - 19965, 33166, - 19965, 33168, - 19965, 33170, - 19965, 33172, - 19965, 33174, - 19965, 33176, - 19965, 33178, - 19965, 33180, - 19965, 33182, - 19965, 33184, - 19965, 33186, - 19965, 33188, - 19965, 33190, - 19965, 33192, - 19965, 33194, - 19965, 33196, - 19965, 33198, - 19965, 33200, - 19965, 33202, - 19965, 33204, - 19965, 33206, - 19965, 33208, - 19965, 33210, - 19965, 33212, - 19965, 33214, - 19965, 33216, - 19965, 33218, - 19965, 33220, - 19965, 33222, - 19965, 33224, - 19965, 33226, - 19965, 33228, - 19965, 33230, - 19965, 33232, - 19965, 33234, - 19965, 33236, - 19965, 33238, - 19965, 33240, - 19965, 33242, - 19965, 33244, - 19965, 33246, - 19965, 33248, - 19965, 33250, - 19965, 33252, - 19965, 33254, - 19965, 33256, - 19965, 33258, - 19965, 33260, - 19965, 33262, - 19965, 33264, - 19965, 33266, - 19965, 33268, - 19965, 33270, - 19965, 33272, - 19965, 33274, - 19965, 33276, - 19965, 33278, - 19965, 33280, - 19965, 33282, - 19965, 33284, - 19965, 33286, - 19965, 33288, - 19965, 33290, - 19965, 33292, - 19965, 33294, - 19965, 33296, - 19965, 33298, - 19965, 33300, - 19965, 33302, - 19965, 33304, - 19965, 33306, - 19965, 33308, - 19965, 33310, - 19965, 33312, - 19965, 33314, - 19965, 33316, - 19965, 33318, - 19965, 33320, - 19965, 33322, - 19965, 33324, - 19965, 33326, - 19965, 33328, - 19965, 33330, - 19965, 33332, - 19965, 33334, - 19965, 33336, - 19965, 33338, - 19965, 33340, - 19965, 33342, - 19965, 33344, - 19965, 33346, - 19965, 33348, - 19965, 33350, - 19965, 33352, - 19965, 33354, - 19965, 33356, - 19965, 33358, - 19965, 33360, - 19965, 33362, - 19965, 33364, - 19965, 33366, - 19965, 33368, - 19965, 33370, - 19965, 33372, - 19965, 33374, - 19965, 33376, - 19965, 33378, - 19965, 33380, - 19965, 33382, - 19965, 33384, - 19965, 33386, - 19965, 33388, - 19965, 33390, - 19965, 33392, - 19965, 33394, - 19965, 33396, - 19965, 33398, - 19965, 33400, - 19965, 33402, - 19965, 33404, - 19965, 33406, - 19965, 33408, - 19965, 33410, - 19965, 33412, - 19965, 33414, - 19965, 33416, - 19965, 33418, - 19965, 33420, - 19965, 33422, - 19965, 33424, - 19965, 33426, - 19965, 33428, - 19965, 33430, - 19965, 33432, - 19965, 33434, - 19965, 33436, - 19965, 33438, - 19965, 33440, - 19965, 33442, - 19965, 33444, - 19965, 33446, - 19965, 33448, - 19965, 33450, - 19965, 33452, - 19965, 33454, - 19965, 33456, - 19965, 33458, - 19965, 33460, - 19965, 33462, - 19965, 33464, - 19965, 33466, - 19965, 33468, - 19965, 33470, - 19965, 33472, - 19965, 33474, - 19965, 33476, - 19965, 33478, - 19965, 33480, - 19965, 33482, - 19965, 33484, - 19965, 33486, - 19965, 33488, - 19965, 33490, - 19965, 33492, - 19965, 33494, - 19965, 33496, - 19965, 33498, - 19965, 33500, - 19965, 33502, - 19965, 33504, - 19965, 33506, - 19965, 33508, - 19965, 33510, - 19965, 33512, - 19965, 33514, - 19965, 33516, - 19965, 33518, - 19965, 33520, - 19965, 33522, - 19965, 33524, - 19965, 33526, - 19965, 33528, - 19965, 33530, - 19965, 33532, - 19965, 33534, - 19965, 33536, - 19965, 33538, - 19965, 33540, - 19965, 33542, - 19965, 33544, - 19965, 33546, - 19965, 33548, - 19965, 33550, - 19965, 33552, - 19965, 33554, - 19965, 33556, - 19965, 33558, - 19965, 33560, - 19965, 33562, - 19965, 33564, - 19965, 33566, - 19965, 33568, - 19965, 33570, - 19965, 33572, - 19965, 33574, - 19965, 33576, - 19965, 33578, - 19965, 33580, - 19965, 33582, - 19965, 33584, - 19965, 33586, - 19965, 33588, - 19965, 33590, - 19965, 33592, - 19965, 33594, - 19965, 33596, - 19965, 33598, - 19965, 33600, - 19965, 33602, - 19965, 33604, - 19965, 33606, - 19965, 33608, - 19965, 33610, - 19965, 33612, - 19965, 33614, - 19965, 33616, - 19965, 33618, - 19965, 33620, - 19965, 33622, - 19965, 33624, - 19965, 33626, - 19965, 33628, - 19965, 33630, - 19965, 33632, - 19965, 33634, - 19965, 33636, - 19965, 33638, - 19965, 33640, - 19965, 33642, - 19965, 33644, - 19965, 33646, - 19965, 33648, - 19965, 33650, - 19965, 33652, - 19965, 33654, - 19965, 33656, - 19965, 33658, - 19965, 33660, - 19965, 33662, - 19965, 33664, - 19965, 33666, - 19965, 33668, - 19965, 33670, - 19965, 33672, - 19965, 33674, - 19965, 33676, - 19965, 33678, - 19965, 33680, - 19965, 33682, - 19965, 33684, - 19965, 33686, - 19965, 33688, - 19965, 33690, - 19965, 33692, - 19965, 33694, - 19965, 33696, - 19965, 33698, - 19965, 33700, - 19965, 33702, - 19965, 33704, - 19965, 33706, - 19965, 33708, - 19965, 33710, - 19965, 33712, - 19965, 33714, - 19965, 33716, - 19965, 33718, - 19965, 33720, - 19965, 33722, - 19965, 33724, - 19965, 33726, - 19965, 33728, - 19965, 33730, - 19965, 33732, - 19965, 33734, - 19965, 33736, - 19965, 33738, - 19965, 33740, - 19965, 33742, - 19965, 33744, - 19965, 33746, - 19965, 33748, - 19965, 33750, - 19965, 33752, - 19965, 33754, - 19965, 33756, - 19965, 33758, - 19965, 33760, - 19965, 33762, - 19965, 33764, - 19965, 33766, - 19965, 33768, - 19965, 33770, - 19965, 33772, - 19965, 33774, - 19965, 33776, - 19965, 33778, - 19965, 33780, - 19965, 33782, - 19965, 33784, - 19965, 33786, - 19965, 33788, - 19965, 33790, - 19965, 33792, - 19965, 33794, - 19965, 33796, - 19965, 33798, - 19965, 33800, - 19965, 33802, - 19965, 33804, - 19965, 33806, - 19965, 33808, - 19965, 33810, - 19965, 33812, - 19965, 33814, - 19965, 33816, - 19965, 33818, - 19965, 33820, - 19965, 33822, - 19965, 33824, - 19965, 33826, - 19965, 33828, - 19965, 33830, - 19965, 33832, - 19965, 33834, - 19965, 33836, - 19965, 33838, - 19965, 33840, - 19965, 33842, - 19965, 33844, - 19965, 33846, - 19965, 33848, - 19965, 33850, - 19965, 33852, - 19965, 33854, - 19965, 33856, - 19965, 33858, - 19965, 33860, - 19965, 33862, - 19965, 33864, - 19965, 33866, - 19965, 33868, - 19965, 33870, - 19965, 33872, - 19965, 33874, - 19965, 33876, - 19965, 33878, - 19965, 33880, - 19965, 33882, - 19965, 33884, - 19965, 33886, - 19965, 33888, - 19965, 33890, - 19965, 33892, - 19965, 33894, - 19965, 33896, - 19965, 33898, - 19965, 33900, - 19965, 33902, - 19965, 33904, - 19965, 33906, - 19965, 33908, - 19965, 33910, - 19965, 33912, - 19965, 33914, - 19965, 33916, - 19965, 33918, - 19965, 33920, - 19965, 33922, - 19965, 33924, - 19965, 33926, - 19965, 33928, - 19965, 33930, - 19965, 33932, - 19965, 33934, - 19965, 33936, - 19965, 33938, - 19965, 33940, - 19965, 33942, - 19965, 33944, - 19965, 33946, - 19965, 33948, - 19965, 33950, - 19965, 33952, - 19965, 33954, - 19965, 33956, - 19965, 33958, - 19965, 33960, - 19965, 33962, - 19965, 33964, - 19965, 33966, - 19965, 33968, - 19965, 33970, - 19965, 33972, - 19965, 33974, - 19965, 33976, - 19965, 33978, - 19965, 33980, - 19965, 33982, - 19965, 33984, - 19965, 33986, - 19965, 33988, - 19965, 33990, - 19965, 33992, - 19965, 33994, - 19965, 33996, - 19965, 33998, - 19965, 34000, - 19965, 34002, - 19965, 34004, - 19965, 34006, - 19965, 34008, - 19965, 34010, - 19965, 34012, - 19965, 34014, - 19965, 34016, - 19965, 34018, - 19965, 34020, - 19965, 34022, - 19965, 34024, - 19965, 34026, - 19965, 34028, - 19965, 34030, - 19965, 34032, - 19965, 34034, - 19965, 34036, - 19965, 34038, - 19965, 34040, - 19965, 34042, - 19965, 34044, - 19965, 34046, - 19965, 34048, - 19965, 34050, - 19965, 34052, - 19965, 34054, - 19965, 34056, - 19965, 34058, - 19965, 34060, - 19965, 34062, - 19965, 34064, - 19965, 34066, - 19965, 34068, - 19965, 34070, - 19965, 34072, - 19965, 34074, - 19965, 34076, - 19965, 34078, - 19965, 34080, - 19965, 34082, - 19965, 34084, - 19965, 34086, - 19965, 34088, - 19965, 34090, - 19965, 34092, - 19965, 34094, - 19965, 34096, - 19965, 34098, - 19965, 34100, - 19965, 34102, - 19965, 34104, - 19965, 34106, - 19965, 34108, - 19965, 34110, - 19965, 34112, - 19965, 34114, - 19965, 34116, - 19965, 34118, - 19965, 34120, - 19965, 34122, - 19965, 34124, - 19965, 34126, - 19965, 34128, - 19965, 34130, - 19965, 34132, - 19965, 34134, - 19965, 34136, - 19965, 34138, - 19965, 34140, - 19965, 34142, - 19965, 34144, - 19965, 34146, - 19965, 34148, - 19965, 34150, - 19965, 34152, - 19965, 34154, - 19965, 34156, - 19965, 34158, - 19965, 34160, - 19965, 34162, - 19965, 34164, - 19965, 34166, - 19965, 34168, - 19965, 34170, - 19965, 34172, - 19965, 34174, - 19965, 34176, - 19965, 34178, - 19965, 34180, - 19965, 34182, - 19965, 34184, - 19965, 34186, - 19965, 34188, - 19965, 34190, - 19965, 34192, - 19965, 34194, - 19965, 34196, - 19965, 34198, - 19965, 34200, - 19965, 34202, - 19965, 34204, - 19965, 34206, - 19965, 34208, - 19965, 34210, - 19965, 34212, - 19965, 34214, - 19965, 34216, - 19965, 34218, - 19965, 34220, - 19965, 34222, - 19965, 34224, - 19965, 34226, - 19965, 34228, - 19965, 34230, - 19965, 34232, - 19965, 34234, - 19965, 34236, - 19965, 34238, - 19965, 34240, - 19965, 34242, - 19965, 34244, - 19965, 34246, - 19965, 34248, - 19965, 34250, - 19965, 34252, - 19965, 34254, - 19965, 34256, - 19965, 34258, - 19965, 34260, - 19965, 34262, - 19965, 34264, - 19965, 34266, - 19965, 34268, - 19965, 34270, - 19965, 34272, - 19965, 34274, - 19965, 34276, - 19965, 34278, - 19965, 34280, - 19965, 34282, - 19965, 34284, - 19965, 34286, - 19965, 34288, - 19965, 34290, - 19965, 34292, - 19965, 34294, - 19965, 34296, - 19965, 34298, - 19965, 34300, - 19965, 34302, - 19965, 34304, - 19965, 34306, - 19965, 34308, - 19965, 34310, - 19965, 34312, - 19965, 34314, - 19965, 34316, - 19965, 34318, - 19965, 34320, - 19965, 34322, - 19965, 34324, - 19965, 34326, - 19965, 34328, - 19965, 34330, - 19965, 34332, - 19965, 34334, - 19965, 34336, - 19965, 34338, - 19965, 34340, - 19965, 34342, - 19965, 34344, - 19965, 34346, - 19965, 34348, - 19965, 34350, - 19965, 34352, - 19965, 34354, - 19965, 34356, - 19965, 34358, - 19965, 34360, - 19965, 34362, - 19965, 34364, - 19965, 34366, - 19965, 34368, - 19965, 34370, - 19965, 34372, - 19965, 34374, - 19965, 34376, - 19965, 34378, - 19965, 34380, - 19965, 34382, - 19965, 34384, - 19965, 34386, - 19965, 34388, - 19965, 34390, - 19965, 34392, - 19965, 34394, - 19965, 34396, - 19965, 34398, - 19965, 34400, - 19965, 34402, - 19965, 34404, - 19965, 34406, - 19965, 34408, - 19965, 34410, - 19965, 34412, - 19965, 34414, - 19965, 34416, - 19965, 34418, - 19965, 34420, - 19965, 34422, - 19965, 34424, - 19965, 34426, - 19965, 34428, - 19965, 34430, - 19965, 34432, - 19965, 34434, - 19965, 34436, - 19965, 34438, - 19965, 34440, - 19965, 34442, - 19965, 34444, - 19965, 34446, - 19965, 34448, - 19965, 34450, - 19965, 34452, - 19965, 34454, - 19965, 34456, - 19965, 34458, - 19965, 34460, - 19965, 34462, - 19965, 34464, - 19965, 34466, - 19965, 34468, - 19965, 34470, - 19965, 34472, - 19965, 34474, - 19965, 34476, - 19965, 34478, - 19965, 34480, - 19965, 34482, - 19965, 34484, - 19965, 34486, - 19965, 34488, - 19965, 34490, - 19965, 34492, - 19965, 34494, - 19965, 34496, - 19965, 34498, - 19965, 34500, - 19965, 34502, - 19965, 34504, - 19965, 34506, - 19965, 34508, - 19965, 34510, - 19965, 34512, - 19965, 34514, - 19965, 34516, - 19965, 34518, - 19965, 34520, - 19965, 34522, - 19965, 34524, - 19965, 34526, - 19965, 34528, - 19965, 34530, - 19965, 34532, - 19965, 34534, - 19965, 34536, - 19965, 34538, - 19965, 34540, - 19965, 34542, - 19965, 34544, - 19965, 34546, - 19965, 34548, - 19965, 34550, - 19965, 34552, - 19965, 34554, - 19965, 34556, - 19965, 34558, - 19965, 34560, - 19965, 34562, - 19965, 34564, - 19965, 34566, - 19965, 34568, - 19965, 34570, - 19965, 34572, - 19965, 34574, - 19965, 34576, - 19965, 34578, - 19965, 34580, - 19965, 34582, - 19965, 34584, - 19965, 34586, - 19965, 34588, - 19965, 34590, - 19965, 34592, - 19965, 34594, - 19965, 34596, - 19965, 34598, - 19965, 34600, - 19965, 34602, - 19965, 34604, - 19965, 34606, - 19965, 34608, - 19965, 34610, - 19965, 34612, - 19965, 34614, - 19965, 34616, - 19965, 34618, - 19965, 34620, - 19965, 34622, - 19965, 34624, - 19965, 34626, - 19965, 34628, - 19965, 34630, - 19965, 34632, - 19965, 34634, - 19965, 34636, - 19965, 34638, - 19965, 34640, - 19965, 34642, - 19965, 34644, - 19965, 34646, - 19965, 34648, - 19965, 34650, - 19965, 34652, - 19965, 34654, - 19965, 34656, - 19965, 34658, - 19965, 34660, - 19965, 34662, - 19965, 34664, - 19965, 34666, - 19965, 34668, - 19965, 34670, - 19965, 34672, - 19965, 34674, - 19965, 34676, - 19965, 34678, - 19965, 34680, - 19965, 34682, - 19965, 34684, - 19965, 34686, - 19965, 34688, - 19965, 34690, - 19965, 34692, - 19965, 34694, - 19965, 34696, - 19965, 34698, - 19965, 34700, - 19965, 34702, - 19965, 34704, - 19965, 34706, - 19965, 34708, - 19965, 34710, - 19965, 34712, - 19965, 34714, - 19965, 34716, - 19965, 34718, - 19965, 34720, - 19965, 34722, - 19965, 34724, - 19965, 34726, - 19965, 34728, - 19965, 34730, - 19965, 34732, - 19965, 34734, - 19965, 34736, - 19965, 34738, - 19965, 34740, - 19965, 34742, - 19965, 34744, - 19965, 34746, - 19965, 34748, - 19965, 34750, - 19965, 34752, - 19965, 34754, - 19965, 34756, - 19965, 34758, - 19965, 34760, - 19965, 34762, - 19965, 34764, - 19965, 34766, - 19965, 34768, - 19965, 34770, - 19965, 34772, - 19965, 34774, - 19965, 34776, - 19965, 34778, - 19965, 34780, - 19965, 34782, - 19965, 34784, - 19965, 34786, - 19965, 34788, - 19965, 34790, - 19965, 34792, - 19965, 34794, - 19965, 34796, - 19965, 34798, - 19965, 34800, - 19965, 34802, - 19965, 34804, - 19965, 34806, - 19965, 34808, - 19965, 34810, - 19965, 34812, - 19965, 34814, - 19965, 34816, - 19965, 34818, - 19965, 34820, - 19965, 34822, - 19965, 34824, - 19965, 34826, - 19965, 34828, - 19965, 34830, - 19965, 34832, - 19965, 34834, - 19965, 34836, - 19965, 34838, - 19965, 34840, - 19965, 34842, - 19965, 34844, - 19965, 34846, - 19965, 34848, - 19965, 34850, - 19965, 34852, - 19965, 34854, - 19965, 34856, - 19965, 34858, - 19965, 34860, - 19965, 34862, - 19965, 34864, - 19965, 34866, - 19965, 34868, - 19965, 34870, - 19965, 34872, - 19965, 34874, - 19965, 34876, - 19965, 34878, - 19965, 34880, - 19965, 34882, - 19965, 34884, - 19965, 34886, - 19965, 34888, - 19965, 34890, - 19965, 34892, - 19965, 34894, - 19965, 34896, - 19965, 34898, - 19965, 34900, - 19965, 34902, - 19965, 34904, - 19965, 34906, - 19965, 34908, - 19965, 34910, - 19965, 34912, - 19965, 34914, - 19965, 34916, - 19965, 34918, - 19965, 34920, - 19965, 34922, - 19965, 34924, - 19965, 34926, - 19965, 34928, - 19965, 34930, - 19965, 34932, - 19965, 34934, - 19965, 34936, - 19965, 34938, - 19965, 34940, - 19965, 34942, - 19965, 34944, - 19965, 34946, - 19965, 34948, - 19965, 34950, - 19965, 34952, - 19965, 34954, - 19965, 34956, - 19965, 34958, - 19965, 34960, - 19965, 34962, - 19965, 34964, - 19965, 34966, - 19965, 34968, - 19965, 34970, - 19965, 34972, - 19965, 34974, - 19965, 34976, - 19965, 34978, - 19965, 34980, - 19965, 34982, - 19965, 34984, - 19965, 34986, - 19965, 34988, - 19965, 34990, - 19965, 34992, - 19965, 34994, - 19965, 34996, - 19965, 34998, - 19965, 35000, - 19965, 35002, - 19965, 35004, - 19965, 35006, - 19965, 35008, - 19965, 35010, - 19965, 35012, - 19965, 35014, - 19965, 35016, - 19965, 35018, - 19965, 35020, - 19965, 35022, - 19965, 35024, - 19965, 35026, - 19965, 35028, - 19965, 35030, - 19965, 35032, - 19965, 35034, - 19965, 35036, - 19965, 35038, - 19965, 35040, - 19965, 35042, - 19965, 35044, - 19965, 35046, - 19965, 35048, - 19965, 35050, - 19965, 35052, - 19965, 35054, - 19965, 35056, - 19965, 35058, - 19965, 35060, - 19965, 35062, - 19965, 35064, - 19965, 35066, - 19965, 35068, - 19965, 35070, - 19965, 35072, - 19965, 35074, - 19965, 35076, - 19965, 35078, - 19965, 35080, - 19965, 35082, - 19965, 35084, - 19965, 35086, - 19965, 35088, - 19965, 35090, - 19965, 35092, - 19965, 35094, - 19965, 35096, - 19965, 35098, - 19965, 35100, - 19965, 35102, - 19965, 35104, - 19965, 35106, - 19965, 35108, - 19965, 35110, - 19965, 35112, - 19965, 35114, - 19965, 35116, - 19965, 35118, - 19965, 35120, - 19965, 35122, - 19965, 35124, - 19965, 35126, - 19965, 35128, - 19965, 35130, - 19965, 35132, - 19965, 35134, - 19965, 35136, - 19965, 35138, - 19965, 35140, - 19965, 35142, - 19965, 35144, - 19965, 35146, - 19965, 35148, - 19965, 35150, - 19965, 35152, - 19965, 35154, - 19965, 35156, - 19965, 35158, - 19965, 35160, - 19965, 35162, - 19965, 35164, - 19965, 35166, - 19965, 35168, - 19965, 35170, - 19965, 35172, - 19965, 35174, - 19965, 35176, - 19965, 35178, - 19965, 35180, - 19965, 35182, - 19965, 35184, - 19965, 35186, - 19965, 35188, - 19965, 35190, - 19965, 35192, - 19965, 35194, - 19965, 35196, - 19965, 35198, - 19965, 35200, - 19965, 35202, - 19965, 35204, - 19965, 35206, - 19965, 35208, - 19965, 35210, - 19965, 35212, - 19965, 35214, - 19965, 35216, - 19965, 35218, - 19965, 35220, - 19965, 35222, - 19965, 35224, - 19965, 35226, - 19965, 35228, - 19965, 35230, - 19965, 35232, - 19965, 35234, - 19965, 35236, - 19965, 35238, - 19965, 35240, - 19965, 35242, - 19965, 35244, - 19965, 35246, - 19965, 35248, - 19965, 35250, - 19965, 35252, - 19965, 35254, - 19965, 35256, - 19965, 35258, - 19965, 35260, - 19965, 35262, - 19965, 35264, - 19965, 35266, - 19965, 35268, - 19965, 35270, - 19965, 35272, - 19965, 35274, - 19965, 35276, - 19965, 35278, - 19965, 35280, - 19965, 35282, - 19965, 35284, - 19965, 35286, - 19965, 35288, - 19965, 35290, - 19965, 35292, - 19965, 35294, - 19965, 35296, - 19965, 35298, - 19965, 35300, - 19965, 35302, - 19965, 35304, - 19965, 35306, - 19965, 35308, - 19965, 35310, - 19965, 35312, - 19965, 35314, - 19965, 35316, - 19965, 35318, - 19965, 35320, - 19965, 35322, - 19965, 35324, - 19965, 35326, - 19965, 35328, - 19965, 35330, - 19965, 35332, - 19965, 35334, - 19965, 35336, - 19965, 35338, - 19965, 35340, - 19965, 35342, - 19965, 35344, - 19965, 35346, - 19965, 35348, - 19965, 35350, - 19965, 35352, - 19965, 35354, - 19965, 35356, - 19965, 35358, - 19965, 35360, - 19965, 35362, - 19965, 35364, - 19965, 35366, - 19965, 35368, - 19965, 35370, - 19965, 35372, - 19965, 35374, - 19965, 35376, - 19965, 35378, - 19965, 35380, - 19965, 35382, - 19965, 35384, - 19965, 35386, - 19965, 35388, - 19965, 35390, - 19965, 35392, - 19965, 35394, - 19965, 35396, - 19965, 35398, - 19965, 35400, - 19965, 35402, - 19965, 35404, - 19965, 35406, - 19965, 35408, - 19965, 35410, - 19965, 35412, - 19965, 35414, - 19965, 35416, - 19965, 35418, - 19965, 35420, - 19965, 35422, - 19965, 35424, - 19965, 35426, - 19965, 35428, - 19965, 35430, - 19965, 35432, - 19965, 35434, - 19965, 35436, - 19965, 35438, - 19965, 35440, - 19965, 35442, - 19965, 35444, - 19965, 35446, - 19965, 35448, - 19965, 35450, - 19965, 35452, - 19965, 35454, - 19965, 35456, - 19965, 35458, - 19965, 35460, - 19965, 35462, - 19965, 35464, - 19965, 35466, - 19965, 35468, - 19965, 35470, - 19965, 35472, - 19965, 35474, - 19965, 35476, - 19965, 35478, - 19965, 35480, - 19965, 35482, - 19965, 35484, - 19965, 35486, - 19965, 35488, - 19965, 35490, - 19965, 35492, - 19965, 35494, - 19965, 35496, - 19965, 35498, - 19965, 35500, - 19965, 35502, - 19965, 35504, - 19965, 35506, - 19965, 35508, - 19965, 35510, - 19965, 35512, - 19965, 35514, - 19965, 35516, - 19965, 35518, - 19965, 35520, - 19965, 35522, - 19965, 35524, - 19965, 35526, - 19965, 35528, - 19965, 35530, - 19965, 35532, - 19965, 35534, - 19965, 35536, - 19965, 35538, - 19965, 35540, - 19965, 35542, - 19965, 35544, - 19965, 35546, - 19965, 35548, - 19965, 35550, - 19965, 35552, - 19965, 35554, - 19965, 35556, - 19965, 35558, - 19965, 35560, - 19965, 35562, - 19965, 35564, - 19965, 35566, - 19965, 35568, - 19965, 35570, - 19965, 35572, - 19965, 35574, - 19965, 35576, - 19965, 35578, - 19965, 35580, - 19965, 35582, - 19965, 35584, - 19965, 35586, - 19965, 35588, - 19965, 35590, - 19965, 35592, - 19965, 35594, - 19965, 35596, - 19965, 35598, - 19965, 35600, - 19965, 35602, - 19965, 35604, - 19965, 35606, - 19965, 35608, - 19965, 35610, - 19965, 35612, - 19965, 35614, - 19965, 35616, - 19965, 35618, - 19965, 35620, - 19965, 35622, - 19965, 35624, - 19965, 35626, - 19965, 35628, - 19965, 35630, - 19965, 35632, - 19965, 35634, - 19965, 35636, - 19965, 35638, - 19965, 35640, - 19965, 35642, - 19965, 35644, - 19965, 35646, - 19965, 35648, - 19965, 35650, - 19965, 35652, - 19965, 35654, - 19965, 35656, - 19965, 35658, - 19965, 35660, - 19965, 35662, - 19965, 35664, - 19965, 35666, - 19965, 35668, - 19965, 35670, - 19965, 35672, - 19965, 35674, - 19965, 35676, - 19965, 35678, - 19965, 35680, - 19965, 35682, - 19965, 35684, - 19965, 35686, - 19965, 35688, - 19965, 35690, - 19965, 35692, - 19965, 35694, - 19965, 35696, - 19965, 35698, - 19965, 35700, - 19965, 35702, - 19965, 35704, - 19965, 35706, - 19965, 35708, - 19965, 35710, - 19965, 35712, - 19965, 35714, - 19965, 35716, - 19965, 35718, - 19965, 35720, - 19965, 35722, - 19965, 35724, - 19965, 35726, - 19965, 35728, - 19965, 35730, - 19965, 35732, - 19965, 35734, - 19965, 35736, - 19965, 35738, - 19965, 35740, - 19965, 35742, - 19965, 35744, - 19965, 35746, - 19965, 35748, - 19965, 35750, - 19965, 35752, - 19965, 35754, - 19965, 35756, - 19965, 35758, - 19965, 35760, - 19965, 35762, - 19965, 35764, - 19965, 35766, - 19965, 35768, - 19965, 35770, - 19965, 35772, - 19965, 35774, - 19965, 35776, - 19965, 35778, - 19965, 35780, - 19965, 35782, - 19965, 35784, - 19965, 35786, - 19965, 35788, - 19965, 35790, - 19965, 35792, - 19965, 35794, - 19965, 35796, - 19965, 35798, - 19965, 35800, - 19965, 35802, - 19965, 35804, - 19965, 35806, - 19965, 35808, - 19965, 35810, - 19965, 35812, - 19965, 35814, - 19965, 35816, - 19965, 35818, - 19965, 35820, - 19965, 35822, - 19965, 35824, - 19965, 35826, - 19965, 35828, - 19965, 35830, - 19965, 35832, - 19965, 35834, - 19965, 35836, - 19965, 35838, - 19965, 35840, - 19965, 35842, - 19965, 35844, - 19965, 35846, - 19965, 35848, - 19965, 35850, - 19965, 35852, - 19965, 35854, - 19965, 35856, - 19965, 35858, - 19965, 35860, - 19965, 35862, - 19965, 35864, - 19965, 35866, - 19965, 35868, - 19965, 35870, - 19965, 35872, - 19965, 35874, - 19965, 35876, - 19965, 35878, - 19965, 35880, - 19965, 35882, - 19965, 35884, - 19965, 35886, - 19965, 35888, - 19965, 35890, - 19965, 35892, - 19965, 35894, - 19965, 35896, - 19965, 35898, - 19965, 35900, - 19965, 35902, - 19965, 35904, - 19965, 35906, - 19965, 35908, - 19965, 35910, - 19965, 35912, - 19965, 35914, - 19965, 35916, - 19965, 35918, - 19965, 35920, - 19965, 35922, - 19965, 35924, - 19965, 35926, - 19965, 35928, - 19965, 35930, - 19965, 35932, - 19965, 35934, - 19965, 35936, - 19965, 35938, - 19965, 35940, - 19965, 35942, - 19965, 35944, - 19965, 35946, - 19965, 35948, - 19965, 35950, - 19965, 35952, - 19965, 35954, - 19965, 35956, - 19965, 35958, - 19965, 35960, - 19965, 35962, - 19965, 35964, - 19965, 35966, - 19965, 35968, - 19965, 35970, - 19965, 35972, - 19965, 35974, - 19965, 35976, - 19965, 35978, - 19965, 35980, - 19965, 35982, - 19965, 35984, - 19965, 35986, - 19965, 35988, - 19965, 35990, - 19965, 35992, - 19965, 35994, - 19965, 35996, - 19965, 35998, - 19965, 36000, - 19965, 36002, - 19965, 36004, - 19965, 36006, - 19965, 36008, - 19965, 36010, - 19965, 36012, - 19965, 36014, - 19965, 36016, - 19965, 36018, - 19965, 36020, - 19965, 36022, - 19965, 36024, - 19965, 36026, - 19965, 36028, - 19965, 36030, - 19965, 36032, - 19965, 36034, - 19965, 36036, - 19965, 36038, - 19965, 36040, - 19965, 36042, - 19965, 36044, - 19965, 36046, - 19965, 36048, - 19965, 36050, - 19965, 36052, - 19965, 36054, - 19965, 36056, - 19965, 36058, - 19965, 36060, - 19965, 36062, - 19965, 36064, - 19965, 36066, - 19965, 36068, - 19965, 36070, - 19965, 36072, - 19965, 36074, - 19965, 36076, - 19965, 36078, - 19965, 36080, - 19965, 36082, - 19965, 36084, - 19965, 36086, - 19965, 36088, - 19965, 36090, - 19965, 36092, - 19965, 36094, - 19969, 9898, - 19969, 12414, - 19969, 13807, 6122, - 19969, 15182, - 19970, - 19972, - 19981, 17298, - 19986, - 19987, 11513, 21349, 12415, 12318, - 19987, 11513, 21564, - 19995, 7073, 10696, - 19995, 12916, - 19995, 12922, - 19995, 13069, 2760, - 19995, 13069, 3240, - 19995, 13069, 3536, - 19995, 13069, 7036, - 19995, 13069, 7058, - 19995, 13069, 9358, - 19995, 13069, 13150, - 19995, 13069, 14778, - 19995, 13069, 15116, - 19995, 15175, 8809, 8186, - 19995, 15175, 8809, 13056, - 19995, 15175, 8809, 13066, - 19995, 15175, 8809, 13482, - 19995, 15175, 8809, 13674, - 19995, 15175, 8809, 14837, 17028, - 19995, 15175, 8809, 15532, - 19995, 15175, 8809, 15926, - 19995, 15175, 8809, 17028, - 19995, 15175, 8809, 23120, - 19995, 16787, 3412, - 19995, 16787, 3413, 20828, - 19995, 16787, 13254, - 19995, 16787, 13284, - 19995, 16787, 14876, - 19995, 16787, 16108, - 19995, 16787, 16744, - 19995, 16787, 17372, - 19995, 16787, 17474, - 19995, 16787, 18280, - 19995, 16787, 19070, - 19995, 18915, 12916, - 19995, 19057, 8808, - 19995, 20549, 8808, - 19995, 20777, 108, - 19995, 20777, 112, - 19995, 20777, 116, - 19995, 20777, 118, - 19995, 20777, 122, - 19995, 20777, 126, - 19995, 20777, 132, - 19995, 20777, 136, - 19995, 20777, 142, - 19995, 20777, 144, - 19995, 20777, 150, - 19995, 20777, 156, - 19995, 20777, 160, - 19995, 20777, 168, - 19995, 20777, 170, - 19995, 20777, 228, - 19995, 20777, 230, - 19995, 20777, 234, - 19995, 20777, 240, - 19995, 20777, 242, - 19995, 20777, 248, - 19995, 20777, 252, - 19995, 20777, 258, - 19995, 20777, 262, - 19995, 20777, 264, - 19995, 20777, 272, - 19995, 20777, 276, - 19995, 20777, 280, - 19995, 20777, 288, - 19995, 20777, 292, - 19995, 20777, 344, - 19995, 20777, 346, - 19995, 20777, 348, - 19995, 20777, 350, - 19995, 20777, 352, - 19995, 20777, 358, - 19995, 20777, 362, - 19995, 20777, 366, - 19995, 20777, 374, - 19995, 20777, 380, - 19995, 20777, 394, - 19995, 20777, 398, - 19995, 20777, 402, - 19995, 20777, 412, - 19995, 20777, 416, - 19995, 20777, 426, - 19995, 20777, 434, - 19995, 20777, 440, - 19995, 20777, 446, - 19995, 20777, 454, - 19995, 20777, 466, - 19995, 20777, 470, - 19995, 20777, 478, - 19995, 20777, 486, - 19995, 20777, 490, - 19995, 20777, 548, - 19995, 20777, 554, - 19995, 20777, 562, - 19995, 20777, 566, - 19995, 20777, 572, - 19995, 20777, 582, - 19995, 20777, 584, - 19995, 20777, 586, - 19995, 20777, 590, - 19995, 20777, 594, - 19995, 20777, 598, - 19995, 20777, 600, - 19995, 20777, 604, - 19995, 20777, 606, - 19995, 20777, 610, - 19995, 20777, 614, - 19995, 20777, 618, - 19995, 20777, 624, - 19995, 20777, 628, - 19995, 20777, 638, - 19995, 20777, 648, - 19995, 20777, 652, - 19995, 20777, 656, - 19995, 20777, 660, - 19995, 20777, 668, - 19995, 20777, 714, - 19995, 20777, 718, - 19995, 20777, 720, - 19995, 20777, 722, - 19995, 20777, 728, - 19995, 20777, 738, - 19995, 20777, 744, - 19995, 20777, 750, - 19995, 20777, 754, - 19995, 20777, 756, - 19995, 20777, 762, - 19995, 20777, 764, - 19995, 20777, 768, - 19995, 20777, 770, - 19995, 20777, 772, - 19995, 20777, 778, - 19995, 20777, 780, - 19995, 20777, 782, - 19995, 20777, 786, - 19995, 20777, 790, - 19995, 20777, 796, - 19995, 20777, 798, - 19995, 20777, 802, - 19995, 20777, 804, - 19995, 20777, 806, - 19995, 20777, 950, - 19995, 20777, 972, - 19995, 20777, 974, - 19995, 20777, 976, - 19995, 20777, 978, - 19995, 20777, 980, - 19995, 20777, 986, - 19995, 20777, 1024, - 19995, 20777, 1060, - 19995, 20777, 1062, - 19995, 20777, 1064, - 19995, 20777, 1076, - 19995, 20777, 1096, - 19995, 20777, 1098, - 19995, 20777, 1100, - 19995, 20777, 1102, - 19995, 20777, 1104, - 19995, 20777, 1106, - 19995, 20777, 1116, - 19995, 20777, 1118, - 19995, 20777, 1120, - 19995, 20777, 1122, - 19995, 20777, 1124, - 19995, 20777, 1146, - 19995, 20777, 1172, - 19995, 20777, 1190, - 19995, 20777, 1214, - 19995, 20777, 1216, - 19995, 20777, 1218, - 19995, 20777, 1220, - 19995, 20777, 1222, - 19995, 20777, 1224, - 19995, 20777, 1278, - 19995, 20777, 1322, - 19995, 20777, 1332, - 19995, 20777, 1334, - 19995, 20777, 1336, - 19995, 20777, 1338, - 19995, 20777, 1440, - 19995, 20777, 1460, - 19995, 20777, 1510, - 19995, 20777, 1512, - 19995, 20777, 1514, - 19995, 20777, 1516, - 19995, 20777, 1526, - 19995, 20777, 1564, - 19995, 20777, 1578, - 19995, 20777, 1580, - 19995, 20777, 1582, - 19995, 20777, 1584, - 19995, 20777, 1586, - 19995, 20777, 1622, - 19995, 20777, 1660, - 19995, 20777, 1662, - 19995, 20777, 1664, - 19995, 20777, 1668, - 19995, 20777, 1670, - 19995, 20777, 1672, - 19995, 20777, 1674, - 19995, 20777, 1676, - 19995, 20777, 1678, - 19995, 20777, 1708, - 19995, 20777, 1722, - 19995, 20777, 1724, - 19995, 20777, 1726, - 19995, 20777, 1728, - 19995, 20777, 1730, - 19995, 20777, 1774, - 19995, 20777, 1902, - 19995, 20777, 1910, - 19995, 20777, 1946, - 19995, 20777, 1970, - 19995, 20777, 1982, - 19995, 20777, 2018, - 19995, 20777, 2088, - 19995, 20777, 2156, - 19995, 20777, 2160, - 19995, 20777, 2162, - 19995, 20777, 2170, - 19995, 20777, 2172, - 19995, 20777, 2174, - 19995, 20777, 2176, - 19995, 20777, 2178, - 19995, 20777, 2180, - 19995, 20777, 2182, - 19995, 20777, 2184, - 19995, 20777, 2186, - 19995, 20777, 2188, - 19995, 20777, 2190, - 19995, 20777, 2230, - 19995, 20777, 2284, - 19995, 20777, 2338, - 19995, 20777, 2360, - 19995, 20777, 2404, - 19995, 20777, 2450, - 19995, 20777, 2492, - 19995, 20777, 2494, - 19995, 20777, 2496, - 19995, 20777, 2500, - 19995, 20777, 2512, - 19995, 20777, 2558, - 19995, 20777, 2632, - 19995, 20777, 2688, - 19995, 20777, 2698, - 19995, 20777, 2702, - 19995, 20777, 2704, - 19995, 20777, 2706, - 19995, 20777, 2708, - 19995, 20777, 2788, - 19995, 20777, 2818, - 19995, 20777, 2830, - 19995, 20777, 2832, - 19995, 20777, 2834, - 19995, 20777, 2836, - 19995, 20777, 2838, - 19995, 20777, 2858, - 19995, 20777, 2908, - 19995, 20777, 2910, - 19995, 20777, 2912, - 19995, 20777, 2924, - 19995, 20777, 2938, - 19995, 20777, 2942, - 19995, 20777, 2944, - 19995, 20777, 2946, - 19995, 20777, 2948, - 19995, 20777, 2950, - 19995, 20777, 2964, - 19995, 20777, 3000, - 19995, 20777, 3002, - 19995, 20777, 3004, - 19995, 20777, 3006, - 19995, 20777, 3008, - 19995, 20777, 3010, - 19995, 20777, 3012, - 19995, 20777, 3020, - 19995, 20777, 3028, - 19995, 20777, 3060, - 19995, 20777, 3100, - 19995, 20777, 3150, - 19995, 20777, 3158, - 19995, 20777, 3172, - 19995, 20777, 3200, - 19995, 20777, 3212, - 19995, 20777, 3214, - 19995, 20777, 3216, - 19995, 20777, 3218, - 19995, 20777, 3220, - 19995, 20777, 3250, - 19995, 20777, 3286, - 19995, 20777, 3288, - 19995, 20777, 3290, - 19995, 20777, 3292, - 19995, 20777, 3294, - 19995, 20777, 3324, - 19995, 20777, 3348, - 19995, 20777, 3350, - 19995, 20777, 3352, - 19995, 20777, 3354, - 19995, 20777, 3358, - 19995, 20777, 3364, - 19995, 20777, 3406, - 19995, 20777, 3422, - 19995, 20777, 3424, - 19995, 20777, 3426, - 19995, 20777, 3428, - 19995, 20777, 3430, - 19995, 20777, 3466, - 19995, 20777, 3488, - 19995, 20777, 3490, - 19995, 20777, 3492, - 19995, 20777, 3494, - 19995, 20777, 3496, - 19995, 20777, 3530, - 19995, 20777, 3550, - 19995, 20777, 3552, - 19995, 20777, 3554, - 19995, 20777, 3556, - 19995, 20777, 3558, - 19995, 20777, 3654, - 19995, 20777, 3672, - 19995, 20777, 3724, - 19995, 20777, 3736, - 19995, 20777, 3758, - 19995, 20777, 3776, - 19995, 20777, 3810, - 19995, 20777, 3816, - 19995, 20777, 3830, - 19995, 20777, 3846, - 19995, 20777, 3848, - 19995, 20777, 3850, - 19995, 20777, 3852, - 19995, 20777, 3854, - 19995, 20777, 3856, - 19995, 20777, 3858, - 19995, 20777, 3866, - 19995, 20777, 3870, - 19995, 20777, 3916, - 19995, 20777, 3950, - 19995, 20777, 4016, - 19995, 20777, 4034, - 19995, 20777, 4042, - 19995, 20777, 4044, - 19995, 20777, 4046, - 19995, 20777, 4048, - 19995, 20777, 4050, - 19995, 20777, 4072, - 19995, 20777, 4100, - 19995, 20777, 4112, - 19995, 20777, 4114, - 19995, 20777, 4116, - 19995, 20777, 4118, - 19995, 20777, 4120, - 19995, 20777, 5998, - 19995, 20777, 6006, - 19995, 20777, 6144, - 19995, 20777, 6236, - 19995, 20777, 6238, - 19995, 20777, 6240, - 19995, 20777, 6242, - 19995, 20777, 6244, - 19995, 20777, 6246, - 19995, 20777, 6248, - 19995, 20777, 6258, - 19995, 20777, 6276, - 19995, 20777, 6296, - 19995, 20777, 6316, - 19995, 20777, 6554, - 19995, 20777, 6566, - 19995, 20777, 6574, - 19995, 20777, 6576, - 19995, 20777, 6578, - 19995, 20777, 6580, - 19995, 20777, 6590, - 19995, 20777, 6608, - 19995, 20777, 6734, - 19995, 20777, 6738, - 19995, 20777, 7090, - 19995, 20777, 7244, - 19995, 20777, 7252, - 19995, 20777, 7282, - 19995, 20777, 7284, - 19995, 20777, 7286, - 19995, 20777, 7370, - 19995, 20777, 7372, - 19995, 20777, 7374, - 19995, 20777, 7380, - 19995, 20777, 7482, - 19995, 20777, 7484, - 19995, 20777, 7486, - 19995, 20777, 7488, - 19995, 20777, 7490, - 19995, 20777, 7492, - 19995, 20777, 7494, - 19995, 20777, 7496, - 19995, 20777, 7498, - 19995, 20777, 7500, - 19995, 20777, 8192, - 19995, 20777, 8196, - 19995, 20777, 8202, - 19995, 20777, 8204, - 19995, 20777, 8206, - 19995, 20777, 8208, - 19995, 20777, 8210, - 19995, 20777, 8212, - 19995, 20777, 8214, - 19995, 20777, 9024, - 19995, 20777, 9546, - 19995, 20777, 9558, - 19995, 20777, 9584, - 19995, 20777, 9608, - 19995, 20777, 9852, - 19995, 20777, 9862, - 19995, 20777, 9864, - 19995, 20777, 9868, - 19995, 20777, 9938, - 19995, 20777, 9972, - 19995, 20777, 9976, - 19995, 20777, 9978, - 19995, 20777, 9980, - 19995, 20777, 9982, - 19995, 20777, 10006, - 19995, 20777, 10008, - 19995, 20777, 10010, - 19995, 20777, 10012, - 19995, 20777, 10442, - 19995, 20777, 10458, - 19995, 20777, 10486, - 19995, 20777, 10530, - 19995, 20777, 10642, - 19995, 20777, 10650, - 19995, 20777, 10752, - 19995, 20777, 10754, - 19995, 20777, 10756, - 19995, 20777, 10922, - 19995, 20777, 10938, - 19995, 20777, 10952, - 19995, 20777, 10962, - 19995, 20777, 11052, - 19995, 20777, 11056, - 19995, 20777, 11070, - 19995, 20777, 11084, - 19995, 20777, 11086, - 19995, 20777, 11088, - 19995, 20777, 11090, - 19995, 20777, 11142, - 19995, 20777, 11144, - 19995, 20777, 11148, - 19995, 20777, 11586, - 19995, 20777, 11588, - 19995, 20777, 11590, - 19995, 20777, 11592, - 19995, 20777, 11830, - 19995, 20777, 11840, - 19995, 20777, 11870, - 19995, 20777, 11904, - 19995, 20777, 11912, - 19995, 20777, 12624, - 19995, 20777, 12626, - 19995, 20777, 12628, - 19995, 20777, 12630, - 19995, 20777, 12632, - 19995, 20777, 12634, - 19995, 20777, 12636, - 19995, 20777, 13032, - 19995, 20777, 13034, - 19995, 20777, 13366, - 19995, 20777, 13368, - 19995, 20777, 13476, - 19995, 20777, 13478, - 19995, 20777, 13480, - 19995, 20777, 13746, - 19995, 20777, 13748, - 19995, 20777, 14590, - 19995, 20777, 14592, - 19995, 20777, 15228, - 19995, 20777, 15230, - 19995, 20777, 15894, - 19995, 20777, 15896, - 19995, 20777, 16291, 1064, - 19995, 20777, 16291, 1514, - 19995, 20777, 16291, 1662, - 19995, 20777, 16291, 1664, - 19995, 20777, 16291, 2160, - 19995, 20777, 16291, 2162, - 19995, 20777, 16291, 2496, - 19995, 20777, 16291, 2912, - 19995, 20777, 16291, 3002, - 19995, 20777, 16291, 3004, - 19995, 20777, 16291, 6144, - 19995, 20777, 16291, 7090, - 19995, 20777, 16291, 7372, - 19995, 20777, 16291, 7486, - 19995, 20777, 16291, 8196, - 19995, 20777, 16291, 9024, - 19995, 20777, 16291, 9938, - 19995, 20777, 16291, 10008, - 19995, 20777, 18213, 0, - 19995, 20777, 18213, 8, - 19995, 20777, 18213, 16, - 19995, 20777, 18213, 28, - 19995, 20777, 18213, 40, - 19995, 20777, 18213, 58, - 19995, 20777, 18213, 186, - 19995, 20777, 18213, 498, - 19995, 20777, 18213, 738, - 19995, 20777, 21841, 1060, - 19995, 20777, 21841, 1510, - 19995, 20777, 21841, 2492, - 19995, 20777, 21841, 2908, - 19995, 20777, 22763, 0, - 19995, 20777, 22763, 8, - 19995, 20777, 22763, 16, - 19995, 20777, 22763, 28, - 19995, 20777, 22763, 40, - 19995, 20777, 22763, 58, - 19995, 20777, 22763, 186, - 19995, 21127, 15407, 16525, 8808, - 19995, 21127, 22465, 897, 15407, 16525, 8808, - 19995, 21127, 22465, 8808, - 19995, 21729, 21850, - 19995, 21844, - 19995, 22128, - 19997, 9915, 16802, - 19997, 15890, - 20003, 23751, 13069, 2760, - 20003, 23751, 13069, 3240, - 20003, 23751, 13069, 3536, - 20003, 23751, 13069, 7036, - 20003, 23751, 13069, 7058, - 20003, 23751, 13069, 9358, - 20003, 23751, 13069, 11824, - 20003, 23751, 13069, 13150, - 20003, 23751, 13069, 14778, - 20003, 23751, 13069, 15116, - 20011, 18767, 21498, - 20027, 20684, - 20032, - 20035, 6082, - 20036, - 20050, - 20055, 14890, - 20055, 21649, 2760, - 20061, 6996, - 20063, 6997, 11513, 9783, 14030, - 20067, 23048, - 20077, 14911, 16531, 82, - 20077, 14911, 16531, 204, - 20077, 14911, 16531, 276, - 20077, 14911, 16531, 322, - 20077, 14911, 16531, 520, - 20077, 14911, 16531, 694, - 20077, 14911, 16531, 744, - 20077, 14911, 16531, 784, - 20077, 14911, 16531, 864, - 20077, 14911, 16531, 960, - 20077, 14911, 16531, 1084, - 20077, 14911, 16531, 1132, - 20077, 14911, 16531, 1284, - 20077, 14911, 16531, 1542, - 20077, 14911, 16531, 1680, - 20077, 14911, 16531, 1696, - 20077, 14911, 16531, 1732, - 20077, 14911, 16531, 1776, - 20077, 14911, 16531, 1926, - 20077, 14911, 16531, 2000, - 20077, 14911, 16531, 2212, - 20077, 14911, 16531, 2368, - 20077, 14911, 16531, 2528, - 20077, 14911, 16531, 2800, - 20077, 14911, 16531, 2932, - 20077, 14911, 16531, 3034, - 20077, 14911, 16531, 3184, - 20077, 14911, 16531, 3380, - 20077, 14911, 16531, 3388, - 20077, 14911, 16531, 3690, - 20077, 14911, 16531, 3812, - 20077, 14911, 16531, 4036, - 20077, 14911, 16531, 6268, - 20077, 14911, 16531, 6294, - 20077, 14911, 16531, 7292, - 20077, 14911, 16531, 7856, - 20077, 14911, 16531, 8060, - 20077, 14911, 16531, 9860, - 20077, 14911, 16531, 10478, - 20077, 14911, 16531, 11834, - 20077, 16531, 82, - 20077, 16531, 204, - 20077, 16531, 234, - 20077, 16531, 276, - 20077, 16531, 322, - 20077, 16531, 520, - 20077, 16531, 694, - 20077, 16531, 744, - 20077, 16531, 784, - 20077, 16531, 864, - 20077, 16531, 880, - 20077, 16531, 960, - 20077, 16531, 1084, - 20077, 16531, 1132, - 20077, 16531, 1284, - 20077, 16531, 1542, - 20077, 16531, 1680, - 20077, 16531, 1696, - 20077, 16531, 1732, - 20077, 16531, 1776, - 20077, 16531, 1926, - 20077, 16531, 2000, - 20077, 16531, 2212, - 20077, 16531, 2368, - 20077, 16531, 2528, - 20077, 16531, 2800, - 20077, 16531, 2932, - 20077, 16531, 3034, - 20077, 16531, 3184, - 20077, 16531, 3380, - 20077, 16531, 3388, - 20077, 16531, 3690, - 20077, 16531, 3812, - 20077, 16531, 4036, - 20077, 16531, 6268, - 20077, 16531, 6294, - 20077, 16531, 7292, - 20077, 16531, 7437, 10574, - 20077, 16531, 7856, - 20077, 16531, 8060, - 20077, 16531, 9860, - 20077, 16531, 10478, - 20077, 16531, 11834, - 20077, 16531, 13156, - 20077, 16531, 16497, 10574, - 20077, 16531, 17465, 1542, - 20077, 17835, 16531, 82, - 20077, 17835, 16531, 204, - 20077, 17835, 16531, 276, - 20077, 17835, 16531, 322, - 20077, 17835, 16531, 520, - 20077, 17835, 16531, 694, - 20077, 17835, 16531, 744, - 20077, 17835, 16531, 784, - 20077, 17835, 16531, 864, - 20077, 17835, 16531, 960, - 20077, 17835, 16531, 1084, - 20077, 17835, 16531, 1132, - 20077, 17835, 16531, 1284, - 20077, 17835, 16531, 1542, - 20077, 17835, 16531, 1680, - 20077, 17835, 16531, 1696, - 20077, 17835, 16531, 1732, - 20077, 17835, 16531, 1776, - 20077, 17835, 16531, 1926, - 20077, 17835, 16531, 2000, - 20077, 17835, 16531, 2212, - 20077, 17835, 16531, 2368, - 20077, 17835, 16531, 2528, - 20077, 17835, 16531, 2800, - 20077, 17835, 16531, 2932, - 20077, 17835, 16531, 3034, - 20077, 17835, 16531, 3184, - 20077, 17835, 16531, 3380, - 20077, 17835, 16531, 3388, - 20077, 17835, 16531, 3690, - 20077, 17835, 16531, 3812, - 20077, 17835, 16531, 4036, - 20077, 17835, 16531, 6268, - 20077, 17835, 16531, 6294, - 20077, 17835, 16531, 7292, - 20077, 17835, 16531, 7856, - 20077, 17835, 16531, 8060, - 20077, 17835, 16531, 9860, - 20077, 17835, 16531, 10478, - 20077, 17835, 16531, 11834, - 20077, 20337, 17835, 16531, 82, - 20077, 20337, 17835, 16531, 204, - 20077, 20337, 17835, 16531, 234, - 20077, 20337, 17835, 16531, 276, - 20077, 20337, 17835, 16531, 322, - 20077, 20337, 17835, 16531, 520, - 20077, 20337, 17835, 16531, 694, - 20077, 20337, 17835, 16531, 744, - 20077, 20337, 17835, 16531, 784, - 20077, 20337, 17835, 16531, 864, - 20077, 20337, 17835, 16531, 880, - 20077, 20337, 17835, 16531, 960, - 20077, 20337, 17835, 16531, 1084, - 20077, 20337, 17835, 16531, 1132, - 20077, 20337, 17835, 16531, 1284, - 20077, 20337, 17835, 16531, 1542, - 20077, 20337, 17835, 16531, 1680, - 20077, 20337, 17835, 16531, 1696, - 20077, 20337, 17835, 16531, 1732, - 20077, 20337, 17835, 16531, 1776, - 20077, 20337, 17835, 16531, 1926, - 20077, 20337, 17835, 16531, 2000, - 20077, 20337, 17835, 16531, 2212, - 20077, 20337, 17835, 16531, 2368, - 20077, 20337, 17835, 16531, 2528, - 20077, 20337, 17835, 16531, 2800, - 20077, 20337, 17835, 16531, 2932, - 20077, 20337, 17835, 16531, 3034, - 20077, 20337, 17835, 16531, 3184, - 20077, 20337, 17835, 16531, 3380, - 20077, 20337, 17835, 16531, 3388, - 20077, 20337, 17835, 16531, 3690, - 20077, 20337, 17835, 16531, 3812, - 20077, 20337, 17835, 16531, 4036, - 20077, 20337, 17835, 16531, 6268, - 20077, 20337, 17835, 16531, 6294, - 20077, 20337, 17835, 16531, 7292, - 20077, 20337, 17835, 16531, 7437, 10574, - 20077, 20337, 17835, 16531, 7856, - 20077, 20337, 17835, 16531, 8060, - 20077, 20337, 17835, 16531, 9860, - 20077, 20337, 17835, 16531, 10478, - 20077, 20337, 17835, 16531, 11834, - 20077, 20337, 17835, 16531, 13156, - 20077, 20337, 17835, 16531, 16497, 10574, - 20077, 20337, 17835, 16531, 17465, 1542, - 20077, 21729, 21850, - 20080, - 20085, 1091, 6997, 11513, 19129, 6882, - 20085, 6996, - 20085, 6997, 11513, 2761, 13779, 897, 2761, 14911, 1432, - 20085, 6997, 11513, 10691, 6882, - 20085, 6997, 11513, 19129, 6882, - 20089, 518, - 20089, 10575, 14334, - 20089, 10575, 15000, - 20089, 10575, 15939, 14335, 12318, - 20089, 10575, 16588, - 20089, 10575, 17116, - 20089, 10575, 17534, - 20089, 10575, 19408, - 20089, 10575, 19540, - 20089, 10575, 19586, - 20089, 10575, 22047, 14335, 12318, - 20089, 10575, 23003, 14335, 12318, - 20089, 10575, 23070, - 20089, 13069, 2760, - 20089, 13069, 3240, - 20089, 13069, 3536, - 20089, 13069, 7036, - 20089, 13069, 7058, - 20089, 13069, 9358, - 20089, 13069, 11824, - 20089, 13069, 13150, - 20089, 13069, 14778, - 20089, 13069, 15116, - 20089, 14699, 10574, - 20089, 15407, 10575, 8, - 20089, 15407, 10575, 16, - 20089, 15407, 10575, 28, - 20089, 15407, 10575, 40, - 20089, 15407, 10575, 58, - 20089, 15407, 10575, 72, - 20089, 15407, 10575, 96, - 20089, 15407, 10575, 314, - 20089, 15407, 10575, 706, - 20089, 15407, 10575, 15877, 8, - 20089, 15407, 10575, 15877, 28, - 20089, 15407, 10575, 19415, 22, - 20089, 15407, 10575, 19415, 34, - 20089, 15407, 10575, 19415, 406, - 20089, 15407, 10575, 19415, 608, - 20089, 15407, 15877, 8, - 20089, 15407, 15877, 28, - 20089, 16531, 0, - 20089, 16531, 8, - 20089, 16531, 16, - 20089, 16531, 28, - 20089, 16531, 40, - 20089, 16531, 58, - 20089, 16531, 72, - 20089, 16531, 96, - 20089, 16531, 108, - 20089, 16531, 126, - 20089, 16531, 150, - 20089, 16531, 248, - 20089, 16531, 272, - 20089, 16531, 314, - 20089, 16531, 344, - 20089, 16531, 358, - 20089, 16531, 394, - 20089, 16531, 426, - 20089, 16531, 466, - 20089, 16531, 548, - 20089, 16531, 598, - 20089, 16531, 614, - 20089, 16531, 648, - 20089, 16531, 706, - 20089, 16531, 714, - 20089, 16531, 778, - 20089, 16531, 1000, - 20089, 16531, 1116, - 20089, 16531, 1214, - 20089, 16531, 1236, - 20089, 16531, 1588, - 20089, 16531, 1918, - 20089, 16531, 2036, - 20089, 16531, 2278, - 20089, 16531, 2574, - 20089, 16531, 2624, - 20089, 16531, 2698, - 20089, 16531, 2830, - 20089, 16531, 3212, - 20089, 16531, 3286, - 20089, 16531, 3422, - 20089, 16531, 3502, - 20089, 16531, 4042, - 20089, 16531, 6572, - 20089, 16531, 11082, - 20089, 16531, 19415, 22, - 20089, 16531, 19415, 34, - 20089, 16531, 19415, 406, - 20089, 16531, 19415, 608, - 20089, 23737, 10574, - 20091, 199, 14432, - 20091, 1890, - 20091, 3632, - 20091, 10575, 5455, 12514, - 20091, 10575, 12514, - 20091, 10575, 14334, - 20091, 10575, 15272, - 20091, 10575, 17534, - 20091, 10575, 17596, - 20091, 10575, 19408, - 20091, 12322, - 20091, 13069, 2760, - 20091, 13069, 3240, - 20091, 13069, 3536, - 20091, 13069, 7036, - 20091, 13069, 7058, - 20091, 13069, 9358, - 20091, 13069, 11824, - 20091, 13069, 13150, - 20091, 13069, 14778, - 20091, 13069, 15116, - 20091, 15150, - 20091, 15407, 10575, 16, - 20091, 15407, 10575, 40, - 20091, 15407, 10575, 58, - 20091, 15407, 10575, 72, - 20091, 15407, 10575, 96, - 20091, 15407, 10575, 186, - 20091, 15407, 10575, 314, - 20091, 15407, 10575, 522, - 20091, 15407, 10575, 706, - 20091, 16531, 0, - 20091, 16531, 16, - 20091, 16531, 40, - 20091, 16531, 58, - 20091, 16531, 72, - 20091, 16531, 96, - 20091, 16531, 108, - 20091, 16531, 126, - 20091, 16531, 150, - 20091, 16531, 186, - 20091, 16531, 228, - 20091, 16531, 248, - 20091, 16531, 272, - 20091, 16531, 314, - 20091, 16531, 344, - 20091, 16531, 358, - 20091, 16531, 394, - 20091, 16531, 426, - 20091, 16531, 466, - 20091, 16531, 522, - 20091, 16531, 548, - 20091, 16531, 598, - 20091, 16531, 614, - 20091, 16531, 648, - 20091, 16531, 706, - 20091, 16531, 714, - 20091, 16531, 778, - 20091, 16531, 796, - 20091, 16531, 1000, - 20091, 16531, 1116, - 20091, 16531, 1214, - 20091, 16531, 1236, - 20091, 16531, 1588, - 20091, 16531, 1918, - 20091, 16531, 2036, - 20091, 16531, 2278, - 20091, 16531, 2574, - 20091, 16531, 2624, - 20091, 16531, 2698, - 20091, 16531, 2830, - 20091, 16531, 3118, - 20091, 16531, 3212, - 20091, 16531, 3422, - 20091, 16531, 3502, - 20091, 16531, 6572, - 20091, 16531, 7300, - 20091, 16531, 8068, - 20091, 16531, 11082, - 20091, 23737, 10574, - 20096, - 20099, 18727, 2760, - 20099, 18727, 3240, - 20099, 18727, 3412, - 20099, 18727, 3536, - 20099, 18727, 7036, - 20099, 18727, 7058, - 20099, 18727, 9358, - 20099, 18727, 13150, - 20099, 18727, 14778, - 20099, 18727, 15116, - 20099, 18727, 17372, - 20099, 18727, 17474, - 20109, 12672, - 20112, - 20115, 1493, 3425, 5528, - 20115, 1493, 3425, 11486, - 20115, 1493, 3425, 16154, - 20115, 1493, 3425, 16247, 11504, - 20115, 1493, 3425, 16407, 8248, - 20115, 1493, 3425, 17637, 15436, - 20115, 1493, 3425, 18347, 14979, 20332, - 20115, 1493, 3425, 19565, 19282, - 20115, 1493, 3425, 19664, - 20115, 1493, 3425, 19709, 7026, - 20115, 1493, 3425, 19737, 16324, - 20115, 1493, 3425, 20283, 16598, - 20115, 1493, 3425, 20948, - 20115, 1493, 3425, 21787, 13140, - 20115, 1493, 11539, 521, 3425, 17970, - 20115, 1493, 12331, 22228, - 20115, 1493, 13408, - 20115, 1493, 13419, 14568, - 20115, 1493, 13419, 17318, - 20115, 1493, 13419, 22780, - 20115, 1493, 13419, 25902, - 20115, 1493, 13599, 15212, - 20115, 1493, 14031, 17916, - 20115, 1493, 14502, - 20115, 1493, 14911, 17318, - 20115, 1493, 14911, 25902, - 20115, 1493, 15799, 22228, - 20115, 1493, 15819, 19280, - 20115, 1493, 15963, 661, 8852, - 20115, 1493, 17022, - 20115, 1493, 18273, 20842, - 20115, 1493, 18630, - 20115, 1493, 18945, 17506, - 20115, 1493, 18996, - 20115, 1493, 19424, - 20115, 1493, 19550, - 20115, 1493, 19720, - 20115, 1493, 19774, - 20115, 1493, 19958, - 20115, 1493, 20146, - 20115, 1493, 20532, - 20115, 1493, 20854, - 20115, 1493, 20967, 13276, - 20115, 1493, 20986, - 20115, 1493, 21171, 507, 3425, 13806, - 20115, 1493, 21410, - 20115, 1493, 21425, 20842, - 20115, 1493, 21502, - 20115, 1493, 21504, - 20115, 1493, 21899, 12392, - 20115, 1493, 22279, 95, 3425, 21050, - 20115, 1493, 22280, - 20115, 1493, 22424, - 20115, 1493, 22446, - 20115, 1493, 22542, - 20115, 1493, 22726, - 20115, 1493, 22728, - 20115, 1493, 22826, - 20115, 1493, 22944, - 20115, 1493, 23114, - 20115, 1493, 23124, - 20115, 1493, 23370, - 20115, 1493, 23772, - 20115, 1493, 25750, - 20118, - 20123, 16531, 0, - 20123, 16531, 8, - 20123, 16531, 16, - 20123, 16531, 26, - 20123, 16531, 28, - 20123, 16531, 40, - 20123, 16531, 108, - 20123, 16531, 112, - 20123, 16531, 116, - 20123, 16531, 118, - 20123, 16531, 122, - 20123, 16531, 150, - 20123, 16531, 156, - 20123, 16531, 160, - 20123, 16531, 168, - 20123, 16531, 170, - 20123, 16531, 248, - 20123, 16531, 252, - 20123, 16531, 258, - 20123, 16531, 262, - 20123, 16531, 264, - 20123, 16531, 272, - 20123, 16531, 276, - 20123, 16531, 280, - 20123, 16531, 288, - 20123, 16531, 292, - 20123, 16531, 358, - 20123, 16531, 362, - 20123, 16531, 366, - 20123, 16531, 374, - 20123, 16531, 380, - 20123, 16531, 426, - 20123, 16531, 434, - 20123, 16531, 440, - 20123, 16531, 446, - 20123, 16531, 454, - 20123, 16531, 466, - 20123, 16531, 470, - 20123, 16531, 478, - 20123, 16531, 486, - 20123, 16531, 490, - 20123, 16531, 548, - 20123, 16531, 554, - 20123, 16531, 562, - 20123, 16531, 566, - 20123, 16531, 572, - 20123, 16531, 598, - 20123, 16531, 600, - 20123, 16531, 604, - 20123, 16531, 606, - 20123, 16531, 610, - 20123, 16531, 614, - 20123, 16531, 618, - 20123, 16531, 624, - 20123, 16531, 628, - 20123, 16531, 638, - 20123, 16531, 648, - 20123, 16531, 652, - 20123, 16531, 656, - 20123, 16531, 660, - 20123, 16531, 668, - 20123, 16531, 728, - 20123, 16531, 738, - 20123, 16531, 744, - 20123, 16531, 750, - 20123, 16531, 754, - 20123, 16531, 778, - 20123, 16531, 786, - 20123, 16531, 790, - 20123, 16531, 796, - 20123, 16531, 798, - 20123, 16531, 802, - 20123, 16531, 804, - 20123, 16531, 806, - 20123, 16531, 14911, 0, - 20123, 16531, 14911, 8, - 20123, 16531, 14911, 16, - 20123, 16531, 14911, 28, - 20123, 16531, 14911, 40, - 20123, 16531, 14911, 358, - 20123, 16531, 14911, 362, - 20123, 16531, 14911, 374, - 20123, 16531, 14911, 668, - 20123, 16531, 14911, 738, - 20123, 16531, 14911, 744, - 20123, 16531, 14911, 750, - 20123, 16531, 14911, 754, - 20123, 16531, 14911, 778, - 20123, 16531, 14911, 786, - 20123, 16531, 14911, 790, - 20123, 16531, 17709, 756, - 20123, 16531, 17709, 780, - 20123, 17539, 21517, 8808, - 20123, 17995, 11728, - 20123, 21517, 8808, - 20125, 10590, - 20126, - 20128, - 20134, - 20143, 17707, 16531, 276, - 20143, 17707, 16531, 554, - 20143, 17707, 16531, 2406, - 20143, 17707, 16531, 2676, - 20143, 17707, 16531, 3398, - 20143, 17707, 16531, 3750, - 20143, 17707, 16531, 5556, - 20143, 17707, 16531, 6066, - 20143, 17707, 16531, 7478, - 20143, 17707, 16531, 8002, - 20143, 17707, 16531, 9992, - 20143, 17707, 16531, 10120, - 20143, 17707, 16531, 10478, - 20143, 17707, 16531, 10914, - 20143, 17707, 16531, 11722, - 20143, 17707, 16531, 12354, - 20143, 17707, 16531, 13384, - 20143, 17707, 16531, 14720, - 20143, 17707, 16531, 15606, - 20143, 17707, 16531, 16010, - 20143, 17707, 16531, 16508, - 20143, 17707, 16531, 17060, - 20143, 17707, 16787, 2760, - 20143, 17707, 16787, 2761, 18280, - 20143, 17707, 16787, 2761, 20828, - 20143, 17707, 16787, 3412, - 20143, 17707, 16787, 3413, 20828, - 20143, 17707, 16787, 3536, - 20143, 17707, 16787, 15116, - 20143, 17707, 16787, 17474, - 20143, 17707, 19057, 10574, - 20145, 19986, - 20147, 7047, 10593, 17298, - 20152, - 20153, 18671, 11513, 20933, 964, - 20156, - 20157, 11513, 15147, 10574, - 20157, 11513, 15282, - 20157, 11513, 16095, 17264, - 20157, 11513, 18778, - 20157, 11513, 20920, - 20157, 11513, 21557, 12415, 11513, 7658, - 20157, 11513, 23882, - 20157, 15733, 1, 14559, 20406, - 20157, 17723, 11513, 14890, - 20157, 21382, - 20161, 18932, - 20163, 2301, 16420, - 20163, 2301, 16421, 11513, 16421, 12318, - 20163, 2751, 10574, - 20163, 8271, 36, - 20163, 20549, 8808, - 20163, 20924, - 20163, 21732, - 20163, 23213, 8808, - 20163, 23284, - 20173, 5987, 17298, - 20173, 9764, - 20173, 9915, 16802, - 20173, 13094, - 20173, 15890, - 20173, 16272, - 20173, 17299, 1493, 19604, - 20173, 22509, 20709, 17298, - 20175, 8281, 21804, - 20175, 9817, 5456, - 20175, 9817, 5457, 5456, - 20175, 9817, 12368, - 20175, 9817, 13844, - 20175, 9817, 13898, - 20175, 9817, 15155, 19352, - 20175, 9817, 15460, - 20175, 9817, 16554, - 20175, 9817, 16580, - 20175, 9817, 18804, - 20175, 9817, 18876, - 20175, 9817, 21512, - 20175, 10575, 12640, - 20175, 10575, 12641, 10902, - 20175, 10575, 13786, - 20175, 10575, 19438, - 20175, 10575, 21722, - 20175, 13069, 2760, - 20175, 13069, 3240, - 20175, 13069, 3536, - 20175, 13069, 7036, - 20175, 13069, 7058, - 20175, 13069, 9358, - 20175, 13069, 11824, - 20175, 13069, 13150, - 20175, 13069, 14778, - 20175, 13069, 15116, - 20175, 14659, 21804, - 20175, 15407, 10575, 10728, - 20175, 15407, 10575, 10729, 16644, - 20175, 15407, 10575, 11544, - 20175, 15407, 10575, 11545, 13952, - 20175, 15407, 10575, 13077, 9014, - 20175, 15407, 10575, 14520, - 20175, 15407, 10575, 17314, - 20175, 15407, 10575, 17330, - 20175, 15407, 10575, 17396, - 20175, 16531, 0, - 20175, 16531, 8, - 20175, 16531, 16, - 20175, 16531, 17, 8018, - 20175, 16531, 28, - 20175, 16531, 40, - 20175, 16531, 72, - 20175, 16531, 108, - 20175, 16531, 109, 14048, - 20175, 16531, 126, - 20175, 16531, 127, 14048, - 20175, 16531, 150, - 20175, 16531, 151, 21570, - 20175, 16531, 248, - 20175, 16531, 249, 14048, - 20175, 16531, 272, - 20175, 16531, 314, - 20175, 16531, 344, - 20175, 16531, 345, 21570, - 20175, 16531, 358, - 20175, 16531, 359, 14048, - 20175, 16531, 359, 14746, - 20175, 16531, 394, - 20175, 16531, 426, - 20175, 16531, 466, - 20175, 16531, 467, 14048, - 20175, 16531, 548, - 20175, 16531, 549, 12646, - 20175, 16531, 549, 14048, - 20175, 16531, 598, - 20175, 16531, 599, 12336, - 20175, 16531, 614, - 20175, 16531, 615, 14048, - 20175, 16531, 615, 21570, - 20175, 16531, 648, - 20175, 16531, 649, 14048, - 20175, 16531, 738, - 20175, 16531, 778, - 20175, 16531, 1214, - 20175, 16531, 1215, 21570, - 20175, 16531, 2574, - 20175, 16531, 2575, 13792, - 20175, 16531, 2575, 13793, 18972, - 20175, 16531, 2698, - 20175, 16531, 2699, 14048, - 20175, 16531, 3502, - 20175, 16531, 3503, 21570, - 20175, 17465, 9817, 18876, - 20175, 18806, - 20175, 21143, 10575, 12600, - 20175, 21143, 10575, 13676, - 20175, 21143, 10575, 18832, - 20175, 23510, - 20178, - 20180, - 20183, 18727, 2760, - 20183, 18727, 3240, - 20183, 18727, 3412, - 20183, 18727, 3536, - 20183, 18727, 7036, - 20183, 18727, 7058, - 20183, 18727, 9358, - 20183, 18727, 11824, - 20183, 18727, 13150, - 20183, 18727, 14778, - 20183, 18727, 15116, - 20183, 18727, 16110, - 20183, 18727, 17472, - 20183, 18727, 18148, - 20183, 18727, 19116, - 20183, 18727, 19966, - 20183, 18727, 20052, - 20183, 18727, 20368, - 20183, 18727, 20824, - 20183, 18727, 21854, - 20184, - 20193, 16531, 0, - 20193, 16531, 8, - 20193, 16531, 16, - 20193, 16531, 26, - 20193, 16531, 28, - 20193, 16531, 40, - 20193, 16531, 108, - 20193, 16531, 112, - 20193, 16531, 116, - 20193, 16531, 118, - 20193, 16531, 122, - 20193, 16531, 150, - 20193, 16531, 156, - 20193, 16531, 160, - 20193, 16531, 168, - 20193, 16531, 170, - 20193, 16531, 248, - 20193, 16531, 252, - 20193, 16531, 258, - 20193, 16531, 262, - 20193, 16531, 264, - 20193, 16531, 272, - 20193, 16531, 276, - 20193, 16531, 280, - 20193, 16531, 288, - 20193, 16531, 292, - 20193, 16531, 358, - 20193, 16531, 362, - 20193, 16531, 366, - 20193, 16531, 374, - 20193, 16531, 380, - 20193, 16531, 426, - 20193, 16531, 434, - 20193, 16531, 440, - 20193, 16531, 446, - 20193, 16531, 454, - 20193, 16531, 466, - 20193, 16531, 470, - 20193, 16531, 478, - 20193, 16531, 486, - 20193, 16531, 490, - 20193, 16531, 548, - 20193, 16531, 554, - 20193, 16531, 562, - 20193, 16531, 566, - 20193, 16531, 572, - 20193, 16531, 598, - 20193, 16531, 600, - 20193, 16531, 604, - 20193, 16531, 606, - 20193, 16531, 610, - 20193, 16531, 614, - 20193, 16531, 618, - 20193, 16531, 624, - 20193, 16531, 628, - 20193, 16531, 638, - 20193, 16531, 648, - 20193, 16531, 652, - 20193, 16531, 656, - 20193, 16531, 660, - 20193, 16531, 668, - 20193, 16531, 714, - 20193, 16531, 718, - 20193, 16531, 720, - 20193, 16531, 722, - 20193, 16531, 728, - 20193, 16531, 738, - 20193, 16531, 744, - 20193, 16531, 750, - 20193, 16531, 754, - 20193, 16531, 778, - 20193, 16531, 786, - 20193, 16531, 790, - 20193, 16531, 796, - 20193, 16531, 798, - 20193, 16531, 802, - 20193, 16531, 804, - 20193, 16531, 806, - 20193, 16531, 14911, 0, - 20193, 16531, 14911, 8, - 20193, 16531, 14911, 16, - 20193, 16531, 14911, 26, - 20193, 16531, 14911, 28, - 20193, 16531, 14911, 40, - 20193, 16531, 14911, 272, - 20193, 16531, 14911, 276, - 20193, 16531, 14911, 280, - 20193, 16531, 14911, 288, - 20193, 16531, 14911, 292, - 20193, 16531, 14911, 358, - 20193, 16531, 14911, 362, - 20193, 16531, 14911, 374, - 20193, 16531, 14911, 380, - 20193, 16531, 14911, 454, - 20193, 16531, 14911, 490, - 20193, 16531, 14911, 598, - 20193, 16531, 14911, 600, - 20193, 16531, 14911, 604, - 20193, 16531, 14911, 606, - 20193, 16531, 14911, 610, - 20193, 16531, 14911, 624, - 20193, 16531, 14911, 638, - 20193, 16531, 14911, 660, - 20193, 16531, 14911, 668, - 20193, 16531, 14911, 738, - 20193, 16531, 14911, 744, - 20193, 16531, 14911, 750, - 20193, 16531, 14911, 754, - 20193, 16531, 14911, 778, - 20193, 16531, 14911, 786, - 20193, 16531, 14911, 790, - 20193, 16531, 16669, 17402, - 20193, 16531, 16669, 17404, - 20193, 16531, 16669, 17406, - 20193, 16531, 16669, 17408, - 20193, 16531, 16669, 17412, - 20193, 16531, 16669, 17414, - 20193, 16531, 16669, 21627, 17400, - 20193, 16531, 16669, 21627, 17402, - 20193, 16531, 16669, 21627, 17404, - 20193, 16531, 16669, 21627, 17406, - 20193, 16531, 16669, 21627, 17408, - 20193, 16531, 16669, 21627, 17412, - 20193, 16531, 16669, 21627, 17414, - 20193, 16531, 17709, 8, - 20193, 16531, 17709, 756, - 20193, 16531, 17709, 780, - 20193, 16531, 17709, 782, - 20193, 16661, 1290, - 20193, 17539, 21517, 8808, - 20193, 17995, 8140, - 20193, 21517, 8808, - 20196, - 20197, 897, 14028, - 20201, 16890, - 20213, 14975, 897, 5978, - 20215, 3370, - 20221, 11046, - 20241, 9783, 217, 20412, - 20242, - 20252, - 20263, 10575, 14334, - 20263, 16531, 0, - 20263, 16531, 8, - 20263, 16531, 16, - 20263, 16531, 28, - 20263, 16531, 40, - 20263, 16531, 108, - 20263, 16531, 126, - 20263, 16531, 150, - 20263, 16531, 248, - 20263, 16531, 272, - 20263, 16531, 344, - 20263, 16531, 358, - 20263, 16531, 394, - 20263, 16531, 426, - 20263, 16531, 466, - 20263, 16531, 548, - 20263, 16531, 598, - 20263, 16531, 614, - 20263, 16531, 648, - 20263, 16531, 714, - 20263, 16531, 1000, - 20263, 16531, 1116, - 20263, 16531, 1214, - 20263, 16531, 1236, - 20263, 16531, 1588, - 20263, 16531, 1918, - 20263, 16531, 2036, - 20263, 16531, 2624, - 20263, 16531, 2698, - 20263, 16531, 2830, - 20263, 16531, 3118, - 20263, 16531, 3422, - 20263, 16531, 3502, - 20263, 16531, 6572, - 20263, 16531, 11082, - 20263, 19057, 8808, - 20263, 20241, 10508, - 20263, 23737, 10574, - 20270, - 20281, 17298, - 20288, - 20295, 124, - 20295, 12378, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 699, 897, 8280, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 699, 897, 14658, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 6701, 897, 8280, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 6701, 897, 14658, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 8281, 897, 698, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 8281, 897, 6700, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 14659, 897, 698, - 20295, 12379, 11513, 9783, 921, 16115, 323, 12415, 20501, 14659, 897, 6700, - 20295, 12379, 18763, 8280, - 20295, 14659, 12379, 11513, 1290, - 20299, 12922, - 20299, 20549, 8808, - 20299, 23213, 8808, - 20303, 17941, 16531, 0, - 20303, 17941, 16531, 8, - 20303, 17941, 16531, 16, - 20303, 17941, 16531, 28, - 20303, 17941, 16531, 108, - 20303, 17941, 16531, 150, - 20303, 17941, 16531, 358, - 20303, 17941, 16531, 394, - 20303, 17941, 16531, 426, - 20303, 17941, 16531, 466, - 20303, 17941, 16531, 470, - 20303, 17941, 16531, 548, - 20303, 17941, 16531, 582, - 20303, 17941, 16531, 598, - 20303, 17941, 16531, 614, - 20303, 17941, 16531, 618, - 20303, 17941, 16531, 648, - 20303, 17941, 16531, 652, - 20303, 17941, 16531, 660, - 20303, 17941, 16531, 738, - 20303, 17941, 16531, 778, - 20303, 17941, 16531, 1722, - 20303, 17941, 16531, 2036, - 20303, 17941, 16531, 17709, 614, - 20303, 17941, 16787, 2760, - 20303, 17941, 16787, 2761, 18280, - 20303, 17941, 16787, 2761, 18281, 20828, - 20303, 17941, 16787, 2761, 20828, - 20303, 17941, 16787, 3240, - 20303, 17941, 16787, 3241, 18280, - 20303, 17941, 16787, 3241, 18281, 20828, - 20303, 17941, 16787, 3241, 20828, - 20303, 17941, 16787, 3412, - 20303, 17941, 16787, 3413, 20828, - 20303, 17941, 16787, 3536, - 20303, 17941, 16787, 3537, 18280, - 20303, 17941, 16787, 3537, 18281, 20828, - 20303, 17941, 16787, 3537, 20828, - 20303, 17941, 16787, 7036, - 20303, 17941, 16787, 7037, 18280, - 20303, 17941, 16787, 7037, 18281, 20828, - 20303, 17941, 16787, 7037, 20828, - 20303, 17941, 16787, 7058, - 20303, 17941, 16787, 7059, 18280, - 20303, 17941, 16787, 7059, 18281, 20828, - 20303, 17941, 16787, 7059, 20828, - 20303, 17941, 16787, 9358, - 20303, 17941, 16787, 9359, 18280, - 20303, 17941, 16787, 9359, 18281, 20828, - 20303, 17941, 16787, 9359, 20828, - 20303, 17941, 16787, 13150, - 20303, 17941, 16787, 13151, 18280, - 20303, 17941, 16787, 13151, 18281, 20828, - 20303, 17941, 16787, 13151, 20828, - 20303, 17941, 16787, 13254, - 20303, 17941, 16787, 13255, 20828, - 20303, 17941, 16787, 13284, - 20303, 17941, 16787, 13285, 20828, - 20303, 17941, 16787, 14778, - 20303, 17941, 16787, 14779, 18280, - 20303, 17941, 16787, 14779, 18281, 20828, - 20303, 17941, 16787, 14779, 20828, - 20303, 17941, 16787, 14876, - 20303, 17941, 16787, 14877, 20828, - 20303, 17941, 16787, 15116, - 20303, 17941, 16787, 15117, 18280, - 20303, 17941, 16787, 15117, 18281, 20828, - 20303, 17941, 16787, 15117, 20828, - 20303, 17941, 16787, 16109, 20828, - 20303, 17941, 16787, 16745, 20828, - 20303, 17941, 16787, 17372, - 20303, 17941, 16787, 17373, 20828, - 20303, 17941, 16787, 17474, - 20303, 17941, 16787, 17475, 20828, - 20303, 17941, 16787, 19070, - 20303, 17941, 16787, 19071, 20828, - 20303, 17941, 20055, 2761, 7428, - 20303, 17941, 20055, 2761, 19356, - 20303, 17941, 20055, 3241, 20900, - 20303, 17941, 20055, 3413, 20900, - 20303, 17941, 20055, 3537, 20900, - 20303, 17941, 20055, 7037, 20900, - 20303, 17941, 20055, 7059, 20900, - 20303, 17941, 20055, 9359, 20900, - 20303, 17941, 20055, 13151, 20900, - 20303, 17941, 20055, 14779, 20900, - 20303, 17941, 20055, 15117, 20900, - 20303, 17941, 20055, 16111, 20900, - 20303, 17941, 20249, 1872, - 20303, 17941, 20249, 3096, - 20303, 23863, 16531, 0, - 20303, 23863, 16531, 8, - 20303, 23863, 16531, 16, - 20303, 23863, 16531, 28, - 20303, 23863, 16531, 108, - 20303, 23863, 16531, 150, - 20303, 23863, 16531, 358, - 20303, 23863, 16531, 394, - 20303, 23863, 16531, 426, - 20303, 23863, 16531, 466, - 20303, 23863, 16531, 470, - 20303, 23863, 16531, 548, - 20303, 23863, 16531, 582, - 20303, 23863, 16531, 598, - 20303, 23863, 16531, 614, - 20303, 23863, 16531, 618, - 20303, 23863, 16531, 648, - 20303, 23863, 16531, 652, - 20303, 23863, 16531, 660, - 20303, 23863, 16531, 738, - 20303, 23863, 16531, 778, - 20303, 23863, 16531, 1722, - 20303, 23863, 16531, 2036, - 20303, 23863, 16531, 5962, - 20303, 23863, 16531, 9116, - 20303, 23863, 16531, 9238, - 20303, 23863, 16531, 10076, - 20303, 23863, 16531, 10356, - 20303, 23863, 16531, 10834, - 20303, 23863, 16531, 10882, - 20303, 23863, 17299, 11382, - 20303, 23863, 17299, 17528, - 20307, 3537, 17149, 9787, 8350, - 20307, 3537, 17149, 16400, - 20307, 8351, 9787, 3537, 17148, - 20307, 8351, 9787, 14836, - 20307, 12554, - 20307, 14837, 9787, 8350, - 20307, 19318, - 20307, 21734, - 20307, 22038, - 20309, 13944, - 20309, 16332, - 20312, - 20314, - 20319, 12555, 11513, 20163, 12554, - 20319, 16531, 699, 10850, - 20319, 16531, 699, 21022, - 20319, 16531, 704, - 20319, 16531, 1291, 14890, - 20319, 16531, 1291, 20933, 964, - 20319, 16531, 1291, 22495, 964, - 20319, 16531, 1393, 2301, 11032, - 20319, 16531, 1393, 7521, 11032, - 20319, 16531, 2301, 699, 21022, - 20319, 16531, 2301, 6701, 21022, - 20319, 16531, 2301, 8281, 12414, - 20319, 16531, 2301, 8281, 21022, - 20319, 16531, 2301, 10150, - 20319, 16531, 2301, 11033, 964, - 20319, 16531, 2301, 12321, 15678, - 20319, 16531, 2301, 13417, 15678, - 20319, 16531, 2301, 14659, 21022, - 20319, 16531, 2301, 15140, - 20319, 16531, 2301, 16093, 11033, 964, - 20319, 16531, 2301, 16093, 21555, 11033, 964, - 20319, 16531, 2301, 16586, - 20319, 16531, 2301, 20163, 23213, 8808, - 20319, 16531, 2301, 20933, 8320, - 20319, 16531, 2301, 21555, 11033, 964, - 20319, 16531, 2301, 22223, 15678, - 20319, 16531, 2429, 11033, 964, - 20319, 16531, 2429, 16093, 11033, 964, - 20319, 16531, 2429, 16093, 21555, 11033, 964, - 20319, 16531, 2429, 21555, 11033, 964, - 20319, 16531, 3943, 21183, 11033, 8808, - 20319, 16531, 6701, 10850, - 20319, 16531, 6701, 21022, - 20319, 16531, 7429, 22983, 12916, - 20319, 16531, 7521, 11033, 964, - 20319, 16531, 7521, 16093, 11033, 964, - 20319, 16531, 7521, 16093, 21555, 11033, 964, - 20319, 16531, 7521, 21555, 11033, 964, - 20319, 16531, 8281, 7429, 10150, - 20319, 16531, 8281, 10850, - 20319, 16531, 8281, 21022, - 20319, 16531, 9783, 14808, - 20319, 16531, 9905, 10574, - 20319, 16531, 11649, 21183, 11033, 8808, - 20319, 16531, 12321, 15678, - 20319, 16531, 12497, 2301, 11032, - 20319, 16531, 12497, 7521, 11032, - 20319, 16531, 12916, - 20319, 16531, 12935, 15678, - 20319, 16531, 13417, 15678, - 20319, 16531, 13839, 14659, 15975, 12378, - 20319, 16531, 14005, 10574, - 20319, 16531, 14570, - 20319, 16531, 14659, 7429, 10150, - 20319, 16531, 14659, 10850, - 20319, 16531, 14659, 21022, - 20319, 16531, 14808, - 20319, 16531, 14837, 16121, 10574, - 20319, 16531, 14911, 0, - 20319, 16531, 14911, 2, - 20319, 16531, 14911, 3, 11513, 7658, - 20319, 16531, 14911, 4, - 20319, 16531, 14911, 5, 11513, 6376, - 20319, 16531, 14911, 6, - 20319, 16531, 14911, 7, 11513, 7658, - 20319, 16531, 14911, 7, 11513, 7659, 897, 10856, - 20319, 16531, 14911, 7, 11513, 10856, - 20319, 16531, 14911, 8, - 20319, 16531, 14911, 10, - 20319, 16531, 14911, 12, - 20319, 16531, 14911, 13, 11513, 7658, - 20319, 16531, 14911, 14, - 20319, 16531, 14911, 15, 11513, 7658, - 20319, 16531, 14911, 15, 11513, 17264, - 20319, 16531, 14911, 17, 11513, 17264, - 20319, 16531, 14911, 18, - 20319, 16531, 14911, 19, 11513, 23790, - 20319, 16531, 14911, 20, - 20319, 16531, 14911, 22, - 20319, 16531, 14911, 23, 11513, 6058, - 20319, 16531, 14911, 23, 11513, 16661, 15140, - 20319, 16531, 14911, 23, 11513, 18791, 7658, - 20319, 16531, 14911, 23, 11513, 20163, 8271, 36, - 20319, 16531, 14911, 23, 11513, 21813, 7658, - 20319, 16531, 14911, 23, 11513, 21813, 7659, 897, 6058, - 20319, 16531, 14911, 24, - 20319, 16531, 14911, 25, 11513, 7658, - 20319, 16531, 14911, 27, 11513, 8281, 7658, - 20319, 16531, 14911, 27, 11513, 21813, 7658, - 20319, 16531, 14911, 28, - 20319, 16531, 14911, 29, 11513, 17264, - 20319, 16531, 14911, 30, - 20319, 16531, 14911, 32, - 20319, 16531, 14911, 34, - 20319, 16531, 14911, 35, 11513, 10856, - 20319, 16531, 14911, 35, 11513, 20028, - 20319, 16531, 14911, 36, - 20319, 16531, 14911, 37, 11513, 6376, - 20319, 16531, 14911, 37, 11513, 7658, - 20319, 16531, 14911, 38, - 20319, 16531, 14911, 39, 11513, 18791, 7658, - 20319, 16531, 14911, 39, 11513, 21813, 7658, - 20319, 16531, 14911, 40, - 20319, 16531, 14911, 41, 964, - 20319, 16531, 14911, 41, 11513, 8281, 7658, - 20319, 16531, 14911, 42, - 20319, 16531, 14911, 43, 11513, 7658, - 20319, 16531, 14911, 43, 11513, 14659, 7658, - 20319, 16531, 14911, 44, - 20319, 16531, 14911, 46, - 20319, 16531, 14911, 48, - 20319, 16531, 14911, 50, - 20319, 16531, 14911, 51, 11513, 6376, - 20319, 16531, 14911, 51, 11513, 21813, 7658, - 20319, 16531, 14911, 66, - 20319, 16531, 14911, 175, 17994, - 20319, 16531, 14911, 175, 17995, 11513, 6376, - 20319, 16531, 14911, 175, 17995, 11513, 21813, 7658, - 20319, 16531, 14911, 415, 17994, - 20319, 16531, 14911, 425, 17994, - 20319, 16531, 14911, 651, 17995, 11513, 6376, - 20319, 16531, 14911, 665, 17994, - 20319, 16531, 14911, 665, 17995, 11513, 21813, 7658, - 20319, 16531, 14911, 880, - 20319, 16531, 14911, 1120, - 20319, 16531, 14911, 1394, - 20319, 16531, 14911, 1412, - 20319, 16531, 14911, 1422, - 20319, 16531, 14911, 1436, - 20319, 16531, 14911, 2834, - 20319, 16531, 14911, 3473, 7429, 28, - 20319, 16531, 14911, 6064, - 20319, 16531, 14911, 6635, 17994, - 20319, 16531, 14911, 7013, 17994, - 20319, 16531, 14911, 7470, - 20319, 16531, 14911, 7471, 11513, 7658, - 20319, 16531, 14911, 7818, - 20319, 16531, 14911, 8290, - 20319, 16531, 14911, 8291, 11513, 21813, 7658, - 20319, 16531, 14911, 9783, 8, - 20319, 16531, 14911, 9783, 28, - 20319, 16531, 14911, 10095, 7670, - 20319, 16531, 14911, 10911, 17994, - 20319, 16531, 14911, 12366, - 20319, 16531, 14911, 13050, - 20319, 16531, 14911, 13332, - 20319, 16531, 14911, 13421, 2834, - 20319, 16531, 14911, 13421, 13332, - 20319, 16531, 14911, 14756, - 20319, 16531, 14911, 15096, - 20319, 16531, 14911, 15787, 28, - 20319, 16531, 14911, 15827, 7429, 28, - 20319, 16531, 14911, 15949, 14428, - 20319, 16531, 14911, 15949, 20587, 9783, 8, - 20319, 16531, 14911, 17089, 12, - 20319, 16531, 14911, 17465, 0, - 20319, 16531, 14911, 17465, 14, - 20319, 16531, 14911, 17465, 16, - 20319, 16531, 14911, 17465, 24, - 20319, 16531, 14911, 17465, 25, 11513, 8351, 2232, - 20319, 16531, 14911, 17465, 34, - 20319, 16531, 14911, 17465, 35, 11513, 7658, - 20319, 16531, 14911, 17465, 35, 11513, 8351, 2232, - 20319, 16531, 14911, 17465, 35, 11513, 8351, 2233, 897, 21813, 7658, - 20319, 16531, 14911, 17465, 42, - 20319, 16531, 14911, 17465, 44, - 20319, 16531, 14911, 17465, 48, - 20319, 16531, 14911, 17465, 49, 11513, 6058, - 20319, 16531, 14911, 17465, 66, - 20319, 16531, 14911, 17465, 9783, 8, - 20319, 16531, 14911, 17465, 12366, - 20319, 16531, 14911, 17835, 2, - 20319, 16531, 14911, 17835, 12, - 20319, 16531, 14911, 17835, 13, 11513, 7658, - 20319, 16531, 14911, 17835, 14, - 20319, 16531, 14911, 17835, 16, - 20319, 16531, 14911, 17835, 17, 11513, 17264, - 20319, 16531, 14911, 17835, 22, - 20319, 16531, 14911, 17835, 23, 11513, 6058, - 20319, 16531, 14911, 17835, 26, - 20319, 16531, 14911, 17835, 34, - 20319, 16531, 14911, 17835, 40, - 20319, 16531, 14911, 17835, 48, - 20319, 16531, 14911, 17835, 58, - 20319, 16531, 14911, 17835, 504, - 20319, 16531, 14911, 17835, 20163, 34, - 20319, 16531, 14911, 18019, 19, 11513, 17264, - 20319, 16531, 14911, 18019, 19, 11513, 17265, 897, 7658, - 20319, 16531, 14911, 19378, - 20319, 16531, 14911, 20241, 504, - 20319, 16531, 14911, 20587, 8, - 20319, 16531, 14911, 20587, 9783, 8, - 20319, 16531, 14911, 20587, 18213, 10696, - 20319, 16531, 14911, 20659, 40, - 20319, 16531, 16031, 12704, - 20319, 16531, 16095, 14570, - 20319, 16531, 16095, 22172, - 20319, 16531, 16586, - 20319, 16531, 16661, 13417, 15678, - 20319, 16531, 16661, 16095, 12321, 15678, - 20319, 16531, 16661, 16095, 13417, 15678, - 20319, 16531, 17007, 699, 12414, - 20319, 16531, 17007, 6701, 12414, - 20319, 16531, 17007, 12916, - 20319, 16531, 17007, 20163, 23213, 8808, - 20319, 16531, 17007, 23213, 8808, - 20319, 16531, 17025, 7658, - 20319, 16531, 17257, 897, 2301, 11032, - 20319, 16531, 17257, 897, 7521, 11032, - 20319, 16531, 17465, 12922, - 20319, 16531, 17835, 0, - 20319, 16531, 17835, 2, - 20319, 16531, 17835, 4, - 20319, 16531, 17835, 6, - 20319, 16531, 17835, 8, - 20319, 16531, 17835, 10, - 20319, 16531, 17835, 12, - 20319, 16531, 17835, 14, - 20319, 16531, 17835, 15, 11513, 17264, - 20319, 16531, 17835, 16, - 20319, 16531, 17835, 18, - 20319, 16531, 17835, 20, - 20319, 16531, 17835, 22, - 20319, 16531, 17835, 24, - 20319, 16531, 17835, 26, - 20319, 16531, 17835, 28, - 20319, 16531, 17835, 30, - 20319, 16531, 17835, 32, - 20319, 16531, 17835, 34, - 20319, 16531, 17835, 38, - 20319, 16531, 17835, 40, - 20319, 16531, 17835, 42, - 20319, 16531, 17835, 44, - 20319, 16531, 17835, 66, - 20319, 16531, 17835, 534, - 20319, 16531, 17835, 15787, 2, - 20319, 16531, 17835, 20587, 8, - 20319, 16531, 17835, 20587, 26, - 20319, 16531, 17853, 8281, 7429, 10150, - 20319, 16531, 17853, 14659, 7429, 10150, - 20319, 16531, 17873, 11033, 3943, 594, - 20319, 16531, 17873, 11033, 3943, 610, - 20319, 16531, 17873, 11033, 3943, 9886, - 20319, 16531, 17873, 11033, 3943, 14786, - 20319, 16531, 17873, 11033, 11649, 594, - 20319, 16531, 17873, 11033, 11649, 610, - 20319, 16531, 17873, 11033, 11649, 9886, - 20319, 16531, 17873, 11033, 11649, 14786, - 20319, 16531, 18213, 10696, - 20319, 16531, 18213, 10697, 11513, 17264, - 20319, 16531, 18497, 12704, - 20319, 16531, 19416, - 20319, 16531, 19529, 12704, - 20319, 16531, 19617, 12704, - 20319, 16531, 19759, 204, - 20319, 16531, 19759, 7437, 10574, - 20319, 16531, 19759, 10629, 10574, - 20319, 16531, 19759, 14911, 0, - 20319, 16531, 19759, 14911, 8, - 20319, 16531, 19759, 14911, 16, - 20319, 16531, 19759, 14911, 28, - 20319, 16531, 19759, 14911, 40, - 20319, 16531, 19759, 14911, 112, - 20319, 16531, 19759, 14911, 156, - 20319, 16531, 19759, 14911, 188, - 20319, 16531, 19759, 14911, 200, - 20319, 16531, 19759, 14911, 202, - 20319, 16531, 19759, 14911, 212, - 20319, 16531, 19759, 14911, 214, - 20319, 16531, 19759, 14911, 215, 11513, 21186, - 20319, 16531, 19759, 14911, 272, - 20319, 16531, 19759, 14911, 306, - 20319, 16531, 19759, 14911, 346, - 20319, 16531, 19759, 14911, 358, - 20319, 16531, 19759, 14911, 554, - 20319, 16531, 19759, 14911, 652, - 20319, 16531, 19759, 14911, 718, - 20319, 16531, 19759, 14911, 790, - 20319, 16531, 19759, 14911, 798, - 20319, 16531, 19759, 14911, 1118, - 20319, 16531, 19759, 14911, 1590, - 20319, 16531, 19759, 14911, 3212, - 20319, 16531, 19759, 14911, 3490, - 20319, 16531, 19759, 14911, 4044, - 20319, 16531, 19759, 14911, 6752, - 20319, 16531, 19759, 14911, 11680, - 20319, 16531, 19759, 14911, 11681, 11513, 5967, 3924, - 20319, 16531, 19759, 14911, 14756, - 20319, 16531, 19759, 14911, 15787, 28, - 20319, 16531, 19759, 14911, 20432, - 20319, 16531, 19759, 14911, 20729, 40, - 20319, 16531, 19759, 14911, 20729, 41, 11513, 17264, - 20319, 16531, 19759, 14911, 36353, 16, - 20319, 16531, 20077, 2528, - 20319, 16531, 20587, 12922, - 20319, 16531, 20587, 18213, 10696, - 20319, 16531, 20587, 18213, 10697, 11513, 17264, - 20319, 16531, 20933, 8320, - 20319, 16531, 21385, 11033, 964, - 20319, 16531, 21385, 16093, 11033, 964, - 20319, 16531, 21385, 16093, 21555, 11033, 964, - 20319, 16531, 21385, 21555, 11033, 964, - 20319, 16531, 21813, 12705, 11513, 21813, 7658, - 20319, 16531, 22172, - 20319, 16531, 22223, 15678, - 20319, 16531, 22441, 11033, 964, - 20319, 16531, 22441, 16093, 11033, 964, - 20319, 16531, 22441, 16093, 21555, 11033, 964, - 20319, 16531, 22441, 21555, 11033, 964, - 20319, 16531, 22983, 12916, - 20319, 16531, 23679, 7429, 22983, 12916, - 20319, 16531, 23679, 22983, 12916, - 20319, 16531, 23716, - 20323, 1493, 3942, - 20323, 1493, 11648, - 20323, 1493, 13140, - 20324, - 20328, - 20330, - 20332, - 20333, 18962, - 20333, 19652, - 20333, 21054, - 20338, - 20341, 18655, 14258, - 20342, - 20343, 15282, - 20343, 26134, - 20344, - 20345, 12714, - 20349, 9828, - 20349, 13069, 17124, - 20355, 17881, 13069, 11824, - 20355, 17881, 13783, 17835, 16531, 0, - 20355, 17881, 13783, 17835, 16531, 2, - 20355, 17881, 13783, 17835, 16531, 4, - 20355, 17881, 13783, 17835, 16531, 6, - 20355, 17881, 13783, 17835, 16531, 8, - 20355, 17881, 13783, 17835, 16531, 10, - 20355, 17881, 13783, 17835, 16531, 12, - 20355, 17881, 13783, 17835, 16531, 14, - 20355, 17881, 13783, 17835, 16531, 16, - 20355, 17881, 13783, 17835, 16531, 18, - 20355, 17881, 13783, 17835, 16531, 20, - 20355, 17881, 13783, 17835, 16531, 22, - 20355, 17881, 13783, 17835, 16531, 24, - 20355, 17881, 13783, 17835, 16531, 26, - 20355, 17881, 13783, 17835, 16531, 28, - 20355, 17881, 13783, 17835, 16531, 30, - 20355, 17881, 13783, 17835, 16531, 32, - 20355, 17881, 13783, 17835, 16531, 34, - 20355, 17881, 13783, 17835, 16531, 36, - 20355, 17881, 13783, 17835, 16531, 38, - 20355, 17881, 13783, 17835, 16531, 40, - 20355, 17881, 13783, 17835, 16531, 42, - 20355, 17881, 13783, 17835, 16531, 44, - 20355, 17881, 13783, 17835, 16531, 46, - 20355, 17881, 13783, 17835, 16531, 48, - 20355, 17881, 13783, 17835, 16531, 50, - 20355, 17881, 16787, 16110, - 20355, 17881, 16787, 17472, - 20355, 17881, 16787, 17474, - 20355, 17881, 16787, 18148, - 20355, 17881, 16787, 19116, - 20355, 17881, 16787, 19966, - 20355, 17881, 16787, 20052, - 20355, 17881, 16787, 20368, - 20355, 17881, 16787, 20824, - 20355, 17881, 16787, 21854, - 20355, 17881, 17224, - 20355, 17881, 20858, - 20355, 19165, 60, - 20355, 19165, 302, - 20355, 19165, 548, - 20355, 19165, 614, - 20355, 19165, 742, - 20355, 19165, 12935, 8808, - 20355, 19165, 13783, 17835, 16531, 0, - 20355, 19165, 13783, 17835, 16531, 2, - 20355, 19165, 13783, 17835, 16531, 4, - 20355, 19165, 13783, 17835, 16531, 6, - 20355, 19165, 13783, 17835, 16531, 8, - 20355, 19165, 13783, 17835, 16531, 10, - 20355, 19165, 13783, 17835, 16531, 12, - 20355, 19165, 13783, 17835, 16531, 14, - 20355, 19165, 13783, 17835, 16531, 16, - 20355, 19165, 13783, 17835, 16531, 18, - 20355, 19165, 13783, 17835, 16531, 20, - 20355, 19165, 13783, 17835, 16531, 22, - 20355, 19165, 13783, 17835, 16531, 24, - 20355, 19165, 13783, 17835, 16531, 26, - 20355, 19165, 13783, 17835, 16531, 28, - 20355, 19165, 13783, 17835, 16531, 30, - 20355, 19165, 13783, 17835, 16531, 32, - 20355, 19165, 13783, 17835, 16531, 34, - 20355, 19165, 13783, 17835, 16531, 36, - 20355, 19165, 13783, 17835, 16531, 38, - 20355, 19165, 13783, 17835, 16531, 40, - 20355, 19165, 13783, 17835, 16531, 42, - 20355, 19165, 13783, 17835, 16531, 44, - 20355, 19165, 13783, 17835, 16531, 46, - 20355, 19165, 13783, 17835, 16531, 48, - 20355, 19165, 13783, 17835, 16531, 50, - 20355, 19165, 19381, 12414, - 20355, 19165, 20549, 8808, - 20355, 19165, 21349, 12414, - 20355, 19165, 21557, 12414, - 20355, 19165, 22837, 12414, - 20355, 19791, 12934, - 20355, 19791, 16661, 14659, 661, 13839, 15900, - 20355, 19791, 17988, - 20373, 14932, - 20378, - 20379, 11513, 22267, 12928, - 20387, 18937, 13509, 10575, 775, 774, - 20387, 18937, 13509, 10575, 1493, 15106, - 20387, 18937, 13509, 10575, 1493, 15714, - 20387, 18937, 13509, 10575, 1493, 16890, - 20387, 18937, 13509, 10575, 1493, 20244, - 20387, 18937, 13509, 10575, 1493, 23884, - 20387, 18937, 13509, 13069, 2760, - 20387, 18937, 13509, 13069, 3240, - 20387, 18937, 13509, 13069, 3536, - 20387, 18937, 13509, 13069, 7036, - 20387, 18937, 13509, 13069, 7058, - 20387, 18937, 13509, 13069, 9358, - 20387, 18937, 13509, 13069, 11824, - 20387, 18937, 13509, 13069, 13150, - 20387, 18937, 13509, 13069, 14778, - 20387, 18937, 13509, 13069, 15116, - 20387, 18937, 13509, 16531, 0, - 20387, 18937, 13509, 16531, 8, - 20387, 18937, 13509, 16531, 16, - 20387, 18937, 13509, 16531, 28, - 20387, 18937, 13509, 16531, 40, - 20387, 18937, 13509, 16531, 44, - 20387, 18937, 13509, 16531, 58, - 20387, 18937, 13509, 16531, 126, - 20387, 18937, 13509, 16531, 150, - 20387, 18937, 13509, 16531, 186, - 20387, 18937, 13509, 16531, 228, - 20387, 18937, 13509, 16531, 248, - 20387, 18937, 13509, 16531, 272, - 20387, 18937, 13509, 16531, 358, - 20387, 18937, 13509, 16531, 394, - 20387, 18937, 13509, 16531, 426, - 20387, 18937, 13509, 16531, 466, - 20387, 18937, 13509, 16531, 522, - 20387, 18937, 13509, 16531, 548, - 20387, 18937, 13509, 16531, 582, - 20387, 18937, 13509, 16531, 598, - 20387, 18937, 13509, 16531, 614, - 20387, 18937, 13509, 16531, 648, - 20387, 18937, 13509, 16531, 714, - 20387, 18937, 13509, 16531, 762, - 20387, 18937, 13509, 16531, 778, - 20387, 18937, 13509, 16531, 796, - 20387, 18937, 13509, 16531, 1266, - 20387, 18937, 13509, 16531, 1682, - 20387, 18937, 13509, 16531, 2448, - 20387, 18937, 13509, 16531, 2546, - 20387, 18937, 13509, 16531, 2620, - 20387, 18937, 13509, 16531, 2650, - 20387, 18937, 13509, 16531, 2654, - 20387, 18937, 13509, 16531, 2656, - 20387, 18937, 13509, 16531, 2668, - 20387, 18937, 13509, 16531, 2698, - 20387, 18937, 13509, 16531, 2854, - 20387, 18937, 13509, 16531, 3118, - 20387, 18937, 13509, 16531, 3488, - 20387, 18937, 13509, 16531, 3538, - 20387, 18937, 13509, 16531, 3852, - 20387, 18937, 13509, 16531, 9446, - 20387, 18937, 13509, 16531, 9506, - 20387, 18937, 13509, 16531, 9514, - 20387, 18937, 13509, 17416, - 20387, 18937, 13509, 17418, - 20387, 18937, 13509, 17420, - 20387, 18937, 13509, 17422, - 20387, 18937, 13509, 17424, - 20387, 18937, 13509, 17426, - 20387, 18937, 13509, 17428, - 20387, 18937, 13509, 17881, 126, - 20387, 18937, 13509, 20249, 9550, - 20387, 18937, 13509, 20777, 22534, - 20391, 1433, 17298, - 20403, 1054, - 20403, 7027, 16118, - 20403, 10876, - 20403, 16947, 1088, - 20403, 22196, - 20411, 506, - 20415, 12934, - 20419, 12525, 10690, - 20419, 13069, 2760, - 20419, 13069, 3240, - 20419, 13069, 3536, - 20419, 13069, 7036, - 20419, 13069, 7058, - 20419, 13069, 9358, - 20419, 13069, 11824, - 20419, 13069, 13150, - 20419, 13069, 14778, - 20419, 13069, 15116, - 20419, 13421, 12934, - 20419, 13783, 12934, - 20419, 13783, 17835, 16531, 0, - 20419, 13783, 17835, 16531, 2, - 20419, 13783, 17835, 16531, 4, - 20419, 13783, 17835, 16531, 6, - 20419, 13783, 17835, 16531, 8, - 20419, 13783, 17835, 16531, 10, - 20419, 13783, 17835, 16531, 12, - 20419, 13783, 17835, 16531, 14, - 20419, 13783, 17835, 16531, 16, - 20419, 13783, 17835, 16531, 18, - 20419, 13783, 17835, 16531, 20, - 20419, 13783, 17835, 16531, 22, - 20419, 13783, 17835, 16531, 24, - 20419, 13783, 17835, 16531, 26, - 20419, 13783, 17835, 16531, 28, - 20419, 13783, 17835, 16531, 30, - 20419, 13783, 17835, 16531, 32, - 20419, 13783, 17835, 16531, 34, - 20419, 13783, 17835, 16531, 36, - 20419, 13783, 17835, 16531, 38, - 20419, 13783, 17835, 16531, 40, - 20419, 13783, 17835, 16531, 42, - 20419, 13783, 17835, 16531, 44, - 20419, 13783, 17835, 16531, 46, - 20419, 13783, 17835, 16531, 48, - 20419, 13783, 17835, 16531, 50, - 20419, 15453, 10690, - 20422, - 20438, - 20455, 660, - 20455, 11513, 15141, 20406, - 20455, 11513, 22495, 17264, - 20463, 17912, - 20477, 19716, - 20483, 8809, 10444, - 20483, 8809, 16095, 10444, - 20483, 16095, 7461, 8808, - 20483, 16531, 0, - 20483, 16531, 8, - 20483, 16531, 16, - 20483, 16531, 28, - 20483, 16531, 40, - 20483, 16531, 108, - 20483, 16531, 126, - 20483, 16531, 150, - 20483, 16531, 186, - 20483, 16531, 228, - 20483, 16531, 248, - 20483, 16531, 272, - 20483, 16531, 344, - 20483, 16531, 358, - 20483, 16531, 394, - 20483, 16531, 426, - 20483, 16531, 466, - 20483, 16531, 548, - 20483, 16531, 582, - 20483, 16531, 598, - 20483, 16531, 614, - 20483, 16531, 648, - 20483, 16531, 738, - 20483, 16531, 762, - 20483, 16531, 778, - 20483, 16531, 796, - 20483, 16531, 1116, - 20483, 16531, 1214, - 20483, 16531, 1330, - 20483, 16531, 1578, - 20483, 16531, 2036, - 20483, 16531, 2574, - 20483, 16531, 2624, - 20483, 16531, 2698, - 20483, 16531, 2830, - 20483, 16531, 3212, - 20483, 16531, 3422, - 20483, 16531, 3488, - 20483, 16531, 3502, - 20483, 16531, 4042, - 20483, 16531, 11058, - 20483, 16531, 11082, - 20483, 16531, 14911, 0, - 20483, 16531, 17539, 272, - 20483, 16531, 21003, 778, - 20483, 16531, 21029, 228, - 20483, 16531, 22115, 3212, - 20483, 16531, 23070, - 20483, 17171, 7461, 8808, - 20483, 21919, 16531, 598, - 20483, 21919, 16531, 738, - 20483, 21919, 16531, 778, - 20483, 22957, 16531, 598, - 20485, 6669, 10575, 541, 5966, - 20485, 6669, 10575, 986, - 20485, 6669, 10575, 1034, - 20485, 6669, 10575, 1090, - 20485, 6669, 10575, 2258, - 20485, 6669, 10575, 3040, - 20485, 6669, 10575, 3194, - 20485, 6669, 10575, 6344, - 20485, 6669, 10575, 6356, - 20485, 6669, 10575, 6698, - 20485, 6669, 10575, 7516, - 20485, 6669, 10575, 7670, - 20485, 6669, 10575, 8314, - 20485, 6669, 10575, 10480, - 20485, 6669, 10575, 11390, - 20485, 6669, 10575, 11475, 5982, - 20485, 6669, 10575, 12414, - 20485, 6669, 10575, 12579, 2232, - 20485, 6669, 10575, 12676, - 20485, 6669, 10575, 13136, - 20485, 6669, 10575, 13272, - 20485, 6669, 10575, 14547, 11046, - 20485, 6669, 10575, 14900, - 20485, 6669, 10575, 14911, 942, - 20485, 6669, 10575, 15132, - 20485, 6669, 10575, 15248, - 20485, 6669, 10575, 15468, - 20485, 6669, 10575, 15960, - 20485, 6669, 10575, 16064, - 20485, 6669, 10575, 16284, - 20485, 6669, 10575, 16332, - 20485, 6669, 10575, 16931, 7460, - 20485, 6669, 10575, 17138, - 20485, 6669, 10575, 17760, - 20485, 6669, 10575, 17836, - 20485, 6669, 10575, 18592, - 20485, 6669, 10575, 18814, - 20485, 6669, 10575, 19012, - 20485, 6669, 10575, 20070, - 20485, 6669, 10575, 20272, - 20485, 6669, 10575, 20730, - 20485, 6669, 10575, 20807, 7460, - 20485, 6669, 10575, 21068, - 20485, 6669, 10575, 21089, 14546, - 20485, 6669, 10575, 21127, 18741, 17264, - 20485, 6669, 10575, 22754, - 20487, 7432, - 20489, 10690, - 20505, 17246, - 20508, - 20511, 21498, - 20520, - 20521, 529, 13177, 660, - 20521, 529, 22435, 660, - 20521, 1057, 2643, 22435, 660, - 20521, 12319, 2643, 13177, 660, - 20521, 12319, 2643, 15703, 13177, 660, - 20521, 12319, 15703, 13177, 660, - 20521, 12319, 16121, 10574, - 20521, 12319, 23651, 2643, 13177, 660, - 20521, 12319, 23651, 16121, 10574, - 20521, 15281, 20566, - 20525, 2368, - 20525, 15468, - 20525, 16890, - 20527, 9818, - 20528, - 20535, 8320, - 20543, 13839, 8280, - 20543, 13839, 14658, - 20543, 15287, 8280, - 20543, 15287, 8281, 897, 13839, 8281, 897, 13839, 14658, - 20543, 15287, 8281, 897, 13839, 14658, - 20543, 15287, 8281, 897, 15287, 14659, 897, 13839, 8280, - 20543, 15287, 8281, 897, 15287, 14659, 897, 13839, 14658, - 20543, 15287, 14658, - 20543, 15287, 14659, 897, 13839, 8280, - 20543, 15287, 14659, 897, 13839, 8281, 897, 13839, 14658, - 20549, 8808, - 20549, 23213, 8808, - 20550, - 20561, 14483, 17298, - 20565, 21499, 17299, 16531, 0, - 20565, 21499, 17299, 16531, 2, - 20565, 21499, 17299, 16531, 4, - 20565, 21499, 17299, 16531, 6, - 20565, 21499, 17299, 16531, 8, - 20565, 21499, 17299, 16531, 10, - 20565, 21499, 17299, 16531, 12, - 20565, 21499, 17299, 16531, 14, - 20565, 21499, 17299, 16531, 16, - 20565, 21499, 17299, 16531, 18, - 20565, 21499, 17299, 16531, 20, - 20565, 21499, 17299, 16531, 22, - 20565, 21499, 17299, 16531, 24, - 20565, 21499, 17299, 16531, 26, - 20565, 21499, 17299, 16531, 28, - 20565, 21499, 17299, 16531, 30, - 20565, 21499, 17299, 16531, 32, - 20565, 21499, 17299, 16531, 34, - 20565, 21499, 17299, 16531, 36, - 20565, 21499, 17299, 16531, 38, - 20565, 21499, 17299, 16531, 40, - 20565, 21499, 17299, 16531, 42, - 20565, 21499, 17299, 16531, 44, - 20565, 21499, 17299, 16531, 46, - 20565, 21499, 17299, 16531, 48, - 20565, 21499, 17299, 16531, 50, - 20569, 6996, - 20573, 17026, - 20582, - 20584, - 20587, 2643, 10574, - 20587, 7433, 11513, 16661, 16175, 20002, - 20587, 12378, - 20587, 12379, 11513, 20920, - 20587, 12922, - 20587, 13161, 3206, - 20587, 14570, - 20587, 14659, 12378, - 20587, 15140, - 20587, 15141, 16120, - 20587, 16095, 14570, - 20587, 16095, 14571, 21779, 8808, - 20587, 16095, 17265, 2643, 10574, - 20587, 16213, 23512, - 20587, 17007, 7433, 11513, 18151, 19160, - 20587, 17379, 699, 10574, - 20587, 17379, 6701, 10574, - 20587, 17435, 14570, - 20587, 18871, 10574, - 20587, 19015, 16199, 13471, 15858, - 20587, 19401, 7432, - 20587, 20549, 8808, - 20587, 21844, - 20587, 22841, 17835, 22, - 20602, - 20609, 6996, - 20610, - 20618, - 20624, - 20626, - 20628, - 20641, 15453, 10690, - 20641, 15453, 13783, 12934, - 20641, 15453, 15938, - 20642, - 20649, 10690, - 20651, 5972, - 20651, 19322, - 20659, 12525, 699, 20501, 13594, - 20659, 12525, 6701, 20501, 13594, - 20659, 12525, 8281, 20501, 13594, - 20659, 12525, 14659, 20501, 13594, - 20659, 15453, 699, 20501, 13594, - 20659, 15453, 6701, 20501, 13594, - 20659, 15453, 8281, 20501, 13594, - 20659, 15453, 14659, 20501, 13594, - 20667, 19574, - 20669, 6996, - 20669, 17298, - 20669, 24190, - 20671, 19129, 6996, - 20671, 20063, 6996, - 20673, 6996, - 20675, 6996, - 20676, - 20686, - 20689, 7461, 323, 22896, - 20691, 10574, - 20694, - 20697, 15446, - 20711, 16890, - 20715, 6114, - 20729, 14692, - 20739, 22435, 660, - 20760, - 20761, 529, 13177, 660, - 20761, 529, 22435, 660, - 20761, 1057, 2643, 22435, 660, - 20761, 12319, 2643, 13177, 660, - 20761, 12319, 2643, 15703, 13177, 660, - 20761, 12319, 15703, 13177, 660, - 20761, 12319, 16121, 10574, - 20761, 12319, 23651, 2643, 13177, 660, - 20761, 12319, 23651, 16121, 10574, - 20761, 15281, 20566, - 20765, 506, - 20765, 507, 529, 13177, 660, - 20765, 507, 529, 13177, 661, 11513, 1291, 12318, - 20765, 507, 11513, 2643, 13177, 660, - 20765, 507, 12319, 2643, 13177, 660, - 20765, 507, 12319, 15141, 20406, - 20765, 507, 12319, 15703, 13177, 660, - 20765, 507, 12319, 16121, 10574, - 20765, 11513, 1290, - 20765, 11513, 9905, 10575, 12502, - 20765, 11513, 26135, 10575, 12502, - 20765, 12319, 17272, - 20765, 12319, 20764, - 20765, 12319, 21557, 12414, - 20765, 15805, 897, 16401, 125, 6545, 11513, 17272, - 20765, 15805, 17272, - 20765, 21763, 19140, - 20796, - 20799, 15407, 10575, 16, - 20799, 15407, 10575, 40, - 20799, 16531, 0, - 20799, 16531, 16, - 20799, 16531, 40, - 20799, 16531, 108, - 20799, 16531, 150, - 20799, 16531, 248, - 20799, 16531, 358, - 20799, 16531, 394, - 20799, 16531, 426, - 20799, 16531, 466, - 20799, 16531, 548, - 20799, 16531, 614, - 20799, 16531, 648, - 20799, 16531, 738, - 20799, 16531, 778, - 20799, 16531, 2574, - 20803, 11046, - 20811, 19656, - 20823, 6996, - 20831, 6544, - 20837, 16531, 778, - 20837, 16531, 780, - 20837, 16531, 782, - 20837, 16531, 786, - 20837, 16531, 790, - 20837, 16531, 3870, - 20837, 16531, 3872, - 20837, 16531, 3874, - 20837, 16531, 3878, - 20837, 16531, 3880, - 20837, 16531, 3882, - 20837, 16531, 3884, - 20837, 16531, 3886, - 20837, 16531, 3888, - 20837, 16531, 3890, - 20837, 16531, 3892, - 20837, 16531, 3894, - 20837, 16531, 3896, - 20837, 16531, 3898, - 20837, 16531, 3900, - 20837, 16531, 3902, - 20837, 16531, 3906, - 20837, 16531, 3908, - 20837, 16531, 3910, - 20837, 16531, 3912, - 20837, 16531, 3928, - 20837, 16531, 5555, 11640, - 20837, 16531, 11630, - 20837, 16531, 11632, - 20837, 16531, 11634, - 20837, 16531, 11636, - 20837, 16531, 11640, - 20837, 16531, 11644, - 20837, 16531, 11646, - 20837, 16531, 11652, - 20837, 16531, 11654, - 20837, 16531, 11656, - 20837, 16531, 11658, - 20837, 16531, 11662, - 20837, 16531, 11668, - 20837, 16531, 11670, - 20837, 16531, 15510, - 20837, 16531, 15512, - 20837, 16531, 15514, - 20837, 16531, 15803, 17639, 3882, - 20837, 16531, 15803, 17639, 3884, - 20837, 16531, 17455, 3882, - 20837, 16531, 17455, 3886, - 20837, 16531, 17455, 3896, - 20837, 16531, 17455, 11640, - 20837, 16531, 17455, 11642, - 20837, 16531, 17455, 11646, - 20837, 16531, 17455, 11648, - 20837, 16531, 17455, 11668, - 20837, 16531, 17657, 11668, - 20837, 16531, 22963, 3912, - 20837, 20319, 16531, 25811, 8808, - 20837, 21143, 16402, - 20837, 21851, 8808, - 20841, 10575, 216, - 20841, 10575, 17835, 216, - 20847, 14811, 21071, 1145, 19371, 26010, - 20847, 14811, 21071, 1145, 19371, 26014, - 20847, 14811, 21071, 1145, 19371, 26026, - 20847, 14811, 21071, 1145, 19371, 26046, - 20847, 14811, 21071, 1145, 19371, 26054, - 20847, 14811, 21071, 1145, 19371, 26062, - 20847, 14811, 21071, 1145, 19371, 26074, - 20847, 14811, 21071, 1145, 19371, 26080, - 20847, 14811, 21071, 1145, 19371, 26088, - 20847, 14811, 21071, 13783, 17835, 16531, 36, - 20859, 11513, 1291, 12318, - 20859, 11513, 17107, 95, 15826, - 20859, 11513, 19019, 17916, - 20859, 11513, 20920, - 20860, - 20867, 7030, - 20867, 13104, - 20913, 11537, 18010, - 20913, 16531, 16, - 20913, 16531, 40, - 20913, 16531, 288, - 20913, 16531, 572, - 20913, 16531, 660, - 20913, 16531, 754, - 20913, 16531, 806, - 20913, 16531, 880, - 20913, 16531, 1988, - 20913, 16531, 2036, - 20913, 16531, 2406, - 20913, 16531, 2676, - 20913, 16531, 3294, - 20913, 16531, 3416, - 20913, 16531, 3952, - 20913, 16531, 5492, - 20913, 16531, 6064, - 20913, 16531, 6638, - 20913, 16531, 7674, - 20913, 16531, 9990, - 20913, 16531, 10376, - 20913, 16531, 10478, - 20913, 16531, 11826, - 20913, 16531, 13050, - 20913, 16531, 13330, - 20913, 16531, 13370, - 20913, 16531, 13770, - 20913, 16531, 14624, - 20913, 16531, 14740, - 20913, 16531, 17366, - 20916, - 20917, 521, 16286, - 20917, 11513, 10093, 13108, - 20919, 6996, - 20924, - 20930, - 20933, 965, 11513, 22495, 17264, - 20933, 965, 15805, 14659, 20858, - 20933, 965, 16095, 8281, 22078, - 20933, 965, 17435, 14659, 22078, - 20933, 2761, 16107, 17782, - 20933, 2761, 16107, 17784, - 20933, 2761, 16107, 17786, - 20933, 2761, 16107, 17788, - 20933, 2761, 16107, 17790, - 20933, 2761, 16107, 17792, - 20933, 3241, 6696, - 20933, 3367, 2034, - 20933, 7059, 6696, - 20933, 7997, 17019, 8808, - 20933, 7997, 17019, 8809, 13839, 7428, - 20933, 7997, 17019, 8809, 15287, 7428, - 20933, 7997, 17019, 11513, 17539, 14929, 8808, - 20933, 7997, 17019, 11513, 17539, 14929, 8809, 15287, 7428, - 20933, 8320, - 20933, 8321, 11513, 7059, 10985, 13924, - 20933, 8321, 11513, 15117, 10985, 13924, - 20933, 8321, 11513, 15939, 12318, - 20933, 8321, 11513, 15939, 12502, - 20933, 8321, 11513, 16661, 1290, - 20933, 8321, 21382, - 20933, 8801, 11513, 17265, 10574, - 20933, 15140, - 20933, 16498, - 20933, 17005, 1088, - 20933, 17625, 8320, - 20933, 18216, - 20933, 19309, 13806, - 20933, 19976, - 20933, 20579, 19058, - 20933, 21082, - 20933, 23259, 21517, 8808, - 20937, 17224, - 20939, 14911, 16531, 0, - 20939, 14911, 16531, 8, - 20939, 14911, 16531, 16, - 20939, 14911, 16531, 28, - 20939, 14911, 16531, 40, - 20939, 14911, 16531, 48, - 20939, 14911, 16531, 112, - 20939, 14911, 16531, 132, - 20939, 14911, 16531, 156, - 20939, 14911, 16531, 194, - 20939, 14911, 16531, 230, - 20939, 14911, 16531, 248, - 20939, 14911, 16531, 272, - 20939, 14911, 16531, 346, - 20939, 14911, 16531, 358, - 20939, 14911, 16531, 394, - 20939, 14911, 16531, 434, - 20939, 14911, 16531, 470, - 20939, 14911, 16531, 554, - 20939, 14911, 16531, 582, - 20939, 14911, 16531, 600, - 20939, 14911, 16531, 618, - 20939, 14911, 16531, 652, - 20939, 14911, 16531, 718, - 20939, 14911, 16531, 764, - 20939, 14911, 16531, 798, - 20939, 14911, 16531, 974, - 20939, 14911, 16531, 1118, - 20939, 14911, 16531, 1238, - 20939, 14911, 16531, 1722, - 20939, 14911, 16531, 1868, - 20939, 14911, 16531, 2278, - 20939, 14911, 16531, 2610, - 20939, 14911, 16531, 3214, - 20939, 14911, 16531, 3424, - 20939, 17835, 16531, 0, - 20939, 17835, 16531, 8, - 20939, 17835, 16531, 16, - 20939, 17835, 16531, 28, - 20939, 17835, 16531, 40, - 20939, 17835, 16531, 48, - 20939, 17835, 16531, 112, - 20939, 17835, 16531, 132, - 20939, 17835, 16531, 156, - 20939, 17835, 16531, 194, - 20939, 17835, 16531, 230, - 20939, 17835, 16531, 248, - 20939, 17835, 16531, 272, - 20939, 17835, 16531, 346, - 20939, 17835, 16531, 358, - 20939, 17835, 16531, 394, - 20939, 17835, 16531, 434, - 20939, 17835, 16531, 470, - 20939, 17835, 16531, 554, - 20939, 17835, 16531, 582, - 20939, 17835, 16531, 600, - 20939, 17835, 16531, 618, - 20939, 17835, 16531, 652, - 20939, 17835, 16531, 718, - 20939, 17835, 16531, 764, - 20939, 17835, 16531, 798, - 20939, 17835, 16531, 974, - 20939, 17835, 16531, 1118, - 20939, 17835, 16531, 1238, - 20939, 17835, 16531, 1722, - 20939, 17835, 16531, 1868, - 20939, 17835, 16531, 2278, - 20939, 17835, 16531, 2610, - 20939, 17835, 16531, 3214, - 20939, 17835, 16531, 3424, - 20944, - 20956, - 20977, 14115, 1319, 43, 15920, - 20977, 14115, 3106, - 20977, 14115, 6714, - 20977, 14115, 7034, - 20977, 14115, 9834, - 20977, 14115, 13736, - 20977, 14115, 13737, 15138, - 20977, 14115, 13738, - 20977, 14115, 14110, - 20977, 14115, 14444, - 20977, 14115, 14445, 20768, - 20977, 14115, 14445, 22527, 20768, - 20977, 14115, 14445, 23295, 20768, - 20977, 14115, 14445, 23295, 26136, - 20977, 14115, 14445, 23706, - 20977, 14115, 14472, - 20977, 14115, 16095, 22140, - 20977, 14115, 16468, - 20977, 14115, 16472, - 20977, 14115, 16632, - 20977, 14115, 16633, 18908, - 20977, 14115, 16633, 22524, - 20977, 14115, 16633, 26122, - 20977, 14115, 16633, 36320, - 20977, 14115, 16796, - 20977, 14115, 17232, - 20977, 14115, 17233, 37, 14672, - 20977, 14115, 17233, 37, 16103, 22142, - 20977, 14115, 17233, 37, 18386, - 20977, 14115, 17233, 37, 18387, 17, 20972, - 20977, 14115, 17233, 37, 20972, - 20977, 14115, 17233, 37, 20973, 17, 18386, - 20977, 14115, 17233, 37, 20973, 17, 23550, - 20977, 14115, 17233, 22136, - 20977, 14115, 17233, 22137, 37, 20972, - 20977, 14115, 17233, 26136, - 20977, 14115, 17255, 19289, 18948, - 20977, 14115, 17255, 20086, - 20977, 14115, 17255, 20087, 11513, 17171, 22140, - 20977, 14115, 17255, 20536, - 20977, 14115, 17255, 21756, - 20977, 14115, 17255, 22526, - 20977, 14115, 17255, 22527, 19344, - 20977, 14115, 17255, 22527, 20086, - 20977, 14115, 17255, 22527, 20087, 11513, 17171, 22140, - 20977, 14115, 17255, 22527, 21756, - 20977, 14115, 17255, 22527, 26004, - 20977, 14115, 17255, 22527, 26005, 11513, 16095, 22140, - 20977, 14115, 17255, 22527, 26005, 11513, 17171, 22140, - 20977, 14115, 17255, 22527, 28046, - 20977, 14115, 17255, 22527, 28047, 21756, - 20977, 14115, 17255, 22528, - 20977, 14115, 17255, 23832, - 20977, 14115, 17255, 23833, 23294, - 20977, 14115, 17255, 25900, - 20977, 14115, 17255, 26004, - 20977, 14115, 17255, 26005, 11513, 16095, 22140, - 20977, 14115, 17255, 26005, 11513, 17171, 22140, - 20977, 14115, 17255, 26132, - 20977, 14115, 17255, 26136, - 20977, 14115, 17255, 26190, - 20977, 14115, 17255, 28046, - 20977, 14115, 17255, 28047, 21756, - 20977, 14115, 17255, 28090, - 20977, 14115, 17255, 28092, - 20977, 14115, 17255, 36194, - 20977, 14115, 17255, 36318, - 20977, 14115, 17255, 36319, 23294, - 20977, 14115, 17255, 36340, - 20977, 14115, 17255, 36348, - 20977, 14115, 17860, - 20977, 14115, 18360, - 20977, 14115, 18388, - 20977, 14115, 19468, - 20977, 14115, 19782, - 20977, 14115, 20452, - 20977, 14115, 20587, 22216, - 20977, 14115, 20722, - 20977, 14115, 20723, 37, 16798, - 20977, 14115, 20723, 11513, 20681, 16764, - 20977, 14115, 20943, 20536, - 20977, 14115, 20943, 20768, - 20977, 14115, 20943, 21610, - 20977, 14115, 20943, 23295, 20536, - 20977, 14115, 20943, 23295, 20768, - 20977, 14115, 20943, 23295, 21610, - 20977, 14115, 20943, 23295, 23706, - 20977, 14115, 20943, 23706, - 20977, 14115, 20970, - 20977, 14115, 21437, 12546, - 20977, 14115, 21437, 15138, - 20977, 14115, 21437, 17292, - 20977, 14115, 21437, 18648, - 20977, 14115, 21437, 22064, - 20977, 14115, 21736, - 20977, 14115, 21737, 26136, - 20977, 14115, 21883, 19288, - 20977, 14115, 21883, 20768, - 20977, 14115, 21883, 21610, - 20977, 14115, 21883, 23295, 19288, - 20977, 14115, 21883, 23295, 20768, - 20977, 14115, 21883, 23706, - 20977, 14115, 21883, 23833, 20536, - 20977, 14115, 21883, 23833, 20768, - 20977, 14115, 21883, 23833, 23294, - 20977, 14115, 21883, 23833, 26136, - 20977, 14115, 21883, 36348, - 20977, 14115, 21884, - 20977, 14115, 21885, 37, 18386, - 20977, 14115, 21885, 37, 20972, - 20977, 14115, 21885, 20968, - 20977, 14115, 22140, - 20977, 14115, 22216, - 20977, 14115, 22776, - 20977, 14115, 22778, - 20977, 14115, 23117, 16468, - 20977, 18929, 20319, 3106, - 20977, 18929, 20319, 13738, - 20977, 18929, 20319, 18512, - 20977, 18929, 20319, 18514, - 20977, 18929, 20319, 21205, 7044, - 20977, 21127, 8809, 520, - 20977, 21127, 8809, 8803, 18911, 37, 18386, - 20977, 21127, 8809, 8803, 18911, 37, 20199, 521, 8280, - 20977, 21127, 8809, 8803, 18911, 37, 20199, 521, 14658, - 20977, 21127, 8809, 8803, 18911, 521, 8280, - 20977, 21127, 8809, 8803, 18911, 521, 14658, - 20977, 21127, 8809, 8803, 18911, 19198, - 20977, 21127, 8809, 11822, - 20977, 21127, 8809, 13738, - 20977, 21127, 8809, 13739, 521, 8280, - 20977, 21127, 8809, 13826, - 20977, 21127, 8809, 14177, 37, 18387, 521, 8280, - 20977, 21127, 8809, 14177, 37, 18387, 521, 14658, - 20977, 21127, 8809, 14177, 521, 8280, - 20977, 21127, 8809, 14177, 521, 14658, - 20977, 21127, 8809, 14630, - 20977, 21127, 8809, 14884, - 20977, 21127, 8809, 15217, 37, 18386, - 20977, 21127, 8809, 15217, 521, 8280, - 20977, 21127, 8809, 15217, 521, 14658, - 20977, 21127, 8809, 15610, - 20977, 21127, 8809, 16001, 9770, - 20977, 21127, 8809, 16408, - 20977, 21127, 8809, 17229, 521, 8280, - 20977, 21127, 8809, 17229, 521, 14658, - 20977, 21127, 8809, 17390, - 20977, 21127, 8809, 17494, - 20977, 21127, 8809, 17549, 37, 18386, - 20977, 21127, 8809, 17549, 37, 20199, 521, 8280, - 20977, 21127, 8809, 17549, 37, 20199, 521, 14658, - 20977, 21127, 8809, 17549, 521, 8280, - 20977, 21127, 8809, 17549, 521, 14658, - 20977, 21127, 8809, 17804, - 20977, 21127, 8809, 17860, - 20977, 21127, 8809, 17861, 18892, - 20977, 21127, 8809, 18221, 14177, 37, 18387, 521, 8280, - 20977, 21127, 8809, 18221, 14177, 37, 18387, 521, 14658, - 20977, 21127, 8809, 18221, 14177, 521, 8280, - 20977, 21127, 8809, 18221, 14177, 521, 14658, - 20977, 21127, 8809, 18221, 17548, - 20977, 21127, 8809, 18390, - 20977, 21127, 8809, 18911, 37, 18386, - 20977, 21127, 8809, 18911, 37, 20199, 521, 8280, - 20977, 21127, 8809, 18911, 37, 20199, 521, 14658, - 20977, 21127, 8809, 18911, 521, 8280, - 20977, 21127, 8809, 18911, 521, 14658, - 20977, 21127, 8809, 18911, 19198, - 20977, 21127, 8809, 18976, - 20977, 21127, 8809, 19199, 8803, 18910, - 20977, 21127, 8809, 19288, - 20977, 21127, 8809, 20388, - 20977, 21127, 8809, 20416, - 20977, 21127, 8809, 20681, 16764, - 20977, 21127, 8809, 21750, - 20977, 21127, 8809, 22134, - 20977, 21127, 8809, 22404, - 20977, 21127, 8809, 22776, - 20977, 21127, 8809, 22777, 11513, 20933, 17264, - 20977, 21127, 8809, 23117, 22134, - 20977, 21127, 13839, 15175, 14623, 21498, - 20977, 21127, 15175, 14623, 8809, 17290, - 20977, 21127, 15175, 14623, 8809, 18646, - 20977, 21127, 15175, 14623, 8809, 22062, - 20977, 21127, 21035, 20933, 9770, - 20988, - 20991, 661, 3425, 19210, - 20993, 19286, - 21003, 18757, 8281, 3755, 19308, - 21004, - 21006, - 21009, 22487, 4128, - 21009, 22487, 4130, - 21009, 22487, 4132, - 21009, 22487, 4134, - 21009, 22487, 4136, - 21009, 22487, 4138, - 21009, 22487, 4140, - 21009, 22487, 4142, - 21009, 22487, 4144, - 21009, 22487, 4146, - 21009, 22487, 4148, - 21009, 22487, 4150, - 21009, 22487, 4152, - 21009, 22487, 4154, - 21009, 22487, 4156, - 21009, 22487, 4158, - 21009, 22487, 4160, - 21009, 22487, 4162, - 21009, 22487, 4164, - 21009, 22487, 4166, - 21009, 22487, 4168, - 21009, 22487, 4170, - 21009, 22487, 4172, - 21009, 22487, 4174, - 21009, 22487, 4176, - 21009, 22487, 4178, - 21009, 22487, 4180, - 21009, 22487, 4182, - 21009, 22487, 4184, - 21009, 22487, 4186, - 21009, 22487, 4188, - 21009, 22487, 4190, - 21009, 22487, 4192, - 21009, 22487, 4194, - 21009, 22487, 4196, - 21009, 22487, 4198, - 21009, 22487, 4200, - 21009, 22487, 4202, - 21009, 22487, 4204, - 21009, 22487, 4206, - 21009, 22487, 4208, - 21009, 22487, 4210, - 21009, 22487, 4212, - 21009, 22487, 4214, - 21009, 22487, 4216, - 21009, 22487, 4218, - 21009, 22487, 4220, - 21009, 22487, 4222, - 21009, 22487, 4224, - 21009, 22487, 4226, - 21009, 22487, 4228, - 21009, 22487, 4230, - 21009, 22487, 4232, - 21009, 22487, 4234, - 21009, 22487, 4236, - 21009, 22487, 4238, - 21009, 22487, 4240, - 21009, 22487, 4242, - 21009, 22487, 4244, - 21009, 22487, 4246, - 21009, 22487, 4248, - 21009, 22487, 4250, - 21009, 22487, 4252, - 21009, 22487, 4254, - 21009, 22487, 4256, - 21009, 22487, 4258, - 21009, 22487, 4260, - 21009, 22487, 4262, - 21009, 22487, 4264, - 21009, 22487, 4266, - 21009, 22487, 4268, - 21009, 22487, 4270, - 21009, 22487, 4272, - 21009, 22487, 4274, - 21009, 22487, 4276, - 21009, 22487, 4278, - 21009, 22487, 4280, - 21009, 22487, 4282, - 21009, 22487, 4284, - 21009, 22487, 4286, - 21009, 22487, 4288, - 21009, 22487, 4290, - 21009, 22487, 4292, - 21009, 22487, 4294, - 21009, 22487, 4296, - 21009, 22487, 4298, - 21009, 22487, 4300, - 21009, 22487, 4302, - 21009, 22487, 4304, - 21009, 22487, 4306, - 21009, 22487, 4308, - 21009, 22487, 4310, - 21009, 22487, 4312, - 21009, 22487, 4314, - 21009, 22487, 4316, - 21009, 22487, 4318, - 21009, 22487, 4320, - 21009, 22487, 4322, - 21009, 22487, 4324, - 21009, 22487, 4326, - 21009, 22487, 4328, - 21009, 22487, 4330, - 21009, 22487, 4332, - 21009, 22487, 4334, - 21009, 22487, 4336, - 21009, 22487, 4338, - 21009, 22487, 4340, - 21009, 22487, 4342, - 21009, 22487, 4344, - 21009, 22487, 4346, - 21009, 22487, 4348, - 21009, 22487, 4350, - 21009, 22487, 4352, - 21009, 22487, 4354, - 21009, 22487, 4356, - 21009, 22487, 4358, - 21009, 22487, 4360, - 21009, 22487, 4362, - 21009, 22487, 4364, - 21009, 22487, 4366, - 21009, 22487, 4368, - 21009, 22487, 4370, - 21009, 22487, 4372, - 21009, 22487, 4374, - 21009, 22487, 4376, - 21009, 22487, 4378, - 21009, 22487, 4380, - 21009, 22487, 4382, - 21009, 22487, 4384, - 21009, 22487, 4386, - 21009, 22487, 4388, - 21009, 22487, 4390, - 21009, 22487, 4392, - 21009, 22487, 4394, - 21009, 22487, 4396, - 21009, 22487, 4398, - 21009, 22487, 4400, - 21009, 22487, 4402, - 21009, 22487, 4404, - 21009, 22487, 4406, - 21009, 22487, 4408, - 21009, 22487, 4410, - 21009, 22487, 4412, - 21009, 22487, 4414, - 21009, 22487, 4416, - 21009, 22487, 4418, - 21009, 22487, 4420, - 21009, 22487, 4422, - 21009, 22487, 4424, - 21009, 22487, 4426, - 21009, 22487, 4428, - 21009, 22487, 4430, - 21009, 22487, 4432, - 21009, 22487, 4434, - 21009, 22487, 4436, - 21009, 22487, 4438, - 21009, 22487, 4440, - 21009, 22487, 4442, - 21009, 22487, 4444, - 21009, 22487, 4446, - 21009, 22487, 4448, - 21009, 22487, 4450, - 21009, 22487, 4452, - 21009, 22487, 4454, - 21009, 22487, 4456, - 21009, 22487, 4458, - 21009, 22487, 4460, - 21009, 22487, 4462, - 21009, 22487, 4464, - 21009, 22487, 4466, - 21009, 22487, 4468, - 21009, 22487, 4470, - 21009, 22487, 4472, - 21009, 22487, 4474, - 21009, 22487, 4476, - 21009, 22487, 4478, - 21009, 22487, 4480, - 21009, 22487, 4482, - 21009, 22487, 4484, - 21009, 22487, 4486, - 21009, 22487, 4488, - 21009, 22487, 4490, - 21009, 22487, 4492, - 21009, 22487, 4494, - 21009, 22487, 4496, - 21009, 22487, 4498, - 21009, 22487, 4500, - 21009, 22487, 4502, - 21009, 22487, 4504, - 21009, 22487, 4506, - 21009, 22487, 4508, - 21009, 22487, 4510, - 21009, 22487, 4512, - 21009, 22487, 4514, - 21009, 22487, 4516, - 21009, 22487, 4518, - 21009, 22487, 4520, - 21009, 22487, 4522, - 21009, 22487, 4524, - 21009, 22487, 4526, - 21009, 22487, 4528, - 21009, 22487, 4530, - 21009, 22487, 4532, - 21009, 22487, 4534, - 21009, 22487, 4536, - 21009, 22487, 4538, - 21009, 22487, 4540, - 21009, 22487, 4542, - 21009, 22487, 4544, - 21009, 22487, 4546, - 21009, 22487, 4548, - 21009, 22487, 4550, - 21009, 22487, 4552, - 21009, 22487, 4554, - 21009, 22487, 4556, - 21009, 22487, 4558, - 21009, 22487, 4560, - 21009, 22487, 4562, - 21009, 22487, 4564, - 21009, 22487, 4566, - 21009, 22487, 4568, - 21009, 22487, 4570, - 21009, 22487, 4572, - 21009, 22487, 4574, - 21009, 22487, 4576, - 21009, 22487, 4578, - 21009, 22487, 4580, - 21009, 22487, 4582, - 21009, 22487, 4584, - 21009, 22487, 4586, - 21009, 22487, 4588, - 21009, 22487, 4590, - 21009, 22487, 4592, - 21009, 22487, 4594, - 21009, 22487, 4596, - 21009, 22487, 4598, - 21009, 22487, 4600, - 21009, 22487, 4602, - 21009, 22487, 4604, - 21009, 22487, 4606, - 21009, 22487, 4608, - 21009, 22487, 4610, - 21009, 22487, 4612, - 21009, 22487, 4614, - 21009, 22487, 4616, - 21009, 22487, 4618, - 21009, 22487, 4620, - 21009, 22487, 4622, - 21009, 22487, 4624, - 21009, 22487, 4626, - 21009, 22487, 4628, - 21009, 22487, 4630, - 21009, 22487, 4632, - 21009, 22487, 4634, - 21009, 22487, 4636, - 21009, 22487, 4638, - 21009, 22487, 4640, - 21009, 22487, 4642, - 21009, 22487, 4644, - 21009, 22487, 4646, - 21009, 22487, 4648, - 21009, 22487, 4650, - 21009, 22487, 4652, - 21009, 22487, 4654, - 21009, 22487, 4656, - 21009, 22487, 4658, - 21009, 22487, 4660, - 21009, 22487, 4662, - 21009, 22487, 4664, - 21009, 22487, 4666, - 21009, 22487, 4668, - 21009, 22487, 4670, - 21009, 22487, 4672, - 21009, 22487, 4674, - 21009, 22487, 4676, - 21009, 22487, 4678, - 21009, 22487, 4680, - 21009, 22487, 4682, - 21009, 22487, 4684, - 21009, 22487, 4686, - 21009, 22487, 4688, - 21009, 22487, 4690, - 21009, 22487, 4692, - 21009, 22487, 4694, - 21009, 22487, 4696, - 21009, 22487, 4698, - 21009, 22487, 4700, - 21009, 22487, 4702, - 21009, 22487, 4704, - 21009, 22487, 4706, - 21009, 22487, 4708, - 21009, 22487, 4710, - 21009, 22487, 4712, - 21009, 22487, 4714, - 21009, 22487, 4716, - 21009, 22487, 4718, - 21009, 22487, 4720, - 21009, 22487, 4722, - 21009, 22487, 4724, - 21009, 22487, 4726, - 21009, 22487, 4728, - 21009, 22487, 4730, - 21009, 22487, 4732, - 21009, 22487, 4734, - 21009, 22487, 4736, - 21009, 22487, 4738, - 21009, 22487, 4740, - 21009, 22487, 4742, - 21009, 22487, 4744, - 21009, 22487, 4746, - 21009, 22487, 4748, - 21009, 22487, 4750, - 21009, 22487, 4752, - 21009, 22487, 4754, - 21009, 22487, 4756, - 21009, 22487, 4758, - 21009, 22487, 4760, - 21009, 22487, 4762, - 21009, 22487, 4764, - 21009, 22487, 4766, - 21009, 22487, 4768, - 21009, 22487, 4770, - 21009, 22487, 4772, - 21009, 22487, 4774, - 21009, 22487, 4776, - 21009, 22487, 4778, - 21009, 22487, 4780, - 21009, 22487, 4782, - 21009, 22487, 4784, - 21009, 22487, 4786, - 21009, 22487, 4788, - 21009, 22487, 4792, - 21009, 22487, 4794, - 21009, 22487, 4796, - 21009, 22487, 4798, - 21009, 22487, 4800, - 21009, 22487, 4802, - 21009, 22487, 4804, - 21009, 22487, 4806, - 21009, 22487, 4808, - 21009, 22487, 4810, - 21009, 22487, 4812, - 21009, 22487, 4814, - 21009, 22487, 4816, - 21009, 22487, 4818, - 21009, 22487, 4820, - 21009, 22487, 4822, - 21009, 22487, 4824, - 21009, 22487, 4826, - 21009, 22487, 4828, - 21009, 22487, 4830, - 21009, 22487, 4832, - 21009, 22487, 4834, - 21009, 22487, 4836, - 21009, 22487, 4838, - 21009, 22487, 4840, - 21009, 22487, 4842, - 21009, 22487, 4844, - 21009, 22487, 4846, - 21009, 22487, 4848, - 21009, 22487, 4850, - 21009, 22487, 4852, - 21009, 22487, 4854, - 21009, 22487, 4856, - 21009, 22487, 4858, - 21009, 22487, 4860, - 21009, 22487, 4862, - 21009, 22487, 4864, - 21009, 22487, 4866, - 21009, 22487, 4868, - 21009, 22487, 4870, - 21009, 22487, 4872, - 21009, 22487, 4874, - 21009, 22487, 4876, - 21009, 22487, 4878, - 21009, 22487, 4880, - 21009, 22487, 4882, - 21009, 22487, 4884, - 21009, 22487, 4886, - 21009, 22487, 4888, - 21009, 22487, 4890, - 21009, 22487, 4893, 599, 529, 604, - 21009, 22487, 4894, - 21009, 22487, 4896, - 21009, 22487, 4898, - 21009, 22487, 4900, - 21009, 22487, 4902, - 21009, 22487, 4904, - 21009, 22487, 4906, - 21009, 22487, 4908, - 21009, 22487, 4910, - 21009, 22487, 4913, 13150, - 21009, 22487, 4914, - 21009, 22487, 4916, - 21009, 22487, 4918, - 21009, 22487, 4920, - 21009, 22487, 4922, - 21009, 22487, 4924, - 21009, 22487, 4926, - 21009, 22487, 4928, - 21009, 22487, 4930, - 21009, 22487, 4932, - 21009, 22487, 4934, - 21009, 22487, 4936, - 21009, 22487, 4938, - 21009, 22487, 4940, - 21009, 22487, 4942, - 21009, 22487, 4944, - 21009, 22487, 4947, 12497, 20249, 8808, - 21009, 22487, 4948, - 21009, 22487, 4950, - 21009, 22487, 4952, - 21009, 22487, 4954, - 21009, 22487, 4956, - 21009, 22487, 4958, - 21009, 22487, 4960, - 21009, 22487, 4962, - 21009, 22487, 4964, - 21009, 22487, 4966, - 21009, 22487, 4968, - 21009, 22487, 4970, - 21009, 22487, 4972, - 21009, 22487, 4974, - 21009, 22487, 4976, - 21009, 22487, 4978, - 21009, 22487, 4980, - 21009, 22487, 4982, - 21009, 22487, 4984, - 21009, 22487, 4986, - 21009, 22487, 4988, - 21009, 22487, 4990, - 21009, 22487, 4992, - 21009, 22487, 4994, - 21009, 22487, 4996, - 21009, 22487, 4998, - 21009, 22487, 5000, - 21009, 22487, 5002, - 21009, 22487, 5004, - 21009, 22487, 5006, - 21009, 22487, 5008, - 21009, 22487, 5010, - 21009, 22487, 5012, - 21009, 22487, 5014, - 21009, 22487, 5016, - 21009, 22487, 5018, - 21009, 22487, 5020, - 21009, 22487, 5022, - 21009, 22487, 5024, - 21009, 22487, 5026, - 21009, 22487, 5028, - 21009, 22487, 5030, - 21009, 22487, 5032, - 21009, 22487, 5034, - 21009, 22487, 5036, - 21009, 22487, 5038, - 21009, 22487, 5040, - 21009, 22487, 5042, - 21009, 22487, 5044, - 21009, 22487, 5046, - 21009, 22487, 5048, - 21009, 22487, 5050, - 21009, 22487, 5052, - 21009, 22487, 5054, - 21009, 22487, 5056, - 21009, 22487, 5058, - 21009, 22487, 5060, - 21009, 22487, 5062, - 21009, 22487, 5064, - 21009, 22487, 5066, - 21009, 22487, 5068, - 21009, 22487, 5070, - 21009, 22487, 5072, - 21009, 22487, 5074, - 21009, 22487, 5076, - 21009, 22487, 5078, - 21009, 22487, 5080, - 21009, 22487, 5082, - 21009, 22487, 5084, - 21009, 22487, 5086, - 21009, 22487, 5088, - 21009, 22487, 5090, - 21009, 22487, 5092, - 21009, 22487, 5094, - 21009, 22487, 5096, - 21009, 22487, 5098, - 21009, 22487, 5100, - 21009, 22487, 5102, - 21009, 22487, 5104, - 21009, 22487, 5106, - 21009, 22487, 5108, - 21009, 22487, 5110, - 21009, 22487, 5112, - 21009, 22487, 5114, - 21009, 22487, 5116, - 21009, 22487, 5118, - 21009, 22487, 5120, - 21009, 22487, 5122, - 21009, 22487, 5124, - 21009, 22487, 5126, - 21009, 22487, 5128, - 21009, 22487, 5130, - 21009, 22487, 5132, - 21009, 22487, 5134, - 21009, 22487, 5136, - 21009, 22487, 5138, - 21009, 22487, 5140, - 21009, 22487, 5142, - 21009, 22487, 5144, - 21009, 22487, 5146, - 21009, 22487, 5148, - 21009, 22487, 5150, - 21009, 22487, 5152, - 21009, 22487, 5154, - 21009, 22487, 5156, - 21009, 22487, 5158, - 21009, 22487, 5160, - 21009, 22487, 5162, - 21009, 22487, 5164, - 21009, 22487, 5166, - 21009, 22487, 5168, - 21009, 22487, 5170, - 21009, 22487, 5172, - 21009, 22487, 5174, - 21009, 22487, 5176, - 21009, 22487, 5178, - 21009, 22487, 5180, - 21009, 22487, 11962, - 21009, 22487, 11968, - 21009, 22487, 11974, - 21009, 22487, 11978, - 21009, 22487, 11984, - 21009, 22487, 11986, - 21009, 22487, 11988, - 21009, 22487, 11990, - 21009, 22487, 11992, - 21009, 22487, 11994, - 21009, 22487, 11996, - 21009, 22487, 11998, - 21009, 22487, 12000, - 21009, 22487, 12002, - 21009, 22487, 12004, - 21009, 22487, 12006, - 21009, 22487, 12008, - 21009, 22487, 12010, - 21009, 22487, 12012, - 21009, 22487, 12014, - 21009, 22487, 12016, - 21009, 22487, 12018, - 21009, 22487, 12020, - 21009, 22487, 12022, - 21009, 22487, 12024, - 21009, 22487, 12026, - 21009, 22487, 12030, - 21009, 22487, 12034, - 21009, 22487, 12036, - 21009, 22487, 12038, - 21009, 22487, 12040, - 21009, 22487, 12042, - 21009, 22487, 12044, - 21009, 22487, 12046, - 21009, 22487, 12048, - 21009, 22487, 12050, - 21009, 22487, 12052, - 21009, 22487, 12054, - 21009, 22487, 12056, - 21009, 22487, 12058, - 21009, 22487, 12070, - 21009, 22487, 12072, - 21009, 22487, 12074, - 21009, 22487, 12076, - 21009, 22487, 12078, - 21009, 22487, 12080, - 21009, 22487, 12082, - 21009, 22487, 12084, - 21009, 22487, 12086, - 21009, 22487, 12088, - 21009, 22487, 12090, - 21009, 22487, 12092, - 21009, 22487, 12094, - 21009, 22487, 12096, - 21009, 22487, 12099, 1393, 20249, 8808, - 21009, 22487, 12100, - 21009, 22487, 12102, - 21013, 6996, - 21027, 9436, - 21030, - 21038, - 21041, 17343, 18542, - 21047, 18959, 897, 23646, - 21053, 1545, 20020, - 21053, 1545, 20022, - 21053, 10575, 17534, - 21053, 10575, 19408, - 21053, 10575, 19540, - 21053, 10575, 19586, - 21053, 10575, 23070, - 21053, 11537, 21850, - 21053, 13016, - 21053, 13069, 2760, - 21053, 13069, 3240, - 21053, 13069, 3536, - 21053, 13069, 7036, - 21053, 13069, 7058, - 21053, 13069, 9358, - 21053, 13069, 11824, - 21053, 13069, 13150, - 21053, 13069, 14778, - 21053, 13069, 15116, - 21053, 15407, 10575, 8, - 21053, 15407, 10575, 16, - 21053, 15407, 10575, 28, - 21053, 15407, 10575, 40, - 21053, 15407, 10575, 58, - 21053, 15407, 10575, 72, - 21053, 15407, 10575, 96, - 21053, 15407, 10575, 314, - 21053, 15407, 10575, 706, - 21053, 15407, 10575, 19415, 22, - 21053, 15407, 10575, 19415, 34, - 21053, 15407, 10575, 19415, 608, - 21053, 16095, 13016, - 21053, 16531, 0, - 21053, 16531, 8, - 21053, 16531, 16, - 21053, 16531, 28, - 21053, 16531, 40, - 21053, 16531, 58, - 21053, 16531, 72, - 21053, 16531, 96, - 21053, 16531, 108, - 21053, 16531, 126, - 21053, 16531, 150, - 21053, 16531, 248, - 21053, 16531, 272, - 21053, 16531, 314, - 21053, 16531, 344, - 21053, 16531, 358, - 21053, 16531, 394, - 21053, 16531, 426, - 21053, 16531, 466, - 21053, 16531, 548, - 21053, 16531, 598, - 21053, 16531, 614, - 21053, 16531, 648, - 21053, 16531, 706, - 21053, 16531, 714, - 21053, 16531, 778, - 21053, 16531, 1000, - 21053, 16531, 1116, - 21053, 16531, 1214, - 21053, 16531, 1236, - 21053, 16531, 1588, - 21053, 16531, 1918, - 21053, 16531, 2036, - 21053, 16531, 2574, - 21053, 16531, 2624, - 21053, 16531, 2698, - 21053, 16531, 2830, - 21053, 16531, 3212, - 21053, 16531, 3286, - 21053, 16531, 3422, - 21053, 16531, 3502, - 21053, 16531, 6572, - 21053, 16531, 11082, - 21053, 16531, 19415, 22, - 21053, 16531, 19415, 34, - 21053, 16531, 19415, 608, - 21053, 16787, 2760, - 21053, 16787, 3240, - 21053, 16787, 3412, - 21053, 16787, 3536, - 21053, 16787, 7036, - 21053, 16787, 7058, - 21053, 16787, 9358, - 21053, 16787, 13150, - 21053, 16787, 13254, - 21053, 16787, 13284, - 21053, 16787, 14778, - 21053, 16787, 14876, - 21053, 16787, 15116, - 21053, 16787, 16108, - 21053, 16787, 16744, - 21053, 16787, 17372, - 21053, 16787, 17474, - 21053, 16787, 19070, - 21053, 20133, 11259, 8808, - 21054, - 21056, - 21061, 10574, - 21068, - 21074, - 21078, - 21081, 18655, 17299, 1328, - 21081, 18655, 17299, 1431, 23200, - 21081, 18655, 17299, 5514, - 21081, 18655, 17299, 7825, 2564, - 21081, 18655, 17299, 7825, 19556, - 21081, 18655, 17299, 9142, - 21081, 18655, 17299, 10945, 1993, 17694, - 21081, 18655, 17299, 11048, - 21081, 18655, 17299, 11689, 904, - 21081, 18655, 17299, 11689, 8008, - 21081, 18655, 17299, 12335, 5524, - 21081, 18655, 17299, 12335, 8864, - 21081, 18655, 17299, 12335, 9909, 5524, - 21081, 18655, 17299, 12335, 9909, 13406, - 21081, 18655, 17299, 12335, 13406, - 21081, 18655, 17299, 12335, 16648, - 21081, 18655, 17299, 12335, 19558, - 21081, 18655, 17299, 12335, 21438, - 21081, 18655, 17299, 12395, 1431, 2564, - 21081, 18655, 17299, 12395, 23200, - 21081, 18655, 17299, 12406, - 21081, 18655, 17299, 12685, 15632, - 21081, 18655, 17299, 12685, 16466, - 21081, 18655, 17299, 12685, 17200, - 21081, 18655, 17299, 13072, - 21081, 18655, 17299, 13073, 19556, - 21081, 18655, 17299, 13794, - 21081, 18655, 17299, 14459, 2564, - 21081, 18655, 17299, 14459, 13072, - 21081, 18655, 17299, 14459, 23200, - 21081, 18655, 17299, 14578, - 21081, 18655, 17299, 14648, - 21081, 18655, 17299, 15024, - 21081, 18655, 17299, 15092, - 21081, 18655, 17299, 15093, 15720, - 21081, 18655, 17299, 15110, - 21081, 18655, 17299, 15384, - 21081, 18655, 17299, 15497, 16464, - 21081, 18655, 17299, 16016, - 21081, 18655, 17299, 16047, 5515, 1329, 19820, - 21081, 18655, 17299, 16047, 21201, 225, 19820, - 21081, 18655, 17299, 16047, 22987, 9769, 19820, - 21081, 18655, 17299, 16047, 23345, 19265, 19820, - 21081, 18655, 17299, 16047, 23708, - 21081, 18655, 17299, 16047, 25948, - 21081, 18655, 17299, 16125, 23516, - 21081, 18655, 17299, 16125, 24196, - 21081, 18655, 17299, 16165, 19119, 15933, 15382, - 21081, 18655, 17299, 16227, 17, 17609, 25948, - 21081, 18655, 17299, 16227, 9149, 13578, - 21081, 18655, 17299, 16227, 16712, - 21081, 18655, 17299, 16227, 18561, 15933, 19800, - 21081, 18655, 17299, 16227, 18561, 15933, 22584, - 21081, 18655, 17299, 16227, 19119, 15933, 15382, - 21081, 18655, 17299, 16227, 19119, 15933, 17300, - 21081, 18655, 17299, 16227, 19119, 19799, 160, - 21081, 18655, 17299, 16227, 19556, - 21081, 18655, 17299, 16227, 19557, 19789, 13580, - 21081, 18655, 17299, 16227, 21197, 160, - 21081, 18655, 17299, 16227, 21197, 362, - 21081, 18655, 17299, 16227, 21197, 479, 904, - 21081, 18655, 17299, 16227, 21197, 479, 8008, - 21081, 18655, 17299, 16227, 21197, 548, - 21081, 18655, 17299, 16227, 21197, 804, - 21081, 18655, 17299, 16227, 21197, 9142, - 21081, 18655, 17299, 16227, 22415, 21014, - 21081, 18655, 17299, 16245, 16046, - 21081, 18655, 17299, 16245, 17608, - 21081, 18655, 17299, 16277, 2565, 904, - 21081, 18655, 17299, 16277, 2565, 8008, - 21081, 18655, 17299, 16277, 19556, - 21081, 18655, 17299, 16277, 25885, 13060, - 21081, 18655, 17299, 16277, 25885, 19560, - 21081, 18655, 17299, 16387, 17345, 21482, - 21081, 18655, 17299, 16419, 20864, - 21081, 18655, 17299, 16464, - 21081, 18655, 17299, 16465, 904, - 21081, 18655, 17299, 16465, 8008, - 21081, 18655, 17299, 16523, 1329, 17876, - 21081, 18655, 17299, 16523, 6853, 17878, - 21081, 18655, 17299, 16523, 15205, 17876, - 21081, 18655, 17299, 16523, 18297, 17878, - 21081, 18655, 17299, 16523, 20815, 17876, - 21081, 18655, 17299, 16663, 7824, - 21081, 18655, 17299, 16807, 2564, - 21081, 18655, 17299, 16807, 19556, - 21081, 18655, 17299, 16808, - 21081, 18655, 17299, 16841, 19556, - 21081, 18655, 17299, 16907, 2564, - 21081, 18655, 17299, 16907, 19556, - 21081, 18655, 17299, 16974, - 21081, 18655, 17299, 17100, - 21081, 18655, 17299, 17101, 2564, - 21081, 18655, 17299, 17248, - 21081, 18655, 17299, 17340, - 21081, 18655, 17299, 17436, - 21081, 18655, 17299, 17519, 2564, - 21081, 18655, 17299, 17519, 13072, - 21081, 18655, 17299, 17519, 23200, - 21081, 18655, 17299, 17609, 5515, 1329, 19820, - 21081, 18655, 17299, 17609, 21201, 225, 19820, - 21081, 18655, 17299, 17609, 22987, 9769, 19820, - 21081, 18655, 17299, 17609, 23345, 19265, 19820, - 21081, 18655, 17299, 17609, 23708, - 21081, 18655, 17299, 17614, - 21081, 18655, 17299, 17713, 160, - 21081, 18655, 17299, 17713, 248, - 21081, 18655, 17299, 17713, 362, - 21081, 18655, 17299, 17713, 478, - 21081, 18655, 17299, 17713, 548, - 21081, 18655, 17299, 17713, 804, - 21081, 18655, 17299, 17713, 3710, - 21081, 18655, 17299, 17854, - 21081, 18655, 17299, 17990, - 21081, 18655, 17299, 18100, - 21081, 18655, 17299, 18113, 1993, 16227, 3710, - 21081, 18655, 17299, 18288, - 21081, 18655, 17299, 18351, 2565, 904, - 21081, 18655, 17299, 18351, 2565, 8008, - 21081, 18655, 17299, 18351, 2565, 8866, - 21081, 18655, 17299, 18351, 19556, - 21081, 18655, 17299, 18382, - 21081, 18655, 17299, 18385, 2564, - 21081, 18655, 17299, 18385, 5490, - 21081, 18655, 17299, 18385, 19556, - 21081, 18655, 17299, 18396, - 21081, 18655, 17299, 18538, - 21081, 18655, 17299, 18844, - 21081, 18655, 17299, 18846, - 21081, 18655, 17299, 18970, - 21081, 18655, 17299, 19184, - 21081, 18655, 17299, 19185, 19546, - 21081, 18655, 17299, 19231, 2564, - 21081, 18655, 17299, 19231, 8869, 19186, - 21081, 18655, 17299, 19231, 19556, - 21081, 18655, 17299, 19232, - 21081, 18655, 17299, 19264, - 21081, 18655, 17299, 19292, - 21081, 18655, 17299, 19393, 19556, - 21081, 18655, 17299, 19464, - 21081, 18655, 17299, 19545, 2564, - 21081, 18655, 17299, 19545, 19556, - 21081, 18655, 17299, 19548, - 21081, 18655, 17299, 19668, - 21081, 18655, 17299, 19689, 2564, - 21081, 18655, 17299, 19689, 19556, - 21081, 18655, 17299, 19797, 5515, 13996, - 21081, 18655, 17299, 19797, 5515, 16640, - 21081, 18655, 17299, 19797, 13072, - 21081, 18655, 17299, 19797, 19272, - 21081, 18655, 17299, 19802, - 21081, 18655, 17299, 19803, 25885, 13060, - 21081, 18655, 17299, 19803, 25885, 19561, 904, - 21081, 18655, 17299, 19803, 25885, 19561, 8008, - 21081, 18655, 17299, 19805, 254, - 21081, 18655, 17299, 19988, - 21081, 18655, 17299, 20140, - 21081, 18655, 17299, 20194, - 21081, 18655, 17299, 20204, - 21081, 18655, 17299, 20205, 5490, - 21081, 18655, 17299, 20206, - 21081, 18655, 17299, 20208, - 21081, 18655, 17299, 20285, 5489, 16973, 13578, - 21081, 18655, 17299, 20285, 5489, 19787, 13578, - 21081, 18655, 17299, 20285, 15381, 13578, - 21081, 18655, 17299, 20285, 16973, 13578, - 21081, 18655, 17299, 20285, 17441, 13578, - 21081, 18655, 17299, 20285, 18507, 13578, - 21081, 18655, 17299, 20285, 18881, 13578, - 21081, 18655, 17299, 20285, 18881, 20817, 13578, - 21081, 18655, 17299, 20285, 19787, 13578, - 21081, 18655, 17299, 20285, 20817, 13578, - 21081, 18655, 17299, 20285, 20817, 18507, 13578, - 21081, 18655, 17299, 20285, 22068, - 21081, 18655, 17299, 20285, 22795, 13578, - 21081, 18655, 17299, 20456, - 21081, 18655, 17299, 20470, - 21081, 18655, 17299, 20471, 2564, - 21081, 18655, 17299, 20620, - 21081, 18655, 17299, 20661, 15740, - 21081, 18655, 17299, 20661, 15741, 18004, - 21081, 18655, 17299, 20661, 15741, 20862, - 21081, 18655, 17299, 20661, 15741, 22970, - 21081, 18655, 17299, 20661, 19272, - 21081, 18655, 17299, 20661, 19273, 18004, - 21081, 18655, 17299, 20661, 19273, 20862, - 21081, 18655, 17299, 20661, 19273, 22970, - 21081, 18655, 17299, 20818, - 21081, 18655, 17299, 20865, 2564, - 21081, 18655, 17299, 20865, 5490, - 21081, 18655, 17299, 20865, 19556, - 21081, 18655, 17299, 21199, 534, - 21081, 18655, 17299, 21368, - 21081, 18655, 17299, 21395, 19800, - 21081, 18655, 17299, 21395, 22584, - 21081, 18655, 17299, 21395, 23684, - 21081, 18655, 17299, 21490, - 21081, 18655, 17299, 21528, - 21081, 18655, 17299, 21532, - 21081, 18655, 17299, 21533, 2565, 904, - 21081, 18655, 17299, 21533, 2565, 8008, - 21081, 18655, 17299, 21533, 2565, 8866, - 21081, 18655, 17299, 21533, 19556, - 21081, 18655, 17299, 21542, - 21081, 18655, 17299, 21707, 2564, - 21081, 18655, 17299, 21707, 19556, - 21081, 18655, 17299, 21770, - 21081, 18655, 17299, 21771, 2564, - 21081, 18655, 17299, 22020, - 21081, 18655, 17299, 22070, - 21081, 18655, 17299, 22132, - 21081, 18655, 17299, 22133, 13072, - 21081, 18655, 17299, 22162, - 21081, 18655, 17299, 22169, 17345, 21482, - 21081, 18655, 17299, 22169, 22019, 2564, - 21081, 18655, 17299, 22170, - 21081, 18655, 17299, 22171, 2564, - 21081, 18655, 17299, 22171, 13072, - 21081, 18655, 17299, 22408, - 21081, 18655, 17299, 22471, 27, 15720, - 21081, 18655, 17299, 22471, 27, 18002, - 21081, 18655, 17299, 22500, - 21081, 18655, 17299, 22502, - 21081, 18655, 17299, 23517, 2564, - 21081, 18655, 17299, 23517, 19556, - 21081, 18655, 17299, 23518, - 21081, 18655, 17299, 23519, 2564, - 21081, 18655, 17299, 23519, 19556, - 21081, 18655, 17299, 23530, - 21081, 18655, 17299, 23689, 1414, - 21081, 18655, 17299, 23689, 1430, - 21081, 18655, 17299, 23746, - 21081, 18655, 17299, 23854, - 21081, 18655, 17299, 24144, - 21081, 18655, 17299, 24196, - 21081, 18655, 17299, 26002, - 21081, 18655, 17299, 26186, - 21081, 18655, 17299, 26188, - 21081, 18655, 17299, 26296, - 21081, 18655, 17299, 28054, - 21081, 18655, 17299, 28056, - 21081, 18655, 17299, 28064, - 21081, 18655, 17299, 28070, - 21081, 18655, 17299, 28072, - 21081, 18655, 17299, 36230, - 21081, 18655, 17299, 36316, - 21081, 18655, 17299, 36330, - 21084, - 21086, - 21089, 3194, - 21097, 19523, 16531, 180, - 21097, 19523, 16531, 520, - 21097, 19523, 16531, 892, - 21097, 19523, 16531, 910, - 21097, 19523, 16531, 996, - 21097, 19523, 16531, 1088, - 21097, 19523, 16531, 1116, - 21097, 19523, 16531, 1120, - 21097, 19523, 16531, 1208, - 21097, 19523, 16531, 1434, - 21097, 19523, 16531, 1444, - 21097, 19523, 16531, 1608, - 21097, 19523, 16531, 1888, - 21097, 19523, 16531, 1900, - 21097, 19523, 16531, 2006, - 21097, 19523, 16531, 2070, - 21097, 19523, 16531, 2204, - 21097, 19523, 16531, 2374, - 21097, 19523, 16531, 2822, - 21097, 19523, 16531, 2932, - 21097, 19523, 16531, 2936, - 21097, 19523, 16531, 3048, - 21097, 19523, 16531, 3212, - 21097, 19523, 16531, 3390, - 21097, 19523, 16531, 4042, - 21097, 19523, 16531, 6234, - 21097, 19523, 16531, 6270, - 21097, 19523, 16531, 6306, - 21097, 19523, 16531, 6388, - 21097, 19523, 16531, 6390, - 21097, 19523, 16531, 6730, - 21097, 19523, 16531, 6736, - 21097, 19523, 16531, 7480, - 21097, 19523, 16531, 7814, - 21097, 19523, 16531, 7846, - 21097, 19523, 16531, 7860, - 21097, 19523, 16531, 8380, - 21097, 19523, 16531, 9444, - 21097, 19523, 16531, 9892, - 21097, 19523, 16531, 10428, - 21097, 19523, 16531, 10446, - 21097, 19523, 16531, 10504, - 21097, 19523, 16531, 11004, - 21097, 19523, 16531, 11138, - 21097, 19523, 16531, 11378, - 21097, 19523, 16531, 11572, - 21097, 19523, 16531, 11666, - 21097, 19523, 16531, 11730, - 21097, 19523, 16531, 11816, - 21097, 19523, 16531, 11848, - 21097, 19523, 16531, 13118, - 21097, 19523, 16531, 13378, - 21097, 19523, 19699, 8808, - 21101, 3436, - 21105, 7038, - 21107, 964, - 21109, 11046, - 21110, - 21111, 95, 6728, - 21113, 16673, 14526, - 21115, 19642, - 21116, - 21119, 3473, 22849, 12414, - 21119, 9783, 15939, 12414, - 21119, 14659, 897, 8281, 22849, 15738, - 21119, 15949, 15939, 12414, - 21119, 16233, 15939, 12414, - 21119, 17911, 20156, - 21119, 20156, - 21119, 21349, 897, 19381, 9783, 15939, 15738, - 21119, 22837, 897, 21557, 9783, 15939, 15738, - 21119, 22837, 897, 21557, 9783, 15939, 15739, 11513, 17881, 2761, 18782, - 21119, 28089, 9783, 15939, 12414, - 21122, - 21125, 17298, - 21127, 47, 12318, - 21127, 47, 12502, - 21127, 333, 12502, - 21127, 699, 10851, 12318, - 21127, 699, 10851, 12502, - 21127, 703, 12318, - 21127, 705, 12318, - 21127, 1291, 12318, - 21127, 1291, 12319, 8280, - 21127, 1291, 12319, 14658, - 21127, 1291, 12502, - 21127, 1291, 12503, 8280, - 21127, 2301, 8320, - 21127, 2643, 15141, 12318, - 21127, 2757, 16887, 16531, 82, - 21127, 2757, 16887, 16531, 1282, - 21127, 2757, 16887, 16531, 3232, - 21127, 2757, 16887, 16531, 11818, - 21127, 2757, 16887, 16531, 14112, - 21127, 3809, 12502, - 21127, 6701, 10851, 12502, - 21127, 7059, 6697, 12318, - 21127, 7659, 12318, - 21127, 7670, - 21127, 8281, 7429, 10151, 12318, - 21127, 8281, 7429, 10151, 12502, - 21127, 8281, 10851, 12502, - 21127, 8281, 12379, 12318, - 21127, 8281, 12379, 12502, - 21127, 8281, 12415, 12318, - 21127, 8281, 12415, 12502, - 21127, 8281, 14659, 12415, 12318, - 21127, 8281, 14659, 12415, 12502, - 21127, 8281, 18253, 12318, - 21127, 8281, 21023, 12318, - 21127, 8281, 21023, 12502, - 21127, 8281, 23523, 12319, 8280, - 21127, 8281, 23523, 12503, 8280, - 21127, 8351, 16095, 19141, 18782, - 21127, 8351, 17265, 18782, - 21127, 8351, 19141, 18782, - 21127, 8351, 20933, 8321, 18782, - 21127, 9783, 8809, 12502, - 21127, 9905, 10575, 12318, - 21127, 9905, 10575, 12502, - 21127, 10151, 12318, - 21127, 10151, 12502, - 21127, 10151, 18782, - 21127, 11503, 15843, 12318, - 21127, 11503, 20163, 15843, 12502, - 21127, 12321, 11033, 8808, - 21127, 12321, 15678, - 21127, 12321, 15679, 12502, - 21127, 12517, 12502, - 21127, 12554, - 21127, 12555, 12502, - 21127, 12620, - 21127, 12621, 12502, - 21127, 12923, 12318, - 21127, 12923, 12319, 14658, - 21127, 12923, 12502, - 21127, 13417, 11033, 8808, - 21127, 13417, 15678, - 21127, 13417, 15679, 12502, - 21127, 13421, 18382, - 21127, 13421, 18655, 19318, - 21127, 13421, 18655, 21734, - 21127, 13421, 18655, 22038, - 21127, 13421, 21195, 15176, - 21127, 13421, 23530, - 21127, 13421, 25974, - 21127, 13783, 14911, 16531, 0, - 21127, 13783, 14911, 16531, 1, 11513, 21188, - 21127, 13783, 14911, 16531, 2, - 21127, 13783, 14911, 16531, 4, - 21127, 13783, 14911, 16531, 5, 17846, - 21127, 13783, 14911, 16531, 6, - 21127, 13783, 14911, 16531, 8, - 21127, 13783, 14911, 16531, 10, - 21127, 13783, 14911, 16531, 12, - 21127, 13783, 14911, 16531, 14, - 21127, 13783, 14911, 16531, 16, - 21127, 13783, 14911, 16531, 20, - 21127, 13783, 14911, 16531, 22, - 21127, 13783, 14911, 16531, 23, 11513, 16095, 16661, 15140, - 21127, 13783, 14911, 16531, 24, - 21127, 13783, 14911, 16531, 26, - 21127, 13783, 14911, 16531, 28, - 21127, 13783, 14911, 16531, 29, 11513, 13807, 25993, 17264, - 21127, 13783, 14911, 16531, 29, 11513, 21188, - 21127, 13783, 14911, 16531, 30, - 21127, 13783, 14911, 16531, 34, - 21127, 13783, 14911, 16531, 35, 12502, - 21127, 13783, 14911, 16531, 35, 19016, - 21127, 13783, 14911, 16531, 36, - 21127, 13783, 14911, 16531, 38, - 21127, 13783, 14911, 16531, 40, - 21127, 13783, 14911, 16531, 41, 11513, 13807, 25993, 17264, - 21127, 13783, 14911, 16531, 41, 11513, 21188, - 21127, 13783, 14911, 16531, 42, - 21127, 13783, 14911, 16531, 44, - 21127, 13783, 14911, 16531, 45, 12502, - 21127, 13783, 14911, 16531, 46, - 21127, 13783, 14911, 16531, 50, - 21127, 13783, 14911, 16531, 66, - 21127, 13783, 14911, 16531, 84, - 21127, 13783, 14911, 16531, 98, - 21127, 13783, 14911, 16531, 1412, - 21127, 13783, 14911, 16531, 1422, - 21127, 13783, 14911, 16531, 6064, - 21127, 13783, 14911, 16531, 8351, 36, - 21127, 13783, 14911, 16531, 12366, - 21127, 13783, 14911, 16531, 14756, - 21127, 13783, 14911, 16531, 17465, 45, 12502, - 21127, 13783, 14911, 16531, 18305, 6, - 21127, 13783, 14911, 16531, 18305, 12, - 21127, 13783, 14911, 16531, 18305, 34, - 21127, 13783, 14911, 16531, 18305, 38, - 21127, 13783, 14911, 16531, 21409, 9783, 1, 12318, - 21127, 13783, 16531, 14911, 17835, 12, - 21127, 13783, 16531, 14911, 17835, 22, - 21127, 13783, 16531, 14911, 17835, 24, - 21127, 13783, 16531, 14911, 17835, 26, - 21127, 13783, 16531, 14911, 17835, 34, - 21127, 13807, 25993, 17265, 12502, - 21127, 14005, 10575, 12502, - 21127, 14659, 7429, 10151, 12318, - 21127, 14659, 7429, 10151, 12502, - 21127, 14659, 10851, 12502, - 21127, 14659, 12415, 12318, - 21127, 14659, 12415, 12502, - 21127, 14659, 18253, 12318, - 21127, 14659, 21023, 897, 699, 21023, 12502, - 21127, 14659, 21023, 897, 6701, 21023, 12502, - 21127, 14659, 21023, 12318, - 21127, 14659, 21023, 12502, - 21127, 14659, 23523, 12319, 14658, - 21127, 14659, 23523, 12503, 14658, - 21127, 14837, 17265, 18782, - 21127, 14837, 19141, 18782, - 21127, 14837, 20933, 8321, 18782, - 21127, 14921, 12502, - 21127, 15117, 6697, 12318, - 21127, 15140, - 21127, 15141, 8281, 7429, 12502, - 21127, 15141, 12502, - 21127, 15141, 14659, 7429, 12502, - 21127, 15141, 18782, - 21127, 15703, 13177, 661, 12318, - 21127, 15703, 13177, 661, 12502, - 21127, 15843, 12318, - 21127, 15843, 12502, - 21127, 16093, 12321, 15678, - 21127, 16093, 13417, 15678, - 21127, 16095, 2301, 8320, - 21127, 16095, 9783, 8809, 12502, - 21127, 16095, 9905, 10575, 12318, - 21127, 16095, 9905, 10575, 12502, - 21127, 16095, 10151, 12502, - 21127, 16095, 12321, 15678, - 21127, 16095, 12554, - 21127, 16095, 12555, 12502, - 21127, 16095, 13417, 15678, - 21127, 16095, 15140, - 21127, 16095, 15141, 8281, 7428, - 21127, 16095, 15141, 14659, 7428, - 21127, 16095, 16586, - 21127, 16095, 16587, 12502, - 21127, 16095, 20163, 12554, - 21127, 16095, 20163, 12555, 12502, - 21127, 16095, 20422, - 21127, 16095, 20933, 8321, 12318, - 21127, 16095, 20933, 8321, 12502, - 21127, 16095, 20933, 17265, 18782, - 21127, 16095, 22223, 12318, - 21127, 16095, 22837, 12415, 12502, - 21127, 16095, 23521, 12318, - 21127, 16121, 10575, 12502, - 21127, 16421, 12319, 8280, - 21127, 16421, 12319, 14658, - 21127, 16586, - 21127, 16587, 8281, 7428, - 21127, 16587, 8281, 7429, 12502, - 21127, 16587, 12502, - 21127, 16587, 14659, 7428, - 21127, 16587, 14659, 7429, 12502, - 21127, 16787, 10575, 12318, - 21127, 16804, - 21127, 16805, 12318, - 21127, 17225, 12502, - 21127, 17225, 19635, 12318, - 21127, 17267, 25993, 17265, 12502, - 21127, 17435, 1290, - 21127, 17435, 12321, 15678, - 21127, 17435, 20922, - 21127, 17465, 12923, 12318, - 21127, 17571, 8321, 12502, - 21127, 17625, 12318, - 21127, 17625, 12502, - 21127, 17689, 17298, - 21127, 17846, - 21127, 18077, 22223, 15678, - 21127, 18146, - 21127, 18227, 13069, 2760, - 21127, 18227, 13069, 3240, - 21127, 18227, 13069, 3536, - 21127, 18227, 13069, 7036, - 21127, 18227, 13069, 7058, - 21127, 18227, 13069, 11824, - 21127, 18227, 13069, 15116, - 21127, 18227, 16531, 0, - 21127, 18227, 16531, 358, - 21127, 18227, 16531, 466, - 21127, 18227, 16531, 548, - 21127, 18227, 16531, 720, - 21127, 18999, 19141, 18782, - 21127, 19055, 12502, - 21127, 19381, 12415, 12502, - 21127, 19575, 12318, - 21127, 19575, 12502, - 21127, 19759, 3413, 20311, 10574, - 21127, 19759, 13027, 20498, - 21127, 19759, 14579, 20498, - 21127, 19759, 14911, 16531, 36353, 16, - 21127, 19759, 15156, - 21127, 19759, 15157, 8281, 7428, - 21127, 19759, 15157, 14659, 7428, - 21127, 19759, 15408, - 21127, 19759, 16420, - 21127, 19759, 16531, 0, - 21127, 19759, 16531, 16, - 21127, 19759, 16531, 28, - 21127, 19759, 16531, 40, - 21127, 19759, 16531, 112, - 21127, 19759, 16531, 156, - 21127, 19759, 16531, 188, - 21127, 19759, 16531, 200, - 21127, 19759, 16531, 202, - 21127, 19759, 16531, 204, - 21127, 19759, 16531, 212, - 21127, 19759, 16531, 214, - 21127, 19759, 16531, 272, - 21127, 19759, 16531, 306, - 21127, 19759, 16531, 358, - 21127, 19759, 16531, 554, - 21127, 19759, 16531, 652, - 21127, 19759, 16531, 718, - 21127, 19759, 16531, 782, - 21127, 19759, 16531, 790, - 21127, 19759, 16531, 798, - 21127, 19759, 16531, 1015, 3988, - 21127, 19759, 16531, 1118, - 21127, 19759, 16531, 1590, - 21127, 19759, 16531, 3212, - 21127, 19759, 16531, 3490, - 21127, 19759, 16531, 3902, - 21127, 19759, 16531, 4044, - 21127, 19759, 16531, 7034, - 21127, 19759, 16531, 7437, 10574, - 21127, 19759, 16531, 10629, 10574, - 21127, 19759, 16531, 11680, - 21127, 19759, 16531, 13084, - 21127, 19759, 16531, 13184, - 21127, 19759, 16531, 14428, - 21127, 19759, 16531, 14800, - 21127, 19759, 16531, 16563, 3988, - 21127, 19759, 16531, 20165, 0, - 21127, 19759, 16531, 20165, 8, - 21127, 19759, 16531, 20165, 1015, 3988, - 21127, 19759, 16531, 21603, 690, - 21127, 19759, 16531, 22085, 306, - 21127, 19759, 18281, 20311, 10574, - 21127, 19759, 18281, 22045, 10574, - 21127, 19759, 18824, - 21127, 19759, 20311, 10574, - 21127, 19759, 20502, - 21127, 19759, 20829, 20311, 10574, - 21127, 19759, 26154, - 21127, 19777, 8808, - 21127, 20083, 16402, - 21127, 20152, - 21127, 20163, 12554, - 21127, 20163, 12555, 12502, - 21127, 20163, 15843, 12502, - 21127, 20163, 16095, 5523, 12318, - 21127, 20163, 16095, 5523, 12502, - 21127, 20241, 8281, 7428, - 21127, 20241, 8281, 7429, 12502, - 21127, 20241, 14659, 7428, - 21127, 20241, 14659, 7429, 12502, - 21127, 20422, - 21127, 20587, 12923, 12318, - 21127, 20933, 8321, 12318, - 21127, 20933, 8321, 12502, - 21127, 20933, 15140, - 21127, 21119, 10151, 18782, - 21127, 21119, 12415, 12318, - 21127, 21188, - 21127, 21189, 12502, - 21127, 21349, 12414, - 21127, 21363, 15938, - 21127, 21363, 15939, 21042, - 21127, 21363, 16438, - 21127, 21363, 17086, - 21127, 21363, 17224, - 21127, 21363, 17507, 20501, 20858, - 21127, 21363, 17988, - 21127, 21557, 12415, 18782, - 21127, 21557, 18253, 11513, 5989, 21348, - 21127, 21813, 7659, 12502, - 21127, 22223, 15678, - 21127, 22223, 15679, 12502, - 21127, 22237, 16586, - 21127, 22237, 16587, 12502, - 21127, 22275, 10575, 19586, - 21127, 22275, 13069, 2760, - 21127, 22275, 13069, 3240, - 21127, 22275, 13069, 3536, - 21127, 22275, 13069, 7036, - 21127, 22275, 13069, 7058, - 21127, 22275, 13069, 9358, - 21127, 22275, 13069, 11824, - 21127, 22275, 13069, 13150, - 21127, 22275, 13069, 14778, - 21127, 22275, 13069, 15116, - 21127, 22275, 16531, 0, - 21127, 22275, 16531, 40, - 21127, 22275, 16531, 358, - 21127, 22275, 16531, 466, - 21127, 22275, 16531, 548, - 21127, 22275, 16531, 598, - 21127, 22275, 16531, 720, - 21127, 22469, 16531, 16, - 21127, 22469, 16531, 786, - 21127, 22469, 16531, 790, - 21127, 22469, 16531, 948, - 21127, 22469, 16531, 1015, 3988, - 21127, 22469, 16531, 2766, - 21127, 22469, 16531, 3212, - 21127, 22469, 16531, 3492, - 21127, 22469, 16531, 3606, - 21127, 22469, 16531, 6120, - 21127, 22469, 16531, 7034, - 21127, 22469, 16531, 7474, - 21127, 22469, 16531, 7834, - 21127, 22469, 16531, 7990, - 21127, 22469, 16531, 10512, - 21127, 22469, 16531, 11362, - 21127, 22469, 16531, 11660, - 21127, 22469, 16531, 11678, - 21127, 22469, 16531, 11680, - 21127, 22469, 16531, 13088, - 21127, 22469, 16531, 13294, - 21127, 22469, 16531, 14080, - 21127, 22469, 16531, 14662, - 21127, 22469, 16531, 14908, - 21127, 22469, 16531, 14911, 3988, - 21127, 22469, 16531, 15526, - 21127, 22469, 16531, 15930, - 21127, 22469, 16531, 16060, - 21127, 22469, 16531, 16944, - 21127, 22469, 16531, 17470, - 21127, 22469, 16531, 17618, - 21127, 22469, 16531, 18208, - 21127, 22469, 16531, 18303, 7834, - 21127, 22469, 16531, 18311, 1015, 3988, - 21127, 22469, 16531, 18311, 14911, 3988, - 21127, 22469, 16531, 18524, - 21127, 22469, 16531, 18658, - 21127, 22469, 16531, 19466, - 21127, 22493, 12318, - 21127, 22837, 18253, 11513, 5989, 21348, - 21127, 22959, 8808, - 21127, 23070, - 21127, 23509, 7659, 12502, - 21127, 23521, 12318, - 21127, 23521, 12502, - 21127, 23521, 18782, - 21127, 23740, - 21127, 23774, - 21127, 23850, - 21127, 23902, - 21127, 23904, - 21127, 23906, - 21127, 24193, 10151, 18782, - 21127, 24193, 12415, 12318, - 21127, 25996, - 21127, 36236, - 21127, 36242, - 21127, 36247, 17539, 14929, 8808, - 21127, 36247, 23603, 14929, 8808, - 21135, 11513, 1291, 12318, - 21151, 10574, - 21156, - 21158, - 21167, 10575, 0, - 21167, 10575, 1, 15147, 0, - 21167, 10575, 1, 15147, 272, - 21167, 10575, 1, 15147, 952, - 21167, 10575, 1, 15147, 1866, - 21167, 10575, 1, 15147, 3176, - 21167, 10575, 1, 15147, 7209, 10908, - 21167, 10575, 1, 15147, 9018, - 21167, 10575, 1, 15147, 13765, 7358, - 21167, 10575, 8, - 21167, 10575, 9, 9787, 9, 2677, 9787, 2676, - 21167, 10575, 9, 15147, 2798, - 21167, 10575, 16, - 21167, 10575, 17, 0, - 21167, 10575, 40, - 21167, 10575, 41, 40, - 21167, 10575, 41, 41, 40, - 21167, 10575, 41, 1642, - 21167, 10575, 41, 9787, 41, 41, 20587, 9787, 41, 20586, - 21167, 10575, 41, 9787, 41, 549, 9787, 549, 1547, 9787, 1546, - 21167, 10575, 41, 9787, 41, 3317, 9787, 3316, - 21167, 10575, 54, - 21167, 10575, 60, - 21167, 10575, 61, 7358, - 21167, 10575, 61, 15147, 41, 9905, 41, 9905, 40, - 21167, 10575, 61, 15147, 272, - 21167, 10575, 61, 15147, 1538, - 21167, 10575, 61, 15147, 1867, 7358, - 21167, 10575, 61, 15147, 2676, - 21167, 10575, 61, 15147, 2677, 10908, - 21167, 10575, 61, 15147, 5536, - 21167, 10575, 61, 15147, 6717, 7358, - 21167, 10575, 61, 15147, 7209, 10908, - 21167, 10575, 61, 15147, 7804, - 21167, 10575, 61, 15147, 10514, - 21167, 10575, 61, 15147, 13762, - 21167, 10575, 61, 15147, 14812, - 21167, 10575, 64, - 21167, 10575, 65, 15147, 6868, - 21167, 10575, 76, - 21167, 10575, 77, 15147, 13182, - 21167, 10575, 77, 15147, 14827, 9905, 7326, - 21167, 10575, 78, - 21167, 10575, 79, 15147, 78, - 21167, 10575, 79, 15147, 272, - 21167, 10575, 79, 15147, 366, - 21167, 10575, 79, 15147, 3214, - 21167, 10575, 79, 15147, 3642, - 21167, 10575, 79, 15147, 6664, - 21167, 10575, 79, 15147, 7326, - 21167, 10575, 79, 15147, 7978, - 21167, 10575, 82, - 21167, 10575, 83, 9787, 82, - 21167, 10575, 83, 9905, 9135, 19164, - 21167, 10575, 83, 9905, 9135, 20409, 83, 9905, 9134, - 21167, 10575, 83, 15117, 15146, - 21167, 10575, 108, - 21167, 10575, 116, - 21167, 10575, 117, 15147, 0, - 21167, 10575, 117, 15147, 1546, - 21167, 10575, 117, 15147, 1867, 7358, - 21167, 10575, 122, - 21167, 10575, 123, 9787, 123, 60, - 21167, 10575, 123, 9787, 123, 694, - 21167, 10575, 123, 9787, 123, 15147, 2508, - 21167, 10575, 123, 19743, 122, - 21167, 10575, 150, - 21167, 10575, 151, 15147, 10858, - 21167, 10575, 160, - 21167, 10575, 170, - 21167, 10575, 171, 7358, - 21167, 10575, 171, 9787, 170, - 21167, 10575, 171, 19090, - 21167, 10575, 176, - 21167, 10575, 177, 15147, 1, 9905, 273, 9905, 150, - 21167, 10575, 177, 15147, 40, - 21167, 10575, 177, 15147, 440, - 21167, 10575, 177, 15147, 1546, - 21167, 10575, 177, 15147, 2146, - 21167, 10575, 177, 15147, 2798, - 21167, 10575, 177, 15147, 3180, - 21167, 10575, 177, 15147, 3214, - 21167, 10575, 200, - 21167, 10575, 204, - 21167, 10575, 205, 15147, 434, - 21167, 10575, 205, 15147, 7208, - 21167, 10575, 205, 15147, 7209, 10908, - 21167, 10575, 205, 19164, - 21167, 10575, 205, 19743, 204, - 21167, 10575, 205, 20409, 204, - 21167, 10575, 248, - 21167, 10575, 249, 7358, - 21167, 10575, 258, - 21167, 10575, 259, 15147, 8, - 21167, 10575, 259, 15147, 40, - 21167, 10575, 259, 19743, 258, - 21167, 10575, 264, - 21167, 10575, 265, 19743, 264, - 21167, 10575, 272, - 21167, 10575, 273, 7358, - 21167, 10575, 273, 10908, - 21167, 10575, 273, 10909, 7358, - 21167, 10575, 280, - 21167, 10575, 281, 15147, 40, - 21167, 10575, 281, 15147, 922, - 21167, 10575, 281, 15147, 923, 9787, 281, 15147, 922, - 21167, 10575, 281, 15147, 952, - 21167, 10575, 281, 15147, 1528, - 21167, 10575, 281, 15147, 2060, - 21167, 10575, 281, 15147, 2676, - 21167, 10575, 281, 15147, 3214, - 21167, 10575, 281, 15147, 5536, - 21167, 10575, 281, 15147, 6670, - 21167, 10575, 292, - 21167, 10575, 300, - 21167, 10575, 310, - 21167, 10575, 318, - 21167, 10575, 319, 15147, 7209, 10908, - 21167, 10575, 320, - 21167, 10575, 321, 15147, 10858, - 21167, 10575, 321, 19164, - 21167, 10575, 321, 19743, 320, - 21167, 10575, 321, 20409, 320, - 21167, 10575, 322, - 21167, 10575, 330, - 21167, 10575, 358, - 21167, 10575, 359, 15147, 0, - 21167, 10575, 359, 15147, 40, - 21167, 10575, 359, 15147, 41, 41, 40, - 21167, 10575, 359, 15147, 64, - 21167, 10575, 359, 15147, 65, 9905, 2124, - 21167, 10575, 359, 15147, 116, - 21167, 10575, 359, 15147, 122, - 21167, 10575, 359, 15147, 248, - 21167, 10575, 359, 15147, 258, - 21167, 10575, 359, 15147, 264, - 21167, 10575, 359, 15147, 281, 15147, 5536, - 21167, 10575, 359, 15147, 320, - 21167, 10575, 359, 15147, 358, - 21167, 10575, 359, 15147, 366, - 21167, 10575, 359, 15147, 402, - 21167, 10575, 359, 15147, 416, - 21167, 10575, 359, 15147, 434, - 21167, 10575, 359, 15147, 435, 9905, 170, - 21167, 10575, 359, 15147, 435, 9905, 258, - 21167, 10575, 359, 15147, 435, 9905, 652, - 21167, 10575, 359, 15147, 440, - 21167, 10575, 359, 15147, 441, 9905, 14336, - 21167, 10575, 359, 15147, 470, - 21167, 10575, 359, 15147, 548, - 21167, 10575, 359, 15147, 562, - 21167, 10575, 359, 15147, 610, - 21167, 10575, 359, 15147, 614, - 21167, 10575, 359, 15147, 668, - 21167, 10575, 359, 15147, 672, - 21167, 10575, 359, 15147, 680, - 21167, 10575, 359, 15147, 702, - 21167, 10575, 359, 15147, 802, - 21167, 10575, 359, 15147, 952, - 21167, 10575, 359, 15147, 964, - 21167, 10575, 359, 15147, 1538, - 21167, 10575, 359, 15147, 1546, - 21167, 10575, 359, 15147, 1547, 9905, 10439, 9905, 0, - 21167, 10575, 359, 15147, 1642, - 21167, 10575, 359, 15147, 1866, - 21167, 10575, 359, 15147, 1994, - 21167, 10575, 359, 15147, 2050, - 21167, 10575, 359, 15147, 2324, - 21167, 10575, 359, 15147, 2676, - 21167, 10575, 359, 15147, 3190, - 21167, 10575, 359, 15147, 3212, - 21167, 10575, 359, 15147, 3214, - 21167, 10575, 359, 15147, 3220, - 21167, 10575, 359, 15147, 3230, - 21167, 10575, 359, 15147, 3388, - 21167, 10575, 359, 15147, 3628, - 21167, 10575, 359, 15147, 3642, - 21167, 10575, 359, 15147, 5536, - 21167, 10575, 359, 15147, 5538, - 21167, 10575, 359, 15147, 6868, - 21167, 10575, 359, 15147, 7209, 10908, - 21167, 10575, 359, 15147, 7320, - 21167, 10575, 359, 15147, 7326, - 21167, 10575, 359, 15147, 7327, 9905, 3190, - 21167, 10575, 359, 15147, 7327, 19743, 7326, - 21167, 10575, 359, 15147, 7366, - 21167, 10575, 359, 15147, 10472, - 21167, 10575, 359, 15147, 10516, - 21167, 10575, 359, 15147, 11253, 15147, 548, - 21167, 10575, 359, 15147, 12388, - 21167, 10575, 359, 15147, 12460, - 21167, 10575, 359, 15147, 13182, - 21167, 10575, 359, 15147, 14998, - 21167, 10575, 366, - 21167, 10575, 367, 15147, 40, - 21167, 10575, 367, 15147, 680, - 21167, 10575, 367, 15147, 952, - 21167, 10575, 380, - 21167, 10575, 381, 9787, 281, 15147, 5537, 381, 9787, 281, 15147, 5536, - 21167, 10575, 394, - 21167, 10575, 402, - 21167, 10575, 416, - 21167, 10575, 417, 15147, 952, - 21167, 10575, 426, - 21167, 10575, 427, 7358, - 21167, 10575, 427, 15147, 10858, - 21167, 10575, 434, - 21167, 10575, 440, - 21167, 10575, 441, 9905, 4014, - 21167, 10575, 454, - 21167, 10575, 455, 9787, 454, - 21167, 10575, 466, - 21167, 10575, 470, - 21167, 10575, 471, 15147, 0, - 21167, 10575, 471, 15147, 680, - 21167, 10575, 471, 19090, - 21167, 10575, 478, - 21167, 10575, 479, 15147, 8, - 21167, 10575, 490, - 21167, 10575, 548, - 21167, 10575, 562, - 21167, 10575, 563, 15147, 0, - 21167, 10575, 563, 15147, 8, - 21167, 10575, 563, 15147, 16, - 21167, 10575, 563, 15147, 40, - 21167, 10575, 563, 15147, 60, - 21167, 10575, 563, 15147, 116, - 21167, 10575, 563, 15147, 122, - 21167, 10575, 563, 15147, 300, - 21167, 10575, 563, 15147, 672, - 21167, 10575, 563, 19743, 562, - 21167, 10575, 598, - 21167, 10575, 604, - 21167, 10575, 610, - 21167, 10575, 614, - 21167, 10575, 624, - 21167, 10575, 625, 7358, - 21167, 10575, 625, 15147, 10858, - 21167, 10575, 638, - 21167, 10575, 639, 9787, 638, - 21167, 10575, 648, - 21167, 10575, 649, 7358, - 21167, 10575, 649, 15147, 280, - 21167, 10575, 649, 15147, 440, - 21167, 10575, 649, 19574, - 21167, 10575, 652, - 21167, 10575, 653, 7358, - 21167, 10575, 656, - 21167, 10575, 657, 10908, - 21167, 10575, 668, - 21167, 10575, 672, - 21167, 10575, 676, - 21167, 10575, 680, - 21167, 10575, 681, 7358, - 21167, 10575, 681, 15147, 41, 9905, 41, 9905, 40, - 21167, 10575, 681, 15147, 41, 9905, 41, 9905, 41, 7358, - 21167, 10575, 681, 15147, 440, - 21167, 10575, 681, 15147, 952, - 21167, 10575, 681, 16486, - 21167, 10575, 681, 19090, - 21167, 10575, 681, 19091, 15147, 952, - 21167, 10575, 692, - 21167, 10575, 693, 15147, 40, - 21167, 10575, 693, 15147, 434, - 21167, 10575, 693, 15147, 435, 9905, 150, - 21167, 10575, 693, 15147, 10438, - 21167, 10575, 693, 15147, 13762, - 21167, 10575, 694, - 21167, 10575, 695, 7358, - 21167, 10575, 702, - 21167, 10575, 703, 19090, - 21167, 10575, 703, 19743, 702, - 21167, 10575, 796, - 21167, 10575, 797, 10908, - 21167, 10575, 797, 19165, 15147, 2146, - 21167, 10575, 802, - 21167, 10575, 803, 9787, 802, - 21167, 10575, 806, - 21167, 10575, 807, 9787, 807, 9905, 3190, - 21167, 10575, 842, - 21167, 10575, 843, 15147, 0, - 21167, 10575, 843, 15147, 435, 9905, 204, - 21167, 10575, 843, 15147, 7209, 10908, - 21167, 10575, 843, 15147, 10438, - 21167, 10575, 843, 15147, 10858, - 21167, 10575, 843, 15147, 12460, - 21167, 10575, 922, - 21167, 10575, 923, 7975, 10908, - 21167, 10575, 923, 9787, 923, 9787, 922, - 21167, 10575, 923, 9787, 923, 9787, 923, 19743, 923, 9787, 923, 9787, 922, - 21167, 10575, 923, 9787, 923, 11117, 9787, 11117, 11117, 9787, 11117, 2798, - 21167, 10575, 923, 11883, 10908, - 21167, 10575, 952, - 21167, 10575, 953, 15147, 6671, 10908, - 21167, 10575, 958, - 21167, 10575, 959, 9787, 958, - 21167, 10575, 964, - 21167, 10575, 1052, - 21167, 10575, 1194, - 21167, 10575, 1195, 15147, 2146, - 21167, 10575, 1195, 16461, 15147, 1, 9905, 8812, - 21167, 10575, 1195, 16461, 15147, 116, - 21167, 10575, 1195, 16461, 15147, 248, - 21167, 10575, 1195, 16461, 15147, 249, 9905, 8812, - 21167, 10575, 1195, 16461, 15147, 258, - 21167, 10575, 1195, 16461, 15147, 272, - 21167, 10575, 1195, 16461, 15147, 330, - 21167, 10575, 1195, 16461, 15147, 331, 9905, 416, - 21167, 10575, 1195, 16461, 15147, 394, - 21167, 10575, 1195, 16461, 15147, 416, - 21167, 10575, 1195, 16461, 15147, 417, 9905, 13926, - 21167, 10575, 1195, 16461, 15147, 470, - 21167, 10575, 1195, 16461, 15147, 624, - 21167, 10575, 1195, 16461, 15147, 673, 9905, 7320, - 21167, 10575, 1195, 16461, 15147, 673, 9905, 8812, - 21167, 10575, 1195, 16461, 15147, 1642, - 21167, 10575, 1195, 16461, 15147, 1994, - 21167, 10575, 1195, 16461, 15147, 2324, - 21167, 10575, 1195, 16461, 15147, 2799, 9905, 2798, - 21167, 10575, 1195, 16461, 15147, 3642, - 21167, 10575, 1195, 16461, 15147, 5498, - 21167, 10575, 1195, 16461, 15147, 7320, - 21167, 10575, 1195, 16461, 15147, 10858, - 21167, 10575, 1195, 16461, 15147, 12460, - 21167, 10575, 1202, - 21167, 10575, 1206, - 21167, 10575, 1246, - 21167, 10575, 1252, - 21167, 10575, 1253, 15147, 41, 41, 40, - 21167, 10575, 1253, 15147, 1866, - 21167, 10575, 1253, 15147, 3214, - 21167, 10575, 1254, - 21167, 10575, 1255, 16417, 41, 7359, 6670, - 21167, 10575, 1296, - 21167, 10575, 1297, 15147, 3214, - 21167, 10575, 1297, 15147, 6868, - 21167, 10575, 1298, - 21167, 10575, 1299, 15147, 248, - 21167, 10575, 1299, 15147, 258, - 21167, 10575, 1299, 15147, 272, - 21167, 10575, 1299, 15147, 280, - 21167, 10575, 1299, 15147, 440, - 21167, 10575, 1299, 15147, 478, - 21167, 10575, 1299, 15147, 562, - 21167, 10575, 1299, 15147, 625, 7358, - 21167, 10575, 1299, 15147, 922, - 21167, 10575, 1299, 15147, 923, 95, 8280, - 21167, 10575, 1299, 15147, 1254, - 21167, 10575, 1299, 15147, 1306, - 21167, 10575, 1299, 15147, 1867, 7358, - 21167, 10575, 1299, 15147, 2146, - 21167, 10575, 1299, 15147, 2202, - 21167, 10575, 1299, 15147, 2203, 15147, 2146, - 21167, 10575, 1299, 15147, 2321, 9905, 7326, - 21167, 10575, 1299, 15147, 2410, - 21167, 10575, 1299, 15147, 3214, - 21167, 10575, 1299, 15147, 7321, 7358, - 21167, 10575, 1299, 15147, 7326, - 21167, 10575, 1299, 15147, 8812, - 21167, 10575, 1299, 15147, 12388, - 21167, 10575, 1299, 15147, 13182, - 21167, 10575, 1299, 15147, 16416, - 21167, 10575, 1299, 15147, 16486, - 21167, 10575, 1299, 15147, 16487, 9905, 16416, - 21167, 10575, 1299, 15147, 18400, - 21167, 10575, 1300, - 21167, 10575, 1306, - 21167, 10575, 1524, - 21167, 10575, 1525, 9787, 1524, - 21167, 10575, 1525, 15147, 1, 9905, 151, 9905, 272, - 21167, 10575, 1525, 15147, 1, 9905, 272, - 21167, 10575, 1525, 15147, 1, 9905, 1866, - 21167, 10575, 1525, 15147, 40, - 21167, 10575, 1525, 15147, 82, - 21167, 10575, 1525, 15147, 83, 9905, 1995, 9905, 0, - 21167, 10575, 1525, 15147, 150, - 21167, 10575, 1525, 15147, 160, - 21167, 10575, 1525, 15147, 200, - 21167, 10575, 1525, 15147, 201, 9905, 394, - 21167, 10575, 1525, 15147, 204, - 21167, 10575, 1525, 15147, 205, 15147, 7209, 10908, - 21167, 10575, 1525, 15147, 248, - 21167, 10575, 1525, 15147, 258, - 21167, 10575, 1525, 15147, 273, 9905, 0, - 21167, 10575, 1525, 15147, 273, 9905, 417, 9905, 6868, - 21167, 10575, 1525, 15147, 281, 9905, 402, - 21167, 10575, 1525, 15147, 394, - 21167, 10575, 1525, 15147, 435, 9905, 204, - 21167, 10575, 1525, 15147, 440, - 21167, 10575, 1525, 15147, 470, - 21167, 10575, 1525, 15147, 471, 9905, 176, - 21167, 10575, 1525, 15147, 471, 9905, 258, - 21167, 10575, 1525, 15147, 548, - 21167, 10575, 1525, 15147, 680, - 21167, 10575, 1525, 15147, 681, 9905, 170, - 21167, 10575, 1525, 15147, 843, 10909, 9905, 3366, - 21167, 10575, 1525, 15147, 922, - 21167, 10575, 1525, 15147, 952, - 21167, 10575, 1525, 15147, 965, 9905, 598, - 21167, 10575, 1525, 15147, 1052, - 21167, 10575, 1525, 15147, 1053, 9905, 598, - 21167, 10575, 1525, 15147, 1253, 7358, - 21167, 10575, 1525, 15147, 1253, 15147, 3214, - 21167, 10575, 1525, 15147, 1296, - 21167, 10575, 1525, 15147, 1299, 15147, 1867, 7358, - 21167, 10575, 1525, 15147, 1299, 15147, 16416, - 21167, 10575, 1525, 15147, 1546, - 21167, 10575, 1525, 15147, 1547, 9905, 160, - 21167, 10575, 1525, 15147, 1547, 9905, 470, - 21167, 10575, 1525, 15147, 1600, - 21167, 10575, 1525, 15147, 1601, 9905, 0, - 21167, 10575, 1525, 15147, 1686, - 21167, 10575, 1525, 15147, 1687, 9905, 394, - 21167, 10575, 1525, 15147, 1867, 7358, - 21167, 10575, 1525, 15147, 1893, 9905, 293, 9905, 922, - 21167, 10575, 1525, 15147, 1994, - 21167, 10575, 1525, 15147, 2050, - 21167, 10575, 1525, 15147, 2051, 9905, 2200, - 21167, 10575, 1525, 15147, 2125, 9905, 82, - 21167, 10575, 1525, 15147, 2202, - 21167, 10575, 1525, 15147, 2203, 15147, 2146, - 21167, 10575, 1525, 15147, 2320, - 21167, 10575, 1525, 15147, 2676, - 21167, 10575, 1525, 15147, 2677, 9787, 2676, - 21167, 10575, 1525, 15147, 3180, - 21167, 10575, 1525, 15147, 3190, - 21167, 10575, 1525, 15147, 3214, - 21167, 10575, 1525, 15147, 3215, 9905, 3524, - 21167, 10575, 1525, 15147, 3308, - 21167, 10575, 1525, 15147, 5536, - 21167, 10575, 1525, 15147, 5537, 9905, 1538, - 21167, 10575, 1525, 15147, 6858, - 21167, 10575, 1525, 15147, 7209, 10908, - 21167, 10575, 1525, 15147, 7321, 9905, 638, - 21167, 10575, 1525, 15147, 7690, - 21167, 10575, 1525, 15147, 9018, - 21167, 10575, 1525, 15147, 10472, - 21167, 10575, 1525, 15147, 10476, - 21167, 10575, 1525, 15147, 10858, - 21167, 10575, 1525, 15147, 11888, - 21167, 10575, 1525, 15147, 15766, - 21167, 10575, 1525, 15147, 16416, - 21167, 10575, 1525, 15147, 16487, 9905, 16416, - 21167, 10575, 1528, - 21167, 10575, 1529, 9787, 1529, 1547, 9787, 1546, - 21167, 10575, 1538, - 21167, 10575, 1539, 1529, 9787, 1529, 1547, 9787, 1546, - 21167, 10575, 1540, - 21167, 10575, 1542, - 21167, 10575, 1546, - 21167, 10575, 1600, - 21167, 10575, 1601, 9787, 1600, - 21167, 10575, 1601, 19743, 1600, - 21167, 10575, 1604, - 21167, 10575, 1638, - 21167, 10575, 1639, 7358, - 21167, 10575, 1639, 15147, 1867, 7358, - 21167, 10575, 1639, 15147, 1994, - 21167, 10575, 1639, 15147, 1995, 15147, 1867, 7358, - 21167, 10575, 1639, 15147, 2676, - 21167, 10575, 1639, 15147, 3181, 9905, 11116, - 21167, 10575, 1642, - 21167, 10575, 1643, 9787, 1643, 13842, - 21167, 10575, 1643, 9905, 7327, 15147, 10858, - 21167, 10575, 1643, 15147, 1, 9905, 2146, - 21167, 10575, 1643, 15147, 2146, - 21167, 10575, 1646, - 21167, 10575, 1648, - 21167, 10575, 1649, 15147, 3214, - 21167, 10575, 1654, - 21167, 10575, 1686, - 21167, 10575, 1866, - 21167, 10575, 1867, 604, - 21167, 10575, 1867, 1246, - 21167, 10575, 1867, 7358, - 21167, 10575, 1867, 9787, 1867, 10485, 9787, 10485, 681, 9787, 680, - 21167, 10575, 1870, - 21167, 10575, 1892, - 21167, 10575, 1980, - 21167, 10575, 1981, 19743, 1980, - 21167, 10575, 1984, - 21167, 10575, 1994, - 21167, 10575, 1995, 15147, 1867, 7358, - 21167, 10575, 1996, - 21167, 10575, 1997, 15147, 952, - 21167, 10575, 1997, 19743, 1996, - 21167, 10575, 2003, 18102, - 21167, 10575, 2050, - 21167, 10575, 2060, - 21167, 10575, 2124, - 21167, 10575, 2126, - 21167, 10575, 2127, 19395, 7056, - 21167, 10575, 2128, - 21167, 10575, 2136, - 21167, 10575, 2137, 7358, - 21167, 10575, 2138, - 21167, 10575, 2146, - 21167, 10575, 2147, 20409, 2146, - 21167, 10575, 2200, - 21167, 10575, 2201, 15147, 2200, - 21167, 10575, 2202, - 21167, 10575, 2203, 15147, 2146, - 21167, 10575, 2203, 15147, 2147, 9905, 610, - 21167, 10575, 2264, - 21167, 10575, 2312, - 21167, 10575, 2313, 7359, 15147, 922, - 21167, 10575, 2313, 10908, - 21167, 10575, 2313, 15147, 78, - 21167, 10575, 2313, 15147, 281, 15147, 952, - 21167, 10575, 2313, 15147, 320, - 21167, 10575, 2313, 15147, 366, - 21167, 10575, 2313, 15147, 395, 9905, 922, - 21167, 10575, 2313, 15147, 435, 9905, 204, - 21167, 10575, 2313, 15147, 470, - 21167, 10575, 2313, 15147, 490, - 21167, 10575, 2313, 15147, 625, 9905, 922, - 21167, 10575, 2313, 15147, 952, - 21167, 10575, 2313, 15147, 1686, - 21167, 10575, 2313, 15147, 2798, - 21167, 10575, 2313, 15147, 2799, 9905, 2799, 9905, 2314, - 21167, 10575, 2313, 15147, 3220, - 21167, 10575, 2313, 15147, 6670, - 21167, 10575, 2313, 15147, 6868, - 21167, 10575, 2313, 15147, 6869, 9905, 2200, - 21167, 10575, 2313, 15147, 6869, 10908, - 21167, 10575, 2313, 15147, 7209, 10908, - 21167, 10575, 2313, 15147, 7976, - 21167, 10575, 2313, 15147, 7978, - 21167, 10575, 2313, 15147, 7979, 9905, 922, - 21167, 10575, 2313, 15147, 10577, 9905, 122, - 21167, 10575, 2313, 15147, 10858, - 21167, 10575, 2313, 15147, 11116, - 21167, 10575, 2313, 15147, 13762, - 21167, 10575, 2313, 19090, - 21167, 10575, 2313, 19091, 15147, 952, - 21167, 10575, 2313, 19164, - 21167, 10575, 2313, 19743, 2312, - 21167, 10575, 2313, 20409, 2312, - 21167, 10575, 2314, - 21167, 10575, 2320, - 21167, 10575, 2322, - 21167, 10575, 2324, - 21167, 10575, 2325, 9787, 2324, - 21167, 10575, 2325, 9787, 2325, 1547, 9787, 1546, - 21167, 10575, 2358, - 21167, 10575, 2364, - 21167, 10575, 2376, - 21167, 10575, 2410, - 21167, 10575, 2440, - 21167, 10575, 2470, - 21167, 10575, 2471, 7358, - 21167, 10575, 2508, - 21167, 10575, 2510, - 21167, 10575, 2520, - 21167, 10575, 2521, 18734, - 21167, 10575, 2588, - 21167, 10575, 2598, - 21167, 10575, 2599, 15147, 1547, 9905, 7209, 10908, - 21167, 10575, 2599, 15147, 7209, 10908, - 21167, 10575, 2600, - 21167, 10575, 2676, - 21167, 10575, 2677, 9787, 2676, - 21167, 10575, 2677, 10908, - 21167, 10575, 2677, 13765, 15147, 1546, - 21167, 10575, 2677, 13765, 15147, 3180, - 21167, 10575, 2677, 13765, 15147, 3181, 9787, 2677, 13765, 15147, 3180, - 21167, 10575, 2677, 13765, 15147, 3642, - 21167, 10575, 2677, 13765, 15147, 8812, - 21167, 10575, 2677, 19743, 2676, - 21167, 10575, 2677, 19743, 2677, 13765, 9787, 13764, - 21167, 10575, 2790, - 21167, 10575, 2794, - 21167, 10575, 2798, - 21167, 10575, 3030, - 21167, 10575, 3176, - 21167, 10575, 3177, 7358, - 21167, 10575, 3177, 7359, 15147, 272, - 21167, 10575, 3177, 9787, 3176, - 21167, 10575, 3177, 15147, 0, - 21167, 10575, 3177, 15147, 170, - 21167, 10575, 3177, 15147, 204, - 21167, 10575, 3177, 15147, 272, - 21167, 10575, 3177, 15147, 440, - 21167, 10575, 3177, 15147, 672, - 21167, 10575, 3177, 15147, 676, - 21167, 10575, 3177, 15147, 692, - 21167, 10575, 3177, 15147, 702, - 21167, 10575, 3177, 15147, 1296, - 21167, 10575, 3177, 15147, 1867, 7358, - 21167, 10575, 3177, 15147, 1994, - 21167, 10575, 3177, 15147, 2146, - 21167, 10575, 3177, 15147, 2324, - 21167, 10575, 3177, 15147, 2676, - 21167, 10575, 3177, 15147, 3180, - 21167, 10575, 3177, 15147, 3215, 95, 8280, - 21167, 10575, 3177, 15147, 3366, - 21167, 10575, 3177, 15147, 3642, - 21167, 10575, 3177, 15147, 10472, - 21167, 10575, 3177, 15147, 10858, - 21167, 10575, 3177, 18734, - 21167, 10575, 3180, - 21167, 10575, 3181, 13763, 15147, 5536, - 21167, 10575, 3190, - 21167, 10575, 3212, - 21167, 10575, 3214, - 21167, 10575, 3215, 292, - 21167, 10575, 3215, 9787, 3214, - 21167, 10575, 3215, 9787, 3215, 1529, 9787, 1529, 1547, 9787, 1546, - 21167, 10575, 3215, 9787, 3215, 3367, 9787, 3367, 1547, 9787, 1546, - 21167, 10575, 3215, 9905, 3190, - 21167, 10575, 3215, 9905, 7690, - 21167, 10575, 3215, 9905, 9138, - 21167, 10575, 3220, - 21167, 10575, 3221, 9787, 20163, 3220, - 21167, 10575, 3230, - 21167, 10575, 3304, - 21167, 10575, 3308, - 21167, 10575, 3316, - 21167, 10575, 3366, - 21167, 10575, 3367, 9787, 3367, 479, 9787, 479, 6671, 9787, 6670, - 21167, 10575, 3367, 19164, - 21167, 10575, 3370, - 21167, 10575, 3371, 15147, 116, - 21167, 10575, 3371, 15147, 680, - 21167, 10575, 3371, 15147, 1642, - 21167, 10575, 3371, 15147, 3214, - 21167, 10575, 3371, 15147, 3220, - 21167, 10575, 3371, 15147, 11116, - 21167, 10575, 3388, - 21167, 10575, 3434, - 21167, 10575, 3440, - 21167, 10575, 3446, - 21167, 10575, 3447, 9787, 3446, - 21167, 10575, 3447, 9787, 3447, 1529, 9787, 1529, 1547, 9787, 1546, - 21167, 10575, 3447, 15147, 10858, - 21167, 10575, 3516, - 21167, 10575, 3518, - 21167, 10575, 3519, 15147, 7209, 10908, - 21167, 10575, 3519, 15147, 15117, 6670, - 21167, 10575, 3524, - 21167, 10575, 3525, 9787, 3525, 797, 9787, 796, - 21167, 10575, 3628, - 21167, 10575, 3629, 15147, 1, 9905, 272, - 21167, 10575, 3629, 15147, 1, 9905, 466, - 21167, 10575, 3629, 15147, 78, - 21167, 10575, 3629, 15147, 272, - 21167, 10575, 3629, 15147, 672, - 21167, 10575, 3629, 15147, 673, 9905, 116, - 21167, 10575, 3629, 15147, 673, 9905, 922, - 21167, 10575, 3629, 15147, 680, - 21167, 10575, 3629, 15147, 2676, - 21167, 10575, 3629, 20162, - 21167, 10575, 3630, - 21167, 10575, 3634, - 21167, 10575, 3638, - 21167, 10575, 3639, 15147, 0, - 21167, 10575, 3639, 15147, 41, 9905, 1642, - 21167, 10575, 3639, 15147, 248, - 21167, 10575, 3639, 15147, 264, - 21167, 10575, 3639, 15147, 272, - 21167, 10575, 3639, 15147, 320, - 21167, 10575, 3639, 15147, 366, - 21167, 10575, 3639, 15147, 548, - 21167, 10575, 3639, 15147, 668, - 21167, 10575, 3639, 15147, 680, - 21167, 10575, 3639, 15147, 964, - 21167, 10575, 3639, 15147, 1306, - 21167, 10575, 3639, 15147, 1538, - 21167, 10575, 3639, 15147, 1546, - 21167, 10575, 3639, 15147, 1866, - 21167, 10575, 3639, 15147, 1892, - 21167, 10575, 3639, 15147, 2314, - 21167, 10575, 3639, 15147, 2324, - 21167, 10575, 3639, 15147, 2440, - 21167, 10575, 3639, 15147, 3214, - 21167, 10575, 3639, 15147, 7209, 10908, - 21167, 10575, 3639, 15147, 10572, - 21167, 10575, 3639, 15147, 13020, - 21167, 10575, 3639, 15147, 15290, - 21167, 10575, 3639, 15147, 15750, - 21167, 10575, 3639, 15147, 18484, - 21167, 10575, 3642, - 21167, 10575, 3643, 15147, 0, - 21167, 10575, 3643, 15147, 380, - 21167, 10575, 3643, 15147, 2146, - 21167, 10575, 3643, 15147, 10858, - 21167, 10575, 3650, - 21167, 10575, 3651, 15147, 16416, - 21167, 10575, 3652, - 21167, 10575, 4014, - 21167, 10575, 4018, - 21167, 10575, 4032, - 21167, 10575, 4054, - 21167, 10575, 4056, - 21167, 10575, 4057, 7975, 10908, - 21167, 10575, 4060, - 21167, 10575, 4086, - 21167, 10575, 4087, 15147, 0, - 21167, 10575, 4087, 15147, 15117, 6671, 10908, - 21167, 10575, 4088, - 21167, 10575, 5480, - 21167, 10575, 5498, - 21167, 10575, 5499, 15147, 2134, - 21167, 10575, 5499, 15147, 3214, - 21167, 10575, 5512, - 21167, 10575, 5520, - 21167, 10575, 5521, 15147, 2146, - 21167, 10575, 5536, - 21167, 10575, 5968, - 21167, 10575, 6136, - 21167, 10575, 6530, - 21167, 10575, 6664, - 21167, 10575, 6665, 15147, 680, - 21167, 10575, 6670, - 21167, 10575, 6671, 9905, 3220, - 21167, 10575, 6710, - 21167, 10575, 6716, - 21167, 10575, 6717, 7358, - 21167, 10575, 6717, 7359, 7358, - 21167, 10575, 6718, - 21167, 10575, 6724, - 21167, 10575, 6834, - 21167, 10575, 6838, - 21167, 10575, 6858, - 21167, 10575, 6868, - 21167, 10575, 6869, 19743, 6868, - 21167, 10575, 6886, - 21167, 10575, 6887, 15147, 0, - 21167, 10575, 6887, 15147, 1, 9905, 2200, - 21167, 10575, 6887, 15147, 1, 9905, 2201, 15147, 2200, - 21167, 10575, 6887, 15147, 82, - 21167, 10575, 6887, 15147, 272, - 21167, 10575, 6887, 15147, 273, 7358, - 21167, 10575, 6887, 15147, 394, - 21167, 10575, 6887, 15147, 402, - 21167, 10575, 6887, 15147, 416, - 21167, 10575, 6887, 15147, 638, - 21167, 10575, 6887, 15147, 672, - 21167, 10575, 6887, 15147, 680, - 21167, 10575, 6887, 15147, 952, - 21167, 10575, 6887, 15147, 1642, - 21167, 10575, 6887, 15147, 1867, 7358, - 21167, 10575, 6887, 15147, 2124, - 21167, 10575, 6887, 15147, 2201, 15147, 2200, - 21167, 10575, 6887, 15147, 3214, - 21167, 10575, 6887, 15147, 6717, 7358, - 21167, 10575, 6887, 15147, 6717, 7359, 7358, - 21167, 10575, 6887, 15147, 16416, - 21167, 10575, 6887, 15147, 16417, 19164, - 21167, 10575, 6887, 19091, 15147, 280, - 21167, 10575, 6887, 19091, 15147, 394, - 21167, 10575, 6887, 19091, 15147, 434, - 21167, 10575, 6887, 19091, 15147, 638, - 21167, 10575, 6887, 19091, 15147, 922, - 21167, 10575, 6887, 19091, 15147, 1867, 7358, - 21167, 10575, 6887, 19091, 15147, 2200, - 21167, 10575, 6887, 19091, 15147, 2410, - 21167, 10575, 7200, - 21167, 10575, 7201, 19015, 16745, 17974, - 21167, 10575, 7201, 19743, 7200, - 21167, 10575, 7208, - 21167, 10575, 7209, 9787, 7208, - 21167, 10575, 7209, 10908, - 21167, 10575, 7209, 19743, 7208, - 21167, 10575, 7210, - 21167, 10575, 7230, - 21167, 10575, 7320, - 21167, 10575, 7321, 7358, - 21167, 10575, 7322, - 21167, 10575, 7323, 15147, 1, 9905, 1866, - 21167, 10575, 7323, 15147, 417, 9905, 1866, - 21167, 10575, 7323, 15147, 548, - 21167, 10575, 7323, 15147, 1866, - 21167, 10575, 7323, 15147, 7209, 10908, - 21167, 10575, 7326, - 21167, 10575, 7327, 10908, - 21167, 10575, 7327, 15147, 952, - 21167, 10575, 7327, 15147, 7327, 19743, 7326, - 21167, 10575, 7327, 15147, 10858, - 21167, 10575, 7327, 19743, 7326, - 21167, 10575, 7366, - 21167, 10575, 7690, - 21167, 10575, 7691, 15147, 82, - 21167, 10575, 7691, 15147, 680, - 21167, 10575, 7691, 15147, 1686, - 21167, 10575, 7691, 15147, 8332, - 21167, 10575, 7691, 15147, 16416, - 21167, 10575, 7692, - 21167, 10575, 7704, - 21167, 10575, 7790, - 21167, 10575, 7791, 9787, 7791, 1052, - 21167, 10575, 7791, 9787, 7791, 19164, - 21167, 10575, 7804, - 21167, 10575, 7976, - 21167, 10575, 7978, - 21167, 10575, 7980, - 21167, 10575, 7982, - 21167, 10575, 7983, 9787, 7982, - 21167, 10575, 7992, - 21167, 10575, 7994, - 21167, 10575, 8112, - 21167, 10575, 8332, - 21167, 10575, 8812, - 21167, 10575, 8862, - 21167, 10575, 9018, - 21167, 10575, 9019, 9787, 9018, - 21167, 10575, 9019, 9787, 9019, 15147, 1, 9905, 466, - 21167, 10575, 9019, 9787, 9019, 15147, 248, - 21167, 10575, 9019, 9787, 9019, 15147, 1994, - 21167, 10575, 9019, 15147, 0, - 21167, 10575, 9019, 15147, 796, - 21167, 10575, 9019, 15147, 2146, - 21167, 10575, 9019, 19743, 9018, - 21167, 10575, 9134, - 21167, 10575, 9135, 15147, 3221, 10908, - 21167, 10575, 9135, 20162, - 21167, 10575, 9135, 20409, 9134, - 21167, 10575, 9138, - 21167, 10575, 9356, - 21167, 10575, 9522, - 21167, 10575, 9523, 9787, 9523, 1053, 9787, 1052, - 21167, 10575, 9523, 10908, - 21167, 10575, 9523, 19015, 16745, 17974, - 21167, 10575, 9890, - 21167, 10575, 10438, - 21167, 10575, 10439, 15147, 0, - 21167, 10575, 10439, 15147, 40, - 21167, 10575, 10439, 15147, 41, 9905, 0, - 21167, 10575, 10439, 15147, 470, - 21167, 10575, 10439, 15147, 952, - 21167, 10575, 10439, 15147, 3524, - 21167, 10575, 10439, 15147, 7326, - 21167, 10575, 10439, 15147, 10514, - 21167, 10575, 10440, - 21167, 10575, 10441, 10908, - 21167, 10575, 10462, - 21167, 10575, 10472, - 21167, 10575, 10473, 15147, 0, - 21167, 10575, 10473, 15147, 320, - 21167, 10575, 10476, - 21167, 10575, 10477, 15147, 0, - 21167, 10575, 10477, 15147, 958, - 21167, 10575, 10477, 15147, 1254, - 21167, 10575, 10477, 15147, 1546, - 21167, 10575, 10477, 15147, 1866, - 21167, 10575, 10477, 15147, 1867, 7358, - 21167, 10575, 10477, 15147, 2322, - 21167, 10575, 10477, 15147, 2470, - 21167, 10575, 10477, 15147, 3180, - 21167, 10575, 10477, 15147, 12580, - 21167, 10575, 10477, 15147, 16486, - 21167, 10575, 10484, - 21167, 10575, 10485, 9787, 10485, 1053, 9787, 1052, - 21167, 10575, 10485, 10908, - 21167, 10575, 10514, - 21167, 10575, 10515, 9905, 177, 15147, 82, - 21167, 10575, 10515, 9905, 1299, 15147, 478, - 21167, 10575, 10572, - 21167, 10575, 10573, 9787, 10573, 10514, - 21167, 10575, 10576, - 21167, 10575, 10724, - 21167, 10575, 10736, - 21167, 10575, 10858, - 21167, 10575, 10859, 9905, 3176, - 21167, 10575, 11116, - 21167, 10575, 11242, - 21167, 10575, 11252, - 21167, 10575, 11253, 15147, 548, - 21167, 10575, 11253, 15147, 16416, - 21167, 10575, 11260, - 21167, 10575, 11268, - 21167, 10575, 11270, - 21167, 10575, 11814, - 21167, 10575, 11888, - 21167, 10575, 12354, - 21167, 10575, 12388, - 21167, 10575, 12410, - 21167, 10575, 12416, - 21167, 10575, 12460, - 21167, 10575, 12466, - 21167, 10575, 12580, - 21167, 10575, 12581, 9787, 12580, - 21167, 10575, 13020, - 21167, 10575, 13022, - 21167, 10575, 13110, - 21167, 10575, 13182, - 21167, 10575, 13183, 46, - 21167, 10575, 13324, - 21167, 10575, 13382, - 21167, 10575, 13390, - 21167, 10575, 13430, - 21167, 10575, 13648, - 21167, 10575, 13678, - 21167, 10575, 13710, - 21167, 10575, 13762, - 21167, 10575, 13763, 15147, 0, - 21167, 10575, 13763, 15147, 1, 9905, 151, 9905, 272, - 21167, 10575, 13763, 15147, 1, 9905, 1546, - 21167, 10575, 13763, 15147, 1, 9905, 2200, - 21167, 10575, 13763, 15147, 40, - 21167, 10575, 13763, 15147, 41, 9905, 0, - 21167, 10575, 13763, 15147, 41, 9905, 41, 9905, 40, - 21167, 10575, 13763, 15147, 78, - 21167, 10575, 13763, 15147, 82, - 21167, 10575, 13763, 15147, 116, - 21167, 10575, 13763, 15147, 204, - 21167, 10575, 13763, 15147, 248, - 21167, 10575, 13763, 15147, 258, - 21167, 10575, 13763, 15147, 272, - 21167, 10575, 13763, 15147, 281, 15147, 2676, - 21167, 10575, 13763, 15147, 320, - 21167, 10575, 13763, 15147, 321, 9905, 272, - 21167, 10575, 13763, 15147, 321, 9905, 416, - 21167, 10575, 13763, 15147, 366, - 21167, 10575, 13763, 15147, 416, - 21167, 10575, 13763, 15147, 434, - 21167, 10575, 13763, 15147, 435, 9905, 204, - 21167, 10575, 13763, 15147, 470, - 21167, 10575, 13763, 15147, 653, 9905, 1, 9905, 639, 9905, 466, - 21167, 10575, 13763, 15147, 673, 9905, 922, - 21167, 10575, 13763, 15147, 680, - 21167, 10575, 13763, 15147, 807, 9787, 806, - 21167, 10575, 13763, 15147, 923, 11883, 10908, - 21167, 10575, 13763, 15147, 952, - 21167, 10575, 13763, 15147, 1206, - 21167, 10575, 13763, 15147, 1546, - 21167, 10575, 13763, 15147, 1642, - 21167, 10575, 13763, 15147, 1643, 9905, 1642, - 21167, 10575, 13763, 15147, 1686, - 21167, 10575, 13763, 15147, 1867, 7358, - 21167, 10575, 13763, 15147, 2060, - 21167, 10575, 13763, 15147, 2124, - 21167, 10575, 13763, 15147, 2136, - 21167, 10575, 13763, 15147, 2137, 9905, 281, 9905, 0, - 21167, 10575, 13763, 15147, 2322, - 21167, 10575, 13763, 15147, 3215, 9905, 3308, - 21167, 10575, 13763, 15147, 3308, - 21167, 10575, 13763, 15147, 3370, - 21167, 10575, 13763, 15147, 3642, - 21167, 10575, 13763, 15147, 8332, - 21167, 10575, 13763, 15147, 9018, - 21167, 10575, 13763, 15147, 10514, - 21167, 10575, 13763, 15147, 10515, 9905, 10514, - 21167, 10575, 13763, 15147, 10858, - 21167, 10575, 13763, 15147, 13762, - 21167, 10575, 13763, 15147, 14827, 9905, 7327, 9905, 13182, - 21167, 10575, 13763, 15147, 14827, 9905, 7327, 10908, - 21167, 10575, 13763, 19164, - 21167, 10575, 13764, - 21167, 10575, 13765, 7358, - 21167, 10575, 13765, 7359, 9787, 13765, 7359, 3214, - 21167, 10575, 13765, 15147, 3214, - 21167, 10575, 13765, 15147, 3215, 9905, 3308, - 21167, 10575, 13842, - 21167, 10575, 13843, 9787, 13842, - 21167, 10575, 13843, 19090, - 21167, 10575, 13843, 20409, 13842, - 21167, 10575, 13926, - 21167, 10575, 14050, - 21167, 10575, 14051, 7358, - 21167, 10575, 14051, 15147, 0, - 21167, 10575, 14051, 15147, 1, 9905, 160, - 21167, 10575, 14051, 15147, 160, - 21167, 10575, 14051, 15147, 796, - 21167, 10575, 14072, - 21167, 10575, 14172, - 21167, 10575, 14336, - 21167, 10575, 14337, 843, 15147, 116, - 21167, 10575, 14337, 843, 15147, 394, - 21167, 10575, 14337, 843, 15147, 470, - 21167, 10575, 14337, 843, 15147, 672, - 21167, 10575, 14337, 843, 15147, 1298, - 21167, 10575, 14337, 843, 15147, 1642, - 21167, 10575, 14337, 843, 15147, 1867, 7358, - 21167, 10575, 14337, 843, 15147, 7978, - 21167, 10575, 14337, 843, 15147, 14872, - 21167, 10575, 14337, 843, 15147, 15750, - 21167, 10575, 14337, 16461, 15147, 116, - 21167, 10575, 14337, 16461, 15147, 117, 40, - 21167, 10575, 14522, - 21167, 10575, 14523, 19574, - 21167, 10575, 14540, - 21167, 10575, 14541, 15147, 680, - 21167, 10575, 14541, 15147, 796, - 21167, 10575, 14541, 15147, 1996, - 21167, 10575, 14541, 20409, 14540, - 21167, 10575, 14780, - 21167, 10575, 14790, - 21167, 10575, 14806, - 21167, 10575, 14812, - 21167, 10575, 14826, - 21167, 10575, 14872, - 21167, 10575, 14998, - 21167, 10575, 15276, - 21167, 10575, 15290, - 21167, 10575, 15291, 15147, 40, - 21167, 10575, 15296, - 21167, 10575, 15630, - 21167, 10575, 15750, - 21167, 10575, 15766, - 21167, 10575, 15767, 15147, 478, - 21167, 10575, 15767, 15147, 796, - 21167, 10575, 15767, 15147, 842, - 21167, 10575, 16238, - 21167, 10575, 16296, - 21167, 10575, 16416, - 21167, 10575, 16417, 9787, 16417, 13763, 15147, 41, 9787, 13763, 15147, 40, - 21167, 10575, 16417, 13763, 15147, 41, 9787, 13763, 15147, 40, - 21167, 10575, 16460, - 21167, 10575, 16461, 9787, 16460, - 21167, 10575, 16486, - 21167, 10575, 16488, - 21167, 10575, 16500, - 21167, 10575, 16540, - 21167, 10575, 16690, - 21167, 10575, 16696, - 21167, 10575, 16742, - 21167, 10575, 16743, 15147, 40, - 21167, 10575, 16743, 15147, 41, 9905, 40, - 21167, 10575, 16743, 15147, 82, - 21167, 10575, 16743, 15147, 258, - 21167, 10575, 16743, 15147, 280, - 21167, 10575, 16743, 15147, 435, 9905, 7209, 10908, - 21167, 10575, 16743, 15147, 470, - 21167, 10575, 16743, 15147, 673, 9905, 922, - 21167, 10575, 16743, 15147, 922, - 21167, 10575, 16743, 15147, 923, 9905, 922, - 21167, 10575, 16743, 15147, 958, - 21167, 10575, 16743, 15147, 1253, 7358, - 21167, 10575, 16743, 15147, 1642, - 21167, 10575, 16743, 15147, 1646, - 21167, 10575, 16743, 15147, 2676, - 21167, 10575, 16743, 15147, 2799, 9905, 2798, - 21167, 10575, 16743, 15147, 3214, - 21167, 10575, 16743, 15147, 3215, 9905, 1, 82, - 21167, 10575, 16743, 15147, 3215, 9905, 922, - 21167, 10575, 16743, 15147, 3215, 9905, 923, 9905, 922, - 21167, 10575, 16743, 15147, 3642, - 21167, 10575, 16743, 15147, 7326, - 21167, 10575, 16743, 15147, 8812, - 21167, 10575, 16743, 15147, 13678, - 21167, 10575, 16743, 15147, 15290, - 21167, 10575, 16743, 15147, 18408, - 21167, 10575, 17070, - 21167, 10575, 17132, - 21167, 10575, 17142, - 21167, 10575, 17158, - 21167, 10575, 17278, - 21167, 10575, 17510, - 21167, 10575, 18196, - 21167, 10575, 18197, 15147, 40, - 21167, 10575, 18197, 15147, 2146, - 21167, 10575, 18398, - 21167, 10575, 18402, - 21167, 10575, 18404, - 21167, 10575, 18406, - 21167, 10575, 18408, - 21167, 10575, 18410, - 21167, 10575, 18412, - 21167, 10575, 18415, 9787, 18415, 7358, - 21167, 10575, 18416, - 21167, 10575, 18419, 9787, 18418, - 21167, 10575, 18420, - 21167, 10575, 18422, - 21167, 10575, 18424, - 21167, 10575, 18426, - 21167, 10575, 18428, - 21167, 10575, 18430, - 21167, 10575, 18432, - 21167, 10575, 18434, - 21167, 10575, 18436, - 21167, 10575, 18438, - 21167, 10575, 18440, - 21167, 10575, 18442, - 21167, 10575, 18444, - 21167, 10575, 18446, - 21167, 10575, 18448, - 21167, 10575, 18450, - 21167, 10575, 18452, - 21167, 10575, 18454, - 21167, 10575, 18456, - 21167, 10575, 18457, 15147, 264, - 21167, 10575, 18457, 15147, 673, 9905, 108, - 21167, 10575, 18457, 15147, 1866, - 21167, 10575, 18457, 15147, 2799, 9905, 2314, - 21167, 10575, 18457, 15147, 2799, 9905, 2799, 9905, 2314, - 21167, 10575, 18458, - 21167, 10575, 18460, - 21167, 10575, 18462, - 21167, 10575, 18464, - 21167, 10575, 18466, - 21167, 10575, 18468, - 21167, 10575, 18470, - 21167, 10575, 18472, - 21167, 10575, 18474, - 21167, 10575, 18476, - 21167, 10575, 18478, - 21167, 10575, 18479, 15147, 394, - 21167, 10575, 18479, 15147, 652, - 21167, 10575, 18479, 15147, 672, - 21167, 10575, 18479, 15147, 680, - 21167, 10575, 18479, 15147, 922, - 21167, 10575, 18479, 15147, 952, - 21167, 10575, 18479, 15147, 2124, - 21167, 10575, 18479, 15147, 3388, - 21167, 10575, 18479, 15147, 6717, 7359, 7358, - 21167, 10575, 18479, 15147, 15290, - 21167, 10575, 18480, - 21167, 10575, 18482, - 21167, 10575, 18483, 15147, 248, - 21167, 10575, 18483, 15147, 478, - 21167, 10575, 18483, 15147, 680, - 21167, 10575, 18483, 15147, 1296, - 21167, 10575, 18483, 15147, 1866, - 21167, 10575, 18483, 15147, 1867, 7358, - 21167, 10575, 18483, 15147, 2799, 9905, 2799, 9905, 2314, - 21167, 10575, 18483, 15147, 14813, 9905, 366, - 21167, 10575, 18483, 15147, 15290, - 21167, 10575, 18486, - 21167, 10575, 18488, - 21167, 10575, 20646, - 21167, 18729, 10575, 2757, 19573, 2761, 14874, - 21167, 18729, 10575, 2757, 19573, 2761, 18950, - 21167, 18729, 10575, 2761, 5980, - 21167, 18729, 10575, 2761, 6138, - 21167, 18729, 10575, 2761, 7429, 1654, - 21167, 18729, 10575, 2761, 13192, - 21167, 18729, 10575, 2761, 13350, - 21167, 18729, 10575, 2761, 13352, - 21167, 18729, 10575, 2761, 14798, - 21167, 18729, 10575, 2761, 15109, 6670, - 21167, 18729, 10575, 2761, 15109, 19395, 7057, 0, - 21167, 18729, 10575, 2761, 16107, 922, - 21167, 18729, 10575, 2761, 18951, 922, - 21167, 18729, 10575, 2761, 18951, 1654, - 21167, 18729, 10575, 3241, 40, - 21167, 18729, 10575, 3241, 41, 19395, 7056, - 21167, 18729, 10575, 3241, 922, - 21167, 18729, 10575, 3241, 923, 10908, - 21167, 18729, 10575, 3241, 6670, - 21167, 18729, 10575, 3241, 13350, - 21167, 18729, 10575, 3241, 14790, - 21167, 18729, 10575, 3241, 19395, 7057, 5540, - 21167, 18729, 10575, 3537, 922, - 21167, 18729, 10575, 3537, 923, 10908, - 21167, 18729, 10575, 3537, 5980, - 21167, 18729, 10575, 3537, 6138, - 21167, 18729, 10575, 3537, 13192, - 21167, 18729, 10575, 3537, 13350, - 21167, 18729, 10575, 3537, 13352, - 21167, 18729, 10575, 3537, 14790, - 21167, 18729, 10575, 3537, 14798, - 21167, 18729, 10575, 3537, 17371, 6670, - 21167, 18729, 10575, 3537, 17371, 19395, 7057, 0, - 21167, 18729, 10575, 7037, 40, - 21167, 18729, 10575, 7037, 41, 19395, 7056, - 21167, 18729, 10575, 7037, 922, - 21167, 18729, 10575, 7037, 923, 10908, - 21167, 18729, 10575, 7037, 5980, - 21167, 18729, 10575, 7037, 5981, 19395, 7056, - 21167, 18729, 10575, 7037, 6138, - 21167, 18729, 10575, 7037, 6670, - 21167, 18729, 10575, 7037, 13350, - 21167, 18729, 10575, 7037, 13352, - 21167, 18729, 10575, 7037, 14790, - 21167, 18729, 10575, 7037, 14798, - 21167, 18729, 10575, 7037, 17175, 6670, - 21167, 18729, 10575, 7059, 40, - 21167, 18729, 10575, 7059, 41, 19395, 7056, - 21167, 18729, 10575, 7059, 922, - 21167, 18729, 10575, 7059, 923, 10908, - 21167, 18729, 10575, 7059, 5980, - 21167, 18729, 10575, 7059, 5981, 19395, 7056, - 21167, 18729, 10575, 7059, 6138, - 21167, 18729, 10575, 7059, 6670, - 21167, 18729, 10575, 7059, 13350, - 21167, 18729, 10575, 7059, 13352, - 21167, 18729, 10575, 7059, 14790, - 21167, 18729, 10575, 7059, 14798, - 21167, 18729, 10575, 7059, 19395, 7057, 13814, - 21167, 18729, 10575, 7059, 19395, 7057, 13815, 0, - 21167, 18729, 10575, 7059, 19395, 7057, 13815, 2, - 21167, 18729, 10575, 7059, 19395, 7057, 16542, - 21167, 18729, 10575, 9359, 40, - 21167, 18729, 10575, 9359, 41, 19395, 7056, - 21167, 18729, 10575, 9359, 922, - 21167, 18729, 10575, 9359, 6670, - 21167, 18729, 10575, 9359, 13350, - 21167, 18729, 10575, 9359, 14790, - 21167, 18729, 10575, 9359, 19395, 7057, 16364, - 21167, 18729, 10575, 9359, 19395, 7057, 16365, 0, - 21167, 18729, 10575, 9359, 19395, 7057, 18292, - 21167, 18729, 10575, 9359, 19395, 7057, 18294, - 21167, 18729, 10575, 13151, 40, - 21167, 18729, 10575, 13151, 41, 19395, 7056, - 21167, 18729, 10575, 13151, 922, - 21167, 18729, 10575, 13151, 6670, - 21167, 18729, 10575, 13151, 13350, - 21167, 18729, 10575, 13151, 14790, - 21167, 18729, 10575, 13151, 19395, 7057, 11272, - 21167, 18729, 10575, 13151, 19395, 7057, 15292, - 21167, 18729, 10575, 14779, 40, - 21167, 18729, 10575, 14779, 41, 19395, 7056, - 21167, 18729, 10575, 14779, 922, - 21167, 18729, 10575, 14779, 6670, - 21167, 18729, 10575, 14779, 13350, - 21167, 18729, 10575, 14779, 14790, - 21167, 18729, 10575, 14779, 19395, 7057, 7805, 0, - 21167, 18729, 10575, 14779, 19395, 7057, 7805, 2, - 21167, 18729, 10575, 14779, 19395, 7057, 13590, - 21167, 18729, 10575, 14791, 15147, 1539, 9905, 2440, - 21167, 18729, 10575, 14791, 15147, 1539, 9905, 6670, - 21167, 18729, 10575, 15117, 922, - 21167, 18729, 10575, 15117, 923, 10908, - 21167, 18729, 10575, 15117, 5980, - 21167, 18729, 10575, 15117, 6138, - 21167, 18729, 10575, 15117, 6139, 19395, 7056, - 21167, 18729, 10575, 15117, 6670, - 21167, 18729, 10575, 15117, 13350, - 21167, 18729, 10575, 15117, 13352, - 21167, 18729, 10575, 15117, 14790, - 21167, 18729, 10575, 15117, 14791, 19395, 7056, - 21167, 18729, 10575, 15117, 14798, - 21167, 18729, 10575, 15117, 14799, 19395, 7056, - 21167, 18729, 10575, 15117, 19395, 7057, 13188, - 21167, 18729, 10575, 15117, 19395, 7057, 13190, - 21167, 18729, 10575, 18103, 2761, 15108, - 21167, 18729, 10575, 18103, 3537, 17370, - 21167, 18729, 10575, 18103, 13254, - 21167, 18729, 10575, 18103, 13284, - 21167, 18729, 10575, 21638, - 21167, 18729, 10575, 21640, - 21167, 23555, 10575, 2757, 19573, 11537, 18010, - 21167, 23555, 10575, 19791, 12916, - 21167, 23555, 10575, 19791, 20860, - 21167, 23555, 10575, 19791, 21772, - 21167, 23555, 10575, 20933, 12916, - 21175, 11046, - 21181, 17299, 13807, 699, 897, 22494, - 21181, 17299, 13807, 699, 897, 22495, 11513, 11472, - 21181, 17299, 13807, 699, 897, 22495, 11513, 15938, - 21181, 17299, 13807, 699, 897, 22495, 11513, 20858, - 21181, 17299, 13807, 6701, 897, 22494, - 21181, 17299, 13807, 6701, 897, 22495, 11513, 11472, - 21181, 17299, 13807, 6701, 897, 22495, 11513, 15938, - 21181, 17299, 13807, 6701, 897, 22495, 11513, 20858, - 21181, 17299, 13807, 20933, 897, 3473, 8280, - 21181, 17299, 13807, 20933, 897, 3473, 14658, - 21181, 17299, 13807, 20933, 897, 11472, - 21181, 17299, 13807, 20933, 897, 15827, 8280, - 21181, 17299, 13807, 20933, 897, 15827, 14658, - 21181, 17299, 13807, 20933, 11513, 15938, - 21181, 17299, 13807, 20933, 11513, 20858, - 21188, - 21203, 16824, - 21207, 6996, - 21349, 3537, 16321, 12414, - 21349, 12414, - 21349, 12415, 661, 964, - 21349, 12415, 897, 14659, 2761, 16107, 12532, - 21349, 12415, 7065, 964, - 21349, 12415, 11513, 3445, 21556, - 21349, 12415, 11513, 3445, 22836, - 21349, 12415, 11513, 13779, 20859, 21022, - 21349, 12415, 11513, 14911, 20859, 21022, - 21349, 12415, 11513, 14911, 23211, 21022, - 21349, 12415, 11513, 15975, 21556, - 21349, 12415, 11513, 16095, 17264, - 21349, 12415, 11513, 16637, 20859, 21022, - 21349, 12415, 11513, 18719, 10856, - 21349, 12415, 11513, 22495, 17264, - 21349, 12415, 11513, 23211, 21022, - 21349, 12415, 21557, 507, 19381, 12414, - 21349, 12525, 12414, - 21349, 12525, 12415, 661, 964, - 21349, 12525, 17881, 15453, 12414, - 21349, 13473, 12414, - 21349, 13473, 22233, 12414, - 21349, 15453, 12414, - 21349, 15453, 12415, 17579, 20859, 21022, - 21349, 15710, - 21349, 16019, 12414, - 21349, 16095, 12414, - 21349, 16857, 15738, - 21349, 17042, - 21349, 17435, 12414, - 21349, 17625, 12414, - 21349, 18253, 11513, 5989, 8281, 661, 964, - 21349, 18253, 11513, 5989, 8281, 7065, 964, - 21349, 18253, 11513, 5989, 8281, 15805, 19381, 18253, 11513, 5989, 14658, - 21349, 18253, 11513, 5989, 8281, 15805, 21349, 18253, 11513, 5989, 14658, - 21349, 18253, 11513, 5989, 14659, 661, 964, - 21349, 18253, 11513, 5989, 14659, 7065, 964, - 21349, 18253, 11513, 5989, 21556, - 21349, 18253, 11513, 5989, 22836, - 21349, 19165, 12414, - 21349, 20859, 21022, - 21349, 21775, 12414, - 21349, 22233, 12414, - 21349, 22841, 12414, - 21349, 23005, 12415, 11513, 20859, 22182, - 21349, 23215, 12414, - 21349, 28089, 12414, - 21349, 28089, 12415, 661, 964, - 21349, 28089, 12415, 11513, 6101, 14784, - 21349, 28089, 12415, 11513, 8351, 3445, 21556, - 21349, 28089, 12415, 11513, 8351, 3445, 22836, - 21349, 28089, 12415, 11513, 11371, 13473, 14784, - 21349, 28089, 12415, 11513, 13473, 14784, - 21349, 28089, 12415, 11513, 16095, 22495, 17264, - 21349, 28089, 12415, 11513, 16637, 14784, - 21349, 28089, 12415, 11513, 16701, 14784, - 21349, 28089, 12415, 21557, 507, 19381, 28089, 12414, - 21349, 28089, 16019, 12414, - 21349, 28089, 16857, 15738, - 21349, 28089, 17625, 12414, - 21351, 12604, - 21355, 17920, - 21371, 17298, - 21372, - 21375, 11046, - 21381, 95, 18274, - 21381, 18176, - 21381, 18178, - 21381, 18180, - 21387, 13473, 3241, 17211, 19574, - 21387, 13473, 7037, 17211, 19574, - 21387, 13473, 13421, 12934, - 21387, 13473, 15453, 15938, - 21387, 13473, 15453, 17224, - 21387, 13473, 19032, - 21393, 10574, - 21400, - 21406, - 21423, 2301, 8320, - 21423, 2643, 10574, - 21423, 3781, 10574, - 21423, 3921, 10574, - 21423, 6257, 10574, - 21423, 7073, 10696, - 21423, 8281, 12941, 17810, - 21423, 8281, 15453, 23522, - 21423, 8281, 17225, 17810, - 21423, 8281, 23522, - 21423, 9905, 10574, - 21423, 12916, - 21423, 12922, - 21423, 13069, 2760, - 21423, 13069, 3240, - 21423, 13069, 3536, - 21423, 13069, 7036, - 21423, 13069, 7058, - 21423, 13069, 9358, - 21423, 13069, 11824, - 21423, 13069, 13150, - 21423, 13069, 14778, - 21423, 13069, 15116, - 21423, 13417, 15678, - 21423, 13783, 14911, 16531, 0, - 21423, 13783, 14911, 16531, 2, - 21423, 13783, 14911, 16531, 4, - 21423, 13783, 14911, 16531, 6, - 21423, 13783, 14911, 16531, 8, - 21423, 13783, 14911, 16531, 10, - 21423, 13783, 14911, 16531, 12, - 21423, 13783, 14911, 16531, 14, - 21423, 13783, 14911, 16531, 16, - 21423, 13783, 14911, 16531, 18, - 21423, 13783, 14911, 16531, 20, - 21423, 13783, 14911, 16531, 22, - 21423, 13783, 14911, 16531, 24, - 21423, 13783, 14911, 16531, 26, - 21423, 13783, 14911, 16531, 28, - 21423, 13783, 14911, 16531, 30, - 21423, 13783, 14911, 16531, 32, - 21423, 13783, 14911, 16531, 34, - 21423, 13783, 14911, 16531, 36, - 21423, 13783, 14911, 16531, 38, - 21423, 13783, 14911, 16531, 40, - 21423, 13783, 14911, 16531, 42, - 21423, 13783, 14911, 16531, 44, - 21423, 13783, 14911, 16531, 46, - 21423, 13783, 14911, 16531, 48, - 21423, 13783, 14911, 16531, 50, - 21423, 13783, 17835, 16531, 0, - 21423, 13783, 17835, 16531, 2, - 21423, 13783, 17835, 16531, 4, - 21423, 13783, 17835, 16531, 6, - 21423, 13783, 17835, 16531, 8, - 21423, 13783, 17835, 16531, 10, - 21423, 13783, 17835, 16531, 12, - 21423, 13783, 17835, 16531, 14, - 21423, 13783, 17835, 16531, 16, - 21423, 13783, 17835, 16531, 18, - 21423, 13783, 17835, 16531, 20, - 21423, 13783, 17835, 16531, 22, - 21423, 13783, 17835, 16531, 24, - 21423, 13783, 17835, 16531, 26, - 21423, 13783, 17835, 16531, 28, - 21423, 13783, 17835, 16531, 30, - 21423, 13783, 17835, 16531, 32, - 21423, 13783, 17835, 16531, 34, - 21423, 13783, 17835, 16531, 36, - 21423, 13783, 17835, 16531, 38, - 21423, 13783, 17835, 16531, 40, - 21423, 13783, 17835, 16531, 42, - 21423, 13783, 17835, 16531, 44, - 21423, 13783, 17835, 16531, 46, - 21423, 13783, 17835, 16531, 48, - 21423, 13783, 17835, 16531, 50, - 21423, 14567, 10574, - 21423, 14659, 12941, 17810, - 21423, 14659, 15453, 23522, - 21423, 14659, 17225, 17810, - 21423, 14659, 23522, - 21423, 15140, - 21423, 15847, 964, - 21423, 16067, 10574, - 21423, 16121, 10574, - 21423, 16586, - 21423, 16787, 10574, - 21423, 18841, 10574, - 21423, 18999, 19140, - 21423, 19140, - 21423, 19574, - 21423, 20549, 8808, - 21423, 20933, 8320, - 21423, 21006, - 21423, 21559, 10574, - 21423, 21779, 8808, - 21423, 21844, - 21423, 22172, - 21423, 22223, 15678, - 21423, 22225, 94, - 21423, 23213, 8808, - 21423, 23853, 10574, - 21423, 23868, - 21427, 22790, - 21447, 6996, - 21448, - 21453, 8281, 15975, 17810, - 21453, 12525, 17224, - 21453, 13281, 13807, 20932, - 21453, 14659, 15975, 17810, - 21453, 15453, 15938, - 21453, 16313, 16172, - 21453, 16313, 16531, 0, - 21453, 16313, 16531, 8, - 21453, 16313, 16531, 16, - 21453, 16313, 16531, 28, - 21453, 16313, 16531, 40, - 21453, 16313, 16531, 66, - 21453, 16313, 16531, 206, - 21453, 16313, 16531, 218, - 21453, 16313, 16531, 504, - 21453, 16313, 16531, 738, - 21453, 16313, 16531, 744, - 21453, 16313, 16531, 750, - 21453, 16313, 16531, 778, - 21453, 16313, 16531, 780, - 21453, 16313, 16531, 782, - 21453, 16313, 16531, 786, - 21453, 16313, 16531, 790, - 21453, 16313, 16531, 3738, - 21453, 16313, 16531, 3764, - 21453, 16313, 16531, 3876, - 21453, 16313, 16531, 3922, - 21453, 16313, 16531, 10586, - 21453, 16313, 16531, 12698, - 21453, 16313, 16531, 13484, - 21453, 16313, 16531, 13582, - 21453, 16313, 16531, 13994, - 21453, 16313, 16531, 14164, - 21453, 16313, 16531, 14538, - 21453, 16313, 16531, 14654, - 21453, 16313, 16531, 16462, - 21453, 16313, 16531, 17384, - 21453, 16313, 16531, 17870, - 21453, 16313, 16531, 18362, - 21453, 16313, 16531, 18860, - 21453, 16313, 16531, 19274, - 21453, 16313, 16531, 21900, - 21453, 16313, 16531, 22768, - 21453, 16313, 16531, 22830, - 21453, 16313, 16531, 22930, - 21453, 16313, 16531, 22940, - 21453, 16313, 16531, 23292, - 21453, 16313, 16531, 23358, - 21453, 16313, 16531, 23360, - 21453, 16313, 16531, 23580, - 21453, 16313, 16531, 23582, - 21453, 16313, 16531, 23586, - 21453, 16313, 16531, 23664, - 21453, 16313, 16531, 23666, - 21453, 16313, 16531, 24072, - 21453, 16313, 16531, 25914, - 21453, 16313, 16531, 25916, - 21453, 19381, 12414, - 21453, 20193, 16531, 0, - 21453, 20193, 16531, 8, - 21453, 20193, 16531, 16, - 21453, 20193, 16531, 26, - 21453, 20193, 16531, 28, - 21453, 20193, 16531, 40, - 21453, 20193, 16531, 272, - 21453, 20193, 16531, 276, - 21453, 20193, 16531, 280, - 21453, 20193, 16531, 288, - 21453, 20193, 16531, 292, - 21453, 20193, 16531, 358, - 21453, 20193, 16531, 362, - 21453, 20193, 16531, 366, - 21453, 20193, 16531, 374, - 21453, 20193, 16531, 380, - 21453, 20193, 16531, 426, - 21453, 20193, 16531, 434, - 21453, 20193, 16531, 440, - 21453, 20193, 16531, 446, - 21453, 20193, 16531, 454, - 21453, 20193, 16531, 466, - 21453, 20193, 16531, 470, - 21453, 20193, 16531, 478, - 21453, 20193, 16531, 486, - 21453, 20193, 16531, 490, - 21453, 20193, 16531, 598, - 21453, 20193, 16531, 600, - 21453, 20193, 16531, 604, - 21453, 20193, 16531, 606, - 21453, 20193, 16531, 610, - 21453, 20193, 16531, 614, - 21453, 20193, 16531, 618, - 21453, 20193, 16531, 624, - 21453, 20193, 16531, 628, - 21453, 20193, 16531, 638, - 21453, 20193, 16531, 648, - 21453, 20193, 16531, 652, - 21453, 20193, 16531, 656, - 21453, 20193, 16531, 660, - 21453, 20193, 16531, 668, - 21453, 20193, 16531, 738, - 21453, 20193, 16531, 754, - 21453, 20193, 16531, 778, - 21453, 20193, 16531, 786, - 21453, 20193, 16531, 790, - 21453, 20193, 16531, 14911, 0, - 21453, 20193, 16531, 14911, 8, - 21453, 20193, 16531, 14911, 16, - 21453, 20193, 16531, 14911, 28, - 21453, 20193, 16531, 14911, 40, - 21453, 20193, 16531, 14911, 668, - 21453, 20193, 16531, 14911, 778, - 21453, 20193, 16531, 14911, 786, - 21453, 20193, 16531, 14911, 790, - 21453, 20193, 16661, 1290, - 21453, 20193, 17539, 14929, 8808, - 21453, 20193, 23603, 14929, 8808, - 21453, 21349, 12414, - 21453, 21557, 12414, - 21453, 22837, 12414, - 21453, 23259, 7073, 10696, - 21453, 23259, 12922, - 21453, 36247, 21767, 14929, 8808, - 21454, - 21466, - 21468, - 21472, - 21473, 21441, 17298, - 21477, 21141, 16620, - 21478, - 21479, 11513, 18161, 10388, - 21485, 660, - 21485, 661, 897, 19121, 20454, - 21485, 11513, 1291, 12318, - 21495, 92, - 21496, - 21507, 17298, - 21509, 9904, - 21509, 15146, - 21509, 21850, - 21518, - 21535, 10575, 14334, - 21535, 10575, 17534, - 21535, 10575, 19540, - 21535, 13069, 2760, - 21535, 13069, 3240, - 21535, 13069, 3536, - 21535, 13069, 7036, - 21535, 13069, 7058, - 21535, 13069, 9358, - 21535, 13069, 11824, - 21535, 13069, 13150, - 21535, 13069, 14778, - 21535, 13069, 15116, - 21535, 15407, 10575, 8, - 21535, 15407, 10575, 16, - 21535, 15407, 10575, 28, - 21535, 15407, 10575, 40, - 21535, 15407, 10575, 58, - 21535, 15407, 10575, 72, - 21535, 15407, 10575, 96, - 21535, 15407, 10575, 314, - 21535, 15407, 10575, 706, - 21535, 16531, 0, - 21535, 16531, 8, - 21535, 16531, 16, - 21535, 16531, 28, - 21535, 16531, 40, - 21535, 16531, 58, - 21535, 16531, 72, - 21535, 16531, 96, - 21535, 16531, 108, - 21535, 16531, 126, - 21535, 16531, 150, - 21535, 16531, 248, - 21535, 16531, 272, - 21535, 16531, 314, - 21535, 16531, 344, - 21535, 16531, 358, - 21535, 16531, 394, - 21535, 16531, 426, - 21535, 16531, 466, - 21535, 16531, 548, - 21535, 16531, 598, - 21535, 16531, 614, - 21535, 16531, 648, - 21535, 16531, 706, - 21535, 16531, 714, - 21535, 16531, 778, - 21535, 16531, 972, - 21535, 16531, 1000, - 21535, 16531, 1116, - 21535, 16531, 1214, - 21535, 16531, 1236, - 21535, 16531, 1578, - 21535, 16531, 1588, - 21535, 16531, 1918, - 21535, 16531, 1934, - 21535, 16531, 2036, - 21535, 16531, 2574, - 21535, 16531, 2624, - 21535, 16531, 2698, - 21535, 16531, 2830, - 21535, 16531, 3118, - 21535, 16531, 3212, - 21535, 16531, 3422, - 21535, 16531, 3502, - 21535, 16531, 6564, - 21535, 16531, 6572, - 21535, 16531, 11082, - 21540, - 21553, 917, 24193, 12414, - 21557, 3473, 17119, 15453, 12414, - 21557, 3537, 16321, 12414, - 21557, 7432, - 21557, 11473, 12414, - 21557, 12414, - 21557, 12415, 661, 964, - 21557, 12415, 661, 965, 9787, 22837, 12415, 661, 964, - 21557, 12415, 661, 12525, 17988, - 21557, 12415, 897, 15287, 897, 13839, 2761, 16107, 12532, - 21557, 12415, 7065, 964, - 21557, 12415, 7065, 965, 661, 12525, 17988, - 21557, 12415, 7065, 21349, 12414, - 21557, 12415, 9787, 22837, 12414, - 21557, 12415, 11513, 3445, 19380, - 21557, 12415, 11513, 3445, 21348, - 21557, 12415, 11513, 7658, - 21557, 12415, 11513, 8356, - 21557, 12415, 11513, 9905, 12502, - 21557, 12415, 11513, 10856, - 21557, 12415, 11513, 10857, 11513, 16095, 20933, 17264, - 21557, 12415, 11513, 10857, 11513, 20933, 17264, - 21557, 12415, 11513, 13779, 20859, 21022, - 21557, 12415, 11513, 14911, 20859, 21022, - 21557, 12415, 11513, 14911, 23211, 21022, - 21557, 12415, 11513, 16093, 10692, - 21557, 12415, 11513, 16095, 20933, 17264, - 21557, 12415, 11513, 16637, 20859, 21022, - 21557, 12415, 11513, 17264, - 21557, 12415, 11513, 18719, 10856, - 21557, 12415, 11513, 20933, 17264, - 21557, 12415, 11513, 23211, 21022, - 21557, 12415, 12319, 14837, 22837, 12414, - 21557, 12415, 12319, 15141, 20406, - 21557, 12415, 12319, 15703, 13177, 660, - 21557, 12415, 12319, 18999, 15141, 20406, - 21557, 12415, 12319, 18999, 15703, 13177, 660, - 21557, 12415, 19281, 46, - 21557, 12415, 19281, 17272, - 21557, 12415, 19281, 21558, - 21557, 12525, 12414, - 21557, 12525, 17881, 15453, 12414, - 21557, 13473, 12414, - 21557, 13473, 22233, 12414, - 21557, 15453, 12414, - 21557, 15453, 12415, 17579, 20859, 21022, - 21557, 16019, 12414, - 21557, 16095, 6545, 12414, - 21557, 16095, 12414, - 21557, 16095, 12415, 7065, 964, - 21557, 16095, 12415, 11513, 17264, - 21557, 16095, 12415, 11513, 20933, 17264, - 21557, 16095, 22180, - 21557, 16857, 15738, - 21557, 17042, - 21557, 17435, 6545, 12414, - 21557, 17435, 12414, - 21557, 18253, 9787, 22837, 18252, - 21557, 18253, 11513, 5989, 699, 661, 964, - 21557, 18253, 11513, 5989, 699, 7065, 964, - 21557, 18253, 11513, 5989, 699, 12319, 8351, 6544, - 21557, 18253, 11513, 5989, 699, 12319, 21557, 18253, 11513, 5989, 6700, - 21557, 18253, 11513, 5989, 699, 12319, 22837, 18253, 11513, 5989, 698, - 21557, 18253, 11513, 5989, 6701, 661, 964, - 21557, 18253, 11513, 5989, 6701, 7065, 964, - 21557, 18253, 11513, 5989, 6701, 12319, 22837, 18253, 11513, 5989, 6700, - 21557, 18253, 11513, 5989, 6701, 12503, 8351, 6544, - 21557, 18253, 11513, 5989, 19380, - 21557, 18253, 11513, 5989, 21348, - 21557, 18945, 7432, - 21557, 19165, 12414, - 21557, 20701, 12414, - 21557, 20859, 21022, - 21557, 21775, 12414, - 21557, 22180, - 21557, 22233, 12414, - 21557, 22841, 12414, - 21557, 23005, 12415, 7065, 964, - 21557, 23005, 12415, 11513, 10856, - 21557, 23005, 12415, 11513, 10857, 11513, 16095, 20933, 17264, - 21557, 23005, 12415, 11513, 10857, 11513, 20933, 17264, - 21557, 23005, 12415, 11513, 16095, 20933, 17264, - 21557, 23005, 12415, 11513, 20859, 22182, - 21557, 23005, 12415, 11513, 20933, 17264, - 21557, 23005, 17435, 6545, 12414, - 21557, 23061, 20641, 15453, 12414, - 21557, 23215, 12414, - 21557, 23305, 15453, 12414, - 21557, 23503, 12414, - 21557, 23845, 20641, 15453, 12414, - 21557, 24081, 15453, 12414, - 21557, 24201, 15453, 12414, - 21557, 28089, 12414, - 21557, 28089, 12415, 661, 964, - 21557, 28089, 12415, 9787, 22837, 28089, 12414, - 21557, 28089, 12415, 11513, 6101, 14784, - 21557, 28089, 12415, 11513, 8351, 3445, 19380, - 21557, 28089, 12415, 11513, 8351, 3445, 21348, - 21557, 28089, 12415, 11513, 11371, 13473, 14784, - 21557, 28089, 12415, 11513, 13473, 14784, - 21557, 28089, 12415, 11513, 16095, 20933, 17264, - 21557, 28089, 12415, 11513, 16095, 22495, 17264, - 21557, 28089, 12415, 11513, 16637, 14784, - 21557, 28089, 12415, 11513, 16701, 14784, - 21557, 28089, 16019, 12414, - 21557, 28089, 16857, 15738, - 21559, 529, 13177, 660, - 21559, 529, 19121, 13177, 660, - 21559, 529, 19121, 13177, 661, 11513, 1291, 12318, - 21559, 529, 19121, 13177, 661, 11513, 1291, 12319, 14658, - 21559, 529, 19121, 13177, 661, 11513, 1291, 16382, - 21559, 529, 22435, 660, - 21559, 529, 23050, - 21559, 529, 23852, - 21559, 897, 2643, 23050, - 21559, 897, 23651, 2643, 13177, 660, - 21559, 1057, 2643, 13177, 660, - 21559, 1057, 2643, 22435, 660, - 21559, 9787, 13177, 660, - 21559, 10574, - 21559, 11513, 1290, - 21559, 11513, 15939, 16382, - 21559, 11513, 20549, 8809, 12318, - 21559, 12319, 19107, 529, 13176, - 21559, 12319, 19107, 12319, 23852, - 21559, 12319, 19121, 13177, 12319, 23853, 12319, 19121, 13176, - 21559, 12319, 21557, 12414, - 21559, 12319, 23193, 13177, 12319, 23852, - 21559, 12319, 23853, 12319, 23193, 13176, - 21559, 13177, 661, 529, 23852, - 21559, 15949, 125, 12944, - 21559, 15949, 125, 12945, 12319, 19121, 13176, - 21564, - 21565, 8978, - 21565, 8979, 15850, - 21575, 97, 16525, 8808, - 21575, 6549, 8808, - 21575, 10575, 9826, - 21575, 10575, 17534, - 21575, 10575, 19408, - 21575, 10575, 19540, - 21575, 10575, 19586, - 21575, 10575, 19697, 17534, - 21575, 10575, 20933, 965, 17534, - 21575, 10575, 21127, 19541, 12318, - 21575, 10575, 23070, - 21575, 13069, 2760, - 21575, 13069, 3240, - 21575, 13069, 3536, - 21575, 13069, 7036, - 21575, 13069, 7058, - 21575, 13069, 9358, - 21575, 13069, 11824, - 21575, 13069, 13150, - 21575, 13069, 14778, - 21575, 13069, 15116, - 21575, 15407, 10575, 8, - 21575, 15407, 10575, 16, - 21575, 15407, 10575, 28, - 21575, 15407, 10575, 40, - 21575, 15407, 10575, 58, - 21575, 15407, 10575, 72, - 21575, 15407, 10575, 96, - 21575, 15407, 10575, 186, - 21575, 15407, 10575, 314, - 21575, 15407, 10575, 522, - 21575, 15407, 10575, 706, - 21575, 15407, 10575, 19415, 22, - 21575, 15407, 10575, 19415, 34, - 21575, 15407, 10575, 19415, 406, - 21575, 15407, 10575, 19415, 608, - 21575, 16531, 0, - 21575, 16531, 8, - 21575, 16531, 16, - 21575, 16531, 28, - 21575, 16531, 40, - 21575, 16531, 58, - 21575, 16531, 72, - 21575, 16531, 96, - 21575, 16531, 108, - 21575, 16531, 126, - 21575, 16531, 150, - 21575, 16531, 186, - 21575, 16531, 248, - 21575, 16531, 272, - 21575, 16531, 314, - 21575, 16531, 344, - 21575, 16531, 358, - 21575, 16531, 394, - 21575, 16531, 426, - 21575, 16531, 466, - 21575, 16531, 522, - 21575, 16531, 548, - 21575, 16531, 598, - 21575, 16531, 614, - 21575, 16531, 648, - 21575, 16531, 706, - 21575, 16531, 714, - 21575, 16531, 778, - 21575, 16531, 1000, - 21575, 16531, 1116, - 21575, 16531, 1214, - 21575, 16531, 1236, - 21575, 16531, 1291, 10118, - 21575, 16531, 1588, - 21575, 16531, 1918, - 21575, 16531, 2036, - 21575, 16531, 2278, - 21575, 16531, 2574, - 21575, 16531, 2624, - 21575, 16531, 2698, - 21575, 16531, 2830, - 21575, 16531, 3118, - 21575, 16531, 3212, - 21575, 16531, 3286, - 21575, 16531, 3422, - 21575, 16531, 3502, - 21575, 16531, 6572, - 21575, 16531, 8342, - 21575, 16531, 9422, - 21575, 16531, 11082, - 21575, 16531, 11102, - 21575, 16531, 15387, 19540, - 21575, 16531, 15925, 20, - 21575, 16531, 15925, 22, - 21575, 16531, 15925, 24, - 21575, 16531, 15925, 26, - 21575, 16531, 15925, 48, - 21575, 16531, 15925, 406, - 21575, 16531, 15925, 484, - 21575, 16531, 15925, 608, - 21575, 16531, 15925, 2282, - 21575, 16531, 17709, 314, - 21575, 16531, 19415, 22, - 21575, 16531, 19415, 34, - 21575, 16531, 19415, 406, - 21575, 16531, 19415, 608, - 21575, 16787, 2761, 18280, - 21575, 16787, 2761, 20828, - 21575, 16787, 3412, - 21575, 20055, 2761, 7428, - 21575, 20055, 2761, 13252, - 21575, 20055, 2761, 15082, - 21575, 20055, 2761, 16106, - 21575, 20055, 2761, 18950, - 21575, 20055, 2761, 20048, - 21575, 20055, 2761, 21880, - 21575, 20055, 2761, 22082, - 21575, 20055, 2761, 36358, - 21575, 20055, 15117, 20546, - 21575, 20055, 15117, 22406, - 21575, 20055, 15117, 22924, - 21575, 20055, 15117, 22994, - 21579, 18767, 21498, - 21586, - 21599, 7059, 6696, - 21599, 7061, 22097, 20631, 2760, - 21599, 7061, 22097, 20631, 3536, - 21599, 7061, 22097, 20631, 7058, - 21599, 7061, 22097, 20631, 15116, - 21599, 7073, 10696, - 21599, 10563, 20777, 19633, 16614, - 21599, 11031, 10629, 16358, - 21599, 12518, - 21599, 12519, 11513, 16095, 20412, - 21599, 12519, 11513, 20412, - 21599, 12916, - 21599, 12922, - 21599, 13069, 2760, - 21599, 13069, 3240, - 21599, 13069, 3536, - 21599, 13069, 7036, - 21599, 13069, 7058, - 21599, 13069, 9358, - 21599, 13069, 11824, - 21599, 13069, 13150, - 21599, 13069, 14778, - 21599, 13069, 15116, - 21599, 15019, 12518, - 21599, 15019, 12519, 11513, 16095, 20412, - 21599, 15019, 12519, 11513, 20412, - 21599, 15407, 21850, - 21599, 16095, 12519, 11513, 20412, - 21599, 16531, 0, - 21599, 16531, 8, - 21599, 16531, 16, - 21599, 16531, 28, - 21599, 16531, 40, - 21599, 16531, 108, - 21599, 16531, 150, - 21599, 16531, 186, - 21599, 16531, 228, - 21599, 16531, 248, - 21599, 16531, 344, - 21599, 16531, 358, - 21599, 16531, 394, - 21599, 16531, 426, - 21599, 16531, 466, - 21599, 16531, 504, - 21599, 16531, 548, - 21599, 16531, 582, - 21599, 16531, 598, - 21599, 16531, 614, - 21599, 16531, 648, - 21599, 16531, 682, - 21599, 16531, 738, - 21599, 16531, 778, - 21599, 16531, 796, - 21599, 16531, 887, 7203, 0, - 21599, 16531, 887, 7203, 16, - 21599, 16531, 887, 7203, 70, - 21599, 16531, 887, 7203, 126, - 21599, 16531, 887, 7203, 150, - 21599, 16531, 887, 7203, 358, - 21599, 16531, 887, 7203, 548, - 21599, 16531, 887, 7203, 648, - 21599, 16531, 887, 7203, 796, - 21599, 16531, 887, 7203, 1214, - 21599, 16531, 887, 7203, 2574, - 21599, 16531, 887, 7203, 2624, - 21599, 16531, 887, 7203, 2830, - 21599, 16531, 887, 7203, 3286, - 21599, 16531, 887, 7203, 3502, - 21599, 16531, 887, 7203, 4042, - 21599, 16531, 887, 7203, 7429, 40, - 21599, 16531, 887, 7203, 7429, 778, - 21599, 16531, 887, 7203, 11082, - 21599, 16531, 887, 7203, 15117, 15774, - 21599, 16531, 887, 7203, 15774, - 21599, 16531, 887, 7203, 16012, - 21599, 16531, 887, 7203, 17956, - 21599, 16531, 887, 7203, 19364, - 21599, 16531, 887, 7203, 19409, 2760, - 21599, 16531, 887, 7203, 19541, 2760, - 21599, 16531, 887, 7203, 20163, 19364, - 21599, 16531, 898, - 21599, 16531, 1116, - 21599, 16531, 1117, 11513, 3537, 6696, - 21599, 16531, 1120, - 21599, 16531, 1678, - 21599, 16531, 2036, - 21599, 16531, 2248, - 21599, 16531, 3212, - 21599, 16531, 3488, - 21599, 16531, 4046, - 21599, 16531, 4082, - 21599, 16531, 10563, 8, - 21599, 16531, 10563, 16, - 21599, 16531, 10563, 40, - 21599, 16531, 10563, 150, - 21599, 16531, 10563, 228, - 21599, 16531, 10563, 248, - 21599, 16531, 10563, 272, - 21599, 16531, 10563, 340, - 21599, 16531, 10563, 344, - 21599, 16531, 10563, 358, - 21599, 16531, 10563, 548, - 21599, 16531, 10563, 648, - 21599, 16531, 10563, 682, - 21599, 16531, 10563, 796, - 21599, 16531, 10563, 898, - 21599, 16531, 10563, 1116, - 21599, 16531, 10563, 1526, - 21599, 16531, 10563, 1678, - 21599, 16531, 10563, 3028, - 21599, 16531, 10563, 3212, - 21599, 16531, 10563, 3488, - 21599, 16531, 10563, 4042, - 21599, 16531, 11031, 8, - 21599, 16531, 11031, 16, - 21599, 16531, 11031, 28, - 21599, 16531, 11031, 40, - 21599, 16531, 11031, 108, - 21599, 16531, 11031, 150, - 21599, 16531, 11031, 248, - 21599, 16531, 11031, 344, - 21599, 16531, 11031, 358, - 21599, 16531, 11031, 426, - 21599, 16531, 11031, 504, - 21599, 16531, 11031, 548, - 21599, 16531, 11031, 582, - 21599, 16531, 11031, 648, - 21599, 16531, 11031, 682, - 21599, 16531, 11031, 738, - 21599, 16531, 11031, 778, - 21599, 16531, 11031, 887, 7203, 648, - 21599, 16531, 11031, 887, 7203, 4042, - 21599, 16531, 11031, 898, - 21599, 16531, 11031, 1116, - 21599, 16531, 11031, 1330, - 21599, 16531, 11031, 1526, - 21599, 16531, 11031, 1678, - 21599, 16531, 11031, 1922, - 21599, 16531, 11031, 2590, - 21599, 16531, 11031, 3488, - 21599, 16531, 11031, 8351, 15407, 10574, - 21599, 16531, 16601, 16, - 21599, 16531, 16601, 228, - 21599, 16531, 16601, 358, - 21599, 16531, 16601, 598, - 21599, 16531, 16601, 887, 7203, 126, - 21599, 16531, 16601, 887, 7203, 648, - 21599, 16531, 16601, 887, 7203, 796, - 21599, 16531, 16601, 887, 7203, 1000, - 21599, 16531, 16601, 887, 7203, 1180, - 21599, 16531, 16601, 887, 7203, 1236, - 21599, 16531, 16601, 887, 7203, 1588, - 21599, 16531, 16601, 887, 7203, 1918, - 21599, 16531, 16601, 887, 7203, 2248, - 21599, 16531, 16601, 887, 7203, 2574, - 21599, 16531, 16601, 887, 7203, 3286, - 21599, 16531, 16601, 887, 7203, 3502, - 21599, 16531, 16601, 887, 7203, 4042, - 21599, 16531, 16601, 887, 7203, 6572, - 21599, 16531, 16601, 4042, - 21599, 16601, 7073, 10696, - 21599, 16601, 12922, - 21599, 16746, - 21599, 17435, 12519, 11513, 20412, - 21599, 17465, 15019, 12519, 11513, 16095, 20412, - 21599, 19015, 12518, - 21599, 19015, 12519, 11513, 16095, 20412, - 21599, 19015, 12519, 11513, 20412, - 21599, 19976, - 21599, 20163, 12518, - 21599, 20163, 12519, 11513, 16095, 20412, - 21607, 23024, - 21625, 16531, 276, - 21625, 16531, 554, - 21625, 16531, 2406, - 21625, 16531, 2676, - 21625, 16531, 3398, - 21625, 16531, 3750, - 21625, 16531, 5556, - 21625, 16531, 6066, - 21625, 16531, 7478, - 21625, 16531, 8002, - 21625, 16531, 9992, - 21625, 16531, 10120, - 21625, 16531, 10478, - 21625, 16531, 10914, - 21625, 16531, 11722, - 21625, 16531, 12354, - 21625, 16531, 13259, 276, - 21625, 16531, 13259, 2406, - 21625, 16531, 13259, 2676, - 21625, 16531, 13259, 6066, - 21625, 16531, 13259, 8002, - 21625, 16531, 13259, 10478, - 21625, 16531, 13259, 11722, - 21625, 16531, 13259, 12354, - 21625, 16531, 13259, 16508, - 21625, 16531, 13384, - 21625, 16531, 14720, - 21625, 16531, 15606, - 21625, 16531, 16010, - 21625, 16531, 16508, - 21625, 16531, 17060, - 21625, 16787, 2760, - 21625, 16787, 2761, 18280, - 21625, 16787, 3412, - 21625, 16787, 3536, - 21625, 16787, 7036, - 21625, 16787, 7058, - 21625, 16787, 15116, - 21625, 16787, 17474, - 21625, 21163, 16787, 7058, - 21629, 6996, - 21634, - 21655, 10574, - 21697, 20774, - 21700, - 21702, - 21713, 16531, 276, - 21713, 16531, 554, - 21713, 16531, 2406, - 21713, 16531, 2676, - 21713, 16531, 3398, - 21713, 16531, 3750, - 21713, 16531, 5556, - 21713, 16531, 6066, - 21713, 16531, 7478, - 21713, 16531, 8002, - 21713, 16531, 9992, - 21713, 16531, 10120, - 21713, 16531, 10478, - 21713, 16531, 10914, - 21713, 16531, 11722, - 21713, 16531, 12354, - 21713, 16531, 13259, 2676, - 21713, 16531, 13384, - 21713, 16531, 14720, - 21713, 16531, 15606, - 21713, 16531, 16010, - 21713, 16531, 16508, - 21713, 16531, 17060, - 21713, 16787, 2760, - 21713, 16787, 3412, - 21713, 16787, 3536, - 21713, 16787, 7036, - 21713, 16787, 7058, - 21713, 16787, 15116, - 21713, 16787, 17474, - 21713, 25813, 18156, - 21713, 26163, 18156, - 21724, - 21726, - 21729, 21850, - 21731, 10480, - 21732, - 21741, 14483, 10574, - 21744, - 21746, - 21747, 11513, 3407, 3472, - 21775, 14570, - 21775, 20157, 20406, - 21779, 8808, - 21793, 17299, 1493, 17481, 20492, - 21793, 17299, 1493, 17483, 20492, - 21793, 17299, 1493, 17485, 20492, - 21793, 17299, 1493, 17487, 20492, - 21793, 17299, 1493, 17489, 20492, - 21793, 17299, 1493, 17491, 20492, - 21793, 17299, 1493, 17493, 20492, - 21793, 17299, 1493, 18195, 21580, - 21795, 8808, - 21815, 16322, - 21817, 20161, 18932, - 21819, 21634, - 21827, 8809, 322, - 21827, 8809, 16004, - 21827, 8809, 18298, - 21827, 8809, 18676, - 21827, 8809, 21652, - 21827, 8809, 22427, 3990, - 21827, 15407, 10575, 0, - 21827, 15407, 10575, 8, - 21827, 15407, 10575, 16, - 21827, 15407, 10575, 28, - 21827, 15407, 10575, 40, - 21827, 15407, 10575, 58, - 21827, 15407, 10575, 8351, 0, - 21827, 15407, 10575, 8351, 8, - 21827, 15407, 10575, 8351, 16, - 21827, 15407, 10575, 8351, 40, - 21827, 15407, 10575, 8351, 58, - 21827, 15407, 10575, 14837, 0, - 21827, 15407, 10575, 15000, - 21827, 15407, 10575, 20425, 0, - 21827, 15407, 10575, 20425, 58, - 21827, 16531, 234, - 21827, 16531, 322, - 21827, 16531, 334, - 21827, 16531, 340, - 21827, 16531, 950, - 21827, 16531, 1018, - 21827, 16531, 2438, - 21827, 16531, 2676, - 21827, 16531, 2980, - 21827, 16531, 3448, - 21827, 16531, 3990, - 21827, 16531, 4036, - 21827, 16531, 5478, - 21827, 16531, 7966, - 21827, 16531, 10154, - 21827, 16531, 10448, - 21827, 16531, 10840, - 21827, 16531, 13008, - 21827, 16531, 13328, - 21827, 16531, 13756, - 21827, 16531, 19108, - 21827, 16531, 19346, - 21827, 20319, 16531, 16, - 21827, 20319, 16531, 14837, 0, - 21827, 20319, 16531, 22427, 3990, - 21827, 23555, 968, - 21827, 23555, 3253, 20286, - 21827, 23555, 11126, - 21827, 23555, 11810, - 21827, 23555, 12370, - 21827, 23555, 14594, - 21827, 23555, 15626, - 21827, 23555, 15686, - 21827, 23555, 15716, - 21827, 23555, 15754, - 21827, 23555, 17710, - 21827, 23555, 18609, 14594, - 21827, 23555, 18676, - 21827, 23555, 22890, - 21827, 23737, 8808, - 21828, - 21829, 17690, - 21832, - 21843, 13069, 2760, - 21843, 13069, 3240, - 21843, 13069, 3536, - 21843, 13069, 7036, - 21843, 13069, 7058, - 21843, 13069, 9358, - 21843, 13069, 11824, - 21843, 13069, 13150, - 21843, 13069, 14778, - 21843, 13069, 15116, - 21844, - 21849, 12533, 21858, - 21849, 12533, 21860, - 21849, 12533, 21862, - 21849, 12533, 21864, - 21849, 12533, 21866, - 21849, 12533, 21868, - 21849, 12533, 22796, - 21849, 12533, 22798, - 21849, 12533, 22800, - 21849, 12533, 22802, - 21849, 12533, 22858, - 21849, 12533, 22860, - 21849, 12533, 22862, - 21849, 12533, 22864, - 21849, 12533, 22866, - 21849, 12533, 22868, - 21849, 12533, 22870, - 21849, 12533, 22872, - 21849, 12533, 22874, - 21849, 12533, 22876, - 21849, 12533, 22878, - 21849, 12533, 22880, - 21849, 12533, 22882, - 21849, 12533, 22884, - 21849, 12533, 22886, - 21849, 12533, 23556, - 21849, 12533, 23558, - 21849, 12533, 23560, - 21849, 12533, 23562, - 21849, 12533, 23564, - 21849, 12533, 23566, - 21849, 12533, 23606, - 21849, 12533, 23608, - 21849, 12533, 23610, - 21849, 12533, 23612, - 21849, 12533, 23614, - 21849, 12533, 23616, - 21849, 12533, 23618, - 21849, 12533, 23620, - 21849, 12533, 23622, - 21849, 12533, 23624, - 21849, 12533, 23626, - 21849, 12533, 23628, - 21849, 12533, 23630, - 21849, 12533, 23632, - 21849, 12533, 23634, - 21849, 12533, 23636, - 21849, 12533, 23638, - 21849, 12533, 23640, - 21849, 12533, 23642, - 21849, 12533, 23644, - 21849, 12533, 24058, - 21849, 12533, 24060, - 21849, 12533, 24062, - 21849, 12533, 24064, - 21849, 12533, 24092, - 21849, 12533, 24094, - 21849, 12533, 24096, - 21849, 12533, 24098, - 21849, 12533, 24100, - 21849, 12533, 24102, - 21849, 12533, 24104, - 21849, 12533, 24106, - 21849, 12533, 24108, - 21849, 12533, 24110, - 21849, 12533, 24112, - 21849, 12533, 24114, - 21849, 12533, 24116, - 21849, 12533, 24118, - 21849, 12533, 24120, - 21849, 12533, 25906, - 21849, 12533, 25922, - 21849, 12533, 25924, - 21849, 12533, 25926, - 21849, 12533, 25928, - 21849, 12533, 25930, - 21849, 12533, 25932, - 21849, 12533, 26168, - 21849, 17298, - 21874, - 21879, 16215, 699, 10694, - 21879, 16215, 6701, 10694, - 21879, 16215, 16531, 18780, - 21879, 16215, 22243, 18780, - 21886, - 21888, - 21891, 13470, - 21892, - 21895, 12378, - 21895, 12379, 18763, 698, - 21895, 12379, 18763, 8280, - 21897, 15015, 17298, - 21906, - 21927, 2760, - 21927, 3240, - 21927, 3536, - 21927, 7036, - 21927, 7058, - 21927, 8281, 23522, - 21927, 9358, - 21927, 9905, 10574, - 21927, 11824, - 21927, 13150, - 21927, 14004, - 21927, 14659, 23522, - 21927, 14778, - 21927, 15116, - 21927, 16121, 10574, - 21929, 3472, - 21929, 11513, 20156, - 21929, 15826, - 21931, 10575, 17534, - 21931, 10575, 18798, - 21931, 10575, 20450, - 21931, 10575, 21718, - 21931, 10575, 21720, - 21931, 13069, 2760, - 21931, 13069, 3240, - 21931, 13069, 3536, - 21931, 13069, 7036, - 21931, 13069, 7058, - 21931, 13069, 9358, - 21931, 13069, 11824, - 21931, 13069, 13150, - 21931, 13069, 14778, - 21931, 13069, 15116, - 21931, 15407, 10575, 18800, - 21931, 15407, 10575, 18812, - 21931, 15407, 10575, 20440, - 21931, 15407, 10575, 20446, - 21931, 15407, 10575, 22740, - 21931, 15407, 10575, 22742, - 21931, 16531, 0, - 21931, 16531, 8, - 21931, 16531, 16, - 21931, 16531, 28, - 21931, 16531, 40, - 21931, 16531, 66, - 21931, 16531, 108, - 21931, 16531, 126, - 21931, 16531, 150, - 21931, 16531, 218, - 21931, 16531, 228, - 21931, 16531, 248, - 21931, 16531, 272, - 21931, 16531, 344, - 21931, 16531, 358, - 21931, 16531, 394, - 21931, 16531, 426, - 21931, 16531, 466, - 21931, 16531, 548, - 21931, 16531, 582, - 21931, 16531, 598, - 21931, 16531, 614, - 21931, 16531, 648, - 21931, 16531, 714, - 21931, 16531, 738, - 21931, 16531, 762, - 21931, 16531, 778, - 21931, 16531, 796, - 21931, 16531, 1000, - 21931, 16531, 2036, - 21931, 16531, 2244, - 21931, 16531, 2574, - 21931, 16531, 2698, - 21931, 16531, 3070, - 21931, 16531, 3336, - 21931, 16531, 13259, 20, - 21931, 16531, 13259, 24, - 21931, 16531, 17709, 16, - 21931, 19586, - 21931, 21143, 10575, 18810, - 21931, 21143, 10575, 20448, - 21931, 21143, 10575, 20461, 426, - 21931, 21143, 10575, 20461, 738, - 21931, 21143, 10575, 21714, - 21931, 23555, 12517, 109, 19038, - 21931, 23555, 12517, 151, 19038, - 21931, 23555, 12517, 359, 19038, - 21931, 23555, 12517, 2245, 19038, - 21931, 23555, 12517, 12600, - 21931, 23555, 12517, 15004, - 21931, 23555, 12517, 18942, - 21931, 23555, 12517, 20442, - 21932, - 21934, - 22016, - 22026, - 22031, 521, 3473, 507, 14014, - 22031, 10574, - 22031, 20245, 10574, - 22031, 20556, - 22031, 20557, 11513, 9818, - 22031, 20558, - 22032, - 22037, 1493, 521, 3425, 15388, - 22037, 1493, 1956, - 22037, 1493, 2219, 529, 14012, - 22037, 1493, 6101, 22822, - 22037, 1493, 6830, - 22037, 1493, 7073, 15938, - 22037, 1493, 13100, - 22037, 1493, 13401, 661, 8852, - 22037, 1493, 13598, - 22037, 1493, 14006, - 22037, 1493, 14636, - 22037, 1493, 14986, - 22037, 1493, 15284, - 22037, 1493, 15434, - 22037, 1493, 15748, - 22037, 1493, 15900, - 22037, 1493, 15912, - 22037, 1493, 15949, 14030, - 22037, 1493, 16100, - 22037, 1493, 16194, - 22037, 1493, 16520, - 22037, 1493, 16984, - 22037, 1493, 17038, - 22037, 1493, 17646, - 22037, 1493, 17744, - 22037, 1493, 17890, - 22037, 1493, 17906, - 22037, 1493, 17998, - 22037, 1493, 18132, - 22037, 1493, 18273, 5966, - 22037, 1493, 18347, 14910, - 22037, 1493, 18366, - 22037, 1493, 18590, - 22037, 1493, 18600, - 22037, 1493, 18786, - 22037, 1493, 18820, - 22037, 1493, 18992, - 22037, 1493, 19112, - 22037, 1493, 19424, - 22037, 1493, 19992, - 22037, 1493, 20064, - 22037, 1493, 20102, - 22037, 1493, 20146, - 22037, 1493, 20582, - 22037, 1493, 20724, - 22037, 1493, 20736, - 22037, 1493, 20929, 529, 19428, - 22037, 1493, 21073, 2784, - 22037, 1493, 21120, - 22037, 1493, 21144, - 22037, 1493, 21170, - 22037, 1493, 21184, - 22037, 1493, 21366, - 22037, 1493, 21410, - 22037, 1493, 21414, - 22037, 1493, 21424, - 22037, 1493, 21425, 322, - 22037, 1493, 21442, - 22037, 1493, 21546, - 22037, 1493, 21808, - 22037, 1493, 21856, - 22037, 1493, 22228, - 22037, 1493, 22230, - 22037, 1493, 22240, - 22037, 1493, 22286, - 22037, 1493, 22418, - 22037, 1493, 22438, - 22037, 1493, 22726, - 22037, 1493, 22820, - 22037, 1493, 23038, - 22037, 1493, 23094, - 22037, 1493, 23204, - 22037, 1493, 23236, - 22037, 1493, 23528, - 22037, 1493, 23738, - 22037, 1493, 23796, - 22037, 1493, 23800, - 22037, 1493, 23802, - 22037, 1493, 24186, - 22037, 1493, 25755, 529, 22284, - 22037, 1493, 25770, - 22042, - 22050, - 22091, 21793, 17298, - 22093, 23525, 17298, - 22095, 14921, 7461, 11513, 9783, 14030, - 22095, 14921, 7461, 11513, 15949, 14030, - 22103, 8972, - 22130, - 22139, 17225, 8809, 8351, 15224, - 22139, 17225, 8809, 10444, - 22139, 17225, 8809, 15224, - 22139, 17225, 8809, 16095, 10444, - 22139, 17225, 10575, 15877, 11513, 20412, - 22139, 17225, 10575, 17534, - 22139, 17225, 10575, 19408, - 22139, 17225, 10575, 19540, - 22139, 17225, 10575, 23070, - 22139, 17225, 10575, 23071, 11513, 20412, - 22139, 17225, 13259, 21143, 8808, - 22139, 17225, 15407, 10575, 8, - 22139, 17225, 15407, 10575, 16, - 22139, 17225, 15407, 10575, 28, - 22139, 17225, 15407, 10575, 40, - 22139, 17225, 15407, 10575, 72, - 22139, 17225, 15407, 10575, 96, - 22139, 17225, 15407, 10575, 504, - 22139, 17225, 15407, 10575, 682, - 22139, 17225, 15407, 10575, 20587, 16, - 22139, 17225, 15407, 16525, 8808, - 22139, 17225, 16531, 0, - 22139, 17225, 16531, 52, - 22139, 17225, 16531, 108, - 22139, 17225, 16531, 126, - 22139, 17225, 16531, 150, - 22139, 17225, 16531, 248, - 22139, 17225, 16531, 272, - 22139, 17225, 16531, 344, - 22139, 17225, 16531, 358, - 22139, 17225, 16531, 394, - 22139, 17225, 16531, 426, - 22139, 17225, 16531, 466, - 22139, 17225, 16531, 548, - 22139, 17225, 16531, 598, - 22139, 17225, 16531, 614, - 22139, 17225, 16531, 648, - 22139, 17225, 16531, 714, - 22139, 17225, 16531, 778, - 22139, 17225, 16531, 796, - 22139, 17225, 16531, 1000, - 22139, 17225, 16531, 1116, - 22139, 17225, 16531, 1214, - 22139, 17225, 16531, 1236, - 22139, 17225, 16531, 1330, - 22139, 17225, 16531, 1588, - 22139, 17225, 16531, 2036, - 22139, 17225, 16531, 2574, - 22139, 17225, 16531, 2624, - 22139, 17225, 16531, 2698, - 22139, 17225, 16531, 2830, - 22139, 17225, 16531, 3212, - 22139, 17225, 16531, 3286, - 22139, 17225, 16531, 3422, - 22139, 17225, 16531, 3488, - 22139, 17225, 16531, 3502, - 22139, 17225, 16531, 4042, - 22139, 17225, 16531, 6572, - 22139, 17225, 16531, 6740, - 22139, 17225, 16531, 8154, - 22139, 17225, 16531, 11058, - 22139, 17225, 16531, 11082, - 22139, 17225, 17889, 7461, 8808, - 22139, 17225, 17889, 23831, 7461, 8808, - 22139, 17225, 18303, 7461, 8808, - 22139, 17225, 18303, 23831, 7461, 8808, - 22139, 17225, 21920, - 22139, 17225, 24209, 16531, 394, - 22139, 17225, 24209, 16531, 598, - 22139, 17225, 24209, 16531, 714, - 22139, 17225, 24209, 16531, 778, - 22139, 17225, 28043, 16531, 598, - 22153, 17299, 1493, 882, - 22153, 17299, 1493, 1648, - 22153, 17299, 1493, 2752, - 22153, 17299, 1493, 2869, 12420, - 22153, 17299, 1493, 3443, 2776, - 22153, 17299, 1493, 3752, - 22153, 17299, 1493, 5496, - 22153, 17299, 1493, 5519, 14638, - 22153, 17299, 1493, 5519, 15402, - 22153, 17299, 1493, 5519, 18986, - 22153, 17299, 1493, 5519, 19410, - 22153, 17299, 1493, 5997, 507, 8810, - 22153, 17299, 1493, 5997, 507, 19390, - 22153, 17299, 1493, 6214, - 22153, 17299, 1493, 7026, - 22153, 17299, 1493, 7332, - 22153, 17299, 1493, 7429, 6702, - 22153, 17299, 1493, 7429, 14454, - 22153, 17299, 1493, 7676, - 22153, 17299, 1493, 7821, 2776, - 22153, 17299, 1493, 7821, 14438, - 22153, 17299, 1493, 8275, 2776, - 22153, 17299, 1493, 10175, 10386, - 22153, 17299, 1493, 10175, 17058, - 22153, 17299, 1493, 10386, - 22153, 17299, 1493, 10387, 507, 15971, 23046, - 22153, 17299, 1493, 10387, 507, 19536, - 22153, 17299, 1493, 10626, - 22153, 17299, 1493, 12420, - 22153, 17299, 1493, 12525, 17276, - 22153, 17299, 1493, 12544, - 22153, 17299, 1493, 12556, - 22153, 17299, 1493, 12611, 18644, - 22153, 17299, 1493, 13140, - 22153, 17299, 1493, 13537, 6720, - 22153, 17299, 1493, 14018, - 22153, 17299, 1493, 14166, - 22153, 17299, 1493, 14174, - 22153, 17299, 1493, 14599, 8318, - 22153, 17299, 1493, 15254, - 22153, 17299, 1493, 15288, - 22153, 17299, 1493, 15436, - 22153, 17299, 1493, 15698, - 22153, 17299, 1493, 15971, 2776, - 22153, 17299, 1493, 15971, 23046, - 22153, 17299, 1493, 15987, 507, 7820, - 22153, 17299, 1493, 15987, 507, 15970, - 22153, 17299, 1493, 15987, 507, 19728, - 22153, 17299, 1493, 16962, - 22153, 17299, 1493, 16982, - 22153, 17299, 1493, 17020, - 22153, 17299, 1493, 17166, - 22153, 17299, 1493, 17208, - 22153, 17299, 1493, 17276, - 22153, 17299, 1493, 17328, - 22153, 17299, 1493, 17668, - 22153, 17299, 1493, 17676, - 22153, 17299, 1493, 17714, - 22153, 17299, 1493, 17775, 2776, - 22153, 17299, 1493, 17800, - 22153, 17299, 1493, 17802, - 22153, 17299, 1493, 18006, - 22153, 17299, 1493, 18615, 21922, - 22153, 17299, 1493, 18615, 23670, - 22153, 17299, 1493, 18615, 23672, - 22153, 17299, 1493, 18982, - 22153, 17299, 1493, 18988, - 22153, 17299, 1493, 18989, 507, 7820, - 22153, 17299, 1493, 18989, 507, 19536, - 22153, 17299, 1493, 18989, 507, 22164, - 22153, 17299, 1493, 19047, 507, 7910, - 22153, 17299, 1493, 19177, 19312, - 22153, 17299, 1493, 19201, 15003, 19200, - 22153, 17299, 1493, 19201, 15003, 21908, - 22153, 17299, 1493, 19312, - 22153, 17299, 1493, 19406, - 22153, 17299, 1493, 19407, 507, 19536, - 22153, 17299, 1493, 19412, - 22153, 17299, 1493, 19524, - 22153, 17299, 1493, 19537, 2776, - 22153, 17299, 1493, 19654, - 22153, 17299, 1493, 19692, - 22153, 17299, 1493, 19744, - 22153, 17299, 1493, 19812, - 22153, 17299, 1493, 20513, 12556, - 22153, 17299, 1493, 20804, - 22153, 17299, 1493, 20838, - 22153, 17299, 1493, 21172, - 22153, 17299, 1493, 21566, - 22153, 17299, 1493, 21576, - 22153, 17299, 1493, 21784, - 22153, 17299, 1493, 21796, - 22153, 17299, 1493, 21798, - 22153, 17299, 1493, 21800, - 22153, 17299, 1493, 21923, 507, 10387, 507, 15970, - 22153, 17299, 1493, 21923, 507, 10387, 507, 19536, - 22153, 17299, 1493, 21923, 507, 15970, - 22153, 17299, 1493, 21923, 507, 19536, - 22153, 17299, 1493, 22100, - 22153, 17299, 1493, 22106, - 22153, 17299, 1493, 22108, - 22153, 17299, 1493, 22112, - 22153, 17299, 1493, 22176, - 22153, 17299, 1493, 22252, - 22153, 17299, 1493, 22254, - 22153, 17299, 1493, 22256, - 22153, 17299, 1493, 22258, - 22153, 17299, 1493, 22282, - 22153, 17299, 1493, 23056, - 22153, 17299, 1493, 23287, 2776, - 22153, 17299, 1493, 23552, - 22153, 17299, 1493, 23674, - 22153, 17299, 1493, 24043, 17276, - 22153, 17299, 1493, 24056, - 22153, 17299, 1493, 24068, - 22153, 17299, 1493, 24086, - 22157, 13470, - 22172, - 22175, 3425, 13812, - 22191, 6996, - 22196, - 22201, 897, 7662, - 22213, 2301, 8320, - 22213, 20422, - 22218, - 22221, 16531, 276, - 22221, 16531, 554, - 22221, 16531, 2406, - 22221, 16531, 2676, - 22221, 16531, 3398, - 22221, 16531, 3750, - 22221, 16531, 5556, - 22221, 16531, 6066, - 22221, 16531, 7478, - 22221, 16531, 8002, - 22221, 16531, 10120, - 22221, 16531, 10478, - 22221, 16531, 11722, - 22221, 16531, 12354, - 22221, 16531, 13384, - 22221, 16531, 14911, 12354, - 22221, 16531, 15606, - 22221, 16531, 15999, 3750, - 22221, 16531, 16010, - 22221, 16531, 16508, - 22221, 16531, 17060, - 22221, 16787, 2760, - 22221, 16787, 2761, 18280, - 22221, 16787, 3412, - 22221, 16787, 3536, - 22221, 16787, 7058, - 22221, 16787, 15116, - 22221, 16787, 17474, - 22223, 15678, - 22225, 94, - 22225, 14005, 10574, - 22226, - 22235, 6996, - 22245, 22089, 17298, - 22271, 14984, - 22273, 9436, - 22275, 518, - 22275, 1545, 16172, - 22275, 7461, 8808, - 22275, 7461, 8809, 11513, 22478, - 22275, 7841, 518, - 22275, 10575, 7521, 19147, 1290, - 22275, 10575, 12510, - 22275, 10575, 12511, 11513, 7658, - 22275, 10575, 14002, - 22275, 10575, 14334, - 22275, 10575, 16095, 23071, 17534, - 22275, 10575, 17534, - 22275, 10575, 19100, - 22275, 10575, 19147, 23070, - 22275, 10575, 19408, - 22275, 10575, 19433, 21403, 12510, - 22275, 10575, 19433, 21645, 12510, - 22275, 10575, 19540, - 22275, 10575, 19586, - 22275, 10575, 20003, 12510, - 22275, 10575, 20003, 12511, 11513, 7658, - 22275, 10575, 20163, 23070, - 22275, 10575, 20538, - 22275, 10575, 20587, 21645, 12510, - 22275, 10575, 23070, - 22275, 10575, 23071, 3536, - 22275, 10575, 23071, 15116, - 22275, 10575, 23071, 17534, - 22275, 10575, 23071, 19586, - 22275, 12321, 15678, - 22275, 12614, - 22275, 13016, - 22275, 13069, 2760, - 22275, 13069, 3240, - 22275, 13069, 3536, - 22275, 13069, 7036, - 22275, 13069, 7058, - 22275, 13069, 9358, - 22275, 13069, 11824, - 22275, 13069, 13150, - 22275, 13069, 14778, - 22275, 13069, 15116, - 22275, 13417, 15678, - 22275, 15407, 10575, 8, - 22275, 15407, 10575, 16, - 22275, 15407, 10575, 28, - 22275, 15407, 10575, 40, - 22275, 15407, 10575, 58, - 22275, 15407, 10575, 72, - 22275, 15407, 10575, 96, - 22275, 15407, 10575, 100, - 22275, 15407, 10575, 104, - 22275, 15407, 10575, 314, - 22275, 15407, 10575, 504, - 22275, 15407, 10575, 682, - 22275, 15407, 10575, 706, - 22275, 15407, 10575, 2768, - 22275, 15407, 10575, 3644, - 22275, 15407, 10575, 14837, 8, - 22275, 15407, 10575, 14837, 28, - 22275, 15407, 10575, 15877, 8, - 22275, 15407, 10575, 15877, 28, - 22275, 15407, 10575, 15877, 8351, 8, - 22275, 15407, 10575, 19415, 22, - 22275, 15407, 10575, 19415, 34, - 22275, 15407, 10575, 19415, 406, - 22275, 15407, 10575, 19415, 608, - 22275, 15407, 10575, 25905, 8, - 22275, 16095, 13016, - 22275, 16531, 0, - 22275, 16531, 8, - 22275, 16531, 16, - 22275, 16531, 28, - 22275, 16531, 40, - 22275, 16531, 58, - 22275, 16531, 72, - 22275, 16531, 96, - 22275, 16531, 100, - 22275, 16531, 104, - 22275, 16531, 108, - 22275, 16531, 126, - 22275, 16531, 150, - 22275, 16531, 228, - 22275, 16531, 248, - 22275, 16531, 272, - 22275, 16531, 314, - 22275, 16531, 344, - 22275, 16531, 358, - 22275, 16531, 394, - 22275, 16531, 426, - 22275, 16531, 466, - 22275, 16531, 504, - 22275, 16531, 548, - 22275, 16531, 582, - 22275, 16531, 598, - 22275, 16531, 614, - 22275, 16531, 648, - 22275, 16531, 682, - 22275, 16531, 706, - 22275, 16531, 714, - 22275, 16531, 778, - 22275, 16531, 796, - 22275, 16531, 972, - 22275, 16531, 1000, - 22275, 16531, 1116, - 22275, 16531, 1214, - 22275, 16531, 1236, - 22275, 16531, 1578, - 22275, 16531, 1588, - 22275, 16531, 1918, - 22275, 16531, 1934, - 22275, 16531, 2036, - 22275, 16531, 2278, - 22275, 16531, 2574, - 22275, 16531, 2624, - 22275, 16531, 2698, - 22275, 16531, 2768, - 22275, 16531, 2830, - 22275, 16531, 3074, - 22275, 16531, 3118, - 22275, 16531, 3212, - 22275, 16531, 3286, - 22275, 16531, 3422, - 22275, 16531, 3502, - 22275, 16531, 3644, - 22275, 16531, 4002, - 22275, 16531, 4042, - 22275, 16531, 6564, - 22275, 16531, 6572, - 22275, 16531, 7300, - 22275, 16531, 8068, - 22275, 16531, 8342, - 22275, 16531, 9422, - 22275, 16531, 11082, - 22275, 16531, 13030, - 22275, 16531, 13473, 778, - 22275, 16531, 14837, 0, - 22275, 16531, 14837, 8, - 22275, 16531, 14837, 28, - 22275, 16531, 15877, 0, - 22275, 16531, 15877, 8, - 22275, 16531, 15877, 28, - 22275, 16531, 18213, 10696, - 22275, 16531, 18585, 1214, - 22275, 16531, 19415, 22, - 22275, 16531, 19415, 34, - 22275, 16531, 19415, 406, - 22275, 16531, 19415, 608, - 22275, 17257, 10575, 17496, - 22275, 17257, 10575, 19538, - 22275, 22478, - 22275, 23737, 10574, - 22277, 17768, - 22411, 23882, - 22435, 660, - 22435, 11513, 7059, 6697, 12318, - 22442, - 22454, - 22469, 14911, 16531, 16, - 22469, 14911, 16531, 554, - 22469, 14911, 16531, 786, - 22469, 14911, 16531, 790, - 22469, 14911, 16531, 948, - 22469, 14911, 16531, 1015, 3988, - 22469, 14911, 16531, 2766, - 22469, 14911, 16531, 2782, - 22469, 14911, 16531, 3212, - 22469, 14911, 16531, 3492, - 22469, 14911, 16531, 3606, - 22469, 14911, 16531, 6120, - 22469, 14911, 16531, 7034, - 22469, 14911, 16531, 7474, - 22469, 14911, 16531, 7834, - 22469, 14911, 16531, 7990, - 22469, 14911, 16531, 10512, - 22469, 14911, 16531, 11362, - 22469, 14911, 16531, 11660, - 22469, 14911, 16531, 11678, - 22469, 14911, 16531, 11680, - 22469, 14911, 16531, 13088, - 22469, 14911, 16531, 13112, - 22469, 14911, 16531, 13294, - 22469, 14911, 16531, 14080, - 22469, 14911, 16531, 14662, - 22469, 14911, 16531, 14908, - 22469, 14911, 16531, 14911, 3988, - 22469, 14911, 16531, 14911, 3989, 11513, 10856, - 22469, 14911, 16531, 15526, - 22469, 14911, 16531, 15930, - 22469, 14911, 16531, 16060, - 22469, 14911, 16531, 16944, - 22469, 14911, 16531, 17470, - 22469, 14911, 16531, 17618, - 22469, 14911, 16531, 17841, 15930, - 22469, 14911, 16531, 18208, - 22469, 14911, 16531, 18303, 7834, - 22469, 14911, 16531, 18311, 1015, 3988, - 22469, 14911, 16531, 18311, 14911, 3988, - 22469, 14911, 16531, 18318, - 22469, 14911, 16531, 18524, - 22469, 14911, 16531, 18658, - 22469, 14911, 16531, 19096, - 22469, 14911, 16531, 19157, 272, - 22469, 14911, 16531, 19466, - 22469, 14911, 16531, 20217, 18658, - 22469, 14911, 16531, 22991, 0, - 22469, 17835, 16531, 16, - 22469, 17835, 16531, 554, - 22469, 17835, 16531, 786, - 22469, 17835, 16531, 790, - 22469, 17835, 16531, 948, - 22469, 17835, 16531, 1015, 3988, - 22469, 17835, 16531, 2766, - 22469, 17835, 16531, 2782, - 22469, 17835, 16531, 3212, - 22469, 17835, 16531, 3492, - 22469, 17835, 16531, 3606, - 22469, 17835, 16531, 6120, - 22469, 17835, 16531, 7034, - 22469, 17835, 16531, 7474, - 22469, 17835, 16531, 7834, - 22469, 17835, 16531, 7990, - 22469, 17835, 16531, 10512, - 22469, 17835, 16531, 11362, - 22469, 17835, 16531, 11660, - 22469, 17835, 16531, 11678, - 22469, 17835, 16531, 11680, - 22469, 17835, 16531, 13088, - 22469, 17835, 16531, 13112, - 22469, 17835, 16531, 13294, - 22469, 17835, 16531, 14080, - 22469, 17835, 16531, 14662, - 22469, 17835, 16531, 14908, - 22469, 17835, 16531, 14911, 3988, - 22469, 17835, 16531, 14911, 3989, 11513, 10856, - 22469, 17835, 16531, 15526, - 22469, 17835, 16531, 15930, - 22469, 17835, 16531, 16060, - 22469, 17835, 16531, 16944, - 22469, 17835, 16531, 17470, - 22469, 17835, 16531, 17618, - 22469, 17835, 16531, 17841, 15930, - 22469, 17835, 16531, 18208, - 22469, 17835, 16531, 18303, 7834, - 22469, 17835, 16531, 18311, 1015, 3988, - 22469, 17835, 16531, 18311, 14911, 3988, - 22469, 17835, 16531, 18318, - 22469, 17835, 16531, 18524, - 22469, 17835, 16531, 18658, - 22469, 17835, 16531, 19096, - 22469, 17835, 16531, 19157, 272, - 22469, 17835, 16531, 19466, - 22469, 17835, 16531, 20217, 18658, - 22469, 17835, 16531, 22991, 0, - 22473, 1086, - 22480, - 22483, 16531, 812, - 22483, 16531, 814, - 22483, 16531, 816, - 22483, 16531, 1340, - 22483, 16531, 1342, - 22483, 16531, 1344, - 22483, 16531, 1346, - 22483, 16531, 1348, - 22483, 16531, 1350, - 22483, 16531, 1838, - 22483, 16531, 1840, - 22483, 16531, 1842, - 22483, 16531, 1844, - 22483, 16531, 2720, - 22483, 16531, 2722, - 22483, 16531, 2724, - 22483, 16531, 3560, - 22483, 16531, 3562, - 22483, 16531, 3564, - 22483, 16531, 3566, - 22483, 16531, 3568, - 22483, 16531, 4126, - 22483, 16531, 7402, - 22483, 16531, 7404, - 22483, 16531, 7406, - 22483, 16531, 7408, - 22483, 16531, 7410, - 22483, 16531, 7412, - 22483, 16531, 7414, - 22483, 16531, 7416, - 22483, 16531, 7418, - 22483, 16531, 7446, - 22483, 16531, 7448, - 22483, 16531, 7450, - 22483, 16531, 7452, - 22483, 16531, 7454, - 22483, 16531, 7456, - 22483, 16531, 7458, - 22483, 16531, 7502, - 22483, 16531, 7504, - 22483, 16531, 7506, - 22483, 16531, 7508, - 22483, 16531, 7510, - 22483, 16531, 7512, - 22483, 16531, 7514, - 22483, 16531, 7636, - 22483, 16531, 7638, - 22483, 16531, 7640, - 22483, 16531, 7642, - 22483, 16531, 7644, - 22483, 16531, 7646, - 22483, 16531, 7648, - 22483, 16531, 7650, - 22483, 16531, 7682, - 22483, 16531, 7684, - 22483, 16531, 7686, - 22483, 16531, 7946, - 22483, 16531, 7948, - 22483, 16531, 7950, - 22483, 16531, 7952, - 22483, 16531, 7954, - 22483, 16531, 7956, - 22483, 16531, 7958, - 22483, 16531, 7960, - 22483, 16531, 7962, - 22483, 16531, 8024, - 22483, 16531, 8026, - 22483, 16531, 8028, - 22483, 16531, 8030, - 22483, 16531, 8032, - 22483, 16531, 8034, - 22483, 16531, 8082, - 22483, 16531, 8084, - 22483, 16531, 8086, - 22483, 16531, 8088, - 22483, 16531, 8090, - 22483, 16531, 8092, - 22483, 16531, 8094, - 22483, 16531, 8096, - 22483, 16531, 8122, - 22483, 16531, 8124, - 22483, 16531, 8126, - 22483, 16531, 8156, - 22483, 16531, 8158, - 22483, 16531, 8160, - 22483, 16531, 8162, - 22483, 16531, 8164, - 22483, 16531, 8166, - 22483, 16531, 8168, - 22483, 16531, 8778, - 22483, 16531, 8780, - 22483, 16531, 8782, - 22483, 16531, 8784, - 22483, 16531, 8786, - 22483, 16531, 8788, - 22483, 16531, 8790, - 22483, 16531, 8842, - 22483, 16531, 8844, - 22483, 16531, 8918, - 22483, 16531, 8920, - 22483, 16531, 8922, - 22483, 16531, 8924, - 22483, 16531, 8926, - 22483, 16531, 8928, - 22483, 16531, 8930, - 22483, 16531, 8960, - 22483, 16531, 8962, - 22483, 16531, 8964, - 22483, 16531, 8966, - 22483, 16531, 8968, - 22483, 16531, 8970, - 22483, 16531, 8984, - 22483, 16531, 8986, - 22483, 16531, 8988, - 22483, 16531, 8990, - 22483, 16531, 9114, - 22483, 16531, 9116, - 22483, 16531, 9118, - 22483, 16531, 9120, - 22483, 16531, 9122, - 22483, 16531, 9124, - 22483, 16531, 9126, - 22483, 16531, 9128, - 22483, 16531, 9130, - 22483, 16531, 9236, - 22483, 16531, 9238, - 22483, 16531, 9240, - 22483, 16531, 9242, - 22483, 16531, 9244, - 22483, 16531, 9246, - 22483, 16531, 9336, - 22483, 16531, 9338, - 22483, 16531, 9340, - 22483, 16531, 9342, - 22483, 16531, 9344, - 22483, 16531, 9346, - 22483, 16531, 9348, - 22483, 16531, 9426, - 22483, 16531, 9428, - 22483, 16531, 9430, - 22483, 16531, 9432, - 22483, 16531, 9434, - 22483, 16531, 9516, - 22483, 16531, 9518, - 22483, 16531, 9520, - 22483, 16531, 10074, - 22483, 16531, 10076, - 22483, 16531, 10078, - 22483, 16531, 10080, - 22483, 16531, 10104, - 22483, 16531, 10106, - 22483, 16531, 10108, - 22483, 16531, 10110, - 22483, 16531, 10128, - 22483, 16531, 10130, - 22483, 16531, 10132, - 22483, 16531, 10134, - 22483, 16531, 10136, - 22483, 16531, 10138, - 22483, 16531, 10140, - 22483, 16531, 10160, - 22483, 16531, 10162, - 22483, 16531, 10164, - 22483, 16531, 10166, - 22483, 16531, 10168, - 22483, 16531, 10170, - 22483, 16531, 10226, - 22483, 16531, 10228, - 22483, 16531, 10230, - 22483, 16531, 10232, - 22483, 16531, 10234, - 22483, 16531, 10236, - 22483, 16531, 10354, - 22483, 16531, 10356, - 22483, 16531, 10358, - 22483, 16531, 10360, - 22483, 16531, 10362, - 22483, 16531, 10364, - 22483, 16531, 10366, - 22483, 16531, 10368, - 22483, 16531, 10404, - 22483, 16531, 10406, - 22483, 16531, 10408, - 22483, 16531, 10410, - 22483, 16531, 10412, - 22483, 16531, 10550, - 22483, 16531, 10552, - 22483, 16531, 10554, - 22483, 16531, 10556, - 22483, 16531, 10558, - 22483, 16531, 10560, - 22483, 16531, 10612, - 22483, 16531, 10614, - 22483, 16531, 10616, - 22483, 16531, 10618, - 22483, 16531, 10620, - 22483, 16531, 10622, - 22483, 16531, 10624, - 22483, 16531, 10700, - 22483, 16531, 10702, - 22483, 16531, 10704, - 22483, 16531, 10706, - 22483, 16531, 10708, - 22483, 16531, 10710, - 22483, 16531, 10712, - 22483, 16531, 10714, - 22483, 16531, 10832, - 22483, 16531, 10834, - 22483, 16531, 10836, - 22483, 16531, 10838, - 22483, 16531, 10880, - 22483, 16531, 10882, - 22483, 16531, 10884, - 22483, 16531, 10886, - 22483, 16531, 10888, - 22483, 16531, 10890, - 22483, 16531, 10892, - 22483, 16531, 10894, - 22483, 16531, 10896, - 22483, 16531, 10970, - 22483, 16531, 10972, - 22483, 16531, 10974, - 22483, 16531, 10976, - 22483, 16531, 10978, - 22483, 16531, 10980, - 22483, 16531, 10982, - 22483, 16531, 11018, - 22483, 16531, 11020, - 22483, 16531, 11022, - 22483, 16531, 11024, - 22483, 16531, 11026, - 22483, 16531, 11028, - 22483, 16531, 11104, - 22483, 16531, 11106, - 22483, 16531, 11108, - 22483, 16531, 11110, - 22483, 16531, 11454, - 22483, 16531, 11456, - 22483, 16531, 11458, - 22483, 16531, 11460, - 22483, 16531, 11462, - 22483, 16531, 11476, - 22483, 16531, 11478, - 22483, 16531, 11480, - 22483, 16531, 11482, - 22483, 16531, 11492, - 22483, 16531, 11494, - 22483, 16531, 11496, - 22483, 16531, 11498, - 22483, 16531, 11500, - 22483, 16531, 11514, - 22483, 16531, 11516, - 22483, 16531, 11518, - 22483, 16531, 11520, - 22483, 16531, 11522, - 22483, 16531, 11524, - 22483, 16531, 11526, - 22483, 16531, 11614, - 22483, 16531, 11616, - 22483, 16531, 11618, - 22483, 16531, 11620, - 22483, 16531, 11622, - 22483, 16531, 11704, - 22483, 16531, 11706, - 22483, 16531, 11708, - 22483, 16531, 11710, - 22483, 16531, 11712, - 22483, 16531, 11714, - 22483, 16531, 11732, - 22483, 16531, 11734, - 22483, 16531, 11736, - 22483, 16531, 11738, - 22483, 16531, 13436, - 22483, 16531, 13438, - 22483, 16531, 13634, - 22483, 16531, 13636, - 22483, 16531, 13638, - 22483, 16531, 13718, - 22483, 16531, 13942, - 22483, 16531, 14108, - 22483, 16531, 14162, - 22483, 16531, 15168, - 22483, 16531, 15240, - 22483, 16531, 15504, - 22483, 16531, 21620, - 22483, 16531, 21622, - 22491, 15198, - 22491, 15199, 11513, 15859, 9440, - 22492, - 22495, 964, - 22495, 2761, 16107, 17782, - 22495, 2761, 16107, 17784, - 22495, 2761, 16107, 17786, - 22495, 2761, 16107, 17788, - 22495, 2761, 16107, 17790, - 22495, 2761, 16107, 17792, - 22495, 2761, 16107, 22206, - 22495, 3367, 2034, - 22495, 8321, 11513, 7059, 10985, 13924, - 22495, 8321, 11513, 10985, 8808, - 22495, 8321, 11513, 15117, 10985, 13924, - 22495, 8321, 21382, - 22495, 8801, 11513, 17265, 10574, - 22495, 10401, 16544, - 22495, 10401, 16546, - 22495, 10401, 16548, - 22495, 10401, 16550, - 22495, 12525, 18266, - 22495, 12525, 18744, - 22495, 16498, - 22495, 17005, 1088, - 22495, 17625, 8320, - 22495, 19309, 13806, - 22495, 19976, - 22495, 20579, 19058, - 22495, 21082, - 22497, 17298, - 22507, 20152, - 22521, 10575, 965, 12318, - 22521, 10575, 1291, 12502, - 22521, 10575, 12622, - 22521, 10575, 16095, 10151, 12502, - 22521, 10575, 19408, - 22521, 10575, 19540, - 22521, 13069, 2760, - 22521, 13069, 3536, - 22521, 13069, 7058, - 22521, 13069, 15116, - 22521, 15407, 10575, 8, - 22521, 15407, 10575, 16, - 22521, 15407, 10575, 28, - 22521, 15407, 10575, 40, - 22521, 15407, 10575, 19415, 34, - 22521, 15407, 16525, 8808, - 22521, 16531, 0, - 22521, 16531, 108, - 22521, 16531, 126, - 22521, 16531, 150, - 22521, 16531, 248, - 22521, 16531, 272, - 22521, 16531, 344, - 22521, 16531, 358, - 22521, 16531, 394, - 22521, 16531, 426, - 22521, 16531, 466, - 22521, 16531, 548, - 22521, 16531, 598, - 22521, 16531, 614, - 22521, 16531, 648, - 22521, 16531, 714, - 22521, 16531, 778, - 22521, 16531, 796, - 22521, 16531, 1000, - 22521, 16531, 1116, - 22521, 16531, 1214, - 22521, 16531, 1236, - 22521, 16531, 1588, - 22521, 16531, 2036, - 22521, 16531, 2076, - 22521, 16531, 2624, - 22521, 16531, 2698, - 22521, 16531, 2830, - 22521, 16531, 3212, - 22521, 16531, 3286, - 22521, 16531, 3422, - 22521, 16531, 3502, - 22521, 16531, 3686, - 22521, 16531, 6572, - 22521, 16531, 11082, - 22521, 16531, 11102, - 22521, 16531, 15238, - 22521, 16787, 2761, 18280, - 22521, 16787, 2761, 20828, - 22521, 16787, 3412, - 22521, 16787, 17474, - 22521, 17534, - 22521, 20055, 2761, 7428, - 22521, 23555, 1290, - 22521, 23555, 13016, - 22521, 23555, 13816, - 22521, 23555, 13832, - 22521, 23555, 14911, 15938, - 22521, 23555, 15938, - 22521, 23555, 16095, 13016, - 22521, 23555, 19739, 964, - 22521, 23555, 20276, - 22553, 10575, 680, - 22553, 16531, 230, - 22553, 16531, 276, - 22553, 16531, 554, - 22553, 16531, 2406, - 22553, 16531, 2676, - 22553, 16531, 3398, - 22553, 16531, 3750, - 22553, 16531, 5556, - 22553, 16531, 6066, - 22553, 16531, 7478, - 22553, 16531, 8002, - 22553, 16531, 9992, - 22553, 16531, 10120, - 22553, 16531, 10478, - 22553, 16531, 10914, - 22553, 16531, 11568, - 22553, 16531, 11582, - 22553, 16531, 11722, - 22553, 16531, 12168, - 22553, 16531, 12354, - 22553, 16531, 12512, - 22553, 16531, 13384, - 22553, 16531, 13606, - 22553, 16531, 13688, - 22553, 16531, 14588, - 22553, 16531, 14720, - 22553, 16531, 14954, - 22553, 16531, 15606, - 22553, 16531, 16010, - 22553, 16531, 16262, - 22553, 16531, 16396, - 22553, 16531, 16508, - 22553, 16531, 17060, - 22553, 16531, 17622, - 22553, 16531, 17986, - 22553, 16531, 19270, - 22553, 16787, 2760, - 22553, 16787, 2761, 18280, - 22553, 16787, 3412, - 22553, 16787, 7036, - 22553, 16787, 17474, - 22553, 23555, 1290, - 22553, 23555, 1291, 17579, 1290, - 22553, 23555, 3537, 6696, - 22553, 23555, 8321, 16172, - 22553, 23555, 10690, - 22553, 23555, 16095, 1291, 17579, 1290, - 22553, 23555, 18156, - 22553, 23737, 8809, 12318, - 22553, 23737, 8809, 12502, - 22555, 920, - 22555, 2232, - 22558, - 22560, - 22587, 17298, - 22610, - 22726, - 22731, 22251, 7022, - 22733, 6996, - 22754, - 22761, 5532, - 22765, 16095, 23554, - 22765, 17171, 23554, - 22767, 11537, 21850, - 22767, 16531, 276, - 22767, 16531, 554, - 22767, 16531, 880, - 22767, 16531, 884, - 22767, 16531, 996, - 22767, 16531, 1718, - 22767, 16531, 1988, - 22767, 16531, 2406, - 22767, 16531, 2676, - 22767, 16531, 2966, - 22767, 16531, 3394, - 22767, 16531, 3416, - 22767, 16531, 3748, - 22767, 16531, 3952, - 22767, 16531, 4022, - 22767, 16531, 6622, - 22767, 16531, 7206, - 22767, 16531, 8252, - 22767, 16531, 10188, - 22767, 16531, 10376, - 22767, 16531, 10424, - 22767, 16531, 10478, - 22767, 16787, 2760, - 22767, 16787, 2761, 18280, - 22767, 16787, 3412, - 22767, 16787, 3536, - 22767, 16787, 15116, - 22767, 16787, 17474, - 22773, 14898, - 22775, 10574, - 22783, 10574, - 22786, - 22790, - 22792, - 22805, 20157, 20406, - 22807, 13177, 660, - 22808, - 22815, 10574, - 22825, 8281, 18116, - 22825, 8281, 18118, - 22828, - 22835, 917, 21119, 12414, - 22837, 3473, 17119, 15453, 12414, - 22837, 3537, 16321, 12414, - 22837, 7432, - 22837, 11473, 12414, - 22837, 12414, - 22837, 12415, 661, 964, - 22837, 12415, 661, 12525, 17988, - 22837, 12415, 897, 15287, 897, 13839, 2761, 16107, 12532, - 22837, 12415, 7065, 964, - 22837, 12415, 7065, 965, 661, 12525, 17988, - 22837, 12415, 7065, 21349, 12414, - 22837, 12415, 9787, 21557, 12414, - 22837, 12415, 11513, 3445, 19380, - 22837, 12415, 11513, 3445, 21348, - 22837, 12415, 11513, 7658, - 22837, 12415, 11513, 8356, - 22837, 12415, 11513, 9905, 12502, - 22837, 12415, 11513, 10856, - 22837, 12415, 11513, 10857, 11513, 16095, 20933, 17264, - 22837, 12415, 11513, 10857, 11513, 20933, 17264, - 22837, 12415, 11513, 13779, 20859, 21022, - 22837, 12415, 11513, 13839, 7658, - 22837, 12415, 11513, 14911, 20859, 21022, - 22837, 12415, 11513, 14911, 23211, 21022, - 22837, 12415, 11513, 15975, 21348, - 22837, 12415, 11513, 16093, 10692, - 22837, 12415, 11513, 16095, 20933, 17264, - 22837, 12415, 11513, 16637, 20859, 21022, - 22837, 12415, 11513, 17264, - 22837, 12415, 11513, 18719, 10856, - 22837, 12415, 11513, 20933, 17264, - 22837, 12415, 11513, 23211, 21022, - 22837, 12415, 12319, 14837, 21557, 12414, - 22837, 12415, 12319, 15141, 20406, - 22837, 12415, 12319, 15703, 13177, 660, - 22837, 12415, 12319, 18999, 15141, 20406, - 22837, 12415, 12319, 18999, 15703, 13177, 660, - 22837, 12415, 19281, 46, - 22837, 12415, 19281, 20764, - 22837, 12415, 19281, 23852, - 22837, 12525, 12414, - 22837, 12525, 17881, 15453, 12414, - 22837, 13473, 12414, - 22837, 13473, 22233, 12414, - 22837, 15453, 12414, - 22837, 15453, 12415, 7065, 11468, - 22837, 15453, 12415, 17579, 20859, 21022, - 22837, 15827, 17119, 15453, 12414, - 22837, 16019, 12414, - 22837, 16095, 6545, 12414, - 22837, 16095, 12414, - 22837, 16095, 12415, 7065, 964, - 22837, 16095, 12415, 11513, 17264, - 22837, 16095, 12415, 11513, 20933, 17264, - 22837, 16095, 22180, - 22837, 16857, 15738, - 22837, 17042, - 22837, 17435, 6545, 12414, - 22837, 17435, 12414, - 22837, 18253, 9787, 21557, 18252, - 22837, 18253, 11513, 5989, 699, 661, 964, - 22837, 18253, 11513, 5989, 699, 7065, 964, - 22837, 18253, 11513, 5989, 699, 12319, 8351, 6544, - 22837, 18253, 11513, 5989, 699, 12319, 21557, 18253, 11513, 5989, 698, - 22837, 18253, 11513, 5989, 699, 12319, 22837, 18253, 11513, 5989, 6700, - 22837, 18253, 11513, 5989, 6701, 661, 964, - 22837, 18253, 11513, 5989, 6701, 7065, 964, - 22837, 18253, 11513, 5989, 6701, 12319, 21557, 18253, 11513, 5989, 6700, - 22837, 18253, 11513, 5989, 6701, 12503, 8351, 6544, - 22837, 18253, 11513, 5989, 19380, - 22837, 18253, 11513, 5989, 21348, - 22837, 18945, 7432, - 22837, 19165, 12414, - 22837, 20701, 12414, - 22837, 20859, 21022, - 22837, 21775, 12414, - 22837, 22180, - 22837, 22233, 12414, - 22837, 22841, 12414, - 22837, 23005, 12415, 7065, 964, - 22837, 23005, 12415, 11513, 10856, - 22837, 23005, 12415, 11513, 10857, 11513, 16095, 20933, 17264, - 22837, 23005, 12415, 11513, 10857, 11513, 20933, 17264, - 22837, 23005, 12415, 11513, 16095, 20933, 17264, - 22837, 23005, 12415, 11513, 20859, 22182, - 22837, 23005, 12415, 11513, 20933, 17264, - 22837, 23005, 17435, 6545, 12414, - 22837, 23061, 20641, 15453, 12414, - 22837, 23215, 12414, - 22837, 23305, 15453, 12414, - 22837, 23503, 12414, - 22837, 23845, 20641, 15453, 12414, - 22837, 24081, 15453, 12414, - 22837, 28089, 12414, - 22837, 28089, 12415, 661, 964, - 22837, 28089, 12415, 9787, 21557, 28089, 12414, - 22837, 28089, 12415, 11513, 6101, 14784, - 22837, 28089, 12415, 11513, 8351, 3445, 19380, - 22837, 28089, 12415, 11513, 8351, 3445, 21348, - 22837, 28089, 12415, 11513, 11371, 13473, 14784, - 22837, 28089, 12415, 11513, 13473, 14784, - 22837, 28089, 12415, 11513, 16095, 20933, 17264, - 22837, 28089, 12415, 11513, 16095, 22495, 17264, - 22837, 28089, 12415, 11513, 16637, 14784, - 22837, 28089, 12415, 11513, 16701, 14784, - 22837, 28089, 16019, 12414, - 22837, 28089, 16857, 15738, - 22841, 13473, 2301, 16095, 12923, 21779, 8809, 20412, - 22841, 13473, 16095, 12923, 21779, 8809, 20412, - 22841, 13473, 16095, 17465, 12923, 21779, 8809, 20412, - 22841, 23285, 20412, - 22845, 10575, 17534, - 22845, 10575, 19408, - 22845, 10575, 19540, - 22845, 10575, 23070, - 22845, 13016, - 22845, 13069, 2760, - 22845, 13069, 3240, - 22845, 13069, 3536, - 22845, 13069, 7036, - 22845, 13069, 7058, - 22845, 13069, 9358, - 22845, 13069, 11824, - 22845, 13069, 13150, - 22845, 13069, 14778, - 22845, 13069, 15116, - 22845, 15407, 10575, 8, - 22845, 15407, 10575, 16, - 22845, 15407, 10575, 28, - 22845, 15407, 10575, 40, - 22845, 15407, 10575, 58, - 22845, 15407, 10575, 72, - 22845, 15407, 10575, 96, - 22845, 15407, 10575, 186, - 22845, 15407, 10575, 314, - 22845, 15407, 10575, 522, - 22845, 15407, 10575, 706, - 22845, 15407, 10575, 19415, 22, - 22845, 15407, 10575, 19415, 34, - 22845, 15407, 10575, 19415, 406, - 22845, 15407, 10575, 19415, 608, - 22845, 16095, 13016, - 22845, 16531, 0, - 22845, 16531, 8, - 22845, 16531, 16, - 22845, 16531, 28, - 22845, 16531, 40, - 22845, 16531, 58, - 22845, 16531, 72, - 22845, 16531, 96, - 22845, 16531, 108, - 22845, 16531, 126, - 22845, 16531, 150, - 22845, 16531, 186, - 22845, 16531, 248, - 22845, 16531, 272, - 22845, 16531, 314, - 22845, 16531, 344, - 22845, 16531, 358, - 22845, 16531, 394, - 22845, 16531, 426, - 22845, 16531, 466, - 22845, 16531, 522, - 22845, 16531, 548, - 22845, 16531, 598, - 22845, 16531, 614, - 22845, 16531, 648, - 22845, 16531, 706, - 22845, 16531, 714, - 22845, 16531, 778, - 22845, 16531, 1000, - 22845, 16531, 1116, - 22845, 16531, 1214, - 22845, 16531, 1236, - 22845, 16531, 1588, - 22845, 16531, 1918, - 22845, 16531, 2036, - 22845, 16531, 2278, - 22845, 16531, 2574, - 22845, 16531, 2624, - 22845, 16531, 2698, - 22845, 16531, 2830, - 22845, 16531, 3212, - 22845, 16531, 3286, - 22845, 16531, 3422, - 22845, 16531, 3502, - 22845, 16531, 6572, - 22845, 16531, 11082, - 22845, 16531, 19415, 22, - 22845, 16531, 19415, 34, - 22845, 16531, 19415, 406, - 22845, 16531, 19415, 608, - 22845, 21143, 10575, 13442, - 22851, 18933, 11513, 15827, 15948, - 22893, 9783, 1036, - 22897, 507, 13604, - 22919, 14932, - 22926, - 22946, - 22959, 18962, - 22964, - 22976, - 22980, - 22983, 7039, 521, 9914, - 22983, 14692, - 22983, 15858, - 22992, - 23013, 21003, 18979, 8809, 126, - 23013, 21003, 18979, 8809, 9330, - 23016, - 23022, - 23025, 17298, - 23045, 2035, 17298, - 23055, 13830, - 23061, 20641, 15453, 22837, 12414, - 23063, 14931, 12415, 11513, 16351, 10856, - 23063, 14931, 12415, 11513, 22495, 10856, - 23068, - 23079, 20066, - 23085, 17298, - 23086, - 23088, - 23097, 14984, - 23101, 660, - 23102, - 23104, - 23193, 13177, 661, 529, 21558, - 23193, 13177, 661, 529, 23852, - 23193, 19121, 13177, 661, 529, 21558, - 23193, 19121, 13177, 661, 529, 23852, - 23193, 19121, 21559, 529, 13177, 660, - 23193, 19121, 23853, 529, 13177, 660, - 23195, 14921, 7461, 11513, 9783, 14030, - 23195, 14921, 7461, 11513, 15949, 14030, - 23209, 660, - 23213, 8808, - 23213, 20549, 8808, - 23218, - 23220, - 23227, 14932, - 23255, 10488, - 23257, 14558, - 23259, 7073, 10696, - 23259, 7429, 7023, 14932, - 23259, 12922, - 23259, 13803, 11033, 8808, - 23259, 14932, - 23259, 15049, 8809, 2760, - 23259, 15049, 8809, 3536, - 23259, 15049, 8809, 7036, - 23259, 15049, 8809, 7058, - 23259, 15049, 8809, 15116, - 23259, 16787, 11824, - 23259, 17037, 11033, 8808, - 23259, 17889, 8808, - 23259, 19985, 11033, 8808, - 23259, 21183, 11033, 8808, - 23259, 21517, 8808, - 23259, 22029, 8321, 7007, 21851, 17298, - 23259, 22029, 17299, 1493, 1213, 2760, - 23259, 22029, 17299, 1493, 1213, 3240, - 23259, 22029, 17299, 1493, 1213, 3412, - 23259, 22029, 17299, 1493, 1213, 3536, - 23259, 22029, 17299, 1493, 1213, 7036, - 23259, 22029, 17299, 1493, 1213, 7058, - 23259, 22029, 17299, 1493, 1213, 9358, - 23259, 22029, 17299, 1493, 1213, 13150, - 23259, 22029, 17299, 1493, 1213, 14778, - 23259, 22029, 17299, 1493, 1213, 15116, - 23259, 22029, 17299, 1493, 1213, 16110, - 23259, 22029, 17299, 1493, 1213, 17372, - 23259, 22029, 17299, 1493, 1213, 17472, - 23259, 22029, 17299, 1493, 1213, 17474, - 23259, 22029, 17299, 1493, 1213, 18148, - 23259, 22029, 17299, 1493, 1213, 19116, - 23259, 22029, 17299, 1493, 1213, 19966, - 23259, 22029, 17299, 1493, 1213, 20052, - 23259, 22029, 17299, 1493, 1213, 20368, - 23259, 22029, 17299, 1493, 1213, 20824, - 23259, 22029, 17299, 1493, 1213, 21854, - 23259, 22029, 17299, 1493, 1213, 22972, - 23259, 22029, 17299, 1493, 1213, 22996, - 23259, 22029, 17299, 1493, 1213, 22998, - 23259, 22029, 17299, 1493, 1213, 23000, - 23259, 22029, 17299, 1493, 1213, 23710, - 23259, 22029, 17299, 1493, 1213, 23712, - 23259, 22029, 17299, 1493, 1213, 23714, - 23259, 22029, 17299, 1493, 1213, 24174, - 23259, 22029, 17299, 1493, 1213, 24176, - 23259, 22029, 17299, 1493, 1213, 24178, - 23259, 22029, 17299, 1493, 2384, - 23259, 22029, 17299, 1493, 7677, 2760, - 23259, 22029, 17299, 1493, 7677, 3240, - 23259, 22029, 17299, 1493, 7677, 3412, - 23259, 22029, 17299, 1493, 7677, 3536, - 23259, 22029, 17299, 1493, 7677, 7036, - 23259, 22029, 17299, 1493, 7677, 7058, - 23259, 22029, 17299, 1493, 7677, 9358, - 23259, 22029, 17299, 1493, 7677, 11824, - 23259, 22029, 17299, 1493, 7677, 13150, - 23259, 22029, 17299, 1493, 7677, 14778, - 23259, 22029, 17299, 1493, 7677, 15116, - 23259, 22029, 17299, 1493, 7677, 16110, - 23259, 22029, 17299, 1493, 7677, 17472, - 23259, 22029, 17299, 1493, 7677, 17474, - 23259, 22029, 17299, 1493, 7677, 18148, - 23259, 22029, 17299, 1493, 7677, 19116, - 23259, 22029, 17299, 1493, 7677, 19966, - 23259, 22029, 17299, 1493, 7677, 20052, - 23259, 22029, 17299, 1493, 7677, 20368, - 23259, 22029, 17299, 1493, 7677, 20824, - 23259, 22029, 17299, 1493, 7677, 21854, - 23259, 22029, 17299, 1493, 7677, 22996, - 23259, 22029, 17299, 1493, 7677, 23000, - 23259, 22029, 17299, 1493, 7677, 23712, - 23259, 22029, 17299, 1493, 7677, 24178, - 23259, 22029, 17299, 1493, 7912, - 23259, 22029, 17299, 1493, 7914, - 23259, 22029, 17299, 1493, 12400, - 23259, 22029, 17299, 1493, 13922, - 23259, 22029, 17299, 1493, 15758, - 23259, 22029, 17299, 1493, 18320, - 23259, 22029, 17299, 1493, 18746, - 23259, 22029, 17299, 1493, 19772, - 23259, 22029, 17299, 1493, 20008, - 23259, 22029, 17299, 1493, 20382, - 23259, 22029, 17299, 1493, 21852, - 23259, 22097, 21498, - 23259, 22161, 2369, 8808, - 23259, 22161, 2761, 8808, - 23259, 22161, 3473, 8808, - 23259, 22161, 3537, 8808, - 23259, 22161, 7059, 8808, - 23259, 22161, 13141, 8808, - 23259, 22161, 13261, 8808, - 23259, 22161, 15109, 8808, - 23259, 22161, 15117, 8808, - 23259, 22161, 15827, 8808, - 23259, 22161, 16219, 8808, - 23259, 22161, 16325, 8808, - 23259, 22161, 16661, 8808, - 23259, 22161, 17095, 8808, - 23259, 22161, 18523, 8808, - 23259, 22161, 18999, 8808, - 23259, 23123, 21101, 7073, 20766, - 23259, 23123, 21101, 8281, 661, 14658, - 23259, 23123, 21101, 8281, 661, 16661, 897, 14658, - 23259, 23123, 21101, 12319, 661, 12502, - 23259, 23123, 21101, 12319, 661, 16661, 897, 12502, - 23259, 23123, 21101, 20420, - 23259, 23123, 21101, 20596, - 23259, 23123, 21101, 20767, 7065, 8280, - 23259, 23123, 21101, 20767, 7065, 12318, - 23259, 23123, 21101, 20767, 7065, 12502, - 23259, 23123, 21101, 20767, 7065, 13839, 8280, - 23259, 23123, 21101, 20767, 7065, 13839, 14658, - 23259, 23123, 21101, 20767, 7065, 14658, - 23259, 23123, 21101, 20767, 7065, 15287, 8280, - 23259, 23123, 21101, 20767, 7065, 15287, 14658, - 23259, 23123, 21101, 22495, 22812, - 23259, 23123, 21101, 23676, - 23275, 6631, 16890, - 23275, 17192, - 23278, - 23281, 22161, 15708, - 23281, 22161, 21850, - 23281, 22161, 22968, - 23283, 16159, 897, 8801, 10574, - 23284, - 23301, 7030, - 23301, 7031, 11513, 9783, 14030, - 23301, 7032, - 23301, 14921, 7461, 11513, 9783, 14030, - 23301, 14921, 7461, 11513, 15949, 14030, - 23301, 17289, 10574, - 23301, 17289, 10575, 11513, 6696, - 23301, 19563, 19993, 10574, - 23301, 19602, - 23303, 22511, 21732, - 23305, 15453, 22837, 12414, - 23315, 12708, - 23317, 7073, 10696, - 23317, 12922, - 23317, 13069, 2760, - 23317, 13069, 2761, 21003, 7056, - 23317, 13069, 3240, - 23317, 13069, 3536, - 23317, 13069, 3537, 21003, 7056, - 23317, 13069, 7036, - 23317, 13069, 7058, - 23317, 13069, 9358, - 23317, 13069, 11824, - 23317, 13069, 13150, - 23317, 13069, 14778, - 23317, 13069, 15116, - 23317, 13069, 15117, 21003, 7056, - 23317, 14911, 16531, 0, - 23317, 14911, 16531, 2, - 23317, 14911, 16531, 4, - 23317, 14911, 16531, 6, - 23317, 14911, 16531, 8, - 23317, 14911, 16531, 10, - 23317, 14911, 16531, 12, - 23317, 14911, 16531, 14, - 23317, 14911, 16531, 16, - 23317, 14911, 16531, 18, - 23317, 14911, 16531, 20, - 23317, 14911, 16531, 22, - 23317, 14911, 16531, 24, - 23317, 14911, 16531, 26, - 23317, 14911, 16531, 28, - 23317, 14911, 16531, 30, - 23317, 14911, 16531, 32, - 23317, 14911, 16531, 34, - 23317, 14911, 16531, 36, - 23317, 14911, 16531, 38, - 23317, 14911, 16531, 40, - 23317, 14911, 16531, 42, - 23317, 14911, 16531, 44, - 23317, 14911, 16531, 46, - 23317, 14911, 16531, 48, - 23317, 14911, 16531, 50, - 23317, 14911, 16531, 72, - 23317, 14911, 16531, 290, - 23317, 14911, 16531, 376, - 23317, 14911, 16531, 474, - 23317, 14911, 16531, 496, - 23317, 14911, 16531, 504, - 23317, 14911, 16531, 790, - 23317, 14911, 16531, 5542, - 23317, 16787, 3412, - 23317, 16787, 16110, - 23317, 16787, 17472, - 23317, 16787, 18148, - 23317, 16787, 19116, - 23317, 16787, 19966, - 23317, 16787, 20052, - 23317, 16787, 20368, - 23317, 16787, 20824, - 23317, 16787, 21854, - 23317, 17299, 5474, - 23317, 17835, 16531, 0, - 23317, 17835, 16531, 2, - 23317, 17835, 16531, 4, - 23317, 17835, 16531, 6, - 23317, 17835, 16531, 8, - 23317, 17835, 16531, 10, - 23317, 17835, 16531, 12, - 23317, 17835, 16531, 14, - 23317, 17835, 16531, 16, - 23317, 17835, 16531, 18, - 23317, 17835, 16531, 20, - 23317, 17835, 16531, 22, - 23317, 17835, 16531, 24, - 23317, 17835, 16531, 26, - 23317, 17835, 16531, 28, - 23317, 17835, 16531, 30, - 23317, 17835, 16531, 32, - 23317, 17835, 16531, 34, - 23317, 17835, 16531, 36, - 23317, 17835, 16531, 38, - 23317, 17835, 16531, 40, - 23317, 17835, 16531, 42, - 23317, 17835, 16531, 44, - 23317, 17835, 16531, 46, - 23317, 17835, 16531, 48, - 23317, 17835, 16531, 50, - 23317, 17835, 16531, 72, - 23317, 17835, 16531, 290, - 23317, 17835, 16531, 376, - 23317, 17835, 16531, 474, - 23317, 17835, 16531, 496, - 23317, 17835, 16531, 504, - 23317, 17835, 16531, 790, - 23317, 17835, 16531, 5542, - 23317, 23213, 510, - 23343, 6996, - 23355, 10575, 17534, - 23355, 10575, 19100, - 23355, 10575, 19408, - 23355, 10575, 19540, - 23355, 10575, 19586, - 23355, 15407, 10575, 8, - 23355, 15407, 10575, 16, - 23355, 15407, 10575, 28, - 23355, 15407, 10575, 40, - 23355, 15407, 10575, 58, - 23355, 15407, 10575, 72, - 23355, 15407, 10575, 96, - 23355, 15407, 10575, 314, - 23355, 15407, 10575, 706, - 23355, 15407, 10575, 19415, 34, - 23355, 15407, 10575, 19415, 608, - 23355, 15407, 10575, 25905, 8, - 23355, 16531, 0, - 23355, 16531, 8, - 23355, 16531, 16, - 23355, 16531, 28, - 23355, 16531, 40, - 23355, 16531, 58, - 23355, 16531, 72, - 23355, 16531, 96, - 23355, 16531, 108, - 23355, 16531, 126, - 23355, 16531, 150, - 23355, 16531, 248, - 23355, 16531, 272, - 23355, 16531, 314, - 23355, 16531, 344, - 23355, 16531, 358, - 23355, 16531, 394, - 23355, 16531, 426, - 23355, 16531, 466, - 23355, 16531, 548, - 23355, 16531, 598, - 23355, 16531, 614, - 23355, 16531, 648, - 23355, 16531, 706, - 23355, 16531, 714, - 23355, 16531, 778, - 23355, 16531, 1000, - 23355, 16531, 1116, - 23355, 16531, 1214, - 23355, 16531, 1236, - 23355, 16531, 1588, - 23355, 16531, 1918, - 23355, 16531, 2036, - 23355, 16531, 2278, - 23355, 16531, 2574, - 23355, 16531, 2624, - 23355, 16531, 2698, - 23355, 16531, 2830, - 23355, 16531, 3118, - 23355, 16531, 3212, - 23355, 16531, 3286, - 23355, 16531, 3422, - 23355, 16531, 3502, - 23355, 16531, 6572, - 23355, 16531, 11082, - 23355, 16531, 19415, 34, - 23355, 16531, 19415, 608, - 23355, 22478, - 23369, 15437, 17298, - 23372, - 23507, 12525, 19166, - 23507, 15453, 897, 12525, 19166, - 23507, 15453, 19166, - 23512, - 23515, 8808, - 23525, 10574, - 23533, 6996, - 23534, - 23555, 14932, - 23569, 10574, - 23577, 21100, - 23592, - 23598, - 23601, 16680, - 23604, - 23649, 883, 6091, 14911, 21820, - 23649, 883, 10723, 14911, 21820, - 23649, 883, 17797, 2784, - 23649, 883, 19217, 322, - 23649, 1433, 11510, - 23649, 1433, 12531, 17170, - 23649, 1433, 12531, 20340, - 23649, 2267, 13839, 9787, 15286, - 23649, 2267, 15287, 9787, 13838, - 23649, 3133, 17170, - 23649, 3133, 17768, - 23649, 3133, 20340, - 23649, 6828, - 23649, 6883, 7429, 9782, - 23649, 6883, 7429, 15948, - 23649, 6883, 9782, - 23649, 6883, 11503, 9782, - 23649, 6883, 15948, - 23649, 6883, 20698, - 23649, 6883, 20955, 20334, - 23649, 6997, 21205, 20511, 9441, 699, 529, 6700, - 23649, 6997, 21205, 20511, 9441, 699, 529, 6701, 19290, - 23649, 6997, 21205, 20511, 9441, 18173, 19290, - 23649, 7023, 22566, - 23649, 7023, 22568, - 23649, 7023, 22570, - 23649, 7023, 22572, - 23649, 7023, 22574, - 23649, 7073, 10696, - 23649, 7424, - 23649, 7460, - 23649, 7461, 3080, - 23649, 7461, 20335, 15938, - 23649, 7461, 36291, 10992, - 23649, 7461, 36291, 12944, - 23649, 7461, 36291, 20728, - 23649, 7461, 36325, 12944, - 23649, 7461, 36325, 20728, - 23649, 8317, 20224, - 23649, 8317, 20226, - 23649, 8317, 20228, - 23649, 8317, 20230, - 23649, 8317, 20232, - 23649, 8317, 20234, - 23649, 8317, 20236, - 23649, 8317, 23082, - 23649, 8329, 18921, 20842, - 23649, 9248, - 23649, 9441, 17906, - 23649, 9441, 18680, - 23649, 9441, 19436, - 23649, 9441, 20960, - 23649, 12567, 17170, - 23649, 12567, 17768, - 23649, 12567, 20340, - 23649, 12916, - 23649, 12922, - 23649, 13269, 13779, 17170, - 23649, 13269, 13779, 20340, - 23649, 13269, 14911, 17170, - 23649, 13269, 14911, 20340, - 23649, 13269, 22854, - 23649, 13413, 17170, - 23649, 13413, 17768, - 23649, 13413, 20340, - 23649, 14031, 8114, - 23649, 14031, 8115, 18172, - 23649, 14031, 8115, 20958, - 23649, 14031, 9783, 9784, - 23649, 14031, 9783, 9785, 11664, - 23649, 14031, 9783, 9785, 20958, - 23649, 14031, 9783, 15938, - 23649, 14031, 9783, 18172, - 23649, 14031, 9783, 20958, - 23649, 14031, 9783, 21790, - 23649, 14031, 9783, 21791, 11664, - 23649, 14031, 9783, 21791, 20958, - 23649, 14031, 13298, - 23649, 14031, 13299, 9782, - 23649, 14031, 13299, 20958, - 23649, 14031, 14916, - 23649, 14031, 14917, 9782, - 23649, 14031, 14917, 20958, - 23649, 14031, 15080, - 23649, 14031, 15081, 17274, - 23649, 14031, 15081, 18172, - 23649, 14031, 15949, 17906, - 23649, 14031, 15949, 18172, - 23649, 14031, 15949, 18680, - 23649, 14031, 17916, - 23649, 14031, 20961, 16094, - 23649, 14031, 20961, 17170, - 23649, 15070, - 23649, 15071, 521, 8328, - 23649, 15071, 521, 8329, 20334, - 23649, 15071, 521, 17430, - 23649, 15071, 521, 17431, 20334, - 23649, 15071, 6087, 8328, - 23649, 15071, 20334, - 23649, 15081, 15915, 2300, - 23649, 15081, 15915, 7520, - 23649, 15081, 15915, 16660, - 23649, 15189, 17170, - 23649, 15189, 17768, - 23649, 15189, 20340, - 23649, 15287, 6099, 19291, 7065, 1739, 16404, - 23649, 15839, 16128, - 23649, 15839, 16372, - 23649, 15915, 16980, - 23649, 15915, 17274, - 23649, 15915, 18680, - 23649, 16099, 20005, 699, 18680, - 23649, 16099, 20005, 6701, 18680, - 23649, 16099, 20005, 18681, 698, - 23649, 16099, 20005, 18681, 6700, - 23649, 16174, - 23649, 17261, 17170, - 23649, 17261, 17768, - 23649, 17261, 20340, - 23649, 17431, 3445, 17769, 8328, - 23649, 17431, 3445, 20849, 16383, 14030, - 23649, 17431, 14035, 17655, 12660, - 23649, 17431, 15901, 16383, 14030, - 23649, 17431, 15901, 20721, 2784, - 23649, 17431, 16383, 14031, 18990, - 23649, 17431, 18519, 8328, - 23649, 17431, 20721, 2785, 1452, - 23649, 18083, 7002, - 23649, 18083, 10604, - 23649, 18083, 13203, 14449, 10994, - 23649, 18083, 15080, - 23649, 18083, 18224, - 23649, 18083, 18990, - 23649, 18083, 21023, 13778, - 23649, 18083, 21023, 14910, - 23649, 18083, 24122, - 23649, 18083, 24123, 23040, - 23649, 19169, 13269, 23040, - 23649, 19169, 13779, 17170, - 23649, 19169, 13779, 20340, - 23649, 19169, 14911, 17170, - 23649, 19169, 14911, 20340, - 23649, 19169, 22854, - 23649, 19223, 17768, - 23649, 19223, 19228, - 23649, 20005, 20729, 698, - 23649, 20005, 20729, 6700, - 23649, 20005, 20729, 18680, - 23649, 20047, 17906, - 23649, 20047, 18680, - 23649, 20047, 20958, - 23649, 20094, - 23649, 20095, 487, 15118, - 23649, 20095, 7037, 18151, 17216, - 23649, 20095, 7037, 18151, 17217, 9782, - 23649, 20095, 9782, - 23649, 20095, 9783, 487, 15118, - 23649, 20095, 9783, 15119, 10564, - 23649, 20095, 9783, 15119, 18172, - 23649, 20095, 13594, - 23649, 20095, 13595, 10151, 16562, - 23649, 20095, 13595, 15118, - 23649, 20095, 13595, 15119, 9782, - 23649, 20095, 15119, 10564, - 23649, 20095, 15119, 18172, - 23649, 20095, 16661, 10151, 16562, - 23649, 20245, 7461, 9248, - 23649, 20245, 13054, - 23649, 20245, 13809, 16048, - 23649, 20245, 15184, - 23649, 20245, 15458, - 23649, 20245, 16328, - 23649, 20597, 22566, - 23649, 20597, 22568, - 23649, 20597, 22570, - 23649, 20597, 22572, - 23649, 20597, 22574, - 23649, 20597, 22576, - 23649, 20597, 22578, - 23649, 20597, 22580, - 23649, 20597, 23328, - 23649, 20597, 23330, - 23649, 20597, 23332, - 23649, 20597, 23334, - 23649, 20597, 23336, - 23649, 20597, 23338, - 23649, 20597, 23340, - 23649, 20653, 1739, 14942, - 23649, 20653, 1739, 21754, - 23649, 20653, 19291, 7065, 15428, - 23649, 21391, 698, - 23649, 21391, 6700, - 23649, 21391, 22452, - 23649, 21456, - 23649, 21457, 487, 15118, - 23649, 21457, 7059, 18151, 21136, - 23649, 21457, 13595, 15119, 12945, 15119, 16382, - 23649, 21457, 15119, 10564, - 23649, 21457, 15119, 18172, - 23649, 21457, 16661, 10151, 16563, 21136, - 23649, 21457, 16661, 10151, 16563, 21137, 10564, - 23649, 21458, - 23649, 21459, 7059, 18151, 21137, 6062, - 23649, 21459, 7464, - 23649, 21459, 10151, 698, - 23649, 21459, 10151, 6700, - 23649, 21459, 10151, 13594, - 23649, 21459, 10151, 15118, - 23649, 21459, 10151, 16562, - 23649, 21459, 10151, 16660, - 23649, 21459, 10151, 16661, 17007, 20202, - 23649, 21459, 10151, 16661, 21136, - 23649, 21459, 10151, 17007, 18372, - 23649, 21459, 13594, - 23649, 21459, 13595, 699, 16661, 16344, - 23649, 21459, 13595, 699, 16661, 16345, 15119, 10564, - 23649, 21459, 13595, 699, 16661, 16345, 15119, 21136, - 23649, 21459, 13595, 6062, - 23649, 21459, 13595, 6063, 9787, 16660, - 23649, 21459, 13595, 10151, 16562, - 23649, 21459, 13595, 15119, 7658, - 23649, 21459, 13595, 15119, 10564, - 23649, 21459, 13595, 15119, 10565, 6113, 6062, - 23649, 21459, 13595, 15119, 10565, 13595, 6062, - 23649, 21459, 13595, 15119, 10565, 13595, 13488, - 23649, 21459, 13595, 15119, 10565, 15119, 6062, - 23649, 21459, 13595, 15119, 10565, 15119, 19790, - 23649, 21459, 13595, 15119, 10565, 15119, 21136, - 23649, 21459, 13595, 15119, 12945, 15119, 15280, - 23649, 21459, 13595, 15119, 12945, 15119, 16382, - 23649, 21459, 13595, 15119, 15713, 323, 16661, 698, - 23649, 21459, 13595, 15119, 15713, 2785, 16661, 698, - 23649, 21459, 13595, 15119, 15938, - 23649, 21459, 13595, 15119, 15997, 16661, 698, - 23649, 21459, 13595, 15119, 16351, 16661, 698, - 23649, 21459, 13595, 15119, 16351, 16661, 16344, - 23649, 21459, 13595, 15119, 17881, 16661, 698, - 23649, 21459, 13595, 15119, 18173, 13595, 6062, - 23649, 21459, 13595, 15119, 18173, 13595, 20728, - 23649, 21459, 13595, 15119, 19750, - 23649, 21459, 13595, 15996, - 23649, 21459, 13595, 16344, - 23649, 21459, 13595, 16345, 2300, - 23649, 21459, 13595, 16345, 16661, 698, - 23649, 21459, 13595, 16345, 16661, 699, 15119, 10564, - 23649, 21459, 13595, 16660, - 23649, 21459, 13595, 16661, 699, 17217, 15119, 18172, - 23649, 21459, 13595, 16661, 6062, - 23649, 21459, 13595, 16661, 6063, 15119, 20728, - 23649, 21459, 13595, 16661, 10150, - 23649, 21459, 13595, 16661, 10151, 6062, - 23649, 21459, 13595, 16661, 10151, 21136, - 23649, 21459, 13595, 16661, 12935, 16562, - 23649, 21459, 13595, 16661, 15118, - 23649, 21459, 13595, 16661, 15119, 6062, - 23649, 21459, 13595, 16661, 15119, 15712, - 23649, 21459, 13595, 16661, 15119, 15713, 2784, - 23649, 21459, 13595, 16661, 15119, 15996, - 23649, 21459, 13595, 16661, 15119, 16344, - 23649, 21459, 13595, 16661, 15119, 16350, - 23649, 21459, 13595, 16661, 15119, 17880, - 23649, 21459, 13595, 16661, 15119, 21137, 16344, - 23649, 21459, 13595, 16661, 16344, - 23649, 21459, 13595, 16661, 16345, 17217, 15119, 10564, - 23649, 21459, 13595, 16661, 16562, - 23649, 21459, 13595, 16661, 17007, 20202, - 23649, 21459, 13595, 16661, 17930, - 23649, 21459, 13595, 16661, 17931, 15119, 10564, - 23649, 21459, 13595, 16661, 20729, 15119, 6062, - 23649, 21459, 13595, 16661, 21136, - 23649, 21459, 13595, 16661, 21137, 13595, 6062, - 23649, 21459, 13595, 16661, 21137, 15119, 10564, - 23649, 21459, 13595, 16661, 21137, 15119, 10565, 6062, - 23649, 21459, 13595, 16661, 21137, 15119, 10565, 21136, - 23649, 21459, 13595, 16661, 21137, 15119, 18172, - 23649, 21459, 13595, 16661, 21137, 15996, - 23649, 21459, 13595, 16661, 21137, 15997, 15119, 18172, - 23649, 21459, 13595, 16661, 21137, 16344, - 23649, 21459, 13595, 16661, 21137, 16345, 15119, 10564, - 23649, 21459, 13595, 16661, 21137, 16661, 6062, - 23649, 21459, 13595, 17007, 18372, - 23649, 21459, 15118, - 23649, 21459, 15119, 7464, - 23649, 21459, 15119, 9787, 3537, 18150, - 23649, 21459, 15119, 9787, 7059, 17007, 20202, - 23649, 21459, 15119, 10565, 6062, - 23649, 21459, 15119, 10565, 19790, - 23649, 21459, 15119, 10565, 21136, - 23649, 21459, 15119, 15281, 3537, 18150, - 23649, 21459, 15119, 15281, 7059, 18150, - 23649, 21459, 15119, 15281, 13595, 6062, - 23649, 21459, 15119, 15281, 15117, 18150, - 23649, 21459, 15119, 15281, 16563, 698, - 23649, 21459, 15119, 17769, 10151, 16562, - 23649, 21459, 15119, 17769, 13595, 16660, - 23649, 21459, 15119, 17769, 13595, 16661, 20728, - 23649, 21459, 15119, 17769, 16661, 10150, - 23649, 21459, 15119, 18172, - 23649, 21459, 16563, 698, - 23649, 21459, 16563, 6062, - 23649, 21459, 16563, 6700, - 23649, 21459, 16563, 6701, 16831, 17880, - 23649, 21459, 16563, 6701, 17035, 16000, - 23649, 21459, 16563, 6701, 17035, 20728, - 23649, 21459, 16563, 13594, - 23649, 21459, 16563, 13595, 15118, - 23649, 21459, 16563, 15118, - 23649, 21459, 16563, 17007, 18372, - 23649, 21459, 16563, 19303, 15118, - 23649, 21459, 16661, 698, - 23649, 21459, 16661, 699, 15119, 10564, - 23649, 21459, 16661, 6063, 9787, 13594, - 23649, 21459, 16661, 6700, - 23649, 21459, 16661, 10151, 16562, - 23649, 21459, 16661, 15119, 15713, 2785, 13595, 698, - 23649, 21459, 16661, 15119, 15713, 2785, 13595, 17930, - 23649, 21459, 16661, 15119, 15713, 13595, 698, - 23649, 21459, 16661, 15119, 15997, 13595, 698, - 23649, 21459, 16661, 15119, 16351, 13595, 698, - 23649, 21459, 16661, 15119, 16562, - 23649, 21459, 16661, 15119, 17881, 13595, 698, - 23649, 21459, 16661, 15119, 17881, 13595, 16344, - 23649, 21459, 16661, 16562, - 23649, 21459, 16661, 17007, 18372, - 23649, 21460, - 23649, 21461, 7037, 18151, 17216, - 23649, 21461, 7037, 18151, 17217, 6062, - 23649, 21461, 7037, 18151, 17217, 7059, 6062, - 23649, 21461, 7037, 18151, 17217, 15119, 18172, - 23649, 21461, 7037, 18151, 17217, 16344, - 23649, 21461, 7037, 18151, 17217, 16345, 487, 15118, - 23649, 21461, 7037, 18151, 17217, 16345, 15119, 10564, - 23649, 21461, 7059, 18150, - 23649, 21461, 7059, 18151, 6062, - 23649, 21461, 7059, 18151, 16344, - 23649, 21461, 7059, 18151, 21136, - 23649, 21461, 7059, 18151, 21137, 14944, - 23649, 21461, 7464, - 23649, 21461, 7465, 7037, 18151, 17216, - 23649, 21461, 7465, 7037, 18151, 17217, 6062, - 23649, 21461, 7465, 7037, 18151, 17217, 7059, 6062, - 23649, 21461, 7465, 15119, 10564, - 23649, 21461, 14945, 13595, 15119, 10564, - 23649, 21461, 14945, 15900, - 23649, 21461, 14945, 15901, 15119, 10564, - 23649, 21461, 14945, 15901, 15119, 10565, 6062, - 23649, 21461, 14945, 16562, - 23649, 21461, 15119, 6062, - 23649, 21461, 15119, 10564, - 23649, 21461, 15119, 18172, - 23649, 21461, 17769, 9823, 18128, - 23649, 21462, - 23649, 21463, 10151, 15118, - 23649, 21463, 13595, 10151, 16563, 322, - 23649, 21463, 13595, 10151, 16563, 2784, - 23649, 21463, 13595, 10151, 16563, 15280, - 23649, 21463, 16661, 10151, 16563, 21136, - 23649, 21463, 16661, 10151, 16563, 21137, 322, - 23649, 21463, 16661, 10151, 16563, 21137, 2784, - 23649, 21463, 16661, 15118, - 23649, 21463, 19750, - 23649, 21464, - 23649, 21465, 487, 15118, - 23649, 21465, 7037, 18151, 17216, - 23649, 21465, 10151, 16562, - 23649, 21465, 13594, - 23649, 21465, 15119, 10564, - 23649, 21465, 15119, 18172, - 23649, 21465, 16563, 698, - 23649, 21844, - 23649, 22121, 20653, 1739, 8982, - 23649, 22436, - 23649, 22451, 20653, 1739, 8982, - 23649, 22474, - 23649, 22475, 10151, 6701, 16661, 15119, 13595, 12934, - 23649, 22475, 10151, 16562, - 23649, 22475, 13594, - 23649, 22475, 13595, 10151, 16562, - 23649, 22475, 13595, 10151, 16563, 2784, - 23649, 22475, 13595, 15118, - 23649, 22475, 13595, 15119, 322, - 23649, 22475, 13595, 15119, 2784, - 23649, 22475, 13595, 16661, 10150, - 23649, 22475, 13595, 16661, 16562, - 23649, 22475, 16563, 698, - 23649, 22475, 16563, 13594, - 23649, 22475, 16563, 13595, 15119, 13595, 15118, - 23649, 22475, 16563, 13595, 15119, 13595, 15119, 2784, - 23649, 22475, 16661, 10151, 16562, - 23649, 22475, 16661, 10151, 16563, 322, - 23649, 22475, 16661, 10151, 16563, 2784, - 23649, 22476, - 23649, 22477, 487, 15118, - 23649, 22477, 7037, 18151, 17217, 9782, - 23649, 22477, 7059, 18151, 21136, - 23649, 22477, 9782, - 23649, 22477, 9783, 487, 15118, - 23649, 22477, 9783, 15119, 10564, - 23649, 22477, 9783, 15119, 18172, - 23649, 22477, 10150, - 23649, 22477, 10151, 6701, 13595, 15119, 7659, 16660, - 23649, 22477, 13594, - 23649, 22477, 13595, 10151, 16562, - 23649, 22477, 13595, 15118, - 23649, 22477, 13595, 15119, 9782, - 23649, 22477, 13595, 15119, 10564, - 23649, 22477, 13595, 15119, 13778, - 23649, 22477, 13595, 15119, 14910, - 23649, 22477, 13595, 16344, - 23649, 22477, 13595, 16661, 10150, - 23649, 22477, 13595, 16661, 10151, 21136, - 23649, 22477, 13595, 16661, 16562, - 23649, 22477, 14910, - 23649, 22477, 15119, 10564, - 23649, 22477, 15119, 10565, 20849, 13594, - 23649, 22477, 15119, 17769, 16661, 10150, - 23649, 22477, 16562, - 23649, 22477, 16563, 13594, - 23649, 22477, 16563, 13595, 15118, - 23649, 22477, 16563, 15118, - 23649, 22477, 16660, - 23649, 22477, 16661, 10151, 16562, - 23649, 23240, - 23649, 23241, 10151, 16562, - 23649, 23241, 13594, - 23649, 23241, 13595, 6062, - 23649, 23241, 13595, 10151, 16562, - 23649, 23241, 13595, 13488, - 23649, 23241, 13595, 16660, - 23649, 23241, 13595, 16661, 10150, - 23649, 23241, 13595, 16661, 12935, 16562, - 23649, 23241, 13595, 16661, 15118, - 23649, 23241, 13595, 16661, 16562, - 23649, 23241, 13595, 16661, 17930, - 23649, 23241, 16563, 698, - 23649, 23241, 16563, 13594, - 23649, 23241, 16661, 698, - 23649, 23241, 16661, 10151, 16562, - 23649, 23241, 16661, 10151, 16563, 6062, - 23649, 23522, - 23649, 25778, - 23649, 25779, 9782, - 23649, 25779, 13595, 10151, 16563, 520, - 23649, 25779, 16661, 10151, 16563, 520, - 23649, 26131, 699, 6701, 13778, - 23649, 26131, 699, 6701, 14910, - 23649, 26131, 699, 6701, 23041, 13778, - 23649, 26131, 699, 6701, 23041, 14910, - 23649, 26131, 699, 22854, - 23649, 26131, 6701, 22854, - 23649, 26131, 10565, 661, 10565, 20622, - 23649, 28087, 16001, 6060, - 23649, 28087, 20729, 19202, - 23649, 36227, 20902, - 23649, 36229, 921, 17207, 16094, - 23649, 36229, 921, 17207, 17170, - 23649, 36229, 921, 17207, 17434, - 23649, 36229, 19078, - 23649, 36229, 36307, 16094, - 23649, 36229, 36307, 17170, - 23649, 36229, 36307, 23040, - 23649, 36229, 36337, 16094, - 23649, 36229, 36337, 17170, - 23649, 36229, 36337, 23040, - 23649, 36241, 16000, - 23649, 36241, 19694, - 23649, 36241, 20728, - 23649, 36241, 20729, 16094, - 23649, 36241, 20729, 23040, - 23649, 36249, 5551, 13778, - 23649, 36249, 5551, 14910, - 23649, 36249, 5551, 16636, - 23649, 36249, 5551, 18494, - 23649, 36249, 17769, 5551, 13778, - 23649, 36249, 17769, 5551, 14910, - 23649, 36249, 17769, 5551, 16636, - 23649, 36249, 17769, 5551, 18494, - 23649, 36249, 17769, 19305, 13778, - 23649, 36249, 17769, 19305, 14910, - 23649, 36249, 17769, 19305, 16636, - 23649, 36249, 17769, 19305, 18494, - 23649, 36249, 19305, 13778, - 23649, 36249, 19305, 14910, - 23649, 36249, 19305, 16636, - 23649, 36249, 19305, 18494, - 23649, 36275, 19078, - 23649, 36275, 36307, 16094, - 23649, 36275, 36307, 17170, - 23649, 36275, 36307, 23040, - 23649, 36275, 36337, 16094, - 23649, 36275, 36337, 17170, - 23649, 36275, 36337, 23040, - 23649, 36281, 16000, - 23649, 36281, 20728, - 23649, 36281, 20729, 16094, - 23649, 36281, 20729, 23040, - 23649, 36287, 14932, - 23649, 36291, 921, 15939, 14911, 16094, - 23649, 36291, 921, 15939, 14911, 17170, - 23649, 36291, 921, 15939, 16637, 16094, - 23649, 36291, 921, 15939, 16637, 17170, - 23649, 36291, 1037, 13778, - 23649, 36291, 1037, 14910, - 23649, 36291, 1037, 16636, - 23649, 36291, 1908, - 23649, 36291, 6061, 13778, - 23649, 36291, 6061, 14910, - 23649, 36291, 6061, 16636, - 23649, 36291, 7695, 13778, - 23649, 36291, 7695, 14910, - 23649, 36291, 7695, 16636, - 23649, 36291, 7695, 18269, 12668, - 23649, 36291, 7695, 18269, 13297, 11468, - 23649, 36291, 8357, 13778, - 23649, 36291, 8357, 14910, - 23649, 36291, 8357, 14911, 16094, - 23649, 36291, 8357, 16636, - 23649, 36291, 8357, 18269, 12668, - 23649, 36291, 8357, 18269, 13297, 11468, - 23649, 36291, 11473, 12945, 16095, 13778, - 23649, 36291, 11473, 12945, 16095, 14910, - 23649, 36291, 11473, 12945, 16095, 16636, - 23649, 36291, 11473, 12945, 17435, 13778, - 23649, 36291, 11473, 12945, 17435, 14910, - 23649, 36291, 11473, 12945, 17435, 16636, - 23649, 36291, 11473, 18269, 12668, - 23649, 36291, 11473, 18269, 13297, 11468, - 23649, 36291, 11473, 19791, 9833, 13778, - 23649, 36291, 11473, 19791, 9833, 14910, - 23649, 36291, 11473, 19791, 9833, 16636, - 23649, 36291, 12659, 13778, - 23649, 36291, 12659, 14910, - 23649, 36291, 12659, 16636, - 23649, 36291, 12934, - 23649, 36291, 12945, 10943, 20728, - 23649, 36291, 12945, 18269, 12668, - 23649, 36291, 12945, 18269, 13297, 11468, - 23649, 36291, 12945, 18951, 13778, - 23649, 36291, 12945, 18951, 14910, - 23649, 36291, 12945, 18951, 16636, - 23649, 36291, 12945, 18951, 18494, - 23649, 36291, 12945, 23239, 13778, - 23649, 36291, 12945, 23239, 14910, - 23649, 36291, 12945, 23239, 16636, - 23649, 36291, 12945, 23239, 18494, - 23649, 36291, 12945, 25955, 15939, 14910, - 23649, 36291, 12945, 25955, 15939, 16636, - 23649, 36291, 14507, 13778, - 23649, 36291, 14507, 14910, - 23649, 36291, 14507, 16636, - 23649, 36291, 15475, 15939, 13297, 16094, - 23649, 36291, 15475, 15939, 13297, 17170, - 23649, 36291, 15975, 13778, - 23649, 36291, 15975, 14910, - 23649, 36291, 15975, 16636, - 23649, 36291, 15975, 20596, - 23649, 36291, 16001, 12935, 14910, - 23649, 36291, 16001, 12935, 16636, - 23649, 36291, 16095, 15475, 7042, - 23649, 36291, 16095, 20728, - 23649, 36291, 16095, 23040, - 23649, 36291, 16095, 23041, 15475, 7042, - 23649, 36291, 16175, 17883, 16094, - 23649, 36291, 16175, 17883, 17170, - 23649, 36291, 16175, 17906, - 23649, 36291, 17171, 15475, 7042, - 23649, 36291, 17171, 20729, 13778, - 23649, 36291, 17171, 20729, 14910, - 23649, 36291, 17171, 20729, 16636, - 23649, 36291, 17171, 20729, 18494, - 23649, 36291, 17435, 15475, 7042, - 23649, 36291, 17435, 20729, 20334, - 23649, 36291, 17435, 23040, - 23649, 36291, 17435, 23041, 15475, 7042, - 23649, 36291, 17625, 13778, - 23649, 36291, 17625, 14910, - 23649, 36291, 17625, 16636, - 23649, 36291, 19078, - 23649, 36307, 16094, - 23649, 36307, 16095, 18269, 12668, - 23649, 36307, 16095, 18269, 13297, 11468, - 23649, 36307, 17170, - 23649, 36307, 17171, 18269, 12668, - 23649, 36307, 17171, 18269, 13297, 11468, - 23649, 36307, 21002, - 23649, 36307, 23041, 18269, 12668, - 23649, 36307, 23041, 18269, 13297, 11468, - 23649, 36323, 14932, - 23649, 36325, 921, 15939, 18269, 11469, 13779, 16094, - 23649, 36325, 921, 15939, 18269, 11469, 13779, 17170, - 23649, 36325, 921, 15939, 18269, 11469, 14911, 16094, - 23649, 36325, 921, 15939, 18269, 11469, 14911, 17170, - 23649, 36325, 921, 15939, 18269, 11469, 16637, 16094, - 23649, 36325, 921, 15939, 18269, 11469, 16637, 17170, - 23649, 36325, 1037, 13778, - 23649, 36325, 1037, 14910, - 23649, 36325, 1037, 16636, - 23649, 36325, 1908, - 23649, 36325, 6060, - 23649, 36325, 7695, 14910, - 23649, 36325, 7695, 18269, 13271, 13779, 16094, - 23649, 36325, 7695, 18269, 13271, 14911, 16094, - 23649, 36325, 7695, 18269, 13271, 17435, 13779, 17434, - 23649, 36325, 7695, 18269, 13271, 17435, 14911, 17434, - 23649, 36325, 7695, 18269, 17849, 13779, 16094, - 23649, 36325, 7695, 18269, 17849, 13779, 17434, - 23649, 36325, 7695, 18269, 17849, 14911, 16094, - 23649, 36325, 7695, 18269, 17849, 14911, 17434, - 23649, 36325, 8357, 14910, - 23649, 36325, 8357, 18269, 13271, 13779, 16094, - 23649, 36325, 8357, 18269, 13271, 13779, 17170, - 23649, 36325, 8357, 18269, 13271, 14911, 16094, - 23649, 36325, 8357, 18269, 13271, 14911, 17170, - 23649, 36325, 8357, 18269, 17849, 13779, 16094, - 23649, 36325, 8357, 18269, 17849, 13779, 17170, - 23649, 36325, 8357, 18269, 17849, 14911, 16094, - 23649, 36325, 8357, 18269, 17849, 14911, 17170, - 23649, 36325, 11473, 13778, - 23649, 36325, 11473, 14910, - 23649, 36325, 11473, 14920, - 23649, 36325, 11473, 18269, 13271, 13778, - 23649, 36325, 11473, 18269, 13271, 14910, - 23649, 36325, 11473, 18269, 17849, 13778, - 23649, 36325, 11473, 18269, 17849, 14910, - 23649, 36325, 12658, - 23649, 36325, 12934, - 23649, 36325, 12945, 13778, - 23649, 36325, 12945, 14910, - 23649, 36325, 12945, 16636, - 23649, 36325, 12945, 18269, 13271, 13778, - 23649, 36325, 12945, 18269, 13271, 14910, - 23649, 36325, 12945, 18269, 17849, 13778, - 23649, 36325, 12945, 18269, 17849, 14910, - 23649, 36325, 12945, 18494, - 23649, 36325, 12945, 19714, - 23649, 36325, 14507, 13778, - 23649, 36325, 14507, 14910, - 23649, 36325, 14507, 16636, - 23649, 36325, 15475, 15939, 18269, 11469, 16094, - 23649, 36325, 15475, 15939, 18269, 11469, 17170, - 23649, 36325, 15975, 13778, - 23649, 36325, 15975, 14910, - 23649, 36325, 15975, 16636, - 23649, 36325, 16095, 15475, 7042, - 23649, 36325, 16095, 20728, - 23649, 36325, 16095, 23040, - 23649, 36325, 16095, 23041, 15475, 7042, - 23649, 36325, 16175, 17883, 18269, 11469, 16094, - 23649, 36325, 16175, 17883, 18269, 11469, 17170, - 23649, 36325, 16175, 17906, - 23649, 36325, 17171, 15475, 7042, - 23649, 36325, 17171, 20729, 13778, - 23649, 36325, 17171, 20729, 14910, - 23649, 36325, 17171, 20729, 16636, - 23649, 36325, 17171, 20729, 18494, - 23649, 36325, 17435, 15475, 7042, - 23649, 36325, 17435, 20729, 20334, - 23649, 36325, 17435, 23041, 15475, 7042, - 23649, 36325, 17435, 23041, 20334, - 23649, 36325, 17625, 13778, - 23649, 36325, 17625, 14910, - 23649, 36325, 17625, 16636, - 23649, 36325, 19079, 20454, - 23649, 36337, 16094, - 23649, 36337, 16095, 18269, 13270, - 23649, 36337, 16095, 18269, 17848, - 23649, 36337, 17170, - 23649, 36337, 17171, 18269, 13270, - 23649, 36337, 17171, 18269, 17848, - 23649, 36337, 23040, - 23649, 36337, 23041, 18269, 13270, - 23649, 36337, 23041, 18269, 17848, - 23662, - 23668, - 23679, 2760, - 23679, 3240, - 23679, 3536, - 23679, 7036, - 23679, 7058, - 23679, 8281, 23522, - 23679, 9358, - 23679, 9905, 10574, - 23679, 11824, - 23679, 13150, - 23679, 13783, 14911, 16531, 16, - 23679, 13783, 14911, 16531, 26, - 23679, 14004, - 23679, 14659, 23522, - 23679, 14778, - 23679, 15116, - 23679, 16121, 10574, - 23690, - 23705, 23882, - 23719, 10574, - 23721, 3059, 20858, - 23721, 7062, - 23721, 14656, - 23721, 14911, 3059, 20858, - 23721, 14911, 19518, - 23721, 15757, 6104, - 23721, 16117, 11472, - 23721, 17005, 1088, - 23721, 17043, 10480, - 23721, 18216, - 23721, 19518, - 23721, 20309, 19518, - 23721, 20859, 11513, 8281, 7429, 12524, - 23721, 20859, 11513, 14659, 7429, 12524, - 23725, 6996, - 23728, - 23731, 19979, 20066, - 23733, 14255, 6833, 5989, 12414, - 23733, 14255, 6833, 11371, 13473, 5989, 12414, - 23733, 14255, 6833, 13473, 5989, 12414, - 23733, 14255, 6833, 13807, 5989, 12414, - 23733, 14255, 6833, 16637, 5989, 12414, - 23733, 14255, 11489, 5989, 12414, - 23733, 14255, 11489, 11371, 13473, 5989, 12414, - 23733, 14255, 11489, 13473, 5989, 12414, - 23733, 14255, 11489, 13807, 5989, 12414, - 23733, 14255, 11489, 16637, 5989, 12414, - 23733, 14931, 6833, 5989, 12414, - 23733, 14931, 6833, 11371, 13473, 5989, 12414, - 23733, 14931, 6833, 13473, 5989, 12414, - 23733, 14931, 6833, 13807, 5989, 12414, - 23733, 14931, 6833, 16637, 5989, 12414, - 23733, 14931, 11489, 5989, 12414, - 23733, 14931, 11489, 11371, 13473, 5989, 12414, - 23733, 14931, 11489, 13473, 5989, 12414, - 23733, 14931, 11489, 13807, 5989, 12414, - 23733, 14931, 11489, 16637, 5989, 12414, - 23733, 19381, 5989, 12414, - 23733, 19381, 11371, 13473, 5989, 12414, - 23733, 19381, 13473, 5989, 12414, - 23733, 19381, 13807, 5989, 12414, - 23733, 19381, 16637, 5989, 12414, - 23733, 21349, 5989, 12414, - 23733, 21349, 11371, 13473, 5989, 12414, - 23733, 21349, 13473, 5989, 12414, - 23733, 21349, 13807, 5989, 12414, - 23733, 21349, 16637, 5989, 12414, - 23733, 21557, 5989, 12414, - 23733, 21557, 11371, 13473, 5989, 12414, - 23733, 21557, 13473, 5989, 12414, - 23733, 21557, 13807, 5989, 12414, - 23733, 21557, 16637, 5989, 12414, - 23733, 22837, 5989, 12414, - 23733, 22837, 11371, 13473, 5989, 12414, - 23733, 22837, 13473, 5989, 12414, - 23733, 22837, 13807, 5989, 12414, - 23733, 22837, 16637, 5989, 12414, - 23742, - 23745, 529, 21148, - 23751, 2825, 3413, 20829, 10574, - 23751, 2825, 14001, 10574, - 23751, 6371, 10184, - 23751, 13069, 2760, - 23751, 13069, 3240, - 23751, 13069, 3536, - 23751, 13069, 7036, - 23751, 13069, 7058, - 23751, 13069, 9358, - 23751, 13069, 11824, - 23751, 13069, 13150, - 23751, 13069, 14778, - 23751, 13069, 15116, - 23751, 16219, 10184, - 23757, 17299, 1493, 17508, - 23771, 17835, 4, - 23771, 17835, 14, - 23771, 17835, 16, - 23771, 17835, 34, - 23771, 17835, 50, - 23781, 46, - 23787, 10574, - 23787, 17586, - 23792, - 23795, 10575, 12720, - 23795, 10575, 12722, - 23795, 10575, 12724, - 23795, 10575, 12726, - 23795, 10575, 12728, - 23795, 10575, 12730, - 23795, 10575, 12732, - 23795, 10575, 12734, - 23795, 10575, 12736, - 23795, 10575, 12738, - 23795, 10575, 12740, - 23795, 10575, 12742, - 23795, 10575, 12744, - 23795, 10575, 12746, - 23795, 10575, 12748, - 23795, 10575, 12750, - 23795, 10575, 12752, - 23795, 10575, 12754, - 23795, 10575, 12756, - 23795, 10575, 12758, - 23795, 10575, 12760, - 23795, 10575, 12762, - 23795, 10575, 12764, - 23795, 10575, 12766, - 23795, 10575, 12768, - 23795, 10575, 12770, - 23795, 10575, 12772, - 23795, 10575, 12774, - 23795, 10575, 12776, - 23795, 10575, 12778, - 23795, 10575, 12780, - 23795, 10575, 12782, - 23795, 10575, 12784, - 23795, 10575, 12786, - 23795, 10575, 12788, - 23795, 10575, 12790, - 23795, 10575, 12792, - 23795, 10575, 12794, - 23795, 10575, 12796, - 23795, 10575, 12798, - 23795, 10575, 12800, - 23795, 10575, 12802, - 23795, 10575, 12804, - 23795, 10575, 12806, - 23795, 10575, 12808, - 23795, 10575, 12810, - 23795, 10575, 12812, - 23795, 10575, 12814, - 23795, 10575, 12816, - 23795, 10575, 12818, - 23795, 10575, 12820, - 23795, 10575, 12822, - 23795, 10575, 12824, - 23795, 10575, 12826, - 23795, 10575, 12828, - 23795, 10575, 12830, - 23795, 10575, 12832, - 23795, 10575, 12834, - 23795, 10575, 12836, - 23795, 10575, 12838, - 23795, 10575, 12840, - 23795, 10575, 12842, - 23795, 10575, 12844, - 23795, 10575, 12846, - 23795, 10575, 12848, - 23795, 10575, 12850, - 23795, 10575, 12852, - 23795, 10575, 12854, - 23795, 10575, 12856, - 23795, 10575, 12858, - 23795, 10575, 12860, - 23795, 10575, 12862, - 23795, 10575, 12864, - 23795, 10575, 12866, - 23795, 10575, 12868, - 23795, 10575, 12870, - 23795, 10575, 12872, - 23795, 10575, 12874, - 23795, 10575, 12876, - 23795, 10575, 12878, - 23795, 10575, 12880, - 23795, 10575, 12882, - 23795, 10575, 12884, - 23795, 10575, 12886, - 23795, 10575, 12888, - 23795, 10575, 12890, - 23795, 10575, 12892, - 23795, 10575, 12894, - 23795, 10575, 12896, - 23795, 10575, 12898, - 23795, 10575, 12900, - 23795, 10575, 12902, - 23795, 10575, 12904, - 23795, 10575, 12906, - 23795, 10575, 12908, - 23795, 10575, 12910, - 23795, 10575, 12912, - 23795, 10575, 15954, - 23795, 10575, 15956, - 23811, 1057, 20569, 6996, - 23811, 6996, - 23829, 20338, - 23837, 12525, 15938, - 23837, 12525, 17224, - 23837, 12525, 17988, - 23837, 15453, 15938, - 23837, 15453, 17224, - 23837, 15453, 17988, - 23840, - 23843, 5965, 12672, - 23845, 20641, 15453, 22837, 12414, - 23853, 529, 13177, 660, - 23853, 529, 19121, 13177, 660, - 23853, 529, 19121, 13177, 661, 11513, 1291, 12318, - 23853, 529, 19121, 13177, 661, 11513, 1291, 12319, 8280, - 23853, 529, 19121, 13177, 661, 11513, 1291, 16382, - 23853, 529, 21558, - 23853, 529, 22435, 660, - 23853, 529, 23050, - 23853, 897, 2643, 23050, - 23853, 897, 23651, 2643, 13177, 660, - 23853, 1057, 2643, 13177, 660, - 23853, 1057, 2643, 22435, 660, - 23853, 9787, 13177, 660, - 23853, 10574, - 23853, 11513, 1290, - 23853, 11513, 15939, 16382, - 23853, 11513, 20549, 8809, 12318, - 23853, 12319, 19107, 529, 13176, - 23853, 12319, 19107, 12319, 21558, - 23853, 12319, 19121, 13177, 12319, 21559, 12319, 19121, 13176, - 23853, 12319, 21559, 12319, 23193, 13176, - 23853, 12319, 22837, 12414, - 23853, 12319, 23193, 13177, 12319, 21558, - 23853, 13177, 661, 529, 21558, - 23853, 15805, 21558, - 23853, 15949, 125, 12944, - 23853, 15949, 125, 12945, 12319, 19121, 13176, - 23853, 23507, 21558, - 23859, 16680, - 23864, - 23868, - 23870, - 23882, - 23883, 11513, 1290, - 23883, 11513, 18529, 896, - 23883, 11513, 18778, - 23883, 12319, 965, 12319, 15282, - 23883, 12319, 15282, - 23883, 15805, 897, 16401, 11513, 23882, - 23909, 6101, 563, 17298, - 23909, 6101, 2835, 17298, - 23909, 6101, 3077, 17298, - 23909, 6101, 13069, 2760, - 23909, 6101, 13069, 3240, - 23909, 6101, 13069, 3536, - 23909, 6101, 13069, 7036, - 23909, 6101, 13069, 7058, - 23909, 6101, 13069, 9358, - 23909, 6101, 13069, 11824, - 23909, 6101, 13069, 13150, - 23909, 6101, 13069, 14778, - 23909, 6101, 13069, 15116, - 23909, 6101, 13653, 17298, - 23909, 6101, 14070, - 23909, 6101, 14911, 0, - 23909, 6101, 14911, 2, - 23909, 6101, 14911, 4, - 23909, 6101, 14911, 6, - 23909, 6101, 14911, 8, - 23909, 6101, 14911, 10, - 23909, 6101, 14911, 12, - 23909, 6101, 14911, 14, - 23909, 6101, 14911, 16, - 23909, 6101, 14911, 18, - 23909, 6101, 14911, 20, - 23909, 6101, 14911, 22, - 23909, 6101, 14911, 24, - 23909, 6101, 14911, 26, - 23909, 6101, 14911, 28, - 23909, 6101, 14911, 30, - 23909, 6101, 14911, 32, - 23909, 6101, 14911, 34, - 23909, 6101, 14911, 36, - 23909, 6101, 14911, 38, - 23909, 6101, 14911, 40, - 23909, 6101, 14911, 42, - 23909, 6101, 14911, 44, - 23909, 6101, 14911, 46, - 23909, 6101, 14911, 48, - 23909, 6101, 14911, 50, - 23909, 6101, 14911, 454, - 23909, 6101, 14911, 490, - 23909, 6101, 14911, 562, - 23909, 6101, 14911, 768, - 23909, 6101, 14911, 1120, - 23909, 6101, 14911, 1420, - 23909, 6101, 14911, 2834, - 23909, 6101, 14911, 2882, - 23909, 6101, 14911, 3076, - 23909, 6101, 14911, 3394, - 23909, 6101, 14911, 6064, - 23909, 6101, 14911, 7818, - 23909, 6101, 14911, 11826, - 23909, 6101, 14911, 12366, - 23909, 6101, 14911, 13050, - 23909, 6101, 14911, 13259, 14868, - 23909, 6101, 14911, 13332, - 23909, 6101, 14911, 13652, - 23909, 6101, 14911, 13770, - 23909, 6101, 14911, 14428, - 23909, 6101, 14911, 14868, - 23909, 6101, 14911, 15096, - 23909, 6101, 14911, 17992, - 23909, 6101, 14911, 18120, - 23909, 6101, 14911, 18754, - 23909, 6101, 14911, 19378, - 23909, 6101, 15097, 17298, - 23909, 6101, 16393, 563, 17298, - 23909, 6101, 16393, 2835, 17298, - 23909, 6101, 16393, 3077, 17298, - 23909, 6101, 16393, 13653, 17298, - 23909, 6101, 16393, 14070, - 23909, 6101, 16393, 14911, 0, - 23909, 6101, 16393, 14911, 2, - 23909, 6101, 16393, 14911, 4, - 23909, 6101, 16393, 14911, 6, - 23909, 6101, 16393, 14911, 8, - 23909, 6101, 16393, 14911, 10, - 23909, 6101, 16393, 14911, 12, - 23909, 6101, 16393, 14911, 14, - 23909, 6101, 16393, 14911, 16, - 23909, 6101, 16393, 14911, 18, - 23909, 6101, 16393, 14911, 20, - 23909, 6101, 16393, 14911, 22, - 23909, 6101, 16393, 14911, 24, - 23909, 6101, 16393, 14911, 26, - 23909, 6101, 16393, 14911, 28, - 23909, 6101, 16393, 14911, 30, - 23909, 6101, 16393, 14911, 32, - 23909, 6101, 16393, 14911, 34, - 23909, 6101, 16393, 14911, 36, - 23909, 6101, 16393, 14911, 38, - 23909, 6101, 16393, 14911, 40, - 23909, 6101, 16393, 14911, 42, - 23909, 6101, 16393, 14911, 44, - 23909, 6101, 16393, 14911, 46, - 23909, 6101, 16393, 14911, 48, - 23909, 6101, 16393, 14911, 50, - 23909, 6101, 16393, 14911, 454, - 23909, 6101, 16393, 14911, 490, - 23909, 6101, 16393, 14911, 562, - 23909, 6101, 16393, 14911, 768, - 23909, 6101, 16393, 14911, 1120, - 23909, 6101, 16393, 14911, 1420, - 23909, 6101, 16393, 14911, 2834, - 23909, 6101, 16393, 14911, 2882, - 23909, 6101, 16393, 14911, 3076, - 23909, 6101, 16393, 14911, 3394, - 23909, 6101, 16393, 14911, 6064, - 23909, 6101, 16393, 14911, 7818, - 23909, 6101, 16393, 14911, 11826, - 23909, 6101, 16393, 14911, 12366, - 23909, 6101, 16393, 14911, 13050, - 23909, 6101, 16393, 14911, 13259, 14868, - 23909, 6101, 16393, 14911, 13332, - 23909, 6101, 16393, 14911, 13652, - 23909, 6101, 16393, 14911, 13770, - 23909, 6101, 16393, 14911, 14428, - 23909, 6101, 16393, 14911, 14868, - 23909, 6101, 16393, 14911, 15096, - 23909, 6101, 16393, 14911, 18120, - 23909, 6101, 16393, 14911, 18754, - 23909, 6101, 16393, 14911, 19378, - 23909, 6101, 16393, 15097, 17298, - 23909, 6101, 16393, 17835, 0, - 23909, 6101, 16393, 17835, 2, - 23909, 6101, 16393, 17835, 4, - 23909, 6101, 16393, 17835, 6, - 23909, 6101, 16393, 17835, 8, - 23909, 6101, 16393, 17835, 10, - 23909, 6101, 16393, 17835, 12, - 23909, 6101, 16393, 17835, 14, - 23909, 6101, 16393, 17835, 16, - 23909, 6101, 16393, 17835, 18, - 23909, 6101, 16393, 17835, 20, - 23909, 6101, 16393, 17835, 22, - 23909, 6101, 16393, 17835, 24, - 23909, 6101, 16393, 17835, 26, - 23909, 6101, 16393, 17835, 28, - 23909, 6101, 16393, 17835, 30, - 23909, 6101, 16393, 17835, 32, - 23909, 6101, 16393, 17835, 34, - 23909, 6101, 16393, 17835, 36, - 23909, 6101, 16393, 17835, 38, - 23909, 6101, 16393, 17835, 40, - 23909, 6101, 16393, 17835, 42, - 23909, 6101, 16393, 17835, 44, - 23909, 6101, 16393, 17835, 46, - 23909, 6101, 16393, 17835, 48, - 23909, 6101, 16393, 17835, 50, - 23909, 6101, 16393, 17835, 454, - 23909, 6101, 16393, 17835, 490, - 23909, 6101, 16393, 17835, 562, - 23909, 6101, 16393, 17835, 768, - 23909, 6101, 16393, 17835, 1120, - 23909, 6101, 16393, 17835, 1420, - 23909, 6101, 16393, 17835, 2834, - 23909, 6101, 16393, 17835, 2882, - 23909, 6101, 16393, 17835, 3076, - 23909, 6101, 16393, 17835, 3394, - 23909, 6101, 16393, 17835, 6064, - 23909, 6101, 16393, 17835, 7818, - 23909, 6101, 16393, 17835, 11826, - 23909, 6101, 16393, 17835, 12366, - 23909, 6101, 16393, 17835, 13050, - 23909, 6101, 16393, 17835, 13332, - 23909, 6101, 16393, 17835, 13652, - 23909, 6101, 16393, 17835, 13770, - 23909, 6101, 16393, 17835, 14428, - 23909, 6101, 16393, 17835, 14868, - 23909, 6101, 16393, 17835, 15096, - 23909, 6101, 16393, 17835, 15097, 17298, - 23909, 6101, 16393, 17835, 18120, - 23909, 6101, 16393, 17835, 18754, - 23909, 6101, 16393, 17835, 19378, - 23909, 6101, 16393, 18121, 17298, - 23909, 6101, 16393, 18819, 23798, - 23909, 6101, 17089, 14911, 0, - 23909, 6101, 17089, 14911, 2, - 23909, 6101, 17089, 14911, 4, - 23909, 6101, 17089, 14911, 6, - 23909, 6101, 17089, 14911, 8, - 23909, 6101, 17089, 14911, 10, - 23909, 6101, 17089, 14911, 12, - 23909, 6101, 17089, 14911, 14, - 23909, 6101, 17089, 14911, 16, - 23909, 6101, 17089, 14911, 18, - 23909, 6101, 17089, 14911, 20, - 23909, 6101, 17089, 14911, 22, - 23909, 6101, 17089, 14911, 24, - 23909, 6101, 17089, 14911, 26, - 23909, 6101, 17089, 14911, 28, - 23909, 6101, 17089, 14911, 30, - 23909, 6101, 17089, 14911, 32, - 23909, 6101, 17089, 14911, 34, - 23909, 6101, 17089, 14911, 36, - 23909, 6101, 17089, 14911, 38, - 23909, 6101, 17089, 14911, 40, - 23909, 6101, 17089, 14911, 42, - 23909, 6101, 17089, 14911, 44, - 23909, 6101, 17089, 14911, 46, - 23909, 6101, 17089, 14911, 48, - 23909, 6101, 17089, 14911, 50, - 23909, 6101, 17089, 17835, 0, - 23909, 6101, 17089, 17835, 2, - 23909, 6101, 17089, 17835, 4, - 23909, 6101, 17089, 17835, 6, - 23909, 6101, 17089, 17835, 8, - 23909, 6101, 17089, 17835, 10, - 23909, 6101, 17089, 17835, 12, - 23909, 6101, 17089, 17835, 14, - 23909, 6101, 17089, 17835, 16, - 23909, 6101, 17089, 17835, 18, - 23909, 6101, 17089, 17835, 20, - 23909, 6101, 17089, 17835, 22, - 23909, 6101, 17089, 17835, 24, - 23909, 6101, 17089, 17835, 26, - 23909, 6101, 17089, 17835, 28, - 23909, 6101, 17089, 17835, 30, - 23909, 6101, 17089, 17835, 32, - 23909, 6101, 17089, 17835, 34, - 23909, 6101, 17089, 17835, 36, - 23909, 6101, 17089, 17835, 38, - 23909, 6101, 17089, 17835, 40, - 23909, 6101, 17089, 17835, 42, - 23909, 6101, 17089, 17835, 44, - 23909, 6101, 17089, 17835, 46, - 23909, 6101, 17089, 17835, 48, - 23909, 6101, 17089, 17835, 50, - 23909, 6101, 17835, 0, - 23909, 6101, 17835, 2, - 23909, 6101, 17835, 4, - 23909, 6101, 17835, 6, - 23909, 6101, 17835, 8, - 23909, 6101, 17835, 10, - 23909, 6101, 17835, 12, - 23909, 6101, 17835, 14, - 23909, 6101, 17835, 16, - 23909, 6101, 17835, 18, - 23909, 6101, 17835, 20, - 23909, 6101, 17835, 22, - 23909, 6101, 17835, 24, - 23909, 6101, 17835, 26, - 23909, 6101, 17835, 28, - 23909, 6101, 17835, 30, - 23909, 6101, 17835, 32, - 23909, 6101, 17835, 34, - 23909, 6101, 17835, 36, - 23909, 6101, 17835, 38, - 23909, 6101, 17835, 40, - 23909, 6101, 17835, 42, - 23909, 6101, 17835, 44, - 23909, 6101, 17835, 46, - 23909, 6101, 17835, 48, - 23909, 6101, 17835, 50, - 23909, 6101, 17835, 454, - 23909, 6101, 17835, 490, - 23909, 6101, 17835, 562, - 23909, 6101, 17835, 768, - 23909, 6101, 17835, 1120, - 23909, 6101, 17835, 1420, - 23909, 6101, 17835, 2834, - 23909, 6101, 17835, 2882, - 23909, 6101, 17835, 3076, - 23909, 6101, 17835, 3394, - 23909, 6101, 17835, 6064, - 23909, 6101, 17835, 7818, - 23909, 6101, 17835, 11826, - 23909, 6101, 17835, 12366, - 23909, 6101, 17835, 13050, - 23909, 6101, 17835, 13332, - 23909, 6101, 17835, 13652, - 23909, 6101, 17835, 13770, - 23909, 6101, 17835, 14428, - 23909, 6101, 17835, 14868, - 23909, 6101, 17835, 15096, - 23909, 6101, 17835, 15097, 17298, - 23909, 6101, 17835, 17992, - 23909, 6101, 17835, 18120, - 23909, 6101, 17835, 18754, - 23909, 6101, 17835, 19378, - 23909, 6101, 18121, 17298, - 23909, 6101, 18175, 14911, 0, - 23909, 6101, 18175, 14911, 2, - 23909, 6101, 18175, 14911, 4, - 23909, 6101, 18175, 14911, 6, - 23909, 6101, 18175, 14911, 8, - 23909, 6101, 18175, 14911, 10, - 23909, 6101, 18175, 14911, 12, - 23909, 6101, 18175, 14911, 14, - 23909, 6101, 18175, 14911, 16, - 23909, 6101, 18175, 14911, 18, - 23909, 6101, 18175, 14911, 20, - 23909, 6101, 18175, 14911, 22, - 23909, 6101, 18175, 14911, 24, - 23909, 6101, 18175, 14911, 26, - 23909, 6101, 18175, 14911, 28, - 23909, 6101, 18175, 14911, 30, - 23909, 6101, 18175, 14911, 32, - 23909, 6101, 18175, 14911, 34, - 23909, 6101, 18175, 14911, 36, - 23909, 6101, 18175, 14911, 38, - 23909, 6101, 18175, 14911, 40, - 23909, 6101, 18175, 14911, 42, - 23909, 6101, 18175, 14911, 44, - 23909, 6101, 18175, 14911, 46, - 23909, 6101, 18175, 14911, 48, - 23909, 6101, 18175, 14911, 50, - 23909, 6101, 18175, 17835, 0, - 23909, 6101, 18175, 17835, 2, - 23909, 6101, 18175, 17835, 4, - 23909, 6101, 18175, 17835, 6, - 23909, 6101, 18175, 17835, 8, - 23909, 6101, 18175, 17835, 10, - 23909, 6101, 18175, 17835, 12, - 23909, 6101, 18175, 17835, 14, - 23909, 6101, 18175, 17835, 16, - 23909, 6101, 18175, 17835, 18, - 23909, 6101, 18175, 17835, 20, - 23909, 6101, 18175, 17835, 22, - 23909, 6101, 18175, 17835, 24, - 23909, 6101, 18175, 17835, 26, - 23909, 6101, 18175, 17835, 28, - 23909, 6101, 18175, 17835, 30, - 23909, 6101, 18175, 17835, 32, - 23909, 6101, 18175, 17835, 34, - 23909, 6101, 18175, 17835, 36, - 23909, 6101, 18175, 17835, 38, - 23909, 6101, 18175, 17835, 40, - 23909, 6101, 18175, 17835, 42, - 23909, 6101, 18175, 17835, 44, - 23909, 6101, 18175, 17835, 46, - 23909, 6101, 18175, 17835, 48, - 23909, 6101, 18175, 17835, 50, - 23909, 6101, 18819, 23798, - 23909, 8281, 12379, 17810, - 23909, 8281, 15453, 17225, 17810, - 23909, 8281, 15453, 20847, 14811, 17810, - 23909, 8281, 16095, 12379, 17810, - 23909, 8281, 21409, 23522, - 23909, 14659, 12379, 17810, - 23909, 14659, 15453, 17225, 17810, - 23909, 14659, 15453, 20847, 14811, 17810, - 23909, 14659, 16095, 12379, 17810, - 23909, 14659, 21409, 23522, - 23909, 16393, 563, 17298, - 23909, 16393, 2835, 17298, - 23909, 16393, 3077, 17298, - 23909, 16393, 13653, 17298, - 23909, 16393, 14070, - 23909, 16393, 14911, 0, - 23909, 16393, 14911, 2, - 23909, 16393, 14911, 4, - 23909, 16393, 14911, 6, - 23909, 16393, 14911, 8, - 23909, 16393, 14911, 10, - 23909, 16393, 14911, 12, - 23909, 16393, 14911, 16, - 23909, 16393, 14911, 18, - 23909, 16393, 14911, 20, - 23909, 16393, 14911, 22, - 23909, 16393, 14911, 24, - 23909, 16393, 14911, 26, - 23909, 16393, 14911, 28, - 23909, 16393, 14911, 30, - 23909, 16393, 14911, 32, - 23909, 16393, 14911, 34, - 23909, 16393, 14911, 36, - 23909, 16393, 14911, 38, - 23909, 16393, 14911, 40, - 23909, 16393, 14911, 42, - 23909, 16393, 14911, 44, - 23909, 16393, 14911, 46, - 23909, 16393, 14911, 48, - 23909, 16393, 14911, 50, - 23909, 16393, 14911, 454, - 23909, 16393, 14911, 490, - 23909, 16393, 14911, 562, - 23909, 16393, 14911, 768, - 23909, 16393, 14911, 1120, - 23909, 16393, 14911, 1420, - 23909, 16393, 14911, 2834, - 23909, 16393, 14911, 2882, - 23909, 16393, 14911, 3076, - 23909, 16393, 14911, 3394, - 23909, 16393, 14911, 6064, - 23909, 16393, 14911, 7818, - 23909, 16393, 14911, 11826, - 23909, 16393, 14911, 12366, - 23909, 16393, 14911, 13050, - 23909, 16393, 14911, 13259, 14868, - 23909, 16393, 14911, 13332, - 23909, 16393, 14911, 13652, - 23909, 16393, 14911, 13770, - 23909, 16393, 14911, 14428, - 23909, 16393, 14911, 14868, - 23909, 16393, 14911, 15096, - 23909, 16393, 14911, 18019, 16, - 23909, 16393, 14911, 18019, 18, - 23909, 16393, 14911, 18120, - 23909, 16393, 14911, 18754, - 23909, 16393, 14911, 19378, - 23909, 16393, 15097, 17298, - 23909, 16393, 17835, 0, - 23909, 16393, 17835, 2, - 23909, 16393, 17835, 4, - 23909, 16393, 17835, 6, - 23909, 16393, 17835, 8, - 23909, 16393, 17835, 10, - 23909, 16393, 17835, 12, - 23909, 16393, 17835, 14, - 23909, 16393, 17835, 16, - 23909, 16393, 17835, 18, - 23909, 16393, 17835, 20, - 23909, 16393, 17835, 22, - 23909, 16393, 17835, 24, - 23909, 16393, 17835, 26, - 23909, 16393, 17835, 28, - 23909, 16393, 17835, 30, - 23909, 16393, 17835, 32, - 23909, 16393, 17835, 34, - 23909, 16393, 17835, 36, - 23909, 16393, 17835, 38, - 23909, 16393, 17835, 40, - 23909, 16393, 17835, 42, - 23909, 16393, 17835, 44, - 23909, 16393, 17835, 46, - 23909, 16393, 17835, 48, - 23909, 16393, 17835, 50, - 23909, 16393, 17835, 454, - 23909, 16393, 17835, 490, - 23909, 16393, 17835, 562, - 23909, 16393, 17835, 768, - 23909, 16393, 17835, 1120, - 23909, 16393, 17835, 1420, - 23909, 16393, 17835, 2834, - 23909, 16393, 17835, 2882, - 23909, 16393, 17835, 3076, - 23909, 16393, 17835, 3394, - 23909, 16393, 17835, 6064, - 23909, 16393, 17835, 7818, - 23909, 16393, 17835, 11826, - 23909, 16393, 17835, 12366, - 23909, 16393, 17835, 13050, - 23909, 16393, 17835, 13332, - 23909, 16393, 17835, 13652, - 23909, 16393, 17835, 13770, - 23909, 16393, 17835, 14428, - 23909, 16393, 17835, 14868, - 23909, 16393, 17835, 15096, - 23909, 16393, 17835, 15097, 17298, - 23909, 16393, 17835, 18120, - 23909, 16393, 17835, 18754, - 23909, 16393, 17835, 19378, - 23909, 16393, 18121, 17298, - 23909, 16393, 18819, 23798, - 23909, 17037, 19790, - 23909, 17089, 14911, 0, - 23909, 17089, 14911, 2, - 23909, 17089, 14911, 4, - 23909, 17089, 14911, 6, - 23909, 17089, 14911, 10, - 23909, 17089, 14911, 14, - 23909, 17089, 14911, 16, - 23909, 17089, 14911, 18, - 23909, 17089, 14911, 20, - 23909, 17089, 14911, 22, - 23909, 17089, 14911, 24, - 23909, 17089, 14911, 26, - 23909, 17089, 14911, 30, - 23909, 17089, 14911, 32, - 23909, 17089, 14911, 34, - 23909, 17089, 14911, 36, - 23909, 17089, 14911, 38, - 23909, 17089, 14911, 40, - 23909, 17089, 14911, 42, - 23909, 17089, 14911, 44, - 23909, 17089, 14911, 46, - 23909, 17089, 14911, 48, - 23909, 17089, 14911, 50, - 23909, 17089, 17835, 0, - 23909, 17089, 17835, 4, - 23909, 17089, 17835, 6, - 23909, 17089, 17835, 12, - 23909, 17089, 17835, 18, - 23909, 17089, 17835, 20, - 23909, 17089, 17835, 26, - 23909, 17089, 17835, 28, - 23909, 17089, 17835, 30, - 23909, 17089, 17835, 32, - 23909, 17089, 17835, 36, - 23909, 17089, 17835, 38, - 23909, 17089, 17835, 40, - 23909, 17089, 17835, 42, - 23909, 17089, 17835, 44, - 23909, 17089, 17835, 46, - 23909, 17089, 17835, 48, - 23909, 17089, 17835, 50, - 23909, 18137, 19790, - 23909, 18175, 14911, 0, - 23909, 18175, 14911, 2, - 23909, 18175, 14911, 4, - 23909, 18175, 14911, 6, - 23909, 18175, 14911, 8, - 23909, 18175, 14911, 10, - 23909, 18175, 14911, 12, - 23909, 18175, 14911, 14, - 23909, 18175, 14911, 16, - 23909, 18175, 14911, 18, - 23909, 18175, 14911, 20, - 23909, 18175, 14911, 22, - 23909, 18175, 14911, 24, - 23909, 18175, 14911, 26, - 23909, 18175, 14911, 28, - 23909, 18175, 14911, 30, - 23909, 18175, 14911, 32, - 23909, 18175, 14911, 34, - 23909, 18175, 14911, 36, - 23909, 18175, 14911, 38, - 23909, 18175, 14911, 40, - 23909, 18175, 14911, 42, - 23909, 18175, 14911, 44, - 23909, 18175, 14911, 46, - 23909, 18175, 14911, 48, - 23909, 18175, 14911, 50, - 23909, 18175, 17835, 0, - 23909, 18175, 17835, 2, - 23909, 18175, 17835, 6, - 23909, 18175, 17835, 8, - 23909, 18175, 17835, 10, - 23909, 18175, 17835, 12, - 23909, 18175, 17835, 18, - 23909, 18175, 17835, 20, - 23909, 18175, 17835, 22, - 23909, 18175, 17835, 24, - 23909, 18175, 17835, 26, - 23909, 18175, 17835, 28, - 23909, 18175, 17835, 30, - 23909, 18175, 17835, 32, - 23909, 18175, 17835, 36, - 23909, 18175, 17835, 38, - 23909, 18175, 17835, 40, - 23909, 18175, 17835, 42, - 23909, 18175, 17835, 44, - 23909, 18175, 17835, 46, - 23909, 18175, 17835, 48, - 23909, 21605, 13069, 2760, - 23909, 21605, 13069, 3240, - 23909, 21605, 13069, 3536, - 23909, 21605, 13069, 7036, - 23909, 21605, 13069, 7058, - 23909, 21605, 13069, 9358, - 23909, 21605, 13069, 11824, - 23909, 21605, 13069, 13150, - 23909, 21605, 13069, 14778, - 23909, 21605, 13069, 15116, - 23909, 21605, 14911, 0, - 23909, 21605, 14911, 2, - 23909, 21605, 14911, 4, - 23909, 21605, 14911, 6, - 23909, 21605, 14911, 8, - 23909, 21605, 14911, 10, - 23909, 21605, 14911, 12, - 23909, 21605, 14911, 14, - 23909, 21605, 14911, 16, - 23909, 21605, 14911, 18, - 23909, 21605, 14911, 20, - 23909, 21605, 14911, 22, - 23909, 21605, 14911, 24, - 23909, 21605, 14911, 26, - 23909, 21605, 14911, 28, - 23909, 21605, 14911, 30, - 23909, 21605, 14911, 32, - 23909, 21605, 14911, 34, - 23909, 21605, 14911, 36, - 23909, 21605, 14911, 38, - 23909, 21605, 14911, 40, - 23909, 21605, 14911, 42, - 23909, 21605, 14911, 44, - 23909, 21605, 14911, 46, - 23909, 21605, 14911, 48, - 23909, 21605, 14911, 50, - 23909, 21605, 17835, 0, - 23909, 21605, 17835, 2, - 23909, 21605, 17835, 4, - 23909, 21605, 17835, 6, - 23909, 21605, 17835, 8, - 23909, 21605, 17835, 10, - 23909, 21605, 17835, 12, - 23909, 21605, 17835, 14, - 23909, 21605, 17835, 16, - 23909, 21605, 17835, 18, - 23909, 21605, 17835, 20, - 23909, 21605, 17835, 22, - 23909, 21605, 17835, 24, - 23909, 21605, 17835, 26, - 23909, 21605, 17835, 28, - 23909, 21605, 17835, 30, - 23909, 21605, 17835, 32, - 23909, 21605, 17835, 34, - 23909, 21605, 17835, 36, - 23909, 21605, 17835, 38, - 23909, 21605, 17835, 40, - 23909, 21605, 17835, 42, - 23909, 21605, 17835, 44, - 23909, 21605, 17835, 46, - 23909, 21605, 17835, 48, - 23909, 21605, 17835, 50, - 23909, 22841, 6101, 563, 17298, - 23909, 22841, 6101, 2835, 17298, - 23909, 22841, 6101, 3077, 17298, - 23909, 22841, 6101, 13069, 2760, - 23909, 22841, 6101, 13069, 3240, - 23909, 22841, 6101, 13069, 3536, - 23909, 22841, 6101, 13069, 7036, - 23909, 22841, 6101, 13069, 7058, - 23909, 22841, 6101, 13069, 9358, - 23909, 22841, 6101, 13069, 11824, - 23909, 22841, 6101, 13069, 13150, - 23909, 22841, 6101, 13069, 14778, - 23909, 22841, 6101, 13069, 15116, - 23909, 22841, 6101, 13653, 17298, - 23909, 22841, 6101, 14070, - 23909, 22841, 6101, 14911, 0, - 23909, 22841, 6101, 14911, 2, - 23909, 22841, 6101, 14911, 4, - 23909, 22841, 6101, 14911, 6, - 23909, 22841, 6101, 14911, 8, - 23909, 22841, 6101, 14911, 10, - 23909, 22841, 6101, 14911, 12, - 23909, 22841, 6101, 14911, 14, - 23909, 22841, 6101, 14911, 16, - 23909, 22841, 6101, 14911, 18, - 23909, 22841, 6101, 14911, 20, - 23909, 22841, 6101, 14911, 22, - 23909, 22841, 6101, 14911, 24, - 23909, 22841, 6101, 14911, 26, - 23909, 22841, 6101, 14911, 28, - 23909, 22841, 6101, 14911, 30, - 23909, 22841, 6101, 14911, 32, - 23909, 22841, 6101, 14911, 34, - 23909, 22841, 6101, 14911, 36, - 23909, 22841, 6101, 14911, 38, - 23909, 22841, 6101, 14911, 40, - 23909, 22841, 6101, 14911, 42, - 23909, 22841, 6101, 14911, 44, - 23909, 22841, 6101, 14911, 46, - 23909, 22841, 6101, 14911, 48, - 23909, 22841, 6101, 14911, 50, - 23909, 22841, 6101, 14911, 454, - 23909, 22841, 6101, 14911, 490, - 23909, 22841, 6101, 14911, 562, - 23909, 22841, 6101, 14911, 768, - 23909, 22841, 6101, 14911, 1120, - 23909, 22841, 6101, 14911, 1420, - 23909, 22841, 6101, 14911, 2834, - 23909, 22841, 6101, 14911, 2882, - 23909, 22841, 6101, 14911, 3076, - 23909, 22841, 6101, 14911, 3394, - 23909, 22841, 6101, 14911, 6064, - 23909, 22841, 6101, 14911, 7818, - 23909, 22841, 6101, 14911, 11826, - 23909, 22841, 6101, 14911, 12366, - 23909, 22841, 6101, 14911, 13050, - 23909, 22841, 6101, 14911, 13259, 14868, - 23909, 22841, 6101, 14911, 13332, - 23909, 22841, 6101, 14911, 13652, - 23909, 22841, 6101, 14911, 13770, - 23909, 22841, 6101, 14911, 14428, - 23909, 22841, 6101, 14911, 14868, - 23909, 22841, 6101, 14911, 15096, - 23909, 22841, 6101, 14911, 18120, - 23909, 22841, 6101, 14911, 18754, - 23909, 22841, 6101, 14911, 19378, - 23909, 22841, 6101, 15097, 17298, - 23909, 22841, 6101, 16393, 563, 17298, - 23909, 22841, 6101, 16393, 2835, 17298, - 23909, 22841, 6101, 16393, 3077, 17298, - 23909, 22841, 6101, 16393, 13653, 17298, - 23909, 22841, 6101, 16393, 14070, - 23909, 22841, 6101, 16393, 14911, 0, - 23909, 22841, 6101, 16393, 14911, 2, - 23909, 22841, 6101, 16393, 14911, 4, - 23909, 22841, 6101, 16393, 14911, 6, - 23909, 22841, 6101, 16393, 14911, 8, - 23909, 22841, 6101, 16393, 14911, 10, - 23909, 22841, 6101, 16393, 14911, 12, - 23909, 22841, 6101, 16393, 14911, 14, - 23909, 22841, 6101, 16393, 14911, 16, - 23909, 22841, 6101, 16393, 14911, 18, - 23909, 22841, 6101, 16393, 14911, 20, - 23909, 22841, 6101, 16393, 14911, 22, - 23909, 22841, 6101, 16393, 14911, 24, - 23909, 22841, 6101, 16393, 14911, 26, - 23909, 22841, 6101, 16393, 14911, 28, - 23909, 22841, 6101, 16393, 14911, 30, - 23909, 22841, 6101, 16393, 14911, 32, - 23909, 22841, 6101, 16393, 14911, 34, - 23909, 22841, 6101, 16393, 14911, 36, - 23909, 22841, 6101, 16393, 14911, 38, - 23909, 22841, 6101, 16393, 14911, 40, - 23909, 22841, 6101, 16393, 14911, 42, - 23909, 22841, 6101, 16393, 14911, 44, - 23909, 22841, 6101, 16393, 14911, 46, - 23909, 22841, 6101, 16393, 14911, 48, - 23909, 22841, 6101, 16393, 14911, 50, - 23909, 22841, 6101, 16393, 14911, 454, - 23909, 22841, 6101, 16393, 14911, 490, - 23909, 22841, 6101, 16393, 14911, 562, - 23909, 22841, 6101, 16393, 14911, 768, - 23909, 22841, 6101, 16393, 14911, 1120, - 23909, 22841, 6101, 16393, 14911, 1420, - 23909, 22841, 6101, 16393, 14911, 2834, - 23909, 22841, 6101, 16393, 14911, 2882, - 23909, 22841, 6101, 16393, 14911, 3076, - 23909, 22841, 6101, 16393, 14911, 3394, - 23909, 22841, 6101, 16393, 14911, 6064, - 23909, 22841, 6101, 16393, 14911, 7818, - 23909, 22841, 6101, 16393, 14911, 11826, - 23909, 22841, 6101, 16393, 14911, 12366, - 23909, 22841, 6101, 16393, 14911, 13050, - 23909, 22841, 6101, 16393, 14911, 13259, 14868, - 23909, 22841, 6101, 16393, 14911, 13332, - 23909, 22841, 6101, 16393, 14911, 13652, - 23909, 22841, 6101, 16393, 14911, 13770, - 23909, 22841, 6101, 16393, 14911, 14428, - 23909, 22841, 6101, 16393, 14911, 14868, - 23909, 22841, 6101, 16393, 14911, 15096, - 23909, 22841, 6101, 16393, 14911, 18120, - 23909, 22841, 6101, 16393, 14911, 18754, - 23909, 22841, 6101, 16393, 14911, 19378, - 23909, 22841, 6101, 16393, 15097, 17298, - 23909, 22841, 6101, 16393, 17835, 0, - 23909, 22841, 6101, 16393, 17835, 2, - 23909, 22841, 6101, 16393, 17835, 4, - 23909, 22841, 6101, 16393, 17835, 6, - 23909, 22841, 6101, 16393, 17835, 8, - 23909, 22841, 6101, 16393, 17835, 10, - 23909, 22841, 6101, 16393, 17835, 12, - 23909, 22841, 6101, 16393, 17835, 14, - 23909, 22841, 6101, 16393, 17835, 16, - 23909, 22841, 6101, 16393, 17835, 18, - 23909, 22841, 6101, 16393, 17835, 20, - 23909, 22841, 6101, 16393, 17835, 22, - 23909, 22841, 6101, 16393, 17835, 24, - 23909, 22841, 6101, 16393, 17835, 26, - 23909, 22841, 6101, 16393, 17835, 28, - 23909, 22841, 6101, 16393, 17835, 30, - 23909, 22841, 6101, 16393, 17835, 32, - 23909, 22841, 6101, 16393, 17835, 34, - 23909, 22841, 6101, 16393, 17835, 36, - 23909, 22841, 6101, 16393, 17835, 38, - 23909, 22841, 6101, 16393, 17835, 40, - 23909, 22841, 6101, 16393, 17835, 42, - 23909, 22841, 6101, 16393, 17835, 44, - 23909, 22841, 6101, 16393, 17835, 46, - 23909, 22841, 6101, 16393, 17835, 48, - 23909, 22841, 6101, 16393, 17835, 50, - 23909, 22841, 6101, 16393, 17835, 454, - 23909, 22841, 6101, 16393, 17835, 490, - 23909, 22841, 6101, 16393, 17835, 562, - 23909, 22841, 6101, 16393, 17835, 768, - 23909, 22841, 6101, 16393, 17835, 1120, - 23909, 22841, 6101, 16393, 17835, 1420, - 23909, 22841, 6101, 16393, 17835, 2834, - 23909, 22841, 6101, 16393, 17835, 2882, - 23909, 22841, 6101, 16393, 17835, 3076, - 23909, 22841, 6101, 16393, 17835, 3394, - 23909, 22841, 6101, 16393, 17835, 6064, - 23909, 22841, 6101, 16393, 17835, 7818, - 23909, 22841, 6101, 16393, 17835, 11826, - 23909, 22841, 6101, 16393, 17835, 12366, - 23909, 22841, 6101, 16393, 17835, 13050, - 23909, 22841, 6101, 16393, 17835, 13332, - 23909, 22841, 6101, 16393, 17835, 13652, - 23909, 22841, 6101, 16393, 17835, 13770, - 23909, 22841, 6101, 16393, 17835, 14428, - 23909, 22841, 6101, 16393, 17835, 14868, - 23909, 22841, 6101, 16393, 17835, 15096, - 23909, 22841, 6101, 16393, 17835, 15097, 17298, - 23909, 22841, 6101, 16393, 17835, 18120, - 23909, 22841, 6101, 16393, 17835, 18754, - 23909, 22841, 6101, 16393, 17835, 19378, - 23909, 22841, 6101, 16393, 18121, 17298, - 23909, 22841, 6101, 16393, 18819, 23798, - 23909, 22841, 6101, 17835, 0, - 23909, 22841, 6101, 17835, 2, - 23909, 22841, 6101, 17835, 4, - 23909, 22841, 6101, 17835, 6, - 23909, 22841, 6101, 17835, 8, - 23909, 22841, 6101, 17835, 10, - 23909, 22841, 6101, 17835, 12, - 23909, 22841, 6101, 17835, 14, - 23909, 22841, 6101, 17835, 16, - 23909, 22841, 6101, 17835, 18, - 23909, 22841, 6101, 17835, 20, - 23909, 22841, 6101, 17835, 22, - 23909, 22841, 6101, 17835, 24, - 23909, 22841, 6101, 17835, 26, - 23909, 22841, 6101, 17835, 28, - 23909, 22841, 6101, 17835, 30, - 23909, 22841, 6101, 17835, 32, - 23909, 22841, 6101, 17835, 34, - 23909, 22841, 6101, 17835, 36, - 23909, 22841, 6101, 17835, 38, - 23909, 22841, 6101, 17835, 40, - 23909, 22841, 6101, 17835, 42, - 23909, 22841, 6101, 17835, 44, - 23909, 22841, 6101, 17835, 46, - 23909, 22841, 6101, 17835, 48, - 23909, 22841, 6101, 17835, 50, - 23909, 22841, 6101, 17835, 454, - 23909, 22841, 6101, 17835, 490, - 23909, 22841, 6101, 17835, 562, - 23909, 22841, 6101, 17835, 768, - 23909, 22841, 6101, 17835, 1120, - 23909, 22841, 6101, 17835, 1420, - 23909, 22841, 6101, 17835, 2834, - 23909, 22841, 6101, 17835, 2882, - 23909, 22841, 6101, 17835, 3076, - 23909, 22841, 6101, 17835, 3394, - 23909, 22841, 6101, 17835, 6064, - 23909, 22841, 6101, 17835, 7818, - 23909, 22841, 6101, 17835, 11826, - 23909, 22841, 6101, 17835, 12366, - 23909, 22841, 6101, 17835, 13050, - 23909, 22841, 6101, 17835, 13332, - 23909, 22841, 6101, 17835, 13652, - 23909, 22841, 6101, 17835, 13770, - 23909, 22841, 6101, 17835, 14428, - 23909, 22841, 6101, 17835, 14868, - 23909, 22841, 6101, 17835, 15096, - 23909, 22841, 6101, 17835, 15097, 17298, - 23909, 22841, 6101, 17835, 18120, - 23909, 22841, 6101, 17835, 18754, - 23909, 22841, 6101, 17835, 19378, - 23909, 22841, 6101, 18121, 17298, - 23909, 22841, 6101, 18819, 23798, - 23909, 22841, 13069, 2760, - 23909, 22841, 13069, 3240, - 23909, 22841, 13069, 3536, - 23909, 22841, 13069, 7036, - 23909, 22841, 13069, 7058, - 23909, 22841, 13069, 9358, - 23909, 22841, 13069, 11824, - 23909, 22841, 13069, 13150, - 23909, 22841, 13069, 14778, - 23909, 22841, 13069, 15116, - 23909, 22841, 14911, 0, - 23909, 22841, 14911, 2, - 23909, 22841, 14911, 4, - 23909, 22841, 14911, 6, - 23909, 22841, 14911, 8, - 23909, 22841, 14911, 10, - 23909, 22841, 14911, 12, - 23909, 22841, 14911, 14, - 23909, 22841, 14911, 16, - 23909, 22841, 14911, 18, - 23909, 22841, 14911, 20, - 23909, 22841, 14911, 22, - 23909, 22841, 14911, 24, - 23909, 22841, 14911, 26, - 23909, 22841, 14911, 28, - 23909, 22841, 14911, 30, - 23909, 22841, 14911, 32, - 23909, 22841, 14911, 34, - 23909, 22841, 14911, 36, - 23909, 22841, 14911, 38, - 23909, 22841, 14911, 40, - 23909, 22841, 14911, 42, - 23909, 22841, 14911, 44, - 23909, 22841, 14911, 46, - 23909, 22841, 14911, 48, - 23909, 22841, 14911, 50, - 23909, 22841, 16393, 14911, 0, - 23909, 22841, 16393, 14911, 2, - 23909, 22841, 16393, 14911, 4, - 23909, 22841, 16393, 14911, 6, - 23909, 22841, 16393, 14911, 8, - 23909, 22841, 16393, 14911, 10, - 23909, 22841, 16393, 14911, 12, - 23909, 22841, 16393, 14911, 14, - 23909, 22841, 16393, 14911, 16, - 23909, 22841, 16393, 14911, 18, - 23909, 22841, 16393, 14911, 20, - 23909, 22841, 16393, 14911, 22, - 23909, 22841, 16393, 14911, 24, - 23909, 22841, 16393, 14911, 26, - 23909, 22841, 16393, 14911, 28, - 23909, 22841, 16393, 14911, 30, - 23909, 22841, 16393, 14911, 32, - 23909, 22841, 16393, 14911, 34, - 23909, 22841, 16393, 14911, 36, - 23909, 22841, 16393, 14911, 38, - 23909, 22841, 16393, 14911, 40, - 23909, 22841, 16393, 14911, 42, - 23909, 22841, 16393, 14911, 44, - 23909, 22841, 16393, 14911, 46, - 23909, 22841, 16393, 14911, 48, - 23909, 22841, 16393, 14911, 50, - 23909, 22841, 16393, 17835, 0, - 23909, 22841, 16393, 17835, 2, - 23909, 22841, 16393, 17835, 4, - 23909, 22841, 16393, 17835, 6, - 23909, 22841, 16393, 17835, 8, - 23909, 22841, 16393, 17835, 10, - 23909, 22841, 16393, 17835, 12, - 23909, 22841, 16393, 17835, 14, - 23909, 22841, 16393, 17835, 16, - 23909, 22841, 16393, 17835, 18, - 23909, 22841, 16393, 17835, 20, - 23909, 22841, 16393, 17835, 22, - 23909, 22841, 16393, 17835, 24, - 23909, 22841, 16393, 17835, 26, - 23909, 22841, 16393, 17835, 28, - 23909, 22841, 16393, 17835, 30, - 23909, 22841, 16393, 17835, 32, - 23909, 22841, 16393, 17835, 34, - 23909, 22841, 16393, 17835, 36, - 23909, 22841, 16393, 17835, 38, - 23909, 22841, 16393, 17835, 40, - 23909, 22841, 16393, 17835, 42, - 23909, 22841, 16393, 17835, 44, - 23909, 22841, 16393, 17835, 46, - 23909, 22841, 16393, 17835, 48, - 23909, 22841, 16393, 17835, 50, - 23909, 22841, 17835, 0, - 23909, 22841, 17835, 2, - 23909, 22841, 17835, 4, - 23909, 22841, 17835, 6, - 23909, 22841, 17835, 8, - 23909, 22841, 17835, 10, - 23909, 22841, 17835, 12, - 23909, 22841, 17835, 14, - 23909, 22841, 17835, 16, - 23909, 22841, 17835, 18, - 23909, 22841, 17835, 20, - 23909, 22841, 17835, 22, - 23909, 22841, 17835, 24, - 23909, 22841, 17835, 26, - 23909, 22841, 17835, 28, - 23909, 22841, 17835, 30, - 23909, 22841, 17835, 32, - 23909, 22841, 17835, 34, - 23909, 22841, 17835, 36, - 23909, 22841, 17835, 38, - 23909, 22841, 17835, 40, - 23909, 22841, 17835, 42, - 23909, 22841, 17835, 44, - 23909, 22841, 17835, 46, - 23909, 22841, 17835, 48, - 23909, 22841, 17835, 50, - 23909, 25761, 13069, 2760, - 23909, 25761, 13069, 3240, - 23909, 25761, 13069, 3536, - 23909, 25761, 13069, 7036, - 23909, 25761, 13069, 7058, - 23909, 25761, 13069, 9358, - 23909, 25761, 13069, 11824, - 23909, 25761, 13069, 13150, - 23909, 25761, 13069, 14778, - 23909, 25761, 13069, 15116, - 23909, 25761, 14911, 0, - 23909, 25761, 14911, 2, - 23909, 25761, 14911, 4, - 23909, 25761, 14911, 6, - 23909, 25761, 14911, 8, - 23909, 25761, 14911, 10, - 23909, 25761, 14911, 12, - 23909, 25761, 14911, 14, - 23909, 25761, 14911, 16, - 23909, 25761, 14911, 18, - 23909, 25761, 14911, 20, - 23909, 25761, 14911, 22, - 23909, 25761, 14911, 24, - 23909, 25761, 14911, 26, - 23909, 25761, 14911, 28, - 23909, 25761, 14911, 30, - 23909, 25761, 14911, 32, - 23909, 25761, 14911, 34, - 23909, 25761, 14911, 36, - 23909, 25761, 14911, 38, - 23909, 25761, 14911, 40, - 23909, 25761, 14911, 42, - 23909, 25761, 14911, 44, - 23909, 25761, 14911, 46, - 23909, 25761, 14911, 48, - 23909, 25761, 14911, 50, - 23909, 25761, 17835, 0, - 23909, 25761, 17835, 2, - 23909, 25761, 17835, 6, - 23909, 25761, 17835, 8, - 23909, 25761, 17835, 10, - 23909, 25761, 17835, 12, - 23909, 25761, 17835, 16, - 23909, 25761, 17835, 18, - 23909, 25761, 17835, 20, - 23909, 25761, 17835, 22, - 23909, 25761, 17835, 24, - 23909, 25761, 17835, 28, - 23909, 25761, 17835, 36, - 23909, 25761, 17835, 38, - 23909, 25761, 17835, 40, - 23909, 25761, 17835, 42, - 23909, 25761, 17835, 44, - 23909, 25761, 17835, 46, - 23909, 25761, 17835, 48, - 23927, 16358, - 24051, 10860, - 24053, 7057, 1493, 20933, 203, 6544, - 24053, 7057, 1493, 20933, 205, 6544, - 24053, 7057, 1493, 20933, 2301, 8320, - 24053, 7057, 1493, 20933, 3537, 1291, 16516, - 24053, 7057, 1493, 20933, 8281, 12379, 17810, - 24053, 7057, 1493, 20933, 8281, 12525, 22537, 17810, - 24053, 7057, 1493, 20933, 8281, 12941, 17810, - 24053, 7057, 1493, 20933, 8281, 15453, 15975, 17810, - 24053, 7057, 1493, 20933, 8281, 15453, 22537, 17810, - 24053, 7057, 1493, 20933, 8281, 15975, 17810, - 24053, 7057, 1493, 20933, 8281, 16095, 12379, 17810, - 24053, 7057, 1493, 20933, 8281, 17225, 17810, - 24053, 7057, 1493, 20933, 8281, 20847, 14811, 17810, - 24053, 7057, 1493, 20933, 8281, 23522, - 24053, 7057, 1493, 20933, 11475, 2301, 8320, - 24053, 7057, 1493, 20933, 12916, - 24053, 7057, 1493, 20933, 12922, - 24053, 7057, 1493, 20933, 14659, 12379, 17810, - 24053, 7057, 1493, 20933, 14659, 12525, 22537, 17810, - 24053, 7057, 1493, 20933, 14659, 12941, 17810, - 24053, 7057, 1493, 20933, 14659, 15453, 15975, 17810, - 24053, 7057, 1493, 20933, 14659, 15453, 22537, 17810, - 24053, 7057, 1493, 20933, 14659, 15453, 22537, 17814, - 24053, 7057, 1493, 20933, 14659, 15975, 17810, - 24053, 7057, 1493, 20933, 14659, 16095, 12379, 17810, - 24053, 7057, 1493, 20933, 14659, 17225, 17810, - 24053, 7057, 1493, 20933, 14659, 20847, 14811, 17810, - 24053, 7057, 1493, 20933, 14659, 23522, - 24053, 7057, 1493, 20933, 20549, 8808, - 24053, 7057, 1493, 20933, 21844, - 24053, 7057, 1493, 20933, 22495, 19976, - 24053, 7057, 1493, 20933, 23213, 8808, - 24053, 7057, 1493, 20933, 23259, 7073, 10696, - 24053, 7057, 1493, 20933, 23259, 12922, - 24055, 660, - 24071, 19398, - 24077, 7030, - 24077, 7031, 11513, 9783, 14030, - 24077, 7032, - 24077, 14921, 7461, 11513, 9783, 14030, - 24077, 14921, 7461, 11513, 15949, 14030, - 24077, 17289, 10574, - 24077, 17289, 10575, 11513, 6696, - 24077, 19563, 19993, 10574, - 24077, 19602, - 24079, 22511, 21732, - 24081, 15453, 22837, 12414, - 24084, - 24143, 7073, 10696, - 24146, - 24152, - 24159, 14932, - 24162, - 24183, 22837, 12414, - 24189, 6996, - 24193, 3473, 22849, 12414, - 24193, 9783, 15939, 12414, - 24193, 15949, 15939, 12414, - 24193, 16233, 15939, 12414, - 24193, 17911, 20156, - 24193, 21349, 897, 19381, 9783, 15939, 15738, - 24193, 23276, - 24193, 28089, 3473, 20909, 12414, - 24193, 28089, 8281, 20909, 12414, - 24193, 28089, 9783, 15939, 12414, - 24193, 28089, 14659, 20909, 12414, - 24193, 28089, 15827, 20909, 12414, - 24195, 1057, 2643, 19513, 13177, 660, - 24195, 13177, 529, 13177, 660, - 24195, 13177, 660, - 24195, 13177, 661, 529, 3425, 13589, 506, - 25757, 22089, 17298, - 25761, 14055, 21928, - 25761, 14911, 562, - 25761, 14911, 13332, - 25761, 16393, 14911, 6, - 25761, 16393, 14911, 8, - 25761, 16393, 14911, 16, - 25761, 16393, 14911, 18, - 25761, 16393, 17835, 6, - 25761, 17835, 4, - 25761, 17835, 14, - 25761, 17835, 26, - 25761, 17835, 30, - 25761, 17835, 32, - 25761, 17835, 34, - 25761, 17835, 50, - 25761, 17835, 562, - 25761, 17835, 13332, - 25763, 3059, 20858, - 25763, 7062, - 25763, 14656, - 25763, 14911, 3059, 20858, - 25763, 14975, 16168, - 25763, 15757, 6104, - 25763, 16117, 11472, - 25763, 17005, 1088, - 25763, 17043, 10480, - 25763, 19518, - 25763, 20859, 11513, 8281, 7429, 12524, - 25763, 20859, 11513, 14659, 7429, 12524, - 25773, 10574, - 25777, 13177, 660, - 25777, 22435, 660, - 25781, 14499, 17298, - 25793, 18789, 16531, 276, - 25793, 18789, 16531, 554, - 25793, 18789, 16531, 2676, - 25793, 18789, 16531, 3398, - 25793, 18789, 16531, 6066, - 25793, 18789, 16531, 7478, - 25793, 18789, 16531, 8002, - 25793, 18789, 16531, 10478, - 25793, 18789, 16531, 10914, - 25793, 18789, 16531, 11722, - 25793, 18789, 16531, 12354, - 25793, 18789, 16531, 13384, - 25793, 18789, 16531, 14720, - 25793, 18789, 16531, 15606, - 25793, 18789, 16531, 16010, - 25793, 18789, 16531, 16508, - 25793, 18789, 16531, 17060, - 25793, 18789, 16531, 20300, - 25793, 18789, 16531, 25970, - 25793, 18789, 16787, 2760, - 25793, 18789, 16787, 2761, 18280, - 25793, 18789, 16787, 2761, 20828, - 25793, 18789, 16787, 3412, - 25793, 18789, 16787, 3536, - 25793, 18789, 16787, 7058, - 25793, 18789, 16787, 15116, - 25793, 18789, 16787, 17474, - 25793, 20459, 16531, 276, - 25793, 20459, 16531, 554, - 25793, 20459, 16531, 2406, - 25793, 20459, 16531, 2676, - 25793, 20459, 16531, 3398, - 25793, 20459, 16531, 3750, - 25793, 20459, 16531, 5556, - 25793, 20459, 16531, 6066, - 25793, 20459, 16531, 7478, - 25793, 20459, 16531, 8002, - 25793, 20459, 16531, 9992, - 25793, 20459, 16531, 10120, - 25793, 20459, 16531, 10478, - 25793, 20459, 16531, 10914, - 25793, 20459, 16531, 11722, - 25793, 20459, 16531, 12354, - 25793, 20459, 16531, 13384, - 25793, 20459, 16531, 14720, - 25793, 20459, 16531, 15606, - 25793, 20459, 16531, 16010, - 25793, 20459, 16531, 16508, - 25793, 20459, 16531, 17060, - 25793, 20459, 16787, 2760, - 25793, 20459, 16787, 2761, 18280, - 25793, 20459, 16787, 2761, 20828, - 25793, 20459, 16787, 3412, - 25793, 20459, 16787, 3536, - 25793, 20459, 16787, 7058, - 25793, 20459, 16787, 15116, - 25793, 20459, 16787, 17474, - 25813, 10868, - 25813, 12379, 17810, - 25813, 13070, - 25813, 14656, - 25813, 14975, 16168, - 25813, 15757, 6104, - 25813, 16001, 12379, 17810, - 25813, 16095, 12379, 21779, 8808, - 25813, 16117, 11472, - 25813, 17005, 1088, - 25813, 17043, 10480, - 25813, 17043, 17798, - 25813, 17045, 17897, 1088, - 25813, 19518, - 25813, 22549, 13392, - 25815, 8808, - 25815, 18314, - 25815, 20426, - 25815, 21360, - 25823, 10574, - 25877, 22837, 12414, - 25883, 13069, 2760, - 25883, 13069, 3240, - 25883, 13069, 3536, - 25883, 13069, 7036, - 25883, 13069, 7058, - 25883, 13069, 9358, - 25883, 13069, 13150, - 25883, 13069, 14778, - 25883, 13069, 15116, - 25883, 13783, 14911, 16531, 0, - 25883, 13783, 14911, 16531, 2, - 25883, 13783, 14911, 16531, 4, - 25883, 13783, 14911, 16531, 6, - 25883, 13783, 14911, 16531, 8, - 25883, 13783, 14911, 16531, 10, - 25883, 13783, 14911, 16531, 12, - 25883, 13783, 14911, 16531, 14, - 25883, 13783, 14911, 16531, 16, - 25883, 13783, 14911, 16531, 18, - 25883, 13783, 14911, 16531, 20, - 25883, 13783, 14911, 16531, 22, - 25883, 13783, 14911, 16531, 24, - 25883, 13783, 14911, 16531, 26, - 25883, 13783, 14911, 16531, 28, - 25883, 13783, 14911, 16531, 30, - 25883, 13783, 14911, 16531, 32, - 25883, 13783, 14911, 16531, 34, - 25883, 13783, 14911, 16531, 36, - 25883, 13783, 14911, 16531, 38, - 25883, 13783, 14911, 16531, 40, - 25883, 13783, 14911, 16531, 42, - 25883, 13783, 14911, 16531, 44, - 25883, 13783, 14911, 16531, 46, - 25883, 13783, 14911, 16531, 48, - 25883, 13783, 14911, 16531, 50, - 25883, 13783, 17835, 16531, 0, - 25883, 13783, 17835, 16531, 2, - 25883, 13783, 17835, 16531, 4, - 25883, 13783, 17835, 16531, 6, - 25883, 13783, 17835, 16531, 8, - 25883, 13783, 17835, 16531, 10, - 25883, 13783, 17835, 16531, 12, - 25883, 13783, 17835, 16531, 14, - 25883, 13783, 17835, 16531, 16, - 25883, 13783, 17835, 16531, 18, - 25883, 13783, 17835, 16531, 20, - 25883, 13783, 17835, 16531, 22, - 25883, 13783, 17835, 16531, 24, - 25883, 13783, 17835, 16531, 26, - 25883, 13783, 17835, 16531, 28, - 25883, 13783, 17835, 16531, 30, - 25883, 13783, 17835, 16531, 32, - 25883, 13783, 17835, 16531, 34, - 25883, 13783, 17835, 16531, 36, - 25883, 13783, 17835, 16531, 38, - 25883, 13783, 17835, 16531, 40, - 25883, 13783, 17835, 16531, 42, - 25883, 13783, 17835, 16531, 44, - 25883, 13783, 17835, 16531, 46, - 25883, 13783, 17835, 16531, 48, - 25883, 13783, 17835, 16531, 50, - 25883, 16313, 10586, - 25883, 16313, 10587, 0, - 25883, 16313, 12698, - 25883, 16313, 12699, 0, - 25883, 16313, 12699, 40, - 25883, 16313, 13484, - 25883, 16313, 13485, 0, - 25883, 16313, 13582, - 25883, 16313, 13583, 0, - 25883, 16313, 13994, - 25883, 16313, 13995, 0, - 25883, 16313, 14164, - 25883, 16313, 14165, 0, - 25883, 16313, 14538, - 25883, 16313, 14539, 0, - 25883, 16313, 14654, - 25883, 16313, 14655, 0, - 25883, 16313, 16462, - 25883, 16313, 16463, 0, - 25883, 16313, 17384, - 25883, 16313, 17385, 0, - 25883, 16313, 17870, - 25883, 16313, 17871, 0, - 25883, 16313, 18362, - 25883, 16313, 18363, 0, - 25883, 16313, 18860, - 25883, 16313, 18861, 0, - 25883, 16313, 19274, - 25883, 16313, 19275, 0, - 25883, 16477, 21101, 29, 292, - 25883, 16477, 21101, 14420, - 25883, 16787, 3412, - 25883, 16787, 16110, - 25883, 16787, 17472, - 25883, 16787, 17474, - 25883, 16787, 18148, - 25883, 16787, 19116, - 25883, 16787, 19966, - 25883, 16787, 20052, - 25883, 16787, 20368, - 25883, 16787, 20824, - 25883, 16787, 21854, - 25883, 21487, 2760, - 25883, 21487, 3240, - 25883, 21487, 3310, - 25883, 21487, 3412, - 25883, 21487, 3536, - 25883, 21487, 6212, - 25883, 21487, 7026, - 25883, 21487, 7036, - 25883, 21487, 7058, - 25883, 21487, 7442, - 25883, 21487, 8980, - 25883, 21487, 9140, - 25883, 21487, 9358, - 25883, 21487, 10122, - 25883, 21487, 10422, - 25883, 21487, 11530, - 25883, 21487, 13140, - 25883, 21487, 13150, - 25883, 21487, 13760, - 25883, 21487, 13962, - 25883, 21487, 14636, - 25883, 21487, 14778, - 25883, 21487, 14980, - 25883, 21487, 14990, - 25883, 21487, 15116, - 25883, 21487, 15436, - 25883, 21487, 19134, - 25883, 21487, 19152, - 25883, 21487, 19526, - 25883, 21487, 20012, - 25883, 21487, 20580, - 25883, 21487, 21398, - 25883, 21487, 21802, - 25883, 21487, 21936, - 25883, 21487, 22422, - 25883, 21487, 25994, - 25886, - 25887, 11513, 36, - 25921, 8808, - 25921, 18314, - 25921, 20426, - 25921, 21360, - 25941, 16680, - 25950, - 25961, 97, 16525, 8808, - 25961, 10575, 519, 20538, - 25961, 10575, 14554, - 25961, 10575, 14841, 20538, - 25961, 10575, 15877, 21016, - 25961, 10575, 16573, 17534, - 25961, 10575, 17534, - 25961, 10575, 19408, - 25961, 10575, 19540, - 25961, 10575, 19586, - 25961, 13016, - 25961, 14644, - 25961, 15387, 11033, 19224, - 25961, 15387, 11033, 19538, - 25961, 15407, 10575, 16, - 25961, 15407, 10575, 40, - 25961, 15407, 10575, 58, - 25961, 15407, 10575, 72, - 25961, 15407, 10575, 96, - 25961, 15407, 10575, 186, - 25961, 15407, 10575, 314, - 25961, 15407, 10575, 522, - 25961, 15407, 10575, 706, - 25961, 15407, 10575, 19415, 22, - 25961, 15407, 10575, 19415, 34, - 25961, 15407, 10575, 19415, 406, - 25961, 15407, 10575, 19415, 608, - 25961, 16095, 13016, - 25961, 16531, 0, - 25961, 16531, 16, - 25961, 16531, 40, - 25961, 16531, 58, - 25961, 16531, 72, - 25961, 16531, 96, - 25961, 16531, 108, - 25961, 16531, 126, - 25961, 16531, 150, - 25961, 16531, 186, - 25961, 16531, 248, - 25961, 16531, 272, - 25961, 16531, 314, - 25961, 16531, 344, - 25961, 16531, 358, - 25961, 16531, 394, - 25961, 16531, 426, - 25961, 16531, 466, - 25961, 16531, 522, - 25961, 16531, 548, - 25961, 16531, 598, - 25961, 16531, 614, - 25961, 16531, 648, - 25961, 16531, 706, - 25961, 16531, 714, - 25961, 16531, 778, - 25961, 16531, 1000, - 25961, 16531, 1116, - 25961, 16531, 1214, - 25961, 16531, 1236, - 25961, 16531, 1588, - 25961, 16531, 1918, - 25961, 16531, 2036, - 25961, 16531, 2278, - 25961, 16531, 2574, - 25961, 16531, 2624, - 25961, 16531, 2698, - 25961, 16531, 2830, - 25961, 16531, 3118, - 25961, 16531, 3212, - 25961, 16531, 3286, - 25961, 16531, 3422, - 25961, 16531, 3502, - 25961, 16531, 6572, - 25961, 16531, 8342, - 25961, 16531, 11082, - 25961, 16531, 19415, 22, - 25961, 16531, 19415, 34, - 25961, 16531, 19415, 406, - 25961, 16531, 19415, 608, - 25961, 21138, - 25961, 22465, 8808, - 25966, - 25985, 13177, 660, - 25987, 19574, - 25990, - 25999, 6996, - 26007, 6222, - 26116, - 26135, 46, - 26135, 10574, - 26135, 10575, 323, 8281, 7429, 15938, - 26135, 10575, 323, 14659, 7429, 15938, - 26135, 10575, 323, 16095, 15938, - 26135, 10575, 323, 20858, - 26135, 10575, 11513, 1291, 12318, - 26135, 10575, 11513, 20920, - 26163, 10868, - 26163, 12379, 17810, - 26163, 13070, - 26163, 14656, - 26163, 14975, 16168, - 26163, 15757, 6104, - 26163, 16001, 12379, 17810, - 26163, 16095, 12379, 21779, 8808, - 26163, 16117, 11472, - 26163, 17005, 1088, - 26163, 17043, 10480, - 26163, 17043, 17798, - 26163, 17045, 17897, 1088, - 26163, 18216, - 26163, 22549, 13392, - 26166, - 26301, 14255, 6833, 12414, - 26301, 14931, 6833, 12414, - 26301, 22837, 12414, - 28083, 22837, 12414, - 28085, 19574, - 28089, 22837, 12414, - 28095, 22837, 12414, - 28099, 18890, - 28105, 12360, - 36247, 16095, 16358, - 36247, 17539, 14929, 8808, - 36247, 21767, 14929, 8808, - 36247, 23603, 14929, 8808, - 36271, 17298, - 36293, 19518, - 36295, 14483, 17298, - 36327, 16299, 17298, - 36327, 16493, 17298, - 36355, 17298, - 36361, 17298, -}; -static const struct { uint16_t index; uint32_t name:24; } ATTRIBUTE_PACKED unicode_name_to_index[38813] = { - { 0x944D, 0 }, - { 0x1D6F, 5 }, - { 0x25F8, 9 }, - { 0x1F7E, 12 }, - { 0x1F56, 17 }, - { 0x25B3, 21 }, - { 0x25B5, 26 }, - { 0x25AD, 31 }, - { 0x25AE, 34 }, - { 0x2691, 38 }, - { 0x25B4, 42 }, - { 0x25B6, 47 }, - { 0x2690, 52 }, - { 0x264C, 56 }, - { 0x264D, 60 }, - { 0x264B, 64 }, - { 0x266A, 68 }, - { 0x203D, 72 }, - { 0x9262, 74 }, - { 0x1C94, 78 }, - { 0x1C81, 80 }, - { 0x1C83, 82 }, - { 0x1C93, 84 }, - { 0x1C80, 86 }, - { 0x1C82, 88 }, - { 0x90D1, 90 }, - { 0x2300, 95 }, - { 0x925E, 97 }, - { 0x90A8, 100 }, - { 0x9125, 103 }, - { 0x9260, 105 }, - { 0x9266, 108 }, - { 0x926A, 110 }, - { 0x8FFF, 112 }, - { 0x8A62, 115 }, - { 0x8A63, 119 }, - { 0x8A64, 123 }, - { 0x8A66, 127 }, - { 0x8A6B, 131 }, - { 0x8A67, 135 }, - { 0x8A6A, 139 }, - { 0x8A69, 143 }, - { 0x8A6E, 147 }, - { 0x8A65, 151 }, - { 0x8A6D, 155 }, - { 0x8A6C, 159 }, - { 0x8A68, 163 }, - { 0x8A4A, 167 }, - { 0x8A5C, 171 }, - { 0x8A50, 175 }, - { 0x8A44, 179 }, - { 0x8A56, 183 }, - { 0x8A4C, 187 }, - { 0x8A4B, 191 }, - { 0x8A4D, 195 }, - { 0x8A4E, 199 }, - { 0x8A4F, 203 }, - { 0x8A5F, 207 }, - { 0x8A61, 211 }, - { 0x8A5E, 215 }, - { 0x8A5D, 219 }, - { 0x8A54, 223 }, - { 0x8A55, 227 }, - { 0x8A52, 231 }, - { 0x8A51, 235 }, - { 0x8A45, 239 }, - { 0x8A48, 243 }, - { 0x8A49, 247 }, - { 0x8A59, 251 }, - { 0x8A57, 255 }, - { 0x8A5B, 259 }, - { 0x8A60, 263 }, - { 0x8A53, 267 }, - { 0x8A46, 271 }, - { 0x8A47, 275 }, - { 0x8A58, 279 }, - { 0x8A5A, 283 }, - { 0x8A6F, 287 }, - { 0x1923, 291 }, - { 0x1928, 295 }, - { 0x18FC, 298 }, - { 0x1901, 302 }, - { 0x18FD, 306 }, - { 0x1900, 310 }, - { 0x18FF, 314 }, - { 0x1904, 318 }, - { 0x18FB, 322 }, - { 0x1903, 326 }, - { 0x1902, 330 }, - { 0x18FE, 334 }, - { 0x1926, 338 }, - { 0x1907, 341 }, - { 0x1909, 345 }, - { 0x1906, 349 }, - { 0x191C, 353 }, - { 0x191A, 357 }, - { 0x1911, 361 }, - { 0x1913, 365 }, - { 0x1910, 369 }, - { 0x1905, 373 }, - { 0x1919, 377 }, - { 0x190F, 381 }, - { 0x191E, 385 }, - { 0x1914, 389 }, - { 0x1920, 393 }, - { 0x1922, 397 }, - { 0x1921, 401 }, - { 0x1915, 405 }, - { 0x1916, 409 }, - { 0x1918, 413 }, - { 0x190C, 417 }, - { 0x190B, 421 }, - { 0x190D, 425 }, - { 0x190E, 429 }, - { 0x1908, 433 }, - { 0x191B, 437 }, - { 0x191D, 441 }, - { 0x1912, 445 }, - { 0x190A, 449 }, - { 0x191F, 453 }, - { 0x1917, 457 }, - { 0x1924, 461 }, - { 0x1927, 465 }, - { 0x1925, 468 }, - { 0x192A, 472 }, - { 0x1929, 477 }, - { 0x90FC, 481 }, - { 0x90CE, 483 }, - { 0x23F3, 492 }, - { 0x8FB5, 496 }, - { 0x0000, 497 }, - { 0x257D, 498 }, - { 0x2579, 505 }, - { 0x2578, 512 }, - { 0x257B, 519 }, - { 0x1DEC, 526 }, - { 0x1DFF, 529 }, - { 0x2739, 534 }, - { 0x1E4A, 538 }, - { 0x1E2C, 542 }, - { 0x93D9, 546 }, - { 0x2791, 550 }, - { 0x25AA, 554 }, - { 0x1EFC, 557 }, - { 0x240B, 559 }, - { 0x25E9, 564 }, - { 0x1F47, 568 }, - { 0x1F5A, 572 }, - { 0x27E2, 574 }, - { 0x1F7B, 580 }, - { 0x1CE0, 586 }, - { 0x3492, 587 }, - { 0x348F, 590 }, - { 0x3477, 593 }, - { 0x3489, 596 }, - { 0x349C, 599 }, - { 0x3467, 602 }, - { 0x346E, 605 }, - { 0x347F, 608 }, - { 0x347E, 611 }, - { 0x348E, 614 }, - { 0x3473, 617 }, - { 0x3488, 620 }, - { 0x347B, 623 }, - { 0x3499, 626 }, - { 0x3494, 629 }, - { 0x346A, 632 }, - { 0x3479, 635 }, - { 0x346D, 638 }, - { 0x348C, 641 }, - { 0x3483, 644 }, - { 0x348B, 647 }, - { 0x3468, 650 }, - { 0x3491, 653 }, - { 0x3470, 656 }, - { 0x3472, 659 }, - { 0x3474, 662 }, - { 0x3482, 665 }, - { 0x3466, 668 }, - { 0x3486, 671 }, - { 0x346B, 674 }, - { 0x3476, 677 }, - { 0x3487, 680 }, - { 0x3485, 683 }, - { 0x3484, 686 }, - { 0x3481, 689 }, - { 0x3478, 692 }, - { 0x3497, 695 }, - { 0x3471, 698 }, - { 0x3493, 701 }, - { 0x347A, 704 }, - { 0x346C, 707 }, - { 0x347C, 710 }, - { 0x346F, 713 }, - { 0x3495, 716 }, - { 0x3475, 719 }, - { 0x348D, 722 }, - { 0x3480, 725 }, - { 0x349B, 728 }, - { 0x3469, 731 }, - { 0x347D, 734 }, - { 0x348A, 737 }, - { 0x3496, 740 }, - { 0x3498, 743 }, - { 0x3490, 746 }, - { 0x349A, 749 }, - { 0x2FE3, 752 }, - { 0x2FED, 755 }, - { 0x2FDB, 758 }, - { 0x2FEA, 761 }, - { 0x2FE4, 764 }, - { 0x2FE1, 767 }, - { 0x2FE2, 770 }, - { 0x2FF9, 773 }, - { 0x3003, 776 }, - { 0x2FF1, 779 }, - { 0x3000, 782 }, - { 0x3007, 785 }, - { 0x300D, 788 }, - { 0x3291, 791 }, - { 0x329B, 794 }, - { 0x3289, 797 }, - { 0x3298, 800 }, - { 0x329F, 803 }, - { 0x32A5, 806 }, - { 0x30E2, 809 }, - { 0x30EB, 812 }, - { 0x30DB, 815 }, - { 0x30E8, 818 }, - { 0x30EF, 821 }, - { 0x2FEC, 824 }, - { 0x30AC, 827 }, - { 0x30A8, 830 }, - { 0x30AF, 833 }, - { 0x30B3, 836 }, - { 0x30B9, 839 }, - { 0x31BD, 842 }, - { 0x31C9, 845 }, - { 0x31B5, 848 }, - { 0x31C5, 851 }, - { 0x31CD, 854 }, - { 0x324C, 857 }, - { 0x3257, 860 }, - { 0x3254, 863 }, - { 0x2FDF, 866 }, - { 0x2FDC, 869 }, - { 0x2FD9, 872 }, - { 0x2FDA, 875 }, - { 0x33BB, 878 }, - { 0x33C7, 881 }, - { 0x33CB, 884 }, - { 0x33D1, 887 }, - { 0x31DA, 890 }, - { 0x31E5, 893 }, - { 0x31D3, 896 }, - { 0x31E1, 899 }, - { 0x31E9, 902 }, - { 0x319A, 905 }, - { 0x31A5, 908 }, - { 0x3192, 911 }, - { 0x31A2, 914 }, - { 0x31A9, 917 }, - { 0x31AF, 920 }, - { 0x3090, 923 }, - { 0x309B, 926 }, - { 0x3089, 929 }, - { 0x3098, 932 }, - { 0x309E, 935 }, - { 0x30A4, 938 }, - { 0x315E, 941 }, - { 0x3168, 944 }, - { 0x3158, 947 }, - { 0x3165, 950 }, - { 0x316C, 953 }, - { 0x2FEB, 956 }, - { 0x2FE8, 959 }, - { 0x2FE9, 962 }, - { 0x301A, 965 }, - { 0x3013, 968 }, - { 0x3021, 971 }, - { 0x3025, 974 }, - { 0x302B, 977 }, - { 0x33D7, 980 }, - { 0x33E3, 983 }, - { 0x33E7, 986 }, - { 0x33ED, 989 }, - { 0x33A1, 992 }, - { 0x33AB, 995 }, - { 0x33A8, 998 }, - { 0x33AF, 1001 }, - { 0x33B5, 1004 }, - { 0x32EB, 1007 }, - { 0x32F5, 1010 }, - { 0x32E4, 1013 }, - { 0x32F2, 1016 }, - { 0x32F9, 1019 }, - { 0x32FF, 1022 }, - { 0x30FC, 1025 }, - { 0x3107, 1028 }, - { 0x30F5, 1031 }, - { 0x3104, 1034 }, - { 0x310B, 1037 }, - { 0x2FE6, 1040 }, - { 0x30C5, 1043 }, - { 0x30BD, 1046 }, - { 0x30C9, 1049 }, - { 0x30CF, 1052 }, - { 0x30D5, 1055 }, - { 0x325B, 1058 }, - { 0x3264, 1061 }, - { 0x3261, 1064 }, - { 0x2FEE, 1067 }, - { 0x3438, 1070 }, - { 0x3442, 1073 }, - { 0x3446, 1076 }, - { 0x344C, 1079 }, - { 0x3458, 1082 }, - { 0x345C, 1085 }, - { 0x3462, 1088 }, - { 0x326F, 1091 }, - { 0x3279, 1094 }, - { 0x3268, 1097 }, - { 0x3276, 1100 }, - { 0x327D, 1103 }, - { 0x3283, 1106 }, - { 0x2FFA, 1109 }, - { 0x2FF7, 1112 }, - { 0x2FF8, 1115 }, - { 0x3039, 1118 }, - { 0x3043, 1121 }, - { 0x3031, 1124 }, - { 0x3040, 1127 }, - { 0x3047, 1130 }, - { 0x304D, 1133 }, - { 0x3004, 1136 }, - { 0x3002, 1139 }, - { 0x2FF5, 1142 }, - { 0x2FF2, 1145 }, - { 0x2FEF, 1148 }, - { 0x2FF0, 1151 }, - { 0x3001, 1154 }, - { 0x2FFE, 1157 }, - { 0x2FFF, 1160 }, - { 0x2FFC, 1163 }, - { 0x3008, 1166 }, - { 0x300A, 1169 }, - { 0x3005, 1172 }, - { 0x3006, 1175 }, - { 0x300E, 1178 }, - { 0x3010, 1181 }, - { 0x300B, 1184 }, - { 0x300C, 1187 }, - { 0x3292, 1190 }, - { 0x328F, 1193 }, - { 0x3290, 1196 }, - { 0x329C, 1199 }, - { 0x329A, 1202 }, - { 0x333C, 1205 }, - { 0x3348, 1208 }, - { 0x3344, 1211 }, - { 0x334B, 1214 }, - { 0x3351, 1217 }, - { 0x328D, 1220 }, - { 0x328A, 1223 }, - { 0x3287, 1226 }, - { 0x3288, 1229 }, - { 0x3299, 1232 }, - { 0x3296, 1235 }, - { 0x3297, 1238 }, - { 0x3294, 1241 }, - { 0x32A0, 1244 }, - { 0x32A2, 1247 }, - { 0x329D, 1250 }, - { 0x329E, 1253 }, - { 0x32A6, 1256 }, - { 0x32A8, 1259 }, - { 0x32A3, 1262 }, - { 0x32A4, 1265 }, - { 0x30E3, 1268 }, - { 0x30E0, 1271 }, - { 0x30E1, 1274 }, - { 0x3118, 1277 }, - { 0x3122, 1280 }, - { 0x3111, 1283 }, - { 0x311F, 1286 }, - { 0x3126, 1289 }, - { 0x30EC, 1292 }, - { 0x30EA, 1295 }, - { 0x30DE, 1298 }, - { 0x30DC, 1301 }, - { 0x30D9, 1304 }, - { 0x30DA, 1307 }, - { 0x30E9, 1310 }, - { 0x30E6, 1313 }, - { 0x30E7, 1316 }, - { 0x30E5, 1319 }, - { 0x30F0, 1322 }, - { 0x30F2, 1325 }, - { 0x30ED, 1328 }, - { 0x30EE, 1331 }, - { 0x30AD, 1334 }, - { 0x30AA, 1337 }, - { 0x30AB, 1340 }, - { 0x30A9, 1343 }, - { 0x30A6, 1346 }, - { 0x30A7, 1349 }, - { 0x30B0, 1352 }, - { 0x30AE, 1355 }, - { 0x30B4, 1358 }, - { 0x30B6, 1361 }, - { 0x30B1, 1364 }, - { 0x30B2, 1367 }, - { 0x30BA, 1370 }, - { 0x30B7, 1373 }, - { 0x30B8, 1376 }, - { 0x31BE, 1379 }, - { 0x31BB, 1382 }, - { 0x31BC, 1385 }, - { 0x31CA, 1388 }, - { 0x31C7, 1391 }, - { 0x31C8, 1394 }, - { 0x31F5, 1397 }, - { 0x3201, 1400 }, - { 0x31EF, 1403 }, - { 0x31FD, 1406 }, - { 0x3205, 1409 }, - { 0x31B9, 1412 }, - { 0x31B6, 1415 }, - { 0x31B3, 1418 }, - { 0x31B4, 1421 }, - { 0x31C6, 1424 }, - { 0x31C3, 1427 }, - { 0x31C4, 1430 }, - { 0x31C1, 1433 }, - { 0x31CE, 1436 }, - { 0x31D0, 1439 }, - { 0x31CB, 1442 }, - { 0x31CC, 1445 }, - { 0x324D, 1448 }, - { 0x324A, 1451 }, - { 0x324B, 1454 }, - { 0x3258, 1457 }, - { 0x3256, 1460 }, - { 0x3249, 1463 }, - { 0x3247, 1466 }, - { 0x3179, 1469 }, - { 0x3182, 1472 }, - { 0x3172, 1475 }, - { 0x317F, 1478 }, - { 0x3186, 1481 }, - { 0x318C, 1484 }, - { 0x3073, 1487 }, - { 0x306C, 1490 }, - { 0x307A, 1493 }, - { 0x307E, 1496 }, - { 0x3083, 1499 }, - { 0x314B, 1502 }, - { 0x3153, 1505 }, - { 0x3143, 1508 }, - { 0x3255, 1511 }, - { 0x3252, 1514 }, - { 0x3253, 1517 }, - { 0x3250, 1520 }, - { 0x3229, 1523 }, - { 0x3234, 1526 }, - { 0x3221, 1529 }, - { 0x3231, 1532 }, - { 0x2FE0, 1535 }, - { 0x2FDD, 1538 }, - { 0x2FDE, 1541 }, - { 0x33BF, 1544 }, - { 0x33BC, 1547 }, - { 0x33B9, 1550 }, - { 0x33BA, 1553 }, - { 0x33F3, 1556 }, - { 0x33FE, 1559 }, - { 0x3402, 1562 }, - { 0x3408, 1565 }, - { 0x33C8, 1568 }, - { 0x33C5, 1571 }, - { 0x33C6, 1574 }, - { 0x33C3, 1577 }, - { 0x33CC, 1580 }, - { 0x33CE, 1583 }, - { 0x33C9, 1586 }, - { 0x33CA, 1589 }, - { 0x33D2, 1592 }, - { 0x33D4, 1595 }, - { 0x33CF, 1598 }, - { 0x33D0, 1601 }, - { 0x31DB, 1604 }, - { 0x31D8, 1607 }, - { 0x31D9, 1610 }, - { 0x31E6, 1613 }, - { 0x31E3, 1616 }, - { 0x31E4, 1619 }, - { 0x31D6, 1622 }, - { 0x31D4, 1625 }, - { 0x31D1, 1628 }, - { 0x31D2, 1631 }, - { 0x31E2, 1634 }, - { 0x31DF, 1637 }, - { 0x31E0, 1640 }, - { 0x31DD, 1643 }, - { 0x31EA, 1646 }, - { 0x31EC, 1649 }, - { 0x31E7, 1652 }, - { 0x31E8, 1655 }, - { 0x319B, 1658 }, - { 0x3198, 1661 }, - { 0x3199, 1664 }, - { 0x31A6, 1667 }, - { 0x31A4, 1670 }, - { 0x3196, 1673 }, - { 0x3193, 1676 }, - { 0x3190, 1679 }, - { 0x3191, 1682 }, - { 0x31A3, 1685 }, - { 0x31A0, 1688 }, - { 0x31A1, 1691 }, - { 0x319E, 1694 }, - { 0x31AA, 1697 }, - { 0x31AC, 1700 }, - { 0x31A7, 1703 }, - { 0x31A8, 1706 }, - { 0x31B0, 1709 }, - { 0x31B2, 1712 }, - { 0x31AD, 1715 }, - { 0x31AE, 1718 }, - { 0x3091, 1721 }, - { 0x308E, 1724 }, - { 0x308F, 1727 }, - { 0x309A, 1730 }, - { 0x320D, 1733 }, - { 0x3217, 1736 }, - { 0x3214, 1739 }, - { 0x321B, 1742 }, - { 0x308C, 1745 }, - { 0x308A, 1748 }, - { 0x3087, 1751 }, - { 0x3088, 1754 }, - { 0x3099, 1757 }, - { 0x3096, 1760 }, - { 0x3097, 1763 }, - { 0x3094, 1766 }, - { 0x309F, 1769 }, - { 0x30A1, 1772 }, - { 0x309C, 1775 }, - { 0x309D, 1778 }, - { 0x30A5, 1781 }, - { 0x30A2, 1784 }, - { 0x30A3, 1787 }, - { 0x315F, 1790 }, - { 0x315D, 1793 }, - { 0x3058, 1796 }, - { 0x3051, 1799 }, - { 0x305C, 1802 }, - { 0x3060, 1805 }, - { 0x3066, 1808 }, - { 0x3132, 1811 }, - { 0x3139, 1814 }, - { 0x312C, 1817 }, - { 0x3136, 1820 }, - { 0x313D, 1823 }, - { 0x3169, 1826 }, - { 0x3167, 1829 }, - { 0x323B, 1832 }, - { 0x3245, 1835 }, - { 0x3242, 1838 }, - { 0x315B, 1841 }, - { 0x3159, 1844 }, - { 0x3156, 1847 }, - { 0x3157, 1850 }, - { 0x340C, 1853 }, - { 0x3416, 1856 }, - { 0x3419, 1859 }, - { 0x341F, 1862 }, - { 0x3166, 1865 }, - { 0x3163, 1868 }, - { 0x3164, 1871 }, - { 0x336F, 1874 }, - { 0x3376, 1877 }, - { 0x3372, 1880 }, - { 0x337A, 1883 }, - { 0x3380, 1886 }, - { 0x3161, 1889 }, - { 0x316D, 1892 }, - { 0x316F, 1895 }, - { 0x316A, 1898 }, - { 0x316B, 1901 }, - { 0x3425, 1904 }, - { 0x3430, 1907 }, - { 0x3434, 1910 }, - { 0x32CF, 1913 }, - { 0x32D6, 1916 }, - { 0x32C8, 1919 }, - { 0x32D8, 1922 }, - { 0x32DE, 1925 }, - { 0x301B, 1928 }, - { 0x3018, 1931 }, - { 0x3019, 1934 }, - { 0x3016, 1937 }, - { 0x3014, 1940 }, - { 0x3011, 1943 }, - { 0x3012, 1946 }, - { 0x3022, 1949 }, - { 0x301F, 1952 }, - { 0x3020, 1955 }, - { 0x301D, 1958 }, - { 0x3026, 1961 }, - { 0x3028, 1964 }, - { 0x3023, 1967 }, - { 0x3024, 1970 }, - { 0x302C, 1973 }, - { 0x302E, 1976 }, - { 0x3029, 1979 }, - { 0x302A, 1982 }, - { 0x33DB, 1985 }, - { 0x33D8, 1988 }, - { 0x33D5, 1991 }, - { 0x33D6, 1994 }, - { 0x33E4, 1997 }, - { 0x33E1, 2000 }, - { 0x33E2, 2003 }, - { 0x33DF, 2006 }, - { 0x33E8, 2009 }, - { 0x33EA, 2012 }, - { 0x33E5, 2015 }, - { 0x33E6, 2018 }, - { 0x33EE, 2021 }, - { 0x33F0, 2024 }, - { 0x33EB, 2027 }, - { 0x33EC, 2030 }, - { 0x33A2, 2033 }, - { 0x339F, 2036 }, - { 0x33A0, 2039 }, - { 0x33AC, 2042 }, - { 0x33AA, 2045 }, - { 0x33A9, 2048 }, - { 0x33A6, 2051 }, - { 0x33A7, 2054 }, - { 0x3356, 2057 }, - { 0x335F, 2060 }, - { 0x335B, 2063 }, - { 0x3363, 2066 }, - { 0x3369, 2069 }, - { 0x33A4, 2072 }, - { 0x33B0, 2075 }, - { 0x33B2, 2078 }, - { 0x33AD, 2081 }, - { 0x33AE, 2084 }, - { 0x33B6, 2087 }, - { 0x33B8, 2090 }, - { 0x33B3, 2093 }, - { 0x33B4, 2096 }, - { 0x32EC, 2099 }, - { 0x32E9, 2102 }, - { 0x32EA, 2105 }, - { 0x32F6, 2108 }, - { 0x32F4, 2111 }, - { 0x3386, 2114 }, - { 0x3391, 2117 }, - { 0x338D, 2120 }, - { 0x3395, 2123 }, - { 0x339B, 2126 }, - { 0x32E7, 2129 }, - { 0x32E5, 2132 }, - { 0x32E2, 2135 }, - { 0x32E3, 2138 }, - { 0x32F3, 2141 }, - { 0x32F0, 2144 }, - { 0x32F1, 2147 }, - { 0x330C, 2150 }, - { 0x3313, 2153 }, - { 0x3305, 2156 }, - { 0x3310, 2159 }, - { 0x3317, 2162 }, - { 0x331B, 2165 }, - { 0x32EE, 2168 }, - { 0x32FA, 2171 }, - { 0x32FC, 2174 }, - { 0x32F7, 2177 }, - { 0x32F8, 2180 }, - { 0x3300, 2183 }, - { 0x3302, 2186 }, - { 0x32FD, 2189 }, - { 0x32FE, 2192 }, - { 0x30FD, 2195 }, - { 0x30FA, 2198 }, - { 0x30FB, 2201 }, - { 0x3108, 2204 }, - { 0x3106, 2207 }, - { 0x30F8, 2210 }, - { 0x30F6, 2213 }, - { 0x30F3, 2216 }, - { 0x30F4, 2219 }, - { 0x3105, 2222 }, - { 0x3102, 2225 }, - { 0x3103, 2228 }, - { 0x3100, 2231 }, - { 0x310C, 2234 }, - { 0x310E, 2237 }, - { 0x3109, 2240 }, - { 0x310A, 2243 }, - { 0x2FE7, 2246 }, - { 0x2FE5, 2249 }, - { 0x30C6, 2252 }, - { 0x30C3, 2255 }, - { 0x30C4, 2258 }, - { 0x30CC, 2261 }, - { 0x30CB, 2264 }, - { 0x30C1, 2267 }, - { 0x30BE, 2270 }, - { 0x30BB, 2273 }, - { 0x30BC, 2276 }, - { 0x30CA, 2279 }, - { 0x30C7, 2282 }, - { 0x30C8, 2285 }, - { 0x30D0, 2288 }, - { 0x30D2, 2291 }, - { 0x30CD, 2294 }, - { 0x30CE, 2297 }, - { 0x30D6, 2300 }, - { 0x30D8, 2303 }, - { 0x30D3, 2306 }, - { 0x30D4, 2309 }, - { 0x325C, 2312 }, - { 0x3259, 2315 }, - { 0x325A, 2318 }, - { 0x3265, 2321 }, - { 0x3263, 2324 }, - { 0x3262, 2327 }, - { 0x3260, 2330 }, - { 0x325E, 2333 }, - { 0x343C, 2336 }, - { 0x3439, 2339 }, - { 0x3436, 2342 }, - { 0x3437, 2345 }, - { 0x3443, 2348 }, - { 0x3440, 2351 }, - { 0x3441, 2354 }, - { 0x343F, 2357 }, - { 0x3447, 2360 }, - { 0x3449, 2363 }, - { 0x3444, 2366 }, - { 0x3445, 2369 }, - { 0x3450, 2372 }, - { 0x344D, 2375 }, - { 0x344A, 2378 }, - { 0x344B, 2381 }, - { 0x3459, 2384 }, - { 0x3456, 2387 }, - { 0x3457, 2390 }, - { 0x3454, 2393 }, - { 0x345D, 2396 }, - { 0x345F, 2399 }, - { 0x345A, 2402 }, - { 0x345B, 2405 }, - { 0x3463, 2408 }, - { 0x3465, 2411 }, - { 0x3460, 2414 }, - { 0x3461, 2417 }, - { 0x3270, 2420 }, - { 0x326D, 2423 }, - { 0x326E, 2426 }, - { 0x327A, 2429 }, - { 0x3278, 2432 }, - { 0x3321, 2435 }, - { 0x332C, 2438 }, - { 0x3328, 2441 }, - { 0x3330, 2444 }, - { 0x3336, 2447 }, - { 0x326B, 2450 }, - { 0x3269, 2453 }, - { 0x3266, 2456 }, - { 0x3267, 2459 }, - { 0x3277, 2462 }, - { 0x3274, 2465 }, - { 0x3275, 2468 }, - { 0x3272, 2471 }, - { 0x327E, 2474 }, - { 0x3280, 2477 }, - { 0x327B, 2480 }, - { 0x327C, 2483 }, - { 0x3284, 2486 }, - { 0x3286, 2489 }, - { 0x3281, 2492 }, - { 0x3282, 2495 }, - { 0x32B3, 2498 }, - { 0x32B9, 2501 }, - { 0x32AB, 2504 }, - { 0x32B6, 2507 }, - { 0x32BC, 2510 }, - { 0x32C2, 2513 }, - { 0x303A, 2516 }, - { 0x3037, 2519 }, - { 0x3038, 2522 }, - { 0x3044, 2525 }, - { 0x3042, 2528 }, - { 0x3035, 2531 }, - { 0x3032, 2534 }, - { 0x302F, 2537 }, - { 0x3030, 2540 }, - { 0x3041, 2543 }, - { 0x303E, 2546 }, - { 0x303F, 2549 }, - { 0x303C, 2552 }, - { 0x3048, 2555 }, - { 0x304A, 2558 }, - { 0x3045, 2561 }, - { 0x3046, 2564 }, - { 0x304E, 2567 }, - { 0x304B, 2570 }, - { 0x304C, 2573 }, - { 0x2FF6, 2576 }, - { 0x2FF3, 2579 }, - { 0x2FF4, 2582 }, - { 0x2FFD, 2585 }, - { 0x2FFB, 2588 }, - { 0x3009, 2591 }, - { 0x300F, 2594 }, - { 0x333D, 2597 }, - { 0x333A, 2600 }, - { 0x333B, 2603 }, - { 0x3349, 2606 }, - { 0x3346, 2609 }, - { 0x3347, 2612 }, - { 0x3345, 2615 }, - { 0x3342, 2618 }, - { 0x3343, 2621 }, - { 0x3340, 2624 }, - { 0x334C, 2627 }, - { 0x334E, 2630 }, - { 0x334A, 2633 }, - { 0x3352, 2636 }, - { 0x3354, 2639 }, - { 0x334F, 2642 }, - { 0x3350, 2645 }, - { 0x328E, 2648 }, - { 0x328B, 2651 }, - { 0x328C, 2654 }, - { 0x3295, 2657 }, - { 0x3293, 2660 }, - { 0x32A1, 2663 }, - { 0x32A7, 2666 }, - { 0x3119, 2669 }, - { 0x3116, 2672 }, - { 0x3117, 2675 }, - { 0x3123, 2678 }, - { 0x3121, 2681 }, - { 0x3114, 2684 }, - { 0x3112, 2687 }, - { 0x310F, 2690 }, - { 0x3110, 2693 }, - { 0x3120, 2696 }, - { 0x311D, 2699 }, - { 0x311E, 2702 }, - { 0x311B, 2705 }, - { 0x3127, 2708 }, - { 0x3129, 2711 }, - { 0x3124, 2714 }, - { 0x3125, 2717 }, - { 0x30DF, 2720 }, - { 0x30DD, 2723 }, - { 0x30E4, 2726 }, - { 0x30F1, 2729 }, - { 0x30B5, 2732 }, - { 0x31F6, 2735 }, - { 0x31F3, 2738 }, - { 0x31F4, 2741 }, - { 0x3202, 2744 }, - { 0x31FF, 2747 }, - { 0x3200, 2750 }, - { 0x31F1, 2753 }, - { 0x31ED, 2756 }, - { 0x31EE, 2759 }, - { 0x31FE, 2762 }, - { 0x31FB, 2765 }, - { 0x31FC, 2768 }, - { 0x31F9, 2771 }, - { 0x3206, 2774 }, - { 0x3208, 2777 }, - { 0x3203, 2780 }, - { 0x3204, 2783 }, - { 0x31BA, 2786 }, - { 0x31B7, 2789 }, - { 0x31B8, 2792 }, - { 0x31C2, 2795 }, - { 0x31BF, 2798 }, - { 0x31C0, 2801 }, - { 0x31CF, 2804 }, - { 0x3248, 2807 }, - { 0x317A, 2810 }, - { 0x3177, 2813 }, - { 0x3178, 2816 }, - { 0x3183, 2819 }, - { 0x3181, 2822 }, - { 0x3175, 2825 }, - { 0x3173, 2828 }, - { 0x3170, 2831 }, - { 0x3171, 2834 }, - { 0x3180, 2837 }, - { 0x317E, 2840 }, - { 0x317C, 2843 }, - { 0x3187, 2846 }, - { 0x3189, 2849 }, - { 0x3184, 2852 }, - { 0x3185, 2855 }, - { 0x318D, 2858 }, - { 0x318F, 2861 }, - { 0x318A, 2864 }, - { 0x318B, 2867 }, - { 0x3074, 2870 }, - { 0x3071, 2873 }, - { 0x3072, 2876 }, - { 0x306F, 2879 }, - { 0x306D, 2882 }, - { 0x306A, 2885 }, - { 0x306B, 2888 }, - { 0x307B, 2891 }, - { 0x3078, 2894 }, - { 0x3079, 2897 }, - { 0x3076, 2900 }, - { 0x307F, 2903 }, - { 0x3081, 2906 }, - { 0x307C, 2909 }, - { 0x307D, 2912 }, - { 0x3084, 2915 }, - { 0x3086, 2918 }, - { 0x3082, 2921 }, - { 0x314C, 2924 }, - { 0x3149, 2927 }, - { 0x314A, 2930 }, - { 0x3154, 2933 }, - { 0x3152, 2936 }, - { 0x3147, 2939 }, - { 0x3144, 2942 }, - { 0x3141, 2945 }, - { 0x3142, 2948 }, - { 0x3151, 2951 }, - { 0x314F, 2954 }, - { 0x3150, 2957 }, - { 0x314E, 2960 }, - { 0x3155, 2963 }, - { 0x3251, 2966 }, - { 0x324E, 2969 }, - { 0x324F, 2972 }, - { 0x322A, 2975 }, - { 0x3227, 2978 }, - { 0x3228, 2981 }, - { 0x3235, 2984 }, - { 0x3233, 2987 }, - { 0x3225, 2990 }, - { 0x3222, 2993 }, - { 0x321F, 2996 }, - { 0x3220, 2999 }, - { 0x3232, 3002 }, - { 0x322F, 3005 }, - { 0x3230, 3008 }, - { 0x322D, 3011 }, - { 0x33C0, 3014 }, - { 0x33BD, 3017 }, - { 0x33BE, 3020 }, - { 0x33F7, 3023 }, - { 0x33F4, 3026 }, - { 0x33F1, 3029 }, - { 0x33F2, 3032 }, - { 0x33FF, 3035 }, - { 0x33FC, 3038 }, - { 0x33FD, 3041 }, - { 0x33FA, 3044 }, - { 0x3403, 3047 }, - { 0x3405, 3050 }, - { 0x3400, 3053 }, - { 0x3401, 3056 }, - { 0x3409, 3059 }, - { 0x3406, 3062 }, - { 0x3407, 3065 }, - { 0x33C4, 3068 }, - { 0x33C1, 3071 }, - { 0x33C2, 3074 }, - { 0x33CD, 3077 }, - { 0x33D3, 3080 }, - { 0x31D7, 3083 }, - { 0x31D5, 3086 }, - { 0x31DE, 3089 }, - { 0x31DC, 3092 }, - { 0x31EB, 3095 }, - { 0x3197, 3098 }, - { 0x3194, 3101 }, - { 0x3195, 3104 }, - { 0x319F, 3107 }, - { 0x319C, 3110 }, - { 0x319D, 3113 }, - { 0x31AB, 3116 }, - { 0x31B1, 3119 }, - { 0x320E, 3122 }, - { 0x320B, 3125 }, - { 0x320C, 3128 }, - { 0x3218, 3131 }, - { 0x3216, 3134 }, - { 0x320A, 3137 }, - { 0x3215, 3140 }, - { 0x3212, 3143 }, - { 0x3213, 3146 }, - { 0x3210, 3149 }, - { 0x321C, 3152 }, - { 0x321E, 3155 }, - { 0x3219, 3158 }, - { 0x321A, 3161 }, - { 0x308D, 3164 }, - { 0x308B, 3167 }, - { 0x3095, 3170 }, - { 0x3092, 3173 }, - { 0x3093, 3176 }, - { 0x30A0, 3179 }, - { 0x3059, 3182 }, - { 0x3056, 3185 }, - { 0x3057, 3188 }, - { 0x3054, 3191 }, - { 0x3052, 3194 }, - { 0x304F, 3197 }, - { 0x3050, 3200 }, - { 0x305D, 3203 }, - { 0x305A, 3206 }, - { 0x305B, 3209 }, - { 0x3061, 3212 }, - { 0x3063, 3215 }, - { 0x305E, 3218 }, - { 0x305F, 3221 }, - { 0x3067, 3224 }, - { 0x3069, 3227 }, - { 0x3064, 3230 }, - { 0x3065, 3233 }, - { 0x3133, 3236 }, - { 0x3130, 3239 }, - { 0x3131, 3242 }, - { 0x313A, 3245 }, - { 0x3138, 3248 }, - { 0x312F, 3251 }, - { 0x312D, 3254 }, - { 0x312A, 3257 }, - { 0x312B, 3260 }, - { 0x3137, 3263 }, - { 0x3134, 3266 }, - { 0x3135, 3269 }, - { 0x313E, 3272 }, - { 0x3140, 3275 }, - { 0x313B, 3278 }, - { 0x313C, 3281 }, - { 0x323C, 3284 }, - { 0x3239, 3287 }, - { 0x323A, 3290 }, - { 0x3246, 3293 }, - { 0x3244, 3296 }, - { 0x3237, 3299 }, - { 0x3243, 3302 }, - { 0x3240, 3305 }, - { 0x3241, 3308 }, - { 0x323F, 3311 }, - { 0x315C, 3314 }, - { 0x315A, 3317 }, - { 0x3410, 3320 }, - { 0x340D, 3323 }, - { 0x340A, 3326 }, - { 0x340B, 3329 }, - { 0x3417, 3332 }, - { 0x3414, 3335 }, - { 0x3415, 3338 }, - { 0x3413, 3341 }, - { 0x341A, 3344 }, - { 0x341C, 3347 }, - { 0x3418, 3350 }, - { 0x3420, 3353 }, - { 0x3422, 3356 }, - { 0x341D, 3359 }, - { 0x341E, 3362 }, - { 0x3370, 3365 }, - { 0x336D, 3368 }, - { 0x336E, 3371 }, - { 0x3377, 3374 }, - { 0x3374, 3377 }, - { 0x3375, 3380 }, - { 0x3373, 3383 }, - { 0x3371, 3386 }, - { 0x337B, 3389 }, - { 0x337D, 3392 }, - { 0x3378, 3395 }, - { 0x3379, 3398 }, - { 0x3381, 3401 }, - { 0x3383, 3404 }, - { 0x337E, 3407 }, - { 0x337F, 3410 }, - { 0x3162, 3413 }, - { 0x3160, 3416 }, - { 0x316E, 3419 }, - { 0x3429, 3422 }, - { 0x3426, 3425 }, - { 0x3423, 3428 }, - { 0x3424, 3431 }, - { 0x3431, 3434 }, - { 0x342E, 3437 }, - { 0x342F, 3440 }, - { 0x342C, 3443 }, - { 0x3435, 3446 }, - { 0x3432, 3449 }, - { 0x3433, 3452 }, - { 0x32D0, 3455 }, - { 0x32CD, 3458 }, - { 0x32CE, 3461 }, - { 0x32D5, 3464 }, - { 0x32CB, 3467 }, - { 0x32C9, 3470 }, - { 0x32C6, 3473 }, - { 0x32C7, 3476 }, - { 0x32D4, 3479 }, - { 0x32D3, 3482 }, - { 0x32D2, 3485 }, - { 0x32D9, 3488 }, - { 0x32DB, 3491 }, - { 0x32D7, 3494 }, - { 0x32DF, 3497 }, - { 0x32E1, 3500 }, - { 0x32DC, 3503 }, - { 0x32DD, 3506 }, - { 0x3017, 3509 }, - { 0x3015, 3512 }, - { 0x301E, 3515 }, - { 0x301C, 3518 }, - { 0x3027, 3521 }, - { 0x302D, 3524 }, - { 0x33DC, 3527 }, - { 0x33D9, 3530 }, - { 0x33DA, 3533 }, - { 0x33E0, 3536 }, - { 0x33DD, 3539 }, - { 0x33DE, 3542 }, - { 0x33E9, 3545 }, - { 0x33EF, 3548 }, - { 0x3355, 3551 }, - { 0x3360, 3554 }, - { 0x335D, 3557 }, - { 0x335E, 3560 }, - { 0x335C, 3563 }, - { 0x3359, 3566 }, - { 0x335A, 3569 }, - { 0x3358, 3572 }, - { 0x3364, 3575 }, - { 0x3366, 3578 }, - { 0x3361, 3581 }, - { 0x3362, 3584 }, - { 0x336A, 3587 }, - { 0x336C, 3590 }, - { 0x3367, 3593 }, - { 0x3368, 3596 }, - { 0x33A5, 3599 }, - { 0x33A3, 3602 }, - { 0x33B1, 3605 }, - { 0x33B7, 3608 }, - { 0x3387, 3611 }, - { 0x3384, 3614 }, - { 0x3385, 3617 }, - { 0x3392, 3620 }, - { 0x338F, 3623 }, - { 0x3390, 3626 }, - { 0x338E, 3629 }, - { 0x338B, 3632 }, - { 0x338C, 3635 }, - { 0x3389, 3638 }, - { 0x3396, 3641 }, - { 0x3398, 3644 }, - { 0x3393, 3647 }, - { 0x3394, 3650 }, - { 0x339C, 3653 }, - { 0x339E, 3656 }, - { 0x3399, 3659 }, - { 0x339A, 3662 }, - { 0x32E8, 3665 }, - { 0x32E6, 3668 }, - { 0x330D, 3671 }, - { 0x330A, 3674 }, - { 0x330B, 3677 }, - { 0x3314, 3680 }, - { 0x3312, 3683 }, - { 0x3308, 3686 }, - { 0x3306, 3689 }, - { 0x3303, 3692 }, - { 0x3304, 3695 }, - { 0x3311, 3698 }, - { 0x330E, 3701 }, - { 0x330F, 3704 }, - { 0x3318, 3707 }, - { 0x3315, 3710 }, - { 0x3316, 3713 }, - { 0x331C, 3716 }, - { 0x331E, 3719 }, - { 0x3319, 3722 }, - { 0x331A, 3725 }, - { 0x32EF, 3728 }, - { 0x32ED, 3731 }, - { 0x32FB, 3734 }, - { 0x3301, 3737 }, - { 0x30F9, 3740 }, - { 0x30F7, 3743 }, - { 0x3101, 3746 }, - { 0x30FE, 3749 }, - { 0x30FF, 3752 }, - { 0x310D, 3755 }, - { 0x30C2, 3758 }, - { 0x30BF, 3761 }, - { 0x30C0, 3764 }, - { 0x30D1, 3767 }, - { 0x30D7, 3770 }, - { 0x325F, 3773 }, - { 0x325D, 3776 }, - { 0x343D, 3779 }, - { 0x343A, 3782 }, - { 0x343B, 3785 }, - { 0x343E, 3788 }, - { 0x3448, 3791 }, - { 0x3451, 3794 }, - { 0x344E, 3797 }, - { 0x344F, 3800 }, - { 0x3455, 3803 }, - { 0x3452, 3806 }, - { 0x3453, 3809 }, - { 0x345E, 3812 }, - { 0x3464, 3815 }, - { 0x3322, 3818 }, - { 0x331F, 3821 }, - { 0x3320, 3824 }, - { 0x332D, 3827 }, - { 0x332A, 3830 }, - { 0x332B, 3833 }, - { 0x3329, 3836 }, - { 0x3326, 3839 }, - { 0x3327, 3842 }, - { 0x3324, 3845 }, - { 0x3331, 3848 }, - { 0x3333, 3851 }, - { 0x332E, 3854 }, - { 0x332F, 3857 }, - { 0x3337, 3860 }, - { 0x3339, 3863 }, - { 0x3334, 3866 }, - { 0x3335, 3869 }, - { 0x326C, 3872 }, - { 0x326A, 3875 }, - { 0x3273, 3878 }, - { 0x3271, 3881 }, - { 0x327F, 3884 }, - { 0x3285, 3887 }, - { 0x32B4, 3890 }, - { 0x32B1, 3893 }, - { 0x32B2, 3896 }, - { 0x32BA, 3899 }, - { 0x32B8, 3902 }, - { 0x32AF, 3905 }, - { 0x32AC, 3908 }, - { 0x32A9, 3911 }, - { 0x32AA, 3914 }, - { 0x32B7, 3917 }, - { 0x32B5, 3920 }, - { 0x32BD, 3923 }, - { 0x32BF, 3926 }, - { 0x32BB, 3929 }, - { 0x32C3, 3932 }, - { 0x32C5, 3935 }, - { 0x32C0, 3938 }, - { 0x32C1, 3941 }, - { 0x3036, 3944 }, - { 0x3033, 3947 }, - { 0x3034, 3950 }, - { 0x303D, 3953 }, - { 0x303B, 3956 }, - { 0x3049, 3959 }, - { 0x3341, 3962 }, - { 0x333E, 3965 }, - { 0x333F, 3968 }, - { 0x334D, 3971 }, - { 0x3353, 3974 }, - { 0x3115, 3977 }, - { 0x3113, 3980 }, - { 0x311C, 3983 }, - { 0x311A, 3986 }, - { 0x3128, 3989 }, - { 0x31F2, 3992 }, - { 0x31F0, 3995 }, - { 0x31FA, 3998 }, - { 0x31F7, 4001 }, - { 0x31F8, 4004 }, - { 0x3207, 4007 }, - { 0x3176, 4010 }, - { 0x3174, 4013 }, - { 0x317D, 4016 }, - { 0x317B, 4019 }, - { 0x3188, 4022 }, - { 0x318E, 4025 }, - { 0x3070, 4028 }, - { 0x306E, 4031 }, - { 0x3077, 4034 }, - { 0x3075, 4037 }, - { 0x3080, 4040 }, - { 0x3085, 4043 }, - { 0x3148, 4046 }, - { 0x3145, 4049 }, - { 0x3146, 4052 }, - { 0x314D, 4055 }, - { 0x3226, 4058 }, - { 0x3223, 4061 }, - { 0x3224, 4064 }, - { 0x322E, 4067 }, - { 0x322B, 4070 }, - { 0x322C, 4073 }, - { 0x33F8, 4076 }, - { 0x33F5, 4079 }, - { 0x33F6, 4082 }, - { 0x33FB, 4085 }, - { 0x33F9, 4088 }, - { 0x3404, 4091 }, - { 0x3209, 4094 }, - { 0x3211, 4097 }, - { 0x320F, 4100 }, - { 0x321D, 4103 }, - { 0x3055, 4106 }, - { 0x3053, 4109 }, - { 0x3062, 4112 }, - { 0x3068, 4115 }, - { 0x312E, 4118 }, - { 0x313F, 4121 }, - { 0x3238, 4124 }, - { 0x3236, 4127 }, - { 0x323D, 4130 }, - { 0x323E, 4133 }, - { 0x3411, 4136 }, - { 0x340E, 4139 }, - { 0x340F, 4142 }, - { 0x3412, 4145 }, - { 0x341B, 4148 }, - { 0x3421, 4151 }, - { 0x337C, 4154 }, - { 0x3382, 4157 }, - { 0x342A, 4160 }, - { 0x3427, 4163 }, - { 0x3428, 4166 }, - { 0x342D, 4169 }, - { 0x342B, 4172 }, - { 0x32CC, 4175 }, - { 0x32CA, 4178 }, - { 0x32D1, 4181 }, - { 0x32DA, 4184 }, - { 0x32E0, 4187 }, - { 0x3357, 4190 }, - { 0x3365, 4193 }, - { 0x336B, 4196 }, - { 0x338A, 4199 }, - { 0x3388, 4202 }, - { 0x3397, 4205 }, - { 0x339D, 4208 }, - { 0x3309, 4211 }, - { 0x3307, 4214 }, - { 0x331D, 4217 }, - { 0x3325, 4220 }, - { 0x3323, 4223 }, - { 0x3332, 4226 }, - { 0x3338, 4229 }, - { 0x32B0, 4232 }, - { 0x32AD, 4235 }, - { 0x32AE, 4238 }, - { 0x32BE, 4241 }, - { 0x32C4, 4244 }, - { 0x2FEE, 4247 }, - { 0x2258, 4251 }, - { 0x1EA3, 4253 }, - { 0x1F85, 4256 }, - { 0x05B5, 4258 }, - { 0x23FD, 4259 }, - { 0x8FCF, 4262 }, - { 0x1FB4, 4263 }, - { 0x1FAC, 4269 }, - { 0x1FA8, 4275 }, - { 0x1FB8, 4281 }, - { 0x1FC9, 4287 }, - { 0x1FA9, 4293 }, - { 0x1FC2, 4298 }, - { 0x1FB9, 4303 }, - { 0x1FB2, 4308 }, - { 0x1FBB, 4313 }, - { 0x1FCB, 4318 }, - { 0x1FBD, 4322 }, - { 0x1FA5, 4328 }, - { 0x1FA1, 4334 }, - { 0x1FC8, 4340 }, - { 0x1FCA, 4346 }, - { 0x1FCF, 4350 }, - { 0x1FBE, 4355 }, - { 0x1FEC, 4361 }, - { 0x1FAA, 4365 }, - { 0x1FAB, 4371 }, - { 0x1F92, 4376 }, - { 0x1FC6, 4381 }, - { 0x1FA3, 4387 }, - { 0x1FB7, 4393 }, - { 0x1FA4, 4398 }, - { 0x1F8F, 4403 }, - { 0x1F98, 4408 }, - { 0x1F93, 4413 }, - { 0x1F90, 4418 }, - { 0x1F91, 4423 }, - { 0x1FA7, 4428 }, - { 0x1FC7, 4434 }, - { 0x1F99, 4439 }, - { 0x1FAE, 4444 }, - { 0x1F9E, 4450 }, - { 0x1F9A, 4456 }, - { 0x1F9F, 4461 }, - { 0x1F9B, 4467 }, - { 0x1FBA, 4472 }, - { 0x1FD1, 4477 }, - { 0x1FCD, 4481 }, - { 0x1FC1, 4486 }, - { 0x1FA2, 4491 }, - { 0x1FB0, 4496 }, - { 0x1FCC, 4501 }, - { 0x1FD0, 4505 }, - { 0x1FB5, 4510 }, - { 0x1FAF, 4515 }, - { 0x1F96, 4520 }, - { 0x1FC4, 4525 }, - { 0x1FBF, 4530 }, - { 0x1FC3, 4535 }, - { 0x1F95, 4539 }, - { 0x1FB6, 4544 }, - { 0x1F94, 4549 }, - { 0x1FB3, 4554 }, - { 0x1FA0, 4559 }, - { 0x1FBC, 4564 }, - { 0x1F8D, 4569 }, - { 0x1F8E, 4573 }, - { 0x1FB1, 4578 }, - { 0x1FCE, 4583 }, - { 0x1FA6, 4588 }, - { 0x1F97, 4593 }, - { 0x1FAD, 4598 }, - { 0x1F9C, 4603 }, - { 0x1FC5, 4608 }, - { 0x1F9D, 4613 }, - { 0x1FC0, 4618 }, - { 0x1F69, 4623 }, - { 0x95AB, 4624 }, - { 0x952A, 4625 }, - { 0x907D, 4628 }, - { 0x94B5, 4630 }, - { 0x9282, 4631 }, - { 0x1D91, 4632 }, - { 0x2625, 4634 }, - { 0x2624, 4637 }, - { 0x3EF9, 4639 }, - { 0x8FAC, 4640 }, - { 0x216C, 4643 }, - { 0x2152, 4651 }, - { 0x2146, 4659 }, - { 0x214A, 4666 }, - { 0x2142, 4674 }, - { 0x2164, 4681 }, - { 0x2174, 4688 }, - { 0x2156, 4696 }, - { 0x2145, 4704 }, - { 0x214E, 4711 }, - { 0x2141, 4719 }, - { 0x2163, 4726 }, - { 0x2188, 4733 }, - { 0x2185, 4740 }, - { 0x2194, 4747 }, - { 0x2187, 4754 }, - { 0x2184, 4761 }, - { 0x2193, 4768 }, - { 0x216D, 4775 }, - { 0x2153, 4783 }, - { 0x213E, 4791 }, - { 0x214B, 4798 }, - { 0x213A, 4806 }, - { 0x215C, 4813 }, - { 0x2173, 4820 }, - { 0x2155, 4828 }, - { 0x213D, 4836 }, - { 0x214D, 4843 }, - { 0x2139, 4851 }, - { 0x215B, 4858 }, - { 0x2182, 4865 }, - { 0x217F, 4872 }, - { 0x2191, 4879 }, - { 0x2181, 4886 }, - { 0x217E, 4893 }, - { 0x2190, 4900 }, - { 0x216F, 4907 }, - { 0x2171, 4916 }, - { 0x2161, 4925 }, - { 0x2159, 4933 }, - { 0x2169, 4941 }, - { 0x2166, 4949 }, - { 0x215E, 4957 }, - { 0x2176, 4965 }, - { 0x21A5, 4973 }, - { 0x2147, 4977 }, - { 0x21AB, 4983 }, - { 0x2143, 4990 }, - { 0x2167, 4996 }, - { 0x21A7, 5002 }, - { 0x213F, 5006 }, - { 0x213B, 5012 }, - { 0x215F, 5018 }, - { 0x21A4, 5024 }, - { 0x21AA, 5028 }, - { 0x21A6, 5035 }, - { 0x217B, 5039 }, - { 0x2179, 5045 }, - { 0x2133, 5051 }, - { 0x2131, 5057 }, - { 0x212F, 5063 }, - { 0x2157, 5067 }, - { 0x214F, 5073 }, - { 0x2177, 5079 }, - { 0x2137, 5085 }, - { 0x2135, 5091 }, - { 0x212D, 5097 }, - { 0x21A1, 5101 }, - { 0x2144, 5105 }, - { 0x21A9, 5111 }, - { 0x2140, 5118 }, - { 0x2160, 5124 }, - { 0x219B, 5130 }, - { 0x219C, 5137 }, - { 0x219A, 5144 }, - { 0x2199, 5151 }, - { 0x7C64, 5158 }, - { 0x21A3, 5165 }, - { 0x213C, 5169 }, - { 0x2138, 5175 }, - { 0x2158, 5181 }, - { 0x21A0, 5187 }, - { 0x21A8, 5191 }, - { 0x21A2, 5198 }, - { 0x7C65, 5202 }, - { 0x217A, 5209 }, - { 0x2178, 5215 }, - { 0x2132, 5221 }, - { 0x2130, 5227 }, - { 0x219F, 5233 }, - { 0x96DF, 5238 }, - { 0x96DB, 5250 }, - { 0x219E, 5262 }, - { 0x96D5, 5271 }, - { 0x96DD, 5280 }, - { 0x96D3, 5292 }, - { 0x96E0, 5301 }, - { 0x96DC, 5313 }, - { 0x96D9, 5325 }, - { 0x219D, 5337 }, - { 0x96D7, 5346 }, - { 0x96D2, 5355 }, - { 0x96DE, 5364 }, - { 0x96DA, 5376 }, - { 0x96D8, 5388 }, - { 0x96D6, 5397 }, - { 0x96A1, 5406 }, - { 0x96A5, 5415 }, - { 0x96AC, 5427 }, - { 0x96A9, 5442 }, - { 0x96A2, 5457 }, - { 0x96A6, 5466 }, - { 0x96AB, 5478 }, - { 0x96AA, 5493 }, - { 0x96D4, 5508 }, - { 0x96A3, 5517 }, - { 0x96A7, 5526 }, - { 0x96A8, 5538 }, - { 0x96AD, 5550 }, - { 0x96D1, 5565 }, - { 0x96A4, 5574 }, - { 0x96AE, 5583 }, - { 0x96AF, 5598 }, - { 0x212E, 5603 }, - { 0x7E59, 5607 }, - { 0x7E57, 5614 }, - { 0x2150, 5621 }, - { 0x2148, 5627 }, - { 0x7E5A, 5633 }, - { 0x7E58, 5640 }, - { 0x2168, 5647 }, - { 0x2136, 5653 }, - { 0x2134, 5659 }, - { 0x212C, 5665 }, - { 0x7C63, 5669 }, - { 0x7C62, 5676 }, - { 0x96B0, 5683 }, - { 0x2170, 5690 }, - { 0x2172, 5699 }, - { 0x2162, 5708 }, - { 0x215A, 5716 }, - { 0x216A, 5724 }, - { 0x2165, 5732 }, - { 0x215D, 5740 }, - { 0x2175, 5748 }, - { 0x2189, 5756 }, - { 0x2186, 5762 }, - { 0x2195, 5768 }, - { 0x2183, 5774 }, - { 0x2180, 5780 }, - { 0x2192, 5786 }, - { 0x7E4A, 5792 }, - { 0x7C67, 5804 }, - { 0x7E4B, 5813 }, - { 0x7C66, 5825 }, - { 0x217D, 5834 }, - { 0x218F, 5838 }, - { 0x218C, 5844 }, - { 0x2198, 5850 }, - { 0x217C, 5856 }, - { 0x2154, 5860 }, - { 0x214C, 5867 }, - { 0x216E, 5874 }, - { 0x2151, 5881 }, - { 0x2149, 5888 }, - { 0x216B, 5895 }, - { 0x218E, 5902 }, - { 0x218B, 5909 }, - { 0x2197, 5916 }, - { 0x218D, 5923 }, - { 0x218A, 5930 }, - { 0x2196, 5937 }, - { 0x9019, 5944 }, - { 0x8FCE, 5945 }, - { 0x923F, 5946 }, - { 0x9242, 5947 }, - { 0x22FC, 5949 }, - { 0x8FBB, 5951 }, - { 0x8FE4, 5952 }, - { 0x91EF, 5954 }, - { 0x91EC, 5959 }, - { 0x030E, 5965 }, - { 0x2253, 5966 }, - { 0x2D77, 5968 }, - { 0x2D73, 5971 }, - { 0x2D72, 5974 }, - { 0x2D75, 5977 }, - { 0x2D86, 5980 }, - { 0x2D74, 5983 }, - { 0x2D63, 5986 }, - { 0x2D79, 5989 }, - { 0x2D6A, 5992 }, - { 0x2D78, 5995 }, - { 0x2D7E, 5998 }, - { 0x2D85, 6001 }, - { 0x2D7F, 6004 }, - { 0x2D7D, 6007 }, - { 0x2D76, 6010 }, - { 0x2D7C, 6013 }, - { 0x2D67, 6016 }, - { 0x2D7A, 6019 }, - { 0x2D80, 6022 }, - { 0x2D64, 6025 }, - { 0x2D65, 6028 }, - { 0x2D66, 6031 }, - { 0x2D87, 6034 }, - { 0x2D69, 6037 }, - { 0x2D6D, 6040 }, - { 0x2D70, 6043 }, - { 0x2D68, 6046 }, - { 0x2D82, 6049 }, - { 0x2D7B, 6052 }, - { 0x2D88, 6055 }, - { 0x2D81, 6058 }, - { 0x2D6F, 6061 }, - { 0x2D83, 6064 }, - { 0x2D6B, 6067 }, - { 0x2D6E, 6070 }, - { 0x2D71, 6073 }, - { 0x2D6C, 6076 }, - { 0x2D84, 6079 }, - { 0x2A5A, 6082 }, - { 0x2A7A, 6085 }, - { 0x2A7B, 6088 }, - { 0x2AB0, 6091 }, - { 0x2AB1, 6095 }, - { 0x2AB2, 6099 }, - { 0x2A8B, 6103 }, - { 0x2A7E, 6106 }, - { 0x2A84, 6109 }, - { 0x2A85, 6113 }, - { 0x2A87, 6117 }, - { 0x2A86, 6121 }, - { 0x2A8C, 6125 }, - { 0x2A77, 6128 }, - { 0x2A78, 6132 }, - { 0x2A8A, 6136 }, - { 0x2A6D, 6139 }, - { 0x2A6F, 6142 }, - { 0x2AAB, 6145 }, - { 0x2A7D, 6148 }, - { 0x2AB6, 6153 }, - { 0x2AA2, 6156 }, - { 0x2A76, 6159 }, - { 0x2A9D, 6162 }, - { 0x2A6C, 6165 }, - { 0x2AB4, 6168 }, - { 0x2A9A, 6171 }, - { 0x2A7C, 6174 }, - { 0x2A62, 6177 }, - { 0x2A63, 6181 }, - { 0x2A65, 6185 }, - { 0x2A64, 6189 }, - { 0x2AA4, 6193 }, - { 0x2AA5, 6197 }, - { 0x2A8F, 6201 }, - { 0x2A88, 6204 }, - { 0x2A70, 6207 }, - { 0x2AAA, 6210 }, - { 0x2A5F, 6213 }, - { 0x2A82, 6216 }, - { 0x2AA0, 6219 }, - { 0x2AA1, 6223 }, - { 0x2A96, 6227 }, - { 0x2A97, 6231 }, - { 0x2A8D, 6235 }, - { 0x2A8E, 6239 }, - { 0x2A6E, 6243 }, - { 0x2A55, 6246 }, - { 0x2A71, 6249 }, - { 0x2AB7, 6252 }, - { 0x2A91, 6255 }, - { 0x2A92, 6259 }, - { 0x2A93, 6263 }, - { 0x2A6A, 6267 }, - { 0x2A6B, 6271 }, - { 0x2A5C, 6275 }, - { 0x2A5D, 6279 }, - { 0x2AA8, 6283 }, - { 0x2AA9, 6287 }, - { 0x2A89, 6291 }, - { 0x2A60, 6294 }, - { 0x2A61, 6298 }, - { 0x2A66, 6302 }, - { 0x2A68, 6305 }, - { 0x2A69, 6309 }, - { 0x2A5B, 6313 }, - { 0x2A94, 6316 }, - { 0x2A74, 6319 }, - { 0x2A75, 6323 }, - { 0x2A81, 6327 }, - { 0x2A90, 6330 }, - { 0x2A72, 6333 }, - { 0x2A59, 6336 }, - { 0x2A54, 6339 }, - { 0x2A56, 6342 }, - { 0x2A57, 6346 }, - { 0x2A58, 6350 }, - { 0x2A7F, 6354 }, - { 0x2A80, 6358 }, - { 0x2A67, 6362 }, - { 0x2AC4, 6365 }, - { 0x2A95, 6368 }, - { 0x2A73, 6371 }, - { 0x2A5E, 6374 }, - { 0x2A79, 6377 }, - { 0x2A99, 6383 }, - { 0x2A9F, 6387 }, - { 0x2ABB, 6391 }, - { 0x2ABC, 6395 }, - { 0x2AB3, 6399 }, - { 0x2AAF, 6403 }, - { 0x2A98, 6407 }, - { 0x2AB9, 6411 }, - { 0x2A9E, 6415 }, - { 0x2ABF, 6419 }, - { 0x2AB8, 6423 }, - { 0x2ABD, 6427 }, - { 0x2AA7, 6431 }, - { 0x2AA3, 6435 }, - { 0x2AAD, 6439 }, - { 0x2AA6, 6443 }, - { 0x2ABA, 6447 }, - { 0x2A83, 6451 }, - { 0x2AAE, 6455 }, - { 0x2AB5, 6459 }, - { 0x2A9C, 6463 }, - { 0x2AC1, 6467 }, - { 0x2AC3, 6471 }, - { 0x2A9B, 6475 }, - { 0x2AAC, 6479 }, - { 0x2AC6, 6484 }, - { 0x2ABE, 6488 }, - { 0x2AC0, 6492 }, - { 0x2AC2, 6496 }, - { 0x2AC5, 6500 }, - { 0x3B63, 6504 }, - { 0x3B64, 6507 }, - { 0x3B65, 6510 }, - { 0x3B66, 6513 }, - { 0x3B67, 6516 }, - { 0x8FB7, 6519 }, - { 0x8FE1, 6520 }, - { 0x232A, 6522 }, - { 0x9492, 6526 }, - { 0x9497, 6529 }, - { 0x22AC, 6532 }, - { 0x22AD, 6534 }, - { 0x22AE, 6536 }, - { 0x22AF, 6538 }, - { 0x22B0, 6540 }, - { 0x22B1, 6542 }, - { 0x951A, 6544 }, - { 0x8FC8, 6547 }, - { 0x8FE9, 6548 }, - { 0x1E6B, 6550 }, - { 0x0298, 6552 }, - { 0x1E8F, 6554 }, - { 0x1F1C, 6556 }, - { 0x9073, 6558 }, - { 0x8FF5, 6559 }, - { 0x8EF1, 6560 }, - { 0x8EF0, 6563 }, - { 0x94E9, 6566 }, - { 0x9488, 6570 }, - { 0x950B, 6571 }, - { 0x1E65, 6572 }, - { 0x90CD, 6575 }, - { 0x8FF4, 6580 }, - { 0x916A, 6581 }, - { 0x9093, 6583 }, - { 0x95C8, 6585 }, - { 0x8EDE, 6586 }, - { 0x1E57, 6587 }, - { 0x94B8, 6589 }, - { 0x1CE7, 6591 }, - { 0x9041, 6592 }, - { 0x8EE0, 6594 }, - { 0x8EE9, 6596 }, - { 0x2294, 6598 }, - { 0x2241, 6600 }, - { 0x9289, 6602 }, - { 0x94F8, 6603 }, - { 0x8F1B, 6605 }, - { 0x2324, 6607 }, - { 0x8F85, 6609 }, - { 0x9032, 6614 }, - { 0x95EA, 6615 }, - { 0x90C4, 6616 }, - { 0x1D26, 6617 }, - { 0x94AA, 6619 }, - { 0x0CDA, 6621 }, - { 0x0CD9, 6624 }, - { 0x0CC7, 6627 }, - { 0x0CBE, 6630 }, - { 0x0CC8, 6634 }, - { 0x0CCA, 6638 }, - { 0x0CC9, 6642 }, - { 0x0CCB, 6646 }, - { 0x0CD0, 6650 }, - { 0x0CD5, 6653 }, - { 0x0CD1, 6656 }, - { 0x0CD4, 6659 }, - { 0x0CD3, 6662 }, - { 0x0CD8, 6665 }, - { 0x0CCF, 6668 }, - { 0x0CD7, 6671 }, - { 0x0CD6, 6674 }, - { 0x0CD2, 6677 }, - { 0x0CB4, 6680 }, - { 0x0CC2, 6684 }, - { 0x0CB8, 6688 }, - { 0x0CC4, 6692 }, - { 0x0CBC, 6696 }, - { 0x0CBA, 6700 }, - { 0x0CB6, 6704 }, - { 0x0CC6, 6708 }, - { 0x0CB7, 6712 }, - { 0x0CC5, 6716 }, - { 0x0CC3, 6720 }, - { 0x0CB9, 6724 }, - { 0x0CBD, 6728 }, - { 0x0CBB, 6732 }, - { 0x0CB5, 6736 }, - { 0x0CBF, 6741 }, - { 0x0CB1, 6746 }, - { 0x0CA0, 6749 }, - { 0x0C8F, 6752 }, - { 0x0C9A, 6755 }, - { 0x0CA5, 6758 }, - { 0x0CA3, 6762 }, - { 0x0CA3, 6766 }, - { 0x0CA5, 6770 }, - { 0x0CB2, 6774 }, - { 0x0CAF, 6778 }, - { 0x0C8A, 6782 }, - { 0x0CAA, 6785 }, - { 0x0CA9, 6788 }, - { 0x0CAA, 6792 }, - { 0x0CA7, 6796 }, - { 0x0C9F, 6799 }, - { 0x0CA1, 6802 }, - { 0x0CA9, 6805 }, - { 0x0C91, 6808 }, - { 0x0CAE, 6812 }, - { 0x0C9B, 6816 }, - { 0x0CAB, 6819 }, - { 0x0CA8, 6822 }, - { 0x0C8C, 6825 }, - { 0x0C8B, 6829 }, - { 0x0C8E, 6833 }, - { 0x0C93, 6836 }, - { 0x0CA4, 6839 }, - { 0x0CA2, 6843 }, - { 0x0C9D, 6847 }, - { 0x0C9C, 6851 }, - { 0x0CDB, 6855 }, - { 0x0CDC, 6859 }, - { 0x0CA6, 6863 }, - { 0x0C90, 6867 }, - { 0x0C97, 6871 }, - { 0x0C9E, 6875 }, - { 0x0C8D, 6879 }, - { 0x0C92, 6883 }, - { 0x0CB0, 6887 }, - { 0x0C99, 6891 }, - { 0x0C94, 6895 }, - { 0x0C95, 6899 }, - { 0x0C98, 6903 }, - { 0x0C96, 6907 }, - { 0x0CAC, 6911 }, - { 0x0CAD, 6915 }, - { 0x0CB3, 6919 }, - { 0x0CCE, 6921 }, - { 0x0CCD, 6923 }, - { 0x0CC0, 6925 }, - { 0x0CC1, 6929 }, - { 0x0CCC, 6933 }, - { 0x94E3, 6936 }, - { 0x2278, 6937 }, - { 0x931D, 6938 }, - { 0x003F, 6941 }, - { 0x2BCC, 6943 }, - { 0x2A3D, 6948 }, - { 0x2A3E, 6950 }, - { 0x95C3, 6954 }, - { 0x1CCE, 6956 }, - { 0x90B8, 6958 }, - { 0x1CAA, 6961 }, - { 0x1CE5, 6962 }, - { 0x1C8E, 6963 }, - { 0x1CAD, 6964 }, - { 0x901B, 6965 }, - { 0x9463, 6966 }, - { 0x9127, 6969 }, - { 0x901E, 6974 }, - { 0x9025, 6979 }, - { 0x9026, 6984 }, - { 0x912D, 6987 }, - { 0x231B, 6989 }, - { 0x71E9, 6993 }, - { 0x71E0, 6995 }, - { 0x71E5, 6998 }, - { 0x71E1, 7001 }, - { 0x71E4, 7004 }, - { 0x71E3, 7007 }, - { 0x71E8, 7010 }, - { 0x71DF, 7013 }, - { 0x71E7, 7016 }, - { 0x71E6, 7019 }, - { 0x71E2, 7022 }, - { 0x71EA, 7025 }, - { 0x71C6, 7028 }, - { 0x71D8, 7031 }, - { 0x71D2, 7034 }, - { 0x71C4, 7037 }, - { 0x71C5, 7040 }, - { 0x71D6, 7043 }, - { 0x71D9, 7046 }, - { 0x71DB, 7049 }, - { 0x71CD, 7052 }, - { 0x71D1, 7055 }, - { 0x71D0, 7058 }, - { 0x71DD, 7061 }, - { 0x71D3, 7064 }, - { 0x71C0, 7067 }, - { 0x71D7, 7070 }, - { 0x71C2, 7073 }, - { 0x71CB, 7076 }, - { 0x71CA, 7079 }, - { 0x71DC, 7082 }, - { 0x71C9, 7085 }, - { 0x71DA, 7088 }, - { 0x71C3, 7091 }, - { 0x71C1, 7094 }, - { 0x71CF, 7097 }, - { 0x71C7, 7100 }, - { 0x71D4, 7103 }, - { 0x71DE, 7106 }, - { 0x71C8, 7109 }, - { 0x71CE, 7112 }, - { 0x71D5, 7115 }, - { 0x71CC, 7118 }, - { 0x154E, 7121 }, - { 0x8A38, 7122 }, - { 0x8A35, 7126 }, - { 0x8A36, 7130 }, - { 0x8A39, 7134 }, - { 0x8A37, 7138 }, - { 0x8A3B, 7142 }, - { 0x8A40, 7146 }, - { 0x8A3C, 7150 }, - { 0x8A3F, 7154 }, - { 0x8A3E, 7158 }, - { 0x8A43, 7162 }, - { 0x8A3A, 7166 }, - { 0x8A42, 7170 }, - { 0x8A41, 7174 }, - { 0x8A3D, 7178 }, - { 0x8A1F, 7182 }, - { 0x8A2E, 7186 }, - { 0x8A24, 7190 }, - { 0x8A1A, 7194 }, - { 0x8A29, 7198 }, - { 0x8A21, 7202 }, - { 0x8A23, 7206 }, - { 0x8A20, 7210 }, - { 0x8A30, 7214 }, - { 0x8A31, 7218 }, - { 0x8A32, 7222 }, - { 0x8A28, 7226 }, - { 0x8A25, 7230 }, - { 0x8A27, 7234 }, - { 0x8A1C, 7238 }, - { 0x8A1B, 7242 }, - { 0x8A1D, 7246 }, - { 0x8A2A, 7250 }, - { 0x8A2B, 7254 }, - { 0x8A2C, 7258 }, - { 0x8A2D, 7262 }, - { 0x8A22, 7266 }, - { 0x8A34, 7270 }, - { 0x8A2F, 7274 }, - { 0x8A33, 7278 }, - { 0x8A26, 7282 }, - { 0x8A1E, 7286 }, - { 0x16DC, 7290 }, - { 0x16DD, 7295 }, - { 0x16DB, 7300 }, - { 0x16CF, 7306 }, - { 0x16D0, 7311 }, - { 0x16D2, 7316 }, - { 0x16D7, 7321 }, - { 0x16D3, 7326 }, - { 0x16D6, 7331 }, - { 0x16D5, 7336 }, - { 0x16DA, 7341 }, - { 0x16D1, 7346 }, - { 0x16D9, 7351 }, - { 0x16D8, 7356 }, - { 0x16D4, 7361 }, - { 0x16BC, 7366 }, - { 0x16BE, 7372 }, - { 0x16BA, 7378 }, - { 0x16B8, 7384 }, - { 0x16BD, 7390 }, - { 0x16C1, 7396 }, - { 0x16B9, 7402 }, - { 0x16C7, 7408 }, - { 0x16BF, 7414 }, - { 0x16C4, 7420 }, - { 0x16C0, 7426 }, - { 0x16BB, 7432 }, - { 0x16C3, 7438 }, - { 0x16C2, 7444 }, - { 0x16C5, 7450 }, - { 0x16C6, 7456 }, - { 0x16B7, 7462 }, - { 0x16B0, 7469 }, - { 0x16AF, 7475 }, - { 0x16A8, 7481 }, - { 0x16AE, 7487 }, - { 0x1690, 7493 }, - { 0x16AA, 7499 }, - { 0x16A4, 7505 }, - { 0x169E, 7511 }, - { 0x16A2, 7517 }, - { 0x168C, 7523 }, - { 0x1697, 7529 }, - { 0x169C, 7535 }, - { 0x16A9, 7541 }, - { 0x1691, 7547 }, - { 0x1698, 7553 }, - { 0x16B3, 7559 }, - { 0x1692, 7565 }, - { 0x16A3, 7571 }, - { 0x16B6, 7577 }, - { 0x169D, 7583 }, - { 0x1696, 7589 }, - { 0x16B4, 7595 }, - { 0x16AD, 7601 }, - { 0x16AC, 7607 }, - { 0x16A5, 7613 }, - { 0x16AB, 7619 }, - { 0x168D, 7625 }, - { 0x16A7, 7631 }, - { 0x16A1, 7637 }, - { 0x169B, 7643 }, - { 0x169F, 7649 }, - { 0x168B, 7655 }, - { 0x1694, 7661 }, - { 0x1699, 7667 }, - { 0x16A6, 7673 }, - { 0x168E, 7679 }, - { 0x1695, 7685 }, - { 0x16B1, 7691 }, - { 0x168F, 7697 }, - { 0x16A0, 7703 }, - { 0x16B5, 7709 }, - { 0x169A, 7715 }, - { 0x1693, 7721 }, - { 0x16B2, 7727 }, - { 0x16CE, 7733 }, - { 0x16CD, 7739 }, - { 0x16CC, 7745 }, - { 0x16CB, 7751 }, - { 0x16CA, 7757 }, - { 0x16C8, 7763 }, - { 0x16C9, 7769 }, - { 0x8ECD, 7775 }, - { 0x8EC4, 7779 }, - { 0x1D23, 7782 }, - { 0x077D, 7785 }, - { 0x077C, 7789 }, - { 0x0780, 7793 }, - { 0x0749, 7795 }, - { 0x074E, 7798 }, - { 0x074A, 7801 }, - { 0x074D, 7804 }, - { 0x074C, 7807 }, - { 0x0751, 7810 }, - { 0x0748, 7813 }, - { 0x0750, 7816 }, - { 0x074F, 7819 }, - { 0x074B, 7822 }, - { 0x0785, 7825 }, - { 0x0784, 7828 }, - { 0x0752, 7831 }, - { 0x0755, 7834 }, - { 0x0754, 7837 }, - { 0x075A, 7840 }, - { 0x0758, 7843 }, - { 0x0756, 7846 }, - { 0x075B, 7849 }, - { 0x0760, 7852 }, - { 0x0753, 7855 }, - { 0x0765, 7858 }, - { 0x076C, 7861 }, - { 0x075E, 7864 }, - { 0x0766, 7867 }, - { 0x0767, 7870 }, - { 0x0769, 7873 }, - { 0x076B, 7876 }, - { 0x0768, 7879 }, - { 0x0757, 7883 }, - { 0x075C, 7886 }, - { 0x0761, 7889 }, - { 0x0763, 7892 }, - { 0x075D, 7895 }, - { 0x076D, 7898 }, - { 0x076E, 7901 }, - { 0x075F, 7904 }, - { 0x0764, 7907 }, - { 0x076A, 7910 }, - { 0x076F, 7913 }, - { 0x0762, 7917 }, - { 0x0770, 7920 }, - { 0x0772, 7924 }, - { 0x0771, 7928 }, - { 0x0759, 7932 }, - { 0x077E, 7935 }, - { 0x077F, 7939 }, - { 0x0778, 7942 }, - { 0x0777, 7947 }, - { 0x0779, 7952 }, - { 0x0776, 7957 }, - { 0x0774, 7962 }, - { 0x0773, 7967 }, - { 0x0775, 7972 }, - { 0x077B, 7977 }, - { 0x077A, 7982 }, - { 0x0783, 7986 }, - { 0x0782, 7988 }, - { 0x0781, 7990 }, - { 0x1F14, 7993 }, - { 0x1EDB, 7994 }, - { 0x1EDC, 7998 }, - { 0x1E60, 8002 }, - { 0x006B, 8006 }, - { 0x1F04, 8008 }, - { 0x1FD2, 8010 }, - { 0x1EB7, 8013 }, - { 0x1E98, 8016 }, - { 0x1EA0, 8018 }, - { 0x1F41, 8022 }, - { 0x1F43, 8026 }, - { 0x1F39, 8033 }, - { 0x1F3A, 8040 }, - { 0x1E7D, 8047 }, - { 0x1EB9, 8050 }, - { 0x1EC5, 8053 }, - { 0x1EC4, 8055 }, - { 0x1EC6, 8058 }, - { 0x1E9B, 8060 }, - { 0x7C57, 8064 }, - { 0x90DC, 8066 }, - { 0x2086, 8069 }, - { 0x2085, 8072 }, - { 0x2089, 8075 }, - { 0x2083, 8077 }, - { 0x2081, 8079 }, - { 0x2082, 8081 }, - { 0x2088, 8083 }, - { 0x2087, 8087 }, - { 0x208B, 8091 }, - { 0x208A, 8094 }, - { 0x2084, 8098 }, - { 0x1D81, 8101 }, - { 0x9291, 8103 }, - { 0x9190, 8105 }, - { 0x47D4, 8107 }, - { 0x47CA, 8112 }, - { 0x47D5, 8117 }, - { 0x47D7, 8122 }, - { 0x47D2, 8127 }, - { 0x47C4, 8132 }, - { 0x47C2, 8137 }, - { 0x47CD, 8142 }, - { 0x47C3, 8147 }, - { 0x47C6, 8152 }, - { 0x47C9, 8157 }, - { 0x47D0, 8162 }, - { 0x47D9, 8167 }, - { 0x47CB, 8172 }, - { 0x47C7, 8177 }, - { 0x47DC, 8182 }, - { 0x47DE, 8187 }, - { 0x47D3, 8192 }, - { 0x47CC, 8197 }, - { 0x47C8, 8202 }, - { 0x47D1, 8207 }, - { 0x47D6, 8212 }, - { 0x47CF, 8217 }, - { 0x47C5, 8222 }, - { 0x47CE, 8227 }, - { 0x47DB, 8232 }, - { 0x47DD, 8237 }, - { 0x47DA, 8242 }, - { 0x47D8, 8247 }, - { 0x47DF, 8252 }, - { 0x47E0, 8257 }, - { 0x47E1, 8262 }, - { 0x47B2, 8267 }, - { 0x47A2, 8272 }, - { 0x47B4, 8277 }, - { 0x47A5, 8282 }, - { 0x47AE, 8287 }, - { 0x47AC, 8292 }, - { 0x47AB, 8297 }, - { 0x47A7, 8302 }, - { 0x47B3, 8307 }, - { 0x47AA, 8312 }, - { 0x47A4, 8317 }, - { 0x47AD, 8322 }, - { 0x47A6, 8327 }, - { 0x47A9, 8332 }, - { 0x47A8, 8337 }, - { 0x47B9, 8342 }, - { 0x47BD, 8347 }, - { 0x47BC, 8352 }, - { 0x47BA, 8357 }, - { 0x47B8, 8362 }, - { 0x47B6, 8367 }, - { 0x47AF, 8372 }, - { 0x47B0, 8377 }, - { 0x47BE, 8382 }, - { 0x47B7, 8387 }, - { 0x47B5, 8392 }, - { 0x47A3, 8397 }, - { 0x47B1, 8402 }, - { 0x47BB, 8407 }, - { 0x47BF, 8412 }, - { 0x47C0, 8417 }, - { 0x47C1, 8422 }, - { 0x41E1, 8427 }, - { 0x41E5, 8431 }, - { 0x41EA, 8435 }, - { 0x41F0, 8439 }, - { 0x41F7, 8443 }, - { 0x41E2, 8447 }, - { 0x41E4, 8451 }, - { 0x41FB, 8455 }, - { 0x41EC, 8459 }, - { 0x41ED, 8463 }, - { 0x41EE, 8467 }, - { 0x41F4, 8471 }, - { 0x41F5, 8475 }, - { 0x41E8, 8479 }, - { 0x41FE, 8483 }, - { 0x41EB, 8487 }, - { 0x41E3, 8491 }, - { 0x41F3, 8495 }, - { 0x41F1, 8499 }, - { 0x41F6, 8503 }, - { 0x41FF, 8507 }, - { 0x41E6, 8511 }, - { 0x4205, 8515 }, - { 0x41E7, 8519 }, - { 0x41FD, 8523 }, - { 0x41F8, 8527 }, - { 0x41FC, 8531 }, - { 0x41EF, 8535 }, - { 0x4200, 8539 }, - { 0x41FA, 8543 }, - { 0x41F9, 8547 }, - { 0x41F2, 8551 }, - { 0x41E9, 8555 }, - { 0x4206, 8559 }, - { 0x4207, 8564 }, - { 0x4201, 8569 }, - { 0x4203, 8573 }, - { 0x4202, 8577 }, - { 0x4204, 8581 }, - { 0x4227, 8585 }, - { 0x422C, 8589 }, - { 0x423C, 8593 }, - { 0x4236, 8597 }, - { 0x4223, 8601 }, - { 0x423E, 8605 }, - { 0x423F, 8609 }, - { 0x4248, 8613 }, - { 0x4245, 8617 }, - { 0x423D, 8621 }, - { 0x4247, 8625 }, - { 0x4246, 8629 }, - { 0x4224, 8633 }, - { 0x4226, 8637 }, - { 0x4225, 8641 }, - { 0x422E, 8645 }, - { 0x4233, 8649 }, - { 0x4234, 8653 }, - { 0x4235, 8657 }, - { 0x4241, 8661 }, - { 0x4244, 8665 }, - { 0x4242, 8669 }, - { 0x423A, 8673 }, - { 0x422D, 8677 }, - { 0x4232, 8681 }, - { 0x4240, 8685 }, - { 0x4231, 8689 }, - { 0x4243, 8693 }, - { 0x423B, 8697 }, - { 0x422A, 8701 }, - { 0x4228, 8705 }, - { 0x4237, 8709 }, - { 0x4229, 8713 }, - { 0x422B, 8717 }, - { 0x422F, 8721 }, - { 0x4230, 8725 }, - { 0x4238, 8729 }, - { 0x4239, 8733 }, - { 0x48A8, 8737 }, - { 0x48AB, 8742 }, - { 0x48AE, 8747 }, - { 0x48B1, 8752 }, - { 0x48B9, 8757 }, - { 0x48B5, 8762 }, - { 0x48C6, 8767 }, - { 0x48CB, 8772 }, - { 0x48DC, 8777 }, - { 0x48E2, 8782 }, - { 0x48E5, 8787 }, - { 0x48EB, 8792 }, - { 0x48BE, 8797 }, - { 0x48DA, 8802 }, - { 0x48CA, 8807 }, - { 0x48D7, 8812 }, - { 0x48BC, 8817 }, - { 0x48D9, 8822 }, - { 0x48DE, 8827 }, - { 0x48AF, 8832 }, - { 0x48D8, 8837 }, - { 0x48E0, 8842 }, - { 0x48EF, 8847 }, - { 0x48B3, 8852 }, - { 0x48BB, 8857 }, - { 0x48B7, 8862 }, - { 0x48C2, 8867 }, - { 0x48C8, 8872 }, - { 0x48CC, 8877 }, - { 0x48E4, 8882 }, - { 0x48E6, 8887 }, - { 0x48ED, 8892 }, - { 0x48C0, 8897 }, - { 0x48E7, 8902 }, - { 0x48C9, 8907 }, - { 0x48D0, 8912 }, - { 0x48D5, 8917 }, - { 0x48CE, 8922 }, - { 0x48D2, 8927 }, - { 0x48E9, 8932 }, - { 0x48C4, 8937 }, - { 0x48F0, 8942 }, - { 0x48A9, 8947 }, - { 0x48AD, 8952 }, - { 0x48AC, 8957 }, - { 0x48B2, 8962 }, - { 0x48BA, 8967 }, - { 0x48AA, 8972 }, - { 0x48B6, 8977 }, - { 0x48C7, 8982 }, - { 0x48DD, 8987 }, - { 0x48E3, 8992 }, - { 0x48EC, 8997 }, - { 0x48BF, 9002 }, - { 0x48DB, 9007 }, - { 0x48BD, 9012 }, - { 0x48DF, 9017 }, - { 0x48B0, 9022 }, - { 0x48E1, 9027 }, - { 0x48B4, 9032 }, - { 0x48B8, 9037 }, - { 0x48C3, 9042 }, - { 0x48CD, 9047 }, - { 0x48EE, 9052 }, - { 0x48C1, 9057 }, - { 0x48D4, 9062 }, - { 0x48E8, 9067 }, - { 0x48D1, 9072 }, - { 0x48CF, 9077 }, - { 0x48D3, 9082 }, - { 0x48EA, 9087 }, - { 0x48C5, 9092 }, - { 0x48D6, 9097 }, - { 0x4A87, 9102 }, - { 0x4A84, 9106 }, - { 0x4A85, 9110 }, - { 0x4A8B, 9114 }, - { 0x4A7E, 9118 }, - { 0x4A7C, 9122 }, - { 0x4A82, 9126 }, - { 0x4A8C, 9130 }, - { 0x4A89, 9134 }, - { 0x4A8A, 9138 }, - { 0x4A81, 9142 }, - { 0x4A7B, 9146 }, - { 0x4A80, 9150 }, - { 0x4A88, 9155 }, - { 0x4A7F, 9159 }, - { 0x4A83, 9163 }, - { 0x4A86, 9167 }, - { 0x4A7D, 9171 }, - { 0x4A8D, 9175 }, - { 0x4A8E, 9180 }, - { 0x4A8F, 9185 }, - { 0x4A90, 9191 }, - { 0x4A91, 9197 }, - { 0x4A92, 9201 }, - { 0x4A93, 9206 }, - { 0x4A94, 9211 }, - { 0x7413, 9216 }, - { 0x7414, 9220 }, - { 0x426D, 9224 }, - { 0x426E, 9228 }, - { 0x426F, 9232 }, - { 0x427F, 9236 }, - { 0x4275, 9240 }, - { 0x427A, 9244 }, - { 0x427B, 9248 }, - { 0x427C, 9252 }, - { 0x4280, 9256 }, - { 0x4272, 9260 }, - { 0x4273, 9264 }, - { 0x4290, 9268 }, - { 0x4276, 9272 }, - { 0x4277, 9276 }, - { 0x4270, 9280 }, - { 0x4271, 9284 }, - { 0x428B, 9288 }, - { 0x4283, 9292 }, - { 0x4284, 9296 }, - { 0x4285, 9300 }, - { 0x4281, 9304 }, - { 0x4282, 9308 }, - { 0x427E, 9312 }, - { 0x4289, 9316 }, - { 0x428A, 9320 }, - { 0x428C, 9324 }, - { 0x4278, 9328 }, - { 0x4279, 9332 }, - { 0x4287, 9336 }, - { 0x4288, 9340 }, - { 0x4274, 9344 }, - { 0x4286, 9348 }, - { 0x428D, 9352 }, - { 0x428E, 9356 }, - { 0x428F, 9360 }, - { 0x427D, 9364 }, - { 0x4297, 9368 }, - { 0x4298, 9372 }, - { 0x4295, 9376 }, - { 0x4291, 9380 }, - { 0x4296, 9384 }, - { 0x4292, 9388 }, - { 0x4293, 9392 }, - { 0x4294, 9396 }, - { 0x4299, 9400 }, - { 0x429A, 9404 }, - { 0x429C, 9408 }, - { 0x429B, 9412 }, - { 0x429D, 9416 }, - { 0x429E, 9420 }, - { 0x4A2E, 9424 }, - { 0x4A3D, 9428 }, - { 0x4A36, 9432 }, - { 0x4A37, 9436 }, - { 0x4A43, 9440 }, - { 0x4A30, 9444 }, - { 0x4A3B, 9448 }, - { 0x4A2B, 9452 }, - { 0x4A32, 9456 }, - { 0x4A34, 9460 }, - { 0x4A42, 9464 }, - { 0x4A33, 9468 }, - { 0x4A29, 9472 }, - { 0x4A2F, 9476 }, - { 0x4A38, 9481 }, - { 0x4A39, 9486 }, - { 0x4A44, 9494 }, - { 0x4A45, 9499 }, - { 0x4A2C, 9507 }, - { 0x4A2A, 9512 }, - { 0x4A3F, 9517 }, - { 0x4A40, 9522 }, - { 0x4A2D, 9530 }, - { 0x4A3E, 9534 }, - { 0x4A31, 9538 }, - { 0x4A35, 9542 }, - { 0x4A3A, 9546 }, - { 0x4A3C, 9550 }, - { 0x4A41, 9555 }, - { 0x4A46, 9559 }, - { 0x4A4E, 9563 }, - { 0x4A4B, 9568 }, - { 0x4A47, 9572 }, - { 0x4A4A, 9576 }, - { 0x4A49, 9580 }, - { 0x4A48, 9584 }, - { 0x4A4D, 9588 }, - { 0x4A4C, 9592 }, - { 0x4A4F, 9596 }, - { 0x4A50, 9601 }, - { 0x9166, 9605 }, - { 0x7EF3, 9608 }, - { 0x4924, 9616 }, - { 0x492D, 9621 }, - { 0x4934, 9626 }, - { 0x493F, 9631 }, - { 0x494E, 9636 }, - { 0x4925, 9641 }, - { 0x4938, 9646 }, - { 0x4926, 9651 }, - { 0x4928, 9656 }, - { 0x492B, 9661 }, - { 0x492F, 9666 }, - { 0x4930, 9671 }, - { 0x4931, 9676 }, - { 0x4933, 9681 }, - { 0x4936, 9686 }, - { 0x4937, 9691 }, - { 0x493A, 9696 }, - { 0x493C, 9701 }, - { 0x493D, 9706 }, - { 0x4944, 9711 }, - { 0x4946, 9716 }, - { 0x4948, 9721 }, - { 0x494A, 9726 }, - { 0x4952, 9731 }, - { 0x4953, 9736 }, - { 0x4935, 9741 }, - { 0x4940, 9746 }, - { 0x4956, 9751 }, - { 0x494F, 9756 }, - { 0x4927, 9761 }, - { 0x492C, 9766 }, - { 0x494D, 9771 }, - { 0x492A, 9776 }, - { 0x4932, 9781 }, - { 0x493B, 9786 }, - { 0x4945, 9791 }, - { 0x4929, 9796 }, - { 0x494B, 9801 }, - { 0x493E, 9806 }, - { 0x4949, 9811 }, - { 0x494C, 9816 }, - { 0x4954, 9821 }, - { 0x4943, 9826 }, - { 0x4939, 9831 }, - { 0x492E, 9836 }, - { 0x4947, 9842 }, - { 0x4942, 9848 }, - { 0x4951, 9854 }, - { 0x4955, 9860 }, - { 0x4941, 9866 }, - { 0x4950, 9872 }, - { 0x4957, 9878 }, - { 0x495B, 9882 }, - { 0x495C, 9887 }, - { 0x4959, 9892 }, - { 0x4958, 9896 }, - { 0x495A, 9900 }, - { 0x48F1, 9904 }, - { 0x48FA, 9909 }, - { 0x4901, 9914 }, - { 0x490C, 9919 }, - { 0x491B, 9924 }, - { 0x48F2, 9929 }, - { 0x4905, 9934 }, - { 0x48F3, 9939 }, - { 0x48F5, 9944 }, - { 0x48F8, 9949 }, - { 0x48FC, 9954 }, - { 0x48FD, 9959 }, - { 0x48FE, 9964 }, - { 0x4900, 9969 }, - { 0x4903, 9974 }, - { 0x4904, 9979 }, - { 0x4907, 9984 }, - { 0x4909, 9989 }, - { 0x490A, 9994 }, - { 0x4911, 9999 }, - { 0x4913, 10004 }, - { 0x4915, 10009 }, - { 0x4917, 10014 }, - { 0x491F, 10019 }, - { 0x4920, 10024 }, - { 0x4902, 10029 }, - { 0x490D, 10034 }, - { 0x4923, 10039 }, - { 0x491C, 10044 }, - { 0x48F4, 10049 }, - { 0x48F9, 10054 }, - { 0x491A, 10059 }, - { 0x48F7, 10064 }, - { 0x48FF, 10069 }, - { 0x4908, 10074 }, - { 0x4912, 10079 }, - { 0x48F6, 10084 }, - { 0x4918, 10089 }, - { 0x490B, 10094 }, - { 0x4916, 10099 }, - { 0x4919, 10104 }, - { 0x4921, 10109 }, - { 0x4910, 10114 }, - { 0x4906, 10119 }, - { 0x48FB, 10124 }, - { 0x4914, 10130 }, - { 0x490F, 10136 }, - { 0x491E, 10142 }, - { 0x4922, 10148 }, - { 0x490E, 10154 }, - { 0x491D, 10160 }, - { 0x2A21, 10166 }, - { 0x1CA4, 10172 }, - { 0x9162, 10175 }, - { 0x94B7, 10178 }, - { 0x51B3, 10179 }, - { 0x51B4, 10184 }, - { 0x51B5, 10189 }, - { 0x51B6, 10194 }, - { 0x51B7, 10199 }, - { 0x51AA, 10204 }, - { 0x51AB, 10209 }, - { 0x51A2, 10214 }, - { 0x51B1, 10219 }, - { 0x51A7, 10224 }, - { 0x51A6, 10229 }, - { 0x51B9, 10234 }, - { 0x519F, 10239 }, - { 0x51A0, 10244 }, - { 0x51A1, 10249 }, - { 0x51AE, 10254 }, - { 0x519E, 10259 }, - { 0x51B0, 10264 }, - { 0x51A9, 10269 }, - { 0x51AC, 10274 }, - { 0x51B8, 10279 }, - { 0x51A4, 10284 }, - { 0x51A3, 10289 }, - { 0x51B2, 10294 }, - { 0x51A8, 10299 }, - { 0x51A5, 10304 }, - { 0x51AF, 10309 }, - { 0x51AD, 10314 }, - { 0x51BB, 10319 }, - { 0x51BF, 10325 }, - { 0x51BD, 10331 }, - { 0x51BE, 10337 }, - { 0x51BA, 10343 }, - { 0x51BC, 10349 }, - { 0x51C0, 10355 }, - { 0x51C2, 10361 }, - { 0x51C1, 10367 }, - { 0x51C4, 10373 }, - { 0x51C3, 10378 }, - { 0x51C6, 10384 }, - { 0x51C7, 10391 }, - { 0x51CA, 10397 }, - { 0x51C9, 10402 }, - { 0x51CB, 10408 }, - { 0x51CC, 10415 }, - { 0x51C5, 10421 }, - { 0x51C8, 10427 }, - { 0x51D3, 10434 }, - { 0x51D6, 10439 }, - { 0x51CE, 10445 }, - { 0x51CD, 10451 }, - { 0x51CF, 10456 }, - { 0x51D0, 10463 }, - { 0x51D2, 10469 }, - { 0x51D1, 10474 }, - { 0x51D4, 10480 }, - { 0x51D5, 10487 }, - { 0x8FF1, 10493 }, - { 0x1CAC, 10495 }, - { 0x1CE8, 10496 }, - { 0x95EC, 10497 }, - { 0x9139, 10499 }, - { 0x1CB1, 10503 }, - { 0x1DA7, 10507 }, - { 0x1CB0, 10509 }, - { 0x9495, 10512 }, - { 0x8FC9, 10513 }, - { 0x8FEA, 10514 }, - { 0x8FF0, 10516 }, - { 0x7C58, 10518 }, - { 0x1CE8, 10520 }, - { 0x1CAC, 10523 }, - { 0x8F25, 10526 }, - { 0x9261, 10529 }, - { 0x8FC2, 10535 }, - { 0x8FB3, 10536 }, - { 0x9515, 10537 }, - { 0x8F01, 10540 }, - { 0x1CAB, 10542 }, - { 0x1CE6, 10543 }, - { 0x1C8F, 10544 }, - { 0x1CAE, 10545 }, - { 0x1E6D, 10546 }, - { 0x006C, 10548 }, - { 0x90E2, 10549 }, - { 0x2362, 10555 }, - { 0x9372, 10559 }, - { 0x236A, 10563 }, - { 0x8F72, 10569 }, - { 0x1D39, 10573 }, - { 0x2235, 10575 }, - { 0x8ED1, 10576 }, - { 0x22F1, 10579 }, - { 0x973B, 10582 }, - { 0x970A, 10585 }, - { 0x9757, 10588 }, - { 0x9737, 10592 }, - { 0x9704, 10596 }, - { 0x9707, 10599 }, - { 0x9716, 10602 }, - { 0x9708, 10604 }, - { 0x970D, 10606 }, - { 0x9712, 10609 }, - { 0x970E, 10612 }, - { 0x9711, 10615 }, - { 0x9710, 10618 }, - { 0x9715, 10621 }, - { 0x970C, 10624 }, - { 0x9714, 10627 }, - { 0x9713, 10630 }, - { 0x970F, 10633 }, - { 0x973C, 10636 }, - { 0x973D, 10639 }, - { 0x973E, 10644 }, - { 0x973F, 10649 }, - { 0x9740, 10654 }, - { 0x9741, 10659 }, - { 0x9742, 10664 }, - { 0x9743, 10669 }, - { 0x9744, 10674 }, - { 0x9745, 10679 }, - { 0x9746, 10684 }, - { 0x9747, 10689 }, - { 0x9748, 10694 }, - { 0x9749, 10699 }, - { 0x974A, 10704 }, - { 0x974B, 10709 }, - { 0x974C, 10714 }, - { 0x974D, 10719 }, - { 0x974E, 10724 }, - { 0x974F, 10729 }, - { 0x9750, 10734 }, - { 0x9751, 10739 }, - { 0x9752, 10744 }, - { 0x9753, 10749 }, - { 0x9754, 10754 }, - { 0x9755, 10759 }, - { 0x9756, 10764 }, - { 0x971D, 10769 }, - { 0x971E, 10774 }, - { 0x971F, 10779 }, - { 0x9720, 10784 }, - { 0x9721, 10789 }, - { 0x9722, 10794 }, - { 0x9723, 10799 }, - { 0x9724, 10804 }, - { 0x9725, 10809 }, - { 0x9726, 10814 }, - { 0x9727, 10819 }, - { 0x9728, 10824 }, - { 0x9729, 10829 }, - { 0x972A, 10834 }, - { 0x972B, 10839 }, - { 0x972C, 10844 }, - { 0x972D, 10849 }, - { 0x972E, 10854 }, - { 0x972F, 10859 }, - { 0x9730, 10864 }, - { 0x9731, 10869 }, - { 0x9732, 10874 }, - { 0x9733, 10879 }, - { 0x9734, 10884 }, - { 0x9735, 10889 }, - { 0x9736, 10894 }, - { 0x9759, 10899 }, - { 0x9739, 10903 }, - { 0x9705, 10907 }, - { 0x96FC, 10910 }, - { 0x975A, 10912 }, - { 0x9700, 10914 }, - { 0x9719, 10917 }, - { 0x96FF, 10920 }, - { 0x9701, 10923 }, - { 0x9738, 10926 }, - { 0x970B, 10929 }, - { 0x9706, 10931 }, - { 0x971B, 10933 }, - { 0x9758, 10936 }, - { 0x9702, 10939 }, - { 0x9718, 10941 }, - { 0x96FE, 10944 }, - { 0x9717, 10947 }, - { 0x9703, 10949 }, - { 0x973A, 10951 }, - { 0x971C, 10954 }, - { 0x96FD, 10957 }, - { 0x971A, 10960 }, - { 0x9709, 10963 }, - { 0x167B, 10965 }, - { 0x1683, 10969 }, - { 0x167C, 10973 }, - { 0x1681, 10977 }, - { 0x167F, 10981 }, - { 0x1685, 10985 }, - { 0x167D, 10989 }, - { 0x167E, 10993 }, - { 0x1674, 10997 }, - { 0x1676, 11001 }, - { 0x1668, 11005 }, - { 0x1670, 11009 }, - { 0x1673, 11013 }, - { 0x167A, 11017 }, - { 0x1680, 11021 }, - { 0x1671, 11025 }, - { 0x1677, 11029 }, - { 0x166C, 11033 }, - { 0x166E, 11037 }, - { 0x1682, 11041 }, - { 0x1675, 11045 }, - { 0x1669, 11049 }, - { 0x166D, 11053 }, - { 0x1684, 11057 }, - { 0x1678, 11061 }, - { 0x166A, 11065 }, - { 0x1672, 11069 }, - { 0x166F, 11073 }, - { 0x166B, 11077 }, - { 0x1679, 11081 }, - { 0x1686, 11085 }, - { 0x1687, 11089 }, - { 0x1688, 11093 }, - { 0x1689, 11097 }, - { 0x168A, 11101 }, - { 0x177A, 11105 }, - { 0x177F, 11110 }, - { 0x177B, 11115 }, - { 0x177E, 11120 }, - { 0x177D, 11125 }, - { 0x1782, 11130 }, - { 0x1779, 11135 }, - { 0x1781, 11140 }, - { 0x1780, 11145 }, - { 0x177C, 11150 }, - { 0x1775, 11155 }, - { 0x1791, 11160 }, - { 0x1776, 11164 }, - { 0x176F, 11169 }, - { 0x1754, 11174 }, - { 0x1794, 11180 }, - { 0x1799, 11185 }, - { 0x1795, 11189 }, - { 0x1790, 11193 }, - { 0x179A, 11197 }, - { 0x1772, 11201 }, - { 0x1773, 11206 }, - { 0x1774, 11211 }, - { 0x175B, 11216 }, - { 0x178F, 11220 }, - { 0x178D, 11224 }, - { 0x1792, 11228 }, - { 0x1770, 11232 }, - { 0x1771, 11236 }, - { 0x1796, 11240 }, - { 0x1797, 11244 }, - { 0x1793, 11248 }, - { 0x1777, 11254 }, - { 0x178E, 11259 }, - { 0x1798, 11263 }, - { 0x1784, 11267 }, - { 0x1789, 11272 }, - { 0x1785, 11277 }, - { 0x1788, 11282 }, - { 0x1787, 11287 }, - { 0x178C, 11292 }, - { 0x1783, 11297 }, - { 0x178B, 11302 }, - { 0x178A, 11307 }, - { 0x1786, 11312 }, - { 0x175C, 11317 }, - { 0x1769, 11322 }, - { 0x1760, 11327 }, - { 0x1766, 11332 }, - { 0x1764, 11337 }, - { 0x175E, 11342 }, - { 0x176A, 11347 }, - { 0x176C, 11352 }, - { 0x1761, 11357 }, - { 0x176E, 11362 }, - { 0x1767, 11368 }, - { 0x176B, 11374 }, - { 0x1768, 11379 }, - { 0x1762, 11384 }, - { 0x1765, 11389 }, - { 0x175D, 11394 }, - { 0x1763, 11400 }, - { 0x175F, 11405 }, - { 0x176D, 11411 }, - { 0x1747, 11417 }, - { 0x1749, 11421 }, - { 0x174B, 11425 }, - { 0x1733, 11429 }, - { 0x172B, 11433 }, - { 0x174D, 11437 }, - { 0x174A, 11441 }, - { 0x173F, 11445 }, - { 0x173A, 11449 }, - { 0x1732, 11453 }, - { 0x174E, 11457 }, - { 0x173D, 11461 }, - { 0x174C, 11465 }, - { 0x1741, 11469 }, - { 0x174F, 11473 }, - { 0x1746, 11477 }, - { 0x1725, 11481 }, - { 0x1738, 11486 }, - { 0x1748, 11491 }, - { 0x171F, 11496 }, - { 0x1737, 11501 }, - { 0x1726, 11506 }, - { 0x1730, 11511 }, - { 0x173B, 11516 }, - { 0x1727, 11521 }, - { 0x1721, 11526 }, - { 0x1720, 11531 }, - { 0x1739, 11536 }, - { 0x1731, 11541 }, - { 0x172C, 11546 }, - { 0x1740, 11551 }, - { 0x1722, 11555 }, - { 0x1728, 11559 }, - { 0x173E, 11563 }, - { 0x1723, 11567 }, - { 0x1736, 11572 }, - { 0x1745, 11577 }, - { 0x171C, 11582 }, - { 0x1734, 11587 }, - { 0x1744, 11592 }, - { 0x172E, 11597 }, - { 0x173C, 11602 }, - { 0x1724, 11607 }, - { 0x171D, 11612 }, - { 0x171E, 11617 }, - { 0x1735, 11622 }, - { 0x1742, 11627 }, - { 0x1743, 11632 }, - { 0x172F, 11637 }, - { 0x172A, 11642 }, - { 0x172D, 11647 }, - { 0x1729, 11651 }, - { 0x1750, 11655 }, - { 0x1778, 11660 }, - { 0x1759, 11665 }, - { 0x1753, 11670 }, - { 0x1758, 11677 }, - { 0x175A, 11682 }, - { 0x1756, 11687 }, - { 0x1757, 11693 }, - { 0x1755, 11702 }, - { 0x1752, 11708 }, - { 0x1751, 11714 }, - { 0x3A08, 11720 }, - { 0x3A0F, 11724 }, - { 0x3A17, 11728 }, - { 0x3A19, 11733 }, - { 0x3A1A, 11738 }, - { 0x3A18, 11743 }, - { 0x3A0D, 11748 }, - { 0x3A0A, 11752 }, - { 0x3A0E, 11756 }, - { 0x3A0C, 11760 }, - { 0x3A09, 11764 }, - { 0x3A16, 11768 }, - { 0x3A15, 11772 }, - { 0x3A14, 11776 }, - { 0x3A10, 11780 }, - { 0x3A12, 11784 }, - { 0x3A0B, 11788 }, - { 0x3A13, 11792 }, - { 0x3A11, 11796 }, - { 0x3A06, 11800 }, - { 0x39F2, 11805 }, - { 0x39E2, 11810 }, - { 0x39EA, 11815 }, - { 0x39F8, 11820 }, - { 0x39DE, 11825 }, - { 0x3A04, 11830 }, - { 0x39D8, 11835 }, - { 0x3A00, 11840 }, - { 0x39FA, 11845 }, - { 0x39F0, 11850 }, - { 0x39F4, 11855 }, - { 0x39FE, 11860 }, - { 0x39E6, 11865 }, - { 0x39EC, 11870 }, - { 0x3A02, 11875 }, - { 0x39FC, 11880 }, - { 0x39E4, 11885 }, - { 0x39DA, 11890 }, - { 0x39E0, 11895 }, - { 0x39E8, 11900 }, - { 0x39F6, 11905 }, - { 0x39EE, 11910 }, - { 0x39DC, 11915 }, - { 0x3A07, 11920 }, - { 0x39F3, 11925 }, - { 0x39E3, 11930 }, - { 0x39EB, 11935 }, - { 0x39F9, 11940 }, - { 0x39DF, 11945 }, - { 0x3A05, 11950 }, - { 0x39D9, 11955 }, - { 0x3A01, 11960 }, - { 0x39FB, 11965 }, - { 0x39F1, 11970 }, - { 0x39F5, 11975 }, - { 0x39FF, 11980 }, - { 0x39E7, 11985 }, - { 0x39ED, 11990 }, - { 0x3A03, 11995 }, - { 0x39FD, 12000 }, - { 0x39E5, 12005 }, - { 0x39DB, 12010 }, - { 0x39E1, 12015 }, - { 0x39E9, 12020 }, - { 0x39F7, 12025 }, - { 0x39EF, 12030 }, - { 0x39DD, 12035 }, - { 0x3A1E, 12040 }, - { 0x3A1F, 12045 }, - { 0x3A1B, 12050 }, - { 0x3A1D, 12054 }, - { 0x3A1C, 12058 }, - { 0x2609, 12062 }, - { 0x2568, 12065 }, - { 0x2566, 12071 }, - { 0x2569, 12075 }, - { 0x8F5C, 12081 }, - { 0x2A4F, 12083 }, - { 0x27F3, 12087 }, - { 0x2A50, 12091 }, - { 0x2A2F, 12095 }, - { 0x7E37, 12099 }, - { 0x7E38, 12104 }, - { 0x1F77, 12109 }, - { 0x7E27, 12112 }, - { 0x7CA1, 12116 }, - { 0x7E2D, 12120 }, - { 0x7E2F, 12125 }, - { 0x7CA3, 12130 }, - { 0x7E29, 12134 }, - { 0x7E2B, 12139 }, - { 0x7CA2, 12144 }, - { 0x7E31, 12148 }, - { 0x1F66, 12152 }, - { 0x2A18, 12155 }, - { 0x7E48, 12159 }, - { 0x1F73, 12165 }, - { 0x96F0, 12168 }, - { 0x90D0, 12176 }, - { 0x2035, 12181 }, - { 0x1F65, 12184 }, - { 0x2A19, 12187 }, - { 0x1F74, 12191 }, - { 0x96ED, 12194 }, - { 0x200B, 12202 }, - { 0x2037, 12205 }, - { 0x96E9, 12209 }, - { 0x96E1, 12215 }, - { 0x2033, 12221 }, - { 0x1CA5, 12223 }, - { 0x1CDA, 12226 }, - { 0x901F, 12229 }, - { 0x2A20, 12233 }, - { 0x7CCF, 12239 }, - { 0x9020, 12243 }, - { 0x9163, 12247 }, - { 0x9048, 12250 }, - { 0x25F5, 12252 }, - { 0x919D, 12255 }, - { 0x2634, 12258 }, - { 0x2633, 12262 }, - { 0x1CD1, 12266 }, - { 0x26A1, 12270 }, - { 0x2682, 12274 }, - { 0x2681, 12278 }, - { 0x35DB, 12282 }, - { 0x35DA, 12285 }, - { 0x35EE, 12287 }, - { 0x35F3, 12290 }, - { 0x35EF, 12293 }, - { 0x35F2, 12296 }, - { 0x35F1, 12299 }, - { 0x35F6, 12302 }, - { 0x35ED, 12305 }, - { 0x35F5, 12308 }, - { 0x35F4, 12311 }, - { 0x35F0, 12314 }, - { 0x35E5, 12317 }, - { 0x35E3, 12320 }, - { 0x35E6, 12323 }, - { 0x35E4, 12326 }, - { 0x35E7, 12329 }, - { 0x35EB, 12332 }, - { 0x35EC, 12335 }, - { 0x35E9, 12338 }, - { 0x35E2, 12341 }, - { 0x35EA, 12344 }, - { 0x35E8, 12347 }, - { 0x35E0, 12350 }, - { 0x35E1, 12353 }, - { 0x35DC, 12356 }, - { 0x3516, 12359 }, - { 0x35AE, 12362 }, - { 0x34F1, 12365 }, - { 0x3587, 12368 }, - { 0x3562, 12371 }, - { 0x3517, 12374 }, - { 0x351F, 12377 }, - { 0x35B7, 12380 }, - { 0x34F9, 12383 }, - { 0x3590, 12386 }, - { 0x356A, 12389 }, - { 0x3533, 12392 }, - { 0x35CC, 12395 }, - { 0x350C, 12398 }, - { 0x35A4, 12401 }, - { 0x357D, 12404 }, - { 0x352D, 12407 }, - { 0x35C6, 12410 }, - { 0x3506, 12413 }, - { 0x359E, 12416 }, - { 0x3577, 12419 }, - { 0x34CD, 12422 }, - { 0x35AF, 12425 }, - { 0x3525, 12428 }, - { 0x35BE, 12431 }, - { 0x34FE, 12434 }, - { 0x3596, 12437 }, - { 0x356F, 12440 }, - { 0x353A, 12443 }, - { 0x35D3, 12446 }, - { 0x3512, 12449 }, - { 0x35AA, 12452 }, - { 0x3583, 12455 }, - { 0x3519, 12458 }, - { 0x35B1, 12461 }, - { 0x34F3, 12464 }, - { 0x358A, 12467 }, - { 0x3564, 12470 }, - { 0x34F2, 12473 }, - { 0x3534, 12476 }, - { 0x35CD, 12479 }, - { 0x350D, 12482 }, - { 0x35A5, 12485 }, - { 0x357E, 12488 }, - { 0x3537, 12491 }, - { 0x35D0, 12494 }, - { 0x3510, 12497 }, - { 0x35A8, 12500 }, - { 0x3581, 12503 }, - { 0x352B, 12506 }, - { 0x35C4, 12509 }, - { 0x3504, 12512 }, - { 0x359C, 12515 }, - { 0x3575, 12518 }, - { 0x353B, 12521 }, - { 0x35D5, 12524 }, - { 0x3513, 12527 }, - { 0x35AB, 12530 }, - { 0x3584, 12533 }, - { 0x353C, 12536 }, - { 0x35D6, 12539 }, - { 0x35D8, 12542 }, - { 0x3514, 12545 }, - { 0x35AC, 12548 }, - { 0x3585, 12551 }, - { 0x3588, 12554 }, - { 0x353E, 12557 }, - { 0x351D, 12560 }, - { 0x35B5, 12563 }, - { 0x34F7, 12566 }, - { 0x358E, 12569 }, - { 0x3568, 12572 }, - { 0x352C, 12575 }, - { 0x35C5, 12578 }, - { 0x3505, 12581 }, - { 0x359D, 12584 }, - { 0x3576, 12587 }, - { 0x352F, 12590 }, - { 0x35C8, 12593 }, - { 0x3508, 12596 }, - { 0x35A0, 12599 }, - { 0x3579, 12602 }, - { 0x3527, 12605 }, - { 0x35C0, 12608 }, - { 0x3500, 12611 }, - { 0x3598, 12614 }, - { 0x3571, 12617 }, - { 0x3563, 12620 }, - { 0x3526, 12623 }, - { 0x35BF, 12626 }, - { 0x34FF, 12629 }, - { 0x3597, 12632 }, - { 0x3570, 12635 }, - { 0x351B, 12638 }, - { 0x35B3, 12641 }, - { 0x34F5, 12644 }, - { 0x358C, 12647 }, - { 0x3566, 12650 }, - { 0x3536, 12653 }, - { 0x35CF, 12656 }, - { 0x350F, 12659 }, - { 0x35A7, 12662 }, - { 0x3580, 12665 }, - { 0x3531, 12668 }, - { 0x35CA, 12671 }, - { 0x350A, 12674 }, - { 0x35A2, 12677 }, - { 0x357B, 12680 }, - { 0x34D4, 12683 }, - { 0x351E, 12686 }, - { 0x35B6, 12689 }, - { 0x34F8, 12692 }, - { 0x358F, 12695 }, - { 0x3569, 12698 }, - { 0x3545, 12701 }, - { 0x34E7, 12704 }, - { 0x3558, 12707 }, - { 0x34E1, 12710 }, - { 0x3529, 12713 }, - { 0x35C2, 12716 }, - { 0x3502, 12719 }, - { 0x359A, 12722 }, - { 0x3573, 12725 }, - { 0x3552, 12728 }, - { 0x34CE, 12731 }, - { 0x34D9, 12734 }, - { 0x354A, 12737 }, - { 0x3524, 12740 }, - { 0x35BC, 12743 }, - { 0x34FD, 12746 }, - { 0x3594, 12749 }, - { 0x356E, 12752 }, - { 0x34ED, 12755 }, - { 0x35D4, 12758 }, - { 0x355E, 12761 }, - { 0x351A, 12764 }, - { 0x34CF, 12767 }, - { 0x35B2, 12770 }, - { 0x34F4, 12773 }, - { 0x358B, 12776 }, - { 0x3540, 12779 }, - { 0x3565, 12782 }, - { 0x34E8, 12785 }, - { 0x3559, 12788 }, - { 0x3538, 12791 }, - { 0x34EB, 12794 }, - { 0x355C, 12797 }, - { 0x3521, 12800 }, - { 0x35B9, 12803 }, - { 0x34FB, 12806 }, - { 0x3592, 12809 }, - { 0x356C, 12812 }, - { 0x34DF, 12815 }, - { 0x3550, 12818 }, - { 0x3520, 12821 }, - { 0x35B8, 12824 }, - { 0x34FA, 12827 }, - { 0x3591, 12830 }, - { 0x356B, 12833 }, - { 0x34EE, 12836 }, - { 0x355F, 12839 }, - { 0x352E, 12842 }, - { 0x35C7, 12845 }, - { 0x3507, 12848 }, - { 0x359F, 12851 }, - { 0x3578, 12854 }, - { 0x34EF, 12857 }, - { 0x3535, 12860 }, - { 0x35CE, 12863 }, - { 0x350E, 12866 }, - { 0x35A6, 12869 }, - { 0x357F, 12872 }, - { 0x3560, 12875 }, - { 0x353D, 12878 }, - { 0x35D7, 12881 }, - { 0x3515, 12884 }, - { 0x35AD, 12887 }, - { 0x3586, 12890 }, - { 0x353F, 12893 }, - { 0x34D2, 12896 }, - { 0x3543, 12899 }, - { 0x34E0, 12902 }, - { 0x3551, 12905 }, - { 0x34E3, 12908 }, - { 0x3530, 12911 }, - { 0x35C9, 12914 }, - { 0x3509, 12917 }, - { 0x35A1, 12920 }, - { 0x357A, 12923 }, - { 0x3554, 12926 }, - { 0x34DB, 12929 }, - { 0x3528, 12932 }, - { 0x35C1, 12935 }, - { 0x3501, 12938 }, - { 0x3599, 12941 }, - { 0x3572, 12944 }, - { 0x354C, 12947 }, - { 0x34DA, 12950 }, - { 0x354B, 12953 }, - { 0x351C, 12956 }, - { 0x34D0, 12959 }, - { 0x35B4, 12962 }, - { 0x34F6, 12965 }, - { 0x358D, 12968 }, - { 0x3541, 12971 }, - { 0x3567, 12974 }, - { 0x34EA, 12977 }, - { 0x355B, 12980 }, - { 0x34E5, 12983 }, - { 0x3532, 12986 }, - { 0x35CB, 12989 }, - { 0x350B, 12992 }, - { 0x35A3, 12995 }, - { 0x357C, 12998 }, - { 0x3556, 13001 }, - { 0x34D3, 13004 }, - { 0x3544, 13007 }, - { 0x34DD, 13010 }, - { 0x352A, 13013 }, - { 0x35C3, 13016 }, - { 0x3503, 13019 }, - { 0x359B, 13022 }, - { 0x3574, 13025 }, - { 0x354E, 13028 }, - { 0x34D8, 13031 }, - { 0x35BD, 13034 }, - { 0x3595, 13037 }, - { 0x3549, 13040 }, - { 0x3522, 13043 }, - { 0x34D6, 13046 }, - { 0x35BA, 13049 }, - { 0x3547, 13052 }, - { 0x34D5, 13055 }, - { 0x3546, 13058 }, - { 0x3523, 13061 }, - { 0x35BB, 13064 }, - { 0x34FC, 13067 }, - { 0x3593, 13070 }, - { 0x356D, 13073 }, - { 0x34E2, 13076 }, - { 0x3553, 13079 }, - { 0x3518, 13082 }, - { 0x35B0, 13085 }, - { 0x3539, 13088 }, - { 0x35D1, 13091 }, - { 0x3511, 13094 }, - { 0x35A9, 13097 }, - { 0x3582, 13100 }, - { 0x3589, 13103 }, - { 0x34E9, 13106 }, - { 0x355A, 13109 }, - { 0x34F0, 13112 }, - { 0x3561, 13115 }, - { 0x34E4, 13118 }, - { 0x3555, 13121 }, - { 0x34DC, 13124 }, - { 0x354D, 13127 }, - { 0x34D1, 13130 }, - { 0x3542, 13133 }, - { 0x34E6, 13136 }, - { 0x3557, 13139 }, - { 0x34DE, 13142 }, - { 0x354F, 13145 }, - { 0x34D7, 13148 }, - { 0x3548, 13151 }, - { 0x35F8, 13154 }, - { 0x35DD, 13158 }, - { 0x35DE, 13162 }, - { 0x35F7, 13166 }, - { 0x35DF, 13170 }, - { 0x34EC, 13174 }, - { 0x35D2, 13177 }, - { 0x355D, 13180 }, - { 0x35D9, 13183 }, - { 0x1D22, 13186 }, - { 0x1F12, 13188 }, - { 0x0064, 13189 }, - { 0x225B, 13191 }, - { 0x1C8D, 13193 }, - { 0x4FD1, 13194 }, - { 0x4FCF, 13197 }, - { 0x4FC2, 13201 }, - { 0x4FD0, 13204 }, - { 0x4FC4, 13207 }, - { 0x4FC9, 13210 }, - { 0x4FC5, 13213 }, - { 0x4FC8, 13216 }, - { 0x4FC7, 13219 }, - { 0x4FCC, 13222 }, - { 0x4FC3, 13225 }, - { 0x4FCB, 13228 }, - { 0x4FCA, 13231 }, - { 0x4FC6, 13234 }, - { 0x4FB7, 13237 }, - { 0x4FBD, 13241 }, - { 0x4FB9, 13245 }, - { 0x4FBF, 13249 }, - { 0x4FBB, 13253 }, - { 0x4FB8, 13257 }, - { 0x4FC0, 13261 }, - { 0x4FC1, 13265 }, - { 0x4FBE, 13269 }, - { 0x4FBA, 13273 }, - { 0x4FBC, 13277 }, - { 0x4FAB, 13281 }, - { 0x4FA1, 13284 }, - { 0x4FD3, 13287 }, - { 0x4FAC, 13290 }, - { 0x4FAE, 13293 }, - { 0x4FAA, 13296 }, - { 0x4FA3, 13299 }, - { 0x4F99, 13302 }, - { 0x4FA7, 13305 }, - { 0x4FA2, 13308 }, - { 0x4F9C, 13311 }, - { 0x4F9F, 13314 }, - { 0x4FA6, 13317 }, - { 0x4FA8, 13320 }, - { 0x4F9D, 13323 }, - { 0x4FB1, 13326 }, - { 0x4FA4, 13329 }, - { 0x4FD6, 13332 }, - { 0x4FAD, 13335 }, - { 0x4FB0, 13338 }, - { 0x4FB2, 13341 }, - { 0x4F9A, 13344 }, - { 0x4FD9, 13347 }, - { 0x4F9B, 13350 }, - { 0x4FD8, 13353 }, - { 0x4FA9, 13356 }, - { 0x4FA0, 13359 }, - { 0x4FA5, 13362 }, - { 0x4FD4, 13365 }, - { 0x4FD7, 13368 }, - { 0x4FD5, 13371 }, - { 0x4FB3, 13374 }, - { 0x4FAF, 13378 }, - { 0x4F9E, 13382 }, - { 0x4FCD, 13386 }, - { 0x4FCE, 13389 }, - { 0x4FD2, 13392 }, - { 0x4FB4, 13395 }, - { 0x4FB5, 13400 }, - { 0x4FB6, 13405 }, - { 0x1D90, 13411 }, - { 0x2251, 13413 }, - { 0x22C7, 13414 }, - { 0x92A6, 13416 }, - { 0x9029, 13418 }, - { 0x902F, 13419 }, - { 0x8FD7, 13421 }, - { 0x8F2F, 13423 }, - { 0x926F, 13425 }, - { 0x9135, 13427 }, - { 0x90CC, 13430 }, - { 0x9524, 13435 }, - { 0x8F99, 13438 }, - { 0x9273, 13439 }, - { 0x8FEE, 13440 }, - { 0x8F2D, 13442 }, - { 0x90C7, 13444 }, - { 0x90C8, 13445 }, - { 0x95E2, 13449 }, - { 0x1FD5, 13451 }, - { 0x278A, 13453 }, - { 0x8FD9, 13460 }, - { 0x908B, 13461 }, - { 0x904C, 13463 }, - { 0x8FCA, 13465 }, - { 0x935C, 13466 }, - { 0x9356, 13470 }, - { 0x9362, 13474 }, - { 0x9349, 13478 }, - { 0x932B, 13481 }, - { 0x9335, 13484 }, - { 0x9350, 13487 }, - { 0x9056, 13489 }, - { 0x94E2, 13490 }, - { 0x9121, 13491 }, - { 0x9102, 13492 }, - { 0x9491, 13495 }, - { 0x927C, 13498 }, - { 0x9017, 13500 }, - { 0x3EF9, 13503 }, - { 0x1D61, 13506 }, - { 0x9447, 13508 }, - { 0x9176, 13511 }, - { 0x907A, 13514 }, - { 0x9175, 13516 }, - { 0x1D60, 13519 }, - { 0x8F42, 13521 }, - { 0x1D2E, 13523 }, - { 0x0061, 13525 }, - { 0x39AB, 13527 }, - { 0x39B0, 13530 }, - { 0x39AC, 13533 }, - { 0x39AF, 13536 }, - { 0x39AE, 13539 }, - { 0x39B3, 13542 }, - { 0x39AA, 13545 }, - { 0x39B2, 13548 }, - { 0x39B1, 13551 }, - { 0x39AD, 13554 }, - { 0x398F, 13557 }, - { 0x3994, 13561 }, - { 0x3992, 13565 }, - { 0x398E, 13569 }, - { 0x3995, 13573 }, - { 0x3996, 13577 }, - { 0x3991, 13581 }, - { 0x3990, 13585 }, - { 0x3993, 13589 }, - { 0x3997, 13593 }, - { 0x3965, 13597 }, - { 0x3968, 13600 }, - { 0x3966, 13603 }, - { 0x396A, 13606 }, - { 0x3967, 13609 }, - { 0x3969, 13612 }, - { 0x3982, 13615 }, - { 0x397A, 13618 }, - { 0x396D, 13621 }, - { 0x398D, 13624 }, - { 0x3973, 13627 }, - { 0x396B, 13630 }, - { 0x3989, 13633 }, - { 0x3985, 13636 }, - { 0x397D, 13639 }, - { 0x397F, 13642 }, - { 0x3988, 13645 }, - { 0x398C, 13648 }, - { 0x3978, 13651 }, - { 0x398A, 13654 }, - { 0x3987, 13657 }, - { 0x3986, 13660 }, - { 0x3983, 13663 }, - { 0x3971, 13666 }, - { 0x397E, 13669 }, - { 0x397B, 13672 }, - { 0x396E, 13675 }, - { 0x3974, 13678 }, - { 0x396C, 13681 }, - { 0x3984, 13684 }, - { 0x3970, 13687 }, - { 0x3976, 13690 }, - { 0x397C, 13693 }, - { 0x3981, 13696 }, - { 0x3980, 13699 }, - { 0x398B, 13702 }, - { 0x3979, 13705 }, - { 0x3972, 13708 }, - { 0x396F, 13711 }, - { 0x3977, 13714 }, - { 0x3975, 13717 }, - { 0x399D, 13720 }, - { 0x399C, 13724 }, - { 0x39A6, 13728 }, - { 0x39A2, 13732 }, - { 0x39A3, 13736 }, - { 0x39A5, 13740 }, - { 0x39A1, 13744 }, - { 0x39A4, 13748 }, - { 0x39A0, 13752 }, - { 0x399E, 13756 }, - { 0x39A7, 13760 }, - { 0x399A, 13764 }, - { 0x3999, 13768 }, - { 0x399B, 13772 }, - { 0x3998, 13776 }, - { 0x39A9, 13780 }, - { 0x39A8, 13785 }, - { 0x399F, 13790 }, - { 0x39B5, 13795 }, - { 0x39B6, 13798 }, - { 0x39B4, 13802 }, - { 0x39B7, 13805 }, - { 0x9513, 13809 }, - { 0x95B1, 13810 }, - { 0x94AE, 13811 }, - { 0x1E72, 13812 }, - { 0x21BF, 13814 }, - { 0x9129, 13816 }, - { 0x2A39, 13818 }, - { 0x905B, 13822 }, - { 0x94FD, 13824 }, - { 0x94BA, 13826 }, - { 0x95AC, 13827 }, - { 0x94D2, 13829 }, - { 0x1F05, 13830 }, - { 0x1F03, 13833 }, - { 0x1E7B, 13836 }, - { 0x271A, 13839 }, - { 0x1E63, 13846 }, - { 0x1F42, 13851 }, - { 0x1F44, 13857 }, - { 0x1ED7, 13865 }, - { 0x1F37, 13868 }, - { 0x1ED8, 13873 }, - { 0x1F38, 13876 }, - { 0x1D24, 13881 }, - { 0x925D, 13883 }, - { 0x90FD, 13884 }, - { 0x25AB, 13887 }, - { 0x1EFB, 13890 }, - { 0x271D, 13892 }, - { 0x1F48, 13897 }, - { 0x1F5B, 13901 }, - { 0x9598, 13903 }, - { 0x946F, 13906 }, - { 0x94B4, 13909 }, - { 0x229D, 13910 }, - { 0x2819, 13913 }, - { 0x281A, 13916 }, - { 0x1D25, 13919 }, - { 0x8FF3, 13921 }, - { 0x9454, 13922 }, - { 0x91F8, 13924 }, - { 0x91F9, 13929 }, - { 0x9456, 13933 }, - { 0x95F8, 13938 }, - { 0x91C6, 13943 }, - { 0x91D7, 13947 }, - { 0x95F1, 13952 }, - { 0x91E1, 13960 }, - { 0x91E3, 13964 }, - { 0x945C, 13971 }, - { 0x94A1, 13976 }, - { 0x91B5, 13983 }, - { 0x944E, 13988 }, - { 0x9459, 13992 }, - { 0x94A2, 13998 }, - { 0x91EA, 14005 }, - { 0x94FE, 14009 }, - { 0x95F2, 14012 }, - { 0x91F7, 14016 }, - { 0x95F3, 14020 }, - { 0x94A8, 14024 }, - { 0x91CE, 14028 }, - { 0x91CF, 14032 }, - { 0x91D0, 14039 }, - { 0x9440, 14046 }, - { 0x9443, 14049 }, - { 0x94A7, 14052 }, - { 0x9039, 14056 }, - { 0x91E9, 14058 }, - { 0x91CB, 14061 }, - { 0x91BE, 14065 }, - { 0x91E4, 14069 }, - { 0x9074, 14073 }, - { 0x9177, 14075 }, - { 0x8F51, 14077 }, - { 0x90B0, 14079 }, - { 0x90D8, 14081 }, - { 0x9245, 14082 }, - { 0x951D, 14084 }, - { 0x8FD2, 14086 }, - { 0x8F18, 14087 }, - { 0x2A23, 14092 }, - { 0x1CD9, 14095 }, - { 0x231F, 14098 }, - { 0x94AD, 14101 }, - { 0x94E4, 14103 }, - { 0x8F27, 14104 }, - { 0x8F30, 14107 }, - { 0x1CDB, 14112 }, - { 0x1CD8, 14115 }, - { 0x8EF3, 14118 }, - { 0x27BE, 14121 }, - { 0x936B, 14126 }, - { 0x2351, 14130 }, - { 0x234F, 14133 }, - { 0x234E, 14136 }, - { 0x8FEB, 14139 }, - { 0x2329, 14141 }, - { 0x8ED0, 14143 }, - { 0x8EC8, 14147 }, - { 0x000E, 14150 }, - { 0x21B4, 14152 }, - { 0x2403, 14154 }, - { 0x2032, 14157 }, - { 0x154B, 14158 }, - { 0x154C, 14159 }, - { 0x154D, 14160 }, - { 0x154F, 14161 }, - { 0x8F65, 14162 }, - { 0x22C5, 14164 }, - { 0x231A, 14165 }, - { 0x2319, 14168 }, - { 0x2BC0, 14171 }, - { 0x901A, 14173 }, - { 0x9473, 14174 }, - { 0x8FC3, 14176 }, - { 0x9596, 14177 }, - { 0x95C6, 14179 }, - { 0x1C8A, 14181 }, - { 0x944C, 14183 }, - { 0x95F9, 14190 }, - { 0x9167, 14197 }, - { 0x95A6, 14199 }, - { 0x1FDF, 14200 }, - { 0x8EF2, 14202 }, - { 0x22CD, 14203 }, - { 0x90B9, 14206 }, - { 0x9126, 14209 }, - { 0x95B5, 14210 }, - { 0x2649, 14211 }, - { 0x22E1, 14212 }, - { 0x53AB, 14213 }, - { 0x5357, 14216 }, - { 0x5392, 14219 }, - { 0x5358, 14222 }, - { 0x5356, 14225 }, - { 0x5355, 14228 }, - { 0x5394, 14231 }, - { 0x53A2, 14233 }, - { 0x53A7, 14236 }, - { 0x53A3, 14239 }, - { 0x53A6, 14242 }, - { 0x53A5, 14245 }, - { 0x53AA, 14248 }, - { 0x53A1, 14251 }, - { 0x53A9, 14254 }, - { 0x53A8, 14257 }, - { 0x53A4, 14260 }, - { 0x538F, 14263 }, - { 0x538A, 14267 }, - { 0x538C, 14271 }, - { 0x5388, 14275 }, - { 0x5390, 14279 }, - { 0x5391, 14283 }, - { 0x538B, 14287 }, - { 0x538D, 14291 }, - { 0x538E, 14295 }, - { 0x5389, 14300 }, - { 0x5395, 14305 }, - { 0x5359, 14308 }, - { 0x5363, 14311 }, - { 0x535B, 14314 }, - { 0x5365, 14317 }, - { 0x535D, 14320 }, - { 0x535A, 14323 }, - { 0x5364, 14326 }, - { 0x537C, 14329 }, - { 0x536B, 14332 }, - { 0x5377, 14335 }, - { 0x5368, 14338 }, - { 0x5386, 14341 }, - { 0x535C, 14344 }, - { 0x536D, 14347 }, - { 0x5366, 14350 }, - { 0x5381, 14353 }, - { 0x537E, 14356 }, - { 0x5379, 14359 }, - { 0x537A, 14362 }, - { 0x5380, 14365 }, - { 0x5385, 14368 }, - { 0x5375, 14371 }, - { 0x535E, 14374 }, - { 0x5382, 14377 }, - { 0x537F, 14380 }, - { 0x537D, 14383 }, - { 0x536C, 14386 }, - { 0x5372, 14389 }, - { 0x5378, 14392 }, - { 0x5369, 14395 }, - { 0x536E, 14398 }, - { 0x5367, 14401 }, - { 0x536A, 14404 }, - { 0x5374, 14407 }, - { 0x536F, 14410 }, - { 0x537B, 14413 }, - { 0x5383, 14416 }, - { 0x5384, 14419 }, - { 0x5376, 14422 }, - { 0x5370, 14425 }, - { 0x5373, 14428 }, - { 0x5387, 14431 }, - { 0x5371, 14434 }, - { 0x5361, 14437 }, - { 0x535F, 14441 }, - { 0x5362, 14445 }, - { 0x5360, 14449 }, - { 0x5393, 14453 }, - { 0x539A, 14455 }, - { 0x5399, 14458 }, - { 0x539D, 14462 }, - { 0x539B, 14465 }, - { 0x539E, 14469 }, - { 0x5398, 14473 }, - { 0x539F, 14476 }, - { 0x539C, 14479 }, - { 0x53A0, 14483 }, - { 0x5396, 14487 }, - { 0x5397, 14491 }, - { 0x9042, 14496 }, - { 0x903E, 14497 }, - { 0x959E, 14499 }, - { 0x95BA, 14500 }, - { 0x8FD1, 14501 }, - { 0x1D37, 14503 }, - { 0x226A, 14505 }, - { 0x8ECF, 14508 }, - { 0x8ECA, 14513 }, - { 0x8EF6, 14517 }, - { 0x966B, 14521 }, - { 0x967E, 14530 }, - { 0x2407, 14536 }, - { 0x2406, 14540 }, - { 0x969C, 14545 }, - { 0x966D, 14551 }, - { 0x967F, 14560 }, - { 0x7CD5, 14566 }, - { 0x25BF, 14576 }, - { 0x2A12, 14580 }, - { 0x96D0, 14584 }, - { 0x21BB, 14588 }, - { 0x21BA, 14592 }, - { 0x96CF, 14596 }, - { 0x257A, 14600 }, - { 0x2576, 14607 }, - { 0x2577, 14614 }, - { 0x257C, 14621 }, - { 0x25A8, 14628 }, - { 0x21B7, 14631 }, - { 0x2811, 14635 }, - { 0x2202, 14639 }, - { 0x21B8, 14643 }, - { 0x7EE4, 14646 }, - { 0x7EE9, 14652 }, - { 0x7E4C, 14658 }, - { 0x9435, 14662 }, - { 0x9434, 14665 }, - { 0x9433, 14670 }, - { 0x9431, 14676 }, - { 0x9432, 14682 }, - { 0x7CEB, 14688 }, - { 0x96BA, 14692 }, - { 0x968E, 14695 }, - { 0x7E4E, 14699 }, - { 0x9695, 14704 }, - { 0x96B3, 14713 }, - { 0x7E51, 14717 }, - { 0x912E, 14725 }, - { 0x1EFA, 14729 }, - { 0x91A1, 14731 }, - { 0x2BB5, 14734 }, - { 0x25BD, 14737 }, - { 0x275C, 14742 }, - { 0x275E, 14747 }, - { 0x25C3, 14752 }, - { 0x2BBD, 14757 }, - { 0x005B, 14761 }, - { 0x2000, 14764 }, - { 0x1FFE, 14769 }, - { 0x1FFF, 14774 }, - { 0x1F61, 14779 }, - { 0x2401, 14781 }, - { 0x1E04, 14784 }, - { 0x1DEB, 14788 }, - { 0x1E53, 14791 }, - { 0x1E05, 14798 }, - { 0x1E50, 14803 }, - { 0x2574, 14809 }, - { 0x2738, 14815 }, - { 0x2730, 14819 }, - { 0x1E2B, 14823 }, - { 0x1E25, 14827 }, - { 0x2530, 14833 }, - { 0x93D8, 14840 }, - { 0x1E56, 14844 }, - { 0x2790, 14848 }, - { 0x21B5, 14852 }, - { 0x96C2, 14856 }, - { 0x7C52, 14862 }, - { 0x21B9, 14865 }, - { 0x21B6, 14869 }, - { 0x7EE3, 14873 }, - { 0x7EEA, 14880 }, - { 0x25AF, 14887 }, - { 0x2BBB, 14891 }, - { 0x2BC7, 14895 }, - { 0x2BC5, 14899 }, - { 0x2BC3, 14904 }, - { 0x25B1, 14908 }, - { 0x2308, 14911 }, - { 0x2BB9, 14914 }, - { 0x29FA, 14917 }, - { 0x2BB7, 14921 }, - { 0x2606, 14925 }, - { 0x1C9C, 14929 }, - { 0x2A1E, 14933 }, - { 0x1F20, 14936 }, - { 0x2A02, 14941 }, - { 0x1C98, 14945 }, - { 0x919B, 14949 }, - { 0x003B, 14952 }, - { 0x25B9, 14955 }, - { 0x25BB, 14963 }, - { 0x1CC5, 14971 }, - { 0x2A4D, 14976 }, - { 0x2A4B, 14982 }, - { 0x25B7, 14987 }, - { 0x1FFA, 14992 }, - { 0x1FF8, 14997 }, - { 0x1FF9, 15002 }, - { 0x2604, 15006 }, - { 0x1F5F, 15009 }, - { 0x9278, 15011 }, - { 0x919F, 15013 }, - { 0x9141, 15016 }, - { 0x2408, 15019 }, - { 0x23F1, 15021 }, - { 0x2A1C, 15025 }, - { 0x2BC1, 15029 }, - { 0x25FB, 15033 }, - { 0x2A16, 15038 }, - { 0x200F, 15043 }, - { 0x96EC, 15047 }, - { 0x96E4, 15053 }, - { 0x1F22, 15059 }, - { 0x966E, 15062 }, - { 0x0008, 15067 }, - { 0x1FF4, 15069 }, - { 0x1FF2, 15073 }, - { 0x1FF3, 15077 }, - { 0x29F8, 15080 }, - { 0x29FF, 15083 }, - { 0x1CA8, 15086 }, - { 0x2640, 15088 }, - { 0x263E, 15094 }, - { 0x263F, 15101 }, - { 0x90CA, 15108 }, - { 0x94AF, 15110 }, - { 0x9195, 15112 }, - { 0x1D1D, 15113 }, - { 0x34BB, 15115 }, - { 0x34BD, 15118 }, - { 0x34BF, 15121 }, - { 0x34C0, 15124 }, - { 0x34C1, 15127 }, - { 0x34BC, 15130 }, - { 0x349D, 15133 }, - { 0x34A7, 15136 }, - { 0x34A0, 15139 }, - { 0x34BE, 15142 }, - { 0x34B6, 15145 }, - { 0x34A3, 15148 }, - { 0x34B3, 15151 }, - { 0x34A6, 15154 }, - { 0x34A4, 15157 }, - { 0x34AE, 15160 }, - { 0x34AC, 15163 }, - { 0x34AD, 15166 }, - { 0x34C4, 15169 }, - { 0x349E, 15172 }, - { 0x34AF, 15175 }, - { 0x34A1, 15178 }, - { 0x34C2, 15181 }, - { 0x34C3, 15184 }, - { 0x34B7, 15187 }, - { 0x34B4, 15190 }, - { 0x34B9, 15193 }, - { 0x34B1, 15196 }, - { 0x34A8, 15199 }, - { 0x34A9, 15202 }, - { 0x34BA, 15205 }, - { 0x34B5, 15208 }, - { 0x34A5, 15211 }, - { 0x34B2, 15214 }, - { 0x349F, 15217 }, - { 0x34B8, 15220 }, - { 0x34A2, 15223 }, - { 0x34AA, 15226 }, - { 0x53AC, 15229 }, - { 0x34B0, 15232 }, - { 0x34C6, 15235 }, - { 0x34C8, 15240 }, - { 0x34C9, 15245 }, - { 0x34C5, 15250 }, - { 0x34C7, 15255 }, - { 0x34CA, 15260 }, - { 0x34AB, 15265 }, - { 0x34CC, 15268 }, - { 0x34CB, 15272 }, - { 0x90C5, 15275 }, - { 0x90C2, 15276 }, - { 0x2712, 15280 }, - { 0x95B0, 15288 }, - { 0x240A, 15290 }, - { 0x2423, 15293 }, - { 0x2426, 15297 }, - { 0x2409, 15302 }, - { 0x23F8, 15305 }, - { 0x2421, 15307 }, - { 0x2427, 15310 }, - { 0x2424, 15315 }, - { 0x2429, 15319 }, - { 0x275F, 15325 }, - { 0x2422, 15329 }, - { 0x2428, 15332 }, - { 0x2425, 15337 }, - { 0x242A, 15341 }, - { 0x242B, 15347 }, - { 0x8F9C, 15351 }, - { 0x903F, 15353 }, - { 0x9507, 15355 }, - { 0x22D1, 15356 }, - { 0x226E, 15360 }, - { 0x22D3, 15362 }, - { 0x22D2, 15370 }, - { 0x9011, 15374 }, - { 0x8E58, 15376 }, - { 0x2BE9, 15379 }, - { 0x94F7, 15381 }, - { 0x8F09, 15383 }, - { 0x9090, 15386 }, - { 0x926C, 15387 }, - { 0x73CA, 15389 }, - { 0x73CB, 15393 }, - { 0x73C7, 15397 }, - { 0x73C9, 15402 }, - { 0x7401, 15405 }, - { 0x7402, 15409 }, - { 0x7403, 15412 }, - { 0x7400, 15415 }, - { 0x73CC, 15418 }, - { 0x73D5, 15422 }, - { 0x73D9, 15426 }, - { 0x73F5, 15430 }, - { 0x73D1, 15434 }, - { 0x73E2, 15438 }, - { 0x73D4, 15442 }, - { 0x73E9, 15446 }, - { 0x73CD, 15450 }, - { 0x73EB, 15454 }, - { 0x73F1, 15458 }, - { 0x73CF, 15462 }, - { 0x73F3, 15466 }, - { 0x73FD, 15470 }, - { 0x73F2, 15474 }, - { 0x73D6, 15478 }, - { 0x73EF, 15482 }, - { 0x73DA, 15486 }, - { 0x73DE, 15490 }, - { 0x73FC, 15494 }, - { 0x73DF, 15498 }, - { 0x73DD, 15502 }, - { 0x73E0, 15506 }, - { 0x73F6, 15510 }, - { 0x73F9, 15514 }, - { 0x73D2, 15518 }, - { 0x73F4, 15522 }, - { 0x73E3, 15526 }, - { 0x73FF, 15530 }, - { 0x73E6, 15534 }, - { 0x73FB, 15538 }, - { 0x73D3, 15542 }, - { 0x73EA, 15546 }, - { 0x73EC, 15550 }, - { 0x73CE, 15554 }, - { 0x73D0, 15558 }, - { 0x73D7, 15562 }, - { 0x73ED, 15566 }, - { 0x73DB, 15570 }, - { 0x73E1, 15574 }, - { 0x73FA, 15578 }, - { 0x73D8, 15582 }, - { 0x73E4, 15586 }, - { 0x73E7, 15590 }, - { 0x73E8, 15594 }, - { 0x73F7, 15598 }, - { 0x73F8, 15602 }, - { 0x73DC, 15606 }, - { 0x73FE, 15610 }, - { 0x73E5, 15614 }, - { 0x73F0, 15618 }, - { 0x73EE, 15623 }, - { 0x73BF, 15628 }, - { 0x737D, 15631 }, - { 0x7387, 15634 }, - { 0x7383, 15637 }, - { 0x739B, 15640 }, - { 0x73A2, 15643 }, - { 0x739A, 15646 }, - { 0x7392, 15649 }, - { 0x7380, 15652 }, - { 0x738C, 15655 }, - { 0x737C, 15658 }, - { 0x739D, 15661 }, - { 0x73B6, 15664 }, - { 0x7386, 15667 }, - { 0x73C4, 15670 }, - { 0x7384, 15673 }, - { 0x73BE, 15676 }, - { 0x73A3, 15679 }, - { 0x739C, 15682 }, - { 0x737E, 15686 }, - { 0x7389, 15690 }, - { 0x738E, 15694 }, - { 0x73B5, 15698 }, - { 0x7388, 15702 }, - { 0x73AD, 15706 }, - { 0x73AC, 15710 }, - { 0x73B7, 15714 }, - { 0x73C1, 15717 }, - { 0x738B, 15720 }, - { 0x73B4, 15723 }, - { 0x73A4, 15726 }, - { 0x73C0, 15729 }, - { 0x7394, 15732 }, - { 0x7393, 15735 }, - { 0x7381, 15738 }, - { 0x739F, 15741 }, - { 0x738D, 15744 }, - { 0x7390, 15747 }, - { 0x73A8, 15750 }, - { 0x737F, 15753 }, - { 0x739E, 15756 }, - { 0x73C6, 15759 }, - { 0x73AF, 15762 }, - { 0x73B0, 15765 }, - { 0x73C2, 15768 }, - { 0x73B3, 15771 }, - { 0x73C5, 15774 }, - { 0x738A, 15777 }, - { 0x7385, 15780 }, - { 0x73B1, 15783 }, - { 0x73B8, 15786 }, - { 0x73B9, 15789 }, - { 0x7397, 15792 }, - { 0x73AB, 15795 }, - { 0x73C3, 15798 }, - { 0x73A7, 15801 }, - { 0x73A5, 15804 }, - { 0x7395, 15807 }, - { 0x73A0, 15810 }, - { 0x7391, 15813 }, - { 0x73A9, 15816 }, - { 0x7396, 15819 }, - { 0x73AA, 15822 }, - { 0x73A6, 15825 }, - { 0x73B2, 15828 }, - { 0x73BA, 15831 }, - { 0x73BC, 15834 }, - { 0x7399, 15837 }, - { 0x7398, 15840 }, - { 0x73BD, 15843 }, - { 0x7404, 15846 }, - { 0x7405, 15849 }, - { 0x7406, 15852 }, - { 0x7407, 15855 }, - { 0x7408, 15858 }, - { 0x7409, 15861 }, - { 0x740A, 15864 }, - { 0x7382, 15867 }, - { 0x738F, 15871 }, - { 0x73A1, 15875 }, - { 0x73BB, 15879 }, - { 0x73AE, 15883 }, - { 0x740B, 15887 }, - { 0x740C, 15891 }, - { 0x740D, 15895 }, - { 0x740E, 15899 }, - { 0x740F, 15903 }, - { 0x7410, 15907 }, - { 0x73C8, 15911 }, - { 0x2089, 15914 }, - { 0x208A, 15918 }, - { 0x1D1E, 15921 }, - { 0x262B, 15923 }, - { 0x1CDF, 15924 }, - { 0x4F29, 15925 }, - { 0x4F24, 15928 }, - { 0x4F23, 15931 }, - { 0x4F22, 15934 }, - { 0x4F25, 15937 }, - { 0x4F26, 15940 }, - { 0x4F2B, 15942 }, - { 0x4F30, 15945 }, - { 0x4F2C, 15948 }, - { 0x4F2F, 15951 }, - { 0x4F2E, 15954 }, - { 0x4F33, 15957 }, - { 0x4F2A, 15960 }, - { 0x4F32, 15963 }, - { 0x4F31, 15966 }, - { 0x4F2D, 15969 }, - { 0x4F1E, 15972 }, - { 0x4F16, 15976 }, - { 0x4F20, 15980 }, - { 0x4F18, 15984 }, - { 0x4F15, 15988 }, - { 0x4F1F, 15992 }, - { 0x4F21, 15996 }, - { 0x4F17, 16000 }, - { 0x4F19, 16004 }, - { 0x4F1C, 16008 }, - { 0x4F1A, 16013 }, - { 0x4F1D, 16018 }, - { 0x4F1B, 16023 }, - { 0x4F27, 16028 }, - { 0x4EE5, 16031 }, - { 0x4EEF, 16034 }, - { 0x4EE7, 16037 }, - { 0x4EF1, 16040 }, - { 0x4EE9, 16043 }, - { 0x4EE6, 16046 }, - { 0x4EF0, 16049 }, - { 0x4EF2, 16052 }, - { 0x4F09, 16055 }, - { 0x4EF8, 16058 }, - { 0x4F04, 16061 }, - { 0x4EF5, 16064 }, - { 0x4F13, 16067 }, - { 0x4EE8, 16070 }, - { 0x4EFA, 16073 }, - { 0x4EF3, 16076 }, - { 0x4F0E, 16079 }, - { 0x4F0B, 16082 }, - { 0x4F06, 16085 }, - { 0x4F07, 16088 }, - { 0x4F0D, 16091 }, - { 0x4F12, 16094 }, - { 0x4F02, 16097 }, - { 0x4EEA, 16100 }, - { 0x4F0F, 16103 }, - { 0x4F0C, 16106 }, - { 0x4F0A, 16109 }, - { 0x4EF9, 16112 }, - { 0x4EFF, 16115 }, - { 0x4F05, 16118 }, - { 0x4EF6, 16121 }, - { 0x4EFB, 16124 }, - { 0x4EF4, 16127 }, - { 0x4F14, 16130 }, - { 0x4EF7, 16133 }, - { 0x4F01, 16136 }, - { 0x4EFC, 16139 }, - { 0x4F08, 16142 }, - { 0x4F10, 16145 }, - { 0x4F11, 16148 }, - { 0x4F03, 16151 }, - { 0x4EFD, 16154 }, - { 0x4F00, 16157 }, - { 0x4EFE, 16160 }, - { 0x4EED, 16163 }, - { 0x4EEB, 16167 }, - { 0x4EEE, 16171 }, - { 0x4EEC, 16175 }, - { 0x4F28, 16179 }, - { 0x91A3, 16182 }, - { 0x949C, 16184 }, - { 0x7E36, 16186 }, - { 0x8F44, 16188 }, - { 0x1EC1, 16191 }, - { 0x1EC2, 16193 }, - { 0x9038, 16195 }, - { 0x908E, 16197 }, - { 0x1F13, 16199 }, - { 0x005F, 16200 }, - { 0x9441, 16201 }, - { 0x95D2, 16203 }, - { 0x4E1F, 16206 }, - { 0x4E24, 16208 }, - { 0x4E1E, 16211 }, - { 0x4E1C, 16215 }, - { 0x4E18, 16218 }, - { 0x4E1B, 16221 }, - { 0x4E1A, 16224 }, - { 0x4E1D, 16227 }, - { 0x4E19, 16230 }, - { 0x4E35, 16233 }, - { 0x4E36, 16236 }, - { 0x4E23, 16239 }, - { 0x4E21, 16241 }, - { 0x4E27, 16243 }, - { 0x4E2C, 16246 }, - { 0x4E28, 16249 }, - { 0x4E2B, 16252 }, - { 0x4E2A, 16255 }, - { 0x4E2F, 16258 }, - { 0x4E26, 16261 }, - { 0x4E2E, 16264 }, - { 0x4E2D, 16267 }, - { 0x4E29, 16270 }, - { 0x4E14, 16273 }, - { 0x4E0C, 16277 }, - { 0x4E16, 16281 }, - { 0x4E0E, 16285 }, - { 0x4E0B, 16289 }, - { 0x4E15, 16293 }, - { 0x4E17, 16297 }, - { 0x4E0D, 16301 }, - { 0x4E0F, 16305 }, - { 0x4E12, 16309 }, - { 0x4E10, 16314 }, - { 0x4E13, 16319 }, - { 0x4E11, 16324 }, - { 0x4E30, 16329 }, - { 0x4E22, 16332 }, - { 0x4DD6, 16335 }, - { 0x4DE0, 16338 }, - { 0x4DD8, 16341 }, - { 0x4DE2, 16344 }, - { 0x4DDA, 16347 }, - { 0x4DD7, 16350 }, - { 0x4DE1, 16353 }, - { 0x4DE3, 16356 }, - { 0x4DFD, 16359 }, - { 0x4DEA, 16362 }, - { 0x4DF7, 16365 }, - { 0x4DE6, 16368 }, - { 0x4E0A, 16371 }, - { 0x4DD9, 16374 }, - { 0x4DEC, 16377 }, - { 0x4DE4, 16380 }, - { 0x4E04, 16383 }, - { 0x4DFF, 16386 }, - { 0x4DF9, 16389 }, - { 0x4DFB, 16392 }, - { 0x4E02, 16395 }, - { 0x4E09, 16398 }, - { 0x4DF5, 16401 }, - { 0x4DDB, 16404 }, - { 0x4E06, 16407 }, - { 0x4E01, 16410 }, - { 0x4DFE, 16413 }, - { 0x4DEB, 16416 }, - { 0x4DF2, 16419 }, - { 0x4DF8, 16422 }, - { 0x4DE7, 16425 }, - { 0x4DED, 16428 }, - { 0x4DE5, 16431 }, - { 0x4E05, 16434 }, - { 0x4E00, 16437 }, - { 0x4DE8, 16440 }, - { 0x4DFA, 16443 }, - { 0x4DF4, 16446 }, - { 0x4DEE, 16449 }, - { 0x4DFC, 16452 }, - { 0x4E03, 16455 }, - { 0x4E07, 16458 }, - { 0x4E08, 16461 }, - { 0x4DF6, 16464 }, - { 0x4DF0, 16467 }, - { 0x4DF3, 16470 }, - { 0x4DE9, 16473 }, - { 0x4DEF, 16476 }, - { 0x4DF1, 16479 }, - { 0x4E34, 16482 }, - { 0x4DDE, 16486 }, - { 0x4DDC, 16490 }, - { 0x4DDF, 16494 }, - { 0x4DDD, 16498 }, - { 0x4E33, 16502 }, - { 0x4E20, 16505 }, - { 0x4E32, 16507 }, - { 0x4E31, 16510 }, - { 0x4E25, 16513 }, - { 0x1FEF, 16516 }, - { 0x937E, 16518 }, - { 0x8FF6, 16522 }, - { 0x917B, 16523 }, - { 0x917D, 16524 }, - { 0x917C, 16526 }, - { 0x8F15, 16528 }, - { 0x207A, 16529 }, - { 0x9089, 16531 }, - { 0x9075, 16533 }, - { 0x90C6, 16536 }, - { 0x9003, 16538 }, - { 0x2357, 16541 }, - { 0x2347, 16545 }, - { 0x235E, 16548 }, - { 0x2368, 16551 }, - { 0x9174, 16555 }, - { 0x23EF, 16557 }, - { 0x909F, 16559 }, - { 0x90A0, 16564 }, - { 0x23F0, 16569 }, - { 0x9182, 16571 }, - { 0x9076, 16572 }, - { 0x9192, 16575 }, - { 0x9077, 16579 }, - { 0x95FD, 16582 }, - { 0x95FC, 16585 }, - { 0x8EE7, 16588 }, - { 0x2A0F, 16590 }, - { 0x2BEA, 16592 }, - { 0x8F03, 16595 }, - { 0x1D2A, 16596 }, - { 0x22FB, 16598 }, - { 0x905C, 16599 }, - { 0x903D, 16602 }, - { 0x8F40, 16603 }, - { 0x9597, 16605 }, - { 0x000B, 16607 }, - { 0x2659, 16609 }, - { 0x265A, 16615 }, - { 0x2665, 16621 }, - { 0x2651, 16625 }, - { 0x2654, 16630 }, - { 0x264E, 16635 }, - { 0x2650, 16641 }, - { 0x2652, 16646 }, - { 0x2653, 16651 }, - { 0x264F, 16656 }, - { 0x269E, 16662 }, - { 0x22F2, 16667 }, - { 0x3E15, 16668 }, - { 0x8F0C, 16670 }, - { 0x8F0B, 16672 }, - { 0x9040, 16674 }, - { 0x1EAD, 16675 }, - { 0x928E, 16679 }, - { 0x0299, 16681 }, - { 0x1EAE, 16683 }, - { 0x2A26, 16686 }, - { 0x1E6F, 16688 }, - { 0x95C0, 16690 }, - { 0x9529, 16691 }, - { 0x95ED, 16694 }, - { 0x8EEC, 16696 }, - { 0x49D4, 16697 }, - { 0x49D9, 16700 }, - { 0x49D5, 16703 }, - { 0x49D8, 16706 }, - { 0x49D7, 16709 }, - { 0x49DC, 16712 }, - { 0x49DB, 16715 }, - { 0x49DA, 16718 }, - { 0x49D6, 16721 }, - { 0x49E6, 16724 }, - { 0x49EB, 16728 }, - { 0x49DD, 16732 }, - { 0x49E7, 16735 }, - { 0x49EA, 16739 }, - { 0x49E9, 16743 }, - { 0x49EE, 16747 }, - { 0x49ED, 16751 }, - { 0x49E1, 16755 }, - { 0x49E0, 16758 }, - { 0x49EC, 16761 }, - { 0x49E2, 16765 }, - { 0x49E8, 16768 }, - { 0x49E4, 16772 }, - { 0x49E5, 16775 }, - { 0x49DF, 16778 }, - { 0x49DE, 16781 }, - { 0x49E3, 16784 }, - { 0x49EF, 16787 }, - { 0x49F1, 16791 }, - { 0x49F0, 16795 }, - { 0x49F2, 16799 }, - { 0x8F29, 16803 }, - { 0x94F0, 16807 }, - { 0x94A9, 16809 }, - { 0x94DB, 16810 }, - { 0x906D, 16811 }, - { 0x9255, 16812 }, - { 0x9446, 16813 }, - { 0x1E96, 16817 }, - { 0x92A3, 16819 }, - { 0x8F63, 16820 }, - { 0x8F87, 16822 }, - { 0x8F19, 16825 }, - { 0x915F, 16828 }, - { 0x006C, 16832 }, - { 0x90CF, 16834 }, - { 0x4B99, 16839 }, - { 0x4B9E, 16843 }, - { 0x4B9A, 16847 }, - { 0x4B9D, 16851 }, - { 0x4B9C, 16855 }, - { 0x4BA1, 16859 }, - { 0x4B98, 16863 }, - { 0x4BA0, 16867 }, - { 0x4B9F, 16871 }, - { 0x4B9B, 16875 }, - { 0x4B91, 16879 }, - { 0x4B96, 16883 }, - { 0x4B93, 16887 }, - { 0x4B95, 16891 }, - { 0x4B94, 16895 }, - { 0x4B81, 16899 }, - { 0x4B82, 16903 }, - { 0x4B83, 16907 }, - { 0x4B92, 16911 }, - { 0x4B84, 16915 }, - { 0x4B8D, 16919 }, - { 0x4B8F, 16923 }, - { 0x4B8E, 16927 }, - { 0x4B87, 16931 }, - { 0x4B97, 16935 }, - { 0x4B85, 16939 }, - { 0x4B88, 16943 }, - { 0x4B8A, 16947 }, - { 0x4B8C, 16951 }, - { 0x4B7F, 16955 }, - { 0x4B80, 16959 }, - { 0x4B89, 16963 }, - { 0x4B8B, 16967 }, - { 0x4B86, 16971 }, - { 0x4B90, 16975 }, - { 0x234D, 16979 }, - { 0x2256, 16982 }, - { 0x2813, 16985 }, - { 0x2814, 16990 }, - { 0x1EB2, 16995 }, - { 0x1F1D, 16997 }, - { 0x94D0, 16999 }, - { 0x8EE1, 17000 }, - { 0x2333, 17001 }, - { 0x9160, 17003 }, - { 0x9248, 17005 }, - { 0x2326, 17006 }, - { 0x9518, 17007 }, - { 0x0C7F, 17009 }, - { 0x0C84, 17012 }, - { 0x0C80, 17015 }, - { 0x0C83, 17018 }, - { 0x0C82, 17021 }, - { 0x0C87, 17024 }, - { 0x0C7E, 17027 }, - { 0x0C86, 17030 }, - { 0x0C85, 17033 }, - { 0x0C81, 17036 }, - { 0x0C6D, 17039 }, - { 0x0C5F, 17043 }, - { 0x0C4C, 17047 }, - { 0x0C46, 17051 }, - { 0x0C40, 17055 }, - { 0x0C4F, 17059 }, - { 0x0C51, 17063 }, - { 0x0C5D, 17067 }, - { 0x0C60, 17071 }, - { 0x0C33, 17075 }, - { 0x0C57, 17079 }, - { 0x0C5E, 17083 }, - { 0x0C58, 17087 }, - { 0x0C53, 17090 }, - { 0x0C4B, 17094 }, - { 0x0C45, 17098 }, - { 0x0C4D, 17102 }, - { 0x0C55, 17106 }, - { 0x0C56, 17110 }, - { 0x0C3D, 17113 }, - { 0x0C5C, 17117 }, - { 0x0C5B, 17121 }, - { 0x0C5A, 17125 }, - { 0x0C47, 17129 }, - { 0x0C41, 17133 }, - { 0x0C59, 17137 }, - { 0x0C54, 17141 }, - { 0x0C3F, 17145 }, - { 0x0C3A, 17149 }, - { 0x0C3E, 17153 }, - { 0x0C3C, 17157 }, - { 0x0C3B, 17161 }, - { 0x0C34, 17165 }, - { 0x0C37, 17169 }, - { 0x0C35, 17173 }, - { 0x0C36, 17177 }, - { 0x0C38, 17181 }, - { 0x0C76, 17185 }, - { 0x0C77, 17189 }, - { 0x0C78, 17193 }, - { 0x0C79, 17197 }, - { 0x0C63, 17201 }, - { 0x0C39, 17205 }, - { 0x0C50, 17209 }, - { 0x0C4E, 17213 }, - { 0x0C52, 17217 }, - { 0x0C42, 17221 }, - { 0x0C4A, 17225 }, - { 0x0C48, 17229 }, - { 0x0C49, 17233 }, - { 0x0C44, 17237 }, - { 0x0C43, 17241 }, - { 0x0C62, 17245 }, - { 0x0C6E, 17249 }, - { 0x0C66, 17253 }, - { 0x0C70, 17257 }, - { 0x0C6A, 17261 }, - { 0x0C64, 17265 }, - { 0x0C6F, 17269 }, - { 0x0C71, 17273 }, - { 0x0C72, 17278 }, - { 0x0C65, 17283 }, - { 0x0C67, 17287 }, - { 0x0C68, 17291 }, - { 0x0C6B, 17295 }, - { 0x0C69, 17299 }, - { 0x0C89, 17303 }, - { 0x0C7D, 17306 }, - { 0x0C6C, 17309 }, - { 0x0C74, 17312 }, - { 0x0C7B, 17315 }, - { 0x0C7C, 17318 }, - { 0x0C75, 17321 }, - { 0x0C61, 17324 }, - { 0x0C88, 17327 }, - { 0x0C73, 17330 }, - { 0x0C7A, 17333 }, - { 0x9346, 17336 }, - { 0x1C89, 17339 }, - { 0x934D, 17341 }, - { 0x262A, 17343 }, - { 0x484C, 17344 }, - { 0x89DE, 17351 }, - { 0x89DD, 17355 }, - { 0x89D6, 17358 }, - { 0x89D1, 17361 }, - { 0x89DA, 17364 }, - { 0x89D5, 17367 }, - { 0x89DB, 17370 }, - { 0x89C1, 17373 }, - { 0x89C3, 17376 }, - { 0x89D8, 17379 }, - { 0x89C5, 17382 }, - { 0x89CE, 17385 }, - { 0x89D3, 17388 }, - { 0x89CD, 17391 }, - { 0x89C4, 17394 }, - { 0x89D0, 17397 }, - { 0x89C6, 17400 }, - { 0x89C7, 17403 }, - { 0x89C0, 17406 }, - { 0x89CF, 17409 }, - { 0x89C9, 17412 }, - { 0x89C2, 17415 }, - { 0x89CC, 17418 }, - { 0x89CB, 17421 }, - { 0x89CA, 17424 }, - { 0x89C8, 17427 }, - { 0x89D7, 17430 }, - { 0x89D2, 17434 }, - { 0x89DC, 17438 }, - { 0x89D9, 17442 }, - { 0x89D4, 17446 }, - { 0x923D, 17450 }, - { 0x923E, 17451 }, - { 0x1EFF, 17453 }, - { 0x2808, 17454 }, - { 0x1FE3, 17458 }, - { 0x934A, 17460 }, - { 0x1F2F, 17464 }, - { 0x1F30, 17467 }, - { 0x935E, 17470 }, - { 0x9358, 17475 }, - { 0x9364, 17480 }, - { 0x9375, 17485 }, - { 0x934B, 17491 }, - { 0x932D, 17495 }, - { 0x9337, 17499 }, - { 0x9230, 17503 }, - { 0x9352, 17507 }, - { 0x922F, 17510 }, - { 0x2BC9, 17513 }, - { 0x276B, 17515 }, - { 0x255F, 17520 }, - { 0x3E52, 17525 }, - { 0x2BDD, 17528 }, - { 0x1F5E, 17530 }, - { 0x3E4E, 17532 }, - { 0x229C, 17534 }, - { 0x8F43, 17537 }, - { 0x8EDF, 17539 }, - { 0x8F2A, 17542 }, - { 0x95D5, 17544 }, - { 0x8FED, 17545 }, - { 0x95CD, 17547 }, - { 0x1CE0, 17548 }, - { 0x2A27, 17550 }, - { 0x95C9, 17554 }, - { 0x1C8B, 17555 }, - { 0x1C8D, 17558 }, - { 0x3EF9, 17561 }, - { 0x1C8C, 17565 }, - { 0x280B, 17568 }, - { 0x1C8C, 17569 }, - { 0x1C8B, 17570 }, - { 0x25CB, 17571 }, - { 0x0073, 17573 }, - { 0x8BA5, 17575 }, - { 0x8BAE, 17578 }, - { 0x8BB3, 17581 }, - { 0x8BAF, 17584 }, - { 0x8BB2, 17587 }, - { 0x8BB1, 17590 }, - { 0x8BB6, 17593 }, - { 0x8BAD, 17596 }, - { 0x8BB5, 17599 }, - { 0x8BB4, 17602 }, - { 0x8BB0, 17605 }, - { 0x8BA8, 17608 }, - { 0x8BAB, 17610 }, - { 0x8B8C, 17612 }, - { 0x8B8E, 17616 }, - { 0x8B8F, 17620 }, - { 0x8B96, 17624 }, - { 0x8B87, 17628 }, - { 0x8B8D, 17632 }, - { 0x8B9B, 17636 }, - { 0x8B99, 17640 }, - { 0x8B89, 17644 }, - { 0x8B8B, 17648 }, - { 0x8B9D, 17652 }, - { 0x8B9F, 17656 }, - { 0x8B95, 17660 }, - { 0x8B8A, 17664 }, - { 0x8B98, 17668 }, - { 0x8B90, 17672 }, - { 0x8BA1, 17676 }, - { 0x8B94, 17680 }, - { 0x8BA0, 17684 }, - { 0x8BA3, 17688 }, - { 0x8B9E, 17692 }, - { 0x8B93, 17696 }, - { 0x8B9C, 17700 }, - { 0x8BA4, 17704 }, - { 0x8B92, 17708 }, - { 0x8B91, 17712 }, - { 0x8BA2, 17716 }, - { 0x8B83, 17720 }, - { 0x8B97, 17724 }, - { 0x8B85, 17728 }, - { 0x8B86, 17732 }, - { 0x8B9A, 17736 }, - { 0x8B84, 17740 }, - { 0x8B88, 17744 }, - { 0x8BA6, 17748 }, - { 0x8B6A, 17751 }, - { 0x8B6C, 17755 }, - { 0x8B6D, 17759 }, - { 0x8B74, 17763 }, - { 0x8B65, 17767 }, - { 0x8B6B, 17771 }, - { 0x8B79, 17775 }, - { 0x8B77, 17779 }, - { 0x8B67, 17783 }, - { 0x8B69, 17787 }, - { 0x8B7B, 17791 }, - { 0x8B7D, 17795 }, - { 0x8B73, 17799 }, - { 0x8B68, 17803 }, - { 0x8B76, 17807 }, - { 0x8B6E, 17811 }, - { 0x8B7F, 17815 }, - { 0x8B72, 17819 }, - { 0x8B7E, 17823 }, - { 0x8B81, 17827 }, - { 0x8B7C, 17831 }, - { 0x8B71, 17835 }, - { 0x8B7A, 17839 }, - { 0x8B82, 17843 }, - { 0x8B70, 17847 }, - { 0x8B6F, 17851 }, - { 0x8B80, 17855 }, - { 0x8B61, 17859 }, - { 0x8B75, 17863 }, - { 0x8B63, 17867 }, - { 0x8B64, 17871 }, - { 0x8B78, 17875 }, - { 0x8B62, 17879 }, - { 0x8B66, 17883 }, - { 0x8BB8, 17887 }, - { 0x8BB7, 17891 }, - { 0x8BAA, 17895 }, - { 0x8BA9, 17899 }, - { 0x8BA7, 17902 }, - { 0x8BAC, 17905 }, - { 0x94FF, 17908 }, - { 0x2047, 17909 }, - { 0x7C98, 17911 }, - { 0x7C97, 17915 }, - { 0x7C95, 17919 }, - { 0x7C96, 17923 }, - { 0x7C9A, 17927 }, - { 0x7C99, 17930 }, - { 0x9031, 17933 }, - { 0x7C93, 17935 }, - { 0x7C94, 17939 }, - { 0x7C9B, 17943 }, - { 0x7C9C, 17946 }, - { 0x9055, 17949 }, - { 0x1E77, 17951 }, - { 0x25CA, 17952 }, - { 0x25D0, 17956 }, - { 0x91D3, 17959 }, - { 0x2274, 17961 }, - { 0x9420, 17962 }, - { 0x2562, 17968 }, - { 0x2563, 17974 }, - { 0x9421, 17980 }, - { 0x2560, 17987 }, - { 0x2561, 17993 }, - { 0x4147, 17999 }, - { 0x9481, 18001 }, - { 0x949D, 18002 }, - { 0x36AC, 18003 }, - { 0x36AD, 18006 }, - { 0x36AE, 18008 }, - { 0x3659, 18010 }, - { 0x3662, 18013 }, - { 0x366C, 18016 }, - { 0x3660, 18019 }, - { 0x365B, 18022 }, - { 0x365D, 18025 }, - { 0x3691, 18028 }, - { 0x365A, 18031 }, - { 0x369E, 18034 }, - { 0x3698, 18037 }, - { 0x365C, 18040 }, - { 0x3663, 18043 }, - { 0x3695, 18046 }, - { 0x3686, 18049 }, - { 0x369C, 18052 }, - { 0x3687, 18055 }, - { 0x369F, 18058 }, - { 0x366E, 18061 }, - { 0x3694, 18064 }, - { 0x3688, 18067 }, - { 0x3676, 18070 }, - { 0x3664, 18073 }, - { 0x3696, 18076 }, - { 0x3685, 18079 }, - { 0x3670, 18082 }, - { 0x369D, 18085 }, - { 0x3693, 18088 }, - { 0x367B, 18091 }, - { 0x3684, 18094 }, - { 0x3692, 18097 }, - { 0x368B, 18100 }, - { 0x3674, 18103 }, - { 0x36A2, 18106 }, - { 0x3697, 18109 }, - { 0x369B, 18112 }, - { 0x368E, 18115 }, - { 0x3661, 18118 }, - { 0x3683, 18121 }, - { 0x3681, 18124 }, - { 0x368A, 18127 }, - { 0x365E, 18130 }, - { 0x369A, 18133 }, - { 0x3665, 18136 }, - { 0x368F, 18139 }, - { 0x3679, 18142 }, - { 0x366D, 18145 }, - { 0x3669, 18148 }, - { 0x365F, 18151 }, - { 0x36A3, 18154 }, - { 0x36A1, 18157 }, - { 0x3682, 18160 }, - { 0x3678, 18163 }, - { 0x367A, 18166 }, - { 0x367D, 18169 }, - { 0x3673, 18172 }, - { 0x36A0, 18175 }, - { 0x3699, 18178 }, - { 0x366A, 18181 }, - { 0x368D, 18184 }, - { 0x367F, 18187 }, - { 0x367C, 18190 }, - { 0x3680, 18193 }, - { 0x36A4, 18196 }, - { 0x3675, 18199 }, - { 0x367E, 18202 }, - { 0x3690, 18205 }, - { 0x3689, 18208 }, - { 0x3666, 18211 }, - { 0x3672, 18214 }, - { 0x366F, 18217 }, - { 0x36A7, 18220 }, - { 0x3667, 18223 }, - { 0x3668, 18226 }, - { 0x366B, 18229 }, - { 0x3677, 18232 }, - { 0x36A5, 18235 }, - { 0x3671, 18238 }, - { 0x36A6, 18241 }, - { 0x36A8, 18244 }, - { 0x368C, 18247 }, - { 0x6FA7, 18250 }, - { 0x6FDA, 18256 }, - { 0x6FAF, 18260 }, - { 0x6F93, 18265 }, - { 0x6FD7, 18270 }, - { 0x6FBA, 18274 }, - { 0x6F9F, 18278 }, - { 0x6FC4, 18283 }, - { 0x6FA5, 18288 }, - { 0x6F8B, 18293 }, - { 0x6FDC, 18298 }, - { 0x6FB0, 18302 }, - { 0x6FDB, 18307 }, - { 0x6FD6, 18311 }, - { 0x6F8E, 18315 }, - { 0x6FB1, 18320 }, - { 0x6F91, 18324 }, - { 0x6F90, 18331 }, - { 0x6F8A, 18338 }, - { 0x6F89, 18344 }, - { 0x6FB4, 18350 }, - { 0x6FC1, 18354 }, - { 0x6FC3, 18358 }, - { 0x6FD2, 18362 }, - { 0x6F9C, 18366 }, - { 0x6FD9, 18370 }, - { 0x6FC0, 18374 }, - { 0x6FAE, 18378 }, - { 0x6FC2, 18382 }, - { 0x6FBC, 18386 }, - { 0x6FD5, 18390 }, - { 0x6FDD, 18394 }, - { 0x6FB3, 18398 }, - { 0x6FCE, 18402 }, - { 0x6FD8, 18406 }, - { 0x6FC6, 18410 }, - { 0x6FA0, 18414 }, - { 0x6FA9, 18419 }, - { 0x6FD0, 18424 }, - { 0x6FC8, 18428 }, - { 0x6FA6, 18433 }, - { 0x6FD3, 18438 }, - { 0x6FC7, 18442 }, - { 0x6FBE, 18448 }, - { 0x6FAA, 18452 }, - { 0x6F8D, 18456 }, - { 0x6F88, 18461 }, - { 0x6F9E, 18466 }, - { 0x6FB6, 18470 }, - { 0x6FCD, 18474 }, - { 0x6FCC, 18478 }, - { 0x6F87, 18482 }, - { 0x6FB5, 18487 }, - { 0x6FBF, 18491 }, - { 0x6FB9, 18495 }, - { 0x6FCF, 18499 }, - { 0x6FAB, 18503 }, - { 0x6F94, 18507 }, - { 0x6F9B, 18511 }, - { 0x6FD4, 18515 }, - { 0x6FC9, 18519 }, - { 0x6FA2, 18523 }, - { 0x6F8F, 18527 }, - { 0x6FC5, 18533 }, - { 0x6FB7, 18537 }, - { 0x6FD1, 18541 }, - { 0x6FA1, 18545 }, - { 0x6F96, 18549 }, - { 0x6FBD, 18553 }, - { 0x6FAD, 18557 }, - { 0x6FCA, 18561 }, - { 0x6F99, 18565 }, - { 0x6FA4, 18569 }, - { 0x6F98, 18573 }, - { 0x6FCB, 18577 }, - { 0x6FB2, 18581 }, - { 0x6F95, 18585 }, - { 0x6FA3, 18589 }, - { 0x6F92, 18593 }, - { 0x6FB8, 18597 }, - { 0x6F9A, 18601 }, - { 0x6F92, 18605 }, - { 0x6F97, 18609 }, - { 0x6F9D, 18613 }, - { 0x6F8C, 18617 }, - { 0x6FA8, 18621 }, - { 0x6FAC, 18625 }, - { 0x6FBB, 18629 }, - { 0x7013, 18633 }, - { 0x700F, 18637 }, - { 0x700E, 18642 }, - { 0x6FEF, 18647 }, - { 0x6FDF, 18652 }, - { 0x700C, 18657 }, - { 0x6FE7, 18661 }, - { 0x7014, 18665 }, - { 0x6FEA, 18669 }, - { 0x7010, 18675 }, - { 0x6FE2, 18679 }, - { 0x6FE3, 18684 }, - { 0x6FEC, 18689 }, - { 0x6FF4, 18694 }, - { 0x6FEE, 18699 }, - { 0x6FE1, 18703 }, - { 0x7004, 18708 }, - { 0x700A, 18712 }, - { 0x6FF3, 18716 }, - { 0x7000, 18721 }, - { 0x7009, 18725 }, - { 0x6FF2, 18730 }, - { 0x7015, 18735 }, - { 0x7012, 18739 }, - { 0x6FF0, 18743 }, - { 0x6FE0, 18748 }, - { 0x6FFF, 18752 }, - { 0x6FFA, 18756 }, - { 0x6FE9, 18760 }, - { 0x6FE4, 18765 }, - { 0x700B, 18769 }, - { 0x6FFC, 18773 }, - { 0x6FEB, 18778 }, - { 0x6FF9, 18783 }, - { 0x6FFD, 18787 }, - { 0x700D, 18791 }, - { 0x6FF5, 18795 }, - { 0x6FF8, 18799 }, - { 0x7005, 18803 }, - { 0x7003, 18807 }, - { 0x7011, 18811 }, - { 0x7001, 18815 }, - { 0x7002, 18819 }, - { 0x6FDE, 18824 }, - { 0x6FE8, 18828 }, - { 0x6FE5, 18832 }, - { 0x6FF7, 18836 }, - { 0x6FE6, 18840 }, - { 0x6FFB, 18844 }, - { 0x7007, 18849 }, - { 0x7008, 18853 }, - { 0x6FFE, 18857 }, - { 0x6FF6, 18861 }, - { 0x7006, 18865 }, - { 0x6FF1, 18869 }, - { 0x6FED, 18873 }, - { 0x7054, 18877 }, - { 0x705F, 18881 }, - { 0x703A, 18886 }, - { 0x704A, 18891 }, - { 0x7029, 18895 }, - { 0x7043, 18900 }, - { 0x7030, 18904 }, - { 0x7070, 18908 }, - { 0x7071, 18913 }, - { 0x7050, 18918 }, - { 0x7055, 18922 }, - { 0x704C, 18926 }, - { 0x703D, 18930 }, - { 0x7074, 18934 }, - { 0x7064, 18938 }, - { 0x7073, 18942 }, - { 0x7045, 18946 }, - { 0x7021, 18950 }, - { 0x7017, 18955 }, - { 0x7076, 18959 }, - { 0x7075, 18963 }, - { 0x7077, 18967 }, - { 0x7058, 18971 }, - { 0x7060, 18975 }, - { 0x7018, 18979 }, - { 0x7047, 18983 }, - { 0x7027, 18987 }, - { 0x7069, 18991 }, - { 0x705C, 18995 }, - { 0x706A, 19000 }, - { 0x7025, 19005 }, - { 0x702D, 19010 }, - { 0x702B, 19014 }, - { 0x706D, 19018 }, - { 0x706E, 19022 }, - { 0x705E, 19026 }, - { 0x7061, 19030 }, - { 0x7072, 19034 }, - { 0x7051, 19038 }, - { 0x7057, 19042 }, - { 0x7056, 19046 }, - { 0x705A, 19050 }, - { 0x705D, 19054 }, - { 0x703B, 19058 }, - { 0x705B, 19062 }, - { 0x7020, 19066 }, - { 0x7031, 19072 }, - { 0x706F, 19076 }, - { 0x7035, 19080 }, - { 0x7038, 19085 }, - { 0x702E, 19089 }, - { 0x701F, 19093 }, - { 0x7052, 19097 }, - { 0x7022, 19101 }, - { 0x7068, 19105 }, - { 0x7044, 19109 }, - { 0x7032, 19113 }, - { 0x701A, 19117 }, - { 0x7042, 19121 }, - { 0x701C, 19125 }, - { 0x7016, 19129 }, - { 0x704B, 19134 }, - { 0x706C, 19138 }, - { 0x7034, 19142 }, - { 0x7046, 19146 }, - { 0x704E, 19150 }, - { 0x702A, 19155 }, - { 0x7062, 19159 }, - { 0x7036, 19163 }, - { 0x706B, 19167 }, - { 0x701D, 19171 }, - { 0x7028, 19175 }, - { 0x702F, 19179 }, - { 0x7065, 19183 }, - { 0x7066, 19187 }, - { 0x7049, 19191 }, - { 0x7053, 19195 }, - { 0x7024, 19199 }, - { 0x703C, 19203 }, - { 0x704F, 19207 }, - { 0x7063, 19211 }, - { 0x7067, 19215 }, - { 0x703F, 19219 }, - { 0x7037, 19223 }, - { 0x7059, 19228 }, - { 0x702C, 19232 }, - { 0x7023, 19236 }, - { 0x7033, 19240 }, - { 0x7041, 19244 }, - { 0x704D, 19248 }, - { 0x701E, 19252 }, - { 0x703E, 19256 }, - { 0x7039, 19260 }, - { 0x7040, 19264 }, - { 0x7048, 19268 }, - { 0x7019, 19272 }, - { 0x701B, 19276 }, - { 0x7026, 19280 }, - { 0x70D8, 19284 }, - { 0x70D0, 19288 }, - { 0x70DA, 19292 }, - { 0x70E2, 19296 }, - { 0x70DE, 19300 }, - { 0x70E8, 19304 }, - { 0x7098, 19308 }, - { 0x70EC, 19312 }, - { 0x708B, 19316 }, - { 0x70C1, 19320 }, - { 0x70C6, 19324 }, - { 0x70B7, 19328 }, - { 0x70E6, 19332 }, - { 0x70A5, 19336 }, - { 0x70A4, 19340 }, - { 0x707A, 19344 }, - { 0x70D4, 19348 }, - { 0x70BC, 19352 }, - { 0x70E1, 19356 }, - { 0x70B4, 19360 }, - { 0x70E4, 19364 }, - { 0x70D1, 19368 }, - { 0x70E7, 19373 }, - { 0x70D5, 19378 }, - { 0x708E, 19382 }, - { 0x70EB, 19386 }, - { 0x70DF, 19390 }, - { 0x70AB, 19394 }, - { 0x708A, 19398 }, - { 0x70D9, 19402 }, - { 0x70D2, 19406 }, - { 0x70D3, 19410 }, - { 0x7079, 19414 }, - { 0x7094, 19418 }, - { 0x7099, 19422 }, - { 0x70AD, 19426 }, - { 0x70B3, 19430 }, - { 0x708D, 19434 }, - { 0x70DD, 19438 }, - { 0x70CB, 19442 }, - { 0x707D, 19446 }, - { 0x70A7, 19450 }, - { 0x70EA, 19454 }, - { 0x7078, 19459 }, - { 0x70C5, 19463 }, - { 0x7092, 19467 }, - { 0x707B, 19471 }, - { 0x70A0, 19475 }, - { 0x70E5, 19479 }, - { 0x70BE, 19483 }, - { 0x709C, 19487 }, - { 0x709F, 19491 }, - { 0x7089, 19495 }, - { 0x70C7, 19499 }, - { 0x70E0, 19503 }, - { 0x70E9, 19507 }, - { 0x7081, 19511 }, - { 0x70A9, 19515 }, - { 0x70B6, 19519 }, - { 0x70A2, 19523 }, - { 0x70AE, 19527 }, - { 0x7084, 19531 }, - { 0x70DB, 19535 }, - { 0x70E3, 19539 }, - { 0x70C0, 19543 }, - { 0x70C8, 19547 }, - { 0x7087, 19551 }, - { 0x70C4, 19555 }, - { 0x70BB, 19559 }, - { 0x70BD, 19563 }, - { 0x7096, 19567 }, - { 0x70A8, 19572 }, - { 0x70D6, 19576 }, - { 0x70D7, 19580 }, - { 0x708F, 19584 }, - { 0x70B9, 19588 }, - { 0x7090, 19592 }, - { 0x70CA, 19596 }, - { 0x7085, 19600 }, - { 0x7083, 19604 }, - { 0x707E, 19608 }, - { 0x707C, 19612 }, - { 0x70CE, 19616 }, - { 0x707F, 19620 }, - { 0x70CD, 19624 }, - { 0x70BF, 19628 }, - { 0x70DC, 19632 }, - { 0x70AF, 19636 }, - { 0x7082, 19640 }, - { 0x70AC, 19644 }, - { 0x70CF, 19648 }, - { 0x709E, 19652 }, - { 0x70B1, 19656 }, - { 0x70A1, 19660 }, - { 0x70A3, 19664 }, - { 0x70B8, 19668 }, - { 0x70C2, 19672 }, - { 0x70CC, 19676 }, - { 0x70C3, 19680 }, - { 0x709A, 19684 }, - { 0x70A6, 19688 }, - { 0x70B2, 19692 }, - { 0x70B5, 19696 }, - { 0x7093, 19700 }, - { 0x7088, 19704 }, - { 0x70AA, 19708 }, - { 0x70C9, 19712 }, - { 0x7091, 19716 }, - { 0x709D, 19720 }, - { 0x70BA, 19724 }, - { 0x7097, 19728 }, - { 0x7095, 19732 }, - { 0x708C, 19736 }, - { 0x7080, 19740 }, - { 0x70B0, 19744 }, - { 0x709B, 19748 }, - { 0x7086, 19752 }, - { 0x715C, 19756 }, - { 0x715F, 19760 }, - { 0x715E, 19764 }, - { 0x7142, 19768 }, - { 0x714F, 19772 }, - { 0x7159, 19777 }, - { 0x717C, 19782 }, - { 0x7185, 19787 }, - { 0x7180, 19791 }, - { 0x7174, 19795 }, - { 0x7182, 19799 }, - { 0x7175, 19803 }, - { 0x717D, 19807 }, - { 0x7158, 19811 }, - { 0x7161, 19816 }, - { 0x717E, 19821 }, - { 0x711F, 19825 }, - { 0x7127, 19829 }, - { 0x7188, 19833 }, - { 0x7172, 19837 }, - { 0x715A, 19841 }, - { 0x713B, 19845 }, - { 0x713E, 19849 }, - { 0x7153, 19853 }, - { 0x70F0, 19857 }, - { 0x7160, 19861 }, - { 0x7102, 19865 }, - { 0x717F, 19869 }, - { 0x713F, 19873 }, - { 0x7112, 19877 }, - { 0x7183, 19881 }, - { 0x7181, 19885 }, - { 0x7186, 19889 }, - { 0x7150, 19893 }, - { 0x714C, 19897 }, - { 0x7179, 19901 }, - { 0x7147, 19905 }, - { 0x7134, 19910 }, - { 0x70F3, 19915 }, - { 0x7170, 19919 }, - { 0x7118, 19923 }, - { 0x7177, 19927 }, - { 0x70F5, 19931 }, - { 0x710C, 19935 }, - { 0x70FD, 19939 }, - { 0x7117, 19943 }, - { 0x717A, 19947 }, - { 0x70F4, 19951 }, - { 0x7162, 19955 }, - { 0x70F9, 19959 }, - { 0x7163, 19963 }, - { 0x7187, 19967 }, - { 0x7184, 19971 }, - { 0x7100, 19975 }, - { 0x715D, 19979 }, - { 0x7131, 19983 }, - { 0x7173, 19987 }, - { 0x70F1, 19991 }, - { 0x7171, 19995 }, - { 0x70FC, 19999 }, - { 0x7133, 20003 }, - { 0x7135, 20007 }, - { 0x716A, 20011 }, - { 0x7169, 20016 }, - { 0x716C, 20021 }, - { 0x716B, 20025 }, - { 0x714B, 20029 }, - { 0x7130, 20033 }, - { 0x7141, 20037 }, - { 0x7189, 20041 }, - { 0x716D, 20045 }, - { 0x7132, 20049 }, - { 0x7101, 20053 }, - { 0x7126, 20057 }, - { 0x70F2, 20061 }, - { 0x7113, 20065 }, - { 0x7105, 20069 }, - { 0x712D, 20073 }, - { 0x710E, 20077 }, - { 0x714A, 20081 }, - { 0x714D, 20085 }, - { 0x7164, 20089 }, - { 0x7119, 20095 }, - { 0x70ED, 20100 }, - { 0x7115, 20104 }, - { 0x70F7, 20108 }, - { 0x70FA, 20112 }, - { 0x7104, 20116 }, - { 0x7107, 20120 }, - { 0x715B, 20124 }, - { 0x716F, 20128 }, - { 0x712F, 20133 }, - { 0x7155, 20137 }, - { 0x7143, 20141 }, - { 0x712E, 20145 }, - { 0x7148, 20149 }, - { 0x70FF, 20153 }, - { 0x710B, 20157 }, - { 0x7144, 20161 }, - { 0x716E, 20165 }, - { 0x7154, 20169 }, - { 0x7149, 20173 }, - { 0x70F8, 20177 }, - { 0x7151, 20181 }, - { 0x7176, 20185 }, - { 0x7165, 20189 }, - { 0x717B, 20193 }, - { 0x7128, 20197 }, - { 0x7116, 20201 }, - { 0x70EE, 20206 }, - { 0x711D, 20210 }, - { 0x7125, 20214 }, - { 0x7145, 20218 }, - { 0x7166, 20222 }, - { 0x711B, 20226 }, - { 0x7139, 20230 }, - { 0x713C, 20234 }, - { 0x711C, 20238 }, - { 0x710F, 20242 }, - { 0x7121, 20246 }, - { 0x70FB, 20250 }, - { 0x70EF, 20254 }, - { 0x7136, 20258 }, - { 0x712C, 20262 }, - { 0x7137, 20266 }, - { 0x7157, 20270 }, - { 0x7152, 20274 }, - { 0x713D, 20278 }, - { 0x7167, 20282 }, - { 0x710A, 20286 }, - { 0x7108, 20290 }, - { 0x7138, 20294 }, - { 0x7122, 20298 }, - { 0x7120, 20302 }, - { 0x7124, 20306 }, - { 0x711E, 20310 }, - { 0x7168, 20314 }, - { 0x714E, 20318 }, - { 0x713A, 20322 }, - { 0x7106, 20326 }, - { 0x7178, 20330 }, - { 0x7103, 20334 }, - { 0x70F6, 20338 }, - { 0x7109, 20342 }, - { 0x7123, 20346 }, - { 0x7156, 20350 }, - { 0x7129, 20354 }, - { 0x7114, 20358 }, - { 0x7146, 20362 }, - { 0x710D, 20366 }, - { 0x7140, 20370 }, - { 0x7111, 20374 }, - { 0x712B, 20378 }, - { 0x712A, 20382 }, - { 0x70FE, 20386 }, - { 0x7110, 20390 }, - { 0x711A, 20394 }, - { 0x7198, 20399 }, - { 0x718B, 20403 }, - { 0x718D, 20407 }, - { 0x718A, 20411 }, - { 0x71B6, 20415 }, - { 0x718C, 20419 }, - { 0x7191, 20423 }, - { 0x71B4, 20427 }, - { 0x71B9, 20431 }, - { 0x71BA, 20435 }, - { 0x71AB, 20439 }, - { 0x71A0, 20443 }, - { 0x71AA, 20447 }, - { 0x719B, 20451 }, - { 0x71B3, 20455 }, - { 0x71A4, 20459 }, - { 0x71B2, 20463 }, - { 0x71AD, 20467 }, - { 0x719E, 20471 }, - { 0x71BD, 20475 }, - { 0x71B5, 20479 }, - { 0x7190, 20483 }, - { 0x71A9, 20487 }, - { 0x718E, 20491 }, - { 0x71B8, 20495 }, - { 0x7192, 20499 }, - { 0x71B0, 20503 }, - { 0x71A3, 20507 }, - { 0x7199, 20511 }, - { 0x7195, 20515 }, - { 0x718F, 20519 }, - { 0x71BC, 20523 }, - { 0x71A8, 20527 }, - { 0x71A2, 20531 }, - { 0x719D, 20535 }, - { 0x71BB, 20539 }, - { 0x71B7, 20543 }, - { 0x7196, 20547 }, - { 0x71AF, 20551 }, - { 0x71A5, 20555 }, - { 0x71A7, 20559 }, - { 0x719F, 20563 }, - { 0x71A6, 20567 }, - { 0x71B1, 20571 }, - { 0x71AC, 20575 }, - { 0x7193, 20579 }, - { 0x719C, 20583 }, - { 0x719A, 20587 }, - { 0x71BF, 20591 }, - { 0x7194, 20595 }, - { 0x7197, 20599 }, - { 0x71A1, 20603 }, - { 0x71BE, 20607 }, - { 0x71AE, 20611 }, - { 0x36AB, 20615 }, - { 0x36B0, 20617 }, - { 0x36A9, 20620 }, - { 0x36AA, 20624 }, - { 0x36AF, 20628 }, - { 0x95AD, 20630 }, - { 0x7267, 20631 }, - { 0x725B, 20635 }, - { 0x7260, 20639 }, - { 0x7261, 20643 }, - { 0x725C, 20647 }, - { 0x725E, 20651 }, - { 0x7256, 20655 }, - { 0x7253, 20659 }, - { 0x7252, 20663 }, - { 0x725F, 20667 }, - { 0x7247, 20671 }, - { 0x724D, 20675 }, - { 0x7245, 20679 }, - { 0x725D, 20683 }, - { 0x7259, 20687 }, - { 0x7246, 20691 }, - { 0x7255, 20695 }, - { 0x7257, 20699 }, - { 0x724F, 20703 }, - { 0x7250, 20707 }, - { 0x724A, 20711 }, - { 0x7251, 20715 }, - { 0x7248, 20719 }, - { 0x7254, 20723 }, - { 0x7249, 20727 }, - { 0x724B, 20731 }, - { 0x7244, 20735 }, - { 0x724E, 20739 }, - { 0x724C, 20743 }, - { 0x7258, 20747 }, - { 0x725A, 20751 }, - { 0x7263, 20755 }, - { 0x7264, 20760 }, - { 0x7262, 20765 }, - { 0x7265, 20770 }, - { 0x7266, 20775 }, - { 0x189F, 20780 }, - { 0x18A0, 20783 }, - { 0x18A3, 20787 }, - { 0x18A5, 20791 }, - { 0x18A7, 20795 }, - { 0x18A8, 20799 }, - { 0x18A2, 20806 }, - { 0x18A4, 20810 }, - { 0x18A6, 20815 }, - { 0x18A1, 20820 }, - { 0x1879, 20825 }, - { 0x189D, 20828 }, - { 0x189E, 20831 }, - { 0x187E, 20834 }, - { 0x189A, 20837 }, - { 0x188A, 20840 }, - { 0x1887, 20843 }, - { 0x187B, 20846 }, - { 0x1889, 20849 }, - { 0x1897, 20852 }, - { 0x188D, 20855 }, - { 0x1882, 20858 }, - { 0x1880, 20861 }, - { 0x188B, 20864 }, - { 0x1891, 20867 }, - { 0x1884, 20870 }, - { 0x1894, 20873 }, - { 0x189C, 20876 }, - { 0x189B, 20879 }, - { 0x1896, 20882 }, - { 0x1899, 20885 }, - { 0x187F, 20888 }, - { 0x1886, 20892 }, - { 0x1890, 20896 }, - { 0x188F, 20900 }, - { 0x187D, 20904 }, - { 0x1883, 20908 }, - { 0x1893, 20912 }, - { 0x187A, 20916 }, - { 0x1888, 20920 }, - { 0x187C, 20924 }, - { 0x1898, 20928 }, - { 0x188E, 20932 }, - { 0x1881, 20936 }, - { 0x188C, 20940 }, - { 0x1892, 20944 }, - { 0x1885, 20948 }, - { 0x1895, 20952 }, - { 0x18AD, 20956 }, - { 0x18AF, 20961 }, - { 0x18B0, 20965 }, - { 0x18AE, 20969 }, - { 0x18AB, 20973 }, - { 0x18AA, 20975 }, - { 0x18A9, 20979 }, - { 0x18AC, 20983 }, - { 0x8F89, 20985 }, - { 0x95E9, 20988 }, - { 0x8F24, 20989 }, - { 0x94DA, 20991 }, - { 0x9155, 20992 }, - { 0x233E, 20997 }, - { 0x222C, 20999 }, - { 0x228F, 21003 }, - { 0x9156, 21006 }, - { 0x22BD, 21011 }, - { 0x2352, 21013 }, - { 0x915D, 21017 }, - { 0x2304, 21022 }, - { 0x2246, 21026 }, - { 0x914F, 21030 }, - { 0x22E4, 21035 }, - { 0x2231, 21038 }, - { 0x9331, 21040 }, - { 0x933C, 21043 }, - { 0x9342, 21046 }, - { 0x2749, 21049 }, - { 0x933D, 21053 }, - { 0x9343, 21057 }, - { 0x2286, 21061 }, - { 0x9567, 21064 }, - { 0x953D, 21072 }, - { 0x228B, 21078 }, - { 0x956C, 21081 }, - { 0x9542, 21089 }, - { 0x2288, 21095 }, - { 0x9569, 21098 }, - { 0x953F, 21106 }, - { 0x2287, 21112 }, - { 0x9568, 21115 }, - { 0x953E, 21123 }, - { 0x2289, 21129 }, - { 0x956A, 21132 }, - { 0x9540, 21140 }, - { 0x228A, 21146 }, - { 0x954A, 21149 }, - { 0x956B, 21157 }, - { 0x955F, 21165 }, - { 0x9574, 21173 }, - { 0x9541, 21181 }, - { 0x9535, 21187 }, - { 0x9552, 21193 }, - { 0x9557, 21197 }, - { 0x9554, 21201 }, - { 0x9553, 21205 }, - { 0x9555, 21209 }, - { 0x9556, 21213 }, - { 0x9577, 21217 }, - { 0x957A, 21220 }, - { 0x9580, 21226 }, - { 0x957F, 21229 }, - { 0x9581, 21232 }, - { 0x2314, 21235 }, - { 0x9157, 21239 }, - { 0x2291, 21241 }, - { 0x2750, 21244 }, - { 0x7CB2, 21247 }, - { 0x7CB5, 21254 }, - { 0x7CB4, 21261 }, - { 0x7CB3, 21268 }, - { 0x2747, 21275 }, - { 0x220F, 21278 }, - { 0x220E, 21282 }, - { 0x2247, 21286 }, - { 0x9150, 21290 }, - { 0x7EF4, 21295 }, - { 0x2243, 21299 }, - { 0x9124, 21302 }, - { 0x277D, 21306 }, - { 0x21D6, 21309 }, - { 0x2755, 21312 }, - { 0x2756, 21315 }, - { 0x96CE, 21318 }, - { 0x228C, 21322 }, - { 0x230B, 21325 }, - { 0x2210, 21327 }, - { 0x2211, 21331 }, - { 0x25FF, 21335 }, - { 0x2358, 21337 }, - { 0x21FB, 21341 }, - { 0x2051, 21343 }, - { 0x22B5, 21347 }, - { 0x2619, 21353 }, - { 0x22B4, 21358 }, - { 0x27D3, 21364 }, - { 0x27D4, 21370 }, - { 0x27D1, 21376 }, - { 0x27D2, 21382 }, - { 0x27D5, 21388 }, - { 0x27D7, 21394 }, - { 0x27D6, 21400 }, - { 0x27D8, 21406 }, - { 0x9172, 21412 }, - { 0x222A, 21414 }, - { 0x933E, 21418 }, - { 0x9344, 21422 }, - { 0x2228, 21426 }, - { 0x2751, 21429 }, - { 0x2753, 21432 }, - { 0x204D, 21435 }, - { 0x27EE, 21439 }, - { 0x204E, 21444 }, - { 0x27EF, 21448 }, - { 0x204B, 21453 }, - { 0x27F0, 21457 }, - { 0x204C, 21462 }, - { 0x27F1, 21466 }, - { 0x232C, 21471 }, - { 0x21CC, 21474 }, - { 0x2050, 21476 }, - { 0x90E5, 21480 }, - { 0x27E9, 21483 }, - { 0x21F2, 21486 }, - { 0x2807, 21488 }, - { 0x2292, 21492 }, - { 0x2616, 21495 }, - { 0x2382, 21500 }, - { 0x27EA, 21505 }, - { 0x8ED5, 21508 }, - { 0x274E, 21510 }, - { 0x2617, 21512 }, - { 0x7CB6, 21514 }, - { 0x27ED, 21517 }, - { 0x8FA5, 21519 }, - { 0x913B, 21521 }, - { 0x8FA9, 21523 }, - { 0x2267, 21525 }, - { 0x22F3, 21528 }, - { 0x2302, 21530 }, - { 0x27C6, 21535 }, - { 0x22EE, 21539 }, - { 0x22EF, 21542 }, - { 0x236B, 21545 }, - { 0x274B, 21547 }, - { 0x237F, 21549 }, - { 0x232E, 21553 }, - { 0x9329, 21555 }, - { 0x9332, 21559 }, - { 0x275A, 21563 }, - { 0x21DA, 21566 }, - { 0x27C8, 21569 }, - { 0x2603, 21573 }, - { 0x1CCC, 21575 }, - { 0x27C5, 21578 }, - { 0x21D8, 21582 }, - { 0x223A, 21584 }, - { 0x9132, 21586 }, - { 0x22A7, 21589 }, - { 0x2758, 21593 }, - { 0x23CD, 21596 }, - { 0x1CCD, 21599 }, - { 0x23D0, 21602 }, - { 0x27C7, 21605 }, - { 0x21E0, 21609 }, - { 0x2042, 21613 }, - { 0x21DE, 21617 }, - { 0x9326, 21620 }, - { 0x21EA, 21625 }, - { 0x2043, 21629 }, - { 0x21E8, 21633 }, - { 0x9328, 21636 }, - { 0x21EE, 21641 }, - { 0x2041, 21645 }, - { 0x2045, 21649 }, - { 0x21F0, 21656 }, - { 0x21EC, 21659 }, - { 0x9325, 21662 }, - { 0x21DC, 21667 }, - { 0x21E4, 21669 }, - { 0x2040, 21673 }, - { 0x2044, 21677 }, - { 0x21E6, 21684 }, - { 0x277F, 21687 }, - { 0x21E2, 21690 }, - { 0x2046, 21693 }, - { 0x9327, 21700 }, - { 0x2079, 21705 }, - { 0x7D41, 21707 }, - { 0x7D44, 21709 }, - { 0x7D4A, 21711 }, - { 0x7D59, 21713 }, - { 0x7D45, 21715 }, - { 0x7D4B, 21717 }, - { 0x7D5A, 21719 }, - { 0x7D77, 21721 }, - { 0x7DB2, 21723 }, - { 0x7D42, 21725 }, - { 0x7D4C, 21727 }, - { 0x7D5B, 21729 }, - { 0x7D78, 21731 }, - { 0x7DB3, 21733 }, - { 0x7D47, 21735 }, - { 0x7D5D, 21737 }, - { 0x7D7A, 21739 }, - { 0x7DB5, 21741 }, - { 0x7D51, 21743 }, - { 0x7D7E, 21745 }, - { 0x7DB9, 21747 }, - { 0x7D68, 21749 }, - { 0x7DC1, 21751 }, - { 0x7D92, 21753 }, - { 0x9602, 21755 }, - { 0x9603, 21757 }, - { 0x9605, 21759 }, - { 0x9609, 21761 }, - { 0x9611, 21763 }, - { 0x9620, 21765 }, - { 0x7D43, 21767 }, - { 0x7D46, 21769 }, - { 0x7D4D, 21771 }, - { 0x7D5C, 21773 }, - { 0x7D79, 21775 }, - { 0x7DB4, 21777 }, - { 0x7D48, 21779 }, - { 0x7D4E, 21781 }, - { 0x7D5E, 21783 }, - { 0x7D7B, 21785 }, - { 0x7DB6, 21787 }, - { 0x7D52, 21789 }, - { 0x7D61, 21791 }, - { 0x7D7F, 21793 }, - { 0x7DBA, 21795 }, - { 0x7D69, 21797 }, - { 0x7D86, 21799 }, - { 0x7DC2, 21801 }, - { 0x7D93, 21803 }, - { 0x7DD1, 21805 }, - { 0x7DED, 21807 }, - { 0x7D49, 21809 }, - { 0x7D4F, 21811 }, - { 0x7D5F, 21813 }, - { 0x7D7C, 21815 }, - { 0x7DB7, 21817 }, - { 0x7D53, 21819 }, - { 0x7D62, 21821 }, - { 0x7D80, 21823 }, - { 0x7DBB, 21825 }, - { 0x7D6A, 21827 }, - { 0x7D87, 21829 }, - { 0x7DC3, 21831 }, - { 0x7D94, 21833 }, - { 0x7DD2, 21835 }, - { 0x7DEE, 21837 }, - { 0x7D55, 21839 }, - { 0x7D64, 21841 }, - { 0x7D82, 21843 }, - { 0x7DBD, 21845 }, - { 0x7D6C, 21847 }, - { 0x7D89, 21849 }, - { 0x7DC5, 21851 }, - { 0x7D96, 21853 }, - { 0x7DD4, 21855 }, - { 0x7DF0, 21857 }, - { 0x7D70, 21859 }, - { 0x7D8C, 21861 }, - { 0x7DC9, 21863 }, - { 0x7D9A, 21865 }, - { 0x7DD7, 21867 }, - { 0x7DF4, 21869 }, - { 0x7DA2, 21871 }, - { 0x7DDD, 21873 }, - { 0x7DFC, 21875 }, - { 0x7E0C, 21877 }, - { 0x9604, 21879 }, - { 0x9606, 21881 }, - { 0x960A, 21883 }, - { 0x9612, 21885 }, - { 0x9621, 21887 }, - { 0x9607, 21889 }, - { 0x960B, 21891 }, - { 0x9613, 21893 }, - { 0x9622, 21895 }, - { 0x960D, 21897 }, - { 0x9615, 21899 }, - { 0x9624, 21901 }, - { 0x9618, 21903 }, - { 0x9628, 21905 }, - { 0x962F, 21907 }, - { 0x7D50, 21909 }, - { 0x7D60, 21911 }, - { 0x7D7D, 21913 }, - { 0x7DB8, 21915 }, - { 0x7D54, 21917 }, - { 0x7D63, 21919 }, - { 0x7D81, 21921 }, - { 0x7DBC, 21923 }, - { 0x7D6B, 21925 }, - { 0x7D88, 21927 }, - { 0x7DC4, 21929 }, - { 0x7D95, 21931 }, - { 0x7DD3, 21933 }, - { 0x7DEF, 21935 }, - { 0x7D56, 21937 }, - { 0x7D65, 21939 }, - { 0x7D83, 21941 }, - { 0x7DBE, 21943 }, - { 0x7D6D, 21945 }, - { 0x7DC6, 21947 }, - { 0x7D97, 21949 }, - { 0x7DF1, 21951 }, - { 0x7D71, 21953 }, - { 0x7D8D, 21955 }, - { 0x7DCA, 21957 }, - { 0x7D9B, 21959 }, - { 0x7DD8, 21961 }, - { 0x7DF5, 21963 }, - { 0x7DA3, 21965 }, - { 0x7DDE, 21967 }, - { 0x7DFD, 21969 }, - { 0x7E0D, 21971 }, - { 0x7D57, 21973 }, - { 0x7D66, 21975 }, - { 0x7D84, 21977 }, - { 0x7DBF, 21979 }, - { 0x7D6E, 21981 }, - { 0x7D8A, 21983 }, - { 0x7DC7, 21985 }, - { 0x7D98, 21987 }, - { 0x7DD5, 21989 }, - { 0x7DF2, 21991 }, - { 0x7D72, 21993 }, - { 0x7DCB, 21995 }, - { 0x7D9C, 21997 }, - { 0x7DF6, 21999 }, - { 0x7DA4, 22001 }, - { 0x7DDF, 22003 }, - { 0x7DFE, 22005 }, - { 0x7E0E, 22007 }, - { 0x7D74, 22009 }, - { 0x7D8F, 22011 }, - { 0x7DCD, 22013 }, - { 0x7D9E, 22015 }, - { 0x7DDA, 22017 }, - { 0x7DF8, 22019 }, - { 0x7DA6, 22021 }, - { 0x7DE1, 22023 }, - { 0x7E00, 22025 }, - { 0x7E10, 22027 }, - { 0x7DAA, 22029 }, - { 0x7DE5, 22031 }, - { 0x7E04, 22033 }, - { 0x7E14, 22035 }, - { 0x9608, 22037 }, - { 0x960C, 22039 }, - { 0x9614, 22041 }, - { 0x9623, 22043 }, - { 0x960E, 22045 }, - { 0x9625, 22047 }, - { 0x9619, 22049 }, - { 0x9629, 22051 }, - { 0x9630, 22053 }, - { 0x960F, 22055 }, - { 0x9616, 22057 }, - { 0x9626, 22059 }, - { 0x961A, 22061 }, - { 0x9631, 22063 }, - { 0x961C, 22065 }, - { 0x962B, 22067 }, - { 0x9633, 22069 }, - { 0x9637, 22071 }, - { 0x7D58, 22073 }, - { 0x7D67, 22075 }, - { 0x7D85, 22077 }, - { 0x7DC0, 22079 }, - { 0x7D6F, 22081 }, - { 0x7D8B, 22083 }, - { 0x7DC8, 22085 }, - { 0x7D99, 22087 }, - { 0x7DD6, 22089 }, - { 0x7DF3, 22091 }, - { 0x7D73, 22093 }, - { 0x7D8E, 22095 }, - { 0x7DCC, 22097 }, - { 0x7D9D, 22099 }, - { 0x7DD9, 22101 }, - { 0x7DF7, 22103 }, - { 0x7DA5, 22105 }, - { 0x7DE0, 22107 }, - { 0x7DFF, 22109 }, - { 0x7E0F, 22111 }, - { 0x7D75, 22113 }, - { 0x7D90, 22115 }, - { 0x7DCE, 22117 }, - { 0x7D9F, 22119 }, - { 0x7DDB, 22121 }, - { 0x7DF9, 22123 }, - { 0x7DA7, 22125 }, - { 0x7DE2, 22127 }, - { 0x7E01, 22129 }, - { 0x7E11, 22131 }, - { 0x7DAB, 22133 }, - { 0x7DE6, 22135 }, - { 0x7E05, 22137 }, - { 0x7E15, 22139 }, - { 0x7E1C, 22141 }, - { 0x7D76, 22143 }, - { 0x7D91, 22145 }, - { 0x7DCF, 22147 }, - { 0x7DA0, 22149 }, - { 0x7DDC, 22151 }, - { 0x7DFA, 22153 }, - { 0x7DA8, 22155 }, - { 0x7DE3, 22157 }, - { 0x7E02, 22159 }, - { 0x7E12, 22161 }, - { 0x7DAC, 22163 }, - { 0x7DE7, 22165 }, - { 0x7E06, 22167 }, - { 0x7E16, 22169 }, - { 0x7E1D, 22171 }, - { 0x7DAE, 22173 }, - { 0x7DE9, 22175 }, - { 0x7E08, 22177 }, - { 0x7E18, 22179 }, - { 0x7E1F, 22181 }, - { 0x7E22, 22183 }, - { 0x9610, 22185 }, - { 0x9617, 22187 }, - { 0x9627, 22189 }, - { 0x961B, 22191 }, - { 0x962A, 22193 }, - { 0x9632, 22195 }, - { 0x961D, 22197 }, - { 0x962C, 22199 }, - { 0x9634, 22201 }, - { 0x9638, 22203 }, - { 0x961E, 22205 }, - { 0x962D, 22207 }, - { 0x9635, 22209 }, - { 0x9639, 22211 }, - { 0x963B, 22213 }, - { 0x7DD0, 22215 }, - { 0x7DA1, 22217 }, - { 0x7DFB, 22219 }, - { 0x7DA9, 22221 }, - { 0x7DE4, 22223 }, - { 0x7E03, 22225 }, - { 0x7E13, 22227 }, - { 0x7DAD, 22229 }, - { 0x7DE8, 22231 }, - { 0x7E07, 22233 }, - { 0x7E17, 22235 }, - { 0x7E1E, 22237 }, - { 0x7DAF, 22239 }, - { 0x7DEA, 22241 }, - { 0x7E09, 22243 }, - { 0x7E19, 22245 }, - { 0x7E23, 22247 }, - { 0x7DB0, 22249 }, - { 0x7DEB, 22251 }, - { 0x7E0A, 22253 }, - { 0x7E1A, 22255 }, - { 0x7E20, 22257 }, - { 0x961F, 22259 }, - { 0x962E, 22261 }, - { 0x9636, 22263 }, - { 0x963A, 22265 }, - { 0x963C, 22267 }, - { 0x963D, 22269 }, - { 0x7DB1, 22271 }, - { 0x7DEC, 22273 }, - { 0x7E0B, 22275 }, - { 0x7E1B, 22277 }, - { 0x7E21, 22279 }, - { 0x7E24, 22281 }, - { 0x7E25, 22283 }, - { 0x7E26, 22285 }, - { 0x908D, 22287 }, - { 0x950E, 22288 }, - { 0x8F11, 22289 }, - { 0x0297, 22290 }, - { 0x951F, 22291 }, - { 0x9023, 22292 }, - { 0x9527, 22295 }, - { 0x943C, 22296 }, - { 0x14BA, 22298 }, - { 0x14BB, 22302 }, - { 0x14A8, 22306 }, - { 0x14A9, 22309 }, - { 0x14AA, 22312 }, - { 0x14B2, 22315 }, - { 0x14AF, 22318 }, - { 0x14AC, 22321 }, - { 0x14B9, 22324 }, - { 0x14AB, 22327 }, - { 0x14B6, 22330 }, - { 0x14B3, 22333 }, - { 0x14B0, 22336 }, - { 0x14B1, 22339 }, - { 0x14B5, 22342 }, - { 0x14B8, 22345 }, - { 0x14AE, 22348 }, - { 0x14B7, 22351 }, - { 0x14B4, 22354 }, - { 0x14AD, 22357 }, - { 0x9018, 22360 }, - { 0x8F1F, 22363 }, - { 0x92A2, 22364 }, - { 0x1CB8, 22365 }, - { 0x1CC1, 22366 }, - { 0x0286, 22369 }, - { 0x22DF, 22370 }, - { 0x95A9, 22371 }, - { 0x907B, 22372 }, - { 0x906C, 22376 }, - { 0x907C, 22383 }, - { 0x233F, 22387 }, - { 0x9500, 22389 }, - { 0x1FF1, 22390 }, - { 0x9103, 22393 }, - { 0x9108, 22397 }, - { 0x910C, 22401 }, - { 0x9104, 22405 }, - { 0x9107, 22409 }, - { 0x9106, 22413 }, - { 0x910B, 22417 }, - { 0x910A, 22421 }, - { 0x9109, 22425 }, - { 0x9105, 22429 }, - { 0x910D, 22433 }, - { 0x910E, 22437 }, - { 0x910F, 22441 }, - { 0x9114, 22444 }, - { 0x9118, 22447 }, - { 0x9110, 22450 }, - { 0x9113, 22453 }, - { 0x9112, 22456 }, - { 0x9117, 22459 }, - { 0x9116, 22462 }, - { 0x9115, 22465 }, - { 0x9111, 22468 }, - { 0x9119, 22471 }, - { 0x911A, 22474 }, - { 0x1CD0, 22477 }, - { 0x222D, 22479 }, - { 0x8EDA, 22480 }, - { 0x8EDB, 22483 }, - { 0x8EDD, 22486 }, - { 0x8EDC, 22489 }, - { 0x944F, 22492 }, - { 0x001A, 22494 }, - { 0x1D1A, 22495 }, - { 0x1EAB, 22497 }, - { 0x2230, 22499 }, - { 0x000C, 22500 }, - { 0x95D0, 22501 }, - { 0x927E, 22502 }, - { 0x2254, 22505 }, - { 0x2255, 22508 }, - { 0x2378, 22511 }, - { 0x2A47, 22513 }, - { 0x2A46, 22518 }, - { 0x90F5, 22523 }, - { 0x90F4, 22525 }, - { 0x9004, 22530 }, - { 0x23DC, 22531 }, - { 0x2001, 22533 }, - { 0x1F25, 22536 }, - { 0x1F26, 22539 }, - { 0x8F0E, 22542 }, - { 0x1D93, 22545 }, - { 0x8F14, 22547 }, - { 0x1EB3, 22548 }, - { 0x7C8B, 22551 }, - { 0x7C8C, 22554 }, - { 0x0011, 22557 }, - { 0x20B4, 22559 }, - { 0x8DAD, 22563 }, - { 0x0016, 22566 }, - { 0x20B9, 22568 }, - { 0x8DB2, 22572 }, - { 0x0012, 22575 }, - { 0x20B5, 22577 }, - { 0x8DAE, 22581 }, - { 0x0015, 22584 }, - { 0x20B8, 22586 }, - { 0x8DB1, 22590 }, - { 0x0014, 22593 }, - { 0x20B7, 22595 }, - { 0x8DB0, 22599 }, - { 0x0019, 22602 }, - { 0x20BC, 22604 }, - { 0x8DB5, 22608 }, - { 0x0010, 22611 }, - { 0x8DAB, 22613 }, - { 0x8DAC, 22617 }, - { 0x0018, 22620 }, - { 0x20BB, 22622 }, - { 0x8DB4, 22626 }, - { 0x0017, 22629 }, - { 0x20BA, 22631 }, - { 0x8DB3, 22635 }, - { 0x0013, 22638 }, - { 0x20B6, 22640 }, - { 0x8DAF, 22644 }, - { 0x2BB0, 22647 }, - { 0x50A7, 22649 }, - { 0x50A6, 22655 }, - { 0x50A4, 22659 }, - { 0x509E, 22663 }, - { 0x509C, 22667 }, - { 0x509D, 22671 }, - { 0x50A9, 22675 }, - { 0x50AE, 22679 }, - { 0x50AA, 22683 }, - { 0x50AD, 22687 }, - { 0x50AC, 22691 }, - { 0x50B1, 22695 }, - { 0x50A8, 22699 }, - { 0x50B0, 22703 }, - { 0x50AF, 22707 }, - { 0x50AB, 22711 }, - { 0x5099, 22715 }, - { 0x5095, 22720 }, - { 0x509B, 22725 }, - { 0x5097, 22730 }, - { 0x5094, 22735 }, - { 0x509A, 22740 }, - { 0x5096, 22745 }, - { 0x5098, 22750 }, - { 0x50A5, 22755 }, - { 0x506A, 22759 }, - { 0x5070, 22763 }, - { 0x506C, 22767 }, - { 0x5071, 22771 }, - { 0x506E, 22775 }, - { 0x506B, 22779 }, - { 0x5086, 22783 }, - { 0x5077, 22787 }, - { 0x5081, 22791 }, - { 0x5074, 22795 }, - { 0x5091, 22799 }, - { 0x506D, 22803 }, - { 0x5079, 22807 }, - { 0x5072, 22811 }, - { 0x508C, 22815 }, - { 0x5088, 22819 }, - { 0x5083, 22823 }, - { 0x5084, 22827 }, - { 0x508B, 22831 }, - { 0x5090, 22835 }, - { 0x507F, 22839 }, - { 0x506F, 22843 }, - { 0x508D, 22847 }, - { 0x5089, 22851 }, - { 0x5093, 22855 }, - { 0x5087, 22859 }, - { 0x5078, 22863 }, - { 0x507C, 22867 }, - { 0x5082, 22871 }, - { 0x5075, 22875 }, - { 0x5073, 22879 }, - { 0x5092, 22883 }, - { 0x5076, 22887 }, - { 0x507E, 22891 }, - { 0x507A, 22895 }, - { 0x5085, 22899 }, - { 0x508E, 22903 }, - { 0x508F, 22907 }, - { 0x5080, 22911 }, - { 0x507B, 22915 }, - { 0x508A, 22919 }, - { 0x507D, 22923 }, - { 0x50A3, 22927 }, - { 0x50A1, 22931 }, - { 0x509F, 22935 }, - { 0x50A2, 22938 }, - { 0x50A0, 22942 }, - { 0x91E8, 22947 }, - { 0x905E, 22949 }, - { 0x5014, 22951 }, - { 0x5013, 22954 }, - { 0x5012, 22957 }, - { 0x5011, 22960 }, - { 0x500D, 22963 }, - { 0x5007, 22967 }, - { 0x500F, 22971 }, - { 0x5009, 22975 }, - { 0x5006, 22979 }, - { 0x500E, 22983 }, - { 0x5010, 22987 }, - { 0x5008, 22991 }, - { 0x500A, 22995 }, - { 0x500B, 22999 }, - { 0x500C, 23004 }, - { 0x4FDA, 23009 }, - { 0x4FE0, 23012 }, - { 0x4FDC, 23015 }, - { 0x4FE2, 23018 }, - { 0x4FDE, 23021 }, - { 0x4FDB, 23024 }, - { 0x4FE1, 23027 }, - { 0x4FE3, 23030 }, - { 0x4FFA, 23033 }, - { 0x4FE9, 23036 }, - { 0x4FF5, 23039 }, - { 0x4FE6, 23042 }, - { 0x5004, 23045 }, - { 0x4FDD, 23048 }, - { 0x4FEB, 23051 }, - { 0x4FE4, 23054 }, - { 0x4FFF, 23057 }, - { 0x4FFC, 23060 }, - { 0x4FF7, 23063 }, - { 0x4FF8, 23066 }, - { 0x4FFE, 23069 }, - { 0x5003, 23072 }, - { 0x4FF3, 23075 }, - { 0x4FDF, 23078 }, - { 0x5000, 23081 }, - { 0x4FFD, 23084 }, - { 0x4FFB, 23087 }, - { 0x4FEA, 23090 }, - { 0x4FF0, 23093 }, - { 0x4FF6, 23096 }, - { 0x4FE7, 23099 }, - { 0x4FEC, 23102 }, - { 0x4FE5, 23105 }, - { 0x4FE8, 23108 }, - { 0x4FF2, 23111 }, - { 0x4FED, 23114 }, - { 0x4FF9, 23117 }, - { 0x5005, 23120 }, - { 0x5001, 23123 }, - { 0x5002, 23126 }, - { 0x4FF4, 23129 }, - { 0x4FEE, 23132 }, - { 0x4FF1, 23135 }, - { 0x4FEF, 23138 }, - { 0x5015, 23141 }, - { 0x900A, 23144 }, - { 0x2306, 23145 }, - { 0x94B3, 23148 }, - { 0x226D, 23149 }, - { 0x8EC1, 23150 }, - { 0x8EC0, 23153 }, - { 0x8EC2, 23156 }, - { 0x2031, 23159 }, - { 0x7CB0, 23161 }, - { 0x7CB1, 23164 }, - { 0x235F, 23167 }, - { 0x2360, 23170 }, - { 0x2361, 23174 }, - { 0x2363, 23178 }, - { 0x236D, 23183 }, - { 0x2376, 23188 }, - { 0x2026, 23192 }, - { 0x8FAF, 23194 }, - { 0x8FB0, 23198 }, - { 0x8FB1, 23202 }, - { 0x8FB2, 23206 }, - { 0x8FAE, 23210 }, - { 0x94DE, 23214 }, - { 0x94E0, 23218 }, - { 0x94DF, 23221 }, - { 0x94E1, 23225 }, - { 0x1E5C, 23229 }, - { 0x25E0, 23231 }, - { 0x25DF, 23237 }, - { 0x25DE, 23243 }, - { 0x25DD, 23249 }, - { 0x95D1, 23253 }, - { 0x9178, 23255 }, - { 0x917A, 23257 }, - { 0x9179, 23260 }, - { 0x917F, 23263 }, - { 0x9180, 23265 }, - { 0x917E, 23267 }, - { 0x1FDD, 23269 }, - { 0x1EB4, 23271 }, - { 0x1F35, 23275 }, - { 0x1F36, 23279 }, - { 0x1F33, 23283 }, - { 0x1F34, 23287 }, - { 0x1F2C, 23291 }, - { 0x1F82, 23295 }, - { 0x1F7D, 23299 }, - { 0x1D62, 23303 }, - { 0x9508, 23305 }, - { 0x2257, 23306 }, - { 0x2320, 23308 }, - { 0x8F84, 23309 }, - { 0x9475, 23314 }, - { 0x1CE7, 23317 }, - { 0x2269, 23320 }, - { 0x8ECE, 23323 }, - { 0x8EC6, 23328 }, - { 0x95A5, 23332 }, - { 0x8EB4, 23333 }, - { 0x9171, 23334 }, - { 0x9170, 23338 }, - { 0x916F, 23341 }, - { 0x8F17, 23344 }, - { 0x1F79, 23346 }, - { 0x49D2, 23347 }, - { 0x4990, 23350 }, - { 0x4995, 23353 }, - { 0x4991, 23356 }, - { 0x4994, 23359 }, - { 0x4993, 23362 }, - { 0x4998, 23365 }, - { 0x498F, 23368 }, - { 0x4997, 23371 }, - { 0x4996, 23374 }, - { 0x4992, 23377 }, - { 0x49D3, 23380 }, - { 0x49BC, 23383 }, - { 0x49C0, 23387 }, - { 0x49BD, 23391 }, - { 0x49C6, 23395 }, - { 0x49CC, 23399 }, - { 0x49C5, 23403 }, - { 0x49CF, 23407 }, - { 0x49C1, 23411 }, - { 0x49BF, 23415 }, - { 0x49C4, 23419 }, - { 0x49BE, 23423 }, - { 0x49CD, 23427 }, - { 0x49CE, 23431 }, - { 0x49CA, 23435 }, - { 0x49C2, 23439 }, - { 0x49C9, 23443 }, - { 0x49C3, 23447 }, - { 0x49C7, 23451 }, - { 0x49C8, 23455 }, - { 0x49CB, 23459 }, - { 0x49D0, 23463 }, - { 0x49D1, 23468 }, - { 0x499E, 23473 }, - { 0x4999, 23475 }, - { 0x49B5, 23479 }, - { 0x499A, 23483 }, - { 0x499B, 23487 }, - { 0x499C, 23491 }, - { 0x499D, 23495 }, - { 0x49BA, 23499 }, - { 0x499F, 23501 }, - { 0x49A3, 23505 }, - { 0x49A0, 23509 }, - { 0x49A9, 23513 }, - { 0x49AF, 23517 }, - { 0x49A8, 23521 }, - { 0x49B2, 23525 }, - { 0x49A4, 23529 }, - { 0x49A2, 23533 }, - { 0x49A7, 23537 }, - { 0x49A1, 23541 }, - { 0x49B0, 23545 }, - { 0x49B1, 23549 }, - { 0x49AD, 23553 }, - { 0x49A5, 23557 }, - { 0x49AC, 23561 }, - { 0x49A6, 23565 }, - { 0x49AA, 23569 }, - { 0x49AB, 23573 }, - { 0x49AE, 23577 }, - { 0x49B3, 23581 }, - { 0x49B4, 23586 }, - { 0x49B7, 23591 }, - { 0x49B8, 23595 }, - { 0x49B6, 23600 }, - { 0x49B9, 23604 }, - { 0x49BB, 23608 }, - { 0x950C, 23611 }, - { 0x902E, 23612 }, - { 0x1D92, 23613 }, - { 0x927D, 23615 }, - { 0x9489, 23617 }, - { 0x8EC3, 23620 }, - { 0x95D7, 23623 }, - { 0x0040, 23624 }, - { 0x038C, 23626 }, - { 0x0340, 23629 }, - { 0x038D, 23632 }, - { 0x4121, 23635 }, - { 0x4122, 23639 }, - { 0x4137, 23645 }, - { 0x038B, 23649 }, - { 0x03B2, 23652 }, - { 0x03A7, 23657 }, - { 0x4129, 23660 }, - { 0x4123, 23664 }, - { 0x0386, 23668 }, - { 0x412C, 23671 }, - { 0x412B, 23675 }, - { 0x4128, 23679 }, - { 0x1C7E, 23682 }, - { 0x4125, 23684 }, - { 0x4136, 23687 }, - { 0x1C7F, 23690 }, - { 0x1C62, 23692 }, - { 0x1C61, 23696 }, - { 0x1C63, 23700 }, - { 0x03A6, 23704 }, - { 0x412F, 23707 }, - { 0x0334, 23710 }, - { 0x1C47, 23714 }, - { 0x1C55, 23716 }, - { 0x1C54, 23720 }, - { 0x1C56, 23724 }, - { 0x0339, 23728 }, - { 0x0372, 23734 }, - { 0x0373, 23738 }, - { 0x0376, 23742 }, - { 0x0374, 23746 }, - { 0x037D, 23750 }, - { 0x036D, 23754 }, - { 0x1C00, 23758 }, - { 0x1C4C, 23764 }, - { 0x1BB4, 23772 }, - { 0x1BB8, 23778 }, - { 0x1C1E, 23786 }, - { 0x1BB6, 23796 }, - { 0x1C1C, 23804 }, - { 0x1BBA, 23814 }, - { 0x1C20, 23822 }, - { 0x1C1A, 23832 }, - { 0x1BB3, 23840 }, - { 0x1BB7, 23846 }, - { 0x1C1D, 23854 }, - { 0x1BB5, 23864 }, - { 0x1C1B, 23872 }, - { 0x1BB9, 23882 }, - { 0x1C1F, 23890 }, - { 0x1C19, 23900 }, - { 0x0364, 23908 }, - { 0x1BFF, 23914 }, - { 0x1C4A, 23920 }, - { 0x1C4D, 23928 }, - { 0x1C4E, 23934 }, - { 0x1C4B, 23942 }, - { 0x037C, 23948 }, - { 0x037E, 23952 }, - { 0x0377, 23956 }, - { 0x1C69, 23960 }, - { 0x1C68, 23966 }, - { 0x03B1, 23972 }, - { 0x03AE, 23976 }, - { 0x037A, 23980 }, - { 0x0368, 23984 }, - { 0x0330, 23988 }, - { 0x036F, 23992 }, - { 0x1C02, 23996 }, - { 0x1BC4, 24002 }, - { 0x1BC8, 24008 }, - { 0x1BC6, 24016 }, - { 0x1BCA, 24024 }, - { 0x1BC3, 24032 }, - { 0x1BC7, 24038 }, - { 0x1BC5, 24046 }, - { 0x1BC9, 24054 }, - { 0x0365, 24062 }, - { 0x1C01, 24068 }, - { 0x1C58, 24074 }, - { 0x1C57, 24080 }, - { 0x0380, 24086 }, - { 0x1C5A, 24092 }, - { 0x0347, 24100 }, - { 0x1C59, 24108 }, - { 0x1C5C, 24116 }, - { 0x1C5B, 24124 }, - { 0x036C, 24130 }, - { 0x0367, 24134 }, - { 0x1BFC, 24138 }, - { 0x1C3D, 24144 }, - { 0x1B98, 24152 }, - { 0x1B9C, 24158 }, - { 0x1C0E, 24166 }, - { 0x1B9A, 24176 }, - { 0x1C0C, 24184 }, - { 0x1B9E, 24194 }, - { 0x1C10, 24202 }, - { 0x1C0A, 24212 }, - { 0x1B97, 24220 }, - { 0x1B9B, 24226 }, - { 0x1C0D, 24234 }, - { 0x1B99, 24244 }, - { 0x1C0B, 24252 }, - { 0x1B9D, 24262 }, - { 0x1C0F, 24270 }, - { 0x1C09, 24280 }, - { 0x0362, 24288 }, - { 0x1BFB, 24294 }, - { 0x1C3B, 24300 }, - { 0x1C3A, 24308 }, - { 0x1C39, 24314 }, - { 0x1C3E, 24320 }, - { 0x1C3F, 24326 }, - { 0x1C3C, 24334 }, - { 0x036A, 24340 }, - { 0x0378, 24344 }, - { 0x0369, 24349 }, - { 0x0370, 24353 }, - { 0x0395, 24357 }, - { 0x0371, 24361 }, - { 0x037F, 24365 }, - { 0x1C08, 24369 }, - { 0x1C76, 24375 }, - { 0x1BEC, 24383 }, - { 0x1BF0, 24389 }, - { 0x1C2E, 24397 }, - { 0x1BEE, 24407 }, - { 0x1C2C, 24415 }, - { 0x1BF2, 24425 }, - { 0x1C30, 24433 }, - { 0x1C2A, 24443 }, - { 0x1BEB, 24451 }, - { 0x1BEF, 24457 }, - { 0x1C2D, 24465 }, - { 0x1BED, 24475 }, - { 0x1C2B, 24483 }, - { 0x1BF1, 24493 }, - { 0x1C2F, 24501 }, - { 0x1C29, 24511 }, - { 0x0384, 24519 }, - { 0x1C07, 24525 }, - { 0x1C74, 24531 }, - { 0x1C77, 24539 }, - { 0x1C78, 24545 }, - { 0x1C75, 24553 }, - { 0x0397, 24559 }, - { 0x0379, 24563 }, - { 0x036E, 24567 }, - { 0x0391, 24571 }, - { 0x038F, 24575 }, - { 0x0332, 24580 }, - { 0x0393, 24585 }, - { 0x036B, 24589 }, - { 0x1BFE, 24593 }, - { 0x1BA8, 24599 }, - { 0x1BAC, 24605 }, - { 0x1BAA, 24613 }, - { 0x1BA7, 24621 }, - { 0x1BAB, 24627 }, - { 0x1BA9, 24635 }, - { 0x0363, 24643 }, - { 0x1BFD, 24649 }, - { 0x0375, 24655 }, - { 0x1C04, 24659 }, - { 0x1BD4, 24665 }, - { 0x1BD8, 24671 }, - { 0x1BD6, 24679 }, - { 0x1BD3, 24687 }, - { 0x1BD7, 24693 }, - { 0x1BD5, 24701 }, - { 0x0382, 24709 }, - { 0x1C03, 24715 }, - { 0x037B, 24721 }, - { 0x1C06, 24725 }, - { 0x1BE0, 24731 }, - { 0x1BE4, 24737 }, - { 0x1BE2, 24745 }, - { 0x1BE6, 24753 }, - { 0x1BDF, 24761 }, - { 0x1BE3, 24767 }, - { 0x1BE1, 24775 }, - { 0x1BE5, 24783 }, - { 0x0383, 24791 }, - { 0x1C05, 24797 }, - { 0x1C65, 24803 }, - { 0x1C64, 24809 }, - { 0x0381, 24815 }, - { 0x1C67, 24821 }, - { 0x0366, 24829 }, - { 0x1C66, 24837 }, - { 0x1C6B, 24845 }, - { 0x1C6A, 24853 }, - { 0x0336, 24859 }, - { 0x033A, 24864 }, - { 0x0338, 24871 }, - { 0x0387, 24877 }, - { 0x412A, 24880 }, - { 0x4124, 24884 }, - { 0x033D, 24888 }, - { 0x1C73, 24890 }, - { 0x818D, 24892 }, - { 0x818E, 24896 }, - { 0x818F, 24900 }, - { 0x8190, 24904 }, - { 0x8191, 24908 }, - { 0x8192, 24912 }, - { 0x8193, 24916 }, - { 0x8194, 24920 }, - { 0x8195, 24924 }, - { 0x8196, 24928 }, - { 0x8197, 24932 }, - { 0x8198, 24936 }, - { 0x8199, 24940 }, - { 0x819A, 24944 }, - { 0x819B, 24948 }, - { 0x819C, 24952 }, - { 0x819D, 24956 }, - { 0x819E, 24960 }, - { 0x819F, 24964 }, - { 0x81A0, 24968 }, - { 0x81A1, 24972 }, - { 0x81A2, 24976 }, - { 0x81A3, 24980 }, - { 0x81A4, 24984 }, - { 0x81A5, 24988 }, - { 0x81A6, 24992 }, - { 0x81A7, 24996 }, - { 0x81A8, 25000 }, - { 0x81A9, 25004 }, - { 0x4133, 25008 }, - { 0x4132, 25011 }, - { 0x4134, 25014 }, - { 0x03A9, 25017 }, - { 0x0394, 25020 }, - { 0x0396, 25023 }, - { 0x19BF, 25026 }, - { 0x19C1, 25031 }, - { 0x19C0, 25036 }, - { 0x19BD, 25041 }, - { 0x19BE, 25046 }, - { 0x3A8C, 25051 }, - { 0x0390, 25056 }, - { 0x038E, 25059 }, - { 0x0392, 25063 }, - { 0x03A8, 25066 }, - { 0x03AB, 25070 }, - { 0x4130, 25074 }, - { 0x4148, 25077 }, - { 0x4126, 25081 }, - { 0x4131, 25084 }, - { 0x0385, 25087 }, - { 0x03AA, 25091 }, - { 0x03B4, 25095 }, - { 0x0353, 25101 }, - { 0x0354, 25105 }, - { 0x0357, 25109 }, - { 0x0355, 25113 }, - { 0x035D, 25117 }, - { 0x034E, 25121 }, - { 0x1C52, 25125 }, - { 0x1BBC, 25131 }, - { 0x1BC0, 25137 }, - { 0x1C26, 25145 }, - { 0x1BBE, 25155 }, - { 0x1C24, 25163 }, - { 0x1BC2, 25173 }, - { 0x1C28, 25181 }, - { 0x1C22, 25191 }, - { 0x1BBB, 25199 }, - { 0x1BBF, 25205 }, - { 0x1C25, 25213 }, - { 0x1BBD, 25223 }, - { 0x1C23, 25231 }, - { 0x1BC1, 25241 }, - { 0x1C27, 25249 }, - { 0x1C21, 25259 }, - { 0x0342, 25267 }, - { 0x1C51, 25273 }, - { 0x1C53, 25279 }, - { 0x035C, 25285 }, - { 0x035E, 25289 }, - { 0x0358, 25293 }, - { 0x1C70, 25297 }, - { 0x03B0, 25303 }, - { 0x03AD, 25307 }, - { 0x035A, 25311 }, - { 0x033C, 25315 }, - { 0x0349, 25319 }, - { 0x032F, 25323 }, - { 0x0350, 25327 }, - { 0x1C60, 25331 }, - { 0x1BCC, 25337 }, - { 0x1BD0, 25343 }, - { 0x1BCE, 25351 }, - { 0x1BD2, 25359 }, - { 0x1BCB, 25367 }, - { 0x1BCF, 25373 }, - { 0x1BCD, 25381 }, - { 0x1BD1, 25389 }, - { 0x0343, 25397 }, - { 0x1C5F, 25403 }, - { 0x1C5E, 25409 }, - { 0x1C5D, 25415 }, - { 0x0360, 25421 }, - { 0x034D, 25427 }, - { 0x0348, 25431 }, - { 0x1C43, 25435 }, - { 0x1BA0, 25441 }, - { 0x1BA4, 25447 }, - { 0x1C16, 25455 }, - { 0x1BA2, 25465 }, - { 0x1C14, 25473 }, - { 0x1BA6, 25483 }, - { 0x1C18, 25491 }, - { 0x1C12, 25501 }, - { 0x1B9F, 25509 }, - { 0x1BA3, 25515 }, - { 0x1C15, 25523 }, - { 0x1BA1, 25533 }, - { 0x1C13, 25541 }, - { 0x1BA5, 25551 }, - { 0x1C17, 25559 }, - { 0x1C11, 25569 }, - { 0x033F, 25577 }, - { 0x1C42, 25583 }, - { 0x1C41, 25589 }, - { 0x1C40, 25595 }, - { 0x1C44, 25601 }, - { 0x034B, 25607 }, - { 0x034A, 25611 }, - { 0x0351, 25615 }, - { 0x0352, 25619 }, - { 0x035F, 25623 }, - { 0x1C7C, 25627 }, - { 0x1BF4, 25633 }, - { 0x1BF8, 25639 }, - { 0x1C36, 25647 }, - { 0x1BF6, 25657 }, - { 0x1C34, 25665 }, - { 0x1BFA, 25675 }, - { 0x1C38, 25683 }, - { 0x1C32, 25693 }, - { 0x1BF3, 25701 }, - { 0x1BF7, 25707 }, - { 0x1C35, 25715 }, - { 0x1BF5, 25725 }, - { 0x1C33, 25733 }, - { 0x1BF9, 25743 }, - { 0x1C37, 25751 }, - { 0x1C31, 25761 }, - { 0x0346, 25769 }, - { 0x1C7B, 25775 }, - { 0x1C7D, 25781 }, - { 0x0359, 25787 }, - { 0x034F, 25791 }, - { 0x0331, 25795 }, - { 0x034C, 25800 }, - { 0x1C50, 25804 }, - { 0x1BAE, 25810 }, - { 0x1BB2, 25816 }, - { 0x1BB0, 25824 }, - { 0x1BAD, 25832 }, - { 0x1BB1, 25838 }, - { 0x1BAF, 25846 }, - { 0x0341, 25854 }, - { 0x1C4F, 25860 }, - { 0x0356, 25866 }, - { 0x1C7A, 25870 }, - { 0x1BDA, 25876 }, - { 0x1BDE, 25882 }, - { 0x1BDC, 25890 }, - { 0x1BD9, 25898 }, - { 0x1BDD, 25904 }, - { 0x1BDB, 25912 }, - { 0x0344, 25920 }, - { 0x1C79, 25926 }, - { 0x035B, 25932 }, - { 0x1C6F, 25936 }, - { 0x1BE7, 25942 }, - { 0x1BE9, 25948 }, - { 0x1BE8, 25956 }, - { 0x1BEA, 25964 }, - { 0x0345, 25972 }, - { 0x1C6E, 25978 }, - { 0x1C6D, 25984 }, - { 0x1C6C, 25990 }, - { 0x0361, 25996 }, - { 0x0335, 26002 }, - { 0x03AF, 26007 }, - { 0x03B5, 26012 }, - { 0x03B3, 26019 }, - { 0x4127, 26025 }, - { 0x1C45, 26028 }, - { 0x412E, 26030 }, - { 0x81D2, 26034 }, - { 0x0333, 26037 }, - { 0x0388, 26040 }, - { 0x0389, 26045 }, - { 0x038A, 26052 }, - { 0x412D, 26059 }, - { 0x033B, 26062 }, - { 0x03AC, 26065 }, - { 0x4138, 26070 }, - { 0x4135, 26073 }, - { 0x1C72, 26077 }, - { 0x1C71, 26081 }, - { 0x1C49, 26085 }, - { 0x033E, 26089 }, - { 0x4139, 26092 }, - { 0x1A01, 26095 }, - { 0x1A00, 26100 }, - { 0x19FF, 26105 }, - { 0x19FD, 26110 }, - { 0x19FE, 26115 }, - { 0x40ED, 26120 }, - { 0x40EE, 26125 }, - { 0x40FE, 26130 }, - { 0x40F7, 26136 }, - { 0x40EC, 26142 }, - { 0x4100, 26147 }, - { 0x40F9, 26153 }, - { 0x4103, 26159 }, - { 0x40FC, 26164 }, - { 0x40F5, 26169 }, - { 0x4101, 26174 }, - { 0x40EF, 26180 }, - { 0x40F1, 26184 }, - { 0x40FF, 26189 }, - { 0x40F8, 26195 }, - { 0x40FB, 26201 }, - { 0x40F4, 26206 }, - { 0x40F2, 26211 }, - { 0x40FA, 26216 }, - { 0x40F0, 26222 }, - { 0x40FD, 26226 }, - { 0x40F6, 26231 }, - { 0x40F3, 26236 }, - { 0x4102, 26241 }, - { 0x411C, 26247 }, - { 0x411F, 26252 }, - { 0x4104, 26257 }, - { 0x4109, 26262 }, - { 0x4120, 26267 }, - { 0x4105, 26272 }, - { 0x4116, 26276 }, - { 0x411D, 26281 }, - { 0x4110, 26286 }, - { 0x4108, 26290 }, - { 0x411A, 26294 }, - { 0x411E, 26299 }, - { 0x4115, 26304 }, - { 0x4117, 26308 }, - { 0x4111, 26313 }, - { 0x411B, 26317 }, - { 0x410F, 26322 }, - { 0x4107, 26326 }, - { 0x410A, 26330 }, - { 0x4118, 26335 }, - { 0x4106, 26340 }, - { 0x410E, 26344 }, - { 0x4114, 26348 }, - { 0x410C, 26352 }, - { 0x410D, 26356 }, - { 0x410B, 26362 }, - { 0x4119, 26366 }, - { 0x4112, 26371 }, - { 0x4113, 26375 }, - { 0x1C48, 26381 }, - { 0x81AA, 26383 }, - { 0x81AB, 26387 }, - { 0x81AC, 26391 }, - { 0x81AD, 26395 }, - { 0x81AE, 26399 }, - { 0x81AF, 26403 }, - { 0x81B0, 26407 }, - { 0x81B1, 26411 }, - { 0x81B2, 26415 }, - { 0x81B3, 26419 }, - { 0x81B4, 26423 }, - { 0x81B5, 26427 }, - { 0x81B6, 26431 }, - { 0x81B7, 26435 }, - { 0x81B8, 26439 }, - { 0x81B9, 26443 }, - { 0x81BA, 26447 }, - { 0x81BB, 26451 }, - { 0x81BC, 26455 }, - { 0x81BD, 26459 }, - { 0x81BE, 26463 }, - { 0x81BF, 26467 }, - { 0x81C0, 26471 }, - { 0x81C1, 26475 }, - { 0x81C2, 26479 }, - { 0x81C3, 26483 }, - { 0x81C4, 26487 }, - { 0x81C5, 26491 }, - { 0x81C6, 26495 }, - { 0x81C7, 26499 }, - { 0x81C8, 26503 }, - { 0x81C9, 26507 }, - { 0x81CA, 26511 }, - { 0x81CB, 26515 }, - { 0x81CC, 26519 }, - { 0x81CD, 26523 }, - { 0x81CE, 26527 }, - { 0x0337, 26531 }, - { 0x1C46, 26533 }, - { 0x908A, 26535 }, - { 0x8F02, 26537 }, - { 0x904D, 26539 }, - { 0x9485, 26541 }, - { 0x27FB, 26543 }, - { 0x94DC, 26545 }, - { 0x280A, 26547 }, - { 0x95C4, 26548 }, - { 0x91FE, 26549 }, - { 0x8F47, 26554 }, - { 0x904B, 26560 }, - { 0x9050, 26563 }, - { 0x95FF, 26566 }, - { 0x9052, 26568 }, - { 0x238C, 26570 }, - { 0x238B, 26577 }, - { 0x935D, 26584 }, - { 0x9371, 26588 }, - { 0x9357, 26593 }, - { 0x936F, 26597 }, - { 0x2350, 26602 }, - { 0x2348, 26606 }, - { 0x2782, 26610 }, - { 0x23C1, 26615 }, - { 0x940E, 26618 }, - { 0x9410, 26623 }, - { 0x9411, 26629 }, - { 0x940F, 26635 }, - { 0x2390, 26641 }, - { 0x23D2, 26644 }, - { 0x23D1, 26651 }, - { 0x2340, 26658 }, - { 0x9363, 26661 }, - { 0x9374, 26665 }, - { 0x9376, 26670 }, - { 0x2364, 26675 }, - { 0x2377, 26681 }, - { 0x2346, 26686 }, - { 0x238F, 26689 }, - { 0x2781, 26694 }, - { 0x90FA, 26697 }, - { 0x23D9, 26700 }, - { 0x23C2, 26706 }, - { 0x23C6, 26709 }, - { 0x9219, 26713 }, - { 0x9211, 26718 }, - { 0x9217, 26724 }, - { 0x920F, 26729 }, - { 0x23C4, 26735 }, - { 0x921A, 26739 }, - { 0x9212, 26744 }, - { 0x9218, 26750 }, - { 0x9210, 26755 }, - { 0x23DA, 26761 }, - { 0x932C, 26767 }, - { 0x9336, 26770 }, - { 0x7E46, 26773 }, - { 0x2307, 26781 }, - { 0x2344, 26785 }, - { 0x2784, 26788 }, - { 0x2783, 26790 }, - { 0x230F, 26795 }, - { 0x23CC, 26803 }, - { 0x9065, 26808 }, - { 0x238A, 26811 }, - { 0x2389, 26817 }, - { 0x938B, 26824 }, - { 0x9224, 26827 }, - { 0x2388, 26832 }, - { 0x2387, 26838 }, - { 0x9378, 26845 }, - { 0x9379, 26850 }, - { 0x2372, 26855 }, - { 0x2785, 26858 }, - { 0x9351, 26861 }, - { 0x2374, 26863 }, - { 0x93A5, 26865 }, - { 0x93A1, 26872 }, - { 0x235D, 26878 }, - { 0x23C3, 26880 }, - { 0x9226, 26883 }, - { 0x235A, 26888 }, - { 0x2386, 26892 }, - { 0x9227, 26895 }, - { 0x93A7, 26898 }, - { 0x93A3, 26905 }, - { 0x93A4, 26911 }, - { 0x93A0, 26918 }, - { 0x9698, 26924 }, - { 0x23C5, 26927 }, - { 0x93A6, 26930 }, - { 0x93A2, 26937 }, - { 0x922E, 26943 }, - { 0x2383, 26947 }, - { 0x238E, 26951 }, - { 0x922C, 26955 }, - { 0x23C0, 26958 }, - { 0x23C8, 26962 }, - { 0x23E9, 26966 }, - { 0x239C, 26970 }, - { 0x239A, 26975 }, - { 0x2342, 26981 }, - { 0x239D, 26984 }, - { 0x239B, 26989 }, - { 0x23E5, 26995 }, - { 0x23E3, 27000 }, - { 0x23E4, 27005 }, - { 0x23D4, 27009 }, - { 0x2369, 27014 }, - { 0x236F, 27017 }, - { 0x23CA, 27021 }, - { 0x23E7, 27025 }, - { 0x9288, 27029 }, - { 0x90DD, 27031 }, - { 0x8F22, 27032 }, - { 0x8FC1, 27034 }, - { 0x8FE7, 27035 }, - { 0x8F7A, 27037 }, - { 0x8F9B, 27039 }, - { 0x1F59, 27040 }, - { 0x8F94, 27041 }, - { 0x8F93, 27044 }, - { 0x8F8B, 27046 }, - { 0x1F0E, 27048 }, - { 0x1EAA, 27050 }, - { 0x9098, 27056 }, - { 0x95FE, 27058 }, - { 0x8BE8, 27063 }, - { 0x8BF8, 27067 }, - { 0x8BB9, 27071 }, - { 0x8BCB, 27075 }, - { 0x8BD4, 27080 }, - { 0x8BBE, 27085 }, - { 0x8BD0, 27089 }, - { 0x8BD9, 27094 }, - { 0x8BC2, 27099 }, - { 0x8BDD, 27103 }, - { 0x8BBA, 27108 }, - { 0x8BCC, 27112 }, - { 0x8BD5, 27117 }, - { 0x8BBD, 27122 }, - { 0x8BCF, 27126 }, - { 0x8BD8, 27131 }, - { 0x8BBC, 27136 }, - { 0x8BCE, 27140 }, - { 0x8BD7, 27145 }, - { 0x8BE6, 27150 }, - { 0x8BC1, 27154 }, - { 0x8BD3, 27158 }, - { 0x8BDC, 27163 }, - { 0x8BC0, 27168 }, - { 0x8BD2, 27172 }, - { 0x8BDB, 27177 }, - { 0x8BC6, 27182 }, - { 0x8BE1, 27186 }, - { 0x8BC5, 27191 }, - { 0x8BE0, 27195 }, - { 0x8BE9, 27200 }, - { 0x8BBF, 27204 }, - { 0x8BD1, 27208 }, - { 0x8BDA, 27213 }, - { 0x8BC7, 27218 }, - { 0x8BE2, 27222 }, - { 0x8BBB, 27227 }, - { 0x8BCD, 27231 }, - { 0x8BD6, 27236 }, - { 0x8BC9, 27241 }, - { 0x8BE4, 27245 }, - { 0x8BE7, 27250 }, - { 0x8BCA, 27254 }, - { 0x8BE5, 27258 }, - { 0x8BC4, 27263 }, - { 0x8BDF, 27267 }, - { 0x8BC3, 27272 }, - { 0x8BDE, 27276 }, - { 0x8BEA, 27281 }, - { 0x8BC8, 27285 }, - { 0x8BE3, 27289 }, - { 0x8BEB, 27294 }, - { 0x8BF0, 27299 }, - { 0x8BEC, 27304 }, - { 0x8BEF, 27309 }, - { 0x8BEE, 27314 }, - { 0x8BF3, 27319 }, - { 0x8BF2, 27324 }, - { 0x8BF1, 27329 }, - { 0x8BED, 27334 }, - { 0x8BF9, 27339 }, - { 0x8BFB, 27344 }, - { 0x8BFA, 27350 }, - { 0x8BF6, 27355 }, - { 0x8BF5, 27360 }, - { 0x8BF7, 27365 }, - { 0x8BFC, 27370 }, - { 0x8BF4, 27375 }, - { 0x90D4, 27378 }, - { 0x90D3, 27384 }, - { 0x90D7, 27390 }, - { 0x90D5, 27395 }, - { 0x90D6, 27399 }, - { 0x9009, 27403 }, - { 0x90FE, 27404 }, - { 0x38A7, 27405 }, - { 0x38A8, 27409 }, - { 0x38A5, 27413 }, - { 0x38A6, 27417 }, - { 0x38A4, 27422 }, - { 0x387A, 27426 }, - { 0x387F, 27430 }, - { 0x387B, 27434 }, - { 0x387E, 27438 }, - { 0x387D, 27442 }, - { 0x3882, 27446 }, - { 0x3879, 27450 }, - { 0x3881, 27454 }, - { 0x3880, 27458 }, - { 0x387C, 27462 }, - { 0x38A0, 27466 }, - { 0x38A3, 27470 }, - { 0x38A1, 27474 }, - { 0x38A2, 27478 }, - { 0x389F, 27482 }, - { 0x389B, 27486 }, - { 0x389D, 27490 }, - { 0x3892, 27494 }, - { 0x389A, 27498 }, - { 0x3891, 27502 }, - { 0x3885, 27506 }, - { 0x3898, 27510 }, - { 0x3883, 27514 }, - { 0x3895, 27518 }, - { 0x3890, 27522 }, - { 0x388D, 27526 }, - { 0x389C, 27530 }, - { 0x389E, 27534 }, - { 0x388E, 27538 }, - { 0x3893, 27542 }, - { 0x3887, 27546 }, - { 0x388B, 27550 }, - { 0x3899, 27554 }, - { 0x3896, 27558 }, - { 0x3894, 27562 }, - { 0x3889, 27566 }, - { 0x388C, 27570 }, - { 0x3884, 27574 }, - { 0x3886, 27578 }, - { 0x388A, 27582 }, - { 0x388F, 27586 }, - { 0x3888, 27590 }, - { 0x3897, 27594 }, - { 0x1525, 27598 }, - { 0x1522, 27602 }, - { 0x151D, 27605 }, - { 0x1520, 27608 }, - { 0x151A, 27611 }, - { 0x1519, 27614 }, - { 0x1526, 27617 }, - { 0x1524, 27620 }, - { 0x1527, 27625 }, - { 0x151E, 27629 }, - { 0x151F, 27633 }, - { 0x151C, 27636 }, - { 0x1528, 27639 }, - { 0x1514, 27642 }, - { 0x1515, 27645 }, - { 0x1518, 27648 }, - { 0x152B, 27651 }, - { 0x1523, 27654 }, - { 0x1521, 27657 }, - { 0x1517, 27660 }, - { 0x151B, 27663 }, - { 0x152A, 27666 }, - { 0x1516, 27669 }, - { 0x152D, 27672 }, - { 0x1532, 27675 }, - { 0x152E, 27678 }, - { 0x1531, 27681 }, - { 0x1530, 27684 }, - { 0x1535, 27687 }, - { 0x152C, 27690 }, - { 0x1534, 27693 }, - { 0x1533, 27696 }, - { 0x152F, 27699 }, - { 0x150F, 27702 }, - { 0x1505, 27706 }, - { 0x1509, 27710 }, - { 0x1507, 27714 }, - { 0x1504, 27718 }, - { 0x1510, 27722 }, - { 0x1511, 27726 }, - { 0x1513, 27730 }, - { 0x150E, 27734 }, - { 0x1506, 27738 }, - { 0x150C, 27742 }, - { 0x1512, 27746 }, - { 0x150B, 27750 }, - { 0x150A, 27754 }, - { 0x150D, 27758 }, - { 0x1508, 27762 }, - { 0x1503, 27766 }, - { 0x1502, 27770 }, - { 0x14E2, 27774 }, - { 0x14D3, 27777 }, - { 0x14D5, 27780 }, - { 0x14D8, 27783 }, - { 0x14DA, 27786 }, - { 0x14EE, 27789 }, - { 0x14CE, 27792 }, - { 0x14D0, 27795 }, - { 0x14EF, 27798 }, - { 0x14E9, 27801 }, - { 0x14E6, 27804 }, - { 0x14E1, 27807 }, - { 0x14E4, 27810 }, - { 0x14F0, 27813 }, - { 0x14E8, 27816 }, - { 0x14ED, 27819 }, - { 0x14DD, 27822 }, - { 0x14DF, 27825 }, - { 0x14EA, 27828 }, - { 0x14E7, 27831 }, - { 0x14D4, 27834 }, - { 0x14D6, 27837 }, - { 0x14CF, 27840 }, - { 0x14D1, 27843 }, - { 0x14D2, 27846 }, - { 0x14DC, 27849 }, - { 0x14D7, 27852 }, - { 0x14E3, 27855 }, - { 0x14E5, 27858 }, - { 0x14EB, 27861 }, - { 0x14EC, 27864 }, - { 0x14DE, 27867 }, - { 0x14E0, 27870 }, - { 0x14D9, 27873 }, - { 0x14DB, 27876 }, - { 0x16F1, 27879 }, - { 0x16E1, 27883 }, - { 0x16F8, 27887 }, - { 0x16E8, 27891 }, - { 0x1539, 27895 }, - { 0x1538, 27900 }, - { 0x1536, 27905 }, - { 0x153A, 27910 }, - { 0x1537, 27915 }, - { 0x153B, 27920 }, - { 0x153E, 27925 }, - { 0x153D, 27930 }, - { 0x153F, 27935 }, - { 0x153C, 27940 }, - { 0x16F0, 27945 }, - { 0x16E0, 27949 }, - { 0x16F2, 27953 }, - { 0x16E2, 27957 }, - { 0x16EF, 27961 }, - { 0x16DF, 27965 }, - { 0x16F3, 27969 }, - { 0x16E3, 27973 }, - { 0x16FB, 27977 }, - { 0x16EB, 27981 }, - { 0x16FA, 27985 }, - { 0x16EA, 27989 }, - { 0x16FC, 27993 }, - { 0x16EC, 27997 }, - { 0x16F9, 28001 }, - { 0x16E9, 28005 }, - { 0x16FD, 28009 }, - { 0x16ED, 28013 }, - { 0x16F6, 28017 }, - { 0x16E6, 28021 }, - { 0x16F5, 28025 }, - { 0x16E5, 28029 }, - { 0x16F7, 28033 }, - { 0x16E7, 28037 }, - { 0x16F4, 28041 }, - { 0x16E4, 28045 }, - { 0x16EE, 28049 }, - { 0x16DE, 28052 }, - { 0x1529, 28055 }, - { 0x14FB, 28059 }, - { 0x14FD, 28063 }, - { 0x14F3, 28067 }, - { 0x14F5, 28071 }, - { 0x14F9, 28075 }, - { 0x14FC, 28079 }, - { 0x14F2, 28083 }, - { 0x14FE, 28087 }, - { 0x14F1, 28091 }, - { 0x1501, 28095 }, - { 0x14F4, 28099 }, - { 0x14FF, 28103 }, - { 0x1500, 28109 }, - { 0x14F6, 28115 }, - { 0x14F7, 28119 }, - { 0x14FA, 28123 }, - { 0x14F8, 28127 }, - { 0x7313, 28131 }, - { 0x7314, 28135 }, - { 0x72E8, 28139 }, - { 0x7312, 28143 }, - { 0x72E9, 28147 }, - { 0x72E7, 28151 }, - { 0x7315, 28155 }, - { 0x7318, 28158 }, - { 0x731D, 28162 }, - { 0x7319, 28166 }, - { 0x731C, 28170 }, - { 0x731B, 28174 }, - { 0x7320, 28178 }, - { 0x7317, 28182 }, - { 0x731F, 28186 }, - { 0x731E, 28190 }, - { 0x731A, 28194 }, - { 0x730E, 28198 }, - { 0x730B, 28203 }, - { 0x7310, 28208 }, - { 0x730C, 28213 }, - { 0x730A, 28218 }, - { 0x730F, 28223 }, - { 0x7311, 28228 }, - { 0x730D, 28233 }, - { 0x7316, 28238 }, - { 0x72EA, 28242 }, - { 0x7300, 28246 }, - { 0x72F0, 28250 }, - { 0x72FB, 28254 }, - { 0x72ED, 28258 }, - { 0x7309, 28262 }, - { 0x72F2, 28266 }, - { 0x72EB, 28270 }, - { 0x7305, 28274 }, - { 0x7302, 28278 }, - { 0x72FD, 28282 }, - { 0x72FE, 28286 }, - { 0x7304, 28290 }, - { 0x7307, 28294 }, - { 0x72F9, 28298 }, - { 0x7306, 28302 }, - { 0x7303, 28306 }, - { 0x7301, 28310 }, - { 0x72F1, 28314 }, - { 0x72F7, 28318 }, - { 0x72FC, 28322 }, - { 0x72EE, 28326 }, - { 0x72F3, 28330 }, - { 0x72EC, 28334 }, - { 0x72EF, 28338 }, - { 0x72F4, 28342 }, - { 0x72FF, 28346 }, - { 0x7308, 28350 }, - { 0x72FA, 28354 }, - { 0x72F5, 28358 }, - { 0x72F8, 28362 }, - { 0x72F6, 28366 }, - { 0x8FDB, 28370 }, - { 0x8FAA, 28371 }, - { 0x2404, 28372 }, - { 0x484F, 28375 }, - { 0x4851, 28382 }, - { 0x90E7, 28389 }, - { 0x9384, 28392 }, - { 0x484E, 28395 }, - { 0x4850, 28402 }, - { 0x90E8, 28409 }, - { 0x9385, 28412 }, - { 0x90EA, 28415 }, - { 0x2405, 28418 }, - { 0x264A, 28421 }, - { 0x7E5F, 28425 }, - { 0x7E6A, 28430 }, - { 0x7E7A, 28434 }, - { 0x7E77, 28441 }, - { 0x7E69, 28448 }, - { 0x7E7B, 28455 }, - { 0x7E71, 28461 }, - { 0x7E83, 28469 }, - { 0x7E6F, 28477 }, - { 0x7E7F, 28486 }, - { 0x7E7E, 28492 }, - { 0x7E80, 28498 }, - { 0x7E78, 28504 }, - { 0x7E84, 28513 }, - { 0x7E86, 28519 }, - { 0x7E85, 28527 }, - { 0x7E87, 28533 }, - { 0x7E7D, 28539 }, - { 0x7E66, 28544 }, - { 0x7E6E, 28549 }, - { 0x7E64, 28555 }, - { 0x7E62, 28561 }, - { 0x7E72, 28569 }, - { 0x7E5B, 28577 }, - { 0x7E5C, 28583 }, - { 0x7E5E, 28589 }, - { 0x7E65, 28595 }, - { 0x7E68, 28601 }, - { 0x7E67, 28607 }, - { 0x7E5D, 28613 }, - { 0x7E70, 28618 }, - { 0x7E73, 28624 }, - { 0x7E74, 28630 }, - { 0x7E75, 28636 }, - { 0x7E76, 28644 }, - { 0x7E90, 28651 }, - { 0x7E8E, 28655 }, - { 0x7E8A, 28659 }, - { 0x7E82, 28663 }, - { 0x7E91, 28669 }, - { 0x7E8F, 28673 }, - { 0x7E8B, 28677 }, - { 0x7E88, 28681 }, - { 0x7E60, 28685 }, - { 0x7E61, 28689 }, - { 0x7E81, 28696 }, - { 0x7E63, 28703 }, - { 0x7E6D, 28709 }, - { 0x7E7C, 28715 }, - { 0x7E79, 28721 }, - { 0x7E6C, 28730 }, - { 0x7E6B, 28736 }, - { 0x7E8C, 28745 }, - { 0x7E8D, 28749 }, - { 0x7E89, 28753 }, - { 0x9383, 28757 }, - { 0x938A, 28760 }, - { 0x9381, 28763 }, - { 0x9388, 28766 }, - { 0x221B, 28769 }, - { 0x937F, 28771 }, - { 0x9386, 28774 }, - { 0x90E9, 28777 }, - { 0x9382, 28780 }, - { 0x9389, 28783 }, - { 0x2728, 28786 }, - { 0x9380, 28791 }, - { 0x9387, 28794 }, - { 0x2349, 28797 }, - { 0x0041, 28799 }, - { 0x01E6, 28803 }, - { 0x01A0, 28810 }, - { 0x1B38, 28819 }, - { 0x1B3A, 28826 }, - { 0x00A4, 28833 }, - { 0x01BA, 28840 }, - { 0x1A98, 28849 }, - { 0x00A0, 28856 }, - { 0x00C2, 28862 }, - { 0x1B4E, 28868 }, - { 0x1B4A, 28877 }, - { 0x1B46, 28886 }, - { 0x1B48, 28894 }, - { 0x1B4C, 28902 }, - { 0x018D, 28910 }, - { 0x009F, 28916 }, - { 0x1B31, 28922 }, - { 0x00A2, 28930 }, - { 0x01C0, 28936 }, - { 0x00C0, 28943 }, - { 0x00C4, 28949 }, - { 0x288E, 28955 }, - { 0x01C2, 28961 }, - { 0x00A3, 28968 }, - { 0x019E, 28974 }, - { 0x1A26, 28982 }, - { 0x00A1, 28989 }, - { 0x1B44, 28995 }, - { 0x1B40, 29004 }, - { 0x1B3C, 29013 }, - { 0x1B3E, 29021 }, - { 0x1B42, 29029 }, - { 0x3A58, 29037 }, - { 0x0042, 29042 }, - { 0x1A9A, 29046 }, - { 0x1A9C, 29053 }, - { 0x0212, 29060 }, - { 0x1A9E, 29066 }, - { 0x1A03, 29073 }, - { 0x013F, 29080 }, - { 0x0142, 29086 }, - { 0x1A17, 29092 }, - { 0x3748, 29099 }, - { 0x0043, 29105 }, - { 0x3744, 29109 }, - { 0x00CA, 29115 }, - { 0x0214, 29122 }, - { 0x0147, 29128 }, - { 0x00C6, 29134 }, - { 0x00CC, 29140 }, - { 0x01FB, 29146 }, - { 0x00A6, 29152 }, - { 0x1AA0, 29158 }, - { 0x3745, 29166 }, - { 0x890C, 29173 }, - { 0x00C8, 29180 }, - { 0x0044, 29186 }, - { 0x1AA2, 29190 }, - { 0x1AA4, 29197 }, - { 0x01E0, 29204 }, - { 0x0216, 29210 }, - { 0x1A28, 29216 }, - { 0x1AA6, 29224 }, - { 0x0215, 29231 }, - { 0x00CE, 29237 }, - { 0x3779, 29243 }, - { 0x1A04, 29251 }, - { 0x00D0, 29258 }, - { 0x014B, 29264 }, - { 0x1AA8, 29270 }, - { 0x1A18, 29276 }, - { 0x1AAA, 29283 }, - { 0x890E, 29290 }, - { 0x0045, 29298 }, - { 0x00D6, 29302 }, - { 0x1B50, 29309 }, - { 0x1B52, 29316 }, - { 0x00A8, 29323 }, - { 0x00D4, 29329 }, - { 0x00DA, 29335 }, - { 0x00A7, 29341 }, - { 0x28A1, 29347 }, - { 0x1B54, 29353 }, - { 0x1AB2, 29359 }, - { 0x01C4, 29366 }, - { 0x00D2, 29373 }, - { 0x1AAE, 29379 }, - { 0x1AAC, 29387 }, - { 0x00D8, 29395 }, - { 0x0206, 29401 }, - { 0x01E8, 29407 }, - { 0x1AB4, 29413 }, - { 0x3A5B, 29421 }, - { 0x01C6, 29427 }, - { 0x00AA, 29434 }, - { 0x1A29, 29440 }, - { 0x00A9, 29447 }, - { 0x1B5E, 29453 }, - { 0x1B5A, 29462 }, - { 0x1B56, 29471 }, - { 0x1B58, 29479 }, - { 0x1B5C, 29487 }, - { 0x1AB0, 29495 }, - { 0x0046, 29502 }, - { 0x1AB6, 29506 }, - { 0x0151, 29513 }, - { 0x1A05, 29519 }, - { 0x374A, 29526 }, - { 0x1A19, 29532 }, - { 0x0047, 29539 }, - { 0x00E0, 29543 }, - { 0x021F, 29550 }, - { 0x01B4, 29556 }, - { 0x00DE, 29562 }, - { 0x01A6, 29568 }, - { 0x1AB8, 29574 }, - { 0x01A4, 29580 }, - { 0x00E2, 29586 }, - { 0x3752, 29592 }, - { 0x1A1A, 29599 }, - { 0x00DC, 29606 }, - { 0x0048, 29612 }, - { 0x1ABA, 29616 }, - { 0x1ABC, 29623 }, - { 0x0225, 29630 }, - { 0x1B2D, 29636 }, - { 0x1AC2, 29643 }, - { 0x01DE, 29650 }, - { 0x00E6, 29656 }, - { 0x1AC0, 29662 }, - { 0x3746, 29668 }, - { 0x2891, 29675 }, - { 0x1ABE, 29681 }, - { 0x00E4, 29687 }, - { 0x0049, 29693 }, - { 0x1B62, 29697 }, - { 0x1B60, 29704 }, - { 0x00AC, 29711 }, - { 0x00EC, 29717 }, - { 0x018F, 29723 }, - { 0x00AB, 29729 }, - { 0x00E8, 29735 }, - { 0x1AC4, 29741 }, - { 0x01C8, 29748 }, - { 0x00EA, 29755 }, - { 0x00EE, 29761 }, - { 0x0227, 29767 }, - { 0x8909, 29773 }, - { 0x01CA, 29782 }, - { 0x00AE, 29789 }, - { 0x1AC6, 29795 }, - { 0x1A2D, 29803 }, - { 0x00AD, 29810 }, - { 0x004A, 29816 }, - { 0x01AF, 29820 }, - { 0x0208, 29826 }, - { 0x00F4, 29832 }, - { 0x025C, 29838 }, - { 0x004B, 29844 }, - { 0x1ACA, 29848 }, - { 0x0158, 29855 }, - { 0x1ACC, 29861 }, - { 0x1AC8, 29868 }, - { 0x01A8, 29874 }, - { 0x36F2, 29880 }, - { 0x36F6, 29886 }, - { 0x00F6, 29895 }, - { 0x3754, 29901 }, - { 0x1A1B, 29908 }, - { 0x36F4, 29915 }, - { 0x2893, 29922 }, - { 0x004C, 29928 }, - { 0x0159, 29932 }, - { 0x1ACE, 29938 }, - { 0x1AD0, 29945 }, - { 0x022B, 29954 }, - { 0x8902, 29960 }, - { 0x01F3, 29969 }, - { 0x36FA, 29975 }, - { 0x1AD2, 29982 }, - { 0x00F9, 29989 }, - { 0x00FD, 29995 }, - { 0x288A, 30001 }, - { 0x3A5F, 30008 }, - { 0x00FF, 30016 }, - { 0x3A60, 30023 }, - { 0x022A, 30030 }, - { 0x0101, 30037 }, - { 0x00FB, 30043 }, - { 0x1A1C, 30049 }, - { 0x8900, 30056 }, - { 0x3A5E, 30062 }, - { 0x022C, 30070 }, - { 0x373F, 30077 }, - { 0x1AD4, 30086 }, - { 0x890F, 30093 }, - { 0x004D, 30101 }, - { 0x1AD8, 30105 }, - { 0x1ADA, 30112 }, - { 0x0230, 30119 }, - { 0x1AD6, 30125 }, - { 0x1A06, 30131 }, - { 0x1A1D, 30138 }, - { 0x3A61, 30145 }, - { 0x004E, 30151 }, - { 0x1ADC, 30155 }, - { 0x1ADE, 30162 }, - { 0x01F4, 30169 }, - { 0x0231, 30175 }, - { 0x1AE0, 30182 }, - { 0x015D, 30189 }, - { 0x0103, 30197 }, - { 0x0107, 30203 }, - { 0x01B8, 30209 }, - { 0x00B0, 30215 }, - { 0x1A07, 30221 }, - { 0x0105, 30228 }, - { 0x3756, 30234 }, - { 0x1A1E, 30241 }, - { 0x3742, 30248 }, - { 0x0232, 30254 }, - { 0x1AE2, 30261 }, - { 0x8910, 30268 }, - { 0x3A62, 30276 }, - { 0x0108, 30282 }, - { 0x004F, 30289 }, - { 0x01EE, 30293 }, - { 0x01F0, 30300 }, - { 0x1B64, 30309 }, - { 0x28A3, 30316 }, - { 0x1B66, 30324 }, - { 0x0160, 30331 }, - { 0x1B7A, 30337 }, - { 0x1B76, 30346 }, - { 0x1B72, 30355 }, - { 0x1B74, 30363 }, - { 0x1B78, 30371 }, - { 0x36FC, 30379 }, - { 0x36FE, 30387 }, - { 0x00B2, 30393 }, - { 0x010E, 30399 }, - { 0x0191, 30405 }, - { 0x00B1, 30411 }, - { 0x00B4, 30417 }, - { 0x1AE4, 30423 }, - { 0x01EC, 30431 }, - { 0x1AE6, 30439 }, - { 0x0110, 30447 }, - { 0x01CC, 30454 }, - { 0x010C, 30461 }, - { 0x1AEA, 30467 }, - { 0x1AE8, 30475 }, - { 0x01AA, 30483 }, - { 0x01AC, 30489 }, - { 0x00B7, 30497 }, - { 0x01BE, 30503 }, - { 0x01CE, 30511 }, - { 0x00B5, 30518 }, - { 0x01EA, 30524 }, - { 0x890A, 30532 }, - { 0x00B3, 30539 }, - { 0x1B70, 30545 }, - { 0x1B6C, 30554 }, - { 0x1B68, 30563 }, - { 0x1B6A, 30571 }, - { 0x1B6E, 30579 }, - { 0x0050, 30587 }, - { 0x1AEE, 30591 }, - { 0x0164, 30598 }, - { 0x1AEC, 30604 }, - { 0x1A08, 30610 }, - { 0x1A14, 30617 }, - { 0x3702, 30623 }, - { 0x1A1F, 30631 }, - { 0x3704, 30638 }, - { 0x3706, 30644 }, - { 0x0051, 30651 }, - { 0x025F, 30655 }, - { 0x020A, 30661 }, - { 0x3708, 30668 }, - { 0x370A, 30676 }, - { 0x0052, 30683 }, - { 0x1AF0, 30687 }, - { 0x1AF2, 30694 }, - { 0x1AF4, 30701 }, - { 0x1AF6, 30710 }, - { 0x023B, 30717 }, - { 0x023C, 30724 }, - { 0x0114, 30730 }, - { 0x0118, 30736 }, - { 0x01D0, 30742 }, - { 0x1A09, 30749 }, - { 0x020C, 30756 }, - { 0x0116, 30762 }, - { 0x3758, 30768 }, - { 0x1A20, 30775 }, - { 0x023D, 30782 }, - { 0x1A0A, 30788 }, - { 0x8905, 30797 }, - { 0x01D2, 30806 }, - { 0x8911, 30813 }, - { 0x3A70, 30821 }, - { 0x370C, 30827 }, - { 0x3A6E, 30832 }, - { 0x0053, 30838 }, - { 0x1AF8, 30842 }, - { 0x1AFA, 30849 }, - { 0x1B00, 30856 }, - { 0x890D, 30866 }, - { 0x0241, 30872 }, - { 0x011A, 30878 }, - { 0x1AFC, 30884 }, - { 0x0120, 30893 }, - { 0x1AFE, 30899 }, - { 0x01D8, 30908 }, - { 0x377B, 30915 }, - { 0x01FE, 30923 }, - { 0x1A0B, 30930 }, - { 0x011E, 30937 }, - { 0x375A, 30943 }, - { 0x1A21, 30950 }, - { 0x377E, 30957 }, - { 0x011C, 30964 }, - { 0x8912, 30970 }, - { 0x0054, 30978 }, - { 0x1B02, 30982 }, - { 0x1B04, 30989 }, - { 0x01F5, 30996 }, - { 0x016C, 31002 }, - { 0x88F8, 31008 }, - { 0x1B06, 31017 }, - { 0x0124, 31024 }, - { 0x01DA, 31030 }, - { 0x1A0C, 31037 }, - { 0x0126, 31044 }, - { 0x0122, 31050 }, - { 0x016A, 31056 }, - { 0x288F, 31063 }, - { 0x1B2E, 31070 }, - { 0x0247, 31076 }, - { 0x1B08, 31083 }, - { 0x8913, 31090 }, - { 0x0055, 31098 }, - { 0x0248, 31102 }, - { 0x3A76, 31107 }, - { 0x1B7C, 31116 }, - { 0x1B7E, 31123 }, - { 0x016F, 31130 }, - { 0x1B88, 31136 }, - { 0x1B84, 31145 }, - { 0x1B80, 31154 }, - { 0x1B82, 31162 }, - { 0x1B86, 31170 }, - { 0x3A79, 31178 }, - { 0x012E, 31185 }, - { 0x00B9, 31192 }, - { 0x012C, 31198 }, - { 0x0193, 31204 }, - { 0x00B8, 31210 }, - { 0x3A75, 31216 }, - { 0x0128, 31224 }, - { 0x1B10, 31230 }, - { 0x1B0C, 31238 }, - { 0x0130, 31245 }, - { 0x01D4, 31252 }, - { 0x012A, 31259 }, - { 0x1B12, 31265 }, - { 0x0132, 31273 }, - { 0x376A, 31279 }, - { 0x01D6, 31285 }, - { 0x00BB, 31292 }, - { 0x0197, 31298 }, - { 0x0199, 31306 }, - { 0x019B, 31314 }, - { 0x0195, 31322 }, - { 0x1B0A, 31330 }, - { 0x1A30, 31337 }, - { 0x00BA, 31344 }, - { 0x1B0E, 31350 }, - { 0x0056, 31357 }, - { 0x1B16, 31361 }, - { 0x289D, 31368 }, - { 0x024A, 31374 }, - { 0x289A, 31380 }, - { 0x1B14, 31387 }, - { 0x1A23, 31393 }, - { 0x3710, 31400 }, - { 0x0057, 31407 }, - { 0x1B1E, 31411 }, - { 0x1B20, 31418 }, - { 0x289C, 31425 }, - { 0x1B2F, 31431 }, - { 0x1B1A, 31438 }, - { 0x1B18, 31444 }, - { 0x1B1C, 31450 }, - { 0x0134, 31456 }, - { 0x0058, 31462 }, - { 0x1B22, 31466 }, - { 0x3A7D, 31473 }, - { 0x3A7E, 31481 }, - { 0x3A7F, 31489 }, - { 0x3A80, 31501 }, - { 0x1A24, 31511 }, - { 0x1B24, 31518 }, - { 0x0059, 31524 }, - { 0x1B26, 31528 }, - { 0x1B8C, 31535 }, - { 0x0173, 31542 }, - { 0x1B8E, 31548 }, - { 0x1B96, 31555 }, - { 0x1B30, 31561 }, - { 0x00BC, 31568 }, - { 0x1B8A, 31574 }, - { 0x3A81, 31580 }, - { 0x1B90, 31588 }, - { 0x01F2, 31594 }, - { 0x020E, 31600 }, - { 0x00BE, 31606 }, - { 0x0136, 31612 }, - { 0x005A, 31618 }, - { 0x013B, 31622 }, - { 0x1B2A, 31629 }, - { 0x0250, 31636 }, - { 0x01E4, 31642 }, - { 0x1B2C, 31648 }, - { 0x0139, 31655 }, - { 0x013D, 31661 }, - { 0x01FF, 31667 }, - { 0x1A0D, 31674 }, - { 0x0175, 31681 }, - { 0x1A25, 31687 }, - { 0x2895, 31694 }, - { 0x024F, 31700 }, - { 0x1B28, 31707 }, - { 0x36E4, 31713 }, - { 0x00A5, 31717 }, - { 0x01BC, 31721 }, - { 0x01A2, 31727 }, - { 0x36E6, 31733 }, - { 0x36E8, 31737 }, - { 0x36EA, 31741 }, - { 0x36EC, 31745 }, - { 0x36EE, 31752 }, - { 0x01F7, 31756 }, - { 0x01B2, 31761 }, - { 0x0185, 31765 }, - { 0x0262, 31771 }, - { 0x0264, 31776 }, - { 0x3A8D, 31783 }, - { 0x371C, 31791 }, - { 0x0154, 31795 }, - { 0x371E, 31799 }, - { 0x0188, 31803 }, - { 0x0269, 31807 }, - { 0x026A, 31812 }, - { 0x018B, 31817 }, - { 0x0162, 31821 }, - { 0x3700, 31825 }, - { 0x01E2, 31829 }, - { 0x01F8, 31833 }, - { 0x0267, 31838 }, - { 0x1A11, 31845 }, - { 0x0265, 31851 }, - { 0x3A8E, 31856 }, - { 0x36DA, 31864 }, - { 0x1A02, 31868 }, - { 0x3A77, 31872 }, - { 0x3729, 31876 }, - { 0x3A8A, 31880 }, - { 0x3712, 31884 }, - { 0x3A7A, 31888 }, - { 0x3A7C, 31892 }, - { 0x3A7B, 31900 }, - { 0x3720, 31908 }, - { 0x3722, 31912 }, - { 0x010A, 31916 }, - { 0x8903, 31920 }, - { 0x3A63, 31927 }, - { 0x0242, 31933 }, - { 0x0245, 31937 }, - { 0x88FA, 31943 }, - { 0x88FB, 31950 }, - { 0x1A22, 31959 }, - { 0x1A2F, 31966 }, - { 0x00AF, 31973 }, - { 0x0251, 31977 }, - { 0x0252, 31981 }, - { 0x0179, 31987 }, - { 0x01AE, 31993 }, - { 0x8907, 31999 }, - { 0x1A31, 32006 }, - { 0x0178, 32013 }, - { 0x0162, 32018 }, - { 0x00F7, 32022 }, - { 0x3723, 32026 }, - { 0x3724, 32030 }, - { 0x3725, 32034 }, - { 0x3772, 32038 }, - { 0x0237, 32044 }, - { 0x3726, 32048 }, - { 0x370E, 32052 }, - { 0x19AD, 32057 }, - { 0x3728, 32063 }, - { 0x3766, 32067 }, - { 0x0263, 32071 }, - { 0x8901, 32076 }, - { 0x8908, 32084 }, - { 0x0268, 32092 }, - { 0x88EF, 32097 }, - { 0x289F, 32104 }, - { 0x36D8, 32109 }, - { 0x0226, 32113 }, - { 0x0228, 32119 }, - { 0x1A13, 32123 }, - { 0x022D, 32129 }, - { 0x88F4, 32133 }, - { 0x013E, 32140 }, - { 0x1B32, 32145 }, - { 0x1B34, 32153 }, - { 0x1B33, 32161 }, - { 0x021A, 32169 }, - { 0x1A2A, 32174 }, - { 0x0213, 32182 }, - { 0x3A66, 32187 }, - { 0x1A2E, 32194 }, - { 0x3A89, 32202 }, - { 0x0223, 32207 }, - { 0x0266, 32212 }, - { 0x8906, 32217 }, - { 0x890B, 32225 }, - { 0x0144, 32233 }, - { 0x0167, 32238 }, - { 0x017C, 32243 }, - { 0x371A, 32248 }, - { 0x01DC, 32252 }, - { 0x0210, 32256 }, - { 0x1A27, 32260 }, - { 0x1B36, 32267 }, - { 0x0222, 32271 }, - { 0x3A5C, 32275 }, - { 0x3768, 32280 }, - { 0x3A87, 32284 }, - { 0x0218, 32289 }, - { 0x0219, 32293 }, - { 0x1A2C, 32299 }, - { 0x009E, 32306 }, - { 0x0244, 32311 }, - { 0x00BD, 32317 }, - { 0x3716, 32321 }, - { 0x3718, 32327 }, - { 0x3A5A, 32335 }, - { 0x0234, 32340 }, - { 0x3A57, 32345 }, - { 0x19AE, 32350 }, - { 0x36F8, 32356 }, - { 0x0259, 32361 }, - { 0x0236, 32367 }, - { 0x3780, 32372 }, - { 0x021D, 32378 }, - { 0x3A6F, 32385 }, - { 0x3A71, 32390 }, - { 0x3782, 32397 }, - { 0x3781, 32402 }, - { 0x3788, 32407 }, - { 0x015A, 32411 }, - { 0x3784, 32417 }, - { 0x0220, 32423 }, - { 0x3A5D, 32428 }, - { 0x3A72, 32435 }, - { 0x3A73, 32440 }, - { 0x020F, 32447 }, - { 0x019C, 32452 }, - { 0x1A0E, 32457 }, - { 0x0224, 32462 }, - { 0x026D, 32467 }, - { 0x026E, 32474 }, - { 0x19A0, 32483 }, - { 0x025D, 32488 }, - { 0x3732, 32493 }, - { 0x022E, 32498 }, - { 0x022F, 32503 }, - { 0x3A6A, 32511 }, - { 0x3A6B, 32517 }, - { 0x0238, 32525 }, - { 0x023A, 32530 }, - { 0x0239, 32537 }, - { 0x88F7, 32545 }, - { 0x28A2, 32556 }, - { 0x3A8F, 32563 }, - { 0x8904, 32571 }, - { 0x0246, 32579 }, - { 0x88FC, 32584 }, - { 0x024B, 32591 }, - { 0x024C, 32596 }, - { 0x024D, 32601 }, - { 0x88F5, 32606 }, - { 0x1999, 32613 }, - { 0x19AB, 32618 }, - { 0x3A68, 32623 }, - { 0x3A69, 32630 }, - { 0x3A78, 32638 }, - { 0x199F, 32643 }, - { 0x0211, 32649 }, - { 0x014C, 32654 }, - { 0x3730, 32659 }, - { 0x00F0, 32665 }, - { 0x01F6, 32670 }, - { 0x021E, 32675 }, - { 0x0243, 32682 }, - { 0x376C, 32691 }, - { 0x376E, 32696 }, - { 0x3770, 32701 }, - { 0x0201, 32706 }, - { 0x372B, 32711 }, - { 0x372D, 32716 }, - { 0x1A10, 32721 }, - { 0x3734, 32726 }, - { 0x3736, 32731 }, - { 0x3738, 32736 }, - { 0x3786, 32741 }, - { 0x3A6C, 32746 }, - { 0x0249, 32751 }, - { 0x1A16, 32755 }, - { 0x374C, 32761 }, - { 0x374E, 32766 }, - { 0x3750, 32771 }, - { 0x3A74, 32776 }, - { 0x3A67, 32781 }, - { 0x3A8B, 32786 }, - { 0x3A88, 32791 }, - { 0x1DDF, 32796 }, - { 0x36F0, 32801 }, - { 0x0217, 32808 }, - { 0x88F2, 32813 }, - { 0x023E, 32818 }, - { 0x88F6, 32825 }, - { 0x378E, 32830 }, - { 0x021B, 32836 }, - { 0x021C, 32842 }, - { 0x1A2B, 32850 }, - { 0x88F0, 32859 }, - { 0x373D, 32865 }, - { 0x19A8, 32869 }, - { 0x19AA, 32874 }, - { 0x19B4, 32881 }, - { 0x19A9, 32886 }, - { 0x19B6, 32892 }, - { 0x19B5, 32898 }, - { 0x28A0, 32904 }, - { 0x36DC, 32909 }, - { 0x3774, 32913 }, - { 0x36DE, 32918 }, - { 0x36E0, 32922 }, - { 0x3714, 32928 }, - { 0x3A59, 32933 }, - { 0x3A64, 32938 }, - { 0x3A65, 32943 }, - { 0x1B94, 32950 }, - { 0x1B92, 32955 }, - { 0x36D6, 32960 }, - { 0x36D4, 32965 }, - { 0x1A12, 32970 }, - { 0x1A15, 32977 }, - { 0x3B68, 32984 }, - { 0x3B69, 32988 }, - { 0x3B6A, 32992 }, - { 0x00F2, 32996 }, - { 0x0112, 33000 }, - { 0x3B6E, 33004 }, - { 0x3B6B, 33008 }, - { 0x3B6C, 33012 }, - { 0x3B6D, 33016 }, - { 0x0165, 33022 }, - { 0x19BC, 33025 }, - { 0x017A, 33028 }, - { 0x017E, 33033 }, - { 0x1997, 33036 }, - { 0x0258, 33041 }, - { 0x199B, 33046 }, - { 0x199C, 33051 }, - { 0x199E, 33056 }, - { 0x36E1, 33061 }, - { 0x0221, 33066 }, - { 0x025A, 33071 }, - { 0x025B, 33078 }, - { 0x0229, 33083 }, - { 0x19A1, 33088 }, - { 0x19A2, 33093 }, - { 0x025E, 33098 }, - { 0x88F3, 33103 }, - { 0x19A3, 33110 }, - { 0x19A4, 33117 }, - { 0x0233, 33122 }, - { 0x19A6, 33127 }, - { 0x19AF, 33132 }, - { 0x3760, 33137 }, - { 0x023F, 33142 }, - { 0x3A6D, 33147 }, - { 0x36E2, 33155 }, - { 0x19B2, 33160 }, - { 0x19B3, 33165 }, - { 0x19B7, 33170 }, - { 0x19B8, 33175 }, - { 0x024E, 33180 }, - { 0x19B9, 33185 }, - { 0x1998, 33190 }, - { 0x0235, 33195 }, - { 0x19AC, 33200 }, - { 0x199D, 33205 }, - { 0x19BA, 33210 }, - { 0x3727, 33215 }, - { 0x19A7, 33220 }, - { 0x199A, 33226 }, - { 0x28A4, 33232 }, - { 0x88F1, 33238 }, - { 0x88FF, 33244 }, - { 0x3792, 33250 }, - { 0x19B1, 33256 }, - { 0x0240, 33262 }, - { 0x19A5, 33268 }, - { 0x19B0, 33274 }, - { 0x017F, 33280 }, - { 0x19BB, 33284 }, - { 0x0253, 33289 }, - { 0x0260, 33293 }, - { 0x0180, 33299 }, - { 0x0181, 33303 }, - { 0x026C, 33307 }, - { 0x0257, 33311 }, - { 0x026B, 33315 }, - { 0x0255, 33319 }, - { 0x88FD, 33324 }, - { 0x017D, 33331 }, - { 0x0169, 33338 }, - { 0x0261, 33343 }, - { 0x0182, 33350 }, - { 0x88F9, 33354 }, - { 0x0256, 33361 }, - { 0x88FE, 33365 }, - { 0x0254, 33371 }, - { 0x3740, 33376 }, - { 0x0021, 33380 }, - { 0x01E5, 33384 }, - { 0x019F, 33391 }, - { 0x1B37, 33400 }, - { 0x1B39, 33407 }, - { 0x0084, 33414 }, - { 0x01B9, 33421 }, - { 0x1A97, 33430 }, - { 0x0080, 33437 }, - { 0x00C1, 33443 }, - { 0x1B4D, 33449 }, - { 0x1B49, 33458 }, - { 0x1B45, 33467 }, - { 0x1B47, 33475 }, - { 0x1B4B, 33483 }, - { 0x018C, 33491 }, - { 0x007F, 33497 }, - { 0x0082, 33503 }, - { 0x01BF, 33509 }, - { 0x00BF, 33516 }, - { 0x00C3, 33522 }, - { 0x01F9, 33528 }, - { 0x01C1, 33534 }, - { 0x0083, 33541 }, - { 0x019D, 33547 }, - { 0x0081, 33555 }, - { 0x1B43, 33561 }, - { 0x1B3F, 33570 }, - { 0x1B3B, 33579 }, - { 0x1B3D, 33587 }, - { 0x1B41, 33595 }, - { 0x0022, 33603 }, - { 0x1A99, 33607 }, - { 0x1A9B, 33614 }, - { 0x0140, 33621 }, - { 0x1A9D, 33627 }, - { 0x0202, 33634 }, - { 0x0141, 33640 }, - { 0x3747, 33646 }, - { 0x0023, 33652 }, - { 0x3743, 33656 }, - { 0x00C9, 33662 }, - { 0x0146, 33669 }, - { 0x00C5, 33675 }, - { 0x00CB, 33681 }, - { 0x01FA, 33687 }, - { 0x0086, 33693 }, - { 0x1A9F, 33699 }, - { 0x3775, 33707 }, - { 0x00C7, 33714 }, - { 0x0024, 33720 }, - { 0x1AA1, 33724 }, - { 0x1AA3, 33731 }, - { 0x0149, 33738 }, - { 0x1AA5, 33744 }, - { 0x00CD, 33751 }, - { 0x3778, 33757 }, - { 0x01B1, 33765 }, - { 0x0184, 33773 }, - { 0x00CF, 33783 }, - { 0x014A, 33789 }, - { 0x1AA7, 33795 }, - { 0x1AA9, 33801 }, - { 0x0025, 33808 }, - { 0x00D5, 33812 }, - { 0x1B4F, 33819 }, - { 0x1B51, 33826 }, - { 0x0088, 33833 }, - { 0x00D3, 33839 }, - { 0x00D9, 33845 }, - { 0x0087, 33851 }, - { 0x1B53, 33857 }, - { 0x1AB1, 33863 }, - { 0x01C3, 33870 }, - { 0x00D1, 33877 }, - { 0x1AAD, 33883 }, - { 0x1AAB, 33891 }, - { 0x00D7, 33899 }, - { 0x0205, 33905 }, - { 0x01E7, 33911 }, - { 0x1AB3, 33917 }, - { 0x01C5, 33925 }, - { 0x008A, 33932 }, - { 0x0089, 33938 }, - { 0x1B5D, 33944 }, - { 0x1B59, 33953 }, - { 0x1B55, 33962 }, - { 0x1B57, 33970 }, - { 0x1B5B, 33978 }, - { 0x1AAF, 33986 }, - { 0x0026, 33993 }, - { 0x1AB5, 33997 }, - { 0x0150, 34004 }, - { 0x3749, 34010 }, - { 0x0027, 34016 }, - { 0x00DF, 34020 }, - { 0x0152, 34027 }, - { 0x01B3, 34033 }, - { 0x00DD, 34039 }, - { 0x01A5, 34045 }, - { 0x1AB7, 34051 }, - { 0x01A3, 34057 }, - { 0x00E1, 34063 }, - { 0x3751, 34069 }, - { 0x00DB, 34076 }, - { 0x0028, 34082 }, - { 0x1AB9, 34086 }, - { 0x1ABB, 34093 }, - { 0x375B, 34100 }, - { 0x1AC1, 34106 }, - { 0x01DD, 34113 }, - { 0x00E5, 34119 }, - { 0x1ABF, 34125 }, - { 0x2890, 34131 }, - { 0x1ABD, 34137 }, - { 0x00E3, 34143 }, - { 0x0029, 34149 }, - { 0x00EF, 34153 }, - { 0x1B61, 34160 }, - { 0x1B5F, 34167 }, - { 0x008C, 34174 }, - { 0x00EB, 34180 }, - { 0x018E, 34186 }, - { 0x008B, 34192 }, - { 0x00E7, 34198 }, - { 0x1AC3, 34204 }, - { 0x01C7, 34211 }, - { 0x00E9, 34218 }, - { 0x00ED, 34224 }, - { 0x0156, 34230 }, - { 0x01C9, 34236 }, - { 0x008E, 34243 }, - { 0x1AC5, 34249 }, - { 0x008D, 34257 }, - { 0x002A, 34263 }, - { 0x0207, 34267 }, - { 0x00F3, 34273 }, - { 0x3763, 34279 }, - { 0x002B, 34285 }, - { 0x1AC9, 34289 }, - { 0x0157, 34296 }, - { 0x1ACB, 34302 }, - { 0x1AC7, 34309 }, - { 0x01A7, 34315 }, - { 0x36F1, 34321 }, - { 0x36F5, 34327 }, - { 0x00F5, 34336 }, - { 0x3753, 34342 }, - { 0x36F3, 34349 }, - { 0x2892, 34356 }, - { 0x002C, 34362 }, - { 0x01FC, 34366 }, - { 0x1ACD, 34372 }, - { 0x1ACF, 34379 }, - { 0x375E, 34388 }, - { 0x36F9, 34394 }, - { 0x1AD1, 34401 }, - { 0x00F8, 34408 }, - { 0x00FC, 34414 }, - { 0x0187, 34420 }, - { 0x2889, 34428 }, - { 0x00FE, 34435 }, - { 0x288B, 34442 }, - { 0x0100, 34449 }, - { 0x00FA, 34455 }, - { 0x1AD3, 34461 }, - { 0x002D, 34468 }, - { 0x1AD7, 34472 }, - { 0x1AD9, 34479 }, - { 0x2897, 34486 }, - { 0x1AD5, 34492 }, - { 0x002E, 34498 }, - { 0x1ADB, 34502 }, - { 0x1ADD, 34509 }, - { 0x015C, 34516 }, - { 0x1ADF, 34523 }, - { 0x01DF, 34530 }, - { 0x0102, 34538 }, - { 0x0106, 34544 }, - { 0x01B7, 34550 }, - { 0x018A, 34556 }, - { 0x0090, 34564 }, - { 0x0104, 34570 }, - { 0x3755, 34576 }, - { 0x3741, 34583 }, - { 0x1AE1, 34589 }, - { 0x002F, 34596 }, - { 0x01ED, 34600 }, - { 0x01EF, 34607 }, - { 0x1B63, 34616 }, - { 0x1B65, 34623 }, - { 0x015F, 34630 }, - { 0x1B79, 34636 }, - { 0x1B75, 34645 }, - { 0x1B71, 34654 }, - { 0x1B73, 34662 }, - { 0x1B77, 34670 }, - { 0x36FB, 34678 }, - { 0x36FD, 34686 }, - { 0x0092, 34692 }, - { 0x010D, 34698 }, - { 0x0190, 34704 }, - { 0x0091, 34710 }, - { 0x0094, 34716 }, - { 0x1AE3, 34722 }, - { 0x01EB, 34730 }, - { 0x1AE5, 34738 }, - { 0x010F, 34746 }, - { 0x01CB, 34753 }, - { 0x010B, 34760 }, - { 0x1AE9, 34766 }, - { 0x1AE7, 34774 }, - { 0x015E, 34782 }, - { 0x01A9, 34789 }, - { 0x01AB, 34795 }, - { 0x0097, 34803 }, - { 0x01BD, 34809 }, - { 0x01CD, 34817 }, - { 0x0095, 34824 }, - { 0x01E9, 34830 }, - { 0x0093, 34838 }, - { 0x1B6F, 34844 }, - { 0x1B6B, 34853 }, - { 0x1B67, 34862 }, - { 0x1B69, 34870 }, - { 0x1B6D, 34878 }, - { 0x0030, 34886 }, - { 0x1AED, 34890 }, - { 0x0163, 34897 }, - { 0x1AEB, 34903 }, - { 0x288C, 34909 }, - { 0x3701, 34915 }, - { 0x3703, 34923 }, - { 0x3705, 34929 }, - { 0x0031, 34936 }, - { 0x3707, 34940 }, - { 0x3709, 34948 }, - { 0x0032, 34955 }, - { 0x1AEF, 34959 }, - { 0x1AF1, 34966 }, - { 0x1AF3, 34973 }, - { 0x1AF5, 34982 }, - { 0x288D, 34989 }, - { 0x0113, 34995 }, - { 0x0117, 35001 }, - { 0x01CF, 35007 }, - { 0x020B, 35014 }, - { 0x0115, 35020 }, - { 0x3757, 35026 }, - { 0x01D1, 35033 }, - { 0x370B, 35040 }, - { 0x0033, 35045 }, - { 0x1AF7, 35049 }, - { 0x1AF9, 35056 }, - { 0x1AFF, 35063 }, - { 0x3776, 35073 }, - { 0x0119, 35079 }, - { 0x1AFB, 35085 }, - { 0x011F, 35094 }, - { 0x1AFD, 35100 }, - { 0x01D7, 35109 }, - { 0x377A, 35116 }, - { 0x28A7, 35124 }, - { 0x011D, 35131 }, - { 0x3759, 35137 }, - { 0x377D, 35144 }, - { 0x011B, 35151 }, - { 0x0034, 35157 }, - { 0x1B01, 35161 }, - { 0x1B03, 35168 }, - { 0x016B, 35175 }, - { 0x1B05, 35181 }, - { 0x0123, 35188 }, - { 0x01D9, 35194 }, - { 0x0125, 35201 }, - { 0x0121, 35207 }, - { 0x01FD, 35213 }, - { 0x016D, 35220 }, - { 0x1B07, 35227 }, - { 0x0035, 35234 }, - { 0x0203, 35238 }, - { 0x1B7B, 35243 }, - { 0x1B7D, 35250 }, - { 0x016E, 35257 }, - { 0x1B87, 35263 }, - { 0x1B83, 35272 }, - { 0x1B7F, 35281 }, - { 0x1B81, 35289 }, - { 0x1B85, 35297 }, - { 0x012D, 35305 }, - { 0x0099, 35312 }, - { 0x012B, 35318 }, - { 0x0192, 35324 }, - { 0x0098, 35330 }, - { 0x0127, 35336 }, - { 0x1B0F, 35342 }, - { 0x1B0B, 35350 }, - { 0x012F, 35357 }, - { 0x01D3, 35364 }, - { 0x0129, 35371 }, - { 0x1B11, 35377 }, - { 0x0131, 35385 }, - { 0x3769, 35391 }, - { 0x01D5, 35397 }, - { 0x009B, 35404 }, - { 0x0196, 35410 }, - { 0x0198, 35418 }, - { 0x019A, 35426 }, - { 0x0194, 35434 }, - { 0x1B09, 35442 }, - { 0x009A, 35449 }, - { 0x1B0D, 35455 }, - { 0x0036, 35462 }, - { 0x1B15, 35466 }, - { 0x0171, 35473 }, - { 0x1B13, 35479 }, - { 0x370F, 35485 }, - { 0x0037, 35492 }, - { 0x1B1D, 35496 }, - { 0x1B1F, 35503 }, - { 0x289B, 35510 }, - { 0x1B19, 35516 }, - { 0x1B17, 35522 }, - { 0x1B1B, 35528 }, - { 0x0133, 35534 }, - { 0x0038, 35540 }, - { 0x1B21, 35544 }, - { 0x1B23, 35551 }, - { 0x0039, 35557 }, - { 0x1B25, 35561 }, - { 0x1B8B, 35568 }, - { 0x0172, 35575 }, - { 0x1B8D, 35581 }, - { 0x1B95, 35588 }, - { 0x009C, 35594 }, - { 0x1B89, 35600 }, - { 0x1B8F, 35606 }, - { 0x01F1, 35612 }, - { 0x020D, 35618 }, - { 0x0137, 35624 }, - { 0x0135, 35630 }, - { 0x003A, 35636 }, - { 0x013A, 35640 }, - { 0x1B29, 35647 }, - { 0x01E3, 35654 }, - { 0x1B2B, 35660 }, - { 0x0138, 35667 }, - { 0x013C, 35673 }, - { 0x28A8, 35679 }, - { 0x0174, 35686 }, - { 0x3777, 35692 }, - { 0x2894, 35699 }, - { 0x1B27, 35705 }, - { 0x36E3, 35711 }, - { 0x0085, 35715 }, - { 0x01BB, 35719 }, - { 0x01A1, 35725 }, - { 0x36E5, 35731 }, - { 0x36E7, 35735 }, - { 0x36E9, 35739 }, - { 0x36EB, 35743 }, - { 0x36ED, 35750 }, - { 0x01B0, 35754 }, - { 0x0183, 35758 }, - { 0x371B, 35764 }, - { 0x371D, 35768 }, - { 0x0186, 35772 }, - { 0x0189, 35776 }, - { 0x0161, 35780 }, - { 0x36FF, 35784 }, - { 0x01E1, 35788 }, - { 0x36D9, 35792 }, - { 0x3711, 35796 }, - { 0x3764, 35800 }, - { 0x371F, 35804 }, - { 0x0109, 35808 }, - { 0x0168, 35812 }, - { 0x008F, 35816 }, - { 0x0176, 35820 }, - { 0x01AD, 35824 }, - { 0x0177, 35830 }, - { 0x0161, 35835 }, - { 0x3771, 35839 }, - { 0x370D, 35845 }, - { 0x3765, 35850 }, - { 0x289E, 35854 }, - { 0x36D7, 35859 }, - { 0x0155, 35863 }, - { 0x014F, 35867 }, - { 0x0145, 35872 }, - { 0x377C, 35877 }, - { 0x0143, 35882 }, - { 0x0166, 35887 }, - { 0x017B, 35892 }, - { 0x3719, 35897 }, - { 0x01B6, 35901 }, - { 0x01DB, 35905 }, - { 0x2896, 35909 }, - { 0x0153, 35913 }, - { 0x01B5, 35917 }, - { 0x3767, 35921 }, - { 0x014E, 35925 }, - { 0x1B35, 35929 }, - { 0x0209, 35934 }, - { 0x375F, 35942 }, - { 0x009D, 35948 }, - { 0x3715, 35952 }, - { 0x3717, 35958 }, - { 0x36F7, 35966 }, - { 0x377F, 35971 }, - { 0x3787, 35977 }, - { 0x3789, 35981 }, - { 0x3783, 35987 }, - { 0x375D, 35993 }, - { 0x2898, 35998 }, - { 0x373E, 36003 }, - { 0x3761, 36008 }, - { 0x3731, 36013 }, - { 0x015B, 36018 }, - { 0x3762, 36023 }, - { 0x0204, 36028 }, - { 0x2899, 36033 }, - { 0x372F, 36038 }, - { 0x0148, 36044 }, - { 0x376B, 36049 }, - { 0x376D, 36054 }, - { 0x376F, 36059 }, - { 0x0200, 36064 }, - { 0x372A, 36069 }, - { 0x372C, 36074 }, - { 0x372E, 36079 }, - { 0x3733, 36084 }, - { 0x3735, 36089 }, - { 0x3737, 36094 }, - { 0x3785, 36099 }, - { 0x0170, 36104 }, - { 0x374B, 36108 }, - { 0x374D, 36113 }, - { 0x374F, 36118 }, - { 0x36EF, 36123 }, - { 0x014D, 36130 }, - { 0x378D, 36135 }, - { 0x375C, 36141 }, - { 0x373C, 36147 }, - { 0x36DB, 36151 }, - { 0x3773, 36155 }, - { 0x36DD, 36160 }, - { 0x36DF, 36164 }, - { 0x3713, 36170 }, - { 0x1B93, 36175 }, - { 0x1B91, 36180 }, - { 0x36D5, 36185 }, - { 0x36D3, 36190 }, - { 0x00F1, 36195 }, - { 0x0111, 36199 }, - { 0x1D0C, 36203 }, - { 0x1D0D, 36208 }, - { 0x1D11, 36213 }, - { 0x19F9, 36218 }, - { 0x28A5, 36223 }, - { 0x1D12, 36228 }, - { 0x1D13, 36233 }, - { 0x1D14, 36238 }, - { 0x1D15, 36243 }, - { 0x1D0E, 36248 }, - { 0x1D16, 36253 }, - { 0x19FA, 36258 }, - { 0x1D17, 36263 }, - { 0x1D18, 36268 }, - { 0x19FB, 36273 }, - { 0x19FC, 36278 }, - { 0x1D0F, 36283 }, - { 0x1D10, 36288 }, - { 0x3796, 36293 }, - { 0x3797, 36298 }, - { 0x3795, 36303 }, - { 0x3793, 36308 }, - { 0x3794, 36313 }, - { 0x378F, 36318 }, - { 0x949A, 36323 }, - { 0x8EFE, 36325 }, - { 0x8F4D, 36326 }, - { 0x227A, 36328 }, - { 0x935A, 36329 }, - { 0x9595, 36333 }, - { 0x9354, 36336 }, - { 0x936E, 36340 }, - { 0x27F5, 36345 }, - { 0x9369, 36350 }, - { 0x239E, 36355 }, - { 0x923B, 36361 }, - { 0x91AB, 36363 }, - { 0x9360, 36366 }, - { 0x9347, 36370 }, - { 0x239F, 36373 }, - { 0x21BD, 36379 }, - { 0x9365, 36381 }, - { 0x9333, 36386 }, - { 0x9377, 36389 }, - { 0x934E, 36394 }, - { 0x2384, 36396 }, - { 0x165B, 36399 }, - { 0x165A, 36402 }, - { 0x1659, 36405 }, - { 0x1658, 36408 }, - { 0x165F, 36411 }, - { 0x1664, 36414 }, - { 0x1660, 36417 }, - { 0x1663, 36420 }, - { 0x1662, 36423 }, - { 0x1667, 36426 }, - { 0x165E, 36429 }, - { 0x1666, 36432 }, - { 0x1665, 36435 }, - { 0x1661, 36438 }, - { 0x164F, 36441 }, - { 0x1657, 36445 }, - { 0x1655, 36449 }, - { 0x1653, 36453 }, - { 0x1654, 36457 }, - { 0x1656, 36461 }, - { 0x1652, 36465 }, - { 0x1650, 36469 }, - { 0x1651, 36473 }, - { 0x1643, 36477 }, - { 0x164A, 36481 }, - { 0x1644, 36485 }, - { 0x164B, 36489 }, - { 0x1645, 36493 }, - { 0x1647, 36497 }, - { 0x1649, 36501 }, - { 0x1646, 36505 }, - { 0x1648, 36509 }, - { 0x1636, 36513 }, - { 0x162A, 36516 }, - { 0x1631, 36519 }, - { 0x1627, 36522 }, - { 0x1640, 36525 }, - { 0x162C, 36528 }, - { 0x1625, 36531 }, - { 0x163B, 36534 }, - { 0x1638, 36537 }, - { 0x1633, 36540 }, - { 0x1634, 36543 }, - { 0x163A, 36546 }, - { 0x163F, 36549 }, - { 0x162F, 36552 }, - { 0x163C, 36555 }, - { 0x1639, 36558 }, - { 0x1637, 36561 }, - { 0x162B, 36564 }, - { 0x1632, 36567 }, - { 0x1628, 36570 }, - { 0x162D, 36573 }, - { 0x1626, 36576 }, - { 0x1629, 36579 }, - { 0x1635, 36582 }, - { 0x163D, 36585 }, - { 0x163E, 36588 }, - { 0x1630, 36591 }, - { 0x1642, 36594 }, - { 0x162E, 36597 }, - { 0x1641, 36600 }, - { 0x165D, 36603 }, - { 0x164D, 36606 }, - { 0x164E, 36610 }, - { 0x164C, 36614 }, - { 0x165C, 36618 }, - { 0x1624, 36621 }, - { 0x1D2F, 36624 }, - { 0x94C7, 36627 }, - { 0x7C5C, 36628 }, - { 0x7C5D, 36631 }, - { 0x7C60, 36634 }, - { 0x7C61, 36637 }, - { 0x7C5E, 36643 }, - { 0x7C5F, 36647 }, - { 0x95CF, 36651 }, - { 0x21AD, 36652 }, - { 0x21AE, 36656 }, - { 0x21B1, 36660 }, - { 0x7E42, 36664 }, - { 0x7EE5, 36671 }, - { 0x21B0, 36677 }, - { 0x7E45, 36680 }, - { 0x7EF0, 36685 }, - { 0x220D, 36691 }, - { 0x9691, 36694 }, - { 0x2207, 36698 }, - { 0x7E54, 36703 }, - { 0x7EDD, 36711 }, - { 0x963F, 36716 }, - { 0x963E, 36726 }, - { 0x9642, 36736 }, - { 0x9651, 36745 }, - { 0x964F, 36755 }, - { 0x9652, 36765 }, - { 0x9650, 36774 }, - { 0x964E, 36784 }, - { 0x9641, 36794 }, - { 0x9640, 36804 }, - { 0x9653, 36814 }, - { 0x9140, 36825 }, - { 0x913C, 36828 }, - { 0x7C80, 36831 }, - { 0x7C83, 36835 }, - { 0x913E, 36839 }, - { 0x7CF5, 36843 }, - { 0x7D03, 36850 }, - { 0x7D17, 36855 }, - { 0x7D0B, 36860 }, - { 0x7D07, 36865 }, - { 0x7D0F, 36870 }, - { 0x7D13, 36875 }, - { 0x7CF3, 36880 }, - { 0x7CF1, 36885 }, - { 0x220B, 36890 }, - { 0x7CF7, 36895 }, - { 0x7D1B, 36900 }, - { 0x7CFB, 36905 }, - { 0x7CFF, 36909 }, - { 0x2226, 36913 }, - { 0x913D, 36916 }, - { 0x913F, 36920 }, - { 0x96A0, 36923 }, - { 0x256B, 36928 }, - { 0x232F, 36933 }, - { 0x7EE0, 36936 }, - { 0x964A, 36941 }, - { 0x9647, 36951 }, - { 0x964C, 36960 }, - { 0x9649, 36970 }, - { 0x964D, 36980 }, - { 0x964B, 36989 }, - { 0x9646, 36999 }, - { 0x9645, 37009 }, - { 0x9648, 37019 }, - { 0x9644, 37030 }, - { 0x9643, 37040 }, - { 0x7C4E, 37050 }, - { 0x23FF, 37054 }, - { 0x233A, 37059 }, - { 0x7C81, 37062 }, - { 0x7C86, 37066 }, - { 0x7CF6, 37070 }, - { 0x7D04, 37077 }, - { 0x7D18, 37082 }, - { 0x7D0C, 37087 }, - { 0x7D08, 37092 }, - { 0x7D10, 37097 }, - { 0x7D14, 37102 }, - { 0x7CF4, 37107 }, - { 0x7CF2, 37112 }, - { 0x220A, 37117 }, - { 0x7CF8, 37122 }, - { 0x7D1C, 37127 }, - { 0x7CFC, 37132 }, - { 0x7D00, 37136 }, - { 0x90F1, 37140 }, - { 0x237D, 37145 }, - { 0x222B, 37150 }, - { 0x969F, 37153 }, - { 0x256A, 37158 }, - { 0x237B, 37163 }, - { 0x21B3, 37168 }, - { 0x21AF, 37172 }, - { 0x7EE6, 37176 }, - { 0x21B2, 37183 }, - { 0x7EEF, 37187 }, - { 0x96E6, 37194 }, - { 0x7EDE, 37199 }, - { 0x7C84, 37205 }, - { 0x7EDF, 37210 }, - { 0x7C85, 37216 }, - { 0x7ED9, 37221 }, - { 0x7C7F, 37227 }, - { 0x7EDC, 37232 }, - { 0x7C82, 37238 }, - { 0x7EDA, 37243 }, - { 0x7EDB, 37250 }, - { 0x7C4C, 37257 }, - { 0x9671, 37261 }, - { 0x931F, 37266 }, - { 0x95D9, 37268 }, - { 0x9453, 37269 }, - { 0x95A1, 37271 }, - { 0x1D35, 37273 }, - { 0x949B, 37275 }, - { 0x8EF4, 37276 }, - { 0x81E8, 37278 }, - { 0x81ED, 37281 }, - { 0x81F1, 37284 }, - { 0x81E9, 37287 }, - { 0x81EC, 37290 }, - { 0x81EB, 37293 }, - { 0x81F0, 37296 }, - { 0x81E7, 37299 }, - { 0x81EF, 37302 }, - { 0x81EE, 37305 }, - { 0x81EA, 37308 }, - { 0x81F2, 37311 }, - { 0x81F3, 37314 }, - { 0x81F6, 37317 }, - { 0x81F7, 37320 }, - { 0x81F9, 37323 }, - { 0x81F5, 37326 }, - { 0x81FA, 37329 }, - { 0x81F4, 37332 }, - { 0x81F8, 37335 }, - { 0x8EFB, 37338 }, - { 0x8B51, 37339 }, - { 0x8B56, 37343 }, - { 0x8B52, 37347 }, - { 0x8B55, 37351 }, - { 0x8B54, 37355 }, - { 0x8B59, 37359 }, - { 0x8B58, 37363 }, - { 0x8B57, 37367 }, - { 0x8B53, 37371 }, - { 0x8A8C, 37375 }, - { 0x8A8D, 37380 }, - { 0x8A8E, 37385 }, - { 0x8A94, 37390 }, - { 0x8A95, 37395 }, - { 0x8A96, 37400 }, - { 0x8AA0, 37405 }, - { 0x8AA1, 37410 }, - { 0x8AA2, 37415 }, - { 0x8AA7, 37420 }, - { 0x8AA8, 37425 }, - { 0x8AA9, 37430 }, - { 0x8AAE, 37435 }, - { 0x8AAF, 37440 }, - { 0x8AB0, 37445 }, - { 0x8ACA, 37450 }, - { 0x8ACB, 37455 }, - { 0x8ACC, 37460 }, - { 0x8ABA, 37465 }, - { 0x8ABB, 37470 }, - { 0x8ABC, 37475 }, - { 0x8AD0, 37480 }, - { 0x8AD1, 37485 }, - { 0x8AD2, 37490 }, - { 0x8AC2, 37495 }, - { 0x8AC3, 37500 }, - { 0x8AC4, 37505 }, - { 0x8AD7, 37510 }, - { 0x8AD8, 37515 }, - { 0x8AD9, 37520 }, - { 0x8ADF, 37525 }, - { 0x8AE0, 37530 }, - { 0x8AE1, 37535 }, - { 0x8AE6, 37540 }, - { 0x8AE7, 37545 }, - { 0x8AE8, 37550 }, - { 0x8AEF, 37555 }, - { 0x8AF0, 37560 }, - { 0x8AF1, 37565 }, - { 0x8AF7, 37570 }, - { 0x8AF5, 37575 }, - { 0x8AF9, 37580 }, - { 0x8B04, 37585 }, - { 0x8B2E, 37590 }, - { 0x8A9A, 37595 }, - { 0x8B02, 37600 }, - { 0x8B22, 37605 }, - { 0x8A92, 37610 }, - { 0x8A9E, 37615 }, - { 0x8B1A, 37620 }, - { 0x8B1C, 37625 }, - { 0x8B00, 37630 }, - { 0x8AFD, 37635 }, - { 0x8AC7, 37640 }, - { 0x8AD4, 37645 }, - { 0x8B33, 37650 }, - { 0x8B16, 37655 }, - { 0x8B4D, 37660 }, - { 0x8AA3, 37665 }, - { 0x8B50, 37670 }, - { 0x8A9D, 37675 }, - { 0x8B20, 37680 }, - { 0x8ADD, 37685 }, - { 0x8B40, 37690 }, - { 0x8A8F, 37695 }, - { 0x8B1E, 37700 }, - { 0x8B3F, 37705 }, - { 0x8B18, 37710 }, - { 0x8AD6, 37715 }, - { 0x8B38, 37720 }, - { 0x8B37, 37725 }, - { 0x8B24, 37730 }, - { 0x8AC6, 37735 }, - { 0x8B2D, 37740 }, - { 0x8AEA, 37745 }, - { 0x8A91, 37750 }, - { 0x8B4B, 37755 }, - { 0x8AE9, 37760 }, - { 0x8AC0, 37765 }, - { 0x8AE3, 37770 }, - { 0x8B1B, 37775 }, - { 0x8B05, 37780 }, - { 0x8AFB, 37785 }, - { 0x8AC5, 37790 }, - { 0x8B49, 37795 }, - { 0x8B0C, 37800 }, - { 0x8AFF, 37806 }, - { 0x8AEC, 37811 }, - { 0x8ACD, 37816 }, - { 0x8B03, 37821 }, - { 0x8AD3, 37826 }, - { 0x8B2C, 37831 }, - { 0x8B35, 37836 }, - { 0x8AA4, 37841 }, - { 0x8A90, 37846 }, - { 0x8AF8, 37851 }, - { 0x8AAB, 37856 }, - { 0x8B4F, 37861 }, - { 0x8B19, 37866 }, - { 0x8AB2, 37871 }, - { 0x8AEE, 37876 }, - { 0x8B1D, 37881 }, - { 0x8AAC, 37886 }, - { 0x8AD5, 37891 }, - { 0x8B29, 37896 }, - { 0x8B0D, 37902 }, - { 0x8B36, 37908 }, - { 0x8B2F, 37913 }, - { 0x8AE2, 37918 }, - { 0x8AC9, 37923 }, - { 0x8B10, 37929 }, - { 0x8B30, 37934 }, - { 0x8ADB, 37939 }, - { 0x8A99, 37944 }, - { 0x8B06, 37949 }, - { 0x8ABE, 37954 }, - { 0x8AF2, 37959 }, - { 0x8A98, 37964 }, - { 0x8B3E, 37969 }, - { 0x8B09, 37974 }, - { 0x8AE5, 37979 }, - { 0x8B21, 37984 }, - { 0x8B3A, 37989 }, - { 0x8B32, 37994 }, - { 0x8B3C, 37999 }, - { 0x8A97, 38004 }, - { 0x8B0B, 38009 }, - { 0x8AFC, 38014 }, - { 0x8B3B, 38019 }, - { 0x8AFE, 38024 }, - { 0x8AB6, 38029 }, - { 0x8B2B, 38034 }, - { 0x8AEB, 38039 }, - { 0x8B44, 38044 }, - { 0x8AB7, 38049 }, - { 0x8ABF, 38054 }, - { 0x8AB5, 38059 }, - { 0x8AAD, 38064 }, - { 0x8A9F, 38069 }, - { 0x8AFA, 38074 }, - { 0x8AE4, 38079 }, - { 0x8B2A, 38084 }, - { 0x8A9C, 38090 }, - { 0x8B4A, 38095 }, - { 0x8B1F, 38100 }, - { 0x8B07, 38105 }, - { 0x8AB4, 38110 }, - { 0x8B34, 38115 }, - { 0x8B43, 38120 }, - { 0x8AAA, 38125 }, - { 0x8B47, 38130 }, - { 0x8B41, 38135 }, - { 0x8AC8, 38140 }, - { 0x8AA5, 38145 }, - { 0x8B0F, 38150 }, - { 0x8B08, 38155 }, - { 0x8ADA, 38160 }, - { 0x8B31, 38165 }, - { 0x8B0A, 38170 }, - { 0x8ADC, 38175 }, - { 0x8B28, 38180 }, - { 0x8ABD, 38186 }, - { 0x8AB1, 38191 }, - { 0x8B4C, 38196 }, - { 0x8AB3, 38201 }, - { 0x8B13, 38206 }, - { 0x8B14, 38211 }, - { 0x8B11, 38216 }, - { 0x8AF3, 38221 }, - { 0x8B4E, 38226 }, - { 0x8B39, 38231 }, - { 0x8B25, 38236 }, - { 0x8B25, 38241 }, - { 0x8B48, 38246 }, - { 0x8B26, 38251 }, - { 0x8B26, 38256 }, - { 0x8ADE, 38261 }, - { 0x8AF4, 38267 }, - { 0x8B17, 38272 }, - { 0x8AB9, 38277 }, - { 0x8A93, 38282 }, - { 0x8ACE, 38287 }, - { 0x8ACF, 38292 }, - { 0x8B45, 38297 }, - { 0x8B0E, 38302 }, - { 0x8B15, 38308 }, - { 0x8B46, 38313 }, - { 0x8AF6, 38318 }, - { 0x8B27, 38323 }, - { 0x8B23, 38328 }, - { 0x8AA6, 38333 }, - { 0x8B12, 38338 }, - { 0x8B3D, 38343 }, - { 0x8B42, 38348 }, - { 0x8B01, 38353 }, - { 0x8A9B, 38358 }, - { 0x8AB8, 38363 }, - { 0x8AC1, 38368 }, - { 0x8AED, 38373 }, - { 0x8B5E, 38378 }, - { 0x8B5B, 38384 }, - { 0x8B5A, 38389 }, - { 0x8B5F, 38394 }, - { 0x8B5C, 38400 }, - { 0x8B60, 38405 }, - { 0x8B5D, 38410 }, - { 0x923A, 38415 }, - { 0x0074, 38416 }, - { 0x8EBF, 38418 }, - { 0x1E69, 38420 }, - { 0x2666, 38422 }, - { 0x2656, 38426 }, - { 0x2655, 38431 }, - { 0x2658, 38436 }, - { 0x2657, 38441 }, - { 0x1E99, 38446 }, - { 0x9063, 38448 }, - { 0x906B, 38450 }, - { 0x95DF, 38453 }, - { 0x9294, 38454 }, - { 0x92A1, 38456 }, - { 0x91AE, 38458 }, - { 0x8FB4, 38460 }, - { 0x8FE0, 38461 }, - { 0x95BC, 38463 }, - { 0x8FF7, 38465 }, - { 0x8F58, 38466 }, - { 0x91B2, 38468 }, - { 0x2299, 38469 }, - { 0x229B, 38472 }, - { 0x229A, 38475 }, - { 0x2635, 38478 }, - { 0x1F1A, 38481 }, - { 0x262F, 38483 }, - { 0x2630, 38488 }, - { 0x272B, 38493 }, - { 0x2632, 38497 }, - { 0x2631, 38501 }, - { 0x262C, 38505 }, - { 0x262D, 38509 }, - { 0x262E, 38513 }, - { 0x1F18, 38517 }, - { 0x1F17, 38520 }, - { 0x1E66, 38523 }, - { 0x1E67, 38525 }, - { 0x1E68, 38527 }, - { 0x1F19, 38529 }, - { 0x1E5E, 38531 }, - { 0x1D1F, 38532 }, - { 0x952D, 38534 }, - { 0x8EB6, 38536 }, - { 0x94A5, 38539 }, - { 0x1CAF, 38540 }, - { 0x254E, 38541 }, - { 0x1DEE, 38547 }, - { 0x2554, 38550 }, - { 0x9429, 38557 }, - { 0x2550, 38562 }, - { 0x255D, 38567 }, - { 0x255A, 38574 }, - { 0x2734, 38581 }, - { 0x272C, 38585 }, - { 0x1E2E, 38589 }, - { 0x9215, 38593 }, - { 0x9205, 38597 }, - { 0x920D, 38601 }, - { 0x93D5, 38606 }, - { 0x2793, 38610 }, - { 0x27A1, 38614 }, - { 0x254D, 38620 }, - { 0x1DED, 38626 }, - { 0x1E0F, 38629 }, - { 0x1E48, 38635 }, - { 0x2553, 38640 }, - { 0x9428, 38647 }, - { 0x254F, 38652 }, - { 0x255E, 38657 }, - { 0x2735, 38664 }, - { 0x272D, 38668 }, - { 0x1E2D, 38672 }, - { 0x9213, 38676 }, - { 0x9203, 38680 }, - { 0x920B, 38684 }, - { 0x93D4, 38689 }, - { 0x2792, 38693 }, - { 0x27A0, 38697 }, - { 0x37CD, 38703 }, - { 0x37CB, 38707 }, - { 0x37C6, 38711 }, - { 0x37C9, 38716 }, - { 0x37C5, 38721 }, - { 0x37C8, 38726 }, - { 0x37C7, 38731 }, - { 0x37CA, 38736 }, - { 0x37CE, 38741 }, - { 0x37CC, 38745 }, - { 0x7412, 38749 }, - { 0x7A28, 38752 }, - { 0x7A29, 38754 }, - { 0x7A2A, 38756 }, - { 0x7A2B, 38758 }, - { 0x7A2C, 38760 }, - { 0x7A2D, 38762 }, - { 0x7A2E, 38764 }, - { 0x7A2F, 38766 }, - { 0x7A30, 38768 }, - { 0x7A31, 38770 }, - { 0x7A32, 38772 }, - { 0x7A33, 38774 }, - { 0x7A34, 38776 }, - { 0x7A35, 38778 }, - { 0x7A36, 38780 }, - { 0x7A37, 38782 }, - { 0x7A38, 38784 }, - { 0x7A39, 38786 }, - { 0x7A3A, 38788 }, - { 0x7A3B, 38790 }, - { 0x7A3C, 38792 }, - { 0x7A3D, 38794 }, - { 0x7A3E, 38796 }, - { 0x7A3F, 38798 }, - { 0x7A40, 38800 }, - { 0x7A41, 38802 }, - { 0x7A42, 38804 }, - { 0x7A43, 38806 }, - { 0x7A44, 38808 }, - { 0x7A45, 38810 }, - { 0x7A46, 38812 }, - { 0x7A47, 38814 }, - { 0x7A48, 38816 }, - { 0x7A49, 38818 }, - { 0x7A4A, 38820 }, - { 0x7A4B, 38822 }, - { 0x7A4C, 38824 }, - { 0x7A4D, 38826 }, - { 0x7A4E, 38828 }, - { 0x7A4F, 38830 }, - { 0x7A50, 38832 }, - { 0x7A51, 38834 }, - { 0x7A52, 38836 }, - { 0x7A53, 38838 }, - { 0x7A54, 38840 }, - { 0x7A55, 38842 }, - { 0x7A56, 38844 }, - { 0x7A57, 38846 }, - { 0x7A58, 38848 }, - { 0x7A59, 38850 }, - { 0x7A5A, 38852 }, - { 0x7A5B, 38854 }, - { 0x7A5C, 38856 }, - { 0x7A5D, 38858 }, - { 0x7A5E, 38860 }, - { 0x7A5F, 38862 }, - { 0x7A60, 38864 }, - { 0x7A61, 38866 }, - { 0x7A62, 38868 }, - { 0x7A63, 38870 }, - { 0x7A64, 38872 }, - { 0x7A65, 38874 }, - { 0x7A66, 38876 }, - { 0x7A67, 38878 }, - { 0x7A68, 38880 }, - { 0x7A69, 38882 }, - { 0x7A6A, 38884 }, - { 0x7A6B, 38886 }, - { 0x7A6C, 38888 }, - { 0x7A6D, 38890 }, - { 0x7A6E, 38892 }, - { 0x7A6F, 38894 }, - { 0x7A70, 38896 }, - { 0x7A71, 38898 }, - { 0x7A72, 38900 }, - { 0x7A73, 38902 }, - { 0x7A74, 38904 }, - { 0x7A75, 38906 }, - { 0x7A76, 38908 }, - { 0x7A77, 38910 }, - { 0x7A78, 38912 }, - { 0x7A79, 38914 }, - { 0x7A7A, 38916 }, - { 0x7A7B, 38918 }, - { 0x7A7C, 38920 }, - { 0x7A7D, 38922 }, - { 0x7A7E, 38924 }, - { 0x7A7F, 38926 }, - { 0x7A80, 38928 }, - { 0x7A81, 38930 }, - { 0x7A82, 38932 }, - { 0x7A83, 38934 }, - { 0x7A84, 38936 }, - { 0x7A85, 38938 }, - { 0x7A86, 38940 }, - { 0x7A87, 38942 }, - { 0x7A88, 38944 }, - { 0x7A89, 38946 }, - { 0x7A8A, 38948 }, - { 0x7A8B, 38950 }, - { 0x7A8C, 38952 }, - { 0x7A8D, 38954 }, - { 0x7A8E, 38956 }, - { 0x7A8F, 38958 }, - { 0x7A90, 38960 }, - { 0x7A91, 38962 }, - { 0x7A92, 38964 }, - { 0x7A93, 38966 }, - { 0x7A94, 38968 }, - { 0x7A95, 38970 }, - { 0x7A96, 38972 }, - { 0x7A97, 38974 }, - { 0x7A98, 38976 }, - { 0x7A99, 38978 }, - { 0x7A9A, 38980 }, - { 0x7A9B, 38982 }, - { 0x7A9C, 38984 }, - { 0x7A9D, 38986 }, - { 0x7A9E, 38988 }, - { 0x7A9F, 38990 }, - { 0x7AA0, 38992 }, - { 0x7AA1, 38994 }, - { 0x7AA2, 38996 }, - { 0x7AA3, 38998 }, - { 0x7AA4, 39000 }, - { 0x7AA5, 39002 }, - { 0x7AA6, 39004 }, - { 0x7AA7, 39006 }, - { 0x7AA8, 39008 }, - { 0x7AA9, 39010 }, - { 0x7AAA, 39012 }, - { 0x7AAB, 39014 }, - { 0x7AAC, 39016 }, - { 0x7AAD, 39018 }, - { 0x7AAE, 39020 }, - { 0x7AAF, 39022 }, - { 0x7AB0, 39024 }, - { 0x7AB1, 39026 }, - { 0x7AB2, 39028 }, - { 0x7AB3, 39030 }, - { 0x7AB4, 39032 }, - { 0x7AB5, 39034 }, - { 0x7AB6, 39036 }, - { 0x7AB7, 39038 }, - { 0x7AB8, 39040 }, - { 0x7AB9, 39042 }, - { 0x7ABA, 39044 }, - { 0x7ABB, 39046 }, - { 0x7ABC, 39048 }, - { 0x7ABD, 39050 }, - { 0x7ABE, 39052 }, - { 0x7ABF, 39054 }, - { 0x7AC0, 39056 }, - { 0x7AC1, 39058 }, - { 0x7AC2, 39060 }, - { 0x7AC3, 39062 }, - { 0x7AC4, 39064 }, - { 0x7AC5, 39066 }, - { 0x7AC6, 39068 }, - { 0x7AC7, 39070 }, - { 0x7AC8, 39072 }, - { 0x7AC9, 39074 }, - { 0x7ACA, 39076 }, - { 0x7ACB, 39078 }, - { 0x7ACC, 39080 }, - { 0x7ACD, 39082 }, - { 0x7ACE, 39084 }, - { 0x7ACF, 39086 }, - { 0x7AD0, 39088 }, - { 0x7AD1, 39090 }, - { 0x7AD2, 39092 }, - { 0x7AD3, 39094 }, - { 0x7AD4, 39096 }, - { 0x7AD5, 39098 }, - { 0x7AD6, 39100 }, - { 0x7AD7, 39102 }, - { 0x7AD8, 39104 }, - { 0x7AD9, 39106 }, - { 0x7ADA, 39108 }, - { 0x7ADB, 39110 }, - { 0x7ADC, 39112 }, - { 0x7ADD, 39114 }, - { 0x7ADE, 39116 }, - { 0x7ADF, 39118 }, - { 0x7AE0, 39120 }, - { 0x7AE1, 39122 }, - { 0x7AE2, 39124 }, - { 0x7AE3, 39126 }, - { 0x7AE4, 39128 }, - { 0x7AE5, 39130 }, - { 0x7AE6, 39132 }, - { 0x7AE7, 39134 }, - { 0x7AE8, 39136 }, - { 0x7AE9, 39138 }, - { 0x7AEA, 39140 }, - { 0x7AEB, 39142 }, - { 0x7AEC, 39144 }, - { 0x7AED, 39146 }, - { 0x7AEE, 39148 }, - { 0x7AEF, 39150 }, - { 0x7AF0, 39152 }, - { 0x7AF1, 39154 }, - { 0x7AF2, 39156 }, - { 0x7AF3, 39158 }, - { 0x7AF4, 39160 }, - { 0x7AF5, 39162 }, - { 0x7AF6, 39164 }, - { 0x7AF7, 39166 }, - { 0x7AF8, 39168 }, - { 0x7AF9, 39170 }, - { 0x7AFA, 39172 }, - { 0x7AFB, 39174 }, - { 0x7AFC, 39176 }, - { 0x7AFD, 39178 }, - { 0x7AFE, 39180 }, - { 0x7AFF, 39182 }, - { 0x7B00, 39184 }, - { 0x7B01, 39186 }, - { 0x7B02, 39188 }, - { 0x7B03, 39190 }, - { 0x7B04, 39192 }, - { 0x7B05, 39194 }, - { 0x7B06, 39196 }, - { 0x7B07, 39198 }, - { 0x7B08, 39200 }, - { 0x7B09, 39202 }, - { 0x7B0A, 39204 }, - { 0x7B0B, 39206 }, - { 0x7B0C, 39208 }, - { 0x7B0D, 39210 }, - { 0x7B0E, 39212 }, - { 0x7B0F, 39214 }, - { 0x7B10, 39216 }, - { 0x7B11, 39218 }, - { 0x7B12, 39220 }, - { 0x7B13, 39222 }, - { 0x7B14, 39224 }, - { 0x7B15, 39226 }, - { 0x7B16, 39228 }, - { 0x7B17, 39230 }, - { 0x7B18, 39232 }, - { 0x7B19, 39234 }, - { 0x7B1A, 39236 }, - { 0x7B1B, 39238 }, - { 0x7B1C, 39240 }, - { 0x7B1D, 39242 }, - { 0x7B1E, 39244 }, - { 0x7B1F, 39246 }, - { 0x7B20, 39248 }, - { 0x7B21, 39250 }, - { 0x7B22, 39252 }, - { 0x7B23, 39254 }, - { 0x7B24, 39256 }, - { 0x7B25, 39258 }, - { 0x7B26, 39260 }, - { 0x7B27, 39262 }, - { 0x7B28, 39264 }, - { 0x7B29, 39266 }, - { 0x7B2A, 39268 }, - { 0x7B2B, 39270 }, - { 0x7B2C, 39272 }, - { 0x7B2D, 39274 }, - { 0x7B2E, 39276 }, - { 0x7B2F, 39278 }, - { 0x7B30, 39280 }, - { 0x7B31, 39282 }, - { 0x7B32, 39284 }, - { 0x7B33, 39286 }, - { 0x7B34, 39288 }, - { 0x7B35, 39290 }, - { 0x7B36, 39292 }, - { 0x7B37, 39294 }, - { 0x7B38, 39296 }, - { 0x7B39, 39298 }, - { 0x7B3A, 39300 }, - { 0x7B3B, 39302 }, - { 0x7B3C, 39304 }, - { 0x7B3D, 39306 }, - { 0x7B3E, 39308 }, - { 0x7B3F, 39310 }, - { 0x7B40, 39312 }, - { 0x7B41, 39314 }, - { 0x7B42, 39316 }, - { 0x7B43, 39318 }, - { 0x7B44, 39320 }, - { 0x7B45, 39322 }, - { 0x7B46, 39324 }, - { 0x7B47, 39326 }, - { 0x7B48, 39328 }, - { 0x7B49, 39330 }, - { 0x7B4A, 39332 }, - { 0x7B4B, 39334 }, - { 0x7B4C, 39336 }, - { 0x7B4D, 39338 }, - { 0x7B4E, 39340 }, - { 0x7B4F, 39342 }, - { 0x7B50, 39344 }, - { 0x7B51, 39346 }, - { 0x7B52, 39348 }, - { 0x7B53, 39350 }, - { 0x7B54, 39352 }, - { 0x7B55, 39354 }, - { 0x7B56, 39356 }, - { 0x7B57, 39358 }, - { 0x7B58, 39360 }, - { 0x7B59, 39362 }, - { 0x7B5A, 39364 }, - { 0x7B5B, 39366 }, - { 0x7B5C, 39368 }, - { 0x7B5D, 39370 }, - { 0x7B5E, 39372 }, - { 0x7B5F, 39374 }, - { 0x7B60, 39376 }, - { 0x7B61, 39378 }, - { 0x7B62, 39380 }, - { 0x7B63, 39382 }, - { 0x7B64, 39384 }, - { 0x7B65, 39386 }, - { 0x7B66, 39388 }, - { 0x7B67, 39390 }, - { 0x7B68, 39392 }, - { 0x7B69, 39394 }, - { 0x7B6A, 39396 }, - { 0x7B6B, 39398 }, - { 0x7B6C, 39400 }, - { 0x7B6D, 39402 }, - { 0x7B6E, 39404 }, - { 0x7B6F, 39406 }, - { 0x7B70, 39408 }, - { 0x7B71, 39410 }, - { 0x7B72, 39412 }, - { 0x7B73, 39414 }, - { 0x7B74, 39416 }, - { 0x7B75, 39418 }, - { 0x7B76, 39420 }, - { 0x7B77, 39422 }, - { 0x7B78, 39424 }, - { 0x7B79, 39426 }, - { 0x7B7A, 39428 }, - { 0x7B7B, 39430 }, - { 0x7B7C, 39432 }, - { 0x7B7D, 39434 }, - { 0x7B7E, 39436 }, - { 0x7B7F, 39438 }, - { 0x7B80, 39440 }, - { 0x7B81, 39442 }, - { 0x7B82, 39444 }, - { 0x7B83, 39446 }, - { 0x7B84, 39448 }, - { 0x7B85, 39450 }, - { 0x7B86, 39452 }, - { 0x7B87, 39454 }, - { 0x7B88, 39456 }, - { 0x7B89, 39458 }, - { 0x7B8A, 39460 }, - { 0x7B8B, 39462 }, - { 0x7B8C, 39464 }, - { 0x7B8D, 39466 }, - { 0x7B8E, 39468 }, - { 0x7B8F, 39470 }, - { 0x7B90, 39472 }, - { 0x7B91, 39474 }, - { 0x7B92, 39476 }, - { 0x7B93, 39478 }, - { 0x7B94, 39480 }, - { 0x7B95, 39482 }, - { 0x7B96, 39484 }, - { 0x7B97, 39486 }, - { 0x7B98, 39488 }, - { 0x7B99, 39490 }, - { 0x7B9A, 39492 }, - { 0x7B9B, 39494 }, - { 0x7B9C, 39496 }, - { 0x7B9D, 39498 }, - { 0x7B9E, 39500 }, - { 0x7B9F, 39502 }, - { 0x7BA0, 39504 }, - { 0x7BA1, 39506 }, - { 0x7BA2, 39508 }, - { 0x7BA3, 39510 }, - { 0x7BA4, 39512 }, - { 0x7BA5, 39514 }, - { 0x7BA6, 39516 }, - { 0x7BA7, 39518 }, - { 0x7BA8, 39520 }, - { 0x7BA9, 39522 }, - { 0x7BAA, 39524 }, - { 0x7BAB, 39526 }, - { 0x7BAC, 39528 }, - { 0x7BAD, 39530 }, - { 0x7BAE, 39532 }, - { 0x7BAF, 39534 }, - { 0x7BB0, 39536 }, - { 0x7BB1, 39538 }, - { 0x7BB2, 39540 }, - { 0x7BB3, 39542 }, - { 0x1404, 39544 }, - { 0x141A, 39547 }, - { 0x1416, 39550 }, - { 0x1415, 39553 }, - { 0x1414, 39556 }, - { 0x140D, 39559 }, - { 0x140B, 39562 }, - { 0x1410, 39565 }, - { 0x141C, 39568 }, - { 0x1406, 39571 }, - { 0x140F, 39574 }, - { 0x1409, 39577 }, - { 0x1413, 39580 }, - { 0x1408, 39583 }, - { 0x140A, 39586 }, - { 0x1405, 39589 }, - { 0x140E, 39592 }, - { 0x1407, 39595 }, - { 0x141E, 39598 }, - { 0x140C, 39601 }, - { 0x1412, 39604 }, - { 0x1419, 39607 }, - { 0x1417, 39610 }, - { 0x1418, 39613 }, - { 0x1411, 39616 }, - { 0x141B, 39619 }, - { 0x141D, 39622 }, - { 0x141F, 39625 }, - { 0x1420, 39628 }, - { 0x9027, 39632 }, - { 0x9501, 39634 }, - { 0x9028, 39636 }, - { 0x95E3, 39638 }, - { 0x94F3, 39639 }, - { 0x9324, 39640 }, - { 0x0A40, 39641 }, - { 0x0A41, 39645 }, - { 0x0A31, 39649 }, - { 0x0A3E, 39652 }, - { 0x0A02, 39655 }, - { 0x0A01, 39658 }, - { 0x0A32, 39661 }, - { 0x0A3F, 39664 }, - { 0x0A00, 39667 }, - { 0x0A4A, 39670 }, - { 0x0A4F, 39673 }, - { 0x0A4B, 39676 }, - { 0x0A4E, 39679 }, - { 0x0A4D, 39682 }, - { 0x0A52, 39685 }, - { 0x0A49, 39688 }, - { 0x0A51, 39691 }, - { 0x0A50, 39694 }, - { 0x0A4C, 39697 }, - { 0x0A3A, 39700 }, - { 0x0A34, 39704 }, - { 0x0A3C, 39708 }, - { 0x0A36, 39712 }, - { 0x0A33, 39716 }, - { 0x0A3B, 39720 }, - { 0x0A3D, 39724 }, - { 0x0A35, 39728 }, - { 0x0A37, 39732 }, - { 0x0A47, 39736 }, - { 0x0A38, 39741 }, - { 0x0A48, 39746 }, - { 0x0A39, 39751 }, - { 0x0A53, 39756 }, - { 0x0A03, 39758 }, - { 0x0A0B, 39761 }, - { 0x0A05, 39764 }, - { 0x0A0D, 39767 }, - { 0x0A07, 39770 }, - { 0x0A04, 39773 }, - { 0x0A0C, 39776 }, - { 0x0A0E, 39779 }, - { 0x0A25, 39782 }, - { 0x0A14, 39785 }, - { 0x0A20, 39788 }, - { 0x0A11, 39791 }, - { 0x0A30, 39794 }, - { 0x0A06, 39797 }, - { 0x0A16, 39800 }, - { 0x0A0F, 39803 }, - { 0x0A2A, 39806 }, - { 0x0A27, 39809 }, - { 0x0A22, 39812 }, - { 0x0A23, 39815 }, - { 0x0A29, 39818 }, - { 0x0A2F, 39821 }, - { 0x0A1E, 39824 }, - { 0x0A08, 39827 }, - { 0x0A2C, 39830 }, - { 0x0A54, 39833 }, - { 0x0A28, 39836 }, - { 0x0A26, 39839 }, - { 0x0A15, 39842 }, - { 0x0A1B, 39845 }, - { 0x0A21, 39848 }, - { 0x0A12, 39851 }, - { 0x0A17, 39854 }, - { 0x0A10, 39857 }, - { 0x0A2B, 39860 }, - { 0x0A13, 39863 }, - { 0x0A1D, 39866 }, - { 0x0A18, 39869 }, - { 0x0A24, 39872 }, - { 0x0A43, 39875 }, - { 0x0A42, 39878 }, - { 0x0A2D, 39881 }, - { 0x0A2E, 39884 }, - { 0x0A1F, 39887 }, - { 0x0A19, 39890 }, - { 0x0A44, 39893 }, - { 0x0A1C, 39896 }, - { 0x0A1A, 39899 }, - { 0x0A0A, 39902 }, - { 0x0A09, 39906 }, - { 0x0A46, 39910 }, - { 0x0A45, 39914 }, - { 0x0A56, 39918 }, - { 0x0A59, 39922 }, - { 0x0A55, 39926 }, - { 0x0A58, 39930 }, - { 0x0A57, 39934 }, - { 0x0A5A, 39938 }, - { 0x436B, 39942 }, - { 0x4372, 39946 }, - { 0x4376, 39950 }, - { 0x437D, 39954 }, - { 0x4389, 39958 }, - { 0x436E, 39962 }, - { 0x436C, 39966 }, - { 0x4374, 39970 }, - { 0x4377, 39974 }, - { 0x437A, 39978 }, - { 0x437B, 39982 }, - { 0x437C, 39986 }, - { 0x437F, 39990 }, - { 0x4381, 39994 }, - { 0x4383, 39998 }, - { 0x438A, 40002 }, - { 0x438D, 40006 }, - { 0x436D, 40010 }, - { 0x436F, 40014 }, - { 0x4370, 40018 }, - { 0x4388, 40022 }, - { 0x4373, 40026 }, - { 0x438C, 40030 }, - { 0x4375, 40034 }, - { 0x438B, 40038 }, - { 0x4379, 40042 }, - { 0x437E, 40046 }, - { 0x4382, 40050 }, - { 0x4385, 40054 }, - { 0x438E, 40058 }, - { 0x4378, 40062 }, - { 0x4380, 40066 }, - { 0x4384, 40070 }, - { 0x4387, 40074 }, - { 0x4371, 40078 }, - { 0x4386, 40082 }, - { 0x4347, 40086 }, - { 0x434E, 40090 }, - { 0x4352, 40094 }, - { 0x4359, 40098 }, - { 0x4365, 40102 }, - { 0x434A, 40106 }, - { 0x4348, 40110 }, - { 0x4350, 40114 }, - { 0x4353, 40118 }, - { 0x4356, 40122 }, - { 0x4357, 40126 }, - { 0x4358, 40130 }, - { 0x435B, 40134 }, - { 0x435D, 40138 }, - { 0x435F, 40142 }, - { 0x4366, 40146 }, - { 0x4369, 40150 }, - { 0x4349, 40154 }, - { 0x434B, 40158 }, - { 0x434C, 40162 }, - { 0x4364, 40166 }, - { 0x434F, 40170 }, - { 0x4368, 40174 }, - { 0x4351, 40178 }, - { 0x4367, 40182 }, - { 0x4355, 40186 }, - { 0x435A, 40190 }, - { 0x435E, 40194 }, - { 0x4361, 40198 }, - { 0x436A, 40202 }, - { 0x4354, 40206 }, - { 0x435C, 40210 }, - { 0x4360, 40214 }, - { 0x4363, 40218 }, - { 0x434D, 40222 }, - { 0x4362, 40226 }, - { 0x94D4, 40230 }, - { 0x1D80, 40231 }, - { 0x9092, 40233 }, - { 0x9183, 40234 }, - { 0x9460, 40235 }, - { 0x8FEF, 40238 }, - { 0x8F3C, 40240 }, - { 0x225A, 40242 }, - { 0x8F04, 40244 }, - { 0x9519, 40245 }, - { 0x9283, 40247 }, - { 0x1F6F, 40250 }, - { 0x2273, 40254 }, - { 0x27FC, 40255 }, - { 0x27FF, 40258 }, - { 0x27FE, 40261 }, - { 0x27FD, 40264 }, - { 0x9010, 40267 }, - { 0x0062, 40268 }, - { 0x2054, 40270 }, - { 0x2055, 40273 }, - { 0x2053, 40276 }, - { 0x2052, 40279 }, - { 0x1CB2, 40281 }, - { 0x1FF0, 40282 }, - { 0x900E, 40285 }, - { 0x90AE, 40286 }, - { 0x90CB, 40287 }, - { 0x1E8D, 40289 }, - { 0x95AA, 40290 }, - { 0x9474, 40291 }, - { 0x9681, 40292 }, - { 0x9680, 40298 }, - { 0x25C0, 40304 }, - { 0x2A13, 40308 }, - { 0x21C1, 40312 }, - { 0x9689, 40316 }, - { 0x25A9, 40320 }, - { 0x968B, 40323 }, - { 0x7E41, 40327 }, - { 0x2812, 40334 }, - { 0x2203, 40338 }, - { 0x21BC, 40342 }, - { 0x7EE1, 40345 }, - { 0x7EEC, 40351 }, - { 0x7E4D, 40357 }, - { 0x7CEC, 40361 }, - { 0x96BB, 40365 }, - { 0x968F, 40368 }, - { 0x7E4F, 40372 }, - { 0x96B4, 40377 }, - { 0x7E52, 40381 }, - { 0x9130, 40389 }, - { 0x96BD, 40393 }, - { 0x1EF9, 40397 }, - { 0x91A2, 40399 }, - { 0x1E76, 40402 }, - { 0x1F15, 40404 }, - { 0x1FD3, 40408 }, - { 0x29F7, 40414 }, - { 0x2BB6, 40419 }, - { 0x25BE, 40422 }, - { 0x25C8, 40427 }, - { 0x29F6, 40432 }, - { 0x1E4B, 40436 }, - { 0x2420, 40441 }, - { 0x25C4, 40446 }, - { 0x2BBE, 40451 }, - { 0x005D, 40455 }, - { 0x2004, 40458 }, - { 0x2002, 40463 }, - { 0x2003, 40468 }, - { 0x1F62, 40473 }, - { 0x2402, 40475 }, - { 0x968D, 40478 }, - { 0x96C4, 40482 }, - { 0x7C54, 40488 }, - { 0x968A, 40491 }, - { 0x968C, 40495 }, - { 0x7EE2, 40499 }, - { 0x7EEB, 40506 }, - { 0x25B0, 40513 }, - { 0x2BBC, 40517 }, - { 0x2BC8, 40521 }, - { 0x2BC6, 40525 }, - { 0x2BC4, 40530 }, - { 0x25B2, 40534 }, - { 0x2BBA, 40537 }, - { 0x29FB, 40540 }, - { 0x2BB8, 40544 }, - { 0x259C, 40548 }, - { 0x2607, 40554 }, - { 0x1C9D, 40558 }, - { 0x2A1F, 40562 }, - { 0x1F21, 40565 }, - { 0x2A03, 40570 }, - { 0x1C99, 40574 }, - { 0x919C, 40578 }, - { 0x003D, 40581 }, - { 0x25BC, 40584 }, - { 0x25BA, 40592 }, - { 0x1CC6, 40600 }, - { 0x2A4E, 40605 }, - { 0x2A4C, 40611 }, - { 0x25B8, 40616 }, - { 0x1FFD, 40621 }, - { 0x1FFB, 40626 }, - { 0x1FFC, 40631 }, - { 0x2605, 40635 }, - { 0x1F60, 40638 }, - { 0x911B, 40640 }, - { 0x911C, 40642 }, - { 0x911D, 40648 }, - { 0x91A0, 40654 }, - { 0x23F2, 40657 }, - { 0x2A1D, 40661 }, - { 0x2BC2, 40665 }, - { 0x1F16, 40669 }, - { 0x25FA, 40671 }, - { 0x2A17, 40676 }, - { 0x2010, 40681 }, - { 0x7C4D, 40685 }, - { 0x96EA, 40689 }, - { 0x96E2, 40695 }, - { 0x1F23, 40701 }, - { 0x9670, 40704 }, - { 0x0009, 40709 }, - { 0x1FF7, 40711 }, - { 0x1FF5, 40715 }, - { 0x1FF6, 40719 }, - { 0x29F9, 40722 }, - { 0x2A00, 40725 }, - { 0x9444, 40728 }, - { 0x4145, 40730 }, - { 0x413C, 40733 }, - { 0x413F, 40736 }, - { 0x1DBB, 40740 }, - { 0x1DC8, 40743 }, - { 0x1DE3, 40747 }, - { 0x1DCA, 40752 }, - { 0x1DDB, 40756 }, - { 0x1DC0, 40762 }, - { 0x1DE0, 40765 }, - { 0x1DC4, 40770 }, - { 0x1DDD, 40773 }, - { 0x1DBC, 40777 }, - { 0x1DBF, 40780 }, - { 0x1DC9, 40783 }, - { 0x1DDC, 40787 }, - { 0x1DBE, 40791 }, - { 0x1DC3, 40794 }, - { 0x1DC2, 40797 }, - { 0x1DC7, 40800 }, - { 0x1DE1, 40803 }, - { 0x1DE2, 40808 }, - { 0x1DC1, 40812 }, - { 0x1DBD, 40815 }, - { 0x1DC5, 40818 }, - { 0x1DC6, 40821 }, - { 0x1DDE, 40824 }, - { 0x413B, 40829 }, - { 0x413E, 40832 }, - { 0x4140, 40835 }, - { 0x4141, 40838 }, - { 0x413D, 40841 }, - { 0x4146, 40844 }, - { 0x4144, 40847 }, - { 0x4142, 40850 }, - { 0x4143, 40853 }, - { 0x9330, 40856 }, - { 0x9080, 40858 }, - { 0x1D36, 40860 }, - { 0x8F7C, 40862 }, - { 0x146E, 40864 }, - { 0x146F, 40867 }, - { 0x144E, 40870 }, - { 0x1452, 40873 }, - { 0x1443, 40876 }, - { 0x1436, 40879 }, - { 0x1472, 40882 }, - { 0x142F, 40885 }, - { 0x146A, 40888 }, - { 0x1422, 40891 }, - { 0x1426, 40894 }, - { 0x146B, 40897 }, - { 0x1425, 40900 }, - { 0x144F, 40903 }, - { 0x142B, 40906 }, - { 0x1430, 40910 }, - { 0x1431, 40913 }, - { 0x1474, 40916 }, - { 0x142A, 40919 }, - { 0x1473, 40923 }, - { 0x1424, 40926 }, - { 0x1434, 40929 }, - { 0x1461, 40932 }, - { 0x1437, 40935 }, - { 0x1428, 40938 }, - { 0x1439, 40941 }, - { 0x1445, 40944 }, - { 0x145E, 40947 }, - { 0x1462, 40950 }, - { 0x142C, 40953 }, - { 0x1464, 40956 }, - { 0x1421, 40959 }, - { 0x1438, 40965 }, - { 0x1442, 40970 }, - { 0x1448, 40976 }, - { 0x1435, 40980 }, - { 0x1466, 40984 }, - { 0x1423, 40987 }, - { 0x144A, 40992 }, - { 0x1429, 40996 }, - { 0x1465, 41000 }, - { 0x145F, 41003 }, - { 0x1457, 41008 }, - { 0x143C, 41013 }, - { 0x1444, 41017 }, - { 0x1433, 41021 }, - { 0x1432, 41024 }, - { 0x144C, 41030 }, - { 0x1450, 41035 }, - { 0x143A, 41041 }, - { 0x1478, 41046 }, - { 0x1477, 41051 }, - { 0x1476, 41056 }, - { 0x1475, 41061 }, - { 0x1479, 41066 }, - { 0x143B, 41071 }, - { 0x145D, 41075 }, - { 0x145B, 41078 }, - { 0x1458, 41084 }, - { 0x143F, 41089 }, - { 0x1456, 41095 }, - { 0x1449, 41098 }, - { 0x144B, 41103 }, - { 0x1463, 41107 }, - { 0x1460, 41110 }, - { 0x1453, 41115 }, - { 0x145C, 41121 }, - { 0x1441, 41124 }, - { 0x1455, 41127 }, - { 0x1427, 41130 }, - { 0x1469, 41135 }, - { 0x1447, 41138 }, - { 0x1468, 41142 }, - { 0x1446, 41145 }, - { 0x1467, 41149 }, - { 0x142E, 41152 }, - { 0x144D, 41156 }, - { 0x1451, 41160 }, - { 0x142D, 41164 }, - { 0x145A, 41168 }, - { 0x1440, 41172 }, - { 0x1459, 41176 }, - { 0x143E, 41180 }, - { 0x143D, 41184 }, - { 0x1454, 41188 }, - { 0x146C, 41192 }, - { 0x1471, 41195 }, - { 0x146D, 41198 }, - { 0x1470, 41201 }, - { 0x1D21, 41204 }, - { 0x9511, 41206 }, - { 0x281B, 41207 }, - { 0x94B6, 41208 }, - { 0x8FC4, 41209 }, - { 0x270C, 41210 }, - { 0x2714, 41213 }, - { 0x2715, 41218 }, - { 0x278B, 41225 }, - { 0x270B, 41233 }, - { 0x2713, 41236 }, - { 0x270A, 41241 }, - { 0x277A, 41244 }, - { 0x2570, 41248 }, - { 0x277B, 41254 }, - { 0x9465, 41258 }, - { 0x2323, 41259 }, - { 0x9033, 41260 }, - { 0x224C, 41261 }, - { 0x94D6, 41264 }, - { 0x8F08, 41265 }, - { 0x1F8A, 41268 }, - { 0x94D3, 41269 }, - { 0x3E5A, 41270 }, - { 0x484D, 41273 }, - { 0x268D, 41280 }, - { 0x90EC, 41284 }, - { 0x3E55, 41287 }, - { 0x3E5D, 41290 }, - { 0x3E5F, 41294 }, - { 0x3E5B, 41299 }, - { 0x3E64, 41302 }, - { 0x3E57, 41305 }, - { 0x3E53, 41307 }, - { 0x3E5E, 41309 }, - { 0x3E60, 41313 }, - { 0x3E5C, 41318 }, - { 0x1DCB, 41321 }, - { 0x1DD8, 41325 }, - { 0x1DDA, 41330 }, - { 0x1DD0, 41335 }, - { 0x1DD4, 41339 }, - { 0x1DCC, 41343 }, - { 0x1DCF, 41347 }, - { 0x1DD9, 41351 }, - { 0x1DCE, 41356 }, - { 0x1DD3, 41360 }, - { 0x1DD2, 41364 }, - { 0x1DD7, 41368 }, - { 0x1DD1, 41372 }, - { 0x1DCD, 41376 }, - { 0x1DD5, 41380 }, - { 0x1DD6, 41384 }, - { 0x029B, 41388 }, - { 0x3E6A, 41390 }, - { 0x3E68, 41393 }, - { 0x3E61, 41396 }, - { 0x90EB, 41399 }, - { 0x1E61, 41402 }, - { 0x1F4E, 41405 }, - { 0x1F4B, 41410 }, - { 0x3E6B, 41421 }, - { 0x3E69, 41424 }, - { 0x9298, 41427 }, - { 0x3E63, 41429 }, - { 0x1E64, 41431 }, - { 0x1F55, 41435 }, - { 0x1F53, 41439 }, - { 0x3E58, 41449 }, - { 0x3E62, 41452 }, - { 0x3E66, 41454 }, - { 0x3E56, 41457 }, - { 0x3E6C, 41459 }, - { 0x3E59, 41462 }, - { 0x3E54, 41465 }, - { 0x7E3B, 41468 }, - { 0x3E67, 41471 }, - { 0x3E65, 41474 }, - { 0x265F, 41476 }, - { 0x1F7A, 41478 }, - { 0x8FBF, 41479 }, - { 0x8FC0, 41480 }, - { 0x9514, 41481 }, - { 0x921D, 41482 }, - { 0x921E, 41486 }, - { 0x1D72, 41493 }, - { 0x1DEF, 41496 }, - { 0x1E49, 41499 }, - { 0x2555, 41504 }, - { 0x942A, 41511 }, - { 0x2551, 41516 }, - { 0x2559, 41521 }, - { 0x2736, 41528 }, - { 0x272E, 41532 }, - { 0x1E2F, 41536 }, - { 0x9216, 41540 }, - { 0x9206, 41544 }, - { 0x920E, 41548 }, - { 0x93D6, 41553 }, - { 0x2794, 41557 }, - { 0x27A2, 41561 }, - { 0x1DF0, 41567 }, - { 0x2556, 41570 }, - { 0x942B, 41577 }, - { 0x2552, 41582 }, - { 0x2737, 41587 }, - { 0x272F, 41591 }, - { 0x1E30, 41595 }, - { 0x9214, 41599 }, - { 0x9204, 41603 }, - { 0x920C, 41607 }, - { 0x93D7, 41612 }, - { 0x2795, 41616 }, - { 0x27A3, 41620 }, - { 0x0000, 41626 }, - { 0x9523, 41627 }, - { 0x9472, 41630 }, - { 0x23D3, 41631 }, - { 0x94BF, 41635 }, - { 0x22C6, 41636 }, - { 0x22C1, 41639 }, - { 0x9235, 41642 }, - { 0x96C6, 41644 }, - { 0x96C7, 41646 }, - { 0x96CA, 41651 }, - { 0x96C8, 41655 }, - { 0x96C9, 41659 }, - { 0x9193, 41663 }, - { 0x9286, 41665 }, - { 0x8F16, 41666 }, - { 0x9228, 41667 }, - { 0x1CD3, 41670 }, - { 0x94C4, 41672 }, - { 0x8F86, 41673 }, - { 0x4F78, 41678 }, - { 0x4F77, 41681 }, - { 0x4F6D, 41684 }, - { 0x4F6C, 41687 }, - { 0x4F7C, 41690 }, - { 0x4F81, 41693 }, - { 0x4F7D, 41696 }, - { 0x4F80, 41699 }, - { 0x4F7F, 41702 }, - { 0x4F84, 41705 }, - { 0x4F7B, 41708 }, - { 0x4F83, 41711 }, - { 0x4F82, 41714 }, - { 0x4F7E, 41717 }, - { 0x4F73, 41720 }, - { 0x4F6F, 41724 }, - { 0x4F75, 41728 }, - { 0x4F71, 41732 }, - { 0x4F6E, 41736 }, - { 0x4F74, 41740 }, - { 0x4F76, 41744 }, - { 0x4F70, 41748 }, - { 0x4F72, 41752 }, - { 0x4F41, 41756 }, - { 0x4F47, 41759 }, - { 0x4F43, 41762 }, - { 0x4F49, 41765 }, - { 0x4F45, 41768 }, - { 0x4F42, 41771 }, - { 0x4F48, 41774 }, - { 0x4F4A, 41777 }, - { 0x4F61, 41780 }, - { 0x4F50, 41783 }, - { 0x4F5C, 41786 }, - { 0x4F4D, 41789 }, - { 0x4F6A, 41792 }, - { 0x4F44, 41795 }, - { 0x4F52, 41798 }, - { 0x4F4B, 41801 }, - { 0x4F66, 41804 }, - { 0x4F63, 41807 }, - { 0x4F5E, 41810 }, - { 0x4F5F, 41813 }, - { 0x4F65, 41816 }, - { 0x4F69, 41819 }, - { 0x4F5A, 41822 }, - { 0x4F46, 41825 }, - { 0x4F67, 41828 }, - { 0x4F64, 41831 }, - { 0x4F62, 41834 }, - { 0x4F51, 41837 }, - { 0x4F57, 41840 }, - { 0x4F5D, 41843 }, - { 0x4F4E, 41846 }, - { 0x4F53, 41849 }, - { 0x4F4C, 41852 }, - { 0x4F4F, 41855 }, - { 0x4F59, 41858 }, - { 0x4F54, 41861 }, - { 0x4F60, 41864 }, - { 0x4F6B, 41867 }, - { 0x4F68, 41870 }, - { 0x4F5B, 41873 }, - { 0x4F55, 41876 }, - { 0x4F58, 41879 }, - { 0x4F56, 41882 }, - { 0x4F79, 41885 }, - { 0x4F7A, 41889 }, - { 0x8269, 41892 }, - { 0x826A, 41895 }, - { 0x0AA0, 41898 }, - { 0x0A8D, 41902 }, - { 0x53DB, 41906 }, - { 0x0A8C, 41910 }, - { 0x53D8, 41912 }, - { 0x0A9B, 41916 }, - { 0x53D2, 41919 }, - { 0x53D1, 41923 }, - { 0x53D3, 41927 }, - { 0x53D4, 41930 }, - { 0x53C2, 41934 }, - { 0x53CC, 41937 }, - { 0x53D0, 41940 }, - { 0x53CA, 41943 }, - { 0x53CF, 41946 }, - { 0x53CB, 41949 }, - { 0x53C3, 41952 }, - { 0x53C7, 41955 }, - { 0x53CE, 41958 }, - { 0x0A8B, 41961 }, - { 0x53C5, 41964 }, - { 0x0A5C, 41967 }, - { 0x0A5B, 41970 }, - { 0x53C8, 41973 }, - { 0x53CD, 41976 }, - { 0x53C4, 41979 }, - { 0x53C9, 41982 }, - { 0x53DD, 41985 }, - { 0x53DE, 41988 }, - { 0x53C6, 41991 }, - { 0x0A9D, 41994 }, - { 0x0A9E, 41997 }, - { 0x0A8F, 42000 }, - { 0x0A94, 42003 }, - { 0x0A90, 42006 }, - { 0x0A93, 42009 }, - { 0x0A92, 42012 }, - { 0x0A97, 42015 }, - { 0x0A8E, 42018 }, - { 0x0A96, 42021 }, - { 0x0A95, 42024 }, - { 0x0A91, 42027 }, - { 0x0A9C, 42030 }, - { 0x0AA1, 42033 }, - { 0x53D9, 42036 }, - { 0x53DA, 42039 }, - { 0x0A85, 42042 }, - { 0x0A81, 42046 }, - { 0x0A88, 42050 }, - { 0x0A83, 42054 }, - { 0x0A80, 42058 }, - { 0x0A87, 42062 }, - { 0x0A8A, 42066 }, - { 0x0A86, 42070 }, - { 0x0A82, 42074 }, - { 0x0A89, 42078 }, - { 0x0A84, 42082 }, - { 0x0A9F, 42086 }, - { 0x0A5D, 42089 }, - { 0x0A63, 42092 }, - { 0x0A5F, 42095 }, - { 0x0A66, 42098 }, - { 0x0A61, 42101 }, - { 0x0A5E, 42104 }, - { 0x0A65, 42107 }, - { 0x0A68, 42110 }, - { 0x0A6B, 42113 }, - { 0x0A64, 42116 }, - { 0x0A7F, 42119 }, - { 0x0A60, 42122 }, - { 0x0A6C, 42125 }, - { 0x0A69, 42128 }, - { 0x0A78, 42131 }, - { 0x0A74, 42134 }, - { 0x0A71, 42137 }, - { 0x0A67, 42140 }, - { 0x0A73, 42143 }, - { 0x0A76, 42146 }, - { 0x0A7E, 42149 }, - { 0x0A70, 42152 }, - { 0x0A62, 42155 }, - { 0x0A7B, 42158 }, - { 0x0A75, 42161 }, - { 0x0A79, 42164 }, - { 0x0A6A, 42167 }, - { 0x0A6F, 42170 }, - { 0x0A6D, 42173 }, - { 0x0A77, 42176 }, - { 0x0A7C, 42179 }, - { 0x0A7D, 42182 }, - { 0x0A6E, 42185 }, - { 0x0A7A, 42188 }, - { 0x0A72, 42191 }, - { 0x0A99, 42194 }, - { 0x0A9A, 42198 }, - { 0x0A98, 42202 }, - { 0x0AA2, 42205 }, - { 0x53D7, 42208 }, - { 0x53BC, 42211 }, - { 0x53B8, 42215 }, - { 0x53B9, 42219 }, - { 0x53BE, 42223 }, - { 0x53BF, 42227 }, - { 0x53BD, 42231 }, - { 0x53B1, 42235 }, - { 0x53AF, 42239 }, - { 0x53B5, 42243 }, - { 0x53B6, 42247 }, - { 0x53B7, 42251 }, - { 0x53B0, 42255 }, - { 0x53B2, 42259 }, - { 0x53AE, 42263 }, - { 0x53AD, 42267 }, - { 0x53C0, 42271 }, - { 0x53B3, 42275 }, - { 0x53BB, 42279 }, - { 0x53BA, 42283 }, - { 0x53B4, 42287 }, - { 0x53C1, 42291 }, - { 0x53DC, 42296 }, - { 0x53DF, 42300 }, - { 0x53D5, 42305 }, - { 0x53D6, 42309 }, - { 0x9526, 42313 }, - { 0x1D31, 42315 }, - { 0x1E5B, 42317 }, - { 0x1E5A, 42321 }, - { 0x9477, 42323 }, - { 0x9594, 42326 }, - { 0x1CD6, 42328 }, - { 0x9199, 42331 }, - { 0x9197, 42334 }, - { 0x9198, 42337 }, - { 0x919A, 42340 }, - { 0x22CB, 42343 }, - { 0x22CA, 42347 }, - { 0x9164, 42351 }, - { 0x919E, 42354 }, - { 0x9367, 42357 }, - { 0x275D, 42361 }, - { 0x915A, 42364 }, - { 0x1E4D, 42367 }, - { 0x26A2, 42370 }, - { 0x23EC, 42374 }, - { 0x8FB8, 42377 }, - { 0x8FE2, 42378 }, - { 0x2371, 42380 }, - { 0x005E, 42383 }, - { 0x2A14, 42384 }, - { 0x2A15, 42388 }, - { 0x2A11, 42392 }, - { 0x1E93, 42396 }, - { 0x2696, 42398 }, - { 0x2697, 42403 }, - { 0x2775, 42408 }, - { 0x259E, 42413 }, - { 0x2049, 42418 }, - { 0x2600, 42420 }, - { 0x2601, 42425 }, - { 0x91DE, 42430 }, - { 0x91AF, 42432 }, - { 0x94E5, 42434 }, - { 0x1F87, 42435 }, - { 0x1D7D, 42437 }, - { 0x9239, 42440 }, - { 0x94FA, 42441 }, - { 0x8EEA, 42442 }, - { 0x1E81, 42443 }, - { 0x266D, 42444 }, - { 0x2671, 42448 }, - { 0x266E, 42452 }, - { 0x2674, 42455 }, - { 0x2672, 42460 }, - { 0x2676, 42463 }, - { 0x966C, 42469 }, - { 0x9682, 42478 }, - { 0x969B, 42484 }, - { 0x966A, 42490 }, - { 0x21C0, 42499 }, - { 0x9684, 42503 }, - { 0x9686, 42507 }, - { 0x7EE8, 42511 }, - { 0x21AC, 42517 }, - { 0x9693, 42520 }, - { 0x7E44, 42529 }, - { 0x7EED, 42534 }, - { 0x220C, 42540 }, - { 0x9690, 42543 }, - { 0x2206, 42547 }, - { 0x9694, 42552 }, - { 0x7E55, 42561 }, - { 0x2007, 42569 }, - { 0x9699, 42577 }, - { 0x7ED1, 42583 }, - { 0x9660, 42588 }, - { 0x965D, 42598 }, - { 0x9662, 42607 }, - { 0x965F, 42617 }, - { 0x9663, 42627 }, - { 0x9661, 42636 }, - { 0x965C, 42646 }, - { 0x965B, 42656 }, - { 0x965E, 42666 }, - { 0x965A, 42677 }, - { 0x9659, 42687 }, - { 0x2400, 42697 }, - { 0x7C7C, 42702 }, - { 0x7C77, 42706 }, - { 0x7CED, 42710 }, - { 0x7CEF, 42717 }, - { 0x7D01, 42724 }, - { 0x7D15, 42729 }, - { 0x7D09, 42734 }, - { 0x7D05, 42739 }, - { 0x7D0D, 42744 }, - { 0x7D11, 42749 }, - { 0x2208, 42754 }, - { 0x7D19, 42759 }, - { 0x7CF9, 42764 }, - { 0x7CFD, 42768 }, - { 0x2224, 42772 }, - { 0x969D, 42775 }, - { 0x232D, 42780 }, - { 0x2008, 42783 }, - { 0x969A, 42791 }, - { 0x7ED4, 42797 }, - { 0x9655, 42802 }, - { 0x9654, 42812 }, - { 0x9658, 42822 }, - { 0x9667, 42831 }, - { 0x9665, 42841 }, - { 0x9668, 42851 }, - { 0x9666, 42860 }, - { 0x9664, 42870 }, - { 0x9657, 42880 }, - { 0x9656, 42890 }, - { 0x9669, 42900 }, - { 0x233C, 42911 }, - { 0x7C7D, 42914 }, - { 0x7C7A, 42918 }, - { 0x7CEE, 42922 }, - { 0x7CF0, 42929 }, - { 0x7D02, 42936 }, - { 0x7D16, 42941 }, - { 0x7D0A, 42946 }, - { 0x7D06, 42951 }, - { 0x7D0E, 42956 }, - { 0x7D12, 42961 }, - { 0x2209, 42966 }, - { 0x7D1A, 42971 }, - { 0x7CFA, 42976 }, - { 0x7CFE, 42980 }, - { 0x90F2, 42984 }, - { 0x237E, 42989 }, - { 0x2225, 42994 }, - { 0x969E, 42997 }, - { 0x237C, 43002 }, - { 0x9688, 43007 }, - { 0x9685, 43011 }, - { 0x7EE7, 43015 }, - { 0x9687, 43022 }, - { 0x7EEE, 43026 }, - { 0x96E5, 43033 }, - { 0x7ED2, 43038 }, - { 0x7C78, 43044 }, - { 0x7ED3, 43049 }, - { 0x7C79, 43055 }, - { 0x7ED5, 43060 }, - { 0x7C7B, 43066 }, - { 0x7ED8, 43071 }, - { 0x7C7E, 43077 }, - { 0x7ED6, 43082 }, - { 0x7ED7, 43089 }, - { 0x966F, 43096 }, - { 0x198B, 43101 }, - { 0x1996, 43105 }, - { 0x198C, 43110 }, - { 0x1989, 43115 }, - { 0x198F, 43118 }, - { 0x197F, 43122 }, - { 0x1983, 43126 }, - { 0x197E, 43132 }, - { 0x1981, 43136 }, - { 0x1984, 43140 }, - { 0x198D, 43146 }, - { 0x1987, 43151 }, - { 0x1988, 43155 }, - { 0x1985, 43161 }, - { 0x1986, 43165 }, - { 0x1993, 43169 }, - { 0x198A, 43172 }, - { 0x1980, 43177 }, - { 0x1982, 43182 }, - { 0x196F, 43187 }, - { 0x1970, 43190 }, - { 0x1991, 43195 }, - { 0x1992, 43198 }, - { 0x198E, 43201 }, - { 0x1979, 43204 }, - { 0x197A, 43208 }, - { 0x1994, 43213 }, - { 0x196D, 43217 }, - { 0x197B, 43220 }, - { 0x1990, 43225 }, - { 0x1974, 43229 }, - { 0x1995, 43233 }, - { 0x1976, 43238 }, - { 0x1977, 43242 }, - { 0x1978, 43246 }, - { 0x196E, 43250 }, - { 0x196C, 43253 }, - { 0x197C, 43256 }, - { 0x1973, 43262 }, - { 0x1975, 43268 }, - { 0x1971, 43275 }, - { 0x1972, 43281 }, - { 0x197D, 43286 }, - { 0x22E2, 43291 }, - { 0x8F61, 43292 }, - { 0x90AC, 43294 }, - { 0x2279, 43296 }, - { 0x1F71, 43297 }, - { 0x946B, 43298 }, - { 0x8EBD, 43300 }, - { 0x9271, 43302 }, - { 0x8FB6, 43304 }, - { 0x91F3, 43306 }, - { 0x91DC, 43309 }, - { 0x8FBE, 43311 }, - { 0x928D, 43312 }, - { 0x2264, 43313 }, - { 0x2249, 43316 }, - { 0x8FF9, 43320 }, - { 0x233D, 43325 }, - { 0x8ED6, 43327 }, - { 0x2268, 43329 }, - { 0x8ED7, 43333 }, - { 0x8ED8, 43338 }, - { 0x8ED9, 43342 }, - { 0x2293, 43348 }, - { 0x914A, 43351 }, - { 0x224B, 43357 }, - { 0x8FFA, 43361 }, - { 0x22BC, 43366 }, - { 0x232B, 43368 }, - { 0x27F7, 43375 }, - { 0x2353, 43379 }, - { 0x915E, 43383 }, - { 0x2305, 43388 }, - { 0x2248, 43392 }, - { 0x8FFB, 43396 }, - { 0x2806, 43401 }, - { 0x2232, 43404 }, - { 0x274A, 43406 }, - { 0x941E, 43410 }, - { 0x941F, 43415 }, - { 0x2280, 43421 }, - { 0x9561, 43424 }, - { 0x9537, 43432 }, - { 0x2285, 43438 }, - { 0x9566, 43441 }, - { 0x953C, 43449 }, - { 0x2282, 43455 }, - { 0x9563, 43458 }, - { 0x9539, 43466 }, - { 0x2281, 43472 }, - { 0x9562, 43475 }, - { 0x9538, 43483 }, - { 0x2283, 43489 }, - { 0x9564, 43492 }, - { 0x953A, 43500 }, - { 0x2284, 43506 }, - { 0x9549, 43509 }, - { 0x9565, 43517 }, - { 0x955E, 43525 }, - { 0x9573, 43533 }, - { 0x953B, 43541 }, - { 0x9534, 43547 }, - { 0x954C, 43553 }, - { 0x9551, 43557 }, - { 0x954E, 43561 }, - { 0x954D, 43565 }, - { 0x954F, 43569 }, - { 0x9550, 43573 }, - { 0x9576, 43577 }, - { 0x9579, 43580 }, - { 0x957D, 43586 }, - { 0x957C, 43589 }, - { 0x957E, 43592 }, - { 0x96CC, 43595 }, - { 0x943B, 43598 }, - { 0x228D, 43600 }, - { 0x2331, 43603 }, - { 0x96C1, 43607 }, - { 0x2748, 43613 }, - { 0x90F9, 43616 }, - { 0x7CCD, 43619 }, - { 0x7CCE, 43623 }, - { 0x224A, 43627 }, - { 0x8FFC, 43631 }, - { 0x2242, 43636 }, - { 0x277E, 43639 }, - { 0x21D7, 43642 }, - { 0x2757, 43645 }, - { 0x2290, 43648 }, - { 0x2212, 43651 }, - { 0x21F7, 43653 }, - { 0x22B2, 43655 }, - { 0x22B3, 43660 }, - { 0x2618, 43665 }, - { 0x2221, 43670 }, - { 0x2222, 43676 }, - { 0x2220, 43682 }, - { 0x2223, 43688 }, - { 0x932F, 43694 }, - { 0x9061, 43700 }, - { 0x277C, 43702 }, - { 0x2229, 43705 }, - { 0x2227, 43709 }, - { 0x2752, 43712 }, - { 0x2754, 43715 }, - { 0x3E49, 43718 }, - { 0x21CD, 43721 }, - { 0x221D, 43723 }, - { 0x221E, 43729 }, - { 0x221C, 43735 }, - { 0x221F, 43741 }, - { 0x1FDC, 43747 }, - { 0x21CE, 43753 }, - { 0x2217, 43758 }, - { 0x2410, 43764 }, - { 0x2411, 43769 }, - { 0x90E6, 43774 }, - { 0x9339, 43777 }, - { 0x21CF, 43784 }, - { 0x933A, 43790 }, - { 0x21F3, 43796 }, - { 0x22F7, 43798 }, - { 0x228E, 43802 }, - { 0x23FC, 43805 }, - { 0x933F, 43810 }, - { 0x21F4, 43817 }, - { 0x9340, 43823 }, - { 0x274D, 43829 }, - { 0x9345, 43831 }, - { 0x8FA4, 43837 }, - { 0x2266, 43839 }, - { 0x2303, 43842 }, - { 0x22EC, 43847 }, - { 0x22ED, 43850 }, - { 0x236C, 43853 }, - { 0x2265, 43855 }, - { 0x274C, 43858 }, - { 0x2380, 43860 }, - { 0x2330, 43864 }, - { 0x23ED, 43866 }, - { 0x272A, 43872 }, - { 0x275B, 43875 }, - { 0x21DB, 43878 }, - { 0x7E47, 43881 }, - { 0x2602, 43887 }, - { 0x21D9, 43889 }, - { 0x223B, 43891 }, - { 0x9131, 43893 }, - { 0x2039, 43896 }, - { 0x2759, 43898 }, - { 0x2381, 43901 }, - { 0x21E1, 43905 }, - { 0x96CB, 43909 }, - { 0x21DF, 43912 }, - { 0x2218, 43915 }, - { 0x240D, 43920 }, - { 0x240E, 43923 }, - { 0x240F, 43929 }, - { 0x21EB, 43935 }, - { 0x21E9, 43939 }, - { 0x21EF, 43942 }, - { 0x21F1, 43946 }, - { 0x21ED, 43949 }, - { 0x21DD, 43952 }, - { 0x21E5, 43954 }, - { 0x21E7, 43958 }, - { 0x2780, 43961 }, - { 0x21E3, 43964 }, - { 0x9161, 43967 }, - { 0x901C, 43969 }, - { 0x9022, 43970 }, - { 0x91AD, 43974 }, - { 0x959B, 43976 }, - { 0x959D, 43977 }, - { 0x94C1, 43978 }, - { 0x951C, 43980 }, - { 0x40E8, 43981 }, - { 0x40B4, 43986 }, - { 0x40B3, 43990 }, - { 0x40B5, 43994 }, - { 0x40E9, 43997 }, - { 0x40B6, 44002 }, - { 0x40C8, 44005 }, - { 0x40D1, 44009 }, - { 0x40BB, 44013 }, - { 0x40CD, 44016 }, - { 0x40D6, 44020 }, - { 0x40BF, 44024 }, - { 0x40DA, 44027 }, - { 0x40B7, 44031 }, - { 0x40C9, 44034 }, - { 0x40D2, 44038 }, - { 0x40BA, 44042 }, - { 0x40CC, 44045 }, - { 0x40D5, 44049 }, - { 0x40B9, 44053 }, - { 0x40CB, 44056 }, - { 0x40D4, 44060 }, - { 0x40BE, 44064 }, - { 0x40D0, 44067 }, - { 0x40D9, 44071 }, - { 0x40BD, 44075 }, - { 0x40CF, 44078 }, - { 0x40D8, 44082 }, - { 0x40C3, 44086 }, - { 0x40DE, 44089 }, - { 0x40C2, 44093 }, - { 0x40DD, 44096 }, - { 0x40BC, 44100 }, - { 0x40CE, 44103 }, - { 0x40D7, 44107 }, - { 0x40C4, 44111 }, - { 0x40DF, 44114 }, - { 0x40B8, 44118 }, - { 0x40CA, 44121 }, - { 0x40D3, 44125 }, - { 0x40C6, 44129 }, - { 0x40E1, 44132 }, - { 0x40C7, 44136 }, - { 0x40E2, 44139 }, - { 0x40C1, 44143 }, - { 0x40DC, 44146 }, - { 0x40C0, 44150 }, - { 0x40DB, 44153 }, - { 0x40C5, 44157 }, - { 0x40E0, 44160 }, - { 0x40E3, 44164 }, - { 0x40E4, 44168 }, - { 0x40E6, 44172 }, - { 0x40E7, 44176 }, - { 0x40E5, 44180 }, - { 0x40EB, 44184 }, - { 0x40EA, 44188 }, - { 0x9254, 44192 }, - { 0x1EA1, 44194 }, - { 0x1E9F, 44199 }, - { 0x269B, 44202 }, - { 0x22BF, 44208 }, - { 0x0676, 44209 }, - { 0x05B6, 44213 }, - { 0x05A1, 44218 }, - { 0x05A6, 44220 }, - { 0x0606, 44223 }, - { 0x066D, 44227 }, - { 0x0814, 44230 }, - { 0x086C, 44235 }, - { 0x086E, 44239 }, - { 0x05F1, 44243 }, - { 0x0874, 44247 }, - { 0x0866, 44252 }, - { 0x0865, 44255 }, - { 0x0867, 44258 }, - { 0x05AC, 44261 }, - { 0x05A8, 44266 }, - { 0x059C, 44269 }, - { 0x059A, 44272 }, - { 0x05AA, 44275 }, - { 0x059D, 44279 }, - { 0x0696, 44282 }, - { 0x0697, 44286 }, - { 0x05AD, 44291 }, - { 0x05AB, 44294 }, - { 0x05A9, 44298 }, - { 0x3E70, 44303 }, - { 0x085F, 44306 }, - { 0x0862, 44311 }, - { 0x0860, 44316 }, - { 0x0863, 44321 }, - { 0x0861, 44326 }, - { 0x0864, 44330 }, - { 0x05F8, 44334 }, - { 0x05A5, 44338 }, - { 0x085A, 44340 }, - { 0x0859, 44343 }, - { 0x085B, 44346 }, - { 0x085D, 44349 }, - { 0x085C, 44352 }, - { 0x085E, 44355 }, - { 0x05E8, 44358 }, - { 0x0873, 44360 }, - { 0x3E75, 44364 }, - { 0x3E74, 44368 }, - { 0x0683, 44372 }, - { 0x0684, 44377 }, - { 0x05E7, 44382 }, - { 0x086A, 44384 }, - { 0x05F7, 44389 }, - { 0x0869, 44394 }, - { 0x3E73, 44398 }, - { 0x3E72, 44402 }, - { 0x05ED, 44406 }, - { 0x05EE, 44409 }, - { 0x05E9, 44412 }, - { 0x086B, 44414 }, - { 0x3E77, 44419 }, - { 0x3E76, 44423 }, - { 0x0843, 44427 }, - { 0x0844, 44432 }, - { 0x0847, 44437 }, - { 0x0846, 44444 }, - { 0x0811, 44448 }, - { 0x080C, 44451 }, - { 0x0682, 44453 }, - { 0x080A, 44457 }, - { 0x086D, 44461 }, - { 0x0872, 44465 }, - { 0x086F, 44471 }, - { 0x0848, 44475 }, - { 0x0686, 44479 }, - { 0x084E, 44483 }, - { 0x067C, 44489 }, - { 0x4A27, 44493 }, - { 0x4A28, 44498 }, - { 0x4A26, 44503 }, - { 0x080F, 44508 }, - { 0x080E, 44513 }, - { 0x0810, 44518 }, - { 0x067E, 44523 }, - { 0x067F, 44526 }, - { 0x084B, 44529 }, - { 0x0672, 44533 }, - { 0x084C, 44538 }, - { 0x084A, 44542 }, - { 0x05AE, 44546 }, - { 0x0868, 44550 }, - { 0x0680, 44554 }, - { 0x0840, 44558 }, - { 0x0842, 44567 }, - { 0x0673, 44571 }, - { 0x0671, 44575 }, - { 0x067B, 44581 }, - { 0x0681, 44587 }, - { 0x084D, 44591 }, - { 0x0675, 44597 }, - { 0x0856, 44601 }, - { 0x0853, 44606 }, - { 0x0841, 44611 }, - { 0x0852, 44616 }, - { 0x0854, 44621 }, - { 0x080D, 44626 }, - { 0x0849, 44631 }, - { 0x0851, 44636 }, - { 0x0850, 44641 }, - { 0x084F, 44646 }, - { 0x05B0, 44651 }, - { 0x083F, 44655 }, - { 0x067D, 44660 }, - { 0x0674, 44664 }, - { 0x067A, 44669 }, - { 0x0678, 44676 }, - { 0x0679, 44681 }, - { 0x0855, 44687 }, - { 0x0670, 44692 }, - { 0x066F, 44702 }, - { 0x05AF, 44712 }, - { 0x05AF, 44721 }, - { 0x05B2, 44729 }, - { 0x083E, 44732 }, - { 0x05B1, 44736 }, - { 0x05B3, 44739 }, - { 0x0677, 44742 }, - { 0x05EB, 44748 }, - { 0x0845, 44750 }, - { 0x3E7B, 44753 }, - { 0x3E7A, 44757 }, - { 0x05F5, 44761 }, - { 0x05F3, 44766 }, - { 0x05F4, 44772 }, - { 0x0870, 44779 }, - { 0x0871, 44784 }, - { 0x0669, 44791 }, - { 0x3C27, 44794 }, - { 0x3C29, 44799 }, - { 0x3C28, 44804 }, - { 0x3C26, 44809 }, - { 0x0660, 44814 }, - { 0x0610, 44817 }, - { 0x3C1F, 44823 }, - { 0x3C1A, 44831 }, - { 0x3C19, 44836 }, - { 0x066E, 44841 }, - { 0x0646, 44844 }, - { 0x3C16, 44847 }, - { 0x3C18, 44852 }, - { 0x3C17, 44857 }, - { 0x3C15, 44862 }, - { 0x065F, 44867 }, - { 0x3C1C, 44870 }, - { 0x3C1B, 44875 }, - { 0x0664, 44880 }, - { 0x3C21, 44883 }, - { 0x3C20, 44888 }, - { 0x0661, 44893 }, - { 0x3C1E, 44896 }, - { 0x3C1D, 44901 }, - { 0x05D2, 44906 }, - { 0x06F3, 44909 }, - { 0x06F5, 44916 }, - { 0x0639, 44924 }, - { 0x0828, 44931 }, - { 0x06F4, 44938 }, - { 0x3EC6, 44947 }, - { 0x3EC8, 44952 }, - { 0x3EC7, 44957 }, - { 0x3EC5, 44962 }, - { 0x05C1, 44967 }, - { 0x06E7, 44970 }, - { 0x06EA, 44980 }, - { 0x0816, 44990 }, - { 0x06EC, 44996 }, - { 0x0815, 45002 }, - { 0x082B, 45009 }, - { 0x06E8, 45016 }, - { 0x06E9, 45025 }, - { 0x06E6, 45038 }, - { 0x06EB, 45046 }, - { 0x3E8C, 45054 }, - { 0x3E8E, 45059 }, - { 0x3E8D, 45064 }, - { 0x3E8B, 45069 }, - { 0x05CF, 45074 }, - { 0x0694, 45077 }, - { 0x3EBA, 45083 }, - { 0x3EBC, 45088 }, - { 0x3EBB, 45093 }, - { 0x3EB9, 45098 }, - { 0x05C8, 45103 }, - { 0x0623, 45106 }, - { 0x0624, 45112 }, - { 0x4A22, 45121 }, - { 0x06EF, 45129 }, - { 0x0629, 45140 }, - { 0x0622, 45147 }, - { 0x0628, 45152 }, - { 0x0823, 45160 }, - { 0x0687, 45167 }, - { 0x06F0, 45173 }, - { 0x3EA6, 45181 }, - { 0x3EA5, 45186 }, - { 0x0627, 45191 }, - { 0x3BD9, 45194 }, - { 0x3BD8, 45199 }, - { 0x05DA, 45204 }, - { 0x063C, 45207 }, - { 0x0819, 45213 }, - { 0x063B, 45223 }, - { 0x06F6, 45230 }, - { 0x063E, 45237 }, - { 0x06F7, 45244 }, - { 0x3ECE, 45253 }, - { 0x3ED0, 45258 }, - { 0x3ECF, 45263 }, - { 0x3ECD, 45268 }, - { 0x0648, 45273 }, - { 0x064B, 45276 }, - { 0x0649, 45283 }, - { 0x064D, 45288 }, - { 0x0825, 45295 }, - { 0x3BE5, 45301 }, - { 0x3BE7, 45306 }, - { 0x3BE6, 45311 }, - { 0x3BE4, 45316 }, - { 0x05C6, 45321 }, - { 0x06ED, 45324 }, - { 0x061B, 45331 }, - { 0x061A, 45339 }, - { 0x0705, 45345 }, - { 0x0708, 45356 }, - { 0x0704, 45365 }, - { 0x061E, 45374 }, - { 0x06EE, 45381 }, - { 0x0712, 45390 }, - { 0x0805, 45399 }, - { 0x3E9E, 45407 }, - { 0x3EA0, 45412 }, - { 0x3E9F, 45417 }, - { 0x3E9D, 45422 }, - { 0x05E0, 45427 }, - { 0x065A, 45430 }, - { 0x065B, 45434 }, - { 0x3BF9, 45441 }, - { 0x3BFB, 45447 }, - { 0x3BFA, 45453 }, - { 0x3BF8, 45459 }, - { 0x0659, 45465 }, - { 0x3BF7, 45471 }, - { 0x3BF6, 45479 }, - { 0x0698, 45487 }, - { 0x3EE6, 45493 }, - { 0x3EE8, 45498 }, - { 0x3EE7, 45503 }, - { 0x3EE5, 45508 }, - { 0x0657, 45513 }, - { 0x3BFD, 45517 }, - { 0x3BFF, 45523 }, - { 0x3BFE, 45529 }, - { 0x3BFC, 45535 }, - { 0x0631, 45541 }, - { 0x3BDD, 45544 }, - { 0x3BDC, 45549 }, - { 0x05DC, 45554 }, - { 0x0645, 45557 }, - { 0x0829, 45563 }, - { 0x0715, 45569 }, - { 0x4A24, 45576 }, - { 0x0644, 45584 }, - { 0x0647, 45589 }, - { 0x3ED6, 45596 }, - { 0x3ED8, 45601 }, - { 0x3ED7, 45606 }, - { 0x3ED5, 45611 }, - { 0x05DD, 45616 }, - { 0x0700, 45619 }, - { 0x064F, 45624 }, - { 0x064E, 45630 }, - { 0x083C, 45636 }, - { 0x0650, 45645 }, - { 0x0651, 45652 }, - { 0x081B, 45659 }, - { 0x3EDA, 45665 }, - { 0x3EDC, 45670 }, - { 0x3EDB, 45675 }, - { 0x3ED9, 45680 }, - { 0x0822, 45685 }, - { 0x0617, 45689 }, - { 0x0833, 45692 }, - { 0x082C, 45698 }, - { 0x3BA9, 45705 }, - { 0x3BAB, 45710 }, - { 0x3BAA, 45715 }, - { 0x3BA8, 45720 }, - { 0x05DB, 45725 }, - { 0x0640, 45728 }, - { 0x081A, 45734 }, - { 0x082A, 45740 }, - { 0x0641, 45750 }, - { 0x3ED2, 45757 }, - { 0x3ED4, 45762 }, - { 0x3ED3, 45767 }, - { 0x3ED1, 45772 }, - { 0x05CA, 45777 }, - { 0x062D, 45780 }, - { 0x062F, 45786 }, - { 0x0630, 45795 }, - { 0x0701, 45802 }, - { 0x0632, 45810 }, - { 0x081F, 45817 }, - { 0x062C, 45822 }, - { 0x0702, 45827 }, - { 0x062B, 45833 }, - { 0x062E, 45839 }, - { 0x082E, 45846 }, - { 0x0707, 45853 }, - { 0x06F1, 45864 }, - { 0x0688, 45869 }, - { 0x3EAA, 45875 }, - { 0x3EA9, 45880 }, - { 0x05CE, 45885 }, - { 0x0636, 45888 }, - { 0x0637, 45895 }, - { 0x0824, 45902 }, - { 0x3EB6, 45909 }, - { 0x3EB8, 45914 }, - { 0x3EB7, 45919 }, - { 0x3EB5, 45924 }, - { 0x05D0, 45929 }, - { 0x0806, 45932 }, - { 0x0818, 45938 }, - { 0x4A23, 45945 }, - { 0x0638, 45953 }, - { 0x0807, 45960 }, - { 0x3EBE, 45967 }, - { 0x3EC0, 45972 }, - { 0x3EBF, 45977 }, - { 0x3EBD, 45982 }, - { 0x05C3, 45987 }, - { 0x0615, 45990 }, - { 0x0834, 45995 }, - { 0x082D, 46001 }, - { 0x0616, 46008 }, - { 0x3E92, 46016 }, - { 0x3E94, 46021 }, - { 0x3E93, 46026 }, - { 0x05C2, 46031 }, - { 0x065C, 46035 }, - { 0x3E90, 46040 }, - { 0x3E8F, 46046 }, - { 0x3E91, 46052 }, - { 0x063D, 46057 }, - { 0x3BBD, 46060 }, - { 0x3BBF, 46065 }, - { 0x3BBE, 46070 }, - { 0x3BBC, 46075 }, - { 0x05E1, 46080 }, - { 0x0668, 46083 }, - { 0x0820, 46089 }, - { 0x0663, 46095 }, - { 0x065D, 46102 }, - { 0x05BD, 46107 }, - { 0x3E82, 46113 }, - { 0x3E81, 46121 }, - { 0x070E, 46129 }, - { 0x070F, 46138 }, - { 0x3EEA, 46147 }, - { 0x3EE9, 46152 }, - { 0x05E3, 46157 }, - { 0x081E, 46160 }, - { 0x081D, 46170 }, - { 0x082F, 46180 }, - { 0x0666, 46191 }, - { 0x05BF, 46196 }, - { 0x3E86, 46202 }, - { 0x3E88, 46210 }, - { 0x3E87, 46218 }, - { 0x3E85, 46226 }, - { 0x0667, 46234 }, - { 0x066A, 46240 }, - { 0x3EEE, 46247 }, - { 0x066B, 46252 }, - { 0x066C, 46256 }, - { 0x3C03, 46263 }, - { 0x3C02, 46272 }, - { 0x0710, 46281 }, - { 0x0711, 46291 }, - { 0x3C01, 46301 }, - { 0x3C00, 46307 }, - { 0x3EF0, 46313 }, - { 0x3EEF, 46318 }, - { 0x3EED, 46323 }, - { 0x05D1, 46328 }, - { 0x3EC2, 46331 }, - { 0x3EC4, 46336 }, - { 0x3EC3, 46341 }, - { 0x3EC1, 46346 }, - { 0x05C0, 46351 }, - { 0x07F5, 46354 }, - { 0x07EE, 46360 }, - { 0x060B, 46367 }, - { 0x060C, 46374 }, - { 0x05BC, 46381 }, - { 0x3E80, 46387 }, - { 0x3E7F, 46395 }, - { 0x05BE, 46403 }, - { 0x3E84, 46409 }, - { 0x3E83, 46417 }, - { 0x05BB, 46425 }, - { 0x3E7E, 46431 }, - { 0x3E7D, 46439 }, - { 0x07ED, 46447 }, - { 0x07F7, 46454 }, - { 0x07FA, 46464 }, - { 0x07EC, 46474 }, - { 0x07F6, 46482 }, - { 0x07F9, 46493 }, - { 0x07FD, 46504 }, - { 0x07F3, 46511 }, - { 0x07EB, 46519 }, - { 0x07EF, 46525 }, - { 0x07FC, 46531 }, - { 0x07F2, 46538 }, - { 0x07F1, 46546 }, - { 0x07F4, 46554 }, - { 0x07F0, 46562 }, - { 0x07F8, 46570 }, - { 0x07FB, 46581 }, - { 0x0709, 46592 }, - { 0x070A, 46601 }, - { 0x3E8A, 46610 }, - { 0x060A, 46615 }, - { 0x3BA3, 46619 }, - { 0x3BA2, 46625 }, - { 0x05E2, 46631 }, - { 0x3EEC, 46635 }, - { 0x3EEB, 46641 }, - { 0x3E89, 46647 }, - { 0x0614, 46652 }, - { 0x3BA5, 46655 }, - { 0x3BA7, 46660 }, - { 0x3BA6, 46665 }, - { 0x3BA4, 46670 }, - { 0x0621, 46675 }, - { 0x3BDB, 46678 }, - { 0x3BDA, 46683 }, - { 0x061D, 46688 }, - { 0x3BC5, 46691 }, - { 0x3BC7, 46696 }, - { 0x3BC6, 46701 }, - { 0x3BC4, 46706 }, - { 0x083D, 46711 }, - { 0x064C, 46714 }, - { 0x3BE9, 46717 }, - { 0x3BEB, 46722 }, - { 0x3BEA, 46727 }, - { 0x3BE8, 46732 }, - { 0x060D, 46737 }, - { 0x060F, 46741 }, - { 0x0611, 46746 }, - { 0x060E, 46751 }, - { 0x05C5, 46756 }, - { 0x0817, 46759 }, - { 0x083A, 46766 }, - { 0x083B, 46773 }, - { 0x3E9A, 46780 }, - { 0x3E9C, 46785 }, - { 0x3E9B, 46790 }, - { 0x3E99, 46795 }, - { 0x05C7, 46800 }, - { 0x3EA2, 46803 }, - { 0x3EA4, 46808 }, - { 0x3EA3, 46813 }, - { 0x3EA1, 46818 }, - { 0x05B5, 46823 }, - { 0x05DE, 46826 }, - { 0x06FB, 46829 }, - { 0x06FC, 46835 }, - { 0x081C, 46841 }, - { 0x3EDE, 46848 }, - { 0x3EE0, 46853 }, - { 0x3EDF, 46858 }, - { 0x3EDD, 46863 }, - { 0x05DF, 46868 }, - { 0x0652, 46871 }, - { 0x06FD, 46877 }, - { 0x0655, 46884 }, - { 0x06FF, 46889 }, - { 0x06FE, 46895 }, - { 0x0656, 46901 }, - { 0x0804, 46908 }, - { 0x3EE2, 46915 }, - { 0x0653, 46920 }, - { 0x3BF1, 46924 }, - { 0x3BF0, 46930 }, - { 0x3EE4, 46936 }, - { 0x3EE3, 46941 }, - { 0x3EE1, 46946 }, - { 0x061C, 46951 }, - { 0x3BC9, 46954 }, - { 0x3BCB, 46959 }, - { 0x3BCA, 46964 }, - { 0x3BC8, 46969 }, - { 0x062A, 46974 }, - { 0x3BDF, 46977 }, - { 0x3BDE, 46982 }, - { 0x05CC, 46987 }, - { 0x0633, 46990 }, - { 0x0703, 46999 }, - { 0x06F2, 47007 }, - { 0x0706, 47014 }, - { 0x0634, 47025 }, - { 0x0635, 47032 }, - { 0x0713, 47043 }, - { 0x0714, 47052 }, - { 0x3EAE, 47058 }, - { 0x3EB0, 47063 }, - { 0x3EAF, 47068 }, - { 0x3EAD, 47073 }, - { 0x05C9, 47078 }, - { 0x3EA8, 47081 }, - { 0x3EA7, 47086 }, - { 0x05C4, 47091 }, - { 0x3E96, 47094 }, - { 0x3E98, 47099 }, - { 0x3E97, 47104 }, - { 0x3E95, 47109 }, - { 0x0801, 47114 }, - { 0x0612, 47118 }, - { 0x0835, 47121 }, - { 0x3BB9, 47127 }, - { 0x3BBB, 47132 }, - { 0x3BBA, 47137 }, - { 0x3BB8, 47142 }, - { 0x05CB, 47147 }, - { 0x0827, 47150 }, - { 0x3EAC, 47157 }, - { 0x3EAB, 47162 }, - { 0x0619, 47167 }, - { 0x3BAD, 47170 }, - { 0x3BAF, 47175 }, - { 0x3BAE, 47180 }, - { 0x3BAC, 47185 }, - { 0x0625, 47190 }, - { 0x3BD7, 47193 }, - { 0x3BD6, 47198 }, - { 0x0665, 47203 }, - { 0x05D7, 47207 }, - { 0x05D8, 47215 }, - { 0x070B, 47223 }, - { 0x070D, 47233 }, - { 0x070C, 47243 }, - { 0x05D6, 47253 }, - { 0x3C3F, 47260 }, - { 0x3C41, 47266 }, - { 0x3C40, 47272 }, - { 0x3C3E, 47278 }, - { 0x05D3, 47284 }, - { 0x0695, 47287 }, - { 0x0838, 47293 }, - { 0x3ECA, 47300 }, - { 0x3ECC, 47305 }, - { 0x3ECB, 47310 }, - { 0x3EC9, 47315 }, - { 0x05BA, 47320 }, - { 0x3E7C, 47323 }, - { 0x0642, 47328 }, - { 0x06F8, 47331 }, - { 0x05D4, 47337 }, - { 0x0808, 47344 }, - { 0x0837, 47352 }, - { 0x06F9, 47358 }, - { 0x05D5, 47365 }, - { 0x06FA, 47372 }, - { 0x3BE1, 47381 }, - { 0x3BE3, 47386 }, - { 0x3BE2, 47391 }, - { 0x3BE0, 47396 }, - { 0x064A, 47401 }, - { 0x3BED, 47404 }, - { 0x3BEF, 47409 }, - { 0x3BEE, 47414 }, - { 0x3BEC, 47419 }, - { 0x063F, 47424 }, - { 0x3BC1, 47427 }, - { 0x3BC3, 47432 }, - { 0x3BC2, 47437 }, - { 0x3BC0, 47442 }, - { 0x0654, 47447 }, - { 0x3BF3, 47450 }, - { 0x3BF5, 47455 }, - { 0x3BF4, 47460 }, - { 0x3BF2, 47465 }, - { 0x05CD, 47470 }, - { 0x0693, 47473 }, - { 0x3EB2, 47479 }, - { 0x3EB4, 47484 }, - { 0x3EB3, 47489 }, - { 0x3EB1, 47494 }, - { 0x0643, 47499 }, - { 0x061F, 47503 }, - { 0x0658, 47506 }, - { 0x0836, 47512 }, - { 0x3BCD, 47518 }, - { 0x3BCF, 47523 }, - { 0x3BCE, 47528 }, - { 0x3BCC, 47533 }, - { 0x0618, 47538 }, - { 0x3BB5, 47541 }, - { 0x3BB7, 47546 }, - { 0x3BB6, 47551 }, - { 0x3BB4, 47556 }, - { 0x0626, 47561 }, - { 0x3BD5, 47564 }, - { 0x3BD4, 47569 }, - { 0x0613, 47574 }, - { 0x3BB1, 47577 }, - { 0x3BB3, 47582 }, - { 0x3BB2, 47587 }, - { 0x3BB0, 47592 }, - { 0x3C2B, 47597 }, - { 0x3C2A, 47606 }, - { 0x0830, 47615 }, - { 0x0831, 47619 }, - { 0x0839, 47623 }, - { 0x0832, 47631 }, - { 0x0607, 47635 }, - { 0x063A, 47639 }, - { 0x0608, 47643 }, - { 0x065E, 47647 }, - { 0x3C23, 47651 }, - { 0x3C22, 47657 }, - { 0x0662, 47663 }, - { 0x3C25, 47667 }, - { 0x3C24, 47673 }, - { 0x0620, 47679 }, - { 0x3BD1, 47682 }, - { 0x3BD3, 47687 }, - { 0x3BD2, 47692 }, - { 0x3BD0, 47697 }, - { 0x05B9, 47702 }, - { 0x0821, 47706 }, - { 0x0826, 47710 }, - { 0x0609, 47714 }, - { 0x05EC, 47718 }, - { 0x059E, 47721 }, - { 0x0599, 47725 }, - { 0x05A7, 47728 }, - { 0x0803, 47732 }, - { 0x05EA, 47736 }, - { 0x3E79, 47738 }, - { 0x3E78, 47742 }, - { 0x3C04, 47746 }, - { 0x3C05, 47750 }, - { 0x3C06, 47754 }, - { 0x3C07, 47759 }, - { 0x3C0F, 47764 }, - { 0x3C10, 47770 }, - { 0x3C0C, 47776 }, - { 0x3C0D, 47781 }, - { 0x3C11, 47786 }, - { 0x3C12, 47789 }, - { 0x3C13, 47794 }, - { 0x3C08, 47799 }, - { 0x3C09, 47804 }, - { 0x3C0A, 47809 }, - { 0x3C0B, 47816 }, - { 0x3C14, 47823 }, - { 0x3C0E, 47827 }, - { 0x05B7, 47833 }, - { 0x0858, 47838 }, - { 0x0604, 47842 }, - { 0x0813, 47845 }, - { 0x0603, 47848 }, - { 0x080B, 47851 }, - { 0x0685, 47855 }, - { 0x05D9, 47862 }, - { 0x0800, 47864 }, - { 0x3E6E, 47870 }, - { 0x07FF, 47875 }, - { 0x07FE, 47880 }, - { 0x0802, 47885 }, - { 0x05E5, 47889 }, - { 0x3E6F, 47891 }, - { 0x0857, 47895 }, - { 0x05E4, 47900 }, - { 0x3E6D, 47902 }, - { 0x059B, 47906 }, - { 0x05F0, 47909 }, - { 0x05E6, 47912 }, - { 0x3E71, 47914 }, - { 0x3D56, 47918 }, - { 0x3D3A, 47925 }, - { 0x3D55, 47932 }, - { 0x3D39, 47940 }, - { 0x3DB7, 47948 }, - { 0x3E04, 47957 }, - { 0x3CFC, 47966 }, - { 0x3C6B, 47973 }, - { 0x3DF6, 47980 }, - { 0x3DBA, 47989 }, - { 0x3DB8, 47999 }, - { 0x3DB9, 48008 }, - { 0x3CFD, 48017 }, - { 0x3C6C, 48024 }, - { 0x3E02, 48031 }, - { 0x3CDF, 48040 }, - { 0x3C48, 48047 }, - { 0x3D24, 48054 }, - { 0x3CE2, 48061 }, - { 0x3CAC, 48068 }, - { 0x3CB1, 48075 }, - { 0x3C4C, 48082 }, - { 0x3CB0, 48089 }, - { 0x3C4B, 48097 }, - { 0x3CDE, 48105 }, - { 0x3C47, 48112 }, - { 0x3DDE, 48119 }, - { 0x3CE0, 48128 }, - { 0x3C49, 48135 }, - { 0x3CAE, 48142 }, - { 0x3D23, 48149 }, - { 0x3CE1, 48156 }, - { 0x3C4A, 48163 }, - { 0x3CAF, 48170 }, - { 0x3CAD, 48177 }, - { 0x3DEB, 48184 }, - { 0x3DB0, 48193 }, - { 0x3CF7, 48203 }, - { 0x3C65, 48210 }, - { 0x3D6E, 48217 }, - { 0x3D52, 48224 }, - { 0x3D66, 48231 }, - { 0x3D4A, 48238 }, - { 0x3D65, 48245 }, - { 0x3D49, 48253 }, - { 0x3CF6, 48261 }, - { 0x3C64, 48268 }, - { 0x3DB1, 48275 }, - { 0x3DB2, 48284 }, - { 0x3CF8, 48293 }, - { 0x3C66, 48300 }, - { 0x3CF9, 48307 }, - { 0x3C67, 48314 }, - { 0x3D01, 48321 }, - { 0x3C70, 48328 }, - { 0x3CBF, 48335 }, - { 0x3C74, 48342 }, - { 0x3CBE, 48349 }, - { 0x3C73, 48357 }, - { 0x3D00, 48365 }, - { 0x3C6F, 48372 }, - { 0x3DBE, 48379 }, - { 0x3DBF, 48388 }, - { 0x3D02, 48397 }, - { 0x3C71, 48404 }, - { 0x3E01, 48411 }, - { 0x3D03, 48420 }, - { 0x3C72, 48427 }, - { 0x3D5E, 48434 }, - { 0x3D42, 48441 }, - { 0x3D5D, 48448 }, - { 0x3D41, 48456 }, - { 0x3DFF, 48464 }, - { 0x3CEB, 48473 }, - { 0x3C59, 48480 }, - { 0x3D9C, 48487 }, - { 0x3D9D, 48496 }, - { 0x3CEC, 48506 }, - { 0x3C5A, 48513 }, - { 0x3C96, 48520 }, - { 0x3C95, 48527 }, - { 0x3D19, 48535 }, - { 0x3C93, 48542 }, - { 0x3DD3, 48549 }, - { 0x3DD4, 48558 }, - { 0x3D1A, 48567 }, - { 0x3C94, 48574 }, - { 0x3D1B, 48581 }, - { 0x3D07, 48589 }, - { 0x3C7B, 48596 }, - { 0x3CC3, 48603 }, - { 0x3D2D, 48610 }, - { 0x3D09, 48617 }, - { 0x3C7D, 48624 }, - { 0x3CC6, 48631 }, - { 0x3C80, 48638 }, - { 0x3CC2, 48645 }, - { 0x3CC5, 48652 }, - { 0x3C7F, 48660 }, - { 0x3C79, 48668 }, - { 0x3D06, 48675 }, - { 0x3C7A, 48682 }, - { 0x3D08, 48689 }, - { 0x3C7C, 48696 }, - { 0x3DF7, 48703 }, - { 0x3DFB, 48712 }, - { 0x3E03, 48721 }, - { 0x3CC4, 48730 }, - { 0x3D2E, 48737 }, - { 0x3D0A, 48744 }, - { 0x3C7E, 48751 }, - { 0x3DC3, 48758 }, - { 0x3DC4, 48767 }, - { 0x3DC2, 48777 }, - { 0x3DF5, 48786 }, - { 0x3D0C, 48795 }, - { 0x3C82, 48802 }, - { 0x3D0F, 48809 }, - { 0x3CC9, 48816 }, - { 0x3C86, 48823 }, - { 0x3EF4, 48830 }, - { 0x3EF3, 48840 }, - { 0x3EF6, 48850 }, - { 0x3EF5, 48860 }, - { 0x3EF2, 48870 }, - { 0x3EF1, 48880 }, - { 0x3EF8, 48890 }, - { 0x3CC8, 48897 }, - { 0x3C85, 48905 }, - { 0x3EF7, 48913 }, - { 0x3DEC, 48920 }, - { 0x3DC6, 48929 }, - { 0x3DC5, 48938 }, - { 0x3DFC, 48947 }, - { 0x3DFA, 48956 }, - { 0x3D0B, 48965 }, - { 0x3C81, 48972 }, - { 0x3DC7, 48979 }, - { 0x3DC8, 48988 }, - { 0x3D0D, 48997 }, - { 0x3C83, 49004 }, - { 0x3DC9, 49011 }, - { 0x3DCA, 49020 }, - { 0x3DED, 49029 }, - { 0x3CC7, 49038 }, - { 0x3D2F, 49045 }, - { 0x3D0E, 49052 }, - { 0x3C84, 49059 }, - { 0x3D04, 49066 }, - { 0x3C75, 49073 }, - { 0x3CC1, 49080 }, - { 0x3C78, 49087 }, - { 0x3CC0, 49094 }, - { 0x3C77, 49102 }, - { 0x3DC0, 49110 }, - { 0x3DF4, 49119 }, - { 0x3DF2, 49128 }, - { 0x3DC1, 49137 }, - { 0x3D05, 49146 }, - { 0x3C76, 49153 }, - { 0x3C9E, 49160 }, - { 0x3DA6, 49168 }, - { 0x3DA7, 49177 }, - { 0x3DE9, 49186 }, - { 0x3CF3, 49195 }, - { 0x3C62, 49202 }, - { 0x3D6D, 49209 }, - { 0x3D51, 49216 }, - { 0x3D64, 49223 }, - { 0x3D48, 49230 }, - { 0x3D63, 49237 }, - { 0x3D47, 49245 }, - { 0x3CF4, 49253 }, - { 0x3DA8, 49260 }, - { 0x3E05, 49269 }, - { 0x3CF5, 49278 }, - { 0x3C63, 49285 }, - { 0x3CFA, 49292 }, - { 0x3C68, 49299 }, - { 0x3D54, 49306 }, - { 0x3D38, 49313 }, - { 0x3D53, 49320 }, - { 0x3D37, 49328 }, - { 0x3DB3, 49336 }, - { 0x3DB4, 49345 }, - { 0x3DB6, 49354 }, - { 0x3DB5, 49363 }, - { 0x3D7C, 49372 }, - { 0x3D75, 49379 }, - { 0x3C69, 49386 }, - { 0x3D93, 49393 }, - { 0x3D94, 49402 }, - { 0x3D95, 49411 }, - { 0x3CE4, 49420 }, - { 0x3C4E, 49427 }, - { 0x3D26, 49434 }, - { 0x3CE7, 49441 }, - { 0x3CB2, 49448 }, - { 0x3CB7, 49455 }, - { 0x3C52, 49462 }, - { 0x3CB6, 49469 }, - { 0x3C51, 49477 }, - { 0x3DDF, 49485 }, - { 0x3DE0, 49494 }, - { 0x3D92, 49504 }, - { 0x3CE3, 49513 }, - { 0x3C4D, 49520 }, - { 0x3DE1, 49527 }, - { 0x3DE2, 49536 }, - { 0x3D96, 49546 }, - { 0x3CE5, 49555 }, - { 0x3C4F, 49562 }, - { 0x3D98, 49569 }, - { 0x3DE3, 49578 }, - { 0x3DE4, 49587 }, - { 0x3D97, 49597 }, - { 0x3D99, 49606 }, - { 0x3CB4, 49615 }, - { 0x3D25, 49622 }, - { 0x3CE6, 49629 }, - { 0x3C50, 49636 }, - { 0x3CB5, 49643 }, - { 0x3CB3, 49650 }, - { 0x3DEE, 49657 }, - { 0x3D1D, 49666 }, - { 0x3C98, 49673 }, - { 0x3D33, 49680 }, - { 0x3D20, 49687 }, - { 0x3CD3, 49694 }, - { 0x3CD8, 49701 }, - { 0x3C9C, 49708 }, - { 0x3CD7, 49715 }, - { 0x3C9B, 49723 }, - { 0x3DEF, 49731 }, - { 0x3D1C, 49740 }, - { 0x3C97, 49747 }, - { 0x3D1E, 49754 }, - { 0x3C99, 49761 }, - { 0x3DF0, 49768 }, - { 0x3DDC, 49777 }, - { 0x3DDD, 49786 }, - { 0x3CD5, 49795 }, - { 0x3D32, 49802 }, - { 0x3D1F, 49809 }, - { 0x3C9A, 49816 }, - { 0x3CD6, 49823 }, - { 0x3CD4, 49830 }, - { 0x3C39, 49837 }, - { 0x3C3A, 49847 }, - { 0x3C38, 49857 }, - { 0x3C33, 49867 }, - { 0x3C32, 49877 }, - { 0x3C2F, 49887 }, - { 0x3C2E, 49897 }, - { 0x3C35, 49907 }, - { 0x3C34, 49917 }, - { 0x3C37, 49927 }, - { 0x3C36, 49937 }, - { 0x3CDA, 49947 }, - { 0x3C43, 49957 }, - { 0x3D22, 49967 }, - { 0x3CDD, 49977 }, - { 0x3CA6, 49987 }, - { 0x3C31, 49997 }, - { 0x3C30, 50007 }, - { 0x3CAB, 50017 }, - { 0x3C46, 50027 }, - { 0x3C2D, 50037 }, - { 0x3CAA, 50047 }, - { 0x3C45, 50058 }, - { 0x3C2C, 50069 }, - { 0x3CD9, 50079 }, - { 0x3C42, 50089 }, - { 0x3CDB, 50099 }, - { 0x3CA8, 50109 }, - { 0x3D21, 50119 }, - { 0x3CDC, 50129 }, - { 0x3C44, 50139 }, - { 0x3CA9, 50149 }, - { 0x3CA7, 50159 }, - { 0x3D7D, 50169 }, - { 0x3CFB, 50176 }, - { 0x3C6A, 50183 }, - { 0x3D7E, 50190 }, - { 0x3D7F, 50197 }, - { 0x3CD2, 50204 }, - { 0x3C9F, 50213 }, - { 0x3E18, 50222 }, - { 0x3DFE, 50227 }, - { 0x3DE6, 50236 }, - { 0x3CE9, 50246 }, - { 0x3C57, 50253 }, - { 0x3D60, 50260 }, - { 0x3D44, 50267 }, - { 0x3D5F, 50274 }, - { 0x3D43, 50282 }, - { 0x3D9A, 50290 }, - { 0x3D9B, 50299 }, - { 0x3DE5, 50308 }, - { 0x3DE7, 50317 }, - { 0x3CEA, 50327 }, - { 0x3C58, 50334 }, - { 0x3C5C, 50341 }, - { 0x3D62, 50348 }, - { 0x3D46, 50355 }, - { 0x3D61, 50362 }, - { 0x3D45, 50370 }, - { 0x3CED, 50378 }, - { 0x3C5B, 50385 }, - { 0x3CEE, 50392 }, - { 0x3C5D, 50399 }, - { 0x3DCD, 50406 }, - { 0x3DCB, 50415 }, - { 0x3DCC, 50424 }, - { 0x3D11, 50433 }, - { 0x3C88, 50440 }, - { 0x3C8C, 50447 }, - { 0x3CCA, 50454 }, - { 0x3C8B, 50461 }, - { 0x3DCE, 50469 }, - { 0x3E00, 50478 }, - { 0x3DD2, 50487 }, - { 0x3DCF, 50496 }, - { 0x3D10, 50505 }, - { 0x3C87, 50512 }, - { 0x3DF9, 50519 }, - { 0x3DD0, 50528 }, - { 0x3DD1, 50537 }, - { 0x3D12, 50546 }, - { 0x3C89, 50553 }, - { 0x3DF1, 50560 }, - { 0x3CCB, 50569 }, - { 0x3D13, 50576 }, - { 0x3C8A, 50583 }, - { 0x3DF3, 50590 }, - { 0x3DD6, 50599 }, - { 0x3DD5, 50609 }, - { 0x3D15, 50618 }, - { 0x3C8E, 50625 }, - { 0x3D31, 50632 }, - { 0x3D18, 50639 }, - { 0x3CCC, 50646 }, - { 0x3CD1, 50653 }, - { 0x3C92, 50660 }, - { 0x3CD0, 50667 }, - { 0x3C91, 50675 }, - { 0x3DFD, 50683 }, - { 0x3DF8, 50692 }, - { 0x3E07, 50701 }, - { 0x3DD9, 50710 }, - { 0x3DD7, 50720 }, - { 0x3DD8, 50729 }, - { 0x3D14, 50738 }, - { 0x3C8D, 50745 }, - { 0x3D16, 50752 }, - { 0x3C8F, 50759 }, - { 0x3DDA, 50766 }, - { 0x3DDB, 50775 }, - { 0x3CCE, 50785 }, - { 0x3D30, 50792 }, - { 0x3D17, 50799 }, - { 0x3C90, 50806 }, - { 0x3CCF, 50813 }, - { 0x3CCD, 50820 }, - { 0x3E0A, 50827 }, - { 0x3D83, 50837 }, - { 0x3D84, 50842 }, - { 0x3D85, 50847 }, - { 0x3D86, 50852 }, - { 0x3D87, 50857 }, - { 0x3D9E, 50862 }, - { 0x3D77, 50871 }, - { 0x3CF0, 50878 }, - { 0x3C5F, 50885 }, - { 0x3D2A, 50892 }, - { 0x3D73, 50899 }, - { 0x3D6C, 50906 }, - { 0x3D50, 50913 }, - { 0x3D5A, 50920 }, - { 0x3D3E, 50927 }, - { 0x3D59, 50934 }, - { 0x3D3D, 50942 }, - { 0x3D9F, 50950 }, - { 0x3DA0, 50959 }, - { 0x3D76, 50969 }, - { 0x3CEF, 50976 }, - { 0x3C5E, 50983 }, - { 0x3E06, 50990 }, - { 0x3DE8, 50999 }, - { 0x3D78, 51009 }, - { 0x3CF1, 51016 }, - { 0x3C60, 51023 }, - { 0x3DA1, 51030 }, - { 0x3DA2, 51039 }, - { 0x3DA3, 51048 }, - { 0x3DA4, 51057 }, - { 0x3DA5, 51066 }, - { 0x3D29, 51075 }, - { 0x3CF2, 51082 }, - { 0x3C61, 51089 }, - { 0x3C9D, 51096 }, - { 0x3D28, 51104 }, - { 0x3CB8, 51111 }, - { 0x3CBD, 51118 }, - { 0x3C56, 51125 }, - { 0x3CBC, 51132 }, - { 0x3C55, 51140 }, - { 0x3C53, 51148 }, - { 0x3CBA, 51155 }, - { 0x3D27, 51162 }, - { 0x3CE8, 51169 }, - { 0x3C54, 51176 }, - { 0x3CBB, 51183 }, - { 0x3CB9, 51190 }, - { 0x3E0C, 51197 }, - { 0x3E0B, 51202 }, - { 0x3D58, 51207 }, - { 0x3D3C, 51214 }, - { 0x3D57, 51221 }, - { 0x3D3B, 51229 }, - { 0x3CFE, 51237 }, - { 0x3C6D, 51244 }, - { 0x3DBC, 51251 }, - { 0x3DBD, 51260 }, - { 0x3DBB, 51270 }, - { 0x3CFF, 51279 }, - { 0x3C6E, 51286 }, - { 0x3E0E, 51293 }, - { 0x3E09, 51298 }, - { 0x3E12, 51308 }, - { 0x3DEA, 51313 }, - { 0x3DA9, 51322 }, - { 0x3DAA, 51331 }, - { 0x3D68, 51340 }, - { 0x3D7A, 51347 }, - { 0x3D70, 51354 }, - { 0x3D4C, 51361 }, - { 0x3D2C, 51368 }, - { 0x3D74, 51375 }, - { 0x3D6B, 51382 }, - { 0x3D4F, 51389 }, - { 0x3D5C, 51396 }, - { 0x3D40, 51403 }, - { 0x3D5B, 51410 }, - { 0x3D3F, 51418 }, - { 0x3DAB, 51426 }, - { 0x3D67, 51435 }, - { 0x3D79, 51442 }, - { 0x3D6F, 51449 }, - { 0x3D4B, 51456 }, - { 0x3D69, 51463 }, - { 0x3D7B, 51470 }, - { 0x3D71, 51477 }, - { 0x3D4D, 51484 }, - { 0x3DAC, 51491 }, - { 0x3DAD, 51500 }, - { 0x3DAE, 51509 }, - { 0x3DAF, 51518 }, - { 0x3D6A, 51527 }, - { 0x3D2B, 51534 }, - { 0x3D72, 51541 }, - { 0x3D4E, 51548 }, - { 0x3E10, 51555 }, - { 0x3D89, 51560 }, - { 0x3D8C, 51564 }, - { 0x3E0F, 51569 }, - { 0x3D35, 51574 }, - { 0x3CA3, 51581 }, - { 0x3D34, 51588 }, - { 0x3CA2, 51595 }, - { 0x3D36, 51602 }, - { 0x3CA4, 51609 }, - { 0x3CA0, 51616 }, - { 0x3CA1, 51623 }, - { 0x3CA5, 51630 }, - { 0x3C3C, 51638 }, - { 0x3C3D, 51651 }, - { 0x3C3B, 51664 }, - { 0x3D8F, 51677 }, - { 0x3D8A, 51681 }, - { 0x3D8D, 51685 }, - { 0x3E0D, 51689 }, - { 0x3D82, 51694 }, - { 0x3E11, 51698 }, - { 0x3D8B, 51703 }, - { 0x3E16, 51707 }, - { 0x3D91, 51712 }, - { 0x3E08, 51716 }, - { 0x3D90, 51720 }, - { 0x3D8E, 51724 }, - { 0x3E17, 51730 }, - { 0x3D88, 51735 }, - { 0x3E13, 51740 }, - { 0x3E14, 51745 }, - { 0x05B8, 51748 }, - { 0x05F6, 51751 }, - { 0x0809, 51754 }, - { 0x05F2, 51757 }, - { 0x4A25, 51759 }, - { 0x05B4, 51763 }, - { 0x05EF, 51765 }, - { 0x0605, 51768 }, - { 0x0812, 51771 }, - { 0x8C48, 51775 }, - { 0x8C3B, 51778 }, - { 0x8C52, 51781 }, - { 0x8C3D, 51784 }, - { 0x8C49, 51787 }, - { 0x8C40, 51790 }, - { 0x8C43, 51793 }, - { 0x8C44, 51796 }, - { 0x8C4B, 51799 }, - { 0x8C4C, 51802 }, - { 0x8C4A, 51805 }, - { 0x8C41, 51808 }, - { 0x8C4E, 51811 }, - { 0x8C3E, 51814 }, - { 0x8C42, 51817 }, - { 0x8C53, 51820 }, - { 0x8C3A, 51823 }, - { 0x8C3C, 51826 }, - { 0x8C50, 51829 }, - { 0x8C45, 51832 }, - { 0x8C46, 51835 }, - { 0x8C47, 51838 }, - { 0x8C51, 51841 }, - { 0x8C4F, 51844 }, - { 0x8C3F, 51847 }, - { 0x8C54, 51850 }, - { 0x8C4D, 51853 }, - { 0x8CA1, 51856 }, - { 0x8C94, 51860 }, - { 0x8CAB, 51864 }, - { 0x8C96, 51868 }, - { 0x8CA2, 51872 }, - { 0x8C9A, 51876 }, - { 0x8C97, 51880 }, - { 0x8C9D, 51884 }, - { 0x8CA4, 51888 }, - { 0x8CA5, 51892 }, - { 0x8CA3, 51896 }, - { 0x8C9B, 51900 }, - { 0x8CA7, 51904 }, - { 0x8C98, 51908 }, - { 0x8C9C, 51912 }, - { 0x8CAC, 51916 }, - { 0x8C93, 51920 }, - { 0x8C95, 51924 }, - { 0x8CA9, 51928 }, - { 0x8C9E, 51932 }, - { 0x8C9F, 51936 }, - { 0x8CA0, 51940 }, - { 0x8CAA, 51944 }, - { 0x8CA8, 51948 }, - { 0x8C99, 51952 }, - { 0x8CAD, 51956 }, - { 0x8CA6, 51960 }, - { 0x8C73, 51964 }, - { 0x8C78, 51968 }, - { 0x8C6E, 51972 }, - { 0x8C70, 51976 }, - { 0x8C75, 51980 }, - { 0x8C74, 51984 }, - { 0x8C6F, 51988 }, - { 0x8C6D, 51992 }, - { 0x8C77, 51996 }, - { 0x8C71, 52000 }, - { 0x8C72, 52004 }, - { 0x8C79, 52008 }, - { 0x8C76, 52012 }, - { 0x8C7B, 52016 }, - { 0x8C7A, 52021 }, - { 0x8C55, 52026 }, - { 0x8C57, 52030 }, - { 0x8C58, 52034 }, - { 0x8C56, 52038 }, - { 0x8C63, 52042 }, - { 0x8C59, 52046 }, - { 0x8C6B, 52050 }, - { 0x8C64, 52054 }, - { 0x8C5C, 52058 }, - { 0x8C5B, 52062 }, - { 0x8C5E, 52066 }, - { 0x8C5F, 52070 }, - { 0x8C66, 52074 }, - { 0x8C65, 52078 }, - { 0x8C68, 52082 }, - { 0x8C5D, 52086 }, - { 0x8C5A, 52090 }, - { 0x8C6A, 52094 }, - { 0x8C60, 52098 }, - { 0x8C61, 52102 }, - { 0x8C62, 52106 }, - { 0x8C69, 52110 }, - { 0x8C6C, 52114 }, - { 0x8C67, 52118 }, - { 0x8CC8, 52122 }, - { 0x8CC7, 52128 }, - { 0x8C86, 52136 }, - { 0x8C7C, 52140 }, - { 0x8C8E, 52144 }, - { 0x8C87, 52148 }, - { 0x8C7F, 52152 }, - { 0x8C7E, 52156 }, - { 0x8C82, 52160 }, - { 0x8C89, 52164 }, - { 0x8C88, 52168 }, - { 0x8C80, 52172 }, - { 0x8C8B, 52176 }, - { 0x8C81, 52180 }, - { 0x8C8F, 52184 }, - { 0x8C7D, 52188 }, - { 0x8C8D, 52192 }, - { 0x8C83, 52196 }, - { 0x8C84, 52200 }, - { 0x8C85, 52204 }, - { 0x8C8C, 52208 }, - { 0x8C90, 52212 }, - { 0x8C8A, 52216 }, - { 0x8C91, 52220 }, - { 0x8C92, 52225 }, - { 0x8CBA, 52230 }, - { 0x8CAE, 52234 }, - { 0x8CC4, 52238 }, - { 0x8CB0, 52242 }, - { 0x8CBB, 52246 }, - { 0x8CB3, 52250 }, - { 0x8CB6, 52254 }, - { 0x8CBD, 52258 }, - { 0x8CBE, 52262 }, - { 0x8CBC, 52266 }, - { 0x8CB4, 52270 }, - { 0x8CC0, 52274 }, - { 0x8CB1, 52278 }, - { 0x8CB5, 52282 }, - { 0x8CC5, 52286 }, - { 0x8CAF, 52290 }, - { 0x8CC2, 52294 }, - { 0x8CB7, 52298 }, - { 0x8CB8, 52302 }, - { 0x8CB9, 52306 }, - { 0x8CC3, 52310 }, - { 0x8CC1, 52314 }, - { 0x8CB2, 52318 }, - { 0x8CC6, 52322 }, - { 0x8CBF, 52326 }, - { 0x8F5B, 52330 }, - { 0x94CF, 52332 }, - { 0x9590, 52333 }, - { 0x2343, 52335 }, - { 0x223C, 52337 }, - { 0x223E, 52339 }, - { 0x91AC, 52343 }, - { 0x91AA, 52348 }, - { 0x223D, 52354 }, - { 0x27E6, 52358 }, - { 0x91A6, 52363 }, - { 0x91A8, 52367 }, - { 0x91A9, 52372 }, - { 0x91A7, 52376 }, - { 0x8EFF, 52379 }, - { 0x903B, 52380 }, - { 0x9528, 52382 }, - { 0x2297, 52383 }, - { 0x8F4F, 52386 }, - { 0x2298, 52390 }, - { 0x8F50, 52393 }, - { 0x94D9, 52397 }, - { 0x95CA, 52398 }, - { 0x900C, 52399 }, - { 0x9510, 52400 }, - { 0x95F5, 52402 }, - { 0x8F31, 52404 }, - { 0x2567, 52408 }, - { 0x2A51, 52412 }, - { 0x27F4, 52416 }, - { 0x2A52, 52420 }, - { 0x1F78, 52424 }, - { 0x7E28, 52427 }, - { 0x7CA4, 52431 }, - { 0x7E2E, 52435 }, - { 0x7E30, 52440 }, - { 0x7CA6, 52445 }, - { 0x7E2A, 52449 }, - { 0x7E2C, 52454 }, - { 0x7CA5, 52459 }, - { 0x7E32, 52463 }, - { 0x7E33, 52468 }, - { 0x7E34, 52473 }, - { 0x7E35, 52478 }, - { 0x1F64, 52483 }, - { 0x2A1A, 52486 }, - { 0x1F75, 52490 }, - { 0x96EE, 52493 }, - { 0x2036, 52501 }, - { 0x1F63, 52504 }, - { 0x2A1B, 52507 }, - { 0x1F76, 52511 }, - { 0x96EF, 52514 }, - { 0x200C, 52522 }, - { 0x200D, 52525 }, - { 0x2038, 52532 }, - { 0x96EB, 52536 }, - { 0x96E3, 52542 }, - { 0x2034, 52548 }, - { 0x1F1F, 52550 }, - { 0x25FD, 52551 }, - { 0x25FE, 52556 }, - { 0x9478, 52561 }, - { 0x4B34, 52563 }, - { 0x4ACA, 52568 }, - { 0x4AC9, 52571 }, - { 0x4AC8, 52574 }, - { 0x4ACB, 52577 }, - { 0x4ACC, 52580 }, - { 0x4B0F, 52583 }, - { 0x4B2B, 52585 }, - { 0x4B30, 52588 }, - { 0x4B2C, 52591 }, - { 0x4B2F, 52594 }, - { 0x4B2E, 52597 }, - { 0x4B33, 52600 }, - { 0x4B2A, 52603 }, - { 0x4B32, 52606 }, - { 0x4B31, 52609 }, - { 0x4B2D, 52612 }, - { 0x4B0A, 52615 }, - { 0x4B02, 52619 }, - { 0x4B0C, 52623 }, - { 0x4B04, 52627 }, - { 0x4B00, 52631 }, - { 0x4B0B, 52635 }, - { 0x4B0D, 52639 }, - { 0x4B03, 52643 }, - { 0x4B05, 52647 }, - { 0x4B37, 52651 }, - { 0x4B38, 52658 }, - { 0x4B08, 52665 }, - { 0x4B06, 52670 }, - { 0x4B09, 52675 }, - { 0x4B07, 52680 }, - { 0x4B01, 52685 }, - { 0x4B10, 52690 }, - { 0x4ACD, 52693 }, - { 0x4AD7, 52696 }, - { 0x4ACF, 52699 }, - { 0x4AD9, 52702 }, - { 0x4AD1, 52705 }, - { 0x4ACE, 52708 }, - { 0x4AD8, 52711 }, - { 0x4ADA, 52714 }, - { 0x4AF1, 52717 }, - { 0x4AE0, 52720 }, - { 0x4AEC, 52723 }, - { 0x4ADD, 52726 }, - { 0x4AFB, 52729 }, - { 0x4AD0, 52732 }, - { 0x4AE2, 52735 }, - { 0x4ADB, 52738 }, - { 0x4AF6, 52741 }, - { 0x4AF3, 52744 }, - { 0x4AEE, 52747 }, - { 0x4AEF, 52750 }, - { 0x4AF5, 52753 }, - { 0x4AFA, 52756 }, - { 0x4AEA, 52759 }, - { 0x4AD2, 52762 }, - { 0x4AF7, 52765 }, - { 0x4AF4, 52768 }, - { 0x4AF2, 52771 }, - { 0x4AE1, 52774 }, - { 0x4AE7, 52777 }, - { 0x4AED, 52780 }, - { 0x4ADE, 52783 }, - { 0x4AE3, 52786 }, - { 0x4ADC, 52789 }, - { 0x4AFC, 52792 }, - { 0x4ADF, 52795 }, - { 0x4AE9, 52798 }, - { 0x4AE4, 52801 }, - { 0x4B39, 52804 }, - { 0x4AFE, 52809 }, - { 0x4AFD, 52814 }, - { 0x4AFF, 52819 }, - { 0x4B35, 52824 }, - { 0x4B36, 52830 }, - { 0x4AF0, 52836 }, - { 0x4AF8, 52839 }, - { 0x4AF9, 52842 }, - { 0x4AEB, 52845 }, - { 0x4AE5, 52848 }, - { 0x4AE8, 52851 }, - { 0x4AE6, 52854 }, - { 0x4AD5, 52857 }, - { 0x4AD3, 52861 }, - { 0x4AD6, 52865 }, - { 0x4AD4, 52869 }, - { 0x4B16, 52873 }, - { 0x4B28, 52876 }, - { 0x4B29, 52880 }, - { 0x4B1B, 52884 }, - { 0x4B1F, 52887 }, - { 0x4B17, 52890 }, - { 0x4B1A, 52893 }, - { 0x4B19, 52896 }, - { 0x4B1E, 52899 }, - { 0x4B1D, 52902 }, - { 0x4B23, 52905 }, - { 0x4B22, 52908 }, - { 0x4B1C, 52911 }, - { 0x4B24, 52914 }, - { 0x4B18, 52917 }, - { 0x4B26, 52920 }, - { 0x4B3A, 52923 }, - { 0x4B27, 52926 }, - { 0x4B21, 52929 }, - { 0x4B20, 52932 }, - { 0x4B25, 52935 }, - { 0x4B0E, 52938 }, - { 0x4B11, 52940 }, - { 0x4B13, 52943 }, - { 0x4B15, 52946 }, - { 0x4B12, 52949 }, - { 0x4B14, 52953 }, - { 0x8EBC, 52957 }, - { 0x9592, 52960 }, - { 0x0065, 52961 }, - { 0x9047, 52963 }, - { 0x1FE2, 52965 }, - { 0x94F9, 52970 }, - { 0x95BB, 52972 }, - { 0x1CA2, 52973 }, - { 0x1E70, 52974 }, - { 0x94F6, 52976 }, - { 0x8EE8, 52977 }, - { 0x90AA, 52978 }, - { 0x90AB, 52979 }, - { 0x975B, 52982 }, - { 0x2277, 52984 }, - { 0x9122, 52985 }, - { 0x9499, 52986 }, - { 0x4194, 52988 }, - { 0x419D, 52991 }, - { 0x4196, 52994 }, - { 0x41AE, 52997 }, - { 0x41B4, 53000 }, - { 0x41AD, 53003 }, - { 0x41B0, 53006 }, - { 0x4197, 53009 }, - { 0x419E, 53012 }, - { 0x41A9, 53015 }, - { 0x419F, 53018 }, - { 0x41AB, 53021 }, - { 0x419C, 53024 }, - { 0x4199, 53027 }, - { 0x41A4, 53030 }, - { 0x41A1, 53033 }, - { 0x41A6, 53036 }, - { 0x41A8, 53039 }, - { 0x419B, 53042 }, - { 0x41A0, 53045 }, - { 0x41C3, 53048 }, - { 0x41B5, 53051 }, - { 0x41B9, 53054 }, - { 0x41B1, 53057 }, - { 0x419A, 53060 }, - { 0x41BE, 53063 }, - { 0x41B2, 53066 }, - { 0x41B8, 53069 }, - { 0x41A7, 53072 }, - { 0x4195, 53075 }, - { 0x41BD, 53078 }, - { 0x41A2, 53081 }, - { 0x41AC, 53084 }, - { 0x41B6, 53087 }, - { 0x41BB, 53090 }, - { 0x41B3, 53093 }, - { 0x41C2, 53096 }, - { 0x41BF, 53099 }, - { 0x41C0, 53102 }, - { 0x41C1, 53105 }, - { 0x41A3, 53108 }, - { 0x41B7, 53111 }, - { 0x41AA, 53114 }, - { 0x4198, 53117 }, - { 0x41A5, 53120 }, - { 0x41BA, 53123 }, - { 0x41BC, 53126 }, - { 0x41C4, 53129 }, - { 0x41AF, 53132 }, - { 0x9483, 53135 }, - { 0x2317, 53136 }, - { 0x90FB, 53137 }, - { 0x1D5F, 53139 }, - { 0x22FF, 53142 }, - { 0x4BD3, 53143 }, - { 0x4BD4, 53146 }, - { 0x4BA4, 53149 }, - { 0x4BA3, 53152 }, - { 0x4BA2, 53155 }, - { 0x4BE2, 53158 }, - { 0x4BD8, 53160 }, - { 0x4BDD, 53163 }, - { 0x4BD9, 53166 }, - { 0x4BDC, 53169 }, - { 0x4BDB, 53172 }, - { 0x4BE0, 53175 }, - { 0x4BD7, 53178 }, - { 0x4BDF, 53181 }, - { 0x4BDE, 53184 }, - { 0x4BDA, 53187 }, - { 0x4BC9, 53190 }, - { 0x4BCE, 53194 }, - { 0x4BCA, 53198 }, - { 0x4BD0, 53202 }, - { 0x4BCC, 53206 }, - { 0x4BE6, 53210 }, - { 0x4BCF, 53214 }, - { 0x4BD1, 53218 }, - { 0x4BE7, 53222 }, - { 0x4BCB, 53226 }, - { 0x4BD2, 53230 }, - { 0x4BCD, 53234 }, - { 0x4BE3, 53238 }, - { 0x4BA8, 53241 }, - { 0x4BA6, 53244 }, - { 0x4BA7, 53247 }, - { 0x4BA5, 53250 }, - { 0x4BBF, 53253 }, - { 0x4BAE, 53256 }, - { 0x4BBA, 53259 }, - { 0x4BAB, 53262 }, - { 0x4BC8, 53265 }, - { 0x4BB0, 53268 }, - { 0x4BA9, 53271 }, - { 0x4BC5, 53274 }, - { 0x4BC1, 53277 }, - { 0x4BBC, 53280 }, - { 0x4BBD, 53283 }, - { 0x4BC4, 53286 }, - { 0x4BC7, 53289 }, - { 0x4BB8, 53292 }, - { 0x4BE8, 53295 }, - { 0x4BC6, 53298 }, - { 0x4BC3, 53301 }, - { 0x4BC0, 53304 }, - { 0x4BAF, 53307 }, - { 0x4BB5, 53310 }, - { 0x4BBB, 53313 }, - { 0x4BAC, 53316 }, - { 0x4BB1, 53319 }, - { 0x4BAA, 53322 }, - { 0x4BE5, 53325 }, - { 0x4BAD, 53328 }, - { 0x4BB7, 53331 }, - { 0x4BB2, 53334 }, - { 0x4BBE, 53337 }, - { 0x4BB9, 53340 }, - { 0x4BB3, 53343 }, - { 0x4BC2, 53346 }, - { 0x4BB6, 53349 }, - { 0x4BB4, 53352 }, - { 0x4BD5, 53355 }, - { 0x4BD6, 53357 }, - { 0x4BE1, 53359 }, - { 0x4BE4, 53362 }, - { 0x94EE, 53365 }, - { 0x8EEB, 53367 }, - { 0x22E3, 53369 }, - { 0x2316, 53370 }, - { 0x8F59, 53371 }, - { 0x2201, 53372 }, - { 0x25EF, 53380 }, - { 0x21FC, 53388 }, - { 0x21FE, 53393 }, - { 0x21FD, 53398 }, - { 0x25EE, 53403 }, - { 0x21FF, 53410 }, - { 0x2200, 53415 }, - { 0x21F9, 53421 }, - { 0x25E1, 53425 }, - { 0x25E7, 53429 }, - { 0x25E6, 53433 }, - { 0x8F5D, 53445 }, - { 0x9088, 53447 }, - { 0x90C3, 53449 }, - { 0x2678, 53453 }, - { 0x267C, 53457 }, - { 0x26FB, 53464 }, - { 0x26FD, 53466 }, - { 0x909E, 53471 }, - { 0x909D, 53476 }, - { 0x26FC, 53481 }, - { 0x26FE, 53483 }, - { 0x8EB5, 53488 }, - { 0x2679, 53490 }, - { 0x22DC, 53494 }, - { 0x8F0D, 53495 }, - { 0x8F1D, 53497 }, - { 0x291D, 53498 }, - { 0x2920, 53503 }, - { 0x291E, 53508 }, - { 0x291F, 53514 }, - { 0x2922, 53520 }, - { 0x41C6, 53523 }, - { 0x41CB, 53527 }, - { 0x41C7, 53531 }, - { 0x41CA, 53535 }, - { 0x41C9, 53539 }, - { 0x41CE, 53543 }, - { 0x41CD, 53547 }, - { 0x41CC, 53551 }, - { 0x41C8, 53555 }, - { 0x41D8, 53559 }, - { 0x41DD, 53564 }, - { 0x41CF, 53569 }, - { 0x41D9, 53573 }, - { 0x41DC, 53578 }, - { 0x41DB, 53583 }, - { 0x41E0, 53588 }, - { 0x41DF, 53593 }, - { 0x41D3, 53598 }, - { 0x41D2, 53602 }, - { 0x41DE, 53606 }, - { 0x41D4, 53611 }, - { 0x41DA, 53615 }, - { 0x41D6, 53620 }, - { 0x41D7, 53624 }, - { 0x41D1, 53628 }, - { 0x41D0, 53632 }, - { 0x41D5, 53636 }, - { 0x41C5, 53640 }, - { 0x28C8, 53644 }, - { 0x28D4, 53648 }, - { 0x28C2, 53652 }, - { 0x28C4, 53656 }, - { 0x28CA, 53660 }, - { 0x28CC, 53664 }, - { 0x28D2, 53668 }, - { 0x03A5, 53672 }, - { 0x28B2, 53676 }, - { 0x039B, 53680 }, - { 0x28D6, 53684 }, - { 0x28C6, 53688 }, - { 0x28F8, 53692 }, - { 0x28DE, 53698 }, - { 0x2902, 53704 }, - { 0x28F0, 53710 }, - { 0x28FE, 53716 }, - { 0x28FC, 53722 }, - { 0x28E8, 53728 }, - { 0x28F6, 53734 }, - { 0x28EE, 53740 }, - { 0x2904, 53746 }, - { 0x2900, 53752 }, - { 0x2908, 53758 }, - { 0x290A, 53764 }, - { 0x290C, 53770 }, - { 0x2906, 53776 }, - { 0x28DA, 53782 }, - { 0x28D8, 53786 }, - { 0x28B4, 53790 }, - { 0x28D0, 53794 }, - { 0x28AA, 53798 }, - { 0x28B8, 53802 }, - { 0x039F, 53806 }, - { 0x28BE, 53810 }, - { 0x039D, 53814 }, - { 0x0399, 53818 }, - { 0x28CE, 53822 }, - { 0x28AC, 53826 }, - { 0x28B6, 53830 }, - { 0x28B0, 53834 }, - { 0x28AE, 53838 }, - { 0x28BC, 53842 }, - { 0x28C0, 53846 }, - { 0x28EA, 53850 }, - { 0x03A3, 53854 }, - { 0x03A1, 53858 }, - { 0x28BA, 53862 }, - { 0x28EC, 53866 }, - { 0x28F2, 53871 }, - { 0x291C, 53876 }, - { 0x28FA, 53881 }, - { 0x28E4, 53886 }, - { 0x28DC, 53891 }, - { 0x28F4, 53896 }, - { 0x28E2, 53901 }, - { 0x28E6, 53906 }, - { 0x28E0, 53911 }, - { 0x2915, 53916 }, - { 0x2917, 53921 }, - { 0x290E, 53926 }, - { 0x290F, 53930 }, - { 0x290D, 53934 }, - { 0x2912, 53937 }, - { 0x2911, 53941 }, - { 0x2913, 53945 }, - { 0x2910, 53949 }, - { 0x28C7, 53952 }, - { 0x28D3, 53956 }, - { 0x28C1, 53960 }, - { 0x28C3, 53964 }, - { 0x28C9, 53968 }, - { 0x28CB, 53972 }, - { 0x28D1, 53976 }, - { 0x03A4, 53980 }, - { 0x28B1, 53984 }, - { 0x039A, 53988 }, - { 0x28D5, 53992 }, - { 0x28C5, 53996 }, - { 0x28F7, 54000 }, - { 0x28DD, 54006 }, - { 0x2901, 54012 }, - { 0x28EF, 54018 }, - { 0x28FD, 54024 }, - { 0x28FB, 54030 }, - { 0x28E7, 54036 }, - { 0x28F5, 54042 }, - { 0x28ED, 54048 }, - { 0x2903, 54054 }, - { 0x28FF, 54060 }, - { 0x2907, 54066 }, - { 0x2909, 54072 }, - { 0x290B, 54078 }, - { 0x2905, 54084 }, - { 0x28D9, 54090 }, - { 0x28D7, 54094 }, - { 0x28B3, 54098 }, - { 0x28CF, 54102 }, - { 0x28A9, 54106 }, - { 0x28B7, 54110 }, - { 0x039E, 54114 }, - { 0x28BD, 54118 }, - { 0x039C, 54122 }, - { 0x0398, 54126 }, - { 0x28CD, 54130 }, - { 0x28AB, 54134 }, - { 0x28B5, 54138 }, - { 0x28AF, 54142 }, - { 0x28AD, 54146 }, - { 0x28BB, 54150 }, - { 0x28BF, 54154 }, - { 0x28E9, 54158 }, - { 0x03A2, 54162 }, - { 0x03A0, 54166 }, - { 0x28B9, 54170 }, - { 0x28EB, 54174 }, - { 0x28F1, 54179 }, - { 0x291B, 54184 }, - { 0x28F9, 54189 }, - { 0x28E3, 54194 }, - { 0x28DB, 54199 }, - { 0x28F3, 54204 }, - { 0x28E1, 54209 }, - { 0x28E5, 54214 }, - { 0x28DF, 54219 }, - { 0x2914, 54224 }, - { 0x2916, 54229 }, - { 0x2921, 54234 }, - { 0x2918, 54238 }, - { 0x2919, 54242 }, - { 0x291A, 54246 }, - { 0x2923, 54250 }, - { 0x9044, 54253 }, - { 0x9066, 54256 }, - { 0x959C, 54258 }, - { 0x91F2, 54259 }, - { 0x91D5, 54262 }, - { 0x2809, 54264 }, - { 0x238D, 54265 }, - { 0x1CA0, 54270 }, - { 0x2A2C, 54271 }, - { 0x2A2D, 54275 }, - { 0x9194, 54279 }, - { 0x9036, 54281 }, - { 0x3E50, 54282 }, - { 0x3E4C, 54285 }, - { 0x23CB, 54287 }, - { 0x006F, 54291 }, - { 0x1D5E, 54293 }, - { 0x1D64, 54295 }, - { 0x8F8F, 54297 }, - { 0x8F90, 54298 }, - { 0x929E, 54300 }, - { 0x8200, 54302 }, - { 0x81FD, 54305 }, - { 0x22B9, 54309 }, - { 0x22BA, 54313 }, - { 0x81FF, 54317 }, - { 0x81FE, 54321 }, - { 0x22BB, 54325 }, - { 0x22B8, 54329 }, - { 0x81FC, 54333 }, - { 0x8F62, 54337 }, - { 0x1FEA, 54339 }, - { 0x946D, 54344 }, - { 0x0004, 54346 }, - { 0x8D27, 54348 }, - { 0x8CF5, 54352 }, - { 0x8D28, 54356 }, - { 0x8D29, 54359 }, - { 0x8D2A, 54362 }, - { 0x8D2B, 54365 }, - { 0x8D2C, 54368 }, - { 0x8D2D, 54371 }, - { 0x8D2E, 54374 }, - { 0x8D2F, 54377 }, - { 0x8D30, 54380 }, - { 0x8D31, 54383 }, - { 0x8D32, 54386 }, - { 0x8D33, 54389 }, - { 0x8D34, 54392 }, - { 0x8D35, 54395 }, - { 0x8D36, 54398 }, - { 0x8D37, 54401 }, - { 0x8D38, 54404 }, - { 0x8D39, 54407 }, - { 0x8D3A, 54410 }, - { 0x8D3B, 54413 }, - { 0x8D3C, 54416 }, - { 0x8D3D, 54419 }, - { 0x8D3E, 54422 }, - { 0x8D3F, 54425 }, - { 0x8D40, 54428 }, - { 0x8D41, 54431 }, - { 0x8D42, 54434 }, - { 0x8D43, 54437 }, - { 0x8D44, 54440 }, - { 0x8D45, 54443 }, - { 0x8D46, 54446 }, - { 0x8D47, 54449 }, - { 0x8D48, 54452 }, - { 0x8D49, 54455 }, - { 0x8D4A, 54458 }, - { 0x8D4B, 54461 }, - { 0x8D4C, 54464 }, - { 0x8D4D, 54467 }, - { 0x8D4E, 54470 }, - { 0x8D4F, 54473 }, - { 0x8D50, 54476 }, - { 0x8D51, 54479 }, - { 0x8D52, 54482 }, - { 0x8D53, 54485 }, - { 0x8D54, 54488 }, - { 0x8D55, 54491 }, - { 0x8D56, 54494 }, - { 0x8D57, 54497 }, - { 0x8D58, 54500 }, - { 0x8CF6, 54503 }, - { 0x8CF7, 54506 }, - { 0x8CF8, 54509 }, - { 0x8CF9, 54512 }, - { 0x8CFA, 54515 }, - { 0x8CFB, 54518 }, - { 0x8CFC, 54521 }, - { 0x8CFD, 54524 }, - { 0x8CFE, 54527 }, - { 0x8CFF, 54530 }, - { 0x8D00, 54533 }, - { 0x8D01, 54536 }, - { 0x8D02, 54539 }, - { 0x8D03, 54542 }, - { 0x8D04, 54545 }, - { 0x8D05, 54548 }, - { 0x8D06, 54551 }, - { 0x8D07, 54554 }, - { 0x8D08, 54557 }, - { 0x8D09, 54560 }, - { 0x8D0A, 54563 }, - { 0x8D0B, 54566 }, - { 0x8D0C, 54569 }, - { 0x8D0D, 54572 }, - { 0x8D0E, 54575 }, - { 0x8D0F, 54578 }, - { 0x8D10, 54581 }, - { 0x8D11, 54584 }, - { 0x8D12, 54587 }, - { 0x8D13, 54590 }, - { 0x8D14, 54593 }, - { 0x8D15, 54596 }, - { 0x8D16, 54599 }, - { 0x8D17, 54602 }, - { 0x8D18, 54605 }, - { 0x8D19, 54608 }, - { 0x8D1A, 54611 }, - { 0x8D1B, 54614 }, - { 0x8D1C, 54617 }, - { 0x8D1D, 54620 }, - { 0x8D1E, 54623 }, - { 0x8D1F, 54626 }, - { 0x8D20, 54629 }, - { 0x8D21, 54632 }, - { 0x8D22, 54635 }, - { 0x8D23, 54638 }, - { 0x8D24, 54641 }, - { 0x8D25, 54644 }, - { 0x8D26, 54647 }, - { 0x95E0, 54650 }, - { 0x95F4, 54651 }, - { 0x1CDC, 54654 }, - { 0x25C5, 54656 }, - { 0x21F8, 54658 }, - { 0x2A09, 54660 }, - { 0x2746, 54662 }, - { 0x2A40, 54664 }, - { 0x29FE, 54666 }, - { 0x2A0C, 54669 }, - { 0x2717, 54672 }, - { 0x1C97, 54675 }, - { 0x2716, 54678 }, - { 0x25C1, 54681 }, - { 0x2626, 54686 }, - { 0x3E4F, 54688 }, - { 0x029C, 54691 }, - { 0x26A0, 54694 }, - { 0x23EB, 54697 }, - { 0x1C9E, 54700 }, - { 0x1CB3, 54704 }, - { 0x2BCB, 54706 }, - { 0x25C2, 54710 }, - { 0x1F2A, 54715 }, - { 0x1CA1, 54717 }, - { 0x2A36, 54719 }, - { 0x26CD, 54721 }, - { 0x26CF, 54724 }, - { 0x26CE, 54729 }, - { 0x267B, 54732 }, - { 0x267A, 54735 }, - { 0x2718, 54738 }, - { 0x1F27, 54742 }, - { 0x2121, 54744 }, - { 0x2126, 54748 }, - { 0x2122, 54752 }, - { 0x2125, 54756 }, - { 0x2124, 54760 }, - { 0x2129, 54764 }, - { 0x2128, 54768 }, - { 0x2127, 54772 }, - { 0x2123, 54776 }, - { 0x212A, 54780 }, - { 0x2680, 54784 }, - { 0x267F, 54787 }, - { 0x2A0D, 54790 }, - { 0x2729, 54793 }, - { 0x2A3F, 54796 }, - { 0x1E83, 54799 }, - { 0x26E7, 54801 }, - { 0x1CC7, 54803 }, - { 0x26E8, 54806 }, - { 0x1F28, 54808 }, - { 0x204F, 54810 }, - { 0x270F, 54813 }, - { 0x2711, 54818 }, - { 0x1F02, 54824 }, - { 0x1C96, 54830 }, - { 0x2A3A, 54833 }, - { 0x1CBC, 54836 }, - { 0x1F29, 54839 }, - { 0x2A38, 54841 }, - { 0x1C9F, 54845 }, - { 0x8FBC, 54849 }, - { 0x8FE5, 54850 }, - { 0x909A, 54852 }, - { 0x2296, 54854 }, - { 0x001D, 54856 }, - { 0x260F, 54858 }, - { 0x2610, 54863 }, - { 0x2692, 54871 }, - { 0x26A3, 54876 }, - { 0x26DA, 54886 }, - { 0x2822, 54891 }, - { 0x269D, 54896 }, - { 0x269F, 54901 }, - { 0x276C, 54906 }, - { 0x259D, 54911 }, - { 0x269A, 54916 }, - { 0x1EAC, 54919 }, - { 0x1E90, 54921 }, - { 0x8EF5, 54922 }, - { 0x901D, 54924 }, - { 0x8F38, 54925 }, - { 0x226C, 54927 }, - { 0x9468, 54929 }, - { 0x8F54, 54930 }, - { 0x1C92, 54932 }, - { 0x1C87, 54934 }, - { 0x2639, 54936 }, - { 0x8FFD, 54939 }, - { 0x905D, 54942 }, - { 0x9071, 54944 }, - { 0x2392, 54946 }, - { 0x22C4, 54948 }, - { 0x8F67, 54949 }, - { 0x1CD5, 54952 }, - { 0x947D, 54955 }, - { 0x92A4, 54957 }, - { 0x7C91, 54959 }, - { 0x7C92, 54963 }, - { 0x9138, 54967 }, - { 0x9173, 54969 }, - { 0x95E6, 54970 }, - { 0x1F00, 54971 }, - { 0x2A06, 54972 }, - { 0x1E73, 54974 }, - { 0x1D1C, 54976 }, - { 0x8F12, 54979 }, - { 0x7E49, 54981 }, - { 0x94F2, 54982 }, - { 0x2276, 54983 }, - { 0x1D29, 54984 }, - { 0x95EB, 54987 }, - { 0x2612, 54989 }, - { 0x9512, 54991 }, - { 0x8F7F, 54992 }, - { 0x4211, 54993 }, - { 0x4216, 54996 }, - { 0x4208, 54999 }, - { 0x420B, 55002 }, - { 0x420A, 55005 }, - { 0x420F, 55008 }, - { 0x420E, 55011 }, - { 0x4222, 55014 }, - { 0x4217, 55018 }, - { 0x421E, 55021 }, - { 0x4220, 55024 }, - { 0x421F, 55027 }, - { 0x4212, 55030 }, - { 0x4213, 55033 }, - { 0x4214, 55036 }, - { 0x4221, 55039 }, - { 0x421A, 55042 }, - { 0x421B, 55045 }, - { 0x421C, 55048 }, - { 0x421D, 55051 }, - { 0x420C, 55054 }, - { 0x4215, 55057 }, - { 0x4219, 55060 }, - { 0x4210, 55063 }, - { 0x4209, 55066 }, - { 0x4218, 55069 }, - { 0x420D, 55072 }, - { 0x8EFA, 55075 }, - { 0x8F6B, 55076 }, - { 0x6F7A, 55077 }, - { 0x6F7C, 55081 }, - { 0x6F7E, 55085 }, - { 0x6F83, 55089 }, - { 0x6F7F, 55093 }, - { 0x6F82, 55097 }, - { 0x6F81, 55101 }, - { 0x6F86, 55105 }, - { 0x6F7D, 55109 }, - { 0x6F85, 55113 }, - { 0x6F84, 55117 }, - { 0x6F80, 55121 }, - { 0x6F70, 55125 }, - { 0x6F6C, 55130 }, - { 0x6F73, 55135 }, - { 0x6F6E, 55140 }, - { 0x6F6B, 55145 }, - { 0x6F72, 55150 }, - { 0x6F75, 55155 }, - { 0x6F71, 55160 }, - { 0x6F6D, 55165 }, - { 0x6F74, 55170 }, - { 0x6F6F, 55175 }, - { 0x6F76, 55180 }, - { 0x6F4D, 55185 }, - { 0x6F64, 55189 }, - { 0x6F53, 55193 }, - { 0x6F5F, 55197 }, - { 0x6F50, 55201 }, - { 0x6F57, 55205 }, - { 0x6F55, 55209 }, - { 0x6F4E, 55213 }, - { 0x6F69, 55217 }, - { 0x6F66, 55221 }, - { 0x6F61, 55225 }, - { 0x6F62, 55229 }, - { 0x6F68, 55233 }, - { 0x6F6A, 55237 }, - { 0x6F5D, 55241 }, - { 0x6F5C, 55245 }, - { 0x6F67, 55249 }, - { 0x6F65, 55253 }, - { 0x6F54, 55257 }, - { 0x6F5A, 55261 }, - { 0x6F60, 55265 }, - { 0x6F51, 55269 }, - { 0x6F56, 55273 }, - { 0x6F4F, 55277 }, - { 0x6F52, 55281 }, - { 0x6F63, 55285 }, - { 0x6F5E, 55289 }, - { 0x6F58, 55293 }, - { 0x6F5B, 55297 }, - { 0x6F59, 55301 }, - { 0x6F79, 55305 }, - { 0x6F7B, 55311 }, - { 0x6F78, 55317 }, - { 0x6F77, 55323 }, - { 0x90DB, 55329 }, - { 0x22BE, 55330 }, - { 0x2259, 55333 }, - { 0x928F, 55336 }, - { 0x2BDC, 55339 }, - { 0x2D08, 55344 }, - { 0x2CF3, 55346 }, - { 0x2CF8, 55349 }, - { 0x2D07, 55352 }, - { 0x2CFB, 55355 }, - { 0x2D00, 55358 }, - { 0x2CF4, 55361 }, - { 0x2CF7, 55364 }, - { 0x2D05, 55367 }, - { 0x2CFE, 55370 }, - { 0x2CFC, 55373 }, - { 0x2D02, 55376 }, - { 0x2D03, 55379 }, - { 0x2CF5, 55382 }, - { 0x2CFA, 55385 }, - { 0x2D06, 55388 }, - { 0x2CFF, 55391 }, - { 0x2D04, 55394 }, - { 0x2CFD, 55397 }, - { 0x2D01, 55400 }, - { 0x2CF6, 55403 }, - { 0x2CF9, 55406 }, - { 0x2CE9, 55409 }, - { 0x2D2D, 55412 }, - { 0x2D30, 55415 }, - { 0x2D31, 55418 }, - { 0x2CEC, 55421 }, - { 0x2CF2, 55424 }, - { 0x2CEB, 55427 }, - { 0x2CE5, 55430 }, - { 0x2CD8, 55433 }, - { 0x2CE6, 55436 }, - { 0x2CDD, 55439 }, - { 0x2D2B, 55442 }, - { 0x2D2F, 55445 }, - { 0x2D32, 55448 }, - { 0x2CD5, 55451 }, - { 0x2CDB, 55454 }, - { 0x2D2C, 55457 }, - { 0x2D2E, 55460 }, - { 0x2CEE, 55463 }, - { 0x2CEF, 55466 }, - { 0x2D23, 55469 }, - { 0x2CF1, 55472 }, - { 0x2CF0, 55475 }, - { 0x2D25, 55478 }, - { 0x2CEA, 55481 }, - { 0x2D13, 55484 }, - { 0x2D0B, 55487 }, - { 0x2CE8, 55490 }, - { 0x2CE1, 55493 }, - { 0x2D22, 55496 }, - { 0x2D1F, 55499 }, - { 0x2D21, 55502 }, - { 0x2CED, 55505 }, - { 0x2D29, 55508 }, - { 0x2D24, 55511 }, - { 0x2D09, 55514 }, - { 0x2CE7, 55517 }, - { 0x2CD7, 55520 }, - { 0x2D12, 55523 }, - { 0x2CD9, 55526 }, - { 0x2CDA, 55529 }, - { 0x2D1A, 55532 }, - { 0x2CE4, 55535 }, - { 0x2CDF, 55538 }, - { 0x2CE0, 55541 }, - { 0x2D1E, 55544 }, - { 0x2D20, 55547 }, - { 0x2CD6, 55550 }, - { 0x2CDC, 55553 }, - { 0x2D2A, 55556 }, - { 0x2D0A, 55559 }, - { 0x2D16, 55562 }, - { 0x2D17, 55565 }, - { 0x2CDE, 55568 }, - { 0x2D0E, 55571 }, - { 0x2D15, 55574 }, - { 0x2D1C, 55577 }, - { 0x2D14, 55580 }, - { 0x2D0C, 55583 }, - { 0x2D1B, 55586 }, - { 0x2D10, 55589 }, - { 0x2CE3, 55592 }, - { 0x2CE2, 55595 }, - { 0x2D26, 55598 }, - { 0x2D28, 55601 }, - { 0x2D0F, 55604 }, - { 0x2D27, 55607 }, - { 0x2D18, 55610 }, - { 0x2D19, 55613 }, - { 0x2D0D, 55616 }, - { 0x2D11, 55619 }, - { 0x2D1D, 55622 }, - { 0x2BDB, 55625 }, - { 0x0EB1, 55630 }, - { 0x0EB4, 55633 }, - { 0x0EBA, 55636 }, - { 0x0EB3, 55639 }, - { 0x0EAE, 55642 }, - { 0x0EAA, 55645 }, - { 0x0EAF, 55648 }, - { 0x0EAD, 55651 }, - { 0x0F07, 55654 }, - { 0x0EA8, 55657 }, - { 0x0EAB, 55660 }, - { 0x0EB6, 55663 }, - { 0x0EB7, 55666 }, - { 0x0EE8, 55669 }, - { 0x0EB9, 55672 }, - { 0x0EB8, 55675 }, - { 0x0EF4, 55678 }, - { 0x0EB2, 55681 }, - { 0x38E9, 55684 }, - { 0x0EED, 55687 }, - { 0x38DF, 55690 }, - { 0x0F03, 55693 }, - { 0x0EC9, 55696 }, - { 0x38DA, 55699 }, - { 0x0EDE, 55702 }, - { 0x0EE3, 55705 }, - { 0x0EDD, 55708 }, - { 0x0ED9, 55711 }, - { 0x0ED6, 55714 }, - { 0x0EDA, 55717 }, - { 0x0ED8, 55720 }, - { 0x0EB5, 55723 }, - { 0x0F00, 55726 }, - { 0x0EEF, 55729 }, - { 0x0EBC, 55732 }, - { 0x0EB0, 55735 }, - { 0x0EC1, 55738 }, - { 0x0EF5, 55741 }, - { 0x0EF0, 55744 }, - { 0x38E5, 55747 }, - { 0x0EEB, 55750 }, - { 0x0EEC, 55753 }, - { 0x38E4, 55756 }, - { 0x0EC4, 55759 }, - { 0x0F04, 55762 }, - { 0x0F05, 55765 }, - { 0x0EBE, 55768 }, - { 0x0ECF, 55771 }, - { 0x38E2, 55774 }, - { 0x0EC7, 55777 }, - { 0x38DB, 55780 }, - { 0x0EC2, 55783 }, - { 0x38D6, 55786 }, - { 0x0EC0, 55789 }, - { 0x38D7, 55792 }, - { 0x0ED5, 55795 }, - { 0x0ED7, 55798 }, - { 0x0EA9, 55801 }, - { 0x0EAC, 55804 }, - { 0x38D0, 55807 }, - { 0x0F01, 55810 }, - { 0x0EE4, 55813 }, - { 0x0EE9, 55816 }, - { 0x0EEA, 55819 }, - { 0x38DD, 55822 }, - { 0x38DE, 55825 }, - { 0x0EBB, 55828 }, - { 0x0EBD, 55831 }, - { 0x0EC6, 55834 }, - { 0x0EC8, 55837 }, - { 0x38D2, 55840 }, - { 0x38D4, 55843 }, - { 0x0EDF, 55846 }, - { 0x0EE0, 55849 }, - { 0x0EE2, 55852 }, - { 0x0EE1, 55855 }, - { 0x38E7, 55858 }, - { 0x38D1, 55861 }, - { 0x38CE, 55864 }, - { 0x38CF, 55867 }, - { 0x0F06, 55870 }, - { 0x0EFB, 55873 }, - { 0x0EF6, 55876 }, - { 0x0EF1, 55879 }, - { 0x0EEE, 55882 }, - { 0x0EF3, 55885 }, - { 0x0EF2, 55888 }, - { 0x0EC5, 55891 }, - { 0x0ED3, 55894 }, - { 0x0EC3, 55897 }, - { 0x0F02, 55900 }, - { 0x38E8, 55903 }, - { 0x0EFE, 55906 }, - { 0x0ED0, 55909 }, - { 0x38E1, 55912 }, - { 0x0ED2, 55915 }, - { 0x0ED1, 55918 }, - { 0x38DC, 55921 }, - { 0x0EBF, 55924 }, - { 0x0EDC, 55927 }, - { 0x0EE6, 55930 }, - { 0x0EFA, 55933 }, - { 0x0EFC, 55936 }, - { 0x0EFF, 55939 }, - { 0x0ECD, 55942 }, - { 0x38E3, 55945 }, - { 0x0EF8, 55948 }, - { 0x0ECE, 55951 }, - { 0x0ECC, 55954 }, - { 0x38D8, 55957 }, - { 0x38E6, 55960 }, - { 0x38EA, 55963 }, - { 0x0EE5, 55966 }, - { 0x0ECA, 55969 }, - { 0x0ECB, 55972 }, - { 0x38D3, 55975 }, - { 0x38D5, 55978 }, - { 0x0EDB, 55981 }, - { 0x0EFD, 55984 }, - { 0x0EF7, 55987 }, - { 0x0ED4, 55990 }, - { 0x38E0, 55993 }, - { 0x38D9, 55996 }, - { 0x0EE7, 55999 }, - { 0x0EF9, 56002 }, - { 0x0F62, 56005 }, - { 0x0F65, 56008 }, - { 0x0F6A, 56011 }, - { 0x0F64, 56014 }, - { 0x0F5F, 56017 }, - { 0x0F53, 56020 }, - { 0x0F60, 56023 }, - { 0x0F57, 56026 }, - { 0x0F50, 56029 }, - { 0x0F56, 56032 }, - { 0x0F66, 56035 }, - { 0x0F67, 56038 }, - { 0x0F93, 56041 }, - { 0x0F69, 56044 }, - { 0x0F68, 56047 }, - { 0x0F98, 56050 }, - { 0x0F63, 56053 }, - { 0x0F85, 56056 }, - { 0x0F6F, 56059 }, - { 0x0F61, 56062 }, - { 0x0F5B, 56065 }, - { 0x3B56, 56068 }, - { 0x3B59, 56071 }, - { 0x3B51, 56074 }, - { 0x0F92, 56077 }, - { 0x0F91, 56080 }, - { 0x3B60, 56083 }, - { 0x0F96, 56086 }, - { 0x3B47, 56089 }, - { 0x0FA7, 56092 }, - { 0x3B4D, 56095 }, - { 0x0F78, 56098 }, - { 0x3B5E, 56101 }, - { 0x0F9F, 56104 }, - { 0x0F9D, 56107 }, - { 0x0FA0, 56110 }, - { 0x0F9E, 56113 }, - { 0x0F52, 56116 }, - { 0x3B49, 56119 }, - { 0x0F89, 56122 }, - { 0x3B45, 56125 }, - { 0x0F84, 56128 }, - { 0x0F83, 56131 }, - { 0x0F54, 56134 }, - { 0x0F55, 56137 }, - { 0x3B32, 56140 }, - { 0x3B4F, 56143 }, - { 0x0F8D, 56146 }, - { 0x3B4C, 56149 }, - { 0x0F8B, 56152 }, - { 0x0F5E, 56155 }, - { 0x0F59, 56158 }, - { 0x0F75, 56161 }, - { 0x0F5A, 56164 }, - { 0x0F8F, 56167 }, - { 0x0F90, 56170 }, - { 0x0F51, 56173 }, - { 0x3B34, 56176 }, - { 0x3B37, 56179 }, - { 0x0FA1, 56182 }, - { 0x0F94, 56185 }, - { 0x0FA6, 56188 }, - { 0x0FA2, 56191 }, - { 0x0FA3, 56194 }, - { 0x0F6B, 56197 }, - { 0x0F82, 56200 }, - { 0x0F6D, 56203 }, - { 0x0F6E, 56206 }, - { 0x3B61, 56209 }, - { 0x3B4A, 56212 }, - { 0x0F58, 56215 }, - { 0x0F76, 56218 }, - { 0x3B57, 56221 }, - { 0x3B55, 56224 }, - { 0x3B58, 56227 }, - { 0x3B39, 56230 }, - { 0x3B36, 56233 }, - { 0x0F73, 56236 }, - { 0x0F97, 56239 }, - { 0x0F8A, 56242 }, - { 0x0F8E, 56245 }, - { 0x3B44, 56248 }, - { 0x0F88, 56251 }, - { 0x0F87, 56254 }, - { 0x3B33, 56257 }, - { 0x0F70, 56260 }, - { 0x0F71, 56263 }, - { 0x3B5A, 56266 }, - { 0x0F9B, 56269 }, - { 0x3B50, 56272 }, - { 0x0F8C, 56275 }, - { 0x0F80, 56278 }, - { 0x0F7F, 56281 }, - { 0x0F5D, 56284 }, - { 0x0F5C, 56287 }, - { 0x0F96, 56290 }, - { 0x0F72, 56293 }, - { 0x0F99, 56296 }, - { 0x0FA4, 56299 }, - { 0x0FA5, 56302 }, - { 0x3B42, 56305 }, - { 0x3B3A, 56308 }, - { 0x3B3B, 56311 }, - { 0x3B5D, 56314 }, - { 0x3B5C, 56317 }, - { 0x0F9C, 56320 }, - { 0x0F86, 56323 }, - { 0x3B62, 56326 }, - { 0x0F7E, 56329 }, - { 0x0F94, 56332 }, - { 0x3B5F, 56335 }, - { 0x3B48, 56338 }, - { 0x3B46, 56341 }, - { 0x0F7A, 56344 }, - { 0x0F7B, 56347 }, - { 0x3B53, 56350 }, - { 0x3B54, 56353 }, - { 0x0F97, 56356 }, - { 0x0F9A, 56359 }, - { 0x0F95, 56362 }, - { 0x3B4E, 56365 }, - { 0x0F74, 56368 }, - { 0x3B3F, 56371 }, - { 0x0F7C, 56374 }, - { 0x3B3C, 56377 }, - { 0x0F81, 56380 }, - { 0x3B35, 56383 }, - { 0x0F6C, 56386 }, - { 0x3B3D, 56389 }, - { 0x0F79, 56392 }, - { 0x3B40, 56395 }, - { 0x0F77, 56398 }, - { 0x3B52, 56401 }, - { 0x3B3E, 56404 }, - { 0x3B38, 56407 }, - { 0x3B4B, 56410 }, - { 0x0F7D, 56413 }, - { 0x3B41, 56416 }, - { 0x0F95, 56419 }, - { 0x3B5B, 56422 }, - { 0x3B43, 56425 }, - { 0x0F09, 56428 }, - { 0x0F0E, 56431 }, - { 0x0F1D, 56434 }, - { 0x0F11, 56437 }, - { 0x0F16, 56440 }, - { 0x0F0A, 56443 }, - { 0x0F0D, 56446 }, - { 0x0F1B, 56449 }, - { 0x0F14, 56452 }, - { 0x0F12, 56455 }, - { 0x0F18, 56458 }, - { 0x0F19, 56461 }, - { 0x0F0B, 56464 }, - { 0x0F10, 56467 }, - { 0x0F1C, 56470 }, - { 0x0F15, 56473 }, - { 0x0F1A, 56476 }, - { 0x0F1E, 56479 }, - { 0x0F1F, 56482 }, - { 0x0F40, 56485 }, - { 0x3B2F, 56488 }, - { 0x0F42, 56491 }, - { 0x0F43, 56494 }, - { 0x0F28, 56497 }, - { 0x0F2A, 56500 }, - { 0x0F2B, 56503 }, - { 0x0F31, 56506 }, - { 0x0F35, 56509 }, - { 0x0F13, 56512 }, - { 0x0F17, 56515 }, - { 0x0F0C, 56518 }, - { 0x0F0F, 56521 }, - { 0x0F4B, 56524 }, - { 0x0F22, 56527 }, - { 0x0F23, 56530 }, - { 0x3B24, 56533 }, - { 0x3B26, 56536 }, - { 0x3B27, 56539 }, - { 0x0F3D, 56542 }, - { 0x0F44, 56545 }, - { 0x0F41, 56548 }, - { 0x3B2B, 56551 }, - { 0x3B2D, 56554 }, - { 0x3B2E, 56557 }, - { 0x0F27, 56560 }, - { 0x0F4E, 56563 }, - { 0x0F29, 56566 }, - { 0x0F32, 56569 }, - { 0x0F34, 56572 }, - { 0x0F20, 56575 }, - { 0x0F4C, 56578 }, - { 0x0F3F, 56581 }, - { 0x3B1D, 56584 }, - { 0x0F30, 56587 }, - { 0x0F2F, 56590 }, - { 0x0F36, 56593 }, - { 0x0F38, 56596 }, - { 0x0F3C, 56599 }, - { 0x3B23, 56602 }, - { 0x0F3B, 56605 }, - { 0x0F46, 56608 }, - { 0x0F24, 56611 }, - { 0x3B25, 56614 }, - { 0x0F3E, 56617 }, - { 0x3B2C, 56620 }, - { 0x3B29, 56623 }, - { 0x3B2A, 56626 }, - { 0x3B1C, 56629 }, - { 0x0F4F, 56632 }, - { 0x3B1B, 56635 }, - { 0x3B21, 56638 }, - { 0x3B20, 56641 }, - { 0x0F21, 56644 }, - { 0x0F25, 56647 }, - { 0x0F26, 56650 }, - { 0x3B1E, 56653 }, - { 0x3B1F, 56656 }, - { 0x0F2C, 56659 }, - { 0x3B22, 56662 }, - { 0x0F37, 56665 }, - { 0x0F3A, 56668 }, - { 0x0F08, 56671 }, - { 0x3B28, 56674 }, - { 0x0F4D, 56677 }, - { 0x0F2D, 56680 }, - { 0x0F2E, 56683 }, - { 0x0F39, 56686 }, - { 0x3B30, 56689 }, - { 0x3B31, 56692 }, - { 0x0F49, 56695 }, - { 0x0F48, 56698 }, - { 0x0F45, 56701 }, - { 0x0F33, 56704 }, - { 0x0F47, 56707 }, - { 0x0F4A, 56710 }, - { 0x4980, 56713 }, - { 0x497F, 56718 }, - { 0x4983, 56722 }, - { 0x4984, 56726 }, - { 0x4982, 56730 }, - { 0x4981, 56734 }, - { 0x4986, 56738 }, - { 0x498B, 56742 }, - { 0x4987, 56746 }, - { 0x498A, 56750 }, - { 0x4989, 56754 }, - { 0x498E, 56758 }, - { 0x4985, 56762 }, - { 0x498D, 56766 }, - { 0x498C, 56770 }, - { 0x4988, 56774 }, - { 0x497A, 56778 }, - { 0x497D, 56782 }, - { 0x497B, 56786 }, - { 0x497E, 56790 }, - { 0x497C, 56794 }, - { 0x495D, 56798 }, - { 0x495E, 56802 }, - { 0x4963, 56806 }, - { 0x4967, 56810 }, - { 0x4966, 56814 }, - { 0x496F, 56818 }, - { 0x4964, 56822 }, - { 0x4962, 56826 }, - { 0x496E, 56830 }, - { 0x4970, 56834 }, - { 0x4971, 56838 }, - { 0x4972, 56842 }, - { 0x495F, 56846 }, - { 0x4969, 56850 }, - { 0x496C, 56854 }, - { 0x4960, 56858 }, - { 0x4979, 56862 }, - { 0x4973, 56866 }, - { 0x4975, 56870 }, - { 0x496B, 56874 }, - { 0x4968, 56878 }, - { 0x4965, 56882 }, - { 0x4977, 56886 }, - { 0x4978, 56890 }, - { 0x496A, 56894 }, - { 0x496D, 56898 }, - { 0x4961, 56902 }, - { 0x4974, 56906 }, - { 0x4976, 56911 }, - { 0x4696, 56916 }, - { 0x46A2, 56919 }, - { 0x46A1, 56922 }, - { 0x469E, 56925 }, - { 0x469F, 56928 }, - { 0x46A6, 56931 }, - { 0x4697, 56934 }, - { 0x4693, 56937 }, - { 0x4699, 56940 }, - { 0x469C, 56943 }, - { 0x46A4, 56946 }, - { 0x46A5, 56949 }, - { 0x469A, 56952 }, - { 0x469B, 56955 }, - { 0x4698, 56958 }, - { 0x4692, 56961 }, - { 0x4694, 56964 }, - { 0x46A3, 56967 }, - { 0x469D, 56970 }, - { 0x46A0, 56973 }, - { 0x4695, 56976 }, - { 0x46A7, 56979 }, - { 0x46AB, 56982 }, - { 0x46A9, 56986 }, - { 0x46A8, 56989 }, - { 0x46AA, 56992 }, - { 0x9320, 56995 }, - { 0x0593, 56996 }, - { 0x0575, 56999 }, - { 0x0574, 57003 }, - { 0x055F, 57007 }, - { 0x0572, 57011 }, - { 0x056F, 57015 }, - { 0x0571, 57018 }, - { 0x0562, 57022 }, - { 0x0561, 57026 }, - { 0x0563, 57030 }, - { 0x0564, 57034 }, - { 0x0569, 57037 }, - { 0x056A, 57040 }, - { 0x056D, 57046 }, - { 0x0567, 57049 }, - { 0x0566, 57052 }, - { 0x0560, 57055 }, - { 0x0565, 57058 }, - { 0x056C, 57061 }, - { 0x0568, 57066 }, - { 0x0577, 57069 }, - { 0x056B, 57073 }, - { 0x3B75, 57076 }, - { 0x055B, 57080 }, - { 0x055D, 57083 }, - { 0x055C, 57086 }, - { 0x0552, 57089 }, - { 0x0557, 57093 }, - { 0x0553, 57096 }, - { 0x0551, 57099 }, - { 0x0558, 57102 }, - { 0x0547, 57105 }, - { 0x0542, 57108 }, - { 0x054B, 57111 }, - { 0x055A, 57114 }, - { 0x054A, 57119 }, - { 0x0545, 57122 }, - { 0x0544, 57126 }, - { 0x0548, 57130 }, - { 0x055E, 57133 }, - { 0x054C, 57136 }, - { 0x054D, 57139 }, - { 0x0555, 57143 }, - { 0x0556, 57146 }, - { 0x0549, 57150 }, - { 0x054F, 57153 }, - { 0x0546, 57157 }, - { 0x0541, 57160 }, - { 0x0550, 57163 }, - { 0x0559, 57167 }, - { 0x0554, 57171 }, - { 0x054E, 57174 }, - { 0x0543, 57177 }, - { 0x057C, 57180 }, - { 0x3B8B, 57183 }, - { 0x058C, 57188 }, - { 0x3BA0, 57191 }, - { 0x3B97, 57196 }, - { 0x0579, 57201 }, - { 0x3B9E, 57204 }, - { 0x3B88, 57209 }, - { 0x057F, 57214 }, - { 0x0583, 57217 }, - { 0x3B9F, 57220 }, - { 0x3B91, 57225 }, - { 0x0586, 57230 }, - { 0x3B93, 57233 }, - { 0x0588, 57238 }, - { 0x3B94, 57241 }, - { 0x058F, 57246 }, - { 0x3B99, 57249 }, - { 0x0592, 57254 }, - { 0x3B9C, 57257 }, - { 0x0580, 57262 }, - { 0x3B8E, 57265 }, - { 0x057D, 57270 }, - { 0x3B9D, 57273 }, - { 0x3B8C, 57278 }, - { 0x0581, 57283 }, - { 0x3B74, 57286 }, - { 0x3B8F, 57291 }, - { 0x0578, 57296 }, - { 0x3B87, 57299 }, - { 0x3B85, 57304 }, - { 0x3B86, 57309 }, - { 0x058A, 57314 }, - { 0x0590, 57317 }, - { 0x3B9A, 57320 }, - { 0x0591, 57325 }, - { 0x3B82, 57328 }, - { 0x3B81, 57334 }, - { 0x3B9B, 57340 }, - { 0x3B84, 57345 }, - { 0x3B83, 57353 }, - { 0x3B7A, 57361 }, - { 0x3B7B, 57365 }, - { 0x3B7F, 57369 }, - { 0x3B78, 57373 }, - { 0x3B7E, 57377 }, - { 0x3B79, 57381 }, - { 0x3B7D, 57385 }, - { 0x3B7C, 57390 }, - { 0x057B, 57394 }, - { 0x3B8A, 57397 }, - { 0x058B, 57402 }, - { 0x3B96, 57406 }, - { 0x0582, 57412 }, - { 0x3B90, 57416 }, - { 0x0585, 57422 }, - { 0x0587, 57426 }, - { 0x058D, 57430 }, - { 0x057A, 57434 }, - { 0x3B89, 57437 }, - { 0x0584, 57442 }, - { 0x3B92, 57445 }, - { 0x058E, 57450 }, - { 0x3B98, 57453 }, - { 0x057E, 57458 }, - { 0x3B8D, 57461 }, - { 0x0589, 57466 }, - { 0x3B95, 57469 }, - { 0x3B77, 57474 }, - { 0x3B80, 57478 }, - { 0x3BA1, 57483 }, - { 0x0595, 57487 }, - { 0x3B76, 57492 }, - { 0x0594, 57498 }, - { 0x0596, 57503 }, - { 0x0576, 57508 }, - { 0x0573, 57512 }, - { 0x056E, 57516 }, - { 0x0570, 57519 }, - { 0x0597, 57522 }, - { 0x0598, 57525 }, - { 0x22FD, 57528 }, - { 0x94AC, 57532 }, - { 0x921B, 57534 }, - { 0x921C, 57538 }, - { 0x91E2, 57545 }, - { 0x2803, 57547 }, - { 0x1C90, 57548 }, - { 0x2A10, 57549 }, - { 0x1CC3, 57552 }, - { 0x1D32, 57554 }, - { 0x9517, 57557 }, - { 0x4B75, 57560 }, - { 0x4B74, 57563 }, - { 0x4B3D, 57566 }, - { 0x4B3C, 57569 }, - { 0x4B3B, 57572 }, - { 0x4B7B, 57575 }, - { 0x4B70, 57577 }, - { 0x4B6C, 57581 }, - { 0x4B72, 57585 }, - { 0x4B6E, 57589 }, - { 0x4B6B, 57593 }, - { 0x4B71, 57597 }, - { 0x4B73, 57601 }, - { 0x4B6D, 57605 }, - { 0x4B6F, 57609 }, - { 0x4B7D, 57613 }, - { 0x4B7C, 57618 }, - { 0x4B7A, 57621 }, - { 0x4B3E, 57625 }, - { 0x4B44, 57628 }, - { 0x4B40, 57631 }, - { 0x4B46, 57634 }, - { 0x4B42, 57637 }, - { 0x4B3F, 57640 }, - { 0x4B45, 57643 }, - { 0x4B47, 57646 }, - { 0x4B60, 57649 }, - { 0x4B4D, 57652 }, - { 0x4B5B, 57655 }, - { 0x4B4A, 57658 }, - { 0x4B6A, 57661 }, - { 0x4B41, 57664 }, - { 0x4B4F, 57667 }, - { 0x4B48, 57670 }, - { 0x4B65, 57673 }, - { 0x4B62, 57676 }, - { 0x4B5D, 57679 }, - { 0x4B5E, 57682 }, - { 0x4B64, 57685 }, - { 0x4B69, 57688 }, - { 0x4B59, 57691 }, - { 0x4B43, 57694 }, - { 0x4B66, 57697 }, - { 0x4B63, 57700 }, - { 0x4B61, 57703 }, - { 0x4B4E, 57706 }, - { 0x4B54, 57709 }, - { 0x4B5C, 57712 }, - { 0x4B4B, 57715 }, - { 0x4B50, 57718 }, - { 0x4B49, 57721 }, - { 0x4B4C, 57724 }, - { 0x4B58, 57727 }, - { 0x4B51, 57730 }, - { 0x4B5F, 57733 }, - { 0x4B57, 57736 }, - { 0x4B67, 57739 }, - { 0x4B68, 57742 }, - { 0x4B5A, 57745 }, - { 0x4B52, 57748 }, - { 0x4B56, 57751 }, - { 0x4B53, 57754 }, - { 0x4B55, 57757 }, - { 0x4B78, 57760 }, - { 0x4B7E, 57763 }, - { 0x4B79, 57767 }, - { 0x4B77, 57770 }, - { 0x4B76, 57773 }, - { 0x2B16, 57776 }, - { 0x2AE8, 57780 }, - { 0x2AE9, 57783 }, - { 0x2B44, 57787 }, - { 0x2B0B, 57790 }, - { 0x2AEB, 57793 }, - { 0x2AFF, 57796 }, - { 0x2B23, 57799 }, - { 0x2B24, 57802 }, - { 0x2AC9, 57805 }, - { 0x2AF9, 57808 }, - { 0x2B46, 57811 }, - { 0x2B7E, 57814 }, - { 0x2B33, 57817 }, - { 0x2B7D, 57820 }, - { 0x2B18, 57823 }, - { 0x2AD5, 57826 }, - { 0x2B3F, 57829 }, - { 0x2ACE, 57832 }, - { 0x2ACF, 57835 }, - { 0x2B40, 57838 }, - { 0x2B0D, 57841 }, - { 0x2B43, 57844 }, - { 0x2AC7, 57847 }, - { 0x2B5E, 57850 }, - { 0x2B08, 57853 }, - { 0x2B96, 57856 }, - { 0x2B61, 57859 }, - { 0x2B62, 57862 }, - { 0x2B0F, 57865 }, - { 0x2B59, 57868 }, - { 0x2B0E, 57871 }, - { 0x2ADE, 57874 }, - { 0x2ACD, 57877 }, - { 0x2AFD, 57880 }, - { 0x2B2B, 57884 }, - { 0x2B5D, 57887 }, - { 0x2B8A, 57890 }, - { 0x2B74, 57893 }, - { 0x2B4F, 57896 }, - { 0x2B64, 57899 }, - { 0x2B2D, 57902 }, - { 0x2B82, 57907 }, - { 0x2B65, 57910 }, - { 0x2B3A, 57913 }, - { 0x2B69, 57916 }, - { 0x2B19, 57919 }, - { 0x2B1D, 57922 }, - { 0x2B8C, 57925 }, - { 0x2B32, 57928 }, - { 0x2B05, 57931 }, - { 0x2AD3, 57934 }, - { 0x2B95, 57938 }, - { 0x2B98, 57941 }, - { 0x2B76, 57944 }, - { 0x2B22, 57947 }, - { 0x2B1C, 57950 }, - { 0x2B89, 57953 }, - { 0x2B63, 57956 }, - { 0x2B93, 57959 }, - { 0x2B6F, 57962 }, - { 0x2B6D, 57965 }, - { 0x2B84, 57968 }, - { 0x2B20, 57971 }, - { 0x2B06, 57976 }, - { 0x2B7F, 57979 }, - { 0x2B8E, 57982 }, - { 0x2ACC, 57985 }, - { 0x2B5A, 57988 }, - { 0x2AEF, 57991 }, - { 0x2B26, 57994 }, - { 0x2B12, 57997 }, - { 0x2AF1, 58000 }, - { 0x2B7B, 58003 }, - { 0x2B79, 58006 }, - { 0x2AD0, 58009 }, - { 0x2B2A, 58012 }, - { 0x2AC8, 58015 }, - { 0x2B6E, 58018 }, - { 0x2AFC, 58021 }, - { 0x2B48, 58025 }, - { 0x2B10, 58028 }, - { 0x2B97, 58031 }, - { 0x2AD7, 58034 }, - { 0x2B45, 58038 }, - { 0x2B73, 58041 }, - { 0x2B3D, 58044 }, - { 0x2AEE, 58047 }, - { 0x2B8B, 58050 }, - { 0x2AE0, 58053 }, - { 0x2B4A, 58056 }, - { 0x2B3E, 58059 }, - { 0x2B31, 58062 }, - { 0x2B02, 58065 }, - { 0x2B13, 58068 }, - { 0x2B83, 58071 }, - { 0x2B28, 58074 }, - { 0x2B11, 58077 }, - { 0x2B68, 58080 }, - { 0x2B56, 58083 }, - { 0x2B58, 58087 }, - { 0x2B7C, 58090 }, - { 0x2B6A, 58093 }, - { 0x2AF6, 58096 }, - { 0x2ADA, 58099 }, - { 0x2AE3, 58102 }, - { 0x2B35, 58105 }, - { 0x2B91, 58108 }, - { 0x2B55, 58111 }, - { 0x2B47, 58114 }, - { 0x2AED, 58117 }, - { 0x2AE1, 58120 }, - { 0x2B51, 58123 }, - { 0x2AD4, 58126 }, - { 0x2B14, 58129 }, - { 0x2AE6, 58132 }, - { 0x2AD2, 58135 }, - { 0x2AD1, 58138 }, - { 0x2B2C, 58141 }, - { 0x2B85, 58144 }, - { 0x2B9C, 58147 }, - { 0x2B88, 58150 }, - { 0x2B39, 58153 }, - { 0x2B52, 58156 }, - { 0x2B03, 58159 }, - { 0x2B81, 58162 }, - { 0x2AD8, 58165 }, - { 0x2B27, 58168 }, - { 0x2B70, 58171 }, - { 0x2AE4, 58174 }, - { 0x2AD9, 58177 }, - { 0x2ADC, 58180 }, - { 0x2AF5, 58185 }, - { 0x2B41, 58188 }, - { 0x2B60, 58191 }, - { 0x2AFE, 58194 }, - { 0x2B72, 58197 }, - { 0x2AFA, 58202 }, - { 0x2ACA, 58206 }, - { 0x2B71, 58209 }, - { 0x2B21, 58212 }, - { 0x2AF0, 58215 }, - { 0x2B00, 58218 }, - { 0x2B7A, 58221 }, - { 0x2B34, 58224 }, - { 0x2ADB, 58227 }, - { 0x2B3B, 58230 }, - { 0x2B1A, 58233 }, - { 0x2B36, 58236 }, - { 0x2B29, 58239 }, - { 0x2AD6, 58242 }, - { 0x2B53, 58245 }, - { 0x2B99, 58248 }, - { 0x2B38, 58251 }, - { 0x2B1B, 58254 }, - { 0x2B8D, 58257 }, - { 0x2B30, 58260 }, - { 0x2AEC, 58263 }, - { 0x2B75, 58266 }, - { 0x2B4B, 58269 }, - { 0x2B5F, 58272 }, - { 0x2B3C, 58275 }, - { 0x2B66, 58278 }, - { 0x2B07, 58281 }, - { 0x2AF2, 58284 }, - { 0x2B0A, 58287 }, - { 0x2B2F, 58290 }, - { 0x2AFB, 58294 }, - { 0x2B1F, 58298 }, - { 0x2B9A, 58302 }, - { 0x2B1E, 58305 }, - { 0x2ADD, 58308 }, - { 0x2B54, 58312 }, - { 0x2B90, 58315 }, - { 0x2B4C, 58318 }, - { 0x2B4E, 58321 }, - { 0x2B09, 58324 }, - { 0x2ACB, 58327 }, - { 0x2B5B, 58330 }, - { 0x2B37, 58333 }, - { 0x2AF3, 58336 }, - { 0x2B0C, 58339 }, - { 0x2B78, 58342 }, - { 0x2B4D, 58346 }, - { 0x2B94, 58349 }, - { 0x2AF8, 58352 }, - { 0x2B9B, 58355 }, - { 0x2B5C, 58358 }, - { 0x2B15, 58361 }, - { 0x2B8F, 58364 }, - { 0x2B01, 58367 }, - { 0x2B57, 58370 }, - { 0x2B17, 58373 }, - { 0x2AEA, 58376 }, - { 0x2B42, 58379 }, - { 0x2B04, 58382 }, - { 0x2B77, 58385 }, - { 0x2B67, 58388 }, - { 0x2AF7, 58391 }, - { 0x2AE2, 58394 }, - { 0x2AE7, 58397 }, - { 0x2B6C, 58400 }, - { 0x2B87, 58403 }, - { 0x2B80, 58406 }, - { 0x2B49, 58409 }, - { 0x2AF4, 58412 }, - { 0x2B25, 58415 }, - { 0x2B2E, 58418 }, - { 0x2B50, 58421 }, - { 0x2AE5, 58424 }, - { 0x2ADF, 58427 }, - { 0x2B92, 58430 }, - { 0x2B6B, 58433 }, - { 0x2B86, 58436 }, - { 0x1D85, 58440 }, - { 0x90D2, 58442 }, - { 0x95C7, 58444 }, - { 0x7415, 58445 }, - { 0x7718, 58449 }, - { 0x7719, 58453 }, - { 0x771A, 58457 }, - { 0x771B, 58461 }, - { 0x771C, 58465 }, - { 0x771D, 58469 }, - { 0x771E, 58473 }, - { 0x771F, 58477 }, - { 0x7720, 58481 }, - { 0x7721, 58485 }, - { 0x7722, 58489 }, - { 0x7723, 58493 }, - { 0x7724, 58497 }, - { 0x7725, 58501 }, - { 0x7726, 58505 }, - { 0x7727, 58509 }, - { 0x7728, 58513 }, - { 0x7729, 58517 }, - { 0x772A, 58521 }, - { 0x772B, 58525 }, - { 0x772C, 58529 }, - { 0x772D, 58533 }, - { 0x772E, 58537 }, - { 0x772F, 58541 }, - { 0x7730, 58545 }, - { 0x7731, 58549 }, - { 0x7732, 58553 }, - { 0x7733, 58557 }, - { 0x7734, 58561 }, - { 0x7735, 58565 }, - { 0x7736, 58569 }, - { 0x7737, 58573 }, - { 0x7738, 58577 }, - { 0x7739, 58581 }, - { 0x773A, 58585 }, - { 0x773B, 58589 }, - { 0x773C, 58593 }, - { 0x773D, 58597 }, - { 0x773E, 58601 }, - { 0x773F, 58605 }, - { 0x7740, 58609 }, - { 0x7741, 58613 }, - { 0x7742, 58617 }, - { 0x7743, 58621 }, - { 0x7744, 58625 }, - { 0x7745, 58629 }, - { 0x7746, 58633 }, - { 0x7747, 58637 }, - { 0x7748, 58641 }, - { 0x7749, 58645 }, - { 0x774A, 58649 }, - { 0x774B, 58653 }, - { 0x774C, 58657 }, - { 0x774D, 58661 }, - { 0x774E, 58665 }, - { 0x774F, 58669 }, - { 0x7750, 58673 }, - { 0x7751, 58677 }, - { 0x7752, 58681 }, - { 0x7753, 58685 }, - { 0x7754, 58689 }, - { 0x7755, 58693 }, - { 0x7756, 58697 }, - { 0x7757, 58701 }, - { 0x7758, 58705 }, - { 0x7759, 58709 }, - { 0x775A, 58713 }, - { 0x775B, 58717 }, - { 0x775C, 58721 }, - { 0x775D, 58725 }, - { 0x775E, 58729 }, - { 0x775F, 58733 }, - { 0x7760, 58737 }, - { 0x7761, 58741 }, - { 0x7762, 58745 }, - { 0x7763, 58749 }, - { 0x7764, 58753 }, - { 0x7765, 58757 }, - { 0x7766, 58761 }, - { 0x7767, 58765 }, - { 0x7768, 58769 }, - { 0x7769, 58773 }, - { 0x776A, 58777 }, - { 0x776B, 58781 }, - { 0x776C, 58785 }, - { 0x776D, 58789 }, - { 0x776E, 58793 }, - { 0x776F, 58797 }, - { 0x7770, 58801 }, - { 0x7771, 58805 }, - { 0x7772, 58809 }, - { 0x7773, 58813 }, - { 0x7774, 58817 }, - { 0x7775, 58821 }, - { 0x7776, 58825 }, - { 0x7777, 58829 }, - { 0x7778, 58833 }, - { 0x7779, 58837 }, - { 0x777A, 58841 }, - { 0x777B, 58845 }, - { 0x777C, 58849 }, - { 0x777D, 58853 }, - { 0x777E, 58857 }, - { 0x777F, 58861 }, - { 0x7780, 58865 }, - { 0x7781, 58869 }, - { 0x7782, 58873 }, - { 0x7783, 58877 }, - { 0x7784, 58881 }, - { 0x7785, 58885 }, - { 0x7786, 58889 }, - { 0x7787, 58893 }, - { 0x7788, 58897 }, - { 0x7789, 58901 }, - { 0x778A, 58905 }, - { 0x778B, 58909 }, - { 0x778C, 58913 }, - { 0x778D, 58917 }, - { 0x778E, 58921 }, - { 0x778F, 58925 }, - { 0x7790, 58929 }, - { 0x7791, 58933 }, - { 0x7792, 58937 }, - { 0x7793, 58941 }, - { 0x7794, 58945 }, - { 0x7795, 58949 }, - { 0x7796, 58953 }, - { 0x7797, 58957 }, - { 0x7798, 58961 }, - { 0x7799, 58965 }, - { 0x779A, 58969 }, - { 0x779B, 58973 }, - { 0x779C, 58977 }, - { 0x779D, 58981 }, - { 0x779E, 58985 }, - { 0x779F, 58989 }, - { 0x77A0, 58993 }, - { 0x77A1, 58997 }, - { 0x77A2, 59001 }, - { 0x77A3, 59005 }, - { 0x77A4, 59009 }, - { 0x77A5, 59013 }, - { 0x77A6, 59017 }, - { 0x77A7, 59021 }, - { 0x77A8, 59025 }, - { 0x77A9, 59029 }, - { 0x77AA, 59033 }, - { 0x77AB, 59037 }, - { 0x77AC, 59041 }, - { 0x77AD, 59045 }, - { 0x77AE, 59049 }, - { 0x77AF, 59053 }, - { 0x77B0, 59057 }, - { 0x77B1, 59061 }, - { 0x77B2, 59065 }, - { 0x77B3, 59069 }, - { 0x77B4, 59073 }, - { 0x77B5, 59077 }, - { 0x77B6, 59081 }, - { 0x77B7, 59085 }, - { 0x77B8, 59089 }, - { 0x77B9, 59093 }, - { 0x77BA, 59097 }, - { 0x77BB, 59101 }, - { 0x77BC, 59105 }, - { 0x77BD, 59109 }, - { 0x77BE, 59113 }, - { 0x77BF, 59117 }, - { 0x77C0, 59121 }, - { 0x77C1, 59125 }, - { 0x77C2, 59129 }, - { 0x77C3, 59133 }, - { 0x77C4, 59137 }, - { 0x77C5, 59141 }, - { 0x77C6, 59145 }, - { 0x77C7, 59149 }, - { 0x77C8, 59153 }, - { 0x77C9, 59157 }, - { 0x77CA, 59161 }, - { 0x77CB, 59165 }, - { 0x77CC, 59169 }, - { 0x77CD, 59173 }, - { 0x77CE, 59177 }, - { 0x77CF, 59181 }, - { 0x77D0, 59185 }, - { 0x77D1, 59189 }, - { 0x77D2, 59193 }, - { 0x77D3, 59197 }, - { 0x77D4, 59201 }, - { 0x77D5, 59205 }, - { 0x77D6, 59209 }, - { 0x77D7, 59213 }, - { 0x77D8, 59217 }, - { 0x77D9, 59221 }, - { 0x77DA, 59225 }, - { 0x77DB, 59229 }, - { 0x77DC, 59233 }, - { 0x77DD, 59237 }, - { 0x77DE, 59241 }, - { 0x77DF, 59245 }, - { 0x77E0, 59249 }, - { 0x77E1, 59253 }, - { 0x77E2, 59257 }, - { 0x77E3, 59261 }, - { 0x77E4, 59265 }, - { 0x77E5, 59269 }, - { 0x77E6, 59273 }, - { 0x77E7, 59277 }, - { 0x77E8, 59281 }, - { 0x77E9, 59285 }, - { 0x77EA, 59289 }, - { 0x77EB, 59293 }, - { 0x77EC, 59297 }, - { 0x77ED, 59301 }, - { 0x77EE, 59305 }, - { 0x77EF, 59309 }, - { 0x77F0, 59313 }, - { 0x77F1, 59317 }, - { 0x77F2, 59321 }, - { 0x77F3, 59325 }, - { 0x77F4, 59329 }, - { 0x77F5, 59333 }, - { 0x77F6, 59337 }, - { 0x77F7, 59341 }, - { 0x77F8, 59345 }, - { 0x77F9, 59349 }, - { 0x77FA, 59353 }, - { 0x77FB, 59357 }, - { 0x77FC, 59361 }, - { 0x77FD, 59365 }, - { 0x77FE, 59369 }, - { 0x77FF, 59373 }, - { 0x7800, 59377 }, - { 0x7801, 59381 }, - { 0x7802, 59385 }, - { 0x7803, 59389 }, - { 0x7804, 59393 }, - { 0x7805, 59397 }, - { 0x7806, 59401 }, - { 0x7807, 59405 }, - { 0x7808, 59409 }, - { 0x7809, 59413 }, - { 0x780A, 59417 }, - { 0x780B, 59421 }, - { 0x780C, 59425 }, - { 0x780D, 59429 }, - { 0x780E, 59433 }, - { 0x780F, 59437 }, - { 0x7810, 59441 }, - { 0x7811, 59445 }, - { 0x7812, 59449 }, - { 0x7813, 59453 }, - { 0x7814, 59457 }, - { 0x7815, 59461 }, - { 0x7816, 59465 }, - { 0x7817, 59469 }, - { 0x7818, 59473 }, - { 0x7819, 59477 }, - { 0x781A, 59481 }, - { 0x781B, 59485 }, - { 0x781C, 59489 }, - { 0x781D, 59493 }, - { 0x781E, 59497 }, - { 0x781F, 59501 }, - { 0x7820, 59505 }, - { 0x7821, 59509 }, - { 0x7822, 59513 }, - { 0x7823, 59517 }, - { 0x7824, 59521 }, - { 0x7825, 59525 }, - { 0x7826, 59529 }, - { 0x7827, 59533 }, - { 0x7828, 59537 }, - { 0x7829, 59541 }, - { 0x782A, 59545 }, - { 0x782B, 59549 }, - { 0x782C, 59553 }, - { 0x782D, 59557 }, - { 0x782E, 59561 }, - { 0x782F, 59565 }, - { 0x7830, 59569 }, - { 0x7831, 59573 }, - { 0x7832, 59577 }, - { 0x7833, 59581 }, - { 0x7834, 59585 }, - { 0x7835, 59589 }, - { 0x7836, 59593 }, - { 0x7837, 59597 }, - { 0x7838, 59601 }, - { 0x7839, 59605 }, - { 0x783A, 59609 }, - { 0x783B, 59613 }, - { 0x783C, 59617 }, - { 0x783D, 59621 }, - { 0x783E, 59625 }, - { 0x783F, 59629 }, - { 0x7840, 59633 }, - { 0x7841, 59637 }, - { 0x7842, 59641 }, - { 0x7843, 59645 }, - { 0x7844, 59649 }, - { 0x7845, 59653 }, - { 0x7846, 59657 }, - { 0x7847, 59661 }, - { 0x7848, 59665 }, - { 0x7849, 59669 }, - { 0x784A, 59673 }, - { 0x784B, 59677 }, - { 0x784C, 59681 }, - { 0x784D, 59685 }, - { 0x784E, 59689 }, - { 0x784F, 59693 }, - { 0x7850, 59697 }, - { 0x7851, 59701 }, - { 0x7852, 59705 }, - { 0x7853, 59709 }, - { 0x7854, 59713 }, - { 0x7855, 59717 }, - { 0x7856, 59721 }, - { 0x7857, 59725 }, - { 0x7858, 59729 }, - { 0x7859, 59733 }, - { 0x785A, 59737 }, - { 0x785B, 59741 }, - { 0x785C, 59745 }, - { 0x785D, 59749 }, - { 0x785E, 59753 }, - { 0x785F, 59757 }, - { 0x7860, 59761 }, - { 0x7861, 59765 }, - { 0x7862, 59769 }, - { 0x7863, 59773 }, - { 0x7864, 59777 }, - { 0x7865, 59781 }, - { 0x7866, 59785 }, - { 0x7867, 59789 }, - { 0x7868, 59793 }, - { 0x7869, 59797 }, - { 0x786A, 59801 }, - { 0x786B, 59805 }, - { 0x786C, 59809 }, - { 0x786D, 59813 }, - { 0x786E, 59817 }, - { 0x786F, 59821 }, - { 0x7870, 59825 }, - { 0x7871, 59829 }, - { 0x7872, 59833 }, - { 0x7873, 59837 }, - { 0x7874, 59841 }, - { 0x7875, 59845 }, - { 0x7876, 59849 }, - { 0x7877, 59853 }, - { 0x7878, 59857 }, - { 0x7879, 59861 }, - { 0x787A, 59865 }, - { 0x787B, 59869 }, - { 0x787C, 59873 }, - { 0x787D, 59877 }, - { 0x787E, 59881 }, - { 0x787F, 59885 }, - { 0x7880, 59889 }, - { 0x7881, 59893 }, - { 0x7882, 59897 }, - { 0x7883, 59901 }, - { 0x7884, 59905 }, - { 0x7885, 59909 }, - { 0x7886, 59913 }, - { 0x7887, 59917 }, - { 0x7888, 59921 }, - { 0x7889, 59925 }, - { 0x788A, 59929 }, - { 0x788B, 59933 }, - { 0x788C, 59937 }, - { 0x788D, 59941 }, - { 0x788E, 59945 }, - { 0x788F, 59949 }, - { 0x7890, 59953 }, - { 0x7891, 59957 }, - { 0x7892, 59961 }, - { 0x7893, 59965 }, - { 0x7894, 59969 }, - { 0x7895, 59973 }, - { 0x7896, 59977 }, - { 0x7897, 59981 }, - { 0x7898, 59985 }, - { 0x7899, 59989 }, - { 0x789A, 59993 }, - { 0x789B, 59997 }, - { 0x789C, 60001 }, - { 0x789D, 60005 }, - { 0x789E, 60009 }, - { 0x789F, 60013 }, - { 0x78A0, 60017 }, - { 0x78A1, 60021 }, - { 0x78A2, 60025 }, - { 0x78A3, 60029 }, - { 0x78A4, 60033 }, - { 0x78A5, 60037 }, - { 0x78A6, 60041 }, - { 0x78A7, 60045 }, - { 0x78A8, 60049 }, - { 0x78A9, 60053 }, - { 0x78AA, 60057 }, - { 0x78AB, 60061 }, - { 0x78AC, 60065 }, - { 0x78AD, 60069 }, - { 0x78AE, 60073 }, - { 0x78AF, 60077 }, - { 0x78B0, 60081 }, - { 0x78B1, 60085 }, - { 0x78B2, 60089 }, - { 0x78B3, 60093 }, - { 0x78B4, 60097 }, - { 0x78B5, 60101 }, - { 0x78B6, 60105 }, - { 0x78B7, 60109 }, - { 0x78B8, 60113 }, - { 0x78B9, 60117 }, - { 0x78BA, 60121 }, - { 0x78BB, 60125 }, - { 0x78BC, 60129 }, - { 0x78BD, 60133 }, - { 0x78BE, 60137 }, - { 0x78BF, 60141 }, - { 0x78C0, 60145 }, - { 0x78C1, 60149 }, - { 0x78C2, 60153 }, - { 0x78C3, 60157 }, - { 0x78C4, 60161 }, - { 0x78C5, 60165 }, - { 0x78C6, 60169 }, - { 0x78C7, 60173 }, - { 0x78C8, 60177 }, - { 0x78C9, 60181 }, - { 0x78CA, 60185 }, - { 0x78CB, 60189 }, - { 0x78CC, 60193 }, - { 0x78CD, 60197 }, - { 0x78CE, 60201 }, - { 0x78CF, 60205 }, - { 0x78D0, 60209 }, - { 0x78D1, 60213 }, - { 0x78D2, 60217 }, - { 0x78D3, 60221 }, - { 0x78D4, 60225 }, - { 0x78D5, 60229 }, - { 0x78D6, 60233 }, - { 0x78D7, 60237 }, - { 0x78D8, 60241 }, - { 0x78D9, 60245 }, - { 0x78DA, 60249 }, - { 0x78DB, 60253 }, - { 0x78DC, 60257 }, - { 0x78DD, 60261 }, - { 0x78DE, 60265 }, - { 0x78DF, 60269 }, - { 0x78E0, 60273 }, - { 0x78E1, 60277 }, - { 0x78E2, 60281 }, - { 0x78E3, 60285 }, - { 0x78E4, 60289 }, - { 0x78E5, 60293 }, - { 0x78E6, 60297 }, - { 0x78E7, 60301 }, - { 0x78E8, 60305 }, - { 0x78E9, 60309 }, - { 0x78EA, 60313 }, - { 0x78EB, 60317 }, - { 0x78EC, 60321 }, - { 0x78ED, 60325 }, - { 0x78EE, 60329 }, - { 0x4CB9, 60333 }, - { 0x4CC1, 60336 }, - { 0x4CBA, 60339 }, - { 0x4CB8, 60342 }, - { 0x4CB7, 60345 }, - { 0x4CBD, 60348 }, - { 0x4CBB, 60351 }, - { 0x4CB3, 60353 }, - { 0x4CB0, 60357 }, - { 0x4CB5, 60361 }, - { 0x4CB2, 60365 }, - { 0x4CAF, 60369 }, - { 0x4CB4, 60373 }, - { 0x4CB6, 60377 }, - { 0x4CB1, 60381 }, - { 0x4CC4, 60385 }, - { 0x4CBC, 60390 }, - { 0x4CBF, 60393 }, - { 0x4C84, 60397 }, - { 0x4C88, 60400 }, - { 0x4C86, 60403 }, - { 0x4C8A, 60406 }, - { 0x4C87, 60409 }, - { 0x4C85, 60412 }, - { 0x4C89, 60415 }, - { 0x4C8B, 60418 }, - { 0x4CA4, 60421 }, - { 0x4C92, 60424 }, - { 0x4C9E, 60427 }, - { 0x4C8E, 60430 }, - { 0x4CAD, 60433 }, - { 0x4C94, 60436 }, - { 0x4C8C, 60439 }, - { 0x4CAA, 60442 }, - { 0x4CA7, 60445 }, - { 0x4CA1, 60448 }, - { 0x4CA2, 60451 }, - { 0x4CC2, 60454 }, - { 0x4CA9, 60457 }, - { 0x4CAC, 60460 }, - { 0x4C9C, 60463 }, - { 0x4CAB, 60466 }, - { 0x4CA8, 60469 }, - { 0x4CA5, 60472 }, - { 0x4CA6, 60475 }, - { 0x4C93, 60478 }, - { 0x4C99, 60481 }, - { 0x4CA0, 60484 }, - { 0x4C8F, 60487 }, - { 0x4C90, 60490 }, - { 0x4C95, 60493 }, - { 0x4C8D, 60496 }, - { 0x4CAE, 60499 }, - { 0x4C91, 60502 }, - { 0x4C9B, 60505 }, - { 0x4C96, 60508 }, - { 0x4CA3, 60511 }, - { 0x4C9D, 60514 }, - { 0x4C97, 60517 }, - { 0x4C9F, 60520 }, - { 0x4C9A, 60523 }, - { 0x4C98, 60526 }, - { 0x4CC3, 60529 }, - { 0x4CBE, 60533 }, - { 0x4CC0, 60536 }, - { 0x900B, 60539 }, - { 0x2E18, 60540 }, - { 0x280C, 60543 }, - { 0x95B4, 60544 }, - { 0x26D7, 60545 }, - { 0x26D9, 60547 }, - { 0x9085, 60552 }, - { 0x18E7, 60553 }, - { 0x18E8, 60556 }, - { 0x18EF, 60559 }, - { 0x18F4, 60562 }, - { 0x18F0, 60565 }, - { 0x18F3, 60568 }, - { 0x18F2, 60571 }, - { 0x18F7, 60574 }, - { 0x18EE, 60577 }, - { 0x18F6, 60580 }, - { 0x18F5, 60583 }, - { 0x18F1, 60586 }, - { 0x18DD, 60589 }, - { 0x18D8, 60593 }, - { 0x18D9, 60597 }, - { 0x18DB, 60601 }, - { 0x18D7, 60605 }, - { 0x18DA, 60609 }, - { 0x18DC, 60613 }, - { 0x18D4, 60617 }, - { 0x18C4, 60620 }, - { 0x18B7, 60623 }, - { 0x18BD, 60626 }, - { 0x18C2, 60629 }, - { 0x18B4, 60632 }, - { 0x18CE, 60635 }, - { 0x18B9, 60638 }, - { 0x18B1, 60641 }, - { 0x18CD, 60644 }, - { 0x18C6, 60647 }, - { 0x18BE, 60650 }, - { 0x18BF, 60653 }, - { 0x18CC, 60656 }, - { 0x18D1, 60659 }, - { 0x18BB, 60662 }, - { 0x18D0, 60665 }, - { 0x18D3, 60668 }, - { 0x18CB, 60671 }, - { 0x18C5, 60674 }, - { 0x18B8, 60677 }, - { 0x18FA, 60680 }, - { 0x18CA, 60683 }, - { 0x18C3, 60686 }, - { 0x18B5, 60689 }, - { 0x18CF, 60692 }, - { 0x18B3, 60695 }, - { 0x18B2, 60698 }, - { 0x18C7, 60701 }, - { 0x18B6, 60704 }, - { 0x18BA, 60707 }, - { 0x18C1, 60710 }, - { 0x18C0, 60713 }, - { 0x18D2, 60716 }, - { 0x18BC, 60719 }, - { 0x18C8, 60722 }, - { 0x18F8, 60725 }, - { 0x18C9, 60728 }, - { 0x18F9, 60731 }, - { 0x18DE, 60734 }, - { 0x18E0, 60738 }, - { 0x18DF, 60742 }, - { 0x18E1, 60746 }, - { 0x18E2, 60750 }, - { 0x18E3, 60754 }, - { 0x18E4, 60758 }, - { 0x18E6, 60762 }, - { 0x18E5, 60766 }, - { 0x18D6, 60770 }, - { 0x18D5, 60774 }, - { 0x18EA, 60778 }, - { 0x18EB, 60783 }, - { 0x18E9, 60786 }, - { 0x18ED, 60789 }, - { 0x18EC, 60792 }, - { 0x44BB, 60796 }, - { 0x44BC, 60800 }, - { 0x44BD, 60804 }, - { 0x44BE, 60808 }, - { 0x44BF, 60812 }, - { 0x44C0, 60816 }, - { 0x44C1, 60820 }, - { 0x44C2, 60824 }, - { 0x44C6, 60828 }, - { 0x44C7, 60832 }, - { 0x44C8, 60836 }, - { 0x44CC, 60840 }, - { 0x44CD, 60844 }, - { 0x44CE, 60848 }, - { 0x44CF, 60852 }, - { 0x44D0, 60856 }, - { 0x44D1, 60860 }, - { 0x44D2, 60864 }, - { 0x44D3, 60868 }, - { 0x44D4, 60872 }, - { 0x44D5, 60876 }, - { 0x44D6, 60880 }, - { 0x44D7, 60884 }, - { 0x44D8, 60888 }, - { 0x44D9, 60892 }, - { 0x44DA, 60896 }, - { 0x44DB, 60900 }, - { 0x44DC, 60904 }, - { 0x44DD, 60908 }, - { 0x44DE, 60912 }, - { 0x44DF, 60916 }, - { 0x44E0, 60920 }, - { 0x44E1, 60924 }, - { 0x44E2, 60928 }, - { 0x44E3, 60932 }, - { 0x44E4, 60936 }, - { 0x44E5, 60940 }, - { 0x44E6, 60944 }, - { 0x44E7, 60948 }, - { 0x44E8, 60952 }, - { 0x44E9, 60956 }, - { 0x44EA, 60960 }, - { 0x44EB, 60964 }, - { 0x44EC, 60968 }, - { 0x44ED, 60972 }, - { 0x44EE, 60976 }, - { 0x44EF, 60980 }, - { 0x44F0, 60984 }, - { 0x44F1, 60988 }, - { 0x44F2, 60992 }, - { 0x44F3, 60996 }, - { 0x44F4, 61000 }, - { 0x44F5, 61004 }, - { 0x44F6, 61008 }, - { 0x44F7, 61012 }, - { 0x44F8, 61016 }, - { 0x44F9, 61020 }, - { 0x44FA, 61024 }, - { 0x44FB, 61028 }, - { 0x44FC, 61032 }, - { 0x44FD, 61036 }, - { 0x44FE, 61040 }, - { 0x44FF, 61044 }, - { 0x4500, 61048 }, - { 0x4501, 61052 }, - { 0x4502, 61056 }, - { 0x4503, 61060 }, - { 0x4504, 61064 }, - { 0x4505, 61068 }, - { 0x4519, 61072 }, - { 0x451A, 61076 }, - { 0x451B, 61080 }, - { 0x451C, 61084 }, - { 0x451D, 61088 }, - { 0x451E, 61092 }, - { 0x451F, 61096 }, - { 0x4520, 61100 }, - { 0x4521, 61104 }, - { 0x4522, 61108 }, - { 0x4523, 61112 }, - { 0x4524, 61116 }, - { 0x4525, 61120 }, - { 0x4526, 61124 }, - { 0x4527, 61128 }, - { 0x4528, 61132 }, - { 0x4529, 61136 }, - { 0x452A, 61140 }, - { 0x452B, 61144 }, - { 0x452C, 61148 }, - { 0x452D, 61152 }, - { 0x452E, 61156 }, - { 0x452F, 61160 }, - { 0x4530, 61164 }, - { 0x4531, 61168 }, - { 0x4532, 61172 }, - { 0x4533, 61176 }, - { 0x4534, 61180 }, - { 0x4535, 61184 }, - { 0x4536, 61188 }, - { 0x4537, 61192 }, - { 0x4538, 61196 }, - { 0x4539, 61200 }, - { 0x453A, 61204 }, - { 0x453B, 61208 }, - { 0x453C, 61212 }, - { 0x453D, 61216 }, - { 0x453E, 61220 }, - { 0x453F, 61224 }, - { 0x4540, 61228 }, - { 0x4541, 61232 }, - { 0x4542, 61236 }, - { 0x4543, 61240 }, - { 0x4544, 61244 }, - { 0x4545, 61248 }, - { 0x4546, 61252 }, - { 0x4547, 61256 }, - { 0x4548, 61260 }, - { 0x4549, 61264 }, - { 0x454A, 61268 }, - { 0x454B, 61272 }, - { 0x454C, 61276 }, - { 0x454D, 61280 }, - { 0x454E, 61284 }, - { 0x454F, 61288 }, - { 0x4550, 61292 }, - { 0x4551, 61296 }, - { 0x4552, 61300 }, - { 0x4553, 61304 }, - { 0x4554, 61308 }, - { 0x4555, 61312 }, - { 0x4556, 61316 }, - { 0x4557, 61320 }, - { 0x4558, 61324 }, - { 0x4559, 61328 }, - { 0x455A, 61332 }, - { 0x455B, 61336 }, - { 0x455C, 61340 }, - { 0x455D, 61344 }, - { 0x455E, 61348 }, - { 0x455F, 61352 }, - { 0x4560, 61356 }, - { 0x4561, 61360 }, - { 0x4562, 61364 }, - { 0x4563, 61368 }, - { 0x4564, 61372 }, - { 0x4565, 61376 }, - { 0x4566, 61380 }, - { 0x4567, 61384 }, - { 0x4568, 61388 }, - { 0x4569, 61392 }, - { 0x456A, 61396 }, - { 0x456B, 61400 }, - { 0x456C, 61404 }, - { 0x456D, 61408 }, - { 0x456E, 61412 }, - { 0x456F, 61416 }, - { 0x4570, 61420 }, - { 0x4571, 61424 }, - { 0x4572, 61428 }, - { 0x4573, 61432 }, - { 0x4574, 61436 }, - { 0x4575, 61440 }, - { 0x4576, 61444 }, - { 0x4577, 61448 }, - { 0x4578, 61452 }, - { 0x4579, 61456 }, - { 0x457A, 61460 }, - { 0x457B, 61464 }, - { 0x457C, 61468 }, - { 0x457D, 61472 }, - { 0x457E, 61476 }, - { 0x457F, 61480 }, - { 0x4580, 61484 }, - { 0x4581, 61488 }, - { 0x4582, 61492 }, - { 0x4583, 61496 }, - { 0x4584, 61500 }, - { 0x4585, 61504 }, - { 0x4586, 61508 }, - { 0x4587, 61512 }, - { 0x4588, 61516 }, - { 0x4589, 61520 }, - { 0x458A, 61524 }, - { 0x458B, 61528 }, - { 0x458C, 61532 }, - { 0x458D, 61536 }, - { 0x458E, 61540 }, - { 0x458F, 61544 }, - { 0x4590, 61548 }, - { 0x4591, 61552 }, - { 0x4592, 61556 }, - { 0x4593, 61560 }, - { 0x4594, 61564 }, - { 0x4595, 61568 }, - { 0x4596, 61572 }, - { 0x4597, 61576 }, - { 0x4598, 61580 }, - { 0x4599, 61584 }, - { 0x459A, 61588 }, - { 0x459B, 61592 }, - { 0x459C, 61596 }, - { 0x459D, 61600 }, - { 0x459E, 61605 }, - { 0x459F, 61610 }, - { 0x45A0, 61615 }, - { 0x45A1, 61620 }, - { 0x45A2, 61625 }, - { 0x45A3, 61630 }, - { 0x45A4, 61635 }, - { 0x45A5, 61640 }, - { 0x45AA, 61645 }, - { 0x45AB, 61650 }, - { 0x45AC, 61655 }, - { 0x45AD, 61660 }, - { 0x45AE, 61665 }, - { 0x45AF, 61670 }, - { 0x45B0, 61675 }, - { 0x45B1, 61680 }, - { 0x45B2, 61685 }, - { 0x45B3, 61690 }, - { 0x45B4, 61694 }, - { 0x45B5, 61698 }, - { 0x45B6, 61702 }, - { 0x45B7, 61706 }, - { 0x45B8, 61710 }, - { 0x45B9, 61714 }, - { 0x45BA, 61718 }, - { 0x4481, 61722 }, - { 0x44B0, 61726 }, - { 0x44B5, 61730 }, - { 0x44C3, 61734 }, - { 0x44C4, 61738 }, - { 0x44C5, 61742 }, - { 0x44C9, 61746 }, - { 0x44CA, 61750 }, - { 0x44CB, 61754 }, - { 0x4466, 61758 }, - { 0x4467, 61762 }, - { 0x4468, 61766 }, - { 0x4469, 61770 }, - { 0x446A, 61774 }, - { 0x446B, 61778 }, - { 0x446C, 61782 }, - { 0x446D, 61786 }, - { 0x446E, 61790 }, - { 0x446F, 61794 }, - { 0x4470, 61798 }, - { 0x4471, 61802 }, - { 0x4472, 61806 }, - { 0x4473, 61810 }, - { 0x4474, 61814 }, - { 0x4475, 61818 }, - { 0x4478, 61822 }, - { 0x447B, 61826 }, - { 0x447D, 61830 }, - { 0x447E, 61834 }, - { 0x447F, 61838 }, - { 0x4480, 61842 }, - { 0x4482, 61846 }, - { 0x4483, 61850 }, - { 0x4484, 61854 }, - { 0x4485, 61858 }, - { 0x4486, 61862 }, - { 0x4487, 61866 }, - { 0x4488, 61870 }, - { 0x4489, 61874 }, - { 0x448A, 61878 }, - { 0x448B, 61882 }, - { 0x448C, 61886 }, - { 0x448D, 61890 }, - { 0x448E, 61894 }, - { 0x448F, 61898 }, - { 0x4490, 61902 }, - { 0x4491, 61906 }, - { 0x4492, 61910 }, - { 0x4493, 61914 }, - { 0x4494, 61918 }, - { 0x4495, 61922 }, - { 0x4496, 61926 }, - { 0x4497, 61930 }, - { 0x4498, 61934 }, - { 0x4499, 61938 }, - { 0x449A, 61942 }, - { 0x449B, 61946 }, - { 0x449C, 61950 }, - { 0x449D, 61954 }, - { 0x449E, 61958 }, - { 0x449F, 61962 }, - { 0x44A0, 61966 }, - { 0x44A1, 61970 }, - { 0x44A2, 61974 }, - { 0x44A3, 61978 }, - { 0x44A4, 61982 }, - { 0x44A5, 61986 }, - { 0x44A6, 61990 }, - { 0x44A7, 61994 }, - { 0x44A8, 61998 }, - { 0x44A9, 62002 }, - { 0x44AA, 62006 }, - { 0x44AB, 62010 }, - { 0x44AC, 62014 }, - { 0x44AE, 62018 }, - { 0x44AF, 62022 }, - { 0x44B1, 62026 }, - { 0x44B2, 62030 }, - { 0x44B6, 62034 }, - { 0x44B7, 62038 }, - { 0x44B8, 62042 }, - { 0x44B9, 62046 }, - { 0x44BA, 62050 }, - { 0x45A6, 62054 }, - { 0x45A7, 62059 }, - { 0x45A8, 62064 }, - { 0x45A9, 62069 }, - { 0x4476, 62074 }, - { 0x4477, 62078 }, - { 0x4479, 62082 }, - { 0x447A, 62086 }, - { 0x447C, 62090 }, - { 0x44B3, 62094 }, - { 0x44B4, 62098 }, - { 0x44AD, 62102 }, - { 0x4506, 62106 }, - { 0x4507, 62110 }, - { 0x4508, 62114 }, - { 0x4509, 62118 }, - { 0x450A, 62122 }, - { 0x450B, 62126 }, - { 0x450C, 62130 }, - { 0x450D, 62134 }, - { 0x450E, 62138 }, - { 0x450F, 62142 }, - { 0x4510, 62146 }, - { 0x4511, 62150 }, - { 0x4512, 62154 }, - { 0x4513, 62158 }, - { 0x4514, 62162 }, - { 0x4515, 62166 }, - { 0x4516, 62170 }, - { 0x4517, 62174 }, - { 0x4518, 62178 }, - { 0x402A, 62182 }, - { 0x402B, 62186 }, - { 0x402C, 62190 }, - { 0x402D, 62194 }, - { 0x402E, 62198 }, - { 0x402F, 62202 }, - { 0x4030, 62206 }, - { 0x4031, 62210 }, - { 0x4032, 62214 }, - { 0x4033, 62218 }, - { 0x4034, 62222 }, - { 0x4035, 62226 }, - { 0x4036, 62230 }, - { 0x4037, 62234 }, - { 0x4038, 62238 }, - { 0x4039, 62243 }, - { 0x403A, 62248 }, - { 0x403B, 62253 }, - { 0x4046, 62258 }, - { 0x4047, 62263 }, - { 0x4048, 62268 }, - { 0x4049, 62273 }, - { 0x404A, 62278 }, - { 0x404D, 62283 }, - { 0x404E, 62288 }, - { 0x404F, 62293 }, - { 0x4052, 62297 }, - { 0x4053, 62302 }, - { 0x4054, 62307 }, - { 0x4055, 62311 }, - { 0x4056, 62316 }, - { 0x4057, 62320 }, - { 0x4058, 62324 }, - { 0x4059, 62329 }, - { 0x405A, 62333 }, - { 0x405B, 62337 }, - { 0x405D, 62341 }, - { 0x405E, 62345 }, - { 0x405F, 62349 }, - { 0x4060, 62354 }, - { 0x4061, 62358 }, - { 0x4062, 62362 }, - { 0x4063, 62367 }, - { 0x4064, 62372 }, - { 0x4065, 62376 }, - { 0x4066, 62380 }, - { 0x4067, 62384 }, - { 0x4068, 62388 }, - { 0x4069, 62392 }, - { 0x406A, 62396 }, - { 0x406B, 62400 }, - { 0x406C, 62404 }, - { 0x406D, 62408 }, - { 0x406E, 62413 }, - { 0x406F, 62417 }, - { 0x4070, 62422 }, - { 0x4071, 62426 }, - { 0x4072, 62430 }, - { 0x4073, 62434 }, - { 0x4074, 62438 }, - { 0x4075, 62442 }, - { 0x4076, 62446 }, - { 0x4077, 62450 }, - { 0x4078, 62454 }, - { 0x4079, 62458 }, - { 0x407A, 62462 }, - { 0x407B, 62466 }, - { 0x407C, 62471 }, - { 0x407D, 62476 }, - { 0x407E, 62481 }, - { 0x407F, 62486 }, - { 0x4080, 62491 }, - { 0x4081, 62495 }, - { 0x4082, 62500 }, - { 0x4083, 62504 }, - { 0x4084, 62508 }, - { 0x4085, 62514 }, - { 0x4086, 62519 }, - { 0x4087, 62525 }, - { 0x4088, 62530 }, - { 0x4089, 62534 }, - { 0x408B, 62538 }, - { 0x408C, 62542 }, - { 0x408D, 62546 }, - { 0x408E, 62550 }, - { 0x408F, 62554 }, - { 0x4090, 62558 }, - { 0x4091, 62563 }, - { 0x4092, 62567 }, - { 0x4093, 62571 }, - { 0x4094, 62575 }, - { 0x4095, 62579 }, - { 0x403C, 62583 }, - { 0x403D, 62588 }, - { 0x403E, 62593 }, - { 0x403F, 62598 }, - { 0x4040, 62603 }, - { 0x4041, 62608 }, - { 0x4042, 62613 }, - { 0x4043, 62618 }, - { 0x4044, 62623 }, - { 0x4045, 62628 }, - { 0x4096, 62633 }, - { 0x4097, 62638 }, - { 0x4098, 62643 }, - { 0x4099, 62648 }, - { 0x409A, 62653 }, - { 0x409B, 62658 }, - { 0x409C, 62663 }, - { 0x409D, 62668 }, - { 0x409E, 62673 }, - { 0x409F, 62678 }, - { 0x40A0, 62683 }, - { 0x40A1, 62688 }, - { 0x40A2, 62693 }, - { 0x40A3, 62698 }, - { 0x40A4, 62703 }, - { 0x40A5, 62708 }, - { 0x40A6, 62713 }, - { 0x40A7, 62718 }, - { 0x40A8, 62723 }, - { 0x40A9, 62728 }, - { 0x40AA, 62733 }, - { 0x40AB, 62738 }, - { 0x40AC, 62743 }, - { 0x40AD, 62748 }, - { 0x40AE, 62753 }, - { 0x40AF, 62758 }, - { 0x40B0, 62763 }, - { 0x40B1, 62768 }, - { 0x40B2, 62773 }, - { 0x404B, 62778 }, - { 0x404C, 62783 }, - { 0x4050, 62788 }, - { 0x4051, 62793 }, - { 0x405C, 62798 }, - { 0x408A, 62803 }, - { 0x3FE5, 62808 }, - { 0x4009, 62813 }, - { 0x3FFD, 62818 }, - { 0x4011, 62823 }, - { 0x4013, 62828 }, - { 0x3FF8, 62833 }, - { 0x3FE7, 62838 }, - { 0x3FE0, 62843 }, - { 0x400C, 62848 }, - { 0x3FE4, 62853 }, - { 0x4000, 62858 }, - { 0x400E, 62863 }, - { 0x3FF4, 62868 }, - { 0x3FE8, 62873 }, - { 0x3FF6, 62878 }, - { 0x4002, 62883 }, - { 0x4019, 62888 }, - { 0x401B, 62893 }, - { 0x4004, 62898 }, - { 0x3FF7, 62903 }, - { 0x3FF9, 62908 }, - { 0x401C, 62913 }, - { 0x400A, 62918 }, - { 0x4007, 62923 }, - { 0x3FE2, 62928 }, - { 0x4022, 62933 }, - { 0x3FFA, 62938 }, - { 0x400B, 62943 }, - { 0x4005, 62948 }, - { 0x4025, 62953 }, - { 0x3FEC, 62958 }, - { 0x4012, 62963 }, - { 0x3FE1, 62968 }, - { 0x3FFF, 62973 }, - { 0x4017, 62978 }, - { 0x400D, 62983 }, - { 0x4018, 62988 }, - { 0x401D, 62993 }, - { 0x3FEF, 62998 }, - { 0x3FE6, 63003 }, - { 0x3FEB, 63008 }, - { 0x4021, 63013 }, - { 0x4001, 63018 }, - { 0x3FE9, 63023 }, - { 0x3FFB, 63028 }, - { 0x4008, 63033 }, - { 0x4015, 63038 }, - { 0x3FFC, 63043 }, - { 0x3FEA, 63048 }, - { 0x400F, 63053 }, - { 0x4010, 63058 }, - { 0x4006, 63063 }, - { 0x3FE3, 63068 }, - { 0x4023, 63073 }, - { 0x3FED, 63078 }, - { 0x4027, 63083 }, - { 0x3FF0, 63088 }, - { 0x4026, 63093 }, - { 0x4014, 63098 }, - { 0x3FF1, 63103 }, - { 0x401F, 63108 }, - { 0x3FFE, 63113 }, - { 0x3FF5, 63118 }, - { 0x401A, 63123 }, - { 0x4016, 63128 }, - { 0x4024, 63133 }, - { 0x3FEE, 63138 }, - { 0x4003, 63143 }, - { 0x3FF3, 63148 }, - { 0x3FF2, 63153 }, - { 0x401E, 63158 }, - { 0x4028, 63163 }, - { 0x4020, 63168 }, - { 0x4029, 63173 }, - { 0x913A, 63178 }, - { 0x94BC, 63180 }, - { 0x9522, 63181 }, - { 0x91E0, 63183 }, - { 0x4177, 63186 }, - { 0x4179, 63189 }, - { 0x417C, 63192 }, - { 0x4178, 63195 }, - { 0x417B, 63198 }, - { 0x4192, 63201 }, - { 0x417D, 63204 }, - { 0x4181, 63207 }, - { 0x4182, 63210 }, - { 0x4184, 63213 }, - { 0x4185, 63216 }, - { 0x4186, 63219 }, - { 0x418A, 63222 }, - { 0x4183, 63225 }, - { 0x418C, 63228 }, - { 0x418D, 63231 }, - { 0x418E, 63234 }, - { 0x4189, 63237 }, - { 0x417E, 63240 }, - { 0x4193, 63243 }, - { 0x417F, 63246 }, - { 0x4190, 63249 }, - { 0x417A, 63252 }, - { 0x4191, 63255 }, - { 0x418B, 63258 }, - { 0x4187, 63261 }, - { 0x4188, 63264 }, - { 0x4180, 63267 }, - { 0x418F, 63270 }, - { 0x46C9, 63273 }, - { 0x46CA, 63276 }, - { 0x46E2, 63279 }, - { 0x46CC, 63282 }, - { 0x46CD, 63285 }, - { 0x46DA, 63288 }, - { 0x46CB, 63291 }, - { 0x46CF, 63294 }, - { 0x46D1, 63297 }, - { 0x46D2, 63300 }, - { 0x46D3, 63303 }, - { 0x46D4, 63306 }, - { 0x46D5, 63309 }, - { 0x46DB, 63312 }, - { 0x46D6, 63315 }, - { 0x46DC, 63318 }, - { 0x46D8, 63321 }, - { 0x46D9, 63324 }, - { 0x46CE, 63327 }, - { 0x46D0, 63330 }, - { 0x46DE, 63333 }, - { 0x46DF, 63336 }, - { 0x46E0, 63339 }, - { 0x46E1, 63342 }, - { 0x46D7, 63345 }, - { 0x46DD, 63348 }, - { 0x46E3, 63351 }, - { 0x006E, 63354 }, - { 0x9520, 63355 }, - { 0x94EB, 63356 }, - { 0x935B, 63358 }, - { 0x9370, 63362 }, - { 0x932A, 63367 }, - { 0x9355, 63371 }, - { 0x936A, 63375 }, - { 0x936C, 63380 }, - { 0x23A0, 63385 }, - { 0x2394, 63390 }, - { 0x22D7, 63394 }, - { 0x9361, 63397 }, - { 0x9373, 63401 }, - { 0x9348, 63406 }, - { 0x23A1, 63409 }, - { 0x2395, 63414 }, - { 0x21BE, 63418 }, - { 0x22D8, 63420 }, - { 0x9366, 63424 }, - { 0x9368, 63429 }, - { 0x22D6, 63434 }, - { 0x9334, 63437 }, - { 0x934F, 63440 }, - { 0x2385, 63442 }, - { 0x2396, 63445 }, - { 0x2397, 63450 }, - { 0x1CDF, 63455 }, - { 0x2398, 63458 }, - { 0x2399, 63463 }, - { 0x3B0F, 63468 }, - { 0x3A32, 63472 }, - { 0x3B10, 63475 }, - { 0x3A34, 63479 }, - { 0x3A31, 63484 }, - { 0x3B12, 63488 }, - { 0x3B17, 63492 }, - { 0x3B13, 63496 }, - { 0x3B16, 63500 }, - { 0x3B15, 63504 }, - { 0x3B1A, 63508 }, - { 0x3B11, 63512 }, - { 0x3B19, 63516 }, - { 0x3B18, 63520 }, - { 0x3B14, 63524 }, - { 0x3A2E, 63528 }, - { 0x3A2B, 63533 }, - { 0x3A2C, 63538 }, - { 0x3A2D, 63543 }, - { 0x3A2F, 63548 }, - { 0x3B08, 63553 }, - { 0x3B07, 63558 }, - { 0x3B0D, 63563 }, - { 0x3B06, 63568 }, - { 0x3B0B, 63573 }, - { 0x3B09, 63578 }, - { 0x3B0A, 63583 }, - { 0x3B0C, 63588 }, - { 0x3A35, 63593 }, - { 0x3A20, 63598 }, - { 0x3AF2, 63602 }, - { 0x3B05, 63606 }, - { 0x3A21, 63611 }, - { 0x3AF8, 63615 }, - { 0x3AE8, 63619 }, - { 0x3B02, 63623 }, - { 0x3AE7, 63628 }, - { 0x3B01, 63632 }, - { 0x3AF1, 63637 }, - { 0x3A22, 63641 }, - { 0x3A26, 63645 }, - { 0x3AFA, 63649 }, - { 0x3AF5, 63653 }, - { 0x3AF0, 63657 }, - { 0x3AF9, 63661 }, - { 0x3AE3, 63665 }, - { 0x3AFE, 63669 }, - { 0x3AE5, 63674 }, - { 0x3AFF, 63678 }, - { 0x3AE6, 63683 }, - { 0x3B00, 63687 }, - { 0x3A28, 63692 }, - { 0x3A23, 63696 }, - { 0x3AF7, 63700 }, - { 0x3AE4, 63704 }, - { 0x3A29, 63708 }, - { 0x3A2A, 63712 }, - { 0x3AEA, 63716 }, - { 0x3B03, 63720 }, - { 0x3A24, 63725 }, - { 0x3AEE, 63729 }, - { 0x3AFD, 63733 }, - { 0x3AE9, 63737 }, - { 0x3A27, 63741 }, - { 0x3AFC, 63745 }, - { 0x3AFB, 63749 }, - { 0x3AF6, 63753 }, - { 0x3AEB, 63757 }, - { 0x3AEC, 63761 }, - { 0x3B04, 63765 }, - { 0x3AF3, 63770 }, - { 0x3AED, 63774 }, - { 0x3A25, 63778 }, - { 0x3AEF, 63782 }, - { 0x3AF4, 63786 }, - { 0x3A36, 63790 }, - { 0x3A30, 63793 }, - { 0x3B0E, 63796 }, - { 0x3A33, 63799 }, - { 0x0076, 63804 }, - { 0x96E7, 63806 }, - { 0x96E8, 63811 }, - { 0x96C3, 63816 }, - { 0x7C53, 63822 }, - { 0x95B6, 63825 }, - { 0x95C1, 63826 }, - { 0x90A4, 63828 }, - { 0x90A7, 63830 }, - { 0x90A5, 63833 }, - { 0x1EFE, 63840 }, - { 0x9469, 63841 }, - { 0x2636, 63843 }, - { 0x8FC5, 63846 }, - { 0x8FE8, 63847 }, - { 0x90FF, 63849 }, - { 0x9464, 63850 }, - { 0x1CAF, 63852 }, - { 0x2805, 63855 }, - { 0x22DE, 63856 }, - { 0x1D34, 63857 }, - { 0x1F09, 63860 }, - { 0x1F0B, 63863 }, - { 0x20BD, 63869 }, - { 0x0003, 63873 }, - { 0x20BE, 63875 }, - { 0x20BF, 63879 }, - { 0x20C7, 63883 }, - { 0x20C2, 63887 }, - { 0x20C3, 63891 }, - { 0x20C5, 63895 }, - { 0x20C1, 63899 }, - { 0x20C6, 63903 }, - { 0x20C0, 63907 }, - { 0x20C4, 63911 }, - { 0x1D71, 63915 }, - { 0x3FDE, 63917 }, - { 0x8F95, 63920 }, - { 0x029A, 63922 }, - { 0x1F7C, 63923 }, - { 0x908C, 63925 }, - { 0x950F, 63927 }, - { 0x3D80, 63929 }, - { 0x3D81, 63932 }, - { 0x9097, 63935 }, - { 0x94D8, 63937 }, - { 0x9287, 63938 }, - { 0x72E2, 63939 }, - { 0x72E0, 63944 }, - { 0x72D9, 63949 }, - { 0x72E5, 63954 }, - { 0x72D6, 63959 }, - { 0x72E1, 63964 }, - { 0x72E6, 63969 }, - { 0x72E3, 63974 }, - { 0x72DA, 63979 }, - { 0x72DF, 63984 }, - { 0x72D7, 63989 }, - { 0x72DB, 63994 }, - { 0x72DE, 63999 }, - { 0x72DC, 64004 }, - { 0x72DD, 64009 }, - { 0x72E4, 64014 }, - { 0x72D5, 64019 }, - { 0x72D8, 64024 }, - { 0x72D4, 64029 }, - { 0x7299, 64034 }, - { 0x729D, 64039 }, - { 0x729A, 64044 }, - { 0x7298, 64049 }, - { 0x729B, 64054 }, - { 0x729C, 64059 }, - { 0x729E, 64064 }, - { 0x72C8, 64069 }, - { 0x72AB, 64073 }, - { 0x72D2, 64078 }, - { 0x72CF, 64084 }, - { 0x72CE, 64090 }, - { 0x72D3, 64098 }, - { 0x72AD, 64104 }, - { 0x72D0, 64110 }, - { 0x72D1, 64115 }, - { 0x72A1, 64121 }, - { 0x72C1, 64126 }, - { 0x72CC, 64130 }, - { 0x72CD, 64134 }, - { 0x72CB, 64138 }, - { 0x72BF, 64142 }, - { 0x72A3, 64147 }, - { 0x72AA, 64152 }, - { 0x72A8, 64157 }, - { 0x729F, 64162 }, - { 0x72A2, 64167 }, - { 0x72A0, 64172 }, - { 0x72C3, 64178 }, - { 0x72C4, 64183 }, - { 0x72A9, 64187 }, - { 0x72CA, 64192 }, - { 0x72C5, 64197 }, - { 0x72C7, 64201 }, - { 0x72AC, 64205 }, - { 0x72C6, 64209 }, - { 0x72C0, 64213 }, - { 0x72A5, 64217 }, - { 0x72A6, 64222 }, - { 0x72A7, 64227 }, - { 0x72A4, 64232 }, - { 0x72C9, 64237 }, - { 0x72C2, 64242 }, - { 0x72AF, 64247 }, - { 0x72B4, 64251 }, - { 0x72B0, 64255 }, - { 0x72B3, 64259 }, - { 0x72B2, 64263 }, - { 0x72B7, 64267 }, - { 0x72AE, 64271 }, - { 0x72B6, 64275 }, - { 0x72B5, 64279 }, - { 0x72B1, 64283 }, - { 0x727E, 64287 }, - { 0x727F, 64291 }, - { 0x7270, 64295 }, - { 0x7271, 64299 }, - { 0x726A, 64303 }, - { 0x726B, 64307 }, - { 0x727A, 64311 }, - { 0x727B, 64315 }, - { 0x726E, 64319 }, - { 0x726F, 64323 }, - { 0x7280, 64327 }, - { 0x7281, 64331 }, - { 0x7282, 64335 }, - { 0x7283, 64339 }, - { 0x7272, 64343 }, - { 0x7273, 64347 }, - { 0x726C, 64351 }, - { 0x726D, 64355 }, - { 0x7276, 64359 }, - { 0x7277, 64363 }, - { 0x7268, 64367 }, - { 0x7269, 64371 }, - { 0x727C, 64375 }, - { 0x727D, 64379 }, - { 0x7274, 64383 }, - { 0x7275, 64387 }, - { 0x7278, 64391 }, - { 0x7279, 64395 }, - { 0x72BD, 64399 }, - { 0x72BA, 64404 }, - { 0x72B8, 64409 }, - { 0x72BC, 64413 }, - { 0x72B9, 64418 }, - { 0x72BB, 64422 }, - { 0x72BE, 64426 }, - { 0x7295, 64430 }, - { 0x7297, 64434 }, - { 0x7287, 64438 }, - { 0x7286, 64442 }, - { 0x728E, 64446 }, - { 0x7294, 64450 }, - { 0x7289, 64454 }, - { 0x7284, 64458 }, - { 0x7296, 64462 }, - { 0x728C, 64466 }, - { 0x728F, 64470 }, - { 0x728D, 64474 }, - { 0x7291, 64478 }, - { 0x728A, 64482 }, - { 0x7288, 64486 }, - { 0x728B, 64490 }, - { 0x7290, 64494 }, - { 0x7293, 64498 }, - { 0x7285, 64502 }, - { 0x7292, 64506 }, - { 0x22E0, 64510 }, - { 0x94CA, 64511 }, - { 0x2826, 64512 }, - { 0x233B, 64514 }, - { 0x95DA, 64515 }, - { 0x9506, 64517 }, - { 0x9504, 64521 }, - { 0x2325, 64525 }, - { 0x9024, 64528 }, - { 0x95DD, 64532 }, - { 0x9202, 64535 }, - { 0x9201, 64539 }, - { 0x9503, 64543 }, - { 0x9466, 64546 }, - { 0x91FA, 64549 }, - { 0x91FF, 64552 }, - { 0x9505, 64558 }, - { 0x9200, 64560 }, - { 0x1D20, 64562 }, - { 0x2804, 64564 }, - { 0x92A7, 64565 }, - { 0x95A2, 64567 }, - { 0x227F, 64568 }, - { 0x90DE, 64569 }, - { 0x1D69, 64570 }, - { 0x1D6A, 64572 }, - { 0x915C, 64577 }, - { 0x9246, 64579 }, - { 0x925B, 64581 }, - { 0x9021, 64585 }, - { 0x8FDC, 64587 }, - { 0x90A2, 64588 }, - { 0x2BBF, 64590 }, - { 0x2BCD, 64592 }, - { 0x9482, 64595 }, - { 0x95CC, 64596 }, - { 0x90B2, 64598 }, - { 0x9462, 64600 }, - { 0x9095, 64601 }, - { 0x904F, 64604 }, - { 0x9323, 64606 }, - { 0x8FBA, 64607 }, - { 0x8FE3, 64608 }, - { 0x8F81, 64610 }, - { 0x8F80, 64612 }, - { 0x8E15, 64614 }, - { 0x8E16, 64617 }, - { 0x8E17, 64620 }, - { 0x2A29, 64623 }, - { 0x9448, 64625 }, - { 0x2336, 64629 }, - { 0x2337, 64631 }, - { 0x9149, 64633 }, - { 0x9143, 64642 }, - { 0x2A2A, 64647 }, - { 0x96CD, 64649 }, - { 0x29FD, 64654 }, - { 0x2A01, 64658 }, - { 0x29FC, 64660 }, - { 0x38C2, 64663 }, - { 0x38C0, 64667 }, - { 0x38C4, 64671 }, - { 0x38C1, 64675 }, - { 0x38C3, 64679 }, - { 0x38C5, 64683 }, - { 0x38C7, 64687 }, - { 0x38C6, 64691 }, - { 0x38BF, 64695 }, - { 0x38B0, 64698 }, - { 0x38B2, 64701 }, - { 0x38AD, 64704 }, - { 0x38AA, 64707 }, - { 0x38BA, 64710 }, - { 0x38B3, 64713 }, - { 0x38A9, 64716 }, - { 0x38B7, 64719 }, - { 0x38B1, 64722 }, - { 0x38AE, 64725 }, - { 0x38AF, 64728 }, - { 0x38B6, 64731 }, - { 0x38B5, 64734 }, - { 0x38AC, 64737 }, - { 0x38B9, 64740 }, - { 0x38B8, 64743 }, - { 0x38BB, 64746 }, - { 0x38BD, 64749 }, - { 0x38AB, 64752 }, - { 0x38B4, 64755 }, - { 0x38BC, 64758 }, - { 0x38BE, 64761 }, - { 0x38CC, 64764 }, - { 0x38CD, 64766 }, - { 0x38CB, 64769 }, - { 0x38C9, 64773 }, - { 0x38CA, 64777 }, - { 0x38C8, 64781 }, - { 0x27BA, 64785 }, - { 0x27BB, 64787 }, - { 0x2025, 64789 }, - { 0x8F33, 64791 }, - { 0x27DB, 64792 }, - { 0x27DC, 64796 }, - { 0x27D9, 64800 }, - { 0x27DA, 64804 }, - { 0x27DD, 64808 }, - { 0x27DF, 64812 }, - { 0x27DE, 64816 }, - { 0x27E0, 64820 }, - { 0x95A8, 64824 }, - { 0x255C, 64826 }, - { 0x2557, 64832 }, - { 0x9233, 64837 }, - { 0x92A8, 64838 }, - { 0x8F55, 64840 }, - { 0x8F76, 64842 }, - { 0x9525, 64843 }, - { 0x94E8, 64845 }, - { 0x2270, 64847 }, - { 0x22C2, 64848 }, - { 0x8F9E, 64849 }, - { 0x8F45, 64850 }, - { 0x9168, 64852 }, - { 0x1D8A, 64853 }, - { 0x1D65, 64856 }, - { 0x1D6E, 64859 }, - { 0x1D8F, 64862 }, - { 0x1D87, 64865 }, - { 0x1D8B, 64868 }, - { 0x1D8C, 64871 }, - { 0x1D66, 64874 }, - { 0x1D6B, 64877 }, - { 0x1D6D, 64880 }, - { 0x1D8E, 64883 }, - { 0x1D73, 64886 }, - { 0x1D76, 64889 }, - { 0x9223, 64892 }, - { 0x908F, 64896 }, - { 0x9476, 64897 }, - { 0x1F6B, 64900 }, - { 0x9461, 64901 }, - { 0x3E48, 64902 }, - { 0x95B9, 64904 }, - { 0x8F1A, 64906 }, - { 0x9290, 64908 }, - { 0x2315, 64909 }, - { 0x9593, 64911 }, - { 0x95A7, 64912 }, - { 0x9272, 64913 }, - { 0x94BE, 64914 }, - { 0x1C9A, 64915 }, - { 0x1CB9, 64919 }, - { 0x1CBA, 64924 }, - { 0x1C9B, 64929 }, - { 0x91DD, 64933 }, - { 0x9128, 64935 }, - { 0x22E9, 64938 }, - { 0x7C88, 64940 }, - { 0x7C87, 64943 }, - { 0x905F, 64946 }, - { 0x912A, 64948 }, - { 0x912B, 64949 }, - { 0x9185, 64951 }, - { 0x8FCD, 64954 }, - { 0x9186, 64956 }, - { 0x952B, 64959 }, - { 0x8F78, 64960 }, - { 0x2F78, 64962 }, - { 0x2F5F, 64966 }, - { 0x2F59, 64970 }, - { 0x2F5A, 64973 }, - { 0x2F40, 64976 }, - { 0x2F41, 64980 }, - { 0x2F3E, 64985 }, - { 0x2F3A, 64988 }, - { 0x2F77, 64991 }, - { 0x2F5B, 64995 }, - { 0x2F0C, 64997 }, - { 0x2F5C, 64999 }, - { 0x2F5D, 65001 }, - { 0x2F5E, 65003 }, - { 0x2F36, 65005 }, - { 0x2F3D, 65007 }, - { 0x2F39, 65010 }, - { 0x2F60, 65013 }, - { 0x2F0B, 65015 }, - { 0x2F61, 65017 }, - { 0x8E3B, 65019 }, - { 0x2F30, 65021 }, - { 0x2F10, 65023 }, - { 0x2F12, 65025 }, - { 0x2F11, 65028 }, - { 0x2E67, 65031 }, - { 0x2F32, 65033 }, - { 0x2F20, 65035 }, - { 0x2F62, 65037 }, - { 0x2F63, 65039 }, - { 0x2E65, 65041 }, - { 0x2F64, 65043 }, - { 0x2F29, 65045 }, - { 0x2F65, 65047 }, - { 0x2F13, 65049 }, - { 0x2F1D, 65051 }, - { 0x2F1E, 65053 }, - { 0x2F28, 65055 }, - { 0x2F66, 65057 }, - { 0x2F31, 65059 }, - { 0x2F37, 65061 }, - { 0x2F3F, 65063 }, - { 0x2F67, 65066 }, - { 0x2F3B, 65069 }, - { 0x2F68, 65072 }, - { 0x2F51, 65074 }, - { 0x2F57, 65076 }, - { 0x2F69, 65078 }, - { 0x2F6A, 65080 }, - { 0x2F6C, 65082 }, - { 0x2F1C, 65084 }, - { 0x2F1F, 65086 }, - { 0x2F6D, 65088 }, - { 0x2F27, 65091 }, - { 0x2F2F, 65093 }, - { 0x2F35, 65095 }, - { 0x2F3C, 65097 }, - { 0x2F38, 65100 }, - { 0x2F4C, 65103 }, - { 0x2F1B, 65105 }, - { 0x2F25, 65108 }, - { 0x2F26, 65111 }, - { 0x2F2E, 65114 }, - { 0x2F34, 65117 }, - { 0x2F4B, 65120 }, - { 0x2F4F, 65123 }, - { 0x2F55, 65126 }, - { 0x2F50, 65129 }, - { 0x2F52, 65131 }, - { 0x2F56, 65134 }, - { 0x2F58, 65136 }, - { 0x2F1A, 65139 }, - { 0x2F24, 65141 }, - { 0x2F33, 65143 }, - { 0x2F4A, 65145 }, - { 0x2F4E, 65147 }, - { 0x2F54, 65149 }, - { 0x2F0E, 65151 }, - { 0x2F42, 65153 }, - { 0x2F19, 65155 }, - { 0x2F0F, 65158 }, - { 0x2F23, 65160 }, - { 0x2F70, 65162 }, - { 0x2F71, 65164 }, - { 0x2F73, 65166 }, - { 0x2F49, 65168 }, - { 0x2F4D, 65170 }, - { 0x2F53, 65172 }, - { 0x2F74, 65174 }, - { 0x2F75, 65176 }, - { 0x2F76, 65178 }, - { 0x2F0D, 65180 }, - { 0x2F21, 65182 }, - { 0x1EEA, 65184 }, - { 0x1EEB, 65186 }, - { 0x2F17, 65188 }, - { 0x2E98, 65192 }, - { 0x2F14, 65196 }, - { 0x2F15, 65200 }, - { 0x2F16, 65204 }, - { 0x2E66, 65208 }, - { 0x2F98, 65210 }, - { 0x2F2C, 65212 }, - { 0x2F45, 65214 }, - { 0x2ED8, 65216 }, - { 0x2F0A, 65218 }, - { 0x2F2A, 65220 }, - { 0x2F43, 65222 }, - { 0x2F6B, 65224 }, - { 0x2F2B, 65226 }, - { 0x2F6E, 65228 }, - { 0x2F6F, 65230 }, - { 0x2F44, 65232 }, - { 0x2F72, 65234 }, - { 0x2F46, 65236 }, - { 0x2F47, 65238 }, - { 0x2F48, 65242 }, - { 0x2F2D, 65247 }, - { 0x2EC0, 65249 }, - { 0x2E9F, 65251 }, - { 0x2E9C, 65253 }, - { 0x2ECA, 65255 }, - { 0x2EBE, 65257 }, - { 0x2EBF, 65259 }, - { 0x2024, 65261 }, - { 0x7CD2, 65263 }, - { 0x7CD0, 65268 }, - { 0x7CD1, 65272 }, - { 0x2322, 65276 }, - { 0x2EA9, 65279 }, - { 0x2EDB, 65281 }, - { 0x2E9E, 65283 }, - { 0x2F22, 65285 }, - { 0x2EAD, 65287 }, - { 0x26F9, 65289 }, - { 0x2EE4, 65294 }, - { 0x2EE2, 65296 }, - { 0x2EC1, 65298 }, - { 0x2EA2, 65300 }, - { 0x2EA3, 65302 }, - { 0x2ED0, 65304 }, - { 0x2EC9, 65306 }, - { 0x2EEE, 65308 }, - { 0x2EEB, 65310 }, - { 0x1E71, 65312 }, - { 0x273E, 65314 }, - { 0x2213, 65319 }, - { 0x2741, 65324 }, - { 0x2216, 65331 }, - { 0x2214, 65338 }, - { 0x21D3, 65343 }, - { 0x2215, 65351 }, - { 0x21D4, 65358 }, - { 0x2740, 65366 }, - { 0x273F, 65373 }, - { 0x21D5, 65378 }, - { 0x21D1, 65383 }, - { 0x260C, 65387 }, - { 0x21D0, 65391 }, - { 0x21D2, 65395 }, - { 0x2EE9, 65400 }, - { 0x2E9B, 65402 }, - { 0x2ED5, 65404 }, - { 0x2EBD, 65406 }, - { 0x2EA1, 65408 }, - { 0x2EA8, 65410 }, - { 0x2EA7, 65412 }, - { 0x2EAA, 65414 }, - { 0x2EC3, 65416 }, - { 0x2EDA, 65418 }, - { 0x2ECE, 65420 }, - { 0x1EE6, 65422 }, - { 0x1F3B, 65425 }, - { 0x1EE8, 65432 }, - { 0x2EA4, 65438 }, - { 0x2EB5, 65440 }, - { 0x2EB7, 65442 }, - { 0x2EDE, 65444 }, - { 0x2EDD, 65446 }, - { 0x2EC2, 65448 }, - { 0x2EC5, 65450 }, - { 0x2ED4, 65452 }, - { 0x2ED3, 65454 }, - { 0x2ED9, 65456 }, - { 0x26FA, 65458 }, - { 0x2EEC, 65463 }, - { 0x2EBB, 65465 }, - { 0x2EBC, 65467 }, - { 0x2EF0, 65469 }, - { 0x2EE7, 65471 }, - { 0x2EE8, 65473 }, - { 0x2E99, 65475 }, - { 0x2E9A, 65477 }, - { 0x2ED7, 65479 }, - { 0x2EB1, 65481 }, - { 0x2ED2, 65483 }, - { 0x2ECC, 65485 }, - { 0x2E9D, 65487 }, - { 0x2EB6, 65489 }, - { 0x2EAB, 65491 }, - { 0x2EDF, 65493 }, - { 0x2ED1, 65495 }, - { 0x2EC8, 65497 }, - { 0x2ED6, 65499 }, - { 0x7CC3, 65501 }, - { 0x7CC4, 65506 }, - { 0x7CC6, 65511 }, - { 0x7CC5, 65516 }, - { 0x933B, 65521 }, - { 0x2EC6, 65523 }, - { 0x2EAC, 65525 }, - { 0x2EA5, 65527 }, - { 0x2EA6, 65529 }, - { 0x2EB4, 65531 }, - { 0x1F68, 65533 }, - { 0x2EDC, 65535 }, - { 0x2EE0, 65537 }, - { 0x2EE6, 65539 }, - { 0x2EE5, 65541 }, - { 0x2EE1, 65543 }, - { 0x2EEA, 65545 }, - { 0x2EED, 65547 }, - { 0x2EB8, 65549 }, - { 0x2EBA, 65551 }, - { 0x7CD3, 65553 }, - { 0x2ECD, 65555 }, - { 0x2EA0, 65557 }, - { 0x8E73, 65559 }, - { 0x2ECB, 65562 }, - { 0x1EE7, 65564 }, - { 0x1F3C, 65567 }, - { 0x1EE9, 65574 }, - { 0x2EC4, 65580 }, - { 0x27F9, 65582 }, - { 0x2EEF, 65585 }, - { 0x2EB9, 65587 }, - { 0x2EB2, 65589 }, - { 0x2ECF, 65591 }, - { 0x2EB0, 65593 }, - { 0x2EB3, 65595 }, - { 0x2EE3, 65597 }, - { 0x2EC7, 65599 }, - { 0x2EAE, 65601 }, - { 0x2F18, 65603 }, - { 0x2EAF, 65605 }, - { 0x91B0, 65607 }, - { 0x2355, 65610 }, - { 0x8F4C, 65614 }, - { 0x1ED9, 65616 }, - { 0x1EDD, 65618 }, - { 0x26EF, 65623 }, - { 0x1EE1, 65631 }, - { 0x26F7, 65637 }, - { 0x26F3, 65643 }, - { 0x26F5, 65648 }, - { 0x26F1, 65654 }, - { 0x26E9, 65659 }, - { 0x26EB, 65662 }, - { 0x26ED, 65667 }, - { 0x2701, 65672 }, - { 0x26FF, 65675 }, - { 0x25A5, 65678 }, - { 0x8EBA, 65682 }, - { 0x8F77, 65685 }, - { 0x379E, 65686 }, - { 0x37A3, 65690 }, - { 0x379A, 65694 }, - { 0x37C4, 65698 }, - { 0x37BB, 65703 }, - { 0x37BE, 65708 }, - { 0x37BC, 65713 }, - { 0x37BD, 65718 }, - { 0x37BF, 65723 }, - { 0x3798, 65728 }, - { 0x379C, 65732 }, - { 0x3799, 65736 }, - { 0x379D, 65740 }, - { 0x379B, 65744 }, - { 0x37B3, 65748 }, - { 0x37A4, 65752 }, - { 0x37AE, 65756 }, - { 0x37A1, 65760 }, - { 0x37BA, 65764 }, - { 0x37A6, 65768 }, - { 0x379F, 65772 }, - { 0x37B7, 65776 }, - { 0x37B5, 65780 }, - { 0x37B0, 65784 }, - { 0x37B1, 65788 }, - { 0x37B6, 65792 }, - { 0x37B9, 65796 }, - { 0x37AC, 65800 }, - { 0x37B4, 65804 }, - { 0x37A5, 65808 }, - { 0x37AA, 65812 }, - { 0x37AF, 65816 }, - { 0x37A2, 65820 }, - { 0x37A7, 65824 }, - { 0x37A0, 65828 }, - { 0x37B2, 65832 }, - { 0x37B8, 65836 }, - { 0x37AD, 65840 }, - { 0x37A8, 65844 }, - { 0x37AB, 65848 }, - { 0x37A9, 65852 }, - { 0x37C0, 65856 }, - { 0x37C1, 65860 }, - { 0x37C2, 65864 }, - { 0x37C3, 65868 }, - { 0x205A, 65872 }, - { 0x2070, 65877 }, - { 0x205B, 65882 }, - { 0x206E, 65887 }, - { 0x205E, 65893 }, - { 0x2067, 65896 }, - { 0x2073, 65901 }, - { 0x2063, 65905 }, - { 0x2061, 65909 }, - { 0x2057, 65913 }, - { 0x27C0, 65916 }, - { 0x2076, 65921 }, - { 0x2074, 65925 }, - { 0x90F8, 65929 }, - { 0x2066, 65933 }, - { 0x2065, 65937 }, - { 0x2077, 65941 }, - { 0x2059, 65944 }, - { 0x2058, 65949 }, - { 0x206F, 65954 }, - { 0x2078, 65957 }, - { 0x207C, 65960 }, - { 0x2080, 65965 }, - { 0x207E, 65971 }, - { 0x207F, 65978 }, - { 0x2068, 65985 }, - { 0x2069, 65990 }, - { 0x206B, 65995 }, - { 0x206A, 66000 }, - { 0x2072, 66005 }, - { 0x2075, 66008 }, - { 0x205C, 66012 }, - { 0x207B, 66015 }, - { 0x2064, 66018 }, - { 0x206C, 66022 }, - { 0x2062, 66026 }, - { 0x205F, 66030 }, - { 0x1DAA, 66033 }, - { 0x2060, 66037 }, - { 0x2071, 66041 }, - { 0x207D, 66044 }, - { 0x205D, 66049 }, - { 0x206D, 66052 }, - { 0x0699, 66056 }, - { 0x06DB, 66060 }, - { 0x06DC, 66065 }, - { 0x069F, 66070 }, - { 0x06A0, 66074 }, - { 0x06D5, 66078 }, - { 0x06D6, 66081 }, - { 0x06D2, 66084 }, - { 0x06D3, 66087 }, - { 0x06E1, 66090 }, - { 0x06CE, 66092 }, - { 0x06CF, 66095 }, - { 0x06D7, 66098 }, - { 0x06DD, 66100 }, - { 0x06DE, 66104 }, - { 0x06D1, 66108 }, - { 0x06D0, 66112 }, - { 0x06BD, 66116 }, - { 0x06AF, 66119 }, - { 0x06BE, 66122 }, - { 0x06B9, 66125 }, - { 0x06BA, 66128 }, - { 0x06C4, 66131 }, - { 0x06B0, 66134 }, - { 0x06AA, 66137 }, - { 0x06B2, 66140 }, - { 0x06B7, 66143 }, - { 0x06C1, 66146 }, - { 0x06C2, 66149 }, - { 0x06C3, 66152 }, - { 0x06B3, 66155 }, - { 0x06B4, 66158 }, - { 0x06B5, 66162 }, - { 0x06B6, 66165 }, - { 0x06B1, 66169 }, - { 0x06A8, 66172 }, - { 0x06BC, 66175 }, - { 0x06AB, 66179 }, - { 0x06AC, 66182 }, - { 0x06C0, 66186 }, - { 0x06AD, 66189 }, - { 0x06B8, 66192 }, - { 0x06AE, 66195 }, - { 0x06C5, 66200 }, - { 0x06C6, 66204 }, - { 0x06C7, 66208 }, - { 0x06BB, 66212 }, - { 0x06E5, 66215 }, - { 0x06E4, 66219 }, - { 0x06E3, 66223 }, - { 0x06BF, 66227 }, - { 0x07E1, 66231 }, - { 0x07E7, 66235 }, - { 0x07E6, 66239 }, - { 0x07E8, 66243 }, - { 0x07E0, 66247 }, - { 0x07E4, 66251 }, - { 0x07E2, 66255 }, - { 0x07EA, 66259 }, - { 0x07E3, 66263 }, - { 0x07E9, 66267 }, - { 0x07E5, 66271 }, - { 0x06A9, 66275 }, - { 0x06C8, 66279 }, - { 0x06C9, 66282 }, - { 0x06CA, 66285 }, - { 0x06CB, 66288 }, - { 0x06CC, 66291 }, - { 0x06CD, 66294 }, - { 0x06E2, 66297 }, - { 0x06DF, 66299 }, - { 0x06E0, 66303 }, - { 0x06D8, 66307 }, - { 0x06A4, 66310 }, - { 0x06A5, 66313 }, - { 0x06A6, 66316 }, - { 0x06DA, 66319 }, - { 0x06D9, 66321 }, - { 0x069B, 66323 }, - { 0x069D, 66327 }, - { 0x06A2, 66330 }, - { 0x06A2, 66335 }, - { 0x069E, 66340 }, - { 0x06A3, 66343 }, - { 0x06D4, 66345 }, - { 0x069A, 66348 }, - { 0x069C, 66352 }, - { 0x06A1, 66355 }, - { 0x06A7, 66360 }, - { 0x95E5, 66363 }, - { 0x723B, 66364 }, - { 0x7240, 66367 }, - { 0x723C, 66370 }, - { 0x723F, 66373 }, - { 0x723E, 66376 }, - { 0x7243, 66379 }, - { 0x723A, 66382 }, - { 0x7242, 66385 }, - { 0x7241, 66388 }, - { 0x723D, 66391 }, - { 0x71F0, 66394 }, - { 0x71F1, 66397 }, - { 0x71F2, 66400 }, - { 0x71EF, 66403 }, - { 0x7225, 66406 }, - { 0x7230, 66409 }, - { 0x722C, 66412 }, - { 0x71F8, 66415 }, - { 0x71F9, 66418 }, - { 0x71FA, 66421 }, - { 0x71F7, 66424 }, - { 0x7236, 66427 }, - { 0x721D, 66430 }, - { 0x7228, 66433 }, - { 0x71FC, 66436 }, - { 0x71FD, 66439 }, - { 0x71FE, 66442 }, - { 0x71FB, 66445 }, - { 0x721B, 66448 }, - { 0x7229, 66451 }, - { 0x7226, 66454 }, - { 0x7218, 66457 }, - { 0x7219, 66460 }, - { 0x721A, 66463 }, - { 0x7217, 66466 }, - { 0x7227, 66469 }, - { 0x71EC, 66472 }, - { 0x71ED, 66475 }, - { 0x71EE, 66478 }, - { 0x71EB, 66481 }, - { 0x7222, 66484 }, - { 0x722D, 66487 }, - { 0x721F, 66490 }, - { 0x722B, 66493 }, - { 0x7200, 66496 }, - { 0x7201, 66499 }, - { 0x7202, 66502 }, - { 0x71FF, 66505 }, - { 0x71F4, 66508 }, - { 0x71F5, 66511 }, - { 0x71F6, 66514 }, - { 0x71F3, 66517 }, - { 0x7221, 66520 }, - { 0x7235, 66523 }, - { 0x7220, 66526 }, - { 0x7239, 66529 }, - { 0x7204, 66532 }, - { 0x7205, 66535 }, - { 0x7206, 66538 }, - { 0x7203, 66541 }, - { 0x7238, 66544 }, - { 0x7237, 66547 }, - { 0x7232, 66550 }, - { 0x722A, 66553 }, - { 0x721C, 66556 }, - { 0x721E, 66559 }, - { 0x722E, 66562 }, - { 0x7223, 66565 }, - { 0x7224, 66568 }, - { 0x722F, 66571 }, - { 0x7234, 66574 }, - { 0x7231, 66577 }, - { 0x720F, 66580 }, - { 0x7211, 66583 }, - { 0x7212, 66586 }, - { 0x7210, 66589 }, - { 0x7208, 66592 }, - { 0x7209, 66595 }, - { 0x720A, 66598 }, - { 0x7207, 66601 }, - { 0x7233, 66604 }, - { 0x720C, 66607 }, - { 0x7214, 66611 }, - { 0x7215, 66614 }, - { 0x7216, 66617 }, - { 0x7213, 66620 }, - { 0x720B, 66623 }, - { 0x720E, 66627 }, - { 0x720D, 66631 }, - { 0x7411, 66635 }, - { 0x7418, 66638 }, - { 0x7419, 66640 }, - { 0x741A, 66642 }, - { 0x741B, 66644 }, - { 0x741C, 66646 }, - { 0x741D, 66648 }, - { 0x741E, 66650 }, - { 0x741F, 66652 }, - { 0x7420, 66654 }, - { 0x7421, 66656 }, - { 0x7422, 66658 }, - { 0x7423, 66660 }, - { 0x7424, 66662 }, - { 0x7425, 66664 }, - { 0x7426, 66666 }, - { 0x7427, 66668 }, - { 0x7428, 66670 }, - { 0x7429, 66672 }, - { 0x742A, 66674 }, - { 0x742B, 66676 }, - { 0x742C, 66678 }, - { 0x742D, 66680 }, - { 0x742E, 66682 }, - { 0x742F, 66684 }, - { 0x7430, 66686 }, - { 0x7431, 66688 }, - { 0x7432, 66690 }, - { 0x7433, 66692 }, - { 0x7434, 66694 }, - { 0x7435, 66696 }, - { 0x7436, 66698 }, - { 0x7437, 66700 }, - { 0x7438, 66702 }, - { 0x7439, 66704 }, - { 0x743A, 66706 }, - { 0x743B, 66708 }, - { 0x743C, 66710 }, - { 0x743D, 66712 }, - { 0x743E, 66714 }, - { 0x743F, 66716 }, - { 0x7440, 66718 }, - { 0x7441, 66720 }, - { 0x7442, 66722 }, - { 0x7443, 66724 }, - { 0x7444, 66726 }, - { 0x7445, 66728 }, - { 0x7446, 66730 }, - { 0x7447, 66732 }, - { 0x7448, 66734 }, - { 0x7449, 66736 }, - { 0x744A, 66738 }, - { 0x744B, 66740 }, - { 0x744C, 66742 }, - { 0x744D, 66744 }, - { 0x744E, 66746 }, - { 0x744F, 66748 }, - { 0x7450, 66750 }, - { 0x7451, 66752 }, - { 0x7452, 66754 }, - { 0x7453, 66756 }, - { 0x7454, 66758 }, - { 0x7455, 66760 }, - { 0x7456, 66762 }, - { 0x7457, 66764 }, - { 0x7458, 66766 }, - { 0x7459, 66768 }, - { 0x745A, 66770 }, - { 0x745B, 66772 }, - { 0x745C, 66774 }, - { 0x745D, 66776 }, - { 0x745E, 66778 }, - { 0x745F, 66780 }, - { 0x7460, 66782 }, - { 0x7461, 66784 }, - { 0x7462, 66786 }, - { 0x7463, 66788 }, - { 0x7464, 66790 }, - { 0x7465, 66792 }, - { 0x7466, 66794 }, - { 0x7467, 66796 }, - { 0x7468, 66798 }, - { 0x7469, 66800 }, - { 0x746A, 66802 }, - { 0x746B, 66804 }, - { 0x746C, 66806 }, - { 0x746D, 66808 }, - { 0x746E, 66810 }, - { 0x746F, 66812 }, - { 0x7470, 66814 }, - { 0x7471, 66816 }, - { 0x7472, 66818 }, - { 0x7473, 66820 }, - { 0x7474, 66822 }, - { 0x7475, 66824 }, - { 0x7476, 66826 }, - { 0x7477, 66828 }, - { 0x7478, 66830 }, - { 0x7479, 66832 }, - { 0x747A, 66834 }, - { 0x747B, 66836 }, - { 0x747C, 66838 }, - { 0x747D, 66840 }, - { 0x747E, 66842 }, - { 0x747F, 66844 }, - { 0x7480, 66846 }, - { 0x7481, 66848 }, - { 0x7482, 66850 }, - { 0x7483, 66852 }, - { 0x7484, 66854 }, - { 0x7485, 66856 }, - { 0x7486, 66858 }, - { 0x7487, 66860 }, - { 0x7488, 66862 }, - { 0x7489, 66864 }, - { 0x748A, 66866 }, - { 0x748B, 66868 }, - { 0x748C, 66870 }, - { 0x748D, 66872 }, - { 0x748E, 66874 }, - { 0x748F, 66876 }, - { 0x7490, 66878 }, - { 0x7491, 66880 }, - { 0x7492, 66882 }, - { 0x7493, 66884 }, - { 0x7494, 66886 }, - { 0x7495, 66888 }, - { 0x7496, 66890 }, - { 0x7497, 66892 }, - { 0x7498, 66894 }, - { 0x7499, 66896 }, - { 0x749A, 66898 }, - { 0x749B, 66900 }, - { 0x749C, 66902 }, - { 0x749D, 66904 }, - { 0x749E, 66906 }, - { 0x749F, 66908 }, - { 0x74A0, 66910 }, - { 0x74A1, 66912 }, - { 0x74A2, 66914 }, - { 0x74A3, 66916 }, - { 0x74A4, 66918 }, - { 0x74A5, 66920 }, - { 0x74A6, 66922 }, - { 0x74A7, 66924 }, - { 0x74A8, 66926 }, - { 0x74A9, 66928 }, - { 0x74AA, 66930 }, - { 0x74AB, 66932 }, - { 0x74AC, 66934 }, - { 0x74AD, 66936 }, - { 0x74AE, 66938 }, - { 0x74AF, 66940 }, - { 0x74B0, 66942 }, - { 0x74B1, 66944 }, - { 0x74B2, 66946 }, - { 0x74B3, 66948 }, - { 0x74B4, 66950 }, - { 0x74B5, 66952 }, - { 0x74B6, 66954 }, - { 0x74B7, 66956 }, - { 0x74B8, 66958 }, - { 0x74B9, 66960 }, - { 0x74BA, 66962 }, - { 0x74BB, 66964 }, - { 0x74BC, 66966 }, - { 0x74BD, 66968 }, - { 0x74BE, 66970 }, - { 0x74BF, 66972 }, - { 0x74C0, 66974 }, - { 0x74C1, 66976 }, - { 0x74C2, 66978 }, - { 0x74C3, 66980 }, - { 0x74C4, 66982 }, - { 0x74C5, 66984 }, - { 0x74C6, 66986 }, - { 0x74C7, 66988 }, - { 0x74C8, 66990 }, - { 0x74C9, 66992 }, - { 0x74CA, 66994 }, - { 0x74CB, 66996 }, - { 0x74CC, 66998 }, - { 0x74CD, 67000 }, - { 0x74CE, 67002 }, - { 0x74CF, 67004 }, - { 0x74D0, 67006 }, - { 0x74D1, 67008 }, - { 0x74D2, 67010 }, - { 0x74D3, 67012 }, - { 0x74D4, 67014 }, - { 0x74D5, 67016 }, - { 0x74D6, 67018 }, - { 0x74D7, 67020 }, - { 0x74D8, 67022 }, - { 0x74D9, 67024 }, - { 0x74DA, 67026 }, - { 0x74DB, 67028 }, - { 0x74DC, 67030 }, - { 0x74DD, 67032 }, - { 0x74DE, 67034 }, - { 0x74DF, 67036 }, - { 0x74E0, 67038 }, - { 0x74E1, 67040 }, - { 0x74E2, 67042 }, - { 0x74E3, 67044 }, - { 0x74E4, 67046 }, - { 0x74E5, 67048 }, - { 0x74E6, 67050 }, - { 0x74E7, 67052 }, - { 0x74E8, 67054 }, - { 0x74E9, 67056 }, - { 0x74EA, 67058 }, - { 0x74EB, 67060 }, - { 0x74EC, 67062 }, - { 0x74ED, 67064 }, - { 0x74EE, 67066 }, - { 0x74EF, 67068 }, - { 0x74F0, 67070 }, - { 0x74F1, 67072 }, - { 0x74F2, 67074 }, - { 0x74F3, 67076 }, - { 0x74F4, 67078 }, - { 0x74F5, 67080 }, - { 0x74F6, 67082 }, - { 0x74F7, 67084 }, - { 0x74F8, 67086 }, - { 0x74F9, 67088 }, - { 0x74FA, 67090 }, - { 0x74FB, 67092 }, - { 0x74FC, 67094 }, - { 0x74FD, 67096 }, - { 0x74FE, 67098 }, - { 0x74FF, 67100 }, - { 0x7500, 67102 }, - { 0x7501, 67104 }, - { 0x7502, 67106 }, - { 0x7503, 67108 }, - { 0x7504, 67110 }, - { 0x7505, 67112 }, - { 0x7506, 67114 }, - { 0x7507, 67116 }, - { 0x7508, 67118 }, - { 0x7509, 67120 }, - { 0x750A, 67122 }, - { 0x750B, 67124 }, - { 0x750C, 67126 }, - { 0x750D, 67128 }, - { 0x750E, 67130 }, - { 0x750F, 67132 }, - { 0x7510, 67134 }, - { 0x7511, 67136 }, - { 0x7512, 67138 }, - { 0x7513, 67140 }, - { 0x7514, 67142 }, - { 0x7515, 67144 }, - { 0x7516, 67146 }, - { 0x7517, 67148 }, - { 0x7518, 67150 }, - { 0x7519, 67152 }, - { 0x751A, 67154 }, - { 0x751B, 67156 }, - { 0x751C, 67158 }, - { 0x751D, 67160 }, - { 0x751E, 67162 }, - { 0x751F, 67164 }, - { 0x7520, 67166 }, - { 0x7521, 67168 }, - { 0x7522, 67170 }, - { 0x7523, 67172 }, - { 0x7524, 67174 }, - { 0x7525, 67176 }, - { 0x7526, 67178 }, - { 0x7527, 67180 }, - { 0x7528, 67182 }, - { 0x7529, 67184 }, - { 0x752A, 67186 }, - { 0x752B, 67188 }, - { 0x752C, 67190 }, - { 0x752D, 67192 }, - { 0x752E, 67194 }, - { 0x752F, 67196 }, - { 0x7530, 67198 }, - { 0x7531, 67200 }, - { 0x7532, 67202 }, - { 0x7533, 67204 }, - { 0x7534, 67206 }, - { 0x7535, 67208 }, - { 0x7536, 67210 }, - { 0x7537, 67212 }, - { 0x7538, 67214 }, - { 0x7539, 67216 }, - { 0x753A, 67218 }, - { 0x753B, 67220 }, - { 0x753C, 67222 }, - { 0x753D, 67224 }, - { 0x753E, 67226 }, - { 0x753F, 67228 }, - { 0x7540, 67230 }, - { 0x7541, 67232 }, - { 0x7542, 67234 }, - { 0x7543, 67236 }, - { 0x7544, 67238 }, - { 0x7545, 67240 }, - { 0x7546, 67242 }, - { 0x7547, 67244 }, - { 0x7548, 67246 }, - { 0x7549, 67248 }, - { 0x754A, 67250 }, - { 0x754B, 67252 }, - { 0x754C, 67254 }, - { 0x754D, 67256 }, - { 0x754E, 67258 }, - { 0x754F, 67260 }, - { 0x7550, 67262 }, - { 0x7551, 67264 }, - { 0x7552, 67266 }, - { 0x7553, 67268 }, - { 0x7554, 67270 }, - { 0x7555, 67272 }, - { 0x7556, 67274 }, - { 0x7557, 67276 }, - { 0x7558, 67278 }, - { 0x7559, 67280 }, - { 0x755A, 67282 }, - { 0x755B, 67284 }, - { 0x755C, 67286 }, - { 0x755D, 67288 }, - { 0x755E, 67290 }, - { 0x755F, 67292 }, - { 0x7560, 67294 }, - { 0x7561, 67296 }, - { 0x7562, 67298 }, - { 0x7563, 67300 }, - { 0x7564, 67302 }, - { 0x7565, 67304 }, - { 0x7566, 67306 }, - { 0x7567, 67308 }, - { 0x7568, 67310 }, - { 0x7569, 67312 }, - { 0x756A, 67314 }, - { 0x756B, 67316 }, - { 0x756C, 67318 }, - { 0x756D, 67320 }, - { 0x756E, 67322 }, - { 0x756F, 67324 }, - { 0x7570, 67326 }, - { 0x7571, 67328 }, - { 0x7572, 67330 }, - { 0x7573, 67332 }, - { 0x7574, 67334 }, - { 0x7575, 67336 }, - { 0x7576, 67338 }, - { 0x7577, 67340 }, - { 0x7578, 67342 }, - { 0x7579, 67344 }, - { 0x757A, 67346 }, - { 0x757B, 67348 }, - { 0x757C, 67350 }, - { 0x757D, 67352 }, - { 0x757E, 67354 }, - { 0x757F, 67356 }, - { 0x7580, 67358 }, - { 0x7581, 67360 }, - { 0x7582, 67362 }, - { 0x7583, 67364 }, - { 0x7584, 67366 }, - { 0x7585, 67368 }, - { 0x7586, 67370 }, - { 0x7587, 67372 }, - { 0x7588, 67374 }, - { 0x7589, 67376 }, - { 0x758A, 67378 }, - { 0x758B, 67380 }, - { 0x758C, 67382 }, - { 0x758D, 67384 }, - { 0x758E, 67386 }, - { 0x758F, 67388 }, - { 0x7590, 67390 }, - { 0x7591, 67392 }, - { 0x7592, 67394 }, - { 0x7593, 67396 }, - { 0x7594, 67398 }, - { 0x7595, 67400 }, - { 0x7596, 67402 }, - { 0x7597, 67404 }, - { 0x7598, 67406 }, - { 0x7599, 67408 }, - { 0x759A, 67410 }, - { 0x759B, 67412 }, - { 0x759C, 67414 }, - { 0x759D, 67416 }, - { 0x759E, 67418 }, - { 0x759F, 67420 }, - { 0x75A0, 67422 }, - { 0x75A1, 67424 }, - { 0x75A2, 67426 }, - { 0x75A3, 67428 }, - { 0x75A4, 67430 }, - { 0x75A5, 67432 }, - { 0x75A6, 67434 }, - { 0x75A7, 67436 }, - { 0x75A8, 67438 }, - { 0x75A9, 67440 }, - { 0x75AA, 67442 }, - { 0x75AB, 67444 }, - { 0x75AC, 67446 }, - { 0x75AD, 67448 }, - { 0x75AE, 67450 }, - { 0x75AF, 67452 }, - { 0x75B0, 67454 }, - { 0x75B1, 67456 }, - { 0x75B2, 67458 }, - { 0x75B3, 67460 }, - { 0x75B4, 67462 }, - { 0x75B5, 67464 }, - { 0x75B6, 67466 }, - { 0x75B7, 67468 }, - { 0x75B8, 67470 }, - { 0x75B9, 67472 }, - { 0x75BA, 67474 }, - { 0x75BB, 67476 }, - { 0x75BC, 67478 }, - { 0x75BD, 67480 }, - { 0x75BE, 67482 }, - { 0x75BF, 67484 }, - { 0x75C0, 67486 }, - { 0x75C1, 67488 }, - { 0x75C2, 67490 }, - { 0x75C3, 67492 }, - { 0x75C4, 67494 }, - { 0x75C5, 67496 }, - { 0x75C6, 67498 }, - { 0x75C7, 67500 }, - { 0x75C8, 67502 }, - { 0x75C9, 67504 }, - { 0x75CA, 67506 }, - { 0x75CB, 67508 }, - { 0x75CC, 67510 }, - { 0x75CD, 67512 }, - { 0x75CE, 67514 }, - { 0x75CF, 67516 }, - { 0x75D0, 67518 }, - { 0x75D1, 67520 }, - { 0x75D2, 67522 }, - { 0x75D3, 67524 }, - { 0x75D4, 67526 }, - { 0x75D5, 67528 }, - { 0x75D6, 67530 }, - { 0x75D7, 67532 }, - { 0x75D8, 67534 }, - { 0x75D9, 67536 }, - { 0x75DA, 67538 }, - { 0x75DB, 67540 }, - { 0x75DC, 67542 }, - { 0x75DD, 67544 }, - { 0x75DE, 67546 }, - { 0x75DF, 67548 }, - { 0x75E0, 67550 }, - { 0x75E1, 67552 }, - { 0x75E2, 67554 }, - { 0x75E3, 67556 }, - { 0x75E4, 67558 }, - { 0x75E5, 67560 }, - { 0x75E6, 67562 }, - { 0x75E7, 67564 }, - { 0x75E8, 67566 }, - { 0x75E9, 67568 }, - { 0x75EA, 67570 }, - { 0x75EB, 67572 }, - { 0x75EC, 67574 }, - { 0x75ED, 67576 }, - { 0x75EE, 67578 }, - { 0x75EF, 67580 }, - { 0x75F0, 67582 }, - { 0x75F1, 67584 }, - { 0x75F2, 67586 }, - { 0x75F3, 67588 }, - { 0x75F4, 67590 }, - { 0x75F5, 67592 }, - { 0x75F6, 67594 }, - { 0x75F7, 67596 }, - { 0x75F8, 67598 }, - { 0x75F9, 67600 }, - { 0x75FA, 67602 }, - { 0x75FB, 67604 }, - { 0x75FC, 67606 }, - { 0x75FD, 67608 }, - { 0x75FE, 67610 }, - { 0x75FF, 67612 }, - { 0x7600, 67614 }, - { 0x7601, 67616 }, - { 0x7602, 67618 }, - { 0x7603, 67620 }, - { 0x7604, 67622 }, - { 0x7605, 67624 }, - { 0x7606, 67626 }, - { 0x7607, 67628 }, - { 0x7608, 67630 }, - { 0x7609, 67632 }, - { 0x760A, 67634 }, - { 0x760B, 67636 }, - { 0x760C, 67638 }, - { 0x760D, 67640 }, - { 0x760E, 67642 }, - { 0x760F, 67644 }, - { 0x7610, 67646 }, - { 0x7611, 67648 }, - { 0x7612, 67650 }, - { 0x7613, 67652 }, - { 0x7614, 67654 }, - { 0x7615, 67656 }, - { 0x7616, 67658 }, - { 0x7617, 67660 }, - { 0x7618, 67662 }, - { 0x7619, 67664 }, - { 0x761A, 67666 }, - { 0x761B, 67668 }, - { 0x761C, 67670 }, - { 0x761D, 67672 }, - { 0x761E, 67674 }, - { 0x761F, 67676 }, - { 0x7620, 67678 }, - { 0x7621, 67680 }, - { 0x7622, 67682 }, - { 0x7623, 67684 }, - { 0x7624, 67686 }, - { 0x7625, 67688 }, - { 0x7626, 67690 }, - { 0x7627, 67692 }, - { 0x7628, 67694 }, - { 0x7629, 67696 }, - { 0x762A, 67698 }, - { 0x762B, 67700 }, - { 0x762C, 67702 }, - { 0x762D, 67704 }, - { 0x762E, 67706 }, - { 0x762F, 67708 }, - { 0x7630, 67710 }, - { 0x7631, 67712 }, - { 0x7632, 67714 }, - { 0x7633, 67716 }, - { 0x7634, 67718 }, - { 0x7635, 67720 }, - { 0x7636, 67722 }, - { 0x7637, 67724 }, - { 0x7638, 67726 }, - { 0x7639, 67728 }, - { 0x763A, 67730 }, - { 0x763B, 67732 }, - { 0x763C, 67734 }, - { 0x763D, 67736 }, - { 0x763E, 67738 }, - { 0x763F, 67740 }, - { 0x7640, 67742 }, - { 0x7641, 67744 }, - { 0x7642, 67746 }, - { 0x7643, 67748 }, - { 0x7644, 67750 }, - { 0x7645, 67752 }, - { 0x7646, 67754 }, - { 0x7647, 67756 }, - { 0x7648, 67758 }, - { 0x7649, 67760 }, - { 0x764A, 67762 }, - { 0x764B, 67764 }, - { 0x764C, 67766 }, - { 0x764D, 67768 }, - { 0x764E, 67770 }, - { 0x764F, 67772 }, - { 0x7650, 67774 }, - { 0x7651, 67776 }, - { 0x7652, 67778 }, - { 0x7653, 67780 }, - { 0x7654, 67782 }, - { 0x7655, 67784 }, - { 0x7656, 67786 }, - { 0x7657, 67788 }, - { 0x7658, 67790 }, - { 0x7659, 67792 }, - { 0x765A, 67794 }, - { 0x765B, 67796 }, - { 0x765C, 67798 }, - { 0x765D, 67800 }, - { 0x765E, 67802 }, - { 0x765F, 67804 }, - { 0x7660, 67806 }, - { 0x7661, 67808 }, - { 0x7662, 67810 }, - { 0x7663, 67812 }, - { 0x7664, 67814 }, - { 0x7665, 67816 }, - { 0x7666, 67818 }, - { 0x7667, 67820 }, - { 0x7668, 67822 }, - { 0x7669, 67824 }, - { 0x766A, 67826 }, - { 0x766B, 67828 }, - { 0x766C, 67830 }, - { 0x766D, 67832 }, - { 0x766E, 67834 }, - { 0x766F, 67836 }, - { 0x7670, 67838 }, - { 0x7671, 67840 }, - { 0x7672, 67842 }, - { 0x7673, 67844 }, - { 0x7674, 67846 }, - { 0x7675, 67848 }, - { 0x7676, 67850 }, - { 0x7677, 67852 }, - { 0x7678, 67854 }, - { 0x7679, 67856 }, - { 0x767A, 67858 }, - { 0x767B, 67860 }, - { 0x767C, 67862 }, - { 0x767D, 67864 }, - { 0x767E, 67866 }, - { 0x767F, 67868 }, - { 0x7680, 67870 }, - { 0x7681, 67872 }, - { 0x7682, 67874 }, - { 0x7683, 67876 }, - { 0x7684, 67878 }, - { 0x7685, 67880 }, - { 0x7686, 67882 }, - { 0x7687, 67884 }, - { 0x7688, 67886 }, - { 0x7689, 67888 }, - { 0x768A, 67890 }, - { 0x768B, 67892 }, - { 0x768C, 67894 }, - { 0x768D, 67896 }, - { 0x768E, 67898 }, - { 0x768F, 67900 }, - { 0x7690, 67902 }, - { 0x7691, 67904 }, - { 0x7692, 67906 }, - { 0x7693, 67908 }, - { 0x7694, 67910 }, - { 0x7695, 67912 }, - { 0x7696, 67914 }, - { 0x7697, 67916 }, - { 0x7698, 67918 }, - { 0x7699, 67920 }, - { 0x769A, 67922 }, - { 0x769B, 67924 }, - { 0x769C, 67926 }, - { 0x769D, 67928 }, - { 0x769E, 67930 }, - { 0x769F, 67932 }, - { 0x76A0, 67934 }, - { 0x76A1, 67936 }, - { 0x76A2, 67938 }, - { 0x76A3, 67940 }, - { 0x76A4, 67942 }, - { 0x76A5, 67944 }, - { 0x76A6, 67946 }, - { 0x76A7, 67948 }, - { 0x76A8, 67950 }, - { 0x76A9, 67952 }, - { 0x76AA, 67954 }, - { 0x76AB, 67956 }, - { 0x76AC, 67958 }, - { 0x76AD, 67960 }, - { 0x76AE, 67962 }, - { 0x76AF, 67964 }, - { 0x76B0, 67966 }, - { 0x76B1, 67968 }, - { 0x76B2, 67970 }, - { 0x76B3, 67972 }, - { 0x76B4, 67974 }, - { 0x76B5, 67976 }, - { 0x76B6, 67978 }, - { 0x76B7, 67980 }, - { 0x76B8, 67982 }, - { 0x76B9, 67984 }, - { 0x76BA, 67986 }, - { 0x76BB, 67988 }, - { 0x76BC, 67990 }, - { 0x76BD, 67992 }, - { 0x76BE, 67994 }, - { 0x76BF, 67996 }, - { 0x76C0, 67998 }, - { 0x76C1, 68000 }, - { 0x76C2, 68002 }, - { 0x76C3, 68004 }, - { 0x76C4, 68006 }, - { 0x76C5, 68008 }, - { 0x76C6, 68010 }, - { 0x76C7, 68012 }, - { 0x76C8, 68014 }, - { 0x76C9, 68016 }, - { 0x76CA, 68018 }, - { 0x76CB, 68020 }, - { 0x76CC, 68022 }, - { 0x76CD, 68024 }, - { 0x76CE, 68026 }, - { 0x76CF, 68028 }, - { 0x76D0, 68030 }, - { 0x76D1, 68032 }, - { 0x76D2, 68034 }, - { 0x76D3, 68036 }, - { 0x76D4, 68038 }, - { 0x76D5, 68040 }, - { 0x76D6, 68042 }, - { 0x76D7, 68044 }, - { 0x76D8, 68046 }, - { 0x76D9, 68048 }, - { 0x76DA, 68050 }, - { 0x76DB, 68052 }, - { 0x76DC, 68054 }, - { 0x76DD, 68056 }, - { 0x76DE, 68058 }, - { 0x76DF, 68060 }, - { 0x76E0, 68062 }, - { 0x76E1, 68064 }, - { 0x76E2, 68066 }, - { 0x76E3, 68068 }, - { 0x76E4, 68070 }, - { 0x76E5, 68072 }, - { 0x76E6, 68074 }, - { 0x76E7, 68076 }, - { 0x76E8, 68078 }, - { 0x76E9, 68080 }, - { 0x76EA, 68082 }, - { 0x76EB, 68084 }, - { 0x76EC, 68086 }, - { 0x76ED, 68088 }, - { 0x76EE, 68090 }, - { 0x76EF, 68092 }, - { 0x76F0, 68094 }, - { 0x76F1, 68096 }, - { 0x76F2, 68098 }, - { 0x76F3, 68100 }, - { 0x76F4, 68102 }, - { 0x76F5, 68104 }, - { 0x76F6, 68106 }, - { 0x76F7, 68108 }, - { 0x76F8, 68110 }, - { 0x76F9, 68112 }, - { 0x76FA, 68114 }, - { 0x76FB, 68116 }, - { 0x76FC, 68118 }, - { 0x76FD, 68120 }, - { 0x76FE, 68122 }, - { 0x76FF, 68124 }, - { 0x7700, 68126 }, - { 0x7701, 68128 }, - { 0x7702, 68130 }, - { 0x7703, 68132 }, - { 0x7704, 68134 }, - { 0x7705, 68136 }, - { 0x7706, 68138 }, - { 0x7707, 68140 }, - { 0x7708, 68142 }, - { 0x7709, 68144 }, - { 0x770A, 68146 }, - { 0x770B, 68148 }, - { 0x770C, 68150 }, - { 0x770D, 68152 }, - { 0x770E, 68154 }, - { 0x770F, 68156 }, - { 0x7710, 68158 }, - { 0x7711, 68160 }, - { 0x7712, 68162 }, - { 0x7713, 68164 }, - { 0x7714, 68166 }, - { 0x7715, 68168 }, - { 0x7716, 68170 }, - { 0x7717, 68172 }, - { 0x2275, 68174 }, - { 0x8F28, 68175 }, - { 0x95E7, 68178 }, - { 0x0AEB, 68179 }, - { 0x0ADA, 68183 }, - { 0x0B06, 68186 }, - { 0x0AE9, 68189 }, - { 0x0AFE, 68192 }, - { 0x0AA6, 68195 }, - { 0x0AA5, 68198 }, - { 0x0ADB, 68201 }, - { 0x0AA7, 68204 }, - { 0x0AA3, 68209 }, - { 0x0AA4, 68214 }, - { 0x0AF5, 68217 }, - { 0x0AFA, 68220 }, - { 0x0AF6, 68223 }, - { 0x0AF9, 68226 }, - { 0x0AF8, 68229 }, - { 0x0AFD, 68232 }, - { 0x0AF4, 68235 }, - { 0x0AFC, 68238 }, - { 0x0AFB, 68241 }, - { 0x0AF7, 68244 }, - { 0x0AE3, 68247 }, - { 0x0ADD, 68251 }, - { 0x0AE6, 68255 }, - { 0x0ADF, 68259 }, - { 0x0ADC, 68263 }, - { 0x0AE5, 68267 }, - { 0x0AE8, 68271 }, - { 0x0AE4, 68275 }, - { 0x0ADE, 68279 }, - { 0x0AE7, 68283 }, - { 0x0AE0, 68287 }, - { 0x0AF2, 68291 }, - { 0x0AE1, 68296 }, - { 0x0AF3, 68301 }, - { 0x0AE2, 68306 }, - { 0x0AEA, 68311 }, - { 0x0AA8, 68314 }, - { 0x0AB0, 68317 }, - { 0x0AAA, 68320 }, - { 0x0AB3, 68323 }, - { 0x0AAC, 68326 }, - { 0x0AA9, 68329 }, - { 0x0AB2, 68332 }, - { 0x0AB5, 68335 }, - { 0x0ACC, 68338 }, - { 0x0ABB, 68341 }, - { 0x0AC7, 68344 }, - { 0x0AB1, 68347 }, - { 0x0AB8, 68350 }, - { 0x0AD9, 68353 }, - { 0x0AAB, 68356 }, - { 0x0ABD, 68359 }, - { 0x0AB6, 68362 }, - { 0x0AD2, 68365 }, - { 0x0ACE, 68368 }, - { 0x0AC9, 68371 }, - { 0x0AB4, 68374 }, - { 0x0ACA, 68377 }, - { 0x0AD0, 68380 }, - { 0x0AD8, 68383 }, - { 0x0AC5, 68386 }, - { 0x0AAD, 68389 }, - { 0x0AD5, 68392 }, - { 0x0ACF, 68395 }, - { 0x0ACD, 68398 }, - { 0x0ABC, 68401 }, - { 0x0AC2, 68404 }, - { 0x0AC8, 68407 }, - { 0x0AED, 68410 }, - { 0x0AB9, 68413 }, - { 0x0ABE, 68416 }, - { 0x0AB7, 68419 }, - { 0x0AD3, 68422 }, - { 0x0ABA, 68425 }, - { 0x0AC4, 68428 }, - { 0x0ABF, 68431 }, - { 0x0ACB, 68434 }, - { 0x0AD1, 68437 }, - { 0x0AD6, 68440 }, - { 0x0AD7, 68443 }, - { 0x0AC6, 68446 }, - { 0x0AEC, 68449 }, - { 0x0AC0, 68452 }, - { 0x0AC3, 68455 }, - { 0x0AD4, 68458 }, - { 0x0AEE, 68461 }, - { 0x0AC1, 68464 }, - { 0x0AEF, 68467 }, - { 0x0AAF, 68471 }, - { 0x0AAE, 68475 }, - { 0x0AF1, 68479 }, - { 0x0AF0, 68483 }, - { 0x0B00, 68487 }, - { 0x0B03, 68496 }, - { 0x0B01, 68505 }, - { 0x0B04, 68514 }, - { 0x0AFF, 68523 }, - { 0x0B02, 68532 }, - { 0x0B05, 68541 }, - { 0x8F71, 68550 }, - { 0x0746, 68554 }, - { 0x0736, 68556 }, - { 0x0737, 68559 }, - { 0x071A, 68562 }, - { 0x0716, 68565 }, - { 0x0747, 68568 }, - { 0x0719, 68571 }, - { 0x072A, 68574 }, - { 0x0732, 68577 }, - { 0x0738, 68580 }, - { 0x072F, 68583 }, - { 0x0730, 68586 }, - { 0x0722, 68589 }, - { 0x072E, 68592 }, - { 0x071D, 68595 }, - { 0x0720, 68598 }, - { 0x0724, 68601 }, - { 0x071C, 68604 }, - { 0x0723, 68607 }, - { 0x071F, 68610 }, - { 0x0718, 68613 }, - { 0x073A, 68616 }, - { 0x0726, 68619 }, - { 0x071E, 68622 }, - { 0x073B, 68625 }, - { 0x0735, 68628 }, - { 0x0721, 68631 }, - { 0x0739, 68634 }, - { 0x0734, 68637 }, - { 0x0733, 68640 }, - { 0x0731, 68643 }, - { 0x0727, 68646 }, - { 0x072C, 68649 }, - { 0x072B, 68652 }, - { 0x0729, 68655 }, - { 0x0728, 68658 }, - { 0x072D, 68661 }, - { 0x0725, 68664 }, - { 0x071B, 68667 }, - { 0x0717, 68670 }, - { 0x073C, 68673 }, - { 0x0742, 68675 }, - { 0x073E, 68677 }, - { 0x0744, 68679 }, - { 0x0740, 68681 }, - { 0x073D, 68683 }, - { 0x073F, 68685 }, - { 0x0743, 68687 }, - { 0x0745, 68689 }, - { 0x0741, 68691 }, - { 0x9000, 68693 }, - { 0x9001, 68696 }, - { 0x8F5E, 68699 }, - { 0x4432, 68700 }, - { 0x443C, 68703 }, - { 0x4444, 68706 }, - { 0x444C, 68709 }, - { 0x4456, 68712 }, - { 0x445C, 68715 }, - { 0x4433, 68718 }, - { 0x4434, 68721 }, - { 0x4436, 68724 }, - { 0x4438, 68727 }, - { 0x443B, 68730 }, - { 0x443D, 68733 }, - { 0x443E, 68736 }, - { 0x4442, 68739 }, - { 0x4445, 68742 }, - { 0x445D, 68745 }, - { 0x4446, 68748 }, - { 0x4447, 68751 }, - { 0x4449, 68754 }, - { 0x444A, 68757 }, - { 0x4465, 68760 }, - { 0x444D, 68763 }, - { 0x444E, 68766 }, - { 0x444F, 68769 }, - { 0x4451, 68772 }, - { 0x4454, 68775 }, - { 0x4457, 68778 }, - { 0x4458, 68781 }, - { 0x445E, 68784 }, - { 0x4437, 68787 }, - { 0x443A, 68790 }, - { 0x4460, 68793 }, - { 0x4440, 68796 }, - { 0x4443, 68799 }, - { 0x4463, 68802 }, - { 0x4448, 68805 }, - { 0x4435, 68808 }, - { 0x4439, 68811 }, - { 0x443F, 68814 }, - { 0x4459, 68817 }, - { 0x4464, 68820 }, - { 0x4450, 68823 }, - { 0x4452, 68826 }, - { 0x4461, 68829 }, - { 0x4455, 68832 }, - { 0x445A, 68835 }, - { 0x445F, 68838 }, - { 0x4441, 68841 }, - { 0x444B, 68844 }, - { 0x445B, 68847 }, - { 0x4453, 68850 }, - { 0x4462, 68853 }, - { 0x9270, 68856 }, - { 0x8EF8, 68857 }, - { 0x8FF8, 68858 }, - { 0x2627, 68859 }, - { 0x2722, 68861 }, - { 0x1CB4, 68864 }, - { 0x1EA2, 68866 }, - { 0x2A41, 68868 }, - { 0x2723, 68870 }, - { 0x2724, 68873 }, - { 0x2727, 68876 }, - { 0x1E84, 68880 }, - { 0x2721, 68882 }, - { 0x1F01, 68888 }, - { 0x2720, 68893 }, - { 0x25AC, 68898 }, - { 0x2694, 68902 }, - { 0x2695, 68909 }, - { 0x8F79, 68916 }, - { 0x1D27, 68917 }, - { 0x94B1, 68919 }, - { 0x9142, 68920 }, - { 0x1F70, 68924 }, - { 0x25CE, 68927 }, - { 0x22F6, 68929 }, - { 0x27EB, 68933 }, - { 0x2A28, 68936 }, - { 0x1DE5, 68938 }, - { 0x1DE6, 68941 }, - { 0x1D84, 68944 }, - { 0x9209, 68949 }, - { 0x9207, 68954 }, - { 0x1DA9, 68959 }, - { 0x920A, 68962 }, - { 0x9208, 68967 }, - { 0x22F5, 68972 }, - { 0x2A2E, 68976 }, - { 0x1D8D, 68978 }, - { 0x1DA6, 68981 }, - { 0x2A2B, 68983 }, - { 0x1D9C, 68985 }, - { 0x1D9D, 68989 }, - { 0x1D9F, 68993 }, - { 0x8FD5, 68997 }, - { 0x2365, 68998 }, - { 0x2A30, 69002 }, - { 0x2823, 69004 }, - { 0x2271, 69006 }, - { 0x265B, 69007 }, - { 0x8F6E, 69011 }, - { 0x96BC, 69012 }, - { 0x1E87, 69015 }, - { 0x007C, 69017 }, - { 0x1DB0, 69021 }, - { 0x1DAC, 69025 }, - { 0x1DB4, 69029 }, - { 0x1DAD, 69033 }, - { 0x1DAE, 69037 }, - { 0x1DB6, 69041 }, - { 0x007B, 69045 }, - { 0x1DAB, 69049 }, - { 0x1DB1, 69053 }, - { 0x1DAF, 69057 }, - { 0x1DB5, 69061 }, - { 0x1DB8, 69065 }, - { 0x1DB3, 69069 }, - { 0x1DE4, 69073 }, - { 0x1DB9, 69077 }, - { 0x1DB2, 69081 }, - { 0x1DB7, 69085 }, - { 0x007D, 69089 }, - { 0x94F5, 69093 }, - { 0x8A19, 69094 }, - { 0x8A0D, 69097 }, - { 0x8A0B, 69100 }, - { 0x8A0E, 69103 }, - { 0x8A0C, 69106 }, - { 0x8A10, 69109 }, - { 0x8A15, 69112 }, - { 0x8A11, 69115 }, - { 0x8A14, 69118 }, - { 0x8A13, 69121 }, - { 0x8A18, 69124 }, - { 0x8A0F, 69127 }, - { 0x8A17, 69130 }, - { 0x8A16, 69133 }, - { 0x8A12, 69136 }, - { 0x89E0, 69139 }, - { 0x89FA, 69142 }, - { 0x89FB, 69145 }, - { 0x89F4, 69148 }, - { 0x89FD, 69151 }, - { 0x89DF, 69154 }, - { 0x89F5, 69157 }, - { 0x89E1, 69160 }, - { 0x89E2, 69163 }, - { 0x89E3, 69166 }, - { 0x8A06, 69169 }, - { 0x89EC, 69172 }, - { 0x89E4, 69175 }, - { 0x89F9, 69178 }, - { 0x89EF, 69181 }, - { 0x89F3, 69184 }, - { 0x89E7, 69187 }, - { 0x89F7, 69190 }, - { 0x89E8, 69193 }, - { 0x8A05, 69196 }, - { 0x89E9, 69199 }, - { 0x89F6, 69202 }, - { 0x89ED, 69205 }, - { 0x89EA, 69208 }, - { 0x89F2, 69211 }, - { 0x89F1, 69214 }, - { 0x89E5, 69217 }, - { 0x89F0, 69220 }, - { 0x8A07, 69223 }, - { 0x8A03, 69226 }, - { 0x8A04, 69229 }, - { 0x89F8, 69232 }, - { 0x89FC, 69235 }, - { 0x8A08, 69238 }, - { 0x8A01, 69241 }, - { 0x89E6, 69244 }, - { 0x89EE, 69247 }, - { 0x89EB, 69250 }, - { 0x8A00, 69253 }, - { 0x89FF, 69256 }, - { 0x8A09, 69259 }, - { 0x8A0A, 69262 }, - { 0x8A02, 69265 }, - { 0x89FE, 69268 }, - { 0x8EC9, 69271 }, - { 0x8ECB, 69275 }, - { 0x5069, 69279 }, - { 0x5057, 69282 }, - { 0x505C, 69286 }, - { 0x5058, 69290 }, - { 0x505B, 69294 }, - { 0x505A, 69298 }, - { 0x505F, 69302 }, - { 0x5056, 69306 }, - { 0x505E, 69310 }, - { 0x505D, 69314 }, - { 0x5059, 69318 }, - { 0x5037, 69322 }, - { 0x503E, 69327 }, - { 0x503F, 69332 }, - { 0x504C, 69337 }, - { 0x504B, 69342 }, - { 0x504D, 69347 }, - { 0x504A, 69352 }, - { 0x5041, 69357 }, - { 0x503C, 69362 }, - { 0x5042, 69367 }, - { 0x504E, 69372 }, - { 0x5045, 69377 }, - { 0x503D, 69382 }, - { 0x5038, 69387 }, - { 0x503A, 69392 }, - { 0x503B, 69397 }, - { 0x5039, 69402 }, - { 0x5040, 69407 }, - { 0x5046, 69412 }, - { 0x5043, 69417 }, - { 0x5052, 69422 }, - { 0x5047, 69427 }, - { 0x5054, 69432 }, - { 0x5048, 69437 }, - { 0x5044, 69442 }, - { 0x504F, 69447 }, - { 0x5050, 69452 }, - { 0x5051, 69457 }, - { 0x5036, 69462 }, - { 0x5049, 69467 }, - { 0x5053, 69472 }, - { 0x5055, 69477 }, - { 0x5060, 69482 }, - { 0x5064, 69486 }, - { 0x5063, 69490 }, - { 0x5065, 69494 }, - { 0x5067, 69498 }, - { 0x5068, 69502 }, - { 0x5062, 69506 }, - { 0x5061, 69510 }, - { 0x5066, 69514 }, - { 0x5017, 69518 }, - { 0x501E, 69523 }, - { 0x501F, 69528 }, - { 0x502C, 69533 }, - { 0x502B, 69538 }, - { 0x502D, 69543 }, - { 0x502A, 69548 }, - { 0x5021, 69553 }, - { 0x501C, 69558 }, - { 0x5022, 69563 }, - { 0x502E, 69568 }, - { 0x5025, 69573 }, - { 0x501D, 69578 }, - { 0x5018, 69583 }, - { 0x501A, 69588 }, - { 0x501B, 69593 }, - { 0x5019, 69598 }, - { 0x5020, 69603 }, - { 0x5026, 69608 }, - { 0x5023, 69613 }, - { 0x5032, 69618 }, - { 0x5027, 69623 }, - { 0x5034, 69628 }, - { 0x5028, 69633 }, - { 0x5024, 69638 }, - { 0x502F, 69643 }, - { 0x5030, 69648 }, - { 0x5031, 69653 }, - { 0x5016, 69658 }, - { 0x5029, 69663 }, - { 0x5033, 69668 }, - { 0x5035, 69673 }, - { 0x8FFE, 69678 }, - { 0x8FA7, 69681 }, - { 0x8FA6, 69684 }, - { 0x8EC7, 69687 }, - { 0x8EC5, 69691 }, - { 0x8F7E, 69695 }, - { 0x2A34, 69697 }, - { 0x946E, 69700 }, - { 0x95B7, 69702 }, - { 0x9005, 69703 }, - { 0x9015, 69705 }, - { 0x9014, 69707 }, - { 0x900D, 69709 }, - { 0x926D, 69711 }, - { 0x1E97, 69713 }, - { 0x90DA, 69715 }, - { 0x904E, 69716 }, - { 0x49F4, 69718 }, - { 0x4A1C, 69721 }, - { 0x4A19, 69724 }, - { 0x4A0C, 69727 }, - { 0x4A03, 69730 }, - { 0x4A18, 69733 }, - { 0x49F5, 69736 }, - { 0x4A00, 69739 }, - { 0x49F8, 69742 }, - { 0x4A08, 69745 }, - { 0x4A16, 69748 }, - { 0x4A0D, 69751 }, - { 0x4A0E, 69754 }, - { 0x49FD, 69759 }, - { 0x4A02, 69762 }, - { 0x4A09, 69765 }, - { 0x49F9, 69768 }, - { 0x4A07, 69771 }, - { 0x49FE, 69774 }, - { 0x4A0A, 69777 }, - { 0x4A12, 69780 }, - { 0x4A1A, 69783 }, - { 0x49FC, 69786 }, - { 0x4A10, 69789 }, - { 0x4A13, 69792 }, - { 0x4A20, 69795 }, - { 0x4A14, 69801 }, - { 0x4A15, 69804 }, - { 0x49F6, 69807 }, - { 0x4A0F, 69810 }, - { 0x4A01, 69813 }, - { 0x4A06, 69816 }, - { 0x4A04, 69819 }, - { 0x49F7, 69822 }, - { 0x4A17, 69825 }, - { 0x4A1B, 69828 }, - { 0x4A21, 69831 }, - { 0x49FF, 69837 }, - { 0x49FA, 69840 }, - { 0x49F3, 69843 }, - { 0x4A11, 69846 }, - { 0x4A05, 69849 }, - { 0x49FB, 69852 }, - { 0x4A0B, 69855 }, - { 0x4A1D, 69858 }, - { 0x4A1E, 69862 }, - { 0x4A1F, 69866 }, - { 0x950D, 69869 }, - { 0x3EF9, 69870 }, - { 0x1D5B, 69871 }, - { 0x280E, 69873 }, - { 0x05A4, 69874 }, - { 0x22C3, 69876 }, - { 0x8FAD, 69877 }, - { 0x7C4F, 69878 }, - { 0x90A9, 69879 }, - { 0x280D, 69882 }, - { 0x2802, 69883 }, - { 0x1D2C, 69884 }, - { 0x4815, 69886 }, - { 0x481D, 69889 }, - { 0x4821, 69892 }, - { 0x481F, 69895 }, - { 0x4823, 69898 }, - { 0x4816, 69901 }, - { 0x481B, 69904 }, - { 0x4819, 69907 }, - { 0x4817, 69910 }, - { 0x4835, 69913 }, - { 0x482C, 69916 }, - { 0x4830, 69919 }, - { 0x481E, 69922 }, - { 0x4834, 69925 }, - { 0x4829, 69928 }, - { 0x484A, 69931 }, - { 0x4822, 69934 }, - { 0x482D, 69937 }, - { 0x4825, 69940 }, - { 0x4843, 69943 }, - { 0x483D, 69946 }, - { 0x483A, 69949 }, - { 0x4820, 69952 }, - { 0x4833, 69955 }, - { 0x4842, 69958 }, - { 0x4844, 69961 }, - { 0x482E, 69964 }, - { 0x4824, 69967 }, - { 0x4841, 69970 }, - { 0x4826, 69973 }, - { 0x4840, 69976 }, - { 0x4845, 69979 }, - { 0x481A, 69982 }, - { 0x4818, 69985 }, - { 0x481C, 69988 }, - { 0x4836, 69991 }, - { 0x4831, 69994 }, - { 0x482A, 69997 }, - { 0x482B, 70000 }, - { 0x483E, 70003 }, - { 0x4837, 70006 }, - { 0x483C, 70009 }, - { 0x483B, 70012 }, - { 0x4846, 70015 }, - { 0x482F, 70018 }, - { 0x4832, 70021 }, - { 0x4828, 70024 }, - { 0x4827, 70027 }, - { 0x483F, 70030 }, - { 0x4847, 70033 }, - { 0x4839, 70036 }, - { 0x4838, 70039 }, - { 0x4848, 70042 }, - { 0x4849, 70045 }, - { 0x484B, 70048 }, - { 0x947F, 70051 }, - { 0x9277, 70052 }, - { 0x8F3B, 70054 }, - { 0x9274, 70055 }, - { 0x90BE, 70056 }, - { 0x9502, 70057 }, - { 0x9046, 70059 }, - { 0x1E8C, 70061 }, - { 0x9281, 70062 }, - { 0x0934, 70064 }, - { 0x08F5, 70068 }, - { 0x0925, 70070 }, - { 0x0932, 70073 }, - { 0x08F8, 70076 }, - { 0x08F7, 70079 }, - { 0x0926, 70082 }, - { 0x08F6, 70085 }, - { 0x093D, 70088 }, - { 0x0942, 70091 }, - { 0x093E, 70094 }, - { 0x0941, 70097 }, - { 0x0940, 70100 }, - { 0x0945, 70103 }, - { 0x093C, 70106 }, - { 0x0944, 70109 }, - { 0x0943, 70112 }, - { 0x093F, 70115 }, - { 0x0951, 70118 }, - { 0x0948, 70121 }, - { 0x0949, 70124 }, - { 0x092E, 70127 }, - { 0x0928, 70131 }, - { 0x0930, 70135 }, - { 0x092A, 70139 }, - { 0x0927, 70143 }, - { 0x092F, 70147 }, - { 0x0931, 70151 }, - { 0x0929, 70155 }, - { 0x092B, 70159 }, - { 0x093A, 70163 }, - { 0x092C, 70168 }, - { 0x093B, 70173 }, - { 0x092D, 70178 }, - { 0x0950, 70183 }, - { 0x08F9, 70185 }, - { 0x0901, 70188 }, - { 0x08FB, 70191 }, - { 0x0903, 70194 }, - { 0x08FD, 70197 }, - { 0x08FA, 70200 }, - { 0x0902, 70203 }, - { 0x0904, 70206 }, - { 0x091B, 70209 }, - { 0x090A, 70212 }, - { 0x0916, 70215 }, - { 0x0907, 70218 }, - { 0x0924, 70221 }, - { 0x08FC, 70224 }, - { 0x090C, 70227 }, - { 0x0905, 70230 }, - { 0x0920, 70233 }, - { 0x091D, 70236 }, - { 0x0918, 70239 }, - { 0x0919, 70242 }, - { 0x091F, 70245 }, - { 0x0947, 70248 }, - { 0x0946, 70254 }, - { 0x0923, 70260 }, - { 0x0914, 70263 }, - { 0x08FE, 70266 }, - { 0x091E, 70269 }, - { 0x091C, 70272 }, - { 0x090B, 70275 }, - { 0x0911, 70278 }, - { 0x0917, 70281 }, - { 0x0908, 70284 }, - { 0x090D, 70287 }, - { 0x0906, 70290 }, - { 0x0909, 70293 }, - { 0x0913, 70296 }, - { 0x090E, 70299 }, - { 0x091A, 70302 }, - { 0x0936, 70305 }, - { 0x0935, 70308 }, - { 0x0921, 70311 }, - { 0x0922, 70314 }, - { 0x0915, 70317 }, - { 0x090F, 70320 }, - { 0x0937, 70323 }, - { 0x0912, 70326 }, - { 0x0910, 70329 }, - { 0x0952, 70332 }, - { 0x0933, 70336 }, - { 0x0900, 70340 }, - { 0x08FF, 70344 }, - { 0x0939, 70348 }, - { 0x0938, 70352 }, - { 0x0954, 70356 }, - { 0x094A, 70359 }, - { 0x094E, 70363 }, - { 0x094B, 70371 }, - { 0x094D, 70375 }, - { 0x094C, 70379 }, - { 0x094F, 70383 }, - { 0x0953, 70387 }, - { 0x1F83, 70390 }, - { 0x203A, 70392 }, - { 0x1EC3, 70396 }, - { 0x9265, 70397 }, - { 0x1D38, 70398 }, - { 0x8EEF, 70400 }, - { 0x9043, 70401 }, - { 0x8F48, 70402 }, - { 0x8F66, 70405 }, - { 0x242C, 70406 }, - { 0x242D, 70409 }, - { 0x242E, 70412 }, - { 0x2430, 70415 }, - { 0x2434, 70418 }, - { 0x243C, 70421 }, - { 0x244C, 70424 }, - { 0x246C, 70427 }, - { 0x24AC, 70430 }, - { 0x242F, 70433 }, - { 0x2431, 70436 }, - { 0x2435, 70439 }, - { 0x243D, 70442 }, - { 0x244D, 70445 }, - { 0x246D, 70448 }, - { 0x24AD, 70451 }, - { 0x2432, 70454 }, - { 0x2436, 70457 }, - { 0x243E, 70460 }, - { 0x244E, 70463 }, - { 0x246E, 70466 }, - { 0x24AE, 70469 }, - { 0x2438, 70472 }, - { 0x2440, 70475 }, - { 0x2450, 70478 }, - { 0x2470, 70481 }, - { 0x24B0, 70484 }, - { 0x2444, 70487 }, - { 0x2454, 70490 }, - { 0x2474, 70493 }, - { 0x24B4, 70496 }, - { 0x245C, 70499 }, - { 0x247C, 70502 }, - { 0x24BC, 70505 }, - { 0x248C, 70508 }, - { 0x24CC, 70511 }, - { 0x24EC, 70514 }, - { 0x2433, 70517 }, - { 0x2437, 70520 }, - { 0x243F, 70523 }, - { 0x244F, 70526 }, - { 0x246F, 70529 }, - { 0x24AF, 70532 }, - { 0x2439, 70535 }, - { 0x2441, 70538 }, - { 0x2451, 70541 }, - { 0x2471, 70544 }, - { 0x24B1, 70547 }, - { 0x2445, 70550 }, - { 0x2455, 70553 }, - { 0x2475, 70556 }, - { 0x24B5, 70559 }, - { 0x245D, 70562 }, - { 0x247D, 70565 }, - { 0x24BD, 70568 }, - { 0x248D, 70571 }, - { 0x24CD, 70574 }, - { 0x24ED, 70577 }, - { 0x243A, 70580 }, - { 0x2442, 70583 }, - { 0x2452, 70586 }, - { 0x2472, 70589 }, - { 0x24B2, 70592 }, - { 0x2446, 70595 }, - { 0x2456, 70598 }, - { 0x2476, 70601 }, - { 0x24B6, 70604 }, - { 0x245E, 70607 }, - { 0x247E, 70610 }, - { 0x24BE, 70613 }, - { 0x248E, 70616 }, - { 0x24CE, 70619 }, - { 0x24EE, 70622 }, - { 0x2448, 70625 }, - { 0x2458, 70628 }, - { 0x2478, 70631 }, - { 0x24B8, 70634 }, - { 0x2460, 70637 }, - { 0x2480, 70640 }, - { 0x24C0, 70643 }, - { 0x2490, 70646 }, - { 0x24D0, 70649 }, - { 0x24F0, 70652 }, - { 0x2464, 70655 }, - { 0x2484, 70658 }, - { 0x24C4, 70661 }, - { 0x2494, 70664 }, - { 0x24D4, 70667 }, - { 0x24F4, 70670 }, - { 0x249C, 70673 }, - { 0x24DC, 70676 }, - { 0x24FC, 70679 }, - { 0x250C, 70682 }, - { 0x243B, 70685 }, - { 0x2443, 70688 }, - { 0x2453, 70691 }, - { 0x2473, 70694 }, - { 0x24B3, 70697 }, - { 0x2447, 70700 }, - { 0x2457, 70703 }, - { 0x2477, 70706 }, - { 0x24B7, 70709 }, - { 0x245F, 70712 }, - { 0x247F, 70715 }, - { 0x24BF, 70718 }, - { 0x248F, 70721 }, - { 0x24CF, 70724 }, - { 0x24EF, 70727 }, - { 0x2449, 70730 }, - { 0x2459, 70733 }, - { 0x2479, 70736 }, - { 0x24B9, 70739 }, - { 0x2461, 70742 }, - { 0x2481, 70745 }, - { 0x24C1, 70748 }, - { 0x2491, 70751 }, - { 0x24D1, 70754 }, - { 0x24F1, 70757 }, - { 0x2465, 70760 }, - { 0x2485, 70763 }, - { 0x24C5, 70766 }, - { 0x2495, 70769 }, - { 0x24D5, 70772 }, - { 0x24F5, 70775 }, - { 0x249D, 70778 }, - { 0x24DD, 70781 }, - { 0x24FD, 70784 }, - { 0x250D, 70787 }, - { 0x244A, 70790 }, - { 0x245A, 70793 }, - { 0x247A, 70796 }, - { 0x24BA, 70799 }, - { 0x2462, 70802 }, - { 0x2482, 70805 }, - { 0x24C2, 70808 }, - { 0x2492, 70811 }, - { 0x24D2, 70814 }, - { 0x24F2, 70817 }, - { 0x2466, 70820 }, - { 0x2486, 70823 }, - { 0x24C6, 70826 }, - { 0x2496, 70829 }, - { 0x24D6, 70832 }, - { 0x24F6, 70835 }, - { 0x249E, 70838 }, - { 0x24DE, 70841 }, - { 0x24FE, 70844 }, - { 0x250E, 70847 }, - { 0x2468, 70850 }, - { 0x2488, 70853 }, - { 0x24C8, 70856 }, - { 0x2498, 70859 }, - { 0x24D8, 70862 }, - { 0x24F8, 70865 }, - { 0x24A0, 70868 }, - { 0x24E0, 70871 }, - { 0x2500, 70874 }, - { 0x2510, 70877 }, - { 0x24A4, 70880 }, - { 0x24E4, 70883 }, - { 0x2504, 70886 }, - { 0x2514, 70889 }, - { 0x251C, 70892 }, - { 0x244B, 70895 }, - { 0x245B, 70898 }, - { 0x247B, 70901 }, - { 0x24BB, 70904 }, - { 0x2463, 70907 }, - { 0x2483, 70910 }, - { 0x24C3, 70913 }, - { 0x2493, 70916 }, - { 0x24D3, 70919 }, - { 0x24F3, 70922 }, - { 0x2467, 70925 }, - { 0x2487, 70928 }, - { 0x24C7, 70931 }, - { 0x2497, 70934 }, - { 0x24D7, 70937 }, - { 0x24F7, 70940 }, - { 0x249F, 70943 }, - { 0x24DF, 70946 }, - { 0x24FF, 70949 }, - { 0x250F, 70952 }, - { 0x2469, 70955 }, - { 0x2489, 70958 }, - { 0x24C9, 70961 }, - { 0x2499, 70964 }, - { 0x24D9, 70967 }, - { 0x24F9, 70970 }, - { 0x24A1, 70973 }, - { 0x24E1, 70976 }, - { 0x2501, 70979 }, - { 0x2511, 70982 }, - { 0x24A5, 70985 }, - { 0x24E5, 70988 }, - { 0x2505, 70991 }, - { 0x2515, 70994 }, - { 0x251D, 70997 }, - { 0x246A, 71000 }, - { 0x248A, 71003 }, - { 0x24CA, 71006 }, - { 0x249A, 71009 }, - { 0x24DA, 71012 }, - { 0x24FA, 71015 }, - { 0x24A2, 71018 }, - { 0x24E2, 71021 }, - { 0x2502, 71024 }, - { 0x2512, 71027 }, - { 0x24A6, 71030 }, - { 0x24E6, 71033 }, - { 0x2506, 71036 }, - { 0x2516, 71039 }, - { 0x251E, 71042 }, - { 0x24A8, 71045 }, - { 0x24E8, 71048 }, - { 0x2508, 71051 }, - { 0x2518, 71054 }, - { 0x2520, 71057 }, - { 0x2524, 71060 }, - { 0x246B, 71063 }, - { 0x248B, 71066 }, - { 0x24CB, 71069 }, - { 0x249B, 71072 }, - { 0x24DB, 71075 }, - { 0x24FB, 71078 }, - { 0x24A3, 71081 }, - { 0x24E3, 71084 }, - { 0x2503, 71087 }, - { 0x2513, 71090 }, - { 0x24A7, 71093 }, - { 0x24E7, 71096 }, - { 0x2507, 71099 }, - { 0x2517, 71102 }, - { 0x251F, 71105 }, - { 0x24A9, 71108 }, - { 0x24E9, 71111 }, - { 0x2509, 71114 }, - { 0x2519, 71117 }, - { 0x2521, 71120 }, - { 0x2525, 71123 }, - { 0x24AA, 71126 }, - { 0x24EA, 71129 }, - { 0x250A, 71132 }, - { 0x251A, 71135 }, - { 0x2522, 71138 }, - { 0x2526, 71141 }, - { 0x2528, 71144 }, - { 0x24AB, 71147 }, - { 0x24EB, 71150 }, - { 0x250B, 71153 }, - { 0x251B, 71156 }, - { 0x2523, 71159 }, - { 0x2527, 71162 }, - { 0x2529, 71165 }, - { 0x252A, 71168 }, - { 0x252B, 71171 }, - { 0x95F6, 71174 }, - { 0x8EE2, 71175 }, - { 0x8F88, 71176 }, - { 0x224D, 71177 }, - { 0x0077, 71179 }, - { 0x9231, 71180 }, - { 0x9696, 71182 }, - { 0x8FC7, 71185 }, - { 0x8E19, 71186 }, - { 0x27E7, 71191 }, - { 0x8E18, 71193 }, - { 0x8DD8, 71195 }, - { 0x8DD9, 71197 }, - { 0x1EF0, 71199 }, - { 0x27E8, 71202 }, - { 0x1EF4, 71205 }, - { 0x236E, 71207 }, - { 0x1EEC, 71213 }, - { 0x1EF1, 71215 }, - { 0x8DB8, 71218 }, - { 0x9430, 71222 }, - { 0x942F, 71225 }, - { 0x942E, 71231 }, - { 0x90F3, 71237 }, - { 0x208C, 71240 }, - { 0x2091, 71243 }, - { 0x208D, 71246 }, - { 0x2090, 71249 }, - { 0x208F, 71252 }, - { 0x2094, 71255 }, - { 0x2116, 71258 }, - { 0x2093, 71261 }, - { 0x2092, 71264 }, - { 0x208E, 71267 }, - { 0x23DE, 71270 }, - { 0x8E1A, 71275 }, - { 0x20FC, 71278 }, - { 0x20FD, 71283 }, - { 0x20FE, 71288 }, - { 0x20FF, 71293 }, - { 0x2100, 71298 }, - { 0x2101, 71303 }, - { 0x2102, 71308 }, - { 0x2103, 71313 }, - { 0x2104, 71318 }, - { 0x2105, 71323 }, - { 0x2106, 71328 }, - { 0x2107, 71333 }, - { 0x2108, 71338 }, - { 0x2109, 71343 }, - { 0x210A, 71348 }, - { 0x210B, 71353 }, - { 0x210C, 71358 }, - { 0x210D, 71363 }, - { 0x210E, 71368 }, - { 0x210F, 71373 }, - { 0x2110, 71378 }, - { 0x2111, 71383 }, - { 0x2112, 71388 }, - { 0x2113, 71393 }, - { 0x2114, 71398 }, - { 0x2115, 71403 }, - { 0x20E2, 71408 }, - { 0x20E3, 71413 }, - { 0x20E4, 71418 }, - { 0x20E5, 71423 }, - { 0x20E6, 71428 }, - { 0x20E7, 71433 }, - { 0x20E8, 71438 }, - { 0x20E9, 71443 }, - { 0x20EA, 71448 }, - { 0x20EB, 71453 }, - { 0x20EC, 71458 }, - { 0x20ED, 71463 }, - { 0x20EE, 71468 }, - { 0x20EF, 71473 }, - { 0x20F0, 71478 }, - { 0x20F1, 71483 }, - { 0x20F2, 71488 }, - { 0x20F3, 71493 }, - { 0x20F4, 71498 }, - { 0x20F5, 71503 }, - { 0x20F6, 71508 }, - { 0x20F7, 71513 }, - { 0x20F8, 71518 }, - { 0x20F9, 71523 }, - { 0x20FA, 71528 }, - { 0x20FB, 71533 }, - { 0x1EED, 71538 }, - { 0x1EEE, 71540 }, - { 0x2356, 71542 }, - { 0x25EA, 71545 }, - { 0x25EB, 71548 }, - { 0x8DBA, 71550 }, - { 0x1EF3, 71556 }, - { 0x2DFF, 71558 }, - { 0x2E0D, 71561 }, - { 0x2E01, 71565 }, - { 0x2E0F, 71568 }, - { 0x2E06, 71572 }, - { 0x2E14, 71575 }, - { 0x2E00, 71579 }, - { 0x2E0E, 71582 }, - { 0x2E17, 71586 }, - { 0x2DFD, 71590 }, - { 0x2E0B, 71593 }, - { 0x2DFA, 71597 }, - { 0x2E08, 71600 }, - { 0x2DFE, 71604 }, - { 0x2E0C, 71607 }, - { 0x2DFC, 71611 }, - { 0x2E0A, 71614 }, - { 0x2DF9, 71618 }, - { 0x2E07, 71621 }, - { 0x2DFB, 71625 }, - { 0x2E09, 71628 }, - { 0x2E02, 71632 }, - { 0x2E10, 71635 }, - { 0x2E03, 71639 }, - { 0x2E11, 71642 }, - { 0x2E05, 71646 }, - { 0x2E13, 71649 }, - { 0x2E04, 71653 }, - { 0x2E12, 71656 }, - { 0x8DD6, 71660 }, - { 0x8DD7, 71666 }, - { 0x2E16, 71672 }, - { 0x2E15, 71676 }, - { 0x2095, 71680 }, - { 0x2DE1, 71683 }, - { 0x2E58, 71689 }, - { 0x2DE5, 71692 }, - { 0x2E4E, 71698 }, - { 0x2DE4, 71701 }, - { 0x2E4F, 71707 }, - { 0x2E54, 71711 }, - { 0x2E50, 71715 }, - { 0x2E53, 71719 }, - { 0x2E52, 71723 }, - { 0x2E57, 71727 }, - { 0x2E56, 71731 }, - { 0x2E55, 71735 }, - { 0x2E51, 71739 }, - { 0x2DE6, 71743 }, - { 0x2DE8, 71749 }, - { 0x2096, 71755 }, - { 0x2DF3, 71758 }, - { 0x2DE3, 71761 }, - { 0x2DF4, 71767 }, - { 0x2E4A, 71771 }, - { 0x2DF5, 71775 }, - { 0x2DF8, 71779 }, - { 0x2DF7, 71783 }, - { 0x2E4D, 71787 }, - { 0x2E4C, 71791 }, - { 0x2E4B, 71795 }, - { 0x2DF6, 71799 }, - { 0x2097, 71803 }, - { 0x209F, 71806 }, - { 0x2DE2, 71809 }, - { 0x2DEA, 71815 }, - { 0x2DEF, 71819 }, - { 0x2DEB, 71823 }, - { 0x2DEE, 71827 }, - { 0x2DED, 71831 }, - { 0x2DF2, 71835 }, - { 0x2DF1, 71839 }, - { 0x2DF0, 71843 }, - { 0x2DEC, 71847 }, - { 0x209A, 71851 }, - { 0x2DE7, 71854 }, - { 0x209B, 71860 }, - { 0x209D, 71863 }, - { 0x2099, 71866 }, - { 0x209E, 71869 }, - { 0x2098, 71872 }, - { 0x209C, 71875 }, - { 0x2BE3, 71878 }, - { 0x937C, 71881 }, - { 0x25E4, 71883 }, - { 0x1EF2, 71886 }, - { 0x22FE, 71889 }, - { 0x2664, 71892 }, - { 0x1EEF, 71895 }, - { 0x2E69, 71898 }, - { 0x2E6C, 71901 }, - { 0x2E6A, 71904 }, - { 0x2E6D, 71907 }, - { 0x2E6B, 71910 }, - { 0x2E82, 71913 }, - { 0x2E85, 71916 }, - { 0x2E83, 71919 }, - { 0x2E86, 71922 }, - { 0x2E84, 71925 }, - { 0x2E6E, 71928 }, - { 0x2E71, 71931 }, - { 0x2E6F, 71934 }, - { 0x2E72, 71937 }, - { 0x2E70, 71940 }, - { 0x2E87, 71943 }, - { 0x2E8A, 71946 }, - { 0x2E88, 71949 }, - { 0x2E8B, 71952 }, - { 0x2E89, 71955 }, - { 0x2E7D, 71958 }, - { 0x2E80, 71961 }, - { 0x2E7E, 71964 }, - { 0x2E81, 71967 }, - { 0x2E7F, 71970 }, - { 0x2E8F, 71973 }, - { 0x2E92, 71976 }, - { 0x2E90, 71979 }, - { 0x2E93, 71982 }, - { 0x2E91, 71985 }, - { 0x2E73, 71988 }, - { 0x2E76, 71991 }, - { 0x2E74, 71994 }, - { 0x2E77, 71997 }, - { 0x2E75, 72000 }, - { 0x2E78, 72003 }, - { 0x2E7B, 72006 }, - { 0x2E79, 72009 }, - { 0x2E7C, 72012 }, - { 0x2E7A, 72015 }, - { 0x2E94, 72018 }, - { 0x2E96, 72021 }, - { 0x2E95, 72024 }, - { 0x2E97, 72027 }, - { 0x2E8C, 72030 }, - { 0x2E8E, 72033 }, - { 0x2E8D, 72036 }, - { 0x25E3, 72039 }, - { 0x937A, 72041 }, - { 0x1FE1, 72043 }, - { 0x25E2, 72046 }, - { 0x2E3F, 72049 }, - { 0x2E19, 72052 }, - { 0x2E1E, 72055 }, - { 0x2E29, 72058 }, - { 0x2E22, 72061 }, - { 0x2E1A, 72064 }, - { 0x2E3B, 72067 }, - { 0x2E24, 72070 }, - { 0x2E1D, 72073 }, - { 0x2E1C, 72076 }, - { 0x2E2B, 72079 }, - { 0x2E3D, 72082 }, - { 0x2E39, 72085 }, - { 0x2DE0, 72088 }, - { 0x2E40, 72091 }, - { 0x2E33, 72094 }, - { 0x2E23, 72097 }, - { 0x2E2D, 72100 }, - { 0x2E21, 72103 }, - { 0x2E3A, 72106 }, - { 0x2E26, 72109 }, - { 0x2E28, 72112 }, - { 0x2E20, 72115 }, - { 0x2E31, 72118 }, - { 0x2E27, 72121 }, - { 0x2E49, 72124 }, - { 0x2E37, 72127 }, - { 0x2E41, 72130 }, - { 0x2E1F, 72133 }, - { 0x2E2A, 72136 }, - { 0x2E44, 72139 }, - { 0x2E1B, 72142 }, - { 0x2E25, 72145 }, - { 0x8EAC, 72148 }, - { 0x2E3E, 72151 }, - { 0x2E34, 72154 }, - { 0x2DDF, 72157 }, - { 0x2E32, 72160 }, - { 0x2E3C, 72163 }, - { 0x2E2C, 72166 }, - { 0x2E2E, 72169 }, - { 0x2E48, 72172 }, - { 0x2E42, 72175 }, - { 0x2DDD, 72178 }, - { 0x2E43, 72181 }, - { 0x2E47, 72184 }, - { 0x2E35, 72187 }, - { 0x8EAB, 72190 }, - { 0x2E38, 72193 }, - { 0x2E36, 72196 }, - { 0x2E2F, 72199 }, - { 0x2E45, 72202 }, - { 0x2E46, 72205 }, - { 0x2DDE, 72208 }, - { 0x2E30, 72211 }, - { 0x25EC, 72214 }, - { 0x1FE0, 72216 }, - { 0x927B, 72221 }, - { 0x25ED, 72224 }, - { 0x8DB9, 72226 }, - { 0x25E5, 72229 }, - { 0x2662, 72231 }, - { 0x25E8, 72237 }, - { 0x8F5F, 72241 }, - { 0x9493, 72243 }, - { 0x951B, 72244 }, - { 0x1F89, 72245 }, - { 0x1E85, 72247 }, - { 0x8F4E, 72249 }, - { 0x8F26, 72251 }, - { 0x2A45, 72252 }, - { 0x94C5, 72255 }, - { 0x8F82, 72256 }, - { 0x8F3F, 72260 }, - { 0x22C0, 72262 }, - { 0x8E35, 72264 }, - { 0x90E1, 72271 }, - { 0x94EF, 72273 }, - { 0x947A, 72274 }, - { 0x8F21, 72276 }, - { 0x9276, 72277 }, - { 0x8EB3, 72278 }, - { 0x45F4, 72279 }, - { 0x45F5, 72282 }, - { 0x45F6, 72285 }, - { 0x45F7, 72288 }, - { 0x45F8, 72291 }, - { 0x45F9, 72294 }, - { 0x45FA, 72297 }, - { 0x45FB, 72300 }, - { 0x45FC, 72303 }, - { 0x45FD, 72306 }, - { 0x45FE, 72309 }, - { 0x45FF, 72312 }, - { 0x4600, 72315 }, - { 0x4601, 72318 }, - { 0x4602, 72321 }, - { 0x4603, 72324 }, - { 0x4604, 72327 }, - { 0x4605, 72330 }, - { 0x4606, 72333 }, - { 0x4607, 72336 }, - { 0x4608, 72339 }, - { 0x4609, 72342 }, - { 0x460A, 72345 }, - { 0x460B, 72348 }, - { 0x460C, 72351 }, - { 0x460D, 72354 }, - { 0x460E, 72357 }, - { 0x460F, 72360 }, - { 0x4610, 72363 }, - { 0x4611, 72366 }, - { 0x4612, 72369 }, - { 0x4613, 72372 }, - { 0x4614, 72375 }, - { 0x4615, 72378 }, - { 0x4616, 72381 }, - { 0x4617, 72384 }, - { 0x4618, 72387 }, - { 0x4619, 72390 }, - { 0x461A, 72393 }, - { 0x461B, 72396 }, - { 0x461C, 72399 }, - { 0x461D, 72402 }, - { 0x461E, 72405 }, - { 0x461F, 72408 }, - { 0x4620, 72411 }, - { 0x4621, 72414 }, - { 0x4622, 72417 }, - { 0x4623, 72420 }, - { 0x4624, 72423 }, - { 0x4625, 72426 }, - { 0x4626, 72429 }, - { 0x4627, 72432 }, - { 0x4628, 72435 }, - { 0x4629, 72438 }, - { 0x462A, 72441 }, - { 0x203F, 72444 }, - { 0x1FED, 72447 }, - { 0x42D7, 72451 }, - { 0x42D3, 72455 }, - { 0x42E0, 72459 }, - { 0x42E9, 72463 }, - { 0x42EA, 72467 }, - { 0x42EB, 72471 }, - { 0x42E8, 72475 }, - { 0x42E4, 72479 }, - { 0x42EE, 72483 }, - { 0x42ED, 72487 }, - { 0x42D4, 72491 }, - { 0x42D5, 72495 }, - { 0x42D9, 72499 }, - { 0x42DB, 72503 }, - { 0x42EC, 72507 }, - { 0x42E6, 72511 }, - { 0x42E2, 72515 }, - { 0x42DF, 72519 }, - { 0x42DD, 72523 }, - { 0x42DE, 72527 }, - { 0x42D8, 72531 }, - { 0x42DA, 72535 }, - { 0x42E1, 72539 }, - { 0x42D6, 72543 }, - { 0x42E5, 72547 }, - { 0x42DC, 72551 }, - { 0x42C9, 72555 }, - { 0x42C8, 72560 }, - { 0x42C7, 72565 }, - { 0x42CB, 72570 }, - { 0x42CA, 72575 }, - { 0x42CC, 72580 }, - { 0x42E3, 72585 }, - { 0x42E7, 72589 }, - { 0x42CF, 72593 }, - { 0x42CE, 72598 }, - { 0x42CD, 72603 }, - { 0x42D1, 72608 }, - { 0x42D0, 72613 }, - { 0x42D2, 72618 }, - { 0x42AF, 72623 }, - { 0x42AB, 72627 }, - { 0x42B8, 72631 }, - { 0x42C1, 72635 }, - { 0x42C2, 72639 }, - { 0x42C3, 72643 }, - { 0x42C0, 72647 }, - { 0x42BC, 72651 }, - { 0x42C6, 72655 }, - { 0x42C5, 72659 }, - { 0x42AC, 72663 }, - { 0x42AD, 72667 }, - { 0x42B1, 72671 }, - { 0x42B3, 72675 }, - { 0x42C4, 72679 }, - { 0x42BE, 72683 }, - { 0x42BA, 72687 }, - { 0x42B7, 72691 }, - { 0x42B5, 72695 }, - { 0x42B6, 72699 }, - { 0x42B0, 72703 }, - { 0x42B2, 72707 }, - { 0x42B9, 72711 }, - { 0x42AE, 72715 }, - { 0x42BD, 72719 }, - { 0x42B4, 72723 }, - { 0x42A1, 72727 }, - { 0x42A0, 72732 }, - { 0x429F, 72737 }, - { 0x42A3, 72742 }, - { 0x42A2, 72747 }, - { 0x42A4, 72752 }, - { 0x42BB, 72757 }, - { 0x42BF, 72761 }, - { 0x42A7, 72765 }, - { 0x42A6, 72770 }, - { 0x42A5, 72775 }, - { 0x42A9, 72780 }, - { 0x42A8, 72785 }, - { 0x42AA, 72790 }, - { 0x9187, 72795 }, - { 0x9158, 72797 }, - { 0x2744, 72799 }, - { 0x2742, 72804 }, - { 0x2743, 72809 }, - { 0x2745, 72814 }, - { 0x9053, 72819 }, - { 0x9341, 72825 }, - { 0x1F1B, 72827 }, - { 0x23AC, 72829 }, - { 0x23B1, 72834 }, - { 0x23AD, 72839 }, - { 0x23B0, 72844 }, - { 0x23AF, 72849 }, - { 0x23B4, 72854 }, - { 0x8DB6, 72859 }, - { 0x23B3, 72864 }, - { 0x23B2, 72869 }, - { 0x23AE, 72874 }, - { 0x23B5, 72879 }, - { 0x23A2, 72884 }, - { 0x23A7, 72889 }, - { 0x23A3, 72894 }, - { 0x23A6, 72899 }, - { 0x23A5, 72904 }, - { 0x23AA, 72909 }, - { 0x23A9, 72914 }, - { 0x23A8, 72919 }, - { 0x23A4, 72924 }, - { 0x23AB, 72929 }, - { 0x23B6, 72934 }, - { 0x23BB, 72940 }, - { 0x23B7, 72946 }, - { 0x23BA, 72952 }, - { 0x23B9, 72958 }, - { 0x23BE, 72964 }, - { 0x8DB7, 72970 }, - { 0x23BD, 72976 }, - { 0x23BC, 72982 }, - { 0x23B8, 72988 }, - { 0x23BF, 72994 }, - { 0x1E7A, 73000 }, - { 0x22DA, 73001 }, - { 0x8FDF, 73003 }, - { 0x22CF, 73004 }, - { 0x22CE, 73007 }, - { 0x2825, 73010 }, - { 0x1D28, 73012 }, - { 0x905A, 73014 }, - { 0x438F, 73015 }, - { 0x4397, 73018 }, - { 0x439C, 73021 }, - { 0x43A5, 73024 }, - { 0x43AE, 73027 }, - { 0x43B1, 73030 }, - { 0x4390, 73033 }, - { 0x4391, 73036 }, - { 0x4393, 73039 }, - { 0x4396, 73042 }, - { 0x4398, 73045 }, - { 0x4399, 73048 }, - { 0x439B, 73051 }, - { 0x439D, 73054 }, - { 0x439E, 73057 }, - { 0x439F, 73060 }, - { 0x43A1, 73063 }, - { 0x43A3, 73066 }, - { 0x43A2, 73069 }, - { 0x43A6, 73072 }, - { 0x43A7, 73075 }, - { 0x43A8, 73078 }, - { 0x43AA, 73081 }, - { 0x43AC, 73084 }, - { 0x43AF, 73087 }, - { 0x43B0, 73090 }, - { 0x43B2, 73093 }, - { 0x4392, 73096 }, - { 0x4395, 73099 }, - { 0x43B4, 73102 }, - { 0x439A, 73105 }, - { 0x43B6, 73108 }, - { 0x43A0, 73111 }, - { 0x4394, 73114 }, - { 0x43A4, 73117 }, - { 0x43A9, 73120 }, - { 0x43AB, 73123 }, - { 0x43AD, 73126 }, - { 0x43B3, 73129 }, - { 0x43B5, 73132 }, - { 0x1E5F, 73135 }, - { 0x1F4C, 73137 }, - { 0x1F50, 73142 }, - { 0x1F49, 73148 }, - { 0x1F4D, 73154 }, - { 0x1F4F, 73158 }, - { 0x1F4A, 73162 }, - { 0x23FE, 73172 }, - { 0x2705, 73176 }, - { 0x4AB5, 73180 }, - { 0x4AC1, 73183 }, - { 0x4ABD, 73186 }, - { 0x4ABE, 73189 }, - { 0x4AC6, 73192 }, - { 0x4AB6, 73195 }, - { 0x4AC0, 73198 }, - { 0x4AB2, 73201 }, - { 0x4AB8, 73204 }, - { 0x4ABB, 73207 }, - { 0x4AC3, 73210 }, - { 0x4AC4, 73213 }, - { 0x4AC5, 73216 }, - { 0x4AB9, 73219 }, - { 0x4ABA, 73222 }, - { 0x4AB1, 73225 }, - { 0x4AB3, 73228 }, - { 0x4AC2, 73231 }, - { 0x4AB7, 73234 }, - { 0x4AB4, 73237 }, - { 0x4ABC, 73240 }, - { 0x4ABF, 73243 }, - { 0x4AC7, 73246 }, - { 0x8FA0, 73249 }, - { 0x94F4, 73250 }, - { 0x230A, 73251 }, - { 0x255B, 73259 }, - { 0x2558, 73265 }, - { 0x91DB, 73270 }, - { 0x95CE, 73272 }, - { 0x21F5, 73273 }, - { 0x8F56, 73274 }, - { 0x91E6, 73278 }, - { 0x95C5, 73280 }, - { 0x2708, 73283 }, - { 0x948E, 73284 }, - { 0x22DD, 73286 }, - { 0x94C0, 73288 }, - { 0x8ED2, 73290 }, - { 0x94AB, 73292 }, - { 0x94BB, 73293 }, - { 0x4D72, 73294 }, - { 0x4D71, 73298 }, - { 0x4D63, 73300 }, - { 0x4D73, 73303 }, - { 0x4D70, 73306 }, - { 0x4D33, 73309 }, - { 0x4D32, 73312 }, - { 0x4D64, 73315 }, - { 0x4D30, 73318 }, - { 0x4D31, 73323 }, - { 0x4D66, 73326 }, - { 0x4D68, 73330 }, - { 0x4D65, 73334 }, - { 0x4D6D, 73338 }, - { 0x4D6F, 73342 }, - { 0x4D6C, 73346 }, - { 0x4D67, 73350 }, - { 0x4D6E, 73354 }, - { 0x4D69, 73358 }, - { 0x4D78, 73362 }, - { 0x4D6A, 73367 }, - { 0x4D79, 73372 }, - { 0x4D6B, 73377 }, - { 0x4D34, 73382 }, - { 0x4D36, 73385 }, - { 0x4D38, 73388 }, - { 0x4D35, 73391 }, - { 0x4D3D, 73394 }, - { 0x4D3F, 73397 }, - { 0x4D56, 73400 }, - { 0x4D45, 73403 }, - { 0x4D51, 73406 }, - { 0x4D3C, 73409 }, - { 0x4D42, 73412 }, - { 0x4D61, 73415 }, - { 0x4D37, 73418 }, - { 0x4D47, 73421 }, - { 0x4D40, 73424 }, - { 0x4D5B, 73427 }, - { 0x4D58, 73430 }, - { 0x4D53, 73433 }, - { 0x4D3E, 73436 }, - { 0x4D54, 73439 }, - { 0x4D5A, 73442 }, - { 0x4D60, 73445 }, - { 0x4D4F, 73448 }, - { 0x4D39, 73451 }, - { 0x4D5D, 73454 }, - { 0x4D59, 73457 }, - { 0x4D57, 73460 }, - { 0x4D46, 73463 }, - { 0x4D4C, 73466 }, - { 0x4D52, 73469 }, - { 0x4D43, 73472 }, - { 0x4D48, 73475 }, - { 0x4D41, 73478 }, - { 0x4D5C, 73481 }, - { 0x4D44, 73484 }, - { 0x4D4E, 73487 }, - { 0x4D49, 73490 }, - { 0x4D55, 73493 }, - { 0x4D5E, 73496 }, - { 0x4D5F, 73499 }, - { 0x4D50, 73502 }, - { 0x4D4A, 73505 }, - { 0x4D4D, 73508 }, - { 0x4D4B, 73511 }, - { 0x4D75, 73514 }, - { 0x4D74, 73519 }, - { 0x4D3B, 73523 }, - { 0x4D3A, 73527 }, - { 0x4D77, 73531 }, - { 0x4D76, 73535 }, - { 0x904A, 73539 }, - { 0x1D2B, 73541 }, - { 0x5331, 73543 }, - { 0x532F, 73546 }, - { 0x532E, 73550 }, - { 0x5333, 73554 }, - { 0x5338, 73558 }, - { 0x5334, 73562 }, - { 0x5337, 73566 }, - { 0x5336, 73570 }, - { 0x533B, 73574 }, - { 0x5332, 73578 }, - { 0x533A, 73582 }, - { 0x5339, 73586 }, - { 0x5335, 73590 }, - { 0x5326, 73594 }, - { 0x5328, 73599 }, - { 0x5325, 73604 }, - { 0x532B, 73609 }, - { 0x532D, 73614 }, - { 0x532A, 73619 }, - { 0x5327, 73624 }, - { 0x532C, 73629 }, - { 0x5329, 73634 }, - { 0x52FD, 73639 }, - { 0x52FF, 73643 }, - { 0x5301, 73647 }, - { 0x52FE, 73651 }, - { 0x5304, 73655 }, - { 0x5306, 73659 }, - { 0x5309, 73663 }, - { 0x5316, 73667 }, - { 0x5313, 73671 }, - { 0x5303, 73675 }, - { 0x5311, 73679 }, - { 0x5322, 73683 }, - { 0x5300, 73687 }, - { 0x531B, 73691 }, - { 0x530C, 73695 }, - { 0x5310, 73699 }, - { 0x530B, 73703 }, - { 0x5315, 73707 }, - { 0x5305, 73711 }, - { 0x5320, 73715 }, - { 0x5323, 73719 }, - { 0x5324, 73723 }, - { 0x530E, 73727 }, - { 0x5302, 73731 }, - { 0x5308, 73735 }, - { 0x5307, 73739 }, - { 0x530A, 73743 }, - { 0x5317, 73747 }, - { 0x531D, 73751 }, - { 0x5314, 73755 }, - { 0x5312, 73759 }, - { 0x531C, 73763 }, - { 0x530D, 73767 }, - { 0x531A, 73771 }, - { 0x531F, 73775 }, - { 0x5321, 73779 }, - { 0x530F, 73783 }, - { 0x5318, 73787 }, - { 0x531E, 73791 }, - { 0x5319, 73795 }, - { 0x5330, 73799 }, - { 0x903A, 73802 }, - { 0x8FEC, 73803 }, - { 0x900F, 73805 }, - { 0x14A5, 73806 }, - { 0x14A3, 73809 }, - { 0x14A4, 73813 }, - { 0x1491, 73817 }, - { 0x1492, 73820 }, - { 0x1493, 73823 }, - { 0x149B, 73826 }, - { 0x1498, 73829 }, - { 0x1495, 73832 }, - { 0x14A2, 73835 }, - { 0x1494, 73838 }, - { 0x149F, 73841 }, - { 0x149C, 73844 }, - { 0x1499, 73847 }, - { 0x149A, 73850 }, - { 0x149E, 73853 }, - { 0x14A1, 73856 }, - { 0x1497, 73859 }, - { 0x14A0, 73862 }, - { 0x149D, 73865 }, - { 0x1496, 73868 }, - { 0x1D2D, 73871 }, - { 0x9445, 73873 }, - { 0x9062, 73875 }, - { 0x1CEB, 73878 }, - { 0x1CE9, 73882 }, - { 0x7CD6, 73885 }, - { 0x7CD4, 73889 }, - { 0x96B2, 73892 }, - { 0x2205, 73895 }, - { 0x2204, 73898 }, - { 0x9692, 73900 }, - { 0x9697, 73903 }, - { 0x96B5, 73907 }, - { 0x8FA1, 73913 }, - { 0x226F, 73915 }, - { 0x0B4E, 73916 }, - { 0x0B3D, 73920 }, - { 0x0B4C, 73923 }, - { 0x0B0B, 73926 }, - { 0x0B07, 73929 }, - { 0x0B0A, 73933 }, - { 0x0B09, 73936 }, - { 0x0B3E, 73939 }, - { 0x0B61, 73942 }, - { 0x0B08, 73948 }, - { 0x0B5F, 73951 }, - { 0x0B60, 73954 }, - { 0x0B56, 73957 }, - { 0x0B5B, 73960 }, - { 0x0B57, 73963 }, - { 0x0B5A, 73966 }, - { 0x0B59, 73969 }, - { 0x0B5E, 73972 }, - { 0x0B55, 73975 }, - { 0x0B5D, 73978 }, - { 0x0B5C, 73981 }, - { 0x0B58, 73984 }, - { 0x0B46, 73987 }, - { 0x0B40, 73991 }, - { 0x0B49, 73995 }, - { 0x0B42, 73999 }, - { 0x0B3F, 74003 }, - { 0x0B48, 74007 }, - { 0x0B4B, 74011 }, - { 0x0B47, 74015 }, - { 0x0B41, 74019 }, - { 0x0B4A, 74023 }, - { 0x0B43, 74027 }, - { 0x0B53, 74031 }, - { 0x0B44, 74036 }, - { 0x0B54, 74041 }, - { 0x0B45, 74046 }, - { 0x0B4D, 74051 }, - { 0x0B0C, 74054 }, - { 0x0B14, 74057 }, - { 0x0B0E, 74060 }, - { 0x0B17, 74063 }, - { 0x0B10, 74066 }, - { 0x0B0D, 74069 }, - { 0x0B16, 74072 }, - { 0x0B19, 74075 }, - { 0x0B30, 74078 }, - { 0x0B1F, 74081 }, - { 0x0B2B, 74084 }, - { 0x0B15, 74087 }, - { 0x0B50, 74090 }, - { 0x0B1C, 74093 }, - { 0x0B3C, 74096 }, - { 0x0B0F, 74099 }, - { 0x0B21, 74102 }, - { 0x0B1A, 74105 }, - { 0x0B36, 74108 }, - { 0x0B32, 74111 }, - { 0x0B2D, 74114 }, - { 0x0B18, 74117 }, - { 0x0B2E, 74120 }, - { 0x0B34, 74123 }, - { 0x0B3B, 74126 }, - { 0x0B29, 74129 }, - { 0x0B11, 74132 }, - { 0x0B38, 74135 }, - { 0x0B33, 74138 }, - { 0x0B31, 74141 }, - { 0x0B20, 74144 }, - { 0x0B26, 74147 }, - { 0x0B2C, 74150 }, - { 0x0B1D, 74153 }, - { 0x0B22, 74156 }, - { 0x0B1B, 74159 }, - { 0x0B37, 74162 }, - { 0x0B1E, 74165 }, - { 0x0B28, 74168 }, - { 0x0B23, 74171 }, - { 0x0B2F, 74174 }, - { 0x0B35, 74177 }, - { 0x0B39, 74180 }, - { 0x0B3A, 74183 }, - { 0x0B2A, 74186 }, - { 0x0B24, 74189 }, - { 0x0B27, 74192 }, - { 0x0B50, 74195 }, - { 0x0B25, 74198 }, - { 0x0B4F, 74201 }, - { 0x0B13, 74205 }, - { 0x0B12, 74209 }, - { 0x0B52, 74213 }, - { 0x0B51, 74217 }, - { 0x7EF2, 74221 }, - { 0x91F0, 74222 }, - { 0x91CA, 74228 }, - { 0x91CD, 74230 }, - { 0x91CC, 74235 }, - { 0x8FB9, 74240 }, - { 0x2E68, 74241 }, - { 0x94CC, 74244 }, - { 0x1E7F, 74245 }, - { 0x267E, 74247 }, - { 0x268E, 74252 }, - { 0x268F, 74257 }, - { 0x2687, 74262 }, - { 0x2689, 74267 }, - { 0x2685, 74272 }, - { 0x1E7E, 74277 }, - { 0x267D, 74279 }, - { 0x268A, 74284 }, - { 0x268C, 74289 }, - { 0x2686, 74294 }, - { 0x268B, 74299 }, - { 0x2688, 74303 }, - { 0x21F6, 74308 }, - { 0x240C, 74309 }, - { 0x9521, 74314 }, - { 0x8CD9, 74315 }, - { 0x8CE2, 74320 }, - { 0x8CD0, 74325 }, - { 0x8CCD, 74330 }, - { 0x8CDE, 74334 }, - { 0x8CE7, 74339 }, - { 0x8CD5, 74344 }, - { 0x8CDA, 74349 }, - { 0x8CE3, 74354 }, - { 0x8CD1, 74359 }, - { 0x8CF4, 74364 }, - { 0x8CC9, 74367 }, - { 0x8CDD, 74371 }, - { 0x8CE6, 74376 }, - { 0x8CD4, 74381 }, - { 0x8CDC, 74386 }, - { 0x8CE5, 74391 }, - { 0x8CD3, 74396 }, - { 0x8CE1, 74401 }, - { 0x8CEA, 74406 }, - { 0x8CD8, 74411 }, - { 0x8CEB, 74416 }, - { 0x8CCB, 74419 }, - { 0x8CE0, 74423 }, - { 0x8CE9, 74428 }, - { 0x8CD7, 74433 }, - { 0x8CCE, 74438 }, - { 0x8CF3, 74442 }, - { 0x8CCC, 74445 }, - { 0x8CDF, 74449 }, - { 0x8CE8, 74454 }, - { 0x8CD6, 74459 }, - { 0x8CCA, 74464 }, - { 0x8CDB, 74468 }, - { 0x8CE4, 74473 }, - { 0x8CD2, 74478 }, - { 0x8CCF, 74483 }, - { 0x8CF1, 74487 }, - { 0x8CED, 74490 }, - { 0x8CEC, 74493 }, - { 0x8CEF, 74496 }, - { 0x8CF0, 74499 }, - { 0x8CF2, 74502 }, - { 0x8CEE, 74505 }, - { 0x5354, 74508 }, - { 0x534E, 74512 }, - { 0x5351, 74514 }, - { 0x534F, 74518 }, - { 0x5352, 74522 }, - { 0x5350, 74526 }, - { 0x534D, 74530 }, - { 0x5340, 74533 }, - { 0x5345, 74536 }, - { 0x5343, 74539 }, - { 0x533D, 74542 }, - { 0x5346, 74545 }, - { 0x533C, 74548 }, - { 0x534A, 74551 }, - { 0x5341, 74554 }, - { 0x5344, 74557 }, - { 0x533F, 74560 }, - { 0x5349, 74563 }, - { 0x534C, 74566 }, - { 0x5342, 74569 }, - { 0x534B, 74572 }, - { 0x5348, 74575 }, - { 0x533E, 74578 }, - { 0x5347, 74581 }, - { 0x5353, 74584 }, - { 0x234C, 74586 }, - { 0x94D1, 74588 }, - { 0x07C4, 74589 }, - { 0x07C6, 74592 }, - { 0x07C5, 74595 }, - { 0x07C7, 74598 }, - { 0x07CD, 74601 }, - { 0x07CE, 74604 }, - { 0x07CF, 74607 }, - { 0x07D0, 74610 }, - { 0x07D3, 74613 }, - { 0x07D5, 74616 }, - { 0x07D6, 74619 }, - { 0x07D1, 74622 }, - { 0x07D8, 74625 }, - { 0x07C9, 74628 }, - { 0x07D2, 74631 }, - { 0x07CA, 74634 }, - { 0x07DB, 74637 }, - { 0x07D7, 74640 }, - { 0x07D4, 74643 }, - { 0x07CB, 74646 }, - { 0x07DA, 74649 }, - { 0x07CC, 74652 }, - { 0x07C3, 74655 }, - { 0x07C8, 74658 }, - { 0x07D9, 74661 }, - { 0x07DE, 74664 }, - { 0x07DC, 74667 }, - { 0x07DF, 74670 }, - { 0x07DD, 74672 }, - { 0x95A4, 74675 }, - { 0x526E, 74676 }, - { 0x526F, 74679 }, - { 0x52B0, 74682 }, - { 0x52B1, 74685 }, - { 0x52AE, 74688 }, - { 0x52AC, 74692 }, - { 0x52AF, 74696 }, - { 0x52AD, 74700 }, - { 0x52AB, 74704 }, - { 0x528D, 74708 }, - { 0x5286, 74711 }, - { 0x527E, 74714 }, - { 0x5274, 74717 }, - { 0x527A, 74720 }, - { 0x5272, 74723 }, - { 0x528C, 74726 }, - { 0x5276, 74729 }, - { 0x5270, 74732 }, - { 0x5289, 74735 }, - { 0x527F, 74738 }, - { 0x527B, 74741 }, - { 0x527C, 74744 }, - { 0x5288, 74747 }, - { 0x528B, 74750 }, - { 0x5278, 74753 }, - { 0x5283, 74756 }, - { 0x5287, 74759 }, - { 0x5285, 74762 }, - { 0x5275, 74765 }, - { 0x5282, 74768 }, - { 0x5271, 74771 }, - { 0x5273, 74774 }, - { 0x5277, 74777 }, - { 0x527D, 74780 }, - { 0x528A, 74783 }, - { 0x5279, 74786 }, - { 0x5280, 74789 }, - { 0x5284, 74792 }, - { 0x5281, 74795 }, - { 0x52AA, 74798 }, - { 0x529C, 74802 }, - { 0x5292, 74806 }, - { 0x5298, 74810 }, - { 0x5290, 74814 }, - { 0x52A9, 74818 }, - { 0x5294, 74822 }, - { 0x528E, 74826 }, - { 0x52A6, 74830 }, - { 0x529D, 74834 }, - { 0x5299, 74838 }, - { 0x529A, 74842 }, - { 0x52A5, 74846 }, - { 0x52A8, 74850 }, - { 0x5296, 74854 }, - { 0x52A1, 74858 }, - { 0x52A4, 74862 }, - { 0x52A3, 74866 }, - { 0x5293, 74870 }, - { 0x52A0, 74874 }, - { 0x528F, 74878 }, - { 0x5291, 74882 }, - { 0x5295, 74886 }, - { 0x529B, 74890 }, - { 0x52A7, 74894 }, - { 0x5297, 74898 }, - { 0x529E, 74902 }, - { 0x52A2, 74906 }, - { 0x529F, 74910 }, - { 0x9479, 74914 }, - { 0x52ED, 74917 }, - { 0x52EE, 74921 }, - { 0x52EF, 74925 }, - { 0x52EC, 74929 }, - { 0x52EB, 74933 }, - { 0x52F4, 74937 }, - { 0x52F9, 74941 }, - { 0x52F5, 74945 }, - { 0x52F8, 74949 }, - { 0x52F7, 74953 }, - { 0x52FC, 74957 }, - { 0x52F3, 74961 }, - { 0x52FB, 74965 }, - { 0x52FA, 74969 }, - { 0x52F6, 74973 }, - { 0x52F1, 74977 }, - { 0x52E7, 74980 }, - { 0x52E2, 74985 }, - { 0x52E9, 74990 }, - { 0x52E4, 74995 }, - { 0x52E1, 75000 }, - { 0x52E8, 75005 }, - { 0x52EA, 75010 }, - { 0x52E3, 75015 }, - { 0x52E5, 75020 }, - { 0x52E6, 75025 }, - { 0x52B2, 75031 }, - { 0x52B8, 75035 }, - { 0x52B4, 75039 }, - { 0x52BA, 75043 }, - { 0x52B6, 75047 }, - { 0x52B3, 75051 }, - { 0x52B9, 75055 }, - { 0x52BB, 75059 }, - { 0x52D2, 75063 }, - { 0x52C1, 75067 }, - { 0x52CD, 75071 }, - { 0x52BE, 75075 }, - { 0x52DC, 75079 }, - { 0x52B5, 75083 }, - { 0x52C3, 75087 }, - { 0x52BC, 75091 }, - { 0x52D7, 75095 }, - { 0x52D4, 75099 }, - { 0x52CF, 75103 }, - { 0x52D0, 75107 }, - { 0x52D6, 75111 }, - { 0x52DB, 75115 }, - { 0x52CB, 75119 }, - { 0x52B7, 75123 }, - { 0x52D8, 75127 }, - { 0x52D5, 75131 }, - { 0x52D3, 75135 }, - { 0x52C2, 75139 }, - { 0x52C8, 75143 }, - { 0x52CE, 75147 }, - { 0x52BF, 75151 }, - { 0x52C4, 75155 }, - { 0x52BD, 75159 }, - { 0x52DD, 75163 }, - { 0x52C0, 75167 }, - { 0x52CA, 75171 }, - { 0x52C5, 75175 }, - { 0x52D1, 75179 }, - { 0x52D9, 75183 }, - { 0x52DA, 75187 }, - { 0x52CC, 75191 }, - { 0x52E0, 75195 }, - { 0x52C6, 75199 }, - { 0x52C9, 75203 }, - { 0x52DF, 75207 }, - { 0x52DE, 75211 }, - { 0x52C7, 75215 }, - { 0x52F0, 75219 }, - { 0x52F2, 75222 }, - { 0x95EF, 75225 }, - { 0x9101, 75227 }, - { 0x226B, 75231 }, - { 0x94CE, 75232 }, - { 0x1F46, 75233 }, - { 0x9243, 75236 }, - { 0x4CC5, 75237 }, - { 0x4CC8, 75240 }, - { 0x4CC6, 75243 }, - { 0x4CC7, 75246 }, - { 0x4CDF, 75249 }, - { 0x4CCD, 75252 }, - { 0x4CDA, 75255 }, - { 0x4CCB, 75258 }, - { 0x4CE7, 75261 }, - { 0x4CCF, 75264 }, - { 0x4CC9, 75267 }, - { 0x4CE4, 75270 }, - { 0x4CE1, 75273 }, - { 0x4CDC, 75276 }, - { 0x4CDD, 75279 }, - { 0x4CE3, 75282 }, - { 0x4CE6, 75285 }, - { 0x4CD8, 75288 }, - { 0x4CE5, 75291 }, - { 0x4CE2, 75294 }, - { 0x4CE0, 75297 }, - { 0x4CCE, 75300 }, - { 0x4CD4, 75303 }, - { 0x4CDB, 75306 }, - { 0x4CCC, 75309 }, - { 0x4CD0, 75312 }, - { 0x4CCA, 75315 }, - { 0x4CD7, 75318 }, - { 0x4CD1, 75321 }, - { 0x4CDE, 75324 }, - { 0x4CE9, 75327 }, - { 0x4CE8, 75330 }, - { 0x4CD9, 75333 }, - { 0x4CD2, 75336 }, - { 0x4CD5, 75339 }, - { 0x4CD6, 75342 }, - { 0x4CD3, 75345 }, - { 0x4CEA, 75348 }, - { 0x8F68, 75351 }, - { 0x8F6F, 75353 }, - { 0x80C5, 75355 }, - { 0x80C6, 75359 }, - { 0x80C7, 75363 }, - { 0x80C8, 75369 }, - { 0x80C2, 75375 }, - { 0x80C3, 75379 }, - { 0x80C4, 75385 }, - { 0x80E5, 75391 }, - { 0x8130, 75395 }, - { 0x80AE, 75398 }, - { 0x8138, 75402 }, - { 0x80D7, 75405 }, - { 0x80AD, 75409 }, - { 0x814A, 75413 }, - { 0x8118, 75418 }, - { 0x8116, 75422 }, - { 0x811A, 75426 }, - { 0x811C, 75430 }, - { 0x8106, 75434 }, - { 0x80E4, 75440 }, - { 0x817F, 75446 }, - { 0x80B0, 75450 }, - { 0x8156, 75453 }, - { 0x8157, 75456 }, - { 0x80C9, 75460 }, - { 0x80CA, 75464 }, - { 0x80CE, 75468 }, - { 0x80CF, 75472 }, - { 0x8162, 75476 }, - { 0x8161, 75480 }, - { 0x8100, 75484 }, - { 0x80DE, 75488 }, - { 0x8152, 75492 }, - { 0x80AA, 75497 }, - { 0x80F5, 75502 }, - { 0x80F4, 75507 }, - { 0x80FB, 75512 }, - { 0x80E6, 75516 }, - { 0x818B, 75520 }, - { 0x8139, 75523 }, - { 0x813C, 75526 }, - { 0x813B, 75530 }, - { 0x80F9, 75534 }, - { 0x8155, 75538 }, - { 0x8117, 75542 }, - { 0x8115, 75546 }, - { 0x8119, 75550 }, - { 0x811B, 75554 }, - { 0x80B8, 75558 }, - { 0x80FE, 75561 }, - { 0x8171, 75564 }, - { 0x80A6, 75567 }, - { 0x8133, 75571 }, - { 0x8137, 75574 }, - { 0x8136, 75580 }, - { 0x818C, 75585 }, - { 0x8159, 75588 }, - { 0x8163, 75591 }, - { 0x8164, 75596 }, - { 0x8132, 75601 }, - { 0x80DC, 75604 }, - { 0x8151, 75608 }, - { 0x8150, 75613 }, - { 0x8131, 75617 }, - { 0x80AB, 75620 }, - { 0x80AF, 75625 }, - { 0x80D2, 75628 }, - { 0x80D3, 75632 }, - { 0x80A9, 75636 }, - { 0x8175, 75640 }, - { 0x80FF, 75643 }, - { 0x80DD, 75647 }, - { 0x80B6, 75651 }, - { 0x815A, 75655 }, - { 0x8165, 75658 }, - { 0x80E7, 75662 }, - { 0x8177, 75667 }, - { 0x80D6, 75670 }, - { 0x80A8, 75674 }, - { 0x814B, 75678 }, - { 0x80CD, 75682 }, - { 0x80CC, 75686 }, - { 0x80A5, 75690 }, - { 0x8102, 75694 }, - { 0x80E0, 75698 }, - { 0x8180, 75702 }, - { 0x8181, 75707 }, - { 0x818A, 75713 }, - { 0x8185, 75718 }, - { 0x8182, 75723 }, - { 0x8184, 75728 }, - { 0x8189, 75733 }, - { 0x8188, 75740 }, - { 0x8187, 75747 }, - { 0x8186, 75754 }, - { 0x8183, 75761 }, - { 0x8158, 75766 }, - { 0x815D, 75769 }, - { 0x8167, 75772 }, - { 0x815E, 75776 }, - { 0x80D8, 75780 }, - { 0x80D9, 75784 }, - { 0x80AC, 75788 }, - { 0x80A4, 75792 }, - { 0x8174, 75796 }, - { 0x80E9, 75800 }, - { 0x80E8, 75805 }, - { 0x812F, 75810 }, - { 0x8169, 75813 }, - { 0x816B, 75820 }, - { 0x816A, 75828 }, - { 0x816C, 75835 }, - { 0x816D, 75842 }, - { 0x816E, 75849 }, - { 0x816F, 75857 }, - { 0x8170, 75865 }, - { 0x80B9, 75873 }, - { 0x80B7, 75876 }, - { 0x80FD, 75879 }, - { 0x80FC, 75884 }, - { 0x80B4, 75889 }, - { 0x80B5, 75892 }, - { 0x80D0, 75896 }, - { 0x80D1, 75900 }, - { 0x8176, 75904 }, - { 0x8101, 75907 }, - { 0x80DF, 75911 }, - { 0x80D5, 75915 }, - { 0x80D4, 75920 }, - { 0x80A7, 75925 }, - { 0x8179, 75930 }, - { 0x810C, 75933 }, - { 0x810D, 75937 }, - { 0x810E, 75941 }, - { 0x813A, 75945 }, - { 0x80CB, 75949 }, - { 0x80FA, 75954 }, - { 0x80BA, 75958 }, - { 0x813D, 75962 }, - { 0x813E, 75966 }, - { 0x813F, 75970 }, - { 0x8140, 75974 }, - { 0x8141, 75978 }, - { 0x8142, 75982 }, - { 0x8143, 75986 }, - { 0x8144, 75990 }, - { 0x8145, 75994 }, - { 0x8146, 75998 }, - { 0x8147, 76002 }, - { 0x80B1, 76006 }, - { 0x80B2, 76010 }, - { 0x80B3, 76014 }, - { 0x80BF, 76018 }, - { 0x817A, 76022 }, - { 0x817E, 76025 }, - { 0x80EB, 76029 }, - { 0x80F3, 76035 }, - { 0x80F2, 76042 }, - { 0x80EA, 76049 }, - { 0x80F1, 76055 }, - { 0x80F0, 76061 }, - { 0x80ED, 76067 }, - { 0x80EC, 76073 }, - { 0x80EF, 76079 }, - { 0x80EE, 76085 }, - { 0x80BB, 76091 }, - { 0x814D, 76095 }, - { 0x8128, 76100 }, - { 0x812B, 76104 }, - { 0x8127, 76108 }, - { 0x814C, 76112 }, - { 0x8129, 76117 }, - { 0x814F, 76121 }, - { 0x8107, 76126 }, - { 0x8124, 76130 }, - { 0x812A, 76134 }, - { 0x811D, 76138 }, - { 0x812C, 76142 }, - { 0x8110, 76147 }, - { 0x8111, 76151 }, - { 0x8112, 76155 }, - { 0x8113, 76159 }, - { 0x8114, 76163 }, - { 0x811F, 76167 }, - { 0x812D, 76171 }, - { 0x8121, 76176 }, - { 0x814E, 76180 }, - { 0x811E, 76184 }, - { 0x8109, 76188 }, - { 0x810A, 76192 }, - { 0x810B, 76196 }, - { 0x810F, 76200 }, - { 0x8108, 76205 }, - { 0x8120, 76210 }, - { 0x8123, 76214 }, - { 0x8122, 76218 }, - { 0x8134, 76222 }, - { 0x80BE, 76225 }, - { 0x80BD, 76229 }, - { 0x8153, 76233 }, - { 0x8154, 76237 }, - { 0x8172, 76241 }, - { 0x8173, 76246 }, - { 0x817B, 76251 }, - { 0x817C, 76254 }, - { 0x8178, 76258 }, - { 0x817D, 76261 }, - { 0x8103, 76265 }, - { 0x80E1, 76269 }, - { 0x8125, 76273 }, - { 0x8126, 76277 }, - { 0x8166, 76281 }, - { 0x815C, 76285 }, - { 0x815B, 76289 }, - { 0x8168, 76293 }, - { 0x8160, 76297 }, - { 0x815F, 76301 }, - { 0x80C0, 76305 }, - { 0x80BC, 76309 }, - { 0x8135, 76313 }, - { 0x80C1, 76316 }, - { 0x8148, 76320 }, - { 0x8149, 76323 }, - { 0x80F8, 76326 }, - { 0x812E, 76330 }, - { 0x80DA, 76333 }, - { 0x80DB, 76337 }, - { 0x8105, 76341 }, - { 0x80E3, 76345 }, - { 0x8104, 76349 }, - { 0x80E2, 76353 }, - { 0x80F7, 76357 }, - { 0x80F6, 76363 }, - { 0x8F6C, 76369 }, - { 0x8F4B, 76371 }, - { 0x4F86, 76375 }, - { 0x4F8B, 76379 }, - { 0x4F87, 76383 }, - { 0x4F8A, 76387 }, - { 0x4F89, 76391 }, - { 0x4F8E, 76395 }, - { 0x4F85, 76399 }, - { 0x4F8D, 76403 }, - { 0x4F8C, 76407 }, - { 0x4F88, 76411 }, - { 0x3957, 76415 }, - { 0x395C, 76420 }, - { 0x3958, 76425 }, - { 0x395B, 76430 }, - { 0x395A, 76435 }, - { 0x395F, 76440 }, - { 0x3956, 76445 }, - { 0x395E, 76450 }, - { 0x395D, 76455 }, - { 0x3959, 76460 }, - { 0x0E41, 76465 }, - { 0x0E46, 76469 }, - { 0x0E42, 76473 }, - { 0x0E45, 76477 }, - { 0x0E44, 76481 }, - { 0x0E49, 76485 }, - { 0x0E40, 76489 }, - { 0x0E48, 76493 }, - { 0x0E47, 76497 }, - { 0x0E43, 76501 }, - { 0x0DE7, 76505 }, - { 0x39D3, 76509 }, - { 0x39D4, 76514 }, - { 0x39D5, 76519 }, - { 0x0DEA, 76524 }, - { 0x394B, 76527 }, - { 0x0E37, 76531 }, - { 0x0E38, 76535 }, - { 0x0E39, 76539 }, - { 0x0E3A, 76543 }, - { 0x0E3B, 76547 }, - { 0x0E3C, 76552 }, - { 0x0E3D, 76557 }, - { 0x0E3F, 76563 }, - { 0x0E4A, 76568 }, - { 0x0E4B, 76572 }, - { 0x0DFA, 76576 }, - { 0x0DE9, 76580 }, - { 0x0DFB, 76583 }, - { 0x0DE8, 76586 }, - { 0x0E19, 76589 }, - { 0x0E1A, 76595 }, - { 0x0E1B, 76601 }, - { 0x0E1C, 76607 }, - { 0x0E1D, 76613 }, - { 0x0DE6, 76619 }, - { 0x0E14, 76622 }, - { 0x0E13, 76629 }, - { 0x0DF1, 76635 }, - { 0x0DF6, 76638 }, - { 0x0DF2, 76641 }, - { 0x0DF5, 76644 }, - { 0x0DF4, 76647 }, - { 0x0DF9, 76650 }, - { 0x0DF0, 76653 }, - { 0x0DF8, 76656 }, - { 0x0DF7, 76659 }, - { 0x0DF3, 76662 }, - { 0x0DE1, 76665 }, - { 0x0DE5, 76669 }, - { 0x0DDD, 76674 }, - { 0x0DDF, 76678 }, - { 0x0DDC, 76682 }, - { 0x0DE2, 76686 }, - { 0x0DDE, 76690 }, - { 0x0DE0, 76694 }, - { 0x0DE4, 76698 }, - { 0x0DE3, 76703 }, - { 0x0E21, 76708 }, - { 0x0E12, 76714 }, - { 0x0E34, 76720 }, - { 0x0E35, 76725 }, - { 0x0E33, 76731 }, - { 0x0E36, 76736 }, - { 0x0DDB, 76742 }, - { 0x0E4C, 76747 }, - { 0x0E4D, 76752 }, - { 0x0E23, 76757 }, - { 0x0E24, 76762 }, - { 0x0E22, 76767 }, - { 0x0E08, 76772 }, - { 0x0E06, 76777 }, - { 0x0E09, 76782 }, - { 0x0E07, 76787 }, - { 0x0E17, 76792 }, - { 0x0E18, 76799 }, - { 0x0DD1, 76806 }, - { 0x0DD7, 76809 }, - { 0x0DD3, 76812 }, - { 0x0DD9, 76815 }, - { 0x0DD5, 76818 }, - { 0x0DDA, 76821 }, - { 0x0DC7, 76824 }, - { 0x0DB5, 76827 }, - { 0x0DC2, 76830 }, - { 0x0DB2, 76833 }, - { 0x0DCF, 76836 }, - { 0x0DD4, 76839 }, - { 0x0DB7, 76842 }, - { 0x0DB0, 76845 }, - { 0x0DCC, 76848 }, - { 0x0DC9, 76851 }, - { 0x0DC4, 76854 }, - { 0x0DC5, 76857 }, - { 0x0DCB, 76860 }, - { 0x0DCE, 76863 }, - { 0x0DC0, 76866 }, - { 0x0DD6, 76869 }, - { 0x0DCD, 76872 }, - { 0x0DCA, 76875 }, - { 0x0DC8, 76878 }, - { 0x0DB6, 76881 }, - { 0x0DBD, 76884 }, - { 0x0DC3, 76887 }, - { 0x0DB3, 76890 }, - { 0x0DB8, 76893 }, - { 0x0DB1, 76896 }, - { 0x0DD0, 76899 }, - { 0x0DD8, 76902 }, - { 0x0E0C, 76906 }, - { 0x0E0D, 76910 }, - { 0x0E0B, 76914 }, - { 0x0E0A, 76918 }, - { 0x0DB4, 76922 }, - { 0x0DBF, 76925 }, - { 0x0DB9, 76928 }, - { 0x0DC6, 76931 }, - { 0x0E00, 76934 }, - { 0x0E01, 76937 }, - { 0x3963, 76940 }, - { 0x3961, 76945 }, - { 0x394E, 76950 }, - { 0x394F, 76955 }, - { 0x3951, 76960 }, - { 0x3964, 76965 }, - { 0x3953, 76970 }, - { 0x3962, 76975 }, - { 0x3950, 76980 }, - { 0x3952, 76985 }, - { 0x3960, 76990 }, - { 0x3955, 76995 }, - { 0x394D, 77000 }, - { 0x3954, 77005 }, - { 0x0DC1, 77010 }, - { 0x0DBB, 77013 }, - { 0x0DBE, 77016 }, - { 0x0DBA, 77019 }, - { 0x0E11, 77022 }, - { 0x0DD2, 77027 }, - { 0x0E2F, 77031 }, - { 0x0E28, 77035 }, - { 0x0E2B, 77039 }, - { 0x0E2E, 77043 }, - { 0x0E27, 77047 }, - { 0x0E31, 77051 }, - { 0x0E25, 77055 }, - { 0x0E2C, 77059 }, - { 0x0E29, 77063 }, - { 0x394A, 77067 }, - { 0x3947, 77071 }, - { 0x3946, 77075 }, - { 0x3948, 77079 }, - { 0x0E26, 77083 }, - { 0x3949, 77087 }, - { 0x0E2A, 77091 }, - { 0x0E2D, 77095 }, - { 0x0E30, 77099 }, - { 0x39D6, 77103 }, - { 0x39D7, 77108 }, - { 0x0DBC, 77113 }, - { 0x39D2, 77116 }, - { 0x0DEF, 77120 }, - { 0x0E3E, 77124 }, - { 0x39B9, 77129 }, - { 0x39C7, 77133 }, - { 0x39B8, 77137 }, - { 0x39C5, 77141 }, - { 0x39BB, 77145 }, - { 0x39C3, 77149 }, - { 0x39CB, 77153 }, - { 0x39C4, 77157 }, - { 0x39C9, 77161 }, - { 0x39CA, 77165 }, - { 0x39BA, 77169 }, - { 0x39C0, 77173 }, - { 0x39C2, 77177 }, - { 0x39C6, 77181 }, - { 0x39BC, 77185 }, - { 0x39C6, 77189 }, - { 0x39BD, 77193 }, - { 0x39BE, 77197 }, - { 0x39C1, 77201 }, - { 0x39BF, 77205 }, - { 0x0E1E, 77209 }, - { 0x0E1F, 77215 }, - { 0x0E20, 77221 }, - { 0x0E04, 77227 }, - { 0x0E02, 77231 }, - { 0x0E05, 77235 }, - { 0x0E03, 77239 }, - { 0x0E16, 77243 }, - { 0x0E15, 77249 }, - { 0x0E4E, 77255 }, - { 0x0E4F, 77259 }, - { 0x39D0, 77263 }, - { 0x39D1, 77267 }, - { 0x39CF, 77271 }, - { 0x0DFF, 77275 }, - { 0x0DFC, 77278 }, - { 0x0DFD, 77281 }, - { 0x0DFE, 77284 }, - { 0x4F90, 77287 }, - { 0x4F95, 77293 }, - { 0x4F91, 77299 }, - { 0x4F94, 77305 }, - { 0x4F93, 77311 }, - { 0x4F98, 77317 }, - { 0x4F8F, 77323 }, - { 0x4F97, 77329 }, - { 0x4F96, 77335 }, - { 0x4F92, 77341 }, - { 0x39CE, 77347 }, - { 0x39CD, 77351 }, - { 0x39CC, 77355 }, - { 0x394C, 77359 }, - { 0x39C8, 77364 }, - { 0x0E10, 77369 }, - { 0x0E0F, 77375 }, - { 0x0E0E, 77381 }, - { 0x0E32, 77387 }, - { 0x0DEE, 77393 }, - { 0x0DEC, 77398 }, - { 0x0DED, 77403 }, - { 0x0DEB, 77408 }, - { 0x9007, 77413 }, - { 0x1F06, 77414 }, - { 0x1EDF, 77421 }, - { 0x1EE0, 77428 }, - { 0x1EC7, 77435 }, - { 0x1ECB, 77440 }, - { 0x1ECF, 77445 }, - { 0x1EC8, 77449 }, - { 0x1ED0, 77454 }, - { 0x1ECC, 77458 }, - { 0x1E9E, 77463 }, - { 0x2272, 77469 }, - { 0x27F2, 77470 }, - { 0x95A3, 77473 }, - { 0x91C3, 77475 }, - { 0x952E, 77477 }, - { 0x956D, 77480 }, - { 0x9543, 77488 }, - { 0x9533, 77494 }, - { 0x9572, 77497 }, - { 0x9548, 77505 }, - { 0x9530, 77511 }, - { 0x956F, 77514 }, - { 0x9545, 77522 }, - { 0x952F, 77528 }, - { 0x956E, 77531 }, - { 0x9544, 77539 }, - { 0x9531, 77545 }, - { 0x9570, 77548 }, - { 0x9546, 77556 }, - { 0x9532, 77562 }, - { 0x954B, 77565 }, - { 0x9571, 77573 }, - { 0x9560, 77581 }, - { 0x9575, 77589 }, - { 0x9547, 77597 }, - { 0x9536, 77603 }, - { 0x9558, 77609 }, - { 0x955D, 77613 }, - { 0x955A, 77617 }, - { 0x9559, 77621 }, - { 0x955B, 77625 }, - { 0x955C, 77629 }, - { 0x9578, 77633 }, - { 0x957B, 77636 }, - { 0x27BC, 77642 }, - { 0x27BD, 77644 }, - { 0x1CEE, 77646 }, - { 0x413A, 77649 }, - { 0x90F6, 77651 }, - { 0x23DB, 77657 }, - { 0x90F7, 77663 }, - { 0x23DD, 77669 }, - { 0x25D2, 77675 }, - { 0x25D3, 77679 }, - { 0x2A53, 77683 }, - { 0x8FCC, 77685 }, - { 0x9072, 77686 }, - { 0x916B, 77688 }, - { 0x433E, 77691 }, - { 0x4343, 77694 }, - { 0x433F, 77697 }, - { 0x4342, 77700 }, - { 0x4341, 77703 }, - { 0x4346, 77706 }, - { 0x433D, 77709 }, - { 0x4345, 77712 }, - { 0x4344, 77715 }, - { 0x4340, 77718 }, - { 0x4335, 77721 }, - { 0x4336, 77724 }, - { 0x4337, 77727 }, - { 0x4338, 77730 }, - { 0x4339, 77733 }, - { 0x433A, 77736 }, - { 0x4320, 77739 }, - { 0x433B, 77742 }, - { 0x432C, 77745 }, - { 0x432B, 77748 }, - { 0x4333, 77751 }, - { 0x4322, 77754 }, - { 0x433C, 77757 }, - { 0x4326, 77760 }, - { 0x4327, 77763 }, - { 0x4321, 77766 }, - { 0x4323, 77769 }, - { 0x4334, 77772 }, - { 0x4329, 77775 }, - { 0x4324, 77778 }, - { 0x4332, 77781 }, - { 0x431F, 77784 }, - { 0x432A, 77787 }, - { 0x4325, 77790 }, - { 0x432E, 77793 }, - { 0x432F, 77796 }, - { 0x4330, 77799 }, - { 0x4331, 77802 }, - { 0x432D, 77805 }, - { 0x4328, 77808 }, - { 0x8BFD, 77811 }, - { 0x8C0F, 77815 }, - { 0x8C18, 77820 }, - { 0x8C02, 77825 }, - { 0x8C14, 77829 }, - { 0x8C1D, 77834 }, - { 0x8C06, 77839 }, - { 0x8C21, 77843 }, - { 0x8BFE, 77848 }, - { 0x8C10, 77852 }, - { 0x8C19, 77857 }, - { 0x8C01, 77862 }, - { 0x8C13, 77866 }, - { 0x8C1C, 77871 }, - { 0x8C00, 77876 }, - { 0x8C12, 77880 }, - { 0x8C1B, 77885 }, - { 0x8C05, 77890 }, - { 0x8C17, 77894 }, - { 0x8C20, 77899 }, - { 0x8C04, 77904 }, - { 0x8C16, 77908 }, - { 0x8C1F, 77913 }, - { 0x8C0A, 77918 }, - { 0x8C25, 77922 }, - { 0x8C09, 77927 }, - { 0x8C24, 77931 }, - { 0x8C03, 77936 }, - { 0x8C15, 77940 }, - { 0x8C1E, 77945 }, - { 0x8C0B, 77950 }, - { 0x8C26, 77954 }, - { 0x8BFF, 77959 }, - { 0x8C11, 77963 }, - { 0x8C1A, 77968 }, - { 0x8C0D, 77973 }, - { 0x8C28, 77977 }, - { 0x8C0E, 77982 }, - { 0x8C29, 77986 }, - { 0x8C08, 77991 }, - { 0x8C23, 77995 }, - { 0x8C07, 78000 }, - { 0x8C22, 78004 }, - { 0x8C0C, 78009 }, - { 0x8C27, 78013 }, - { 0x8C38, 78018 }, - { 0x8C39, 78023 }, - { 0x8C2A, 78028 }, - { 0x8C2F, 78031 }, - { 0x8C35, 78036 }, - { 0x8C33, 78042 }, - { 0x8C37, 78047 }, - { 0x8C2B, 78053 }, - { 0x8C36, 78058 }, - { 0x8C2E, 78064 }, - { 0x8C2D, 78069 }, - { 0x8C34, 78074 }, - { 0x8C32, 78080 }, - { 0x8C31, 78085 }, - { 0x8C30, 78090 }, - { 0x8C2C, 78095 }, - { 0x918A, 78100 }, - { 0x9099, 78101 }, - { 0x1E59, 78102 }, - { 0x94C8, 78104 }, - { 0x948A, 78105 }, - { 0x8FDA, 78106 }, - { 0x91C7, 78107 }, - { 0x0005, 78109 }, - { 0x0075, 78111 }, - { 0x943A, 78113 }, - { 0x95BF, 78115 }, - { 0x8D86, 78116 }, - { 0x8D68, 78121 }, - { 0x8D5A, 78126 }, - { 0x8D77, 78131 }, - { 0x8D76, 78136 }, - { 0x8D8B, 78140 }, - { 0x8D6D, 78145 }, - { 0x8D5F, 78150 }, - { 0x8D7C, 78155 }, - { 0x8D8F, 78160 }, - { 0x8D71, 78165 }, - { 0x8D63, 78170 }, - { 0x8D80, 78175 }, - { 0x8D87, 78180 }, - { 0x8D69, 78185 }, - { 0x8D5B, 78190 }, - { 0x8D78, 78195 }, - { 0x8D59, 78200 }, - { 0x8D8A, 78203 }, - { 0x8D6C, 78208 }, - { 0x8D5E, 78213 }, - { 0x8D7B, 78218 }, - { 0x8D95, 78223 }, - { 0x8D89, 78226 }, - { 0x8D6B, 78231 }, - { 0x8D5D, 78236 }, - { 0x8D7A, 78241 }, - { 0x8D90, 78246 }, - { 0x8D72, 78251 }, - { 0x8D64, 78256 }, - { 0x8D81, 78261 }, - { 0x8D93, 78266 }, - { 0x8D75, 78271 }, - { 0x8D67, 78276 }, - { 0x8D84, 78281 }, - { 0x8D8E, 78286 }, - { 0x8D70, 78291 }, - { 0x8D62, 78296 }, - { 0x8D7F, 78301 }, - { 0x8D85, 78306 }, - { 0x8D8D, 78310 }, - { 0x8D6F, 78315 }, - { 0x8D61, 78320 }, - { 0x8D7E, 78325 }, - { 0x8D92, 78330 }, - { 0x8D74, 78335 }, - { 0x8D66, 78340 }, - { 0x8D83, 78345 }, - { 0x8D8C, 78350 }, - { 0x8D6E, 78355 }, - { 0x8D60, 78360 }, - { 0x8D7D, 78365 }, - { 0x8D88, 78370 }, - { 0x8D6A, 78375 }, - { 0x8D5C, 78380 }, - { 0x8D79, 78385 }, - { 0x8D94, 78390 }, - { 0x8D91, 78394 }, - { 0x8D73, 78399 }, - { 0x8D65, 78404 }, - { 0x8D82, 78409 }, - { 0x8D96, 78414 }, - { 0x8D97, 78417 }, - { 0x8D98, 78420 }, - { 0x8D99, 78423 }, - { 0x8D9A, 78426 }, - { 0x8D9B, 78429 }, - { 0x8D9C, 78432 }, - { 0x8D9D, 78435 }, - { 0x8D9E, 78438 }, - { 0x8D9F, 78441 }, - { 0x8DA0, 78444 }, - { 0x8DA1, 78447 }, - { 0x8DA2, 78450 }, - { 0x8DA3, 78453 }, - { 0x8DA4, 78456 }, - { 0x8DA5, 78459 }, - { 0x8DA6, 78462 }, - { 0x8DA7, 78465 }, - { 0x8DA8, 78468 }, - { 0x8DA9, 78471 }, - { 0x8DAA, 78474 }, - { 0x95B8, 78477 }, - { 0x8F32, 78478 }, - { 0x90A1, 78479 }, - { 0x9263, 78480 }, - { 0x8F0A, 78483 }, - { 0x95E8, 78485 }, - { 0x91F1, 78487 }, - { 0x91D4, 78490 }, - { 0x9496, 78492 }, - { 0x915B, 78493 }, - { 0x9169, 78494 }, - { 0x94DD, 78496 }, - { 0x48A0, 78498 }, - { 0x489F, 78504 }, - { 0x488F, 78510 }, - { 0x4899, 78514 }, - { 0x4897, 78518 }, - { 0x489C, 78522 }, - { 0x488C, 78526 }, - { 0x4892, 78530 }, - { 0x4894, 78534 }, - { 0x489B, 78538 }, - { 0x4893, 78542 }, - { 0x488B, 78546 }, - { 0x488D, 78550 }, - { 0x489A, 78554 }, - { 0x4891, 78558 }, - { 0x488E, 78562 }, - { 0x4895, 78566 }, - { 0x4898, 78570 }, - { 0x4896, 78574 }, - { 0x4890, 78578 }, - { 0x48A1, 78582 }, - { 0x48A7, 78586 }, - { 0x48A5, 78591 }, - { 0x48A2, 78595 }, - { 0x48A4, 78599 }, - { 0x48A3, 78603 }, - { 0x48A6, 78607 }, - { 0x489E, 78611 }, - { 0x489D, 78616 }, - { 0x2A44, 78620 }, - { 0x907F, 78623 }, - { 0x2295, 78624 }, - { 0x94CB, 78626 }, - { 0x200E, 78627 }, - { 0x9236, 78630 }, - { 0x9293, 78632 }, - { 0x8EBB, 78634 }, - { 0x952C, 78635 }, - { 0x936D, 78636 }, - { 0x276D, 78642 }, - { 0x2773, 78648 }, - { 0x9232, 78654 }, - { 0x003C, 78657 }, - { 0x2623, 78659 }, - { 0x2621, 78664 }, - { 0x23F4, 78667 }, - { 0x9120, 78671 }, - { 0x8F13, 78673 }, - { 0x9451, 78676 }, - { 0x8FC6, 78681 }, - { 0x8FA8, 78682 }, - { 0x2391, 78683 }, - { 0x27F6, 78688 }, - { 0x27F8, 78694 }, - { 0x2393, 78699 }, - { 0x1D95, 78703 }, - { 0x8EAD, 78706 }, - { 0x8EAE, 78710 }, - { 0x8EB0, 78714 }, - { 0x8EB2, 78718 }, - { 0x8EAF, 78722 }, - { 0x8EB1, 78726 }, - { 0x9256, 78730 }, - { 0x8F70, 78731 }, - { 0x281D, 78735 }, - { 0x281F, 78739 }, - { 0x281E, 78743 }, - { 0x2820, 78747 }, - { 0x2821, 78751 }, - { 0x281C, 78755 }, - { 0x223F, 78759 }, - { 0x92A0, 78760 }, - { 0x1D63, 78761 }, - { 0x0066, 78762 }, - { 0x1F6A, 78764 }, - { 0x945A, 78765 }, - { 0x1D7B, 78771 }, - { 0x22E5, 78773 }, - { 0x95F7, 78774 }, - { 0x9486, 78776 }, - { 0x4C54, 78780 }, - { 0x4C6A, 78782 }, - { 0x4C5A, 78784 }, - { 0x4C50, 78787 }, - { 0x4C6B, 78790 }, - { 0x4C12, 78793 }, - { 0x4C11, 78796 }, - { 0x4C51, 78799 }, - { 0x4C5F, 78802 }, - { 0x4C10, 78806 }, - { 0x4C52, 78809 }, - { 0x4C53, 78812 }, - { 0x4C55, 78815 }, - { 0x4C61, 78817 }, - { 0x4C66, 78820 }, - { 0x4C62, 78823 }, - { 0x4C65, 78826 }, - { 0x4C64, 78829 }, - { 0x4C69, 78832 }, - { 0x4C60, 78835 }, - { 0x4C68, 78838 }, - { 0x4C67, 78841 }, - { 0x4C63, 78844 }, - { 0x4C5C, 78847 }, - { 0x4C5D, 78852 }, - { 0x4C4C, 78855 }, - { 0x4C44, 78859 }, - { 0x4C4E, 78863 }, - { 0x4C46, 78867 }, - { 0x4C43, 78871 }, - { 0x4C4D, 78875 }, - { 0x4C4F, 78879 }, - { 0x4C45, 78883 }, - { 0x4C47, 78887 }, - { 0x4C4A, 78891 }, - { 0x4C48, 78896 }, - { 0x4C4B, 78901 }, - { 0x4C49, 78906 }, - { 0x4C5E, 78911 }, - { 0x4C5B, 78916 }, - { 0x4C56, 78920 }, - { 0x4C13, 78923 }, - { 0x4C1D, 78926 }, - { 0x4C15, 78929 }, - { 0x4C1F, 78932 }, - { 0x4C17, 78935 }, - { 0x4C14, 78938 }, - { 0x4C1E, 78941 }, - { 0x4C20, 78944 }, - { 0x4C37, 78947 }, - { 0x4C26, 78950 }, - { 0x4C32, 78953 }, - { 0x4C23, 78956 }, - { 0x4C42, 78959 }, - { 0x4C16, 78962 }, - { 0x4C28, 78965 }, - { 0x4C21, 78968 }, - { 0x4C3C, 78971 }, - { 0x4C39, 78974 }, - { 0x4C34, 78977 }, - { 0x4C35, 78980 }, - { 0x4C3B, 78983 }, - { 0x4C41, 78986 }, - { 0x4C30, 78989 }, - { 0x4C18, 78992 }, - { 0x4C3E, 78995 }, - { 0x4C3A, 78998 }, - { 0x4C38, 79001 }, - { 0x4C27, 79004 }, - { 0x4C2D, 79007 }, - { 0x4C33, 79010 }, - { 0x4C24, 79013 }, - { 0x4C29, 79016 }, - { 0x4C22, 79019 }, - { 0x4C3D, 79022 }, - { 0x4C25, 79025 }, - { 0x4C2F, 79028 }, - { 0x4C2A, 79031 }, - { 0x4C36, 79034 }, - { 0x4C3F, 79037 }, - { 0x4C40, 79040 }, - { 0x4C31, 79043 }, - { 0x4C2B, 79046 }, - { 0x4C2E, 79049 }, - { 0x4C2C, 79052 }, - { 0x4C1B, 79055 }, - { 0x4C19, 79059 }, - { 0x4C1C, 79063 }, - { 0x4C1A, 79067 }, - { 0x4C59, 79071 }, - { 0x4C6E, 79074 }, - { 0x4C6F, 79077 }, - { 0x4C58, 79080 }, - { 0x4C6C, 79082 }, - { 0x4C57, 79084 }, - { 0x4C6D, 79087 }, - { 0x430C, 79090 }, - { 0x4305, 79093 }, - { 0x4309, 79096 }, - { 0x4318, 79099 }, - { 0x42F4, 79102 }, - { 0x4312, 79105 }, - { 0x4308, 79108 }, - { 0x4310, 79111 }, - { 0x4319, 79114 }, - { 0x4317, 79117 }, - { 0x4307, 79120 }, - { 0x4316, 79123 }, - { 0x42F9, 79126 }, - { 0x431C, 79129 }, - { 0x430F, 79132 }, - { 0x4306, 79135 }, - { 0x431A, 79138 }, - { 0x42F2, 79141 }, - { 0x42FB, 79144 }, - { 0x431D, 79147 }, - { 0x4311, 79150 }, - { 0x430E, 79153 }, - { 0x4313, 79156 }, - { 0x4315, 79159 }, - { 0x430B, 79162 }, - { 0x42F0, 79165 }, - { 0x42FC, 79168 }, - { 0x4301, 79171 }, - { 0x42F7, 79174 }, - { 0x431E, 79177 }, - { 0x42FE, 79180 }, - { 0x42FA, 79183 }, - { 0x42F8, 79186 }, - { 0x42F1, 79189 }, - { 0x4303, 79192 }, - { 0x4304, 79195 }, - { 0x4314, 79198 }, - { 0x42EF, 79201 }, - { 0x430D, 79204 }, - { 0x42F5, 79207 }, - { 0x42FD, 79210 }, - { 0x430A, 79213 }, - { 0x431B, 79216 }, - { 0x4302, 79219 }, - { 0x4300, 79222 }, - { 0x42F3, 79225 }, - { 0x42F6, 79228 }, - { 0x42FF, 79231 }, - { 0x945D, 79234 }, - { 0x260E, 79239 }, - { 0x4ED0, 79241 }, - { 0x4EC7, 79246 }, - { 0x4EC6, 79249 }, - { 0x4EC8, 79252 }, - { 0x4EC5, 79255 }, - { 0x4EC4, 79258 }, - { 0x4EC3, 79261 }, - { 0x4EC9, 79264 }, - { 0x4EBF, 79266 }, - { 0x4EB9, 79270 }, - { 0x4EC1, 79274 }, - { 0x4EBB, 79278 }, - { 0x4EB8, 79282 }, - { 0x4EC0, 79286 }, - { 0x4EC2, 79290 }, - { 0x4EBA, 79294 }, - { 0x4EBC, 79298 }, - { 0x4EBD, 79302 }, - { 0x4EBE, 79307 }, - { 0x4EE3, 79312 }, - { 0x4EE4, 79317 }, - { 0x4ECA, 79322 }, - { 0x4E89, 79325 }, - { 0x4E93, 79328 }, - { 0x4E8B, 79331 }, - { 0x4E95, 79334 }, - { 0x4E8D, 79337 }, - { 0x4E8A, 79340 }, - { 0x4E94, 79343 }, - { 0x4E96, 79346 }, - { 0x4EAD, 79349 }, - { 0x4E9C, 79352 }, - { 0x4EA8, 79355 }, - { 0x4E99, 79358 }, - { 0x4EB7, 79361 }, - { 0x4E8C, 79364 }, - { 0x4E9E, 79367 }, - { 0x4E97, 79370 }, - { 0x4EB2, 79373 }, - { 0x4EAF, 79376 }, - { 0x4EAA, 79379 }, - { 0x4EAB, 79382 }, - { 0x4EB1, 79385 }, - { 0x4EB6, 79388 }, - { 0x4EA6, 79391 }, - { 0x4E8E, 79394 }, - { 0x4EB3, 79397 }, - { 0x4EB0, 79400 }, - { 0x4EAE, 79403 }, - { 0x4E9D, 79406 }, - { 0x4EA3, 79409 }, - { 0x4EA9, 79412 }, - { 0x4E9A, 79415 }, - { 0x4E9F, 79418 }, - { 0x4E98, 79421 }, - { 0x4E9B, 79424 }, - { 0x4EA5, 79427 }, - { 0x4EA0, 79430 }, - { 0x4EAC, 79433 }, - { 0x4EB4, 79436 }, - { 0x4EB5, 79439 }, - { 0x4EA7, 79442 }, - { 0x4EA1, 79445 }, - { 0x4EA4, 79448 }, - { 0x4EA2, 79451 }, - { 0x4E91, 79454 }, - { 0x4E8F, 79458 }, - { 0x4E92, 79462 }, - { 0x4E90, 79466 }, - { 0x4EE2, 79470 }, - { 0x4EE0, 79474 }, - { 0x4EE1, 79479 }, - { 0x4EDF, 79484 }, - { 0x4ED4, 79489 }, - { 0x4ED5, 79498 }, - { 0x4ED3, 79507 }, - { 0x4ED8, 79515 }, - { 0x4ED9, 79521 }, - { 0x4EDD, 79527 }, - { 0x4EDE, 79535 }, - { 0x4EDC, 79543 }, - { 0x4ED2, 79550 }, - { 0x4ED1, 79558 }, - { 0x4EDB, 79566 }, - { 0x4EDA, 79572 }, - { 0x4ED6, 79578 }, - { 0x4ED7, 79583 }, - { 0x4ECC, 79590 }, - { 0x4ECB, 79593 }, - { 0x4ECD, 79596 }, - { 0x4ECE, 79599 }, - { 0x4ECF, 79602 }, - { 0x26C9, 79605 }, - { 0x26CA, 79608 }, - { 0x26CB, 79611 }, - { 0x26CC, 79617 }, - { 0x2698, 79623 }, - { 0x0C27, 79626 }, - { 0x0C2C, 79630 }, - { 0x0C28, 79634 }, - { 0x0C2B, 79638 }, - { 0x0C2A, 79642 }, - { 0x0C2F, 79646 }, - { 0x0C26, 79650 }, - { 0x0C2E, 79654 }, - { 0x0C2D, 79658 }, - { 0x0C29, 79662 }, - { 0x0C16, 79666 }, - { 0x0BDA, 79669 }, - { 0x0BD9, 79672 }, - { 0x0BD8, 79675 }, - { 0x0C20, 79678 }, - { 0x0C1B, 79683 }, - { 0x0C1D, 79688 }, - { 0x0C19, 79693 }, - { 0x0C31, 79698 }, - { 0x0C30, 79703 }, - { 0x0C1A, 79708 }, - { 0x0C1C, 79713 }, - { 0x0C18, 79718 }, - { 0x0C21, 79723 }, - { 0x0C1F, 79728 }, - { 0x0C23, 79732 }, - { 0x0C22, 79739 }, - { 0x0C24, 79745 }, - { 0x0C17, 79751 }, - { 0x0C25, 79755 }, - { 0x0C1E, 79759 }, - { 0x0C0B, 79763 }, - { 0x0BDB, 79767 }, - { 0x0BE7, 79770 }, - { 0x0BDF, 79773 }, - { 0x0BEA, 79776 }, - { 0x0BE1, 79779 }, - { 0x0BDC, 79782 }, - { 0x0BDD, 79785 }, - { 0x0BE9, 79788 }, - { 0x0BEC, 79791 }, - { 0x0C0E, 79794 }, - { 0x0C04, 79798 }, - { 0x0C12, 79802 }, - { 0x0BE8, 79806 }, - { 0x0C15, 79809 }, - { 0x0C13, 79812 }, - { 0x0BE0, 79815 }, - { 0x0BF1, 79818 }, - { 0x0C0A, 79822 }, - { 0x0BEB, 79825 }, - { 0x0C0D, 79828 }, - { 0x0C05, 79831 }, - { 0x0BF2, 79835 }, - { 0x0BF9, 79839 }, - { 0x0BFF, 79843 }, - { 0x0C10, 79847 }, - { 0x0BF8, 79851 }, - { 0x0BF7, 79856 }, - { 0x0BE2, 79860 }, - { 0x0C0F, 79863 }, - { 0x0C0C, 79866 }, - { 0x0BDE, 79869 }, - { 0x0BE5, 79872 }, - { 0x0BE3, 79875 }, - { 0x0BE6, 79878 }, - { 0x0BE4, 79881 }, - { 0x0C14, 79884 }, - { 0x0BFE, 79888 }, - { 0x0C11, 79892 }, - { 0x0C08, 79896 }, - { 0x0BF3, 79900 }, - { 0x0C02, 79904 }, - { 0x0BEF, 79908 }, - { 0x0BF5, 79912 }, - { 0x0BED, 79916 }, - { 0x0C06, 79920 }, - { 0x0C00, 79924 }, - { 0x0BFC, 79928 }, - { 0x0BFA, 79932 }, - { 0x0C09, 79936 }, - { 0x0BF4, 79940 }, - { 0x0C03, 79944 }, - { 0x0BF0, 79948 }, - { 0x0BF6, 79952 }, - { 0x0BEE, 79956 }, - { 0x0C07, 79960 }, - { 0x0C01, 79964 }, - { 0x0BFD, 79968 }, - { 0x0BFB, 79972 }, - { 0x4C70, 79976 }, - { 0x4C75, 79980 }, - { 0x4C71, 79984 }, - { 0x4C74, 79988 }, - { 0x4C73, 79992 }, - { 0x4C78, 79996 }, - { 0x4C77, 80000 }, - { 0x4C76, 80004 }, - { 0x4C72, 80008 }, - { 0x4C82, 80012 }, - { 0x4C83, 80017 }, - { 0x4C79, 80022 }, - { 0x4C7D, 80026 }, - { 0x4C7C, 80030 }, - { 0x4C7E, 80034 }, - { 0x4C80, 80038 }, - { 0x4C81, 80042 }, - { 0x4C7B, 80046 }, - { 0x4C7A, 80050 }, - { 0x4C7F, 80054 }, - { 0x0C32, 80058 }, - { 0x2366, 80061 }, - { 0x26C1, 80064 }, - { 0x26C3, 80069 }, - { 0x26C2, 80077 }, - { 0x26C4, 80082 }, - { 0x2786, 80090 }, - { 0x2788, 80096 }, - { 0x2683, 80102 }, - { 0x2684, 80105 }, - { 0x26D6, 80108 }, - { 0x26D8, 80110 }, - { 0x91ED, 80115 }, - { 0x91EE, 80121 }, - { 0x91BA, 80127 }, - { 0x91B6, 80131 }, - { 0x91B8, 80136 }, - { 0x91B7, 80144 }, - { 0x91B9, 80152 }, - { 0x94A0, 80160 }, - { 0x91BB, 80164 }, - { 0x91BD, 80168 }, - { 0x945B, 80173 }, - { 0x949E, 80182 }, - { 0x91C1, 80190 }, - { 0x91C0, 80194 }, - { 0x925F, 80199 }, - { 0x222F, 80201 }, - { 0x22F0, 80202 }, - { 0x4A54, 80205 }, - { 0x4A5F, 80208 }, - { 0x4A5B, 80211 }, - { 0x4A5C, 80214 }, - { 0x4A63, 80217 }, - { 0x4A55, 80220 }, - { 0x4A5E, 80223 }, - { 0x4A52, 80226 }, - { 0x4A64, 80229 }, - { 0x4A57, 80232 }, - { 0x4A59, 80235 }, - { 0x4A65, 80238 }, - { 0x4A62, 80241 }, - { 0x4A58, 80244 }, - { 0x4A51, 80247 }, - { 0x4A53, 80250 }, - { 0x4A60, 80253 }, - { 0x4A56, 80256 }, - { 0x4A5A, 80259 }, - { 0x4A5D, 80262 }, - { 0x4A61, 80265 }, - { 0x4A72, 80268 }, - { 0x4A75, 80271 }, - { 0x4A73, 80275 }, - { 0x4A74, 80278 }, - { 0x4A69, 80281 }, - { 0x4A67, 80285 }, - { 0x4A6A, 80289 }, - { 0x4A68, 80294 }, - { 0x4A6D, 80299 }, - { 0x4A6E, 80303 }, - { 0x4A6F, 80307 }, - { 0x4A70, 80312 }, - { 0x4A6B, 80316 }, - { 0x4A6C, 80320 }, - { 0x4A71, 80324 }, - { 0x4A66, 80328 }, - { 0x4A79, 80331 }, - { 0x4A76, 80337 }, - { 0x4A77, 80342 }, - { 0x4A7A, 80349 }, - { 0x4A78, 80355 }, - { 0x000F, 80360 }, - { 0x2622, 80361 }, - { 0x518B, 80364 }, - { 0x518A, 80371 }, - { 0x5189, 80380 }, - { 0x5186, 80390 }, - { 0x5188, 80393 }, - { 0x5185, 80396 }, - { 0x5187, 80399 }, - { 0x5182, 80403 }, - { 0x5181, 80406 }, - { 0x516F, 80409 }, - { 0x5170, 80412 }, - { 0x517A, 80415 }, - { 0x5178, 80420 }, - { 0x5175, 80425 }, - { 0x5176, 80430 }, - { 0x517D, 80435 }, - { 0x517B, 80440 }, - { 0x5179, 80445 }, - { 0x517C, 80450 }, - { 0x517F, 80455 }, - { 0x5180, 80460 }, - { 0x5177, 80465 }, - { 0x517E, 80470 }, - { 0x513F, 80475 }, - { 0x513C, 80479 }, - { 0x5140, 80483 }, - { 0x513E, 80487 }, - { 0x5142, 80491 }, - { 0x5143, 80495 }, - { 0x5141, 80499 }, - { 0x513D, 80503 }, - { 0x5145, 80507 }, - { 0x5144, 80512 }, - { 0x5146, 80517 }, - { 0x513B, 80521 }, - { 0x5165, 80524 }, - { 0x515D, 80527 }, - { 0x514C, 80530 }, - { 0x5158, 80533 }, - { 0x5149, 80536 }, - { 0x516D, 80539 }, - { 0x514E, 80542 }, - { 0x5147, 80545 }, - { 0x5168, 80548 }, - { 0x515F, 80551 }, - { 0x515A, 80554 }, - { 0x515B, 80557 }, - { 0x5167, 80560 }, - { 0x516C, 80563 }, - { 0x5156, 80566 }, - { 0x5169, 80569 }, - { 0x5166, 80572 }, - { 0x5164, 80575 }, - { 0x515E, 80578 }, - { 0x514D, 80581 }, - { 0x5153, 80584 }, - { 0x5159, 80587 }, - { 0x5162, 80590 }, - { 0x514A, 80593 }, - { 0x514F, 80596 }, - { 0x5148, 80599 }, - { 0x514B, 80602 }, - { 0x5155, 80605 }, - { 0x5150, 80608 }, - { 0x515C, 80611 }, - { 0x516A, 80614 }, - { 0x516B, 80617 }, - { 0x5157, 80620 }, - { 0x5160, 80623 }, - { 0x5151, 80626 }, - { 0x5163, 80629 }, - { 0x5154, 80632 }, - { 0x516E, 80635 }, - { 0x5161, 80638 }, - { 0x5152, 80641 }, - { 0x518C, 80644 }, - { 0x518D, 80647 }, - { 0x5184, 80650 }, - { 0x5183, 80652 }, - { 0x5172, 80655 }, - { 0x5171, 80659 }, - { 0x5174, 80663 }, - { 0x5173, 80667 }, - { 0x2373, 80671 }, - { 0x90BB, 80672 }, - { 0x90BC, 80673 }, - { 0x90BD, 80678 }, - { 0x90BA, 80683 }, - { 0x7C8D, 80687 }, - { 0x7C8E, 80690 }, - { 0x8E3C, 80693 }, - { 0x8E51, 80695 }, - { 0x8DF5, 80697 }, - { 0x8E3F, 80699 }, - { 0x8DF6, 80701 }, - { 0x8E41, 80703 }, - { 0x8E42, 80705 }, - { 0x8DF7, 80707 }, - { 0x8DF8, 80709 }, - { 0x8E44, 80711 }, - { 0x8E45, 80716 }, - { 0x8DFA, 80718 }, - { 0x8E8F, 80720 }, - { 0x8E90, 80724 }, - { 0x8E93, 80728 }, - { 0x8E7A, 80732 }, - { 0x8E7E, 80736 }, - { 0x8E84, 80740 }, - { 0x8E86, 80744 }, - { 0x8E82, 80748 }, - { 0x8E9F, 80752 }, - { 0x8E78, 80756 }, - { 0x8E94, 80760 }, - { 0x8E9A, 80764 }, - { 0x8E8B, 80768 }, - { 0x8EA0, 80772 }, - { 0x8E8A, 80776 }, - { 0x8E7B, 80780 }, - { 0x8E7D, 80784 }, - { 0x8E77, 80788 }, - { 0x8E92, 80792 }, - { 0x8E83, 80796 }, - { 0x8E76, 80800 }, - { 0x8E97, 80804 }, - { 0x8E8D, 80808 }, - { 0x8E95, 80812 }, - { 0x8E8E, 80816 }, - { 0x8E81, 80820 }, - { 0x8E85, 80824 }, - { 0x8E7F, 80828 }, - { 0x8E9D, 80832 }, - { 0x8E9C, 80836 }, - { 0x8E9B, 80840 }, - { 0x8E8C, 80844 }, - { 0x8E80, 80848 }, - { 0x8E88, 80852 }, - { 0x8E9E, 80856 }, - { 0x8E98, 80860 }, - { 0x8E99, 80864 }, - { 0x8E87, 80868 }, - { 0x8E7C, 80872 }, - { 0x8E89, 80876 }, - { 0x8E96, 80880 }, - { 0x8E91, 80884 }, - { 0x8EA1, 80888 }, - { 0x1EF8, 80892 }, - { 0x8E52, 80895 }, - { 0x22EB, 80897 }, - { 0x8E40, 80899 }, - { 0x8E4F, 80901 }, - { 0x8DF9, 80906 }, - { 0x8E55, 80908 }, - { 0x8E43, 80910 }, - { 0x8E48, 80912 }, - { 0x8E56, 80915 }, - { 0x8E57, 80917 }, - { 0x8E3D, 80919 }, - { 0x8E4B, 80921 }, - { 0x8E49, 80925 }, - { 0x2A22, 80928 }, - { 0x8E3E, 80932 }, - { 0x1EF5, 80934 }, - { 0x8E4A, 80936 }, - { 0x8E50, 80939 }, - { 0x8DDB, 80944 }, - { 0x8DDC, 80949 }, - { 0x8DDD, 80954 }, - { 0x8DDE, 80959 }, - { 0x8DDF, 80964 }, - { 0x8DE0, 80969 }, - { 0x8DE1, 80974 }, - { 0x8DE2, 80979 }, - { 0x8DE3, 80984 }, - { 0x8DE4, 80989 }, - { 0x8DE5, 80994 }, - { 0x8DE6, 80999 }, - { 0x8DE7, 81004 }, - { 0x8DE8, 81009 }, - { 0x8DE9, 81014 }, - { 0x8DEA, 81019 }, - { 0x8DEB, 81024 }, - { 0x8DEC, 81029 }, - { 0x8DED, 81034 }, - { 0x8DEE, 81039 }, - { 0x8DEF, 81044 }, - { 0x8DF0, 81049 }, - { 0x8DF1, 81054 }, - { 0x8DF2, 81059 }, - { 0x8DF3, 81064 }, - { 0x8DF4, 81069 }, - { 0x1EF6, 81074 }, - { 0x8E4C, 81076 }, - { 0x8E4E, 81080 }, - { 0x25F3, 81083 }, - { 0x8E46, 81086 }, - { 0x1EF7, 81089 }, - { 0x8E53, 81091 }, - { 0x25F0, 81093 }, - { 0x8E47, 81097 }, - { 0x25F4, 81100 }, - { 0x25F1, 81102 }, - { 0x23FB, 81106 }, - { 0x23FA, 81109 }, - { 0x2309, 81112 }, - { 0x25F2, 81114 }, - { 0x8E79, 81116 }, - { 0x8E75, 81119 }, - { 0x8E74, 81122 }, - { 0x8E54, 81125 }, - { 0x8E4D, 81127 }, - { 0x8F92, 81131 }, - { 0x9136, 81132 }, - { 0x923C, 81134 }, - { 0x7CC8, 81135 }, - { 0x7CCA, 81138 }, - { 0x7CC7, 81141 }, - { 0x7CC9, 81144 }, - { 0x9487, 81147 }, - { 0x8EB8, 81149 }, - { 0x8EB7, 81150 }, - { 0x5202, 81153 }, - { 0x5204, 81156 }, - { 0x5209, 81159 }, - { 0x5205, 81162 }, - { 0x5208, 81165 }, - { 0x5207, 81168 }, - { 0x520C, 81171 }, - { 0x5203, 81174 }, - { 0x520B, 81177 }, - { 0x520A, 81180 }, - { 0x5206, 81183 }, - { 0x51E8, 81186 }, - { 0x51F7, 81189 }, - { 0x51F6, 81192 }, - { 0x51EF, 81195 }, - { 0x51E3, 81198 }, - { 0x51EB, 81201 }, - { 0x51FC, 81204 }, - { 0x51E7, 81207 }, - { 0x51EE, 81210 }, - { 0x51EA, 81213 }, - { 0x51E5, 81216 }, - { 0x51F5, 81219 }, - { 0x51E1, 81222 }, - { 0x51E4, 81225 }, - { 0x51F0, 81228 }, - { 0x51FB, 81231 }, - { 0x51FA, 81234 }, - { 0x51E9, 81237 }, - { 0x51ED, 81240 }, - { 0x51F8, 81243 }, - { 0x51EC, 81246 }, - { 0x5201, 81249 }, - { 0x51F2, 81252 }, - { 0x51FD, 81255 }, - { 0x51E2, 81258 }, - { 0x51FF, 81261 }, - { 0x51F9, 81264 }, - { 0x5200, 81267 }, - { 0x51E6, 81270 }, - { 0x51F4, 81273 }, - { 0x51FE, 81276 }, - { 0x51F1, 81279 }, - { 0x51F3, 81282 }, - { 0x1E86, 81285 }, - { 0x8F7D, 81287 }, - { 0x903C, 81288 }, - { 0x9008, 81289 }, - { 0x148E, 81290 }, - { 0x148F, 81293 }, - { 0x148C, 81296 }, - { 0x148D, 81300 }, - { 0x147A, 81304 }, - { 0x147B, 81307 }, - { 0x147C, 81310 }, - { 0x1484, 81313 }, - { 0x1481, 81316 }, - { 0x147E, 81319 }, - { 0x148B, 81322 }, - { 0x147D, 81325 }, - { 0x1488, 81328 }, - { 0x1485, 81331 }, - { 0x1482, 81334 }, - { 0x1483, 81337 }, - { 0x1487, 81340 }, - { 0x148A, 81343 }, - { 0x1480, 81346 }, - { 0x1489, 81349 }, - { 0x1486, 81352 }, - { 0x147F, 81355 }, - { 0x1490, 81358 }, - { 0x948F, 81362 }, - { 0x9060, 81364 }, - { 0x27C1, 81366 }, - { 0x23CE, 81371 }, - { 0x27C3, 81375 }, - { 0x27C4, 81380 }, - { 0x27C2, 81385 }, - { 0x23CF, 81390 }, - { 0x22F4, 81394 }, - { 0x0D94, 81398 }, - { 0x0D95, 81402 }, - { 0x0D1A, 81409 }, - { 0x0D19, 81414 }, - { 0x0D15, 81419 }, - { 0x0D18, 81423 }, - { 0x0D17, 81428 }, - { 0x0CEE, 81433 }, - { 0x0D16, 81439 }, - { 0x0CE4, 81443 }, - { 0x0DA5, 81450 }, - { 0x0CE7, 81457 }, - { 0x0CE0, 81463 }, - { 0x0CDF, 81472 }, - { 0x0CDE, 81481 }, - { 0x0CF1, 81488 }, - { 0x0D12, 81492 }, - { 0x0D14, 81498 }, - { 0x0CEB, 81504 }, - { 0x0DA7, 81508 }, - { 0x0CED, 81512 }, - { 0x0CEF, 81517 }, - { 0x0CEA, 81522 }, - { 0x0D11, 81525 }, - { 0x0DA5, 81529 }, - { 0x0CE6, 81536 }, - { 0x0CE3, 81541 }, - { 0x0CF0, 81549 }, - { 0x0D13, 81557 }, - { 0x0DA6, 81565 }, - { 0x0CE5, 81572 }, - { 0x0CEC, 81576 }, - { 0x0D5D, 81580 }, - { 0x0CE2, 81583 }, - { 0x0DA9, 81590 }, - { 0x0D5C, 81599 }, - { 0x0CE1, 81602 }, - { 0x0DA8, 81609 }, - { 0x0DAE, 81618 }, - { 0x0DAF, 81623 }, - { 0x0CE9, 81628 }, - { 0x0CE8, 81633 }, - { 0x0D62, 81637 }, - { 0x0D63, 81642 }, - { 0x0D60, 81647 }, - { 0x0D5E, 81652 }, - { 0x0D1C, 81656 }, - { 0x0D5A, 81660 }, - { 0x0D5B, 81666 }, - { 0x0D1B, 81670 }, - { 0x0D61, 81674 }, - { 0x0CFA, 81678 }, - { 0x0DA4, 81683 }, - { 0x0DA3, 81688 }, - { 0x0CFB, 81694 }, - { 0x0CF7, 81699 }, - { 0x0CF9, 81704 }, - { 0x0CFC, 81709 }, - { 0x0CF8, 81715 }, - { 0x0D56, 81720 }, - { 0x0D57, 81726 }, - { 0x0D5F, 81730 }, - { 0x0D64, 81734 }, - { 0x0CFE, 81739 }, - { 0x0D03, 81742 }, - { 0x0CFF, 81745 }, - { 0x0D02, 81748 }, - { 0x0D01, 81751 }, - { 0x0D07, 81754 }, - { 0x0D0C, 81758 }, - { 0x0D08, 81762 }, - { 0x0D0B, 81766 }, - { 0x0D0A, 81770 }, - { 0x0D0F, 81774 }, - { 0x0D10, 81778 }, - { 0x0D0E, 81782 }, - { 0x0D0D, 81786 }, - { 0x0D09, 81790 }, - { 0x0D06, 81794 }, - { 0x0CFD, 81797 }, - { 0x0D05, 81800 }, - { 0x0D04, 81803 }, - { 0x0D00, 81806 }, - { 0x0D52, 81809 }, - { 0x0D4A, 81813 }, - { 0x0D54, 81817 }, - { 0x0D4C, 81821 }, - { 0x0D49, 81825 }, - { 0x0D53, 81829 }, - { 0x0D4B, 81833 }, - { 0x0D55, 81837 }, - { 0x0D4D, 81841 }, - { 0x0D50, 81845 }, - { 0x0D4E, 81850 }, - { 0x0D51, 81855 }, - { 0x0D4F, 81860 }, - { 0x0D58, 81865 }, - { 0x0D59, 81870 }, - { 0x0D44, 81875 }, - { 0x0D3C, 81878 }, - { 0x0D32, 81881 }, - { 0x0D22, 81884 }, - { 0x0D2D, 81887 }, - { 0x0D1F, 81890 }, - { 0x0D43, 81893 }, - { 0x0D24, 81896 }, - { 0x0D1D, 81899 }, - { 0x0D3F, 81902 }, - { 0x0D34, 81905 }, - { 0x0D2F, 81908 }, - { 0x0D30, 81911 }, - { 0x0D3E, 81914 }, - { 0x0D42, 81917 }, - { 0x0D2B, 81920 }, - { 0x0D39, 81923 }, - { 0x0D3D, 81926 }, - { 0x0D3B, 81929 }, - { 0x0D33, 81932 }, - { 0x0D23, 81935 }, - { 0x0D28, 81938 }, - { 0x0D2E, 81941 }, - { 0x0D37, 81944 }, - { 0x0D20, 81947 }, - { 0x0D1E, 81950 }, - { 0x0D47, 81953 }, - { 0x0D21, 81956 }, - { 0x0D2A, 81959 }, - { 0x0D25, 81962 }, - { 0x0D31, 81965 }, - { 0x0D48, 81968 }, - { 0x0D40, 81971 }, - { 0x0D41, 81974 }, - { 0x0D2C, 81977 }, - { 0x0D35, 81980 }, - { 0x0D26, 81983 }, - { 0x0D3A, 81986 }, - { 0x0D29, 81989 }, - { 0x0D38, 81992 }, - { 0x0D45, 81995 }, - { 0x0D36, 81998 }, - { 0x0D27, 82001 }, - { 0x0D46, 82004 }, - { 0x0D9F, 82008 }, - { 0x0DA2, 82012 }, - { 0x0DA1, 82018 }, - { 0x0DA0, 82024 }, - { 0x0D9B, 82030 }, - { 0x0D9D, 82034 }, - { 0x0D9A, 82040 }, - { 0x0D9E, 82044 }, - { 0x0D9C, 82048 }, - { 0x0CF2, 82052 }, - { 0x0CF3, 82057 }, - { 0x0CDD, 82062 }, - { 0x0D65, 82065 }, - { 0x0D66, 82071 }, - { 0x0D67, 82076 }, - { 0x0D8F, 82082 }, - { 0x0D87, 82086 }, - { 0x0D7D, 82090 }, - { 0x0D6D, 82094 }, - { 0x0D78, 82098 }, - { 0x0D6A, 82102 }, - { 0x0D8E, 82106 }, - { 0x0D6F, 82110 }, - { 0x0D68, 82114 }, - { 0x0D8A, 82118 }, - { 0x0D7F, 82122 }, - { 0x0D7A, 82126 }, - { 0x0D7B, 82130 }, - { 0x0D89, 82134 }, - { 0x0D8D, 82138 }, - { 0x0D76, 82142 }, - { 0x0D84, 82146 }, - { 0x0D88, 82150 }, - { 0x0D86, 82154 }, - { 0x0D7E, 82158 }, - { 0x0D6E, 82162 }, - { 0x0D73, 82166 }, - { 0x0D79, 82170 }, - { 0x0D82, 82174 }, - { 0x0D6B, 82178 }, - { 0x0D69, 82182 }, - { 0x0D6C, 82186 }, - { 0x0D75, 82190 }, - { 0x0D70, 82194 }, - { 0x0D7C, 82198 }, - { 0x0D8B, 82202 }, - { 0x0D8C, 82206 }, - { 0x0D77, 82210 }, - { 0x0D80, 82214 }, - { 0x0D71, 82218 }, - { 0x0D85, 82222 }, - { 0x0D74, 82226 }, - { 0x0D83, 82230 }, - { 0x0D90, 82234 }, - { 0x0D81, 82238 }, - { 0x0D72, 82242 }, - { 0x0D93, 82246 }, - { 0x0D91, 82251 }, - { 0x0D92, 82256 }, - { 0x0CF4, 82261 }, - { 0x0CF6, 82268 }, - { 0x0CF5, 82273 }, - { 0x0D98, 82278 }, - { 0x0D99, 82283 }, - { 0x0D96, 82288 }, - { 0x0D97, 82293 }, - { 0x4E7E, 82298 }, - { 0x4E37, 82300 }, - { 0x4E7A, 82302 }, - { 0x4E79, 82305 }, - { 0x4E78, 82308 }, - { 0x4E77, 82311 }, - { 0x4E7B, 82314 }, - { 0x4E76, 82317 }, - { 0x4E80, 82320 }, - { 0x4E85, 82323 }, - { 0x4E81, 82326 }, - { 0x4E84, 82329 }, - { 0x4E83, 82332 }, - { 0x4E88, 82335 }, - { 0x4E7F, 82338 }, - { 0x4E87, 82341 }, - { 0x4E86, 82344 }, - { 0x4E82, 82347 }, - { 0x4E7C, 82350 }, - { 0x4E70, 82352 }, - { 0x4E68, 82356 }, - { 0x4E73, 82360 }, - { 0x4E6A, 82364 }, - { 0x4E67, 82368 }, - { 0x4E72, 82372 }, - { 0x4E75, 82376 }, - { 0x4E69, 82380 }, - { 0x4E6B, 82384 }, - { 0x4E71, 82388 }, - { 0x4E74, 82393 }, - { 0x4E6E, 82398 }, - { 0x4E6C, 82403 }, - { 0x4E6F, 82408 }, - { 0x4E6D, 82413 }, - { 0x4E38, 82418 }, - { 0x4E42, 82421 }, - { 0x4E3A, 82424 }, - { 0x4E44, 82427 }, - { 0x4E3C, 82430 }, - { 0x4E39, 82433 }, - { 0x4E43, 82436 }, - { 0x4E45, 82439 }, - { 0x4E5C, 82442 }, - { 0x4E4B, 82445 }, - { 0x4E57, 82448 }, - { 0x4E48, 82451 }, - { 0x4E66, 82454 }, - { 0x4E3B, 82457 }, - { 0x4E4D, 82460 }, - { 0x4E46, 82463 }, - { 0x4E61, 82466 }, - { 0x4E5E, 82469 }, - { 0x4E59, 82472 }, - { 0x4E5A, 82475 }, - { 0x4E60, 82478 }, - { 0x4E65, 82481 }, - { 0x4E55, 82484 }, - { 0x4E3D, 82487 }, - { 0x4E62, 82490 }, - { 0x4E5F, 82493 }, - { 0x4E5D, 82496 }, - { 0x4E4C, 82499 }, - { 0x4E52, 82502 }, - { 0x4E58, 82505 }, - { 0x4E49, 82508 }, - { 0x4E4E, 82511 }, - { 0x4E47, 82514 }, - { 0x4E4A, 82517 }, - { 0x4E54, 82520 }, - { 0x4E4F, 82523 }, - { 0x4E5B, 82526 }, - { 0x4E63, 82529 }, - { 0x4E64, 82532 }, - { 0x4E56, 82535 }, - { 0x4E50, 82538 }, - { 0x4E53, 82541 }, - { 0x4E51, 82544 }, - { 0x4E40, 82547 }, - { 0x4E3E, 82551 }, - { 0x4E41, 82555 }, - { 0x4E3F, 82559 }, - { 0x4E7D, 82563 }, - { 0x951E, 82566 }, - { 0x924F, 82567 }, - { 0x90E4, 82568 }, - { 0x225E, 82570 }, - { 0x225D, 82573 }, - { 0x2260, 82576 }, - { 0x2263, 82579 }, - { 0x2261, 82582 }, - { 0x225C, 82585 }, - { 0x225F, 82588 }, - { 0x2262, 82591 }, - { 0x8F6D, 82594 }, - { 0x9471, 82595 }, - { 0x1D33, 82597 }, - { 0x90B3, 82600 }, - { 0x94B2, 82603 }, - { 0x1DF6, 82605 }, - { 0x1DE8, 82609 }, - { 0x253E, 82611 }, - { 0x96B9, 82615 }, - { 0x1DFC, 82622 }, - { 0x1E07, 82626 }, - { 0x1E08, 82631 }, - { 0x9395, 82636 }, - { 0x938D, 82642 }, - { 0x9399, 82648 }, - { 0x1E35, 82654 }, - { 0x9391, 82659 }, - { 0x940B, 82665 }, - { 0x2535, 82670 }, - { 0x939D, 82675 }, - { 0x1E1C, 82680 }, - { 0x2732, 82686 }, - { 0x27B3, 82689 }, - { 0x93CD, 82694 }, - { 0x93C9, 82697 }, - { 0x1E3E, 82701 }, - { 0x1E42, 82704 }, - { 0x1E44, 82709 }, - { 0x1E43, 82717 }, - { 0x1E41, 82725 }, - { 0x27E1, 82730 }, - { 0x9407, 82738 }, - { 0x1E45, 82744 }, - { 0x1E46, 82748 }, - { 0x2A0B, 82754 }, - { 0x1E38, 82756 }, - { 0x1E28, 82759 }, - { 0x1E1F, 82762 }, - { 0x9220, 82765 }, - { 0x2536, 82767 }, - { 0x2584, 82770 }, - { 0x258C, 82777 }, - { 0x258F, 82784 }, - { 0x259A, 82795 }, - { 0x2580, 82806 }, - { 0x2588, 82813 }, - { 0x1E16, 82820 }, - { 0x1E15, 82825 }, - { 0x93C1, 82830 }, - { 0x9403, 82833 }, - { 0x241C, 82836 }, - { 0x93C5, 82839 }, - { 0x93D1, 82842 }, - { 0x2575, 82845 }, - { 0x2816, 82851 }, - { 0x93BD, 82857 }, - { 0x278D, 82860 }, - { 0x279D, 82863 }, - { 0x93B1, 82868 }, - { 0x27CB, 82874 }, - { 0x27CC, 82881 }, - { 0x93B9, 82888 }, - { 0x93B5, 82895 }, - { 0x27A5, 82901 }, - { 0x93AD, 82908 }, - { 0x93A9, 82914 }, - { 0x27AB, 82920 }, - { 0x2797, 82928 }, - { 0x27AF, 82932 }, - { 0x9509, 82936 }, - { 0x2338, 82937 }, - { 0x8EBE, 82939 }, - { 0x22CC, 82940 }, - { 0x9045, 82942 }, - { 0x91BC, 82943 }, - { 0x91D2, 82945 }, - { 0x8F34, 82947 }, - { 0x2339, 82949 }, - { 0x9585, 82951 }, - { 0x9587, 82954 }, - { 0x9586, 82957 }, - { 0x9582, 82960 }, - { 0x9588, 82963 }, - { 0x9584, 82966 }, - { 0x9583, 82969 }, - { 0x958C, 82972 }, - { 0x958E, 82975 }, - { 0x958D, 82978 }, - { 0x9589, 82981 }, - { 0x958F, 82984 }, - { 0x958B, 82987 }, - { 0x958A, 82990 }, - { 0x949F, 82993 }, - { 0x1CEC, 82995 }, - { 0x1CEA, 82999 }, - { 0x9599, 83002 }, - { 0x2334, 83004 }, - { 0x929B, 83005 }, - { 0x929A, 83007 }, - { 0x8F7B, 83009 }, - { 0x1D86, 83011 }, - { 0x227E, 83013 }, - { 0x0540, 83014 }, - { 0x053C, 83017 }, - { 0x0510, 83020 }, - { 0x0521, 83022 }, - { 0x0534, 83026 }, - { 0x0517, 83030 }, - { 0x051A, 83034 }, - { 0x051B, 83038 }, - { 0x0523, 83042 }, - { 0x0524, 83046 }, - { 0x0538, 83050 }, - { 0x052F, 83054 }, - { 0x051C, 83058 }, - { 0x052B, 83062 }, - { 0x0528, 83066 }, - { 0x053B, 83070 }, - { 0x0519, 83076 }, - { 0x0514, 83080 }, - { 0x0515, 83084 }, - { 0x052C, 83088 }, - { 0x0518, 83092 }, - { 0x0539, 83096 }, - { 0x0516, 83100 }, - { 0x051E, 83104 }, - { 0x0537, 83108 }, - { 0x0522, 83112 }, - { 0x0527, 83116 }, - { 0x0529, 83120 }, - { 0x052D, 83124 }, - { 0x0533, 83128 }, - { 0x0530, 83132 }, - { 0x052A, 83136 }, - { 0x0531, 83140 }, - { 0x0520, 83144 }, - { 0x051D, 83148 }, - { 0x0526, 83152 }, - { 0x0525, 83156 }, - { 0x052E, 83160 }, - { 0x051F, 83164 }, - { 0x0536, 83168 }, - { 0x0532, 83172 }, - { 0x0535, 83176 }, - { 0x0513, 83180 }, - { 0x053A, 83185 }, - { 0x3B70, 83190 }, - { 0x3B71, 83195 }, - { 0x3B6F, 83200 }, - { 0x3B73, 83205 }, - { 0x3B72, 83210 }, - { 0x053D, 83215 }, - { 0x04F3, 83217 }, - { 0x0506, 83221 }, - { 0x04E9, 83225 }, - { 0x04EC, 83229 }, - { 0x04ED, 83233 }, - { 0x04F5, 83237 }, - { 0x04F6, 83241 }, - { 0x050A, 83245 }, - { 0x0501, 83249 }, - { 0x04EE, 83253 }, - { 0x04FD, 83257 }, - { 0x04FA, 83261 }, - { 0x04EB, 83265 }, - { 0x04E6, 83269 }, - { 0x04E7, 83273 }, - { 0x04FE, 83277 }, - { 0x04EA, 83281 }, - { 0x050B, 83285 }, - { 0x04E8, 83289 }, - { 0x04F0, 83293 }, - { 0x0509, 83297 }, - { 0x04F4, 83301 }, - { 0x04F9, 83305 }, - { 0x04FB, 83309 }, - { 0x04FF, 83313 }, - { 0x0505, 83317 }, - { 0x0502, 83321 }, - { 0x04FC, 83325 }, - { 0x0503, 83329 }, - { 0x04F2, 83333 }, - { 0x04EF, 83337 }, - { 0x04F8, 83341 }, - { 0x04F7, 83345 }, - { 0x0500, 83349 }, - { 0x04F1, 83353 }, - { 0x0508, 83357 }, - { 0x0504, 83361 }, - { 0x0507, 83365 }, - { 0x050E, 83369 }, - { 0x050C, 83372 }, - { 0x0511, 83378 }, - { 0x050D, 83381 }, - { 0x050F, 83383 }, - { 0x0512, 83386 }, - { 0x000A, 83389 }, - { 0x1E6E, 83390 }, - { 0x1CC2, 83392 }, - { 0x9012, 83393 }, - { 0x8FDE, 83395 }, - { 0x9484, 83397 }, - { 0x17FE, 83399 }, - { 0x17BA, 83402 }, - { 0x17BB, 83406 }, - { 0x17BE, 83410 }, - { 0x17BC, 83413 }, - { 0x17BD, 83416 }, - { 0x17EE, 83419 }, - { 0x1817, 83422 }, - { 0x1818, 83425 }, - { 0x1816, 83428 }, - { 0x180A, 83431 }, - { 0x180F, 83434 }, - { 0x180B, 83437 }, - { 0x180E, 83440 }, - { 0x180D, 83443 }, - { 0x1812, 83446 }, - { 0x1809, 83449 }, - { 0x1811, 83452 }, - { 0x1810, 83455 }, - { 0x180C, 83458 }, - { 0x1813, 83461 }, - { 0x1838, 83463 }, - { 0x1836, 83466 }, - { 0x17F6, 83469 }, - { 0x17F7, 83474 }, - { 0x17F4, 83480 }, - { 0x17F5, 83485 }, - { 0x17F0, 83491 }, - { 0x17F1, 83495 }, - { 0x17F2, 83500 }, - { 0x17F3, 83504 }, - { 0x17FC, 83509 }, - { 0x17FD, 83513 }, - { 0x17F8, 83518 }, - { 0x17F9, 83522 }, - { 0x17FB, 83527 }, - { 0x17FA, 83533 }, - { 0x17EF, 83538 }, - { 0x1815, 83542 }, - { 0x17E3, 83544 }, - { 0x17E4, 83547 }, - { 0x17D2, 83551 }, - { 0x17D3, 83554 }, - { 0x17DE, 83558 }, - { 0x17DF, 83561 }, - { 0x17D9, 83565 }, - { 0x17DA, 83570 }, - { 0x1802, 83575 }, - { 0x17CF, 83579 }, - { 0x17D0, 83582 }, - { 0x17ED, 83586 }, - { 0x17D4, 83589 }, - { 0x17D5, 83592 }, - { 0x17CD, 83596 }, - { 0x17CE, 83599 }, - { 0x17E8, 83603 }, - { 0x17C7, 83606 }, - { 0x17C8, 83610 }, - { 0x17E5, 83615 }, - { 0x17E0, 83618 }, - { 0x17DB, 83621 }, - { 0x17E1, 83625 }, - { 0x17E2, 83628 }, - { 0x17E7, 83632 }, - { 0x17C5, 83635 }, - { 0x17C6, 83639 }, - { 0x17EC, 83644 }, - { 0x17EA, 83647 }, - { 0x17EB, 83651 }, - { 0x17DC, 83655 }, - { 0x17DD, 83658 }, - { 0x17D7, 83662 }, - { 0x17D8, 83666 }, - { 0x1803, 83671 }, - { 0x17E9, 83675 }, - { 0x17E6, 83678 }, - { 0x17FF, 83681 }, - { 0x17D1, 83685 }, - { 0x17D6, 83688 }, - { 0x1804, 83691 }, - { 0x1800, 83695 }, - { 0x1801, 83699 }, - { 0x17BF, 83703 }, - { 0x17C0, 83706 }, - { 0x17C9, 83710 }, - { 0x17C1, 83713 }, - { 0x17C2, 83716 }, - { 0x17CB, 83720 }, - { 0x17CC, 83723 }, - { 0x17C3, 83727 }, - { 0x17C4, 83730 }, - { 0x17CA, 83734 }, - { 0x1805, 83737 }, - { 0x1806, 83741 }, - { 0x1814, 83745 }, - { 0x1837, 83747 }, - { 0x181D, 83750 }, - { 0x1823, 83754 }, - { 0x181E, 83759 }, - { 0x181B, 83764 }, - { 0x181F, 83768 }, - { 0x181A, 83772 }, - { 0x181C, 83776 }, - { 0x1820, 83780 }, - { 0x1822, 83784 }, - { 0x1821, 83788 }, - { 0x182C, 83792 }, - { 0x182B, 83797 }, - { 0x1825, 83802 }, - { 0x1824, 83807 }, - { 0x1827, 83812 }, - { 0x182A, 83817 }, - { 0x1826, 83824 }, - { 0x1829, 83829 }, - { 0x1828, 83836 }, - { 0x1831, 83841 }, - { 0x1835, 83847 }, - { 0x1832, 83853 }, - { 0x1833, 83859 }, - { 0x1834, 83865 }, - { 0x182E, 83871 }, - { 0x182D, 83877 }, - { 0x1830, 83883 }, - { 0x182F, 83889 }, - { 0x1807, 83895 }, - { 0x1808, 83899 }, - { 0x1819, 83903 }, - { 0x9067, 83905 }, - { 0x9069, 83909 }, - { 0x906A, 83913 }, - { 0x9068, 83917 }, - { 0x22EA, 83921 }, - { 0x94F1, 83922 }, - { 0x8F35, 83924 }, - { 0x8FD4, 83926 }, - { 0x90C9, 83927 }, - { 0x9084, 83928 }, - { 0x2D5E, 83930 }, - { 0x2D5A, 83934 }, - { 0x2D59, 83938 }, - { 0x2D57, 83942 }, - { 0x2D58, 83946 }, - { 0x2CBF, 83950 }, - { 0x2CAA, 83953 }, - { 0x2CBD, 83956 }, - { 0x2CAE, 83959 }, - { 0x2CC1, 83962 }, - { 0x2CAD, 83965 }, - { 0x2CB2, 83968 }, - { 0x2CB4, 83971 }, - { 0x2CCC, 83974 }, - { 0x2CB5, 83977 }, - { 0x2CB3, 83980 }, - { 0x2CB1, 83983 }, - { 0x2CAC, 83986 }, - { 0x2CB0, 83989 }, - { 0x2CC0, 83992 }, - { 0x2CD3, 83995 }, - { 0x2CAB, 84001 }, - { 0x2CB6, 84004 }, - { 0x2CBB, 84007 }, - { 0x2CBE, 84010 }, - { 0x2CAF, 84013 }, - { 0x2CCD, 84016 }, - { 0x2CCF, 84019 }, - { 0x2CB7, 84022 }, - { 0x2CBC, 84025 }, - { 0x2D62, 84028 }, - { 0x2CC3, 84031 }, - { 0x2D53, 84034 }, - { 0x2CC7, 84037 }, - { 0x2CC5, 84040 }, - { 0x2D43, 84043 }, - { 0x2CB9, 84046 }, - { 0x2D47, 84049 }, - { 0x2CC2, 84052 }, - { 0x2CC4, 84055 }, - { 0x2CC8, 84058 }, - { 0x2CCB, 84061 }, - { 0x2D5B, 84064 }, - { 0x2CD1, 84067 }, - { 0x2D46, 84070 }, - { 0x2D5F, 84073 }, - { 0x2CD2, 84076 }, - { 0x2D4F, 84079 }, - { 0x2D4B, 84082 }, - { 0x2CCE, 84085 }, - { 0x2D45, 84088 }, - { 0x2D60, 84091 }, - { 0x2D5C, 84094 }, - { 0x2CD0, 84097 }, - { 0x2CD4, 84100 }, - { 0x2D61, 84103 }, - { 0x2D54, 84106 }, - { 0x2D49, 84109 }, - { 0x2CC6, 84112 }, - { 0x2CBA, 84115 }, - { 0x2CB8, 84118 }, - { 0x2D44, 84121 }, - { 0x2D5D, 84124 }, - { 0x2CC9, 84127 }, - { 0x2D4C, 84130 }, - { 0x2CCA, 84133 }, - { 0x2D48, 84136 }, - { 0x2D4D, 84139 }, - { 0x2D50, 84142 }, - { 0x2D55, 84145 }, - { 0x2D4A, 84148 }, - { 0x2D4E, 84151 }, - { 0x2D51, 84154 }, - { 0x2D52, 84157 }, - { 0x2D56, 84160 }, - { 0x9494, 84163 }, - { 0x171B, 84164 }, - { 0x1717, 84168 }, - { 0x1715, 84172 }, - { 0x1718, 84176 }, - { 0x1716, 84180 }, - { 0x1719, 84184 }, - { 0x1713, 84188 }, - { 0x1703, 84191 }, - { 0x170A, 84194 }, - { 0x1707, 84197 }, - { 0x16FF, 84200 }, - { 0x1714, 84203 }, - { 0x170B, 84206 }, - { 0x16FE, 84209 }, - { 0x1710, 84212 }, - { 0x1704, 84215 }, - { 0x1708, 84218 }, - { 0x1702, 84221 }, - { 0x170F, 84224 }, - { 0x1712, 84227 }, - { 0x1706, 84230 }, - { 0x1711, 84233 }, - { 0x170E, 84236 }, - { 0x1705, 84239 }, - { 0x1700, 84242 }, - { 0x1709, 84245 }, - { 0x170C, 84248 }, - { 0x1701, 84251 }, - { 0x170D, 84254 }, - { 0x171A, 84257 }, - { 0x8F8A, 84259 }, - { 0x911E, 84261 }, - { 0x911F, 84262 }, - { 0x21FA, 84266 }, - { 0x2250, 84267 }, - { 0x9078, 84268 }, - { 0x118E, 84269 }, - { 0x1225, 84272 }, - { 0x1185, 84275 }, - { 0x12E1, 84278 }, - { 0x1187, 84281 }, - { 0x1207, 84284 }, - { 0x126E, 84287 }, - { 0x123F, 84290 }, - { 0x1254, 84293 }, - { 0x1189, 84296 }, - { 0x11CD, 84299 }, - { 0x1309, 84302 }, - { 0x12D4, 84305 }, - { 0x1289, 84308 }, - { 0x11EA, 84311 }, - { 0x12C2, 84314 }, - { 0x118F, 84317 }, - { 0x11A0, 84320 }, - { 0x11B2, 84323 }, - { 0x15DF, 84326 }, - { 0x1214, 84329 }, - { 0x120D, 84332 }, - { 0x120F, 84335 }, - { 0x1211, 84338 }, - { 0x11AF, 84341 }, - { 0x12DD, 84344 }, - { 0x12D7, 84347 }, - { 0x12D9, 84350 }, - { 0x12DB, 84353 }, - { 0x1301, 84356 }, - { 0x1188, 84359 }, - { 0x11B0, 84362 }, - { 0x11F6, 84365 }, - { 0x11EF, 84368 }, - { 0x11F1, 84371 }, - { 0x11F3, 84374 }, - { 0x1208, 84377 }, - { 0x125E, 84380 }, - { 0x1257, 84383 }, - { 0x132A, 84386 }, - { 0x1259, 84389 }, - { 0x125B, 84392 }, - { 0x122E, 84395 }, - { 0x1227, 84398 }, - { 0x1241, 84401 }, - { 0x1229, 84404 }, - { 0x122B, 84407 }, - { 0x124B, 84410 }, - { 0x1244, 84413 }, - { 0x1319, 84416 }, - { 0x1256, 84419 }, - { 0x1246, 84422 }, - { 0x1248, 84425 }, - { 0x11B1, 84428 }, - { 0x118A, 84431 }, - { 0x15DE, 84434 }, - { 0x11BC, 84437 }, - { 0x11B3, 84440 }, - { 0x11B5, 84443 }, - { 0x11B7, 84446 }, - { 0x1307, 84449 }, - { 0x1303, 84452 }, - { 0x1305, 84455 }, - { 0x12CF, 84458 }, - { 0x12C6, 84461 }, - { 0x12CA, 84464 }, - { 0x12CC, 84467 }, - { 0x1278, 84470 }, - { 0x1271, 84473 }, - { 0x12A9, 84476 }, - { 0x1273, 84479 }, - { 0x1275, 84482 }, - { 0x128B, 84485 }, - { 0x11D9, 84488 }, - { 0x11D0, 84491 }, - { 0x12EE, 84494 }, - { 0x11D2, 84497 }, - { 0x11D4, 84500 }, - { 0x119B, 84503 }, - { 0x1190, 84506 }, - { 0x1192, 84509 }, - { 0x1196, 84512 }, - { 0x12B1, 84515 }, - { 0x12AA, 84518 }, - { 0x12AC, 84521 }, - { 0x12AE, 84524 }, - { 0x1186, 84527 }, - { 0x15E0, 84530 }, - { 0x1215, 84533 }, - { 0x13F1, 84536 }, - { 0x1210, 84540 }, - { 0x1212, 84543 }, - { 0x1220, 84546 }, - { 0x1216, 84549 }, - { 0x1218, 84552 }, - { 0x121C, 84555 }, - { 0x12DE, 84558 }, - { 0x12DA, 84561 }, - { 0x12DC, 84564 }, - { 0x11F7, 84567 }, - { 0x15E6, 84570 }, - { 0x11F2, 84573 }, - { 0x11F4, 84576 }, - { 0x1202, 84579 }, - { 0x11F8, 84582 }, - { 0x11FA, 84585 }, - { 0x11FE, 84588 }, - { 0x125F, 84591 }, - { 0x15EB, 84594 }, - { 0x1328, 84597 }, - { 0x1324, 84600 }, - { 0x1326, 84603 }, - { 0x125A, 84606 }, - { 0x125C, 84609 }, - { 0x126A, 84612 }, - { 0x1260, 84615 }, - { 0x1262, 84618 }, - { 0x1266, 84621 }, - { 0x122F, 84624 }, - { 0x15E8, 84627 }, - { 0x122A, 84630 }, - { 0x122C, 84633 }, - { 0x123A, 84636 }, - { 0x1230, 84639 }, - { 0x1232, 84642 }, - { 0x1236, 84645 }, - { 0x124C, 84648 }, - { 0x15EA, 84651 }, - { 0x1317, 84654 }, - { 0x1313, 84657 }, - { 0x1315, 84660 }, - { 0x1247, 84663 }, - { 0x131A, 84666 }, - { 0x1249, 84669 }, - { 0x15E9, 84672 }, - { 0x124F, 84675 }, - { 0x124D, 84678 }, - { 0x15F4, 84681 }, - { 0x15F8, 84684 }, - { 0x11BD, 84687 }, - { 0x15E3, 84690 }, - { 0x11B6, 84693 }, - { 0x11B8, 84696 }, - { 0x15E2, 84699 }, - { 0x11C8, 84702 }, - { 0x11BE, 84705 }, - { 0x11C0, 84708 }, - { 0x11C4, 84711 }, - { 0x1308, 84714 }, - { 0x13F3, 84717 }, - { 0x1304, 84720 }, - { 0x1306, 84723 }, - { 0x12D0, 84726 }, - { 0x15F3, 84729 }, - { 0x12CB, 84732 }, - { 0x12CD, 84735 }, - { 0x1601, 84738 }, - { 0x15FD, 84741 }, - { 0x15FF, 84744 }, - { 0x1279, 84747 }, - { 0x15ED, 84750 }, - { 0x1299, 84753 }, - { 0x1294, 84756 }, - { 0x1295, 84759 }, - { 0x1297, 84762 }, - { 0x1274, 84765 }, - { 0x1276, 84768 }, - { 0x15EC, 84771 }, - { 0x519D, 84774 }, - { 0x519A, 84777 }, - { 0x519B, 84780 }, - { 0x519C, 84783 }, - { 0x1284, 84786 }, - { 0x127A, 84789 }, - { 0x127C, 84792 }, - { 0x1280, 84795 }, - { 0x11DA, 84798 }, - { 0x15E5, 84801 }, - { 0x12EA, 84804 }, - { 0x12E2, 84807 }, - { 0x12E4, 84810 }, - { 0x12E8, 84813 }, - { 0x11D3, 84816 }, - { 0x11D5, 84819 }, - { 0x11EE, 84822 }, - { 0x11EB, 84825 }, - { 0x12F3, 84828 }, - { 0x11EC, 84831 }, - { 0x11ED, 84834 }, - { 0x11E5, 84837 }, - { 0x11DB, 84840 }, - { 0x11DD, 84843 }, - { 0x11E1, 84846 }, - { 0x12F7, 84849 }, - { 0x12F4, 84852 }, - { 0x12F5, 84855 }, - { 0x12F6, 84858 }, - { 0x119D, 84861 }, - { 0x15E1, 84864 }, - { 0x1194, 84867 }, - { 0x1198, 84870 }, - { 0x12B2, 84873 }, - { 0x15F2, 84876 }, - { 0x12AD, 84879 }, - { 0x12AF, 84882 }, - { 0x15F1, 84885 }, - { 0x12BD, 84888 }, - { 0x12B3, 84891 }, - { 0x12B5, 84894 }, - { 0x12B9, 84897 }, - { 0x120E, 84900 }, - { 0x1222, 84903 }, - { 0x121A, 84906 }, - { 0x121E, 84909 }, - { 0x12D8, 84912 }, - { 0x13F2, 84915 }, - { 0x12DF, 84919 }, - { 0x11F0, 84922 }, - { 0x1204, 84925 }, - { 0x15E7, 84928 }, - { 0x11FC, 84931 }, - { 0x1200, 84934 }, - { 0x1258, 84937 }, - { 0x1329, 84940 }, - { 0x1325, 84943 }, - { 0x1327, 84946 }, - { 0x126C, 84949 }, - { 0x1264, 84952 }, - { 0x1268, 84955 }, - { 0x1228, 84958 }, - { 0x123C, 84961 }, - { 0x1234, 84964 }, - { 0x1238, 84967 }, - { 0x1245, 84970 }, - { 0x1318, 84973 }, - { 0x13F4, 84976 }, - { 0x1314, 84979 }, - { 0x1316, 84982 }, - { 0x13F9, 84985 }, - { 0x13F5, 84988 }, - { 0x13F7, 84991 }, - { 0x1251, 84994 }, - { 0x15F6, 84997 }, - { 0x15FA, 85000 }, - { 0x11B4, 85003 }, - { 0x11CA, 85006 }, - { 0x11C2, 85009 }, - { 0x11C6, 85012 }, - { 0x15E4, 85015 }, - { 0x1302, 85018 }, - { 0x12C9, 85021 }, - { 0x12D2, 85024 }, - { 0x15FC, 85027 }, - { 0x15FE, 85030 }, - { 0x1600, 85033 }, - { 0x1272, 85036 }, - { 0x129A, 85039 }, - { 0x15EF, 85042 }, - { 0x1296, 85045 }, - { 0x1298, 85048 }, - { 0x15EE, 85051 }, - { 0x12A5, 85054 }, - { 0x129B, 85057 }, - { 0x129D, 85060 }, - { 0x12A1, 85063 }, - { 0x1286, 85066 }, - { 0x127E, 85069 }, - { 0x1282, 85072 }, - { 0x11D1, 85075 }, - { 0x12EB, 85078 }, - { 0x12E6, 85081 }, - { 0x12E9, 85084 }, - { 0x1612, 85087 }, - { 0x1611, 85090 }, - { 0x130D, 85093 }, - { 0x130A, 85096 }, - { 0x130B, 85099 }, - { 0x130C, 85102 }, - { 0x12F2, 85105 }, - { 0x12EF, 85108 }, - { 0x12F0, 85111 }, - { 0x12F1, 85114 }, - { 0x11E7, 85117 }, - { 0x11DF, 85120 }, - { 0x11E3, 85123 }, - { 0x12AB, 85126 }, - { 0x12BF, 85129 }, - { 0x12B7, 85132 }, - { 0x12BB, 85135 }, - { 0x11A6, 85138 }, - { 0x11AE, 85144 }, - { 0x11AD, 85149 }, - { 0x11A8, 85153 }, - { 0x11A3, 85157 }, - { 0x11A4, 85161 }, - { 0x11A7, 85165 }, - { 0x11AC, 85171 }, - { 0x160C, 85177 }, - { 0x11A5, 85182 }, - { 0x11A9, 85188 }, - { 0x11AA, 85193 }, - { 0x11AB, 85200 }, - { 0x160D, 85205 }, - { 0x1312, 85210 }, - { 0x13FA, 85213 }, - { 0x13F6, 85216 }, - { 0x13F8, 85219 }, - { 0x12A7, 85222 }, - { 0x129F, 85225 }, - { 0x12A3, 85228 }, - { 0x15F0, 85231 }, - { 0x12EC, 85234 }, - { 0x1617, 85237 }, - { 0x1616, 85240 }, - { 0x1615, 85243 }, - { 0x1614, 85246 }, - { 0x1613, 85249 }, - { 0x1621, 85252 }, - { 0x1622, 85257 }, - { 0x1184, 85262 }, - { 0x1270, 85265 }, - { 0x12D6, 85269 }, - { 0x12E3, 85273 }, - { 0x12E5, 85277 }, - { 0x12E7, 85281 }, - { 0x12C7, 85285 }, - { 0x160E, 85289 }, - { 0x1243, 85293 }, - { 0x1347, 85297 }, - { 0x1344, 85301 }, - { 0x1345, 85305 }, - { 0x1346, 85309 }, - { 0x139E, 85313 }, - { 0x1399, 85317 }, - { 0x1226, 85321 }, - { 0x12C5, 85325 }, - { 0x161A, 85329 }, - { 0x161F, 85333 }, - { 0x131E, 85337 }, - { 0x131B, 85341 }, - { 0x131C, 85345 }, - { 0x131D, 85349 }, - { 0x1619, 85353 }, - { 0x1618, 85357 }, - { 0x11A1, 85361 }, - { 0x118B, 85365 }, - { 0x1213, 85369 }, - { 0x11F5, 85373 }, - { 0x125D, 85377 }, - { 0x122D, 85381 }, - { 0x124A, 85385 }, - { 0x11B9, 85389 }, - { 0x1277, 85393 }, - { 0x11D6, 85397 }, - { 0x12B0, 85401 }, - { 0x11CC, 85405 }, - { 0x1333, 85409 }, - { 0x11CF, 85413 }, - { 0x118D, 85417 }, - { 0x1372, 85421 }, - { 0x13CA, 85425 }, - { 0x11D8, 85429 }, - { 0x118C, 85433 }, - { 0x1378, 85437 }, - { 0x1375, 85441 }, - { 0x1377, 85445 }, - { 0x1374, 85449 }, - { 0x1373, 85453 }, - { 0x11BB, 85457 }, - { 0x139F, 85461 }, - { 0x139B, 85465 }, - { 0x139D, 85469 }, - { 0x139A, 85473 }, - { 0x1398, 85477 }, - { 0x1385, 85481 }, - { 0x13AB, 85485 }, - { 0x13A8, 85489 }, - { 0x13AA, 85493 }, - { 0x13A7, 85497 }, - { 0x13A6, 85501 }, - { 0x1391, 85505 }, - { 0x138E, 85509 }, - { 0x1390, 85513 }, - { 0x138D, 85517 }, - { 0x138C, 85521 }, - { 0x138B, 85525 }, - { 0x1388, 85529 }, - { 0x1255, 85533 }, - { 0x138A, 85537 }, - { 0x1387, 85541 }, - { 0x1386, 85545 }, - { 0x1371, 85549 }, - { 0x136E, 85553 }, - { 0x1370, 85557 }, - { 0x136D, 85561 }, - { 0x136C, 85565 }, - { 0x1353, 85569 }, - { 0x1350, 85573 }, - { 0x1352, 85577 }, - { 0x134F, 85581 }, - { 0x134E, 85585 }, - { 0x13D7, 85589 }, - { 0x13D4, 85593 }, - { 0x13DE, 85597 }, - { 0x13D6, 85601 }, - { 0x13D3, 85605 }, - { 0x13D2, 85609 }, - { 0x1359, 85613 }, - { 0x1356, 85617 }, - { 0x1358, 85621 }, - { 0x1355, 85625 }, - { 0x1354, 85629 }, - { 0x1397, 85633 }, - { 0x1394, 85637 }, - { 0x1396, 85641 }, - { 0x1393, 85645 }, - { 0x1392, 85649 }, - { 0x13C9, 85653 }, - { 0x13C6, 85657 }, - { 0x13C8, 85661 }, - { 0x13C5, 85665 }, - { 0x13C4, 85669 }, - { 0x13EA, 85673 }, - { 0x13E7, 85677 }, - { 0x13E9, 85681 }, - { 0x13E6, 85685 }, - { 0x13E5, 85689 }, - { 0x11D7, 85693 }, - { 0x13B1, 85697 }, - { 0x13AE, 85701 }, - { 0x13B0, 85705 }, - { 0x13AD, 85709 }, - { 0x13AC, 85713 }, - { 0x13D1, 85717 }, - { 0x13CE, 85721 }, - { 0x13D0, 85725 }, - { 0x13CD, 85729 }, - { 0x13CC, 85733 }, - { 0x161D, 85737 }, - { 0x1376, 85741 }, - { 0x134D, 85745 }, - { 0x134A, 85749 }, - { 0x134C, 85753 }, - { 0x1349, 85757 }, - { 0x1348, 85761 }, - { 0x161E, 85765 }, - { 0x161B, 85769 }, - { 0x11BA, 85773 }, - { 0x135F, 85777 }, - { 0x135C, 85781 }, - { 0x135E, 85785 }, - { 0x135B, 85789 }, - { 0x135A, 85793 }, - { 0x139C, 85797 }, - { 0x13A5, 85801 }, - { 0x13A2, 85805 }, - { 0x13A4, 85809 }, - { 0x13A1, 85813 }, - { 0x13A0, 85817 }, - { 0x1620, 85821 }, - { 0x137E, 85825 }, - { 0x137B, 85829 }, - { 0x137D, 85833 }, - { 0x137A, 85837 }, - { 0x1379, 85841 }, - { 0x1384, 85845 }, - { 0x1381, 85849 }, - { 0x1383, 85853 }, - { 0x1380, 85857 }, - { 0x137F, 85861 }, - { 0x13A9, 85865 }, - { 0x13B7, 85869 }, - { 0x13B4, 85873 }, - { 0x13B6, 85877 }, - { 0x13B3, 85881 }, - { 0x13B2, 85885 }, - { 0x138F, 85889 }, - { 0x1389, 85893 }, - { 0x136F, 85897 }, - { 0x1351, 85901 }, - { 0x13D5, 85905 }, - { 0x13DD, 85909 }, - { 0x13DA, 85913 }, - { 0x13DC, 85917 }, - { 0x13D9, 85921 }, - { 0x13D8, 85925 }, - { 0x1365, 85929 }, - { 0x1362, 85933 }, - { 0x1364, 85937 }, - { 0x1361, 85941 }, - { 0x1360, 85945 }, - { 0x13C3, 85949 }, - { 0x13C0, 85953 }, - { 0x13C2, 85957 }, - { 0x13BF, 85961 }, - { 0x13BE, 85965 }, - { 0x13E4, 85969 }, - { 0x13E1, 85973 }, - { 0x13E3, 85977 }, - { 0x13E0, 85981 }, - { 0x13DF, 85985 }, - { 0x136B, 85989 }, - { 0x1368, 85993 }, - { 0x136A, 85997 }, - { 0x1367, 86001 }, - { 0x1366, 86005 }, - { 0x1357, 86009 }, - { 0x1395, 86013 }, - { 0x13C7, 86017 }, - { 0x13E8, 86021 }, - { 0x161C, 86025 }, - { 0x13AF, 86030 }, - { 0x13CF, 86034 }, - { 0x134B, 86038 }, - { 0x135D, 86042 }, - { 0x13A3, 86046 }, - { 0x137C, 86050 }, - { 0x1382, 86054 }, - { 0x13B5, 86058 }, - { 0x13DB, 86062 }, - { 0x1363, 86066 }, - { 0x13C1, 86070 }, - { 0x13BD, 86074 }, - { 0x13BA, 86078 }, - { 0x13BC, 86082 }, - { 0x13B9, 86086 }, - { 0x13B8, 86090 }, - { 0x13E2, 86094 }, - { 0x1369, 86098 }, - { 0x13F0, 86102 }, - { 0x13ED, 86106 }, - { 0x13EF, 86110 }, - { 0x13EC, 86114 }, - { 0x13EB, 86118 }, - { 0x13BB, 86122 }, - { 0x13EE, 86126 }, - { 0x1623, 86130 }, - { 0x13CB, 86135 }, - { 0x160A, 86140 }, - { 0x11A2, 86144 }, - { 0x128F, 86148 }, - { 0x128E, 86152 }, - { 0x119F, 86156 }, - { 0x119A, 86160 }, - { 0x1224, 86164 }, - { 0x1206, 86168 }, - { 0x123E, 86172 }, - { 0x1253, 86176 }, - { 0x1293, 86180 }, - { 0x1292, 86184 }, - { 0x1290, 86188 }, - { 0x1291, 86192 }, - { 0x1288, 86196 }, - { 0x11E9, 86200 }, - { 0x12C1, 86204 }, - { 0x12FF, 86208 }, - { 0x12FD, 86212 }, - { 0x12F8, 86216 }, - { 0x12F9, 86220 }, - { 0x12FB, 86224 }, - { 0x12FE, 86228 }, - { 0x12FA, 86232 }, - { 0x12FC, 86236 }, - { 0x1300, 86240 }, - { 0x1605, 86244 }, - { 0x1604, 86248 }, - { 0x1606, 86252 }, - { 0x1607, 86256 }, - { 0x1602, 86260 }, - { 0x1608, 86264 }, - { 0x1603, 86268 }, - { 0x1609, 86272 }, - { 0x15F5, 86276 }, - { 0x15F9, 86280 }, - { 0x15F7, 86284 }, - { 0x15FB, 86288 }, - { 0x1332, 86292 }, - { 0x1330, 86296 }, - { 0x132B, 86300 }, - { 0x132C, 86304 }, - { 0x132E, 86308 }, - { 0x1331, 86312 }, - { 0x132D, 86316 }, - { 0x132F, 86320 }, - { 0x160B, 86324 }, - { 0x5192, 86328 }, - { 0x518E, 86332 }, - { 0x5190, 86336 }, - { 0x5193, 86340 }, - { 0x518F, 86344 }, - { 0x5191, 86348 }, - { 0x5198, 86352 }, - { 0x5194, 86356 }, - { 0x5196, 86360 }, - { 0x5199, 86364 }, - { 0x5195, 86368 }, - { 0x5197, 86372 }, - { 0x1337, 86376 }, - { 0x1334, 86380 }, - { 0x1335, 86384 }, - { 0x1336, 86388 }, - { 0x128C, 86392 }, - { 0x1403, 86396 }, - { 0x1343, 86400 }, - { 0x1340, 86404 }, - { 0x1341, 86408 }, - { 0x1342, 86412 }, - { 0x133F, 86416 }, - { 0x133C, 86420 }, - { 0x133D, 86424 }, - { 0x133E, 86428 }, - { 0x133B, 86432 }, - { 0x1338, 86436 }, - { 0x1339, 86440 }, - { 0x133A, 86444 }, - { 0x126F, 86448 }, - { 0x1240, 86452 }, - { 0x11CE, 86456 }, - { 0x12D5, 86460 }, - { 0x12C4, 86464 }, - { 0x12D1, 86468 }, - { 0x12C8, 86472 }, - { 0x12CE, 86476 }, - { 0x1311, 86480 }, - { 0x130E, 86484 }, - { 0x130F, 86488 }, - { 0x1310, 86492 }, - { 0x119C, 86496 }, - { 0x1191, 86500 }, - { 0x1193, 86504 }, - { 0x1197, 86508 }, - { 0x1221, 86512 }, - { 0x1217, 86516 }, - { 0x1219, 86520 }, - { 0x121D, 86524 }, - { 0x1203, 86528 }, - { 0x11F9, 86532 }, - { 0x11FB, 86536 }, - { 0x11FF, 86540 }, - { 0x1610, 86544 }, - { 0x160F, 86548 }, - { 0x126B, 86552 }, - { 0x1261, 86556 }, - { 0x1263, 86560 }, - { 0x1267, 86564 }, - { 0x123B, 86568 }, - { 0x1231, 86572 }, - { 0x1233, 86576 }, - { 0x1237, 86580 }, - { 0x1250, 86584 }, - { 0x124E, 86588 }, - { 0x11C9, 86592 }, - { 0x11BF, 86596 }, - { 0x11C1, 86600 }, - { 0x11C5, 86604 }, - { 0x1285, 86608 }, - { 0x127B, 86612 }, - { 0x127D, 86616 }, - { 0x1281, 86620 }, - { 0x11E6, 86624 }, - { 0x11DC, 86628 }, - { 0x11DE, 86632 }, - { 0x11E2, 86636 }, - { 0x119E, 86640 }, - { 0x1195, 86644 }, - { 0x1199, 86648 }, - { 0x12BE, 86652 }, - { 0x12B4, 86656 }, - { 0x12B6, 86660 }, - { 0x12BA, 86664 }, - { 0x1223, 86668 }, - { 0x121B, 86672 }, - { 0x121F, 86676 }, - { 0x12E0, 86680 }, - { 0x1205, 86684 }, - { 0x11FD, 86688 }, - { 0x1201, 86692 }, - { 0x126D, 86696 }, - { 0x1265, 86700 }, - { 0x1269, 86704 }, - { 0x123D, 86708 }, - { 0x1235, 86712 }, - { 0x1239, 86716 }, - { 0x1252, 86720 }, - { 0x11CB, 86724 }, - { 0x11C3, 86728 }, - { 0x11C7, 86732 }, - { 0x12D3, 86736 }, - { 0x12A6, 86740 }, - { 0x129C, 86744 }, - { 0x129E, 86748 }, - { 0x12A2, 86752 }, - { 0x1287, 86756 }, - { 0x127F, 86760 }, - { 0x1283, 86764 }, - { 0x11E8, 86768 }, - { 0x11E0, 86772 }, - { 0x11E4, 86776 }, - { 0x12C0, 86780 }, - { 0x12B8, 86784 }, - { 0x12BC, 86788 }, - { 0x12A8, 86792 }, - { 0x12A0, 86796 }, - { 0x12A4, 86800 }, - { 0x12ED, 86804 }, - { 0x1242, 86808 }, - { 0x128A, 86812 }, - { 0x12C3, 86816 }, - { 0x128D, 86820 }, - { 0x1323, 86824 }, - { 0x1322, 86828 }, - { 0x131F, 86832 }, - { 0x1320, 86836 }, - { 0x1321, 86840 }, - { 0x1400, 86844 }, - { 0x13FC, 86848 }, - { 0x13FE, 86852 }, - { 0x1402, 86856 }, - { 0x1401, 86861 }, - { 0x13FB, 86865 }, - { 0x13FD, 86869 }, - { 0x13FF, 86873 }, - { 0x120C, 86877 }, - { 0x1209, 86881 }, - { 0x120A, 86885 }, - { 0x120B, 86889 }, - { 0x8F53, 86893 }, - { 0x9096, 86895 }, - { 0x3A93, 86897 }, - { 0x3A94, 86901 }, - { 0x3A95, 86905 }, - { 0x3A96, 86909 }, - { 0x3AC0, 86913 }, - { 0x3A97, 86917 }, - { 0x3A98, 86921 }, - { 0x3AC6, 86925 }, - { 0x3AC8, 86929 }, - { 0x3ACA, 86933 }, - { 0x3ACC, 86937 }, - { 0x3ACD, 86941 }, - { 0x3ACE, 86945 }, - { 0x3A99, 86949 }, - { 0x3A9B, 86953 }, - { 0x3A9C, 86957 }, - { 0x3A9D, 86961 }, - { 0x3A9E, 86965 }, - { 0x3A9F, 86969 }, - { 0x3AA0, 86973 }, - { 0x3AA1, 86977 }, - { 0x3AA2, 86981 }, - { 0x3AA3, 86985 }, - { 0x3AA4, 86989 }, - { 0x3AA5, 86993 }, - { 0x3A9A, 86997 }, - { 0x3AA6, 87001 }, - { 0x3AA7, 87005 }, - { 0x3AA8, 87009 }, - { 0x3AA9, 87013 }, - { 0x3AAA, 87017 }, - { 0x3AAB, 87021 }, - { 0x3AAC, 87025 }, - { 0x3AAD, 87029 }, - { 0x3AAE, 87033 }, - { 0x3AAF, 87037 }, - { 0x3AB0, 87041 }, - { 0x1183, 87045 }, - { 0x3AB1, 87049 }, - { 0x3AB4, 87053 }, - { 0x3AB5, 87057 }, - { 0x3AB6, 87061 }, - { 0x3AB7, 87065 }, - { 0x3AB8, 87069 }, - { 0x3ABF, 87073 }, - { 0x3AC1, 87077 }, - { 0x3AC2, 87081 }, - { 0x3AC3, 87085 }, - { 0x3AC4, 87089 }, - { 0x3AC5, 87093 }, - { 0x3AC7, 87097 }, - { 0x3AC9, 87101 }, - { 0x3ACB, 87105 }, - { 0x3ADC, 87109 }, - { 0x3ADD, 87113 }, - { 0x3ADE, 87117 }, - { 0x3ADF, 87121 }, - { 0x3AE0, 87125 }, - { 0x3AE1, 87129 }, - { 0x3AE2, 87133 }, - { 0x117E, 87137 }, - { 0x117F, 87141 }, - { 0x1180, 87145 }, - { 0x1181, 87149 }, - { 0x1182, 87153 }, - { 0x3ACF, 87157 }, - { 0x3AB2, 87161 }, - { 0x3AB3, 87165 }, - { 0x3AB9, 87169 }, - { 0x3ABA, 87173 }, - { 0x3ABB, 87177 }, - { 0x3ABC, 87181 }, - { 0x3ABD, 87185 }, - { 0x3ABE, 87189 }, - { 0x3AD0, 87193 }, - { 0x3AD1, 87197 }, - { 0x3AD2, 87201 }, - { 0x3AD3, 87205 }, - { 0x3AD4, 87209 }, - { 0x3AD5, 87213 }, - { 0x3AD6, 87217 }, - { 0x3AD7, 87221 }, - { 0x3AD8, 87225 }, - { 0x3AD9, 87229 }, - { 0x3ADA, 87233 }, - { 0x3ADB, 87237 }, - { 0x1128, 87241 }, - { 0x1129, 87244 }, - { 0x112A, 87247 }, - { 0x112B, 87250 }, - { 0x1155, 87253 }, - { 0x112C, 87256 }, - { 0x112D, 87259 }, - { 0x115B, 87262 }, - { 0x115D, 87265 }, - { 0x115F, 87268 }, - { 0x1161, 87271 }, - { 0x1162, 87274 }, - { 0x1163, 87277 }, - { 0x112E, 87280 }, - { 0x1130, 87283 }, - { 0x1131, 87286 }, - { 0x1132, 87289 }, - { 0x1133, 87292 }, - { 0x1134, 87295 }, - { 0x1135, 87298 }, - { 0x1136, 87301 }, - { 0x1137, 87304 }, - { 0x1138, 87307 }, - { 0x1139, 87310 }, - { 0x113A, 87313 }, - { 0x112F, 87316 }, - { 0x113B, 87319 }, - { 0x113C, 87322 }, - { 0x113D, 87325 }, - { 0x113E, 87328 }, - { 0x113F, 87331 }, - { 0x1140, 87334 }, - { 0x1141, 87337 }, - { 0x1142, 87340 }, - { 0x1143, 87343 }, - { 0x1144, 87346 }, - { 0x1145, 87349 }, - { 0x117D, 87352 }, - { 0x1146, 87355 }, - { 0x1149, 87358 }, - { 0x114A, 87361 }, - { 0x114B, 87364 }, - { 0x114C, 87367 }, - { 0x114D, 87370 }, - { 0x1154, 87373 }, - { 0x1156, 87376 }, - { 0x1157, 87379 }, - { 0x1158, 87382 }, - { 0x1159, 87385 }, - { 0x115A, 87388 }, - { 0x115C, 87391 }, - { 0x115E, 87394 }, - { 0x1160, 87397 }, - { 0x1171, 87400 }, - { 0x1172, 87403 }, - { 0x1173, 87406 }, - { 0x1174, 87409 }, - { 0x1175, 87412 }, - { 0x1176, 87415 }, - { 0x1177, 87418 }, - { 0x1178, 87421 }, - { 0x1179, 87424 }, - { 0x117A, 87427 }, - { 0x117B, 87430 }, - { 0x117C, 87433 }, - { 0x1164, 87436 }, - { 0x1147, 87439 }, - { 0x1148, 87442 }, - { 0x114E, 87445 }, - { 0x114F, 87448 }, - { 0x1150, 87451 }, - { 0x1151, 87454 }, - { 0x1152, 87457 }, - { 0x1153, 87460 }, - { 0x1165, 87463 }, - { 0x1166, 87466 }, - { 0x1167, 87469 }, - { 0x1168, 87472 }, - { 0x1169, 87475 }, - { 0x116A, 87478 }, - { 0x116B, 87481 }, - { 0x116C, 87484 }, - { 0x116D, 87487 }, - { 0x116E, 87490 }, - { 0x116F, 87493 }, - { 0x1170, 87496 }, - { 0x8F05, 87499 }, - { 0x8EE3, 87500 }, - { 0x926B, 87501 }, - { 0x8FF2, 87503 }, - { 0x9002, 87504 }, - { 0x8F2E, 87507 }, - { 0x9470, 87510 }, - { 0x8F2B, 87512 }, - { 0x8F3D, 87514 }, - { 0x91C8, 87516 }, - { 0x1E62, 87518 }, - { 0x1F0A, 87521 }, - { 0x1F0C, 87525 }, - { 0x1F51, 87532 }, - { 0x1F54, 87537 }, - { 0x1F52, 87540 }, - { 0x8DDA, 87549 }, - { 0x825B, 87551 }, - { 0x8260, 87556 }, - { 0x825C, 87561 }, - { 0x825F, 87566 }, - { 0x825E, 87571 }, - { 0x8263, 87576 }, - { 0x8262, 87581 }, - { 0x8261, 87586 }, - { 0x825D, 87591 }, - { 0x8252, 87596 }, - { 0x8257, 87601 }, - { 0x8253, 87606 }, - { 0x8256, 87611 }, - { 0x8255, 87616 }, - { 0x825A, 87621 }, - { 0x8259, 87626 }, - { 0x8258, 87631 }, - { 0x8254, 87636 }, - { 0x8ECC, 87641 }, - { 0x22F8, 87643 }, - { 0x1D1B, 87645 }, - { 0x9480, 87647 }, - { 0x0063, 87648 }, - { 0x9064, 87650 }, - { 0x03E6, 87652 }, - { 0x0487, 87656 }, - { 0x0489, 87662 }, - { 0x0403, 87668 }, - { 0x04A3, 87672 }, - { 0x03EE, 87678 }, - { 0x0413, 87682 }, - { 0x0499, 87688 }, - { 0x049B, 87694 }, - { 0x03F4, 87700 }, - { 0x049D, 87704 }, - { 0x03F9, 87710 }, - { 0x04A9, 87714 }, - { 0x04A5, 87721 }, - { 0x04A7, 87727 }, - { 0x03E7, 87733 }, - { 0x03EA, 87737 }, - { 0x03FA, 87741 }, - { 0x03F1, 87745 }, - { 0x04C9, 87749 }, - { 0x047C, 87755 }, - { 0x04D7, 87761 }, - { 0x04E5, 87768 }, - { 0x03F2, 87774 }, - { 0x0484, 87778 }, - { 0x03F3, 87784 }, - { 0x047E, 87788 }, - { 0x04DF, 87794 }, - { 0x0480, 87801 }, - { 0x04D9, 87807 }, - { 0x0459, 87814 }, - { 0x03F6, 87820 }, - { 0x0445, 87824 }, - { 0x03F7, 87830 }, - { 0x0461, 87834 }, - { 0x03FB, 87840 }, - { 0x04B3, 87844 }, - { 0x04B5, 87850 }, - { 0x0469, 87856 }, - { 0x03EB, 87862 }, - { 0x048D, 87866 }, - { 0x0406, 87872 }, - { 0x0407, 87878 }, - { 0x040E, 87882 }, - { 0x03F0, 87886 }, - { 0x047A, 87890 }, - { 0x0455, 87896 }, - { 0x0453, 87902 }, - { 0x0451, 87909 }, - { 0x0435, 87915 }, - { 0x03F5, 87919 }, - { 0x045D, 87923 }, - { 0x04DB, 87930 }, - { 0x04D1, 87936 }, - { 0x03F8, 87940 }, - { 0x3644, 87944 }, - { 0x0463, 87951 }, - { 0x042F, 87957 }, - { 0x03E8, 87961 }, - { 0x04D3, 87965 }, - { 0x0405, 87969 }, - { 0x040D, 87973 }, - { 0x3618, 87977 }, - { 0x0404, 87981 }, - { 0x03ED, 87985 }, - { 0x044F, 87989 }, - { 0x0495, 87995 }, - { 0x0421, 88001 }, - { 0x03FD, 88006 }, - { 0x046F, 88010 }, - { 0x046D, 88017 }, - { 0x04AB, 88023 }, - { 0x0408, 88029 }, - { 0x363A, 88033 }, - { 0x040B, 88037 }, - { 0x03E9, 88041 }, - { 0x044B, 88045 }, - { 0x0449, 88052 }, - { 0x04B1, 88058 }, - { 0x0447, 88066 }, - { 0x04AD, 88072 }, - { 0x0409, 88078 }, - { 0x364E, 88082 }, - { 0x0412, 88086 }, - { 0x0425, 88090 }, - { 0x04CB, 88094 }, - { 0x040F, 88098 }, - { 0x0410, 88102 }, - { 0x0427, 88106 }, - { 0x04CD, 88110 }, - { 0x03FE, 88114 }, - { 0x1935, 88118 }, - { 0x03FC, 88122 }, - { 0x3646, 88126 }, - { 0x04CF, 88130 }, - { 0x0419, 88134 }, - { 0x03EC, 88138 }, - { 0x0478, 88142 }, - { 0x044D, 88148 }, - { 0x0493, 88154 }, - { 0x3640, 88160 }, - { 0x04E3, 88164 }, - { 0x0415, 88168 }, - { 0x363C, 88172 }, - { 0x3642, 88176 }, - { 0x0429, 88180 }, - { 0x0400, 88184 }, - { 0x3600, 88189 }, - { 0x04B7, 88193 }, - { 0x04B9, 88198 }, - { 0x04BF, 88203 }, - { 0x04C1, 88208 }, - { 0x04C3, 88213 }, - { 0x04C5, 88218 }, - { 0x04BB, 88223 }, - { 0x04BD, 88228 }, - { 0x0471, 88233 }, - { 0x04DD, 88237 }, - { 0x3650, 88243 }, - { 0x361C, 88247 }, - { 0x361E, 88252 }, - { 0x3620, 88257 }, - { 0x0402, 88262 }, - { 0x192F, 88267 }, - { 0x1932, 88272 }, - { 0x1931, 88277 }, - { 0x364C, 88283 }, - { 0x0411, 88287 }, - { 0x364A, 88291 }, - { 0x3648, 88295 }, - { 0x192E, 88299 }, - { 0x0401, 88304 }, - { 0x360A, 88308 }, - { 0x04AF, 88315 }, - { 0x363E, 88321 }, - { 0x04D5, 88325 }, - { 0x3606, 88330 }, - { 0x3602, 88335 }, - { 0x35FC, 88339 }, - { 0x04E1, 88343 }, - { 0x0437, 88347 }, - { 0x0417, 88351 }, - { 0x0433, 88355 }, - { 0x0431, 88361 }, - { 0x048F, 88366 }, - { 0x0491, 88370 }, - { 0x03FF, 88376 }, - { 0x03EF, 88380 }, - { 0x0441, 88385 }, - { 0x0414, 88392 }, - { 0x049F, 88397 }, - { 0x04A1, 88402 }, - { 0x3612, 88409 }, - { 0x3652, 88415 }, - { 0x3626, 88420 }, - { 0x041D, 88426 }, - { 0x192D, 88431 }, - { 0x35FA, 88436 }, - { 0x0457, 88440 }, - { 0x3614, 88445 }, - { 0x3654, 88450 }, - { 0x042B, 88455 }, - { 0x042D, 88459 }, - { 0x3608, 88467 }, - { 0x192B, 88472 }, - { 0x3610, 88477 }, - { 0x041B, 88482 }, - { 0x0423, 88487 }, - { 0x360C, 88493 }, - { 0x3616, 88498 }, - { 0x041F, 88505 }, - { 0x0485, 88511 }, - { 0x360E, 88515 }, - { 0x04C7, 88520 }, - { 0x35FE, 88525 }, - { 0x361A, 88530 }, - { 0x0443, 88535 }, - { 0x0465, 88540 }, - { 0x0467, 88545 }, - { 0x045F, 88552 }, - { 0x0473, 88557 }, - { 0x0475, 88562 }, - { 0x0497, 88569 }, - { 0x3624, 88574 }, - { 0x3622, 88579 }, - { 0x3604, 88584 }, - { 0x040A, 88589 }, - { 0x1933, 88594 }, - { 0x0482, 88599 }, - { 0x192C, 88604 }, - { 0x1930, 88609 }, - { 0x040C, 88614 }, - { 0x048B, 88619 }, - { 0x045B, 88624 }, - { 0x046B, 88629 }, - { 0x3637, 88634 }, - { 0x19C2, 88636 }, - { 0x0476, 88641 }, - { 0x3627, 88644 }, - { 0x03C6, 88648 }, - { 0x0486, 88652 }, - { 0x0488, 88658 }, - { 0x03E3, 88664 }, - { 0x04A2, 88668 }, - { 0x03CE, 88674 }, - { 0x03C3, 88678 }, - { 0x0498, 88684 }, - { 0x049A, 88690 }, - { 0x03D4, 88696 }, - { 0x049C, 88700 }, - { 0x03D9, 88706 }, - { 0x04A8, 88710 }, - { 0x04A4, 88717 }, - { 0x04A6, 88723 }, - { 0x03C7, 88729 }, - { 0x03CA, 88733 }, - { 0x03DA, 88737 }, - { 0x03D1, 88741 }, - { 0x04C8, 88745 }, - { 0x047B, 88751 }, - { 0x04D6, 88757 }, - { 0x04E4, 88764 }, - { 0x03D2, 88770 }, - { 0x0483, 88774 }, - { 0x03D3, 88780 }, - { 0x047D, 88784 }, - { 0x04DE, 88790 }, - { 0x047F, 88797 }, - { 0x04D8, 88803 }, - { 0x0458, 88810 }, - { 0x03D6, 88816 }, - { 0x0444, 88820 }, - { 0x03D7, 88826 }, - { 0x0460, 88830 }, - { 0x03DB, 88836 }, - { 0x04B2, 88840 }, - { 0x04B4, 88846 }, - { 0x0468, 88852 }, - { 0x03CB, 88858 }, - { 0x048C, 88862 }, - { 0x03B6, 88868 }, - { 0x03B7, 88874 }, - { 0x03BE, 88878 }, - { 0x03D0, 88882 }, - { 0x0479, 88886 }, - { 0x0454, 88892 }, - { 0x0452, 88898 }, - { 0x0450, 88905 }, - { 0x0434, 88911 }, - { 0x03D5, 88915 }, - { 0x045C, 88919 }, - { 0x04DA, 88926 }, - { 0x04D0, 88932 }, - { 0x03D8, 88936 }, - { 0x3643, 88940 }, - { 0x0462, 88947 }, - { 0x042E, 88953 }, - { 0x03C8, 88957 }, - { 0x04D2, 88961 }, - { 0x03E5, 88965 }, - { 0x03BD, 88969 }, - { 0x3617, 88973 }, - { 0x03E4, 88977 }, - { 0x03CD, 88981 }, - { 0x044E, 88985 }, - { 0x0494, 88991 }, - { 0x0420, 88997 }, - { 0x03DD, 89002 }, - { 0x046E, 89006 }, - { 0x046C, 89013 }, - { 0x04AA, 89019 }, - { 0x03B8, 89025 }, - { 0x3639, 89029 }, - { 0x03BB, 89033 }, - { 0x03C9, 89037 }, - { 0x044A, 89041 }, - { 0x0448, 89048 }, - { 0x04B0, 89054 }, - { 0x0446, 89062 }, - { 0x04AC, 89068 }, - { 0x03B9, 89074 }, - { 0x364D, 89078 }, - { 0x03C2, 89082 }, - { 0x0424, 89086 }, - { 0x04CA, 89090 }, - { 0x03BF, 89094 }, - { 0x03C0, 89098 }, - { 0x0426, 89102 }, - { 0x04CC, 89106 }, - { 0x03DE, 89110 }, - { 0x1934, 89114 }, - { 0x03DC, 89118 }, - { 0x3645, 89122 }, - { 0x04CE, 89126 }, - { 0x0418, 89130 }, - { 0x03CC, 89134 }, - { 0x0477, 89138 }, - { 0x044C, 89144 }, - { 0x0492, 89150 }, - { 0x363F, 89156 }, - { 0x04E2, 89160 }, - { 0x03C5, 89164 }, - { 0x363B, 89168 }, - { 0x3641, 89172 }, - { 0x0428, 89176 }, - { 0x03E0, 89180 }, - { 0x35FF, 89185 }, - { 0x04B6, 89189 }, - { 0x04B8, 89194 }, - { 0x04BE, 89199 }, - { 0x04C0, 89204 }, - { 0x04C2, 89209 }, - { 0x04C4, 89214 }, - { 0x04BA, 89219 }, - { 0x04BC, 89224 }, - { 0x0470, 89229 }, - { 0x04DC, 89233 }, - { 0x364F, 89239 }, - { 0x361B, 89243 }, - { 0x361D, 89248 }, - { 0x361F, 89253 }, - { 0x03E2, 89258 }, - { 0x364B, 89263 }, - { 0x03C1, 89267 }, - { 0x3649, 89271 }, - { 0x3647, 89275 }, - { 0x03E1, 89279 }, - { 0x3609, 89283 }, - { 0x04AE, 89290 }, - { 0x363D, 89296 }, - { 0x04D4, 89300 }, - { 0x3605, 89305 }, - { 0x3601, 89310 }, - { 0x35FB, 89314 }, - { 0x04E0, 89318 }, - { 0x0436, 89322 }, - { 0x0416, 89326 }, - { 0x0432, 89330 }, - { 0x0430, 89336 }, - { 0x048E, 89341 }, - { 0x0490, 89345 }, - { 0x03DF, 89351 }, - { 0x03CF, 89355 }, - { 0x0440, 89360 }, - { 0x03C4, 89367 }, - { 0x049E, 89372 }, - { 0x04A0, 89377 }, - { 0x3611, 89384 }, - { 0x3651, 89390 }, - { 0x3625, 89395 }, - { 0x041C, 89401 }, - { 0x35F9, 89406 }, - { 0x0456, 89410 }, - { 0x3613, 89415 }, - { 0x3653, 89420 }, - { 0x042A, 89425 }, - { 0x042C, 89429 }, - { 0x3607, 89437 }, - { 0x360F, 89442 }, - { 0x041A, 89447 }, - { 0x0422, 89452 }, - { 0x360B, 89458 }, - { 0x3615, 89463 }, - { 0x041E, 89470 }, - { 0x360D, 89476 }, - { 0x04C6, 89481 }, - { 0x35FD, 89486 }, - { 0x3619, 89491 }, - { 0x0442, 89496 }, - { 0x0464, 89501 }, - { 0x0466, 89506 }, - { 0x045E, 89513 }, - { 0x0472, 89518 }, - { 0x0474, 89523 }, - { 0x0496, 89530 }, - { 0x3623, 89535 }, - { 0x3621, 89540 }, - { 0x3603, 89545 }, - { 0x03BA, 89550 }, - { 0x0481, 89555 }, - { 0x03BC, 89560 }, - { 0x048A, 89565 }, - { 0x045A, 89570 }, - { 0x046A, 89575 }, - { 0x3638, 89580 }, - { 0x895B, 89582 }, - { 0x8963, 89587 }, - { 0x8966, 89592 }, - { 0x8969, 89597 }, - { 0x895C, 89602 }, - { 0x895F, 89607 }, - { 0x896A, 89612 }, - { 0x8965, 89617 }, - { 0x8968, 89622 }, - { 0x896B, 89627 }, - { 0x8960, 89632 }, - { 0x8964, 89637 }, - { 0x8967, 89642 }, - { 0x895D, 89647 }, - { 0x8962, 89652 }, - { 0x896D, 89657 }, - { 0x8973, 89662 }, - { 0x895E, 89667 }, - { 0x8971, 89672 }, - { 0x896E, 89679 }, - { 0x896C, 89684 }, - { 0x8961, 89689 }, - { 0x8974, 89694 }, - { 0x896F, 89699 }, - { 0x8970, 89705 }, - { 0x8972, 89710 }, - { 0x0438, 89716 }, - { 0x918E, 89719 }, - { 0x924D, 89723 }, - { 0x8F8D, 89725 }, - { 0x7C8A, 89728 }, - { 0x1F57, 89731 }, - { 0x22F9, 89733 }, - { 0x00B6, 89735 }, - { 0x1E6C, 89737 }, - { 0x1F1E, 89739 }, - { 0x9181, 89741 }, - { 0x916C, 89742 }, - { 0x916D, 89745 }, - { 0x916E, 89750 }, - { 0x8F1C, 89753 }, - { 0x9436, 89754 }, - { 0x9438, 89757 }, - { 0x9437, 89762 }, - { 0x9439, 89766 }, - { 0x23C7, 89772 }, - { 0x9452, 89776 }, - { 0x948D, 89778 }, - { 0x7C3F, 89779 }, - { 0x7C39, 89784 }, - { 0x7C3B, 89788 }, - { 0x7C38, 89792 }, - { 0x7C3C, 89797 }, - { 0x7C35, 89801 }, - { 0x7C3E, 89805 }, - { 0x7C37, 89809 }, - { 0x7C36, 89813 }, - { 0x7C3A, 89818 }, - { 0x7C3D, 89822 }, - { 0x7C22, 89826 }, - { 0x7C23, 89831 }, - { 0x7C20, 89836 }, - { 0x7C30, 89841 }, - { 0x7C32, 89845 }, - { 0x7C2F, 89849 }, - { 0x7C33, 89854 }, - { 0x7C2C, 89858 }, - { 0x7C2E, 89862 }, - { 0x7C2D, 89866 }, - { 0x7C31, 89871 }, - { 0x7C34, 89875 }, - { 0x7C24, 89879 }, - { 0x7C1F, 89884 }, - { 0x7C21, 89889 }, - { 0x7C29, 89894 }, - { 0x7C2A, 89899 }, - { 0x7C28, 89904 }, - { 0x7C25, 89908 }, - { 0x7C27, 89912 }, - { 0x7C2B, 89916 }, - { 0x7C26, 89921 }, - { 0x7C40, 89926 }, - { 0x7C41, 89930 }, - { 0x7BF5, 89933 }, - { 0x7BBB, 89936 }, - { 0x7BBC, 89939 }, - { 0x7BC1, 89942 }, - { 0x7BFB, 89946 }, - { 0x7BB8, 89949 }, - { 0x7BC2, 89952 }, - { 0x7BBE, 89956 }, - { 0x7BF2, 89959 }, - { 0x7BB4, 89964 }, - { 0x7BFA, 89967 }, - { 0x7BCF, 89970 }, - { 0x7BD3, 89973 }, - { 0x7BE1, 89977 }, - { 0x7BE4, 89982 }, - { 0x7BE5, 89986 }, - { 0x7BDD, 89991 }, - { 0x7BE3, 89995 }, - { 0x7BD7, 90001 }, - { 0x7BD8, 90006 }, - { 0x7BB9, 90014 }, - { 0x7BC3, 90017 }, - { 0x7BF1, 90021 }, - { 0x7BBA, 90026 }, - { 0x7BCD, 90029 }, - { 0x7BD1, 90032 }, - { 0x7BDF, 90036 }, - { 0x7BDB, 90041 }, - { 0x7BD5, 90045 }, - { 0x7BCE, 90050 }, - { 0x7BD2, 90053 }, - { 0x7BE0, 90057 }, - { 0x7BDC, 90062 }, - { 0x7BD6, 90066 }, - { 0x7BF8, 90071 }, - { 0x7BB6, 90074 }, - { 0x7BC0, 90077 }, - { 0x7BBF, 90081 }, - { 0x7BC4, 90084 }, - { 0x7BD0, 90088 }, - { 0x7BD4, 90091 }, - { 0x7BE2, 90095 }, - { 0x7BF3, 90100 }, - { 0x7BF4, 90104 }, - { 0x7BF0, 90109 }, - { 0x7BEF, 90113 }, - { 0x7BE8, 90117 }, - { 0x7BE9, 90121 }, - { 0x7BDE, 90126 }, - { 0x7BE6, 90130 }, - { 0x7BE7, 90134 }, - { 0x7BD9, 90139 }, - { 0x7BDA, 90144 }, - { 0x7BB7, 90150 }, - { 0x7BEB, 90153 }, - { 0x7BEA, 90158 }, - { 0x7C05, 90162 }, - { 0x7C08, 90165 }, - { 0x7BBD, 90169 }, - { 0x7BEC, 90172 }, - { 0x7BEE, 90175 }, - { 0x7BB5, 90179 }, - { 0x7BC7, 90182 }, - { 0x7BFF, 90185 }, - { 0x7C06, 90188 }, - { 0x7BCA, 90191 }, - { 0x7BFC, 90194 }, - { 0x7BC8, 90197 }, - { 0x7BCB, 90200 }, - { 0x7BF7, 90203 }, - { 0x7C0F, 90206 }, - { 0x7C0E, 90209 }, - { 0x7BCC, 90212 }, - { 0x7BC5, 90215 }, - { 0x7C0B, 90218 }, - { 0x7BFE, 90221 }, - { 0x7C10, 90224 }, - { 0x7BED, 90227 }, - { 0x7C12, 90230 }, - { 0x7C11, 90233 }, - { 0x7C07, 90236 }, - { 0x7C04, 90239 }, - { 0x7BF9, 90242 }, - { 0x7C0D, 90245 }, - { 0x7C13, 90248 }, - { 0x7C14, 90251 }, - { 0x7C03, 90254 }, - { 0x7C09, 90258 }, - { 0x7C18, 90262 }, - { 0x7C17, 90266 }, - { 0x7C16, 90270 }, - { 0x7C15, 90274 }, - { 0x7BFD, 90278 }, - { 0x7BC9, 90282 }, - { 0x7C0C, 90286 }, - { 0x7C1C, 90290 }, - { 0x7BC6, 90294 }, - { 0x7C02, 90298 }, - { 0x7C00, 90302 }, - { 0x7C1B, 90306 }, - { 0x7C1D, 90310 }, - { 0x7BF6, 90314 }, - { 0x7C1A, 90318 }, - { 0x7C19, 90322 }, - { 0x7C1E, 90326 }, - { 0x7C01, 90330 }, - { 0x7C0A, 90334 }, - { 0x7C42, 90338 }, - { 0x5D54, 90343 }, - { 0x5D4D, 90348 }, - { 0x5D52, 90352 }, - { 0x5915, 90356 }, - { 0x5916, 90359 }, - { 0x5917, 90362 }, - { 0x5918, 90365 }, - { 0x5919, 90368 }, - { 0x591B, 90371 }, - { 0x591E, 90374 }, - { 0x591F, 90377 }, - { 0x5920, 90380 }, - { 0x5921, 90383 }, - { 0x5922, 90386 }, - { 0x5923, 90389 }, - { 0x5924, 90392 }, - { 0x5925, 90395 }, - { 0x5927, 90398 }, - { 0x5928, 90401 }, - { 0x5929, 90404 }, - { 0x592B, 90407 }, - { 0x592C, 90410 }, - { 0x592D, 90413 }, - { 0x592E, 90416 }, - { 0x592F, 90419 }, - { 0x5930, 90422 }, - { 0x5931, 90425 }, - { 0x5932, 90428 }, - { 0x5933, 90431 }, - { 0x5934, 90434 }, - { 0x5935, 90437 }, - { 0x5936, 90440 }, - { 0x5937, 90443 }, - { 0x5938, 90446 }, - { 0x5939, 90449 }, - { 0x593B, 90452 }, - { 0x593C, 90455 }, - { 0x593D, 90458 }, - { 0x593E, 90461 }, - { 0x593F, 90464 }, - { 0x5940, 90467 }, - { 0x5941, 90470 }, - { 0x5942, 90473 }, - { 0x5944, 90476 }, - { 0x5945, 90479 }, - { 0x5947, 90482 }, - { 0x5949, 90485 }, - { 0x594A, 90488 }, - { 0x594C, 90491 }, - { 0x594D, 90494 }, - { 0x594E, 90497 }, - { 0x594F, 90500 }, - { 0x5950, 90503 }, - { 0x5951, 90506 }, - { 0x5952, 90509 }, - { 0x5953, 90512 }, - { 0x5954, 90515 }, - { 0x5955, 90518 }, - { 0x5956, 90521 }, - { 0x5957, 90524 }, - { 0x5958, 90527 }, - { 0x5959, 90530 }, - { 0x595A, 90533 }, - { 0x595B, 90536 }, - { 0x595C, 90539 }, - { 0x595D, 90542 }, - { 0x595E, 90545 }, - { 0x595F, 90548 }, - { 0x5960, 90551 }, - { 0x5961, 90554 }, - { 0x5962, 90557 }, - { 0x5963, 90560 }, - { 0x5964, 90563 }, - { 0x5965, 90566 }, - { 0x5966, 90569 }, - { 0x5967, 90572 }, - { 0x5968, 90575 }, - { 0x5969, 90578 }, - { 0x596B, 90581 }, - { 0x596C, 90584 }, - { 0x596D, 90587 }, - { 0x596E, 90590 }, - { 0x596F, 90593 }, - { 0x5970, 90596 }, - { 0x5974, 90599 }, - { 0x5975, 90602 }, - { 0x5976, 90605 }, - { 0x5977, 90608 }, - { 0x5978, 90611 }, - { 0x5979, 90614 }, - { 0x597A, 90617 }, - { 0x597B, 90620 }, - { 0x597D, 90623 }, - { 0x597E, 90626 }, - { 0x597F, 90629 }, - { 0x5980, 90632 }, - { 0x5981, 90635 }, - { 0x5982, 90638 }, - { 0x5983, 90641 }, - { 0x5984, 90644 }, - { 0x5985, 90647 }, - { 0x5986, 90650 }, - { 0x5987, 90653 }, - { 0x5988, 90656 }, - { 0x5989, 90659 }, - { 0x598A, 90662 }, - { 0x598B, 90665 }, - { 0x598C, 90668 }, - { 0x598D, 90671 }, - { 0x598E, 90674 }, - { 0x598F, 90677 }, - { 0x5990, 90680 }, - { 0x5991, 90683 }, - { 0x5992, 90686 }, - { 0x5994, 90689 }, - { 0x5995, 90692 }, - { 0x5996, 90695 }, - { 0x5997, 90698 }, - { 0x5998, 90701 }, - { 0x5999, 90704 }, - { 0x599A, 90707 }, - { 0x599B, 90710 }, - { 0x599C, 90713 }, - { 0x599D, 90716 }, - { 0x599E, 90719 }, - { 0x599F, 90722 }, - { 0x59A0, 90725 }, - { 0x59A1, 90728 }, - { 0x59A2, 90731 }, - { 0x59A3, 90734 }, - { 0x59A4, 90737 }, - { 0x59A5, 90740 }, - { 0x59A6, 90743 }, - { 0x59A8, 90746 }, - { 0x59A9, 90749 }, - { 0x59AA, 90752 }, - { 0x59AB, 90755 }, - { 0x59AD, 90758 }, - { 0x59AE, 90761 }, - { 0x59AF, 90764 }, - { 0x59B1, 90767 }, - { 0x59B2, 90770 }, - { 0x59B3, 90773 }, - { 0x59B4, 90776 }, - { 0x59B5, 90779 }, - { 0x59B6, 90782 }, - { 0x59B7, 90785 }, - { 0x59B8, 90788 }, - { 0x59B9, 90791 }, - { 0x59BA, 90794 }, - { 0x59BB, 90797 }, - { 0x59BC, 90800 }, - { 0x59BE, 90803 }, - { 0x59BF, 90806 }, - { 0x59C1, 90809 }, - { 0x59C2, 90812 }, - { 0x59CC, 90815 }, - { 0x59CD, 90818 }, - { 0x59CF, 90821 }, - { 0x59D0, 90824 }, - { 0x59D2, 90827 }, - { 0x59D3, 90830 }, - { 0x59D4, 90833 }, - { 0x59D5, 90836 }, - { 0x59D6, 90839 }, - { 0x59D7, 90842 }, - { 0x59D8, 90845 }, - { 0x59D9, 90848 }, - { 0x59DA, 90851 }, - { 0x59DB, 90854 }, - { 0x59DC, 90857 }, - { 0x59DD, 90860 }, - { 0x59DE, 90863 }, - { 0x59E7, 90866 }, - { 0x59E8, 90869 }, - { 0x59E9, 90872 }, - { 0x59EA, 90875 }, - { 0x59EB, 90878 }, - { 0x59EC, 90881 }, - { 0x59ED, 90884 }, - { 0x59EE, 90887 }, - { 0x59F0, 90890 }, - { 0x59F2, 90893 }, - { 0x59F3, 90896 }, - { 0x59F4, 90899 }, - { 0x59F5, 90902 }, - { 0x59F6, 90905 }, - { 0x59F7, 90908 }, - { 0x59F8, 90911 }, - { 0x59FA, 90914 }, - { 0x59FC, 90917 }, - { 0x59FD, 90920 }, - { 0x59FE, 90923 }, - { 0x5A00, 90926 }, - { 0x5A01, 90929 }, - { 0x5A02, 90932 }, - { 0x5A03, 90935 }, - { 0x5A04, 90938 }, - { 0x5A05, 90941 }, - { 0x5A06, 90944 }, - { 0x5A07, 90947 }, - { 0x5A09, 90950 }, - { 0x5A0A, 90953 }, - { 0x5A0B, 90956 }, - { 0x5A0C, 90959 }, - { 0x5A0D, 90962 }, - { 0x5A0E, 90965 }, - { 0x5A10, 90968 }, - { 0x5A11, 90971 }, - { 0x5A12, 90974 }, - { 0x5A13, 90977 }, - { 0x5A15, 90980 }, - { 0x5A16, 90983 }, - { 0x5A17, 90986 }, - { 0x5A18, 90989 }, - { 0x5A19, 90992 }, - { 0x5A1A, 90995 }, - { 0x5A1B, 90998 }, - { 0x5A1C, 91001 }, - { 0x5A1D, 91004 }, - { 0x5A1E, 91007 }, - { 0x5A1F, 91010 }, - { 0x5A20, 91013 }, - { 0x5A22, 91016 }, - { 0x5A23, 91019 }, - { 0x5A24, 91022 }, - { 0x5A25, 91025 }, - { 0x5A26, 91028 }, - { 0x5A27, 91031 }, - { 0x5A28, 91034 }, - { 0x5A29, 91037 }, - { 0x5A2B, 91040 }, - { 0x5A2C, 91043 }, - { 0x5A2D, 91046 }, - { 0x5A2E, 91049 }, - { 0x5A2F, 91052 }, - { 0x5A30, 91055 }, - { 0x5A31, 91058 }, - { 0x5A32, 91061 }, - { 0x5A33, 91064 }, - { 0x5A34, 91067 }, - { 0x5A36, 91070 }, - { 0x5A37, 91073 }, - { 0x5A38, 91076 }, - { 0x5A39, 91079 }, - { 0x5A3A, 91082 }, - { 0x5A3B, 91085 }, - { 0x5A3D, 91088 }, - { 0x5A3F, 91091 }, - { 0x5A40, 91094 }, - { 0x5A41, 91097 }, - { 0x5A42, 91100 }, - { 0x5A43, 91103 }, - { 0x5A44, 91106 }, - { 0x5A45, 91109 }, - { 0x5A47, 91112 }, - { 0x5A49, 91115 }, - { 0x5A4B, 91118 }, - { 0x5A4C, 91121 }, - { 0x5A4D, 91124 }, - { 0x5A4E, 91127 }, - { 0x5A52, 91130 }, - { 0x5A53, 91133 }, - { 0x5D56, 91136 }, - { 0x5A54, 91140 }, - { 0x5A55, 91143 }, - { 0x5A56, 91146 }, - { 0x5A57, 91149 }, - { 0x5A58, 91152 }, - { 0x5A59, 91155 }, - { 0x5A5B, 91158 }, - { 0x5A5E, 91161 }, - { 0x5A5F, 91164 }, - { 0x5A60, 91167 }, - { 0x5A61, 91170 }, - { 0x5A63, 91173 }, - { 0x5A64, 91176 }, - { 0x5A65, 91179 }, - { 0x5A66, 91182 }, - { 0x5A67, 91185 }, - { 0x5A68, 91188 }, - { 0x5A69, 91191 }, - { 0x5A6A, 91194 }, - { 0x5A6B, 91197 }, - { 0x5A6D, 91200 }, - { 0x5A6E, 91203 }, - { 0x5A6F, 91206 }, - { 0x5A70, 91209 }, - { 0x5A71, 91212 }, - { 0x5A72, 91215 }, - { 0x5A74, 91218 }, - { 0x5A75, 91221 }, - { 0x5A76, 91224 }, - { 0x5A77, 91227 }, - { 0x5A78, 91230 }, - { 0x5A79, 91233 }, - { 0x5A7A, 91236 }, - { 0x5A7B, 91239 }, - { 0x5A7C, 91242 }, - { 0x5A7D, 91245 }, - { 0x5A7F, 91248 }, - { 0x5A81, 91251 }, - { 0x5A82, 91254 }, - { 0x5A83, 91257 }, - { 0x5A84, 91260 }, - { 0x5A85, 91263 }, - { 0x5A86, 91266 }, - { 0x5A88, 91269 }, - { 0x5A89, 91272 }, - { 0x5A8B, 91275 }, - { 0x5A8C, 91278 }, - { 0x5A8D, 91281 }, - { 0x5A8E, 91284 }, - { 0x5A8F, 91287 }, - { 0x5A90, 91290 }, - { 0x5A91, 91293 }, - { 0x5A92, 91296 }, - { 0x5A93, 91299 }, - { 0x5A94, 91302 }, - { 0x5A95, 91305 }, - { 0x5A96, 91308 }, - { 0x5A97, 91311 }, - { 0x5A98, 91314 }, - { 0x5A99, 91317 }, - { 0x5A9B, 91320 }, - { 0x5A9C, 91323 }, - { 0x5D59, 91326 }, - { 0x5D57, 91331 }, - { 0x5A9D, 91335 }, - { 0x5A9E, 91338 }, - { 0x5A9F, 91341 }, - { 0x5AA0, 91344 }, - { 0x5AA1, 91347 }, - { 0x5AA3, 91350 }, - { 0x5AA4, 91353 }, - { 0x5AA5, 91356 }, - { 0x5AA6, 91359 }, - { 0x5AA8, 91362 }, - { 0x5AAA, 91365 }, - { 0x5AAC, 91368 }, - { 0x5AAD, 91371 }, - { 0x5AAE, 91374 }, - { 0x5AAF, 91377 }, - { 0x5AB0, 91380 }, - { 0x5AB1, 91383 }, - { 0x5AB2, 91386 }, - { 0x5AB3, 91389 }, - { 0x5AB4, 91392 }, - { 0x5AB5, 91395 }, - { 0x5AB6, 91398 }, - { 0x5AB7, 91401 }, - { 0x5AB8, 91404 }, - { 0x5AB9, 91407 }, - { 0x5ABB, 91410 }, - { 0x5ABC, 91413 }, - { 0x5ABD, 91416 }, - { 0x5ABE, 91419 }, - { 0x5AC0, 91422 }, - { 0x5AC1, 91425 }, - { 0x5D58, 91428 }, - { 0x5AC2, 91432 }, - { 0x5AC5, 91435 }, - { 0x5AC6, 91438 }, - { 0x5AC8, 91441 }, - { 0x5AC9, 91444 }, - { 0x5ACA, 91447 }, - { 0x5ACB, 91450 }, - { 0x5ACC, 91453 }, - { 0x5ACD, 91456 }, - { 0x5ACE, 91459 }, - { 0x5AD0, 91462 }, - { 0x5AD1, 91465 }, - { 0x5ADA, 91468 }, - { 0x5ADB, 91471 }, - { 0x5ADC, 91474 }, - { 0x5ADE, 91477 }, - { 0x5AE0, 91480 }, - { 0x5AE2, 91483 }, - { 0x5AE3, 91486 }, - { 0x5AE4, 91489 }, - { 0x5AE5, 91492 }, - { 0x5AE6, 91495 }, - { 0x5AE8, 91498 }, - { 0x5AE9, 91501 }, - { 0x5AEB, 91504 }, - { 0x5AEC, 91507 }, - { 0x5AED, 91510 }, - { 0x5AEE, 91513 }, - { 0x5AF0, 91516 }, - { 0x5AF1, 91519 }, - { 0x5AF2, 91522 }, - { 0x5AF4, 91525 }, - { 0x5AF5, 91528 }, - { 0x5AF8, 91531 }, - { 0x5AF9, 91534 }, - { 0x5AFA, 91537 }, - { 0x5AFB, 91540 }, - { 0x5AFC, 91543 }, - { 0x5AFD, 91546 }, - { 0x5AFE, 91549 }, - { 0x5B00, 91552 }, - { 0x5B01, 91555 }, - { 0x5B02, 91558 }, - { 0x5B03, 91561 }, - { 0x5B04, 91564 }, - { 0x5B05, 91567 }, - { 0x5B06, 91570 }, - { 0x5B07, 91573 }, - { 0x5B08, 91576 }, - { 0x5B09, 91579 }, - { 0x5B0A, 91582 }, - { 0x5B0B, 91585 }, - { 0x5B0C, 91588 }, - { 0x5B0D, 91591 }, - { 0x5B0E, 91594 }, - { 0x5B0F, 91597 }, - { 0x5B10, 91600 }, - { 0x5B11, 91603 }, - { 0x5B12, 91606 }, - { 0x5B13, 91609 }, - { 0x5B14, 91612 }, - { 0x5B15, 91615 }, - { 0x5B18, 91618 }, - { 0x5B19, 91621 }, - { 0x5B1A, 91624 }, - { 0x5B1B, 91627 }, - { 0x5B1C, 91630 }, - { 0x5B1D, 91633 }, - { 0x5B1E, 91636 }, - { 0x5B20, 91639 }, - { 0x5B21, 91642 }, - { 0x5B22, 91645 }, - { 0x5B23, 91648 }, - { 0x5B24, 91651 }, - { 0x5B25, 91654 }, - { 0x5B26, 91657 }, - { 0x5B27, 91660 }, - { 0x5B29, 91663 }, - { 0x5B2B, 91666 }, - { 0x5B2D, 91669 }, - { 0x5B2E, 91672 }, - { 0x5B30, 91675 }, - { 0x5B31, 91678 }, - { 0x5B32, 91681 }, - { 0x5B33, 91684 }, - { 0x5B34, 91687 }, - { 0x5B65, 91690 }, - { 0x5B67, 91693 }, - { 0x5B68, 91696 }, - { 0x5B69, 91699 }, - { 0x5B6A, 91702 }, - { 0x5B6C, 91705 }, - { 0x5B73, 91708 }, - { 0x5B74, 91711 }, - { 0x5B75, 91714 }, - { 0x5B76, 91717 }, - { 0x5B7A, 91720 }, - { 0x5B7B, 91723 }, - { 0x5B7C, 91726 }, - { 0x5B7D, 91729 }, - { 0x5B7E, 91732 }, - { 0x5B7F, 91735 }, - { 0x5B80, 91738 }, - { 0x5B81, 91741 }, - { 0x5B82, 91744 }, - { 0x5B84, 91747 }, - { 0x5B86, 91750 }, - { 0x5B87, 91753 }, - { 0x5B88, 91756 }, - { 0x5B89, 91759 }, - { 0x5B8B, 91762 }, - { 0x5B8D, 91765 }, - { 0x5B8E, 91768 }, - { 0x5B8F, 91771 }, - { 0x5B90, 91774 }, - { 0x5B92, 91777 }, - { 0x5B94, 91780 }, - { 0x5B95, 91783 }, - { 0x5B96, 91786 }, - { 0x5B98, 91789 }, - { 0x5B99, 91792 }, - { 0x5B9A, 91795 }, - { 0x5B9F, 91798 }, - { 0x5BA0, 91801 }, - { 0x5BA1, 91804 }, - { 0x5BA2, 91807 }, - { 0x5BA3, 91810 }, - { 0x5BA4, 91813 }, - { 0x5BA5, 91816 }, - { 0x5BA6, 91819 }, - { 0x5BA7, 91822 }, - { 0x5BA8, 91825 }, - { 0x5BA9, 91828 }, - { 0x5BAA, 91831 }, - { 0x5BAB, 91834 }, - { 0x5BAC, 91837 }, - { 0x5BAF, 91840 }, - { 0x5BB0, 91843 }, - { 0x5BB2, 91846 }, - { 0x5BB3, 91849 }, - { 0x5BB5, 91852 }, - { 0x5BB6, 91855 }, - { 0x5BB7, 91858 }, - { 0x5BB8, 91861 }, - { 0x5BB9, 91864 }, - { 0x5BBA, 91867 }, - { 0x5BBB, 91870 }, - { 0x5BBC, 91873 }, - { 0x5BBD, 91876 }, - { 0x5BBE, 91879 }, - { 0x5BBF, 91882 }, - { 0x5BC0, 91885 }, - { 0x5BC1, 91888 }, - { 0x5BC2, 91891 }, - { 0x5BC3, 91894 }, - { 0x5BC4, 91897 }, - { 0x5BC5, 91900 }, - { 0x5BC7, 91903 }, - { 0x5BCA, 91906 }, - { 0x5BCB, 91909 }, - { 0x5BCC, 91912 }, - { 0x5BCD, 91915 }, - { 0x5BCE, 91918 }, - { 0x5BCF, 91921 }, - { 0x5BD0, 91924 }, - { 0x5BD2, 91927 }, - { 0x5BD3, 91930 }, - { 0x5BD4, 91933 }, - { 0x5BD5, 91936 }, - { 0x5BD6, 91939 }, - { 0x5BD7, 91942 }, - { 0x5BD9, 91945 }, - { 0x5BDA, 91948 }, - { 0x5BDB, 91951 }, - { 0x5BDC, 91954 }, - { 0x5BDD, 91957 }, - { 0x5BDE, 91960 }, - { 0x5BDF, 91963 }, - { 0x5BE0, 91966 }, - { 0x5BE1, 91969 }, - { 0x5BE2, 91972 }, - { 0x5BE3, 91975 }, - { 0x5BE4, 91978 }, - { 0x5BE5, 91981 }, - { 0x5BE6, 91984 }, - { 0x5BE7, 91987 }, - { 0x5BE9, 91990 }, - { 0x5BEA, 91993 }, - { 0x5BEB, 91996 }, - { 0x5BEC, 91999 }, - { 0x5BEE, 92002 }, - { 0x5BEF, 92005 }, - { 0x5BF0, 92008 }, - { 0x5BF1, 92011 }, - { 0x5BF2, 92014 }, - { 0x5BF3, 92017 }, - { 0x5BF4, 92020 }, - { 0x5BF5, 92023 }, - { 0x5BF8, 92026 }, - { 0x5BF9, 92029 }, - { 0x5BFA, 92032 }, - { 0x5BFC, 92035 }, - { 0x5BFD, 92038 }, - { 0x5BFE, 92041 }, - { 0x5BFF, 92044 }, - { 0x5C00, 92047 }, - { 0x5C01, 92050 }, - { 0x5C02, 92053 }, - { 0x5C03, 92056 }, - { 0x5C04, 92059 }, - { 0x5C07, 92062 }, - { 0x5C08, 92065 }, - { 0x5C09, 92068 }, - { 0x5C0A, 92071 }, - { 0x5C0B, 92074 }, - { 0x5C0C, 92077 }, - { 0x5C0D, 92080 }, - { 0x5C0E, 92083 }, - { 0x5C0F, 92086 }, - { 0x5C11, 92089 }, - { 0x5C12, 92092 }, - { 0x5C13, 92095 }, - { 0x5C14, 92098 }, - { 0x5C15, 92101 }, - { 0x5C16, 92104 }, - { 0x5C17, 92107 }, - { 0x5C18, 92110 }, - { 0x5C19, 92113 }, - { 0x5C1A, 92116 }, - { 0x5C1B, 92119 }, - { 0x5C1C, 92122 }, - { 0x5C1D, 92125 }, - { 0x5C1E, 92128 }, - { 0x5C20, 92131 }, - { 0x5C21, 92134 }, - { 0x5C22, 92137 }, - { 0x5C23, 92140 }, - { 0x5C25, 92143 }, - { 0x5C27, 92146 }, - { 0x5C29, 92149 }, - { 0x5C2A, 92152 }, - { 0x5C2C, 92155 }, - { 0x5C2D, 92158 }, - { 0x5C2E, 92161 }, - { 0x5C2F, 92164 }, - { 0x5C30, 92167 }, - { 0x5C32, 92170 }, - { 0x5C33, 92173 }, - { 0x5C34, 92176 }, - { 0x5C35, 92179 }, - { 0x5C36, 92182 }, - { 0x5C37, 92185 }, - { 0x5C38, 92188 }, - { 0x5C39, 92191 }, - { 0x5C3A, 92194 }, - { 0x5C3B, 92197 }, - { 0x5C3C, 92200 }, - { 0x5C3D, 92203 }, - { 0x5C3E, 92206 }, - { 0x5C3F, 92209 }, - { 0x5C40, 92212 }, - { 0x5C41, 92215 }, - { 0x5C43, 92218 }, - { 0x5C45, 92221 }, - { 0x5C46, 92224 }, - { 0x5C47, 92227 }, - { 0x5D5A, 92230 }, - { 0x5C48, 92235 }, - { 0x5C49, 92238 }, - { 0x5C4A, 92241 }, - { 0x5C4B, 92244 }, - { 0x5C4C, 92247 }, - { 0x5C4D, 92250 }, - { 0x5C50, 92253 }, - { 0x5C51, 92256 }, - { 0x5C52, 92259 }, - { 0x5C53, 92262 }, - { 0x5C54, 92265 }, - { 0x5C55, 92268 }, - { 0x5C56, 92271 }, - { 0x5C57, 92274 }, - { 0x5C58, 92277 }, - { 0x5C59, 92280 }, - { 0x5C5A, 92283 }, - { 0x5C5B, 92286 }, - { 0x5C5C, 92289 }, - { 0x5C5D, 92292 }, - { 0x5C5E, 92295 }, - { 0x5C5F, 92298 }, - { 0x5C60, 92301 }, - { 0x5C62, 92304 }, - { 0x5C63, 92307 }, - { 0x5C64, 92310 }, - { 0x5C65, 92313 }, - { 0x5C66, 92316 }, - { 0x5C67, 92319 }, - { 0x5C69, 92322 }, - { 0x5C6A, 92325 }, - { 0x5C6B, 92328 }, - { 0x5C6D, 92331 }, - { 0x5C6E, 92334 }, - { 0x5C6F, 92337 }, - { 0x5C70, 92340 }, - { 0x5C71, 92343 }, - { 0x5C72, 92346 }, - { 0x5C73, 92349 }, - { 0x5C74, 92352 }, - { 0x5C75, 92355 }, - { 0x5C76, 92358 }, - { 0x5C77, 92361 }, - { 0x5C81, 92364 }, - { 0x5C83, 92367 }, - { 0x5C84, 92370 }, - { 0x5C85, 92373 }, - { 0x5C86, 92376 }, - { 0x5C87, 92379 }, - { 0x5C8A, 92382 }, - { 0x5C8B, 92385 }, - { 0x5C8C, 92388 }, - { 0x5C8D, 92391 }, - { 0x5C91, 92394 }, - { 0x5C94, 92397 }, - { 0x5C95, 92400 }, - { 0x5C96, 92403 }, - { 0x5C97, 92406 }, - { 0x5C98, 92409 }, - { 0x5C99, 92412 }, - { 0x5C9A, 92415 }, - { 0x5C9B, 92418 }, - { 0x5CA8, 92421 }, - { 0x5CA9, 92424 }, - { 0x5CAA, 92427 }, - { 0x5CAC, 92430 }, - { 0x5CAD, 92433 }, - { 0x5CAE, 92436 }, - { 0x5CAF, 92439 }, - { 0x5CB0, 92442 }, - { 0x5CB2, 92445 }, - { 0x5CB4, 92448 }, - { 0x5CB6, 92451 }, - { 0x5CB8, 92454 }, - { 0x5CB9, 92457 }, - { 0x5CBB, 92460 }, - { 0x5CBC, 92463 }, - { 0x5CBD, 92466 }, - { 0x5CBE, 92469 }, - { 0x5CC0, 92472 }, - { 0x5CC1, 92475 }, - { 0x5CC2, 92478 }, - { 0x5CC4, 92481 }, - { 0x5CC5, 92484 }, - { 0x5CC6, 92487 }, - { 0x5CC8, 92490 }, - { 0x5CC9, 92493 }, - { 0x5CCA, 92496 }, - { 0x5CCB, 92499 }, - { 0x5CCC, 92502 }, - { 0x5CCD, 92505 }, - { 0x5CCF, 92508 }, - { 0x5CD1, 92511 }, - { 0x5CD2, 92514 }, - { 0x5CD3, 92517 }, - { 0x5CD4, 92520 }, - { 0x5CD6, 92523 }, - { 0x5CD7, 92526 }, - { 0x5CD8, 92529 }, - { 0x5CDA, 92532 }, - { 0x5CDC, 92535 }, - { 0x5CDD, 92538 }, - { 0x5CDE, 92541 }, - { 0x5CDF, 92544 }, - { 0x5CE0, 92547 }, - { 0x5CE1, 92550 }, - { 0x5CE3, 92553 }, - { 0x5D5B, 92556 }, - { 0x5CE4, 92561 }, - { 0x5CE5, 92564 }, - { 0x5CE6, 92567 }, - { 0x5CE7, 92570 }, - { 0x5CEA, 92573 }, - { 0x5CEB, 92576 }, - { 0x5CED, 92579 }, - { 0x5CEE, 92582 }, - { 0x5CF0, 92585 }, - { 0x5CF2, 92588 }, - { 0x5CF3, 92591 }, - { 0x5CF4, 92594 }, - { 0x5CF5, 92597 }, - { 0x5CF6, 92600 }, - { 0x5CF7, 92603 }, - { 0x5CF8, 92606 }, - { 0x5CF9, 92609 }, - { 0x5CFA, 92612 }, - { 0x5CFF, 92615 }, - { 0x5D02, 92618 }, - { 0x5D04, 92621 }, - { 0x5D06, 92624 }, - { 0x5D07, 92627 }, - { 0x5D08, 92630 }, - { 0x5D09, 92633 }, - { 0x5D0A, 92636 }, - { 0x5D0B, 92639 }, - { 0x5D0C, 92642 }, - { 0x5D0D, 92645 }, - { 0x5D0E, 92648 }, - { 0x5D0F, 92651 }, - { 0x5D19, 92654 }, - { 0x591A, 92657 }, - { 0x591C, 92660 }, - { 0x591D, 92663 }, - { 0x5926, 92666 }, - { 0x592A, 92669 }, - { 0x593A, 92672 }, - { 0x5943, 92675 }, - { 0x5946, 92678 }, - { 0x5948, 92681 }, - { 0x594B, 92684 }, - { 0x5D22, 92687 }, - { 0x5D23, 92690 }, - { 0x5D24, 92693 }, - { 0x5D25, 92696 }, - { 0x5D26, 92699 }, - { 0x5D27, 92702 }, - { 0x5D28, 92705 }, - { 0x5D2B, 92708 }, - { 0x5D2C, 92711 }, - { 0x5D2D, 92714 }, - { 0x5D2E, 92717 }, - { 0x5D2F, 92720 }, - { 0x5D30, 92723 }, - { 0x5D31, 92726 }, - { 0x5D32, 92729 }, - { 0x5D33, 92732 }, - { 0x5D34, 92735 }, - { 0x5D35, 92738 }, - { 0x5D36, 92741 }, - { 0x5D37, 92744 }, - { 0x5D38, 92747 }, - { 0x5D39, 92750 }, - { 0x5D3A, 92753 }, - { 0x5D3B, 92756 }, - { 0x5D3C, 92759 }, - { 0x5D3D, 92762 }, - { 0x5D3E, 92765 }, - { 0x5D3F, 92768 }, - { 0x5D40, 92771 }, - { 0x5D41, 92774 }, - { 0x5D42, 92777 }, - { 0x5D43, 92780 }, - { 0x596A, 92783 }, - { 0x5D53, 92786 }, - { 0x5D4C, 92791 }, - { 0x5D51, 92795 }, - { 0x5971, 92799 }, - { 0x5972, 92802 }, - { 0x5973, 92805 }, - { 0x597C, 92808 }, - { 0x5993, 92811 }, - { 0x59A7, 92814 }, - { 0x59AC, 92817 }, - { 0x59B0, 92820 }, - { 0x59BD, 92823 }, - { 0x59C0, 92826 }, - { 0x59C3, 92829 }, - { 0x59C4, 92832 }, - { 0x59C5, 92835 }, - { 0x59C6, 92838 }, - { 0x59C7, 92841 }, - { 0x59C8, 92844 }, - { 0x59C9, 92847 }, - { 0x59CA, 92850 }, - { 0x59CB, 92853 }, - { 0x59CE, 92856 }, - { 0x59D1, 92859 }, - { 0x59DF, 92862 }, - { 0x59E0, 92865 }, - { 0x59E1, 92868 }, - { 0x59E2, 92871 }, - { 0x59E3, 92874 }, - { 0x59E4, 92877 }, - { 0x59E5, 92880 }, - { 0x59E6, 92883 }, - { 0x59EF, 92886 }, - { 0x59F1, 92889 }, - { 0x59F9, 92892 }, - { 0x59FB, 92895 }, - { 0x59FF, 92898 }, - { 0x5A08, 92901 }, - { 0x5A0F, 92904 }, - { 0x5A14, 92907 }, - { 0x5A21, 92910 }, - { 0x5A2A, 92913 }, - { 0x5A35, 92916 }, - { 0x5A3C, 92919 }, - { 0x5A3E, 92922 }, - { 0x5A46, 92925 }, - { 0x5A48, 92928 }, - { 0x5A4A, 92931 }, - { 0x5A4F, 92934 }, - { 0x5A50, 92937 }, - { 0x5A51, 92940 }, - { 0x5A5A, 92943 }, - { 0x5A5C, 92946 }, - { 0x5A5D, 92949 }, - { 0x5A62, 92952 }, - { 0x5A6C, 92955 }, - { 0x5A73, 92958 }, - { 0x5A7E, 92961 }, - { 0x5A80, 92964 }, - { 0x5A87, 92967 }, - { 0x5A8A, 92970 }, - { 0x5A9A, 92973 }, - { 0x5AA2, 92976 }, - { 0x5AA7, 92979 }, - { 0x5AA9, 92982 }, - { 0x5AAB, 92985 }, - { 0x5ABA, 92988 }, - { 0x5ABF, 92991 }, - { 0x5AC3, 92994 }, - { 0x5AC4, 92997 }, - { 0x5AC7, 93000 }, - { 0x5ACF, 93003 }, - { 0x5AD2, 93006 }, - { 0x5AD3, 93009 }, - { 0x5AD4, 93012 }, - { 0x5AD5, 93015 }, - { 0x5AD6, 93018 }, - { 0x5AD7, 93021 }, - { 0x5AD8, 93024 }, - { 0x5AD9, 93027 }, - { 0x5ADD, 93030 }, - { 0x5ADF, 93033 }, - { 0x5AE1, 93036 }, - { 0x5AE7, 93039 }, - { 0x5AEA, 93042 }, - { 0x5AEF, 93045 }, - { 0x5AF3, 93048 }, - { 0x5AF6, 93051 }, - { 0x5AF7, 93054 }, - { 0x5AFF, 93057 }, - { 0x5B16, 93060 }, - { 0x5B17, 93063 }, - { 0x5B1F, 93066 }, - { 0x5B28, 93069 }, - { 0x5B2A, 93072 }, - { 0x5B2C, 93075 }, - { 0x5B2F, 93078 }, - { 0x5B35, 93081 }, - { 0x5B36, 93084 }, - { 0x5B37, 93087 }, - { 0x5B38, 93090 }, - { 0x5B39, 93093 }, - { 0x5B3B, 93096 }, - { 0x5B3C, 93099 }, - { 0x5B3D, 93102 }, - { 0x5B3E, 93105 }, - { 0x5B3F, 93108 }, - { 0x5B40, 93111 }, - { 0x5B41, 93114 }, - { 0x5B42, 93117 }, - { 0x5B43, 93120 }, - { 0x5B44, 93123 }, - { 0x5B45, 93126 }, - { 0x5B46, 93129 }, - { 0x5B48, 93132 }, - { 0x5B49, 93135 }, - { 0x5B4A, 93138 }, - { 0x5B4B, 93141 }, - { 0x5B4C, 93144 }, - { 0x5B4D, 93147 }, - { 0x5B4E, 93150 }, - { 0x5B4F, 93153 }, - { 0x5B50, 93156 }, - { 0x5B51, 93159 }, - { 0x5B52, 93162 }, - { 0x5B53, 93165 }, - { 0x5B54, 93168 }, - { 0x5B56, 93171 }, - { 0x5B58, 93174 }, - { 0x5B59, 93177 }, - { 0x5B5A, 93180 }, - { 0x5B5B, 93183 }, - { 0x5B5C, 93186 }, - { 0x5B5D, 93189 }, - { 0x5B5E, 93192 }, - { 0x5B60, 93195 }, - { 0x5B61, 93198 }, - { 0x5B62, 93201 }, - { 0x5B63, 93204 }, - { 0x5B66, 93207 }, - { 0x5B6B, 93210 }, - { 0x5B6D, 93213 }, - { 0x5B6E, 93216 }, - { 0x5B6F, 93219 }, - { 0x5B70, 93222 }, - { 0x5B71, 93225 }, - { 0x5B72, 93228 }, - { 0x5B77, 93231 }, - { 0x5B78, 93234 }, - { 0x5B79, 93237 }, - { 0x5B83, 93240 }, - { 0x5B85, 93243 }, - { 0x5B8A, 93246 }, - { 0x5B8C, 93249 }, - { 0x5B91, 93252 }, - { 0x5B93, 93255 }, - { 0x5B97, 93258 }, - { 0x5B9B, 93261 }, - { 0x5B9C, 93264 }, - { 0x5B9D, 93267 }, - { 0x5B9E, 93270 }, - { 0x5BAD, 93273 }, - { 0x5BAE, 93276 }, - { 0x5BB1, 93279 }, - { 0x5BB4, 93282 }, - { 0x5BC6, 93285 }, - { 0x5BC8, 93288 }, - { 0x5BC9, 93291 }, - { 0x5BD1, 93294 }, - { 0x5BD8, 93297 }, - { 0x5BE8, 93300 }, - { 0x5BED, 93303 }, - { 0x5BF6, 93306 }, - { 0x5BF7, 93309 }, - { 0x5BFB, 93312 }, - { 0x5C05, 93315 }, - { 0x5C06, 93318 }, - { 0x5C10, 93321 }, - { 0x5C1F, 93324 }, - { 0x5C24, 93327 }, - { 0x5C26, 93330 }, - { 0x5C28, 93333 }, - { 0x5C2B, 93336 }, - { 0x5C31, 93339 }, - { 0x5C42, 93342 }, - { 0x5C44, 93345 }, - { 0x5C4E, 93348 }, - { 0x5C4F, 93351 }, - { 0x5C61, 93354 }, - { 0x5C68, 93357 }, - { 0x5C6C, 93360 }, - { 0x5C78, 93363 }, - { 0x5C79, 93366 }, - { 0x5C7A, 93369 }, - { 0x5C7B, 93372 }, - { 0x5C7C, 93375 }, - { 0x5C7D, 93378 }, - { 0x5C7E, 93381 }, - { 0x5C7F, 93384 }, - { 0x5C80, 93387 }, - { 0x5C82, 93390 }, - { 0x5C88, 93393 }, - { 0x5C89, 93396 }, - { 0x5C8E, 93399 }, - { 0x5C8F, 93402 }, - { 0x5C90, 93405 }, - { 0x5D44, 93408 }, - { 0x5C92, 93411 }, - { 0x5C93, 93414 }, - { 0x5C9C, 93417 }, - { 0x5C9D, 93420 }, - { 0x5C9E, 93423 }, - { 0x5C9F, 93426 }, - { 0x5CA0, 93429 }, - { 0x5CA1, 93432 }, - { 0x5CA2, 93435 }, - { 0x5CA3, 93438 }, - { 0x5CA4, 93441 }, - { 0x5CA5, 93444 }, - { 0x5CA6, 93447 }, - { 0x5CA7, 93450 }, - { 0x5CAB, 93453 }, - { 0x5CB1, 93456 }, - { 0x5CB3, 93459 }, - { 0x5CB5, 93462 }, - { 0x5CB7, 93465 }, - { 0x5CBA, 93468 }, - { 0x5CBF, 93471 }, - { 0x5CC3, 93474 }, - { 0x5CC7, 93477 }, - { 0x5CCE, 93480 }, - { 0x5CD0, 93483 }, - { 0x5CD5, 93486 }, - { 0x5CD9, 93489 }, - { 0x5CDB, 93492 }, - { 0x5CE2, 93495 }, - { 0x5CE8, 93498 }, - { 0x5CE9, 93501 }, - { 0x5CEC, 93504 }, - { 0x5CEF, 93507 }, - { 0x5CF1, 93510 }, - { 0x5CFB, 93513 }, - { 0x5CFC, 93516 }, - { 0x5CFD, 93519 }, - { 0x5CFE, 93522 }, - { 0x5D00, 93525 }, - { 0x5D01, 93528 }, - { 0x5D03, 93531 }, - { 0x5D05, 93534 }, - { 0x5D10, 93537 }, - { 0x5D11, 93540 }, - { 0x5D12, 93543 }, - { 0x5D13, 93546 }, - { 0x5D14, 93549 }, - { 0x5D15, 93552 }, - { 0x5D16, 93555 }, - { 0x5D17, 93558 }, - { 0x5D18, 93561 }, - { 0x5D1A, 93564 }, - { 0x5D1B, 93567 }, - { 0x5D1C, 93570 }, - { 0x5D1D, 93573 }, - { 0x5D1E, 93576 }, - { 0x5D1F, 93579 }, - { 0x5D20, 93582 }, - { 0x5D21, 93585 }, - { 0x5D29, 93588 }, - { 0x5D2A, 93591 }, - { 0x5D4F, 93594 }, - { 0x5D49, 93599 }, - { 0x5D47, 93605 }, - { 0x5D50, 93611 }, - { 0x5D4A, 93616 }, - { 0x5D48, 93622 }, - { 0x5D4E, 93628 }, - { 0x5D55, 93633 }, - { 0x5B3A, 93637 }, - { 0x5B47, 93640 }, - { 0x5B55, 93643 }, - { 0x5B57, 93646 }, - { 0x5B5F, 93649 }, - { 0x5B64, 93652 }, - { 0x5D4B, 93655 }, - { 0x5D6A, 93659 }, - { 0x5D67, 93663 }, - { 0x5D60, 93669 }, - { 0x5D68, 93675 }, - { 0x5D5F, 93683 }, - { 0x5D5C, 93690 }, - { 0x5D64, 93697 }, - { 0x5D5E, 93707 }, - { 0x5D62, 93713 }, - { 0x5D66, 93721 }, - { 0x5D65, 93729 }, - { 0x5D69, 93735 }, - { 0x5D63, 93743 }, - { 0x5D5D, 93750 }, - { 0x5D61, 93757 }, - { 0x5D45, 93767 }, - { 0x5D46, 93771 }, - { 0x5D6B, 93775 }, - { 0x5D6C, 93777 }, - { 0x5D6D, 93779 }, - { 0x5D6E, 93781 }, - { 0x5D6F, 93783 }, - { 0x5D70, 93785 }, - { 0x5D71, 93787 }, - { 0x5D72, 93789 }, - { 0x5D73, 93791 }, - { 0x5D74, 93793 }, - { 0x5D75, 93795 }, - { 0x5D76, 93797 }, - { 0x5D77, 93799 }, - { 0x5D78, 93801 }, - { 0x5D79, 93803 }, - { 0x5D7A, 93805 }, - { 0x5D7B, 93807 }, - { 0x5D7C, 93809 }, - { 0x5D7D, 93811 }, - { 0x5D7E, 93813 }, - { 0x5D7F, 93815 }, - { 0x5D80, 93817 }, - { 0x5D81, 93819 }, - { 0x5D82, 93821 }, - { 0x5D83, 93823 }, - { 0x5D84, 93825 }, - { 0x5D85, 93827 }, - { 0x5D86, 93829 }, - { 0x5D87, 93831 }, - { 0x5D88, 93833 }, - { 0x5D89, 93835 }, - { 0x5D8A, 93837 }, - { 0x5D8B, 93839 }, - { 0x5D8C, 93841 }, - { 0x5D8D, 93843 }, - { 0x5D8E, 93845 }, - { 0x5D8F, 93847 }, - { 0x5D90, 93849 }, - { 0x5D91, 93851 }, - { 0x5D92, 93853 }, - { 0x5D93, 93855 }, - { 0x5D94, 93857 }, - { 0x5D95, 93859 }, - { 0x5D96, 93861 }, - { 0x5D97, 93863 }, - { 0x5D98, 93865 }, - { 0x5D99, 93867 }, - { 0x5D9A, 93869 }, - { 0x5D9B, 93871 }, - { 0x5D9C, 93873 }, - { 0x5D9D, 93875 }, - { 0x5D9E, 93877 }, - { 0x5D9F, 93879 }, - { 0x5DA0, 93881 }, - { 0x5DA1, 93883 }, - { 0x5DA2, 93885 }, - { 0x5DA3, 93887 }, - { 0x5DA4, 93889 }, - { 0x5DA5, 93891 }, - { 0x5DA6, 93893 }, - { 0x5DA7, 93895 }, - { 0x5DA8, 93897 }, - { 0x5DA9, 93899 }, - { 0x5DAA, 93901 }, - { 0x5DAB, 93903 }, - { 0x5DAC, 93905 }, - { 0x5DAD, 93907 }, - { 0x5DAE, 93909 }, - { 0x5DAF, 93911 }, - { 0x5DB0, 93913 }, - { 0x5DB1, 93915 }, - { 0x5DB2, 93917 }, - { 0x5DB3, 93919 }, - { 0x5DB4, 93921 }, - { 0x5DB5, 93923 }, - { 0x5DB6, 93925 }, - { 0x5DB7, 93927 }, - { 0x5DB8, 93929 }, - { 0x5DB9, 93931 }, - { 0x5DBA, 93933 }, - { 0x5DBB, 93935 }, - { 0x5DBC, 93937 }, - { 0x5DBD, 93939 }, - { 0x5DBE, 93941 }, - { 0x5DBF, 93943 }, - { 0x5DC0, 93945 }, - { 0x5DC1, 93947 }, - { 0x5DC2, 93949 }, - { 0x5DC3, 93951 }, - { 0x5DC4, 93953 }, - { 0x5DC5, 93955 }, - { 0x5DC6, 93957 }, - { 0x5DC7, 93959 }, - { 0x5DC8, 93961 }, - { 0x5DC9, 93963 }, - { 0x5DCA, 93965 }, - { 0x5DCB, 93967 }, - { 0x5DCC, 93969 }, - { 0x5DCD, 93971 }, - { 0x5DCE, 93973 }, - { 0x5DCF, 93975 }, - { 0x5DD0, 93977 }, - { 0x5DD1, 93979 }, - { 0x5DD2, 93981 }, - { 0x5DD3, 93983 }, - { 0x5DD4, 93985 }, - { 0x5DD5, 93987 }, - { 0x5DD6, 93989 }, - { 0x5DD7, 93991 }, - { 0x5DD8, 93993 }, - { 0x5DD9, 93995 }, - { 0x5DDA, 93997 }, - { 0x5DDB, 93999 }, - { 0x5DDC, 94001 }, - { 0x5DDD, 94003 }, - { 0x5DDE, 94005 }, - { 0x5DDF, 94007 }, - { 0x5DE0, 94009 }, - { 0x5DE1, 94011 }, - { 0x5DE2, 94013 }, - { 0x5DE3, 94015 }, - { 0x5DE4, 94017 }, - { 0x5DE5, 94019 }, - { 0x5DE6, 94021 }, - { 0x5DE7, 94023 }, - { 0x5DE8, 94025 }, - { 0x5DE9, 94027 }, - { 0x5DEA, 94029 }, - { 0x5DEB, 94031 }, - { 0x5DEC, 94033 }, - { 0x5DED, 94035 }, - { 0x5DEE, 94037 }, - { 0x5DEF, 94039 }, - { 0x5DF0, 94041 }, - { 0x5DF1, 94043 }, - { 0x5DF2, 94045 }, - { 0x5DF3, 94047 }, - { 0x5DF4, 94049 }, - { 0x5DF5, 94051 }, - { 0x5DF6, 94053 }, - { 0x5DF7, 94055 }, - { 0x5DF8, 94057 }, - { 0x5DF9, 94059 }, - { 0x5DFA, 94061 }, - { 0x5DFB, 94063 }, - { 0x5DFC, 94065 }, - { 0x5DFD, 94067 }, - { 0x5DFE, 94069 }, - { 0x5DFF, 94071 }, - { 0x5E00, 94073 }, - { 0x5E01, 94075 }, - { 0x5E02, 94077 }, - { 0x5E03, 94079 }, - { 0x5E04, 94081 }, - { 0x5E05, 94083 }, - { 0x5E06, 94085 }, - { 0x5E07, 94087 }, - { 0x5E08, 94089 }, - { 0x5E09, 94091 }, - { 0x5E0A, 94093 }, - { 0x5E0B, 94095 }, - { 0x5E0C, 94097 }, - { 0x5E0D, 94099 }, - { 0x5E0E, 94101 }, - { 0x5E0F, 94103 }, - { 0x5E10, 94105 }, - { 0x5E11, 94107 }, - { 0x5E12, 94109 }, - { 0x5E13, 94111 }, - { 0x5E14, 94113 }, - { 0x5E15, 94115 }, - { 0x5E16, 94117 }, - { 0x5E17, 94119 }, - { 0x5E18, 94121 }, - { 0x5E19, 94123 }, - { 0x5E1A, 94125 }, - { 0x5E1B, 94127 }, - { 0x5E1C, 94129 }, - { 0x5E1D, 94131 }, - { 0x5E1E, 94133 }, - { 0x5E1F, 94135 }, - { 0x5E20, 94137 }, - { 0x5E21, 94139 }, - { 0x5E22, 94141 }, - { 0x5E23, 94143 }, - { 0x5E24, 94145 }, - { 0x5E25, 94147 }, - { 0x5E26, 94149 }, - { 0x5E27, 94151 }, - { 0x5E28, 94153 }, - { 0x5E29, 94155 }, - { 0x5E2A, 94157 }, - { 0x5E2B, 94159 }, - { 0x5E2C, 94161 }, - { 0x5E2D, 94163 }, - { 0x5E2E, 94165 }, - { 0x5E2F, 94167 }, - { 0x5E30, 94169 }, - { 0x5E31, 94171 }, - { 0x5E32, 94173 }, - { 0x5E33, 94175 }, - { 0x5E34, 94177 }, - { 0x5E35, 94179 }, - { 0x5E36, 94181 }, - { 0x5E37, 94183 }, - { 0x5E38, 94185 }, - { 0x5E39, 94187 }, - { 0x5E3A, 94189 }, - { 0x5E3B, 94191 }, - { 0x5E3C, 94193 }, - { 0x5E3D, 94195 }, - { 0x5E3E, 94197 }, - { 0x5E3F, 94199 }, - { 0x5E40, 94201 }, - { 0x5E41, 94203 }, - { 0x5E42, 94205 }, - { 0x5E43, 94207 }, - { 0x5E44, 94209 }, - { 0x5E45, 94211 }, - { 0x5E46, 94213 }, - { 0x5E47, 94215 }, - { 0x5E48, 94217 }, - { 0x5E49, 94219 }, - { 0x5E4A, 94221 }, - { 0x5E4B, 94223 }, - { 0x5E4C, 94225 }, - { 0x5E4D, 94227 }, - { 0x5E4E, 94229 }, - { 0x5E4F, 94231 }, - { 0x5E50, 94233 }, - { 0x5E51, 94235 }, - { 0x5E52, 94237 }, - { 0x5E53, 94239 }, - { 0x5E54, 94241 }, - { 0x5E55, 94243 }, - { 0x5E56, 94245 }, - { 0x5E57, 94247 }, - { 0x5E58, 94249 }, - { 0x5E59, 94251 }, - { 0x5E5A, 94253 }, - { 0x5E5B, 94255 }, - { 0x5E5C, 94257 }, - { 0x5E5D, 94259 }, - { 0x5E5E, 94261 }, - { 0x5E5F, 94263 }, - { 0x5E60, 94265 }, - { 0x5E61, 94267 }, - { 0x5E62, 94269 }, - { 0x5E63, 94271 }, - { 0x5E64, 94273 }, - { 0x5E65, 94275 }, - { 0x5E66, 94277 }, - { 0x5E67, 94279 }, - { 0x5E68, 94281 }, - { 0x5E69, 94283 }, - { 0x5E6A, 94285 }, - { 0x5E6B, 94287 }, - { 0x5E6C, 94289 }, - { 0x5E6D, 94291 }, - { 0x5E6E, 94293 }, - { 0x5E6F, 94295 }, - { 0x5E70, 94297 }, - { 0x5E71, 94299 }, - { 0x5E72, 94301 }, - { 0x5E73, 94303 }, - { 0x5E74, 94305 }, - { 0x5E75, 94307 }, - { 0x5E76, 94309 }, - { 0x5E77, 94311 }, - { 0x5E78, 94313 }, - { 0x5E79, 94315 }, - { 0x5E7A, 94317 }, - { 0x5E7B, 94319 }, - { 0x5E7C, 94321 }, - { 0x5E7D, 94323 }, - { 0x5E7E, 94325 }, - { 0x5E7F, 94327 }, - { 0x5E80, 94329 }, - { 0x5E81, 94331 }, - { 0x5E82, 94333 }, - { 0x5E83, 94335 }, - { 0x5E84, 94337 }, - { 0x5E85, 94339 }, - { 0x5E86, 94341 }, - { 0x5E87, 94343 }, - { 0x5E88, 94345 }, - { 0x5E89, 94347 }, - { 0x5E8A, 94349 }, - { 0x5E8B, 94351 }, - { 0x5E8C, 94353 }, - { 0x5E8D, 94355 }, - { 0x5E8E, 94357 }, - { 0x5E8F, 94359 }, - { 0x5E90, 94361 }, - { 0x5E91, 94363 }, - { 0x5E92, 94365 }, - { 0x5E93, 94367 }, - { 0x5E94, 94369 }, - { 0x5E95, 94371 }, - { 0x5E96, 94373 }, - { 0x5E97, 94375 }, - { 0x5E98, 94377 }, - { 0x5E99, 94379 }, - { 0x5E9A, 94381 }, - { 0x5E9B, 94383 }, - { 0x5E9C, 94385 }, - { 0x5E9D, 94387 }, - { 0x5E9E, 94389 }, - { 0x5E9F, 94391 }, - { 0x5EA0, 94393 }, - { 0x5EA1, 94395 }, - { 0x5EA2, 94397 }, - { 0x5EA3, 94399 }, - { 0x5EA4, 94401 }, - { 0x5EA5, 94403 }, - { 0x5EA6, 94405 }, - { 0x5EA7, 94407 }, - { 0x5EA8, 94409 }, - { 0x5EA9, 94411 }, - { 0x5EAA, 94413 }, - { 0x5EAB, 94415 }, - { 0x5EAC, 94417 }, - { 0x5EAD, 94419 }, - { 0x5EAE, 94421 }, - { 0x5EAF, 94423 }, - { 0x5EB0, 94425 }, - { 0x5EB1, 94427 }, - { 0x5EB2, 94429 }, - { 0x5EB3, 94431 }, - { 0x5EB4, 94433 }, - { 0x5EB5, 94435 }, - { 0x5EB6, 94437 }, - { 0x5EB7, 94439 }, - { 0x5EB8, 94441 }, - { 0x5EB9, 94443 }, - { 0x5EBA, 94445 }, - { 0x5EBB, 94447 }, - { 0x5EBC, 94449 }, - { 0x5EBD, 94451 }, - { 0x5EBE, 94453 }, - { 0x5EBF, 94455 }, - { 0x5EC0, 94457 }, - { 0x5EC1, 94459 }, - { 0x5EC2, 94461 }, - { 0x5EC3, 94463 }, - { 0x5EC4, 94465 }, - { 0x5EC5, 94467 }, - { 0x5EC6, 94469 }, - { 0x5EC7, 94471 }, - { 0x5EC8, 94473 }, - { 0x5EC9, 94475 }, - { 0x5ECA, 94477 }, - { 0x5ECB, 94479 }, - { 0x5ECC, 94481 }, - { 0x5ECD, 94483 }, - { 0x5ECE, 94485 }, - { 0x5ECF, 94487 }, - { 0x5ED0, 94489 }, - { 0x5ED1, 94491 }, - { 0x5ED2, 94493 }, - { 0x5ED3, 94495 }, - { 0x5ED4, 94497 }, - { 0x5ED5, 94499 }, - { 0x5ED6, 94501 }, - { 0x5ED7, 94503 }, - { 0x5ED8, 94505 }, - { 0x5ED9, 94507 }, - { 0x5EDA, 94509 }, - { 0x5EDB, 94511 }, - { 0x5EDC, 94513 }, - { 0x5EDD, 94515 }, - { 0x5EDE, 94517 }, - { 0x5EDF, 94519 }, - { 0x5EE0, 94521 }, - { 0x5EE1, 94523 }, - { 0x5EE2, 94525 }, - { 0x5EE3, 94527 }, - { 0x5EE4, 94529 }, - { 0x5EE5, 94531 }, - { 0x5EE6, 94533 }, - { 0x5EE7, 94535 }, - { 0x5EE8, 94537 }, - { 0x5EE9, 94539 }, - { 0x5EEA, 94541 }, - { 0x5EEB, 94543 }, - { 0x5EEC, 94545 }, - { 0x5EED, 94547 }, - { 0x5EEE, 94549 }, - { 0x5EEF, 94551 }, - { 0x5EF0, 94553 }, - { 0x5EF1, 94555 }, - { 0x5EF2, 94557 }, - { 0x5EF3, 94559 }, - { 0x5EF4, 94561 }, - { 0x5EF5, 94563 }, - { 0x5EF6, 94565 }, - { 0x5EF7, 94567 }, - { 0x5EF8, 94569 }, - { 0x5EF9, 94571 }, - { 0x5EFA, 94573 }, - { 0x5EFB, 94575 }, - { 0x5EFC, 94577 }, - { 0x5EFD, 94579 }, - { 0x5EFE, 94581 }, - { 0x5EFF, 94583 }, - { 0x5F00, 94585 }, - { 0x5F01, 94587 }, - { 0x5F02, 94589 }, - { 0x5F03, 94591 }, - { 0x5F04, 94593 }, - { 0x5F05, 94595 }, - { 0x5F06, 94597 }, - { 0x5F07, 94599 }, - { 0x5F08, 94601 }, - { 0x5F09, 94603 }, - { 0x5F0A, 94605 }, - { 0x5F0B, 94607 }, - { 0x5F0C, 94609 }, - { 0x5F0D, 94611 }, - { 0x5F0E, 94613 }, - { 0x5F0F, 94615 }, - { 0x5F10, 94617 }, - { 0x5F11, 94619 }, - { 0x5F12, 94621 }, - { 0x5F13, 94623 }, - { 0x5F14, 94625 }, - { 0x5F15, 94627 }, - { 0x5F16, 94629 }, - { 0x5F17, 94631 }, - { 0x5F18, 94633 }, - { 0x5F19, 94635 }, - { 0x5F1A, 94637 }, - { 0x5F1B, 94639 }, - { 0x5F1C, 94641 }, - { 0x5F1D, 94643 }, - { 0x5F1E, 94645 }, - { 0x5F1F, 94647 }, - { 0x5F20, 94649 }, - { 0x5F21, 94651 }, - { 0x5F22, 94653 }, - { 0x5F23, 94655 }, - { 0x5F24, 94657 }, - { 0x5F25, 94659 }, - { 0x5F26, 94661 }, - { 0x5F27, 94663 }, - { 0x5F28, 94665 }, - { 0x5F29, 94667 }, - { 0x5F2A, 94669 }, - { 0x5F2B, 94671 }, - { 0x5F2C, 94673 }, - { 0x5F2D, 94675 }, - { 0x5F2E, 94677 }, - { 0x5F2F, 94679 }, - { 0x5F30, 94681 }, - { 0x5F31, 94683 }, - { 0x5F32, 94685 }, - { 0x5F33, 94687 }, - { 0x5F34, 94689 }, - { 0x5F35, 94691 }, - { 0x5F36, 94693 }, - { 0x5F37, 94695 }, - { 0x5F38, 94697 }, - { 0x5F39, 94699 }, - { 0x5F3A, 94701 }, - { 0x5F3B, 94703 }, - { 0x5F3C, 94705 }, - { 0x5F3D, 94707 }, - { 0x5F3E, 94709 }, - { 0x5F3F, 94711 }, - { 0x5F40, 94713 }, - { 0x5F41, 94715 }, - { 0x5F42, 94717 }, - { 0x5F43, 94719 }, - { 0x5F44, 94721 }, - { 0x5F45, 94723 }, - { 0x5F46, 94725 }, - { 0x5F47, 94727 }, - { 0x5F48, 94729 }, - { 0x5F49, 94731 }, - { 0x5F4A, 94733 }, - { 0x5F4B, 94735 }, - { 0x5F4C, 94737 }, - { 0x5F4D, 94739 }, - { 0x5F4E, 94741 }, - { 0x5F4F, 94743 }, - { 0x5F50, 94745 }, - { 0x5F51, 94747 }, - { 0x5F52, 94749 }, - { 0x5F53, 94751 }, - { 0x5F54, 94753 }, - { 0x5F55, 94755 }, - { 0x5F56, 94757 }, - { 0x5F57, 94759 }, - { 0x5F58, 94761 }, - { 0x5F59, 94763 }, - { 0x5F5A, 94765 }, - { 0x5F5B, 94767 }, - { 0x5F5C, 94769 }, - { 0x5F5D, 94771 }, - { 0x5F5E, 94773 }, - { 0x5F5F, 94775 }, - { 0x5F60, 94777 }, - { 0x5F61, 94779 }, - { 0x5F62, 94781 }, - { 0x5F63, 94783 }, - { 0x5F64, 94785 }, - { 0x5F65, 94787 }, - { 0x5F66, 94789 }, - { 0x5F67, 94791 }, - { 0x5F68, 94793 }, - { 0x5F69, 94795 }, - { 0x5F6A, 94797 }, - { 0x5F6B, 94799 }, - { 0x5F6C, 94801 }, - { 0x5F6D, 94803 }, - { 0x5F6E, 94805 }, - { 0x5F6F, 94807 }, - { 0x5F70, 94809 }, - { 0x5F71, 94811 }, - { 0x5F72, 94813 }, - { 0x5F73, 94815 }, - { 0x5F74, 94817 }, - { 0x5F75, 94819 }, - { 0x5F76, 94821 }, - { 0x5F77, 94823 }, - { 0x5F78, 94825 }, - { 0x5F79, 94827 }, - { 0x5F7A, 94829 }, - { 0x5F7B, 94831 }, - { 0x5F7C, 94833 }, - { 0x5F7D, 94835 }, - { 0x5F7E, 94837 }, - { 0x5F7F, 94839 }, - { 0x5F80, 94841 }, - { 0x5F81, 94843 }, - { 0x5F82, 94845 }, - { 0x5F83, 94847 }, - { 0x5F84, 94849 }, - { 0x5F85, 94851 }, - { 0x5F86, 94853 }, - { 0x5F87, 94855 }, - { 0x5F88, 94857 }, - { 0x5F89, 94859 }, - { 0x5F8A, 94861 }, - { 0x5F8B, 94863 }, - { 0x5F8C, 94865 }, - { 0x5F8D, 94867 }, - { 0x5F8E, 94869 }, - { 0x5F8F, 94871 }, - { 0x5F90, 94873 }, - { 0x5F91, 94875 }, - { 0x5F92, 94877 }, - { 0x5F93, 94879 }, - { 0x5F94, 94881 }, - { 0x5F95, 94883 }, - { 0x5F96, 94885 }, - { 0x5F97, 94887 }, - { 0x5F98, 94889 }, - { 0x5F99, 94891 }, - { 0x5F9A, 94893 }, - { 0x5F9B, 94895 }, - { 0x5F9C, 94897 }, - { 0x5F9D, 94899 }, - { 0x5F9E, 94901 }, - { 0x5F9F, 94903 }, - { 0x5FA0, 94905 }, - { 0x5FA1, 94907 }, - { 0x5FA2, 94909 }, - { 0x5FA3, 94911 }, - { 0x5FA4, 94913 }, - { 0x5FA5, 94915 }, - { 0x5FA6, 94917 }, - { 0x5FA7, 94919 }, - { 0x5FA8, 94921 }, - { 0x5FA9, 94923 }, - { 0x5FAA, 94925 }, - { 0x5FAB, 94927 }, - { 0x5FAC, 94929 }, - { 0x5FAD, 94931 }, - { 0x5FAE, 94933 }, - { 0x5FAF, 94935 }, - { 0x5FB0, 94937 }, - { 0x5FB1, 94939 }, - { 0x5FB2, 94941 }, - { 0x5FB3, 94943 }, - { 0x5FB4, 94945 }, - { 0x5FB5, 94947 }, - { 0x5FB6, 94949 }, - { 0x5FB7, 94951 }, - { 0x5FB8, 94953 }, - { 0x5FB9, 94955 }, - { 0x5FBA, 94957 }, - { 0x5FBB, 94959 }, - { 0x5FBC, 94961 }, - { 0x5FBD, 94963 }, - { 0x5FBE, 94965 }, - { 0x5FBF, 94967 }, - { 0x5FC0, 94969 }, - { 0x5FC1, 94971 }, - { 0x5FC2, 94973 }, - { 0x5FC3, 94975 }, - { 0x5FC4, 94977 }, - { 0x5FC5, 94979 }, - { 0x5FC6, 94981 }, - { 0x5FC7, 94983 }, - { 0x5FC8, 94985 }, - { 0x5FC9, 94987 }, - { 0x5FCA, 94989 }, - { 0x5FCB, 94991 }, - { 0x5FCC, 94993 }, - { 0x5FCD, 94995 }, - { 0x5FCE, 94997 }, - { 0x5FCF, 94999 }, - { 0x5FD0, 95001 }, - { 0x5FD1, 95003 }, - { 0x5FD2, 95005 }, - { 0x5FD3, 95007 }, - { 0x5FD4, 95009 }, - { 0x5FD5, 95011 }, - { 0x5FD6, 95013 }, - { 0x5FD7, 95015 }, - { 0x5FD8, 95017 }, - { 0x5FD9, 95019 }, - { 0x5FDA, 95021 }, - { 0x5FDB, 95023 }, - { 0x5FDC, 95025 }, - { 0x5FDD, 95027 }, - { 0x5FDE, 95029 }, - { 0x5FDF, 95031 }, - { 0x5FE0, 95033 }, - { 0x5FE1, 95035 }, - { 0x5FE2, 95037 }, - { 0x5FE3, 95039 }, - { 0x5FE4, 95041 }, - { 0x5FE5, 95043 }, - { 0x5FE6, 95045 }, - { 0x5FE7, 95047 }, - { 0x5FE8, 95049 }, - { 0x5FE9, 95051 }, - { 0x5FEA, 95053 }, - { 0x5FEB, 95055 }, - { 0x5FEC, 95057 }, - { 0x5FED, 95059 }, - { 0x5FEE, 95061 }, - { 0x5FEF, 95063 }, - { 0x5FF0, 95065 }, - { 0x5FF1, 95067 }, - { 0x5FF2, 95069 }, - { 0x5FF3, 95071 }, - { 0x5FF4, 95073 }, - { 0x5FF5, 95075 }, - { 0x5FF6, 95077 }, - { 0x5FF7, 95079 }, - { 0x5FF8, 95081 }, - { 0x5FF9, 95083 }, - { 0x5FFA, 95085 }, - { 0x5FFB, 95087 }, - { 0x5FFC, 95089 }, - { 0x5FFD, 95091 }, - { 0x5FFE, 95093 }, - { 0x5FFF, 95095 }, - { 0x6000, 95097 }, - { 0x6001, 95099 }, - { 0x6002, 95101 }, - { 0x6003, 95103 }, - { 0x6004, 95105 }, - { 0x6005, 95107 }, - { 0x6006, 95109 }, - { 0x6007, 95111 }, - { 0x6008, 95113 }, - { 0x6009, 95115 }, - { 0x600A, 95117 }, - { 0x600B, 95119 }, - { 0x600C, 95121 }, - { 0x600D, 95123 }, - { 0x600E, 95125 }, - { 0x600F, 95127 }, - { 0x6010, 95129 }, - { 0x6011, 95131 }, - { 0x6012, 95133 }, - { 0x6013, 95135 }, - { 0x6014, 95137 }, - { 0x6015, 95139 }, - { 0x6016, 95141 }, - { 0x6017, 95143 }, - { 0x6018, 95145 }, - { 0x6019, 95147 }, - { 0x601A, 95149 }, - { 0x601B, 95151 }, - { 0x601C, 95153 }, - { 0x601D, 95155 }, - { 0x601E, 95157 }, - { 0x601F, 95159 }, - { 0x6020, 95161 }, - { 0x6021, 95163 }, - { 0x6022, 95165 }, - { 0x6023, 95167 }, - { 0x6024, 95169 }, - { 0x6025, 95171 }, - { 0x6026, 95173 }, - { 0x6027, 95175 }, - { 0x6028, 95177 }, - { 0x6029, 95179 }, - { 0x602A, 95181 }, - { 0x602B, 95183 }, - { 0x602C, 95185 }, - { 0x602D, 95187 }, - { 0x602E, 95189 }, - { 0x602F, 95191 }, - { 0x6030, 95193 }, - { 0x6031, 95195 }, - { 0x6032, 95197 }, - { 0x6033, 95199 }, - { 0x6034, 95201 }, - { 0x6035, 95203 }, - { 0x6036, 95205 }, - { 0x6037, 95207 }, - { 0x6038, 95209 }, - { 0x6039, 95211 }, - { 0x603A, 95213 }, - { 0x603B, 95215 }, - { 0x603C, 95217 }, - { 0x603D, 95219 }, - { 0x603E, 95221 }, - { 0x603F, 95223 }, - { 0x6040, 95225 }, - { 0x6041, 95227 }, - { 0x6042, 95229 }, - { 0x6043, 95231 }, - { 0x6044, 95233 }, - { 0x6045, 95235 }, - { 0x6046, 95237 }, - { 0x6047, 95239 }, - { 0x6048, 95241 }, - { 0x6049, 95243 }, - { 0x604A, 95245 }, - { 0x604B, 95247 }, - { 0x604C, 95249 }, - { 0x604D, 95251 }, - { 0x604E, 95253 }, - { 0x604F, 95255 }, - { 0x6050, 95257 }, - { 0x6051, 95259 }, - { 0x6052, 95261 }, - { 0x6053, 95263 }, - { 0x6054, 95265 }, - { 0x6055, 95267 }, - { 0x6056, 95269 }, - { 0x6057, 95271 }, - { 0x6058, 95273 }, - { 0x6059, 95275 }, - { 0x605A, 95277 }, - { 0x605B, 95279 }, - { 0x605C, 95281 }, - { 0x605D, 95283 }, - { 0x605E, 95285 }, - { 0x605F, 95287 }, - { 0x6060, 95289 }, - { 0x6061, 95291 }, - { 0x6062, 95293 }, - { 0x6063, 95295 }, - { 0x6064, 95297 }, - { 0x6065, 95299 }, - { 0x6066, 95301 }, - { 0x6067, 95303 }, - { 0x6068, 95305 }, - { 0x6069, 95307 }, - { 0x606A, 95309 }, - { 0x606B, 95311 }, - { 0x606C, 95313 }, - { 0x606D, 95315 }, - { 0x606E, 95317 }, - { 0x606F, 95319 }, - { 0x6070, 95321 }, - { 0x6071, 95323 }, - { 0x6072, 95325 }, - { 0x6073, 95327 }, - { 0x6074, 95329 }, - { 0x6075, 95331 }, - { 0x6076, 95333 }, - { 0x6077, 95335 }, - { 0x6078, 95337 }, - { 0x6079, 95339 }, - { 0x607A, 95341 }, - { 0x607B, 95343 }, - { 0x607C, 95345 }, - { 0x607D, 95347 }, - { 0x607E, 95349 }, - { 0x607F, 95351 }, - { 0x6080, 95353 }, - { 0x6081, 95355 }, - { 0x6082, 95357 }, - { 0x6083, 95359 }, - { 0x6084, 95361 }, - { 0x6085, 95363 }, - { 0x6086, 95365 }, - { 0x6087, 95367 }, - { 0x6088, 95369 }, - { 0x6089, 95371 }, - { 0x608A, 95373 }, - { 0x608B, 95375 }, - { 0x608C, 95377 }, - { 0x608D, 95379 }, - { 0x608E, 95381 }, - { 0x608F, 95383 }, - { 0x6090, 95385 }, - { 0x6091, 95387 }, - { 0x6092, 95389 }, - { 0x6093, 95391 }, - { 0x6094, 95393 }, - { 0x6095, 95395 }, - { 0x6096, 95397 }, - { 0x6097, 95399 }, - { 0x6098, 95401 }, - { 0x6099, 95403 }, - { 0x609A, 95405 }, - { 0x609B, 95407 }, - { 0x609C, 95409 }, - { 0x609D, 95411 }, - { 0x609E, 95413 }, - { 0x609F, 95415 }, - { 0x60A0, 95417 }, - { 0x60A1, 95419 }, - { 0x60A2, 95421 }, - { 0x60A3, 95423 }, - { 0x60A4, 95425 }, - { 0x60A5, 95427 }, - { 0x60A6, 95429 }, - { 0x60A7, 95431 }, - { 0x60A8, 95433 }, - { 0x60A9, 95435 }, - { 0x60AA, 95437 }, - { 0x60AB, 95439 }, - { 0x60AC, 95441 }, - { 0x60AD, 95443 }, - { 0x60AE, 95445 }, - { 0x60AF, 95447 }, - { 0x60B0, 95449 }, - { 0x60B1, 95451 }, - { 0x60B2, 95453 }, - { 0x60B3, 95455 }, - { 0x60B4, 95457 }, - { 0x60B5, 95459 }, - { 0x60B6, 95461 }, - { 0x60B7, 95463 }, - { 0x60B8, 95465 }, - { 0x60B9, 95467 }, - { 0x60BA, 95469 }, - { 0x60BB, 95471 }, - { 0x60BC, 95473 }, - { 0x60BD, 95475 }, - { 0x60BE, 95477 }, - { 0x60BF, 95479 }, - { 0x60C0, 95481 }, - { 0x60C1, 95483 }, - { 0x60C2, 95485 }, - { 0x60C3, 95487 }, - { 0x60C4, 95489 }, - { 0x60C5, 95491 }, - { 0x60C6, 95493 }, - { 0x60C7, 95495 }, - { 0x60C8, 95497 }, - { 0x60C9, 95499 }, - { 0x60CA, 95501 }, - { 0x60CB, 95503 }, - { 0x60CC, 95505 }, - { 0x60CD, 95507 }, - { 0x60CE, 95509 }, - { 0x60CF, 95511 }, - { 0x60D0, 95513 }, - { 0x60D1, 95515 }, - { 0x60D2, 95517 }, - { 0x60D3, 95519 }, - { 0x60D4, 95521 }, - { 0x60D5, 95523 }, - { 0x60D6, 95525 }, - { 0x60D7, 95527 }, - { 0x60D8, 95529 }, - { 0x60D9, 95531 }, - { 0x60DA, 95533 }, - { 0x60DB, 95535 }, - { 0x60DC, 95537 }, - { 0x60DD, 95539 }, - { 0x60DE, 95541 }, - { 0x60DF, 95543 }, - { 0x60E0, 95545 }, - { 0x60E1, 95547 }, - { 0x60E2, 95549 }, - { 0x60E3, 95551 }, - { 0x60E4, 95553 }, - { 0x60E5, 95555 }, - { 0x60E6, 95557 }, - { 0x60E7, 95559 }, - { 0x60E8, 95561 }, - { 0x60E9, 95563 }, - { 0x60EA, 95565 }, - { 0x60EB, 95567 }, - { 0x60EC, 95569 }, - { 0x60ED, 95571 }, - { 0x60EE, 95573 }, - { 0x60EF, 95575 }, - { 0x60F0, 95577 }, - { 0x60F1, 95579 }, - { 0x60F2, 95581 }, - { 0x60F3, 95583 }, - { 0x60F4, 95585 }, - { 0x60F5, 95587 }, - { 0x60F6, 95589 }, - { 0x60F7, 95591 }, - { 0x60F8, 95593 }, - { 0x60F9, 95595 }, - { 0x60FA, 95597 }, - { 0x60FB, 95599 }, - { 0x60FC, 95601 }, - { 0x60FD, 95603 }, - { 0x60FE, 95605 }, - { 0x60FF, 95607 }, - { 0x6100, 95609 }, - { 0x6101, 95611 }, - { 0x6102, 95613 }, - { 0x6103, 95615 }, - { 0x6104, 95617 }, - { 0x6105, 95619 }, - { 0x6106, 95621 }, - { 0x6107, 95623 }, - { 0x6108, 95625 }, - { 0x6109, 95627 }, - { 0x610A, 95629 }, - { 0x610B, 95631 }, - { 0x610C, 95633 }, - { 0x610D, 95635 }, - { 0x610E, 95637 }, - { 0x610F, 95639 }, - { 0x6110, 95641 }, - { 0x6111, 95643 }, - { 0x6112, 95645 }, - { 0x6113, 95647 }, - { 0x6114, 95649 }, - { 0x6115, 95651 }, - { 0x6116, 95653 }, - { 0x6117, 95655 }, - { 0x6118, 95657 }, - { 0x6119, 95659 }, - { 0x611A, 95661 }, - { 0x611B, 95663 }, - { 0x611C, 95665 }, - { 0x611D, 95667 }, - { 0x611E, 95669 }, - { 0x611F, 95671 }, - { 0x6120, 95673 }, - { 0x6121, 95675 }, - { 0x6122, 95677 }, - { 0x6123, 95679 }, - { 0x6124, 95681 }, - { 0x6125, 95683 }, - { 0x6126, 95685 }, - { 0x6127, 95687 }, - { 0x6128, 95689 }, - { 0x6129, 95691 }, - { 0x612A, 95693 }, - { 0x612B, 95695 }, - { 0x612C, 95697 }, - { 0x612D, 95699 }, - { 0x612E, 95701 }, - { 0x612F, 95703 }, - { 0x6130, 95705 }, - { 0x6131, 95707 }, - { 0x6132, 95709 }, - { 0x6133, 95711 }, - { 0x6134, 95713 }, - { 0x6135, 95715 }, - { 0x6136, 95717 }, - { 0x6137, 95719 }, - { 0x6138, 95721 }, - { 0x6139, 95723 }, - { 0x613A, 95725 }, - { 0x613B, 95727 }, - { 0x613C, 95729 }, - { 0x613D, 95731 }, - { 0x613E, 95733 }, - { 0x613F, 95735 }, - { 0x6140, 95737 }, - { 0x6141, 95739 }, - { 0x6142, 95741 }, - { 0x6143, 95743 }, - { 0x6144, 95745 }, - { 0x6145, 95747 }, - { 0x6146, 95749 }, - { 0x6147, 95751 }, - { 0x6148, 95753 }, - { 0x6149, 95755 }, - { 0x614A, 95757 }, - { 0x614B, 95759 }, - { 0x614C, 95761 }, - { 0x614D, 95763 }, - { 0x614E, 95765 }, - { 0x614F, 95767 }, - { 0x6150, 95769 }, - { 0x6151, 95771 }, - { 0x6152, 95773 }, - { 0x6153, 95775 }, - { 0x6154, 95777 }, - { 0x6155, 95779 }, - { 0x6156, 95781 }, - { 0x6157, 95783 }, - { 0x6158, 95785 }, - { 0x6159, 95787 }, - { 0x615A, 95789 }, - { 0x615B, 95791 }, - { 0x615C, 95793 }, - { 0x615D, 95795 }, - { 0x615E, 95797 }, - { 0x615F, 95799 }, - { 0x6160, 95801 }, - { 0x6161, 95803 }, - { 0x6162, 95805 }, - { 0x6163, 95807 }, - { 0x6164, 95809 }, - { 0x6165, 95811 }, - { 0x6166, 95813 }, - { 0x6167, 95815 }, - { 0x6168, 95817 }, - { 0x6169, 95819 }, - { 0x616A, 95821 }, - { 0x616B, 95823 }, - { 0x616C, 95825 }, - { 0x616D, 95827 }, - { 0x616E, 95829 }, - { 0x616F, 95831 }, - { 0x6170, 95833 }, - { 0x6171, 95835 }, - { 0x6172, 95837 }, - { 0x6173, 95839 }, - { 0x6174, 95841 }, - { 0x6175, 95843 }, - { 0x6176, 95845 }, - { 0x6177, 95847 }, - { 0x6178, 95849 }, - { 0x6179, 95851 }, - { 0x617A, 95853 }, - { 0x617B, 95855 }, - { 0x617C, 95857 }, - { 0x617D, 95859 }, - { 0x617E, 95861 }, - { 0x617F, 95863 }, - { 0x6180, 95865 }, - { 0x6181, 95867 }, - { 0x6182, 95869 }, - { 0x6183, 95871 }, - { 0x6184, 95873 }, - { 0x6185, 95875 }, - { 0x6186, 95877 }, - { 0x6187, 95879 }, - { 0x6188, 95881 }, - { 0x6189, 95883 }, - { 0x618A, 95885 }, - { 0x618B, 95887 }, - { 0x618C, 95889 }, - { 0x618D, 95891 }, - { 0x618E, 95893 }, - { 0x618F, 95895 }, - { 0x6190, 95897 }, - { 0x6191, 95899 }, - { 0x6192, 95901 }, - { 0x6193, 95903 }, - { 0x6194, 95905 }, - { 0x6195, 95907 }, - { 0x6196, 95909 }, - { 0x6197, 95911 }, - { 0x6198, 95913 }, - { 0x6199, 95915 }, - { 0x619A, 95917 }, - { 0x619B, 95919 }, - { 0x619C, 95921 }, - { 0x619D, 95923 }, - { 0x619E, 95925 }, - { 0x619F, 95927 }, - { 0x61A0, 95929 }, - { 0x61A1, 95931 }, - { 0x61A2, 95933 }, - { 0x61A3, 95935 }, - { 0x61A4, 95937 }, - { 0x61A5, 95939 }, - { 0x61A6, 95941 }, - { 0x61A7, 95943 }, - { 0x61A8, 95945 }, - { 0x61A9, 95947 }, - { 0x61AA, 95949 }, - { 0x61AB, 95951 }, - { 0x61AC, 95953 }, - { 0x61AD, 95955 }, - { 0x61AE, 95957 }, - { 0x61AF, 95959 }, - { 0x61B0, 95961 }, - { 0x61B1, 95963 }, - { 0x61B2, 95965 }, - { 0x61B3, 95967 }, - { 0x61B4, 95969 }, - { 0x61B5, 95971 }, - { 0x61B6, 95973 }, - { 0x61B7, 95975 }, - { 0x61B8, 95977 }, - { 0x61B9, 95979 }, - { 0x61BA, 95981 }, - { 0x61BB, 95983 }, - { 0x61BC, 95985 }, - { 0x61BD, 95987 }, - { 0x61BE, 95989 }, - { 0x61BF, 95991 }, - { 0x61C0, 95993 }, - { 0x61C1, 95995 }, - { 0x61C2, 95997 }, - { 0x61C3, 95999 }, - { 0x61C4, 96001 }, - { 0x61C5, 96003 }, - { 0x61C6, 96005 }, - { 0x61C7, 96007 }, - { 0x61C8, 96009 }, - { 0x61C9, 96011 }, - { 0x61CA, 96013 }, - { 0x61CB, 96015 }, - { 0x61CC, 96017 }, - { 0x61CD, 96019 }, - { 0x61CE, 96021 }, - { 0x61CF, 96023 }, - { 0x61D0, 96025 }, - { 0x61D1, 96027 }, - { 0x61D2, 96029 }, - { 0x61D3, 96031 }, - { 0x61D4, 96033 }, - { 0x61D5, 96035 }, - { 0x61D6, 96037 }, - { 0x61D7, 96039 }, - { 0x61D8, 96041 }, - { 0x61D9, 96043 }, - { 0x61DA, 96045 }, - { 0x61DB, 96047 }, - { 0x61DC, 96049 }, - { 0x61DD, 96051 }, - { 0x61DE, 96053 }, - { 0x61DF, 96055 }, - { 0x61E0, 96057 }, - { 0x61E1, 96059 }, - { 0x61E2, 96061 }, - { 0x61E3, 96063 }, - { 0x61E4, 96065 }, - { 0x61E5, 96067 }, - { 0x61E6, 96069 }, - { 0x61E7, 96071 }, - { 0x61E8, 96073 }, - { 0x61E9, 96075 }, - { 0x61EA, 96077 }, - { 0x61EB, 96079 }, - { 0x61EC, 96081 }, - { 0x61ED, 96083 }, - { 0x61EE, 96085 }, - { 0x61EF, 96087 }, - { 0x61F0, 96089 }, - { 0x61F1, 96091 }, - { 0x61F2, 96093 }, - { 0x61F3, 96095 }, - { 0x61F4, 96097 }, - { 0x61F5, 96099 }, - { 0x61F6, 96101 }, - { 0x61F7, 96103 }, - { 0x61F8, 96105 }, - { 0x61F9, 96107 }, - { 0x61FA, 96109 }, - { 0x61FB, 96111 }, - { 0x61FC, 96113 }, - { 0x61FD, 96115 }, - { 0x61FE, 96117 }, - { 0x61FF, 96119 }, - { 0x6200, 96121 }, - { 0x6201, 96123 }, - { 0x6202, 96125 }, - { 0x6203, 96127 }, - { 0x6204, 96129 }, - { 0x6205, 96131 }, - { 0x6206, 96133 }, - { 0x6207, 96135 }, - { 0x6208, 96137 }, - { 0x6209, 96139 }, - { 0x620A, 96141 }, - { 0x620B, 96143 }, - { 0x620C, 96145 }, - { 0x620D, 96147 }, - { 0x620E, 96149 }, - { 0x620F, 96151 }, - { 0x6210, 96153 }, - { 0x6211, 96155 }, - { 0x6212, 96157 }, - { 0x6213, 96159 }, - { 0x6214, 96161 }, - { 0x6215, 96163 }, - { 0x6216, 96165 }, - { 0x6217, 96167 }, - { 0x6218, 96169 }, - { 0x6219, 96171 }, - { 0x621A, 96173 }, - { 0x621B, 96175 }, - { 0x621C, 96177 }, - { 0x621D, 96179 }, - { 0x621E, 96181 }, - { 0x621F, 96183 }, - { 0x6220, 96185 }, - { 0x6221, 96187 }, - { 0x6222, 96189 }, - { 0x6223, 96191 }, - { 0x6224, 96193 }, - { 0x6225, 96195 }, - { 0x6226, 96197 }, - { 0x6227, 96199 }, - { 0x6228, 96201 }, - { 0x6229, 96203 }, - { 0x622A, 96205 }, - { 0x622B, 96207 }, - { 0x622C, 96209 }, - { 0x622D, 96211 }, - { 0x622E, 96213 }, - { 0x622F, 96215 }, - { 0x6230, 96217 }, - { 0x6231, 96219 }, - { 0x6232, 96221 }, - { 0x6233, 96223 }, - { 0x6234, 96225 }, - { 0x6235, 96227 }, - { 0x6236, 96229 }, - { 0x6237, 96231 }, - { 0x6238, 96233 }, - { 0x6239, 96235 }, - { 0x623A, 96237 }, - { 0x623B, 96239 }, - { 0x623C, 96241 }, - { 0x623D, 96243 }, - { 0x623E, 96245 }, - { 0x623F, 96247 }, - { 0x6240, 96249 }, - { 0x6241, 96251 }, - { 0x6242, 96253 }, - { 0x6243, 96255 }, - { 0x6244, 96257 }, - { 0x6245, 96259 }, - { 0x6246, 96261 }, - { 0x6247, 96263 }, - { 0x6248, 96265 }, - { 0x6249, 96267 }, - { 0x624A, 96269 }, - { 0x624B, 96271 }, - { 0x624C, 96273 }, - { 0x624D, 96275 }, - { 0x624E, 96277 }, - { 0x624F, 96279 }, - { 0x6250, 96281 }, - { 0x6251, 96283 }, - { 0x6252, 96285 }, - { 0x6253, 96287 }, - { 0x6254, 96289 }, - { 0x6255, 96291 }, - { 0x6256, 96293 }, - { 0x6257, 96295 }, - { 0x6258, 96297 }, - { 0x6259, 96299 }, - { 0x625A, 96301 }, - { 0x625B, 96303 }, - { 0x625C, 96305 }, - { 0x625D, 96307 }, - { 0x625E, 96309 }, - { 0x625F, 96311 }, - { 0x6260, 96313 }, - { 0x6261, 96315 }, - { 0x6262, 96317 }, - { 0x6263, 96319 }, - { 0x6264, 96321 }, - { 0x6265, 96323 }, - { 0x6266, 96325 }, - { 0x6267, 96327 }, - { 0x6268, 96329 }, - { 0x6269, 96331 }, - { 0x626A, 96333 }, - { 0x626B, 96335 }, - { 0x626C, 96337 }, - { 0x626D, 96339 }, - { 0x626E, 96341 }, - { 0x626F, 96343 }, - { 0x6270, 96345 }, - { 0x6271, 96347 }, - { 0x6272, 96349 }, - { 0x6273, 96351 }, - { 0x6274, 96353 }, - { 0x6275, 96355 }, - { 0x6276, 96357 }, - { 0x6277, 96359 }, - { 0x6278, 96361 }, - { 0x6279, 96363 }, - { 0x627A, 96365 }, - { 0x627B, 96367 }, - { 0x627C, 96369 }, - { 0x627D, 96371 }, - { 0x627E, 96373 }, - { 0x627F, 96375 }, - { 0x6280, 96377 }, - { 0x6281, 96379 }, - { 0x6282, 96381 }, - { 0x6283, 96383 }, - { 0x6284, 96385 }, - { 0x6285, 96387 }, - { 0x6286, 96389 }, - { 0x6287, 96391 }, - { 0x6288, 96393 }, - { 0x6289, 96395 }, - { 0x628A, 96397 }, - { 0x628B, 96399 }, - { 0x628C, 96401 }, - { 0x628D, 96403 }, - { 0x628E, 96405 }, - { 0x628F, 96407 }, - { 0x6290, 96409 }, - { 0x6291, 96411 }, - { 0x6292, 96413 }, - { 0x6293, 96415 }, - { 0x6294, 96417 }, - { 0x6295, 96419 }, - { 0x6296, 96421 }, - { 0x6297, 96423 }, - { 0x6298, 96425 }, - { 0x6299, 96427 }, - { 0x629A, 96429 }, - { 0x629B, 96431 }, - { 0x629C, 96433 }, - { 0x629D, 96435 }, - { 0x629E, 96437 }, - { 0x629F, 96439 }, - { 0x62A0, 96441 }, - { 0x62A1, 96443 }, - { 0x62A2, 96445 }, - { 0x62A3, 96447 }, - { 0x62A4, 96449 }, - { 0x62A5, 96451 }, - { 0x62A6, 96453 }, - { 0x62A7, 96455 }, - { 0x62A8, 96457 }, - { 0x62A9, 96459 }, - { 0x62AA, 96461 }, - { 0x62AB, 96463 }, - { 0x62AC, 96465 }, - { 0x62AD, 96467 }, - { 0x62AE, 96469 }, - { 0x62AF, 96471 }, - { 0x62B0, 96473 }, - { 0x62B1, 96475 }, - { 0x62B2, 96477 }, - { 0x62B3, 96479 }, - { 0x62B4, 96481 }, - { 0x62B5, 96483 }, - { 0x62B6, 96485 }, - { 0x62B7, 96487 }, - { 0x62B8, 96489 }, - { 0x62B9, 96491 }, - { 0x62BA, 96493 }, - { 0x62BB, 96495 }, - { 0x62BC, 96497 }, - { 0x62BD, 96499 }, - { 0x62BE, 96501 }, - { 0x62BF, 96503 }, - { 0x62C0, 96505 }, - { 0x62C1, 96507 }, - { 0x62C2, 96509 }, - { 0x62C3, 96511 }, - { 0x62C4, 96513 }, - { 0x62C5, 96515 }, - { 0x62C6, 96517 }, - { 0x62C7, 96519 }, - { 0x62C8, 96521 }, - { 0x62C9, 96523 }, - { 0x62CA, 96525 }, - { 0x62CB, 96527 }, - { 0x62CC, 96529 }, - { 0x62CD, 96531 }, - { 0x62CE, 96533 }, - { 0x62CF, 96535 }, - { 0x62D0, 96537 }, - { 0x62D1, 96539 }, - { 0x62D2, 96541 }, - { 0x62D3, 96543 }, - { 0x62D4, 96545 }, - { 0x62D5, 96547 }, - { 0x62D6, 96549 }, - { 0x62D7, 96551 }, - { 0x62D8, 96553 }, - { 0x62D9, 96555 }, - { 0x62DA, 96557 }, - { 0x62DB, 96559 }, - { 0x62DC, 96561 }, - { 0x62DD, 96563 }, - { 0x62DE, 96565 }, - { 0x62DF, 96567 }, - { 0x62E0, 96569 }, - { 0x62E1, 96571 }, - { 0x62E2, 96573 }, - { 0x62E3, 96575 }, - { 0x62E4, 96577 }, - { 0x62E5, 96579 }, - { 0x62E6, 96581 }, - { 0x62E7, 96583 }, - { 0x62E8, 96585 }, - { 0x62E9, 96587 }, - { 0x62EA, 96589 }, - { 0x62EB, 96591 }, - { 0x62EC, 96593 }, - { 0x62ED, 96595 }, - { 0x62EE, 96597 }, - { 0x62EF, 96599 }, - { 0x62F0, 96601 }, - { 0x62F1, 96603 }, - { 0x62F2, 96605 }, - { 0x62F3, 96607 }, - { 0x62F4, 96609 }, - { 0x62F5, 96611 }, - { 0x62F6, 96613 }, - { 0x62F7, 96615 }, - { 0x62F8, 96617 }, - { 0x62F9, 96619 }, - { 0x62FA, 96621 }, - { 0x62FB, 96623 }, - { 0x62FC, 96625 }, - { 0x62FD, 96627 }, - { 0x62FE, 96629 }, - { 0x62FF, 96631 }, - { 0x6300, 96633 }, - { 0x6301, 96635 }, - { 0x6302, 96637 }, - { 0x6303, 96639 }, - { 0x6304, 96641 }, - { 0x6305, 96643 }, - { 0x6306, 96645 }, - { 0x6307, 96647 }, - { 0x6308, 96649 }, - { 0x6309, 96651 }, - { 0x630A, 96653 }, - { 0x630B, 96655 }, - { 0x630C, 96657 }, - { 0x630D, 96659 }, - { 0x630E, 96661 }, - { 0x630F, 96663 }, - { 0x6310, 96665 }, - { 0x6311, 96667 }, - { 0x6312, 96669 }, - { 0x6313, 96671 }, - { 0x6314, 96673 }, - { 0x6315, 96675 }, - { 0x6316, 96677 }, - { 0x6317, 96679 }, - { 0x6318, 96681 }, - { 0x6319, 96683 }, - { 0x631A, 96685 }, - { 0x631B, 96687 }, - { 0x631C, 96689 }, - { 0x631D, 96691 }, - { 0x631E, 96693 }, - { 0x631F, 96695 }, - { 0x6320, 96697 }, - { 0x6321, 96699 }, - { 0x6322, 96701 }, - { 0x6323, 96703 }, - { 0x6324, 96705 }, - { 0x6325, 96707 }, - { 0x6326, 96709 }, - { 0x6327, 96711 }, - { 0x6328, 96713 }, - { 0x6329, 96715 }, - { 0x632A, 96717 }, - { 0x632B, 96719 }, - { 0x632C, 96721 }, - { 0x632D, 96723 }, - { 0x632E, 96725 }, - { 0x632F, 96727 }, - { 0x6330, 96729 }, - { 0x6331, 96731 }, - { 0x6332, 96733 }, - { 0x6333, 96735 }, - { 0x6334, 96737 }, - { 0x6335, 96739 }, - { 0x6336, 96741 }, - { 0x6337, 96743 }, - { 0x6338, 96745 }, - { 0x6339, 96747 }, - { 0x633A, 96749 }, - { 0x633B, 96751 }, - { 0x633C, 96753 }, - { 0x633D, 96755 }, - { 0x633E, 96757 }, - { 0x633F, 96759 }, - { 0x6340, 96761 }, - { 0x6341, 96763 }, - { 0x6342, 96765 }, - { 0x6343, 96767 }, - { 0x6344, 96769 }, - { 0x6345, 96771 }, - { 0x6346, 96773 }, - { 0x6347, 96775 }, - { 0x6348, 96777 }, - { 0x6349, 96779 }, - { 0x634A, 96781 }, - { 0x634B, 96783 }, - { 0x634C, 96785 }, - { 0x634D, 96787 }, - { 0x634E, 96789 }, - { 0x634F, 96791 }, - { 0x6350, 96793 }, - { 0x6351, 96795 }, - { 0x6352, 96797 }, - { 0x6353, 96799 }, - { 0x6354, 96801 }, - { 0x6355, 96803 }, - { 0x6356, 96805 }, - { 0x6357, 96807 }, - { 0x6358, 96809 }, - { 0x6359, 96811 }, - { 0x635A, 96813 }, - { 0x635B, 96815 }, - { 0x635C, 96817 }, - { 0x635D, 96819 }, - { 0x635E, 96821 }, - { 0x635F, 96823 }, - { 0x6360, 96825 }, - { 0x6361, 96827 }, - { 0x6362, 96829 }, - { 0x6363, 96831 }, - { 0x6364, 96833 }, - { 0x6365, 96835 }, - { 0x6366, 96837 }, - { 0x6367, 96839 }, - { 0x6368, 96841 }, - { 0x6369, 96843 }, - { 0x636A, 96845 }, - { 0x636B, 96847 }, - { 0x636C, 96849 }, - { 0x636D, 96851 }, - { 0x636E, 96853 }, - { 0x636F, 96855 }, - { 0x6370, 96857 }, - { 0x6371, 96859 }, - { 0x6372, 96861 }, - { 0x6373, 96863 }, - { 0x6374, 96865 }, - { 0x6375, 96867 }, - { 0x6376, 96869 }, - { 0x6377, 96871 }, - { 0x6378, 96873 }, - { 0x6379, 96875 }, - { 0x637A, 96877 }, - { 0x637B, 96879 }, - { 0x637C, 96881 }, - { 0x637D, 96883 }, - { 0x637E, 96885 }, - { 0x637F, 96887 }, - { 0x6380, 96889 }, - { 0x6381, 96891 }, - { 0x6382, 96893 }, - { 0x6383, 96895 }, - { 0x6384, 96897 }, - { 0x6385, 96899 }, - { 0x6386, 96901 }, - { 0x6387, 96903 }, - { 0x6388, 96905 }, - { 0x6389, 96907 }, - { 0x638A, 96909 }, - { 0x638B, 96911 }, - { 0x638C, 96913 }, - { 0x638D, 96915 }, - { 0x638E, 96917 }, - { 0x638F, 96919 }, - { 0x6390, 96921 }, - { 0x6391, 96923 }, - { 0x6392, 96925 }, - { 0x6393, 96927 }, - { 0x6394, 96929 }, - { 0x6395, 96931 }, - { 0x6396, 96933 }, - { 0x6397, 96935 }, - { 0x6398, 96937 }, - { 0x6399, 96939 }, - { 0x639A, 96941 }, - { 0x639B, 96943 }, - { 0x639C, 96945 }, - { 0x639D, 96947 }, - { 0x639E, 96949 }, - { 0x639F, 96951 }, - { 0x63A0, 96953 }, - { 0x63A1, 96955 }, - { 0x63A2, 96957 }, - { 0x63A3, 96959 }, - { 0x63A4, 96961 }, - { 0x63A5, 96963 }, - { 0x63A6, 96965 }, - { 0x63A7, 96967 }, - { 0x63A8, 96969 }, - { 0x63A9, 96971 }, - { 0x63AA, 96973 }, - { 0x63AB, 96975 }, - { 0x63AC, 96977 }, - { 0x63AD, 96979 }, - { 0x63AE, 96981 }, - { 0x63AF, 96983 }, - { 0x63B0, 96985 }, - { 0x63B1, 96987 }, - { 0x63B2, 96989 }, - { 0x63B3, 96991 }, - { 0x63B4, 96993 }, - { 0x63B5, 96995 }, - { 0x63B6, 96997 }, - { 0x63B7, 96999 }, - { 0x63B8, 97001 }, - { 0x63B9, 97003 }, - { 0x63BA, 97005 }, - { 0x63BB, 97007 }, - { 0x63BC, 97009 }, - { 0x63BD, 97011 }, - { 0x63BE, 97013 }, - { 0x63BF, 97015 }, - { 0x63C0, 97017 }, - { 0x63C1, 97019 }, - { 0x63C2, 97021 }, - { 0x63C3, 97023 }, - { 0x63C4, 97025 }, - { 0x63C5, 97027 }, - { 0x63C6, 97029 }, - { 0x63C7, 97031 }, - { 0x63C8, 97033 }, - { 0x63C9, 97035 }, - { 0x63CA, 97037 }, - { 0x63CB, 97039 }, - { 0x63CC, 97041 }, - { 0x63CD, 97043 }, - { 0x63CE, 97045 }, - { 0x63CF, 97047 }, - { 0x63D0, 97049 }, - { 0x63D1, 97051 }, - { 0x63D2, 97053 }, - { 0x63D3, 97055 }, - { 0x63D4, 97057 }, - { 0x63D5, 97059 }, - { 0x63D6, 97061 }, - { 0x63D7, 97063 }, - { 0x63D8, 97065 }, - { 0x63D9, 97067 }, - { 0x63DA, 97069 }, - { 0x63DB, 97071 }, - { 0x63DC, 97073 }, - { 0x63DD, 97075 }, - { 0x63DE, 97077 }, - { 0x63DF, 97079 }, - { 0x63E0, 97081 }, - { 0x63E1, 97083 }, - { 0x63E2, 97085 }, - { 0x63E3, 97087 }, - { 0x63E4, 97089 }, - { 0x63E5, 97091 }, - { 0x63E6, 97093 }, - { 0x63E7, 97095 }, - { 0x63E8, 97097 }, - { 0x63E9, 97099 }, - { 0x63EA, 97101 }, - { 0x63EB, 97103 }, - { 0x63EC, 97105 }, - { 0x63ED, 97107 }, - { 0x63EE, 97109 }, - { 0x63EF, 97111 }, - { 0x63F0, 97113 }, - { 0x63F1, 97115 }, - { 0x63F2, 97117 }, - { 0x63F3, 97119 }, - { 0x63F4, 97121 }, - { 0x63F5, 97123 }, - { 0x63F6, 97125 }, - { 0x63F7, 97127 }, - { 0x63F8, 97129 }, - { 0x63F9, 97131 }, - { 0x63FA, 97133 }, - { 0x63FB, 97135 }, - { 0x63FC, 97137 }, - { 0x63FD, 97139 }, - { 0x63FE, 97141 }, - { 0x63FF, 97143 }, - { 0x6400, 97145 }, - { 0x6401, 97147 }, - { 0x6402, 97149 }, - { 0x6403, 97151 }, - { 0x6404, 97153 }, - { 0x6405, 97155 }, - { 0x6406, 97157 }, - { 0x6407, 97159 }, - { 0x6408, 97161 }, - { 0x6409, 97163 }, - { 0x640A, 97165 }, - { 0x640B, 97167 }, - { 0x640C, 97169 }, - { 0x640D, 97171 }, - { 0x640E, 97173 }, - { 0x640F, 97175 }, - { 0x6410, 97177 }, - { 0x6411, 97179 }, - { 0x6412, 97181 }, - { 0x6413, 97183 }, - { 0x6414, 97185 }, - { 0x6415, 97187 }, - { 0x6416, 97189 }, - { 0x6417, 97191 }, - { 0x6418, 97193 }, - { 0x6419, 97195 }, - { 0x641A, 97197 }, - { 0x641B, 97199 }, - { 0x641C, 97201 }, - { 0x641D, 97203 }, - { 0x641E, 97205 }, - { 0x641F, 97207 }, - { 0x6420, 97209 }, - { 0x6421, 97211 }, - { 0x6422, 97213 }, - { 0x6423, 97215 }, - { 0x6424, 97217 }, - { 0x6425, 97219 }, - { 0x6426, 97221 }, - { 0x6427, 97223 }, - { 0x6428, 97225 }, - { 0x6429, 97227 }, - { 0x642A, 97229 }, - { 0x642B, 97231 }, - { 0x642C, 97233 }, - { 0x642D, 97235 }, - { 0x642E, 97237 }, - { 0x642F, 97239 }, - { 0x6430, 97241 }, - { 0x6431, 97243 }, - { 0x6432, 97245 }, - { 0x6433, 97247 }, - { 0x6434, 97249 }, - { 0x6435, 97251 }, - { 0x6436, 97253 }, - { 0x6437, 97255 }, - { 0x6438, 97257 }, - { 0x6439, 97259 }, - { 0x643A, 97261 }, - { 0x643B, 97263 }, - { 0x643C, 97265 }, - { 0x643D, 97267 }, - { 0x643E, 97269 }, - { 0x643F, 97271 }, - { 0x6440, 97273 }, - { 0x6441, 97275 }, - { 0x6442, 97277 }, - { 0x6443, 97279 }, - { 0x6444, 97281 }, - { 0x6445, 97283 }, - { 0x6446, 97285 }, - { 0x6447, 97287 }, - { 0x6448, 97289 }, - { 0x6449, 97291 }, - { 0x644A, 97293 }, - { 0x644B, 97295 }, - { 0x644C, 97297 }, - { 0x644D, 97299 }, - { 0x644E, 97301 }, - { 0x644F, 97303 }, - { 0x6450, 97305 }, - { 0x6451, 97307 }, - { 0x6452, 97309 }, - { 0x6453, 97311 }, - { 0x6454, 97313 }, - { 0x6455, 97315 }, - { 0x6456, 97317 }, - { 0x6457, 97319 }, - { 0x6458, 97321 }, - { 0x6459, 97323 }, - { 0x645A, 97325 }, - { 0x645B, 97327 }, - { 0x645C, 97329 }, - { 0x645D, 97331 }, - { 0x645E, 97333 }, - { 0x645F, 97335 }, - { 0x6460, 97337 }, - { 0x6461, 97339 }, - { 0x6462, 97341 }, - { 0x6463, 97343 }, - { 0x6464, 97345 }, - { 0x6465, 97347 }, - { 0x6466, 97349 }, - { 0x6467, 97351 }, - { 0x6468, 97353 }, - { 0x6469, 97355 }, - { 0x646A, 97357 }, - { 0x646B, 97359 }, - { 0x646C, 97361 }, - { 0x646D, 97363 }, - { 0x646E, 97365 }, - { 0x646F, 97367 }, - { 0x6470, 97369 }, - { 0x6471, 97371 }, - { 0x6472, 97373 }, - { 0x6473, 97375 }, - { 0x6474, 97377 }, - { 0x6475, 97379 }, - { 0x6476, 97381 }, - { 0x6477, 97383 }, - { 0x6478, 97385 }, - { 0x6479, 97387 }, - { 0x647A, 97389 }, - { 0x647B, 97391 }, - { 0x647C, 97393 }, - { 0x647D, 97395 }, - { 0x647E, 97397 }, - { 0x647F, 97399 }, - { 0x6480, 97401 }, - { 0x6481, 97403 }, - { 0x6482, 97405 }, - { 0x6483, 97407 }, - { 0x6484, 97409 }, - { 0x6485, 97411 }, - { 0x6486, 97413 }, - { 0x6487, 97415 }, - { 0x6488, 97417 }, - { 0x6489, 97419 }, - { 0x648A, 97421 }, - { 0x648B, 97423 }, - { 0x648C, 97425 }, - { 0x648D, 97427 }, - { 0x648E, 97429 }, - { 0x648F, 97431 }, - { 0x6490, 97433 }, - { 0x6491, 97435 }, - { 0x6492, 97437 }, - { 0x6493, 97439 }, - { 0x6494, 97441 }, - { 0x6495, 97443 }, - { 0x6496, 97445 }, - { 0x6497, 97447 }, - { 0x6498, 97449 }, - { 0x6499, 97451 }, - { 0x649A, 97453 }, - { 0x649B, 97455 }, - { 0x649C, 97457 }, - { 0x649D, 97459 }, - { 0x649E, 97461 }, - { 0x649F, 97463 }, - { 0x64A0, 97465 }, - { 0x64A1, 97467 }, - { 0x64A2, 97469 }, - { 0x64A3, 97471 }, - { 0x64A4, 97473 }, - { 0x64A5, 97475 }, - { 0x64A6, 97477 }, - { 0x64A7, 97479 }, - { 0x64A8, 97481 }, - { 0x64A9, 97483 }, - { 0x64AA, 97485 }, - { 0x64AB, 97487 }, - { 0x64AC, 97489 }, - { 0x64AD, 97491 }, - { 0x64AE, 97493 }, - { 0x64AF, 97495 }, - { 0x64B0, 97497 }, - { 0x64B1, 97499 }, - { 0x64B2, 97501 }, - { 0x64B3, 97503 }, - { 0x64B4, 97505 }, - { 0x64B5, 97507 }, - { 0x64B6, 97509 }, - { 0x64B7, 97511 }, - { 0x64B8, 97513 }, - { 0x64B9, 97515 }, - { 0x64BA, 97517 }, - { 0x64BB, 97519 }, - { 0x64BC, 97521 }, - { 0x64BD, 97523 }, - { 0x64BE, 97525 }, - { 0x64BF, 97527 }, - { 0x64C0, 97529 }, - { 0x64C1, 97531 }, - { 0x64C2, 97533 }, - { 0x64C3, 97535 }, - { 0x64C4, 97537 }, - { 0x64C5, 97539 }, - { 0x64C6, 97541 }, - { 0x64C7, 97543 }, - { 0x64C8, 97545 }, - { 0x64C9, 97547 }, - { 0x64CA, 97549 }, - { 0x64CB, 97551 }, - { 0x64CC, 97553 }, - { 0x64CD, 97555 }, - { 0x64CE, 97557 }, - { 0x64CF, 97559 }, - { 0x64D0, 97561 }, - { 0x64D1, 97563 }, - { 0x64D2, 97565 }, - { 0x64D3, 97567 }, - { 0x64D4, 97569 }, - { 0x64D5, 97571 }, - { 0x64D6, 97573 }, - { 0x64D7, 97575 }, - { 0x64D8, 97577 }, - { 0x64D9, 97579 }, - { 0x64DA, 97581 }, - { 0x64DB, 97583 }, - { 0x64DC, 97585 }, - { 0x64DD, 97587 }, - { 0x64DE, 97589 }, - { 0x64DF, 97591 }, - { 0x64E0, 97593 }, - { 0x64E1, 97595 }, - { 0x64E2, 97597 }, - { 0x64E3, 97599 }, - { 0x64E4, 97601 }, - { 0x64E5, 97603 }, - { 0x64E6, 97605 }, - { 0x64E7, 97607 }, - { 0x64E8, 97609 }, - { 0x64E9, 97611 }, - { 0x64EA, 97613 }, - { 0x64EB, 97615 }, - { 0x64EC, 97617 }, - { 0x64ED, 97619 }, - { 0x64EE, 97621 }, - { 0x64EF, 97623 }, - { 0x64F0, 97625 }, - { 0x64F1, 97627 }, - { 0x64F2, 97629 }, - { 0x64F3, 97631 }, - { 0x64F4, 97633 }, - { 0x64F5, 97635 }, - { 0x64F6, 97637 }, - { 0x64F7, 97639 }, - { 0x64F8, 97641 }, - { 0x64F9, 97643 }, - { 0x64FA, 97645 }, - { 0x64FB, 97647 }, - { 0x64FC, 97649 }, - { 0x64FD, 97651 }, - { 0x64FE, 97653 }, - { 0x64FF, 97655 }, - { 0x6500, 97657 }, - { 0x6501, 97659 }, - { 0x6502, 97661 }, - { 0x6503, 97663 }, - { 0x6504, 97665 }, - { 0x6505, 97667 }, - { 0x6506, 97669 }, - { 0x6507, 97671 }, - { 0x6508, 97673 }, - { 0x6509, 97675 }, - { 0x650A, 97677 }, - { 0x650B, 97679 }, - { 0x650C, 97681 }, - { 0x650D, 97683 }, - { 0x650E, 97685 }, - { 0x650F, 97687 }, - { 0x6510, 97689 }, - { 0x6511, 97691 }, - { 0x6512, 97693 }, - { 0x6513, 97695 }, - { 0x6514, 97697 }, - { 0x6515, 97699 }, - { 0x6516, 97701 }, - { 0x6517, 97703 }, - { 0x6518, 97705 }, - { 0x6519, 97707 }, - { 0x651A, 97709 }, - { 0x651B, 97711 }, - { 0x651C, 97713 }, - { 0x651D, 97715 }, - { 0x651E, 97717 }, - { 0x651F, 97719 }, - { 0x6520, 97721 }, - { 0x6521, 97723 }, - { 0x6522, 97725 }, - { 0x6523, 97727 }, - { 0x6524, 97729 }, - { 0x6525, 97731 }, - { 0x6526, 97733 }, - { 0x6527, 97735 }, - { 0x6528, 97737 }, - { 0x6529, 97739 }, - { 0x652A, 97741 }, - { 0x652B, 97743 }, - { 0x652C, 97745 }, - { 0x652D, 97747 }, - { 0x652E, 97749 }, - { 0x652F, 97751 }, - { 0x6530, 97753 }, - { 0x6531, 97755 }, - { 0x6532, 97757 }, - { 0x6533, 97759 }, - { 0x6534, 97761 }, - { 0x6535, 97763 }, - { 0x6536, 97765 }, - { 0x6537, 97767 }, - { 0x6538, 97769 }, - { 0x6539, 97771 }, - { 0x653A, 97773 }, - { 0x653B, 97775 }, - { 0x653C, 97777 }, - { 0x653D, 97779 }, - { 0x653E, 97781 }, - { 0x653F, 97783 }, - { 0x6540, 97785 }, - { 0x6541, 97787 }, - { 0x6542, 97789 }, - { 0x6543, 97791 }, - { 0x6544, 97793 }, - { 0x6545, 97795 }, - { 0x6546, 97797 }, - { 0x6547, 97799 }, - { 0x6548, 97801 }, - { 0x6549, 97803 }, - { 0x654A, 97805 }, - { 0x654B, 97807 }, - { 0x654C, 97809 }, - { 0x654D, 97811 }, - { 0x654E, 97813 }, - { 0x654F, 97815 }, - { 0x6550, 97817 }, - { 0x6551, 97819 }, - { 0x6552, 97821 }, - { 0x6553, 97823 }, - { 0x6554, 97825 }, - { 0x6555, 97827 }, - { 0x6556, 97829 }, - { 0x6557, 97831 }, - { 0x6558, 97833 }, - { 0x6559, 97835 }, - { 0x655A, 97837 }, - { 0x655B, 97839 }, - { 0x655C, 97841 }, - { 0x655D, 97843 }, - { 0x655E, 97845 }, - { 0x655F, 97847 }, - { 0x6560, 97849 }, - { 0x6561, 97851 }, - { 0x6562, 97853 }, - { 0x6563, 97855 }, - { 0x6564, 97857 }, - { 0x6565, 97859 }, - { 0x6566, 97861 }, - { 0x6567, 97863 }, - { 0x6568, 97865 }, - { 0x6569, 97867 }, - { 0x656A, 97869 }, - { 0x656B, 97871 }, - { 0x656C, 97873 }, - { 0x656D, 97875 }, - { 0x656E, 97877 }, - { 0x656F, 97879 }, - { 0x6570, 97881 }, - { 0x6571, 97883 }, - { 0x6572, 97885 }, - { 0x6573, 97887 }, - { 0x6574, 97889 }, - { 0x6575, 97891 }, - { 0x6576, 97893 }, - { 0x6577, 97895 }, - { 0x6578, 97897 }, - { 0x6579, 97899 }, - { 0x657A, 97901 }, - { 0x657B, 97903 }, - { 0x657C, 97905 }, - { 0x657D, 97907 }, - { 0x657E, 97909 }, - { 0x657F, 97911 }, - { 0x6580, 97913 }, - { 0x6581, 97915 }, - { 0x6582, 97917 }, - { 0x6583, 97919 }, - { 0x6584, 97921 }, - { 0x6585, 97923 }, - { 0x6586, 97925 }, - { 0x6587, 97927 }, - { 0x6588, 97929 }, - { 0x6589, 97931 }, - { 0x658A, 97933 }, - { 0x658B, 97935 }, - { 0x658C, 97937 }, - { 0x658D, 97939 }, - { 0x658E, 97941 }, - { 0x658F, 97943 }, - { 0x6590, 97945 }, - { 0x6591, 97947 }, - { 0x6592, 97949 }, - { 0x6593, 97951 }, - { 0x6594, 97953 }, - { 0x6595, 97955 }, - { 0x6596, 97957 }, - { 0x6597, 97959 }, - { 0x6598, 97961 }, - { 0x6599, 97963 }, - { 0x659A, 97965 }, - { 0x659B, 97967 }, - { 0x659C, 97969 }, - { 0x659D, 97971 }, - { 0x659E, 97973 }, - { 0x659F, 97975 }, - { 0x65A0, 97977 }, - { 0x65A1, 97979 }, - { 0x65A2, 97981 }, - { 0x65A3, 97983 }, - { 0x65A4, 97985 }, - { 0x65A5, 97987 }, - { 0x65A6, 97989 }, - { 0x65A7, 97991 }, - { 0x65A8, 97993 }, - { 0x65A9, 97995 }, - { 0x65AA, 97997 }, - { 0x65AB, 97999 }, - { 0x65AC, 98001 }, - { 0x65AD, 98003 }, - { 0x65AE, 98005 }, - { 0x65AF, 98007 }, - { 0x65B0, 98009 }, - { 0x65B1, 98011 }, - { 0x65B2, 98013 }, - { 0x65B3, 98015 }, - { 0x65B4, 98017 }, - { 0x65B5, 98019 }, - { 0x65B6, 98021 }, - { 0x65B7, 98023 }, - { 0x65B8, 98025 }, - { 0x65B9, 98027 }, - { 0x65BA, 98029 }, - { 0x65BB, 98031 }, - { 0x65BC, 98033 }, - { 0x65BD, 98035 }, - { 0x65BE, 98037 }, - { 0x65BF, 98039 }, - { 0x65C0, 98041 }, - { 0x65C1, 98043 }, - { 0x65C2, 98045 }, - { 0x65C3, 98047 }, - { 0x65C4, 98049 }, - { 0x65C5, 98051 }, - { 0x65C6, 98053 }, - { 0x65C7, 98055 }, - { 0x65C8, 98057 }, - { 0x65C9, 98059 }, - { 0x65CA, 98061 }, - { 0x65CB, 98063 }, - { 0x65CC, 98065 }, - { 0x65CD, 98067 }, - { 0x65CE, 98069 }, - { 0x65CF, 98071 }, - { 0x65D0, 98073 }, - { 0x65D1, 98075 }, - { 0x65D2, 98077 }, - { 0x65D3, 98079 }, - { 0x65D4, 98081 }, - { 0x65D5, 98083 }, - { 0x65D6, 98085 }, - { 0x65D7, 98087 }, - { 0x65D8, 98089 }, - { 0x65D9, 98091 }, - { 0x65DA, 98093 }, - { 0x65DB, 98095 }, - { 0x65DC, 98097 }, - { 0x65DD, 98099 }, - { 0x65DE, 98101 }, - { 0x65DF, 98103 }, - { 0x65E0, 98105 }, - { 0x65E1, 98107 }, - { 0x65E2, 98109 }, - { 0x65E3, 98111 }, - { 0x65E4, 98113 }, - { 0x65E5, 98115 }, - { 0x65E6, 98117 }, - { 0x65E7, 98119 }, - { 0x65E8, 98121 }, - { 0x65E9, 98123 }, - { 0x65EA, 98125 }, - { 0x65EB, 98127 }, - { 0x65EC, 98129 }, - { 0x65ED, 98131 }, - { 0x65EE, 98133 }, - { 0x65EF, 98135 }, - { 0x65F0, 98137 }, - { 0x65F1, 98139 }, - { 0x65F2, 98141 }, - { 0x65F3, 98143 }, - { 0x65F4, 98145 }, - { 0x65F5, 98147 }, - { 0x65F6, 98149 }, - { 0x65F7, 98151 }, - { 0x65F8, 98153 }, - { 0x65F9, 98155 }, - { 0x65FA, 98157 }, - { 0x65FB, 98159 }, - { 0x65FC, 98161 }, - { 0x65FD, 98163 }, - { 0x65FE, 98165 }, - { 0x65FF, 98167 }, - { 0x6600, 98169 }, - { 0x6601, 98171 }, - { 0x6602, 98173 }, - { 0x6603, 98175 }, - { 0x6604, 98177 }, - { 0x6605, 98179 }, - { 0x6606, 98181 }, - { 0x6607, 98183 }, - { 0x6608, 98185 }, - { 0x6609, 98187 }, - { 0x660A, 98189 }, - { 0x660B, 98191 }, - { 0x660C, 98193 }, - { 0x660D, 98195 }, - { 0x660E, 98197 }, - { 0x660F, 98199 }, - { 0x6610, 98201 }, - { 0x6611, 98203 }, - { 0x6612, 98205 }, - { 0x6613, 98207 }, - { 0x6614, 98209 }, - { 0x6615, 98211 }, - { 0x6616, 98213 }, - { 0x6617, 98215 }, - { 0x6618, 98217 }, - { 0x6619, 98219 }, - { 0x661A, 98221 }, - { 0x661B, 98223 }, - { 0x661C, 98225 }, - { 0x661D, 98227 }, - { 0x661E, 98229 }, - { 0x661F, 98231 }, - { 0x6620, 98233 }, - { 0x6621, 98235 }, - { 0x6622, 98237 }, - { 0x6623, 98239 }, - { 0x6624, 98241 }, - { 0x6625, 98243 }, - { 0x6626, 98245 }, - { 0x6627, 98247 }, - { 0x6628, 98249 }, - { 0x6629, 98251 }, - { 0x662A, 98253 }, - { 0x662B, 98255 }, - { 0x662C, 98257 }, - { 0x662D, 98259 }, - { 0x662E, 98261 }, - { 0x662F, 98263 }, - { 0x6630, 98265 }, - { 0x6631, 98267 }, - { 0x6632, 98269 }, - { 0x6633, 98271 }, - { 0x6634, 98273 }, - { 0x6635, 98275 }, - { 0x6636, 98277 }, - { 0x6637, 98279 }, - { 0x6638, 98281 }, - { 0x6639, 98283 }, - { 0x663A, 98285 }, - { 0x663B, 98287 }, - { 0x663C, 98289 }, - { 0x663D, 98291 }, - { 0x663E, 98293 }, - { 0x663F, 98295 }, - { 0x6640, 98297 }, - { 0x6641, 98299 }, - { 0x6642, 98301 }, - { 0x6643, 98303 }, - { 0x6644, 98305 }, - { 0x6645, 98307 }, - { 0x6646, 98309 }, - { 0x6647, 98311 }, - { 0x6648, 98313 }, - { 0x6649, 98315 }, - { 0x664A, 98317 }, - { 0x664B, 98319 }, - { 0x664C, 98321 }, - { 0x664D, 98323 }, - { 0x664E, 98325 }, - { 0x664F, 98327 }, - { 0x6650, 98329 }, - { 0x6651, 98331 }, - { 0x6652, 98333 }, - { 0x6653, 98335 }, - { 0x6654, 98337 }, - { 0x6655, 98339 }, - { 0x6656, 98341 }, - { 0x6657, 98343 }, - { 0x6658, 98345 }, - { 0x6659, 98347 }, - { 0x665A, 98349 }, - { 0x665B, 98351 }, - { 0x665C, 98353 }, - { 0x665D, 98355 }, - { 0x665E, 98357 }, - { 0x665F, 98359 }, - { 0x6660, 98361 }, - { 0x6661, 98363 }, - { 0x6662, 98365 }, - { 0x6663, 98367 }, - { 0x6664, 98369 }, - { 0x6665, 98371 }, - { 0x6666, 98373 }, - { 0x6667, 98375 }, - { 0x6668, 98377 }, - { 0x6669, 98379 }, - { 0x666A, 98381 }, - { 0x666B, 98383 }, - { 0x666C, 98385 }, - { 0x666D, 98387 }, - { 0x666E, 98389 }, - { 0x666F, 98391 }, - { 0x6670, 98393 }, - { 0x6671, 98395 }, - { 0x6672, 98397 }, - { 0x6673, 98399 }, - { 0x6674, 98401 }, - { 0x6675, 98403 }, - { 0x6676, 98405 }, - { 0x6677, 98407 }, - { 0x6678, 98409 }, - { 0x6679, 98411 }, - { 0x667A, 98413 }, - { 0x667B, 98415 }, - { 0x667C, 98417 }, - { 0x667D, 98419 }, - { 0x667E, 98421 }, - { 0x667F, 98423 }, - { 0x6680, 98425 }, - { 0x6681, 98427 }, - { 0x6682, 98429 }, - { 0x6683, 98431 }, - { 0x6684, 98433 }, - { 0x6685, 98435 }, - { 0x6686, 98437 }, - { 0x6687, 98439 }, - { 0x6688, 98441 }, - { 0x6689, 98443 }, - { 0x668A, 98445 }, - { 0x668B, 98447 }, - { 0x668C, 98449 }, - { 0x668D, 98451 }, - { 0x668E, 98453 }, - { 0x668F, 98455 }, - { 0x6690, 98457 }, - { 0x6691, 98459 }, - { 0x6692, 98461 }, - { 0x6693, 98463 }, - { 0x6694, 98465 }, - { 0x6695, 98467 }, - { 0x6696, 98469 }, - { 0x6697, 98471 }, - { 0x6698, 98473 }, - { 0x6699, 98475 }, - { 0x669A, 98477 }, - { 0x669B, 98479 }, - { 0x669C, 98481 }, - { 0x669D, 98483 }, - { 0x669E, 98485 }, - { 0x669F, 98487 }, - { 0x66A0, 98489 }, - { 0x66A1, 98491 }, - { 0x66A2, 98493 }, - { 0x66A3, 98495 }, - { 0x66A4, 98497 }, - { 0x66A5, 98499 }, - { 0x66A6, 98501 }, - { 0x66A7, 98503 }, - { 0x66A8, 98505 }, - { 0x66A9, 98507 }, - { 0x66AA, 98509 }, - { 0x66AB, 98511 }, - { 0x66AC, 98513 }, - { 0x66AD, 98515 }, - { 0x66AE, 98517 }, - { 0x66AF, 98519 }, - { 0x66B0, 98521 }, - { 0x66B1, 98523 }, - { 0x66B2, 98525 }, - { 0x66B3, 98527 }, - { 0x66B4, 98529 }, - { 0x66B5, 98531 }, - { 0x66B6, 98533 }, - { 0x66B7, 98535 }, - { 0x66B8, 98537 }, - { 0x66B9, 98539 }, - { 0x66BA, 98541 }, - { 0x66BB, 98543 }, - { 0x66BC, 98545 }, - { 0x66BD, 98547 }, - { 0x66BE, 98549 }, - { 0x66BF, 98551 }, - { 0x66C0, 98553 }, - { 0x66C1, 98555 }, - { 0x66C2, 98557 }, - { 0x66C3, 98559 }, - { 0x66C4, 98561 }, - { 0x66C5, 98563 }, - { 0x66C6, 98565 }, - { 0x66C7, 98567 }, - { 0x66C8, 98569 }, - { 0x66C9, 98571 }, - { 0x66CA, 98573 }, - { 0x66CB, 98575 }, - { 0x66CC, 98577 }, - { 0x66CD, 98579 }, - { 0x66CE, 98581 }, - { 0x66CF, 98583 }, - { 0x66D0, 98585 }, - { 0x66D1, 98587 }, - { 0x66D2, 98589 }, - { 0x66D3, 98591 }, - { 0x66D4, 98593 }, - { 0x66D5, 98595 }, - { 0x66D6, 98597 }, - { 0x66D7, 98599 }, - { 0x66D8, 98601 }, - { 0x66D9, 98603 }, - { 0x66DA, 98605 }, - { 0x66DB, 98607 }, - { 0x66DC, 98609 }, - { 0x66DD, 98611 }, - { 0x66DE, 98613 }, - { 0x66DF, 98615 }, - { 0x66E0, 98617 }, - { 0x66E1, 98619 }, - { 0x66E2, 98621 }, - { 0x66E3, 98623 }, - { 0x66E4, 98625 }, - { 0x66E5, 98627 }, - { 0x66E6, 98629 }, - { 0x66E7, 98631 }, - { 0x66E8, 98633 }, - { 0x66E9, 98635 }, - { 0x66EA, 98637 }, - { 0x66EB, 98639 }, - { 0x66EC, 98641 }, - { 0x66ED, 98643 }, - { 0x66EE, 98645 }, - { 0x66EF, 98647 }, - { 0x66F0, 98649 }, - { 0x66F1, 98651 }, - { 0x66F2, 98653 }, - { 0x66F3, 98655 }, - { 0x66F4, 98657 }, - { 0x66F5, 98659 }, - { 0x66F6, 98661 }, - { 0x66F7, 98663 }, - { 0x66F8, 98665 }, - { 0x66F9, 98667 }, - { 0x66FA, 98669 }, - { 0x66FB, 98671 }, - { 0x66FC, 98673 }, - { 0x66FD, 98675 }, - { 0x66FE, 98677 }, - { 0x66FF, 98679 }, - { 0x6700, 98681 }, - { 0x6701, 98683 }, - { 0x6702, 98685 }, - { 0x6703, 98687 }, - { 0x6704, 98689 }, - { 0x6705, 98691 }, - { 0x6706, 98693 }, - { 0x6707, 98695 }, - { 0x6708, 98697 }, - { 0x6709, 98699 }, - { 0x670A, 98701 }, - { 0x670B, 98703 }, - { 0x670C, 98705 }, - { 0x670D, 98707 }, - { 0x670E, 98709 }, - { 0x670F, 98711 }, - { 0x6710, 98713 }, - { 0x6711, 98715 }, - { 0x6712, 98717 }, - { 0x6713, 98719 }, - { 0x6714, 98721 }, - { 0x6715, 98723 }, - { 0x6716, 98725 }, - { 0x6717, 98727 }, - { 0x6718, 98729 }, - { 0x6719, 98731 }, - { 0x671A, 98733 }, - { 0x671B, 98735 }, - { 0x671C, 98737 }, - { 0x671D, 98739 }, - { 0x671E, 98741 }, - { 0x671F, 98743 }, - { 0x6720, 98745 }, - { 0x6721, 98747 }, - { 0x6722, 98749 }, - { 0x6723, 98751 }, - { 0x6724, 98753 }, - { 0x6725, 98755 }, - { 0x6726, 98757 }, - { 0x6727, 98759 }, - { 0x6728, 98761 }, - { 0x6729, 98763 }, - { 0x672A, 98765 }, - { 0x672B, 98767 }, - { 0x672C, 98769 }, - { 0x672D, 98771 }, - { 0x672E, 98773 }, - { 0x672F, 98775 }, - { 0x6730, 98777 }, - { 0x6731, 98779 }, - { 0x6732, 98781 }, - { 0x6733, 98783 }, - { 0x6734, 98785 }, - { 0x6735, 98787 }, - { 0x6736, 98789 }, - { 0x6737, 98791 }, - { 0x6738, 98793 }, - { 0x6739, 98795 }, - { 0x673A, 98797 }, - { 0x673B, 98799 }, - { 0x673C, 98801 }, - { 0x673D, 98803 }, - { 0x673E, 98805 }, - { 0x673F, 98807 }, - { 0x6740, 98809 }, - { 0x6741, 98811 }, - { 0x6742, 98813 }, - { 0x6743, 98815 }, - { 0x6744, 98817 }, - { 0x6745, 98819 }, - { 0x6746, 98821 }, - { 0x6747, 98823 }, - { 0x6748, 98825 }, - { 0x6749, 98827 }, - { 0x674A, 98829 }, - { 0x674B, 98831 }, - { 0x674C, 98833 }, - { 0x674D, 98835 }, - { 0x674E, 98837 }, - { 0x674F, 98839 }, - { 0x6750, 98841 }, - { 0x6751, 98843 }, - { 0x6752, 98845 }, - { 0x6753, 98847 }, - { 0x6754, 98849 }, - { 0x6755, 98851 }, - { 0x6756, 98853 }, - { 0x6757, 98855 }, - { 0x6758, 98857 }, - { 0x6759, 98859 }, - { 0x675A, 98861 }, - { 0x675B, 98863 }, - { 0x675C, 98865 }, - { 0x675D, 98867 }, - { 0x675E, 98869 }, - { 0x675F, 98871 }, - { 0x6760, 98873 }, - { 0x6761, 98875 }, - { 0x6762, 98877 }, - { 0x6763, 98879 }, - { 0x6764, 98881 }, - { 0x6765, 98883 }, - { 0x6766, 98885 }, - { 0x6767, 98887 }, - { 0x6768, 98889 }, - { 0x6769, 98891 }, - { 0x676A, 98893 }, - { 0x676B, 98895 }, - { 0x676C, 98897 }, - { 0x676D, 98899 }, - { 0x676E, 98901 }, - { 0x676F, 98903 }, - { 0x6770, 98905 }, - { 0x6771, 98907 }, - { 0x6772, 98909 }, - { 0x6773, 98911 }, - { 0x6774, 98913 }, - { 0x6775, 98915 }, - { 0x6776, 98917 }, - { 0x6777, 98919 }, - { 0x6778, 98921 }, - { 0x6779, 98923 }, - { 0x677A, 98925 }, - { 0x677B, 98927 }, - { 0x677C, 98929 }, - { 0x677D, 98931 }, - { 0x677E, 98933 }, - { 0x677F, 98935 }, - { 0x6780, 98937 }, - { 0x6781, 98939 }, - { 0x6782, 98941 }, - { 0x6783, 98943 }, - { 0x6784, 98945 }, - { 0x6785, 98947 }, - { 0x6786, 98949 }, - { 0x6787, 98951 }, - { 0x6788, 98953 }, - { 0x6789, 98955 }, - { 0x678A, 98957 }, - { 0x678B, 98959 }, - { 0x678C, 98961 }, - { 0x678D, 98963 }, - { 0x678E, 98965 }, - { 0x678F, 98967 }, - { 0x6790, 98969 }, - { 0x6791, 98971 }, - { 0x6792, 98973 }, - { 0x6793, 98975 }, - { 0x6794, 98977 }, - { 0x6795, 98979 }, - { 0x6796, 98981 }, - { 0x6797, 98983 }, - { 0x6798, 98985 }, - { 0x6799, 98987 }, - { 0x679A, 98989 }, - { 0x679B, 98991 }, - { 0x679C, 98993 }, - { 0x679D, 98995 }, - { 0x679E, 98997 }, - { 0x679F, 98999 }, - { 0x67A0, 99001 }, - { 0x67A1, 99003 }, - { 0x67A2, 99005 }, - { 0x67A3, 99007 }, - { 0x67A4, 99009 }, - { 0x67A5, 99011 }, - { 0x67A6, 99013 }, - { 0x67A7, 99015 }, - { 0x67A8, 99017 }, - { 0x67A9, 99019 }, - { 0x67AA, 99021 }, - { 0x67AB, 99023 }, - { 0x67AC, 99025 }, - { 0x67AD, 99027 }, - { 0x67AE, 99029 }, - { 0x67AF, 99031 }, - { 0x67B0, 99033 }, - { 0x67B1, 99035 }, - { 0x67B2, 99037 }, - { 0x67B3, 99039 }, - { 0x67B4, 99041 }, - { 0x67B5, 99043 }, - { 0x67B6, 99045 }, - { 0x67B7, 99047 }, - { 0x67B8, 99049 }, - { 0x67B9, 99051 }, - { 0x67BA, 99053 }, - { 0x67BB, 99055 }, - { 0x67BC, 99057 }, - { 0x67BD, 99059 }, - { 0x67BE, 99061 }, - { 0x67BF, 99063 }, - { 0x67C0, 99065 }, - { 0x67C1, 99067 }, - { 0x67C2, 99069 }, - { 0x67C3, 99071 }, - { 0x67C4, 99073 }, - { 0x67C5, 99075 }, - { 0x67C6, 99077 }, - { 0x67C7, 99079 }, - { 0x67C8, 99081 }, - { 0x67C9, 99083 }, - { 0x67CA, 99085 }, - { 0x67CB, 99087 }, - { 0x67CC, 99089 }, - { 0x67CD, 99091 }, - { 0x67CE, 99093 }, - { 0x67CF, 99095 }, - { 0x67D0, 99097 }, - { 0x67D1, 99099 }, - { 0x67D2, 99101 }, - { 0x67D3, 99103 }, - { 0x67D4, 99105 }, - { 0x67D5, 99107 }, - { 0x67D6, 99109 }, - { 0x67D7, 99111 }, - { 0x67D8, 99113 }, - { 0x67D9, 99115 }, - { 0x67DA, 99117 }, - { 0x67DB, 99119 }, - { 0x67DC, 99121 }, - { 0x67DD, 99123 }, - { 0x67DE, 99125 }, - { 0x67DF, 99127 }, - { 0x67E0, 99129 }, - { 0x67E1, 99131 }, - { 0x67E2, 99133 }, - { 0x67E3, 99135 }, - { 0x67E4, 99137 }, - { 0x67E5, 99139 }, - { 0x67E6, 99141 }, - { 0x67E7, 99143 }, - { 0x67E8, 99145 }, - { 0x67E9, 99147 }, - { 0x67EA, 99149 }, - { 0x67EB, 99151 }, - { 0x67EC, 99153 }, - { 0x67ED, 99155 }, - { 0x67EE, 99157 }, - { 0x67EF, 99159 }, - { 0x67F0, 99161 }, - { 0x67F1, 99163 }, - { 0x67F2, 99165 }, - { 0x67F3, 99167 }, - { 0x67F4, 99169 }, - { 0x67F5, 99171 }, - { 0x67F6, 99173 }, - { 0x67F7, 99175 }, - { 0x67F8, 99177 }, - { 0x67F9, 99179 }, - { 0x67FA, 99181 }, - { 0x67FB, 99183 }, - { 0x67FC, 99185 }, - { 0x67FD, 99187 }, - { 0x67FE, 99189 }, - { 0x67FF, 99191 }, - { 0x6800, 99193 }, - { 0x6801, 99195 }, - { 0x6802, 99197 }, - { 0x6803, 99199 }, - { 0x6804, 99201 }, - { 0x6805, 99203 }, - { 0x6806, 99205 }, - { 0x6807, 99207 }, - { 0x6808, 99209 }, - { 0x6809, 99211 }, - { 0x680A, 99213 }, - { 0x680B, 99215 }, - { 0x680C, 99217 }, - { 0x680D, 99219 }, - { 0x680E, 99221 }, - { 0x680F, 99223 }, - { 0x6810, 99225 }, - { 0x6811, 99227 }, - { 0x6812, 99229 }, - { 0x6813, 99231 }, - { 0x6814, 99233 }, - { 0x6815, 99235 }, - { 0x6816, 99237 }, - { 0x6817, 99239 }, - { 0x6818, 99241 }, - { 0x6819, 99243 }, - { 0x681A, 99245 }, - { 0x681B, 99247 }, - { 0x681C, 99249 }, - { 0x681D, 99251 }, - { 0x681E, 99253 }, - { 0x681F, 99255 }, - { 0x6820, 99257 }, - { 0x6821, 99259 }, - { 0x6822, 99261 }, - { 0x6823, 99263 }, - { 0x6824, 99265 }, - { 0x6825, 99267 }, - { 0x6826, 99269 }, - { 0x6827, 99271 }, - { 0x6828, 99273 }, - { 0x6829, 99275 }, - { 0x682A, 99277 }, - { 0x682B, 99279 }, - { 0x682C, 99281 }, - { 0x682D, 99283 }, - { 0x682E, 99285 }, - { 0x682F, 99287 }, - { 0x6830, 99289 }, - { 0x6831, 99291 }, - { 0x6832, 99293 }, - { 0x6833, 99295 }, - { 0x6834, 99297 }, - { 0x6835, 99299 }, - { 0x6836, 99301 }, - { 0x6837, 99303 }, - { 0x6838, 99305 }, - { 0x6839, 99307 }, - { 0x683A, 99309 }, - { 0x683B, 99311 }, - { 0x683C, 99313 }, - { 0x683D, 99315 }, - { 0x683E, 99317 }, - { 0x683F, 99319 }, - { 0x6840, 99321 }, - { 0x6841, 99323 }, - { 0x6842, 99325 }, - { 0x6843, 99327 }, - { 0x6844, 99329 }, - { 0x6845, 99331 }, - { 0x6846, 99333 }, - { 0x6847, 99335 }, - { 0x6848, 99337 }, - { 0x6849, 99339 }, - { 0x684A, 99341 }, - { 0x684B, 99343 }, - { 0x684C, 99345 }, - { 0x684D, 99347 }, - { 0x684E, 99349 }, - { 0x684F, 99351 }, - { 0x6850, 99353 }, - { 0x6851, 99355 }, - { 0x6852, 99357 }, - { 0x6853, 99359 }, - { 0x6854, 99361 }, - { 0x6855, 99363 }, - { 0x6856, 99365 }, - { 0x6857, 99367 }, - { 0x6858, 99369 }, - { 0x6859, 99371 }, - { 0x685A, 99373 }, - { 0x685B, 99375 }, - { 0x685C, 99377 }, - { 0x685D, 99379 }, - { 0x685E, 99381 }, - { 0x685F, 99383 }, - { 0x6860, 99385 }, - { 0x6861, 99387 }, - { 0x6862, 99389 }, - { 0x6863, 99391 }, - { 0x6864, 99393 }, - { 0x6865, 99395 }, - { 0x6866, 99397 }, - { 0x6867, 99399 }, - { 0x6868, 99401 }, - { 0x6869, 99403 }, - { 0x686A, 99405 }, - { 0x686B, 99407 }, - { 0x686C, 99409 }, - { 0x686D, 99411 }, - { 0x686E, 99413 }, - { 0x686F, 99415 }, - { 0x6870, 99417 }, - { 0x6871, 99419 }, - { 0x6872, 99421 }, - { 0x6873, 99423 }, - { 0x6874, 99425 }, - { 0x6875, 99427 }, - { 0x6876, 99429 }, - { 0x6877, 99431 }, - { 0x6878, 99433 }, - { 0x6879, 99435 }, - { 0x687A, 99437 }, - { 0x687B, 99439 }, - { 0x687C, 99441 }, - { 0x687D, 99443 }, - { 0x687E, 99445 }, - { 0x687F, 99447 }, - { 0x6880, 99449 }, - { 0x6881, 99451 }, - { 0x6882, 99453 }, - { 0x6883, 99455 }, - { 0x6884, 99457 }, - { 0x6885, 99459 }, - { 0x6886, 99461 }, - { 0x6887, 99463 }, - { 0x6888, 99465 }, - { 0x6889, 99467 }, - { 0x688A, 99469 }, - { 0x688B, 99471 }, - { 0x688C, 99473 }, - { 0x688D, 99475 }, - { 0x688E, 99477 }, - { 0x688F, 99479 }, - { 0x6890, 99481 }, - { 0x6891, 99483 }, - { 0x6892, 99485 }, - { 0x6893, 99487 }, - { 0x6894, 99489 }, - { 0x6895, 99491 }, - { 0x6896, 99493 }, - { 0x6897, 99495 }, - { 0x6898, 99497 }, - { 0x6899, 99499 }, - { 0x689A, 99501 }, - { 0x689B, 99503 }, - { 0x689C, 99505 }, - { 0x689D, 99507 }, - { 0x689E, 99509 }, - { 0x689F, 99511 }, - { 0x68A0, 99513 }, - { 0x68A1, 99515 }, - { 0x68A2, 99517 }, - { 0x68A3, 99519 }, - { 0x68A4, 99521 }, - { 0x68A5, 99523 }, - { 0x68A6, 99525 }, - { 0x68A7, 99527 }, - { 0x68A8, 99529 }, - { 0x68A9, 99531 }, - { 0x68AA, 99533 }, - { 0x68AB, 99535 }, - { 0x68AC, 99537 }, - { 0x68AD, 99539 }, - { 0x68AE, 99541 }, - { 0x68AF, 99543 }, - { 0x68B0, 99545 }, - { 0x68B1, 99547 }, - { 0x68B2, 99549 }, - { 0x68B3, 99551 }, - { 0x68B4, 99553 }, - { 0x68B5, 99555 }, - { 0x68B6, 99557 }, - { 0x68B7, 99559 }, - { 0x68B8, 99561 }, - { 0x68B9, 99563 }, - { 0x68BA, 99565 }, - { 0x68BB, 99567 }, - { 0x68BC, 99569 }, - { 0x68BD, 99571 }, - { 0x68BE, 99573 }, - { 0x68BF, 99575 }, - { 0x68C0, 99577 }, - { 0x68C1, 99579 }, - { 0x68C2, 99581 }, - { 0x68C3, 99583 }, - { 0x68C4, 99585 }, - { 0x68C5, 99587 }, - { 0x68C6, 99589 }, - { 0x68C7, 99591 }, - { 0x68C8, 99593 }, - { 0x68C9, 99595 }, - { 0x68CA, 99597 }, - { 0x68CB, 99599 }, - { 0x68CC, 99601 }, - { 0x68CD, 99603 }, - { 0x68CE, 99605 }, - { 0x68CF, 99607 }, - { 0x68D0, 99609 }, - { 0x68D1, 99611 }, - { 0x68D2, 99613 }, - { 0x68D3, 99615 }, - { 0x68D4, 99617 }, - { 0x68D5, 99619 }, - { 0x68D6, 99621 }, - { 0x68D7, 99623 }, - { 0x68D8, 99625 }, - { 0x68D9, 99627 }, - { 0x68DA, 99629 }, - { 0x68DB, 99631 }, - { 0x68DC, 99633 }, - { 0x68DD, 99635 }, - { 0x68DE, 99637 }, - { 0x68DF, 99639 }, - { 0x68E0, 99641 }, - { 0x68E1, 99643 }, - { 0x68E2, 99645 }, - { 0x68E3, 99647 }, - { 0x68E4, 99649 }, - { 0x68E5, 99651 }, - { 0x68E6, 99653 }, - { 0x68E7, 99655 }, - { 0x68E8, 99657 }, - { 0x68E9, 99659 }, - { 0x68EA, 99661 }, - { 0x68EB, 99663 }, - { 0x68EC, 99665 }, - { 0x68ED, 99667 }, - { 0x68EE, 99669 }, - { 0x68EF, 99671 }, - { 0x68F0, 99673 }, - { 0x68F1, 99675 }, - { 0x68F2, 99677 }, - { 0x68F3, 99679 }, - { 0x68F4, 99681 }, - { 0x68F5, 99683 }, - { 0x68F6, 99685 }, - { 0x68F7, 99687 }, - { 0x68F8, 99689 }, - { 0x68F9, 99691 }, - { 0x68FA, 99693 }, - { 0x68FB, 99695 }, - { 0x68FC, 99697 }, - { 0x68FD, 99699 }, - { 0x68FE, 99701 }, - { 0x68FF, 99703 }, - { 0x6900, 99705 }, - { 0x6901, 99707 }, - { 0x6902, 99709 }, - { 0x6903, 99711 }, - { 0x6904, 99713 }, - { 0x6905, 99715 }, - { 0x6906, 99717 }, - { 0x6907, 99719 }, - { 0x6908, 99721 }, - { 0x6909, 99723 }, - { 0x690A, 99725 }, - { 0x690B, 99727 }, - { 0x690C, 99729 }, - { 0x690D, 99731 }, - { 0x690E, 99733 }, - { 0x690F, 99735 }, - { 0x6910, 99737 }, - { 0x6911, 99739 }, - { 0x6912, 99741 }, - { 0x6913, 99743 }, - { 0x6914, 99745 }, - { 0x6915, 99747 }, - { 0x6916, 99749 }, - { 0x6917, 99751 }, - { 0x6918, 99753 }, - { 0x6919, 99755 }, - { 0x691A, 99757 }, - { 0x691B, 99759 }, - { 0x691C, 99761 }, - { 0x691D, 99763 }, - { 0x691E, 99765 }, - { 0x691F, 99767 }, - { 0x6920, 99769 }, - { 0x6921, 99771 }, - { 0x6922, 99773 }, - { 0x6923, 99775 }, - { 0x6924, 99777 }, - { 0x6925, 99779 }, - { 0x6926, 99781 }, - { 0x6927, 99783 }, - { 0x6928, 99785 }, - { 0x6929, 99787 }, - { 0x692A, 99789 }, - { 0x692B, 99791 }, - { 0x692C, 99793 }, - { 0x692D, 99795 }, - { 0x692E, 99797 }, - { 0x692F, 99799 }, - { 0x6930, 99801 }, - { 0x6931, 99803 }, - { 0x6932, 99805 }, - { 0x6933, 99807 }, - { 0x6934, 99809 }, - { 0x6935, 99811 }, - { 0x6936, 99813 }, - { 0x6937, 99815 }, - { 0x6938, 99817 }, - { 0x6939, 99819 }, - { 0x693A, 99821 }, - { 0x693B, 99823 }, - { 0x693C, 99825 }, - { 0x693D, 99827 }, - { 0x693E, 99829 }, - { 0x693F, 99831 }, - { 0x6940, 99833 }, - { 0x6941, 99835 }, - { 0x6942, 99837 }, - { 0x6943, 99839 }, - { 0x6944, 99841 }, - { 0x6945, 99843 }, - { 0x6946, 99845 }, - { 0x6947, 99847 }, - { 0x6948, 99849 }, - { 0x6949, 99851 }, - { 0x694A, 99853 }, - { 0x694B, 99855 }, - { 0x694C, 99857 }, - { 0x694D, 99859 }, - { 0x694E, 99861 }, - { 0x694F, 99863 }, - { 0x6950, 99865 }, - { 0x6951, 99867 }, - { 0x6952, 99869 }, - { 0x6953, 99871 }, - { 0x6954, 99873 }, - { 0x6955, 99875 }, - { 0x6956, 99877 }, - { 0x6957, 99879 }, - { 0x6958, 99881 }, - { 0x6959, 99883 }, - { 0x695A, 99885 }, - { 0x695B, 99887 }, - { 0x695C, 99889 }, - { 0x695D, 99891 }, - { 0x695E, 99893 }, - { 0x695F, 99895 }, - { 0x6960, 99897 }, - { 0x6961, 99899 }, - { 0x6962, 99901 }, - { 0x6963, 99903 }, - { 0x6964, 99905 }, - { 0x6965, 99907 }, - { 0x6966, 99909 }, - { 0x6967, 99911 }, - { 0x6968, 99913 }, - { 0x6969, 99915 }, - { 0x696A, 99917 }, - { 0x696B, 99919 }, - { 0x696C, 99921 }, - { 0x696D, 99923 }, - { 0x696E, 99925 }, - { 0x696F, 99927 }, - { 0x6970, 99929 }, - { 0x6971, 99931 }, - { 0x6972, 99933 }, - { 0x6973, 99935 }, - { 0x6974, 99937 }, - { 0x6975, 99939 }, - { 0x6976, 99941 }, - { 0x6977, 99943 }, - { 0x6978, 99945 }, - { 0x6979, 99947 }, - { 0x697A, 99949 }, - { 0x697B, 99951 }, - { 0x697C, 99953 }, - { 0x697D, 99955 }, - { 0x697E, 99957 }, - { 0x697F, 99959 }, - { 0x6980, 99961 }, - { 0x6981, 99963 }, - { 0x6982, 99965 }, - { 0x6983, 99967 }, - { 0x6984, 99969 }, - { 0x6985, 99971 }, - { 0x6986, 99973 }, - { 0x6987, 99975 }, - { 0x6988, 99977 }, - { 0x6989, 99979 }, - { 0x698A, 99981 }, - { 0x698B, 99983 }, - { 0x698C, 99985 }, - { 0x698D, 99987 }, - { 0x698E, 99989 }, - { 0x698F, 99991 }, - { 0x6990, 99993 }, - { 0x6991, 99995 }, - { 0x6992, 99997 }, - { 0x6993, 99999 }, - { 0x6994, 100001 }, - { 0x6995, 100003 }, - { 0x6996, 100005 }, - { 0x6997, 100007 }, - { 0x6998, 100009 }, - { 0x6999, 100011 }, - { 0x699A, 100013 }, - { 0x699B, 100015 }, - { 0x699C, 100017 }, - { 0x699D, 100019 }, - { 0x699E, 100021 }, - { 0x699F, 100023 }, - { 0x69A0, 100025 }, - { 0x69A1, 100027 }, - { 0x69A2, 100029 }, - { 0x69A3, 100031 }, - { 0x69A4, 100033 }, - { 0x69A5, 100035 }, - { 0x69A6, 100037 }, - { 0x69A7, 100039 }, - { 0x69A8, 100041 }, - { 0x69A9, 100043 }, - { 0x69AA, 100045 }, - { 0x69AB, 100047 }, - { 0x69AC, 100049 }, - { 0x69AD, 100051 }, - { 0x69AE, 100053 }, - { 0x69AF, 100055 }, - { 0x69B0, 100057 }, - { 0x69B1, 100059 }, - { 0x69B2, 100061 }, - { 0x69B3, 100063 }, - { 0x69B4, 100065 }, - { 0x69B5, 100067 }, - { 0x69B6, 100069 }, - { 0x69B7, 100071 }, - { 0x69B8, 100073 }, - { 0x69B9, 100075 }, - { 0x69BA, 100077 }, - { 0x69BB, 100079 }, - { 0x69BC, 100081 }, - { 0x69BD, 100083 }, - { 0x69BE, 100085 }, - { 0x69BF, 100087 }, - { 0x69C0, 100089 }, - { 0x69C1, 100091 }, - { 0x69C2, 100093 }, - { 0x69C3, 100095 }, - { 0x69C4, 100097 }, - { 0x69C5, 100099 }, - { 0x69C6, 100101 }, - { 0x69C7, 100103 }, - { 0x69C8, 100105 }, - { 0x69C9, 100107 }, - { 0x69CA, 100109 }, - { 0x69CB, 100111 }, - { 0x69CC, 100113 }, - { 0x69CD, 100115 }, - { 0x69CE, 100117 }, - { 0x69CF, 100119 }, - { 0x69D0, 100121 }, - { 0x69D1, 100123 }, - { 0x69D2, 100125 }, - { 0x69D3, 100127 }, - { 0x69D4, 100129 }, - { 0x69D5, 100131 }, - { 0x69D6, 100133 }, - { 0x69D7, 100135 }, - { 0x69D8, 100137 }, - { 0x69D9, 100139 }, - { 0x69DA, 100141 }, - { 0x69DB, 100143 }, - { 0x69DC, 100145 }, - { 0x69DD, 100147 }, - { 0x69DE, 100149 }, - { 0x69DF, 100151 }, - { 0x69E0, 100153 }, - { 0x69E1, 100155 }, - { 0x69E2, 100157 }, - { 0x69E3, 100159 }, - { 0x69E4, 100161 }, - { 0x69E5, 100163 }, - { 0x69E6, 100165 }, - { 0x69E7, 100167 }, - { 0x69E8, 100169 }, - { 0x69E9, 100171 }, - { 0x69EA, 100173 }, - { 0x69EB, 100175 }, - { 0x69EC, 100177 }, - { 0x69ED, 100179 }, - { 0x69EE, 100181 }, - { 0x69EF, 100183 }, - { 0x69F0, 100185 }, - { 0x69F1, 100187 }, - { 0x69F2, 100189 }, - { 0x69F3, 100191 }, - { 0x69F4, 100193 }, - { 0x69F5, 100195 }, - { 0x69F6, 100197 }, - { 0x69F7, 100199 }, - { 0x69F8, 100201 }, - { 0x69F9, 100203 }, - { 0x69FA, 100205 }, - { 0x69FB, 100207 }, - { 0x69FC, 100209 }, - { 0x69FD, 100211 }, - { 0x69FE, 100213 }, - { 0x69FF, 100215 }, - { 0x6A00, 100217 }, - { 0x6A01, 100219 }, - { 0x6A02, 100221 }, - { 0x6A03, 100223 }, - { 0x6A04, 100225 }, - { 0x6A05, 100227 }, - { 0x6A06, 100229 }, - { 0x6A07, 100231 }, - { 0x6A08, 100233 }, - { 0x6A09, 100235 }, - { 0x6A0A, 100237 }, - { 0x6A0B, 100239 }, - { 0x6A0C, 100241 }, - { 0x6A0D, 100243 }, - { 0x6A0E, 100245 }, - { 0x6A0F, 100247 }, - { 0x6A10, 100249 }, - { 0x6A11, 100251 }, - { 0x6A12, 100253 }, - { 0x6A13, 100255 }, - { 0x6A14, 100257 }, - { 0x6A15, 100259 }, - { 0x6A16, 100261 }, - { 0x6A17, 100263 }, - { 0x6A18, 100265 }, - { 0x6A19, 100267 }, - { 0x6A1A, 100269 }, - { 0x6A1B, 100271 }, - { 0x6A1C, 100273 }, - { 0x6A1D, 100275 }, - { 0x6A1E, 100277 }, - { 0x6A1F, 100279 }, - { 0x6A20, 100281 }, - { 0x6A21, 100283 }, - { 0x6A22, 100285 }, - { 0x6A23, 100287 }, - { 0x6A24, 100289 }, - { 0x6A25, 100291 }, - { 0x6A26, 100293 }, - { 0x6A27, 100295 }, - { 0x6A28, 100297 }, - { 0x6A29, 100299 }, - { 0x6A2A, 100301 }, - { 0x6A2B, 100303 }, - { 0x6A2C, 100305 }, - { 0x6A2D, 100307 }, - { 0x6A2E, 100309 }, - { 0x6A2F, 100311 }, - { 0x6A30, 100313 }, - { 0x6A31, 100315 }, - { 0x6A32, 100317 }, - { 0x6A33, 100319 }, - { 0x6A34, 100321 }, - { 0x6A35, 100323 }, - { 0x6A36, 100325 }, - { 0x6A37, 100327 }, - { 0x6A38, 100329 }, - { 0x6A39, 100331 }, - { 0x6A3A, 100333 }, - { 0x6A3B, 100335 }, - { 0x6A3C, 100337 }, - { 0x6A3D, 100339 }, - { 0x6A3E, 100341 }, - { 0x6A3F, 100343 }, - { 0x6A40, 100345 }, - { 0x6A41, 100347 }, - { 0x6A42, 100349 }, - { 0x6A43, 100351 }, - { 0x6A44, 100353 }, - { 0x6A45, 100355 }, - { 0x6A46, 100357 }, - { 0x6A47, 100359 }, - { 0x6A48, 100361 }, - { 0x6A49, 100363 }, - { 0x6A4A, 100365 }, - { 0x6A4B, 100367 }, - { 0x6A4C, 100369 }, - { 0x6A4D, 100371 }, - { 0x6A4E, 100373 }, - { 0x6A4F, 100375 }, - { 0x6A50, 100377 }, - { 0x6A51, 100379 }, - { 0x6A52, 100381 }, - { 0x6A53, 100383 }, - { 0x6A54, 100385 }, - { 0x6A55, 100387 }, - { 0x6A56, 100389 }, - { 0x6A57, 100391 }, - { 0x6A58, 100393 }, - { 0x6A59, 100395 }, - { 0x6A5A, 100397 }, - { 0x6A5B, 100399 }, - { 0x6A5C, 100401 }, - { 0x6A5D, 100403 }, - { 0x6A5E, 100405 }, - { 0x6A5F, 100407 }, - { 0x6A60, 100409 }, - { 0x6A61, 100411 }, - { 0x6A62, 100413 }, - { 0x6A63, 100415 }, - { 0x6A64, 100417 }, - { 0x6A65, 100419 }, - { 0x6A66, 100421 }, - { 0x6A67, 100423 }, - { 0x6A68, 100425 }, - { 0x6A69, 100427 }, - { 0x6A6A, 100429 }, - { 0x6A6B, 100431 }, - { 0x6A6C, 100433 }, - { 0x6A6D, 100435 }, - { 0x6A6E, 100437 }, - { 0x6A6F, 100439 }, - { 0x6A70, 100441 }, - { 0x6A71, 100443 }, - { 0x6A72, 100445 }, - { 0x6A73, 100447 }, - { 0x6A74, 100449 }, - { 0x6A75, 100451 }, - { 0x6A76, 100453 }, - { 0x6A77, 100455 }, - { 0x6A78, 100457 }, - { 0x6A79, 100459 }, - { 0x6A7A, 100461 }, - { 0x6A7B, 100463 }, - { 0x6A7C, 100465 }, - { 0x6A7D, 100467 }, - { 0x6A7E, 100469 }, - { 0x6A7F, 100471 }, - { 0x6A80, 100473 }, - { 0x6A81, 100475 }, - { 0x6A82, 100477 }, - { 0x6A83, 100479 }, - { 0x6A84, 100481 }, - { 0x6A85, 100483 }, - { 0x6A86, 100485 }, - { 0x6A87, 100487 }, - { 0x6A88, 100489 }, - { 0x6A89, 100491 }, - { 0x6A8A, 100493 }, - { 0x6A8B, 100495 }, - { 0x6A8C, 100497 }, - { 0x6A8D, 100499 }, - { 0x6A8E, 100501 }, - { 0x6A8F, 100503 }, - { 0x6A90, 100505 }, - { 0x6A91, 100507 }, - { 0x6A92, 100509 }, - { 0x6A93, 100511 }, - { 0x6A94, 100513 }, - { 0x6A95, 100515 }, - { 0x6A96, 100517 }, - { 0x6A97, 100519 }, - { 0x6A98, 100521 }, - { 0x6A99, 100523 }, - { 0x6A9A, 100525 }, - { 0x6A9B, 100527 }, - { 0x6A9C, 100529 }, - { 0x6A9D, 100531 }, - { 0x6A9E, 100533 }, - { 0x6A9F, 100535 }, - { 0x6AA0, 100537 }, - { 0x6AA1, 100539 }, - { 0x6AA2, 100541 }, - { 0x6AA3, 100543 }, - { 0x6AA4, 100545 }, - { 0x6AA5, 100547 }, - { 0x6AA6, 100549 }, - { 0x6AA7, 100551 }, - { 0x6AA8, 100553 }, - { 0x6AA9, 100555 }, - { 0x6AAA, 100557 }, - { 0x6AAB, 100559 }, - { 0x6AAC, 100561 }, - { 0x6AAD, 100563 }, - { 0x6AAE, 100565 }, - { 0x6AAF, 100567 }, - { 0x6AB0, 100569 }, - { 0x6AB1, 100571 }, - { 0x6AB2, 100573 }, - { 0x6AB3, 100575 }, - { 0x6AB4, 100577 }, - { 0x6AB5, 100579 }, - { 0x6AB6, 100581 }, - { 0x6AB7, 100583 }, - { 0x6AB8, 100585 }, - { 0x6AB9, 100587 }, - { 0x6ABA, 100589 }, - { 0x6ABB, 100591 }, - { 0x6ABC, 100593 }, - { 0x6ABD, 100595 }, - { 0x6ABE, 100597 }, - { 0x6ABF, 100599 }, - { 0x6AC0, 100601 }, - { 0x6AC1, 100603 }, - { 0x6AC2, 100605 }, - { 0x6AC3, 100607 }, - { 0x6AC4, 100609 }, - { 0x6AC5, 100611 }, - { 0x6AC6, 100613 }, - { 0x6AC7, 100615 }, - { 0x6AC8, 100617 }, - { 0x6AC9, 100619 }, - { 0x6ACA, 100621 }, - { 0x6ACB, 100623 }, - { 0x6ACC, 100625 }, - { 0x6ACD, 100627 }, - { 0x6ACE, 100629 }, - { 0x6ACF, 100631 }, - { 0x6AD0, 100633 }, - { 0x6AD1, 100635 }, - { 0x6AD2, 100637 }, - { 0x6AD3, 100639 }, - { 0x6AD4, 100641 }, - { 0x6AD5, 100643 }, - { 0x6AD6, 100645 }, - { 0x6AD7, 100647 }, - { 0x6AD8, 100649 }, - { 0x6AD9, 100651 }, - { 0x6ADA, 100653 }, - { 0x6ADB, 100655 }, - { 0x6ADC, 100657 }, - { 0x6ADD, 100659 }, - { 0x6ADE, 100661 }, - { 0x6ADF, 100663 }, - { 0x6AE0, 100665 }, - { 0x6AE1, 100667 }, - { 0x6AE2, 100669 }, - { 0x6AE3, 100671 }, - { 0x6AE4, 100673 }, - { 0x6AE5, 100675 }, - { 0x6AE6, 100677 }, - { 0x6AE7, 100679 }, - { 0x6AE8, 100681 }, - { 0x6AE9, 100683 }, - { 0x6AEA, 100685 }, - { 0x6AEB, 100687 }, - { 0x6AEC, 100689 }, - { 0x6AED, 100691 }, - { 0x6AEE, 100693 }, - { 0x6AEF, 100695 }, - { 0x6AF0, 100697 }, - { 0x6AF1, 100699 }, - { 0x6AF2, 100701 }, - { 0x6AF3, 100703 }, - { 0x6AF4, 100705 }, - { 0x6AF5, 100707 }, - { 0x6AF6, 100709 }, - { 0x6AF7, 100711 }, - { 0x6AF8, 100713 }, - { 0x6AF9, 100715 }, - { 0x6AFA, 100717 }, - { 0x6AFB, 100719 }, - { 0x6AFC, 100721 }, - { 0x6AFD, 100723 }, - { 0x6AFE, 100725 }, - { 0x6AFF, 100727 }, - { 0x6B00, 100729 }, - { 0x6B01, 100731 }, - { 0x6B02, 100733 }, - { 0x6B03, 100735 }, - { 0x6B04, 100737 }, - { 0x6B05, 100739 }, - { 0x6B06, 100741 }, - { 0x6B07, 100743 }, - { 0x6B08, 100745 }, - { 0x6B09, 100747 }, - { 0x6B0A, 100749 }, - { 0x6B0B, 100751 }, - { 0x6B0C, 100753 }, - { 0x6B0D, 100755 }, - { 0x6B0E, 100757 }, - { 0x6B0F, 100759 }, - { 0x6B10, 100761 }, - { 0x6B11, 100763 }, - { 0x6B12, 100765 }, - { 0x6B13, 100767 }, - { 0x6B14, 100769 }, - { 0x6B15, 100771 }, - { 0x6B16, 100773 }, - { 0x6B17, 100775 }, - { 0x6B18, 100777 }, - { 0x6B19, 100779 }, - { 0x6B1A, 100781 }, - { 0x6B1B, 100783 }, - { 0x6B1C, 100785 }, - { 0x6B1D, 100787 }, - { 0x6B1E, 100789 }, - { 0x6B1F, 100791 }, - { 0x6B20, 100793 }, - { 0x6B21, 100795 }, - { 0x6B22, 100797 }, - { 0x6B23, 100799 }, - { 0x6B24, 100801 }, - { 0x6B25, 100803 }, - { 0x6B26, 100805 }, - { 0x6B27, 100807 }, - { 0x6B28, 100809 }, - { 0x6B29, 100811 }, - { 0x6B2A, 100813 }, - { 0x6B2B, 100815 }, - { 0x6B2C, 100817 }, - { 0x6B2D, 100819 }, - { 0x6B2E, 100821 }, - { 0x6B2F, 100823 }, - { 0x6B30, 100825 }, - { 0x6B31, 100827 }, - { 0x6B32, 100829 }, - { 0x6B33, 100831 }, - { 0x6B34, 100833 }, - { 0x6B35, 100835 }, - { 0x6B36, 100837 }, - { 0x6B37, 100839 }, - { 0x6B38, 100841 }, - { 0x6B39, 100843 }, - { 0x6B3A, 100845 }, - { 0x6B3B, 100847 }, - { 0x6B3C, 100849 }, - { 0x6B3D, 100851 }, - { 0x6B3E, 100853 }, - { 0x6B3F, 100855 }, - { 0x6B40, 100857 }, - { 0x6B41, 100859 }, - { 0x6B42, 100861 }, - { 0x6B43, 100863 }, - { 0x6B44, 100865 }, - { 0x6B45, 100867 }, - { 0x6B46, 100869 }, - { 0x6B47, 100871 }, - { 0x6B48, 100873 }, - { 0x6B49, 100875 }, - { 0x6B4A, 100877 }, - { 0x6B4B, 100879 }, - { 0x6B4C, 100881 }, - { 0x6B4D, 100883 }, - { 0x6B4E, 100885 }, - { 0x6B4F, 100887 }, - { 0x6B50, 100889 }, - { 0x6B51, 100891 }, - { 0x6B52, 100893 }, - { 0x6B53, 100895 }, - { 0x6B54, 100897 }, - { 0x6B55, 100899 }, - { 0x6B56, 100901 }, - { 0x6B57, 100903 }, - { 0x6B58, 100905 }, - { 0x6B59, 100907 }, - { 0x6B5A, 100909 }, - { 0x6B5B, 100911 }, - { 0x6B5C, 100913 }, - { 0x6B5D, 100915 }, - { 0x6B5E, 100917 }, - { 0x6B5F, 100919 }, - { 0x6B60, 100921 }, - { 0x6B61, 100923 }, - { 0x6B62, 100925 }, - { 0x6B63, 100927 }, - { 0x6B64, 100929 }, - { 0x6B65, 100931 }, - { 0x6B66, 100933 }, - { 0x6B67, 100935 }, - { 0x6B68, 100937 }, - { 0x6B69, 100939 }, - { 0x6B6A, 100941 }, - { 0x6B6B, 100943 }, - { 0x6B6C, 100945 }, - { 0x6B6D, 100947 }, - { 0x6B6E, 100949 }, - { 0x6B6F, 100951 }, - { 0x6B70, 100953 }, - { 0x6B71, 100955 }, - { 0x6B72, 100957 }, - { 0x6B73, 100959 }, - { 0x6B74, 100961 }, - { 0x6B75, 100963 }, - { 0x6B76, 100965 }, - { 0x6B77, 100967 }, - { 0x6B78, 100969 }, - { 0x6B79, 100971 }, - { 0x6B7A, 100973 }, - { 0x6B7B, 100975 }, - { 0x6B7C, 100977 }, - { 0x6B7D, 100979 }, - { 0x6B7E, 100981 }, - { 0x6B7F, 100983 }, - { 0x6B80, 100985 }, - { 0x6B81, 100987 }, - { 0x6B82, 100989 }, - { 0x6B83, 100991 }, - { 0x6B84, 100993 }, - { 0x6B85, 100995 }, - { 0x6B86, 100997 }, - { 0x6B87, 100999 }, - { 0x6B88, 101001 }, - { 0x6B89, 101003 }, - { 0x6B8A, 101005 }, - { 0x6B8B, 101007 }, - { 0x6B8C, 101009 }, - { 0x6B8D, 101011 }, - { 0x6B8E, 101013 }, - { 0x6B8F, 101015 }, - { 0x6B90, 101017 }, - { 0x6B91, 101019 }, - { 0x6B92, 101021 }, - { 0x6B93, 101023 }, - { 0x6B94, 101025 }, - { 0x6B95, 101027 }, - { 0x6B96, 101029 }, - { 0x6B97, 101031 }, - { 0x6B98, 101033 }, - { 0x6B99, 101035 }, - { 0x6B9A, 101037 }, - { 0x6B9B, 101039 }, - { 0x6B9C, 101041 }, - { 0x6B9D, 101043 }, - { 0x6B9E, 101045 }, - { 0x6B9F, 101047 }, - { 0x6BA0, 101049 }, - { 0x6BA1, 101051 }, - { 0x6BA2, 101053 }, - { 0x6BA3, 101055 }, - { 0x6BA4, 101057 }, - { 0x6BA5, 101059 }, - { 0x6BA6, 101061 }, - { 0x6BA7, 101063 }, - { 0x6BA8, 101065 }, - { 0x6BA9, 101067 }, - { 0x6BAA, 101069 }, - { 0x6BAB, 101071 }, - { 0x6BAC, 101073 }, - { 0x6BAD, 101075 }, - { 0x6BAE, 101077 }, - { 0x6BAF, 101079 }, - { 0x6BB0, 101081 }, - { 0x6BB1, 101083 }, - { 0x6BB2, 101085 }, - { 0x6BB3, 101087 }, - { 0x6BB4, 101089 }, - { 0x6BB5, 101091 }, - { 0x6BB6, 101093 }, - { 0x6BB7, 101095 }, - { 0x6BB8, 101097 }, - { 0x6BB9, 101099 }, - { 0x6BBA, 101101 }, - { 0x6BBB, 101103 }, - { 0x6BBC, 101105 }, - { 0x6BBD, 101107 }, - { 0x6BBE, 101109 }, - { 0x6BBF, 101111 }, - { 0x6BC0, 101113 }, - { 0x6BC1, 101115 }, - { 0x6BC2, 101117 }, - { 0x6BC3, 101119 }, - { 0x6BC4, 101121 }, - { 0x6BC5, 101123 }, - { 0x6BC6, 101125 }, - { 0x6BC7, 101127 }, - { 0x6BC8, 101129 }, - { 0x6BC9, 101131 }, - { 0x6BCA, 101133 }, - { 0x6BCB, 101135 }, - { 0x6BCC, 101137 }, - { 0x6BCD, 101139 }, - { 0x6BCE, 101141 }, - { 0x6BCF, 101143 }, - { 0x6BD0, 101145 }, - { 0x6BD1, 101147 }, - { 0x6BD2, 101149 }, - { 0x6BD3, 101151 }, - { 0x6BD4, 101153 }, - { 0x6BD5, 101155 }, - { 0x6BD6, 101157 }, - { 0x6BD7, 101159 }, - { 0x6BD8, 101161 }, - { 0x6BD9, 101163 }, - { 0x6BDA, 101165 }, - { 0x6BDB, 101167 }, - { 0x6BDC, 101169 }, - { 0x6BDD, 101171 }, - { 0x6BDE, 101173 }, - { 0x6BDF, 101175 }, - { 0x6BE0, 101177 }, - { 0x6BE1, 101179 }, - { 0x6BE2, 101181 }, - { 0x6BE3, 101183 }, - { 0x6BE4, 101185 }, - { 0x6BE5, 101187 }, - { 0x6BE6, 101189 }, - { 0x6BE7, 101191 }, - { 0x6BE8, 101193 }, - { 0x6BE9, 101195 }, - { 0x6BEA, 101197 }, - { 0x6BEB, 101199 }, - { 0x6BEC, 101201 }, - { 0x6BED, 101203 }, - { 0x6BEE, 101205 }, - { 0x6BEF, 101207 }, - { 0x6BF0, 101209 }, - { 0x6BF1, 101211 }, - { 0x6BF2, 101213 }, - { 0x6BF3, 101215 }, - { 0x6BF4, 101217 }, - { 0x6BF5, 101219 }, - { 0x6BF6, 101221 }, - { 0x6BF7, 101223 }, - { 0x6BF8, 101225 }, - { 0x6BF9, 101227 }, - { 0x6BFA, 101229 }, - { 0x6BFB, 101231 }, - { 0x6BFC, 101233 }, - { 0x6BFD, 101235 }, - { 0x6BFE, 101237 }, - { 0x6BFF, 101239 }, - { 0x6C00, 101241 }, - { 0x6C01, 101243 }, - { 0x6C02, 101245 }, - { 0x6C03, 101247 }, - { 0x6C04, 101249 }, - { 0x6C05, 101251 }, - { 0x6C06, 101253 }, - { 0x6C07, 101255 }, - { 0x6C08, 101257 }, - { 0x6C09, 101259 }, - { 0x6C0A, 101261 }, - { 0x6C0B, 101263 }, - { 0x6C0C, 101265 }, - { 0x6C0D, 101267 }, - { 0x6C0E, 101269 }, - { 0x6C0F, 101271 }, - { 0x6C10, 101273 }, - { 0x6C11, 101275 }, - { 0x6C12, 101277 }, - { 0x6C13, 101279 }, - { 0x6C14, 101281 }, - { 0x6C15, 101283 }, - { 0x6C16, 101285 }, - { 0x6C17, 101287 }, - { 0x6C18, 101289 }, - { 0x6C19, 101291 }, - { 0x6C1A, 101293 }, - { 0x6C1B, 101295 }, - { 0x6C1C, 101297 }, - { 0x6C1D, 101299 }, - { 0x6C1E, 101301 }, - { 0x6C1F, 101303 }, - { 0x6C20, 101305 }, - { 0x6C21, 101307 }, - { 0x6C22, 101309 }, - { 0x6C23, 101311 }, - { 0x6C24, 101313 }, - { 0x6C25, 101315 }, - { 0x6C26, 101317 }, - { 0x6C27, 101319 }, - { 0x6C28, 101321 }, - { 0x6C29, 101323 }, - { 0x6C2A, 101325 }, - { 0x6C2B, 101327 }, - { 0x6C2C, 101329 }, - { 0x6C2D, 101331 }, - { 0x6C2E, 101333 }, - { 0x6C2F, 101335 }, - { 0x6C30, 101337 }, - { 0x6C31, 101339 }, - { 0x6C32, 101341 }, - { 0x6C33, 101343 }, - { 0x6C34, 101345 }, - { 0x6C35, 101347 }, - { 0x6C36, 101349 }, - { 0x6C37, 101351 }, - { 0x6C38, 101353 }, - { 0x6C39, 101355 }, - { 0x6C3A, 101357 }, - { 0x6C3B, 101359 }, - { 0x6C3C, 101361 }, - { 0x6C3D, 101363 }, - { 0x6C3E, 101365 }, - { 0x6C3F, 101367 }, - { 0x6C40, 101369 }, - { 0x6C41, 101371 }, - { 0x6C42, 101373 }, - { 0x6C43, 101375 }, - { 0x6C44, 101377 }, - { 0x6C45, 101379 }, - { 0x6C46, 101381 }, - { 0x6C47, 101383 }, - { 0x6C48, 101385 }, - { 0x6C49, 101387 }, - { 0x6C4A, 101389 }, - { 0x6C4B, 101391 }, - { 0x6C4C, 101393 }, - { 0x6C4D, 101395 }, - { 0x6C4E, 101397 }, - { 0x6C4F, 101399 }, - { 0x6C50, 101401 }, - { 0x6C51, 101403 }, - { 0x6C52, 101405 }, - { 0x6C53, 101407 }, - { 0x6C54, 101409 }, - { 0x6C55, 101411 }, - { 0x6C56, 101413 }, - { 0x6C57, 101415 }, - { 0x6C58, 101417 }, - { 0x6C59, 101419 }, - { 0x6C5A, 101421 }, - { 0x6C5B, 101423 }, - { 0x6C5C, 101425 }, - { 0x6C5D, 101427 }, - { 0x6C5E, 101429 }, - { 0x6C5F, 101431 }, - { 0x6C60, 101433 }, - { 0x6C61, 101435 }, - { 0x6C62, 101437 }, - { 0x6C63, 101439 }, - { 0x6C64, 101441 }, - { 0x6C65, 101443 }, - { 0x6C66, 101445 }, - { 0x6C67, 101447 }, - { 0x6C68, 101449 }, - { 0x6C69, 101451 }, - { 0x6C6A, 101453 }, - { 0x6C6B, 101455 }, - { 0x6C6C, 101457 }, - { 0x6C6D, 101459 }, - { 0x6C6E, 101461 }, - { 0x6C6F, 101463 }, - { 0x6C70, 101465 }, - { 0x6C71, 101467 }, - { 0x6C72, 101469 }, - { 0x6C73, 101471 }, - { 0x6C74, 101473 }, - { 0x6C75, 101475 }, - { 0x6C76, 101477 }, - { 0x6C77, 101479 }, - { 0x6C78, 101481 }, - { 0x6C79, 101483 }, - { 0x6C7A, 101485 }, - { 0x6C7B, 101487 }, - { 0x6C7C, 101489 }, - { 0x6C7D, 101491 }, - { 0x6C7E, 101493 }, - { 0x6C7F, 101495 }, - { 0x6C80, 101497 }, - { 0x6C81, 101499 }, - { 0x6C82, 101501 }, - { 0x6C83, 101503 }, - { 0x6C84, 101505 }, - { 0x6C85, 101507 }, - { 0x6C86, 101509 }, - { 0x6C87, 101511 }, - { 0x6C88, 101513 }, - { 0x6C89, 101515 }, - { 0x6C8A, 101517 }, - { 0x6C8B, 101519 }, - { 0x6C8C, 101521 }, - { 0x6C8D, 101523 }, - { 0x6C8E, 101525 }, - { 0x6C8F, 101527 }, - { 0x6C90, 101529 }, - { 0x6C91, 101531 }, - { 0x6C92, 101533 }, - { 0x6C93, 101535 }, - { 0x6C94, 101537 }, - { 0x6C95, 101539 }, - { 0x6C96, 101541 }, - { 0x6C97, 101543 }, - { 0x6C98, 101545 }, - { 0x6C99, 101547 }, - { 0x6C9A, 101549 }, - { 0x6C9B, 101551 }, - { 0x6C9C, 101553 }, - { 0x6C9D, 101555 }, - { 0x6C9E, 101557 }, - { 0x6C9F, 101559 }, - { 0x6CA0, 101561 }, - { 0x6CA1, 101563 }, - { 0x6CA2, 101565 }, - { 0x6CA3, 101567 }, - { 0x6CA4, 101569 }, - { 0x6CA5, 101571 }, - { 0x6CA6, 101573 }, - { 0x6CA7, 101575 }, - { 0x6CA8, 101577 }, - { 0x6CA9, 101579 }, - { 0x6CAA, 101581 }, - { 0x6CAB, 101583 }, - { 0x6CAC, 101585 }, - { 0x6CAD, 101587 }, - { 0x6CAE, 101589 }, - { 0x6CAF, 101591 }, - { 0x6CB0, 101593 }, - { 0x6CB1, 101595 }, - { 0x6CB2, 101597 }, - { 0x6CB3, 101599 }, - { 0x6CB4, 101601 }, - { 0x6CB5, 101603 }, - { 0x6CB6, 101605 }, - { 0x6CB7, 101607 }, - { 0x6CB8, 101609 }, - { 0x6CB9, 101611 }, - { 0x6CBA, 101613 }, - { 0x6CBB, 101615 }, - { 0x6CBC, 101617 }, - { 0x6CBD, 101619 }, - { 0x6CBE, 101621 }, - { 0x6CBF, 101623 }, - { 0x6CC0, 101625 }, - { 0x6CC1, 101627 }, - { 0x6CC2, 101629 }, - { 0x6CC3, 101631 }, - { 0x6CC4, 101633 }, - { 0x6CC5, 101635 }, - { 0x6CC6, 101637 }, - { 0x6CC7, 101639 }, - { 0x6CC8, 101641 }, - { 0x6CC9, 101643 }, - { 0x6CCA, 101645 }, - { 0x6CCB, 101647 }, - { 0x6CCC, 101649 }, - { 0x6CCD, 101651 }, - { 0x6CCE, 101653 }, - { 0x6CCF, 101655 }, - { 0x6CD0, 101657 }, - { 0x6CD1, 101659 }, - { 0x6CD2, 101661 }, - { 0x6CD3, 101663 }, - { 0x6CD4, 101665 }, - { 0x6CD5, 101667 }, - { 0x6CD6, 101669 }, - { 0x6CD7, 101671 }, - { 0x6CD8, 101673 }, - { 0x6CD9, 101675 }, - { 0x6CDA, 101677 }, - { 0x6CDB, 101679 }, - { 0x6CDC, 101681 }, - { 0x6CDD, 101683 }, - { 0x6CDE, 101685 }, - { 0x6CDF, 101687 }, - { 0x6CE0, 101689 }, - { 0x6CE1, 101691 }, - { 0x6CE2, 101693 }, - { 0x6CE3, 101695 }, - { 0x6CE4, 101697 }, - { 0x6CE5, 101699 }, - { 0x6CE6, 101701 }, - { 0x6CE7, 101703 }, - { 0x6CE8, 101705 }, - { 0x6CE9, 101707 }, - { 0x6CEA, 101709 }, - { 0x6CEB, 101711 }, - { 0x6CEC, 101713 }, - { 0x6CED, 101715 }, - { 0x6CEE, 101717 }, - { 0x6CEF, 101719 }, - { 0x6CF0, 101721 }, - { 0x6CF1, 101723 }, - { 0x6CF2, 101725 }, - { 0x6CF3, 101727 }, - { 0x6CF4, 101729 }, - { 0x6CF5, 101731 }, - { 0x6CF6, 101733 }, - { 0x6CF7, 101735 }, - { 0x6CF8, 101737 }, - { 0x6CF9, 101739 }, - { 0x6CFA, 101741 }, - { 0x6CFB, 101743 }, - { 0x6CFC, 101745 }, - { 0x6CFD, 101747 }, - { 0x6CFE, 101749 }, - { 0x6CFF, 101751 }, - { 0x6D00, 101753 }, - { 0x6D01, 101755 }, - { 0x6D02, 101757 }, - { 0x6D03, 101759 }, - { 0x6D04, 101761 }, - { 0x6D05, 101763 }, - { 0x90BF, 101765 }, - { 0x1F58, 101767 }, - { 0x9054, 101769 }, - { 0x90D9, 101772 }, - { 0x8FCB, 101774 }, - { 0x928A, 101775 }, - { 0x1FDA, 101776 }, - { 0x2335, 101778 }, - { 0x909C, 101779 }, - { 0x9137, 101784 }, - { 0x10F3, 101787 }, - { 0x10F6, 101790 }, - { 0x10F4, 101792 }, - { 0x10FA, 101794 }, - { 0x10FF, 101797 }, - { 0x10FB, 101800 }, - { 0x10FE, 101803 }, - { 0x10FD, 101806 }, - { 0x1102, 101809 }, - { 0x1101, 101812 }, - { 0x1100, 101815 }, - { 0x10FC, 101818 }, - { 0x1127, 101821 }, - { 0x111F, 101825 }, - { 0x1122, 101829 }, - { 0x1125, 101833 }, - { 0x1123, 101837 }, - { 0x1121, 101841 }, - { 0x111E, 101846 }, - { 0x1124, 101850 }, - { 0x1120, 101854 }, - { 0x1126, 101858 }, - { 0x1103, 101862 }, - { 0x110D, 101865 }, - { 0x1107, 101869 }, - { 0x1106, 101872 }, - { 0x1108, 101875 }, - { 0x110A, 101878 }, - { 0x110B, 101881 }, - { 0x1105, 101884 }, - { 0x1104, 101887 }, - { 0x110C, 101890 }, - { 0x1109, 101893 }, - { 0x10F7, 101896 }, - { 0x10F1, 101899 }, - { 0x10F8, 101902 }, - { 0x1001, 101905 }, - { 0x1006, 101908 }, - { 0x1003, 101911 }, - { 0x1007, 101914 }, - { 0x1002, 101917 }, - { 0x1019, 101920 }, - { 0x101E, 101923 }, - { 0x101B, 101926 }, - { 0x101F, 101929 }, - { 0x101A, 101932 }, - { 0x1086, 101935 }, - { 0x108B, 101938 }, - { 0x1088, 101941 }, - { 0x108C, 101944 }, - { 0x1087, 101947 }, - { 0x10DB, 101950 }, - { 0x10E0, 101953 }, - { 0x10DD, 101956 }, - { 0x10E1, 101959 }, - { 0x10DC, 101962 }, - { 0x109E, 101965 }, - { 0x10A3, 101968 }, - { 0x10A0, 101971 }, - { 0x10A4, 101974 }, - { 0x109F, 101977 }, - { 0x0FA8, 101980 }, - { 0x0FAD, 101983 }, - { 0x0FAA, 101986 }, - { 0x0FAE, 101989 }, - { 0x0FA9, 101992 }, - { 0x1096, 101995 }, - { 0x109B, 101998 }, - { 0x1098, 102001 }, - { 0x109C, 102004 }, - { 0x1097, 102007 }, - { 0x1046, 102010 }, - { 0x104B, 102013 }, - { 0x1048, 102016 }, - { 0x104C, 102019 }, - { 0x1047, 102022 }, - { 0x0FB0, 102025 }, - { 0x0FB5, 102028 }, - { 0x0FB2, 102031 }, - { 0x0FB6, 102034 }, - { 0x0FB1, 102037 }, - { 0x0FC0, 102040 }, - { 0x0FC5, 102043 }, - { 0x0FC2, 102046 }, - { 0x0FC6, 102049 }, - { 0x0FC1, 102052 }, - { 0x102E, 102055 }, - { 0x1033, 102058 }, - { 0x1030, 102061 }, - { 0x1034, 102064 }, - { 0x102F, 102067 }, - { 0x10E3, 102070 }, - { 0x10E8, 102073 }, - { 0x10E5, 102076 }, - { 0x10E9, 102079 }, - { 0x10E4, 102082 }, - { 0x0FE8, 102085 }, - { 0x0FED, 102088 }, - { 0x0FEA, 102091 }, - { 0x0FEE, 102094 }, - { 0x0FE9, 102097 }, - { 0x0FD0, 102100 }, - { 0x0FD5, 102103 }, - { 0x0FD2, 102106 }, - { 0x0FD6, 102109 }, - { 0x0FD1, 102112 }, - { 0x0FD8, 102115 }, - { 0x0FDD, 102118 }, - { 0x0FDA, 102121 }, - { 0x0FDE, 102124 }, - { 0x0FD9, 102127 }, - { 0x1011, 102130 }, - { 0x1016, 102133 }, - { 0x1013, 102136 }, - { 0x1017, 102139 }, - { 0x1012, 102142 }, - { 0x1009, 102145 }, - { 0x100E, 102148 }, - { 0x100B, 102151 }, - { 0x100F, 102154 }, - { 0x100A, 102157 }, - { 0x105F, 102160 }, - { 0x1064, 102163 }, - { 0x1061, 102166 }, - { 0x1065, 102169 }, - { 0x1060, 102172 }, - { 0x1021, 102175 }, - { 0x1026, 102178 }, - { 0x1023, 102181 }, - { 0x1027, 102184 }, - { 0x1022, 102187 }, - { 0x107E, 102190 }, - { 0x1083, 102193 }, - { 0x1080, 102196 }, - { 0x1084, 102199 }, - { 0x107F, 102202 }, - { 0x106E, 102205 }, - { 0x1073, 102208 }, - { 0x1070, 102211 }, - { 0x1074, 102214 }, - { 0x106F, 102217 }, - { 0x1004, 102220 }, - { 0x3A50, 102223 }, - { 0x3A55, 102226 }, - { 0x3A52, 102229 }, - { 0x3A56, 102232 }, - { 0x3A51, 102235 }, - { 0x1005, 102238 }, - { 0x298C, 102241 }, - { 0x1008, 102244 }, - { 0x1115, 102247 }, - { 0x1113, 102250 }, - { 0x101C, 102253 }, - { 0x29A5, 102256 }, - { 0x29AA, 102259 }, - { 0x29A7, 102262 }, - { 0x29AB, 102265 }, - { 0x29A6, 102268 }, - { 0x101D, 102271 }, - { 0x10BB, 102274 }, - { 0x10C0, 102277 }, - { 0x10BD, 102280 }, - { 0x10C1, 102283 }, - { 0x10BC, 102286 }, - { 0x298E, 102289 }, - { 0x1020, 102292 }, - { 0x1089, 102295 }, - { 0x108E, 102298 }, - { 0x1093, 102301 }, - { 0x1090, 102304 }, - { 0x1094, 102307 }, - { 0x108F, 102310 }, - { 0x108A, 102313 }, - { 0x2993, 102316 }, - { 0x108D, 102319 }, - { 0x3A47, 102322 }, - { 0x3A44, 102325 }, - { 0x3A48, 102328 }, - { 0x3A43, 102331 }, - { 0x10DE, 102334 }, - { 0x10DF, 102337 }, - { 0x10E2, 102340 }, - { 0x1119, 102343 }, - { 0x1117, 102346 }, - { 0x10ED, 102349 }, - { 0x10A1, 102352 }, - { 0x10A2, 102355 }, - { 0x10AB, 102358 }, - { 0x10B0, 102361 }, - { 0x10AD, 102364 }, - { 0x10B1, 102367 }, - { 0x10AC, 102370 }, - { 0x10A5, 102373 }, - { 0x10A6, 102376 }, - { 0x10AA, 102379 }, - { 0x10A7, 102382 }, - { 0x29CF, 102385 }, - { 0x29D4, 102388 }, - { 0x29D1, 102391 }, - { 0x29D5, 102394 }, - { 0x29D0, 102397 }, - { 0x0FAB, 102400 }, - { 0x0FAC, 102403 }, - { 0x0FB8, 102406 }, - { 0x0FBD, 102409 }, - { 0x0FBA, 102412 }, - { 0x0FBE, 102415 }, - { 0x0FB9, 102418 }, - { 0x0FAF, 102421 }, - { 0x1099, 102424 }, - { 0x109A, 102427 }, - { 0x2995, 102430 }, - { 0x109D, 102433 }, - { 0x1049, 102436 }, - { 0x104A, 102439 }, - { 0x104D, 102442 }, - { 0x104E, 102445 }, - { 0x1052, 102448 }, - { 0x104F, 102451 }, - { 0x1053, 102454 }, - { 0x1058, 102457 }, - { 0x1055, 102460 }, - { 0x1059, 102463 }, - { 0x1054, 102466 }, - { 0x29C1, 102469 }, - { 0x29C6, 102472 }, - { 0x29C3, 102475 }, - { 0x29C7, 102478 }, - { 0x29C2, 102481 }, - { 0x0FB3, 102484 }, - { 0x0FB4, 102487 }, - { 0x2987, 102490 }, - { 0x0FB7, 102493 }, - { 0x0FC3, 102496 }, - { 0x0FC4, 102499 }, - { 0x2988, 102502 }, - { 0x0FC7, 102505 }, - { 0x1111, 102508 }, - { 0x110F, 102511 }, - { 0x10EC, 102514 }, - { 0x1031, 102517 }, - { 0x1032, 102520 }, - { 0x298F, 102523 }, - { 0x1035, 102526 }, - { 0x1036, 102529 }, - { 0x103B, 102532 }, - { 0x1038, 102535 }, - { 0x103C, 102538 }, - { 0x1037, 102541 }, - { 0x10E6, 102544 }, - { 0x10E7, 102547 }, - { 0x10C3, 102550 }, - { 0x10C8, 102553 }, - { 0x10C5, 102556 }, - { 0x10C9, 102559 }, - { 0x10C4, 102562 }, - { 0x2999, 102565 }, - { 0x10EA, 102568 }, - { 0x111D, 102571 }, - { 0x111B, 102574 }, - { 0x0FEB, 102577 }, - { 0x0FEC, 102580 }, - { 0x0FF5, 102583 }, - { 0x0FFA, 102586 }, - { 0x0FF7, 102589 }, - { 0x0FFB, 102592 }, - { 0x0FF6, 102595 }, - { 0x0FEF, 102598 }, - { 0x0FF0, 102601 }, - { 0x0FF4, 102604 }, - { 0x0FF1, 102607 }, - { 0x29BA, 102610 }, - { 0x29BF, 102613 }, - { 0x29BC, 102616 }, - { 0x29C0, 102619 }, - { 0x29BB, 102622 }, - { 0x0FD3, 102625 }, - { 0x0FD4, 102628 }, - { 0x2989, 102631 }, - { 0x0FD7, 102634 }, - { 0x10EB, 102637 }, - { 0x0FDB, 102640 }, - { 0x0FDC, 102643 }, - { 0x0FE0, 102646 }, - { 0x0FE5, 102649 }, - { 0x0FE2, 102652 }, - { 0x0FE6, 102655 }, - { 0x0FE1, 102658 }, - { 0x298A, 102661 }, - { 0x299E, 102664 }, - { 0x29A3, 102667 }, - { 0x29A0, 102670 }, - { 0x29A4, 102673 }, - { 0x299F, 102676 }, - { 0x0FDF, 102679 }, - { 0x0FC8, 102682 }, - { 0x0FCD, 102685 }, - { 0x0FCA, 102688 }, - { 0x0FCE, 102691 }, - { 0x0FC9, 102694 }, - { 0x1014, 102697 }, - { 0x1015, 102700 }, - { 0x10B3, 102703 }, - { 0x10B8, 102706 }, - { 0x10B5, 102709 }, - { 0x10B9, 102712 }, - { 0x10B4, 102715 }, - { 0x298D, 102718 }, - { 0x10CB, 102721 }, - { 0x10D0, 102724 }, - { 0x10CD, 102727 }, - { 0x10D1, 102730 }, - { 0x10CC, 102733 }, - { 0x1018, 102736 }, - { 0x10D3, 102739 }, - { 0x10D8, 102742 }, - { 0x10D5, 102745 }, - { 0x10D9, 102748 }, - { 0x10D4, 102751 }, - { 0x100C, 102754 }, - { 0x100D, 102757 }, - { 0x1010, 102760 }, - { 0x1062, 102763 }, - { 0x1063, 102766 }, - { 0x1066, 102769 }, - { 0x1024, 102772 }, - { 0x1025, 102775 }, - { 0x1028, 102778 }, - { 0x1029, 102781 }, - { 0x102D, 102784 }, - { 0x102A, 102787 }, - { 0x29C8, 102790 }, - { 0x29CD, 102793 }, - { 0x29CA, 102796 }, - { 0x29CE, 102799 }, - { 0x29C9, 102802 }, - { 0x1081, 102805 }, - { 0x1082, 102808 }, - { 0x1085, 102811 }, - { 0x1071, 102814 }, - { 0x1072, 102817 }, - { 0x1076, 102820 }, - { 0x107B, 102823 }, - { 0x1078, 102826 }, - { 0x107C, 102829 }, - { 0x1077, 102832 }, - { 0x2992, 102835 }, - { 0x1075, 102838 }, - { 0x29AC, 102841 }, - { 0x29B1, 102844 }, - { 0x29AE, 102847 }, - { 0x29B2, 102850 }, - { 0x29AD, 102853 }, - { 0x3A53, 102856 }, - { 0x3A54, 102859 }, - { 0x1114, 102862 }, - { 0x29A8, 102865 }, - { 0x29A9, 102868 }, - { 0x29B3, 102871 }, - { 0x29B8, 102874 }, - { 0x29B5, 102877 }, - { 0x29B9, 102880 }, - { 0x29B4, 102883 }, - { 0x10BE, 102886 }, - { 0x10BF, 102889 }, - { 0x2997, 102892 }, - { 0x10C2, 102895 }, - { 0x1091, 102898 }, - { 0x1092, 102901 }, - { 0x3A41, 102904 }, - { 0x3A3E, 102907 }, - { 0x3A42, 102910 }, - { 0x3A3D, 102913 }, - { 0x2994, 102916 }, - { 0x1095, 102919 }, - { 0x3A45, 102922 }, - { 0x3A46, 102925 }, - { 0x1118, 102928 }, - { 0x10AE, 102931 }, - { 0x10AF, 102934 }, - { 0x299A, 102937 }, - { 0x299D, 102940 }, - { 0x299B, 102943 }, - { 0x10A8, 102946 }, - { 0x10A9, 102949 }, - { 0x29D2, 102952 }, - { 0x29D3, 102955 }, - { 0x0FBB, 102958 }, - { 0x0FBC, 102961 }, - { 0x0FBF, 102964 }, - { 0x8A7A, 102967 }, - { 0x8A78, 102970 }, - { 0x8A70, 102973 }, - { 0x8A75, 102976 }, - { 0x8A72, 102979 }, - { 0x8A76, 102982 }, - { 0x8A71, 102985 }, - { 0x1050, 102988 }, - { 0x1051, 102991 }, - { 0x1056, 102994 }, - { 0x1057, 102997 }, - { 0x105A, 103000 }, - { 0x105E, 103003 }, - { 0x105B, 103006 }, - { 0x29C4, 103009 }, - { 0x29C5, 103012 }, - { 0x1110, 103015 }, - { 0x1039, 103018 }, - { 0x103A, 103021 }, - { 0x2990, 103024 }, - { 0x103D, 103027 }, - { 0x10C6, 103030 }, - { 0x10C7, 103033 }, - { 0x2998, 103036 }, - { 0x10CA, 103039 }, - { 0x111C, 103042 }, - { 0x0FF8, 103045 }, - { 0x0FF9, 103048 }, - { 0x0FFC, 103051 }, - { 0x1000, 103054 }, - { 0x0FFD, 103057 }, - { 0x0FF2, 103060 }, - { 0x0FF3, 103063 }, - { 0x29BD, 103066 }, - { 0x29BE, 103069 }, - { 0x0FE3, 103072 }, - { 0x0FE4, 103075 }, - { 0x298B, 103078 }, - { 0x0FE7, 103081 }, - { 0x29A1, 103084 }, - { 0x29A2, 103087 }, - { 0x0FCB, 103090 }, - { 0x0FCC, 103093 }, - { 0x0FCF, 103096 }, - { 0x10B6, 103099 }, - { 0x10B7, 103102 }, - { 0x2996, 103105 }, - { 0x10BA, 103108 }, - { 0x10CE, 103111 }, - { 0x10CF, 103114 }, - { 0x10D2, 103117 }, - { 0x3A3B, 103120 }, - { 0x3A38, 103123 }, - { 0x3A3C, 103126 }, - { 0x3A37, 103129 }, - { 0x10D6, 103132 }, - { 0x10D7, 103135 }, - { 0x10DA, 103138 }, - { 0x102B, 103141 }, - { 0x102C, 103144 }, - { 0x29CB, 103147 }, - { 0x29CC, 103150 }, - { 0x1079, 103153 }, - { 0x107A, 103156 }, - { 0x107D, 103159 }, - { 0x29AF, 103162 }, - { 0x29B0, 103165 }, - { 0x29B6, 103168 }, - { 0x29B7, 103171 }, - { 0x3A49, 103174 }, - { 0x3A4E, 103177 }, - { 0x3A4B, 103180 }, - { 0x3A4F, 103183 }, - { 0x3A4A, 103186 }, - { 0x3A3F, 103189 }, - { 0x3A40, 103192 }, - { 0x10B2, 103195 }, - { 0x299C, 103198 }, - { 0x8A79, 103201 }, - { 0x8A73, 103204 }, - { 0x8A74, 103207 }, - { 0x105C, 103210 }, - { 0x105D, 103213 }, - { 0x0FFE, 103216 }, - { 0x0FFF, 103219 }, - { 0x3A39, 103222 }, - { 0x3A3A, 103225 }, - { 0x3A4C, 103228 }, - { 0x3A4D, 103231 }, - { 0x8A80, 103234 }, - { 0x8A88, 103238 }, - { 0x8A87, 103242 }, - { 0x8A85, 103246 }, - { 0x8A84, 103250 }, - { 0x8A82, 103254 }, - { 0x8A7B, 103258 }, - { 0x8A8A, 103262 }, - { 0x8A7F, 103266 }, - { 0x8A7D, 103270 }, - { 0x8A81, 103274 }, - { 0x8A89, 103278 }, - { 0x8A86, 103282 }, - { 0x8A77, 103286 }, - { 0x8A83, 103290 }, - { 0x8A7C, 103294 }, - { 0x8A8B, 103298 }, - { 0x8A7E, 103302 }, - { 0x103E, 103306 }, - { 0x1043, 103310 }, - { 0x1040, 103314 }, - { 0x1044, 103318 }, - { 0x103F, 103322 }, - { 0x1041, 103326 }, - { 0x1042, 103330 }, - { 0x2991, 103334 }, - { 0x1045, 103338 }, - { 0x1112, 103342 }, - { 0x1116, 103346 }, - { 0x110E, 103350 }, - { 0x111A, 103354 }, - { 0x1067, 103358 }, - { 0x106C, 103362 }, - { 0x1069, 103366 }, - { 0x106D, 103370 }, - { 0x1068, 103374 }, - { 0x106A, 103378 }, - { 0x106B, 103382 }, - { 0x10EF, 103386 }, - { 0x10EE, 103391 }, - { 0x10F0, 103398 }, - { 0x10F9, 103402 }, - { 0x10F5, 103405 }, - { 0x10F2, 103407 }, - { 0x8F97, 103409 }, - { 0x8FA3, 103412 }, - { 0x068A, 103414 }, - { 0x068F, 103418 }, - { 0x068B, 103422 }, - { 0x068E, 103426 }, - { 0x068D, 103430 }, - { 0x0692, 103434 }, - { 0x0689, 103438 }, - { 0x0691, 103442 }, - { 0x0690, 103446 }, - { 0x068C, 103450 }, - { 0x0069, 103454 }, - { 0x8F3A, 103457 }, - { 0x94D7, 103459 }, - { 0x7CDD, 103460 }, - { 0x203C, 103462 }, - { 0x231E, 103463 }, - { 0x1CC4, 103464 }, - { 0x1DBA, 103466 }, - { 0x94A4, 103469 }, - { 0x91D9, 103471 }, - { 0x1CE1, 103476 }, - { 0x2924, 103478 }, - { 0x2928, 103482 }, - { 0x2945, 103486 }, - { 0x292C, 103490 }, - { 0x2931, 103494 }, - { 0x2937, 103498 }, - { 0x2947, 103502 }, - { 0x294A, 103506 }, - { 0x294B, 103510 }, - { 0x2925, 103514 }, - { 0x293E, 103518 }, - { 0x2940, 103522 }, - { 0x2927, 103526 }, - { 0x2926, 103530 }, - { 0x2944, 103534 }, - { 0x2948, 103538 }, - { 0x2946, 103542 }, - { 0x2949, 103546 }, - { 0x293F, 103550 }, - { 0x292D, 103554 }, - { 0x292E, 103558 }, - { 0x292F, 103562 }, - { 0x2930, 103566 }, - { 0x2932, 103570 }, - { 0x293B, 103574 }, - { 0x2934, 103578 }, - { 0x2935, 103582 }, - { 0x292B, 103586 }, - { 0x2936, 103590 }, - { 0x2929, 103594 }, - { 0x2942, 103598 }, - { 0x292A, 103602 }, - { 0x2941, 103606 }, - { 0x293D, 103610 }, - { 0x293A, 103614 }, - { 0x2943, 103618 }, - { 0x2939, 103622 }, - { 0x2938, 103626 }, - { 0x293C, 103630 }, - { 0x2933, 103634 }, - { 0x0E78, 103638 }, - { 0x0E7C, 103641 }, - { 0x0E9E, 103644 }, - { 0x0E99, 103647 }, - { 0x0E80, 103650 }, - { 0x0E85, 103653 }, - { 0x0E8B, 103656 }, - { 0x0E9B, 103659 }, - { 0x0E9F, 103662 }, - { 0x0EA5, 103665 }, - { 0x0EA2, 103668 }, - { 0x0E79, 103671 }, - { 0x0E92, 103674 }, - { 0x0E94, 103677 }, - { 0x0E7B, 103680 }, - { 0x0E7A, 103683 }, - { 0x0E98, 103686 }, - { 0x0E9C, 103689 }, - { 0x0E9A, 103692 }, - { 0x0E9D, 103695 }, - { 0x0E93, 103698 }, - { 0x0E81, 103701 }, - { 0x0E82, 103704 }, - { 0x0E83, 103707 }, - { 0x0E84, 103710 }, - { 0x0E86, 103713 }, - { 0x0E8F, 103716 }, - { 0x0E88, 103719 }, - { 0x0E89, 103722 }, - { 0x0E7F, 103725 }, - { 0x0E8A, 103728 }, - { 0x0E7D, 103731 }, - { 0x0E96, 103734 }, - { 0x0E7E, 103737 }, - { 0x0E95, 103740 }, - { 0x0E91, 103743 }, - { 0x0E8E, 103746 }, - { 0x0EA6, 103749 }, - { 0x0E97, 103753 }, - { 0x0E8D, 103756 }, - { 0x0E8C, 103759 }, - { 0x0E90, 103762 }, - { 0x0E87, 103765 }, - { 0x0EA0, 103768 }, - { 0x0EA7, 103771 }, - { 0x0EA1, 103775 }, - { 0x0E50, 103779 }, - { 0x0E54, 103783 }, - { 0x0E71, 103787 }, - { 0x0E58, 103791 }, - { 0x0E5D, 103795 }, - { 0x0E63, 103799 }, - { 0x0E73, 103803 }, - { 0x0E76, 103807 }, - { 0x0E77, 103811 }, - { 0x0E51, 103815 }, - { 0x0E6A, 103819 }, - { 0x0E6C, 103823 }, - { 0x0E53, 103827 }, - { 0x0E52, 103831 }, - { 0x0E70, 103835 }, - { 0x0E74, 103839 }, - { 0x0E72, 103843 }, - { 0x0E75, 103847 }, - { 0x0E6B, 103851 }, - { 0x0E59, 103855 }, - { 0x0E5A, 103859 }, - { 0x0E5B, 103863 }, - { 0x0E5C, 103867 }, - { 0x0E5E, 103871 }, - { 0x0E67, 103875 }, - { 0x0E60, 103879 }, - { 0x0E61, 103883 }, - { 0x0E57, 103887 }, - { 0x0E62, 103891 }, - { 0x0E55, 103895 }, - { 0x0E6E, 103899 }, - { 0x0E56, 103903 }, - { 0x0E6D, 103907 }, - { 0x0E69, 103911 }, - { 0x0E66, 103915 }, - { 0x0E6F, 103919 }, - { 0x0E65, 103923 }, - { 0x0E64, 103927 }, - { 0x0E68, 103931 }, - { 0x0E5F, 103935 }, - { 0x1936, 103939 }, - { 0x193A, 103944 }, - { 0x195C, 103949 }, - { 0x1957, 103954 }, - { 0x193E, 103959 }, - { 0x1943, 103964 }, - { 0x1949, 103969 }, - { 0x1959, 103974 }, - { 0x195D, 103979 }, - { 0x1961, 103984 }, - { 0x1960, 103989 }, - { 0x1937, 103994 }, - { 0x1950, 103999 }, - { 0x1952, 104004 }, - { 0x1939, 104009 }, - { 0x1938, 104014 }, - { 0x1956, 104019 }, - { 0x195A, 104024 }, - { 0x1958, 104029 }, - { 0x195B, 104034 }, - { 0x1951, 104039 }, - { 0x193F, 104044 }, - { 0x1940, 104049 }, - { 0x1941, 104054 }, - { 0x1942, 104059 }, - { 0x1944, 104064 }, - { 0x194D, 104069 }, - { 0x1946, 104074 }, - { 0x1947, 104079 }, - { 0x193D, 104084 }, - { 0x1948, 104089 }, - { 0x193B, 104094 }, - { 0x1954, 104099 }, - { 0x193C, 104104 }, - { 0x1953, 104109 }, - { 0x194F, 104114 }, - { 0x194C, 104119 }, - { 0x1962, 104124 }, - { 0x1955, 104130 }, - { 0x194B, 104135 }, - { 0x194A, 104140 }, - { 0x194E, 104145 }, - { 0x1945, 104150 }, - { 0x195E, 104155 }, - { 0x1963, 104160 }, - { 0x195F, 104166 }, - { 0x0EA3, 104172 }, - { 0x9322, 104175 }, - { 0x91EB, 104176 }, - { 0x91B3, 104182 }, - { 0x9458, 104184 }, - { 0x9457, 104193 }, - { 0x91B4, 104198 }, - { 0x09E8, 104203 }, - { 0x09D8, 104205 }, - { 0x09FA, 104208 }, - { 0x09FE, 104211 }, - { 0x09FC, 104216 }, - { 0x09FB, 104219 }, - { 0x09E7, 104222 }, - { 0x09A7, 104225 }, - { 0x09A6, 104228 }, - { 0x09D9, 104231 }, - { 0x09FD, 104234 }, - { 0x09FF, 104239 }, - { 0x09A5, 104244 }, - { 0x09EE, 104247 }, - { 0x09F3, 104250 }, - { 0x09EF, 104253 }, - { 0x09F2, 104256 }, - { 0x09F1, 104259 }, - { 0x09F6, 104262 }, - { 0x09ED, 104265 }, - { 0x09F5, 104268 }, - { 0x09F4, 104271 }, - { 0x09F0, 104274 }, - { 0x09F8, 104277 }, - { 0x09E2, 104280 }, - { 0x09DB, 104284 }, - { 0x09E5, 104288 }, - { 0x09DD, 104292 }, - { 0x09DA, 104296 }, - { 0x09E3, 104300 }, - { 0x09E6, 104304 }, - { 0x09DC, 104308 }, - { 0x09DE, 104312 }, - { 0x09E1, 104316 }, - { 0x09E4, 104321 }, - { 0x09EB, 104326 }, - { 0x09DF, 104331 }, - { 0x09EC, 104336 }, - { 0x09E0, 104341 }, - { 0x09B0, 104346 }, - { 0x09B3, 104350 }, - { 0x09A8, 104354 }, - { 0x09B1, 104357 }, - { 0x09AA, 104360 }, - { 0x09B4, 104363 }, - { 0x09AC, 104366 }, - { 0x09A9, 104369 }, - { 0x09B2, 104372 }, - { 0x09B5, 104375 }, - { 0x09CC, 104378 }, - { 0x09BB, 104381 }, - { 0x09C7, 104384 }, - { 0x09B8, 104387 }, - { 0x09D7, 104390 }, - { 0x09AB, 104393 }, - { 0x09BD, 104396 }, - { 0x09B6, 104399 }, - { 0x09D1, 104402 }, - { 0x09CE, 104405 }, - { 0x09C9, 104408 }, - { 0x09CA, 104411 }, - { 0x09D0, 104414 }, - { 0x09D6, 104417 }, - { 0x09C5, 104420 }, - { 0x09AD, 104423 }, - { 0x09D3, 104426 }, - { 0x09CF, 104429 }, - { 0x09CD, 104432 }, - { 0x09BC, 104435 }, - { 0x09C2, 104438 }, - { 0x09C8, 104441 }, - { 0x09B9, 104444 }, - { 0x09BE, 104447 }, - { 0x09B7, 104450 }, - { 0x09D2, 104453 }, - { 0x09BA, 104456 }, - { 0x09C4, 104459 }, - { 0x09BF, 104462 }, - { 0x09CB, 104465 }, - { 0x09D4, 104468 }, - { 0x09D5, 104471 }, - { 0x09C6, 104474 }, - { 0x09C0, 104477 }, - { 0x09F9, 104480 }, - { 0x09C3, 104483 }, - { 0x09C1, 104486 }, - { 0x09AF, 104489 }, - { 0x09AE, 104493 }, - { 0x09EA, 104497 }, - { 0x09E9, 104501 }, - { 0x09F7, 104505 }, - { 0x09A2, 104508 }, - { 0x09A0, 104511 }, - { 0x09A1, 104513 }, - { 0x0955, 104515 }, - { 0x0956, 104519 }, - { 0x0983, 104522 }, - { 0x098E, 104525 }, - { 0x098D, 104528 }, - { 0x09A3, 104531 }, - { 0x0957, 104534 }, - { 0x099F, 104537 }, - { 0x0995, 104539 }, - { 0x099A, 104542 }, - { 0x0996, 104545 }, - { 0x0999, 104548 }, - { 0x0998, 104551 }, - { 0x099D, 104554 }, - { 0x0994, 104557 }, - { 0x099C, 104560 }, - { 0x099B, 104563 }, - { 0x0997, 104566 }, - { 0x099E, 104569 }, - { 0x0985, 104571 }, - { 0x0987, 104575 }, - { 0x0984, 104579 }, - { 0x098A, 104583 }, - { 0x098C, 104587 }, - { 0x0989, 104591 }, - { 0x0986, 104595 }, - { 0x098B, 104599 }, - { 0x0988, 104603 }, - { 0x0958, 104607 }, - { 0x095A, 104610 }, - { 0x095C, 104613 }, - { 0x0959, 104616 }, - { 0x095F, 104619 }, - { 0x0961, 104622 }, - { 0x0978, 104625 }, - { 0x0967, 104628 }, - { 0x0973, 104631 }, - { 0x095E, 104634 }, - { 0x0993, 104637 }, - { 0x0964, 104640 }, - { 0x0982, 104643 }, - { 0x095B, 104646 }, - { 0x0969, 104649 }, - { 0x0962, 104652 }, - { 0x097D, 104655 }, - { 0x097A, 104658 }, - { 0x0975, 104661 }, - { 0x0960, 104664 }, - { 0x0976, 104667 }, - { 0x097C, 104670 }, - { 0x0981, 104673 }, - { 0x0971, 104676 }, - { 0x095D, 104679 }, - { 0x097F, 104682 }, - { 0x097B, 104685 }, - { 0x0991, 104688 }, - { 0x0979, 104691 }, - { 0x0968, 104694 }, - { 0x096E, 104697 }, - { 0x0974, 104700 }, - { 0x0965, 104703 }, - { 0x096A, 104706 }, - { 0x0963, 104709 }, - { 0x097E, 104712 }, - { 0x0966, 104715 }, - { 0x0970, 104718 }, - { 0x096B, 104721 }, - { 0x0977, 104724 }, - { 0x0992, 104727 }, - { 0x0980, 104730 }, - { 0x0972, 104733 }, - { 0x096C, 104736 }, - { 0x096F, 104739 }, - { 0x0990, 104742 }, - { 0x098F, 104745 }, - { 0x096D, 104748 }, - { 0x09A4, 104751 }, - { 0x946C, 104754 }, - { 0x2BCE, 104755 }, - { 0x2BD3, 104758 }, - { 0x2BE5, 104761 }, - { 0x2BCF, 104764 }, - { 0x2BD2, 104767 }, - { 0x2BD1, 104770 }, - { 0x2BD6, 104773 }, - { 0x2BD5, 104776 }, - { 0x2BD4, 104779 }, - { 0x2BD0, 104782 }, - { 0x2BE7, 104785 }, - { 0x2BE6, 104788 }, - { 0x8FD6, 104791 }, - { 0x94C2, 104793 }, - { 0x2F9F, 104794 }, - { 0x2FC8, 104798 }, - { 0x2FBD, 104802 }, - { 0x2FD1, 104806 }, - { 0x2FD2, 104811 }, - { 0x2FB5, 104816 }, - { 0x2FCC, 104821 }, - { 0x2FCB, 104827 }, - { 0x2FCA, 104832 }, - { 0x2FB6, 104836 }, - { 0x2F99, 104841 }, - { 0x2FCE, 104846 }, - { 0x2FD0, 104851 }, - { 0x2F9A, 104855 }, - { 0x2FAA, 104860 }, - { 0x2FD7, 104866 }, - { 0x2FAE, 104870 }, - { 0x2FBA, 104873 }, - { 0x2FB2, 104877 }, - { 0x2FA6, 104881 }, - { 0x2FB4, 104885 }, - { 0x2FD5, 104889 }, - { 0x2FB3, 104893 }, - { 0x2FA3, 104897 }, - { 0x2FA1, 104900 }, - { 0x2FD6, 104904 }, - { 0x2FD8, 104908 }, - { 0x2FAD, 104912 }, - { 0x2FC4, 104916 }, - { 0x2FB0, 104921 }, - { 0x2FA0, 104924 }, - { 0x2FA7, 104928 }, - { 0x2FC6, 104931 }, - { 0x2FB9, 104935 }, - { 0x2F9D, 104938 }, - { 0x2FAB, 104941 }, - { 0x2F9E, 104944 }, - { 0x2FC1, 104947 }, - { 0x2FB8, 104950 }, - { 0x2FC2, 104953 }, - { 0x2FBB, 104956 }, - { 0x2FA2, 104959 }, - { 0x2F9C, 104962 }, - { 0x2FCF, 104966 }, - { 0x2FBC, 104969 }, - { 0x2FA9, 104975 }, - { 0x2FC5, 104978 }, - { 0x2FB7, 104982 }, - { 0x2FB1, 104985 }, - { 0x2FAF, 104988 }, - { 0x2F9B, 104992 }, - { 0x2FD3, 104998 }, - { 0x2FA8, 105001 }, - { 0x2FA5, 105004 }, - { 0x2FD4, 105007 }, - { 0x2FBE, 105010 }, - { 0x2FC7, 105013 }, - { 0x2FC9, 105016 }, - { 0x2FA4, 105019 }, - { 0x2FC0, 105022 }, - { 0x2FCD, 105025 }, - { 0x2FBF, 105028 }, - { 0x2FC3, 105031 }, - { 0x2FAC, 105034 }, - { 0x8EED, 105037 }, - { 0x2BEE, 105038 }, - { 0x2BF4, 105041 }, - { 0x2BF0, 105044 }, - { 0x2C3F, 105047 }, - { 0x2BF6, 105050 }, - { 0x2BF2, 105053 }, - { 0x2C1C, 105056 }, - { 0x2C25, 105059 }, - { 0x2C1F, 105062 }, - { 0x2C28, 105065 }, - { 0x2C22, 105068 }, - { 0x2C0C, 105071 }, - { 0x2C13, 105074 }, - { 0x2C0E, 105077 }, - { 0x2C15, 105080 }, - { 0x2C11, 105083 }, - { 0x2BF8, 105086 }, - { 0x2BFE, 105089 }, - { 0x2BFA, 105092 }, - { 0x2C00, 105095 }, - { 0x2BFC, 105098 }, - { 0x2C1B, 105101 }, - { 0x2C24, 105104 }, - { 0x2C1E, 105107 }, - { 0x2C27, 105110 }, - { 0x2C21, 105113 }, - { 0x2BF7, 105116 }, - { 0x2BFD, 105119 }, - { 0x2BF9, 105122 }, - { 0x2BFF, 105125 }, - { 0x2BFB, 105128 }, - { 0x2C2A, 105131 }, - { 0x2C2D, 105134 }, - { 0x2C2B, 105137 }, - { 0x2C2E, 105140 }, - { 0x2C2C, 105143 }, - { 0x2C16, 105146 }, - { 0x2C19, 105149 }, - { 0x2C17, 105152 }, - { 0x2C1A, 105155 }, - { 0x2C18, 105158 }, - { 0x2C1D, 105161 }, - { 0x2C26, 105164 }, - { 0x2C20, 105167 }, - { 0x2C29, 105170 }, - { 0x2C23, 105173 }, - { 0x2C35, 105176 }, - { 0x2C38, 105179 }, - { 0x2C36, 105182 }, - { 0x2C39, 105185 }, - { 0x2C37, 105188 }, - { 0x2C01, 105191 }, - { 0x2C07, 105194 }, - { 0x2C03, 105197 }, - { 0x2C09, 105200 }, - { 0x2C05, 105203 }, - { 0x2C0B, 105206 }, - { 0x2C12, 105209 }, - { 0x2C0D, 105212 }, - { 0x2C14, 105215 }, - { 0x2C10, 105218 }, - { 0x2C40, 105221 }, - { 0x2C3B, 105224 }, - { 0x2C3D, 105227 }, - { 0x2C3C, 105230 }, - { 0x2C3E, 105233 }, - { 0x2C30, 105236 }, - { 0x2C34, 105239 }, - { 0x2C32, 105242 }, - { 0x2C02, 105245 }, - { 0x2C08, 105248 }, - { 0x2C04, 105251 }, - { 0x2C0A, 105254 }, - { 0x2C06, 105257 }, - { 0x2BED, 105260 }, - { 0x2BF3, 105264 }, - { 0x2BEF, 105268 }, - { 0x2BF5, 105272 }, - { 0x2BF1, 105276 }, - { 0x2C41, 105280 }, - { 0x2C42, 105284 }, - { 0x7A1F, 105288 }, - { 0x2C0F, 105292 }, - { 0x2C3A, 105296 }, - { 0x7A21, 105300 }, - { 0x7A20, 105304 }, - { 0x7A22, 105308 }, - { 0x2C2F, 105312 }, - { 0x2C33, 105316 }, - { 0x2C31, 105320 }, - { 0x7A1B, 105324 }, - { 0x78FD, 105328 }, - { 0x2C48, 105332 }, - { 0x2C49, 105336 }, - { 0x2C47, 105339 }, - { 0x2318, 105342 }, - { 0x8FD0, 105344 }, - { 0x8F98, 105345 }, - { 0x95D3, 105346 }, - { 0x462F, 105347 }, - { 0x463B, 105351 }, - { 0x4637, 105355 }, - { 0x4638, 105359 }, - { 0x4640, 105363 }, - { 0x4630, 105367 }, - { 0x463A, 105371 }, - { 0x462C, 105375 }, - { 0x4632, 105379 }, - { 0x4635, 105383 }, - { 0x463D, 105387 }, - { 0x463E, 105391 }, - { 0x463F, 105395 }, - { 0x4633, 105399 }, - { 0x4634, 105403 }, - { 0x462B, 105407 }, - { 0x462D, 105411 }, - { 0x463C, 105415 }, - { 0x4631, 105419 }, - { 0x462E, 105423 }, - { 0x4636, 105427 }, - { 0x4639, 105431 }, - { 0x4642, 105435 }, - { 0x4647, 105439 }, - { 0x4648, 105444 }, - { 0x4645, 105449 }, - { 0x4649, 105453 }, - { 0x4643, 105458 }, - { 0x4644, 105462 }, - { 0x4646, 105466 }, - { 0x4641, 105470 }, - { 0x909B, 105474 }, - { 0x918D, 105476 }, - { 0x1E75, 105480 }, - { 0x260A, 105481 }, - { 0x1E82, 105486 }, - { 0x2644, 105487 }, - { 0x2646, 105491 }, - { 0x263A, 105494 }, - { 0x2647, 105498 }, - { 0x2648, 105501 }, - { 0x2643, 105504 }, - { 0x2645, 105510 }, - { 0x2641, 105513 }, - { 0x263B, 105518 }, - { 0x2005, 105522 }, - { 0x2668, 105524 }, - { 0x2A3B, 105526 }, - { 0x2A3C, 105529 }, - { 0x1D82, 105535 }, - { 0x1E95, 105538 }, - { 0x007E, 105541 }, - { 0x1CD4, 105544 }, - { 0x2313, 105546 }, - { 0x0060, 105548 }, - { 0x2A0E, 105551 }, - { 0x2327, 105553 }, - { 0x902C, 105556 }, - { 0x8F96, 105558 }, - { 0x8F41, 105561 }, - { 0x8FA2, 105563 }, - { 0x902D, 105565 }, - { 0x90E3, 105567 }, - { 0x2BB1, 105571 }, - { 0x392C, 105575 }, - { 0x3935, 105578 }, - { 0x3936, 105581 }, - { 0x392E, 105585 }, - { 0x3930, 105588 }, - { 0x392F, 105591 }, - { 0x3944, 105594 }, - { 0x3931, 105598 }, - { 0x3933, 105601 }, - { 0x3934, 105604 }, - { 0x3932, 105607 }, - { 0x3937, 105610 }, - { 0x3945, 105613 }, - { 0x38EC, 105616 }, - { 0x391E, 105619 }, - { 0x38ED, 105623 }, - { 0x38EE, 105626 }, - { 0x38EB, 105629 }, - { 0x393B, 105632 }, - { 0x3940, 105635 }, - { 0x393C, 105638 }, - { 0x393F, 105641 }, - { 0x393E, 105644 }, - { 0x3943, 105647 }, - { 0x393A, 105650 }, - { 0x3942, 105653 }, - { 0x3941, 105656 }, - { 0x393D, 105659 }, - { 0x392D, 105662 }, - { 0x3923, 105665 }, - { 0x3924, 105669 }, - { 0x3921, 105674 }, - { 0x3922, 105678 }, - { 0x3926, 105683 }, - { 0x3927, 105688 }, - { 0x3925, 105692 }, - { 0x391F, 105696 }, - { 0x3920, 105700 }, - { 0x38EF, 105704 }, - { 0x38F7, 105707 }, - { 0x38F1, 105710 }, - { 0x38F0, 105713 }, - { 0x38F9, 105717 }, - { 0x38F3, 105720 }, - { 0x38F8, 105723 }, - { 0x3912, 105726 }, - { 0x3913, 105729 }, - { 0x3900, 105733 }, - { 0x3901, 105736 }, - { 0x390D, 105740 }, - { 0x390E, 105743 }, - { 0x38FD, 105747 }, - { 0x38FE, 105750 }, - { 0x391D, 105754 }, - { 0x38F2, 105757 }, - { 0x3902, 105760 }, - { 0x3904, 105763 }, - { 0x38FA, 105767 }, - { 0x38FC, 105770 }, - { 0x38FB, 105774 }, - { 0x3918, 105778 }, - { 0x3914, 105781 }, - { 0x390F, 105784 }, - { 0x390A, 105787 }, - { 0x3910, 105791 }, - { 0x38F4, 105794 }, - { 0x3911, 105798 }, - { 0x3916, 105802 }, - { 0x3917, 105805 }, - { 0x391C, 105809 }, - { 0x391A, 105812 }, - { 0x391B, 105816 }, - { 0x390B, 105820 }, - { 0x390C, 105823 }, - { 0x3919, 105827 }, - { 0x3915, 105830 }, - { 0x3908, 105833 }, - { 0x3909, 105836 }, - { 0x38FF, 105840 }, - { 0x38F5, 105843 }, - { 0x38F6, 105847 }, - { 0x3905, 105852 }, - { 0x3903, 105855 }, - { 0x3906, 105859 }, - { 0x3907, 105862 }, - { 0x3938, 105866 }, - { 0x392B, 105870 }, - { 0x392A, 105872 }, - { 0x3928, 105876 }, - { 0x3929, 105880 }, - { 0x3939, 105884 }, - { 0x912C, 105886 }, - { 0x9467, 105887 }, - { 0x81D4, 105888 }, - { 0x81D9, 105891 }, - { 0x81DD, 105894 }, - { 0x81D5, 105897 }, - { 0x81D8, 105900 }, - { 0x81D7, 105903 }, - { 0x81DC, 105906 }, - { 0x81D3, 105909 }, - { 0x81DB, 105912 }, - { 0x81DA, 105915 }, - { 0x81D6, 105918 }, - { 0x81DE, 105921 }, - { 0x81DF, 105924 }, - { 0x81E2, 105927 }, - { 0x81E3, 105930 }, - { 0x81E5, 105933 }, - { 0x81E1, 105936 }, - { 0x81E6, 105939 }, - { 0x81E0, 105942 }, - { 0x81E4, 105945 }, - { 0x94C6, 105948 }, - { 0x2C4C, 105949 }, - { 0x2C52, 105952 }, - { 0x2C4E, 105955 }, - { 0x2C9D, 105958 }, - { 0x2C54, 105961 }, - { 0x2C50, 105964 }, - { 0x2C7A, 105967 }, - { 0x2C83, 105970 }, - { 0x2C7D, 105973 }, - { 0x2C86, 105976 }, - { 0x2C80, 105979 }, - { 0x2C6A, 105982 }, - { 0x2C71, 105985 }, - { 0x2C6C, 105988 }, - { 0x2C73, 105991 }, - { 0x2C6F, 105994 }, - { 0x2C56, 105997 }, - { 0x2C5C, 106000 }, - { 0x2C58, 106003 }, - { 0x2C5E, 106006 }, - { 0x2C5A, 106009 }, - { 0x2C79, 106012 }, - { 0x2C82, 106015 }, - { 0x2C7C, 106018 }, - { 0x2C85, 106021 }, - { 0x2C7F, 106024 }, - { 0x2C55, 106027 }, - { 0x2C5B, 106030 }, - { 0x2C57, 106033 }, - { 0x2C5D, 106036 }, - { 0x2C59, 106039 }, - { 0x2C88, 106042 }, - { 0x2C8B, 106045 }, - { 0x2C89, 106048 }, - { 0x2C8C, 106051 }, - { 0x2C8A, 106054 }, - { 0x2C74, 106057 }, - { 0x2C77, 106060 }, - { 0x2C75, 106063 }, - { 0x2C78, 106066 }, - { 0x2C76, 106069 }, - { 0x2C7B, 106072 }, - { 0x2C84, 106075 }, - { 0x2C7E, 106078 }, - { 0x2C87, 106081 }, - { 0x2C81, 106084 }, - { 0x2C93, 106087 }, - { 0x2C96, 106090 }, - { 0x2C94, 106093 }, - { 0x2C97, 106096 }, - { 0x2C95, 106099 }, - { 0x2C5F, 106102 }, - { 0x2C65, 106105 }, - { 0x2C61, 106108 }, - { 0x2C67, 106111 }, - { 0x2C63, 106114 }, - { 0x2C69, 106117 }, - { 0x2C70, 106120 }, - { 0x2C6B, 106123 }, - { 0x2C72, 106126 }, - { 0x2C6E, 106129 }, - { 0x2CA1, 106132 }, - { 0x2CA3, 106135 }, - { 0x2CA2, 106138 }, - { 0x2CA4, 106141 }, - { 0x2C9E, 106144 }, - { 0x2C99, 106147 }, - { 0x2C9B, 106150 }, - { 0x2C9A, 106153 }, - { 0x2C9C, 106156 }, - { 0x2C8E, 106159 }, - { 0x2C92, 106162 }, - { 0x2C90, 106165 }, - { 0x2C60, 106168 }, - { 0x2C66, 106171 }, - { 0x2C62, 106174 }, - { 0x2C68, 106177 }, - { 0x2C64, 106180 }, - { 0x2C4B, 106183 }, - { 0x2C51, 106187 }, - { 0x2C4D, 106191 }, - { 0x7A27, 106195 }, - { 0x2C53, 106199 }, - { 0x2C4F, 106203 }, - { 0x2D8F, 106207 }, - { 0x2D92, 106211 }, - { 0x2D90, 106215 }, - { 0x2D93, 106219 }, - { 0x2D91, 106223 }, - { 0x2C9F, 106227 }, - { 0x2CA0, 106231 }, - { 0x7A23, 106235 }, - { 0x2D8A, 106239 }, - { 0x2D94, 106243 }, - { 0x2D8E, 106247 }, - { 0x2D95, 106251 }, - { 0x2D98, 106255 }, - { 0x2D96, 106259 }, - { 0x2D99, 106263 }, - { 0x2D97, 106267 }, - { 0x2D8B, 106271 }, - { 0x2D8C, 106275 }, - { 0x2D8D, 106279 }, - { 0x2C6D, 106283 }, - { 0x2C98, 106287 }, - { 0x7A25, 106291 }, - { 0x7A24, 106295 }, - { 0x7A26, 106299 }, - { 0x2C8D, 106303 }, - { 0x2C91, 106307 }, - { 0x2C8F, 106311 }, - { 0x78EF, 106315 }, - { 0x78F0, 106319 }, - { 0x78F1, 106323 }, - { 0x78F2, 106327 }, - { 0x78F3, 106331 }, - { 0x78F4, 106335 }, - { 0x78F5, 106339 }, - { 0x78F6, 106344 }, - { 0x78F7, 106349 }, - { 0x78F8, 106354 }, - { 0x78F9, 106359 }, - { 0x78FA, 106364 }, - { 0x78FB, 106369 }, - { 0x78FC, 106374 }, - { 0x7A1E, 106378 }, - { 0x7A1D, 106382 }, - { 0x7A1C, 106386 }, - { 0x2CA5, 106390 }, - { 0x2CA8, 106393 }, - { 0x2CA9, 106397 }, - { 0x2CA7, 106400 }, - { 0x1F7F, 106403 }, - { 0x9159, 106404 }, - { 0x94FC, 106407 }, - { 0x947B, 106409 }, - { 0x96FB, 106413 }, - { 0x95D6, 106415 }, - { 0x9225, 106417 }, - { 0x9037, 106421 }, - { 0x8F20, 106422 }, - { 0x4C0C, 106423 }, - { 0x4BE9, 106426 }, - { 0x4BEC, 106429 }, - { 0x4BEA, 106432 }, - { 0x4BED, 106435 }, - { 0x4BEB, 106438 }, - { 0x4C03, 106441 }, - { 0x4BF2, 106444 }, - { 0x4BFE, 106447 }, - { 0x4BF0, 106450 }, - { 0x4C0A, 106453 }, - { 0x4BF4, 106456 }, - { 0x4BEE, 106459 }, - { 0x4C07, 106462 }, - { 0x4C05, 106465 }, - { 0x4C00, 106468 }, - { 0x4C01, 106471 }, - { 0x4C06, 106474 }, - { 0x4C09, 106477 }, - { 0x4BFC, 106480 }, - { 0x4C08, 106483 }, - { 0x4C04, 106486 }, - { 0x4BF3, 106489 }, - { 0x4BF9, 106492 }, - { 0x4BFF, 106495 }, - { 0x4BF1, 106498 }, - { 0x4BF5, 106501 }, - { 0x4BEF, 106504 }, - { 0x4BFB, 106507 }, - { 0x4BF6, 106510 }, - { 0x4C02, 106513 }, - { 0x4C0B, 106516 }, - { 0x4BFD, 106519 }, - { 0x4BF7, 106522 }, - { 0x4BFA, 106525 }, - { 0x4BF8, 106528 }, - { 0x4C0E, 106531 }, - { 0x4C0F, 106534 }, - { 0x4C0D, 106537 }, - { 0x9321, 106540 }, - { 0x22D9, 106541 }, - { 0x9189, 106543 }, - { 0x1EB5, 106544 }, - { 0x1E78, 106546 }, - { 0x25D5, 106548 }, - { 0x25D4, 106560 }, - { 0x25D7, 106572 }, - { 0x25D6, 106584 }, - { 0x25D9, 106596 }, - { 0x25DB, 106608 }, - { 0x25D8, 106620 }, - { 0x25DA, 106632 }, - { 0x25C7, 106644 }, - { 0x25C9, 106648 }, - { 0x2A42, 106653 }, - { 0x2A4A, 106655 }, - { 0x2A49, 106658 }, - { 0x4704, 106661 }, - { 0x4705, 106665 }, - { 0x4706, 106669 }, - { 0x4707, 106673 }, - { 0x470A, 106677 }, - { 0x471B, 106681 }, - { 0x4716, 106685 }, - { 0x4710, 106689 }, - { 0x470C, 106693 }, - { 0x470D, 106697 }, - { 0x470E, 106701 }, - { 0x470B, 106705 }, - { 0x4717, 106709 }, - { 0x470F, 106713 }, - { 0x4713, 106717 }, - { 0x4715, 106721 }, - { 0x4718, 106725 }, - { 0x4719, 106729 }, - { 0x471A, 106733 }, - { 0x4709, 106737 }, - { 0x4708, 106741 }, - { 0x4712, 106745 }, - { 0x4711, 106749 }, - { 0x4714, 106753 }, - { 0x4720, 106758 }, - { 0x4730, 106762 }, - { 0x474B, 106767 }, - { 0x4739, 106773 }, - { 0x4725, 106778 }, - { 0x4735, 106782 }, - { 0x4750, 106787 }, - { 0x473E, 106793 }, - { 0x4729, 106798 }, - { 0x4742, 106802 }, - { 0x4721, 106807 }, - { 0x4731, 106811 }, - { 0x474C, 106816 }, - { 0x473A, 106822 }, - { 0x4724, 106827 }, - { 0x4734, 106831 }, - { 0x474F, 106836 }, - { 0x473D, 106842 }, - { 0x4723, 106847 }, - { 0x4733, 106851 }, - { 0x474E, 106856 }, - { 0x473C, 106862 }, - { 0x4728, 106867 }, - { 0x4738, 106871 }, - { 0x4753, 106876 }, - { 0x4741, 106882 }, - { 0x4727, 106887 }, - { 0x4737, 106891 }, - { 0x4752, 106896 }, - { 0x4740, 106902 }, - { 0x472D, 106907 }, - { 0x4746, 106911 }, - { 0x472C, 106916 }, - { 0x4745, 106920 }, - { 0x4726, 106925 }, - { 0x4736, 106929 }, - { 0x4751, 106934 }, - { 0x473F, 106940 }, - { 0x472E, 106945 }, - { 0x4747, 106949 }, - { 0x4722, 106954 }, - { 0x4732, 106958 }, - { 0x474D, 106963 }, - { 0x473B, 106969 }, - { 0x4749, 106974 }, - { 0x474A, 106979 }, - { 0x472B, 106984 }, - { 0x4744, 106988 }, - { 0x472A, 106993 }, - { 0x4743, 106997 }, - { 0x472F, 107002 }, - { 0x4748, 107006 }, - { 0x471D, 107011 }, - { 0x4754, 107016 }, - { 0x4759, 107021 }, - { 0x475D, 107026 }, - { 0x4755, 107031 }, - { 0x4758, 107036 }, - { 0x4757, 107041 }, - { 0x475C, 107046 }, - { 0x475B, 107051 }, - { 0x475A, 107056 }, - { 0x4756, 107061 }, - { 0x471C, 107066 }, - { 0x471F, 107071 }, - { 0x471E, 107075 }, - { 0x46E4, 107079 }, - { 0x46E5, 107083 }, - { 0x46E6, 107087 }, - { 0x46E7, 107091 }, - { 0x46EA, 107095 }, - { 0x4701, 107099 }, - { 0x46FA, 107103 }, - { 0x46F4, 107107 }, - { 0x46ED, 107111 }, - { 0x46EE, 107115 }, - { 0x46F0, 107119 }, - { 0x46EC, 107123 }, - { 0x46FB, 107127 }, - { 0x46F2, 107131 }, - { 0x46F7, 107135 }, - { 0x46F9, 107139 }, - { 0x46FC, 107143 }, - { 0x46FE, 107147 }, - { 0x4700, 107151 }, - { 0x46E9, 107155 }, - { 0x46E8, 107159 }, - { 0x46F6, 107163 }, - { 0x46F5, 107167 }, - { 0x46EB, 107171 }, - { 0x46EF, 107175 }, - { 0x46F1, 107179 }, - { 0x46F3, 107183 }, - { 0x46F8, 107187 }, - { 0x46FD, 107191 }, - { 0x46FF, 107195 }, - { 0x4702, 107199 }, - { 0x4703, 107203 }, - { 0x202C, 107207 }, - { 0x202D, 107212 }, - { 0x202B, 107216 }, - { 0x2029, 107221 }, - { 0x2028, 107225 }, - { 0x202A, 107227 }, - { 0x202E, 107231 }, - { 0x2030, 107233 }, - { 0x202F, 107235 }, - { 0x8F49, 107237 }, - { 0x95AE, 107239 }, - { 0x9070, 107241 }, - { 0x9188, 107242 }, - { 0x3A82, 107243 }, - { 0x0293, 107248 }, - { 0x0283, 107252 }, - { 0x3721, 107256 }, - { 0x36C9, 107259 }, - { 0x36C8, 107263 }, - { 0x36CA, 107268 }, - { 0x02BB, 107273 }, - { 0x02B9, 107278 }, - { 0x02AF, 107283 }, - { 0x02AE, 107288 }, - { 0x02BE, 107293 }, - { 0x02B0, 107298 }, - { 0x02B2, 107303 }, - { 0x02A7, 107307 }, - { 0x028E, 107312 }, - { 0x028D, 107317 }, - { 0x02B1, 107322 }, - { 0x02B6, 107327 }, - { 0x36BC, 107331 }, - { 0x36C1, 107337 }, - { 0x028C, 107344 }, - { 0x36D0, 107348 }, - { 0x028B, 107354 }, - { 0x36C6, 107359 }, - { 0x3739, 107365 }, - { 0x02A6, 107370 }, - { 0x36BB, 107375 }, - { 0x36C0, 107381 }, - { 0x36C5, 107388 }, - { 0x02A9, 107394 }, - { 0x0294, 107400 }, - { 0x0284, 107404 }, - { 0x0290, 107408 }, - { 0x02A5, 107413 }, - { 0x36BA, 107418 }, - { 0x36BF, 107424 }, - { 0x36C4, 107431 }, - { 0x027E, 107437 }, - { 0x3A91, 107442 }, - { 0x0281, 107446 }, - { 0x02BD, 107450 }, - { 0x0295, 107454 }, - { 0x02AA, 107458 }, - { 0x0289, 107464 }, - { 0x02BA, 107468 }, - { 0x02B8, 107473 }, - { 0x373A, 107478 }, - { 0x029E, 107481 }, - { 0x028A, 107485 }, - { 0x36CB, 107489 }, - { 0x0296, 107495 }, - { 0x0278, 107499 }, - { 0x027D, 107502 }, - { 0x3A92, 107507 }, - { 0x0282, 107511 }, - { 0x02BC, 107515 }, - { 0x373B, 107518 }, - { 0x19DA, 107523 }, - { 0x19DE, 107527 }, - { 0x45C0, 107531 }, - { 0x1A33, 107537 }, - { 0x1A34, 107541 }, - { 0x19DF, 107547 }, - { 0x45C6, 107551 }, - { 0x45C7, 107557 }, - { 0x45C5, 107565 }, - { 0x19E0, 107571 }, - { 0x1A37, 107575 }, - { 0x19E4, 107579 }, - { 0x45CD, 107583 }, - { 0x026F, 107589 }, - { 0x0270, 107593 }, - { 0x45CF, 107599 }, - { 0x1A3B, 107605 }, - { 0x0271, 107611 }, - { 0x1A3F, 107615 }, - { 0x19E6, 107621 }, - { 0x02A0, 107625 }, - { 0x45D5, 107629 }, - { 0x3A85, 107635 }, - { 0x1A41, 107642 }, - { 0x3A84, 107649 }, - { 0x1A40, 107657 }, - { 0x45D7, 107664 }, - { 0x19E7, 107673 }, - { 0x1A43, 107677 }, - { 0x1A45, 107683 }, - { 0x1A46, 107690 }, - { 0x19E9, 107697 }, - { 0x45DC, 107701 }, - { 0x19ED, 107707 }, - { 0x45DF, 107711 }, - { 0x0272, 107715 }, - { 0x45E2, 107719 }, - { 0x45E3, 107725 }, - { 0x02A1, 107731 }, - { 0x45F3, 107735 }, - { 0x1A4A, 107741 }, - { 0x19EE, 107747 }, - { 0x1A4C, 107751 }, - { 0x45E9, 107758 }, - { 0x19EF, 107765 }, - { 0x1A4D, 107769 }, - { 0x3A86, 107774 }, - { 0x19F2, 107781 }, - { 0x1A50, 107785 }, - { 0x45EA, 107791 }, - { 0x0276, 107798 }, - { 0x02A2, 107802 }, - { 0x0277, 107806 }, - { 0x1A52, 107810 }, - { 0x1A54, 107814 }, - { 0x1A53, 107820 }, - { 0x45BE, 107827 }, - { 0x45C1, 107831 }, - { 0x45C3, 107836 }, - { 0x45C2, 107843 }, - { 0x45D3, 107851 }, - { 0x45D4, 107856 }, - { 0x45E5, 107861 }, - { 0x45E6, 107868 }, - { 0x45E7, 107873 }, - { 0x19F3, 107881 }, - { 0x19F8, 107885 }, - { 0x19E8, 107889 }, - { 0x1A4B, 107893 }, - { 0x1A35, 107897 }, - { 0x1A55, 107901 }, - { 0x1A49, 107905 }, - { 0x19EB, 107909 }, - { 0x19F4, 107915 }, - { 0x45C4, 107919 }, - { 0x45CA, 107924 }, - { 0x3A83, 107929 }, - { 0x45D1, 107933 }, - { 0x1A3C, 107939 }, - { 0x45D8, 107943 }, - { 0x45D9, 107947 }, - { 0x19E2, 107954 }, - { 0x19EA, 107959 }, - { 0x45CB, 107964 }, - { 0x45E8, 107969 }, - { 0x19DC, 107974 }, - { 0x19F6, 107978 }, - { 0x029F, 107982 }, - { 0x19F7, 107986 }, - { 0x19F5, 107991 }, - { 0x19E1, 107996 }, - { 0x1A56, 108000 }, - { 0x1A48, 108004 }, - { 0x19EC, 108009 }, - { 0x45DE, 108015 }, - { 0x45C9, 108020 }, - { 0x1A39, 108027 }, - { 0x19DB, 108032 }, - { 0x1A3A, 108037 }, - { 0x19E5, 108042 }, - { 0x19F1, 108047 }, - { 0x1A44, 108052 }, - { 0x0273, 108060 }, - { 0x0274, 108065 }, - { 0x45E0, 108072 }, - { 0x45E1, 108080 }, - { 0x1A51, 108091 }, - { 0x3A90, 108096 }, - { 0x45DA, 108101 }, - { 0x45DB, 108106 }, - { 0x19DD, 108113 }, - { 0x19E3, 108118 }, - { 0x1A32, 108124 }, - { 0x45BF, 108129 }, - { 0x45CC, 108134 }, - { 0x45CE, 108139 }, - { 0x45D0, 108146 }, - { 0x1A3D, 108151 }, - { 0x1A3E, 108156 }, - { 0x1A42, 108163 }, - { 0x45D6, 108168 }, - { 0x1A47, 108175 }, - { 0x45E4, 108180 }, - { 0x1A4F, 108185 }, - { 0x45EB, 108190 }, - { 0x45BB, 108195 }, - { 0x45DD, 108200 }, - { 0x0275, 108205 }, - { 0x1A38, 108211 }, - { 0x45D2, 108218 }, - { 0x1A4E, 108227 }, - { 0x3791, 108231 }, - { 0x45C8, 108236 }, - { 0x1A36, 108241 }, - { 0x02A3, 108247 }, - { 0x19F0, 108253 }, - { 0x45EF, 108258 }, - { 0x0279, 108262 }, - { 0x02AD, 108266 }, - { 0x0288, 108270 }, - { 0x02B3, 108273 }, - { 0x02B5, 108278 }, - { 0x02B4, 108284 }, - { 0x36CC, 108290 }, - { 0x36CD, 108295 }, - { 0x02B7, 108300 }, - { 0x36CF, 108304 }, - { 0x36CE, 108310 }, - { 0x029D, 108315 }, - { 0x36D2, 108319 }, - { 0x36D1, 108325 }, - { 0x027A, 108331 }, - { 0x19C3, 108335 }, - { 0x19C5, 108339 }, - { 0x378A, 108343 }, - { 0x19C7, 108347 }, - { 0x19C8, 108351 }, - { 0x378B, 108355 }, - { 0x19CA, 108359 }, - { 0x19CB, 108363 }, - { 0x3790, 108367 }, - { 0x19CC, 108373 }, - { 0x19CD, 108377 }, - { 0x19CE, 108381 }, - { 0x19CF, 108385 }, - { 0x19D0, 108389 }, - { 0x19D1, 108393 }, - { 0x19D3, 108397 }, - { 0x19D5, 108401 }, - { 0x378C, 108405 }, - { 0x19D6, 108409 }, - { 0x19D7, 108413 }, - { 0x19D8, 108417 }, - { 0x28A6, 108421 }, - { 0x19D9, 108425 }, - { 0x19C4, 108429 }, - { 0x19D4, 108433 }, - { 0x19C6, 108437 }, - { 0x19C9, 108442 }, - { 0x19D2, 108447 }, - { 0x0292, 108452 }, - { 0x0291, 108458 }, - { 0x36B5, 108464 }, - { 0x36B7, 108470 }, - { 0x36B1, 108476 }, - { 0x36B3, 108482 }, - { 0x36B6, 108488 }, - { 0x36B8, 108494 }, - { 0x36B2, 108500 }, - { 0x36B4, 108506 }, - { 0x027F, 108512 }, - { 0x45EC, 108516 }, - { 0x45F0, 108522 }, - { 0x02AB, 108526 }, - { 0x45F1, 108529 }, - { 0x45EE, 108533 }, - { 0x1A0F, 108537 }, - { 0x3655, 108541 }, - { 0x3656, 108546 }, - { 0x893A, 108551 }, - { 0x8952, 108556 }, - { 0x8942, 108561 }, - { 0x8946, 108566 }, - { 0x894B, 108571 }, - { 0x893B, 108576 }, - { 0x893E, 108581 }, - { 0x894C, 108586 }, - { 0x8944, 108591 }, - { 0x8945, 108596 }, - { 0x8948, 108601 }, - { 0x8949, 108606 }, - { 0x8975, 108611 }, - { 0x894D, 108618 }, - { 0x893F, 108623 }, - { 0x8957, 108628 }, - { 0x8943, 108633 }, - { 0x8947, 108638 }, - { 0x894A, 108643 }, - { 0x893C, 108648 }, - { 0x8953, 108653 }, - { 0x8941, 108658 }, - { 0x894F, 108663 }, - { 0x893D, 108668 }, - { 0x8950, 108673 }, - { 0x894E, 108678 }, - { 0x8940, 108683 }, - { 0x8954, 108688 }, - { 0x8951, 108693 }, - { 0x8976, 108698 }, - { 0x8955, 108706 }, - { 0x8958, 108711 }, - { 0x895A, 108717 }, - { 0x8959, 108722 }, - { 0x8977, 108728 }, - { 0x8956, 108736 }, - { 0x0EA4, 108742 }, - { 0x027C, 108746 }, - { 0x0280, 108750 }, - { 0x45ED, 108755 }, - { 0x0287, 108762 }, - { 0x02A8, 108766 }, - { 0x36BD, 108771 }, - { 0x36C2, 108777 }, - { 0x36C7, 108784 }, - { 0x45F2, 108790 }, - { 0x027B, 108797 }, - { 0x0285, 108800 }, - { 0x02A4, 108804 }, - { 0x36B9, 108809 }, - { 0x36BE, 108815 }, - { 0x36C3, 108822 }, - { 0x028F, 108828 }, - { 0x45BD, 108832 }, - { 0x45BC, 108838 }, - { 0x02AC, 108843 }, - { 0x22B7, 108846 }, - { 0x22B6, 108849 }, - { 0x81FB, 108852 }, - { 0x9250, 108855 }, - { 0x94CD, 108856 }, - { 0x9292, 108857 }, - { 0x231C, 108858 }, - { 0x9251, 108859 }, - { 0x9253, 108861 }, - { 0x9268, 108863 }, - { 0x1F0F, 108865 }, - { 0x8F69, 108866 }, - { 0x1EE3, 108869 }, - { 0x1EE5, 108870 }, - { 0x1EE4, 108872 }, - { 0x8EF7, 108874 }, - { 0x7CAB, 108875 }, - { 0x8F91, 108877 }, - { 0x1CED, 108879 }, - { 0x212B, 108882 }, - { 0x8DFB, 108886 }, - { 0x8DFC, 108892 }, - { 0x8DFD, 108898 }, - { 0x8DFE, 108904 }, - { 0x8DFF, 108910 }, - { 0x8E00, 108916 }, - { 0x8E01, 108922 }, - { 0x8E02, 108928 }, - { 0x8E03, 108934 }, - { 0x8E04, 108940 }, - { 0x8E05, 108946 }, - { 0x8E06, 108952 }, - { 0x8E07, 108958 }, - { 0x8E08, 108964 }, - { 0x8E09, 108970 }, - { 0x8E0A, 108976 }, - { 0x8E0B, 108982 }, - { 0x8E0C, 108988 }, - { 0x8E0D, 108994 }, - { 0x8E0E, 109000 }, - { 0x8E0F, 109006 }, - { 0x8E10, 109012 }, - { 0x8E11, 109018 }, - { 0x8E12, 109024 }, - { 0x8E13, 109030 }, - { 0x8E14, 109036 }, - { 0x2117, 109042 }, - { 0x2118, 109046 }, - { 0x2120, 109050 }, - { 0x211B, 109054 }, - { 0x211C, 109058 }, - { 0x211E, 109062 }, - { 0x211A, 109066 }, - { 0x211F, 109070 }, - { 0x2119, 109074 }, - { 0x211D, 109078 }, - { 0x937D, 109082 }, - { 0x937B, 109085 }, - { 0x8E39, 109088 }, - { 0x8E36, 109091 }, - { 0x8E37, 109094 }, - { 0x8E38, 109097 }, - { 0x8E3A, 109100 }, - { 0x237A, 109103 }, - { 0x8E1B, 109107 }, - { 0x8E1C, 109113 }, - { 0x8E1D, 109119 }, - { 0x8E1E, 109125 }, - { 0x8E1F, 109131 }, - { 0x8E20, 109137 }, - { 0x8E21, 109143 }, - { 0x8E22, 109149 }, - { 0x8E23, 109155 }, - { 0x8E24, 109161 }, - { 0x8E25, 109167 }, - { 0x8E26, 109173 }, - { 0x8E27, 109179 }, - { 0x8E28, 109185 }, - { 0x8E29, 109191 }, - { 0x8E2A, 109197 }, - { 0x8E2B, 109203 }, - { 0x8E2C, 109209 }, - { 0x8E2D, 109215 }, - { 0x8E2E, 109221 }, - { 0x8E2F, 109227 }, - { 0x8E30, 109233 }, - { 0x8E31, 109239 }, - { 0x8E32, 109245 }, - { 0x8E33, 109251 }, - { 0x8E34, 109257 }, - { 0x9425, 109263 }, - { 0x96C5, 109267 }, - { 0x9427, 109271 }, - { 0x9424, 109275 }, - { 0x9426, 109279 }, - { 0x96BE, 109283 }, - { 0x96BF, 109286 }, - { 0x96C0, 109293 }, - { 0x005F, 109296 }, - { 0x9086, 109298 }, - { 0x9087, 109299 }, - { 0x89B2, 109303 }, - { 0x89AE, 109309 }, - { 0x89B0, 109315 }, - { 0x89AD, 109321 }, - { 0x89AF, 109327 }, - { 0x89B1, 109333 }, - { 0x89B5, 109339 }, - { 0x89BA, 109344 }, - { 0x89B6, 109349 }, - { 0x89B9, 109354 }, - { 0x89B8, 109359 }, - { 0x89BD, 109364 }, - { 0x89B4, 109369 }, - { 0x89BC, 109374 }, - { 0x89BB, 109379 }, - { 0x89B7, 109384 }, - { 0x899D, 109389 }, - { 0x89A3, 109394 }, - { 0x899F, 109399 }, - { 0x89A1, 109404 }, - { 0x89A0, 109409 }, - { 0x89A5, 109414 }, - { 0x899E, 109419 }, - { 0x8981, 109424 }, - { 0x8988, 109429 }, - { 0x89A4, 109434 }, - { 0x898E, 109439 }, - { 0x899B, 109444 }, - { 0x897D, 109449 }, - { 0x8987, 109454 }, - { 0x8982, 109459 }, - { 0x8979, 109464 }, - { 0x897E, 109469 }, - { 0x89A2, 109474 }, - { 0x8993, 109479 }, - { 0x8990, 109484 }, - { 0x898F, 109489 }, - { 0x8983, 109494 }, - { 0x897C, 109499 }, - { 0x898B, 109504 }, - { 0x897F, 109509 }, - { 0x8991, 109514 }, - { 0x8984, 109519 }, - { 0x8996, 109524 }, - { 0x8998, 109529 }, - { 0x8999, 109534 }, - { 0x8985, 109539 }, - { 0x8980, 109544 }, - { 0x8995, 109549 }, - { 0x8992, 109554 }, - { 0x898A, 109559 }, - { 0x897B, 109564 }, - { 0x8989, 109569 }, - { 0x899A, 109574 }, - { 0x899C, 109579 }, - { 0x897A, 109584 }, - { 0x898D, 109589 }, - { 0x8994, 109594 }, - { 0x8997, 109599 }, - { 0x8986, 109604 }, - { 0x898C, 109609 }, - { 0x89A6, 109614 }, - { 0x89AC, 109618 }, - { 0x89AB, 109622 }, - { 0x89A8, 109626 }, - { 0x89A7, 109630 }, - { 0x89AA, 109634 }, - { 0x89A9, 109638 }, - { 0x89BF, 109642 }, - { 0x89BE, 109647 }, - { 0x89B3, 109652 }, - { 0x2056, 109657 }, - { 0x9240, 109660 }, - { 0x929D, 109662 }, - { 0x9249, 109665 }, - { 0x9247, 109667 }, - { 0x924B, 109670 }, - { 0x1F0D, 109672 }, - { 0x2252, 109674 }, - { 0x2359, 109676 }, - { 0x7D38, 109679 }, - { 0x7D3D, 109682 }, - { 0x7D39, 109685 }, - { 0x7D3C, 109688 }, - { 0x7D3B, 109691 }, - { 0x7D40, 109694 }, - { 0x7D37, 109697 }, - { 0x7D3F, 109700 }, - { 0x7D3E, 109703 }, - { 0x7D3A, 109706 }, - { 0x2345, 109709 }, - { 0x234B, 109712 }, - { 0x7D1D, 109715 }, - { 0x7D1E, 109720 }, - { 0x7D1F, 109725 }, - { 0x7D20, 109730 }, - { 0x7D21, 109735 }, - { 0x7D22, 109740 }, - { 0x7D23, 109745 }, - { 0x7D24, 109750 }, - { 0x7D25, 109755 }, - { 0x7D26, 109760 }, - { 0x7D27, 109765 }, - { 0x7D28, 109770 }, - { 0x7D29, 109775 }, - { 0x7D2A, 109780 }, - { 0x7D2B, 109785 }, - { 0x7D2C, 109790 }, - { 0x7D2D, 109795 }, - { 0x7D2E, 109800 }, - { 0x7D2F, 109805 }, - { 0x7D30, 109810 }, - { 0x7D31, 109815 }, - { 0x7D32, 109820 }, - { 0x7D33, 109825 }, - { 0x7D34, 109830 }, - { 0x7D35, 109835 }, - { 0x7D36, 109840 }, - { 0x22C9, 109845 }, - { 0x1CBE, 109848 }, - { 0x948C, 109849 }, - { 0x1E7C, 109850 }, - { 0x271F, 109852 }, - { 0x271E, 109856 }, - { 0x9275, 109860 }, - { 0x906E, 109862 }, - { 0x3805, 109864 }, - { 0x3806, 109867 }, - { 0x3804, 109871 }, - { 0x37EC, 109875 }, - { 0x37EF, 109878 }, - { 0x37ED, 109881 }, - { 0x37F0, 109884 }, - { 0x37EE, 109887 }, - { 0x37DD, 109890 }, - { 0x37D3, 109893 }, - { 0x37D9, 109896 }, - { 0x37F5, 109899 }, - { 0x37F3, 109902 }, - { 0x37D1, 109905 }, - { 0x37EB, 109908 }, - { 0x37D5, 109911 }, - { 0x37CF, 109914 }, - { 0x37E8, 109917 }, - { 0x37DE, 109920 }, - { 0x37DA, 109923 }, - { 0x37DB, 109926 }, - { 0x37F1, 109929 }, - { 0x37E7, 109932 }, - { 0x37EA, 109935 }, - { 0x37D7, 109938 }, - { 0x37E2, 109941 }, - { 0x37F2, 109944 }, - { 0x37E6, 109947 }, - { 0x37E4, 109950 }, - { 0x37D4, 109953 }, - { 0x37FA, 109956 }, - { 0x37E1, 109959 }, - { 0x37F4, 109962 }, - { 0x37D0, 109965 }, - { 0x37D2, 109968 }, - { 0x37FB, 109971 }, - { 0x37D6, 109974 }, - { 0x37DC, 109977 }, - { 0x37E9, 109980 }, - { 0x37D8, 109983 }, - { 0x37DF, 109986 }, - { 0x37F8, 109989 }, - { 0x37E3, 109992 }, - { 0x37E0, 109995 }, - { 0x37F9, 109998 }, - { 0x37E5, 110001 }, - { 0x37FE, 110005 }, - { 0x37FC, 110009 }, - { 0x37FF, 110013 }, - { 0x37FD, 110017 }, - { 0x3802, 110021 }, - { 0x3803, 110024 }, - { 0x3800, 110028 }, - { 0x37F6, 110032 }, - { 0x37F7, 110036 }, - { 0x3801, 110040 }, - { 0x4170, 110044 }, - { 0x416A, 110049 }, - { 0x4153, 110053 }, - { 0x4165, 110057 }, - { 0x4159, 110061 }, - { 0x4166, 110065 }, - { 0x4158, 110069 }, - { 0x4155, 110073 }, - { 0x415D, 110077 }, - { 0x4168, 110081 }, - { 0x4163, 110085 }, - { 0x4162, 110089 }, - { 0x416F, 110093 }, - { 0x4161, 110097 }, - { 0x416C, 110101 }, - { 0x4175, 110105 }, - { 0x4152, 110110 }, - { 0x4164, 110114 }, - { 0x414D, 110119 }, - { 0x4167, 110123 }, - { 0x4171, 110127 }, - { 0x416B, 110131 }, - { 0x415E, 110136 }, - { 0x4174, 110140 }, - { 0x4151, 110145 }, - { 0x4169, 110149 }, - { 0x414E, 110153 }, - { 0x415F, 110157 }, - { 0x415C, 110161 }, - { 0x4172, 110165 }, - { 0x414F, 110169 }, - { 0x414A, 110173 }, - { 0x4154, 110178 }, - { 0x4160, 110182 }, - { 0x414C, 110186 }, - { 0x4157, 110190 }, - { 0x416D, 110194 }, - { 0x416E, 110198 }, - { 0x4150, 110202 }, - { 0x4156, 110206 }, - { 0x4173, 110210 }, - { 0x414B, 110214 }, - { 0x415A, 110219 }, - { 0x415B, 110223 }, - { 0x4176, 110228 }, - { 0x4149, 110234 }, - { 0x943D, 110238 }, - { 0x235B, 110240 }, - { 0x90B1, 110242 }, - { 0x2810, 110244 }, - { 0x1F6D, 110245 }, - { 0x1ED1, 110247 }, - { 0x1ED3, 110248 }, - { 0x1ED5, 110252 }, - { 0x1F3F, 110256 }, - { 0x26E1, 110261 }, - { 0x26E5, 110266 }, - { 0x26E3, 110272 }, - { 0x26DF, 110277 }, - { 0x26DD, 110281 }, - { 0x26DB, 110287 }, - { 0x1F07, 110292 }, - { 0x95DB, 110295 }, - { 0x945E, 110297 }, - { 0x95DC, 110299 }, - { 0x1FEE, 110301 }, - { 0x902B, 110303 }, - { 0x1DA5, 110304 }, - { 0x21C2, 110306 }, - { 0x21C3, 110309 }, - { 0x21C4, 110312 }, - { 0x21C5, 110315 }, - { 0x21C6, 110324 }, - { 0x21C7, 110330 }, - { 0x21C8, 110339 }, - { 0x21C9, 110348 }, - { 0x21CA, 110351 }, - { 0x21CB, 110357 }, - { 0x001F, 110366 }, - { 0x1CC8, 110368 }, - { 0x22E7, 110371 }, - { 0x22A8, 110372 }, - { 0x8E59, 110375 }, - { 0x8E5A, 110380 }, - { 0x8E5B, 110385 }, - { 0x8E5C, 110390 }, - { 0x8E5D, 110395 }, - { 0x8E5E, 110400 }, - { 0x8E5F, 110405 }, - { 0x8E60, 110410 }, - { 0x8E61, 110415 }, - { 0x8E62, 110420 }, - { 0x8E63, 110425 }, - { 0x8E64, 110430 }, - { 0x8E65, 110435 }, - { 0x8E66, 110440 }, - { 0x8E67, 110445 }, - { 0x8E68, 110450 }, - { 0x8E69, 110455 }, - { 0x8E6A, 110460 }, - { 0x8E6B, 110465 }, - { 0x8E6C, 110470 }, - { 0x8E6D, 110475 }, - { 0x8E6E, 110480 }, - { 0x8E6F, 110485 }, - { 0x8E70, 110490 }, - { 0x8E71, 110495 }, - { 0x8E72, 110500 }, - { 0x91BF, 110505 }, - { 0x8F4A, 110507 }, - { 0x1D7A, 110509 }, - { 0x926E, 110510 }, - { 0x1F67, 110511 }, - { 0x9148, 110514 }, - { 0x25CF, 110520 }, - { 0x25D1, 110522 }, - { 0x2A37, 110526 }, - { 0x25DC, 110528 }, - { 0x1CB5, 110531 }, - { 0x2827, 110533 }, - { 0x1E94, 110536 }, - { 0x1F24, 110538 }, - { 0x1CB6, 110541 }, - { 0x2BCA, 110544 }, - { 0x2719, 110549 }, - { 0x2A07, 110554 }, - { 0x9144, 110557 }, - { 0x9145, 110563 }, - { 0x9146, 110567 }, - { 0x1CB7, 110571 }, - { 0x1CCB, 110574 }, - { 0x2245, 110577 }, - { 0x9147, 110582 }, - { 0x2A24, 110585 }, - { 0x1CCF, 110588 }, - { 0x1D9E, 110590 }, - { 0x2321, 110594 }, - { 0x95F0, 110595 }, - { 0x9498, 110597 }, - { 0x94C3, 110598 }, - { 0x94B0, 110599 }, - { 0x227B, 110600 }, - { 0x8EE4, 110601 }, - { 0x235C, 110602 }, - { 0x234A, 110605 }, - { 0x2379, 110609 }, - { 0x2244, 110612 }, - { 0x8ED3, 110613 }, - { 0x9280, 110615 }, - { 0x9285, 110617 }, - { 0x9153, 110619 }, - { 0x9154, 110624 }, - { 0x914D, 110629 }, - { 0x914E, 110634 }, - { 0x9151, 110639 }, - { 0x9152, 110644 }, - { 0x914B, 110649 }, - { 0x914C, 110654 }, - { 0x362C, 110659 }, - { 0x91E7, 110661 }, - { 0x9057, 110663 }, - { 0x927F, 110665 }, - { 0x91F5, 110667 }, - { 0x91F4, 110670 }, - { 0x91C2, 110673 }, - { 0x9455, 110675 }, - { 0x947C, 110677 }, - { 0x2354, 110678 }, - { 0x9196, 110679 }, - { 0x1D30, 110683 }, - { 0x95EE, 110685 }, - { 0x8FE6, 110686 }, - { 0x94FB, 110688 }, - { 0x8F0F, 110690 }, - { 0x9082, 110692 }, - { 0x1EBA, 110694 }, - { 0x1ED2, 110697 }, - { 0x1ED4, 110698 }, - { 0x1ED6, 110702 }, - { 0x1F40, 110706 }, - { 0x26E2, 110711 }, - { 0x26E6, 110716 }, - { 0x26E4, 110722 }, - { 0x26E0, 110727 }, - { 0x26DE, 110731 }, - { 0x26DC, 110737 }, - { 0x1F08, 110742 }, - { 0x1EDA, 110745 }, - { 0x1EDE, 110747 }, - { 0x26F0, 110752 }, - { 0x1EE2, 110760 }, - { 0x26F8, 110766 }, - { 0x26F4, 110772 }, - { 0x26F6, 110777 }, - { 0x26F2, 110783 }, - { 0x26EA, 110788 }, - { 0x26EC, 110791 }, - { 0x26EE, 110796 }, - { 0x2700, 110801 }, - { 0x2702, 110804 }, - { 0x25A7, 110807 }, - { 0x2704, 110811 }, - { 0x2703, 110819 }, - { 0x23F5, 110822 }, - { 0x1F86, 110825 }, - { 0x14CC, 110826 }, - { 0x14CD, 110830 }, - { 0x14BC, 110834 }, - { 0x14BD, 110837 }, - { 0x14BE, 110840 }, - { 0x14C6, 110843 }, - { 0x14C3, 110846 }, - { 0x14C0, 110849 }, - { 0x14BF, 110852 }, - { 0x14C9, 110855 }, - { 0x14C7, 110858 }, - { 0x14C4, 110861 }, - { 0x14C5, 110864 }, - { 0x14CB, 110867 }, - { 0x14C2, 110870 }, - { 0x14CA, 110873 }, - { 0x14C8, 110876 }, - { 0x14C1, 110879 }, - { 0x8F3E, 110882 }, - { 0x9079, 110884 }, - { 0x9442, 110886 }, - { 0x2A31, 110888 }, - { 0x294C, 110890 }, - { 0x2982, 110893 }, - { 0x2965, 110896 }, - { 0x2983, 110899 }, - { 0x296F, 110902 }, - { 0x2960, 110905 }, - { 0x294D, 110908 }, - { 0x2953, 110911 }, - { 0x2958, 110914 }, - { 0x294F, 110917 }, - { 0x295C, 110920 }, - { 0x2952, 110923 }, - { 0x2959, 110926 }, - { 0x2969, 110929 }, - { 0x296A, 110932 }, - { 0x296B, 110935 }, - { 0x296E, 110938 }, - { 0x2963, 110941 }, - { 0x2970, 110944 }, - { 0x2975, 110947 }, - { 0x2978, 110950 }, - { 0x297C, 110953 }, - { 0x297D, 110956 }, - { 0x297E, 110959 }, - { 0x297F, 110962 }, - { 0x2957, 110965 }, - { 0x2974, 110968 }, - { 0x294E, 110972 }, - { 0x297A, 110975 }, - { 0x2955, 110978 }, - { 0x2954, 110981 }, - { 0x2972, 110984 }, - { 0x295F, 110987 }, - { 0x2961, 110990 }, - { 0x2971, 110993 }, - { 0x2977, 110996 }, - { 0x2976, 110999 }, - { 0x2979, 111002 }, - { 0x297B, 111005 }, - { 0x2966, 111008 }, - { 0x2981, 111011 }, - { 0x2956, 111014 }, - { 0x2950, 111017 }, - { 0x295B, 111020 }, - { 0x295D, 111023 }, - { 0x2951, 111028 }, - { 0x295E, 111033 }, - { 0x295A, 111037 }, - { 0x2964, 111041 }, - { 0x2973, 111045 }, - { 0x296C, 111049 }, - { 0x2962, 111053 }, - { 0x296D, 111057 }, - { 0x2968, 111061 }, - { 0x2967, 111065 }, - { 0x2980, 111069 }, - { 0x2984, 111073 }, - { 0x2986, 111078 }, - { 0x2985, 111081 }, - { 0x1CCA, 111084 }, - { 0x2A48, 111087 }, - { 0x8EA3, 111091 }, - { 0x8EA4, 111097 }, - { 0x8EA9, 111103 }, - { 0x8EA5, 111109 }, - { 0x8EA7, 111115 }, - { 0x8EAA, 111121 }, - { 0x8EA2, 111127 }, - { 0x8EA6, 111133 }, - { 0x8EA8, 111139 }, - { 0x8DD5, 111145 }, - { 0x25F6, 111152 }, - { 0x25F9, 111156 }, - { 0x9279, 111161 }, - { 0x25F7, 111165 }, - { 0x1CDD, 111168 }, - { 0x8FD3, 111169 }, - { 0x8F2C, 111171 }, - { 0x426C, 111173 }, - { 0x4269, 111176 }, - { 0x426A, 111179 }, - { 0x4253, 111182 }, - { 0x4262, 111185 }, - { 0x4268, 111188 }, - { 0x4254, 111191 }, - { 0x425F, 111194 }, - { 0x4261, 111197 }, - { 0x4259, 111200 }, - { 0x4251, 111203 }, - { 0x425C, 111206 }, - { 0x425E, 111209 }, - { 0x426B, 111212 }, - { 0x4257, 111215 }, - { 0x4258, 111218 }, - { 0x424E, 111221 }, - { 0x424F, 111224 }, - { 0x425D, 111227 }, - { 0x4256, 111230 }, - { 0x4264, 111233 }, - { 0x4263, 111236 }, - { 0x425A, 111239 }, - { 0x4255, 111242 }, - { 0x4252, 111245 }, - { 0x4250, 111248 }, - { 0x4267, 111251 }, - { 0x425B, 111254 }, - { 0x4265, 111257 }, - { 0x4260, 111260 }, - { 0x4266, 111263 }, - { 0x222E, 111266 }, - { 0x231D, 111267 }, - { 0x2240, 111270 }, - { 0x91C5, 111274 }, - { 0x1CBF, 111276 }, - { 0x1D7E, 111277 }, - { 0x23F6, 111278 }, - { 0x25FC, 111283 }, - { 0x2710, 111288 }, - { 0x270E, 111293 }, - { 0x9672, 111298 }, - { 0x9673, 111302 }, - { 0x9674, 111306 }, - { 0x9675, 111310 }, - { 0x9676, 111314 }, - { 0x9677, 111318 }, - { 0x2A33, 111322 }, - { 0x27A9, 111325 }, - { 0x1CDE, 111328 }, - { 0x2BDE, 111331 }, - { 0x2BE2, 111335 }, - { 0x2BE0, 111341 }, - { 0x2BDF, 111347 }, - { 0x2BE1, 111354 }, - { 0x005C, 111363 }, - { 0x7CD7, 111365 }, - { 0x7E56, 111371 }, - { 0x271B, 111377 }, - { 0x271C, 111382 }, - { 0x1FD6, 111387 }, - { 0x2027, 111392 }, - { 0x22D4, 111395 }, - { 0x2A25, 111400 }, - { 0x7CCB, 111402 }, - { 0x7CE3, 111404 }, - { 0x25C6, 111407 }, - { 0x7CE4, 111410 }, - { 0x9259, 111412 }, - { 0x1F45, 111415 }, - { 0x7C51, 111417 }, - { 0x7C5B, 111420 }, - { 0x2BE8, 111422 }, - { 0x1F6E, 111426 }, - { 0x440F, 111428 }, - { 0x4417, 111432 }, - { 0x441C, 111436 }, - { 0x4425, 111440 }, - { 0x442D, 111444 }, - { 0x4430, 111448 }, - { 0x4411, 111452 }, - { 0x4412, 111456 }, - { 0x4414, 111460 }, - { 0x4416, 111464 }, - { 0x4418, 111468 }, - { 0x4419, 111472 }, - { 0x441A, 111476 }, - { 0x441E, 111480 }, - { 0x441F, 111484 }, - { 0x4420, 111488 }, - { 0x4422, 111492 }, - { 0x4423, 111496 }, - { 0x4426, 111500 }, - { 0x4427, 111504 }, - { 0x4428, 111508 }, - { 0x4429, 111512 }, - { 0x442B, 111516 }, - { 0x442E, 111520 }, - { 0x442F, 111524 }, - { 0x4431, 111528 }, - { 0x4410, 111532 }, - { 0x4413, 111536 }, - { 0x4415, 111540 }, - { 0x441B, 111544 }, - { 0x441D, 111548 }, - { 0x4421, 111552 }, - { 0x4424, 111556 }, - { 0x442A, 111560 }, - { 0x442C, 111564 }, - { 0x43EC, 111568 }, - { 0x43F4, 111572 }, - { 0x43F9, 111576 }, - { 0x4402, 111580 }, - { 0x440A, 111584 }, - { 0x440D, 111588 }, - { 0x43EE, 111592 }, - { 0x43EF, 111596 }, - { 0x43F1, 111600 }, - { 0x43F3, 111604 }, - { 0x43F5, 111608 }, - { 0x43F6, 111612 }, - { 0x43F7, 111616 }, - { 0x43FB, 111620 }, - { 0x43FC, 111624 }, - { 0x43FD, 111628 }, - { 0x43FF, 111632 }, - { 0x4400, 111636 }, - { 0x4403, 111640 }, - { 0x4404, 111644 }, - { 0x4405, 111648 }, - { 0x4406, 111652 }, - { 0x4408, 111656 }, - { 0x440B, 111660 }, - { 0x440C, 111664 }, - { 0x440E, 111668 }, - { 0x43ED, 111672 }, - { 0x43F0, 111676 }, - { 0x43F2, 111680 }, - { 0x43F8, 111684 }, - { 0x43FA, 111688 }, - { 0x43FE, 111692 }, - { 0x4401, 111696 }, - { 0x4407, 111700 }, - { 0x4409, 111704 }, - { 0x280F, 111708 }, - { 0x928B, 111709 }, - { 0x7F3D, 111710 }, - { 0x7F6C, 111715 }, - { 0x7FAB, 111718 }, - { 0x7F6D, 111721 }, - { 0x7FAD, 111724 }, - { 0x7F3A, 111727 }, - { 0x7F3B, 111730 }, - { 0x7F6B, 111734 }, - { 0x7FAC, 111737 }, - { 0x7F99, 111740 }, - { 0x7F9A, 111743 }, - { 0x7F9C, 111747 }, - { 0x7F9D, 111752 }, - { 0x7F9E, 111757 }, - { 0x7F9B, 111762 }, - { 0x7F46, 111766 }, - { 0x7F55, 111769 }, - { 0x7F3E, 111773 }, - { 0x7F6E, 111776 }, - { 0x7F91, 111779 }, - { 0x7F92, 111782 }, - { 0x7F93, 111786 }, - { 0x7F94, 111790 }, - { 0x7F95, 111794 }, - { 0x7FAA, 111798 }, - { 0x7F70, 111801 }, - { 0x7F77, 111804 }, - { 0x7F78, 111809 }, - { 0x7F72, 111815 }, - { 0x7F74, 111820 }, - { 0x7F71, 111827 }, - { 0x7F73, 111832 }, - { 0x7F79, 111839 }, - { 0x7F75, 111846 }, - { 0x7F76, 111850 }, - { 0x7F7B, 111856 }, - { 0x7F84, 111860 }, - { 0x7F8C, 111865 }, - { 0x7F8A, 111869 }, - { 0x7F7C, 111876 }, - { 0x7F80, 111880 }, - { 0x7F9F, 111884 }, - { 0x7FA8, 111888 }, - { 0x7FA3, 111893 }, - { 0x7FA1, 111898 }, - { 0x7FA0, 111906 }, - { 0x7FA4, 111911 }, - { 0x7FA5, 111916 }, - { 0x7FA2, 111924 }, - { 0x7FA6, 111932 }, - { 0x7FA7, 111937 }, - { 0x7F7E, 111943 }, - { 0x7F85, 111947 }, - { 0x7F88, 111951 }, - { 0x7F7F, 111956 }, - { 0x7F8D, 111960 }, - { 0x7F8E, 111964 }, - { 0x7F8B, 111971 }, - { 0x7F7D, 111978 }, - { 0x7F81, 111982 }, - { 0x7F96, 111986 }, - { 0x7F8F, 111990 }, - { 0x7F90, 111994 }, - { 0x7F97, 111999 }, - { 0x7F98, 112003 }, - { 0x7F82, 112007 }, - { 0x7F87, 112011 }, - { 0x7F89, 112015 }, - { 0x7F86, 112020 }, - { 0x7F83, 112024 }, - { 0x7F59, 112028 }, - { 0x7F58, 112031 }, - { 0x7FA9, 112034 }, - { 0x7F6F, 112037 }, - { 0x7F57, 112040 }, - { 0x7F3C, 112043 }, - { 0x7F56, 112046 }, - { 0x7F40, 112050 }, - { 0x7F41, 112053 }, - { 0x7F44, 112058 }, - { 0x7F4D, 112064 }, - { 0x7F4F, 112068 }, - { 0x7F4E, 112072 }, - { 0x7F51, 112076 }, - { 0x7F53, 112081 }, - { 0x7F52, 112086 }, - { 0x7F54, 112091 }, - { 0x7F50, 112096 }, - { 0x7F3F, 112100 }, - { 0x7F48, 112103 }, - { 0x7F49, 112107 }, - { 0x7F4B, 112111 }, - { 0x7F4A, 112115 }, - { 0x7F4C, 112119 }, - { 0x7F42, 112123 }, - { 0x7F43, 112126 }, - { 0x7F5E, 112130 }, - { 0x7F5C, 112134 }, - { 0x7F5B, 112138 }, - { 0x7F62, 112142 }, - { 0x7F60, 112147 }, - { 0x7F5D, 112152 }, - { 0x7F63, 112156 }, - { 0x7F64, 112161 }, - { 0x7F66, 112166 }, - { 0x7F65, 112171 }, - { 0x7F61, 112176 }, - { 0x7F67, 112180 }, - { 0x7F6A, 112183 }, - { 0x7F68, 112188 }, - { 0x7F69, 112193 }, - { 0x7F47, 112197 }, - { 0x7F45, 112200 }, - { 0x7F5A, 112203 }, - { 0x7F7A, 112206 }, - { 0x7F5F, 112209 }, - { 0x7F39, 112213 }, - { 0x7F38, 112217 }, - { 0x7F35, 112221 }, - { 0x7F36, 112225 }, - { 0x7F37, 112229 }, - { 0x7F16, 112234 }, - { 0x7F0E, 112238 }, - { 0x7EFE, 112245 }, - { 0x7F0A, 112254 }, - { 0x7EFB, 112263 }, - { 0x7F07, 112270 }, - { 0x7F13, 112277 }, - { 0x7F15, 112283 }, - { 0x7F33, 112287 }, - { 0x7F22, 112291 }, - { 0x7F1C, 112297 }, - { 0x7EF6, 112301 }, - { 0x7F02, 112309 }, - { 0x7EF9, 112317 }, - { 0x7F05, 112323 }, - { 0x7F17, 112329 }, - { 0x7F20, 112333 }, - { 0x7F0D, 112337 }, - { 0x7EF7, 112343 }, - { 0x7F03, 112349 }, - { 0x7F1F, 112355 }, - { 0x7F32, 112359 }, - { 0x7F1E, 112364 }, - { 0x7EFA, 112368 }, - { 0x7F06, 112374 }, - { 0x7F2F, 112380 }, - { 0x7F1A, 112384 }, - { 0x7F12, 112388 }, - { 0x7F00, 112394 }, - { 0x7F0C, 112402 }, - { 0x7EFD, 112410 }, - { 0x7F09, 112416 }, - { 0x7F19, 112422 }, - { 0x7F2B, 112426 }, - { 0x7F2C, 112430 }, - { 0x7EF5, 112435 }, - { 0x7F01, 112444 }, - { 0x7EF8, 112453 }, - { 0x7F04, 112460 }, - { 0x7F14, 112467 }, - { 0x7F1D, 112472 }, - { 0x7F10, 112476 }, - { 0x7EFF, 112482 }, - { 0x7F0B, 112490 }, - { 0x7EFC, 112498 }, - { 0x7F08, 112504 }, - { 0x7F11, 112510 }, - { 0x7F21, 112515 }, - { 0x7F0F, 112519 }, - { 0x7F18, 112525 }, - { 0x7F2D, 112529 }, - { 0x7F28, 112533 }, - { 0x7F2E, 112537 }, - { 0x7F1B, 112542 }, - { 0x7F26, 112546 }, - { 0x7F30, 112550 }, - { 0x7F29, 112554 }, - { 0x7F2A, 112558 }, - { 0x7F27, 112565 }, - { 0x7F34, 112570 }, - { 0x7F24, 112576 }, - { 0x7F23, 112582 }, - { 0x7F25, 112588 }, - { 0x7F31, 112594 }, - { 0x95AF, 112599 }, - { 0x1D5C, 112600 }, - { 0x8F52, 112604 }, - { 0x2301, 112606 }, - { 0x9244, 112611 }, - { 0x0006, 112612 }, - { 0x6D06, 112613 }, - { 0x6D07, 112616 }, - { 0x6D08, 112619 }, - { 0x6D09, 112622 }, - { 0x6D0A, 112625 }, - { 0x6D0B, 112628 }, - { 0x6D0C, 112631 }, - { 0x6D0D, 112634 }, - { 0x6D0E, 112637 }, - { 0x6D0F, 112640 }, - { 0x6D11, 112643 }, - { 0x6D12, 112646 }, - { 0x6D13, 112649 }, - { 0x6D14, 112652 }, - { 0x6D15, 112655 }, - { 0x6D16, 112658 }, - { 0x6D17, 112661 }, - { 0x6D18, 112664 }, - { 0x6D19, 112667 }, - { 0x6D1A, 112670 }, - { 0x6D1B, 112673 }, - { 0x6D1C, 112676 }, - { 0x6D1D, 112679 }, - { 0x6D1E, 112682 }, - { 0x6D1F, 112685 }, - { 0x6D20, 112688 }, - { 0x6D22, 112691 }, - { 0x6D23, 112694 }, - { 0x6D24, 112697 }, - { 0x6D25, 112700 }, - { 0x6D26, 112703 }, - { 0x6D27, 112706 }, - { 0x6D28, 112709 }, - { 0x6D29, 112712 }, - { 0x6D2A, 112715 }, - { 0x6D2B, 112718 }, - { 0x6D2C, 112721 }, - { 0x6D2D, 112724 }, - { 0x6D2E, 112727 }, - { 0x6D30, 112730 }, - { 0x6D31, 112733 }, - { 0x6D33, 112736 }, - { 0x6D34, 112739 }, - { 0x6D35, 112742 }, - { 0x6D36, 112745 }, - { 0x6D38, 112748 }, - { 0x6D3B, 112751 }, - { 0x6D3C, 112754 }, - { 0x6D3D, 112757 }, - { 0x6D3E, 112760 }, - { 0x6D3F, 112763 }, - { 0x6D40, 112766 }, - { 0x6D41, 112769 }, - { 0x6D42, 112772 }, - { 0x6D43, 112775 }, - { 0x6D44, 112778 }, - { 0x6D45, 112781 }, - { 0x6D46, 112784 }, - { 0x6D47, 112787 }, - { 0x6D48, 112790 }, - { 0x6D49, 112793 }, - { 0x6D4A, 112796 }, - { 0x6D4B, 112799 }, - { 0x6D4C, 112802 }, - { 0x6D4D, 112805 }, - { 0x6D4E, 112808 }, - { 0x6D52, 112811 }, - { 0x6D53, 112814 }, - { 0x6D54, 112817 }, - { 0x6D55, 112820 }, - { 0x6D56, 112823 }, - { 0x6D57, 112826 }, - { 0x6D58, 112829 }, - { 0x6D59, 112832 }, - { 0x6D5A, 112835 }, - { 0x6D5B, 112838 }, - { 0x6D5C, 112841 }, - { 0x6D5D, 112844 }, - { 0x6D5E, 112847 }, - { 0x6D5F, 112850 }, - { 0x6D60, 112853 }, - { 0x6D61, 112856 }, - { 0x6D62, 112859 }, - { 0x6D63, 112862 }, - { 0x6D64, 112865 }, - { 0x6D65, 112868 }, - { 0x6D66, 112871 }, - { 0x6D67, 112874 }, - { 0x6D68, 112877 }, - { 0x6D69, 112880 }, - { 0x6D6A, 112883 }, - { 0x6D6B, 112886 }, - { 0x6D6C, 112889 }, - { 0x6D6D, 112892 }, - { 0x6D6E, 112895 }, - { 0x6D6F, 112898 }, - { 0x6D70, 112901 }, - { 0x6D72, 112904 }, - { 0x6D74, 112907 }, - { 0x6D75, 112910 }, - { 0x6D77, 112913 }, - { 0x6D79, 112916 }, - { 0x6D7B, 112919 }, - { 0x6D7C, 112922 }, - { 0x6D80, 112925 }, - { 0x6D83, 112928 }, - { 0x6D84, 112931 }, - { 0x6D88, 112934 }, - { 0x6D89, 112937 }, - { 0x6D8A, 112940 }, - { 0x6D8D, 112943 }, - { 0x6D8E, 112946 }, - { 0x6D8F, 112949 }, - { 0x6D90, 112952 }, - { 0x6D91, 112955 }, - { 0x6D93, 112958 }, - { 0x6D94, 112961 }, - { 0x6D95, 112964 }, - { 0x6D96, 112967 }, - { 0x6D97, 112970 }, - { 0x6D98, 112973 }, - { 0x6D99, 112976 }, - { 0x6D9A, 112979 }, - { 0x6D9B, 112982 }, - { 0x6D9C, 112985 }, - { 0x6D9E, 112988 }, - { 0x6D9F, 112991 }, - { 0x6DA0, 112994 }, - { 0x6DA1, 112997 }, - { 0x6DA2, 113000 }, - { 0x6DA3, 113003 }, - { 0x6DA4, 113006 }, - { 0x6DA5, 113009 }, - { 0x6DA6, 113012 }, - { 0x6DA7, 113015 }, - { 0x6DA9, 113018 }, - { 0x6DAA, 113021 }, - { 0x6DAB, 113024 }, - { 0x6DAC, 113027 }, - { 0x6DAD, 113030 }, - { 0x6DAE, 113033 }, - { 0x6DAF, 113036 }, - { 0x6DB0, 113039 }, - { 0x6DB1, 113042 }, - { 0x6DB2, 113045 }, - { 0x6DB3, 113048 }, - { 0x6DB4, 113051 }, - { 0x6DB5, 113054 }, - { 0x6DB6, 113057 }, - { 0x6DB7, 113060 }, - { 0x6DB8, 113063 }, - { 0x6DB9, 113066 }, - { 0x6DBA, 113069 }, - { 0x6DBB, 113072 }, - { 0x6DBC, 113075 }, - { 0x6DBD, 113078 }, - { 0x6DBE, 113081 }, - { 0x6DBF, 113084 }, - { 0x6DC0, 113087 }, - { 0x6DC1, 113090 }, - { 0x6DC2, 113093 }, - { 0x6DC3, 113096 }, - { 0x6DC4, 113099 }, - { 0x6DC5, 113102 }, - { 0x6DC6, 113105 }, - { 0x6DC7, 113108 }, - { 0x6DC8, 113111 }, - { 0x6DC9, 113114 }, - { 0x6DCA, 113117 }, - { 0x6DCB, 113120 }, - { 0x6DCC, 113123 }, - { 0x6DCD, 113126 }, - { 0x6DCE, 113129 }, - { 0x6DCF, 113132 }, - { 0x6DD0, 113135 }, - { 0x6DD1, 113138 }, - { 0x6DD2, 113141 }, - { 0x6DD3, 113144 }, - { 0x6DD4, 113147 }, - { 0x6DD5, 113150 }, - { 0x6DD6, 113153 }, - { 0x6DD7, 113156 }, - { 0x6DD8, 113159 }, - { 0x6DD9, 113162 }, - { 0x6DDA, 113165 }, - { 0x6DDB, 113168 }, - { 0x6DDC, 113171 }, - { 0x6DDD, 113174 }, - { 0x6DDE, 113177 }, - { 0x6DDF, 113180 }, - { 0x6DE0, 113183 }, - { 0x6DE1, 113186 }, - { 0x6DE2, 113189 }, - { 0x6DE3, 113192 }, - { 0x6DE4, 113195 }, - { 0x6DE5, 113198 }, - { 0x6DE6, 113201 }, - { 0x6DE7, 113204 }, - { 0x6DE8, 113207 }, - { 0x6DE9, 113210 }, - { 0x6DEA, 113213 }, - { 0x6DEB, 113216 }, - { 0x6DEE, 113219 }, - { 0x6DEF, 113222 }, - { 0x6DF0, 113225 }, - { 0x6DF1, 113228 }, - { 0x6DF2, 113231 }, - { 0x6DF4, 113234 }, - { 0x6DF5, 113237 }, - { 0x6DF7, 113240 }, - { 0x6DF8, 113243 }, - { 0x6DF9, 113246 }, - { 0x6DFA, 113249 }, - { 0x6DFB, 113252 }, - { 0x6DFC, 113255 }, - { 0x6DFE, 113258 }, - { 0x6E00, 113261 }, - { 0x6E01, 113264 }, - { 0x6E02, 113267 }, - { 0x6E03, 113270 }, - { 0x6E04, 113273 }, - { 0x6E05, 113276 }, - { 0x6E06, 113279 }, - { 0x6E07, 113282 }, - { 0x6E08, 113285 }, - { 0x6E09, 113288 }, - { 0x6E0A, 113291 }, - { 0x6E0C, 113294 }, - { 0x6E0D, 113297 }, - { 0x6E0E, 113300 }, - { 0x6E0F, 113303 }, - { 0x6E10, 113306 }, - { 0x6E11, 113309 }, - { 0x6E12, 113312 }, - { 0x6E13, 113315 }, - { 0x6E14, 113318 }, - { 0x6E15, 113321 }, - { 0x6E16, 113324 }, - { 0x6E17, 113327 }, - { 0x6E18, 113330 }, - { 0x6E19, 113333 }, - { 0x6E1A, 113336 }, - { 0x6E1B, 113339 }, - { 0x6E1C, 113342 }, - { 0x6E1D, 113345 }, - { 0x6E1E, 113348 }, - { 0x6E1F, 113351 }, - { 0x6E20, 113354 }, - { 0x6E21, 113357 }, - { 0x6E22, 113360 }, - { 0x6E23, 113363 }, - { 0x6E24, 113366 }, - { 0x6E25, 113369 }, - { 0x6E26, 113372 }, - { 0x6E27, 113375 }, - { 0x6E28, 113378 }, - { 0x6E29, 113381 }, - { 0x6E2A, 113384 }, - { 0x6E2B, 113387 }, - { 0x6E2C, 113390 }, - { 0x6E2D, 113393 }, - { 0x6E2E, 113396 }, - { 0x6E2F, 113399 }, - { 0x6E30, 113402 }, - { 0x6E31, 113405 }, - { 0x6E32, 113408 }, - { 0x6E33, 113411 }, - { 0x6E35, 113414 }, - { 0x6E36, 113417 }, - { 0x6E37, 113420 }, - { 0x6E38, 113423 }, - { 0x6E39, 113426 }, - { 0x6E3A, 113429 }, - { 0x6E3B, 113432 }, - { 0x6E3C, 113435 }, - { 0x6E3D, 113438 }, - { 0x6E3E, 113441 }, - { 0x6E3F, 113444 }, - { 0x6E40, 113447 }, - { 0x6E41, 113450 }, - { 0x6E42, 113453 }, - { 0x6E43, 113456 }, - { 0x6E44, 113459 }, - { 0x6E45, 113462 }, - { 0x6E46, 113465 }, - { 0x6E47, 113468 }, - { 0x6E48, 113471 }, - { 0x6E49, 113474 }, - { 0x6E4A, 113477 }, - { 0x6E4C, 113480 }, - { 0x6E4D, 113483 }, - { 0x6E4E, 113486 }, - { 0x6E4F, 113489 }, - { 0x6E50, 113492 }, - { 0x6E52, 113495 }, - { 0x6E53, 113498 }, - { 0x6E54, 113501 }, - { 0x6E55, 113504 }, - { 0x6E56, 113507 }, - { 0x6E58, 113510 }, - { 0x6E59, 113513 }, - { 0x6E5A, 113516 }, - { 0x6E5B, 113519 }, - { 0x6E5C, 113522 }, - { 0x6E5D, 113525 }, - { 0x6E5E, 113528 }, - { 0x6E5F, 113531 }, - { 0x6E60, 113534 }, - { 0x6E61, 113537 }, - { 0x6E63, 113540 }, - { 0x6E64, 113543 }, - { 0x6E65, 113546 }, - { 0x6E66, 113549 }, - { 0x6E67, 113552 }, - { 0x6E68, 113555 }, - { 0x6E69, 113558 }, - { 0x6E6A, 113561 }, - { 0x6E6B, 113564 }, - { 0x6E6C, 113567 }, - { 0x6E6D, 113570 }, - { 0x6E6E, 113573 }, - { 0x6E6F, 113576 }, - { 0x6E70, 113579 }, - { 0x6E71, 113582 }, - { 0x6E72, 113585 }, - { 0x6E73, 113588 }, - { 0x6E74, 113591 }, - { 0x6E75, 113594 }, - { 0x6E76, 113597 }, - { 0x6E78, 113600 }, - { 0x6E79, 113603 }, - { 0x6E7D, 113606 }, - { 0x6E7E, 113609 }, - { 0x6E7F, 113612 }, - { 0x6E80, 113615 }, - { 0x6E84, 113618 }, - { 0x6E85, 113621 }, - { 0x6E86, 113624 }, - { 0x6E87, 113627 }, - { 0x6E88, 113630 }, - { 0x6E89, 113633 }, - { 0x6E8A, 113636 }, - { 0x6E8B, 113639 }, - { 0x6E8C, 113642 }, - { 0x6E8D, 113645 }, - { 0x6E8E, 113648 }, - { 0x6E8F, 113651 }, - { 0x6E90, 113654 }, - { 0x6E91, 113657 }, - { 0x6E92, 113660 }, - { 0x6E93, 113663 }, - { 0x6E94, 113666 }, - { 0x6E95, 113669 }, - { 0x6E96, 113672 }, - { 0x6E97, 113675 }, - { 0x6E98, 113678 }, - { 0x6E99, 113681 }, - { 0x6E9A, 113684 }, - { 0x6E9C, 113687 }, - { 0x6E9D, 113690 }, - { 0x6E9E, 113693 }, - { 0x6E9F, 113696 }, - { 0x6EA0, 113699 }, - { 0x6EA2, 113702 }, - { 0x6EA3, 113705 }, - { 0x6EA4, 113708 }, - { 0x6EA5, 113711 }, - { 0x6EA7, 113714 }, - { 0x6EA8, 113717 }, - { 0x6EA9, 113720 }, - { 0x6EAB, 113723 }, - { 0x6EAC, 113726 }, - { 0x6EAD, 113729 }, - { 0x6EAE, 113732 }, - { 0x6EAF, 113735 }, - { 0x6EB0, 113738 }, - { 0x6EB1, 113741 }, - { 0x6EB2, 113744 }, - { 0x6EB3, 113747 }, - { 0x6EB4, 113750 }, - { 0x6EB6, 113753 }, - { 0x6EB7, 113756 }, - { 0x6EB9, 113762 }, - { 0x6EBA, 113765 }, - { 0x6EBB, 113768 }, - { 0x6EBD, 113771 }, - { 0x6EBE, 113774 }, - { 0x6EBF, 113777 }, - { 0x6EC0, 113780 }, - { 0x6EC1, 113783 }, - { 0x6EC2, 113786 }, - { 0x6EC3, 113789 }, - { 0x6EC4, 113793 }, - { 0x6EC5, 113796 }, - { 0x6EC6, 113799 }, - { 0x6EC7, 113802 }, - { 0x6EC8, 113805 }, - { 0x6EC9, 113808 }, - { 0x6ECA, 113811 }, - { 0x6ECB, 113814 }, - { 0x6ECC, 113817 }, - { 0x6ECD, 113820 }, - { 0x6ECE, 113823 }, - { 0x6ECF, 113826 }, - { 0x6ED0, 113829 }, - { 0x6ED1, 113832 }, - { 0x6ED2, 113835 }, - { 0x6ED3, 113838 }, - { 0x6ED4, 113841 }, - { 0x6ED6, 113847 }, - { 0x6ED7, 113850 }, - { 0x6ED8, 113853 }, - { 0x6ED9, 113856 }, - { 0x6EDA, 113859 }, - { 0x6EDB, 113862 }, - { 0x6EDC, 113865 }, - { 0x6EDD, 113868 }, - { 0x6EDE, 113871 }, - { 0x6EDF, 113874 }, - { 0x6EE0, 113877 }, - { 0x6EE1, 113880 }, - { 0x6EE2, 113883 }, - { 0x6EE3, 113886 }, - { 0x6EE4, 113889 }, - { 0x6EE5, 113892 }, - { 0x6EE6, 113895 }, - { 0x6EE7, 113898 }, - { 0x6EE8, 113901 }, - { 0x6EE9, 113904 }, - { 0x6EEA, 113907 }, - { 0x6EEB, 113910 }, - { 0x6EEC, 113913 }, - { 0x6EED, 113916 }, - { 0x6EEE, 113919 }, - { 0x6EEF, 113922 }, - { 0x6EF0, 113925 }, - { 0x6EF1, 113928 }, - { 0x6EF2, 113931 }, - { 0x6EF3, 113934 }, - { 0x6EF4, 113937 }, - { 0x6EF5, 113940 }, - { 0x6EF6, 113943 }, - { 0x6EF7, 113946 }, - { 0x6EF8, 113949 }, - { 0x6EF9, 113952 }, - { 0x6EFA, 113955 }, - { 0x6EFB, 113958 }, - { 0x6EFC, 113961 }, - { 0x6EFD, 113964 }, - { 0x6EFF, 113967 }, - { 0x6F00, 113970 }, - { 0x6F01, 113973 }, - { 0x6F02, 113976 }, - { 0x6F03, 113979 }, - { 0x6F04, 113982 }, - { 0x6F05, 113985 }, - { 0x6F07, 113988 }, - { 0x6F08, 113991 }, - { 0x6F09, 113994 }, - { 0x6F0A, 113997 }, - { 0x6F0B, 114000 }, - { 0x6F0C, 114003 }, - { 0x6F0D, 114006 }, - { 0x6F0E, 114009 }, - { 0x6F0F, 114012 }, - { 0x6F10, 114015 }, - { 0x6F11, 114018 }, - { 0x6F12, 114021 }, - { 0x6F13, 114024 }, - { 0x6F14, 114027 }, - { 0x6F15, 114030 }, - { 0x6F16, 114033 }, - { 0x6F17, 114036 }, - { 0x6F18, 114039 }, - { 0x6F19, 114042 }, - { 0x6F1A, 114045 }, - { 0x6F1B, 114048 }, - { 0x6F1C, 114051 }, - { 0x6F1D, 114054 }, - { 0x6F1E, 114057 }, - { 0x6F1F, 114060 }, - { 0x6F20, 114063 }, - { 0x6F21, 114066 }, - { 0x6F22, 114069 }, - { 0x6F23, 114072 }, - { 0x6F24, 114075 }, - { 0x6F25, 114078 }, - { 0x6F26, 114081 }, - { 0x6F27, 114084 }, - { 0x6F28, 114087 }, - { 0x6F29, 114090 }, - { 0x6F2A, 114093 }, - { 0x6F2B, 114096 }, - { 0x6F2C, 114099 }, - { 0x6F2D, 114102 }, - { 0x6F2E, 114105 }, - { 0x6F2F, 114108 }, - { 0x6F30, 114111 }, - { 0x6F31, 114114 }, - { 0x6F32, 114117 }, - { 0x6F33, 114120 }, - { 0x6F34, 114123 }, - { 0x6F35, 114126 }, - { 0x6F36, 114129 }, - { 0x6F37, 114132 }, - { 0x6F38, 114135 }, - { 0x6F39, 114138 }, - { 0x6F3A, 114141 }, - { 0x6F3B, 114144 }, - { 0x6F3C, 114147 }, - { 0x6F3D, 114150 }, - { 0x6F3E, 114153 }, - { 0x6F3F, 114156 }, - { 0x6F40, 114159 }, - { 0x6F41, 114162 }, - { 0x6F42, 114165 }, - { 0x6F43, 114168 }, - { 0x6F44, 114171 }, - { 0x6F45, 114174 }, - { 0x6F46, 114177 }, - { 0x6F47, 114180 }, - { 0x6F48, 114183 }, - { 0x6F49, 114186 }, - { 0x6F4A, 114189 }, - { 0x6F4B, 114192 }, - { 0x6F4C, 114195 }, - { 0x6D10, 114198 }, - { 0x6D21, 114201 }, - { 0x6D2F, 114204 }, - { 0x6D32, 114207 }, - { 0x6D37, 114210 }, - { 0x6D39, 114213 }, - { 0x6D3A, 114216 }, - { 0x6D4F, 114219 }, - { 0x6D50, 114222 }, - { 0x6D51, 114225 }, - { 0x6D71, 114228 }, - { 0x6D73, 114231 }, - { 0x6D76, 114234 }, - { 0x6D78, 114237 }, - { 0x6D7A, 114240 }, - { 0x6D7D, 114243 }, - { 0x6D7E, 114246 }, - { 0x6D7F, 114249 }, - { 0x6D81, 114252 }, - { 0x6D82, 114255 }, - { 0x6D85, 114258 }, - { 0x6D86, 114261 }, - { 0x6D87, 114264 }, - { 0x6D8B, 114267 }, - { 0x6D8C, 114270 }, - { 0x6D92, 114273 }, - { 0x6D9D, 114276 }, - { 0x6DA8, 114279 }, - { 0x6DEC, 114282 }, - { 0x6DED, 114285 }, - { 0x6DF3, 114288 }, - { 0x6DF6, 114291 }, - { 0x6DFD, 114294 }, - { 0x6DFF, 114297 }, - { 0x6E0B, 114300 }, - { 0x6E34, 114303 }, - { 0x6E4B, 114306 }, - { 0x6E51, 114309 }, - { 0x6E57, 114312 }, - { 0x6E62, 114315 }, - { 0x6E77, 114318 }, - { 0x6E7A, 114321 }, - { 0x6E7B, 114324 }, - { 0x6E7C, 114327 }, - { 0x6E81, 114330 }, - { 0x6E82, 114333 }, - { 0x6E83, 114336 }, - { 0x6E9B, 114339 }, - { 0x6EA1, 114342 }, - { 0x6EA6, 114345 }, - { 0x6EAA, 114348 }, - { 0x6EB5, 114351 }, - { 0x6EB8, 114354 }, - { 0x6EBC, 114357 }, - { 0x6ED5, 114360 }, - { 0x6EFE, 114366 }, - { 0x6F06, 114369 }, - { 0x91DA, 114372 }, - { 0x2236, 114374 }, - { 0x1EFD, 114376 }, - { 0x8EF9, 114377 }, - { 0x8F9A, 114378 }, - { 0x8FAB, 114381 }, - { 0x524F, 114385 }, - { 0x5250, 114388 }, - { 0x524A, 114391 }, - { 0x5249, 114394 }, - { 0x5248, 114397 }, - { 0x524B, 114400 }, - { 0x5247, 114403 }, - { 0x524E, 114406 }, - { 0x524C, 114409 }, - { 0x5252, 114411 }, - { 0x5257, 114414 }, - { 0x5253, 114417 }, - { 0x5256, 114420 }, - { 0x5255, 114423 }, - { 0x525A, 114426 }, - { 0x5251, 114429 }, - { 0x5259, 114432 }, - { 0x5258, 114435 }, - { 0x5254, 114438 }, - { 0x5243, 114441 }, - { 0x523C, 114445 }, - { 0x5245, 114449 }, - { 0x523E, 114453 }, - { 0x523B, 114457 }, - { 0x5244, 114461 }, - { 0x5246, 114465 }, - { 0x523D, 114469 }, - { 0x523F, 114473 }, - { 0x5242, 114477 }, - { 0x5240, 114482 }, - { 0x5241, 114487 }, - { 0x524D, 114492 }, - { 0x520D, 114495 }, - { 0x5216, 114498 }, - { 0x520F, 114501 }, - { 0x5218, 114504 }, - { 0x5211, 114507 }, - { 0x520E, 114510 }, - { 0x5217, 114513 }, - { 0x5219, 114516 }, - { 0x5230, 114519 }, - { 0x521F, 114522 }, - { 0x522B, 114525 }, - { 0x521C, 114528 }, - { 0x523A, 114531 }, - { 0x5210, 114534 }, - { 0x5221, 114537 }, - { 0x521A, 114540 }, - { 0x5235, 114543 }, - { 0x5232, 114546 }, - { 0x522D, 114549 }, - { 0x522E, 114552 }, - { 0x5234, 114555 }, - { 0x5239, 114558 }, - { 0x5229, 114561 }, - { 0x5212, 114564 }, - { 0x5236, 114567 }, - { 0x5233, 114570 }, - { 0x5231, 114573 }, - { 0x5220, 114576 }, - { 0x5226, 114579 }, - { 0x522C, 114582 }, - { 0x521D, 114585 }, - { 0x5222, 114588 }, - { 0x521B, 114591 }, - { 0x521E, 114594 }, - { 0x5228, 114597 }, - { 0x5223, 114600 }, - { 0x522F, 114603 }, - { 0x5237, 114606 }, - { 0x5238, 114609 }, - { 0x522A, 114612 }, - { 0x5224, 114615 }, - { 0x5227, 114618 }, - { 0x5225, 114621 }, - { 0x5215, 114624 }, - { 0x5213, 114628 }, - { 0x5214, 114632 }, - { 0x525B, 114636 }, - { 0x5260, 114639 }, - { 0x5264, 114642 }, - { 0x525C, 114645 }, - { 0x525F, 114648 }, - { 0x525E, 114651 }, - { 0x5263, 114654 }, - { 0x5262, 114657 }, - { 0x5268, 114660 }, - { 0x5267, 114663 }, - { 0x5261, 114666 }, - { 0x5269, 114669 }, - { 0x525D, 114672 }, - { 0x526B, 114675 }, - { 0x526C, 114678 }, - { 0x5266, 114681 }, - { 0x5265, 114684 }, - { 0x526A, 114687 }, - { 0x526D, 114690 }, - { 0x9267, 114694 }, - { 0x8F64, 114695 }, - { 0x224F, 114696 }, - { 0x95A0, 114698 }, - { 0x906F, 114699 }, - { 0x94B9, 114700 }, - { 0x7FDD, 114701 }, - { 0x7FBC, 114705 }, - { 0x8033, 114710 }, - { 0x7FF4, 114714 }, - { 0x7FC8, 114719 }, - { 0x7FEE, 114724 }, - { 0x8027, 114728 }, - { 0x7FDE, 114734 }, - { 0x802B, 114738 }, - { 0x802A, 114743 }, - { 0x804A, 114748 }, - { 0x804C, 114753 }, - { 0x8048, 114758 }, - { 0x804F, 114764 }, - { 0x804D, 114770 }, - { 0x804B, 114775 }, - { 0x8049, 114780 }, - { 0x804E, 114785 }, - { 0x7FE1, 114790 }, - { 0x7FBB, 114796 }, - { 0x8045, 114801 }, - { 0x8076, 114805 }, - { 0x8077, 114810 }, - { 0x8078, 114815 }, - { 0x8034, 114820 }, - { 0x802E, 114824 }, - { 0x7FDC, 114829 }, - { 0x7FF6, 114833 }, - { 0x7FB2, 114838 }, - { 0x7FB1, 114843 }, - { 0x7FAE, 114848 }, - { 0x7FD3, 114852 }, - { 0x8014, 114856 }, - { 0x7FDB, 114860 }, - { 0x8026, 114864 }, - { 0x7FC2, 114869 }, - { 0x7FC7, 114873 }, - { 0x8018, 114877 }, - { 0x7FAF, 114882 }, - { 0x807E, 114886 }, - { 0x8080, 114893 }, - { 0x8081, 114900 }, - { 0x807F, 114907 }, - { 0x807C, 114914 }, - { 0x807D, 114919 }, - { 0x800E, 114924 }, - { 0x8022, 114929 }, - { 0x8073, 114934 }, - { 0x8079, 114941 }, - { 0x806A, 114948 }, - { 0x8075, 114954 }, - { 0x8071, 114959 }, - { 0x8072, 114966 }, - { 0x8073, 114973 }, - { 0x8074, 114980 }, - { 0x806C, 114987 }, - { 0x7FE2, 114994 }, - { 0x8067, 114999 }, - { 0x806B, 115006 }, - { 0x806D, 115012 }, - { 0x8070, 115018 }, - { 0x806F, 115025 }, - { 0x8068, 115032 }, - { 0x806E, 115038 }, - { 0x8069, 115044 }, - { 0x807A, 115050 }, - { 0x8086, 115056 }, - { 0x8087, 115061 }, - { 0x803D, 115066 }, - { 0x80A3, 115072 }, - { 0x7FC4, 115078 }, - { 0x803F, 115083 }, - { 0x803E, 115089 }, - { 0x805A, 115095 }, - { 0x7FE5, 115101 }, - { 0x7FD2, 115106 }, - { 0x802D, 115110 }, - { 0x80A2, 115115 }, - { 0x8039, 115120 }, - { 0x8038, 115126 }, - { 0x803A, 115132 }, - { 0x803C, 115138 }, - { 0x803B, 115144 }, - { 0x8005, 115150 }, - { 0x7FF5, 115155 }, - { 0x7FC3, 115160 }, - { 0x8009, 115165 }, - { 0x7FCE, 115169 }, - { 0x8007, 115174 }, - { 0x7FD4, 115179 }, - { 0x7FC5, 115184 }, - { 0x7FD7, 115188 }, - { 0x8017, 115192 }, - { 0x8096, 115197 }, - { 0x7FBD, 115201 }, - { 0x8035, 115205 }, - { 0x8006, 115209 }, - { 0x7FB4, 115214 }, - { 0x7FB3, 115219 }, - { 0x8082, 115224 }, - { 0x8084, 115231 }, - { 0x8085, 115238 }, - { 0x8083, 115245 }, - { 0x807B, 115252 }, - { 0x7FFE, 115257 }, - { 0x809A, 115261 }, - { 0x8099, 115266 }, - { 0x809B, 115271 }, - { 0x809D, 115276 }, - { 0x8097, 115281 }, - { 0x809C, 115286 }, - { 0x8098, 115291 }, - { 0x8004, 115296 }, - { 0x8047, 115300 }, - { 0x8003, 115304 }, - { 0x8064, 115308 }, - { 0x7FED, 115315 }, - { 0x7FFD, 115319 }, - { 0x80A1, 115325 }, - { 0x809F, 115331 }, - { 0x7FC9, 115337 }, - { 0x8037, 115342 }, - { 0x8031, 115346 }, - { 0x8030, 115351 }, - { 0x802F, 115356 }, - { 0x800F, 115361 }, - { 0x800B, 115365 }, - { 0x7FEF, 115369 }, - { 0x7FF7, 115373 }, - { 0x7FEA, 115377 }, - { 0x802C, 115381 }, - { 0x7FCD, 115385 }, - { 0x8013, 115390 }, - { 0x7FD9, 115395 }, - { 0x7FD8, 115401 }, - { 0x7FC1, 115406 }, - { 0x7FDF, 115410 }, - { 0x7FD5, 115414 }, - { 0x7FCF, 115418 }, - { 0x8001, 115423 }, - { 0x8032, 115427 }, - { 0x7FD0, 115432 }, - { 0x7FD1, 115437 }, - { 0x7FC6, 115441 }, - { 0x8015, 115445 }, - { 0x7FE9, 115450 }, - { 0x8088, 115455 }, - { 0x8089, 115461 }, - { 0x808A, 115467 }, - { 0x808B, 115472 }, - { 0x8040, 115477 }, - { 0x8043, 115481 }, - { 0x8042, 115487 }, - { 0x8041, 115494 }, - { 0x8094, 115501 }, - { 0x8016, 115506 }, - { 0x8065, 115510 }, - { 0x7FB5, 115514 }, - { 0x7FE8, 115518 }, - { 0x7FF0, 115522 }, - { 0x7FF8, 115527 }, - { 0x7FBA, 115531 }, - { 0x8051, 115535 }, - { 0x8053, 115542 }, - { 0x805F, 115549 }, - { 0x8050, 115555 }, - { 0x8054, 115561 }, - { 0x8058, 115567 }, - { 0x8059, 115573 }, - { 0x8061, 115579 }, - { 0x8052, 115586 }, - { 0x8056, 115592 }, - { 0x8057, 115598 }, - { 0x8055, 115605 }, - { 0x8060, 115610 }, - { 0x7FCC, 115616 }, - { 0x7FE6, 115620 }, - { 0x7FFB, 115624 }, - { 0x7FCB, 115629 }, - { 0x8090, 115633 }, - { 0x8091, 115638 }, - { 0x8092, 115644 }, - { 0x8093, 115650 }, - { 0x808C, 115656 }, - { 0x808D, 115661 }, - { 0x808E, 115667 }, - { 0x808F, 115673 }, - { 0x8036, 115679 }, - { 0x8011, 115683 }, - { 0x7FF1, 115688 }, - { 0x7FE4, 115693 }, - { 0x8095, 115698 }, - { 0x8029, 115703 }, - { 0x805E, 115707 }, - { 0x805D, 115712 }, - { 0x805C, 115717 }, - { 0x7FE3, 115722 }, - { 0x8028, 115726 }, - { 0x7FBE, 115730 }, - { 0x7FFC, 115734 }, - { 0x80A0, 115740 }, - { 0x809E, 115746 }, - { 0x7FCA, 115752 }, - { 0x7FE0, 115757 }, - { 0x8023, 115761 }, - { 0x7FDA, 115766 }, - { 0x7FE7, 115771 }, - { 0x8008, 115775 }, - { 0x7FB6, 115780 }, - { 0x8044, 115784 }, - { 0x7FB8, 115788 }, - { 0x7FB9, 115792 }, - { 0x800A, 115797 }, - { 0x805B, 115801 }, - { 0x8000, 115807 }, - { 0x7FBF, 115813 }, - { 0x7FFF, 115817 }, - { 0x7FC0, 115822 }, - { 0x8012, 115827 }, - { 0x8062, 115831 }, - { 0x8063, 115837 }, - { 0x8046, 115843 }, - { 0x8066, 115847 }, - { 0x800D, 115851 }, - { 0x7FEB, 115856 }, - { 0x7FB7, 115861 }, - { 0x800C, 115865 }, - { 0x7FEC, 115870 }, - { 0x7FB0, 115875 }, - { 0x8024, 115879 }, - { 0x8025, 115884 }, - { 0x7FD6, 115889 }, - { 0x7FF3, 115893 }, - { 0x7FF2, 115897 }, - { 0x8021, 115901 }, - { 0x8020, 115905 }, - { 0x801B, 115909 }, - { 0x801E, 115913 }, - { 0x8010, 115917 }, - { 0x7FFA, 115921 }, - { 0x8002, 115925 }, - { 0x7FF9, 115929 }, - { 0x801A, 115933 }, - { 0x801F, 115937 }, - { 0x8019, 115941 }, - { 0x801C, 115945 }, - { 0x801D, 115949 }, - { 0x2A35, 115953 }, - { 0x227D, 115954 }, - { 0x95B2, 115955 }, - { 0x43BB, 115957 }, - { 0x43D9, 115961 }, - { 0x43B7, 115965 }, - { 0x43CF, 115969 }, - { 0x43B8, 115973 }, - { 0x43C9, 115977 }, - { 0x43C0, 115981 }, - { 0x43D1, 115985 }, - { 0x43BA, 115989 }, - { 0x43BD, 115993 }, - { 0x43DB, 115997 }, - { 0x43B9, 116001 }, - { 0x43C3, 116005 }, - { 0x43E5, 116009 }, - { 0x43CB, 116013 }, - { 0x43EA, 116017 }, - { 0x43C5, 116021 }, - { 0x43D3, 116025 }, - { 0x43DE, 116029 }, - { 0x43D4, 116033 }, - { 0x43CE, 116037 }, - { 0x43E0, 116041 }, - { 0x43C4, 116045 }, - { 0x43BF, 116049 }, - { 0x43C2, 116053 }, - { 0x43E7, 116057 }, - { 0x43DD, 116061 }, - { 0x43D0, 116065 }, - { 0x43E6, 116069 }, - { 0x43D2, 116073 }, - { 0x43C8, 116077 }, - { 0x43DC, 116081 }, - { 0x43CD, 116085 }, - { 0x43C6, 116089 }, - { 0x43D8, 116093 }, - { 0x43CA, 116097 }, - { 0x43CC, 116101 }, - { 0x43D5, 116105 }, - { 0x43E9, 116109 }, - { 0x43E1, 116113 }, - { 0x43D7, 116117 }, - { 0x43E4, 116121 }, - { 0x43E3, 116125 }, - { 0x43DA, 116129 }, - { 0x43E2, 116133 }, - { 0x43C7, 116137 }, - { 0x43E8, 116141 }, - { 0x43C1, 116145 }, - { 0x43BC, 116149 }, - { 0x43BE, 116153 }, - { 0x43D6, 116157 }, - { 0x43DF, 116161 }, - { 0x43EB, 116165 }, - { 0x1CC0, 116169 }, - { 0x8F74, 116171 }, - { 0x8F1E, 116173 }, - { 0x8F37, 116175 }, - { 0x8F8C, 116177 }, - { 0x8EB9, 116178 }, - { 0x9134, 116181 }, - { 0x8F8E, 116184 }, - { 0x907E, 116186 }, - { 0x1E0E, 116187 }, - { 0x1E12, 116191 }, - { 0x918B, 116195 }, - { 0x256D, 116201 }, - { 0x241F, 116205 }, - { 0x1E89, 116209 }, - { 0x1E88, 116212 }, - { 0x90B6, 116214 }, - { 0x90B4, 116221 }, - { 0x90B5, 116228 }, - { 0x279A, 116239 }, - { 0x95CB, 116244 }, - { 0x9058, 116245 }, - { 0x02FC, 116247 }, - { 0x0312, 116250 }, - { 0x1A67, 116253 }, - { 0x1A8C, 116256 }, - { 0x02DC, 116260 }, - { 0x1A68, 116264 }, - { 0x1A69, 116267 }, - { 0x02C6, 116270 }, - { 0x1A8F, 116273 }, - { 0x0317, 116277 }, - { 0x02E2, 116281 }, - { 0x1A91, 116284 }, - { 0x02F1, 116288 }, - { 0x0309, 116291 }, - { 0x4249, 116295 }, - { 0x424A, 116300 }, - { 0x424D, 116305 }, - { 0x424B, 116310 }, - { 0x424C, 116315 }, - { 0x17A0, 116320 }, - { 0x02DD, 116323 }, - { 0x1D46, 116327 }, - { 0x02C8, 116331 }, - { 0x02DA, 116334 }, - { 0x0310, 116336 }, - { 0x02DB, 116341 }, - { 0x02D7, 116346 }, - { 0x02D9, 116350 }, - { 0x0308, 116354 }, - { 0x1D40, 116358 }, - { 0x1D58, 116362 }, - { 0x1D4B, 116366 }, - { 0x030C, 116371 }, - { 0x1D3A, 116376 }, - { 0x1A95, 116380 }, - { 0x0313, 116384 }, - { 0x17AC, 116388 }, - { 0x17AE, 116393 }, - { 0x1D55, 116398 }, - { 0x02F5, 116403 }, - { 0x02F7, 116407 }, - { 0x1D3C, 116411 }, - { 0x17A2, 116416 }, - { 0x17B3, 116420 }, - { 0x02DE, 116424 }, - { 0x02C9, 116428 }, - { 0x02E4, 116431 }, - { 0x1D42, 116434 }, - { 0x1D53, 116437 }, - { 0x1A90, 116441 }, - { 0x0300, 116446 }, - { 0x02C0, 116450 }, - { 0x02D6, 116453 }, - { 0x4D62, 116457 }, - { 0x02C5, 116460 }, - { 0x02ED, 116462 }, - { 0x02CB, 116465 }, - { 0x02EB, 116467 }, - { 0x02D2, 116470 }, - { 0x02D4, 116473 }, - { 0x02E5, 116477 }, - { 0x02FF, 116480 }, - { 0x02BF, 116484 }, - { 0x02D5, 116487 }, - { 0x0302, 116491 }, - { 0x81CF, 116494 }, - { 0x81D1, 116498 }, - { 0x81D0, 116502 }, - { 0x0303, 116506 }, - { 0x0301, 116510 }, - { 0x0304, 116513 }, - { 0x0322, 116516 }, - { 0x1A89, 116521 }, - { 0x1A7F, 116528 }, - { 0x0327, 116533 }, - { 0x1A6E, 116538 }, - { 0x0328, 116544 }, - { 0x0323, 116549 }, - { 0x1A82, 116554 }, - { 0x1A71, 116559 }, - { 0x0329, 116564 }, - { 0x0324, 116569 }, - { 0x1A73, 116574 }, - { 0x1A74, 116579 }, - { 0x1A83, 116584 }, - { 0x032A, 116593 }, - { 0x1A77, 116598 }, - { 0x0325, 116603 }, - { 0x1A84, 116608 }, - { 0x1A8A, 116617 }, - { 0x1A85, 116624 }, - { 0x032B, 116629 }, - { 0x1A61, 116634 }, - { 0x1A7A, 116640 }, - { 0x1A7B, 116646 }, - { 0x032C, 116651 }, - { 0x0326, 116656 }, - { 0x1A87, 116661 }, - { 0x1A8B, 116670 }, - { 0x032D, 116677 }, - { 0x1A88, 116682 }, - { 0x17AA, 116687 }, - { 0x032E, 116693 }, - { 0x1A7D, 116698 }, - { 0x1A6B, 116703 }, - { 0x1A6C, 116708 }, - { 0x1A6D, 116713 }, - { 0x1A86, 116718 }, - { 0x1A70, 116723 }, - { 0x1A80, 116728 }, - { 0x1A7C, 116733 }, - { 0x1A7E, 116739 }, - { 0x1A81, 116744 }, - { 0x17AB, 116749 }, - { 0x1A6F, 116756 }, - { 0x17B7, 116762 }, - { 0x17B8, 116768 }, - { 0x17B9, 116774 }, - { 0x1A6A, 116780 }, - { 0x1A72, 116788 }, - { 0x1A75, 116794 }, - { 0x1A76, 116800 }, - { 0x1A78, 116806 }, - { 0x1A79, 116812 }, - { 0x17A4, 116818 }, - { 0x02DF, 116823 }, - { 0x0316, 116827 }, - { 0x02F8, 116832 }, - { 0x02D8, 116837 }, - { 0x1D41, 116841 }, - { 0x1D59, 116845 }, - { 0x1D3B, 116849 }, - { 0x0315, 116853 }, - { 0x1A96, 116860 }, - { 0x030F, 116867 }, - { 0x0314, 116871 }, - { 0x17AD, 116875 }, - { 0x17AF, 116880 }, - { 0x02F4, 116885 }, - { 0x02F6, 116889 }, - { 0x1D3D, 116893 }, - { 0x1A59, 116898 }, - { 0x1D45, 116901 }, - { 0x02C2, 116905 }, - { 0x3E2C, 116907 }, - { 0x02EF, 116912 }, - { 0x3E2D, 116915 }, - { 0x02F3, 116920 }, - { 0x030B, 116923 }, - { 0x1A94, 116928 }, - { 0x0305, 116933 }, - { 0x02E9, 116936 }, - { 0x1A58, 116939 }, - { 0x1A57, 116943 }, - { 0x02F2, 116947 }, - { 0x17A3, 116951 }, - { 0x17B4, 116956 }, - { 0x17B5, 116961 }, - { 0x0319, 116966 }, - { 0x02CA, 116970 }, - { 0x031C, 116974 }, - { 0x031B, 116977 }, - { 0x02CE, 116981 }, - { 0x031F, 116985 }, - { 0x3E25, 116988 }, - { 0x3E26, 116993 }, - { 0x031D, 116998 }, - { 0x031E, 117001 }, - { 0x0320, 117005 }, - { 0x1A93, 117009 }, - { 0x02FE, 117014 }, - { 0x02CD, 117017 }, - { 0x0307, 117022 }, - { 0x1D50, 117027 }, - { 0x1A64, 117032 }, - { 0x0321, 117036 }, - { 0x17A7, 117041 }, - { 0x0306, 117045 }, - { 0x1A8E, 117049 }, - { 0x1A8D, 117053 }, - { 0x02C3, 117057 }, - { 0x3E27, 117059 }, - { 0x3E2E, 117063 }, - { 0x02F0, 117068 }, - { 0x3E28, 117071 }, - { 0x3E2F, 117075 }, - { 0x17B1, 117080 }, - { 0x02E7, 117084 }, - { 0x1A65, 117086 }, - { 0x02FA, 117089 }, - { 0x17B0, 117092 }, - { 0x17A5, 117096 }, - { 0x179F, 117101 }, - { 0x17B6, 117104 }, - { 0x1D52, 117108 }, - { 0x02D1, 117111 }, - { 0x17A1, 117115 }, - { 0x031A, 117119 }, - { 0x1A66, 117122 }, - { 0x1D51, 117125 }, - { 0x02E6, 117128 }, - { 0x179B, 117130 }, - { 0x0311, 117134 }, - { 0x4D7B, 117136 }, - { 0x4D80, 117140 }, - { 0x4D7C, 117144 }, - { 0x4D7F, 117148 }, - { 0x4D7E, 117152 }, - { 0x4D7A, 117156 }, - { 0x4D7D, 117160 }, - { 0x4D81, 117164 }, - { 0x4D82, 117168 }, - { 0x4D83, 117172 }, - { 0x4D85, 117176 }, - { 0x4D84, 117180 }, - { 0x1D4F, 117184 }, - { 0x02FB, 117188 }, - { 0x030D, 117191 }, - { 0x1D5A, 117195 }, - { 0x0318, 117198 }, - { 0x3629, 117201 }, - { 0x043B, 117206 }, - { 0x043C, 117210 }, - { 0x8978, 117214 }, - { 0x0439, 117220 }, - { 0x3E31, 117223 }, - { 0x3E32, 117228 }, - { 0x3628, 117233 }, - { 0x3635, 117236 }, - { 0x29EC, 117239 }, - { 0x362E, 117243 }, - { 0x29E0, 117247 }, - { 0x3630, 117251 }, - { 0x29D6, 117255 }, - { 0x29D9, 117259 }, - { 0x3657, 117263 }, - { 0x29DD, 117267 }, - { 0x29DE, 117271 }, - { 0x29DF, 117275 }, - { 0x29E2, 117279 }, - { 0x29E3, 117283 }, - { 0x29E5, 117287 }, - { 0x29ED, 117291 }, - { 0x29DC, 117295 }, - { 0x29E1, 117299 }, - { 0x29E4, 117303 }, - { 0x29D7, 117307 }, - { 0x362F, 117311 }, - { 0x29F1, 117315 }, - { 0x29DB, 117319 }, - { 0x29F4, 117323 }, - { 0x29E7, 117328 }, - { 0x29D8, 117332 }, - { 0x29E8, 117336 }, - { 0x29E6, 117340 }, - { 0x29F0, 117344 }, - { 0x29DA, 117348 }, - { 0x29EA, 117352 }, - { 0x3631, 117356 }, - { 0x3633, 117361 }, - { 0x3632, 117366 }, - { 0x29EE, 117370 }, - { 0x29EB, 117374 }, - { 0x3634, 117378 }, - { 0x29E9, 117382 }, - { 0x29F3, 117386 }, - { 0x29F2, 117391 }, - { 0x3658, 117396 }, - { 0x29F5, 117401 }, - { 0x29EF, 117407 }, - { 0x362D, 117412 }, - { 0x362A, 117417 }, - { 0x043E, 117422 }, - { 0x3636, 117427 }, - { 0x043F, 117430 }, - { 0x043D, 117434 }, - { 0x362B, 117437 }, - { 0x043A, 117442 }, - { 0x1A92, 117445 }, - { 0x030E, 117448 }, - { 0x179D, 117451 }, - { 0x02D0, 117453 }, - { 0x02EE, 117456 }, - { 0x02F9, 117460 }, - { 0x17B2, 117464 }, - { 0x02EA, 117469 }, - { 0x3E23, 117474 }, - { 0x3E2A, 117478 }, - { 0x3E24, 117483 }, - { 0x3E2B, 117487 }, - { 0x02C4, 117492 }, - { 0x02D3, 117494 }, - { 0x02CC, 117498 }, - { 0x02E8, 117502 }, - { 0x02FD, 117506 }, - { 0x1D43, 117509 }, - { 0x1D3F, 117513 }, - { 0x02C7, 117517 }, - { 0x02E3, 117519 }, - { 0x179E, 117522 }, - { 0x1D47, 117525 }, - { 0x1D4A, 117528 }, - { 0x1D4D, 117532 }, - { 0x1D4C, 117535 }, - { 0x1D48, 117538 }, - { 0x1D4E, 117541 }, - { 0x1D49, 117546 }, - { 0x1D54, 117549 }, - { 0x1D57, 117553 }, - { 0x02E1, 117559 }, - { 0x02C1, 117563 }, - { 0x02EC, 117566 }, - { 0x3E29, 117570 }, - { 0x3E30, 117573 }, - { 0x386A, 117577 }, - { 0x385A, 117581 }, - { 0x385F, 117585 }, - { 0x385B, 117589 }, - { 0x385E, 117593 }, - { 0x385D, 117597 }, - { 0x3862, 117601 }, - { 0x3859, 117605 }, - { 0x3861, 117609 }, - { 0x3860, 117613 }, - { 0x385C, 117617 }, - { 0x3863, 117621 }, - { 0x3864, 117625 }, - { 0x3865, 117629 }, - { 0x3866, 117633 }, - { 0x3867, 117637 }, - { 0x3868, 117641 }, - { 0x3869, 117645 }, - { 0x891E, 117649 }, - { 0x8935, 117653 }, - { 0x8933, 117657 }, - { 0x8914, 117661 }, - { 0x8937, 117665 }, - { 0x8924, 117670 }, - { 0x892F, 117674 }, - { 0x892D, 117678 }, - { 0x8929, 117682 }, - { 0x8915, 117686 }, - { 0x8939, 117690 }, - { 0x892B, 117694 }, - { 0x891C, 117698 }, - { 0x8920, 117702 }, - { 0x892C, 117706 }, - { 0x8916, 117710 }, - { 0x8932, 117714 }, - { 0x8931, 117718 }, - { 0x8930, 117722 }, - { 0x8918, 117726 }, - { 0x892A, 117730 }, - { 0x8923, 117734 }, - { 0x8926, 117738 }, - { 0x8927, 117742 }, - { 0x8934, 117746 }, - { 0x8919, 117751 }, - { 0x892E, 117755 }, - { 0x891F, 117759 }, - { 0x8925, 117763 }, - { 0x8928, 117767 }, - { 0x891B, 117771 }, - { 0x8917, 117775 }, - { 0x891D, 117779 }, - { 0x8938, 117784 }, - { 0x8936, 117790 }, - { 0x8921, 117796 }, - { 0x8922, 117800 }, - { 0x891A, 117804 }, - { 0x030A, 117808 }, - { 0x1D56, 117811 }, - { 0x1A5A, 117817 }, - { 0x02CF, 117820 }, - { 0x02E0, 117822 }, - { 0x17A6, 117826 }, - { 0x17A8, 117829 }, - { 0x17A9, 117832 }, - { 0x1A5E, 117835 }, - { 0x1A62, 117837 }, - { 0x1A5C, 117839 }, - { 0x1A5B, 117841 }, - { 0x1A63, 117843 }, - { 0x1A5D, 117845 }, - { 0x1D44, 117847 }, - { 0x1D3E, 117851 }, - { 0x179C, 117855 }, - { 0x1A60, 117857 }, - { 0x1A5F, 117859 }, - { 0x2C43, 117861 }, - { 0x2C44, 117866 }, - { 0x2699, 117871 }, - { 0x0068, 117875 }, - { 0x8FBD, 117877 }, - { 0x947E, 117878 }, - { 0x53E0, 117879 }, - { 0x53E1, 117882 }, - { 0x53E4, 117887 }, - { 0x53E2, 117892 }, - { 0x53E5, 117897 }, - { 0x53E8, 117902 }, - { 0x53E3, 117907 }, - { 0x53E7, 117913 }, - { 0x53E6, 117918 }, - { 0x546A, 117924 }, - { 0x546C, 117927 }, - { 0x546B, 117935 }, - { 0x551F, 117940 }, - { 0x5520, 117943 }, - { 0x56EB, 117947 }, - { 0x5779, 117950 }, - { 0x56ED, 117954 }, - { 0x56EC, 117959 }, - { 0x56F0, 117963 }, - { 0x56EE, 117973 }, - { 0x56EF, 117984 }, - { 0x53E9, 117992 }, - { 0x53EA, 117995 }, - { 0x53F5, 117998 }, - { 0x53F4, 118002 }, - { 0x53EF, 118011 }, - { 0x53ED, 118016 }, - { 0x53F0, 118021 }, - { 0x5750, 118027 }, - { 0x57EE, 118032 }, - { 0x53EB, 118038 }, - { 0x53EC, 118043 }, - { 0x53EE, 118049 }, - { 0x53F1, 118055 }, - { 0x57EF, 118060 }, - { 0x53F2, 118065 }, - { 0x53F3, 118070 }, - { 0x53FC, 118075 }, - { 0x57F0, 118078 }, - { 0x53FD, 118083 }, - { 0x53FE, 118086 }, - { 0x53FF, 118091 }, - { 0x5400, 118098 }, - { 0x5401, 118101 }, - { 0x5404, 118106 }, - { 0x5406, 118111 }, - { 0x5407, 118116 }, - { 0x5408, 118121 }, - { 0x5402, 118126 }, - { 0x5403, 118131 }, - { 0x5405, 118136 }, - { 0x540D, 118141 }, - { 0x540E, 118144 }, - { 0x5411, 118149 }, - { 0x5410, 118155 }, - { 0x540F, 118164 }, - { 0x5420, 118169 }, - { 0x5429, 118172 }, - { 0x542A, 118175 }, - { 0x542B, 118180 }, - { 0x542C, 118185 }, - { 0x542D, 118191 }, - { 0x542E, 118194 }, - { 0x542F, 118200 }, - { 0x57F5, 118206 }, - { 0x5430, 118213 }, - { 0x5435, 118218 }, - { 0x57F6, 118221 }, - { 0x5452, 118226 }, - { 0x545A, 118229 }, - { 0x545C, 118232 }, - { 0x545B, 118236 }, - { 0x545D, 118241 }, - { 0x546D, 118245 }, - { 0x546E, 118248 }, - { 0x5473, 118257 }, - { 0x5470, 118262 }, - { 0x546F, 118267 }, - { 0x5817, 118272 }, - { 0x5818, 118277 }, - { 0x5471, 118282 }, - { 0x5472, 118287 }, - { 0x5476, 118292 }, - { 0x5477, 118295 }, - { 0x547A, 118298 }, - { 0x5478, 118303 }, - { 0x5479, 118308 }, - { 0x547D, 118314 }, - { 0x547B, 118318 }, - { 0x547C, 118323 }, - { 0x5495, 118328 }, - { 0x5496, 118331 }, - { 0x54E0, 118335 }, - { 0x54E1, 118338 }, - { 0x54E2, 118343 }, - { 0x54E3, 118348 }, - { 0x54F6, 118353 }, - { 0x54F7, 118356 }, - { 0x5509, 118361 }, - { 0x550B, 118364 }, - { 0x550A, 118368 }, - { 0x583C, 118372 }, - { 0x550D, 118377 }, - { 0x5516, 118380 }, - { 0x550E, 118385 }, - { 0x583D, 118390 }, - { 0x5510, 118399 }, - { 0x5512, 118404 }, - { 0x5513, 118409 }, - { 0x5514, 118414 }, - { 0x5515, 118419 }, - { 0x550F, 118424 }, - { 0x5511, 118429 }, - { 0x5517, 118434 }, - { 0x5521, 118437 }, - { 0x5525, 118440 }, - { 0x552B, 118443 }, - { 0x552C, 118446 }, - { 0x552E, 118452 }, - { 0x552F, 118455 }, - { 0x5532, 118460 }, - { 0x5530, 118464 }, - { 0x5531, 118469 }, - { 0x5534, 118474 }, - { 0x5535, 118477 }, - { 0x5537, 118480 }, - { 0x5538, 118483 }, - { 0x5567, 118488 }, - { 0x5840, 118493 }, - { 0x5539, 118500 }, - { 0x553A, 118505 }, - { 0x553F, 118512 }, - { 0x583E, 118517 }, - { 0x5542, 118522 }, - { 0x5547, 118527 }, - { 0x554B, 118532 }, - { 0x5762, 118537 }, - { 0x554E, 118544 }, - { 0x583F, 118549 }, - { 0x5550, 118554 }, - { 0x5552, 118559 }, - { 0x5553, 118564 }, - { 0x5554, 118569 }, - { 0x5555, 118574 }, - { 0x5556, 118581 }, - { 0x5557, 118588 }, - { 0x5558, 118595 }, - { 0x5559, 118600 }, - { 0x555A, 118607 }, - { 0x5764, 118612 }, - { 0x555C, 118617 }, - { 0x555D, 118622 }, - { 0x555E, 118627 }, - { 0x5766, 118632 }, - { 0x5568, 118637 }, - { 0x5569, 118642 }, - { 0x5841, 118647 }, - { 0x556C, 118652 }, - { 0x553C, 118657 }, - { 0x553E, 118662 }, - { 0x5543, 118667 }, - { 0x5545, 118672 }, - { 0x5546, 118677 }, - { 0x5761, 118686 }, - { 0x554D, 118691 }, - { 0x554F, 118696 }, - { 0x5551, 118701 }, - { 0x5763, 118706 }, - { 0x555B, 118711 }, - { 0x555F, 118716 }, - { 0x5560, 118721 }, - { 0x5561, 118726 }, - { 0x5563, 118731 }, - { 0x5564, 118736 }, - { 0x5566, 118741 }, - { 0x5767, 118746 }, - { 0x556B, 118751 }, - { 0x553B, 118756 }, - { 0x575F, 118761 }, - { 0x5541, 118766 }, - { 0x5544, 118771 }, - { 0x5548, 118777 }, - { 0x5760, 118782 }, - { 0x5549, 118787 }, - { 0x554A, 118794 }, - { 0x554C, 118801 }, - { 0x5562, 118806 }, - { 0x5765, 118811 }, - { 0x556A, 118816 }, - { 0x575E, 118823 }, - { 0x553D, 118828 }, - { 0x5540, 118833 }, - { 0x5565, 118838 }, - { 0x5580, 118843 }, - { 0x5582, 118846 }, - { 0x5583, 118851 }, - { 0x5581, 118856 }, - { 0x558A, 118861 }, - { 0x558B, 118864 }, - { 0x5597, 118876 }, - { 0x55D7, 118879 }, - { 0x55DB, 118882 }, - { 0x55DC, 118885 }, - { 0x5600, 118890 }, - { 0x5602, 118893 }, - { 0x5601, 118897 }, - { 0x5608, 118902 }, - { 0x560A, 118905 }, - { 0x588D, 118908 }, - { 0x560C, 118913 }, - { 0x560D, 118916 }, - { 0x561E, 118921 }, - { 0x5628, 118924 }, - { 0x5629, 118927 }, - { 0x562A, 118932 }, - { 0x562B, 118937 }, - { 0x562C, 118941 }, - { 0x562D, 118944 }, - { 0x5641, 118949 }, - { 0x565A, 118952 }, - { 0x565F, 118955 }, - { 0x5660, 118958 }, - { 0x5664, 118963 }, - { 0x5665, 118968 }, - { 0x5667, 118973 }, - { 0x5661, 118978 }, - { 0x5662, 118983 }, - { 0x5663, 118988 }, - { 0x5666, 118993 }, - { 0x5668, 118998 }, - { 0x5669, 119003 }, - { 0x566F, 119008 }, - { 0x5671, 119011 }, - { 0x5672, 119014 }, - { 0x5673, 119017 }, - { 0x56BB, 119020 }, - { 0x56BC, 119023 }, - { 0x58A6, 119027 }, - { 0x56C2, 119032 }, - { 0x56C3, 119035 }, - { 0x56CB, 119040 }, - { 0x56CF, 119043 }, - { 0x56CD, 119047 }, - { 0x56CE, 119052 }, - { 0x56CC, 119057 }, - { 0x56DC, 119061 }, - { 0x56DD, 119064 }, - { 0x56DE, 119068 }, - { 0x56DF, 119071 }, - { 0x56E5, 119075 }, - { 0x56F1, 119078 }, - { 0x56F2, 119081 }, - { 0x56F3, 119084 }, - { 0x56F9, 119087 }, - { 0x56F7, 119091 }, - { 0x56F8, 119100 }, - { 0x56F6, 119110 }, - { 0x56F5, 119115 }, - { 0x56F4, 119120 }, - { 0x56FA, 119124 }, - { 0x56FB, 119128 }, - { 0x56FD, 119134 }, - { 0x5701, 119137 }, - { 0x5778, 119142 }, - { 0x56FF, 119147 }, - { 0x5700, 119154 }, - { 0x56FE, 119159 }, - { 0x5706, 119164 }, - { 0x5707, 119167 }, - { 0x5708, 119171 }, - { 0x570A, 119174 }, - { 0x5709, 119178 }, - { 0x573D, 119183 }, - { 0x573E, 119186 }, - { 0x573F, 119190 }, - { 0x5743, 119196 }, - { 0x5744, 119199 }, - { 0x574A, 119204 }, - { 0x58B0, 119207 }, - { 0x53F6, 119214 }, - { 0x5751, 119217 }, - { 0x53F9, 119222 }, - { 0x53F8, 119229 }, - { 0x53FA, 119235 }, - { 0x53FB, 119240 }, - { 0x53F7, 119245 }, - { 0x5418, 119250 }, - { 0x541A, 119253 }, - { 0x541C, 119258 }, - { 0x541D, 119265 }, - { 0x541B, 119278 }, - { 0x5419, 119290 }, - { 0x5421, 119295 }, - { 0x57F1, 119298 }, - { 0x5424, 119304 }, - { 0x5425, 119307 }, - { 0x5427, 119312 }, - { 0x5433, 119315 }, - { 0x5436, 119318 }, - { 0x57F7, 119321 }, - { 0x5437, 119326 }, - { 0x543A, 119334 }, - { 0x543B, 119340 }, - { 0x543C, 119346 }, - { 0x543D, 119354 }, - { 0x5440, 119360 }, - { 0x5441, 119366 }, - { 0x5442, 119372 }, - { 0x5444, 119380 }, - { 0x5445, 119386 }, - { 0x5446, 119392 }, - { 0x5448, 119400 }, - { 0x544A, 119406 }, - { 0x544C, 119412 }, - { 0x5753, 119420 }, - { 0x543F, 119428 }, - { 0x5443, 119434 }, - { 0x5447, 119440 }, - { 0x5449, 119446 }, - { 0x544D, 119454 }, - { 0x5438, 119460 }, - { 0x543E, 119466 }, - { 0x544B, 119472 }, - { 0x5439, 119478 }, - { 0x544E, 119484 }, - { 0x544F, 119487 }, - { 0x5453, 119490 }, - { 0x5454, 119493 }, - { 0x57F9, 119496 }, - { 0x57F8, 119503 }, - { 0x5455, 119508 }, - { 0x5457, 119513 }, - { 0x5458, 119516 }, - { 0x545E, 119523 }, - { 0x5756, 119526 }, - { 0x545F, 119531 }, - { 0x5461, 119536 }, - { 0x5801, 119539 }, - { 0x5802, 119544 }, - { 0x5805, 119549 }, - { 0x5806, 119554 }, - { 0x5812, 119559 }, - { 0x5813, 119564 }, - { 0x5814, 119569 }, - { 0x5816, 119574 }, - { 0x57FC, 119580 }, - { 0x57FD, 119585 }, - { 0x57FE, 119592 }, - { 0x57FF, 119597 }, - { 0x5807, 119602 }, - { 0x5809, 119608 }, - { 0x580D, 119613 }, - { 0x580E, 119618 }, - { 0x580F, 119625 }, - { 0x5811, 119632 }, - { 0x5815, 119637 }, - { 0x5803, 119642 }, - { 0x5804, 119648 }, - { 0x5810, 119653 }, - { 0x57FB, 119658 }, - { 0x5800, 119663 }, - { 0x5808, 119668 }, - { 0x580A, 119673 }, - { 0x580B, 119678 }, - { 0x580C, 119685 }, - { 0x5463, 119690 }, - { 0x5464, 119693 }, - { 0x5497, 119696 }, - { 0x54CD, 119699 }, - { 0x5498, 119704 }, - { 0x5499, 119713 }, - { 0x549A, 119720 }, - { 0x54CA, 119727 }, - { 0x549C, 119732 }, - { 0x5759, 119737 }, - { 0x54A3, 119746 }, - { 0x54A4, 119751 }, - { 0x54A7, 119756 }, - { 0x54A8, 119761 }, - { 0x54A9, 119768 }, - { 0x54AA, 119773 }, - { 0x5829, 119781 }, - { 0x54AD, 119786 }, - { 0x582C, 119791 }, - { 0x54B1, 119798 }, - { 0x54B4, 119807 }, - { 0x54BD, 119814 }, - { 0x54BE, 119819 }, - { 0x54BF, 119826 }, - { 0x5832, 119831 }, - { 0x5833, 119836 }, - { 0x5834, 119843 }, - { 0x54C2, 119850 }, - { 0x54CB, 119855 }, - { 0x54CC, 119860 }, - { 0x549B, 119867 }, - { 0x549D, 119875 }, - { 0x549F, 119880 }, - { 0x54A0, 119885 }, - { 0x54A1, 119892 }, - { 0x54A2, 119897 }, - { 0x5825, 119904 }, - { 0x54A5, 119910 }, - { 0x54A6, 119917 }, - { 0x5826, 119922 }, - { 0x5827, 119930 }, - { 0x54AC, 119937 }, - { 0x582A, 119942 }, - { 0x582B, 119949 }, - { 0x54AE, 119956 }, - { 0x54AF, 119961 }, - { 0x54B2, 119968 }, - { 0x54B3, 119973 }, - { 0x54B6, 119980 }, - { 0x54B7, 119986 }, - { 0x54B8, 119995 }, - { 0x54BA, 120000 }, - { 0x54BB, 120005 }, - { 0x54BC, 120012 }, - { 0x582E, 120019 }, - { 0x582F, 120024 }, - { 0x5830, 120031 }, - { 0x54C0, 120036 }, - { 0x54C1, 120041 }, - { 0x54C3, 120048 }, - { 0x54C4, 120053 }, - { 0x54C5, 120058 }, - { 0x54C6, 120063 }, - { 0x54C8, 120070 }, - { 0x575A, 120075 }, - { 0x549E, 120080 }, - { 0x5828, 120087 }, - { 0x54AB, 120092 }, - { 0x54B0, 120098 }, - { 0x54B5, 120105 }, - { 0x5831, 120110 }, - { 0x54C7, 120115 }, - { 0x5835, 120120 }, - { 0x54C9, 120125 }, - { 0x5836, 120130 }, - { 0x5824, 120135 }, - { 0x54B9, 120140 }, - { 0x582D, 120145 }, - { 0x54D0, 120152 }, - { 0x54D1, 120155 }, - { 0x54D2, 120163 }, - { 0x54D3, 120166 }, - { 0x54D5, 120175 }, - { 0x54D6, 120178 }, - { 0x54DB, 120181 }, - { 0x54E4, 120184 }, - { 0x54E5, 120187 }, - { 0x54E6, 120192 }, - { 0x575C, 120197 }, - { 0x54F8, 120200 }, - { 0x54FD, 120203 }, - { 0x583A, 120207 }, - { 0x54F9, 120213 }, - { 0x54FA, 120218 }, - { 0x54FB, 120226 }, - { 0x54FC, 120231 }, - { 0x54FE, 120238 }, - { 0x5501, 120241 }, - { 0x583B, 120247 }, - { 0x54FF, 120254 }, - { 0x5500, 120261 }, - { 0x5502, 120266 }, - { 0x5503, 120269 }, - { 0x5504, 120272 }, - { 0x5505, 120277 }, - { 0x550C, 120280 }, - { 0x5526, 120283 }, - { 0x5528, 120286 }, - { 0x5527, 120290 }, - { 0x552A, 120294 }, - { 0x5529, 120298 }, - { 0x552D, 120309 }, - { 0x5536, 120312 }, - { 0x556D, 120315 }, - { 0x556E, 120318 }, - { 0x556F, 120323 }, - { 0x5575, 120326 }, - { 0x5576, 120329 }, - { 0x5577, 120335 }, - { 0x5578, 120338 }, - { 0x5579, 120343 }, - { 0x574F, 120348 }, - { 0x5584, 120352 }, - { 0x5585, 120355 }, - { 0x558C, 120358 }, - { 0x558D, 120361 }, - { 0x558E, 120364 }, - { 0x558F, 120369 }, - { 0x5590, 120372 }, - { 0x5591, 120375 }, - { 0x5592, 120379 }, - { 0x5593, 120382 }, - { 0x5594, 120385 }, - { 0x55D2, 120390 }, - { 0x55D3, 120393 }, - { 0x55D4, 120398 }, - { 0x55D5, 120401 }, - { 0x55D6, 120406 }, - { 0x55D8, 120413 }, - { 0x55DD, 120416 }, - { 0x5887, 120419 }, - { 0x55F1, 120425 }, - { 0x55DE, 120429 }, - { 0x55E3, 120434 }, - { 0x55E4, 120441 }, - { 0x55E8, 120446 }, - { 0x55E9, 120451 }, - { 0x55EB, 120458 }, - { 0x55EC, 120465 }, - { 0x55ED, 120470 }, - { 0x55EE, 120475 }, - { 0x55DF, 120482 }, - { 0x5889, 120487 }, - { 0x588A, 120492 }, - { 0x588B, 120497 }, - { 0x576B, 120506 }, - { 0x5888, 120511 }, - { 0x55E0, 120516 }, - { 0x576A, 120521 }, - { 0x55E1, 120528 }, - { 0x55E2, 120534 }, - { 0x55E5, 120540 }, - { 0x55E6, 120545 }, - { 0x55E7, 120550 }, - { 0x55EF, 120557 }, - { 0x588C, 120564 }, - { 0x55F0, 120569 }, - { 0x55EA, 120574 }, - { 0x55F5, 120579 }, - { 0x5769, 120583 }, - { 0x55F4, 120589 }, - { 0x55F2, 120593 }, - { 0x55F3, 120598 }, - { 0x55F6, 120603 }, - { 0x55FB, 120606 }, - { 0x55FC, 120609 }, - { 0x55FD, 120612 }, - { 0x55FE, 120615 }, - { 0x55FF, 120620 }, - { 0x5603, 120628 }, - { 0x5604, 120631 }, - { 0x5605, 120634 }, - { 0x5609, 120637 }, - { 0x560B, 120640 }, - { 0x560E, 120643 }, - { 0x560F, 120646 }, - { 0x561F, 120650 }, - { 0x576E, 120653 }, - { 0x5626, 120656 }, - { 0x5625, 120659 }, - { 0x562E, 120663 }, - { 0x562F, 120666 }, - { 0x5631, 120669 }, - { 0x5630, 120677 }, - { 0x576F, 120683 }, - { 0x5643, 120686 }, - { 0x564A, 120689 }, - { 0x5649, 120694 }, - { 0x5644, 120698 }, - { 0x5646, 120704 }, - { 0x5647, 120710 }, - { 0x5648, 120721 }, - { 0x5645, 120727 }, - { 0x564B, 120733 }, - { 0x564C, 120738 }, - { 0x565B, 120746 }, - { 0x565C, 120749 }, - { 0x565D, 120752 }, - { 0x5670, 120755 }, - { 0x5675, 120758 }, - { 0x5688, 120761 }, - { 0x589B, 120765 }, - { 0x5687, 120771 }, - { 0x5676, 120776 }, - { 0x5677, 120781 }, - { 0x589C, 120786 }, - { 0x5679, 120791 }, - { 0x567D, 120796 }, - { 0x5682, 120801 }, - { 0x5683, 120806 }, - { 0x5684, 120811 }, - { 0x5685, 120816 }, - { 0x5678, 120821 }, - { 0x5776, 120826 }, - { 0x567A, 120832 }, - { 0x567B, 120837 }, - { 0x567C, 120842 }, - { 0x567E, 120847 }, - { 0x567F, 120852 }, - { 0x589D, 120857 }, - { 0x5681, 120864 }, - { 0x5686, 120869 }, - { 0x5680, 120874 }, - { 0x589E, 120879 }, - { 0x5674, 120884 }, - { 0x5689, 120888 }, - { 0x568A, 120891 }, - { 0x568C, 120897 }, - { 0x568D, 120900 }, - { 0x569A, 120903 }, - { 0x569B, 120906 }, - { 0x58A0, 120910 }, - { 0x569C, 120915 }, - { 0x569D, 120926 }, - { 0x58A3, 120937 }, - { 0x58A1, 120942 }, - { 0x58A2, 120947 }, - { 0x56B7, 120952 }, - { 0x56B8, 120955 }, - { 0x56BD, 120961 }, - { 0x56C4, 120964 }, - { 0x56C7, 120967 }, - { 0x56C9, 120970 }, - { 0x56D0, 120973 }, - { 0x56D1, 120976 }, - { 0x56D2, 120987 }, - { 0x56D3, 120991 }, - { 0x56D4, 120994 }, - { 0x56D9, 120999 }, - { 0x56D5, 121004 }, - { 0x56D6, 121009 }, - { 0x56D7, 121014 }, - { 0x56D8, 121019 }, - { 0x56DB, 121024 }, - { 0x5777, 121027 }, - { 0x56E0, 121030 }, - { 0x56E1, 121033 }, - { 0x56E3, 121036 }, - { 0x56E4, 121041 }, - { 0x56E2, 121052 }, - { 0x56E7, 121057 }, - { 0x56E8, 121060 }, - { 0x58A8, 121063 }, - { 0x58A9, 121069 }, - { 0x56E9, 121075 }, - { 0x56EA, 121078 }, - { 0x570B, 121086 }, - { 0x570C, 121089 }, - { 0x570D, 121096 }, - { 0x570E, 121103 }, - { 0x570F, 121108 }, - { 0x5711, 121113 }, - { 0x5713, 121118 }, - { 0x5712, 121125 }, - { 0x58AB, 121132 }, - { 0x5710, 121137 }, - { 0x58AA, 121142 }, - { 0x5714, 121146 }, - { 0x5715, 121149 }, - { 0x5717, 121152 }, - { 0x5718, 121155 }, - { 0x572C, 121160 }, - { 0x571C, 121167 }, - { 0x5720, 121172 }, - { 0x5721, 121177 }, - { 0x5723, 121182 }, - { 0x5725, 121187 }, - { 0x5728, 121192 }, - { 0x572B, 121197 }, - { 0x572D, 121202 }, - { 0x571A, 121207 }, - { 0x571B, 121212 }, - { 0x571D, 121217 }, - { 0x571F, 121222 }, - { 0x5722, 121227 }, - { 0x5724, 121232 }, - { 0x58AE, 121237 }, - { 0x5726, 121242 }, - { 0x5727, 121247 }, - { 0x5729, 121252 }, - { 0x571E, 121257 }, - { 0x572A, 121263 }, - { 0x58AC, 121268 }, - { 0x572E, 121273 }, - { 0x5719, 121278 }, - { 0x58AD, 121283 }, - { 0x5731, 121288 }, - { 0x5732, 121291 }, - { 0x5733, 121296 }, - { 0x5734, 121301 }, - { 0x5735, 121306 }, - { 0x573A, 121311 }, - { 0x573B, 121314 }, - { 0x573C, 121319 }, - { 0x58AF, 121322 }, - { 0x5740, 121325 }, - { 0x5742, 121328 }, - { 0x5745, 121331 }, - { 0x5746, 121334 }, - { 0x5747, 121337 }, - { 0x5748, 121342 }, - { 0x574B, 121345 }, - { 0x574C, 121348 }, - { 0x58B1, 121353 }, - { 0x574E, 121360 }, - { 0x5409, 121363 }, - { 0x540B, 121366 }, - { 0x5752, 121369 }, - { 0x540C, 121374 }, - { 0x5413, 121379 }, - { 0x5414, 121382 }, - { 0x5415, 121385 }, - { 0x541E, 121390 }, - { 0x5422, 121393 }, - { 0x5434, 121396 }, - { 0x5754, 121399 }, - { 0x5456, 121402 }, - { 0x57FA, 121405 }, - { 0x5459, 121410 }, - { 0x5755, 121413 }, - { 0x5460, 121418 }, - { 0x5465, 121421 }, - { 0x5466, 121424 }, - { 0x5467, 121428 }, - { 0x5468, 121433 }, - { 0x5469, 121436 }, - { 0x5474, 121439 }, - { 0x5475, 121442 }, - { 0x547E, 121445 }, - { 0x5480, 121448 }, - { 0x581A, 121451 }, - { 0x5481, 121456 }, - { 0x5482, 121459 }, - { 0x5483, 121464 }, - { 0x5484, 121471 }, - { 0x5485, 121480 }, - { 0x5489, 121485 }, - { 0x548A, 121490 }, - { 0x548F, 121496 }, - { 0x5491, 121501 }, - { 0x5492, 121506 }, - { 0x5823, 121511 }, - { 0x5493, 121516 }, - { 0x5494, 121521 }, - { 0x5486, 121526 }, - { 0x5757, 121531 }, - { 0x548B, 121536 }, - { 0x548E, 121542 }, - { 0x5490, 121547 }, - { 0x5758, 121554 }, - { 0x5487, 121559 }, - { 0x5488, 121565 }, - { 0x548C, 121572 }, - { 0x548D, 121577 }, - { 0x581C, 121583 }, - { 0x581E, 121589 }, - { 0x5820, 121595 }, - { 0x5822, 121601 }, - { 0x581B, 121607 }, - { 0x581D, 121613 }, - { 0x581F, 121620 }, - { 0x5821, 121626 }, - { 0x54CE, 121632 }, - { 0x5837, 121635 }, - { 0x54CF, 121641 }, - { 0x54D7, 121646 }, - { 0x54D9, 121649 }, - { 0x54D8, 121654 }, - { 0x54DA, 121658 }, - { 0x54DC, 121663 }, - { 0x575B, 121666 }, - { 0x54E8, 121669 }, - { 0x54E9, 121672 }, - { 0x54EA, 121676 }, - { 0x54EB, 121679 }, - { 0x54EE, 121686 }, - { 0x54EF, 121693 }, - { 0x54ED, 121698 }, - { 0x54EC, 121703 }, - { 0x54F1, 121709 }, - { 0x54F5, 121712 }, - { 0x54F3, 121716 }, - { 0x5839, 121721 }, - { 0x54F4, 121728 }, - { 0x54F2, 121733 }, - { 0x5506, 121738 }, - { 0x5518, 121741 }, - { 0x5519, 121744 }, - { 0x551D, 121749 }, - { 0x551A, 121754 }, - { 0x551C, 121759 }, - { 0x551B, 121764 }, - { 0x551E, 121769 }, - { 0x575D, 121772 }, - { 0x5522, 121775 }, - { 0x5523, 121778 }, - { 0x5524, 121784 }, - { 0x5533, 121790 }, - { 0x5570, 121793 }, - { 0x5571, 121796 }, - { 0x5572, 121799 }, - { 0x5573, 121802 }, - { 0x5574, 121805 }, - { 0x557A, 121810 }, - { 0x557B, 121813 }, - { 0x5587, 121816 }, - { 0x55DA, 121819 }, - { 0x5606, 121822 }, - { 0x576C, 121825 }, - { 0x5612, 121828 }, - { 0x5616, 121831 }, - { 0x5617, 121836 }, - { 0x588E, 121845 }, - { 0x588F, 121852 }, - { 0x5613, 121859 }, - { 0x5615, 121864 }, - { 0x5614, 121869 }, - { 0x5618, 121874 }, - { 0x5620, 121879 }, - { 0x5622, 121882 }, - { 0x5621, 121888 }, - { 0x5623, 121892 }, - { 0x5627, 121897 }, - { 0x5770, 121900 }, - { 0x5642, 121903 }, - { 0x56B5, 121906 }, - { 0x56B4, 121914 }, - { 0x5773, 121918 }, - { 0x5775, 121924 }, - { 0x568E, 121927 }, - { 0x568F, 121930 }, - { 0x5695, 121935 }, - { 0x5696, 121940 }, - { 0x5692, 121947 }, - { 0x5690, 121952 }, - { 0x5694, 121957 }, - { 0x5691, 121962 }, - { 0x5693, 121967 }, - { 0x5697, 121972 }, - { 0x589F, 121975 }, - { 0x569F, 121979 }, - { 0x56A3, 121982 }, - { 0x56A4, 121985 }, - { 0x56A5, 121990 }, - { 0x56A6, 121995 }, - { 0x56A7, 121998 }, - { 0x56A8, 122003 }, - { 0x56AA, 122008 }, - { 0x56AB, 122013 }, - { 0x56AC, 122018 }, - { 0x56AD, 122023 }, - { 0x56AF, 122029 }, - { 0x56B0, 122034 }, - { 0x56B1, 122039 }, - { 0x56A9, 122044 }, - { 0x56AE, 122049 }, - { 0x56B3, 122054 }, - { 0x56B5, 122057 }, - { 0x56B4, 122065 }, - { 0x56B9, 122069 }, - { 0x58A5, 122072 }, - { 0x58A4, 122079 }, - { 0x56BE, 122086 }, - { 0x56BF, 122089 }, - { 0x56C0, 122095 }, - { 0x56C5, 122098 }, - { 0x56CA, 122101 }, - { 0x56DA, 122104 }, - { 0x58A7, 122107 }, - { 0x56E6, 122112 }, - { 0x56FC, 122115 }, - { 0x5703, 122118 }, - { 0x5705, 122121 }, - { 0x5704, 122126 }, - { 0x5716, 122131 }, - { 0x5737, 122134 }, - { 0x5736, 122137 }, - { 0x5741, 122140 }, - { 0x5749, 122143 }, - { 0x540A, 122146 }, - { 0x5412, 122149 }, - { 0x5416, 122152 }, - { 0x5417, 122155 }, - { 0x5426, 122158 }, - { 0x5428, 122161 }, - { 0x5431, 122164 }, - { 0x5432, 122167 }, - { 0x5450, 122172 }, - { 0x5451, 122175 }, - { 0x5462, 122178 }, - { 0x547F, 122181 }, - { 0x5819, 122184 }, - { 0x54D4, 122188 }, - { 0x54E7, 122191 }, - { 0x54F0, 122194 }, - { 0x5507, 122197 }, - { 0x5707, 122200 }, - { 0x557F, 122203 }, - { 0x5586, 122206 }, - { 0x5598, 122209 }, - { 0x5599, 122212 }, - { 0x559A, 122217 }, - { 0x559B, 122226 }, - { 0x559C, 122233 }, - { 0x55C5, 122240 }, - { 0x55C6, 122245 }, - { 0x55C7, 122252 }, - { 0x559D, 122261 }, - { 0x559E, 122266 }, - { 0x55A1, 122271 }, - { 0x55A3, 122276 }, - { 0x55A4, 122281 }, - { 0x5768, 122286 }, - { 0x55A8, 122291 }, - { 0x55AA, 122296 }, - { 0x55AC, 122303 }, - { 0x55AD, 122308 }, - { 0x55AE, 122315 }, - { 0x55AF, 122322 }, - { 0x55B6, 122327 }, - { 0x55B8, 122332 }, - { 0x55B9, 122337 }, - { 0x55BB, 122344 }, - { 0x55C4, 122349 }, - { 0x55C8, 122360 }, - { 0x55C9, 122367 }, - { 0x5842, 122372 }, - { 0x559F, 122379 }, - { 0x55A0, 122386 }, - { 0x55A2, 122391 }, - { 0x55A5, 122396 }, - { 0x55A6, 122401 }, - { 0x55A7, 122406 }, - { 0x55A9, 122413 }, - { 0x55AB, 122418 }, - { 0x55B0, 122424 }, - { 0x55B1, 122429 }, - { 0x55B2, 122434 }, - { 0x55B3, 122439 }, - { 0x55B7, 122448 }, - { 0x55BC, 122453 }, - { 0x55C1, 122460 }, - { 0x55C2, 122465 }, - { 0x55CA, 122470 }, - { 0x55B5, 122475 }, - { 0x55BA, 122480 }, - { 0x55BF, 122485 }, - { 0x55C0, 122490 }, - { 0x55C3, 122497 }, - { 0x55B4, 122502 }, - { 0x55BD, 122507 }, - { 0x55BE, 122516 }, - { 0x55CB, 122524 }, - { 0x55CC, 122528 }, - { 0x55CF, 122531 }, - { 0x55D0, 122535 }, - { 0x55CD, 122543 }, - { 0x55CE, 122548 }, - { 0x55F7, 122555 }, - { 0x55F8, 122558 }, - { 0x55FA, 122563 }, - { 0x55F9, 122567 }, - { 0x5607, 122572 }, - { 0x5619, 122575 }, - { 0x561D, 122578 }, - { 0x561A, 122582 }, - { 0x561B, 122587 }, - { 0x561C, 122594 }, - { 0x576D, 122599 }, - { 0x5624, 122604 }, - { 0x5640, 122607 }, - { 0x564D, 122610 }, - { 0x564F, 122613 }, - { 0x5654, 122619 }, - { 0x5655, 122625 }, - { 0x5657, 122631 }, - { 0x5650, 122637 }, - { 0x5651, 122643 }, - { 0x5652, 122649 }, - { 0x5653, 122656 }, - { 0x5656, 122662 }, - { 0x564E, 122668 }, - { 0x5658, 122674 }, - { 0x5659, 122680 }, - { 0x565E, 122687 }, - { 0x5774, 122690 }, - { 0x566A, 122694 }, - { 0x566C, 122697 }, - { 0x566D, 122702 }, - { 0x566B, 122707 }, - { 0x566E, 122712 }, - { 0x5698, 122717 }, - { 0x5699, 122720 }, - { 0x569E, 122723 }, - { 0x56A0, 122726 }, - { 0x56B6, 122729 }, - { 0x56C1, 122732 }, - { 0x56C6, 122735 }, - { 0x5702, 122738 }, - { 0x572F, 122741 }, - { 0x5730, 122744 }, - { 0x5739, 122749 }, - { 0x574D, 122752 }, - { 0x541F, 122755 }, - { 0x5423, 122758 }, - { 0x57F3, 122761 }, - { 0x57F4, 122766 }, - { 0x57F2, 122771 }, - { 0x54DD, 122776 }, - { 0x5508, 122779 }, - { 0x557C, 122782 }, - { 0x557E, 122785 }, - { 0x557D, 122797 }, - { 0x5588, 122807 }, - { 0x5589, 122810 }, - { 0x5595, 122815 }, - { 0x5596, 122818 }, - { 0x55D1, 122821 }, - { 0x55D9, 122824 }, - { 0x5610, 122827 }, - { 0x5611, 122830 }, - { 0x5632, 122833 }, - { 0x5898, 122836 }, - { 0x5899, 122841 }, - { 0x5633, 122848 }, - { 0x5772, 122853 }, - { 0x5893, 122858 }, - { 0x5637, 122863 }, - { 0x5638, 122871 }, - { 0x563E, 122876 }, - { 0x5634, 122883 }, - { 0x5635, 122888 }, - { 0x5771, 122895 }, - { 0x5890, 122900 }, - { 0x5636, 122906 }, - { 0x5892, 122911 }, - { 0x5639, 122916 }, - { 0x5897, 122921 }, - { 0x563A, 122928 }, - { 0x563B, 122933 }, - { 0x563C, 122941 }, - { 0x563D, 122948 }, - { 0x563F, 122957 }, - { 0x5891, 122962 }, - { 0x5896, 122967 }, - { 0x5894, 122972 }, - { 0x589A, 122977 }, - { 0x5895, 122982 }, - { 0x568B, 122987 }, - { 0x56A1, 122990 }, - { 0x56B2, 122993 }, - { 0x56BA, 122996 }, - { 0x56C8, 122999 }, - { 0x5738, 123002 }, - { 0x54DE, 123005 }, - { 0x5838, 123008 }, - { 0x54DF, 123013 }, - { 0x5843, 123018 }, - { 0x5844, 123021 }, - { 0x5845, 123024 }, - { 0x5846, 123027 }, - { 0x5847, 123030 }, - { 0x5848, 123033 }, - { 0x5849, 123036 }, - { 0x584A, 123039 }, - { 0x584B, 123045 }, - { 0x584C, 123048 }, - { 0x584D, 123053 }, - { 0x584E, 123056 }, - { 0x584F, 123059 }, - { 0x5850, 123062 }, - { 0x5851, 123065 }, - { 0x5852, 123068 }, - { 0x5853, 123071 }, - { 0x5854, 123074 }, - { 0x5855, 123077 }, - { 0x5856, 123080 }, - { 0x5857, 123083 }, - { 0x5858, 123086 }, - { 0x5859, 123089 }, - { 0x585A, 123092 }, - { 0x585B, 123095 }, - { 0x585C, 123098 }, - { 0x585D, 123101 }, - { 0x585E, 123104 }, - { 0x585F, 123107 }, - { 0x5860, 123110 }, - { 0x5864, 123115 }, - { 0x5861, 123122 }, - { 0x5862, 123127 }, - { 0x5863, 123134 }, - { 0x5865, 123143 }, - { 0x5866, 123146 }, - { 0x5867, 123149 }, - { 0x5868, 123152 }, - { 0x5869, 123155 }, - { 0x586A, 123158 }, - { 0x586B, 123161 }, - { 0x586C, 123164 }, - { 0x586D, 123167 }, - { 0x586E, 123170 }, - { 0x586F, 123173 }, - { 0x5874, 123176 }, - { 0x5876, 123181 }, - { 0x5877, 123186 }, - { 0x5878, 123191 }, - { 0x5870, 123196 }, - { 0x5871, 123201 }, - { 0x5873, 123206 }, - { 0x5875, 123211 }, - { 0x5872, 123216 }, - { 0x5879, 123223 }, - { 0x587A, 123228 }, - { 0x587B, 123231 }, - { 0x587D, 123234 }, - { 0x5880, 123239 }, - { 0x5883, 123244 }, - { 0x587C, 123249 }, - { 0x587E, 123254 }, - { 0x587F, 123259 }, - { 0x5881, 123265 }, - { 0x5882, 123274 }, - { 0x5884, 123281 }, - { 0x5885, 123286 }, - { 0x5886, 123289 }, - { 0x56A2, 123292 }, - { 0x57DB, 123295 }, - { 0x57DC, 123302 }, - { 0x57C9, 123309 }, - { 0x57AE, 123314 }, - { 0x57DE, 123319 }, - { 0x57D2, 123325 }, - { 0x578F, 123330 }, - { 0x5798, 123335 }, - { 0x57A6, 123340 }, - { 0x57D4, 123345 }, - { 0x57D7, 123351 }, - { 0x57D9, 123359 }, - { 0x57DA, 123365 }, - { 0x57DD, 123371 }, - { 0x578B, 123377 }, - { 0x57E5, 123382 }, - { 0x577E, 123389 }, - { 0x57C8, 123394 }, - { 0x5785, 123400 }, - { 0x5794, 123405 }, - { 0x57A2, 123410 }, - { 0x57BA, 123415 }, - { 0x577A, 123422 }, - { 0x57C4, 123427 }, - { 0x57CA, 123433 }, - { 0x57AF, 123438 }, - { 0x57D3, 123443 }, - { 0x5790, 123448 }, - { 0x5799, 123453 }, - { 0x579D, 123458 }, - { 0x57A7, 123463 }, - { 0x57D5, 123468 }, - { 0x57D8, 123474 }, - { 0x578A, 123482 }, - { 0x57E4, 123487 }, - { 0x577D, 123494 }, - { 0x57C7, 123499 }, - { 0x57CE, 123505 }, - { 0x57CF, 123510 }, - { 0x57B3, 123517 }, - { 0x5784, 123522 }, - { 0x5793, 123527 }, - { 0x579C, 123532 }, - { 0x57A1, 123537 }, - { 0x57AB, 123542 }, - { 0x57D6, 123547 }, - { 0x5789, 123553 }, - { 0x57E3, 123558 }, - { 0x577C, 123565 }, - { 0x57C6, 123570 }, - { 0x57CC, 123576 }, - { 0x57CD, 123581 }, - { 0x57B2, 123588 }, - { 0x5783, 123593 }, - { 0x5792, 123598 }, - { 0x579B, 123603 }, - { 0x57A0, 123608 }, - { 0x57AA, 123613 }, - { 0x57B6, 123618 }, - { 0x57B8, 123625 }, - { 0x57B9, 123633 }, - { 0x57B7, 123641 }, - { 0x578E, 123648 }, - { 0x57E8, 123653 }, - { 0x5781, 123660 }, - { 0x5788, 123665 }, - { 0x5797, 123670 }, - { 0x57A5, 123675 }, - { 0x57C0, 123680 }, - { 0x57C3, 123687 }, - { 0x57C1, 123695 }, - { 0x57C2, 123702 }, - { 0x578D, 123709 }, - { 0x57E7, 123714 }, - { 0x5780, 123721 }, - { 0x5787, 123726 }, - { 0x5796, 123731 }, - { 0x57A4, 123736 }, - { 0x57BE, 123741 }, - { 0x57BF, 123748 }, - { 0x578C, 123755 }, - { 0x57E6, 123760 }, - { 0x577F, 123767 }, - { 0x5786, 123772 }, - { 0x5795, 123777 }, - { 0x57A3, 123782 }, - { 0x57BC, 123787 }, - { 0x57BD, 123795 }, - { 0x57BB, 123803 }, - { 0x57AD, 123810 }, - { 0x57AC, 123818 }, - { 0x577B, 123826 }, - { 0x57C5, 123831 }, - { 0x57CB, 123837 }, - { 0x57B0, 123842 }, - { 0x57B1, 123847 }, - { 0x5782, 123854 }, - { 0x5791, 123859 }, - { 0x579A, 123864 }, - { 0x579E, 123869 }, - { 0x579F, 123874 }, - { 0x57A8, 123881 }, - { 0x57A9, 123886 }, - { 0x57B4, 123893 }, - { 0x57B5, 123900 }, - { 0x57DF, 123907 }, - { 0x57E0, 123913 }, - { 0x57E2, 123919 }, - { 0x57E1, 123924 }, - { 0x57D1, 123929 }, - { 0x57D0, 123933 }, - { 0x57E9, 123937 }, - { 0x57EB, 123944 }, - { 0x57EC, 123949 }, - { 0x57ED, 123954 }, - { 0x57EA, 123959 }, - { 0x8EE6, 123964 }, - { 0x2021, 123966 }, - { 0x201F, 123972 }, - { 0x2019, 123980 }, - { 0x201C, 123988 }, - { 0x2020, 123996 }, - { 0x201E, 124002 }, - { 0x2018, 124010 }, - { 0x201B, 124018 }, - { 0x2022, 124026 }, - { 0x2015, 124033 }, - { 0x201D, 124040 }, - { 0x2023, 124046 }, - { 0x2016, 124053 }, - { 0x2017, 124060 }, - { 0x201A, 124066 }, - { 0x0067, 124072 }, - { 0x1F88, 124073 }, - { 0x94A6, 124075 }, - { 0x1DF8, 124077 }, - { 0x1DEA, 124081 }, - { 0x253F, 124083 }, - { 0x96B8, 124087 }, - { 0x1DFE, 124094 }, - { 0x1E09, 124098 }, - { 0x1E0A, 124103 }, - { 0x9397, 124108 }, - { 0x938F, 124114 }, - { 0x939B, 124120 }, - { 0x1E0C, 124126 }, - { 0x1E36, 124131 }, - { 0x9393, 124136 }, - { 0x940D, 124142 }, - { 0x2534, 124147 }, - { 0x939F, 124152 }, - { 0x1E4C, 124157 }, - { 0x2733, 124163 }, - { 0x9423, 124166 }, - { 0x27B5, 124171 }, - { 0x93CF, 124176 }, - { 0x93CB, 124179 }, - { 0x1E40, 124183 }, - { 0x9409, 124186 }, - { 0x2A0A, 124192 }, - { 0x1E3A, 124194 }, - { 0x1E2A, 124197 }, - { 0x1E21, 124200 }, - { 0x9222, 124203 }, - { 0x2537, 124205 }, - { 0x1E06, 124208 }, - { 0x2585, 124211 }, - { 0x258D, 124218 }, - { 0x259B, 124225 }, - { 0x2591, 124236 }, - { 0x2581, 124247 }, - { 0x2589, 124254 }, - { 0x1E1A, 124261 }, - { 0x1E19, 124266 }, - { 0x93C3, 124271 }, - { 0x9405, 124274 }, - { 0x241D, 124277 }, - { 0x93C7, 124280 }, - { 0x93D3, 124283 }, - { 0x2818, 124286 }, - { 0x93BF, 124292 }, - { 0x278F, 124295 }, - { 0x279F, 124298 }, - { 0x93B3, 124303 }, - { 0x27C9, 124309 }, - { 0x27CA, 124316 }, - { 0x93BB, 124323 }, - { 0x93B7, 124330 }, - { 0x27A7, 124336 }, - { 0x93AF, 124343 }, - { 0x93AB, 124349 }, - { 0x27AD, 124355 }, - { 0x2799, 124363 }, - { 0x27B1, 124367 }, - { 0x2779, 124371 }, - { 0x8FDD, 124375 }, - { 0x2A04, 124377 }, - { 0x1D89, 124379 }, - { 0x1EB0, 124381 }, - { 0x8EE5, 124382 }, - { 0x7E43, 124384 }, - { 0x7E3E, 124387 }, - { 0x7E3F, 124389 }, - { 0x7E40, 124391 }, - { 0x935F, 124393 }, - { 0x9359, 124398 }, - { 0x934C, 124403 }, - { 0x932E, 124407 }, - { 0x9338, 124411 }, - { 0x9353, 124415 }, - { 0x1D96, 124418 }, - { 0x8F39, 124420 }, - { 0x95E4, 124421 }, - { 0x3F38, 124422 }, - { 0x3FCF, 124425 }, - { 0x3FD3, 124428 }, - { 0x3FD2, 124431 }, - { 0x3FCD, 124434 }, - { 0x3F07, 124437 }, - { 0x3F54, 124440 }, - { 0x3F58, 124444 }, - { 0x3F34, 124448 }, - { 0x3F01, 124452 }, - { 0x3F04, 124455 }, - { 0x3F13, 124458 }, - { 0x3F05, 124460 }, - { 0x3F0A, 124462 }, - { 0x3F0F, 124465 }, - { 0x3F0B, 124468 }, - { 0x3F0E, 124471 }, - { 0x3F0D, 124474 }, - { 0x3F12, 124477 }, - { 0x3F09, 124480 }, - { 0x3F11, 124483 }, - { 0x3F10, 124486 }, - { 0x3F0C, 124489 }, - { 0x3F39, 124492 }, - { 0x3F3A, 124495 }, - { 0x3F3B, 124500 }, - { 0x3F3C, 124505 }, - { 0x3F3D, 124510 }, - { 0x3F3E, 124515 }, - { 0x3F3F, 124520 }, - { 0x3F40, 124525 }, - { 0x3F41, 124530 }, - { 0x3F42, 124535 }, - { 0x3F43, 124540 }, - { 0x3F44, 124545 }, - { 0x3F45, 124550 }, - { 0x3F46, 124555 }, - { 0x3F47, 124560 }, - { 0x3F48, 124565 }, - { 0x3F49, 124570 }, - { 0x3F4A, 124575 }, - { 0x3F4B, 124580 }, - { 0x3F4C, 124585 }, - { 0x3F4D, 124590 }, - { 0x3F4E, 124595 }, - { 0x3F4F, 124600 }, - { 0x3F50, 124605 }, - { 0x3F51, 124610 }, - { 0x3F52, 124615 }, - { 0x3F53, 124620 }, - { 0x3F1A, 124625 }, - { 0x3F1B, 124630 }, - { 0x3F1C, 124635 }, - { 0x3F1D, 124640 }, - { 0x3F1E, 124645 }, - { 0x3F1F, 124650 }, - { 0x3F20, 124655 }, - { 0x3F21, 124660 }, - { 0x3F22, 124665 }, - { 0x3F23, 124670 }, - { 0x3F24, 124675 }, - { 0x3F25, 124680 }, - { 0x3F26, 124685 }, - { 0x3F27, 124690 }, - { 0x3F28, 124695 }, - { 0x3F29, 124700 }, - { 0x3F2A, 124705 }, - { 0x3F2B, 124710 }, - { 0x3F2C, 124715 }, - { 0x3F2D, 124720 }, - { 0x3F2E, 124725 }, - { 0x3F2F, 124730 }, - { 0x3F30, 124735 }, - { 0x3F31, 124740 }, - { 0x3F32, 124745 }, - { 0x3F33, 124750 }, - { 0x3FCE, 124755 }, - { 0x3F56, 124758 }, - { 0x3F59, 124762 }, - { 0x3F36, 124766 }, - { 0x3F02, 124770 }, - { 0x3F57, 124773 }, - { 0x3FD1, 124775 }, - { 0x3EFD, 124778 }, - { 0x3F16, 124781 }, - { 0x3FD0, 124784 }, - { 0x3EFC, 124786 }, - { 0x3EFE, 124789 }, - { 0x3F35, 124792 }, - { 0x3F08, 124795 }, - { 0x3F03, 124797 }, - { 0x3F18, 124799 }, - { 0x3F55, 124802 }, - { 0x3EFF, 124805 }, - { 0x3F15, 124807 }, - { 0x3EFB, 124810 }, - { 0x3F14, 124813 }, - { 0x3F00, 124815 }, - { 0x3F37, 124817 }, - { 0x3F19, 124820 }, - { 0x3EFA, 124823 }, - { 0x3F17, 124826 }, - { 0x3F06, 124829 }, - { 0x1E91, 124831 }, - { 0x91DF, 124833 }, - { 0x9035, 124835 }, - { 0x3F5B, 124836 }, - { 0x3FD9, 124840 }, - { 0x3FD4, 124843 }, - { 0x3F5C, 124847 }, - { 0x3FDA, 124851 }, - { 0x3F99, 124854 }, - { 0x3FB8, 124857 }, - { 0x3FBD, 124861 }, - { 0x3FCC, 124865 }, - { 0x3FC0, 124869 }, - { 0x3FC5, 124873 }, - { 0x3FB9, 124877 }, - { 0x3FBC, 124881 }, - { 0x3FCA, 124885 }, - { 0x3FC3, 124889 }, - { 0x3FC1, 124893 }, - { 0x3FC7, 124897 }, - { 0x3FC8, 124901 }, - { 0x3FBA, 124905 }, - { 0x3FBF, 124909 }, - { 0x3FCB, 124913 }, - { 0x3FC4, 124917 }, - { 0x3FC9, 124921 }, - { 0x3FC2, 124925 }, - { 0x3FC6, 124929 }, - { 0x3FBB, 124933 }, - { 0x3FBE, 124937 }, - { 0x3FAE, 124941 }, - { 0x3FB1, 124945 }, - { 0x3FB7, 124949 }, - { 0x3FB0, 124953 }, - { 0x3FAA, 124957 }, - { 0x3F9D, 124961 }, - { 0x3FAB, 124965 }, - { 0x3FA2, 124969 }, - { 0x3F9A, 124973 }, - { 0x3FA0, 124977 }, - { 0x3FB3, 124981 }, - { 0x3FB4, 124985 }, - { 0x3FB6, 124989 }, - { 0x3FB5, 124993 }, - { 0x3FAF, 124997 }, - { 0x3FAD, 125001 }, - { 0x3FA6, 125005 }, - { 0x3FB2, 125009 }, - { 0x3FAC, 125013 }, - { 0x3F9C, 125017 }, - { 0x3F9E, 125021 }, - { 0x3F9F, 125025 }, - { 0x3FA9, 125029 }, - { 0x3FA4, 125033 }, - { 0x3FA5, 125037 }, - { 0x3F9B, 125041 }, - { 0x3FA1, 125045 }, - { 0x3FA3, 125049 }, - { 0x3FA8, 125053 }, - { 0x3FA7, 125057 }, - { 0x3FD6, 125061 }, - { 0x3F6A, 125064 }, - { 0x3F6D, 125068 }, - { 0x3F6B, 125072 }, - { 0x3F96, 125076 }, - { 0x3F6E, 125080 }, - { 0x3F6C, 125084 }, - { 0x3F83, 125088 }, - { 0x3F86, 125092 }, - { 0x3F84, 125096 }, - { 0x3F87, 125100 }, - { 0x3F85, 125104 }, - { 0x3F6F, 125108 }, - { 0x3F72, 125112 }, - { 0x3F70, 125116 }, - { 0x3F73, 125120 }, - { 0x3F71, 125124 }, - { 0x3F88, 125128 }, - { 0x3F8B, 125132 }, - { 0x3F89, 125136 }, - { 0x3F8C, 125140 }, - { 0x3F8A, 125144 }, - { 0x3F7E, 125148 }, - { 0x3F81, 125152 }, - { 0x3F7F, 125156 }, - { 0x3F82, 125160 }, - { 0x3F80, 125164 }, - { 0x3F90, 125168 }, - { 0x3F93, 125172 }, - { 0x3F91, 125176 }, - { 0x3F94, 125180 }, - { 0x3F92, 125184 }, - { 0x3F74, 125188 }, - { 0x3F77, 125192 }, - { 0x3F75, 125196 }, - { 0x3F78, 125200 }, - { 0x3F76, 125204 }, - { 0x3F79, 125208 }, - { 0x3F7C, 125212 }, - { 0x3F7A, 125216 }, - { 0x3F7D, 125220 }, - { 0x3F7B, 125224 }, - { 0x3F95, 125228 }, - { 0x3F5F, 125232 }, - { 0x3F8D, 125236 }, - { 0x3F8F, 125240 }, - { 0x3F8E, 125244 }, - { 0x3F60, 125248 }, - { 0x3F63, 125253 }, - { 0x3F61, 125258 }, - { 0x3F64, 125263 }, - { 0x3F62, 125268 }, - { 0x3F68, 125273 }, - { 0x3F65, 125278 }, - { 0x3F67, 125283 }, - { 0x3F66, 125288 }, - { 0x3F5E, 125293 }, - { 0x3F97, 125297 }, - { 0x3F98, 125302 }, - { 0x3FD8, 125307 }, - { 0x3FD5, 125310 }, - { 0x3FD7, 125313 }, - { 0x3F5A, 125316 }, - { 0x3F5D, 125320 }, - { 0x3F69, 125323 }, - { 0x8F07, 125328 }, - { 0x944B, 125329 }, - { 0x8F5A, 125330 }, - { 0x95BE, 125331 }, - { 0x2328, 125332 }, - { 0x1F10, 125335 }, - { 0x1F72, 125338 }, - { 0x204A, 125339 }, - { 0x1EB8, 125343 }, - { 0x2611, 125345 }, - { 0x2693, 125350 }, - { 0x260D, 125354 }, - { 0x1E5D, 125356 }, - { 0x1FD7, 125357 }, - { 0x1CE4, 125359 }, - { 0x1CE2, 125361 }, - { 0x1CE3, 125363 }, - { 0x95D4, 125365 }, - { 0x4D24, 125366 }, - { 0x4D25, 125369 }, - { 0x4D1A, 125372 }, - { 0x4D27, 125375 }, - { 0x4D2C, 125378 }, - { 0x4D28, 125381 }, - { 0x4D2B, 125384 }, - { 0x4D2A, 125387 }, - { 0x4D2F, 125390 }, - { 0x4D26, 125393 }, - { 0x4D2E, 125396 }, - { 0x4D2D, 125399 }, - { 0x4D29, 125402 }, - { 0x4D20, 125405 }, - { 0x4D1C, 125409 }, - { 0x4D22, 125413 }, - { 0x4D1E, 125417 }, - { 0x4D1B, 125421 }, - { 0x4D21, 125425 }, - { 0x4D23, 125429 }, - { 0x4D1D, 125433 }, - { 0x4D1F, 125437 }, - { 0x4CEB, 125441 }, - { 0x4CF1, 125444 }, - { 0x4CED, 125447 }, - { 0x4CF3, 125450 }, - { 0x4CEF, 125453 }, - { 0x4CEC, 125456 }, - { 0x4CF2, 125459 }, - { 0x4CF4, 125462 }, - { 0x4D0F, 125465 }, - { 0x4CFB, 125468 }, - { 0x4D0A, 125471 }, - { 0x4CF7, 125474 }, - { 0x4D19, 125477 }, - { 0x4CEE, 125480 }, - { 0x4CFD, 125483 }, - { 0x4CF5, 125486 }, - { 0x4D15, 125489 }, - { 0x4D12, 125492 }, - { 0x4D0C, 125495 }, - { 0x4D0D, 125498 }, - { 0x4D14, 125501 }, - { 0x4D18, 125504 }, - { 0x4D08, 125507 }, - { 0x4CF0, 125510 }, - { 0x4D16, 125513 }, - { 0x4D13, 125516 }, - { 0x4D10, 125519 }, - { 0x4D11, 125522 }, - { 0x4CFC, 125525 }, - { 0x4D03, 125528 }, - { 0x4D0B, 125531 }, - { 0x4CF8, 125534 }, - { 0x4CF9, 125537 }, - { 0x4CFF, 125540 }, - { 0x4CFE, 125543 }, - { 0x4CF6, 125546 }, - { 0x4CFA, 125549 }, - { 0x4D07, 125552 }, - { 0x4D00, 125555 }, - { 0x4D0E, 125558 }, - { 0x4D05, 125561 }, - { 0x4D17, 125564 }, - { 0x4D09, 125567 }, - { 0x4D01, 125570 }, - { 0x4D04, 125573 }, - { 0x4D06, 125576 }, - { 0x4D02, 125579 }, - { 0x948B, 125582 }, - { 0x2565, 125583 }, - { 0x9414, 125587 }, - { 0x1DF5, 125592 }, - { 0x95FB, 125596 }, - { 0x1DF3, 125598 }, - { 0x1DE7, 125601 }, - { 0x1E3B, 125603 }, - { 0x1E10, 125607 }, - { 0x2549, 125616 }, - { 0x96B6, 125621 }, - { 0x1DFB, 125630 }, - { 0x254B, 125634 }, - { 0x942C, 125641 }, - { 0x1E1D, 125646 }, - { 0x273D, 125651 }, - { 0x273C, 125656 }, - { 0x1E00, 125661 }, - { 0x1E02, 125665 }, - { 0x2572, 125669 }, - { 0x1DF9, 125674 }, - { 0x2766, 125678 }, - { 0x2765, 125686 }, - { 0x9394, 125693 }, - { 0x938C, 125699 }, - { 0x9398, 125705 }, - { 0x2764, 125711 }, - { 0x1E51, 125716 }, - { 0x9390, 125722 }, - { 0x1DF1, 125728 }, - { 0x940A, 125732 }, - { 0x1E4E, 125737 }, - { 0x939C, 125742 }, - { 0x256F, 125747 }, - { 0x259F, 125753 }, - { 0x2776, 125758 }, - { 0x2777, 125764 }, - { 0x276E, 125770 }, - { 0x276A, 125777 }, - { 0x25A6, 125781 }, - { 0x25A3, 125785 }, - { 0x2731, 125789 }, - { 0x27B2, 125792 }, - { 0x93CC, 125797 }, - { 0x93C8, 125800 }, - { 0x1E3D, 125804 }, - { 0x9406, 125807 }, - { 0x1E37, 125813 }, - { 0x2538, 125816 }, - { 0x1E27, 125820 }, - { 0x2532, 125823 }, - { 0x1E24, 125828 }, - { 0x252E, 125833 }, - { 0x2547, 125839 }, - { 0x1E1E, 125842 }, - { 0x921F, 125845 }, - { 0x253A, 125847 }, - { 0x1E31, 125851 }, - { 0x1E22, 125854 }, - { 0x257E, 125859 }, - { 0x2586, 125866 }, - { 0x2596, 125873 }, - { 0x258E, 125881 }, - { 0x2592, 125892 }, - { 0x2582, 125903 }, - { 0x258A, 125910 }, - { 0x2593, 125917 }, - { 0x2597, 125928 }, - { 0x1E13, 125936 }, - { 0x1E14, 125941 }, - { 0x9600, 125946 }, - { 0x93C0, 125949 }, - { 0x1E33, 125952 }, - { 0x9402, 125955 }, - { 0x2771, 125958 }, - { 0x2545, 125961 }, - { 0x93C4, 125963 }, - { 0x93D0, 125966 }, - { 0x2762, 125969 }, - { 0x2767, 125974 }, - { 0x2769, 125979 }, - { 0x2768, 125988 }, - { 0x2761, 125996 }, - { 0x2815, 126003 }, - { 0x2760, 126009 }, - { 0x2763, 126015 }, - { 0x941A, 126020 }, - { 0x93BC, 126025 }, - { 0x9416, 126028 }, - { 0x1E54, 126032 }, - { 0x941C, 126035 }, - { 0x9418, 126040 }, - { 0x9412, 126044 }, - { 0x278C, 126048 }, - { 0x279C, 126051 }, - { 0x27AA, 126056 }, - { 0x93B0, 126063 }, - { 0x27CD, 126069 }, - { 0x27CF, 126076 }, - { 0x93B8, 126083 }, - { 0x93B4, 126090 }, - { 0x27A4, 126096 }, - { 0x27A4, 126103 }, - { 0x93AC, 126110 }, - { 0x93A8, 126116 }, - { 0x2796, 126122 }, - { 0x27AE, 126126 }, - { 0x1EBB, 126130 }, - { 0x26A9, 126134 }, - { 0x26AD, 126139 }, - { 0x26AF, 126147 }, - { 0x26AB, 126156 }, - { 0x1EC9, 126164 }, - { 0x26B1, 126168 }, - { 0x1ECD, 126171 }, - { 0x26B5, 126174 }, - { 0x26B3, 126178 }, - { 0x1EBF, 126184 }, - { 0x1F3D, 126189 }, - { 0x1EBD, 126194 }, - { 0x001C, 126198 }, - { 0x1F2D, 126200 }, - { 0x26A5, 126203 }, - { 0x26A7, 126207 }, - { 0x26B9, 126212 }, - { 0x26BB, 126217 }, - { 0x26BF, 126222 }, - { 0x25A2, 126231 }, - { 0x26B7, 126235 }, - { 0x26BD, 126241 }, - { 0x1F31, 126247 }, - { 0x26D2, 126252 }, - { 0x26D4, 126256 }, - { 0x2233, 126263 }, - { 0x91A5, 126264 }, - { 0x91A4, 126266 }, - { 0x0BB1, 126269 }, - { 0x0BD1, 126273 }, - { 0x0BAD, 126276 }, - { 0x0BAB, 126279 }, - { 0x0B65, 126282 }, - { 0x0B64, 126285 }, - { 0x0B9D, 126288 }, - { 0x0B9C, 126291 }, - { 0x0B9B, 126295 }, - { 0x0B62, 126300 }, - { 0x0B63, 126305 }, - { 0x0BBF, 126308 }, - { 0x0BC4, 126311 }, - { 0x0BC0, 126314 }, - { 0x0BC3, 126317 }, - { 0x0BC2, 126320 }, - { 0x0BC7, 126323 }, - { 0x0BBE, 126326 }, - { 0x0BC6, 126329 }, - { 0x0BC5, 126332 }, - { 0x0BC1, 126335 }, - { 0x0BA5, 126338 }, - { 0x0B9F, 126342 }, - { 0x0BA8, 126346 }, - { 0x0BA1, 126350 }, - { 0x0B9E, 126354 }, - { 0x0BA7, 126358 }, - { 0x0BAA, 126362 }, - { 0x0BA6, 126366 }, - { 0x0BA0, 126370 }, - { 0x0BA9, 126374 }, - { 0x0BA2, 126378 }, - { 0x0BBC, 126382 }, - { 0x0BA3, 126387 }, - { 0x0BBD, 126392 }, - { 0x0BA4, 126397 }, - { 0x0B67, 126402 }, - { 0x0B6F, 126405 }, - { 0x0B69, 126408 }, - { 0x0B72, 126411 }, - { 0x0B6B, 126414 }, - { 0x0B68, 126417 }, - { 0x0B71, 126420 }, - { 0x0B74, 126423 }, - { 0x0B8C, 126426 }, - { 0x0B7A, 126429 }, - { 0x0B86, 126432 }, - { 0x0B70, 126435 }, - { 0x0B77, 126438 }, - { 0x0B99, 126441 }, - { 0x0B6A, 126444 }, - { 0x0B7C, 126447 }, - { 0x0B75, 126450 }, - { 0x0B92, 126453 }, - { 0x0B8E, 126456 }, - { 0x0B88, 126459 }, - { 0x0B73, 126462 }, - { 0x0B8A, 126465 }, - { 0x0B90, 126468 }, - { 0x0B98, 126471 }, - { 0x0B84, 126474 }, - { 0x0B6C, 126477 }, - { 0x0B95, 126480 }, - { 0x0B8F, 126483 }, - { 0x0B8D, 126486 }, - { 0x0B7B, 126489 }, - { 0x0B81, 126492 }, - { 0x0B87, 126495 }, - { 0x0BAC, 126498 }, - { 0x0B78, 126502 }, - { 0x0B7D, 126505 }, - { 0x0B76, 126508 }, - { 0x0B93, 126511 }, - { 0x0B79, 126514 }, - { 0x0B83, 126517 }, - { 0x0B7E, 126520 }, - { 0x0B8B, 126523 }, - { 0x0B91, 126526 }, - { 0x0B96, 126529 }, - { 0x0B97, 126532 }, - { 0x0B85, 126535 }, - { 0x0B7F, 126538 }, - { 0x0B82, 126541 }, - { 0x0B94, 126544 }, - { 0x0B89, 126547 }, - { 0x0B80, 126550 }, - { 0x0B9A, 126553 }, - { 0x0B66, 126556 }, - { 0x0BD7, 126560 }, - { 0x0BD5, 126564 }, - { 0x0BAE, 126568 }, - { 0x0BD3, 126572 }, - { 0x0BAF, 126576 }, - { 0x0BD6, 126580 }, - { 0x0BD2, 126584 }, - { 0x0BD4, 126588 }, - { 0x0BB0, 126592 }, - { 0x0BB9, 126596 }, - { 0x0B6E, 126600 }, - { 0x0B6D, 126604 }, - { 0x0BBB, 126608 }, - { 0x0BBA, 126612 }, - { 0x0BC9, 126616 }, - { 0x0BCA, 126620 }, - { 0x0BC8, 126624 }, - { 0x0BCC, 126627 }, - { 0x0BB8, 126631 }, - { 0x0BB6, 126635 }, - { 0x0BCF, 126639 }, - { 0x0BCB, 126643 }, - { 0x0BB3, 126647 }, - { 0x0BCE, 126651 }, - { 0x0BB5, 126655 }, - { 0x0BB2, 126659 }, - { 0x0BCD, 126663 }, - { 0x0BB4, 126667 }, - { 0x0BD0, 126671 }, - { 0x0BB7, 126675 }, - { 0x0079, 126679 }, - { 0x950A, 126682 }, - { 0x1545, 126683 }, - { 0x154B, 126686 }, - { 0x154C, 126691 }, - { 0x154F, 126696 }, - { 0x154D, 126701 }, - { 0x1543, 126706 }, - { 0x1547, 126709 }, - { 0x1546, 126714 }, - { 0x1540, 126718 }, - { 0x4F38, 126720 }, - { 0x4F34, 126725 }, - { 0x1544, 126729 }, - { 0x1542, 126731 }, - { 0x1551, 126733 }, - { 0x1556, 126736 }, - { 0x1552, 126739 }, - { 0x1555, 126742 }, - { 0x1554, 126745 }, - { 0x1559, 126748 }, - { 0x1550, 126751 }, - { 0x1558, 126754 }, - { 0x1557, 126757 }, - { 0x1553, 126760 }, - { 0x4F3D, 126763 }, - { 0x4F3F, 126766 }, - { 0x4F3E, 126772 }, - { 0x154E, 126777 }, - { 0x4F36, 126780 }, - { 0x155A, 126785 }, - { 0x155B, 126788 }, - { 0x155C, 126791 }, - { 0x155D, 126794 }, - { 0x155E, 126797 }, - { 0x1564, 126800 }, - { 0x156D, 126803 }, - { 0x1561, 126806 }, - { 0x1573, 126809 }, - { 0x1567, 126812 }, - { 0x156F, 126815 }, - { 0x1574, 126818 }, - { 0x1569, 126821 }, - { 0x1568, 126824 }, - { 0x1562, 126827 }, - { 0x155F, 126830 }, - { 0x1565, 126833 }, - { 0x1566, 126836 }, - { 0x1571, 126839 }, - { 0x156A, 126842 }, - { 0x156C, 126845 }, - { 0x1560, 126848 }, - { 0x1572, 126851 }, - { 0x1570, 126854 }, - { 0x1577, 126857 }, - { 0x15BA, 126860 }, - { 0x15BB, 126865 }, - { 0x15CA, 126870 }, - { 0x15BE, 126875 }, - { 0x15C4, 126880 }, - { 0x15BC, 126885 }, - { 0x15C5, 126890 }, - { 0x15C3, 126895 }, - { 0x15C9, 126900 }, - { 0x15C1, 126905 }, - { 0x15BD, 126910 }, - { 0x15C2, 126915 }, - { 0x15C6, 126920 }, - { 0x15C7, 126925 }, - { 0x15BF, 126930 }, - { 0x15C8, 126935 }, - { 0x15D9, 126940 }, - { 0x15DA, 126946 }, - { 0x15C0, 126952 }, - { 0x15B9, 126957 }, - { 0x15B8, 126963 }, - { 0x15B5, 126968 }, - { 0x15DC, 126973 }, - { 0x15B6, 126978 }, - { 0x15B4, 126983 }, - { 0x15B3, 126989 }, - { 0x15B7, 126995 }, - { 0x1563, 127001 }, - { 0x156E, 127004 }, - { 0x15B2, 127007 }, - { 0x157C, 127013 }, - { 0x1578, 127016 }, - { 0x1575, 127019 }, - { 0x157A, 127022 }, - { 0x156B, 127025 }, - { 0x1576, 127028 }, - { 0x157B, 127031 }, - { 0x1579, 127034 }, - { 0x1597, 127037 }, - { 0x1598, 127041 }, - { 0x159B, 127045 }, - { 0x15A3, 127049 }, - { 0x15A5, 127053 }, - { 0x159E, 127057 }, - { 0x159F, 127061 }, - { 0x1599, 127065 }, - { 0x15A4, 127069 }, - { 0x159D, 127073 }, - { 0x15A0, 127077 }, - { 0x15A2, 127081 }, - { 0x159A, 127085 }, - { 0x15A9, 127089 }, - { 0x159C, 127093 }, - { 0x15AB, 127097 }, - { 0x15A6, 127101 }, - { 0x15A7, 127105 }, - { 0x15AA, 127109 }, - { 0x15A1, 127113 }, - { 0x15A8, 127117 }, - { 0x15AC, 127121 }, - { 0x157E, 127125 }, - { 0x157F, 127129 }, - { 0x1580, 127133 }, - { 0x1581, 127137 }, - { 0x1585, 127141 }, - { 0x158B, 127145 }, - { 0x1588, 127149 }, - { 0x158D, 127153 }, - { 0x1591, 127157 }, - { 0x1589, 127161 }, - { 0x1582, 127165 }, - { 0x1586, 127169 }, - { 0x1587, 127173 }, - { 0x158A, 127177 }, - { 0x1583, 127181 }, - { 0x1590, 127185 }, - { 0x158F, 127189 }, - { 0x15CB, 127193 }, - { 0x15CC, 127199 }, - { 0x1584, 127205 }, - { 0x158C, 127209 }, - { 0x1596, 127213 }, - { 0x1592, 127217 }, - { 0x1593, 127221 }, - { 0x1594, 127225 }, - { 0x1595, 127229 }, - { 0x158E, 127233 }, - { 0x157D, 127237 }, - { 0x15AD, 127243 }, - { 0x15B0, 127247 }, - { 0x15AE, 127251 }, - { 0x15AF, 127255 }, - { 0x15CF, 127259 }, - { 0x15D3, 127265 }, - { 0x15D8, 127271 }, - { 0x15DB, 127277 }, - { 0x15D6, 127283 }, - { 0x15D4, 127289 }, - { 0x15CD, 127295 }, - { 0x15D0, 127301 }, - { 0x15DD, 127307 }, - { 0x15CE, 127313 }, - { 0x15D5, 127319 }, - { 0x15D1, 127325 }, - { 0x15D7, 127331 }, - { 0x15D2, 127337 }, - { 0x15B1, 127343 }, - { 0x1549, 127347 }, - { 0x1548, 127351 }, - { 0x154A, 127354 }, - { 0x4F37, 127356 }, - { 0x4F40, 127361 }, - { 0x4F35, 127368 }, - { 0x4F3A, 127371 }, - { 0x4F39, 127377 }, - { 0x1541, 127382 }, - { 0x4F3B, 127384 }, - { 0x4F3C, 127387 }, - { 0x94EA, 127393 }, - { 0x4671, 127395 }, - { 0x4682, 127398 }, - { 0x467D, 127401 }, - { 0x467F, 127404 }, - { 0x4688, 127407 }, - { 0x4672, 127410 }, - { 0x4681, 127413 }, - { 0x466D, 127416 }, - { 0x4674, 127419 }, - { 0x4679, 127422 }, - { 0x4684, 127425 }, - { 0x4685, 127428 }, - { 0x4687, 127431 }, - { 0x4675, 127434 }, - { 0x4677, 127437 }, - { 0x466B, 127440 }, - { 0x4670, 127443 }, - { 0x467C, 127447 }, - { 0x467E, 127451 }, - { 0x466C, 127455 }, - { 0x4678, 127459 }, - { 0x4686, 127463 }, - { 0x4676, 127467 }, - { 0x466A, 127471 }, - { 0x467A, 127475 }, - { 0x466E, 127479 }, - { 0x4683, 127482 }, - { 0x4673, 127485 }, - { 0x466F, 127488 }, - { 0x467B, 127491 }, - { 0x4680, 127494 }, - { 0x4689, 127497 }, - { 0x4691, 127500 }, - { 0x468F, 127504 }, - { 0x468A, 127507 }, - { 0x468E, 127510 }, - { 0x468C, 127513 }, - { 0x468B, 127516 }, - { 0x4690, 127519 }, - { 0x468D, 127522 }, - { 0x9450, 127526 }, - { 0x90A3, 127528 }, - { 0x9284, 127529 }, - { 0x9591, 127531 }, - { 0x22FA, 127533 }, - { 0x94D5, 127534 }, - { 0x464E, 127535 }, - { 0x465B, 127538 }, - { 0x4656, 127541 }, - { 0x4658, 127544 }, - { 0x4660, 127547 }, - { 0x464F, 127550 }, - { 0x465A, 127553 }, - { 0x464B, 127556 }, - { 0x4651, 127559 }, - { 0x4654, 127562 }, - { 0x465D, 127565 }, - { 0x465E, 127568 }, - { 0x465F, 127571 }, - { 0x4652, 127574 }, - { 0x4653, 127577 }, - { 0x464A, 127580 }, - { 0x4657, 127583 }, - { 0x464C, 127587 }, - { 0x465C, 127590 }, - { 0x4650, 127593 }, - { 0x464D, 127596 }, - { 0x4655, 127599 }, - { 0x4659, 127602 }, - { 0x4663, 127605 }, - { 0x4668, 127608 }, - { 0x4664, 127611 }, - { 0x4667, 127614 }, - { 0x4666, 127617 }, - { 0x4665, 127620 }, - { 0x4669, 127623 }, - { 0x4661, 127626 }, - { 0x4662, 127629 }, - { 0x9081, 127632 }, - { 0x959F, 127633 }, - { 0x1CA9, 127634 }, - { 0x929F, 127636 }, - { 0x2310, 127638 }, - { 0x22AA, 127639 }, - { 0x8F00, 127642 }, - { 0x1F2B, 127643 }, - { 0x2706, 127644 }, - { 0x1CD7, 127648 }, - { 0x2638, 127650 }, - { 0x0002, 127653 }, - { 0x229F, 127655 }, - { 0x22A0, 127660 }, - { 0x22A1, 127665 }, - { 0x22A2, 127670 }, - { 0x22A3, 127675 }, - { 0x22A4, 127680 }, - { 0x22A5, 127685 }, - { 0x22A6, 127690 }, - { 0x1CBB, 127695 }, - { 0x9051, 127697 }, - { 0x2669, 127699 }, - { 0x9191, 127702 }, - { 0x079C, 127704 }, - { 0x079F, 127707 }, - { 0x079D, 127710 }, - { 0x07B3, 127713 }, - { 0x079E, 127716 }, - { 0x07A1, 127719 }, - { 0x07A9, 127723 }, - { 0x07A3, 127727 }, - { 0x07B0, 127731 }, - { 0x07B1, 127735 }, - { 0x07AD, 127739 }, - { 0x07A6, 127743 }, - { 0x07A8, 127747 }, - { 0x07A2, 127752 }, - { 0x07AF, 127757 }, - { 0x07AC, 127762 }, - { 0x07A5, 127767 }, - { 0x07AB, 127772 }, - { 0x07B2, 127777 }, - { 0x07A7, 127781 }, - { 0x07A4, 127786 }, - { 0x0796, 127791 }, - { 0x0795, 127794 }, - { 0x078D, 127797 }, - { 0x078A, 127800 }, - { 0x078B, 127803 }, - { 0x0787, 127806 }, - { 0x0792, 127809 }, - { 0x0793, 127812 }, - { 0x0798, 127815 }, - { 0x078E, 127818 }, - { 0x078F, 127821 }, - { 0x078C, 127824 }, - { 0x0786, 127827 }, - { 0x0790, 127830 }, - { 0x0799, 127833 }, - { 0x079A, 127836 }, - { 0x079B, 127839 }, - { 0x0789, 127842 }, - { 0x0788, 127845 }, - { 0x0791, 127848 }, - { 0x0794, 127851 }, - { 0x0797, 127854 }, - { 0x07AE, 127857 }, - { 0x07AA, 127861 }, - { 0x07A0, 127866 }, - { 0x07B7, 127871 }, - { 0x07C1, 127874 }, - { 0x07BF, 127878 }, - { 0x07BE, 127881 }, - { 0x07B6, 127884 }, - { 0x07BD, 127887 }, - { 0x07BC, 127890 }, - { 0x07B5, 127893 }, - { 0x07C2, 127896 }, - { 0x07B8, 127899 }, - { 0x07C0, 127902 }, - { 0x07BB, 127905 }, - { 0x07B4, 127909 }, - { 0x07B9, 127912 }, - { 0x07BA, 127915 }, - { 0x929C, 127918 }, - { 0x9094, 127919 }, - { 0x8F6A, 127921 }, - { 0x96F2, 127922 }, - { 0x96F7, 127925 }, - { 0x96F3, 127928 }, - { 0x96F6, 127931 }, - { 0x96F5, 127934 }, - { 0x96FA, 127937 }, - { 0x96F1, 127940 }, - { 0x96F9, 127943 }, - { 0x96F8, 127946 }, - { 0x96F4, 127949 }, - { 0x001B, 127952 }, - { 0x7E92, 127953 }, - { 0x7E93, 127956 }, - { 0x7E95, 127959 }, - { 0x7E99, 127962 }, - { 0x7EA1, 127965 }, - { 0x7EB1, 127968 }, - { 0x7C68, 127971 }, - { 0x7C69, 127974 }, - { 0x7C6B, 127977 }, - { 0x7C6F, 127980 }, - { 0x7E94, 127983 }, - { 0x7E96, 127986 }, - { 0x7E9A, 127989 }, - { 0x7EA2, 127992 }, - { 0x7EB2, 127995 }, - { 0x7E97, 127998 }, - { 0x7E9B, 128001 }, - { 0x7EA3, 128004 }, - { 0x7EB3, 128007 }, - { 0x7E9D, 128010 }, - { 0x7EA5, 128013 }, - { 0x7EB5, 128016 }, - { 0x7EA9, 128019 }, - { 0x7EB9, 128022 }, - { 0x7EC1, 128025 }, - { 0x7C6A, 128028 }, - { 0x7C6C, 128031 }, - { 0x7C70, 128034 }, - { 0x7C6D, 128037 }, - { 0x7C71, 128040 }, - { 0x7C73, 128043 }, - { 0x7E98, 128046 }, - { 0x7E9C, 128049 }, - { 0x7EA4, 128052 }, - { 0x7EB4, 128055 }, - { 0x7E9E, 128058 }, - { 0x7EA6, 128061 }, - { 0x7EB6, 128064 }, - { 0x7EAA, 128067 }, - { 0x7EBA, 128070 }, - { 0x7EC2, 128073 }, - { 0x7E9F, 128076 }, - { 0x7EA7, 128079 }, - { 0x7EB7, 128082 }, - { 0x7EAB, 128085 }, - { 0x7EBB, 128088 }, - { 0x7EC3, 128091 }, - { 0x7EAD, 128094 }, - { 0x7EBD, 128097 }, - { 0x7EC5, 128100 }, - { 0x7EC9, 128103 }, - { 0x7C6E, 128106 }, - { 0x7C72, 128109 }, - { 0x7C74, 128112 }, - { 0x7C75, 128115 }, - { 0x7EA0, 128118 }, - { 0x7EA8, 128121 }, - { 0x7EB8, 128124 }, - { 0x7EAC, 128127 }, - { 0x7EBC, 128130 }, - { 0x7EC4, 128133 }, - { 0x7EAE, 128136 }, - { 0x7EBE, 128139 }, - { 0x7EC6, 128142 }, - { 0x7ECA, 128145 }, - { 0x7EAF, 128148 }, - { 0x7EBF, 128151 }, - { 0x7EC7, 128154 }, - { 0x7ECB, 128157 }, - { 0x7ECD, 128160 }, - { 0x7C76, 128163 }, - { 0x7EB0, 128166 }, - { 0x7EC0, 128169 }, - { 0x7EC8, 128172 }, - { 0x7ECC, 128175 }, - { 0x7ECE, 128178 }, - { 0x7ECF, 128181 }, - { 0x7ED0, 128184 }, - { 0x2824, 128187 }, - { 0x8F23, 128189 }, - { 0x7C46, 128190 }, - { 0x7C45, 128194 }, - { 0x7C43, 128198 }, - { 0x7C44, 128202 }, - { 0x2370, 128206 }, - { 0x8F10, 128207 }, - { 0x9049, 128208 }, - { 0x9257, 128210 }, - { 0x1E79, 128211 }, - { 0x25CD, 128213 }, - { 0x25CC, 128217 }, - { 0x9059, 128221 }, - { 0x2048, 128224 }, - { 0x1CFE, 128225 }, - { 0x1D03, 128227 }, - { 0x1CFF, 128229 }, - { 0x1D02, 128231 }, - { 0x1D01, 128233 }, - { 0x1D0A, 128235 }, - { 0x1D06, 128238 }, - { 0x1D07, 128240 }, - { 0x1CFD, 128243 }, - { 0x1D05, 128245 }, - { 0x1D08, 128247 }, - { 0x1D0B, 128249 }, - { 0x1D04, 128252 }, - { 0x1D00, 128254 }, - { 0x1D09, 128256 }, - { 0x2009, 128259 }, - { 0x2637, 128261 }, - { 0x200A, 128264 }, - { 0x1864, 128266 }, - { 0x1863, 128269 }, - { 0x1839, 128272 }, - { 0x183A, 128275 }, - { 0x183B, 128278 }, - { 0x186A, 128281 }, - { 0x186F, 128284 }, - { 0x186B, 128287 }, - { 0x186E, 128290 }, - { 0x186D, 128293 }, - { 0x1872, 128296 }, - { 0x1869, 128299 }, - { 0x1871, 128302 }, - { 0x1870, 128305 }, - { 0x186C, 128308 }, - { 0x1861, 128311 }, - { 0x185E, 128315 }, - { 0x185D, 128319 }, - { 0x1860, 128323 }, - { 0x185F, 128327 }, - { 0x1862, 128331 }, - { 0x183C, 128335 }, - { 0x1841, 128338 }, - { 0x183D, 128341 }, - { 0x1840, 128344 }, - { 0x183E, 128347 }, - { 0x183F, 128350 }, - { 0x1851, 128353 }, - { 0x1847, 128356 }, - { 0x184C, 128359 }, - { 0x1842, 128362 }, - { 0x184F, 128365 }, - { 0x1845, 128368 }, - { 0x1859, 128371 }, - { 0x1848, 128374 }, - { 0x1843, 128377 }, - { 0x1855, 128380 }, - { 0x1852, 128383 }, - { 0x184D, 128386 }, - { 0x184E, 128389 }, - { 0x1844, 128392 }, - { 0x1854, 128395 }, - { 0x1857, 128398 }, - { 0x184B, 128401 }, - { 0x1850, 128404 }, - { 0x1856, 128407 }, - { 0x1858, 128410 }, - { 0x1853, 128413 }, - { 0x1849, 128416 }, - { 0x1876, 128419 }, - { 0x1867, 128422 }, - { 0x1875, 128425 }, - { 0x1846, 128428 }, - { 0x184A, 128431 }, - { 0x1874, 128434 }, - { 0x1868, 128437 }, - { 0x1877, 128440 }, - { 0x1878, 128444 }, - { 0x1876, 128448 }, - { 0x1873, 128452 }, - { 0x185C, 128454 }, - { 0x185B, 128458 }, - { 0x1865, 128462 }, - { 0x1866, 128467 }, - { 0x185A, 128472 }, - { 0x196B, 128476 }, - { 0x196A, 128481 }, - { 0x1969, 128486 }, - { 0x1968, 128491 }, - { 0x1967, 128496 }, - { 0x1964, 128500 }, - { 0x1966, 128504 }, - { 0x1965, 128508 }, - { 0x8EEE, 128512 }, - { 0x94E6, 128513 }, - { 0x9100, 128514 }, - { 0x8EFD, 128515 }, - { 0x9133, 128516 }, - { 0x1D7C, 128521 }, - { 0x2332, 128523 }, - { 0x9091, 128526 }, - { 0x912F, 128528 }, - { 0x1F6C, 128532 }, - { 0x90E0, 128534 }, - { 0x824E, 128535 }, - { 0x8218, 128540 }, - { 0x8228, 128543 }, - { 0x821E, 128548 }, - { 0x8217, 128552 }, - { 0x8202, 128555 }, - { 0x823E, 128559 }, - { 0x822A, 128562 }, - { 0x8241, 128567 }, - { 0x8203, 128570 }, - { 0x820F, 128573 }, - { 0x822C, 128576 }, - { 0x8236, 128579 }, - { 0x823F, 128582 }, - { 0x8207, 128585 }, - { 0x8201, 128588 }, - { 0x821C, 128591 }, - { 0x8238, 128594 }, - { 0x821B, 128598 }, - { 0x8231, 128601 }, - { 0x8220, 128604 }, - { 0x8225, 128607 }, - { 0x8230, 128610 }, - { 0x8214, 128613 }, - { 0x8204, 128616 }, - { 0x824A, 128619 }, - { 0x8210, 128622 }, - { 0x8244, 128625 }, - { 0x824B, 128628 }, - { 0x8211, 128631 }, - { 0x8205, 128635 }, - { 0x8222, 128639 }, - { 0x823B, 128642 }, - { 0x8234, 128645 }, - { 0x821F, 128648 }, - { 0x822F, 128651 }, - { 0x8215, 128654 }, - { 0x8240, 128657 }, - { 0x8212, 128660 }, - { 0x8235, 128663 }, - { 0x8226, 128666 }, - { 0x8248, 128669 }, - { 0x820D, 128672 }, - { 0x8229, 128675 }, - { 0x8247, 128678 }, - { 0x8224, 128681 }, - { 0x8232, 128684 }, - { 0x8209, 128689 }, - { 0x8221, 128693 }, - { 0x8233, 128696 }, - { 0x8243, 128699 }, - { 0x8242, 128702 }, - { 0x821A, 128705 }, - { 0x8213, 128708 }, - { 0x8251, 128711 }, - { 0x8223, 128714 }, - { 0x823A, 128717 }, - { 0x822D, 128721 }, - { 0x8250, 128724 }, - { 0x8227, 128727 }, - { 0x8246, 128730 }, - { 0x8249, 128733 }, - { 0x824D, 128736 }, - { 0x8219, 128739 }, - { 0x820B, 128742 }, - { 0x822B, 128745 }, - { 0x8245, 128748 }, - { 0x8208, 128751 }, - { 0x8216, 128754 }, - { 0x824C, 128757 }, - { 0x8206, 128760 }, - { 0x822E, 128763 }, - { 0x8239, 128766 }, - { 0x820E, 128769 }, - { 0x823C, 128772 }, - { 0x821D, 128775 }, - { 0x824F, 128778 }, - { 0x8237, 128781 }, - { 0x820C, 128784 }, - { 0x820A, 128787 }, - { 0x823D, 128792 }, - { 0x1E8B, 128795 }, - { 0x9165, 128796 }, - { 0x229E, 128797 }, - { 0x22DB, 128800 }, - { 0x7CB8, 128803 }, - { 0x7CBC, 128809 }, - { 0x90A6, 128815 }, - { 0x946A, 128817 }, - { 0x5137, 128818 }, - { 0x5135, 128823 }, - { 0x5134, 128827 }, - { 0x5136, 128831 }, - { 0x512A, 128836 }, - { 0x5127, 128842 }, - { 0x512C, 128846 }, - { 0x512B, 128850 }, - { 0x5128, 128854 }, - { 0x5129, 128858 }, - { 0x5126, 128864 }, - { 0x50F7, 128869 }, - { 0x50F4, 128874 }, - { 0x50F9, 128879 }, - { 0x50F6, 128884 }, - { 0x50FA, 128889 }, - { 0x50FB, 128894 }, - { 0x50F8, 128899 }, - { 0x50F5, 128904 }, - { 0x50FC, 128909 }, - { 0x50FD, 128915 }, - { 0x50F3, 128920 }, - { 0x511C, 128924 }, - { 0x5113, 128928 }, - { 0x5103, 128932 }, - { 0x510E, 128936 }, - { 0x5100, 128940 }, - { 0x5124, 128944 }, - { 0x5105, 128948 }, - { 0x50FE, 128952 }, - { 0x511F, 128956 }, - { 0x5115, 128960 }, - { 0x5110, 128964 }, - { 0x5111, 128968 }, - { 0x511E, 128972 }, - { 0x5123, 128976 }, - { 0x510C, 128980 }, - { 0x5120, 128984 }, - { 0x511D, 128988 }, - { 0x511B, 128992 }, - { 0x5114, 128996 }, - { 0x5104, 129000 }, - { 0x5109, 129004 }, - { 0x510F, 129008 }, - { 0x5118, 129012 }, - { 0x5101, 129016 }, - { 0x50FF, 129020 }, - { 0x5102, 129024 }, - { 0x510B, 129028 }, - { 0x5106, 129032 }, - { 0x5112, 129036 }, - { 0x5121, 129040 }, - { 0x5122, 129044 }, - { 0x510D, 129048 }, - { 0x5116, 129052 }, - { 0x5107, 129056 }, - { 0x511A, 129060 }, - { 0x510A, 129064 }, - { 0x5119, 129068 }, - { 0x5125, 129072 }, - { 0x5117, 129076 }, - { 0x5108, 129080 }, - { 0x5133, 129084 }, - { 0x5139, 129089 }, - { 0x5132, 129095 }, - { 0x5138, 129100 }, - { 0x513A, 129106 }, - { 0x5130, 129109 }, - { 0x512F, 129114 }, - { 0x5131, 129119 }, - { 0x512E, 129124 }, - { 0x512D, 129129 }, - { 0x92AA, 129134 }, - { 0x92F2, 129138 }, - { 0x92EF, 129142 }, - { 0x9301, 129146 }, - { 0x92D2, 129151 }, - { 0x92F3, 129156 }, - { 0x92EE, 129160 }, - { 0x92AF, 129164 }, - { 0x92B1, 129169 }, - { 0x92B0, 129174 }, - { 0x92B2, 129179 }, - { 0x9314, 129184 }, - { 0x9315, 129190 }, - { 0x92F5, 129196 }, - { 0x92AB, 129200 }, - { 0x92C3, 129204 }, - { 0x931B, 129208 }, - { 0x931C, 129213 }, - { 0x9317, 129218 }, - { 0x92C5, 129222 }, - { 0x92C6, 129227 }, - { 0x92D3, 129232 }, - { 0x92C1, 129237 }, - { 0x92C2, 129242 }, - { 0x92BD, 129247 }, - { 0x92CF, 129251 }, - { 0x92D6, 129258 }, - { 0x92FD, 129264 }, - { 0x9300, 129268 }, - { 0x92B8, 129272 }, - { 0x92EB, 129277 }, - { 0x9302, 129281 }, - { 0x92F7, 129285 }, - { 0x92AC, 129290 }, - { 0x92FF, 129294 }, - { 0x931A, 129299 }, - { 0x9318, 129303 }, - { 0x92BE, 129307 }, - { 0x92EA, 129311 }, - { 0x92F6, 129316 }, - { 0x92FE, 129320 }, - { 0x92AD, 129324 }, - { 0x92DF, 129328 }, - { 0x92C9, 129332 }, - { 0x92CE, 129337 }, - { 0x92C7, 129342 }, - { 0x92CC, 129348 }, - { 0x92CD, 129354 }, - { 0x92F4, 129360 }, - { 0x930C, 129364 }, - { 0x9316, 129368 }, - { 0x92C4, 129372 }, - { 0x92F0, 129376 }, - { 0x92B6, 129380 }, - { 0x92E8, 129384 }, - { 0x9313, 129388 }, - { 0x9304, 129392 }, - { 0x92E3, 129396 }, - { 0x92E7, 129400 }, - { 0x92EC, 129405 }, - { 0x92ED, 129409 }, - { 0x9309, 129413 }, - { 0x92B9, 129417 }, - { 0x92BA, 129422 }, - { 0x92BB, 129427 }, - { 0x92E4, 129432 }, - { 0x92DB, 129436 }, - { 0x92C8, 129440 }, - { 0x92D9, 129446 }, - { 0x92DA, 129452 }, - { 0x92F8, 129458 }, - { 0x92FB, 129464 }, - { 0x9305, 129469 }, - { 0x9306, 129475 }, - { 0x92FA, 129481 }, - { 0x92B3, 129485 }, - { 0x92D8, 129489 }, - { 0x92BF, 129495 }, - { 0x92E0, 129499 }, - { 0x92D4, 129503 }, - { 0x92F9, 129508 }, - { 0x92BC, 129512 }, - { 0x930E, 129516 }, - { 0x930A, 129520 }, - { 0x9303, 129524 }, - { 0x92E9, 129529 }, - { 0x92F1, 129533 }, - { 0x9319, 129537 }, - { 0x92FC, 129541 }, - { 0x92E1, 129545 }, - { 0x92E5, 129549 }, - { 0x92DC, 129553 }, - { 0x92DD, 129557 }, - { 0x92DE, 129561 }, - { 0x92D0, 129565 }, - { 0x92D7, 129573 }, - { 0x92CB, 129581 }, - { 0x92D5, 129587 }, - { 0x92D1, 129593 }, - { 0x92B4, 129597 }, - { 0x92B5, 129601 }, - { 0x92C0, 129605 }, - { 0x92AE, 129609 }, - { 0x930F, 129613 }, - { 0x9310, 129617 }, - { 0x9311, 129621 }, - { 0x9312, 129625 }, - { 0x930B, 129629 }, - { 0x92E6, 129633 }, - { 0x92CA, 129637 }, - { 0x9308, 129642 }, - { 0x9307, 129646 }, - { 0x92B7, 129650 }, - { 0x930D, 129655 }, - { 0x92A9, 129659 }, - { 0x92E2, 129663 }, - { 0x95D8, 129667 }, - { 0x0007, 129669 }, - { 0x1EA7, 129670 }, - { 0x91E5, 129673 }, - { 0x924A, 129675 }, - { 0x8F73, 129676 }, - { 0x3E51, 129679 }, - { 0x3E4D, 129682 }, - { 0x9490, 129684 }, - { 0x4A9A, 129685 }, - { 0x4AA6, 129688 }, - { 0x4AA2, 129691 }, - { 0x4AA3, 129694 }, - { 0x4AA9, 129697 }, - { 0x4A9B, 129700 }, - { 0x4AA5, 129703 }, - { 0x4A97, 129706 }, - { 0x4A9E, 129709 }, - { 0x4AA0, 129712 }, - { 0x4AA7, 129715 }, - { 0x4AA8, 129718 }, - { 0x4A9F, 129721 }, - { 0x4A95, 129724 }, - { 0x4A98, 129727 }, - { 0x4A96, 129730 }, - { 0x4A9D, 129734 }, - { 0x4A9C, 129737 }, - { 0x4A99, 129741 }, - { 0x4AA1, 129744 }, - { 0x4AA4, 129747 }, - { 0x4AAA, 129750 }, - { 0x4AB0, 129753 }, - { 0x4AAE, 129757 }, - { 0x4AAB, 129760 }, - { 0x4AAD, 129763 }, - { 0x4AAC, 129766 }, - { 0x4AAF, 129769 }, - { 0x003E, 129772 }, - { 0x0020, 129774 }, - { 0x1CD2, 129776 }, - { 0x1E58, 129779 }, - { 0x91C9, 129780 }, - { 0x1FD8, 129782 }, - { 0x8F9F, 129785 }, - { 0x2237, 129787 }, - { 0x08C5, 129789 }, - { 0x3872, 129791 }, - { 0x51D7, 129794 }, - { 0x51D8, 129797 }, - { 0x3876, 129802 }, - { 0x08E6, 129805 }, - { 0x51D9, 129810 }, - { 0x51DA, 129813 }, - { 0x51E0, 129818 }, - { 0x08B1, 129821 }, - { 0x386D, 129824 }, - { 0x08C2, 129829 }, - { 0x3875, 129832 }, - { 0x386B, 129835 }, - { 0x0878, 129839 }, - { 0x51DD, 129842 }, - { 0x51DE, 129847 }, - { 0x0877, 129852 }, - { 0x08B2, 129855 }, - { 0x51DB, 129858 }, - { 0x51DC, 129862 }, - { 0x0875, 129868 }, - { 0x3871, 129872 }, - { 0x51DF, 129875 }, - { 0x0876, 129880 }, - { 0x386E, 129883 }, - { 0x386F, 129887 }, - { 0x386C, 129891 }, - { 0x3870, 129895 }, - { 0x08C9, 129899 }, - { 0x3873, 129902 }, - { 0x08D9, 129904 }, - { 0x08DC, 129906 }, - { 0x08E1, 129909 }, - { 0x08DD, 129912 }, - { 0x08E0, 129915 }, - { 0x08DF, 129918 }, - { 0x08E4, 129921 }, - { 0x08DB, 129924 }, - { 0x08E3, 129927 }, - { 0x08E2, 129930 }, - { 0x08DE, 129933 }, - { 0x08C8, 129936 }, - { 0x08BC, 129939 }, - { 0x08B4, 129943 }, - { 0x08C0, 129947 }, - { 0x08B6, 129951 }, - { 0x08B3, 129955 }, - { 0x08BD, 129959 }, - { 0x08C1, 129963 }, - { 0x08C4, 129967 }, - { 0x3878, 129971 }, - { 0x08B5, 129975 }, - { 0x08AF, 129979 }, - { 0x08CB, 129983 }, - { 0x08B7, 129987 }, - { 0x08B0, 129991 }, - { 0x08CC, 129995 }, - { 0x08BB, 129999 }, - { 0x08BF, 130004 }, - { 0x08BA, 130009 }, - { 0x08BE, 130014 }, - { 0x08CA, 130019 }, - { 0x08D7, 130025 }, - { 0x08B8, 130030 }, - { 0x08D8, 130035 }, - { 0x08B9, 130040 }, - { 0x08C3, 130045 }, - { 0x08DA, 130050 }, - { 0x087A, 130053 }, - { 0x0884, 130056 }, - { 0x087C, 130059 }, - { 0x0888, 130062 }, - { 0x087E, 130065 }, - { 0x087B, 130068 }, - { 0x0885, 130071 }, - { 0x0889, 130074 }, - { 0x08EA, 130077 }, - { 0x3877, 130080 }, - { 0x08A1, 130083 }, - { 0x088F, 130086 }, - { 0x089B, 130089 }, - { 0x08D3, 130092 }, - { 0x088C, 130095 }, - { 0x08AE, 130098 }, - { 0x087D, 130101 }, - { 0x0891, 130104 }, - { 0x088A, 130107 }, - { 0x08A7, 130110 }, - { 0x08A3, 130113 }, - { 0x089D, 130116 }, - { 0x08E8, 130119 }, - { 0x089F, 130122 }, - { 0x08CD, 130125 }, - { 0x08A5, 130128 }, - { 0x08AD, 130131 }, - { 0x0899, 130134 }, - { 0x08EB, 130137 }, - { 0x087F, 130140 }, - { 0x08AA, 130143 }, - { 0x08A4, 130146 }, - { 0x08D0, 130149 }, - { 0x08F4, 130152 }, - { 0x08A2, 130155 }, - { 0x0890, 130158 }, - { 0x0896, 130161 }, - { 0x089C, 130164 }, - { 0x08F0, 130167 }, - { 0x088D, 130170 }, - { 0x0892, 130173 }, - { 0x08F1, 130176 }, - { 0x088B, 130179 }, - { 0x08A8, 130182 }, - { 0x088E, 130185 }, - { 0x0898, 130188 }, - { 0x0893, 130191 }, - { 0x08E9, 130194 }, - { 0x08A0, 130197 }, - { 0x08D2, 130200 }, - { 0x08A6, 130203 }, - { 0x08AB, 130206 }, - { 0x08AC, 130209 }, - { 0x089A, 130212 }, - { 0x0894, 130215 }, - { 0x08EC, 130218 }, - { 0x08D4, 130221 }, - { 0x08EE, 130224 }, - { 0x08F3, 130227 }, - { 0x0897, 130230 }, - { 0x08CF, 130233 }, - { 0x08CE, 130236 }, - { 0x08A9, 130239 }, - { 0x089E, 130242 }, - { 0x0895, 130245 }, - { 0x08D1, 130248 }, - { 0x08EF, 130251 }, - { 0x0879, 130255 }, - { 0x0883, 130259 }, - { 0x0887, 130263 }, - { 0x08E7, 130267 }, - { 0x0882, 130271 }, - { 0x0886, 130275 }, - { 0x08F2, 130279 }, - { 0x08ED, 130283 }, - { 0x0881, 130287 }, - { 0x0880, 130291 }, - { 0x08D6, 130295 }, - { 0x08D5, 130299 }, - { 0x08C6, 130303 }, - { 0x08C7, 130307 }, - { 0x3874, 130311 }, - { 0x08E5, 130313 }, - { 0x1EA6, 130316 }, - { 0x203E, 130318 }, - { 0x1EA4, 130320 }, - { 0x26A4, 130322 }, - { 0x9006, 130327 }, - { 0x9016, 130328 }, - { 0x2864, 130329 }, - { 0x2873, 130333 }, - { 0x287F, 130337 }, - { 0x287C, 130341 }, - { 0x2859, 130345 }, - { 0x2881, 130349 }, - { 0x286A, 130354 }, - { 0x2872, 130358 }, - { 0x2877, 130362 }, - { 0x2875, 130366 }, - { 0x286F, 130370 }, - { 0x285A, 130374 }, - { 0x2883, 130378 }, - { 0x2871, 130382 }, - { 0x2862, 130386 }, - { 0x2866, 130390 }, - { 0x2874, 130394 }, - { 0x285B, 130398 }, - { 0x287A, 130402 }, - { 0x2879, 130406 }, - { 0x2878, 130410 }, - { 0x285D, 130414 }, - { 0x2860, 130418 }, - { 0x2870, 130422 }, - { 0x2869, 130426 }, - { 0x286C, 130430 }, - { 0x286D, 130434 }, - { 0x287D, 130438 }, - { 0x287E, 130443 }, - { 0x285E, 130450 }, - { 0x2876, 130454 }, - { 0x2865, 130458 }, - { 0x286B, 130462 }, - { 0x286E, 130466 }, - { 0x2861, 130470 }, - { 0x2888, 130474 }, - { 0x285C, 130479 }, - { 0x2863, 130483 }, - { 0x2882, 130488 }, - { 0x2880, 130494 }, - { 0x2884, 130500 }, - { 0x2867, 130504 }, - { 0x2868, 130508 }, - { 0x2885, 130512 }, - { 0x287B, 130516 }, - { 0x285F, 130521 }, - { 0x2887, 130525 }, - { 0x2886, 130530 }, - { 0x2834, 130535 }, - { 0x2843, 130539 }, - { 0x284F, 130543 }, - { 0x284C, 130547 }, - { 0x2829, 130551 }, - { 0x2851, 130555 }, - { 0x283A, 130560 }, - { 0x2842, 130564 }, - { 0x2847, 130568 }, - { 0x2845, 130572 }, - { 0x283F, 130576 }, - { 0x282A, 130580 }, - { 0x2853, 130584 }, - { 0x2841, 130588 }, - { 0x2832, 130592 }, - { 0x2836, 130596 }, - { 0x2844, 130600 }, - { 0x282B, 130604 }, - { 0x284A, 130608 }, - { 0x2849, 130612 }, - { 0x2848, 130616 }, - { 0x282D, 130620 }, - { 0x2830, 130624 }, - { 0x2840, 130628 }, - { 0x2839, 130632 }, - { 0x283C, 130636 }, - { 0x283D, 130640 }, - { 0x284D, 130644 }, - { 0x284E, 130649 }, - { 0x282E, 130656 }, - { 0x2846, 130660 }, - { 0x2835, 130664 }, - { 0x283B, 130668 }, - { 0x283E, 130672 }, - { 0x2831, 130676 }, - { 0x2858, 130680 }, - { 0x282C, 130685 }, - { 0x2833, 130689 }, - { 0x2852, 130694 }, - { 0x2850, 130700 }, - { 0x2854, 130706 }, - { 0x2837, 130710 }, - { 0x2838, 130714 }, - { 0x2855, 130718 }, - { 0x284B, 130722 }, - { 0x282F, 130727 }, - { 0x2857, 130731 }, - { 0x2856, 130736 }, - { 0x8F46, 130741 }, - { 0x9234, 130743 }, - { 0x78FE, 130744 }, - { 0x78FF, 130747 }, - { 0x7900, 130750 }, - { 0x78FD, 130753 }, - { 0x790B, 130756 }, - { 0x790C, 130759 }, - { 0x790D, 130762 }, - { 0x790E, 130765 }, - { 0x790F, 130768 }, - { 0x7902, 130771 }, - { 0x7903, 130774 }, - { 0x7904, 130777 }, - { 0x7905, 130780 }, - { 0x7910, 130783 }, - { 0x7911, 130786 }, - { 0x7912, 130789 }, - { 0x7906, 130792 }, - { 0x7907, 130795 }, - { 0x7908, 130798 }, - { 0x7909, 130801 }, - { 0x790A, 130804 }, - { 0x7901, 130807 }, - { 0x799A, 130810 }, - { 0x799B, 130813 }, - { 0x799C, 130816 }, - { 0x799D, 130819 }, - { 0x799E, 130822 }, - { 0x799F, 130825 }, - { 0x79A0, 130828 }, - { 0x79A1, 130831 }, - { 0x79A2, 130834 }, - { 0x79AF, 130837 }, - { 0x79B0, 130840 }, - { 0x79B1, 130843 }, - { 0x79B2, 130846 }, - { 0x79B3, 130849 }, - { 0x79B4, 130852 }, - { 0x79B5, 130855 }, - { 0x79A5, 130858 }, - { 0x79A6, 130861 }, - { 0x79A7, 130864 }, - { 0x79A8, 130867 }, - { 0x79A9, 130870 }, - { 0x79AA, 130873 }, - { 0x79AB, 130876 }, - { 0x79B6, 130879 }, - { 0x79B7, 130882 }, - { 0x79B8, 130885 }, - { 0x79B9, 130888 }, - { 0x79BA, 130891 }, - { 0x79BB, 130894 }, - { 0x79BC, 130897 }, - { 0x79BD, 130900 }, - { 0x79AC, 130903 }, - { 0x79AD, 130906 }, - { 0x79AE, 130909 }, - { 0x7913, 130912 }, - { 0x7914, 130915 }, - { 0x7915, 130918 }, - { 0x7916, 130921 }, - { 0x7917, 130924 }, - { 0x7918, 130927 }, - { 0x7919, 130930 }, - { 0x791A, 130933 }, - { 0x791B, 130936 }, - { 0x792E, 130939 }, - { 0x792F, 130942 }, - { 0x7930, 130945 }, - { 0x7931, 130948 }, - { 0x7932, 130951 }, - { 0x7933, 130954 }, - { 0x791F, 130957 }, - { 0x7920, 130960 }, - { 0x7921, 130963 }, - { 0x7922, 130966 }, - { 0x7923, 130969 }, - { 0x7924, 130972 }, - { 0x7925, 130975 }, - { 0x7926, 130978 }, - { 0x7934, 130981 }, - { 0x7935, 130984 }, - { 0x7936, 130987 }, - { 0x7927, 130990 }, - { 0x7928, 130993 }, - { 0x7929, 130996 }, - { 0x792A, 130999 }, - { 0x792B, 131002 }, - { 0x792C, 131005 }, - { 0x792D, 131008 }, - { 0x79BE, 131011 }, - { 0x79BF, 131014 }, - { 0x79C0, 131017 }, - { 0x79C1, 131020 }, - { 0x79C2, 131023 }, - { 0x79C3, 131026 }, - { 0x79C4, 131029 }, - { 0x79D0, 131032 }, - { 0x79D1, 131035 }, - { 0x79C5, 131038 }, - { 0x79C6, 131041 }, - { 0x79C7, 131044 }, - { 0x79C8, 131047 }, - { 0x79C9, 131050 }, - { 0x79CA, 131053 }, - { 0x79CB, 131056 }, - { 0x79D3, 131059 }, - { 0x79D4, 131062 }, - { 0x79D5, 131065 }, - { 0x79D6, 131068 }, - { 0x79D7, 131071 }, - { 0x79D8, 131074 }, - { 0x79CC, 131077 }, - { 0x79CD, 131080 }, - { 0x79CE, 131083 }, - { 0x79CF, 131086 }, - { 0x797A, 131089 }, - { 0x797B, 131092 }, - { 0x797C, 131095 }, - { 0x797D, 131098 }, - { 0x797E, 131101 }, - { 0x797F, 131104 }, - { 0x7980, 131107 }, - { 0x7981, 131110 }, - { 0x7982, 131113 }, - { 0x798E, 131116 }, - { 0x798F, 131119 }, - { 0x7990, 131122 }, - { 0x7991, 131125 }, - { 0x7992, 131128 }, - { 0x7993, 131131 }, - { 0x7983, 131134 }, - { 0x7984, 131137 }, - { 0x7985, 131140 }, - { 0x7986, 131143 }, - { 0x7987, 131146 }, - { 0x7988, 131149 }, - { 0x7989, 131152 }, - { 0x7995, 131155 }, - { 0x7996, 131158 }, - { 0x7997, 131161 }, - { 0x7998, 131164 }, - { 0x7999, 131167 }, - { 0x798B, 131170 }, - { 0x798C, 131173 }, - { 0x798D, 131176 }, - { 0x79E9, 131179 }, - { 0x79EA, 131182 }, - { 0x79EB, 131185 }, - { 0x79EC, 131188 }, - { 0x79FA, 131191 }, - { 0x79FB, 131194 }, - { 0x79FC, 131197 }, - { 0x79FD, 131200 }, - { 0x79ED, 131203 }, - { 0x79EE, 131206 }, - { 0x79EF, 131209 }, - { 0x79F0, 131212 }, - { 0x79F1, 131215 }, - { 0x79F2, 131218 }, - { 0x79F3, 131221 }, - { 0x79FE, 131224 }, - { 0x79FF, 131227 }, - { 0x7A00, 131230 }, - { 0x7A01, 131233 }, - { 0x7A02, 131236 }, - { 0x7A03, 131239 }, - { 0x79F4, 131242 }, - { 0x79F5, 131245 }, - { 0x79F6, 131248 }, - { 0x79F7, 131251 }, - { 0x79F8, 131254 }, - { 0x79F9, 131257 }, - { 0x7938, 131260 }, - { 0x7939, 131263 }, - { 0x793A, 131266 }, - { 0x793B, 131269 }, - { 0x793C, 131272 }, - { 0x793D, 131275 }, - { 0x793E, 131278 }, - { 0x793F, 131281 }, - { 0x794E, 131284 }, - { 0x794F, 131287 }, - { 0x7950, 131290 }, - { 0x7951, 131293 }, - { 0x7952, 131296 }, - { 0x7940, 131299 }, - { 0x7941, 131302 }, - { 0x7942, 131305 }, - { 0x7943, 131308 }, - { 0x7944, 131311 }, - { 0x7945, 131314 }, - { 0x7953, 131317 }, - { 0x7954, 131320 }, - { 0x7955, 131323 }, - { 0x7956, 131326 }, - { 0x7957, 131329 }, - { 0x7958, 131332 }, - { 0x7959, 131335 }, - { 0x7946, 131338 }, - { 0x7947, 131341 }, - { 0x7948, 131344 }, - { 0x7949, 131347 }, - { 0x794A, 131350 }, - { 0x794B, 131353 }, - { 0x794C, 131356 }, - { 0x794D, 131359 }, - { 0x795A, 131362 }, - { 0x795B, 131365 }, - { 0x795C, 131368 }, - { 0x795D, 131371 }, - { 0x796A, 131374 }, - { 0x796B, 131377 }, - { 0x796C, 131380 }, - { 0x796D, 131383 }, - { 0x796E, 131386 }, - { 0x796F, 131389 }, - { 0x7970, 131392 }, - { 0x7971, 131395 }, - { 0x7972, 131398 }, - { 0x795E, 131401 }, - { 0x795F, 131404 }, - { 0x7960, 131407 }, - { 0x7961, 131410 }, - { 0x7962, 131413 }, - { 0x7963, 131416 }, - { 0x7964, 131419 }, - { 0x7973, 131422 }, - { 0x7974, 131425 }, - { 0x7975, 131428 }, - { 0x7976, 131431 }, - { 0x7977, 131434 }, - { 0x7978, 131437 }, - { 0x7965, 131440 }, - { 0x7966, 131443 }, - { 0x7967, 131446 }, - { 0x7968, 131449 }, - { 0x7A04, 131452 }, - { 0x7A05, 131455 }, - { 0x7A06, 131458 }, - { 0x7A07, 131461 }, - { 0x7A08, 131464 }, - { 0x7A0E, 131467 }, - { 0x7A0F, 131470 }, - { 0x7A10, 131473 }, - { 0x7A11, 131476 }, - { 0x7A09, 131479 }, - { 0x7A0A, 131482 }, - { 0x7A0B, 131485 }, - { 0x7A0C, 131488 }, - { 0x7A0D, 131491 }, - { 0x7A12, 131494 }, - { 0x7A13, 131497 }, - { 0x7A14, 131500 }, - { 0x7A15, 131503 }, - { 0x7A16, 131506 }, - { 0x7A17, 131509 }, - { 0x7A18, 131512 }, - { 0x79D9, 131515 }, - { 0x79DA, 131518 }, - { 0x79DB, 131521 }, - { 0x79DC, 131524 }, - { 0x79DD, 131527 }, - { 0x79E3, 131530 }, - { 0x79E4, 131533 }, - { 0x79E5, 131536 }, - { 0x79E6, 131539 }, - { 0x79E7, 131542 }, - { 0x79E8, 131545 }, - { 0x79DF, 131548 }, - { 0x79E0, 131551 }, - { 0x79E1, 131554 }, - { 0x79E2, 131557 }, - { 0x79A3, 131560 }, - { 0x79A4, 131563 }, - { 0x791C, 131566 }, - { 0x791D, 131569 }, - { 0x791E, 131572 }, - { 0x7937, 131575 }, - { 0x79D2, 131578 }, - { 0x7994, 131581 }, - { 0x798A, 131584 }, - { 0x7979, 131587 }, - { 0x7969, 131590 }, - { 0x79DE, 131593 }, - { 0x7A19, 131596 }, - { 0x7A1A, 131599 }, - { 0x9237, 131602 }, - { 0x9238, 131604 }, - { 0x1E92, 131609 }, - { 0x1C95, 131610 }, - { 0x9678, 131612 }, - { 0x9679, 131616 }, - { 0x967A, 131620 }, - { 0x967B, 131624 }, - { 0x967C, 131628 }, - { 0x967D, 131632 }, - { 0x9683, 131636 }, - { 0x27A8, 131640 }, - { 0x7CD8, 131643 }, - { 0x7E50, 131649 }, - { 0x7E53, 131654 }, - { 0x2006, 131660 }, - { 0x22D5, 131663 }, - { 0x2011, 131668 }, - { 0x2012, 131671 }, - { 0x2013, 131674 }, - { 0x2014, 131677 }, - { 0x274F, 131680 }, - { 0x27EC, 131683 }, - { 0x7CCC, 131686 }, - { 0x7CE2, 131688 }, - { 0x7EF1, 131691 }, - { 0x9258, 131694 }, - { 0x1CA6, 131697 }, - { 0x7C50, 131699 }, - { 0x7C5A, 131702 }, - { 0x1FE5, 131704 }, - { 0x2608, 131706 }, - { 0x478C, 131708 }, - { 0x478E, 131712 }, - { 0x478D, 131716 }, - { 0x4765, 131719 }, - { 0x4767, 131724 }, - { 0x4766, 131727 }, - { 0x4790, 131730 }, - { 0x4791, 131733 }, - { 0x4793, 131736 }, - { 0x4792, 131739 }, - { 0x4762, 131742 }, - { 0x475F, 131746 }, - { 0x4763, 131750 }, - { 0x4760, 131754 }, - { 0x4761, 131758 }, - { 0x4764, 131763 }, - { 0x475E, 131767 }, - { 0x477C, 131770 }, - { 0x476C, 131773 }, - { 0x4777, 131776 }, - { 0x476A, 131779 }, - { 0x4787, 131782 }, - { 0x476E, 131785 }, - { 0x4768, 131788 }, - { 0x4781, 131791 }, - { 0x477E, 131794 }, - { 0x4779, 131797 }, - { 0x477A, 131800 }, - { 0x4780, 131803 }, - { 0x4785, 131806 }, - { 0x4775, 131809 }, - { 0x4782, 131812 }, - { 0x477F, 131815 }, - { 0x4786, 131818 }, - { 0x477D, 131821 }, - { 0x476D, 131824 }, - { 0x4772, 131827 }, - { 0x4778, 131830 }, - { 0x476B, 131833 }, - { 0x4769, 131836 }, - { 0x4788, 131839 }, - { 0x4774, 131842 }, - { 0x476F, 131845 }, - { 0x477B, 131848 }, - { 0x4783, 131851 }, - { 0x4784, 131854 }, - { 0x4776, 131857 }, - { 0x4770, 131860 }, - { 0x478B, 131863 }, - { 0x4773, 131866 }, - { 0x4771, 131869 }, - { 0x478A, 131872 }, - { 0x4789, 131875 }, - { 0x4796, 131878 }, - { 0x4797, 131882 }, - { 0x4794, 131886 }, - { 0x4795, 131889 }, - { 0x478F, 131892 }, - { 0x4798, 131894 }, - { 0x4799, 131898 }, - { 0x479F, 131901 }, - { 0x47A1, 131904 }, - { 0x479E, 131907 }, - { 0x479A, 131910 }, - { 0x479B, 131914 }, - { 0x47A0, 131917 }, - { 0x479C, 131921 }, - { 0x479D, 131925 }, - { 0x47EA, 131928 }, - { 0x47FE, 131931 }, - { 0x47E8, 131934 }, - { 0x47FD, 131937 }, - { 0x47F8, 131940 }, - { 0x47F9, 131943 }, - { 0x4806, 131946 }, - { 0x47E9, 131949 }, - { 0x47FB, 131952 }, - { 0x47E3, 131955 }, - { 0x47EF, 131958 }, - { 0x47F2, 131961 }, - { 0x4800, 131964 }, - { 0x4803, 131967 }, - { 0x4804, 131970 }, - { 0x47F0, 131973 }, - { 0x47F3, 131976 }, - { 0x4801, 131979 }, - { 0x47F1, 131982 }, - { 0x47FC, 131985 }, - { 0x47E2, 131988 }, - { 0x47E4, 131991 }, - { 0x47E5, 131994 }, - { 0x47ED, 131997 }, - { 0x47F4, 132000 }, - { 0x4802, 132003 }, - { 0x47FF, 132006 }, - { 0x4805, 132009 }, - { 0x47EB, 132012 }, - { 0x47E7, 132015 }, - { 0x47E6, 132018 }, - { 0x47EE, 132021 }, - { 0x47F5, 132024 }, - { 0x47FA, 132027 }, - { 0x47EC, 132030 }, - { 0x47F6, 132033 }, - { 0x47F7, 132036 }, - { 0x4809, 132039 }, - { 0x480D, 132042 }, - { 0x480B, 132046 }, - { 0x480A, 132049 }, - { 0x480C, 132052 }, - { 0x4812, 132055 }, - { 0x4811, 132058 }, - { 0x4813, 132063 }, - { 0x4814, 132067 }, - { 0x480E, 132071 }, - { 0x4810, 132074 }, - { 0x480F, 132080 }, - { 0x4807, 132083 }, - { 0x4808, 132087 }, - { 0x94EC, 132091 }, - { 0x94ED, 132093 }, - { 0x8F57, 132095 }, - { 0x90DF, 132096 }, - { 0x1FE4, 132097 }, - { 0x2709, 132099 }, - { 0x2239, 132100 }, - { 0x7C89, 132101 }, - { 0x94A3, 132104 }, - { 0x9269, 132106 }, - { 0x8F60, 132107 }, - { 0x14A7, 132109 }, - { 0x14A6, 132112 }, - { 0x46C8, 132115 }, - { 0x46B0, 132118 }, - { 0x46BC, 132121 }, - { 0x46BB, 132124 }, - { 0x46AC, 132127 }, - { 0x46AD, 132130 }, - { 0x46B3, 132133 }, - { 0x46B6, 132136 }, - { 0x46B8, 132139 }, - { 0x46B9, 132142 }, - { 0x46BE, 132145 }, - { 0x46C1, 132148 }, - { 0x46B4, 132151 }, - { 0x46B1, 132154 }, - { 0x46B5, 132157 }, - { 0x46B2, 132160 }, - { 0x46AF, 132163 }, - { 0x46AE, 132166 }, - { 0x46B7, 132169 }, - { 0x46BF, 132172 }, - { 0x46BD, 132175 }, - { 0x46BA, 132178 }, - { 0x46C0, 132181 }, - { 0x46C2, 132184 }, - { 0x46C5, 132187 }, - { 0x46C3, 132191 }, - { 0x46C6, 132194 }, - { 0x46C7, 132197 }, - { 0x46C4, 132200 }, - { 0x928C, 132203 }, - { 0x0070, 132205 }, - { 0x927A, 132207 }, - { 0x1F5C, 132209 }, - { 0x1E8E, 132210 }, - { 0x2801, 132211 }, - { 0x2642, 132212 }, - { 0x1EB6, 132215 }, - { 0x7C59, 132218 }, - { 0x006D, 132219 }, - { 0x230C, 132221 }, - { 0x230D, 132224 }, - { 0x94BD, 132227 }, - { 0x2564, 132228 }, - { 0x9415, 132232 }, - { 0x1DF7, 132237 }, - { 0x95FA, 132241 }, - { 0x1DF4, 132243 }, - { 0x1DE9, 132246 }, - { 0x1E3C, 132248 }, - { 0x254A, 132252 }, - { 0x96B7, 132257 }, - { 0x1DFD, 132266 }, - { 0x254C, 132270 }, - { 0x942D, 132277 }, - { 0x1E1B, 132282 }, - { 0x273B, 132287 }, - { 0x273A, 132292 }, - { 0x1E01, 132297 }, - { 0x1E03, 132301 }, - { 0x2571, 132305 }, - { 0x1DFA, 132310 }, - { 0x2541, 132314 }, - { 0x2540, 132322 }, - { 0x9396, 132329 }, - { 0x9422, 132335 }, - { 0x938E, 132340 }, - { 0x939A, 132346 }, - { 0x1E0B, 132352 }, - { 0x253D, 132357 }, - { 0x1E52, 132362 }, - { 0x9392, 132368 }, - { 0x1DF2, 132374 }, - { 0x940C, 132378 }, - { 0x1E4F, 132383 }, - { 0x939E, 132388 }, - { 0x256E, 132393 }, - { 0x25A0, 132399 }, - { 0x25A1, 132404 }, - { 0x2778, 132410 }, - { 0x2774, 132416 }, - { 0x2573, 132423 }, - { 0x2770, 132427 }, - { 0x276F, 132431 }, - { 0x27BF, 132435 }, - { 0x27B4, 132438 }, - { 0x93CE, 132443 }, - { 0x93CA, 132446 }, - { 0x1E3F, 132450 }, - { 0x1E47, 132453 }, - { 0x9408, 132458 }, - { 0x9413, 132464 }, - { 0x1E39, 132469 }, - { 0x2539, 132472 }, - { 0x1E29, 132476 }, - { 0x2533, 132479 }, - { 0x1E26, 132484 }, - { 0x252F, 132489 }, - { 0x2548, 132495 }, - { 0x1E20, 132498 }, - { 0x9221, 132501 }, - { 0x253B, 132503 }, - { 0x1E32, 132507 }, - { 0x1E23, 132510 }, - { 0x257F, 132515 }, - { 0x2587, 132522 }, - { 0x2598, 132529 }, - { 0x2594, 132537 }, - { 0x2590, 132548 }, - { 0x2583, 132559 }, - { 0x258B, 132566 }, - { 0x2595, 132573 }, - { 0x2599, 132584 }, - { 0x1E17, 132592 }, - { 0x1E18, 132597 }, - { 0x9601, 132602 }, - { 0x93C2, 132605 }, - { 0x1E34, 132608 }, - { 0x9404, 132611 }, - { 0x2772, 132614 }, - { 0x2546, 132617 }, - { 0x93C6, 132619 }, - { 0x93D2, 132622 }, - { 0x2531, 132625 }, - { 0x2542, 132630 }, - { 0x2544, 132635 }, - { 0x2543, 132644 }, - { 0x252D, 132652 }, - { 0x2817, 132659 }, - { 0x252C, 132665 }, - { 0x253C, 132671 }, - { 0x941B, 132676 }, - { 0x93BE, 132681 }, - { 0x9419, 132684 }, - { 0x1E55, 132688 }, - { 0x941D, 132691 }, - { 0x9417, 132696 }, - { 0x278E, 132700 }, - { 0x279E, 132703 }, - { 0x27AC, 132708 }, - { 0x93B2, 132715 }, - { 0x27CE, 132721 }, - { 0x27D0, 132728 }, - { 0x93BA, 132735 }, - { 0x93B6, 132742 }, - { 0x27A6, 132748 }, - { 0x27A6, 132755 }, - { 0x93AE, 132762 }, - { 0x93AA, 132768 }, - { 0x2798, 132774 }, - { 0x27B0, 132778 }, - { 0x922B, 132782 }, - { 0x922A, 132790 }, - { 0x9229, 132797 }, - { 0x922D, 132805 }, - { 0x384B, 132808 }, - { 0x3808, 132811 }, - { 0x3807, 132814 }, - { 0x384C, 132817 }, - { 0x384D, 132820 }, - { 0x3850, 132822 }, - { 0x3855, 132825 }, - { 0x3851, 132828 }, - { 0x3854, 132831 }, - { 0x3853, 132834 }, - { 0x3858, 132837 }, - { 0x384F, 132840 }, - { 0x3857, 132843 }, - { 0x3856, 132846 }, - { 0x3852, 132849 }, - { 0x3845, 132852 }, - { 0x383D, 132856 }, - { 0x3848, 132860 }, - { 0x383F, 132864 }, - { 0x383C, 132868 }, - { 0x3847, 132872 }, - { 0x384A, 132876 }, - { 0x3846, 132880 }, - { 0x383E, 132884 }, - { 0x3849, 132888 }, - { 0x3840, 132892 }, - { 0x3843, 132896 }, - { 0x3841, 132901 }, - { 0x3844, 132906 }, - { 0x3842, 132911 }, - { 0x384E, 132916 }, - { 0x3809, 132919 }, - { 0x3813, 132922 }, - { 0x380B, 132925 }, - { 0x3816, 132928 }, - { 0x380D, 132931 }, - { 0x380A, 132934 }, - { 0x3815, 132937 }, - { 0x3818, 132940 }, - { 0x382F, 132943 }, - { 0x381E, 132946 }, - { 0x382A, 132949 }, - { 0x3814, 132952 }, - { 0x381B, 132955 }, - { 0x3839, 132958 }, - { 0x380C, 132961 }, - { 0x3820, 132964 }, - { 0x3819, 132967 }, - { 0x3834, 132970 }, - { 0x3831, 132973 }, - { 0x382C, 132976 }, - { 0x3817, 132979 }, - { 0x382D, 132982 }, - { 0x3833, 132985 }, - { 0x3838, 132988 }, - { 0x3828, 132991 }, - { 0x380E, 132994 }, - { 0x3835, 132997 }, - { 0x3832, 133000 }, - { 0x3830, 133003 }, - { 0x381F, 133006 }, - { 0x3825, 133009 }, - { 0x382B, 133012 }, - { 0x381C, 133015 }, - { 0x3821, 133018 }, - { 0x381A, 133021 }, - { 0x383A, 133024 }, - { 0x381D, 133027 }, - { 0x3827, 133030 }, - { 0x3822, 133033 }, - { 0x382E, 133036 }, - { 0x3836, 133039 }, - { 0x3837, 133042 }, - { 0x3829, 133045 }, - { 0x3823, 133048 }, - { 0x3826, 133051 }, - { 0x3824, 133054 }, - { 0x3811, 133057 }, - { 0x380F, 133061 }, - { 0x3812, 133065 }, - { 0x3810, 133069 }, - { 0x383B, 133073 }, - { 0x265E, 133077 }, - { 0x1FD4, 133082 }, - { 0x91B1, 133085 }, - { 0x1C86, 133088 }, - { 0x92A5, 133090 }, - { 0x8F06, 133091 }, - { 0x9252, 133092 }, - { 0x90AD, 133094 }, - { 0x95BD, 133095 }, - { 0x2800, 133096 }, - { 0x925C, 133097 }, - { 0x9083, 133101 }, - { 0x1CA3, 133103 }, - { 0x9241, 133105 }, - { 0x7416, 133106 }, - { 0x7417, 133111 }, - { 0x8F83, 133116 }, - { 0x8EFC, 133117 }, - { 0x22AB, 133118 }, - { 0x1FDE, 133120 }, - { 0x924E, 133123 }, - { 0x23D7, 133125 }, - { 0x2787, 133130 }, - { 0x2789, 133136 }, - { 0x95E1, 133142 }, - { 0x263C, 133143 }, - { 0x1FDB, 133145 }, - { 0x918F, 133147 }, - { 0x2238, 133148 }, - { 0x8F9D, 133149 }, - { 0x1EAF, 133151 }, - { 0x1F8B, 133153 }, - { 0x1F8C, 133154 }, - { 0x26C5, 133155 }, - { 0x26C6, 133160 }, - { 0x26C7, 133165 }, - { 0x26C8, 133171 }, - { 0x2725, 133177 }, - { 0x2726, 133183 }, - { 0x7CBA, 133189 }, - { 0x7CBE, 133195 }, - { 0x1EB1, 133201 }, - { 0x0001, 133203 }, - { 0x1CC9, 133205 }, - { 0x95DE, 133208 }, - { 0x9516, 133209 }, - { 0x1C85, 133210 }, - { 0x9013, 133212 }, - { 0x1CA7, 133214 }, - { 0x2BAF, 133216 }, - { 0x2BEC, 133219 }, - { 0x2BAE, 133223 }, - { 0x2BD7, 133225 }, - { 0x2BAD, 133229 }, - { 0x8264, 133231 }, - { 0x8265, 133235 }, - { 0x8268, 133239 }, - { 0x8267, 133243 }, - { 0x8266, 133247 }, - { 0x2BB4, 133251 }, - { 0x2BD8, 133254 }, - { 0x2BB3, 133258 }, - { 0x2BDA, 133261 }, - { 0x2BD9, 133265 }, - { 0x2BB2, 133269 }, - { 0x2BE4, 133272 }, - { 0x2F79, 133278 }, - { 0x2F7E, 133284 }, - { 0x2F82, 133290 }, - { 0x2F7A, 133296 }, - { 0x2F7D, 133302 }, - { 0x2F7C, 133308 }, - { 0x2F81, 133314 }, - { 0x2F80, 133320 }, - { 0x2F7F, 133326 }, - { 0x2F7B, 133332 }, - { 0x2F83, 133338 }, - { 0x2F96, 133344 }, - { 0x2F84, 133350 }, - { 0x2F8C, 133356 }, - { 0x2F87, 133362 }, - { 0x2F88, 133368 }, - { 0x2F8A, 133374 }, - { 0x2F86, 133380 }, - { 0x2F8B, 133386 }, - { 0x2F85, 133392 }, - { 0x2F89, 133398 }, - { 0x2F97, 133404 }, - { 0x2F8D, 133410 }, - { 0x2F92, 133416 }, - { 0x2F8E, 133422 }, - { 0x2F91, 133428 }, - { 0x2F90, 133434 }, - { 0x2F95, 133440 }, - { 0x2F94, 133446 }, - { 0x2F93, 133452 }, - { 0x2F8F, 133458 }, - { 0x2E5D, 133464 }, - { 0x2EF2, 133469 }, - { 0x2EF7, 133475 }, - { 0x2EFB, 133481 }, - { 0x2EF3, 133487 }, - { 0x2EF6, 133493 }, - { 0x2EF5, 133499 }, - { 0x2EFA, 133505 }, - { 0x2EF1, 133511 }, - { 0x2EF9, 133517 }, - { 0x2EF8, 133523 }, - { 0x2EF4, 133529 }, - { 0x2EFC, 133535 }, - { 0x2EFD, 133541 }, - { 0x2F05, 133547 }, - { 0x2F00, 133553 }, - { 0x2F01, 133559 }, - { 0x2F03, 133565 }, - { 0x2EFF, 133571 }, - { 0x2F04, 133577 }, - { 0x2EFE, 133583 }, - { 0x2F02, 133589 }, - { 0x2F06, 133595 }, - { 0x2F07, 133601 }, - { 0x2F09, 133607 }, - { 0x2F08, 133613 }, - { 0x2E5F, 133619 }, - { 0x2E5E, 133624 }, - { 0x2E5C, 133629 }, - { 0x2E5B, 133634 }, - { 0x2E60, 133639 }, - { 0x2E59, 133644 }, - { 0x2E62, 133649 }, - { 0x2E64, 133654 }, - { 0x2E5A, 133659 }, - { 0x2E63, 133664 }, - { 0x2E61, 133669 }, - { 0x2BEB, 133674 }, - { 0x2D42, 133677 }, - { 0x2D35, 133681 }, - { 0x2D39, 133685 }, - { 0x2D36, 133689 }, - { 0x2D38, 133693 }, - { 0x2D41, 133697 }, - { 0x2D3C, 133701 }, - { 0x2D3E, 133705 }, - { 0x2D37, 133709 }, - { 0x2D3B, 133713 }, - { 0x2D3F, 133717 }, - { 0x2D40, 133721 }, - { 0x2D3A, 133725 }, - { 0x2D3D, 133729 }, - { 0x2D33, 133733 }, - { 0x2D34, 133737 }, - { 0x2BA1, 133741 }, - { 0x2B9D, 133746 }, - { 0x2B9F, 133752 }, - { 0x2B9E, 133760 }, - { 0x2BA0, 133766 }, - { 0x2BA8, 133774 }, - { 0x2BAC, 133778 }, - { 0x2BA4, 133782 }, - { 0x2BA2, 133788 }, - { 0x2BA3, 133794 }, - { 0x2BA7, 133800 }, - { 0x2BAA, 133807 }, - { 0x2BA9, 133814 }, - { 0x2BA5, 133820 }, - { 0x2BA6, 133827 }, - { 0x2BAB, 133834 }, - { 0x2D89, 133839 }, - { 0x9034, 133843 }, - { 0x1D94, 133846 }, - { 0x1F11, 133848 }, - { 0x3FDB, 133849 }, - { 0x3FDC, 133852 }, - { 0x3FDD, 133855 }, - { 0x22D0, 133858 }, - { 0x1CBD, 133863 }, - { 0x7CD9, 133864 }, - { 0x7CDB, 133866 }, - { 0x9449, 133871 }, - { 0x7CB7, 133873 }, - { 0x7CBB, 133879 }, - { 0x0DAB, 133885 }, - { 0x0DAD, 133888 }, - { 0x053F, 133893 }, - { 0x7C8F, 133897 }, - { 0x2312, 133899 }, - { 0x23D6, 133902 }, - { 0x9123, 133906 }, - { 0x7379, 133908 }, - { 0x7378, 133911 }, - { 0x7362, 133913 }, - { 0x7375, 133916 }, - { 0x7367, 133921 }, - { 0x7363, 133924 }, - { 0x7376, 133927 }, - { 0x7366, 133932 }, - { 0x7365, 133935 }, - { 0x736A, 133938 }, - { 0x7361, 133941 }, - { 0x7369, 133944 }, - { 0x7368, 133947 }, - { 0x7364, 133950 }, - { 0x7377, 133953 }, - { 0x734E, 133958 }, - { 0x7351, 133962 }, - { 0x7352, 133966 }, - { 0x735A, 133970 }, - { 0x7350, 133974 }, - { 0x734B, 133978 }, - { 0x734A, 133982 }, - { 0x7357, 133986 }, - { 0x734C, 133990 }, - { 0x734F, 133994 }, - { 0x734D, 133998 }, - { 0x7355, 134002 }, - { 0x7341, 134006 }, - { 0x735C, 134010 }, - { 0x735E, 134014 }, - { 0x7348, 134018 }, - { 0x7356, 134022 }, - { 0x735D, 134026 }, - { 0x7342, 134030 }, - { 0x7349, 134034 }, - { 0x7353, 134038 }, - { 0x7343, 134042 }, - { 0x7344, 134046 }, - { 0x7359, 134050 }, - { 0x7360, 134054 }, - { 0x7346, 134058 }, - { 0x735F, 134062 }, - { 0x7357, 134066 }, - { 0x7347, 134070 }, - { 0x7358, 134074 }, - { 0x7358, 134078 }, - { 0x735B, 134082 }, - { 0x7354, 134086 }, - { 0x7345, 134090 }, - { 0x736B, 134094 }, - { 0x736C, 134097 }, - { 0x736D, 134100 }, - { 0x7370, 134103 }, - { 0x7371, 134106 }, - { 0x7373, 134109 }, - { 0x736F, 134112 }, - { 0x7374, 134115 }, - { 0x736E, 134118 }, - { 0x7372, 134121 }, - { 0x737A, 134124 }, - { 0x732E, 134127 }, - { 0x7331, 134131 }, - { 0x7332, 134135 }, - { 0x733A, 134139 }, - { 0x7330, 134143 }, - { 0x732B, 134147 }, - { 0x732A, 134151 }, - { 0x7337, 134155 }, - { 0x732C, 134159 }, - { 0x732F, 134163 }, - { 0x732D, 134167 }, - { 0x7335, 134171 }, - { 0x7321, 134175 }, - { 0x733C, 134179 }, - { 0x733E, 134183 }, - { 0x7328, 134187 }, - { 0x7336, 134191 }, - { 0x733D, 134195 }, - { 0x7322, 134199 }, - { 0x7329, 134203 }, - { 0x7333, 134207 }, - { 0x7323, 134211 }, - { 0x7324, 134215 }, - { 0x7339, 134219 }, - { 0x7340, 134223 }, - { 0x7326, 134227 }, - { 0x733F, 134231 }, - { 0x7337, 134235 }, - { 0x7327, 134239 }, - { 0x7338, 134243 }, - { 0x7338, 134247 }, - { 0x733B, 134251 }, - { 0x7334, 134255 }, - { 0x7325, 134259 }, - { 0x737B, 134263 }, - { 0x943F, 134266 }, - { 0x50EE, 134268 }, - { 0x50F0, 134271 }, - { 0x50ED, 134274 }, - { 0x50EC, 134277 }, - { 0x50EF, 134280 }, - { 0x50E8, 134283 }, - { 0x50E2, 134287 }, - { 0x50EA, 134291 }, - { 0x50E4, 134295 }, - { 0x50E1, 134299 }, - { 0x50E9, 134303 }, - { 0x50EB, 134307 }, - { 0x50E3, 134311 }, - { 0x50E5, 134315 }, - { 0x50E6, 134319 }, - { 0x50E7, 134324 }, - { 0x50F2, 134329 }, - { 0x50B2, 134334 }, - { 0x50BA, 134337 }, - { 0x50B4, 134340 }, - { 0x50BC, 134343 }, - { 0x50B6, 134346 }, - { 0x50B3, 134349 }, - { 0x50BB, 134352 }, - { 0x50BD, 134355 }, - { 0x50D4, 134358 }, - { 0x50C3, 134361 }, - { 0x50CF, 134364 }, - { 0x50C0, 134367 }, - { 0x50DE, 134370 }, - { 0x50B5, 134373 }, - { 0x50C5, 134376 }, - { 0x50BE, 134379 }, - { 0x50D9, 134382 }, - { 0x50D6, 134385 }, - { 0x50D1, 134388 }, - { 0x50D2, 134391 }, - { 0x50D8, 134394 }, - { 0x50DD, 134397 }, - { 0x50CD, 134400 }, - { 0x50B7, 134403 }, - { 0x50DA, 134406 }, - { 0x50D7, 134409 }, - { 0x50D5, 134412 }, - { 0x50C4, 134415 }, - { 0x50CA, 134418 }, - { 0x50D0, 134421 }, - { 0x50C1, 134424 }, - { 0x50C6, 134427 }, - { 0x50BF, 134430 }, - { 0x50DF, 134433 }, - { 0x50C2, 134436 }, - { 0x50CC, 134439 }, - { 0x50C7, 134442 }, - { 0x50D3, 134445 }, - { 0x50E0, 134448 }, - { 0x50DB, 134451 }, - { 0x50DC, 134454 }, - { 0x50CE, 134457 }, - { 0x50C8, 134460 }, - { 0x50CB, 134463 }, - { 0x50C9, 134466 }, - { 0x50B8, 134469 }, - { 0x50B9, 134473 }, - { 0x50F1, 134477 }, - { 0x9264, 134479 }, - { 0x931E, 134482 }, - { 0x27E5, 134483 }, - { 0x27E4, 134486 }, - { 0x27E3, 134491 }, - { 0x2A05, 134494 }, - { 0x2A43, 134495 }, - { 0x2DE9, 134497 }, - { 0x91D6, 134499 }, - { 0x1F5D, 134501 }, - { 0x1C88, 134502 }, - { 0x224E, 134504 }, - { 0x3FDF, 134506 }, - { 0x227C, 134508 }, - { 0x95B3, 134509 }, - { 0x91FB, 134510 }, - { 0x22E6, 134512 }, - { 0x8886, 134513 }, - { 0x8887, 134518 }, - { 0x8884, 134523 }, - { 0x8885, 134527 }, - { 0x886C, 134531 }, - { 0x8866, 134534 }, - { 0x8867, 134538 }, - { 0x88A3, 134542 }, - { 0x88A4, 134547 }, - { 0x8760, 134552 }, - { 0x8762, 134555 }, - { 0x8761, 134558 }, - { 0x887F, 134561 }, - { 0x8868, 134563 }, - { 0x886A, 134567 }, - { 0x8863, 134571 }, - { 0x8869, 134574 }, - { 0x8865, 134578 }, - { 0x8864, 134581 }, - { 0x886B, 134584 }, - { 0x8857, 134588 }, - { 0x8858, 134596 }, - { 0x8856, 134605 }, - { 0x88DB, 134612 }, - { 0x88DC, 134615 }, - { 0x88DD, 134618 }, - { 0x88DE, 134621 }, - { 0x88DF, 134624 }, - { 0x88D7, 134627 }, - { 0x88BA, 134630 }, - { 0x884E, 134632 }, - { 0x884F, 134634 }, - { 0x8855, 134637 }, - { 0x8851, 134641 }, - { 0x8853, 134645 }, - { 0x8850, 134649 }, - { 0x8854, 134653 }, - { 0x8852, 134657 }, - { 0x88C6, 134661 }, - { 0x88C7, 134664 }, - { 0x88C8, 134667 }, - { 0x88C9, 134670 }, - { 0x88CA, 134673 }, - { 0x88CB, 134676 }, - { 0x88CC, 134679 }, - { 0x88C5, 134682 }, - { 0x88A2, 134685 }, - { 0x88B9, 134689 }, - { 0x8881, 134691 }, - { 0x8880, 134694 }, - { 0x8883, 134697 }, - { 0x8882, 134700 }, - { 0x875D, 134703 }, - { 0x875F, 134706 }, - { 0x875E, 134709 }, - { 0x88D9, 134712 }, - { 0x88D6, 134714 }, - { 0x876A, 134716 }, - { 0x876C, 134720 }, - { 0x876B, 134724 }, - { 0x876D, 134728 }, - { 0x876E, 134732 }, - { 0x8757, 134735 }, - { 0x8759, 134738 }, - { 0x8758, 134741 }, - { 0x889C, 134744 }, - { 0x889D, 134747 }, - { 0x889E, 134751 }, - { 0x8896, 134755 }, - { 0x8898, 134759 }, - { 0x8897, 134764 }, - { 0x8893, 134769 }, - { 0x8894, 134773 }, - { 0x8895, 134777 }, - { 0x8899, 134781 }, - { 0x889B, 134785 }, - { 0x889A, 134790 }, - { 0x8890, 134795 }, - { 0x8892, 134798 }, - { 0x8891, 134802 }, - { 0x888D, 134806 }, - { 0x888F, 134809 }, - { 0x888E, 134813 }, - { 0x889F, 134817 }, - { 0x88A1, 134820 }, - { 0x88A0, 134824 }, - { 0x888C, 134828 }, - { 0x888B, 134832 }, - { 0x888A, 134836 }, - { 0x88A5, 134840 }, - { 0x88A7, 134843 }, - { 0x88A6, 134847 }, - { 0x88B0, 134851 }, - { 0x88B4, 134853 }, - { 0x88B5, 134857 }, - { 0x88B2, 134862 }, - { 0x88B3, 134866 }, - { 0x88B6, 134871 }, - { 0x88B1, 134875 }, - { 0x887E, 134878 }, - { 0x887C, 134882 }, - { 0x887D, 134886 }, - { 0x8754, 134890 }, - { 0x8756, 134893 }, - { 0x8755, 134896 }, - { 0x88C4, 134899 }, - { 0x8889, 134906 }, - { 0x8888, 134909 }, - { 0x8879, 134912 }, - { 0x887B, 134915 }, - { 0x887A, 134918 }, - { 0x885E, 134921 }, - { 0x885D, 134926 }, - { 0x885F, 134931 }, - { 0x885C, 134936 }, - { 0x88CD, 134941 }, - { 0x875A, 134943 }, - { 0x875C, 134946 }, - { 0x875B, 134949 }, - { 0x88AA, 134952 }, - { 0x88AB, 134957 }, - { 0x88AD, 134963 }, - { 0x88AF, 134968 }, - { 0x88AE, 134973 }, - { 0x88AC, 134978 }, - { 0x88A9, 134983 }, - { 0x88A8, 134987 }, - { 0x8846, 134992 }, - { 0x8847, 134995 }, - { 0x884C, 134998 }, - { 0x8848, 135003 }, - { 0x884D, 135006 }, - { 0x8849, 135009 }, - { 0x8845, 135012 }, - { 0x8844, 135016 }, - { 0x884A, 135020 }, - { 0x884B, 135023 }, - { 0x876F, 135027 }, - { 0x8765, 135031 }, - { 0x8767, 135035 }, - { 0x8766, 135039 }, - { 0x8768, 135043 }, - { 0x8769, 135047 }, - { 0x8764, 135050 }, - { 0x8763, 135053 }, - { 0x8859, 135056 }, - { 0x885B, 135060 }, - { 0x885A, 135064 }, - { 0x8861, 135068 }, - { 0x8860, 135071 }, - { 0x8862, 135074 }, - { 0x86BC, 135077 }, - { 0x86C0, 135079 }, - { 0x86A2, 135083 }, - { 0x86A3, 135088 }, - { 0x86BB, 135094 }, - { 0x86BF, 135097 }, - { 0x86BD, 135102 }, - { 0x86C1, 135107 }, - { 0x8651, 135112 }, - { 0x870F, 135115 }, - { 0x873B, 135120 }, - { 0x873C, 135124 }, - { 0x86BE, 135129 }, - { 0x86C2, 135133 }, - { 0x871F, 135137 }, - { 0x88D3, 135142 }, - { 0x88D2, 135146 }, - { 0x88D5, 135149 }, - { 0x88D4, 135153 }, - { 0x88D1, 135156 }, - { 0x88D0, 135159 }, - { 0x88E0, 135162 }, - { 0x88E1, 135165 }, - { 0x88E2, 135168 }, - { 0x88E3, 135171 }, - { 0x88E4, 135174 }, - { 0x88E5, 135177 }, - { 0x88E6, 135180 }, - { 0x88E7, 135183 }, - { 0x88E8, 135186 }, - { 0x88E9, 135189 }, - { 0x88EA, 135192 }, - { 0x88EB, 135195 }, - { 0x88EC, 135198 }, - { 0x88ED, 135201 }, - { 0x88EE, 135204 }, - { 0x88BC, 135207 }, - { 0x88BD, 135211 }, - { 0x88C0, 135215 }, - { 0x886D, 135220 }, - { 0x886E, 135223 }, - { 0x886F, 135226 }, - { 0x86B5, 135229 }, - { 0x86B7, 135231 }, - { 0x8698, 135235 }, - { 0x8738, 135240 }, - { 0x86B6, 135247 }, - { 0x86B8, 135251 }, - { 0x8725, 135255 }, - { 0x8726, 135261 }, - { 0x8752, 135268 }, - { 0x8699, 135270 }, - { 0x8753, 135276 }, - { 0x86FD, 135279 }, - { 0x86FA, 135283 }, - { 0x8706, 135287 }, - { 0x8707, 135291 }, - { 0x86FF, 135295 }, - { 0x8703, 135299 }, - { 0x8705, 135303 }, - { 0x8704, 135309 }, - { 0x86FE, 135314 }, - { 0x864F, 135319 }, - { 0x8662, 135322 }, - { 0x8673, 135328 }, - { 0x8674, 135336 }, - { 0x8655, 135344 }, - { 0x866C, 135348 }, - { 0x8709, 135354 }, - { 0x8735, 135359 }, - { 0x872B, 135364 }, - { 0x8731, 135369 }, - { 0x8730, 135376 }, - { 0x8732, 135383 }, - { 0x872F, 135390 }, - { 0x872D, 135397 }, - { 0x872E, 135404 }, - { 0x8739, 135411 }, - { 0x8737, 135418 }, - { 0x868A, 135425 }, - { 0x8689, 135433 }, - { 0x873A, 135441 }, - { 0x8686, 135446 }, - { 0x8680, 135453 }, - { 0x8692, 135460 }, - { 0x868B, 135467 }, - { 0x8734, 135474 }, - { 0x8733, 135481 }, - { 0x8736, 135488 }, - { 0x8659, 135493 }, - { 0x865A, 135497 }, - { 0x865B, 135501 }, - { 0x8663, 135506 }, - { 0x8675, 135512 }, - { 0x865D, 135520 }, - { 0x8676, 135524 }, - { 0x865F, 135532 }, - { 0x8670, 135537 }, - { 0x86D5, 135544 }, - { 0x86DA, 135549 }, - { 0x86DB, 135555 }, - { 0x86F8, 135561 }, - { 0x866D, 135567 }, - { 0x8671, 135572 }, - { 0x868E, 135578 }, - { 0x868D, 135584 }, - { 0x8677, 135591 }, - { 0x867A, 135597 }, - { 0x8679, 135603 }, - { 0x8678, 135609 }, - { 0x868C, 135615 }, - { 0x8661, 135622 }, - { 0x8672, 135627 }, - { 0x86F3, 135635 }, - { 0x8660, 135640 }, - { 0x8669, 135646 }, - { 0x8682, 135651 }, - { 0x866F, 135658 }, - { 0x8664, 135665 }, - { 0x8665, 135670 }, - { 0x867C, 135677 }, - { 0x867E, 135684 }, - { 0x867D, 135692 }, - { 0x8683, 135700 }, - { 0x8667, 135707 }, - { 0x8684, 135713 }, - { 0x8668, 135721 }, - { 0x8681, 135727 }, - { 0x8666, 135735 }, - { 0x8658, 135742 }, - { 0x8744, 135747 }, - { 0x8745, 135750 }, - { 0x874E, 135754 }, - { 0x8751, 135760 }, - { 0x8748, 135767 }, - { 0x8746, 135772 }, - { 0x8747, 135777 }, - { 0x874D, 135782 }, - { 0x8750, 135788 }, - { 0x8657, 135794 }, - { 0x874F, 135800 }, - { 0x86E2, 135806 }, - { 0x874C, 135812 }, - { 0x874A, 135818 }, - { 0x867B, 135824 }, - { 0x874B, 135831 }, - { 0x8749, 135837 }, - { 0x86E1, 135841 }, - { 0x86E7, 135845 }, - { 0x86DD, 135849 }, - { 0x86E0, 135853 }, - { 0x86DF, 135859 }, - { 0x86DE, 135865 }, - { 0x86EF, 135871 }, - { 0x86EB, 135875 }, - { 0x86E9, 135880 }, - { 0x86E6, 135884 }, - { 0x86E8, 135889 }, - { 0x8715, 135894 }, - { 0x8718, 135898 }, - { 0x866B, 135904 }, - { 0x8713, 135910 }, - { 0x871C, 135914 }, - { 0x868F, 135919 }, - { 0x8690, 135927 }, - { 0x8691, 135935 }, - { 0x8685, 135942 }, - { 0x867F, 135949 }, - { 0x871A, 135956 }, - { 0x8687, 135961 }, - { 0x8688, 135968 }, - { 0x871B, 135975 }, - { 0x8717, 135979 }, - { 0x86A9, 135984 }, - { 0x869B, 135986 }, - { 0x869F, 135991 }, - { 0x869D, 135997 }, - { 0x86A1, 136004 }, - { 0x86A6, 136011 }, - { 0x86A8, 136017 }, - { 0x86A7, 136025 }, - { 0x8693, 136033 }, - { 0x8694, 136037 }, - { 0x8695, 136042 }, - { 0x8696, 136047 }, - { 0x8697, 136052 }, - { 0x86AB, 136058 }, - { 0x869C, 136061 }, - { 0x86A0, 136067 }, - { 0x869E, 136074 }, - { 0x86AD, 136082 }, - { 0x86B0, 136087 }, - { 0x86B1, 136093 }, - { 0x86B2, 136097 }, - { 0x86B3, 136103 }, - { 0x86B4, 136110 }, - { 0x86AE, 136114 }, - { 0x86AC, 136118 }, - { 0x86AF, 136122 }, - { 0x86AA, 136126 }, - { 0x86BA, 136131 }, - { 0x8708, 136133 }, - { 0x870D, 136137 }, - { 0x870C, 136143 }, - { 0x870E, 136149 }, - { 0x8729, 136155 }, - { 0x8728, 136161 }, - { 0x8727, 136168 }, - { 0x8719, 136175 }, - { 0x86B9, 136179 }, - { 0x86C6, 136182 }, - { 0x86C8, 136184 }, - { 0x86A5, 136188 }, - { 0x8701, 136193 }, - { 0x8652, 136197 }, - { 0x86C7, 136200 }, - { 0x86C9, 136204 }, - { 0x86E4, 136208 }, - { 0x88D8, 136212 }, - { 0x88BE, 136214 }, - { 0x88BB, 136219 }, - { 0x88BF, 136221 }, - { 0x86D4, 136226 }, - { 0x86FC, 136228 }, - { 0x8702, 136236 }, - { 0x8654, 136240 }, - { 0x8712, 136243 }, - { 0x8711, 136248 }, - { 0x8743, 136254 }, - { 0x8742, 136258 }, - { 0x8741, 136263 }, - { 0x86D8, 136268 }, - { 0x86F7, 136273 }, - { 0x86E5, 136278 }, - { 0x86F2, 136282 }, - { 0x86EE, 136286 }, - { 0x86ED, 136293 }, - { 0x8723, 136301 }, - { 0x8722, 136306 }, - { 0x8721, 136312 }, - { 0x86CC, 136318 }, - { 0x86D1, 136320 }, - { 0x86A4, 136324 }, - { 0x869A, 136330 }, - { 0x86CA, 136335 }, - { 0x86D0, 136338 }, - { 0x86CE, 136343 }, - { 0x86CB, 136348 }, - { 0x86F6, 136353 }, - { 0x86FB, 136356 }, - { 0x8653, 136364 }, - { 0x8710, 136367 }, - { 0x873F, 136372 }, - { 0x873D, 136376 }, - { 0x872C, 136381 }, - { 0x873E, 136386 }, - { 0x8740, 136391 }, - { 0x872A, 136396 }, - { 0x86D7, 136400 }, - { 0x86DC, 136405 }, - { 0x86F5, 136411 }, - { 0x86CD, 136416 }, - { 0x86CF, 136419 }, - { 0x86D2, 136423 }, - { 0x86D3, 136429 }, - { 0x86D9, 136435 }, - { 0x86F1, 136438 }, - { 0x86EC, 136442 }, - { 0x86EA, 136447 }, - { 0x8714, 136451 }, - { 0x8720, 136454 }, - { 0x86C5, 136459 }, - { 0x8700, 136461 }, - { 0x8650, 136465 }, - { 0x8656, 136468 }, - { 0x870A, 136472 }, - { 0x865C, 136477 }, - { 0x865E, 136481 }, - { 0x86D6, 136485 }, - { 0x86F9, 136490 }, - { 0x866E, 136496 }, - { 0x86F4, 136501 }, - { 0x866A, 136506 }, - { 0x86E3, 136511 }, - { 0x86F0, 136515 }, - { 0x8716, 136519 }, - { 0x871D, 136523 }, - { 0x8724, 136528 }, - { 0x88DA, 136534 }, - { 0x86C4, 136536 }, - { 0x86C3, 136538 }, - { 0x870B, 136541 }, - { 0x871E, 136547 }, - { 0x8770, 136553 }, - { 0x8771, 136558 }, - { 0x8774, 136563 }, - { 0x8775, 136569 }, - { 0x8772, 136575 }, - { 0x8773, 136579 }, - { 0x8776, 136583 }, - { 0x88C2, 136589 }, - { 0x88C1, 136593 }, - { 0x88C3, 136597 }, - { 0x87A2, 136600 }, - { 0x87A1, 136605 }, - { 0x87A3, 136610 }, - { 0x87A0, 136615 }, - { 0x879B, 136618 }, - { 0x879A, 136622 }, - { 0x879C, 136626 }, - { 0x879E, 136630 }, - { 0x879D, 136634 }, - { 0x879F, 136638 }, - { 0x8876, 136642 }, - { 0x8878, 136645 }, - { 0x8870, 136648 }, - { 0x8871, 136651 }, - { 0x8872, 136655 }, - { 0x87A6, 136659 }, - { 0x87A4, 136663 }, - { 0x87A5, 136667 }, - { 0x87A7, 136671 }, - { 0x87AE, 136675 }, - { 0x87AC, 136680 }, - { 0x87AD, 136685 }, - { 0x87AF, 136690 }, - { 0x87B2, 136695 }, - { 0x87B0, 136700 }, - { 0x87B1, 136705 }, - { 0x87B3, 136710 }, - { 0x87AA, 136715 }, - { 0x87A8, 136719 }, - { 0x87A9, 136723 }, - { 0x87AB, 136727 }, - { 0x87D6, 136731 }, - { 0x87D4, 136734 }, - { 0x87D3, 136738 }, - { 0x87D5, 136742 }, - { 0x87D1, 136746 }, - { 0x87D0, 136750 }, - { 0x87D2, 136754 }, - { 0x8877, 136758 }, - { 0x8873, 136761 }, - { 0x8874, 136764 }, - { 0x8875, 136768 }, - { 0x88CE, 136772 }, - { 0x8834, 136775 }, - { 0x8832, 136781 }, - { 0x8835, 136787 }, - { 0x8833, 136793 }, - { 0x8793, 136799 }, - { 0x8791, 136803 }, - { 0x8792, 136807 }, - { 0x88B7, 136811 }, - { 0x8789, 136814 }, - { 0x8787, 136818 }, - { 0x8788, 136822 }, - { 0x87E3, 136826 }, - { 0x87E1, 136830 }, - { 0x87E2, 136834 }, - { 0x87FD, 136838 }, - { 0x87F6, 136843 }, - { 0x87E6, 136849 }, - { 0x87E4, 136853 }, - { 0x87E7, 136857 }, - { 0x87E5, 136862 }, - { 0x87FE, 136866 }, - { 0x87F7, 136871 }, - { 0x87EA, 136877 }, - { 0x87E8, 136883 }, - { 0x87E9, 136889 }, - { 0x87ED, 136895 }, - { 0x87EB, 136901 }, - { 0x87EC, 136907 }, - { 0x87FF, 136913 }, - { 0x87F8, 136918 }, - { 0x8805, 136924 }, - { 0x8803, 136930 }, - { 0x8804, 136936 }, - { 0x8790, 136942 }, - { 0x878E, 136946 }, - { 0x878F, 136950 }, - { 0x8782, 136954 }, - { 0x87EE, 136957 }, - { 0x87FC, 136962 }, - { 0x87F5, 136967 }, - { 0x87D9, 136973 }, - { 0x87D7, 136978 }, - { 0x87D8, 136983 }, - { 0x87DA, 136988 }, - { 0x87DD, 136993 }, - { 0x87DB, 136998 }, - { 0x87DC, 137003 }, - { 0x87DE, 137008 }, - { 0x87DF, 137013 }, - { 0x87E0, 137019 }, - { 0x8799, 137025 }, - { 0x8797, 137029 }, - { 0x8798, 137033 }, - { 0x883D, 137037 }, - { 0x883C, 137043 }, - { 0x878C, 137049 }, - { 0x878A, 137053 }, - { 0x878B, 137057 }, - { 0x878D, 137061 }, - { 0x87EF, 137065 }, - { 0x87F0, 137070 }, - { 0x877F, 137075 }, - { 0x877E, 137080 }, - { 0x8780, 137084 }, - { 0x8781, 137088 }, - { 0x8841, 137094 }, - { 0x8840, 137099 }, - { 0x8777, 137104 }, - { 0x877D, 137108 }, - { 0x877B, 137113 }, - { 0x8779, 137118 }, - { 0x877A, 137123 }, - { 0x877C, 137128 }, - { 0x8784, 137133 }, - { 0x8783, 137138 }, - { 0x8785, 137143 }, - { 0x8786, 137147 }, - { 0x8796, 137153 }, - { 0x8794, 137157 }, - { 0x8795, 137161 }, - { 0x87F4, 137165 }, - { 0x87F2, 137168 }, - { 0x8801, 137171 }, - { 0x87FA, 137176 }, - { 0x87F1, 137182 }, - { 0x8800, 137185 }, - { 0x87F9, 137190 }, - { 0x87F3, 137196 }, - { 0x8802, 137199 }, - { 0x87FB, 137204 }, - { 0x88CF, 137210 }, - { 0x883B, 137213 }, - { 0x8838, 137221 }, - { 0x8839, 137229 }, - { 0x8836, 137237 }, - { 0x883A, 137245 }, - { 0x8837, 137253 }, - { 0x87C9, 137261 }, - { 0x87C7, 137265 }, - { 0x87C8, 137269 }, - { 0x88B8, 137273 }, - { 0x87C2, 137276 }, - { 0x8829, 137279 }, - { 0x8818, 137283 }, - { 0x8817, 137290 }, - { 0x881A, 137297 }, - { 0x8819, 137305 }, - { 0x8809, 137313 }, - { 0x880B, 137320 }, - { 0x8808, 137327 }, - { 0x880A, 137334 }, - { 0x882A, 137341 }, - { 0x881E, 137345 }, - { 0x881C, 137352 }, - { 0x881D, 137359 }, - { 0x881B, 137366 }, - { 0x880F, 137373 }, - { 0x880D, 137380 }, - { 0x880E, 137387 }, - { 0x880C, 137394 }, - { 0x882D, 137401 }, - { 0x882C, 137405 }, - { 0x882B, 137409 }, - { 0x8820, 137413 }, - { 0x881F, 137419 }, - { 0x8811, 137425 }, - { 0x8810, 137431 }, - { 0x87C6, 137437 }, - { 0x87BD, 137440 }, - { 0x8826, 137443 }, - { 0x8824, 137447 }, - { 0x8825, 137451 }, - { 0x8816, 137455 }, - { 0x8815, 137461 }, - { 0x8807, 137467 }, - { 0x8806, 137473 }, - { 0x8827, 137479 }, - { 0x8828, 137483 }, - { 0x87CF, 137487 }, - { 0x87CD, 137491 }, - { 0x87CE, 137495 }, - { 0x883F, 137499 }, - { 0x883E, 137506 }, - { 0x87C5, 137513 }, - { 0x87C3, 137517 }, - { 0x87C4, 137521 }, - { 0x87BA, 137525 }, - { 0x87B9, 137530 }, - { 0x87BB, 137534 }, - { 0x87BC, 137538 }, - { 0x8843, 137544 }, - { 0x8842, 137551 }, - { 0x8778, 137558 }, - { 0x87B8, 137562 }, - { 0x87B6, 137567 }, - { 0x87B4, 137572 }, - { 0x87B5, 137577 }, - { 0x87B7, 137582 }, - { 0x87BF, 137587 }, - { 0x87BE, 137592 }, - { 0x87C1, 137597 }, - { 0x87C0, 137603 }, - { 0x87CC, 137608 }, - { 0x87CA, 137612 }, - { 0x87CB, 137616 }, - { 0x8831, 137620 }, - { 0x882F, 137624 }, - { 0x8822, 137627 }, - { 0x8813, 137632 }, - { 0x882E, 137637 }, - { 0x8821, 137640 }, - { 0x8812, 137645 }, - { 0x8830, 137650 }, - { 0x8823, 137653 }, - { 0x8814, 137658 }, - { 0x8F75, 137663 }, - { 0x959A, 137664 }, - { 0x0078, 137665 }, - { 0x1CF3, 137667 }, - { 0x0071, 137669 }, - { 0x1CF2, 137671 }, - { 0x1CF1, 137673 }, - { 0x1CFA, 137675 }, - { 0x1CF6, 137678 }, - { 0x1CF7, 137680 }, - { 0x1CEF, 137683 }, - { 0x1CF5, 137685 }, - { 0x1CF0, 137687 }, - { 0x1CFC, 137692 }, - { 0x1CF8, 137697 }, - { 0x1CFB, 137699 }, - { 0x1CF4, 137702 }, - { 0x0072, 137704 }, - { 0x1CF9, 137706 }, - { 0x8ED4, 137709 }, - { 0x2707, 137710 }, - { 0x27FA, 137712 }, - { 0x90ED, 137714 }, - { 0x7E3C, 137717 }, - { 0x7CAD, 137719 }, - { 0x90EF, 137721 }, - { 0x9297, 137725 }, - { 0x7CA8, 137728 }, - { 0x7CC0, 137731 }, - { 0x7CDF, 137734 }, - { 0x7C9E, 137737 }, - { 0x7C47, 137740 }, - { 0x9296, 137742 }, - { 0x9295, 137744 }, - { 0x2219, 137747 }, - { 0x221A, 137753 }, - { 0x91F6, 137759 }, - { 0x9184, 137761 }, - { 0x1D73, 137762 }, - { 0x93E7, 137765 }, - { 0x93FF, 137770 }, - { 0x93F7, 137777 }, - { 0x93DF, 137783 }, - { 0x93EF, 137789 }, - { 0x93E6, 137795 }, - { 0x93FE, 137800 }, - { 0x93F6, 137807 }, - { 0x93DE, 137813 }, - { 0x93EE, 137819 }, - { 0x93E8, 137825 }, - { 0x9400, 137830 }, - { 0x93F8, 137837 }, - { 0x93E0, 137843 }, - { 0x93F0, 137849 }, - { 0x93E9, 137855 }, - { 0x9401, 137860 }, - { 0x93F9, 137867 }, - { 0x93E1, 137873 }, - { 0x93F1, 137879 }, - { 0x93E3, 137885 }, - { 0x93FB, 137889 }, - { 0x93F3, 137895 }, - { 0x93DB, 137900 }, - { 0x93EB, 137905 }, - { 0x93E5, 137910 }, - { 0x93FD, 137914 }, - { 0x93F5, 137920 }, - { 0x93DD, 137925 }, - { 0x93ED, 137930 }, - { 0x93E2, 137935 }, - { 0x93FA, 137939 }, - { 0x93F2, 137945 }, - { 0x93DA, 137950 }, - { 0x93EA, 137955 }, - { 0x93E4, 137960 }, - { 0x93FC, 137964 }, - { 0x93F4, 137970 }, - { 0x93DC, 137975 }, - { 0x93EC, 137980 }, - { 0x1DA8, 137985 }, - { 0x266B, 137986 }, - { 0x05A3, 137989 }, - { 0x05A2, 137994 }, - { 0x059F, 137998 }, - { 0x05FA, 138001 }, - { 0x05FF, 138004 }, - { 0x05FB, 138007 }, - { 0x05FE, 138010 }, - { 0x05FD, 138013 }, - { 0x0602, 138016 }, - { 0x05F9, 138019 }, - { 0x0601, 138022 }, - { 0x0600, 138025 }, - { 0x05FC, 138028 }, - { 0x05A0, 138031 }, - { 0x230E, 138034 }, - { 0x1D88, 138038 }, - { 0x1D67, 138041 }, - { 0x1D6C, 138044 }, - { 0x1D77, 138047 }, - { 0x1D83, 138050 }, - { 0x918C, 138053 }, - { 0x925A, 138055 }, - { 0x902A, 138057 }, - { 0x1F84, 138059 }, - { 0x58B2, 138060 }, - { 0x58B3, 138063 }, - { 0x58B4, 138066 }, - { 0x58B5, 138069 }, - { 0x58B6, 138072 }, - { 0x58B7, 138075 }, - { 0x58B8, 138078 }, - { 0x58B9, 138081 }, - { 0x58BA, 138084 }, - { 0x58BB, 138087 }, - { 0x58BC, 138090 }, - { 0x58BE, 138093 }, - { 0x58BF, 138096 }, - { 0x58C0, 138099 }, - { 0x58C1, 138102 }, - { 0x58C2, 138105 }, - { 0x58C3, 138108 }, - { 0x58C4, 138111 }, - { 0x58C5, 138114 }, - { 0x58C6, 138117 }, - { 0x58C7, 138120 }, - { 0x58C8, 138123 }, - { 0x58C9, 138126 }, - { 0x58CA, 138129 }, - { 0x58CB, 138132 }, - { 0x58CC, 138135 }, - { 0x58CD, 138138 }, - { 0x58CE, 138141 }, - { 0x58CF, 138144 }, - { 0x58D0, 138147 }, - { 0x58D1, 138150 }, - { 0x58D2, 138153 }, - { 0x58D3, 138156 }, - { 0x58D4, 138159 }, - { 0x58D5, 138162 }, - { 0x58D6, 138165 }, - { 0x58D7, 138168 }, - { 0x58D8, 138171 }, - { 0x58D9, 138174 }, - { 0x58DA, 138177 }, - { 0x58DB, 138180 }, - { 0x58DC, 138183 }, - { 0x58DD, 138186 }, - { 0x58DE, 138189 }, - { 0x58DF, 138192 }, - { 0x58E0, 138195 }, - { 0x58E1, 138198 }, - { 0x58E2, 138201 }, - { 0x58E3, 138204 }, - { 0x58E4, 138207 }, - { 0x58E5, 138210 }, - { 0x58E6, 138213 }, - { 0x58E7, 138216 }, - { 0x58E8, 138219 }, - { 0x58E9, 138222 }, - { 0x58EA, 138225 }, - { 0x58EB, 138228 }, - { 0x58EC, 138231 }, - { 0x58ED, 138234 }, - { 0x58EE, 138237 }, - { 0x58EF, 138240 }, - { 0x58F1, 138243 }, - { 0x58F2, 138246 }, - { 0x58F3, 138249 }, - { 0x58F4, 138252 }, - { 0x58F5, 138255 }, - { 0x58F6, 138258 }, - { 0x58F7, 138261 }, - { 0x58F8, 138264 }, - { 0x58F9, 138267 }, - { 0x58FA, 138270 }, - { 0x58FB, 138273 }, - { 0x58FC, 138276 }, - { 0x58FD, 138279 }, - { 0x58FE, 138282 }, - { 0x58FF, 138285 }, - { 0x5900, 138288 }, - { 0x5901, 138291 }, - { 0x5902, 138294 }, - { 0x5903, 138297 }, - { 0x5904, 138300 }, - { 0x5905, 138303 }, - { 0x5906, 138306 }, - { 0x5907, 138309 }, - { 0x5908, 138312 }, - { 0x5909, 138315 }, - { 0x590A, 138318 }, - { 0x590B, 138321 }, - { 0x590C, 138324 }, - { 0x590D, 138327 }, - { 0x590E, 138330 }, - { 0x590F, 138333 }, - { 0x5910, 138336 }, - { 0x5911, 138339 }, - { 0x5912, 138342 }, - { 0x5913, 138345 }, - { 0x5914, 138348 }, - { 0x58BD, 138351 }, - { 0x58F0, 138354 }, - { 0x91D8, 138357 }, - { 0x91D1, 138361 }, - { 0x260B, 138363 }, - { 0x261F, 138365 }, - { 0x261B, 138368 }, - { 0x261D, 138371 }, - { 0x261E, 138374 }, - { 0x261A, 138377 }, - { 0x261C, 138380 }, - { 0x22C8, 138383 }, - { 0x8FD8, 138384 }, - { 0x23D8, 138387 }, - { 0x1EBC, 138392 }, - { 0x26AA, 138396 }, - { 0x26AE, 138401 }, - { 0x26B0, 138409 }, - { 0x26AC, 138418 }, - { 0x1ECE, 138426 }, - { 0x1ECA, 138429 }, - { 0x26B2, 138433 }, - { 0x26B6, 138436 }, - { 0x26B4, 138440 }, - { 0x1EC0, 138446 }, - { 0x1F3E, 138451 }, - { 0x1EBE, 138456 }, - { 0x001E, 138460 }, - { 0x1F2E, 138462 }, - { 0x26A6, 138465 }, - { 0x26A8, 138469 }, - { 0x26BA, 138474 }, - { 0x26BC, 138479 }, - { 0x26C0, 138484 }, - { 0x26BE, 138493 }, - { 0x25A4, 138499 }, - { 0x26B8, 138503 }, - { 0x1F32, 138509 }, - { 0x26D1, 138514 }, - { 0x26D3, 138517 }, - { 0x26D5, 138521 }, - { 0x26D0, 138528 }, - { 0x91FC, 138531 }, - { 0x94C9, 138533 }, - { 0x000D, 138534 }, - { 0x2A08, 138535 }, - { 0x1E80, 138536 }, - { 0x266C, 138537 }, - { 0x2670, 138540 }, - { 0x266F, 138544 }, - { 0x2675, 138547 }, - { 0x2673, 138552 }, - { 0x2677, 138555 }, - { 0x8532, 138561 }, - { 0x8530, 138565 }, - { 0x8531, 138569 }, - { 0x861E, 138573 }, - { 0x8623, 138577 }, - { 0x861F, 138581 }, - { 0x8622, 138585 }, - { 0x8621, 138589 }, - { 0x8626, 138593 }, - { 0x861D, 138597 }, - { 0x8625, 138601 }, - { 0x8624, 138605 }, - { 0x8620, 138609 }, - { 0x852F, 138613 }, - { 0x8512, 138617 }, - { 0x8285, 138620 }, - { 0x8286, 138624 }, - { 0x8287, 138628 }, - { 0x8288, 138632 }, - { 0x8289, 138636 }, - { 0x828A, 138640 }, - { 0x828B, 138644 }, - { 0x828C, 138648 }, - { 0x828D, 138652 }, - { 0x828E, 138656 }, - { 0x828F, 138660 }, - { 0x8290, 138664 }, - { 0x8291, 138668 }, - { 0x8292, 138672 }, - { 0x8293, 138676 }, - { 0x8294, 138680 }, - { 0x8295, 138684 }, - { 0x8296, 138688 }, - { 0x8297, 138692 }, - { 0x8298, 138696 }, - { 0x8299, 138700 }, - { 0x829A, 138704 }, - { 0x829B, 138708 }, - { 0x829C, 138712 }, - { 0x829D, 138716 }, - { 0x829E, 138720 }, - { 0x851E, 138724 }, - { 0x851F, 138728 }, - { 0x8522, 138732 }, - { 0x8520, 138736 }, - { 0x8529, 138740 }, - { 0x8519, 138744 }, - { 0x8528, 138748 }, - { 0x852A, 138752 }, - { 0x8523, 138756 }, - { 0x8526, 138760 }, - { 0x8514, 138764 }, - { 0x851B, 138768 }, - { 0x8518, 138772 }, - { 0x8513, 138776 }, - { 0x8516, 138780 }, - { 0x8524, 138784 }, - { 0x8515, 138789 }, - { 0x851C, 138793 }, - { 0x851D, 138797 }, - { 0x852B, 138801 }, - { 0x8525, 138805 }, - { 0x851A, 138809 }, - { 0x861C, 138813 }, - { 0x8517, 138817 }, - { 0x8521, 138821 }, - { 0x8527, 138825 }, - { 0x852E, 138829 }, - { 0x85A6, 138833 }, - { 0x85A4, 138838 }, - { 0x85A5, 138843 }, - { 0x85A3, 138848 }, - { 0x8586, 138853 }, - { 0x82EC, 138857 }, - { 0x82ED, 138862 }, - { 0x82EE, 138867 }, - { 0x82EF, 138872 }, - { 0x82F0, 138877 }, - { 0x82F1, 138882 }, - { 0x82F2, 138887 }, - { 0x82F3, 138892 }, - { 0x82F4, 138897 }, - { 0x82F5, 138902 }, - { 0x82F6, 138907 }, - { 0x82F7, 138912 }, - { 0x82F8, 138917 }, - { 0x82F9, 138922 }, - { 0x82FA, 138927 }, - { 0x82FB, 138932 }, - { 0x82FC, 138937 }, - { 0x82FD, 138942 }, - { 0x82FE, 138947 }, - { 0x82FF, 138952 }, - { 0x8300, 138957 }, - { 0x8301, 138962 }, - { 0x8302, 138967 }, - { 0x8303, 138972 }, - { 0x8304, 138977 }, - { 0x8305, 138982 }, - { 0x8592, 138987 }, - { 0x8593, 138992 }, - { 0x8596, 138997 }, - { 0x8594, 139002 }, - { 0x859D, 139007 }, - { 0x858D, 139012 }, - { 0x859C, 139017 }, - { 0x859E, 139022 }, - { 0x8597, 139027 }, - { 0x859A, 139032 }, - { 0x8588, 139037 }, - { 0x858F, 139042 }, - { 0x858C, 139047 }, - { 0x8587, 139052 }, - { 0x858A, 139057 }, - { 0x8598, 139062 }, - { 0x8589, 139068 }, - { 0x8590, 139073 }, - { 0x8591, 139078 }, - { 0x859F, 139083 }, - { 0x8599, 139088 }, - { 0x858E, 139093 }, - { 0x858B, 139098 }, - { 0x8595, 139103 }, - { 0x859B, 139108 }, - { 0x85A2, 139113 }, - { 0x82D2, 139118 }, - { 0x82D3, 139123 }, - { 0x82D4, 139128 }, - { 0x82D5, 139133 }, - { 0x82D6, 139138 }, - { 0x82D7, 139143 }, - { 0x82D8, 139148 }, - { 0x82D9, 139153 }, - { 0x82DA, 139158 }, - { 0x82DB, 139163 }, - { 0x82DC, 139168 }, - { 0x82DD, 139173 }, - { 0x82DE, 139178 }, - { 0x82DF, 139183 }, - { 0x82E0, 139188 }, - { 0x82E1, 139193 }, - { 0x82E2, 139198 }, - { 0x82E3, 139203 }, - { 0x82E4, 139208 }, - { 0x82E5, 139213 }, - { 0x82E6, 139218 }, - { 0x82E7, 139223 }, - { 0x82E8, 139228 }, - { 0x82E9, 139233 }, - { 0x82EA, 139238 }, - { 0x82EB, 139243 }, - { 0x8578, 139248 }, - { 0x8579, 139253 }, - { 0x857C, 139258 }, - { 0x857A, 139263 }, - { 0x8583, 139268 }, - { 0x8573, 139273 }, - { 0x8582, 139278 }, - { 0x8584, 139283 }, - { 0x857D, 139288 }, - { 0x8580, 139293 }, - { 0x856E, 139298 }, - { 0x8575, 139303 }, - { 0x8572, 139308 }, - { 0x856D, 139313 }, - { 0x8570, 139318 }, - { 0x856F, 139323 }, - { 0x8576, 139328 }, - { 0x8577, 139333 }, - { 0x8585, 139338 }, - { 0x857F, 139343 }, - { 0x8574, 139348 }, - { 0x857E, 139353 }, - { 0x8571, 139359 }, - { 0x857B, 139364 }, - { 0x8581, 139369 }, - { 0x85A1, 139374 }, - { 0x85A0, 139379 }, - { 0x8349, 139384 }, - { 0x834A, 139389 }, - { 0x834B, 139394 }, - { 0x834C, 139399 }, - { 0x834D, 139404 }, - { 0x834E, 139409 }, - { 0x834F, 139414 }, - { 0x8350, 139419 }, - { 0x8351, 139424 }, - { 0x8352, 139429 }, - { 0x8353, 139434 }, - { 0x8354, 139439 }, - { 0x8355, 139444 }, - { 0x8356, 139449 }, - { 0x8357, 139454 }, - { 0x8358, 139459 }, - { 0x8359, 139464 }, - { 0x835A, 139469 }, - { 0x835B, 139474 }, - { 0x835C, 139479 }, - { 0x835D, 139484 }, - { 0x835E, 139489 }, - { 0x835F, 139494 }, - { 0x8360, 139499 }, - { 0x8361, 139504 }, - { 0x8362, 139509 }, - { 0x832F, 139514 }, - { 0x8330, 139519 }, - { 0x8331, 139524 }, - { 0x8332, 139529 }, - { 0x8333, 139534 }, - { 0x8334, 139539 }, - { 0x8335, 139544 }, - { 0x8336, 139549 }, - { 0x8337, 139554 }, - { 0x8338, 139559 }, - { 0x8339, 139564 }, - { 0x833A, 139569 }, - { 0x833B, 139574 }, - { 0x833C, 139579 }, - { 0x833D, 139584 }, - { 0x833E, 139589 }, - { 0x833F, 139594 }, - { 0x8340, 139599 }, - { 0x8341, 139604 }, - { 0x8342, 139609 }, - { 0x8343, 139614 }, - { 0x8344, 139619 }, - { 0x8345, 139624 }, - { 0x8346, 139629 }, - { 0x8347, 139634 }, - { 0x8348, 139639 }, - { 0x826B, 139644 }, - { 0x826C, 139648 }, - { 0x826D, 139652 }, - { 0x826E, 139656 }, - { 0x826F, 139660 }, - { 0x8270, 139664 }, - { 0x8271, 139668 }, - { 0x8272, 139672 }, - { 0x8273, 139676 }, - { 0x8274, 139680 }, - { 0x8275, 139684 }, - { 0x8276, 139688 }, - { 0x8277, 139692 }, - { 0x8278, 139696 }, - { 0x8279, 139700 }, - { 0x827A, 139704 }, - { 0x827B, 139708 }, - { 0x827C, 139712 }, - { 0x827D, 139716 }, - { 0x827E, 139720 }, - { 0x827F, 139724 }, - { 0x8280, 139728 }, - { 0x8281, 139732 }, - { 0x8282, 139736 }, - { 0x8283, 139740 }, - { 0x8284, 139744 }, - { 0x8504, 139748 }, - { 0x8505, 139752 }, - { 0x8508, 139756 }, - { 0x8506, 139760 }, - { 0x850F, 139764 }, - { 0x84FF, 139768 }, - { 0x850E, 139772 }, - { 0x8510, 139776 }, - { 0x8509, 139780 }, - { 0x850C, 139784 }, - { 0x84FA, 139788 }, - { 0x8501, 139792 }, - { 0x84FE, 139796 }, - { 0x84F9, 139800 }, - { 0x84FC, 139804 }, - { 0x84FB, 139808 }, - { 0x8502, 139812 }, - { 0x8503, 139816 }, - { 0x8511, 139820 }, - { 0x850B, 139824 }, - { 0x8500, 139828 }, - { 0x850A, 139832 }, - { 0x861B, 139837 }, - { 0x84FD, 139841 }, - { 0x8507, 139845 }, - { 0x850D, 139849 }, - { 0x852D, 139853 }, - { 0x83D9, 139857 }, - { 0x83DA, 139862 }, - { 0x83DB, 139867 }, - { 0x83DC, 139872 }, - { 0x83DD, 139877 }, - { 0x83DE, 139882 }, - { 0x83DF, 139887 }, - { 0x83E0, 139892 }, - { 0x83E1, 139897 }, - { 0x83E2, 139902 }, - { 0x83E3, 139907 }, - { 0x83E4, 139912 }, - { 0x83E5, 139917 }, - { 0x83E6, 139922 }, - { 0x83E7, 139927 }, - { 0x83E8, 139932 }, - { 0x83E9, 139937 }, - { 0x83EA, 139942 }, - { 0x83EB, 139947 }, - { 0x83EC, 139952 }, - { 0x83ED, 139957 }, - { 0x83EE, 139962 }, - { 0x83EF, 139967 }, - { 0x83F0, 139972 }, - { 0x83F1, 139977 }, - { 0x83F2, 139982 }, - { 0x83BF, 139987 }, - { 0x83C0, 139992 }, - { 0x83C1, 139997 }, - { 0x83C2, 140002 }, - { 0x83C3, 140007 }, - { 0x83C4, 140012 }, - { 0x83C5, 140017 }, - { 0x83C6, 140022 }, - { 0x83C7, 140027 }, - { 0x83C8, 140032 }, - { 0x83C9, 140037 }, - { 0x83CA, 140042 }, - { 0x83CB, 140047 }, - { 0x83CC, 140052 }, - { 0x83CD, 140057 }, - { 0x83CE, 140062 }, - { 0x83CF, 140067 }, - { 0x83D0, 140072 }, - { 0x83D1, 140077 }, - { 0x83D2, 140082 }, - { 0x83D3, 140087 }, - { 0x83D4, 140092 }, - { 0x83D5, 140097 }, - { 0x83D6, 140102 }, - { 0x83D7, 140107 }, - { 0x83D8, 140112 }, - { 0x852C, 140117 }, - { 0x2414, 140121 }, - { 0x2412, 140125 }, - { 0x2418, 140130 }, - { 0x2416, 140136 }, - { 0x241A, 140141 }, - { 0x2415, 140145 }, - { 0x2413, 140149 }, - { 0x2419, 140154 }, - { 0x2417, 140160 }, - { 0x241B, 140165 }, - { 0x856C, 140169 }, - { 0x856A, 140173 }, - { 0x856B, 140177 }, - { 0x8569, 140181 }, - { 0x854C, 140185 }, - { 0x82B9, 140188 }, - { 0x82BA, 140192 }, - { 0x82BB, 140196 }, - { 0x82BC, 140200 }, - { 0x82BD, 140204 }, - { 0x82BE, 140208 }, - { 0x82BF, 140212 }, - { 0x82C0, 140216 }, - { 0x82C1, 140220 }, - { 0x82C2, 140224 }, - { 0x82C3, 140228 }, - { 0x82C4, 140232 }, - { 0x82C5, 140236 }, - { 0x82C6, 140240 }, - { 0x82C7, 140244 }, - { 0x82C8, 140248 }, - { 0x82C9, 140252 }, - { 0x82CA, 140256 }, - { 0x82CB, 140260 }, - { 0x82CC, 140264 }, - { 0x82CD, 140268 }, - { 0x82CE, 140272 }, - { 0x82CF, 140276 }, - { 0x82D0, 140280 }, - { 0x82D1, 140284 }, - { 0x8558, 140288 }, - { 0x8559, 140292 }, - { 0x855C, 140296 }, - { 0x855A, 140300 }, - { 0x8563, 140304 }, - { 0x8553, 140308 }, - { 0x8562, 140312 }, - { 0x8564, 140316 }, - { 0x855D, 140320 }, - { 0x8560, 140324 }, - { 0x854E, 140328 }, - { 0x8555, 140332 }, - { 0x8552, 140336 }, - { 0x854D, 140340 }, - { 0x8550, 140344 }, - { 0x855E, 140348 }, - { 0x854F, 140353 }, - { 0x8556, 140357 }, - { 0x8557, 140361 }, - { 0x8565, 140365 }, - { 0x855F, 140369 }, - { 0x8554, 140373 }, - { 0x84F7, 140377 }, - { 0x84F8, 140382 }, - { 0x8551, 140387 }, - { 0x855B, 140391 }, - { 0x8561, 140395 }, - { 0x8568, 140399 }, - { 0x829F, 140403 }, - { 0x82A0, 140407 }, - { 0x82A1, 140411 }, - { 0x82A2, 140415 }, - { 0x82A3, 140419 }, - { 0x82A4, 140423 }, - { 0x82A5, 140427 }, - { 0x82A6, 140431 }, - { 0x82A7, 140435 }, - { 0x82A8, 140439 }, - { 0x82A9, 140443 }, - { 0x82AA, 140447 }, - { 0x82AB, 140451 }, - { 0x82AC, 140455 }, - { 0x82AD, 140459 }, - { 0x82AE, 140463 }, - { 0x82AF, 140467 }, - { 0x82B0, 140471 }, - { 0x82B1, 140475 }, - { 0x82B2, 140479 }, - { 0x82B3, 140483 }, - { 0x82B4, 140487 }, - { 0x82B5, 140491 }, - { 0x82B6, 140495 }, - { 0x82B7, 140499 }, - { 0x82B8, 140503 }, - { 0x853E, 140507 }, - { 0x853F, 140511 }, - { 0x8542, 140515 }, - { 0x8540, 140519 }, - { 0x8549, 140523 }, - { 0x8539, 140527 }, - { 0x8548, 140531 }, - { 0x854A, 140535 }, - { 0x8543, 140539 }, - { 0x8546, 140543 }, - { 0x8534, 140547 }, - { 0x853B, 140551 }, - { 0x8538, 140555 }, - { 0x8533, 140559 }, - { 0x8536, 140563 }, - { 0x8535, 140567 }, - { 0x853C, 140571 }, - { 0x853D, 140575 }, - { 0x854B, 140579 }, - { 0x8545, 140583 }, - { 0x853A, 140587 }, - { 0x8544, 140591 }, - { 0x8537, 140596 }, - { 0x8541, 140600 }, - { 0x8547, 140604 }, - { 0x8567, 140608 }, - { 0x8566, 140612 }, - { 0x23F7, 140616 }, - { 0x8318, 140619 }, - { 0x8319, 140623 }, - { 0x831A, 140627 }, - { 0x831B, 140631 }, - { 0x831C, 140635 }, - { 0x831D, 140639 }, - { 0x831E, 140643 }, - { 0x831F, 140647 }, - { 0x8320, 140651 }, - { 0x8321, 140655 }, - { 0x8322, 140659 }, - { 0x8323, 140663 }, - { 0x8324, 140667 }, - { 0x8325, 140671 }, - { 0x8326, 140675 }, - { 0x8327, 140679 }, - { 0x8328, 140683 }, - { 0x8329, 140687 }, - { 0x832A, 140691 }, - { 0x832B, 140695 }, - { 0x832C, 140699 }, - { 0x832D, 140703 }, - { 0x832E, 140707 }, - { 0x8306, 140711 }, - { 0x8307, 140715 }, - { 0x8308, 140719 }, - { 0x8309, 140723 }, - { 0x830A, 140727 }, - { 0x830B, 140731 }, - { 0x830C, 140735 }, - { 0x830D, 140739 }, - { 0x830E, 140743 }, - { 0x830F, 140747 }, - { 0x8310, 140751 }, - { 0x8311, 140755 }, - { 0x8312, 140759 }, - { 0x8313, 140763 }, - { 0x8314, 140767 }, - { 0x8315, 140771 }, - { 0x8316, 140775 }, - { 0x8317, 140779 }, - { 0x23F9, 140783 }, - { 0x8378, 140786 }, - { 0x8379, 140790 }, - { 0x837A, 140794 }, - { 0x837B, 140798 }, - { 0x837C, 140802 }, - { 0x837D, 140806 }, - { 0x837E, 140810 }, - { 0x837F, 140814 }, - { 0x8380, 140818 }, - { 0x8381, 140822 }, - { 0x8382, 140826 }, - { 0x8383, 140830 }, - { 0x8384, 140834 }, - { 0x8385, 140838 }, - { 0x8386, 140842 }, - { 0x8387, 140846 }, - { 0x8388, 140850 }, - { 0x8389, 140854 }, - { 0x838A, 140858 }, - { 0x838B, 140862 }, - { 0x838C, 140866 }, - { 0x838D, 140870 }, - { 0x838E, 140874 }, - { 0x838F, 140878 }, - { 0x8390, 140882 }, - { 0x8391, 140886 }, - { 0x8363, 140890 }, - { 0x8364, 140894 }, - { 0x8365, 140898 }, - { 0x8366, 140902 }, - { 0x8367, 140906 }, - { 0x8368, 140910 }, - { 0x8369, 140914 }, - { 0x836A, 140918 }, - { 0x836B, 140922 }, - { 0x836C, 140926 }, - { 0x836D, 140930 }, - { 0x836E, 140934 }, - { 0x836F, 140938 }, - { 0x8370, 140942 }, - { 0x8371, 140946 }, - { 0x8372, 140950 }, - { 0x8373, 140954 }, - { 0x8374, 140958 }, - { 0x8375, 140962 }, - { 0x8376, 140966 }, - { 0x8377, 140970 }, - { 0x8646, 140974 }, - { 0x864B, 140978 }, - { 0x8647, 140982 }, - { 0x864A, 140986 }, - { 0x8649, 140990 }, - { 0x864E, 140994 }, - { 0x8645, 140998 }, - { 0x864D, 141002 }, - { 0x864C, 141006 }, - { 0x8648, 141010 }, - { 0x84DD, 141014 }, - { 0x84DE, 141018 }, - { 0x84DF, 141022 }, - { 0x84E0, 141026 }, - { 0x84E1, 141030 }, - { 0x84E2, 141034 }, - { 0x84E3, 141038 }, - { 0x84E4, 141042 }, - { 0x84E5, 141046 }, - { 0x84E6, 141050 }, - { 0x84E7, 141054 }, - { 0x84E8, 141058 }, - { 0x84E9, 141062 }, - { 0x84EA, 141066 }, - { 0x84EB, 141070 }, - { 0x84EC, 141074 }, - { 0x84ED, 141078 }, - { 0x84EE, 141082 }, - { 0x84EF, 141086 }, - { 0x84F0, 141090 }, - { 0x84F1, 141094 }, - { 0x84F2, 141098 }, - { 0x84F3, 141102 }, - { 0x84F4, 141106 }, - { 0x84F5, 141110 }, - { 0x84F6, 141114 }, - { 0x84C3, 141118 }, - { 0x84C4, 141122 }, - { 0x84C5, 141126 }, - { 0x84C6, 141130 }, - { 0x84C7, 141134 }, - { 0x84C8, 141138 }, - { 0x84C9, 141142 }, - { 0x84CA, 141146 }, - { 0x84CB, 141150 }, - { 0x84CC, 141154 }, - { 0x84CD, 141158 }, - { 0x84CE, 141162 }, - { 0x84CF, 141166 }, - { 0x84D0, 141170 }, - { 0x84D1, 141174 }, - { 0x84D2, 141178 }, - { 0x84D3, 141182 }, - { 0x84D4, 141186 }, - { 0x84D5, 141190 }, - { 0x84D6, 141194 }, - { 0x84D7, 141198 }, - { 0x84D8, 141202 }, - { 0x84D9, 141206 }, - { 0x84DA, 141210 }, - { 0x84DB, 141214 }, - { 0x84DC, 141218 }, - { 0x85E0, 141222 }, - { 0x85DE, 141227 }, - { 0x85DF, 141232 }, - { 0x863C, 141237 }, - { 0x8641, 141242 }, - { 0x863D, 141247 }, - { 0x8640, 141252 }, - { 0x863F, 141257 }, - { 0x8644, 141262 }, - { 0x863B, 141267 }, - { 0x8643, 141272 }, - { 0x8642, 141277 }, - { 0x863E, 141282 }, - { 0x85DD, 141287 }, - { 0x85C0, 141292 }, - { 0x8441, 141296 }, - { 0x8442, 141301 }, - { 0x8443, 141306 }, - { 0x8444, 141311 }, - { 0x8445, 141316 }, - { 0x8446, 141321 }, - { 0x8447, 141326 }, - { 0x8448, 141331 }, - { 0x8449, 141336 }, - { 0x844A, 141341 }, - { 0x844B, 141346 }, - { 0x844C, 141351 }, - { 0x844D, 141356 }, - { 0x844E, 141361 }, - { 0x844F, 141366 }, - { 0x8450, 141371 }, - { 0x8451, 141376 }, - { 0x8452, 141381 }, - { 0x8453, 141386 }, - { 0x8454, 141391 }, - { 0x8455, 141396 }, - { 0x8456, 141401 }, - { 0x8457, 141406 }, - { 0x8458, 141411 }, - { 0x8459, 141416 }, - { 0x845A, 141421 }, - { 0x85CC, 141426 }, - { 0x85CD, 141431 }, - { 0x85D0, 141436 }, - { 0x85CE, 141441 }, - { 0x85D7, 141446 }, - { 0x85C7, 141451 }, - { 0x85D6, 141456 }, - { 0x85D8, 141461 }, - { 0x85D1, 141466 }, - { 0x85D4, 141471 }, - { 0x85C2, 141476 }, - { 0x85C9, 141481 }, - { 0x85C6, 141486 }, - { 0x85C1, 141491 }, - { 0x85C4, 141496 }, - { 0x85D2, 141501 }, - { 0x85C3, 141507 }, - { 0x85CA, 141512 }, - { 0x85CB, 141517 }, - { 0x85D9, 141522 }, - { 0x85D3, 141527 }, - { 0x85C8, 141532 }, - { 0x85C5, 141537 }, - { 0x85CF, 141542 }, - { 0x85D5, 141547 }, - { 0x85DC, 141552 }, - { 0x861A, 141557 }, - { 0x8618, 141563 }, - { 0x8619, 141569 }, - { 0x8617, 141575 }, - { 0x85FA, 141581 }, - { 0x84A9, 141586 }, - { 0x84AA, 141592 }, - { 0x84AB, 141598 }, - { 0x84AC, 141604 }, - { 0x84AD, 141610 }, - { 0x84AE, 141616 }, - { 0x84AF, 141622 }, - { 0x84B0, 141628 }, - { 0x84B1, 141634 }, - { 0x84B2, 141640 }, - { 0x84B3, 141646 }, - { 0x84B4, 141652 }, - { 0x84B5, 141658 }, - { 0x84B6, 141664 }, - { 0x84B7, 141670 }, - { 0x84B8, 141676 }, - { 0x84B9, 141682 }, - { 0x84BA, 141688 }, - { 0x84BB, 141694 }, - { 0x84BC, 141700 }, - { 0x84BD, 141706 }, - { 0x84BE, 141712 }, - { 0x84BF, 141718 }, - { 0x84C0, 141724 }, - { 0x84C1, 141730 }, - { 0x84C2, 141736 }, - { 0x8606, 141742 }, - { 0x8607, 141748 }, - { 0x860A, 141754 }, - { 0x8608, 141760 }, - { 0x8611, 141766 }, - { 0x8601, 141772 }, - { 0x8610, 141778 }, - { 0x8612, 141784 }, - { 0x860B, 141790 }, - { 0x860E, 141796 }, - { 0x85FC, 141802 }, - { 0x8603, 141808 }, - { 0x8600, 141814 }, - { 0x85FB, 141820 }, - { 0x85FE, 141826 }, - { 0x860C, 141832 }, - { 0x85FD, 141839 }, - { 0x8604, 141845 }, - { 0x8605, 141851 }, - { 0x8613, 141857 }, - { 0x860D, 141863 }, - { 0x8602, 141869 }, - { 0x85FF, 141875 }, - { 0x8609, 141881 }, - { 0x860F, 141887 }, - { 0x8616, 141893 }, - { 0x848F, 141899 }, - { 0x8490, 141905 }, - { 0x8491, 141911 }, - { 0x8492, 141917 }, - { 0x8493, 141923 }, - { 0x8494, 141929 }, - { 0x8495, 141935 }, - { 0x8496, 141941 }, - { 0x8497, 141947 }, - { 0x8498, 141953 }, - { 0x8499, 141959 }, - { 0x849A, 141965 }, - { 0x849B, 141971 }, - { 0x849C, 141977 }, - { 0x849D, 141983 }, - { 0x849E, 141989 }, - { 0x849F, 141995 }, - { 0x84A0, 142001 }, - { 0x84A1, 142007 }, - { 0x84A2, 142013 }, - { 0x84A3, 142019 }, - { 0x84A4, 142025 }, - { 0x84A5, 142031 }, - { 0x84A6, 142037 }, - { 0x84A7, 142043 }, - { 0x84A8, 142049 }, - { 0x85EC, 142055 }, - { 0x85ED, 142061 }, - { 0x85F0, 142067 }, - { 0x85EE, 142073 }, - { 0x85F7, 142079 }, - { 0x85E7, 142085 }, - { 0x85F6, 142091 }, - { 0x85F8, 142097 }, - { 0x85F1, 142103 }, - { 0x85F4, 142109 }, - { 0x85E2, 142115 }, - { 0x85E9, 142121 }, - { 0x85E6, 142127 }, - { 0x85E1, 142133 }, - { 0x85E4, 142139 }, - { 0x85E3, 142145 }, - { 0x85EA, 142151 }, - { 0x85EB, 142157 }, - { 0x85F9, 142163 }, - { 0x85F3, 142169 }, - { 0x85E8, 142175 }, - { 0x85F2, 142181 }, - { 0x85E5, 142188 }, - { 0x85EF, 142194 }, - { 0x85F5, 142200 }, - { 0x8615, 142206 }, - { 0x8614, 142212 }, - { 0x8427, 142218 }, - { 0x8428, 142223 }, - { 0x8429, 142228 }, - { 0x842A, 142233 }, - { 0x842B, 142238 }, - { 0x842C, 142243 }, - { 0x842D, 142248 }, - { 0x842E, 142253 }, - { 0x842F, 142258 }, - { 0x8430, 142263 }, - { 0x8431, 142268 }, - { 0x8432, 142273 }, - { 0x8433, 142278 }, - { 0x8434, 142283 }, - { 0x8435, 142288 }, - { 0x8436, 142293 }, - { 0x8437, 142298 }, - { 0x8438, 142303 }, - { 0x8439, 142308 }, - { 0x843A, 142313 }, - { 0x843B, 142318 }, - { 0x843C, 142323 }, - { 0x843D, 142328 }, - { 0x843E, 142333 }, - { 0x843F, 142338 }, - { 0x8440, 142343 }, - { 0x85B2, 142348 }, - { 0x85B3, 142353 }, - { 0x85B6, 142358 }, - { 0x85B4, 142363 }, - { 0x85BD, 142368 }, - { 0x85AD, 142373 }, - { 0x85BC, 142378 }, - { 0x85BE, 142383 }, - { 0x85B7, 142388 }, - { 0x85BA, 142393 }, - { 0x85A8, 142398 }, - { 0x85AF, 142403 }, - { 0x85AC, 142408 }, - { 0x85A7, 142413 }, - { 0x85AA, 142418 }, - { 0x85A9, 142423 }, - { 0x85B0, 142428 }, - { 0x85B1, 142433 }, - { 0x85BF, 142438 }, - { 0x85B9, 142443 }, - { 0x85AE, 142448 }, - { 0x85B8, 142453 }, - { 0x85AB, 142459 }, - { 0x85B5, 142464 }, - { 0x85BB, 142469 }, - { 0x85DB, 142474 }, - { 0x85DA, 142479 }, - { 0x8632, 142484 }, - { 0x8637, 142488 }, - { 0x8633, 142492 }, - { 0x8636, 142496 }, - { 0x8635, 142500 }, - { 0x863A, 142504 }, - { 0x8631, 142508 }, - { 0x8639, 142512 }, - { 0x8638, 142516 }, - { 0x8634, 142520 }, - { 0x840D, 142524 }, - { 0x840E, 142528 }, - { 0x840F, 142532 }, - { 0x8410, 142536 }, - { 0x8411, 142540 }, - { 0x8412, 142544 }, - { 0x8413, 142548 }, - { 0x8414, 142552 }, - { 0x8415, 142556 }, - { 0x8416, 142560 }, - { 0x8417, 142564 }, - { 0x8418, 142568 }, - { 0x8419, 142572 }, - { 0x841A, 142576 }, - { 0x841B, 142580 }, - { 0x841C, 142584 }, - { 0x841D, 142588 }, - { 0x841E, 142592 }, - { 0x841F, 142596 }, - { 0x8420, 142600 }, - { 0x8421, 142604 }, - { 0x8422, 142608 }, - { 0x8423, 142612 }, - { 0x8424, 142616 }, - { 0x8425, 142620 }, - { 0x8426, 142624 }, - { 0x8475, 142628 }, - { 0x8476, 142633 }, - { 0x8477, 142638 }, - { 0x8478, 142643 }, - { 0x8479, 142648 }, - { 0x847A, 142653 }, - { 0x847B, 142658 }, - { 0x847C, 142663 }, - { 0x847D, 142668 }, - { 0x847E, 142673 }, - { 0x847F, 142678 }, - { 0x8480, 142683 }, - { 0x8481, 142688 }, - { 0x8482, 142693 }, - { 0x8483, 142698 }, - { 0x8484, 142703 }, - { 0x8485, 142708 }, - { 0x8486, 142713 }, - { 0x8487, 142718 }, - { 0x8488, 142723 }, - { 0x8489, 142728 }, - { 0x848A, 142733 }, - { 0x848B, 142738 }, - { 0x848C, 142743 }, - { 0x848D, 142748 }, - { 0x848E, 142753 }, - { 0x845B, 142758 }, - { 0x845C, 142763 }, - { 0x845D, 142768 }, - { 0x845E, 142773 }, - { 0x845F, 142778 }, - { 0x8460, 142783 }, - { 0x8461, 142788 }, - { 0x8462, 142793 }, - { 0x8463, 142798 }, - { 0x8464, 142803 }, - { 0x8465, 142808 }, - { 0x8466, 142813 }, - { 0x8467, 142818 }, - { 0x8468, 142823 }, - { 0x8469, 142828 }, - { 0x846A, 142833 }, - { 0x846B, 142838 }, - { 0x846C, 142843 }, - { 0x846D, 142848 }, - { 0x846E, 142853 }, - { 0x846F, 142858 }, - { 0x8470, 142863 }, - { 0x8471, 142868 }, - { 0x8472, 142873 }, - { 0x8473, 142878 }, - { 0x8474, 142883 }, - { 0x83F3, 142888 }, - { 0x83F4, 142892 }, - { 0x83F5, 142896 }, - { 0x83F6, 142900 }, - { 0x83F7, 142904 }, - { 0x83F8, 142908 }, - { 0x83F9, 142912 }, - { 0x83FA, 142916 }, - { 0x83FB, 142920 }, - { 0x83FC, 142924 }, - { 0x83FD, 142928 }, - { 0x83FE, 142932 }, - { 0x83FF, 142936 }, - { 0x8400, 142940 }, - { 0x8401, 142944 }, - { 0x8402, 142948 }, - { 0x8403, 142952 }, - { 0x8404, 142956 }, - { 0x8405, 142960 }, - { 0x8406, 142964 }, - { 0x8407, 142968 }, - { 0x8408, 142972 }, - { 0x8409, 142976 }, - { 0x840A, 142980 }, - { 0x840B, 142984 }, - { 0x840C, 142988 }, - { 0x8628, 142992 }, - { 0x862D, 142996 }, - { 0x8629, 143000 }, - { 0x862C, 143004 }, - { 0x862B, 143008 }, - { 0x8630, 143012 }, - { 0x8627, 143016 }, - { 0x862F, 143020 }, - { 0x862E, 143024 }, - { 0x862A, 143028 }, - { 0x83A5, 143032 }, - { 0x83A6, 143036 }, - { 0x83A7, 143040 }, - { 0x83A8, 143044 }, - { 0x83A9, 143048 }, - { 0x83AA, 143052 }, - { 0x83AB, 143056 }, - { 0x83AC, 143060 }, - { 0x83AD, 143064 }, - { 0x83AE, 143068 }, - { 0x83AF, 143072 }, - { 0x83B0, 143076 }, - { 0x83B1, 143080 }, - { 0x83B2, 143084 }, - { 0x83B3, 143088 }, - { 0x83B4, 143092 }, - { 0x83B5, 143096 }, - { 0x83B6, 143100 }, - { 0x83B7, 143104 }, - { 0x83B8, 143108 }, - { 0x83B9, 143112 }, - { 0x83BA, 143116 }, - { 0x83BB, 143120 }, - { 0x83BC, 143124 }, - { 0x83BD, 143128 }, - { 0x83BE, 143132 }, - { 0x8392, 143136 }, - { 0x8393, 143140 }, - { 0x8394, 143144 }, - { 0x8395, 143148 }, - { 0x8396, 143152 }, - { 0x8397, 143156 }, - { 0x8398, 143160 }, - { 0x8399, 143164 }, - { 0x839A, 143168 }, - { 0x839B, 143172 }, - { 0x839C, 143176 }, - { 0x839D, 143180 }, - { 0x839E, 143184 }, - { 0x839F, 143188 }, - { 0x83A0, 143192 }, - { 0x83A1, 143196 }, - { 0x83A2, 143200 }, - { 0x83A3, 143204 }, - { 0x83A4, 143208 }, - { 0x1C91, 143212 }, - { 0x1D79, 143214 }, - { 0x3E34, 143216 }, - { 0x3E35, 143222 }, - { 0x3E36, 143228 }, - { 0x3E33, 143234 }, - { 0x3E42, 143241 }, - { 0x3E3E, 143248 }, - { 0x3E3A, 143256 }, - { 0x3E46, 143263 }, - { 0x3E20, 143271 }, - { 0x3E44, 143279 }, - { 0x3E40, 143286 }, - { 0x3E4A, 143294 }, - { 0x3E3C, 143301 }, - { 0x3E38, 143309 }, - { 0x3E37, 143315 }, - { 0x3E1C, 143322 }, - { 0x3E19, 143327 }, - { 0x3E43, 143332 }, - { 0x3E3F, 143339 }, - { 0x3E3B, 143347 }, - { 0x3E47, 143354 }, - { 0x3E21, 143362 }, - { 0x3E21, 143370 }, - { 0x3E45, 143378 }, - { 0x3E41, 143385 }, - { 0x3E4B, 143393 }, - { 0x3E3D, 143400 }, - { 0x3E39, 143408 }, - { 0x3E1F, 143414 }, - { 0x3E1D, 143420 }, - { 0x3E22, 143425 }, - { 0x3E1E, 143431 }, - { 0x3E1B, 143437 }, - { 0x3E1A, 143444 }, - { 0x1E74, 143450 }, - { 0x924C, 143452 }, - { 0x7CDA, 143454 }, - { 0x7CDC, 143456 }, - { 0x944A, 143461 }, - { 0x7CB9, 143463 }, - { 0x7CBD, 143469 }, - { 0x0DAA, 143475 }, - { 0x0DAC, 143478 }, - { 0x053E, 143483 }, - { 0x7C90, 143487 }, - { 0x2311, 143489 }, - { 0x23D5, 143492 }, - { 0x2620, 143496 }, - { 0x2A32, 143497 }, - { 0x203B, 143500 }, - { 0x94E7, 143501 }, - { 0x1C84, 143502 }, - { 0x2234, 143504 }, - { 0x23E8, 143505 }, - { 0x943E, 143508 }, - { 0x1E0D, 143510 }, - { 0x1E11, 143514 }, - { 0x256C, 143518 }, - { 0x241E, 143522 }, - { 0x1E8A, 143526 }, - { 0x90B7, 143529 }, - { 0x263D, 143536 }, - { 0x27B9, 143538 }, - { 0x27B8, 143543 }, - { 0x279B, 143548 }, - { 0x27B6, 143553 }, - { 0x27B7, 143558 }, - { 0x1E9D, 143563 }, - { 0x269C, 143569 }, - { 0x1E9C, 143574 }, - { 0x1EA9, 143577 }, - { 0x1FD9, 143584 }, - { 0x1D9B, 143587 }, - { 0x1D97, 143590 }, - { 0x1D98, 143593 }, - { 0x1DA1, 143596 }, - { 0x1DA2, 143600 }, - { 0x1DA3, 143604 }, - { 0x1DA4, 143608 }, - { 0x1DA0, 143612 }, - { 0x1D5D, 143616 }, - { 0x1D68, 143619 }, - { 0x1D70, 143622 }, - { 0x1D74, 143625 }, - { 0x1D75, 143628 }, - { 0x1D78, 143631 }, - { 0x1D7F, 143634 }, - { 0x1D9A, 143637 }, - { 0x1D99, 143640 }, - { 0x90EE, 143643 }, - { 0x7E3D, 143646 }, - { 0x7CAF, 143648 }, - { 0x90F0, 143650 }, - { 0x7C4B, 143654 }, - { 0x7CAA, 143657 }, - { 0x7CC2, 143660 }, - { 0x7CE1, 143663 }, - { 0x7CA0, 143666 }, - { 0x7E39, 143669 }, - { 0x2614, 143671 }, - { 0x2615, 143677 }, - { 0x1D19, 143683 }, - { 0x1EA8, 143685 }, - { 0x1EA5, 143688 }, - { 0x2828, 143691 }, - { 0x4874, 143694 }, - { 0x487F, 143698 }, - { 0x487D, 143702 }, - { 0x4882, 143706 }, - { 0x4871, 143710 }, - { 0x4877, 143714 }, - { 0x487A, 143718 }, - { 0x4881, 143722 }, - { 0x4878, 143726 }, - { 0x4879, 143730 }, - { 0x4870, 143734 }, - { 0x4872, 143738 }, - { 0x4880, 143742 }, - { 0x4876, 143746 }, - { 0x4873, 143750 }, - { 0x487B, 143754 }, - { 0x487E, 143758 }, - { 0x487C, 143762 }, - { 0x4875, 143766 }, - { 0x4883, 143770 }, - { 0x4889, 143774 }, - { 0x488A, 143779 }, - { 0x4887, 143784 }, - { 0x4884, 143788 }, - { 0x4886, 143792 }, - { 0x4885, 143796 }, - { 0x4888, 143800 }, - { 0x4856, 143804 }, - { 0x4862, 143808 }, - { 0x485E, 143812 }, - { 0x485F, 143816 }, - { 0x4867, 143820 }, - { 0x4857, 143824 }, - { 0x4861, 143828 }, - { 0x4853, 143832 }, - { 0x4859, 143836 }, - { 0x485C, 143840 }, - { 0x4864, 143844 }, - { 0x4865, 143848 }, - { 0x4866, 143852 }, - { 0x485A, 143856 }, - { 0x485B, 143860 }, - { 0x4852, 143864 }, - { 0x4854, 143868 }, - { 0x4863, 143872 }, - { 0x4858, 143876 }, - { 0x4855, 143880 }, - { 0x485D, 143884 }, - { 0x4860, 143888 }, - { 0x4868, 143892 }, - { 0x486E, 143896 }, - { 0x486F, 143901 }, - { 0x486C, 143906 }, - { 0x4869, 143910 }, - { 0x486B, 143914 }, - { 0x486A, 143918 }, - { 0x486D, 143922 }, - { 0x7CE5, 143926 }, - { 0x1F80, 143928 }, - { 0x7C55, 143931 }, - { 0x7CAC, 143933 }, - { 0x7C49, 143935 }, - { 0x7CA7, 143938 }, - { 0x2628, 143941 }, - { 0x006A, 143945 }, - { 0x7CBF, 143950 }, - { 0x7CDE, 143953 }, - { 0x7C9D, 143956 }, - { 0x7CE7, 143959 }, - { 0x7CE9, 143962 }, - { 0x7E3A, 143966 }, - { 0x90C0, 143968 }, - { 0x1C8E, 143971 }, - { 0x1CE5, 143973 }, - { 0x1CAD, 143975 }, - { 0x1CAA, 143977 }, - { 0x1E6A, 143979 }, - { 0x23EA, 143981 }, - { 0x20A0, 143984 }, - { 0x20A5, 143987 }, - { 0x20A1, 143990 }, - { 0x20A4, 143993 }, - { 0x20A3, 143996 }, - { 0x20A8, 143999 }, - { 0x20A7, 144002 }, - { 0x20A6, 144005 }, - { 0x20A2, 144008 }, - { 0x20C8, 144011 }, - { 0x20C9, 144016 }, - { 0x20CA, 144021 }, - { 0x20CB, 144026 }, - { 0x20CC, 144031 }, - { 0x20CD, 144036 }, - { 0x20CE, 144041 }, - { 0x20CF, 144046 }, - { 0x20D0, 144051 }, - { 0x20D1, 144056 }, - { 0x20D2, 144061 }, - { 0x20D3, 144066 }, - { 0x20D4, 144071 }, - { 0x20D5, 144076 }, - { 0x20D6, 144081 }, - { 0x20D7, 144086 }, - { 0x20D8, 144091 }, - { 0x20D9, 144096 }, - { 0x20DA, 144101 }, - { 0x20DB, 144106 }, - { 0x20DC, 144111 }, - { 0x20DD, 144116 }, - { 0x20DE, 144121 }, - { 0x20DF, 144126 }, - { 0x20E0, 144131 }, - { 0x20E1, 144136 }, - { 0x8DBB, 144141 }, - { 0x8DBC, 144146 }, - { 0x8DBD, 144151 }, - { 0x8DBE, 144156 }, - { 0x8DBF, 144161 }, - { 0x8DC0, 144166 }, - { 0x8DC1, 144171 }, - { 0x8DC2, 144176 }, - { 0x8DC3, 144181 }, - { 0x8DC4, 144186 }, - { 0x8DC5, 144191 }, - { 0x8DC6, 144196 }, - { 0x8DC7, 144201 }, - { 0x8DC8, 144206 }, - { 0x8DC9, 144211 }, - { 0x8DCA, 144216 }, - { 0x8DCB, 144221 }, - { 0x8DCC, 144226 }, - { 0x8DCD, 144231 }, - { 0x8DCE, 144236 }, - { 0x8DCF, 144241 }, - { 0x8DD0, 144246 }, - { 0x8DD1, 144251 }, - { 0x8DD2, 144256 }, - { 0x8DD3, 144261 }, - { 0x8DD4, 144266 }, - { 0x2DA0, 144271 }, - { 0x2DAE, 144274 }, - { 0x2DA2, 144278 }, - { 0x2DB0, 144281 }, - { 0x2DB6, 144285 }, - { 0x2DA7, 144289 }, - { 0x2DB5, 144292 }, - { 0x2DA1, 144296 }, - { 0x2DAF, 144299 }, - { 0x2D9E, 144303 }, - { 0x2DAC, 144306 }, - { 0x2D9B, 144310 }, - { 0x2DA9, 144313 }, - { 0x2D9F, 144317 }, - { 0x2DAD, 144320 }, - { 0x2D9D, 144324 }, - { 0x2DAB, 144327 }, - { 0x2D9A, 144331 }, - { 0x2DA8, 144334 }, - { 0x2D9C, 144338 }, - { 0x2DAA, 144341 }, - { 0x2DA3, 144345 }, - { 0x2DB1, 144348 }, - { 0x2DA4, 144352 }, - { 0x2DB2, 144355 }, - { 0x2DA6, 144359 }, - { 0x2DB4, 144362 }, - { 0x2DA5, 144366 }, - { 0x2DB3, 144369 }, - { 0x2DB8, 144373 }, - { 0x2DB7, 144378 }, - { 0x20A9, 144382 }, - { 0x20AA, 144385 }, - { 0x20AB, 144388 }, - { 0x20B3, 144391 }, - { 0x20AE, 144394 }, - { 0x20AF, 144397 }, - { 0x20B1, 144400 }, - { 0x20AD, 144403 }, - { 0x20B2, 144406 }, - { 0x20AC, 144409 }, - { 0x20B0, 144412 }, - { 0x2DB9, 144415 }, - { 0x2DBE, 144418 }, - { 0x2DC9, 144421 }, - { 0x2DC2, 144424 }, - { 0x2DBA, 144427 }, - { 0x2DD3, 144430 }, - { 0x2DC4, 144433 }, - { 0x2DBD, 144436 }, - { 0x2DBC, 144439 }, - { 0x2DCB, 144442 }, - { 0x2DC3, 144445 }, - { 0x2DCD, 144448 }, - { 0x2DC1, 144451 }, - { 0x2DDA, 144454 }, - { 0x2DDB, 144457 }, - { 0x2DC6, 144460 }, - { 0x2DC8, 144463 }, - { 0x2DC0, 144466 }, - { 0x2DD1, 144469 }, - { 0x2DC7, 144472 }, - { 0x2DDC, 144475 }, - { 0x2DBF, 144478 }, - { 0x2DCA, 144481 }, - { 0x2DD4, 144484 }, - { 0x2DBB, 144487 }, - { 0x2DC5, 144490 }, - { 0x2DCC, 144493 }, - { 0x2DCE, 144496 }, - { 0x2DD8, 144499 }, - { 0x2DD9, 144502 }, - { 0x2DD7, 144505 }, - { 0x2DCF, 144508 }, - { 0x2DD2, 144511 }, - { 0x2DD5, 144514 }, - { 0x2DD6, 144517 }, - { 0x2DD0, 144520 }, - { 0x23EE, 144523 }, - { 0x270D, 144524 }, - { 0x1C8F, 144527 }, - { 0x1CE6, 144529 }, - { 0x1CAE, 144531 }, - { 0x1CAB, 144533 }, - { 0x91FD, 144535 }, - { 0x2613, 144537 }, - { 0x4DC6, 144538 }, - { 0x4DD2, 144542 }, - { 0x4DCF, 144546 }, - { 0x4DD3, 144549 }, - { 0x4DC7, 144553 }, - { 0x4DCB, 144557 }, - { 0x4DCA, 144561 }, - { 0x4DC9, 144564 }, - { 0x4DC8, 144567 }, - { 0x4DB8, 144570 }, - { 0x4DD0, 144573 }, - { 0x4DCD, 144575 }, - { 0x4DD4, 144577 }, - { 0x4DD5, 144581 }, - { 0x4DBA, 144585 }, - { 0x4DBC, 144589 }, - { 0x4DB9, 144593 }, - { 0x4DC3, 144597 }, - { 0x4DC5, 144601 }, - { 0x4DC2, 144605 }, - { 0x4DBB, 144609 }, - { 0x4DC4, 144613 }, - { 0x4DBD, 144617 }, - { 0x4DC0, 144621 }, - { 0x4DBE, 144626 }, - { 0x4DC1, 144631 }, - { 0x4DBF, 144636 }, - { 0x4DD1, 144641 }, - { 0x4D86, 144644 }, - { 0x4D88, 144647 }, - { 0x4D8A, 144650 }, - { 0x4D87, 144653 }, - { 0x4D91, 144656 }, - { 0x4D93, 144659 }, - { 0x4DAA, 144662 }, - { 0x4D99, 144665 }, - { 0x4DA5, 144668 }, - { 0x4D90, 144671 }, - { 0x4D96, 144674 }, - { 0x4DB4, 144677 }, - { 0x4D89, 144680 }, - { 0x4D9B, 144683 }, - { 0x4D94, 144686 }, - { 0x4DAF, 144689 }, - { 0x4DAC, 144692 }, - { 0x4DA7, 144695 }, - { 0x4D92, 144698 }, - { 0x4DA8, 144701 }, - { 0x4DAE, 144704 }, - { 0x4DB3, 144707 }, - { 0x4DA3, 144710 }, - { 0x4D8B, 144713 }, - { 0x4DB0, 144716 }, - { 0x4DAD, 144719 }, - { 0x4DAB, 144722 }, - { 0x4D9A, 144725 }, - { 0x4DA0, 144728 }, - { 0x4DA6, 144731 }, - { 0x4D97, 144734 }, - { 0x4D9C, 144737 }, - { 0x4D95, 144740 }, - { 0x4DB5, 144743 }, - { 0x4D98, 144746 }, - { 0x4DA2, 144749 }, - { 0x4D9D, 144752 }, - { 0x4DA9, 144755 }, - { 0x4DB6, 144758 }, - { 0x4DB1, 144761 }, - { 0x4DB2, 144764 }, - { 0x4DA4, 144767 }, - { 0x4D9E, 144770 }, - { 0x4DA1, 144773 }, - { 0x4DB7, 144776 }, - { 0x4D9F, 144779 }, - { 0x4D8E, 144782 }, - { 0x4D8C, 144786 }, - { 0x4D8F, 144790 }, - { 0x4D8D, 144794 }, - { 0x4DCC, 144798 }, - { 0x4DCE, 144800 }, - { 0x90AF, 144803 }, - { 0x1E9A, 144804 }, - { 0x2375, 144807 }, - { 0x945F, 144809 }, - { 0x91C4, 144810 }, - { 0x95C2, 144812 }, - { 0x8F36, 144814 }, - { 0x2341, 144815 }, - { 0x0096, 144817 }, - { 0x2660, 144819 }, - { 0x2661, 144825 }, - { 0x2663, 144831 }, - { 0x2667, 144836 }, - { 0x265C, 144840 }, - { 0x265D, 144845 }, - { 0x7CE6, 144849 }, - { 0x1F81, 144851 }, - { 0x7C56, 144854 }, - { 0x7CAE, 144856 }, - { 0x7C4A, 144858 }, - { 0x7CA9, 144861 }, - { 0x2629, 144864 }, - { 0x007A, 144868 }, - { 0x7CC1, 144873 }, - { 0x7CE0, 144876 }, - { 0x7C9F, 144879 }, - { 0x7CE8, 144882 }, - { 0x7CEA, 144885 }, - { 0x7C48, 144889 }, - { 0x90C1, 144891 }, - { 0x22E8, 144894 }, - { 0x23E2, 144895 }, - { 0x23E0, 144899 }, - { 0x23E1, 144903 }, - { 0x23E6, 144906 }, - { 0x2367, 144909 }, - { 0x23C9, 144911 }, - { 0x23DF, 144914 }, - { 0x96B1, 144917 }, - { 0x9030, 144919 }, - { 0x2C4A, 144921 }, - { 0x2C45, 144924 }, - { 0x2CA6, 144928 }, - { 0x2C46, 144932 }, - { 0x1FEB, 144936 }, - { 0x9299, 144938 }, - { 0x22A9, 144940 }, - { 0x1FE6, 144943 }, - { 0x1FE7, 144946 }, - { 0x1FE9, 144949 }, - { 0x1FE8, 144951 }, -}; -static const struct { uint16_t index; uint32_t name:24; } ATTRIBUTE_PACKED unicode_index_to_name[38748] = { - { 0x0000, 41626 }, - { 0x0001, 133203 }, - { 0x0002, 127653 }, - { 0x0003, 63873 }, - { 0x0004, 54346 }, - { 0x0005, 78109 }, - { 0x0006, 112612 }, - { 0x0007, 129669 }, - { 0x0008, 15067 }, - { 0x0009, 40709 }, - { 0x000A, 83389 }, - { 0x000B, 16607 }, - { 0x000C, 22500 }, - { 0x000D, 138534 }, - { 0x000E, 14150 }, - { 0x000F, 80360 }, - { 0x0010, 22611 }, - { 0x0011, 22557 }, - { 0x0012, 22575 }, - { 0x0013, 22638 }, - { 0x0014, 22593 }, - { 0x0015, 22584 }, - { 0x0016, 22566 }, - { 0x0017, 22629 }, - { 0x0018, 22620 }, - { 0x0019, 22602 }, - { 0x001A, 22494 }, - { 0x001B, 127952 }, - { 0x001C, 126198 }, - { 0x001D, 54856 }, - { 0x001E, 138460 }, - { 0x001F, 110366 }, - { 0x0020, 129774 }, - { 0x0021, 33380 }, - { 0x0022, 33603 }, - { 0x0023, 33652 }, - { 0x0024, 33720 }, - { 0x0025, 33808 }, - { 0x0026, 33993 }, - { 0x0027, 34016 }, - { 0x0028, 34082 }, - { 0x0029, 34149 }, - { 0x002A, 34263 }, - { 0x002B, 34285 }, - { 0x002C, 34362 }, - { 0x002D, 34468 }, - { 0x002E, 34498 }, - { 0x002F, 34596 }, - { 0x0030, 34886 }, - { 0x0031, 34936 }, - { 0x0032, 34955 }, - { 0x0033, 35045 }, - { 0x0034, 35157 }, - { 0x0035, 35234 }, - { 0x0036, 35462 }, - { 0x0037, 35492 }, - { 0x0038, 35540 }, - { 0x0039, 35557 }, - { 0x003A, 35636 }, - { 0x003B, 14952 }, - { 0x003C, 78657 }, - { 0x003D, 40581 }, - { 0x003E, 129772 }, - { 0x003F, 6941 }, - { 0x0040, 23624 }, - { 0x0041, 28799 }, - { 0x0042, 29042 }, - { 0x0043, 29105 }, - { 0x0044, 29186 }, - { 0x0045, 29298 }, - { 0x0046, 29502 }, - { 0x0047, 29539 }, - { 0x0048, 29612 }, - { 0x0049, 29693 }, - { 0x004A, 29816 }, - { 0x004B, 29844 }, - { 0x004C, 29928 }, - { 0x004D, 30101 }, - { 0x004E, 30151 }, - { 0x004F, 30289 }, - { 0x0050, 30587 }, - { 0x0051, 30651 }, - { 0x0052, 30683 }, - { 0x0053, 30838 }, - { 0x0054, 30978 }, - { 0x0055, 31098 }, - { 0x0056, 31357 }, - { 0x0057, 31407 }, - { 0x0058, 31462 }, - { 0x0059, 31524 }, - { 0x005A, 31618 }, - { 0x005B, 14761 }, - { 0x005C, 111363 }, - { 0x005D, 40455 }, - { 0x005E, 42383 }, - { 0x005F, 109296 }, - { 0x0060, 105548 }, - { 0x0061, 13525 }, - { 0x0062, 40268 }, - { 0x0063, 87648 }, - { 0x0064, 13189 }, - { 0x0065, 52961 }, - { 0x0066, 78762 }, - { 0x0067, 124072 }, - { 0x0068, 117875 }, - { 0x0069, 103454 }, - { 0x006A, 143945 }, - { 0x006B, 8006 }, - { 0x006C, 16832 }, - { 0x006D, 132219 }, - { 0x006E, 63354 }, - { 0x006F, 54291 }, - { 0x0070, 132205 }, - { 0x0071, 137669 }, - { 0x0072, 137704 }, - { 0x0073, 17573 }, - { 0x0074, 38416 }, - { 0x0075, 78111 }, - { 0x0076, 63804 }, - { 0x0077, 71179 }, - { 0x0078, 137665 }, - { 0x0079, 126679 }, - { 0x007A, 144868 }, - { 0x007B, 69045 }, - { 0x007C, 69017 }, - { 0x007D, 69089 }, - { 0x007E, 105541 }, - { 0x007F, 33497 }, - { 0x0080, 33437 }, - { 0x0081, 33555 }, - { 0x0082, 33503 }, - { 0x0083, 33541 }, - { 0x0084, 33414 }, - { 0x0085, 35715 }, - { 0x0086, 33693 }, - { 0x0087, 33851 }, - { 0x0088, 33833 }, - { 0x0089, 33938 }, - { 0x008A, 33932 }, - { 0x008B, 34192 }, - { 0x008C, 34174 }, - { 0x008D, 34257 }, - { 0x008E, 34243 }, - { 0x008F, 35816 }, - { 0x0090, 34564 }, - { 0x0091, 34710 }, - { 0x0092, 34692 }, - { 0x0093, 34838 }, - { 0x0094, 34716 }, - { 0x0095, 34824 }, - { 0x0096, 144817 }, - { 0x0097, 34803 }, - { 0x0098, 35330 }, - { 0x0099, 35312 }, - { 0x009A, 35449 }, - { 0x009B, 35404 }, - { 0x009C, 35594 }, - { 0x009D, 35948 }, - { 0x009E, 32306 }, - { 0x009F, 28916 }, - { 0x00A0, 28856 }, - { 0x00A1, 28989 }, - { 0x00A2, 28930 }, - { 0x00A3, 28968 }, - { 0x00A4, 28833 }, - { 0x00A5, 31717 }, - { 0x00A6, 29152 }, - { 0x00A7, 29341 }, - { 0x00A8, 29323 }, - { 0x00A9, 29447 }, - { 0x00AA, 29434 }, - { 0x00AB, 29729 }, - { 0x00AC, 29711 }, - { 0x00AD, 29810 }, - { 0x00AE, 29789 }, - { 0x00AF, 31973 }, - { 0x00B0, 30215 }, - { 0x00B1, 30411 }, - { 0x00B2, 30393 }, - { 0x00B3, 30539 }, - { 0x00B4, 30417 }, - { 0x00B5, 30518 }, - { 0x00B6, 89735 }, - { 0x00B7, 30497 }, - { 0x00B8, 31210 }, - { 0x00B9, 31192 }, - { 0x00BA, 31344 }, - { 0x00BB, 31292 }, - { 0x00BC, 31568 }, - { 0x00BD, 32317 }, - { 0x00BE, 31606 }, - { 0x00BF, 33516 }, - { 0x00C0, 28943 }, - { 0x00C1, 33443 }, - { 0x00C2, 28862 }, - { 0x00C3, 33522 }, - { 0x00C4, 28949 }, - { 0x00C5, 33675 }, - { 0x00C6, 29134 }, - { 0x00C7, 33714 }, - { 0x00C8, 29180 }, - { 0x00C9, 33662 }, - { 0x00CA, 29115 }, - { 0x00CB, 33681 }, - { 0x00CC, 29140 }, - { 0x00CD, 33751 }, - { 0x00CE, 29237 }, - { 0x00CF, 33783 }, - { 0x00D0, 29258 }, - { 0x00D1, 33877 }, - { 0x00D2, 29373 }, - { 0x00D3, 33839 }, - { 0x00D4, 29329 }, - { 0x00D5, 33812 }, - { 0x00D6, 29302 }, - { 0x00D7, 33899 }, - { 0x00D8, 29395 }, - { 0x00D9, 33845 }, - { 0x00DA, 29335 }, - { 0x00DB, 34076 }, - { 0x00DC, 29606 }, - { 0x00DD, 34039 }, - { 0x00DE, 29562 }, - { 0x00DF, 34020 }, - { 0x00E0, 29543 }, - { 0x00E1, 34063 }, - { 0x00E2, 29586 }, - { 0x00E3, 34143 }, - { 0x00E4, 29687 }, - { 0x00E5, 34119 }, - { 0x00E6, 29656 }, - { 0x00E7, 34198 }, - { 0x00E8, 29735 }, - { 0x00E9, 34218 }, - { 0x00EA, 29755 }, - { 0x00EB, 34180 }, - { 0x00EC, 29717 }, - { 0x00ED, 34224 }, - { 0x00EE, 29761 }, - { 0x00EF, 34153 }, - { 0x00F0, 32665 }, - { 0x00F1, 36195 }, - { 0x00F2, 32996 }, - { 0x00F3, 34273 }, - { 0x00F4, 29832 }, - { 0x00F5, 34336 }, - { 0x00F6, 29895 }, - { 0x00F7, 32022 }, - { 0x00F8, 34408 }, - { 0x00F9, 29989 }, - { 0x00FA, 34455 }, - { 0x00FB, 30043 }, - { 0x00FC, 34414 }, - { 0x00FD, 29995 }, - { 0x00FE, 34435 }, - { 0x00FF, 30016 }, - { 0x0100, 34449 }, - { 0x0101, 30037 }, - { 0x0102, 34538 }, - { 0x0103, 30197 }, - { 0x0104, 34570 }, - { 0x0105, 30228 }, - { 0x0106, 34544 }, - { 0x0107, 30203 }, - { 0x0108, 30282 }, - { 0x0109, 35808 }, - { 0x010A, 31916 }, - { 0x010B, 34760 }, - { 0x010C, 30461 }, - { 0x010D, 34698 }, - { 0x010E, 30399 }, - { 0x010F, 34746 }, - { 0x0110, 30447 }, - { 0x0111, 36199 }, - { 0x0112, 33000 }, - { 0x0113, 34995 }, - { 0x0114, 30730 }, - { 0x0115, 35020 }, - { 0x0116, 30762 }, - { 0x0117, 35001 }, - { 0x0118, 30736 }, - { 0x0119, 35079 }, - { 0x011A, 30878 }, - { 0x011B, 35151 }, - { 0x011C, 30964 }, - { 0x011D, 35131 }, - { 0x011E, 30937 }, - { 0x011F, 35094 }, - { 0x0120, 30893 }, - { 0x0121, 35207 }, - { 0x0122, 31050 }, - { 0x0123, 35188 }, - { 0x0124, 31024 }, - { 0x0125, 35201 }, - { 0x0126, 31044 }, - { 0x0127, 35336 }, - { 0x0128, 31224 }, - { 0x0129, 35371 }, - { 0x012A, 31259 }, - { 0x012B, 35318 }, - { 0x012C, 31198 }, - { 0x012D, 35305 }, - { 0x012E, 31185 }, - { 0x012F, 35357 }, - { 0x0130, 31245 }, - { 0x0131, 35385 }, - { 0x0132, 31273 }, - { 0x0133, 35534 }, - { 0x0134, 31456 }, - { 0x0135, 35630 }, - { 0x0136, 31612 }, - { 0x0137, 35624 }, - { 0x0138, 35667 }, - { 0x0139, 31655 }, - { 0x013A, 35640 }, - { 0x013B, 31622 }, - { 0x013C, 35673 }, - { 0x013D, 31661 }, - { 0x013E, 32140 }, - { 0x013F, 29080 }, - { 0x0140, 33621 }, - { 0x0141, 33640 }, - { 0x0142, 29086 }, - { 0x0143, 35882 }, - { 0x0144, 32233 }, - { 0x0145, 35872 }, - { 0x0146, 33669 }, - { 0x0147, 29128 }, - { 0x0148, 36044 }, - { 0x0149, 33738 }, - { 0x014A, 33789 }, - { 0x014B, 29264 }, - { 0x014C, 32654 }, - { 0x014D, 36130 }, - { 0x014E, 35925 }, - { 0x014F, 35867 }, - { 0x0150, 34004 }, - { 0x0151, 29513 }, - { 0x0152, 34027 }, - { 0x0153, 35913 }, - { 0x0154, 31795 }, - { 0x0155, 35863 }, - { 0x0156, 34230 }, - { 0x0157, 34296 }, - { 0x0158, 29855 }, - { 0x0159, 29932 }, - { 0x015A, 32411 }, - { 0x015B, 36018 }, - { 0x015C, 34516 }, - { 0x015D, 30189 }, - { 0x015E, 34782 }, - { 0x015F, 34630 }, - { 0x0160, 30331 }, - { 0x0161, 35780 }, - { 0x0162, 31821 }, - { 0x0163, 34897 }, - { 0x0164, 30598 }, - { 0x0165, 33022 }, - { 0x0166, 35887 }, - { 0x0167, 32238 }, - { 0x0168, 35812 }, - { 0x0169, 33338 }, - { 0x016A, 31056 }, - { 0x016B, 35175 }, - { 0x016C, 31002 }, - { 0x016D, 35220 }, - { 0x016E, 35257 }, - { 0x016F, 31130 }, - { 0x0170, 36104 }, - { 0x0171, 35473 }, - { 0x0172, 35575 }, - { 0x0173, 31542 }, - { 0x0174, 35686 }, - { 0x0175, 31681 }, - { 0x0176, 35820 }, - { 0x0177, 35830 }, - { 0x0178, 32013 }, - { 0x0179, 31987 }, - { 0x017A, 33028 }, - { 0x017B, 35892 }, - { 0x017C, 32243 }, - { 0x017D, 33331 }, - { 0x017E, 33033 }, - { 0x017F, 33280 }, - { 0x0180, 33299 }, - { 0x0181, 33303 }, - { 0x0182, 33350 }, - { 0x0183, 35758 }, - { 0x0184, 33773 }, - { 0x0185, 31765 }, - { 0x0186, 35772 }, - { 0x0187, 34420 }, - { 0x0188, 31803 }, - { 0x0189, 35776 }, - { 0x018A, 34556 }, - { 0x018B, 31817 }, - { 0x018C, 33491 }, - { 0x018D, 28910 }, - { 0x018E, 34186 }, - { 0x018F, 29723 }, - { 0x0190, 34704 }, - { 0x0191, 30405 }, - { 0x0192, 35324 }, - { 0x0193, 31204 }, - { 0x0194, 35434 }, - { 0x0195, 31322 }, - { 0x0196, 35410 }, - { 0x0197, 31298 }, - { 0x0198, 35418 }, - { 0x0199, 31306 }, - { 0x019A, 35426 }, - { 0x019B, 31314 }, - { 0x019C, 32452 }, - { 0x019D, 33547 }, - { 0x019E, 28974 }, - { 0x019F, 33391 }, - { 0x01A0, 28810 }, - { 0x01A1, 35725 }, - { 0x01A2, 31727 }, - { 0x01A3, 34057 }, - { 0x01A4, 29580 }, - { 0x01A5, 34045 }, - { 0x01A6, 29568 }, - { 0x01A7, 34315 }, - { 0x01A8, 29874 }, - { 0x01A9, 34789 }, - { 0x01AA, 30483 }, - { 0x01AB, 34795 }, - { 0x01AC, 30489 }, - { 0x01AD, 35824 }, - { 0x01AE, 31993 }, - { 0x01AF, 29820 }, - { 0x01B0, 35754 }, - { 0x01B1, 33765 }, - { 0x01B2, 31761 }, - { 0x01B3, 34033 }, - { 0x01B4, 29556 }, - { 0x01B5, 35917 }, - { 0x01B6, 35901 }, - { 0x01B7, 34550 }, - { 0x01B8, 30209 }, - { 0x01B9, 33421 }, - { 0x01BA, 28840 }, - { 0x01BB, 35719 }, - { 0x01BC, 31721 }, - { 0x01BD, 34809 }, - { 0x01BE, 30503 }, - { 0x01BF, 33509 }, - { 0x01C0, 28936 }, - { 0x01C1, 33534 }, - { 0x01C2, 28961 }, - { 0x01C3, 33870 }, - { 0x01C4, 29366 }, - { 0x01C5, 33925 }, - { 0x01C6, 29427 }, - { 0x01C7, 34211 }, - { 0x01C8, 29748 }, - { 0x01C9, 34236 }, - { 0x01CA, 29782 }, - { 0x01CB, 34753 }, - { 0x01CC, 30454 }, - { 0x01CD, 34817 }, - { 0x01CE, 30511 }, - { 0x01CF, 35007 }, - { 0x01D0, 30742 }, - { 0x01D1, 35033 }, - { 0x01D2, 30806 }, - { 0x01D3, 35364 }, - { 0x01D4, 31252 }, - { 0x01D5, 35397 }, - { 0x01D6, 31285 }, - { 0x01D7, 35109 }, - { 0x01D8, 30908 }, - { 0x01D9, 35194 }, - { 0x01DA, 31030 }, - { 0x01DB, 35905 }, - { 0x01DC, 32252 }, - { 0x01DD, 34113 }, - { 0x01DE, 29650 }, - { 0x01DF, 34530 }, - { 0x01E0, 29204 }, - { 0x01E1, 35788 }, - { 0x01E2, 31829 }, - { 0x01E3, 35654 }, - { 0x01E4, 31642 }, - { 0x01E5, 33384 }, - { 0x01E6, 28803 }, - { 0x01E7, 33911 }, - { 0x01E8, 29407 }, - { 0x01E9, 34830 }, - { 0x01EA, 30524 }, - { 0x01EB, 34730 }, - { 0x01EC, 30431 }, - { 0x01ED, 34600 }, - { 0x01EE, 30293 }, - { 0x01EF, 34607 }, - { 0x01F0, 30300 }, - { 0x01F1, 35612 }, - { 0x01F2, 31594 }, - { 0x01F3, 29969 }, - { 0x01F4, 30169 }, - { 0x01F5, 30996 }, - { 0x01F6, 32670 }, - { 0x01F7, 31756 }, - { 0x01F8, 31833 }, - { 0x01F9, 33528 }, - { 0x01FA, 33687 }, - { 0x01FB, 29146 }, - { 0x01FC, 34366 }, - { 0x01FD, 35213 }, - { 0x01FE, 30923 }, - { 0x01FF, 31667 }, - { 0x0200, 36064 }, - { 0x0201, 32706 }, - { 0x0202, 33634 }, - { 0x0203, 35238 }, - { 0x0204, 36028 }, - { 0x0205, 33905 }, - { 0x0206, 29401 }, - { 0x0207, 34267 }, - { 0x0208, 29826 }, - { 0x0209, 35934 }, - { 0x020A, 30661 }, - { 0x020B, 35014 }, - { 0x020C, 30756 }, - { 0x020D, 35618 }, - { 0x020E, 31600 }, - { 0x020F, 32447 }, - { 0x0210, 32256 }, - { 0x0211, 32649 }, - { 0x0212, 29060 }, - { 0x0213, 32182 }, - { 0x0214, 29122 }, - { 0x0215, 29231 }, - { 0x0216, 29210 }, - { 0x0217, 32808 }, - { 0x0218, 32289 }, - { 0x0219, 32293 }, - { 0x021A, 32169 }, - { 0x021B, 32836 }, - { 0x021C, 32842 }, - { 0x021D, 32378 }, - { 0x021E, 32675 }, - { 0x021F, 29550 }, - { 0x0220, 32423 }, - { 0x0221, 33066 }, - { 0x0222, 32271 }, - { 0x0223, 32207 }, - { 0x0224, 32462 }, - { 0x0225, 29630 }, - { 0x0226, 32113 }, - { 0x0227, 29767 }, - { 0x0228, 32119 }, - { 0x0229, 33083 }, - { 0x022A, 30030 }, - { 0x022B, 29954 }, - { 0x022C, 30070 }, - { 0x022D, 32129 }, - { 0x022E, 32498 }, - { 0x022F, 32503 }, - { 0x0230, 30119 }, - { 0x0231, 30175 }, - { 0x0232, 30254 }, - { 0x0233, 33122 }, - { 0x0234, 32340 }, - { 0x0235, 33195 }, - { 0x0236, 32367 }, - { 0x0237, 32044 }, - { 0x0238, 32525 }, - { 0x0239, 32537 }, - { 0x023A, 32530 }, - { 0x023B, 30717 }, - { 0x023C, 30724 }, - { 0x023D, 30782 }, - { 0x023E, 32818 }, - { 0x023F, 33142 }, - { 0x0240, 33262 }, - { 0x0241, 30872 }, - { 0x0242, 31933 }, - { 0x0243, 32682 }, - { 0x0244, 32311 }, - { 0x0245, 31937 }, - { 0x0246, 32579 }, - { 0x0247, 31076 }, - { 0x0248, 31102 }, - { 0x0249, 32751 }, - { 0x024A, 31374 }, - { 0x024B, 32591 }, - { 0x024C, 32596 }, - { 0x024D, 32601 }, - { 0x024E, 33180 }, - { 0x024F, 31700 }, - { 0x0250, 31636 }, - { 0x0251, 31977 }, - { 0x0252, 31981 }, - { 0x0253, 33289 }, - { 0x0254, 33371 }, - { 0x0255, 33319 }, - { 0x0256, 33361 }, - { 0x0257, 33311 }, - { 0x0258, 33041 }, - { 0x0259, 32361 }, - { 0x025A, 33071 }, - { 0x025B, 33078 }, - { 0x025C, 29838 }, - { 0x025D, 32488 }, - { 0x025E, 33098 }, - { 0x025F, 30655 }, - { 0x0260, 33293 }, - { 0x0261, 33343 }, - { 0x0262, 31771 }, - { 0x0263, 32071 }, - { 0x0264, 31776 }, - { 0x0265, 31851 }, - { 0x0266, 32212 }, - { 0x0267, 31838 }, - { 0x0268, 32092 }, - { 0x0269, 31807 }, - { 0x026A, 31812 }, - { 0x026B, 33315 }, - { 0x026C, 33307 }, - { 0x026D, 32467 }, - { 0x026E, 32474 }, - { 0x026F, 107589 }, - { 0x0270, 107593 }, - { 0x0271, 107611 }, - { 0x0272, 107715 }, - { 0x0273, 108060 }, - { 0x0274, 108065 }, - { 0x0275, 108205 }, - { 0x0276, 107798 }, - { 0x0277, 107806 }, - { 0x0278, 107499 }, - { 0x0279, 108262 }, - { 0x027A, 108331 }, - { 0x027B, 108797 }, - { 0x027C, 108746 }, - { 0x027D, 107502 }, - { 0x027E, 107437 }, - { 0x027F, 108512 }, - { 0x0280, 108750 }, - { 0x0281, 107446 }, - { 0x0282, 107511 }, - { 0x0283, 107252 }, - { 0x0284, 107404 }, - { 0x0285, 108800 }, - { 0x0286, 22369 }, - { 0x0287, 108762 }, - { 0x0288, 108270 }, - { 0x0289, 107464 }, - { 0x028A, 107485 }, - { 0x028B, 107354 }, - { 0x028C, 107344 }, - { 0x028D, 107317 }, - { 0x028E, 107312 }, - { 0x028F, 108828 }, - { 0x0290, 107408 }, - { 0x0291, 108458 }, - { 0x0292, 108452 }, - { 0x0293, 107248 }, - { 0x0294, 107400 }, - { 0x0295, 107454 }, - { 0x0296, 107495 }, - { 0x0297, 22290 }, - { 0x0298, 6552 }, - { 0x0299, 16681 }, - { 0x029A, 63922 }, - { 0x029B, 41388 }, - { 0x029C, 54691 }, - { 0x029D, 108315 }, - { 0x029E, 107481 }, - { 0x029F, 107982 }, - { 0x02A0, 107625 }, - { 0x02A1, 107731 }, - { 0x02A2, 107802 }, - { 0x02A3, 108247 }, - { 0x02A4, 108804 }, - { 0x02A5, 107413 }, - { 0x02A6, 107370 }, - { 0x02A7, 107307 }, - { 0x02A8, 108766 }, - { 0x02A9, 107394 }, - { 0x02AA, 107458 }, - { 0x02AB, 108526 }, - { 0x02AC, 108843 }, - { 0x02AD, 108266 }, - { 0x02AE, 107288 }, - { 0x02AF, 107283 }, - { 0x02B0, 107298 }, - { 0x02B1, 107322 }, - { 0x02B2, 107303 }, - { 0x02B3, 108273 }, - { 0x02B4, 108284 }, - { 0x02B5, 108278 }, - { 0x02B6, 107327 }, - { 0x02B7, 108300 }, - { 0x02B8, 107473 }, - { 0x02B9, 107278 }, - { 0x02BA, 107468 }, - { 0x02BB, 107273 }, - { 0x02BC, 107515 }, - { 0x02BD, 107450 }, - { 0x02BE, 107293 }, - { 0x02BF, 116484 }, - { 0x02C0, 116450 }, - { 0x02C1, 117563 }, - { 0x02C2, 116905 }, - { 0x02C3, 117057 }, - { 0x02C4, 117492 }, - { 0x02C5, 116460 }, - { 0x02C6, 116270 }, - { 0x02C7, 117517 }, - { 0x02C8, 116331 }, - { 0x02C9, 116428 }, - { 0x02CA, 116970 }, - { 0x02CB, 116465 }, - { 0x02CC, 117498 }, - { 0x02CD, 117017 }, - { 0x02CE, 116981 }, - { 0x02CF, 117820 }, - { 0x02D0, 117453 }, - { 0x02D1, 117111 }, - { 0x02D2, 116470 }, - { 0x02D3, 117494 }, - { 0x02D4, 116473 }, - { 0x02D5, 116487 }, - { 0x02D6, 116453 }, - { 0x02D7, 116346 }, - { 0x02D8, 116837 }, - { 0x02D9, 116350 }, - { 0x02DA, 116334 }, - { 0x02DB, 116341 }, - { 0x02DC, 116260 }, - { 0x02DD, 116323 }, - { 0x02DE, 116424 }, - { 0x02DF, 116823 }, - { 0x02E0, 117822 }, - { 0x02E1, 117559 }, - { 0x02E2, 116281 }, - { 0x02E3, 117519 }, - { 0x02E4, 116431 }, - { 0x02E5, 116477 }, - { 0x02E6, 117128 }, - { 0x02E7, 117084 }, - { 0x02E8, 117502 }, - { 0x02E9, 116936 }, - { 0x02EA, 117469 }, - { 0x02EB, 116467 }, - { 0x02EC, 117566 }, - { 0x02ED, 116462 }, - { 0x02EE, 117456 }, - { 0x02EF, 116912 }, - { 0x02F0, 117068 }, - { 0x02F1, 116288 }, - { 0x02F2, 116947 }, - { 0x02F3, 116920 }, - { 0x02F4, 116885 }, - { 0x02F5, 116403 }, - { 0x02F6, 116889 }, - { 0x02F7, 116407 }, - { 0x02F8, 116832 }, - { 0x02F9, 117460 }, - { 0x02FA, 117089 }, - { 0x02FB, 117188 }, - { 0x02FC, 116247 }, - { 0x02FD, 117506 }, - { 0x02FE, 117014 }, - { 0x02FF, 116480 }, - { 0x0300, 116446 }, - { 0x0301, 116510 }, - { 0x0302, 116491 }, - { 0x0303, 116506 }, - { 0x0304, 116513 }, - { 0x0305, 116933 }, - { 0x0306, 117045 }, - { 0x0307, 117022 }, - { 0x0308, 116354 }, - { 0x0309, 116291 }, - { 0x030A, 117808 }, - { 0x030B, 116923 }, - { 0x030C, 116371 }, - { 0x030D, 117191 }, - { 0x030E, 117448 }, - { 0x030F, 116867 }, - { 0x0310, 116336 }, - { 0x0311, 117134 }, - { 0x0312, 116250 }, - { 0x0313, 116384 }, - { 0x0314, 116871 }, - { 0x0315, 116853 }, - { 0x0316, 116827 }, - { 0x0317, 116277 }, - { 0x0318, 117198 }, - { 0x0319, 116966 }, - { 0x031A, 117119 }, - { 0x031B, 116977 }, - { 0x031C, 116974 }, - { 0x031D, 116998 }, - { 0x031E, 117001 }, - { 0x031F, 116985 }, - { 0x0320, 117005 }, - { 0x0321, 117036 }, - { 0x0322, 116516 }, - { 0x0323, 116549 }, - { 0x0324, 116569 }, - { 0x0325, 116603 }, - { 0x0326, 116656 }, - { 0x0327, 116533 }, - { 0x0328, 116544 }, - { 0x0329, 116564 }, - { 0x032A, 116593 }, - { 0x032B, 116629 }, - { 0x032C, 116651 }, - { 0x032D, 116677 }, - { 0x032E, 116693 }, - { 0x032F, 25323 }, - { 0x0330, 23988 }, - { 0x0331, 25795 }, - { 0x0332, 24580 }, - { 0x0333, 26037 }, - { 0x0334, 23710 }, - { 0x0335, 26002 }, - { 0x0336, 24859 }, - { 0x0337, 26531 }, - { 0x0338, 24871 }, - { 0x0339, 23728 }, - { 0x033A, 24864 }, - { 0x033B, 26062 }, - { 0x033C, 25315 }, - { 0x033D, 24888 }, - { 0x033E, 26089 }, - { 0x033F, 25577 }, - { 0x0340, 23629 }, - { 0x0341, 25854 }, - { 0x0342, 25267 }, - { 0x0343, 25397 }, - { 0x0344, 25920 }, - { 0x0345, 25972 }, - { 0x0346, 25769 }, - { 0x0347, 24100 }, - { 0x0348, 25431 }, - { 0x0349, 25319 }, - { 0x034A, 25611 }, - { 0x034B, 25607 }, - { 0x034C, 25800 }, - { 0x034D, 25427 }, - { 0x034E, 25121 }, - { 0x034F, 25791 }, - { 0x0350, 25327 }, - { 0x0351, 25615 }, - { 0x0352, 25619 }, - { 0x0353, 25101 }, - { 0x0354, 25105 }, - { 0x0355, 25113 }, - { 0x0356, 25866 }, - { 0x0357, 25109 }, - { 0x0358, 25293 }, - { 0x0359, 25787 }, - { 0x035A, 25311 }, - { 0x035B, 25932 }, - { 0x035C, 25285 }, - { 0x035D, 25117 }, - { 0x035E, 25289 }, - { 0x035F, 25623 }, - { 0x0360, 25421 }, - { 0x0361, 25996 }, - { 0x0362, 24288 }, - { 0x0363, 24643 }, - { 0x0364, 23908 }, - { 0x0365, 24062 }, - { 0x0366, 24829 }, - { 0x0367, 24134 }, - { 0x0368, 23984 }, - { 0x0369, 24349 }, - { 0x036A, 24340 }, - { 0x036B, 24589 }, - { 0x036C, 24130 }, - { 0x036D, 23754 }, - { 0x036E, 24567 }, - { 0x036F, 23992 }, - { 0x0370, 24353 }, - { 0x0371, 24361 }, - { 0x0372, 23734 }, - { 0x0373, 23738 }, - { 0x0374, 23746 }, - { 0x0375, 24655 }, - { 0x0376, 23742 }, - { 0x0377, 23956 }, - { 0x0378, 24344 }, - { 0x0379, 24563 }, - { 0x037A, 23980 }, - { 0x037B, 24721 }, - { 0x037C, 23948 }, - { 0x037D, 23750 }, - { 0x037E, 23952 }, - { 0x037F, 24365 }, - { 0x0380, 24086 }, - { 0x0381, 24815 }, - { 0x0382, 24709 }, - { 0x0383, 24791 }, - { 0x0384, 24519 }, - { 0x0385, 25087 }, - { 0x0386, 23668 }, - { 0x0387, 24877 }, - { 0x0388, 26040 }, - { 0x0389, 26045 }, - { 0x038A, 26052 }, - { 0x038B, 23649 }, - { 0x038C, 23626 }, - { 0x038D, 23632 }, - { 0x038E, 25059 }, - { 0x038F, 24575 }, - { 0x0390, 25056 }, - { 0x0391, 24571 }, - { 0x0392, 25063 }, - { 0x0393, 24585 }, - { 0x0394, 25020 }, - { 0x0395, 24357 }, - { 0x0396, 25023 }, - { 0x0397, 24559 }, - { 0x0398, 54126 }, - { 0x0399, 53818 }, - { 0x039A, 53988 }, - { 0x039B, 53680 }, - { 0x039C, 54122 }, - { 0x039D, 53814 }, - { 0x039E, 54114 }, - { 0x039F, 53806 }, - { 0x03A0, 54166 }, - { 0x03A1, 53858 }, - { 0x03A2, 54162 }, - { 0x03A3, 53854 }, - { 0x03A4, 53980 }, - { 0x03A5, 53672 }, - { 0x03A6, 23704 }, - { 0x03A7, 23657 }, - { 0x03A8, 25066 }, - { 0x03A9, 25017 }, - { 0x03AA, 25091 }, - { 0x03AB, 25070 }, - { 0x03AC, 26065 }, - { 0x03AD, 25307 }, - { 0x03AE, 23976 }, - { 0x03AF, 26007 }, - { 0x03B0, 25303 }, - { 0x03B1, 23972 }, - { 0x03B2, 23652 }, - { 0x03B3, 26019 }, - { 0x03B4, 25095 }, - { 0x03B5, 26012 }, - { 0x03B6, 88868 }, - { 0x03B7, 88874 }, - { 0x03B8, 89025 }, - { 0x03B9, 89074 }, - { 0x03BA, 89550 }, - { 0x03BB, 89033 }, - { 0x03BC, 89560 }, - { 0x03BD, 88969 }, - { 0x03BE, 88878 }, - { 0x03BF, 89094 }, - { 0x03C0, 89098 }, - { 0x03C1, 89267 }, - { 0x03C2, 89082 }, - { 0x03C3, 88678 }, - { 0x03C4, 89367 }, - { 0x03C5, 89164 }, - { 0x03C6, 88648 }, - { 0x03C7, 88729 }, - { 0x03C8, 88957 }, - { 0x03C9, 89037 }, - { 0x03CA, 88733 }, - { 0x03CB, 88858 }, - { 0x03CC, 89134 }, - { 0x03CD, 88981 }, - { 0x03CE, 88674 }, - { 0x03CF, 89355 }, - { 0x03D0, 88882 }, - { 0x03D1, 88741 }, - { 0x03D2, 88770 }, - { 0x03D3, 88780 }, - { 0x03D4, 88696 }, - { 0x03D5, 88915 }, - { 0x03D6, 88816 }, - { 0x03D7, 88826 }, - { 0x03D8, 88936 }, - { 0x03D9, 88706 }, - { 0x03DA, 88737 }, - { 0x03DB, 88836 }, - { 0x03DC, 89118 }, - { 0x03DD, 89002 }, - { 0x03DE, 89110 }, - { 0x03DF, 89351 }, - { 0x03E0, 89180 }, - { 0x03E1, 89279 }, - { 0x03E2, 89258 }, - { 0x03E3, 88664 }, - { 0x03E4, 88977 }, - { 0x03E5, 88965 }, - { 0x03E6, 87652 }, - { 0x03E7, 87733 }, - { 0x03E8, 87961 }, - { 0x03E9, 88041 }, - { 0x03EA, 87737 }, - { 0x03EB, 87862 }, - { 0x03EC, 88138 }, - { 0x03ED, 87985 }, - { 0x03EE, 87678 }, - { 0x03EF, 88380 }, - { 0x03F0, 87886 }, - { 0x03F1, 87745 }, - { 0x03F2, 87774 }, - { 0x03F3, 87784 }, - { 0x03F4, 87700 }, - { 0x03F5, 87919 }, - { 0x03F6, 87820 }, - { 0x03F7, 87830 }, - { 0x03F8, 87940 }, - { 0x03F9, 87710 }, - { 0x03FA, 87741 }, - { 0x03FB, 87840 }, - { 0x03FC, 88122 }, - { 0x03FD, 88006 }, - { 0x03FE, 88114 }, - { 0x03FF, 88376 }, - { 0x0400, 88184 }, - { 0x0401, 88304 }, - { 0x0402, 88262 }, - { 0x0403, 87668 }, - { 0x0404, 87981 }, - { 0x0405, 87969 }, - { 0x0406, 87872 }, - { 0x0407, 87878 }, - { 0x0408, 88029 }, - { 0x0409, 88078 }, - { 0x040A, 88589 }, - { 0x040B, 88037 }, - { 0x040C, 88614 }, - { 0x040D, 87973 }, - { 0x040E, 87882 }, - { 0x040F, 88098 }, - { 0x0410, 88102 }, - { 0x0411, 88287 }, - { 0x0412, 88086 }, - { 0x0413, 87682 }, - { 0x0414, 88392 }, - { 0x0415, 88168 }, - { 0x0416, 89326 }, - { 0x0417, 88351 }, - { 0x0418, 89130 }, - { 0x0419, 88134 }, - { 0x041A, 89447 }, - { 0x041B, 88482 }, - { 0x041C, 89401 }, - { 0x041D, 88426 }, - { 0x041E, 89470 }, - { 0x041F, 88505 }, - { 0x0420, 88997 }, - { 0x0421, 88001 }, - { 0x0422, 89452 }, - { 0x0423, 88487 }, - { 0x0424, 89086 }, - { 0x0425, 88090 }, - { 0x0426, 89102 }, - { 0x0427, 88106 }, - { 0x0428, 89176 }, - { 0x0429, 88180 }, - { 0x042A, 89425 }, - { 0x042B, 88455 }, - { 0x042C, 89429 }, - { 0x042D, 88459 }, - { 0x042E, 88953 }, - { 0x042F, 87957 }, - { 0x0430, 89336 }, - { 0x0431, 88361 }, - { 0x0432, 89330 }, - { 0x0433, 88355 }, - { 0x0434, 88911 }, - { 0x0435, 87915 }, - { 0x0436, 89322 }, - { 0x0437, 88347 }, - { 0x0438, 89716 }, - { 0x0439, 117220 }, - { 0x043A, 117442 }, - { 0x043B, 117206 }, - { 0x043C, 117210 }, - { 0x043D, 117434 }, - { 0x043E, 117422 }, - { 0x043F, 117430 }, - { 0x0440, 89360 }, - { 0x0441, 88385 }, - { 0x0442, 89496 }, - { 0x0443, 88535 }, - { 0x0444, 88820 }, - { 0x0445, 87824 }, - { 0x0446, 89062 }, - { 0x0447, 88066 }, - { 0x0448, 89048 }, - { 0x0449, 88052 }, - { 0x044A, 89041 }, - { 0x044B, 88045 }, - { 0x044C, 89144 }, - { 0x044D, 88148 }, - { 0x044E, 88985 }, - { 0x044F, 87989 }, - { 0x0450, 88905 }, - { 0x0451, 87909 }, - { 0x0452, 88898 }, - { 0x0453, 87902 }, - { 0x0454, 88892 }, - { 0x0455, 87896 }, - { 0x0456, 89410 }, - { 0x0457, 88440 }, - { 0x0458, 88810 }, - { 0x0459, 87814 }, - { 0x045A, 89570 }, - { 0x045B, 88624 }, - { 0x045C, 88919 }, - { 0x045D, 87923 }, - { 0x045E, 89513 }, - { 0x045F, 88552 }, - { 0x0460, 88830 }, - { 0x0461, 87834 }, - { 0x0462, 88947 }, - { 0x0463, 87951 }, - { 0x0464, 89501 }, - { 0x0465, 88540 }, - { 0x0466, 89506 }, - { 0x0467, 88545 }, - { 0x0468, 88852 }, - { 0x0469, 87856 }, - { 0x046A, 89575 }, - { 0x046B, 88629 }, - { 0x046C, 89013 }, - { 0x046D, 88017 }, - { 0x046E, 89006 }, - { 0x046F, 88010 }, - { 0x0470, 89229 }, - { 0x0471, 88233 }, - { 0x0472, 89518 }, - { 0x0473, 88557 }, - { 0x0474, 89523 }, - { 0x0475, 88562 }, - { 0x0476, 88641 }, - { 0x0477, 89138 }, - { 0x0478, 88142 }, - { 0x0479, 88886 }, - { 0x047A, 87890 }, - { 0x047B, 88751 }, - { 0x047C, 87755 }, - { 0x047D, 88784 }, - { 0x047E, 87788 }, - { 0x047F, 88797 }, - { 0x0480, 87801 }, - { 0x0481, 89555 }, - { 0x0482, 88599 }, - { 0x0483, 88774 }, - { 0x0484, 87778 }, - { 0x0485, 88511 }, - { 0x0486, 88652 }, - { 0x0487, 87656 }, - { 0x0488, 88658 }, - { 0x0489, 87662 }, - { 0x048A, 89565 }, - { 0x048B, 88619 }, - { 0x048C, 88862 }, - { 0x048D, 87866 }, - { 0x048E, 89341 }, - { 0x048F, 88366 }, - { 0x0490, 89345 }, - { 0x0491, 88370 }, - { 0x0492, 89150 }, - { 0x0493, 88154 }, - { 0x0494, 88991 }, - { 0x0495, 87995 }, - { 0x0496, 89530 }, - { 0x0497, 88569 }, - { 0x0498, 88684 }, - { 0x0499, 87688 }, - { 0x049A, 88690 }, - { 0x049B, 87694 }, - { 0x049C, 88700 }, - { 0x049D, 87704 }, - { 0x049E, 89372 }, - { 0x049F, 88397 }, - { 0x04A0, 89377 }, - { 0x04A1, 88402 }, - { 0x04A2, 88668 }, - { 0x04A3, 87672 }, - { 0x04A4, 88717 }, - { 0x04A5, 87721 }, - { 0x04A6, 88723 }, - { 0x04A7, 87727 }, - { 0x04A8, 88710 }, - { 0x04A9, 87714 }, - { 0x04AA, 89019 }, - { 0x04AB, 88023 }, - { 0x04AC, 89068 }, - { 0x04AD, 88072 }, - { 0x04AE, 89290 }, - { 0x04AF, 88315 }, - { 0x04B0, 89054 }, - { 0x04B1, 88058 }, - { 0x04B2, 88840 }, - { 0x04B3, 87844 }, - { 0x04B4, 88846 }, - { 0x04B5, 87850 }, - { 0x04B6, 89189 }, - { 0x04B7, 88193 }, - { 0x04B8, 89194 }, - { 0x04B9, 88198 }, - { 0x04BA, 89219 }, - { 0x04BB, 88223 }, - { 0x04BC, 89224 }, - { 0x04BD, 88228 }, - { 0x04BE, 89199 }, - { 0x04BF, 88203 }, - { 0x04C0, 89204 }, - { 0x04C1, 88208 }, - { 0x04C2, 89209 }, - { 0x04C3, 88213 }, - { 0x04C4, 89214 }, - { 0x04C5, 88218 }, - { 0x04C6, 89481 }, - { 0x04C7, 88520 }, - { 0x04C8, 88745 }, - { 0x04C9, 87749 }, - { 0x04CA, 89090 }, - { 0x04CB, 88094 }, - { 0x04CC, 89106 }, - { 0x04CD, 88110 }, - { 0x04CE, 89126 }, - { 0x04CF, 88130 }, - { 0x04D0, 88932 }, - { 0x04D1, 87936 }, - { 0x04D2, 88961 }, - { 0x04D3, 87965 }, - { 0x04D4, 89300 }, - { 0x04D5, 88325 }, - { 0x04D6, 88757 }, - { 0x04D7, 87761 }, - { 0x04D8, 88803 }, - { 0x04D9, 87807 }, - { 0x04DA, 88926 }, - { 0x04DB, 87930 }, - { 0x04DC, 89233 }, - { 0x04DD, 88237 }, - { 0x04DE, 88790 }, - { 0x04DF, 87794 }, - { 0x04E0, 89318 }, - { 0x04E1, 88343 }, - { 0x04E2, 89160 }, - { 0x04E3, 88164 }, - { 0x04E4, 88764 }, - { 0x04E5, 87768 }, - { 0x04E6, 83269 }, - { 0x04E7, 83273 }, - { 0x04E8, 83289 }, - { 0x04E9, 83225 }, - { 0x04EA, 83281 }, - { 0x04EB, 83265 }, - { 0x04EC, 83229 }, - { 0x04ED, 83233 }, - { 0x04EE, 83253 }, - { 0x04EF, 83337 }, - { 0x04F0, 83293 }, - { 0x04F1, 83353 }, - { 0x04F2, 83333 }, - { 0x04F3, 83217 }, - { 0x04F4, 83301 }, - { 0x04F5, 83237 }, - { 0x04F6, 83241 }, - { 0x04F7, 83345 }, - { 0x04F8, 83341 }, - { 0x04F9, 83305 }, - { 0x04FA, 83261 }, - { 0x04FB, 83309 }, - { 0x04FC, 83325 }, - { 0x04FD, 83257 }, - { 0x04FE, 83277 }, - { 0x04FF, 83313 }, - { 0x0500, 83349 }, - { 0x0501, 83249 }, - { 0x0502, 83321 }, - { 0x0503, 83329 }, - { 0x0504, 83361 }, - { 0x0505, 83317 }, - { 0x0506, 83221 }, - { 0x0507, 83365 }, - { 0x0508, 83357 }, - { 0x0509, 83297 }, - { 0x050A, 83245 }, - { 0x050B, 83285 }, - { 0x050C, 83372 }, - { 0x050D, 83381 }, - { 0x050E, 83369 }, - { 0x050F, 83383 }, - { 0x0510, 83020 }, - { 0x0511, 83378 }, - { 0x0512, 83386 }, - { 0x0513, 83180 }, - { 0x0514, 83080 }, - { 0x0515, 83084 }, - { 0x0516, 83100 }, - { 0x0517, 83030 }, - { 0x0518, 83092 }, - { 0x0519, 83076 }, - { 0x051A, 83034 }, - { 0x051B, 83038 }, - { 0x051C, 83058 }, - { 0x051D, 83148 }, - { 0x051E, 83104 }, - { 0x051F, 83164 }, - { 0x0520, 83144 }, - { 0x0521, 83022 }, - { 0x0522, 83112 }, - { 0x0523, 83042 }, - { 0x0524, 83046 }, - { 0x0525, 83156 }, - { 0x0526, 83152 }, - { 0x0527, 83116 }, - { 0x0528, 83066 }, - { 0x0529, 83120 }, - { 0x052A, 83136 }, - { 0x052B, 83062 }, - { 0x052C, 83088 }, - { 0x052D, 83124 }, - { 0x052E, 83160 }, - { 0x052F, 83054 }, - { 0x0530, 83132 }, - { 0x0531, 83140 }, - { 0x0532, 83172 }, - { 0x0533, 83128 }, - { 0x0534, 83026 }, - { 0x0535, 83176 }, - { 0x0536, 83168 }, - { 0x0537, 83108 }, - { 0x0538, 83050 }, - { 0x0539, 83096 }, - { 0x053A, 83185 }, - { 0x053B, 83070 }, - { 0x053C, 83017 }, - { 0x053D, 83215 }, - { 0x053E, 143483 }, - { 0x053F, 133893 }, - { 0x0540, 83014 }, - { 0x0541, 57160 }, - { 0x0542, 57108 }, - { 0x0543, 57177 }, - { 0x0544, 57126 }, - { 0x0545, 57122 }, - { 0x0546, 57157 }, - { 0x0547, 57105 }, - { 0x0548, 57130 }, - { 0x0549, 57150 }, - { 0x054A, 57119 }, - { 0x054B, 57111 }, - { 0x054C, 57136 }, - { 0x054D, 57139 }, - { 0x054E, 57174 }, - { 0x054F, 57153 }, - { 0x0550, 57163 }, - { 0x0551, 57099 }, - { 0x0552, 57089 }, - { 0x0553, 57096 }, - { 0x0554, 57171 }, - { 0x0555, 57143 }, - { 0x0556, 57146 }, - { 0x0557, 57093 }, - { 0x0558, 57102 }, - { 0x0559, 57167 }, - { 0x055A, 57114 }, - { 0x055B, 57080 }, - { 0x055C, 57086 }, - { 0x055D, 57083 }, - { 0x055E, 57133 }, - { 0x055F, 57007 }, - { 0x0560, 57055 }, - { 0x0561, 57026 }, - { 0x0562, 57022 }, - { 0x0563, 57030 }, - { 0x0564, 57034 }, - { 0x0565, 57058 }, - { 0x0566, 57052 }, - { 0x0567, 57049 }, - { 0x0568, 57066 }, - { 0x0569, 57037 }, - { 0x056A, 57040 }, - { 0x056B, 57073 }, - { 0x056C, 57061 }, - { 0x056D, 57046 }, - { 0x056E, 57516 }, - { 0x056F, 57015 }, - { 0x0570, 57519 }, - { 0x0571, 57018 }, - { 0x0572, 57011 }, - { 0x0573, 57512 }, - { 0x0574, 57003 }, - { 0x0575, 56999 }, - { 0x0576, 57508 }, - { 0x0577, 57069 }, - { 0x0578, 57296 }, - { 0x0579, 57201 }, - { 0x057A, 57434 }, - { 0x057B, 57394 }, - { 0x057C, 57180 }, - { 0x057D, 57270 }, - { 0x057E, 57458 }, - { 0x057F, 57214 }, - { 0x0580, 57262 }, - { 0x0581, 57283 }, - { 0x0582, 57412 }, - { 0x0583, 57217 }, - { 0x0584, 57442 }, - { 0x0585, 57422 }, - { 0x0586, 57230 }, - { 0x0587, 57426 }, - { 0x0588, 57238 }, - { 0x0589, 57466 }, - { 0x058A, 57314 }, - { 0x058B, 57402 }, - { 0x058C, 57188 }, - { 0x058D, 57430 }, - { 0x058E, 57450 }, - { 0x058F, 57246 }, - { 0x0590, 57317 }, - { 0x0591, 57325 }, - { 0x0592, 57254 }, - { 0x0593, 56996 }, - { 0x0594, 57498 }, - { 0x0595, 57487 }, - { 0x0596, 57503 }, - { 0x0597, 57522 }, - { 0x0598, 57525 }, - { 0x0599, 47725 }, - { 0x059A, 44272 }, - { 0x059B, 47906 }, - { 0x059C, 44269 }, - { 0x059D, 44279 }, - { 0x059E, 47721 }, - { 0x059F, 137998 }, - { 0x05A0, 138031 }, - { 0x05A1, 44218 }, - { 0x05A2, 137994 }, - { 0x05A3, 137989 }, - { 0x05A4, 69874 }, - { 0x05A5, 44338 }, - { 0x05A6, 44220 }, - { 0x05A7, 47728 }, - { 0x05A8, 44266 }, - { 0x05A9, 44298 }, - { 0x05AA, 44275 }, - { 0x05AB, 44294 }, - { 0x05AC, 44261 }, - { 0x05AD, 44291 }, - { 0x05AE, 44546 }, - { 0x05AF, 44712 }, - { 0x05B0, 44651 }, - { 0x05B1, 44736 }, - { 0x05B2, 44729 }, - { 0x05B3, 44739 }, - { 0x05B4, 51763 }, - { 0x05B5, 46823 }, - { 0x05B6, 44213 }, - { 0x05B7, 47833 }, - { 0x05B8, 51748 }, - { 0x05B9, 47702 }, - { 0x05BA, 47320 }, - { 0x05BB, 46425 }, - { 0x05BC, 46381 }, - { 0x05BD, 46107 }, - { 0x05BE, 46403 }, - { 0x05BF, 46196 }, - { 0x05C0, 46351 }, - { 0x05C1, 44967 }, - { 0x05C2, 46031 }, - { 0x05C3, 45987 }, - { 0x05C4, 47091 }, - { 0x05C5, 46756 }, - { 0x05C6, 45321 }, - { 0x05C7, 46800 }, - { 0x05C8, 45103 }, - { 0x05C9, 47078 }, - { 0x05CA, 45777 }, - { 0x05CB, 47147 }, - { 0x05CC, 46987 }, - { 0x05CD, 47470 }, - { 0x05CE, 45885 }, - { 0x05CF, 45074 }, - { 0x05D0, 45929 }, - { 0x05D1, 46328 }, - { 0x05D2, 44906 }, - { 0x05D3, 47284 }, - { 0x05D4, 47337 }, - { 0x05D5, 47365 }, - { 0x05D6, 47253 }, - { 0x05D7, 47207 }, - { 0x05D8, 47215 }, - { 0x05D9, 47862 }, - { 0x05DA, 45204 }, - { 0x05DB, 45725 }, - { 0x05DC, 45554 }, - { 0x05DD, 45616 }, - { 0x05DE, 46826 }, - { 0x05DF, 46868 }, - { 0x05E0, 45427 }, - { 0x05E1, 46080 }, - { 0x05E2, 46631 }, - { 0x05E3, 46157 }, - { 0x05E4, 47900 }, - { 0x05E5, 47889 }, - { 0x05E6, 47912 }, - { 0x05E7, 44382 }, - { 0x05E8, 44358 }, - { 0x05E9, 44412 }, - { 0x05EA, 47736 }, - { 0x05EB, 44748 }, - { 0x05EC, 47718 }, - { 0x05ED, 44406 }, - { 0x05EE, 44409 }, - { 0x05EF, 51765 }, - { 0x05F0, 47909 }, - { 0x05F1, 44243 }, - { 0x05F2, 51757 }, - { 0x05F3, 44766 }, - { 0x05F4, 44772 }, - { 0x05F5, 44761 }, - { 0x05F6, 51751 }, - { 0x05F7, 44389 }, - { 0x05F8, 44334 }, - { 0x05F9, 138019 }, - { 0x05FA, 138001 }, - { 0x05FB, 138007 }, - { 0x05FC, 138028 }, - { 0x05FD, 138013 }, - { 0x05FE, 138010 }, - { 0x05FF, 138004 }, - { 0x0600, 138025 }, - { 0x0601, 138022 }, - { 0x0602, 138016 }, - { 0x0603, 47848 }, - { 0x0604, 47842 }, - { 0x0605, 51768 }, - { 0x0606, 44223 }, - { 0x0607, 47635 }, - { 0x0608, 47643 }, - { 0x0609, 47714 }, - { 0x060A, 46615 }, - { 0x060B, 46367 }, - { 0x060C, 46374 }, - { 0x060D, 46737 }, - { 0x060E, 46751 }, - { 0x060F, 46741 }, - { 0x0610, 44817 }, - { 0x0611, 46746 }, - { 0x0612, 47118 }, - { 0x0613, 47574 }, - { 0x0614, 46652 }, - { 0x0615, 45990 }, - { 0x0616, 46008 }, - { 0x0617, 45689 }, - { 0x0618, 47538 }, - { 0x0619, 47167 }, - { 0x061A, 45339 }, - { 0x061B, 45331 }, - { 0x061C, 46951 }, - { 0x061D, 46688 }, - { 0x061E, 45374 }, - { 0x061F, 47503 }, - { 0x0620, 47679 }, - { 0x0621, 46675 }, - { 0x0622, 45147 }, - { 0x0623, 45106 }, - { 0x0624, 45112 }, - { 0x0625, 47190 }, - { 0x0626, 47561 }, - { 0x0627, 45191 }, - { 0x0628, 45152 }, - { 0x0629, 45140 }, - { 0x062A, 46974 }, - { 0x062B, 45833 }, - { 0x062C, 45822 }, - { 0x062D, 45780 }, - { 0x062E, 45839 }, - { 0x062F, 45786 }, - { 0x0630, 45795 }, - { 0x0631, 45541 }, - { 0x0632, 45810 }, - { 0x0633, 46990 }, - { 0x0634, 47025 }, - { 0x0635, 47032 }, - { 0x0636, 45888 }, - { 0x0637, 45895 }, - { 0x0638, 45953 }, - { 0x0639, 44924 }, - { 0x063A, 47639 }, - { 0x063B, 45223 }, - { 0x063C, 45207 }, - { 0x063D, 46057 }, - { 0x063E, 45237 }, - { 0x063F, 47424 }, - { 0x0640, 45728 }, - { 0x0641, 45750 }, - { 0x0642, 47328 }, - { 0x0643, 47499 }, - { 0x0644, 45584 }, - { 0x0645, 45557 }, - { 0x0646, 44844 }, - { 0x0647, 45589 }, - { 0x0648, 45273 }, - { 0x0649, 45283 }, - { 0x064A, 47401 }, - { 0x064B, 45276 }, - { 0x064C, 46714 }, - { 0x064D, 45288 }, - { 0x064E, 45630 }, - { 0x064F, 45624 }, - { 0x0650, 45645 }, - { 0x0651, 45652 }, - { 0x0652, 46871 }, - { 0x0653, 46920 }, - { 0x0654, 47447 }, - { 0x0655, 46884 }, - { 0x0656, 46901 }, - { 0x0657, 45513 }, - { 0x0658, 47506 }, - { 0x0659, 45465 }, - { 0x065A, 45430 }, - { 0x065B, 45434 }, - { 0x065C, 46035 }, - { 0x065D, 46102 }, - { 0x065E, 47647 }, - { 0x065F, 44867 }, - { 0x0660, 44814 }, - { 0x0661, 44893 }, - { 0x0662, 47663 }, - { 0x0663, 46095 }, - { 0x0664, 44880 }, - { 0x0665, 47203 }, - { 0x0666, 46191 }, - { 0x0667, 46234 }, - { 0x0668, 46083 }, - { 0x0669, 44791 }, - { 0x066A, 46240 }, - { 0x066B, 46252 }, - { 0x066C, 46256 }, - { 0x066D, 44227 }, - { 0x066E, 44841 }, - { 0x066F, 44702 }, - { 0x0670, 44692 }, - { 0x0671, 44575 }, - { 0x0672, 44533 }, - { 0x0673, 44571 }, - { 0x0674, 44664 }, - { 0x0675, 44597 }, - { 0x0676, 44209 }, - { 0x0677, 44742 }, - { 0x0678, 44676 }, - { 0x0679, 44681 }, - { 0x067A, 44669 }, - { 0x067B, 44581 }, - { 0x067C, 44489 }, - { 0x067D, 44660 }, - { 0x067E, 44523 }, - { 0x067F, 44526 }, - { 0x0680, 44554 }, - { 0x0681, 44587 }, - { 0x0682, 44453 }, - { 0x0683, 44372 }, - { 0x0684, 44377 }, - { 0x0685, 47855 }, - { 0x0686, 44479 }, - { 0x0687, 45167 }, - { 0x0688, 45869 }, - { 0x0689, 103438 }, - { 0x068A, 103414 }, - { 0x068B, 103422 }, - { 0x068C, 103450 }, - { 0x068D, 103430 }, - { 0x068E, 103426 }, - { 0x068F, 103418 }, - { 0x0690, 103446 }, - { 0x0691, 103442 }, - { 0x0692, 103434 }, - { 0x0693, 47473 }, - { 0x0694, 45077 }, - { 0x0695, 47287 }, - { 0x0696, 44282 }, - { 0x0697, 44286 }, - { 0x0698, 45487 }, - { 0x0699, 66056 }, - { 0x069A, 66348 }, - { 0x069B, 66323 }, - { 0x069C, 66352 }, - { 0x069D, 66327 }, - { 0x069E, 66340 }, - { 0x069F, 66070 }, - { 0x06A0, 66074 }, - { 0x06A1, 66355 }, - { 0x06A2, 66335 }, - { 0x06A3, 66343 }, - { 0x06A4, 66310 }, - { 0x06A5, 66313 }, - { 0x06A6, 66316 }, - { 0x06A7, 66360 }, - { 0x06A8, 66172 }, - { 0x06A9, 66275 }, - { 0x06AA, 66137 }, - { 0x06AB, 66179 }, - { 0x06AC, 66182 }, - { 0x06AD, 66189 }, - { 0x06AE, 66195 }, - { 0x06AF, 66119 }, - { 0x06B0, 66134 }, - { 0x06B1, 66169 }, - { 0x06B2, 66140 }, - { 0x06B3, 66155 }, - { 0x06B4, 66158 }, - { 0x06B5, 66162 }, - { 0x06B6, 66165 }, - { 0x06B7, 66143 }, - { 0x06B8, 66192 }, - { 0x06B9, 66125 }, - { 0x06BA, 66128 }, - { 0x06BB, 66212 }, - { 0x06BC, 66175 }, - { 0x06BD, 66116 }, - { 0x06BE, 66122 }, - { 0x06BF, 66227 }, - { 0x06C0, 66186 }, - { 0x06C1, 66146 }, - { 0x06C2, 66149 }, - { 0x06C3, 66152 }, - { 0x06C4, 66131 }, - { 0x06C5, 66200 }, - { 0x06C6, 66204 }, - { 0x06C7, 66208 }, - { 0x06C8, 66279 }, - { 0x06C9, 66282 }, - { 0x06CA, 66285 }, - { 0x06CB, 66288 }, - { 0x06CC, 66291 }, - { 0x06CD, 66294 }, - { 0x06CE, 66092 }, - { 0x06CF, 66095 }, - { 0x06D0, 66112 }, - { 0x06D1, 66108 }, - { 0x06D2, 66084 }, - { 0x06D3, 66087 }, - { 0x06D4, 66345 }, - { 0x06D5, 66078 }, - { 0x06D6, 66081 }, - { 0x06D7, 66098 }, - { 0x06D8, 66307 }, - { 0x06D9, 66321 }, - { 0x06DA, 66319 }, - { 0x06DB, 66060 }, - { 0x06DC, 66065 }, - { 0x06DD, 66100 }, - { 0x06DE, 66104 }, - { 0x06DF, 66299 }, - { 0x06E0, 66303 }, - { 0x06E1, 66090 }, - { 0x06E2, 66297 }, - { 0x06E3, 66223 }, - { 0x06E4, 66219 }, - { 0x06E5, 66215 }, - { 0x06E6, 45038 }, - { 0x06E7, 44970 }, - { 0x06E8, 45016 }, - { 0x06E9, 45025 }, - { 0x06EA, 44980 }, - { 0x06EB, 45046 }, - { 0x06EC, 44996 }, - { 0x06ED, 45324 }, - { 0x06EE, 45381 }, - { 0x06EF, 45129 }, - { 0x06F0, 45173 }, - { 0x06F1, 45864 }, - { 0x06F2, 47007 }, - { 0x06F3, 44909 }, - { 0x06F4, 44938 }, - { 0x06F5, 44916 }, - { 0x06F6, 45230 }, - { 0x06F7, 45244 }, - { 0x06F8, 47331 }, - { 0x06F9, 47358 }, - { 0x06FA, 47372 }, - { 0x06FB, 46829 }, - { 0x06FC, 46835 }, - { 0x06FD, 46877 }, - { 0x06FE, 46895 }, - { 0x06FF, 46889 }, - { 0x0700, 45619 }, - { 0x0701, 45802 }, - { 0x0702, 45827 }, - { 0x0703, 46999 }, - { 0x0704, 45365 }, - { 0x0705, 45345 }, - { 0x0706, 47014 }, - { 0x0707, 45853 }, - { 0x0708, 45356 }, - { 0x0709, 46592 }, - { 0x070A, 46601 }, - { 0x070B, 47223 }, - { 0x070C, 47243 }, - { 0x070D, 47233 }, - { 0x070E, 46129 }, - { 0x070F, 46138 }, - { 0x0710, 46281 }, - { 0x0711, 46291 }, - { 0x0712, 45390 }, - { 0x0713, 47043 }, - { 0x0714, 47052 }, - { 0x0715, 45569 }, - { 0x0716, 68565 }, - { 0x0717, 68670 }, - { 0x0718, 68613 }, - { 0x0719, 68571 }, - { 0x071A, 68562 }, - { 0x071B, 68667 }, - { 0x071C, 68604 }, - { 0x071D, 68595 }, - { 0x071E, 68622 }, - { 0x071F, 68610 }, - { 0x0720, 68598 }, - { 0x0721, 68631 }, - { 0x0722, 68589 }, - { 0x0723, 68607 }, - { 0x0724, 68601 }, - { 0x0725, 68664 }, - { 0x0726, 68619 }, - { 0x0727, 68646 }, - { 0x0728, 68658 }, - { 0x0729, 68655 }, - { 0x072A, 68574 }, - { 0x072B, 68652 }, - { 0x072C, 68649 }, - { 0x072D, 68661 }, - { 0x072E, 68592 }, - { 0x072F, 68583 }, - { 0x0730, 68586 }, - { 0x0731, 68643 }, - { 0x0732, 68577 }, - { 0x0733, 68640 }, - { 0x0734, 68637 }, - { 0x0735, 68628 }, - { 0x0736, 68556 }, - { 0x0737, 68559 }, - { 0x0738, 68580 }, - { 0x0739, 68634 }, - { 0x073A, 68616 }, - { 0x073B, 68625 }, - { 0x073C, 68673 }, - { 0x073D, 68683 }, - { 0x073E, 68677 }, - { 0x073F, 68685 }, - { 0x0740, 68681 }, - { 0x0741, 68691 }, - { 0x0742, 68675 }, - { 0x0743, 68687 }, - { 0x0744, 68679 }, - { 0x0745, 68689 }, - { 0x0746, 68554 }, - { 0x0747, 68568 }, - { 0x0748, 7813 }, - { 0x0749, 7795 }, - { 0x074A, 7801 }, - { 0x074B, 7822 }, - { 0x074C, 7807 }, - { 0x074D, 7804 }, - { 0x074E, 7798 }, - { 0x074F, 7819 }, - { 0x0750, 7816 }, - { 0x0751, 7810 }, - { 0x0752, 7831 }, - { 0x0753, 7855 }, - { 0x0754, 7837 }, - { 0x0755, 7834 }, - { 0x0756, 7846 }, - { 0x0757, 7883 }, - { 0x0758, 7843 }, - { 0x0759, 7932 }, - { 0x075A, 7840 }, - { 0x075B, 7849 }, - { 0x075C, 7886 }, - { 0x075D, 7895 }, - { 0x075E, 7864 }, - { 0x075F, 7904 }, - { 0x0760, 7852 }, - { 0x0761, 7889 }, - { 0x0762, 7917 }, - { 0x0763, 7892 }, - { 0x0764, 7907 }, - { 0x0765, 7858 }, - { 0x0766, 7867 }, - { 0x0767, 7870 }, - { 0x0768, 7879 }, - { 0x0769, 7873 }, - { 0x076A, 7910 }, - { 0x076B, 7876 }, - { 0x076C, 7861 }, - { 0x076D, 7898 }, - { 0x076E, 7901 }, - { 0x076F, 7913 }, - { 0x0770, 7920 }, - { 0x0771, 7928 }, - { 0x0772, 7924 }, - { 0x0773, 7967 }, - { 0x0774, 7962 }, - { 0x0775, 7972 }, - { 0x0776, 7957 }, - { 0x0777, 7947 }, - { 0x0778, 7942 }, - { 0x0779, 7952 }, - { 0x077A, 7982 }, - { 0x077B, 7977 }, - { 0x077C, 7789 }, - { 0x077D, 7785 }, - { 0x077E, 7935 }, - { 0x077F, 7939 }, - { 0x0780, 7793 }, - { 0x0781, 7990 }, - { 0x0782, 7988 }, - { 0x0783, 7986 }, - { 0x0784, 7828 }, - { 0x0785, 7825 }, - { 0x0786, 127827 }, - { 0x0787, 127806 }, - { 0x0788, 127845 }, - { 0x0789, 127842 }, - { 0x078A, 127800 }, - { 0x078B, 127803 }, - { 0x078C, 127824 }, - { 0x078D, 127797 }, - { 0x078E, 127818 }, - { 0x078F, 127821 }, - { 0x0790, 127830 }, - { 0x0791, 127848 }, - { 0x0792, 127809 }, - { 0x0793, 127812 }, - { 0x0794, 127851 }, - { 0x0795, 127794 }, - { 0x0796, 127791 }, - { 0x0797, 127854 }, - { 0x0798, 127815 }, - { 0x0799, 127833 }, - { 0x079A, 127836 }, - { 0x079B, 127839 }, - { 0x079C, 127704 }, - { 0x079D, 127710 }, - { 0x079E, 127716 }, - { 0x079F, 127707 }, - { 0x07A0, 127866 }, - { 0x07A1, 127719 }, - { 0x07A2, 127752 }, - { 0x07A3, 127727 }, - { 0x07A4, 127786 }, - { 0x07A5, 127767 }, - { 0x07A6, 127743 }, - { 0x07A7, 127781 }, - { 0x07A8, 127747 }, - { 0x07A9, 127723 }, - { 0x07AA, 127861 }, - { 0x07AB, 127772 }, - { 0x07AC, 127762 }, - { 0x07AD, 127739 }, - { 0x07AE, 127857 }, - { 0x07AF, 127757 }, - { 0x07B0, 127731 }, - { 0x07B1, 127735 }, - { 0x07B2, 127777 }, - { 0x07B3, 127713 }, - { 0x07B4, 127909 }, - { 0x07B5, 127893 }, - { 0x07B6, 127884 }, - { 0x07B7, 127871 }, - { 0x07B8, 127899 }, - { 0x07B9, 127912 }, - { 0x07BA, 127915 }, - { 0x07BB, 127905 }, - { 0x07BC, 127890 }, - { 0x07BD, 127887 }, - { 0x07BE, 127881 }, - { 0x07BF, 127878 }, - { 0x07C0, 127902 }, - { 0x07C1, 127874 }, - { 0x07C2, 127896 }, - { 0x07C3, 74655 }, - { 0x07C4, 74589 }, - { 0x07C5, 74595 }, - { 0x07C6, 74592 }, - { 0x07C7, 74598 }, - { 0x07C8, 74658 }, - { 0x07C9, 74628 }, - { 0x07CA, 74634 }, - { 0x07CB, 74646 }, - { 0x07CC, 74652 }, - { 0x07CD, 74601 }, - { 0x07CE, 74604 }, - { 0x07CF, 74607 }, - { 0x07D0, 74610 }, - { 0x07D1, 74622 }, - { 0x07D2, 74631 }, - { 0x07D3, 74613 }, - { 0x07D4, 74643 }, - { 0x07D5, 74616 }, - { 0x07D6, 74619 }, - { 0x07D7, 74640 }, - { 0x07D8, 74625 }, - { 0x07D9, 74661 }, - { 0x07DA, 74649 }, - { 0x07DB, 74637 }, - { 0x07DC, 74667 }, - { 0x07DD, 74672 }, - { 0x07DE, 74664 }, - { 0x07DF, 74670 }, - { 0x07E0, 66247 }, - { 0x07E1, 66231 }, - { 0x07E2, 66255 }, - { 0x07E3, 66263 }, - { 0x07E4, 66251 }, - { 0x07E5, 66271 }, - { 0x07E6, 66239 }, - { 0x07E7, 66235 }, - { 0x07E8, 66243 }, - { 0x07E9, 66267 }, - { 0x07EA, 66259 }, - { 0x07EB, 46519 }, - { 0x07EC, 46474 }, - { 0x07ED, 46447 }, - { 0x07EE, 46360 }, - { 0x07EF, 46525 }, - { 0x07F0, 46562 }, - { 0x07F1, 46546 }, - { 0x07F2, 46538 }, - { 0x07F3, 46511 }, - { 0x07F4, 46554 }, - { 0x07F5, 46354 }, - { 0x07F6, 46482 }, - { 0x07F7, 46454 }, - { 0x07F8, 46570 }, - { 0x07F9, 46493 }, - { 0x07FA, 46464 }, - { 0x07FB, 46581 }, - { 0x07FC, 46531 }, - { 0x07FD, 46504 }, - { 0x07FE, 47880 }, - { 0x07FF, 47875 }, - { 0x0800, 47864 }, - { 0x0801, 47114 }, - { 0x0802, 47885 }, - { 0x0803, 47732 }, - { 0x0804, 46908 }, - { 0x0805, 45399 }, - { 0x0806, 45932 }, - { 0x0807, 45960 }, - { 0x0808, 47344 }, - { 0x0809, 51754 }, - { 0x080A, 44457 }, - { 0x080B, 47851 }, - { 0x080C, 44451 }, - { 0x080D, 44626 }, - { 0x080E, 44513 }, - { 0x080F, 44508 }, - { 0x0810, 44518 }, - { 0x0811, 44448 }, - { 0x0812, 51771 }, - { 0x0813, 47845 }, - { 0x0814, 44230 }, - { 0x0815, 45002 }, - { 0x0816, 44990 }, - { 0x0817, 46759 }, - { 0x0818, 45938 }, - { 0x0819, 45213 }, - { 0x081A, 45734 }, - { 0x081B, 45659 }, - { 0x081C, 46841 }, - { 0x081D, 46170 }, - { 0x081E, 46160 }, - { 0x081F, 45817 }, - { 0x0820, 46089 }, - { 0x0821, 47706 }, - { 0x0822, 45685 }, - { 0x0823, 45160 }, - { 0x0824, 45902 }, - { 0x0825, 45295 }, - { 0x0826, 47710 }, - { 0x0827, 47150 }, - { 0x0828, 44931 }, - { 0x0829, 45563 }, - { 0x082A, 45740 }, - { 0x082B, 45009 }, - { 0x082C, 45698 }, - { 0x082D, 46001 }, - { 0x082E, 45846 }, - { 0x082F, 46180 }, - { 0x0830, 47615 }, - { 0x0831, 47619 }, - { 0x0832, 47631 }, - { 0x0833, 45692 }, - { 0x0834, 45995 }, - { 0x0835, 47121 }, - { 0x0836, 47512 }, - { 0x0837, 47352 }, - { 0x0838, 47293 }, - { 0x0839, 47623 }, - { 0x083A, 46766 }, - { 0x083B, 46773 }, - { 0x083C, 45636 }, - { 0x083D, 46711 }, - { 0x083E, 44732 }, - { 0x083F, 44655 }, - { 0x0840, 44558 }, - { 0x0841, 44611 }, - { 0x0842, 44567 }, - { 0x0843, 44427 }, - { 0x0844, 44432 }, - { 0x0845, 44750 }, - { 0x0846, 44444 }, - { 0x0847, 44437 }, - { 0x0848, 44475 }, - { 0x0849, 44631 }, - { 0x084A, 44542 }, - { 0x084B, 44529 }, - { 0x084C, 44538 }, - { 0x084D, 44591 }, - { 0x084E, 44483 }, - { 0x084F, 44646 }, - { 0x0850, 44641 }, - { 0x0851, 44636 }, - { 0x0852, 44616 }, - { 0x0853, 44606 }, - { 0x0854, 44621 }, - { 0x0855, 44687 }, - { 0x0856, 44601 }, - { 0x0857, 47895 }, - { 0x0858, 47838 }, - { 0x0859, 44343 }, - { 0x085A, 44340 }, - { 0x085B, 44346 }, - { 0x085C, 44352 }, - { 0x085D, 44349 }, - { 0x085E, 44355 }, - { 0x085F, 44306 }, - { 0x0860, 44316 }, - { 0x0861, 44326 }, - { 0x0862, 44311 }, - { 0x0863, 44321 }, - { 0x0864, 44330 }, - { 0x0865, 44255 }, - { 0x0866, 44252 }, - { 0x0867, 44258 }, - { 0x0868, 44550 }, - { 0x0869, 44394 }, - { 0x086A, 44384 }, - { 0x086B, 44414 }, - { 0x086C, 44235 }, - { 0x086D, 44461 }, - { 0x086E, 44239 }, - { 0x086F, 44471 }, - { 0x0870, 44779 }, - { 0x0871, 44784 }, - { 0x0872, 44465 }, - { 0x0873, 44360 }, - { 0x0874, 44247 }, - { 0x0875, 129868 }, - { 0x0876, 129880 }, - { 0x0877, 129852 }, - { 0x0878, 129839 }, - { 0x0879, 130255 }, - { 0x087A, 130053 }, - { 0x087B, 130068 }, - { 0x087C, 130059 }, - { 0x087D, 130101 }, - { 0x087E, 130065 }, - { 0x087F, 130140 }, - { 0x0880, 130291 }, - { 0x0881, 130287 }, - { 0x0882, 130271 }, - { 0x0883, 130259 }, - { 0x0884, 130056 }, - { 0x0885, 130071 }, - { 0x0886, 130275 }, - { 0x0887, 130263 }, - { 0x0888, 130062 }, - { 0x0889, 130074 }, - { 0x088A, 130107 }, - { 0x088B, 130179 }, - { 0x088C, 130095 }, - { 0x088D, 130170 }, - { 0x088E, 130185 }, - { 0x088F, 130086 }, - { 0x0890, 130158 }, - { 0x0891, 130104 }, - { 0x0892, 130173 }, - { 0x0893, 130191 }, - { 0x0894, 130215 }, - { 0x0895, 130245 }, - { 0x0896, 130161 }, - { 0x0897, 130230 }, - { 0x0898, 130188 }, - { 0x0899, 130134 }, - { 0x089A, 130212 }, - { 0x089B, 130089 }, - { 0x089C, 130164 }, - { 0x089D, 130116 }, - { 0x089E, 130242 }, - { 0x089F, 130122 }, - { 0x08A0, 130197 }, - { 0x08A1, 130083 }, - { 0x08A2, 130155 }, - { 0x08A3, 130113 }, - { 0x08A4, 130146 }, - { 0x08A5, 130128 }, - { 0x08A6, 130203 }, - { 0x08A7, 130110 }, - { 0x08A8, 130182 }, - { 0x08A9, 130239 }, - { 0x08AA, 130143 }, - { 0x08AB, 130206 }, - { 0x08AC, 130209 }, - { 0x08AD, 130131 }, - { 0x08AE, 130098 }, - { 0x08AF, 129979 }, - { 0x08B0, 129991 }, - { 0x08B1, 129821 }, - { 0x08B2, 129855 }, - { 0x08B3, 129955 }, - { 0x08B4, 129943 }, - { 0x08B5, 129975 }, - { 0x08B6, 129951 }, - { 0x08B7, 129987 }, - { 0x08B8, 130030 }, - { 0x08B9, 130040 }, - { 0x08BA, 130009 }, - { 0x08BB, 129999 }, - { 0x08BC, 129939 }, - { 0x08BD, 129959 }, - { 0x08BE, 130014 }, - { 0x08BF, 130004 }, - { 0x08C0, 129947 }, - { 0x08C1, 129963 }, - { 0x08C2, 129829 }, - { 0x08C3, 130045 }, - { 0x08C4, 129967 }, - { 0x08C5, 129789 }, - { 0x08C6, 130303 }, - { 0x08C7, 130307 }, - { 0x08C8, 129936 }, - { 0x08C9, 129899 }, - { 0x08CA, 130019 }, - { 0x08CB, 129983 }, - { 0x08CC, 129995 }, - { 0x08CD, 130125 }, - { 0x08CE, 130236 }, - { 0x08CF, 130233 }, - { 0x08D0, 130149 }, - { 0x08D1, 130248 }, - { 0x08D2, 130200 }, - { 0x08D3, 130092 }, - { 0x08D4, 130221 }, - { 0x08D5, 130299 }, - { 0x08D6, 130295 }, - { 0x08D7, 130025 }, - { 0x08D8, 130035 }, - { 0x08D9, 129904 }, - { 0x08DA, 130050 }, - { 0x08DB, 129924 }, - { 0x08DC, 129906 }, - { 0x08DD, 129912 }, - { 0x08DE, 129933 }, - { 0x08DF, 129918 }, - { 0x08E0, 129915 }, - { 0x08E1, 129909 }, - { 0x08E2, 129930 }, - { 0x08E3, 129927 }, - { 0x08E4, 129921 }, - { 0x08E5, 130313 }, - { 0x08E6, 129805 }, - { 0x08E7, 130267 }, - { 0x08E8, 130119 }, - { 0x08E9, 130194 }, - { 0x08EA, 130077 }, - { 0x08EB, 130137 }, - { 0x08EC, 130218 }, - { 0x08ED, 130283 }, - { 0x08EE, 130224 }, - { 0x08EF, 130251 }, - { 0x08F0, 130167 }, - { 0x08F1, 130176 }, - { 0x08F2, 130279 }, - { 0x08F3, 130227 }, - { 0x08F4, 130152 }, - { 0x08F5, 70068 }, - { 0x08F6, 70085 }, - { 0x08F7, 70079 }, - { 0x08F8, 70076 }, - { 0x08F9, 70185 }, - { 0x08FA, 70200 }, - { 0x08FB, 70191 }, - { 0x08FC, 70224 }, - { 0x08FD, 70197 }, - { 0x08FE, 70266 }, - { 0x08FF, 70344 }, - { 0x0900, 70340 }, - { 0x0901, 70188 }, - { 0x0902, 70203 }, - { 0x0903, 70194 }, - { 0x0904, 70206 }, - { 0x0905, 70230 }, - { 0x0906, 70290 }, - { 0x0907, 70218 }, - { 0x0908, 70284 }, - { 0x0909, 70293 }, - { 0x090A, 70212 }, - { 0x090B, 70275 }, - { 0x090C, 70227 }, - { 0x090D, 70287 }, - { 0x090E, 70299 }, - { 0x090F, 70320 }, - { 0x0910, 70329 }, - { 0x0911, 70278 }, - { 0x0912, 70326 }, - { 0x0913, 70296 }, - { 0x0914, 70263 }, - { 0x0915, 70317 }, - { 0x0916, 70215 }, - { 0x0917, 70281 }, - { 0x0918, 70239 }, - { 0x0919, 70242 }, - { 0x091A, 70302 }, - { 0x091B, 70209 }, - { 0x091C, 70272 }, - { 0x091D, 70236 }, - { 0x091E, 70269 }, - { 0x091F, 70245 }, - { 0x0920, 70233 }, - { 0x0921, 70311 }, - { 0x0922, 70314 }, - { 0x0923, 70260 }, - { 0x0924, 70221 }, - { 0x0925, 70070 }, - { 0x0926, 70082 }, - { 0x0927, 70143 }, - { 0x0928, 70131 }, - { 0x0929, 70155 }, - { 0x092A, 70139 }, - { 0x092B, 70159 }, - { 0x092C, 70168 }, - { 0x092D, 70178 }, - { 0x092E, 70127 }, - { 0x092F, 70147 }, - { 0x0930, 70135 }, - { 0x0931, 70151 }, - { 0x0932, 70073 }, - { 0x0933, 70336 }, - { 0x0934, 70064 }, - { 0x0935, 70308 }, - { 0x0936, 70305 }, - { 0x0937, 70323 }, - { 0x0938, 70352 }, - { 0x0939, 70348 }, - { 0x093A, 70163 }, - { 0x093B, 70173 }, - { 0x093C, 70106 }, - { 0x093D, 70088 }, - { 0x093E, 70094 }, - { 0x093F, 70115 }, - { 0x0940, 70100 }, - { 0x0941, 70097 }, - { 0x0942, 70091 }, - { 0x0943, 70112 }, - { 0x0944, 70109 }, - { 0x0945, 70103 }, - { 0x0946, 70254 }, - { 0x0947, 70248 }, - { 0x0948, 70121 }, - { 0x0949, 70124 }, - { 0x094A, 70359 }, - { 0x094B, 70371 }, - { 0x094C, 70379 }, - { 0x094D, 70375 }, - { 0x094E, 70363 }, - { 0x094F, 70383 }, - { 0x0950, 70183 }, - { 0x0951, 70118 }, - { 0x0952, 70332 }, - { 0x0953, 70387 }, - { 0x0954, 70356 }, - { 0x0955, 104515 }, - { 0x0956, 104519 }, - { 0x0957, 104534 }, - { 0x0958, 104607 }, - { 0x0959, 104616 }, - { 0x095A, 104610 }, - { 0x095B, 104646 }, - { 0x095C, 104613 }, - { 0x095D, 104679 }, - { 0x095E, 104634 }, - { 0x095F, 104619 }, - { 0x0960, 104664 }, - { 0x0961, 104622 }, - { 0x0962, 104652 }, - { 0x0963, 104709 }, - { 0x0964, 104640 }, - { 0x0965, 104703 }, - { 0x0966, 104715 }, - { 0x0967, 104628 }, - { 0x0968, 104694 }, - { 0x0969, 104649 }, - { 0x096A, 104706 }, - { 0x096B, 104721 }, - { 0x096C, 104736 }, - { 0x096D, 104748 }, - { 0x096E, 104697 }, - { 0x096F, 104739 }, - { 0x0970, 104718 }, - { 0x0971, 104676 }, - { 0x0972, 104733 }, - { 0x0973, 104631 }, - { 0x0974, 104700 }, - { 0x0975, 104661 }, - { 0x0976, 104667 }, - { 0x0977, 104724 }, - { 0x0978, 104625 }, - { 0x0979, 104691 }, - { 0x097A, 104658 }, - { 0x097B, 104685 }, - { 0x097C, 104670 }, - { 0x097D, 104655 }, - { 0x097E, 104712 }, - { 0x097F, 104682 }, - { 0x0980, 104730 }, - { 0x0981, 104673 }, - { 0x0982, 104643 }, - { 0x0983, 104522 }, - { 0x0984, 104579 }, - { 0x0985, 104571 }, - { 0x0986, 104595 }, - { 0x0987, 104575 }, - { 0x0988, 104603 }, - { 0x0989, 104591 }, - { 0x098A, 104583 }, - { 0x098B, 104599 }, - { 0x098C, 104587 }, - { 0x098D, 104528 }, - { 0x098E, 104525 }, - { 0x098F, 104745 }, - { 0x0990, 104742 }, - { 0x0991, 104688 }, - { 0x0992, 104727 }, - { 0x0993, 104637 }, - { 0x0994, 104557 }, - { 0x0995, 104539 }, - { 0x0996, 104545 }, - { 0x0997, 104566 }, - { 0x0998, 104551 }, - { 0x0999, 104548 }, - { 0x099A, 104542 }, - { 0x099B, 104563 }, - { 0x099C, 104560 }, - { 0x099D, 104554 }, - { 0x099E, 104569 }, - { 0x099F, 104537 }, - { 0x09A0, 104511 }, - { 0x09A1, 104513 }, - { 0x09A2, 104508 }, - { 0x09A3, 104531 }, - { 0x09A4, 104751 }, - { 0x09A5, 104244 }, - { 0x09A6, 104228 }, - { 0x09A7, 104225 }, - { 0x09A8, 104354 }, - { 0x09A9, 104369 }, - { 0x09AA, 104360 }, - { 0x09AB, 104393 }, - { 0x09AC, 104366 }, - { 0x09AD, 104423 }, - { 0x09AE, 104493 }, - { 0x09AF, 104489 }, - { 0x09B0, 104346 }, - { 0x09B1, 104357 }, - { 0x09B2, 104372 }, - { 0x09B3, 104350 }, - { 0x09B4, 104363 }, - { 0x09B5, 104375 }, - { 0x09B6, 104399 }, - { 0x09B7, 104450 }, - { 0x09B8, 104387 }, - { 0x09B9, 104444 }, - { 0x09BA, 104456 }, - { 0x09BB, 104381 }, - { 0x09BC, 104435 }, - { 0x09BD, 104396 }, - { 0x09BE, 104447 }, - { 0x09BF, 104462 }, - { 0x09C0, 104477 }, - { 0x09C1, 104486 }, - { 0x09C2, 104438 }, - { 0x09C3, 104483 }, - { 0x09C4, 104459 }, - { 0x09C5, 104420 }, - { 0x09C6, 104474 }, - { 0x09C7, 104384 }, - { 0x09C8, 104441 }, - { 0x09C9, 104408 }, - { 0x09CA, 104411 }, - { 0x09CB, 104465 }, - { 0x09CC, 104378 }, - { 0x09CD, 104432 }, - { 0x09CE, 104405 }, - { 0x09CF, 104429 }, - { 0x09D0, 104414 }, - { 0x09D1, 104402 }, - { 0x09D2, 104453 }, - { 0x09D3, 104426 }, - { 0x09D4, 104468 }, - { 0x09D5, 104471 }, - { 0x09D6, 104417 }, - { 0x09D7, 104390 }, - { 0x09D8, 104205 }, - { 0x09D9, 104231 }, - { 0x09DA, 104296 }, - { 0x09DB, 104284 }, - { 0x09DC, 104308 }, - { 0x09DD, 104292 }, - { 0x09DE, 104312 }, - { 0x09DF, 104331 }, - { 0x09E0, 104341 }, - { 0x09E1, 104316 }, - { 0x09E2, 104280 }, - { 0x09E3, 104300 }, - { 0x09E4, 104321 }, - { 0x09E5, 104288 }, - { 0x09E6, 104304 }, - { 0x09E7, 104222 }, - { 0x09E8, 104203 }, - { 0x09E9, 104501 }, - { 0x09EA, 104497 }, - { 0x09EB, 104326 }, - { 0x09EC, 104336 }, - { 0x09ED, 104265 }, - { 0x09EE, 104247 }, - { 0x09EF, 104253 }, - { 0x09F0, 104274 }, - { 0x09F1, 104259 }, - { 0x09F2, 104256 }, - { 0x09F3, 104250 }, - { 0x09F4, 104271 }, - { 0x09F5, 104268 }, - { 0x09F6, 104262 }, - { 0x09F7, 104505 }, - { 0x09F8, 104277 }, - { 0x09F9, 104480 }, - { 0x09FA, 104208 }, - { 0x09FB, 104219 }, - { 0x09FC, 104216 }, - { 0x09FD, 104234 }, - { 0x09FE, 104211 }, - { 0x09FF, 104239 }, - { 0x0A00, 39667 }, - { 0x0A01, 39658 }, - { 0x0A02, 39655 }, - { 0x0A03, 39758 }, - { 0x0A04, 39773 }, - { 0x0A05, 39764 }, - { 0x0A06, 39797 }, - { 0x0A07, 39770 }, - { 0x0A08, 39827 }, - { 0x0A09, 39906 }, - { 0x0A0A, 39902 }, - { 0x0A0B, 39761 }, - { 0x0A0C, 39776 }, - { 0x0A0D, 39767 }, - { 0x0A0E, 39779 }, - { 0x0A0F, 39803 }, - { 0x0A10, 39857 }, - { 0x0A11, 39791 }, - { 0x0A12, 39851 }, - { 0x0A13, 39863 }, - { 0x0A14, 39785 }, - { 0x0A15, 39842 }, - { 0x0A16, 39800 }, - { 0x0A17, 39854 }, - { 0x0A18, 39869 }, - { 0x0A19, 39890 }, - { 0x0A1A, 39899 }, - { 0x0A1B, 39845 }, - { 0x0A1C, 39896 }, - { 0x0A1D, 39866 }, - { 0x0A1E, 39824 }, - { 0x0A1F, 39887 }, - { 0x0A20, 39788 }, - { 0x0A21, 39848 }, - { 0x0A22, 39812 }, - { 0x0A23, 39815 }, - { 0x0A24, 39872 }, - { 0x0A25, 39782 }, - { 0x0A26, 39839 }, - { 0x0A27, 39809 }, - { 0x0A28, 39836 }, - { 0x0A29, 39818 }, - { 0x0A2A, 39806 }, - { 0x0A2B, 39860 }, - { 0x0A2C, 39830 }, - { 0x0A2D, 39881 }, - { 0x0A2E, 39884 }, - { 0x0A2F, 39821 }, - { 0x0A30, 39794 }, - { 0x0A31, 39649 }, - { 0x0A32, 39661 }, - { 0x0A33, 39716 }, - { 0x0A34, 39704 }, - { 0x0A35, 39728 }, - { 0x0A36, 39712 }, - { 0x0A37, 39732 }, - { 0x0A38, 39741 }, - { 0x0A39, 39751 }, - { 0x0A3A, 39700 }, - { 0x0A3B, 39720 }, - { 0x0A3C, 39708 }, - { 0x0A3D, 39724 }, - { 0x0A3E, 39652 }, - { 0x0A3F, 39664 }, - { 0x0A40, 39641 }, - { 0x0A41, 39645 }, - { 0x0A42, 39878 }, - { 0x0A43, 39875 }, - { 0x0A44, 39893 }, - { 0x0A45, 39914 }, - { 0x0A46, 39910 }, - { 0x0A47, 39736 }, - { 0x0A48, 39746 }, - { 0x0A49, 39688 }, - { 0x0A4A, 39670 }, - { 0x0A4B, 39676 }, - { 0x0A4C, 39697 }, - { 0x0A4D, 39682 }, - { 0x0A4E, 39679 }, - { 0x0A4F, 39673 }, - { 0x0A50, 39694 }, - { 0x0A51, 39691 }, - { 0x0A52, 39685 }, - { 0x0A53, 39756 }, - { 0x0A54, 39833 }, - { 0x0A55, 39926 }, - { 0x0A56, 39918 }, - { 0x0A57, 39934 }, - { 0x0A58, 39930 }, - { 0x0A59, 39922 }, - { 0x0A5A, 39938 }, - { 0x0A5B, 41970 }, - { 0x0A5C, 41967 }, - { 0x0A5D, 42089 }, - { 0x0A5E, 42104 }, - { 0x0A5F, 42095 }, - { 0x0A60, 42122 }, - { 0x0A61, 42101 }, - { 0x0A62, 42155 }, - { 0x0A63, 42092 }, - { 0x0A64, 42116 }, - { 0x0A65, 42107 }, - { 0x0A66, 42098 }, - { 0x0A67, 42140 }, - { 0x0A68, 42110 }, - { 0x0A69, 42128 }, - { 0x0A6A, 42167 }, - { 0x0A6B, 42113 }, - { 0x0A6C, 42125 }, - { 0x0A6D, 42173 }, - { 0x0A6E, 42185 }, - { 0x0A6F, 42170 }, - { 0x0A70, 42152 }, - { 0x0A71, 42137 }, - { 0x0A72, 42191 }, - { 0x0A73, 42143 }, - { 0x0A74, 42134 }, - { 0x0A75, 42161 }, - { 0x0A76, 42146 }, - { 0x0A77, 42176 }, - { 0x0A78, 42131 }, - { 0x0A79, 42164 }, - { 0x0A7A, 42188 }, - { 0x0A7B, 42158 }, - { 0x0A7C, 42179 }, - { 0x0A7D, 42182 }, - { 0x0A7E, 42149 }, - { 0x0A7F, 42119 }, - { 0x0A80, 42058 }, - { 0x0A81, 42046 }, - { 0x0A82, 42074 }, - { 0x0A83, 42054 }, - { 0x0A84, 42082 }, - { 0x0A85, 42042 }, - { 0x0A86, 42070 }, - { 0x0A87, 42062 }, - { 0x0A88, 42050 }, - { 0x0A89, 42078 }, - { 0x0A8A, 42066 }, - { 0x0A8B, 41961 }, - { 0x0A8C, 41910 }, - { 0x0A8D, 41902 }, - { 0x0A8E, 42018 }, - { 0x0A8F, 42000 }, - { 0x0A90, 42006 }, - { 0x0A91, 42027 }, - { 0x0A92, 42012 }, - { 0x0A93, 42009 }, - { 0x0A94, 42003 }, - { 0x0A95, 42024 }, - { 0x0A96, 42021 }, - { 0x0A97, 42015 }, - { 0x0A98, 42202 }, - { 0x0A99, 42194 }, - { 0x0A9A, 42198 }, - { 0x0A9B, 41916 }, - { 0x0A9C, 42030 }, - { 0x0A9D, 41994 }, - { 0x0A9E, 41997 }, - { 0x0A9F, 42086 }, - { 0x0AA0, 41898 }, - { 0x0AA1, 42033 }, - { 0x0AA2, 42205 }, - { 0x0AA3, 68209 }, - { 0x0AA4, 68214 }, - { 0x0AA5, 68198 }, - { 0x0AA6, 68195 }, - { 0x0AA7, 68204 }, - { 0x0AA8, 68314 }, - { 0x0AA9, 68329 }, - { 0x0AAA, 68320 }, - { 0x0AAB, 68356 }, - { 0x0AAC, 68326 }, - { 0x0AAD, 68389 }, - { 0x0AAE, 68475 }, - { 0x0AAF, 68471 }, - { 0x0AB0, 68317 }, - { 0x0AB1, 68347 }, - { 0x0AB2, 68332 }, - { 0x0AB3, 68323 }, - { 0x0AB4, 68374 }, - { 0x0AB5, 68335 }, - { 0x0AB6, 68362 }, - { 0x0AB7, 68419 }, - { 0x0AB8, 68350 }, - { 0x0AB9, 68413 }, - { 0x0ABA, 68425 }, - { 0x0ABB, 68341 }, - { 0x0ABC, 68401 }, - { 0x0ABD, 68359 }, - { 0x0ABE, 68416 }, - { 0x0ABF, 68431 }, - { 0x0AC0, 68452 }, - { 0x0AC1, 68464 }, - { 0x0AC2, 68404 }, - { 0x0AC3, 68455 }, - { 0x0AC4, 68428 }, - { 0x0AC5, 68386 }, - { 0x0AC6, 68446 }, - { 0x0AC7, 68344 }, - { 0x0AC8, 68407 }, - { 0x0AC9, 68371 }, - { 0x0ACA, 68377 }, - { 0x0ACB, 68434 }, - { 0x0ACC, 68338 }, - { 0x0ACD, 68398 }, - { 0x0ACE, 68368 }, - { 0x0ACF, 68395 }, - { 0x0AD0, 68380 }, - { 0x0AD1, 68437 }, - { 0x0AD2, 68365 }, - { 0x0AD3, 68422 }, - { 0x0AD4, 68458 }, - { 0x0AD5, 68392 }, - { 0x0AD6, 68440 }, - { 0x0AD7, 68443 }, - { 0x0AD8, 68383 }, - { 0x0AD9, 68353 }, - { 0x0ADA, 68183 }, - { 0x0ADB, 68201 }, - { 0x0ADC, 68263 }, - { 0x0ADD, 68251 }, - { 0x0ADE, 68279 }, - { 0x0ADF, 68259 }, - { 0x0AE0, 68287 }, - { 0x0AE1, 68296 }, - { 0x0AE2, 68306 }, - { 0x0AE3, 68247 }, - { 0x0AE4, 68275 }, - { 0x0AE5, 68267 }, - { 0x0AE6, 68255 }, - { 0x0AE7, 68283 }, - { 0x0AE8, 68271 }, - { 0x0AE9, 68189 }, - { 0x0AEA, 68311 }, - { 0x0AEB, 68179 }, - { 0x0AEC, 68449 }, - { 0x0AED, 68410 }, - { 0x0AEE, 68461 }, - { 0x0AEF, 68467 }, - { 0x0AF0, 68483 }, - { 0x0AF1, 68479 }, - { 0x0AF2, 68291 }, - { 0x0AF3, 68301 }, - { 0x0AF4, 68235 }, - { 0x0AF5, 68217 }, - { 0x0AF6, 68223 }, - { 0x0AF7, 68244 }, - { 0x0AF8, 68229 }, - { 0x0AF9, 68226 }, - { 0x0AFA, 68220 }, - { 0x0AFB, 68241 }, - { 0x0AFC, 68238 }, - { 0x0AFD, 68232 }, - { 0x0AFE, 68192 }, - { 0x0AFF, 68523 }, - { 0x0B00, 68487 }, - { 0x0B01, 68505 }, - { 0x0B02, 68532 }, - { 0x0B03, 68496 }, - { 0x0B04, 68514 }, - { 0x0B05, 68541 }, - { 0x0B06, 68186 }, - { 0x0B07, 73929 }, - { 0x0B08, 73948 }, - { 0x0B09, 73936 }, - { 0x0B0A, 73933 }, - { 0x0B0B, 73926 }, - { 0x0B0C, 74054 }, - { 0x0B0D, 74069 }, - { 0x0B0E, 74060 }, - { 0x0B0F, 74099 }, - { 0x0B10, 74066 }, - { 0x0B11, 74132 }, - { 0x0B12, 74209 }, - { 0x0B13, 74205 }, - { 0x0B14, 74057 }, - { 0x0B15, 74087 }, - { 0x0B16, 74072 }, - { 0x0B17, 74063 }, - { 0x0B18, 74117 }, - { 0x0B19, 74075 }, - { 0x0B1A, 74105 }, - { 0x0B1B, 74159 }, - { 0x0B1C, 74093 }, - { 0x0B1D, 74153 }, - { 0x0B1E, 74165 }, - { 0x0B1F, 74081 }, - { 0x0B20, 74144 }, - { 0x0B21, 74102 }, - { 0x0B22, 74156 }, - { 0x0B23, 74171 }, - { 0x0B24, 74189 }, - { 0x0B25, 74198 }, - { 0x0B26, 74147 }, - { 0x0B27, 74192 }, - { 0x0B28, 74168 }, - { 0x0B29, 74129 }, - { 0x0B2A, 74186 }, - { 0x0B2B, 74084 }, - { 0x0B2C, 74150 }, - { 0x0B2D, 74114 }, - { 0x0B2E, 74120 }, - { 0x0B2F, 74174 }, - { 0x0B30, 74078 }, - { 0x0B31, 74141 }, - { 0x0B32, 74111 }, - { 0x0B33, 74138 }, - { 0x0B34, 74123 }, - { 0x0B35, 74177 }, - { 0x0B36, 74108 }, - { 0x0B37, 74162 }, - { 0x0B38, 74135 }, - { 0x0B39, 74180 }, - { 0x0B3A, 74183 }, - { 0x0B3B, 74126 }, - { 0x0B3C, 74096 }, - { 0x0B3D, 73920 }, - { 0x0B3E, 73939 }, - { 0x0B3F, 74003 }, - { 0x0B40, 73991 }, - { 0x0B41, 74019 }, - { 0x0B42, 73999 }, - { 0x0B43, 74027 }, - { 0x0B44, 74036 }, - { 0x0B45, 74046 }, - { 0x0B46, 73987 }, - { 0x0B47, 74015 }, - { 0x0B48, 74007 }, - { 0x0B49, 73995 }, - { 0x0B4A, 74023 }, - { 0x0B4B, 74011 }, - { 0x0B4C, 73923 }, - { 0x0B4D, 74051 }, - { 0x0B4E, 73916 }, - { 0x0B4F, 74201 }, - { 0x0B50, 74090 }, - { 0x0B51, 74217 }, - { 0x0B52, 74213 }, - { 0x0B53, 74031 }, - { 0x0B54, 74041 }, - { 0x0B55, 73975 }, - { 0x0B56, 73957 }, - { 0x0B57, 73963 }, - { 0x0B58, 73984 }, - { 0x0B59, 73969 }, - { 0x0B5A, 73966 }, - { 0x0B5B, 73960 }, - { 0x0B5C, 73981 }, - { 0x0B5D, 73978 }, - { 0x0B5E, 73972 }, - { 0x0B5F, 73951 }, - { 0x0B60, 73954 }, - { 0x0B61, 73942 }, - { 0x0B62, 126300 }, - { 0x0B63, 126305 }, - { 0x0B64, 126285 }, - { 0x0B65, 126282 }, - { 0x0B66, 126556 }, - { 0x0B67, 126402 }, - { 0x0B68, 126417 }, - { 0x0B69, 126408 }, - { 0x0B6A, 126444 }, - { 0x0B6B, 126414 }, - { 0x0B6C, 126477 }, - { 0x0B6D, 126604 }, - { 0x0B6E, 126600 }, - { 0x0B6F, 126405 }, - { 0x0B70, 126435 }, - { 0x0B71, 126420 }, - { 0x0B72, 126411 }, - { 0x0B73, 126462 }, - { 0x0B74, 126423 }, - { 0x0B75, 126450 }, - { 0x0B76, 126508 }, - { 0x0B77, 126438 }, - { 0x0B78, 126502 }, - { 0x0B79, 126514 }, - { 0x0B7A, 126429 }, - { 0x0B7B, 126489 }, - { 0x0B7C, 126447 }, - { 0x0B7D, 126505 }, - { 0x0B7E, 126520 }, - { 0x0B7F, 126538 }, - { 0x0B80, 126550 }, - { 0x0B81, 126492 }, - { 0x0B82, 126541 }, - { 0x0B83, 126517 }, - { 0x0B84, 126474 }, - { 0x0B85, 126535 }, - { 0x0B86, 126432 }, - { 0x0B87, 126495 }, - { 0x0B88, 126459 }, - { 0x0B89, 126547 }, - { 0x0B8A, 126465 }, - { 0x0B8B, 126523 }, - { 0x0B8C, 126426 }, - { 0x0B8D, 126486 }, - { 0x0B8E, 126456 }, - { 0x0B8F, 126483 }, - { 0x0B90, 126468 }, - { 0x0B91, 126526 }, - { 0x0B92, 126453 }, - { 0x0B93, 126511 }, - { 0x0B94, 126544 }, - { 0x0B95, 126480 }, - { 0x0B96, 126529 }, - { 0x0B97, 126532 }, - { 0x0B98, 126471 }, - { 0x0B99, 126441 }, - { 0x0B9A, 126553 }, - { 0x0B9B, 126295 }, - { 0x0B9C, 126291 }, - { 0x0B9D, 126288 }, - { 0x0B9E, 126354 }, - { 0x0B9F, 126342 }, - { 0x0BA0, 126370 }, - { 0x0BA1, 126350 }, - { 0x0BA2, 126378 }, - { 0x0BA3, 126387 }, - { 0x0BA4, 126397 }, - { 0x0BA5, 126338 }, - { 0x0BA6, 126366 }, - { 0x0BA7, 126358 }, - { 0x0BA8, 126346 }, - { 0x0BA9, 126374 }, - { 0x0BAA, 126362 }, - { 0x0BAB, 126279 }, - { 0x0BAC, 126498 }, - { 0x0BAD, 126276 }, - { 0x0BAE, 126568 }, - { 0x0BAF, 126576 }, - { 0x0BB0, 126592 }, - { 0x0BB1, 126269 }, - { 0x0BB2, 126659 }, - { 0x0BB3, 126647 }, - { 0x0BB4, 126667 }, - { 0x0BB5, 126655 }, - { 0x0BB6, 126635 }, - { 0x0BB7, 126675 }, - { 0x0BB8, 126631 }, - { 0x0BB9, 126596 }, - { 0x0BBA, 126612 }, - { 0x0BBB, 126608 }, - { 0x0BBC, 126382 }, - { 0x0BBD, 126392 }, - { 0x0BBE, 126326 }, - { 0x0BBF, 126308 }, - { 0x0BC0, 126314 }, - { 0x0BC1, 126335 }, - { 0x0BC2, 126320 }, - { 0x0BC3, 126317 }, - { 0x0BC4, 126311 }, - { 0x0BC5, 126332 }, - { 0x0BC6, 126329 }, - { 0x0BC7, 126323 }, - { 0x0BC8, 126624 }, - { 0x0BC9, 126616 }, - { 0x0BCA, 126620 }, - { 0x0BCB, 126643 }, - { 0x0BCC, 126627 }, - { 0x0BCD, 126663 }, - { 0x0BCE, 126651 }, - { 0x0BCF, 126639 }, - { 0x0BD0, 126671 }, - { 0x0BD1, 126273 }, - { 0x0BD2, 126584 }, - { 0x0BD3, 126572 }, - { 0x0BD4, 126588 }, - { 0x0BD5, 126564 }, - { 0x0BD6, 126580 }, - { 0x0BD7, 126560 }, - { 0x0BD8, 79675 }, - { 0x0BD9, 79672 }, - { 0x0BDA, 79669 }, - { 0x0BDB, 79767 }, - { 0x0BDC, 79782 }, - { 0x0BDD, 79785 }, - { 0x0BDE, 79869 }, - { 0x0BDF, 79773 }, - { 0x0BE0, 79815 }, - { 0x0BE1, 79779 }, - { 0x0BE2, 79860 }, - { 0x0BE3, 79875 }, - { 0x0BE4, 79881 }, - { 0x0BE5, 79872 }, - { 0x0BE6, 79878 }, - { 0x0BE7, 79770 }, - { 0x0BE8, 79806 }, - { 0x0BE9, 79788 }, - { 0x0BEA, 79776 }, - { 0x0BEB, 79825 }, - { 0x0BEC, 79791 }, - { 0x0BED, 79916 }, - { 0x0BEE, 79956 }, - { 0x0BEF, 79908 }, - { 0x0BF0, 79948 }, - { 0x0BF1, 79818 }, - { 0x0BF2, 79835 }, - { 0x0BF3, 79900 }, - { 0x0BF4, 79940 }, - { 0x0BF5, 79912 }, - { 0x0BF6, 79952 }, - { 0x0BF7, 79856 }, - { 0x0BF8, 79851 }, - { 0x0BF9, 79839 }, - { 0x0BFA, 79932 }, - { 0x0BFB, 79972 }, - { 0x0BFC, 79928 }, - { 0x0BFD, 79968 }, - { 0x0BFE, 79888 }, - { 0x0BFF, 79843 }, - { 0x0C00, 79924 }, - { 0x0C01, 79964 }, - { 0x0C02, 79904 }, - { 0x0C03, 79944 }, - { 0x0C04, 79798 }, - { 0x0C05, 79831 }, - { 0x0C06, 79920 }, - { 0x0C07, 79960 }, - { 0x0C08, 79896 }, - { 0x0C09, 79936 }, - { 0x0C0A, 79822 }, - { 0x0C0B, 79763 }, - { 0x0C0C, 79866 }, - { 0x0C0D, 79828 }, - { 0x0C0E, 79794 }, - { 0x0C0F, 79863 }, - { 0x0C10, 79847 }, - { 0x0C11, 79892 }, - { 0x0C12, 79802 }, - { 0x0C13, 79812 }, - { 0x0C14, 79884 }, - { 0x0C15, 79809 }, - { 0x0C16, 79666 }, - { 0x0C17, 79751 }, - { 0x0C18, 79718 }, - { 0x0C19, 79693 }, - { 0x0C1A, 79708 }, - { 0x0C1B, 79683 }, - { 0x0C1C, 79713 }, - { 0x0C1D, 79688 }, - { 0x0C1E, 79759 }, - { 0x0C1F, 79728 }, - { 0x0C20, 79678 }, - { 0x0C21, 79723 }, - { 0x0C22, 79739 }, - { 0x0C23, 79732 }, - { 0x0C24, 79745 }, - { 0x0C25, 79755 }, - { 0x0C26, 79650 }, - { 0x0C27, 79626 }, - { 0x0C28, 79634 }, - { 0x0C29, 79662 }, - { 0x0C2A, 79642 }, - { 0x0C2B, 79638 }, - { 0x0C2C, 79630 }, - { 0x0C2D, 79658 }, - { 0x0C2E, 79654 }, - { 0x0C2F, 79646 }, - { 0x0C30, 79703 }, - { 0x0C31, 79698 }, - { 0x0C32, 80058 }, - { 0x0C33, 17075 }, - { 0x0C34, 17165 }, - { 0x0C35, 17173 }, - { 0x0C36, 17177 }, - { 0x0C37, 17169 }, - { 0x0C38, 17181 }, - { 0x0C39, 17205 }, - { 0x0C3A, 17149 }, - { 0x0C3B, 17161 }, - { 0x0C3C, 17157 }, - { 0x0C3D, 17113 }, - { 0x0C3E, 17153 }, - { 0x0C3F, 17145 }, - { 0x0C40, 17055 }, - { 0x0C41, 17133 }, - { 0x0C42, 17221 }, - { 0x0C43, 17241 }, - { 0x0C44, 17237 }, - { 0x0C45, 17098 }, - { 0x0C46, 17051 }, - { 0x0C47, 17129 }, - { 0x0C48, 17229 }, - { 0x0C49, 17233 }, - { 0x0C4A, 17225 }, - { 0x0C4B, 17094 }, - { 0x0C4C, 17047 }, - { 0x0C4D, 17102 }, - { 0x0C4E, 17213 }, - { 0x0C4F, 17059 }, - { 0x0C50, 17209 }, - { 0x0C51, 17063 }, - { 0x0C52, 17217 }, - { 0x0C53, 17090 }, - { 0x0C54, 17141 }, - { 0x0C55, 17106 }, - { 0x0C56, 17110 }, - { 0x0C57, 17079 }, - { 0x0C58, 17087 }, - { 0x0C59, 17137 }, - { 0x0C5A, 17125 }, - { 0x0C5B, 17121 }, - { 0x0C5C, 17117 }, - { 0x0C5D, 17067 }, - { 0x0C5E, 17083 }, - { 0x0C5F, 17043 }, - { 0x0C60, 17071 }, - { 0x0C61, 17324 }, - { 0x0C62, 17245 }, - { 0x0C63, 17201 }, - { 0x0C64, 17265 }, - { 0x0C65, 17283 }, - { 0x0C66, 17253 }, - { 0x0C67, 17287 }, - { 0x0C68, 17291 }, - { 0x0C69, 17299 }, - { 0x0C6A, 17261 }, - { 0x0C6B, 17295 }, - { 0x0C6C, 17309 }, - { 0x0C6D, 17039 }, - { 0x0C6E, 17249 }, - { 0x0C6F, 17269 }, - { 0x0C70, 17257 }, - { 0x0C71, 17273 }, - { 0x0C72, 17278 }, - { 0x0C73, 17330 }, - { 0x0C74, 17312 }, - { 0x0C75, 17321 }, - { 0x0C76, 17185 }, - { 0x0C77, 17189 }, - { 0x0C78, 17193 }, - { 0x0C79, 17197 }, - { 0x0C7A, 17333 }, - { 0x0C7B, 17315 }, - { 0x0C7C, 17318 }, - { 0x0C7D, 17306 }, - { 0x0C7E, 17027 }, - { 0x0C7F, 17009 }, - { 0x0C80, 17015 }, - { 0x0C81, 17036 }, - { 0x0C82, 17021 }, - { 0x0C83, 17018 }, - { 0x0C84, 17012 }, - { 0x0C85, 17033 }, - { 0x0C86, 17030 }, - { 0x0C87, 17024 }, - { 0x0C88, 17327 }, - { 0x0C89, 17303 }, - { 0x0C8A, 6782 }, - { 0x0C8B, 6829 }, - { 0x0C8C, 6825 }, - { 0x0C8D, 6879 }, - { 0x0C8E, 6833 }, - { 0x0C8F, 6752 }, - { 0x0C90, 6867 }, - { 0x0C91, 6808 }, - { 0x0C92, 6883 }, - { 0x0C93, 6836 }, - { 0x0C94, 6895 }, - { 0x0C95, 6899 }, - { 0x0C96, 6907 }, - { 0x0C97, 6871 }, - { 0x0C98, 6903 }, - { 0x0C99, 6891 }, - { 0x0C9A, 6755 }, - { 0x0C9B, 6816 }, - { 0x0C9C, 6851 }, - { 0x0C9D, 6847 }, - { 0x0C9E, 6875 }, - { 0x0C9F, 6799 }, - { 0x0CA0, 6749 }, - { 0x0CA1, 6802 }, - { 0x0CA2, 6843 }, - { 0x0CA3, 6766 }, - { 0x0CA4, 6839 }, - { 0x0CA5, 6770 }, - { 0x0CA6, 6863 }, - { 0x0CA7, 6796 }, - { 0x0CA8, 6822 }, - { 0x0CA9, 6788 }, - { 0x0CAA, 6792 }, - { 0x0CAB, 6819 }, - { 0x0CAC, 6911 }, - { 0x0CAD, 6915 }, - { 0x0CAE, 6812 }, - { 0x0CAF, 6778 }, - { 0x0CB0, 6887 }, - { 0x0CB1, 6746 }, - { 0x0CB2, 6774 }, - { 0x0CB3, 6919 }, - { 0x0CB4, 6680 }, - { 0x0CB5, 6736 }, - { 0x0CB6, 6704 }, - { 0x0CB7, 6712 }, - { 0x0CB8, 6688 }, - { 0x0CB9, 6724 }, - { 0x0CBA, 6700 }, - { 0x0CBB, 6732 }, - { 0x0CBC, 6696 }, - { 0x0CBD, 6728 }, - { 0x0CBE, 6630 }, - { 0x0CBF, 6741 }, - { 0x0CC0, 6925 }, - { 0x0CC1, 6929 }, - { 0x0CC2, 6684 }, - { 0x0CC3, 6720 }, - { 0x0CC4, 6692 }, - { 0x0CC5, 6716 }, - { 0x0CC6, 6708 }, - { 0x0CC7, 6627 }, - { 0x0CC8, 6634 }, - { 0x0CC9, 6642 }, - { 0x0CCA, 6638 }, - { 0x0CCB, 6646 }, - { 0x0CCC, 6933 }, - { 0x0CCD, 6923 }, - { 0x0CCE, 6921 }, - { 0x0CCF, 6668 }, - { 0x0CD0, 6650 }, - { 0x0CD1, 6656 }, - { 0x0CD2, 6677 }, - { 0x0CD3, 6662 }, - { 0x0CD4, 6659 }, - { 0x0CD5, 6653 }, - { 0x0CD6, 6674 }, - { 0x0CD7, 6671 }, - { 0x0CD8, 6665 }, - { 0x0CD9, 6624 }, - { 0x0CDA, 6621 }, - { 0x0CDB, 6855 }, - { 0x0CDC, 6859 }, - { 0x0CDD, 82062 }, - { 0x0CDE, 81481 }, - { 0x0CDF, 81472 }, - { 0x0CE0, 81463 }, - { 0x0CE1, 81602 }, - { 0x0CE2, 81583 }, - { 0x0CE3, 81541 }, - { 0x0CE4, 81443 }, - { 0x0CE5, 81572 }, - { 0x0CE6, 81536 }, - { 0x0CE7, 81457 }, - { 0x0CE8, 81633 }, - { 0x0CE9, 81628 }, - { 0x0CEA, 81522 }, - { 0x0CEB, 81504 }, - { 0x0CEC, 81576 }, - { 0x0CED, 81512 }, - { 0x0CEE, 81433 }, - { 0x0CEF, 81517 }, - { 0x0CF0, 81549 }, - { 0x0CF1, 81488 }, - { 0x0CF2, 82052 }, - { 0x0CF3, 82057 }, - { 0x0CF4, 82261 }, - { 0x0CF5, 82273 }, - { 0x0CF6, 82268 }, - { 0x0CF7, 81699 }, - { 0x0CF8, 81715 }, - { 0x0CF9, 81704 }, - { 0x0CFA, 81678 }, - { 0x0CFB, 81694 }, - { 0x0CFC, 81709 }, - { 0x0CFD, 81797 }, - { 0x0CFE, 81739 }, - { 0x0CFF, 81745 }, - { 0x0D00, 81806 }, - { 0x0D01, 81751 }, - { 0x0D02, 81748 }, - { 0x0D03, 81742 }, - { 0x0D04, 81803 }, - { 0x0D05, 81800 }, - { 0x0D06, 81794 }, - { 0x0D07, 81754 }, - { 0x0D08, 81762 }, - { 0x0D09, 81790 }, - { 0x0D0A, 81770 }, - { 0x0D0B, 81766 }, - { 0x0D0C, 81758 }, - { 0x0D0D, 81786 }, - { 0x0D0E, 81782 }, - { 0x0D0F, 81774 }, - { 0x0D10, 81778 }, - { 0x0D11, 81525 }, - { 0x0D12, 81492 }, - { 0x0D13, 81557 }, - { 0x0D14, 81498 }, - { 0x0D15, 81419 }, - { 0x0D16, 81439 }, - { 0x0D17, 81428 }, - { 0x0D18, 81423 }, - { 0x0D19, 81414 }, - { 0x0D1A, 81409 }, - { 0x0D1B, 81670 }, - { 0x0D1C, 81656 }, - { 0x0D1D, 81899 }, - { 0x0D1E, 81950 }, - { 0x0D1F, 81890 }, - { 0x0D20, 81947 }, - { 0x0D21, 81956 }, - { 0x0D22, 81884 }, - { 0x0D23, 81935 }, - { 0x0D24, 81896 }, - { 0x0D25, 81962 }, - { 0x0D26, 81983 }, - { 0x0D27, 82001 }, - { 0x0D28, 81938 }, - { 0x0D29, 81989 }, - { 0x0D2A, 81959 }, - { 0x0D2B, 81920 }, - { 0x0D2C, 81977 }, - { 0x0D2D, 81887 }, - { 0x0D2E, 81941 }, - { 0x0D2F, 81908 }, - { 0x0D30, 81911 }, - { 0x0D31, 81965 }, - { 0x0D32, 81881 }, - { 0x0D33, 81932 }, - { 0x0D34, 81905 }, - { 0x0D35, 81980 }, - { 0x0D36, 81998 }, - { 0x0D37, 81944 }, - { 0x0D38, 81992 }, - { 0x0D39, 81923 }, - { 0x0D3A, 81986 }, - { 0x0D3B, 81929 }, - { 0x0D3C, 81878 }, - { 0x0D3D, 81926 }, - { 0x0D3E, 81914 }, - { 0x0D3F, 81902 }, - { 0x0D40, 81971 }, - { 0x0D41, 81974 }, - { 0x0D42, 81917 }, - { 0x0D43, 81893 }, - { 0x0D44, 81875 }, - { 0x0D45, 81995 }, - { 0x0D46, 82004 }, - { 0x0D47, 81953 }, - { 0x0D48, 81968 }, - { 0x0D49, 81825 }, - { 0x0D4A, 81813 }, - { 0x0D4B, 81833 }, - { 0x0D4C, 81821 }, - { 0x0D4D, 81841 }, - { 0x0D4E, 81850 }, - { 0x0D4F, 81860 }, - { 0x0D50, 81845 }, - { 0x0D51, 81855 }, - { 0x0D52, 81809 }, - { 0x0D53, 81829 }, - { 0x0D54, 81817 }, - { 0x0D55, 81837 }, - { 0x0D56, 81720 }, - { 0x0D57, 81726 }, - { 0x0D58, 81865 }, - { 0x0D59, 81870 }, - { 0x0D5A, 81660 }, - { 0x0D5B, 81666 }, - { 0x0D5C, 81599 }, - { 0x0D5D, 81580 }, - { 0x0D5E, 81652 }, - { 0x0D5F, 81730 }, - { 0x0D60, 81647 }, - { 0x0D61, 81674 }, - { 0x0D62, 81637 }, - { 0x0D63, 81642 }, - { 0x0D64, 81734 }, - { 0x0D65, 82065 }, - { 0x0D66, 82071 }, - { 0x0D67, 82076 }, - { 0x0D68, 82114 }, - { 0x0D69, 82182 }, - { 0x0D6A, 82102 }, - { 0x0D6B, 82178 }, - { 0x0D6C, 82186 }, - { 0x0D6D, 82094 }, - { 0x0D6E, 82162 }, - { 0x0D6F, 82110 }, - { 0x0D70, 82194 }, - { 0x0D71, 82218 }, - { 0x0D72, 82242 }, - { 0x0D73, 82166 }, - { 0x0D74, 82226 }, - { 0x0D75, 82190 }, - { 0x0D76, 82142 }, - { 0x0D77, 82210 }, - { 0x0D78, 82098 }, - { 0x0D79, 82170 }, - { 0x0D7A, 82126 }, - { 0x0D7B, 82130 }, - { 0x0D7C, 82198 }, - { 0x0D7D, 82090 }, - { 0x0D7E, 82158 }, - { 0x0D7F, 82122 }, - { 0x0D80, 82214 }, - { 0x0D81, 82238 }, - { 0x0D82, 82174 }, - { 0x0D83, 82230 }, - { 0x0D84, 82146 }, - { 0x0D85, 82222 }, - { 0x0D86, 82154 }, - { 0x0D87, 82086 }, - { 0x0D88, 82150 }, - { 0x0D89, 82134 }, - { 0x0D8A, 82118 }, - { 0x0D8B, 82202 }, - { 0x0D8C, 82206 }, - { 0x0D8D, 82138 }, - { 0x0D8E, 82106 }, - { 0x0D8F, 82082 }, - { 0x0D90, 82234 }, - { 0x0D91, 82251 }, - { 0x0D92, 82256 }, - { 0x0D93, 82246 }, - { 0x0D94, 81398 }, - { 0x0D95, 81402 }, - { 0x0D96, 82288 }, - { 0x0D97, 82293 }, - { 0x0D98, 82278 }, - { 0x0D99, 82283 }, - { 0x0D9A, 82040 }, - { 0x0D9B, 82030 }, - { 0x0D9C, 82048 }, - { 0x0D9D, 82034 }, - { 0x0D9E, 82044 }, - { 0x0D9F, 82008 }, - { 0x0DA0, 82024 }, - { 0x0DA1, 82018 }, - { 0x0DA2, 82012 }, - { 0x0DA3, 81688 }, - { 0x0DA4, 81683 }, - { 0x0DA5, 81529 }, - { 0x0DA6, 81565 }, - { 0x0DA7, 81508 }, - { 0x0DA8, 81609 }, - { 0x0DA9, 81590 }, - { 0x0DAA, 143475 }, - { 0x0DAB, 133885 }, - { 0x0DAC, 143478 }, - { 0x0DAD, 133888 }, - { 0x0DAE, 81618 }, - { 0x0DAF, 81623 }, - { 0x0DB0, 76845 }, - { 0x0DB1, 76896 }, - { 0x0DB2, 76833 }, - { 0x0DB3, 76890 }, - { 0x0DB4, 76922 }, - { 0x0DB5, 76827 }, - { 0x0DB6, 76881 }, - { 0x0DB7, 76842 }, - { 0x0DB8, 76893 }, - { 0x0DB9, 76928 }, - { 0x0DBA, 77019 }, - { 0x0DBB, 77013 }, - { 0x0DBC, 77113 }, - { 0x0DBD, 76884 }, - { 0x0DBE, 77016 }, - { 0x0DBF, 76925 }, - { 0x0DC0, 76866 }, - { 0x0DC1, 77010 }, - { 0x0DC2, 76830 }, - { 0x0DC3, 76887 }, - { 0x0DC4, 76854 }, - { 0x0DC5, 76857 }, - { 0x0DC6, 76931 }, - { 0x0DC7, 76824 }, - { 0x0DC8, 76878 }, - { 0x0DC9, 76851 }, - { 0x0DCA, 76875 }, - { 0x0DCB, 76860 }, - { 0x0DCC, 76848 }, - { 0x0DCD, 76872 }, - { 0x0DCE, 76863 }, - { 0x0DCF, 76836 }, - { 0x0DD0, 76899 }, - { 0x0DD1, 76806 }, - { 0x0DD2, 77027 }, - { 0x0DD3, 76812 }, - { 0x0DD4, 76839 }, - { 0x0DD5, 76818 }, - { 0x0DD6, 76869 }, - { 0x0DD7, 76809 }, - { 0x0DD8, 76902 }, - { 0x0DD9, 76815 }, - { 0x0DDA, 76821 }, - { 0x0DDB, 76742 }, - { 0x0DDC, 76682 }, - { 0x0DDD, 76674 }, - { 0x0DDE, 76690 }, - { 0x0DDF, 76678 }, - { 0x0DE0, 76694 }, - { 0x0DE1, 76665 }, - { 0x0DE2, 76686 }, - { 0x0DE3, 76703 }, - { 0x0DE4, 76698 }, - { 0x0DE5, 76669 }, - { 0x0DE6, 76619 }, - { 0x0DE7, 76505 }, - { 0x0DE8, 76586 }, - { 0x0DE9, 76580 }, - { 0x0DEA, 76524 }, - { 0x0DEB, 77408 }, - { 0x0DEC, 77398 }, - { 0x0DED, 77403 }, - { 0x0DEE, 77393 }, - { 0x0DEF, 77120 }, - { 0x0DF0, 76653 }, - { 0x0DF1, 76635 }, - { 0x0DF2, 76641 }, - { 0x0DF3, 76662 }, - { 0x0DF4, 76647 }, - { 0x0DF5, 76644 }, - { 0x0DF6, 76638 }, - { 0x0DF7, 76659 }, - { 0x0DF8, 76656 }, - { 0x0DF9, 76650 }, - { 0x0DFA, 76576 }, - { 0x0DFB, 76583 }, - { 0x0DFC, 77278 }, - { 0x0DFD, 77281 }, - { 0x0DFE, 77284 }, - { 0x0DFF, 77275 }, - { 0x0E00, 76934 }, - { 0x0E01, 76937 }, - { 0x0E02, 77231 }, - { 0x0E03, 77239 }, - { 0x0E04, 77227 }, - { 0x0E05, 77235 }, - { 0x0E06, 76777 }, - { 0x0E07, 76787 }, - { 0x0E08, 76772 }, - { 0x0E09, 76782 }, - { 0x0E0A, 76918 }, - { 0x0E0B, 76914 }, - { 0x0E0C, 76906 }, - { 0x0E0D, 76910 }, - { 0x0E0E, 77381 }, - { 0x0E0F, 77375 }, - { 0x0E10, 77369 }, - { 0x0E11, 77022 }, - { 0x0E12, 76714 }, - { 0x0E13, 76629 }, - { 0x0E14, 76622 }, - { 0x0E15, 77249 }, - { 0x0E16, 77243 }, - { 0x0E17, 76792 }, - { 0x0E18, 76799 }, - { 0x0E19, 76589 }, - { 0x0E1A, 76595 }, - { 0x0E1B, 76601 }, - { 0x0E1C, 76607 }, - { 0x0E1D, 76613 }, - { 0x0E1E, 77209 }, - { 0x0E1F, 77215 }, - { 0x0E20, 77221 }, - { 0x0E21, 76708 }, - { 0x0E22, 76767 }, - { 0x0E23, 76757 }, - { 0x0E24, 76762 }, - { 0x0E25, 77055 }, - { 0x0E26, 77083 }, - { 0x0E27, 77047 }, - { 0x0E28, 77035 }, - { 0x0E29, 77063 }, - { 0x0E2A, 77091 }, - { 0x0E2B, 77039 }, - { 0x0E2C, 77059 }, - { 0x0E2D, 77095 }, - { 0x0E2E, 77043 }, - { 0x0E2F, 77031 }, - { 0x0E30, 77099 }, - { 0x0E31, 77051 }, - { 0x0E32, 77387 }, - { 0x0E33, 76731 }, - { 0x0E34, 76720 }, - { 0x0E35, 76725 }, - { 0x0E36, 76736 }, - { 0x0E37, 76531 }, - { 0x0E38, 76535 }, - { 0x0E39, 76539 }, - { 0x0E3A, 76543 }, - { 0x0E3B, 76547 }, - { 0x0E3C, 76552 }, - { 0x0E3D, 76557 }, - { 0x0E3E, 77124 }, - { 0x0E3F, 76563 }, - { 0x0E40, 76489 }, - { 0x0E41, 76465 }, - { 0x0E42, 76473 }, - { 0x0E43, 76501 }, - { 0x0E44, 76481 }, - { 0x0E45, 76477 }, - { 0x0E46, 76469 }, - { 0x0E47, 76497 }, - { 0x0E48, 76493 }, - { 0x0E49, 76485 }, - { 0x0E4A, 76568 }, - { 0x0E4B, 76572 }, - { 0x0E4C, 76747 }, - { 0x0E4D, 76752 }, - { 0x0E4E, 77255 }, - { 0x0E4F, 77259 }, - { 0x0E50, 103779 }, - { 0x0E51, 103815 }, - { 0x0E52, 103831 }, - { 0x0E53, 103827 }, - { 0x0E54, 103783 }, - { 0x0E55, 103895 }, - { 0x0E56, 103903 }, - { 0x0E57, 103887 }, - { 0x0E58, 103791 }, - { 0x0E59, 103855 }, - { 0x0E5A, 103859 }, - { 0x0E5B, 103863 }, - { 0x0E5C, 103867 }, - { 0x0E5D, 103795 }, - { 0x0E5E, 103871 }, - { 0x0E5F, 103935 }, - { 0x0E60, 103879 }, - { 0x0E61, 103883 }, - { 0x0E62, 103891 }, - { 0x0E63, 103799 }, - { 0x0E64, 103927 }, - { 0x0E65, 103923 }, - { 0x0E66, 103915 }, - { 0x0E67, 103875 }, - { 0x0E68, 103931 }, - { 0x0E69, 103911 }, - { 0x0E6A, 103819 }, - { 0x0E6B, 103851 }, - { 0x0E6C, 103823 }, - { 0x0E6D, 103907 }, - { 0x0E6E, 103899 }, - { 0x0E6F, 103919 }, - { 0x0E70, 103835 }, - { 0x0E71, 103787 }, - { 0x0E72, 103843 }, - { 0x0E73, 103803 }, - { 0x0E74, 103839 }, - { 0x0E75, 103847 }, - { 0x0E76, 103807 }, - { 0x0E77, 103811 }, - { 0x0E78, 103638 }, - { 0x0E79, 103671 }, - { 0x0E7A, 103683 }, - { 0x0E7B, 103680 }, - { 0x0E7C, 103641 }, - { 0x0E7D, 103731 }, - { 0x0E7E, 103737 }, - { 0x0E7F, 103725 }, - { 0x0E80, 103650 }, - { 0x0E81, 103701 }, - { 0x0E82, 103704 }, - { 0x0E83, 103707 }, - { 0x0E84, 103710 }, - { 0x0E85, 103653 }, - { 0x0E86, 103713 }, - { 0x0E87, 103765 }, - { 0x0E88, 103719 }, - { 0x0E89, 103722 }, - { 0x0E8A, 103728 }, - { 0x0E8B, 103656 }, - { 0x0E8C, 103759 }, - { 0x0E8D, 103756 }, - { 0x0E8E, 103746 }, - { 0x0E8F, 103716 }, - { 0x0E90, 103762 }, - { 0x0E91, 103743 }, - { 0x0E92, 103674 }, - { 0x0E93, 103698 }, - { 0x0E94, 103677 }, - { 0x0E95, 103740 }, - { 0x0E96, 103734 }, - { 0x0E97, 103753 }, - { 0x0E98, 103686 }, - { 0x0E99, 103647 }, - { 0x0E9A, 103692 }, - { 0x0E9B, 103659 }, - { 0x0E9C, 103689 }, - { 0x0E9D, 103695 }, - { 0x0E9E, 103644 }, - { 0x0E9F, 103662 }, - { 0x0EA0, 103768 }, - { 0x0EA1, 103775 }, - { 0x0EA2, 103668 }, - { 0x0EA3, 104172 }, - { 0x0EA4, 108742 }, - { 0x0EA5, 103665 }, - { 0x0EA6, 103749 }, - { 0x0EA7, 103771 }, - { 0x0EA8, 55657 }, - { 0x0EA9, 55801 }, - { 0x0EAA, 55645 }, - { 0x0EAB, 55660 }, - { 0x0EAC, 55804 }, - { 0x0EAD, 55651 }, - { 0x0EAE, 55642 }, - { 0x0EAF, 55648 }, - { 0x0EB0, 55735 }, - { 0x0EB1, 55630 }, - { 0x0EB2, 55681 }, - { 0x0EB3, 55639 }, - { 0x0EB4, 55633 }, - { 0x0EB5, 55723 }, - { 0x0EB6, 55663 }, - { 0x0EB7, 55666 }, - { 0x0EB8, 55675 }, - { 0x0EB9, 55672 }, - { 0x0EBA, 55636 }, - { 0x0EBB, 55828 }, - { 0x0EBC, 55732 }, - { 0x0EBD, 55831 }, - { 0x0EBE, 55768 }, - { 0x0EBF, 55924 }, - { 0x0EC0, 55789 }, - { 0x0EC1, 55738 }, - { 0x0EC2, 55783 }, - { 0x0EC3, 55897 }, - { 0x0EC4, 55759 }, - { 0x0EC5, 55891 }, - { 0x0EC6, 55834 }, - { 0x0EC7, 55777 }, - { 0x0EC8, 55837 }, - { 0x0EC9, 55696 }, - { 0x0ECA, 55969 }, - { 0x0ECB, 55972 }, - { 0x0ECC, 55954 }, - { 0x0ECD, 55942 }, - { 0x0ECE, 55951 }, - { 0x0ECF, 55771 }, - { 0x0ED0, 55909 }, - { 0x0ED1, 55918 }, - { 0x0ED2, 55915 }, - { 0x0ED3, 55894 }, - { 0x0ED4, 55990 }, - { 0x0ED5, 55795 }, - { 0x0ED6, 55714 }, - { 0x0ED7, 55798 }, - { 0x0ED8, 55720 }, - { 0x0ED9, 55711 }, - { 0x0EDA, 55717 }, - { 0x0EDB, 55981 }, - { 0x0EDC, 55927 }, - { 0x0EDD, 55708 }, - { 0x0EDE, 55702 }, - { 0x0EDF, 55846 }, - { 0x0EE0, 55849 }, - { 0x0EE1, 55855 }, - { 0x0EE2, 55852 }, - { 0x0EE3, 55705 }, - { 0x0EE4, 55813 }, - { 0x0EE5, 55966 }, - { 0x0EE6, 55930 }, - { 0x0EE7, 55999 }, - { 0x0EE8, 55669 }, - { 0x0EE9, 55816 }, - { 0x0EEA, 55819 }, - { 0x0EEB, 55750 }, - { 0x0EEC, 55753 }, - { 0x0EED, 55687 }, - { 0x0EEE, 55882 }, - { 0x0EEF, 55729 }, - { 0x0EF0, 55744 }, - { 0x0EF1, 55879 }, - { 0x0EF2, 55888 }, - { 0x0EF3, 55885 }, - { 0x0EF4, 55678 }, - { 0x0EF5, 55741 }, - { 0x0EF6, 55876 }, - { 0x0EF7, 55987 }, - { 0x0EF8, 55948 }, - { 0x0EF9, 56002 }, - { 0x0EFA, 55933 }, - { 0x0EFB, 55873 }, - { 0x0EFC, 55936 }, - { 0x0EFD, 55984 }, - { 0x0EFE, 55906 }, - { 0x0EFF, 55939 }, - { 0x0F00, 55726 }, - { 0x0F01, 55810 }, - { 0x0F02, 55900 }, - { 0x0F03, 55693 }, - { 0x0F04, 55762 }, - { 0x0F05, 55765 }, - { 0x0F06, 55870 }, - { 0x0F07, 55654 }, - { 0x0F08, 56671 }, - { 0x0F09, 56428 }, - { 0x0F0A, 56443 }, - { 0x0F0B, 56464 }, - { 0x0F0C, 56518 }, - { 0x0F0D, 56446 }, - { 0x0F0E, 56431 }, - { 0x0F0F, 56521 }, - { 0x0F10, 56467 }, - { 0x0F11, 56437 }, - { 0x0F12, 56455 }, - { 0x0F13, 56512 }, - { 0x0F14, 56452 }, - { 0x0F15, 56473 }, - { 0x0F16, 56440 }, - { 0x0F17, 56515 }, - { 0x0F18, 56458 }, - { 0x0F19, 56461 }, - { 0x0F1A, 56476 }, - { 0x0F1B, 56449 }, - { 0x0F1C, 56470 }, - { 0x0F1D, 56434 }, - { 0x0F1E, 56479 }, - { 0x0F1F, 56482 }, - { 0x0F20, 56575 }, - { 0x0F21, 56644 }, - { 0x0F22, 56527 }, - { 0x0F23, 56530 }, - { 0x0F24, 56611 }, - { 0x0F25, 56647 }, - { 0x0F26, 56650 }, - { 0x0F27, 56560 }, - { 0x0F28, 56497 }, - { 0x0F29, 56566 }, - { 0x0F2A, 56500 }, - { 0x0F2B, 56503 }, - { 0x0F2C, 56659 }, - { 0x0F2D, 56680 }, - { 0x0F2E, 56683 }, - { 0x0F2F, 56590 }, - { 0x0F30, 56587 }, - { 0x0F31, 56506 }, - { 0x0F32, 56569 }, - { 0x0F33, 56704 }, - { 0x0F34, 56572 }, - { 0x0F35, 56509 }, - { 0x0F36, 56593 }, - { 0x0F37, 56665 }, - { 0x0F38, 56596 }, - { 0x0F39, 56686 }, - { 0x0F3A, 56668 }, - { 0x0F3B, 56605 }, - { 0x0F3C, 56599 }, - { 0x0F3D, 56542 }, - { 0x0F3E, 56617 }, - { 0x0F3F, 56581 }, - { 0x0F40, 56485 }, - { 0x0F41, 56548 }, - { 0x0F42, 56491 }, - { 0x0F43, 56494 }, - { 0x0F44, 56545 }, - { 0x0F45, 56701 }, - { 0x0F46, 56608 }, - { 0x0F47, 56707 }, - { 0x0F48, 56698 }, - { 0x0F49, 56695 }, - { 0x0F4A, 56710 }, - { 0x0F4B, 56524 }, - { 0x0F4C, 56578 }, - { 0x0F4D, 56677 }, - { 0x0F4E, 56563 }, - { 0x0F4F, 56632 }, - { 0x0F50, 56029 }, - { 0x0F51, 56173 }, - { 0x0F52, 56116 }, - { 0x0F53, 56020 }, - { 0x0F54, 56134 }, - { 0x0F55, 56137 }, - { 0x0F56, 56032 }, - { 0x0F57, 56026 }, - { 0x0F58, 56215 }, - { 0x0F59, 56158 }, - { 0x0F5A, 56164 }, - { 0x0F5B, 56065 }, - { 0x0F5C, 56287 }, - { 0x0F5D, 56284 }, - { 0x0F5E, 56155 }, - { 0x0F5F, 56017 }, - { 0x0F60, 56023 }, - { 0x0F61, 56062 }, - { 0x0F62, 56005 }, - { 0x0F63, 56053 }, - { 0x0F64, 56014 }, - { 0x0F65, 56008 }, - { 0x0F66, 56035 }, - { 0x0F67, 56038 }, - { 0x0F68, 56047 }, - { 0x0F69, 56044 }, - { 0x0F6A, 56011 }, - { 0x0F6B, 56197 }, - { 0x0F6C, 56386 }, - { 0x0F6D, 56203 }, - { 0x0F6E, 56206 }, - { 0x0F6F, 56059 }, - { 0x0F70, 56260 }, - { 0x0F71, 56263 }, - { 0x0F72, 56293 }, - { 0x0F73, 56236 }, - { 0x0F74, 56368 }, - { 0x0F75, 56161 }, - { 0x0F76, 56218 }, - { 0x0F77, 56398 }, - { 0x0F78, 56098 }, - { 0x0F79, 56392 }, - { 0x0F7A, 56344 }, - { 0x0F7B, 56347 }, - { 0x0F7C, 56374 }, - { 0x0F7D, 56413 }, - { 0x0F7E, 56329 }, - { 0x0F7F, 56281 }, - { 0x0F80, 56278 }, - { 0x0F81, 56380 }, - { 0x0F82, 56200 }, - { 0x0F83, 56131 }, - { 0x0F84, 56128 }, - { 0x0F85, 56056 }, - { 0x0F86, 56323 }, - { 0x0F87, 56254 }, - { 0x0F88, 56251 }, - { 0x0F89, 56122 }, - { 0x0F8A, 56242 }, - { 0x0F8B, 56152 }, - { 0x0F8C, 56275 }, - { 0x0F8D, 56146 }, - { 0x0F8E, 56245 }, - { 0x0F8F, 56167 }, - { 0x0F90, 56170 }, - { 0x0F91, 56080 }, - { 0x0F92, 56077 }, - { 0x0F93, 56041 }, - { 0x0F94, 56185 }, - { 0x0F95, 56362 }, - { 0x0F96, 56086 }, - { 0x0F97, 56239 }, - { 0x0F98, 56050 }, - { 0x0F99, 56296 }, - { 0x0F9A, 56359 }, - { 0x0F9B, 56269 }, - { 0x0F9C, 56320 }, - { 0x0F9D, 56107 }, - { 0x0F9E, 56113 }, - { 0x0F9F, 56104 }, - { 0x0FA0, 56110 }, - { 0x0FA1, 56182 }, - { 0x0FA2, 56191 }, - { 0x0FA3, 56194 }, - { 0x0FA4, 56299 }, - { 0x0FA5, 56302 }, - { 0x0FA6, 56188 }, - { 0x0FA7, 56092 }, - { 0x0FA8, 101980 }, - { 0x0FA9, 101992 }, - { 0x0FAA, 101986 }, - { 0x0FAB, 102400 }, - { 0x0FAC, 102403 }, - { 0x0FAD, 101983 }, - { 0x0FAE, 101989 }, - { 0x0FAF, 102421 }, - { 0x0FB0, 102025 }, - { 0x0FB1, 102037 }, - { 0x0FB2, 102031 }, - { 0x0FB3, 102484 }, - { 0x0FB4, 102487 }, - { 0x0FB5, 102028 }, - { 0x0FB6, 102034 }, - { 0x0FB7, 102493 }, - { 0x0FB8, 102406 }, - { 0x0FB9, 102418 }, - { 0x0FBA, 102412 }, - { 0x0FBB, 102958 }, - { 0x0FBC, 102961 }, - { 0x0FBD, 102409 }, - { 0x0FBE, 102415 }, - { 0x0FBF, 102964 }, - { 0x0FC0, 102040 }, - { 0x0FC1, 102052 }, - { 0x0FC2, 102046 }, - { 0x0FC3, 102496 }, - { 0x0FC4, 102499 }, - { 0x0FC5, 102043 }, - { 0x0FC6, 102049 }, - { 0x0FC7, 102505 }, - { 0x0FC8, 102682 }, - { 0x0FC9, 102694 }, - { 0x0FCA, 102688 }, - { 0x0FCB, 103090 }, - { 0x0FCC, 103093 }, - { 0x0FCD, 102685 }, - { 0x0FCE, 102691 }, - { 0x0FCF, 103096 }, - { 0x0FD0, 102100 }, - { 0x0FD1, 102112 }, - { 0x0FD2, 102106 }, - { 0x0FD3, 102625 }, - { 0x0FD4, 102628 }, - { 0x0FD5, 102103 }, - { 0x0FD6, 102109 }, - { 0x0FD7, 102634 }, - { 0x0FD8, 102115 }, - { 0x0FD9, 102127 }, - { 0x0FDA, 102121 }, - { 0x0FDB, 102640 }, - { 0x0FDC, 102643 }, - { 0x0FDD, 102118 }, - { 0x0FDE, 102124 }, - { 0x0FDF, 102679 }, - { 0x0FE0, 102646 }, - { 0x0FE1, 102658 }, - { 0x0FE2, 102652 }, - { 0x0FE3, 103072 }, - { 0x0FE4, 103075 }, - { 0x0FE5, 102649 }, - { 0x0FE6, 102655 }, - { 0x0FE7, 103081 }, - { 0x0FE8, 102085 }, - { 0x0FE9, 102097 }, - { 0x0FEA, 102091 }, - { 0x0FEB, 102577 }, - { 0x0FEC, 102580 }, - { 0x0FED, 102088 }, - { 0x0FEE, 102094 }, - { 0x0FEF, 102598 }, - { 0x0FF0, 102601 }, - { 0x0FF1, 102607 }, - { 0x0FF2, 103060 }, - { 0x0FF3, 103063 }, - { 0x0FF4, 102604 }, - { 0x0FF5, 102583 }, - { 0x0FF6, 102595 }, - { 0x0FF7, 102589 }, - { 0x0FF8, 103045 }, - { 0x0FF9, 103048 }, - { 0x0FFA, 102586 }, - { 0x0FFB, 102592 }, - { 0x0FFC, 103051 }, - { 0x0FFD, 103057 }, - { 0x0FFE, 103216 }, - { 0x0FFF, 103219 }, - { 0x1000, 103054 }, - { 0x1001, 101905 }, - { 0x1002, 101917 }, - { 0x1003, 101911 }, - { 0x1004, 102220 }, - { 0x1005, 102238 }, - { 0x1006, 101908 }, - { 0x1007, 101914 }, - { 0x1008, 102244 }, - { 0x1009, 102145 }, - { 0x100A, 102157 }, - { 0x100B, 102151 }, - { 0x100C, 102754 }, - { 0x100D, 102757 }, - { 0x100E, 102148 }, - { 0x100F, 102154 }, - { 0x1010, 102760 }, - { 0x1011, 102130 }, - { 0x1012, 102142 }, - { 0x1013, 102136 }, - { 0x1014, 102697 }, - { 0x1015, 102700 }, - { 0x1016, 102133 }, - { 0x1017, 102139 }, - { 0x1018, 102736 }, - { 0x1019, 101920 }, - { 0x101A, 101932 }, - { 0x101B, 101926 }, - { 0x101C, 102253 }, - { 0x101D, 102271 }, - { 0x101E, 101923 }, - { 0x101F, 101929 }, - { 0x1020, 102292 }, - { 0x1021, 102175 }, - { 0x1022, 102187 }, - { 0x1023, 102181 }, - { 0x1024, 102772 }, - { 0x1025, 102775 }, - { 0x1026, 102178 }, - { 0x1027, 102184 }, - { 0x1028, 102778 }, - { 0x1029, 102781 }, - { 0x102A, 102787 }, - { 0x102B, 103141 }, - { 0x102C, 103144 }, - { 0x102D, 102784 }, - { 0x102E, 102055 }, - { 0x102F, 102067 }, - { 0x1030, 102061 }, - { 0x1031, 102517 }, - { 0x1032, 102520 }, - { 0x1033, 102058 }, - { 0x1034, 102064 }, - { 0x1035, 102526 }, - { 0x1036, 102529 }, - { 0x1037, 102541 }, - { 0x1038, 102535 }, - { 0x1039, 103018 }, - { 0x103A, 103021 }, - { 0x103B, 102532 }, - { 0x103C, 102538 }, - { 0x103D, 103027 }, - { 0x103E, 103306 }, - { 0x103F, 103322 }, - { 0x1040, 103314 }, - { 0x1041, 103326 }, - { 0x1042, 103330 }, - { 0x1043, 103310 }, - { 0x1044, 103318 }, - { 0x1045, 103338 }, - { 0x1046, 102010 }, - { 0x1047, 102022 }, - { 0x1048, 102016 }, - { 0x1049, 102436 }, - { 0x104A, 102439 }, - { 0x104B, 102013 }, - { 0x104C, 102019 }, - { 0x104D, 102442 }, - { 0x104E, 102445 }, - { 0x104F, 102451 }, - { 0x1050, 102988 }, - { 0x1051, 102991 }, - { 0x1052, 102448 }, - { 0x1053, 102454 }, - { 0x1054, 102466 }, - { 0x1055, 102460 }, - { 0x1056, 102994 }, - { 0x1057, 102997 }, - { 0x1058, 102457 }, - { 0x1059, 102463 }, - { 0x105A, 103000 }, - { 0x105B, 103006 }, - { 0x105C, 103210 }, - { 0x105D, 103213 }, - { 0x105E, 103003 }, - { 0x105F, 102160 }, - { 0x1060, 102172 }, - { 0x1061, 102166 }, - { 0x1062, 102763 }, - { 0x1063, 102766 }, - { 0x1064, 102163 }, - { 0x1065, 102169 }, - { 0x1066, 102769 }, - { 0x1067, 103358 }, - { 0x1068, 103374 }, - { 0x1069, 103366 }, - { 0x106A, 103378 }, - { 0x106B, 103382 }, - { 0x106C, 103362 }, - { 0x106D, 103370 }, - { 0x106E, 102205 }, - { 0x106F, 102217 }, - { 0x1070, 102211 }, - { 0x1071, 102814 }, - { 0x1072, 102817 }, - { 0x1073, 102208 }, - { 0x1074, 102214 }, - { 0x1075, 102838 }, - { 0x1076, 102820 }, - { 0x1077, 102832 }, - { 0x1078, 102826 }, - { 0x1079, 103153 }, - { 0x107A, 103156 }, - { 0x107B, 102823 }, - { 0x107C, 102829 }, - { 0x107D, 103159 }, - { 0x107E, 102190 }, - { 0x107F, 102202 }, - { 0x1080, 102196 }, - { 0x1081, 102805 }, - { 0x1082, 102808 }, - { 0x1083, 102193 }, - { 0x1084, 102199 }, - { 0x1085, 102811 }, - { 0x1086, 101935 }, - { 0x1087, 101947 }, - { 0x1088, 101941 }, - { 0x1089, 102295 }, - { 0x108A, 102313 }, - { 0x108B, 101938 }, - { 0x108C, 101944 }, - { 0x108D, 102319 }, - { 0x108E, 102298 }, - { 0x108F, 102310 }, - { 0x1090, 102304 }, - { 0x1091, 102898 }, - { 0x1092, 102901 }, - { 0x1093, 102301 }, - { 0x1094, 102307 }, - { 0x1095, 102919 }, - { 0x1096, 101995 }, - { 0x1097, 102007 }, - { 0x1098, 102001 }, - { 0x1099, 102424 }, - { 0x109A, 102427 }, - { 0x109B, 101998 }, - { 0x109C, 102004 }, - { 0x109D, 102433 }, - { 0x109E, 101965 }, - { 0x109F, 101977 }, - { 0x10A0, 101971 }, - { 0x10A1, 102352 }, - { 0x10A2, 102355 }, - { 0x10A3, 101968 }, - { 0x10A4, 101974 }, - { 0x10A5, 102373 }, - { 0x10A6, 102376 }, - { 0x10A7, 102382 }, - { 0x10A8, 102946 }, - { 0x10A9, 102949 }, - { 0x10AA, 102379 }, - { 0x10AB, 102358 }, - { 0x10AC, 102370 }, - { 0x10AD, 102364 }, - { 0x10AE, 102931 }, - { 0x10AF, 102934 }, - { 0x10B0, 102361 }, - { 0x10B1, 102367 }, - { 0x10B2, 103195 }, - { 0x10B3, 102703 }, - { 0x10B4, 102715 }, - { 0x10B5, 102709 }, - { 0x10B6, 103099 }, - { 0x10B7, 103102 }, - { 0x10B8, 102706 }, - { 0x10B9, 102712 }, - { 0x10BA, 103108 }, - { 0x10BB, 102274 }, - { 0x10BC, 102286 }, - { 0x10BD, 102280 }, - { 0x10BE, 102886 }, - { 0x10BF, 102889 }, - { 0x10C0, 102277 }, - { 0x10C1, 102283 }, - { 0x10C2, 102895 }, - { 0x10C3, 102550 }, - { 0x10C4, 102562 }, - { 0x10C5, 102556 }, - { 0x10C6, 103030 }, - { 0x10C7, 103033 }, - { 0x10C8, 102553 }, - { 0x10C9, 102559 }, - { 0x10CA, 103039 }, - { 0x10CB, 102721 }, - { 0x10CC, 102733 }, - { 0x10CD, 102727 }, - { 0x10CE, 103111 }, - { 0x10CF, 103114 }, - { 0x10D0, 102724 }, - { 0x10D1, 102730 }, - { 0x10D2, 103117 }, - { 0x10D3, 102739 }, - { 0x10D4, 102751 }, - { 0x10D5, 102745 }, - { 0x10D6, 103132 }, - { 0x10D7, 103135 }, - { 0x10D8, 102742 }, - { 0x10D9, 102748 }, - { 0x10DA, 103138 }, - { 0x10DB, 101950 }, - { 0x10DC, 101962 }, - { 0x10DD, 101956 }, - { 0x10DE, 102334 }, - { 0x10DF, 102337 }, - { 0x10E0, 101953 }, - { 0x10E1, 101959 }, - { 0x10E2, 102340 }, - { 0x10E3, 102070 }, - { 0x10E4, 102082 }, - { 0x10E5, 102076 }, - { 0x10E6, 102544 }, - { 0x10E7, 102547 }, - { 0x10E8, 102073 }, - { 0x10E9, 102079 }, - { 0x10EA, 102568 }, - { 0x10EB, 102637 }, - { 0x10EC, 102514 }, - { 0x10ED, 102349 }, - { 0x10EE, 103391 }, - { 0x10EF, 103386 }, - { 0x10F0, 103398 }, - { 0x10F1, 101899 }, - { 0x10F2, 103407 }, - { 0x10F3, 101787 }, - { 0x10F4, 101792 }, - { 0x10F5, 103405 }, - { 0x10F6, 101790 }, - { 0x10F7, 101896 }, - { 0x10F8, 101902 }, - { 0x10F9, 103402 }, - { 0x10FA, 101794 }, - { 0x10FB, 101800 }, - { 0x10FC, 101818 }, - { 0x10FD, 101806 }, - { 0x10FE, 101803 }, - { 0x10FF, 101797 }, - { 0x1100, 101815 }, - { 0x1101, 101812 }, - { 0x1102, 101809 }, - { 0x1103, 101862 }, - { 0x1104, 101887 }, - { 0x1105, 101884 }, - { 0x1106, 101872 }, - { 0x1107, 101869 }, - { 0x1108, 101875 }, - { 0x1109, 101893 }, - { 0x110A, 101878 }, - { 0x110B, 101881 }, - { 0x110C, 101890 }, - { 0x110D, 101865 }, - { 0x110E, 103350 }, - { 0x110F, 102511 }, - { 0x1110, 103015 }, - { 0x1111, 102508 }, - { 0x1112, 103342 }, - { 0x1113, 102250 }, - { 0x1114, 102862 }, - { 0x1115, 102247 }, - { 0x1116, 103346 }, - { 0x1117, 102346 }, - { 0x1118, 102928 }, - { 0x1119, 102343 }, - { 0x111A, 103354 }, - { 0x111B, 102574 }, - { 0x111C, 103042 }, - { 0x111D, 102571 }, - { 0x111E, 101846 }, - { 0x111F, 101825 }, - { 0x1120, 101854 }, - { 0x1121, 101841 }, - { 0x1122, 101829 }, - { 0x1123, 101837 }, - { 0x1124, 101850 }, - { 0x1125, 101833 }, - { 0x1126, 101858 }, - { 0x1127, 101821 }, - { 0x1128, 87241 }, - { 0x1129, 87244 }, - { 0x112A, 87247 }, - { 0x112B, 87250 }, - { 0x112C, 87256 }, - { 0x112D, 87259 }, - { 0x112E, 87280 }, - { 0x112F, 87316 }, - { 0x1130, 87283 }, - { 0x1131, 87286 }, - { 0x1132, 87289 }, - { 0x1133, 87292 }, - { 0x1134, 87295 }, - { 0x1135, 87298 }, - { 0x1136, 87301 }, - { 0x1137, 87304 }, - { 0x1138, 87307 }, - { 0x1139, 87310 }, - { 0x113A, 87313 }, - { 0x113B, 87319 }, - { 0x113C, 87322 }, - { 0x113D, 87325 }, - { 0x113E, 87328 }, - { 0x113F, 87331 }, - { 0x1140, 87334 }, - { 0x1141, 87337 }, - { 0x1142, 87340 }, - { 0x1143, 87343 }, - { 0x1144, 87346 }, - { 0x1145, 87349 }, - { 0x1146, 87355 }, - { 0x1147, 87439 }, - { 0x1148, 87442 }, - { 0x1149, 87358 }, - { 0x114A, 87361 }, - { 0x114B, 87364 }, - { 0x114C, 87367 }, - { 0x114D, 87370 }, - { 0x114E, 87445 }, - { 0x114F, 87448 }, - { 0x1150, 87451 }, - { 0x1151, 87454 }, - { 0x1152, 87457 }, - { 0x1153, 87460 }, - { 0x1154, 87373 }, - { 0x1155, 87253 }, - { 0x1156, 87376 }, - { 0x1157, 87379 }, - { 0x1158, 87382 }, - { 0x1159, 87385 }, - { 0x115A, 87388 }, - { 0x115B, 87262 }, - { 0x115C, 87391 }, - { 0x115D, 87265 }, - { 0x115E, 87394 }, - { 0x115F, 87268 }, - { 0x1160, 87397 }, - { 0x1161, 87271 }, - { 0x1162, 87274 }, - { 0x1163, 87277 }, - { 0x1164, 87436 }, - { 0x1165, 87463 }, - { 0x1166, 87466 }, - { 0x1167, 87469 }, - { 0x1168, 87472 }, - { 0x1169, 87475 }, - { 0x116A, 87478 }, - { 0x116B, 87481 }, - { 0x116C, 87484 }, - { 0x116D, 87487 }, - { 0x116E, 87490 }, - { 0x116F, 87493 }, - { 0x1170, 87496 }, - { 0x1171, 87400 }, - { 0x1172, 87403 }, - { 0x1173, 87406 }, - { 0x1174, 87409 }, - { 0x1175, 87412 }, - { 0x1176, 87415 }, - { 0x1177, 87418 }, - { 0x1178, 87421 }, - { 0x1179, 87424 }, - { 0x117A, 87427 }, - { 0x117B, 87430 }, - { 0x117C, 87433 }, - { 0x117D, 87352 }, - { 0x117E, 87137 }, - { 0x117F, 87141 }, - { 0x1180, 87145 }, - { 0x1181, 87149 }, - { 0x1182, 87153 }, - { 0x1183, 87045 }, - { 0x1184, 85262 }, - { 0x1185, 84275 }, - { 0x1186, 84527 }, - { 0x1187, 84281 }, - { 0x1188, 84359 }, - { 0x1189, 84296 }, - { 0x118A, 84431 }, - { 0x118B, 85365 }, - { 0x118C, 85433 }, - { 0x118D, 85417 }, - { 0x118E, 84269 }, - { 0x118F, 84317 }, - { 0x1190, 84506 }, - { 0x1191, 86500 }, - { 0x1192, 84509 }, - { 0x1193, 86504 }, - { 0x1194, 84867 }, - { 0x1195, 86644 }, - { 0x1196, 84512 }, - { 0x1197, 86508 }, - { 0x1198, 84870 }, - { 0x1199, 86648 }, - { 0x119A, 86160 }, - { 0x119B, 84503 }, - { 0x119C, 86496 }, - { 0x119D, 84861 }, - { 0x119E, 86640 }, - { 0x119F, 86156 }, - { 0x11A0, 84320 }, - { 0x11A1, 85361 }, - { 0x11A2, 86144 }, - { 0x11A3, 85157 }, - { 0x11A4, 85161 }, - { 0x11A5, 85182 }, - { 0x11A6, 85138 }, - { 0x11A7, 85165 }, - { 0x11A8, 85153 }, - { 0x11A9, 85188 }, - { 0x11AA, 85193 }, - { 0x11AB, 85200 }, - { 0x11AC, 85171 }, - { 0x11AD, 85149 }, - { 0x11AE, 85144 }, - { 0x11AF, 84341 }, - { 0x11B0, 84362 }, - { 0x11B1, 84428 }, - { 0x11B2, 84323 }, - { 0x11B3, 84440 }, - { 0x11B4, 85003 }, - { 0x11B5, 84443 }, - { 0x11B6, 84693 }, - { 0x11B7, 84446 }, - { 0x11B8, 84696 }, - { 0x11B9, 85389 }, - { 0x11BA, 85773 }, - { 0x11BB, 85457 }, - { 0x11BC, 84437 }, - { 0x11BD, 84687 }, - { 0x11BE, 84705 }, - { 0x11BF, 86596 }, - { 0x11C0, 84708 }, - { 0x11C1, 86600 }, - { 0x11C2, 85009 }, - { 0x11C3, 86728 }, - { 0x11C4, 84711 }, - { 0x11C5, 86604 }, - { 0x11C6, 85012 }, - { 0x11C7, 86732 }, - { 0x11C8, 84702 }, - { 0x11C9, 86592 }, - { 0x11CA, 85006 }, - { 0x11CB, 86724 }, - { 0x11CC, 85405 }, - { 0x11CD, 84299 }, - { 0x11CE, 86456 }, - { 0x11CF, 85413 }, - { 0x11D0, 84491 }, - { 0x11D1, 85075 }, - { 0x11D2, 84497 }, - { 0x11D3, 84816 }, - { 0x11D4, 84500 }, - { 0x11D5, 84819 }, - { 0x11D6, 85397 }, - { 0x11D7, 85693 }, - { 0x11D8, 85429 }, - { 0x11D9, 84488 }, - { 0x11DA, 84798 }, - { 0x11DB, 84840 }, - { 0x11DC, 86628 }, - { 0x11DD, 84843 }, - { 0x11DE, 86632 }, - { 0x11DF, 85120 }, - { 0x11E0, 86772 }, - { 0x11E1, 84846 }, - { 0x11E2, 86636 }, - { 0x11E3, 85123 }, - { 0x11E4, 86776 }, - { 0x11E5, 84837 }, - { 0x11E6, 86624 }, - { 0x11E7, 85117 }, - { 0x11E8, 86768 }, - { 0x11E9, 86200 }, - { 0x11EA, 84311 }, - { 0x11EB, 84825 }, - { 0x11EC, 84831 }, - { 0x11ED, 84834 }, - { 0x11EE, 84822 }, - { 0x11EF, 84368 }, - { 0x11F0, 84922 }, - { 0x11F1, 84371 }, - { 0x11F2, 84573 }, - { 0x11F3, 84374 }, - { 0x11F4, 84576 }, - { 0x11F5, 85373 }, - { 0x11F6, 84365 }, - { 0x11F7, 84567 }, - { 0x11F8, 84582 }, - { 0x11F9, 86532 }, - { 0x11FA, 84585 }, - { 0x11FB, 86536 }, - { 0x11FC, 84931 }, - { 0x11FD, 86688 }, - { 0x11FE, 84588 }, - { 0x11FF, 86540 }, - { 0x1200, 84934 }, - { 0x1201, 86692 }, - { 0x1202, 84579 }, - { 0x1203, 86528 }, - { 0x1204, 84925 }, - { 0x1205, 86684 }, - { 0x1206, 86168 }, - { 0x1207, 84284 }, - { 0x1208, 84377 }, - { 0x1209, 86881 }, - { 0x120A, 86885 }, - { 0x120B, 86889 }, - { 0x120C, 86877 }, - { 0x120D, 84332 }, - { 0x120E, 84900 }, - { 0x120F, 84335 }, - { 0x1210, 84540 }, - { 0x1211, 84338 }, - { 0x1212, 84543 }, - { 0x1213, 85369 }, - { 0x1214, 84329 }, - { 0x1215, 84533 }, - { 0x1216, 84549 }, - { 0x1217, 86516 }, - { 0x1218, 84552 }, - { 0x1219, 86520 }, - { 0x121A, 84906 }, - { 0x121B, 86672 }, - { 0x121C, 84555 }, - { 0x121D, 86524 }, - { 0x121E, 84909 }, - { 0x121F, 86676 }, - { 0x1220, 84546 }, - { 0x1221, 86512 }, - { 0x1222, 84903 }, - { 0x1223, 86668 }, - { 0x1224, 86164 }, - { 0x1225, 84272 }, - { 0x1226, 85321 }, - { 0x1227, 84398 }, - { 0x1228, 84958 }, - { 0x1229, 84404 }, - { 0x122A, 84630 }, - { 0x122B, 84407 }, - { 0x122C, 84633 }, - { 0x122D, 85381 }, - { 0x122E, 84395 }, - { 0x122F, 84624 }, - { 0x1230, 84639 }, - { 0x1231, 86572 }, - { 0x1232, 84642 }, - { 0x1233, 86576 }, - { 0x1234, 84964 }, - { 0x1235, 86712 }, - { 0x1236, 84645 }, - { 0x1237, 86580 }, - { 0x1238, 84967 }, - { 0x1239, 86716 }, - { 0x123A, 84636 }, - { 0x123B, 86568 }, - { 0x123C, 84961 }, - { 0x123D, 86708 }, - { 0x123E, 86172 }, - { 0x123F, 84290 }, - { 0x1240, 86452 }, - { 0x1241, 84401 }, - { 0x1242, 86808 }, - { 0x1243, 85293 }, - { 0x1244, 84413 }, - { 0x1245, 84970 }, - { 0x1246, 84422 }, - { 0x1247, 84663 }, - { 0x1248, 84425 }, - { 0x1249, 84669 }, - { 0x124A, 85385 }, - { 0x124B, 84410 }, - { 0x124C, 84648 }, - { 0x124D, 84678 }, - { 0x124E, 86588 }, - { 0x124F, 84675 }, - { 0x1250, 86584 }, - { 0x1251, 84994 }, - { 0x1252, 86720 }, - { 0x1253, 86176 }, - { 0x1254, 84293 }, - { 0x1255, 85533 }, - { 0x1256, 84419 }, - { 0x1257, 84383 }, - { 0x1258, 84937 }, - { 0x1259, 84389 }, - { 0x125A, 84606 }, - { 0x125B, 84392 }, - { 0x125C, 84609 }, - { 0x125D, 85377 }, - { 0x125E, 84380 }, - { 0x125F, 84591 }, - { 0x1260, 84615 }, - { 0x1261, 86556 }, - { 0x1262, 84618 }, - { 0x1263, 86560 }, - { 0x1264, 84952 }, - { 0x1265, 86700 }, - { 0x1266, 84621 }, - { 0x1267, 86564 }, - { 0x1268, 84955 }, - { 0x1269, 86704 }, - { 0x126A, 84612 }, - { 0x126B, 86552 }, - { 0x126C, 84949 }, - { 0x126D, 86696 }, - { 0x126E, 84287 }, - { 0x126F, 86448 }, - { 0x1270, 85265 }, - { 0x1271, 84473 }, - { 0x1272, 85036 }, - { 0x1273, 84479 }, - { 0x1274, 84765 }, - { 0x1275, 84482 }, - { 0x1276, 84768 }, - { 0x1277, 85393 }, - { 0x1278, 84470 }, - { 0x1279, 84747 }, - { 0x127A, 84789 }, - { 0x127B, 86612 }, - { 0x127C, 84792 }, - { 0x127D, 86616 }, - { 0x127E, 85069 }, - { 0x127F, 86760 }, - { 0x1280, 84795 }, - { 0x1281, 86620 }, - { 0x1282, 85072 }, - { 0x1283, 86764 }, - { 0x1284, 84786 }, - { 0x1285, 86608 }, - { 0x1286, 85066 }, - { 0x1287, 86756 }, - { 0x1288, 86196 }, - { 0x1289, 84308 }, - { 0x128A, 86812 }, - { 0x128B, 84485 }, - { 0x128C, 86392 }, - { 0x128D, 86820 }, - { 0x128E, 86152 }, - { 0x128F, 86148 }, - { 0x1290, 86188 }, - { 0x1291, 86192 }, - { 0x1292, 86184 }, - { 0x1293, 86180 }, - { 0x1294, 84756 }, - { 0x1295, 84759 }, - { 0x1296, 85045 }, - { 0x1297, 84762 }, - { 0x1298, 85048 }, - { 0x1299, 84753 }, - { 0x129A, 85039 }, - { 0x129B, 85057 }, - { 0x129C, 86744 }, - { 0x129D, 85060 }, - { 0x129E, 86748 }, - { 0x129F, 85225 }, - { 0x12A0, 86796 }, - { 0x12A1, 85063 }, - { 0x12A2, 86752 }, - { 0x12A3, 85228 }, - { 0x12A4, 86800 }, - { 0x12A5, 85054 }, - { 0x12A6, 86740 }, - { 0x12A7, 85222 }, - { 0x12A8, 86792 }, - { 0x12A9, 84476 }, - { 0x12AA, 84518 }, - { 0x12AB, 85126 }, - { 0x12AC, 84521 }, - { 0x12AD, 84879 }, - { 0x12AE, 84524 }, - { 0x12AF, 84882 }, - { 0x12B0, 85401 }, - { 0x12B1, 84515 }, - { 0x12B2, 84873 }, - { 0x12B3, 84891 }, - { 0x12B4, 86656 }, - { 0x12B5, 84894 }, - { 0x12B6, 86660 }, - { 0x12B7, 85132 }, - { 0x12B8, 86784 }, - { 0x12B9, 84897 }, - { 0x12BA, 86664 }, - { 0x12BB, 85135 }, - { 0x12BC, 86788 }, - { 0x12BD, 84888 }, - { 0x12BE, 86652 }, - { 0x12BF, 85129 }, - { 0x12C0, 86780 }, - { 0x12C1, 86204 }, - { 0x12C2, 84314 }, - { 0x12C3, 86816 }, - { 0x12C4, 86464 }, - { 0x12C5, 85325 }, - { 0x12C6, 84461 }, - { 0x12C7, 85285 }, - { 0x12C8, 86472 }, - { 0x12C9, 85021 }, - { 0x12CA, 84464 }, - { 0x12CB, 84732 }, - { 0x12CC, 84467 }, - { 0x12CD, 84735 }, - { 0x12CE, 86476 }, - { 0x12CF, 84458 }, - { 0x12D0, 84726 }, - { 0x12D1, 86468 }, - { 0x12D2, 85024 }, - { 0x12D3, 86736 }, - { 0x12D4, 84305 }, - { 0x12D5, 86460 }, - { 0x12D6, 85269 }, - { 0x12D7, 84347 }, - { 0x12D8, 84912 }, - { 0x12D9, 84350 }, - { 0x12DA, 84561 }, - { 0x12DB, 84353 }, - { 0x12DC, 84564 }, - { 0x12DD, 84344 }, - { 0x12DE, 84558 }, - { 0x12DF, 84919 }, - { 0x12E0, 86680 }, - { 0x12E1, 84278 }, - { 0x12E2, 84807 }, - { 0x12E3, 85273 }, - { 0x12E4, 84810 }, - { 0x12E5, 85277 }, - { 0x12E6, 85081 }, - { 0x12E7, 85281 }, - { 0x12E8, 84813 }, - { 0x12E9, 85084 }, - { 0x12EA, 84804 }, - { 0x12EB, 85078 }, - { 0x12EC, 85234 }, - { 0x12ED, 86804 }, - { 0x12EE, 84494 }, - { 0x12EF, 85108 }, - { 0x12F0, 85111 }, - { 0x12F1, 85114 }, - { 0x12F2, 85105 }, - { 0x12F3, 84828 }, - { 0x12F4, 84852 }, - { 0x12F5, 84855 }, - { 0x12F6, 84858 }, - { 0x12F7, 84849 }, - { 0x12F8, 86216 }, - { 0x12F9, 86220 }, - { 0x12FA, 86232 }, - { 0x12FB, 86224 }, - { 0x12FC, 86236 }, - { 0x12FD, 86212 }, - { 0x12FE, 86228 }, - { 0x12FF, 86208 }, - { 0x1300, 86240 }, - { 0x1301, 84356 }, - { 0x1302, 85018 }, - { 0x1303, 84452 }, - { 0x1304, 84720 }, - { 0x1305, 84455 }, - { 0x1306, 84723 }, - { 0x1307, 84449 }, - { 0x1308, 84714 }, - { 0x1309, 84302 }, - { 0x130A, 85096 }, - { 0x130B, 85099 }, - { 0x130C, 85102 }, - { 0x130D, 85093 }, - { 0x130E, 86484 }, - { 0x130F, 86488 }, - { 0x1310, 86492 }, - { 0x1311, 86480 }, - { 0x1312, 85210 }, - { 0x1313, 84657 }, - { 0x1314, 84979 }, - { 0x1315, 84660 }, - { 0x1316, 84982 }, - { 0x1317, 84654 }, - { 0x1318, 84973 }, - { 0x1319, 84416 }, - { 0x131A, 84666 }, - { 0x131B, 85341 }, - { 0x131C, 85345 }, - { 0x131D, 85349 }, - { 0x131E, 85337 }, - { 0x131F, 86832 }, - { 0x1320, 86836 }, - { 0x1321, 86840 }, - { 0x1322, 86828 }, - { 0x1323, 86824 }, - { 0x1324, 84600 }, - { 0x1325, 84943 }, - { 0x1326, 84603 }, - { 0x1327, 84946 }, - { 0x1328, 84597 }, - { 0x1329, 84940 }, - { 0x132A, 84386 }, - { 0x132B, 86300 }, - { 0x132C, 86304 }, - { 0x132D, 86316 }, - { 0x132E, 86308 }, - { 0x132F, 86320 }, - { 0x1330, 86296 }, - { 0x1331, 86312 }, - { 0x1332, 86292 }, - { 0x1333, 85409 }, - { 0x1334, 86380 }, - { 0x1335, 86384 }, - { 0x1336, 86388 }, - { 0x1337, 86376 }, - { 0x1338, 86436 }, - { 0x1339, 86440 }, - { 0x133A, 86444 }, - { 0x133B, 86432 }, - { 0x133C, 86420 }, - { 0x133D, 86424 }, - { 0x133E, 86428 }, - { 0x133F, 86416 }, - { 0x1340, 86404 }, - { 0x1341, 86408 }, - { 0x1342, 86412 }, - { 0x1343, 86400 }, - { 0x1344, 85301 }, - { 0x1345, 85305 }, - { 0x1346, 85309 }, - { 0x1347, 85297 }, - { 0x1348, 85761 }, - { 0x1349, 85757 }, - { 0x134A, 85749 }, - { 0x134B, 86038 }, - { 0x134C, 85753 }, - { 0x134D, 85745 }, - { 0x134E, 85585 }, - { 0x134F, 85581 }, - { 0x1350, 85573 }, - { 0x1351, 85901 }, - { 0x1352, 85577 }, - { 0x1353, 85569 }, - { 0x1354, 85629 }, - { 0x1355, 85625 }, - { 0x1356, 85617 }, - { 0x1357, 86009 }, - { 0x1358, 85621 }, - { 0x1359, 85613 }, - { 0x135A, 85793 }, - { 0x135B, 85789 }, - { 0x135C, 85781 }, - { 0x135D, 86042 }, - { 0x135E, 85785 }, - { 0x135F, 85777 }, - { 0x1360, 85945 }, - { 0x1361, 85941 }, - { 0x1362, 85933 }, - { 0x1363, 86066 }, - { 0x1364, 85937 }, - { 0x1365, 85929 }, - { 0x1366, 86005 }, - { 0x1367, 86001 }, - { 0x1368, 85993 }, - { 0x1369, 86098 }, - { 0x136A, 85997 }, - { 0x136B, 85989 }, - { 0x136C, 85565 }, - { 0x136D, 85561 }, - { 0x136E, 85553 }, - { 0x136F, 85897 }, - { 0x1370, 85557 }, - { 0x1371, 85549 }, - { 0x1372, 85421 }, - { 0x1373, 85453 }, - { 0x1374, 85449 }, - { 0x1375, 85441 }, - { 0x1376, 85741 }, - { 0x1377, 85445 }, - { 0x1378, 85437 }, - { 0x1379, 85841 }, - { 0x137A, 85837 }, - { 0x137B, 85829 }, - { 0x137C, 86050 }, - { 0x137D, 85833 }, - { 0x137E, 85825 }, - { 0x137F, 85861 }, - { 0x1380, 85857 }, - { 0x1381, 85849 }, - { 0x1382, 86054 }, - { 0x1383, 85853 }, - { 0x1384, 85845 }, - { 0x1385, 85481 }, - { 0x1386, 85545 }, - { 0x1387, 85541 }, - { 0x1388, 85529 }, - { 0x1389, 85893 }, - { 0x138A, 85537 }, - { 0x138B, 85525 }, - { 0x138C, 85521 }, - { 0x138D, 85517 }, - { 0x138E, 85509 }, - { 0x138F, 85889 }, - { 0x1390, 85513 }, - { 0x1391, 85505 }, - { 0x1392, 85649 }, - { 0x1393, 85645 }, - { 0x1394, 85637 }, - { 0x1395, 86013 }, - { 0x1396, 85641 }, - { 0x1397, 85633 }, - { 0x1398, 85477 }, - { 0x1399, 85317 }, - { 0x139A, 85473 }, - { 0x139B, 85465 }, - { 0x139C, 85797 }, - { 0x139D, 85469 }, - { 0x139E, 85313 }, - { 0x139F, 85461 }, - { 0x13A0, 85817 }, - { 0x13A1, 85813 }, - { 0x13A2, 85805 }, - { 0x13A3, 86046 }, - { 0x13A4, 85809 }, - { 0x13A5, 85801 }, - { 0x13A6, 85501 }, - { 0x13A7, 85497 }, - { 0x13A8, 85489 }, - { 0x13A9, 85865 }, - { 0x13AA, 85493 }, - { 0x13AB, 85485 }, - { 0x13AC, 85713 }, - { 0x13AD, 85709 }, - { 0x13AE, 85701 }, - { 0x13AF, 86030 }, - { 0x13B0, 85705 }, - { 0x13B1, 85697 }, - { 0x13B2, 85885 }, - { 0x13B3, 85881 }, - { 0x13B4, 85873 }, - { 0x13B5, 86058 }, - { 0x13B6, 85877 }, - { 0x13B7, 85869 }, - { 0x13B8, 86090 }, - { 0x13B9, 86086 }, - { 0x13BA, 86078 }, - { 0x13BB, 86122 }, - { 0x13BC, 86082 }, - { 0x13BD, 86074 }, - { 0x13BE, 85965 }, - { 0x13BF, 85961 }, - { 0x13C0, 85953 }, - { 0x13C1, 86070 }, - { 0x13C2, 85957 }, - { 0x13C3, 85949 }, - { 0x13C4, 85669 }, - { 0x13C5, 85665 }, - { 0x13C6, 85657 }, - { 0x13C7, 86017 }, - { 0x13C8, 85661 }, - { 0x13C9, 85653 }, - { 0x13CA, 85425 }, - { 0x13CB, 86135 }, - { 0x13CC, 85733 }, - { 0x13CD, 85729 }, - { 0x13CE, 85721 }, - { 0x13CF, 86034 }, - { 0x13D0, 85725 }, - { 0x13D1, 85717 }, - { 0x13D2, 85609 }, - { 0x13D3, 85605 }, - { 0x13D4, 85593 }, - { 0x13D5, 85905 }, - { 0x13D6, 85601 }, - { 0x13D7, 85589 }, - { 0x13D8, 85925 }, - { 0x13D9, 85921 }, - { 0x13DA, 85913 }, - { 0x13DB, 86062 }, - { 0x13DC, 85917 }, - { 0x13DD, 85909 }, - { 0x13DE, 85597 }, - { 0x13DF, 85985 }, - { 0x13E0, 85981 }, - { 0x13E1, 85973 }, - { 0x13E2, 86094 }, - { 0x13E3, 85977 }, - { 0x13E4, 85969 }, - { 0x13E5, 85689 }, - { 0x13E6, 85685 }, - { 0x13E7, 85677 }, - { 0x13E8, 86021 }, - { 0x13E9, 85681 }, - { 0x13EA, 85673 }, - { 0x13EB, 86118 }, - { 0x13EC, 86114 }, - { 0x13ED, 86106 }, - { 0x13EE, 86126 }, - { 0x13EF, 86110 }, - { 0x13F0, 86102 }, - { 0x13F1, 84536 }, - { 0x13F2, 84915 }, - { 0x13F3, 84717 }, - { 0x13F4, 84976 }, - { 0x13F5, 84988 }, - { 0x13F6, 85216 }, - { 0x13F7, 84991 }, - { 0x13F8, 85219 }, - { 0x13F9, 84985 }, - { 0x13FA, 85213 }, - { 0x13FB, 86865 }, - { 0x13FC, 86848 }, - { 0x13FD, 86869 }, - { 0x13FE, 86852 }, - { 0x13FF, 86873 }, - { 0x1400, 86844 }, - { 0x1401, 86861 }, - { 0x1402, 86856 }, - { 0x1403, 86396 }, - { 0x1404, 39544 }, - { 0x1405, 39589 }, - { 0x1406, 39571 }, - { 0x1407, 39595 }, - { 0x1408, 39583 }, - { 0x1409, 39577 }, - { 0x140A, 39586 }, - { 0x140B, 39562 }, - { 0x140C, 39601 }, - { 0x140D, 39559 }, - { 0x140E, 39592 }, - { 0x140F, 39574 }, - { 0x1410, 39565 }, - { 0x1411, 39616 }, - { 0x1412, 39604 }, - { 0x1413, 39580 }, - { 0x1414, 39556 }, - { 0x1415, 39553 }, - { 0x1416, 39550 }, - { 0x1417, 39610 }, - { 0x1418, 39613 }, - { 0x1419, 39607 }, - { 0x141A, 39547 }, - { 0x141B, 39619 }, - { 0x141C, 39568 }, - { 0x141D, 39622 }, - { 0x141E, 39598 }, - { 0x141F, 39625 }, - { 0x1420, 39628 }, - { 0x1421, 40959 }, - { 0x1422, 40891 }, - { 0x1423, 40987 }, - { 0x1424, 40926 }, - { 0x1425, 40900 }, - { 0x1426, 40894 }, - { 0x1427, 41130 }, - { 0x1428, 40938 }, - { 0x1429, 40996 }, - { 0x142A, 40919 }, - { 0x142B, 40906 }, - { 0x142C, 40953 }, - { 0x142D, 41164 }, - { 0x142E, 41152 }, - { 0x142F, 40885 }, - { 0x1430, 40910 }, - { 0x1431, 40913 }, - { 0x1432, 41024 }, - { 0x1433, 41021 }, - { 0x1434, 40929 }, - { 0x1435, 40980 }, - { 0x1436, 40879 }, - { 0x1437, 40935 }, - { 0x1438, 40965 }, - { 0x1439, 40941 }, - { 0x143A, 41041 }, - { 0x143B, 41071 }, - { 0x143C, 41013 }, - { 0x143D, 41184 }, - { 0x143E, 41180 }, - { 0x143F, 41089 }, - { 0x1440, 41172 }, - { 0x1441, 41124 }, - { 0x1442, 40970 }, - { 0x1443, 40876 }, - { 0x1444, 41017 }, - { 0x1445, 40944 }, - { 0x1446, 41145 }, - { 0x1447, 41138 }, - { 0x1448, 40976 }, - { 0x1449, 41098 }, - { 0x144A, 40992 }, - { 0x144B, 41103 }, - { 0x144C, 41030 }, - { 0x144D, 41156 }, - { 0x144E, 40870 }, - { 0x144F, 40903 }, - { 0x1450, 41035 }, - { 0x1451, 41160 }, - { 0x1452, 40873 }, - { 0x1453, 41115 }, - { 0x1454, 41188 }, - { 0x1455, 41127 }, - { 0x1456, 41095 }, - { 0x1457, 41008 }, - { 0x1458, 41084 }, - { 0x1459, 41176 }, - { 0x145A, 41168 }, - { 0x145B, 41078 }, - { 0x145C, 41121 }, - { 0x145D, 41075 }, - { 0x145E, 40947 }, - { 0x145F, 41003 }, - { 0x1460, 41110 }, - { 0x1461, 40932 }, - { 0x1462, 40950 }, - { 0x1463, 41107 }, - { 0x1464, 40956 }, - { 0x1465, 41000 }, - { 0x1466, 40984 }, - { 0x1467, 41149 }, - { 0x1468, 41142 }, - { 0x1469, 41135 }, - { 0x146A, 40888 }, - { 0x146B, 40897 }, - { 0x146C, 41192 }, - { 0x146D, 41198 }, - { 0x146E, 40864 }, - { 0x146F, 40867 }, - { 0x1470, 41201 }, - { 0x1471, 41195 }, - { 0x1472, 40882 }, - { 0x1473, 40923 }, - { 0x1474, 40916 }, - { 0x1475, 41061 }, - { 0x1476, 41056 }, - { 0x1477, 41051 }, - { 0x1478, 41046 }, - { 0x1479, 41066 }, - { 0x147A, 81304 }, - { 0x147B, 81307 }, - { 0x147C, 81310 }, - { 0x147D, 81325 }, - { 0x147E, 81319 }, - { 0x147F, 81355 }, - { 0x1480, 81346 }, - { 0x1481, 81316 }, - { 0x1482, 81334 }, - { 0x1483, 81337 }, - { 0x1484, 81313 }, - { 0x1485, 81331 }, - { 0x1486, 81352 }, - { 0x1487, 81340 }, - { 0x1488, 81328 }, - { 0x1489, 81349 }, - { 0x148A, 81343 }, - { 0x148B, 81322 }, - { 0x148C, 81296 }, - { 0x148D, 81300 }, - { 0x148E, 81290 }, - { 0x148F, 81293 }, - { 0x1490, 81358 }, - { 0x1491, 73817 }, - { 0x1492, 73820 }, - { 0x1493, 73823 }, - { 0x1494, 73838 }, - { 0x1495, 73832 }, - { 0x1496, 73868 }, - { 0x1497, 73859 }, - { 0x1498, 73829 }, - { 0x1499, 73847 }, - { 0x149A, 73850 }, - { 0x149B, 73826 }, - { 0x149C, 73844 }, - { 0x149D, 73865 }, - { 0x149E, 73853 }, - { 0x149F, 73841 }, - { 0x14A0, 73862 }, - { 0x14A1, 73856 }, - { 0x14A2, 73835 }, - { 0x14A3, 73809 }, - { 0x14A4, 73813 }, - { 0x14A5, 73806 }, - { 0x14A6, 132112 }, - { 0x14A7, 132109 }, - { 0x14A8, 22306 }, - { 0x14A9, 22309 }, - { 0x14AA, 22312 }, - { 0x14AB, 22327 }, - { 0x14AC, 22321 }, - { 0x14AD, 22357 }, - { 0x14AE, 22348 }, - { 0x14AF, 22318 }, - { 0x14B0, 22336 }, - { 0x14B1, 22339 }, - { 0x14B2, 22315 }, - { 0x14B3, 22333 }, - { 0x14B4, 22354 }, - { 0x14B5, 22342 }, - { 0x14B6, 22330 }, - { 0x14B7, 22351 }, - { 0x14B8, 22345 }, - { 0x14B9, 22324 }, - { 0x14BA, 22298 }, - { 0x14BB, 22302 }, - { 0x14BC, 110834 }, - { 0x14BD, 110837 }, - { 0x14BE, 110840 }, - { 0x14BF, 110852 }, - { 0x14C0, 110849 }, - { 0x14C1, 110879 }, - { 0x14C2, 110870 }, - { 0x14C3, 110846 }, - { 0x14C4, 110861 }, - { 0x14C5, 110864 }, - { 0x14C6, 110843 }, - { 0x14C7, 110858 }, - { 0x14C8, 110876 }, - { 0x14C9, 110855 }, - { 0x14CA, 110873 }, - { 0x14CB, 110867 }, - { 0x14CC, 110826 }, - { 0x14CD, 110830 }, - { 0x14CE, 27792 }, - { 0x14CF, 27840 }, - { 0x14D0, 27795 }, - { 0x14D1, 27843 }, - { 0x14D2, 27846 }, - { 0x14D3, 27777 }, - { 0x14D4, 27834 }, - { 0x14D5, 27780 }, - { 0x14D6, 27837 }, - { 0x14D7, 27852 }, - { 0x14D8, 27783 }, - { 0x14D9, 27873 }, - { 0x14DA, 27786 }, - { 0x14DB, 27876 }, - { 0x14DC, 27849 }, - { 0x14DD, 27822 }, - { 0x14DE, 27867 }, - { 0x14DF, 27825 }, - { 0x14E0, 27870 }, - { 0x14E1, 27807 }, - { 0x14E2, 27774 }, - { 0x14E3, 27855 }, - { 0x14E4, 27810 }, - { 0x14E5, 27858 }, - { 0x14E6, 27804 }, - { 0x14E7, 27831 }, - { 0x14E8, 27816 }, - { 0x14E9, 27801 }, - { 0x14EA, 27828 }, - { 0x14EB, 27861 }, - { 0x14EC, 27864 }, - { 0x14ED, 27819 }, - { 0x14EE, 27789 }, - { 0x14EF, 27798 }, - { 0x14F0, 27813 }, - { 0x14F1, 28091 }, - { 0x14F2, 28083 }, - { 0x14F3, 28067 }, - { 0x14F4, 28099 }, - { 0x14F5, 28071 }, - { 0x14F6, 28115 }, - { 0x14F7, 28119 }, - { 0x14F8, 28127 }, - { 0x14F9, 28075 }, - { 0x14FA, 28123 }, - { 0x14FB, 28059 }, - { 0x14FC, 28079 }, - { 0x14FD, 28063 }, - { 0x14FE, 28087 }, - { 0x14FF, 28103 }, - { 0x1500, 28109 }, - { 0x1501, 28095 }, - { 0x1502, 27770 }, - { 0x1503, 27766 }, - { 0x1504, 27718 }, - { 0x1505, 27706 }, - { 0x1506, 27738 }, - { 0x1507, 27714 }, - { 0x1508, 27762 }, - { 0x1509, 27710 }, - { 0x150A, 27754 }, - { 0x150B, 27750 }, - { 0x150C, 27742 }, - { 0x150D, 27758 }, - { 0x150E, 27734 }, - { 0x150F, 27702 }, - { 0x1510, 27722 }, - { 0x1511, 27726 }, - { 0x1512, 27746 }, - { 0x1513, 27730 }, - { 0x1514, 27642 }, - { 0x1515, 27645 }, - { 0x1516, 27669 }, - { 0x1517, 27660 }, - { 0x1518, 27648 }, - { 0x1519, 27614 }, - { 0x151A, 27611 }, - { 0x151B, 27663 }, - { 0x151C, 27636 }, - { 0x151D, 27605 }, - { 0x151E, 27629 }, - { 0x151F, 27633 }, - { 0x1520, 27608 }, - { 0x1521, 27657 }, - { 0x1522, 27602 }, - { 0x1523, 27654 }, - { 0x1524, 27620 }, - { 0x1525, 27598 }, - { 0x1526, 27617 }, - { 0x1527, 27625 }, - { 0x1528, 27639 }, - { 0x1529, 28055 }, - { 0x152A, 27666 }, - { 0x152B, 27651 }, - { 0x152C, 27690 }, - { 0x152D, 27672 }, - { 0x152E, 27678 }, - { 0x152F, 27699 }, - { 0x1530, 27684 }, - { 0x1531, 27681 }, - { 0x1532, 27675 }, - { 0x1533, 27696 }, - { 0x1534, 27693 }, - { 0x1535, 27687 }, - { 0x1536, 27905 }, - { 0x1537, 27915 }, - { 0x1538, 27900 }, - { 0x1539, 27895 }, - { 0x153A, 27910 }, - { 0x153B, 27920 }, - { 0x153C, 27940 }, - { 0x153D, 27930 }, - { 0x153E, 27925 }, - { 0x153F, 27935 }, - { 0x1540, 126718 }, - { 0x1541, 127382 }, - { 0x1542, 126731 }, - { 0x1543, 126706 }, - { 0x1544, 126729 }, - { 0x1545, 126683 }, - { 0x1546, 126714 }, - { 0x1547, 126709 }, - { 0x1548, 127351 }, - { 0x1549, 127347 }, - { 0x154A, 127354 }, - { 0x154B, 126686 }, - { 0x154C, 126691 }, - { 0x154D, 126701 }, - { 0x154E, 126777 }, - { 0x154F, 126696 }, - { 0x1550, 126751 }, - { 0x1551, 126733 }, - { 0x1552, 126739 }, - { 0x1553, 126760 }, - { 0x1554, 126745 }, - { 0x1555, 126742 }, - { 0x1556, 126736 }, - { 0x1557, 126757 }, - { 0x1558, 126754 }, - { 0x1559, 126748 }, - { 0x155A, 126785 }, - { 0x155B, 126788 }, - { 0x155C, 126791 }, - { 0x155D, 126794 }, - { 0x155E, 126797 }, - { 0x155F, 126830 }, - { 0x1560, 126848 }, - { 0x1561, 126806 }, - { 0x1562, 126827 }, - { 0x1563, 127001 }, - { 0x1564, 126800 }, - { 0x1565, 126833 }, - { 0x1566, 126836 }, - { 0x1567, 126812 }, - { 0x1568, 126824 }, - { 0x1569, 126821 }, - { 0x156A, 126842 }, - { 0x156B, 127025 }, - { 0x156C, 126845 }, - { 0x156D, 126803 }, - { 0x156E, 127004 }, - { 0x156F, 126815 }, - { 0x1570, 126854 }, - { 0x1571, 126839 }, - { 0x1572, 126851 }, - { 0x1573, 126809 }, - { 0x1574, 126818 }, - { 0x1575, 127019 }, - { 0x1576, 127028 }, - { 0x1577, 126857 }, - { 0x1578, 127016 }, - { 0x1579, 127034 }, - { 0x157A, 127022 }, - { 0x157B, 127031 }, - { 0x157C, 127013 }, - { 0x157D, 127237 }, - { 0x157E, 127125 }, - { 0x157F, 127129 }, - { 0x1580, 127133 }, - { 0x1581, 127137 }, - { 0x1582, 127165 }, - { 0x1583, 127181 }, - { 0x1584, 127205 }, - { 0x1585, 127141 }, - { 0x1586, 127169 }, - { 0x1587, 127173 }, - { 0x1588, 127149 }, - { 0x1589, 127161 }, - { 0x158A, 127177 }, - { 0x158B, 127145 }, - { 0x158C, 127209 }, - { 0x158D, 127153 }, - { 0x158E, 127233 }, - { 0x158F, 127189 }, - { 0x1590, 127185 }, - { 0x1591, 127157 }, - { 0x1592, 127217 }, - { 0x1593, 127221 }, - { 0x1594, 127225 }, - { 0x1595, 127229 }, - { 0x1596, 127213 }, - { 0x1597, 127037 }, - { 0x1598, 127041 }, - { 0x1599, 127065 }, - { 0x159A, 127085 }, - { 0x159B, 127045 }, - { 0x159C, 127093 }, - { 0x159D, 127073 }, - { 0x159E, 127057 }, - { 0x159F, 127061 }, - { 0x15A0, 127077 }, - { 0x15A1, 127113 }, - { 0x15A2, 127081 }, - { 0x15A3, 127049 }, - { 0x15A4, 127069 }, - { 0x15A5, 127053 }, - { 0x15A6, 127101 }, - { 0x15A7, 127105 }, - { 0x15A8, 127117 }, - { 0x15A9, 127089 }, - { 0x15AA, 127109 }, - { 0x15AB, 127097 }, - { 0x15AC, 127121 }, - { 0x15AD, 127243 }, - { 0x15AE, 127251 }, - { 0x15AF, 127255 }, - { 0x15B0, 127247 }, - { 0x15B1, 127343 }, - { 0x15B2, 127007 }, - { 0x15B3, 126989 }, - { 0x15B4, 126983 }, - { 0x15B5, 126968 }, - { 0x15B6, 126978 }, - { 0x15B7, 126995 }, - { 0x15B8, 126963 }, - { 0x15B9, 126957 }, - { 0x15BA, 126860 }, - { 0x15BB, 126865 }, - { 0x15BC, 126885 }, - { 0x15BD, 126910 }, - { 0x15BE, 126875 }, - { 0x15BF, 126930 }, - { 0x15C0, 126952 }, - { 0x15C1, 126905 }, - { 0x15C2, 126915 }, - { 0x15C3, 126895 }, - { 0x15C4, 126880 }, - { 0x15C5, 126890 }, - { 0x15C6, 126920 }, - { 0x15C7, 126925 }, - { 0x15C8, 126935 }, - { 0x15C9, 126900 }, - { 0x15CA, 126870 }, - { 0x15CB, 127193 }, - { 0x15CC, 127199 }, - { 0x15CD, 127295 }, - { 0x15CE, 127313 }, - { 0x15CF, 127259 }, - { 0x15D0, 127301 }, - { 0x15D1, 127325 }, - { 0x15D2, 127337 }, - { 0x15D3, 127265 }, - { 0x15D4, 127289 }, - { 0x15D5, 127319 }, - { 0x15D6, 127283 }, - { 0x15D7, 127331 }, - { 0x15D8, 127271 }, - { 0x15D9, 126940 }, - { 0x15DA, 126946 }, - { 0x15DB, 127277 }, - { 0x15DC, 126973 }, - { 0x15DD, 127307 }, - { 0x15DE, 84434 }, - { 0x15DF, 84326 }, - { 0x15E0, 84530 }, - { 0x15E1, 84864 }, - { 0x15E2, 84699 }, - { 0x15E3, 84690 }, - { 0x15E4, 85015 }, - { 0x15E5, 84801 }, - { 0x15E6, 84570 }, - { 0x15E7, 84928 }, - { 0x15E8, 84627 }, - { 0x15E9, 84672 }, - { 0x15EA, 84651 }, - { 0x15EB, 84594 }, - { 0x15EC, 84771 }, - { 0x15ED, 84750 }, - { 0x15EE, 85051 }, - { 0x15EF, 85042 }, - { 0x15F0, 85231 }, - { 0x15F1, 84885 }, - { 0x15F2, 84876 }, - { 0x15F3, 84729 }, - { 0x15F4, 84681 }, - { 0x15F5, 86276 }, - { 0x15F6, 84997 }, - { 0x15F7, 86284 }, - { 0x15F8, 84684 }, - { 0x15F9, 86280 }, - { 0x15FA, 85000 }, - { 0x15FB, 86288 }, - { 0x15FC, 85027 }, - { 0x15FD, 84741 }, - { 0x15FE, 85030 }, - { 0x15FF, 84744 }, - { 0x1600, 85033 }, - { 0x1601, 84738 }, - { 0x1602, 86260 }, - { 0x1603, 86268 }, - { 0x1604, 86248 }, - { 0x1605, 86244 }, - { 0x1606, 86252 }, - { 0x1607, 86256 }, - { 0x1608, 86264 }, - { 0x1609, 86272 }, - { 0x160A, 86140 }, - { 0x160B, 86324 }, - { 0x160C, 85177 }, - { 0x160D, 85205 }, - { 0x160E, 85289 }, - { 0x160F, 86548 }, - { 0x1610, 86544 }, - { 0x1611, 85090 }, - { 0x1612, 85087 }, - { 0x1613, 85249 }, - { 0x1614, 85246 }, - { 0x1615, 85243 }, - { 0x1616, 85240 }, - { 0x1617, 85237 }, - { 0x1618, 85357 }, - { 0x1619, 85353 }, - { 0x161A, 85329 }, - { 0x161B, 85769 }, - { 0x161C, 86025 }, - { 0x161D, 85737 }, - { 0x161E, 85765 }, - { 0x161F, 85333 }, - { 0x1620, 85821 }, - { 0x1621, 85252 }, - { 0x1622, 85257 }, - { 0x1623, 86130 }, - { 0x1624, 36621 }, - { 0x1625, 36531 }, - { 0x1626, 36576 }, - { 0x1627, 36522 }, - { 0x1628, 36570 }, - { 0x1629, 36579 }, - { 0x162A, 36516 }, - { 0x162B, 36564 }, - { 0x162C, 36528 }, - { 0x162D, 36573 }, - { 0x162E, 36597 }, - { 0x162F, 36552 }, - { 0x1630, 36591 }, - { 0x1631, 36519 }, - { 0x1632, 36567 }, - { 0x1633, 36540 }, - { 0x1634, 36543 }, - { 0x1635, 36582 }, - { 0x1636, 36513 }, - { 0x1637, 36561 }, - { 0x1638, 36537 }, - { 0x1639, 36558 }, - { 0x163A, 36546 }, - { 0x163B, 36534 }, - { 0x163C, 36555 }, - { 0x163D, 36585 }, - { 0x163E, 36588 }, - { 0x163F, 36549 }, - { 0x1640, 36525 }, - { 0x1641, 36600 }, - { 0x1642, 36594 }, - { 0x1643, 36477 }, - { 0x1644, 36485 }, - { 0x1645, 36493 }, - { 0x1646, 36505 }, - { 0x1647, 36497 }, - { 0x1648, 36509 }, - { 0x1649, 36501 }, - { 0x164A, 36481 }, - { 0x164B, 36489 }, - { 0x164C, 36614 }, - { 0x164D, 36606 }, - { 0x164E, 36610 }, - { 0x164F, 36441 }, - { 0x1650, 36469 }, - { 0x1651, 36473 }, - { 0x1652, 36465 }, - { 0x1653, 36453 }, - { 0x1654, 36457 }, - { 0x1655, 36449 }, - { 0x1656, 36461 }, - { 0x1657, 36445 }, - { 0x1658, 36408 }, - { 0x1659, 36405 }, - { 0x165A, 36402 }, - { 0x165B, 36399 }, - { 0x165C, 36618 }, - { 0x165D, 36603 }, - { 0x165E, 36429 }, - { 0x165F, 36411 }, - { 0x1660, 36417 }, - { 0x1661, 36438 }, - { 0x1662, 36423 }, - { 0x1663, 36420 }, - { 0x1664, 36414 }, - { 0x1665, 36435 }, - { 0x1666, 36432 }, - { 0x1667, 36426 }, - { 0x1668, 11005 }, - { 0x1669, 11049 }, - { 0x166A, 11065 }, - { 0x166B, 11077 }, - { 0x166C, 11033 }, - { 0x166D, 11053 }, - { 0x166E, 11037 }, - { 0x166F, 11073 }, - { 0x1670, 11009 }, - { 0x1671, 11025 }, - { 0x1672, 11069 }, - { 0x1673, 11013 }, - { 0x1674, 10997 }, - { 0x1675, 11045 }, - { 0x1676, 11001 }, - { 0x1677, 11029 }, - { 0x1678, 11061 }, - { 0x1679, 11081 }, - { 0x167A, 11017 }, - { 0x167B, 10965 }, - { 0x167C, 10973 }, - { 0x167D, 10989 }, - { 0x167E, 10993 }, - { 0x167F, 10981 }, - { 0x1680, 11021 }, - { 0x1681, 10977 }, - { 0x1682, 11041 }, - { 0x1683, 10969 }, - { 0x1684, 11057 }, - { 0x1685, 10985 }, - { 0x1686, 11085 }, - { 0x1687, 11089 }, - { 0x1688, 11093 }, - { 0x1689, 11097 }, - { 0x168A, 11101 }, - { 0x168B, 7655 }, - { 0x168C, 7523 }, - { 0x168D, 7625 }, - { 0x168E, 7679 }, - { 0x168F, 7697 }, - { 0x1690, 7493 }, - { 0x1691, 7547 }, - { 0x1692, 7565 }, - { 0x1693, 7721 }, - { 0x1694, 7661 }, - { 0x1695, 7685 }, - { 0x1696, 7589 }, - { 0x1697, 7529 }, - { 0x1698, 7553 }, - { 0x1699, 7667 }, - { 0x169A, 7715 }, - { 0x169B, 7643 }, - { 0x169C, 7535 }, - { 0x169D, 7583 }, - { 0x169E, 7511 }, - { 0x169F, 7649 }, - { 0x16A0, 7703 }, - { 0x16A1, 7637 }, - { 0x16A2, 7517 }, - { 0x16A3, 7571 }, - { 0x16A4, 7505 }, - { 0x16A5, 7613 }, - { 0x16A6, 7673 }, - { 0x16A7, 7631 }, - { 0x16A8, 7481 }, - { 0x16A9, 7541 }, - { 0x16AA, 7499 }, - { 0x16AB, 7619 }, - { 0x16AC, 7607 }, - { 0x16AD, 7601 }, - { 0x16AE, 7487 }, - { 0x16AF, 7475 }, - { 0x16B0, 7469 }, - { 0x16B1, 7691 }, - { 0x16B2, 7727 }, - { 0x16B3, 7559 }, - { 0x16B4, 7595 }, - { 0x16B5, 7709 }, - { 0x16B6, 7577 }, - { 0x16B7, 7462 }, - { 0x16B8, 7384 }, - { 0x16B9, 7402 }, - { 0x16BA, 7378 }, - { 0x16BB, 7432 }, - { 0x16BC, 7366 }, - { 0x16BD, 7390 }, - { 0x16BE, 7372 }, - { 0x16BF, 7414 }, - { 0x16C0, 7426 }, - { 0x16C1, 7396 }, - { 0x16C2, 7444 }, - { 0x16C3, 7438 }, - { 0x16C4, 7420 }, - { 0x16C5, 7450 }, - { 0x16C6, 7456 }, - { 0x16C7, 7408 }, - { 0x16C8, 7763 }, - { 0x16C9, 7769 }, - { 0x16CA, 7757 }, - { 0x16CB, 7751 }, - { 0x16CC, 7745 }, - { 0x16CD, 7739 }, - { 0x16CE, 7733 }, - { 0x16CF, 7306 }, - { 0x16D0, 7311 }, - { 0x16D1, 7346 }, - { 0x16D2, 7316 }, - { 0x16D3, 7326 }, - { 0x16D4, 7361 }, - { 0x16D5, 7336 }, - { 0x16D6, 7331 }, - { 0x16D7, 7321 }, - { 0x16D8, 7356 }, - { 0x16D9, 7351 }, - { 0x16DA, 7341 }, - { 0x16DB, 7300 }, - { 0x16DC, 7290 }, - { 0x16DD, 7295 }, - { 0x16DE, 28052 }, - { 0x16DF, 27965 }, - { 0x16E0, 27949 }, - { 0x16E1, 27883 }, - { 0x16E2, 27957 }, - { 0x16E3, 27973 }, - { 0x16E4, 28045 }, - { 0x16E5, 28029 }, - { 0x16E6, 28021 }, - { 0x16E7, 28037 }, - { 0x16E8, 27891 }, - { 0x16E9, 28005 }, - { 0x16EA, 27989 }, - { 0x16EB, 27981 }, - { 0x16EC, 27997 }, - { 0x16ED, 28013 }, - { 0x16EE, 28049 }, - { 0x16EF, 27961 }, - { 0x16F0, 27945 }, - { 0x16F1, 27879 }, - { 0x16F2, 27953 }, - { 0x16F3, 27969 }, - { 0x16F4, 28041 }, - { 0x16F5, 28025 }, - { 0x16F6, 28017 }, - { 0x16F7, 28033 }, - { 0x16F8, 27887 }, - { 0x16F9, 28001 }, - { 0x16FA, 27985 }, - { 0x16FB, 27977 }, - { 0x16FC, 27993 }, - { 0x16FD, 28009 }, - { 0x16FE, 84209 }, - { 0x16FF, 84200 }, - { 0x1700, 84242 }, - { 0x1701, 84251 }, - { 0x1702, 84221 }, - { 0x1703, 84191 }, - { 0x1704, 84215 }, - { 0x1705, 84239 }, - { 0x1706, 84230 }, - { 0x1707, 84197 }, - { 0x1708, 84218 }, - { 0x1709, 84245 }, - { 0x170A, 84194 }, - { 0x170B, 84206 }, - { 0x170C, 84248 }, - { 0x170D, 84254 }, - { 0x170E, 84236 }, - { 0x170F, 84224 }, - { 0x1710, 84212 }, - { 0x1711, 84233 }, - { 0x1712, 84227 }, - { 0x1713, 84188 }, - { 0x1714, 84203 }, - { 0x1715, 84172 }, - { 0x1716, 84180 }, - { 0x1717, 84168 }, - { 0x1718, 84176 }, - { 0x1719, 84184 }, - { 0x171A, 84257 }, - { 0x171B, 84164 }, - { 0x171C, 11582 }, - { 0x171D, 11612 }, - { 0x171E, 11617 }, - { 0x171F, 11496 }, - { 0x1720, 11531 }, - { 0x1721, 11526 }, - { 0x1722, 11555 }, - { 0x1723, 11567 }, - { 0x1724, 11607 }, - { 0x1725, 11481 }, - { 0x1726, 11506 }, - { 0x1727, 11521 }, - { 0x1728, 11559 }, - { 0x1729, 11651 }, - { 0x172A, 11642 }, - { 0x172B, 11433 }, - { 0x172C, 11546 }, - { 0x172D, 11647 }, - { 0x172E, 11597 }, - { 0x172F, 11637 }, - { 0x1730, 11511 }, - { 0x1731, 11541 }, - { 0x1732, 11453 }, - { 0x1733, 11429 }, - { 0x1734, 11587 }, - { 0x1735, 11622 }, - { 0x1736, 11572 }, - { 0x1737, 11501 }, - { 0x1738, 11486 }, - { 0x1739, 11536 }, - { 0x173A, 11449 }, - { 0x173B, 11516 }, - { 0x173C, 11602 }, - { 0x173D, 11461 }, - { 0x173E, 11563 }, - { 0x173F, 11445 }, - { 0x1740, 11551 }, - { 0x1741, 11469 }, - { 0x1742, 11627 }, - { 0x1743, 11632 }, - { 0x1744, 11592 }, - { 0x1745, 11577 }, - { 0x1746, 11477 }, - { 0x1747, 11417 }, - { 0x1748, 11491 }, - { 0x1749, 11421 }, - { 0x174A, 11441 }, - { 0x174B, 11425 }, - { 0x174C, 11465 }, - { 0x174D, 11437 }, - { 0x174E, 11457 }, - { 0x174F, 11473 }, - { 0x1750, 11655 }, - { 0x1751, 11714 }, - { 0x1752, 11708 }, - { 0x1753, 11670 }, - { 0x1754, 11174 }, - { 0x1755, 11702 }, - { 0x1756, 11687 }, - { 0x1757, 11693 }, - { 0x1758, 11677 }, - { 0x1759, 11665 }, - { 0x175A, 11682 }, - { 0x175B, 11216 }, - { 0x175C, 11317 }, - { 0x175D, 11394 }, - { 0x175E, 11342 }, - { 0x175F, 11405 }, - { 0x1760, 11327 }, - { 0x1761, 11357 }, - { 0x1762, 11384 }, - { 0x1763, 11400 }, - { 0x1764, 11337 }, - { 0x1765, 11389 }, - { 0x1766, 11332 }, - { 0x1767, 11368 }, - { 0x1768, 11379 }, - { 0x1769, 11322 }, - { 0x176A, 11347 }, - { 0x176B, 11374 }, - { 0x176C, 11352 }, - { 0x176D, 11411 }, - { 0x176E, 11362 }, - { 0x176F, 11169 }, - { 0x1770, 11232 }, - { 0x1771, 11236 }, - { 0x1772, 11201 }, - { 0x1773, 11206 }, - { 0x1774, 11211 }, - { 0x1775, 11155 }, - { 0x1776, 11164 }, - { 0x1777, 11254 }, - { 0x1778, 11660 }, - { 0x1779, 11135 }, - { 0x177A, 11105 }, - { 0x177B, 11115 }, - { 0x177C, 11150 }, - { 0x177D, 11125 }, - { 0x177E, 11120 }, - { 0x177F, 11110 }, - { 0x1780, 11145 }, - { 0x1781, 11140 }, - { 0x1782, 11130 }, - { 0x1783, 11297 }, - { 0x1784, 11267 }, - { 0x1785, 11277 }, - { 0x1786, 11312 }, - { 0x1787, 11287 }, - { 0x1788, 11282 }, - { 0x1789, 11272 }, - { 0x178A, 11307 }, - { 0x178B, 11302 }, - { 0x178C, 11292 }, - { 0x178D, 11224 }, - { 0x178E, 11259 }, - { 0x178F, 11220 }, - { 0x1790, 11193 }, - { 0x1791, 11160 }, - { 0x1792, 11228 }, - { 0x1793, 11248 }, - { 0x1794, 11180 }, - { 0x1795, 11189 }, - { 0x1796, 11240 }, - { 0x1797, 11244 }, - { 0x1798, 11263 }, - { 0x1799, 11185 }, - { 0x179A, 11197 }, - { 0x179B, 117130 }, - { 0x179C, 117855 }, - { 0x179D, 117451 }, - { 0x179E, 117522 }, - { 0x179F, 117101 }, - { 0x17A0, 116320 }, - { 0x17A1, 117115 }, - { 0x17A2, 116416 }, - { 0x17A3, 116951 }, - { 0x17A4, 116818 }, - { 0x17A5, 117096 }, - { 0x17A6, 117826 }, - { 0x17A7, 117041 }, - { 0x17A8, 117829 }, - { 0x17A9, 117832 }, - { 0x17AA, 116687 }, - { 0x17AB, 116749 }, - { 0x17AC, 116388 }, - { 0x17AD, 116875 }, - { 0x17AE, 116393 }, - { 0x17AF, 116880 }, - { 0x17B0, 117092 }, - { 0x17B1, 117080 }, - { 0x17B2, 117464 }, - { 0x17B3, 116420 }, - { 0x17B4, 116956 }, - { 0x17B5, 116961 }, - { 0x17B6, 117104 }, - { 0x17B7, 116762 }, - { 0x17B8, 116768 }, - { 0x17B9, 116774 }, - { 0x17BA, 83402 }, - { 0x17BB, 83406 }, - { 0x17BC, 83413 }, - { 0x17BD, 83416 }, - { 0x17BE, 83410 }, - { 0x17BF, 83703 }, - { 0x17C0, 83706 }, - { 0x17C1, 83713 }, - { 0x17C2, 83716 }, - { 0x17C3, 83727 }, - { 0x17C4, 83730 }, - { 0x17C5, 83635 }, - { 0x17C6, 83639 }, - { 0x17C7, 83606 }, - { 0x17C8, 83610 }, - { 0x17C9, 83710 }, - { 0x17CA, 83734 }, - { 0x17CB, 83720 }, - { 0x17CC, 83723 }, - { 0x17CD, 83596 }, - { 0x17CE, 83599 }, - { 0x17CF, 83579 }, - { 0x17D0, 83582 }, - { 0x17D1, 83685 }, - { 0x17D2, 83551 }, - { 0x17D3, 83554 }, - { 0x17D4, 83589 }, - { 0x17D5, 83592 }, - { 0x17D6, 83688 }, - { 0x17D7, 83662 }, - { 0x17D8, 83666 }, - { 0x17D9, 83565 }, - { 0x17DA, 83570 }, - { 0x17DB, 83621 }, - { 0x17DC, 83655 }, - { 0x17DD, 83658 }, - { 0x17DE, 83558 }, - { 0x17DF, 83561 }, - { 0x17E0, 83618 }, - { 0x17E1, 83625 }, - { 0x17E2, 83628 }, - { 0x17E3, 83544 }, - { 0x17E4, 83547 }, - { 0x17E5, 83615 }, - { 0x17E6, 83678 }, - { 0x17E7, 83632 }, - { 0x17E8, 83603 }, - { 0x17E9, 83675 }, - { 0x17EA, 83647 }, - { 0x17EB, 83651 }, - { 0x17EC, 83644 }, - { 0x17ED, 83586 }, - { 0x17EE, 83419 }, - { 0x17EF, 83538 }, - { 0x17F0, 83491 }, - { 0x17F1, 83495 }, - { 0x17F2, 83500 }, - { 0x17F3, 83504 }, - { 0x17F4, 83480 }, - { 0x17F5, 83485 }, - { 0x17F6, 83469 }, - { 0x17F7, 83474 }, - { 0x17F8, 83518 }, - { 0x17F9, 83522 }, - { 0x17FA, 83533 }, - { 0x17FB, 83527 }, - { 0x17FC, 83509 }, - { 0x17FD, 83513 }, - { 0x17FE, 83399 }, - { 0x17FF, 83681 }, - { 0x1800, 83695 }, - { 0x1801, 83699 }, - { 0x1802, 83575 }, - { 0x1803, 83671 }, - { 0x1804, 83691 }, - { 0x1805, 83737 }, - { 0x1806, 83741 }, - { 0x1807, 83895 }, - { 0x1808, 83899 }, - { 0x1809, 83449 }, - { 0x180A, 83431 }, - { 0x180B, 83437 }, - { 0x180C, 83458 }, - { 0x180D, 83443 }, - { 0x180E, 83440 }, - { 0x180F, 83434 }, - { 0x1810, 83455 }, - { 0x1811, 83452 }, - { 0x1812, 83446 }, - { 0x1813, 83461 }, - { 0x1814, 83745 }, - { 0x1815, 83542 }, - { 0x1816, 83428 }, - { 0x1817, 83422 }, - { 0x1818, 83425 }, - { 0x1819, 83903 }, - { 0x181A, 83772 }, - { 0x181B, 83764 }, - { 0x181C, 83776 }, - { 0x181D, 83750 }, - { 0x181E, 83759 }, - { 0x181F, 83768 }, - { 0x1820, 83780 }, - { 0x1821, 83788 }, - { 0x1822, 83784 }, - { 0x1823, 83754 }, - { 0x1824, 83807 }, - { 0x1825, 83802 }, - { 0x1826, 83824 }, - { 0x1827, 83812 }, - { 0x1828, 83836 }, - { 0x1829, 83829 }, - { 0x182A, 83817 }, - { 0x182B, 83797 }, - { 0x182C, 83792 }, - { 0x182D, 83877 }, - { 0x182E, 83871 }, - { 0x182F, 83889 }, - { 0x1830, 83883 }, - { 0x1831, 83841 }, - { 0x1832, 83853 }, - { 0x1833, 83859 }, - { 0x1834, 83865 }, - { 0x1835, 83847 }, - { 0x1836, 83466 }, - { 0x1837, 83747 }, - { 0x1838, 83463 }, - { 0x1839, 128272 }, - { 0x183A, 128275 }, - { 0x183B, 128278 }, - { 0x183C, 128335 }, - { 0x183D, 128341 }, - { 0x183E, 128347 }, - { 0x183F, 128350 }, - { 0x1840, 128344 }, - { 0x1841, 128338 }, - { 0x1842, 128362 }, - { 0x1843, 128377 }, - { 0x1844, 128392 }, - { 0x1845, 128368 }, - { 0x1846, 128428 }, - { 0x1847, 128356 }, - { 0x1848, 128374 }, - { 0x1849, 128416 }, - { 0x184A, 128431 }, - { 0x184B, 128401 }, - { 0x184C, 128359 }, - { 0x184D, 128386 }, - { 0x184E, 128389 }, - { 0x184F, 128365 }, - { 0x1850, 128404 }, - { 0x1851, 128353 }, - { 0x1852, 128383 }, - { 0x1853, 128413 }, - { 0x1854, 128395 }, - { 0x1855, 128380 }, - { 0x1856, 128407 }, - { 0x1857, 128398 }, - { 0x1858, 128410 }, - { 0x1859, 128371 }, - { 0x185A, 128472 }, - { 0x185B, 128458 }, - { 0x185C, 128454 }, - { 0x185D, 128319 }, - { 0x185E, 128315 }, - { 0x185F, 128327 }, - { 0x1860, 128323 }, - { 0x1861, 128311 }, - { 0x1862, 128331 }, - { 0x1863, 128269 }, - { 0x1864, 128266 }, - { 0x1865, 128462 }, - { 0x1866, 128467 }, - { 0x1867, 128422 }, - { 0x1868, 128437 }, - { 0x1869, 128299 }, - { 0x186A, 128281 }, - { 0x186B, 128287 }, - { 0x186C, 128308 }, - { 0x186D, 128293 }, - { 0x186E, 128290 }, - { 0x186F, 128284 }, - { 0x1870, 128305 }, - { 0x1871, 128302 }, - { 0x1872, 128296 }, - { 0x1873, 128452 }, - { 0x1874, 128434 }, - { 0x1875, 128425 }, - { 0x1876, 128419 }, - { 0x1877, 128440 }, - { 0x1878, 128444 }, - { 0x1879, 20825 }, - { 0x187A, 20916 }, - { 0x187B, 20846 }, - { 0x187C, 20924 }, - { 0x187D, 20904 }, - { 0x187E, 20834 }, - { 0x187F, 20888 }, - { 0x1880, 20861 }, - { 0x1881, 20936 }, - { 0x1882, 20858 }, - { 0x1883, 20908 }, - { 0x1884, 20870 }, - { 0x1885, 20948 }, - { 0x1886, 20892 }, - { 0x1887, 20843 }, - { 0x1888, 20920 }, - { 0x1889, 20849 }, - { 0x188A, 20840 }, - { 0x188B, 20864 }, - { 0x188C, 20940 }, - { 0x188D, 20855 }, - { 0x188E, 20932 }, - { 0x188F, 20900 }, - { 0x1890, 20896 }, - { 0x1891, 20867 }, - { 0x1892, 20944 }, - { 0x1893, 20912 }, - { 0x1894, 20873 }, - { 0x1895, 20952 }, - { 0x1896, 20882 }, - { 0x1897, 20852 }, - { 0x1898, 20928 }, - { 0x1899, 20885 }, - { 0x189A, 20837 }, - { 0x189B, 20879 }, - { 0x189C, 20876 }, - { 0x189D, 20828 }, - { 0x189E, 20831 }, - { 0x189F, 20780 }, - { 0x18A0, 20783 }, - { 0x18A1, 20820 }, - { 0x18A2, 20806 }, - { 0x18A3, 20787 }, - { 0x18A4, 20810 }, - { 0x18A5, 20791 }, - { 0x18A6, 20815 }, - { 0x18A7, 20795 }, - { 0x18A8, 20799 }, - { 0x18A9, 20979 }, - { 0x18AA, 20975 }, - { 0x18AB, 20973 }, - { 0x18AC, 20983 }, - { 0x18AD, 20956 }, - { 0x18AE, 20969 }, - { 0x18AF, 20961 }, - { 0x18B0, 20965 }, - { 0x18B1, 60641 }, - { 0x18B2, 60698 }, - { 0x18B3, 60695 }, - { 0x18B4, 60632 }, - { 0x18B5, 60689 }, - { 0x18B6, 60704 }, - { 0x18B7, 60623 }, - { 0x18B8, 60677 }, - { 0x18B9, 60638 }, - { 0x18BA, 60707 }, - { 0x18BB, 60662 }, - { 0x18BC, 60719 }, - { 0x18BD, 60626 }, - { 0x18BE, 60650 }, - { 0x18BF, 60653 }, - { 0x18C0, 60713 }, - { 0x18C1, 60710 }, - { 0x18C2, 60629 }, - { 0x18C3, 60686 }, - { 0x18C4, 60620 }, - { 0x18C5, 60674 }, - { 0x18C6, 60647 }, - { 0x18C7, 60701 }, - { 0x18C8, 60722 }, - { 0x18C9, 60728 }, - { 0x18CA, 60683 }, - { 0x18CB, 60671 }, - { 0x18CC, 60656 }, - { 0x18CD, 60644 }, - { 0x18CE, 60635 }, - { 0x18CF, 60692 }, - { 0x18D0, 60665 }, - { 0x18D1, 60659 }, - { 0x18D2, 60716 }, - { 0x18D3, 60668 }, - { 0x18D4, 60617 }, - { 0x18D5, 60774 }, - { 0x18D6, 60770 }, - { 0x18D7, 60605 }, - { 0x18D8, 60593 }, - { 0x18D9, 60597 }, - { 0x18DA, 60609 }, - { 0x18DB, 60601 }, - { 0x18DC, 60613 }, - { 0x18DD, 60589 }, - { 0x18DE, 60734 }, - { 0x18DF, 60742 }, - { 0x18E0, 60738 }, - { 0x18E1, 60746 }, - { 0x18E2, 60750 }, - { 0x18E3, 60754 }, - { 0x18E4, 60758 }, - { 0x18E5, 60766 }, - { 0x18E6, 60762 }, - { 0x18E7, 60553 }, - { 0x18E8, 60556 }, - { 0x18E9, 60786 }, - { 0x18EA, 60778 }, - { 0x18EB, 60783 }, - { 0x18EC, 60792 }, - { 0x18ED, 60789 }, - { 0x18EE, 60577 }, - { 0x18EF, 60559 }, - { 0x18F0, 60565 }, - { 0x18F1, 60586 }, - { 0x18F2, 60571 }, - { 0x18F3, 60568 }, - { 0x18F4, 60562 }, - { 0x18F5, 60583 }, - { 0x18F6, 60580 }, - { 0x18F7, 60574 }, - { 0x18F8, 60725 }, - { 0x18F9, 60731 }, - { 0x18FA, 60680 }, - { 0x18FB, 322 }, - { 0x18FC, 298 }, - { 0x18FD, 306 }, - { 0x18FE, 334 }, - { 0x18FF, 314 }, - { 0x1900, 310 }, - { 0x1901, 302 }, - { 0x1902, 330 }, - { 0x1903, 326 }, - { 0x1904, 318 }, - { 0x1905, 373 }, - { 0x1906, 349 }, - { 0x1907, 341 }, - { 0x1908, 433 }, - { 0x1909, 345 }, - { 0x190A, 449 }, - { 0x190B, 421 }, - { 0x190C, 417 }, - { 0x190D, 425 }, - { 0x190E, 429 }, - { 0x190F, 381 }, - { 0x1910, 369 }, - { 0x1911, 361 }, - { 0x1912, 445 }, - { 0x1913, 365 }, - { 0x1914, 389 }, - { 0x1915, 405 }, - { 0x1916, 409 }, - { 0x1917, 457 }, - { 0x1918, 413 }, - { 0x1919, 377 }, - { 0x191A, 357 }, - { 0x191B, 437 }, - { 0x191C, 353 }, - { 0x191D, 441 }, - { 0x191E, 385 }, - { 0x191F, 453 }, - { 0x1920, 393 }, - { 0x1921, 401 }, - { 0x1922, 397 }, - { 0x1923, 291 }, - { 0x1924, 461 }, - { 0x1925, 468 }, - { 0x1926, 338 }, - { 0x1927, 465 }, - { 0x1928, 295 }, - { 0x1929, 477 }, - { 0x192A, 472 }, - { 0x192B, 88472 }, - { 0x192C, 88604 }, - { 0x192D, 88431 }, - { 0x192E, 88299 }, - { 0x192F, 88267 }, - { 0x1930, 88609 }, - { 0x1931, 88277 }, - { 0x1932, 88272 }, - { 0x1933, 88594 }, - { 0x1934, 89114 }, - { 0x1935, 88118 }, - { 0x1936, 103939 }, - { 0x1937, 103994 }, - { 0x1938, 104014 }, - { 0x1939, 104009 }, - { 0x193A, 103944 }, - { 0x193B, 104094 }, - { 0x193C, 104104 }, - { 0x193D, 104084 }, - { 0x193E, 103959 }, - { 0x193F, 104044 }, - { 0x1940, 104049 }, - { 0x1941, 104054 }, - { 0x1942, 104059 }, - { 0x1943, 103964 }, - { 0x1944, 104064 }, - { 0x1945, 104150 }, - { 0x1946, 104074 }, - { 0x1947, 104079 }, - { 0x1948, 104089 }, - { 0x1949, 103969 }, - { 0x194A, 104140 }, - { 0x194B, 104135 }, - { 0x194C, 104119 }, - { 0x194D, 104069 }, - { 0x194E, 104145 }, - { 0x194F, 104114 }, - { 0x1950, 103999 }, - { 0x1951, 104039 }, - { 0x1952, 104004 }, - { 0x1953, 104109 }, - { 0x1954, 104099 }, - { 0x1955, 104130 }, - { 0x1956, 104019 }, - { 0x1957, 103954 }, - { 0x1958, 104029 }, - { 0x1959, 103974 }, - { 0x195A, 104024 }, - { 0x195B, 104034 }, - { 0x195C, 103949 }, - { 0x195D, 103979 }, - { 0x195E, 104155 }, - { 0x195F, 104166 }, - { 0x1960, 103989 }, - { 0x1961, 103984 }, - { 0x1962, 104124 }, - { 0x1963, 104160 }, - { 0x1964, 128500 }, - { 0x1965, 128508 }, - { 0x1966, 128504 }, - { 0x1967, 128496 }, - { 0x1968, 128491 }, - { 0x1969, 128486 }, - { 0x196A, 128481 }, - { 0x196B, 128476 }, - { 0x196C, 43253 }, - { 0x196D, 43217 }, - { 0x196E, 43250 }, - { 0x196F, 43187 }, - { 0x1970, 43190 }, - { 0x1971, 43275 }, - { 0x1972, 43281 }, - { 0x1973, 43262 }, - { 0x1974, 43229 }, - { 0x1975, 43268 }, - { 0x1976, 43238 }, - { 0x1977, 43242 }, - { 0x1978, 43246 }, - { 0x1979, 43204 }, - { 0x197A, 43208 }, - { 0x197B, 43220 }, - { 0x197C, 43256 }, - { 0x197D, 43286 }, - { 0x197E, 43132 }, - { 0x197F, 43122 }, - { 0x1980, 43177 }, - { 0x1981, 43136 }, - { 0x1982, 43182 }, - { 0x1983, 43126 }, - { 0x1984, 43140 }, - { 0x1985, 43161 }, - { 0x1986, 43165 }, - { 0x1987, 43151 }, - { 0x1988, 43155 }, - { 0x1989, 43115 }, - { 0x198A, 43172 }, - { 0x198B, 43101 }, - { 0x198C, 43110 }, - { 0x198D, 43146 }, - { 0x198E, 43201 }, - { 0x198F, 43118 }, - { 0x1990, 43225 }, - { 0x1991, 43195 }, - { 0x1992, 43198 }, - { 0x1993, 43169 }, - { 0x1994, 43213 }, - { 0x1995, 43233 }, - { 0x1996, 43105 }, - { 0x1997, 33036 }, - { 0x1998, 33190 }, - { 0x1999, 32613 }, - { 0x199A, 33226 }, - { 0x199B, 33046 }, - { 0x199C, 33051 }, - { 0x199D, 33205 }, - { 0x199E, 33056 }, - { 0x199F, 32643 }, - { 0x19A0, 32483 }, - { 0x19A1, 33088 }, - { 0x19A2, 33093 }, - { 0x19A3, 33110 }, - { 0x19A4, 33117 }, - { 0x19A5, 33268 }, - { 0x19A6, 33127 }, - { 0x19A7, 33220 }, - { 0x19A8, 32869 }, - { 0x19A9, 32886 }, - { 0x19AA, 32874 }, - { 0x19AB, 32618 }, - { 0x19AC, 33200 }, - { 0x19AD, 32057 }, - { 0x19AE, 32350 }, - { 0x19AF, 33132 }, - { 0x19B0, 33274 }, - { 0x19B1, 33256 }, - { 0x19B2, 33160 }, - { 0x19B3, 33165 }, - { 0x19B4, 32881 }, - { 0x19B5, 32898 }, - { 0x19B6, 32892 }, - { 0x19B7, 33170 }, - { 0x19B8, 33175 }, - { 0x19B9, 33185 }, - { 0x19BA, 33210 }, - { 0x19BB, 33284 }, - { 0x19BC, 33025 }, - { 0x19BD, 25041 }, - { 0x19BE, 25046 }, - { 0x19BF, 25026 }, - { 0x19C0, 25036 }, - { 0x19C1, 25031 }, - { 0x19C2, 88636 }, - { 0x19C3, 108335 }, - { 0x19C4, 108429 }, - { 0x19C5, 108339 }, - { 0x19C6, 108437 }, - { 0x19C7, 108347 }, - { 0x19C8, 108351 }, - { 0x19C9, 108442 }, - { 0x19CA, 108359 }, - { 0x19CB, 108363 }, - { 0x19CC, 108373 }, - { 0x19CD, 108377 }, - { 0x19CE, 108381 }, - { 0x19CF, 108385 }, - { 0x19D0, 108389 }, - { 0x19D1, 108393 }, - { 0x19D2, 108447 }, - { 0x19D3, 108397 }, - { 0x19D4, 108433 }, - { 0x19D5, 108401 }, - { 0x19D6, 108409 }, - { 0x19D7, 108413 }, - { 0x19D8, 108417 }, - { 0x19D9, 108425 }, - { 0x19DA, 107523 }, - { 0x19DB, 108032 }, - { 0x19DC, 107974 }, - { 0x19DD, 108113 }, - { 0x19DE, 107527 }, - { 0x19DF, 107547 }, - { 0x19E0, 107571 }, - { 0x19E1, 107996 }, - { 0x19E2, 107954 }, - { 0x19E3, 108118 }, - { 0x19E4, 107579 }, - { 0x19E5, 108042 }, - { 0x19E6, 107621 }, - { 0x19E7, 107673 }, - { 0x19E8, 107889 }, - { 0x19E9, 107697 }, - { 0x19EA, 107959 }, - { 0x19EB, 107909 }, - { 0x19EC, 108009 }, - { 0x19ED, 107707 }, - { 0x19EE, 107747 }, - { 0x19EF, 107765 }, - { 0x19F0, 108253 }, - { 0x19F1, 108047 }, - { 0x19F2, 107781 }, - { 0x19F3, 107881 }, - { 0x19F4, 107915 }, - { 0x19F5, 107991 }, - { 0x19F6, 107978 }, - { 0x19F7, 107986 }, - { 0x19F8, 107885 }, - { 0x19F9, 36218 }, - { 0x19FA, 36258 }, - { 0x19FB, 36273 }, - { 0x19FC, 36278 }, - { 0x19FD, 26110 }, - { 0x19FE, 26115 }, - { 0x19FF, 26105 }, - { 0x1A00, 26100 }, - { 0x1A01, 26095 }, - { 0x1A02, 31868 }, - { 0x1A03, 29073 }, - { 0x1A04, 29251 }, - { 0x1A05, 29519 }, - { 0x1A06, 30131 }, - { 0x1A07, 30221 }, - { 0x1A08, 30610 }, - { 0x1A09, 30749 }, - { 0x1A0A, 30788 }, - { 0x1A0B, 30930 }, - { 0x1A0C, 31037 }, - { 0x1A0D, 31674 }, - { 0x1A0E, 32457 }, - { 0x1A0F, 108537 }, - { 0x1A10, 32721 }, - { 0x1A11, 31845 }, - { 0x1A12, 32970 }, - { 0x1A13, 32123 }, - { 0x1A14, 30617 }, - { 0x1A15, 32977 }, - { 0x1A16, 32755 }, - { 0x1A17, 29092 }, - { 0x1A18, 29276 }, - { 0x1A19, 29532 }, - { 0x1A1A, 29599 }, - { 0x1A1B, 29908 }, - { 0x1A1C, 30049 }, - { 0x1A1D, 30138 }, - { 0x1A1E, 30241 }, - { 0x1A1F, 30631 }, - { 0x1A20, 30775 }, - { 0x1A21, 30950 }, - { 0x1A22, 31959 }, - { 0x1A23, 31393 }, - { 0x1A24, 31511 }, - { 0x1A25, 31687 }, - { 0x1A26, 28982 }, - { 0x1A27, 32260 }, - { 0x1A28, 29216 }, - { 0x1A29, 29440 }, - { 0x1A2A, 32174 }, - { 0x1A2B, 32850 }, - { 0x1A2C, 32299 }, - { 0x1A2D, 29803 }, - { 0x1A2E, 32194 }, - { 0x1A2F, 31966 }, - { 0x1A30, 31337 }, - { 0x1A31, 32006 }, - { 0x1A32, 108124 }, - { 0x1A33, 107537 }, - { 0x1A34, 107541 }, - { 0x1A35, 107897 }, - { 0x1A36, 108241 }, - { 0x1A37, 107575 }, - { 0x1A38, 108211 }, - { 0x1A39, 108027 }, - { 0x1A3A, 108037 }, - { 0x1A3B, 107605 }, - { 0x1A3C, 107939 }, - { 0x1A3D, 108151 }, - { 0x1A3E, 108156 }, - { 0x1A3F, 107615 }, - { 0x1A40, 107657 }, - { 0x1A41, 107642 }, - { 0x1A42, 108163 }, - { 0x1A43, 107677 }, - { 0x1A44, 108052 }, - { 0x1A45, 107683 }, - { 0x1A46, 107690 }, - { 0x1A47, 108175 }, - { 0x1A48, 108004 }, - { 0x1A49, 107905 }, - { 0x1A4A, 107741 }, - { 0x1A4B, 107893 }, - { 0x1A4C, 107751 }, - { 0x1A4D, 107769 }, - { 0x1A4E, 108227 }, - { 0x1A4F, 108185 }, - { 0x1A50, 107785 }, - { 0x1A51, 108091 }, - { 0x1A52, 107810 }, - { 0x1A53, 107820 }, - { 0x1A54, 107814 }, - { 0x1A55, 107901 }, - { 0x1A56, 108000 }, - { 0x1A57, 116943 }, - { 0x1A58, 116939 }, - { 0x1A59, 116898 }, - { 0x1A5A, 117817 }, - { 0x1A5B, 117841 }, - { 0x1A5C, 117839 }, - { 0x1A5D, 117845 }, - { 0x1A5E, 117835 }, - { 0x1A5F, 117859 }, - { 0x1A60, 117857 }, - { 0x1A61, 116634 }, - { 0x1A62, 117837 }, - { 0x1A63, 117843 }, - { 0x1A64, 117032 }, - { 0x1A65, 117086 }, - { 0x1A66, 117122 }, - { 0x1A67, 116253 }, - { 0x1A68, 116264 }, - { 0x1A69, 116267 }, - { 0x1A6A, 116780 }, - { 0x1A6B, 116703 }, - { 0x1A6C, 116708 }, - { 0x1A6D, 116713 }, - { 0x1A6E, 116538 }, - { 0x1A6F, 116756 }, - { 0x1A70, 116723 }, - { 0x1A71, 116559 }, - { 0x1A72, 116788 }, - { 0x1A73, 116574 }, - { 0x1A74, 116579 }, - { 0x1A75, 116794 }, - { 0x1A76, 116800 }, - { 0x1A77, 116598 }, - { 0x1A78, 116806 }, - { 0x1A79, 116812 }, - { 0x1A7A, 116640 }, - { 0x1A7B, 116646 }, - { 0x1A7C, 116733 }, - { 0x1A7D, 116698 }, - { 0x1A7E, 116739 }, - { 0x1A7F, 116528 }, - { 0x1A80, 116728 }, - { 0x1A81, 116744 }, - { 0x1A82, 116554 }, - { 0x1A83, 116584 }, - { 0x1A84, 116608 }, - { 0x1A85, 116624 }, - { 0x1A86, 116718 }, - { 0x1A87, 116661 }, - { 0x1A88, 116682 }, - { 0x1A89, 116521 }, - { 0x1A8A, 116617 }, - { 0x1A8B, 116670 }, - { 0x1A8C, 116256 }, - { 0x1A8D, 117053 }, - { 0x1A8E, 117049 }, - { 0x1A8F, 116273 }, - { 0x1A90, 116441 }, - { 0x1A91, 116284 }, - { 0x1A92, 117445 }, - { 0x1A93, 117009 }, - { 0x1A94, 116928 }, - { 0x1A95, 116380 }, - { 0x1A96, 116860 }, - { 0x1A97, 33430 }, - { 0x1A98, 28849 }, - { 0x1A99, 33607 }, - { 0x1A9A, 29046 }, - { 0x1A9B, 33614 }, - { 0x1A9C, 29053 }, - { 0x1A9D, 33627 }, - { 0x1A9E, 29066 }, - { 0x1A9F, 33699 }, - { 0x1AA0, 29158 }, - { 0x1AA1, 33724 }, - { 0x1AA2, 29190 }, - { 0x1AA3, 33731 }, - { 0x1AA4, 29197 }, - { 0x1AA5, 33744 }, - { 0x1AA6, 29224 }, - { 0x1AA7, 33795 }, - { 0x1AA8, 29270 }, - { 0x1AA9, 33801 }, - { 0x1AAA, 29283 }, - { 0x1AAB, 33891 }, - { 0x1AAC, 29387 }, - { 0x1AAD, 33883 }, - { 0x1AAE, 29379 }, - { 0x1AAF, 33986 }, - { 0x1AB0, 29495 }, - { 0x1AB1, 33863 }, - { 0x1AB2, 29359 }, - { 0x1AB3, 33917 }, - { 0x1AB4, 29413 }, - { 0x1AB5, 33997 }, - { 0x1AB6, 29506 }, - { 0x1AB7, 34051 }, - { 0x1AB8, 29574 }, - { 0x1AB9, 34086 }, - { 0x1ABA, 29616 }, - { 0x1ABB, 34093 }, - { 0x1ABC, 29623 }, - { 0x1ABD, 34137 }, - { 0x1ABE, 29681 }, - { 0x1ABF, 34125 }, - { 0x1AC0, 29662 }, - { 0x1AC1, 34106 }, - { 0x1AC2, 29643 }, - { 0x1AC3, 34204 }, - { 0x1AC4, 29741 }, - { 0x1AC5, 34249 }, - { 0x1AC6, 29795 }, - { 0x1AC7, 34309 }, - { 0x1AC8, 29868 }, - { 0x1AC9, 34289 }, - { 0x1ACA, 29848 }, - { 0x1ACB, 34302 }, - { 0x1ACC, 29861 }, - { 0x1ACD, 34372 }, - { 0x1ACE, 29938 }, - { 0x1ACF, 34379 }, - { 0x1AD0, 29945 }, - { 0x1AD1, 34401 }, - { 0x1AD2, 29982 }, - { 0x1AD3, 34461 }, - { 0x1AD4, 30086 }, - { 0x1AD5, 34492 }, - { 0x1AD6, 30125 }, - { 0x1AD7, 34472 }, - { 0x1AD8, 30105 }, - { 0x1AD9, 34479 }, - { 0x1ADA, 30112 }, - { 0x1ADB, 34502 }, - { 0x1ADC, 30155 }, - { 0x1ADD, 34509 }, - { 0x1ADE, 30162 }, - { 0x1ADF, 34523 }, - { 0x1AE0, 30182 }, - { 0x1AE1, 34589 }, - { 0x1AE2, 30261 }, - { 0x1AE3, 34722 }, - { 0x1AE4, 30423 }, - { 0x1AE5, 34738 }, - { 0x1AE6, 30439 }, - { 0x1AE7, 34774 }, - { 0x1AE8, 30475 }, - { 0x1AE9, 34766 }, - { 0x1AEA, 30467 }, - { 0x1AEB, 34903 }, - { 0x1AEC, 30604 }, - { 0x1AED, 34890 }, - { 0x1AEE, 30591 }, - { 0x1AEF, 34959 }, - { 0x1AF0, 30687 }, - { 0x1AF1, 34966 }, - { 0x1AF2, 30694 }, - { 0x1AF3, 34973 }, - { 0x1AF4, 30701 }, - { 0x1AF5, 34982 }, - { 0x1AF6, 30710 }, - { 0x1AF7, 35049 }, - { 0x1AF8, 30842 }, - { 0x1AF9, 35056 }, - { 0x1AFA, 30849 }, - { 0x1AFB, 35085 }, - { 0x1AFC, 30884 }, - { 0x1AFD, 35100 }, - { 0x1AFE, 30899 }, - { 0x1AFF, 35063 }, - { 0x1B00, 30856 }, - { 0x1B01, 35161 }, - { 0x1B02, 30982 }, - { 0x1B03, 35168 }, - { 0x1B04, 30989 }, - { 0x1B05, 35181 }, - { 0x1B06, 31017 }, - { 0x1B07, 35227 }, - { 0x1B08, 31083 }, - { 0x1B09, 35442 }, - { 0x1B0A, 31330 }, - { 0x1B0B, 35350 }, - { 0x1B0C, 31238 }, - { 0x1B0D, 35455 }, - { 0x1B0E, 31350 }, - { 0x1B0F, 35342 }, - { 0x1B10, 31230 }, - { 0x1B11, 35377 }, - { 0x1B12, 31265 }, - { 0x1B13, 35479 }, - { 0x1B14, 31387 }, - { 0x1B15, 35466 }, - { 0x1B16, 31361 }, - { 0x1B17, 35522 }, - { 0x1B18, 31444 }, - { 0x1B19, 35516 }, - { 0x1B1A, 31438 }, - { 0x1B1B, 35528 }, - { 0x1B1C, 31450 }, - { 0x1B1D, 35496 }, - { 0x1B1E, 31411 }, - { 0x1B1F, 35503 }, - { 0x1B20, 31418 }, - { 0x1B21, 35544 }, - { 0x1B22, 31466 }, - { 0x1B23, 35551 }, - { 0x1B24, 31518 }, - { 0x1B25, 35561 }, - { 0x1B26, 31528 }, - { 0x1B27, 35705 }, - { 0x1B28, 31707 }, - { 0x1B29, 35647 }, - { 0x1B2A, 31629 }, - { 0x1B2B, 35660 }, - { 0x1B2C, 31648 }, - { 0x1B2D, 29636 }, - { 0x1B2E, 31070 }, - { 0x1B2F, 31431 }, - { 0x1B30, 31561 }, - { 0x1B31, 28922 }, - { 0x1B32, 32145 }, - { 0x1B33, 32161 }, - { 0x1B34, 32153 }, - { 0x1B35, 35929 }, - { 0x1B36, 32267 }, - { 0x1B37, 33400 }, - { 0x1B38, 28819 }, - { 0x1B39, 33407 }, - { 0x1B3A, 28826 }, - { 0x1B3B, 33579 }, - { 0x1B3C, 29013 }, - { 0x1B3D, 33587 }, - { 0x1B3E, 29021 }, - { 0x1B3F, 33570 }, - { 0x1B40, 29004 }, - { 0x1B41, 33595 }, - { 0x1B42, 29029 }, - { 0x1B43, 33561 }, - { 0x1B44, 28995 }, - { 0x1B45, 33467 }, - { 0x1B46, 28886 }, - { 0x1B47, 33475 }, - { 0x1B48, 28894 }, - { 0x1B49, 33458 }, - { 0x1B4A, 28877 }, - { 0x1B4B, 33483 }, - { 0x1B4C, 28902 }, - { 0x1B4D, 33449 }, - { 0x1B4E, 28868 }, - { 0x1B4F, 33819 }, - { 0x1B50, 29309 }, - { 0x1B51, 33826 }, - { 0x1B52, 29316 }, - { 0x1B53, 33857 }, - { 0x1B54, 29353 }, - { 0x1B55, 33962 }, - { 0x1B56, 29471 }, - { 0x1B57, 33970 }, - { 0x1B58, 29479 }, - { 0x1B59, 33953 }, - { 0x1B5A, 29462 }, - { 0x1B5B, 33978 }, - { 0x1B5C, 29487 }, - { 0x1B5D, 33944 }, - { 0x1B5E, 29453 }, - { 0x1B5F, 34167 }, - { 0x1B60, 29704 }, - { 0x1B61, 34160 }, - { 0x1B62, 29697 }, - { 0x1B63, 34616 }, - { 0x1B64, 30309 }, - { 0x1B65, 34623 }, - { 0x1B66, 30324 }, - { 0x1B67, 34862 }, - { 0x1B68, 30563 }, - { 0x1B69, 34870 }, - { 0x1B6A, 30571 }, - { 0x1B6B, 34853 }, - { 0x1B6C, 30554 }, - { 0x1B6D, 34878 }, - { 0x1B6E, 30579 }, - { 0x1B6F, 34844 }, - { 0x1B70, 30545 }, - { 0x1B71, 34654 }, - { 0x1B72, 30355 }, - { 0x1B73, 34662 }, - { 0x1B74, 30363 }, - { 0x1B75, 34645 }, - { 0x1B76, 30346 }, - { 0x1B77, 34670 }, - { 0x1B78, 30371 }, - { 0x1B79, 34636 }, - { 0x1B7A, 30337 }, - { 0x1B7B, 35243 }, - { 0x1B7C, 31116 }, - { 0x1B7D, 35250 }, - { 0x1B7E, 31123 }, - { 0x1B7F, 35281 }, - { 0x1B80, 31154 }, - { 0x1B81, 35289 }, - { 0x1B82, 31162 }, - { 0x1B83, 35272 }, - { 0x1B84, 31145 }, - { 0x1B85, 35297 }, - { 0x1B86, 31170 }, - { 0x1B87, 35263 }, - { 0x1B88, 31136 }, - { 0x1B89, 35600 }, - { 0x1B8A, 31574 }, - { 0x1B8B, 35568 }, - { 0x1B8C, 31535 }, - { 0x1B8D, 35581 }, - { 0x1B8E, 31548 }, - { 0x1B8F, 35606 }, - { 0x1B90, 31588 }, - { 0x1B91, 36180 }, - { 0x1B92, 32955 }, - { 0x1B93, 36175 }, - { 0x1B94, 32950 }, - { 0x1B95, 35588 }, - { 0x1B96, 31555 }, - { 0x1B97, 24220 }, - { 0x1B98, 24152 }, - { 0x1B99, 24244 }, - { 0x1B9A, 24176 }, - { 0x1B9B, 24226 }, - { 0x1B9C, 24158 }, - { 0x1B9D, 24262 }, - { 0x1B9E, 24194 }, - { 0x1B9F, 25509 }, - { 0x1BA0, 25441 }, - { 0x1BA1, 25533 }, - { 0x1BA2, 25465 }, - { 0x1BA3, 25515 }, - { 0x1BA4, 25447 }, - { 0x1BA5, 25551 }, - { 0x1BA6, 25483 }, - { 0x1BA7, 24621 }, - { 0x1BA8, 24599 }, - { 0x1BA9, 24635 }, - { 0x1BAA, 24613 }, - { 0x1BAB, 24627 }, - { 0x1BAC, 24605 }, - { 0x1BAD, 25832 }, - { 0x1BAE, 25810 }, - { 0x1BAF, 25846 }, - { 0x1BB0, 25824 }, - { 0x1BB1, 25838 }, - { 0x1BB2, 25816 }, - { 0x1BB3, 23840 }, - { 0x1BB4, 23772 }, - { 0x1BB5, 23864 }, - { 0x1BB6, 23796 }, - { 0x1BB7, 23846 }, - { 0x1BB8, 23778 }, - { 0x1BB9, 23882 }, - { 0x1BBA, 23814 }, - { 0x1BBB, 25199 }, - { 0x1BBC, 25131 }, - { 0x1BBD, 25223 }, - { 0x1BBE, 25155 }, - { 0x1BBF, 25205 }, - { 0x1BC0, 25137 }, - { 0x1BC1, 25241 }, - { 0x1BC2, 25173 }, - { 0x1BC3, 24032 }, - { 0x1BC4, 24002 }, - { 0x1BC5, 24046 }, - { 0x1BC6, 24016 }, - { 0x1BC7, 24038 }, - { 0x1BC8, 24008 }, - { 0x1BC9, 24054 }, - { 0x1BCA, 24024 }, - { 0x1BCB, 25367 }, - { 0x1BCC, 25337 }, - { 0x1BCD, 25381 }, - { 0x1BCE, 25351 }, - { 0x1BCF, 25373 }, - { 0x1BD0, 25343 }, - { 0x1BD1, 25389 }, - { 0x1BD2, 25359 }, - { 0x1BD3, 24687 }, - { 0x1BD4, 24665 }, - { 0x1BD5, 24701 }, - { 0x1BD6, 24679 }, - { 0x1BD7, 24693 }, - { 0x1BD8, 24671 }, - { 0x1BD9, 25898 }, - { 0x1BDA, 25876 }, - { 0x1BDB, 25912 }, - { 0x1BDC, 25890 }, - { 0x1BDD, 25904 }, - { 0x1BDE, 25882 }, - { 0x1BDF, 24761 }, - { 0x1BE0, 24731 }, - { 0x1BE1, 24775 }, - { 0x1BE2, 24745 }, - { 0x1BE3, 24767 }, - { 0x1BE4, 24737 }, - { 0x1BE5, 24783 }, - { 0x1BE6, 24753 }, - { 0x1BE7, 25942 }, - { 0x1BE8, 25956 }, - { 0x1BE9, 25948 }, - { 0x1BEA, 25964 }, - { 0x1BEB, 24451 }, - { 0x1BEC, 24383 }, - { 0x1BED, 24475 }, - { 0x1BEE, 24407 }, - { 0x1BEF, 24457 }, - { 0x1BF0, 24389 }, - { 0x1BF1, 24493 }, - { 0x1BF2, 24425 }, - { 0x1BF3, 25701 }, - { 0x1BF4, 25633 }, - { 0x1BF5, 25725 }, - { 0x1BF6, 25657 }, - { 0x1BF7, 25707 }, - { 0x1BF8, 25639 }, - { 0x1BF9, 25743 }, - { 0x1BFA, 25675 }, - { 0x1BFB, 24294 }, - { 0x1BFC, 24138 }, - { 0x1BFD, 24649 }, - { 0x1BFE, 24593 }, - { 0x1BFF, 23914 }, - { 0x1C00, 23758 }, - { 0x1C01, 24068 }, - { 0x1C02, 23996 }, - { 0x1C03, 24715 }, - { 0x1C04, 24659 }, - { 0x1C05, 24797 }, - { 0x1C06, 24725 }, - { 0x1C07, 24525 }, - { 0x1C08, 24369 }, - { 0x1C09, 24280 }, - { 0x1C0A, 24212 }, - { 0x1C0B, 24252 }, - { 0x1C0C, 24184 }, - { 0x1C0D, 24234 }, - { 0x1C0E, 24166 }, - { 0x1C0F, 24270 }, - { 0x1C10, 24202 }, - { 0x1C11, 25569 }, - { 0x1C12, 25501 }, - { 0x1C13, 25541 }, - { 0x1C14, 25473 }, - { 0x1C15, 25523 }, - { 0x1C16, 25455 }, - { 0x1C17, 25559 }, - { 0x1C18, 25491 }, - { 0x1C19, 23900 }, - { 0x1C1A, 23832 }, - { 0x1C1B, 23872 }, - { 0x1C1C, 23804 }, - { 0x1C1D, 23854 }, - { 0x1C1E, 23786 }, - { 0x1C1F, 23890 }, - { 0x1C20, 23822 }, - { 0x1C21, 25259 }, - { 0x1C22, 25191 }, - { 0x1C23, 25231 }, - { 0x1C24, 25163 }, - { 0x1C25, 25213 }, - { 0x1C26, 25145 }, - { 0x1C27, 25249 }, - { 0x1C28, 25181 }, - { 0x1C29, 24511 }, - { 0x1C2A, 24443 }, - { 0x1C2B, 24483 }, - { 0x1C2C, 24415 }, - { 0x1C2D, 24465 }, - { 0x1C2E, 24397 }, - { 0x1C2F, 24501 }, - { 0x1C30, 24433 }, - { 0x1C31, 25761 }, - { 0x1C32, 25693 }, - { 0x1C33, 25733 }, - { 0x1C34, 25665 }, - { 0x1C35, 25715 }, - { 0x1C36, 25647 }, - { 0x1C37, 25751 }, - { 0x1C38, 25683 }, - { 0x1C39, 24314 }, - { 0x1C3A, 24308 }, - { 0x1C3B, 24300 }, - { 0x1C3C, 24334 }, - { 0x1C3D, 24144 }, - { 0x1C3E, 24320 }, - { 0x1C3F, 24326 }, - { 0x1C40, 25595 }, - { 0x1C41, 25589 }, - { 0x1C42, 25583 }, - { 0x1C43, 25435 }, - { 0x1C44, 25601 }, - { 0x1C45, 26028 }, - { 0x1C46, 26533 }, - { 0x1C47, 23714 }, - { 0x1C48, 26381 }, - { 0x1C49, 26085 }, - { 0x1C4A, 23920 }, - { 0x1C4B, 23942 }, - { 0x1C4C, 23764 }, - { 0x1C4D, 23928 }, - { 0x1C4E, 23934 }, - { 0x1C4F, 25860 }, - { 0x1C50, 25804 }, - { 0x1C51, 25273 }, - { 0x1C52, 25125 }, - { 0x1C53, 25279 }, - { 0x1C54, 23720 }, - { 0x1C55, 23716 }, - { 0x1C56, 23724 }, - { 0x1C57, 24080 }, - { 0x1C58, 24074 }, - { 0x1C59, 24108 }, - { 0x1C5A, 24092 }, - { 0x1C5B, 24124 }, - { 0x1C5C, 24116 }, - { 0x1C5D, 25415 }, - { 0x1C5E, 25409 }, - { 0x1C5F, 25403 }, - { 0x1C60, 25331 }, - { 0x1C61, 23696 }, - { 0x1C62, 23692 }, - { 0x1C63, 23700 }, - { 0x1C64, 24809 }, - { 0x1C65, 24803 }, - { 0x1C66, 24837 }, - { 0x1C67, 24821 }, - { 0x1C68, 23966 }, - { 0x1C69, 23960 }, - { 0x1C6A, 24853 }, - { 0x1C6B, 24845 }, - { 0x1C6C, 25990 }, - { 0x1C6D, 25984 }, - { 0x1C6E, 25978 }, - { 0x1C6F, 25936 }, - { 0x1C70, 25297 }, - { 0x1C71, 26081 }, - { 0x1C72, 26077 }, - { 0x1C73, 24890 }, - { 0x1C74, 24531 }, - { 0x1C75, 24553 }, - { 0x1C76, 24375 }, - { 0x1C77, 24539 }, - { 0x1C78, 24545 }, - { 0x1C79, 25926 }, - { 0x1C7A, 25870 }, - { 0x1C7B, 25775 }, - { 0x1C7C, 25627 }, - { 0x1C7D, 25781 }, - { 0x1C7E, 23682 }, - { 0x1C7F, 23690 }, - { 0x1C80, 86 }, - { 0x1C81, 80 }, - { 0x1C82, 88 }, - { 0x1C83, 82 }, - { 0x1C84, 143502 }, - { 0x1C85, 133210 }, - { 0x1C86, 133088 }, - { 0x1C87, 54934 }, - { 0x1C88, 134502 }, - { 0x1C89, 17339 }, - { 0x1C8A, 14181 }, - { 0x1C8B, 17555 }, - { 0x1C8C, 17565 }, - { 0x1C8D, 17558 }, - { 0x1C8E, 143971 }, - { 0x1C8F, 144527 }, - { 0x1C90, 57548 }, - { 0x1C91, 143212 }, - { 0x1C92, 54932 }, - { 0x1C93, 84 }, - { 0x1C94, 78 }, - { 0x1C95, 131610 }, - { 0x1C96, 54830 }, - { 0x1C97, 54675 }, - { 0x1C98, 14945 }, - { 0x1C99, 40574 }, - { 0x1C9A, 64915 }, - { 0x1C9B, 64929 }, - { 0x1C9C, 14929 }, - { 0x1C9D, 40558 }, - { 0x1C9E, 54700 }, - { 0x1C9F, 54845 }, - { 0x1CA0, 54270 }, - { 0x1CA1, 54717 }, - { 0x1CA2, 52973 }, - { 0x1CA3, 133103 }, - { 0x1CA4, 10172 }, - { 0x1CA5, 12223 }, - { 0x1CA6, 131697 }, - { 0x1CA7, 133214 }, - { 0x1CA8, 15086 }, - { 0x1CA9, 127634 }, - { 0x1CAA, 143977 }, - { 0x1CAB, 144533 }, - { 0x1CAC, 10523 }, - { 0x1CAD, 143975 }, - { 0x1CAE, 144531 }, - { 0x1CAF, 63852 }, - { 0x1CB0, 10509 }, - { 0x1CB1, 10503 }, - { 0x1CB2, 40281 }, - { 0x1CB3, 54704 }, - { 0x1CB4, 68864 }, - { 0x1CB5, 110531 }, - { 0x1CB6, 110541 }, - { 0x1CB7, 110571 }, - { 0x1CB8, 22365 }, - { 0x1CB9, 64919 }, - { 0x1CBA, 64924 }, - { 0x1CBB, 127695 }, - { 0x1CBC, 54836 }, - { 0x1CBD, 133863 }, - { 0x1CBE, 109848 }, - { 0x1CBF, 111276 }, - { 0x1CC0, 116169 }, - { 0x1CC1, 22366 }, - { 0x1CC2, 83392 }, - { 0x1CC3, 57552 }, - { 0x1CC4, 103464 }, - { 0x1CC5, 14971 }, - { 0x1CC6, 40600 }, - { 0x1CC7, 54803 }, - { 0x1CC8, 110368 }, - { 0x1CC9, 133205 }, - { 0x1CCA, 111084 }, - { 0x1CCB, 110574 }, - { 0x1CCC, 21575 }, - { 0x1CCD, 21599 }, - { 0x1CCE, 6956 }, - { 0x1CCF, 110588 }, - { 0x1CD0, 22477 }, - { 0x1CD1, 12266 }, - { 0x1CD2, 129776 }, - { 0x1CD3, 41670 }, - { 0x1CD4, 105544 }, - { 0x1CD5, 54952 }, - { 0x1CD6, 42328 }, - { 0x1CD7, 127648 }, - { 0x1CD8, 14115 }, - { 0x1CD9, 14095 }, - { 0x1CDA, 12226 }, - { 0x1CDB, 14112 }, - { 0x1CDC, 54654 }, - { 0x1CDD, 111168 }, - { 0x1CDE, 111328 }, - { 0x1CDF, 63455 }, - { 0x1CE0, 17548 }, - { 0x1CE1, 103476 }, - { 0x1CE2, 125361 }, - { 0x1CE3, 125363 }, - { 0x1CE4, 125359 }, - { 0x1CE5, 143973 }, - { 0x1CE6, 144529 }, - { 0x1CE7, 23317 }, - { 0x1CE8, 10520 }, - { 0x1CE9, 73882 }, - { 0x1CEA, 82999 }, - { 0x1CEB, 73878 }, - { 0x1CEC, 82995 }, - { 0x1CED, 108879 }, - { 0x1CEE, 77646 }, - { 0x1CEF, 137683 }, - { 0x1CF0, 137687 }, - { 0x1CF1, 137673 }, - { 0x1CF2, 137671 }, - { 0x1CF3, 137667 }, - { 0x1CF4, 137702 }, - { 0x1CF5, 137685 }, - { 0x1CF6, 137678 }, - { 0x1CF7, 137680 }, - { 0x1CF8, 137697 }, - { 0x1CF9, 137706 }, - { 0x1CFA, 137675 }, - { 0x1CFB, 137699 }, - { 0x1CFC, 137692 }, - { 0x1CFD, 128243 }, - { 0x1CFE, 128225 }, - { 0x1CFF, 128229 }, - { 0x1D00, 128254 }, - { 0x1D01, 128233 }, - { 0x1D02, 128231 }, - { 0x1D03, 128227 }, - { 0x1D04, 128252 }, - { 0x1D05, 128245 }, - { 0x1D06, 128238 }, - { 0x1D07, 128240 }, - { 0x1D08, 128247 }, - { 0x1D09, 128256 }, - { 0x1D0A, 128235 }, - { 0x1D0B, 128249 }, - { 0x1D0C, 36203 }, - { 0x1D0D, 36208 }, - { 0x1D0E, 36248 }, - { 0x1D0F, 36283 }, - { 0x1D10, 36288 }, - { 0x1D11, 36213 }, - { 0x1D12, 36228 }, - { 0x1D13, 36233 }, - { 0x1D14, 36238 }, - { 0x1D15, 36243 }, - { 0x1D16, 36253 }, - { 0x1D17, 36263 }, - { 0x1D18, 36268 }, - { 0x1D19, 143683 }, - { 0x1D1A, 22495 }, - { 0x1D1B, 87645 }, - { 0x1D1C, 54976 }, - { 0x1D1D, 15113 }, - { 0x1D1E, 15921 }, - { 0x1D1F, 38532 }, - { 0x1D20, 64562 }, - { 0x1D21, 41204 }, - { 0x1D22, 13186 }, - { 0x1D23, 7782 }, - { 0x1D24, 13881 }, - { 0x1D25, 13919 }, - { 0x1D26, 6617 }, - { 0x1D27, 68917 }, - { 0x1D28, 73012 }, - { 0x1D29, 54984 }, - { 0x1D2A, 16596 }, - { 0x1D2B, 73541 }, - { 0x1D2C, 69884 }, - { 0x1D2D, 73871 }, - { 0x1D2E, 13523 }, - { 0x1D2F, 36624 }, - { 0x1D30, 110683 }, - { 0x1D31, 42315 }, - { 0x1D32, 57554 }, - { 0x1D33, 82597 }, - { 0x1D34, 63857 }, - { 0x1D35, 37273 }, - { 0x1D36, 40860 }, - { 0x1D37, 14503 }, - { 0x1D38, 70398 }, - { 0x1D39, 10573 }, - { 0x1D3A, 116376 }, - { 0x1D3B, 116849 }, - { 0x1D3C, 116411 }, - { 0x1D3D, 116893 }, - { 0x1D3E, 117851 }, - { 0x1D3F, 117513 }, - { 0x1D40, 116358 }, - { 0x1D41, 116841 }, - { 0x1D42, 116434 }, - { 0x1D43, 117509 }, - { 0x1D44, 117847 }, - { 0x1D45, 116901 }, - { 0x1D46, 116327 }, - { 0x1D47, 117525 }, - { 0x1D48, 117538 }, - { 0x1D49, 117546 }, - { 0x1D4A, 117528 }, - { 0x1D4B, 116366 }, - { 0x1D4C, 117535 }, - { 0x1D4D, 117532 }, - { 0x1D4E, 117541 }, - { 0x1D4F, 117184 }, - { 0x1D50, 117027 }, - { 0x1D51, 117125 }, - { 0x1D52, 117108 }, - { 0x1D53, 116437 }, - { 0x1D54, 117549 }, - { 0x1D55, 116398 }, - { 0x1D56, 117811 }, - { 0x1D57, 117553 }, - { 0x1D58, 116362 }, - { 0x1D59, 116845 }, - { 0x1D5A, 117195 }, - { 0x1D5B, 69871 }, - { 0x1D5C, 112600 }, - { 0x1D5D, 143616 }, - { 0x1D5E, 54293 }, - { 0x1D5F, 53139 }, - { 0x1D60, 13519 }, - { 0x1D61, 13506 }, - { 0x1D62, 23303 }, - { 0x1D63, 78761 }, - { 0x1D64, 54295 }, - { 0x1D65, 64856 }, - { 0x1D66, 64874 }, - { 0x1D67, 138041 }, - { 0x1D68, 143619 }, - { 0x1D69, 64570 }, - { 0x1D6A, 64572 }, - { 0x1D6B, 64877 }, - { 0x1D6C, 138044 }, - { 0x1D6D, 64880 }, - { 0x1D6E, 64859 }, - { 0x1D6F, 5 }, - { 0x1D70, 143622 }, - { 0x1D71, 63915 }, - { 0x1D72, 41493 }, - { 0x1D73, 64886 }, - { 0x1D74, 143625 }, - { 0x1D75, 143628 }, - { 0x1D76, 64889 }, - { 0x1D77, 138047 }, - { 0x1D78, 143631 }, - { 0x1D79, 143214 }, - { 0x1D7A, 110509 }, - { 0x1D7B, 78771 }, - { 0x1D7C, 128521 }, - { 0x1D7D, 42437 }, - { 0x1D7E, 111277 }, - { 0x1D7F, 143634 }, - { 0x1D80, 40231 }, - { 0x1D81, 8101 }, - { 0x1D82, 105535 }, - { 0x1D83, 138050 }, - { 0x1D84, 68944 }, - { 0x1D85, 58440 }, - { 0x1D86, 83011 }, - { 0x1D87, 64865 }, - { 0x1D88, 138038 }, - { 0x1D89, 124379 }, - { 0x1D8A, 64853 }, - { 0x1D8B, 64868 }, - { 0x1D8C, 64871 }, - { 0x1D8D, 68978 }, - { 0x1D8E, 64883 }, - { 0x1D8F, 64862 }, - { 0x1D90, 13411 }, - { 0x1D91, 4632 }, - { 0x1D92, 23613 }, - { 0x1D93, 22545 }, - { 0x1D94, 133846 }, - { 0x1D95, 78703 }, - { 0x1D96, 124418 }, - { 0x1D97, 143590 }, - { 0x1D98, 143593 }, - { 0x1D99, 143640 }, - { 0x1D9A, 143637 }, - { 0x1D9B, 143587 }, - { 0x1D9C, 68985 }, - { 0x1D9D, 68989 }, - { 0x1D9E, 110590 }, - { 0x1D9F, 68993 }, - { 0x1DA0, 143612 }, - { 0x1DA1, 143596 }, - { 0x1DA2, 143600 }, - { 0x1DA3, 143604 }, - { 0x1DA4, 143608 }, - { 0x1DA5, 110304 }, - { 0x1DA6, 68981 }, - { 0x1DA7, 10507 }, - { 0x1DA8, 137985 }, - { 0x1DA9, 68959 }, - { 0x1DAA, 66033 }, - { 0x1DAB, 69049 }, - { 0x1DAC, 69025 }, - { 0x1DAD, 69033 }, - { 0x1DAE, 69037 }, - { 0x1DAF, 69057 }, - { 0x1DB0, 69021 }, - { 0x1DB1, 69053 }, - { 0x1DB2, 69081 }, - { 0x1DB3, 69069 }, - { 0x1DB4, 69029 }, - { 0x1DB5, 69061 }, - { 0x1DB6, 69041 }, - { 0x1DB7, 69085 }, - { 0x1DB8, 69065 }, - { 0x1DB9, 69077 }, - { 0x1DBA, 103466 }, - { 0x1DBB, 40740 }, - { 0x1DBC, 40777 }, - { 0x1DBD, 40815 }, - { 0x1DBE, 40791 }, - { 0x1DBF, 40780 }, - { 0x1DC0, 40762 }, - { 0x1DC1, 40812 }, - { 0x1DC2, 40797 }, - { 0x1DC3, 40794 }, - { 0x1DC4, 40770 }, - { 0x1DC5, 40818 }, - { 0x1DC6, 40821 }, - { 0x1DC7, 40800 }, - { 0x1DC8, 40743 }, - { 0x1DC9, 40783 }, - { 0x1DCA, 40752 }, - { 0x1DCB, 41321 }, - { 0x1DCC, 41343 }, - { 0x1DCD, 41376 }, - { 0x1DCE, 41356 }, - { 0x1DCF, 41347 }, - { 0x1DD0, 41335 }, - { 0x1DD1, 41372 }, - { 0x1DD2, 41364 }, - { 0x1DD3, 41360 }, - { 0x1DD4, 41339 }, - { 0x1DD5, 41380 }, - { 0x1DD6, 41384 }, - { 0x1DD7, 41368 }, - { 0x1DD8, 41325 }, - { 0x1DD9, 41351 }, - { 0x1DDA, 41330 }, - { 0x1DDB, 40756 }, - { 0x1DDC, 40787 }, - { 0x1DDD, 40773 }, - { 0x1DDE, 40824 }, - { 0x1DDF, 32796 }, - { 0x1DE0, 40765 }, - { 0x1DE1, 40803 }, - { 0x1DE2, 40808 }, - { 0x1DE3, 40747 }, - { 0x1DE4, 69073 }, - { 0x1DE5, 68938 }, - { 0x1DE6, 68941 }, - { 0x1DE7, 125601 }, - { 0x1DE8, 82609 }, - { 0x1DE9, 132246 }, - { 0x1DEA, 124081 }, - { 0x1DEB, 14788 }, - { 0x1DEC, 526 }, - { 0x1DED, 38626 }, - { 0x1DEE, 38547 }, - { 0x1DEF, 41496 }, - { 0x1DF0, 41567 }, - { 0x1DF1, 125728 }, - { 0x1DF2, 132374 }, - { 0x1DF3, 125598 }, - { 0x1DF4, 132243 }, - { 0x1DF5, 125592 }, - { 0x1DF6, 82605 }, - { 0x1DF7, 132237 }, - { 0x1DF8, 124077 }, - { 0x1DF9, 125674 }, - { 0x1DFA, 132310 }, - { 0x1DFB, 125630 }, - { 0x1DFC, 82622 }, - { 0x1DFD, 132266 }, - { 0x1DFE, 124094 }, - { 0x1DFF, 529 }, - { 0x1E00, 125661 }, - { 0x1E01, 132297 }, - { 0x1E02, 125665 }, - { 0x1E03, 132301 }, - { 0x1E04, 14784 }, - { 0x1E05, 14798 }, - { 0x1E06, 124208 }, - { 0x1E07, 82626 }, - { 0x1E08, 82631 }, - { 0x1E09, 124098 }, - { 0x1E0A, 124103 }, - { 0x1E0B, 132352 }, - { 0x1E0C, 124126 }, - { 0x1E0D, 143510 }, - { 0x1E0E, 116187 }, - { 0x1E0F, 38629 }, - { 0x1E10, 125607 }, - { 0x1E11, 143514 }, - { 0x1E12, 116191 }, - { 0x1E13, 125936 }, - { 0x1E14, 125941 }, - { 0x1E15, 82825 }, - { 0x1E16, 82820 }, - { 0x1E17, 132592 }, - { 0x1E18, 132597 }, - { 0x1E19, 124266 }, - { 0x1E1A, 124261 }, - { 0x1E1B, 132282 }, - { 0x1E1C, 82680 }, - { 0x1E1D, 125646 }, - { 0x1E1E, 125842 }, - { 0x1E1F, 82762 }, - { 0x1E20, 132498 }, - { 0x1E21, 124200 }, - { 0x1E22, 125854 }, - { 0x1E23, 132510 }, - { 0x1E24, 125828 }, - { 0x1E25, 14827 }, - { 0x1E26, 132484 }, - { 0x1E27, 125820 }, - { 0x1E28, 82759 }, - { 0x1E29, 132476 }, - { 0x1E2A, 124197 }, - { 0x1E2B, 14823 }, - { 0x1E2C, 542 }, - { 0x1E2D, 38672 }, - { 0x1E2E, 38589 }, - { 0x1E2F, 41536 }, - { 0x1E30, 41595 }, - { 0x1E31, 125851 }, - { 0x1E32, 132507 }, - { 0x1E33, 125952 }, - { 0x1E34, 132608 }, - { 0x1E35, 82654 }, - { 0x1E36, 124131 }, - { 0x1E37, 125813 }, - { 0x1E38, 82756 }, - { 0x1E39, 132469 }, - { 0x1E3A, 124194 }, - { 0x1E3B, 125603 }, - { 0x1E3C, 132248 }, - { 0x1E3D, 125804 }, - { 0x1E3E, 82701 }, - { 0x1E3F, 132450 }, - { 0x1E40, 124183 }, - { 0x1E41, 82725 }, - { 0x1E42, 82704 }, - { 0x1E43, 82717 }, - { 0x1E44, 82709 }, - { 0x1E45, 82744 }, - { 0x1E46, 82748 }, - { 0x1E47, 132453 }, - { 0x1E48, 38635 }, - { 0x1E49, 41499 }, - { 0x1E4A, 538 }, - { 0x1E4B, 40436 }, - { 0x1E4C, 124157 }, - { 0x1E4D, 42367 }, - { 0x1E4E, 125737 }, - { 0x1E4F, 132383 }, - { 0x1E50, 14803 }, - { 0x1E51, 125716 }, - { 0x1E52, 132362 }, - { 0x1E53, 14791 }, - { 0x1E54, 126032 }, - { 0x1E55, 132688 }, - { 0x1E56, 14844 }, - { 0x1E57, 6587 }, - { 0x1E58, 129779 }, - { 0x1E59, 78102 }, - { 0x1E5A, 42321 }, - { 0x1E5B, 42317 }, - { 0x1E5C, 23229 }, - { 0x1E5D, 125356 }, - { 0x1E5E, 38531 }, - { 0x1E5F, 73135 }, - { 0x1E60, 8002 }, - { 0x1E61, 41402 }, - { 0x1E62, 87518 }, - { 0x1E63, 13846 }, - { 0x1E64, 41431 }, - { 0x1E65, 6572 }, - { 0x1E66, 38523 }, - { 0x1E67, 38525 }, - { 0x1E68, 38527 }, - { 0x1E69, 38420 }, - { 0x1E6A, 143979 }, - { 0x1E6B, 6550 }, - { 0x1E6C, 89737 }, - { 0x1E6D, 10546 }, - { 0x1E6E, 83390 }, - { 0x1E6F, 16688 }, - { 0x1E70, 52974 }, - { 0x1E71, 65312 }, - { 0x1E72, 13812 }, - { 0x1E73, 54974 }, - { 0x1E74, 143450 }, - { 0x1E75, 105480 }, - { 0x1E76, 40402 }, - { 0x1E77, 17951 }, - { 0x1E78, 106546 }, - { 0x1E79, 128211 }, - { 0x1E7A, 73000 }, - { 0x1E7B, 13836 }, - { 0x1E7C, 109850 }, - { 0x1E7D, 8047 }, - { 0x1E7E, 74277 }, - { 0x1E7F, 74245 }, - { 0x1E80, 138536 }, - { 0x1E81, 42443 }, - { 0x1E82, 105486 }, - { 0x1E83, 54799 }, - { 0x1E84, 68880 }, - { 0x1E85, 72247 }, - { 0x1E86, 81285 }, - { 0x1E87, 69015 }, - { 0x1E88, 116212 }, - { 0x1E89, 116209 }, - { 0x1E8A, 143526 }, - { 0x1E8B, 128795 }, - { 0x1E8C, 70061 }, - { 0x1E8D, 40289 }, - { 0x1E8E, 132210 }, - { 0x1E8F, 6554 }, - { 0x1E90, 54921 }, - { 0x1E91, 124831 }, - { 0x1E92, 131609 }, - { 0x1E93, 42396 }, - { 0x1E94, 110536 }, - { 0x1E95, 105538 }, - { 0x1E96, 16817 }, - { 0x1E97, 69713 }, - { 0x1E98, 8016 }, - { 0x1E99, 38446 }, - { 0x1E9A, 144804 }, - { 0x1E9B, 8060 }, - { 0x1E9C, 143574 }, - { 0x1E9D, 143563 }, - { 0x1E9E, 77463 }, - { 0x1E9F, 44199 }, - { 0x1EA0, 8018 }, - { 0x1EA1, 44194 }, - { 0x1EA2, 68866 }, - { 0x1EA3, 4253 }, - { 0x1EA4, 130320 }, - { 0x1EA5, 143688 }, - { 0x1EA6, 130316 }, - { 0x1EA7, 129670 }, - { 0x1EA8, 143685 }, - { 0x1EA9, 143577 }, - { 0x1EAA, 27050 }, - { 0x1EAB, 22497 }, - { 0x1EAC, 54919 }, - { 0x1EAD, 16675 }, - { 0x1EAE, 16683 }, - { 0x1EAF, 133151 }, - { 0x1EB0, 124381 }, - { 0x1EB1, 133201 }, - { 0x1EB2, 16995 }, - { 0x1EB3, 22548 }, - { 0x1EB4, 23271 }, - { 0x1EB5, 106544 }, - { 0x1EB6, 132215 }, - { 0x1EB7, 8013 }, - { 0x1EB8, 125343 }, - { 0x1EB9, 8050 }, - { 0x1EBA, 110694 }, - { 0x1EBB, 126130 }, - { 0x1EBC, 138392 }, - { 0x1EBD, 126194 }, - { 0x1EBE, 138456 }, - { 0x1EBF, 126184 }, - { 0x1EC0, 138446 }, - { 0x1EC1, 16191 }, - { 0x1EC2, 16193 }, - { 0x1EC3, 70396 }, - { 0x1EC4, 8055 }, - { 0x1EC5, 8053 }, - { 0x1EC6, 8058 }, - { 0x1EC7, 77435 }, - { 0x1EC8, 77449 }, - { 0x1EC9, 126164 }, - { 0x1ECA, 138429 }, - { 0x1ECB, 77440 }, - { 0x1ECC, 77458 }, - { 0x1ECD, 126171 }, - { 0x1ECE, 138426 }, - { 0x1ECF, 77445 }, - { 0x1ED0, 77454 }, - { 0x1ED1, 110247 }, - { 0x1ED2, 110697 }, - { 0x1ED3, 110248 }, - { 0x1ED4, 110698 }, - { 0x1ED5, 110252 }, - { 0x1ED6, 110702 }, - { 0x1ED7, 13865 }, - { 0x1ED8, 13873 }, - { 0x1ED9, 65616 }, - { 0x1EDA, 110745 }, - { 0x1EDB, 7994 }, - { 0x1EDC, 7998 }, - { 0x1EDD, 65618 }, - { 0x1EDE, 110747 }, - { 0x1EDF, 77421 }, - { 0x1EE0, 77428 }, - { 0x1EE1, 65631 }, - { 0x1EE2, 110760 }, - { 0x1EE3, 108869 }, - { 0x1EE4, 108872 }, - { 0x1EE5, 108870 }, - { 0x1EE6, 65422 }, - { 0x1EE7, 65564 }, - { 0x1EE8, 65432 }, - { 0x1EE9, 65574 }, - { 0x1EEA, 65184 }, - { 0x1EEB, 65186 }, - { 0x1EEC, 71213 }, - { 0x1EED, 71538 }, - { 0x1EEE, 71540 }, - { 0x1EEF, 71895 }, - { 0x1EF0, 71199 }, - { 0x1EF1, 71215 }, - { 0x1EF2, 71886 }, - { 0x1EF3, 71556 }, - { 0x1EF4, 71205 }, - { 0x1EF5, 80934 }, - { 0x1EF6, 81074 }, - { 0x1EF7, 81089 }, - { 0x1EF8, 80892 }, - { 0x1EF9, 40397 }, - { 0x1EFA, 14729 }, - { 0x1EFB, 13890 }, - { 0x1EFC, 557 }, - { 0x1EFD, 114376 }, - { 0x1EFE, 63840 }, - { 0x1EFF, 17453 }, - { 0x1F00, 54971 }, - { 0x1F01, 68888 }, - { 0x1F02, 54824 }, - { 0x1F03, 13833 }, - { 0x1F04, 8008 }, - { 0x1F05, 13830 }, - { 0x1F06, 77414 }, - { 0x1F07, 110292 }, - { 0x1F08, 110742 }, - { 0x1F09, 63860 }, - { 0x1F0A, 87521 }, - { 0x1F0B, 63863 }, - { 0x1F0C, 87525 }, - { 0x1F0D, 109672 }, - { 0x1F0E, 27048 }, - { 0x1F0F, 108865 }, - { 0x1F10, 125335 }, - { 0x1F11, 133848 }, - { 0x1F12, 13188 }, - { 0x1F13, 16199 }, - { 0x1F14, 7993 }, - { 0x1F15, 40404 }, - { 0x1F16, 40669 }, - { 0x1F17, 38520 }, - { 0x1F18, 38517 }, - { 0x1F19, 38529 }, - { 0x1F1A, 38481 }, - { 0x1F1B, 72827 }, - { 0x1F1C, 6556 }, - { 0x1F1D, 16997 }, - { 0x1F1E, 89739 }, - { 0x1F1F, 52550 }, - { 0x1F20, 14936 }, - { 0x1F21, 40565 }, - { 0x1F22, 15059 }, - { 0x1F23, 40701 }, - { 0x1F24, 110538 }, - { 0x1F25, 22536 }, - { 0x1F26, 22539 }, - { 0x1F27, 54742 }, - { 0x1F28, 54808 }, - { 0x1F29, 54839 }, - { 0x1F2A, 54715 }, - { 0x1F2B, 127643 }, - { 0x1F2C, 23291 }, - { 0x1F2D, 126200 }, - { 0x1F2E, 138462 }, - { 0x1F2F, 17464 }, - { 0x1F30, 17467 }, - { 0x1F31, 126247 }, - { 0x1F32, 138509 }, - { 0x1F33, 23283 }, - { 0x1F34, 23287 }, - { 0x1F35, 23275 }, - { 0x1F36, 23279 }, - { 0x1F37, 13868 }, - { 0x1F38, 13876 }, - { 0x1F39, 8033 }, - { 0x1F3A, 8040 }, - { 0x1F3B, 65425 }, - { 0x1F3C, 65567 }, - { 0x1F3D, 126189 }, - { 0x1F3E, 138451 }, - { 0x1F3F, 110256 }, - { 0x1F40, 110706 }, - { 0x1F41, 8022 }, - { 0x1F42, 13851 }, - { 0x1F43, 8026 }, - { 0x1F44, 13857 }, - { 0x1F45, 111415 }, - { 0x1F46, 75233 }, - { 0x1F47, 568 }, - { 0x1F48, 13897 }, - { 0x1F49, 73148 }, - { 0x1F4A, 73162 }, - { 0x1F4B, 41410 }, - { 0x1F4C, 73137 }, - { 0x1F4D, 73154 }, - { 0x1F4E, 41405 }, - { 0x1F4F, 73158 }, - { 0x1F50, 73142 }, - { 0x1F51, 87532 }, - { 0x1F52, 87540 }, - { 0x1F53, 41439 }, - { 0x1F54, 87537 }, - { 0x1F55, 41435 }, - { 0x1F56, 17 }, - { 0x1F57, 89731 }, - { 0x1F58, 101767 }, - { 0x1F59, 27040 }, - { 0x1F5A, 572 }, - { 0x1F5B, 13901 }, - { 0x1F5C, 132209 }, - { 0x1F5D, 134501 }, - { 0x1F5E, 17530 }, - { 0x1F5F, 15009 }, - { 0x1F60, 40638 }, - { 0x1F61, 14779 }, - { 0x1F62, 40473 }, - { 0x1F63, 52504 }, - { 0x1F64, 52483 }, - { 0x1F65, 12184 }, - { 0x1F66, 12152 }, - { 0x1F67, 110511 }, - { 0x1F68, 65533 }, - { 0x1F69, 4623 }, - { 0x1F6A, 78764 }, - { 0x1F6B, 64900 }, - { 0x1F6C, 128532 }, - { 0x1F6D, 110245 }, - { 0x1F6E, 111426 }, - { 0x1F6F, 40250 }, - { 0x1F70, 68924 }, - { 0x1F71, 43297 }, - { 0x1F72, 125338 }, - { 0x1F73, 12165 }, - { 0x1F74, 12191 }, - { 0x1F75, 52490 }, - { 0x1F76, 52511 }, - { 0x1F77, 12109 }, - { 0x1F78, 52424 }, - { 0x1F79, 23346 }, - { 0x1F7A, 41478 }, - { 0x1F7B, 580 }, - { 0x1F7C, 63923 }, - { 0x1F7D, 23299 }, - { 0x1F7E, 12 }, - { 0x1F7F, 106403 }, - { 0x1F80, 143928 }, - { 0x1F81, 144851 }, - { 0x1F82, 23295 }, - { 0x1F83, 70390 }, - { 0x1F84, 138059 }, - { 0x1F85, 4256 }, - { 0x1F86, 110825 }, - { 0x1F87, 42435 }, - { 0x1F88, 124073 }, - { 0x1F89, 72245 }, - { 0x1F8A, 41268 }, - { 0x1F8B, 133153 }, - { 0x1F8C, 133154 }, - { 0x1F8D, 4569 }, - { 0x1F8E, 4573 }, - { 0x1F8F, 4403 }, - { 0x1F90, 4418 }, - { 0x1F91, 4423 }, - { 0x1F92, 4376 }, - { 0x1F93, 4413 }, - { 0x1F94, 4549 }, - { 0x1F95, 4539 }, - { 0x1F96, 4520 }, - { 0x1F97, 4593 }, - { 0x1F98, 4408 }, - { 0x1F99, 4439 }, - { 0x1F9A, 4456 }, - { 0x1F9B, 4467 }, - { 0x1F9C, 4603 }, - { 0x1F9D, 4613 }, - { 0x1F9E, 4450 }, - { 0x1F9F, 4461 }, - { 0x1FA0, 4559 }, - { 0x1FA1, 4334 }, - { 0x1FA2, 4491 }, - { 0x1FA3, 4387 }, - { 0x1FA4, 4398 }, - { 0x1FA5, 4328 }, - { 0x1FA6, 4588 }, - { 0x1FA7, 4428 }, - { 0x1FA8, 4275 }, - { 0x1FA9, 4293 }, - { 0x1FAA, 4365 }, - { 0x1FAB, 4371 }, - { 0x1FAC, 4269 }, - { 0x1FAD, 4598 }, - { 0x1FAE, 4444 }, - { 0x1FAF, 4515 }, - { 0x1FB0, 4496 }, - { 0x1FB1, 4578 }, - { 0x1FB2, 4308 }, - { 0x1FB3, 4554 }, - { 0x1FB4, 4263 }, - { 0x1FB5, 4510 }, - { 0x1FB6, 4544 }, - { 0x1FB7, 4393 }, - { 0x1FB8, 4281 }, - { 0x1FB9, 4303 }, - { 0x1FBA, 4472 }, - { 0x1FBB, 4313 }, - { 0x1FBC, 4564 }, - { 0x1FBD, 4322 }, - { 0x1FBE, 4355 }, - { 0x1FBF, 4530 }, - { 0x1FC0, 4618 }, - { 0x1FC1, 4486 }, - { 0x1FC2, 4298 }, - { 0x1FC3, 4535 }, - { 0x1FC4, 4525 }, - { 0x1FC5, 4608 }, - { 0x1FC6, 4381 }, - { 0x1FC7, 4434 }, - { 0x1FC8, 4340 }, - { 0x1FC9, 4287 }, - { 0x1FCA, 4346 }, - { 0x1FCB, 4318 }, - { 0x1FCC, 4501 }, - { 0x1FCD, 4481 }, - { 0x1FCE, 4583 }, - { 0x1FCF, 4350 }, - { 0x1FD0, 4505 }, - { 0x1FD1, 4477 }, - { 0x1FD2, 8010 }, - { 0x1FD3, 40408 }, - { 0x1FD4, 133082 }, - { 0x1FD5, 13451 }, - { 0x1FD6, 111387 }, - { 0x1FD7, 125357 }, - { 0x1FD8, 129782 }, - { 0x1FD9, 143584 }, - { 0x1FDA, 101776 }, - { 0x1FDB, 133145 }, - { 0x1FDC, 43747 }, - { 0x1FDD, 23269 }, - { 0x1FDE, 133120 }, - { 0x1FDF, 14200 }, - { 0x1FE0, 72216 }, - { 0x1FE1, 72043 }, - { 0x1FE2, 52965 }, - { 0x1FE3, 17458 }, - { 0x1FE4, 132097 }, - { 0x1FE5, 131704 }, - { 0x1FE6, 144943 }, - { 0x1FE7, 144946 }, - { 0x1FE8, 144951 }, - { 0x1FE9, 144949 }, - { 0x1FEA, 54339 }, - { 0x1FEB, 144936 }, - { 0x1FEC, 4361 }, - { 0x1FED, 72447 }, - { 0x1FEE, 110301 }, - { 0x1FEF, 16516 }, - { 0x1FF0, 40282 }, - { 0x1FF1, 22390 }, - { 0x1FF2, 15073 }, - { 0x1FF3, 15077 }, - { 0x1FF4, 15069 }, - { 0x1FF5, 40715 }, - { 0x1FF6, 40719 }, - { 0x1FF7, 40711 }, - { 0x1FF8, 14997 }, - { 0x1FF9, 15002 }, - { 0x1FFA, 14992 }, - { 0x1FFB, 40626 }, - { 0x1FFC, 40631 }, - { 0x1FFD, 40621 }, - { 0x1FFE, 14769 }, - { 0x1FFF, 14774 }, - { 0x2000, 14764 }, - { 0x2001, 22533 }, - { 0x2002, 40463 }, - { 0x2003, 40468 }, - { 0x2004, 40458 }, - { 0x2005, 105522 }, - { 0x2006, 131660 }, - { 0x2007, 42569 }, - { 0x2008, 42783 }, - { 0x2009, 128259 }, - { 0x200A, 128264 }, - { 0x200B, 12202 }, - { 0x200C, 52522 }, - { 0x200D, 52525 }, - { 0x200E, 78627 }, - { 0x200F, 15043 }, - { 0x2010, 40681 }, - { 0x2011, 131668 }, - { 0x2012, 131671 }, - { 0x2013, 131674 }, - { 0x2014, 131677 }, - { 0x2015, 124033 }, - { 0x2016, 124053 }, - { 0x2017, 124060 }, - { 0x2018, 124010 }, - { 0x2019, 123980 }, - { 0x201A, 124066 }, - { 0x201B, 124018 }, - { 0x201C, 123988 }, - { 0x201D, 124040 }, - { 0x201E, 124002 }, - { 0x201F, 123972 }, - { 0x2020, 123996 }, - { 0x2021, 123966 }, - { 0x2022, 124026 }, - { 0x2023, 124046 }, - { 0x2024, 65261 }, - { 0x2025, 64789 }, - { 0x2026, 23192 }, - { 0x2027, 111392 }, - { 0x2028, 107225 }, - { 0x2029, 107221 }, - { 0x202A, 107227 }, - { 0x202B, 107216 }, - { 0x202C, 107207 }, - { 0x202D, 107212 }, - { 0x202E, 107231 }, - { 0x202F, 107235 }, - { 0x2030, 107233 }, - { 0x2031, 23159 }, - { 0x2032, 14157 }, - { 0x2033, 12221 }, - { 0x2034, 52548 }, - { 0x2035, 12181 }, - { 0x2036, 52501 }, - { 0x2037, 12205 }, - { 0x2038, 52532 }, - { 0x2039, 43896 }, - { 0x203A, 70392 }, - { 0x203B, 143500 }, - { 0x203C, 103462 }, - { 0x203D, 72 }, - { 0x203E, 130318 }, - { 0x203F, 72444 }, - { 0x2040, 21673 }, - { 0x2041, 21645 }, - { 0x2042, 21613 }, - { 0x2043, 21629 }, - { 0x2044, 21677 }, - { 0x2045, 21649 }, - { 0x2046, 21693 }, - { 0x2047, 17909 }, - { 0x2048, 128224 }, - { 0x2049, 42418 }, - { 0x204A, 125339 }, - { 0x204B, 21453 }, - { 0x204C, 21462 }, - { 0x204D, 21435 }, - { 0x204E, 21444 }, - { 0x204F, 54810 }, - { 0x2050, 21476 }, - { 0x2051, 21343 }, - { 0x2052, 40279 }, - { 0x2053, 40276 }, - { 0x2054, 40270 }, - { 0x2055, 40273 }, - { 0x2056, 109657 }, - { 0x2057, 65913 }, - { 0x2058, 65949 }, - { 0x2059, 65944 }, - { 0x205A, 65872 }, - { 0x205B, 65882 }, - { 0x205C, 66012 }, - { 0x205D, 66049 }, - { 0x205E, 65893 }, - { 0x205F, 66030 }, - { 0x2060, 66037 }, - { 0x2061, 65909 }, - { 0x2062, 66026 }, - { 0x2063, 65905 }, - { 0x2064, 66018 }, - { 0x2065, 65937 }, - { 0x2066, 65933 }, - { 0x2067, 65896 }, - { 0x2068, 65985 }, - { 0x2069, 65990 }, - { 0x206A, 66000 }, - { 0x206B, 65995 }, - { 0x206C, 66022 }, - { 0x206D, 66052 }, - { 0x206E, 65887 }, - { 0x206F, 65954 }, - { 0x2070, 65877 }, - { 0x2071, 66041 }, - { 0x2072, 66005 }, - { 0x2073, 65901 }, - { 0x2074, 65925 }, - { 0x2075, 66008 }, - { 0x2076, 65921 }, - { 0x2077, 65941 }, - { 0x2078, 65957 }, - { 0x2079, 21705 }, - { 0x207A, 16529 }, - { 0x207B, 66015 }, - { 0x207C, 65960 }, - { 0x207D, 66044 }, - { 0x207E, 65971 }, - { 0x207F, 65978 }, - { 0x2080, 65965 }, - { 0x2081, 8079 }, - { 0x2082, 8081 }, - { 0x2083, 8077 }, - { 0x2084, 8098 }, - { 0x2085, 8072 }, - { 0x2086, 8069 }, - { 0x2087, 8087 }, - { 0x2088, 8083 }, - { 0x2089, 8075 }, - { 0x208A, 8094 }, - { 0x208B, 8091 }, - { 0x208C, 71240 }, - { 0x208D, 71246 }, - { 0x208E, 71267 }, - { 0x208F, 71252 }, - { 0x2090, 71249 }, - { 0x2091, 71243 }, - { 0x2092, 71264 }, - { 0x2093, 71261 }, - { 0x2094, 71255 }, - { 0x2095, 71680 }, - { 0x2096, 71755 }, - { 0x2097, 71803 }, - { 0x2098, 71872 }, - { 0x2099, 71866 }, - { 0x209A, 71851 }, - { 0x209B, 71860 }, - { 0x209C, 71875 }, - { 0x209D, 71863 }, - { 0x209E, 71869 }, - { 0x209F, 71806 }, - { 0x20A0, 143984 }, - { 0x20A1, 143990 }, - { 0x20A2, 144008 }, - { 0x20A3, 143996 }, - { 0x20A4, 143993 }, - { 0x20A5, 143987 }, - { 0x20A6, 144005 }, - { 0x20A7, 144002 }, - { 0x20A8, 143999 }, - { 0x20A9, 144382 }, - { 0x20AA, 144385 }, - { 0x20AB, 144388 }, - { 0x20AC, 144409 }, - { 0x20AD, 144403 }, - { 0x20AE, 144394 }, - { 0x20AF, 144397 }, - { 0x20B0, 144412 }, - { 0x20B1, 144400 }, - { 0x20B2, 144406 }, - { 0x20B3, 144391 }, - { 0x20B4, 22559 }, - { 0x20B5, 22577 }, - { 0x20B6, 22640 }, - { 0x20B7, 22595 }, - { 0x20B8, 22586 }, - { 0x20B9, 22568 }, - { 0x20BA, 22631 }, - { 0x20BB, 22622 }, - { 0x20BC, 22604 }, - { 0x20BD, 63869 }, - { 0x20BE, 63875 }, - { 0x20BF, 63879 }, - { 0x20C0, 63907 }, - { 0x20C1, 63899 }, - { 0x20C2, 63887 }, - { 0x20C3, 63891 }, - { 0x20C4, 63911 }, - { 0x20C5, 63895 }, - { 0x20C6, 63903 }, - { 0x20C7, 63883 }, - { 0x20C8, 144011 }, - { 0x20C9, 144016 }, - { 0x20CA, 144021 }, - { 0x20CB, 144026 }, - { 0x20CC, 144031 }, - { 0x20CD, 144036 }, - { 0x20CE, 144041 }, - { 0x20CF, 144046 }, - { 0x20D0, 144051 }, - { 0x20D1, 144056 }, - { 0x20D2, 144061 }, - { 0x20D3, 144066 }, - { 0x20D4, 144071 }, - { 0x20D5, 144076 }, - { 0x20D6, 144081 }, - { 0x20D7, 144086 }, - { 0x20D8, 144091 }, - { 0x20D9, 144096 }, - { 0x20DA, 144101 }, - { 0x20DB, 144106 }, - { 0x20DC, 144111 }, - { 0x20DD, 144116 }, - { 0x20DE, 144121 }, - { 0x20DF, 144126 }, - { 0x20E0, 144131 }, - { 0x20E1, 144136 }, - { 0x20E2, 71408 }, - { 0x20E3, 71413 }, - { 0x20E4, 71418 }, - { 0x20E5, 71423 }, - { 0x20E6, 71428 }, - { 0x20E7, 71433 }, - { 0x20E8, 71438 }, - { 0x20E9, 71443 }, - { 0x20EA, 71448 }, - { 0x20EB, 71453 }, - { 0x20EC, 71458 }, - { 0x20ED, 71463 }, - { 0x20EE, 71468 }, - { 0x20EF, 71473 }, - { 0x20F0, 71478 }, - { 0x20F1, 71483 }, - { 0x20F2, 71488 }, - { 0x20F3, 71493 }, - { 0x20F4, 71498 }, - { 0x20F5, 71503 }, - { 0x20F6, 71508 }, - { 0x20F7, 71513 }, - { 0x20F8, 71518 }, - { 0x20F9, 71523 }, - { 0x20FA, 71528 }, - { 0x20FB, 71533 }, - { 0x20FC, 71278 }, - { 0x20FD, 71283 }, - { 0x20FE, 71288 }, - { 0x20FF, 71293 }, - { 0x2100, 71298 }, - { 0x2101, 71303 }, - { 0x2102, 71308 }, - { 0x2103, 71313 }, - { 0x2104, 71318 }, - { 0x2105, 71323 }, - { 0x2106, 71328 }, - { 0x2107, 71333 }, - { 0x2108, 71338 }, - { 0x2109, 71343 }, - { 0x210A, 71348 }, - { 0x210B, 71353 }, - { 0x210C, 71358 }, - { 0x210D, 71363 }, - { 0x210E, 71368 }, - { 0x210F, 71373 }, - { 0x2110, 71378 }, - { 0x2111, 71383 }, - { 0x2112, 71388 }, - { 0x2113, 71393 }, - { 0x2114, 71398 }, - { 0x2115, 71403 }, - { 0x2116, 71258 }, - { 0x2117, 109042 }, - { 0x2118, 109046 }, - { 0x2119, 109074 }, - { 0x211A, 109066 }, - { 0x211B, 109054 }, - { 0x211C, 109058 }, - { 0x211D, 109078 }, - { 0x211E, 109062 }, - { 0x211F, 109070 }, - { 0x2120, 109050 }, - { 0x2121, 54744 }, - { 0x2122, 54752 }, - { 0x2123, 54776 }, - { 0x2124, 54760 }, - { 0x2125, 54756 }, - { 0x2126, 54748 }, - { 0x2127, 54772 }, - { 0x2128, 54768 }, - { 0x2129, 54764 }, - { 0x212A, 54780 }, - { 0x212B, 108882 }, - { 0x212C, 5665 }, - { 0x212D, 5097 }, - { 0x212E, 5603 }, - { 0x212F, 5063 }, - { 0x2130, 5227 }, - { 0x2131, 5057 }, - { 0x2132, 5221 }, - { 0x2133, 5051 }, - { 0x2134, 5659 }, - { 0x2135, 5091 }, - { 0x2136, 5653 }, - { 0x2137, 5085 }, - { 0x2138, 5175 }, - { 0x2139, 4851 }, - { 0x213A, 4806 }, - { 0x213B, 5012 }, - { 0x213C, 5169 }, - { 0x213D, 4836 }, - { 0x213E, 4791 }, - { 0x213F, 5006 }, - { 0x2140, 5118 }, - { 0x2141, 4719 }, - { 0x2142, 4674 }, - { 0x2143, 4990 }, - { 0x2144, 5105 }, - { 0x2145, 4704 }, - { 0x2146, 4659 }, - { 0x2147, 4977 }, - { 0x2148, 5627 }, - { 0x2149, 5888 }, - { 0x214A, 4666 }, - { 0x214B, 4798 }, - { 0x214C, 5867 }, - { 0x214D, 4843 }, - { 0x214E, 4711 }, - { 0x214F, 5073 }, - { 0x2150, 5621 }, - { 0x2151, 5881 }, - { 0x2152, 4651 }, - { 0x2153, 4783 }, - { 0x2154, 5860 }, - { 0x2155, 4828 }, - { 0x2156, 4696 }, - { 0x2157, 5067 }, - { 0x2158, 5181 }, - { 0x2159, 4933 }, - { 0x215A, 5716 }, - { 0x215B, 4858 }, - { 0x215C, 4813 }, - { 0x215D, 5740 }, - { 0x215E, 4957 }, - { 0x215F, 5018 }, - { 0x2160, 5124 }, - { 0x2161, 4925 }, - { 0x2162, 5708 }, - { 0x2163, 4726 }, - { 0x2164, 4681 }, - { 0x2165, 5732 }, - { 0x2166, 4949 }, - { 0x2167, 4996 }, - { 0x2168, 5647 }, - { 0x2169, 4941 }, - { 0x216A, 5724 }, - { 0x216B, 5895 }, - { 0x216C, 4643 }, - { 0x216D, 4775 }, - { 0x216E, 5874 }, - { 0x216F, 4907 }, - { 0x2170, 5690 }, - { 0x2171, 4916 }, - { 0x2172, 5699 }, - { 0x2173, 4820 }, - { 0x2174, 4688 }, - { 0x2175, 5748 }, - { 0x2176, 4965 }, - { 0x2177, 5079 }, - { 0x2178, 5215 }, - { 0x2179, 5045 }, - { 0x217A, 5209 }, - { 0x217B, 5039 }, - { 0x217C, 5856 }, - { 0x217D, 5834 }, - { 0x217E, 4893 }, - { 0x217F, 4872 }, - { 0x2180, 5780 }, - { 0x2181, 4886 }, - { 0x2182, 4865 }, - { 0x2183, 5774 }, - { 0x2184, 4761 }, - { 0x2185, 4740 }, - { 0x2186, 5762 }, - { 0x2187, 4754 }, - { 0x2188, 4733 }, - { 0x2189, 5756 }, - { 0x218A, 5930 }, - { 0x218B, 5909 }, - { 0x218C, 5844 }, - { 0x218D, 5923 }, - { 0x218E, 5902 }, - { 0x218F, 5838 }, - { 0x2190, 4900 }, - { 0x2191, 4879 }, - { 0x2192, 5786 }, - { 0x2193, 4768 }, - { 0x2194, 4747 }, - { 0x2195, 5768 }, - { 0x2196, 5937 }, - { 0x2197, 5916 }, - { 0x2198, 5850 }, - { 0x2199, 5151 }, - { 0x219A, 5144 }, - { 0x219B, 5130 }, - { 0x219C, 5137 }, - { 0x219D, 5337 }, - { 0x219E, 5262 }, - { 0x219F, 5233 }, - { 0x21A0, 5187 }, - { 0x21A1, 5101 }, - { 0x21A2, 5198 }, - { 0x21A3, 5165 }, - { 0x21A4, 5024 }, - { 0x21A5, 4973 }, - { 0x21A6, 5035 }, - { 0x21A7, 5002 }, - { 0x21A8, 5191 }, - { 0x21A9, 5111 }, - { 0x21AA, 5028 }, - { 0x21AB, 4983 }, - { 0x21AC, 42517 }, - { 0x21AD, 36652 }, - { 0x21AE, 36656 }, - { 0x21AF, 37172 }, - { 0x21B0, 36677 }, - { 0x21B1, 36660 }, - { 0x21B2, 37183 }, - { 0x21B3, 37168 }, - { 0x21B4, 14152 }, - { 0x21B5, 14852 }, - { 0x21B6, 14869 }, - { 0x21B7, 14631 }, - { 0x21B8, 14643 }, - { 0x21B9, 14865 }, - { 0x21BA, 14592 }, - { 0x21BB, 14588 }, - { 0x21BC, 40342 }, - { 0x21BD, 36379 }, - { 0x21BE, 63418 }, - { 0x21BF, 13814 }, - { 0x21C0, 42499 }, - { 0x21C1, 40312 }, - { 0x21C2, 110306 }, - { 0x21C3, 110309 }, - { 0x21C4, 110312 }, - { 0x21C5, 110315 }, - { 0x21C6, 110324 }, - { 0x21C7, 110330 }, - { 0x21C8, 110339 }, - { 0x21C9, 110348 }, - { 0x21CA, 110351 }, - { 0x21CB, 110357 }, - { 0x21CC, 21474 }, - { 0x21CD, 43721 }, - { 0x21CE, 43753 }, - { 0x21CF, 43784 }, - { 0x21D0, 65391 }, - { 0x21D1, 65383 }, - { 0x21D2, 65395 }, - { 0x21D3, 65343 }, - { 0x21D4, 65358 }, - { 0x21D5, 65378 }, - { 0x21D6, 21309 }, - { 0x21D7, 43642 }, - { 0x21D8, 21582 }, - { 0x21D9, 43889 }, - { 0x21DA, 21566 }, - { 0x21DB, 43878 }, - { 0x21DC, 21667 }, - { 0x21DD, 43952 }, - { 0x21DE, 21617 }, - { 0x21DF, 43912 }, - { 0x21E0, 21609 }, - { 0x21E1, 43905 }, - { 0x21E2, 21690 }, - { 0x21E3, 43964 }, - { 0x21E4, 21669 }, - { 0x21E5, 43954 }, - { 0x21E6, 21684 }, - { 0x21E7, 43958 }, - { 0x21E8, 21633 }, - { 0x21E9, 43939 }, - { 0x21EA, 21625 }, - { 0x21EB, 43935 }, - { 0x21EC, 21659 }, - { 0x21ED, 43949 }, - { 0x21EE, 21641 }, - { 0x21EF, 43942 }, - { 0x21F0, 21656 }, - { 0x21F1, 43946 }, - { 0x21F2, 21486 }, - { 0x21F3, 43796 }, - { 0x21F4, 43817 }, - { 0x21F5, 73273 }, - { 0x21F6, 74308 }, - { 0x21F7, 43653 }, - { 0x21F8, 54658 }, - { 0x21F9, 53421 }, - { 0x21FA, 84266 }, - { 0x21FB, 21341 }, - { 0x21FC, 53388 }, - { 0x21FD, 53398 }, - { 0x21FE, 53393 }, - { 0x21FF, 53410 }, - { 0x2200, 53415 }, - { 0x2201, 53372 }, - { 0x2202, 14639 }, - { 0x2203, 40338 }, - { 0x2204, 73898 }, - { 0x2205, 73895 }, - { 0x2206, 42547 }, - { 0x2207, 36698 }, - { 0x2208, 42754 }, - { 0x2209, 42966 }, - { 0x220A, 37117 }, - { 0x220B, 36890 }, - { 0x220C, 42540 }, - { 0x220D, 36691 }, - { 0x220E, 21282 }, - { 0x220F, 21278 }, - { 0x2210, 21327 }, - { 0x2211, 21331 }, - { 0x2212, 43651 }, - { 0x2213, 65319 }, - { 0x2214, 65338 }, - { 0x2215, 65351 }, - { 0x2216, 65331 }, - { 0x2217, 43758 }, - { 0x2218, 43915 }, - { 0x2219, 137747 }, - { 0x221A, 137753 }, - { 0x221B, 28769 }, - { 0x221C, 43735 }, - { 0x221D, 43723 }, - { 0x221E, 43729 }, - { 0x221F, 43741 }, - { 0x2220, 43682 }, - { 0x2221, 43670 }, - { 0x2222, 43676 }, - { 0x2223, 43688 }, - { 0x2224, 42772 }, - { 0x2225, 42994 }, - { 0x2226, 36913 }, - { 0x2227, 43709 }, - { 0x2228, 21426 }, - { 0x2229, 43705 }, - { 0x222A, 21414 }, - { 0x222B, 37150 }, - { 0x222C, 20999 }, - { 0x222D, 22479 }, - { 0x222E, 111266 }, - { 0x222F, 80201 }, - { 0x2230, 22499 }, - { 0x2231, 21038 }, - { 0x2232, 43404 }, - { 0x2233, 126263 }, - { 0x2234, 143504 }, - { 0x2235, 10575 }, - { 0x2236, 114374 }, - { 0x2237, 129787 }, - { 0x2238, 133148 }, - { 0x2239, 132100 }, - { 0x223A, 21584 }, - { 0x223B, 43891 }, - { 0x223C, 52337 }, - { 0x223D, 52354 }, - { 0x223E, 52339 }, - { 0x223F, 78759 }, - { 0x2240, 111270 }, - { 0x2241, 6600 }, - { 0x2242, 43636 }, - { 0x2243, 21299 }, - { 0x2244, 110612 }, - { 0x2245, 110577 }, - { 0x2246, 21026 }, - { 0x2247, 21286 }, - { 0x2248, 43392 }, - { 0x2249, 43316 }, - { 0x224A, 43627 }, - { 0x224B, 43357 }, - { 0x224C, 41261 }, - { 0x224D, 71177 }, - { 0x224E, 134504 }, - { 0x224F, 114696 }, - { 0x2250, 84267 }, - { 0x2251, 13413 }, - { 0x2252, 109674 }, - { 0x2253, 5966 }, - { 0x2254, 22505 }, - { 0x2255, 22508 }, - { 0x2256, 16982 }, - { 0x2257, 23306 }, - { 0x2258, 4251 }, - { 0x2259, 55333 }, - { 0x225A, 40242 }, - { 0x225B, 13191 }, - { 0x225C, 82585 }, - { 0x225D, 82573 }, - { 0x225E, 82570 }, - { 0x225F, 82588 }, - { 0x2260, 82576 }, - { 0x2261, 82582 }, - { 0x2262, 82591 }, - { 0x2263, 82579 }, - { 0x2264, 43313 }, - { 0x2265, 43855 }, - { 0x2266, 43839 }, - { 0x2267, 21525 }, - { 0x2268, 43329 }, - { 0x2269, 23320 }, - { 0x226A, 14505 }, - { 0x226B, 75231 }, - { 0x226C, 54927 }, - { 0x226D, 23149 }, - { 0x226E, 15360 }, - { 0x226F, 73915 }, - { 0x2270, 64847 }, - { 0x2271, 69006 }, - { 0x2272, 77469 }, - { 0x2273, 40254 }, - { 0x2274, 17961 }, - { 0x2275, 68174 }, - { 0x2276, 54983 }, - { 0x2277, 52984 }, - { 0x2278, 6937 }, - { 0x2279, 43296 }, - { 0x227A, 36328 }, - { 0x227B, 110600 }, - { 0x227C, 134508 }, - { 0x227D, 115954 }, - { 0x227E, 83013 }, - { 0x227F, 64568 }, - { 0x2280, 43421 }, - { 0x2281, 43472 }, - { 0x2282, 43455 }, - { 0x2283, 43489 }, - { 0x2284, 43506 }, - { 0x2285, 43438 }, - { 0x2286, 21061 }, - { 0x2287, 21112 }, - { 0x2288, 21095 }, - { 0x2289, 21129 }, - { 0x228A, 21146 }, - { 0x228B, 21078 }, - { 0x228C, 21322 }, - { 0x228D, 43600 }, - { 0x228E, 43802 }, - { 0x228F, 21003 }, - { 0x2290, 43648 }, - { 0x2291, 21241 }, - { 0x2292, 21492 }, - { 0x2293, 43348 }, - { 0x2294, 6598 }, - { 0x2295, 78624 }, - { 0x2296, 54854 }, - { 0x2297, 52383 }, - { 0x2298, 52390 }, - { 0x2299, 38469 }, - { 0x229A, 38475 }, - { 0x229B, 38472 }, - { 0x229C, 17534 }, - { 0x229D, 13910 }, - { 0x229E, 128797 }, - { 0x229F, 127655 }, - { 0x22A0, 127660 }, - { 0x22A1, 127665 }, - { 0x22A2, 127670 }, - { 0x22A3, 127675 }, - { 0x22A4, 127680 }, - { 0x22A5, 127685 }, - { 0x22A6, 127690 }, - { 0x22A7, 21589 }, - { 0x22A8, 110372 }, - { 0x22A9, 144940 }, - { 0x22AA, 127639 }, - { 0x22AB, 133118 }, - { 0x22AC, 6532 }, - { 0x22AD, 6534 }, - { 0x22AE, 6536 }, - { 0x22AF, 6538 }, - { 0x22B0, 6540 }, - { 0x22B1, 6542 }, - { 0x22B2, 43655 }, - { 0x22B3, 43660 }, - { 0x22B4, 21358 }, - { 0x22B5, 21347 }, - { 0x22B6, 108849 }, - { 0x22B7, 108846 }, - { 0x22B8, 54329 }, - { 0x22B9, 54309 }, - { 0x22BA, 54313 }, - { 0x22BB, 54325 }, - { 0x22BC, 43366 }, - { 0x22BD, 21011 }, - { 0x22BE, 55330 }, - { 0x22BF, 44208 }, - { 0x22C0, 72262 }, - { 0x22C1, 41639 }, - { 0x22C2, 64848 }, - { 0x22C3, 69876 }, - { 0x22C4, 54948 }, - { 0x22C5, 14164 }, - { 0x22C6, 41636 }, - { 0x22C7, 13414 }, - { 0x22C8, 138383 }, - { 0x22C9, 109845 }, - { 0x22CA, 42347 }, - { 0x22CB, 42343 }, - { 0x22CC, 82940 }, - { 0x22CD, 14203 }, - { 0x22CE, 73007 }, - { 0x22CF, 73004 }, - { 0x22D0, 133858 }, - { 0x22D1, 15356 }, - { 0x22D2, 15370 }, - { 0x22D3, 15362 }, - { 0x22D4, 111395 }, - { 0x22D5, 131663 }, - { 0x22D6, 63434 }, - { 0x22D7, 63394 }, - { 0x22D8, 63420 }, - { 0x22D9, 106541 }, - { 0x22DA, 73001 }, - { 0x22DB, 128800 }, - { 0x22DC, 53494 }, - { 0x22DD, 73286 }, - { 0x22DE, 63856 }, - { 0x22DF, 22370 }, - { 0x22E0, 64510 }, - { 0x22E1, 14212 }, - { 0x22E2, 43291 }, - { 0x22E3, 53369 }, - { 0x22E4, 21035 }, - { 0x22E5, 78773 }, - { 0x22E6, 134512 }, - { 0x22E7, 110371 }, - { 0x22E8, 144894 }, - { 0x22E9, 64938 }, - { 0x22EA, 83921 }, - { 0x22EB, 80897 }, - { 0x22EC, 43847 }, - { 0x22ED, 43850 }, - { 0x22EE, 21539 }, - { 0x22EF, 21542 }, - { 0x22F0, 80202 }, - { 0x22F1, 10579 }, - { 0x22F2, 16667 }, - { 0x22F3, 21528 }, - { 0x22F4, 81394 }, - { 0x22F5, 68972 }, - { 0x22F6, 68929 }, - { 0x22F7, 43798 }, - { 0x22F8, 87643 }, - { 0x22F9, 89733 }, - { 0x22FA, 127533 }, - { 0x22FB, 16598 }, - { 0x22FC, 5949 }, - { 0x22FD, 57528 }, - { 0x22FE, 71889 }, - { 0x22FF, 53142 }, - { 0x2300, 95 }, - { 0x2301, 112606 }, - { 0x2302, 21530 }, - { 0x2303, 43842 }, - { 0x2304, 21022 }, - { 0x2305, 43388 }, - { 0x2306, 23145 }, - { 0x2307, 26781 }, - { 0x2308, 14911 }, - { 0x2309, 81112 }, - { 0x230A, 73251 }, - { 0x230B, 21325 }, - { 0x230C, 132221 }, - { 0x230D, 132224 }, - { 0x230E, 138034 }, - { 0x230F, 26795 }, - { 0x2310, 127638 }, - { 0x2311, 143489 }, - { 0x2312, 133899 }, - { 0x2313, 105546 }, - { 0x2314, 21235 }, - { 0x2315, 64909 }, - { 0x2316, 53370 }, - { 0x2317, 53136 }, - { 0x2318, 105342 }, - { 0x2319, 14168 }, - { 0x231A, 14165 }, - { 0x231B, 6989 }, - { 0x231C, 108858 }, - { 0x231D, 111267 }, - { 0x231E, 103463 }, - { 0x231F, 14098 }, - { 0x2320, 23308 }, - { 0x2321, 110594 }, - { 0x2322, 65276 }, - { 0x2323, 41259 }, - { 0x2324, 6607 }, - { 0x2325, 64525 }, - { 0x2326, 17006 }, - { 0x2327, 105553 }, - { 0x2328, 125332 }, - { 0x2329, 14141 }, - { 0x232A, 6522 }, - { 0x232B, 43368 }, - { 0x232C, 21471 }, - { 0x232D, 42780 }, - { 0x232E, 21553 }, - { 0x232F, 36933 }, - { 0x2330, 43864 }, - { 0x2331, 43603 }, - { 0x2332, 128523 }, - { 0x2333, 17001 }, - { 0x2334, 83004 }, - { 0x2335, 101778 }, - { 0x2336, 64629 }, - { 0x2337, 64631 }, - { 0x2338, 82937 }, - { 0x2339, 82949 }, - { 0x233A, 37059 }, - { 0x233B, 64514 }, - { 0x233C, 42911 }, - { 0x233D, 43325 }, - { 0x233E, 20997 }, - { 0x233F, 22387 }, - { 0x2340, 26658 }, - { 0x2341, 144815 }, - { 0x2342, 26981 }, - { 0x2343, 52335 }, - { 0x2344, 26785 }, - { 0x2345, 109709 }, - { 0x2346, 26686 }, - { 0x2347, 16545 }, - { 0x2348, 26606 }, - { 0x2349, 28797 }, - { 0x234A, 110605 }, - { 0x234B, 109712 }, - { 0x234C, 74586 }, - { 0x234D, 16979 }, - { 0x234E, 14136 }, - { 0x234F, 14133 }, - { 0x2350, 26602 }, - { 0x2351, 14130 }, - { 0x2352, 21013 }, - { 0x2353, 43379 }, - { 0x2354, 110678 }, - { 0x2355, 65610 }, - { 0x2356, 71542 }, - { 0x2357, 16541 }, - { 0x2358, 21337 }, - { 0x2359, 109676 }, - { 0x235A, 26888 }, - { 0x235B, 110240 }, - { 0x235C, 110602 }, - { 0x235D, 26878 }, - { 0x235E, 16548 }, - { 0x235F, 23167 }, - { 0x2360, 23170 }, - { 0x2361, 23174 }, - { 0x2362, 10555 }, - { 0x2363, 23178 }, - { 0x2364, 26675 }, - { 0x2365, 68998 }, - { 0x2366, 80061 }, - { 0x2367, 144909 }, - { 0x2368, 16551 }, - { 0x2369, 27014 }, - { 0x236A, 10563 }, - { 0x236B, 21545 }, - { 0x236C, 43853 }, - { 0x236D, 23183 }, - { 0x236E, 71207 }, - { 0x236F, 27017 }, - { 0x2370, 128206 }, - { 0x2371, 42380 }, - { 0x2372, 26855 }, - { 0x2373, 80671 }, - { 0x2374, 26863 }, - { 0x2375, 144807 }, - { 0x2376, 23188 }, - { 0x2377, 26681 }, - { 0x2378, 22511 }, - { 0x2379, 110609 }, - { 0x237A, 109103 }, - { 0x237B, 37163 }, - { 0x237C, 43002 }, - { 0x237D, 37145 }, - { 0x237E, 42989 }, - { 0x237F, 21549 }, - { 0x2380, 43860 }, - { 0x2381, 43901 }, - { 0x2382, 21500 }, - { 0x2383, 26947 }, - { 0x2384, 36396 }, - { 0x2385, 63442 }, - { 0x2386, 26892 }, - { 0x2387, 26838 }, - { 0x2388, 26832 }, - { 0x2389, 26817 }, - { 0x238A, 26811 }, - { 0x238B, 26577 }, - { 0x238C, 26570 }, - { 0x238D, 54265 }, - { 0x238E, 26951 }, - { 0x238F, 26689 }, - { 0x2390, 26641 }, - { 0x2391, 78683 }, - { 0x2392, 54946 }, - { 0x2393, 78699 }, - { 0x2394, 63390 }, - { 0x2395, 63414 }, - { 0x2396, 63445 }, - { 0x2397, 63450 }, - { 0x2398, 63458 }, - { 0x2399, 63463 }, - { 0x239A, 26975 }, - { 0x239B, 26989 }, - { 0x239C, 26970 }, - { 0x239D, 26984 }, - { 0x239E, 36355 }, - { 0x239F, 36373 }, - { 0x23A0, 63385 }, - { 0x23A1, 63409 }, - { 0x23A2, 72884 }, - { 0x23A3, 72894 }, - { 0x23A4, 72924 }, - { 0x23A5, 72904 }, - { 0x23A6, 72899 }, - { 0x23A7, 72889 }, - { 0x23A8, 72919 }, - { 0x23A9, 72914 }, - { 0x23AA, 72909 }, - { 0x23AB, 72929 }, - { 0x23AC, 72829 }, - { 0x23AD, 72839 }, - { 0x23AE, 72874 }, - { 0x23AF, 72849 }, - { 0x23B0, 72844 }, - { 0x23B1, 72834 }, - { 0x23B2, 72869 }, - { 0x23B3, 72864 }, - { 0x23B4, 72854 }, - { 0x23B5, 72879 }, - { 0x23B6, 72934 }, - { 0x23B7, 72946 }, - { 0x23B8, 72988 }, - { 0x23B9, 72958 }, - { 0x23BA, 72952 }, - { 0x23BB, 72940 }, - { 0x23BC, 72982 }, - { 0x23BD, 72976 }, - { 0x23BE, 72964 }, - { 0x23BF, 72994 }, - { 0x23C0, 26958 }, - { 0x23C1, 26615 }, - { 0x23C2, 26706 }, - { 0x23C3, 26880 }, - { 0x23C4, 26735 }, - { 0x23C5, 26927 }, - { 0x23C6, 26709 }, - { 0x23C7, 89772 }, - { 0x23C8, 26962 }, - { 0x23C9, 144911 }, - { 0x23CA, 27021 }, - { 0x23CB, 54287 }, - { 0x23CC, 26803 }, - { 0x23CD, 21596 }, - { 0x23CE, 81371 }, - { 0x23CF, 81390 }, - { 0x23D0, 21602 }, - { 0x23D1, 26651 }, - { 0x23D2, 26644 }, - { 0x23D3, 41631 }, - { 0x23D4, 27009 }, - { 0x23D5, 143492 }, - { 0x23D6, 133902 }, - { 0x23D7, 133125 }, - { 0x23D8, 138387 }, - { 0x23D9, 26700 }, - { 0x23DA, 26761 }, - { 0x23DB, 77657 }, - { 0x23DC, 22531 }, - { 0x23DD, 77669 }, - { 0x23DE, 71270 }, - { 0x23DF, 144914 }, - { 0x23E0, 144899 }, - { 0x23E1, 144903 }, - { 0x23E2, 144895 }, - { 0x23E3, 27000 }, - { 0x23E4, 27005 }, - { 0x23E5, 26995 }, - { 0x23E6, 144906 }, - { 0x23E7, 27025 }, - { 0x23E8, 143505 }, - { 0x23E9, 26966 }, - { 0x23EA, 143981 }, - { 0x23EB, 54697 }, - { 0x23EC, 42374 }, - { 0x23ED, 43866 }, - { 0x23EE, 144523 }, - { 0x23EF, 16557 }, - { 0x23F0, 16569 }, - { 0x23F1, 15021 }, - { 0x23F2, 40657 }, - { 0x23F3, 492 }, - { 0x23F4, 78667 }, - { 0x23F5, 110822 }, - { 0x23F6, 111278 }, - { 0x23F7, 140616 }, - { 0x23F8, 15305 }, - { 0x23F9, 140783 }, - { 0x23FA, 81109 }, - { 0x23FB, 81106 }, - { 0x23FC, 43805 }, - { 0x23FD, 4259 }, - { 0x23FE, 73172 }, - { 0x23FF, 37054 }, - { 0x2400, 42697 }, - { 0x2401, 14781 }, - { 0x2402, 40475 }, - { 0x2403, 14154 }, - { 0x2404, 28372 }, - { 0x2405, 28418 }, - { 0x2406, 14540 }, - { 0x2407, 14536 }, - { 0x2408, 15019 }, - { 0x2409, 15302 }, - { 0x240A, 15290 }, - { 0x240B, 559 }, - { 0x240C, 74309 }, - { 0x240D, 43920 }, - { 0x240E, 43923 }, - { 0x240F, 43929 }, - { 0x2410, 43764 }, - { 0x2411, 43769 }, - { 0x2412, 140125 }, - { 0x2413, 140149 }, - { 0x2414, 140121 }, - { 0x2415, 140145 }, - { 0x2416, 140136 }, - { 0x2417, 140160 }, - { 0x2418, 140130 }, - { 0x2419, 140154 }, - { 0x241A, 140141 }, - { 0x241B, 140165 }, - { 0x241C, 82836 }, - { 0x241D, 124277 }, - { 0x241E, 143522 }, - { 0x241F, 116205 }, - { 0x2420, 40441 }, - { 0x2421, 15307 }, - { 0x2422, 15329 }, - { 0x2423, 15293 }, - { 0x2424, 15315 }, - { 0x2425, 15337 }, - { 0x2426, 15297 }, - { 0x2427, 15310 }, - { 0x2428, 15332 }, - { 0x2429, 15319 }, - { 0x242A, 15341 }, - { 0x242B, 15347 }, - { 0x242C, 70406 }, - { 0x242D, 70409 }, - { 0x242E, 70412 }, - { 0x242F, 70433 }, - { 0x2430, 70415 }, - { 0x2431, 70436 }, - { 0x2432, 70454 }, - { 0x2433, 70517 }, - { 0x2434, 70418 }, - { 0x2435, 70439 }, - { 0x2436, 70457 }, - { 0x2437, 70520 }, - { 0x2438, 70472 }, - { 0x2439, 70535 }, - { 0x243A, 70580 }, - { 0x243B, 70685 }, - { 0x243C, 70421 }, - { 0x243D, 70442 }, - { 0x243E, 70460 }, - { 0x243F, 70523 }, - { 0x2440, 70475 }, - { 0x2441, 70538 }, - { 0x2442, 70583 }, - { 0x2443, 70688 }, - { 0x2444, 70487 }, - { 0x2445, 70550 }, - { 0x2446, 70595 }, - { 0x2447, 70700 }, - { 0x2448, 70625 }, - { 0x2449, 70730 }, - { 0x244A, 70790 }, - { 0x244B, 70895 }, - { 0x244C, 70424 }, - { 0x244D, 70445 }, - { 0x244E, 70463 }, - { 0x244F, 70526 }, - { 0x2450, 70478 }, - { 0x2451, 70541 }, - { 0x2452, 70586 }, - { 0x2453, 70691 }, - { 0x2454, 70490 }, - { 0x2455, 70553 }, - { 0x2456, 70598 }, - { 0x2457, 70703 }, - { 0x2458, 70628 }, - { 0x2459, 70733 }, - { 0x245A, 70793 }, - { 0x245B, 70898 }, - { 0x245C, 70499 }, - { 0x245D, 70562 }, - { 0x245E, 70607 }, - { 0x245F, 70712 }, - { 0x2460, 70637 }, - { 0x2461, 70742 }, - { 0x2462, 70802 }, - { 0x2463, 70907 }, - { 0x2464, 70655 }, - { 0x2465, 70760 }, - { 0x2466, 70820 }, - { 0x2467, 70925 }, - { 0x2468, 70850 }, - { 0x2469, 70955 }, - { 0x246A, 71000 }, - { 0x246B, 71063 }, - { 0x246C, 70427 }, - { 0x246D, 70448 }, - { 0x246E, 70466 }, - { 0x246F, 70529 }, - { 0x2470, 70481 }, - { 0x2471, 70544 }, - { 0x2472, 70589 }, - { 0x2473, 70694 }, - { 0x2474, 70493 }, - { 0x2475, 70556 }, - { 0x2476, 70601 }, - { 0x2477, 70706 }, - { 0x2478, 70631 }, - { 0x2479, 70736 }, - { 0x247A, 70796 }, - { 0x247B, 70901 }, - { 0x247C, 70502 }, - { 0x247D, 70565 }, - { 0x247E, 70610 }, - { 0x247F, 70715 }, - { 0x2480, 70640 }, - { 0x2481, 70745 }, - { 0x2482, 70805 }, - { 0x2483, 70910 }, - { 0x2484, 70658 }, - { 0x2485, 70763 }, - { 0x2486, 70823 }, - { 0x2487, 70928 }, - { 0x2488, 70853 }, - { 0x2489, 70958 }, - { 0x248A, 71003 }, - { 0x248B, 71066 }, - { 0x248C, 70508 }, - { 0x248D, 70571 }, - { 0x248E, 70616 }, - { 0x248F, 70721 }, - { 0x2490, 70646 }, - { 0x2491, 70751 }, - { 0x2492, 70811 }, - { 0x2493, 70916 }, - { 0x2494, 70664 }, - { 0x2495, 70769 }, - { 0x2496, 70829 }, - { 0x2497, 70934 }, - { 0x2498, 70859 }, - { 0x2499, 70964 }, - { 0x249A, 71009 }, - { 0x249B, 71072 }, - { 0x249C, 70673 }, - { 0x249D, 70778 }, - { 0x249E, 70838 }, - { 0x249F, 70943 }, - { 0x24A0, 70868 }, - { 0x24A1, 70973 }, - { 0x24A2, 71018 }, - { 0x24A3, 71081 }, - { 0x24A4, 70880 }, - { 0x24A5, 70985 }, - { 0x24A6, 71030 }, - { 0x24A7, 71093 }, - { 0x24A8, 71045 }, - { 0x24A9, 71108 }, - { 0x24AA, 71126 }, - { 0x24AB, 71147 }, - { 0x24AC, 70430 }, - { 0x24AD, 70451 }, - { 0x24AE, 70469 }, - { 0x24AF, 70532 }, - { 0x24B0, 70484 }, - { 0x24B1, 70547 }, - { 0x24B2, 70592 }, - { 0x24B3, 70697 }, - { 0x24B4, 70496 }, - { 0x24B5, 70559 }, - { 0x24B6, 70604 }, - { 0x24B7, 70709 }, - { 0x24B8, 70634 }, - { 0x24B9, 70739 }, - { 0x24BA, 70799 }, - { 0x24BB, 70904 }, - { 0x24BC, 70505 }, - { 0x24BD, 70568 }, - { 0x24BE, 70613 }, - { 0x24BF, 70718 }, - { 0x24C0, 70643 }, - { 0x24C1, 70748 }, - { 0x24C2, 70808 }, - { 0x24C3, 70913 }, - { 0x24C4, 70661 }, - { 0x24C5, 70766 }, - { 0x24C6, 70826 }, - { 0x24C7, 70931 }, - { 0x24C8, 70856 }, - { 0x24C9, 70961 }, - { 0x24CA, 71006 }, - { 0x24CB, 71069 }, - { 0x24CC, 70511 }, - { 0x24CD, 70574 }, - { 0x24CE, 70619 }, - { 0x24CF, 70724 }, - { 0x24D0, 70649 }, - { 0x24D1, 70754 }, - { 0x24D2, 70814 }, - { 0x24D3, 70919 }, - { 0x24D4, 70667 }, - { 0x24D5, 70772 }, - { 0x24D6, 70832 }, - { 0x24D7, 70937 }, - { 0x24D8, 70862 }, - { 0x24D9, 70967 }, - { 0x24DA, 71012 }, - { 0x24DB, 71075 }, - { 0x24DC, 70676 }, - { 0x24DD, 70781 }, - { 0x24DE, 70841 }, - { 0x24DF, 70946 }, - { 0x24E0, 70871 }, - { 0x24E1, 70976 }, - { 0x24E2, 71021 }, - { 0x24E3, 71084 }, - { 0x24E4, 70883 }, - { 0x24E5, 70988 }, - { 0x24E6, 71033 }, - { 0x24E7, 71096 }, - { 0x24E8, 71048 }, - { 0x24E9, 71111 }, - { 0x24EA, 71129 }, - { 0x24EB, 71150 }, - { 0x24EC, 70514 }, - { 0x24ED, 70577 }, - { 0x24EE, 70622 }, - { 0x24EF, 70727 }, - { 0x24F0, 70652 }, - { 0x24F1, 70757 }, - { 0x24F2, 70817 }, - { 0x24F3, 70922 }, - { 0x24F4, 70670 }, - { 0x24F5, 70775 }, - { 0x24F6, 70835 }, - { 0x24F7, 70940 }, - { 0x24F8, 70865 }, - { 0x24F9, 70970 }, - { 0x24FA, 71015 }, - { 0x24FB, 71078 }, - { 0x24FC, 70679 }, - { 0x24FD, 70784 }, - { 0x24FE, 70844 }, - { 0x24FF, 70949 }, - { 0x2500, 70874 }, - { 0x2501, 70979 }, - { 0x2502, 71024 }, - { 0x2503, 71087 }, - { 0x2504, 70886 }, - { 0x2505, 70991 }, - { 0x2506, 71036 }, - { 0x2507, 71099 }, - { 0x2508, 71051 }, - { 0x2509, 71114 }, - { 0x250A, 71132 }, - { 0x250B, 71153 }, - { 0x250C, 70682 }, - { 0x250D, 70787 }, - { 0x250E, 70847 }, - { 0x250F, 70952 }, - { 0x2510, 70877 }, - { 0x2511, 70982 }, - { 0x2512, 71027 }, - { 0x2513, 71090 }, - { 0x2514, 70889 }, - { 0x2515, 70994 }, - { 0x2516, 71039 }, - { 0x2517, 71102 }, - { 0x2518, 71054 }, - { 0x2519, 71117 }, - { 0x251A, 71135 }, - { 0x251B, 71156 }, - { 0x251C, 70892 }, - { 0x251D, 70997 }, - { 0x251E, 71042 }, - { 0x251F, 71105 }, - { 0x2520, 71057 }, - { 0x2521, 71120 }, - { 0x2522, 71138 }, - { 0x2523, 71159 }, - { 0x2524, 71060 }, - { 0x2525, 71123 }, - { 0x2526, 71141 }, - { 0x2527, 71162 }, - { 0x2528, 71144 }, - { 0x2529, 71165 }, - { 0x252A, 71168 }, - { 0x252B, 71171 }, - { 0x252C, 132665 }, - { 0x252D, 132652 }, - { 0x252E, 125833 }, - { 0x252F, 132489 }, - { 0x2530, 14833 }, - { 0x2531, 132625 }, - { 0x2532, 125823 }, - { 0x2533, 132479 }, - { 0x2534, 124147 }, - { 0x2535, 82670 }, - { 0x2536, 82767 }, - { 0x2537, 124205 }, - { 0x2538, 125816 }, - { 0x2539, 132472 }, - { 0x253A, 125847 }, - { 0x253B, 132503 }, - { 0x253C, 132671 }, - { 0x253D, 132357 }, - { 0x253E, 82611 }, - { 0x253F, 124083 }, - { 0x2540, 132322 }, - { 0x2541, 132314 }, - { 0x2542, 132630 }, - { 0x2543, 132644 }, - { 0x2544, 132635 }, - { 0x2545, 125961 }, - { 0x2546, 132617 }, - { 0x2547, 125839 }, - { 0x2548, 132495 }, - { 0x2549, 125616 }, - { 0x254A, 132252 }, - { 0x254B, 125634 }, - { 0x254C, 132270 }, - { 0x254D, 38620 }, - { 0x254E, 38541 }, - { 0x254F, 38652 }, - { 0x2550, 38562 }, - { 0x2551, 41516 }, - { 0x2552, 41582 }, - { 0x2553, 38640 }, - { 0x2554, 38550 }, - { 0x2555, 41504 }, - { 0x2556, 41570 }, - { 0x2557, 64832 }, - { 0x2558, 73265 }, - { 0x2559, 41521 }, - { 0x255A, 38574 }, - { 0x255B, 73259 }, - { 0x255C, 64826 }, - { 0x255D, 38567 }, - { 0x255E, 38657 }, - { 0x255F, 17520 }, - { 0x2560, 17987 }, - { 0x2561, 17993 }, - { 0x2562, 17968 }, - { 0x2563, 17974 }, - { 0x2564, 132228 }, - { 0x2565, 125583 }, - { 0x2566, 12071 }, - { 0x2567, 52408 }, - { 0x2568, 12065 }, - { 0x2569, 12075 }, - { 0x256A, 37158 }, - { 0x256B, 36928 }, - { 0x256C, 143518 }, - { 0x256D, 116201 }, - { 0x256E, 132393 }, - { 0x256F, 125747 }, - { 0x2570, 41248 }, - { 0x2571, 132305 }, - { 0x2572, 125669 }, - { 0x2573, 132423 }, - { 0x2574, 14809 }, - { 0x2575, 82845 }, - { 0x2576, 14607 }, - { 0x2577, 14614 }, - { 0x2578, 512 }, - { 0x2579, 505 }, - { 0x257A, 14600 }, - { 0x257B, 519 }, - { 0x257C, 14621 }, - { 0x257D, 498 }, - { 0x257E, 125859 }, - { 0x257F, 132515 }, - { 0x2580, 82806 }, - { 0x2581, 124247 }, - { 0x2582, 125903 }, - { 0x2583, 132559 }, - { 0x2584, 82770 }, - { 0x2585, 124211 }, - { 0x2586, 125866 }, - { 0x2587, 132522 }, - { 0x2588, 82813 }, - { 0x2589, 124254 }, - { 0x258A, 125910 }, - { 0x258B, 132566 }, - { 0x258C, 82777 }, - { 0x258D, 124218 }, - { 0x258E, 125881 }, - { 0x258F, 82784 }, - { 0x2590, 132548 }, - { 0x2591, 124236 }, - { 0x2592, 125892 }, - { 0x2593, 125917 }, - { 0x2594, 132537 }, - { 0x2595, 132573 }, - { 0x2596, 125873 }, - { 0x2597, 125928 }, - { 0x2598, 132529 }, - { 0x2599, 132584 }, - { 0x259A, 82795 }, - { 0x259B, 124225 }, - { 0x259C, 40548 }, - { 0x259D, 54911 }, - { 0x259E, 42413 }, - { 0x259F, 125753 }, - { 0x25A0, 132399 }, - { 0x25A1, 132404 }, - { 0x25A2, 126231 }, - { 0x25A3, 125785 }, - { 0x25A4, 138499 }, - { 0x25A5, 65678 }, - { 0x25A6, 125781 }, - { 0x25A7, 110807 }, - { 0x25A8, 14628 }, - { 0x25A9, 40320 }, - { 0x25AA, 554 }, - { 0x25AB, 13887 }, - { 0x25AC, 68898 }, - { 0x25AD, 31 }, - { 0x25AE, 34 }, - { 0x25AF, 14887 }, - { 0x25B0, 40513 }, - { 0x25B1, 14908 }, - { 0x25B2, 40534 }, - { 0x25B3, 21 }, - { 0x25B4, 42 }, - { 0x25B5, 26 }, - { 0x25B6, 47 }, - { 0x25B7, 14987 }, - { 0x25B8, 40616 }, - { 0x25B9, 14955 }, - { 0x25BA, 40592 }, - { 0x25BB, 14963 }, - { 0x25BC, 40584 }, - { 0x25BD, 14737 }, - { 0x25BE, 40422 }, - { 0x25BF, 14576 }, - { 0x25C0, 40304 }, - { 0x25C1, 54681 }, - { 0x25C2, 54710 }, - { 0x25C3, 14752 }, - { 0x25C4, 40446 }, - { 0x25C5, 54656 }, - { 0x25C6, 111407 }, - { 0x25C7, 106644 }, - { 0x25C8, 40427 }, - { 0x25C9, 106648 }, - { 0x25CA, 17952 }, - { 0x25CB, 17571 }, - { 0x25CC, 128217 }, - { 0x25CD, 128213 }, - { 0x25CE, 68927 }, - { 0x25CF, 110520 }, - { 0x25D0, 17956 }, - { 0x25D1, 110522 }, - { 0x25D2, 77675 }, - { 0x25D3, 77679 }, - { 0x25D4, 106560 }, - { 0x25D5, 106548 }, - { 0x25D6, 106584 }, - { 0x25D7, 106572 }, - { 0x25D8, 106620 }, - { 0x25D9, 106596 }, - { 0x25DA, 106632 }, - { 0x25DB, 106608 }, - { 0x25DC, 110528 }, - { 0x25DD, 23249 }, - { 0x25DE, 23243 }, - { 0x25DF, 23237 }, - { 0x25E0, 23231 }, - { 0x25E1, 53425 }, - { 0x25E2, 72046 }, - { 0x25E3, 72039 }, - { 0x25E4, 71883 }, - { 0x25E5, 72229 }, - { 0x25E6, 53433 }, - { 0x25E7, 53429 }, - { 0x25E8, 72237 }, - { 0x25E9, 564 }, - { 0x25EA, 71545 }, - { 0x25EB, 71548 }, - { 0x25EC, 72214 }, - { 0x25ED, 72224 }, - { 0x25EE, 53403 }, - { 0x25EF, 53380 }, - { 0x25F0, 81093 }, - { 0x25F1, 81102 }, - { 0x25F2, 81114 }, - { 0x25F3, 81083 }, - { 0x25F4, 81100 }, - { 0x25F5, 12252 }, - { 0x25F6, 111152 }, - { 0x25F7, 111165 }, - { 0x25F8, 9 }, - { 0x25F9, 111156 }, - { 0x25FA, 40671 }, - { 0x25FB, 15033 }, - { 0x25FC, 111283 }, - { 0x25FD, 52551 }, - { 0x25FE, 52556 }, - { 0x25FF, 21335 }, - { 0x2600, 42420 }, - { 0x2601, 42425 }, - { 0x2602, 43887 }, - { 0x2603, 21573 }, - { 0x2604, 15006 }, - { 0x2605, 40635 }, - { 0x2606, 14925 }, - { 0x2607, 40554 }, - { 0x2608, 131706 }, - { 0x2609, 12062 }, - { 0x260A, 105481 }, - { 0x260B, 138363 }, - { 0x260C, 65387 }, - { 0x260D, 125354 }, - { 0x260E, 79239 }, - { 0x260F, 54858 }, - { 0x2610, 54863 }, - { 0x2611, 125345 }, - { 0x2612, 54989 }, - { 0x2613, 144537 }, - { 0x2614, 143671 }, - { 0x2615, 143677 }, - { 0x2616, 21495 }, - { 0x2617, 21512 }, - { 0x2618, 43665 }, - { 0x2619, 21353 }, - { 0x261A, 138377 }, - { 0x261B, 138368 }, - { 0x261C, 138380 }, - { 0x261D, 138371 }, - { 0x261E, 138374 }, - { 0x261F, 138365 }, - { 0x2620, 143496 }, - { 0x2621, 78664 }, - { 0x2622, 80361 }, - { 0x2623, 78659 }, - { 0x2624, 4637 }, - { 0x2625, 4634 }, - { 0x2626, 54686 }, - { 0x2627, 68859 }, - { 0x2628, 143941 }, - { 0x2629, 144864 }, - { 0x262A, 17343 }, - { 0x262B, 15923 }, - { 0x262C, 38505 }, - { 0x262D, 38509 }, - { 0x262E, 38513 }, - { 0x262F, 38483 }, - { 0x2630, 38488 }, - { 0x2631, 38501 }, - { 0x2632, 38497 }, - { 0x2633, 12262 }, - { 0x2634, 12258 }, - { 0x2635, 38478 }, - { 0x2636, 63843 }, - { 0x2637, 128261 }, - { 0x2638, 127650 }, - { 0x2639, 54936 }, - { 0x263A, 105494 }, - { 0x263B, 105518 }, - { 0x263C, 133143 }, - { 0x263D, 143536 }, - { 0x263E, 15094 }, - { 0x263F, 15101 }, - { 0x2640, 15088 }, - { 0x2641, 105513 }, - { 0x2642, 132212 }, - { 0x2643, 105504 }, - { 0x2644, 105487 }, - { 0x2645, 105510 }, - { 0x2646, 105491 }, - { 0x2647, 105498 }, - { 0x2648, 105501 }, - { 0x2649, 14211 }, - { 0x264A, 28421 }, - { 0x264B, 64 }, - { 0x264C, 56 }, - { 0x264D, 60 }, - { 0x264E, 16635 }, - { 0x264F, 16656 }, - { 0x2650, 16641 }, - { 0x2651, 16625 }, - { 0x2652, 16646 }, - { 0x2653, 16651 }, - { 0x2654, 16630 }, - { 0x2655, 38431 }, - { 0x2656, 38426 }, - { 0x2657, 38441 }, - { 0x2658, 38436 }, - { 0x2659, 16609 }, - { 0x265A, 16615 }, - { 0x265B, 69007 }, - { 0x265C, 144840 }, - { 0x265D, 144845 }, - { 0x265E, 133077 }, - { 0x265F, 41476 }, - { 0x2660, 144819 }, - { 0x2661, 144825 }, - { 0x2662, 72231 }, - { 0x2663, 144831 }, - { 0x2664, 71892 }, - { 0x2665, 16621 }, - { 0x2666, 38422 }, - { 0x2667, 144836 }, - { 0x2668, 105524 }, - { 0x2669, 127699 }, - { 0x266A, 68 }, - { 0x266B, 137986 }, - { 0x266C, 138537 }, - { 0x266D, 42444 }, - { 0x266E, 42452 }, - { 0x266F, 138544 }, - { 0x2670, 138540 }, - { 0x2671, 42448 }, - { 0x2672, 42460 }, - { 0x2673, 138552 }, - { 0x2674, 42455 }, - { 0x2675, 138547 }, - { 0x2676, 42463 }, - { 0x2677, 138555 }, - { 0x2678, 53453 }, - { 0x2679, 53490 }, - { 0x267A, 54735 }, - { 0x267B, 54732 }, - { 0x267C, 53457 }, - { 0x267D, 74279 }, - { 0x267E, 74247 }, - { 0x267F, 54787 }, - { 0x2680, 54784 }, - { 0x2681, 12278 }, - { 0x2682, 12274 }, - { 0x2683, 80102 }, - { 0x2684, 80105 }, - { 0x2685, 74272 }, - { 0x2686, 74294 }, - { 0x2687, 74262 }, - { 0x2688, 74303 }, - { 0x2689, 74267 }, - { 0x268A, 74284 }, - { 0x268B, 74299 }, - { 0x268C, 74289 }, - { 0x268D, 41280 }, - { 0x268E, 74252 }, - { 0x268F, 74257 }, - { 0x2690, 52 }, - { 0x2691, 38 }, - { 0x2692, 54871 }, - { 0x2693, 125350 }, - { 0x2694, 68902 }, - { 0x2695, 68909 }, - { 0x2696, 42398 }, - { 0x2697, 42403 }, - { 0x2698, 79623 }, - { 0x2699, 117871 }, - { 0x269A, 54916 }, - { 0x269B, 44202 }, - { 0x269C, 143569 }, - { 0x269D, 54896 }, - { 0x269E, 16662 }, - { 0x269F, 54901 }, - { 0x26A0, 54694 }, - { 0x26A1, 12270 }, - { 0x26A2, 42370 }, - { 0x26A3, 54876 }, - { 0x26A4, 130322 }, - { 0x26A5, 126203 }, - { 0x26A6, 138465 }, - { 0x26A7, 126207 }, - { 0x26A8, 138469 }, - { 0x26A9, 126134 }, - { 0x26AA, 138396 }, - { 0x26AB, 126156 }, - { 0x26AC, 138418 }, - { 0x26AD, 126139 }, - { 0x26AE, 138401 }, - { 0x26AF, 126147 }, - { 0x26B0, 138409 }, - { 0x26B1, 126168 }, - { 0x26B2, 138433 }, - { 0x26B3, 126178 }, - { 0x26B4, 138440 }, - { 0x26B5, 126174 }, - { 0x26B6, 138436 }, - { 0x26B7, 126235 }, - { 0x26B8, 138503 }, - { 0x26B9, 126212 }, - { 0x26BA, 138474 }, - { 0x26BB, 126217 }, - { 0x26BC, 138479 }, - { 0x26BD, 126241 }, - { 0x26BE, 138493 }, - { 0x26BF, 126222 }, - { 0x26C0, 138484 }, - { 0x26C1, 80064 }, - { 0x26C2, 80077 }, - { 0x26C3, 80069 }, - { 0x26C4, 80082 }, - { 0x26C5, 133155 }, - { 0x26C6, 133160 }, - { 0x26C7, 133165 }, - { 0x26C8, 133171 }, - { 0x26C9, 79605 }, - { 0x26CA, 79608 }, - { 0x26CB, 79611 }, - { 0x26CC, 79617 }, - { 0x26CD, 54721 }, - { 0x26CE, 54729 }, - { 0x26CF, 54724 }, - { 0x26D0, 138528 }, - { 0x26D1, 138514 }, - { 0x26D2, 126252 }, - { 0x26D3, 138517 }, - { 0x26D4, 126256 }, - { 0x26D5, 138521 }, - { 0x26D6, 80108 }, - { 0x26D7, 60545 }, - { 0x26D8, 80110 }, - { 0x26D9, 60547 }, - { 0x26DA, 54886 }, - { 0x26DB, 110287 }, - { 0x26DC, 110737 }, - { 0x26DD, 110281 }, - { 0x26DE, 110731 }, - { 0x26DF, 110277 }, - { 0x26E0, 110727 }, - { 0x26E1, 110261 }, - { 0x26E2, 110711 }, - { 0x26E3, 110272 }, - { 0x26E4, 110722 }, - { 0x26E5, 110266 }, - { 0x26E6, 110716 }, - { 0x26E7, 54801 }, - { 0x26E8, 54806 }, - { 0x26E9, 65659 }, - { 0x26EA, 110788 }, - { 0x26EB, 65662 }, - { 0x26EC, 110791 }, - { 0x26ED, 65667 }, - { 0x26EE, 110796 }, - { 0x26EF, 65623 }, - { 0x26F0, 110752 }, - { 0x26F1, 65654 }, - { 0x26F2, 110783 }, - { 0x26F3, 65643 }, - { 0x26F4, 110772 }, - { 0x26F5, 65648 }, - { 0x26F6, 110777 }, - { 0x26F7, 65637 }, - { 0x26F8, 110766 }, - { 0x26F9, 65289 }, - { 0x26FA, 65458 }, - { 0x26FB, 53464 }, - { 0x26FC, 53481 }, - { 0x26FD, 53466 }, - { 0x26FE, 53483 }, - { 0x26FF, 65675 }, - { 0x2700, 110801 }, - { 0x2701, 65672 }, - { 0x2702, 110804 }, - { 0x2703, 110819 }, - { 0x2704, 110811 }, - { 0x2705, 73176 }, - { 0x2706, 127644 }, - { 0x2707, 137710 }, - { 0x2708, 73283 }, - { 0x2709, 132099 }, - { 0x270A, 41241 }, - { 0x270B, 41233 }, - { 0x270C, 41210 }, - { 0x270D, 144524 }, - { 0x270E, 111293 }, - { 0x270F, 54813 }, - { 0x2710, 111288 }, - { 0x2711, 54818 }, - { 0x2712, 15280 }, - { 0x2713, 41236 }, - { 0x2714, 41213 }, - { 0x2715, 41218 }, - { 0x2716, 54678 }, - { 0x2717, 54672 }, - { 0x2718, 54738 }, - { 0x2719, 110549 }, - { 0x271A, 13839 }, - { 0x271B, 111377 }, - { 0x271C, 111382 }, - { 0x271D, 13892 }, - { 0x271E, 109856 }, - { 0x271F, 109852 }, - { 0x2720, 68893 }, - { 0x2721, 68882 }, - { 0x2722, 68861 }, - { 0x2723, 68870 }, - { 0x2724, 68873 }, - { 0x2725, 133177 }, - { 0x2726, 133183 }, - { 0x2727, 68876 }, - { 0x2728, 28786 }, - { 0x2729, 54793 }, - { 0x272A, 43872 }, - { 0x272B, 38493 }, - { 0x272C, 38585 }, - { 0x272D, 38668 }, - { 0x272E, 41532 }, - { 0x272F, 41591 }, - { 0x2730, 14819 }, - { 0x2731, 125789 }, - { 0x2732, 82686 }, - { 0x2733, 124163 }, - { 0x2734, 38581 }, - { 0x2735, 38664 }, - { 0x2736, 41528 }, - { 0x2737, 41587 }, - { 0x2738, 14815 }, - { 0x2739, 534 }, - { 0x273A, 132292 }, - { 0x273B, 132287 }, - { 0x273C, 125656 }, - { 0x273D, 125651 }, - { 0x273E, 65314 }, - { 0x273F, 65373 }, - { 0x2740, 65366 }, - { 0x2741, 65324 }, - { 0x2742, 72804 }, - { 0x2743, 72809 }, - { 0x2744, 72799 }, - { 0x2745, 72814 }, - { 0x2746, 54662 }, - { 0x2747, 21275 }, - { 0x2748, 43613 }, - { 0x2749, 21049 }, - { 0x274A, 43406 }, - { 0x274B, 21547 }, - { 0x274C, 43858 }, - { 0x274D, 43829 }, - { 0x274E, 21510 }, - { 0x274F, 131680 }, - { 0x2750, 21244 }, - { 0x2751, 21429 }, - { 0x2752, 43712 }, - { 0x2753, 21432 }, - { 0x2754, 43715 }, - { 0x2755, 21312 }, - { 0x2756, 21315 }, - { 0x2757, 43645 }, - { 0x2758, 21593 }, - { 0x2759, 43898 }, - { 0x275A, 21563 }, - { 0x275B, 43875 }, - { 0x275C, 14742 }, - { 0x275D, 42361 }, - { 0x275E, 14747 }, - { 0x275F, 15325 }, - { 0x2760, 126009 }, - { 0x2761, 125996 }, - { 0x2762, 125969 }, - { 0x2763, 126015 }, - { 0x2764, 125711 }, - { 0x2765, 125686 }, - { 0x2766, 125678 }, - { 0x2767, 125974 }, - { 0x2768, 125988 }, - { 0x2769, 125979 }, - { 0x276A, 125777 }, - { 0x276B, 17515 }, - { 0x276C, 54906 }, - { 0x276D, 78642 }, - { 0x276E, 125770 }, - { 0x276F, 132431 }, - { 0x2770, 132427 }, - { 0x2771, 125958 }, - { 0x2772, 132614 }, - { 0x2773, 78648 }, - { 0x2774, 132416 }, - { 0x2775, 42408 }, - { 0x2776, 125758 }, - { 0x2777, 125764 }, - { 0x2778, 132410 }, - { 0x2779, 124371 }, - { 0x277A, 41244 }, - { 0x277B, 41254 }, - { 0x277C, 43702 }, - { 0x277D, 21306 }, - { 0x277E, 43639 }, - { 0x277F, 21687 }, - { 0x2780, 43961 }, - { 0x2781, 26694 }, - { 0x2782, 26610 }, - { 0x2783, 26790 }, - { 0x2784, 26788 }, - { 0x2785, 26858 }, - { 0x2786, 80090 }, - { 0x2787, 133130 }, - { 0x2788, 80096 }, - { 0x2789, 133136 }, - { 0x278A, 13453 }, - { 0x278B, 41225 }, - { 0x278C, 126048 }, - { 0x278D, 82860 }, - { 0x278E, 132700 }, - { 0x278F, 124295 }, - { 0x2790, 14848 }, - { 0x2791, 550 }, - { 0x2792, 38693 }, - { 0x2793, 38610 }, - { 0x2794, 41557 }, - { 0x2795, 41616 }, - { 0x2796, 126122 }, - { 0x2797, 82928 }, - { 0x2798, 132774 }, - { 0x2799, 124363 }, - { 0x279A, 116239 }, - { 0x279B, 143548 }, - { 0x279C, 126051 }, - { 0x279D, 82863 }, - { 0x279E, 132703 }, - { 0x279F, 124298 }, - { 0x27A0, 38697 }, - { 0x27A1, 38614 }, - { 0x27A2, 41561 }, - { 0x27A3, 41620 }, - { 0x27A4, 126103 }, - { 0x27A5, 82901 }, - { 0x27A6, 132755 }, - { 0x27A7, 124336 }, - { 0x27A8, 131640 }, - { 0x27A9, 111325 }, - { 0x27AA, 126056 }, - { 0x27AB, 82920 }, - { 0x27AC, 132708 }, - { 0x27AD, 124355 }, - { 0x27AE, 126126 }, - { 0x27AF, 82932 }, - { 0x27B0, 132778 }, - { 0x27B1, 124367 }, - { 0x27B2, 125792 }, - { 0x27B3, 82689 }, - { 0x27B4, 132438 }, - { 0x27B5, 124171 }, - { 0x27B6, 143553 }, - { 0x27B7, 143558 }, - { 0x27B8, 143543 }, - { 0x27B9, 143538 }, - { 0x27BA, 64785 }, - { 0x27BB, 64787 }, - { 0x27BC, 77642 }, - { 0x27BD, 77644 }, - { 0x27BE, 14121 }, - { 0x27BF, 132435 }, - { 0x27C0, 65916 }, - { 0x27C1, 81366 }, - { 0x27C2, 81385 }, - { 0x27C3, 81375 }, - { 0x27C4, 81380 }, - { 0x27C5, 21578 }, - { 0x27C6, 21535 }, - { 0x27C7, 21605 }, - { 0x27C8, 21569 }, - { 0x27C9, 124309 }, - { 0x27CA, 124316 }, - { 0x27CB, 82874 }, - { 0x27CC, 82881 }, - { 0x27CD, 126069 }, - { 0x27CE, 132721 }, - { 0x27CF, 126076 }, - { 0x27D0, 132728 }, - { 0x27D1, 21376 }, - { 0x27D2, 21382 }, - { 0x27D3, 21364 }, - { 0x27D4, 21370 }, - { 0x27D5, 21388 }, - { 0x27D6, 21400 }, - { 0x27D7, 21394 }, - { 0x27D8, 21406 }, - { 0x27D9, 64800 }, - { 0x27DA, 64804 }, - { 0x27DB, 64792 }, - { 0x27DC, 64796 }, - { 0x27DD, 64808 }, - { 0x27DE, 64816 }, - { 0x27DF, 64812 }, - { 0x27E0, 64820 }, - { 0x27E1, 82730 }, - { 0x27E2, 574 }, - { 0x27E3, 134491 }, - { 0x27E4, 134486 }, - { 0x27E5, 134483 }, - { 0x27E6, 52358 }, - { 0x27E7, 71191 }, - { 0x27E8, 71202 }, - { 0x27E9, 21483 }, - { 0x27EA, 21505 }, - { 0x27EB, 68933 }, - { 0x27EC, 131683 }, - { 0x27ED, 21517 }, - { 0x27EE, 21439 }, - { 0x27EF, 21448 }, - { 0x27F0, 21457 }, - { 0x27F1, 21466 }, - { 0x27F2, 77470 }, - { 0x27F3, 12087 }, - { 0x27F4, 52416 }, - { 0x27F5, 36345 }, - { 0x27F6, 78688 }, - { 0x27F7, 43375 }, - { 0x27F8, 78694 }, - { 0x27F9, 65582 }, - { 0x27FA, 137712 }, - { 0x27FB, 26543 }, - { 0x27FC, 40255 }, - { 0x27FD, 40264 }, - { 0x27FE, 40261 }, - { 0x27FF, 40258 }, - { 0x2800, 133096 }, - { 0x2801, 132211 }, - { 0x2802, 69883 }, - { 0x2803, 57547 }, - { 0x2804, 64564 }, - { 0x2805, 63855 }, - { 0x2806, 43401 }, - { 0x2807, 21488 }, - { 0x2808, 17454 }, - { 0x2809, 54264 }, - { 0x280A, 26547 }, - { 0x280B, 17568 }, - { 0x280C, 60543 }, - { 0x280D, 69882 }, - { 0x280E, 69873 }, - { 0x280F, 111708 }, - { 0x2810, 110244 }, - { 0x2811, 14635 }, - { 0x2812, 40334 }, - { 0x2813, 16985 }, - { 0x2814, 16990 }, - { 0x2815, 126003 }, - { 0x2816, 82851 }, - { 0x2817, 132659 }, - { 0x2818, 124286 }, - { 0x2819, 13913 }, - { 0x281A, 13916 }, - { 0x281B, 41207 }, - { 0x281C, 78755 }, - { 0x281D, 78735 }, - { 0x281E, 78743 }, - { 0x281F, 78739 }, - { 0x2820, 78747 }, - { 0x2821, 78751 }, - { 0x2822, 54891 }, - { 0x2823, 69004 }, - { 0x2824, 128187 }, - { 0x2825, 73010 }, - { 0x2826, 64512 }, - { 0x2827, 110533 }, - { 0x2828, 143691 }, - { 0x2829, 130551 }, - { 0x282A, 130580 }, - { 0x282B, 130604 }, - { 0x282C, 130685 }, - { 0x282D, 130620 }, - { 0x282E, 130656 }, - { 0x282F, 130727 }, - { 0x2830, 130624 }, - { 0x2831, 130676 }, - { 0x2832, 130592 }, - { 0x2833, 130689 }, - { 0x2834, 130535 }, - { 0x2835, 130664 }, - { 0x2836, 130596 }, - { 0x2837, 130710 }, - { 0x2838, 130714 }, - { 0x2839, 130632 }, - { 0x283A, 130560 }, - { 0x283B, 130668 }, - { 0x283C, 130636 }, - { 0x283D, 130640 }, - { 0x283E, 130672 }, - { 0x283F, 130576 }, - { 0x2840, 130628 }, - { 0x2841, 130588 }, - { 0x2842, 130564 }, - { 0x2843, 130539 }, - { 0x2844, 130600 }, - { 0x2845, 130572 }, - { 0x2846, 130660 }, - { 0x2847, 130568 }, - { 0x2848, 130616 }, - { 0x2849, 130612 }, - { 0x284A, 130608 }, - { 0x284B, 130722 }, - { 0x284C, 130547 }, - { 0x284D, 130644 }, - { 0x284E, 130649 }, - { 0x284F, 130543 }, - { 0x2850, 130700 }, - { 0x2851, 130555 }, - { 0x2852, 130694 }, - { 0x2853, 130584 }, - { 0x2854, 130706 }, - { 0x2855, 130718 }, - { 0x2856, 130736 }, - { 0x2857, 130731 }, - { 0x2858, 130680 }, - { 0x2859, 130345 }, - { 0x285A, 130374 }, - { 0x285B, 130398 }, - { 0x285C, 130479 }, - { 0x285D, 130414 }, - { 0x285E, 130450 }, - { 0x285F, 130521 }, - { 0x2860, 130418 }, - { 0x2861, 130470 }, - { 0x2862, 130386 }, - { 0x2863, 130483 }, - { 0x2864, 130329 }, - { 0x2865, 130458 }, - { 0x2866, 130390 }, - { 0x2867, 130504 }, - { 0x2868, 130508 }, - { 0x2869, 130426 }, - { 0x286A, 130354 }, - { 0x286B, 130462 }, - { 0x286C, 130430 }, - { 0x286D, 130434 }, - { 0x286E, 130466 }, - { 0x286F, 130370 }, - { 0x2870, 130422 }, - { 0x2871, 130382 }, - { 0x2872, 130358 }, - { 0x2873, 130333 }, - { 0x2874, 130394 }, - { 0x2875, 130366 }, - { 0x2876, 130454 }, - { 0x2877, 130362 }, - { 0x2878, 130410 }, - { 0x2879, 130406 }, - { 0x287A, 130402 }, - { 0x287B, 130516 }, - { 0x287C, 130341 }, - { 0x287D, 130438 }, - { 0x287E, 130443 }, - { 0x287F, 130337 }, - { 0x2880, 130494 }, - { 0x2881, 130349 }, - { 0x2882, 130488 }, - { 0x2883, 130378 }, - { 0x2884, 130500 }, - { 0x2885, 130512 }, - { 0x2886, 130530 }, - { 0x2887, 130525 }, - { 0x2888, 130474 }, - { 0x2889, 34428 }, - { 0x288A, 30001 }, - { 0x288B, 34442 }, - { 0x288C, 34909 }, - { 0x288D, 34989 }, - { 0x288E, 28955 }, - { 0x288F, 31063 }, - { 0x2890, 34131 }, - { 0x2891, 29675 }, - { 0x2892, 34356 }, - { 0x2893, 29922 }, - { 0x2894, 35699 }, - { 0x2895, 31694 }, - { 0x2896, 35909 }, - { 0x2897, 34486 }, - { 0x2898, 35998 }, - { 0x2899, 36033 }, - { 0x289A, 31380 }, - { 0x289B, 35510 }, - { 0x289C, 31425 }, - { 0x289D, 31368 }, - { 0x289E, 35854 }, - { 0x289F, 32104 }, - { 0x28A0, 32904 }, - { 0x28A1, 29347 }, - { 0x28A2, 32556 }, - { 0x28A3, 30316 }, - { 0x28A4, 33232 }, - { 0x28A5, 36223 }, - { 0x28A6, 108421 }, - { 0x28A7, 35124 }, - { 0x28A8, 35679 }, - { 0x28A9, 54106 }, - { 0x28AA, 53798 }, - { 0x28AB, 54134 }, - { 0x28AC, 53826 }, - { 0x28AD, 54146 }, - { 0x28AE, 53838 }, - { 0x28AF, 54142 }, - { 0x28B0, 53834 }, - { 0x28B1, 53984 }, - { 0x28B2, 53676 }, - { 0x28B3, 54098 }, - { 0x28B4, 53790 }, - { 0x28B5, 54138 }, - { 0x28B6, 53830 }, - { 0x28B7, 54110 }, - { 0x28B8, 53802 }, - { 0x28B9, 54170 }, - { 0x28BA, 53862 }, - { 0x28BB, 54150 }, - { 0x28BC, 53842 }, - { 0x28BD, 54118 }, - { 0x28BE, 53810 }, - { 0x28BF, 54154 }, - { 0x28C0, 53846 }, - { 0x28C1, 53960 }, - { 0x28C2, 53652 }, - { 0x28C3, 53964 }, - { 0x28C4, 53656 }, - { 0x28C5, 53996 }, - { 0x28C6, 53688 }, - { 0x28C7, 53952 }, - { 0x28C8, 53644 }, - { 0x28C9, 53968 }, - { 0x28CA, 53660 }, - { 0x28CB, 53972 }, - { 0x28CC, 53664 }, - { 0x28CD, 54130 }, - { 0x28CE, 53822 }, - { 0x28CF, 54102 }, - { 0x28D0, 53794 }, - { 0x28D1, 53976 }, - { 0x28D2, 53668 }, - { 0x28D3, 53956 }, - { 0x28D4, 53648 }, - { 0x28D5, 53992 }, - { 0x28D6, 53684 }, - { 0x28D7, 54094 }, - { 0x28D8, 53786 }, - { 0x28D9, 54090 }, - { 0x28DA, 53782 }, - { 0x28DB, 54199 }, - { 0x28DC, 53891 }, - { 0x28DD, 54006 }, - { 0x28DE, 53698 }, - { 0x28DF, 54219 }, - { 0x28E0, 53911 }, - { 0x28E1, 54209 }, - { 0x28E2, 53901 }, - { 0x28E3, 54194 }, - { 0x28E4, 53886 }, - { 0x28E5, 54214 }, - { 0x28E6, 53906 }, - { 0x28E7, 54036 }, - { 0x28E8, 53728 }, - { 0x28E9, 54158 }, - { 0x28EA, 53850 }, - { 0x28EB, 54174 }, - { 0x28EC, 53866 }, - { 0x28ED, 54048 }, - { 0x28EE, 53740 }, - { 0x28EF, 54018 }, - { 0x28F0, 53710 }, - { 0x28F1, 54179 }, - { 0x28F2, 53871 }, - { 0x28F3, 54204 }, - { 0x28F4, 53896 }, - { 0x28F5, 54042 }, - { 0x28F6, 53734 }, - { 0x28F7, 54000 }, - { 0x28F8, 53692 }, - { 0x28F9, 54189 }, - { 0x28FA, 53881 }, - { 0x28FB, 54030 }, - { 0x28FC, 53722 }, - { 0x28FD, 54024 }, - { 0x28FE, 53716 }, - { 0x28FF, 54060 }, - { 0x2900, 53752 }, - { 0x2901, 54012 }, - { 0x2902, 53704 }, - { 0x2903, 54054 }, - { 0x2904, 53746 }, - { 0x2905, 54084 }, - { 0x2906, 53776 }, - { 0x2907, 54066 }, - { 0x2908, 53758 }, - { 0x2909, 54072 }, - { 0x290A, 53764 }, - { 0x290B, 54078 }, - { 0x290C, 53770 }, - { 0x290D, 53934 }, - { 0x290E, 53926 }, - { 0x290F, 53930 }, - { 0x2910, 53949 }, - { 0x2911, 53941 }, - { 0x2912, 53937 }, - { 0x2913, 53945 }, - { 0x2914, 54224 }, - { 0x2915, 53916 }, - { 0x2916, 54229 }, - { 0x2917, 53921 }, - { 0x2918, 54238 }, - { 0x2919, 54242 }, - { 0x291A, 54246 }, - { 0x291B, 54184 }, - { 0x291C, 53876 }, - { 0x291D, 53498 }, - { 0x291E, 53508 }, - { 0x291F, 53514 }, - { 0x2920, 53503 }, - { 0x2921, 54234 }, - { 0x2922, 53520 }, - { 0x2923, 54250 }, - { 0x2924, 103478 }, - { 0x2925, 103514 }, - { 0x2926, 103530 }, - { 0x2927, 103526 }, - { 0x2928, 103482 }, - { 0x2929, 103594 }, - { 0x292A, 103602 }, - { 0x292B, 103586 }, - { 0x292C, 103490 }, - { 0x292D, 103554 }, - { 0x292E, 103558 }, - { 0x292F, 103562 }, - { 0x2930, 103566 }, - { 0x2931, 103494 }, - { 0x2932, 103570 }, - { 0x2933, 103634 }, - { 0x2934, 103578 }, - { 0x2935, 103582 }, - { 0x2936, 103590 }, - { 0x2937, 103498 }, - { 0x2938, 103626 }, - { 0x2939, 103622 }, - { 0x293A, 103614 }, - { 0x293B, 103574 }, - { 0x293C, 103630 }, - { 0x293D, 103610 }, - { 0x293E, 103518 }, - { 0x293F, 103550 }, - { 0x2940, 103522 }, - { 0x2941, 103606 }, - { 0x2942, 103598 }, - { 0x2943, 103618 }, - { 0x2944, 103534 }, - { 0x2945, 103486 }, - { 0x2946, 103542 }, - { 0x2947, 103502 }, - { 0x2948, 103538 }, - { 0x2949, 103546 }, - { 0x294A, 103506 }, - { 0x294B, 103510 }, - { 0x294C, 110890 }, - { 0x294D, 110908 }, - { 0x294E, 110972 }, - { 0x294F, 110917 }, - { 0x2950, 111017 }, - { 0x2951, 111028 }, - { 0x2952, 110923 }, - { 0x2953, 110911 }, - { 0x2954, 110981 }, - { 0x2955, 110978 }, - { 0x2956, 111014 }, - { 0x2957, 110965 }, - { 0x2958, 110914 }, - { 0x2959, 110926 }, - { 0x295A, 111037 }, - { 0x295B, 111020 }, - { 0x295C, 110920 }, - { 0x295D, 111023 }, - { 0x295E, 111033 }, - { 0x295F, 110987 }, - { 0x2960, 110905 }, - { 0x2961, 110990 }, - { 0x2962, 111053 }, - { 0x2963, 110941 }, - { 0x2964, 111041 }, - { 0x2965, 110896 }, - { 0x2966, 111008 }, - { 0x2967, 111065 }, - { 0x2968, 111061 }, - { 0x2969, 110929 }, - { 0x296A, 110932 }, - { 0x296B, 110935 }, - { 0x296C, 111049 }, - { 0x296D, 111057 }, - { 0x296E, 110938 }, - { 0x296F, 110902 }, - { 0x2970, 110944 }, - { 0x2971, 110993 }, - { 0x2972, 110984 }, - { 0x2973, 111045 }, - { 0x2974, 110968 }, - { 0x2975, 110947 }, - { 0x2976, 110999 }, - { 0x2977, 110996 }, - { 0x2978, 110950 }, - { 0x2979, 111002 }, - { 0x297A, 110975 }, - { 0x297B, 111005 }, - { 0x297C, 110953 }, - { 0x297D, 110956 }, - { 0x297E, 110959 }, - { 0x297F, 110962 }, - { 0x2980, 111069 }, - { 0x2981, 111011 }, - { 0x2982, 110893 }, - { 0x2983, 110899 }, - { 0x2984, 111073 }, - { 0x2985, 111081 }, - { 0x2986, 111078 }, - { 0x2987, 102490 }, - { 0x2988, 102502 }, - { 0x2989, 102631 }, - { 0x298A, 102661 }, - { 0x298B, 103078 }, - { 0x298C, 102241 }, - { 0x298D, 102718 }, - { 0x298E, 102289 }, - { 0x298F, 102523 }, - { 0x2990, 103024 }, - { 0x2991, 103334 }, - { 0x2992, 102835 }, - { 0x2993, 102316 }, - { 0x2994, 102916 }, - { 0x2995, 102430 }, - { 0x2996, 103105 }, - { 0x2997, 102892 }, - { 0x2998, 103036 }, - { 0x2999, 102565 }, - { 0x299A, 102937 }, - { 0x299B, 102943 }, - { 0x299C, 103198 }, - { 0x299D, 102940 }, - { 0x299E, 102664 }, - { 0x299F, 102676 }, - { 0x29A0, 102670 }, - { 0x29A1, 103084 }, - { 0x29A2, 103087 }, - { 0x29A3, 102667 }, - { 0x29A4, 102673 }, - { 0x29A5, 102256 }, - { 0x29A6, 102268 }, - { 0x29A7, 102262 }, - { 0x29A8, 102865 }, - { 0x29A9, 102868 }, - { 0x29AA, 102259 }, - { 0x29AB, 102265 }, - { 0x29AC, 102841 }, - { 0x29AD, 102853 }, - { 0x29AE, 102847 }, - { 0x29AF, 103162 }, - { 0x29B0, 103165 }, - { 0x29B1, 102844 }, - { 0x29B2, 102850 }, - { 0x29B3, 102871 }, - { 0x29B4, 102883 }, - { 0x29B5, 102877 }, - { 0x29B6, 103168 }, - { 0x29B7, 103171 }, - { 0x29B8, 102874 }, - { 0x29B9, 102880 }, - { 0x29BA, 102610 }, - { 0x29BB, 102622 }, - { 0x29BC, 102616 }, - { 0x29BD, 103066 }, - { 0x29BE, 103069 }, - { 0x29BF, 102613 }, - { 0x29C0, 102619 }, - { 0x29C1, 102469 }, - { 0x29C2, 102481 }, - { 0x29C3, 102475 }, - { 0x29C4, 103009 }, - { 0x29C5, 103012 }, - { 0x29C6, 102472 }, - { 0x29C7, 102478 }, - { 0x29C8, 102790 }, - { 0x29C9, 102802 }, - { 0x29CA, 102796 }, - { 0x29CB, 103147 }, - { 0x29CC, 103150 }, - { 0x29CD, 102793 }, - { 0x29CE, 102799 }, - { 0x29CF, 102385 }, - { 0x29D0, 102397 }, - { 0x29D1, 102391 }, - { 0x29D2, 102952 }, - { 0x29D3, 102955 }, - { 0x29D4, 102388 }, - { 0x29D5, 102394 }, - { 0x29D6, 117255 }, - { 0x29D7, 117307 }, - { 0x29D8, 117332 }, - { 0x29D9, 117259 }, - { 0x29DA, 117348 }, - { 0x29DB, 117319 }, - { 0x29DC, 117295 }, - { 0x29DD, 117267 }, - { 0x29DE, 117271 }, - { 0x29DF, 117275 }, - { 0x29E0, 117247 }, - { 0x29E1, 117299 }, - { 0x29E2, 117279 }, - { 0x29E3, 117283 }, - { 0x29E4, 117303 }, - { 0x29E5, 117287 }, - { 0x29E6, 117340 }, - { 0x29E7, 117328 }, - { 0x29E8, 117336 }, - { 0x29E9, 117382 }, - { 0x29EA, 117352 }, - { 0x29EB, 117374 }, - { 0x29EC, 117239 }, - { 0x29ED, 117291 }, - { 0x29EE, 117370 }, - { 0x29EF, 117407 }, - { 0x29F0, 117344 }, - { 0x29F1, 117315 }, - { 0x29F2, 117391 }, - { 0x29F3, 117386 }, - { 0x29F4, 117323 }, - { 0x29F5, 117401 }, - { 0x29F6, 40432 }, - { 0x29F7, 40414 }, - { 0x29F8, 15080 }, - { 0x29F9, 40722 }, - { 0x29FA, 14917 }, - { 0x29FB, 40540 }, - { 0x29FC, 64660 }, - { 0x29FD, 64654 }, - { 0x29FE, 54666 }, - { 0x29FF, 15083 }, - { 0x2A00, 40725 }, - { 0x2A01, 64658 }, - { 0x2A02, 14941 }, - { 0x2A03, 40570 }, - { 0x2A04, 124377 }, - { 0x2A05, 134494 }, - { 0x2A06, 54972 }, - { 0x2A07, 110554 }, - { 0x2A08, 138535 }, - { 0x2A09, 54660 }, - { 0x2A0A, 124192 }, - { 0x2A0B, 82754 }, - { 0x2A0C, 54669 }, - { 0x2A0D, 54790 }, - { 0x2A0E, 105551 }, - { 0x2A0F, 16590 }, - { 0x2A10, 57549 }, - { 0x2A11, 42392 }, - { 0x2A12, 14580 }, - { 0x2A13, 40308 }, - { 0x2A14, 42384 }, - { 0x2A15, 42388 }, - { 0x2A16, 15038 }, - { 0x2A17, 40676 }, - { 0x2A18, 12155 }, - { 0x2A19, 12187 }, - { 0x2A1A, 52486 }, - { 0x2A1B, 52507 }, - { 0x2A1C, 15025 }, - { 0x2A1D, 40661 }, - { 0x2A1E, 14933 }, - { 0x2A1F, 40562 }, - { 0x2A20, 12233 }, - { 0x2A21, 10166 }, - { 0x2A22, 80928 }, - { 0x2A23, 14092 }, - { 0x2A24, 110585 }, - { 0x2A25, 111400 }, - { 0x2A26, 16686 }, - { 0x2A27, 17550 }, - { 0x2A28, 68936 }, - { 0x2A29, 64623 }, - { 0x2A2A, 64647 }, - { 0x2A2B, 68983 }, - { 0x2A2C, 54271 }, - { 0x2A2D, 54275 }, - { 0x2A2E, 68976 }, - { 0x2A2F, 12095 }, - { 0x2A30, 69002 }, - { 0x2A31, 110888 }, - { 0x2A32, 143497 }, - { 0x2A33, 111322 }, - { 0x2A34, 69697 }, - { 0x2A35, 115953 }, - { 0x2A36, 54719 }, - { 0x2A37, 110526 }, - { 0x2A38, 54841 }, - { 0x2A39, 13818 }, - { 0x2A3A, 54833 }, - { 0x2A3B, 105526 }, - { 0x2A3C, 105529 }, - { 0x2A3D, 6948 }, - { 0x2A3E, 6950 }, - { 0x2A3F, 54796 }, - { 0x2A40, 54664 }, - { 0x2A41, 68868 }, - { 0x2A42, 106653 }, - { 0x2A43, 134495 }, - { 0x2A44, 78620 }, - { 0x2A45, 72252 }, - { 0x2A46, 22518 }, - { 0x2A47, 22513 }, - { 0x2A48, 111087 }, - { 0x2A49, 106658 }, - { 0x2A4A, 106655 }, - { 0x2A4B, 14982 }, - { 0x2A4C, 40611 }, - { 0x2A4D, 14976 }, - { 0x2A4E, 40605 }, - { 0x2A4F, 12083 }, - { 0x2A50, 12091 }, - { 0x2A51, 52412 }, - { 0x2A52, 52420 }, - { 0x2A53, 77683 }, - { 0x2A54, 6339 }, - { 0x2A55, 6246 }, - { 0x2A56, 6342 }, - { 0x2A57, 6346 }, - { 0x2A58, 6350 }, - { 0x2A59, 6336 }, - { 0x2A5A, 6082 }, - { 0x2A5B, 6313 }, - { 0x2A5C, 6275 }, - { 0x2A5D, 6279 }, - { 0x2A5E, 6374 }, - { 0x2A5F, 6213 }, - { 0x2A60, 6294 }, - { 0x2A61, 6298 }, - { 0x2A62, 6177 }, - { 0x2A63, 6181 }, - { 0x2A64, 6189 }, - { 0x2A65, 6185 }, - { 0x2A66, 6302 }, - { 0x2A67, 6362 }, - { 0x2A68, 6305 }, - { 0x2A69, 6309 }, - { 0x2A6A, 6267 }, - { 0x2A6B, 6271 }, - { 0x2A6C, 6165 }, - { 0x2A6D, 6139 }, - { 0x2A6E, 6243 }, - { 0x2A6F, 6142 }, - { 0x2A70, 6207 }, - { 0x2A71, 6249 }, - { 0x2A72, 6333 }, - { 0x2A73, 6371 }, - { 0x2A74, 6319 }, - { 0x2A75, 6323 }, - { 0x2A76, 6159 }, - { 0x2A77, 6128 }, - { 0x2A78, 6132 }, - { 0x2A79, 6377 }, - { 0x2A7A, 6085 }, - { 0x2A7B, 6088 }, - { 0x2A7C, 6174 }, - { 0x2A7D, 6148 }, - { 0x2A7E, 6106 }, - { 0x2A7F, 6354 }, - { 0x2A80, 6358 }, - { 0x2A81, 6327 }, - { 0x2A82, 6216 }, - { 0x2A83, 6451 }, - { 0x2A84, 6109 }, - { 0x2A85, 6113 }, - { 0x2A86, 6121 }, - { 0x2A87, 6117 }, - { 0x2A88, 6204 }, - { 0x2A89, 6291 }, - { 0x2A8A, 6136 }, - { 0x2A8B, 6103 }, - { 0x2A8C, 6125 }, - { 0x2A8D, 6235 }, - { 0x2A8E, 6239 }, - { 0x2A8F, 6201 }, - { 0x2A90, 6330 }, - { 0x2A91, 6255 }, - { 0x2A92, 6259 }, - { 0x2A93, 6263 }, - { 0x2A94, 6316 }, - { 0x2A95, 6368 }, - { 0x2A96, 6227 }, - { 0x2A97, 6231 }, - { 0x2A98, 6407 }, - { 0x2A99, 6383 }, - { 0x2A9A, 6171 }, - { 0x2A9B, 6475 }, - { 0x2A9C, 6463 }, - { 0x2A9D, 6162 }, - { 0x2A9E, 6415 }, - { 0x2A9F, 6387 }, - { 0x2AA0, 6219 }, - { 0x2AA1, 6223 }, - { 0x2AA2, 6156 }, - { 0x2AA3, 6435 }, - { 0x2AA4, 6193 }, - { 0x2AA5, 6197 }, - { 0x2AA6, 6443 }, - { 0x2AA7, 6431 }, - { 0x2AA8, 6283 }, - { 0x2AA9, 6287 }, - { 0x2AAA, 6210 }, - { 0x2AAB, 6145 }, - { 0x2AAC, 6479 }, - { 0x2AAD, 6439 }, - { 0x2AAE, 6455 }, - { 0x2AAF, 6403 }, - { 0x2AB0, 6091 }, - { 0x2AB1, 6095 }, - { 0x2AB2, 6099 }, - { 0x2AB3, 6399 }, - { 0x2AB4, 6168 }, - { 0x2AB5, 6459 }, - { 0x2AB6, 6153 }, - { 0x2AB7, 6252 }, - { 0x2AB8, 6423 }, - { 0x2AB9, 6411 }, - { 0x2ABA, 6447 }, - { 0x2ABB, 6391 }, - { 0x2ABC, 6395 }, - { 0x2ABD, 6427 }, - { 0x2ABE, 6488 }, - { 0x2ABF, 6419 }, - { 0x2AC0, 6492 }, - { 0x2AC1, 6467 }, - { 0x2AC2, 6496 }, - { 0x2AC3, 6471 }, - { 0x2AC4, 6365 }, - { 0x2AC5, 6500 }, - { 0x2AC6, 6484 }, - { 0x2AC7, 57847 }, - { 0x2AC8, 58015 }, - { 0x2AC9, 57805 }, - { 0x2ACA, 58206 }, - { 0x2ACB, 58327 }, - { 0x2ACC, 57985 }, - { 0x2ACD, 57877 }, - { 0x2ACE, 57832 }, - { 0x2ACF, 57835 }, - { 0x2AD0, 58009 }, - { 0x2AD1, 58138 }, - { 0x2AD2, 58135 }, - { 0x2AD3, 57934 }, - { 0x2AD4, 58126 }, - { 0x2AD5, 57826 }, - { 0x2AD6, 58242 }, - { 0x2AD7, 58034 }, - { 0x2AD8, 58165 }, - { 0x2AD9, 58177 }, - { 0x2ADA, 58099 }, - { 0x2ADB, 58227 }, - { 0x2ADC, 58180 }, - { 0x2ADD, 58308 }, - { 0x2ADE, 57874 }, - { 0x2ADF, 58427 }, - { 0x2AE0, 58053 }, - { 0x2AE1, 58120 }, - { 0x2AE2, 58394 }, - { 0x2AE3, 58102 }, - { 0x2AE4, 58174 }, - { 0x2AE5, 58424 }, - { 0x2AE6, 58132 }, - { 0x2AE7, 58397 }, - { 0x2AE8, 57780 }, - { 0x2AE9, 57783 }, - { 0x2AEA, 58376 }, - { 0x2AEB, 57793 }, - { 0x2AEC, 58263 }, - { 0x2AED, 58117 }, - { 0x2AEE, 58047 }, - { 0x2AEF, 57991 }, - { 0x2AF0, 58215 }, - { 0x2AF1, 58000 }, - { 0x2AF2, 58284 }, - { 0x2AF3, 58336 }, - { 0x2AF4, 58412 }, - { 0x2AF5, 58185 }, - { 0x2AF6, 58096 }, - { 0x2AF7, 58391 }, - { 0x2AF8, 58352 }, - { 0x2AF9, 57808 }, - { 0x2AFA, 58202 }, - { 0x2AFB, 58294 }, - { 0x2AFC, 58021 }, - { 0x2AFD, 57880 }, - { 0x2AFE, 58194 }, - { 0x2AFF, 57796 }, - { 0x2B00, 58218 }, - { 0x2B01, 58367 }, - { 0x2B02, 58065 }, - { 0x2B03, 58159 }, - { 0x2B04, 58382 }, - { 0x2B05, 57931 }, - { 0x2B06, 57976 }, - { 0x2B07, 58281 }, - { 0x2B08, 57853 }, - { 0x2B09, 58324 }, - { 0x2B0A, 58287 }, - { 0x2B0B, 57790 }, - { 0x2B0C, 58339 }, - { 0x2B0D, 57841 }, - { 0x2B0E, 57871 }, - { 0x2B0F, 57865 }, - { 0x2B10, 58028 }, - { 0x2B11, 58077 }, - { 0x2B12, 57997 }, - { 0x2B13, 58068 }, - { 0x2B14, 58129 }, - { 0x2B15, 58361 }, - { 0x2B16, 57776 }, - { 0x2B17, 58373 }, - { 0x2B18, 57823 }, - { 0x2B19, 57919 }, - { 0x2B1A, 58233 }, - { 0x2B1B, 58254 }, - { 0x2B1C, 57950 }, - { 0x2B1D, 57922 }, - { 0x2B1E, 58305 }, - { 0x2B1F, 58298 }, - { 0x2B20, 57971 }, - { 0x2B21, 58212 }, - { 0x2B22, 57947 }, - { 0x2B23, 57799 }, - { 0x2B24, 57802 }, - { 0x2B25, 58415 }, - { 0x2B26, 57994 }, - { 0x2B27, 58168 }, - { 0x2B28, 58074 }, - { 0x2B29, 58239 }, - { 0x2B2A, 58012 }, - { 0x2B2B, 57884 }, - { 0x2B2C, 58141 }, - { 0x2B2D, 57902 }, - { 0x2B2E, 58418 }, - { 0x2B2F, 58290 }, - { 0x2B30, 58260 }, - { 0x2B31, 58062 }, - { 0x2B32, 57928 }, - { 0x2B33, 57817 }, - { 0x2B34, 58224 }, - { 0x2B35, 58105 }, - { 0x2B36, 58236 }, - { 0x2B37, 58333 }, - { 0x2B38, 58251 }, - { 0x2B39, 58153 }, - { 0x2B3A, 57913 }, - { 0x2B3B, 58230 }, - { 0x2B3C, 58275 }, - { 0x2B3D, 58044 }, - { 0x2B3E, 58059 }, - { 0x2B3F, 57829 }, - { 0x2B40, 57838 }, - { 0x2B41, 58188 }, - { 0x2B42, 58379 }, - { 0x2B43, 57844 }, - { 0x2B44, 57787 }, - { 0x2B45, 58038 }, - { 0x2B46, 57811 }, - { 0x2B47, 58114 }, - { 0x2B48, 58025 }, - { 0x2B49, 58409 }, - { 0x2B4A, 58056 }, - { 0x2B4B, 58269 }, - { 0x2B4C, 58318 }, - { 0x2B4D, 58346 }, - { 0x2B4E, 58321 }, - { 0x2B4F, 57896 }, - { 0x2B50, 58421 }, - { 0x2B51, 58123 }, - { 0x2B52, 58156 }, - { 0x2B53, 58245 }, - { 0x2B54, 58312 }, - { 0x2B55, 58111 }, - { 0x2B56, 58083 }, - { 0x2B57, 58370 }, - { 0x2B58, 58087 }, - { 0x2B59, 57868 }, - { 0x2B5A, 57988 }, - { 0x2B5B, 58330 }, - { 0x2B5C, 58358 }, - { 0x2B5D, 57887 }, - { 0x2B5E, 57850 }, - { 0x2B5F, 58272 }, - { 0x2B60, 58191 }, - { 0x2B61, 57859 }, - { 0x2B62, 57862 }, - { 0x2B63, 57956 }, - { 0x2B64, 57899 }, - { 0x2B65, 57910 }, - { 0x2B66, 58278 }, - { 0x2B67, 58388 }, - { 0x2B68, 58080 }, - { 0x2B69, 57916 }, - { 0x2B6A, 58093 }, - { 0x2B6B, 58433 }, - { 0x2B6C, 58400 }, - { 0x2B6D, 57965 }, - { 0x2B6E, 58018 }, - { 0x2B6F, 57962 }, - { 0x2B70, 58171 }, - { 0x2B71, 58209 }, - { 0x2B72, 58197 }, - { 0x2B73, 58041 }, - { 0x2B74, 57893 }, - { 0x2B75, 58266 }, - { 0x2B76, 57944 }, - { 0x2B77, 58385 }, - { 0x2B78, 58342 }, - { 0x2B79, 58006 }, - { 0x2B7A, 58221 }, - { 0x2B7B, 58003 }, - { 0x2B7C, 58090 }, - { 0x2B7D, 57820 }, - { 0x2B7E, 57814 }, - { 0x2B7F, 57979 }, - { 0x2B80, 58406 }, - { 0x2B81, 58162 }, - { 0x2B82, 57907 }, - { 0x2B83, 58071 }, - { 0x2B84, 57968 }, - { 0x2B85, 58144 }, - { 0x2B86, 58436 }, - { 0x2B87, 58403 }, - { 0x2B88, 58150 }, - { 0x2B89, 57953 }, - { 0x2B8A, 57890 }, - { 0x2B8B, 58050 }, - { 0x2B8C, 57925 }, - { 0x2B8D, 58257 }, - { 0x2B8E, 57982 }, - { 0x2B8F, 58364 }, - { 0x2B90, 58315 }, - { 0x2B91, 58108 }, - { 0x2B92, 58430 }, - { 0x2B93, 57959 }, - { 0x2B94, 58349 }, - { 0x2B95, 57938 }, - { 0x2B96, 57856 }, - { 0x2B97, 58031 }, - { 0x2B98, 57941 }, - { 0x2B99, 58248 }, - { 0x2B9A, 58302 }, - { 0x2B9B, 58355 }, - { 0x2B9C, 58147 }, - { 0x2B9D, 133746 }, - { 0x2B9E, 133760 }, - { 0x2B9F, 133752 }, - { 0x2BA0, 133766 }, - { 0x2BA1, 133741 }, - { 0x2BA2, 133788 }, - { 0x2BA3, 133794 }, - { 0x2BA4, 133782 }, - { 0x2BA5, 133820 }, - { 0x2BA6, 133827 }, - { 0x2BA7, 133800 }, - { 0x2BA8, 133774 }, - { 0x2BA9, 133814 }, - { 0x2BAA, 133807 }, - { 0x2BAB, 133834 }, - { 0x2BAC, 133778 }, - { 0x2BAD, 133229 }, - { 0x2BAE, 133223 }, - { 0x2BAF, 133216 }, - { 0x2BB0, 22647 }, - { 0x2BB1, 105571 }, - { 0x2BB2, 133269 }, - { 0x2BB3, 133258 }, - { 0x2BB4, 133251 }, - { 0x2BB5, 14734 }, - { 0x2BB6, 40419 }, - { 0x2BB7, 14921 }, - { 0x2BB8, 40544 }, - { 0x2BB9, 14914 }, - { 0x2BBA, 40537 }, - { 0x2BBB, 14891 }, - { 0x2BBC, 40517 }, - { 0x2BBD, 14757 }, - { 0x2BBE, 40451 }, - { 0x2BBF, 64590 }, - { 0x2BC0, 14171 }, - { 0x2BC1, 15029 }, - { 0x2BC2, 40665 }, - { 0x2BC3, 14904 }, - { 0x2BC4, 40530 }, - { 0x2BC5, 14899 }, - { 0x2BC6, 40525 }, - { 0x2BC7, 14895 }, - { 0x2BC8, 40521 }, - { 0x2BC9, 17513 }, - { 0x2BCA, 110544 }, - { 0x2BCB, 54706 }, - { 0x2BCC, 6943 }, - { 0x2BCD, 64592 }, - { 0x2BCE, 104755 }, - { 0x2BCF, 104764 }, - { 0x2BD0, 104782 }, - { 0x2BD1, 104770 }, - { 0x2BD2, 104767 }, - { 0x2BD3, 104758 }, - { 0x2BD4, 104779 }, - { 0x2BD5, 104776 }, - { 0x2BD6, 104773 }, - { 0x2BD7, 133225 }, - { 0x2BD8, 133254 }, - { 0x2BD9, 133265 }, - { 0x2BDA, 133261 }, - { 0x2BDB, 55625 }, - { 0x2BDC, 55339 }, - { 0x2BDD, 17528 }, - { 0x2BDE, 111331 }, - { 0x2BDF, 111347 }, - { 0x2BE0, 111341 }, - { 0x2BE1, 111354 }, - { 0x2BE2, 111335 }, - { 0x2BE3, 71878 }, - { 0x2BE4, 133272 }, - { 0x2BE5, 104761 }, - { 0x2BE6, 104788 }, - { 0x2BE7, 104785 }, - { 0x2BE8, 111422 }, - { 0x2BE9, 15379 }, - { 0x2BEA, 16592 }, - { 0x2BEB, 133674 }, - { 0x2BEC, 133219 }, - { 0x2BED, 105260 }, - { 0x2BEE, 105038 }, - { 0x2BEF, 105268 }, - { 0x2BF0, 105044 }, - { 0x2BF1, 105276 }, - { 0x2BF2, 105053 }, - { 0x2BF3, 105264 }, - { 0x2BF4, 105041 }, - { 0x2BF5, 105272 }, - { 0x2BF6, 105050 }, - { 0x2BF7, 105116 }, - { 0x2BF8, 105086 }, - { 0x2BF9, 105122 }, - { 0x2BFA, 105092 }, - { 0x2BFB, 105128 }, - { 0x2BFC, 105098 }, - { 0x2BFD, 105119 }, - { 0x2BFE, 105089 }, - { 0x2BFF, 105125 }, - { 0x2C00, 105095 }, - { 0x2C01, 105191 }, - { 0x2C02, 105245 }, - { 0x2C03, 105197 }, - { 0x2C04, 105251 }, - { 0x2C05, 105203 }, - { 0x2C06, 105257 }, - { 0x2C07, 105194 }, - { 0x2C08, 105248 }, - { 0x2C09, 105200 }, - { 0x2C0A, 105254 }, - { 0x2C0B, 105206 }, - { 0x2C0C, 105071 }, - { 0x2C0D, 105212 }, - { 0x2C0E, 105077 }, - { 0x2C0F, 105292 }, - { 0x2C10, 105218 }, - { 0x2C11, 105083 }, - { 0x2C12, 105209 }, - { 0x2C13, 105074 }, - { 0x2C14, 105215 }, - { 0x2C15, 105080 }, - { 0x2C16, 105146 }, - { 0x2C17, 105152 }, - { 0x2C18, 105158 }, - { 0x2C19, 105149 }, - { 0x2C1A, 105155 }, - { 0x2C1B, 105101 }, - { 0x2C1C, 105056 }, - { 0x2C1D, 105161 }, - { 0x2C1E, 105107 }, - { 0x2C1F, 105062 }, - { 0x2C20, 105167 }, - { 0x2C21, 105113 }, - { 0x2C22, 105068 }, - { 0x2C23, 105173 }, - { 0x2C24, 105104 }, - { 0x2C25, 105059 }, - { 0x2C26, 105164 }, - { 0x2C27, 105110 }, - { 0x2C28, 105065 }, - { 0x2C29, 105170 }, - { 0x2C2A, 105131 }, - { 0x2C2B, 105137 }, - { 0x2C2C, 105143 }, - { 0x2C2D, 105134 }, - { 0x2C2E, 105140 }, - { 0x2C2F, 105312 }, - { 0x2C30, 105236 }, - { 0x2C31, 105320 }, - { 0x2C32, 105242 }, - { 0x2C33, 105316 }, - { 0x2C34, 105239 }, - { 0x2C35, 105176 }, - { 0x2C36, 105182 }, - { 0x2C37, 105188 }, - { 0x2C38, 105179 }, - { 0x2C39, 105185 }, - { 0x2C3A, 105296 }, - { 0x2C3B, 105224 }, - { 0x2C3C, 105230 }, - { 0x2C3D, 105227 }, - { 0x2C3E, 105233 }, - { 0x2C3F, 105047 }, - { 0x2C40, 105221 }, - { 0x2C41, 105280 }, - { 0x2C42, 105284 }, - { 0x2C43, 117861 }, - { 0x2C44, 117866 }, - { 0x2C45, 144924 }, - { 0x2C46, 144932 }, - { 0x2C47, 105339 }, - { 0x2C48, 105332 }, - { 0x2C49, 105336 }, - { 0x2C4A, 144921 }, - { 0x2C4B, 106183 }, - { 0x2C4C, 105949 }, - { 0x2C4D, 106191 }, - { 0x2C4E, 105955 }, - { 0x2C4F, 106203 }, - { 0x2C50, 105964 }, - { 0x2C51, 106187 }, - { 0x2C52, 105952 }, - { 0x2C53, 106199 }, - { 0x2C54, 105961 }, - { 0x2C55, 106027 }, - { 0x2C56, 105997 }, - { 0x2C57, 106033 }, - { 0x2C58, 106003 }, - { 0x2C59, 106039 }, - { 0x2C5A, 106009 }, - { 0x2C5B, 106030 }, - { 0x2C5C, 106000 }, - { 0x2C5D, 106036 }, - { 0x2C5E, 106006 }, - { 0x2C5F, 106102 }, - { 0x2C60, 106168 }, - { 0x2C61, 106108 }, - { 0x2C62, 106174 }, - { 0x2C63, 106114 }, - { 0x2C64, 106180 }, - { 0x2C65, 106105 }, - { 0x2C66, 106171 }, - { 0x2C67, 106111 }, - { 0x2C68, 106177 }, - { 0x2C69, 106117 }, - { 0x2C6A, 105982 }, - { 0x2C6B, 106123 }, - { 0x2C6C, 105988 }, - { 0x2C6D, 106283 }, - { 0x2C6E, 106129 }, - { 0x2C6F, 105994 }, - { 0x2C70, 106120 }, - { 0x2C71, 105985 }, - { 0x2C72, 106126 }, - { 0x2C73, 105991 }, - { 0x2C74, 106057 }, - { 0x2C75, 106063 }, - { 0x2C76, 106069 }, - { 0x2C77, 106060 }, - { 0x2C78, 106066 }, - { 0x2C79, 106012 }, - { 0x2C7A, 105967 }, - { 0x2C7B, 106072 }, - { 0x2C7C, 106018 }, - { 0x2C7D, 105973 }, - { 0x2C7E, 106078 }, - { 0x2C7F, 106024 }, - { 0x2C80, 105979 }, - { 0x2C81, 106084 }, - { 0x2C82, 106015 }, - { 0x2C83, 105970 }, - { 0x2C84, 106075 }, - { 0x2C85, 106021 }, - { 0x2C86, 105976 }, - { 0x2C87, 106081 }, - { 0x2C88, 106042 }, - { 0x2C89, 106048 }, - { 0x2C8A, 106054 }, - { 0x2C8B, 106045 }, - { 0x2C8C, 106051 }, - { 0x2C8D, 106303 }, - { 0x2C8E, 106159 }, - { 0x2C8F, 106311 }, - { 0x2C90, 106165 }, - { 0x2C91, 106307 }, - { 0x2C92, 106162 }, - { 0x2C93, 106087 }, - { 0x2C94, 106093 }, - { 0x2C95, 106099 }, - { 0x2C96, 106090 }, - { 0x2C97, 106096 }, - { 0x2C98, 106287 }, - { 0x2C99, 106147 }, - { 0x2C9A, 106153 }, - { 0x2C9B, 106150 }, - { 0x2C9C, 106156 }, - { 0x2C9D, 105958 }, - { 0x2C9E, 106144 }, - { 0x2C9F, 106227 }, - { 0x2CA0, 106231 }, - { 0x2CA1, 106132 }, - { 0x2CA2, 106138 }, - { 0x2CA3, 106135 }, - { 0x2CA4, 106141 }, - { 0x2CA5, 106390 }, - { 0x2CA6, 144928 }, - { 0x2CA7, 106400 }, - { 0x2CA8, 106393 }, - { 0x2CA9, 106397 }, - { 0x2CAA, 83953 }, - { 0x2CAB, 84001 }, - { 0x2CAC, 83986 }, - { 0x2CAD, 83965 }, - { 0x2CAE, 83959 }, - { 0x2CAF, 84013 }, - { 0x2CB0, 83989 }, - { 0x2CB1, 83983 }, - { 0x2CB2, 83968 }, - { 0x2CB3, 83980 }, - { 0x2CB4, 83971 }, - { 0x2CB5, 83977 }, - { 0x2CB6, 84004 }, - { 0x2CB7, 84022 }, - { 0x2CB8, 84118 }, - { 0x2CB9, 84046 }, - { 0x2CBA, 84115 }, - { 0x2CBB, 84007 }, - { 0x2CBC, 84025 }, - { 0x2CBD, 83956 }, - { 0x2CBE, 84010 }, - { 0x2CBF, 83950 }, - { 0x2CC0, 83992 }, - { 0x2CC1, 83962 }, - { 0x2CC2, 84052 }, - { 0x2CC3, 84031 }, - { 0x2CC4, 84055 }, - { 0x2CC5, 84040 }, - { 0x2CC6, 84112 }, - { 0x2CC7, 84037 }, - { 0x2CC8, 84058 }, - { 0x2CC9, 84127 }, - { 0x2CCA, 84133 }, - { 0x2CCB, 84061 }, - { 0x2CCC, 83974 }, - { 0x2CCD, 84016 }, - { 0x2CCE, 84085 }, - { 0x2CCF, 84019 }, - { 0x2CD0, 84097 }, - { 0x2CD1, 84067 }, - { 0x2CD2, 84076 }, - { 0x2CD3, 83995 }, - { 0x2CD4, 84100 }, - { 0x2CD5, 55451 }, - { 0x2CD6, 55550 }, - { 0x2CD7, 55520 }, - { 0x2CD8, 55433 }, - { 0x2CD9, 55526 }, - { 0x2CDA, 55529 }, - { 0x2CDB, 55454 }, - { 0x2CDC, 55553 }, - { 0x2CDD, 55439 }, - { 0x2CDE, 55568 }, - { 0x2CDF, 55538 }, - { 0x2CE0, 55541 }, - { 0x2CE1, 55493 }, - { 0x2CE2, 55595 }, - { 0x2CE3, 55592 }, - { 0x2CE4, 55535 }, - { 0x2CE5, 55430 }, - { 0x2CE6, 55436 }, - { 0x2CE7, 55517 }, - { 0x2CE8, 55490 }, - { 0x2CE9, 55409 }, - { 0x2CEA, 55481 }, - { 0x2CEB, 55427 }, - { 0x2CEC, 55421 }, - { 0x2CED, 55505 }, - { 0x2CEE, 55463 }, - { 0x2CEF, 55466 }, - { 0x2CF0, 55475 }, - { 0x2CF1, 55472 }, - { 0x2CF2, 55424 }, - { 0x2CF3, 55346 }, - { 0x2CF4, 55361 }, - { 0x2CF5, 55382 }, - { 0x2CF6, 55403 }, - { 0x2CF7, 55364 }, - { 0x2CF8, 55349 }, - { 0x2CF9, 55406 }, - { 0x2CFA, 55385 }, - { 0x2CFB, 55355 }, - { 0x2CFC, 55373 }, - { 0x2CFD, 55397 }, - { 0x2CFE, 55370 }, - { 0x2CFF, 55391 }, - { 0x2D00, 55358 }, - { 0x2D01, 55400 }, - { 0x2D02, 55376 }, - { 0x2D03, 55379 }, - { 0x2D04, 55394 }, - { 0x2D05, 55367 }, - { 0x2D06, 55388 }, - { 0x2D07, 55352 }, - { 0x2D08, 55344 }, - { 0x2D09, 55514 }, - { 0x2D0A, 55559 }, - { 0x2D0B, 55487 }, - { 0x2D0C, 55583 }, - { 0x2D0D, 55616 }, - { 0x2D0E, 55571 }, - { 0x2D0F, 55604 }, - { 0x2D10, 55589 }, - { 0x2D11, 55619 }, - { 0x2D12, 55523 }, - { 0x2D13, 55484 }, - { 0x2D14, 55580 }, - { 0x2D15, 55574 }, - { 0x2D16, 55562 }, - { 0x2D17, 55565 }, - { 0x2D18, 55610 }, - { 0x2D19, 55613 }, - { 0x2D1A, 55532 }, - { 0x2D1B, 55586 }, - { 0x2D1C, 55577 }, - { 0x2D1D, 55622 }, - { 0x2D1E, 55544 }, - { 0x2D1F, 55499 }, - { 0x2D20, 55547 }, - { 0x2D21, 55502 }, - { 0x2D22, 55496 }, - { 0x2D23, 55469 }, - { 0x2D24, 55511 }, - { 0x2D25, 55478 }, - { 0x2D26, 55598 }, - { 0x2D27, 55607 }, - { 0x2D28, 55601 }, - { 0x2D29, 55508 }, - { 0x2D2A, 55556 }, - { 0x2D2B, 55442 }, - { 0x2D2C, 55457 }, - { 0x2D2D, 55412 }, - { 0x2D2E, 55460 }, - { 0x2D2F, 55445 }, - { 0x2D30, 55415 }, - { 0x2D31, 55418 }, - { 0x2D32, 55448 }, - { 0x2D33, 133733 }, - { 0x2D34, 133737 }, - { 0x2D35, 133681 }, - { 0x2D36, 133689 }, - { 0x2D37, 133709 }, - { 0x2D38, 133693 }, - { 0x2D39, 133685 }, - { 0x2D3A, 133725 }, - { 0x2D3B, 133713 }, - { 0x2D3C, 133701 }, - { 0x2D3D, 133729 }, - { 0x2D3E, 133705 }, - { 0x2D3F, 133717 }, - { 0x2D40, 133721 }, - { 0x2D41, 133697 }, - { 0x2D42, 133677 }, - { 0x2D43, 84043 }, - { 0x2D44, 84121 }, - { 0x2D45, 84088 }, - { 0x2D46, 84070 }, - { 0x2D47, 84049 }, - { 0x2D48, 84136 }, - { 0x2D49, 84109 }, - { 0x2D4A, 84148 }, - { 0x2D4B, 84082 }, - { 0x2D4C, 84130 }, - { 0x2D4D, 84139 }, - { 0x2D4E, 84151 }, - { 0x2D4F, 84079 }, - { 0x2D50, 84142 }, - { 0x2D51, 84154 }, - { 0x2D52, 84157 }, - { 0x2D53, 84034 }, - { 0x2D54, 84106 }, - { 0x2D55, 84145 }, - { 0x2D56, 84160 }, - { 0x2D57, 83942 }, - { 0x2D58, 83946 }, - { 0x2D59, 83938 }, - { 0x2D5A, 83934 }, - { 0x2D5B, 84064 }, - { 0x2D5C, 84094 }, - { 0x2D5D, 84124 }, - { 0x2D5E, 83930 }, - { 0x2D5F, 84073 }, - { 0x2D60, 84091 }, - { 0x2D61, 84103 }, - { 0x2D62, 84028 }, - { 0x2D63, 5986 }, - { 0x2D64, 6025 }, - { 0x2D65, 6028 }, - { 0x2D66, 6031 }, - { 0x2D67, 6016 }, - { 0x2D68, 6046 }, - { 0x2D69, 6037 }, - { 0x2D6A, 5992 }, - { 0x2D6B, 6067 }, - { 0x2D6C, 6076 }, - { 0x2D6D, 6040 }, - { 0x2D6E, 6070 }, - { 0x2D6F, 6061 }, - { 0x2D70, 6043 }, - { 0x2D71, 6073 }, - { 0x2D72, 5974 }, - { 0x2D73, 5971 }, - { 0x2D74, 5983 }, - { 0x2D75, 5977 }, - { 0x2D76, 6010 }, - { 0x2D77, 5968 }, - { 0x2D78, 5995 }, - { 0x2D79, 5989 }, - { 0x2D7A, 6019 }, - { 0x2D7B, 6052 }, - { 0x2D7C, 6013 }, - { 0x2D7D, 6007 }, - { 0x2D7E, 5998 }, - { 0x2D7F, 6004 }, - { 0x2D80, 6022 }, - { 0x2D81, 6058 }, - { 0x2D82, 6049 }, - { 0x2D83, 6064 }, - { 0x2D84, 6079 }, - { 0x2D85, 6001 }, - { 0x2D86, 5980 }, - { 0x2D87, 6034 }, - { 0x2D88, 6055 }, - { 0x2D89, 133839 }, - { 0x2D8A, 106239 }, - { 0x2D8B, 106271 }, - { 0x2D8C, 106275 }, - { 0x2D8D, 106279 }, - { 0x2D8E, 106247 }, - { 0x2D8F, 106207 }, - { 0x2D90, 106215 }, - { 0x2D91, 106223 }, - { 0x2D92, 106211 }, - { 0x2D93, 106219 }, - { 0x2D94, 106243 }, - { 0x2D95, 106251 }, - { 0x2D96, 106259 }, - { 0x2D97, 106267 }, - { 0x2D98, 106255 }, - { 0x2D99, 106263 }, - { 0x2D9A, 144331 }, - { 0x2D9B, 144310 }, - { 0x2D9C, 144338 }, - { 0x2D9D, 144324 }, - { 0x2D9E, 144303 }, - { 0x2D9F, 144317 }, - { 0x2DA0, 144271 }, - { 0x2DA1, 144296 }, - { 0x2DA2, 144278 }, - { 0x2DA3, 144345 }, - { 0x2DA4, 144352 }, - { 0x2DA5, 144366 }, - { 0x2DA6, 144359 }, - { 0x2DA7, 144289 }, - { 0x2DA8, 144334 }, - { 0x2DA9, 144313 }, - { 0x2DAA, 144341 }, - { 0x2DAB, 144327 }, - { 0x2DAC, 144306 }, - { 0x2DAD, 144320 }, - { 0x2DAE, 144274 }, - { 0x2DAF, 144299 }, - { 0x2DB0, 144281 }, - { 0x2DB1, 144348 }, - { 0x2DB2, 144355 }, - { 0x2DB3, 144369 }, - { 0x2DB4, 144362 }, - { 0x2DB5, 144292 }, - { 0x2DB6, 144285 }, - { 0x2DB7, 144378 }, - { 0x2DB8, 144373 }, - { 0x2DB9, 144415 }, - { 0x2DBA, 144427 }, - { 0x2DBB, 144487 }, - { 0x2DBC, 144439 }, - { 0x2DBD, 144436 }, - { 0x2DBE, 144418 }, - { 0x2DBF, 144478 }, - { 0x2DC0, 144466 }, - { 0x2DC1, 144451 }, - { 0x2DC2, 144424 }, - { 0x2DC3, 144445 }, - { 0x2DC4, 144433 }, - { 0x2DC5, 144490 }, - { 0x2DC6, 144460 }, - { 0x2DC7, 144472 }, - { 0x2DC8, 144463 }, - { 0x2DC9, 144421 }, - { 0x2DCA, 144481 }, - { 0x2DCB, 144442 }, - { 0x2DCC, 144493 }, - { 0x2DCD, 144448 }, - { 0x2DCE, 144496 }, - { 0x2DCF, 144508 }, - { 0x2DD0, 144520 }, - { 0x2DD1, 144469 }, - { 0x2DD2, 144511 }, - { 0x2DD3, 144430 }, - { 0x2DD4, 144484 }, - { 0x2DD5, 144514 }, - { 0x2DD6, 144517 }, - { 0x2DD7, 144505 }, - { 0x2DD8, 144499 }, - { 0x2DD9, 144502 }, - { 0x2DDA, 144454 }, - { 0x2DDB, 144457 }, - { 0x2DDC, 144475 }, - { 0x2DDD, 72178 }, - { 0x2DDE, 72208 }, - { 0x2DDF, 72157 }, - { 0x2DE0, 72088 }, - { 0x2DE1, 71683 }, - { 0x2DE2, 71809 }, - { 0x2DE3, 71761 }, - { 0x2DE4, 71701 }, - { 0x2DE5, 71692 }, - { 0x2DE6, 71743 }, - { 0x2DE7, 71854 }, - { 0x2DE8, 71749 }, - { 0x2DE9, 134497 }, - { 0x2DEA, 71815 }, - { 0x2DEB, 71823 }, - { 0x2DEC, 71847 }, - { 0x2DED, 71831 }, - { 0x2DEE, 71827 }, - { 0x2DEF, 71819 }, - { 0x2DF0, 71843 }, - { 0x2DF1, 71839 }, - { 0x2DF2, 71835 }, - { 0x2DF3, 71758 }, - { 0x2DF4, 71767 }, - { 0x2DF5, 71775 }, - { 0x2DF6, 71799 }, - { 0x2DF7, 71783 }, - { 0x2DF8, 71779 }, - { 0x2DF9, 71618 }, - { 0x2DFA, 71597 }, - { 0x2DFB, 71625 }, - { 0x2DFC, 71611 }, - { 0x2DFD, 71590 }, - { 0x2DFE, 71604 }, - { 0x2DFF, 71558 }, - { 0x2E00, 71579 }, - { 0x2E01, 71565 }, - { 0x2E02, 71632 }, - { 0x2E03, 71639 }, - { 0x2E04, 71653 }, - { 0x2E05, 71646 }, - { 0x2E06, 71572 }, - { 0x2E07, 71621 }, - { 0x2E08, 71600 }, - { 0x2E09, 71628 }, - { 0x2E0A, 71614 }, - { 0x2E0B, 71593 }, - { 0x2E0C, 71607 }, - { 0x2E0D, 71561 }, - { 0x2E0E, 71582 }, - { 0x2E0F, 71568 }, - { 0x2E10, 71635 }, - { 0x2E11, 71642 }, - { 0x2E12, 71656 }, - { 0x2E13, 71649 }, - { 0x2E14, 71575 }, - { 0x2E15, 71676 }, - { 0x2E16, 71672 }, - { 0x2E17, 71586 }, - { 0x2E18, 60540 }, - { 0x2E19, 72052 }, - { 0x2E1A, 72064 }, - { 0x2E1B, 72142 }, - { 0x2E1C, 72076 }, - { 0x2E1D, 72073 }, - { 0x2E1E, 72055 }, - { 0x2E1F, 72133 }, - { 0x2E20, 72115 }, - { 0x2E21, 72103 }, - { 0x2E22, 72061 }, - { 0x2E23, 72097 }, - { 0x2E24, 72070 }, - { 0x2E25, 72145 }, - { 0x2E26, 72109 }, - { 0x2E27, 72121 }, - { 0x2E28, 72112 }, - { 0x2E29, 72058 }, - { 0x2E2A, 72136 }, - { 0x2E2B, 72079 }, - { 0x2E2C, 72166 }, - { 0x2E2D, 72100 }, - { 0x2E2E, 72169 }, - { 0x2E2F, 72199 }, - { 0x2E30, 72211 }, - { 0x2E31, 72118 }, - { 0x2E32, 72160 }, - { 0x2E33, 72094 }, - { 0x2E34, 72154 }, - { 0x2E35, 72187 }, - { 0x2E36, 72196 }, - { 0x2E37, 72127 }, - { 0x2E38, 72193 }, - { 0x2E39, 72085 }, - { 0x2E3A, 72106 }, - { 0x2E3B, 72067 }, - { 0x2E3C, 72163 }, - { 0x2E3D, 72082 }, - { 0x2E3E, 72151 }, - { 0x2E3F, 72049 }, - { 0x2E40, 72091 }, - { 0x2E41, 72130 }, - { 0x2E42, 72175 }, - { 0x2E43, 72181 }, - { 0x2E44, 72139 }, - { 0x2E45, 72202 }, - { 0x2E46, 72205 }, - { 0x2E47, 72184 }, - { 0x2E48, 72172 }, - { 0x2E49, 72124 }, - { 0x2E4A, 71771 }, - { 0x2E4B, 71795 }, - { 0x2E4C, 71791 }, - { 0x2E4D, 71787 }, - { 0x2E4E, 71698 }, - { 0x2E4F, 71707 }, - { 0x2E50, 71715 }, - { 0x2E51, 71739 }, - { 0x2E52, 71723 }, - { 0x2E53, 71719 }, - { 0x2E54, 71711 }, - { 0x2E55, 71735 }, - { 0x2E56, 71731 }, - { 0x2E57, 71727 }, - { 0x2E58, 71689 }, - { 0x2E59, 133644 }, - { 0x2E5A, 133659 }, - { 0x2E5B, 133634 }, - { 0x2E5C, 133629 }, - { 0x2E5D, 133464 }, - { 0x2E5E, 133624 }, - { 0x2E5F, 133619 }, - { 0x2E60, 133639 }, - { 0x2E61, 133669 }, - { 0x2E62, 133649 }, - { 0x2E63, 133664 }, - { 0x2E64, 133654 }, - { 0x2E65, 65041 }, - { 0x2E66, 65208 }, - { 0x2E67, 65031 }, - { 0x2E68, 74241 }, - { 0x2E69, 71898 }, - { 0x2E6A, 71904 }, - { 0x2E6B, 71910 }, - { 0x2E6C, 71901 }, - { 0x2E6D, 71907 }, - { 0x2E6E, 71928 }, - { 0x2E6F, 71934 }, - { 0x2E70, 71940 }, - { 0x2E71, 71931 }, - { 0x2E72, 71937 }, - { 0x2E73, 71988 }, - { 0x2E74, 71994 }, - { 0x2E75, 72000 }, - { 0x2E76, 71991 }, - { 0x2E77, 71997 }, - { 0x2E78, 72003 }, - { 0x2E79, 72009 }, - { 0x2E7A, 72015 }, - { 0x2E7B, 72006 }, - { 0x2E7C, 72012 }, - { 0x2E7D, 71958 }, - { 0x2E7E, 71964 }, - { 0x2E7F, 71970 }, - { 0x2E80, 71961 }, - { 0x2E81, 71967 }, - { 0x2E82, 71913 }, - { 0x2E83, 71919 }, - { 0x2E84, 71925 }, - { 0x2E85, 71916 }, - { 0x2E86, 71922 }, - { 0x2E87, 71943 }, - { 0x2E88, 71949 }, - { 0x2E89, 71955 }, - { 0x2E8A, 71946 }, - { 0x2E8B, 71952 }, - { 0x2E8C, 72030 }, - { 0x2E8D, 72036 }, - { 0x2E8E, 72033 }, - { 0x2E8F, 71973 }, - { 0x2E90, 71979 }, - { 0x2E91, 71985 }, - { 0x2E92, 71976 }, - { 0x2E93, 71982 }, - { 0x2E94, 72018 }, - { 0x2E95, 72024 }, - { 0x2E96, 72021 }, - { 0x2E97, 72027 }, - { 0x2E98, 65192 }, - { 0x2E99, 65475 }, - { 0x2E9A, 65477 }, - { 0x2E9B, 65402 }, - { 0x2E9C, 65253 }, - { 0x2E9D, 65487 }, - { 0x2E9E, 65283 }, - { 0x2E9F, 65251 }, - { 0x2EA0, 65557 }, - { 0x2EA1, 65408 }, - { 0x2EA2, 65300 }, - { 0x2EA3, 65302 }, - { 0x2EA4, 65438 }, - { 0x2EA5, 65527 }, - { 0x2EA6, 65529 }, - { 0x2EA7, 65412 }, - { 0x2EA8, 65410 }, - { 0x2EA9, 65279 }, - { 0x2EAA, 65414 }, - { 0x2EAB, 65491 }, - { 0x2EAC, 65525 }, - { 0x2EAD, 65287 }, - { 0x2EAE, 65601 }, - { 0x2EAF, 65605 }, - { 0x2EB0, 65593 }, - { 0x2EB1, 65481 }, - { 0x2EB2, 65589 }, - { 0x2EB3, 65595 }, - { 0x2EB4, 65531 }, - { 0x2EB5, 65440 }, - { 0x2EB6, 65489 }, - { 0x2EB7, 65442 }, - { 0x2EB8, 65549 }, - { 0x2EB9, 65587 }, - { 0x2EBA, 65551 }, - { 0x2EBB, 65465 }, - { 0x2EBC, 65467 }, - { 0x2EBD, 65406 }, - { 0x2EBE, 65257 }, - { 0x2EBF, 65259 }, - { 0x2EC0, 65249 }, - { 0x2EC1, 65298 }, - { 0x2EC2, 65448 }, - { 0x2EC3, 65416 }, - { 0x2EC4, 65580 }, - { 0x2EC5, 65450 }, - { 0x2EC6, 65523 }, - { 0x2EC7, 65599 }, - { 0x2EC8, 65497 }, - { 0x2EC9, 65306 }, - { 0x2ECA, 65255 }, - { 0x2ECB, 65562 }, - { 0x2ECC, 65485 }, - { 0x2ECD, 65555 }, - { 0x2ECE, 65420 }, - { 0x2ECF, 65591 }, - { 0x2ED0, 65304 }, - { 0x2ED1, 65495 }, - { 0x2ED2, 65483 }, - { 0x2ED3, 65454 }, - { 0x2ED4, 65452 }, - { 0x2ED5, 65404 }, - { 0x2ED6, 65499 }, - { 0x2ED7, 65479 }, - { 0x2ED8, 65216 }, - { 0x2ED9, 65456 }, - { 0x2EDA, 65418 }, - { 0x2EDB, 65281 }, - { 0x2EDC, 65535 }, - { 0x2EDD, 65446 }, - { 0x2EDE, 65444 }, - { 0x2EDF, 65493 }, - { 0x2EE0, 65537 }, - { 0x2EE1, 65543 }, - { 0x2EE2, 65296 }, - { 0x2EE3, 65597 }, - { 0x2EE4, 65294 }, - { 0x2EE5, 65541 }, - { 0x2EE6, 65539 }, - { 0x2EE7, 65471 }, - { 0x2EE8, 65473 }, - { 0x2EE9, 65400 }, - { 0x2EEA, 65545 }, - { 0x2EEB, 65310 }, - { 0x2EEC, 65463 }, - { 0x2EED, 65547 }, - { 0x2EEE, 65308 }, - { 0x2EEF, 65585 }, - { 0x2EF0, 65469 }, - { 0x2EF1, 133511 }, - { 0x2EF2, 133469 }, - { 0x2EF3, 133487 }, - { 0x2EF4, 133529 }, - { 0x2EF5, 133499 }, - { 0x2EF6, 133493 }, - { 0x2EF7, 133475 }, - { 0x2EF8, 133523 }, - { 0x2EF9, 133517 }, - { 0x2EFA, 133505 }, - { 0x2EFB, 133481 }, - { 0x2EFC, 133535 }, - { 0x2EFD, 133541 }, - { 0x2EFE, 133583 }, - { 0x2EFF, 133571 }, - { 0x2F00, 133553 }, - { 0x2F01, 133559 }, - { 0x2F02, 133589 }, - { 0x2F03, 133565 }, - { 0x2F04, 133577 }, - { 0x2F05, 133547 }, - { 0x2F06, 133595 }, - { 0x2F07, 133601 }, - { 0x2F08, 133613 }, - { 0x2F09, 133607 }, - { 0x2F0A, 65218 }, - { 0x2F0B, 65015 }, - { 0x2F0C, 64997 }, - { 0x2F0D, 65180 }, - { 0x2F0E, 65151 }, - { 0x2F0F, 65158 }, - { 0x2F10, 65023 }, - { 0x2F11, 65028 }, - { 0x2F12, 65025 }, - { 0x2F13, 65049 }, - { 0x2F14, 65196 }, - { 0x2F15, 65200 }, - { 0x2F16, 65204 }, - { 0x2F17, 65188 }, - { 0x2F18, 65603 }, - { 0x2F19, 65155 }, - { 0x2F1A, 65139 }, - { 0x2F1B, 65105 }, - { 0x2F1C, 65084 }, - { 0x2F1D, 65051 }, - { 0x2F1E, 65053 }, - { 0x2F1F, 65086 }, - { 0x2F20, 65035 }, - { 0x2F21, 65182 }, - { 0x2F22, 65285 }, - { 0x2F23, 65160 }, - { 0x2F24, 65141 }, - { 0x2F25, 65108 }, - { 0x2F26, 65111 }, - { 0x2F27, 65091 }, - { 0x2F28, 65055 }, - { 0x2F29, 65045 }, - { 0x2F2A, 65220 }, - { 0x2F2B, 65226 }, - { 0x2F2C, 65212 }, - { 0x2F2D, 65247 }, - { 0x2F2E, 65114 }, - { 0x2F2F, 65093 }, - { 0x2F30, 65021 }, - { 0x2F31, 65059 }, - { 0x2F32, 65033 }, - { 0x2F33, 65143 }, - { 0x2F34, 65117 }, - { 0x2F35, 65095 }, - { 0x2F36, 65005 }, - { 0x2F37, 65061 }, - { 0x2F38, 65100 }, - { 0x2F39, 65010 }, - { 0x2F3A, 64988 }, - { 0x2F3B, 65069 }, - { 0x2F3C, 65097 }, - { 0x2F3D, 65007 }, - { 0x2F3E, 64985 }, - { 0x2F3F, 65063 }, - { 0x2F40, 64976 }, - { 0x2F41, 64980 }, - { 0x2F42, 65153 }, - { 0x2F43, 65222 }, - { 0x2F44, 65232 }, - { 0x2F45, 65214 }, - { 0x2F46, 65236 }, - { 0x2F47, 65238 }, - { 0x2F48, 65242 }, - { 0x2F49, 65168 }, - { 0x2F4A, 65145 }, - { 0x2F4B, 65120 }, - { 0x2F4C, 65103 }, - { 0x2F4D, 65170 }, - { 0x2F4E, 65147 }, - { 0x2F4F, 65123 }, - { 0x2F50, 65129 }, - { 0x2F51, 65074 }, - { 0x2F52, 65131 }, - { 0x2F53, 65172 }, - { 0x2F54, 65149 }, - { 0x2F55, 65126 }, - { 0x2F56, 65134 }, - { 0x2F57, 65076 }, - { 0x2F58, 65136 }, - { 0x2F59, 64970 }, - { 0x2F5A, 64973 }, - { 0x2F5B, 64995 }, - { 0x2F5C, 64999 }, - { 0x2F5D, 65001 }, - { 0x2F5E, 65003 }, - { 0x2F5F, 64966 }, - { 0x2F60, 65013 }, - { 0x2F61, 65017 }, - { 0x2F62, 65037 }, - { 0x2F63, 65039 }, - { 0x2F64, 65043 }, - { 0x2F65, 65047 }, - { 0x2F66, 65057 }, - { 0x2F67, 65066 }, - { 0x2F68, 65072 }, - { 0x2F69, 65078 }, - { 0x2F6A, 65080 }, - { 0x2F6B, 65224 }, - { 0x2F6C, 65082 }, - { 0x2F6D, 65088 }, - { 0x2F6E, 65228 }, - { 0x2F6F, 65230 }, - { 0x2F70, 65162 }, - { 0x2F71, 65164 }, - { 0x2F72, 65234 }, - { 0x2F73, 65166 }, - { 0x2F74, 65174 }, - { 0x2F75, 65176 }, - { 0x2F76, 65178 }, - { 0x2F77, 64991 }, - { 0x2F78, 64962 }, - { 0x2F79, 133278 }, - { 0x2F7A, 133296 }, - { 0x2F7B, 133332 }, - { 0x2F7C, 133308 }, - { 0x2F7D, 133302 }, - { 0x2F7E, 133284 }, - { 0x2F7F, 133326 }, - { 0x2F80, 133320 }, - { 0x2F81, 133314 }, - { 0x2F82, 133290 }, - { 0x2F83, 133338 }, - { 0x2F84, 133350 }, - { 0x2F85, 133392 }, - { 0x2F86, 133380 }, - { 0x2F87, 133362 }, - { 0x2F88, 133368 }, - { 0x2F89, 133398 }, - { 0x2F8A, 133374 }, - { 0x2F8B, 133386 }, - { 0x2F8C, 133356 }, - { 0x2F8D, 133410 }, - { 0x2F8E, 133422 }, - { 0x2F8F, 133458 }, - { 0x2F90, 133434 }, - { 0x2F91, 133428 }, - { 0x2F92, 133416 }, - { 0x2F93, 133452 }, - { 0x2F94, 133446 }, - { 0x2F95, 133440 }, - { 0x2F96, 133344 }, - { 0x2F97, 133404 }, - { 0x2F98, 65210 }, - { 0x2F99, 104841 }, - { 0x2F9A, 104855 }, - { 0x2F9B, 104992 }, - { 0x2F9C, 104962 }, - { 0x2F9D, 104938 }, - { 0x2F9E, 104944 }, - { 0x2F9F, 104794 }, - { 0x2FA0, 104924 }, - { 0x2FA1, 104900 }, - { 0x2FA2, 104959 }, - { 0x2FA3, 104897 }, - { 0x2FA4, 105019 }, - { 0x2FA5, 105004 }, - { 0x2FA6, 104881 }, - { 0x2FA7, 104928 }, - { 0x2FA8, 105001 }, - { 0x2FA9, 104975 }, - { 0x2FAA, 104860 }, - { 0x2FAB, 104941 }, - { 0x2FAC, 105034 }, - { 0x2FAD, 104912 }, - { 0x2FAE, 104870 }, - { 0x2FAF, 104988 }, - { 0x2FB0, 104921 }, - { 0x2FB1, 104985 }, - { 0x2FB2, 104877 }, - { 0x2FB3, 104893 }, - { 0x2FB4, 104885 }, - { 0x2FB5, 104816 }, - { 0x2FB6, 104836 }, - { 0x2FB7, 104982 }, - { 0x2FB8, 104950 }, - { 0x2FB9, 104935 }, - { 0x2FBA, 104873 }, - { 0x2FBB, 104956 }, - { 0x2FBC, 104969 }, - { 0x2FBD, 104802 }, - { 0x2FBE, 105010 }, - { 0x2FBF, 105028 }, - { 0x2FC0, 105022 }, - { 0x2FC1, 104947 }, - { 0x2FC2, 104953 }, - { 0x2FC3, 105031 }, - { 0x2FC4, 104916 }, - { 0x2FC5, 104978 }, - { 0x2FC6, 104931 }, - { 0x2FC7, 105013 }, - { 0x2FC8, 104798 }, - { 0x2FC9, 105016 }, - { 0x2FCA, 104832 }, - { 0x2FCB, 104827 }, - { 0x2FCC, 104821 }, - { 0x2FCD, 105025 }, - { 0x2FCE, 104846 }, - { 0x2FCF, 104966 }, - { 0x2FD0, 104851 }, - { 0x2FD1, 104806 }, - { 0x2FD2, 104811 }, - { 0x2FD3, 104998 }, - { 0x2FD4, 105007 }, - { 0x2FD5, 104889 }, - { 0x2FD6, 104904 }, - { 0x2FD7, 104866 }, - { 0x2FD8, 104908 }, - { 0x2FD9, 872 }, - { 0x2FDA, 875 }, - { 0x2FDB, 758 }, - { 0x2FDC, 869 }, - { 0x2FDD, 1538 }, - { 0x2FDE, 1541 }, - { 0x2FDF, 866 }, - { 0x2FE0, 1535 }, - { 0x2FE1, 767 }, - { 0x2FE2, 770 }, - { 0x2FE3, 752 }, - { 0x2FE4, 764 }, - { 0x2FE5, 2249 }, - { 0x2FE6, 1040 }, - { 0x2FE7, 2246 }, - { 0x2FE8, 959 }, - { 0x2FE9, 962 }, - { 0x2FEA, 761 }, - { 0x2FEB, 956 }, - { 0x2FEC, 824 }, - { 0x2FED, 755 }, - { 0x2FEE, 1067 }, - { 0x2FEF, 1148 }, - { 0x2FF0, 1151 }, - { 0x2FF1, 779 }, - { 0x2FF2, 1145 }, - { 0x2FF3, 2579 }, - { 0x2FF4, 2582 }, - { 0x2FF5, 1142 }, - { 0x2FF6, 2576 }, - { 0x2FF7, 1112 }, - { 0x2FF8, 1115 }, - { 0x2FF9, 773 }, - { 0x2FFA, 1109 }, - { 0x2FFB, 2588 }, - { 0x2FFC, 1163 }, - { 0x2FFD, 2585 }, - { 0x2FFE, 1157 }, - { 0x2FFF, 1160 }, - { 0x3000, 782 }, - { 0x3001, 1154 }, - { 0x3002, 1139 }, - { 0x3003, 776 }, - { 0x3004, 1136 }, - { 0x3005, 1172 }, - { 0x3006, 1175 }, - { 0x3007, 785 }, - { 0x3008, 1166 }, - { 0x3009, 2591 }, - { 0x300A, 1169 }, - { 0x300B, 1184 }, - { 0x300C, 1187 }, - { 0x300D, 788 }, - { 0x300E, 1178 }, - { 0x300F, 2594 }, - { 0x3010, 1181 }, - { 0x3011, 1943 }, - { 0x3012, 1946 }, - { 0x3013, 968 }, - { 0x3014, 1940 }, - { 0x3015, 3512 }, - { 0x3016, 1937 }, - { 0x3017, 3509 }, - { 0x3018, 1931 }, - { 0x3019, 1934 }, - { 0x301A, 965 }, - { 0x301B, 1928 }, - { 0x301C, 3518 }, - { 0x301D, 1958 }, - { 0x301E, 3515 }, - { 0x301F, 1952 }, - { 0x3020, 1955 }, - { 0x3021, 971 }, - { 0x3022, 1949 }, - { 0x3023, 1967 }, - { 0x3024, 1970 }, - { 0x3025, 974 }, - { 0x3026, 1961 }, - { 0x3027, 3521 }, - { 0x3028, 1964 }, - { 0x3029, 1979 }, - { 0x302A, 1982 }, - { 0x302B, 977 }, - { 0x302C, 1973 }, - { 0x302D, 3524 }, - { 0x302E, 1976 }, - { 0x302F, 2537 }, - { 0x3030, 2540 }, - { 0x3031, 1124 }, - { 0x3032, 2534 }, - { 0x3033, 3947 }, - { 0x3034, 3950 }, - { 0x3035, 2531 }, - { 0x3036, 3944 }, - { 0x3037, 2519 }, - { 0x3038, 2522 }, - { 0x3039, 1118 }, - { 0x303A, 2516 }, - { 0x303B, 3956 }, - { 0x303C, 2552 }, - { 0x303D, 3953 }, - { 0x303E, 2546 }, - { 0x303F, 2549 }, - { 0x3040, 1127 }, - { 0x3041, 2543 }, - { 0x3042, 2528 }, - { 0x3043, 1121 }, - { 0x3044, 2525 }, - { 0x3045, 2561 }, - { 0x3046, 2564 }, - { 0x3047, 1130 }, - { 0x3048, 2555 }, - { 0x3049, 3959 }, - { 0x304A, 2558 }, - { 0x304B, 2570 }, - { 0x304C, 2573 }, - { 0x304D, 1133 }, - { 0x304E, 2567 }, - { 0x304F, 3197 }, - { 0x3050, 3200 }, - { 0x3051, 1799 }, - { 0x3052, 3194 }, - { 0x3053, 4109 }, - { 0x3054, 3191 }, - { 0x3055, 4106 }, - { 0x3056, 3185 }, - { 0x3057, 3188 }, - { 0x3058, 1796 }, - { 0x3059, 3182 }, - { 0x305A, 3206 }, - { 0x305B, 3209 }, - { 0x305C, 1802 }, - { 0x305D, 3203 }, - { 0x305E, 3218 }, - { 0x305F, 3221 }, - { 0x3060, 1805 }, - { 0x3061, 3212 }, - { 0x3062, 4112 }, - { 0x3063, 3215 }, - { 0x3064, 3230 }, - { 0x3065, 3233 }, - { 0x3066, 1808 }, - { 0x3067, 3224 }, - { 0x3068, 4115 }, - { 0x3069, 3227 }, - { 0x306A, 2885 }, - { 0x306B, 2888 }, - { 0x306C, 1490 }, - { 0x306D, 2882 }, - { 0x306E, 4031 }, - { 0x306F, 2879 }, - { 0x3070, 4028 }, - { 0x3071, 2873 }, - { 0x3072, 2876 }, - { 0x3073, 1487 }, - { 0x3074, 2870 }, - { 0x3075, 4037 }, - { 0x3076, 2900 }, - { 0x3077, 4034 }, - { 0x3078, 2894 }, - { 0x3079, 2897 }, - { 0x307A, 1493 }, - { 0x307B, 2891 }, - { 0x307C, 2909 }, - { 0x307D, 2912 }, - { 0x307E, 1496 }, - { 0x307F, 2903 }, - { 0x3080, 4040 }, - { 0x3081, 2906 }, - { 0x3082, 2921 }, - { 0x3083, 1499 }, - { 0x3084, 2915 }, - { 0x3085, 4043 }, - { 0x3086, 2918 }, - { 0x3087, 1751 }, - { 0x3088, 1754 }, - { 0x3089, 929 }, - { 0x308A, 1748 }, - { 0x308B, 3167 }, - { 0x308C, 1745 }, - { 0x308D, 3164 }, - { 0x308E, 1724 }, - { 0x308F, 1727 }, - { 0x3090, 923 }, - { 0x3091, 1721 }, - { 0x3092, 3173 }, - { 0x3093, 3176 }, - { 0x3094, 1766 }, - { 0x3095, 3170 }, - { 0x3096, 1760 }, - { 0x3097, 1763 }, - { 0x3098, 932 }, - { 0x3099, 1757 }, - { 0x309A, 1730 }, - { 0x309B, 926 }, - { 0x309C, 1775 }, - { 0x309D, 1778 }, - { 0x309E, 935 }, - { 0x309F, 1769 }, - { 0x30A0, 3179 }, - { 0x30A1, 1772 }, - { 0x30A2, 1784 }, - { 0x30A3, 1787 }, - { 0x30A4, 938 }, - { 0x30A5, 1781 }, - { 0x30A6, 1346 }, - { 0x30A7, 1349 }, - { 0x30A8, 830 }, - { 0x30A9, 1343 }, - { 0x30AA, 1337 }, - { 0x30AB, 1340 }, - { 0x30AC, 827 }, - { 0x30AD, 1334 }, - { 0x30AE, 1355 }, - { 0x30AF, 833 }, - { 0x30B0, 1352 }, - { 0x30B1, 1364 }, - { 0x30B2, 1367 }, - { 0x30B3, 836 }, - { 0x30B4, 1358 }, - { 0x30B5, 2732 }, - { 0x30B6, 1361 }, - { 0x30B7, 1373 }, - { 0x30B8, 1376 }, - { 0x30B9, 839 }, - { 0x30BA, 1370 }, - { 0x30BB, 2273 }, - { 0x30BC, 2276 }, - { 0x30BD, 1046 }, - { 0x30BE, 2270 }, - { 0x30BF, 3761 }, - { 0x30C0, 3764 }, - { 0x30C1, 2267 }, - { 0x30C2, 3758 }, - { 0x30C3, 2255 }, - { 0x30C4, 2258 }, - { 0x30C5, 1043 }, - { 0x30C6, 2252 }, - { 0x30C7, 2282 }, - { 0x30C8, 2285 }, - { 0x30C9, 1049 }, - { 0x30CA, 2279 }, - { 0x30CB, 2264 }, - { 0x30CC, 2261 }, - { 0x30CD, 2294 }, - { 0x30CE, 2297 }, - { 0x30CF, 1052 }, - { 0x30D0, 2288 }, - { 0x30D1, 3767 }, - { 0x30D2, 2291 }, - { 0x30D3, 2306 }, - { 0x30D4, 2309 }, - { 0x30D5, 1055 }, - { 0x30D6, 2300 }, - { 0x30D7, 3770 }, - { 0x30D8, 2303 }, - { 0x30D9, 1304 }, - { 0x30DA, 1307 }, - { 0x30DB, 815 }, - { 0x30DC, 1301 }, - { 0x30DD, 2723 }, - { 0x30DE, 1298 }, - { 0x30DF, 2720 }, - { 0x30E0, 1271 }, - { 0x30E1, 1274 }, - { 0x30E2, 809 }, - { 0x30E3, 1268 }, - { 0x30E4, 2726 }, - { 0x30E5, 1319 }, - { 0x30E6, 1313 }, - { 0x30E7, 1316 }, - { 0x30E8, 818 }, - { 0x30E9, 1310 }, - { 0x30EA, 1295 }, - { 0x30EB, 812 }, - { 0x30EC, 1292 }, - { 0x30ED, 1328 }, - { 0x30EE, 1331 }, - { 0x30EF, 821 }, - { 0x30F0, 1322 }, - { 0x30F1, 2729 }, - { 0x30F2, 1325 }, - { 0x30F3, 2216 }, - { 0x30F4, 2219 }, - { 0x30F5, 1031 }, - { 0x30F6, 2213 }, - { 0x30F7, 3743 }, - { 0x30F8, 2210 }, - { 0x30F9, 3740 }, - { 0x30FA, 2198 }, - { 0x30FB, 2201 }, - { 0x30FC, 1025 }, - { 0x30FD, 2195 }, - { 0x30FE, 3749 }, - { 0x30FF, 3752 }, - { 0x3100, 2231 }, - { 0x3101, 3746 }, - { 0x3102, 2225 }, - { 0x3103, 2228 }, - { 0x3104, 1034 }, - { 0x3105, 2222 }, - { 0x3106, 2207 }, - { 0x3107, 1028 }, - { 0x3108, 2204 }, - { 0x3109, 2240 }, - { 0x310A, 2243 }, - { 0x310B, 1037 }, - { 0x310C, 2234 }, - { 0x310D, 3755 }, - { 0x310E, 2237 }, - { 0x310F, 2690 }, - { 0x3110, 2693 }, - { 0x3111, 1283 }, - { 0x3112, 2687 }, - { 0x3113, 3980 }, - { 0x3114, 2684 }, - { 0x3115, 3977 }, - { 0x3116, 2672 }, - { 0x3117, 2675 }, - { 0x3118, 1277 }, - { 0x3119, 2669 }, - { 0x311A, 3986 }, - { 0x311B, 2705 }, - { 0x311C, 3983 }, - { 0x311D, 2699 }, - { 0x311E, 2702 }, - { 0x311F, 1286 }, - { 0x3120, 2696 }, - { 0x3121, 2681 }, - { 0x3122, 1280 }, - { 0x3123, 2678 }, - { 0x3124, 2714 }, - { 0x3125, 2717 }, - { 0x3126, 1289 }, - { 0x3127, 2708 }, - { 0x3128, 3989 }, - { 0x3129, 2711 }, - { 0x312A, 3257 }, - { 0x312B, 3260 }, - { 0x312C, 1817 }, - { 0x312D, 3254 }, - { 0x312E, 4118 }, - { 0x312F, 3251 }, - { 0x3130, 3239 }, - { 0x3131, 3242 }, - { 0x3132, 1811 }, - { 0x3133, 3236 }, - { 0x3134, 3266 }, - { 0x3135, 3269 }, - { 0x3136, 1820 }, - { 0x3137, 3263 }, - { 0x3138, 3248 }, - { 0x3139, 1814 }, - { 0x313A, 3245 }, - { 0x313B, 3278 }, - { 0x313C, 3281 }, - { 0x313D, 1823 }, - { 0x313E, 3272 }, - { 0x313F, 4121 }, - { 0x3140, 3275 }, - { 0x3141, 2945 }, - { 0x3142, 2948 }, - { 0x3143, 1508 }, - { 0x3144, 2942 }, - { 0x3145, 4049 }, - { 0x3146, 4052 }, - { 0x3147, 2939 }, - { 0x3148, 4046 }, - { 0x3149, 2927 }, - { 0x314A, 2930 }, - { 0x314B, 1502 }, - { 0x314C, 2924 }, - { 0x314D, 4055 }, - { 0x314E, 2960 }, - { 0x314F, 2954 }, - { 0x3150, 2957 }, - { 0x3151, 2951 }, - { 0x3152, 2936 }, - { 0x3153, 1505 }, - { 0x3154, 2933 }, - { 0x3155, 2963 }, - { 0x3156, 1847 }, - { 0x3157, 1850 }, - { 0x3158, 947 }, - { 0x3159, 1844 }, - { 0x315A, 3317 }, - { 0x315B, 1841 }, - { 0x315C, 3314 }, - { 0x315D, 1793 }, - { 0x315E, 941 }, - { 0x315F, 1790 }, - { 0x3160, 3416 }, - { 0x3161, 1889 }, - { 0x3162, 3413 }, - { 0x3163, 1868 }, - { 0x3164, 1871 }, - { 0x3165, 950 }, - { 0x3166, 1865 }, - { 0x3167, 1829 }, - { 0x3168, 944 }, - { 0x3169, 1826 }, - { 0x316A, 1898 }, - { 0x316B, 1901 }, - { 0x316C, 953 }, - { 0x316D, 1892 }, - { 0x316E, 3419 }, - { 0x316F, 1895 }, - { 0x3170, 2831 }, - { 0x3171, 2834 }, - { 0x3172, 1475 }, - { 0x3173, 2828 }, - { 0x3174, 4013 }, - { 0x3175, 2825 }, - { 0x3176, 4010 }, - { 0x3177, 2813 }, - { 0x3178, 2816 }, - { 0x3179, 1469 }, - { 0x317A, 2810 }, - { 0x317B, 4019 }, - { 0x317C, 2843 }, - { 0x317D, 4016 }, - { 0x317E, 2840 }, - { 0x317F, 1478 }, - { 0x3180, 2837 }, - { 0x3181, 2822 }, - { 0x3182, 1472 }, - { 0x3183, 2819 }, - { 0x3184, 2852 }, - { 0x3185, 2855 }, - { 0x3186, 1481 }, - { 0x3187, 2846 }, - { 0x3188, 4022 }, - { 0x3189, 2849 }, - { 0x318A, 2864 }, - { 0x318B, 2867 }, - { 0x318C, 1484 }, - { 0x318D, 2858 }, - { 0x318E, 4025 }, - { 0x318F, 2861 }, - { 0x3190, 1679 }, - { 0x3191, 1682 }, - { 0x3192, 911 }, - { 0x3193, 1676 }, - { 0x3194, 3101 }, - { 0x3195, 3104 }, - { 0x3196, 1673 }, - { 0x3197, 3098 }, - { 0x3198, 1661 }, - { 0x3199, 1664 }, - { 0x319A, 905 }, - { 0x319B, 1658 }, - { 0x319C, 3110 }, - { 0x319D, 3113 }, - { 0x319E, 1694 }, - { 0x319F, 3107 }, - { 0x31A0, 1688 }, - { 0x31A1, 1691 }, - { 0x31A2, 914 }, - { 0x31A3, 1685 }, - { 0x31A4, 1670 }, - { 0x31A5, 908 }, - { 0x31A6, 1667 }, - { 0x31A7, 1703 }, - { 0x31A8, 1706 }, - { 0x31A9, 917 }, - { 0x31AA, 1697 }, - { 0x31AB, 3116 }, - { 0x31AC, 1700 }, - { 0x31AD, 1715 }, - { 0x31AE, 1718 }, - { 0x31AF, 920 }, - { 0x31B0, 1709 }, - { 0x31B1, 3119 }, - { 0x31B2, 1712 }, - { 0x31B3, 1418 }, - { 0x31B4, 1421 }, - { 0x31B5, 848 }, - { 0x31B6, 1415 }, - { 0x31B7, 2789 }, - { 0x31B8, 2792 }, - { 0x31B9, 1412 }, - { 0x31BA, 2786 }, - { 0x31BB, 1382 }, - { 0x31BC, 1385 }, - { 0x31BD, 842 }, - { 0x31BE, 1379 }, - { 0x31BF, 2798 }, - { 0x31C0, 2801 }, - { 0x31C1, 1433 }, - { 0x31C2, 2795 }, - { 0x31C3, 1427 }, - { 0x31C4, 1430 }, - { 0x31C5, 851 }, - { 0x31C6, 1424 }, - { 0x31C7, 1391 }, - { 0x31C8, 1394 }, - { 0x31C9, 845 }, - { 0x31CA, 1388 }, - { 0x31CB, 1442 }, - { 0x31CC, 1445 }, - { 0x31CD, 854 }, - { 0x31CE, 1436 }, - { 0x31CF, 2804 }, - { 0x31D0, 1439 }, - { 0x31D1, 1628 }, - { 0x31D2, 1631 }, - { 0x31D3, 896 }, - { 0x31D4, 1625 }, - { 0x31D5, 3086 }, - { 0x31D6, 1622 }, - { 0x31D7, 3083 }, - { 0x31D8, 1607 }, - { 0x31D9, 1610 }, - { 0x31DA, 890 }, - { 0x31DB, 1604 }, - { 0x31DC, 3092 }, - { 0x31DD, 1643 }, - { 0x31DE, 3089 }, - { 0x31DF, 1637 }, - { 0x31E0, 1640 }, - { 0x31E1, 899 }, - { 0x31E2, 1634 }, - { 0x31E3, 1616 }, - { 0x31E4, 1619 }, - { 0x31E5, 893 }, - { 0x31E6, 1613 }, - { 0x31E7, 1652 }, - { 0x31E8, 1655 }, - { 0x31E9, 902 }, - { 0x31EA, 1646 }, - { 0x31EB, 3095 }, - { 0x31EC, 1649 }, - { 0x31ED, 2756 }, - { 0x31EE, 2759 }, - { 0x31EF, 1403 }, - { 0x31F0, 3995 }, - { 0x31F1, 2753 }, - { 0x31F2, 3992 }, - { 0x31F3, 2738 }, - { 0x31F4, 2741 }, - { 0x31F5, 1397 }, - { 0x31F6, 2735 }, - { 0x31F7, 4001 }, - { 0x31F8, 4004 }, - { 0x31F9, 2771 }, - { 0x31FA, 3998 }, - { 0x31FB, 2765 }, - { 0x31FC, 2768 }, - { 0x31FD, 1406 }, - { 0x31FE, 2762 }, - { 0x31FF, 2747 }, - { 0x3200, 2750 }, - { 0x3201, 1400 }, - { 0x3202, 2744 }, - { 0x3203, 2780 }, - { 0x3204, 2783 }, - { 0x3205, 1409 }, - { 0x3206, 2774 }, - { 0x3207, 4007 }, - { 0x3208, 2777 }, - { 0x3209, 4094 }, - { 0x320A, 3137 }, - { 0x320B, 3125 }, - { 0x320C, 3128 }, - { 0x320D, 1733 }, - { 0x320E, 3122 }, - { 0x320F, 4100 }, - { 0x3210, 3149 }, - { 0x3211, 4097 }, - { 0x3212, 3143 }, - { 0x3213, 3146 }, - { 0x3214, 1739 }, - { 0x3215, 3140 }, - { 0x3216, 3134 }, - { 0x3217, 1736 }, - { 0x3218, 3131 }, - { 0x3219, 3158 }, - { 0x321A, 3161 }, - { 0x321B, 1742 }, - { 0x321C, 3152 }, - { 0x321D, 4103 }, - { 0x321E, 3155 }, - { 0x321F, 2996 }, - { 0x3220, 2999 }, - { 0x3221, 1529 }, - { 0x3222, 2993 }, - { 0x3223, 4061 }, - { 0x3224, 4064 }, - { 0x3225, 2990 }, - { 0x3226, 4058 }, - { 0x3227, 2978 }, - { 0x3228, 2981 }, - { 0x3229, 1523 }, - { 0x322A, 2975 }, - { 0x322B, 4070 }, - { 0x322C, 4073 }, - { 0x322D, 3011 }, - { 0x322E, 4067 }, - { 0x322F, 3005 }, - { 0x3230, 3008 }, - { 0x3231, 1532 }, - { 0x3232, 3002 }, - { 0x3233, 2987 }, - { 0x3234, 1526 }, - { 0x3235, 2984 }, - { 0x3236, 4127 }, - { 0x3237, 3299 }, - { 0x3238, 4124 }, - { 0x3239, 3287 }, - { 0x323A, 3290 }, - { 0x323B, 1832 }, - { 0x323C, 3284 }, - { 0x323D, 4130 }, - { 0x323E, 4133 }, - { 0x323F, 3311 }, - { 0x3240, 3305 }, - { 0x3241, 3308 }, - { 0x3242, 1838 }, - { 0x3243, 3302 }, - { 0x3244, 3296 }, - { 0x3245, 1835 }, - { 0x3246, 3293 }, - { 0x3247, 1466 }, - { 0x3248, 2807 }, - { 0x3249, 1463 }, - { 0x324A, 1451 }, - { 0x324B, 1454 }, - { 0x324C, 857 }, - { 0x324D, 1448 }, - { 0x324E, 2969 }, - { 0x324F, 2972 }, - { 0x3250, 1520 }, - { 0x3251, 2966 }, - { 0x3252, 1514 }, - { 0x3253, 1517 }, - { 0x3254, 863 }, - { 0x3255, 1511 }, - { 0x3256, 1460 }, - { 0x3257, 860 }, - { 0x3258, 1457 }, - { 0x3259, 2315 }, - { 0x325A, 2318 }, - { 0x325B, 1058 }, - { 0x325C, 2312 }, - { 0x325D, 3776 }, - { 0x325E, 2333 }, - { 0x325F, 3773 }, - { 0x3260, 2330 }, - { 0x3261, 1064 }, - { 0x3262, 2327 }, - { 0x3263, 2324 }, - { 0x3264, 1061 }, - { 0x3265, 2321 }, - { 0x3266, 2456 }, - { 0x3267, 2459 }, - { 0x3268, 1097 }, - { 0x3269, 2453 }, - { 0x326A, 3875 }, - { 0x326B, 2450 }, - { 0x326C, 3872 }, - { 0x326D, 2423 }, - { 0x326E, 2426 }, - { 0x326F, 1091 }, - { 0x3270, 2420 }, - { 0x3271, 3881 }, - { 0x3272, 2471 }, - { 0x3273, 3878 }, - { 0x3274, 2465 }, - { 0x3275, 2468 }, - { 0x3276, 1100 }, - { 0x3277, 2462 }, - { 0x3278, 2432 }, - { 0x3279, 1094 }, - { 0x327A, 2429 }, - { 0x327B, 2480 }, - { 0x327C, 2483 }, - { 0x327D, 1103 }, - { 0x327E, 2474 }, - { 0x327F, 3884 }, - { 0x3280, 2477 }, - { 0x3281, 2492 }, - { 0x3282, 2495 }, - { 0x3283, 1106 }, - { 0x3284, 2486 }, - { 0x3285, 3887 }, - { 0x3286, 2489 }, - { 0x3287, 1226 }, - { 0x3288, 1229 }, - { 0x3289, 797 }, - { 0x328A, 1223 }, - { 0x328B, 2651 }, - { 0x328C, 2654 }, - { 0x328D, 1220 }, - { 0x328E, 2648 }, - { 0x328F, 1193 }, - { 0x3290, 1196 }, - { 0x3291, 791 }, - { 0x3292, 1190 }, - { 0x3293, 2660 }, - { 0x3294, 1241 }, - { 0x3295, 2657 }, - { 0x3296, 1235 }, - { 0x3297, 1238 }, - { 0x3298, 800 }, - { 0x3299, 1232 }, - { 0x329A, 1202 }, - { 0x329B, 794 }, - { 0x329C, 1199 }, - { 0x329D, 1250 }, - { 0x329E, 1253 }, - { 0x329F, 803 }, - { 0x32A0, 1244 }, - { 0x32A1, 2663 }, - { 0x32A2, 1247 }, - { 0x32A3, 1262 }, - { 0x32A4, 1265 }, - { 0x32A5, 806 }, - { 0x32A6, 1256 }, - { 0x32A7, 2666 }, - { 0x32A8, 1259 }, - { 0x32A9, 3911 }, - { 0x32AA, 3914 }, - { 0x32AB, 2504 }, - { 0x32AC, 3908 }, - { 0x32AD, 4235 }, - { 0x32AE, 4238 }, - { 0x32AF, 3905 }, - { 0x32B0, 4232 }, - { 0x32B1, 3893 }, - { 0x32B2, 3896 }, - { 0x32B3, 2498 }, - { 0x32B4, 3890 }, - { 0x32B5, 3920 }, - { 0x32B6, 2507 }, - { 0x32B7, 3917 }, - { 0x32B8, 3902 }, - { 0x32B9, 2501 }, - { 0x32BA, 3899 }, - { 0x32BB, 3929 }, - { 0x32BC, 2510 }, - { 0x32BD, 3923 }, - { 0x32BE, 4241 }, - { 0x32BF, 3926 }, - { 0x32C0, 3938 }, - { 0x32C1, 3941 }, - { 0x32C2, 2513 }, - { 0x32C3, 3932 }, - { 0x32C4, 4244 }, - { 0x32C5, 3935 }, - { 0x32C6, 3473 }, - { 0x32C7, 3476 }, - { 0x32C8, 1919 }, - { 0x32C9, 3470 }, - { 0x32CA, 4178 }, - { 0x32CB, 3467 }, - { 0x32CC, 4175 }, - { 0x32CD, 3458 }, - { 0x32CE, 3461 }, - { 0x32CF, 1913 }, - { 0x32D0, 3455 }, - { 0x32D1, 4181 }, - { 0x32D2, 3485 }, - { 0x32D3, 3482 }, - { 0x32D4, 3479 }, - { 0x32D5, 3464 }, - { 0x32D6, 1916 }, - { 0x32D7, 3494 }, - { 0x32D8, 1922 }, - { 0x32D9, 3488 }, - { 0x32DA, 4184 }, - { 0x32DB, 3491 }, - { 0x32DC, 3503 }, - { 0x32DD, 3506 }, - { 0x32DE, 1925 }, - { 0x32DF, 3497 }, - { 0x32E0, 4187 }, - { 0x32E1, 3500 }, - { 0x32E2, 2135 }, - { 0x32E3, 2138 }, - { 0x32E4, 1013 }, - { 0x32E5, 2132 }, - { 0x32E6, 3668 }, - { 0x32E7, 2129 }, - { 0x32E8, 3665 }, - { 0x32E9, 2102 }, - { 0x32EA, 2105 }, - { 0x32EB, 1007 }, - { 0x32EC, 2099 }, - { 0x32ED, 3731 }, - { 0x32EE, 2168 }, - { 0x32EF, 3728 }, - { 0x32F0, 2144 }, - { 0x32F1, 2147 }, - { 0x32F2, 1016 }, - { 0x32F3, 2141 }, - { 0x32F4, 2111 }, - { 0x32F5, 1010 }, - { 0x32F6, 2108 }, - { 0x32F7, 2177 }, - { 0x32F8, 2180 }, - { 0x32F9, 1019 }, - { 0x32FA, 2171 }, - { 0x32FB, 3734 }, - { 0x32FC, 2174 }, - { 0x32FD, 2189 }, - { 0x32FE, 2192 }, - { 0x32FF, 1022 }, - { 0x3300, 2183 }, - { 0x3301, 3737 }, - { 0x3302, 2186 }, - { 0x3303, 3692 }, - { 0x3304, 3695 }, - { 0x3305, 2156 }, - { 0x3306, 3689 }, - { 0x3307, 4214 }, - { 0x3308, 3686 }, - { 0x3309, 4211 }, - { 0x330A, 3674 }, - { 0x330B, 3677 }, - { 0x330C, 2150 }, - { 0x330D, 3671 }, - { 0x330E, 3701 }, - { 0x330F, 3704 }, - { 0x3310, 2159 }, - { 0x3311, 3698 }, - { 0x3312, 3683 }, - { 0x3313, 2153 }, - { 0x3314, 3680 }, - { 0x3315, 3710 }, - { 0x3316, 3713 }, - { 0x3317, 2162 }, - { 0x3318, 3707 }, - { 0x3319, 3722 }, - { 0x331A, 3725 }, - { 0x331B, 2165 }, - { 0x331C, 3716 }, - { 0x331D, 4217 }, - { 0x331E, 3719 }, - { 0x331F, 3821 }, - { 0x3320, 3824 }, - { 0x3321, 2435 }, - { 0x3322, 3818 }, - { 0x3323, 4223 }, - { 0x3324, 3845 }, - { 0x3325, 4220 }, - { 0x3326, 3839 }, - { 0x3327, 3842 }, - { 0x3328, 2441 }, - { 0x3329, 3836 }, - { 0x332A, 3830 }, - { 0x332B, 3833 }, - { 0x332C, 2438 }, - { 0x332D, 3827 }, - { 0x332E, 3854 }, - { 0x332F, 3857 }, - { 0x3330, 2444 }, - { 0x3331, 3848 }, - { 0x3332, 4226 }, - { 0x3333, 3851 }, - { 0x3334, 3866 }, - { 0x3335, 3869 }, - { 0x3336, 2447 }, - { 0x3337, 3860 }, - { 0x3338, 4229 }, - { 0x3339, 3863 }, - { 0x333A, 2600 }, - { 0x333B, 2603 }, - { 0x333C, 1205 }, - { 0x333D, 2597 }, - { 0x333E, 3965 }, - { 0x333F, 3968 }, - { 0x3340, 2624 }, - { 0x3341, 3962 }, - { 0x3342, 2618 }, - { 0x3343, 2621 }, - { 0x3344, 1211 }, - { 0x3345, 2615 }, - { 0x3346, 2609 }, - { 0x3347, 2612 }, - { 0x3348, 1208 }, - { 0x3349, 2606 }, - { 0x334A, 2633 }, - { 0x334B, 1214 }, - { 0x334C, 2627 }, - { 0x334D, 3971 }, - { 0x334E, 2630 }, - { 0x334F, 2642 }, - { 0x3350, 2645 }, - { 0x3351, 1217 }, - { 0x3352, 2636 }, - { 0x3353, 3974 }, - { 0x3354, 2639 }, - { 0x3355, 3551 }, - { 0x3356, 2057 }, - { 0x3357, 4190 }, - { 0x3358, 3572 }, - { 0x3359, 3566 }, - { 0x335A, 3569 }, - { 0x335B, 2063 }, - { 0x335C, 3563 }, - { 0x335D, 3557 }, - { 0x335E, 3560 }, - { 0x335F, 2060 }, - { 0x3360, 3554 }, - { 0x3361, 3581 }, - { 0x3362, 3584 }, - { 0x3363, 2066 }, - { 0x3364, 3575 }, - { 0x3365, 4193 }, - { 0x3366, 3578 }, - { 0x3367, 3593 }, - { 0x3368, 3596 }, - { 0x3369, 2069 }, - { 0x336A, 3587 }, - { 0x336B, 4196 }, - { 0x336C, 3590 }, - { 0x336D, 3368 }, - { 0x336E, 3371 }, - { 0x336F, 1874 }, - { 0x3370, 3365 }, - { 0x3371, 3386 }, - { 0x3372, 1880 }, - { 0x3373, 3383 }, - { 0x3374, 3377 }, - { 0x3375, 3380 }, - { 0x3376, 1877 }, - { 0x3377, 3374 }, - { 0x3378, 3395 }, - { 0x3379, 3398 }, - { 0x337A, 1883 }, - { 0x337B, 3389 }, - { 0x337C, 4154 }, - { 0x337D, 3392 }, - { 0x337E, 3407 }, - { 0x337F, 3410 }, - { 0x3380, 1886 }, - { 0x3381, 3401 }, - { 0x3382, 4157 }, - { 0x3383, 3404 }, - { 0x3384, 3614 }, - { 0x3385, 3617 }, - { 0x3386, 2114 }, - { 0x3387, 3611 }, - { 0x3388, 4202 }, - { 0x3389, 3638 }, - { 0x338A, 4199 }, - { 0x338B, 3632 }, - { 0x338C, 3635 }, - { 0x338D, 2120 }, - { 0x338E, 3629 }, - { 0x338F, 3623 }, - { 0x3390, 3626 }, - { 0x3391, 2117 }, - { 0x3392, 3620 }, - { 0x3393, 3647 }, - { 0x3394, 3650 }, - { 0x3395, 2123 }, - { 0x3396, 3641 }, - { 0x3397, 4205 }, - { 0x3398, 3644 }, - { 0x3399, 3659 }, - { 0x339A, 3662 }, - { 0x339B, 2126 }, - { 0x339C, 3653 }, - { 0x339D, 4208 }, - { 0x339E, 3656 }, - { 0x339F, 2036 }, - { 0x33A0, 2039 }, - { 0x33A1, 992 }, - { 0x33A2, 2033 }, - { 0x33A3, 3602 }, - { 0x33A4, 2072 }, - { 0x33A5, 3599 }, - { 0x33A6, 2051 }, - { 0x33A7, 2054 }, - { 0x33A8, 998 }, - { 0x33A9, 2048 }, - { 0x33AA, 2045 }, - { 0x33AB, 995 }, - { 0x33AC, 2042 }, - { 0x33AD, 2081 }, - { 0x33AE, 2084 }, - { 0x33AF, 1001 }, - { 0x33B0, 2075 }, - { 0x33B1, 3605 }, - { 0x33B2, 2078 }, - { 0x33B3, 2093 }, - { 0x33B4, 2096 }, - { 0x33B5, 1004 }, - { 0x33B6, 2087 }, - { 0x33B7, 3608 }, - { 0x33B8, 2090 }, - { 0x33B9, 1550 }, - { 0x33BA, 1553 }, - { 0x33BB, 878 }, - { 0x33BC, 1547 }, - { 0x33BD, 3017 }, - { 0x33BE, 3020 }, - { 0x33BF, 1544 }, - { 0x33C0, 3014 }, - { 0x33C1, 3071 }, - { 0x33C2, 3074 }, - { 0x33C3, 1577 }, - { 0x33C4, 3068 }, - { 0x33C5, 1571 }, - { 0x33C6, 1574 }, - { 0x33C7, 881 }, - { 0x33C8, 1568 }, - { 0x33C9, 1586 }, - { 0x33CA, 1589 }, - { 0x33CB, 884 }, - { 0x33CC, 1580 }, - { 0x33CD, 3077 }, - { 0x33CE, 1583 }, - { 0x33CF, 1598 }, - { 0x33D0, 1601 }, - { 0x33D1, 887 }, - { 0x33D2, 1592 }, - { 0x33D3, 3080 }, - { 0x33D4, 1595 }, - { 0x33D5, 1991 }, - { 0x33D6, 1994 }, - { 0x33D7, 980 }, - { 0x33D8, 1988 }, - { 0x33D9, 3530 }, - { 0x33DA, 3533 }, - { 0x33DB, 1985 }, - { 0x33DC, 3527 }, - { 0x33DD, 3539 }, - { 0x33DE, 3542 }, - { 0x33DF, 2006 }, - { 0x33E0, 3536 }, - { 0x33E1, 2000 }, - { 0x33E2, 2003 }, - { 0x33E3, 983 }, - { 0x33E4, 1997 }, - { 0x33E5, 2015 }, - { 0x33E6, 2018 }, - { 0x33E7, 986 }, - { 0x33E8, 2009 }, - { 0x33E9, 3545 }, - { 0x33EA, 2012 }, - { 0x33EB, 2027 }, - { 0x33EC, 2030 }, - { 0x33ED, 989 }, - { 0x33EE, 2021 }, - { 0x33EF, 3548 }, - { 0x33F0, 2024 }, - { 0x33F1, 3029 }, - { 0x33F2, 3032 }, - { 0x33F3, 1556 }, - { 0x33F4, 3026 }, - { 0x33F5, 4079 }, - { 0x33F6, 4082 }, - { 0x33F7, 3023 }, - { 0x33F8, 4076 }, - { 0x33F9, 4088 }, - { 0x33FA, 3044 }, - { 0x33FB, 4085 }, - { 0x33FC, 3038 }, - { 0x33FD, 3041 }, - { 0x33FE, 1559 }, - { 0x33FF, 3035 }, - { 0x3400, 3053 }, - { 0x3401, 3056 }, - { 0x3402, 1562 }, - { 0x3403, 3047 }, - { 0x3404, 4091 }, - { 0x3405, 3050 }, - { 0x3406, 3062 }, - { 0x3407, 3065 }, - { 0x3408, 1565 }, - { 0x3409, 3059 }, - { 0x340A, 3326 }, - { 0x340B, 3329 }, - { 0x340C, 1853 }, - { 0x340D, 3323 }, - { 0x340E, 4139 }, - { 0x340F, 4142 }, - { 0x3410, 3320 }, - { 0x3411, 4136 }, - { 0x3412, 4145 }, - { 0x3413, 3341 }, - { 0x3414, 3335 }, - { 0x3415, 3338 }, - { 0x3416, 1856 }, - { 0x3417, 3332 }, - { 0x3418, 3350 }, - { 0x3419, 1859 }, - { 0x341A, 3344 }, - { 0x341B, 4148 }, - { 0x341C, 3347 }, - { 0x341D, 3359 }, - { 0x341E, 3362 }, - { 0x341F, 1862 }, - { 0x3420, 3353 }, - { 0x3421, 4151 }, - { 0x3422, 3356 }, - { 0x3423, 3428 }, - { 0x3424, 3431 }, - { 0x3425, 1904 }, - { 0x3426, 3425 }, - { 0x3427, 4163 }, - { 0x3428, 4166 }, - { 0x3429, 3422 }, - { 0x342A, 4160 }, - { 0x342B, 4172 }, - { 0x342C, 3443 }, - { 0x342D, 4169 }, - { 0x342E, 3437 }, - { 0x342F, 3440 }, - { 0x3430, 1907 }, - { 0x3431, 3434 }, - { 0x3432, 3449 }, - { 0x3433, 3452 }, - { 0x3434, 1910 }, - { 0x3435, 3446 }, - { 0x3436, 2342 }, - { 0x3437, 2345 }, - { 0x3438, 1070 }, - { 0x3439, 2339 }, - { 0x343A, 3782 }, - { 0x343B, 3785 }, - { 0x343C, 2336 }, - { 0x343D, 3779 }, - { 0x343E, 3788 }, - { 0x343F, 2357 }, - { 0x3440, 2351 }, - { 0x3441, 2354 }, - { 0x3442, 1073 }, - { 0x3443, 2348 }, - { 0x3444, 2366 }, - { 0x3445, 2369 }, - { 0x3446, 1076 }, - { 0x3447, 2360 }, - { 0x3448, 3791 }, - { 0x3449, 2363 }, - { 0x344A, 2378 }, - { 0x344B, 2381 }, - { 0x344C, 1079 }, - { 0x344D, 2375 }, - { 0x344E, 3797 }, - { 0x344F, 3800 }, - { 0x3450, 2372 }, - { 0x3451, 3794 }, - { 0x3452, 3806 }, - { 0x3453, 3809 }, - { 0x3454, 2393 }, - { 0x3455, 3803 }, - { 0x3456, 2387 }, - { 0x3457, 2390 }, - { 0x3458, 1082 }, - { 0x3459, 2384 }, - { 0x345A, 2402 }, - { 0x345B, 2405 }, - { 0x345C, 1085 }, - { 0x345D, 2396 }, - { 0x345E, 3812 }, - { 0x345F, 2399 }, - { 0x3460, 2414 }, - { 0x3461, 2417 }, - { 0x3462, 1088 }, - { 0x3463, 2408 }, - { 0x3464, 3815 }, - { 0x3465, 2411 }, - { 0x3466, 668 }, - { 0x3467, 602 }, - { 0x3468, 650 }, - { 0x3469, 731 }, - { 0x346A, 632 }, - { 0x346B, 674 }, - { 0x346C, 707 }, - { 0x346D, 638 }, - { 0x346E, 605 }, - { 0x346F, 713 }, - { 0x3470, 656 }, - { 0x3471, 698 }, - { 0x3472, 659 }, - { 0x3473, 617 }, - { 0x3474, 662 }, - { 0x3475, 719 }, - { 0x3476, 677 }, - { 0x3477, 593 }, - { 0x3478, 692 }, - { 0x3479, 635 }, - { 0x347A, 704 }, - { 0x347B, 623 }, - { 0x347C, 710 }, - { 0x347D, 734 }, - { 0x347E, 611 }, - { 0x347F, 608 }, - { 0x3480, 725 }, - { 0x3481, 689 }, - { 0x3482, 665 }, - { 0x3483, 644 }, - { 0x3484, 686 }, - { 0x3485, 683 }, - { 0x3486, 671 }, - { 0x3487, 680 }, - { 0x3488, 620 }, - { 0x3489, 596 }, - { 0x348A, 737 }, - { 0x348B, 647 }, - { 0x348C, 641 }, - { 0x348D, 722 }, - { 0x348E, 614 }, - { 0x348F, 590 }, - { 0x3490, 746 }, - { 0x3491, 653 }, - { 0x3492, 587 }, - { 0x3493, 701 }, - { 0x3494, 629 }, - { 0x3495, 716 }, - { 0x3496, 740 }, - { 0x3497, 695 }, - { 0x3498, 743 }, - { 0x3499, 626 }, - { 0x349A, 749 }, - { 0x349B, 728 }, - { 0x349C, 599 }, - { 0x349D, 15133 }, - { 0x349E, 15172 }, - { 0x349F, 15217 }, - { 0x34A0, 15139 }, - { 0x34A1, 15178 }, - { 0x34A2, 15223 }, - { 0x34A3, 15148 }, - { 0x34A4, 15157 }, - { 0x34A5, 15211 }, - { 0x34A6, 15154 }, - { 0x34A7, 15136 }, - { 0x34A8, 15199 }, - { 0x34A9, 15202 }, - { 0x34AA, 15226 }, - { 0x34AB, 15265 }, - { 0x34AC, 15163 }, - { 0x34AD, 15166 }, - { 0x34AE, 15160 }, - { 0x34AF, 15175 }, - { 0x34B0, 15232 }, - { 0x34B1, 15196 }, - { 0x34B2, 15214 }, - { 0x34B3, 15151 }, - { 0x34B4, 15190 }, - { 0x34B5, 15208 }, - { 0x34B6, 15145 }, - { 0x34B7, 15187 }, - { 0x34B8, 15220 }, - { 0x34B9, 15193 }, - { 0x34BA, 15205 }, - { 0x34BB, 15115 }, - { 0x34BC, 15130 }, - { 0x34BD, 15118 }, - { 0x34BE, 15142 }, - { 0x34BF, 15121 }, - { 0x34C0, 15124 }, - { 0x34C1, 15127 }, - { 0x34C2, 15181 }, - { 0x34C3, 15184 }, - { 0x34C4, 15169 }, - { 0x34C5, 15250 }, - { 0x34C6, 15235 }, - { 0x34C7, 15255 }, - { 0x34C8, 15240 }, - { 0x34C9, 15245 }, - { 0x34CA, 15260 }, - { 0x34CB, 15272 }, - { 0x34CC, 15268 }, - { 0x34CD, 12422 }, - { 0x34CE, 12731 }, - { 0x34CF, 12767 }, - { 0x34D0, 12959 }, - { 0x34D1, 13130 }, - { 0x34D2, 12896 }, - { 0x34D3, 13004 }, - { 0x34D4, 12683 }, - { 0x34D5, 13055 }, - { 0x34D6, 13046 }, - { 0x34D7, 13148 }, - { 0x34D8, 13031 }, - { 0x34D9, 12734 }, - { 0x34DA, 12950 }, - { 0x34DB, 12929 }, - { 0x34DC, 13124 }, - { 0x34DD, 13010 }, - { 0x34DE, 13142 }, - { 0x34DF, 12815 }, - { 0x34E0, 12902 }, - { 0x34E1, 12710 }, - { 0x34E2, 13076 }, - { 0x34E3, 12908 }, - { 0x34E4, 13118 }, - { 0x34E5, 12983 }, - { 0x34E6, 13136 }, - { 0x34E7, 12704 }, - { 0x34E8, 12785 }, - { 0x34E9, 13106 }, - { 0x34EA, 12977 }, - { 0x34EB, 12794 }, - { 0x34EC, 13174 }, - { 0x34ED, 12755 }, - { 0x34EE, 12836 }, - { 0x34EF, 12857 }, - { 0x34F0, 13112 }, - { 0x34F1, 12365 }, - { 0x34F2, 12473 }, - { 0x34F3, 12464 }, - { 0x34F4, 12773 }, - { 0x34F5, 12644 }, - { 0x34F6, 12965 }, - { 0x34F7, 12566 }, - { 0x34F8, 12692 }, - { 0x34F9, 12383 }, - { 0x34FA, 12827 }, - { 0x34FB, 12806 }, - { 0x34FC, 13067 }, - { 0x34FD, 12746 }, - { 0x34FE, 12434 }, - { 0x34FF, 12629 }, - { 0x3500, 12611 }, - { 0x3501, 12938 }, - { 0x3502, 12719 }, - { 0x3503, 13019 }, - { 0x3504, 12512 }, - { 0x3505, 12581 }, - { 0x3506, 12413 }, - { 0x3507, 12848 }, - { 0x3508, 12596 }, - { 0x3509, 12917 }, - { 0x350A, 12674 }, - { 0x350B, 12992 }, - { 0x350C, 12398 }, - { 0x350D, 12482 }, - { 0x350E, 12866 }, - { 0x350F, 12659 }, - { 0x3510, 12497 }, - { 0x3511, 13094 }, - { 0x3512, 12449 }, - { 0x3513, 12527 }, - { 0x3514, 12545 }, - { 0x3515, 12884 }, - { 0x3516, 12359 }, - { 0x3517, 12374 }, - { 0x3518, 13082 }, - { 0x3519, 12458 }, - { 0x351A, 12764 }, - { 0x351B, 12638 }, - { 0x351C, 12956 }, - { 0x351D, 12560 }, - { 0x351E, 12686 }, - { 0x351F, 12377 }, - { 0x3520, 12821 }, - { 0x3521, 12800 }, - { 0x3522, 13043 }, - { 0x3523, 13061 }, - { 0x3524, 12740 }, - { 0x3525, 12428 }, - { 0x3526, 12623 }, - { 0x3527, 12605 }, - { 0x3528, 12932 }, - { 0x3529, 12713 }, - { 0x352A, 13013 }, - { 0x352B, 12506 }, - { 0x352C, 12575 }, - { 0x352D, 12407 }, - { 0x352E, 12842 }, - { 0x352F, 12590 }, - { 0x3530, 12911 }, - { 0x3531, 12668 }, - { 0x3532, 12986 }, - { 0x3533, 12392 }, - { 0x3534, 12476 }, - { 0x3535, 12860 }, - { 0x3536, 12653 }, - { 0x3537, 12491 }, - { 0x3538, 12791 }, - { 0x3539, 13088 }, - { 0x353A, 12443 }, - { 0x353B, 12521 }, - { 0x353C, 12536 }, - { 0x353D, 12878 }, - { 0x353E, 12557 }, - { 0x353F, 12893 }, - { 0x3540, 12779 }, - { 0x3541, 12971 }, - { 0x3542, 13133 }, - { 0x3543, 12899 }, - { 0x3544, 13007 }, - { 0x3545, 12701 }, - { 0x3546, 13058 }, - { 0x3547, 13052 }, - { 0x3548, 13151 }, - { 0x3549, 13040 }, - { 0x354A, 12737 }, - { 0x354B, 12953 }, - { 0x354C, 12947 }, - { 0x354D, 13127 }, - { 0x354E, 13028 }, - { 0x354F, 13145 }, - { 0x3550, 12818 }, - { 0x3551, 12905 }, - { 0x3552, 12728 }, - { 0x3553, 13079 }, - { 0x3554, 12926 }, - { 0x3555, 13121 }, - { 0x3556, 13001 }, - { 0x3557, 13139 }, - { 0x3558, 12707 }, - { 0x3559, 12788 }, - { 0x355A, 13109 }, - { 0x355B, 12980 }, - { 0x355C, 12797 }, - { 0x355D, 13180 }, - { 0x355E, 12761 }, - { 0x355F, 12839 }, - { 0x3560, 12875 }, - { 0x3561, 13115 }, - { 0x3562, 12371 }, - { 0x3563, 12620 }, - { 0x3564, 12470 }, - { 0x3565, 12782 }, - { 0x3566, 12650 }, - { 0x3567, 12974 }, - { 0x3568, 12572 }, - { 0x3569, 12698 }, - { 0x356A, 12389 }, - { 0x356B, 12833 }, - { 0x356C, 12812 }, - { 0x356D, 13073 }, - { 0x356E, 12752 }, - { 0x356F, 12440 }, - { 0x3570, 12635 }, - { 0x3571, 12617 }, - { 0x3572, 12944 }, - { 0x3573, 12725 }, - { 0x3574, 13025 }, - { 0x3575, 12518 }, - { 0x3576, 12587 }, - { 0x3577, 12419 }, - { 0x3578, 12854 }, - { 0x3579, 12602 }, - { 0x357A, 12923 }, - { 0x357B, 12680 }, - { 0x357C, 12998 }, - { 0x357D, 12404 }, - { 0x357E, 12488 }, - { 0x357F, 12872 }, - { 0x3580, 12665 }, - { 0x3581, 12503 }, - { 0x3582, 13100 }, - { 0x3583, 12455 }, - { 0x3584, 12533 }, - { 0x3585, 12551 }, - { 0x3586, 12890 }, - { 0x3587, 12368 }, - { 0x3588, 12554 }, - { 0x3589, 13103 }, - { 0x358A, 12467 }, - { 0x358B, 12776 }, - { 0x358C, 12647 }, - { 0x358D, 12968 }, - { 0x358E, 12569 }, - { 0x358F, 12695 }, - { 0x3590, 12386 }, - { 0x3591, 12830 }, - { 0x3592, 12809 }, - { 0x3593, 13070 }, - { 0x3594, 12749 }, - { 0x3595, 13037 }, - { 0x3596, 12437 }, - { 0x3597, 12632 }, - { 0x3598, 12614 }, - { 0x3599, 12941 }, - { 0x359A, 12722 }, - { 0x359B, 13022 }, - { 0x359C, 12515 }, - { 0x359D, 12584 }, - { 0x359E, 12416 }, - { 0x359F, 12851 }, - { 0x35A0, 12599 }, - { 0x35A1, 12920 }, - { 0x35A2, 12677 }, - { 0x35A3, 12995 }, - { 0x35A4, 12401 }, - { 0x35A5, 12485 }, - { 0x35A6, 12869 }, - { 0x35A7, 12662 }, - { 0x35A8, 12500 }, - { 0x35A9, 13097 }, - { 0x35AA, 12452 }, - { 0x35AB, 12530 }, - { 0x35AC, 12548 }, - { 0x35AD, 12887 }, - { 0x35AE, 12362 }, - { 0x35AF, 12425 }, - { 0x35B0, 13085 }, - { 0x35B1, 12461 }, - { 0x35B2, 12770 }, - { 0x35B3, 12641 }, - { 0x35B4, 12962 }, - { 0x35B5, 12563 }, - { 0x35B6, 12689 }, - { 0x35B7, 12380 }, - { 0x35B8, 12824 }, - { 0x35B9, 12803 }, - { 0x35BA, 13049 }, - { 0x35BB, 13064 }, - { 0x35BC, 12743 }, - { 0x35BD, 13034 }, - { 0x35BE, 12431 }, - { 0x35BF, 12626 }, - { 0x35C0, 12608 }, - { 0x35C1, 12935 }, - { 0x35C2, 12716 }, - { 0x35C3, 13016 }, - { 0x35C4, 12509 }, - { 0x35C5, 12578 }, - { 0x35C6, 12410 }, - { 0x35C7, 12845 }, - { 0x35C8, 12593 }, - { 0x35C9, 12914 }, - { 0x35CA, 12671 }, - { 0x35CB, 12989 }, - { 0x35CC, 12395 }, - { 0x35CD, 12479 }, - { 0x35CE, 12863 }, - { 0x35CF, 12656 }, - { 0x35D0, 12494 }, - { 0x35D1, 13091 }, - { 0x35D2, 13177 }, - { 0x35D3, 12446 }, - { 0x35D4, 12758 }, - { 0x35D5, 12524 }, - { 0x35D6, 12539 }, - { 0x35D7, 12881 }, - { 0x35D8, 12542 }, - { 0x35D9, 13183 }, - { 0x35DA, 12285 }, - { 0x35DB, 12282 }, - { 0x35DC, 12356 }, - { 0x35DD, 13158 }, - { 0x35DE, 13162 }, - { 0x35DF, 13170 }, - { 0x35E0, 12350 }, - { 0x35E1, 12353 }, - { 0x35E2, 12341 }, - { 0x35E3, 12320 }, - { 0x35E4, 12326 }, - { 0x35E5, 12317 }, - { 0x35E6, 12323 }, - { 0x35E7, 12329 }, - { 0x35E8, 12347 }, - { 0x35E9, 12338 }, - { 0x35EA, 12344 }, - { 0x35EB, 12332 }, - { 0x35EC, 12335 }, - { 0x35ED, 12305 }, - { 0x35EE, 12287 }, - { 0x35EF, 12293 }, - { 0x35F0, 12314 }, - { 0x35F1, 12299 }, - { 0x35F2, 12296 }, - { 0x35F3, 12290 }, - { 0x35F4, 12311 }, - { 0x35F5, 12308 }, - { 0x35F6, 12302 }, - { 0x35F7, 13166 }, - { 0x35F8, 13154 }, - { 0x35F9, 89406 }, - { 0x35FA, 88436 }, - { 0x35FB, 89314 }, - { 0x35FC, 88339 }, - { 0x35FD, 89486 }, - { 0x35FE, 88525 }, - { 0x35FF, 89185 }, - { 0x3600, 88189 }, - { 0x3601, 89310 }, - { 0x3602, 88335 }, - { 0x3603, 89545 }, - { 0x3604, 88584 }, - { 0x3605, 89305 }, - { 0x3606, 88330 }, - { 0x3607, 89437 }, - { 0x3608, 88467 }, - { 0x3609, 89283 }, - { 0x360A, 88308 }, - { 0x360B, 89458 }, - { 0x360C, 88493 }, - { 0x360D, 89476 }, - { 0x360E, 88515 }, - { 0x360F, 89442 }, - { 0x3610, 88477 }, - { 0x3611, 89384 }, - { 0x3612, 88409 }, - { 0x3613, 89415 }, - { 0x3614, 88445 }, - { 0x3615, 89463 }, - { 0x3616, 88498 }, - { 0x3617, 88973 }, - { 0x3618, 87977 }, - { 0x3619, 89491 }, - { 0x361A, 88530 }, - { 0x361B, 89243 }, - { 0x361C, 88247 }, - { 0x361D, 89248 }, - { 0x361E, 88252 }, - { 0x361F, 89253 }, - { 0x3620, 88257 }, - { 0x3621, 89540 }, - { 0x3622, 88579 }, - { 0x3623, 89535 }, - { 0x3624, 88574 }, - { 0x3625, 89395 }, - { 0x3626, 88420 }, - { 0x3627, 88644 }, - { 0x3628, 117233 }, - { 0x3629, 117201 }, - { 0x362A, 117417 }, - { 0x362B, 117437 }, - { 0x362C, 110659 }, - { 0x362D, 117412 }, - { 0x362E, 117243 }, - { 0x362F, 117311 }, - { 0x3630, 117251 }, - { 0x3631, 117356 }, - { 0x3632, 117366 }, - { 0x3633, 117361 }, - { 0x3634, 117378 }, - { 0x3635, 117236 }, - { 0x3636, 117427 }, - { 0x3637, 88634 }, - { 0x3638, 89580 }, - { 0x3639, 89029 }, - { 0x363A, 88033 }, - { 0x363B, 89168 }, - { 0x363C, 88172 }, - { 0x363D, 89296 }, - { 0x363E, 88321 }, - { 0x363F, 89156 }, - { 0x3640, 88160 }, - { 0x3641, 89172 }, - { 0x3642, 88176 }, - { 0x3643, 88940 }, - { 0x3644, 87944 }, - { 0x3645, 89122 }, - { 0x3646, 88126 }, - { 0x3647, 89275 }, - { 0x3648, 88295 }, - { 0x3649, 89271 }, - { 0x364A, 88291 }, - { 0x364B, 89263 }, - { 0x364C, 88283 }, - { 0x364D, 89078 }, - { 0x364E, 88082 }, - { 0x364F, 89239 }, - { 0x3650, 88243 }, - { 0x3651, 89390 }, - { 0x3652, 88415 }, - { 0x3653, 89420 }, - { 0x3654, 88450 }, - { 0x3655, 108541 }, - { 0x3656, 108546 }, - { 0x3657, 117263 }, - { 0x3658, 117396 }, - { 0x3659, 18010 }, - { 0x365A, 18031 }, - { 0x365B, 18022 }, - { 0x365C, 18040 }, - { 0x365D, 18025 }, - { 0x365E, 18130 }, - { 0x365F, 18151 }, - { 0x3660, 18019 }, - { 0x3661, 18118 }, - { 0x3662, 18013 }, - { 0x3663, 18043 }, - { 0x3664, 18073 }, - { 0x3665, 18136 }, - { 0x3666, 18211 }, - { 0x3667, 18223 }, - { 0x3668, 18226 }, - { 0x3669, 18148 }, - { 0x366A, 18181 }, - { 0x366B, 18229 }, - { 0x366C, 18016 }, - { 0x366D, 18145 }, - { 0x366E, 18061 }, - { 0x366F, 18217 }, - { 0x3670, 18082 }, - { 0x3671, 18238 }, - { 0x3672, 18214 }, - { 0x3673, 18172 }, - { 0x3674, 18103 }, - { 0x3675, 18199 }, - { 0x3676, 18070 }, - { 0x3677, 18232 }, - { 0x3678, 18163 }, - { 0x3679, 18142 }, - { 0x367A, 18166 }, - { 0x367B, 18091 }, - { 0x367C, 18190 }, - { 0x367D, 18169 }, - { 0x367E, 18202 }, - { 0x367F, 18187 }, - { 0x3680, 18193 }, - { 0x3681, 18124 }, - { 0x3682, 18160 }, - { 0x3683, 18121 }, - { 0x3684, 18094 }, - { 0x3685, 18079 }, - { 0x3686, 18049 }, - { 0x3687, 18055 }, - { 0x3688, 18067 }, - { 0x3689, 18208 }, - { 0x368A, 18127 }, - { 0x368B, 18100 }, - { 0x368C, 18247 }, - { 0x368D, 18184 }, - { 0x368E, 18115 }, - { 0x368F, 18139 }, - { 0x3690, 18205 }, - { 0x3691, 18028 }, - { 0x3692, 18097 }, - { 0x3693, 18088 }, - { 0x3694, 18064 }, - { 0x3695, 18046 }, - { 0x3696, 18076 }, - { 0x3697, 18109 }, - { 0x3698, 18037 }, - { 0x3699, 18178 }, - { 0x369A, 18133 }, - { 0x369B, 18112 }, - { 0x369C, 18052 }, - { 0x369D, 18085 }, - { 0x369E, 18034 }, - { 0x369F, 18058 }, - { 0x36A0, 18175 }, - { 0x36A1, 18157 }, - { 0x36A2, 18106 }, - { 0x36A3, 18154 }, - { 0x36A4, 18196 }, - { 0x36A5, 18235 }, - { 0x36A6, 18241 }, - { 0x36A7, 18220 }, - { 0x36A8, 18244 }, - { 0x36A9, 20620 }, - { 0x36AA, 20624 }, - { 0x36AB, 20615 }, - { 0x36AC, 18003 }, - { 0x36AD, 18006 }, - { 0x36AE, 18008 }, - { 0x36AF, 20628 }, - { 0x36B0, 20617 }, - { 0x36B1, 108476 }, - { 0x36B2, 108500 }, - { 0x36B3, 108482 }, - { 0x36B4, 108506 }, - { 0x36B5, 108464 }, - { 0x36B6, 108488 }, - { 0x36B7, 108470 }, - { 0x36B8, 108494 }, - { 0x36B9, 108809 }, - { 0x36BA, 107418 }, - { 0x36BB, 107375 }, - { 0x36BC, 107331 }, - { 0x36BD, 108771 }, - { 0x36BE, 108815 }, - { 0x36BF, 107424 }, - { 0x36C0, 107381 }, - { 0x36C1, 107337 }, - { 0x36C2, 108777 }, - { 0x36C3, 108822 }, - { 0x36C4, 107431 }, - { 0x36C5, 107388 }, - { 0x36C6, 107359 }, - { 0x36C7, 108784 }, - { 0x36C8, 107263 }, - { 0x36C9, 107259 }, - { 0x36CA, 107268 }, - { 0x36CB, 107489 }, - { 0x36CC, 108290 }, - { 0x36CD, 108295 }, - { 0x36CE, 108310 }, - { 0x36CF, 108304 }, - { 0x36D0, 107348 }, - { 0x36D1, 108325 }, - { 0x36D2, 108319 }, - { 0x36D3, 36190 }, - { 0x36D4, 32965 }, - { 0x36D5, 36185 }, - { 0x36D6, 32960 }, - { 0x36D7, 35859 }, - { 0x36D8, 32109 }, - { 0x36D9, 35792 }, - { 0x36DA, 31864 }, - { 0x36DB, 36151 }, - { 0x36DC, 32909 }, - { 0x36DD, 36160 }, - { 0x36DE, 32918 }, - { 0x36DF, 36164 }, - { 0x36E0, 32922 }, - { 0x36E1, 33061 }, - { 0x36E2, 33155 }, - { 0x36E3, 35711 }, - { 0x36E4, 31713 }, - { 0x36E5, 35731 }, - { 0x36E6, 31733 }, - { 0x36E7, 35735 }, - { 0x36E8, 31737 }, - { 0x36E9, 35739 }, - { 0x36EA, 31741 }, - { 0x36EB, 35743 }, - { 0x36EC, 31745 }, - { 0x36ED, 35750 }, - { 0x36EE, 31752 }, - { 0x36EF, 36123 }, - { 0x36F0, 32801 }, - { 0x36F1, 34321 }, - { 0x36F2, 29880 }, - { 0x36F3, 34349 }, - { 0x36F4, 29915 }, - { 0x36F5, 34327 }, - { 0x36F6, 29886 }, - { 0x36F7, 35966 }, - { 0x36F8, 32356 }, - { 0x36F9, 34394 }, - { 0x36FA, 29975 }, - { 0x36FB, 34678 }, - { 0x36FC, 30379 }, - { 0x36FD, 34686 }, - { 0x36FE, 30387 }, - { 0x36FF, 35784 }, - { 0x3700, 31825 }, - { 0x3701, 34915 }, - { 0x3702, 30623 }, - { 0x3703, 34923 }, - { 0x3704, 30638 }, - { 0x3705, 34929 }, - { 0x3706, 30644 }, - { 0x3707, 34940 }, - { 0x3708, 30668 }, - { 0x3709, 34948 }, - { 0x370A, 30676 }, - { 0x370B, 35040 }, - { 0x370C, 30827 }, - { 0x370D, 35845 }, - { 0x370E, 32052 }, - { 0x370F, 35485 }, - { 0x3710, 31400 }, - { 0x3711, 35796 }, - { 0x3712, 31884 }, - { 0x3713, 36170 }, - { 0x3714, 32928 }, - { 0x3715, 35952 }, - { 0x3716, 32321 }, - { 0x3717, 35958 }, - { 0x3718, 32327 }, - { 0x3719, 35897 }, - { 0x371A, 32248 }, - { 0x371B, 35764 }, - { 0x371C, 31791 }, - { 0x371D, 35768 }, - { 0x371E, 31799 }, - { 0x371F, 35804 }, - { 0x3720, 31908 }, - { 0x3721, 107256 }, - { 0x3722, 31912 }, - { 0x3723, 32026 }, - { 0x3724, 32030 }, - { 0x3725, 32034 }, - { 0x3726, 32048 }, - { 0x3727, 33215 }, - { 0x3728, 32063 }, - { 0x3729, 31876 }, - { 0x372A, 36069 }, - { 0x372B, 32711 }, - { 0x372C, 36074 }, - { 0x372D, 32716 }, - { 0x372E, 36079 }, - { 0x372F, 36038 }, - { 0x3730, 32659 }, - { 0x3731, 36013 }, - { 0x3732, 32493 }, - { 0x3733, 36084 }, - { 0x3734, 32726 }, - { 0x3735, 36089 }, - { 0x3736, 32731 }, - { 0x3737, 36094 }, - { 0x3738, 32736 }, - { 0x3739, 107365 }, - { 0x373A, 107478 }, - { 0x373B, 107518 }, - { 0x373C, 36147 }, - { 0x373D, 32865 }, - { 0x373E, 36003 }, - { 0x373F, 30077 }, - { 0x3740, 33376 }, - { 0x3741, 34583 }, - { 0x3742, 30248 }, - { 0x3743, 33656 }, - { 0x3744, 29109 }, - { 0x3745, 29166 }, - { 0x3746, 29668 }, - { 0x3747, 33646 }, - { 0x3748, 29099 }, - { 0x3749, 34010 }, - { 0x374A, 29526 }, - { 0x374B, 36108 }, - { 0x374C, 32761 }, - { 0x374D, 36113 }, - { 0x374E, 32766 }, - { 0x374F, 36118 }, - { 0x3750, 32771 }, - { 0x3751, 34069 }, - { 0x3752, 29592 }, - { 0x3753, 34342 }, - { 0x3754, 29901 }, - { 0x3755, 34576 }, - { 0x3756, 30234 }, - { 0x3757, 35026 }, - { 0x3758, 30768 }, - { 0x3759, 35137 }, - { 0x375A, 30943 }, - { 0x375B, 34100 }, - { 0x375C, 36141 }, - { 0x375D, 35993 }, - { 0x375E, 34388 }, - { 0x375F, 35942 }, - { 0x3760, 33137 }, - { 0x3761, 36008 }, - { 0x3762, 36023 }, - { 0x3763, 34279 }, - { 0x3764, 35800 }, - { 0x3765, 35850 }, - { 0x3766, 32067 }, - { 0x3767, 35921 }, - { 0x3768, 32280 }, - { 0x3769, 35391 }, - { 0x376A, 31279 }, - { 0x376B, 36049 }, - { 0x376C, 32691 }, - { 0x376D, 36054 }, - { 0x376E, 32696 }, - { 0x376F, 36059 }, - { 0x3770, 32701 }, - { 0x3771, 35839 }, - { 0x3772, 32038 }, - { 0x3773, 36155 }, - { 0x3774, 32913 }, - { 0x3775, 33707 }, - { 0x3776, 35073 }, - { 0x3777, 35692 }, - { 0x3778, 33757 }, - { 0x3779, 29243 }, - { 0x377A, 35116 }, - { 0x377B, 30915 }, - { 0x377C, 35877 }, - { 0x377D, 35144 }, - { 0x377E, 30957 }, - { 0x377F, 35971 }, - { 0x3780, 32372 }, - { 0x3781, 32402 }, - { 0x3782, 32397 }, - { 0x3783, 35987 }, - { 0x3784, 32417 }, - { 0x3785, 36099 }, - { 0x3786, 32741 }, - { 0x3787, 35977 }, - { 0x3788, 32407 }, - { 0x3789, 35981 }, - { 0x378A, 108343 }, - { 0x378B, 108355 }, - { 0x378C, 108405 }, - { 0x378D, 36135 }, - { 0x378E, 32830 }, - { 0x378F, 36318 }, - { 0x3790, 108367 }, - { 0x3791, 108231 }, - { 0x3792, 33250 }, - { 0x3793, 36308 }, - { 0x3794, 36313 }, - { 0x3795, 36303 }, - { 0x3796, 36293 }, - { 0x3797, 36298 }, - { 0x3798, 65728 }, - { 0x3799, 65736 }, - { 0x379A, 65694 }, - { 0x379B, 65744 }, - { 0x379C, 65732 }, - { 0x379D, 65740 }, - { 0x379E, 65686 }, - { 0x379F, 65772 }, - { 0x37A0, 65828 }, - { 0x37A1, 65760 }, - { 0x37A2, 65820 }, - { 0x37A3, 65690 }, - { 0x37A4, 65752 }, - { 0x37A5, 65808 }, - { 0x37A6, 65768 }, - { 0x37A7, 65824 }, - { 0x37A8, 65844 }, - { 0x37A9, 65852 }, - { 0x37AA, 65812 }, - { 0x37AB, 65848 }, - { 0x37AC, 65800 }, - { 0x37AD, 65840 }, - { 0x37AE, 65756 }, - { 0x37AF, 65816 }, - { 0x37B0, 65784 }, - { 0x37B1, 65788 }, - { 0x37B2, 65832 }, - { 0x37B3, 65748 }, - { 0x37B4, 65804 }, - { 0x37B5, 65780 }, - { 0x37B6, 65792 }, - { 0x37B7, 65776 }, - { 0x37B8, 65836 }, - { 0x37B9, 65796 }, - { 0x37BA, 65764 }, - { 0x37BB, 65703 }, - { 0x37BC, 65713 }, - { 0x37BD, 65718 }, - { 0x37BE, 65708 }, - { 0x37BF, 65723 }, - { 0x37C0, 65856 }, - { 0x37C1, 65860 }, - { 0x37C2, 65864 }, - { 0x37C3, 65868 }, - { 0x37C4, 65698 }, - { 0x37C5, 38721 }, - { 0x37C6, 38711 }, - { 0x37C7, 38731 }, - { 0x37C8, 38726 }, - { 0x37C9, 38716 }, - { 0x37CA, 38736 }, - { 0x37CB, 38707 }, - { 0x37CC, 38745 }, - { 0x37CD, 38703 }, - { 0x37CE, 38741 }, - { 0x37CF, 109914 }, - { 0x37D0, 109965 }, - { 0x37D1, 109905 }, - { 0x37D2, 109968 }, - { 0x37D3, 109893 }, - { 0x37D4, 109953 }, - { 0x37D5, 109911 }, - { 0x37D6, 109974 }, - { 0x37D7, 109938 }, - { 0x37D8, 109983 }, - { 0x37D9, 109896 }, - { 0x37DA, 109923 }, - { 0x37DB, 109926 }, - { 0x37DC, 109977 }, - { 0x37DD, 109890 }, - { 0x37DE, 109920 }, - { 0x37DF, 109986 }, - { 0x37E0, 109995 }, - { 0x37E1, 109959 }, - { 0x37E2, 109941 }, - { 0x37E3, 109992 }, - { 0x37E4, 109950 }, - { 0x37E5, 110001 }, - { 0x37E6, 109947 }, - { 0x37E7, 109932 }, - { 0x37E8, 109917 }, - { 0x37E9, 109980 }, - { 0x37EA, 109935 }, - { 0x37EB, 109908 }, - { 0x37EC, 109875 }, - { 0x37ED, 109881 }, - { 0x37EE, 109887 }, - { 0x37EF, 109878 }, - { 0x37F0, 109884 }, - { 0x37F1, 109929 }, - { 0x37F2, 109944 }, - { 0x37F3, 109902 }, - { 0x37F4, 109962 }, - { 0x37F5, 109899 }, - { 0x37F6, 110032 }, - { 0x37F7, 110036 }, - { 0x37F8, 109989 }, - { 0x37F9, 109998 }, - { 0x37FA, 109956 }, - { 0x37FB, 109971 }, - { 0x37FC, 110009 }, - { 0x37FD, 110017 }, - { 0x37FE, 110005 }, - { 0x37FF, 110013 }, - { 0x3800, 110028 }, - { 0x3801, 110040 }, - { 0x3802, 110021 }, - { 0x3803, 110024 }, - { 0x3804, 109871 }, - { 0x3805, 109864 }, - { 0x3806, 109867 }, - { 0x3807, 132814 }, - { 0x3808, 132811 }, - { 0x3809, 132919 }, - { 0x380A, 132934 }, - { 0x380B, 132925 }, - { 0x380C, 132961 }, - { 0x380D, 132931 }, - { 0x380E, 132994 }, - { 0x380F, 133061 }, - { 0x3810, 133069 }, - { 0x3811, 133057 }, - { 0x3812, 133065 }, - { 0x3813, 132922 }, - { 0x3814, 132952 }, - { 0x3815, 132937 }, - { 0x3816, 132928 }, - { 0x3817, 132979 }, - { 0x3818, 132940 }, - { 0x3819, 132967 }, - { 0x381A, 133021 }, - { 0x381B, 132955 }, - { 0x381C, 133015 }, - { 0x381D, 133027 }, - { 0x381E, 132946 }, - { 0x381F, 133006 }, - { 0x3820, 132964 }, - { 0x3821, 133018 }, - { 0x3822, 133033 }, - { 0x3823, 133048 }, - { 0x3824, 133054 }, - { 0x3825, 133009 }, - { 0x3826, 133051 }, - { 0x3827, 133030 }, - { 0x3828, 132991 }, - { 0x3829, 133045 }, - { 0x382A, 132949 }, - { 0x382B, 133012 }, - { 0x382C, 132976 }, - { 0x382D, 132982 }, - { 0x382E, 133036 }, - { 0x382F, 132943 }, - { 0x3830, 133003 }, - { 0x3831, 132973 }, - { 0x3832, 133000 }, - { 0x3833, 132985 }, - { 0x3834, 132970 }, - { 0x3835, 132997 }, - { 0x3836, 133039 }, - { 0x3837, 133042 }, - { 0x3838, 132988 }, - { 0x3839, 132958 }, - { 0x383A, 133024 }, - { 0x383B, 133073 }, - { 0x383C, 132868 }, - { 0x383D, 132856 }, - { 0x383E, 132884 }, - { 0x383F, 132864 }, - { 0x3840, 132892 }, - { 0x3841, 132901 }, - { 0x3842, 132911 }, - { 0x3843, 132896 }, - { 0x3844, 132906 }, - { 0x3845, 132852 }, - { 0x3846, 132880 }, - { 0x3847, 132872 }, - { 0x3848, 132860 }, - { 0x3849, 132888 }, - { 0x384A, 132876 }, - { 0x384B, 132808 }, - { 0x384C, 132817 }, - { 0x384D, 132820 }, - { 0x384E, 132916 }, - { 0x384F, 132840 }, - { 0x3850, 132822 }, - { 0x3851, 132828 }, - { 0x3852, 132849 }, - { 0x3853, 132834 }, - { 0x3854, 132831 }, - { 0x3855, 132825 }, - { 0x3856, 132846 }, - { 0x3857, 132843 }, - { 0x3858, 132837 }, - { 0x3859, 117605 }, - { 0x385A, 117581 }, - { 0x385B, 117589 }, - { 0x385C, 117617 }, - { 0x385D, 117597 }, - { 0x385E, 117593 }, - { 0x385F, 117585 }, - { 0x3860, 117613 }, - { 0x3861, 117609 }, - { 0x3862, 117601 }, - { 0x3863, 117621 }, - { 0x3864, 117625 }, - { 0x3865, 117629 }, - { 0x3866, 117633 }, - { 0x3867, 117637 }, - { 0x3868, 117641 }, - { 0x3869, 117645 }, - { 0x386A, 117577 }, - { 0x386B, 129835 }, - { 0x386C, 129891 }, - { 0x386D, 129824 }, - { 0x386E, 129883 }, - { 0x386F, 129887 }, - { 0x3870, 129895 }, - { 0x3871, 129872 }, - { 0x3872, 129791 }, - { 0x3873, 129902 }, - { 0x3874, 130311 }, - { 0x3875, 129832 }, - { 0x3876, 129802 }, - { 0x3877, 130080 }, - { 0x3878, 129971 }, - { 0x3879, 27450 }, - { 0x387A, 27426 }, - { 0x387B, 27434 }, - { 0x387C, 27462 }, - { 0x387D, 27442 }, - { 0x387E, 27438 }, - { 0x387F, 27430 }, - { 0x3880, 27458 }, - { 0x3881, 27454 }, - { 0x3882, 27446 }, - { 0x3883, 27514 }, - { 0x3884, 27574 }, - { 0x3885, 27506 }, - { 0x3886, 27578 }, - { 0x3887, 27546 }, - { 0x3888, 27590 }, - { 0x3889, 27566 }, - { 0x388A, 27582 }, - { 0x388B, 27550 }, - { 0x388C, 27570 }, - { 0x388D, 27526 }, - { 0x388E, 27538 }, - { 0x388F, 27586 }, - { 0x3890, 27522 }, - { 0x3891, 27502 }, - { 0x3892, 27494 }, - { 0x3893, 27542 }, - { 0x3894, 27562 }, - { 0x3895, 27518 }, - { 0x3896, 27558 }, - { 0x3897, 27594 }, - { 0x3898, 27510 }, - { 0x3899, 27554 }, - { 0x389A, 27498 }, - { 0x389B, 27486 }, - { 0x389C, 27530 }, - { 0x389D, 27490 }, - { 0x389E, 27534 }, - { 0x389F, 27482 }, - { 0x38A0, 27466 }, - { 0x38A1, 27474 }, - { 0x38A2, 27478 }, - { 0x38A3, 27470 }, - { 0x38A4, 27422 }, - { 0x38A5, 27413 }, - { 0x38A6, 27417 }, - { 0x38A7, 27405 }, - { 0x38A8, 27409 }, - { 0x38A9, 64716 }, - { 0x38AA, 64707 }, - { 0x38AB, 64752 }, - { 0x38AC, 64737 }, - { 0x38AD, 64704 }, - { 0x38AE, 64725 }, - { 0x38AF, 64728 }, - { 0x38B0, 64698 }, - { 0x38B1, 64722 }, - { 0x38B2, 64701 }, - { 0x38B3, 64713 }, - { 0x38B4, 64755 }, - { 0x38B5, 64734 }, - { 0x38B6, 64731 }, - { 0x38B7, 64719 }, - { 0x38B8, 64743 }, - { 0x38B9, 64740 }, - { 0x38BA, 64710 }, - { 0x38BB, 64746 }, - { 0x38BC, 64758 }, - { 0x38BD, 64749 }, - { 0x38BE, 64761 }, - { 0x38BF, 64695 }, - { 0x38C0, 64667 }, - { 0x38C1, 64675 }, - { 0x38C2, 64663 }, - { 0x38C3, 64679 }, - { 0x38C4, 64671 }, - { 0x38C5, 64683 }, - { 0x38C6, 64691 }, - { 0x38C7, 64687 }, - { 0x38C8, 64781 }, - { 0x38C9, 64773 }, - { 0x38CA, 64777 }, - { 0x38CB, 64769 }, - { 0x38CC, 64764 }, - { 0x38CD, 64766 }, - { 0x38CE, 55864 }, - { 0x38CF, 55867 }, - { 0x38D0, 55807 }, - { 0x38D1, 55861 }, - { 0x38D2, 55840 }, - { 0x38D3, 55975 }, - { 0x38D4, 55843 }, - { 0x38D5, 55978 }, - { 0x38D6, 55786 }, - { 0x38D7, 55792 }, - { 0x38D8, 55957 }, - { 0x38D9, 55996 }, - { 0x38DA, 55699 }, - { 0x38DB, 55780 }, - { 0x38DC, 55921 }, - { 0x38DD, 55822 }, - { 0x38DE, 55825 }, - { 0x38DF, 55690 }, - { 0x38E0, 55993 }, - { 0x38E1, 55912 }, - { 0x38E2, 55774 }, - { 0x38E3, 55945 }, - { 0x38E4, 55756 }, - { 0x38E5, 55747 }, - { 0x38E6, 55960 }, - { 0x38E7, 55858 }, - { 0x38E8, 55903 }, - { 0x38E9, 55684 }, - { 0x38EA, 55963 }, - { 0x38EB, 105629 }, - { 0x38EC, 105616 }, - { 0x38ED, 105623 }, - { 0x38EE, 105626 }, - { 0x38EF, 105704 }, - { 0x38F0, 105713 }, - { 0x38F1, 105710 }, - { 0x38F2, 105757 }, - { 0x38F3, 105720 }, - { 0x38F4, 105794 }, - { 0x38F5, 105843 }, - { 0x38F6, 105847 }, - { 0x38F7, 105707 }, - { 0x38F8, 105723 }, - { 0x38F9, 105717 }, - { 0x38FA, 105767 }, - { 0x38FB, 105774 }, - { 0x38FC, 105770 }, - { 0x38FD, 105747 }, - { 0x38FE, 105750 }, - { 0x38FF, 105840 }, - { 0x3900, 105733 }, - { 0x3901, 105736 }, - { 0x3902, 105760 }, - { 0x3903, 105855 }, - { 0x3904, 105763 }, - { 0x3905, 105852 }, - { 0x3906, 105859 }, - { 0x3907, 105862 }, - { 0x3908, 105833 }, - { 0x3909, 105836 }, - { 0x390A, 105787 }, - { 0x390B, 105820 }, - { 0x390C, 105823 }, - { 0x390D, 105740 }, - { 0x390E, 105743 }, - { 0x390F, 105784 }, - { 0x3910, 105791 }, - { 0x3911, 105798 }, - { 0x3912, 105726 }, - { 0x3913, 105729 }, - { 0x3914, 105781 }, - { 0x3915, 105830 }, - { 0x3916, 105802 }, - { 0x3917, 105805 }, - { 0x3918, 105778 }, - { 0x3919, 105827 }, - { 0x391A, 105812 }, - { 0x391B, 105816 }, - { 0x391C, 105809 }, - { 0x391D, 105754 }, - { 0x391E, 105619 }, - { 0x391F, 105696 }, - { 0x3920, 105700 }, - { 0x3921, 105674 }, - { 0x3922, 105678 }, - { 0x3923, 105665 }, - { 0x3924, 105669 }, - { 0x3925, 105692 }, - { 0x3926, 105683 }, - { 0x3927, 105688 }, - { 0x3928, 105876 }, - { 0x3929, 105880 }, - { 0x392A, 105872 }, - { 0x392B, 105870 }, - { 0x392C, 105575 }, - { 0x392D, 105662 }, - { 0x392E, 105585 }, - { 0x392F, 105591 }, - { 0x3930, 105588 }, - { 0x3931, 105598 }, - { 0x3932, 105607 }, - { 0x3933, 105601 }, - { 0x3934, 105604 }, - { 0x3935, 105578 }, - { 0x3936, 105581 }, - { 0x3937, 105610 }, - { 0x3938, 105866 }, - { 0x3939, 105884 }, - { 0x393A, 105650 }, - { 0x393B, 105632 }, - { 0x393C, 105638 }, - { 0x393D, 105659 }, - { 0x393E, 105644 }, - { 0x393F, 105641 }, - { 0x3940, 105635 }, - { 0x3941, 105656 }, - { 0x3942, 105653 }, - { 0x3943, 105647 }, - { 0x3944, 105594 }, - { 0x3945, 105613 }, - { 0x3946, 77075 }, - { 0x3947, 77071 }, - { 0x3948, 77079 }, - { 0x3949, 77087 }, - { 0x394A, 77067 }, - { 0x394B, 76527 }, - { 0x394C, 77359 }, - { 0x394D, 77000 }, - { 0x394E, 76950 }, - { 0x394F, 76955 }, - { 0x3950, 76980 }, - { 0x3951, 76960 }, - { 0x3952, 76985 }, - { 0x3953, 76970 }, - { 0x3954, 77005 }, - { 0x3955, 76995 }, - { 0x3956, 76445 }, - { 0x3957, 76415 }, - { 0x3958, 76425 }, - { 0x3959, 76460 }, - { 0x395A, 76435 }, - { 0x395B, 76430 }, - { 0x395C, 76420 }, - { 0x395D, 76455 }, - { 0x395E, 76450 }, - { 0x395F, 76440 }, - { 0x3960, 76990 }, - { 0x3961, 76945 }, - { 0x3962, 76975 }, - { 0x3963, 76940 }, - { 0x3964, 76965 }, - { 0x3965, 13597 }, - { 0x3966, 13603 }, - { 0x3967, 13609 }, - { 0x3968, 13600 }, - { 0x3969, 13612 }, - { 0x396A, 13606 }, - { 0x396B, 13630 }, - { 0x396C, 13681 }, - { 0x396D, 13621 }, - { 0x396E, 13675 }, - { 0x396F, 13711 }, - { 0x3970, 13687 }, - { 0x3971, 13666 }, - { 0x3972, 13708 }, - { 0x3973, 13627 }, - { 0x3974, 13678 }, - { 0x3975, 13717 }, - { 0x3976, 13690 }, - { 0x3977, 13714 }, - { 0x3978, 13651 }, - { 0x3979, 13705 }, - { 0x397A, 13618 }, - { 0x397B, 13672 }, - { 0x397C, 13693 }, - { 0x397D, 13639 }, - { 0x397E, 13669 }, - { 0x397F, 13642 }, - { 0x3980, 13699 }, - { 0x3981, 13696 }, - { 0x3982, 13615 }, - { 0x3983, 13663 }, - { 0x3984, 13684 }, - { 0x3985, 13636 }, - { 0x3986, 13660 }, - { 0x3987, 13657 }, - { 0x3988, 13645 }, - { 0x3989, 13633 }, - { 0x398A, 13654 }, - { 0x398B, 13702 }, - { 0x398C, 13648 }, - { 0x398D, 13624 }, - { 0x398E, 13569 }, - { 0x398F, 13557 }, - { 0x3990, 13585 }, - { 0x3991, 13581 }, - { 0x3992, 13565 }, - { 0x3993, 13589 }, - { 0x3994, 13561 }, - { 0x3995, 13573 }, - { 0x3996, 13577 }, - { 0x3997, 13593 }, - { 0x3998, 13776 }, - { 0x3999, 13768 }, - { 0x399A, 13764 }, - { 0x399B, 13772 }, - { 0x399C, 13724 }, - { 0x399D, 13720 }, - { 0x399E, 13756 }, - { 0x399F, 13790 }, - { 0x39A0, 13752 }, - { 0x39A1, 13744 }, - { 0x39A2, 13732 }, - { 0x39A3, 13736 }, - { 0x39A4, 13748 }, - { 0x39A5, 13740 }, - { 0x39A6, 13728 }, - { 0x39A7, 13760 }, - { 0x39A8, 13785 }, - { 0x39A9, 13780 }, - { 0x39AA, 13545 }, - { 0x39AB, 13527 }, - { 0x39AC, 13533 }, - { 0x39AD, 13554 }, - { 0x39AE, 13539 }, - { 0x39AF, 13536 }, - { 0x39B0, 13530 }, - { 0x39B1, 13551 }, - { 0x39B2, 13548 }, - { 0x39B3, 13542 }, - { 0x39B4, 13802 }, - { 0x39B5, 13795 }, - { 0x39B6, 13798 }, - { 0x39B7, 13805 }, - { 0x39B8, 77137 }, - { 0x39B9, 77129 }, - { 0x39BA, 77169 }, - { 0x39BB, 77145 }, - { 0x39BC, 77185 }, - { 0x39BD, 77193 }, - { 0x39BE, 77197 }, - { 0x39BF, 77205 }, - { 0x39C0, 77173 }, - { 0x39C1, 77201 }, - { 0x39C2, 77177 }, - { 0x39C3, 77149 }, - { 0x39C4, 77157 }, - { 0x39C5, 77141 }, - { 0x39C6, 77181 }, - { 0x39C7, 77133 }, - { 0x39C8, 77364 }, - { 0x39C9, 77161 }, - { 0x39CA, 77165 }, - { 0x39CB, 77153 }, - { 0x39CC, 77355 }, - { 0x39CD, 77351 }, - { 0x39CE, 77347 }, - { 0x39CF, 77271 }, - { 0x39D0, 77263 }, - { 0x39D1, 77267 }, - { 0x39D2, 77116 }, - { 0x39D3, 76509 }, - { 0x39D4, 76514 }, - { 0x39D5, 76519 }, - { 0x39D6, 77103 }, - { 0x39D7, 77108 }, - { 0x39D8, 11835 }, - { 0x39D9, 11955 }, - { 0x39DA, 11890 }, - { 0x39DB, 12010 }, - { 0x39DC, 11915 }, - { 0x39DD, 12035 }, - { 0x39DE, 11825 }, - { 0x39DF, 11945 }, - { 0x39E0, 11895 }, - { 0x39E1, 12015 }, - { 0x39E2, 11810 }, - { 0x39E3, 11930 }, - { 0x39E4, 11885 }, - { 0x39E5, 12005 }, - { 0x39E6, 11865 }, - { 0x39E7, 11985 }, - { 0x39E8, 11900 }, - { 0x39E9, 12020 }, - { 0x39EA, 11815 }, - { 0x39EB, 11935 }, - { 0x39EC, 11870 }, - { 0x39ED, 11990 }, - { 0x39EE, 11910 }, - { 0x39EF, 12030 }, - { 0x39F0, 11850 }, - { 0x39F1, 11970 }, - { 0x39F2, 11805 }, - { 0x39F3, 11925 }, - { 0x39F4, 11855 }, - { 0x39F5, 11975 }, - { 0x39F6, 11905 }, - { 0x39F7, 12025 }, - { 0x39F8, 11820 }, - { 0x39F9, 11940 }, - { 0x39FA, 11845 }, - { 0x39FB, 11965 }, - { 0x39FC, 11880 }, - { 0x39FD, 12000 }, - { 0x39FE, 11860 }, - { 0x39FF, 11980 }, - { 0x3A00, 11840 }, - { 0x3A01, 11960 }, - { 0x3A02, 11875 }, - { 0x3A03, 11995 }, - { 0x3A04, 11830 }, - { 0x3A05, 11950 }, - { 0x3A06, 11800 }, - { 0x3A07, 11920 }, - { 0x3A08, 11720 }, - { 0x3A09, 11764 }, - { 0x3A0A, 11752 }, - { 0x3A0B, 11788 }, - { 0x3A0C, 11760 }, - { 0x3A0D, 11748 }, - { 0x3A0E, 11756 }, - { 0x3A0F, 11724 }, - { 0x3A10, 11780 }, - { 0x3A11, 11796 }, - { 0x3A12, 11784 }, - { 0x3A13, 11792 }, - { 0x3A14, 11776 }, - { 0x3A15, 11772 }, - { 0x3A16, 11768 }, - { 0x3A17, 11728 }, - { 0x3A18, 11743 }, - { 0x3A19, 11733 }, - { 0x3A1A, 11738 }, - { 0x3A1B, 12050 }, - { 0x3A1C, 12058 }, - { 0x3A1D, 12054 }, - { 0x3A1E, 12040 }, - { 0x3A1F, 12045 }, - { 0x3A20, 63598 }, - { 0x3A21, 63611 }, - { 0x3A22, 63641 }, - { 0x3A23, 63696 }, - { 0x3A24, 63725 }, - { 0x3A25, 63778 }, - { 0x3A26, 63645 }, - { 0x3A27, 63741 }, - { 0x3A28, 63692 }, - { 0x3A29, 63708 }, - { 0x3A2A, 63712 }, - { 0x3A2B, 63533 }, - { 0x3A2C, 63538 }, - { 0x3A2D, 63543 }, - { 0x3A2E, 63528 }, - { 0x3A2F, 63548 }, - { 0x3A30, 63793 }, - { 0x3A31, 63484 }, - { 0x3A32, 63472 }, - { 0x3A33, 63799 }, - { 0x3A34, 63479 }, - { 0x3A35, 63593 }, - { 0x3A36, 63790 }, - { 0x3A37, 103129 }, - { 0x3A38, 103123 }, - { 0x3A39, 103222 }, - { 0x3A3A, 103225 }, - { 0x3A3B, 103120 }, - { 0x3A3C, 103126 }, - { 0x3A3D, 102913 }, - { 0x3A3E, 102907 }, - { 0x3A3F, 103189 }, - { 0x3A40, 103192 }, - { 0x3A41, 102904 }, - { 0x3A42, 102910 }, - { 0x3A43, 102331 }, - { 0x3A44, 102325 }, - { 0x3A45, 102922 }, - { 0x3A46, 102925 }, - { 0x3A47, 102322 }, - { 0x3A48, 102328 }, - { 0x3A49, 103174 }, - { 0x3A4A, 103186 }, - { 0x3A4B, 103180 }, - { 0x3A4C, 103228 }, - { 0x3A4D, 103231 }, - { 0x3A4E, 103177 }, - { 0x3A4F, 103183 }, - { 0x3A50, 102223 }, - { 0x3A51, 102235 }, - { 0x3A52, 102229 }, - { 0x3A53, 102856 }, - { 0x3A54, 102859 }, - { 0x3A55, 102226 }, - { 0x3A56, 102232 }, - { 0x3A57, 32345 }, - { 0x3A58, 29037 }, - { 0x3A59, 32933 }, - { 0x3A5A, 32335 }, - { 0x3A5B, 29421 }, - { 0x3A5C, 32275 }, - { 0x3A5D, 32428 }, - { 0x3A5E, 30062 }, - { 0x3A5F, 30008 }, - { 0x3A60, 30023 }, - { 0x3A61, 30145 }, - { 0x3A62, 30276 }, - { 0x3A63, 31927 }, - { 0x3A64, 32938 }, - { 0x3A65, 32943 }, - { 0x3A66, 32187 }, - { 0x3A67, 32781 }, - { 0x3A68, 32623 }, - { 0x3A69, 32630 }, - { 0x3A6A, 32511 }, - { 0x3A6B, 32517 }, - { 0x3A6C, 32746 }, - { 0x3A6D, 33147 }, - { 0x3A6E, 30832 }, - { 0x3A6F, 32385 }, - { 0x3A70, 30821 }, - { 0x3A71, 32390 }, - { 0x3A72, 32435 }, - { 0x3A73, 32440 }, - { 0x3A74, 32776 }, - { 0x3A75, 31216 }, - { 0x3A76, 31107 }, - { 0x3A77, 31872 }, - { 0x3A78, 32638 }, - { 0x3A79, 31178 }, - { 0x3A7A, 31888 }, - { 0x3A7B, 31900 }, - { 0x3A7C, 31892 }, - { 0x3A7D, 31473 }, - { 0x3A7E, 31481 }, - { 0x3A7F, 31489 }, - { 0x3A80, 31501 }, - { 0x3A81, 31580 }, - { 0x3A82, 107243 }, - { 0x3A83, 107929 }, - { 0x3A84, 107649 }, - { 0x3A85, 107635 }, - { 0x3A86, 107774 }, - { 0x3A87, 32284 }, - { 0x3A88, 32791 }, - { 0x3A89, 32202 }, - { 0x3A8A, 31880 }, - { 0x3A8B, 32786 }, - { 0x3A8C, 25051 }, - { 0x3A8D, 31783 }, - { 0x3A8E, 31856 }, - { 0x3A8F, 32563 }, - { 0x3A90, 108096 }, - { 0x3A91, 107442 }, - { 0x3A92, 107507 }, - { 0x3A93, 86897 }, - { 0x3A94, 86901 }, - { 0x3A95, 86905 }, - { 0x3A96, 86909 }, - { 0x3A97, 86917 }, - { 0x3A98, 86921 }, - { 0x3A99, 86949 }, - { 0x3A9A, 86997 }, - { 0x3A9B, 86953 }, - { 0x3A9C, 86957 }, - { 0x3A9D, 86961 }, - { 0x3A9E, 86965 }, - { 0x3A9F, 86969 }, - { 0x3AA0, 86973 }, - { 0x3AA1, 86977 }, - { 0x3AA2, 86981 }, - { 0x3AA3, 86985 }, - { 0x3AA4, 86989 }, - { 0x3AA5, 86993 }, - { 0x3AA6, 87001 }, - { 0x3AA7, 87005 }, - { 0x3AA8, 87009 }, - { 0x3AA9, 87013 }, - { 0x3AAA, 87017 }, - { 0x3AAB, 87021 }, - { 0x3AAC, 87025 }, - { 0x3AAD, 87029 }, - { 0x3AAE, 87033 }, - { 0x3AAF, 87037 }, - { 0x3AB0, 87041 }, - { 0x3AB1, 87049 }, - { 0x3AB2, 87161 }, - { 0x3AB3, 87165 }, - { 0x3AB4, 87053 }, - { 0x3AB5, 87057 }, - { 0x3AB6, 87061 }, - { 0x3AB7, 87065 }, - { 0x3AB8, 87069 }, - { 0x3AB9, 87169 }, - { 0x3ABA, 87173 }, - { 0x3ABB, 87177 }, - { 0x3ABC, 87181 }, - { 0x3ABD, 87185 }, - { 0x3ABE, 87189 }, - { 0x3ABF, 87073 }, - { 0x3AC0, 86913 }, - { 0x3AC1, 87077 }, - { 0x3AC2, 87081 }, - { 0x3AC3, 87085 }, - { 0x3AC4, 87089 }, - { 0x3AC5, 87093 }, - { 0x3AC6, 86925 }, - { 0x3AC7, 87097 }, - { 0x3AC8, 86929 }, - { 0x3AC9, 87101 }, - { 0x3ACA, 86933 }, - { 0x3ACB, 87105 }, - { 0x3ACC, 86937 }, - { 0x3ACD, 86941 }, - { 0x3ACE, 86945 }, - { 0x3ACF, 87157 }, - { 0x3AD0, 87193 }, - { 0x3AD1, 87197 }, - { 0x3AD2, 87201 }, - { 0x3AD3, 87205 }, - { 0x3AD4, 87209 }, - { 0x3AD5, 87213 }, - { 0x3AD6, 87217 }, - { 0x3AD7, 87221 }, - { 0x3AD8, 87225 }, - { 0x3AD9, 87229 }, - { 0x3ADA, 87233 }, - { 0x3ADB, 87237 }, - { 0x3ADC, 87109 }, - { 0x3ADD, 87113 }, - { 0x3ADE, 87117 }, - { 0x3ADF, 87121 }, - { 0x3AE0, 87125 }, - { 0x3AE1, 87129 }, - { 0x3AE2, 87133 }, - { 0x3AE3, 63665 }, - { 0x3AE4, 63704 }, - { 0x3AE5, 63674 }, - { 0x3AE6, 63683 }, - { 0x3AE7, 63628 }, - { 0x3AE8, 63619 }, - { 0x3AE9, 63737 }, - { 0x3AEA, 63716 }, - { 0x3AEB, 63757 }, - { 0x3AEC, 63761 }, - { 0x3AED, 63774 }, - { 0x3AEE, 63729 }, - { 0x3AEF, 63782 }, - { 0x3AF0, 63657 }, - { 0x3AF1, 63637 }, - { 0x3AF2, 63602 }, - { 0x3AF3, 63770 }, - { 0x3AF4, 63786 }, - { 0x3AF5, 63653 }, - { 0x3AF6, 63753 }, - { 0x3AF7, 63700 }, - { 0x3AF8, 63615 }, - { 0x3AF9, 63661 }, - { 0x3AFA, 63649 }, - { 0x3AFB, 63749 }, - { 0x3AFC, 63745 }, - { 0x3AFD, 63733 }, - { 0x3AFE, 63669 }, - { 0x3AFF, 63678 }, - { 0x3B00, 63687 }, - { 0x3B01, 63632 }, - { 0x3B02, 63623 }, - { 0x3B03, 63720 }, - { 0x3B04, 63765 }, - { 0x3B05, 63606 }, - { 0x3B06, 63568 }, - { 0x3B07, 63558 }, - { 0x3B08, 63553 }, - { 0x3B09, 63578 }, - { 0x3B0A, 63583 }, - { 0x3B0B, 63573 }, - { 0x3B0C, 63588 }, - { 0x3B0D, 63563 }, - { 0x3B0E, 63796 }, - { 0x3B0F, 63468 }, - { 0x3B10, 63475 }, - { 0x3B11, 63512 }, - { 0x3B12, 63488 }, - { 0x3B13, 63496 }, - { 0x3B14, 63524 }, - { 0x3B15, 63504 }, - { 0x3B16, 63500 }, - { 0x3B17, 63492 }, - { 0x3B18, 63520 }, - { 0x3B19, 63516 }, - { 0x3B1A, 63508 }, - { 0x3B1B, 56635 }, - { 0x3B1C, 56629 }, - { 0x3B1D, 56584 }, - { 0x3B1E, 56653 }, - { 0x3B1F, 56656 }, - { 0x3B20, 56641 }, - { 0x3B21, 56638 }, - { 0x3B22, 56662 }, - { 0x3B23, 56602 }, - { 0x3B24, 56533 }, - { 0x3B25, 56614 }, - { 0x3B26, 56536 }, - { 0x3B27, 56539 }, - { 0x3B28, 56674 }, - { 0x3B29, 56623 }, - { 0x3B2A, 56626 }, - { 0x3B2B, 56551 }, - { 0x3B2C, 56620 }, - { 0x3B2D, 56554 }, - { 0x3B2E, 56557 }, - { 0x3B2F, 56488 }, - { 0x3B30, 56689 }, - { 0x3B31, 56692 }, - { 0x3B32, 56140 }, - { 0x3B33, 56257 }, - { 0x3B34, 56176 }, - { 0x3B35, 56383 }, - { 0x3B36, 56233 }, - { 0x3B37, 56179 }, - { 0x3B38, 56407 }, - { 0x3B39, 56230 }, - { 0x3B3A, 56308 }, - { 0x3B3B, 56311 }, - { 0x3B3C, 56377 }, - { 0x3B3D, 56389 }, - { 0x3B3E, 56404 }, - { 0x3B3F, 56371 }, - { 0x3B40, 56395 }, - { 0x3B41, 56416 }, - { 0x3B42, 56305 }, - { 0x3B43, 56425 }, - { 0x3B44, 56248 }, - { 0x3B45, 56125 }, - { 0x3B46, 56341 }, - { 0x3B47, 56089 }, - { 0x3B48, 56338 }, - { 0x3B49, 56119 }, - { 0x3B4A, 56212 }, - { 0x3B4B, 56410 }, - { 0x3B4C, 56149 }, - { 0x3B4D, 56095 }, - { 0x3B4E, 56365 }, - { 0x3B4F, 56143 }, - { 0x3B50, 56272 }, - { 0x3B51, 56074 }, - { 0x3B52, 56401 }, - { 0x3B53, 56350 }, - { 0x3B54, 56353 }, - { 0x3B55, 56224 }, - { 0x3B56, 56068 }, - { 0x3B57, 56221 }, - { 0x3B58, 56227 }, - { 0x3B59, 56071 }, - { 0x3B5A, 56266 }, - { 0x3B5B, 56422 }, - { 0x3B5C, 56317 }, - { 0x3B5D, 56314 }, - { 0x3B5E, 56101 }, - { 0x3B5F, 56335 }, - { 0x3B60, 56083 }, - { 0x3B61, 56209 }, - { 0x3B62, 56326 }, - { 0x3B63, 6504 }, - { 0x3B64, 6507 }, - { 0x3B65, 6510 }, - { 0x3B66, 6513 }, - { 0x3B67, 6516 }, - { 0x3B68, 32984 }, - { 0x3B69, 32988 }, - { 0x3B6A, 32992 }, - { 0x3B6B, 33008 }, - { 0x3B6C, 33012 }, - { 0x3B6D, 33016 }, - { 0x3B6E, 33004 }, - { 0x3B6F, 83200 }, - { 0x3B70, 83190 }, - { 0x3B71, 83195 }, - { 0x3B72, 83210 }, - { 0x3B73, 83205 }, - { 0x3B74, 57286 }, - { 0x3B75, 57076 }, - { 0x3B76, 57492 }, - { 0x3B77, 57474 }, - { 0x3B78, 57373 }, - { 0x3B79, 57381 }, - { 0x3B7A, 57361 }, - { 0x3B7B, 57365 }, - { 0x3B7C, 57390 }, - { 0x3B7D, 57385 }, - { 0x3B7E, 57377 }, - { 0x3B7F, 57369 }, - { 0x3B80, 57478 }, - { 0x3B81, 57334 }, - { 0x3B82, 57328 }, - { 0x3B83, 57353 }, - { 0x3B84, 57345 }, - { 0x3B85, 57304 }, - { 0x3B86, 57309 }, - { 0x3B87, 57299 }, - { 0x3B88, 57209 }, - { 0x3B89, 57437 }, - { 0x3B8A, 57397 }, - { 0x3B8B, 57183 }, - { 0x3B8C, 57278 }, - { 0x3B8D, 57461 }, - { 0x3B8E, 57265 }, - { 0x3B8F, 57291 }, - { 0x3B90, 57416 }, - { 0x3B91, 57225 }, - { 0x3B92, 57445 }, - { 0x3B93, 57233 }, - { 0x3B94, 57241 }, - { 0x3B95, 57469 }, - { 0x3B96, 57406 }, - { 0x3B97, 57196 }, - { 0x3B98, 57453 }, - { 0x3B99, 57249 }, - { 0x3B9A, 57320 }, - { 0x3B9B, 57340 }, - { 0x3B9C, 57257 }, - { 0x3B9D, 57273 }, - { 0x3B9E, 57204 }, - { 0x3B9F, 57220 }, - { 0x3BA0, 57191 }, - { 0x3BA1, 57483 }, - { 0x3BA2, 46625 }, - { 0x3BA3, 46619 }, - { 0x3BA4, 46670 }, - { 0x3BA5, 46655 }, - { 0x3BA6, 46665 }, - { 0x3BA7, 46660 }, - { 0x3BA8, 45720 }, - { 0x3BA9, 45705 }, - { 0x3BAA, 45715 }, - { 0x3BAB, 45710 }, - { 0x3BAC, 47185 }, - { 0x3BAD, 47170 }, - { 0x3BAE, 47180 }, - { 0x3BAF, 47175 }, - { 0x3BB0, 47592 }, - { 0x3BB1, 47577 }, - { 0x3BB2, 47587 }, - { 0x3BB3, 47582 }, - { 0x3BB4, 47556 }, - { 0x3BB5, 47541 }, - { 0x3BB6, 47551 }, - { 0x3BB7, 47546 }, - { 0x3BB8, 47142 }, - { 0x3BB9, 47127 }, - { 0x3BBA, 47137 }, - { 0x3BBB, 47132 }, - { 0x3BBC, 46075 }, - { 0x3BBD, 46060 }, - { 0x3BBE, 46070 }, - { 0x3BBF, 46065 }, - { 0x3BC0, 47442 }, - { 0x3BC1, 47427 }, - { 0x3BC2, 47437 }, - { 0x3BC3, 47432 }, - { 0x3BC4, 46706 }, - { 0x3BC5, 46691 }, - { 0x3BC6, 46701 }, - { 0x3BC7, 46696 }, - { 0x3BC8, 46969 }, - { 0x3BC9, 46954 }, - { 0x3BCA, 46964 }, - { 0x3BCB, 46959 }, - { 0x3BCC, 47533 }, - { 0x3BCD, 47518 }, - { 0x3BCE, 47528 }, - { 0x3BCF, 47523 }, - { 0x3BD0, 47697 }, - { 0x3BD1, 47682 }, - { 0x3BD2, 47692 }, - { 0x3BD3, 47687 }, - { 0x3BD4, 47569 }, - { 0x3BD5, 47564 }, - { 0x3BD6, 47198 }, - { 0x3BD7, 47193 }, - { 0x3BD8, 45199 }, - { 0x3BD9, 45194 }, - { 0x3BDA, 46683 }, - { 0x3BDB, 46678 }, - { 0x3BDC, 45549 }, - { 0x3BDD, 45544 }, - { 0x3BDE, 46982 }, - { 0x3BDF, 46977 }, - { 0x3BE0, 47396 }, - { 0x3BE1, 47381 }, - { 0x3BE2, 47391 }, - { 0x3BE3, 47386 }, - { 0x3BE4, 45316 }, - { 0x3BE5, 45301 }, - { 0x3BE6, 45311 }, - { 0x3BE7, 45306 }, - { 0x3BE8, 46732 }, - { 0x3BE9, 46717 }, - { 0x3BEA, 46727 }, - { 0x3BEB, 46722 }, - { 0x3BEC, 47419 }, - { 0x3BED, 47404 }, - { 0x3BEE, 47414 }, - { 0x3BEF, 47409 }, - { 0x3BF0, 46930 }, - { 0x3BF1, 46924 }, - { 0x3BF2, 47465 }, - { 0x3BF3, 47450 }, - { 0x3BF4, 47460 }, - { 0x3BF5, 47455 }, - { 0x3BF6, 45479 }, - { 0x3BF7, 45471 }, - { 0x3BF8, 45459 }, - { 0x3BF9, 45441 }, - { 0x3BFA, 45453 }, - { 0x3BFB, 45447 }, - { 0x3BFC, 45535 }, - { 0x3BFD, 45517 }, - { 0x3BFE, 45529 }, - { 0x3BFF, 45523 }, - { 0x3C00, 46307 }, - { 0x3C01, 46301 }, - { 0x3C02, 46272 }, - { 0x3C03, 46263 }, - { 0x3C04, 47746 }, - { 0x3C05, 47750 }, - { 0x3C06, 47754 }, - { 0x3C07, 47759 }, - { 0x3C08, 47799 }, - { 0x3C09, 47804 }, - { 0x3C0A, 47809 }, - { 0x3C0B, 47816 }, - { 0x3C0C, 47776 }, - { 0x3C0D, 47781 }, - { 0x3C0E, 47827 }, - { 0x3C0F, 47764 }, - { 0x3C10, 47770 }, - { 0x3C11, 47786 }, - { 0x3C12, 47789 }, - { 0x3C13, 47794 }, - { 0x3C14, 47823 }, - { 0x3C15, 44862 }, - { 0x3C16, 44847 }, - { 0x3C17, 44857 }, - { 0x3C18, 44852 }, - { 0x3C19, 44836 }, - { 0x3C1A, 44831 }, - { 0x3C1B, 44875 }, - { 0x3C1C, 44870 }, - { 0x3C1D, 44901 }, - { 0x3C1E, 44896 }, - { 0x3C1F, 44823 }, - { 0x3C20, 44888 }, - { 0x3C21, 44883 }, - { 0x3C22, 47657 }, - { 0x3C23, 47651 }, - { 0x3C24, 47673 }, - { 0x3C25, 47667 }, - { 0x3C26, 44809 }, - { 0x3C27, 44794 }, - { 0x3C28, 44804 }, - { 0x3C29, 44799 }, - { 0x3C2A, 47606 }, - { 0x3C2B, 47597 }, - { 0x3C2C, 50069 }, - { 0x3C2D, 50037 }, - { 0x3C2E, 49897 }, - { 0x3C2F, 49887 }, - { 0x3C30, 50007 }, - { 0x3C31, 49997 }, - { 0x3C32, 49877 }, - { 0x3C33, 49867 }, - { 0x3C34, 49917 }, - { 0x3C35, 49907 }, - { 0x3C36, 49937 }, - { 0x3C37, 49927 }, - { 0x3C38, 49857 }, - { 0x3C39, 49837 }, - { 0x3C3A, 49847 }, - { 0x3C3B, 51664 }, - { 0x3C3C, 51638 }, - { 0x3C3D, 51651 }, - { 0x3C3E, 47278 }, - { 0x3C3F, 47260 }, - { 0x3C40, 47272 }, - { 0x3C41, 47266 }, - { 0x3C42, 50089 }, - { 0x3C43, 49957 }, - { 0x3C44, 50139 }, - { 0x3C45, 50058 }, - { 0x3C46, 50027 }, - { 0x3C47, 48112 }, - { 0x3C48, 48047 }, - { 0x3C49, 48135 }, - { 0x3C4A, 48163 }, - { 0x3C4B, 48097 }, - { 0x3C4C, 48082 }, - { 0x3C4D, 49520 }, - { 0x3C4E, 49427 }, - { 0x3C4F, 49562 }, - { 0x3C50, 49636 }, - { 0x3C51, 49477 }, - { 0x3C52, 49462 }, - { 0x3C53, 51148 }, - { 0x3C54, 51176 }, - { 0x3C55, 51140 }, - { 0x3C56, 51125 }, - { 0x3C57, 50253 }, - { 0x3C58, 50334 }, - { 0x3C59, 48480 }, - { 0x3C5A, 48513 }, - { 0x3C5B, 50385 }, - { 0x3C5C, 50341 }, - { 0x3C5D, 50399 }, - { 0x3C5E, 50983 }, - { 0x3C5F, 50885 }, - { 0x3C60, 51023 }, - { 0x3C61, 51089 }, - { 0x3C62, 49202 }, - { 0x3C63, 49285 }, - { 0x3C64, 48268 }, - { 0x3C65, 48210 }, - { 0x3C66, 48300 }, - { 0x3C67, 48314 }, - { 0x3C68, 49299 }, - { 0x3C69, 49386 }, - { 0x3C6A, 50183 }, - { 0x3C6B, 47973 }, - { 0x3C6C, 48024 }, - { 0x3C6D, 51244 }, - { 0x3C6E, 51286 }, - { 0x3C6F, 48372 }, - { 0x3C70, 48328 }, - { 0x3C71, 48404 }, - { 0x3C72, 48427 }, - { 0x3C73, 48357 }, - { 0x3C74, 48342 }, - { 0x3C75, 49073 }, - { 0x3C76, 49153 }, - { 0x3C77, 49102 }, - { 0x3C78, 49087 }, - { 0x3C79, 48668 }, - { 0x3C7A, 48682 }, - { 0x3C7B, 48596 }, - { 0x3C7C, 48696 }, - { 0x3C7D, 48624 }, - { 0x3C7E, 48751 }, - { 0x3C7F, 48660 }, - { 0x3C80, 48638 }, - { 0x3C81, 48972 }, - { 0x3C82, 48802 }, - { 0x3C83, 49004 }, - { 0x3C84, 49059 }, - { 0x3C85, 48905 }, - { 0x3C86, 48823 }, - { 0x3C87, 50512 }, - { 0x3C88, 50440 }, - { 0x3C89, 50553 }, - { 0x3C8A, 50583 }, - { 0x3C8B, 50461 }, - { 0x3C8C, 50447 }, - { 0x3C8D, 50745 }, - { 0x3C8E, 50625 }, - { 0x3C8F, 50759 }, - { 0x3C90, 50806 }, - { 0x3C91, 50675 }, - { 0x3C92, 50660 }, - { 0x3C93, 48542 }, - { 0x3C94, 48574 }, - { 0x3C95, 48527 }, - { 0x3C96, 48520 }, - { 0x3C97, 49747 }, - { 0x3C98, 49673 }, - { 0x3C99, 49761 }, - { 0x3C9A, 49816 }, - { 0x3C9B, 49723 }, - { 0x3C9C, 49708 }, - { 0x3C9D, 51096 }, - { 0x3C9E, 49160 }, - { 0x3C9F, 50213 }, - { 0x3CA0, 51616 }, - { 0x3CA1, 51623 }, - { 0x3CA2, 51595 }, - { 0x3CA3, 51581 }, - { 0x3CA4, 51609 }, - { 0x3CA5, 51630 }, - { 0x3CA6, 49987 }, - { 0x3CA7, 50159 }, - { 0x3CA8, 50109 }, - { 0x3CA9, 50149 }, - { 0x3CAA, 50047 }, - { 0x3CAB, 50017 }, - { 0x3CAC, 48068 }, - { 0x3CAD, 48177 }, - { 0x3CAE, 48142 }, - { 0x3CAF, 48170 }, - { 0x3CB0, 48089 }, - { 0x3CB1, 48075 }, - { 0x3CB2, 49448 }, - { 0x3CB3, 49650 }, - { 0x3CB4, 49615 }, - { 0x3CB5, 49643 }, - { 0x3CB6, 49469 }, - { 0x3CB7, 49455 }, - { 0x3CB8, 51111 }, - { 0x3CB9, 51190 }, - { 0x3CBA, 51155 }, - { 0x3CBB, 51183 }, - { 0x3CBC, 51132 }, - { 0x3CBD, 51118 }, - { 0x3CBE, 48349 }, - { 0x3CBF, 48335 }, - { 0x3CC0, 49094 }, - { 0x3CC1, 49080 }, - { 0x3CC2, 48645 }, - { 0x3CC3, 48603 }, - { 0x3CC4, 48730 }, - { 0x3CC5, 48652 }, - { 0x3CC6, 48631 }, - { 0x3CC7, 49038 }, - { 0x3CC8, 48897 }, - { 0x3CC9, 48816 }, - { 0x3CCA, 50454 }, - { 0x3CCB, 50569 }, - { 0x3CCC, 50646 }, - { 0x3CCD, 50820 }, - { 0x3CCE, 50785 }, - { 0x3CCF, 50813 }, - { 0x3CD0, 50667 }, - { 0x3CD1, 50653 }, - { 0x3CD2, 50204 }, - { 0x3CD3, 49694 }, - { 0x3CD4, 49830 }, - { 0x3CD5, 49795 }, - { 0x3CD6, 49823 }, - { 0x3CD7, 49715 }, - { 0x3CD8, 49701 }, - { 0x3CD9, 50079 }, - { 0x3CDA, 49947 }, - { 0x3CDB, 50099 }, - { 0x3CDC, 50129 }, - { 0x3CDD, 49977 }, - { 0x3CDE, 48105 }, - { 0x3CDF, 48040 }, - { 0x3CE0, 48128 }, - { 0x3CE1, 48156 }, - { 0x3CE2, 48061 }, - { 0x3CE3, 49513 }, - { 0x3CE4, 49420 }, - { 0x3CE5, 49555 }, - { 0x3CE6, 49629 }, - { 0x3CE7, 49441 }, - { 0x3CE8, 51169 }, - { 0x3CE9, 50246 }, - { 0x3CEA, 50327 }, - { 0x3CEB, 48473 }, - { 0x3CEC, 48506 }, - { 0x3CED, 50378 }, - { 0x3CEE, 50392 }, - { 0x3CEF, 50976 }, - { 0x3CF0, 50878 }, - { 0x3CF1, 51016 }, - { 0x3CF2, 51082 }, - { 0x3CF3, 49195 }, - { 0x3CF4, 49253 }, - { 0x3CF5, 49278 }, - { 0x3CF6, 48261 }, - { 0x3CF7, 48203 }, - { 0x3CF8, 48293 }, - { 0x3CF9, 48307 }, - { 0x3CFA, 49292 }, - { 0x3CFB, 50176 }, - { 0x3CFC, 47966 }, - { 0x3CFD, 48017 }, - { 0x3CFE, 51237 }, - { 0x3CFF, 51279 }, - { 0x3D00, 48365 }, - { 0x3D01, 48321 }, - { 0x3D02, 48397 }, - { 0x3D03, 48420 }, - { 0x3D04, 49066 }, - { 0x3D05, 49146 }, - { 0x3D06, 48675 }, - { 0x3D07, 48589 }, - { 0x3D08, 48689 }, - { 0x3D09, 48617 }, - { 0x3D0A, 48744 }, - { 0x3D0B, 48965 }, - { 0x3D0C, 48795 }, - { 0x3D0D, 48997 }, - { 0x3D0E, 49052 }, - { 0x3D0F, 48809 }, - { 0x3D10, 50505 }, - { 0x3D11, 50433 }, - { 0x3D12, 50546 }, - { 0x3D13, 50576 }, - { 0x3D14, 50738 }, - { 0x3D15, 50618 }, - { 0x3D16, 50752 }, - { 0x3D17, 50799 }, - { 0x3D18, 50639 }, - { 0x3D19, 48535 }, - { 0x3D1A, 48567 }, - { 0x3D1B, 48581 }, - { 0x3D1C, 49740 }, - { 0x3D1D, 49666 }, - { 0x3D1E, 49754 }, - { 0x3D1F, 49809 }, - { 0x3D20, 49687 }, - { 0x3D21, 50119 }, - { 0x3D22, 49967 }, - { 0x3D23, 48149 }, - { 0x3D24, 48054 }, - { 0x3D25, 49622 }, - { 0x3D26, 49434 }, - { 0x3D27, 51162 }, - { 0x3D28, 51104 }, - { 0x3D29, 51075 }, - { 0x3D2A, 50892 }, - { 0x3D2B, 51534 }, - { 0x3D2C, 51368 }, - { 0x3D2D, 48610 }, - { 0x3D2E, 48737 }, - { 0x3D2F, 49045 }, - { 0x3D30, 50792 }, - { 0x3D31, 50632 }, - { 0x3D32, 49802 }, - { 0x3D33, 49680 }, - { 0x3D34, 51588 }, - { 0x3D35, 51574 }, - { 0x3D36, 51602 }, - { 0x3D37, 49328 }, - { 0x3D38, 49313 }, - { 0x3D39, 47940 }, - { 0x3D3A, 47925 }, - { 0x3D3B, 51229 }, - { 0x3D3C, 51214 }, - { 0x3D3D, 50942 }, - { 0x3D3E, 50927 }, - { 0x3D3F, 51418 }, - { 0x3D40, 51403 }, - { 0x3D41, 48456 }, - { 0x3D42, 48441 }, - { 0x3D43, 50282 }, - { 0x3D44, 50267 }, - { 0x3D45, 50370 }, - { 0x3D46, 50355 }, - { 0x3D47, 49245 }, - { 0x3D48, 49230 }, - { 0x3D49, 48253 }, - { 0x3D4A, 48238 }, - { 0x3D4B, 51456 }, - { 0x3D4C, 51361 }, - { 0x3D4D, 51484 }, - { 0x3D4E, 51548 }, - { 0x3D4F, 51389 }, - { 0x3D50, 50913 }, - { 0x3D51, 49216 }, - { 0x3D52, 48224 }, - { 0x3D53, 49320 }, - { 0x3D54, 49306 }, - { 0x3D55, 47932 }, - { 0x3D56, 47918 }, - { 0x3D57, 51221 }, - { 0x3D58, 51207 }, - { 0x3D59, 50934 }, - { 0x3D5A, 50920 }, - { 0x3D5B, 51410 }, - { 0x3D5C, 51396 }, - { 0x3D5D, 48448 }, - { 0x3D5E, 48434 }, - { 0x3D5F, 50274 }, - { 0x3D60, 50260 }, - { 0x3D61, 50362 }, - { 0x3D62, 50348 }, - { 0x3D63, 49237 }, - { 0x3D64, 49223 }, - { 0x3D65, 48245 }, - { 0x3D66, 48231 }, - { 0x3D67, 51435 }, - { 0x3D68, 51340 }, - { 0x3D69, 51463 }, - { 0x3D6A, 51527 }, - { 0x3D6B, 51382 }, - { 0x3D6C, 50906 }, - { 0x3D6D, 49209 }, - { 0x3D6E, 48217 }, - { 0x3D6F, 51449 }, - { 0x3D70, 51354 }, - { 0x3D71, 51477 }, - { 0x3D72, 51541 }, - { 0x3D73, 50899 }, - { 0x3D74, 51375 }, - { 0x3D75, 49379 }, - { 0x3D76, 50969 }, - { 0x3D77, 50871 }, - { 0x3D78, 51009 }, - { 0x3D79, 51442 }, - { 0x3D7A, 51347 }, - { 0x3D7B, 51470 }, - { 0x3D7C, 49372 }, - { 0x3D7D, 50169 }, - { 0x3D7E, 50190 }, - { 0x3D7F, 50197 }, - { 0x3D80, 63929 }, - { 0x3D81, 63932 }, - { 0x3D82, 51694 }, - { 0x3D83, 50837 }, - { 0x3D84, 50842 }, - { 0x3D85, 50847 }, - { 0x3D86, 50852 }, - { 0x3D87, 50857 }, - { 0x3D88, 51735 }, - { 0x3D89, 51560 }, - { 0x3D8A, 51681 }, - { 0x3D8B, 51703 }, - { 0x3D8C, 51564 }, - { 0x3D8D, 51685 }, - { 0x3D8E, 51724 }, - { 0x3D8F, 51677 }, - { 0x3D90, 51720 }, - { 0x3D91, 51712 }, - { 0x3D92, 49504 }, - { 0x3D93, 49393 }, - { 0x3D94, 49402 }, - { 0x3D95, 49411 }, - { 0x3D96, 49546 }, - { 0x3D97, 49597 }, - { 0x3D98, 49569 }, - { 0x3D99, 49606 }, - { 0x3D9A, 50290 }, - { 0x3D9B, 50299 }, - { 0x3D9C, 48487 }, - { 0x3D9D, 48496 }, - { 0x3D9E, 50862 }, - { 0x3D9F, 50950 }, - { 0x3DA0, 50959 }, - { 0x3DA1, 51030 }, - { 0x3DA2, 51039 }, - { 0x3DA3, 51048 }, - { 0x3DA4, 51057 }, - { 0x3DA5, 51066 }, - { 0x3DA6, 49168 }, - { 0x3DA7, 49177 }, - { 0x3DA8, 49260 }, - { 0x3DA9, 51322 }, - { 0x3DAA, 51331 }, - { 0x3DAB, 51426 }, - { 0x3DAC, 51491 }, - { 0x3DAD, 51500 }, - { 0x3DAE, 51509 }, - { 0x3DAF, 51518 }, - { 0x3DB0, 48193 }, - { 0x3DB1, 48275 }, - { 0x3DB2, 48284 }, - { 0x3DB3, 49336 }, - { 0x3DB4, 49345 }, - { 0x3DB5, 49363 }, - { 0x3DB6, 49354 }, - { 0x3DB7, 47948 }, - { 0x3DB8, 47999 }, - { 0x3DB9, 48008 }, - { 0x3DBA, 47989 }, - { 0x3DBB, 51270 }, - { 0x3DBC, 51251 }, - { 0x3DBD, 51260 }, - { 0x3DBE, 48379 }, - { 0x3DBF, 48388 }, - { 0x3DC0, 49110 }, - { 0x3DC1, 49137 }, - { 0x3DC2, 48777 }, - { 0x3DC3, 48758 }, - { 0x3DC4, 48767 }, - { 0x3DC5, 48938 }, - { 0x3DC6, 48929 }, - { 0x3DC7, 48979 }, - { 0x3DC8, 48988 }, - { 0x3DC9, 49011 }, - { 0x3DCA, 49020 }, - { 0x3DCB, 50415 }, - { 0x3DCC, 50424 }, - { 0x3DCD, 50406 }, - { 0x3DCE, 50469 }, - { 0x3DCF, 50496 }, - { 0x3DD0, 50528 }, - { 0x3DD1, 50537 }, - { 0x3DD2, 50487 }, - { 0x3DD3, 48549 }, - { 0x3DD4, 48558 }, - { 0x3DD5, 50609 }, - { 0x3DD6, 50599 }, - { 0x3DD7, 50720 }, - { 0x3DD8, 50729 }, - { 0x3DD9, 50710 }, - { 0x3DDA, 50766 }, - { 0x3DDB, 50775 }, - { 0x3DDC, 49777 }, - { 0x3DDD, 49786 }, - { 0x3DDE, 48119 }, - { 0x3DDF, 49485 }, - { 0x3DE0, 49494 }, - { 0x3DE1, 49527 }, - { 0x3DE2, 49536 }, - { 0x3DE3, 49578 }, - { 0x3DE4, 49587 }, - { 0x3DE5, 50308 }, - { 0x3DE6, 50236 }, - { 0x3DE7, 50317 }, - { 0x3DE8, 50999 }, - { 0x3DE9, 49186 }, - { 0x3DEA, 51313 }, - { 0x3DEB, 48184 }, - { 0x3DEC, 48920 }, - { 0x3DED, 49029 }, - { 0x3DEE, 49657 }, - { 0x3DEF, 49731 }, - { 0x3DF0, 49768 }, - { 0x3DF1, 50560 }, - { 0x3DF2, 49128 }, - { 0x3DF3, 50590 }, - { 0x3DF4, 49119 }, - { 0x3DF5, 48786 }, - { 0x3DF6, 47980 }, - { 0x3DF7, 48703 }, - { 0x3DF8, 50692 }, - { 0x3DF9, 50519 }, - { 0x3DFA, 48956 }, - { 0x3DFB, 48712 }, - { 0x3DFC, 48947 }, - { 0x3DFD, 50683 }, - { 0x3DFE, 50227 }, - { 0x3DFF, 48464 }, - { 0x3E00, 50478 }, - { 0x3E01, 48411 }, - { 0x3E02, 48031 }, - { 0x3E03, 48721 }, - { 0x3E04, 47957 }, - { 0x3E05, 49269 }, - { 0x3E06, 50990 }, - { 0x3E07, 50701 }, - { 0x3E08, 51716 }, - { 0x3E09, 51298 }, - { 0x3E0A, 50827 }, - { 0x3E0B, 51202 }, - { 0x3E0C, 51197 }, - { 0x3E0D, 51689 }, - { 0x3E0E, 51293 }, - { 0x3E0F, 51569 }, - { 0x3E10, 51555 }, - { 0x3E11, 51698 }, - { 0x3E12, 51308 }, - { 0x3E13, 51740 }, - { 0x3E14, 51745 }, - { 0x3E15, 16668 }, - { 0x3E16, 51707 }, - { 0x3E17, 51730 }, - { 0x3E18, 50222 }, - { 0x3E19, 143327 }, - { 0x3E1A, 143444 }, - { 0x3E1B, 143437 }, - { 0x3E1C, 143322 }, - { 0x3E1D, 143420 }, - { 0x3E1E, 143431 }, - { 0x3E1F, 143414 }, - { 0x3E20, 143271 }, - { 0x3E21, 143370 }, - { 0x3E22, 143425 }, - { 0x3E23, 117474 }, - { 0x3E24, 117483 }, - { 0x3E25, 116988 }, - { 0x3E26, 116993 }, - { 0x3E27, 117059 }, - { 0x3E28, 117071 }, - { 0x3E29, 117570 }, - { 0x3E2A, 117478 }, - { 0x3E2B, 117487 }, - { 0x3E2C, 116907 }, - { 0x3E2D, 116915 }, - { 0x3E2E, 117063 }, - { 0x3E2F, 117075 }, - { 0x3E30, 117573 }, - { 0x3E31, 117223 }, - { 0x3E32, 117228 }, - { 0x3E33, 143234 }, - { 0x3E34, 143216 }, - { 0x3E35, 143222 }, - { 0x3E36, 143228 }, - { 0x3E37, 143315 }, - { 0x3E38, 143309 }, - { 0x3E39, 143408 }, - { 0x3E3A, 143256 }, - { 0x3E3B, 143347 }, - { 0x3E3C, 143301 }, - { 0x3E3D, 143400 }, - { 0x3E3E, 143248 }, - { 0x3E3F, 143339 }, - { 0x3E40, 143286 }, - { 0x3E41, 143385 }, - { 0x3E42, 143241 }, - { 0x3E43, 143332 }, - { 0x3E44, 143279 }, - { 0x3E45, 143378 }, - { 0x3E46, 143263 }, - { 0x3E47, 143354 }, - { 0x3E48, 64902 }, - { 0x3E49, 43718 }, - { 0x3E4A, 143294 }, - { 0x3E4B, 143393 }, - { 0x3E4C, 54285 }, - { 0x3E4D, 129682 }, - { 0x3E4E, 17532 }, - { 0x3E4F, 54688 }, - { 0x3E50, 54282 }, - { 0x3E51, 129679 }, - { 0x3E52, 17525 }, - { 0x3E53, 41307 }, - { 0x3E54, 41465 }, - { 0x3E55, 41287 }, - { 0x3E56, 41457 }, - { 0x3E57, 41305 }, - { 0x3E58, 41449 }, - { 0x3E59, 41462 }, - { 0x3E5A, 41270 }, - { 0x3E5B, 41299 }, - { 0x3E5C, 41318 }, - { 0x3E5D, 41290 }, - { 0x3E5E, 41309 }, - { 0x3E5F, 41294 }, - { 0x3E60, 41313 }, - { 0x3E61, 41396 }, - { 0x3E62, 41452 }, - { 0x3E63, 41429 }, - { 0x3E64, 41302 }, - { 0x3E65, 41474 }, - { 0x3E66, 41454 }, - { 0x3E67, 41471 }, - { 0x3E68, 41393 }, - { 0x3E69, 41424 }, - { 0x3E6A, 41390 }, - { 0x3E6B, 41421 }, - { 0x3E6C, 41459 }, - { 0x3E6D, 47902 }, - { 0x3E6E, 47870 }, - { 0x3E6F, 47891 }, - { 0x3E70, 44303 }, - { 0x3E71, 47914 }, - { 0x3E72, 44402 }, - { 0x3E73, 44398 }, - { 0x3E74, 44368 }, - { 0x3E75, 44364 }, - { 0x3E76, 44423 }, - { 0x3E77, 44419 }, - { 0x3E78, 47742 }, - { 0x3E79, 47738 }, - { 0x3E7A, 44757 }, - { 0x3E7B, 44753 }, - { 0x3E7C, 47323 }, - { 0x3E7D, 46439 }, - { 0x3E7E, 46431 }, - { 0x3E7F, 46395 }, - { 0x3E80, 46387 }, - { 0x3E81, 46121 }, - { 0x3E82, 46113 }, - { 0x3E83, 46417 }, - { 0x3E84, 46409 }, - { 0x3E85, 46226 }, - { 0x3E86, 46202 }, - { 0x3E87, 46218 }, - { 0x3E88, 46210 }, - { 0x3E89, 46647 }, - { 0x3E8A, 46610 }, - { 0x3E8B, 45069 }, - { 0x3E8C, 45054 }, - { 0x3E8D, 45064 }, - { 0x3E8E, 45059 }, - { 0x3E8F, 46046 }, - { 0x3E90, 46040 }, - { 0x3E91, 46052 }, - { 0x3E92, 46016 }, - { 0x3E93, 46026 }, - { 0x3E94, 46021 }, - { 0x3E95, 47109 }, - { 0x3E96, 47094 }, - { 0x3E97, 47104 }, - { 0x3E98, 47099 }, - { 0x3E99, 46795 }, - { 0x3E9A, 46780 }, - { 0x3E9B, 46790 }, - { 0x3E9C, 46785 }, - { 0x3E9D, 45422 }, - { 0x3E9E, 45407 }, - { 0x3E9F, 45417 }, - { 0x3EA0, 45412 }, - { 0x3EA1, 46818 }, - { 0x3EA2, 46803 }, - { 0x3EA3, 46813 }, - { 0x3EA4, 46808 }, - { 0x3EA5, 45186 }, - { 0x3EA6, 45181 }, - { 0x3EA7, 47086 }, - { 0x3EA8, 47081 }, - { 0x3EA9, 45880 }, - { 0x3EAA, 45875 }, - { 0x3EAB, 47162 }, - { 0x3EAC, 47157 }, - { 0x3EAD, 47073 }, - { 0x3EAE, 47058 }, - { 0x3EAF, 47068 }, - { 0x3EB0, 47063 }, - { 0x3EB1, 47494 }, - { 0x3EB2, 47479 }, - { 0x3EB3, 47489 }, - { 0x3EB4, 47484 }, - { 0x3EB5, 45924 }, - { 0x3EB6, 45909 }, - { 0x3EB7, 45919 }, - { 0x3EB8, 45914 }, - { 0x3EB9, 45098 }, - { 0x3EBA, 45083 }, - { 0x3EBB, 45093 }, - { 0x3EBC, 45088 }, - { 0x3EBD, 45982 }, - { 0x3EBE, 45967 }, - { 0x3EBF, 45977 }, - { 0x3EC0, 45972 }, - { 0x3EC1, 46346 }, - { 0x3EC2, 46331 }, - { 0x3EC3, 46341 }, - { 0x3EC4, 46336 }, - { 0x3EC5, 44962 }, - { 0x3EC6, 44947 }, - { 0x3EC7, 44957 }, - { 0x3EC8, 44952 }, - { 0x3EC9, 47315 }, - { 0x3ECA, 47300 }, - { 0x3ECB, 47310 }, - { 0x3ECC, 47305 }, - { 0x3ECD, 45268 }, - { 0x3ECE, 45253 }, - { 0x3ECF, 45263 }, - { 0x3ED0, 45258 }, - { 0x3ED1, 45772 }, - { 0x3ED2, 45757 }, - { 0x3ED3, 45767 }, - { 0x3ED4, 45762 }, - { 0x3ED5, 45611 }, - { 0x3ED6, 45596 }, - { 0x3ED7, 45606 }, - { 0x3ED8, 45601 }, - { 0x3ED9, 45680 }, - { 0x3EDA, 45665 }, - { 0x3EDB, 45675 }, - { 0x3EDC, 45670 }, - { 0x3EDD, 46863 }, - { 0x3EDE, 46848 }, - { 0x3EDF, 46858 }, - { 0x3EE0, 46853 }, - { 0x3EE1, 46946 }, - { 0x3EE2, 46915 }, - { 0x3EE3, 46941 }, - { 0x3EE4, 46936 }, - { 0x3EE5, 45508 }, - { 0x3EE6, 45493 }, - { 0x3EE7, 45503 }, - { 0x3EE8, 45498 }, - { 0x3EE9, 46152 }, - { 0x3EEA, 46147 }, - { 0x3EEB, 46641 }, - { 0x3EEC, 46635 }, - { 0x3EED, 46323 }, - { 0x3EEE, 46247 }, - { 0x3EEF, 46318 }, - { 0x3EF0, 46313 }, - { 0x3EF1, 48880 }, - { 0x3EF2, 48870 }, - { 0x3EF3, 48840 }, - { 0x3EF4, 48830 }, - { 0x3EF5, 48860 }, - { 0x3EF6, 48850 }, - { 0x3EF7, 48913 }, - { 0x3EF8, 48890 }, - { 0x3EF9, 17561 }, - { 0x3EFA, 124823 }, - { 0x3EFB, 124810 }, - { 0x3EFC, 124786 }, - { 0x3EFD, 124778 }, - { 0x3EFE, 124789 }, - { 0x3EFF, 124805 }, - { 0x3F00, 124815 }, - { 0x3F01, 124452 }, - { 0x3F02, 124770 }, - { 0x3F03, 124797 }, - { 0x3F04, 124455 }, - { 0x3F05, 124460 }, - { 0x3F06, 124829 }, - { 0x3F07, 124437 }, - { 0x3F08, 124795 }, - { 0x3F09, 124480 }, - { 0x3F0A, 124462 }, - { 0x3F0B, 124468 }, - { 0x3F0C, 124489 }, - { 0x3F0D, 124474 }, - { 0x3F0E, 124471 }, - { 0x3F0F, 124465 }, - { 0x3F10, 124486 }, - { 0x3F11, 124483 }, - { 0x3F12, 124477 }, - { 0x3F13, 124458 }, - { 0x3F14, 124813 }, - { 0x3F15, 124807 }, - { 0x3F16, 124781 }, - { 0x3F17, 124826 }, - { 0x3F18, 124799 }, - { 0x3F19, 124820 }, - { 0x3F1A, 124625 }, - { 0x3F1B, 124630 }, - { 0x3F1C, 124635 }, - { 0x3F1D, 124640 }, - { 0x3F1E, 124645 }, - { 0x3F1F, 124650 }, - { 0x3F20, 124655 }, - { 0x3F21, 124660 }, - { 0x3F22, 124665 }, - { 0x3F23, 124670 }, - { 0x3F24, 124675 }, - { 0x3F25, 124680 }, - { 0x3F26, 124685 }, - { 0x3F27, 124690 }, - { 0x3F28, 124695 }, - { 0x3F29, 124700 }, - { 0x3F2A, 124705 }, - { 0x3F2B, 124710 }, - { 0x3F2C, 124715 }, - { 0x3F2D, 124720 }, - { 0x3F2E, 124725 }, - { 0x3F2F, 124730 }, - { 0x3F30, 124735 }, - { 0x3F31, 124740 }, - { 0x3F32, 124745 }, - { 0x3F33, 124750 }, - { 0x3F34, 124448 }, - { 0x3F35, 124792 }, - { 0x3F36, 124766 }, - { 0x3F37, 124817 }, - { 0x3F38, 124422 }, - { 0x3F39, 124492 }, - { 0x3F3A, 124495 }, - { 0x3F3B, 124500 }, - { 0x3F3C, 124505 }, - { 0x3F3D, 124510 }, - { 0x3F3E, 124515 }, - { 0x3F3F, 124520 }, - { 0x3F40, 124525 }, - { 0x3F41, 124530 }, - { 0x3F42, 124535 }, - { 0x3F43, 124540 }, - { 0x3F44, 124545 }, - { 0x3F45, 124550 }, - { 0x3F46, 124555 }, - { 0x3F47, 124560 }, - { 0x3F48, 124565 }, - { 0x3F49, 124570 }, - { 0x3F4A, 124575 }, - { 0x3F4B, 124580 }, - { 0x3F4C, 124585 }, - { 0x3F4D, 124590 }, - { 0x3F4E, 124595 }, - { 0x3F4F, 124600 }, - { 0x3F50, 124605 }, - { 0x3F51, 124610 }, - { 0x3F52, 124615 }, - { 0x3F53, 124620 }, - { 0x3F54, 124440 }, - { 0x3F55, 124802 }, - { 0x3F56, 124758 }, - { 0x3F57, 124773 }, - { 0x3F58, 124444 }, - { 0x3F59, 124762 }, - { 0x3F5A, 125316 }, - { 0x3F5B, 124836 }, - { 0x3F5C, 124847 }, - { 0x3F5D, 125320 }, - { 0x3F5E, 125293 }, - { 0x3F5F, 125232 }, - { 0x3F60, 125248 }, - { 0x3F61, 125258 }, - { 0x3F62, 125268 }, - { 0x3F63, 125253 }, - { 0x3F64, 125263 }, - { 0x3F65, 125278 }, - { 0x3F66, 125288 }, - { 0x3F67, 125283 }, - { 0x3F68, 125273 }, - { 0x3F69, 125323 }, - { 0x3F6A, 125064 }, - { 0x3F6B, 125072 }, - { 0x3F6C, 125084 }, - { 0x3F6D, 125068 }, - { 0x3F6E, 125080 }, - { 0x3F6F, 125108 }, - { 0x3F70, 125116 }, - { 0x3F71, 125124 }, - { 0x3F72, 125112 }, - { 0x3F73, 125120 }, - { 0x3F74, 125188 }, - { 0x3F75, 125196 }, - { 0x3F76, 125204 }, - { 0x3F77, 125192 }, - { 0x3F78, 125200 }, - { 0x3F79, 125208 }, - { 0x3F7A, 125216 }, - { 0x3F7B, 125224 }, - { 0x3F7C, 125212 }, - { 0x3F7D, 125220 }, - { 0x3F7E, 125148 }, - { 0x3F7F, 125156 }, - { 0x3F80, 125164 }, - { 0x3F81, 125152 }, - { 0x3F82, 125160 }, - { 0x3F83, 125088 }, - { 0x3F84, 125096 }, - { 0x3F85, 125104 }, - { 0x3F86, 125092 }, - { 0x3F87, 125100 }, - { 0x3F88, 125128 }, - { 0x3F89, 125136 }, - { 0x3F8A, 125144 }, - { 0x3F8B, 125132 }, - { 0x3F8C, 125140 }, - { 0x3F8D, 125236 }, - { 0x3F8E, 125244 }, - { 0x3F8F, 125240 }, - { 0x3F90, 125168 }, - { 0x3F91, 125176 }, - { 0x3F92, 125184 }, - { 0x3F93, 125172 }, - { 0x3F94, 125180 }, - { 0x3F95, 125228 }, - { 0x3F96, 125076 }, - { 0x3F97, 125297 }, - { 0x3F98, 125302 }, - { 0x3F99, 124854 }, - { 0x3F9A, 124973 }, - { 0x3F9B, 125041 }, - { 0x3F9C, 125017 }, - { 0x3F9D, 124961 }, - { 0x3F9E, 125021 }, - { 0x3F9F, 125025 }, - { 0x3FA0, 124977 }, - { 0x3FA1, 125045 }, - { 0x3FA2, 124969 }, - { 0x3FA3, 125049 }, - { 0x3FA4, 125033 }, - { 0x3FA5, 125037 }, - { 0x3FA6, 125005 }, - { 0x3FA7, 125057 }, - { 0x3FA8, 125053 }, - { 0x3FA9, 125029 }, - { 0x3FAA, 124957 }, - { 0x3FAB, 124965 }, - { 0x3FAC, 125013 }, - { 0x3FAD, 125001 }, - { 0x3FAE, 124941 }, - { 0x3FAF, 124997 }, - { 0x3FB0, 124953 }, - { 0x3FB1, 124945 }, - { 0x3FB2, 125009 }, - { 0x3FB3, 124981 }, - { 0x3FB4, 124985 }, - { 0x3FB5, 124993 }, - { 0x3FB6, 124989 }, - { 0x3FB7, 124949 }, - { 0x3FB8, 124857 }, - { 0x3FB9, 124877 }, - { 0x3FBA, 124905 }, - { 0x3FBB, 124933 }, - { 0x3FBC, 124881 }, - { 0x3FBD, 124861 }, - { 0x3FBE, 124937 }, - { 0x3FBF, 124909 }, - { 0x3FC0, 124869 }, - { 0x3FC1, 124893 }, - { 0x3FC2, 124925 }, - { 0x3FC3, 124889 }, - { 0x3FC4, 124917 }, - { 0x3FC5, 124873 }, - { 0x3FC6, 124929 }, - { 0x3FC7, 124897 }, - { 0x3FC8, 124901 }, - { 0x3FC9, 124921 }, - { 0x3FCA, 124885 }, - { 0x3FCB, 124913 }, - { 0x3FCC, 124865 }, - { 0x3FCD, 124434 }, - { 0x3FCE, 124755 }, - { 0x3FCF, 124425 }, - { 0x3FD0, 124784 }, - { 0x3FD1, 124775 }, - { 0x3FD2, 124431 }, - { 0x3FD3, 124428 }, - { 0x3FD4, 124843 }, - { 0x3FD5, 125310 }, - { 0x3FD6, 125061 }, - { 0x3FD7, 125313 }, - { 0x3FD8, 125307 }, - { 0x3FD9, 124840 }, - { 0x3FDA, 124851 }, - { 0x3FDB, 133849 }, - { 0x3FDC, 133852 }, - { 0x3FDD, 133855 }, - { 0x3FDE, 63917 }, - { 0x3FDF, 134506 }, - { 0x3FE0, 62843 }, - { 0x3FE1, 62968 }, - { 0x3FE2, 62928 }, - { 0x3FE3, 63068 }, - { 0x3FE4, 62853 }, - { 0x3FE5, 62808 }, - { 0x3FE6, 63003 }, - { 0x3FE7, 62838 }, - { 0x3FE8, 62873 }, - { 0x3FE9, 63023 }, - { 0x3FEA, 63048 }, - { 0x3FEB, 63008 }, - { 0x3FEC, 62958 }, - { 0x3FED, 63078 }, - { 0x3FEE, 63138 }, - { 0x3FEF, 62998 }, - { 0x3FF0, 63088 }, - { 0x3FF1, 63103 }, - { 0x3FF2, 63153 }, - { 0x3FF3, 63148 }, - { 0x3FF4, 62868 }, - { 0x3FF5, 63118 }, - { 0x3FF6, 62878 }, - { 0x3FF7, 62903 }, - { 0x3FF8, 62833 }, - { 0x3FF9, 62908 }, - { 0x3FFA, 62938 }, - { 0x3FFB, 63028 }, - { 0x3FFC, 63043 }, - { 0x3FFD, 62818 }, - { 0x3FFE, 63113 }, - { 0x3FFF, 62973 }, - { 0x4000, 62858 }, - { 0x4001, 63018 }, - { 0x4002, 62883 }, - { 0x4003, 63143 }, - { 0x4004, 62898 }, - { 0x4005, 62948 }, - { 0x4006, 63063 }, - { 0x4007, 62923 }, - { 0x4008, 63033 }, - { 0x4009, 62813 }, - { 0x400A, 62918 }, - { 0x400B, 62943 }, - { 0x400C, 62848 }, - { 0x400D, 62983 }, - { 0x400E, 62863 }, - { 0x400F, 63053 }, - { 0x4010, 63058 }, - { 0x4011, 62823 }, - { 0x4012, 62963 }, - { 0x4013, 62828 }, - { 0x4014, 63098 }, - { 0x4015, 63038 }, - { 0x4016, 63128 }, - { 0x4017, 62978 }, - { 0x4018, 62988 }, - { 0x4019, 62888 }, - { 0x401A, 63123 }, - { 0x401B, 62893 }, - { 0x401C, 62913 }, - { 0x401D, 62993 }, - { 0x401E, 63158 }, - { 0x401F, 63108 }, - { 0x4020, 63168 }, - { 0x4021, 63013 }, - { 0x4022, 62933 }, - { 0x4023, 63073 }, - { 0x4024, 63133 }, - { 0x4025, 62953 }, - { 0x4026, 63093 }, - { 0x4027, 63083 }, - { 0x4028, 63163 }, - { 0x4029, 63173 }, - { 0x402A, 62182 }, - { 0x402B, 62186 }, - { 0x402C, 62190 }, - { 0x402D, 62194 }, - { 0x402E, 62198 }, - { 0x402F, 62202 }, - { 0x4030, 62206 }, - { 0x4031, 62210 }, - { 0x4032, 62214 }, - { 0x4033, 62218 }, - { 0x4034, 62222 }, - { 0x4035, 62226 }, - { 0x4036, 62230 }, - { 0x4037, 62234 }, - { 0x4038, 62238 }, - { 0x4039, 62243 }, - { 0x403A, 62248 }, - { 0x403B, 62253 }, - { 0x403C, 62583 }, - { 0x403D, 62588 }, - { 0x403E, 62593 }, - { 0x403F, 62598 }, - { 0x4040, 62603 }, - { 0x4041, 62608 }, - { 0x4042, 62613 }, - { 0x4043, 62618 }, - { 0x4044, 62623 }, - { 0x4045, 62628 }, - { 0x4046, 62258 }, - { 0x4047, 62263 }, - { 0x4048, 62268 }, - { 0x4049, 62273 }, - { 0x404A, 62278 }, - { 0x404B, 62778 }, - { 0x404C, 62783 }, - { 0x404D, 62283 }, - { 0x404E, 62288 }, - { 0x404F, 62293 }, - { 0x4050, 62788 }, - { 0x4051, 62793 }, - { 0x4052, 62297 }, - { 0x4053, 62302 }, - { 0x4054, 62307 }, - { 0x4055, 62311 }, - { 0x4056, 62316 }, - { 0x4057, 62320 }, - { 0x4058, 62324 }, - { 0x4059, 62329 }, - { 0x405A, 62333 }, - { 0x405B, 62337 }, - { 0x405C, 62798 }, - { 0x405D, 62341 }, - { 0x405E, 62345 }, - { 0x405F, 62349 }, - { 0x4060, 62354 }, - { 0x4061, 62358 }, - { 0x4062, 62362 }, - { 0x4063, 62367 }, - { 0x4064, 62372 }, - { 0x4065, 62376 }, - { 0x4066, 62380 }, - { 0x4067, 62384 }, - { 0x4068, 62388 }, - { 0x4069, 62392 }, - { 0x406A, 62396 }, - { 0x406B, 62400 }, - { 0x406C, 62404 }, - { 0x406D, 62408 }, - { 0x406E, 62413 }, - { 0x406F, 62417 }, - { 0x4070, 62422 }, - { 0x4071, 62426 }, - { 0x4072, 62430 }, - { 0x4073, 62434 }, - { 0x4074, 62438 }, - { 0x4075, 62442 }, - { 0x4076, 62446 }, - { 0x4077, 62450 }, - { 0x4078, 62454 }, - { 0x4079, 62458 }, - { 0x407A, 62462 }, - { 0x407B, 62466 }, - { 0x407C, 62471 }, - { 0x407D, 62476 }, - { 0x407E, 62481 }, - { 0x407F, 62486 }, - { 0x4080, 62491 }, - { 0x4081, 62495 }, - { 0x4082, 62500 }, - { 0x4083, 62504 }, - { 0x4084, 62508 }, - { 0x4085, 62514 }, - { 0x4086, 62519 }, - { 0x4087, 62525 }, - { 0x4088, 62530 }, - { 0x4089, 62534 }, - { 0x408A, 62803 }, - { 0x408B, 62538 }, - { 0x408C, 62542 }, - { 0x408D, 62546 }, - { 0x408E, 62550 }, - { 0x408F, 62554 }, - { 0x4090, 62558 }, - { 0x4091, 62563 }, - { 0x4092, 62567 }, - { 0x4093, 62571 }, - { 0x4094, 62575 }, - { 0x4095, 62579 }, - { 0x4096, 62633 }, - { 0x4097, 62638 }, - { 0x4098, 62643 }, - { 0x4099, 62648 }, - { 0x409A, 62653 }, - { 0x409B, 62658 }, - { 0x409C, 62663 }, - { 0x409D, 62668 }, - { 0x409E, 62673 }, - { 0x409F, 62678 }, - { 0x40A0, 62683 }, - { 0x40A1, 62688 }, - { 0x40A2, 62693 }, - { 0x40A3, 62698 }, - { 0x40A4, 62703 }, - { 0x40A5, 62708 }, - { 0x40A6, 62713 }, - { 0x40A7, 62718 }, - { 0x40A8, 62723 }, - { 0x40A9, 62728 }, - { 0x40AA, 62733 }, - { 0x40AB, 62738 }, - { 0x40AC, 62743 }, - { 0x40AD, 62748 }, - { 0x40AE, 62753 }, - { 0x40AF, 62758 }, - { 0x40B0, 62763 }, - { 0x40B1, 62768 }, - { 0x40B2, 62773 }, - { 0x40B3, 43990 }, - { 0x40B4, 43986 }, - { 0x40B5, 43994 }, - { 0x40B6, 44002 }, - { 0x40B7, 44031 }, - { 0x40B8, 44118 }, - { 0x40B9, 44053 }, - { 0x40BA, 44042 }, - { 0x40BB, 44013 }, - { 0x40BC, 44100 }, - { 0x40BD, 44075 }, - { 0x40BE, 44064 }, - { 0x40BF, 44024 }, - { 0x40C0, 44150 }, - { 0x40C1, 44143 }, - { 0x40C2, 44093 }, - { 0x40C3, 44086 }, - { 0x40C4, 44111 }, - { 0x40C5, 44157 }, - { 0x40C6, 44129 }, - { 0x40C7, 44136 }, - { 0x40C8, 44005 }, - { 0x40C9, 44034 }, - { 0x40CA, 44121 }, - { 0x40CB, 44056 }, - { 0x40CC, 44045 }, - { 0x40CD, 44016 }, - { 0x40CE, 44103 }, - { 0x40CF, 44078 }, - { 0x40D0, 44067 }, - { 0x40D1, 44009 }, - { 0x40D2, 44038 }, - { 0x40D3, 44125 }, - { 0x40D4, 44060 }, - { 0x40D5, 44049 }, - { 0x40D6, 44020 }, - { 0x40D7, 44107 }, - { 0x40D8, 44082 }, - { 0x40D9, 44071 }, - { 0x40DA, 44027 }, - { 0x40DB, 44153 }, - { 0x40DC, 44146 }, - { 0x40DD, 44096 }, - { 0x40DE, 44089 }, - { 0x40DF, 44114 }, - { 0x40E0, 44160 }, - { 0x40E1, 44132 }, - { 0x40E2, 44139 }, - { 0x40E3, 44164 }, - { 0x40E4, 44168 }, - { 0x40E5, 44180 }, - { 0x40E6, 44172 }, - { 0x40E7, 44176 }, - { 0x40E8, 43981 }, - { 0x40E9, 43997 }, - { 0x40EA, 44188 }, - { 0x40EB, 44184 }, - { 0x40EC, 26142 }, - { 0x40ED, 26120 }, - { 0x40EE, 26125 }, - { 0x40EF, 26180 }, - { 0x40F0, 26222 }, - { 0x40F1, 26184 }, - { 0x40F2, 26211 }, - { 0x40F3, 26236 }, - { 0x40F4, 26206 }, - { 0x40F5, 26169 }, - { 0x40F6, 26231 }, - { 0x40F7, 26136 }, - { 0x40F8, 26195 }, - { 0x40F9, 26153 }, - { 0x40FA, 26216 }, - { 0x40FB, 26201 }, - { 0x40FC, 26164 }, - { 0x40FD, 26226 }, - { 0x40FE, 26130 }, - { 0x40FF, 26189 }, - { 0x4100, 26147 }, - { 0x4101, 26174 }, - { 0x4102, 26241 }, - { 0x4103, 26159 }, - { 0x4104, 26257 }, - { 0x4105, 26272 }, - { 0x4106, 26340 }, - { 0x4107, 26326 }, - { 0x4108, 26290 }, - { 0x4109, 26262 }, - { 0x410A, 26330 }, - { 0x410B, 26362 }, - { 0x410C, 26352 }, - { 0x410D, 26356 }, - { 0x410E, 26344 }, - { 0x410F, 26322 }, - { 0x4110, 26286 }, - { 0x4111, 26313 }, - { 0x4112, 26371 }, - { 0x4113, 26375 }, - { 0x4114, 26348 }, - { 0x4115, 26304 }, - { 0x4116, 26276 }, - { 0x4117, 26308 }, - { 0x4118, 26335 }, - { 0x4119, 26366 }, - { 0x411A, 26294 }, - { 0x411B, 26317 }, - { 0x411C, 26247 }, - { 0x411D, 26281 }, - { 0x411E, 26299 }, - { 0x411F, 26252 }, - { 0x4120, 26267 }, - { 0x4121, 23635 }, - { 0x4122, 23639 }, - { 0x4123, 23664 }, - { 0x4124, 24884 }, - { 0x4125, 23684 }, - { 0x4126, 25081 }, - { 0x4127, 26025 }, - { 0x4128, 23679 }, - { 0x4129, 23660 }, - { 0x412A, 24880 }, - { 0x412B, 23675 }, - { 0x412C, 23671 }, - { 0x412D, 26059 }, - { 0x412E, 26030 }, - { 0x412F, 23707 }, - { 0x4130, 25074 }, - { 0x4131, 25084 }, - { 0x4132, 25011 }, - { 0x4133, 25008 }, - { 0x4134, 25014 }, - { 0x4135, 26073 }, - { 0x4136, 23687 }, - { 0x4137, 23645 }, - { 0x4138, 26070 }, - { 0x4139, 26092 }, - { 0x413A, 77649 }, - { 0x413B, 40829 }, - { 0x413C, 40733 }, - { 0x413D, 40841 }, - { 0x413E, 40832 }, - { 0x413F, 40736 }, - { 0x4140, 40835 }, - { 0x4141, 40838 }, - { 0x4142, 40850 }, - { 0x4143, 40853 }, - { 0x4144, 40847 }, - { 0x4145, 40730 }, - { 0x4146, 40844 }, - { 0x4147, 17999 }, - { 0x4148, 25077 }, - { 0x4149, 110234 }, - { 0x414A, 110173 }, - { 0x414B, 110214 }, - { 0x414C, 110186 }, - { 0x414D, 110119 }, - { 0x414E, 110153 }, - { 0x414F, 110169 }, - { 0x4150, 110202 }, - { 0x4151, 110145 }, - { 0x4152, 110110 }, - { 0x4153, 110053 }, - { 0x4154, 110178 }, - { 0x4155, 110073 }, - { 0x4156, 110206 }, - { 0x4157, 110190 }, - { 0x4158, 110069 }, - { 0x4159, 110061 }, - { 0x415A, 110219 }, - { 0x415B, 110223 }, - { 0x415C, 110161 }, - { 0x415D, 110077 }, - { 0x415E, 110136 }, - { 0x415F, 110157 }, - { 0x4160, 110182 }, - { 0x4161, 110097 }, - { 0x4162, 110089 }, - { 0x4163, 110085 }, - { 0x4164, 110114 }, - { 0x4165, 110057 }, - { 0x4166, 110065 }, - { 0x4167, 110123 }, - { 0x4168, 110081 }, - { 0x4169, 110149 }, - { 0x416A, 110049 }, - { 0x416B, 110131 }, - { 0x416C, 110101 }, - { 0x416D, 110194 }, - { 0x416E, 110198 }, - { 0x416F, 110093 }, - { 0x4170, 110044 }, - { 0x4171, 110127 }, - { 0x4172, 110165 }, - { 0x4173, 110210 }, - { 0x4174, 110140 }, - { 0x4175, 110105 }, - { 0x4176, 110228 }, - { 0x4177, 63186 }, - { 0x4178, 63195 }, - { 0x4179, 63189 }, - { 0x417A, 63252 }, - { 0x417B, 63198 }, - { 0x417C, 63192 }, - { 0x417D, 63204 }, - { 0x417E, 63240 }, - { 0x417F, 63246 }, - { 0x4180, 63267 }, - { 0x4181, 63207 }, - { 0x4182, 63210 }, - { 0x4183, 63225 }, - { 0x4184, 63213 }, - { 0x4185, 63216 }, - { 0x4186, 63219 }, - { 0x4187, 63261 }, - { 0x4188, 63264 }, - { 0x4189, 63237 }, - { 0x418A, 63222 }, - { 0x418B, 63258 }, - { 0x418C, 63228 }, - { 0x418D, 63231 }, - { 0x418E, 63234 }, - { 0x418F, 63270 }, - { 0x4190, 63249 }, - { 0x4191, 63255 }, - { 0x4192, 63201 }, - { 0x4193, 63243 }, - { 0x4194, 52988 }, - { 0x4195, 53075 }, - { 0x4196, 52994 }, - { 0x4197, 53009 }, - { 0x4198, 53117 }, - { 0x4199, 53027 }, - { 0x419A, 53060 }, - { 0x419B, 53042 }, - { 0x419C, 53024 }, - { 0x419D, 52991 }, - { 0x419E, 53012 }, - { 0x419F, 53018 }, - { 0x41A0, 53045 }, - { 0x41A1, 53033 }, - { 0x41A2, 53081 }, - { 0x41A3, 53108 }, - { 0x41A4, 53030 }, - { 0x41A5, 53120 }, - { 0x41A6, 53036 }, - { 0x41A7, 53072 }, - { 0x41A8, 53039 }, - { 0x41A9, 53015 }, - { 0x41AA, 53114 }, - { 0x41AB, 53021 }, - { 0x41AC, 53084 }, - { 0x41AD, 53003 }, - { 0x41AE, 52997 }, - { 0x41AF, 53132 }, - { 0x41B0, 53006 }, - { 0x41B1, 53057 }, - { 0x41B2, 53066 }, - { 0x41B3, 53093 }, - { 0x41B4, 53000 }, - { 0x41B5, 53051 }, - { 0x41B6, 53087 }, - { 0x41B7, 53111 }, - { 0x41B8, 53069 }, - { 0x41B9, 53054 }, - { 0x41BA, 53123 }, - { 0x41BB, 53090 }, - { 0x41BC, 53126 }, - { 0x41BD, 53078 }, - { 0x41BE, 53063 }, - { 0x41BF, 53099 }, - { 0x41C0, 53102 }, - { 0x41C1, 53105 }, - { 0x41C2, 53096 }, - { 0x41C3, 53048 }, - { 0x41C4, 53129 }, - { 0x41C5, 53640 }, - { 0x41C6, 53523 }, - { 0x41C7, 53531 }, - { 0x41C8, 53555 }, - { 0x41C9, 53539 }, - { 0x41CA, 53535 }, - { 0x41CB, 53527 }, - { 0x41CC, 53551 }, - { 0x41CD, 53547 }, - { 0x41CE, 53543 }, - { 0x41CF, 53569 }, - { 0x41D0, 53632 }, - { 0x41D1, 53628 }, - { 0x41D2, 53602 }, - { 0x41D3, 53598 }, - { 0x41D4, 53611 }, - { 0x41D5, 53636 }, - { 0x41D6, 53620 }, - { 0x41D7, 53624 }, - { 0x41D8, 53559 }, - { 0x41D9, 53573 }, - { 0x41DA, 53615 }, - { 0x41DB, 53583 }, - { 0x41DC, 53578 }, - { 0x41DD, 53564 }, - { 0x41DE, 53606 }, - { 0x41DF, 53593 }, - { 0x41E0, 53588 }, - { 0x41E1, 8427 }, - { 0x41E2, 8447 }, - { 0x41E3, 8491 }, - { 0x41E4, 8451 }, - { 0x41E5, 8431 }, - { 0x41E6, 8511 }, - { 0x41E7, 8519 }, - { 0x41E8, 8479 }, - { 0x41E9, 8555 }, - { 0x41EA, 8435 }, - { 0x41EB, 8487 }, - { 0x41EC, 8459 }, - { 0x41ED, 8463 }, - { 0x41EE, 8467 }, - { 0x41EF, 8535 }, - { 0x41F0, 8439 }, - { 0x41F1, 8499 }, - { 0x41F2, 8551 }, - { 0x41F3, 8495 }, - { 0x41F4, 8471 }, - { 0x41F5, 8475 }, - { 0x41F6, 8503 }, - { 0x41F7, 8443 }, - { 0x41F8, 8527 }, - { 0x41F9, 8547 }, - { 0x41FA, 8543 }, - { 0x41FB, 8455 }, - { 0x41FC, 8531 }, - { 0x41FD, 8523 }, - { 0x41FE, 8483 }, - { 0x41FF, 8507 }, - { 0x4200, 8539 }, - { 0x4201, 8569 }, - { 0x4202, 8577 }, - { 0x4203, 8573 }, - { 0x4204, 8581 }, - { 0x4205, 8515 }, - { 0x4206, 8559 }, - { 0x4207, 8564 }, - { 0x4208, 54999 }, - { 0x4209, 55066 }, - { 0x420A, 55005 }, - { 0x420B, 55002 }, - { 0x420C, 55054 }, - { 0x420D, 55072 }, - { 0x420E, 55011 }, - { 0x420F, 55008 }, - { 0x4210, 55063 }, - { 0x4211, 54993 }, - { 0x4212, 55030 }, - { 0x4213, 55033 }, - { 0x4214, 55036 }, - { 0x4215, 55057 }, - { 0x4216, 54996 }, - { 0x4217, 55018 }, - { 0x4218, 55069 }, - { 0x4219, 55060 }, - { 0x421A, 55042 }, - { 0x421B, 55045 }, - { 0x421C, 55048 }, - { 0x421D, 55051 }, - { 0x421E, 55021 }, - { 0x421F, 55027 }, - { 0x4220, 55024 }, - { 0x4221, 55039 }, - { 0x4222, 55014 }, - { 0x4223, 8601 }, - { 0x4224, 8633 }, - { 0x4225, 8641 }, - { 0x4226, 8637 }, - { 0x4227, 8585 }, - { 0x4228, 8705 }, - { 0x4229, 8713 }, - { 0x422A, 8701 }, - { 0x422B, 8717 }, - { 0x422C, 8589 }, - { 0x422D, 8677 }, - { 0x422E, 8645 }, - { 0x422F, 8721 }, - { 0x4230, 8725 }, - { 0x4231, 8689 }, - { 0x4232, 8681 }, - { 0x4233, 8649 }, - { 0x4234, 8653 }, - { 0x4235, 8657 }, - { 0x4236, 8597 }, - { 0x4237, 8709 }, - { 0x4238, 8729 }, - { 0x4239, 8733 }, - { 0x423A, 8673 }, - { 0x423B, 8697 }, - { 0x423C, 8593 }, - { 0x423D, 8621 }, - { 0x423E, 8605 }, - { 0x423F, 8609 }, - { 0x4240, 8685 }, - { 0x4241, 8661 }, - { 0x4242, 8669 }, - { 0x4243, 8693 }, - { 0x4244, 8665 }, - { 0x4245, 8617 }, - { 0x4246, 8629 }, - { 0x4247, 8625 }, - { 0x4248, 8613 }, - { 0x4249, 116295 }, - { 0x424A, 116300 }, - { 0x424B, 116310 }, - { 0x424C, 116315 }, - { 0x424D, 116305 }, - { 0x424E, 111221 }, - { 0x424F, 111224 }, - { 0x4250, 111248 }, - { 0x4251, 111203 }, - { 0x4252, 111245 }, - { 0x4253, 111182 }, - { 0x4254, 111191 }, - { 0x4255, 111242 }, - { 0x4256, 111230 }, - { 0x4257, 111215 }, - { 0x4258, 111218 }, - { 0x4259, 111200 }, - { 0x425A, 111239 }, - { 0x425B, 111254 }, - { 0x425C, 111206 }, - { 0x425D, 111227 }, - { 0x425E, 111209 }, - { 0x425F, 111194 }, - { 0x4260, 111260 }, - { 0x4261, 111197 }, - { 0x4262, 111185 }, - { 0x4263, 111236 }, - { 0x4264, 111233 }, - { 0x4265, 111257 }, - { 0x4266, 111263 }, - { 0x4267, 111251 }, - { 0x4268, 111188 }, - { 0x4269, 111176 }, - { 0x426A, 111179 }, - { 0x426B, 111212 }, - { 0x426C, 111173 }, - { 0x426D, 9224 }, - { 0x426E, 9228 }, - { 0x426F, 9232 }, - { 0x4270, 9280 }, - { 0x4271, 9284 }, - { 0x4272, 9260 }, - { 0x4273, 9264 }, - { 0x4274, 9344 }, - { 0x4275, 9240 }, - { 0x4276, 9272 }, - { 0x4277, 9276 }, - { 0x4278, 9328 }, - { 0x4279, 9332 }, - { 0x427A, 9244 }, - { 0x427B, 9248 }, - { 0x427C, 9252 }, - { 0x427D, 9364 }, - { 0x427E, 9312 }, - { 0x427F, 9236 }, - { 0x4280, 9256 }, - { 0x4281, 9304 }, - { 0x4282, 9308 }, - { 0x4283, 9292 }, - { 0x4284, 9296 }, - { 0x4285, 9300 }, - { 0x4286, 9348 }, - { 0x4287, 9336 }, - { 0x4288, 9340 }, - { 0x4289, 9316 }, - { 0x428A, 9320 }, - { 0x428B, 9288 }, - { 0x428C, 9324 }, - { 0x428D, 9352 }, - { 0x428E, 9356 }, - { 0x428F, 9360 }, - { 0x4290, 9268 }, - { 0x4291, 9380 }, - { 0x4292, 9388 }, - { 0x4293, 9392 }, - { 0x4294, 9396 }, - { 0x4295, 9376 }, - { 0x4296, 9384 }, - { 0x4297, 9368 }, - { 0x4298, 9372 }, - { 0x4299, 9400 }, - { 0x429A, 9404 }, - { 0x429B, 9412 }, - { 0x429C, 9408 }, - { 0x429D, 9416 }, - { 0x429E, 9420 }, - { 0x429F, 72737 }, - { 0x42A0, 72732 }, - { 0x42A1, 72727 }, - { 0x42A2, 72747 }, - { 0x42A3, 72742 }, - { 0x42A4, 72752 }, - { 0x42A5, 72775 }, - { 0x42A6, 72770 }, - { 0x42A7, 72765 }, - { 0x42A8, 72785 }, - { 0x42A9, 72780 }, - { 0x42AA, 72790 }, - { 0x42AB, 72627 }, - { 0x42AC, 72663 }, - { 0x42AD, 72667 }, - { 0x42AE, 72715 }, - { 0x42AF, 72623 }, - { 0x42B0, 72703 }, - { 0x42B1, 72671 }, - { 0x42B2, 72707 }, - { 0x42B3, 72675 }, - { 0x42B4, 72723 }, - { 0x42B5, 72695 }, - { 0x42B6, 72699 }, - { 0x42B7, 72691 }, - { 0x42B8, 72631 }, - { 0x42B9, 72711 }, - { 0x42BA, 72687 }, - { 0x42BB, 72757 }, - { 0x42BC, 72651 }, - { 0x42BD, 72719 }, - { 0x42BE, 72683 }, - { 0x42BF, 72761 }, - { 0x42C0, 72647 }, - { 0x42C1, 72635 }, - { 0x42C2, 72639 }, - { 0x42C3, 72643 }, - { 0x42C4, 72679 }, - { 0x42C5, 72659 }, - { 0x42C6, 72655 }, - { 0x42C7, 72565 }, - { 0x42C8, 72560 }, - { 0x42C9, 72555 }, - { 0x42CA, 72575 }, - { 0x42CB, 72570 }, - { 0x42CC, 72580 }, - { 0x42CD, 72603 }, - { 0x42CE, 72598 }, - { 0x42CF, 72593 }, - { 0x42D0, 72613 }, - { 0x42D1, 72608 }, - { 0x42D2, 72618 }, - { 0x42D3, 72455 }, - { 0x42D4, 72491 }, - { 0x42D5, 72495 }, - { 0x42D6, 72543 }, - { 0x42D7, 72451 }, - { 0x42D8, 72531 }, - { 0x42D9, 72499 }, - { 0x42DA, 72535 }, - { 0x42DB, 72503 }, - { 0x42DC, 72551 }, - { 0x42DD, 72523 }, - { 0x42DE, 72527 }, - { 0x42DF, 72519 }, - { 0x42E0, 72459 }, - { 0x42E1, 72539 }, - { 0x42E2, 72515 }, - { 0x42E3, 72585 }, - { 0x42E4, 72479 }, - { 0x42E5, 72547 }, - { 0x42E6, 72511 }, - { 0x42E7, 72589 }, - { 0x42E8, 72475 }, - { 0x42E9, 72463 }, - { 0x42EA, 72467 }, - { 0x42EB, 72471 }, - { 0x42EC, 72507 }, - { 0x42ED, 72487 }, - { 0x42EE, 72483 }, - { 0x42EF, 79201 }, - { 0x42F0, 79165 }, - { 0x42F1, 79189 }, - { 0x42F2, 79141 }, - { 0x42F3, 79225 }, - { 0x42F4, 79102 }, - { 0x42F5, 79207 }, - { 0x42F6, 79228 }, - { 0x42F7, 79174 }, - { 0x42F8, 79186 }, - { 0x42F9, 79126 }, - { 0x42FA, 79183 }, - { 0x42FB, 79144 }, - { 0x42FC, 79168 }, - { 0x42FD, 79210 }, - { 0x42FE, 79180 }, - { 0x42FF, 79231 }, - { 0x4300, 79222 }, - { 0x4301, 79171 }, - { 0x4302, 79219 }, - { 0x4303, 79192 }, - { 0x4304, 79195 }, - { 0x4305, 79093 }, - { 0x4306, 79135 }, - { 0x4307, 79120 }, - { 0x4308, 79108 }, - { 0x4309, 79096 }, - { 0x430A, 79213 }, - { 0x430B, 79162 }, - { 0x430C, 79090 }, - { 0x430D, 79204 }, - { 0x430E, 79153 }, - { 0x430F, 79132 }, - { 0x4310, 79111 }, - { 0x4311, 79150 }, - { 0x4312, 79105 }, - { 0x4313, 79156 }, - { 0x4314, 79198 }, - { 0x4315, 79159 }, - { 0x4316, 79123 }, - { 0x4317, 79117 }, - { 0x4318, 79099 }, - { 0x4319, 79114 }, - { 0x431A, 79138 }, - { 0x431B, 79216 }, - { 0x431C, 79129 }, - { 0x431D, 79147 }, - { 0x431E, 79177 }, - { 0x431F, 77784 }, - { 0x4320, 77739 }, - { 0x4321, 77766 }, - { 0x4322, 77754 }, - { 0x4323, 77769 }, - { 0x4324, 77778 }, - { 0x4325, 77790 }, - { 0x4326, 77760 }, - { 0x4327, 77763 }, - { 0x4328, 77808 }, - { 0x4329, 77775 }, - { 0x432A, 77787 }, - { 0x432B, 77748 }, - { 0x432C, 77745 }, - { 0x432D, 77805 }, - { 0x432E, 77793 }, - { 0x432F, 77796 }, - { 0x4330, 77799 }, - { 0x4331, 77802 }, - { 0x4332, 77781 }, - { 0x4333, 77751 }, - { 0x4334, 77772 }, - { 0x4335, 77721 }, - { 0x4336, 77724 }, - { 0x4337, 77727 }, - { 0x4338, 77730 }, - { 0x4339, 77733 }, - { 0x433A, 77736 }, - { 0x433B, 77742 }, - { 0x433C, 77757 }, - { 0x433D, 77709 }, - { 0x433E, 77691 }, - { 0x433F, 77697 }, - { 0x4340, 77718 }, - { 0x4341, 77703 }, - { 0x4342, 77700 }, - { 0x4343, 77694 }, - { 0x4344, 77715 }, - { 0x4345, 77712 }, - { 0x4346, 77706 }, - { 0x4347, 40086 }, - { 0x4348, 40110 }, - { 0x4349, 40154 }, - { 0x434A, 40106 }, - { 0x434B, 40158 }, - { 0x434C, 40162 }, - { 0x434D, 40222 }, - { 0x434E, 40090 }, - { 0x434F, 40170 }, - { 0x4350, 40114 }, - { 0x4351, 40178 }, - { 0x4352, 40094 }, - { 0x4353, 40118 }, - { 0x4354, 40206 }, - { 0x4355, 40186 }, - { 0x4356, 40122 }, - { 0x4357, 40126 }, - { 0x4358, 40130 }, - { 0x4359, 40098 }, - { 0x435A, 40190 }, - { 0x435B, 40134 }, - { 0x435C, 40210 }, - { 0x435D, 40138 }, - { 0x435E, 40194 }, - { 0x435F, 40142 }, - { 0x4360, 40214 }, - { 0x4361, 40198 }, - { 0x4362, 40226 }, - { 0x4363, 40218 }, - { 0x4364, 40166 }, - { 0x4365, 40102 }, - { 0x4366, 40146 }, - { 0x4367, 40182 }, - { 0x4368, 40174 }, - { 0x4369, 40150 }, - { 0x436A, 40202 }, - { 0x436B, 39942 }, - { 0x436C, 39966 }, - { 0x436D, 40010 }, - { 0x436E, 39962 }, - { 0x436F, 40014 }, - { 0x4370, 40018 }, - { 0x4371, 40078 }, - { 0x4372, 39946 }, - { 0x4373, 40026 }, - { 0x4374, 39970 }, - { 0x4375, 40034 }, - { 0x4376, 39950 }, - { 0x4377, 39974 }, - { 0x4378, 40062 }, - { 0x4379, 40042 }, - { 0x437A, 39978 }, - { 0x437B, 39982 }, - { 0x437C, 39986 }, - { 0x437D, 39954 }, - { 0x437E, 40046 }, - { 0x437F, 39990 }, - { 0x4380, 40066 }, - { 0x4381, 39994 }, - { 0x4382, 40050 }, - { 0x4383, 39998 }, - { 0x4384, 40070 }, - { 0x4385, 40054 }, - { 0x4386, 40082 }, - { 0x4387, 40074 }, - { 0x4388, 40022 }, - { 0x4389, 39958 }, - { 0x438A, 40002 }, - { 0x438B, 40038 }, - { 0x438C, 40030 }, - { 0x438D, 40006 }, - { 0x438E, 40058 }, - { 0x438F, 73015 }, - { 0x4390, 73033 }, - { 0x4391, 73036 }, - { 0x4392, 73096 }, - { 0x4393, 73039 }, - { 0x4394, 73114 }, - { 0x4395, 73099 }, - { 0x4396, 73042 }, - { 0x4397, 73018 }, - { 0x4398, 73045 }, - { 0x4399, 73048 }, - { 0x439A, 73105 }, - { 0x439B, 73051 }, - { 0x439C, 73021 }, - { 0x439D, 73054 }, - { 0x439E, 73057 }, - { 0x439F, 73060 }, - { 0x43A0, 73111 }, - { 0x43A1, 73063 }, - { 0x43A2, 73069 }, - { 0x43A3, 73066 }, - { 0x43A4, 73117 }, - { 0x43A5, 73024 }, - { 0x43A6, 73072 }, - { 0x43A7, 73075 }, - { 0x43A8, 73078 }, - { 0x43A9, 73120 }, - { 0x43AA, 73081 }, - { 0x43AB, 73123 }, - { 0x43AC, 73084 }, - { 0x43AD, 73126 }, - { 0x43AE, 73027 }, - { 0x43AF, 73087 }, - { 0x43B0, 73090 }, - { 0x43B1, 73030 }, - { 0x43B2, 73093 }, - { 0x43B3, 73129 }, - { 0x43B4, 73102 }, - { 0x43B5, 73132 }, - { 0x43B6, 73108 }, - { 0x43B7, 115965 }, - { 0x43B8, 115973 }, - { 0x43B9, 116001 }, - { 0x43BA, 115989 }, - { 0x43BB, 115957 }, - { 0x43BC, 116149 }, - { 0x43BD, 115993 }, - { 0x43BE, 116153 }, - { 0x43BF, 116049 }, - { 0x43C0, 115981 }, - { 0x43C1, 116145 }, - { 0x43C2, 116053 }, - { 0x43C3, 116005 }, - { 0x43C4, 116045 }, - { 0x43C5, 116021 }, - { 0x43C6, 116089 }, - { 0x43C7, 116137 }, - { 0x43C8, 116077 }, - { 0x43C9, 115977 }, - { 0x43CA, 116097 }, - { 0x43CB, 116013 }, - { 0x43CC, 116101 }, - { 0x43CD, 116085 }, - { 0x43CE, 116037 }, - { 0x43CF, 115969 }, - { 0x43D0, 116065 }, - { 0x43D1, 115985 }, - { 0x43D2, 116073 }, - { 0x43D3, 116025 }, - { 0x43D4, 116033 }, - { 0x43D5, 116105 }, - { 0x43D6, 116157 }, - { 0x43D7, 116117 }, - { 0x43D8, 116093 }, - { 0x43D9, 115961 }, - { 0x43DA, 116129 }, - { 0x43DB, 115997 }, - { 0x43DC, 116081 }, - { 0x43DD, 116061 }, - { 0x43DE, 116029 }, - { 0x43DF, 116161 }, - { 0x43E0, 116041 }, - { 0x43E1, 116113 }, - { 0x43E2, 116133 }, - { 0x43E3, 116125 }, - { 0x43E4, 116121 }, - { 0x43E5, 116009 }, - { 0x43E6, 116069 }, - { 0x43E7, 116057 }, - { 0x43E8, 116141 }, - { 0x43E9, 116109 }, - { 0x43EA, 116017 }, - { 0x43EB, 116165 }, - { 0x43EC, 111568 }, - { 0x43ED, 111672 }, - { 0x43EE, 111592 }, - { 0x43EF, 111596 }, - { 0x43F0, 111676 }, - { 0x43F1, 111600 }, - { 0x43F2, 111680 }, - { 0x43F3, 111604 }, - { 0x43F4, 111572 }, - { 0x43F5, 111608 }, - { 0x43F6, 111612 }, - { 0x43F7, 111616 }, - { 0x43F8, 111684 }, - { 0x43F9, 111576 }, - { 0x43FA, 111688 }, - { 0x43FB, 111620 }, - { 0x43FC, 111624 }, - { 0x43FD, 111628 }, - { 0x43FE, 111692 }, - { 0x43FF, 111632 }, - { 0x4400, 111636 }, - { 0x4401, 111696 }, - { 0x4402, 111580 }, - { 0x4403, 111640 }, - { 0x4404, 111644 }, - { 0x4405, 111648 }, - { 0x4406, 111652 }, - { 0x4407, 111700 }, - { 0x4408, 111656 }, - { 0x4409, 111704 }, - { 0x440A, 111584 }, - { 0x440B, 111660 }, - { 0x440C, 111664 }, - { 0x440D, 111588 }, - { 0x440E, 111668 }, - { 0x440F, 111428 }, - { 0x4410, 111532 }, - { 0x4411, 111452 }, - { 0x4412, 111456 }, - { 0x4413, 111536 }, - { 0x4414, 111460 }, - { 0x4415, 111540 }, - { 0x4416, 111464 }, - { 0x4417, 111432 }, - { 0x4418, 111468 }, - { 0x4419, 111472 }, - { 0x441A, 111476 }, - { 0x441B, 111544 }, - { 0x441C, 111436 }, - { 0x441D, 111548 }, - { 0x441E, 111480 }, - { 0x441F, 111484 }, - { 0x4420, 111488 }, - { 0x4421, 111552 }, - { 0x4422, 111492 }, - { 0x4423, 111496 }, - { 0x4424, 111556 }, - { 0x4425, 111440 }, - { 0x4426, 111500 }, - { 0x4427, 111504 }, - { 0x4428, 111508 }, - { 0x4429, 111512 }, - { 0x442A, 111560 }, - { 0x442B, 111516 }, - { 0x442C, 111564 }, - { 0x442D, 111444 }, - { 0x442E, 111520 }, - { 0x442F, 111524 }, - { 0x4430, 111448 }, - { 0x4431, 111528 }, - { 0x4432, 68700 }, - { 0x4433, 68718 }, - { 0x4434, 68721 }, - { 0x4435, 68808 }, - { 0x4436, 68724 }, - { 0x4437, 68787 }, - { 0x4438, 68727 }, - { 0x4439, 68811 }, - { 0x443A, 68790 }, - { 0x443B, 68730 }, - { 0x443C, 68703 }, - { 0x443D, 68733 }, - { 0x443E, 68736 }, - { 0x443F, 68814 }, - { 0x4440, 68796 }, - { 0x4441, 68841 }, - { 0x4442, 68739 }, - { 0x4443, 68799 }, - { 0x4444, 68706 }, - { 0x4445, 68742 }, - { 0x4446, 68748 }, - { 0x4447, 68751 }, - { 0x4448, 68805 }, - { 0x4449, 68754 }, - { 0x444A, 68757 }, - { 0x444B, 68844 }, - { 0x444C, 68709 }, - { 0x444D, 68763 }, - { 0x444E, 68766 }, - { 0x444F, 68769 }, - { 0x4450, 68823 }, - { 0x4451, 68772 }, - { 0x4452, 68826 }, - { 0x4453, 68850 }, - { 0x4454, 68775 }, - { 0x4455, 68832 }, - { 0x4456, 68712 }, - { 0x4457, 68778 }, - { 0x4458, 68781 }, - { 0x4459, 68817 }, - { 0x445A, 68835 }, - { 0x445B, 68847 }, - { 0x445C, 68715 }, - { 0x445D, 68745 }, - { 0x445E, 68784 }, - { 0x445F, 68838 }, - { 0x4460, 68793 }, - { 0x4461, 68829 }, - { 0x4462, 68853 }, - { 0x4463, 68802 }, - { 0x4464, 68820 }, - { 0x4465, 68760 }, - { 0x4466, 61758 }, - { 0x4467, 61762 }, - { 0x4468, 61766 }, - { 0x4469, 61770 }, - { 0x446A, 61774 }, - { 0x446B, 61778 }, - { 0x446C, 61782 }, - { 0x446D, 61786 }, - { 0x446E, 61790 }, - { 0x446F, 61794 }, - { 0x4470, 61798 }, - { 0x4471, 61802 }, - { 0x4472, 61806 }, - { 0x4473, 61810 }, - { 0x4474, 61814 }, - { 0x4475, 61818 }, - { 0x4476, 62074 }, - { 0x4477, 62078 }, - { 0x4478, 61822 }, - { 0x4479, 62082 }, - { 0x447A, 62086 }, - { 0x447B, 61826 }, - { 0x447C, 62090 }, - { 0x447D, 61830 }, - { 0x447E, 61834 }, - { 0x447F, 61838 }, - { 0x4480, 61842 }, - { 0x4481, 61722 }, - { 0x4482, 61846 }, - { 0x4483, 61850 }, - { 0x4484, 61854 }, - { 0x4485, 61858 }, - { 0x4486, 61862 }, - { 0x4487, 61866 }, - { 0x4488, 61870 }, - { 0x4489, 61874 }, - { 0x448A, 61878 }, - { 0x448B, 61882 }, - { 0x448C, 61886 }, - { 0x448D, 61890 }, - { 0x448E, 61894 }, - { 0x448F, 61898 }, - { 0x4490, 61902 }, - { 0x4491, 61906 }, - { 0x4492, 61910 }, - { 0x4493, 61914 }, - { 0x4494, 61918 }, - { 0x4495, 61922 }, - { 0x4496, 61926 }, - { 0x4497, 61930 }, - { 0x4498, 61934 }, - { 0x4499, 61938 }, - { 0x449A, 61942 }, - { 0x449B, 61946 }, - { 0x449C, 61950 }, - { 0x449D, 61954 }, - { 0x449E, 61958 }, - { 0x449F, 61962 }, - { 0x44A0, 61966 }, - { 0x44A1, 61970 }, - { 0x44A2, 61974 }, - { 0x44A3, 61978 }, - { 0x44A4, 61982 }, - { 0x44A5, 61986 }, - { 0x44A6, 61990 }, - { 0x44A7, 61994 }, - { 0x44A8, 61998 }, - { 0x44A9, 62002 }, - { 0x44AA, 62006 }, - { 0x44AB, 62010 }, - { 0x44AC, 62014 }, - { 0x44AD, 62102 }, - { 0x44AE, 62018 }, - { 0x44AF, 62022 }, - { 0x44B0, 61726 }, - { 0x44B1, 62026 }, - { 0x44B2, 62030 }, - { 0x44B3, 62094 }, - { 0x44B4, 62098 }, - { 0x44B5, 61730 }, - { 0x44B6, 62034 }, - { 0x44B7, 62038 }, - { 0x44B8, 62042 }, - { 0x44B9, 62046 }, - { 0x44BA, 62050 }, - { 0x44BB, 60796 }, - { 0x44BC, 60800 }, - { 0x44BD, 60804 }, - { 0x44BE, 60808 }, - { 0x44BF, 60812 }, - { 0x44C0, 60816 }, - { 0x44C1, 60820 }, - { 0x44C2, 60824 }, - { 0x44C3, 61734 }, - { 0x44C4, 61738 }, - { 0x44C5, 61742 }, - { 0x44C6, 60828 }, - { 0x44C7, 60832 }, - { 0x44C8, 60836 }, - { 0x44C9, 61746 }, - { 0x44CA, 61750 }, - { 0x44CB, 61754 }, - { 0x44CC, 60840 }, - { 0x44CD, 60844 }, - { 0x44CE, 60848 }, - { 0x44CF, 60852 }, - { 0x44D0, 60856 }, - { 0x44D1, 60860 }, - { 0x44D2, 60864 }, - { 0x44D3, 60868 }, - { 0x44D4, 60872 }, - { 0x44D5, 60876 }, - { 0x44D6, 60880 }, - { 0x44D7, 60884 }, - { 0x44D8, 60888 }, - { 0x44D9, 60892 }, - { 0x44DA, 60896 }, - { 0x44DB, 60900 }, - { 0x44DC, 60904 }, - { 0x44DD, 60908 }, - { 0x44DE, 60912 }, - { 0x44DF, 60916 }, - { 0x44E0, 60920 }, - { 0x44E1, 60924 }, - { 0x44E2, 60928 }, - { 0x44E3, 60932 }, - { 0x44E4, 60936 }, - { 0x44E5, 60940 }, - { 0x44E6, 60944 }, - { 0x44E7, 60948 }, - { 0x44E8, 60952 }, - { 0x44E9, 60956 }, - { 0x44EA, 60960 }, - { 0x44EB, 60964 }, - { 0x44EC, 60968 }, - { 0x44ED, 60972 }, - { 0x44EE, 60976 }, - { 0x44EF, 60980 }, - { 0x44F0, 60984 }, - { 0x44F1, 60988 }, - { 0x44F2, 60992 }, - { 0x44F3, 60996 }, - { 0x44F4, 61000 }, - { 0x44F5, 61004 }, - { 0x44F6, 61008 }, - { 0x44F7, 61012 }, - { 0x44F8, 61016 }, - { 0x44F9, 61020 }, - { 0x44FA, 61024 }, - { 0x44FB, 61028 }, - { 0x44FC, 61032 }, - { 0x44FD, 61036 }, - { 0x44FE, 61040 }, - { 0x44FF, 61044 }, - { 0x4500, 61048 }, - { 0x4501, 61052 }, - { 0x4502, 61056 }, - { 0x4503, 61060 }, - { 0x4504, 61064 }, - { 0x4505, 61068 }, - { 0x4506, 62106 }, - { 0x4507, 62110 }, - { 0x4508, 62114 }, - { 0x4509, 62118 }, - { 0x450A, 62122 }, - { 0x450B, 62126 }, - { 0x450C, 62130 }, - { 0x450D, 62134 }, - { 0x450E, 62138 }, - { 0x450F, 62142 }, - { 0x4510, 62146 }, - { 0x4511, 62150 }, - { 0x4512, 62154 }, - { 0x4513, 62158 }, - { 0x4514, 62162 }, - { 0x4515, 62166 }, - { 0x4516, 62170 }, - { 0x4517, 62174 }, - { 0x4518, 62178 }, - { 0x4519, 61072 }, - { 0x451A, 61076 }, - { 0x451B, 61080 }, - { 0x451C, 61084 }, - { 0x451D, 61088 }, - { 0x451E, 61092 }, - { 0x451F, 61096 }, - { 0x4520, 61100 }, - { 0x4521, 61104 }, - { 0x4522, 61108 }, - { 0x4523, 61112 }, - { 0x4524, 61116 }, - { 0x4525, 61120 }, - { 0x4526, 61124 }, - { 0x4527, 61128 }, - { 0x4528, 61132 }, - { 0x4529, 61136 }, - { 0x452A, 61140 }, - { 0x452B, 61144 }, - { 0x452C, 61148 }, - { 0x452D, 61152 }, - { 0x452E, 61156 }, - { 0x452F, 61160 }, - { 0x4530, 61164 }, - { 0x4531, 61168 }, - { 0x4532, 61172 }, - { 0x4533, 61176 }, - { 0x4534, 61180 }, - { 0x4535, 61184 }, - { 0x4536, 61188 }, - { 0x4537, 61192 }, - { 0x4538, 61196 }, - { 0x4539, 61200 }, - { 0x453A, 61204 }, - { 0x453B, 61208 }, - { 0x453C, 61212 }, - { 0x453D, 61216 }, - { 0x453E, 61220 }, - { 0x453F, 61224 }, - { 0x4540, 61228 }, - { 0x4541, 61232 }, - { 0x4542, 61236 }, - { 0x4543, 61240 }, - { 0x4544, 61244 }, - { 0x4545, 61248 }, - { 0x4546, 61252 }, - { 0x4547, 61256 }, - { 0x4548, 61260 }, - { 0x4549, 61264 }, - { 0x454A, 61268 }, - { 0x454B, 61272 }, - { 0x454C, 61276 }, - { 0x454D, 61280 }, - { 0x454E, 61284 }, - { 0x454F, 61288 }, - { 0x4550, 61292 }, - { 0x4551, 61296 }, - { 0x4552, 61300 }, - { 0x4553, 61304 }, - { 0x4554, 61308 }, - { 0x4555, 61312 }, - { 0x4556, 61316 }, - { 0x4557, 61320 }, - { 0x4558, 61324 }, - { 0x4559, 61328 }, - { 0x455A, 61332 }, - { 0x455B, 61336 }, - { 0x455C, 61340 }, - { 0x455D, 61344 }, - { 0x455E, 61348 }, - { 0x455F, 61352 }, - { 0x4560, 61356 }, - { 0x4561, 61360 }, - { 0x4562, 61364 }, - { 0x4563, 61368 }, - { 0x4564, 61372 }, - { 0x4565, 61376 }, - { 0x4566, 61380 }, - { 0x4567, 61384 }, - { 0x4568, 61388 }, - { 0x4569, 61392 }, - { 0x456A, 61396 }, - { 0x456B, 61400 }, - { 0x456C, 61404 }, - { 0x456D, 61408 }, - { 0x456E, 61412 }, - { 0x456F, 61416 }, - { 0x4570, 61420 }, - { 0x4571, 61424 }, - { 0x4572, 61428 }, - { 0x4573, 61432 }, - { 0x4574, 61436 }, - { 0x4575, 61440 }, - { 0x4576, 61444 }, - { 0x4577, 61448 }, - { 0x4578, 61452 }, - { 0x4579, 61456 }, - { 0x457A, 61460 }, - { 0x457B, 61464 }, - { 0x457C, 61468 }, - { 0x457D, 61472 }, - { 0x457E, 61476 }, - { 0x457F, 61480 }, - { 0x4580, 61484 }, - { 0x4581, 61488 }, - { 0x4582, 61492 }, - { 0x4583, 61496 }, - { 0x4584, 61500 }, - { 0x4585, 61504 }, - { 0x4586, 61508 }, - { 0x4587, 61512 }, - { 0x4588, 61516 }, - { 0x4589, 61520 }, - { 0x458A, 61524 }, - { 0x458B, 61528 }, - { 0x458C, 61532 }, - { 0x458D, 61536 }, - { 0x458E, 61540 }, - { 0x458F, 61544 }, - { 0x4590, 61548 }, - { 0x4591, 61552 }, - { 0x4592, 61556 }, - { 0x4593, 61560 }, - { 0x4594, 61564 }, - { 0x4595, 61568 }, - { 0x4596, 61572 }, - { 0x4597, 61576 }, - { 0x4598, 61580 }, - { 0x4599, 61584 }, - { 0x459A, 61588 }, - { 0x459B, 61592 }, - { 0x459C, 61596 }, - { 0x459D, 61600 }, - { 0x459E, 61605 }, - { 0x459F, 61610 }, - { 0x45A0, 61615 }, - { 0x45A1, 61620 }, - { 0x45A2, 61625 }, - { 0x45A3, 61630 }, - { 0x45A4, 61635 }, - { 0x45A5, 61640 }, - { 0x45A6, 62054 }, - { 0x45A7, 62059 }, - { 0x45A8, 62064 }, - { 0x45A9, 62069 }, - { 0x45AA, 61645 }, - { 0x45AB, 61650 }, - { 0x45AC, 61655 }, - { 0x45AD, 61660 }, - { 0x45AE, 61665 }, - { 0x45AF, 61670 }, - { 0x45B0, 61675 }, - { 0x45B1, 61680 }, - { 0x45B2, 61685 }, - { 0x45B3, 61690 }, - { 0x45B4, 61694 }, - { 0x45B5, 61698 }, - { 0x45B6, 61702 }, - { 0x45B7, 61706 }, - { 0x45B8, 61710 }, - { 0x45B9, 61714 }, - { 0x45BA, 61718 }, - { 0x45BB, 108195 }, - { 0x45BC, 108838 }, - { 0x45BD, 108832 }, - { 0x45BE, 107827 }, - { 0x45BF, 108129 }, - { 0x45C0, 107531 }, - { 0x45C1, 107831 }, - { 0x45C2, 107843 }, - { 0x45C3, 107836 }, - { 0x45C4, 107919 }, - { 0x45C5, 107565 }, - { 0x45C6, 107551 }, - { 0x45C7, 107557 }, - { 0x45C8, 108236 }, - { 0x45C9, 108020 }, - { 0x45CA, 107924 }, - { 0x45CB, 107964 }, - { 0x45CC, 108134 }, - { 0x45CD, 107583 }, - { 0x45CE, 108139 }, - { 0x45CF, 107599 }, - { 0x45D0, 108146 }, - { 0x45D1, 107933 }, - { 0x45D2, 108218 }, - { 0x45D3, 107851 }, - { 0x45D4, 107856 }, - { 0x45D5, 107629 }, - { 0x45D6, 108168 }, - { 0x45D7, 107664 }, - { 0x45D8, 107943 }, - { 0x45D9, 107947 }, - { 0x45DA, 108101 }, - { 0x45DB, 108106 }, - { 0x45DC, 107701 }, - { 0x45DD, 108200 }, - { 0x45DE, 108015 }, - { 0x45DF, 107711 }, - { 0x45E0, 108072 }, - { 0x45E1, 108080 }, - { 0x45E2, 107719 }, - { 0x45E3, 107725 }, - { 0x45E4, 108180 }, - { 0x45E5, 107861 }, - { 0x45E6, 107868 }, - { 0x45E7, 107873 }, - { 0x45E8, 107969 }, - { 0x45E9, 107758 }, - { 0x45EA, 107791 }, - { 0x45EB, 108190 }, - { 0x45EC, 108516 }, - { 0x45ED, 108755 }, - { 0x45EE, 108533 }, - { 0x45EF, 108258 }, - { 0x45F0, 108522 }, - { 0x45F1, 108529 }, - { 0x45F2, 108790 }, - { 0x45F3, 107735 }, - { 0x45F4, 72279 }, - { 0x45F5, 72282 }, - { 0x45F6, 72285 }, - { 0x45F7, 72288 }, - { 0x45F8, 72291 }, - { 0x45F9, 72294 }, - { 0x45FA, 72297 }, - { 0x45FB, 72300 }, - { 0x45FC, 72303 }, - { 0x45FD, 72306 }, - { 0x45FE, 72309 }, - { 0x45FF, 72312 }, - { 0x4600, 72315 }, - { 0x4601, 72318 }, - { 0x4602, 72321 }, - { 0x4603, 72324 }, - { 0x4604, 72327 }, - { 0x4605, 72330 }, - { 0x4606, 72333 }, - { 0x4607, 72336 }, - { 0x4608, 72339 }, - { 0x4609, 72342 }, - { 0x460A, 72345 }, - { 0x460B, 72348 }, - { 0x460C, 72351 }, - { 0x460D, 72354 }, - { 0x460E, 72357 }, - { 0x460F, 72360 }, - { 0x4610, 72363 }, - { 0x4611, 72366 }, - { 0x4612, 72369 }, - { 0x4613, 72372 }, - { 0x4614, 72375 }, - { 0x4615, 72378 }, - { 0x4616, 72381 }, - { 0x4617, 72384 }, - { 0x4618, 72387 }, - { 0x4619, 72390 }, - { 0x461A, 72393 }, - { 0x461B, 72396 }, - { 0x461C, 72399 }, - { 0x461D, 72402 }, - { 0x461E, 72405 }, - { 0x461F, 72408 }, - { 0x4620, 72411 }, - { 0x4621, 72414 }, - { 0x4622, 72417 }, - { 0x4623, 72420 }, - { 0x4624, 72423 }, - { 0x4625, 72426 }, - { 0x4626, 72429 }, - { 0x4627, 72432 }, - { 0x4628, 72435 }, - { 0x4629, 72438 }, - { 0x462A, 72441 }, - { 0x462B, 105407 }, - { 0x462C, 105375 }, - { 0x462D, 105411 }, - { 0x462E, 105423 }, - { 0x462F, 105347 }, - { 0x4630, 105367 }, - { 0x4631, 105419 }, - { 0x4632, 105379 }, - { 0x4633, 105399 }, - { 0x4634, 105403 }, - { 0x4635, 105383 }, - { 0x4636, 105427 }, - { 0x4637, 105355 }, - { 0x4638, 105359 }, - { 0x4639, 105431 }, - { 0x463A, 105371 }, - { 0x463B, 105351 }, - { 0x463C, 105415 }, - { 0x463D, 105387 }, - { 0x463E, 105391 }, - { 0x463F, 105395 }, - { 0x4640, 105363 }, - { 0x4641, 105470 }, - { 0x4642, 105435 }, - { 0x4643, 105458 }, - { 0x4644, 105462 }, - { 0x4645, 105449 }, - { 0x4646, 105466 }, - { 0x4647, 105439 }, - { 0x4648, 105444 }, - { 0x4649, 105453 }, - { 0x464A, 127580 }, - { 0x464B, 127556 }, - { 0x464C, 127587 }, - { 0x464D, 127596 }, - { 0x464E, 127535 }, - { 0x464F, 127550 }, - { 0x4650, 127593 }, - { 0x4651, 127559 }, - { 0x4652, 127574 }, - { 0x4653, 127577 }, - { 0x4654, 127562 }, - { 0x4655, 127599 }, - { 0x4656, 127541 }, - { 0x4657, 127583 }, - { 0x4658, 127544 }, - { 0x4659, 127602 }, - { 0x465A, 127553 }, - { 0x465B, 127538 }, - { 0x465C, 127590 }, - { 0x465D, 127565 }, - { 0x465E, 127568 }, - { 0x465F, 127571 }, - { 0x4660, 127547 }, - { 0x4661, 127626 }, - { 0x4662, 127629 }, - { 0x4663, 127605 }, - { 0x4664, 127611 }, - { 0x4665, 127620 }, - { 0x4666, 127617 }, - { 0x4667, 127614 }, - { 0x4668, 127608 }, - { 0x4669, 127623 }, - { 0x466A, 127471 }, - { 0x466B, 127440 }, - { 0x466C, 127455 }, - { 0x466D, 127416 }, - { 0x466E, 127479 }, - { 0x466F, 127488 }, - { 0x4670, 127443 }, - { 0x4671, 127395 }, - { 0x4672, 127410 }, - { 0x4673, 127485 }, - { 0x4674, 127419 }, - { 0x4675, 127434 }, - { 0x4676, 127467 }, - { 0x4677, 127437 }, - { 0x4678, 127459 }, - { 0x4679, 127422 }, - { 0x467A, 127475 }, - { 0x467B, 127491 }, - { 0x467C, 127447 }, - { 0x467D, 127401 }, - { 0x467E, 127451 }, - { 0x467F, 127404 }, - { 0x4680, 127494 }, - { 0x4681, 127413 }, - { 0x4682, 127398 }, - { 0x4683, 127482 }, - { 0x4684, 127425 }, - { 0x4685, 127428 }, - { 0x4686, 127463 }, - { 0x4687, 127431 }, - { 0x4688, 127407 }, - { 0x4689, 127497 }, - { 0x468A, 127507 }, - { 0x468B, 127516 }, - { 0x468C, 127513 }, - { 0x468D, 127522 }, - { 0x468E, 127510 }, - { 0x468F, 127504 }, - { 0x4690, 127519 }, - { 0x4691, 127500 }, - { 0x4692, 56961 }, - { 0x4693, 56937 }, - { 0x4694, 56964 }, - { 0x4695, 56976 }, - { 0x4696, 56916 }, - { 0x4697, 56934 }, - { 0x4698, 56958 }, - { 0x4699, 56940 }, - { 0x469A, 56952 }, - { 0x469B, 56955 }, - { 0x469C, 56943 }, - { 0x469D, 56970 }, - { 0x469E, 56925 }, - { 0x469F, 56928 }, - { 0x46A0, 56973 }, - { 0x46A1, 56922 }, - { 0x46A2, 56919 }, - { 0x46A3, 56967 }, - { 0x46A4, 56946 }, - { 0x46A5, 56949 }, - { 0x46A6, 56931 }, - { 0x46A7, 56979 }, - { 0x46A8, 56989 }, - { 0x46A9, 56986 }, - { 0x46AA, 56992 }, - { 0x46AB, 56982 }, - { 0x46AC, 132127 }, - { 0x46AD, 132130 }, - { 0x46AE, 132166 }, - { 0x46AF, 132163 }, - { 0x46B0, 132118 }, - { 0x46B1, 132154 }, - { 0x46B2, 132160 }, - { 0x46B3, 132133 }, - { 0x46B4, 132151 }, - { 0x46B5, 132157 }, - { 0x46B6, 132136 }, - { 0x46B7, 132169 }, - { 0x46B8, 132139 }, - { 0x46B9, 132142 }, - { 0x46BA, 132178 }, - { 0x46BB, 132124 }, - { 0x46BC, 132121 }, - { 0x46BD, 132175 }, - { 0x46BE, 132145 }, - { 0x46BF, 132172 }, - { 0x46C0, 132181 }, - { 0x46C1, 132148 }, - { 0x46C2, 132184 }, - { 0x46C3, 132191 }, - { 0x46C4, 132200 }, - { 0x46C5, 132187 }, - { 0x46C6, 132194 }, - { 0x46C7, 132197 }, - { 0x46C8, 132115 }, - { 0x46C9, 63273 }, - { 0x46CA, 63276 }, - { 0x46CB, 63291 }, - { 0x46CC, 63282 }, - { 0x46CD, 63285 }, - { 0x46CE, 63327 }, - { 0x46CF, 63294 }, - { 0x46D0, 63330 }, - { 0x46D1, 63297 }, - { 0x46D2, 63300 }, - { 0x46D3, 63303 }, - { 0x46D4, 63306 }, - { 0x46D5, 63309 }, - { 0x46D6, 63315 }, - { 0x46D7, 63345 }, - { 0x46D8, 63321 }, - { 0x46D9, 63324 }, - { 0x46DA, 63288 }, - { 0x46DB, 63312 }, - { 0x46DC, 63318 }, - { 0x46DD, 63348 }, - { 0x46DE, 63333 }, - { 0x46DF, 63336 }, - { 0x46E0, 63339 }, - { 0x46E1, 63342 }, - { 0x46E2, 63279 }, - { 0x46E3, 63351 }, - { 0x46E4, 107079 }, - { 0x46E5, 107083 }, - { 0x46E6, 107087 }, - { 0x46E7, 107091 }, - { 0x46E8, 107159 }, - { 0x46E9, 107155 }, - { 0x46EA, 107095 }, - { 0x46EB, 107171 }, - { 0x46EC, 107123 }, - { 0x46ED, 107111 }, - { 0x46EE, 107115 }, - { 0x46EF, 107175 }, - { 0x46F0, 107119 }, - { 0x46F1, 107179 }, - { 0x46F2, 107131 }, - { 0x46F3, 107183 }, - { 0x46F4, 107107 }, - { 0x46F5, 107167 }, - { 0x46F6, 107163 }, - { 0x46F7, 107135 }, - { 0x46F8, 107187 }, - { 0x46F9, 107139 }, - { 0x46FA, 107103 }, - { 0x46FB, 107127 }, - { 0x46FC, 107143 }, - { 0x46FD, 107191 }, - { 0x46FE, 107147 }, - { 0x46FF, 107195 }, - { 0x4700, 107151 }, - { 0x4701, 107099 }, - { 0x4702, 107199 }, - { 0x4703, 107203 }, - { 0x4704, 106661 }, - { 0x4705, 106665 }, - { 0x4706, 106669 }, - { 0x4707, 106673 }, - { 0x4708, 106741 }, - { 0x4709, 106737 }, - { 0x470A, 106677 }, - { 0x470B, 106705 }, - { 0x470C, 106693 }, - { 0x470D, 106697 }, - { 0x470E, 106701 }, - { 0x470F, 106713 }, - { 0x4710, 106689 }, - { 0x4711, 106749 }, - { 0x4712, 106745 }, - { 0x4713, 106717 }, - { 0x4714, 106753 }, - { 0x4715, 106721 }, - { 0x4716, 106685 }, - { 0x4717, 106709 }, - { 0x4718, 106725 }, - { 0x4719, 106729 }, - { 0x471A, 106733 }, - { 0x471B, 106681 }, - { 0x471C, 107066 }, - { 0x471D, 107011 }, - { 0x471E, 107075 }, - { 0x471F, 107071 }, - { 0x4720, 106758 }, - { 0x4721, 106807 }, - { 0x4722, 106954 }, - { 0x4723, 106847 }, - { 0x4724, 106827 }, - { 0x4725, 106778 }, - { 0x4726, 106925 }, - { 0x4727, 106887 }, - { 0x4728, 106867 }, - { 0x4729, 106798 }, - { 0x472A, 106993 }, - { 0x472B, 106984 }, - { 0x472C, 106916 }, - { 0x472D, 106907 }, - { 0x472E, 106945 }, - { 0x472F, 107002 }, - { 0x4730, 106762 }, - { 0x4731, 106811 }, - { 0x4732, 106958 }, - { 0x4733, 106851 }, - { 0x4734, 106831 }, - { 0x4735, 106782 }, - { 0x4736, 106929 }, - { 0x4737, 106891 }, - { 0x4738, 106871 }, - { 0x4739, 106773 }, - { 0x473A, 106822 }, - { 0x473B, 106969 }, - { 0x473C, 106862 }, - { 0x473D, 106842 }, - { 0x473E, 106793 }, - { 0x473F, 106940 }, - { 0x4740, 106902 }, - { 0x4741, 106882 }, - { 0x4742, 106802 }, - { 0x4743, 106997 }, - { 0x4744, 106988 }, - { 0x4745, 106920 }, - { 0x4746, 106911 }, - { 0x4747, 106949 }, - { 0x4748, 107006 }, - { 0x4749, 106974 }, - { 0x474A, 106979 }, - { 0x474B, 106767 }, - { 0x474C, 106816 }, - { 0x474D, 106963 }, - { 0x474E, 106856 }, - { 0x474F, 106836 }, - { 0x4750, 106787 }, - { 0x4751, 106934 }, - { 0x4752, 106896 }, - { 0x4753, 106876 }, - { 0x4754, 107016 }, - { 0x4755, 107031 }, - { 0x4756, 107061 }, - { 0x4757, 107041 }, - { 0x4758, 107036 }, - { 0x4759, 107021 }, - { 0x475A, 107056 }, - { 0x475B, 107051 }, - { 0x475C, 107046 }, - { 0x475D, 107026 }, - { 0x475E, 131767 }, - { 0x475F, 131746 }, - { 0x4760, 131754 }, - { 0x4761, 131758 }, - { 0x4762, 131742 }, - { 0x4763, 131750 }, - { 0x4764, 131763 }, - { 0x4765, 131719 }, - { 0x4766, 131727 }, - { 0x4767, 131724 }, - { 0x4768, 131788 }, - { 0x4769, 131836 }, - { 0x476A, 131779 }, - { 0x476B, 131833 }, - { 0x476C, 131773 }, - { 0x476D, 131824 }, - { 0x476E, 131785 }, - { 0x476F, 131845 }, - { 0x4770, 131860 }, - { 0x4771, 131869 }, - { 0x4772, 131827 }, - { 0x4773, 131866 }, - { 0x4774, 131842 }, - { 0x4775, 131809 }, - { 0x4776, 131857 }, - { 0x4777, 131776 }, - { 0x4778, 131830 }, - { 0x4779, 131797 }, - { 0x477A, 131800 }, - { 0x477B, 131848 }, - { 0x477C, 131770 }, - { 0x477D, 131821 }, - { 0x477E, 131794 }, - { 0x477F, 131815 }, - { 0x4780, 131803 }, - { 0x4781, 131791 }, - { 0x4782, 131812 }, - { 0x4783, 131851 }, - { 0x4784, 131854 }, - { 0x4785, 131806 }, - { 0x4786, 131818 }, - { 0x4787, 131782 }, - { 0x4788, 131839 }, - { 0x4789, 131875 }, - { 0x478A, 131872 }, - { 0x478B, 131863 }, - { 0x478C, 131708 }, - { 0x478D, 131716 }, - { 0x478E, 131712 }, - { 0x478F, 131892 }, - { 0x4790, 131730 }, - { 0x4791, 131733 }, - { 0x4792, 131739 }, - { 0x4793, 131736 }, - { 0x4794, 131886 }, - { 0x4795, 131889 }, - { 0x4796, 131878 }, - { 0x4797, 131882 }, - { 0x4798, 131894 }, - { 0x4799, 131898 }, - { 0x479A, 131910 }, - { 0x479B, 131914 }, - { 0x479C, 131921 }, - { 0x479D, 131925 }, - { 0x479E, 131907 }, - { 0x479F, 131901 }, - { 0x47A0, 131917 }, - { 0x47A1, 131904 }, - { 0x47A2, 8272 }, - { 0x47A3, 8397 }, - { 0x47A4, 8317 }, - { 0x47A5, 8282 }, - { 0x47A6, 8327 }, - { 0x47A7, 8302 }, - { 0x47A8, 8337 }, - { 0x47A9, 8332 }, - { 0x47AA, 8312 }, - { 0x47AB, 8297 }, - { 0x47AC, 8292 }, - { 0x47AD, 8322 }, - { 0x47AE, 8287 }, - { 0x47AF, 8372 }, - { 0x47B0, 8377 }, - { 0x47B1, 8402 }, - { 0x47B2, 8267 }, - { 0x47B3, 8307 }, - { 0x47B4, 8277 }, - { 0x47B5, 8392 }, - { 0x47B6, 8367 }, - { 0x47B7, 8387 }, - { 0x47B8, 8362 }, - { 0x47B9, 8342 }, - { 0x47BA, 8357 }, - { 0x47BB, 8407 }, - { 0x47BC, 8352 }, - { 0x47BD, 8347 }, - { 0x47BE, 8382 }, - { 0x47BF, 8412 }, - { 0x47C0, 8417 }, - { 0x47C1, 8422 }, - { 0x47C2, 8137 }, - { 0x47C3, 8147 }, - { 0x47C4, 8132 }, - { 0x47C5, 8222 }, - { 0x47C6, 8152 }, - { 0x47C7, 8177 }, - { 0x47C8, 8202 }, - { 0x47C9, 8157 }, - { 0x47CA, 8112 }, - { 0x47CB, 8172 }, - { 0x47CC, 8197 }, - { 0x47CD, 8142 }, - { 0x47CE, 8227 }, - { 0x47CF, 8217 }, - { 0x47D0, 8162 }, - { 0x47D1, 8207 }, - { 0x47D2, 8127 }, - { 0x47D3, 8192 }, - { 0x47D4, 8107 }, - { 0x47D5, 8117 }, - { 0x47D6, 8212 }, - { 0x47D7, 8122 }, - { 0x47D8, 8247 }, - { 0x47D9, 8167 }, - { 0x47DA, 8242 }, - { 0x47DB, 8232 }, - { 0x47DC, 8182 }, - { 0x47DD, 8237 }, - { 0x47DE, 8187 }, - { 0x47DF, 8252 }, - { 0x47E0, 8257 }, - { 0x47E1, 8262 }, - { 0x47E2, 131988 }, - { 0x47E3, 131955 }, - { 0x47E4, 131991 }, - { 0x47E5, 131994 }, - { 0x47E6, 132018 }, - { 0x47E7, 132015 }, - { 0x47E8, 131934 }, - { 0x47E9, 131949 }, - { 0x47EA, 131928 }, - { 0x47EB, 132012 }, - { 0x47EC, 132030 }, - { 0x47ED, 131997 }, - { 0x47EE, 132021 }, - { 0x47EF, 131958 }, - { 0x47F0, 131973 }, - { 0x47F1, 131982 }, - { 0x47F2, 131961 }, - { 0x47F3, 131976 }, - { 0x47F4, 132000 }, - { 0x47F5, 132024 }, - { 0x47F6, 132033 }, - { 0x47F7, 132036 }, - { 0x47F8, 131940 }, - { 0x47F9, 131943 }, - { 0x47FA, 132027 }, - { 0x47FB, 131952 }, - { 0x47FC, 131985 }, - { 0x47FD, 131937 }, - { 0x47FE, 131931 }, - { 0x47FF, 132006 }, - { 0x4800, 131964 }, - { 0x4801, 131979 }, - { 0x4802, 132003 }, - { 0x4803, 131967 }, - { 0x4804, 131970 }, - { 0x4805, 132009 }, - { 0x4806, 131946 }, - { 0x4807, 132083 }, - { 0x4808, 132087 }, - { 0x4809, 132039 }, - { 0x480A, 132049 }, - { 0x480B, 132046 }, - { 0x480C, 132052 }, - { 0x480D, 132042 }, - { 0x480E, 132071 }, - { 0x480F, 132080 }, - { 0x4810, 132074 }, - { 0x4811, 132058 }, - { 0x4812, 132055 }, - { 0x4813, 132063 }, - { 0x4814, 132067 }, - { 0x4815, 69886 }, - { 0x4816, 69901 }, - { 0x4817, 69910 }, - { 0x4818, 69985 }, - { 0x4819, 69907 }, - { 0x481A, 69982 }, - { 0x481B, 69904 }, - { 0x481C, 69988 }, - { 0x481D, 69889 }, - { 0x481E, 69922 }, - { 0x481F, 69895 }, - { 0x4820, 69952 }, - { 0x4821, 69892 }, - { 0x4822, 69934 }, - { 0x4823, 69898 }, - { 0x4824, 69967 }, - { 0x4825, 69940 }, - { 0x4826, 69973 }, - { 0x4827, 70027 }, - { 0x4828, 70024 }, - { 0x4829, 69928 }, - { 0x482A, 69997 }, - { 0x482B, 70000 }, - { 0x482C, 69916 }, - { 0x482D, 69937 }, - { 0x482E, 69964 }, - { 0x482F, 70018 }, - { 0x4830, 69919 }, - { 0x4831, 69994 }, - { 0x4832, 70021 }, - { 0x4833, 69955 }, - { 0x4834, 69925 }, - { 0x4835, 69913 }, - { 0x4836, 69991 }, - { 0x4837, 70006 }, - { 0x4838, 70039 }, - { 0x4839, 70036 }, - { 0x483A, 69949 }, - { 0x483B, 70012 }, - { 0x483C, 70009 }, - { 0x483D, 69946 }, - { 0x483E, 70003 }, - { 0x483F, 70030 }, - { 0x4840, 69976 }, - { 0x4841, 69970 }, - { 0x4842, 69958 }, - { 0x4843, 69943 }, - { 0x4844, 69961 }, - { 0x4845, 69979 }, - { 0x4846, 70015 }, - { 0x4847, 70033 }, - { 0x4848, 70042 }, - { 0x4849, 70045 }, - { 0x484A, 69931 }, - { 0x484B, 70048 }, - { 0x484C, 17344 }, - { 0x484D, 41273 }, - { 0x484E, 28395 }, - { 0x484F, 28375 }, - { 0x4850, 28402 }, - { 0x4851, 28382 }, - { 0x4852, 143864 }, - { 0x4853, 143832 }, - { 0x4854, 143868 }, - { 0x4855, 143880 }, - { 0x4856, 143804 }, - { 0x4857, 143824 }, - { 0x4858, 143876 }, - { 0x4859, 143836 }, - { 0x485A, 143856 }, - { 0x485B, 143860 }, - { 0x485C, 143840 }, - { 0x485D, 143884 }, - { 0x485E, 143812 }, - { 0x485F, 143816 }, - { 0x4860, 143888 }, - { 0x4861, 143828 }, - { 0x4862, 143808 }, - { 0x4863, 143872 }, - { 0x4864, 143844 }, - { 0x4865, 143848 }, - { 0x4866, 143852 }, - { 0x4867, 143820 }, - { 0x4868, 143892 }, - { 0x4869, 143910 }, - { 0x486A, 143918 }, - { 0x486B, 143914 }, - { 0x486C, 143906 }, - { 0x486D, 143922 }, - { 0x486E, 143896 }, - { 0x486F, 143901 }, - { 0x4870, 143734 }, - { 0x4871, 143710 }, - { 0x4872, 143738 }, - { 0x4873, 143750 }, - { 0x4874, 143694 }, - { 0x4875, 143766 }, - { 0x4876, 143746 }, - { 0x4877, 143714 }, - { 0x4878, 143726 }, - { 0x4879, 143730 }, - { 0x487A, 143718 }, - { 0x487B, 143754 }, - { 0x487C, 143762 }, - { 0x487D, 143702 }, - { 0x487E, 143758 }, - { 0x487F, 143698 }, - { 0x4880, 143742 }, - { 0x4881, 143722 }, - { 0x4882, 143706 }, - { 0x4883, 143770 }, - { 0x4884, 143788 }, - { 0x4885, 143796 }, - { 0x4886, 143792 }, - { 0x4887, 143784 }, - { 0x4888, 143800 }, - { 0x4889, 143774 }, - { 0x488A, 143779 }, - { 0x488B, 78546 }, - { 0x488C, 78526 }, - { 0x488D, 78550 }, - { 0x488E, 78562 }, - { 0x488F, 78510 }, - { 0x4890, 78578 }, - { 0x4891, 78558 }, - { 0x4892, 78530 }, - { 0x4893, 78542 }, - { 0x4894, 78534 }, - { 0x4895, 78566 }, - { 0x4896, 78574 }, - { 0x4897, 78518 }, - { 0x4898, 78570 }, - { 0x4899, 78514 }, - { 0x489A, 78554 }, - { 0x489B, 78538 }, - { 0x489C, 78522 }, - { 0x489D, 78616 }, - { 0x489E, 78611 }, - { 0x489F, 78504 }, - { 0x48A0, 78498 }, - { 0x48A1, 78582 }, - { 0x48A2, 78595 }, - { 0x48A3, 78603 }, - { 0x48A4, 78599 }, - { 0x48A5, 78591 }, - { 0x48A6, 78607 }, - { 0x48A7, 78586 }, - { 0x48A8, 8737 }, - { 0x48A9, 8947 }, - { 0x48AA, 8972 }, - { 0x48AB, 8742 }, - { 0x48AC, 8957 }, - { 0x48AD, 8952 }, - { 0x48AE, 8747 }, - { 0x48AF, 8832 }, - { 0x48B0, 9022 }, - { 0x48B1, 8752 }, - { 0x48B2, 8962 }, - { 0x48B3, 8852 }, - { 0x48B4, 9032 }, - { 0x48B5, 8762 }, - { 0x48B6, 8977 }, - { 0x48B7, 8862 }, - { 0x48B8, 9037 }, - { 0x48B9, 8757 }, - { 0x48BA, 8967 }, - { 0x48BB, 8857 }, - { 0x48BC, 8817 }, - { 0x48BD, 9012 }, - { 0x48BE, 8797 }, - { 0x48BF, 9002 }, - { 0x48C0, 8897 }, - { 0x48C1, 9057 }, - { 0x48C2, 8867 }, - { 0x48C3, 9042 }, - { 0x48C4, 8937 }, - { 0x48C5, 9092 }, - { 0x48C6, 8767 }, - { 0x48C7, 8982 }, - { 0x48C8, 8872 }, - { 0x48C9, 8907 }, - { 0x48CA, 8807 }, - { 0x48CB, 8772 }, - { 0x48CC, 8877 }, - { 0x48CD, 9047 }, - { 0x48CE, 8922 }, - { 0x48CF, 9077 }, - { 0x48D0, 8912 }, - { 0x48D1, 9072 }, - { 0x48D2, 8927 }, - { 0x48D3, 9082 }, - { 0x48D4, 9062 }, - { 0x48D5, 8917 }, - { 0x48D6, 9097 }, - { 0x48D7, 8812 }, - { 0x48D8, 8837 }, - { 0x48D9, 8822 }, - { 0x48DA, 8802 }, - { 0x48DB, 9007 }, - { 0x48DC, 8777 }, - { 0x48DD, 8987 }, - { 0x48DE, 8827 }, - { 0x48DF, 9017 }, - { 0x48E0, 8842 }, - { 0x48E1, 9027 }, - { 0x48E2, 8782 }, - { 0x48E3, 8992 }, - { 0x48E4, 8882 }, - { 0x48E5, 8787 }, - { 0x48E6, 8887 }, - { 0x48E7, 8902 }, - { 0x48E8, 9067 }, - { 0x48E9, 8932 }, - { 0x48EA, 9087 }, - { 0x48EB, 8792 }, - { 0x48EC, 8997 }, - { 0x48ED, 8892 }, - { 0x48EE, 9052 }, - { 0x48EF, 8847 }, - { 0x48F0, 8942 }, - { 0x48F1, 9904 }, - { 0x48F2, 9929 }, - { 0x48F3, 9939 }, - { 0x48F4, 10049 }, - { 0x48F5, 9944 }, - { 0x48F6, 10084 }, - { 0x48F7, 10064 }, - { 0x48F8, 9949 }, - { 0x48F9, 10054 }, - { 0x48FA, 9909 }, - { 0x48FB, 10124 }, - { 0x48FC, 9954 }, - { 0x48FD, 9959 }, - { 0x48FE, 9964 }, - { 0x48FF, 10069 }, - { 0x4900, 9969 }, - { 0x4901, 9914 }, - { 0x4902, 10029 }, - { 0x4903, 9974 }, - { 0x4904, 9979 }, - { 0x4905, 9934 }, - { 0x4906, 10119 }, - { 0x4907, 9984 }, - { 0x4908, 10074 }, - { 0x4909, 9989 }, - { 0x490A, 9994 }, - { 0x490B, 10094 }, - { 0x490C, 9919 }, - { 0x490D, 10034 }, - { 0x490E, 10154 }, - { 0x490F, 10136 }, - { 0x4910, 10114 }, - { 0x4911, 9999 }, - { 0x4912, 10079 }, - { 0x4913, 10004 }, - { 0x4914, 10130 }, - { 0x4915, 10009 }, - { 0x4916, 10099 }, - { 0x4917, 10014 }, - { 0x4918, 10089 }, - { 0x4919, 10104 }, - { 0x491A, 10059 }, - { 0x491B, 9924 }, - { 0x491C, 10044 }, - { 0x491D, 10160 }, - { 0x491E, 10142 }, - { 0x491F, 10019 }, - { 0x4920, 10024 }, - { 0x4921, 10109 }, - { 0x4922, 10148 }, - { 0x4923, 10039 }, - { 0x4924, 9616 }, - { 0x4925, 9641 }, - { 0x4926, 9651 }, - { 0x4927, 9761 }, - { 0x4928, 9656 }, - { 0x4929, 9796 }, - { 0x492A, 9776 }, - { 0x492B, 9661 }, - { 0x492C, 9766 }, - { 0x492D, 9621 }, - { 0x492E, 9836 }, - { 0x492F, 9666 }, - { 0x4930, 9671 }, - { 0x4931, 9676 }, - { 0x4932, 9781 }, - { 0x4933, 9681 }, - { 0x4934, 9626 }, - { 0x4935, 9741 }, - { 0x4936, 9686 }, - { 0x4937, 9691 }, - { 0x4938, 9646 }, - { 0x4939, 9831 }, - { 0x493A, 9696 }, - { 0x493B, 9786 }, - { 0x493C, 9701 }, - { 0x493D, 9706 }, - { 0x493E, 9806 }, - { 0x493F, 9631 }, - { 0x4940, 9746 }, - { 0x4941, 9866 }, - { 0x4942, 9848 }, - { 0x4943, 9826 }, - { 0x4944, 9711 }, - { 0x4945, 9791 }, - { 0x4946, 9716 }, - { 0x4947, 9842 }, - { 0x4948, 9721 }, - { 0x4949, 9811 }, - { 0x494A, 9726 }, - { 0x494B, 9801 }, - { 0x494C, 9816 }, - { 0x494D, 9771 }, - { 0x494E, 9636 }, - { 0x494F, 9756 }, - { 0x4950, 9872 }, - { 0x4951, 9854 }, - { 0x4952, 9731 }, - { 0x4953, 9736 }, - { 0x4954, 9821 }, - { 0x4955, 9860 }, - { 0x4956, 9751 }, - { 0x4957, 9878 }, - { 0x4958, 9896 }, - { 0x4959, 9892 }, - { 0x495A, 9900 }, - { 0x495B, 9882 }, - { 0x495C, 9887 }, - { 0x495D, 56798 }, - { 0x495E, 56802 }, - { 0x495F, 56846 }, - { 0x4960, 56858 }, - { 0x4961, 56902 }, - { 0x4962, 56826 }, - { 0x4963, 56806 }, - { 0x4964, 56822 }, - { 0x4965, 56882 }, - { 0x4966, 56814 }, - { 0x4967, 56810 }, - { 0x4968, 56878 }, - { 0x4969, 56850 }, - { 0x496A, 56894 }, - { 0x496B, 56874 }, - { 0x496C, 56854 }, - { 0x496D, 56898 }, - { 0x496E, 56830 }, - { 0x496F, 56818 }, - { 0x4970, 56834 }, - { 0x4971, 56838 }, - { 0x4972, 56842 }, - { 0x4973, 56866 }, - { 0x4974, 56906 }, - { 0x4975, 56870 }, - { 0x4976, 56911 }, - { 0x4977, 56886 }, - { 0x4978, 56890 }, - { 0x4979, 56862 }, - { 0x497A, 56778 }, - { 0x497B, 56786 }, - { 0x497C, 56794 }, - { 0x497D, 56782 }, - { 0x497E, 56790 }, - { 0x497F, 56718 }, - { 0x4980, 56713 }, - { 0x4981, 56734 }, - { 0x4982, 56730 }, - { 0x4983, 56722 }, - { 0x4984, 56726 }, - { 0x4985, 56762 }, - { 0x4986, 56738 }, - { 0x4987, 56746 }, - { 0x4988, 56774 }, - { 0x4989, 56754 }, - { 0x498A, 56750 }, - { 0x498B, 56742 }, - { 0x498C, 56770 }, - { 0x498D, 56766 }, - { 0x498E, 56758 }, - { 0x498F, 23368 }, - { 0x4990, 23350 }, - { 0x4991, 23356 }, - { 0x4992, 23377 }, - { 0x4993, 23362 }, - { 0x4994, 23359 }, - { 0x4995, 23353 }, - { 0x4996, 23374 }, - { 0x4997, 23371 }, - { 0x4998, 23365 }, - { 0x4999, 23475 }, - { 0x499A, 23483 }, - { 0x499B, 23487 }, - { 0x499C, 23491 }, - { 0x499D, 23495 }, - { 0x499E, 23473 }, - { 0x499F, 23501 }, - { 0x49A0, 23509 }, - { 0x49A1, 23541 }, - { 0x49A2, 23533 }, - { 0x49A3, 23505 }, - { 0x49A4, 23529 }, - { 0x49A5, 23557 }, - { 0x49A6, 23565 }, - { 0x49A7, 23537 }, - { 0x49A8, 23521 }, - { 0x49A9, 23513 }, - { 0x49AA, 23569 }, - { 0x49AB, 23573 }, - { 0x49AC, 23561 }, - { 0x49AD, 23553 }, - { 0x49AE, 23577 }, - { 0x49AF, 23517 }, - { 0x49B0, 23545 }, - { 0x49B1, 23549 }, - { 0x49B2, 23525 }, - { 0x49B3, 23581 }, - { 0x49B4, 23586 }, - { 0x49B5, 23479 }, - { 0x49B6, 23600 }, - { 0x49B7, 23591 }, - { 0x49B8, 23595 }, - { 0x49B9, 23604 }, - { 0x49BA, 23499 }, - { 0x49BB, 23608 }, - { 0x49BC, 23383 }, - { 0x49BD, 23391 }, - { 0x49BE, 23423 }, - { 0x49BF, 23415 }, - { 0x49C0, 23387 }, - { 0x49C1, 23411 }, - { 0x49C2, 23439 }, - { 0x49C3, 23447 }, - { 0x49C4, 23419 }, - { 0x49C5, 23403 }, - { 0x49C6, 23395 }, - { 0x49C7, 23451 }, - { 0x49C8, 23455 }, - { 0x49C9, 23443 }, - { 0x49CA, 23435 }, - { 0x49CB, 23459 }, - { 0x49CC, 23399 }, - { 0x49CD, 23427 }, - { 0x49CE, 23431 }, - { 0x49CF, 23407 }, - { 0x49D0, 23463 }, - { 0x49D1, 23468 }, - { 0x49D2, 23347 }, - { 0x49D3, 23380 }, - { 0x49D4, 16697 }, - { 0x49D5, 16703 }, - { 0x49D6, 16721 }, - { 0x49D7, 16709 }, - { 0x49D8, 16706 }, - { 0x49D9, 16700 }, - { 0x49DA, 16718 }, - { 0x49DB, 16715 }, - { 0x49DC, 16712 }, - { 0x49DD, 16732 }, - { 0x49DE, 16781 }, - { 0x49DF, 16778 }, - { 0x49E0, 16758 }, - { 0x49E1, 16755 }, - { 0x49E2, 16765 }, - { 0x49E3, 16784 }, - { 0x49E4, 16772 }, - { 0x49E5, 16775 }, - { 0x49E6, 16724 }, - { 0x49E7, 16735 }, - { 0x49E8, 16768 }, - { 0x49E9, 16743 }, - { 0x49EA, 16739 }, - { 0x49EB, 16728 }, - { 0x49EC, 16761 }, - { 0x49ED, 16751 }, - { 0x49EE, 16747 }, - { 0x49EF, 16787 }, - { 0x49F0, 16795 }, - { 0x49F1, 16791 }, - { 0x49F2, 16799 }, - { 0x49F3, 69843 }, - { 0x49F4, 69718 }, - { 0x49F5, 69736 }, - { 0x49F6, 69807 }, - { 0x49F7, 69822 }, - { 0x49F8, 69742 }, - { 0x49F9, 69768 }, - { 0x49FA, 69840 }, - { 0x49FB, 69852 }, - { 0x49FC, 69786 }, - { 0x49FD, 69759 }, - { 0x49FE, 69774 }, - { 0x49FF, 69837 }, - { 0x4A00, 69739 }, - { 0x4A01, 69813 }, - { 0x4A02, 69762 }, - { 0x4A03, 69730 }, - { 0x4A04, 69819 }, - { 0x4A05, 69849 }, - { 0x4A06, 69816 }, - { 0x4A07, 69771 }, - { 0x4A08, 69745 }, - { 0x4A09, 69765 }, - { 0x4A0A, 69777 }, - { 0x4A0B, 69855 }, - { 0x4A0C, 69727 }, - { 0x4A0D, 69751 }, - { 0x4A0E, 69754 }, - { 0x4A0F, 69810 }, - { 0x4A10, 69789 }, - { 0x4A11, 69846 }, - { 0x4A12, 69780 }, - { 0x4A13, 69792 }, - { 0x4A14, 69801 }, - { 0x4A15, 69804 }, - { 0x4A16, 69748 }, - { 0x4A17, 69825 }, - { 0x4A18, 69733 }, - { 0x4A19, 69724 }, - { 0x4A1A, 69783 }, - { 0x4A1B, 69828 }, - { 0x4A1C, 69721 }, - { 0x4A1D, 69858 }, - { 0x4A1E, 69862 }, - { 0x4A1F, 69866 }, - { 0x4A20, 69795 }, - { 0x4A21, 69831 }, - { 0x4A22, 45121 }, - { 0x4A23, 45945 }, - { 0x4A24, 45576 }, - { 0x4A25, 51759 }, - { 0x4A26, 44503 }, - { 0x4A27, 44493 }, - { 0x4A28, 44498 }, - { 0x4A29, 9472 }, - { 0x4A2A, 9512 }, - { 0x4A2B, 9452 }, - { 0x4A2C, 9507 }, - { 0x4A2D, 9530 }, - { 0x4A2E, 9424 }, - { 0x4A2F, 9476 }, - { 0x4A30, 9444 }, - { 0x4A31, 9538 }, - { 0x4A32, 9456 }, - { 0x4A33, 9468 }, - { 0x4A34, 9460 }, - { 0x4A35, 9542 }, - { 0x4A36, 9432 }, - { 0x4A37, 9436 }, - { 0x4A38, 9481 }, - { 0x4A39, 9486 }, - { 0x4A3A, 9546 }, - { 0x4A3B, 9448 }, - { 0x4A3C, 9550 }, - { 0x4A3D, 9428 }, - { 0x4A3E, 9534 }, - { 0x4A3F, 9517 }, - { 0x4A40, 9522 }, - { 0x4A41, 9555 }, - { 0x4A42, 9464 }, - { 0x4A43, 9440 }, - { 0x4A44, 9494 }, - { 0x4A45, 9499 }, - { 0x4A46, 9559 }, - { 0x4A47, 9572 }, - { 0x4A48, 9584 }, - { 0x4A49, 9580 }, - { 0x4A4A, 9576 }, - { 0x4A4B, 9568 }, - { 0x4A4C, 9592 }, - { 0x4A4D, 9588 }, - { 0x4A4E, 9563 }, - { 0x4A4F, 9596 }, - { 0x4A50, 9601 }, - { 0x4A51, 80247 }, - { 0x4A52, 80226 }, - { 0x4A53, 80250 }, - { 0x4A54, 80205 }, - { 0x4A55, 80220 }, - { 0x4A56, 80256 }, - { 0x4A57, 80232 }, - { 0x4A58, 80244 }, - { 0x4A59, 80235 }, - { 0x4A5A, 80259 }, - { 0x4A5B, 80211 }, - { 0x4A5C, 80214 }, - { 0x4A5D, 80262 }, - { 0x4A5E, 80223 }, - { 0x4A5F, 80208 }, - { 0x4A60, 80253 }, - { 0x4A61, 80265 }, - { 0x4A62, 80241 }, - { 0x4A63, 80217 }, - { 0x4A64, 80229 }, - { 0x4A65, 80238 }, - { 0x4A66, 80328 }, - { 0x4A67, 80285 }, - { 0x4A68, 80294 }, - { 0x4A69, 80281 }, - { 0x4A6A, 80289 }, - { 0x4A6B, 80316 }, - { 0x4A6C, 80320 }, - { 0x4A6D, 80299 }, - { 0x4A6E, 80303 }, - { 0x4A6F, 80307 }, - { 0x4A70, 80312 }, - { 0x4A71, 80324 }, - { 0x4A72, 80268 }, - { 0x4A73, 80275 }, - { 0x4A74, 80278 }, - { 0x4A75, 80271 }, - { 0x4A76, 80337 }, - { 0x4A77, 80342 }, - { 0x4A78, 80355 }, - { 0x4A79, 80331 }, - { 0x4A7A, 80349 }, - { 0x4A7B, 9146 }, - { 0x4A7C, 9122 }, - { 0x4A7D, 9171 }, - { 0x4A7E, 9118 }, - { 0x4A7F, 9159 }, - { 0x4A80, 9150 }, - { 0x4A81, 9142 }, - { 0x4A82, 9126 }, - { 0x4A83, 9163 }, - { 0x4A84, 9106 }, - { 0x4A85, 9110 }, - { 0x4A86, 9167 }, - { 0x4A87, 9102 }, - { 0x4A88, 9155 }, - { 0x4A89, 9134 }, - { 0x4A8A, 9138 }, - { 0x4A8B, 9114 }, - { 0x4A8C, 9130 }, - { 0x4A8D, 9175 }, - { 0x4A8E, 9180 }, - { 0x4A8F, 9185 }, - { 0x4A90, 9191 }, - { 0x4A91, 9197 }, - { 0x4A92, 9201 }, - { 0x4A93, 9206 }, - { 0x4A94, 9211 }, - { 0x4A95, 129724 }, - { 0x4A96, 129730 }, - { 0x4A97, 129706 }, - { 0x4A98, 129727 }, - { 0x4A99, 129741 }, - { 0x4A9A, 129685 }, - { 0x4A9B, 129700 }, - { 0x4A9C, 129737 }, - { 0x4A9D, 129734 }, - { 0x4A9E, 129709 }, - { 0x4A9F, 129721 }, - { 0x4AA0, 129712 }, - { 0x4AA1, 129744 }, - { 0x4AA2, 129691 }, - { 0x4AA3, 129694 }, - { 0x4AA4, 129747 }, - { 0x4AA5, 129703 }, - { 0x4AA6, 129688 }, - { 0x4AA7, 129715 }, - { 0x4AA8, 129718 }, - { 0x4AA9, 129697 }, - { 0x4AAA, 129750 }, - { 0x4AAB, 129760 }, - { 0x4AAC, 129766 }, - { 0x4AAD, 129763 }, - { 0x4AAE, 129757 }, - { 0x4AAF, 129769 }, - { 0x4AB0, 129753 }, - { 0x4AB1, 73225 }, - { 0x4AB2, 73201 }, - { 0x4AB3, 73228 }, - { 0x4AB4, 73237 }, - { 0x4AB5, 73180 }, - { 0x4AB6, 73195 }, - { 0x4AB7, 73234 }, - { 0x4AB8, 73204 }, - { 0x4AB9, 73219 }, - { 0x4ABA, 73222 }, - { 0x4ABB, 73207 }, - { 0x4ABC, 73240 }, - { 0x4ABD, 73186 }, - { 0x4ABE, 73189 }, - { 0x4ABF, 73243 }, - { 0x4AC0, 73198 }, - { 0x4AC1, 73183 }, - { 0x4AC2, 73231 }, - { 0x4AC3, 73210 }, - { 0x4AC4, 73213 }, - { 0x4AC5, 73216 }, - { 0x4AC6, 73192 }, - { 0x4AC7, 73246 }, - { 0x4AC8, 52574 }, - { 0x4AC9, 52571 }, - { 0x4ACA, 52568 }, - { 0x4ACB, 52577 }, - { 0x4ACC, 52580 }, - { 0x4ACD, 52693 }, - { 0x4ACE, 52708 }, - { 0x4ACF, 52699 }, - { 0x4AD0, 52732 }, - { 0x4AD1, 52705 }, - { 0x4AD2, 52762 }, - { 0x4AD3, 52861 }, - { 0x4AD4, 52869 }, - { 0x4AD5, 52857 }, - { 0x4AD6, 52865 }, - { 0x4AD7, 52696 }, - { 0x4AD8, 52711 }, - { 0x4AD9, 52702 }, - { 0x4ADA, 52714 }, - { 0x4ADB, 52738 }, - { 0x4ADC, 52789 }, - { 0x4ADD, 52726 }, - { 0x4ADE, 52783 }, - { 0x4ADF, 52795 }, - { 0x4AE0, 52720 }, - { 0x4AE1, 52774 }, - { 0x4AE2, 52735 }, - { 0x4AE3, 52786 }, - { 0x4AE4, 52801 }, - { 0x4AE5, 52848 }, - { 0x4AE6, 52854 }, - { 0x4AE7, 52777 }, - { 0x4AE8, 52851 }, - { 0x4AE9, 52798 }, - { 0x4AEA, 52759 }, - { 0x4AEB, 52845 }, - { 0x4AEC, 52723 }, - { 0x4AED, 52780 }, - { 0x4AEE, 52747 }, - { 0x4AEF, 52750 }, - { 0x4AF0, 52836 }, - { 0x4AF1, 52717 }, - { 0x4AF2, 52771 }, - { 0x4AF3, 52744 }, - { 0x4AF4, 52768 }, - { 0x4AF5, 52753 }, - { 0x4AF6, 52741 }, - { 0x4AF7, 52765 }, - { 0x4AF8, 52839 }, - { 0x4AF9, 52842 }, - { 0x4AFA, 52756 }, - { 0x4AFB, 52729 }, - { 0x4AFC, 52792 }, - { 0x4AFD, 52814 }, - { 0x4AFE, 52809 }, - { 0x4AFF, 52819 }, - { 0x4B00, 52631 }, - { 0x4B01, 52685 }, - { 0x4B02, 52619 }, - { 0x4B03, 52643 }, - { 0x4B04, 52627 }, - { 0x4B05, 52647 }, - { 0x4B06, 52670 }, - { 0x4B07, 52680 }, - { 0x4B08, 52665 }, - { 0x4B09, 52675 }, - { 0x4B0A, 52615 }, - { 0x4B0B, 52635 }, - { 0x4B0C, 52623 }, - { 0x4B0D, 52639 }, - { 0x4B0E, 52938 }, - { 0x4B0F, 52583 }, - { 0x4B10, 52690 }, - { 0x4B11, 52940 }, - { 0x4B12, 52949 }, - { 0x4B13, 52943 }, - { 0x4B14, 52953 }, - { 0x4B15, 52946 }, - { 0x4B16, 52873 }, - { 0x4B17, 52890 }, - { 0x4B18, 52917 }, - { 0x4B19, 52896 }, - { 0x4B1A, 52893 }, - { 0x4B1B, 52884 }, - { 0x4B1C, 52911 }, - { 0x4B1D, 52902 }, - { 0x4B1E, 52899 }, - { 0x4B1F, 52887 }, - { 0x4B20, 52932 }, - { 0x4B21, 52929 }, - { 0x4B22, 52908 }, - { 0x4B23, 52905 }, - { 0x4B24, 52914 }, - { 0x4B25, 52935 }, - { 0x4B26, 52920 }, - { 0x4B27, 52926 }, - { 0x4B28, 52876 }, - { 0x4B29, 52880 }, - { 0x4B2A, 52603 }, - { 0x4B2B, 52585 }, - { 0x4B2C, 52591 }, - { 0x4B2D, 52612 }, - { 0x4B2E, 52597 }, - { 0x4B2F, 52594 }, - { 0x4B30, 52588 }, - { 0x4B31, 52609 }, - { 0x4B32, 52606 }, - { 0x4B33, 52600 }, - { 0x4B34, 52563 }, - { 0x4B35, 52824 }, - { 0x4B36, 52830 }, - { 0x4B37, 52651 }, - { 0x4B38, 52658 }, - { 0x4B39, 52804 }, - { 0x4B3A, 52923 }, - { 0x4B3B, 57572 }, - { 0x4B3C, 57569 }, - { 0x4B3D, 57566 }, - { 0x4B3E, 57625 }, - { 0x4B3F, 57640 }, - { 0x4B40, 57631 }, - { 0x4B41, 57664 }, - { 0x4B42, 57637 }, - { 0x4B43, 57694 }, - { 0x4B44, 57628 }, - { 0x4B45, 57643 }, - { 0x4B46, 57634 }, - { 0x4B47, 57646 }, - { 0x4B48, 57670 }, - { 0x4B49, 57721 }, - { 0x4B4A, 57658 }, - { 0x4B4B, 57715 }, - { 0x4B4C, 57724 }, - { 0x4B4D, 57652 }, - { 0x4B4E, 57706 }, - { 0x4B4F, 57667 }, - { 0x4B50, 57718 }, - { 0x4B51, 57730 }, - { 0x4B52, 57748 }, - { 0x4B53, 57754 }, - { 0x4B54, 57709 }, - { 0x4B55, 57757 }, - { 0x4B56, 57751 }, - { 0x4B57, 57736 }, - { 0x4B58, 57727 }, - { 0x4B59, 57691 }, - { 0x4B5A, 57745 }, - { 0x4B5B, 57655 }, - { 0x4B5C, 57712 }, - { 0x4B5D, 57679 }, - { 0x4B5E, 57682 }, - { 0x4B5F, 57733 }, - { 0x4B60, 57649 }, - { 0x4B61, 57703 }, - { 0x4B62, 57676 }, - { 0x4B63, 57700 }, - { 0x4B64, 57685 }, - { 0x4B65, 57673 }, - { 0x4B66, 57697 }, - { 0x4B67, 57739 }, - { 0x4B68, 57742 }, - { 0x4B69, 57688 }, - { 0x4B6A, 57661 }, - { 0x4B6B, 57593 }, - { 0x4B6C, 57581 }, - { 0x4B6D, 57605 }, - { 0x4B6E, 57589 }, - { 0x4B6F, 57609 }, - { 0x4B70, 57577 }, - { 0x4B71, 57597 }, - { 0x4B72, 57585 }, - { 0x4B73, 57601 }, - { 0x4B74, 57563 }, - { 0x4B75, 57560 }, - { 0x4B76, 57773 }, - { 0x4B77, 57770 }, - { 0x4B78, 57760 }, - { 0x4B79, 57767 }, - { 0x4B7A, 57621 }, - { 0x4B7B, 57575 }, - { 0x4B7C, 57618 }, - { 0x4B7D, 57613 }, - { 0x4B7E, 57763 }, - { 0x4B7F, 16955 }, - { 0x4B80, 16959 }, - { 0x4B81, 16899 }, - { 0x4B82, 16903 }, - { 0x4B83, 16907 }, - { 0x4B84, 16915 }, - { 0x4B85, 16939 }, - { 0x4B86, 16971 }, - { 0x4B87, 16931 }, - { 0x4B88, 16943 }, - { 0x4B89, 16963 }, - { 0x4B8A, 16947 }, - { 0x4B8B, 16967 }, - { 0x4B8C, 16951 }, - { 0x4B8D, 16919 }, - { 0x4B8E, 16927 }, - { 0x4B8F, 16923 }, - { 0x4B90, 16975 }, - { 0x4B91, 16879 }, - { 0x4B92, 16911 }, - { 0x4B93, 16887 }, - { 0x4B94, 16895 }, - { 0x4B95, 16891 }, - { 0x4B96, 16883 }, - { 0x4B97, 16935 }, - { 0x4B98, 16863 }, - { 0x4B99, 16839 }, - { 0x4B9A, 16847 }, - { 0x4B9B, 16875 }, - { 0x4B9C, 16855 }, - { 0x4B9D, 16851 }, - { 0x4B9E, 16843 }, - { 0x4B9F, 16871 }, - { 0x4BA0, 16867 }, - { 0x4BA1, 16859 }, - { 0x4BA2, 53155 }, - { 0x4BA3, 53152 }, - { 0x4BA4, 53149 }, - { 0x4BA5, 53250 }, - { 0x4BA6, 53244 }, - { 0x4BA7, 53247 }, - { 0x4BA8, 53241 }, - { 0x4BA9, 53271 }, - { 0x4BAA, 53322 }, - { 0x4BAB, 53262 }, - { 0x4BAC, 53316 }, - { 0x4BAD, 53328 }, - { 0x4BAE, 53256 }, - { 0x4BAF, 53307 }, - { 0x4BB0, 53268 }, - { 0x4BB1, 53319 }, - { 0x4BB2, 53334 }, - { 0x4BB3, 53343 }, - { 0x4BB4, 53352 }, - { 0x4BB5, 53310 }, - { 0x4BB6, 53349 }, - { 0x4BB7, 53331 }, - { 0x4BB8, 53292 }, - { 0x4BB9, 53340 }, - { 0x4BBA, 53259 }, - { 0x4BBB, 53313 }, - { 0x4BBC, 53280 }, - { 0x4BBD, 53283 }, - { 0x4BBE, 53337 }, - { 0x4BBF, 53253 }, - { 0x4BC0, 53304 }, - { 0x4BC1, 53277 }, - { 0x4BC2, 53346 }, - { 0x4BC3, 53301 }, - { 0x4BC4, 53286 }, - { 0x4BC5, 53274 }, - { 0x4BC6, 53298 }, - { 0x4BC7, 53289 }, - { 0x4BC8, 53265 }, - { 0x4BC9, 53190 }, - { 0x4BCA, 53198 }, - { 0x4BCB, 53226 }, - { 0x4BCC, 53206 }, - { 0x4BCD, 53234 }, - { 0x4BCE, 53194 }, - { 0x4BCF, 53214 }, - { 0x4BD0, 53202 }, - { 0x4BD1, 53218 }, - { 0x4BD2, 53230 }, - { 0x4BD3, 53143 }, - { 0x4BD4, 53146 }, - { 0x4BD5, 53355 }, - { 0x4BD6, 53357 }, - { 0x4BD7, 53178 }, - { 0x4BD8, 53160 }, - { 0x4BD9, 53166 }, - { 0x4BDA, 53187 }, - { 0x4BDB, 53172 }, - { 0x4BDC, 53169 }, - { 0x4BDD, 53163 }, - { 0x4BDE, 53184 }, - { 0x4BDF, 53181 }, - { 0x4BE0, 53175 }, - { 0x4BE1, 53359 }, - { 0x4BE2, 53158 }, - { 0x4BE3, 53238 }, - { 0x4BE4, 53362 }, - { 0x4BE5, 53325 }, - { 0x4BE6, 53210 }, - { 0x4BE7, 53222 }, - { 0x4BE8, 53295 }, - { 0x4BE9, 106426 }, - { 0x4BEA, 106432 }, - { 0x4BEB, 106438 }, - { 0x4BEC, 106429 }, - { 0x4BED, 106435 }, - { 0x4BEE, 106459 }, - { 0x4BEF, 106504 }, - { 0x4BF0, 106450 }, - { 0x4BF1, 106498 }, - { 0x4BF2, 106444 }, - { 0x4BF3, 106489 }, - { 0x4BF4, 106456 }, - { 0x4BF5, 106501 }, - { 0x4BF6, 106510 }, - { 0x4BF7, 106522 }, - { 0x4BF8, 106528 }, - { 0x4BF9, 106492 }, - { 0x4BFA, 106525 }, - { 0x4BFB, 106507 }, - { 0x4BFC, 106480 }, - { 0x4BFD, 106519 }, - { 0x4BFE, 106447 }, - { 0x4BFF, 106495 }, - { 0x4C00, 106468 }, - { 0x4C01, 106471 }, - { 0x4C02, 106513 }, - { 0x4C03, 106441 }, - { 0x4C04, 106486 }, - { 0x4C05, 106465 }, - { 0x4C06, 106474 }, - { 0x4C07, 106462 }, - { 0x4C08, 106483 }, - { 0x4C09, 106477 }, - { 0x4C0A, 106453 }, - { 0x4C0B, 106516 }, - { 0x4C0C, 106423 }, - { 0x4C0D, 106537 }, - { 0x4C0E, 106531 }, - { 0x4C0F, 106534 }, - { 0x4C10, 78806 }, - { 0x4C11, 78796 }, - { 0x4C12, 78793 }, - { 0x4C13, 78923 }, - { 0x4C14, 78938 }, - { 0x4C15, 78929 }, - { 0x4C16, 78962 }, - { 0x4C17, 78935 }, - { 0x4C18, 78992 }, - { 0x4C19, 79059 }, - { 0x4C1A, 79067 }, - { 0x4C1B, 79055 }, - { 0x4C1C, 79063 }, - { 0x4C1D, 78926 }, - { 0x4C1E, 78941 }, - { 0x4C1F, 78932 }, - { 0x4C20, 78944 }, - { 0x4C21, 78968 }, - { 0x4C22, 79019 }, - { 0x4C23, 78956 }, - { 0x4C24, 79013 }, - { 0x4C25, 79025 }, - { 0x4C26, 78950 }, - { 0x4C27, 79004 }, - { 0x4C28, 78965 }, - { 0x4C29, 79016 }, - { 0x4C2A, 79031 }, - { 0x4C2B, 79046 }, - { 0x4C2C, 79052 }, - { 0x4C2D, 79007 }, - { 0x4C2E, 79049 }, - { 0x4C2F, 79028 }, - { 0x4C30, 78989 }, - { 0x4C31, 79043 }, - { 0x4C32, 78953 }, - { 0x4C33, 79010 }, - { 0x4C34, 78977 }, - { 0x4C35, 78980 }, - { 0x4C36, 79034 }, - { 0x4C37, 78947 }, - { 0x4C38, 79001 }, - { 0x4C39, 78974 }, - { 0x4C3A, 78998 }, - { 0x4C3B, 78983 }, - { 0x4C3C, 78971 }, - { 0x4C3D, 79022 }, - { 0x4C3E, 78995 }, - { 0x4C3F, 79037 }, - { 0x4C40, 79040 }, - { 0x4C41, 78986 }, - { 0x4C42, 78959 }, - { 0x4C43, 78871 }, - { 0x4C44, 78859 }, - { 0x4C45, 78883 }, - { 0x4C46, 78867 }, - { 0x4C47, 78887 }, - { 0x4C48, 78896 }, - { 0x4C49, 78906 }, - { 0x4C4A, 78891 }, - { 0x4C4B, 78901 }, - { 0x4C4C, 78855 }, - { 0x4C4D, 78875 }, - { 0x4C4E, 78863 }, - { 0x4C4F, 78879 }, - { 0x4C50, 78787 }, - { 0x4C51, 78799 }, - { 0x4C52, 78809 }, - { 0x4C53, 78812 }, - { 0x4C54, 78780 }, - { 0x4C55, 78815 }, - { 0x4C56, 78920 }, - { 0x4C57, 79084 }, - { 0x4C58, 79080 }, - { 0x4C59, 79071 }, - { 0x4C5A, 78784 }, - { 0x4C5B, 78916 }, - { 0x4C5C, 78847 }, - { 0x4C5D, 78852 }, - { 0x4C5E, 78911 }, - { 0x4C5F, 78802 }, - { 0x4C60, 78835 }, - { 0x4C61, 78817 }, - { 0x4C62, 78823 }, - { 0x4C63, 78844 }, - { 0x4C64, 78829 }, - { 0x4C65, 78826 }, - { 0x4C66, 78820 }, - { 0x4C67, 78841 }, - { 0x4C68, 78838 }, - { 0x4C69, 78832 }, - { 0x4C6A, 78782 }, - { 0x4C6B, 78790 }, - { 0x4C6C, 79082 }, - { 0x4C6D, 79087 }, - { 0x4C6E, 79074 }, - { 0x4C6F, 79077 }, - { 0x4C70, 79976 }, - { 0x4C71, 79984 }, - { 0x4C72, 80008 }, - { 0x4C73, 79992 }, - { 0x4C74, 79988 }, - { 0x4C75, 79980 }, - { 0x4C76, 80004 }, - { 0x4C77, 80000 }, - { 0x4C78, 79996 }, - { 0x4C79, 80022 }, - { 0x4C7A, 80050 }, - { 0x4C7B, 80046 }, - { 0x4C7C, 80030 }, - { 0x4C7D, 80026 }, - { 0x4C7E, 80034 }, - { 0x4C7F, 80054 }, - { 0x4C80, 80038 }, - { 0x4C81, 80042 }, - { 0x4C82, 80012 }, - { 0x4C83, 80017 }, - { 0x4C84, 60397 }, - { 0x4C85, 60412 }, - { 0x4C86, 60403 }, - { 0x4C87, 60409 }, - { 0x4C88, 60400 }, - { 0x4C89, 60415 }, - { 0x4C8A, 60406 }, - { 0x4C8B, 60418 }, - { 0x4C8C, 60439 }, - { 0x4C8D, 60496 }, - { 0x4C8E, 60430 }, - { 0x4C8F, 60487 }, - { 0x4C90, 60490 }, - { 0x4C91, 60502 }, - { 0x4C92, 60424 }, - { 0x4C93, 60478 }, - { 0x4C94, 60436 }, - { 0x4C95, 60493 }, - { 0x4C96, 60508 }, - { 0x4C97, 60517 }, - { 0x4C98, 60526 }, - { 0x4C99, 60481 }, - { 0x4C9A, 60523 }, - { 0x4C9B, 60505 }, - { 0x4C9C, 60463 }, - { 0x4C9D, 60514 }, - { 0x4C9E, 60427 }, - { 0x4C9F, 60520 }, - { 0x4CA0, 60484 }, - { 0x4CA1, 60448 }, - { 0x4CA2, 60451 }, - { 0x4CA3, 60511 }, - { 0x4CA4, 60421 }, - { 0x4CA5, 60472 }, - { 0x4CA6, 60475 }, - { 0x4CA7, 60445 }, - { 0x4CA8, 60469 }, - { 0x4CA9, 60457 }, - { 0x4CAA, 60442 }, - { 0x4CAB, 60466 }, - { 0x4CAC, 60460 }, - { 0x4CAD, 60433 }, - { 0x4CAE, 60499 }, - { 0x4CAF, 60369 }, - { 0x4CB0, 60357 }, - { 0x4CB1, 60381 }, - { 0x4CB2, 60365 }, - { 0x4CB3, 60353 }, - { 0x4CB4, 60373 }, - { 0x4CB5, 60361 }, - { 0x4CB6, 60377 }, - { 0x4CB7, 60345 }, - { 0x4CB8, 60342 }, - { 0x4CB9, 60333 }, - { 0x4CBA, 60339 }, - { 0x4CBB, 60351 }, - { 0x4CBC, 60390 }, - { 0x4CBD, 60348 }, - { 0x4CBE, 60533 }, - { 0x4CBF, 60393 }, - { 0x4CC0, 60536 }, - { 0x4CC1, 60336 }, - { 0x4CC2, 60454 }, - { 0x4CC3, 60529 }, - { 0x4CC4, 60385 }, - { 0x4CC5, 75237 }, - { 0x4CC6, 75243 }, - { 0x4CC7, 75246 }, - { 0x4CC8, 75240 }, - { 0x4CC9, 75267 }, - { 0x4CCA, 75315 }, - { 0x4CCB, 75258 }, - { 0x4CCC, 75309 }, - { 0x4CCD, 75252 }, - { 0x4CCE, 75300 }, - { 0x4CCF, 75264 }, - { 0x4CD0, 75312 }, - { 0x4CD1, 75321 }, - { 0x4CD2, 75336 }, - { 0x4CD3, 75345 }, - { 0x4CD4, 75303 }, - { 0x4CD5, 75339 }, - { 0x4CD6, 75342 }, - { 0x4CD7, 75318 }, - { 0x4CD8, 75288 }, - { 0x4CD9, 75333 }, - { 0x4CDA, 75255 }, - { 0x4CDB, 75306 }, - { 0x4CDC, 75276 }, - { 0x4CDD, 75279 }, - { 0x4CDE, 75324 }, - { 0x4CDF, 75249 }, - { 0x4CE0, 75297 }, - { 0x4CE1, 75273 }, - { 0x4CE2, 75294 }, - { 0x4CE3, 75282 }, - { 0x4CE4, 75270 }, - { 0x4CE5, 75291 }, - { 0x4CE6, 75285 }, - { 0x4CE7, 75261 }, - { 0x4CE8, 75330 }, - { 0x4CE9, 75327 }, - { 0x4CEA, 75348 }, - { 0x4CEB, 125441 }, - { 0x4CEC, 125456 }, - { 0x4CED, 125447 }, - { 0x4CEE, 125480 }, - { 0x4CEF, 125453 }, - { 0x4CF0, 125510 }, - { 0x4CF1, 125444 }, - { 0x4CF2, 125459 }, - { 0x4CF3, 125450 }, - { 0x4CF4, 125462 }, - { 0x4CF5, 125486 }, - { 0x4CF6, 125546 }, - { 0x4CF7, 125474 }, - { 0x4CF8, 125534 }, - { 0x4CF9, 125537 }, - { 0x4CFA, 125549 }, - { 0x4CFB, 125468 }, - { 0x4CFC, 125525 }, - { 0x4CFD, 125483 }, - { 0x4CFE, 125543 }, - { 0x4CFF, 125540 }, - { 0x4D00, 125555 }, - { 0x4D01, 125570 }, - { 0x4D02, 125579 }, - { 0x4D03, 125528 }, - { 0x4D04, 125573 }, - { 0x4D05, 125561 }, - { 0x4D06, 125576 }, - { 0x4D07, 125552 }, - { 0x4D08, 125507 }, - { 0x4D09, 125567 }, - { 0x4D0A, 125471 }, - { 0x4D0B, 125531 }, - { 0x4D0C, 125495 }, - { 0x4D0D, 125498 }, - { 0x4D0E, 125558 }, - { 0x4D0F, 125465 }, - { 0x4D10, 125519 }, - { 0x4D11, 125522 }, - { 0x4D12, 125492 }, - { 0x4D13, 125516 }, - { 0x4D14, 125501 }, - { 0x4D15, 125489 }, - { 0x4D16, 125513 }, - { 0x4D17, 125564 }, - { 0x4D18, 125504 }, - { 0x4D19, 125477 }, - { 0x4D1A, 125372 }, - { 0x4D1B, 125421 }, - { 0x4D1C, 125409 }, - { 0x4D1D, 125433 }, - { 0x4D1E, 125417 }, - { 0x4D1F, 125437 }, - { 0x4D20, 125405 }, - { 0x4D21, 125425 }, - { 0x4D22, 125413 }, - { 0x4D23, 125429 }, - { 0x4D24, 125366 }, - { 0x4D25, 125369 }, - { 0x4D26, 125393 }, - { 0x4D27, 125375 }, - { 0x4D28, 125381 }, - { 0x4D29, 125402 }, - { 0x4D2A, 125387 }, - { 0x4D2B, 125384 }, - { 0x4D2C, 125378 }, - { 0x4D2D, 125399 }, - { 0x4D2E, 125396 }, - { 0x4D2F, 125390 }, - { 0x4D30, 73318 }, - { 0x4D31, 73323 }, - { 0x4D32, 73312 }, - { 0x4D33, 73309 }, - { 0x4D34, 73382 }, - { 0x4D35, 73391 }, - { 0x4D36, 73385 }, - { 0x4D37, 73418 }, - { 0x4D38, 73388 }, - { 0x4D39, 73451 }, - { 0x4D3A, 73527 }, - { 0x4D3B, 73523 }, - { 0x4D3C, 73409 }, - { 0x4D3D, 73394 }, - { 0x4D3E, 73436 }, - { 0x4D3F, 73397 }, - { 0x4D40, 73424 }, - { 0x4D41, 73478 }, - { 0x4D42, 73412 }, - { 0x4D43, 73472 }, - { 0x4D44, 73484 }, - { 0x4D45, 73403 }, - { 0x4D46, 73463 }, - { 0x4D47, 73421 }, - { 0x4D48, 73475 }, - { 0x4D49, 73490 }, - { 0x4D4A, 73505 }, - { 0x4D4B, 73511 }, - { 0x4D4C, 73466 }, - { 0x4D4D, 73508 }, - { 0x4D4E, 73487 }, - { 0x4D4F, 73448 }, - { 0x4D50, 73502 }, - { 0x4D51, 73406 }, - { 0x4D52, 73469 }, - { 0x4D53, 73433 }, - { 0x4D54, 73439 }, - { 0x4D55, 73493 }, - { 0x4D56, 73400 }, - { 0x4D57, 73460 }, - { 0x4D58, 73430 }, - { 0x4D59, 73457 }, - { 0x4D5A, 73442 }, - { 0x4D5B, 73427 }, - { 0x4D5C, 73481 }, - { 0x4D5D, 73454 }, - { 0x4D5E, 73496 }, - { 0x4D5F, 73499 }, - { 0x4D60, 73445 }, - { 0x4D61, 73415 }, - { 0x4D62, 116457 }, - { 0x4D63, 73300 }, - { 0x4D64, 73315 }, - { 0x4D65, 73334 }, - { 0x4D66, 73326 }, - { 0x4D67, 73350 }, - { 0x4D68, 73330 }, - { 0x4D69, 73358 }, - { 0x4D6A, 73367 }, - { 0x4D6B, 73377 }, - { 0x4D6C, 73346 }, - { 0x4D6D, 73338 }, - { 0x4D6E, 73354 }, - { 0x4D6F, 73342 }, - { 0x4D70, 73306 }, - { 0x4D71, 73298 }, - { 0x4D72, 73294 }, - { 0x4D73, 73303 }, - { 0x4D74, 73519 }, - { 0x4D75, 73514 }, - { 0x4D76, 73535 }, - { 0x4D77, 73531 }, - { 0x4D78, 73362 }, - { 0x4D79, 73372 }, - { 0x4D7A, 117156 }, - { 0x4D7B, 117136 }, - { 0x4D7C, 117144 }, - { 0x4D7D, 117160 }, - { 0x4D7E, 117152 }, - { 0x4D7F, 117148 }, - { 0x4D80, 117140 }, - { 0x4D81, 117164 }, - { 0x4D82, 117168 }, - { 0x4D83, 117172 }, - { 0x4D84, 117180 }, - { 0x4D85, 117176 }, - { 0x4D86, 144644 }, - { 0x4D87, 144653 }, - { 0x4D88, 144647 }, - { 0x4D89, 144680 }, - { 0x4D8A, 144650 }, - { 0x4D8B, 144713 }, - { 0x4D8C, 144786 }, - { 0x4D8D, 144794 }, - { 0x4D8E, 144782 }, - { 0x4D8F, 144790 }, - { 0x4D90, 144671 }, - { 0x4D91, 144656 }, - { 0x4D92, 144698 }, - { 0x4D93, 144659 }, - { 0x4D94, 144686 }, - { 0x4D95, 144740 }, - { 0x4D96, 144674 }, - { 0x4D97, 144734 }, - { 0x4D98, 144746 }, - { 0x4D99, 144665 }, - { 0x4D9A, 144725 }, - { 0x4D9B, 144683 }, - { 0x4D9C, 144737 }, - { 0x4D9D, 144752 }, - { 0x4D9E, 144770 }, - { 0x4D9F, 144779 }, - { 0x4DA0, 144728 }, - { 0x4DA1, 144773 }, - { 0x4DA2, 144749 }, - { 0x4DA3, 144710 }, - { 0x4DA4, 144767 }, - { 0x4DA5, 144668 }, - { 0x4DA6, 144731 }, - { 0x4DA7, 144695 }, - { 0x4DA8, 144701 }, - { 0x4DA9, 144755 }, - { 0x4DAA, 144662 }, - { 0x4DAB, 144722 }, - { 0x4DAC, 144692 }, - { 0x4DAD, 144719 }, - { 0x4DAE, 144704 }, - { 0x4DAF, 144689 }, - { 0x4DB0, 144716 }, - { 0x4DB1, 144761 }, - { 0x4DB2, 144764 }, - { 0x4DB3, 144707 }, - { 0x4DB4, 144677 }, - { 0x4DB5, 144743 }, - { 0x4DB6, 144758 }, - { 0x4DB7, 144776 }, - { 0x4DB8, 144570 }, - { 0x4DB9, 144593 }, - { 0x4DBA, 144585 }, - { 0x4DBB, 144609 }, - { 0x4DBC, 144589 }, - { 0x4DBD, 144617 }, - { 0x4DBE, 144626 }, - { 0x4DBF, 144636 }, - { 0x4DC0, 144621 }, - { 0x4DC1, 144631 }, - { 0x4DC2, 144605 }, - { 0x4DC3, 144597 }, - { 0x4DC4, 144613 }, - { 0x4DC5, 144601 }, - { 0x4DC6, 144538 }, - { 0x4DC7, 144553 }, - { 0x4DC8, 144567 }, - { 0x4DC9, 144564 }, - { 0x4DCA, 144561 }, - { 0x4DCB, 144557 }, - { 0x4DCC, 144798 }, - { 0x4DCD, 144575 }, - { 0x4DCE, 144800 }, - { 0x4DCF, 144546 }, - { 0x4DD0, 144573 }, - { 0x4DD1, 144641 }, - { 0x4DD2, 144542 }, - { 0x4DD3, 144549 }, - { 0x4DD4, 144577 }, - { 0x4DD5, 144581 }, - { 0x4DD6, 16335 }, - { 0x4DD7, 16350 }, - { 0x4DD8, 16341 }, - { 0x4DD9, 16374 }, - { 0x4DDA, 16347 }, - { 0x4DDB, 16404 }, - { 0x4DDC, 16490 }, - { 0x4DDD, 16498 }, - { 0x4DDE, 16486 }, - { 0x4DDF, 16494 }, - { 0x4DE0, 16338 }, - { 0x4DE1, 16353 }, - { 0x4DE2, 16344 }, - { 0x4DE3, 16356 }, - { 0x4DE4, 16380 }, - { 0x4DE5, 16431 }, - { 0x4DE6, 16368 }, - { 0x4DE7, 16425 }, - { 0x4DE8, 16440 }, - { 0x4DE9, 16473 }, - { 0x4DEA, 16362 }, - { 0x4DEB, 16416 }, - { 0x4DEC, 16377 }, - { 0x4DED, 16428 }, - { 0x4DEE, 16449 }, - { 0x4DEF, 16476 }, - { 0x4DF0, 16467 }, - { 0x4DF1, 16479 }, - { 0x4DF2, 16419 }, - { 0x4DF3, 16470 }, - { 0x4DF4, 16446 }, - { 0x4DF5, 16401 }, - { 0x4DF6, 16464 }, - { 0x4DF7, 16365 }, - { 0x4DF8, 16422 }, - { 0x4DF9, 16389 }, - { 0x4DFA, 16443 }, - { 0x4DFB, 16392 }, - { 0x4DFC, 16452 }, - { 0x4DFD, 16359 }, - { 0x4DFE, 16413 }, - { 0x4DFF, 16386 }, - { 0x4E00, 16437 }, - { 0x4E01, 16410 }, - { 0x4E02, 16395 }, - { 0x4E03, 16455 }, - { 0x4E04, 16383 }, - { 0x4E05, 16434 }, - { 0x4E06, 16407 }, - { 0x4E07, 16458 }, - { 0x4E08, 16461 }, - { 0x4E09, 16398 }, - { 0x4E0A, 16371 }, - { 0x4E0B, 16289 }, - { 0x4E0C, 16277 }, - { 0x4E0D, 16301 }, - { 0x4E0E, 16285 }, - { 0x4E0F, 16305 }, - { 0x4E10, 16314 }, - { 0x4E11, 16324 }, - { 0x4E12, 16309 }, - { 0x4E13, 16319 }, - { 0x4E14, 16273 }, - { 0x4E15, 16293 }, - { 0x4E16, 16281 }, - { 0x4E17, 16297 }, - { 0x4E18, 16218 }, - { 0x4E19, 16230 }, - { 0x4E1A, 16224 }, - { 0x4E1B, 16221 }, - { 0x4E1C, 16215 }, - { 0x4E1D, 16227 }, - { 0x4E1E, 16211 }, - { 0x4E1F, 16206 }, - { 0x4E20, 16505 }, - { 0x4E21, 16241 }, - { 0x4E22, 16332 }, - { 0x4E23, 16239 }, - { 0x4E24, 16208 }, - { 0x4E25, 16513 }, - { 0x4E26, 16261 }, - { 0x4E27, 16243 }, - { 0x4E28, 16249 }, - { 0x4E29, 16270 }, - { 0x4E2A, 16255 }, - { 0x4E2B, 16252 }, - { 0x4E2C, 16246 }, - { 0x4E2D, 16267 }, - { 0x4E2E, 16264 }, - { 0x4E2F, 16258 }, - { 0x4E30, 16329 }, - { 0x4E31, 16510 }, - { 0x4E32, 16507 }, - { 0x4E33, 16502 }, - { 0x4E34, 16482 }, - { 0x4E35, 16233 }, - { 0x4E36, 16236 }, - { 0x4E37, 82300 }, - { 0x4E38, 82418 }, - { 0x4E39, 82433 }, - { 0x4E3A, 82424 }, - { 0x4E3B, 82457 }, - { 0x4E3C, 82430 }, - { 0x4E3D, 82487 }, - { 0x4E3E, 82551 }, - { 0x4E3F, 82559 }, - { 0x4E40, 82547 }, - { 0x4E41, 82555 }, - { 0x4E42, 82421 }, - { 0x4E43, 82436 }, - { 0x4E44, 82427 }, - { 0x4E45, 82439 }, - { 0x4E46, 82463 }, - { 0x4E47, 82514 }, - { 0x4E48, 82451 }, - { 0x4E49, 82508 }, - { 0x4E4A, 82517 }, - { 0x4E4B, 82445 }, - { 0x4E4C, 82499 }, - { 0x4E4D, 82460 }, - { 0x4E4E, 82511 }, - { 0x4E4F, 82523 }, - { 0x4E50, 82538 }, - { 0x4E51, 82544 }, - { 0x4E52, 82502 }, - { 0x4E53, 82541 }, - { 0x4E54, 82520 }, - { 0x4E55, 82484 }, - { 0x4E56, 82535 }, - { 0x4E57, 82448 }, - { 0x4E58, 82505 }, - { 0x4E59, 82472 }, - { 0x4E5A, 82475 }, - { 0x4E5B, 82526 }, - { 0x4E5C, 82442 }, - { 0x4E5D, 82496 }, - { 0x4E5E, 82469 }, - { 0x4E5F, 82493 }, - { 0x4E60, 82478 }, - { 0x4E61, 82466 }, - { 0x4E62, 82490 }, - { 0x4E63, 82529 }, - { 0x4E64, 82532 }, - { 0x4E65, 82481 }, - { 0x4E66, 82454 }, - { 0x4E67, 82368 }, - { 0x4E68, 82356 }, - { 0x4E69, 82380 }, - { 0x4E6A, 82364 }, - { 0x4E6B, 82384 }, - { 0x4E6C, 82403 }, - { 0x4E6D, 82413 }, - { 0x4E6E, 82398 }, - { 0x4E6F, 82408 }, - { 0x4E70, 82352 }, - { 0x4E71, 82388 }, - { 0x4E72, 82372 }, - { 0x4E73, 82360 }, - { 0x4E74, 82393 }, - { 0x4E75, 82376 }, - { 0x4E76, 82317 }, - { 0x4E77, 82311 }, - { 0x4E78, 82308 }, - { 0x4E79, 82305 }, - { 0x4E7A, 82302 }, - { 0x4E7B, 82314 }, - { 0x4E7C, 82350 }, - { 0x4E7D, 82563 }, - { 0x4E7E, 82298 }, - { 0x4E7F, 82338 }, - { 0x4E80, 82320 }, - { 0x4E81, 82326 }, - { 0x4E82, 82347 }, - { 0x4E83, 82332 }, - { 0x4E84, 82329 }, - { 0x4E85, 82323 }, - { 0x4E86, 82344 }, - { 0x4E87, 82341 }, - { 0x4E88, 82335 }, - { 0x4E89, 79325 }, - { 0x4E8A, 79340 }, - { 0x4E8B, 79331 }, - { 0x4E8C, 79364 }, - { 0x4E8D, 79337 }, - { 0x4E8E, 79394 }, - { 0x4E8F, 79458 }, - { 0x4E90, 79466 }, - { 0x4E91, 79454 }, - { 0x4E92, 79462 }, - { 0x4E93, 79328 }, - { 0x4E94, 79343 }, - { 0x4E95, 79334 }, - { 0x4E96, 79346 }, - { 0x4E97, 79370 }, - { 0x4E98, 79421 }, - { 0x4E99, 79358 }, - { 0x4E9A, 79415 }, - { 0x4E9B, 79424 }, - { 0x4E9C, 79352 }, - { 0x4E9D, 79406 }, - { 0x4E9E, 79367 }, - { 0x4E9F, 79418 }, - { 0x4EA0, 79430 }, - { 0x4EA1, 79445 }, - { 0x4EA2, 79451 }, - { 0x4EA3, 79409 }, - { 0x4EA4, 79448 }, - { 0x4EA5, 79427 }, - { 0x4EA6, 79391 }, - { 0x4EA7, 79442 }, - { 0x4EA8, 79355 }, - { 0x4EA9, 79412 }, - { 0x4EAA, 79379 }, - { 0x4EAB, 79382 }, - { 0x4EAC, 79433 }, - { 0x4EAD, 79349 }, - { 0x4EAE, 79403 }, - { 0x4EAF, 79376 }, - { 0x4EB0, 79400 }, - { 0x4EB1, 79385 }, - { 0x4EB2, 79373 }, - { 0x4EB3, 79397 }, - { 0x4EB4, 79436 }, - { 0x4EB5, 79439 }, - { 0x4EB6, 79388 }, - { 0x4EB7, 79361 }, - { 0x4EB8, 79282 }, - { 0x4EB9, 79270 }, - { 0x4EBA, 79294 }, - { 0x4EBB, 79278 }, - { 0x4EBC, 79298 }, - { 0x4EBD, 79302 }, - { 0x4EBE, 79307 }, - { 0x4EBF, 79266 }, - { 0x4EC0, 79286 }, - { 0x4EC1, 79274 }, - { 0x4EC2, 79290 }, - { 0x4EC3, 79261 }, - { 0x4EC4, 79258 }, - { 0x4EC5, 79255 }, - { 0x4EC6, 79249 }, - { 0x4EC7, 79246 }, - { 0x4EC8, 79252 }, - { 0x4EC9, 79264 }, - { 0x4ECA, 79322 }, - { 0x4ECB, 79593 }, - { 0x4ECC, 79590 }, - { 0x4ECD, 79596 }, - { 0x4ECE, 79599 }, - { 0x4ECF, 79602 }, - { 0x4ED0, 79241 }, - { 0x4ED1, 79558 }, - { 0x4ED2, 79550 }, - { 0x4ED3, 79507 }, - { 0x4ED4, 79489 }, - { 0x4ED5, 79498 }, - { 0x4ED6, 79578 }, - { 0x4ED7, 79583 }, - { 0x4ED8, 79515 }, - { 0x4ED9, 79521 }, - { 0x4EDA, 79572 }, - { 0x4EDB, 79566 }, - { 0x4EDC, 79543 }, - { 0x4EDD, 79527 }, - { 0x4EDE, 79535 }, - { 0x4EDF, 79484 }, - { 0x4EE0, 79474 }, - { 0x4EE1, 79479 }, - { 0x4EE2, 79470 }, - { 0x4EE3, 79312 }, - { 0x4EE4, 79317 }, - { 0x4EE5, 16031 }, - { 0x4EE6, 16046 }, - { 0x4EE7, 16037 }, - { 0x4EE8, 16070 }, - { 0x4EE9, 16043 }, - { 0x4EEA, 16100 }, - { 0x4EEB, 16167 }, - { 0x4EEC, 16175 }, - { 0x4EED, 16163 }, - { 0x4EEE, 16171 }, - { 0x4EEF, 16034 }, - { 0x4EF0, 16049 }, - { 0x4EF1, 16040 }, - { 0x4EF2, 16052 }, - { 0x4EF3, 16076 }, - { 0x4EF4, 16127 }, - { 0x4EF5, 16064 }, - { 0x4EF6, 16121 }, - { 0x4EF7, 16133 }, - { 0x4EF8, 16058 }, - { 0x4EF9, 16112 }, - { 0x4EFA, 16073 }, - { 0x4EFB, 16124 }, - { 0x4EFC, 16139 }, - { 0x4EFD, 16154 }, - { 0x4EFE, 16160 }, - { 0x4EFF, 16115 }, - { 0x4F00, 16157 }, - { 0x4F01, 16136 }, - { 0x4F02, 16097 }, - { 0x4F03, 16151 }, - { 0x4F04, 16061 }, - { 0x4F05, 16118 }, - { 0x4F06, 16085 }, - { 0x4F07, 16088 }, - { 0x4F08, 16142 }, - { 0x4F09, 16055 }, - { 0x4F0A, 16109 }, - { 0x4F0B, 16082 }, - { 0x4F0C, 16106 }, - { 0x4F0D, 16091 }, - { 0x4F0E, 16079 }, - { 0x4F0F, 16103 }, - { 0x4F10, 16145 }, - { 0x4F11, 16148 }, - { 0x4F12, 16094 }, - { 0x4F13, 16067 }, - { 0x4F14, 16130 }, - { 0x4F15, 15988 }, - { 0x4F16, 15976 }, - { 0x4F17, 16000 }, - { 0x4F18, 15984 }, - { 0x4F19, 16004 }, - { 0x4F1A, 16013 }, - { 0x4F1B, 16023 }, - { 0x4F1C, 16008 }, - { 0x4F1D, 16018 }, - { 0x4F1E, 15972 }, - { 0x4F1F, 15992 }, - { 0x4F20, 15980 }, - { 0x4F21, 15996 }, - { 0x4F22, 15934 }, - { 0x4F23, 15931 }, - { 0x4F24, 15928 }, - { 0x4F25, 15937 }, - { 0x4F26, 15940 }, - { 0x4F27, 16028 }, - { 0x4F28, 16179 }, - { 0x4F29, 15925 }, - { 0x4F2A, 15960 }, - { 0x4F2B, 15942 }, - { 0x4F2C, 15948 }, - { 0x4F2D, 15969 }, - { 0x4F2E, 15954 }, - { 0x4F2F, 15951 }, - { 0x4F30, 15945 }, - { 0x4F31, 15966 }, - { 0x4F32, 15963 }, - { 0x4F33, 15957 }, - { 0x4F34, 126725 }, - { 0x4F35, 127368 }, - { 0x4F36, 126780 }, - { 0x4F37, 127356 }, - { 0x4F38, 126720 }, - { 0x4F39, 127377 }, - { 0x4F3A, 127371 }, - { 0x4F3B, 127384 }, - { 0x4F3C, 127387 }, - { 0x4F3D, 126763 }, - { 0x4F3E, 126772 }, - { 0x4F3F, 126766 }, - { 0x4F40, 127361 }, - { 0x4F41, 41756 }, - { 0x4F42, 41771 }, - { 0x4F43, 41762 }, - { 0x4F44, 41795 }, - { 0x4F45, 41768 }, - { 0x4F46, 41825 }, - { 0x4F47, 41759 }, - { 0x4F48, 41774 }, - { 0x4F49, 41765 }, - { 0x4F4A, 41777 }, - { 0x4F4B, 41801 }, - { 0x4F4C, 41852 }, - { 0x4F4D, 41789 }, - { 0x4F4E, 41846 }, - { 0x4F4F, 41855 }, - { 0x4F50, 41783 }, - { 0x4F51, 41837 }, - { 0x4F52, 41798 }, - { 0x4F53, 41849 }, - { 0x4F54, 41861 }, - { 0x4F55, 41876 }, - { 0x4F56, 41882 }, - { 0x4F57, 41840 }, - { 0x4F58, 41879 }, - { 0x4F59, 41858 }, - { 0x4F5A, 41822 }, - { 0x4F5B, 41873 }, - { 0x4F5C, 41786 }, - { 0x4F5D, 41843 }, - { 0x4F5E, 41810 }, - { 0x4F5F, 41813 }, - { 0x4F60, 41864 }, - { 0x4F61, 41780 }, - { 0x4F62, 41834 }, - { 0x4F63, 41807 }, - { 0x4F64, 41831 }, - { 0x4F65, 41816 }, - { 0x4F66, 41804 }, - { 0x4F67, 41828 }, - { 0x4F68, 41870 }, - { 0x4F69, 41819 }, - { 0x4F6A, 41792 }, - { 0x4F6B, 41867 }, - { 0x4F6C, 41687 }, - { 0x4F6D, 41684 }, - { 0x4F6E, 41736 }, - { 0x4F6F, 41724 }, - { 0x4F70, 41748 }, - { 0x4F71, 41732 }, - { 0x4F72, 41752 }, - { 0x4F73, 41720 }, - { 0x4F74, 41740 }, - { 0x4F75, 41728 }, - { 0x4F76, 41744 }, - { 0x4F77, 41681 }, - { 0x4F78, 41678 }, - { 0x4F79, 41885 }, - { 0x4F7A, 41889 }, - { 0x4F7B, 41708 }, - { 0x4F7C, 41690 }, - { 0x4F7D, 41696 }, - { 0x4F7E, 41717 }, - { 0x4F7F, 41702 }, - { 0x4F80, 41699 }, - { 0x4F81, 41693 }, - { 0x4F82, 41714 }, - { 0x4F83, 41711 }, - { 0x4F84, 41705 }, - { 0x4F85, 76399 }, - { 0x4F86, 76375 }, - { 0x4F87, 76383 }, - { 0x4F88, 76411 }, - { 0x4F89, 76391 }, - { 0x4F8A, 76387 }, - { 0x4F8B, 76379 }, - { 0x4F8C, 76407 }, - { 0x4F8D, 76403 }, - { 0x4F8E, 76395 }, - { 0x4F8F, 77323 }, - { 0x4F90, 77287 }, - { 0x4F91, 77299 }, - { 0x4F92, 77341 }, - { 0x4F93, 77311 }, - { 0x4F94, 77305 }, - { 0x4F95, 77293 }, - { 0x4F96, 77335 }, - { 0x4F97, 77329 }, - { 0x4F98, 77317 }, - { 0x4F99, 13302 }, - { 0x4F9A, 13344 }, - { 0x4F9B, 13350 }, - { 0x4F9C, 13311 }, - { 0x4F9D, 13323 }, - { 0x4F9E, 13382 }, - { 0x4F9F, 13314 }, - { 0x4FA0, 13359 }, - { 0x4FA1, 13284 }, - { 0x4FA2, 13308 }, - { 0x4FA3, 13299 }, - { 0x4FA4, 13329 }, - { 0x4FA5, 13362 }, - { 0x4FA6, 13317 }, - { 0x4FA7, 13305 }, - { 0x4FA8, 13320 }, - { 0x4FA9, 13356 }, - { 0x4FAA, 13296 }, - { 0x4FAB, 13281 }, - { 0x4FAC, 13290 }, - { 0x4FAD, 13335 }, - { 0x4FAE, 13293 }, - { 0x4FAF, 13378 }, - { 0x4FB0, 13338 }, - { 0x4FB1, 13326 }, - { 0x4FB2, 13341 }, - { 0x4FB3, 13374 }, - { 0x4FB4, 13395 }, - { 0x4FB5, 13400 }, - { 0x4FB6, 13405 }, - { 0x4FB7, 13237 }, - { 0x4FB8, 13257 }, - { 0x4FB9, 13245 }, - { 0x4FBA, 13273 }, - { 0x4FBB, 13253 }, - { 0x4FBC, 13277 }, - { 0x4FBD, 13241 }, - { 0x4FBE, 13269 }, - { 0x4FBF, 13249 }, - { 0x4FC0, 13261 }, - { 0x4FC1, 13265 }, - { 0x4FC2, 13201 }, - { 0x4FC3, 13225 }, - { 0x4FC4, 13207 }, - { 0x4FC5, 13213 }, - { 0x4FC6, 13234 }, - { 0x4FC7, 13219 }, - { 0x4FC8, 13216 }, - { 0x4FC9, 13210 }, - { 0x4FCA, 13231 }, - { 0x4FCB, 13228 }, - { 0x4FCC, 13222 }, - { 0x4FCD, 13386 }, - { 0x4FCE, 13389 }, - { 0x4FCF, 13197 }, - { 0x4FD0, 13204 }, - { 0x4FD1, 13194 }, - { 0x4FD2, 13392 }, - { 0x4FD3, 13287 }, - { 0x4FD4, 13365 }, - { 0x4FD5, 13371 }, - { 0x4FD6, 13332 }, - { 0x4FD7, 13368 }, - { 0x4FD8, 13353 }, - { 0x4FD9, 13347 }, - { 0x4FDA, 23009 }, - { 0x4FDB, 23024 }, - { 0x4FDC, 23015 }, - { 0x4FDD, 23048 }, - { 0x4FDE, 23021 }, - { 0x4FDF, 23078 }, - { 0x4FE0, 23012 }, - { 0x4FE1, 23027 }, - { 0x4FE2, 23018 }, - { 0x4FE3, 23030 }, - { 0x4FE4, 23054 }, - { 0x4FE5, 23105 }, - { 0x4FE6, 23042 }, - { 0x4FE7, 23099 }, - { 0x4FE8, 23108 }, - { 0x4FE9, 23036 }, - { 0x4FEA, 23090 }, - { 0x4FEB, 23051 }, - { 0x4FEC, 23102 }, - { 0x4FED, 23114 }, - { 0x4FEE, 23132 }, - { 0x4FEF, 23138 }, - { 0x4FF0, 23093 }, - { 0x4FF1, 23135 }, - { 0x4FF2, 23111 }, - { 0x4FF3, 23075 }, - { 0x4FF4, 23129 }, - { 0x4FF5, 23039 }, - { 0x4FF6, 23096 }, - { 0x4FF7, 23063 }, - { 0x4FF8, 23066 }, - { 0x4FF9, 23117 }, - { 0x4FFA, 23033 }, - { 0x4FFB, 23087 }, - { 0x4FFC, 23060 }, - { 0x4FFD, 23084 }, - { 0x4FFE, 23069 }, - { 0x4FFF, 23057 }, - { 0x5000, 23081 }, - { 0x5001, 23123 }, - { 0x5002, 23126 }, - { 0x5003, 23072 }, - { 0x5004, 23045 }, - { 0x5005, 23120 }, - { 0x5006, 22979 }, - { 0x5007, 22967 }, - { 0x5008, 22991 }, - { 0x5009, 22975 }, - { 0x500A, 22995 }, - { 0x500B, 22999 }, - { 0x500C, 23004 }, - { 0x500D, 22963 }, - { 0x500E, 22983 }, - { 0x500F, 22971 }, - { 0x5010, 22987 }, - { 0x5011, 22960 }, - { 0x5012, 22957 }, - { 0x5013, 22954 }, - { 0x5014, 22951 }, - { 0x5015, 23141 }, - { 0x5016, 69658 }, - { 0x5017, 69518 }, - { 0x5018, 69583 }, - { 0x5019, 69598 }, - { 0x501A, 69588 }, - { 0x501B, 69593 }, - { 0x501C, 69558 }, - { 0x501D, 69578 }, - { 0x501E, 69523 }, - { 0x501F, 69528 }, - { 0x5020, 69603 }, - { 0x5021, 69553 }, - { 0x5022, 69563 }, - { 0x5023, 69613 }, - { 0x5024, 69638 }, - { 0x5025, 69573 }, - { 0x5026, 69608 }, - { 0x5027, 69623 }, - { 0x5028, 69633 }, - { 0x5029, 69663 }, - { 0x502A, 69548 }, - { 0x502B, 69538 }, - { 0x502C, 69533 }, - { 0x502D, 69543 }, - { 0x502E, 69568 }, - { 0x502F, 69643 }, - { 0x5030, 69648 }, - { 0x5031, 69653 }, - { 0x5032, 69618 }, - { 0x5033, 69668 }, - { 0x5034, 69628 }, - { 0x5035, 69673 }, - { 0x5036, 69462 }, - { 0x5037, 69322 }, - { 0x5038, 69387 }, - { 0x5039, 69402 }, - { 0x503A, 69392 }, - { 0x503B, 69397 }, - { 0x503C, 69362 }, - { 0x503D, 69382 }, - { 0x503E, 69327 }, - { 0x503F, 69332 }, - { 0x5040, 69407 }, - { 0x5041, 69357 }, - { 0x5042, 69367 }, - { 0x5043, 69417 }, - { 0x5044, 69442 }, - { 0x5045, 69377 }, - { 0x5046, 69412 }, - { 0x5047, 69427 }, - { 0x5048, 69437 }, - { 0x5049, 69467 }, - { 0x504A, 69352 }, - { 0x504B, 69342 }, - { 0x504C, 69337 }, - { 0x504D, 69347 }, - { 0x504E, 69372 }, - { 0x504F, 69447 }, - { 0x5050, 69452 }, - { 0x5051, 69457 }, - { 0x5052, 69422 }, - { 0x5053, 69472 }, - { 0x5054, 69432 }, - { 0x5055, 69477 }, - { 0x5056, 69306 }, - { 0x5057, 69282 }, - { 0x5058, 69290 }, - { 0x5059, 69318 }, - { 0x505A, 69298 }, - { 0x505B, 69294 }, - { 0x505C, 69286 }, - { 0x505D, 69314 }, - { 0x505E, 69310 }, - { 0x505F, 69302 }, - { 0x5060, 69482 }, - { 0x5061, 69510 }, - { 0x5062, 69506 }, - { 0x5063, 69490 }, - { 0x5064, 69486 }, - { 0x5065, 69494 }, - { 0x5066, 69514 }, - { 0x5067, 69498 }, - { 0x5068, 69502 }, - { 0x5069, 69279 }, - { 0x506A, 22759 }, - { 0x506B, 22779 }, - { 0x506C, 22767 }, - { 0x506D, 22803 }, - { 0x506E, 22775 }, - { 0x506F, 22843 }, - { 0x5070, 22763 }, - { 0x5071, 22771 }, - { 0x5072, 22811 }, - { 0x5073, 22879 }, - { 0x5074, 22795 }, - { 0x5075, 22875 }, - { 0x5076, 22887 }, - { 0x5077, 22787 }, - { 0x5078, 22863 }, - { 0x5079, 22807 }, - { 0x507A, 22895 }, - { 0x507B, 22915 }, - { 0x507C, 22867 }, - { 0x507D, 22923 }, - { 0x507E, 22891 }, - { 0x507F, 22839 }, - { 0x5080, 22911 }, - { 0x5081, 22791 }, - { 0x5082, 22871 }, - { 0x5083, 22823 }, - { 0x5084, 22827 }, - { 0x5085, 22899 }, - { 0x5086, 22783 }, - { 0x5087, 22859 }, - { 0x5088, 22819 }, - { 0x5089, 22851 }, - { 0x508A, 22919 }, - { 0x508B, 22831 }, - { 0x508C, 22815 }, - { 0x508D, 22847 }, - { 0x508E, 22903 }, - { 0x508F, 22907 }, - { 0x5090, 22835 }, - { 0x5091, 22799 }, - { 0x5092, 22883 }, - { 0x5093, 22855 }, - { 0x5094, 22735 }, - { 0x5095, 22720 }, - { 0x5096, 22745 }, - { 0x5097, 22730 }, - { 0x5098, 22750 }, - { 0x5099, 22715 }, - { 0x509A, 22740 }, - { 0x509B, 22725 }, - { 0x509C, 22667 }, - { 0x509D, 22671 }, - { 0x509E, 22663 }, - { 0x509F, 22935 }, - { 0x50A0, 22942 }, - { 0x50A1, 22931 }, - { 0x50A2, 22938 }, - { 0x50A3, 22927 }, - { 0x50A4, 22659 }, - { 0x50A5, 22755 }, - { 0x50A6, 22655 }, - { 0x50A7, 22649 }, - { 0x50A8, 22699 }, - { 0x50A9, 22675 }, - { 0x50AA, 22683 }, - { 0x50AB, 22711 }, - { 0x50AC, 22691 }, - { 0x50AD, 22687 }, - { 0x50AE, 22679 }, - { 0x50AF, 22707 }, - { 0x50B0, 22703 }, - { 0x50B1, 22695 }, - { 0x50B2, 134334 }, - { 0x50B3, 134349 }, - { 0x50B4, 134340 }, - { 0x50B5, 134373 }, - { 0x50B6, 134346 }, - { 0x50B7, 134403 }, - { 0x50B8, 134469 }, - { 0x50B9, 134473 }, - { 0x50BA, 134337 }, - { 0x50BB, 134352 }, - { 0x50BC, 134343 }, - { 0x50BD, 134355 }, - { 0x50BE, 134379 }, - { 0x50BF, 134430 }, - { 0x50C0, 134367 }, - { 0x50C1, 134424 }, - { 0x50C2, 134436 }, - { 0x50C3, 134361 }, - { 0x50C4, 134415 }, - { 0x50C5, 134376 }, - { 0x50C6, 134427 }, - { 0x50C7, 134442 }, - { 0x50C8, 134460 }, - { 0x50C9, 134466 }, - { 0x50CA, 134418 }, - { 0x50CB, 134463 }, - { 0x50CC, 134439 }, - { 0x50CD, 134400 }, - { 0x50CE, 134457 }, - { 0x50CF, 134364 }, - { 0x50D0, 134421 }, - { 0x50D1, 134388 }, - { 0x50D2, 134391 }, - { 0x50D3, 134445 }, - { 0x50D4, 134358 }, - { 0x50D5, 134412 }, - { 0x50D6, 134385 }, - { 0x50D7, 134409 }, - { 0x50D8, 134394 }, - { 0x50D9, 134382 }, - { 0x50DA, 134406 }, - { 0x50DB, 134451 }, - { 0x50DC, 134454 }, - { 0x50DD, 134397 }, - { 0x50DE, 134370 }, - { 0x50DF, 134433 }, - { 0x50E0, 134448 }, - { 0x50E1, 134299 }, - { 0x50E2, 134287 }, - { 0x50E3, 134311 }, - { 0x50E4, 134295 }, - { 0x50E5, 134315 }, - { 0x50E6, 134319 }, - { 0x50E7, 134324 }, - { 0x50E8, 134283 }, - { 0x50E9, 134303 }, - { 0x50EA, 134291 }, - { 0x50EB, 134307 }, - { 0x50EC, 134277 }, - { 0x50ED, 134274 }, - { 0x50EE, 134268 }, - { 0x50EF, 134280 }, - { 0x50F0, 134271 }, - { 0x50F1, 134477 }, - { 0x50F2, 134329 }, - { 0x50F3, 128920 }, - { 0x50F4, 128874 }, - { 0x50F5, 128904 }, - { 0x50F6, 128884 }, - { 0x50F7, 128869 }, - { 0x50F8, 128899 }, - { 0x50F9, 128879 }, - { 0x50FA, 128889 }, - { 0x50FB, 128894 }, - { 0x50FC, 128909 }, - { 0x50FD, 128915 }, - { 0x50FE, 128952 }, - { 0x50FF, 129020 }, - { 0x5100, 128940 }, - { 0x5101, 129016 }, - { 0x5102, 129024 }, - { 0x5103, 128932 }, - { 0x5104, 129000 }, - { 0x5105, 128948 }, - { 0x5106, 129032 }, - { 0x5107, 129056 }, - { 0x5108, 129080 }, - { 0x5109, 129004 }, - { 0x510A, 129064 }, - { 0x510B, 129028 }, - { 0x510C, 128980 }, - { 0x510D, 129048 }, - { 0x510E, 128936 }, - { 0x510F, 129008 }, - { 0x5110, 128964 }, - { 0x5111, 128968 }, - { 0x5112, 129036 }, - { 0x5113, 128928 }, - { 0x5114, 128996 }, - { 0x5115, 128960 }, - { 0x5116, 129052 }, - { 0x5117, 129076 }, - { 0x5118, 129012 }, - { 0x5119, 129068 }, - { 0x511A, 129060 }, - { 0x511B, 128992 }, - { 0x511C, 128924 }, - { 0x511D, 128988 }, - { 0x511E, 128972 }, - { 0x511F, 128956 }, - { 0x5120, 128984 }, - { 0x5121, 129040 }, - { 0x5122, 129044 }, - { 0x5123, 128976 }, - { 0x5124, 128944 }, - { 0x5125, 129072 }, - { 0x5126, 128864 }, - { 0x5127, 128842 }, - { 0x5128, 128854 }, - { 0x5129, 128858 }, - { 0x512A, 128836 }, - { 0x512B, 128850 }, - { 0x512C, 128846 }, - { 0x512D, 129129 }, - { 0x512E, 129124 }, - { 0x512F, 129114 }, - { 0x5130, 129109 }, - { 0x5131, 129119 }, - { 0x5132, 129095 }, - { 0x5133, 129084 }, - { 0x5134, 128827 }, - { 0x5135, 128823 }, - { 0x5136, 128831 }, - { 0x5137, 128818 }, - { 0x5138, 129100 }, - { 0x5139, 129089 }, - { 0x513A, 129106 }, - { 0x513B, 80521 }, - { 0x513C, 80479 }, - { 0x513D, 80503 }, - { 0x513E, 80487 }, - { 0x513F, 80475 }, - { 0x5140, 80483 }, - { 0x5141, 80499 }, - { 0x5142, 80491 }, - { 0x5143, 80495 }, - { 0x5144, 80512 }, - { 0x5145, 80507 }, - { 0x5146, 80517 }, - { 0x5147, 80545 }, - { 0x5148, 80599 }, - { 0x5149, 80536 }, - { 0x514A, 80593 }, - { 0x514B, 80602 }, - { 0x514C, 80530 }, - { 0x514D, 80581 }, - { 0x514E, 80542 }, - { 0x514F, 80596 }, - { 0x5150, 80608 }, - { 0x5151, 80626 }, - { 0x5152, 80641 }, - { 0x5153, 80584 }, - { 0x5154, 80632 }, - { 0x5155, 80605 }, - { 0x5156, 80566 }, - { 0x5157, 80620 }, - { 0x5158, 80533 }, - { 0x5159, 80587 }, - { 0x515A, 80554 }, - { 0x515B, 80557 }, - { 0x515C, 80611 }, - { 0x515D, 80527 }, - { 0x515E, 80578 }, - { 0x515F, 80551 }, - { 0x5160, 80623 }, - { 0x5161, 80638 }, - { 0x5162, 80590 }, - { 0x5163, 80629 }, - { 0x5164, 80575 }, - { 0x5165, 80524 }, - { 0x5166, 80572 }, - { 0x5167, 80560 }, - { 0x5168, 80548 }, - { 0x5169, 80569 }, - { 0x516A, 80614 }, - { 0x516B, 80617 }, - { 0x516C, 80563 }, - { 0x516D, 80539 }, - { 0x516E, 80635 }, - { 0x516F, 80409 }, - { 0x5170, 80412 }, - { 0x5171, 80659 }, - { 0x5172, 80655 }, - { 0x5173, 80667 }, - { 0x5174, 80663 }, - { 0x5175, 80425 }, - { 0x5176, 80430 }, - { 0x5177, 80465 }, - { 0x5178, 80420 }, - { 0x5179, 80445 }, - { 0x517A, 80415 }, - { 0x517B, 80440 }, - { 0x517C, 80450 }, - { 0x517D, 80435 }, - { 0x517E, 80470 }, - { 0x517F, 80455 }, - { 0x5180, 80460 }, - { 0x5181, 80406 }, - { 0x5182, 80403 }, - { 0x5183, 80652 }, - { 0x5184, 80650 }, - { 0x5185, 80396 }, - { 0x5186, 80390 }, - { 0x5187, 80399 }, - { 0x5188, 80393 }, - { 0x5189, 80380 }, - { 0x518A, 80371 }, - { 0x518B, 80364 }, - { 0x518C, 80644 }, - { 0x518D, 80647 }, - { 0x518E, 86332 }, - { 0x518F, 86344 }, - { 0x5190, 86336 }, - { 0x5191, 86348 }, - { 0x5192, 86328 }, - { 0x5193, 86340 }, - { 0x5194, 86356 }, - { 0x5195, 86368 }, - { 0x5196, 86360 }, - { 0x5197, 86372 }, - { 0x5198, 86352 }, - { 0x5199, 86364 }, - { 0x519A, 84777 }, - { 0x519B, 84780 }, - { 0x519C, 84783 }, - { 0x519D, 84774 }, - { 0x519E, 10259 }, - { 0x519F, 10239 }, - { 0x51A0, 10244 }, - { 0x51A1, 10249 }, - { 0x51A2, 10214 }, - { 0x51A3, 10289 }, - { 0x51A4, 10284 }, - { 0x51A5, 10304 }, - { 0x51A6, 10229 }, - { 0x51A7, 10224 }, - { 0x51A8, 10299 }, - { 0x51A9, 10269 }, - { 0x51AA, 10204 }, - { 0x51AB, 10209 }, - { 0x51AC, 10274 }, - { 0x51AD, 10314 }, - { 0x51AE, 10254 }, - { 0x51AF, 10309 }, - { 0x51B0, 10264 }, - { 0x51B1, 10219 }, - { 0x51B2, 10294 }, - { 0x51B3, 10179 }, - { 0x51B4, 10184 }, - { 0x51B5, 10189 }, - { 0x51B6, 10194 }, - { 0x51B7, 10199 }, - { 0x51B8, 10279 }, - { 0x51B9, 10234 }, - { 0x51BA, 10343 }, - { 0x51BB, 10319 }, - { 0x51BC, 10349 }, - { 0x51BD, 10331 }, - { 0x51BE, 10337 }, - { 0x51BF, 10325 }, - { 0x51C0, 10355 }, - { 0x51C1, 10367 }, - { 0x51C2, 10361 }, - { 0x51C3, 10378 }, - { 0x51C4, 10373 }, - { 0x51C5, 10421 }, - { 0x51C6, 10384 }, - { 0x51C7, 10391 }, - { 0x51C8, 10427 }, - { 0x51C9, 10402 }, - { 0x51CA, 10397 }, - { 0x51CB, 10408 }, - { 0x51CC, 10415 }, - { 0x51CD, 10451 }, - { 0x51CE, 10445 }, - { 0x51CF, 10456 }, - { 0x51D0, 10463 }, - { 0x51D1, 10474 }, - { 0x51D2, 10469 }, - { 0x51D3, 10434 }, - { 0x51D4, 10480 }, - { 0x51D5, 10487 }, - { 0x51D6, 10439 }, - { 0x51D7, 129794 }, - { 0x51D8, 129797 }, - { 0x51D9, 129810 }, - { 0x51DA, 129813 }, - { 0x51DB, 129858 }, - { 0x51DC, 129862 }, - { 0x51DD, 129842 }, - { 0x51DE, 129847 }, - { 0x51DF, 129875 }, - { 0x51E0, 129818 }, - { 0x51E1, 81222 }, - { 0x51E2, 81258 }, - { 0x51E3, 81198 }, - { 0x51E4, 81225 }, - { 0x51E5, 81216 }, - { 0x51E6, 81270 }, - { 0x51E7, 81207 }, - { 0x51E8, 81186 }, - { 0x51E9, 81237 }, - { 0x51EA, 81213 }, - { 0x51EB, 81201 }, - { 0x51EC, 81246 }, - { 0x51ED, 81240 }, - { 0x51EE, 81210 }, - { 0x51EF, 81195 }, - { 0x51F0, 81228 }, - { 0x51F1, 81279 }, - { 0x51F2, 81252 }, - { 0x51F3, 81282 }, - { 0x51F4, 81273 }, - { 0x51F5, 81219 }, - { 0x51F6, 81192 }, - { 0x51F7, 81189 }, - { 0x51F8, 81243 }, - { 0x51F9, 81264 }, - { 0x51FA, 81234 }, - { 0x51FB, 81231 }, - { 0x51FC, 81204 }, - { 0x51FD, 81255 }, - { 0x51FE, 81276 }, - { 0x51FF, 81261 }, - { 0x5200, 81267 }, - { 0x5201, 81249 }, - { 0x5202, 81153 }, - { 0x5203, 81174 }, - { 0x5204, 81156 }, - { 0x5205, 81162 }, - { 0x5206, 81183 }, - { 0x5207, 81168 }, - { 0x5208, 81165 }, - { 0x5209, 81159 }, - { 0x520A, 81180 }, - { 0x520B, 81177 }, - { 0x520C, 81171 }, - { 0x520D, 114495 }, - { 0x520E, 114510 }, - { 0x520F, 114501 }, - { 0x5210, 114534 }, - { 0x5211, 114507 }, - { 0x5212, 114564 }, - { 0x5213, 114628 }, - { 0x5214, 114632 }, - { 0x5215, 114624 }, - { 0x5216, 114498 }, - { 0x5217, 114513 }, - { 0x5218, 114504 }, - { 0x5219, 114516 }, - { 0x521A, 114540 }, - { 0x521B, 114591 }, - { 0x521C, 114528 }, - { 0x521D, 114585 }, - { 0x521E, 114594 }, - { 0x521F, 114522 }, - { 0x5220, 114576 }, - { 0x5221, 114537 }, - { 0x5222, 114588 }, - { 0x5223, 114600 }, - { 0x5224, 114615 }, - { 0x5225, 114621 }, - { 0x5226, 114579 }, - { 0x5227, 114618 }, - { 0x5228, 114597 }, - { 0x5229, 114561 }, - { 0x522A, 114612 }, - { 0x522B, 114525 }, - { 0x522C, 114582 }, - { 0x522D, 114549 }, - { 0x522E, 114552 }, - { 0x522F, 114603 }, - { 0x5230, 114519 }, - { 0x5231, 114573 }, - { 0x5232, 114546 }, - { 0x5233, 114570 }, - { 0x5234, 114555 }, - { 0x5235, 114543 }, - { 0x5236, 114567 }, - { 0x5237, 114606 }, - { 0x5238, 114609 }, - { 0x5239, 114558 }, - { 0x523A, 114531 }, - { 0x523B, 114457 }, - { 0x523C, 114445 }, - { 0x523D, 114469 }, - { 0x523E, 114453 }, - { 0x523F, 114473 }, - { 0x5240, 114482 }, - { 0x5241, 114487 }, - { 0x5242, 114477 }, - { 0x5243, 114441 }, - { 0x5244, 114461 }, - { 0x5245, 114449 }, - { 0x5246, 114465 }, - { 0x5247, 114403 }, - { 0x5248, 114397 }, - { 0x5249, 114394 }, - { 0x524A, 114391 }, - { 0x524B, 114400 }, - { 0x524C, 114409 }, - { 0x524D, 114492 }, - { 0x524E, 114406 }, - { 0x524F, 114385 }, - { 0x5250, 114388 }, - { 0x5251, 114429 }, - { 0x5252, 114411 }, - { 0x5253, 114417 }, - { 0x5254, 114438 }, - { 0x5255, 114423 }, - { 0x5256, 114420 }, - { 0x5257, 114414 }, - { 0x5258, 114435 }, - { 0x5259, 114432 }, - { 0x525A, 114426 }, - { 0x525B, 114636 }, - { 0x525C, 114645 }, - { 0x525D, 114672 }, - { 0x525E, 114651 }, - { 0x525F, 114648 }, - { 0x5260, 114639 }, - { 0x5261, 114666 }, - { 0x5262, 114657 }, - { 0x5263, 114654 }, - { 0x5264, 114642 }, - { 0x5265, 114684 }, - { 0x5266, 114681 }, - { 0x5267, 114663 }, - { 0x5268, 114660 }, - { 0x5269, 114669 }, - { 0x526A, 114687 }, - { 0x526B, 114675 }, - { 0x526C, 114678 }, - { 0x526D, 114690 }, - { 0x526E, 74676 }, - { 0x526F, 74679 }, - { 0x5270, 74732 }, - { 0x5271, 74771 }, - { 0x5272, 74723 }, - { 0x5273, 74774 }, - { 0x5274, 74717 }, - { 0x5275, 74765 }, - { 0x5276, 74729 }, - { 0x5277, 74777 }, - { 0x5278, 74753 }, - { 0x5279, 74786 }, - { 0x527A, 74720 }, - { 0x527B, 74741 }, - { 0x527C, 74744 }, - { 0x527D, 74780 }, - { 0x527E, 74714 }, - { 0x527F, 74738 }, - { 0x5280, 74789 }, - { 0x5281, 74795 }, - { 0x5282, 74768 }, - { 0x5283, 74756 }, - { 0x5284, 74792 }, - { 0x5285, 74762 }, - { 0x5286, 74711 }, - { 0x5287, 74759 }, - { 0x5288, 74747 }, - { 0x5289, 74735 }, - { 0x528A, 74783 }, - { 0x528B, 74750 }, - { 0x528C, 74726 }, - { 0x528D, 74708 }, - { 0x528E, 74826 }, - { 0x528F, 74878 }, - { 0x5290, 74814 }, - { 0x5291, 74882 }, - { 0x5292, 74806 }, - { 0x5293, 74870 }, - { 0x5294, 74822 }, - { 0x5295, 74886 }, - { 0x5296, 74854 }, - { 0x5297, 74898 }, - { 0x5298, 74810 }, - { 0x5299, 74838 }, - { 0x529A, 74842 }, - { 0x529B, 74890 }, - { 0x529C, 74802 }, - { 0x529D, 74834 }, - { 0x529E, 74902 }, - { 0x529F, 74910 }, - { 0x52A0, 74874 }, - { 0x52A1, 74858 }, - { 0x52A2, 74906 }, - { 0x52A3, 74866 }, - { 0x52A4, 74862 }, - { 0x52A5, 74846 }, - { 0x52A6, 74830 }, - { 0x52A7, 74894 }, - { 0x52A8, 74850 }, - { 0x52A9, 74818 }, - { 0x52AA, 74798 }, - { 0x52AB, 74704 }, - { 0x52AC, 74692 }, - { 0x52AD, 74700 }, - { 0x52AE, 74688 }, - { 0x52AF, 74696 }, - { 0x52B0, 74682 }, - { 0x52B1, 74685 }, - { 0x52B2, 75031 }, - { 0x52B3, 75051 }, - { 0x52B4, 75039 }, - { 0x52B5, 75083 }, - { 0x52B6, 75047 }, - { 0x52B7, 75123 }, - { 0x52B8, 75035 }, - { 0x52B9, 75055 }, - { 0x52BA, 75043 }, - { 0x52BB, 75059 }, - { 0x52BC, 75091 }, - { 0x52BD, 75159 }, - { 0x52BE, 75075 }, - { 0x52BF, 75151 }, - { 0x52C0, 75167 }, - { 0x52C1, 75067 }, - { 0x52C2, 75139 }, - { 0x52C3, 75087 }, - { 0x52C4, 75155 }, - { 0x52C5, 75175 }, - { 0x52C6, 75199 }, - { 0x52C7, 75215 }, - { 0x52C8, 75143 }, - { 0x52C9, 75203 }, - { 0x52CA, 75171 }, - { 0x52CB, 75119 }, - { 0x52CC, 75191 }, - { 0x52CD, 75071 }, - { 0x52CE, 75147 }, - { 0x52CF, 75103 }, - { 0x52D0, 75107 }, - { 0x52D1, 75179 }, - { 0x52D2, 75063 }, - { 0x52D3, 75135 }, - { 0x52D4, 75099 }, - { 0x52D5, 75131 }, - { 0x52D6, 75111 }, - { 0x52D7, 75095 }, - { 0x52D8, 75127 }, - { 0x52D9, 75183 }, - { 0x52DA, 75187 }, - { 0x52DB, 75115 }, - { 0x52DC, 75079 }, - { 0x52DD, 75163 }, - { 0x52DE, 75211 }, - { 0x52DF, 75207 }, - { 0x52E0, 75195 }, - { 0x52E1, 75000 }, - { 0x52E2, 74985 }, - { 0x52E3, 75015 }, - { 0x52E4, 74995 }, - { 0x52E5, 75020 }, - { 0x52E6, 75025 }, - { 0x52E7, 74980 }, - { 0x52E8, 75005 }, - { 0x52E9, 74990 }, - { 0x52EA, 75010 }, - { 0x52EB, 74933 }, - { 0x52EC, 74929 }, - { 0x52ED, 74917 }, - { 0x52EE, 74921 }, - { 0x52EF, 74925 }, - { 0x52F0, 75219 }, - { 0x52F1, 74977 }, - { 0x52F2, 75222 }, - { 0x52F3, 74961 }, - { 0x52F4, 74937 }, - { 0x52F5, 74945 }, - { 0x52F6, 74973 }, - { 0x52F7, 74953 }, - { 0x52F8, 74949 }, - { 0x52F9, 74941 }, - { 0x52FA, 74969 }, - { 0x52FB, 74965 }, - { 0x52FC, 74957 }, - { 0x52FD, 73639 }, - { 0x52FE, 73651 }, - { 0x52FF, 73643 }, - { 0x5300, 73687 }, - { 0x5301, 73647 }, - { 0x5302, 73731 }, - { 0x5303, 73675 }, - { 0x5304, 73655 }, - { 0x5305, 73711 }, - { 0x5306, 73659 }, - { 0x5307, 73739 }, - { 0x5308, 73735 }, - { 0x5309, 73663 }, - { 0x530A, 73743 }, - { 0x530B, 73703 }, - { 0x530C, 73695 }, - { 0x530D, 73767 }, - { 0x530E, 73727 }, - { 0x530F, 73783 }, - { 0x5310, 73699 }, - { 0x5311, 73679 }, - { 0x5312, 73759 }, - { 0x5313, 73671 }, - { 0x5314, 73755 }, - { 0x5315, 73707 }, - { 0x5316, 73667 }, - { 0x5317, 73747 }, - { 0x5318, 73787 }, - { 0x5319, 73795 }, - { 0x531A, 73771 }, - { 0x531B, 73691 }, - { 0x531C, 73763 }, - { 0x531D, 73751 }, - { 0x531E, 73791 }, - { 0x531F, 73775 }, - { 0x5320, 73715 }, - { 0x5321, 73779 }, - { 0x5322, 73683 }, - { 0x5323, 73719 }, - { 0x5324, 73723 }, - { 0x5325, 73604 }, - { 0x5326, 73594 }, - { 0x5327, 73624 }, - { 0x5328, 73599 }, - { 0x5329, 73634 }, - { 0x532A, 73619 }, - { 0x532B, 73609 }, - { 0x532C, 73629 }, - { 0x532D, 73614 }, - { 0x532E, 73550 }, - { 0x532F, 73546 }, - { 0x5330, 73799 }, - { 0x5331, 73543 }, - { 0x5332, 73578 }, - { 0x5333, 73554 }, - { 0x5334, 73562 }, - { 0x5335, 73590 }, - { 0x5336, 73570 }, - { 0x5337, 73566 }, - { 0x5338, 73558 }, - { 0x5339, 73586 }, - { 0x533A, 73582 }, - { 0x533B, 73574 }, - { 0x533C, 74548 }, - { 0x533D, 74542 }, - { 0x533E, 74578 }, - { 0x533F, 74560 }, - { 0x5340, 74533 }, - { 0x5341, 74554 }, - { 0x5342, 74569 }, - { 0x5343, 74539 }, - { 0x5344, 74557 }, - { 0x5345, 74536 }, - { 0x5346, 74545 }, - { 0x5347, 74581 }, - { 0x5348, 74575 }, - { 0x5349, 74563 }, - { 0x534A, 74551 }, - { 0x534B, 74572 }, - { 0x534C, 74566 }, - { 0x534D, 74530 }, - { 0x534E, 74512 }, - { 0x534F, 74518 }, - { 0x5350, 74526 }, - { 0x5351, 74514 }, - { 0x5352, 74522 }, - { 0x5353, 74584 }, - { 0x5354, 74508 }, - { 0x5355, 14228 }, - { 0x5356, 14225 }, - { 0x5357, 14216 }, - { 0x5358, 14222 }, - { 0x5359, 14308 }, - { 0x535A, 14323 }, - { 0x535B, 14314 }, - { 0x535C, 14344 }, - { 0x535D, 14320 }, - { 0x535E, 14374 }, - { 0x535F, 14441 }, - { 0x5360, 14449 }, - { 0x5361, 14437 }, - { 0x5362, 14445 }, - { 0x5363, 14311 }, - { 0x5364, 14326 }, - { 0x5365, 14317 }, - { 0x5366, 14350 }, - { 0x5367, 14401 }, - { 0x5368, 14338 }, - { 0x5369, 14395 }, - { 0x536A, 14404 }, - { 0x536B, 14332 }, - { 0x536C, 14386 }, - { 0x536D, 14347 }, - { 0x536E, 14398 }, - { 0x536F, 14410 }, - { 0x5370, 14425 }, - { 0x5371, 14434 }, - { 0x5372, 14389 }, - { 0x5373, 14428 }, - { 0x5374, 14407 }, - { 0x5375, 14371 }, - { 0x5376, 14422 }, - { 0x5377, 14335 }, - { 0x5378, 14392 }, - { 0x5379, 14359 }, - { 0x537A, 14362 }, - { 0x537B, 14413 }, - { 0x537C, 14329 }, - { 0x537D, 14383 }, - { 0x537E, 14356 }, - { 0x537F, 14380 }, - { 0x5380, 14365 }, - { 0x5381, 14353 }, - { 0x5382, 14377 }, - { 0x5383, 14416 }, - { 0x5384, 14419 }, - { 0x5385, 14368 }, - { 0x5386, 14341 }, - { 0x5387, 14431 }, - { 0x5388, 14275 }, - { 0x5389, 14300 }, - { 0x538A, 14267 }, - { 0x538B, 14287 }, - { 0x538C, 14271 }, - { 0x538D, 14291 }, - { 0x538E, 14295 }, - { 0x538F, 14263 }, - { 0x5390, 14279 }, - { 0x5391, 14283 }, - { 0x5392, 14219 }, - { 0x5393, 14453 }, - { 0x5394, 14231 }, - { 0x5395, 14305 }, - { 0x5396, 14487 }, - { 0x5397, 14491 }, - { 0x5398, 14473 }, - { 0x5399, 14458 }, - { 0x539A, 14455 }, - { 0x539B, 14465 }, - { 0x539C, 14479 }, - { 0x539D, 14462 }, - { 0x539E, 14469 }, - { 0x539F, 14476 }, - { 0x53A0, 14483 }, - { 0x53A1, 14251 }, - { 0x53A2, 14233 }, - { 0x53A3, 14239 }, - { 0x53A4, 14260 }, - { 0x53A5, 14245 }, - { 0x53A6, 14242 }, - { 0x53A7, 14236 }, - { 0x53A8, 14257 }, - { 0x53A9, 14254 }, - { 0x53AA, 14248 }, - { 0x53AB, 14213 }, - { 0x53AC, 15229 }, - { 0x53AD, 42267 }, - { 0x53AE, 42263 }, - { 0x53AF, 42239 }, - { 0x53B0, 42255 }, - { 0x53B1, 42235 }, - { 0x53B2, 42259 }, - { 0x53B3, 42275 }, - { 0x53B4, 42287 }, - { 0x53B5, 42243 }, - { 0x53B6, 42247 }, - { 0x53B7, 42251 }, - { 0x53B8, 42215 }, - { 0x53B9, 42219 }, - { 0x53BA, 42283 }, - { 0x53BB, 42279 }, - { 0x53BC, 42211 }, - { 0x53BD, 42231 }, - { 0x53BE, 42223 }, - { 0x53BF, 42227 }, - { 0x53C0, 42271 }, - { 0x53C1, 42291 }, - { 0x53C2, 41934 }, - { 0x53C3, 41952 }, - { 0x53C4, 41979 }, - { 0x53C5, 41964 }, - { 0x53C6, 41991 }, - { 0x53C7, 41955 }, - { 0x53C8, 41973 }, - { 0x53C9, 41982 }, - { 0x53CA, 41943 }, - { 0x53CB, 41949 }, - { 0x53CC, 41937 }, - { 0x53CD, 41976 }, - { 0x53CE, 41958 }, - { 0x53CF, 41946 }, - { 0x53D0, 41940 }, - { 0x53D1, 41923 }, - { 0x53D2, 41919 }, - { 0x53D3, 41927 }, - { 0x53D4, 41930 }, - { 0x53D5, 42305 }, - { 0x53D6, 42309 }, - { 0x53D7, 42208 }, - { 0x53D8, 41912 }, - { 0x53D9, 42036 }, - { 0x53DA, 42039 }, - { 0x53DB, 41906 }, - { 0x53DC, 42296 }, - { 0x53DD, 41985 }, - { 0x53DE, 41988 }, - { 0x53DF, 42300 }, - { 0x53E0, 117879 }, - { 0x53E1, 117882 }, - { 0x53E2, 117892 }, - { 0x53E3, 117907 }, - { 0x53E4, 117887 }, - { 0x53E5, 117897 }, - { 0x53E6, 117918 }, - { 0x53E7, 117913 }, - { 0x53E8, 117902 }, - { 0x53E9, 117992 }, - { 0x53EA, 117995 }, - { 0x53EB, 118038 }, - { 0x53EC, 118043 }, - { 0x53ED, 118016 }, - { 0x53EE, 118049 }, - { 0x53EF, 118011 }, - { 0x53F0, 118021 }, - { 0x53F1, 118055 }, - { 0x53F2, 118065 }, - { 0x53F3, 118070 }, - { 0x53F4, 118002 }, - { 0x53F5, 117998 }, - { 0x53F6, 119214 }, - { 0x53F7, 119245 }, - { 0x53F8, 119229 }, - { 0x53F9, 119222 }, - { 0x53FA, 119235 }, - { 0x53FB, 119240 }, - { 0x53FC, 118075 }, - { 0x53FD, 118083 }, - { 0x53FE, 118086 }, - { 0x53FF, 118091 }, - { 0x5400, 118098 }, - { 0x5401, 118101 }, - { 0x5402, 118126 }, - { 0x5403, 118131 }, - { 0x5404, 118106 }, - { 0x5405, 118136 }, - { 0x5406, 118111 }, - { 0x5407, 118116 }, - { 0x5408, 118121 }, - { 0x5409, 121363 }, - { 0x540A, 122146 }, - { 0x540B, 121366 }, - { 0x540C, 121374 }, - { 0x540D, 118141 }, - { 0x540E, 118144 }, - { 0x540F, 118164 }, - { 0x5410, 118155 }, - { 0x5411, 118149 }, - { 0x5412, 122149 }, - { 0x5413, 121379 }, - { 0x5414, 121382 }, - { 0x5415, 121385 }, - { 0x5416, 122152 }, - { 0x5417, 122155 }, - { 0x5418, 119250 }, - { 0x5419, 119290 }, - { 0x541A, 119253 }, - { 0x541B, 119278 }, - { 0x541C, 119258 }, - { 0x541D, 119265 }, - { 0x541E, 121390 }, - { 0x541F, 122755 }, - { 0x5420, 118169 }, - { 0x5421, 119295 }, - { 0x5422, 121393 }, - { 0x5423, 122758 }, - { 0x5424, 119304 }, - { 0x5425, 119307 }, - { 0x5426, 122158 }, - { 0x5427, 119312 }, - { 0x5428, 122161 }, - { 0x5429, 118172 }, - { 0x542A, 118175 }, - { 0x542B, 118180 }, - { 0x542C, 118185 }, - { 0x542D, 118191 }, - { 0x542E, 118194 }, - { 0x542F, 118200 }, - { 0x5430, 118213 }, - { 0x5431, 122164 }, - { 0x5432, 122167 }, - { 0x5433, 119315 }, - { 0x5434, 121396 }, - { 0x5435, 118218 }, - { 0x5436, 119318 }, - { 0x5437, 119326 }, - { 0x5438, 119460 }, - { 0x5439, 119478 }, - { 0x543A, 119334 }, - { 0x543B, 119340 }, - { 0x543C, 119346 }, - { 0x543D, 119354 }, - { 0x543E, 119466 }, - { 0x543F, 119428 }, - { 0x5440, 119360 }, - { 0x5441, 119366 }, - { 0x5442, 119372 }, - { 0x5443, 119434 }, - { 0x5444, 119380 }, - { 0x5445, 119386 }, - { 0x5446, 119392 }, - { 0x5447, 119440 }, - { 0x5448, 119400 }, - { 0x5449, 119446 }, - { 0x544A, 119406 }, - { 0x544B, 119472 }, - { 0x544C, 119412 }, - { 0x544D, 119454 }, - { 0x544E, 119484 }, - { 0x544F, 119487 }, - { 0x5450, 122172 }, - { 0x5451, 122175 }, - { 0x5452, 118226 }, - { 0x5453, 119490 }, - { 0x5454, 119493 }, - { 0x5455, 119508 }, - { 0x5456, 121402 }, - { 0x5457, 119513 }, - { 0x5458, 119516 }, - { 0x5459, 121410 }, - { 0x545A, 118229 }, - { 0x545B, 118236 }, - { 0x545C, 118232 }, - { 0x545D, 118241 }, - { 0x545E, 119523 }, - { 0x545F, 119531 }, - { 0x5460, 121418 }, - { 0x5461, 119536 }, - { 0x5462, 122178 }, - { 0x5463, 119690 }, - { 0x5464, 119693 }, - { 0x5465, 121421 }, - { 0x5466, 121424 }, - { 0x5467, 121428 }, - { 0x5468, 121433 }, - { 0x5469, 121436 }, - { 0x546A, 117924 }, - { 0x546B, 117935 }, - { 0x546C, 117927 }, - { 0x546D, 118245 }, - { 0x546E, 118248 }, - { 0x546F, 118267 }, - { 0x5470, 118262 }, - { 0x5471, 118282 }, - { 0x5472, 118287 }, - { 0x5473, 118257 }, - { 0x5474, 121439 }, - { 0x5475, 121442 }, - { 0x5476, 118292 }, - { 0x5477, 118295 }, - { 0x5478, 118303 }, - { 0x5479, 118308 }, - { 0x547A, 118298 }, - { 0x547B, 118318 }, - { 0x547C, 118323 }, - { 0x547D, 118314 }, - { 0x547E, 121445 }, - { 0x547F, 122181 }, - { 0x5480, 121448 }, - { 0x5481, 121456 }, - { 0x5482, 121459 }, - { 0x5483, 121464 }, - { 0x5484, 121471 }, - { 0x5485, 121480 }, - { 0x5486, 121526 }, - { 0x5487, 121559 }, - { 0x5488, 121565 }, - { 0x5489, 121485 }, - { 0x548A, 121490 }, - { 0x548B, 121536 }, - { 0x548C, 121572 }, - { 0x548D, 121577 }, - { 0x548E, 121542 }, - { 0x548F, 121496 }, - { 0x5490, 121547 }, - { 0x5491, 121501 }, - { 0x5492, 121506 }, - { 0x5493, 121516 }, - { 0x5494, 121521 }, - { 0x5495, 118328 }, - { 0x5496, 118331 }, - { 0x5497, 119696 }, - { 0x5498, 119704 }, - { 0x5499, 119713 }, - { 0x549A, 119720 }, - { 0x549B, 119867 }, - { 0x549C, 119732 }, - { 0x549D, 119875 }, - { 0x549E, 120080 }, - { 0x549F, 119880 }, - { 0x54A0, 119885 }, - { 0x54A1, 119892 }, - { 0x54A2, 119897 }, - { 0x54A3, 119746 }, - { 0x54A4, 119751 }, - { 0x54A5, 119910 }, - { 0x54A6, 119917 }, - { 0x54A7, 119756 }, - { 0x54A8, 119761 }, - { 0x54A9, 119768 }, - { 0x54AA, 119773 }, - { 0x54AB, 120092 }, - { 0x54AC, 119937 }, - { 0x54AD, 119786 }, - { 0x54AE, 119956 }, - { 0x54AF, 119961 }, - { 0x54B0, 120098 }, - { 0x54B1, 119798 }, - { 0x54B2, 119968 }, - { 0x54B3, 119973 }, - { 0x54B4, 119807 }, - { 0x54B5, 120105 }, - { 0x54B6, 119980 }, - { 0x54B7, 119986 }, - { 0x54B8, 119995 }, - { 0x54B9, 120140 }, - { 0x54BA, 120000 }, - { 0x54BB, 120005 }, - { 0x54BC, 120012 }, - { 0x54BD, 119814 }, - { 0x54BE, 119819 }, - { 0x54BF, 119826 }, - { 0x54C0, 120036 }, - { 0x54C1, 120041 }, - { 0x54C2, 119850 }, - { 0x54C3, 120048 }, - { 0x54C4, 120053 }, - { 0x54C5, 120058 }, - { 0x54C6, 120063 }, - { 0x54C7, 120115 }, - { 0x54C8, 120070 }, - { 0x54C9, 120125 }, - { 0x54CA, 119727 }, - { 0x54CB, 119855 }, - { 0x54CC, 119860 }, - { 0x54CD, 119699 }, - { 0x54CE, 121632 }, - { 0x54CF, 121641 }, - { 0x54D0, 120152 }, - { 0x54D1, 120155 }, - { 0x54D2, 120163 }, - { 0x54D3, 120166 }, - { 0x54D4, 122188 }, - { 0x54D5, 120175 }, - { 0x54D6, 120178 }, - { 0x54D7, 121646 }, - { 0x54D8, 121654 }, - { 0x54D9, 121649 }, - { 0x54DA, 121658 }, - { 0x54DB, 120181 }, - { 0x54DC, 121663 }, - { 0x54DD, 122776 }, - { 0x54DE, 123005 }, - { 0x54DF, 123013 }, - { 0x54E0, 118335 }, - { 0x54E1, 118338 }, - { 0x54E2, 118343 }, - { 0x54E3, 118348 }, - { 0x54E4, 120184 }, - { 0x54E5, 120187 }, - { 0x54E6, 120192 }, - { 0x54E7, 122191 }, - { 0x54E8, 121669 }, - { 0x54E9, 121672 }, - { 0x54EA, 121676 }, - { 0x54EB, 121679 }, - { 0x54EC, 121703 }, - { 0x54ED, 121698 }, - { 0x54EE, 121686 }, - { 0x54EF, 121693 }, - { 0x54F0, 122194 }, - { 0x54F1, 121709 }, - { 0x54F2, 121733 }, - { 0x54F3, 121716 }, - { 0x54F4, 121728 }, - { 0x54F5, 121712 }, - { 0x54F6, 118353 }, - { 0x54F7, 118356 }, - { 0x54F8, 120200 }, - { 0x54F9, 120213 }, - { 0x54FA, 120218 }, - { 0x54FB, 120226 }, - { 0x54FC, 120231 }, - { 0x54FD, 120203 }, - { 0x54FE, 120238 }, - { 0x54FF, 120254 }, - { 0x5500, 120261 }, - { 0x5501, 120241 }, - { 0x5502, 120266 }, - { 0x5503, 120269 }, - { 0x5504, 120272 }, - { 0x5505, 120277 }, - { 0x5506, 121738 }, - { 0x5507, 122197 }, - { 0x5508, 122779 }, - { 0x5509, 118361 }, - { 0x550A, 118368 }, - { 0x550B, 118364 }, - { 0x550C, 120280 }, - { 0x550D, 118377 }, - { 0x550E, 118385 }, - { 0x550F, 118424 }, - { 0x5510, 118399 }, - { 0x5511, 118429 }, - { 0x5512, 118404 }, - { 0x5513, 118409 }, - { 0x5514, 118414 }, - { 0x5515, 118419 }, - { 0x5516, 118380 }, - { 0x5517, 118434 }, - { 0x5518, 121741 }, - { 0x5519, 121744 }, - { 0x551A, 121754 }, - { 0x551B, 121764 }, - { 0x551C, 121759 }, - { 0x551D, 121749 }, - { 0x551E, 121769 }, - { 0x551F, 117940 }, - { 0x5520, 117943 }, - { 0x5521, 118437 }, - { 0x5522, 121775 }, - { 0x5523, 121778 }, - { 0x5524, 121784 }, - { 0x5525, 118440 }, - { 0x5526, 120283 }, - { 0x5527, 120290 }, - { 0x5528, 120286 }, - { 0x5529, 120298 }, - { 0x552A, 120294 }, - { 0x552B, 118443 }, - { 0x552C, 118446 }, - { 0x552D, 120309 }, - { 0x552E, 118452 }, - { 0x552F, 118455 }, - { 0x5530, 118464 }, - { 0x5531, 118469 }, - { 0x5532, 118460 }, - { 0x5533, 121790 }, - { 0x5534, 118474 }, - { 0x5535, 118477 }, - { 0x5536, 120312 }, - { 0x5537, 118480 }, - { 0x5538, 118483 }, - { 0x5539, 118500 }, - { 0x553A, 118505 }, - { 0x553B, 118756 }, - { 0x553C, 118657 }, - { 0x553D, 118828 }, - { 0x553E, 118662 }, - { 0x553F, 118512 }, - { 0x5540, 118833 }, - { 0x5541, 118766 }, - { 0x5542, 118522 }, - { 0x5543, 118667 }, - { 0x5544, 118771 }, - { 0x5545, 118672 }, - { 0x5546, 118677 }, - { 0x5547, 118527 }, - { 0x5548, 118777 }, - { 0x5549, 118787 }, - { 0x554A, 118794 }, - { 0x554B, 118532 }, - { 0x554C, 118801 }, - { 0x554D, 118691 }, - { 0x554E, 118544 }, - { 0x554F, 118696 }, - { 0x5550, 118554 }, - { 0x5551, 118701 }, - { 0x5552, 118559 }, - { 0x5553, 118564 }, - { 0x5554, 118569 }, - { 0x5555, 118574 }, - { 0x5556, 118581 }, - { 0x5557, 118588 }, - { 0x5558, 118595 }, - { 0x5559, 118600 }, - { 0x555A, 118607 }, - { 0x555B, 118711 }, - { 0x555C, 118617 }, - { 0x555D, 118622 }, - { 0x555E, 118627 }, - { 0x555F, 118716 }, - { 0x5560, 118721 }, - { 0x5561, 118726 }, - { 0x5562, 118806 }, - { 0x5563, 118731 }, - { 0x5564, 118736 }, - { 0x5565, 118838 }, - { 0x5566, 118741 }, - { 0x5567, 118488 }, - { 0x5568, 118637 }, - { 0x5569, 118642 }, - { 0x556A, 118816 }, - { 0x556B, 118751 }, - { 0x556C, 118652 }, - { 0x556D, 120315 }, - { 0x556E, 120318 }, - { 0x556F, 120323 }, - { 0x5570, 121793 }, - { 0x5571, 121796 }, - { 0x5572, 121799 }, - { 0x5573, 121802 }, - { 0x5574, 121805 }, - { 0x5575, 120326 }, - { 0x5576, 120329 }, - { 0x5577, 120335 }, - { 0x5578, 120338 }, - { 0x5579, 120343 }, - { 0x557A, 121810 }, - { 0x557B, 121813 }, - { 0x557C, 122782 }, - { 0x557D, 122797 }, - { 0x557E, 122785 }, - { 0x557F, 122203 }, - { 0x5580, 118843 }, - { 0x5581, 118856 }, - { 0x5582, 118846 }, - { 0x5583, 118851 }, - { 0x5584, 120352 }, - { 0x5585, 120355 }, - { 0x5586, 122206 }, - { 0x5587, 121816 }, - { 0x5588, 122807 }, - { 0x5589, 122810 }, - { 0x558A, 118861 }, - { 0x558B, 118864 }, - { 0x558C, 120358 }, - { 0x558D, 120361 }, - { 0x558E, 120364 }, - { 0x558F, 120369 }, - { 0x5590, 120372 }, - { 0x5591, 120375 }, - { 0x5592, 120379 }, - { 0x5593, 120382 }, - { 0x5594, 120385 }, - { 0x5595, 122815 }, - { 0x5596, 122818 }, - { 0x5597, 118876 }, - { 0x5598, 122209 }, - { 0x5599, 122212 }, - { 0x559A, 122217 }, - { 0x559B, 122226 }, - { 0x559C, 122233 }, - { 0x559D, 122261 }, - { 0x559E, 122266 }, - { 0x559F, 122379 }, - { 0x55A0, 122386 }, - { 0x55A1, 122271 }, - { 0x55A2, 122391 }, - { 0x55A3, 122276 }, - { 0x55A4, 122281 }, - { 0x55A5, 122396 }, - { 0x55A6, 122401 }, - { 0x55A7, 122406 }, - { 0x55A8, 122291 }, - { 0x55A9, 122413 }, - { 0x55AA, 122296 }, - { 0x55AB, 122418 }, - { 0x55AC, 122303 }, - { 0x55AD, 122308 }, - { 0x55AE, 122315 }, - { 0x55AF, 122322 }, - { 0x55B0, 122424 }, - { 0x55B1, 122429 }, - { 0x55B2, 122434 }, - { 0x55B3, 122439 }, - { 0x55B4, 122502 }, - { 0x55B5, 122475 }, - { 0x55B6, 122327 }, - { 0x55B7, 122448 }, - { 0x55B8, 122332 }, - { 0x55B9, 122337 }, - { 0x55BA, 122480 }, - { 0x55BB, 122344 }, - { 0x55BC, 122453 }, - { 0x55BD, 122507 }, - { 0x55BE, 122516 }, - { 0x55BF, 122485 }, - { 0x55C0, 122490 }, - { 0x55C1, 122460 }, - { 0x55C2, 122465 }, - { 0x55C3, 122497 }, - { 0x55C4, 122349 }, - { 0x55C5, 122240 }, - { 0x55C6, 122245 }, - { 0x55C7, 122252 }, - { 0x55C8, 122360 }, - { 0x55C9, 122367 }, - { 0x55CA, 122470 }, - { 0x55CB, 122524 }, - { 0x55CC, 122528 }, - { 0x55CD, 122543 }, - { 0x55CE, 122548 }, - { 0x55CF, 122531 }, - { 0x55D0, 122535 }, - { 0x55D1, 122821 }, - { 0x55D2, 120390 }, - { 0x55D3, 120393 }, - { 0x55D4, 120398 }, - { 0x55D5, 120401 }, - { 0x55D6, 120406 }, - { 0x55D7, 118879 }, - { 0x55D8, 120413 }, - { 0x55D9, 122824 }, - { 0x55DA, 121819 }, - { 0x55DB, 118882 }, - { 0x55DC, 118885 }, - { 0x55DD, 120416 }, - { 0x55DE, 120429 }, - { 0x55DF, 120482 }, - { 0x55E0, 120516 }, - { 0x55E1, 120528 }, - { 0x55E2, 120534 }, - { 0x55E3, 120434 }, - { 0x55E4, 120441 }, - { 0x55E5, 120540 }, - { 0x55E6, 120545 }, - { 0x55E7, 120550 }, - { 0x55E8, 120446 }, - { 0x55E9, 120451 }, - { 0x55EA, 120574 }, - { 0x55EB, 120458 }, - { 0x55EC, 120465 }, - { 0x55ED, 120470 }, - { 0x55EE, 120475 }, - { 0x55EF, 120557 }, - { 0x55F0, 120569 }, - { 0x55F1, 120425 }, - { 0x55F2, 120593 }, - { 0x55F3, 120598 }, - { 0x55F4, 120589 }, - { 0x55F5, 120579 }, - { 0x55F6, 120603 }, - { 0x55F7, 122555 }, - { 0x55F8, 122558 }, - { 0x55F9, 122567 }, - { 0x55FA, 122563 }, - { 0x55FB, 120606 }, - { 0x55FC, 120609 }, - { 0x55FD, 120612 }, - { 0x55FE, 120615 }, - { 0x55FF, 120620 }, - { 0x5600, 118890 }, - { 0x5601, 118897 }, - { 0x5602, 118893 }, - { 0x5603, 120628 }, - { 0x5604, 120631 }, - { 0x5605, 120634 }, - { 0x5606, 121822 }, - { 0x5607, 122572 }, - { 0x5608, 118902 }, - { 0x5609, 120637 }, - { 0x560A, 118905 }, - { 0x560B, 120640 }, - { 0x560C, 118913 }, - { 0x560D, 118916 }, - { 0x560E, 120643 }, - { 0x560F, 120646 }, - { 0x5610, 122827 }, - { 0x5611, 122830 }, - { 0x5612, 121828 }, - { 0x5613, 121859 }, - { 0x5614, 121869 }, - { 0x5615, 121864 }, - { 0x5616, 121831 }, - { 0x5617, 121836 }, - { 0x5618, 121874 }, - { 0x5619, 122575 }, - { 0x561A, 122582 }, - { 0x561B, 122587 }, - { 0x561C, 122594 }, - { 0x561D, 122578 }, - { 0x561E, 118921 }, - { 0x561F, 120650 }, - { 0x5620, 121879 }, - { 0x5621, 121888 }, - { 0x5622, 121882 }, - { 0x5623, 121892 }, - { 0x5624, 122604 }, - { 0x5625, 120659 }, - { 0x5626, 120656 }, - { 0x5627, 121897 }, - { 0x5628, 118924 }, - { 0x5629, 118927 }, - { 0x562A, 118932 }, - { 0x562B, 118937 }, - { 0x562C, 118941 }, - { 0x562D, 118944 }, - { 0x562E, 120663 }, - { 0x562F, 120666 }, - { 0x5630, 120677 }, - { 0x5631, 120669 }, - { 0x5632, 122833 }, - { 0x5633, 122848 }, - { 0x5634, 122883 }, - { 0x5635, 122888 }, - { 0x5636, 122906 }, - { 0x5637, 122863 }, - { 0x5638, 122871 }, - { 0x5639, 122916 }, - { 0x563A, 122928 }, - { 0x563B, 122933 }, - { 0x563C, 122941 }, - { 0x563D, 122948 }, - { 0x563E, 122876 }, - { 0x563F, 122957 }, - { 0x5640, 122607 }, - { 0x5641, 118949 }, - { 0x5642, 121903 }, - { 0x5643, 120686 }, - { 0x5644, 120698 }, - { 0x5645, 120727 }, - { 0x5646, 120704 }, - { 0x5647, 120710 }, - { 0x5648, 120721 }, - { 0x5649, 120694 }, - { 0x564A, 120689 }, - { 0x564B, 120733 }, - { 0x564C, 120738 }, - { 0x564D, 122610 }, - { 0x564E, 122668 }, - { 0x564F, 122613 }, - { 0x5650, 122637 }, - { 0x5651, 122643 }, - { 0x5652, 122649 }, - { 0x5653, 122656 }, - { 0x5654, 122619 }, - { 0x5655, 122625 }, - { 0x5656, 122662 }, - { 0x5657, 122631 }, - { 0x5658, 122674 }, - { 0x5659, 122680 }, - { 0x565A, 118952 }, - { 0x565B, 120746 }, - { 0x565C, 120749 }, - { 0x565D, 120752 }, - { 0x565E, 122687 }, - { 0x565F, 118955 }, - { 0x5660, 118958 }, - { 0x5661, 118978 }, - { 0x5662, 118983 }, - { 0x5663, 118988 }, - { 0x5664, 118963 }, - { 0x5665, 118968 }, - { 0x5666, 118993 }, - { 0x5667, 118973 }, - { 0x5668, 118998 }, - { 0x5669, 119003 }, - { 0x566A, 122694 }, - { 0x566B, 122707 }, - { 0x566C, 122697 }, - { 0x566D, 122702 }, - { 0x566E, 122712 }, - { 0x566F, 119008 }, - { 0x5670, 120755 }, - { 0x5671, 119011 }, - { 0x5672, 119014 }, - { 0x5673, 119017 }, - { 0x5674, 120884 }, - { 0x5675, 120758 }, - { 0x5676, 120776 }, - { 0x5677, 120781 }, - { 0x5678, 120821 }, - { 0x5679, 120791 }, - { 0x567A, 120832 }, - { 0x567B, 120837 }, - { 0x567C, 120842 }, - { 0x567D, 120796 }, - { 0x567E, 120847 }, - { 0x567F, 120852 }, - { 0x5680, 120874 }, - { 0x5681, 120864 }, - { 0x5682, 120801 }, - { 0x5683, 120806 }, - { 0x5684, 120811 }, - { 0x5685, 120816 }, - { 0x5686, 120869 }, - { 0x5687, 120771 }, - { 0x5688, 120761 }, - { 0x5689, 120888 }, - { 0x568A, 120891 }, - { 0x568B, 122987 }, - { 0x568C, 120897 }, - { 0x568D, 120900 }, - { 0x568E, 121927 }, - { 0x568F, 121930 }, - { 0x5690, 121952 }, - { 0x5691, 121962 }, - { 0x5692, 121947 }, - { 0x5693, 121967 }, - { 0x5694, 121957 }, - { 0x5695, 121935 }, - { 0x5696, 121940 }, - { 0x5697, 121972 }, - { 0x5698, 122717 }, - { 0x5699, 122720 }, - { 0x569A, 120903 }, - { 0x569B, 120906 }, - { 0x569C, 120915 }, - { 0x569D, 120926 }, - { 0x569E, 122723 }, - { 0x569F, 121979 }, - { 0x56A0, 122726 }, - { 0x56A1, 122990 }, - { 0x56A2, 123292 }, - { 0x56A3, 121982 }, - { 0x56A4, 121985 }, - { 0x56A5, 121990 }, - { 0x56A6, 121995 }, - { 0x56A7, 121998 }, - { 0x56A8, 122003 }, - { 0x56A9, 122044 }, - { 0x56AA, 122008 }, - { 0x56AB, 122013 }, - { 0x56AC, 122018 }, - { 0x56AD, 122023 }, - { 0x56AE, 122049 }, - { 0x56AF, 122029 }, - { 0x56B0, 122034 }, - { 0x56B1, 122039 }, - { 0x56B2, 122993 }, - { 0x56B3, 122054 }, - { 0x56B4, 122065 }, - { 0x56B5, 122057 }, - { 0x56B6, 122729 }, - { 0x56B7, 120952 }, - { 0x56B8, 120955 }, - { 0x56B9, 122069 }, - { 0x56BA, 122996 }, - { 0x56BB, 119020 }, - { 0x56BC, 119023 }, - { 0x56BD, 120961 }, - { 0x56BE, 122086 }, - { 0x56BF, 122089 }, - { 0x56C0, 122095 }, - { 0x56C1, 122732 }, - { 0x56C2, 119032 }, - { 0x56C3, 119035 }, - { 0x56C4, 120964 }, - { 0x56C5, 122098 }, - { 0x56C6, 122735 }, - { 0x56C7, 120967 }, - { 0x56C8, 122999 }, - { 0x56C9, 120970 }, - { 0x56CA, 122101 }, - { 0x56CB, 119040 }, - { 0x56CC, 119057 }, - { 0x56CD, 119047 }, - { 0x56CE, 119052 }, - { 0x56CF, 119043 }, - { 0x56D0, 120973 }, - { 0x56D1, 120976 }, - { 0x56D2, 120987 }, - { 0x56D3, 120991 }, - { 0x56D4, 120994 }, - { 0x56D5, 121004 }, - { 0x56D6, 121009 }, - { 0x56D7, 121014 }, - { 0x56D8, 121019 }, - { 0x56D9, 120999 }, - { 0x56DA, 122104 }, - { 0x56DB, 121024 }, - { 0x56DC, 119061 }, - { 0x56DD, 119064 }, - { 0x56DE, 119068 }, - { 0x56DF, 119071 }, - { 0x56E0, 121030 }, - { 0x56E1, 121033 }, - { 0x56E2, 121052 }, - { 0x56E3, 121036 }, - { 0x56E4, 121041 }, - { 0x56E5, 119075 }, - { 0x56E6, 122112 }, - { 0x56E7, 121057 }, - { 0x56E8, 121060 }, - { 0x56E9, 121075 }, - { 0x56EA, 121078 }, - { 0x56EB, 117947 }, - { 0x56EC, 117959 }, - { 0x56ED, 117954 }, - { 0x56EE, 117973 }, - { 0x56EF, 117984 }, - { 0x56F0, 117963 }, - { 0x56F1, 119078 }, - { 0x56F2, 119081 }, - { 0x56F3, 119084 }, - { 0x56F4, 119120 }, - { 0x56F5, 119115 }, - { 0x56F6, 119110 }, - { 0x56F7, 119091 }, - { 0x56F8, 119100 }, - { 0x56F9, 119087 }, - { 0x56FA, 119124 }, - { 0x56FB, 119128 }, - { 0x56FC, 122115 }, - { 0x56FD, 119134 }, - { 0x56FE, 119159 }, - { 0x56FF, 119147 }, - { 0x5700, 119154 }, - { 0x5701, 119137 }, - { 0x5702, 122738 }, - { 0x5703, 122118 }, - { 0x5704, 122126 }, - { 0x5705, 122121 }, - { 0x5706, 119164 }, - { 0x5707, 119167 }, - { 0x5708, 119171 }, - { 0x5709, 119178 }, - { 0x570A, 119174 }, - { 0x570B, 121086 }, - { 0x570C, 121089 }, - { 0x570D, 121096 }, - { 0x570E, 121103 }, - { 0x570F, 121108 }, - { 0x5710, 121137 }, - { 0x5711, 121113 }, - { 0x5712, 121125 }, - { 0x5713, 121118 }, - { 0x5714, 121146 }, - { 0x5715, 121149 }, - { 0x5716, 122131 }, - { 0x5717, 121152 }, - { 0x5718, 121155 }, - { 0x5719, 121278 }, - { 0x571A, 121207 }, - { 0x571B, 121212 }, - { 0x571C, 121167 }, - { 0x571D, 121217 }, - { 0x571E, 121257 }, - { 0x571F, 121222 }, - { 0x5720, 121172 }, - { 0x5721, 121177 }, - { 0x5722, 121227 }, - { 0x5723, 121182 }, - { 0x5724, 121232 }, - { 0x5725, 121187 }, - { 0x5726, 121242 }, - { 0x5727, 121247 }, - { 0x5728, 121192 }, - { 0x5729, 121252 }, - { 0x572A, 121263 }, - { 0x572B, 121197 }, - { 0x572C, 121160 }, - { 0x572D, 121202 }, - { 0x572E, 121273 }, - { 0x572F, 122741 }, - { 0x5730, 122744 }, - { 0x5731, 121288 }, - { 0x5732, 121291 }, - { 0x5733, 121296 }, - { 0x5734, 121301 }, - { 0x5735, 121306 }, - { 0x5736, 122137 }, - { 0x5737, 122134 }, - { 0x5738, 123002 }, - { 0x5739, 122749 }, - { 0x573A, 121311 }, - { 0x573B, 121314 }, - { 0x573C, 121319 }, - { 0x573D, 119183 }, - { 0x573E, 119186 }, - { 0x573F, 119190 }, - { 0x5740, 121325 }, - { 0x5741, 122140 }, - { 0x5742, 121328 }, - { 0x5743, 119196 }, - { 0x5744, 119199 }, - { 0x5745, 121331 }, - { 0x5746, 121334 }, - { 0x5747, 121337 }, - { 0x5748, 121342 }, - { 0x5749, 122143 }, - { 0x574A, 119204 }, - { 0x574B, 121345 }, - { 0x574C, 121348 }, - { 0x574D, 122752 }, - { 0x574E, 121360 }, - { 0x574F, 120348 }, - { 0x5750, 118027 }, - { 0x5751, 119217 }, - { 0x5752, 121369 }, - { 0x5753, 119420 }, - { 0x5754, 121399 }, - { 0x5755, 121413 }, - { 0x5756, 119526 }, - { 0x5757, 121531 }, - { 0x5758, 121554 }, - { 0x5759, 119737 }, - { 0x575A, 120075 }, - { 0x575B, 121666 }, - { 0x575C, 120197 }, - { 0x575D, 121772 }, - { 0x575E, 118823 }, - { 0x575F, 118761 }, - { 0x5760, 118782 }, - { 0x5761, 118686 }, - { 0x5762, 118537 }, - { 0x5763, 118706 }, - { 0x5764, 118612 }, - { 0x5765, 118811 }, - { 0x5766, 118632 }, - { 0x5767, 118746 }, - { 0x5768, 122286 }, - { 0x5769, 120583 }, - { 0x576A, 120521 }, - { 0x576B, 120506 }, - { 0x576C, 121825 }, - { 0x576D, 122599 }, - { 0x576E, 120653 }, - { 0x576F, 120683 }, - { 0x5770, 121900 }, - { 0x5771, 122895 }, - { 0x5772, 122853 }, - { 0x5773, 121918 }, - { 0x5774, 122690 }, - { 0x5775, 121924 }, - { 0x5776, 120826 }, - { 0x5777, 121027 }, - { 0x5778, 119142 }, - { 0x5779, 117950 }, - { 0x577A, 123422 }, - { 0x577B, 123826 }, - { 0x577C, 123565 }, - { 0x577D, 123494 }, - { 0x577E, 123389 }, - { 0x577F, 123767 }, - { 0x5780, 123721 }, - { 0x5781, 123660 }, - { 0x5782, 123854 }, - { 0x5783, 123593 }, - { 0x5784, 123522 }, - { 0x5785, 123400 }, - { 0x5786, 123772 }, - { 0x5787, 123726 }, - { 0x5788, 123665 }, - { 0x5789, 123553 }, - { 0x578A, 123482 }, - { 0x578B, 123377 }, - { 0x578C, 123755 }, - { 0x578D, 123709 }, - { 0x578E, 123648 }, - { 0x578F, 123330 }, - { 0x5790, 123448 }, - { 0x5791, 123859 }, - { 0x5792, 123598 }, - { 0x5793, 123527 }, - { 0x5794, 123405 }, - { 0x5795, 123777 }, - { 0x5796, 123731 }, - { 0x5797, 123670 }, - { 0x5798, 123335 }, - { 0x5799, 123453 }, - { 0x579A, 123864 }, - { 0x579B, 123603 }, - { 0x579C, 123532 }, - { 0x579D, 123458 }, - { 0x579E, 123869 }, - { 0x579F, 123874 }, - { 0x57A0, 123608 }, - { 0x57A1, 123537 }, - { 0x57A2, 123410 }, - { 0x57A3, 123782 }, - { 0x57A4, 123736 }, - { 0x57A5, 123675 }, - { 0x57A6, 123340 }, - { 0x57A7, 123463 }, - { 0x57A8, 123881 }, - { 0x57A9, 123886 }, - { 0x57AA, 123613 }, - { 0x57AB, 123542 }, - { 0x57AC, 123818 }, - { 0x57AD, 123810 }, - { 0x57AE, 123314 }, - { 0x57AF, 123438 }, - { 0x57B0, 123842 }, - { 0x57B1, 123847 }, - { 0x57B2, 123588 }, - { 0x57B3, 123517 }, - { 0x57B4, 123893 }, - { 0x57B5, 123900 }, - { 0x57B6, 123618 }, - { 0x57B7, 123641 }, - { 0x57B8, 123625 }, - { 0x57B9, 123633 }, - { 0x57BA, 123415 }, - { 0x57BB, 123803 }, - { 0x57BC, 123787 }, - { 0x57BD, 123795 }, - { 0x57BE, 123741 }, - { 0x57BF, 123748 }, - { 0x57C0, 123680 }, - { 0x57C1, 123695 }, - { 0x57C2, 123702 }, - { 0x57C3, 123687 }, - { 0x57C4, 123427 }, - { 0x57C5, 123831 }, - { 0x57C6, 123570 }, - { 0x57C7, 123499 }, - { 0x57C8, 123394 }, - { 0x57C9, 123309 }, - { 0x57CA, 123433 }, - { 0x57CB, 123837 }, - { 0x57CC, 123576 }, - { 0x57CD, 123581 }, - { 0x57CE, 123505 }, - { 0x57CF, 123510 }, - { 0x57D0, 123933 }, - { 0x57D1, 123929 }, - { 0x57D2, 123325 }, - { 0x57D3, 123443 }, - { 0x57D4, 123345 }, - { 0x57D5, 123468 }, - { 0x57D6, 123547 }, - { 0x57D7, 123351 }, - { 0x57D8, 123474 }, - { 0x57D9, 123359 }, - { 0x57DA, 123365 }, - { 0x57DB, 123295 }, - { 0x57DC, 123302 }, - { 0x57DD, 123371 }, - { 0x57DE, 123319 }, - { 0x57DF, 123907 }, - { 0x57E0, 123913 }, - { 0x57E1, 123924 }, - { 0x57E2, 123919 }, - { 0x57E3, 123558 }, - { 0x57E4, 123487 }, - { 0x57E5, 123382 }, - { 0x57E6, 123760 }, - { 0x57E7, 123714 }, - { 0x57E8, 123653 }, - { 0x57E9, 123937 }, - { 0x57EA, 123959 }, - { 0x57EB, 123944 }, - { 0x57EC, 123949 }, - { 0x57ED, 123954 }, - { 0x57EE, 118032 }, - { 0x57EF, 118060 }, - { 0x57F0, 118078 }, - { 0x57F1, 119298 }, - { 0x57F2, 122771 }, - { 0x57F3, 122761 }, - { 0x57F4, 122766 }, - { 0x57F5, 118206 }, - { 0x57F6, 118221 }, - { 0x57F7, 119321 }, - { 0x57F8, 119503 }, - { 0x57F9, 119496 }, - { 0x57FA, 121405 }, - { 0x57FB, 119658 }, - { 0x57FC, 119580 }, - { 0x57FD, 119585 }, - { 0x57FE, 119592 }, - { 0x57FF, 119597 }, - { 0x5800, 119663 }, - { 0x5801, 119539 }, - { 0x5802, 119544 }, - { 0x5803, 119642 }, - { 0x5804, 119648 }, - { 0x5805, 119549 }, - { 0x5806, 119554 }, - { 0x5807, 119602 }, - { 0x5808, 119668 }, - { 0x5809, 119608 }, - { 0x580A, 119673 }, - { 0x580B, 119678 }, - { 0x580C, 119685 }, - { 0x580D, 119613 }, - { 0x580E, 119618 }, - { 0x580F, 119625 }, - { 0x5810, 119653 }, - { 0x5811, 119632 }, - { 0x5812, 119559 }, - { 0x5813, 119564 }, - { 0x5814, 119569 }, - { 0x5815, 119637 }, - { 0x5816, 119574 }, - { 0x5817, 118272 }, - { 0x5818, 118277 }, - { 0x5819, 122184 }, - { 0x581A, 121451 }, - { 0x581B, 121607 }, - { 0x581C, 121583 }, - { 0x581D, 121613 }, - { 0x581E, 121589 }, - { 0x581F, 121620 }, - { 0x5820, 121595 }, - { 0x5821, 121626 }, - { 0x5822, 121601 }, - { 0x5823, 121511 }, - { 0x5824, 120135 }, - { 0x5825, 119904 }, - { 0x5826, 119922 }, - { 0x5827, 119930 }, - { 0x5828, 120087 }, - { 0x5829, 119781 }, - { 0x582A, 119942 }, - { 0x582B, 119949 }, - { 0x582C, 119791 }, - { 0x582D, 120145 }, - { 0x582E, 120019 }, - { 0x582F, 120024 }, - { 0x5830, 120031 }, - { 0x5831, 120110 }, - { 0x5832, 119831 }, - { 0x5833, 119836 }, - { 0x5834, 119843 }, - { 0x5835, 120120 }, - { 0x5836, 120130 }, - { 0x5837, 121635 }, - { 0x5838, 123008 }, - { 0x5839, 121721 }, - { 0x583A, 120207 }, - { 0x583B, 120247 }, - { 0x583C, 118372 }, - { 0x583D, 118390 }, - { 0x583E, 118517 }, - { 0x583F, 118549 }, - { 0x5840, 118493 }, - { 0x5841, 118647 }, - { 0x5842, 122372 }, - { 0x5843, 123018 }, - { 0x5844, 123021 }, - { 0x5845, 123024 }, - { 0x5846, 123027 }, - { 0x5847, 123030 }, - { 0x5848, 123033 }, - { 0x5849, 123036 }, - { 0x584A, 123039 }, - { 0x584B, 123045 }, - { 0x584C, 123048 }, - { 0x584D, 123053 }, - { 0x584E, 123056 }, - { 0x584F, 123059 }, - { 0x5850, 123062 }, - { 0x5851, 123065 }, - { 0x5852, 123068 }, - { 0x5853, 123071 }, - { 0x5854, 123074 }, - { 0x5855, 123077 }, - { 0x5856, 123080 }, - { 0x5857, 123083 }, - { 0x5858, 123086 }, - { 0x5859, 123089 }, - { 0x585A, 123092 }, - { 0x585B, 123095 }, - { 0x585C, 123098 }, - { 0x585D, 123101 }, - { 0x585E, 123104 }, - { 0x585F, 123107 }, - { 0x5860, 123110 }, - { 0x5861, 123122 }, - { 0x5862, 123127 }, - { 0x5863, 123134 }, - { 0x5864, 123115 }, - { 0x5865, 123143 }, - { 0x5866, 123146 }, - { 0x5867, 123149 }, - { 0x5868, 123152 }, - { 0x5869, 123155 }, - { 0x586A, 123158 }, - { 0x586B, 123161 }, - { 0x586C, 123164 }, - { 0x586D, 123167 }, - { 0x586E, 123170 }, - { 0x586F, 123173 }, - { 0x5870, 123196 }, - { 0x5871, 123201 }, - { 0x5872, 123216 }, - { 0x5873, 123206 }, - { 0x5874, 123176 }, - { 0x5875, 123211 }, - { 0x5876, 123181 }, - { 0x5877, 123186 }, - { 0x5878, 123191 }, - { 0x5879, 123223 }, - { 0x587A, 123228 }, - { 0x587B, 123231 }, - { 0x587C, 123249 }, - { 0x587D, 123234 }, - { 0x587E, 123254 }, - { 0x587F, 123259 }, - { 0x5880, 123239 }, - { 0x5881, 123265 }, - { 0x5882, 123274 }, - { 0x5883, 123244 }, - { 0x5884, 123281 }, - { 0x5885, 123286 }, - { 0x5886, 123289 }, - { 0x5887, 120419 }, - { 0x5888, 120511 }, - { 0x5889, 120487 }, - { 0x588A, 120492 }, - { 0x588B, 120497 }, - { 0x588C, 120564 }, - { 0x588D, 118908 }, - { 0x588E, 121845 }, - { 0x588F, 121852 }, - { 0x5890, 122900 }, - { 0x5891, 122962 }, - { 0x5892, 122911 }, - { 0x5893, 122858 }, - { 0x5894, 122972 }, - { 0x5895, 122982 }, - { 0x5896, 122967 }, - { 0x5897, 122921 }, - { 0x5898, 122836 }, - { 0x5899, 122841 }, - { 0x589A, 122977 }, - { 0x589B, 120765 }, - { 0x589C, 120786 }, - { 0x589D, 120857 }, - { 0x589E, 120879 }, - { 0x589F, 121975 }, - { 0x58A0, 120910 }, - { 0x58A1, 120942 }, - { 0x58A2, 120947 }, - { 0x58A3, 120937 }, - { 0x58A4, 122079 }, - { 0x58A5, 122072 }, - { 0x58A6, 119027 }, - { 0x58A7, 122107 }, - { 0x58A8, 121063 }, - { 0x58A9, 121069 }, - { 0x58AA, 121142 }, - { 0x58AB, 121132 }, - { 0x58AC, 121268 }, - { 0x58AD, 121283 }, - { 0x58AE, 121237 }, - { 0x58AF, 121322 }, - { 0x58B0, 119207 }, - { 0x58B1, 121353 }, - { 0x58B2, 138060 }, - { 0x58B3, 138063 }, - { 0x58B4, 138066 }, - { 0x58B5, 138069 }, - { 0x58B6, 138072 }, - { 0x58B7, 138075 }, - { 0x58B8, 138078 }, - { 0x58B9, 138081 }, - { 0x58BA, 138084 }, - { 0x58BB, 138087 }, - { 0x58BC, 138090 }, - { 0x58BD, 138351 }, - { 0x58BE, 138093 }, - { 0x58BF, 138096 }, - { 0x58C0, 138099 }, - { 0x58C1, 138102 }, - { 0x58C2, 138105 }, - { 0x58C3, 138108 }, - { 0x58C4, 138111 }, - { 0x58C5, 138114 }, - { 0x58C6, 138117 }, - { 0x58C7, 138120 }, - { 0x58C8, 138123 }, - { 0x58C9, 138126 }, - { 0x58CA, 138129 }, - { 0x58CB, 138132 }, - { 0x58CC, 138135 }, - { 0x58CD, 138138 }, - { 0x58CE, 138141 }, - { 0x58CF, 138144 }, - { 0x58D0, 138147 }, - { 0x58D1, 138150 }, - { 0x58D2, 138153 }, - { 0x58D3, 138156 }, - { 0x58D4, 138159 }, - { 0x58D5, 138162 }, - { 0x58D6, 138165 }, - { 0x58D7, 138168 }, - { 0x58D8, 138171 }, - { 0x58D9, 138174 }, - { 0x58DA, 138177 }, - { 0x58DB, 138180 }, - { 0x58DC, 138183 }, - { 0x58DD, 138186 }, - { 0x58DE, 138189 }, - { 0x58DF, 138192 }, - { 0x58E0, 138195 }, - { 0x58E1, 138198 }, - { 0x58E2, 138201 }, - { 0x58E3, 138204 }, - { 0x58E4, 138207 }, - { 0x58E5, 138210 }, - { 0x58E6, 138213 }, - { 0x58E7, 138216 }, - { 0x58E8, 138219 }, - { 0x58E9, 138222 }, - { 0x58EA, 138225 }, - { 0x58EB, 138228 }, - { 0x58EC, 138231 }, - { 0x58ED, 138234 }, - { 0x58EE, 138237 }, - { 0x58EF, 138240 }, - { 0x58F0, 138354 }, - { 0x58F1, 138243 }, - { 0x58F2, 138246 }, - { 0x58F3, 138249 }, - { 0x58F4, 138252 }, - { 0x58F5, 138255 }, - { 0x58F6, 138258 }, - { 0x58F7, 138261 }, - { 0x58F8, 138264 }, - { 0x58F9, 138267 }, - { 0x58FA, 138270 }, - { 0x58FB, 138273 }, - { 0x58FC, 138276 }, - { 0x58FD, 138279 }, - { 0x58FE, 138282 }, - { 0x58FF, 138285 }, - { 0x5900, 138288 }, - { 0x5901, 138291 }, - { 0x5902, 138294 }, - { 0x5903, 138297 }, - { 0x5904, 138300 }, - { 0x5905, 138303 }, - { 0x5906, 138306 }, - { 0x5907, 138309 }, - { 0x5908, 138312 }, - { 0x5909, 138315 }, - { 0x590A, 138318 }, - { 0x590B, 138321 }, - { 0x590C, 138324 }, - { 0x590D, 138327 }, - { 0x590E, 138330 }, - { 0x590F, 138333 }, - { 0x5910, 138336 }, - { 0x5911, 138339 }, - { 0x5912, 138342 }, - { 0x5913, 138345 }, - { 0x5914, 138348 }, - { 0x5915, 90356 }, - { 0x5916, 90359 }, - { 0x5917, 90362 }, - { 0x5918, 90365 }, - { 0x5919, 90368 }, - { 0x591A, 92657 }, - { 0x591B, 90371 }, - { 0x591C, 92660 }, - { 0x591D, 92663 }, - { 0x591E, 90374 }, - { 0x591F, 90377 }, - { 0x5920, 90380 }, - { 0x5921, 90383 }, - { 0x5922, 90386 }, - { 0x5923, 90389 }, - { 0x5924, 90392 }, - { 0x5925, 90395 }, - { 0x5926, 92666 }, - { 0x5927, 90398 }, - { 0x5928, 90401 }, - { 0x5929, 90404 }, - { 0x592A, 92669 }, - { 0x592B, 90407 }, - { 0x592C, 90410 }, - { 0x592D, 90413 }, - { 0x592E, 90416 }, - { 0x592F, 90419 }, - { 0x5930, 90422 }, - { 0x5931, 90425 }, - { 0x5932, 90428 }, - { 0x5933, 90431 }, - { 0x5934, 90434 }, - { 0x5935, 90437 }, - { 0x5936, 90440 }, - { 0x5937, 90443 }, - { 0x5938, 90446 }, - { 0x5939, 90449 }, - { 0x593A, 92672 }, - { 0x593B, 90452 }, - { 0x593C, 90455 }, - { 0x593D, 90458 }, - { 0x593E, 90461 }, - { 0x593F, 90464 }, - { 0x5940, 90467 }, - { 0x5941, 90470 }, - { 0x5942, 90473 }, - { 0x5943, 92675 }, - { 0x5944, 90476 }, - { 0x5945, 90479 }, - { 0x5946, 92678 }, - { 0x5947, 90482 }, - { 0x5948, 92681 }, - { 0x5949, 90485 }, - { 0x594A, 90488 }, - { 0x594B, 92684 }, - { 0x594C, 90491 }, - { 0x594D, 90494 }, - { 0x594E, 90497 }, - { 0x594F, 90500 }, - { 0x5950, 90503 }, - { 0x5951, 90506 }, - { 0x5952, 90509 }, - { 0x5953, 90512 }, - { 0x5954, 90515 }, - { 0x5955, 90518 }, - { 0x5956, 90521 }, - { 0x5957, 90524 }, - { 0x5958, 90527 }, - { 0x5959, 90530 }, - { 0x595A, 90533 }, - { 0x595B, 90536 }, - { 0x595C, 90539 }, - { 0x595D, 90542 }, - { 0x595E, 90545 }, - { 0x595F, 90548 }, - { 0x5960, 90551 }, - { 0x5961, 90554 }, - { 0x5962, 90557 }, - { 0x5963, 90560 }, - { 0x5964, 90563 }, - { 0x5965, 90566 }, - { 0x5966, 90569 }, - { 0x5967, 90572 }, - { 0x5968, 90575 }, - { 0x5969, 90578 }, - { 0x596A, 92783 }, - { 0x596B, 90581 }, - { 0x596C, 90584 }, - { 0x596D, 90587 }, - { 0x596E, 90590 }, - { 0x596F, 90593 }, - { 0x5970, 90596 }, - { 0x5971, 92799 }, - { 0x5972, 92802 }, - { 0x5973, 92805 }, - { 0x5974, 90599 }, - { 0x5975, 90602 }, - { 0x5976, 90605 }, - { 0x5977, 90608 }, - { 0x5978, 90611 }, - { 0x5979, 90614 }, - { 0x597A, 90617 }, - { 0x597B, 90620 }, - { 0x597C, 92808 }, - { 0x597D, 90623 }, - { 0x597E, 90626 }, - { 0x597F, 90629 }, - { 0x5980, 90632 }, - { 0x5981, 90635 }, - { 0x5982, 90638 }, - { 0x5983, 90641 }, - { 0x5984, 90644 }, - { 0x5985, 90647 }, - { 0x5986, 90650 }, - { 0x5987, 90653 }, - { 0x5988, 90656 }, - { 0x5989, 90659 }, - { 0x598A, 90662 }, - { 0x598B, 90665 }, - { 0x598C, 90668 }, - { 0x598D, 90671 }, - { 0x598E, 90674 }, - { 0x598F, 90677 }, - { 0x5990, 90680 }, - { 0x5991, 90683 }, - { 0x5992, 90686 }, - { 0x5993, 92811 }, - { 0x5994, 90689 }, - { 0x5995, 90692 }, - { 0x5996, 90695 }, - { 0x5997, 90698 }, - { 0x5998, 90701 }, - { 0x5999, 90704 }, - { 0x599A, 90707 }, - { 0x599B, 90710 }, - { 0x599C, 90713 }, - { 0x599D, 90716 }, - { 0x599E, 90719 }, - { 0x599F, 90722 }, - { 0x59A0, 90725 }, - { 0x59A1, 90728 }, - { 0x59A2, 90731 }, - { 0x59A3, 90734 }, - { 0x59A4, 90737 }, - { 0x59A5, 90740 }, - { 0x59A6, 90743 }, - { 0x59A7, 92814 }, - { 0x59A8, 90746 }, - { 0x59A9, 90749 }, - { 0x59AA, 90752 }, - { 0x59AB, 90755 }, - { 0x59AC, 92817 }, - { 0x59AD, 90758 }, - { 0x59AE, 90761 }, - { 0x59AF, 90764 }, - { 0x59B0, 92820 }, - { 0x59B1, 90767 }, - { 0x59B2, 90770 }, - { 0x59B3, 90773 }, - { 0x59B4, 90776 }, - { 0x59B5, 90779 }, - { 0x59B6, 90782 }, - { 0x59B7, 90785 }, - { 0x59B8, 90788 }, - { 0x59B9, 90791 }, - { 0x59BA, 90794 }, - { 0x59BB, 90797 }, - { 0x59BC, 90800 }, - { 0x59BD, 92823 }, - { 0x59BE, 90803 }, - { 0x59BF, 90806 }, - { 0x59C0, 92826 }, - { 0x59C1, 90809 }, - { 0x59C2, 90812 }, - { 0x59C3, 92829 }, - { 0x59C4, 92832 }, - { 0x59C5, 92835 }, - { 0x59C6, 92838 }, - { 0x59C7, 92841 }, - { 0x59C8, 92844 }, - { 0x59C9, 92847 }, - { 0x59CA, 92850 }, - { 0x59CB, 92853 }, - { 0x59CC, 90815 }, - { 0x59CD, 90818 }, - { 0x59CE, 92856 }, - { 0x59CF, 90821 }, - { 0x59D0, 90824 }, - { 0x59D1, 92859 }, - { 0x59D2, 90827 }, - { 0x59D3, 90830 }, - { 0x59D4, 90833 }, - { 0x59D5, 90836 }, - { 0x59D6, 90839 }, - { 0x59D7, 90842 }, - { 0x59D8, 90845 }, - { 0x59D9, 90848 }, - { 0x59DA, 90851 }, - { 0x59DB, 90854 }, - { 0x59DC, 90857 }, - { 0x59DD, 90860 }, - { 0x59DE, 90863 }, - { 0x59DF, 92862 }, - { 0x59E0, 92865 }, - { 0x59E1, 92868 }, - { 0x59E2, 92871 }, - { 0x59E3, 92874 }, - { 0x59E4, 92877 }, - { 0x59E5, 92880 }, - { 0x59E6, 92883 }, - { 0x59E7, 90866 }, - { 0x59E8, 90869 }, - { 0x59E9, 90872 }, - { 0x59EA, 90875 }, - { 0x59EB, 90878 }, - { 0x59EC, 90881 }, - { 0x59ED, 90884 }, - { 0x59EE, 90887 }, - { 0x59EF, 92886 }, - { 0x59F0, 90890 }, - { 0x59F1, 92889 }, - { 0x59F2, 90893 }, - { 0x59F3, 90896 }, - { 0x59F4, 90899 }, - { 0x59F5, 90902 }, - { 0x59F6, 90905 }, - { 0x59F7, 90908 }, - { 0x59F8, 90911 }, - { 0x59F9, 92892 }, - { 0x59FA, 90914 }, - { 0x59FB, 92895 }, - { 0x59FC, 90917 }, - { 0x59FD, 90920 }, - { 0x59FE, 90923 }, - { 0x59FF, 92898 }, - { 0x5A00, 90926 }, - { 0x5A01, 90929 }, - { 0x5A02, 90932 }, - { 0x5A03, 90935 }, - { 0x5A04, 90938 }, - { 0x5A05, 90941 }, - { 0x5A06, 90944 }, - { 0x5A07, 90947 }, - { 0x5A08, 92901 }, - { 0x5A09, 90950 }, - { 0x5A0A, 90953 }, - { 0x5A0B, 90956 }, - { 0x5A0C, 90959 }, - { 0x5A0D, 90962 }, - { 0x5A0E, 90965 }, - { 0x5A0F, 92904 }, - { 0x5A10, 90968 }, - { 0x5A11, 90971 }, - { 0x5A12, 90974 }, - { 0x5A13, 90977 }, - { 0x5A14, 92907 }, - { 0x5A15, 90980 }, - { 0x5A16, 90983 }, - { 0x5A17, 90986 }, - { 0x5A18, 90989 }, - { 0x5A19, 90992 }, - { 0x5A1A, 90995 }, - { 0x5A1B, 90998 }, - { 0x5A1C, 91001 }, - { 0x5A1D, 91004 }, - { 0x5A1E, 91007 }, - { 0x5A1F, 91010 }, - { 0x5A20, 91013 }, - { 0x5A21, 92910 }, - { 0x5A22, 91016 }, - { 0x5A23, 91019 }, - { 0x5A24, 91022 }, - { 0x5A25, 91025 }, - { 0x5A26, 91028 }, - { 0x5A27, 91031 }, - { 0x5A28, 91034 }, - { 0x5A29, 91037 }, - { 0x5A2A, 92913 }, - { 0x5A2B, 91040 }, - { 0x5A2C, 91043 }, - { 0x5A2D, 91046 }, - { 0x5A2E, 91049 }, - { 0x5A2F, 91052 }, - { 0x5A30, 91055 }, - { 0x5A31, 91058 }, - { 0x5A32, 91061 }, - { 0x5A33, 91064 }, - { 0x5A34, 91067 }, - { 0x5A35, 92916 }, - { 0x5A36, 91070 }, - { 0x5A37, 91073 }, - { 0x5A38, 91076 }, - { 0x5A39, 91079 }, - { 0x5A3A, 91082 }, - { 0x5A3B, 91085 }, - { 0x5A3C, 92919 }, - { 0x5A3D, 91088 }, - { 0x5A3E, 92922 }, - { 0x5A3F, 91091 }, - { 0x5A40, 91094 }, - { 0x5A41, 91097 }, - { 0x5A42, 91100 }, - { 0x5A43, 91103 }, - { 0x5A44, 91106 }, - { 0x5A45, 91109 }, - { 0x5A46, 92925 }, - { 0x5A47, 91112 }, - { 0x5A48, 92928 }, - { 0x5A49, 91115 }, - { 0x5A4A, 92931 }, - { 0x5A4B, 91118 }, - { 0x5A4C, 91121 }, - { 0x5A4D, 91124 }, - { 0x5A4E, 91127 }, - { 0x5A4F, 92934 }, - { 0x5A50, 92937 }, - { 0x5A51, 92940 }, - { 0x5A52, 91130 }, - { 0x5A53, 91133 }, - { 0x5A54, 91140 }, - { 0x5A55, 91143 }, - { 0x5A56, 91146 }, - { 0x5A57, 91149 }, - { 0x5A58, 91152 }, - { 0x5A59, 91155 }, - { 0x5A5A, 92943 }, - { 0x5A5B, 91158 }, - { 0x5A5C, 92946 }, - { 0x5A5D, 92949 }, - { 0x5A5E, 91161 }, - { 0x5A5F, 91164 }, - { 0x5A60, 91167 }, - { 0x5A61, 91170 }, - { 0x5A62, 92952 }, - { 0x5A63, 91173 }, - { 0x5A64, 91176 }, - { 0x5A65, 91179 }, - { 0x5A66, 91182 }, - { 0x5A67, 91185 }, - { 0x5A68, 91188 }, - { 0x5A69, 91191 }, - { 0x5A6A, 91194 }, - { 0x5A6B, 91197 }, - { 0x5A6C, 92955 }, - { 0x5A6D, 91200 }, - { 0x5A6E, 91203 }, - { 0x5A6F, 91206 }, - { 0x5A70, 91209 }, - { 0x5A71, 91212 }, - { 0x5A72, 91215 }, - { 0x5A73, 92958 }, - { 0x5A74, 91218 }, - { 0x5A75, 91221 }, - { 0x5A76, 91224 }, - { 0x5A77, 91227 }, - { 0x5A78, 91230 }, - { 0x5A79, 91233 }, - { 0x5A7A, 91236 }, - { 0x5A7B, 91239 }, - { 0x5A7C, 91242 }, - { 0x5A7D, 91245 }, - { 0x5A7E, 92961 }, - { 0x5A7F, 91248 }, - { 0x5A80, 92964 }, - { 0x5A81, 91251 }, - { 0x5A82, 91254 }, - { 0x5A83, 91257 }, - { 0x5A84, 91260 }, - { 0x5A85, 91263 }, - { 0x5A86, 91266 }, - { 0x5A87, 92967 }, - { 0x5A88, 91269 }, - { 0x5A89, 91272 }, - { 0x5A8A, 92970 }, - { 0x5A8B, 91275 }, - { 0x5A8C, 91278 }, - { 0x5A8D, 91281 }, - { 0x5A8E, 91284 }, - { 0x5A8F, 91287 }, - { 0x5A90, 91290 }, - { 0x5A91, 91293 }, - { 0x5A92, 91296 }, - { 0x5A93, 91299 }, - { 0x5A94, 91302 }, - { 0x5A95, 91305 }, - { 0x5A96, 91308 }, - { 0x5A97, 91311 }, - { 0x5A98, 91314 }, - { 0x5A99, 91317 }, - { 0x5A9A, 92973 }, - { 0x5A9B, 91320 }, - { 0x5A9C, 91323 }, - { 0x5A9D, 91335 }, - { 0x5A9E, 91338 }, - { 0x5A9F, 91341 }, - { 0x5AA0, 91344 }, - { 0x5AA1, 91347 }, - { 0x5AA2, 92976 }, - { 0x5AA3, 91350 }, - { 0x5AA4, 91353 }, - { 0x5AA5, 91356 }, - { 0x5AA6, 91359 }, - { 0x5AA7, 92979 }, - { 0x5AA8, 91362 }, - { 0x5AA9, 92982 }, - { 0x5AAA, 91365 }, - { 0x5AAB, 92985 }, - { 0x5AAC, 91368 }, - { 0x5AAD, 91371 }, - { 0x5AAE, 91374 }, - { 0x5AAF, 91377 }, - { 0x5AB0, 91380 }, - { 0x5AB1, 91383 }, - { 0x5AB2, 91386 }, - { 0x5AB3, 91389 }, - { 0x5AB4, 91392 }, - { 0x5AB5, 91395 }, - { 0x5AB6, 91398 }, - { 0x5AB7, 91401 }, - { 0x5AB8, 91404 }, - { 0x5AB9, 91407 }, - { 0x5ABA, 92988 }, - { 0x5ABB, 91410 }, - { 0x5ABC, 91413 }, - { 0x5ABD, 91416 }, - { 0x5ABE, 91419 }, - { 0x5ABF, 92991 }, - { 0x5AC0, 91422 }, - { 0x5AC1, 91425 }, - { 0x5AC2, 91432 }, - { 0x5AC3, 92994 }, - { 0x5AC4, 92997 }, - { 0x5AC5, 91435 }, - { 0x5AC6, 91438 }, - { 0x5AC7, 93000 }, - { 0x5AC8, 91441 }, - { 0x5AC9, 91444 }, - { 0x5ACA, 91447 }, - { 0x5ACB, 91450 }, - { 0x5ACC, 91453 }, - { 0x5ACD, 91456 }, - { 0x5ACE, 91459 }, - { 0x5ACF, 93003 }, - { 0x5AD0, 91462 }, - { 0x5AD1, 91465 }, - { 0x5AD2, 93006 }, - { 0x5AD3, 93009 }, - { 0x5AD4, 93012 }, - { 0x5AD5, 93015 }, - { 0x5AD6, 93018 }, - { 0x5AD7, 93021 }, - { 0x5AD8, 93024 }, - { 0x5AD9, 93027 }, - { 0x5ADA, 91468 }, - { 0x5ADB, 91471 }, - { 0x5ADC, 91474 }, - { 0x5ADD, 93030 }, - { 0x5ADE, 91477 }, - { 0x5ADF, 93033 }, - { 0x5AE0, 91480 }, - { 0x5AE1, 93036 }, - { 0x5AE2, 91483 }, - { 0x5AE3, 91486 }, - { 0x5AE4, 91489 }, - { 0x5AE5, 91492 }, - { 0x5AE6, 91495 }, - { 0x5AE7, 93039 }, - { 0x5AE8, 91498 }, - { 0x5AE9, 91501 }, - { 0x5AEA, 93042 }, - { 0x5AEB, 91504 }, - { 0x5AEC, 91507 }, - { 0x5AED, 91510 }, - { 0x5AEE, 91513 }, - { 0x5AEF, 93045 }, - { 0x5AF0, 91516 }, - { 0x5AF1, 91519 }, - { 0x5AF2, 91522 }, - { 0x5AF3, 93048 }, - { 0x5AF4, 91525 }, - { 0x5AF5, 91528 }, - { 0x5AF6, 93051 }, - { 0x5AF7, 93054 }, - { 0x5AF8, 91531 }, - { 0x5AF9, 91534 }, - { 0x5AFA, 91537 }, - { 0x5AFB, 91540 }, - { 0x5AFC, 91543 }, - { 0x5AFD, 91546 }, - { 0x5AFE, 91549 }, - { 0x5AFF, 93057 }, - { 0x5B00, 91552 }, - { 0x5B01, 91555 }, - { 0x5B02, 91558 }, - { 0x5B03, 91561 }, - { 0x5B04, 91564 }, - { 0x5B05, 91567 }, - { 0x5B06, 91570 }, - { 0x5B07, 91573 }, - { 0x5B08, 91576 }, - { 0x5B09, 91579 }, - { 0x5B0A, 91582 }, - { 0x5B0B, 91585 }, - { 0x5B0C, 91588 }, - { 0x5B0D, 91591 }, - { 0x5B0E, 91594 }, - { 0x5B0F, 91597 }, - { 0x5B10, 91600 }, - { 0x5B11, 91603 }, - { 0x5B12, 91606 }, - { 0x5B13, 91609 }, - { 0x5B14, 91612 }, - { 0x5B15, 91615 }, - { 0x5B16, 93060 }, - { 0x5B17, 93063 }, - { 0x5B18, 91618 }, - { 0x5B19, 91621 }, - { 0x5B1A, 91624 }, - { 0x5B1B, 91627 }, - { 0x5B1C, 91630 }, - { 0x5B1D, 91633 }, - { 0x5B1E, 91636 }, - { 0x5B1F, 93066 }, - { 0x5B20, 91639 }, - { 0x5B21, 91642 }, - { 0x5B22, 91645 }, - { 0x5B23, 91648 }, - { 0x5B24, 91651 }, - { 0x5B25, 91654 }, - { 0x5B26, 91657 }, - { 0x5B27, 91660 }, - { 0x5B28, 93069 }, - { 0x5B29, 91663 }, - { 0x5B2A, 93072 }, - { 0x5B2B, 91666 }, - { 0x5B2C, 93075 }, - { 0x5B2D, 91669 }, - { 0x5B2E, 91672 }, - { 0x5B2F, 93078 }, - { 0x5B30, 91675 }, - { 0x5B31, 91678 }, - { 0x5B32, 91681 }, - { 0x5B33, 91684 }, - { 0x5B34, 91687 }, - { 0x5B35, 93081 }, - { 0x5B36, 93084 }, - { 0x5B37, 93087 }, - { 0x5B38, 93090 }, - { 0x5B39, 93093 }, - { 0x5B3A, 93637 }, - { 0x5B3B, 93096 }, - { 0x5B3C, 93099 }, - { 0x5B3D, 93102 }, - { 0x5B3E, 93105 }, - { 0x5B3F, 93108 }, - { 0x5B40, 93111 }, - { 0x5B41, 93114 }, - { 0x5B42, 93117 }, - { 0x5B43, 93120 }, - { 0x5B44, 93123 }, - { 0x5B45, 93126 }, - { 0x5B46, 93129 }, - { 0x5B47, 93640 }, - { 0x5B48, 93132 }, - { 0x5B49, 93135 }, - { 0x5B4A, 93138 }, - { 0x5B4B, 93141 }, - { 0x5B4C, 93144 }, - { 0x5B4D, 93147 }, - { 0x5B4E, 93150 }, - { 0x5B4F, 93153 }, - { 0x5B50, 93156 }, - { 0x5B51, 93159 }, - { 0x5B52, 93162 }, - { 0x5B53, 93165 }, - { 0x5B54, 93168 }, - { 0x5B55, 93643 }, - { 0x5B56, 93171 }, - { 0x5B57, 93646 }, - { 0x5B58, 93174 }, - { 0x5B59, 93177 }, - { 0x5B5A, 93180 }, - { 0x5B5B, 93183 }, - { 0x5B5C, 93186 }, - { 0x5B5D, 93189 }, - { 0x5B5E, 93192 }, - { 0x5B5F, 93649 }, - { 0x5B60, 93195 }, - { 0x5B61, 93198 }, - { 0x5B62, 93201 }, - { 0x5B63, 93204 }, - { 0x5B64, 93652 }, - { 0x5B65, 91690 }, - { 0x5B66, 93207 }, - { 0x5B67, 91693 }, - { 0x5B68, 91696 }, - { 0x5B69, 91699 }, - { 0x5B6A, 91702 }, - { 0x5B6B, 93210 }, - { 0x5B6C, 91705 }, - { 0x5B6D, 93213 }, - { 0x5B6E, 93216 }, - { 0x5B6F, 93219 }, - { 0x5B70, 93222 }, - { 0x5B71, 93225 }, - { 0x5B72, 93228 }, - { 0x5B73, 91708 }, - { 0x5B74, 91711 }, - { 0x5B75, 91714 }, - { 0x5B76, 91717 }, - { 0x5B77, 93231 }, - { 0x5B78, 93234 }, - { 0x5B79, 93237 }, - { 0x5B7A, 91720 }, - { 0x5B7B, 91723 }, - { 0x5B7C, 91726 }, - { 0x5B7D, 91729 }, - { 0x5B7E, 91732 }, - { 0x5B7F, 91735 }, - { 0x5B80, 91738 }, - { 0x5B81, 91741 }, - { 0x5B82, 91744 }, - { 0x5B83, 93240 }, - { 0x5B84, 91747 }, - { 0x5B85, 93243 }, - { 0x5B86, 91750 }, - { 0x5B87, 91753 }, - { 0x5B88, 91756 }, - { 0x5B89, 91759 }, - { 0x5B8A, 93246 }, - { 0x5B8B, 91762 }, - { 0x5B8C, 93249 }, - { 0x5B8D, 91765 }, - { 0x5B8E, 91768 }, - { 0x5B8F, 91771 }, - { 0x5B90, 91774 }, - { 0x5B91, 93252 }, - { 0x5B92, 91777 }, - { 0x5B93, 93255 }, - { 0x5B94, 91780 }, - { 0x5B95, 91783 }, - { 0x5B96, 91786 }, - { 0x5B97, 93258 }, - { 0x5B98, 91789 }, - { 0x5B99, 91792 }, - { 0x5B9A, 91795 }, - { 0x5B9B, 93261 }, - { 0x5B9C, 93264 }, - { 0x5B9D, 93267 }, - { 0x5B9E, 93270 }, - { 0x5B9F, 91798 }, - { 0x5BA0, 91801 }, - { 0x5BA1, 91804 }, - { 0x5BA2, 91807 }, - { 0x5BA3, 91810 }, - { 0x5BA4, 91813 }, - { 0x5BA5, 91816 }, - { 0x5BA6, 91819 }, - { 0x5BA7, 91822 }, - { 0x5BA8, 91825 }, - { 0x5BA9, 91828 }, - { 0x5BAA, 91831 }, - { 0x5BAB, 91834 }, - { 0x5BAC, 91837 }, - { 0x5BAD, 93273 }, - { 0x5BAE, 93276 }, - { 0x5BAF, 91840 }, - { 0x5BB0, 91843 }, - { 0x5BB1, 93279 }, - { 0x5BB2, 91846 }, - { 0x5BB3, 91849 }, - { 0x5BB4, 93282 }, - { 0x5BB5, 91852 }, - { 0x5BB6, 91855 }, - { 0x5BB7, 91858 }, - { 0x5BB8, 91861 }, - { 0x5BB9, 91864 }, - { 0x5BBA, 91867 }, - { 0x5BBB, 91870 }, - { 0x5BBC, 91873 }, - { 0x5BBD, 91876 }, - { 0x5BBE, 91879 }, - { 0x5BBF, 91882 }, - { 0x5BC0, 91885 }, - { 0x5BC1, 91888 }, - { 0x5BC2, 91891 }, - { 0x5BC3, 91894 }, - { 0x5BC4, 91897 }, - { 0x5BC5, 91900 }, - { 0x5BC6, 93285 }, - { 0x5BC7, 91903 }, - { 0x5BC8, 93288 }, - { 0x5BC9, 93291 }, - { 0x5BCA, 91906 }, - { 0x5BCB, 91909 }, - { 0x5BCC, 91912 }, - { 0x5BCD, 91915 }, - { 0x5BCE, 91918 }, - { 0x5BCF, 91921 }, - { 0x5BD0, 91924 }, - { 0x5BD1, 93294 }, - { 0x5BD2, 91927 }, - { 0x5BD3, 91930 }, - { 0x5BD4, 91933 }, - { 0x5BD5, 91936 }, - { 0x5BD6, 91939 }, - { 0x5BD7, 91942 }, - { 0x5BD8, 93297 }, - { 0x5BD9, 91945 }, - { 0x5BDA, 91948 }, - { 0x5BDB, 91951 }, - { 0x5BDC, 91954 }, - { 0x5BDD, 91957 }, - { 0x5BDE, 91960 }, - { 0x5BDF, 91963 }, - { 0x5BE0, 91966 }, - { 0x5BE1, 91969 }, - { 0x5BE2, 91972 }, - { 0x5BE3, 91975 }, - { 0x5BE4, 91978 }, - { 0x5BE5, 91981 }, - { 0x5BE6, 91984 }, - { 0x5BE7, 91987 }, - { 0x5BE8, 93300 }, - { 0x5BE9, 91990 }, - { 0x5BEA, 91993 }, - { 0x5BEB, 91996 }, - { 0x5BEC, 91999 }, - { 0x5BED, 93303 }, - { 0x5BEE, 92002 }, - { 0x5BEF, 92005 }, - { 0x5BF0, 92008 }, - { 0x5BF1, 92011 }, - { 0x5BF2, 92014 }, - { 0x5BF3, 92017 }, - { 0x5BF4, 92020 }, - { 0x5BF5, 92023 }, - { 0x5BF6, 93306 }, - { 0x5BF7, 93309 }, - { 0x5BF8, 92026 }, - { 0x5BF9, 92029 }, - { 0x5BFA, 92032 }, - { 0x5BFB, 93312 }, - { 0x5BFC, 92035 }, - { 0x5BFD, 92038 }, - { 0x5BFE, 92041 }, - { 0x5BFF, 92044 }, - { 0x5C00, 92047 }, - { 0x5C01, 92050 }, - { 0x5C02, 92053 }, - { 0x5C03, 92056 }, - { 0x5C04, 92059 }, - { 0x5C05, 93315 }, - { 0x5C06, 93318 }, - { 0x5C07, 92062 }, - { 0x5C08, 92065 }, - { 0x5C09, 92068 }, - { 0x5C0A, 92071 }, - { 0x5C0B, 92074 }, - { 0x5C0C, 92077 }, - { 0x5C0D, 92080 }, - { 0x5C0E, 92083 }, - { 0x5C0F, 92086 }, - { 0x5C10, 93321 }, - { 0x5C11, 92089 }, - { 0x5C12, 92092 }, - { 0x5C13, 92095 }, - { 0x5C14, 92098 }, - { 0x5C15, 92101 }, - { 0x5C16, 92104 }, - { 0x5C17, 92107 }, - { 0x5C18, 92110 }, - { 0x5C19, 92113 }, - { 0x5C1A, 92116 }, - { 0x5C1B, 92119 }, - { 0x5C1C, 92122 }, - { 0x5C1D, 92125 }, - { 0x5C1E, 92128 }, - { 0x5C1F, 93324 }, - { 0x5C20, 92131 }, - { 0x5C21, 92134 }, - { 0x5C22, 92137 }, - { 0x5C23, 92140 }, - { 0x5C24, 93327 }, - { 0x5C25, 92143 }, - { 0x5C26, 93330 }, - { 0x5C27, 92146 }, - { 0x5C28, 93333 }, - { 0x5C29, 92149 }, - { 0x5C2A, 92152 }, - { 0x5C2B, 93336 }, - { 0x5C2C, 92155 }, - { 0x5C2D, 92158 }, - { 0x5C2E, 92161 }, - { 0x5C2F, 92164 }, - { 0x5C30, 92167 }, - { 0x5C31, 93339 }, - { 0x5C32, 92170 }, - { 0x5C33, 92173 }, - { 0x5C34, 92176 }, - { 0x5C35, 92179 }, - { 0x5C36, 92182 }, - { 0x5C37, 92185 }, - { 0x5C38, 92188 }, - { 0x5C39, 92191 }, - { 0x5C3A, 92194 }, - { 0x5C3B, 92197 }, - { 0x5C3C, 92200 }, - { 0x5C3D, 92203 }, - { 0x5C3E, 92206 }, - { 0x5C3F, 92209 }, - { 0x5C40, 92212 }, - { 0x5C41, 92215 }, - { 0x5C42, 93342 }, - { 0x5C43, 92218 }, - { 0x5C44, 93345 }, - { 0x5C45, 92221 }, - { 0x5C46, 92224 }, - { 0x5C47, 92227 }, - { 0x5C48, 92235 }, - { 0x5C49, 92238 }, - { 0x5C4A, 92241 }, - { 0x5C4B, 92244 }, - { 0x5C4C, 92247 }, - { 0x5C4D, 92250 }, - { 0x5C4E, 93348 }, - { 0x5C4F, 93351 }, - { 0x5C50, 92253 }, - { 0x5C51, 92256 }, - { 0x5C52, 92259 }, - { 0x5C53, 92262 }, - { 0x5C54, 92265 }, - { 0x5C55, 92268 }, - { 0x5C56, 92271 }, - { 0x5C57, 92274 }, - { 0x5C58, 92277 }, - { 0x5C59, 92280 }, - { 0x5C5A, 92283 }, - { 0x5C5B, 92286 }, - { 0x5C5C, 92289 }, - { 0x5C5D, 92292 }, - { 0x5C5E, 92295 }, - { 0x5C5F, 92298 }, - { 0x5C60, 92301 }, - { 0x5C61, 93354 }, - { 0x5C62, 92304 }, - { 0x5C63, 92307 }, - { 0x5C64, 92310 }, - { 0x5C65, 92313 }, - { 0x5C66, 92316 }, - { 0x5C67, 92319 }, - { 0x5C68, 93357 }, - { 0x5C69, 92322 }, - { 0x5C6A, 92325 }, - { 0x5C6B, 92328 }, - { 0x5C6C, 93360 }, - { 0x5C6D, 92331 }, - { 0x5C6E, 92334 }, - { 0x5C6F, 92337 }, - { 0x5C70, 92340 }, - { 0x5C71, 92343 }, - { 0x5C72, 92346 }, - { 0x5C73, 92349 }, - { 0x5C74, 92352 }, - { 0x5C75, 92355 }, - { 0x5C76, 92358 }, - { 0x5C77, 92361 }, - { 0x5C78, 93363 }, - { 0x5C79, 93366 }, - { 0x5C7A, 93369 }, - { 0x5C7B, 93372 }, - { 0x5C7C, 93375 }, - { 0x5C7D, 93378 }, - { 0x5C7E, 93381 }, - { 0x5C7F, 93384 }, - { 0x5C80, 93387 }, - { 0x5C81, 92364 }, - { 0x5C82, 93390 }, - { 0x5C83, 92367 }, - { 0x5C84, 92370 }, - { 0x5C85, 92373 }, - { 0x5C86, 92376 }, - { 0x5C87, 92379 }, - { 0x5C88, 93393 }, - { 0x5C89, 93396 }, - { 0x5C8A, 92382 }, - { 0x5C8B, 92385 }, - { 0x5C8C, 92388 }, - { 0x5C8D, 92391 }, - { 0x5C8E, 93399 }, - { 0x5C8F, 93402 }, - { 0x5C90, 93405 }, - { 0x5C91, 92394 }, - { 0x5C92, 93411 }, - { 0x5C93, 93414 }, - { 0x5C94, 92397 }, - { 0x5C95, 92400 }, - { 0x5C96, 92403 }, - { 0x5C97, 92406 }, - { 0x5C98, 92409 }, - { 0x5C99, 92412 }, - { 0x5C9A, 92415 }, - { 0x5C9B, 92418 }, - { 0x5C9C, 93417 }, - { 0x5C9D, 93420 }, - { 0x5C9E, 93423 }, - { 0x5C9F, 93426 }, - { 0x5CA0, 93429 }, - { 0x5CA1, 93432 }, - { 0x5CA2, 93435 }, - { 0x5CA3, 93438 }, - { 0x5CA4, 93441 }, - { 0x5CA5, 93444 }, - { 0x5CA6, 93447 }, - { 0x5CA7, 93450 }, - { 0x5CA8, 92421 }, - { 0x5CA9, 92424 }, - { 0x5CAA, 92427 }, - { 0x5CAB, 93453 }, - { 0x5CAC, 92430 }, - { 0x5CAD, 92433 }, - { 0x5CAE, 92436 }, - { 0x5CAF, 92439 }, - { 0x5CB0, 92442 }, - { 0x5CB1, 93456 }, - { 0x5CB2, 92445 }, - { 0x5CB3, 93459 }, - { 0x5CB4, 92448 }, - { 0x5CB5, 93462 }, - { 0x5CB6, 92451 }, - { 0x5CB7, 93465 }, - { 0x5CB8, 92454 }, - { 0x5CB9, 92457 }, - { 0x5CBA, 93468 }, - { 0x5CBB, 92460 }, - { 0x5CBC, 92463 }, - { 0x5CBD, 92466 }, - { 0x5CBE, 92469 }, - { 0x5CBF, 93471 }, - { 0x5CC0, 92472 }, - { 0x5CC1, 92475 }, - { 0x5CC2, 92478 }, - { 0x5CC3, 93474 }, - { 0x5CC4, 92481 }, - { 0x5CC5, 92484 }, - { 0x5CC6, 92487 }, - { 0x5CC7, 93477 }, - { 0x5CC8, 92490 }, - { 0x5CC9, 92493 }, - { 0x5CCA, 92496 }, - { 0x5CCB, 92499 }, - { 0x5CCC, 92502 }, - { 0x5CCD, 92505 }, - { 0x5CCE, 93480 }, - { 0x5CCF, 92508 }, - { 0x5CD0, 93483 }, - { 0x5CD1, 92511 }, - { 0x5CD2, 92514 }, - { 0x5CD3, 92517 }, - { 0x5CD4, 92520 }, - { 0x5CD5, 93486 }, - { 0x5CD6, 92523 }, - { 0x5CD7, 92526 }, - { 0x5CD8, 92529 }, - { 0x5CD9, 93489 }, - { 0x5CDA, 92532 }, - { 0x5CDB, 93492 }, - { 0x5CDC, 92535 }, - { 0x5CDD, 92538 }, - { 0x5CDE, 92541 }, - { 0x5CDF, 92544 }, - { 0x5CE0, 92547 }, - { 0x5CE1, 92550 }, - { 0x5CE2, 93495 }, - { 0x5CE3, 92553 }, - { 0x5CE4, 92561 }, - { 0x5CE5, 92564 }, - { 0x5CE6, 92567 }, - { 0x5CE7, 92570 }, - { 0x5CE8, 93498 }, - { 0x5CE9, 93501 }, - { 0x5CEA, 92573 }, - { 0x5CEB, 92576 }, - { 0x5CEC, 93504 }, - { 0x5CED, 92579 }, - { 0x5CEE, 92582 }, - { 0x5CEF, 93507 }, - { 0x5CF0, 92585 }, - { 0x5CF1, 93510 }, - { 0x5CF2, 92588 }, - { 0x5CF3, 92591 }, - { 0x5CF4, 92594 }, - { 0x5CF5, 92597 }, - { 0x5CF6, 92600 }, - { 0x5CF7, 92603 }, - { 0x5CF8, 92606 }, - { 0x5CF9, 92609 }, - { 0x5CFA, 92612 }, - { 0x5CFB, 93513 }, - { 0x5CFC, 93516 }, - { 0x5CFD, 93519 }, - { 0x5CFE, 93522 }, - { 0x5CFF, 92615 }, - { 0x5D00, 93525 }, - { 0x5D01, 93528 }, - { 0x5D02, 92618 }, - { 0x5D03, 93531 }, - { 0x5D04, 92621 }, - { 0x5D05, 93534 }, - { 0x5D06, 92624 }, - { 0x5D07, 92627 }, - { 0x5D08, 92630 }, - { 0x5D09, 92633 }, - { 0x5D0A, 92636 }, - { 0x5D0B, 92639 }, - { 0x5D0C, 92642 }, - { 0x5D0D, 92645 }, - { 0x5D0E, 92648 }, - { 0x5D0F, 92651 }, - { 0x5D10, 93537 }, - { 0x5D11, 93540 }, - { 0x5D12, 93543 }, - { 0x5D13, 93546 }, - { 0x5D14, 93549 }, - { 0x5D15, 93552 }, - { 0x5D16, 93555 }, - { 0x5D17, 93558 }, - { 0x5D18, 93561 }, - { 0x5D19, 92654 }, - { 0x5D1A, 93564 }, - { 0x5D1B, 93567 }, - { 0x5D1C, 93570 }, - { 0x5D1D, 93573 }, - { 0x5D1E, 93576 }, - { 0x5D1F, 93579 }, - { 0x5D20, 93582 }, - { 0x5D21, 93585 }, - { 0x5D22, 92687 }, - { 0x5D23, 92690 }, - { 0x5D24, 92693 }, - { 0x5D25, 92696 }, - { 0x5D26, 92699 }, - { 0x5D27, 92702 }, - { 0x5D28, 92705 }, - { 0x5D29, 93588 }, - { 0x5D2A, 93591 }, - { 0x5D2B, 92708 }, - { 0x5D2C, 92711 }, - { 0x5D2D, 92714 }, - { 0x5D2E, 92717 }, - { 0x5D2F, 92720 }, - { 0x5D30, 92723 }, - { 0x5D31, 92726 }, - { 0x5D32, 92729 }, - { 0x5D33, 92732 }, - { 0x5D34, 92735 }, - { 0x5D35, 92738 }, - { 0x5D36, 92741 }, - { 0x5D37, 92744 }, - { 0x5D38, 92747 }, - { 0x5D39, 92750 }, - { 0x5D3A, 92753 }, - { 0x5D3B, 92756 }, - { 0x5D3C, 92759 }, - { 0x5D3D, 92762 }, - { 0x5D3E, 92765 }, - { 0x5D3F, 92768 }, - { 0x5D40, 92771 }, - { 0x5D41, 92774 }, - { 0x5D42, 92777 }, - { 0x5D43, 92780 }, - { 0x5D44, 93408 }, - { 0x5D45, 93767 }, - { 0x5D46, 93771 }, - { 0x5D47, 93605 }, - { 0x5D48, 93622 }, - { 0x5D49, 93599 }, - { 0x5D4A, 93616 }, - { 0x5D4B, 93655 }, - { 0x5D4C, 92791 }, - { 0x5D4D, 90348 }, - { 0x5D4E, 93628 }, - { 0x5D4F, 93594 }, - { 0x5D50, 93611 }, - { 0x5D51, 92795 }, - { 0x5D52, 90352 }, - { 0x5D53, 92786 }, - { 0x5D54, 90343 }, - { 0x5D55, 93633 }, - { 0x5D56, 91136 }, - { 0x5D57, 91331 }, - { 0x5D58, 91428 }, - { 0x5D59, 91326 }, - { 0x5D5A, 92230 }, - { 0x5D5B, 92556 }, - { 0x5D5C, 93690 }, - { 0x5D5D, 93750 }, - { 0x5D5E, 93707 }, - { 0x5D5F, 93683 }, - { 0x5D60, 93669 }, - { 0x5D61, 93757 }, - { 0x5D62, 93713 }, - { 0x5D63, 93743 }, - { 0x5D64, 93697 }, - { 0x5D65, 93729 }, - { 0x5D66, 93721 }, - { 0x5D67, 93663 }, - { 0x5D68, 93675 }, - { 0x5D69, 93735 }, - { 0x5D6A, 93659 }, - { 0x5D6B, 93775 }, - { 0x5D6C, 93777 }, - { 0x5D6D, 93779 }, - { 0x5D6E, 93781 }, - { 0x5D6F, 93783 }, - { 0x5D70, 93785 }, - { 0x5D71, 93787 }, - { 0x5D72, 93789 }, - { 0x5D73, 93791 }, - { 0x5D74, 93793 }, - { 0x5D75, 93795 }, - { 0x5D76, 93797 }, - { 0x5D77, 93799 }, - { 0x5D78, 93801 }, - { 0x5D79, 93803 }, - { 0x5D7A, 93805 }, - { 0x5D7B, 93807 }, - { 0x5D7C, 93809 }, - { 0x5D7D, 93811 }, - { 0x5D7E, 93813 }, - { 0x5D7F, 93815 }, - { 0x5D80, 93817 }, - { 0x5D81, 93819 }, - { 0x5D82, 93821 }, - { 0x5D83, 93823 }, - { 0x5D84, 93825 }, - { 0x5D85, 93827 }, - { 0x5D86, 93829 }, - { 0x5D87, 93831 }, - { 0x5D88, 93833 }, - { 0x5D89, 93835 }, - { 0x5D8A, 93837 }, - { 0x5D8B, 93839 }, - { 0x5D8C, 93841 }, - { 0x5D8D, 93843 }, - { 0x5D8E, 93845 }, - { 0x5D8F, 93847 }, - { 0x5D90, 93849 }, - { 0x5D91, 93851 }, - { 0x5D92, 93853 }, - { 0x5D93, 93855 }, - { 0x5D94, 93857 }, - { 0x5D95, 93859 }, - { 0x5D96, 93861 }, - { 0x5D97, 93863 }, - { 0x5D98, 93865 }, - { 0x5D99, 93867 }, - { 0x5D9A, 93869 }, - { 0x5D9B, 93871 }, - { 0x5D9C, 93873 }, - { 0x5D9D, 93875 }, - { 0x5D9E, 93877 }, - { 0x5D9F, 93879 }, - { 0x5DA0, 93881 }, - { 0x5DA1, 93883 }, - { 0x5DA2, 93885 }, - { 0x5DA3, 93887 }, - { 0x5DA4, 93889 }, - { 0x5DA5, 93891 }, - { 0x5DA6, 93893 }, - { 0x5DA7, 93895 }, - { 0x5DA8, 93897 }, - { 0x5DA9, 93899 }, - { 0x5DAA, 93901 }, - { 0x5DAB, 93903 }, - { 0x5DAC, 93905 }, - { 0x5DAD, 93907 }, - { 0x5DAE, 93909 }, - { 0x5DAF, 93911 }, - { 0x5DB0, 93913 }, - { 0x5DB1, 93915 }, - { 0x5DB2, 93917 }, - { 0x5DB3, 93919 }, - { 0x5DB4, 93921 }, - { 0x5DB5, 93923 }, - { 0x5DB6, 93925 }, - { 0x5DB7, 93927 }, - { 0x5DB8, 93929 }, - { 0x5DB9, 93931 }, - { 0x5DBA, 93933 }, - { 0x5DBB, 93935 }, - { 0x5DBC, 93937 }, - { 0x5DBD, 93939 }, - { 0x5DBE, 93941 }, - { 0x5DBF, 93943 }, - { 0x5DC0, 93945 }, - { 0x5DC1, 93947 }, - { 0x5DC2, 93949 }, - { 0x5DC3, 93951 }, - { 0x5DC4, 93953 }, - { 0x5DC5, 93955 }, - { 0x5DC6, 93957 }, - { 0x5DC7, 93959 }, - { 0x5DC8, 93961 }, - { 0x5DC9, 93963 }, - { 0x5DCA, 93965 }, - { 0x5DCB, 93967 }, - { 0x5DCC, 93969 }, - { 0x5DCD, 93971 }, - { 0x5DCE, 93973 }, - { 0x5DCF, 93975 }, - { 0x5DD0, 93977 }, - { 0x5DD1, 93979 }, - { 0x5DD2, 93981 }, - { 0x5DD3, 93983 }, - { 0x5DD4, 93985 }, - { 0x5DD5, 93987 }, - { 0x5DD6, 93989 }, - { 0x5DD7, 93991 }, - { 0x5DD8, 93993 }, - { 0x5DD9, 93995 }, - { 0x5DDA, 93997 }, - { 0x5DDB, 93999 }, - { 0x5DDC, 94001 }, - { 0x5DDD, 94003 }, - { 0x5DDE, 94005 }, - { 0x5DDF, 94007 }, - { 0x5DE0, 94009 }, - { 0x5DE1, 94011 }, - { 0x5DE2, 94013 }, - { 0x5DE3, 94015 }, - { 0x5DE4, 94017 }, - { 0x5DE5, 94019 }, - { 0x5DE6, 94021 }, - { 0x5DE7, 94023 }, - { 0x5DE8, 94025 }, - { 0x5DE9, 94027 }, - { 0x5DEA, 94029 }, - { 0x5DEB, 94031 }, - { 0x5DEC, 94033 }, - { 0x5DED, 94035 }, - { 0x5DEE, 94037 }, - { 0x5DEF, 94039 }, - { 0x5DF0, 94041 }, - { 0x5DF1, 94043 }, - { 0x5DF2, 94045 }, - { 0x5DF3, 94047 }, - { 0x5DF4, 94049 }, - { 0x5DF5, 94051 }, - { 0x5DF6, 94053 }, - { 0x5DF7, 94055 }, - { 0x5DF8, 94057 }, - { 0x5DF9, 94059 }, - { 0x5DFA, 94061 }, - { 0x5DFB, 94063 }, - { 0x5DFC, 94065 }, - { 0x5DFD, 94067 }, - { 0x5DFE, 94069 }, - { 0x5DFF, 94071 }, - { 0x5E00, 94073 }, - { 0x5E01, 94075 }, - { 0x5E02, 94077 }, - { 0x5E03, 94079 }, - { 0x5E04, 94081 }, - { 0x5E05, 94083 }, - { 0x5E06, 94085 }, - { 0x5E07, 94087 }, - { 0x5E08, 94089 }, - { 0x5E09, 94091 }, - { 0x5E0A, 94093 }, - { 0x5E0B, 94095 }, - { 0x5E0C, 94097 }, - { 0x5E0D, 94099 }, - { 0x5E0E, 94101 }, - { 0x5E0F, 94103 }, - { 0x5E10, 94105 }, - { 0x5E11, 94107 }, - { 0x5E12, 94109 }, - { 0x5E13, 94111 }, - { 0x5E14, 94113 }, - { 0x5E15, 94115 }, - { 0x5E16, 94117 }, - { 0x5E17, 94119 }, - { 0x5E18, 94121 }, - { 0x5E19, 94123 }, - { 0x5E1A, 94125 }, - { 0x5E1B, 94127 }, - { 0x5E1C, 94129 }, - { 0x5E1D, 94131 }, - { 0x5E1E, 94133 }, - { 0x5E1F, 94135 }, - { 0x5E20, 94137 }, - { 0x5E21, 94139 }, - { 0x5E22, 94141 }, - { 0x5E23, 94143 }, - { 0x5E24, 94145 }, - { 0x5E25, 94147 }, - { 0x5E26, 94149 }, - { 0x5E27, 94151 }, - { 0x5E28, 94153 }, - { 0x5E29, 94155 }, - { 0x5E2A, 94157 }, - { 0x5E2B, 94159 }, - { 0x5E2C, 94161 }, - { 0x5E2D, 94163 }, - { 0x5E2E, 94165 }, - { 0x5E2F, 94167 }, - { 0x5E30, 94169 }, - { 0x5E31, 94171 }, - { 0x5E32, 94173 }, - { 0x5E33, 94175 }, - { 0x5E34, 94177 }, - { 0x5E35, 94179 }, - { 0x5E36, 94181 }, - { 0x5E37, 94183 }, - { 0x5E38, 94185 }, - { 0x5E39, 94187 }, - { 0x5E3A, 94189 }, - { 0x5E3B, 94191 }, - { 0x5E3C, 94193 }, - { 0x5E3D, 94195 }, - { 0x5E3E, 94197 }, - { 0x5E3F, 94199 }, - { 0x5E40, 94201 }, - { 0x5E41, 94203 }, - { 0x5E42, 94205 }, - { 0x5E43, 94207 }, - { 0x5E44, 94209 }, - { 0x5E45, 94211 }, - { 0x5E46, 94213 }, - { 0x5E47, 94215 }, - { 0x5E48, 94217 }, - { 0x5E49, 94219 }, - { 0x5E4A, 94221 }, - { 0x5E4B, 94223 }, - { 0x5E4C, 94225 }, - { 0x5E4D, 94227 }, - { 0x5E4E, 94229 }, - { 0x5E4F, 94231 }, - { 0x5E50, 94233 }, - { 0x5E51, 94235 }, - { 0x5E52, 94237 }, - { 0x5E53, 94239 }, - { 0x5E54, 94241 }, - { 0x5E55, 94243 }, - { 0x5E56, 94245 }, - { 0x5E57, 94247 }, - { 0x5E58, 94249 }, - { 0x5E59, 94251 }, - { 0x5E5A, 94253 }, - { 0x5E5B, 94255 }, - { 0x5E5C, 94257 }, - { 0x5E5D, 94259 }, - { 0x5E5E, 94261 }, - { 0x5E5F, 94263 }, - { 0x5E60, 94265 }, - { 0x5E61, 94267 }, - { 0x5E62, 94269 }, - { 0x5E63, 94271 }, - { 0x5E64, 94273 }, - { 0x5E65, 94275 }, - { 0x5E66, 94277 }, - { 0x5E67, 94279 }, - { 0x5E68, 94281 }, - { 0x5E69, 94283 }, - { 0x5E6A, 94285 }, - { 0x5E6B, 94287 }, - { 0x5E6C, 94289 }, - { 0x5E6D, 94291 }, - { 0x5E6E, 94293 }, - { 0x5E6F, 94295 }, - { 0x5E70, 94297 }, - { 0x5E71, 94299 }, - { 0x5E72, 94301 }, - { 0x5E73, 94303 }, - { 0x5E74, 94305 }, - { 0x5E75, 94307 }, - { 0x5E76, 94309 }, - { 0x5E77, 94311 }, - { 0x5E78, 94313 }, - { 0x5E79, 94315 }, - { 0x5E7A, 94317 }, - { 0x5E7B, 94319 }, - { 0x5E7C, 94321 }, - { 0x5E7D, 94323 }, - { 0x5E7E, 94325 }, - { 0x5E7F, 94327 }, - { 0x5E80, 94329 }, - { 0x5E81, 94331 }, - { 0x5E82, 94333 }, - { 0x5E83, 94335 }, - { 0x5E84, 94337 }, - { 0x5E85, 94339 }, - { 0x5E86, 94341 }, - { 0x5E87, 94343 }, - { 0x5E88, 94345 }, - { 0x5E89, 94347 }, - { 0x5E8A, 94349 }, - { 0x5E8B, 94351 }, - { 0x5E8C, 94353 }, - { 0x5E8D, 94355 }, - { 0x5E8E, 94357 }, - { 0x5E8F, 94359 }, - { 0x5E90, 94361 }, - { 0x5E91, 94363 }, - { 0x5E92, 94365 }, - { 0x5E93, 94367 }, - { 0x5E94, 94369 }, - { 0x5E95, 94371 }, - { 0x5E96, 94373 }, - { 0x5E97, 94375 }, - { 0x5E98, 94377 }, - { 0x5E99, 94379 }, - { 0x5E9A, 94381 }, - { 0x5E9B, 94383 }, - { 0x5E9C, 94385 }, - { 0x5E9D, 94387 }, - { 0x5E9E, 94389 }, - { 0x5E9F, 94391 }, - { 0x5EA0, 94393 }, - { 0x5EA1, 94395 }, - { 0x5EA2, 94397 }, - { 0x5EA3, 94399 }, - { 0x5EA4, 94401 }, - { 0x5EA5, 94403 }, - { 0x5EA6, 94405 }, - { 0x5EA7, 94407 }, - { 0x5EA8, 94409 }, - { 0x5EA9, 94411 }, - { 0x5EAA, 94413 }, - { 0x5EAB, 94415 }, - { 0x5EAC, 94417 }, - { 0x5EAD, 94419 }, - { 0x5EAE, 94421 }, - { 0x5EAF, 94423 }, - { 0x5EB0, 94425 }, - { 0x5EB1, 94427 }, - { 0x5EB2, 94429 }, - { 0x5EB3, 94431 }, - { 0x5EB4, 94433 }, - { 0x5EB5, 94435 }, - { 0x5EB6, 94437 }, - { 0x5EB7, 94439 }, - { 0x5EB8, 94441 }, - { 0x5EB9, 94443 }, - { 0x5EBA, 94445 }, - { 0x5EBB, 94447 }, - { 0x5EBC, 94449 }, - { 0x5EBD, 94451 }, - { 0x5EBE, 94453 }, - { 0x5EBF, 94455 }, - { 0x5EC0, 94457 }, - { 0x5EC1, 94459 }, - { 0x5EC2, 94461 }, - { 0x5EC3, 94463 }, - { 0x5EC4, 94465 }, - { 0x5EC5, 94467 }, - { 0x5EC6, 94469 }, - { 0x5EC7, 94471 }, - { 0x5EC8, 94473 }, - { 0x5EC9, 94475 }, - { 0x5ECA, 94477 }, - { 0x5ECB, 94479 }, - { 0x5ECC, 94481 }, - { 0x5ECD, 94483 }, - { 0x5ECE, 94485 }, - { 0x5ECF, 94487 }, - { 0x5ED0, 94489 }, - { 0x5ED1, 94491 }, - { 0x5ED2, 94493 }, - { 0x5ED3, 94495 }, - { 0x5ED4, 94497 }, - { 0x5ED5, 94499 }, - { 0x5ED6, 94501 }, - { 0x5ED7, 94503 }, - { 0x5ED8, 94505 }, - { 0x5ED9, 94507 }, - { 0x5EDA, 94509 }, - { 0x5EDB, 94511 }, - { 0x5EDC, 94513 }, - { 0x5EDD, 94515 }, - { 0x5EDE, 94517 }, - { 0x5EDF, 94519 }, - { 0x5EE0, 94521 }, - { 0x5EE1, 94523 }, - { 0x5EE2, 94525 }, - { 0x5EE3, 94527 }, - { 0x5EE4, 94529 }, - { 0x5EE5, 94531 }, - { 0x5EE6, 94533 }, - { 0x5EE7, 94535 }, - { 0x5EE8, 94537 }, - { 0x5EE9, 94539 }, - { 0x5EEA, 94541 }, - { 0x5EEB, 94543 }, - { 0x5EEC, 94545 }, - { 0x5EED, 94547 }, - { 0x5EEE, 94549 }, - { 0x5EEF, 94551 }, - { 0x5EF0, 94553 }, - { 0x5EF1, 94555 }, - { 0x5EF2, 94557 }, - { 0x5EF3, 94559 }, - { 0x5EF4, 94561 }, - { 0x5EF5, 94563 }, - { 0x5EF6, 94565 }, - { 0x5EF7, 94567 }, - { 0x5EF8, 94569 }, - { 0x5EF9, 94571 }, - { 0x5EFA, 94573 }, - { 0x5EFB, 94575 }, - { 0x5EFC, 94577 }, - { 0x5EFD, 94579 }, - { 0x5EFE, 94581 }, - { 0x5EFF, 94583 }, - { 0x5F00, 94585 }, - { 0x5F01, 94587 }, - { 0x5F02, 94589 }, - { 0x5F03, 94591 }, - { 0x5F04, 94593 }, - { 0x5F05, 94595 }, - { 0x5F06, 94597 }, - { 0x5F07, 94599 }, - { 0x5F08, 94601 }, - { 0x5F09, 94603 }, - { 0x5F0A, 94605 }, - { 0x5F0B, 94607 }, - { 0x5F0C, 94609 }, - { 0x5F0D, 94611 }, - { 0x5F0E, 94613 }, - { 0x5F0F, 94615 }, - { 0x5F10, 94617 }, - { 0x5F11, 94619 }, - { 0x5F12, 94621 }, - { 0x5F13, 94623 }, - { 0x5F14, 94625 }, - { 0x5F15, 94627 }, - { 0x5F16, 94629 }, - { 0x5F17, 94631 }, - { 0x5F18, 94633 }, - { 0x5F19, 94635 }, - { 0x5F1A, 94637 }, - { 0x5F1B, 94639 }, - { 0x5F1C, 94641 }, - { 0x5F1D, 94643 }, - { 0x5F1E, 94645 }, - { 0x5F1F, 94647 }, - { 0x5F20, 94649 }, - { 0x5F21, 94651 }, - { 0x5F22, 94653 }, - { 0x5F23, 94655 }, - { 0x5F24, 94657 }, - { 0x5F25, 94659 }, - { 0x5F26, 94661 }, - { 0x5F27, 94663 }, - { 0x5F28, 94665 }, - { 0x5F29, 94667 }, - { 0x5F2A, 94669 }, - { 0x5F2B, 94671 }, - { 0x5F2C, 94673 }, - { 0x5F2D, 94675 }, - { 0x5F2E, 94677 }, - { 0x5F2F, 94679 }, - { 0x5F30, 94681 }, - { 0x5F31, 94683 }, - { 0x5F32, 94685 }, - { 0x5F33, 94687 }, - { 0x5F34, 94689 }, - { 0x5F35, 94691 }, - { 0x5F36, 94693 }, - { 0x5F37, 94695 }, - { 0x5F38, 94697 }, - { 0x5F39, 94699 }, - { 0x5F3A, 94701 }, - { 0x5F3B, 94703 }, - { 0x5F3C, 94705 }, - { 0x5F3D, 94707 }, - { 0x5F3E, 94709 }, - { 0x5F3F, 94711 }, - { 0x5F40, 94713 }, - { 0x5F41, 94715 }, - { 0x5F42, 94717 }, - { 0x5F43, 94719 }, - { 0x5F44, 94721 }, - { 0x5F45, 94723 }, - { 0x5F46, 94725 }, - { 0x5F47, 94727 }, - { 0x5F48, 94729 }, - { 0x5F49, 94731 }, - { 0x5F4A, 94733 }, - { 0x5F4B, 94735 }, - { 0x5F4C, 94737 }, - { 0x5F4D, 94739 }, - { 0x5F4E, 94741 }, - { 0x5F4F, 94743 }, - { 0x5F50, 94745 }, - { 0x5F51, 94747 }, - { 0x5F52, 94749 }, - { 0x5F53, 94751 }, - { 0x5F54, 94753 }, - { 0x5F55, 94755 }, - { 0x5F56, 94757 }, - { 0x5F57, 94759 }, - { 0x5F58, 94761 }, - { 0x5F59, 94763 }, - { 0x5F5A, 94765 }, - { 0x5F5B, 94767 }, - { 0x5F5C, 94769 }, - { 0x5F5D, 94771 }, - { 0x5F5E, 94773 }, - { 0x5F5F, 94775 }, - { 0x5F60, 94777 }, - { 0x5F61, 94779 }, - { 0x5F62, 94781 }, - { 0x5F63, 94783 }, - { 0x5F64, 94785 }, - { 0x5F65, 94787 }, - { 0x5F66, 94789 }, - { 0x5F67, 94791 }, - { 0x5F68, 94793 }, - { 0x5F69, 94795 }, - { 0x5F6A, 94797 }, - { 0x5F6B, 94799 }, - { 0x5F6C, 94801 }, - { 0x5F6D, 94803 }, - { 0x5F6E, 94805 }, - { 0x5F6F, 94807 }, - { 0x5F70, 94809 }, - { 0x5F71, 94811 }, - { 0x5F72, 94813 }, - { 0x5F73, 94815 }, - { 0x5F74, 94817 }, - { 0x5F75, 94819 }, - { 0x5F76, 94821 }, - { 0x5F77, 94823 }, - { 0x5F78, 94825 }, - { 0x5F79, 94827 }, - { 0x5F7A, 94829 }, - { 0x5F7B, 94831 }, - { 0x5F7C, 94833 }, - { 0x5F7D, 94835 }, - { 0x5F7E, 94837 }, - { 0x5F7F, 94839 }, - { 0x5F80, 94841 }, - { 0x5F81, 94843 }, - { 0x5F82, 94845 }, - { 0x5F83, 94847 }, - { 0x5F84, 94849 }, - { 0x5F85, 94851 }, - { 0x5F86, 94853 }, - { 0x5F87, 94855 }, - { 0x5F88, 94857 }, - { 0x5F89, 94859 }, - { 0x5F8A, 94861 }, - { 0x5F8B, 94863 }, - { 0x5F8C, 94865 }, - { 0x5F8D, 94867 }, - { 0x5F8E, 94869 }, - { 0x5F8F, 94871 }, - { 0x5F90, 94873 }, - { 0x5F91, 94875 }, - { 0x5F92, 94877 }, - { 0x5F93, 94879 }, - { 0x5F94, 94881 }, - { 0x5F95, 94883 }, - { 0x5F96, 94885 }, - { 0x5F97, 94887 }, - { 0x5F98, 94889 }, - { 0x5F99, 94891 }, - { 0x5F9A, 94893 }, - { 0x5F9B, 94895 }, - { 0x5F9C, 94897 }, - { 0x5F9D, 94899 }, - { 0x5F9E, 94901 }, - { 0x5F9F, 94903 }, - { 0x5FA0, 94905 }, - { 0x5FA1, 94907 }, - { 0x5FA2, 94909 }, - { 0x5FA3, 94911 }, - { 0x5FA4, 94913 }, - { 0x5FA5, 94915 }, - { 0x5FA6, 94917 }, - { 0x5FA7, 94919 }, - { 0x5FA8, 94921 }, - { 0x5FA9, 94923 }, - { 0x5FAA, 94925 }, - { 0x5FAB, 94927 }, - { 0x5FAC, 94929 }, - { 0x5FAD, 94931 }, - { 0x5FAE, 94933 }, - { 0x5FAF, 94935 }, - { 0x5FB0, 94937 }, - { 0x5FB1, 94939 }, - { 0x5FB2, 94941 }, - { 0x5FB3, 94943 }, - { 0x5FB4, 94945 }, - { 0x5FB5, 94947 }, - { 0x5FB6, 94949 }, - { 0x5FB7, 94951 }, - { 0x5FB8, 94953 }, - { 0x5FB9, 94955 }, - { 0x5FBA, 94957 }, - { 0x5FBB, 94959 }, - { 0x5FBC, 94961 }, - { 0x5FBD, 94963 }, - { 0x5FBE, 94965 }, - { 0x5FBF, 94967 }, - { 0x5FC0, 94969 }, - { 0x5FC1, 94971 }, - { 0x5FC2, 94973 }, - { 0x5FC3, 94975 }, - { 0x5FC4, 94977 }, - { 0x5FC5, 94979 }, - { 0x5FC6, 94981 }, - { 0x5FC7, 94983 }, - { 0x5FC8, 94985 }, - { 0x5FC9, 94987 }, - { 0x5FCA, 94989 }, - { 0x5FCB, 94991 }, - { 0x5FCC, 94993 }, - { 0x5FCD, 94995 }, - { 0x5FCE, 94997 }, - { 0x5FCF, 94999 }, - { 0x5FD0, 95001 }, - { 0x5FD1, 95003 }, - { 0x5FD2, 95005 }, - { 0x5FD3, 95007 }, - { 0x5FD4, 95009 }, - { 0x5FD5, 95011 }, - { 0x5FD6, 95013 }, - { 0x5FD7, 95015 }, - { 0x5FD8, 95017 }, - { 0x5FD9, 95019 }, - { 0x5FDA, 95021 }, - { 0x5FDB, 95023 }, - { 0x5FDC, 95025 }, - { 0x5FDD, 95027 }, - { 0x5FDE, 95029 }, - { 0x5FDF, 95031 }, - { 0x5FE0, 95033 }, - { 0x5FE1, 95035 }, - { 0x5FE2, 95037 }, - { 0x5FE3, 95039 }, - { 0x5FE4, 95041 }, - { 0x5FE5, 95043 }, - { 0x5FE6, 95045 }, - { 0x5FE7, 95047 }, - { 0x5FE8, 95049 }, - { 0x5FE9, 95051 }, - { 0x5FEA, 95053 }, - { 0x5FEB, 95055 }, - { 0x5FEC, 95057 }, - { 0x5FED, 95059 }, - { 0x5FEE, 95061 }, - { 0x5FEF, 95063 }, - { 0x5FF0, 95065 }, - { 0x5FF1, 95067 }, - { 0x5FF2, 95069 }, - { 0x5FF3, 95071 }, - { 0x5FF4, 95073 }, - { 0x5FF5, 95075 }, - { 0x5FF6, 95077 }, - { 0x5FF7, 95079 }, - { 0x5FF8, 95081 }, - { 0x5FF9, 95083 }, - { 0x5FFA, 95085 }, - { 0x5FFB, 95087 }, - { 0x5FFC, 95089 }, - { 0x5FFD, 95091 }, - { 0x5FFE, 95093 }, - { 0x5FFF, 95095 }, - { 0x6000, 95097 }, - { 0x6001, 95099 }, - { 0x6002, 95101 }, - { 0x6003, 95103 }, - { 0x6004, 95105 }, - { 0x6005, 95107 }, - { 0x6006, 95109 }, - { 0x6007, 95111 }, - { 0x6008, 95113 }, - { 0x6009, 95115 }, - { 0x600A, 95117 }, - { 0x600B, 95119 }, - { 0x600C, 95121 }, - { 0x600D, 95123 }, - { 0x600E, 95125 }, - { 0x600F, 95127 }, - { 0x6010, 95129 }, - { 0x6011, 95131 }, - { 0x6012, 95133 }, - { 0x6013, 95135 }, - { 0x6014, 95137 }, - { 0x6015, 95139 }, - { 0x6016, 95141 }, - { 0x6017, 95143 }, - { 0x6018, 95145 }, - { 0x6019, 95147 }, - { 0x601A, 95149 }, - { 0x601B, 95151 }, - { 0x601C, 95153 }, - { 0x601D, 95155 }, - { 0x601E, 95157 }, - { 0x601F, 95159 }, - { 0x6020, 95161 }, - { 0x6021, 95163 }, - { 0x6022, 95165 }, - { 0x6023, 95167 }, - { 0x6024, 95169 }, - { 0x6025, 95171 }, - { 0x6026, 95173 }, - { 0x6027, 95175 }, - { 0x6028, 95177 }, - { 0x6029, 95179 }, - { 0x602A, 95181 }, - { 0x602B, 95183 }, - { 0x602C, 95185 }, - { 0x602D, 95187 }, - { 0x602E, 95189 }, - { 0x602F, 95191 }, - { 0x6030, 95193 }, - { 0x6031, 95195 }, - { 0x6032, 95197 }, - { 0x6033, 95199 }, - { 0x6034, 95201 }, - { 0x6035, 95203 }, - { 0x6036, 95205 }, - { 0x6037, 95207 }, - { 0x6038, 95209 }, - { 0x6039, 95211 }, - { 0x603A, 95213 }, - { 0x603B, 95215 }, - { 0x603C, 95217 }, - { 0x603D, 95219 }, - { 0x603E, 95221 }, - { 0x603F, 95223 }, - { 0x6040, 95225 }, - { 0x6041, 95227 }, - { 0x6042, 95229 }, - { 0x6043, 95231 }, - { 0x6044, 95233 }, - { 0x6045, 95235 }, - { 0x6046, 95237 }, - { 0x6047, 95239 }, - { 0x6048, 95241 }, - { 0x6049, 95243 }, - { 0x604A, 95245 }, - { 0x604B, 95247 }, - { 0x604C, 95249 }, - { 0x604D, 95251 }, - { 0x604E, 95253 }, - { 0x604F, 95255 }, - { 0x6050, 95257 }, - { 0x6051, 95259 }, - { 0x6052, 95261 }, - { 0x6053, 95263 }, - { 0x6054, 95265 }, - { 0x6055, 95267 }, - { 0x6056, 95269 }, - { 0x6057, 95271 }, - { 0x6058, 95273 }, - { 0x6059, 95275 }, - { 0x605A, 95277 }, - { 0x605B, 95279 }, - { 0x605C, 95281 }, - { 0x605D, 95283 }, - { 0x605E, 95285 }, - { 0x605F, 95287 }, - { 0x6060, 95289 }, - { 0x6061, 95291 }, - { 0x6062, 95293 }, - { 0x6063, 95295 }, - { 0x6064, 95297 }, - { 0x6065, 95299 }, - { 0x6066, 95301 }, - { 0x6067, 95303 }, - { 0x6068, 95305 }, - { 0x6069, 95307 }, - { 0x606A, 95309 }, - { 0x606B, 95311 }, - { 0x606C, 95313 }, - { 0x606D, 95315 }, - { 0x606E, 95317 }, - { 0x606F, 95319 }, - { 0x6070, 95321 }, - { 0x6071, 95323 }, - { 0x6072, 95325 }, - { 0x6073, 95327 }, - { 0x6074, 95329 }, - { 0x6075, 95331 }, - { 0x6076, 95333 }, - { 0x6077, 95335 }, - { 0x6078, 95337 }, - { 0x6079, 95339 }, - { 0x607A, 95341 }, - { 0x607B, 95343 }, - { 0x607C, 95345 }, - { 0x607D, 95347 }, - { 0x607E, 95349 }, - { 0x607F, 95351 }, - { 0x6080, 95353 }, - { 0x6081, 95355 }, - { 0x6082, 95357 }, - { 0x6083, 95359 }, - { 0x6084, 95361 }, - { 0x6085, 95363 }, - { 0x6086, 95365 }, - { 0x6087, 95367 }, - { 0x6088, 95369 }, - { 0x6089, 95371 }, - { 0x608A, 95373 }, - { 0x608B, 95375 }, - { 0x608C, 95377 }, - { 0x608D, 95379 }, - { 0x608E, 95381 }, - { 0x608F, 95383 }, - { 0x6090, 95385 }, - { 0x6091, 95387 }, - { 0x6092, 95389 }, - { 0x6093, 95391 }, - { 0x6094, 95393 }, - { 0x6095, 95395 }, - { 0x6096, 95397 }, - { 0x6097, 95399 }, - { 0x6098, 95401 }, - { 0x6099, 95403 }, - { 0x609A, 95405 }, - { 0x609B, 95407 }, - { 0x609C, 95409 }, - { 0x609D, 95411 }, - { 0x609E, 95413 }, - { 0x609F, 95415 }, - { 0x60A0, 95417 }, - { 0x60A1, 95419 }, - { 0x60A2, 95421 }, - { 0x60A3, 95423 }, - { 0x60A4, 95425 }, - { 0x60A5, 95427 }, - { 0x60A6, 95429 }, - { 0x60A7, 95431 }, - { 0x60A8, 95433 }, - { 0x60A9, 95435 }, - { 0x60AA, 95437 }, - { 0x60AB, 95439 }, - { 0x60AC, 95441 }, - { 0x60AD, 95443 }, - { 0x60AE, 95445 }, - { 0x60AF, 95447 }, - { 0x60B0, 95449 }, - { 0x60B1, 95451 }, - { 0x60B2, 95453 }, - { 0x60B3, 95455 }, - { 0x60B4, 95457 }, - { 0x60B5, 95459 }, - { 0x60B6, 95461 }, - { 0x60B7, 95463 }, - { 0x60B8, 95465 }, - { 0x60B9, 95467 }, - { 0x60BA, 95469 }, - { 0x60BB, 95471 }, - { 0x60BC, 95473 }, - { 0x60BD, 95475 }, - { 0x60BE, 95477 }, - { 0x60BF, 95479 }, - { 0x60C0, 95481 }, - { 0x60C1, 95483 }, - { 0x60C2, 95485 }, - { 0x60C3, 95487 }, - { 0x60C4, 95489 }, - { 0x60C5, 95491 }, - { 0x60C6, 95493 }, - { 0x60C7, 95495 }, - { 0x60C8, 95497 }, - { 0x60C9, 95499 }, - { 0x60CA, 95501 }, - { 0x60CB, 95503 }, - { 0x60CC, 95505 }, - { 0x60CD, 95507 }, - { 0x60CE, 95509 }, - { 0x60CF, 95511 }, - { 0x60D0, 95513 }, - { 0x60D1, 95515 }, - { 0x60D2, 95517 }, - { 0x60D3, 95519 }, - { 0x60D4, 95521 }, - { 0x60D5, 95523 }, - { 0x60D6, 95525 }, - { 0x60D7, 95527 }, - { 0x60D8, 95529 }, - { 0x60D9, 95531 }, - { 0x60DA, 95533 }, - { 0x60DB, 95535 }, - { 0x60DC, 95537 }, - { 0x60DD, 95539 }, - { 0x60DE, 95541 }, - { 0x60DF, 95543 }, - { 0x60E0, 95545 }, - { 0x60E1, 95547 }, - { 0x60E2, 95549 }, - { 0x60E3, 95551 }, - { 0x60E4, 95553 }, - { 0x60E5, 95555 }, - { 0x60E6, 95557 }, - { 0x60E7, 95559 }, - { 0x60E8, 95561 }, - { 0x60E9, 95563 }, - { 0x60EA, 95565 }, - { 0x60EB, 95567 }, - { 0x60EC, 95569 }, - { 0x60ED, 95571 }, - { 0x60EE, 95573 }, - { 0x60EF, 95575 }, - { 0x60F0, 95577 }, - { 0x60F1, 95579 }, - { 0x60F2, 95581 }, - { 0x60F3, 95583 }, - { 0x60F4, 95585 }, - { 0x60F5, 95587 }, - { 0x60F6, 95589 }, - { 0x60F7, 95591 }, - { 0x60F8, 95593 }, - { 0x60F9, 95595 }, - { 0x60FA, 95597 }, - { 0x60FB, 95599 }, - { 0x60FC, 95601 }, - { 0x60FD, 95603 }, - { 0x60FE, 95605 }, - { 0x60FF, 95607 }, - { 0x6100, 95609 }, - { 0x6101, 95611 }, - { 0x6102, 95613 }, - { 0x6103, 95615 }, - { 0x6104, 95617 }, - { 0x6105, 95619 }, - { 0x6106, 95621 }, - { 0x6107, 95623 }, - { 0x6108, 95625 }, - { 0x6109, 95627 }, - { 0x610A, 95629 }, - { 0x610B, 95631 }, - { 0x610C, 95633 }, - { 0x610D, 95635 }, - { 0x610E, 95637 }, - { 0x610F, 95639 }, - { 0x6110, 95641 }, - { 0x6111, 95643 }, - { 0x6112, 95645 }, - { 0x6113, 95647 }, - { 0x6114, 95649 }, - { 0x6115, 95651 }, - { 0x6116, 95653 }, - { 0x6117, 95655 }, - { 0x6118, 95657 }, - { 0x6119, 95659 }, - { 0x611A, 95661 }, - { 0x611B, 95663 }, - { 0x611C, 95665 }, - { 0x611D, 95667 }, - { 0x611E, 95669 }, - { 0x611F, 95671 }, - { 0x6120, 95673 }, - { 0x6121, 95675 }, - { 0x6122, 95677 }, - { 0x6123, 95679 }, - { 0x6124, 95681 }, - { 0x6125, 95683 }, - { 0x6126, 95685 }, - { 0x6127, 95687 }, - { 0x6128, 95689 }, - { 0x6129, 95691 }, - { 0x612A, 95693 }, - { 0x612B, 95695 }, - { 0x612C, 95697 }, - { 0x612D, 95699 }, - { 0x612E, 95701 }, - { 0x612F, 95703 }, - { 0x6130, 95705 }, - { 0x6131, 95707 }, - { 0x6132, 95709 }, - { 0x6133, 95711 }, - { 0x6134, 95713 }, - { 0x6135, 95715 }, - { 0x6136, 95717 }, - { 0x6137, 95719 }, - { 0x6138, 95721 }, - { 0x6139, 95723 }, - { 0x613A, 95725 }, - { 0x613B, 95727 }, - { 0x613C, 95729 }, - { 0x613D, 95731 }, - { 0x613E, 95733 }, - { 0x613F, 95735 }, - { 0x6140, 95737 }, - { 0x6141, 95739 }, - { 0x6142, 95741 }, - { 0x6143, 95743 }, - { 0x6144, 95745 }, - { 0x6145, 95747 }, - { 0x6146, 95749 }, - { 0x6147, 95751 }, - { 0x6148, 95753 }, - { 0x6149, 95755 }, - { 0x614A, 95757 }, - { 0x614B, 95759 }, - { 0x614C, 95761 }, - { 0x614D, 95763 }, - { 0x614E, 95765 }, - { 0x614F, 95767 }, - { 0x6150, 95769 }, - { 0x6151, 95771 }, - { 0x6152, 95773 }, - { 0x6153, 95775 }, - { 0x6154, 95777 }, - { 0x6155, 95779 }, - { 0x6156, 95781 }, - { 0x6157, 95783 }, - { 0x6158, 95785 }, - { 0x6159, 95787 }, - { 0x615A, 95789 }, - { 0x615B, 95791 }, - { 0x615C, 95793 }, - { 0x615D, 95795 }, - { 0x615E, 95797 }, - { 0x615F, 95799 }, - { 0x6160, 95801 }, - { 0x6161, 95803 }, - { 0x6162, 95805 }, - { 0x6163, 95807 }, - { 0x6164, 95809 }, - { 0x6165, 95811 }, - { 0x6166, 95813 }, - { 0x6167, 95815 }, - { 0x6168, 95817 }, - { 0x6169, 95819 }, - { 0x616A, 95821 }, - { 0x616B, 95823 }, - { 0x616C, 95825 }, - { 0x616D, 95827 }, - { 0x616E, 95829 }, - { 0x616F, 95831 }, - { 0x6170, 95833 }, - { 0x6171, 95835 }, - { 0x6172, 95837 }, - { 0x6173, 95839 }, - { 0x6174, 95841 }, - { 0x6175, 95843 }, - { 0x6176, 95845 }, - { 0x6177, 95847 }, - { 0x6178, 95849 }, - { 0x6179, 95851 }, - { 0x617A, 95853 }, - { 0x617B, 95855 }, - { 0x617C, 95857 }, - { 0x617D, 95859 }, - { 0x617E, 95861 }, - { 0x617F, 95863 }, - { 0x6180, 95865 }, - { 0x6181, 95867 }, - { 0x6182, 95869 }, - { 0x6183, 95871 }, - { 0x6184, 95873 }, - { 0x6185, 95875 }, - { 0x6186, 95877 }, - { 0x6187, 95879 }, - { 0x6188, 95881 }, - { 0x6189, 95883 }, - { 0x618A, 95885 }, - { 0x618B, 95887 }, - { 0x618C, 95889 }, - { 0x618D, 95891 }, - { 0x618E, 95893 }, - { 0x618F, 95895 }, - { 0x6190, 95897 }, - { 0x6191, 95899 }, - { 0x6192, 95901 }, - { 0x6193, 95903 }, - { 0x6194, 95905 }, - { 0x6195, 95907 }, - { 0x6196, 95909 }, - { 0x6197, 95911 }, - { 0x6198, 95913 }, - { 0x6199, 95915 }, - { 0x619A, 95917 }, - { 0x619B, 95919 }, - { 0x619C, 95921 }, - { 0x619D, 95923 }, - { 0x619E, 95925 }, - { 0x619F, 95927 }, - { 0x61A0, 95929 }, - { 0x61A1, 95931 }, - { 0x61A2, 95933 }, - { 0x61A3, 95935 }, - { 0x61A4, 95937 }, - { 0x61A5, 95939 }, - { 0x61A6, 95941 }, - { 0x61A7, 95943 }, - { 0x61A8, 95945 }, - { 0x61A9, 95947 }, - { 0x61AA, 95949 }, - { 0x61AB, 95951 }, - { 0x61AC, 95953 }, - { 0x61AD, 95955 }, - { 0x61AE, 95957 }, - { 0x61AF, 95959 }, - { 0x61B0, 95961 }, - { 0x61B1, 95963 }, - { 0x61B2, 95965 }, - { 0x61B3, 95967 }, - { 0x61B4, 95969 }, - { 0x61B5, 95971 }, - { 0x61B6, 95973 }, - { 0x61B7, 95975 }, - { 0x61B8, 95977 }, - { 0x61B9, 95979 }, - { 0x61BA, 95981 }, - { 0x61BB, 95983 }, - { 0x61BC, 95985 }, - { 0x61BD, 95987 }, - { 0x61BE, 95989 }, - { 0x61BF, 95991 }, - { 0x61C0, 95993 }, - { 0x61C1, 95995 }, - { 0x61C2, 95997 }, - { 0x61C3, 95999 }, - { 0x61C4, 96001 }, - { 0x61C5, 96003 }, - { 0x61C6, 96005 }, - { 0x61C7, 96007 }, - { 0x61C8, 96009 }, - { 0x61C9, 96011 }, - { 0x61CA, 96013 }, - { 0x61CB, 96015 }, - { 0x61CC, 96017 }, - { 0x61CD, 96019 }, - { 0x61CE, 96021 }, - { 0x61CF, 96023 }, - { 0x61D0, 96025 }, - { 0x61D1, 96027 }, - { 0x61D2, 96029 }, - { 0x61D3, 96031 }, - { 0x61D4, 96033 }, - { 0x61D5, 96035 }, - { 0x61D6, 96037 }, - { 0x61D7, 96039 }, - { 0x61D8, 96041 }, - { 0x61D9, 96043 }, - { 0x61DA, 96045 }, - { 0x61DB, 96047 }, - { 0x61DC, 96049 }, - { 0x61DD, 96051 }, - { 0x61DE, 96053 }, - { 0x61DF, 96055 }, - { 0x61E0, 96057 }, - { 0x61E1, 96059 }, - { 0x61E2, 96061 }, - { 0x61E3, 96063 }, - { 0x61E4, 96065 }, - { 0x61E5, 96067 }, - { 0x61E6, 96069 }, - { 0x61E7, 96071 }, - { 0x61E8, 96073 }, - { 0x61E9, 96075 }, - { 0x61EA, 96077 }, - { 0x61EB, 96079 }, - { 0x61EC, 96081 }, - { 0x61ED, 96083 }, - { 0x61EE, 96085 }, - { 0x61EF, 96087 }, - { 0x61F0, 96089 }, - { 0x61F1, 96091 }, - { 0x61F2, 96093 }, - { 0x61F3, 96095 }, - { 0x61F4, 96097 }, - { 0x61F5, 96099 }, - { 0x61F6, 96101 }, - { 0x61F7, 96103 }, - { 0x61F8, 96105 }, - { 0x61F9, 96107 }, - { 0x61FA, 96109 }, - { 0x61FB, 96111 }, - { 0x61FC, 96113 }, - { 0x61FD, 96115 }, - { 0x61FE, 96117 }, - { 0x61FF, 96119 }, - { 0x6200, 96121 }, - { 0x6201, 96123 }, - { 0x6202, 96125 }, - { 0x6203, 96127 }, - { 0x6204, 96129 }, - { 0x6205, 96131 }, - { 0x6206, 96133 }, - { 0x6207, 96135 }, - { 0x6208, 96137 }, - { 0x6209, 96139 }, - { 0x620A, 96141 }, - { 0x620B, 96143 }, - { 0x620C, 96145 }, - { 0x620D, 96147 }, - { 0x620E, 96149 }, - { 0x620F, 96151 }, - { 0x6210, 96153 }, - { 0x6211, 96155 }, - { 0x6212, 96157 }, - { 0x6213, 96159 }, - { 0x6214, 96161 }, - { 0x6215, 96163 }, - { 0x6216, 96165 }, - { 0x6217, 96167 }, - { 0x6218, 96169 }, - { 0x6219, 96171 }, - { 0x621A, 96173 }, - { 0x621B, 96175 }, - { 0x621C, 96177 }, - { 0x621D, 96179 }, - { 0x621E, 96181 }, - { 0x621F, 96183 }, - { 0x6220, 96185 }, - { 0x6221, 96187 }, - { 0x6222, 96189 }, - { 0x6223, 96191 }, - { 0x6224, 96193 }, - { 0x6225, 96195 }, - { 0x6226, 96197 }, - { 0x6227, 96199 }, - { 0x6228, 96201 }, - { 0x6229, 96203 }, - { 0x622A, 96205 }, - { 0x622B, 96207 }, - { 0x622C, 96209 }, - { 0x622D, 96211 }, - { 0x622E, 96213 }, - { 0x622F, 96215 }, - { 0x6230, 96217 }, - { 0x6231, 96219 }, - { 0x6232, 96221 }, - { 0x6233, 96223 }, - { 0x6234, 96225 }, - { 0x6235, 96227 }, - { 0x6236, 96229 }, - { 0x6237, 96231 }, - { 0x6238, 96233 }, - { 0x6239, 96235 }, - { 0x623A, 96237 }, - { 0x623B, 96239 }, - { 0x623C, 96241 }, - { 0x623D, 96243 }, - { 0x623E, 96245 }, - { 0x623F, 96247 }, - { 0x6240, 96249 }, - { 0x6241, 96251 }, - { 0x6242, 96253 }, - { 0x6243, 96255 }, - { 0x6244, 96257 }, - { 0x6245, 96259 }, - { 0x6246, 96261 }, - { 0x6247, 96263 }, - { 0x6248, 96265 }, - { 0x6249, 96267 }, - { 0x624A, 96269 }, - { 0x624B, 96271 }, - { 0x624C, 96273 }, - { 0x624D, 96275 }, - { 0x624E, 96277 }, - { 0x624F, 96279 }, - { 0x6250, 96281 }, - { 0x6251, 96283 }, - { 0x6252, 96285 }, - { 0x6253, 96287 }, - { 0x6254, 96289 }, - { 0x6255, 96291 }, - { 0x6256, 96293 }, - { 0x6257, 96295 }, - { 0x6258, 96297 }, - { 0x6259, 96299 }, - { 0x625A, 96301 }, - { 0x625B, 96303 }, - { 0x625C, 96305 }, - { 0x625D, 96307 }, - { 0x625E, 96309 }, - { 0x625F, 96311 }, - { 0x6260, 96313 }, - { 0x6261, 96315 }, - { 0x6262, 96317 }, - { 0x6263, 96319 }, - { 0x6264, 96321 }, - { 0x6265, 96323 }, - { 0x6266, 96325 }, - { 0x6267, 96327 }, - { 0x6268, 96329 }, - { 0x6269, 96331 }, - { 0x626A, 96333 }, - { 0x626B, 96335 }, - { 0x626C, 96337 }, - { 0x626D, 96339 }, - { 0x626E, 96341 }, - { 0x626F, 96343 }, - { 0x6270, 96345 }, - { 0x6271, 96347 }, - { 0x6272, 96349 }, - { 0x6273, 96351 }, - { 0x6274, 96353 }, - { 0x6275, 96355 }, - { 0x6276, 96357 }, - { 0x6277, 96359 }, - { 0x6278, 96361 }, - { 0x6279, 96363 }, - { 0x627A, 96365 }, - { 0x627B, 96367 }, - { 0x627C, 96369 }, - { 0x627D, 96371 }, - { 0x627E, 96373 }, - { 0x627F, 96375 }, - { 0x6280, 96377 }, - { 0x6281, 96379 }, - { 0x6282, 96381 }, - { 0x6283, 96383 }, - { 0x6284, 96385 }, - { 0x6285, 96387 }, - { 0x6286, 96389 }, - { 0x6287, 96391 }, - { 0x6288, 96393 }, - { 0x6289, 96395 }, - { 0x628A, 96397 }, - { 0x628B, 96399 }, - { 0x628C, 96401 }, - { 0x628D, 96403 }, - { 0x628E, 96405 }, - { 0x628F, 96407 }, - { 0x6290, 96409 }, - { 0x6291, 96411 }, - { 0x6292, 96413 }, - { 0x6293, 96415 }, - { 0x6294, 96417 }, - { 0x6295, 96419 }, - { 0x6296, 96421 }, - { 0x6297, 96423 }, - { 0x6298, 96425 }, - { 0x6299, 96427 }, - { 0x629A, 96429 }, - { 0x629B, 96431 }, - { 0x629C, 96433 }, - { 0x629D, 96435 }, - { 0x629E, 96437 }, - { 0x629F, 96439 }, - { 0x62A0, 96441 }, - { 0x62A1, 96443 }, - { 0x62A2, 96445 }, - { 0x62A3, 96447 }, - { 0x62A4, 96449 }, - { 0x62A5, 96451 }, - { 0x62A6, 96453 }, - { 0x62A7, 96455 }, - { 0x62A8, 96457 }, - { 0x62A9, 96459 }, - { 0x62AA, 96461 }, - { 0x62AB, 96463 }, - { 0x62AC, 96465 }, - { 0x62AD, 96467 }, - { 0x62AE, 96469 }, - { 0x62AF, 96471 }, - { 0x62B0, 96473 }, - { 0x62B1, 96475 }, - { 0x62B2, 96477 }, - { 0x62B3, 96479 }, - { 0x62B4, 96481 }, - { 0x62B5, 96483 }, - { 0x62B6, 96485 }, - { 0x62B7, 96487 }, - { 0x62B8, 96489 }, - { 0x62B9, 96491 }, - { 0x62BA, 96493 }, - { 0x62BB, 96495 }, - { 0x62BC, 96497 }, - { 0x62BD, 96499 }, - { 0x62BE, 96501 }, - { 0x62BF, 96503 }, - { 0x62C0, 96505 }, - { 0x62C1, 96507 }, - { 0x62C2, 96509 }, - { 0x62C3, 96511 }, - { 0x62C4, 96513 }, - { 0x62C5, 96515 }, - { 0x62C6, 96517 }, - { 0x62C7, 96519 }, - { 0x62C8, 96521 }, - { 0x62C9, 96523 }, - { 0x62CA, 96525 }, - { 0x62CB, 96527 }, - { 0x62CC, 96529 }, - { 0x62CD, 96531 }, - { 0x62CE, 96533 }, - { 0x62CF, 96535 }, - { 0x62D0, 96537 }, - { 0x62D1, 96539 }, - { 0x62D2, 96541 }, - { 0x62D3, 96543 }, - { 0x62D4, 96545 }, - { 0x62D5, 96547 }, - { 0x62D6, 96549 }, - { 0x62D7, 96551 }, - { 0x62D8, 96553 }, - { 0x62D9, 96555 }, - { 0x62DA, 96557 }, - { 0x62DB, 96559 }, - { 0x62DC, 96561 }, - { 0x62DD, 96563 }, - { 0x62DE, 96565 }, - { 0x62DF, 96567 }, - { 0x62E0, 96569 }, - { 0x62E1, 96571 }, - { 0x62E2, 96573 }, - { 0x62E3, 96575 }, - { 0x62E4, 96577 }, - { 0x62E5, 96579 }, - { 0x62E6, 96581 }, - { 0x62E7, 96583 }, - { 0x62E8, 96585 }, - { 0x62E9, 96587 }, - { 0x62EA, 96589 }, - { 0x62EB, 96591 }, - { 0x62EC, 96593 }, - { 0x62ED, 96595 }, - { 0x62EE, 96597 }, - { 0x62EF, 96599 }, - { 0x62F0, 96601 }, - { 0x62F1, 96603 }, - { 0x62F2, 96605 }, - { 0x62F3, 96607 }, - { 0x62F4, 96609 }, - { 0x62F5, 96611 }, - { 0x62F6, 96613 }, - { 0x62F7, 96615 }, - { 0x62F8, 96617 }, - { 0x62F9, 96619 }, - { 0x62FA, 96621 }, - { 0x62FB, 96623 }, - { 0x62FC, 96625 }, - { 0x62FD, 96627 }, - { 0x62FE, 96629 }, - { 0x62FF, 96631 }, - { 0x6300, 96633 }, - { 0x6301, 96635 }, - { 0x6302, 96637 }, - { 0x6303, 96639 }, - { 0x6304, 96641 }, - { 0x6305, 96643 }, - { 0x6306, 96645 }, - { 0x6307, 96647 }, - { 0x6308, 96649 }, - { 0x6309, 96651 }, - { 0x630A, 96653 }, - { 0x630B, 96655 }, - { 0x630C, 96657 }, - { 0x630D, 96659 }, - { 0x630E, 96661 }, - { 0x630F, 96663 }, - { 0x6310, 96665 }, - { 0x6311, 96667 }, - { 0x6312, 96669 }, - { 0x6313, 96671 }, - { 0x6314, 96673 }, - { 0x6315, 96675 }, - { 0x6316, 96677 }, - { 0x6317, 96679 }, - { 0x6318, 96681 }, - { 0x6319, 96683 }, - { 0x631A, 96685 }, - { 0x631B, 96687 }, - { 0x631C, 96689 }, - { 0x631D, 96691 }, - { 0x631E, 96693 }, - { 0x631F, 96695 }, - { 0x6320, 96697 }, - { 0x6321, 96699 }, - { 0x6322, 96701 }, - { 0x6323, 96703 }, - { 0x6324, 96705 }, - { 0x6325, 96707 }, - { 0x6326, 96709 }, - { 0x6327, 96711 }, - { 0x6328, 96713 }, - { 0x6329, 96715 }, - { 0x632A, 96717 }, - { 0x632B, 96719 }, - { 0x632C, 96721 }, - { 0x632D, 96723 }, - { 0x632E, 96725 }, - { 0x632F, 96727 }, - { 0x6330, 96729 }, - { 0x6331, 96731 }, - { 0x6332, 96733 }, - { 0x6333, 96735 }, - { 0x6334, 96737 }, - { 0x6335, 96739 }, - { 0x6336, 96741 }, - { 0x6337, 96743 }, - { 0x6338, 96745 }, - { 0x6339, 96747 }, - { 0x633A, 96749 }, - { 0x633B, 96751 }, - { 0x633C, 96753 }, - { 0x633D, 96755 }, - { 0x633E, 96757 }, - { 0x633F, 96759 }, - { 0x6340, 96761 }, - { 0x6341, 96763 }, - { 0x6342, 96765 }, - { 0x6343, 96767 }, - { 0x6344, 96769 }, - { 0x6345, 96771 }, - { 0x6346, 96773 }, - { 0x6347, 96775 }, - { 0x6348, 96777 }, - { 0x6349, 96779 }, - { 0x634A, 96781 }, - { 0x634B, 96783 }, - { 0x634C, 96785 }, - { 0x634D, 96787 }, - { 0x634E, 96789 }, - { 0x634F, 96791 }, - { 0x6350, 96793 }, - { 0x6351, 96795 }, - { 0x6352, 96797 }, - { 0x6353, 96799 }, - { 0x6354, 96801 }, - { 0x6355, 96803 }, - { 0x6356, 96805 }, - { 0x6357, 96807 }, - { 0x6358, 96809 }, - { 0x6359, 96811 }, - { 0x635A, 96813 }, - { 0x635B, 96815 }, - { 0x635C, 96817 }, - { 0x635D, 96819 }, - { 0x635E, 96821 }, - { 0x635F, 96823 }, - { 0x6360, 96825 }, - { 0x6361, 96827 }, - { 0x6362, 96829 }, - { 0x6363, 96831 }, - { 0x6364, 96833 }, - { 0x6365, 96835 }, - { 0x6366, 96837 }, - { 0x6367, 96839 }, - { 0x6368, 96841 }, - { 0x6369, 96843 }, - { 0x636A, 96845 }, - { 0x636B, 96847 }, - { 0x636C, 96849 }, - { 0x636D, 96851 }, - { 0x636E, 96853 }, - { 0x636F, 96855 }, - { 0x6370, 96857 }, - { 0x6371, 96859 }, - { 0x6372, 96861 }, - { 0x6373, 96863 }, - { 0x6374, 96865 }, - { 0x6375, 96867 }, - { 0x6376, 96869 }, - { 0x6377, 96871 }, - { 0x6378, 96873 }, - { 0x6379, 96875 }, - { 0x637A, 96877 }, - { 0x637B, 96879 }, - { 0x637C, 96881 }, - { 0x637D, 96883 }, - { 0x637E, 96885 }, - { 0x637F, 96887 }, - { 0x6380, 96889 }, - { 0x6381, 96891 }, - { 0x6382, 96893 }, - { 0x6383, 96895 }, - { 0x6384, 96897 }, - { 0x6385, 96899 }, - { 0x6386, 96901 }, - { 0x6387, 96903 }, - { 0x6388, 96905 }, - { 0x6389, 96907 }, - { 0x638A, 96909 }, - { 0x638B, 96911 }, - { 0x638C, 96913 }, - { 0x638D, 96915 }, - { 0x638E, 96917 }, - { 0x638F, 96919 }, - { 0x6390, 96921 }, - { 0x6391, 96923 }, - { 0x6392, 96925 }, - { 0x6393, 96927 }, - { 0x6394, 96929 }, - { 0x6395, 96931 }, - { 0x6396, 96933 }, - { 0x6397, 96935 }, - { 0x6398, 96937 }, - { 0x6399, 96939 }, - { 0x639A, 96941 }, - { 0x639B, 96943 }, - { 0x639C, 96945 }, - { 0x639D, 96947 }, - { 0x639E, 96949 }, - { 0x639F, 96951 }, - { 0x63A0, 96953 }, - { 0x63A1, 96955 }, - { 0x63A2, 96957 }, - { 0x63A3, 96959 }, - { 0x63A4, 96961 }, - { 0x63A5, 96963 }, - { 0x63A6, 96965 }, - { 0x63A7, 96967 }, - { 0x63A8, 96969 }, - { 0x63A9, 96971 }, - { 0x63AA, 96973 }, - { 0x63AB, 96975 }, - { 0x63AC, 96977 }, - { 0x63AD, 96979 }, - { 0x63AE, 96981 }, - { 0x63AF, 96983 }, - { 0x63B0, 96985 }, - { 0x63B1, 96987 }, - { 0x63B2, 96989 }, - { 0x63B3, 96991 }, - { 0x63B4, 96993 }, - { 0x63B5, 96995 }, - { 0x63B6, 96997 }, - { 0x63B7, 96999 }, - { 0x63B8, 97001 }, - { 0x63B9, 97003 }, - { 0x63BA, 97005 }, - { 0x63BB, 97007 }, - { 0x63BC, 97009 }, - { 0x63BD, 97011 }, - { 0x63BE, 97013 }, - { 0x63BF, 97015 }, - { 0x63C0, 97017 }, - { 0x63C1, 97019 }, - { 0x63C2, 97021 }, - { 0x63C3, 97023 }, - { 0x63C4, 97025 }, - { 0x63C5, 97027 }, - { 0x63C6, 97029 }, - { 0x63C7, 97031 }, - { 0x63C8, 97033 }, - { 0x63C9, 97035 }, - { 0x63CA, 97037 }, - { 0x63CB, 97039 }, - { 0x63CC, 97041 }, - { 0x63CD, 97043 }, - { 0x63CE, 97045 }, - { 0x63CF, 97047 }, - { 0x63D0, 97049 }, - { 0x63D1, 97051 }, - { 0x63D2, 97053 }, - { 0x63D3, 97055 }, - { 0x63D4, 97057 }, - { 0x63D5, 97059 }, - { 0x63D6, 97061 }, - { 0x63D7, 97063 }, - { 0x63D8, 97065 }, - { 0x63D9, 97067 }, - { 0x63DA, 97069 }, - { 0x63DB, 97071 }, - { 0x63DC, 97073 }, - { 0x63DD, 97075 }, - { 0x63DE, 97077 }, - { 0x63DF, 97079 }, - { 0x63E0, 97081 }, - { 0x63E1, 97083 }, - { 0x63E2, 97085 }, - { 0x63E3, 97087 }, - { 0x63E4, 97089 }, - { 0x63E5, 97091 }, - { 0x63E6, 97093 }, - { 0x63E7, 97095 }, - { 0x63E8, 97097 }, - { 0x63E9, 97099 }, - { 0x63EA, 97101 }, - { 0x63EB, 97103 }, - { 0x63EC, 97105 }, - { 0x63ED, 97107 }, - { 0x63EE, 97109 }, - { 0x63EF, 97111 }, - { 0x63F0, 97113 }, - { 0x63F1, 97115 }, - { 0x63F2, 97117 }, - { 0x63F3, 97119 }, - { 0x63F4, 97121 }, - { 0x63F5, 97123 }, - { 0x63F6, 97125 }, - { 0x63F7, 97127 }, - { 0x63F8, 97129 }, - { 0x63F9, 97131 }, - { 0x63FA, 97133 }, - { 0x63FB, 97135 }, - { 0x63FC, 97137 }, - { 0x63FD, 97139 }, - { 0x63FE, 97141 }, - { 0x63FF, 97143 }, - { 0x6400, 97145 }, - { 0x6401, 97147 }, - { 0x6402, 97149 }, - { 0x6403, 97151 }, - { 0x6404, 97153 }, - { 0x6405, 97155 }, - { 0x6406, 97157 }, - { 0x6407, 97159 }, - { 0x6408, 97161 }, - { 0x6409, 97163 }, - { 0x640A, 97165 }, - { 0x640B, 97167 }, - { 0x640C, 97169 }, - { 0x640D, 97171 }, - { 0x640E, 97173 }, - { 0x640F, 97175 }, - { 0x6410, 97177 }, - { 0x6411, 97179 }, - { 0x6412, 97181 }, - { 0x6413, 97183 }, - { 0x6414, 97185 }, - { 0x6415, 97187 }, - { 0x6416, 97189 }, - { 0x6417, 97191 }, - { 0x6418, 97193 }, - { 0x6419, 97195 }, - { 0x641A, 97197 }, - { 0x641B, 97199 }, - { 0x641C, 97201 }, - { 0x641D, 97203 }, - { 0x641E, 97205 }, - { 0x641F, 97207 }, - { 0x6420, 97209 }, - { 0x6421, 97211 }, - { 0x6422, 97213 }, - { 0x6423, 97215 }, - { 0x6424, 97217 }, - { 0x6425, 97219 }, - { 0x6426, 97221 }, - { 0x6427, 97223 }, - { 0x6428, 97225 }, - { 0x6429, 97227 }, - { 0x642A, 97229 }, - { 0x642B, 97231 }, - { 0x642C, 97233 }, - { 0x642D, 97235 }, - { 0x642E, 97237 }, - { 0x642F, 97239 }, - { 0x6430, 97241 }, - { 0x6431, 97243 }, - { 0x6432, 97245 }, - { 0x6433, 97247 }, - { 0x6434, 97249 }, - { 0x6435, 97251 }, - { 0x6436, 97253 }, - { 0x6437, 97255 }, - { 0x6438, 97257 }, - { 0x6439, 97259 }, - { 0x643A, 97261 }, - { 0x643B, 97263 }, - { 0x643C, 97265 }, - { 0x643D, 97267 }, - { 0x643E, 97269 }, - { 0x643F, 97271 }, - { 0x6440, 97273 }, - { 0x6441, 97275 }, - { 0x6442, 97277 }, - { 0x6443, 97279 }, - { 0x6444, 97281 }, - { 0x6445, 97283 }, - { 0x6446, 97285 }, - { 0x6447, 97287 }, - { 0x6448, 97289 }, - { 0x6449, 97291 }, - { 0x644A, 97293 }, - { 0x644B, 97295 }, - { 0x644C, 97297 }, - { 0x644D, 97299 }, - { 0x644E, 97301 }, - { 0x644F, 97303 }, - { 0x6450, 97305 }, - { 0x6451, 97307 }, - { 0x6452, 97309 }, - { 0x6453, 97311 }, - { 0x6454, 97313 }, - { 0x6455, 97315 }, - { 0x6456, 97317 }, - { 0x6457, 97319 }, - { 0x6458, 97321 }, - { 0x6459, 97323 }, - { 0x645A, 97325 }, - { 0x645B, 97327 }, - { 0x645C, 97329 }, - { 0x645D, 97331 }, - { 0x645E, 97333 }, - { 0x645F, 97335 }, - { 0x6460, 97337 }, - { 0x6461, 97339 }, - { 0x6462, 97341 }, - { 0x6463, 97343 }, - { 0x6464, 97345 }, - { 0x6465, 97347 }, - { 0x6466, 97349 }, - { 0x6467, 97351 }, - { 0x6468, 97353 }, - { 0x6469, 97355 }, - { 0x646A, 97357 }, - { 0x646B, 97359 }, - { 0x646C, 97361 }, - { 0x646D, 97363 }, - { 0x646E, 97365 }, - { 0x646F, 97367 }, - { 0x6470, 97369 }, - { 0x6471, 97371 }, - { 0x6472, 97373 }, - { 0x6473, 97375 }, - { 0x6474, 97377 }, - { 0x6475, 97379 }, - { 0x6476, 97381 }, - { 0x6477, 97383 }, - { 0x6478, 97385 }, - { 0x6479, 97387 }, - { 0x647A, 97389 }, - { 0x647B, 97391 }, - { 0x647C, 97393 }, - { 0x647D, 97395 }, - { 0x647E, 97397 }, - { 0x647F, 97399 }, - { 0x6480, 97401 }, - { 0x6481, 97403 }, - { 0x6482, 97405 }, - { 0x6483, 97407 }, - { 0x6484, 97409 }, - { 0x6485, 97411 }, - { 0x6486, 97413 }, - { 0x6487, 97415 }, - { 0x6488, 97417 }, - { 0x6489, 97419 }, - { 0x648A, 97421 }, - { 0x648B, 97423 }, - { 0x648C, 97425 }, - { 0x648D, 97427 }, - { 0x648E, 97429 }, - { 0x648F, 97431 }, - { 0x6490, 97433 }, - { 0x6491, 97435 }, - { 0x6492, 97437 }, - { 0x6493, 97439 }, - { 0x6494, 97441 }, - { 0x6495, 97443 }, - { 0x6496, 97445 }, - { 0x6497, 97447 }, - { 0x6498, 97449 }, - { 0x6499, 97451 }, - { 0x649A, 97453 }, - { 0x649B, 97455 }, - { 0x649C, 97457 }, - { 0x649D, 97459 }, - { 0x649E, 97461 }, - { 0x649F, 97463 }, - { 0x64A0, 97465 }, - { 0x64A1, 97467 }, - { 0x64A2, 97469 }, - { 0x64A3, 97471 }, - { 0x64A4, 97473 }, - { 0x64A5, 97475 }, - { 0x64A6, 97477 }, - { 0x64A7, 97479 }, - { 0x64A8, 97481 }, - { 0x64A9, 97483 }, - { 0x64AA, 97485 }, - { 0x64AB, 97487 }, - { 0x64AC, 97489 }, - { 0x64AD, 97491 }, - { 0x64AE, 97493 }, - { 0x64AF, 97495 }, - { 0x64B0, 97497 }, - { 0x64B1, 97499 }, - { 0x64B2, 97501 }, - { 0x64B3, 97503 }, - { 0x64B4, 97505 }, - { 0x64B5, 97507 }, - { 0x64B6, 97509 }, - { 0x64B7, 97511 }, - { 0x64B8, 97513 }, - { 0x64B9, 97515 }, - { 0x64BA, 97517 }, - { 0x64BB, 97519 }, - { 0x64BC, 97521 }, - { 0x64BD, 97523 }, - { 0x64BE, 97525 }, - { 0x64BF, 97527 }, - { 0x64C0, 97529 }, - { 0x64C1, 97531 }, - { 0x64C2, 97533 }, - { 0x64C3, 97535 }, - { 0x64C4, 97537 }, - { 0x64C5, 97539 }, - { 0x64C6, 97541 }, - { 0x64C7, 97543 }, - { 0x64C8, 97545 }, - { 0x64C9, 97547 }, - { 0x64CA, 97549 }, - { 0x64CB, 97551 }, - { 0x64CC, 97553 }, - { 0x64CD, 97555 }, - { 0x64CE, 97557 }, - { 0x64CF, 97559 }, - { 0x64D0, 97561 }, - { 0x64D1, 97563 }, - { 0x64D2, 97565 }, - { 0x64D3, 97567 }, - { 0x64D4, 97569 }, - { 0x64D5, 97571 }, - { 0x64D6, 97573 }, - { 0x64D7, 97575 }, - { 0x64D8, 97577 }, - { 0x64D9, 97579 }, - { 0x64DA, 97581 }, - { 0x64DB, 97583 }, - { 0x64DC, 97585 }, - { 0x64DD, 97587 }, - { 0x64DE, 97589 }, - { 0x64DF, 97591 }, - { 0x64E0, 97593 }, - { 0x64E1, 97595 }, - { 0x64E2, 97597 }, - { 0x64E3, 97599 }, - { 0x64E4, 97601 }, - { 0x64E5, 97603 }, - { 0x64E6, 97605 }, - { 0x64E7, 97607 }, - { 0x64E8, 97609 }, - { 0x64E9, 97611 }, - { 0x64EA, 97613 }, - { 0x64EB, 97615 }, - { 0x64EC, 97617 }, - { 0x64ED, 97619 }, - { 0x64EE, 97621 }, - { 0x64EF, 97623 }, - { 0x64F0, 97625 }, - { 0x64F1, 97627 }, - { 0x64F2, 97629 }, - { 0x64F3, 97631 }, - { 0x64F4, 97633 }, - { 0x64F5, 97635 }, - { 0x64F6, 97637 }, - { 0x64F7, 97639 }, - { 0x64F8, 97641 }, - { 0x64F9, 97643 }, - { 0x64FA, 97645 }, - { 0x64FB, 97647 }, - { 0x64FC, 97649 }, - { 0x64FD, 97651 }, - { 0x64FE, 97653 }, - { 0x64FF, 97655 }, - { 0x6500, 97657 }, - { 0x6501, 97659 }, - { 0x6502, 97661 }, - { 0x6503, 97663 }, - { 0x6504, 97665 }, - { 0x6505, 97667 }, - { 0x6506, 97669 }, - { 0x6507, 97671 }, - { 0x6508, 97673 }, - { 0x6509, 97675 }, - { 0x650A, 97677 }, - { 0x650B, 97679 }, - { 0x650C, 97681 }, - { 0x650D, 97683 }, - { 0x650E, 97685 }, - { 0x650F, 97687 }, - { 0x6510, 97689 }, - { 0x6511, 97691 }, - { 0x6512, 97693 }, - { 0x6513, 97695 }, - { 0x6514, 97697 }, - { 0x6515, 97699 }, - { 0x6516, 97701 }, - { 0x6517, 97703 }, - { 0x6518, 97705 }, - { 0x6519, 97707 }, - { 0x651A, 97709 }, - { 0x651B, 97711 }, - { 0x651C, 97713 }, - { 0x651D, 97715 }, - { 0x651E, 97717 }, - { 0x651F, 97719 }, - { 0x6520, 97721 }, - { 0x6521, 97723 }, - { 0x6522, 97725 }, - { 0x6523, 97727 }, - { 0x6524, 97729 }, - { 0x6525, 97731 }, - { 0x6526, 97733 }, - { 0x6527, 97735 }, - { 0x6528, 97737 }, - { 0x6529, 97739 }, - { 0x652A, 97741 }, - { 0x652B, 97743 }, - { 0x652C, 97745 }, - { 0x652D, 97747 }, - { 0x652E, 97749 }, - { 0x652F, 97751 }, - { 0x6530, 97753 }, - { 0x6531, 97755 }, - { 0x6532, 97757 }, - { 0x6533, 97759 }, - { 0x6534, 97761 }, - { 0x6535, 97763 }, - { 0x6536, 97765 }, - { 0x6537, 97767 }, - { 0x6538, 97769 }, - { 0x6539, 97771 }, - { 0x653A, 97773 }, - { 0x653B, 97775 }, - { 0x653C, 97777 }, - { 0x653D, 97779 }, - { 0x653E, 97781 }, - { 0x653F, 97783 }, - { 0x6540, 97785 }, - { 0x6541, 97787 }, - { 0x6542, 97789 }, - { 0x6543, 97791 }, - { 0x6544, 97793 }, - { 0x6545, 97795 }, - { 0x6546, 97797 }, - { 0x6547, 97799 }, - { 0x6548, 97801 }, - { 0x6549, 97803 }, - { 0x654A, 97805 }, - { 0x654B, 97807 }, - { 0x654C, 97809 }, - { 0x654D, 97811 }, - { 0x654E, 97813 }, - { 0x654F, 97815 }, - { 0x6550, 97817 }, - { 0x6551, 97819 }, - { 0x6552, 97821 }, - { 0x6553, 97823 }, - { 0x6554, 97825 }, - { 0x6555, 97827 }, - { 0x6556, 97829 }, - { 0x6557, 97831 }, - { 0x6558, 97833 }, - { 0x6559, 97835 }, - { 0x655A, 97837 }, - { 0x655B, 97839 }, - { 0x655C, 97841 }, - { 0x655D, 97843 }, - { 0x655E, 97845 }, - { 0x655F, 97847 }, - { 0x6560, 97849 }, - { 0x6561, 97851 }, - { 0x6562, 97853 }, - { 0x6563, 97855 }, - { 0x6564, 97857 }, - { 0x6565, 97859 }, - { 0x6566, 97861 }, - { 0x6567, 97863 }, - { 0x6568, 97865 }, - { 0x6569, 97867 }, - { 0x656A, 97869 }, - { 0x656B, 97871 }, - { 0x656C, 97873 }, - { 0x656D, 97875 }, - { 0x656E, 97877 }, - { 0x656F, 97879 }, - { 0x6570, 97881 }, - { 0x6571, 97883 }, - { 0x6572, 97885 }, - { 0x6573, 97887 }, - { 0x6574, 97889 }, - { 0x6575, 97891 }, - { 0x6576, 97893 }, - { 0x6577, 97895 }, - { 0x6578, 97897 }, - { 0x6579, 97899 }, - { 0x657A, 97901 }, - { 0x657B, 97903 }, - { 0x657C, 97905 }, - { 0x657D, 97907 }, - { 0x657E, 97909 }, - { 0x657F, 97911 }, - { 0x6580, 97913 }, - { 0x6581, 97915 }, - { 0x6582, 97917 }, - { 0x6583, 97919 }, - { 0x6584, 97921 }, - { 0x6585, 97923 }, - { 0x6586, 97925 }, - { 0x6587, 97927 }, - { 0x6588, 97929 }, - { 0x6589, 97931 }, - { 0x658A, 97933 }, - { 0x658B, 97935 }, - { 0x658C, 97937 }, - { 0x658D, 97939 }, - { 0x658E, 97941 }, - { 0x658F, 97943 }, - { 0x6590, 97945 }, - { 0x6591, 97947 }, - { 0x6592, 97949 }, - { 0x6593, 97951 }, - { 0x6594, 97953 }, - { 0x6595, 97955 }, - { 0x6596, 97957 }, - { 0x6597, 97959 }, - { 0x6598, 97961 }, - { 0x6599, 97963 }, - { 0x659A, 97965 }, - { 0x659B, 97967 }, - { 0x659C, 97969 }, - { 0x659D, 97971 }, - { 0x659E, 97973 }, - { 0x659F, 97975 }, - { 0x65A0, 97977 }, - { 0x65A1, 97979 }, - { 0x65A2, 97981 }, - { 0x65A3, 97983 }, - { 0x65A4, 97985 }, - { 0x65A5, 97987 }, - { 0x65A6, 97989 }, - { 0x65A7, 97991 }, - { 0x65A8, 97993 }, - { 0x65A9, 97995 }, - { 0x65AA, 97997 }, - { 0x65AB, 97999 }, - { 0x65AC, 98001 }, - { 0x65AD, 98003 }, - { 0x65AE, 98005 }, - { 0x65AF, 98007 }, - { 0x65B0, 98009 }, - { 0x65B1, 98011 }, - { 0x65B2, 98013 }, - { 0x65B3, 98015 }, - { 0x65B4, 98017 }, - { 0x65B5, 98019 }, - { 0x65B6, 98021 }, - { 0x65B7, 98023 }, - { 0x65B8, 98025 }, - { 0x65B9, 98027 }, - { 0x65BA, 98029 }, - { 0x65BB, 98031 }, - { 0x65BC, 98033 }, - { 0x65BD, 98035 }, - { 0x65BE, 98037 }, - { 0x65BF, 98039 }, - { 0x65C0, 98041 }, - { 0x65C1, 98043 }, - { 0x65C2, 98045 }, - { 0x65C3, 98047 }, - { 0x65C4, 98049 }, - { 0x65C5, 98051 }, - { 0x65C6, 98053 }, - { 0x65C7, 98055 }, - { 0x65C8, 98057 }, - { 0x65C9, 98059 }, - { 0x65CA, 98061 }, - { 0x65CB, 98063 }, - { 0x65CC, 98065 }, - { 0x65CD, 98067 }, - { 0x65CE, 98069 }, - { 0x65CF, 98071 }, - { 0x65D0, 98073 }, - { 0x65D1, 98075 }, - { 0x65D2, 98077 }, - { 0x65D3, 98079 }, - { 0x65D4, 98081 }, - { 0x65D5, 98083 }, - { 0x65D6, 98085 }, - { 0x65D7, 98087 }, - { 0x65D8, 98089 }, - { 0x65D9, 98091 }, - { 0x65DA, 98093 }, - { 0x65DB, 98095 }, - { 0x65DC, 98097 }, - { 0x65DD, 98099 }, - { 0x65DE, 98101 }, - { 0x65DF, 98103 }, - { 0x65E0, 98105 }, - { 0x65E1, 98107 }, - { 0x65E2, 98109 }, - { 0x65E3, 98111 }, - { 0x65E4, 98113 }, - { 0x65E5, 98115 }, - { 0x65E6, 98117 }, - { 0x65E7, 98119 }, - { 0x65E8, 98121 }, - { 0x65E9, 98123 }, - { 0x65EA, 98125 }, - { 0x65EB, 98127 }, - { 0x65EC, 98129 }, - { 0x65ED, 98131 }, - { 0x65EE, 98133 }, - { 0x65EF, 98135 }, - { 0x65F0, 98137 }, - { 0x65F1, 98139 }, - { 0x65F2, 98141 }, - { 0x65F3, 98143 }, - { 0x65F4, 98145 }, - { 0x65F5, 98147 }, - { 0x65F6, 98149 }, - { 0x65F7, 98151 }, - { 0x65F8, 98153 }, - { 0x65F9, 98155 }, - { 0x65FA, 98157 }, - { 0x65FB, 98159 }, - { 0x65FC, 98161 }, - { 0x65FD, 98163 }, - { 0x65FE, 98165 }, - { 0x65FF, 98167 }, - { 0x6600, 98169 }, - { 0x6601, 98171 }, - { 0x6602, 98173 }, - { 0x6603, 98175 }, - { 0x6604, 98177 }, - { 0x6605, 98179 }, - { 0x6606, 98181 }, - { 0x6607, 98183 }, - { 0x6608, 98185 }, - { 0x6609, 98187 }, - { 0x660A, 98189 }, - { 0x660B, 98191 }, - { 0x660C, 98193 }, - { 0x660D, 98195 }, - { 0x660E, 98197 }, - { 0x660F, 98199 }, - { 0x6610, 98201 }, - { 0x6611, 98203 }, - { 0x6612, 98205 }, - { 0x6613, 98207 }, - { 0x6614, 98209 }, - { 0x6615, 98211 }, - { 0x6616, 98213 }, - { 0x6617, 98215 }, - { 0x6618, 98217 }, - { 0x6619, 98219 }, - { 0x661A, 98221 }, - { 0x661B, 98223 }, - { 0x661C, 98225 }, - { 0x661D, 98227 }, - { 0x661E, 98229 }, - { 0x661F, 98231 }, - { 0x6620, 98233 }, - { 0x6621, 98235 }, - { 0x6622, 98237 }, - { 0x6623, 98239 }, - { 0x6624, 98241 }, - { 0x6625, 98243 }, - { 0x6626, 98245 }, - { 0x6627, 98247 }, - { 0x6628, 98249 }, - { 0x6629, 98251 }, - { 0x662A, 98253 }, - { 0x662B, 98255 }, - { 0x662C, 98257 }, - { 0x662D, 98259 }, - { 0x662E, 98261 }, - { 0x662F, 98263 }, - { 0x6630, 98265 }, - { 0x6631, 98267 }, - { 0x6632, 98269 }, - { 0x6633, 98271 }, - { 0x6634, 98273 }, - { 0x6635, 98275 }, - { 0x6636, 98277 }, - { 0x6637, 98279 }, - { 0x6638, 98281 }, - { 0x6639, 98283 }, - { 0x663A, 98285 }, - { 0x663B, 98287 }, - { 0x663C, 98289 }, - { 0x663D, 98291 }, - { 0x663E, 98293 }, - { 0x663F, 98295 }, - { 0x6640, 98297 }, - { 0x6641, 98299 }, - { 0x6642, 98301 }, - { 0x6643, 98303 }, - { 0x6644, 98305 }, - { 0x6645, 98307 }, - { 0x6646, 98309 }, - { 0x6647, 98311 }, - { 0x6648, 98313 }, - { 0x6649, 98315 }, - { 0x664A, 98317 }, - { 0x664B, 98319 }, - { 0x664C, 98321 }, - { 0x664D, 98323 }, - { 0x664E, 98325 }, - { 0x664F, 98327 }, - { 0x6650, 98329 }, - { 0x6651, 98331 }, - { 0x6652, 98333 }, - { 0x6653, 98335 }, - { 0x6654, 98337 }, - { 0x6655, 98339 }, - { 0x6656, 98341 }, - { 0x6657, 98343 }, - { 0x6658, 98345 }, - { 0x6659, 98347 }, - { 0x665A, 98349 }, - { 0x665B, 98351 }, - { 0x665C, 98353 }, - { 0x665D, 98355 }, - { 0x665E, 98357 }, - { 0x665F, 98359 }, - { 0x6660, 98361 }, - { 0x6661, 98363 }, - { 0x6662, 98365 }, - { 0x6663, 98367 }, - { 0x6664, 98369 }, - { 0x6665, 98371 }, - { 0x6666, 98373 }, - { 0x6667, 98375 }, - { 0x6668, 98377 }, - { 0x6669, 98379 }, - { 0x666A, 98381 }, - { 0x666B, 98383 }, - { 0x666C, 98385 }, - { 0x666D, 98387 }, - { 0x666E, 98389 }, - { 0x666F, 98391 }, - { 0x6670, 98393 }, - { 0x6671, 98395 }, - { 0x6672, 98397 }, - { 0x6673, 98399 }, - { 0x6674, 98401 }, - { 0x6675, 98403 }, - { 0x6676, 98405 }, - { 0x6677, 98407 }, - { 0x6678, 98409 }, - { 0x6679, 98411 }, - { 0x667A, 98413 }, - { 0x667B, 98415 }, - { 0x667C, 98417 }, - { 0x667D, 98419 }, - { 0x667E, 98421 }, - { 0x667F, 98423 }, - { 0x6680, 98425 }, - { 0x6681, 98427 }, - { 0x6682, 98429 }, - { 0x6683, 98431 }, - { 0x6684, 98433 }, - { 0x6685, 98435 }, - { 0x6686, 98437 }, - { 0x6687, 98439 }, - { 0x6688, 98441 }, - { 0x6689, 98443 }, - { 0x668A, 98445 }, - { 0x668B, 98447 }, - { 0x668C, 98449 }, - { 0x668D, 98451 }, - { 0x668E, 98453 }, - { 0x668F, 98455 }, - { 0x6690, 98457 }, - { 0x6691, 98459 }, - { 0x6692, 98461 }, - { 0x6693, 98463 }, - { 0x6694, 98465 }, - { 0x6695, 98467 }, - { 0x6696, 98469 }, - { 0x6697, 98471 }, - { 0x6698, 98473 }, - { 0x6699, 98475 }, - { 0x669A, 98477 }, - { 0x669B, 98479 }, - { 0x669C, 98481 }, - { 0x669D, 98483 }, - { 0x669E, 98485 }, - { 0x669F, 98487 }, - { 0x66A0, 98489 }, - { 0x66A1, 98491 }, - { 0x66A2, 98493 }, - { 0x66A3, 98495 }, - { 0x66A4, 98497 }, - { 0x66A5, 98499 }, - { 0x66A6, 98501 }, - { 0x66A7, 98503 }, - { 0x66A8, 98505 }, - { 0x66A9, 98507 }, - { 0x66AA, 98509 }, - { 0x66AB, 98511 }, - { 0x66AC, 98513 }, - { 0x66AD, 98515 }, - { 0x66AE, 98517 }, - { 0x66AF, 98519 }, - { 0x66B0, 98521 }, - { 0x66B1, 98523 }, - { 0x66B2, 98525 }, - { 0x66B3, 98527 }, - { 0x66B4, 98529 }, - { 0x66B5, 98531 }, - { 0x66B6, 98533 }, - { 0x66B7, 98535 }, - { 0x66B8, 98537 }, - { 0x66B9, 98539 }, - { 0x66BA, 98541 }, - { 0x66BB, 98543 }, - { 0x66BC, 98545 }, - { 0x66BD, 98547 }, - { 0x66BE, 98549 }, - { 0x66BF, 98551 }, - { 0x66C0, 98553 }, - { 0x66C1, 98555 }, - { 0x66C2, 98557 }, - { 0x66C3, 98559 }, - { 0x66C4, 98561 }, - { 0x66C5, 98563 }, - { 0x66C6, 98565 }, - { 0x66C7, 98567 }, - { 0x66C8, 98569 }, - { 0x66C9, 98571 }, - { 0x66CA, 98573 }, - { 0x66CB, 98575 }, - { 0x66CC, 98577 }, - { 0x66CD, 98579 }, - { 0x66CE, 98581 }, - { 0x66CF, 98583 }, - { 0x66D0, 98585 }, - { 0x66D1, 98587 }, - { 0x66D2, 98589 }, - { 0x66D3, 98591 }, - { 0x66D4, 98593 }, - { 0x66D5, 98595 }, - { 0x66D6, 98597 }, - { 0x66D7, 98599 }, - { 0x66D8, 98601 }, - { 0x66D9, 98603 }, - { 0x66DA, 98605 }, - { 0x66DB, 98607 }, - { 0x66DC, 98609 }, - { 0x66DD, 98611 }, - { 0x66DE, 98613 }, - { 0x66DF, 98615 }, - { 0x66E0, 98617 }, - { 0x66E1, 98619 }, - { 0x66E2, 98621 }, - { 0x66E3, 98623 }, - { 0x66E4, 98625 }, - { 0x66E5, 98627 }, - { 0x66E6, 98629 }, - { 0x66E7, 98631 }, - { 0x66E8, 98633 }, - { 0x66E9, 98635 }, - { 0x66EA, 98637 }, - { 0x66EB, 98639 }, - { 0x66EC, 98641 }, - { 0x66ED, 98643 }, - { 0x66EE, 98645 }, - { 0x66EF, 98647 }, - { 0x66F0, 98649 }, - { 0x66F1, 98651 }, - { 0x66F2, 98653 }, - { 0x66F3, 98655 }, - { 0x66F4, 98657 }, - { 0x66F5, 98659 }, - { 0x66F6, 98661 }, - { 0x66F7, 98663 }, - { 0x66F8, 98665 }, - { 0x66F9, 98667 }, - { 0x66FA, 98669 }, - { 0x66FB, 98671 }, - { 0x66FC, 98673 }, - { 0x66FD, 98675 }, - { 0x66FE, 98677 }, - { 0x66FF, 98679 }, - { 0x6700, 98681 }, - { 0x6701, 98683 }, - { 0x6702, 98685 }, - { 0x6703, 98687 }, - { 0x6704, 98689 }, - { 0x6705, 98691 }, - { 0x6706, 98693 }, - { 0x6707, 98695 }, - { 0x6708, 98697 }, - { 0x6709, 98699 }, - { 0x670A, 98701 }, - { 0x670B, 98703 }, - { 0x670C, 98705 }, - { 0x670D, 98707 }, - { 0x670E, 98709 }, - { 0x670F, 98711 }, - { 0x6710, 98713 }, - { 0x6711, 98715 }, - { 0x6712, 98717 }, - { 0x6713, 98719 }, - { 0x6714, 98721 }, - { 0x6715, 98723 }, - { 0x6716, 98725 }, - { 0x6717, 98727 }, - { 0x6718, 98729 }, - { 0x6719, 98731 }, - { 0x671A, 98733 }, - { 0x671B, 98735 }, - { 0x671C, 98737 }, - { 0x671D, 98739 }, - { 0x671E, 98741 }, - { 0x671F, 98743 }, - { 0x6720, 98745 }, - { 0x6721, 98747 }, - { 0x6722, 98749 }, - { 0x6723, 98751 }, - { 0x6724, 98753 }, - { 0x6725, 98755 }, - { 0x6726, 98757 }, - { 0x6727, 98759 }, - { 0x6728, 98761 }, - { 0x6729, 98763 }, - { 0x672A, 98765 }, - { 0x672B, 98767 }, - { 0x672C, 98769 }, - { 0x672D, 98771 }, - { 0x672E, 98773 }, - { 0x672F, 98775 }, - { 0x6730, 98777 }, - { 0x6731, 98779 }, - { 0x6732, 98781 }, - { 0x6733, 98783 }, - { 0x6734, 98785 }, - { 0x6735, 98787 }, - { 0x6736, 98789 }, - { 0x6737, 98791 }, - { 0x6738, 98793 }, - { 0x6739, 98795 }, - { 0x673A, 98797 }, - { 0x673B, 98799 }, - { 0x673C, 98801 }, - { 0x673D, 98803 }, - { 0x673E, 98805 }, - { 0x673F, 98807 }, - { 0x6740, 98809 }, - { 0x6741, 98811 }, - { 0x6742, 98813 }, - { 0x6743, 98815 }, - { 0x6744, 98817 }, - { 0x6745, 98819 }, - { 0x6746, 98821 }, - { 0x6747, 98823 }, - { 0x6748, 98825 }, - { 0x6749, 98827 }, - { 0x674A, 98829 }, - { 0x674B, 98831 }, - { 0x674C, 98833 }, - { 0x674D, 98835 }, - { 0x674E, 98837 }, - { 0x674F, 98839 }, - { 0x6750, 98841 }, - { 0x6751, 98843 }, - { 0x6752, 98845 }, - { 0x6753, 98847 }, - { 0x6754, 98849 }, - { 0x6755, 98851 }, - { 0x6756, 98853 }, - { 0x6757, 98855 }, - { 0x6758, 98857 }, - { 0x6759, 98859 }, - { 0x675A, 98861 }, - { 0x675B, 98863 }, - { 0x675C, 98865 }, - { 0x675D, 98867 }, - { 0x675E, 98869 }, - { 0x675F, 98871 }, - { 0x6760, 98873 }, - { 0x6761, 98875 }, - { 0x6762, 98877 }, - { 0x6763, 98879 }, - { 0x6764, 98881 }, - { 0x6765, 98883 }, - { 0x6766, 98885 }, - { 0x6767, 98887 }, - { 0x6768, 98889 }, - { 0x6769, 98891 }, - { 0x676A, 98893 }, - { 0x676B, 98895 }, - { 0x676C, 98897 }, - { 0x676D, 98899 }, - { 0x676E, 98901 }, - { 0x676F, 98903 }, - { 0x6770, 98905 }, - { 0x6771, 98907 }, - { 0x6772, 98909 }, - { 0x6773, 98911 }, - { 0x6774, 98913 }, - { 0x6775, 98915 }, - { 0x6776, 98917 }, - { 0x6777, 98919 }, - { 0x6778, 98921 }, - { 0x6779, 98923 }, - { 0x677A, 98925 }, - { 0x677B, 98927 }, - { 0x677C, 98929 }, - { 0x677D, 98931 }, - { 0x677E, 98933 }, - { 0x677F, 98935 }, - { 0x6780, 98937 }, - { 0x6781, 98939 }, - { 0x6782, 98941 }, - { 0x6783, 98943 }, - { 0x6784, 98945 }, - { 0x6785, 98947 }, - { 0x6786, 98949 }, - { 0x6787, 98951 }, - { 0x6788, 98953 }, - { 0x6789, 98955 }, - { 0x678A, 98957 }, - { 0x678B, 98959 }, - { 0x678C, 98961 }, - { 0x678D, 98963 }, - { 0x678E, 98965 }, - { 0x678F, 98967 }, - { 0x6790, 98969 }, - { 0x6791, 98971 }, - { 0x6792, 98973 }, - { 0x6793, 98975 }, - { 0x6794, 98977 }, - { 0x6795, 98979 }, - { 0x6796, 98981 }, - { 0x6797, 98983 }, - { 0x6798, 98985 }, - { 0x6799, 98987 }, - { 0x679A, 98989 }, - { 0x679B, 98991 }, - { 0x679C, 98993 }, - { 0x679D, 98995 }, - { 0x679E, 98997 }, - { 0x679F, 98999 }, - { 0x67A0, 99001 }, - { 0x67A1, 99003 }, - { 0x67A2, 99005 }, - { 0x67A3, 99007 }, - { 0x67A4, 99009 }, - { 0x67A5, 99011 }, - { 0x67A6, 99013 }, - { 0x67A7, 99015 }, - { 0x67A8, 99017 }, - { 0x67A9, 99019 }, - { 0x67AA, 99021 }, - { 0x67AB, 99023 }, - { 0x67AC, 99025 }, - { 0x67AD, 99027 }, - { 0x67AE, 99029 }, - { 0x67AF, 99031 }, - { 0x67B0, 99033 }, - { 0x67B1, 99035 }, - { 0x67B2, 99037 }, - { 0x67B3, 99039 }, - { 0x67B4, 99041 }, - { 0x67B5, 99043 }, - { 0x67B6, 99045 }, - { 0x67B7, 99047 }, - { 0x67B8, 99049 }, - { 0x67B9, 99051 }, - { 0x67BA, 99053 }, - { 0x67BB, 99055 }, - { 0x67BC, 99057 }, - { 0x67BD, 99059 }, - { 0x67BE, 99061 }, - { 0x67BF, 99063 }, - { 0x67C0, 99065 }, - { 0x67C1, 99067 }, - { 0x67C2, 99069 }, - { 0x67C3, 99071 }, - { 0x67C4, 99073 }, - { 0x67C5, 99075 }, - { 0x67C6, 99077 }, - { 0x67C7, 99079 }, - { 0x67C8, 99081 }, - { 0x67C9, 99083 }, - { 0x67CA, 99085 }, - { 0x67CB, 99087 }, - { 0x67CC, 99089 }, - { 0x67CD, 99091 }, - { 0x67CE, 99093 }, - { 0x67CF, 99095 }, - { 0x67D0, 99097 }, - { 0x67D1, 99099 }, - { 0x67D2, 99101 }, - { 0x67D3, 99103 }, - { 0x67D4, 99105 }, - { 0x67D5, 99107 }, - { 0x67D6, 99109 }, - { 0x67D7, 99111 }, - { 0x67D8, 99113 }, - { 0x67D9, 99115 }, - { 0x67DA, 99117 }, - { 0x67DB, 99119 }, - { 0x67DC, 99121 }, - { 0x67DD, 99123 }, - { 0x67DE, 99125 }, - { 0x67DF, 99127 }, - { 0x67E0, 99129 }, - { 0x67E1, 99131 }, - { 0x67E2, 99133 }, - { 0x67E3, 99135 }, - { 0x67E4, 99137 }, - { 0x67E5, 99139 }, - { 0x67E6, 99141 }, - { 0x67E7, 99143 }, - { 0x67E8, 99145 }, - { 0x67E9, 99147 }, - { 0x67EA, 99149 }, - { 0x67EB, 99151 }, - { 0x67EC, 99153 }, - { 0x67ED, 99155 }, - { 0x67EE, 99157 }, - { 0x67EF, 99159 }, - { 0x67F0, 99161 }, - { 0x67F1, 99163 }, - { 0x67F2, 99165 }, - { 0x67F3, 99167 }, - { 0x67F4, 99169 }, - { 0x67F5, 99171 }, - { 0x67F6, 99173 }, - { 0x67F7, 99175 }, - { 0x67F8, 99177 }, - { 0x67F9, 99179 }, - { 0x67FA, 99181 }, - { 0x67FB, 99183 }, - { 0x67FC, 99185 }, - { 0x67FD, 99187 }, - { 0x67FE, 99189 }, - { 0x67FF, 99191 }, - { 0x6800, 99193 }, - { 0x6801, 99195 }, - { 0x6802, 99197 }, - { 0x6803, 99199 }, - { 0x6804, 99201 }, - { 0x6805, 99203 }, - { 0x6806, 99205 }, - { 0x6807, 99207 }, - { 0x6808, 99209 }, - { 0x6809, 99211 }, - { 0x680A, 99213 }, - { 0x680B, 99215 }, - { 0x680C, 99217 }, - { 0x680D, 99219 }, - { 0x680E, 99221 }, - { 0x680F, 99223 }, - { 0x6810, 99225 }, - { 0x6811, 99227 }, - { 0x6812, 99229 }, - { 0x6813, 99231 }, - { 0x6814, 99233 }, - { 0x6815, 99235 }, - { 0x6816, 99237 }, - { 0x6817, 99239 }, - { 0x6818, 99241 }, - { 0x6819, 99243 }, - { 0x681A, 99245 }, - { 0x681B, 99247 }, - { 0x681C, 99249 }, - { 0x681D, 99251 }, - { 0x681E, 99253 }, - { 0x681F, 99255 }, - { 0x6820, 99257 }, - { 0x6821, 99259 }, - { 0x6822, 99261 }, - { 0x6823, 99263 }, - { 0x6824, 99265 }, - { 0x6825, 99267 }, - { 0x6826, 99269 }, - { 0x6827, 99271 }, - { 0x6828, 99273 }, - { 0x6829, 99275 }, - { 0x682A, 99277 }, - { 0x682B, 99279 }, - { 0x682C, 99281 }, - { 0x682D, 99283 }, - { 0x682E, 99285 }, - { 0x682F, 99287 }, - { 0x6830, 99289 }, - { 0x6831, 99291 }, - { 0x6832, 99293 }, - { 0x6833, 99295 }, - { 0x6834, 99297 }, - { 0x6835, 99299 }, - { 0x6836, 99301 }, - { 0x6837, 99303 }, - { 0x6838, 99305 }, - { 0x6839, 99307 }, - { 0x683A, 99309 }, - { 0x683B, 99311 }, - { 0x683C, 99313 }, - { 0x683D, 99315 }, - { 0x683E, 99317 }, - { 0x683F, 99319 }, - { 0x6840, 99321 }, - { 0x6841, 99323 }, - { 0x6842, 99325 }, - { 0x6843, 99327 }, - { 0x6844, 99329 }, - { 0x6845, 99331 }, - { 0x6846, 99333 }, - { 0x6847, 99335 }, - { 0x6848, 99337 }, - { 0x6849, 99339 }, - { 0x684A, 99341 }, - { 0x684B, 99343 }, - { 0x684C, 99345 }, - { 0x684D, 99347 }, - { 0x684E, 99349 }, - { 0x684F, 99351 }, - { 0x6850, 99353 }, - { 0x6851, 99355 }, - { 0x6852, 99357 }, - { 0x6853, 99359 }, - { 0x6854, 99361 }, - { 0x6855, 99363 }, - { 0x6856, 99365 }, - { 0x6857, 99367 }, - { 0x6858, 99369 }, - { 0x6859, 99371 }, - { 0x685A, 99373 }, - { 0x685B, 99375 }, - { 0x685C, 99377 }, - { 0x685D, 99379 }, - { 0x685E, 99381 }, - { 0x685F, 99383 }, - { 0x6860, 99385 }, - { 0x6861, 99387 }, - { 0x6862, 99389 }, - { 0x6863, 99391 }, - { 0x6864, 99393 }, - { 0x6865, 99395 }, - { 0x6866, 99397 }, - { 0x6867, 99399 }, - { 0x6868, 99401 }, - { 0x6869, 99403 }, - { 0x686A, 99405 }, - { 0x686B, 99407 }, - { 0x686C, 99409 }, - { 0x686D, 99411 }, - { 0x686E, 99413 }, - { 0x686F, 99415 }, - { 0x6870, 99417 }, - { 0x6871, 99419 }, - { 0x6872, 99421 }, - { 0x6873, 99423 }, - { 0x6874, 99425 }, - { 0x6875, 99427 }, - { 0x6876, 99429 }, - { 0x6877, 99431 }, - { 0x6878, 99433 }, - { 0x6879, 99435 }, - { 0x687A, 99437 }, - { 0x687B, 99439 }, - { 0x687C, 99441 }, - { 0x687D, 99443 }, - { 0x687E, 99445 }, - { 0x687F, 99447 }, - { 0x6880, 99449 }, - { 0x6881, 99451 }, - { 0x6882, 99453 }, - { 0x6883, 99455 }, - { 0x6884, 99457 }, - { 0x6885, 99459 }, - { 0x6886, 99461 }, - { 0x6887, 99463 }, - { 0x6888, 99465 }, - { 0x6889, 99467 }, - { 0x688A, 99469 }, - { 0x688B, 99471 }, - { 0x688C, 99473 }, - { 0x688D, 99475 }, - { 0x688E, 99477 }, - { 0x688F, 99479 }, - { 0x6890, 99481 }, - { 0x6891, 99483 }, - { 0x6892, 99485 }, - { 0x6893, 99487 }, - { 0x6894, 99489 }, - { 0x6895, 99491 }, - { 0x6896, 99493 }, - { 0x6897, 99495 }, - { 0x6898, 99497 }, - { 0x6899, 99499 }, - { 0x689A, 99501 }, - { 0x689B, 99503 }, - { 0x689C, 99505 }, - { 0x689D, 99507 }, - { 0x689E, 99509 }, - { 0x689F, 99511 }, - { 0x68A0, 99513 }, - { 0x68A1, 99515 }, - { 0x68A2, 99517 }, - { 0x68A3, 99519 }, - { 0x68A4, 99521 }, - { 0x68A5, 99523 }, - { 0x68A6, 99525 }, - { 0x68A7, 99527 }, - { 0x68A8, 99529 }, - { 0x68A9, 99531 }, - { 0x68AA, 99533 }, - { 0x68AB, 99535 }, - { 0x68AC, 99537 }, - { 0x68AD, 99539 }, - { 0x68AE, 99541 }, - { 0x68AF, 99543 }, - { 0x68B0, 99545 }, - { 0x68B1, 99547 }, - { 0x68B2, 99549 }, - { 0x68B3, 99551 }, - { 0x68B4, 99553 }, - { 0x68B5, 99555 }, - { 0x68B6, 99557 }, - { 0x68B7, 99559 }, - { 0x68B8, 99561 }, - { 0x68B9, 99563 }, - { 0x68BA, 99565 }, - { 0x68BB, 99567 }, - { 0x68BC, 99569 }, - { 0x68BD, 99571 }, - { 0x68BE, 99573 }, - { 0x68BF, 99575 }, - { 0x68C0, 99577 }, - { 0x68C1, 99579 }, - { 0x68C2, 99581 }, - { 0x68C3, 99583 }, - { 0x68C4, 99585 }, - { 0x68C5, 99587 }, - { 0x68C6, 99589 }, - { 0x68C7, 99591 }, - { 0x68C8, 99593 }, - { 0x68C9, 99595 }, - { 0x68CA, 99597 }, - { 0x68CB, 99599 }, - { 0x68CC, 99601 }, - { 0x68CD, 99603 }, - { 0x68CE, 99605 }, - { 0x68CF, 99607 }, - { 0x68D0, 99609 }, - { 0x68D1, 99611 }, - { 0x68D2, 99613 }, - { 0x68D3, 99615 }, - { 0x68D4, 99617 }, - { 0x68D5, 99619 }, - { 0x68D6, 99621 }, - { 0x68D7, 99623 }, - { 0x68D8, 99625 }, - { 0x68D9, 99627 }, - { 0x68DA, 99629 }, - { 0x68DB, 99631 }, - { 0x68DC, 99633 }, - { 0x68DD, 99635 }, - { 0x68DE, 99637 }, - { 0x68DF, 99639 }, - { 0x68E0, 99641 }, - { 0x68E1, 99643 }, - { 0x68E2, 99645 }, - { 0x68E3, 99647 }, - { 0x68E4, 99649 }, - { 0x68E5, 99651 }, - { 0x68E6, 99653 }, - { 0x68E7, 99655 }, - { 0x68E8, 99657 }, - { 0x68E9, 99659 }, - { 0x68EA, 99661 }, - { 0x68EB, 99663 }, - { 0x68EC, 99665 }, - { 0x68ED, 99667 }, - { 0x68EE, 99669 }, - { 0x68EF, 99671 }, - { 0x68F0, 99673 }, - { 0x68F1, 99675 }, - { 0x68F2, 99677 }, - { 0x68F3, 99679 }, - { 0x68F4, 99681 }, - { 0x68F5, 99683 }, - { 0x68F6, 99685 }, - { 0x68F7, 99687 }, - { 0x68F8, 99689 }, - { 0x68F9, 99691 }, - { 0x68FA, 99693 }, - { 0x68FB, 99695 }, - { 0x68FC, 99697 }, - { 0x68FD, 99699 }, - { 0x68FE, 99701 }, - { 0x68FF, 99703 }, - { 0x6900, 99705 }, - { 0x6901, 99707 }, - { 0x6902, 99709 }, - { 0x6903, 99711 }, - { 0x6904, 99713 }, - { 0x6905, 99715 }, - { 0x6906, 99717 }, - { 0x6907, 99719 }, - { 0x6908, 99721 }, - { 0x6909, 99723 }, - { 0x690A, 99725 }, - { 0x690B, 99727 }, - { 0x690C, 99729 }, - { 0x690D, 99731 }, - { 0x690E, 99733 }, - { 0x690F, 99735 }, - { 0x6910, 99737 }, - { 0x6911, 99739 }, - { 0x6912, 99741 }, - { 0x6913, 99743 }, - { 0x6914, 99745 }, - { 0x6915, 99747 }, - { 0x6916, 99749 }, - { 0x6917, 99751 }, - { 0x6918, 99753 }, - { 0x6919, 99755 }, - { 0x691A, 99757 }, - { 0x691B, 99759 }, - { 0x691C, 99761 }, - { 0x691D, 99763 }, - { 0x691E, 99765 }, - { 0x691F, 99767 }, - { 0x6920, 99769 }, - { 0x6921, 99771 }, - { 0x6922, 99773 }, - { 0x6923, 99775 }, - { 0x6924, 99777 }, - { 0x6925, 99779 }, - { 0x6926, 99781 }, - { 0x6927, 99783 }, - { 0x6928, 99785 }, - { 0x6929, 99787 }, - { 0x692A, 99789 }, - { 0x692B, 99791 }, - { 0x692C, 99793 }, - { 0x692D, 99795 }, - { 0x692E, 99797 }, - { 0x692F, 99799 }, - { 0x6930, 99801 }, - { 0x6931, 99803 }, - { 0x6932, 99805 }, - { 0x6933, 99807 }, - { 0x6934, 99809 }, - { 0x6935, 99811 }, - { 0x6936, 99813 }, - { 0x6937, 99815 }, - { 0x6938, 99817 }, - { 0x6939, 99819 }, - { 0x693A, 99821 }, - { 0x693B, 99823 }, - { 0x693C, 99825 }, - { 0x693D, 99827 }, - { 0x693E, 99829 }, - { 0x693F, 99831 }, - { 0x6940, 99833 }, - { 0x6941, 99835 }, - { 0x6942, 99837 }, - { 0x6943, 99839 }, - { 0x6944, 99841 }, - { 0x6945, 99843 }, - { 0x6946, 99845 }, - { 0x6947, 99847 }, - { 0x6948, 99849 }, - { 0x6949, 99851 }, - { 0x694A, 99853 }, - { 0x694B, 99855 }, - { 0x694C, 99857 }, - { 0x694D, 99859 }, - { 0x694E, 99861 }, - { 0x694F, 99863 }, - { 0x6950, 99865 }, - { 0x6951, 99867 }, - { 0x6952, 99869 }, - { 0x6953, 99871 }, - { 0x6954, 99873 }, - { 0x6955, 99875 }, - { 0x6956, 99877 }, - { 0x6957, 99879 }, - { 0x6958, 99881 }, - { 0x6959, 99883 }, - { 0x695A, 99885 }, - { 0x695B, 99887 }, - { 0x695C, 99889 }, - { 0x695D, 99891 }, - { 0x695E, 99893 }, - { 0x695F, 99895 }, - { 0x6960, 99897 }, - { 0x6961, 99899 }, - { 0x6962, 99901 }, - { 0x6963, 99903 }, - { 0x6964, 99905 }, - { 0x6965, 99907 }, - { 0x6966, 99909 }, - { 0x6967, 99911 }, - { 0x6968, 99913 }, - { 0x6969, 99915 }, - { 0x696A, 99917 }, - { 0x696B, 99919 }, - { 0x696C, 99921 }, - { 0x696D, 99923 }, - { 0x696E, 99925 }, - { 0x696F, 99927 }, - { 0x6970, 99929 }, - { 0x6971, 99931 }, - { 0x6972, 99933 }, - { 0x6973, 99935 }, - { 0x6974, 99937 }, - { 0x6975, 99939 }, - { 0x6976, 99941 }, - { 0x6977, 99943 }, - { 0x6978, 99945 }, - { 0x6979, 99947 }, - { 0x697A, 99949 }, - { 0x697B, 99951 }, - { 0x697C, 99953 }, - { 0x697D, 99955 }, - { 0x697E, 99957 }, - { 0x697F, 99959 }, - { 0x6980, 99961 }, - { 0x6981, 99963 }, - { 0x6982, 99965 }, - { 0x6983, 99967 }, - { 0x6984, 99969 }, - { 0x6985, 99971 }, - { 0x6986, 99973 }, - { 0x6987, 99975 }, - { 0x6988, 99977 }, - { 0x6989, 99979 }, - { 0x698A, 99981 }, - { 0x698B, 99983 }, - { 0x698C, 99985 }, - { 0x698D, 99987 }, - { 0x698E, 99989 }, - { 0x698F, 99991 }, - { 0x6990, 99993 }, - { 0x6991, 99995 }, - { 0x6992, 99997 }, - { 0x6993, 99999 }, - { 0x6994, 100001 }, - { 0x6995, 100003 }, - { 0x6996, 100005 }, - { 0x6997, 100007 }, - { 0x6998, 100009 }, - { 0x6999, 100011 }, - { 0x699A, 100013 }, - { 0x699B, 100015 }, - { 0x699C, 100017 }, - { 0x699D, 100019 }, - { 0x699E, 100021 }, - { 0x699F, 100023 }, - { 0x69A0, 100025 }, - { 0x69A1, 100027 }, - { 0x69A2, 100029 }, - { 0x69A3, 100031 }, - { 0x69A4, 100033 }, - { 0x69A5, 100035 }, - { 0x69A6, 100037 }, - { 0x69A7, 100039 }, - { 0x69A8, 100041 }, - { 0x69A9, 100043 }, - { 0x69AA, 100045 }, - { 0x69AB, 100047 }, - { 0x69AC, 100049 }, - { 0x69AD, 100051 }, - { 0x69AE, 100053 }, - { 0x69AF, 100055 }, - { 0x69B0, 100057 }, - { 0x69B1, 100059 }, - { 0x69B2, 100061 }, - { 0x69B3, 100063 }, - { 0x69B4, 100065 }, - { 0x69B5, 100067 }, - { 0x69B6, 100069 }, - { 0x69B7, 100071 }, - { 0x69B8, 100073 }, - { 0x69B9, 100075 }, - { 0x69BA, 100077 }, - { 0x69BB, 100079 }, - { 0x69BC, 100081 }, - { 0x69BD, 100083 }, - { 0x69BE, 100085 }, - { 0x69BF, 100087 }, - { 0x69C0, 100089 }, - { 0x69C1, 100091 }, - { 0x69C2, 100093 }, - { 0x69C3, 100095 }, - { 0x69C4, 100097 }, - { 0x69C5, 100099 }, - { 0x69C6, 100101 }, - { 0x69C7, 100103 }, - { 0x69C8, 100105 }, - { 0x69C9, 100107 }, - { 0x69CA, 100109 }, - { 0x69CB, 100111 }, - { 0x69CC, 100113 }, - { 0x69CD, 100115 }, - { 0x69CE, 100117 }, - { 0x69CF, 100119 }, - { 0x69D0, 100121 }, - { 0x69D1, 100123 }, - { 0x69D2, 100125 }, - { 0x69D3, 100127 }, - { 0x69D4, 100129 }, - { 0x69D5, 100131 }, - { 0x69D6, 100133 }, - { 0x69D7, 100135 }, - { 0x69D8, 100137 }, - { 0x69D9, 100139 }, - { 0x69DA, 100141 }, - { 0x69DB, 100143 }, - { 0x69DC, 100145 }, - { 0x69DD, 100147 }, - { 0x69DE, 100149 }, - { 0x69DF, 100151 }, - { 0x69E0, 100153 }, - { 0x69E1, 100155 }, - { 0x69E2, 100157 }, - { 0x69E3, 100159 }, - { 0x69E4, 100161 }, - { 0x69E5, 100163 }, - { 0x69E6, 100165 }, - { 0x69E7, 100167 }, - { 0x69E8, 100169 }, - { 0x69E9, 100171 }, - { 0x69EA, 100173 }, - { 0x69EB, 100175 }, - { 0x69EC, 100177 }, - { 0x69ED, 100179 }, - { 0x69EE, 100181 }, - { 0x69EF, 100183 }, - { 0x69F0, 100185 }, - { 0x69F1, 100187 }, - { 0x69F2, 100189 }, - { 0x69F3, 100191 }, - { 0x69F4, 100193 }, - { 0x69F5, 100195 }, - { 0x69F6, 100197 }, - { 0x69F7, 100199 }, - { 0x69F8, 100201 }, - { 0x69F9, 100203 }, - { 0x69FA, 100205 }, - { 0x69FB, 100207 }, - { 0x69FC, 100209 }, - { 0x69FD, 100211 }, - { 0x69FE, 100213 }, - { 0x69FF, 100215 }, - { 0x6A00, 100217 }, - { 0x6A01, 100219 }, - { 0x6A02, 100221 }, - { 0x6A03, 100223 }, - { 0x6A04, 100225 }, - { 0x6A05, 100227 }, - { 0x6A06, 100229 }, - { 0x6A07, 100231 }, - { 0x6A08, 100233 }, - { 0x6A09, 100235 }, - { 0x6A0A, 100237 }, - { 0x6A0B, 100239 }, - { 0x6A0C, 100241 }, - { 0x6A0D, 100243 }, - { 0x6A0E, 100245 }, - { 0x6A0F, 100247 }, - { 0x6A10, 100249 }, - { 0x6A11, 100251 }, - { 0x6A12, 100253 }, - { 0x6A13, 100255 }, - { 0x6A14, 100257 }, - { 0x6A15, 100259 }, - { 0x6A16, 100261 }, - { 0x6A17, 100263 }, - { 0x6A18, 100265 }, - { 0x6A19, 100267 }, - { 0x6A1A, 100269 }, - { 0x6A1B, 100271 }, - { 0x6A1C, 100273 }, - { 0x6A1D, 100275 }, - { 0x6A1E, 100277 }, - { 0x6A1F, 100279 }, - { 0x6A20, 100281 }, - { 0x6A21, 100283 }, - { 0x6A22, 100285 }, - { 0x6A23, 100287 }, - { 0x6A24, 100289 }, - { 0x6A25, 100291 }, - { 0x6A26, 100293 }, - { 0x6A27, 100295 }, - { 0x6A28, 100297 }, - { 0x6A29, 100299 }, - { 0x6A2A, 100301 }, - { 0x6A2B, 100303 }, - { 0x6A2C, 100305 }, - { 0x6A2D, 100307 }, - { 0x6A2E, 100309 }, - { 0x6A2F, 100311 }, - { 0x6A30, 100313 }, - { 0x6A31, 100315 }, - { 0x6A32, 100317 }, - { 0x6A33, 100319 }, - { 0x6A34, 100321 }, - { 0x6A35, 100323 }, - { 0x6A36, 100325 }, - { 0x6A37, 100327 }, - { 0x6A38, 100329 }, - { 0x6A39, 100331 }, - { 0x6A3A, 100333 }, - { 0x6A3B, 100335 }, - { 0x6A3C, 100337 }, - { 0x6A3D, 100339 }, - { 0x6A3E, 100341 }, - { 0x6A3F, 100343 }, - { 0x6A40, 100345 }, - { 0x6A41, 100347 }, - { 0x6A42, 100349 }, - { 0x6A43, 100351 }, - { 0x6A44, 100353 }, - { 0x6A45, 100355 }, - { 0x6A46, 100357 }, - { 0x6A47, 100359 }, - { 0x6A48, 100361 }, - { 0x6A49, 100363 }, - { 0x6A4A, 100365 }, - { 0x6A4B, 100367 }, - { 0x6A4C, 100369 }, - { 0x6A4D, 100371 }, - { 0x6A4E, 100373 }, - { 0x6A4F, 100375 }, - { 0x6A50, 100377 }, - { 0x6A51, 100379 }, - { 0x6A52, 100381 }, - { 0x6A53, 100383 }, - { 0x6A54, 100385 }, - { 0x6A55, 100387 }, - { 0x6A56, 100389 }, - { 0x6A57, 100391 }, - { 0x6A58, 100393 }, - { 0x6A59, 100395 }, - { 0x6A5A, 100397 }, - { 0x6A5B, 100399 }, - { 0x6A5C, 100401 }, - { 0x6A5D, 100403 }, - { 0x6A5E, 100405 }, - { 0x6A5F, 100407 }, - { 0x6A60, 100409 }, - { 0x6A61, 100411 }, - { 0x6A62, 100413 }, - { 0x6A63, 100415 }, - { 0x6A64, 100417 }, - { 0x6A65, 100419 }, - { 0x6A66, 100421 }, - { 0x6A67, 100423 }, - { 0x6A68, 100425 }, - { 0x6A69, 100427 }, - { 0x6A6A, 100429 }, - { 0x6A6B, 100431 }, - { 0x6A6C, 100433 }, - { 0x6A6D, 100435 }, - { 0x6A6E, 100437 }, - { 0x6A6F, 100439 }, - { 0x6A70, 100441 }, - { 0x6A71, 100443 }, - { 0x6A72, 100445 }, - { 0x6A73, 100447 }, - { 0x6A74, 100449 }, - { 0x6A75, 100451 }, - { 0x6A76, 100453 }, - { 0x6A77, 100455 }, - { 0x6A78, 100457 }, - { 0x6A79, 100459 }, - { 0x6A7A, 100461 }, - { 0x6A7B, 100463 }, - { 0x6A7C, 100465 }, - { 0x6A7D, 100467 }, - { 0x6A7E, 100469 }, - { 0x6A7F, 100471 }, - { 0x6A80, 100473 }, - { 0x6A81, 100475 }, - { 0x6A82, 100477 }, - { 0x6A83, 100479 }, - { 0x6A84, 100481 }, - { 0x6A85, 100483 }, - { 0x6A86, 100485 }, - { 0x6A87, 100487 }, - { 0x6A88, 100489 }, - { 0x6A89, 100491 }, - { 0x6A8A, 100493 }, - { 0x6A8B, 100495 }, - { 0x6A8C, 100497 }, - { 0x6A8D, 100499 }, - { 0x6A8E, 100501 }, - { 0x6A8F, 100503 }, - { 0x6A90, 100505 }, - { 0x6A91, 100507 }, - { 0x6A92, 100509 }, - { 0x6A93, 100511 }, - { 0x6A94, 100513 }, - { 0x6A95, 100515 }, - { 0x6A96, 100517 }, - { 0x6A97, 100519 }, - { 0x6A98, 100521 }, - { 0x6A99, 100523 }, - { 0x6A9A, 100525 }, - { 0x6A9B, 100527 }, - { 0x6A9C, 100529 }, - { 0x6A9D, 100531 }, - { 0x6A9E, 100533 }, - { 0x6A9F, 100535 }, - { 0x6AA0, 100537 }, - { 0x6AA1, 100539 }, - { 0x6AA2, 100541 }, - { 0x6AA3, 100543 }, - { 0x6AA4, 100545 }, - { 0x6AA5, 100547 }, - { 0x6AA6, 100549 }, - { 0x6AA7, 100551 }, - { 0x6AA8, 100553 }, - { 0x6AA9, 100555 }, - { 0x6AAA, 100557 }, - { 0x6AAB, 100559 }, - { 0x6AAC, 100561 }, - { 0x6AAD, 100563 }, - { 0x6AAE, 100565 }, - { 0x6AAF, 100567 }, - { 0x6AB0, 100569 }, - { 0x6AB1, 100571 }, - { 0x6AB2, 100573 }, - { 0x6AB3, 100575 }, - { 0x6AB4, 100577 }, - { 0x6AB5, 100579 }, - { 0x6AB6, 100581 }, - { 0x6AB7, 100583 }, - { 0x6AB8, 100585 }, - { 0x6AB9, 100587 }, - { 0x6ABA, 100589 }, - { 0x6ABB, 100591 }, - { 0x6ABC, 100593 }, - { 0x6ABD, 100595 }, - { 0x6ABE, 100597 }, - { 0x6ABF, 100599 }, - { 0x6AC0, 100601 }, - { 0x6AC1, 100603 }, - { 0x6AC2, 100605 }, - { 0x6AC3, 100607 }, - { 0x6AC4, 100609 }, - { 0x6AC5, 100611 }, - { 0x6AC6, 100613 }, - { 0x6AC7, 100615 }, - { 0x6AC8, 100617 }, - { 0x6AC9, 100619 }, - { 0x6ACA, 100621 }, - { 0x6ACB, 100623 }, - { 0x6ACC, 100625 }, - { 0x6ACD, 100627 }, - { 0x6ACE, 100629 }, - { 0x6ACF, 100631 }, - { 0x6AD0, 100633 }, - { 0x6AD1, 100635 }, - { 0x6AD2, 100637 }, - { 0x6AD3, 100639 }, - { 0x6AD4, 100641 }, - { 0x6AD5, 100643 }, - { 0x6AD6, 100645 }, - { 0x6AD7, 100647 }, - { 0x6AD8, 100649 }, - { 0x6AD9, 100651 }, - { 0x6ADA, 100653 }, - { 0x6ADB, 100655 }, - { 0x6ADC, 100657 }, - { 0x6ADD, 100659 }, - { 0x6ADE, 100661 }, - { 0x6ADF, 100663 }, - { 0x6AE0, 100665 }, - { 0x6AE1, 100667 }, - { 0x6AE2, 100669 }, - { 0x6AE3, 100671 }, - { 0x6AE4, 100673 }, - { 0x6AE5, 100675 }, - { 0x6AE6, 100677 }, - { 0x6AE7, 100679 }, - { 0x6AE8, 100681 }, - { 0x6AE9, 100683 }, - { 0x6AEA, 100685 }, - { 0x6AEB, 100687 }, - { 0x6AEC, 100689 }, - { 0x6AED, 100691 }, - { 0x6AEE, 100693 }, - { 0x6AEF, 100695 }, - { 0x6AF0, 100697 }, - { 0x6AF1, 100699 }, - { 0x6AF2, 100701 }, - { 0x6AF3, 100703 }, - { 0x6AF4, 100705 }, - { 0x6AF5, 100707 }, - { 0x6AF6, 100709 }, - { 0x6AF7, 100711 }, - { 0x6AF8, 100713 }, - { 0x6AF9, 100715 }, - { 0x6AFA, 100717 }, - { 0x6AFB, 100719 }, - { 0x6AFC, 100721 }, - { 0x6AFD, 100723 }, - { 0x6AFE, 100725 }, - { 0x6AFF, 100727 }, - { 0x6B00, 100729 }, - { 0x6B01, 100731 }, - { 0x6B02, 100733 }, - { 0x6B03, 100735 }, - { 0x6B04, 100737 }, - { 0x6B05, 100739 }, - { 0x6B06, 100741 }, - { 0x6B07, 100743 }, - { 0x6B08, 100745 }, - { 0x6B09, 100747 }, - { 0x6B0A, 100749 }, - { 0x6B0B, 100751 }, - { 0x6B0C, 100753 }, - { 0x6B0D, 100755 }, - { 0x6B0E, 100757 }, - { 0x6B0F, 100759 }, - { 0x6B10, 100761 }, - { 0x6B11, 100763 }, - { 0x6B12, 100765 }, - { 0x6B13, 100767 }, - { 0x6B14, 100769 }, - { 0x6B15, 100771 }, - { 0x6B16, 100773 }, - { 0x6B17, 100775 }, - { 0x6B18, 100777 }, - { 0x6B19, 100779 }, - { 0x6B1A, 100781 }, - { 0x6B1B, 100783 }, - { 0x6B1C, 100785 }, - { 0x6B1D, 100787 }, - { 0x6B1E, 100789 }, - { 0x6B1F, 100791 }, - { 0x6B20, 100793 }, - { 0x6B21, 100795 }, - { 0x6B22, 100797 }, - { 0x6B23, 100799 }, - { 0x6B24, 100801 }, - { 0x6B25, 100803 }, - { 0x6B26, 100805 }, - { 0x6B27, 100807 }, - { 0x6B28, 100809 }, - { 0x6B29, 100811 }, - { 0x6B2A, 100813 }, - { 0x6B2B, 100815 }, - { 0x6B2C, 100817 }, - { 0x6B2D, 100819 }, - { 0x6B2E, 100821 }, - { 0x6B2F, 100823 }, - { 0x6B30, 100825 }, - { 0x6B31, 100827 }, - { 0x6B32, 100829 }, - { 0x6B33, 100831 }, - { 0x6B34, 100833 }, - { 0x6B35, 100835 }, - { 0x6B36, 100837 }, - { 0x6B37, 100839 }, - { 0x6B38, 100841 }, - { 0x6B39, 100843 }, - { 0x6B3A, 100845 }, - { 0x6B3B, 100847 }, - { 0x6B3C, 100849 }, - { 0x6B3D, 100851 }, - { 0x6B3E, 100853 }, - { 0x6B3F, 100855 }, - { 0x6B40, 100857 }, - { 0x6B41, 100859 }, - { 0x6B42, 100861 }, - { 0x6B43, 100863 }, - { 0x6B44, 100865 }, - { 0x6B45, 100867 }, - { 0x6B46, 100869 }, - { 0x6B47, 100871 }, - { 0x6B48, 100873 }, - { 0x6B49, 100875 }, - { 0x6B4A, 100877 }, - { 0x6B4B, 100879 }, - { 0x6B4C, 100881 }, - { 0x6B4D, 100883 }, - { 0x6B4E, 100885 }, - { 0x6B4F, 100887 }, - { 0x6B50, 100889 }, - { 0x6B51, 100891 }, - { 0x6B52, 100893 }, - { 0x6B53, 100895 }, - { 0x6B54, 100897 }, - { 0x6B55, 100899 }, - { 0x6B56, 100901 }, - { 0x6B57, 100903 }, - { 0x6B58, 100905 }, - { 0x6B59, 100907 }, - { 0x6B5A, 100909 }, - { 0x6B5B, 100911 }, - { 0x6B5C, 100913 }, - { 0x6B5D, 100915 }, - { 0x6B5E, 100917 }, - { 0x6B5F, 100919 }, - { 0x6B60, 100921 }, - { 0x6B61, 100923 }, - { 0x6B62, 100925 }, - { 0x6B63, 100927 }, - { 0x6B64, 100929 }, - { 0x6B65, 100931 }, - { 0x6B66, 100933 }, - { 0x6B67, 100935 }, - { 0x6B68, 100937 }, - { 0x6B69, 100939 }, - { 0x6B6A, 100941 }, - { 0x6B6B, 100943 }, - { 0x6B6C, 100945 }, - { 0x6B6D, 100947 }, - { 0x6B6E, 100949 }, - { 0x6B6F, 100951 }, - { 0x6B70, 100953 }, - { 0x6B71, 100955 }, - { 0x6B72, 100957 }, - { 0x6B73, 100959 }, - { 0x6B74, 100961 }, - { 0x6B75, 100963 }, - { 0x6B76, 100965 }, - { 0x6B77, 100967 }, - { 0x6B78, 100969 }, - { 0x6B79, 100971 }, - { 0x6B7A, 100973 }, - { 0x6B7B, 100975 }, - { 0x6B7C, 100977 }, - { 0x6B7D, 100979 }, - { 0x6B7E, 100981 }, - { 0x6B7F, 100983 }, - { 0x6B80, 100985 }, - { 0x6B81, 100987 }, - { 0x6B82, 100989 }, - { 0x6B83, 100991 }, - { 0x6B84, 100993 }, - { 0x6B85, 100995 }, - { 0x6B86, 100997 }, - { 0x6B87, 100999 }, - { 0x6B88, 101001 }, - { 0x6B89, 101003 }, - { 0x6B8A, 101005 }, - { 0x6B8B, 101007 }, - { 0x6B8C, 101009 }, - { 0x6B8D, 101011 }, - { 0x6B8E, 101013 }, - { 0x6B8F, 101015 }, - { 0x6B90, 101017 }, - { 0x6B91, 101019 }, - { 0x6B92, 101021 }, - { 0x6B93, 101023 }, - { 0x6B94, 101025 }, - { 0x6B95, 101027 }, - { 0x6B96, 101029 }, - { 0x6B97, 101031 }, - { 0x6B98, 101033 }, - { 0x6B99, 101035 }, - { 0x6B9A, 101037 }, - { 0x6B9B, 101039 }, - { 0x6B9C, 101041 }, - { 0x6B9D, 101043 }, - { 0x6B9E, 101045 }, - { 0x6B9F, 101047 }, - { 0x6BA0, 101049 }, - { 0x6BA1, 101051 }, - { 0x6BA2, 101053 }, - { 0x6BA3, 101055 }, - { 0x6BA4, 101057 }, - { 0x6BA5, 101059 }, - { 0x6BA6, 101061 }, - { 0x6BA7, 101063 }, - { 0x6BA8, 101065 }, - { 0x6BA9, 101067 }, - { 0x6BAA, 101069 }, - { 0x6BAB, 101071 }, - { 0x6BAC, 101073 }, - { 0x6BAD, 101075 }, - { 0x6BAE, 101077 }, - { 0x6BAF, 101079 }, - { 0x6BB0, 101081 }, - { 0x6BB1, 101083 }, - { 0x6BB2, 101085 }, - { 0x6BB3, 101087 }, - { 0x6BB4, 101089 }, - { 0x6BB5, 101091 }, - { 0x6BB6, 101093 }, - { 0x6BB7, 101095 }, - { 0x6BB8, 101097 }, - { 0x6BB9, 101099 }, - { 0x6BBA, 101101 }, - { 0x6BBB, 101103 }, - { 0x6BBC, 101105 }, - { 0x6BBD, 101107 }, - { 0x6BBE, 101109 }, - { 0x6BBF, 101111 }, - { 0x6BC0, 101113 }, - { 0x6BC1, 101115 }, - { 0x6BC2, 101117 }, - { 0x6BC3, 101119 }, - { 0x6BC4, 101121 }, - { 0x6BC5, 101123 }, - { 0x6BC6, 101125 }, - { 0x6BC7, 101127 }, - { 0x6BC8, 101129 }, - { 0x6BC9, 101131 }, - { 0x6BCA, 101133 }, - { 0x6BCB, 101135 }, - { 0x6BCC, 101137 }, - { 0x6BCD, 101139 }, - { 0x6BCE, 101141 }, - { 0x6BCF, 101143 }, - { 0x6BD0, 101145 }, - { 0x6BD1, 101147 }, - { 0x6BD2, 101149 }, - { 0x6BD3, 101151 }, - { 0x6BD4, 101153 }, - { 0x6BD5, 101155 }, - { 0x6BD6, 101157 }, - { 0x6BD7, 101159 }, - { 0x6BD8, 101161 }, - { 0x6BD9, 101163 }, - { 0x6BDA, 101165 }, - { 0x6BDB, 101167 }, - { 0x6BDC, 101169 }, - { 0x6BDD, 101171 }, - { 0x6BDE, 101173 }, - { 0x6BDF, 101175 }, - { 0x6BE0, 101177 }, - { 0x6BE1, 101179 }, - { 0x6BE2, 101181 }, - { 0x6BE3, 101183 }, - { 0x6BE4, 101185 }, - { 0x6BE5, 101187 }, - { 0x6BE6, 101189 }, - { 0x6BE7, 101191 }, - { 0x6BE8, 101193 }, - { 0x6BE9, 101195 }, - { 0x6BEA, 101197 }, - { 0x6BEB, 101199 }, - { 0x6BEC, 101201 }, - { 0x6BED, 101203 }, - { 0x6BEE, 101205 }, - { 0x6BEF, 101207 }, - { 0x6BF0, 101209 }, - { 0x6BF1, 101211 }, - { 0x6BF2, 101213 }, - { 0x6BF3, 101215 }, - { 0x6BF4, 101217 }, - { 0x6BF5, 101219 }, - { 0x6BF6, 101221 }, - { 0x6BF7, 101223 }, - { 0x6BF8, 101225 }, - { 0x6BF9, 101227 }, - { 0x6BFA, 101229 }, - { 0x6BFB, 101231 }, - { 0x6BFC, 101233 }, - { 0x6BFD, 101235 }, - { 0x6BFE, 101237 }, - { 0x6BFF, 101239 }, - { 0x6C00, 101241 }, - { 0x6C01, 101243 }, - { 0x6C02, 101245 }, - { 0x6C03, 101247 }, - { 0x6C04, 101249 }, - { 0x6C05, 101251 }, - { 0x6C06, 101253 }, - { 0x6C07, 101255 }, - { 0x6C08, 101257 }, - { 0x6C09, 101259 }, - { 0x6C0A, 101261 }, - { 0x6C0B, 101263 }, - { 0x6C0C, 101265 }, - { 0x6C0D, 101267 }, - { 0x6C0E, 101269 }, - { 0x6C0F, 101271 }, - { 0x6C10, 101273 }, - { 0x6C11, 101275 }, - { 0x6C12, 101277 }, - { 0x6C13, 101279 }, - { 0x6C14, 101281 }, - { 0x6C15, 101283 }, - { 0x6C16, 101285 }, - { 0x6C17, 101287 }, - { 0x6C18, 101289 }, - { 0x6C19, 101291 }, - { 0x6C1A, 101293 }, - { 0x6C1B, 101295 }, - { 0x6C1C, 101297 }, - { 0x6C1D, 101299 }, - { 0x6C1E, 101301 }, - { 0x6C1F, 101303 }, - { 0x6C20, 101305 }, - { 0x6C21, 101307 }, - { 0x6C22, 101309 }, - { 0x6C23, 101311 }, - { 0x6C24, 101313 }, - { 0x6C25, 101315 }, - { 0x6C26, 101317 }, - { 0x6C27, 101319 }, - { 0x6C28, 101321 }, - { 0x6C29, 101323 }, - { 0x6C2A, 101325 }, - { 0x6C2B, 101327 }, - { 0x6C2C, 101329 }, - { 0x6C2D, 101331 }, - { 0x6C2E, 101333 }, - { 0x6C2F, 101335 }, - { 0x6C30, 101337 }, - { 0x6C31, 101339 }, - { 0x6C32, 101341 }, - { 0x6C33, 101343 }, - { 0x6C34, 101345 }, - { 0x6C35, 101347 }, - { 0x6C36, 101349 }, - { 0x6C37, 101351 }, - { 0x6C38, 101353 }, - { 0x6C39, 101355 }, - { 0x6C3A, 101357 }, - { 0x6C3B, 101359 }, - { 0x6C3C, 101361 }, - { 0x6C3D, 101363 }, - { 0x6C3E, 101365 }, - { 0x6C3F, 101367 }, - { 0x6C40, 101369 }, - { 0x6C41, 101371 }, - { 0x6C42, 101373 }, - { 0x6C43, 101375 }, - { 0x6C44, 101377 }, - { 0x6C45, 101379 }, - { 0x6C46, 101381 }, - { 0x6C47, 101383 }, - { 0x6C48, 101385 }, - { 0x6C49, 101387 }, - { 0x6C4A, 101389 }, - { 0x6C4B, 101391 }, - { 0x6C4C, 101393 }, - { 0x6C4D, 101395 }, - { 0x6C4E, 101397 }, - { 0x6C4F, 101399 }, - { 0x6C50, 101401 }, - { 0x6C51, 101403 }, - { 0x6C52, 101405 }, - { 0x6C53, 101407 }, - { 0x6C54, 101409 }, - { 0x6C55, 101411 }, - { 0x6C56, 101413 }, - { 0x6C57, 101415 }, - { 0x6C58, 101417 }, - { 0x6C59, 101419 }, - { 0x6C5A, 101421 }, - { 0x6C5B, 101423 }, - { 0x6C5C, 101425 }, - { 0x6C5D, 101427 }, - { 0x6C5E, 101429 }, - { 0x6C5F, 101431 }, - { 0x6C60, 101433 }, - { 0x6C61, 101435 }, - { 0x6C62, 101437 }, - { 0x6C63, 101439 }, - { 0x6C64, 101441 }, - { 0x6C65, 101443 }, - { 0x6C66, 101445 }, - { 0x6C67, 101447 }, - { 0x6C68, 101449 }, - { 0x6C69, 101451 }, - { 0x6C6A, 101453 }, - { 0x6C6B, 101455 }, - { 0x6C6C, 101457 }, - { 0x6C6D, 101459 }, - { 0x6C6E, 101461 }, - { 0x6C6F, 101463 }, - { 0x6C70, 101465 }, - { 0x6C71, 101467 }, - { 0x6C72, 101469 }, - { 0x6C73, 101471 }, - { 0x6C74, 101473 }, - { 0x6C75, 101475 }, - { 0x6C76, 101477 }, - { 0x6C77, 101479 }, - { 0x6C78, 101481 }, - { 0x6C79, 101483 }, - { 0x6C7A, 101485 }, - { 0x6C7B, 101487 }, - { 0x6C7C, 101489 }, - { 0x6C7D, 101491 }, - { 0x6C7E, 101493 }, - { 0x6C7F, 101495 }, - { 0x6C80, 101497 }, - { 0x6C81, 101499 }, - { 0x6C82, 101501 }, - { 0x6C83, 101503 }, - { 0x6C84, 101505 }, - { 0x6C85, 101507 }, - { 0x6C86, 101509 }, - { 0x6C87, 101511 }, - { 0x6C88, 101513 }, - { 0x6C89, 101515 }, - { 0x6C8A, 101517 }, - { 0x6C8B, 101519 }, - { 0x6C8C, 101521 }, - { 0x6C8D, 101523 }, - { 0x6C8E, 101525 }, - { 0x6C8F, 101527 }, - { 0x6C90, 101529 }, - { 0x6C91, 101531 }, - { 0x6C92, 101533 }, - { 0x6C93, 101535 }, - { 0x6C94, 101537 }, - { 0x6C95, 101539 }, - { 0x6C96, 101541 }, - { 0x6C97, 101543 }, - { 0x6C98, 101545 }, - { 0x6C99, 101547 }, - { 0x6C9A, 101549 }, - { 0x6C9B, 101551 }, - { 0x6C9C, 101553 }, - { 0x6C9D, 101555 }, - { 0x6C9E, 101557 }, - { 0x6C9F, 101559 }, - { 0x6CA0, 101561 }, - { 0x6CA1, 101563 }, - { 0x6CA2, 101565 }, - { 0x6CA3, 101567 }, - { 0x6CA4, 101569 }, - { 0x6CA5, 101571 }, - { 0x6CA6, 101573 }, - { 0x6CA7, 101575 }, - { 0x6CA8, 101577 }, - { 0x6CA9, 101579 }, - { 0x6CAA, 101581 }, - { 0x6CAB, 101583 }, - { 0x6CAC, 101585 }, - { 0x6CAD, 101587 }, - { 0x6CAE, 101589 }, - { 0x6CAF, 101591 }, - { 0x6CB0, 101593 }, - { 0x6CB1, 101595 }, - { 0x6CB2, 101597 }, - { 0x6CB3, 101599 }, - { 0x6CB4, 101601 }, - { 0x6CB5, 101603 }, - { 0x6CB6, 101605 }, - { 0x6CB7, 101607 }, - { 0x6CB8, 101609 }, - { 0x6CB9, 101611 }, - { 0x6CBA, 101613 }, - { 0x6CBB, 101615 }, - { 0x6CBC, 101617 }, - { 0x6CBD, 101619 }, - { 0x6CBE, 101621 }, - { 0x6CBF, 101623 }, - { 0x6CC0, 101625 }, - { 0x6CC1, 101627 }, - { 0x6CC2, 101629 }, - { 0x6CC3, 101631 }, - { 0x6CC4, 101633 }, - { 0x6CC5, 101635 }, - { 0x6CC6, 101637 }, - { 0x6CC7, 101639 }, - { 0x6CC8, 101641 }, - { 0x6CC9, 101643 }, - { 0x6CCA, 101645 }, - { 0x6CCB, 101647 }, - { 0x6CCC, 101649 }, - { 0x6CCD, 101651 }, - { 0x6CCE, 101653 }, - { 0x6CCF, 101655 }, - { 0x6CD0, 101657 }, - { 0x6CD1, 101659 }, - { 0x6CD2, 101661 }, - { 0x6CD3, 101663 }, - { 0x6CD4, 101665 }, - { 0x6CD5, 101667 }, - { 0x6CD6, 101669 }, - { 0x6CD7, 101671 }, - { 0x6CD8, 101673 }, - { 0x6CD9, 101675 }, - { 0x6CDA, 101677 }, - { 0x6CDB, 101679 }, - { 0x6CDC, 101681 }, - { 0x6CDD, 101683 }, - { 0x6CDE, 101685 }, - { 0x6CDF, 101687 }, - { 0x6CE0, 101689 }, - { 0x6CE1, 101691 }, - { 0x6CE2, 101693 }, - { 0x6CE3, 101695 }, - { 0x6CE4, 101697 }, - { 0x6CE5, 101699 }, - { 0x6CE6, 101701 }, - { 0x6CE7, 101703 }, - { 0x6CE8, 101705 }, - { 0x6CE9, 101707 }, - { 0x6CEA, 101709 }, - { 0x6CEB, 101711 }, - { 0x6CEC, 101713 }, - { 0x6CED, 101715 }, - { 0x6CEE, 101717 }, - { 0x6CEF, 101719 }, - { 0x6CF0, 101721 }, - { 0x6CF1, 101723 }, - { 0x6CF2, 101725 }, - { 0x6CF3, 101727 }, - { 0x6CF4, 101729 }, - { 0x6CF5, 101731 }, - { 0x6CF6, 101733 }, - { 0x6CF7, 101735 }, - { 0x6CF8, 101737 }, - { 0x6CF9, 101739 }, - { 0x6CFA, 101741 }, - { 0x6CFB, 101743 }, - { 0x6CFC, 101745 }, - { 0x6CFD, 101747 }, - { 0x6CFE, 101749 }, - { 0x6CFF, 101751 }, - { 0x6D00, 101753 }, - { 0x6D01, 101755 }, - { 0x6D02, 101757 }, - { 0x6D03, 101759 }, - { 0x6D04, 101761 }, - { 0x6D05, 101763 }, - { 0x6D06, 112613 }, - { 0x6D07, 112616 }, - { 0x6D08, 112619 }, - { 0x6D09, 112622 }, - { 0x6D0A, 112625 }, - { 0x6D0B, 112628 }, - { 0x6D0C, 112631 }, - { 0x6D0D, 112634 }, - { 0x6D0E, 112637 }, - { 0x6D0F, 112640 }, - { 0x6D10, 114198 }, - { 0x6D11, 112643 }, - { 0x6D12, 112646 }, - { 0x6D13, 112649 }, - { 0x6D14, 112652 }, - { 0x6D15, 112655 }, - { 0x6D16, 112658 }, - { 0x6D17, 112661 }, - { 0x6D18, 112664 }, - { 0x6D19, 112667 }, - { 0x6D1A, 112670 }, - { 0x6D1B, 112673 }, - { 0x6D1C, 112676 }, - { 0x6D1D, 112679 }, - { 0x6D1E, 112682 }, - { 0x6D1F, 112685 }, - { 0x6D20, 112688 }, - { 0x6D21, 114201 }, - { 0x6D22, 112691 }, - { 0x6D23, 112694 }, - { 0x6D24, 112697 }, - { 0x6D25, 112700 }, - { 0x6D26, 112703 }, - { 0x6D27, 112706 }, - { 0x6D28, 112709 }, - { 0x6D29, 112712 }, - { 0x6D2A, 112715 }, - { 0x6D2B, 112718 }, - { 0x6D2C, 112721 }, - { 0x6D2D, 112724 }, - { 0x6D2E, 112727 }, - { 0x6D2F, 114204 }, - { 0x6D30, 112730 }, - { 0x6D31, 112733 }, - { 0x6D32, 114207 }, - { 0x6D33, 112736 }, - { 0x6D34, 112739 }, - { 0x6D35, 112742 }, - { 0x6D36, 112745 }, - { 0x6D37, 114210 }, - { 0x6D38, 112748 }, - { 0x6D39, 114213 }, - { 0x6D3A, 114216 }, - { 0x6D3B, 112751 }, - { 0x6D3C, 112754 }, - { 0x6D3D, 112757 }, - { 0x6D3E, 112760 }, - { 0x6D3F, 112763 }, - { 0x6D40, 112766 }, - { 0x6D41, 112769 }, - { 0x6D42, 112772 }, - { 0x6D43, 112775 }, - { 0x6D44, 112778 }, - { 0x6D45, 112781 }, - { 0x6D46, 112784 }, - { 0x6D47, 112787 }, - { 0x6D48, 112790 }, - { 0x6D49, 112793 }, - { 0x6D4A, 112796 }, - { 0x6D4B, 112799 }, - { 0x6D4C, 112802 }, - { 0x6D4D, 112805 }, - { 0x6D4E, 112808 }, - { 0x6D4F, 114219 }, - { 0x6D50, 114222 }, - { 0x6D51, 114225 }, - { 0x6D52, 112811 }, - { 0x6D53, 112814 }, - { 0x6D54, 112817 }, - { 0x6D55, 112820 }, - { 0x6D56, 112823 }, - { 0x6D57, 112826 }, - { 0x6D58, 112829 }, - { 0x6D59, 112832 }, - { 0x6D5A, 112835 }, - { 0x6D5B, 112838 }, - { 0x6D5C, 112841 }, - { 0x6D5D, 112844 }, - { 0x6D5E, 112847 }, - { 0x6D5F, 112850 }, - { 0x6D60, 112853 }, - { 0x6D61, 112856 }, - { 0x6D62, 112859 }, - { 0x6D63, 112862 }, - { 0x6D64, 112865 }, - { 0x6D65, 112868 }, - { 0x6D66, 112871 }, - { 0x6D67, 112874 }, - { 0x6D68, 112877 }, - { 0x6D69, 112880 }, - { 0x6D6A, 112883 }, - { 0x6D6B, 112886 }, - { 0x6D6C, 112889 }, - { 0x6D6D, 112892 }, - { 0x6D6E, 112895 }, - { 0x6D6F, 112898 }, - { 0x6D70, 112901 }, - { 0x6D71, 114228 }, - { 0x6D72, 112904 }, - { 0x6D73, 114231 }, - { 0x6D74, 112907 }, - { 0x6D75, 112910 }, - { 0x6D76, 114234 }, - { 0x6D77, 112913 }, - { 0x6D78, 114237 }, - { 0x6D79, 112916 }, - { 0x6D7A, 114240 }, - { 0x6D7B, 112919 }, - { 0x6D7C, 112922 }, - { 0x6D7D, 114243 }, - { 0x6D7E, 114246 }, - { 0x6D7F, 114249 }, - { 0x6D80, 112925 }, - { 0x6D81, 114252 }, - { 0x6D82, 114255 }, - { 0x6D83, 112928 }, - { 0x6D84, 112931 }, - { 0x6D85, 114258 }, - { 0x6D86, 114261 }, - { 0x6D87, 114264 }, - { 0x6D88, 112934 }, - { 0x6D89, 112937 }, - { 0x6D8A, 112940 }, - { 0x6D8B, 114267 }, - { 0x6D8C, 114270 }, - { 0x6D8D, 112943 }, - { 0x6D8E, 112946 }, - { 0x6D8F, 112949 }, - { 0x6D90, 112952 }, - { 0x6D91, 112955 }, - { 0x6D92, 114273 }, - { 0x6D93, 112958 }, - { 0x6D94, 112961 }, - { 0x6D95, 112964 }, - { 0x6D96, 112967 }, - { 0x6D97, 112970 }, - { 0x6D98, 112973 }, - { 0x6D99, 112976 }, - { 0x6D9A, 112979 }, - { 0x6D9B, 112982 }, - { 0x6D9C, 112985 }, - { 0x6D9D, 114276 }, - { 0x6D9E, 112988 }, - { 0x6D9F, 112991 }, - { 0x6DA0, 112994 }, - { 0x6DA1, 112997 }, - { 0x6DA2, 113000 }, - { 0x6DA3, 113003 }, - { 0x6DA4, 113006 }, - { 0x6DA5, 113009 }, - { 0x6DA6, 113012 }, - { 0x6DA7, 113015 }, - { 0x6DA8, 114279 }, - { 0x6DA9, 113018 }, - { 0x6DAA, 113021 }, - { 0x6DAB, 113024 }, - { 0x6DAC, 113027 }, - { 0x6DAD, 113030 }, - { 0x6DAE, 113033 }, - { 0x6DAF, 113036 }, - { 0x6DB0, 113039 }, - { 0x6DB1, 113042 }, - { 0x6DB2, 113045 }, - { 0x6DB3, 113048 }, - { 0x6DB4, 113051 }, - { 0x6DB5, 113054 }, - { 0x6DB6, 113057 }, - { 0x6DB7, 113060 }, - { 0x6DB8, 113063 }, - { 0x6DB9, 113066 }, - { 0x6DBA, 113069 }, - { 0x6DBB, 113072 }, - { 0x6DBC, 113075 }, - { 0x6DBD, 113078 }, - { 0x6DBE, 113081 }, - { 0x6DBF, 113084 }, - { 0x6DC0, 113087 }, - { 0x6DC1, 113090 }, - { 0x6DC2, 113093 }, - { 0x6DC3, 113096 }, - { 0x6DC4, 113099 }, - { 0x6DC5, 113102 }, - { 0x6DC6, 113105 }, - { 0x6DC7, 113108 }, - { 0x6DC8, 113111 }, - { 0x6DC9, 113114 }, - { 0x6DCA, 113117 }, - { 0x6DCB, 113120 }, - { 0x6DCC, 113123 }, - { 0x6DCD, 113126 }, - { 0x6DCE, 113129 }, - { 0x6DCF, 113132 }, - { 0x6DD0, 113135 }, - { 0x6DD1, 113138 }, - { 0x6DD2, 113141 }, - { 0x6DD3, 113144 }, - { 0x6DD4, 113147 }, - { 0x6DD5, 113150 }, - { 0x6DD6, 113153 }, - { 0x6DD7, 113156 }, - { 0x6DD8, 113159 }, - { 0x6DD9, 113162 }, - { 0x6DDA, 113165 }, - { 0x6DDB, 113168 }, - { 0x6DDC, 113171 }, - { 0x6DDD, 113174 }, - { 0x6DDE, 113177 }, - { 0x6DDF, 113180 }, - { 0x6DE0, 113183 }, - { 0x6DE1, 113186 }, - { 0x6DE2, 113189 }, - { 0x6DE3, 113192 }, - { 0x6DE4, 113195 }, - { 0x6DE5, 113198 }, - { 0x6DE6, 113201 }, - { 0x6DE7, 113204 }, - { 0x6DE8, 113207 }, - { 0x6DE9, 113210 }, - { 0x6DEA, 113213 }, - { 0x6DEB, 113216 }, - { 0x6DEC, 114282 }, - { 0x6DED, 114285 }, - { 0x6DEE, 113219 }, - { 0x6DEF, 113222 }, - { 0x6DF0, 113225 }, - { 0x6DF1, 113228 }, - { 0x6DF2, 113231 }, - { 0x6DF3, 114288 }, - { 0x6DF4, 113234 }, - { 0x6DF5, 113237 }, - { 0x6DF6, 114291 }, - { 0x6DF7, 113240 }, - { 0x6DF8, 113243 }, - { 0x6DF9, 113246 }, - { 0x6DFA, 113249 }, - { 0x6DFB, 113252 }, - { 0x6DFC, 113255 }, - { 0x6DFD, 114294 }, - { 0x6DFE, 113258 }, - { 0x6DFF, 114297 }, - { 0x6E00, 113261 }, - { 0x6E01, 113264 }, - { 0x6E02, 113267 }, - { 0x6E03, 113270 }, - { 0x6E04, 113273 }, - { 0x6E05, 113276 }, - { 0x6E06, 113279 }, - { 0x6E07, 113282 }, - { 0x6E08, 113285 }, - { 0x6E09, 113288 }, - { 0x6E0A, 113291 }, - { 0x6E0B, 114300 }, - { 0x6E0C, 113294 }, - { 0x6E0D, 113297 }, - { 0x6E0E, 113300 }, - { 0x6E0F, 113303 }, - { 0x6E10, 113306 }, - { 0x6E11, 113309 }, - { 0x6E12, 113312 }, - { 0x6E13, 113315 }, - { 0x6E14, 113318 }, - { 0x6E15, 113321 }, - { 0x6E16, 113324 }, - { 0x6E17, 113327 }, - { 0x6E18, 113330 }, - { 0x6E19, 113333 }, - { 0x6E1A, 113336 }, - { 0x6E1B, 113339 }, - { 0x6E1C, 113342 }, - { 0x6E1D, 113345 }, - { 0x6E1E, 113348 }, - { 0x6E1F, 113351 }, - { 0x6E20, 113354 }, - { 0x6E21, 113357 }, - { 0x6E22, 113360 }, - { 0x6E23, 113363 }, - { 0x6E24, 113366 }, - { 0x6E25, 113369 }, - { 0x6E26, 113372 }, - { 0x6E27, 113375 }, - { 0x6E28, 113378 }, - { 0x6E29, 113381 }, - { 0x6E2A, 113384 }, - { 0x6E2B, 113387 }, - { 0x6E2C, 113390 }, - { 0x6E2D, 113393 }, - { 0x6E2E, 113396 }, - { 0x6E2F, 113399 }, - { 0x6E30, 113402 }, - { 0x6E31, 113405 }, - { 0x6E32, 113408 }, - { 0x6E33, 113411 }, - { 0x6E34, 114303 }, - { 0x6E35, 113414 }, - { 0x6E36, 113417 }, - { 0x6E37, 113420 }, - { 0x6E38, 113423 }, - { 0x6E39, 113426 }, - { 0x6E3A, 113429 }, - { 0x6E3B, 113432 }, - { 0x6E3C, 113435 }, - { 0x6E3D, 113438 }, - { 0x6E3E, 113441 }, - { 0x6E3F, 113444 }, - { 0x6E40, 113447 }, - { 0x6E41, 113450 }, - { 0x6E42, 113453 }, - { 0x6E43, 113456 }, - { 0x6E44, 113459 }, - { 0x6E45, 113462 }, - { 0x6E46, 113465 }, - { 0x6E47, 113468 }, - { 0x6E48, 113471 }, - { 0x6E49, 113474 }, - { 0x6E4A, 113477 }, - { 0x6E4B, 114306 }, - { 0x6E4C, 113480 }, - { 0x6E4D, 113483 }, - { 0x6E4E, 113486 }, - { 0x6E4F, 113489 }, - { 0x6E50, 113492 }, - { 0x6E51, 114309 }, - { 0x6E52, 113495 }, - { 0x6E53, 113498 }, - { 0x6E54, 113501 }, - { 0x6E55, 113504 }, - { 0x6E56, 113507 }, - { 0x6E57, 114312 }, - { 0x6E58, 113510 }, - { 0x6E59, 113513 }, - { 0x6E5A, 113516 }, - { 0x6E5B, 113519 }, - { 0x6E5C, 113522 }, - { 0x6E5D, 113525 }, - { 0x6E5E, 113528 }, - { 0x6E5F, 113531 }, - { 0x6E60, 113534 }, - { 0x6E61, 113537 }, - { 0x6E62, 114315 }, - { 0x6E63, 113540 }, - { 0x6E64, 113543 }, - { 0x6E65, 113546 }, - { 0x6E66, 113549 }, - { 0x6E67, 113552 }, - { 0x6E68, 113555 }, - { 0x6E69, 113558 }, - { 0x6E6A, 113561 }, - { 0x6E6B, 113564 }, - { 0x6E6C, 113567 }, - { 0x6E6D, 113570 }, - { 0x6E6E, 113573 }, - { 0x6E6F, 113576 }, - { 0x6E70, 113579 }, - { 0x6E71, 113582 }, - { 0x6E72, 113585 }, - { 0x6E73, 113588 }, - { 0x6E74, 113591 }, - { 0x6E75, 113594 }, - { 0x6E76, 113597 }, - { 0x6E77, 114318 }, - { 0x6E78, 113600 }, - { 0x6E79, 113603 }, - { 0x6E7A, 114321 }, - { 0x6E7B, 114324 }, - { 0x6E7C, 114327 }, - { 0x6E7D, 113606 }, - { 0x6E7E, 113609 }, - { 0x6E7F, 113612 }, - { 0x6E80, 113615 }, - { 0x6E81, 114330 }, - { 0x6E82, 114333 }, - { 0x6E83, 114336 }, - { 0x6E84, 113618 }, - { 0x6E85, 113621 }, - { 0x6E86, 113624 }, - { 0x6E87, 113627 }, - { 0x6E88, 113630 }, - { 0x6E89, 113633 }, - { 0x6E8A, 113636 }, - { 0x6E8B, 113639 }, - { 0x6E8C, 113642 }, - { 0x6E8D, 113645 }, - { 0x6E8E, 113648 }, - { 0x6E8F, 113651 }, - { 0x6E90, 113654 }, - { 0x6E91, 113657 }, - { 0x6E92, 113660 }, - { 0x6E93, 113663 }, - { 0x6E94, 113666 }, - { 0x6E95, 113669 }, - { 0x6E96, 113672 }, - { 0x6E97, 113675 }, - { 0x6E98, 113678 }, - { 0x6E99, 113681 }, - { 0x6E9A, 113684 }, - { 0x6E9B, 114339 }, - { 0x6E9C, 113687 }, - { 0x6E9D, 113690 }, - { 0x6E9E, 113693 }, - { 0x6E9F, 113696 }, - { 0x6EA0, 113699 }, - { 0x6EA1, 114342 }, - { 0x6EA2, 113702 }, - { 0x6EA3, 113705 }, - { 0x6EA4, 113708 }, - { 0x6EA5, 113711 }, - { 0x6EA6, 114345 }, - { 0x6EA7, 113714 }, - { 0x6EA8, 113717 }, - { 0x6EA9, 113720 }, - { 0x6EAA, 114348 }, - { 0x6EAB, 113723 }, - { 0x6EAC, 113726 }, - { 0x6EAD, 113729 }, - { 0x6EAE, 113732 }, - { 0x6EAF, 113735 }, - { 0x6EB0, 113738 }, - { 0x6EB1, 113741 }, - { 0x6EB2, 113744 }, - { 0x6EB3, 113747 }, - { 0x6EB4, 113750 }, - { 0x6EB5, 114351 }, - { 0x6EB6, 113753 }, - { 0x6EB7, 113756 }, - { 0x6EB8, 114354 }, - { 0x6EB9, 113762 }, - { 0x6EBA, 113765 }, - { 0x6EBB, 113768 }, - { 0x6EBC, 114357 }, - { 0x6EBD, 113771 }, - { 0x6EBE, 113774 }, - { 0x6EBF, 113777 }, - { 0x6EC0, 113780 }, - { 0x6EC1, 113783 }, - { 0x6EC2, 113786 }, - { 0x6EC3, 113789 }, - { 0x6EC4, 113793 }, - { 0x6EC5, 113796 }, - { 0x6EC6, 113799 }, - { 0x6EC7, 113802 }, - { 0x6EC8, 113805 }, - { 0x6EC9, 113808 }, - { 0x6ECA, 113811 }, - { 0x6ECB, 113814 }, - { 0x6ECC, 113817 }, - { 0x6ECD, 113820 }, - { 0x6ECE, 113823 }, - { 0x6ECF, 113826 }, - { 0x6ED0, 113829 }, - { 0x6ED1, 113832 }, - { 0x6ED2, 113835 }, - { 0x6ED3, 113838 }, - { 0x6ED4, 113841 }, - { 0x6ED5, 114360 }, - { 0x6ED6, 113847 }, - { 0x6ED7, 113850 }, - { 0x6ED8, 113853 }, - { 0x6ED9, 113856 }, - { 0x6EDA, 113859 }, - { 0x6EDB, 113862 }, - { 0x6EDC, 113865 }, - { 0x6EDD, 113868 }, - { 0x6EDE, 113871 }, - { 0x6EDF, 113874 }, - { 0x6EE0, 113877 }, - { 0x6EE1, 113880 }, - { 0x6EE2, 113883 }, - { 0x6EE3, 113886 }, - { 0x6EE4, 113889 }, - { 0x6EE5, 113892 }, - { 0x6EE6, 113895 }, - { 0x6EE7, 113898 }, - { 0x6EE8, 113901 }, - { 0x6EE9, 113904 }, - { 0x6EEA, 113907 }, - { 0x6EEB, 113910 }, - { 0x6EEC, 113913 }, - { 0x6EED, 113916 }, - { 0x6EEE, 113919 }, - { 0x6EEF, 113922 }, - { 0x6EF0, 113925 }, - { 0x6EF1, 113928 }, - { 0x6EF2, 113931 }, - { 0x6EF3, 113934 }, - { 0x6EF4, 113937 }, - { 0x6EF5, 113940 }, - { 0x6EF6, 113943 }, - { 0x6EF7, 113946 }, - { 0x6EF8, 113949 }, - { 0x6EF9, 113952 }, - { 0x6EFA, 113955 }, - { 0x6EFB, 113958 }, - { 0x6EFC, 113961 }, - { 0x6EFD, 113964 }, - { 0x6EFE, 114366 }, - { 0x6EFF, 113967 }, - { 0x6F00, 113970 }, - { 0x6F01, 113973 }, - { 0x6F02, 113976 }, - { 0x6F03, 113979 }, - { 0x6F04, 113982 }, - { 0x6F05, 113985 }, - { 0x6F06, 114369 }, - { 0x6F07, 113988 }, - { 0x6F08, 113991 }, - { 0x6F09, 113994 }, - { 0x6F0A, 113997 }, - { 0x6F0B, 114000 }, - { 0x6F0C, 114003 }, - { 0x6F0D, 114006 }, - { 0x6F0E, 114009 }, - { 0x6F0F, 114012 }, - { 0x6F10, 114015 }, - { 0x6F11, 114018 }, - { 0x6F12, 114021 }, - { 0x6F13, 114024 }, - { 0x6F14, 114027 }, - { 0x6F15, 114030 }, - { 0x6F16, 114033 }, - { 0x6F17, 114036 }, - { 0x6F18, 114039 }, - { 0x6F19, 114042 }, - { 0x6F1A, 114045 }, - { 0x6F1B, 114048 }, - { 0x6F1C, 114051 }, - { 0x6F1D, 114054 }, - { 0x6F1E, 114057 }, - { 0x6F1F, 114060 }, - { 0x6F20, 114063 }, - { 0x6F21, 114066 }, - { 0x6F22, 114069 }, - { 0x6F23, 114072 }, - { 0x6F24, 114075 }, - { 0x6F25, 114078 }, - { 0x6F26, 114081 }, - { 0x6F27, 114084 }, - { 0x6F28, 114087 }, - { 0x6F29, 114090 }, - { 0x6F2A, 114093 }, - { 0x6F2B, 114096 }, - { 0x6F2C, 114099 }, - { 0x6F2D, 114102 }, - { 0x6F2E, 114105 }, - { 0x6F2F, 114108 }, - { 0x6F30, 114111 }, - { 0x6F31, 114114 }, - { 0x6F32, 114117 }, - { 0x6F33, 114120 }, - { 0x6F34, 114123 }, - { 0x6F35, 114126 }, - { 0x6F36, 114129 }, - { 0x6F37, 114132 }, - { 0x6F38, 114135 }, - { 0x6F39, 114138 }, - { 0x6F3A, 114141 }, - { 0x6F3B, 114144 }, - { 0x6F3C, 114147 }, - { 0x6F3D, 114150 }, - { 0x6F3E, 114153 }, - { 0x6F3F, 114156 }, - { 0x6F40, 114159 }, - { 0x6F41, 114162 }, - { 0x6F42, 114165 }, - { 0x6F43, 114168 }, - { 0x6F44, 114171 }, - { 0x6F45, 114174 }, - { 0x6F46, 114177 }, - { 0x6F47, 114180 }, - { 0x6F48, 114183 }, - { 0x6F49, 114186 }, - { 0x6F4A, 114189 }, - { 0x6F4B, 114192 }, - { 0x6F4C, 114195 }, - { 0x6F4D, 55185 }, - { 0x6F4E, 55213 }, - { 0x6F4F, 55277 }, - { 0x6F50, 55201 }, - { 0x6F51, 55269 }, - { 0x6F52, 55281 }, - { 0x6F53, 55193 }, - { 0x6F54, 55257 }, - { 0x6F55, 55209 }, - { 0x6F56, 55273 }, - { 0x6F57, 55205 }, - { 0x6F58, 55293 }, - { 0x6F59, 55301 }, - { 0x6F5A, 55261 }, - { 0x6F5B, 55297 }, - { 0x6F5C, 55245 }, - { 0x6F5D, 55241 }, - { 0x6F5E, 55289 }, - { 0x6F5F, 55197 }, - { 0x6F60, 55265 }, - { 0x6F61, 55225 }, - { 0x6F62, 55229 }, - { 0x6F63, 55285 }, - { 0x6F64, 55189 }, - { 0x6F65, 55253 }, - { 0x6F66, 55221 }, - { 0x6F67, 55249 }, - { 0x6F68, 55233 }, - { 0x6F69, 55217 }, - { 0x6F6A, 55237 }, - { 0x6F6B, 55145 }, - { 0x6F6C, 55130 }, - { 0x6F6D, 55165 }, - { 0x6F6E, 55140 }, - { 0x6F6F, 55175 }, - { 0x6F70, 55125 }, - { 0x6F71, 55160 }, - { 0x6F72, 55150 }, - { 0x6F73, 55135 }, - { 0x6F74, 55170 }, - { 0x6F75, 55155 }, - { 0x6F76, 55180 }, - { 0x6F77, 55323 }, - { 0x6F78, 55317 }, - { 0x6F79, 55305 }, - { 0x6F7A, 55077 }, - { 0x6F7B, 55311 }, - { 0x6F7C, 55081 }, - { 0x6F7D, 55109 }, - { 0x6F7E, 55085 }, - { 0x6F7F, 55093 }, - { 0x6F80, 55121 }, - { 0x6F81, 55101 }, - { 0x6F82, 55097 }, - { 0x6F83, 55089 }, - { 0x6F84, 55117 }, - { 0x6F85, 55113 }, - { 0x6F86, 55105 }, - { 0x6F87, 18482 }, - { 0x6F88, 18461 }, - { 0x6F89, 18344 }, - { 0x6F8A, 18338 }, - { 0x6F8B, 18293 }, - { 0x6F8C, 18617 }, - { 0x6F8D, 18456 }, - { 0x6F8E, 18315 }, - { 0x6F8F, 18527 }, - { 0x6F90, 18331 }, - { 0x6F91, 18324 }, - { 0x6F92, 18605 }, - { 0x6F93, 18265 }, - { 0x6F94, 18507 }, - { 0x6F95, 18585 }, - { 0x6F96, 18549 }, - { 0x6F97, 18609 }, - { 0x6F98, 18573 }, - { 0x6F99, 18565 }, - { 0x6F9A, 18601 }, - { 0x6F9B, 18511 }, - { 0x6F9C, 18366 }, - { 0x6F9D, 18613 }, - { 0x6F9E, 18466 }, - { 0x6F9F, 18278 }, - { 0x6FA0, 18414 }, - { 0x6FA1, 18545 }, - { 0x6FA2, 18523 }, - { 0x6FA3, 18589 }, - { 0x6FA4, 18569 }, - { 0x6FA5, 18288 }, - { 0x6FA6, 18433 }, - { 0x6FA7, 18250 }, - { 0x6FA8, 18621 }, - { 0x6FA9, 18419 }, - { 0x6FAA, 18452 }, - { 0x6FAB, 18503 }, - { 0x6FAC, 18625 }, - { 0x6FAD, 18557 }, - { 0x6FAE, 18378 }, - { 0x6FAF, 18260 }, - { 0x6FB0, 18302 }, - { 0x6FB1, 18320 }, - { 0x6FB2, 18581 }, - { 0x6FB3, 18398 }, - { 0x6FB4, 18350 }, - { 0x6FB5, 18487 }, - { 0x6FB6, 18470 }, - { 0x6FB7, 18537 }, - { 0x6FB8, 18597 }, - { 0x6FB9, 18495 }, - { 0x6FBA, 18274 }, - { 0x6FBB, 18629 }, - { 0x6FBC, 18386 }, - { 0x6FBD, 18553 }, - { 0x6FBE, 18448 }, - { 0x6FBF, 18491 }, - { 0x6FC0, 18374 }, - { 0x6FC1, 18354 }, - { 0x6FC2, 18382 }, - { 0x6FC3, 18358 }, - { 0x6FC4, 18283 }, - { 0x6FC5, 18533 }, - { 0x6FC6, 18410 }, - { 0x6FC7, 18442 }, - { 0x6FC8, 18428 }, - { 0x6FC9, 18519 }, - { 0x6FCA, 18561 }, - { 0x6FCB, 18577 }, - { 0x6FCC, 18478 }, - { 0x6FCD, 18474 }, - { 0x6FCE, 18402 }, - { 0x6FCF, 18499 }, - { 0x6FD0, 18424 }, - { 0x6FD1, 18541 }, - { 0x6FD2, 18362 }, - { 0x6FD3, 18438 }, - { 0x6FD4, 18515 }, - { 0x6FD5, 18390 }, - { 0x6FD6, 18311 }, - { 0x6FD7, 18270 }, - { 0x6FD8, 18406 }, - { 0x6FD9, 18370 }, - { 0x6FDA, 18256 }, - { 0x6FDB, 18307 }, - { 0x6FDC, 18298 }, - { 0x6FDD, 18394 }, - { 0x6FDE, 18824 }, - { 0x6FDF, 18652 }, - { 0x6FE0, 18748 }, - { 0x6FE1, 18703 }, - { 0x6FE2, 18679 }, - { 0x6FE3, 18684 }, - { 0x6FE4, 18765 }, - { 0x6FE5, 18832 }, - { 0x6FE6, 18840 }, - { 0x6FE7, 18661 }, - { 0x6FE8, 18828 }, - { 0x6FE9, 18760 }, - { 0x6FEA, 18669 }, - { 0x6FEB, 18778 }, - { 0x6FEC, 18689 }, - { 0x6FED, 18873 }, - { 0x6FEE, 18699 }, - { 0x6FEF, 18647 }, - { 0x6FF0, 18743 }, - { 0x6FF1, 18869 }, - { 0x6FF2, 18730 }, - { 0x6FF3, 18716 }, - { 0x6FF4, 18694 }, - { 0x6FF5, 18795 }, - { 0x6FF6, 18861 }, - { 0x6FF7, 18836 }, - { 0x6FF8, 18799 }, - { 0x6FF9, 18783 }, - { 0x6FFA, 18756 }, - { 0x6FFB, 18844 }, - { 0x6FFC, 18773 }, - { 0x6FFD, 18787 }, - { 0x6FFE, 18857 }, - { 0x6FFF, 18752 }, - { 0x7000, 18721 }, - { 0x7001, 18815 }, - { 0x7002, 18819 }, - { 0x7003, 18807 }, - { 0x7004, 18708 }, - { 0x7005, 18803 }, - { 0x7006, 18865 }, - { 0x7007, 18849 }, - { 0x7008, 18853 }, - { 0x7009, 18725 }, - { 0x700A, 18712 }, - { 0x700B, 18769 }, - { 0x700C, 18657 }, - { 0x700D, 18791 }, - { 0x700E, 18642 }, - { 0x700F, 18637 }, - { 0x7010, 18675 }, - { 0x7011, 18811 }, - { 0x7012, 18739 }, - { 0x7013, 18633 }, - { 0x7014, 18665 }, - { 0x7015, 18735 }, - { 0x7016, 19129 }, - { 0x7017, 18955 }, - { 0x7018, 18979 }, - { 0x7019, 19272 }, - { 0x701A, 19117 }, - { 0x701B, 19276 }, - { 0x701C, 19125 }, - { 0x701D, 19171 }, - { 0x701E, 19252 }, - { 0x701F, 19093 }, - { 0x7020, 19066 }, - { 0x7021, 18950 }, - { 0x7022, 19101 }, - { 0x7023, 19236 }, - { 0x7024, 19199 }, - { 0x7025, 19005 }, - { 0x7026, 19280 }, - { 0x7027, 18987 }, - { 0x7028, 19175 }, - { 0x7029, 18895 }, - { 0x702A, 19155 }, - { 0x702B, 19014 }, - { 0x702C, 19232 }, - { 0x702D, 19010 }, - { 0x702E, 19089 }, - { 0x702F, 19179 }, - { 0x7030, 18904 }, - { 0x7031, 19072 }, - { 0x7032, 19113 }, - { 0x7033, 19240 }, - { 0x7034, 19142 }, - { 0x7035, 19080 }, - { 0x7036, 19163 }, - { 0x7037, 19223 }, - { 0x7038, 19085 }, - { 0x7039, 19260 }, - { 0x703A, 18886 }, - { 0x703B, 19058 }, - { 0x703C, 19203 }, - { 0x703D, 18930 }, - { 0x703E, 19256 }, - { 0x703F, 19219 }, - { 0x7040, 19264 }, - { 0x7041, 19244 }, - { 0x7042, 19121 }, - { 0x7043, 18900 }, - { 0x7044, 19109 }, - { 0x7045, 18946 }, - { 0x7046, 19146 }, - { 0x7047, 18983 }, - { 0x7048, 19268 }, - { 0x7049, 19191 }, - { 0x704A, 18891 }, - { 0x704B, 19134 }, - { 0x704C, 18926 }, - { 0x704D, 19248 }, - { 0x704E, 19150 }, - { 0x704F, 19207 }, - { 0x7050, 18918 }, - { 0x7051, 19038 }, - { 0x7052, 19097 }, - { 0x7053, 19195 }, - { 0x7054, 18877 }, - { 0x7055, 18922 }, - { 0x7056, 19046 }, - { 0x7057, 19042 }, - { 0x7058, 18971 }, - { 0x7059, 19228 }, - { 0x705A, 19050 }, - { 0x705B, 19062 }, - { 0x705C, 18995 }, - { 0x705D, 19054 }, - { 0x705E, 19026 }, - { 0x705F, 18881 }, - { 0x7060, 18975 }, - { 0x7061, 19030 }, - { 0x7062, 19159 }, - { 0x7063, 19211 }, - { 0x7064, 18938 }, - { 0x7065, 19183 }, - { 0x7066, 19187 }, - { 0x7067, 19215 }, - { 0x7068, 19105 }, - { 0x7069, 18991 }, - { 0x706A, 19000 }, - { 0x706B, 19167 }, - { 0x706C, 19138 }, - { 0x706D, 19018 }, - { 0x706E, 19022 }, - { 0x706F, 19076 }, - { 0x7070, 18908 }, - { 0x7071, 18913 }, - { 0x7072, 19034 }, - { 0x7073, 18942 }, - { 0x7074, 18934 }, - { 0x7075, 18963 }, - { 0x7076, 18959 }, - { 0x7077, 18967 }, - { 0x7078, 19459 }, - { 0x7079, 19414 }, - { 0x707A, 19344 }, - { 0x707B, 19471 }, - { 0x707C, 19612 }, - { 0x707D, 19446 }, - { 0x707E, 19608 }, - { 0x707F, 19620 }, - { 0x7080, 19740 }, - { 0x7081, 19511 }, - { 0x7082, 19640 }, - { 0x7083, 19604 }, - { 0x7084, 19531 }, - { 0x7085, 19600 }, - { 0x7086, 19752 }, - { 0x7087, 19551 }, - { 0x7088, 19704 }, - { 0x7089, 19495 }, - { 0x708A, 19398 }, - { 0x708B, 19316 }, - { 0x708C, 19736 }, - { 0x708D, 19434 }, - { 0x708E, 19382 }, - { 0x708F, 19584 }, - { 0x7090, 19592 }, - { 0x7091, 19716 }, - { 0x7092, 19467 }, - { 0x7093, 19700 }, - { 0x7094, 19418 }, - { 0x7095, 19732 }, - { 0x7096, 19567 }, - { 0x7097, 19728 }, - { 0x7098, 19308 }, - { 0x7099, 19422 }, - { 0x709A, 19684 }, - { 0x709B, 19748 }, - { 0x709C, 19487 }, - { 0x709D, 19720 }, - { 0x709E, 19652 }, - { 0x709F, 19491 }, - { 0x70A0, 19475 }, - { 0x70A1, 19660 }, - { 0x70A2, 19523 }, - { 0x70A3, 19664 }, - { 0x70A4, 19340 }, - { 0x70A5, 19336 }, - { 0x70A6, 19688 }, - { 0x70A7, 19450 }, - { 0x70A8, 19572 }, - { 0x70A9, 19515 }, - { 0x70AA, 19708 }, - { 0x70AB, 19394 }, - { 0x70AC, 19644 }, - { 0x70AD, 19426 }, - { 0x70AE, 19527 }, - { 0x70AF, 19636 }, - { 0x70B0, 19744 }, - { 0x70B1, 19656 }, - { 0x70B2, 19692 }, - { 0x70B3, 19430 }, - { 0x70B4, 19360 }, - { 0x70B5, 19696 }, - { 0x70B6, 19519 }, - { 0x70B7, 19328 }, - { 0x70B8, 19668 }, - { 0x70B9, 19588 }, - { 0x70BA, 19724 }, - { 0x70BB, 19559 }, - { 0x70BC, 19352 }, - { 0x70BD, 19563 }, - { 0x70BE, 19483 }, - { 0x70BF, 19628 }, - { 0x70C0, 19543 }, - { 0x70C1, 19320 }, - { 0x70C2, 19672 }, - { 0x70C3, 19680 }, - { 0x70C4, 19555 }, - { 0x70C5, 19463 }, - { 0x70C6, 19324 }, - { 0x70C7, 19499 }, - { 0x70C8, 19547 }, - { 0x70C9, 19712 }, - { 0x70CA, 19596 }, - { 0x70CB, 19442 }, - { 0x70CC, 19676 }, - { 0x70CD, 19624 }, - { 0x70CE, 19616 }, - { 0x70CF, 19648 }, - { 0x70D0, 19288 }, - { 0x70D1, 19368 }, - { 0x70D2, 19406 }, - { 0x70D3, 19410 }, - { 0x70D4, 19348 }, - { 0x70D5, 19378 }, - { 0x70D6, 19576 }, - { 0x70D7, 19580 }, - { 0x70D8, 19284 }, - { 0x70D9, 19402 }, - { 0x70DA, 19292 }, - { 0x70DB, 19535 }, - { 0x70DC, 19632 }, - { 0x70DD, 19438 }, - { 0x70DE, 19300 }, - { 0x70DF, 19390 }, - { 0x70E0, 19503 }, - { 0x70E1, 19356 }, - { 0x70E2, 19296 }, - { 0x70E3, 19539 }, - { 0x70E4, 19364 }, - { 0x70E5, 19479 }, - { 0x70E6, 19332 }, - { 0x70E7, 19373 }, - { 0x70E8, 19304 }, - { 0x70E9, 19507 }, - { 0x70EA, 19454 }, - { 0x70EB, 19386 }, - { 0x70EC, 19312 }, - { 0x70ED, 20100 }, - { 0x70EE, 20206 }, - { 0x70EF, 20254 }, - { 0x70F0, 19857 }, - { 0x70F1, 19991 }, - { 0x70F2, 20061 }, - { 0x70F3, 19915 }, - { 0x70F4, 19951 }, - { 0x70F5, 19931 }, - { 0x70F6, 20338 }, - { 0x70F7, 20108 }, - { 0x70F8, 20177 }, - { 0x70F9, 19959 }, - { 0x70FA, 20112 }, - { 0x70FB, 20250 }, - { 0x70FC, 19999 }, - { 0x70FD, 19939 }, - { 0x70FE, 20386 }, - { 0x70FF, 20153 }, - { 0x7100, 19975 }, - { 0x7101, 20053 }, - { 0x7102, 19865 }, - { 0x7103, 20334 }, - { 0x7104, 20116 }, - { 0x7105, 20069 }, - { 0x7106, 20326 }, - { 0x7107, 20120 }, - { 0x7108, 20290 }, - { 0x7109, 20342 }, - { 0x710A, 20286 }, - { 0x710B, 20157 }, - { 0x710C, 19935 }, - { 0x710D, 20366 }, - { 0x710E, 20077 }, - { 0x710F, 20242 }, - { 0x7110, 20390 }, - { 0x7111, 20374 }, - { 0x7112, 19877 }, - { 0x7113, 20065 }, - { 0x7114, 20358 }, - { 0x7115, 20104 }, - { 0x7116, 20201 }, - { 0x7117, 19943 }, - { 0x7118, 19923 }, - { 0x7119, 20095 }, - { 0x711A, 20394 }, - { 0x711B, 20226 }, - { 0x711C, 20238 }, - { 0x711D, 20210 }, - { 0x711E, 20310 }, - { 0x711F, 19825 }, - { 0x7120, 20302 }, - { 0x7121, 20246 }, - { 0x7122, 20298 }, - { 0x7123, 20346 }, - { 0x7124, 20306 }, - { 0x7125, 20214 }, - { 0x7126, 20057 }, - { 0x7127, 19829 }, - { 0x7128, 20197 }, - { 0x7129, 20354 }, - { 0x712A, 20382 }, - { 0x712B, 20378 }, - { 0x712C, 20262 }, - { 0x712D, 20073 }, - { 0x712E, 20145 }, - { 0x712F, 20133 }, - { 0x7130, 20033 }, - { 0x7131, 19983 }, - { 0x7132, 20049 }, - { 0x7133, 20003 }, - { 0x7134, 19910 }, - { 0x7135, 20007 }, - { 0x7136, 20258 }, - { 0x7137, 20266 }, - { 0x7138, 20294 }, - { 0x7139, 20230 }, - { 0x713A, 20322 }, - { 0x713B, 19845 }, - { 0x713C, 20234 }, - { 0x713D, 20278 }, - { 0x713E, 19849 }, - { 0x713F, 19873 }, - { 0x7140, 20370 }, - { 0x7141, 20037 }, - { 0x7142, 19768 }, - { 0x7143, 20141 }, - { 0x7144, 20161 }, - { 0x7145, 20218 }, - { 0x7146, 20362 }, - { 0x7147, 19905 }, - { 0x7148, 20149 }, - { 0x7149, 20173 }, - { 0x714A, 20081 }, - { 0x714B, 20029 }, - { 0x714C, 19897 }, - { 0x714D, 20085 }, - { 0x714E, 20318 }, - { 0x714F, 19772 }, - { 0x7150, 19893 }, - { 0x7151, 20181 }, - { 0x7152, 20274 }, - { 0x7153, 19853 }, - { 0x7154, 20169 }, - { 0x7155, 20137 }, - { 0x7156, 20350 }, - { 0x7157, 20270 }, - { 0x7158, 19811 }, - { 0x7159, 19777 }, - { 0x715A, 19841 }, - { 0x715B, 20124 }, - { 0x715C, 19756 }, - { 0x715D, 19979 }, - { 0x715E, 19764 }, - { 0x715F, 19760 }, - { 0x7160, 19861 }, - { 0x7161, 19816 }, - { 0x7162, 19955 }, - { 0x7163, 19963 }, - { 0x7164, 20089 }, - { 0x7165, 20189 }, - { 0x7166, 20222 }, - { 0x7167, 20282 }, - { 0x7168, 20314 }, - { 0x7169, 20016 }, - { 0x716A, 20011 }, - { 0x716B, 20025 }, - { 0x716C, 20021 }, - { 0x716D, 20045 }, - { 0x716E, 20165 }, - { 0x716F, 20128 }, - { 0x7170, 19919 }, - { 0x7171, 19995 }, - { 0x7172, 19837 }, - { 0x7173, 19987 }, - { 0x7174, 19795 }, - { 0x7175, 19803 }, - { 0x7176, 20185 }, - { 0x7177, 19927 }, - { 0x7178, 20330 }, - { 0x7179, 19901 }, - { 0x717A, 19947 }, - { 0x717B, 20193 }, - { 0x717C, 19782 }, - { 0x717D, 19807 }, - { 0x717E, 19821 }, - { 0x717F, 19869 }, - { 0x7180, 19791 }, - { 0x7181, 19885 }, - { 0x7182, 19799 }, - { 0x7183, 19881 }, - { 0x7184, 19971 }, - { 0x7185, 19787 }, - { 0x7186, 19889 }, - { 0x7187, 19967 }, - { 0x7188, 19833 }, - { 0x7189, 20041 }, - { 0x718A, 20411 }, - { 0x718B, 20403 }, - { 0x718C, 20419 }, - { 0x718D, 20407 }, - { 0x718E, 20491 }, - { 0x718F, 20519 }, - { 0x7190, 20483 }, - { 0x7191, 20423 }, - { 0x7192, 20499 }, - { 0x7193, 20579 }, - { 0x7194, 20595 }, - { 0x7195, 20515 }, - { 0x7196, 20547 }, - { 0x7197, 20599 }, - { 0x7198, 20399 }, - { 0x7199, 20511 }, - { 0x719A, 20587 }, - { 0x719B, 20451 }, - { 0x719C, 20583 }, - { 0x719D, 20535 }, - { 0x719E, 20471 }, - { 0x719F, 20563 }, - { 0x71A0, 20443 }, - { 0x71A1, 20603 }, - { 0x71A2, 20531 }, - { 0x71A3, 20507 }, - { 0x71A4, 20459 }, - { 0x71A5, 20555 }, - { 0x71A6, 20567 }, - { 0x71A7, 20559 }, - { 0x71A8, 20527 }, - { 0x71A9, 20487 }, - { 0x71AA, 20447 }, - { 0x71AB, 20439 }, - { 0x71AC, 20575 }, - { 0x71AD, 20467 }, - { 0x71AE, 20611 }, - { 0x71AF, 20551 }, - { 0x71B0, 20503 }, - { 0x71B1, 20571 }, - { 0x71B2, 20463 }, - { 0x71B3, 20455 }, - { 0x71B4, 20427 }, - { 0x71B5, 20479 }, - { 0x71B6, 20415 }, - { 0x71B7, 20543 }, - { 0x71B8, 20495 }, - { 0x71B9, 20431 }, - { 0x71BA, 20435 }, - { 0x71BB, 20539 }, - { 0x71BC, 20523 }, - { 0x71BD, 20475 }, - { 0x71BE, 20607 }, - { 0x71BF, 20591 }, - { 0x71C0, 7067 }, - { 0x71C1, 7094 }, - { 0x71C2, 7073 }, - { 0x71C3, 7091 }, - { 0x71C4, 7037 }, - { 0x71C5, 7040 }, - { 0x71C6, 7028 }, - { 0x71C7, 7100 }, - { 0x71C8, 7109 }, - { 0x71C9, 7085 }, - { 0x71CA, 7079 }, - { 0x71CB, 7076 }, - { 0x71CC, 7118 }, - { 0x71CD, 7052 }, - { 0x71CE, 7112 }, - { 0x71CF, 7097 }, - { 0x71D0, 7058 }, - { 0x71D1, 7055 }, - { 0x71D2, 7034 }, - { 0x71D3, 7064 }, - { 0x71D4, 7103 }, - { 0x71D5, 7115 }, - { 0x71D6, 7043 }, - { 0x71D7, 7070 }, - { 0x71D8, 7031 }, - { 0x71D9, 7046 }, - { 0x71DA, 7088 }, - { 0x71DB, 7049 }, - { 0x71DC, 7082 }, - { 0x71DD, 7061 }, - { 0x71DE, 7106 }, - { 0x71DF, 7013 }, - { 0x71E0, 6995 }, - { 0x71E1, 7001 }, - { 0x71E2, 7022 }, - { 0x71E3, 7007 }, - { 0x71E4, 7004 }, - { 0x71E5, 6998 }, - { 0x71E6, 7019 }, - { 0x71E7, 7016 }, - { 0x71E8, 7010 }, - { 0x71E9, 6993 }, - { 0x71EA, 7025 }, - { 0x71EB, 66481 }, - { 0x71EC, 66472 }, - { 0x71ED, 66475 }, - { 0x71EE, 66478 }, - { 0x71EF, 66403 }, - { 0x71F0, 66394 }, - { 0x71F1, 66397 }, - { 0x71F2, 66400 }, - { 0x71F3, 66517 }, - { 0x71F4, 66508 }, - { 0x71F5, 66511 }, - { 0x71F6, 66514 }, - { 0x71F7, 66424 }, - { 0x71F8, 66415 }, - { 0x71F9, 66418 }, - { 0x71FA, 66421 }, - { 0x71FB, 66445 }, - { 0x71FC, 66436 }, - { 0x71FD, 66439 }, - { 0x71FE, 66442 }, - { 0x71FF, 66505 }, - { 0x7200, 66496 }, - { 0x7201, 66499 }, - { 0x7202, 66502 }, - { 0x7203, 66541 }, - { 0x7204, 66532 }, - { 0x7205, 66535 }, - { 0x7206, 66538 }, - { 0x7207, 66601 }, - { 0x7208, 66592 }, - { 0x7209, 66595 }, - { 0x720A, 66598 }, - { 0x720B, 66623 }, - { 0x720C, 66607 }, - { 0x720D, 66631 }, - { 0x720E, 66627 }, - { 0x720F, 66580 }, - { 0x7210, 66589 }, - { 0x7211, 66583 }, - { 0x7212, 66586 }, - { 0x7213, 66620 }, - { 0x7214, 66611 }, - { 0x7215, 66614 }, - { 0x7216, 66617 }, - { 0x7217, 66466 }, - { 0x7218, 66457 }, - { 0x7219, 66460 }, - { 0x721A, 66463 }, - { 0x721B, 66448 }, - { 0x721C, 66556 }, - { 0x721D, 66430 }, - { 0x721E, 66559 }, - { 0x721F, 66490 }, - { 0x7220, 66526 }, - { 0x7221, 66520 }, - { 0x7222, 66484 }, - { 0x7223, 66565 }, - { 0x7224, 66568 }, - { 0x7225, 66406 }, - { 0x7226, 66454 }, - { 0x7227, 66469 }, - { 0x7228, 66433 }, - { 0x7229, 66451 }, - { 0x722A, 66553 }, - { 0x722B, 66493 }, - { 0x722C, 66412 }, - { 0x722D, 66487 }, - { 0x722E, 66562 }, - { 0x722F, 66571 }, - { 0x7230, 66409 }, - { 0x7231, 66577 }, - { 0x7232, 66550 }, - { 0x7233, 66604 }, - { 0x7234, 66574 }, - { 0x7235, 66523 }, - { 0x7236, 66427 }, - { 0x7237, 66547 }, - { 0x7238, 66544 }, - { 0x7239, 66529 }, - { 0x723A, 66382 }, - { 0x723B, 66364 }, - { 0x723C, 66370 }, - { 0x723D, 66391 }, - { 0x723E, 66376 }, - { 0x723F, 66373 }, - { 0x7240, 66367 }, - { 0x7241, 66388 }, - { 0x7242, 66385 }, - { 0x7243, 66379 }, - { 0x7244, 20735 }, - { 0x7245, 20679 }, - { 0x7246, 20691 }, - { 0x7247, 20671 }, - { 0x7248, 20719 }, - { 0x7249, 20727 }, - { 0x724A, 20711 }, - { 0x724B, 20731 }, - { 0x724C, 20743 }, - { 0x724D, 20675 }, - { 0x724E, 20739 }, - { 0x724F, 20703 }, - { 0x7250, 20707 }, - { 0x7251, 20715 }, - { 0x7252, 20663 }, - { 0x7253, 20659 }, - { 0x7254, 20723 }, - { 0x7255, 20695 }, - { 0x7256, 20655 }, - { 0x7257, 20699 }, - { 0x7258, 20747 }, - { 0x7259, 20687 }, - { 0x725A, 20751 }, - { 0x725B, 20635 }, - { 0x725C, 20647 }, - { 0x725D, 20683 }, - { 0x725E, 20651 }, - { 0x725F, 20667 }, - { 0x7260, 20639 }, - { 0x7261, 20643 }, - { 0x7262, 20765 }, - { 0x7263, 20755 }, - { 0x7264, 20760 }, - { 0x7265, 20770 }, - { 0x7266, 20775 }, - { 0x7267, 20631 }, - { 0x7268, 64367 }, - { 0x7269, 64371 }, - { 0x726A, 64303 }, - { 0x726B, 64307 }, - { 0x726C, 64351 }, - { 0x726D, 64355 }, - { 0x726E, 64319 }, - { 0x726F, 64323 }, - { 0x7270, 64295 }, - { 0x7271, 64299 }, - { 0x7272, 64343 }, - { 0x7273, 64347 }, - { 0x7274, 64383 }, - { 0x7275, 64387 }, - { 0x7276, 64359 }, - { 0x7277, 64363 }, - { 0x7278, 64391 }, - { 0x7279, 64395 }, - { 0x727A, 64311 }, - { 0x727B, 64315 }, - { 0x727C, 64375 }, - { 0x727D, 64379 }, - { 0x727E, 64287 }, - { 0x727F, 64291 }, - { 0x7280, 64327 }, - { 0x7281, 64331 }, - { 0x7282, 64335 }, - { 0x7283, 64339 }, - { 0x7284, 64458 }, - { 0x7285, 64502 }, - { 0x7286, 64442 }, - { 0x7287, 64438 }, - { 0x7288, 64486 }, - { 0x7289, 64454 }, - { 0x728A, 64482 }, - { 0x728B, 64490 }, - { 0x728C, 64466 }, - { 0x728D, 64474 }, - { 0x728E, 64446 }, - { 0x728F, 64470 }, - { 0x7290, 64494 }, - { 0x7291, 64478 }, - { 0x7292, 64506 }, - { 0x7293, 64498 }, - { 0x7294, 64450 }, - { 0x7295, 64430 }, - { 0x7296, 64462 }, - { 0x7297, 64434 }, - { 0x7298, 64049 }, - { 0x7299, 64034 }, - { 0x729A, 64044 }, - { 0x729B, 64054 }, - { 0x729C, 64059 }, - { 0x729D, 64039 }, - { 0x729E, 64064 }, - { 0x729F, 64162 }, - { 0x72A0, 64172 }, - { 0x72A1, 64121 }, - { 0x72A2, 64167 }, - { 0x72A3, 64147 }, - { 0x72A4, 64232 }, - { 0x72A5, 64217 }, - { 0x72A6, 64222 }, - { 0x72A7, 64227 }, - { 0x72A8, 64157 }, - { 0x72A9, 64187 }, - { 0x72AA, 64152 }, - { 0x72AB, 64073 }, - { 0x72AC, 64205 }, - { 0x72AD, 64104 }, - { 0x72AE, 64271 }, - { 0x72AF, 64247 }, - { 0x72B0, 64255 }, - { 0x72B1, 64283 }, - { 0x72B2, 64263 }, - { 0x72B3, 64259 }, - { 0x72B4, 64251 }, - { 0x72B5, 64279 }, - { 0x72B6, 64275 }, - { 0x72B7, 64267 }, - { 0x72B8, 64409 }, - { 0x72B9, 64418 }, - { 0x72BA, 64404 }, - { 0x72BB, 64422 }, - { 0x72BC, 64413 }, - { 0x72BD, 64399 }, - { 0x72BE, 64426 }, - { 0x72BF, 64142 }, - { 0x72C0, 64213 }, - { 0x72C1, 64126 }, - { 0x72C2, 64242 }, - { 0x72C3, 64178 }, - { 0x72C4, 64183 }, - { 0x72C5, 64197 }, - { 0x72C6, 64209 }, - { 0x72C7, 64201 }, - { 0x72C8, 64069 }, - { 0x72C9, 64237 }, - { 0x72CA, 64192 }, - { 0x72CB, 64138 }, - { 0x72CC, 64130 }, - { 0x72CD, 64134 }, - { 0x72CE, 64090 }, - { 0x72CF, 64084 }, - { 0x72D0, 64110 }, - { 0x72D1, 64115 }, - { 0x72D2, 64078 }, - { 0x72D3, 64098 }, - { 0x72D4, 64029 }, - { 0x72D5, 64019 }, - { 0x72D6, 63959 }, - { 0x72D7, 63989 }, - { 0x72D8, 64024 }, - { 0x72D9, 63949 }, - { 0x72DA, 63979 }, - { 0x72DB, 63994 }, - { 0x72DC, 64004 }, - { 0x72DD, 64009 }, - { 0x72DE, 63999 }, - { 0x72DF, 63984 }, - { 0x72E0, 63944 }, - { 0x72E1, 63964 }, - { 0x72E2, 63939 }, - { 0x72E3, 63974 }, - { 0x72E4, 64014 }, - { 0x72E5, 63954 }, - { 0x72E6, 63969 }, - { 0x72E7, 28151 }, - { 0x72E8, 28139 }, - { 0x72E9, 28147 }, - { 0x72EA, 28242 }, - { 0x72EB, 28270 }, - { 0x72EC, 28334 }, - { 0x72ED, 28258 }, - { 0x72EE, 28326 }, - { 0x72EF, 28338 }, - { 0x72F0, 28250 }, - { 0x72F1, 28314 }, - { 0x72F2, 28266 }, - { 0x72F3, 28330 }, - { 0x72F4, 28342 }, - { 0x72F5, 28358 }, - { 0x72F6, 28366 }, - { 0x72F7, 28318 }, - { 0x72F8, 28362 }, - { 0x72F9, 28298 }, - { 0x72FA, 28354 }, - { 0x72FB, 28254 }, - { 0x72FC, 28322 }, - { 0x72FD, 28282 }, - { 0x72FE, 28286 }, - { 0x72FF, 28346 }, - { 0x7300, 28246 }, - { 0x7301, 28310 }, - { 0x7302, 28278 }, - { 0x7303, 28306 }, - { 0x7304, 28290 }, - { 0x7305, 28274 }, - { 0x7306, 28302 }, - { 0x7307, 28294 }, - { 0x7308, 28350 }, - { 0x7309, 28262 }, - { 0x730A, 28218 }, - { 0x730B, 28203 }, - { 0x730C, 28213 }, - { 0x730D, 28233 }, - { 0x730E, 28198 }, - { 0x730F, 28223 }, - { 0x7310, 28208 }, - { 0x7311, 28228 }, - { 0x7312, 28143 }, - { 0x7313, 28131 }, - { 0x7314, 28135 }, - { 0x7315, 28155 }, - { 0x7316, 28238 }, - { 0x7317, 28182 }, - { 0x7318, 28158 }, - { 0x7319, 28166 }, - { 0x731A, 28194 }, - { 0x731B, 28174 }, - { 0x731C, 28170 }, - { 0x731D, 28162 }, - { 0x731E, 28190 }, - { 0x731F, 28186 }, - { 0x7320, 28178 }, - { 0x7321, 134175 }, - { 0x7322, 134199 }, - { 0x7323, 134211 }, - { 0x7324, 134215 }, - { 0x7325, 134259 }, - { 0x7326, 134227 }, - { 0x7327, 134239 }, - { 0x7328, 134187 }, - { 0x7329, 134203 }, - { 0x732A, 134151 }, - { 0x732B, 134147 }, - { 0x732C, 134159 }, - { 0x732D, 134167 }, - { 0x732E, 134127 }, - { 0x732F, 134163 }, - { 0x7330, 134143 }, - { 0x7331, 134131 }, - { 0x7332, 134135 }, - { 0x7333, 134207 }, - { 0x7334, 134255 }, - { 0x7335, 134171 }, - { 0x7336, 134191 }, - { 0x7337, 134235 }, - { 0x7338, 134247 }, - { 0x7339, 134219 }, - { 0x733A, 134139 }, - { 0x733B, 134251 }, - { 0x733C, 134179 }, - { 0x733D, 134195 }, - { 0x733E, 134183 }, - { 0x733F, 134231 }, - { 0x7340, 134223 }, - { 0x7341, 134006 }, - { 0x7342, 134030 }, - { 0x7343, 134042 }, - { 0x7344, 134046 }, - { 0x7345, 134090 }, - { 0x7346, 134058 }, - { 0x7347, 134070 }, - { 0x7348, 134018 }, - { 0x7349, 134034 }, - { 0x734A, 133982 }, - { 0x734B, 133978 }, - { 0x734C, 133990 }, - { 0x734D, 133998 }, - { 0x734E, 133958 }, - { 0x734F, 133994 }, - { 0x7350, 133974 }, - { 0x7351, 133962 }, - { 0x7352, 133966 }, - { 0x7353, 134038 }, - { 0x7354, 134086 }, - { 0x7355, 134002 }, - { 0x7356, 134022 }, - { 0x7357, 134066 }, - { 0x7358, 134078 }, - { 0x7359, 134050 }, - { 0x735A, 133970 }, - { 0x735B, 134082 }, - { 0x735C, 134010 }, - { 0x735D, 134026 }, - { 0x735E, 134014 }, - { 0x735F, 134062 }, - { 0x7360, 134054 }, - { 0x7361, 133941 }, - { 0x7362, 133913 }, - { 0x7363, 133924 }, - { 0x7364, 133950 }, - { 0x7365, 133935 }, - { 0x7366, 133932 }, - { 0x7367, 133921 }, - { 0x7368, 133947 }, - { 0x7369, 133944 }, - { 0x736A, 133938 }, - { 0x736B, 134094 }, - { 0x736C, 134097 }, - { 0x736D, 134100 }, - { 0x736E, 134118 }, - { 0x736F, 134112 }, - { 0x7370, 134103 }, - { 0x7371, 134106 }, - { 0x7372, 134121 }, - { 0x7373, 134109 }, - { 0x7374, 134115 }, - { 0x7375, 133916 }, - { 0x7376, 133927 }, - { 0x7377, 133953 }, - { 0x7378, 133911 }, - { 0x7379, 133908 }, - { 0x737A, 134124 }, - { 0x737B, 134263 }, - { 0x737C, 15658 }, - { 0x737D, 15631 }, - { 0x737E, 15686 }, - { 0x737F, 15753 }, - { 0x7380, 15652 }, - { 0x7381, 15738 }, - { 0x7382, 15867 }, - { 0x7383, 15637 }, - { 0x7384, 15673 }, - { 0x7385, 15780 }, - { 0x7386, 15667 }, - { 0x7387, 15634 }, - { 0x7388, 15702 }, - { 0x7389, 15690 }, - { 0x738A, 15777 }, - { 0x738B, 15720 }, - { 0x738C, 15655 }, - { 0x738D, 15744 }, - { 0x738E, 15694 }, - { 0x738F, 15871 }, - { 0x7390, 15747 }, - { 0x7391, 15813 }, - { 0x7392, 15649 }, - { 0x7393, 15735 }, - { 0x7394, 15732 }, - { 0x7395, 15807 }, - { 0x7396, 15819 }, - { 0x7397, 15792 }, - { 0x7398, 15840 }, - { 0x7399, 15837 }, - { 0x739A, 15646 }, - { 0x739B, 15640 }, - { 0x739C, 15682 }, - { 0x739D, 15661 }, - { 0x739E, 15756 }, - { 0x739F, 15741 }, - { 0x73A0, 15810 }, - { 0x73A1, 15875 }, - { 0x73A2, 15643 }, - { 0x73A3, 15679 }, - { 0x73A4, 15726 }, - { 0x73A5, 15804 }, - { 0x73A6, 15825 }, - { 0x73A7, 15801 }, - { 0x73A8, 15750 }, - { 0x73A9, 15816 }, - { 0x73AA, 15822 }, - { 0x73AB, 15795 }, - { 0x73AC, 15710 }, - { 0x73AD, 15706 }, - { 0x73AE, 15883 }, - { 0x73AF, 15762 }, - { 0x73B0, 15765 }, - { 0x73B1, 15783 }, - { 0x73B2, 15828 }, - { 0x73B3, 15771 }, - { 0x73B4, 15723 }, - { 0x73B5, 15698 }, - { 0x73B6, 15664 }, - { 0x73B7, 15714 }, - { 0x73B8, 15786 }, - { 0x73B9, 15789 }, - { 0x73BA, 15831 }, - { 0x73BB, 15879 }, - { 0x73BC, 15834 }, - { 0x73BD, 15843 }, - { 0x73BE, 15676 }, - { 0x73BF, 15628 }, - { 0x73C0, 15729 }, - { 0x73C1, 15717 }, - { 0x73C2, 15768 }, - { 0x73C3, 15798 }, - { 0x73C4, 15670 }, - { 0x73C5, 15774 }, - { 0x73C6, 15759 }, - { 0x73C7, 15397 }, - { 0x73C8, 15911 }, - { 0x73C9, 15402 }, - { 0x73CA, 15389 }, - { 0x73CB, 15393 }, - { 0x73CC, 15418 }, - { 0x73CD, 15450 }, - { 0x73CE, 15554 }, - { 0x73CF, 15462 }, - { 0x73D0, 15558 }, - { 0x73D1, 15434 }, - { 0x73D2, 15518 }, - { 0x73D3, 15542 }, - { 0x73D4, 15442 }, - { 0x73D5, 15422 }, - { 0x73D6, 15478 }, - { 0x73D7, 15562 }, - { 0x73D8, 15582 }, - { 0x73D9, 15426 }, - { 0x73DA, 15486 }, - { 0x73DB, 15570 }, - { 0x73DC, 15606 }, - { 0x73DD, 15502 }, - { 0x73DE, 15490 }, - { 0x73DF, 15498 }, - { 0x73E0, 15506 }, - { 0x73E1, 15574 }, - { 0x73E2, 15438 }, - { 0x73E3, 15526 }, - { 0x73E4, 15586 }, - { 0x73E5, 15614 }, - { 0x73E6, 15534 }, - { 0x73E7, 15590 }, - { 0x73E8, 15594 }, - { 0x73E9, 15446 }, - { 0x73EA, 15546 }, - { 0x73EB, 15454 }, - { 0x73EC, 15550 }, - { 0x73ED, 15566 }, - { 0x73EE, 15623 }, - { 0x73EF, 15482 }, - { 0x73F0, 15618 }, - { 0x73F1, 15458 }, - { 0x73F2, 15474 }, - { 0x73F3, 15466 }, - { 0x73F4, 15522 }, - { 0x73F5, 15430 }, - { 0x73F6, 15510 }, - { 0x73F7, 15598 }, - { 0x73F8, 15602 }, - { 0x73F9, 15514 }, - { 0x73FA, 15578 }, - { 0x73FB, 15538 }, - { 0x73FC, 15494 }, - { 0x73FD, 15470 }, - { 0x73FE, 15610 }, - { 0x73FF, 15530 }, - { 0x7400, 15415 }, - { 0x7401, 15405 }, - { 0x7402, 15409 }, - { 0x7403, 15412 }, - { 0x7404, 15846 }, - { 0x7405, 15849 }, - { 0x7406, 15852 }, - { 0x7407, 15855 }, - { 0x7408, 15858 }, - { 0x7409, 15861 }, - { 0x740A, 15864 }, - { 0x740B, 15887 }, - { 0x740C, 15891 }, - { 0x740D, 15895 }, - { 0x740E, 15899 }, - { 0x740F, 15903 }, - { 0x7410, 15907 }, - { 0x7411, 66635 }, - { 0x7412, 38749 }, - { 0x7413, 9216 }, - { 0x7414, 9220 }, - { 0x7415, 58445 }, - { 0x7416, 133106 }, - { 0x7417, 133111 }, - { 0x7418, 66638 }, - { 0x7419, 66640 }, - { 0x741A, 66642 }, - { 0x741B, 66644 }, - { 0x741C, 66646 }, - { 0x741D, 66648 }, - { 0x741E, 66650 }, - { 0x741F, 66652 }, - { 0x7420, 66654 }, - { 0x7421, 66656 }, - { 0x7422, 66658 }, - { 0x7423, 66660 }, - { 0x7424, 66662 }, - { 0x7425, 66664 }, - { 0x7426, 66666 }, - { 0x7427, 66668 }, - { 0x7428, 66670 }, - { 0x7429, 66672 }, - { 0x742A, 66674 }, - { 0x742B, 66676 }, - { 0x742C, 66678 }, - { 0x742D, 66680 }, - { 0x742E, 66682 }, - { 0x742F, 66684 }, - { 0x7430, 66686 }, - { 0x7431, 66688 }, - { 0x7432, 66690 }, - { 0x7433, 66692 }, - { 0x7434, 66694 }, - { 0x7435, 66696 }, - { 0x7436, 66698 }, - { 0x7437, 66700 }, - { 0x7438, 66702 }, - { 0x7439, 66704 }, - { 0x743A, 66706 }, - { 0x743B, 66708 }, - { 0x743C, 66710 }, - { 0x743D, 66712 }, - { 0x743E, 66714 }, - { 0x743F, 66716 }, - { 0x7440, 66718 }, - { 0x7441, 66720 }, - { 0x7442, 66722 }, - { 0x7443, 66724 }, - { 0x7444, 66726 }, - { 0x7445, 66728 }, - { 0x7446, 66730 }, - { 0x7447, 66732 }, - { 0x7448, 66734 }, - { 0x7449, 66736 }, - { 0x744A, 66738 }, - { 0x744B, 66740 }, - { 0x744C, 66742 }, - { 0x744D, 66744 }, - { 0x744E, 66746 }, - { 0x744F, 66748 }, - { 0x7450, 66750 }, - { 0x7451, 66752 }, - { 0x7452, 66754 }, - { 0x7453, 66756 }, - { 0x7454, 66758 }, - { 0x7455, 66760 }, - { 0x7456, 66762 }, - { 0x7457, 66764 }, - { 0x7458, 66766 }, - { 0x7459, 66768 }, - { 0x745A, 66770 }, - { 0x745B, 66772 }, - { 0x745C, 66774 }, - { 0x745D, 66776 }, - { 0x745E, 66778 }, - { 0x745F, 66780 }, - { 0x7460, 66782 }, - { 0x7461, 66784 }, - { 0x7462, 66786 }, - { 0x7463, 66788 }, - { 0x7464, 66790 }, - { 0x7465, 66792 }, - { 0x7466, 66794 }, - { 0x7467, 66796 }, - { 0x7468, 66798 }, - { 0x7469, 66800 }, - { 0x746A, 66802 }, - { 0x746B, 66804 }, - { 0x746C, 66806 }, - { 0x746D, 66808 }, - { 0x746E, 66810 }, - { 0x746F, 66812 }, - { 0x7470, 66814 }, - { 0x7471, 66816 }, - { 0x7472, 66818 }, - { 0x7473, 66820 }, - { 0x7474, 66822 }, - { 0x7475, 66824 }, - { 0x7476, 66826 }, - { 0x7477, 66828 }, - { 0x7478, 66830 }, - { 0x7479, 66832 }, - { 0x747A, 66834 }, - { 0x747B, 66836 }, - { 0x747C, 66838 }, - { 0x747D, 66840 }, - { 0x747E, 66842 }, - { 0x747F, 66844 }, - { 0x7480, 66846 }, - { 0x7481, 66848 }, - { 0x7482, 66850 }, - { 0x7483, 66852 }, - { 0x7484, 66854 }, - { 0x7485, 66856 }, - { 0x7486, 66858 }, - { 0x7487, 66860 }, - { 0x7488, 66862 }, - { 0x7489, 66864 }, - { 0x748A, 66866 }, - { 0x748B, 66868 }, - { 0x748C, 66870 }, - { 0x748D, 66872 }, - { 0x748E, 66874 }, - { 0x748F, 66876 }, - { 0x7490, 66878 }, - { 0x7491, 66880 }, - { 0x7492, 66882 }, - { 0x7493, 66884 }, - { 0x7494, 66886 }, - { 0x7495, 66888 }, - { 0x7496, 66890 }, - { 0x7497, 66892 }, - { 0x7498, 66894 }, - { 0x7499, 66896 }, - { 0x749A, 66898 }, - { 0x749B, 66900 }, - { 0x749C, 66902 }, - { 0x749D, 66904 }, - { 0x749E, 66906 }, - { 0x749F, 66908 }, - { 0x74A0, 66910 }, - { 0x74A1, 66912 }, - { 0x74A2, 66914 }, - { 0x74A3, 66916 }, - { 0x74A4, 66918 }, - { 0x74A5, 66920 }, - { 0x74A6, 66922 }, - { 0x74A7, 66924 }, - { 0x74A8, 66926 }, - { 0x74A9, 66928 }, - { 0x74AA, 66930 }, - { 0x74AB, 66932 }, - { 0x74AC, 66934 }, - { 0x74AD, 66936 }, - { 0x74AE, 66938 }, - { 0x74AF, 66940 }, - { 0x74B0, 66942 }, - { 0x74B1, 66944 }, - { 0x74B2, 66946 }, - { 0x74B3, 66948 }, - { 0x74B4, 66950 }, - { 0x74B5, 66952 }, - { 0x74B6, 66954 }, - { 0x74B7, 66956 }, - { 0x74B8, 66958 }, - { 0x74B9, 66960 }, - { 0x74BA, 66962 }, - { 0x74BB, 66964 }, - { 0x74BC, 66966 }, - { 0x74BD, 66968 }, - { 0x74BE, 66970 }, - { 0x74BF, 66972 }, - { 0x74C0, 66974 }, - { 0x74C1, 66976 }, - { 0x74C2, 66978 }, - { 0x74C3, 66980 }, - { 0x74C4, 66982 }, - { 0x74C5, 66984 }, - { 0x74C6, 66986 }, - { 0x74C7, 66988 }, - { 0x74C8, 66990 }, - { 0x74C9, 66992 }, - { 0x74CA, 66994 }, - { 0x74CB, 66996 }, - { 0x74CC, 66998 }, - { 0x74CD, 67000 }, - { 0x74CE, 67002 }, - { 0x74CF, 67004 }, - { 0x74D0, 67006 }, - { 0x74D1, 67008 }, - { 0x74D2, 67010 }, - { 0x74D3, 67012 }, - { 0x74D4, 67014 }, - { 0x74D5, 67016 }, - { 0x74D6, 67018 }, - { 0x74D7, 67020 }, - { 0x74D8, 67022 }, - { 0x74D9, 67024 }, - { 0x74DA, 67026 }, - { 0x74DB, 67028 }, - { 0x74DC, 67030 }, - { 0x74DD, 67032 }, - { 0x74DE, 67034 }, - { 0x74DF, 67036 }, - { 0x74E0, 67038 }, - { 0x74E1, 67040 }, - { 0x74E2, 67042 }, - { 0x74E3, 67044 }, - { 0x74E4, 67046 }, - { 0x74E5, 67048 }, - { 0x74E6, 67050 }, - { 0x74E7, 67052 }, - { 0x74E8, 67054 }, - { 0x74E9, 67056 }, - { 0x74EA, 67058 }, - { 0x74EB, 67060 }, - { 0x74EC, 67062 }, - { 0x74ED, 67064 }, - { 0x74EE, 67066 }, - { 0x74EF, 67068 }, - { 0x74F0, 67070 }, - { 0x74F1, 67072 }, - { 0x74F2, 67074 }, - { 0x74F3, 67076 }, - { 0x74F4, 67078 }, - { 0x74F5, 67080 }, - { 0x74F6, 67082 }, - { 0x74F7, 67084 }, - { 0x74F8, 67086 }, - { 0x74F9, 67088 }, - { 0x74FA, 67090 }, - { 0x74FB, 67092 }, - { 0x74FC, 67094 }, - { 0x74FD, 67096 }, - { 0x74FE, 67098 }, - { 0x74FF, 67100 }, - { 0x7500, 67102 }, - { 0x7501, 67104 }, - { 0x7502, 67106 }, - { 0x7503, 67108 }, - { 0x7504, 67110 }, - { 0x7505, 67112 }, - { 0x7506, 67114 }, - { 0x7507, 67116 }, - { 0x7508, 67118 }, - { 0x7509, 67120 }, - { 0x750A, 67122 }, - { 0x750B, 67124 }, - { 0x750C, 67126 }, - { 0x750D, 67128 }, - { 0x750E, 67130 }, - { 0x750F, 67132 }, - { 0x7510, 67134 }, - { 0x7511, 67136 }, - { 0x7512, 67138 }, - { 0x7513, 67140 }, - { 0x7514, 67142 }, - { 0x7515, 67144 }, - { 0x7516, 67146 }, - { 0x7517, 67148 }, - { 0x7518, 67150 }, - { 0x7519, 67152 }, - { 0x751A, 67154 }, - { 0x751B, 67156 }, - { 0x751C, 67158 }, - { 0x751D, 67160 }, - { 0x751E, 67162 }, - { 0x751F, 67164 }, - { 0x7520, 67166 }, - { 0x7521, 67168 }, - { 0x7522, 67170 }, - { 0x7523, 67172 }, - { 0x7524, 67174 }, - { 0x7525, 67176 }, - { 0x7526, 67178 }, - { 0x7527, 67180 }, - { 0x7528, 67182 }, - { 0x7529, 67184 }, - { 0x752A, 67186 }, - { 0x752B, 67188 }, - { 0x752C, 67190 }, - { 0x752D, 67192 }, - { 0x752E, 67194 }, - { 0x752F, 67196 }, - { 0x7530, 67198 }, - { 0x7531, 67200 }, - { 0x7532, 67202 }, - { 0x7533, 67204 }, - { 0x7534, 67206 }, - { 0x7535, 67208 }, - { 0x7536, 67210 }, - { 0x7537, 67212 }, - { 0x7538, 67214 }, - { 0x7539, 67216 }, - { 0x753A, 67218 }, - { 0x753B, 67220 }, - { 0x753C, 67222 }, - { 0x753D, 67224 }, - { 0x753E, 67226 }, - { 0x753F, 67228 }, - { 0x7540, 67230 }, - { 0x7541, 67232 }, - { 0x7542, 67234 }, - { 0x7543, 67236 }, - { 0x7544, 67238 }, - { 0x7545, 67240 }, - { 0x7546, 67242 }, - { 0x7547, 67244 }, - { 0x7548, 67246 }, - { 0x7549, 67248 }, - { 0x754A, 67250 }, - { 0x754B, 67252 }, - { 0x754C, 67254 }, - { 0x754D, 67256 }, - { 0x754E, 67258 }, - { 0x754F, 67260 }, - { 0x7550, 67262 }, - { 0x7551, 67264 }, - { 0x7552, 67266 }, - { 0x7553, 67268 }, - { 0x7554, 67270 }, - { 0x7555, 67272 }, - { 0x7556, 67274 }, - { 0x7557, 67276 }, - { 0x7558, 67278 }, - { 0x7559, 67280 }, - { 0x755A, 67282 }, - { 0x755B, 67284 }, - { 0x755C, 67286 }, - { 0x755D, 67288 }, - { 0x755E, 67290 }, - { 0x755F, 67292 }, - { 0x7560, 67294 }, - { 0x7561, 67296 }, - { 0x7562, 67298 }, - { 0x7563, 67300 }, - { 0x7564, 67302 }, - { 0x7565, 67304 }, - { 0x7566, 67306 }, - { 0x7567, 67308 }, - { 0x7568, 67310 }, - { 0x7569, 67312 }, - { 0x756A, 67314 }, - { 0x756B, 67316 }, - { 0x756C, 67318 }, - { 0x756D, 67320 }, - { 0x756E, 67322 }, - { 0x756F, 67324 }, - { 0x7570, 67326 }, - { 0x7571, 67328 }, - { 0x7572, 67330 }, - { 0x7573, 67332 }, - { 0x7574, 67334 }, - { 0x7575, 67336 }, - { 0x7576, 67338 }, - { 0x7577, 67340 }, - { 0x7578, 67342 }, - { 0x7579, 67344 }, - { 0x757A, 67346 }, - { 0x757B, 67348 }, - { 0x757C, 67350 }, - { 0x757D, 67352 }, - { 0x757E, 67354 }, - { 0x757F, 67356 }, - { 0x7580, 67358 }, - { 0x7581, 67360 }, - { 0x7582, 67362 }, - { 0x7583, 67364 }, - { 0x7584, 67366 }, - { 0x7585, 67368 }, - { 0x7586, 67370 }, - { 0x7587, 67372 }, - { 0x7588, 67374 }, - { 0x7589, 67376 }, - { 0x758A, 67378 }, - { 0x758B, 67380 }, - { 0x758C, 67382 }, - { 0x758D, 67384 }, - { 0x758E, 67386 }, - { 0x758F, 67388 }, - { 0x7590, 67390 }, - { 0x7591, 67392 }, - { 0x7592, 67394 }, - { 0x7593, 67396 }, - { 0x7594, 67398 }, - { 0x7595, 67400 }, - { 0x7596, 67402 }, - { 0x7597, 67404 }, - { 0x7598, 67406 }, - { 0x7599, 67408 }, - { 0x759A, 67410 }, - { 0x759B, 67412 }, - { 0x759C, 67414 }, - { 0x759D, 67416 }, - { 0x759E, 67418 }, - { 0x759F, 67420 }, - { 0x75A0, 67422 }, - { 0x75A1, 67424 }, - { 0x75A2, 67426 }, - { 0x75A3, 67428 }, - { 0x75A4, 67430 }, - { 0x75A5, 67432 }, - { 0x75A6, 67434 }, - { 0x75A7, 67436 }, - { 0x75A8, 67438 }, - { 0x75A9, 67440 }, - { 0x75AA, 67442 }, - { 0x75AB, 67444 }, - { 0x75AC, 67446 }, - { 0x75AD, 67448 }, - { 0x75AE, 67450 }, - { 0x75AF, 67452 }, - { 0x75B0, 67454 }, - { 0x75B1, 67456 }, - { 0x75B2, 67458 }, - { 0x75B3, 67460 }, - { 0x75B4, 67462 }, - { 0x75B5, 67464 }, - { 0x75B6, 67466 }, - { 0x75B7, 67468 }, - { 0x75B8, 67470 }, - { 0x75B9, 67472 }, - { 0x75BA, 67474 }, - { 0x75BB, 67476 }, - { 0x75BC, 67478 }, - { 0x75BD, 67480 }, - { 0x75BE, 67482 }, - { 0x75BF, 67484 }, - { 0x75C0, 67486 }, - { 0x75C1, 67488 }, - { 0x75C2, 67490 }, - { 0x75C3, 67492 }, - { 0x75C4, 67494 }, - { 0x75C5, 67496 }, - { 0x75C6, 67498 }, - { 0x75C7, 67500 }, - { 0x75C8, 67502 }, - { 0x75C9, 67504 }, - { 0x75CA, 67506 }, - { 0x75CB, 67508 }, - { 0x75CC, 67510 }, - { 0x75CD, 67512 }, - { 0x75CE, 67514 }, - { 0x75CF, 67516 }, - { 0x75D0, 67518 }, - { 0x75D1, 67520 }, - { 0x75D2, 67522 }, - { 0x75D3, 67524 }, - { 0x75D4, 67526 }, - { 0x75D5, 67528 }, - { 0x75D6, 67530 }, - { 0x75D7, 67532 }, - { 0x75D8, 67534 }, - { 0x75D9, 67536 }, - { 0x75DA, 67538 }, - { 0x75DB, 67540 }, - { 0x75DC, 67542 }, - { 0x75DD, 67544 }, - { 0x75DE, 67546 }, - { 0x75DF, 67548 }, - { 0x75E0, 67550 }, - { 0x75E1, 67552 }, - { 0x75E2, 67554 }, - { 0x75E3, 67556 }, - { 0x75E4, 67558 }, - { 0x75E5, 67560 }, - { 0x75E6, 67562 }, - { 0x75E7, 67564 }, - { 0x75E8, 67566 }, - { 0x75E9, 67568 }, - { 0x75EA, 67570 }, - { 0x75EB, 67572 }, - { 0x75EC, 67574 }, - { 0x75ED, 67576 }, - { 0x75EE, 67578 }, - { 0x75EF, 67580 }, - { 0x75F0, 67582 }, - { 0x75F1, 67584 }, - { 0x75F2, 67586 }, - { 0x75F3, 67588 }, - { 0x75F4, 67590 }, - { 0x75F5, 67592 }, - { 0x75F6, 67594 }, - { 0x75F7, 67596 }, - { 0x75F8, 67598 }, - { 0x75F9, 67600 }, - { 0x75FA, 67602 }, - { 0x75FB, 67604 }, - { 0x75FC, 67606 }, - { 0x75FD, 67608 }, - { 0x75FE, 67610 }, - { 0x75FF, 67612 }, - { 0x7600, 67614 }, - { 0x7601, 67616 }, - { 0x7602, 67618 }, - { 0x7603, 67620 }, - { 0x7604, 67622 }, - { 0x7605, 67624 }, - { 0x7606, 67626 }, - { 0x7607, 67628 }, - { 0x7608, 67630 }, - { 0x7609, 67632 }, - { 0x760A, 67634 }, - { 0x760B, 67636 }, - { 0x760C, 67638 }, - { 0x760D, 67640 }, - { 0x760E, 67642 }, - { 0x760F, 67644 }, - { 0x7610, 67646 }, - { 0x7611, 67648 }, - { 0x7612, 67650 }, - { 0x7613, 67652 }, - { 0x7614, 67654 }, - { 0x7615, 67656 }, - { 0x7616, 67658 }, - { 0x7617, 67660 }, - { 0x7618, 67662 }, - { 0x7619, 67664 }, - { 0x761A, 67666 }, - { 0x761B, 67668 }, - { 0x761C, 67670 }, - { 0x761D, 67672 }, - { 0x761E, 67674 }, - { 0x761F, 67676 }, - { 0x7620, 67678 }, - { 0x7621, 67680 }, - { 0x7622, 67682 }, - { 0x7623, 67684 }, - { 0x7624, 67686 }, - { 0x7625, 67688 }, - { 0x7626, 67690 }, - { 0x7627, 67692 }, - { 0x7628, 67694 }, - { 0x7629, 67696 }, - { 0x762A, 67698 }, - { 0x762B, 67700 }, - { 0x762C, 67702 }, - { 0x762D, 67704 }, - { 0x762E, 67706 }, - { 0x762F, 67708 }, - { 0x7630, 67710 }, - { 0x7631, 67712 }, - { 0x7632, 67714 }, - { 0x7633, 67716 }, - { 0x7634, 67718 }, - { 0x7635, 67720 }, - { 0x7636, 67722 }, - { 0x7637, 67724 }, - { 0x7638, 67726 }, - { 0x7639, 67728 }, - { 0x763A, 67730 }, - { 0x763B, 67732 }, - { 0x763C, 67734 }, - { 0x763D, 67736 }, - { 0x763E, 67738 }, - { 0x763F, 67740 }, - { 0x7640, 67742 }, - { 0x7641, 67744 }, - { 0x7642, 67746 }, - { 0x7643, 67748 }, - { 0x7644, 67750 }, - { 0x7645, 67752 }, - { 0x7646, 67754 }, - { 0x7647, 67756 }, - { 0x7648, 67758 }, - { 0x7649, 67760 }, - { 0x764A, 67762 }, - { 0x764B, 67764 }, - { 0x764C, 67766 }, - { 0x764D, 67768 }, - { 0x764E, 67770 }, - { 0x764F, 67772 }, - { 0x7650, 67774 }, - { 0x7651, 67776 }, - { 0x7652, 67778 }, - { 0x7653, 67780 }, - { 0x7654, 67782 }, - { 0x7655, 67784 }, - { 0x7656, 67786 }, - { 0x7657, 67788 }, - { 0x7658, 67790 }, - { 0x7659, 67792 }, - { 0x765A, 67794 }, - { 0x765B, 67796 }, - { 0x765C, 67798 }, - { 0x765D, 67800 }, - { 0x765E, 67802 }, - { 0x765F, 67804 }, - { 0x7660, 67806 }, - { 0x7661, 67808 }, - { 0x7662, 67810 }, - { 0x7663, 67812 }, - { 0x7664, 67814 }, - { 0x7665, 67816 }, - { 0x7666, 67818 }, - { 0x7667, 67820 }, - { 0x7668, 67822 }, - { 0x7669, 67824 }, - { 0x766A, 67826 }, - { 0x766B, 67828 }, - { 0x766C, 67830 }, - { 0x766D, 67832 }, - { 0x766E, 67834 }, - { 0x766F, 67836 }, - { 0x7670, 67838 }, - { 0x7671, 67840 }, - { 0x7672, 67842 }, - { 0x7673, 67844 }, - { 0x7674, 67846 }, - { 0x7675, 67848 }, - { 0x7676, 67850 }, - { 0x7677, 67852 }, - { 0x7678, 67854 }, - { 0x7679, 67856 }, - { 0x767A, 67858 }, - { 0x767B, 67860 }, - { 0x767C, 67862 }, - { 0x767D, 67864 }, - { 0x767E, 67866 }, - { 0x767F, 67868 }, - { 0x7680, 67870 }, - { 0x7681, 67872 }, - { 0x7682, 67874 }, - { 0x7683, 67876 }, - { 0x7684, 67878 }, - { 0x7685, 67880 }, - { 0x7686, 67882 }, - { 0x7687, 67884 }, - { 0x7688, 67886 }, - { 0x7689, 67888 }, - { 0x768A, 67890 }, - { 0x768B, 67892 }, - { 0x768C, 67894 }, - { 0x768D, 67896 }, - { 0x768E, 67898 }, - { 0x768F, 67900 }, - { 0x7690, 67902 }, - { 0x7691, 67904 }, - { 0x7692, 67906 }, - { 0x7693, 67908 }, - { 0x7694, 67910 }, - { 0x7695, 67912 }, - { 0x7696, 67914 }, - { 0x7697, 67916 }, - { 0x7698, 67918 }, - { 0x7699, 67920 }, - { 0x769A, 67922 }, - { 0x769B, 67924 }, - { 0x769C, 67926 }, - { 0x769D, 67928 }, - { 0x769E, 67930 }, - { 0x769F, 67932 }, - { 0x76A0, 67934 }, - { 0x76A1, 67936 }, - { 0x76A2, 67938 }, - { 0x76A3, 67940 }, - { 0x76A4, 67942 }, - { 0x76A5, 67944 }, - { 0x76A6, 67946 }, - { 0x76A7, 67948 }, - { 0x76A8, 67950 }, - { 0x76A9, 67952 }, - { 0x76AA, 67954 }, - { 0x76AB, 67956 }, - { 0x76AC, 67958 }, - { 0x76AD, 67960 }, - { 0x76AE, 67962 }, - { 0x76AF, 67964 }, - { 0x76B0, 67966 }, - { 0x76B1, 67968 }, - { 0x76B2, 67970 }, - { 0x76B3, 67972 }, - { 0x76B4, 67974 }, - { 0x76B5, 67976 }, - { 0x76B6, 67978 }, - { 0x76B7, 67980 }, - { 0x76B8, 67982 }, - { 0x76B9, 67984 }, - { 0x76BA, 67986 }, - { 0x76BB, 67988 }, - { 0x76BC, 67990 }, - { 0x76BD, 67992 }, - { 0x76BE, 67994 }, - { 0x76BF, 67996 }, - { 0x76C0, 67998 }, - { 0x76C1, 68000 }, - { 0x76C2, 68002 }, - { 0x76C3, 68004 }, - { 0x76C4, 68006 }, - { 0x76C5, 68008 }, - { 0x76C6, 68010 }, - { 0x76C7, 68012 }, - { 0x76C8, 68014 }, - { 0x76C9, 68016 }, - { 0x76CA, 68018 }, - { 0x76CB, 68020 }, - { 0x76CC, 68022 }, - { 0x76CD, 68024 }, - { 0x76CE, 68026 }, - { 0x76CF, 68028 }, - { 0x76D0, 68030 }, - { 0x76D1, 68032 }, - { 0x76D2, 68034 }, - { 0x76D3, 68036 }, - { 0x76D4, 68038 }, - { 0x76D5, 68040 }, - { 0x76D6, 68042 }, - { 0x76D7, 68044 }, - { 0x76D8, 68046 }, - { 0x76D9, 68048 }, - { 0x76DA, 68050 }, - { 0x76DB, 68052 }, - { 0x76DC, 68054 }, - { 0x76DD, 68056 }, - { 0x76DE, 68058 }, - { 0x76DF, 68060 }, - { 0x76E0, 68062 }, - { 0x76E1, 68064 }, - { 0x76E2, 68066 }, - { 0x76E3, 68068 }, - { 0x76E4, 68070 }, - { 0x76E5, 68072 }, - { 0x76E6, 68074 }, - { 0x76E7, 68076 }, - { 0x76E8, 68078 }, - { 0x76E9, 68080 }, - { 0x76EA, 68082 }, - { 0x76EB, 68084 }, - { 0x76EC, 68086 }, - { 0x76ED, 68088 }, - { 0x76EE, 68090 }, - { 0x76EF, 68092 }, - { 0x76F0, 68094 }, - { 0x76F1, 68096 }, - { 0x76F2, 68098 }, - { 0x76F3, 68100 }, - { 0x76F4, 68102 }, - { 0x76F5, 68104 }, - { 0x76F6, 68106 }, - { 0x76F7, 68108 }, - { 0x76F8, 68110 }, - { 0x76F9, 68112 }, - { 0x76FA, 68114 }, - { 0x76FB, 68116 }, - { 0x76FC, 68118 }, - { 0x76FD, 68120 }, - { 0x76FE, 68122 }, - { 0x76FF, 68124 }, - { 0x7700, 68126 }, - { 0x7701, 68128 }, - { 0x7702, 68130 }, - { 0x7703, 68132 }, - { 0x7704, 68134 }, - { 0x7705, 68136 }, - { 0x7706, 68138 }, - { 0x7707, 68140 }, - { 0x7708, 68142 }, - { 0x7709, 68144 }, - { 0x770A, 68146 }, - { 0x770B, 68148 }, - { 0x770C, 68150 }, - { 0x770D, 68152 }, - { 0x770E, 68154 }, - { 0x770F, 68156 }, - { 0x7710, 68158 }, - { 0x7711, 68160 }, - { 0x7712, 68162 }, - { 0x7713, 68164 }, - { 0x7714, 68166 }, - { 0x7715, 68168 }, - { 0x7716, 68170 }, - { 0x7717, 68172 }, - { 0x7718, 58449 }, - { 0x7719, 58453 }, - { 0x771A, 58457 }, - { 0x771B, 58461 }, - { 0x771C, 58465 }, - { 0x771D, 58469 }, - { 0x771E, 58473 }, - { 0x771F, 58477 }, - { 0x7720, 58481 }, - { 0x7721, 58485 }, - { 0x7722, 58489 }, - { 0x7723, 58493 }, - { 0x7724, 58497 }, - { 0x7725, 58501 }, - { 0x7726, 58505 }, - { 0x7727, 58509 }, - { 0x7728, 58513 }, - { 0x7729, 58517 }, - { 0x772A, 58521 }, - { 0x772B, 58525 }, - { 0x772C, 58529 }, - { 0x772D, 58533 }, - { 0x772E, 58537 }, - { 0x772F, 58541 }, - { 0x7730, 58545 }, - { 0x7731, 58549 }, - { 0x7732, 58553 }, - { 0x7733, 58557 }, - { 0x7734, 58561 }, - { 0x7735, 58565 }, - { 0x7736, 58569 }, - { 0x7737, 58573 }, - { 0x7738, 58577 }, - { 0x7739, 58581 }, - { 0x773A, 58585 }, - { 0x773B, 58589 }, - { 0x773C, 58593 }, - { 0x773D, 58597 }, - { 0x773E, 58601 }, - { 0x773F, 58605 }, - { 0x7740, 58609 }, - { 0x7741, 58613 }, - { 0x7742, 58617 }, - { 0x7743, 58621 }, - { 0x7744, 58625 }, - { 0x7745, 58629 }, - { 0x7746, 58633 }, - { 0x7747, 58637 }, - { 0x7748, 58641 }, - { 0x7749, 58645 }, - { 0x774A, 58649 }, - { 0x774B, 58653 }, - { 0x774C, 58657 }, - { 0x774D, 58661 }, - { 0x774E, 58665 }, - { 0x774F, 58669 }, - { 0x7750, 58673 }, - { 0x7751, 58677 }, - { 0x7752, 58681 }, - { 0x7753, 58685 }, - { 0x7754, 58689 }, - { 0x7755, 58693 }, - { 0x7756, 58697 }, - { 0x7757, 58701 }, - { 0x7758, 58705 }, - { 0x7759, 58709 }, - { 0x775A, 58713 }, - { 0x775B, 58717 }, - { 0x775C, 58721 }, - { 0x775D, 58725 }, - { 0x775E, 58729 }, - { 0x775F, 58733 }, - { 0x7760, 58737 }, - { 0x7761, 58741 }, - { 0x7762, 58745 }, - { 0x7763, 58749 }, - { 0x7764, 58753 }, - { 0x7765, 58757 }, - { 0x7766, 58761 }, - { 0x7767, 58765 }, - { 0x7768, 58769 }, - { 0x7769, 58773 }, - { 0x776A, 58777 }, - { 0x776B, 58781 }, - { 0x776C, 58785 }, - { 0x776D, 58789 }, - { 0x776E, 58793 }, - { 0x776F, 58797 }, - { 0x7770, 58801 }, - { 0x7771, 58805 }, - { 0x7772, 58809 }, - { 0x7773, 58813 }, - { 0x7774, 58817 }, - { 0x7775, 58821 }, - { 0x7776, 58825 }, - { 0x7777, 58829 }, - { 0x7778, 58833 }, - { 0x7779, 58837 }, - { 0x777A, 58841 }, - { 0x777B, 58845 }, - { 0x777C, 58849 }, - { 0x777D, 58853 }, - { 0x777E, 58857 }, - { 0x777F, 58861 }, - { 0x7780, 58865 }, - { 0x7781, 58869 }, - { 0x7782, 58873 }, - { 0x7783, 58877 }, - { 0x7784, 58881 }, - { 0x7785, 58885 }, - { 0x7786, 58889 }, - { 0x7787, 58893 }, - { 0x7788, 58897 }, - { 0x7789, 58901 }, - { 0x778A, 58905 }, - { 0x778B, 58909 }, - { 0x778C, 58913 }, - { 0x778D, 58917 }, - { 0x778E, 58921 }, - { 0x778F, 58925 }, - { 0x7790, 58929 }, - { 0x7791, 58933 }, - { 0x7792, 58937 }, - { 0x7793, 58941 }, - { 0x7794, 58945 }, - { 0x7795, 58949 }, - { 0x7796, 58953 }, - { 0x7797, 58957 }, - { 0x7798, 58961 }, - { 0x7799, 58965 }, - { 0x779A, 58969 }, - { 0x779B, 58973 }, - { 0x779C, 58977 }, - { 0x779D, 58981 }, - { 0x779E, 58985 }, - { 0x779F, 58989 }, - { 0x77A0, 58993 }, - { 0x77A1, 58997 }, - { 0x77A2, 59001 }, - { 0x77A3, 59005 }, - { 0x77A4, 59009 }, - { 0x77A5, 59013 }, - { 0x77A6, 59017 }, - { 0x77A7, 59021 }, - { 0x77A8, 59025 }, - { 0x77A9, 59029 }, - { 0x77AA, 59033 }, - { 0x77AB, 59037 }, - { 0x77AC, 59041 }, - { 0x77AD, 59045 }, - { 0x77AE, 59049 }, - { 0x77AF, 59053 }, - { 0x77B0, 59057 }, - { 0x77B1, 59061 }, - { 0x77B2, 59065 }, - { 0x77B3, 59069 }, - { 0x77B4, 59073 }, - { 0x77B5, 59077 }, - { 0x77B6, 59081 }, - { 0x77B7, 59085 }, - { 0x77B8, 59089 }, - { 0x77B9, 59093 }, - { 0x77BA, 59097 }, - { 0x77BB, 59101 }, - { 0x77BC, 59105 }, - { 0x77BD, 59109 }, - { 0x77BE, 59113 }, - { 0x77BF, 59117 }, - { 0x77C0, 59121 }, - { 0x77C1, 59125 }, - { 0x77C2, 59129 }, - { 0x77C3, 59133 }, - { 0x77C4, 59137 }, - { 0x77C5, 59141 }, - { 0x77C6, 59145 }, - { 0x77C7, 59149 }, - { 0x77C8, 59153 }, - { 0x77C9, 59157 }, - { 0x77CA, 59161 }, - { 0x77CB, 59165 }, - { 0x77CC, 59169 }, - { 0x77CD, 59173 }, - { 0x77CE, 59177 }, - { 0x77CF, 59181 }, - { 0x77D0, 59185 }, - { 0x77D1, 59189 }, - { 0x77D2, 59193 }, - { 0x77D3, 59197 }, - { 0x77D4, 59201 }, - { 0x77D5, 59205 }, - { 0x77D6, 59209 }, - { 0x77D7, 59213 }, - { 0x77D8, 59217 }, - { 0x77D9, 59221 }, - { 0x77DA, 59225 }, - { 0x77DB, 59229 }, - { 0x77DC, 59233 }, - { 0x77DD, 59237 }, - { 0x77DE, 59241 }, - { 0x77DF, 59245 }, - { 0x77E0, 59249 }, - { 0x77E1, 59253 }, - { 0x77E2, 59257 }, - { 0x77E3, 59261 }, - { 0x77E4, 59265 }, - { 0x77E5, 59269 }, - { 0x77E6, 59273 }, - { 0x77E7, 59277 }, - { 0x77E8, 59281 }, - { 0x77E9, 59285 }, - { 0x77EA, 59289 }, - { 0x77EB, 59293 }, - { 0x77EC, 59297 }, - { 0x77ED, 59301 }, - { 0x77EE, 59305 }, - { 0x77EF, 59309 }, - { 0x77F0, 59313 }, - { 0x77F1, 59317 }, - { 0x77F2, 59321 }, - { 0x77F3, 59325 }, - { 0x77F4, 59329 }, - { 0x77F5, 59333 }, - { 0x77F6, 59337 }, - { 0x77F7, 59341 }, - { 0x77F8, 59345 }, - { 0x77F9, 59349 }, - { 0x77FA, 59353 }, - { 0x77FB, 59357 }, - { 0x77FC, 59361 }, - { 0x77FD, 59365 }, - { 0x77FE, 59369 }, - { 0x77FF, 59373 }, - { 0x7800, 59377 }, - { 0x7801, 59381 }, - { 0x7802, 59385 }, - { 0x7803, 59389 }, - { 0x7804, 59393 }, - { 0x7805, 59397 }, - { 0x7806, 59401 }, - { 0x7807, 59405 }, - { 0x7808, 59409 }, - { 0x7809, 59413 }, - { 0x780A, 59417 }, - { 0x780B, 59421 }, - { 0x780C, 59425 }, - { 0x780D, 59429 }, - { 0x780E, 59433 }, - { 0x780F, 59437 }, - { 0x7810, 59441 }, - { 0x7811, 59445 }, - { 0x7812, 59449 }, - { 0x7813, 59453 }, - { 0x7814, 59457 }, - { 0x7815, 59461 }, - { 0x7816, 59465 }, - { 0x7817, 59469 }, - { 0x7818, 59473 }, - { 0x7819, 59477 }, - { 0x781A, 59481 }, - { 0x781B, 59485 }, - { 0x781C, 59489 }, - { 0x781D, 59493 }, - { 0x781E, 59497 }, - { 0x781F, 59501 }, - { 0x7820, 59505 }, - { 0x7821, 59509 }, - { 0x7822, 59513 }, - { 0x7823, 59517 }, - { 0x7824, 59521 }, - { 0x7825, 59525 }, - { 0x7826, 59529 }, - { 0x7827, 59533 }, - { 0x7828, 59537 }, - { 0x7829, 59541 }, - { 0x782A, 59545 }, - { 0x782B, 59549 }, - { 0x782C, 59553 }, - { 0x782D, 59557 }, - { 0x782E, 59561 }, - { 0x782F, 59565 }, - { 0x7830, 59569 }, - { 0x7831, 59573 }, - { 0x7832, 59577 }, - { 0x7833, 59581 }, - { 0x7834, 59585 }, - { 0x7835, 59589 }, - { 0x7836, 59593 }, - { 0x7837, 59597 }, - { 0x7838, 59601 }, - { 0x7839, 59605 }, - { 0x783A, 59609 }, - { 0x783B, 59613 }, - { 0x783C, 59617 }, - { 0x783D, 59621 }, - { 0x783E, 59625 }, - { 0x783F, 59629 }, - { 0x7840, 59633 }, - { 0x7841, 59637 }, - { 0x7842, 59641 }, - { 0x7843, 59645 }, - { 0x7844, 59649 }, - { 0x7845, 59653 }, - { 0x7846, 59657 }, - { 0x7847, 59661 }, - { 0x7848, 59665 }, - { 0x7849, 59669 }, - { 0x784A, 59673 }, - { 0x784B, 59677 }, - { 0x784C, 59681 }, - { 0x784D, 59685 }, - { 0x784E, 59689 }, - { 0x784F, 59693 }, - { 0x7850, 59697 }, - { 0x7851, 59701 }, - { 0x7852, 59705 }, - { 0x7853, 59709 }, - { 0x7854, 59713 }, - { 0x7855, 59717 }, - { 0x7856, 59721 }, - { 0x7857, 59725 }, - { 0x7858, 59729 }, - { 0x7859, 59733 }, - { 0x785A, 59737 }, - { 0x785B, 59741 }, - { 0x785C, 59745 }, - { 0x785D, 59749 }, - { 0x785E, 59753 }, - { 0x785F, 59757 }, - { 0x7860, 59761 }, - { 0x7861, 59765 }, - { 0x7862, 59769 }, - { 0x7863, 59773 }, - { 0x7864, 59777 }, - { 0x7865, 59781 }, - { 0x7866, 59785 }, - { 0x7867, 59789 }, - { 0x7868, 59793 }, - { 0x7869, 59797 }, - { 0x786A, 59801 }, - { 0x786B, 59805 }, - { 0x786C, 59809 }, - { 0x786D, 59813 }, - { 0x786E, 59817 }, - { 0x786F, 59821 }, - { 0x7870, 59825 }, - { 0x7871, 59829 }, - { 0x7872, 59833 }, - { 0x7873, 59837 }, - { 0x7874, 59841 }, - { 0x7875, 59845 }, - { 0x7876, 59849 }, - { 0x7877, 59853 }, - { 0x7878, 59857 }, - { 0x7879, 59861 }, - { 0x787A, 59865 }, - { 0x787B, 59869 }, - { 0x787C, 59873 }, - { 0x787D, 59877 }, - { 0x787E, 59881 }, - { 0x787F, 59885 }, - { 0x7880, 59889 }, - { 0x7881, 59893 }, - { 0x7882, 59897 }, - { 0x7883, 59901 }, - { 0x7884, 59905 }, - { 0x7885, 59909 }, - { 0x7886, 59913 }, - { 0x7887, 59917 }, - { 0x7888, 59921 }, - { 0x7889, 59925 }, - { 0x788A, 59929 }, - { 0x788B, 59933 }, - { 0x788C, 59937 }, - { 0x788D, 59941 }, - { 0x788E, 59945 }, - { 0x788F, 59949 }, - { 0x7890, 59953 }, - { 0x7891, 59957 }, - { 0x7892, 59961 }, - { 0x7893, 59965 }, - { 0x7894, 59969 }, - { 0x7895, 59973 }, - { 0x7896, 59977 }, - { 0x7897, 59981 }, - { 0x7898, 59985 }, - { 0x7899, 59989 }, - { 0x789A, 59993 }, - { 0x789B, 59997 }, - { 0x789C, 60001 }, - { 0x789D, 60005 }, - { 0x789E, 60009 }, - { 0x789F, 60013 }, - { 0x78A0, 60017 }, - { 0x78A1, 60021 }, - { 0x78A2, 60025 }, - { 0x78A3, 60029 }, - { 0x78A4, 60033 }, - { 0x78A5, 60037 }, - { 0x78A6, 60041 }, - { 0x78A7, 60045 }, - { 0x78A8, 60049 }, - { 0x78A9, 60053 }, - { 0x78AA, 60057 }, - { 0x78AB, 60061 }, - { 0x78AC, 60065 }, - { 0x78AD, 60069 }, - { 0x78AE, 60073 }, - { 0x78AF, 60077 }, - { 0x78B0, 60081 }, - { 0x78B1, 60085 }, - { 0x78B2, 60089 }, - { 0x78B3, 60093 }, - { 0x78B4, 60097 }, - { 0x78B5, 60101 }, - { 0x78B6, 60105 }, - { 0x78B7, 60109 }, - { 0x78B8, 60113 }, - { 0x78B9, 60117 }, - { 0x78BA, 60121 }, - { 0x78BB, 60125 }, - { 0x78BC, 60129 }, - { 0x78BD, 60133 }, - { 0x78BE, 60137 }, - { 0x78BF, 60141 }, - { 0x78C0, 60145 }, - { 0x78C1, 60149 }, - { 0x78C2, 60153 }, - { 0x78C3, 60157 }, - { 0x78C4, 60161 }, - { 0x78C5, 60165 }, - { 0x78C6, 60169 }, - { 0x78C7, 60173 }, - { 0x78C8, 60177 }, - { 0x78C9, 60181 }, - { 0x78CA, 60185 }, - { 0x78CB, 60189 }, - { 0x78CC, 60193 }, - { 0x78CD, 60197 }, - { 0x78CE, 60201 }, - { 0x78CF, 60205 }, - { 0x78D0, 60209 }, - { 0x78D1, 60213 }, - { 0x78D2, 60217 }, - { 0x78D3, 60221 }, - { 0x78D4, 60225 }, - { 0x78D5, 60229 }, - { 0x78D6, 60233 }, - { 0x78D7, 60237 }, - { 0x78D8, 60241 }, - { 0x78D9, 60245 }, - { 0x78DA, 60249 }, - { 0x78DB, 60253 }, - { 0x78DC, 60257 }, - { 0x78DD, 60261 }, - { 0x78DE, 60265 }, - { 0x78DF, 60269 }, - { 0x78E0, 60273 }, - { 0x78E1, 60277 }, - { 0x78E2, 60281 }, - { 0x78E3, 60285 }, - { 0x78E4, 60289 }, - { 0x78E5, 60293 }, - { 0x78E6, 60297 }, - { 0x78E7, 60301 }, - { 0x78E8, 60305 }, - { 0x78E9, 60309 }, - { 0x78EA, 60313 }, - { 0x78EB, 60317 }, - { 0x78EC, 60321 }, - { 0x78ED, 60325 }, - { 0x78EE, 60329 }, - { 0x78EF, 106315 }, - { 0x78F0, 106319 }, - { 0x78F1, 106323 }, - { 0x78F2, 106327 }, - { 0x78F3, 106331 }, - { 0x78F4, 106335 }, - { 0x78F5, 106339 }, - { 0x78F6, 106344 }, - { 0x78F7, 106349 }, - { 0x78F8, 106354 }, - { 0x78F9, 106359 }, - { 0x78FA, 106364 }, - { 0x78FB, 106369 }, - { 0x78FC, 106374 }, - { 0x78FD, 105328 }, - { 0x78FE, 130744 }, - { 0x78FF, 130747 }, - { 0x7900, 130750 }, - { 0x7901, 130807 }, - { 0x7902, 130771 }, - { 0x7903, 130774 }, - { 0x7904, 130777 }, - { 0x7905, 130780 }, - { 0x7906, 130792 }, - { 0x7907, 130795 }, - { 0x7908, 130798 }, - { 0x7909, 130801 }, - { 0x790A, 130804 }, - { 0x790B, 130756 }, - { 0x790C, 130759 }, - { 0x790D, 130762 }, - { 0x790E, 130765 }, - { 0x790F, 130768 }, - { 0x7910, 130783 }, - { 0x7911, 130786 }, - { 0x7912, 130789 }, - { 0x7913, 130912 }, - { 0x7914, 130915 }, - { 0x7915, 130918 }, - { 0x7916, 130921 }, - { 0x7917, 130924 }, - { 0x7918, 130927 }, - { 0x7919, 130930 }, - { 0x791A, 130933 }, - { 0x791B, 130936 }, - { 0x791C, 131566 }, - { 0x791D, 131569 }, - { 0x791E, 131572 }, - { 0x791F, 130957 }, - { 0x7920, 130960 }, - { 0x7921, 130963 }, - { 0x7922, 130966 }, - { 0x7923, 130969 }, - { 0x7924, 130972 }, - { 0x7925, 130975 }, - { 0x7926, 130978 }, - { 0x7927, 130990 }, - { 0x7928, 130993 }, - { 0x7929, 130996 }, - { 0x792A, 130999 }, - { 0x792B, 131002 }, - { 0x792C, 131005 }, - { 0x792D, 131008 }, - { 0x792E, 130939 }, - { 0x792F, 130942 }, - { 0x7930, 130945 }, - { 0x7931, 130948 }, - { 0x7932, 130951 }, - { 0x7933, 130954 }, - { 0x7934, 130981 }, - { 0x7935, 130984 }, - { 0x7936, 130987 }, - { 0x7937, 131575 }, - { 0x7938, 131260 }, - { 0x7939, 131263 }, - { 0x793A, 131266 }, - { 0x793B, 131269 }, - { 0x793C, 131272 }, - { 0x793D, 131275 }, - { 0x793E, 131278 }, - { 0x793F, 131281 }, - { 0x7940, 131299 }, - { 0x7941, 131302 }, - { 0x7942, 131305 }, - { 0x7943, 131308 }, - { 0x7944, 131311 }, - { 0x7945, 131314 }, - { 0x7946, 131338 }, - { 0x7947, 131341 }, - { 0x7948, 131344 }, - { 0x7949, 131347 }, - { 0x794A, 131350 }, - { 0x794B, 131353 }, - { 0x794C, 131356 }, - { 0x794D, 131359 }, - { 0x794E, 131284 }, - { 0x794F, 131287 }, - { 0x7950, 131290 }, - { 0x7951, 131293 }, - { 0x7952, 131296 }, - { 0x7953, 131317 }, - { 0x7954, 131320 }, - { 0x7955, 131323 }, - { 0x7956, 131326 }, - { 0x7957, 131329 }, - { 0x7958, 131332 }, - { 0x7959, 131335 }, - { 0x795A, 131362 }, - { 0x795B, 131365 }, - { 0x795C, 131368 }, - { 0x795D, 131371 }, - { 0x795E, 131401 }, - { 0x795F, 131404 }, - { 0x7960, 131407 }, - { 0x7961, 131410 }, - { 0x7962, 131413 }, - { 0x7963, 131416 }, - { 0x7964, 131419 }, - { 0x7965, 131440 }, - { 0x7966, 131443 }, - { 0x7967, 131446 }, - { 0x7968, 131449 }, - { 0x7969, 131590 }, - { 0x796A, 131374 }, - { 0x796B, 131377 }, - { 0x796C, 131380 }, - { 0x796D, 131383 }, - { 0x796E, 131386 }, - { 0x796F, 131389 }, - { 0x7970, 131392 }, - { 0x7971, 131395 }, - { 0x7972, 131398 }, - { 0x7973, 131422 }, - { 0x7974, 131425 }, - { 0x7975, 131428 }, - { 0x7976, 131431 }, - { 0x7977, 131434 }, - { 0x7978, 131437 }, - { 0x7979, 131587 }, - { 0x797A, 131089 }, - { 0x797B, 131092 }, - { 0x797C, 131095 }, - { 0x797D, 131098 }, - { 0x797E, 131101 }, - { 0x797F, 131104 }, - { 0x7980, 131107 }, - { 0x7981, 131110 }, - { 0x7982, 131113 }, - { 0x7983, 131134 }, - { 0x7984, 131137 }, - { 0x7985, 131140 }, - { 0x7986, 131143 }, - { 0x7987, 131146 }, - { 0x7988, 131149 }, - { 0x7989, 131152 }, - { 0x798A, 131584 }, - { 0x798B, 131170 }, - { 0x798C, 131173 }, - { 0x798D, 131176 }, - { 0x798E, 131116 }, - { 0x798F, 131119 }, - { 0x7990, 131122 }, - { 0x7991, 131125 }, - { 0x7992, 131128 }, - { 0x7993, 131131 }, - { 0x7994, 131581 }, - { 0x7995, 131155 }, - { 0x7996, 131158 }, - { 0x7997, 131161 }, - { 0x7998, 131164 }, - { 0x7999, 131167 }, - { 0x799A, 130810 }, - { 0x799B, 130813 }, - { 0x799C, 130816 }, - { 0x799D, 130819 }, - { 0x799E, 130822 }, - { 0x799F, 130825 }, - { 0x79A0, 130828 }, - { 0x79A1, 130831 }, - { 0x79A2, 130834 }, - { 0x79A3, 131560 }, - { 0x79A4, 131563 }, - { 0x79A5, 130858 }, - { 0x79A6, 130861 }, - { 0x79A7, 130864 }, - { 0x79A8, 130867 }, - { 0x79A9, 130870 }, - { 0x79AA, 130873 }, - { 0x79AB, 130876 }, - { 0x79AC, 130903 }, - { 0x79AD, 130906 }, - { 0x79AE, 130909 }, - { 0x79AF, 130837 }, - { 0x79B0, 130840 }, - { 0x79B1, 130843 }, - { 0x79B2, 130846 }, - { 0x79B3, 130849 }, - { 0x79B4, 130852 }, - { 0x79B5, 130855 }, - { 0x79B6, 130879 }, - { 0x79B7, 130882 }, - { 0x79B8, 130885 }, - { 0x79B9, 130888 }, - { 0x79BA, 130891 }, - { 0x79BB, 130894 }, - { 0x79BC, 130897 }, - { 0x79BD, 130900 }, - { 0x79BE, 131011 }, - { 0x79BF, 131014 }, - { 0x79C0, 131017 }, - { 0x79C1, 131020 }, - { 0x79C2, 131023 }, - { 0x79C3, 131026 }, - { 0x79C4, 131029 }, - { 0x79C5, 131038 }, - { 0x79C6, 131041 }, - { 0x79C7, 131044 }, - { 0x79C8, 131047 }, - { 0x79C9, 131050 }, - { 0x79CA, 131053 }, - { 0x79CB, 131056 }, - { 0x79CC, 131077 }, - { 0x79CD, 131080 }, - { 0x79CE, 131083 }, - { 0x79CF, 131086 }, - { 0x79D0, 131032 }, - { 0x79D1, 131035 }, - { 0x79D2, 131578 }, - { 0x79D3, 131059 }, - { 0x79D4, 131062 }, - { 0x79D5, 131065 }, - { 0x79D6, 131068 }, - { 0x79D7, 131071 }, - { 0x79D8, 131074 }, - { 0x79D9, 131515 }, - { 0x79DA, 131518 }, - { 0x79DB, 131521 }, - { 0x79DC, 131524 }, - { 0x79DD, 131527 }, - { 0x79DE, 131593 }, - { 0x79DF, 131548 }, - { 0x79E0, 131551 }, - { 0x79E1, 131554 }, - { 0x79E2, 131557 }, - { 0x79E3, 131530 }, - { 0x79E4, 131533 }, - { 0x79E5, 131536 }, - { 0x79E6, 131539 }, - { 0x79E7, 131542 }, - { 0x79E8, 131545 }, - { 0x79E9, 131179 }, - { 0x79EA, 131182 }, - { 0x79EB, 131185 }, - { 0x79EC, 131188 }, - { 0x79ED, 131203 }, - { 0x79EE, 131206 }, - { 0x79EF, 131209 }, - { 0x79F0, 131212 }, - { 0x79F1, 131215 }, - { 0x79F2, 131218 }, - { 0x79F3, 131221 }, - { 0x79F4, 131242 }, - { 0x79F5, 131245 }, - { 0x79F6, 131248 }, - { 0x79F7, 131251 }, - { 0x79F8, 131254 }, - { 0x79F9, 131257 }, - { 0x79FA, 131191 }, - { 0x79FB, 131194 }, - { 0x79FC, 131197 }, - { 0x79FD, 131200 }, - { 0x79FE, 131224 }, - { 0x79FF, 131227 }, - { 0x7A00, 131230 }, - { 0x7A01, 131233 }, - { 0x7A02, 131236 }, - { 0x7A03, 131239 }, - { 0x7A04, 131452 }, - { 0x7A05, 131455 }, - { 0x7A06, 131458 }, - { 0x7A07, 131461 }, - { 0x7A08, 131464 }, - { 0x7A09, 131479 }, - { 0x7A0A, 131482 }, - { 0x7A0B, 131485 }, - { 0x7A0C, 131488 }, - { 0x7A0D, 131491 }, - { 0x7A0E, 131467 }, - { 0x7A0F, 131470 }, - { 0x7A10, 131473 }, - { 0x7A11, 131476 }, - { 0x7A12, 131494 }, - { 0x7A13, 131497 }, - { 0x7A14, 131500 }, - { 0x7A15, 131503 }, - { 0x7A16, 131506 }, - { 0x7A17, 131509 }, - { 0x7A18, 131512 }, - { 0x7A19, 131596 }, - { 0x7A1A, 131599 }, - { 0x7A1B, 105324 }, - { 0x7A1C, 106386 }, - { 0x7A1D, 106382 }, - { 0x7A1E, 106378 }, - { 0x7A1F, 105288 }, - { 0x7A20, 105304 }, - { 0x7A21, 105300 }, - { 0x7A22, 105308 }, - { 0x7A23, 106235 }, - { 0x7A24, 106295 }, - { 0x7A25, 106291 }, - { 0x7A26, 106299 }, - { 0x7A27, 106195 }, - { 0x7A28, 38752 }, - { 0x7A29, 38754 }, - { 0x7A2A, 38756 }, - { 0x7A2B, 38758 }, - { 0x7A2C, 38760 }, - { 0x7A2D, 38762 }, - { 0x7A2E, 38764 }, - { 0x7A2F, 38766 }, - { 0x7A30, 38768 }, - { 0x7A31, 38770 }, - { 0x7A32, 38772 }, - { 0x7A33, 38774 }, - { 0x7A34, 38776 }, - { 0x7A35, 38778 }, - { 0x7A36, 38780 }, - { 0x7A37, 38782 }, - { 0x7A38, 38784 }, - { 0x7A39, 38786 }, - { 0x7A3A, 38788 }, - { 0x7A3B, 38790 }, - { 0x7A3C, 38792 }, - { 0x7A3D, 38794 }, - { 0x7A3E, 38796 }, - { 0x7A3F, 38798 }, - { 0x7A40, 38800 }, - { 0x7A41, 38802 }, - { 0x7A42, 38804 }, - { 0x7A43, 38806 }, - { 0x7A44, 38808 }, - { 0x7A45, 38810 }, - { 0x7A46, 38812 }, - { 0x7A47, 38814 }, - { 0x7A48, 38816 }, - { 0x7A49, 38818 }, - { 0x7A4A, 38820 }, - { 0x7A4B, 38822 }, - { 0x7A4C, 38824 }, - { 0x7A4D, 38826 }, - { 0x7A4E, 38828 }, - { 0x7A4F, 38830 }, - { 0x7A50, 38832 }, - { 0x7A51, 38834 }, - { 0x7A52, 38836 }, - { 0x7A53, 38838 }, - { 0x7A54, 38840 }, - { 0x7A55, 38842 }, - { 0x7A56, 38844 }, - { 0x7A57, 38846 }, - { 0x7A58, 38848 }, - { 0x7A59, 38850 }, - { 0x7A5A, 38852 }, - { 0x7A5B, 38854 }, - { 0x7A5C, 38856 }, - { 0x7A5D, 38858 }, - { 0x7A5E, 38860 }, - { 0x7A5F, 38862 }, - { 0x7A60, 38864 }, - { 0x7A61, 38866 }, - { 0x7A62, 38868 }, - { 0x7A63, 38870 }, - { 0x7A64, 38872 }, - { 0x7A65, 38874 }, - { 0x7A66, 38876 }, - { 0x7A67, 38878 }, - { 0x7A68, 38880 }, - { 0x7A69, 38882 }, - { 0x7A6A, 38884 }, - { 0x7A6B, 38886 }, - { 0x7A6C, 38888 }, - { 0x7A6D, 38890 }, - { 0x7A6E, 38892 }, - { 0x7A6F, 38894 }, - { 0x7A70, 38896 }, - { 0x7A71, 38898 }, - { 0x7A72, 38900 }, - { 0x7A73, 38902 }, - { 0x7A74, 38904 }, - { 0x7A75, 38906 }, - { 0x7A76, 38908 }, - { 0x7A77, 38910 }, - { 0x7A78, 38912 }, - { 0x7A79, 38914 }, - { 0x7A7A, 38916 }, - { 0x7A7B, 38918 }, - { 0x7A7C, 38920 }, - { 0x7A7D, 38922 }, - { 0x7A7E, 38924 }, - { 0x7A7F, 38926 }, - { 0x7A80, 38928 }, - { 0x7A81, 38930 }, - { 0x7A82, 38932 }, - { 0x7A83, 38934 }, - { 0x7A84, 38936 }, - { 0x7A85, 38938 }, - { 0x7A86, 38940 }, - { 0x7A87, 38942 }, - { 0x7A88, 38944 }, - { 0x7A89, 38946 }, - { 0x7A8A, 38948 }, - { 0x7A8B, 38950 }, - { 0x7A8C, 38952 }, - { 0x7A8D, 38954 }, - { 0x7A8E, 38956 }, - { 0x7A8F, 38958 }, - { 0x7A90, 38960 }, - { 0x7A91, 38962 }, - { 0x7A92, 38964 }, - { 0x7A93, 38966 }, - { 0x7A94, 38968 }, - { 0x7A95, 38970 }, - { 0x7A96, 38972 }, - { 0x7A97, 38974 }, - { 0x7A98, 38976 }, - { 0x7A99, 38978 }, - { 0x7A9A, 38980 }, - { 0x7A9B, 38982 }, - { 0x7A9C, 38984 }, - { 0x7A9D, 38986 }, - { 0x7A9E, 38988 }, - { 0x7A9F, 38990 }, - { 0x7AA0, 38992 }, - { 0x7AA1, 38994 }, - { 0x7AA2, 38996 }, - { 0x7AA3, 38998 }, - { 0x7AA4, 39000 }, - { 0x7AA5, 39002 }, - { 0x7AA6, 39004 }, - { 0x7AA7, 39006 }, - { 0x7AA8, 39008 }, - { 0x7AA9, 39010 }, - { 0x7AAA, 39012 }, - { 0x7AAB, 39014 }, - { 0x7AAC, 39016 }, - { 0x7AAD, 39018 }, - { 0x7AAE, 39020 }, - { 0x7AAF, 39022 }, - { 0x7AB0, 39024 }, - { 0x7AB1, 39026 }, - { 0x7AB2, 39028 }, - { 0x7AB3, 39030 }, - { 0x7AB4, 39032 }, - { 0x7AB5, 39034 }, - { 0x7AB6, 39036 }, - { 0x7AB7, 39038 }, - { 0x7AB8, 39040 }, - { 0x7AB9, 39042 }, - { 0x7ABA, 39044 }, - { 0x7ABB, 39046 }, - { 0x7ABC, 39048 }, - { 0x7ABD, 39050 }, - { 0x7ABE, 39052 }, - { 0x7ABF, 39054 }, - { 0x7AC0, 39056 }, - { 0x7AC1, 39058 }, - { 0x7AC2, 39060 }, - { 0x7AC3, 39062 }, - { 0x7AC4, 39064 }, - { 0x7AC5, 39066 }, - { 0x7AC6, 39068 }, - { 0x7AC7, 39070 }, - { 0x7AC8, 39072 }, - { 0x7AC9, 39074 }, - { 0x7ACA, 39076 }, - { 0x7ACB, 39078 }, - { 0x7ACC, 39080 }, - { 0x7ACD, 39082 }, - { 0x7ACE, 39084 }, - { 0x7ACF, 39086 }, - { 0x7AD0, 39088 }, - { 0x7AD1, 39090 }, - { 0x7AD2, 39092 }, - { 0x7AD3, 39094 }, - { 0x7AD4, 39096 }, - { 0x7AD5, 39098 }, - { 0x7AD6, 39100 }, - { 0x7AD7, 39102 }, - { 0x7AD8, 39104 }, - { 0x7AD9, 39106 }, - { 0x7ADA, 39108 }, - { 0x7ADB, 39110 }, - { 0x7ADC, 39112 }, - { 0x7ADD, 39114 }, - { 0x7ADE, 39116 }, - { 0x7ADF, 39118 }, - { 0x7AE0, 39120 }, - { 0x7AE1, 39122 }, - { 0x7AE2, 39124 }, - { 0x7AE3, 39126 }, - { 0x7AE4, 39128 }, - { 0x7AE5, 39130 }, - { 0x7AE6, 39132 }, - { 0x7AE7, 39134 }, - { 0x7AE8, 39136 }, - { 0x7AE9, 39138 }, - { 0x7AEA, 39140 }, - { 0x7AEB, 39142 }, - { 0x7AEC, 39144 }, - { 0x7AED, 39146 }, - { 0x7AEE, 39148 }, - { 0x7AEF, 39150 }, - { 0x7AF0, 39152 }, - { 0x7AF1, 39154 }, - { 0x7AF2, 39156 }, - { 0x7AF3, 39158 }, - { 0x7AF4, 39160 }, - { 0x7AF5, 39162 }, - { 0x7AF6, 39164 }, - { 0x7AF7, 39166 }, - { 0x7AF8, 39168 }, - { 0x7AF9, 39170 }, - { 0x7AFA, 39172 }, - { 0x7AFB, 39174 }, - { 0x7AFC, 39176 }, - { 0x7AFD, 39178 }, - { 0x7AFE, 39180 }, - { 0x7AFF, 39182 }, - { 0x7B00, 39184 }, - { 0x7B01, 39186 }, - { 0x7B02, 39188 }, - { 0x7B03, 39190 }, - { 0x7B04, 39192 }, - { 0x7B05, 39194 }, - { 0x7B06, 39196 }, - { 0x7B07, 39198 }, - { 0x7B08, 39200 }, - { 0x7B09, 39202 }, - { 0x7B0A, 39204 }, - { 0x7B0B, 39206 }, - { 0x7B0C, 39208 }, - { 0x7B0D, 39210 }, - { 0x7B0E, 39212 }, - { 0x7B0F, 39214 }, - { 0x7B10, 39216 }, - { 0x7B11, 39218 }, - { 0x7B12, 39220 }, - { 0x7B13, 39222 }, - { 0x7B14, 39224 }, - { 0x7B15, 39226 }, - { 0x7B16, 39228 }, - { 0x7B17, 39230 }, - { 0x7B18, 39232 }, - { 0x7B19, 39234 }, - { 0x7B1A, 39236 }, - { 0x7B1B, 39238 }, - { 0x7B1C, 39240 }, - { 0x7B1D, 39242 }, - { 0x7B1E, 39244 }, - { 0x7B1F, 39246 }, - { 0x7B20, 39248 }, - { 0x7B21, 39250 }, - { 0x7B22, 39252 }, - { 0x7B23, 39254 }, - { 0x7B24, 39256 }, - { 0x7B25, 39258 }, - { 0x7B26, 39260 }, - { 0x7B27, 39262 }, - { 0x7B28, 39264 }, - { 0x7B29, 39266 }, - { 0x7B2A, 39268 }, - { 0x7B2B, 39270 }, - { 0x7B2C, 39272 }, - { 0x7B2D, 39274 }, - { 0x7B2E, 39276 }, - { 0x7B2F, 39278 }, - { 0x7B30, 39280 }, - { 0x7B31, 39282 }, - { 0x7B32, 39284 }, - { 0x7B33, 39286 }, - { 0x7B34, 39288 }, - { 0x7B35, 39290 }, - { 0x7B36, 39292 }, - { 0x7B37, 39294 }, - { 0x7B38, 39296 }, - { 0x7B39, 39298 }, - { 0x7B3A, 39300 }, - { 0x7B3B, 39302 }, - { 0x7B3C, 39304 }, - { 0x7B3D, 39306 }, - { 0x7B3E, 39308 }, - { 0x7B3F, 39310 }, - { 0x7B40, 39312 }, - { 0x7B41, 39314 }, - { 0x7B42, 39316 }, - { 0x7B43, 39318 }, - { 0x7B44, 39320 }, - { 0x7B45, 39322 }, - { 0x7B46, 39324 }, - { 0x7B47, 39326 }, - { 0x7B48, 39328 }, - { 0x7B49, 39330 }, - { 0x7B4A, 39332 }, - { 0x7B4B, 39334 }, - { 0x7B4C, 39336 }, - { 0x7B4D, 39338 }, - { 0x7B4E, 39340 }, - { 0x7B4F, 39342 }, - { 0x7B50, 39344 }, - { 0x7B51, 39346 }, - { 0x7B52, 39348 }, - { 0x7B53, 39350 }, - { 0x7B54, 39352 }, - { 0x7B55, 39354 }, - { 0x7B56, 39356 }, - { 0x7B57, 39358 }, - { 0x7B58, 39360 }, - { 0x7B59, 39362 }, - { 0x7B5A, 39364 }, - { 0x7B5B, 39366 }, - { 0x7B5C, 39368 }, - { 0x7B5D, 39370 }, - { 0x7B5E, 39372 }, - { 0x7B5F, 39374 }, - { 0x7B60, 39376 }, - { 0x7B61, 39378 }, - { 0x7B62, 39380 }, - { 0x7B63, 39382 }, - { 0x7B64, 39384 }, - { 0x7B65, 39386 }, - { 0x7B66, 39388 }, - { 0x7B67, 39390 }, - { 0x7B68, 39392 }, - { 0x7B69, 39394 }, - { 0x7B6A, 39396 }, - { 0x7B6B, 39398 }, - { 0x7B6C, 39400 }, - { 0x7B6D, 39402 }, - { 0x7B6E, 39404 }, - { 0x7B6F, 39406 }, - { 0x7B70, 39408 }, - { 0x7B71, 39410 }, - { 0x7B72, 39412 }, - { 0x7B73, 39414 }, - { 0x7B74, 39416 }, - { 0x7B75, 39418 }, - { 0x7B76, 39420 }, - { 0x7B77, 39422 }, - { 0x7B78, 39424 }, - { 0x7B79, 39426 }, - { 0x7B7A, 39428 }, - { 0x7B7B, 39430 }, - { 0x7B7C, 39432 }, - { 0x7B7D, 39434 }, - { 0x7B7E, 39436 }, - { 0x7B7F, 39438 }, - { 0x7B80, 39440 }, - { 0x7B81, 39442 }, - { 0x7B82, 39444 }, - { 0x7B83, 39446 }, - { 0x7B84, 39448 }, - { 0x7B85, 39450 }, - { 0x7B86, 39452 }, - { 0x7B87, 39454 }, - { 0x7B88, 39456 }, - { 0x7B89, 39458 }, - { 0x7B8A, 39460 }, - { 0x7B8B, 39462 }, - { 0x7B8C, 39464 }, - { 0x7B8D, 39466 }, - { 0x7B8E, 39468 }, - { 0x7B8F, 39470 }, - { 0x7B90, 39472 }, - { 0x7B91, 39474 }, - { 0x7B92, 39476 }, - { 0x7B93, 39478 }, - { 0x7B94, 39480 }, - { 0x7B95, 39482 }, - { 0x7B96, 39484 }, - { 0x7B97, 39486 }, - { 0x7B98, 39488 }, - { 0x7B99, 39490 }, - { 0x7B9A, 39492 }, - { 0x7B9B, 39494 }, - { 0x7B9C, 39496 }, - { 0x7B9D, 39498 }, - { 0x7B9E, 39500 }, - { 0x7B9F, 39502 }, - { 0x7BA0, 39504 }, - { 0x7BA1, 39506 }, - { 0x7BA2, 39508 }, - { 0x7BA3, 39510 }, - { 0x7BA4, 39512 }, - { 0x7BA5, 39514 }, - { 0x7BA6, 39516 }, - { 0x7BA7, 39518 }, - { 0x7BA8, 39520 }, - { 0x7BA9, 39522 }, - { 0x7BAA, 39524 }, - { 0x7BAB, 39526 }, - { 0x7BAC, 39528 }, - { 0x7BAD, 39530 }, - { 0x7BAE, 39532 }, - { 0x7BAF, 39534 }, - { 0x7BB0, 39536 }, - { 0x7BB1, 39538 }, - { 0x7BB2, 39540 }, - { 0x7BB3, 39542 }, - { 0x7BB4, 89964 }, - { 0x7BB5, 90179 }, - { 0x7BB6, 90074 }, - { 0x7BB7, 90150 }, - { 0x7BB8, 89949 }, - { 0x7BB9, 90014 }, - { 0x7BBA, 90026 }, - { 0x7BBB, 89936 }, - { 0x7BBC, 89939 }, - { 0x7BBD, 90169 }, - { 0x7BBE, 89956 }, - { 0x7BBF, 90081 }, - { 0x7BC0, 90077 }, - { 0x7BC1, 89942 }, - { 0x7BC2, 89952 }, - { 0x7BC3, 90017 }, - { 0x7BC4, 90084 }, - { 0x7BC5, 90215 }, - { 0x7BC6, 90294 }, - { 0x7BC7, 90182 }, - { 0x7BC8, 90197 }, - { 0x7BC9, 90282 }, - { 0x7BCA, 90191 }, - { 0x7BCB, 90200 }, - { 0x7BCC, 90212 }, - { 0x7BCD, 90029 }, - { 0x7BCE, 90050 }, - { 0x7BCF, 89970 }, - { 0x7BD0, 90088 }, - { 0x7BD1, 90032 }, - { 0x7BD2, 90053 }, - { 0x7BD3, 89973 }, - { 0x7BD4, 90091 }, - { 0x7BD5, 90045 }, - { 0x7BD6, 90066 }, - { 0x7BD7, 90001 }, - { 0x7BD8, 90006 }, - { 0x7BD9, 90139 }, - { 0x7BDA, 90144 }, - { 0x7BDB, 90041 }, - { 0x7BDC, 90062 }, - { 0x7BDD, 89991 }, - { 0x7BDE, 90126 }, - { 0x7BDF, 90036 }, - { 0x7BE0, 90057 }, - { 0x7BE1, 89977 }, - { 0x7BE2, 90095 }, - { 0x7BE3, 89995 }, - { 0x7BE4, 89982 }, - { 0x7BE5, 89986 }, - { 0x7BE6, 90130 }, - { 0x7BE7, 90134 }, - { 0x7BE8, 90117 }, - { 0x7BE9, 90121 }, - { 0x7BEA, 90158 }, - { 0x7BEB, 90153 }, - { 0x7BEC, 90172 }, - { 0x7BED, 90227 }, - { 0x7BEE, 90175 }, - { 0x7BEF, 90113 }, - { 0x7BF0, 90109 }, - { 0x7BF1, 90021 }, - { 0x7BF2, 89959 }, - { 0x7BF3, 90100 }, - { 0x7BF4, 90104 }, - { 0x7BF5, 89933 }, - { 0x7BF6, 90314 }, - { 0x7BF7, 90203 }, - { 0x7BF8, 90071 }, - { 0x7BF9, 90242 }, - { 0x7BFA, 89967 }, - { 0x7BFB, 89946 }, - { 0x7BFC, 90194 }, - { 0x7BFD, 90278 }, - { 0x7BFE, 90221 }, - { 0x7BFF, 90185 }, - { 0x7C00, 90302 }, - { 0x7C01, 90330 }, - { 0x7C02, 90298 }, - { 0x7C03, 90254 }, - { 0x7C04, 90239 }, - { 0x7C05, 90162 }, - { 0x7C06, 90188 }, - { 0x7C07, 90236 }, - { 0x7C08, 90165 }, - { 0x7C09, 90258 }, - { 0x7C0A, 90334 }, - { 0x7C0B, 90218 }, - { 0x7C0C, 90286 }, - { 0x7C0D, 90245 }, - { 0x7C0E, 90209 }, - { 0x7C0F, 90206 }, - { 0x7C10, 90224 }, - { 0x7C11, 90233 }, - { 0x7C12, 90230 }, - { 0x7C13, 90248 }, - { 0x7C14, 90251 }, - { 0x7C15, 90274 }, - { 0x7C16, 90270 }, - { 0x7C17, 90266 }, - { 0x7C18, 90262 }, - { 0x7C19, 90322 }, - { 0x7C1A, 90318 }, - { 0x7C1B, 90306 }, - { 0x7C1C, 90290 }, - { 0x7C1D, 90310 }, - { 0x7C1E, 90326 }, - { 0x7C1F, 89884 }, - { 0x7C20, 89836 }, - { 0x7C21, 89889 }, - { 0x7C22, 89826 }, - { 0x7C23, 89831 }, - { 0x7C24, 89879 }, - { 0x7C25, 89908 }, - { 0x7C26, 89921 }, - { 0x7C27, 89912 }, - { 0x7C28, 89904 }, - { 0x7C29, 89894 }, - { 0x7C2A, 89899 }, - { 0x7C2B, 89916 }, - { 0x7C2C, 89858 }, - { 0x7C2D, 89866 }, - { 0x7C2E, 89862 }, - { 0x7C2F, 89849 }, - { 0x7C30, 89841 }, - { 0x7C31, 89871 }, - { 0x7C32, 89845 }, - { 0x7C33, 89854 }, - { 0x7C34, 89875 }, - { 0x7C35, 89801 }, - { 0x7C36, 89813 }, - { 0x7C37, 89809 }, - { 0x7C38, 89792 }, - { 0x7C39, 89784 }, - { 0x7C3A, 89818 }, - { 0x7C3B, 89788 }, - { 0x7C3C, 89797 }, - { 0x7C3D, 89822 }, - { 0x7C3E, 89805 }, - { 0x7C3F, 89779 }, - { 0x7C40, 89926 }, - { 0x7C41, 89930 }, - { 0x7C42, 90338 }, - { 0x7C43, 128198 }, - { 0x7C44, 128202 }, - { 0x7C45, 128194 }, - { 0x7C46, 128190 }, - { 0x7C47, 137740 }, - { 0x7C48, 144889 }, - { 0x7C49, 143935 }, - { 0x7C4A, 144858 }, - { 0x7C4B, 143654 }, - { 0x7C4C, 37257 }, - { 0x7C4D, 40685 }, - { 0x7C4E, 37050 }, - { 0x7C4F, 69878 }, - { 0x7C50, 131699 }, - { 0x7C51, 111417 }, - { 0x7C52, 14862 }, - { 0x7C53, 63822 }, - { 0x7C54, 40488 }, - { 0x7C55, 143931 }, - { 0x7C56, 144854 }, - { 0x7C57, 8064 }, - { 0x7C58, 10518 }, - { 0x7C59, 132218 }, - { 0x7C5A, 131702 }, - { 0x7C5B, 111420 }, - { 0x7C5C, 36628 }, - { 0x7C5D, 36631 }, - { 0x7C5E, 36643 }, - { 0x7C5F, 36647 }, - { 0x7C60, 36634 }, - { 0x7C61, 36637 }, - { 0x7C62, 5676 }, - { 0x7C63, 5669 }, - { 0x7C64, 5158 }, - { 0x7C65, 5202 }, - { 0x7C66, 5825 }, - { 0x7C67, 5804 }, - { 0x7C68, 127971 }, - { 0x7C69, 127974 }, - { 0x7C6A, 128028 }, - { 0x7C6B, 127977 }, - { 0x7C6C, 128031 }, - { 0x7C6D, 128037 }, - { 0x7C6E, 128106 }, - { 0x7C6F, 127980 }, - { 0x7C70, 128034 }, - { 0x7C71, 128040 }, - { 0x7C72, 128109 }, - { 0x7C73, 128043 }, - { 0x7C74, 128112 }, - { 0x7C75, 128115 }, - { 0x7C76, 128163 }, - { 0x7C77, 42706 }, - { 0x7C78, 43044 }, - { 0x7C79, 43055 }, - { 0x7C7A, 42918 }, - { 0x7C7B, 43066 }, - { 0x7C7C, 42702 }, - { 0x7C7D, 42914 }, - { 0x7C7E, 43077 }, - { 0x7C7F, 37227 }, - { 0x7C80, 36831 }, - { 0x7C81, 37062 }, - { 0x7C82, 37238 }, - { 0x7C83, 36835 }, - { 0x7C84, 37205 }, - { 0x7C85, 37216 }, - { 0x7C86, 37066 }, - { 0x7C87, 64943 }, - { 0x7C88, 64940 }, - { 0x7C89, 132101 }, - { 0x7C8A, 89728 }, - { 0x7C8B, 22551 }, - { 0x7C8C, 22554 }, - { 0x7C8D, 80687 }, - { 0x7C8E, 80690 }, - { 0x7C8F, 133897 }, - { 0x7C90, 143487 }, - { 0x7C91, 54959 }, - { 0x7C92, 54963 }, - { 0x7C93, 17935 }, - { 0x7C94, 17939 }, - { 0x7C95, 17919 }, - { 0x7C96, 17923 }, - { 0x7C97, 17915 }, - { 0x7C98, 17911 }, - { 0x7C99, 17930 }, - { 0x7C9A, 17927 }, - { 0x7C9B, 17943 }, - { 0x7C9C, 17946 }, - { 0x7C9D, 143956 }, - { 0x7C9E, 137737 }, - { 0x7C9F, 144879 }, - { 0x7CA0, 143666 }, - { 0x7CA1, 12116 }, - { 0x7CA2, 12144 }, - { 0x7CA3, 12130 }, - { 0x7CA4, 52431 }, - { 0x7CA5, 52459 }, - { 0x7CA6, 52445 }, - { 0x7CA7, 143938 }, - { 0x7CA8, 137728 }, - { 0x7CA9, 144861 }, - { 0x7CAA, 143657 }, - { 0x7CAB, 108875 }, - { 0x7CAC, 143933 }, - { 0x7CAD, 137719 }, - { 0x7CAE, 144856 }, - { 0x7CAF, 143648 }, - { 0x7CB0, 23161 }, - { 0x7CB1, 23164 }, - { 0x7CB2, 21247 }, - { 0x7CB3, 21268 }, - { 0x7CB4, 21261 }, - { 0x7CB5, 21254 }, - { 0x7CB6, 21514 }, - { 0x7CB7, 133873 }, - { 0x7CB8, 128803 }, - { 0x7CB9, 143463 }, - { 0x7CBA, 133189 }, - { 0x7CBB, 133879 }, - { 0x7CBC, 128809 }, - { 0x7CBD, 143469 }, - { 0x7CBE, 133195 }, - { 0x7CBF, 143950 }, - { 0x7CC0, 137731 }, - { 0x7CC1, 144873 }, - { 0x7CC2, 143660 }, - { 0x7CC3, 65501 }, - { 0x7CC4, 65506 }, - { 0x7CC5, 65516 }, - { 0x7CC6, 65511 }, - { 0x7CC7, 81141 }, - { 0x7CC8, 81135 }, - { 0x7CC9, 81144 }, - { 0x7CCA, 81138 }, - { 0x7CCB, 111402 }, - { 0x7CCC, 131686 }, - { 0x7CCD, 43619 }, - { 0x7CCE, 43623 }, - { 0x7CCF, 12239 }, - { 0x7CD0, 65268 }, - { 0x7CD1, 65272 }, - { 0x7CD2, 65263 }, - { 0x7CD3, 65553 }, - { 0x7CD4, 73889 }, - { 0x7CD5, 14566 }, - { 0x7CD6, 73885 }, - { 0x7CD7, 111365 }, - { 0x7CD8, 131643 }, - { 0x7CD9, 133864 }, - { 0x7CDA, 143454 }, - { 0x7CDB, 133866 }, - { 0x7CDC, 143456 }, - { 0x7CDD, 103460 }, - { 0x7CDE, 143953 }, - { 0x7CDF, 137734 }, - { 0x7CE0, 144876 }, - { 0x7CE1, 143663 }, - { 0x7CE2, 131688 }, - { 0x7CE3, 111404 }, - { 0x7CE4, 111410 }, - { 0x7CE5, 143926 }, - { 0x7CE6, 144849 }, - { 0x7CE7, 143959 }, - { 0x7CE8, 144882 }, - { 0x7CE9, 143962 }, - { 0x7CEA, 144885 }, - { 0x7CEB, 14688 }, - { 0x7CEC, 40361 }, - { 0x7CED, 42710 }, - { 0x7CEE, 42922 }, - { 0x7CEF, 42717 }, - { 0x7CF0, 42929 }, - { 0x7CF1, 36885 }, - { 0x7CF2, 37112 }, - { 0x7CF3, 36880 }, - { 0x7CF4, 37107 }, - { 0x7CF5, 36843 }, - { 0x7CF6, 37070 }, - { 0x7CF7, 36895 }, - { 0x7CF8, 37122 }, - { 0x7CF9, 42764 }, - { 0x7CFA, 42976 }, - { 0x7CFB, 36905 }, - { 0x7CFC, 37132 }, - { 0x7CFD, 42768 }, - { 0x7CFE, 42980 }, - { 0x7CFF, 36909 }, - { 0x7D00, 37136 }, - { 0x7D01, 42724 }, - { 0x7D02, 42936 }, - { 0x7D03, 36850 }, - { 0x7D04, 37077 }, - { 0x7D05, 42739 }, - { 0x7D06, 42951 }, - { 0x7D07, 36865 }, - { 0x7D08, 37092 }, - { 0x7D09, 42734 }, - { 0x7D0A, 42946 }, - { 0x7D0B, 36860 }, - { 0x7D0C, 37087 }, - { 0x7D0D, 42744 }, - { 0x7D0E, 42956 }, - { 0x7D0F, 36870 }, - { 0x7D10, 37097 }, - { 0x7D11, 42749 }, - { 0x7D12, 42961 }, - { 0x7D13, 36875 }, - { 0x7D14, 37102 }, - { 0x7D15, 42729 }, - { 0x7D16, 42941 }, - { 0x7D17, 36855 }, - { 0x7D18, 37082 }, - { 0x7D19, 42759 }, - { 0x7D1A, 42971 }, - { 0x7D1B, 36900 }, - { 0x7D1C, 37127 }, - { 0x7D1D, 109715 }, - { 0x7D1E, 109720 }, - { 0x7D1F, 109725 }, - { 0x7D20, 109730 }, - { 0x7D21, 109735 }, - { 0x7D22, 109740 }, - { 0x7D23, 109745 }, - { 0x7D24, 109750 }, - { 0x7D25, 109755 }, - { 0x7D26, 109760 }, - { 0x7D27, 109765 }, - { 0x7D28, 109770 }, - { 0x7D29, 109775 }, - { 0x7D2A, 109780 }, - { 0x7D2B, 109785 }, - { 0x7D2C, 109790 }, - { 0x7D2D, 109795 }, - { 0x7D2E, 109800 }, - { 0x7D2F, 109805 }, - { 0x7D30, 109810 }, - { 0x7D31, 109815 }, - { 0x7D32, 109820 }, - { 0x7D33, 109825 }, - { 0x7D34, 109830 }, - { 0x7D35, 109835 }, - { 0x7D36, 109840 }, - { 0x7D37, 109697 }, - { 0x7D38, 109679 }, - { 0x7D39, 109685 }, - { 0x7D3A, 109706 }, - { 0x7D3B, 109691 }, - { 0x7D3C, 109688 }, - { 0x7D3D, 109682 }, - { 0x7D3E, 109703 }, - { 0x7D3F, 109700 }, - { 0x7D40, 109694 }, - { 0x7D41, 21707 }, - { 0x7D42, 21725 }, - { 0x7D43, 21767 }, - { 0x7D44, 21709 }, - { 0x7D45, 21715 }, - { 0x7D46, 21769 }, - { 0x7D47, 21735 }, - { 0x7D48, 21779 }, - { 0x7D49, 21809 }, - { 0x7D4A, 21711 }, - { 0x7D4B, 21717 }, - { 0x7D4C, 21727 }, - { 0x7D4D, 21771 }, - { 0x7D4E, 21781 }, - { 0x7D4F, 21811 }, - { 0x7D50, 21909 }, - { 0x7D51, 21743 }, - { 0x7D52, 21789 }, - { 0x7D53, 21819 }, - { 0x7D54, 21917 }, - { 0x7D55, 21839 }, - { 0x7D56, 21937 }, - { 0x7D57, 21973 }, - { 0x7D58, 22073 }, - { 0x7D59, 21713 }, - { 0x7D5A, 21719 }, - { 0x7D5B, 21729 }, - { 0x7D5C, 21773 }, - { 0x7D5D, 21737 }, - { 0x7D5E, 21783 }, - { 0x7D5F, 21813 }, - { 0x7D60, 21911 }, - { 0x7D61, 21791 }, - { 0x7D62, 21821 }, - { 0x7D63, 21919 }, - { 0x7D64, 21841 }, - { 0x7D65, 21939 }, - { 0x7D66, 21975 }, - { 0x7D67, 22075 }, - { 0x7D68, 21749 }, - { 0x7D69, 21797 }, - { 0x7D6A, 21827 }, - { 0x7D6B, 21925 }, - { 0x7D6C, 21847 }, - { 0x7D6D, 21945 }, - { 0x7D6E, 21981 }, - { 0x7D6F, 22081 }, - { 0x7D70, 21859 }, - { 0x7D71, 21953 }, - { 0x7D72, 21993 }, - { 0x7D73, 22093 }, - { 0x7D74, 22009 }, - { 0x7D75, 22113 }, - { 0x7D76, 22143 }, - { 0x7D77, 21721 }, - { 0x7D78, 21731 }, - { 0x7D79, 21775 }, - { 0x7D7A, 21739 }, - { 0x7D7B, 21785 }, - { 0x7D7C, 21815 }, - { 0x7D7D, 21913 }, - { 0x7D7E, 21745 }, - { 0x7D7F, 21793 }, - { 0x7D80, 21823 }, - { 0x7D81, 21921 }, - { 0x7D82, 21843 }, - { 0x7D83, 21941 }, - { 0x7D84, 21977 }, - { 0x7D85, 22077 }, - { 0x7D86, 21799 }, - { 0x7D87, 21829 }, - { 0x7D88, 21927 }, - { 0x7D89, 21849 }, - { 0x7D8A, 21983 }, - { 0x7D8B, 22083 }, - { 0x7D8C, 21861 }, - { 0x7D8D, 21955 }, - { 0x7D8E, 22095 }, - { 0x7D8F, 22011 }, - { 0x7D90, 22115 }, - { 0x7D91, 22145 }, - { 0x7D92, 21753 }, - { 0x7D93, 21803 }, - { 0x7D94, 21833 }, - { 0x7D95, 21931 }, - { 0x7D96, 21853 }, - { 0x7D97, 21949 }, - { 0x7D98, 21987 }, - { 0x7D99, 22087 }, - { 0x7D9A, 21865 }, - { 0x7D9B, 21959 }, - { 0x7D9C, 21997 }, - { 0x7D9D, 22099 }, - { 0x7D9E, 22015 }, - { 0x7D9F, 22119 }, - { 0x7DA0, 22149 }, - { 0x7DA1, 22217 }, - { 0x7DA2, 21871 }, - { 0x7DA3, 21965 }, - { 0x7DA4, 22001 }, - { 0x7DA5, 22105 }, - { 0x7DA6, 22021 }, - { 0x7DA7, 22125 }, - { 0x7DA8, 22155 }, - { 0x7DA9, 22221 }, - { 0x7DAA, 22029 }, - { 0x7DAB, 22133 }, - { 0x7DAC, 22163 }, - { 0x7DAD, 22229 }, - { 0x7DAE, 22173 }, - { 0x7DAF, 22239 }, - { 0x7DB0, 22249 }, - { 0x7DB1, 22271 }, - { 0x7DB2, 21723 }, - { 0x7DB3, 21733 }, - { 0x7DB4, 21777 }, - { 0x7DB5, 21741 }, - { 0x7DB6, 21787 }, - { 0x7DB7, 21817 }, - { 0x7DB8, 21915 }, - { 0x7DB9, 21747 }, - { 0x7DBA, 21795 }, - { 0x7DBB, 21825 }, - { 0x7DBC, 21923 }, - { 0x7DBD, 21845 }, - { 0x7DBE, 21943 }, - { 0x7DBF, 21979 }, - { 0x7DC0, 22079 }, - { 0x7DC1, 21751 }, - { 0x7DC2, 21801 }, - { 0x7DC3, 21831 }, - { 0x7DC4, 21929 }, - { 0x7DC5, 21851 }, - { 0x7DC6, 21947 }, - { 0x7DC7, 21985 }, - { 0x7DC8, 22085 }, - { 0x7DC9, 21863 }, - { 0x7DCA, 21957 }, - { 0x7DCB, 21995 }, - { 0x7DCC, 22097 }, - { 0x7DCD, 22013 }, - { 0x7DCE, 22117 }, - { 0x7DCF, 22147 }, - { 0x7DD0, 22215 }, - { 0x7DD1, 21805 }, - { 0x7DD2, 21835 }, - { 0x7DD3, 21933 }, - { 0x7DD4, 21855 }, - { 0x7DD5, 21989 }, - { 0x7DD6, 22089 }, - { 0x7DD7, 21867 }, - { 0x7DD8, 21961 }, - { 0x7DD9, 22101 }, - { 0x7DDA, 22017 }, - { 0x7DDB, 22121 }, - { 0x7DDC, 22151 }, - { 0x7DDD, 21873 }, - { 0x7DDE, 21967 }, - { 0x7DDF, 22003 }, - { 0x7DE0, 22107 }, - { 0x7DE1, 22023 }, - { 0x7DE2, 22127 }, - { 0x7DE3, 22157 }, - { 0x7DE4, 22223 }, - { 0x7DE5, 22031 }, - { 0x7DE6, 22135 }, - { 0x7DE7, 22165 }, - { 0x7DE8, 22231 }, - { 0x7DE9, 22175 }, - { 0x7DEA, 22241 }, - { 0x7DEB, 22251 }, - { 0x7DEC, 22273 }, - { 0x7DED, 21807 }, - { 0x7DEE, 21837 }, - { 0x7DEF, 21935 }, - { 0x7DF0, 21857 }, - { 0x7DF1, 21951 }, - { 0x7DF2, 21991 }, - { 0x7DF3, 22091 }, - { 0x7DF4, 21869 }, - { 0x7DF5, 21963 }, - { 0x7DF6, 21999 }, - { 0x7DF7, 22103 }, - { 0x7DF8, 22019 }, - { 0x7DF9, 22123 }, - { 0x7DFA, 22153 }, - { 0x7DFB, 22219 }, - { 0x7DFC, 21875 }, - { 0x7DFD, 21969 }, - { 0x7DFE, 22005 }, - { 0x7DFF, 22109 }, - { 0x7E00, 22025 }, - { 0x7E01, 22129 }, - { 0x7E02, 22159 }, - { 0x7E03, 22225 }, - { 0x7E04, 22033 }, - { 0x7E05, 22137 }, - { 0x7E06, 22167 }, - { 0x7E07, 22233 }, - { 0x7E08, 22177 }, - { 0x7E09, 22243 }, - { 0x7E0A, 22253 }, - { 0x7E0B, 22275 }, - { 0x7E0C, 21877 }, - { 0x7E0D, 21971 }, - { 0x7E0E, 22007 }, - { 0x7E0F, 22111 }, - { 0x7E10, 22027 }, - { 0x7E11, 22131 }, - { 0x7E12, 22161 }, - { 0x7E13, 22227 }, - { 0x7E14, 22035 }, - { 0x7E15, 22139 }, - { 0x7E16, 22169 }, - { 0x7E17, 22235 }, - { 0x7E18, 22179 }, - { 0x7E19, 22245 }, - { 0x7E1A, 22255 }, - { 0x7E1B, 22277 }, - { 0x7E1C, 22141 }, - { 0x7E1D, 22171 }, - { 0x7E1E, 22237 }, - { 0x7E1F, 22181 }, - { 0x7E20, 22257 }, - { 0x7E21, 22279 }, - { 0x7E22, 22183 }, - { 0x7E23, 22247 }, - { 0x7E24, 22281 }, - { 0x7E25, 22283 }, - { 0x7E26, 22285 }, - { 0x7E27, 12112 }, - { 0x7E28, 52427 }, - { 0x7E29, 12134 }, - { 0x7E2A, 52449 }, - { 0x7E2B, 12139 }, - { 0x7E2C, 52454 }, - { 0x7E2D, 12120 }, - { 0x7E2E, 52435 }, - { 0x7E2F, 12125 }, - { 0x7E30, 52440 }, - { 0x7E31, 12148 }, - { 0x7E32, 52463 }, - { 0x7E33, 52468 }, - { 0x7E34, 52473 }, - { 0x7E35, 52478 }, - { 0x7E36, 16186 }, - { 0x7E37, 12099 }, - { 0x7E38, 12104 }, - { 0x7E39, 143669 }, - { 0x7E3A, 143966 }, - { 0x7E3B, 41468 }, - { 0x7E3C, 137717 }, - { 0x7E3D, 143646 }, - { 0x7E3E, 124387 }, - { 0x7E3F, 124389 }, - { 0x7E40, 124391 }, - { 0x7E41, 40327 }, - { 0x7E42, 36664 }, - { 0x7E43, 124384 }, - { 0x7E44, 42529 }, - { 0x7E45, 36680 }, - { 0x7E46, 26773 }, - { 0x7E47, 43881 }, - { 0x7E48, 12159 }, - { 0x7E49, 54981 }, - { 0x7E4A, 5792 }, - { 0x7E4B, 5813 }, - { 0x7E4C, 14658 }, - { 0x7E4D, 40357 }, - { 0x7E4E, 14699 }, - { 0x7E4F, 40372 }, - { 0x7E50, 131649 }, - { 0x7E51, 14717 }, - { 0x7E52, 40381 }, - { 0x7E53, 131654 }, - { 0x7E54, 36703 }, - { 0x7E55, 42561 }, - { 0x7E56, 111371 }, - { 0x7E57, 5614 }, - { 0x7E58, 5640 }, - { 0x7E59, 5607 }, - { 0x7E5A, 5633 }, - { 0x7E5B, 28577 }, - { 0x7E5C, 28583 }, - { 0x7E5D, 28613 }, - { 0x7E5E, 28589 }, - { 0x7E5F, 28425 }, - { 0x7E60, 28685 }, - { 0x7E61, 28689 }, - { 0x7E62, 28561 }, - { 0x7E63, 28703 }, - { 0x7E64, 28555 }, - { 0x7E65, 28595 }, - { 0x7E66, 28544 }, - { 0x7E67, 28607 }, - { 0x7E68, 28601 }, - { 0x7E69, 28448 }, - { 0x7E6A, 28430 }, - { 0x7E6B, 28736 }, - { 0x7E6C, 28730 }, - { 0x7E6D, 28709 }, - { 0x7E6E, 28549 }, - { 0x7E6F, 28477 }, - { 0x7E70, 28618 }, - { 0x7E71, 28461 }, - { 0x7E72, 28569 }, - { 0x7E73, 28624 }, - { 0x7E74, 28630 }, - { 0x7E75, 28636 }, - { 0x7E76, 28644 }, - { 0x7E77, 28441 }, - { 0x7E78, 28504 }, - { 0x7E79, 28721 }, - { 0x7E7A, 28434 }, - { 0x7E7B, 28455 }, - { 0x7E7C, 28715 }, - { 0x7E7D, 28539 }, - { 0x7E7E, 28492 }, - { 0x7E7F, 28486 }, - { 0x7E80, 28498 }, - { 0x7E81, 28696 }, - { 0x7E82, 28663 }, - { 0x7E83, 28469 }, - { 0x7E84, 28513 }, - { 0x7E85, 28527 }, - { 0x7E86, 28519 }, - { 0x7E87, 28533 }, - { 0x7E88, 28681 }, - { 0x7E89, 28753 }, - { 0x7E8A, 28659 }, - { 0x7E8B, 28677 }, - { 0x7E8C, 28745 }, - { 0x7E8D, 28749 }, - { 0x7E8E, 28655 }, - { 0x7E8F, 28673 }, - { 0x7E90, 28651 }, - { 0x7E91, 28669 }, - { 0x7E92, 127953 }, - { 0x7E93, 127956 }, - { 0x7E94, 127983 }, - { 0x7E95, 127959 }, - { 0x7E96, 127986 }, - { 0x7E97, 127998 }, - { 0x7E98, 128046 }, - { 0x7E99, 127962 }, - { 0x7E9A, 127989 }, - { 0x7E9B, 128001 }, - { 0x7E9C, 128049 }, - { 0x7E9D, 128010 }, - { 0x7E9E, 128058 }, - { 0x7E9F, 128076 }, - { 0x7EA0, 128118 }, - { 0x7EA1, 127965 }, - { 0x7EA2, 127992 }, - { 0x7EA3, 128004 }, - { 0x7EA4, 128052 }, - { 0x7EA5, 128013 }, - { 0x7EA6, 128061 }, - { 0x7EA7, 128079 }, - { 0x7EA8, 128121 }, - { 0x7EA9, 128019 }, - { 0x7EAA, 128067 }, - { 0x7EAB, 128085 }, - { 0x7EAC, 128127 }, - { 0x7EAD, 128094 }, - { 0x7EAE, 128136 }, - { 0x7EAF, 128148 }, - { 0x7EB0, 128166 }, - { 0x7EB1, 127968 }, - { 0x7EB2, 127995 }, - { 0x7EB3, 128007 }, - { 0x7EB4, 128055 }, - { 0x7EB5, 128016 }, - { 0x7EB6, 128064 }, - { 0x7EB7, 128082 }, - { 0x7EB8, 128124 }, - { 0x7EB9, 128022 }, - { 0x7EBA, 128070 }, - { 0x7EBB, 128088 }, - { 0x7EBC, 128130 }, - { 0x7EBD, 128097 }, - { 0x7EBE, 128139 }, - { 0x7EBF, 128151 }, - { 0x7EC0, 128169 }, - { 0x7EC1, 128025 }, - { 0x7EC2, 128073 }, - { 0x7EC3, 128091 }, - { 0x7EC4, 128133 }, - { 0x7EC5, 128100 }, - { 0x7EC6, 128142 }, - { 0x7EC7, 128154 }, - { 0x7EC8, 128172 }, - { 0x7EC9, 128103 }, - { 0x7ECA, 128145 }, - { 0x7ECB, 128157 }, - { 0x7ECC, 128175 }, - { 0x7ECD, 128160 }, - { 0x7ECE, 128178 }, - { 0x7ECF, 128181 }, - { 0x7ED0, 128184 }, - { 0x7ED1, 42583 }, - { 0x7ED2, 43038 }, - { 0x7ED3, 43049 }, - { 0x7ED4, 42797 }, - { 0x7ED5, 43060 }, - { 0x7ED6, 43082 }, - { 0x7ED7, 43089 }, - { 0x7ED8, 43071 }, - { 0x7ED9, 37221 }, - { 0x7EDA, 37243 }, - { 0x7EDB, 37250 }, - { 0x7EDC, 37232 }, - { 0x7EDD, 36711 }, - { 0x7EDE, 37199 }, - { 0x7EDF, 37210 }, - { 0x7EE0, 36936 }, - { 0x7EE1, 40345 }, - { 0x7EE2, 40499 }, - { 0x7EE3, 14873 }, - { 0x7EE4, 14646 }, - { 0x7EE5, 36671 }, - { 0x7EE6, 37176 }, - { 0x7EE7, 43015 }, - { 0x7EE8, 42511 }, - { 0x7EE9, 14652 }, - { 0x7EEA, 14880 }, - { 0x7EEB, 40506 }, - { 0x7EEC, 40351 }, - { 0x7EED, 42534 }, - { 0x7EEE, 43026 }, - { 0x7EEF, 37187 }, - { 0x7EF0, 36685 }, - { 0x7EF1, 131691 }, - { 0x7EF2, 74221 }, - { 0x7EF3, 9608 }, - { 0x7EF4, 21295 }, - { 0x7EF5, 112435 }, - { 0x7EF6, 112301 }, - { 0x7EF7, 112343 }, - { 0x7EF8, 112453 }, - { 0x7EF9, 112317 }, - { 0x7EFA, 112368 }, - { 0x7EFB, 112263 }, - { 0x7EFC, 112498 }, - { 0x7EFD, 112410 }, - { 0x7EFE, 112245 }, - { 0x7EFF, 112482 }, - { 0x7F00, 112394 }, - { 0x7F01, 112444 }, - { 0x7F02, 112309 }, - { 0x7F03, 112349 }, - { 0x7F04, 112460 }, - { 0x7F05, 112323 }, - { 0x7F06, 112374 }, - { 0x7F07, 112270 }, - { 0x7F08, 112504 }, - { 0x7F09, 112416 }, - { 0x7F0A, 112254 }, - { 0x7F0B, 112490 }, - { 0x7F0C, 112402 }, - { 0x7F0D, 112337 }, - { 0x7F0E, 112238 }, - { 0x7F0F, 112519 }, - { 0x7F10, 112476 }, - { 0x7F11, 112510 }, - { 0x7F12, 112388 }, - { 0x7F13, 112277 }, - { 0x7F14, 112467 }, - { 0x7F15, 112283 }, - { 0x7F16, 112234 }, - { 0x7F17, 112329 }, - { 0x7F18, 112525 }, - { 0x7F19, 112422 }, - { 0x7F1A, 112384 }, - { 0x7F1B, 112542 }, - { 0x7F1C, 112297 }, - { 0x7F1D, 112472 }, - { 0x7F1E, 112364 }, - { 0x7F1F, 112355 }, - { 0x7F20, 112333 }, - { 0x7F21, 112515 }, - { 0x7F22, 112291 }, - { 0x7F23, 112582 }, - { 0x7F24, 112576 }, - { 0x7F25, 112588 }, - { 0x7F26, 112546 }, - { 0x7F27, 112565 }, - { 0x7F28, 112533 }, - { 0x7F29, 112554 }, - { 0x7F2A, 112558 }, - { 0x7F2B, 112426 }, - { 0x7F2C, 112430 }, - { 0x7F2D, 112529 }, - { 0x7F2E, 112537 }, - { 0x7F2F, 112380 }, - { 0x7F30, 112550 }, - { 0x7F31, 112594 }, - { 0x7F32, 112359 }, - { 0x7F33, 112287 }, - { 0x7F34, 112570 }, - { 0x7F35, 112221 }, - { 0x7F36, 112225 }, - { 0x7F37, 112229 }, - { 0x7F38, 112217 }, - { 0x7F39, 112213 }, - { 0x7F3A, 111727 }, - { 0x7F3B, 111730 }, - { 0x7F3C, 112043 }, - { 0x7F3D, 111710 }, - { 0x7F3E, 111773 }, - { 0x7F3F, 112100 }, - { 0x7F40, 112050 }, - { 0x7F41, 112053 }, - { 0x7F42, 112123 }, - { 0x7F43, 112126 }, - { 0x7F44, 112058 }, - { 0x7F45, 112200 }, - { 0x7F46, 111766 }, - { 0x7F47, 112197 }, - { 0x7F48, 112103 }, - { 0x7F49, 112107 }, - { 0x7F4A, 112115 }, - { 0x7F4B, 112111 }, - { 0x7F4C, 112119 }, - { 0x7F4D, 112064 }, - { 0x7F4E, 112072 }, - { 0x7F4F, 112068 }, - { 0x7F50, 112096 }, - { 0x7F51, 112076 }, - { 0x7F52, 112086 }, - { 0x7F53, 112081 }, - { 0x7F54, 112091 }, - { 0x7F55, 111769 }, - { 0x7F56, 112046 }, - { 0x7F57, 112040 }, - { 0x7F58, 112031 }, - { 0x7F59, 112028 }, - { 0x7F5A, 112203 }, - { 0x7F5B, 112138 }, - { 0x7F5C, 112134 }, - { 0x7F5D, 112152 }, - { 0x7F5E, 112130 }, - { 0x7F5F, 112209 }, - { 0x7F60, 112147 }, - { 0x7F61, 112176 }, - { 0x7F62, 112142 }, - { 0x7F63, 112156 }, - { 0x7F64, 112161 }, - { 0x7F65, 112171 }, - { 0x7F66, 112166 }, - { 0x7F67, 112180 }, - { 0x7F68, 112188 }, - { 0x7F69, 112193 }, - { 0x7F6A, 112183 }, - { 0x7F6B, 111734 }, - { 0x7F6C, 111715 }, - { 0x7F6D, 111721 }, - { 0x7F6E, 111776 }, - { 0x7F6F, 112037 }, - { 0x7F70, 111801 }, - { 0x7F71, 111827 }, - { 0x7F72, 111815 }, - { 0x7F73, 111832 }, - { 0x7F74, 111820 }, - { 0x7F75, 111846 }, - { 0x7F76, 111850 }, - { 0x7F77, 111804 }, - { 0x7F78, 111809 }, - { 0x7F79, 111839 }, - { 0x7F7A, 112206 }, - { 0x7F7B, 111856 }, - { 0x7F7C, 111876 }, - { 0x7F7D, 111978 }, - { 0x7F7E, 111943 }, - { 0x7F7F, 111956 }, - { 0x7F80, 111880 }, - { 0x7F81, 111982 }, - { 0x7F82, 112007 }, - { 0x7F83, 112024 }, - { 0x7F84, 111860 }, - { 0x7F85, 111947 }, - { 0x7F86, 112020 }, - { 0x7F87, 112011 }, - { 0x7F88, 111951 }, - { 0x7F89, 112015 }, - { 0x7F8A, 111869 }, - { 0x7F8B, 111971 }, - { 0x7F8C, 111865 }, - { 0x7F8D, 111960 }, - { 0x7F8E, 111964 }, - { 0x7F8F, 111990 }, - { 0x7F90, 111994 }, - { 0x7F91, 111779 }, - { 0x7F92, 111782 }, - { 0x7F93, 111786 }, - { 0x7F94, 111790 }, - { 0x7F95, 111794 }, - { 0x7F96, 111986 }, - { 0x7F97, 111999 }, - { 0x7F98, 112003 }, - { 0x7F99, 111740 }, - { 0x7F9A, 111743 }, - { 0x7F9B, 111762 }, - { 0x7F9C, 111747 }, - { 0x7F9D, 111752 }, - { 0x7F9E, 111757 }, - { 0x7F9F, 111884 }, - { 0x7FA0, 111906 }, - { 0x7FA1, 111898 }, - { 0x7FA2, 111924 }, - { 0x7FA3, 111893 }, - { 0x7FA4, 111911 }, - { 0x7FA5, 111916 }, - { 0x7FA6, 111932 }, - { 0x7FA7, 111937 }, - { 0x7FA8, 111888 }, - { 0x7FA9, 112034 }, - { 0x7FAA, 111798 }, - { 0x7FAB, 111718 }, - { 0x7FAC, 111737 }, - { 0x7FAD, 111724 }, - { 0x7FAE, 114848 }, - { 0x7FAF, 114882 }, - { 0x7FB0, 115875 }, - { 0x7FB1, 114843 }, - { 0x7FB2, 114838 }, - { 0x7FB3, 115219 }, - { 0x7FB4, 115214 }, - { 0x7FB5, 115514 }, - { 0x7FB6, 115780 }, - { 0x7FB7, 115861 }, - { 0x7FB8, 115788 }, - { 0x7FB9, 115792 }, - { 0x7FBA, 115531 }, - { 0x7FBB, 114796 }, - { 0x7FBC, 114705 }, - { 0x7FBD, 115201 }, - { 0x7FBE, 115730 }, - { 0x7FBF, 115813 }, - { 0x7FC0, 115822 }, - { 0x7FC1, 115406 }, - { 0x7FC2, 114869 }, - { 0x7FC3, 115160 }, - { 0x7FC4, 115078 }, - { 0x7FC5, 115184 }, - { 0x7FC6, 115441 }, - { 0x7FC7, 114873 }, - { 0x7FC8, 114719 }, - { 0x7FC9, 115337 }, - { 0x7FCA, 115752 }, - { 0x7FCB, 115629 }, - { 0x7FCC, 115616 }, - { 0x7FCD, 115385 }, - { 0x7FCE, 115169 }, - { 0x7FCF, 115418 }, - { 0x7FD0, 115432 }, - { 0x7FD1, 115437 }, - { 0x7FD2, 115106 }, - { 0x7FD3, 114852 }, - { 0x7FD4, 115179 }, - { 0x7FD5, 115414 }, - { 0x7FD6, 115889 }, - { 0x7FD7, 115188 }, - { 0x7FD8, 115401 }, - { 0x7FD9, 115395 }, - { 0x7FDA, 115766 }, - { 0x7FDB, 114860 }, - { 0x7FDC, 114829 }, - { 0x7FDD, 114701 }, - { 0x7FDE, 114734 }, - { 0x7FDF, 115410 }, - { 0x7FE0, 115757 }, - { 0x7FE1, 114790 }, - { 0x7FE2, 114994 }, - { 0x7FE3, 115722 }, - { 0x7FE4, 115693 }, - { 0x7FE5, 115101 }, - { 0x7FE6, 115620 }, - { 0x7FE7, 115771 }, - { 0x7FE8, 115518 }, - { 0x7FE9, 115450 }, - { 0x7FEA, 115377 }, - { 0x7FEB, 115856 }, - { 0x7FEC, 115870 }, - { 0x7FED, 115315 }, - { 0x7FEE, 114724 }, - { 0x7FEF, 115369 }, - { 0x7FF0, 115522 }, - { 0x7FF1, 115688 }, - { 0x7FF2, 115897 }, - { 0x7FF3, 115893 }, - { 0x7FF4, 114714 }, - { 0x7FF5, 115155 }, - { 0x7FF6, 114833 }, - { 0x7FF7, 115373 }, - { 0x7FF8, 115527 }, - { 0x7FF9, 115929 }, - { 0x7FFA, 115921 }, - { 0x7FFB, 115624 }, - { 0x7FFC, 115734 }, - { 0x7FFD, 115319 }, - { 0x7FFE, 115257 }, - { 0x7FFF, 115817 }, - { 0x8000, 115807 }, - { 0x8001, 115423 }, - { 0x8002, 115925 }, - { 0x8003, 115304 }, - { 0x8004, 115296 }, - { 0x8005, 115150 }, - { 0x8006, 115209 }, - { 0x8007, 115174 }, - { 0x8008, 115775 }, - { 0x8009, 115165 }, - { 0x800A, 115797 }, - { 0x800B, 115365 }, - { 0x800C, 115865 }, - { 0x800D, 115851 }, - { 0x800E, 114924 }, - { 0x800F, 115361 }, - { 0x8010, 115917 }, - { 0x8011, 115683 }, - { 0x8012, 115827 }, - { 0x8013, 115390 }, - { 0x8014, 114856 }, - { 0x8015, 115445 }, - { 0x8016, 115506 }, - { 0x8017, 115192 }, - { 0x8018, 114877 }, - { 0x8019, 115941 }, - { 0x801A, 115933 }, - { 0x801B, 115909 }, - { 0x801C, 115945 }, - { 0x801D, 115949 }, - { 0x801E, 115913 }, - { 0x801F, 115937 }, - { 0x8020, 115905 }, - { 0x8021, 115901 }, - { 0x8022, 114929 }, - { 0x8023, 115761 }, - { 0x8024, 115879 }, - { 0x8025, 115884 }, - { 0x8026, 114864 }, - { 0x8027, 114728 }, - { 0x8028, 115726 }, - { 0x8029, 115703 }, - { 0x802A, 114743 }, - { 0x802B, 114738 }, - { 0x802C, 115381 }, - { 0x802D, 115110 }, - { 0x802E, 114824 }, - { 0x802F, 115356 }, - { 0x8030, 115351 }, - { 0x8031, 115346 }, - { 0x8032, 115427 }, - { 0x8033, 114710 }, - { 0x8034, 114820 }, - { 0x8035, 115205 }, - { 0x8036, 115679 }, - { 0x8037, 115342 }, - { 0x8038, 115126 }, - { 0x8039, 115120 }, - { 0x803A, 115132 }, - { 0x803B, 115144 }, - { 0x803C, 115138 }, - { 0x803D, 115066 }, - { 0x803E, 115089 }, - { 0x803F, 115083 }, - { 0x8040, 115477 }, - { 0x8041, 115494 }, - { 0x8042, 115487 }, - { 0x8043, 115481 }, - { 0x8044, 115784 }, - { 0x8045, 114801 }, - { 0x8046, 115843 }, - { 0x8047, 115300 }, - { 0x8048, 114758 }, - { 0x8049, 114780 }, - { 0x804A, 114748 }, - { 0x804B, 114775 }, - { 0x804C, 114753 }, - { 0x804D, 114770 }, - { 0x804E, 114785 }, - { 0x804F, 114764 }, - { 0x8050, 115555 }, - { 0x8051, 115535 }, - { 0x8052, 115586 }, - { 0x8053, 115542 }, - { 0x8054, 115561 }, - { 0x8055, 115605 }, - { 0x8056, 115592 }, - { 0x8057, 115598 }, - { 0x8058, 115567 }, - { 0x8059, 115573 }, - { 0x805A, 115095 }, - { 0x805B, 115801 }, - { 0x805C, 115717 }, - { 0x805D, 115712 }, - { 0x805E, 115707 }, - { 0x805F, 115549 }, - { 0x8060, 115610 }, - { 0x8061, 115579 }, - { 0x8062, 115831 }, - { 0x8063, 115837 }, - { 0x8064, 115308 }, - { 0x8065, 115510 }, - { 0x8066, 115847 }, - { 0x8067, 114999 }, - { 0x8068, 115032 }, - { 0x8069, 115044 }, - { 0x806A, 114948 }, - { 0x806B, 115006 }, - { 0x806C, 114987 }, - { 0x806D, 115012 }, - { 0x806E, 115038 }, - { 0x806F, 115025 }, - { 0x8070, 115018 }, - { 0x8071, 114959 }, - { 0x8072, 114966 }, - { 0x8073, 114934 }, - { 0x8074, 114980 }, - { 0x8075, 114954 }, - { 0x8076, 114805 }, - { 0x8077, 114810 }, - { 0x8078, 114815 }, - { 0x8079, 114941 }, - { 0x807A, 115050 }, - { 0x807B, 115252 }, - { 0x807C, 114914 }, - { 0x807D, 114919 }, - { 0x807E, 114886 }, - { 0x807F, 114907 }, - { 0x8080, 114893 }, - { 0x8081, 114900 }, - { 0x8082, 115224 }, - { 0x8083, 115245 }, - { 0x8084, 115231 }, - { 0x8085, 115238 }, - { 0x8086, 115056 }, - { 0x8087, 115061 }, - { 0x8088, 115455 }, - { 0x8089, 115461 }, - { 0x808A, 115467 }, - { 0x808B, 115472 }, - { 0x808C, 115656 }, - { 0x808D, 115661 }, - { 0x808E, 115667 }, - { 0x808F, 115673 }, - { 0x8090, 115633 }, - { 0x8091, 115638 }, - { 0x8092, 115644 }, - { 0x8093, 115650 }, - { 0x8094, 115501 }, - { 0x8095, 115698 }, - { 0x8096, 115197 }, - { 0x8097, 115281 }, - { 0x8098, 115291 }, - { 0x8099, 115266 }, - { 0x809A, 115261 }, - { 0x809B, 115271 }, - { 0x809C, 115286 }, - { 0x809D, 115276 }, - { 0x809E, 115746 }, - { 0x809F, 115331 }, - { 0x80A0, 115740 }, - { 0x80A1, 115325 }, - { 0x80A2, 115115 }, - { 0x80A3, 115072 }, - { 0x80A4, 75792 }, - { 0x80A5, 75690 }, - { 0x80A6, 75567 }, - { 0x80A7, 75925 }, - { 0x80A8, 75674 }, - { 0x80A9, 75636 }, - { 0x80AA, 75497 }, - { 0x80AB, 75620 }, - { 0x80AC, 75788 }, - { 0x80AD, 75409 }, - { 0x80AE, 75398 }, - { 0x80AF, 75625 }, - { 0x80B0, 75450 }, - { 0x80B1, 76006 }, - { 0x80B2, 76010 }, - { 0x80B3, 76014 }, - { 0x80B4, 75889 }, - { 0x80B5, 75892 }, - { 0x80B6, 75651 }, - { 0x80B7, 75876 }, - { 0x80B8, 75558 }, - { 0x80B9, 75873 }, - { 0x80BA, 75958 }, - { 0x80BB, 76091 }, - { 0x80BC, 76309 }, - { 0x80BD, 76229 }, - { 0x80BE, 76225 }, - { 0x80BF, 76018 }, - { 0x80C0, 76305 }, - { 0x80C1, 76316 }, - { 0x80C2, 75375 }, - { 0x80C3, 75379 }, - { 0x80C4, 75385 }, - { 0x80C5, 75355 }, - { 0x80C6, 75359 }, - { 0x80C7, 75363 }, - { 0x80C8, 75369 }, - { 0x80C9, 75460 }, - { 0x80CA, 75464 }, - { 0x80CB, 75949 }, - { 0x80CC, 75686 }, - { 0x80CD, 75682 }, - { 0x80CE, 75468 }, - { 0x80CF, 75472 }, - { 0x80D0, 75896 }, - { 0x80D1, 75900 }, - { 0x80D2, 75628 }, - { 0x80D3, 75632 }, - { 0x80D4, 75920 }, - { 0x80D5, 75915 }, - { 0x80D6, 75670 }, - { 0x80D7, 75405 }, - { 0x80D8, 75780 }, - { 0x80D9, 75784 }, - { 0x80DA, 76333 }, - { 0x80DB, 76337 }, - { 0x80DC, 75604 }, - { 0x80DD, 75647 }, - { 0x80DE, 75488 }, - { 0x80DF, 75911 }, - { 0x80E0, 75698 }, - { 0x80E1, 76269 }, - { 0x80E2, 76353 }, - { 0x80E3, 76345 }, - { 0x80E4, 75440 }, - { 0x80E5, 75391 }, - { 0x80E6, 75516 }, - { 0x80E7, 75662 }, - { 0x80E8, 75805 }, - { 0x80E9, 75800 }, - { 0x80EA, 76049 }, - { 0x80EB, 76029 }, - { 0x80EC, 76073 }, - { 0x80ED, 76067 }, - { 0x80EE, 76085 }, - { 0x80EF, 76079 }, - { 0x80F0, 76061 }, - { 0x80F1, 76055 }, - { 0x80F2, 76042 }, - { 0x80F3, 76035 }, - { 0x80F4, 75507 }, - { 0x80F5, 75502 }, - { 0x80F6, 76363 }, - { 0x80F7, 76357 }, - { 0x80F8, 76326 }, - { 0x80F9, 75534 }, - { 0x80FA, 75954 }, - { 0x80FB, 75512 }, - { 0x80FC, 75884 }, - { 0x80FD, 75879 }, - { 0x80FE, 75561 }, - { 0x80FF, 75643 }, - { 0x8100, 75484 }, - { 0x8101, 75907 }, - { 0x8102, 75694 }, - { 0x8103, 76265 }, - { 0x8104, 76349 }, - { 0x8105, 76341 }, - { 0x8106, 75434 }, - { 0x8107, 76126 }, - { 0x8108, 76205 }, - { 0x8109, 76188 }, - { 0x810A, 76192 }, - { 0x810B, 76196 }, - { 0x810C, 75933 }, - { 0x810D, 75937 }, - { 0x810E, 75941 }, - { 0x810F, 76200 }, - { 0x8110, 76147 }, - { 0x8111, 76151 }, - { 0x8112, 76155 }, - { 0x8113, 76159 }, - { 0x8114, 76163 }, - { 0x8115, 75546 }, - { 0x8116, 75422 }, - { 0x8117, 75542 }, - { 0x8118, 75418 }, - { 0x8119, 75550 }, - { 0x811A, 75426 }, - { 0x811B, 75554 }, - { 0x811C, 75430 }, - { 0x811D, 76138 }, - { 0x811E, 76184 }, - { 0x811F, 76167 }, - { 0x8120, 76210 }, - { 0x8121, 76176 }, - { 0x8122, 76218 }, - { 0x8123, 76214 }, - { 0x8124, 76130 }, - { 0x8125, 76273 }, - { 0x8126, 76277 }, - { 0x8127, 76108 }, - { 0x8128, 76100 }, - { 0x8129, 76117 }, - { 0x812A, 76134 }, - { 0x812B, 76104 }, - { 0x812C, 76142 }, - { 0x812D, 76171 }, - { 0x812E, 76330 }, - { 0x812F, 75810 }, - { 0x8130, 75395 }, - { 0x8131, 75617 }, - { 0x8132, 75601 }, - { 0x8133, 75571 }, - { 0x8134, 76222 }, - { 0x8135, 76313 }, - { 0x8136, 75580 }, - { 0x8137, 75574 }, - { 0x8138, 75402 }, - { 0x8139, 75523 }, - { 0x813A, 75945 }, - { 0x813B, 75530 }, - { 0x813C, 75526 }, - { 0x813D, 75962 }, - { 0x813E, 75966 }, - { 0x813F, 75970 }, - { 0x8140, 75974 }, - { 0x8141, 75978 }, - { 0x8142, 75982 }, - { 0x8143, 75986 }, - { 0x8144, 75990 }, - { 0x8145, 75994 }, - { 0x8146, 75998 }, - { 0x8147, 76002 }, - { 0x8148, 76320 }, - { 0x8149, 76323 }, - { 0x814A, 75413 }, - { 0x814B, 75678 }, - { 0x814C, 76112 }, - { 0x814D, 76095 }, - { 0x814E, 76180 }, - { 0x814F, 76121 }, - { 0x8150, 75613 }, - { 0x8151, 75608 }, - { 0x8152, 75492 }, - { 0x8153, 76233 }, - { 0x8154, 76237 }, - { 0x8155, 75538 }, - { 0x8156, 75453 }, - { 0x8157, 75456 }, - { 0x8158, 75766 }, - { 0x8159, 75588 }, - { 0x815A, 75655 }, - { 0x815B, 76289 }, - { 0x815C, 76285 }, - { 0x815D, 75769 }, - { 0x815E, 75776 }, - { 0x815F, 76301 }, - { 0x8160, 76297 }, - { 0x8161, 75480 }, - { 0x8162, 75476 }, - { 0x8163, 75591 }, - { 0x8164, 75596 }, - { 0x8165, 75658 }, - { 0x8166, 76281 }, - { 0x8167, 75772 }, - { 0x8168, 76293 }, - { 0x8169, 75813 }, - { 0x816A, 75828 }, - { 0x816B, 75820 }, - { 0x816C, 75835 }, - { 0x816D, 75842 }, - { 0x816E, 75849 }, - { 0x816F, 75857 }, - { 0x8170, 75865 }, - { 0x8171, 75564 }, - { 0x8172, 76241 }, - { 0x8173, 76246 }, - { 0x8174, 75796 }, - { 0x8175, 75640 }, - { 0x8176, 75904 }, - { 0x8177, 75667 }, - { 0x8178, 76258 }, - { 0x8179, 75930 }, - { 0x817A, 76022 }, - { 0x817B, 76251 }, - { 0x817C, 76254 }, - { 0x817D, 76261 }, - { 0x817E, 76025 }, - { 0x817F, 75446 }, - { 0x8180, 75702 }, - { 0x8181, 75707 }, - { 0x8182, 75723 }, - { 0x8183, 75761 }, - { 0x8184, 75728 }, - { 0x8185, 75718 }, - { 0x8186, 75754 }, - { 0x8187, 75747 }, - { 0x8188, 75740 }, - { 0x8189, 75733 }, - { 0x818A, 75713 }, - { 0x818B, 75520 }, - { 0x818C, 75585 }, - { 0x818D, 24892 }, - { 0x818E, 24896 }, - { 0x818F, 24900 }, - { 0x8190, 24904 }, - { 0x8191, 24908 }, - { 0x8192, 24912 }, - { 0x8193, 24916 }, - { 0x8194, 24920 }, - { 0x8195, 24924 }, - { 0x8196, 24928 }, - { 0x8197, 24932 }, - { 0x8198, 24936 }, - { 0x8199, 24940 }, - { 0x819A, 24944 }, - { 0x819B, 24948 }, - { 0x819C, 24952 }, - { 0x819D, 24956 }, - { 0x819E, 24960 }, - { 0x819F, 24964 }, - { 0x81A0, 24968 }, - { 0x81A1, 24972 }, - { 0x81A2, 24976 }, - { 0x81A3, 24980 }, - { 0x81A4, 24984 }, - { 0x81A5, 24988 }, - { 0x81A6, 24992 }, - { 0x81A7, 24996 }, - { 0x81A8, 25000 }, - { 0x81A9, 25004 }, - { 0x81AA, 26383 }, - { 0x81AB, 26387 }, - { 0x81AC, 26391 }, - { 0x81AD, 26395 }, - { 0x81AE, 26399 }, - { 0x81AF, 26403 }, - { 0x81B0, 26407 }, - { 0x81B1, 26411 }, - { 0x81B2, 26415 }, - { 0x81B3, 26419 }, - { 0x81B4, 26423 }, - { 0x81B5, 26427 }, - { 0x81B6, 26431 }, - { 0x81B7, 26435 }, - { 0x81B8, 26439 }, - { 0x81B9, 26443 }, - { 0x81BA, 26447 }, - { 0x81BB, 26451 }, - { 0x81BC, 26455 }, - { 0x81BD, 26459 }, - { 0x81BE, 26463 }, - { 0x81BF, 26467 }, - { 0x81C0, 26471 }, - { 0x81C1, 26475 }, - { 0x81C2, 26479 }, - { 0x81C3, 26483 }, - { 0x81C4, 26487 }, - { 0x81C5, 26491 }, - { 0x81C6, 26495 }, - { 0x81C7, 26499 }, - { 0x81C8, 26503 }, - { 0x81C9, 26507 }, - { 0x81CA, 26511 }, - { 0x81CB, 26515 }, - { 0x81CC, 26519 }, - { 0x81CD, 26523 }, - { 0x81CE, 26527 }, - { 0x81CF, 116494 }, - { 0x81D0, 116502 }, - { 0x81D1, 116498 }, - { 0x81D2, 26034 }, - { 0x81D3, 105909 }, - { 0x81D4, 105888 }, - { 0x81D5, 105897 }, - { 0x81D6, 105918 }, - { 0x81D7, 105903 }, - { 0x81D8, 105900 }, - { 0x81D9, 105891 }, - { 0x81DA, 105915 }, - { 0x81DB, 105912 }, - { 0x81DC, 105906 }, - { 0x81DD, 105894 }, - { 0x81DE, 105921 }, - { 0x81DF, 105924 }, - { 0x81E0, 105942 }, - { 0x81E1, 105936 }, - { 0x81E2, 105927 }, - { 0x81E3, 105930 }, - { 0x81E4, 105945 }, - { 0x81E5, 105933 }, - { 0x81E6, 105939 }, - { 0x81E7, 37299 }, - { 0x81E8, 37278 }, - { 0x81E9, 37287 }, - { 0x81EA, 37308 }, - { 0x81EB, 37293 }, - { 0x81EC, 37290 }, - { 0x81ED, 37281 }, - { 0x81EE, 37305 }, - { 0x81EF, 37302 }, - { 0x81F0, 37296 }, - { 0x81F1, 37284 }, - { 0x81F2, 37311 }, - { 0x81F3, 37314 }, - { 0x81F4, 37332 }, - { 0x81F5, 37326 }, - { 0x81F6, 37317 }, - { 0x81F7, 37320 }, - { 0x81F8, 37335 }, - { 0x81F9, 37323 }, - { 0x81FA, 37329 }, - { 0x81FB, 108852 }, - { 0x81FC, 54333 }, - { 0x81FD, 54305 }, - { 0x81FE, 54321 }, - { 0x81FF, 54317 }, - { 0x8200, 54302 }, - { 0x8201, 128588 }, - { 0x8202, 128555 }, - { 0x8203, 128570 }, - { 0x8204, 128616 }, - { 0x8205, 128635 }, - { 0x8206, 128760 }, - { 0x8207, 128585 }, - { 0x8208, 128751 }, - { 0x8209, 128689 }, - { 0x820A, 128787 }, - { 0x820B, 128742 }, - { 0x820C, 128784 }, - { 0x820D, 128672 }, - { 0x820E, 128769 }, - { 0x820F, 128573 }, - { 0x8210, 128622 }, - { 0x8211, 128631 }, - { 0x8212, 128660 }, - { 0x8213, 128708 }, - { 0x8214, 128613 }, - { 0x8215, 128654 }, - { 0x8216, 128754 }, - { 0x8217, 128552 }, - { 0x8218, 128540 }, - { 0x8219, 128739 }, - { 0x821A, 128705 }, - { 0x821B, 128598 }, - { 0x821C, 128591 }, - { 0x821D, 128775 }, - { 0x821E, 128548 }, - { 0x821F, 128648 }, - { 0x8220, 128604 }, - { 0x8221, 128693 }, - { 0x8222, 128639 }, - { 0x8223, 128714 }, - { 0x8224, 128681 }, - { 0x8225, 128607 }, - { 0x8226, 128666 }, - { 0x8227, 128727 }, - { 0x8228, 128543 }, - { 0x8229, 128675 }, - { 0x822A, 128562 }, - { 0x822B, 128745 }, - { 0x822C, 128576 }, - { 0x822D, 128721 }, - { 0x822E, 128763 }, - { 0x822F, 128651 }, - { 0x8230, 128610 }, - { 0x8231, 128601 }, - { 0x8232, 128684 }, - { 0x8233, 128696 }, - { 0x8234, 128645 }, - { 0x8235, 128663 }, - { 0x8236, 128579 }, - { 0x8237, 128781 }, - { 0x8238, 128594 }, - { 0x8239, 128766 }, - { 0x823A, 128717 }, - { 0x823B, 128642 }, - { 0x823C, 128772 }, - { 0x823D, 128792 }, - { 0x823E, 128559 }, - { 0x823F, 128582 }, - { 0x8240, 128657 }, - { 0x8241, 128567 }, - { 0x8242, 128702 }, - { 0x8243, 128699 }, - { 0x8244, 128625 }, - { 0x8245, 128748 }, - { 0x8246, 128730 }, - { 0x8247, 128678 }, - { 0x8248, 128669 }, - { 0x8249, 128733 }, - { 0x824A, 128619 }, - { 0x824B, 128628 }, - { 0x824C, 128757 }, - { 0x824D, 128736 }, - { 0x824E, 128535 }, - { 0x824F, 128778 }, - { 0x8250, 128724 }, - { 0x8251, 128711 }, - { 0x8252, 87596 }, - { 0x8253, 87606 }, - { 0x8254, 87636 }, - { 0x8255, 87616 }, - { 0x8256, 87611 }, - { 0x8257, 87601 }, - { 0x8258, 87631 }, - { 0x8259, 87626 }, - { 0x825A, 87621 }, - { 0x825B, 87551 }, - { 0x825C, 87561 }, - { 0x825D, 87591 }, - { 0x825E, 87571 }, - { 0x825F, 87566 }, - { 0x8260, 87556 }, - { 0x8261, 87586 }, - { 0x8262, 87581 }, - { 0x8263, 87576 }, - { 0x8264, 133231 }, - { 0x8265, 133235 }, - { 0x8266, 133247 }, - { 0x8267, 133243 }, - { 0x8268, 133239 }, - { 0x8269, 41892 }, - { 0x826A, 41895 }, - { 0x826B, 139644 }, - { 0x826C, 139648 }, - { 0x826D, 139652 }, - { 0x826E, 139656 }, - { 0x826F, 139660 }, - { 0x8270, 139664 }, - { 0x8271, 139668 }, - { 0x8272, 139672 }, - { 0x8273, 139676 }, - { 0x8274, 139680 }, - { 0x8275, 139684 }, - { 0x8276, 139688 }, - { 0x8277, 139692 }, - { 0x8278, 139696 }, - { 0x8279, 139700 }, - { 0x827A, 139704 }, - { 0x827B, 139708 }, - { 0x827C, 139712 }, - { 0x827D, 139716 }, - { 0x827E, 139720 }, - { 0x827F, 139724 }, - { 0x8280, 139728 }, - { 0x8281, 139732 }, - { 0x8282, 139736 }, - { 0x8283, 139740 }, - { 0x8284, 139744 }, - { 0x8285, 138620 }, - { 0x8286, 138624 }, - { 0x8287, 138628 }, - { 0x8288, 138632 }, - { 0x8289, 138636 }, - { 0x828A, 138640 }, - { 0x828B, 138644 }, - { 0x828C, 138648 }, - { 0x828D, 138652 }, - { 0x828E, 138656 }, - { 0x828F, 138660 }, - { 0x8290, 138664 }, - { 0x8291, 138668 }, - { 0x8292, 138672 }, - { 0x8293, 138676 }, - { 0x8294, 138680 }, - { 0x8295, 138684 }, - { 0x8296, 138688 }, - { 0x8297, 138692 }, - { 0x8298, 138696 }, - { 0x8299, 138700 }, - { 0x829A, 138704 }, - { 0x829B, 138708 }, - { 0x829C, 138712 }, - { 0x829D, 138716 }, - { 0x829E, 138720 }, - { 0x829F, 140403 }, - { 0x82A0, 140407 }, - { 0x82A1, 140411 }, - { 0x82A2, 140415 }, - { 0x82A3, 140419 }, - { 0x82A4, 140423 }, - { 0x82A5, 140427 }, - { 0x82A6, 140431 }, - { 0x82A7, 140435 }, - { 0x82A8, 140439 }, - { 0x82A9, 140443 }, - { 0x82AA, 140447 }, - { 0x82AB, 140451 }, - { 0x82AC, 140455 }, - { 0x82AD, 140459 }, - { 0x82AE, 140463 }, - { 0x82AF, 140467 }, - { 0x82B0, 140471 }, - { 0x82B1, 140475 }, - { 0x82B2, 140479 }, - { 0x82B3, 140483 }, - { 0x82B4, 140487 }, - { 0x82B5, 140491 }, - { 0x82B6, 140495 }, - { 0x82B7, 140499 }, - { 0x82B8, 140503 }, - { 0x82B9, 140188 }, - { 0x82BA, 140192 }, - { 0x82BB, 140196 }, - { 0x82BC, 140200 }, - { 0x82BD, 140204 }, - { 0x82BE, 140208 }, - { 0x82BF, 140212 }, - { 0x82C0, 140216 }, - { 0x82C1, 140220 }, - { 0x82C2, 140224 }, - { 0x82C3, 140228 }, - { 0x82C4, 140232 }, - { 0x82C5, 140236 }, - { 0x82C6, 140240 }, - { 0x82C7, 140244 }, - { 0x82C8, 140248 }, - { 0x82C9, 140252 }, - { 0x82CA, 140256 }, - { 0x82CB, 140260 }, - { 0x82CC, 140264 }, - { 0x82CD, 140268 }, - { 0x82CE, 140272 }, - { 0x82CF, 140276 }, - { 0x82D0, 140280 }, - { 0x82D1, 140284 }, - { 0x82D2, 139118 }, - { 0x82D3, 139123 }, - { 0x82D4, 139128 }, - { 0x82D5, 139133 }, - { 0x82D6, 139138 }, - { 0x82D7, 139143 }, - { 0x82D8, 139148 }, - { 0x82D9, 139153 }, - { 0x82DA, 139158 }, - { 0x82DB, 139163 }, - { 0x82DC, 139168 }, - { 0x82DD, 139173 }, - { 0x82DE, 139178 }, - { 0x82DF, 139183 }, - { 0x82E0, 139188 }, - { 0x82E1, 139193 }, - { 0x82E2, 139198 }, - { 0x82E3, 139203 }, - { 0x82E4, 139208 }, - { 0x82E5, 139213 }, - { 0x82E6, 139218 }, - { 0x82E7, 139223 }, - { 0x82E8, 139228 }, - { 0x82E9, 139233 }, - { 0x82EA, 139238 }, - { 0x82EB, 139243 }, - { 0x82EC, 138857 }, - { 0x82ED, 138862 }, - { 0x82EE, 138867 }, - { 0x82EF, 138872 }, - { 0x82F0, 138877 }, - { 0x82F1, 138882 }, - { 0x82F2, 138887 }, - { 0x82F3, 138892 }, - { 0x82F4, 138897 }, - { 0x82F5, 138902 }, - { 0x82F6, 138907 }, - { 0x82F7, 138912 }, - { 0x82F8, 138917 }, - { 0x82F9, 138922 }, - { 0x82FA, 138927 }, - { 0x82FB, 138932 }, - { 0x82FC, 138937 }, - { 0x82FD, 138942 }, - { 0x82FE, 138947 }, - { 0x82FF, 138952 }, - { 0x8300, 138957 }, - { 0x8301, 138962 }, - { 0x8302, 138967 }, - { 0x8303, 138972 }, - { 0x8304, 138977 }, - { 0x8305, 138982 }, - { 0x8306, 140711 }, - { 0x8307, 140715 }, - { 0x8308, 140719 }, - { 0x8309, 140723 }, - { 0x830A, 140727 }, - { 0x830B, 140731 }, - { 0x830C, 140735 }, - { 0x830D, 140739 }, - { 0x830E, 140743 }, - { 0x830F, 140747 }, - { 0x8310, 140751 }, - { 0x8311, 140755 }, - { 0x8312, 140759 }, - { 0x8313, 140763 }, - { 0x8314, 140767 }, - { 0x8315, 140771 }, - { 0x8316, 140775 }, - { 0x8317, 140779 }, - { 0x8318, 140619 }, - { 0x8319, 140623 }, - { 0x831A, 140627 }, - { 0x831B, 140631 }, - { 0x831C, 140635 }, - { 0x831D, 140639 }, - { 0x831E, 140643 }, - { 0x831F, 140647 }, - { 0x8320, 140651 }, - { 0x8321, 140655 }, - { 0x8322, 140659 }, - { 0x8323, 140663 }, - { 0x8324, 140667 }, - { 0x8325, 140671 }, - { 0x8326, 140675 }, - { 0x8327, 140679 }, - { 0x8328, 140683 }, - { 0x8329, 140687 }, - { 0x832A, 140691 }, - { 0x832B, 140695 }, - { 0x832C, 140699 }, - { 0x832D, 140703 }, - { 0x832E, 140707 }, - { 0x832F, 139514 }, - { 0x8330, 139519 }, - { 0x8331, 139524 }, - { 0x8332, 139529 }, - { 0x8333, 139534 }, - { 0x8334, 139539 }, - { 0x8335, 139544 }, - { 0x8336, 139549 }, - { 0x8337, 139554 }, - { 0x8338, 139559 }, - { 0x8339, 139564 }, - { 0x833A, 139569 }, - { 0x833B, 139574 }, - { 0x833C, 139579 }, - { 0x833D, 139584 }, - { 0x833E, 139589 }, - { 0x833F, 139594 }, - { 0x8340, 139599 }, - { 0x8341, 139604 }, - { 0x8342, 139609 }, - { 0x8343, 139614 }, - { 0x8344, 139619 }, - { 0x8345, 139624 }, - { 0x8346, 139629 }, - { 0x8347, 139634 }, - { 0x8348, 139639 }, - { 0x8349, 139384 }, - { 0x834A, 139389 }, - { 0x834B, 139394 }, - { 0x834C, 139399 }, - { 0x834D, 139404 }, - { 0x834E, 139409 }, - { 0x834F, 139414 }, - { 0x8350, 139419 }, - { 0x8351, 139424 }, - { 0x8352, 139429 }, - { 0x8353, 139434 }, - { 0x8354, 139439 }, - { 0x8355, 139444 }, - { 0x8356, 139449 }, - { 0x8357, 139454 }, - { 0x8358, 139459 }, - { 0x8359, 139464 }, - { 0x835A, 139469 }, - { 0x835B, 139474 }, - { 0x835C, 139479 }, - { 0x835D, 139484 }, - { 0x835E, 139489 }, - { 0x835F, 139494 }, - { 0x8360, 139499 }, - { 0x8361, 139504 }, - { 0x8362, 139509 }, - { 0x8363, 140890 }, - { 0x8364, 140894 }, - { 0x8365, 140898 }, - { 0x8366, 140902 }, - { 0x8367, 140906 }, - { 0x8368, 140910 }, - { 0x8369, 140914 }, - { 0x836A, 140918 }, - { 0x836B, 140922 }, - { 0x836C, 140926 }, - { 0x836D, 140930 }, - { 0x836E, 140934 }, - { 0x836F, 140938 }, - { 0x8370, 140942 }, - { 0x8371, 140946 }, - { 0x8372, 140950 }, - { 0x8373, 140954 }, - { 0x8374, 140958 }, - { 0x8375, 140962 }, - { 0x8376, 140966 }, - { 0x8377, 140970 }, - { 0x8378, 140786 }, - { 0x8379, 140790 }, - { 0x837A, 140794 }, - { 0x837B, 140798 }, - { 0x837C, 140802 }, - { 0x837D, 140806 }, - { 0x837E, 140810 }, - { 0x837F, 140814 }, - { 0x8380, 140818 }, - { 0x8381, 140822 }, - { 0x8382, 140826 }, - { 0x8383, 140830 }, - { 0x8384, 140834 }, - { 0x8385, 140838 }, - { 0x8386, 140842 }, - { 0x8387, 140846 }, - { 0x8388, 140850 }, - { 0x8389, 140854 }, - { 0x838A, 140858 }, - { 0x838B, 140862 }, - { 0x838C, 140866 }, - { 0x838D, 140870 }, - { 0x838E, 140874 }, - { 0x838F, 140878 }, - { 0x8390, 140882 }, - { 0x8391, 140886 }, - { 0x8392, 143136 }, - { 0x8393, 143140 }, - { 0x8394, 143144 }, - { 0x8395, 143148 }, - { 0x8396, 143152 }, - { 0x8397, 143156 }, - { 0x8398, 143160 }, - { 0x8399, 143164 }, - { 0x839A, 143168 }, - { 0x839B, 143172 }, - { 0x839C, 143176 }, - { 0x839D, 143180 }, - { 0x839E, 143184 }, - { 0x839F, 143188 }, - { 0x83A0, 143192 }, - { 0x83A1, 143196 }, - { 0x83A2, 143200 }, - { 0x83A3, 143204 }, - { 0x83A4, 143208 }, - { 0x83A5, 143032 }, - { 0x83A6, 143036 }, - { 0x83A7, 143040 }, - { 0x83A8, 143044 }, - { 0x83A9, 143048 }, - { 0x83AA, 143052 }, - { 0x83AB, 143056 }, - { 0x83AC, 143060 }, - { 0x83AD, 143064 }, - { 0x83AE, 143068 }, - { 0x83AF, 143072 }, - { 0x83B0, 143076 }, - { 0x83B1, 143080 }, - { 0x83B2, 143084 }, - { 0x83B3, 143088 }, - { 0x83B4, 143092 }, - { 0x83B5, 143096 }, - { 0x83B6, 143100 }, - { 0x83B7, 143104 }, - { 0x83B8, 143108 }, - { 0x83B9, 143112 }, - { 0x83BA, 143116 }, - { 0x83BB, 143120 }, - { 0x83BC, 143124 }, - { 0x83BD, 143128 }, - { 0x83BE, 143132 }, - { 0x83BF, 139987 }, - { 0x83C0, 139992 }, - { 0x83C1, 139997 }, - { 0x83C2, 140002 }, - { 0x83C3, 140007 }, - { 0x83C4, 140012 }, - { 0x83C5, 140017 }, - { 0x83C6, 140022 }, - { 0x83C7, 140027 }, - { 0x83C8, 140032 }, - { 0x83C9, 140037 }, - { 0x83CA, 140042 }, - { 0x83CB, 140047 }, - { 0x83CC, 140052 }, - { 0x83CD, 140057 }, - { 0x83CE, 140062 }, - { 0x83CF, 140067 }, - { 0x83D0, 140072 }, - { 0x83D1, 140077 }, - { 0x83D2, 140082 }, - { 0x83D3, 140087 }, - { 0x83D4, 140092 }, - { 0x83D5, 140097 }, - { 0x83D6, 140102 }, - { 0x83D7, 140107 }, - { 0x83D8, 140112 }, - { 0x83D9, 139857 }, - { 0x83DA, 139862 }, - { 0x83DB, 139867 }, - { 0x83DC, 139872 }, - { 0x83DD, 139877 }, - { 0x83DE, 139882 }, - { 0x83DF, 139887 }, - { 0x83E0, 139892 }, - { 0x83E1, 139897 }, - { 0x83E2, 139902 }, - { 0x83E3, 139907 }, - { 0x83E4, 139912 }, - { 0x83E5, 139917 }, - { 0x83E6, 139922 }, - { 0x83E7, 139927 }, - { 0x83E8, 139932 }, - { 0x83E9, 139937 }, - { 0x83EA, 139942 }, - { 0x83EB, 139947 }, - { 0x83EC, 139952 }, - { 0x83ED, 139957 }, - { 0x83EE, 139962 }, - { 0x83EF, 139967 }, - { 0x83F0, 139972 }, - { 0x83F1, 139977 }, - { 0x83F2, 139982 }, - { 0x83F3, 142888 }, - { 0x83F4, 142892 }, - { 0x83F5, 142896 }, - { 0x83F6, 142900 }, - { 0x83F7, 142904 }, - { 0x83F8, 142908 }, - { 0x83F9, 142912 }, - { 0x83FA, 142916 }, - { 0x83FB, 142920 }, - { 0x83FC, 142924 }, - { 0x83FD, 142928 }, - { 0x83FE, 142932 }, - { 0x83FF, 142936 }, - { 0x8400, 142940 }, - { 0x8401, 142944 }, - { 0x8402, 142948 }, - { 0x8403, 142952 }, - { 0x8404, 142956 }, - { 0x8405, 142960 }, - { 0x8406, 142964 }, - { 0x8407, 142968 }, - { 0x8408, 142972 }, - { 0x8409, 142976 }, - { 0x840A, 142980 }, - { 0x840B, 142984 }, - { 0x840C, 142988 }, - { 0x840D, 142524 }, - { 0x840E, 142528 }, - { 0x840F, 142532 }, - { 0x8410, 142536 }, - { 0x8411, 142540 }, - { 0x8412, 142544 }, - { 0x8413, 142548 }, - { 0x8414, 142552 }, - { 0x8415, 142556 }, - { 0x8416, 142560 }, - { 0x8417, 142564 }, - { 0x8418, 142568 }, - { 0x8419, 142572 }, - { 0x841A, 142576 }, - { 0x841B, 142580 }, - { 0x841C, 142584 }, - { 0x841D, 142588 }, - { 0x841E, 142592 }, - { 0x841F, 142596 }, - { 0x8420, 142600 }, - { 0x8421, 142604 }, - { 0x8422, 142608 }, - { 0x8423, 142612 }, - { 0x8424, 142616 }, - { 0x8425, 142620 }, - { 0x8426, 142624 }, - { 0x8427, 142218 }, - { 0x8428, 142223 }, - { 0x8429, 142228 }, - { 0x842A, 142233 }, - { 0x842B, 142238 }, - { 0x842C, 142243 }, - { 0x842D, 142248 }, - { 0x842E, 142253 }, - { 0x842F, 142258 }, - { 0x8430, 142263 }, - { 0x8431, 142268 }, - { 0x8432, 142273 }, - { 0x8433, 142278 }, - { 0x8434, 142283 }, - { 0x8435, 142288 }, - { 0x8436, 142293 }, - { 0x8437, 142298 }, - { 0x8438, 142303 }, - { 0x8439, 142308 }, - { 0x843A, 142313 }, - { 0x843B, 142318 }, - { 0x843C, 142323 }, - { 0x843D, 142328 }, - { 0x843E, 142333 }, - { 0x843F, 142338 }, - { 0x8440, 142343 }, - { 0x8441, 141296 }, - { 0x8442, 141301 }, - { 0x8443, 141306 }, - { 0x8444, 141311 }, - { 0x8445, 141316 }, - { 0x8446, 141321 }, - { 0x8447, 141326 }, - { 0x8448, 141331 }, - { 0x8449, 141336 }, - { 0x844A, 141341 }, - { 0x844B, 141346 }, - { 0x844C, 141351 }, - { 0x844D, 141356 }, - { 0x844E, 141361 }, - { 0x844F, 141366 }, - { 0x8450, 141371 }, - { 0x8451, 141376 }, - { 0x8452, 141381 }, - { 0x8453, 141386 }, - { 0x8454, 141391 }, - { 0x8455, 141396 }, - { 0x8456, 141401 }, - { 0x8457, 141406 }, - { 0x8458, 141411 }, - { 0x8459, 141416 }, - { 0x845A, 141421 }, - { 0x845B, 142758 }, - { 0x845C, 142763 }, - { 0x845D, 142768 }, - { 0x845E, 142773 }, - { 0x845F, 142778 }, - { 0x8460, 142783 }, - { 0x8461, 142788 }, - { 0x8462, 142793 }, - { 0x8463, 142798 }, - { 0x8464, 142803 }, - { 0x8465, 142808 }, - { 0x8466, 142813 }, - { 0x8467, 142818 }, - { 0x8468, 142823 }, - { 0x8469, 142828 }, - { 0x846A, 142833 }, - { 0x846B, 142838 }, - { 0x846C, 142843 }, - { 0x846D, 142848 }, - { 0x846E, 142853 }, - { 0x846F, 142858 }, - { 0x8470, 142863 }, - { 0x8471, 142868 }, - { 0x8472, 142873 }, - { 0x8473, 142878 }, - { 0x8474, 142883 }, - { 0x8475, 142628 }, - { 0x8476, 142633 }, - { 0x8477, 142638 }, - { 0x8478, 142643 }, - { 0x8479, 142648 }, - { 0x847A, 142653 }, - { 0x847B, 142658 }, - { 0x847C, 142663 }, - { 0x847D, 142668 }, - { 0x847E, 142673 }, - { 0x847F, 142678 }, - { 0x8480, 142683 }, - { 0x8481, 142688 }, - { 0x8482, 142693 }, - { 0x8483, 142698 }, - { 0x8484, 142703 }, - { 0x8485, 142708 }, - { 0x8486, 142713 }, - { 0x8487, 142718 }, - { 0x8488, 142723 }, - { 0x8489, 142728 }, - { 0x848A, 142733 }, - { 0x848B, 142738 }, - { 0x848C, 142743 }, - { 0x848D, 142748 }, - { 0x848E, 142753 }, - { 0x848F, 141899 }, - { 0x8490, 141905 }, - { 0x8491, 141911 }, - { 0x8492, 141917 }, - { 0x8493, 141923 }, - { 0x8494, 141929 }, - { 0x8495, 141935 }, - { 0x8496, 141941 }, - { 0x8497, 141947 }, - { 0x8498, 141953 }, - { 0x8499, 141959 }, - { 0x849A, 141965 }, - { 0x849B, 141971 }, - { 0x849C, 141977 }, - { 0x849D, 141983 }, - { 0x849E, 141989 }, - { 0x849F, 141995 }, - { 0x84A0, 142001 }, - { 0x84A1, 142007 }, - { 0x84A2, 142013 }, - { 0x84A3, 142019 }, - { 0x84A4, 142025 }, - { 0x84A5, 142031 }, - { 0x84A6, 142037 }, - { 0x84A7, 142043 }, - { 0x84A8, 142049 }, - { 0x84A9, 141586 }, - { 0x84AA, 141592 }, - { 0x84AB, 141598 }, - { 0x84AC, 141604 }, - { 0x84AD, 141610 }, - { 0x84AE, 141616 }, - { 0x84AF, 141622 }, - { 0x84B0, 141628 }, - { 0x84B1, 141634 }, - { 0x84B2, 141640 }, - { 0x84B3, 141646 }, - { 0x84B4, 141652 }, - { 0x84B5, 141658 }, - { 0x84B6, 141664 }, - { 0x84B7, 141670 }, - { 0x84B8, 141676 }, - { 0x84B9, 141682 }, - { 0x84BA, 141688 }, - { 0x84BB, 141694 }, - { 0x84BC, 141700 }, - { 0x84BD, 141706 }, - { 0x84BE, 141712 }, - { 0x84BF, 141718 }, - { 0x84C0, 141724 }, - { 0x84C1, 141730 }, - { 0x84C2, 141736 }, - { 0x84C3, 141118 }, - { 0x84C4, 141122 }, - { 0x84C5, 141126 }, - { 0x84C6, 141130 }, - { 0x84C7, 141134 }, - { 0x84C8, 141138 }, - { 0x84C9, 141142 }, - { 0x84CA, 141146 }, - { 0x84CB, 141150 }, - { 0x84CC, 141154 }, - { 0x84CD, 141158 }, - { 0x84CE, 141162 }, - { 0x84CF, 141166 }, - { 0x84D0, 141170 }, - { 0x84D1, 141174 }, - { 0x84D2, 141178 }, - { 0x84D3, 141182 }, - { 0x84D4, 141186 }, - { 0x84D5, 141190 }, - { 0x84D6, 141194 }, - { 0x84D7, 141198 }, - { 0x84D8, 141202 }, - { 0x84D9, 141206 }, - { 0x84DA, 141210 }, - { 0x84DB, 141214 }, - { 0x84DC, 141218 }, - { 0x84DD, 141014 }, - { 0x84DE, 141018 }, - { 0x84DF, 141022 }, - { 0x84E0, 141026 }, - { 0x84E1, 141030 }, - { 0x84E2, 141034 }, - { 0x84E3, 141038 }, - { 0x84E4, 141042 }, - { 0x84E5, 141046 }, - { 0x84E6, 141050 }, - { 0x84E7, 141054 }, - { 0x84E8, 141058 }, - { 0x84E9, 141062 }, - { 0x84EA, 141066 }, - { 0x84EB, 141070 }, - { 0x84EC, 141074 }, - { 0x84ED, 141078 }, - { 0x84EE, 141082 }, - { 0x84EF, 141086 }, - { 0x84F0, 141090 }, - { 0x84F1, 141094 }, - { 0x84F2, 141098 }, - { 0x84F3, 141102 }, - { 0x84F4, 141106 }, - { 0x84F5, 141110 }, - { 0x84F6, 141114 }, - { 0x84F7, 140377 }, - { 0x84F8, 140382 }, - { 0x84F9, 139800 }, - { 0x84FA, 139788 }, - { 0x84FB, 139808 }, - { 0x84FC, 139804 }, - { 0x84FD, 139841 }, - { 0x84FE, 139796 }, - { 0x84FF, 139768 }, - { 0x8500, 139828 }, - { 0x8501, 139792 }, - { 0x8502, 139812 }, - { 0x8503, 139816 }, - { 0x8504, 139748 }, - { 0x8505, 139752 }, - { 0x8506, 139760 }, - { 0x8507, 139845 }, - { 0x8508, 139756 }, - { 0x8509, 139780 }, - { 0x850A, 139832 }, - { 0x850B, 139824 }, - { 0x850C, 139784 }, - { 0x850D, 139849 }, - { 0x850E, 139772 }, - { 0x850F, 139764 }, - { 0x8510, 139776 }, - { 0x8511, 139820 }, - { 0x8512, 138617 }, - { 0x8513, 138776 }, - { 0x8514, 138764 }, - { 0x8515, 138789 }, - { 0x8516, 138780 }, - { 0x8517, 138817 }, - { 0x8518, 138772 }, - { 0x8519, 138744 }, - { 0x851A, 138809 }, - { 0x851B, 138768 }, - { 0x851C, 138793 }, - { 0x851D, 138797 }, - { 0x851E, 138724 }, - { 0x851F, 138728 }, - { 0x8520, 138736 }, - { 0x8521, 138821 }, - { 0x8522, 138732 }, - { 0x8523, 138756 }, - { 0x8524, 138784 }, - { 0x8525, 138805 }, - { 0x8526, 138760 }, - { 0x8527, 138825 }, - { 0x8528, 138748 }, - { 0x8529, 138740 }, - { 0x852A, 138752 }, - { 0x852B, 138801 }, - { 0x852C, 140117 }, - { 0x852D, 139853 }, - { 0x852E, 138829 }, - { 0x852F, 138613 }, - { 0x8530, 138565 }, - { 0x8531, 138569 }, - { 0x8532, 138561 }, - { 0x8533, 140559 }, - { 0x8534, 140547 }, - { 0x8535, 140567 }, - { 0x8536, 140563 }, - { 0x8537, 140596 }, - { 0x8538, 140555 }, - { 0x8539, 140527 }, - { 0x853A, 140587 }, - { 0x853B, 140551 }, - { 0x853C, 140571 }, - { 0x853D, 140575 }, - { 0x853E, 140507 }, - { 0x853F, 140511 }, - { 0x8540, 140519 }, - { 0x8541, 140600 }, - { 0x8542, 140515 }, - { 0x8543, 140539 }, - { 0x8544, 140591 }, - { 0x8545, 140583 }, - { 0x8546, 140543 }, - { 0x8547, 140604 }, - { 0x8548, 140531 }, - { 0x8549, 140523 }, - { 0x854A, 140535 }, - { 0x854B, 140579 }, - { 0x854C, 140185 }, - { 0x854D, 140340 }, - { 0x854E, 140328 }, - { 0x854F, 140353 }, - { 0x8550, 140344 }, - { 0x8551, 140387 }, - { 0x8552, 140336 }, - { 0x8553, 140308 }, - { 0x8554, 140373 }, - { 0x8555, 140332 }, - { 0x8556, 140357 }, - { 0x8557, 140361 }, - { 0x8558, 140288 }, - { 0x8559, 140292 }, - { 0x855A, 140300 }, - { 0x855B, 140391 }, - { 0x855C, 140296 }, - { 0x855D, 140320 }, - { 0x855E, 140348 }, - { 0x855F, 140369 }, - { 0x8560, 140324 }, - { 0x8561, 140395 }, - { 0x8562, 140312 }, - { 0x8563, 140304 }, - { 0x8564, 140316 }, - { 0x8565, 140365 }, - { 0x8566, 140612 }, - { 0x8567, 140608 }, - { 0x8568, 140399 }, - { 0x8569, 140181 }, - { 0x856A, 140173 }, - { 0x856B, 140177 }, - { 0x856C, 140169 }, - { 0x856D, 139313 }, - { 0x856E, 139298 }, - { 0x856F, 139323 }, - { 0x8570, 139318 }, - { 0x8571, 139359 }, - { 0x8572, 139308 }, - { 0x8573, 139273 }, - { 0x8574, 139348 }, - { 0x8575, 139303 }, - { 0x8576, 139328 }, - { 0x8577, 139333 }, - { 0x8578, 139248 }, - { 0x8579, 139253 }, - { 0x857A, 139263 }, - { 0x857B, 139364 }, - { 0x857C, 139258 }, - { 0x857D, 139288 }, - { 0x857E, 139353 }, - { 0x857F, 139343 }, - { 0x8580, 139293 }, - { 0x8581, 139369 }, - { 0x8582, 139278 }, - { 0x8583, 139268 }, - { 0x8584, 139283 }, - { 0x8585, 139338 }, - { 0x8586, 138853 }, - { 0x8587, 139052 }, - { 0x8588, 139037 }, - { 0x8589, 139068 }, - { 0x858A, 139057 }, - { 0x858B, 139098 }, - { 0x858C, 139047 }, - { 0x858D, 139012 }, - { 0x858E, 139093 }, - { 0x858F, 139042 }, - { 0x8590, 139073 }, - { 0x8591, 139078 }, - { 0x8592, 138987 }, - { 0x8593, 138992 }, - { 0x8594, 139002 }, - { 0x8595, 139103 }, - { 0x8596, 138997 }, - { 0x8597, 139027 }, - { 0x8598, 139062 }, - { 0x8599, 139088 }, - { 0x859A, 139032 }, - { 0x859B, 139108 }, - { 0x859C, 139017 }, - { 0x859D, 139007 }, - { 0x859E, 139022 }, - { 0x859F, 139083 }, - { 0x85A0, 139379 }, - { 0x85A1, 139374 }, - { 0x85A2, 139113 }, - { 0x85A3, 138848 }, - { 0x85A4, 138838 }, - { 0x85A5, 138843 }, - { 0x85A6, 138833 }, - { 0x85A7, 142413 }, - { 0x85A8, 142398 }, - { 0x85A9, 142423 }, - { 0x85AA, 142418 }, - { 0x85AB, 142459 }, - { 0x85AC, 142408 }, - { 0x85AD, 142373 }, - { 0x85AE, 142448 }, - { 0x85AF, 142403 }, - { 0x85B0, 142428 }, - { 0x85B1, 142433 }, - { 0x85B2, 142348 }, - { 0x85B3, 142353 }, - { 0x85B4, 142363 }, - { 0x85B5, 142464 }, - { 0x85B6, 142358 }, - { 0x85B7, 142388 }, - { 0x85B8, 142453 }, - { 0x85B9, 142443 }, - { 0x85BA, 142393 }, - { 0x85BB, 142469 }, - { 0x85BC, 142378 }, - { 0x85BD, 142368 }, - { 0x85BE, 142383 }, - { 0x85BF, 142438 }, - { 0x85C0, 141292 }, - { 0x85C1, 141491 }, - { 0x85C2, 141476 }, - { 0x85C3, 141507 }, - { 0x85C4, 141496 }, - { 0x85C5, 141537 }, - { 0x85C6, 141486 }, - { 0x85C7, 141451 }, - { 0x85C8, 141532 }, - { 0x85C9, 141481 }, - { 0x85CA, 141512 }, - { 0x85CB, 141517 }, - { 0x85CC, 141426 }, - { 0x85CD, 141431 }, - { 0x85CE, 141441 }, - { 0x85CF, 141542 }, - { 0x85D0, 141436 }, - { 0x85D1, 141466 }, - { 0x85D2, 141501 }, - { 0x85D3, 141527 }, - { 0x85D4, 141471 }, - { 0x85D5, 141547 }, - { 0x85D6, 141456 }, - { 0x85D7, 141446 }, - { 0x85D8, 141461 }, - { 0x85D9, 141522 }, - { 0x85DA, 142479 }, - { 0x85DB, 142474 }, - { 0x85DC, 141552 }, - { 0x85DD, 141287 }, - { 0x85DE, 141227 }, - { 0x85DF, 141232 }, - { 0x85E0, 141222 }, - { 0x85E1, 142133 }, - { 0x85E2, 142115 }, - { 0x85E3, 142145 }, - { 0x85E4, 142139 }, - { 0x85E5, 142188 }, - { 0x85E6, 142127 }, - { 0x85E7, 142085 }, - { 0x85E8, 142175 }, - { 0x85E9, 142121 }, - { 0x85EA, 142151 }, - { 0x85EB, 142157 }, - { 0x85EC, 142055 }, - { 0x85ED, 142061 }, - { 0x85EE, 142073 }, - { 0x85EF, 142194 }, - { 0x85F0, 142067 }, - { 0x85F1, 142103 }, - { 0x85F2, 142181 }, - { 0x85F3, 142169 }, - { 0x85F4, 142109 }, - { 0x85F5, 142200 }, - { 0x85F6, 142091 }, - { 0x85F7, 142079 }, - { 0x85F8, 142097 }, - { 0x85F9, 142163 }, - { 0x85FA, 141581 }, - { 0x85FB, 141820 }, - { 0x85FC, 141802 }, - { 0x85FD, 141839 }, - { 0x85FE, 141826 }, - { 0x85FF, 141875 }, - { 0x8600, 141814 }, - { 0x8601, 141772 }, - { 0x8602, 141869 }, - { 0x8603, 141808 }, - { 0x8604, 141845 }, - { 0x8605, 141851 }, - { 0x8606, 141742 }, - { 0x8607, 141748 }, - { 0x8608, 141760 }, - { 0x8609, 141881 }, - { 0x860A, 141754 }, - { 0x860B, 141790 }, - { 0x860C, 141832 }, - { 0x860D, 141863 }, - { 0x860E, 141796 }, - { 0x860F, 141887 }, - { 0x8610, 141778 }, - { 0x8611, 141766 }, - { 0x8612, 141784 }, - { 0x8613, 141857 }, - { 0x8614, 142212 }, - { 0x8615, 142206 }, - { 0x8616, 141893 }, - { 0x8617, 141575 }, - { 0x8618, 141563 }, - { 0x8619, 141569 }, - { 0x861A, 141557 }, - { 0x861B, 139837 }, - { 0x861C, 138813 }, - { 0x861D, 138597 }, - { 0x861E, 138573 }, - { 0x861F, 138581 }, - { 0x8620, 138609 }, - { 0x8621, 138589 }, - { 0x8622, 138585 }, - { 0x8623, 138577 }, - { 0x8624, 138605 }, - { 0x8625, 138601 }, - { 0x8626, 138593 }, - { 0x8627, 143016 }, - { 0x8628, 142992 }, - { 0x8629, 143000 }, - { 0x862A, 143028 }, - { 0x862B, 143008 }, - { 0x862C, 143004 }, - { 0x862D, 142996 }, - { 0x862E, 143024 }, - { 0x862F, 143020 }, - { 0x8630, 143012 }, - { 0x8631, 142508 }, - { 0x8632, 142484 }, - { 0x8633, 142492 }, - { 0x8634, 142520 }, - { 0x8635, 142500 }, - { 0x8636, 142496 }, - { 0x8637, 142488 }, - { 0x8638, 142516 }, - { 0x8639, 142512 }, - { 0x863A, 142504 }, - { 0x863B, 141267 }, - { 0x863C, 141237 }, - { 0x863D, 141247 }, - { 0x863E, 141282 }, - { 0x863F, 141257 }, - { 0x8640, 141252 }, - { 0x8641, 141242 }, - { 0x8642, 141277 }, - { 0x8643, 141272 }, - { 0x8644, 141262 }, - { 0x8645, 140998 }, - { 0x8646, 140974 }, - { 0x8647, 140982 }, - { 0x8648, 141010 }, - { 0x8649, 140990 }, - { 0x864A, 140986 }, - { 0x864B, 140978 }, - { 0x864C, 141006 }, - { 0x864D, 141002 }, - { 0x864E, 140994 }, - { 0x864F, 135319 }, - { 0x8650, 136465 }, - { 0x8651, 135112 }, - { 0x8652, 136197 }, - { 0x8653, 136364 }, - { 0x8654, 136240 }, - { 0x8655, 135344 }, - { 0x8656, 136468 }, - { 0x8657, 135794 }, - { 0x8658, 135742 }, - { 0x8659, 135493 }, - { 0x865A, 135497 }, - { 0x865B, 135501 }, - { 0x865C, 136477 }, - { 0x865D, 135520 }, - { 0x865E, 136481 }, - { 0x865F, 135532 }, - { 0x8660, 135640 }, - { 0x8661, 135622 }, - { 0x8662, 135322 }, - { 0x8663, 135506 }, - { 0x8664, 135665 }, - { 0x8665, 135670 }, - { 0x8666, 135735 }, - { 0x8667, 135707 }, - { 0x8668, 135721 }, - { 0x8669, 135646 }, - { 0x866A, 136506 }, - { 0x866B, 135904 }, - { 0x866C, 135348 }, - { 0x866D, 135567 }, - { 0x866E, 136496 }, - { 0x866F, 135658 }, - { 0x8670, 135537 }, - { 0x8671, 135572 }, - { 0x8672, 135627 }, - { 0x8673, 135328 }, - { 0x8674, 135336 }, - { 0x8675, 135512 }, - { 0x8676, 135524 }, - { 0x8677, 135591 }, - { 0x8678, 135609 }, - { 0x8679, 135603 }, - { 0x867A, 135597 }, - { 0x867B, 135824 }, - { 0x867C, 135677 }, - { 0x867D, 135692 }, - { 0x867E, 135684 }, - { 0x867F, 135949 }, - { 0x8680, 135453 }, - { 0x8681, 135727 }, - { 0x8682, 135651 }, - { 0x8683, 135700 }, - { 0x8684, 135713 }, - { 0x8685, 135942 }, - { 0x8686, 135446 }, - { 0x8687, 135961 }, - { 0x8688, 135968 }, - { 0x8689, 135433 }, - { 0x868A, 135425 }, - { 0x868B, 135467 }, - { 0x868C, 135615 }, - { 0x868D, 135584 }, - { 0x868E, 135578 }, - { 0x868F, 135919 }, - { 0x8690, 135927 }, - { 0x8691, 135935 }, - { 0x8692, 135460 }, - { 0x8693, 136033 }, - { 0x8694, 136037 }, - { 0x8695, 136042 }, - { 0x8696, 136047 }, - { 0x8697, 136052 }, - { 0x8698, 135235 }, - { 0x8699, 135270 }, - { 0x869A, 136330 }, - { 0x869B, 135986 }, - { 0x869C, 136061 }, - { 0x869D, 135997 }, - { 0x869E, 136074 }, - { 0x869F, 135991 }, - { 0x86A0, 136067 }, - { 0x86A1, 136004 }, - { 0x86A2, 135083 }, - { 0x86A3, 135088 }, - { 0x86A4, 136324 }, - { 0x86A5, 136188 }, - { 0x86A6, 136011 }, - { 0x86A7, 136025 }, - { 0x86A8, 136017 }, - { 0x86A9, 135984 }, - { 0x86AA, 136126 }, - { 0x86AB, 136058 }, - { 0x86AC, 136118 }, - { 0x86AD, 136082 }, - { 0x86AE, 136114 }, - { 0x86AF, 136122 }, - { 0x86B0, 136087 }, - { 0x86B1, 136093 }, - { 0x86B2, 136097 }, - { 0x86B3, 136103 }, - { 0x86B4, 136110 }, - { 0x86B5, 135229 }, - { 0x86B6, 135247 }, - { 0x86B7, 135231 }, - { 0x86B8, 135251 }, - { 0x86B9, 136179 }, - { 0x86BA, 136131 }, - { 0x86BB, 135094 }, - { 0x86BC, 135077 }, - { 0x86BD, 135102 }, - { 0x86BE, 135129 }, - { 0x86BF, 135097 }, - { 0x86C0, 135079 }, - { 0x86C1, 135107 }, - { 0x86C2, 135133 }, - { 0x86C3, 136538 }, - { 0x86C4, 136536 }, - { 0x86C5, 136459 }, - { 0x86C6, 136182 }, - { 0x86C7, 136200 }, - { 0x86C8, 136184 }, - { 0x86C9, 136204 }, - { 0x86CA, 136335 }, - { 0x86CB, 136348 }, - { 0x86CC, 136318 }, - { 0x86CD, 136416 }, - { 0x86CE, 136343 }, - { 0x86CF, 136419 }, - { 0x86D0, 136338 }, - { 0x86D1, 136320 }, - { 0x86D2, 136423 }, - { 0x86D3, 136429 }, - { 0x86D4, 136226 }, - { 0x86D5, 135544 }, - { 0x86D6, 136485 }, - { 0x86D7, 136400 }, - { 0x86D8, 136268 }, - { 0x86D9, 136435 }, - { 0x86DA, 135549 }, - { 0x86DB, 135555 }, - { 0x86DC, 136405 }, - { 0x86DD, 135849 }, - { 0x86DE, 135865 }, - { 0x86DF, 135859 }, - { 0x86E0, 135853 }, - { 0x86E1, 135841 }, - { 0x86E2, 135806 }, - { 0x86E3, 136511 }, - { 0x86E4, 136208 }, - { 0x86E5, 136278 }, - { 0x86E6, 135884 }, - { 0x86E7, 135845 }, - { 0x86E8, 135889 }, - { 0x86E9, 135880 }, - { 0x86EA, 136447 }, - { 0x86EB, 135875 }, - { 0x86EC, 136442 }, - { 0x86ED, 136293 }, - { 0x86EE, 136286 }, - { 0x86EF, 135871 }, - { 0x86F0, 136515 }, - { 0x86F1, 136438 }, - { 0x86F2, 136282 }, - { 0x86F3, 135635 }, - { 0x86F4, 136501 }, - { 0x86F5, 136411 }, - { 0x86F6, 136353 }, - { 0x86F7, 136273 }, - { 0x86F8, 135561 }, - { 0x86F9, 136490 }, - { 0x86FA, 135283 }, - { 0x86FB, 136356 }, - { 0x86FC, 136228 }, - { 0x86FD, 135279 }, - { 0x86FE, 135314 }, - { 0x86FF, 135295 }, - { 0x8700, 136461 }, - { 0x8701, 136193 }, - { 0x8702, 136236 }, - { 0x8703, 135299 }, - { 0x8704, 135309 }, - { 0x8705, 135303 }, - { 0x8706, 135287 }, - { 0x8707, 135291 }, - { 0x8708, 136133 }, - { 0x8709, 135354 }, - { 0x870A, 136472 }, - { 0x870B, 136541 }, - { 0x870C, 136143 }, - { 0x870D, 136137 }, - { 0x870E, 136149 }, - { 0x870F, 135115 }, - { 0x8710, 136367 }, - { 0x8711, 136248 }, - { 0x8712, 136243 }, - { 0x8713, 135910 }, - { 0x8714, 136451 }, - { 0x8715, 135894 }, - { 0x8716, 136519 }, - { 0x8717, 135979 }, - { 0x8718, 135898 }, - { 0x8719, 136175 }, - { 0x871A, 135956 }, - { 0x871B, 135975 }, - { 0x871C, 135914 }, - { 0x871D, 136523 }, - { 0x871E, 136547 }, - { 0x871F, 135137 }, - { 0x8720, 136454 }, - { 0x8721, 136312 }, - { 0x8722, 136306 }, - { 0x8723, 136301 }, - { 0x8724, 136528 }, - { 0x8725, 135255 }, - { 0x8726, 135261 }, - { 0x8727, 136168 }, - { 0x8728, 136161 }, - { 0x8729, 136155 }, - { 0x872A, 136396 }, - { 0x872B, 135364 }, - { 0x872C, 136381 }, - { 0x872D, 135397 }, - { 0x872E, 135404 }, - { 0x872F, 135390 }, - { 0x8730, 135376 }, - { 0x8731, 135369 }, - { 0x8732, 135383 }, - { 0x8733, 135481 }, - { 0x8734, 135474 }, - { 0x8735, 135359 }, - { 0x8736, 135488 }, - { 0x8737, 135418 }, - { 0x8738, 135240 }, - { 0x8739, 135411 }, - { 0x873A, 135441 }, - { 0x873B, 135120 }, - { 0x873C, 135124 }, - { 0x873D, 136376 }, - { 0x873E, 136386 }, - { 0x873F, 136372 }, - { 0x8740, 136391 }, - { 0x8741, 136263 }, - { 0x8742, 136258 }, - { 0x8743, 136254 }, - { 0x8744, 135747 }, - { 0x8745, 135750 }, - { 0x8746, 135772 }, - { 0x8747, 135777 }, - { 0x8748, 135767 }, - { 0x8749, 135837 }, - { 0x874A, 135818 }, - { 0x874B, 135831 }, - { 0x874C, 135812 }, - { 0x874D, 135782 }, - { 0x874E, 135754 }, - { 0x874F, 135800 }, - { 0x8750, 135788 }, - { 0x8751, 135760 }, - { 0x8752, 135268 }, - { 0x8753, 135276 }, - { 0x8754, 134890 }, - { 0x8755, 134896 }, - { 0x8756, 134893 }, - { 0x8757, 134735 }, - { 0x8758, 134741 }, - { 0x8759, 134738 }, - { 0x875A, 134943 }, - { 0x875B, 134949 }, - { 0x875C, 134946 }, - { 0x875D, 134703 }, - { 0x875E, 134709 }, - { 0x875F, 134706 }, - { 0x8760, 134552 }, - { 0x8761, 134558 }, - { 0x8762, 134555 }, - { 0x8763, 135053 }, - { 0x8764, 135050 }, - { 0x8765, 135031 }, - { 0x8766, 135039 }, - { 0x8767, 135035 }, - { 0x8768, 135043 }, - { 0x8769, 135047 }, - { 0x876A, 134716 }, - { 0x876B, 134724 }, - { 0x876C, 134720 }, - { 0x876D, 134728 }, - { 0x876E, 134732 }, - { 0x876F, 135027 }, - { 0x8770, 136553 }, - { 0x8771, 136558 }, - { 0x8772, 136575 }, - { 0x8773, 136579 }, - { 0x8774, 136563 }, - { 0x8775, 136569 }, - { 0x8776, 136583 }, - { 0x8777, 137104 }, - { 0x8778, 137558 }, - { 0x8779, 137118 }, - { 0x877A, 137123 }, - { 0x877B, 137113 }, - { 0x877C, 137128 }, - { 0x877D, 137108 }, - { 0x877E, 137080 }, - { 0x877F, 137075 }, - { 0x8780, 137084 }, - { 0x8781, 137088 }, - { 0x8782, 136954 }, - { 0x8783, 137138 }, - { 0x8784, 137133 }, - { 0x8785, 137143 }, - { 0x8786, 137147 }, - { 0x8787, 136818 }, - { 0x8788, 136822 }, - { 0x8789, 136814 }, - { 0x878A, 137053 }, - { 0x878B, 137057 }, - { 0x878C, 137049 }, - { 0x878D, 137061 }, - { 0x878E, 136946 }, - { 0x878F, 136950 }, - { 0x8790, 136942 }, - { 0x8791, 136803 }, - { 0x8792, 136807 }, - { 0x8793, 136799 }, - { 0x8794, 137157 }, - { 0x8795, 137161 }, - { 0x8796, 137153 }, - { 0x8797, 137029 }, - { 0x8798, 137033 }, - { 0x8799, 137025 }, - { 0x879A, 136622 }, - { 0x879B, 136618 }, - { 0x879C, 136626 }, - { 0x879D, 136634 }, - { 0x879E, 136630 }, - { 0x879F, 136638 }, - { 0x87A0, 136615 }, - { 0x87A1, 136605 }, - { 0x87A2, 136600 }, - { 0x87A3, 136610 }, - { 0x87A4, 136663 }, - { 0x87A5, 136667 }, - { 0x87A6, 136659 }, - { 0x87A7, 136671 }, - { 0x87A8, 136719 }, - { 0x87A9, 136723 }, - { 0x87AA, 136715 }, - { 0x87AB, 136727 }, - { 0x87AC, 136680 }, - { 0x87AD, 136685 }, - { 0x87AE, 136675 }, - { 0x87AF, 136690 }, - { 0x87B0, 136700 }, - { 0x87B1, 136705 }, - { 0x87B2, 136695 }, - { 0x87B3, 136710 }, - { 0x87B4, 137572 }, - { 0x87B5, 137577 }, - { 0x87B6, 137567 }, - { 0x87B7, 137582 }, - { 0x87B8, 137562 }, - { 0x87B9, 137530 }, - { 0x87BA, 137525 }, - { 0x87BB, 137534 }, - { 0x87BC, 137538 }, - { 0x87BD, 137440 }, - { 0x87BE, 137592 }, - { 0x87BF, 137587 }, - { 0x87C0, 137603 }, - { 0x87C1, 137597 }, - { 0x87C2, 137276 }, - { 0x87C3, 137517 }, - { 0x87C4, 137521 }, - { 0x87C5, 137513 }, - { 0x87C6, 137437 }, - { 0x87C7, 137265 }, - { 0x87C8, 137269 }, - { 0x87C9, 137261 }, - { 0x87CA, 137612 }, - { 0x87CB, 137616 }, - { 0x87CC, 137608 }, - { 0x87CD, 137491 }, - { 0x87CE, 137495 }, - { 0x87CF, 137487 }, - { 0x87D0, 136750 }, - { 0x87D1, 136746 }, - { 0x87D2, 136754 }, - { 0x87D3, 136738 }, - { 0x87D4, 136734 }, - { 0x87D5, 136742 }, - { 0x87D6, 136731 }, - { 0x87D7, 136978 }, - { 0x87D8, 136983 }, - { 0x87D9, 136973 }, - { 0x87DA, 136988 }, - { 0x87DB, 136998 }, - { 0x87DC, 137003 }, - { 0x87DD, 136993 }, - { 0x87DE, 137008 }, - { 0x87DF, 137013 }, - { 0x87E0, 137019 }, - { 0x87E1, 136830 }, - { 0x87E2, 136834 }, - { 0x87E3, 136826 }, - { 0x87E4, 136853 }, - { 0x87E5, 136862 }, - { 0x87E6, 136849 }, - { 0x87E7, 136857 }, - { 0x87E8, 136883 }, - { 0x87E9, 136889 }, - { 0x87EA, 136877 }, - { 0x87EB, 136901 }, - { 0x87EC, 136907 }, - { 0x87ED, 136895 }, - { 0x87EE, 136957 }, - { 0x87EF, 137065 }, - { 0x87F0, 137070 }, - { 0x87F1, 137182 }, - { 0x87F2, 137168 }, - { 0x87F3, 137196 }, - { 0x87F4, 137165 }, - { 0x87F5, 136967 }, - { 0x87F6, 136843 }, - { 0x87F7, 136871 }, - { 0x87F8, 136918 }, - { 0x87F9, 137190 }, - { 0x87FA, 137176 }, - { 0x87FB, 137204 }, - { 0x87FC, 136962 }, - { 0x87FD, 136838 }, - { 0x87FE, 136866 }, - { 0x87FF, 136913 }, - { 0x8800, 137185 }, - { 0x8801, 137171 }, - { 0x8802, 137199 }, - { 0x8803, 136930 }, - { 0x8804, 136936 }, - { 0x8805, 136924 }, - { 0x8806, 137473 }, - { 0x8807, 137467 }, - { 0x8808, 137327 }, - { 0x8809, 137313 }, - { 0x880A, 137334 }, - { 0x880B, 137320 }, - { 0x880C, 137394 }, - { 0x880D, 137380 }, - { 0x880E, 137387 }, - { 0x880F, 137373 }, - { 0x8810, 137431 }, - { 0x8811, 137425 }, - { 0x8812, 137645 }, - { 0x8813, 137632 }, - { 0x8814, 137658 }, - { 0x8815, 137461 }, - { 0x8816, 137455 }, - { 0x8817, 137290 }, - { 0x8818, 137283 }, - { 0x8819, 137305 }, - { 0x881A, 137297 }, - { 0x881B, 137366 }, - { 0x881C, 137352 }, - { 0x881D, 137359 }, - { 0x881E, 137345 }, - { 0x881F, 137419 }, - { 0x8820, 137413 }, - { 0x8821, 137640 }, - { 0x8822, 137627 }, - { 0x8823, 137653 }, - { 0x8824, 137447 }, - { 0x8825, 137451 }, - { 0x8826, 137443 }, - { 0x8827, 137479 }, - { 0x8828, 137483 }, - { 0x8829, 137279 }, - { 0x882A, 137341 }, - { 0x882B, 137409 }, - { 0x882C, 137405 }, - { 0x882D, 137401 }, - { 0x882E, 137637 }, - { 0x882F, 137624 }, - { 0x8830, 137650 }, - { 0x8831, 137620 }, - { 0x8832, 136781 }, - { 0x8833, 136793 }, - { 0x8834, 136775 }, - { 0x8835, 136787 }, - { 0x8836, 137237 }, - { 0x8837, 137253 }, - { 0x8838, 137221 }, - { 0x8839, 137229 }, - { 0x883A, 137245 }, - { 0x883B, 137213 }, - { 0x883C, 137043 }, - { 0x883D, 137037 }, - { 0x883E, 137506 }, - { 0x883F, 137499 }, - { 0x8840, 137099 }, - { 0x8841, 137094 }, - { 0x8842, 137551 }, - { 0x8843, 137544 }, - { 0x8844, 135016 }, - { 0x8845, 135012 }, - { 0x8846, 134992 }, - { 0x8847, 134995 }, - { 0x8848, 135003 }, - { 0x8849, 135009 }, - { 0x884A, 135020 }, - { 0x884B, 135023 }, - { 0x884C, 134998 }, - { 0x884D, 135006 }, - { 0x884E, 134632 }, - { 0x884F, 134634 }, - { 0x8850, 134649 }, - { 0x8851, 134641 }, - { 0x8852, 134657 }, - { 0x8853, 134645 }, - { 0x8854, 134653 }, - { 0x8855, 134637 }, - { 0x8856, 134605 }, - { 0x8857, 134588 }, - { 0x8858, 134596 }, - { 0x8859, 135056 }, - { 0x885A, 135064 }, - { 0x885B, 135060 }, - { 0x885C, 134936 }, - { 0x885D, 134926 }, - { 0x885E, 134921 }, - { 0x885F, 134931 }, - { 0x8860, 135071 }, - { 0x8861, 135068 }, - { 0x8862, 135074 }, - { 0x8863, 134571 }, - { 0x8864, 134581 }, - { 0x8865, 134578 }, - { 0x8866, 134534 }, - { 0x8867, 134538 }, - { 0x8868, 134563 }, - { 0x8869, 134574 }, - { 0x886A, 134567 }, - { 0x886B, 134584 }, - { 0x886C, 134531 }, - { 0x886D, 135220 }, - { 0x886E, 135223 }, - { 0x886F, 135226 }, - { 0x8870, 136648 }, - { 0x8871, 136651 }, - { 0x8872, 136655 }, - { 0x8873, 136761 }, - { 0x8874, 136764 }, - { 0x8875, 136768 }, - { 0x8876, 136642 }, - { 0x8877, 136758 }, - { 0x8878, 136645 }, - { 0x8879, 134912 }, - { 0x887A, 134918 }, - { 0x887B, 134915 }, - { 0x887C, 134882 }, - { 0x887D, 134886 }, - { 0x887E, 134878 }, - { 0x887F, 134561 }, - { 0x8880, 134694 }, - { 0x8881, 134691 }, - { 0x8882, 134700 }, - { 0x8883, 134697 }, - { 0x8884, 134523 }, - { 0x8885, 134527 }, - { 0x8886, 134513 }, - { 0x8887, 134518 }, - { 0x8888, 134909 }, - { 0x8889, 134906 }, - { 0x888A, 134836 }, - { 0x888B, 134832 }, - { 0x888C, 134828 }, - { 0x888D, 134806 }, - { 0x888E, 134813 }, - { 0x888F, 134809 }, - { 0x8890, 134795 }, - { 0x8891, 134802 }, - { 0x8892, 134798 }, - { 0x8893, 134769 }, - { 0x8894, 134773 }, - { 0x8895, 134777 }, - { 0x8896, 134755 }, - { 0x8897, 134764 }, - { 0x8898, 134759 }, - { 0x8899, 134781 }, - { 0x889A, 134790 }, - { 0x889B, 134785 }, - { 0x889C, 134744 }, - { 0x889D, 134747 }, - { 0x889E, 134751 }, - { 0x889F, 134817 }, - { 0x88A0, 134824 }, - { 0x88A1, 134820 }, - { 0x88A2, 134685 }, - { 0x88A3, 134542 }, - { 0x88A4, 134547 }, - { 0x88A5, 134840 }, - { 0x88A6, 134847 }, - { 0x88A7, 134843 }, - { 0x88A8, 134987 }, - { 0x88A9, 134983 }, - { 0x88AA, 134952 }, - { 0x88AB, 134957 }, - { 0x88AC, 134978 }, - { 0x88AD, 134963 }, - { 0x88AE, 134973 }, - { 0x88AF, 134968 }, - { 0x88B0, 134851 }, - { 0x88B1, 134875 }, - { 0x88B2, 134862 }, - { 0x88B3, 134866 }, - { 0x88B4, 134853 }, - { 0x88B5, 134857 }, - { 0x88B6, 134871 }, - { 0x88B7, 136811 }, - { 0x88B8, 137273 }, - { 0x88B9, 134689 }, - { 0x88BA, 134630 }, - { 0x88BB, 136219 }, - { 0x88BC, 135207 }, - { 0x88BD, 135211 }, - { 0x88BE, 136214 }, - { 0x88BF, 136221 }, - { 0x88C0, 135215 }, - { 0x88C1, 136593 }, - { 0x88C2, 136589 }, - { 0x88C3, 136597 }, - { 0x88C4, 134899 }, - { 0x88C5, 134682 }, - { 0x88C6, 134661 }, - { 0x88C7, 134664 }, - { 0x88C8, 134667 }, - { 0x88C9, 134670 }, - { 0x88CA, 134673 }, - { 0x88CB, 134676 }, - { 0x88CC, 134679 }, - { 0x88CD, 134941 }, - { 0x88CE, 136772 }, - { 0x88CF, 137210 }, - { 0x88D0, 135159 }, - { 0x88D1, 135156 }, - { 0x88D2, 135146 }, - { 0x88D3, 135142 }, - { 0x88D4, 135153 }, - { 0x88D5, 135149 }, - { 0x88D6, 134714 }, - { 0x88D7, 134627 }, - { 0x88D8, 136212 }, - { 0x88D9, 134712 }, - { 0x88DA, 136534 }, - { 0x88DB, 134612 }, - { 0x88DC, 134615 }, - { 0x88DD, 134618 }, - { 0x88DE, 134621 }, - { 0x88DF, 134624 }, - { 0x88E0, 135162 }, - { 0x88E1, 135165 }, - { 0x88E2, 135168 }, - { 0x88E3, 135171 }, - { 0x88E4, 135174 }, - { 0x88E5, 135177 }, - { 0x88E6, 135180 }, - { 0x88E7, 135183 }, - { 0x88E8, 135186 }, - { 0x88E9, 135189 }, - { 0x88EA, 135192 }, - { 0x88EB, 135195 }, - { 0x88EC, 135198 }, - { 0x88ED, 135201 }, - { 0x88EE, 135204 }, - { 0x88EF, 32097 }, - { 0x88F0, 32859 }, - { 0x88F1, 33238 }, - { 0x88F2, 32813 }, - { 0x88F3, 33103 }, - { 0x88F4, 32133 }, - { 0x88F5, 32606 }, - { 0x88F6, 32825 }, - { 0x88F7, 32545 }, - { 0x88F8, 31008 }, - { 0x88F9, 33354 }, - { 0x88FA, 31943 }, - { 0x88FB, 31950 }, - { 0x88FC, 32584 }, - { 0x88FD, 33324 }, - { 0x88FE, 33365 }, - { 0x88FF, 33244 }, - { 0x8900, 30056 }, - { 0x8901, 32076 }, - { 0x8902, 29960 }, - { 0x8903, 31920 }, - { 0x8904, 32571 }, - { 0x8905, 30797 }, - { 0x8906, 32217 }, - { 0x8907, 31999 }, - { 0x8908, 32084 }, - { 0x8909, 29773 }, - { 0x890A, 30532 }, - { 0x890B, 32225 }, - { 0x890C, 29173 }, - { 0x890D, 30866 }, - { 0x890E, 29290 }, - { 0x890F, 30093 }, - { 0x8910, 30268 }, - { 0x8911, 30813 }, - { 0x8912, 30970 }, - { 0x8913, 31090 }, - { 0x8914, 117661 }, - { 0x8915, 117686 }, - { 0x8916, 117710 }, - { 0x8917, 117775 }, - { 0x8918, 117726 }, - { 0x8919, 117751 }, - { 0x891A, 117804 }, - { 0x891B, 117771 }, - { 0x891C, 117698 }, - { 0x891D, 117779 }, - { 0x891E, 117649 }, - { 0x891F, 117759 }, - { 0x8920, 117702 }, - { 0x8921, 117796 }, - { 0x8922, 117800 }, - { 0x8923, 117734 }, - { 0x8924, 117670 }, - { 0x8925, 117763 }, - { 0x8926, 117738 }, - { 0x8927, 117742 }, - { 0x8928, 117767 }, - { 0x8929, 117682 }, - { 0x892A, 117730 }, - { 0x892B, 117694 }, - { 0x892C, 117706 }, - { 0x892D, 117678 }, - { 0x892E, 117755 }, - { 0x892F, 117674 }, - { 0x8930, 117722 }, - { 0x8931, 117718 }, - { 0x8932, 117714 }, - { 0x8933, 117657 }, - { 0x8934, 117746 }, - { 0x8935, 117653 }, - { 0x8936, 117790 }, - { 0x8937, 117665 }, - { 0x8938, 117784 }, - { 0x8939, 117690 }, - { 0x893A, 108551 }, - { 0x893B, 108576 }, - { 0x893C, 108648 }, - { 0x893D, 108668 }, - { 0x893E, 108581 }, - { 0x893F, 108623 }, - { 0x8940, 108683 }, - { 0x8941, 108658 }, - { 0x8942, 108561 }, - { 0x8943, 108633 }, - { 0x8944, 108591 }, - { 0x8945, 108596 }, - { 0x8946, 108566 }, - { 0x8947, 108638 }, - { 0x8948, 108601 }, - { 0x8949, 108606 }, - { 0x894A, 108643 }, - { 0x894B, 108571 }, - { 0x894C, 108586 }, - { 0x894D, 108618 }, - { 0x894E, 108678 }, - { 0x894F, 108663 }, - { 0x8950, 108673 }, - { 0x8951, 108693 }, - { 0x8952, 108556 }, - { 0x8953, 108653 }, - { 0x8954, 108688 }, - { 0x8955, 108706 }, - { 0x8956, 108736 }, - { 0x8957, 108628 }, - { 0x8958, 108711 }, - { 0x8959, 108722 }, - { 0x895A, 108717 }, - { 0x895B, 89582 }, - { 0x895C, 89602 }, - { 0x895D, 89647 }, - { 0x895E, 89667 }, - { 0x895F, 89607 }, - { 0x8960, 89632 }, - { 0x8961, 89689 }, - { 0x8962, 89652 }, - { 0x8963, 89587 }, - { 0x8964, 89637 }, - { 0x8965, 89617 }, - { 0x8966, 89592 }, - { 0x8967, 89642 }, - { 0x8968, 89622 }, - { 0x8969, 89597 }, - { 0x896A, 89612 }, - { 0x896B, 89627 }, - { 0x896C, 89684 }, - { 0x896D, 89657 }, - { 0x896E, 89679 }, - { 0x896F, 89699 }, - { 0x8970, 89705 }, - { 0x8971, 89672 }, - { 0x8972, 89710 }, - { 0x8973, 89662 }, - { 0x8974, 89694 }, - { 0x8975, 108611 }, - { 0x8976, 108698 }, - { 0x8977, 108728 }, - { 0x8978, 117214 }, - { 0x8979, 109464 }, - { 0x897A, 109584 }, - { 0x897B, 109564 }, - { 0x897C, 109499 }, - { 0x897D, 109449 }, - { 0x897E, 109469 }, - { 0x897F, 109509 }, - { 0x8980, 109544 }, - { 0x8981, 109424 }, - { 0x8982, 109459 }, - { 0x8983, 109494 }, - { 0x8984, 109519 }, - { 0x8985, 109539 }, - { 0x8986, 109604 }, - { 0x8987, 109454 }, - { 0x8988, 109429 }, - { 0x8989, 109569 }, - { 0x898A, 109559 }, - { 0x898B, 109504 }, - { 0x898C, 109609 }, - { 0x898D, 109589 }, - { 0x898E, 109439 }, - { 0x898F, 109489 }, - { 0x8990, 109484 }, - { 0x8991, 109514 }, - { 0x8992, 109554 }, - { 0x8993, 109479 }, - { 0x8994, 109594 }, - { 0x8995, 109549 }, - { 0x8996, 109524 }, - { 0x8997, 109599 }, - { 0x8998, 109529 }, - { 0x8999, 109534 }, - { 0x899A, 109574 }, - { 0x899B, 109444 }, - { 0x899C, 109579 }, - { 0x899D, 109389 }, - { 0x899E, 109419 }, - { 0x899F, 109399 }, - { 0x89A0, 109409 }, - { 0x89A1, 109404 }, - { 0x89A2, 109474 }, - { 0x89A3, 109394 }, - { 0x89A4, 109434 }, - { 0x89A5, 109414 }, - { 0x89A6, 109614 }, - { 0x89A7, 109630 }, - { 0x89A8, 109626 }, - { 0x89A9, 109638 }, - { 0x89AA, 109634 }, - { 0x89AB, 109622 }, - { 0x89AC, 109618 }, - { 0x89AD, 109321 }, - { 0x89AE, 109309 }, - { 0x89AF, 109327 }, - { 0x89B0, 109315 }, - { 0x89B1, 109333 }, - { 0x89B2, 109303 }, - { 0x89B3, 109652 }, - { 0x89B4, 109369 }, - { 0x89B5, 109339 }, - { 0x89B6, 109349 }, - { 0x89B7, 109384 }, - { 0x89B8, 109359 }, - { 0x89B9, 109354 }, - { 0x89BA, 109344 }, - { 0x89BB, 109379 }, - { 0x89BC, 109374 }, - { 0x89BD, 109364 }, - { 0x89BE, 109647 }, - { 0x89BF, 109642 }, - { 0x89C0, 17406 }, - { 0x89C1, 17373 }, - { 0x89C2, 17415 }, - { 0x89C3, 17376 }, - { 0x89C4, 17394 }, - { 0x89C5, 17382 }, - { 0x89C6, 17400 }, - { 0x89C7, 17403 }, - { 0x89C8, 17427 }, - { 0x89C9, 17412 }, - { 0x89CA, 17424 }, - { 0x89CB, 17421 }, - { 0x89CC, 17418 }, - { 0x89CD, 17391 }, - { 0x89CE, 17385 }, - { 0x89CF, 17409 }, - { 0x89D0, 17397 }, - { 0x89D1, 17361 }, - { 0x89D2, 17434 }, - { 0x89D3, 17388 }, - { 0x89D4, 17446 }, - { 0x89D5, 17367 }, - { 0x89D6, 17358 }, - { 0x89D7, 17430 }, - { 0x89D8, 17379 }, - { 0x89D9, 17442 }, - { 0x89DA, 17364 }, - { 0x89DB, 17370 }, - { 0x89DC, 17438 }, - { 0x89DD, 17355 }, - { 0x89DE, 17351 }, - { 0x89DF, 69154 }, - { 0x89E0, 69139 }, - { 0x89E1, 69160 }, - { 0x89E2, 69163 }, - { 0x89E3, 69166 }, - { 0x89E4, 69175 }, - { 0x89E5, 69217 }, - { 0x89E6, 69244 }, - { 0x89E7, 69187 }, - { 0x89E8, 69193 }, - { 0x89E9, 69199 }, - { 0x89EA, 69208 }, - { 0x89EB, 69250 }, - { 0x89EC, 69172 }, - { 0x89ED, 69205 }, - { 0x89EE, 69247 }, - { 0x89EF, 69181 }, - { 0x89F0, 69220 }, - { 0x89F1, 69214 }, - { 0x89F2, 69211 }, - { 0x89F3, 69184 }, - { 0x89F4, 69148 }, - { 0x89F5, 69157 }, - { 0x89F6, 69202 }, - { 0x89F7, 69190 }, - { 0x89F8, 69232 }, - { 0x89F9, 69178 }, - { 0x89FA, 69142 }, - { 0x89FB, 69145 }, - { 0x89FC, 69235 }, - { 0x89FD, 69151 }, - { 0x89FE, 69268 }, - { 0x89FF, 69256 }, - { 0x8A00, 69253 }, - { 0x8A01, 69241 }, - { 0x8A02, 69265 }, - { 0x8A03, 69226 }, - { 0x8A04, 69229 }, - { 0x8A05, 69196 }, - { 0x8A06, 69169 }, - { 0x8A07, 69223 }, - { 0x8A08, 69238 }, - { 0x8A09, 69259 }, - { 0x8A0A, 69262 }, - { 0x8A0B, 69100 }, - { 0x8A0C, 69106 }, - { 0x8A0D, 69097 }, - { 0x8A0E, 69103 }, - { 0x8A0F, 69127 }, - { 0x8A10, 69109 }, - { 0x8A11, 69115 }, - { 0x8A12, 69136 }, - { 0x8A13, 69121 }, - { 0x8A14, 69118 }, - { 0x8A15, 69112 }, - { 0x8A16, 69133 }, - { 0x8A17, 69130 }, - { 0x8A18, 69124 }, - { 0x8A19, 69094 }, - { 0x8A1A, 7194 }, - { 0x8A1B, 7242 }, - { 0x8A1C, 7238 }, - { 0x8A1D, 7246 }, - { 0x8A1E, 7286 }, - { 0x8A1F, 7182 }, - { 0x8A20, 7210 }, - { 0x8A21, 7202 }, - { 0x8A22, 7266 }, - { 0x8A23, 7206 }, - { 0x8A24, 7190 }, - { 0x8A25, 7230 }, - { 0x8A26, 7282 }, - { 0x8A27, 7234 }, - { 0x8A28, 7226 }, - { 0x8A29, 7198 }, - { 0x8A2A, 7250 }, - { 0x8A2B, 7254 }, - { 0x8A2C, 7258 }, - { 0x8A2D, 7262 }, - { 0x8A2E, 7186 }, - { 0x8A2F, 7274 }, - { 0x8A30, 7214 }, - { 0x8A31, 7218 }, - { 0x8A32, 7222 }, - { 0x8A33, 7278 }, - { 0x8A34, 7270 }, - { 0x8A35, 7126 }, - { 0x8A36, 7130 }, - { 0x8A37, 7138 }, - { 0x8A38, 7122 }, - { 0x8A39, 7134 }, - { 0x8A3A, 7166 }, - { 0x8A3B, 7142 }, - { 0x8A3C, 7150 }, - { 0x8A3D, 7178 }, - { 0x8A3E, 7158 }, - { 0x8A3F, 7154 }, - { 0x8A40, 7146 }, - { 0x8A41, 7174 }, - { 0x8A42, 7170 }, - { 0x8A43, 7162 }, - { 0x8A44, 179 }, - { 0x8A45, 239 }, - { 0x8A46, 271 }, - { 0x8A47, 275 }, - { 0x8A48, 243 }, - { 0x8A49, 247 }, - { 0x8A4A, 167 }, - { 0x8A4B, 191 }, - { 0x8A4C, 187 }, - { 0x8A4D, 195 }, - { 0x8A4E, 199 }, - { 0x8A4F, 203 }, - { 0x8A50, 175 }, - { 0x8A51, 235 }, - { 0x8A52, 231 }, - { 0x8A53, 267 }, - { 0x8A54, 223 }, - { 0x8A55, 227 }, - { 0x8A56, 183 }, - { 0x8A57, 255 }, - { 0x8A58, 279 }, - { 0x8A59, 251 }, - { 0x8A5A, 283 }, - { 0x8A5B, 259 }, - { 0x8A5C, 171 }, - { 0x8A5D, 219 }, - { 0x8A5E, 215 }, - { 0x8A5F, 207 }, - { 0x8A60, 263 }, - { 0x8A61, 211 }, - { 0x8A62, 115 }, - { 0x8A63, 119 }, - { 0x8A64, 123 }, - { 0x8A65, 151 }, - { 0x8A66, 127 }, - { 0x8A67, 135 }, - { 0x8A68, 163 }, - { 0x8A69, 143 }, - { 0x8A6A, 139 }, - { 0x8A6B, 131 }, - { 0x8A6C, 159 }, - { 0x8A6D, 155 }, - { 0x8A6E, 147 }, - { 0x8A6F, 287 }, - { 0x8A70, 102973 }, - { 0x8A71, 102985 }, - { 0x8A72, 102979 }, - { 0x8A73, 103204 }, - { 0x8A74, 103207 }, - { 0x8A75, 102976 }, - { 0x8A76, 102982 }, - { 0x8A77, 103286 }, - { 0x8A78, 102970 }, - { 0x8A79, 103201 }, - { 0x8A7A, 102967 }, - { 0x8A7B, 103258 }, - { 0x8A7C, 103294 }, - { 0x8A7D, 103270 }, - { 0x8A7E, 103302 }, - { 0x8A7F, 103266 }, - { 0x8A80, 103234 }, - { 0x8A81, 103274 }, - { 0x8A82, 103254 }, - { 0x8A83, 103290 }, - { 0x8A84, 103250 }, - { 0x8A85, 103246 }, - { 0x8A86, 103282 }, - { 0x8A87, 103242 }, - { 0x8A88, 103238 }, - { 0x8A89, 103278 }, - { 0x8A8A, 103262 }, - { 0x8A8B, 103298 }, - { 0x8A8C, 37375 }, - { 0x8A8D, 37380 }, - { 0x8A8E, 37385 }, - { 0x8A8F, 37695 }, - { 0x8A90, 37846 }, - { 0x8A91, 37750 }, - { 0x8A92, 37610 }, - { 0x8A93, 38282 }, - { 0x8A94, 37390 }, - { 0x8A95, 37395 }, - { 0x8A96, 37400 }, - { 0x8A97, 38004 }, - { 0x8A98, 37964 }, - { 0x8A99, 37944 }, - { 0x8A9A, 37595 }, - { 0x8A9B, 38358 }, - { 0x8A9C, 38090 }, - { 0x8A9D, 37675 }, - { 0x8A9E, 37615 }, - { 0x8A9F, 38069 }, - { 0x8AA0, 37405 }, - { 0x8AA1, 37410 }, - { 0x8AA2, 37415 }, - { 0x8AA3, 37665 }, - { 0x8AA4, 37841 }, - { 0x8AA5, 38145 }, - { 0x8AA6, 38333 }, - { 0x8AA7, 37420 }, - { 0x8AA8, 37425 }, - { 0x8AA9, 37430 }, - { 0x8AAA, 38125 }, - { 0x8AAB, 37856 }, - { 0x8AAC, 37886 }, - { 0x8AAD, 38064 }, - { 0x8AAE, 37435 }, - { 0x8AAF, 37440 }, - { 0x8AB0, 37445 }, - { 0x8AB1, 38191 }, - { 0x8AB2, 37871 }, - { 0x8AB3, 38201 }, - { 0x8AB4, 38110 }, - { 0x8AB5, 38059 }, - { 0x8AB6, 38029 }, - { 0x8AB7, 38049 }, - { 0x8AB8, 38363 }, - { 0x8AB9, 38277 }, - { 0x8ABA, 37465 }, - { 0x8ABB, 37470 }, - { 0x8ABC, 37475 }, - { 0x8ABD, 38186 }, - { 0x8ABE, 37954 }, - { 0x8ABF, 38054 }, - { 0x8AC0, 37765 }, - { 0x8AC1, 38368 }, - { 0x8AC2, 37495 }, - { 0x8AC3, 37500 }, - { 0x8AC4, 37505 }, - { 0x8AC5, 37790 }, - { 0x8AC6, 37735 }, - { 0x8AC7, 37640 }, - { 0x8AC8, 38140 }, - { 0x8AC9, 37923 }, - { 0x8ACA, 37450 }, - { 0x8ACB, 37455 }, - { 0x8ACC, 37460 }, - { 0x8ACD, 37816 }, - { 0x8ACE, 38287 }, - { 0x8ACF, 38292 }, - { 0x8AD0, 37480 }, - { 0x8AD1, 37485 }, - { 0x8AD2, 37490 }, - { 0x8AD3, 37826 }, - { 0x8AD4, 37645 }, - { 0x8AD5, 37891 }, - { 0x8AD6, 37715 }, - { 0x8AD7, 37510 }, - { 0x8AD8, 37515 }, - { 0x8AD9, 37520 }, - { 0x8ADA, 38160 }, - { 0x8ADB, 37939 }, - { 0x8ADC, 38175 }, - { 0x8ADD, 37685 }, - { 0x8ADE, 38261 }, - { 0x8ADF, 37525 }, - { 0x8AE0, 37530 }, - { 0x8AE1, 37535 }, - { 0x8AE2, 37918 }, - { 0x8AE3, 37770 }, - { 0x8AE4, 38079 }, - { 0x8AE5, 37979 }, - { 0x8AE6, 37540 }, - { 0x8AE7, 37545 }, - { 0x8AE8, 37550 }, - { 0x8AE9, 37760 }, - { 0x8AEA, 37745 }, - { 0x8AEB, 38039 }, - { 0x8AEC, 37811 }, - { 0x8AED, 38373 }, - { 0x8AEE, 37876 }, - { 0x8AEF, 37555 }, - { 0x8AF0, 37560 }, - { 0x8AF1, 37565 }, - { 0x8AF2, 37959 }, - { 0x8AF3, 38221 }, - { 0x8AF4, 38267 }, - { 0x8AF5, 37575 }, - { 0x8AF6, 38318 }, - { 0x8AF7, 37570 }, - { 0x8AF8, 37851 }, - { 0x8AF9, 37580 }, - { 0x8AFA, 38074 }, - { 0x8AFB, 37785 }, - { 0x8AFC, 38014 }, - { 0x8AFD, 37635 }, - { 0x8AFE, 38024 }, - { 0x8AFF, 37806 }, - { 0x8B00, 37630 }, - { 0x8B01, 38353 }, - { 0x8B02, 37600 }, - { 0x8B03, 37821 }, - { 0x8B04, 37585 }, - { 0x8B05, 37780 }, - { 0x8B06, 37949 }, - { 0x8B07, 38105 }, - { 0x8B08, 38155 }, - { 0x8B09, 37974 }, - { 0x8B0A, 38170 }, - { 0x8B0B, 38009 }, - { 0x8B0C, 37800 }, - { 0x8B0D, 37902 }, - { 0x8B0E, 38302 }, - { 0x8B0F, 38150 }, - { 0x8B10, 37929 }, - { 0x8B11, 38216 }, - { 0x8B12, 38338 }, - { 0x8B13, 38206 }, - { 0x8B14, 38211 }, - { 0x8B15, 38308 }, - { 0x8B16, 37655 }, - { 0x8B17, 38272 }, - { 0x8B18, 37710 }, - { 0x8B19, 37866 }, - { 0x8B1A, 37620 }, - { 0x8B1B, 37775 }, - { 0x8B1C, 37625 }, - { 0x8B1D, 37881 }, - { 0x8B1E, 37700 }, - { 0x8B1F, 38100 }, - { 0x8B20, 37680 }, - { 0x8B21, 37984 }, - { 0x8B22, 37605 }, - { 0x8B23, 38328 }, - { 0x8B24, 37730 }, - { 0x8B25, 38241 }, - { 0x8B26, 38251 }, - { 0x8B27, 38323 }, - { 0x8B28, 38180 }, - { 0x8B29, 37896 }, - { 0x8B2A, 38084 }, - { 0x8B2B, 38034 }, - { 0x8B2C, 37831 }, - { 0x8B2D, 37740 }, - { 0x8B2E, 37590 }, - { 0x8B2F, 37913 }, - { 0x8B30, 37934 }, - { 0x8B31, 38165 }, - { 0x8B32, 37994 }, - { 0x8B33, 37650 }, - { 0x8B34, 38115 }, - { 0x8B35, 37836 }, - { 0x8B36, 37908 }, - { 0x8B37, 37725 }, - { 0x8B38, 37720 }, - { 0x8B39, 38231 }, - { 0x8B3A, 37989 }, - { 0x8B3B, 38019 }, - { 0x8B3C, 37999 }, - { 0x8B3D, 38343 }, - { 0x8B3E, 37969 }, - { 0x8B3F, 37705 }, - { 0x8B40, 37690 }, - { 0x8B41, 38135 }, - { 0x8B42, 38348 }, - { 0x8B43, 38120 }, - { 0x8B44, 38044 }, - { 0x8B45, 38297 }, - { 0x8B46, 38313 }, - { 0x8B47, 38130 }, - { 0x8B48, 38246 }, - { 0x8B49, 37795 }, - { 0x8B4A, 38095 }, - { 0x8B4B, 37755 }, - { 0x8B4C, 38196 }, - { 0x8B4D, 37660 }, - { 0x8B4E, 38226 }, - { 0x8B4F, 37861 }, - { 0x8B50, 37670 }, - { 0x8B51, 37339 }, - { 0x8B52, 37347 }, - { 0x8B53, 37371 }, - { 0x8B54, 37355 }, - { 0x8B55, 37351 }, - { 0x8B56, 37343 }, - { 0x8B57, 37367 }, - { 0x8B58, 37363 }, - { 0x8B59, 37359 }, - { 0x8B5A, 38389 }, - { 0x8B5B, 38384 }, - { 0x8B5C, 38400 }, - { 0x8B5D, 38410 }, - { 0x8B5E, 38378 }, - { 0x8B5F, 38394 }, - { 0x8B60, 38405 }, - { 0x8B61, 17859 }, - { 0x8B62, 17879 }, - { 0x8B63, 17867 }, - { 0x8B64, 17871 }, - { 0x8B65, 17767 }, - { 0x8B66, 17883 }, - { 0x8B67, 17783 }, - { 0x8B68, 17803 }, - { 0x8B69, 17787 }, - { 0x8B6A, 17751 }, - { 0x8B6B, 17771 }, - { 0x8B6C, 17755 }, - { 0x8B6D, 17759 }, - { 0x8B6E, 17811 }, - { 0x8B6F, 17851 }, - { 0x8B70, 17847 }, - { 0x8B71, 17835 }, - { 0x8B72, 17819 }, - { 0x8B73, 17799 }, - { 0x8B74, 17763 }, - { 0x8B75, 17863 }, - { 0x8B76, 17807 }, - { 0x8B77, 17779 }, - { 0x8B78, 17875 }, - { 0x8B79, 17775 }, - { 0x8B7A, 17839 }, - { 0x8B7B, 17791 }, - { 0x8B7C, 17831 }, - { 0x8B7D, 17795 }, - { 0x8B7E, 17823 }, - { 0x8B7F, 17815 }, - { 0x8B80, 17855 }, - { 0x8B81, 17827 }, - { 0x8B82, 17843 }, - { 0x8B83, 17720 }, - { 0x8B84, 17740 }, - { 0x8B85, 17728 }, - { 0x8B86, 17732 }, - { 0x8B87, 17628 }, - { 0x8B88, 17744 }, - { 0x8B89, 17644 }, - { 0x8B8A, 17664 }, - { 0x8B8B, 17648 }, - { 0x8B8C, 17612 }, - { 0x8B8D, 17632 }, - { 0x8B8E, 17616 }, - { 0x8B8F, 17620 }, - { 0x8B90, 17672 }, - { 0x8B91, 17712 }, - { 0x8B92, 17708 }, - { 0x8B93, 17696 }, - { 0x8B94, 17680 }, - { 0x8B95, 17660 }, - { 0x8B96, 17624 }, - { 0x8B97, 17724 }, - { 0x8B98, 17668 }, - { 0x8B99, 17640 }, - { 0x8B9A, 17736 }, - { 0x8B9B, 17636 }, - { 0x8B9C, 17700 }, - { 0x8B9D, 17652 }, - { 0x8B9E, 17692 }, - { 0x8B9F, 17656 }, - { 0x8BA0, 17684 }, - { 0x8BA1, 17676 }, - { 0x8BA2, 17716 }, - { 0x8BA3, 17688 }, - { 0x8BA4, 17704 }, - { 0x8BA5, 17575 }, - { 0x8BA6, 17748 }, - { 0x8BA7, 17902 }, - { 0x8BA8, 17608 }, - { 0x8BA9, 17899 }, - { 0x8BAA, 17895 }, - { 0x8BAB, 17610 }, - { 0x8BAC, 17905 }, - { 0x8BAD, 17596 }, - { 0x8BAE, 17578 }, - { 0x8BAF, 17584 }, - { 0x8BB0, 17605 }, - { 0x8BB1, 17590 }, - { 0x8BB2, 17587 }, - { 0x8BB3, 17581 }, - { 0x8BB4, 17602 }, - { 0x8BB5, 17599 }, - { 0x8BB6, 17593 }, - { 0x8BB7, 17891 }, - { 0x8BB8, 17887 }, - { 0x8BB9, 27071 }, - { 0x8BBA, 27108 }, - { 0x8BBB, 27227 }, - { 0x8BBC, 27136 }, - { 0x8BBD, 27122 }, - { 0x8BBE, 27085 }, - { 0x8BBF, 27204 }, - { 0x8BC0, 27168 }, - { 0x8BC1, 27154 }, - { 0x8BC2, 27099 }, - { 0x8BC3, 27272 }, - { 0x8BC4, 27263 }, - { 0x8BC5, 27191 }, - { 0x8BC6, 27182 }, - { 0x8BC7, 27218 }, - { 0x8BC8, 27285 }, - { 0x8BC9, 27241 }, - { 0x8BCA, 27254 }, - { 0x8BCB, 27075 }, - { 0x8BCC, 27112 }, - { 0x8BCD, 27231 }, - { 0x8BCE, 27140 }, - { 0x8BCF, 27126 }, - { 0x8BD0, 27089 }, - { 0x8BD1, 27208 }, - { 0x8BD2, 27172 }, - { 0x8BD3, 27158 }, - { 0x8BD4, 27080 }, - { 0x8BD5, 27117 }, - { 0x8BD6, 27236 }, - { 0x8BD7, 27145 }, - { 0x8BD8, 27131 }, - { 0x8BD9, 27094 }, - { 0x8BDA, 27213 }, - { 0x8BDB, 27177 }, - { 0x8BDC, 27163 }, - { 0x8BDD, 27103 }, - { 0x8BDE, 27276 }, - { 0x8BDF, 27267 }, - { 0x8BE0, 27195 }, - { 0x8BE1, 27186 }, - { 0x8BE2, 27222 }, - { 0x8BE3, 27289 }, - { 0x8BE4, 27245 }, - { 0x8BE5, 27258 }, - { 0x8BE6, 27150 }, - { 0x8BE7, 27250 }, - { 0x8BE8, 27063 }, - { 0x8BE9, 27200 }, - { 0x8BEA, 27281 }, - { 0x8BEB, 27294 }, - { 0x8BEC, 27304 }, - { 0x8BED, 27334 }, - { 0x8BEE, 27314 }, - { 0x8BEF, 27309 }, - { 0x8BF0, 27299 }, - { 0x8BF1, 27329 }, - { 0x8BF2, 27324 }, - { 0x8BF3, 27319 }, - { 0x8BF4, 27375 }, - { 0x8BF5, 27360 }, - { 0x8BF6, 27355 }, - { 0x8BF7, 27365 }, - { 0x8BF8, 27067 }, - { 0x8BF9, 27339 }, - { 0x8BFA, 27350 }, - { 0x8BFB, 27344 }, - { 0x8BFC, 27370 }, - { 0x8BFD, 77811 }, - { 0x8BFE, 77848 }, - { 0x8BFF, 77959 }, - { 0x8C00, 77876 }, - { 0x8C01, 77862 }, - { 0x8C02, 77825 }, - { 0x8C03, 77936 }, - { 0x8C04, 77904 }, - { 0x8C05, 77890 }, - { 0x8C06, 77839 }, - { 0x8C07, 78000 }, - { 0x8C08, 77991 }, - { 0x8C09, 77927 }, - { 0x8C0A, 77918 }, - { 0x8C0B, 77950 }, - { 0x8C0C, 78009 }, - { 0x8C0D, 77973 }, - { 0x8C0E, 77982 }, - { 0x8C0F, 77815 }, - { 0x8C10, 77852 }, - { 0x8C11, 77963 }, - { 0x8C12, 77880 }, - { 0x8C13, 77866 }, - { 0x8C14, 77829 }, - { 0x8C15, 77940 }, - { 0x8C16, 77908 }, - { 0x8C17, 77894 }, - { 0x8C18, 77820 }, - { 0x8C19, 77857 }, - { 0x8C1A, 77968 }, - { 0x8C1B, 77885 }, - { 0x8C1C, 77871 }, - { 0x8C1D, 77834 }, - { 0x8C1E, 77945 }, - { 0x8C1F, 77913 }, - { 0x8C20, 77899 }, - { 0x8C21, 77843 }, - { 0x8C22, 78004 }, - { 0x8C23, 77995 }, - { 0x8C24, 77931 }, - { 0x8C25, 77922 }, - { 0x8C26, 77954 }, - { 0x8C27, 78013 }, - { 0x8C28, 77977 }, - { 0x8C29, 77986 }, - { 0x8C2A, 78028 }, - { 0x8C2B, 78053 }, - { 0x8C2C, 78095 }, - { 0x8C2D, 78069 }, - { 0x8C2E, 78064 }, - { 0x8C2F, 78031 }, - { 0x8C30, 78090 }, - { 0x8C31, 78085 }, - { 0x8C32, 78080 }, - { 0x8C33, 78042 }, - { 0x8C34, 78074 }, - { 0x8C35, 78036 }, - { 0x8C36, 78058 }, - { 0x8C37, 78047 }, - { 0x8C38, 78018 }, - { 0x8C39, 78023 }, - { 0x8C3A, 51823 }, - { 0x8C3B, 51778 }, - { 0x8C3C, 51826 }, - { 0x8C3D, 51784 }, - { 0x8C3E, 51814 }, - { 0x8C3F, 51847 }, - { 0x8C40, 51790 }, - { 0x8C41, 51808 }, - { 0x8C42, 51817 }, - { 0x8C43, 51793 }, - { 0x8C44, 51796 }, - { 0x8C45, 51832 }, - { 0x8C46, 51835 }, - { 0x8C47, 51838 }, - { 0x8C48, 51775 }, - { 0x8C49, 51787 }, - { 0x8C4A, 51805 }, - { 0x8C4B, 51799 }, - { 0x8C4C, 51802 }, - { 0x8C4D, 51853 }, - { 0x8C4E, 51811 }, - { 0x8C4F, 51844 }, - { 0x8C50, 51829 }, - { 0x8C51, 51841 }, - { 0x8C52, 51781 }, - { 0x8C53, 51820 }, - { 0x8C54, 51850 }, - { 0x8C55, 52026 }, - { 0x8C56, 52038 }, - { 0x8C57, 52030 }, - { 0x8C58, 52034 }, - { 0x8C59, 52046 }, - { 0x8C5A, 52090 }, - { 0x8C5B, 52062 }, - { 0x8C5C, 52058 }, - { 0x8C5D, 52086 }, - { 0x8C5E, 52066 }, - { 0x8C5F, 52070 }, - { 0x8C60, 52098 }, - { 0x8C61, 52102 }, - { 0x8C62, 52106 }, - { 0x8C63, 52042 }, - { 0x8C64, 52054 }, - { 0x8C65, 52078 }, - { 0x8C66, 52074 }, - { 0x8C67, 52118 }, - { 0x8C68, 52082 }, - { 0x8C69, 52110 }, - { 0x8C6A, 52094 }, - { 0x8C6B, 52050 }, - { 0x8C6C, 52114 }, - { 0x8C6D, 51992 }, - { 0x8C6E, 51972 }, - { 0x8C6F, 51988 }, - { 0x8C70, 51976 }, - { 0x8C71, 52000 }, - { 0x8C72, 52004 }, - { 0x8C73, 51964 }, - { 0x8C74, 51984 }, - { 0x8C75, 51980 }, - { 0x8C76, 52012 }, - { 0x8C77, 51996 }, - { 0x8C78, 51968 }, - { 0x8C79, 52008 }, - { 0x8C7A, 52021 }, - { 0x8C7B, 52016 }, - { 0x8C7C, 52140 }, - { 0x8C7D, 52188 }, - { 0x8C7E, 52156 }, - { 0x8C7F, 52152 }, - { 0x8C80, 52172 }, - { 0x8C81, 52180 }, - { 0x8C82, 52160 }, - { 0x8C83, 52196 }, - { 0x8C84, 52200 }, - { 0x8C85, 52204 }, - { 0x8C86, 52136 }, - { 0x8C87, 52148 }, - { 0x8C88, 52168 }, - { 0x8C89, 52164 }, - { 0x8C8A, 52216 }, - { 0x8C8B, 52176 }, - { 0x8C8C, 52208 }, - { 0x8C8D, 52192 }, - { 0x8C8E, 52144 }, - { 0x8C8F, 52184 }, - { 0x8C90, 52212 }, - { 0x8C91, 52220 }, - { 0x8C92, 52225 }, - { 0x8C93, 51920 }, - { 0x8C94, 51860 }, - { 0x8C95, 51924 }, - { 0x8C96, 51868 }, - { 0x8C97, 51880 }, - { 0x8C98, 51908 }, - { 0x8C99, 51952 }, - { 0x8C9A, 51876 }, - { 0x8C9B, 51900 }, - { 0x8C9C, 51912 }, - { 0x8C9D, 51884 }, - { 0x8C9E, 51932 }, - { 0x8C9F, 51936 }, - { 0x8CA0, 51940 }, - { 0x8CA1, 51856 }, - { 0x8CA2, 51872 }, - { 0x8CA3, 51896 }, - { 0x8CA4, 51888 }, - { 0x8CA5, 51892 }, - { 0x8CA6, 51960 }, - { 0x8CA7, 51904 }, - { 0x8CA8, 51948 }, - { 0x8CA9, 51928 }, - { 0x8CAA, 51944 }, - { 0x8CAB, 51864 }, - { 0x8CAC, 51916 }, - { 0x8CAD, 51956 }, - { 0x8CAE, 52234 }, - { 0x8CAF, 52290 }, - { 0x8CB0, 52242 }, - { 0x8CB1, 52278 }, - { 0x8CB2, 52318 }, - { 0x8CB3, 52250 }, - { 0x8CB4, 52270 }, - { 0x8CB5, 52282 }, - { 0x8CB6, 52254 }, - { 0x8CB7, 52298 }, - { 0x8CB8, 52302 }, - { 0x8CB9, 52306 }, - { 0x8CBA, 52230 }, - { 0x8CBB, 52246 }, - { 0x8CBC, 52266 }, - { 0x8CBD, 52258 }, - { 0x8CBE, 52262 }, - { 0x8CBF, 52326 }, - { 0x8CC0, 52274 }, - { 0x8CC1, 52314 }, - { 0x8CC2, 52294 }, - { 0x8CC3, 52310 }, - { 0x8CC4, 52238 }, - { 0x8CC5, 52286 }, - { 0x8CC6, 52322 }, - { 0x8CC7, 52128 }, - { 0x8CC8, 52122 }, - { 0x8CC9, 74367 }, - { 0x8CCA, 74464 }, - { 0x8CCB, 74419 }, - { 0x8CCC, 74445 }, - { 0x8CCD, 74330 }, - { 0x8CCE, 74438 }, - { 0x8CCF, 74483 }, - { 0x8CD0, 74325 }, - { 0x8CD1, 74359 }, - { 0x8CD2, 74478 }, - { 0x8CD3, 74396 }, - { 0x8CD4, 74381 }, - { 0x8CD5, 74344 }, - { 0x8CD6, 74459 }, - { 0x8CD7, 74433 }, - { 0x8CD8, 74411 }, - { 0x8CD9, 74315 }, - { 0x8CDA, 74349 }, - { 0x8CDB, 74468 }, - { 0x8CDC, 74386 }, - { 0x8CDD, 74371 }, - { 0x8CDE, 74334 }, - { 0x8CDF, 74449 }, - { 0x8CE0, 74423 }, - { 0x8CE1, 74401 }, - { 0x8CE2, 74320 }, - { 0x8CE3, 74354 }, - { 0x8CE4, 74473 }, - { 0x8CE5, 74391 }, - { 0x8CE6, 74376 }, - { 0x8CE7, 74339 }, - { 0x8CE8, 74454 }, - { 0x8CE9, 74428 }, - { 0x8CEA, 74406 }, - { 0x8CEB, 74416 }, - { 0x8CEC, 74493 }, - { 0x8CED, 74490 }, - { 0x8CEE, 74505 }, - { 0x8CEF, 74496 }, - { 0x8CF0, 74499 }, - { 0x8CF1, 74487 }, - { 0x8CF2, 74502 }, - { 0x8CF3, 74442 }, - { 0x8CF4, 74364 }, - { 0x8CF5, 54352 }, - { 0x8CF6, 54503 }, - { 0x8CF7, 54506 }, - { 0x8CF8, 54509 }, - { 0x8CF9, 54512 }, - { 0x8CFA, 54515 }, - { 0x8CFB, 54518 }, - { 0x8CFC, 54521 }, - { 0x8CFD, 54524 }, - { 0x8CFE, 54527 }, - { 0x8CFF, 54530 }, - { 0x8D00, 54533 }, - { 0x8D01, 54536 }, - { 0x8D02, 54539 }, - { 0x8D03, 54542 }, - { 0x8D04, 54545 }, - { 0x8D05, 54548 }, - { 0x8D06, 54551 }, - { 0x8D07, 54554 }, - { 0x8D08, 54557 }, - { 0x8D09, 54560 }, - { 0x8D0A, 54563 }, - { 0x8D0B, 54566 }, - { 0x8D0C, 54569 }, - { 0x8D0D, 54572 }, - { 0x8D0E, 54575 }, - { 0x8D0F, 54578 }, - { 0x8D10, 54581 }, - { 0x8D11, 54584 }, - { 0x8D12, 54587 }, - { 0x8D13, 54590 }, - { 0x8D14, 54593 }, - { 0x8D15, 54596 }, - { 0x8D16, 54599 }, - { 0x8D17, 54602 }, - { 0x8D18, 54605 }, - { 0x8D19, 54608 }, - { 0x8D1A, 54611 }, - { 0x8D1B, 54614 }, - { 0x8D1C, 54617 }, - { 0x8D1D, 54620 }, - { 0x8D1E, 54623 }, - { 0x8D1F, 54626 }, - { 0x8D20, 54629 }, - { 0x8D21, 54632 }, - { 0x8D22, 54635 }, - { 0x8D23, 54638 }, - { 0x8D24, 54641 }, - { 0x8D25, 54644 }, - { 0x8D26, 54647 }, - { 0x8D27, 54348 }, - { 0x8D28, 54356 }, - { 0x8D29, 54359 }, - { 0x8D2A, 54362 }, - { 0x8D2B, 54365 }, - { 0x8D2C, 54368 }, - { 0x8D2D, 54371 }, - { 0x8D2E, 54374 }, - { 0x8D2F, 54377 }, - { 0x8D30, 54380 }, - { 0x8D31, 54383 }, - { 0x8D32, 54386 }, - { 0x8D33, 54389 }, - { 0x8D34, 54392 }, - { 0x8D35, 54395 }, - { 0x8D36, 54398 }, - { 0x8D37, 54401 }, - { 0x8D38, 54404 }, - { 0x8D39, 54407 }, - { 0x8D3A, 54410 }, - { 0x8D3B, 54413 }, - { 0x8D3C, 54416 }, - { 0x8D3D, 54419 }, - { 0x8D3E, 54422 }, - { 0x8D3F, 54425 }, - { 0x8D40, 54428 }, - { 0x8D41, 54431 }, - { 0x8D42, 54434 }, - { 0x8D43, 54437 }, - { 0x8D44, 54440 }, - { 0x8D45, 54443 }, - { 0x8D46, 54446 }, - { 0x8D47, 54449 }, - { 0x8D48, 54452 }, - { 0x8D49, 54455 }, - { 0x8D4A, 54458 }, - { 0x8D4B, 54461 }, - { 0x8D4C, 54464 }, - { 0x8D4D, 54467 }, - { 0x8D4E, 54470 }, - { 0x8D4F, 54473 }, - { 0x8D50, 54476 }, - { 0x8D51, 54479 }, - { 0x8D52, 54482 }, - { 0x8D53, 54485 }, - { 0x8D54, 54488 }, - { 0x8D55, 54491 }, - { 0x8D56, 54494 }, - { 0x8D57, 54497 }, - { 0x8D58, 54500 }, - { 0x8D59, 78200 }, - { 0x8D5A, 78126 }, - { 0x8D5B, 78190 }, - { 0x8D5C, 78380 }, - { 0x8D5D, 78236 }, - { 0x8D5E, 78213 }, - { 0x8D5F, 78150 }, - { 0x8D60, 78360 }, - { 0x8D61, 78320 }, - { 0x8D62, 78296 }, - { 0x8D63, 78170 }, - { 0x8D64, 78256 }, - { 0x8D65, 78404 }, - { 0x8D66, 78340 }, - { 0x8D67, 78276 }, - { 0x8D68, 78121 }, - { 0x8D69, 78185 }, - { 0x8D6A, 78375 }, - { 0x8D6B, 78231 }, - { 0x8D6C, 78208 }, - { 0x8D6D, 78145 }, - { 0x8D6E, 78355 }, - { 0x8D6F, 78315 }, - { 0x8D70, 78291 }, - { 0x8D71, 78165 }, - { 0x8D72, 78251 }, - { 0x8D73, 78399 }, - { 0x8D74, 78335 }, - { 0x8D75, 78271 }, - { 0x8D76, 78136 }, - { 0x8D77, 78131 }, - { 0x8D78, 78195 }, - { 0x8D79, 78385 }, - { 0x8D7A, 78241 }, - { 0x8D7B, 78218 }, - { 0x8D7C, 78155 }, - { 0x8D7D, 78365 }, - { 0x8D7E, 78325 }, - { 0x8D7F, 78301 }, - { 0x8D80, 78175 }, - { 0x8D81, 78261 }, - { 0x8D82, 78409 }, - { 0x8D83, 78345 }, - { 0x8D84, 78281 }, - { 0x8D85, 78306 }, - { 0x8D86, 78116 }, - { 0x8D87, 78180 }, - { 0x8D88, 78370 }, - { 0x8D89, 78226 }, - { 0x8D8A, 78203 }, - { 0x8D8B, 78140 }, - { 0x8D8C, 78350 }, - { 0x8D8D, 78310 }, - { 0x8D8E, 78286 }, - { 0x8D8F, 78160 }, - { 0x8D90, 78246 }, - { 0x8D91, 78394 }, - { 0x8D92, 78330 }, - { 0x8D93, 78266 }, - { 0x8D94, 78390 }, - { 0x8D95, 78223 }, - { 0x8D96, 78414 }, - { 0x8D97, 78417 }, - { 0x8D98, 78420 }, - { 0x8D99, 78423 }, - { 0x8D9A, 78426 }, - { 0x8D9B, 78429 }, - { 0x8D9C, 78432 }, - { 0x8D9D, 78435 }, - { 0x8D9E, 78438 }, - { 0x8D9F, 78441 }, - { 0x8DA0, 78444 }, - { 0x8DA1, 78447 }, - { 0x8DA2, 78450 }, - { 0x8DA3, 78453 }, - { 0x8DA4, 78456 }, - { 0x8DA5, 78459 }, - { 0x8DA6, 78462 }, - { 0x8DA7, 78465 }, - { 0x8DA8, 78468 }, - { 0x8DA9, 78471 }, - { 0x8DAA, 78474 }, - { 0x8DAB, 22613 }, - { 0x8DAC, 22617 }, - { 0x8DAD, 22563 }, - { 0x8DAE, 22581 }, - { 0x8DAF, 22644 }, - { 0x8DB0, 22599 }, - { 0x8DB1, 22590 }, - { 0x8DB2, 22572 }, - { 0x8DB3, 22635 }, - { 0x8DB4, 22626 }, - { 0x8DB5, 22608 }, - { 0x8DB6, 72859 }, - { 0x8DB7, 72970 }, - { 0x8DB8, 71218 }, - { 0x8DB9, 72226 }, - { 0x8DBA, 71550 }, - { 0x8DBB, 144141 }, - { 0x8DBC, 144146 }, - { 0x8DBD, 144151 }, - { 0x8DBE, 144156 }, - { 0x8DBF, 144161 }, - { 0x8DC0, 144166 }, - { 0x8DC1, 144171 }, - { 0x8DC2, 144176 }, - { 0x8DC3, 144181 }, - { 0x8DC4, 144186 }, - { 0x8DC5, 144191 }, - { 0x8DC6, 144196 }, - { 0x8DC7, 144201 }, - { 0x8DC8, 144206 }, - { 0x8DC9, 144211 }, - { 0x8DCA, 144216 }, - { 0x8DCB, 144221 }, - { 0x8DCC, 144226 }, - { 0x8DCD, 144231 }, - { 0x8DCE, 144236 }, - { 0x8DCF, 144241 }, - { 0x8DD0, 144246 }, - { 0x8DD1, 144251 }, - { 0x8DD2, 144256 }, - { 0x8DD3, 144261 }, - { 0x8DD4, 144266 }, - { 0x8DD5, 111145 }, - { 0x8DD6, 71660 }, - { 0x8DD7, 71666 }, - { 0x8DD8, 71195 }, - { 0x8DD9, 71197 }, - { 0x8DDA, 87549 }, - { 0x8DDB, 80944 }, - { 0x8DDC, 80949 }, - { 0x8DDD, 80954 }, - { 0x8DDE, 80959 }, - { 0x8DDF, 80964 }, - { 0x8DE0, 80969 }, - { 0x8DE1, 80974 }, - { 0x8DE2, 80979 }, - { 0x8DE3, 80984 }, - { 0x8DE4, 80989 }, - { 0x8DE5, 80994 }, - { 0x8DE6, 80999 }, - { 0x8DE7, 81004 }, - { 0x8DE8, 81009 }, - { 0x8DE9, 81014 }, - { 0x8DEA, 81019 }, - { 0x8DEB, 81024 }, - { 0x8DEC, 81029 }, - { 0x8DED, 81034 }, - { 0x8DEE, 81039 }, - { 0x8DEF, 81044 }, - { 0x8DF0, 81049 }, - { 0x8DF1, 81054 }, - { 0x8DF2, 81059 }, - { 0x8DF3, 81064 }, - { 0x8DF4, 81069 }, - { 0x8DF5, 80697 }, - { 0x8DF6, 80701 }, - { 0x8DF7, 80707 }, - { 0x8DF8, 80709 }, - { 0x8DF9, 80906 }, - { 0x8DFA, 80718 }, - { 0x8DFB, 108886 }, - { 0x8DFC, 108892 }, - { 0x8DFD, 108898 }, - { 0x8DFE, 108904 }, - { 0x8DFF, 108910 }, - { 0x8E00, 108916 }, - { 0x8E01, 108922 }, - { 0x8E02, 108928 }, - { 0x8E03, 108934 }, - { 0x8E04, 108940 }, - { 0x8E05, 108946 }, - { 0x8E06, 108952 }, - { 0x8E07, 108958 }, - { 0x8E08, 108964 }, - { 0x8E09, 108970 }, - { 0x8E0A, 108976 }, - { 0x8E0B, 108982 }, - { 0x8E0C, 108988 }, - { 0x8E0D, 108994 }, - { 0x8E0E, 109000 }, - { 0x8E0F, 109006 }, - { 0x8E10, 109012 }, - { 0x8E11, 109018 }, - { 0x8E12, 109024 }, - { 0x8E13, 109030 }, - { 0x8E14, 109036 }, - { 0x8E15, 64614 }, - { 0x8E16, 64617 }, - { 0x8E17, 64620 }, - { 0x8E18, 71193 }, - { 0x8E19, 71186 }, - { 0x8E1A, 71275 }, - { 0x8E1B, 109107 }, - { 0x8E1C, 109113 }, - { 0x8E1D, 109119 }, - { 0x8E1E, 109125 }, - { 0x8E1F, 109131 }, - { 0x8E20, 109137 }, - { 0x8E21, 109143 }, - { 0x8E22, 109149 }, - { 0x8E23, 109155 }, - { 0x8E24, 109161 }, - { 0x8E25, 109167 }, - { 0x8E26, 109173 }, - { 0x8E27, 109179 }, - { 0x8E28, 109185 }, - { 0x8E29, 109191 }, - { 0x8E2A, 109197 }, - { 0x8E2B, 109203 }, - { 0x8E2C, 109209 }, - { 0x8E2D, 109215 }, - { 0x8E2E, 109221 }, - { 0x8E2F, 109227 }, - { 0x8E30, 109233 }, - { 0x8E31, 109239 }, - { 0x8E32, 109245 }, - { 0x8E33, 109251 }, - { 0x8E34, 109257 }, - { 0x8E35, 72264 }, - { 0x8E36, 109091 }, - { 0x8E37, 109094 }, - { 0x8E38, 109097 }, - { 0x8E39, 109088 }, - { 0x8E3A, 109100 }, - { 0x8E3B, 65019 }, - { 0x8E3C, 80693 }, - { 0x8E3D, 80919 }, - { 0x8E3E, 80932 }, - { 0x8E3F, 80699 }, - { 0x8E40, 80899 }, - { 0x8E41, 80703 }, - { 0x8E42, 80705 }, - { 0x8E43, 80910 }, - { 0x8E44, 80711 }, - { 0x8E45, 80716 }, - { 0x8E46, 81086 }, - { 0x8E47, 81097 }, - { 0x8E48, 80912 }, - { 0x8E49, 80925 }, - { 0x8E4A, 80936 }, - { 0x8E4B, 80921 }, - { 0x8E4C, 81076 }, - { 0x8E4D, 81127 }, - { 0x8E4E, 81080 }, - { 0x8E4F, 80901 }, - { 0x8E50, 80939 }, - { 0x8E51, 80695 }, - { 0x8E52, 80895 }, - { 0x8E53, 81091 }, - { 0x8E54, 81125 }, - { 0x8E55, 80908 }, - { 0x8E56, 80915 }, - { 0x8E57, 80917 }, - { 0x8E58, 15376 }, - { 0x8E59, 110375 }, - { 0x8E5A, 110380 }, - { 0x8E5B, 110385 }, - { 0x8E5C, 110390 }, - { 0x8E5D, 110395 }, - { 0x8E5E, 110400 }, - { 0x8E5F, 110405 }, - { 0x8E60, 110410 }, - { 0x8E61, 110415 }, - { 0x8E62, 110420 }, - { 0x8E63, 110425 }, - { 0x8E64, 110430 }, - { 0x8E65, 110435 }, - { 0x8E66, 110440 }, - { 0x8E67, 110445 }, - { 0x8E68, 110450 }, - { 0x8E69, 110455 }, - { 0x8E6A, 110460 }, - { 0x8E6B, 110465 }, - { 0x8E6C, 110470 }, - { 0x8E6D, 110475 }, - { 0x8E6E, 110480 }, - { 0x8E6F, 110485 }, - { 0x8E70, 110490 }, - { 0x8E71, 110495 }, - { 0x8E72, 110500 }, - { 0x8E73, 65559 }, - { 0x8E74, 81122 }, - { 0x8E75, 81119 }, - { 0x8E76, 80800 }, - { 0x8E77, 80788 }, - { 0x8E78, 80756 }, - { 0x8E79, 81116 }, - { 0x8E7A, 80732 }, - { 0x8E7B, 80780 }, - { 0x8E7C, 80872 }, - { 0x8E7D, 80784 }, - { 0x8E7E, 80736 }, - { 0x8E7F, 80828 }, - { 0x8E80, 80848 }, - { 0x8E81, 80820 }, - { 0x8E82, 80748 }, - { 0x8E83, 80796 }, - { 0x8E84, 80740 }, - { 0x8E85, 80824 }, - { 0x8E86, 80744 }, - { 0x8E87, 80868 }, - { 0x8E88, 80852 }, - { 0x8E89, 80876 }, - { 0x8E8A, 80776 }, - { 0x8E8B, 80768 }, - { 0x8E8C, 80844 }, - { 0x8E8D, 80808 }, - { 0x8E8E, 80816 }, - { 0x8E8F, 80720 }, - { 0x8E90, 80724 }, - { 0x8E91, 80884 }, - { 0x8E92, 80792 }, - { 0x8E93, 80728 }, - { 0x8E94, 80760 }, - { 0x8E95, 80812 }, - { 0x8E96, 80880 }, - { 0x8E97, 80804 }, - { 0x8E98, 80860 }, - { 0x8E99, 80864 }, - { 0x8E9A, 80764 }, - { 0x8E9B, 80840 }, - { 0x8E9C, 80836 }, - { 0x8E9D, 80832 }, - { 0x8E9E, 80856 }, - { 0x8E9F, 80752 }, - { 0x8EA0, 80772 }, - { 0x8EA1, 80888 }, - { 0x8EA2, 111127 }, - { 0x8EA3, 111091 }, - { 0x8EA4, 111097 }, - { 0x8EA5, 111109 }, - { 0x8EA6, 111133 }, - { 0x8EA7, 111115 }, - { 0x8EA8, 111139 }, - { 0x8EA9, 111103 }, - { 0x8EAA, 111121 }, - { 0x8EAB, 72190 }, - { 0x8EAC, 72148 }, - { 0x8EAD, 78706 }, - { 0x8EAE, 78710 }, - { 0x8EAF, 78722 }, - { 0x8EB0, 78714 }, - { 0x8EB1, 78726 }, - { 0x8EB2, 78718 }, - { 0x8EB3, 72278 }, - { 0x8EB4, 23333 }, - { 0x8EB5, 53488 }, - { 0x8EB6, 38536 }, - { 0x8EB7, 81150 }, - { 0x8EB8, 81149 }, - { 0x8EB9, 116178 }, - { 0x8EBA, 65682 }, - { 0x8EBB, 78634 }, - { 0x8EBC, 52957 }, - { 0x8EBD, 43300 }, - { 0x8EBE, 82939 }, - { 0x8EBF, 38418 }, - { 0x8EC0, 23153 }, - { 0x8EC1, 23150 }, - { 0x8EC2, 23156 }, - { 0x8EC3, 23620 }, - { 0x8EC4, 7779 }, - { 0x8EC5, 69691 }, - { 0x8EC6, 23328 }, - { 0x8EC7, 69687 }, - { 0x8EC8, 14147 }, - { 0x8EC9, 69271 }, - { 0x8ECA, 14513 }, - { 0x8ECB, 69275 }, - { 0x8ECC, 87641 }, - { 0x8ECD, 7775 }, - { 0x8ECE, 23323 }, - { 0x8ECF, 14508 }, - { 0x8ED0, 14143 }, - { 0x8ED1, 10576 }, - { 0x8ED2, 73290 }, - { 0x8ED3, 110613 }, - { 0x8ED4, 137709 }, - { 0x8ED5, 21508 }, - { 0x8ED6, 43327 }, - { 0x8ED7, 43333 }, - { 0x8ED8, 43338 }, - { 0x8ED9, 43342 }, - { 0x8EDA, 22480 }, - { 0x8EDB, 22483 }, - { 0x8EDC, 22489 }, - { 0x8EDD, 22486 }, - { 0x8EDE, 6586 }, - { 0x8EDF, 17539 }, - { 0x8EE0, 6594 }, - { 0x8EE1, 17000 }, - { 0x8EE2, 71175 }, - { 0x8EE3, 87500 }, - { 0x8EE4, 110601 }, - { 0x8EE5, 124382 }, - { 0x8EE6, 123964 }, - { 0x8EE7, 16588 }, - { 0x8EE8, 52977 }, - { 0x8EE9, 6596 }, - { 0x8EEA, 42442 }, - { 0x8EEB, 53367 }, - { 0x8EEC, 16696 }, - { 0x8EED, 105037 }, - { 0x8EEE, 128512 }, - { 0x8EEF, 70400 }, - { 0x8EF0, 6563 }, - { 0x8EF1, 6560 }, - { 0x8EF2, 14202 }, - { 0x8EF3, 14118 }, - { 0x8EF4, 37276 }, - { 0x8EF5, 54922 }, - { 0x8EF6, 14517 }, - { 0x8EF7, 108874 }, - { 0x8EF8, 68857 }, - { 0x8EF9, 114377 }, - { 0x8EFA, 55075 }, - { 0x8EFB, 37338 }, - { 0x8EFC, 133117 }, - { 0x8EFD, 128515 }, - { 0x8EFE, 36325 }, - { 0x8EFF, 52379 }, - { 0x8F00, 127642 }, - { 0x8F01, 10540 }, - { 0x8F02, 26537 }, - { 0x8F03, 16595 }, - { 0x8F04, 40244 }, - { 0x8F05, 87499 }, - { 0x8F06, 133091 }, - { 0x8F07, 125328 }, - { 0x8F08, 41265 }, - { 0x8F09, 15383 }, - { 0x8F0A, 78483 }, - { 0x8F0B, 16672 }, - { 0x8F0C, 16670 }, - { 0x8F0D, 53495 }, - { 0x8F0E, 22542 }, - { 0x8F0F, 110690 }, - { 0x8F10, 128207 }, - { 0x8F11, 22289 }, - { 0x8F12, 54979 }, - { 0x8F13, 78673 }, - { 0x8F14, 22547 }, - { 0x8F15, 16528 }, - { 0x8F16, 41666 }, - { 0x8F17, 23344 }, - { 0x8F18, 14087 }, - { 0x8F19, 16825 }, - { 0x8F1A, 64906 }, - { 0x8F1B, 6605 }, - { 0x8F1C, 89753 }, - { 0x8F1D, 53497 }, - { 0x8F1E, 116173 }, - { 0x8F1F, 22363 }, - { 0x8F20, 106422 }, - { 0x8F21, 72276 }, - { 0x8F22, 27032 }, - { 0x8F23, 128189 }, - { 0x8F24, 20989 }, - { 0x8F25, 10526 }, - { 0x8F26, 72251 }, - { 0x8F27, 14104 }, - { 0x8F28, 68175 }, - { 0x8F29, 16803 }, - { 0x8F2A, 17542 }, - { 0x8F2B, 87512 }, - { 0x8F2C, 111171 }, - { 0x8F2D, 13442 }, - { 0x8F2E, 87507 }, - { 0x8F2F, 13423 }, - { 0x8F30, 14107 }, - { 0x8F31, 52404 }, - { 0x8F32, 78478 }, - { 0x8F33, 64791 }, - { 0x8F34, 82947 }, - { 0x8F35, 83924 }, - { 0x8F36, 144814 }, - { 0x8F37, 116175 }, - { 0x8F38, 54925 }, - { 0x8F39, 124420 }, - { 0x8F3A, 103457 }, - { 0x8F3B, 70054 }, - { 0x8F3C, 40240 }, - { 0x8F3D, 87514 }, - { 0x8F3E, 110882 }, - { 0x8F3F, 72260 }, - { 0x8F40, 16603 }, - { 0x8F41, 105561 }, - { 0x8F42, 13521 }, - { 0x8F43, 17537 }, - { 0x8F44, 16188 }, - { 0x8F45, 64850 }, - { 0x8F46, 130741 }, - { 0x8F47, 26554 }, - { 0x8F48, 70402 }, - { 0x8F49, 107237 }, - { 0x8F4A, 110507 }, - { 0x8F4B, 76371 }, - { 0x8F4C, 65614 }, - { 0x8F4D, 36326 }, - { 0x8F4E, 72249 }, - { 0x8F4F, 52386 }, - { 0x8F50, 52393 }, - { 0x8F51, 14077 }, - { 0x8F52, 112604 }, - { 0x8F53, 86893 }, - { 0x8F54, 54930 }, - { 0x8F55, 64840 }, - { 0x8F56, 73274 }, - { 0x8F57, 132095 }, - { 0x8F58, 38466 }, - { 0x8F59, 53371 }, - { 0x8F5A, 125330 }, - { 0x8F5B, 52330 }, - { 0x8F5C, 12081 }, - { 0x8F5D, 53445 }, - { 0x8F5E, 68699 }, - { 0x8F5F, 72241 }, - { 0x8F60, 132107 }, - { 0x8F61, 43292 }, - { 0x8F62, 54337 }, - { 0x8F63, 16820 }, - { 0x8F64, 114695 }, - { 0x8F65, 14162 }, - { 0x8F66, 70405 }, - { 0x8F67, 54949 }, - { 0x8F68, 75351 }, - { 0x8F69, 108866 }, - { 0x8F6A, 127921 }, - { 0x8F6B, 55076 }, - { 0x8F6C, 76369 }, - { 0x8F6D, 82594 }, - { 0x8F6E, 69011 }, - { 0x8F6F, 75353 }, - { 0x8F70, 78731 }, - { 0x8F71, 68550 }, - { 0x8F72, 10569 }, - { 0x8F73, 129676 }, - { 0x8F74, 116171 }, - { 0x8F75, 137663 }, - { 0x8F76, 64842 }, - { 0x8F77, 65685 }, - { 0x8F78, 64960 }, - { 0x8F79, 68916 }, - { 0x8F7A, 27037 }, - { 0x8F7B, 83009 }, - { 0x8F7C, 40862 }, - { 0x8F7D, 81287 }, - { 0x8F7E, 69695 }, - { 0x8F7F, 54992 }, - { 0x8F80, 64612 }, - { 0x8F81, 64610 }, - { 0x8F82, 72256 }, - { 0x8F83, 133116 }, - { 0x8F84, 23309 }, - { 0x8F85, 6609 }, - { 0x8F86, 41673 }, - { 0x8F87, 16822 }, - { 0x8F88, 71176 }, - { 0x8F89, 20985 }, - { 0x8F8A, 84259 }, - { 0x8F8B, 27046 }, - { 0x8F8C, 116177 }, - { 0x8F8D, 89725 }, - { 0x8F8E, 116184 }, - { 0x8F8F, 54297 }, - { 0x8F90, 54298 }, - { 0x8F91, 108877 }, - { 0x8F92, 81131 }, - { 0x8F93, 27044 }, - { 0x8F94, 27041 }, - { 0x8F95, 63920 }, - { 0x8F96, 105558 }, - { 0x8F97, 103409 }, - { 0x8F98, 105345 }, - { 0x8F99, 13438 }, - { 0x8F9A, 114378 }, - { 0x8F9B, 27039 }, - { 0x8F9C, 15351 }, - { 0x8F9D, 133149 }, - { 0x8F9E, 64849 }, - { 0x8F9F, 129785 }, - { 0x8FA0, 73249 }, - { 0x8FA1, 73913 }, - { 0x8FA2, 105563 }, - { 0x8FA3, 103412 }, - { 0x8FA4, 43837 }, - { 0x8FA5, 21519 }, - { 0x8FA6, 69684 }, - { 0x8FA7, 69681 }, - { 0x8FA8, 78682 }, - { 0x8FA9, 21523 }, - { 0x8FAA, 28371 }, - { 0x8FAB, 114381 }, - { 0x8FAC, 4640 }, - { 0x8FAD, 69877 }, - { 0x8FAE, 23210 }, - { 0x8FAF, 23194 }, - { 0x8FB0, 23198 }, - { 0x8FB1, 23202 }, - { 0x8FB2, 23206 }, - { 0x8FB3, 10536 }, - { 0x8FB4, 38460 }, - { 0x8FB5, 496 }, - { 0x8FB6, 43304 }, - { 0x8FB7, 6519 }, - { 0x8FB8, 42377 }, - { 0x8FB9, 74240 }, - { 0x8FBA, 64607 }, - { 0x8FBB, 5951 }, - { 0x8FBC, 54849 }, - { 0x8FBD, 117877 }, - { 0x8FBE, 43311 }, - { 0x8FBF, 41479 }, - { 0x8FC0, 41480 }, - { 0x8FC1, 27034 }, - { 0x8FC2, 10535 }, - { 0x8FC3, 14176 }, - { 0x8FC4, 41209 }, - { 0x8FC5, 63846 }, - { 0x8FC6, 78681 }, - { 0x8FC7, 71185 }, - { 0x8FC8, 6547 }, - { 0x8FC9, 10513 }, - { 0x8FCA, 13465 }, - { 0x8FCB, 101774 }, - { 0x8FCC, 77685 }, - { 0x8FCD, 64954 }, - { 0x8FCE, 5945 }, - { 0x8FCF, 4262 }, - { 0x8FD0, 105344 }, - { 0x8FD1, 14501 }, - { 0x8FD2, 14086 }, - { 0x8FD3, 111169 }, - { 0x8FD4, 83926 }, - { 0x8FD5, 68997 }, - { 0x8FD6, 104791 }, - { 0x8FD7, 13421 }, - { 0x8FD8, 138384 }, - { 0x8FD9, 13460 }, - { 0x8FDA, 78106 }, - { 0x8FDB, 28370 }, - { 0x8FDC, 64587 }, - { 0x8FDD, 124375 }, - { 0x8FDE, 83395 }, - { 0x8FDF, 73003 }, - { 0x8FE0, 38461 }, - { 0x8FE1, 6520 }, - { 0x8FE2, 42378 }, - { 0x8FE3, 64608 }, - { 0x8FE4, 5952 }, - { 0x8FE5, 54850 }, - { 0x8FE6, 110686 }, - { 0x8FE7, 27035 }, - { 0x8FE8, 63847 }, - { 0x8FE9, 6548 }, - { 0x8FEA, 10514 }, - { 0x8FEB, 14139 }, - { 0x8FEC, 73803 }, - { 0x8FED, 17545 }, - { 0x8FEE, 13440 }, - { 0x8FEF, 40238 }, - { 0x8FF0, 10516 }, - { 0x8FF1, 10493 }, - { 0x8FF2, 87503 }, - { 0x8FF3, 13921 }, - { 0x8FF4, 6580 }, - { 0x8FF5, 6559 }, - { 0x8FF6, 16522 }, - { 0x8FF7, 38465 }, - { 0x8FF8, 68858 }, - { 0x8FF9, 43320 }, - { 0x8FFA, 43361 }, - { 0x8FFB, 43396 }, - { 0x8FFC, 43631 }, - { 0x8FFD, 54939 }, - { 0x8FFE, 69678 }, - { 0x8FFF, 112 }, - { 0x9000, 68693 }, - { 0x9001, 68696 }, - { 0x9002, 87504 }, - { 0x9003, 16538 }, - { 0x9004, 22530 }, - { 0x9005, 69703 }, - { 0x9006, 130327 }, - { 0x9007, 77413 }, - { 0x9008, 81289 }, - { 0x9009, 27403 }, - { 0x900A, 23144 }, - { 0x900B, 60539 }, - { 0x900C, 52399 }, - { 0x900D, 69709 }, - { 0x900E, 40285 }, - { 0x900F, 73805 }, - { 0x9010, 40267 }, - { 0x9011, 15374 }, - { 0x9012, 83393 }, - { 0x9013, 133212 }, - { 0x9014, 69707 }, - { 0x9015, 69705 }, - { 0x9016, 130328 }, - { 0x9017, 13500 }, - { 0x9018, 22360 }, - { 0x9019, 5944 }, - { 0x901A, 14173 }, - { 0x901B, 6965 }, - { 0x901C, 43969 }, - { 0x901D, 54924 }, - { 0x901E, 6974 }, - { 0x901F, 12229 }, - { 0x9020, 12243 }, - { 0x9021, 64585 }, - { 0x9022, 43970 }, - { 0x9023, 22292 }, - { 0x9024, 64528 }, - { 0x9025, 6979 }, - { 0x9026, 6984 }, - { 0x9027, 39632 }, - { 0x9028, 39636 }, - { 0x9029, 13418 }, - { 0x902A, 138057 }, - { 0x902B, 110303 }, - { 0x902C, 105556 }, - { 0x902D, 105565 }, - { 0x902E, 23612 }, - { 0x902F, 13419 }, - { 0x9030, 144919 }, - { 0x9031, 17933 }, - { 0x9032, 6614 }, - { 0x9033, 41260 }, - { 0x9034, 133843 }, - { 0x9035, 124835 }, - { 0x9036, 54281 }, - { 0x9037, 106421 }, - { 0x9038, 16195 }, - { 0x9039, 14056 }, - { 0x903A, 73802 }, - { 0x903B, 52380 }, - { 0x903C, 81288 }, - { 0x903D, 16602 }, - { 0x903E, 14497 }, - { 0x903F, 15353 }, - { 0x9040, 16674 }, - { 0x9041, 6592 }, - { 0x9042, 14496 }, - { 0x9043, 70401 }, - { 0x9044, 54253 }, - { 0x9045, 82942 }, - { 0x9046, 70059 }, - { 0x9047, 52963 }, - { 0x9048, 12250 }, - { 0x9049, 128208 }, - { 0x904A, 73539 }, - { 0x904B, 26560 }, - { 0x904C, 13463 }, - { 0x904D, 26539 }, - { 0x904E, 69716 }, - { 0x904F, 64604 }, - { 0x9050, 26563 }, - { 0x9051, 127697 }, - { 0x9052, 26568 }, - { 0x9053, 72819 }, - { 0x9054, 101769 }, - { 0x9055, 17949 }, - { 0x9056, 13489 }, - { 0x9057, 110663 }, - { 0x9058, 116245 }, - { 0x9059, 128221 }, - { 0x905A, 73014 }, - { 0x905B, 13822 }, - { 0x905C, 16599 }, - { 0x905D, 54942 }, - { 0x905E, 22949 }, - { 0x905F, 64946 }, - { 0x9060, 81364 }, - { 0x9061, 43700 }, - { 0x9062, 73875 }, - { 0x9063, 38448 }, - { 0x9064, 87650 }, - { 0x9065, 26808 }, - { 0x9066, 54256 }, - { 0x9067, 83905 }, - { 0x9068, 83917 }, - { 0x9069, 83909 }, - { 0x906A, 83913 }, - { 0x906B, 38450 }, - { 0x906C, 22376 }, - { 0x906D, 16811 }, - { 0x906E, 109862 }, - { 0x906F, 114699 }, - { 0x9070, 107241 }, - { 0x9071, 54944 }, - { 0x9072, 77686 }, - { 0x9073, 6558 }, - { 0x9074, 14073 }, - { 0x9075, 16533 }, - { 0x9076, 16572 }, - { 0x9077, 16579 }, - { 0x9078, 84268 }, - { 0x9079, 110884 }, - { 0x907A, 13514 }, - { 0x907B, 22372 }, - { 0x907C, 22383 }, - { 0x907D, 4628 }, - { 0x907E, 116186 }, - { 0x907F, 78623 }, - { 0x9080, 40858 }, - { 0x9081, 127632 }, - { 0x9082, 110692 }, - { 0x9083, 133101 }, - { 0x9084, 83928 }, - { 0x9085, 60552 }, - { 0x9086, 109298 }, - { 0x9087, 109299 }, - { 0x9088, 53447 }, - { 0x9089, 16531 }, - { 0x908A, 26535 }, - { 0x908B, 13461 }, - { 0x908C, 63925 }, - { 0x908D, 22287 }, - { 0x908E, 16197 }, - { 0x908F, 64896 }, - { 0x9090, 15386 }, - { 0x9091, 128526 }, - { 0x9092, 40233 }, - { 0x9093, 6583 }, - { 0x9094, 127919 }, - { 0x9095, 64601 }, - { 0x9096, 86895 }, - { 0x9097, 63935 }, - { 0x9098, 27056 }, - { 0x9099, 78101 }, - { 0x909A, 54852 }, - { 0x909B, 105474 }, - { 0x909C, 101779 }, - { 0x909D, 53476 }, - { 0x909E, 53471 }, - { 0x909F, 16559 }, - { 0x90A0, 16564 }, - { 0x90A1, 78479 }, - { 0x90A2, 64588 }, - { 0x90A3, 127528 }, - { 0x90A4, 63828 }, - { 0x90A5, 63833 }, - { 0x90A6, 128815 }, - { 0x90A7, 63830 }, - { 0x90A8, 100 }, - { 0x90A9, 69879 }, - { 0x90AA, 52978 }, - { 0x90AB, 52979 }, - { 0x90AC, 43294 }, - { 0x90AD, 133094 }, - { 0x90AE, 40286 }, - { 0x90AF, 144803 }, - { 0x90B0, 14079 }, - { 0x90B1, 110242 }, - { 0x90B2, 64598 }, - { 0x90B3, 82600 }, - { 0x90B4, 116221 }, - { 0x90B5, 116228 }, - { 0x90B6, 116214 }, - { 0x90B7, 143529 }, - { 0x90B8, 6958 }, - { 0x90B9, 14206 }, - { 0x90BA, 80683 }, - { 0x90BB, 80672 }, - { 0x90BC, 80673 }, - { 0x90BD, 80678 }, - { 0x90BE, 70056 }, - { 0x90BF, 101765 }, - { 0x90C0, 143968 }, - { 0x90C1, 144891 }, - { 0x90C2, 15276 }, - { 0x90C3, 53449 }, - { 0x90C4, 6616 }, - { 0x90C5, 15275 }, - { 0x90C6, 16536 }, - { 0x90C7, 13444 }, - { 0x90C8, 13445 }, - { 0x90C9, 83927 }, - { 0x90CA, 15108 }, - { 0x90CB, 40287 }, - { 0x90CC, 13430 }, - { 0x90CD, 6575 }, - { 0x90CE, 483 }, - { 0x90CF, 16834 }, - { 0x90D0, 12176 }, - { 0x90D1, 90 }, - { 0x90D2, 58442 }, - { 0x90D3, 27384 }, - { 0x90D4, 27378 }, - { 0x90D5, 27395 }, - { 0x90D6, 27399 }, - { 0x90D7, 27390 }, - { 0x90D8, 14081 }, - { 0x90D9, 101772 }, - { 0x90DA, 69715 }, - { 0x90DB, 55329 }, - { 0x90DC, 8066 }, - { 0x90DD, 27031 }, - { 0x90DE, 64569 }, - { 0x90DF, 132096 }, - { 0x90E0, 128534 }, - { 0x90E1, 72271 }, - { 0x90E2, 10549 }, - { 0x90E3, 105567 }, - { 0x90E4, 82568 }, - { 0x90E5, 21480 }, - { 0x90E6, 43774 }, - { 0x90E7, 28389 }, - { 0x90E8, 28409 }, - { 0x90E9, 28777 }, - { 0x90EA, 28415 }, - { 0x90EB, 41399 }, - { 0x90EC, 41284 }, - { 0x90ED, 137714 }, - { 0x90EE, 143643 }, - { 0x90EF, 137721 }, - { 0x90F0, 143650 }, - { 0x90F1, 37140 }, - { 0x90F2, 42984 }, - { 0x90F3, 71237 }, - { 0x90F4, 22525 }, - { 0x90F5, 22523 }, - { 0x90F6, 77651 }, - { 0x90F7, 77663 }, - { 0x90F8, 65929 }, - { 0x90F9, 43616 }, - { 0x90FA, 26697 }, - { 0x90FB, 53137 }, - { 0x90FC, 481 }, - { 0x90FD, 13884 }, - { 0x90FE, 27404 }, - { 0x90FF, 63849 }, - { 0x9100, 128514 }, - { 0x9101, 75227 }, - { 0x9102, 13492 }, - { 0x9103, 22393 }, - { 0x9104, 22405 }, - { 0x9105, 22429 }, - { 0x9106, 22413 }, - { 0x9107, 22409 }, - { 0x9108, 22397 }, - { 0x9109, 22425 }, - { 0x910A, 22421 }, - { 0x910B, 22417 }, - { 0x910C, 22401 }, - { 0x910D, 22433 }, - { 0x910E, 22437 }, - { 0x910F, 22441 }, - { 0x9110, 22450 }, - { 0x9111, 22468 }, - { 0x9112, 22456 }, - { 0x9113, 22453 }, - { 0x9114, 22444 }, - { 0x9115, 22465 }, - { 0x9116, 22462 }, - { 0x9117, 22459 }, - { 0x9118, 22447 }, - { 0x9119, 22471 }, - { 0x911A, 22474 }, - { 0x911B, 40640 }, - { 0x911C, 40642 }, - { 0x911D, 40648 }, - { 0x911E, 84261 }, - { 0x911F, 84262 }, - { 0x9120, 78671 }, - { 0x9121, 13491 }, - { 0x9122, 52985 }, - { 0x9123, 133906 }, - { 0x9124, 21302 }, - { 0x9125, 103 }, - { 0x9126, 14209 }, - { 0x9127, 6969 }, - { 0x9128, 64935 }, - { 0x9129, 13816 }, - { 0x912A, 64948 }, - { 0x912B, 64949 }, - { 0x912C, 105886 }, - { 0x912D, 6987 }, - { 0x912E, 14725 }, - { 0x912F, 128528 }, - { 0x9130, 40389 }, - { 0x9131, 43893 }, - { 0x9132, 21586 }, - { 0x9133, 128516 }, - { 0x9134, 116181 }, - { 0x9135, 13427 }, - { 0x9136, 81132 }, - { 0x9137, 101784 }, - { 0x9138, 54967 }, - { 0x9139, 10499 }, - { 0x913A, 63178 }, - { 0x913B, 21521 }, - { 0x913C, 36828 }, - { 0x913D, 36916 }, - { 0x913E, 36839 }, - { 0x913F, 36920 }, - { 0x9140, 36825 }, - { 0x9141, 15016 }, - { 0x9142, 68920 }, - { 0x9143, 64642 }, - { 0x9144, 110557 }, - { 0x9145, 110563 }, - { 0x9146, 110567 }, - { 0x9147, 110582 }, - { 0x9148, 110514 }, - { 0x9149, 64633 }, - { 0x914A, 43351 }, - { 0x914B, 110649 }, - { 0x914C, 110654 }, - { 0x914D, 110629 }, - { 0x914E, 110634 }, - { 0x914F, 21030 }, - { 0x9150, 21290 }, - { 0x9151, 110639 }, - { 0x9152, 110644 }, - { 0x9153, 110619 }, - { 0x9154, 110624 }, - { 0x9155, 20992 }, - { 0x9156, 21006 }, - { 0x9157, 21239 }, - { 0x9158, 72797 }, - { 0x9159, 106404 }, - { 0x915A, 42364 }, - { 0x915B, 78493 }, - { 0x915C, 64577 }, - { 0x915D, 21017 }, - { 0x915E, 43383 }, - { 0x915F, 16828 }, - { 0x9160, 17003 }, - { 0x9161, 43967 }, - { 0x9162, 10175 }, - { 0x9163, 12247 }, - { 0x9164, 42351 }, - { 0x9165, 128796 }, - { 0x9166, 9605 }, - { 0x9167, 14197 }, - { 0x9168, 64852 }, - { 0x9169, 78494 }, - { 0x916A, 6581 }, - { 0x916B, 77688 }, - { 0x916C, 89742 }, - { 0x916D, 89745 }, - { 0x916E, 89750 }, - { 0x916F, 23341 }, - { 0x9170, 23338 }, - { 0x9171, 23334 }, - { 0x9172, 21412 }, - { 0x9173, 54969 }, - { 0x9174, 16555 }, - { 0x9175, 13516 }, - { 0x9176, 13511 }, - { 0x9177, 14075 }, - { 0x9178, 23255 }, - { 0x9179, 23260 }, - { 0x917A, 23257 }, - { 0x917B, 16523 }, - { 0x917C, 16526 }, - { 0x917D, 16524 }, - { 0x917E, 23267 }, - { 0x917F, 23263 }, - { 0x9180, 23265 }, - { 0x9181, 89741 }, - { 0x9182, 16571 }, - { 0x9183, 40234 }, - { 0x9184, 137761 }, - { 0x9185, 64951 }, - { 0x9186, 64956 }, - { 0x9187, 72795 }, - { 0x9188, 107242 }, - { 0x9189, 106543 }, - { 0x918A, 78100 }, - { 0x918B, 116195 }, - { 0x918C, 138053 }, - { 0x918D, 105476 }, - { 0x918E, 89719 }, - { 0x918F, 133147 }, - { 0x9190, 8105 }, - { 0x9191, 127702 }, - { 0x9192, 16575 }, - { 0x9193, 41663 }, - { 0x9194, 54279 }, - { 0x9195, 15112 }, - { 0x9196, 110679 }, - { 0x9197, 42334 }, - { 0x9198, 42337 }, - { 0x9199, 42331 }, - { 0x919A, 42340 }, - { 0x919B, 14949 }, - { 0x919C, 40578 }, - { 0x919D, 12255 }, - { 0x919E, 42354 }, - { 0x919F, 15013 }, - { 0x91A0, 40654 }, - { 0x91A1, 14731 }, - { 0x91A2, 40399 }, - { 0x91A3, 16182 }, - { 0x91A4, 126266 }, - { 0x91A5, 126264 }, - { 0x91A6, 52363 }, - { 0x91A7, 52376 }, - { 0x91A8, 52367 }, - { 0x91A9, 52372 }, - { 0x91AA, 52348 }, - { 0x91AB, 36363 }, - { 0x91AC, 52343 }, - { 0x91AD, 43974 }, - { 0x91AE, 38458 }, - { 0x91AF, 42432 }, - { 0x91B0, 65607 }, - { 0x91B1, 133085 }, - { 0x91B2, 38468 }, - { 0x91B3, 104182 }, - { 0x91B4, 104198 }, - { 0x91B5, 13983 }, - { 0x91B6, 80131 }, - { 0x91B7, 80144 }, - { 0x91B8, 80136 }, - { 0x91B9, 80152 }, - { 0x91BA, 80127 }, - { 0x91BB, 80164 }, - { 0x91BC, 82943 }, - { 0x91BD, 80168 }, - { 0x91BE, 14065 }, - { 0x91BF, 110505 }, - { 0x91C0, 80194 }, - { 0x91C1, 80190 }, - { 0x91C2, 110673 }, - { 0x91C3, 77475 }, - { 0x91C4, 144810 }, - { 0x91C5, 111274 }, - { 0x91C6, 13943 }, - { 0x91C7, 78107 }, - { 0x91C8, 87516 }, - { 0x91C9, 129780 }, - { 0x91CA, 74228 }, - { 0x91CB, 14061 }, - { 0x91CC, 74235 }, - { 0x91CD, 74230 }, - { 0x91CE, 14028 }, - { 0x91CF, 14032 }, - { 0x91D0, 14039 }, - { 0x91D1, 138361 }, - { 0x91D2, 82945 }, - { 0x91D3, 17959 }, - { 0x91D4, 78490 }, - { 0x91D5, 54262 }, - { 0x91D6, 134499 }, - { 0x91D7, 13947 }, - { 0x91D8, 138357 }, - { 0x91D9, 103471 }, - { 0x91DA, 114372 }, - { 0x91DB, 73270 }, - { 0x91DC, 43309 }, - { 0x91DD, 64933 }, - { 0x91DE, 42430 }, - { 0x91DF, 124833 }, - { 0x91E0, 63183 }, - { 0x91E1, 13960 }, - { 0x91E2, 57545 }, - { 0x91E3, 13964 }, - { 0x91E4, 14069 }, - { 0x91E5, 129673 }, - { 0x91E6, 73278 }, - { 0x91E7, 110661 }, - { 0x91E8, 22947 }, - { 0x91E9, 14058 }, - { 0x91EA, 14005 }, - { 0x91EB, 104176 }, - { 0x91EC, 5959 }, - { 0x91ED, 80115 }, - { 0x91EE, 80121 }, - { 0x91EF, 5954 }, - { 0x91F0, 74222 }, - { 0x91F1, 78487 }, - { 0x91F2, 54259 }, - { 0x91F3, 43306 }, - { 0x91F4, 110670 }, - { 0x91F5, 110667 }, - { 0x91F6, 137759 }, - { 0x91F7, 14016 }, - { 0x91F8, 13924 }, - { 0x91F9, 13929 }, - { 0x91FA, 64549 }, - { 0x91FB, 134510 }, - { 0x91FC, 138531 }, - { 0x91FD, 144535 }, - { 0x91FE, 26549 }, - { 0x91FF, 64552 }, - { 0x9200, 64560 }, - { 0x9201, 64539 }, - { 0x9202, 64535 }, - { 0x9203, 38680 }, - { 0x9204, 41603 }, - { 0x9205, 38597 }, - { 0x9206, 41544 }, - { 0x9207, 68954 }, - { 0x9208, 68967 }, - { 0x9209, 68949 }, - { 0x920A, 68962 }, - { 0x920B, 38684 }, - { 0x920C, 41607 }, - { 0x920D, 38601 }, - { 0x920E, 41548 }, - { 0x920F, 26729 }, - { 0x9210, 26755 }, - { 0x9211, 26718 }, - { 0x9212, 26744 }, - { 0x9213, 38676 }, - { 0x9214, 41599 }, - { 0x9215, 38593 }, - { 0x9216, 41540 }, - { 0x9217, 26724 }, - { 0x9218, 26750 }, - { 0x9219, 26713 }, - { 0x921A, 26739 }, - { 0x921B, 57534 }, - { 0x921C, 57538 }, - { 0x921D, 41482 }, - { 0x921E, 41486 }, - { 0x921F, 125845 }, - { 0x9220, 82765 }, - { 0x9221, 132501 }, - { 0x9222, 124203 }, - { 0x9223, 64892 }, - { 0x9224, 26827 }, - { 0x9225, 106417 }, - { 0x9226, 26883 }, - { 0x9227, 26895 }, - { 0x9228, 41667 }, - { 0x9229, 132797 }, - { 0x922A, 132790 }, - { 0x922B, 132782 }, - { 0x922C, 26955 }, - { 0x922D, 132805 }, - { 0x922E, 26943 }, - { 0x922F, 17510 }, - { 0x9230, 17503 }, - { 0x9231, 71180 }, - { 0x9232, 78654 }, - { 0x9233, 64837 }, - { 0x9234, 130743 }, - { 0x9235, 41642 }, - { 0x9236, 78630 }, - { 0x9237, 131602 }, - { 0x9238, 131604 }, - { 0x9239, 42440 }, - { 0x923A, 38415 }, - { 0x923B, 36361 }, - { 0x923C, 81134 }, - { 0x923D, 17450 }, - { 0x923E, 17451 }, - { 0x923F, 5946 }, - { 0x9240, 109660 }, - { 0x9241, 133105 }, - { 0x9242, 5947 }, - { 0x9243, 75236 }, - { 0x9244, 112611 }, - { 0x9245, 14082 }, - { 0x9246, 64579 }, - { 0x9247, 109667 }, - { 0x9248, 17005 }, - { 0x9249, 109665 }, - { 0x924A, 129675 }, - { 0x924B, 109670 }, - { 0x924C, 143452 }, - { 0x924D, 89723 }, - { 0x924E, 133123 }, - { 0x924F, 82567 }, - { 0x9250, 108855 }, - { 0x9251, 108859 }, - { 0x9252, 133092 }, - { 0x9253, 108861 }, - { 0x9254, 44192 }, - { 0x9255, 16812 }, - { 0x9256, 78730 }, - { 0x9257, 128210 }, - { 0x9258, 131694 }, - { 0x9259, 111412 }, - { 0x925A, 138055 }, - { 0x925B, 64581 }, - { 0x925C, 133097 }, - { 0x925D, 13883 }, - { 0x925E, 97 }, - { 0x925F, 80199 }, - { 0x9260, 105 }, - { 0x9261, 10529 }, - { 0x9262, 74 }, - { 0x9263, 78480 }, - { 0x9264, 134479 }, - { 0x9265, 70397 }, - { 0x9266, 108 }, - { 0x9267, 114694 }, - { 0x9268, 108863 }, - { 0x9269, 132106 }, - { 0x926A, 110 }, - { 0x926B, 87501 }, - { 0x926C, 15387 }, - { 0x926D, 69711 }, - { 0x926E, 110510 }, - { 0x926F, 13425 }, - { 0x9270, 68856 }, - { 0x9271, 43302 }, - { 0x9272, 64913 }, - { 0x9273, 13439 }, - { 0x9274, 70055 }, - { 0x9275, 109860 }, - { 0x9276, 72277 }, - { 0x9277, 70052 }, - { 0x9278, 15011 }, - { 0x9279, 111161 }, - { 0x927A, 132207 }, - { 0x927B, 72221 }, - { 0x927C, 13498 }, - { 0x927D, 23615 }, - { 0x927E, 22502 }, - { 0x927F, 110665 }, - { 0x9280, 110615 }, - { 0x9281, 70062 }, - { 0x9282, 4631 }, - { 0x9283, 40247 }, - { 0x9284, 127529 }, - { 0x9285, 110617 }, - { 0x9286, 41665 }, - { 0x9287, 63938 }, - { 0x9288, 27029 }, - { 0x9289, 6602 }, - { 0x928A, 101775 }, - { 0x928B, 111709 }, - { 0x928C, 132203 }, - { 0x928D, 43312 }, - { 0x928E, 16679 }, - { 0x928F, 55336 }, - { 0x9290, 64908 }, - { 0x9291, 8103 }, - { 0x9292, 108857 }, - { 0x9293, 78632 }, - { 0x9294, 38454 }, - { 0x9295, 137744 }, - { 0x9296, 137742 }, - { 0x9297, 137725 }, - { 0x9298, 41427 }, - { 0x9299, 144938 }, - { 0x929A, 83007 }, - { 0x929B, 83005 }, - { 0x929C, 127918 }, - { 0x929D, 109662 }, - { 0x929E, 54300 }, - { 0x929F, 127636 }, - { 0x92A0, 78760 }, - { 0x92A1, 38456 }, - { 0x92A2, 22364 }, - { 0x92A3, 16819 }, - { 0x92A4, 54957 }, - { 0x92A5, 133090 }, - { 0x92A6, 13416 }, - { 0x92A7, 64565 }, - { 0x92A8, 64838 }, - { 0x92A9, 129659 }, - { 0x92AA, 129134 }, - { 0x92AB, 129200 }, - { 0x92AC, 129290 }, - { 0x92AD, 129324 }, - { 0x92AE, 129609 }, - { 0x92AF, 129164 }, - { 0x92B0, 129174 }, - { 0x92B1, 129169 }, - { 0x92B2, 129179 }, - { 0x92B3, 129485 }, - { 0x92B4, 129597 }, - { 0x92B5, 129601 }, - { 0x92B6, 129380 }, - { 0x92B7, 129650 }, - { 0x92B8, 129272 }, - { 0x92B9, 129417 }, - { 0x92BA, 129422 }, - { 0x92BB, 129427 }, - { 0x92BC, 129512 }, - { 0x92BD, 129247 }, - { 0x92BE, 129307 }, - { 0x92BF, 129495 }, - { 0x92C0, 129605 }, - { 0x92C1, 129237 }, - { 0x92C2, 129242 }, - { 0x92C3, 129204 }, - { 0x92C4, 129372 }, - { 0x92C5, 129222 }, - { 0x92C6, 129227 }, - { 0x92C7, 129342 }, - { 0x92C8, 129440 }, - { 0x92C9, 129332 }, - { 0x92CA, 129637 }, - { 0x92CB, 129581 }, - { 0x92CC, 129348 }, - { 0x92CD, 129354 }, - { 0x92CE, 129337 }, - { 0x92CF, 129251 }, - { 0x92D0, 129565 }, - { 0x92D1, 129593 }, - { 0x92D2, 129151 }, - { 0x92D3, 129232 }, - { 0x92D4, 129503 }, - { 0x92D5, 129587 }, - { 0x92D6, 129258 }, - { 0x92D7, 129573 }, - { 0x92D8, 129489 }, - { 0x92D9, 129446 }, - { 0x92DA, 129452 }, - { 0x92DB, 129436 }, - { 0x92DC, 129553 }, - { 0x92DD, 129557 }, - { 0x92DE, 129561 }, - { 0x92DF, 129328 }, - { 0x92E0, 129499 }, - { 0x92E1, 129545 }, - { 0x92E2, 129663 }, - { 0x92E3, 129396 }, - { 0x92E4, 129432 }, - { 0x92E5, 129549 }, - { 0x92E6, 129633 }, - { 0x92E7, 129400 }, - { 0x92E8, 129384 }, - { 0x92E9, 129529 }, - { 0x92EA, 129311 }, - { 0x92EB, 129277 }, - { 0x92EC, 129405 }, - { 0x92ED, 129409 }, - { 0x92EE, 129160 }, - { 0x92EF, 129142 }, - { 0x92F0, 129376 }, - { 0x92F1, 129533 }, - { 0x92F2, 129138 }, - { 0x92F3, 129156 }, - { 0x92F4, 129360 }, - { 0x92F5, 129196 }, - { 0x92F6, 129316 }, - { 0x92F7, 129285 }, - { 0x92F8, 129458 }, - { 0x92F9, 129508 }, - { 0x92FA, 129481 }, - { 0x92FB, 129464 }, - { 0x92FC, 129541 }, - { 0x92FD, 129264 }, - { 0x92FE, 129320 }, - { 0x92FF, 129294 }, - { 0x9300, 129268 }, - { 0x9301, 129146 }, - { 0x9302, 129281 }, - { 0x9303, 129524 }, - { 0x9304, 129392 }, - { 0x9305, 129469 }, - { 0x9306, 129475 }, - { 0x9307, 129646 }, - { 0x9308, 129642 }, - { 0x9309, 129413 }, - { 0x930A, 129520 }, - { 0x930B, 129629 }, - { 0x930C, 129364 }, - { 0x930D, 129655 }, - { 0x930E, 129516 }, - { 0x930F, 129613 }, - { 0x9310, 129617 }, - { 0x9311, 129621 }, - { 0x9312, 129625 }, - { 0x9313, 129388 }, - { 0x9314, 129184 }, - { 0x9315, 129190 }, - { 0x9316, 129368 }, - { 0x9317, 129218 }, - { 0x9318, 129303 }, - { 0x9319, 129537 }, - { 0x931A, 129299 }, - { 0x931B, 129208 }, - { 0x931C, 129213 }, - { 0x931D, 6938 }, - { 0x931E, 134482 }, - { 0x931F, 37266 }, - { 0x9320, 56995 }, - { 0x9321, 106540 }, - { 0x9322, 104175 }, - { 0x9323, 64606 }, - { 0x9324, 39640 }, - { 0x9325, 21662 }, - { 0x9326, 21620 }, - { 0x9327, 21700 }, - { 0x9328, 21636 }, - { 0x9329, 21555 }, - { 0x932A, 63367 }, - { 0x932B, 13481 }, - { 0x932C, 26767 }, - { 0x932D, 17495 }, - { 0x932E, 124407 }, - { 0x932F, 43694 }, - { 0x9330, 40856 }, - { 0x9331, 21040 }, - { 0x9332, 21559 }, - { 0x9333, 36386 }, - { 0x9334, 63437 }, - { 0x9335, 13484 }, - { 0x9336, 26770 }, - { 0x9337, 17499 }, - { 0x9338, 124411 }, - { 0x9339, 43777 }, - { 0x933A, 43790 }, - { 0x933B, 65521 }, - { 0x933C, 21043 }, - { 0x933D, 21053 }, - { 0x933E, 21418 }, - { 0x933F, 43810 }, - { 0x9340, 43823 }, - { 0x9341, 72825 }, - { 0x9342, 21046 }, - { 0x9343, 21057 }, - { 0x9344, 21422 }, - { 0x9345, 43831 }, - { 0x9346, 17336 }, - { 0x9347, 36370 }, - { 0x9348, 63406 }, - { 0x9349, 13478 }, - { 0x934A, 17460 }, - { 0x934B, 17491 }, - { 0x934C, 124403 }, - { 0x934D, 17341 }, - { 0x934E, 36394 }, - { 0x934F, 63440 }, - { 0x9350, 13487 }, - { 0x9351, 26861 }, - { 0x9352, 17507 }, - { 0x9353, 124415 }, - { 0x9354, 36336 }, - { 0x9355, 63371 }, - { 0x9356, 13470 }, - { 0x9357, 26593 }, - { 0x9358, 17475 }, - { 0x9359, 124398 }, - { 0x935A, 36329 }, - { 0x935B, 63358 }, - { 0x935C, 13466 }, - { 0x935D, 26584 }, - { 0x935E, 17470 }, - { 0x935F, 124393 }, - { 0x9360, 36366 }, - { 0x9361, 63397 }, - { 0x9362, 13474 }, - { 0x9363, 26661 }, - { 0x9364, 17480 }, - { 0x9365, 36381 }, - { 0x9366, 63424 }, - { 0x9367, 42357 }, - { 0x9368, 63429 }, - { 0x9369, 36350 }, - { 0x936A, 63375 }, - { 0x936B, 14126 }, - { 0x936C, 63380 }, - { 0x936D, 78636 }, - { 0x936E, 36340 }, - { 0x936F, 26597 }, - { 0x9370, 63362 }, - { 0x9371, 26588 }, - { 0x9372, 10559 }, - { 0x9373, 63401 }, - { 0x9374, 26665 }, - { 0x9375, 17485 }, - { 0x9376, 26670 }, - { 0x9377, 36389 }, - { 0x9378, 26845 }, - { 0x9379, 26850 }, - { 0x937A, 72041 }, - { 0x937B, 109085 }, - { 0x937C, 71881 }, - { 0x937D, 109082 }, - { 0x937E, 16518 }, - { 0x937F, 28771 }, - { 0x9380, 28791 }, - { 0x9381, 28763 }, - { 0x9382, 28780 }, - { 0x9383, 28757 }, - { 0x9384, 28392 }, - { 0x9385, 28412 }, - { 0x9386, 28774 }, - { 0x9387, 28794 }, - { 0x9388, 28766 }, - { 0x9389, 28783 }, - { 0x938A, 28760 }, - { 0x938B, 26824 }, - { 0x938C, 125699 }, - { 0x938D, 82642 }, - { 0x938E, 132340 }, - { 0x938F, 124114 }, - { 0x9390, 125722 }, - { 0x9391, 82659 }, - { 0x9392, 132368 }, - { 0x9393, 124136 }, - { 0x9394, 125693 }, - { 0x9395, 82636 }, - { 0x9396, 132329 }, - { 0x9397, 124108 }, - { 0x9398, 125705 }, - { 0x9399, 82648 }, - { 0x939A, 132346 }, - { 0x939B, 124120 }, - { 0x939C, 125742 }, - { 0x939D, 82675 }, - { 0x939E, 132388 }, - { 0x939F, 124152 }, - { 0x93A0, 26918 }, - { 0x93A1, 26872 }, - { 0x93A2, 26937 }, - { 0x93A3, 26905 }, - { 0x93A4, 26911 }, - { 0x93A5, 26865 }, - { 0x93A6, 26930 }, - { 0x93A7, 26898 }, - { 0x93A8, 126116 }, - { 0x93A9, 82914 }, - { 0x93AA, 132768 }, - { 0x93AB, 124349 }, - { 0x93AC, 126110 }, - { 0x93AD, 82908 }, - { 0x93AE, 132762 }, - { 0x93AF, 124343 }, - { 0x93B0, 126063 }, - { 0x93B1, 82868 }, - { 0x93B2, 132715 }, - { 0x93B3, 124303 }, - { 0x93B4, 126090 }, - { 0x93B5, 82895 }, - { 0x93B6, 132742 }, - { 0x93B7, 124330 }, - { 0x93B8, 126083 }, - { 0x93B9, 82888 }, - { 0x93BA, 132735 }, - { 0x93BB, 124323 }, - { 0x93BC, 126025 }, - { 0x93BD, 82857 }, - { 0x93BE, 132681 }, - { 0x93BF, 124292 }, - { 0x93C0, 125949 }, - { 0x93C1, 82830 }, - { 0x93C2, 132605 }, - { 0x93C3, 124271 }, - { 0x93C4, 125963 }, - { 0x93C5, 82839 }, - { 0x93C6, 132619 }, - { 0x93C7, 124280 }, - { 0x93C8, 125800 }, - { 0x93C9, 82697 }, - { 0x93CA, 132446 }, - { 0x93CB, 124179 }, - { 0x93CC, 125797 }, - { 0x93CD, 82694 }, - { 0x93CE, 132443 }, - { 0x93CF, 124176 }, - { 0x93D0, 125966 }, - { 0x93D1, 82842 }, - { 0x93D2, 132622 }, - { 0x93D3, 124283 }, - { 0x93D4, 38689 }, - { 0x93D5, 38606 }, - { 0x93D6, 41553 }, - { 0x93D7, 41612 }, - { 0x93D8, 14840 }, - { 0x93D9, 546 }, - { 0x93DA, 137950 }, - { 0x93DB, 137900 }, - { 0x93DC, 137975 }, - { 0x93DD, 137925 }, - { 0x93DE, 137813 }, - { 0x93DF, 137783 }, - { 0x93E0, 137843 }, - { 0x93E1, 137873 }, - { 0x93E2, 137935 }, - { 0x93E3, 137885 }, - { 0x93E4, 137960 }, - { 0x93E5, 137910 }, - { 0x93E6, 137795 }, - { 0x93E7, 137765 }, - { 0x93E8, 137825 }, - { 0x93E9, 137855 }, - { 0x93EA, 137955 }, - { 0x93EB, 137905 }, - { 0x93EC, 137980 }, - { 0x93ED, 137930 }, - { 0x93EE, 137819 }, - { 0x93EF, 137789 }, - { 0x93F0, 137849 }, - { 0x93F1, 137879 }, - { 0x93F2, 137945 }, - { 0x93F3, 137895 }, - { 0x93F4, 137970 }, - { 0x93F5, 137920 }, - { 0x93F6, 137807 }, - { 0x93F7, 137777 }, - { 0x93F8, 137837 }, - { 0x93F9, 137867 }, - { 0x93FA, 137939 }, - { 0x93FB, 137889 }, - { 0x93FC, 137964 }, - { 0x93FD, 137914 }, - { 0x93FE, 137800 }, - { 0x93FF, 137770 }, - { 0x9400, 137830 }, - { 0x9401, 137860 }, - { 0x9402, 125955 }, - { 0x9403, 82833 }, - { 0x9404, 132611 }, - { 0x9405, 124274 }, - { 0x9406, 125807 }, - { 0x9407, 82738 }, - { 0x9408, 132458 }, - { 0x9409, 124186 }, - { 0x940A, 125732 }, - { 0x940B, 82665 }, - { 0x940C, 132378 }, - { 0x940D, 124142 }, - { 0x940E, 26618 }, - { 0x940F, 26635 }, - { 0x9410, 26623 }, - { 0x9411, 26629 }, - { 0x9412, 126044 }, - { 0x9413, 132464 }, - { 0x9414, 125587 }, - { 0x9415, 132232 }, - { 0x9416, 126028 }, - { 0x9417, 132696 }, - { 0x9418, 126040 }, - { 0x9419, 132684 }, - { 0x941A, 126020 }, - { 0x941B, 132676 }, - { 0x941C, 126035 }, - { 0x941D, 132691 }, - { 0x941E, 43410 }, - { 0x941F, 43415 }, - { 0x9420, 17962 }, - { 0x9421, 17980 }, - { 0x9422, 132335 }, - { 0x9423, 124166 }, - { 0x9424, 109275 }, - { 0x9425, 109263 }, - { 0x9426, 109279 }, - { 0x9427, 109271 }, - { 0x9428, 38647 }, - { 0x9429, 38557 }, - { 0x942A, 41511 }, - { 0x942B, 41577 }, - { 0x942C, 125641 }, - { 0x942D, 132277 }, - { 0x942E, 71231 }, - { 0x942F, 71225 }, - { 0x9430, 71222 }, - { 0x9431, 14676 }, - { 0x9432, 14682 }, - { 0x9433, 14670 }, - { 0x9434, 14665 }, - { 0x9435, 14662 }, - { 0x9436, 89754 }, - { 0x9437, 89762 }, - { 0x9438, 89757 }, - { 0x9439, 89766 }, - { 0x943A, 78113 }, - { 0x943B, 43598 }, - { 0x943C, 22296 }, - { 0x943D, 110238 }, - { 0x943E, 143508 }, - { 0x943F, 134266 }, - { 0x9440, 14046 }, - { 0x9441, 16201 }, - { 0x9442, 110886 }, - { 0x9443, 14049 }, - { 0x9444, 40728 }, - { 0x9445, 73873 }, - { 0x9446, 16813 }, - { 0x9447, 13508 }, - { 0x9448, 64625 }, - { 0x9449, 133871 }, - { 0x944A, 143461 }, - { 0x944B, 125329 }, - { 0x944C, 14183 }, - { 0x944D, 0 }, - { 0x944E, 13988 }, - { 0x944F, 22492 }, - { 0x9450, 127526 }, - { 0x9451, 78676 }, - { 0x9452, 89776 }, - { 0x9453, 37269 }, - { 0x9454, 13922 }, - { 0x9455, 110675 }, - { 0x9456, 13933 }, - { 0x9457, 104193 }, - { 0x9458, 104184 }, - { 0x9459, 13992 }, - { 0x945A, 78765 }, - { 0x945B, 80173 }, - { 0x945C, 13971 }, - { 0x945D, 79234 }, - { 0x945E, 110297 }, - { 0x945F, 144809 }, - { 0x9460, 40235 }, - { 0x9461, 64901 }, - { 0x9462, 64600 }, - { 0x9463, 6966 }, - { 0x9464, 63850 }, - { 0x9465, 41258 }, - { 0x9466, 64546 }, - { 0x9467, 105887 }, - { 0x9468, 54929 }, - { 0x9469, 63841 }, - { 0x946A, 128817 }, - { 0x946B, 43298 }, - { 0x946C, 104754 }, - { 0x946D, 54344 }, - { 0x946E, 69700 }, - { 0x946F, 13906 }, - { 0x9470, 87510 }, - { 0x9471, 82595 }, - { 0x9472, 41630 }, - { 0x9473, 14174 }, - { 0x9474, 40291 }, - { 0x9475, 23314 }, - { 0x9476, 64897 }, - { 0x9477, 42323 }, - { 0x9478, 52561 }, - { 0x9479, 74914 }, - { 0x947A, 72274 }, - { 0x947B, 106409 }, - { 0x947C, 110677 }, - { 0x947D, 54955 }, - { 0x947E, 117878 }, - { 0x947F, 70051 }, - { 0x9480, 87647 }, - { 0x9481, 18001 }, - { 0x9482, 64595 }, - { 0x9483, 53135 }, - { 0x9484, 83397 }, - { 0x9485, 26541 }, - { 0x9486, 78776 }, - { 0x9487, 81147 }, - { 0x9488, 6570 }, - { 0x9489, 23617 }, - { 0x948A, 78105 }, - { 0x948B, 125582 }, - { 0x948C, 109849 }, - { 0x948D, 89778 }, - { 0x948E, 73284 }, - { 0x948F, 81362 }, - { 0x9490, 129684 }, - { 0x9491, 13495 }, - { 0x9492, 6526 }, - { 0x9493, 72243 }, - { 0x9494, 84163 }, - { 0x9495, 10512 }, - { 0x9496, 78492 }, - { 0x9497, 6529 }, - { 0x9498, 110597 }, - { 0x9499, 52986 }, - { 0x949A, 36323 }, - { 0x949B, 37275 }, - { 0x949C, 16184 }, - { 0x949D, 18002 }, - { 0x949E, 80182 }, - { 0x949F, 82993 }, - { 0x94A0, 80160 }, - { 0x94A1, 13976 }, - { 0x94A2, 13998 }, - { 0x94A3, 132104 }, - { 0x94A4, 103469 }, - { 0x94A5, 38539 }, - { 0x94A6, 124075 }, - { 0x94A7, 14052 }, - { 0x94A8, 14024 }, - { 0x94A9, 16809 }, - { 0x94AA, 6619 }, - { 0x94AB, 73292 }, - { 0x94AC, 57532 }, - { 0x94AD, 14101 }, - { 0x94AE, 13811 }, - { 0x94AF, 15110 }, - { 0x94B0, 110599 }, - { 0x94B1, 68919 }, - { 0x94B2, 82603 }, - { 0x94B3, 23148 }, - { 0x94B4, 13909 }, - { 0x94B5, 4630 }, - { 0x94B6, 41208 }, - { 0x94B7, 10178 }, - { 0x94B8, 6589 }, - { 0x94B9, 114700 }, - { 0x94BA, 13826 }, - { 0x94BB, 73293 }, - { 0x94BC, 63180 }, - { 0x94BD, 132227 }, - { 0x94BE, 64914 }, - { 0x94BF, 41635 }, - { 0x94C0, 73288 }, - { 0x94C1, 43978 }, - { 0x94C2, 104793 }, - { 0x94C3, 110598 }, - { 0x94C4, 41672 }, - { 0x94C5, 72255 }, - { 0x94C6, 105948 }, - { 0x94C7, 36627 }, - { 0x94C8, 78104 }, - { 0x94C9, 138533 }, - { 0x94CA, 64511 }, - { 0x94CB, 78626 }, - { 0x94CC, 74244 }, - { 0x94CD, 108856 }, - { 0x94CE, 75232 }, - { 0x94CF, 52332 }, - { 0x94D0, 16999 }, - { 0x94D1, 74588 }, - { 0x94D2, 13829 }, - { 0x94D3, 41269 }, - { 0x94D4, 40230 }, - { 0x94D5, 127534 }, - { 0x94D6, 41264 }, - { 0x94D7, 103459 }, - { 0x94D8, 63937 }, - { 0x94D9, 52397 }, - { 0x94DA, 20991 }, - { 0x94DB, 16810 }, - { 0x94DC, 26545 }, - { 0x94DD, 78496 }, - { 0x94DE, 23214 }, - { 0x94DF, 23221 }, - { 0x94E0, 23218 }, - { 0x94E1, 23225 }, - { 0x94E2, 13490 }, - { 0x94E3, 6936 }, - { 0x94E4, 14103 }, - { 0x94E5, 42434 }, - { 0x94E6, 128513 }, - { 0x94E7, 143501 }, - { 0x94E8, 64845 }, - { 0x94E9, 6566 }, - { 0x94EA, 127393 }, - { 0x94EB, 63356 }, - { 0x94EC, 132091 }, - { 0x94ED, 132093 }, - { 0x94EE, 53365 }, - { 0x94EF, 72273 }, - { 0x94F0, 16807 }, - { 0x94F1, 83922 }, - { 0x94F2, 54982 }, - { 0x94F3, 39639 }, - { 0x94F4, 73250 }, - { 0x94F5, 69093 }, - { 0x94F6, 52976 }, - { 0x94F7, 15381 }, - { 0x94F8, 6603 }, - { 0x94F9, 52970 }, - { 0x94FA, 42441 }, - { 0x94FB, 110688 }, - { 0x94FC, 106407 }, - { 0x94FD, 13824 }, - { 0x94FE, 14009 }, - { 0x94FF, 17908 }, - { 0x9500, 22389 }, - { 0x9501, 39634 }, - { 0x9502, 70057 }, - { 0x9503, 64543 }, - { 0x9504, 64521 }, - { 0x9505, 64558 }, - { 0x9506, 64517 }, - { 0x9507, 15355 }, - { 0x9508, 23305 }, - { 0x9509, 82936 }, - { 0x950A, 126682 }, - { 0x950B, 6571 }, - { 0x950C, 23611 }, - { 0x950D, 69869 }, - { 0x950E, 22288 }, - { 0x950F, 63927 }, - { 0x9510, 52400 }, - { 0x9511, 41206 }, - { 0x9512, 54991 }, - { 0x9513, 13809 }, - { 0x9514, 41481 }, - { 0x9515, 10537 }, - { 0x9516, 133209 }, - { 0x9517, 57557 }, - { 0x9518, 17007 }, - { 0x9519, 40245 }, - { 0x951A, 6544 }, - { 0x951B, 72244 }, - { 0x951C, 43980 }, - { 0x951D, 14084 }, - { 0x951E, 82566 }, - { 0x951F, 22291 }, - { 0x9520, 63355 }, - { 0x9521, 74314 }, - { 0x9522, 63181 }, - { 0x9523, 41627 }, - { 0x9524, 13435 }, - { 0x9525, 64843 }, - { 0x9526, 42313 }, - { 0x9527, 22295 }, - { 0x9528, 52382 }, - { 0x9529, 16691 }, - { 0x952A, 4625 }, - { 0x952B, 64959 }, - { 0x952C, 78635 }, - { 0x952D, 38534 }, - { 0x952E, 77477 }, - { 0x952F, 77528 }, - { 0x9530, 77511 }, - { 0x9531, 77545 }, - { 0x9532, 77562 }, - { 0x9533, 77494 }, - { 0x9534, 43547 }, - { 0x9535, 21187 }, - { 0x9536, 77603 }, - { 0x9537, 43432 }, - { 0x9538, 43483 }, - { 0x9539, 43466 }, - { 0x953A, 43500 }, - { 0x953B, 43541 }, - { 0x953C, 43449 }, - { 0x953D, 21072 }, - { 0x953E, 21123 }, - { 0x953F, 21106 }, - { 0x9540, 21140 }, - { 0x9541, 21181 }, - { 0x9542, 21089 }, - { 0x9543, 77488 }, - { 0x9544, 77539 }, - { 0x9545, 77522 }, - { 0x9546, 77556 }, - { 0x9547, 77597 }, - { 0x9548, 77505 }, - { 0x9549, 43509 }, - { 0x954A, 21149 }, - { 0x954B, 77565 }, - { 0x954C, 43553 }, - { 0x954D, 43565 }, - { 0x954E, 43561 }, - { 0x954F, 43569 }, - { 0x9550, 43573 }, - { 0x9551, 43557 }, - { 0x9552, 21193 }, - { 0x9553, 21205 }, - { 0x9554, 21201 }, - { 0x9555, 21209 }, - { 0x9556, 21213 }, - { 0x9557, 21197 }, - { 0x9558, 77609 }, - { 0x9559, 77621 }, - { 0x955A, 77617 }, - { 0x955B, 77625 }, - { 0x955C, 77629 }, - { 0x955D, 77613 }, - { 0x955E, 43525 }, - { 0x955F, 21165 }, - { 0x9560, 77581 }, - { 0x9561, 43424 }, - { 0x9562, 43475 }, - { 0x9563, 43458 }, - { 0x9564, 43492 }, - { 0x9565, 43517 }, - { 0x9566, 43441 }, - { 0x9567, 21064 }, - { 0x9568, 21115 }, - { 0x9569, 21098 }, - { 0x956A, 21132 }, - { 0x956B, 21157 }, - { 0x956C, 21081 }, - { 0x956D, 77480 }, - { 0x956E, 77531 }, - { 0x956F, 77514 }, - { 0x9570, 77548 }, - { 0x9571, 77573 }, - { 0x9572, 77497 }, - { 0x9573, 43533 }, - { 0x9574, 21173 }, - { 0x9575, 77589 }, - { 0x9576, 43577 }, - { 0x9577, 21217 }, - { 0x9578, 77633 }, - { 0x9579, 43580 }, - { 0x957A, 21220 }, - { 0x957B, 77636 }, - { 0x957C, 43589 }, - { 0x957D, 43586 }, - { 0x957E, 43592 }, - { 0x957F, 21229 }, - { 0x9580, 21226 }, - { 0x9581, 21232 }, - { 0x9582, 82960 }, - { 0x9583, 82969 }, - { 0x9584, 82966 }, - { 0x9585, 82951 }, - { 0x9586, 82957 }, - { 0x9587, 82954 }, - { 0x9588, 82963 }, - { 0x9589, 82981 }, - { 0x958A, 82990 }, - { 0x958B, 82987 }, - { 0x958C, 82972 }, - { 0x958D, 82978 }, - { 0x958E, 82975 }, - { 0x958F, 82984 }, - { 0x9590, 52333 }, - { 0x9591, 127531 }, - { 0x9592, 52960 }, - { 0x9593, 64911 }, - { 0x9594, 42326 }, - { 0x9595, 36333 }, - { 0x9596, 14177 }, - { 0x9597, 16605 }, - { 0x9598, 13903 }, - { 0x9599, 83002 }, - { 0x959A, 137664 }, - { 0x959B, 43976 }, - { 0x959C, 54258 }, - { 0x959D, 43977 }, - { 0x959E, 14499 }, - { 0x959F, 127633 }, - { 0x95A0, 114698 }, - { 0x95A1, 37271 }, - { 0x95A2, 64567 }, - { 0x95A3, 77473 }, - { 0x95A4, 74675 }, - { 0x95A5, 23332 }, - { 0x95A6, 14199 }, - { 0x95A7, 64912 }, - { 0x95A8, 64824 }, - { 0x95A9, 22371 }, - { 0x95AA, 40290 }, - { 0x95AB, 4624 }, - { 0x95AC, 13827 }, - { 0x95AD, 20630 }, - { 0x95AE, 107239 }, - { 0x95AF, 112599 }, - { 0x95B0, 15288 }, - { 0x95B1, 13810 }, - { 0x95B2, 115955 }, - { 0x95B3, 134509 }, - { 0x95B4, 60544 }, - { 0x95B5, 14210 }, - { 0x95B6, 63825 }, - { 0x95B7, 69702 }, - { 0x95B8, 78477 }, - { 0x95B9, 64904 }, - { 0x95BA, 14500 }, - { 0x95BB, 52972 }, - { 0x95BC, 38463 }, - { 0x95BD, 133095 }, - { 0x95BE, 125331 }, - { 0x95BF, 78115 }, - { 0x95C0, 16690 }, - { 0x95C1, 63826 }, - { 0x95C2, 144812 }, - { 0x95C3, 6954 }, - { 0x95C4, 26548 }, - { 0x95C5, 73280 }, - { 0x95C6, 14179 }, - { 0x95C7, 58444 }, - { 0x95C8, 6585 }, - { 0x95C9, 17554 }, - { 0x95CA, 52398 }, - { 0x95CB, 116244 }, - { 0x95CC, 64596 }, - { 0x95CD, 17547 }, - { 0x95CE, 73272 }, - { 0x95CF, 36651 }, - { 0x95D0, 22501 }, - { 0x95D1, 23253 }, - { 0x95D2, 16203 }, - { 0x95D3, 105346 }, - { 0x95D4, 125365 }, - { 0x95D5, 17544 }, - { 0x95D6, 106415 }, - { 0x95D7, 23623 }, - { 0x95D8, 129667 }, - { 0x95D9, 37268 }, - { 0x95DA, 64515 }, - { 0x95DB, 110295 }, - { 0x95DC, 110299 }, - { 0x95DD, 64532 }, - { 0x95DE, 133208 }, - { 0x95DF, 38453 }, - { 0x95E0, 54650 }, - { 0x95E1, 133142 }, - { 0x95E2, 13449 }, - { 0x95E3, 39638 }, - { 0x95E4, 124421 }, - { 0x95E5, 66363 }, - { 0x95E6, 54970 }, - { 0x95E7, 68178 }, - { 0x95E8, 78485 }, - { 0x95E9, 20988 }, - { 0x95EA, 6615 }, - { 0x95EB, 54987 }, - { 0x95EC, 10497 }, - { 0x95ED, 16694 }, - { 0x95EE, 110685 }, - { 0x95EF, 75225 }, - { 0x95F0, 110595 }, - { 0x95F1, 13952 }, - { 0x95F2, 14012 }, - { 0x95F3, 14020 }, - { 0x95F4, 54651 }, - { 0x95F5, 52402 }, - { 0x95F6, 71174 }, - { 0x95F7, 78774 }, - { 0x95F8, 13938 }, - { 0x95F9, 14190 }, - { 0x95FA, 132241 }, - { 0x95FB, 125596 }, - { 0x95FC, 16585 }, - { 0x95FD, 16582 }, - { 0x95FE, 27058 }, - { 0x95FF, 26566 }, - { 0x9600, 125946 }, - { 0x9601, 132602 }, - { 0x9602, 21755 }, - { 0x9603, 21757 }, - { 0x9604, 21879 }, - { 0x9605, 21759 }, - { 0x9606, 21881 }, - { 0x9607, 21889 }, - { 0x9608, 22037 }, - { 0x9609, 21761 }, - { 0x960A, 21883 }, - { 0x960B, 21891 }, - { 0x960C, 22039 }, - { 0x960D, 21897 }, - { 0x960E, 22045 }, - { 0x960F, 22055 }, - { 0x9610, 22185 }, - { 0x9611, 21763 }, - { 0x9612, 21885 }, - { 0x9613, 21893 }, - { 0x9614, 22041 }, - { 0x9615, 21899 }, - { 0x9616, 22057 }, - { 0x9617, 22187 }, - { 0x9618, 21903 }, - { 0x9619, 22049 }, - { 0x961A, 22061 }, - { 0x961B, 22191 }, - { 0x961C, 22065 }, - { 0x961D, 22197 }, - { 0x961E, 22205 }, - { 0x961F, 22259 }, - { 0x9620, 21765 }, - { 0x9621, 21887 }, - { 0x9622, 21895 }, - { 0x9623, 22043 }, - { 0x9624, 21901 }, - { 0x9625, 22047 }, - { 0x9626, 22059 }, - { 0x9627, 22189 }, - { 0x9628, 21905 }, - { 0x9629, 22051 }, - { 0x962A, 22193 }, - { 0x962B, 22067 }, - { 0x962C, 22199 }, - { 0x962D, 22207 }, - { 0x962E, 22261 }, - { 0x962F, 21907 }, - { 0x9630, 22053 }, - { 0x9631, 22063 }, - { 0x9632, 22195 }, - { 0x9633, 22069 }, - { 0x9634, 22201 }, - { 0x9635, 22209 }, - { 0x9636, 22263 }, - { 0x9637, 22071 }, - { 0x9638, 22203 }, - { 0x9639, 22211 }, - { 0x963A, 22265 }, - { 0x963B, 22213 }, - { 0x963C, 22267 }, - { 0x963D, 22269 }, - { 0x963E, 36726 }, - { 0x963F, 36716 }, - { 0x9640, 36804 }, - { 0x9641, 36794 }, - { 0x9642, 36736 }, - { 0x9643, 37040 }, - { 0x9644, 37030 }, - { 0x9645, 37009 }, - { 0x9646, 36999 }, - { 0x9647, 36951 }, - { 0x9648, 37019 }, - { 0x9649, 36970 }, - { 0x964A, 36941 }, - { 0x964B, 36989 }, - { 0x964C, 36960 }, - { 0x964D, 36980 }, - { 0x964E, 36784 }, - { 0x964F, 36755 }, - { 0x9650, 36774 }, - { 0x9651, 36745 }, - { 0x9652, 36765 }, - { 0x9653, 36814 }, - { 0x9654, 42812 }, - { 0x9655, 42802 }, - { 0x9656, 42890 }, - { 0x9657, 42880 }, - { 0x9658, 42822 }, - { 0x9659, 42687 }, - { 0x965A, 42677 }, - { 0x965B, 42656 }, - { 0x965C, 42646 }, - { 0x965D, 42598 }, - { 0x965E, 42666 }, - { 0x965F, 42617 }, - { 0x9660, 42588 }, - { 0x9661, 42636 }, - { 0x9662, 42607 }, - { 0x9663, 42627 }, - { 0x9664, 42870 }, - { 0x9665, 42841 }, - { 0x9666, 42860 }, - { 0x9667, 42831 }, - { 0x9668, 42851 }, - { 0x9669, 42900 }, - { 0x966A, 42490 }, - { 0x966B, 14521 }, - { 0x966C, 42469 }, - { 0x966D, 14551 }, - { 0x966E, 15062 }, - { 0x966F, 43096 }, - { 0x9670, 40704 }, - { 0x9671, 37261 }, - { 0x9672, 111298 }, - { 0x9673, 111302 }, - { 0x9674, 111306 }, - { 0x9675, 111310 }, - { 0x9676, 111314 }, - { 0x9677, 111318 }, - { 0x9678, 131612 }, - { 0x9679, 131616 }, - { 0x967A, 131620 }, - { 0x967B, 131624 }, - { 0x967C, 131628 }, - { 0x967D, 131632 }, - { 0x967E, 14530 }, - { 0x967F, 14560 }, - { 0x9680, 40298 }, - { 0x9681, 40292 }, - { 0x9682, 42478 }, - { 0x9683, 131636 }, - { 0x9684, 42503 }, - { 0x9685, 43011 }, - { 0x9686, 42507 }, - { 0x9687, 43022 }, - { 0x9688, 43007 }, - { 0x9689, 40316 }, - { 0x968A, 40491 }, - { 0x968B, 40323 }, - { 0x968C, 40495 }, - { 0x968D, 40478 }, - { 0x968E, 14695 }, - { 0x968F, 40368 }, - { 0x9690, 42543 }, - { 0x9691, 36694 }, - { 0x9692, 73900 }, - { 0x9693, 42520 }, - { 0x9694, 42552 }, - { 0x9695, 14704 }, - { 0x9696, 71182 }, - { 0x9697, 73903 }, - { 0x9698, 26924 }, - { 0x9699, 42577 }, - { 0x969A, 42791 }, - { 0x969B, 42484 }, - { 0x969C, 14545 }, - { 0x969D, 42775 }, - { 0x969E, 42997 }, - { 0x969F, 37153 }, - { 0x96A0, 36923 }, - { 0x96A1, 5406 }, - { 0x96A2, 5457 }, - { 0x96A3, 5517 }, - { 0x96A4, 5574 }, - { 0x96A5, 5415 }, - { 0x96A6, 5466 }, - { 0x96A7, 5526 }, - { 0x96A8, 5538 }, - { 0x96A9, 5442 }, - { 0x96AA, 5493 }, - { 0x96AB, 5478 }, - { 0x96AC, 5427 }, - { 0x96AD, 5550 }, - { 0x96AE, 5583 }, - { 0x96AF, 5598 }, - { 0x96B0, 5683 }, - { 0x96B1, 144917 }, - { 0x96B2, 73892 }, - { 0x96B3, 14713 }, - { 0x96B4, 40377 }, - { 0x96B5, 73907 }, - { 0x96B6, 125621 }, - { 0x96B7, 132257 }, - { 0x96B8, 124087 }, - { 0x96B9, 82615 }, - { 0x96BA, 14692 }, - { 0x96BB, 40365 }, - { 0x96BC, 69012 }, - { 0x96BD, 40393 }, - { 0x96BE, 109283 }, - { 0x96BF, 109286 }, - { 0x96C0, 109293 }, - { 0x96C1, 43607 }, - { 0x96C2, 14856 }, - { 0x96C3, 63816 }, - { 0x96C4, 40482 }, - { 0x96C5, 109267 }, - { 0x96C6, 41644 }, - { 0x96C7, 41646 }, - { 0x96C8, 41655 }, - { 0x96C9, 41659 }, - { 0x96CA, 41651 }, - { 0x96CB, 43909 }, - { 0x96CC, 43595 }, - { 0x96CD, 64649 }, - { 0x96CE, 21318 }, - { 0x96CF, 14596 }, - { 0x96D0, 14584 }, - { 0x96D1, 5565 }, - { 0x96D2, 5355 }, - { 0x96D3, 5292 }, - { 0x96D4, 5508 }, - { 0x96D5, 5271 }, - { 0x96D6, 5397 }, - { 0x96D7, 5346 }, - { 0x96D8, 5388 }, - { 0x96D9, 5325 }, - { 0x96DA, 5376 }, - { 0x96DB, 5250 }, - { 0x96DC, 5313 }, - { 0x96DD, 5280 }, - { 0x96DE, 5364 }, - { 0x96DF, 5238 }, - { 0x96E0, 5301 }, - { 0x96E1, 12215 }, - { 0x96E2, 40695 }, - { 0x96E3, 52542 }, - { 0x96E4, 15053 }, - { 0x96E5, 43033 }, - { 0x96E6, 37194 }, - { 0x96E7, 63806 }, - { 0x96E8, 63811 }, - { 0x96E9, 12209 }, - { 0x96EA, 40689 }, - { 0x96EB, 52536 }, - { 0x96EC, 15047 }, - { 0x96ED, 12194 }, - { 0x96EE, 52493 }, - { 0x96EF, 52514 }, - { 0x96F0, 12168 }, - { 0x96F1, 127940 }, - { 0x96F2, 127922 }, - { 0x96F3, 127928 }, - { 0x96F4, 127949 }, - { 0x96F5, 127934 }, - { 0x96F6, 127931 }, - { 0x96F7, 127925 }, - { 0x96F8, 127946 }, - { 0x96F9, 127943 }, - { 0x96FA, 127937 }, - { 0x96FB, 106413 }, - { 0x96FC, 10910 }, - { 0x96FD, 10957 }, - { 0x96FE, 10944 }, - { 0x96FF, 10920 }, - { 0x9700, 10914 }, - { 0x9701, 10923 }, - { 0x9702, 10939 }, - { 0x9703, 10949 }, - { 0x9704, 10596 }, - { 0x9705, 10907 }, - { 0x9706, 10931 }, - { 0x9707, 10599 }, - { 0x9708, 10604 }, - { 0x9709, 10963 }, - { 0x970A, 10585 }, - { 0x970B, 10929 }, - { 0x970C, 10624 }, - { 0x970D, 10606 }, - { 0x970E, 10612 }, - { 0x970F, 10633 }, - { 0x9710, 10618 }, - { 0x9711, 10615 }, - { 0x9712, 10609 }, - { 0x9713, 10630 }, - { 0x9714, 10627 }, - { 0x9715, 10621 }, - { 0x9716, 10602 }, - { 0x9717, 10947 }, - { 0x9718, 10941 }, - { 0x9719, 10917 }, - { 0x971A, 10960 }, - { 0x971B, 10933 }, - { 0x971C, 10954 }, - { 0x971D, 10769 }, - { 0x971E, 10774 }, - { 0x971F, 10779 }, - { 0x9720, 10784 }, - { 0x9721, 10789 }, - { 0x9722, 10794 }, - { 0x9723, 10799 }, - { 0x9724, 10804 }, - { 0x9725, 10809 }, - { 0x9726, 10814 }, - { 0x9727, 10819 }, - { 0x9728, 10824 }, - { 0x9729, 10829 }, - { 0x972A, 10834 }, - { 0x972B, 10839 }, - { 0x972C, 10844 }, - { 0x972D, 10849 }, - { 0x972E, 10854 }, - { 0x972F, 10859 }, - { 0x9730, 10864 }, - { 0x9731, 10869 }, - { 0x9732, 10874 }, - { 0x9733, 10879 }, - { 0x9734, 10884 }, - { 0x9735, 10889 }, - { 0x9736, 10894 }, - { 0x9737, 10592 }, - { 0x9738, 10926 }, - { 0x9739, 10903 }, - { 0x973A, 10951 }, - { 0x973B, 10582 }, - { 0x973C, 10636 }, - { 0x973D, 10639 }, - { 0x973E, 10644 }, - { 0x973F, 10649 }, - { 0x9740, 10654 }, - { 0x9741, 10659 }, - { 0x9742, 10664 }, - { 0x9743, 10669 }, - { 0x9744, 10674 }, - { 0x9745, 10679 }, - { 0x9746, 10684 }, - { 0x9747, 10689 }, - { 0x9748, 10694 }, - { 0x9749, 10699 }, - { 0x974A, 10704 }, - { 0x974B, 10709 }, - { 0x974C, 10714 }, - { 0x974D, 10719 }, - { 0x974E, 10724 }, - { 0x974F, 10729 }, - { 0x9750, 10734 }, - { 0x9751, 10739 }, - { 0x9752, 10744 }, - { 0x9753, 10749 }, - { 0x9754, 10754 }, - { 0x9755, 10759 }, - { 0x9756, 10764 }, - { 0x9757, 10588 }, - { 0x9758, 10936 }, - { 0x9759, 10899 }, - { 0x975A, 10912 }, - { 0x975B, 52982 }, -}; -#define UNICODE_CHARNAME_MAX_LENGTH 88 -#define UNICODE_CHARNAME_MAX_WORDS 15 -static const struct { uint16_t index; uint32_t gap; uint16_t length; } unicode_ranges[721] = { - { 0, 32, 95 }, - { 95, 65, 728 }, - { 823, 67, 6 }, - { 829, 71, 7 }, - { 836, 72, 1 }, - { 837, 73, 20 }, - { 857, 74, 397 }, - { 1254, 75, 38 }, - { 1292, 77, 50 }, - { 1342, 79, 3 }, - { 1345, 80, 55 }, - { 1400, 88, 27 }, - { 1427, 92, 6 }, - { 1433, 103, 270 }, - { 1703, 104, 60 }, - { 1763, 106, 101 }, - { 1864, 120, 59 }, - { 1923, 122, 49 }, - { 1972, 124, 15 }, - { 1987, 125, 28 }, - { 2015, 127, 1 }, - { 2016, 128, 11 }, - { 2027, 133, 31 }, - { 2058, 134, 2 }, - { 2060, 139, 237 }, - { 2297, 140, 8 }, - { 2305, 142, 2 }, - { 2307, 144, 22 }, - { 2329, 145, 7 }, - { 2336, 146, 1 }, - { 2337, 149, 4 }, - { 2341, 151, 9 }, - { 2350, 153, 2 }, - { 2352, 155, 4 }, - { 2356, 163, 1 }, - { 2357, 167, 2 }, - { 2359, 168, 5 }, - { 2364, 170, 25 }, - { 2389, 172, 3 }, - { 2392, 173, 6 }, - { 2398, 177, 2 }, - { 2400, 179, 22 }, - { 2422, 180, 7 }, - { 2429, 181, 2 }, - { 2431, 182, 2 }, - { 2433, 183, 2 }, - { 2435, 185, 1 }, - { 2436, 186, 5 }, - { 2441, 190, 2 }, - { 2443, 192, 3 }, - { 2446, 195, 1 }, - { 2447, 202, 4 }, - { 2451, 203, 1 }, - { 2452, 210, 17 }, - { 2469, 220, 3 }, - { 2472, 221, 9 }, - { 2481, 222, 3 }, - { 2484, 223, 22 }, - { 2506, 224, 7 }, - { 2513, 225, 2 }, - { 2515, 226, 5 }, - { 2520, 228, 10 }, - { 2530, 229, 3 }, - { 2533, 230, 3 }, - { 2536, 232, 1 }, - { 2537, 247, 4 }, - { 2541, 249, 12 }, - { 2553, 256, 7 }, - { 2560, 257, 3 }, - { 2563, 258, 8 }, - { 2571, 260, 2 }, - { 2573, 262, 22 }, - { 2595, 263, 7 }, - { 2602, 264, 2 }, - { 2604, 265, 5 }, - { 2609, 267, 9 }, - { 2618, 269, 2 }, - { 2620, 271, 3 }, - { 2623, 278, 3 }, - { 2626, 282, 2 }, - { 2628, 283, 5 }, - { 2633, 285, 18 }, - { 2651, 295, 2 }, - { 2653, 296, 6 }, - { 2659, 299, 3 }, - { 2662, 300, 4 }, - { 2666, 303, 2 }, - { 2668, 304, 1 }, - { 2669, 305, 2 }, - { 2671, 308, 2 }, - { 2673, 311, 3 }, - { 2676, 314, 12 }, - { 2688, 318, 5 }, - { 2693, 321, 3 }, - { 2696, 322, 4 }, - { 2700, 324, 1 }, - { 2701, 330, 1 }, - { 2702, 344, 21 }, - { 2723, 349, 13 }, - { 2736, 350, 3 }, - { 2739, 351, 23 }, - { 2762, 352, 16 }, - { 2778, 354, 9 }, - { 2787, 355, 3 }, - { 2790, 356, 4 }, - { 2794, 363, 2 }, - { 2796, 364, 3 }, - { 2799, 366, 1 }, - { 2800, 368, 4 }, - { 2804, 370, 10 }, - { 2814, 377, 22 }, - { 2836, 378, 3 }, - { 2839, 379, 23 }, - { 2862, 380, 10 }, - { 2872, 381, 5 }, - { 2877, 383, 9 }, - { 2886, 384, 3 }, - { 2889, 385, 4 }, - { 2893, 392, 2 }, - { 2895, 398, 2 }, - { 2897, 399, 4 }, - { 2901, 401, 10 }, - { 2911, 402, 3 }, - { 2914, 414, 13 }, - { 2927, 415, 3 }, - { 2930, 416, 51 }, - { 2981, 417, 3 }, - { 2984, 418, 6 }, - { 2990, 422, 16 }, - { 3006, 424, 26 }, - { 3032, 425, 3 }, - { 3035, 426, 18 }, - { 3053, 429, 24 }, - { 3077, 430, 9 }, - { 3086, 431, 1 }, - { 3087, 433, 7 }, - { 3094, 436, 1 }, - { 3095, 440, 6 }, - { 3101, 441, 1 }, - { 3102, 442, 8 }, - { 3110, 448, 10 }, - { 3120, 450, 3 }, - { 3123, 462, 58 }, - { 3181, 466, 29 }, - { 3210, 503, 2 }, - { 3212, 504, 1 }, - { 3213, 505, 5 }, - { 3218, 506, 24 }, - { 3242, 507, 1 }, - { 3243, 508, 23 }, - { 3266, 510, 5 }, - { 3271, 511, 1 }, - { 3272, 512, 7 }, - { 3279, 513, 10 }, - { 3289, 515, 4 }, - { 3293, 547, 72 }, - { 3365, 548, 36 }, - { 3401, 552, 39 }, - { 3440, 553, 36 }, - { 3476, 554, 15 }, - { 3491, 555, 13 }, - { 3504, 592, 198 }, - { 3702, 593, 1 }, - { 3703, 598, 1 }, - { 3704, 600, 377 }, - { 4081, 601, 4 }, - { 4085, 603, 7 }, - { 4092, 604, 1 }, - { 4093, 605, 4 }, - { 4097, 607, 41 }, - { 4138, 608, 4 }, - { 4142, 610, 33 }, - { 4175, 611, 4 }, - { 4179, 613, 7 }, - { 4186, 614, 1 }, - { 4187, 615, 4 }, - { 4191, 617, 15 }, - { 4206, 618, 57 }, - { 4263, 619, 4 }, - { 4267, 621, 67 }, - { 4334, 623, 32 }, - { 4366, 626, 26 }, - { 4392, 632, 86 }, - { 4478, 634, 6 }, - { 4484, 636, 669 }, - { 5153, 639, 89 }, - { 5242, 646, 22 }, - { 5264, 655, 24 }, - { 5288, 664, 20 }, - { 5308, 676, 13 }, - { 5321, 677, 3 }, - { 5324, 678, 2 }, - { 5326, 690, 94 }, - { 5420, 692, 10 }, - { 5430, 698, 10 }, - { 5440, 704, 26 }, - { 5466, 710, 89 }, - { 5555, 717, 43 }, - { 5598, 722, 70 }, - { 5668, 732, 31 }, - { 5699, 733, 12 }, - { 5711, 737, 12 }, - { 5723, 741, 1 }, - { 5724, 744, 42 }, - { 5766, 746, 5 }, - { 5771, 757, 44 }, - { 5815, 761, 26 }, - { 5841, 767, 11 }, - { 5852, 770, 62 }, - { 5914, 772, 65 }, - { 5979, 773, 29 }, - { 6008, 775, 11 }, - { 6019, 781, 10 }, - { 6029, 787, 14 }, - { 6043, 789, 31 }, - { 6074, 838, 77 }, - { 6151, 839, 166 }, - { 6317, 847, 60 }, - { 6377, 850, 15 }, - { 6392, 853, 62 }, - { 6454, 858, 43 }, - { 6497, 860, 11 }, - { 6508, 868, 43 }, - { 6551, 873, 534 }, - { 7085, 875, 6 }, - { 7091, 877, 38 }, - { 7129, 879, 6 }, - { 7135, 881, 8 }, - { 7143, 882, 1 }, - { 7144, 883, 1 }, - { 7145, 884, 1 }, - { 7146, 885, 31 }, - { 7177, 887, 53 }, - { 7230, 888, 15 }, - { 7245, 889, 14 }, - { 7259, 891, 6 }, - { 7265, 892, 19 }, - { 7284, 894, 3 }, - { 7287, 895, 9 }, - { 7296, 896, 101 }, - { 7397, 897, 12 }, - { 7409, 899, 27 }, - { 7436, 900, 13 }, - { 7449, 903, 33 }, - { 7482, 918, 33 }, - { 7515, 933, 140 }, - { 7655, 937, 666 }, - { 8321, 959, 11 }, - { 8332, 980, 1812 }, - { 10144, 982, 32 }, - { 10176, 983, 349 }, - { 10525, 988, 45 }, - { 10570, 989, 1 }, - { 10571, 994, 1 }, - { 10572, 996, 56 }, - { 10628, 1003, 2 }, - { 10630, 1017, 24 }, - { 10654, 1026, 7 }, - { 10661, 1027, 7 }, - { 10668, 1028, 7 }, - { 10675, 1029, 7 }, - { 10682, 1030, 7 }, - { 10689, 1031, 7 }, - { 10696, 1032, 7 }, - { 10703, 1033, 7 }, - { 10710, 1034, 126 }, - { 10836, 1068, 26 }, - { 10862, 1069, 89 }, - { 10951, 1081, 214 }, - { 11165, 1107, 80 }, - { 11245, 1108, 86 }, - { 11331, 1110, 103 }, - { 11434, 1115, 43 }, - { 11477, 1116, 94 }, - { 11571, 1117, 86 }, - { 11657, 1126, 48 }, - { 11705, 1127, 480 }, - { 12185, 7719, 64 }, - { 12249, 28711, 1165 }, - { 13414, 28714, 55 }, - { 13469, 28723, 348 }, - { 13817, 28743, 184 }, - { 14001, 28751, 206 }, - { 14207, 28753, 2 }, - { 14209, 28754, 1 }, - { 14210, 28755, 8 }, - { 14218, 28776, 59 }, - { 14277, 28779, 10 }, - { 14287, 28785, 56 }, - { 14343, 28793, 70 }, - { 14413, 28801, 12 }, - { 14425, 28807, 116 }, - { 14541, 28818, 30 }, - { 14571, 28821, 78 }, - { 14649, 28822, 11 }, - { 14660, 28826, 33 }, - { 14693, 28827, 55 }, - { 14748, 28836, 14 }, - { 14762, 28838, 10 }, - { 14772, 28840, 103 }, - { 14875, 28864, 28 }, - { 14903, 28874, 6 }, - { 14909, 28876, 6 }, - { 14915, 28878, 6 }, - { 14921, 28887, 7 }, - { 14928, 28888, 7 }, - { 14935, 28889, 60 }, - { 14995, 28893, 126 }, - { 15121, 28895, 10 }, - { 15131, 40085, 23 }, - { 15154, 40089, 49 }, - { 15203, 48843, 2 }, - { 15205, 48902, 3 }, - { 15208, 49048, 7 }, - { 15215, 49060, 5 }, - { 15220, 49065, 26 }, - { 15246, 49066, 5 }, - { 15251, 49067, 1 }, - { 15252, 49068, 2 }, - { 15254, 49069, 2 }, - { 15256, 49070, 125 }, - { 15381, 49086, 445 }, - { 15826, 49088, 54 }, - { 15880, 49095, 1 }, - { 15881, 49127, 16 }, - { 15897, 49143, 10 }, - { 15907, 49149, 51 }, - { 15958, 49150, 19 }, - { 15977, 49151, 4 }, - { 15981, 49155, 5 }, - { 15986, 49156, 135 }, - { 16121, 49158, 1 }, - { 16122, 49159, 190 }, - { 16312, 49162, 6 }, - { 16318, 49164, 6 }, - { 16324, 49166, 6 }, - { 16330, 49168, 3 }, - { 16333, 49171, 7 }, - { 16340, 49172, 7 }, - { 16347, 49182, 5 }, - { 16352, 49184, 12 }, - { 16364, 49185, 26 }, - { 16390, 49186, 19 }, - { 16409, 49187, 2 }, - { 16411, 49188, 15 }, - { 16426, 49190, 14 }, - { 16440, 49224, 123 }, - { 16563, 49229, 3 }, - { 16566, 49233, 45 }, - { 16611, 49236, 88 }, - { 16699, 49237, 13 }, - { 16712, 49240, 1 }, - { 16713, 49287, 46 }, - { 16759, 49417, 29 }, - { 16788, 49420, 49 }, - { 16837, 49435, 28 }, - { 16865, 49439, 36 }, - { 16901, 49448, 30 }, - { 16931, 49453, 43 }, - { 16974, 49458, 30 }, - { 17004, 49459, 37 }, - { 17041, 49463, 14 }, - { 17055, 49505, 158 }, - { 17213, 49507, 10 }, - { 17223, 49513, 36 }, - { 17259, 49517, 36 }, - { 17295, 49521, 40 }, - { 17335, 49529, 52 }, - { 17387, 49540, 12 }, - { 17399, 49541, 15 }, - { 17414, 49542, 7 }, - { 17421, 49543, 2 }, - { 17423, 49544, 11 }, - { 17434, 49545, 15 }, - { 17449, 49546, 7 }, - { 17456, 49547, 2 }, - { 17458, 49550, 52 }, - { 17510, 49562, 311 }, - { 17821, 49571, 22 }, - { 17843, 49581, 8 }, - { 17851, 49605, 6 }, - { 17857, 49606, 42 }, - { 17899, 49607, 9 }, - { 17908, 49676, 6 }, - { 17914, 49678, 1 }, - { 17915, 49679, 44 }, - { 17959, 49680, 2 }, - { 17961, 49683, 1 }, - { 17962, 49685, 23 }, - { 17985, 49686, 72 }, - { 18057, 49694, 9 }, - { 18066, 49742, 19 }, - { 18085, 49743, 2 }, - { 18087, 49748, 33 }, - { 18120, 49751, 27 }, - { 18147, 49756, 1 }, - { 18148, 49820, 56 }, - { 18204, 49824, 20 }, - { 18224, 49826, 50 }, - { 18274, 49827, 2 }, - { 18276, 49832, 8 }, - { 18284, 49833, 3 }, - { 18287, 49834, 29 }, - { 18316, 49836, 3 }, - { 18319, 49840, 10 }, - { 18329, 49847, 9 }, - { 18338, 49854, 64 }, - { 18402, 49886, 39 }, - { 18441, 49890, 12 }, - { 18453, 49899, 54 }, - { 18507, 49902, 29 }, - { 18536, 49904, 27 }, - { 18563, 49909, 26 }, - { 18589, 49916, 4 }, - { 18593, 49928, 7 }, - { 18600, 50008, 73 }, - { 18673, 50063, 51 }, - { 18724, 50076, 51 }, - { 18775, 50083, 46 }, - { 18821, 50091, 10 }, - { 18831, 50097, 38 }, - { 18869, 50100, 29 }, - { 18898, 50108, 2 }, - { 18900, 50316, 31 }, - { 18931, 50317, 42 }, - { 18973, 50318, 3 }, - { 18976, 50320, 2 }, - { 18978, 50336, 3 }, - { 18981, 50391, 44 }, - { 19025, 50399, 42 }, - { 19067, 50421, 26 }, - { 19093, 50459, 28 }, - { 19121, 50479, 23 }, - { 19144, 50488, 78 }, - { 19222, 50492, 36 }, - { 19258, 50501, 68 }, - { 19326, 50511, 1 }, - { 19327, 50513, 25 }, - { 19352, 50520, 10 }, - { 19362, 50526, 53 }, - { 19415, 50527, 18 }, - { 19433, 50535, 39 }, - { 19472, 50544, 96 }, - { 19568, 50545, 20 }, - { 19588, 50556, 18 }, - { 19606, 50557, 47 }, - { 19653, 50619, 7 }, - { 19660, 50620, 1 }, - { 19661, 50621, 4 }, - { 19665, 50622, 15 }, - { 19680, 50623, 11 }, - { 19691, 50629, 59 }, - { 19750, 50634, 10 }, - { 19760, 50640, 4 }, - { 19764, 50641, 8 }, - { 19772, 50643, 2 }, - { 19774, 50645, 22 }, - { 19796, 50646, 7 }, - { 19803, 50647, 2 }, - { 19805, 50648, 5 }, - { 19810, 50649, 10 }, - { 19820, 50651, 2 }, - { 19822, 50653, 3 }, - { 19825, 50655, 1 }, - { 19826, 50661, 1 }, - { 19827, 50666, 7 }, - { 19834, 50668, 7 }, - { 19841, 50671, 5 }, - { 19846, 50682, 10 }, - { 19856, 50683, 1 }, - { 19857, 50685, 1 }, - { 19858, 50686, 38 }, - { 19896, 50687, 10 }, - { 19906, 50688, 1 }, - { 19907, 50690, 1 }, - { 19908, 50691, 4 }, - { 19912, 50692, 10 }, - { 19922, 50693, 2 }, - { 19924, 50701, 2 }, - { 19926, 50730, 92 }, - { 20018, 50731, 5 }, - { 20023, 50761, 72 }, - { 20095, 50769, 10 }, - { 20105, 50935, 54 }, - { 20159, 50937, 38 }, - { 20197, 50971, 69 }, - { 20266, 50982, 10 }, - { 20276, 50988, 13 }, - { 20289, 51007, 58 }, - { 20347, 51013, 10 }, - { 20357, 51019, 20 }, - { 20377, 51047, 27 }, - { 20404, 51049, 15 }, - { 20419, 51053, 23 }, - { 20442, 51238, 60 }, - { 20502, 51338, 83 }, - { 20585, 51350, 8 }, - { 20593, 51352, 1 }, - { 20594, 51354, 8 }, - { 20602, 51355, 2 }, - { 20604, 51356, 30 }, - { 20634, 51357, 2 }, - { 20636, 51359, 12 }, - { 20648, 51368, 10 }, - { 20658, 51438, 8 }, - { 20666, 51440, 46 }, - { 20712, 51442, 11 }, - { 20723, 51469, 72 }, - { 20795, 51477, 83 }, - { 20878, 51490, 73 }, - { 20951, 51497, 10 }, - { 20961, 51679, 34 }, - { 20995, 51693, 10 }, - { 21005, 51699, 9 }, - { 21014, 51700, 45 }, - { 21059, 51701, 14 }, - { 21073, 51711, 29 }, - { 21102, 51714, 32 }, - { 21134, 51716, 22 }, - { 21156, 51717, 14 }, - { 21170, 51790, 7 }, - { 21177, 51791, 2 }, - { 21179, 51792, 44 }, - { 21223, 51795, 1 }, - { 21224, 51796, 2 }, - { 21226, 51797, 9 }, - { 21235, 51805, 10 }, - { 21245, 51811, 6 }, - { 21251, 51812, 2 }, - { 21253, 51813, 37 }, - { 21290, 51814, 2 }, - { 21292, 51815, 6 }, - { 21298, 51822, 10 }, - { 21308, 52132, 25 }, - { 21333, 52139, 17 }, - { 21350, 52140, 41 }, - { 21391, 52143, 29 }, - { 21420, 52228, 1 }, - { 21421, 52243, 50 }, - { 21471, 52256, 923 }, - { 22394, 52358, 111 }, - { 22505, 52359, 5 }, - { 22510, 52370, 196 }, - { 22706, 55006, 99 }, - { 22805, 55019, 1110 }, - { 23915, 55029, 3995 }, - { 27910, 55034, 583 }, - { 28493, 61875, 58 }, - { 28551, 63609, 569 }, - { 29120, 63616, 31 }, - { 29151, 63617, 10 }, - { 29161, 63621, 81 }, - { 29242, 63622, 10 }, - { 29252, 63628, 30 }, - { 29282, 63630, 6 }, - { 29288, 63640, 70 }, - { 29358, 63650, 10 }, - { 29368, 63651, 7 }, - { 29375, 63652, 21 }, - { 29396, 63657, 19 }, - { 29415, 64089, 58 }, - { 29473, 64287, 91 }, - { 29564, 64388, 75 }, - { 29639, 64392, 57 }, - { 29696, 64399, 17 }, - { 29713, 64463, 5 }, - { 29718, 64474, 2 }, - { 29720, 70632, 1238 }, - { 30958, 70673, 1 }, - { 30959, 79617, 4 }, - { 30963, 79618, 7 }, - { 30970, 79619, 2 }, - { 30972, 79620, 291 }, - { 31263, 79635, 1 }, - { 31264, 79664, 3 }, - { 31267, 79666, 1 }, - { 31268, 79680, 4 }, - { 31272, 79688, 396 }, - { 31668, 81996, 107 }, - { 31775, 82001, 13 }, - { 31788, 82004, 9 }, - { 31797, 82011, 10 }, - { 31807, 82013, 8 }, - { 31815, 85945, 250 }, - { 32065, 85951, 436 }, - { 32501, 86027, 46 }, - { 32547, 86029, 23 }, - { 32570, 86038, 116 }, - { 32686, 86098, 246 }, - { 32932, 86108, 39 }, - { 32971, 86110, 194 }, - { 33165, 86131, 70 }, - { 33235, 86253, 20 }, - { 33255, 86265, 20 }, - { 33275, 86277, 87 }, - { 33362, 86286, 25 }, - { 33387, 86421, 85 }, - { 33472, 86422, 71 }, - { 33543, 86423, 2 }, - { 33545, 86425, 1 }, - { 33546, 86427, 2 }, - { 33548, 86429, 4 }, - { 33552, 86430, 12 }, - { 33564, 86431, 1 }, - { 33565, 86432, 7 }, - { 33572, 86433, 65 }, - { 33637, 86434, 4 }, - { 33641, 86436, 8 }, - { 33649, 86437, 7 }, - { 33656, 86438, 28 }, - { 33684, 86439, 4 }, - { 33688, 86440, 5 }, - { 33693, 86441, 1 }, - { 33694, 86444, 7 }, - { 33701, 86445, 340 }, - { 34041, 86447, 292 }, - { 34333, 86449, 702 }, - { 35035, 86464, 5 }, - { 35040, 86465, 15 }, - { 35055, 87569, 31 }, - { 35086, 87575, 6 }, - { 35092, 87788, 7 }, - { 35099, 87789, 17 }, - { 35116, 87791, 7 }, - { 35123, 87792, 2 }, - { 35125, 87793, 5 }, - { 35130, 87798, 62 }, - { 35192, 87831, 1 }, - { 35193, 87943, 45 }, - { 35238, 87946, 14 }, - { 35252, 87948, 10 }, - { 35262, 87952, 2 }, - { 35264, 88272, 31 }, - { 35295, 88289, 58 }, - { 35353, 88294, 1 }, - { 35354, 88758, 42 }, - { 35396, 88972, 43 }, - { 35439, 88976, 1 }, - { 35440, 89456, 7 }, - { 35447, 89457, 4 }, - { 35451, 89458, 2 }, - { 35453, 89459, 15 }, - { 35468, 89460, 197 }, - { 35665, 89462, 16 }, - { 35681, 89503, 76 }, - { 35757, 89507, 10 }, - { 35767, 89511, 2 }, - { 35769, 90296, 68 }, - { 35837, 90372, 61 }, - { 35898, 90566, 4 }, - { 35902, 90567, 27 }, - { 35929, 90568, 2 }, - { 35931, 90569, 1 }, - { 35932, 90571, 1 }, - { 35933, 90572, 10 }, - { 35943, 90573, 4 }, - { 35947, 90574, 1 }, - { 35948, 90575, 1 }, - { 35949, 90581, 1 }, - { 35950, 90585, 1 }, - { 35951, 90586, 1 }, - { 35952, 90587, 1 }, - { 35953, 90588, 3 }, - { 35956, 90589, 2 }, - { 35958, 90590, 1 }, - { 35959, 90592, 1 }, - { 35960, 90593, 1 }, - { 35961, 90594, 1 }, - { 35962, 90595, 1 }, - { 35963, 90596, 1 }, - { 35964, 90597, 2 }, - { 35966, 90598, 1 }, - { 35967, 90600, 4 }, - { 35971, 90601, 7 }, - { 35978, 90602, 4 }, - { 35982, 90603, 4 }, - { 35986, 90604, 1 }, - { 35987, 90605, 10 }, - { 35997, 90606, 17 }, - { 36014, 90611, 3 }, - { 36017, 90612, 5 }, - { 36022, 90613, 17 }, - { 36039, 90665, 2 }, - { 36041, 90935, 44 }, - { 36085, 90939, 100 }, - { 36185, 90951, 15 }, - { 36200, 90953, 15 }, - { 36215, 90954, 15 }, - { 36230, 90955, 37 }, - { 36267, 90965, 174 }, - { 36441, 91021, 29 }, - { 36470, 91034, 44 }, - { 36514, 91038, 9 }, - { 36523, 91045, 2 }, - { 36525, 91059, 6 }, - { 36531, 91213, 984 }, - { 37515, 91217, 17 }, - { 37532, 91220, 13 }, - { 37545, 91223, 119 }, - { 37664, 91227, 95 }, - { 37759, 91233, 12 }, - { 37771, 91237, 1 }, - { 37772, 91252, 12 }, - { 37784, 91256, 56 }, - { 37840, 91264, 10 }, - { 37850, 91270, 40 }, - { 37890, 91278, 30 }, - { 37920, 91280, 12 }, - { 37932, 91284, 2 }, - { 37934, 91346, 340 }, - { 38274, 91358, 14 }, - { 38288, 91360, 13 }, - { 38301, 91363, 10 }, - { 38311, 91368, 56 }, - { 38367, 91375, 15 }, - { 38382, 91377, 11 }, - { 38393, 91383, 9 }, - { 38402, 91390, 147 }, - { 38549, 91391, 102 }, - { 38651, 878854, 1 }, - { 38652, 878884, 96 }, -}; diff --git a/include/libgnulib/uninorm/composition-table-bounds.h b/include/libgnulib/uninorm/composition-table-bounds.h deleted file mode 100755 index ed90bf3..0000000 --- a/include/libgnulib/uninorm/composition-table-bounds.h +++ /dev/null @@ -1,25 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Canonical composition of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Maximum value of the first argument for which gl_uninorm_compose_lookup - can return a non-NULL value. */ -#define UNINORM_COMPOSE_MAX_ARG1 0x16d69 -/* Maximum value of the second argument for which gl_uninorm_compose_lookup - can return a non-NULL value. */ -#define UNINORM_COMPOSE_MAX_ARG2 0x16d67 diff --git a/include/libgnulib/uninorm/composition-table.gperf b/include/libgnulib/uninorm/composition-table.gperf deleted file mode 100755 index db4c751..0000000 --- a/include/libgnulib/uninorm/composition-table.gperf +++ /dev/null @@ -1,991 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Canonical composition of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -struct composition_rule { char codes[6]; }; -%struct-type -%language=ANSI-C -%define slot-name codes -%define hash-function-name gl_uninorm_compose_hash -%define lookup-function-name gl_uninorm_compose_lookup -%compare-lengths -%compare-strncmp -%readonly-tables -%omit-struct-type -%% -"\x00\x00\x41\x00\x03\x00", 0x00c0 -"\x00\x00\x41\x00\x03\x01", 0x00c1 -"\x00\x00\x41\x00\x03\x02", 0x00c2 -"\x00\x00\x41\x00\x03\x03", 0x00c3 -"\x00\x00\x41\x00\x03\x08", 0x00c4 -"\x00\x00\x41\x00\x03\x0a", 0x00c5 -"\x00\x00\x43\x00\x03\x27", 0x00c7 -"\x00\x00\x45\x00\x03\x00", 0x00c8 -"\x00\x00\x45\x00\x03\x01", 0x00c9 -"\x00\x00\x45\x00\x03\x02", 0x00ca -"\x00\x00\x45\x00\x03\x08", 0x00cb -"\x00\x00\x49\x00\x03\x00", 0x00cc -"\x00\x00\x49\x00\x03\x01", 0x00cd -"\x00\x00\x49\x00\x03\x02", 0x00ce -"\x00\x00\x49\x00\x03\x08", 0x00cf -"\x00\x00\x4e\x00\x03\x03", 0x00d1 -"\x00\x00\x4f\x00\x03\x00", 0x00d2 -"\x00\x00\x4f\x00\x03\x01", 0x00d3 -"\x00\x00\x4f\x00\x03\x02", 0x00d4 -"\x00\x00\x4f\x00\x03\x03", 0x00d5 -"\x00\x00\x4f\x00\x03\x08", 0x00d6 -"\x00\x00\x55\x00\x03\x00", 0x00d9 -"\x00\x00\x55\x00\x03\x01", 0x00da -"\x00\x00\x55\x00\x03\x02", 0x00db -"\x00\x00\x55\x00\x03\x08", 0x00dc -"\x00\x00\x59\x00\x03\x01", 0x00dd -"\x00\x00\x61\x00\x03\x00", 0x00e0 -"\x00\x00\x61\x00\x03\x01", 0x00e1 -"\x00\x00\x61\x00\x03\x02", 0x00e2 -"\x00\x00\x61\x00\x03\x03", 0x00e3 -"\x00\x00\x61\x00\x03\x08", 0x00e4 -"\x00\x00\x61\x00\x03\x0a", 0x00e5 -"\x00\x00\x63\x00\x03\x27", 0x00e7 -"\x00\x00\x65\x00\x03\x00", 0x00e8 -"\x00\x00\x65\x00\x03\x01", 0x00e9 -"\x00\x00\x65\x00\x03\x02", 0x00ea -"\x00\x00\x65\x00\x03\x08", 0x00eb -"\x00\x00\x69\x00\x03\x00", 0x00ec -"\x00\x00\x69\x00\x03\x01", 0x00ed -"\x00\x00\x69\x00\x03\x02", 0x00ee -"\x00\x00\x69\x00\x03\x08", 0x00ef -"\x00\x00\x6e\x00\x03\x03", 0x00f1 -"\x00\x00\x6f\x00\x03\x00", 0x00f2 -"\x00\x00\x6f\x00\x03\x01", 0x00f3 -"\x00\x00\x6f\x00\x03\x02", 0x00f4 -"\x00\x00\x6f\x00\x03\x03", 0x00f5 -"\x00\x00\x6f\x00\x03\x08", 0x00f6 -"\x00\x00\x75\x00\x03\x00", 0x00f9 -"\x00\x00\x75\x00\x03\x01", 0x00fa -"\x00\x00\x75\x00\x03\x02", 0x00fb -"\x00\x00\x75\x00\x03\x08", 0x00fc -"\x00\x00\x79\x00\x03\x01", 0x00fd -"\x00\x00\x79\x00\x03\x08", 0x00ff -"\x00\x00\x41\x00\x03\x04", 0x0100 -"\x00\x00\x61\x00\x03\x04", 0x0101 -"\x00\x00\x41\x00\x03\x06", 0x0102 -"\x00\x00\x61\x00\x03\x06", 0x0103 -"\x00\x00\x41\x00\x03\x28", 0x0104 -"\x00\x00\x61\x00\x03\x28", 0x0105 -"\x00\x00\x43\x00\x03\x01", 0x0106 -"\x00\x00\x63\x00\x03\x01", 0x0107 -"\x00\x00\x43\x00\x03\x02", 0x0108 -"\x00\x00\x63\x00\x03\x02", 0x0109 -"\x00\x00\x43\x00\x03\x07", 0x010a -"\x00\x00\x63\x00\x03\x07", 0x010b -"\x00\x00\x43\x00\x03\x0c", 0x010c -"\x00\x00\x63\x00\x03\x0c", 0x010d -"\x00\x00\x44\x00\x03\x0c", 0x010e -"\x00\x00\x64\x00\x03\x0c", 0x010f -"\x00\x00\x45\x00\x03\x04", 0x0112 -"\x00\x00\x65\x00\x03\x04", 0x0113 -"\x00\x00\x45\x00\x03\x06", 0x0114 -"\x00\x00\x65\x00\x03\x06", 0x0115 -"\x00\x00\x45\x00\x03\x07", 0x0116 -"\x00\x00\x65\x00\x03\x07", 0x0117 -"\x00\x00\x45\x00\x03\x28", 0x0118 -"\x00\x00\x65\x00\x03\x28", 0x0119 -"\x00\x00\x45\x00\x03\x0c", 0x011a -"\x00\x00\x65\x00\x03\x0c", 0x011b -"\x00\x00\x47\x00\x03\x02", 0x011c -"\x00\x00\x67\x00\x03\x02", 0x011d -"\x00\x00\x47\x00\x03\x06", 0x011e -"\x00\x00\x67\x00\x03\x06", 0x011f -"\x00\x00\x47\x00\x03\x07", 0x0120 -"\x00\x00\x67\x00\x03\x07", 0x0121 -"\x00\x00\x47\x00\x03\x27", 0x0122 -"\x00\x00\x67\x00\x03\x27", 0x0123 -"\x00\x00\x48\x00\x03\x02", 0x0124 -"\x00\x00\x68\x00\x03\x02", 0x0125 -"\x00\x00\x49\x00\x03\x03", 0x0128 -"\x00\x00\x69\x00\x03\x03", 0x0129 -"\x00\x00\x49\x00\x03\x04", 0x012a -"\x00\x00\x69\x00\x03\x04", 0x012b -"\x00\x00\x49\x00\x03\x06", 0x012c -"\x00\x00\x69\x00\x03\x06", 0x012d -"\x00\x00\x49\x00\x03\x28", 0x012e -"\x00\x00\x69\x00\x03\x28", 0x012f -"\x00\x00\x49\x00\x03\x07", 0x0130 -"\x00\x00\x4a\x00\x03\x02", 0x0134 -"\x00\x00\x6a\x00\x03\x02", 0x0135 -"\x00\x00\x4b\x00\x03\x27", 0x0136 -"\x00\x00\x6b\x00\x03\x27", 0x0137 -"\x00\x00\x4c\x00\x03\x01", 0x0139 -"\x00\x00\x6c\x00\x03\x01", 0x013a -"\x00\x00\x4c\x00\x03\x27", 0x013b -"\x00\x00\x6c\x00\x03\x27", 0x013c -"\x00\x00\x4c\x00\x03\x0c", 0x013d -"\x00\x00\x6c\x00\x03\x0c", 0x013e -"\x00\x00\x4e\x00\x03\x01", 0x0143 -"\x00\x00\x6e\x00\x03\x01", 0x0144 -"\x00\x00\x4e\x00\x03\x27", 0x0145 -"\x00\x00\x6e\x00\x03\x27", 0x0146 -"\x00\x00\x4e\x00\x03\x0c", 0x0147 -"\x00\x00\x6e\x00\x03\x0c", 0x0148 -"\x00\x00\x4f\x00\x03\x04", 0x014c -"\x00\x00\x6f\x00\x03\x04", 0x014d -"\x00\x00\x4f\x00\x03\x06", 0x014e -"\x00\x00\x6f\x00\x03\x06", 0x014f -"\x00\x00\x4f\x00\x03\x0b", 0x0150 -"\x00\x00\x6f\x00\x03\x0b", 0x0151 -"\x00\x00\x52\x00\x03\x01", 0x0154 -"\x00\x00\x72\x00\x03\x01", 0x0155 -"\x00\x00\x52\x00\x03\x27", 0x0156 -"\x00\x00\x72\x00\x03\x27", 0x0157 -"\x00\x00\x52\x00\x03\x0c", 0x0158 -"\x00\x00\x72\x00\x03\x0c", 0x0159 -"\x00\x00\x53\x00\x03\x01", 0x015a -"\x00\x00\x73\x00\x03\x01", 0x015b -"\x00\x00\x53\x00\x03\x02", 0x015c -"\x00\x00\x73\x00\x03\x02", 0x015d -"\x00\x00\x53\x00\x03\x27", 0x015e -"\x00\x00\x73\x00\x03\x27", 0x015f -"\x00\x00\x53\x00\x03\x0c", 0x0160 -"\x00\x00\x73\x00\x03\x0c", 0x0161 -"\x00\x00\x54\x00\x03\x27", 0x0162 -"\x00\x00\x74\x00\x03\x27", 0x0163 -"\x00\x00\x54\x00\x03\x0c", 0x0164 -"\x00\x00\x74\x00\x03\x0c", 0x0165 -"\x00\x00\x55\x00\x03\x03", 0x0168 -"\x00\x00\x75\x00\x03\x03", 0x0169 -"\x00\x00\x55\x00\x03\x04", 0x016a -"\x00\x00\x75\x00\x03\x04", 0x016b -"\x00\x00\x55\x00\x03\x06", 0x016c -"\x00\x00\x75\x00\x03\x06", 0x016d -"\x00\x00\x55\x00\x03\x0a", 0x016e -"\x00\x00\x75\x00\x03\x0a", 0x016f -"\x00\x00\x55\x00\x03\x0b", 0x0170 -"\x00\x00\x75\x00\x03\x0b", 0x0171 -"\x00\x00\x55\x00\x03\x28", 0x0172 -"\x00\x00\x75\x00\x03\x28", 0x0173 -"\x00\x00\x57\x00\x03\x02", 0x0174 -"\x00\x00\x77\x00\x03\x02", 0x0175 -"\x00\x00\x59\x00\x03\x02", 0x0176 -"\x00\x00\x79\x00\x03\x02", 0x0177 -"\x00\x00\x59\x00\x03\x08", 0x0178 -"\x00\x00\x5a\x00\x03\x01", 0x0179 -"\x00\x00\x7a\x00\x03\x01", 0x017a -"\x00\x00\x5a\x00\x03\x07", 0x017b -"\x00\x00\x7a\x00\x03\x07", 0x017c -"\x00\x00\x5a\x00\x03\x0c", 0x017d -"\x00\x00\x7a\x00\x03\x0c", 0x017e -"\x00\x00\x4f\x00\x03\x1b", 0x01a0 -"\x00\x00\x6f\x00\x03\x1b", 0x01a1 -"\x00\x00\x55\x00\x03\x1b", 0x01af -"\x00\x00\x75\x00\x03\x1b", 0x01b0 -"\x00\x00\x41\x00\x03\x0c", 0x01cd -"\x00\x00\x61\x00\x03\x0c", 0x01ce -"\x00\x00\x49\x00\x03\x0c", 0x01cf -"\x00\x00\x69\x00\x03\x0c", 0x01d0 -"\x00\x00\x4f\x00\x03\x0c", 0x01d1 -"\x00\x00\x6f\x00\x03\x0c", 0x01d2 -"\x00\x00\x55\x00\x03\x0c", 0x01d3 -"\x00\x00\x75\x00\x03\x0c", 0x01d4 -"\x00\x00\xdc\x00\x03\x04", 0x01d5 -"\x00\x00\xfc\x00\x03\x04", 0x01d6 -"\x00\x00\xdc\x00\x03\x01", 0x01d7 -"\x00\x00\xfc\x00\x03\x01", 0x01d8 -"\x00\x00\xdc\x00\x03\x0c", 0x01d9 -"\x00\x00\xfc\x00\x03\x0c", 0x01da -"\x00\x00\xdc\x00\x03\x00", 0x01db -"\x00\x00\xfc\x00\x03\x00", 0x01dc -"\x00\x00\xc4\x00\x03\x04", 0x01de -"\x00\x00\xe4\x00\x03\x04", 0x01df -"\x00\x02\x26\x00\x03\x04", 0x01e0 -"\x00\x02\x27\x00\x03\x04", 0x01e1 -"\x00\x00\xc6\x00\x03\x04", 0x01e2 -"\x00\x00\xe6\x00\x03\x04", 0x01e3 -"\x00\x00\x47\x00\x03\x0c", 0x01e6 -"\x00\x00\x67\x00\x03\x0c", 0x01e7 -"\x00\x00\x4b\x00\x03\x0c", 0x01e8 -"\x00\x00\x6b\x00\x03\x0c", 0x01e9 -"\x00\x00\x4f\x00\x03\x28", 0x01ea -"\x00\x00\x6f\x00\x03\x28", 0x01eb -"\x00\x01\xea\x00\x03\x04", 0x01ec -"\x00\x01\xeb\x00\x03\x04", 0x01ed -"\x00\x01\xb7\x00\x03\x0c", 0x01ee -"\x00\x02\x92\x00\x03\x0c", 0x01ef -"\x00\x00\x6a\x00\x03\x0c", 0x01f0 -"\x00\x00\x47\x00\x03\x01", 0x01f4 -"\x00\x00\x67\x00\x03\x01", 0x01f5 -"\x00\x00\x4e\x00\x03\x00", 0x01f8 -"\x00\x00\x6e\x00\x03\x00", 0x01f9 -"\x00\x00\xc5\x00\x03\x01", 0x01fa -"\x00\x00\xe5\x00\x03\x01", 0x01fb -"\x00\x00\xc6\x00\x03\x01", 0x01fc -"\x00\x00\xe6\x00\x03\x01", 0x01fd -"\x00\x00\xd8\x00\x03\x01", 0x01fe -"\x00\x00\xf8\x00\x03\x01", 0x01ff -"\x00\x00\x41\x00\x03\x0f", 0x0200 -"\x00\x00\x61\x00\x03\x0f", 0x0201 -"\x00\x00\x41\x00\x03\x11", 0x0202 -"\x00\x00\x61\x00\x03\x11", 0x0203 -"\x00\x00\x45\x00\x03\x0f", 0x0204 -"\x00\x00\x65\x00\x03\x0f", 0x0205 -"\x00\x00\x45\x00\x03\x11", 0x0206 -"\x00\x00\x65\x00\x03\x11", 0x0207 -"\x00\x00\x49\x00\x03\x0f", 0x0208 -"\x00\x00\x69\x00\x03\x0f", 0x0209 -"\x00\x00\x49\x00\x03\x11", 0x020a -"\x00\x00\x69\x00\x03\x11", 0x020b -"\x00\x00\x4f\x00\x03\x0f", 0x020c -"\x00\x00\x6f\x00\x03\x0f", 0x020d -"\x00\x00\x4f\x00\x03\x11", 0x020e -"\x00\x00\x6f\x00\x03\x11", 0x020f -"\x00\x00\x52\x00\x03\x0f", 0x0210 -"\x00\x00\x72\x00\x03\x0f", 0x0211 -"\x00\x00\x52\x00\x03\x11", 0x0212 -"\x00\x00\x72\x00\x03\x11", 0x0213 -"\x00\x00\x55\x00\x03\x0f", 0x0214 -"\x00\x00\x75\x00\x03\x0f", 0x0215 -"\x00\x00\x55\x00\x03\x11", 0x0216 -"\x00\x00\x75\x00\x03\x11", 0x0217 -"\x00\x00\x53\x00\x03\x26", 0x0218 -"\x00\x00\x73\x00\x03\x26", 0x0219 -"\x00\x00\x54\x00\x03\x26", 0x021a -"\x00\x00\x74\x00\x03\x26", 0x021b -"\x00\x00\x48\x00\x03\x0c", 0x021e -"\x00\x00\x68\x00\x03\x0c", 0x021f -"\x00\x00\x41\x00\x03\x07", 0x0226 -"\x00\x00\x61\x00\x03\x07", 0x0227 -"\x00\x00\x45\x00\x03\x27", 0x0228 -"\x00\x00\x65\x00\x03\x27", 0x0229 -"\x00\x00\xd6\x00\x03\x04", 0x022a -"\x00\x00\xf6\x00\x03\x04", 0x022b -"\x00\x00\xd5\x00\x03\x04", 0x022c -"\x00\x00\xf5\x00\x03\x04", 0x022d -"\x00\x00\x4f\x00\x03\x07", 0x022e -"\x00\x00\x6f\x00\x03\x07", 0x022f -"\x00\x02\x2e\x00\x03\x04", 0x0230 -"\x00\x02\x2f\x00\x03\x04", 0x0231 -"\x00\x00\x59\x00\x03\x04", 0x0232 -"\x00\x00\x79\x00\x03\x04", 0x0233 -"\x00\x00\xa8\x00\x03\x01", 0x0385 -"\x00\x03\x91\x00\x03\x01", 0x0386 -"\x00\x03\x95\x00\x03\x01", 0x0388 -"\x00\x03\x97\x00\x03\x01", 0x0389 -"\x00\x03\x99\x00\x03\x01", 0x038a -"\x00\x03\x9f\x00\x03\x01", 0x038c -"\x00\x03\xa5\x00\x03\x01", 0x038e -"\x00\x03\xa9\x00\x03\x01", 0x038f -"\x00\x03\xca\x00\x03\x01", 0x0390 -"\x00\x03\x99\x00\x03\x08", 0x03aa -"\x00\x03\xa5\x00\x03\x08", 0x03ab -"\x00\x03\xb1\x00\x03\x01", 0x03ac -"\x00\x03\xb5\x00\x03\x01", 0x03ad -"\x00\x03\xb7\x00\x03\x01", 0x03ae -"\x00\x03\xb9\x00\x03\x01", 0x03af -"\x00\x03\xcb\x00\x03\x01", 0x03b0 -"\x00\x03\xb9\x00\x03\x08", 0x03ca -"\x00\x03\xc5\x00\x03\x08", 0x03cb -"\x00\x03\xbf\x00\x03\x01", 0x03cc -"\x00\x03\xc5\x00\x03\x01", 0x03cd -"\x00\x03\xc9\x00\x03\x01", 0x03ce -"\x00\x03\xd2\x00\x03\x01", 0x03d3 -"\x00\x03\xd2\x00\x03\x08", 0x03d4 -"\x00\x04\x15\x00\x03\x00", 0x0400 -"\x00\x04\x15\x00\x03\x08", 0x0401 -"\x00\x04\x13\x00\x03\x01", 0x0403 -"\x00\x04\x06\x00\x03\x08", 0x0407 -"\x00\x04\x1a\x00\x03\x01", 0x040c -"\x00\x04\x18\x00\x03\x00", 0x040d -"\x00\x04\x23\x00\x03\x06", 0x040e -"\x00\x04\x18\x00\x03\x06", 0x0419 -"\x00\x04\x38\x00\x03\x06", 0x0439 -"\x00\x04\x35\x00\x03\x00", 0x0450 -"\x00\x04\x35\x00\x03\x08", 0x0451 -"\x00\x04\x33\x00\x03\x01", 0x0453 -"\x00\x04\x56\x00\x03\x08", 0x0457 -"\x00\x04\x3a\x00\x03\x01", 0x045c -"\x00\x04\x38\x00\x03\x00", 0x045d -"\x00\x04\x43\x00\x03\x06", 0x045e -"\x00\x04\x74\x00\x03\x0f", 0x0476 -"\x00\x04\x75\x00\x03\x0f", 0x0477 -"\x00\x04\x16\x00\x03\x06", 0x04c1 -"\x00\x04\x36\x00\x03\x06", 0x04c2 -"\x00\x04\x10\x00\x03\x06", 0x04d0 -"\x00\x04\x30\x00\x03\x06", 0x04d1 -"\x00\x04\x10\x00\x03\x08", 0x04d2 -"\x00\x04\x30\x00\x03\x08", 0x04d3 -"\x00\x04\x15\x00\x03\x06", 0x04d6 -"\x00\x04\x35\x00\x03\x06", 0x04d7 -"\x00\x04\xd8\x00\x03\x08", 0x04da -"\x00\x04\xd9\x00\x03\x08", 0x04db -"\x00\x04\x16\x00\x03\x08", 0x04dc -"\x00\x04\x36\x00\x03\x08", 0x04dd -"\x00\x04\x17\x00\x03\x08", 0x04de -"\x00\x04\x37\x00\x03\x08", 0x04df -"\x00\x04\x18\x00\x03\x04", 0x04e2 -"\x00\x04\x38\x00\x03\x04", 0x04e3 -"\x00\x04\x18\x00\x03\x08", 0x04e4 -"\x00\x04\x38\x00\x03\x08", 0x04e5 -"\x00\x04\x1e\x00\x03\x08", 0x04e6 -"\x00\x04\x3e\x00\x03\x08", 0x04e7 -"\x00\x04\xe8\x00\x03\x08", 0x04ea -"\x00\x04\xe9\x00\x03\x08", 0x04eb -"\x00\x04\x2d\x00\x03\x08", 0x04ec -"\x00\x04\x4d\x00\x03\x08", 0x04ed -"\x00\x04\x23\x00\x03\x04", 0x04ee -"\x00\x04\x43\x00\x03\x04", 0x04ef -"\x00\x04\x23\x00\x03\x08", 0x04f0 -"\x00\x04\x43\x00\x03\x08", 0x04f1 -"\x00\x04\x23\x00\x03\x0b", 0x04f2 -"\x00\x04\x43\x00\x03\x0b", 0x04f3 -"\x00\x04\x27\x00\x03\x08", 0x04f4 -"\x00\x04\x47\x00\x03\x08", 0x04f5 -"\x00\x04\x2b\x00\x03\x08", 0x04f8 -"\x00\x04\x4b\x00\x03\x08", 0x04f9 -"\x00\x06\x27\x00\x06\x53", 0x0622 -"\x00\x06\x27\x00\x06\x54", 0x0623 -"\x00\x06\x48\x00\x06\x54", 0x0624 -"\x00\x06\x27\x00\x06\x55", 0x0625 -"\x00\x06\x4a\x00\x06\x54", 0x0626 -"\x00\x06\xd5\x00\x06\x54", 0x06c0 -"\x00\x06\xc1\x00\x06\x54", 0x06c2 -"\x00\x06\xd2\x00\x06\x54", 0x06d3 -"\x00\x09\x28\x00\x09\x3c", 0x0929 -"\x00\x09\x30\x00\x09\x3c", 0x0931 -"\x00\x09\x33\x00\x09\x3c", 0x0934 -"\x00\x09\xc7\x00\x09\xbe", 0x09cb -"\x00\x09\xc7\x00\x09\xd7", 0x09cc -"\x00\x0b\x47\x00\x0b\x56", 0x0b48 -"\x00\x0b\x47\x00\x0b\x3e", 0x0b4b -"\x00\x0b\x47\x00\x0b\x57", 0x0b4c -"\x00\x0b\x92\x00\x0b\xd7", 0x0b94 -"\x00\x0b\xc6\x00\x0b\xbe", 0x0bca -"\x00\x0b\xc7\x00\x0b\xbe", 0x0bcb -"\x00\x0b\xc6\x00\x0b\xd7", 0x0bcc -"\x00\x0c\x46\x00\x0c\x56", 0x0c48 -"\x00\x0c\xbf\x00\x0c\xd5", 0x0cc0 -"\x00\x0c\xc6\x00\x0c\xd5", 0x0cc7 -"\x00\x0c\xc6\x00\x0c\xd6", 0x0cc8 -"\x00\x0c\xc6\x00\x0c\xc2", 0x0cca -"\x00\x0c\xca\x00\x0c\xd5", 0x0ccb -"\x00\x0d\x46\x00\x0d\x3e", 0x0d4a -"\x00\x0d\x47\x00\x0d\x3e", 0x0d4b -"\x00\x0d\x46\x00\x0d\x57", 0x0d4c -"\x00\x0d\xd9\x00\x0d\xca", 0x0dda -"\x00\x0d\xd9\x00\x0d\xcf", 0x0ddc -"\x00\x0d\xdc\x00\x0d\xca", 0x0ddd -"\x00\x0d\xd9\x00\x0d\xdf", 0x0dde -"\x00\x10\x25\x00\x10\x2e", 0x1026 -"\x00\x1b\x05\x00\x1b\x35", 0x1b06 -"\x00\x1b\x07\x00\x1b\x35", 0x1b08 -"\x00\x1b\x09\x00\x1b\x35", 0x1b0a -"\x00\x1b\x0b\x00\x1b\x35", 0x1b0c -"\x00\x1b\x0d\x00\x1b\x35", 0x1b0e -"\x00\x1b\x11\x00\x1b\x35", 0x1b12 -"\x00\x1b\x3a\x00\x1b\x35", 0x1b3b -"\x00\x1b\x3c\x00\x1b\x35", 0x1b3d -"\x00\x1b\x3e\x00\x1b\x35", 0x1b40 -"\x00\x1b\x3f\x00\x1b\x35", 0x1b41 -"\x00\x1b\x42\x00\x1b\x35", 0x1b43 -"\x00\x00\x41\x00\x03\x25", 0x1e00 -"\x00\x00\x61\x00\x03\x25", 0x1e01 -"\x00\x00\x42\x00\x03\x07", 0x1e02 -"\x00\x00\x62\x00\x03\x07", 0x1e03 -"\x00\x00\x42\x00\x03\x23", 0x1e04 -"\x00\x00\x62\x00\x03\x23", 0x1e05 -"\x00\x00\x42\x00\x03\x31", 0x1e06 -"\x00\x00\x62\x00\x03\x31", 0x1e07 -"\x00\x00\xc7\x00\x03\x01", 0x1e08 -"\x00\x00\xe7\x00\x03\x01", 0x1e09 -"\x00\x00\x44\x00\x03\x07", 0x1e0a -"\x00\x00\x64\x00\x03\x07", 0x1e0b -"\x00\x00\x44\x00\x03\x23", 0x1e0c -"\x00\x00\x64\x00\x03\x23", 0x1e0d -"\x00\x00\x44\x00\x03\x31", 0x1e0e -"\x00\x00\x64\x00\x03\x31", 0x1e0f -"\x00\x00\x44\x00\x03\x27", 0x1e10 -"\x00\x00\x64\x00\x03\x27", 0x1e11 -"\x00\x00\x44\x00\x03\x2d", 0x1e12 -"\x00\x00\x64\x00\x03\x2d", 0x1e13 -"\x00\x01\x12\x00\x03\x00", 0x1e14 -"\x00\x01\x13\x00\x03\x00", 0x1e15 -"\x00\x01\x12\x00\x03\x01", 0x1e16 -"\x00\x01\x13\x00\x03\x01", 0x1e17 -"\x00\x00\x45\x00\x03\x2d", 0x1e18 -"\x00\x00\x65\x00\x03\x2d", 0x1e19 -"\x00\x00\x45\x00\x03\x30", 0x1e1a -"\x00\x00\x65\x00\x03\x30", 0x1e1b -"\x00\x02\x28\x00\x03\x06", 0x1e1c -"\x00\x02\x29\x00\x03\x06", 0x1e1d -"\x00\x00\x46\x00\x03\x07", 0x1e1e -"\x00\x00\x66\x00\x03\x07", 0x1e1f -"\x00\x00\x47\x00\x03\x04", 0x1e20 -"\x00\x00\x67\x00\x03\x04", 0x1e21 -"\x00\x00\x48\x00\x03\x07", 0x1e22 -"\x00\x00\x68\x00\x03\x07", 0x1e23 -"\x00\x00\x48\x00\x03\x23", 0x1e24 -"\x00\x00\x68\x00\x03\x23", 0x1e25 -"\x00\x00\x48\x00\x03\x08", 0x1e26 -"\x00\x00\x68\x00\x03\x08", 0x1e27 -"\x00\x00\x48\x00\x03\x27", 0x1e28 -"\x00\x00\x68\x00\x03\x27", 0x1e29 -"\x00\x00\x48\x00\x03\x2e", 0x1e2a -"\x00\x00\x68\x00\x03\x2e", 0x1e2b -"\x00\x00\x49\x00\x03\x30", 0x1e2c -"\x00\x00\x69\x00\x03\x30", 0x1e2d -"\x00\x00\xcf\x00\x03\x01", 0x1e2e -"\x00\x00\xef\x00\x03\x01", 0x1e2f -"\x00\x00\x4b\x00\x03\x01", 0x1e30 -"\x00\x00\x6b\x00\x03\x01", 0x1e31 -"\x00\x00\x4b\x00\x03\x23", 0x1e32 -"\x00\x00\x6b\x00\x03\x23", 0x1e33 -"\x00\x00\x4b\x00\x03\x31", 0x1e34 -"\x00\x00\x6b\x00\x03\x31", 0x1e35 -"\x00\x00\x4c\x00\x03\x23", 0x1e36 -"\x00\x00\x6c\x00\x03\x23", 0x1e37 -"\x00\x1e\x36\x00\x03\x04", 0x1e38 -"\x00\x1e\x37\x00\x03\x04", 0x1e39 -"\x00\x00\x4c\x00\x03\x31", 0x1e3a -"\x00\x00\x6c\x00\x03\x31", 0x1e3b -"\x00\x00\x4c\x00\x03\x2d", 0x1e3c -"\x00\x00\x6c\x00\x03\x2d", 0x1e3d -"\x00\x00\x4d\x00\x03\x01", 0x1e3e -"\x00\x00\x6d\x00\x03\x01", 0x1e3f -"\x00\x00\x4d\x00\x03\x07", 0x1e40 -"\x00\x00\x6d\x00\x03\x07", 0x1e41 -"\x00\x00\x4d\x00\x03\x23", 0x1e42 -"\x00\x00\x6d\x00\x03\x23", 0x1e43 -"\x00\x00\x4e\x00\x03\x07", 0x1e44 -"\x00\x00\x6e\x00\x03\x07", 0x1e45 -"\x00\x00\x4e\x00\x03\x23", 0x1e46 -"\x00\x00\x6e\x00\x03\x23", 0x1e47 -"\x00\x00\x4e\x00\x03\x31", 0x1e48 -"\x00\x00\x6e\x00\x03\x31", 0x1e49 -"\x00\x00\x4e\x00\x03\x2d", 0x1e4a -"\x00\x00\x6e\x00\x03\x2d", 0x1e4b -"\x00\x00\xd5\x00\x03\x01", 0x1e4c -"\x00\x00\xf5\x00\x03\x01", 0x1e4d -"\x00\x00\xd5\x00\x03\x08", 0x1e4e -"\x00\x00\xf5\x00\x03\x08", 0x1e4f -"\x00\x01\x4c\x00\x03\x00", 0x1e50 -"\x00\x01\x4d\x00\x03\x00", 0x1e51 -"\x00\x01\x4c\x00\x03\x01", 0x1e52 -"\x00\x01\x4d\x00\x03\x01", 0x1e53 -"\x00\x00\x50\x00\x03\x01", 0x1e54 -"\x00\x00\x70\x00\x03\x01", 0x1e55 -"\x00\x00\x50\x00\x03\x07", 0x1e56 -"\x00\x00\x70\x00\x03\x07", 0x1e57 -"\x00\x00\x52\x00\x03\x07", 0x1e58 -"\x00\x00\x72\x00\x03\x07", 0x1e59 -"\x00\x00\x52\x00\x03\x23", 0x1e5a -"\x00\x00\x72\x00\x03\x23", 0x1e5b -"\x00\x1e\x5a\x00\x03\x04", 0x1e5c -"\x00\x1e\x5b\x00\x03\x04", 0x1e5d -"\x00\x00\x52\x00\x03\x31", 0x1e5e -"\x00\x00\x72\x00\x03\x31", 0x1e5f -"\x00\x00\x53\x00\x03\x07", 0x1e60 -"\x00\x00\x73\x00\x03\x07", 0x1e61 -"\x00\x00\x53\x00\x03\x23", 0x1e62 -"\x00\x00\x73\x00\x03\x23", 0x1e63 -"\x00\x01\x5a\x00\x03\x07", 0x1e64 -"\x00\x01\x5b\x00\x03\x07", 0x1e65 -"\x00\x01\x60\x00\x03\x07", 0x1e66 -"\x00\x01\x61\x00\x03\x07", 0x1e67 -"\x00\x1e\x62\x00\x03\x07", 0x1e68 -"\x00\x1e\x63\x00\x03\x07", 0x1e69 -"\x00\x00\x54\x00\x03\x07", 0x1e6a -"\x00\x00\x74\x00\x03\x07", 0x1e6b -"\x00\x00\x54\x00\x03\x23", 0x1e6c -"\x00\x00\x74\x00\x03\x23", 0x1e6d -"\x00\x00\x54\x00\x03\x31", 0x1e6e -"\x00\x00\x74\x00\x03\x31", 0x1e6f -"\x00\x00\x54\x00\x03\x2d", 0x1e70 -"\x00\x00\x74\x00\x03\x2d", 0x1e71 -"\x00\x00\x55\x00\x03\x24", 0x1e72 -"\x00\x00\x75\x00\x03\x24", 0x1e73 -"\x00\x00\x55\x00\x03\x30", 0x1e74 -"\x00\x00\x75\x00\x03\x30", 0x1e75 -"\x00\x00\x55\x00\x03\x2d", 0x1e76 -"\x00\x00\x75\x00\x03\x2d", 0x1e77 -"\x00\x01\x68\x00\x03\x01", 0x1e78 -"\x00\x01\x69\x00\x03\x01", 0x1e79 -"\x00\x01\x6a\x00\x03\x08", 0x1e7a -"\x00\x01\x6b\x00\x03\x08", 0x1e7b -"\x00\x00\x56\x00\x03\x03", 0x1e7c -"\x00\x00\x76\x00\x03\x03", 0x1e7d -"\x00\x00\x56\x00\x03\x23", 0x1e7e -"\x00\x00\x76\x00\x03\x23", 0x1e7f -"\x00\x00\x57\x00\x03\x00", 0x1e80 -"\x00\x00\x77\x00\x03\x00", 0x1e81 -"\x00\x00\x57\x00\x03\x01", 0x1e82 -"\x00\x00\x77\x00\x03\x01", 0x1e83 -"\x00\x00\x57\x00\x03\x08", 0x1e84 -"\x00\x00\x77\x00\x03\x08", 0x1e85 -"\x00\x00\x57\x00\x03\x07", 0x1e86 -"\x00\x00\x77\x00\x03\x07", 0x1e87 -"\x00\x00\x57\x00\x03\x23", 0x1e88 -"\x00\x00\x77\x00\x03\x23", 0x1e89 -"\x00\x00\x58\x00\x03\x07", 0x1e8a -"\x00\x00\x78\x00\x03\x07", 0x1e8b -"\x00\x00\x58\x00\x03\x08", 0x1e8c -"\x00\x00\x78\x00\x03\x08", 0x1e8d -"\x00\x00\x59\x00\x03\x07", 0x1e8e -"\x00\x00\x79\x00\x03\x07", 0x1e8f -"\x00\x00\x5a\x00\x03\x02", 0x1e90 -"\x00\x00\x7a\x00\x03\x02", 0x1e91 -"\x00\x00\x5a\x00\x03\x23", 0x1e92 -"\x00\x00\x7a\x00\x03\x23", 0x1e93 -"\x00\x00\x5a\x00\x03\x31", 0x1e94 -"\x00\x00\x7a\x00\x03\x31", 0x1e95 -"\x00\x00\x68\x00\x03\x31", 0x1e96 -"\x00\x00\x74\x00\x03\x08", 0x1e97 -"\x00\x00\x77\x00\x03\x0a", 0x1e98 -"\x00\x00\x79\x00\x03\x0a", 0x1e99 -"\x00\x01\x7f\x00\x03\x07", 0x1e9b -"\x00\x00\x41\x00\x03\x23", 0x1ea0 -"\x00\x00\x61\x00\x03\x23", 0x1ea1 -"\x00\x00\x41\x00\x03\x09", 0x1ea2 -"\x00\x00\x61\x00\x03\x09", 0x1ea3 -"\x00\x00\xc2\x00\x03\x01", 0x1ea4 -"\x00\x00\xe2\x00\x03\x01", 0x1ea5 -"\x00\x00\xc2\x00\x03\x00", 0x1ea6 -"\x00\x00\xe2\x00\x03\x00", 0x1ea7 -"\x00\x00\xc2\x00\x03\x09", 0x1ea8 -"\x00\x00\xe2\x00\x03\x09", 0x1ea9 -"\x00\x00\xc2\x00\x03\x03", 0x1eaa -"\x00\x00\xe2\x00\x03\x03", 0x1eab -"\x00\x1e\xa0\x00\x03\x02", 0x1eac -"\x00\x1e\xa1\x00\x03\x02", 0x1ead -"\x00\x01\x02\x00\x03\x01", 0x1eae -"\x00\x01\x03\x00\x03\x01", 0x1eaf -"\x00\x01\x02\x00\x03\x00", 0x1eb0 -"\x00\x01\x03\x00\x03\x00", 0x1eb1 -"\x00\x01\x02\x00\x03\x09", 0x1eb2 -"\x00\x01\x03\x00\x03\x09", 0x1eb3 -"\x00\x01\x02\x00\x03\x03", 0x1eb4 -"\x00\x01\x03\x00\x03\x03", 0x1eb5 -"\x00\x1e\xa0\x00\x03\x06", 0x1eb6 -"\x00\x1e\xa1\x00\x03\x06", 0x1eb7 -"\x00\x00\x45\x00\x03\x23", 0x1eb8 -"\x00\x00\x65\x00\x03\x23", 0x1eb9 -"\x00\x00\x45\x00\x03\x09", 0x1eba -"\x00\x00\x65\x00\x03\x09", 0x1ebb -"\x00\x00\x45\x00\x03\x03", 0x1ebc -"\x00\x00\x65\x00\x03\x03", 0x1ebd -"\x00\x00\xca\x00\x03\x01", 0x1ebe -"\x00\x00\xea\x00\x03\x01", 0x1ebf -"\x00\x00\xca\x00\x03\x00", 0x1ec0 -"\x00\x00\xea\x00\x03\x00", 0x1ec1 -"\x00\x00\xca\x00\x03\x09", 0x1ec2 -"\x00\x00\xea\x00\x03\x09", 0x1ec3 -"\x00\x00\xca\x00\x03\x03", 0x1ec4 -"\x00\x00\xea\x00\x03\x03", 0x1ec5 -"\x00\x1e\xb8\x00\x03\x02", 0x1ec6 -"\x00\x1e\xb9\x00\x03\x02", 0x1ec7 -"\x00\x00\x49\x00\x03\x09", 0x1ec8 -"\x00\x00\x69\x00\x03\x09", 0x1ec9 -"\x00\x00\x49\x00\x03\x23", 0x1eca -"\x00\x00\x69\x00\x03\x23", 0x1ecb -"\x00\x00\x4f\x00\x03\x23", 0x1ecc -"\x00\x00\x6f\x00\x03\x23", 0x1ecd -"\x00\x00\x4f\x00\x03\x09", 0x1ece -"\x00\x00\x6f\x00\x03\x09", 0x1ecf -"\x00\x00\xd4\x00\x03\x01", 0x1ed0 -"\x00\x00\xf4\x00\x03\x01", 0x1ed1 -"\x00\x00\xd4\x00\x03\x00", 0x1ed2 -"\x00\x00\xf4\x00\x03\x00", 0x1ed3 -"\x00\x00\xd4\x00\x03\x09", 0x1ed4 -"\x00\x00\xf4\x00\x03\x09", 0x1ed5 -"\x00\x00\xd4\x00\x03\x03", 0x1ed6 -"\x00\x00\xf4\x00\x03\x03", 0x1ed7 -"\x00\x1e\xcc\x00\x03\x02", 0x1ed8 -"\x00\x1e\xcd\x00\x03\x02", 0x1ed9 -"\x00\x01\xa0\x00\x03\x01", 0x1eda -"\x00\x01\xa1\x00\x03\x01", 0x1edb -"\x00\x01\xa0\x00\x03\x00", 0x1edc -"\x00\x01\xa1\x00\x03\x00", 0x1edd -"\x00\x01\xa0\x00\x03\x09", 0x1ede -"\x00\x01\xa1\x00\x03\x09", 0x1edf -"\x00\x01\xa0\x00\x03\x03", 0x1ee0 -"\x00\x01\xa1\x00\x03\x03", 0x1ee1 -"\x00\x01\xa0\x00\x03\x23", 0x1ee2 -"\x00\x01\xa1\x00\x03\x23", 0x1ee3 -"\x00\x00\x55\x00\x03\x23", 0x1ee4 -"\x00\x00\x75\x00\x03\x23", 0x1ee5 -"\x00\x00\x55\x00\x03\x09", 0x1ee6 -"\x00\x00\x75\x00\x03\x09", 0x1ee7 -"\x00\x01\xaf\x00\x03\x01", 0x1ee8 -"\x00\x01\xb0\x00\x03\x01", 0x1ee9 -"\x00\x01\xaf\x00\x03\x00", 0x1eea -"\x00\x01\xb0\x00\x03\x00", 0x1eeb -"\x00\x01\xaf\x00\x03\x09", 0x1eec -"\x00\x01\xb0\x00\x03\x09", 0x1eed -"\x00\x01\xaf\x00\x03\x03", 0x1eee -"\x00\x01\xb0\x00\x03\x03", 0x1eef -"\x00\x01\xaf\x00\x03\x23", 0x1ef0 -"\x00\x01\xb0\x00\x03\x23", 0x1ef1 -"\x00\x00\x59\x00\x03\x00", 0x1ef2 -"\x00\x00\x79\x00\x03\x00", 0x1ef3 -"\x00\x00\x59\x00\x03\x23", 0x1ef4 -"\x00\x00\x79\x00\x03\x23", 0x1ef5 -"\x00\x00\x59\x00\x03\x09", 0x1ef6 -"\x00\x00\x79\x00\x03\x09", 0x1ef7 -"\x00\x00\x59\x00\x03\x03", 0x1ef8 -"\x00\x00\x79\x00\x03\x03", 0x1ef9 -"\x00\x03\xb1\x00\x03\x13", 0x1f00 -"\x00\x03\xb1\x00\x03\x14", 0x1f01 -"\x00\x1f\x00\x00\x03\x00", 0x1f02 -"\x00\x1f\x01\x00\x03\x00", 0x1f03 -"\x00\x1f\x00\x00\x03\x01", 0x1f04 -"\x00\x1f\x01\x00\x03\x01", 0x1f05 -"\x00\x1f\x00\x00\x03\x42", 0x1f06 -"\x00\x1f\x01\x00\x03\x42", 0x1f07 -"\x00\x03\x91\x00\x03\x13", 0x1f08 -"\x00\x03\x91\x00\x03\x14", 0x1f09 -"\x00\x1f\x08\x00\x03\x00", 0x1f0a -"\x00\x1f\x09\x00\x03\x00", 0x1f0b -"\x00\x1f\x08\x00\x03\x01", 0x1f0c -"\x00\x1f\x09\x00\x03\x01", 0x1f0d -"\x00\x1f\x08\x00\x03\x42", 0x1f0e -"\x00\x1f\x09\x00\x03\x42", 0x1f0f -"\x00\x03\xb5\x00\x03\x13", 0x1f10 -"\x00\x03\xb5\x00\x03\x14", 0x1f11 -"\x00\x1f\x10\x00\x03\x00", 0x1f12 -"\x00\x1f\x11\x00\x03\x00", 0x1f13 -"\x00\x1f\x10\x00\x03\x01", 0x1f14 -"\x00\x1f\x11\x00\x03\x01", 0x1f15 -"\x00\x03\x95\x00\x03\x13", 0x1f18 -"\x00\x03\x95\x00\x03\x14", 0x1f19 -"\x00\x1f\x18\x00\x03\x00", 0x1f1a -"\x00\x1f\x19\x00\x03\x00", 0x1f1b -"\x00\x1f\x18\x00\x03\x01", 0x1f1c -"\x00\x1f\x19\x00\x03\x01", 0x1f1d -"\x00\x03\xb7\x00\x03\x13", 0x1f20 -"\x00\x03\xb7\x00\x03\x14", 0x1f21 -"\x00\x1f\x20\x00\x03\x00", 0x1f22 -"\x00\x1f\x21\x00\x03\x00", 0x1f23 -"\x00\x1f\x20\x00\x03\x01", 0x1f24 -"\x00\x1f\x21\x00\x03\x01", 0x1f25 -"\x00\x1f\x20\x00\x03\x42", 0x1f26 -"\x00\x1f\x21\x00\x03\x42", 0x1f27 -"\x00\x03\x97\x00\x03\x13", 0x1f28 -"\x00\x03\x97\x00\x03\x14", 0x1f29 -"\x00\x1f\x28\x00\x03\x00", 0x1f2a -"\x00\x1f\x29\x00\x03\x00", 0x1f2b -"\x00\x1f\x28\x00\x03\x01", 0x1f2c -"\x00\x1f\x29\x00\x03\x01", 0x1f2d -"\x00\x1f\x28\x00\x03\x42", 0x1f2e -"\x00\x1f\x29\x00\x03\x42", 0x1f2f -"\x00\x03\xb9\x00\x03\x13", 0x1f30 -"\x00\x03\xb9\x00\x03\x14", 0x1f31 -"\x00\x1f\x30\x00\x03\x00", 0x1f32 -"\x00\x1f\x31\x00\x03\x00", 0x1f33 -"\x00\x1f\x30\x00\x03\x01", 0x1f34 -"\x00\x1f\x31\x00\x03\x01", 0x1f35 -"\x00\x1f\x30\x00\x03\x42", 0x1f36 -"\x00\x1f\x31\x00\x03\x42", 0x1f37 -"\x00\x03\x99\x00\x03\x13", 0x1f38 -"\x00\x03\x99\x00\x03\x14", 0x1f39 -"\x00\x1f\x38\x00\x03\x00", 0x1f3a -"\x00\x1f\x39\x00\x03\x00", 0x1f3b -"\x00\x1f\x38\x00\x03\x01", 0x1f3c -"\x00\x1f\x39\x00\x03\x01", 0x1f3d -"\x00\x1f\x38\x00\x03\x42", 0x1f3e -"\x00\x1f\x39\x00\x03\x42", 0x1f3f -"\x00\x03\xbf\x00\x03\x13", 0x1f40 -"\x00\x03\xbf\x00\x03\x14", 0x1f41 -"\x00\x1f\x40\x00\x03\x00", 0x1f42 -"\x00\x1f\x41\x00\x03\x00", 0x1f43 -"\x00\x1f\x40\x00\x03\x01", 0x1f44 -"\x00\x1f\x41\x00\x03\x01", 0x1f45 -"\x00\x03\x9f\x00\x03\x13", 0x1f48 -"\x00\x03\x9f\x00\x03\x14", 0x1f49 -"\x00\x1f\x48\x00\x03\x00", 0x1f4a -"\x00\x1f\x49\x00\x03\x00", 0x1f4b -"\x00\x1f\x48\x00\x03\x01", 0x1f4c -"\x00\x1f\x49\x00\x03\x01", 0x1f4d -"\x00\x03\xc5\x00\x03\x13", 0x1f50 -"\x00\x03\xc5\x00\x03\x14", 0x1f51 -"\x00\x1f\x50\x00\x03\x00", 0x1f52 -"\x00\x1f\x51\x00\x03\x00", 0x1f53 -"\x00\x1f\x50\x00\x03\x01", 0x1f54 -"\x00\x1f\x51\x00\x03\x01", 0x1f55 -"\x00\x1f\x50\x00\x03\x42", 0x1f56 -"\x00\x1f\x51\x00\x03\x42", 0x1f57 -"\x00\x03\xa5\x00\x03\x14", 0x1f59 -"\x00\x1f\x59\x00\x03\x00", 0x1f5b -"\x00\x1f\x59\x00\x03\x01", 0x1f5d -"\x00\x1f\x59\x00\x03\x42", 0x1f5f -"\x00\x03\xc9\x00\x03\x13", 0x1f60 -"\x00\x03\xc9\x00\x03\x14", 0x1f61 -"\x00\x1f\x60\x00\x03\x00", 0x1f62 -"\x00\x1f\x61\x00\x03\x00", 0x1f63 -"\x00\x1f\x60\x00\x03\x01", 0x1f64 -"\x00\x1f\x61\x00\x03\x01", 0x1f65 -"\x00\x1f\x60\x00\x03\x42", 0x1f66 -"\x00\x1f\x61\x00\x03\x42", 0x1f67 -"\x00\x03\xa9\x00\x03\x13", 0x1f68 -"\x00\x03\xa9\x00\x03\x14", 0x1f69 -"\x00\x1f\x68\x00\x03\x00", 0x1f6a -"\x00\x1f\x69\x00\x03\x00", 0x1f6b -"\x00\x1f\x68\x00\x03\x01", 0x1f6c -"\x00\x1f\x69\x00\x03\x01", 0x1f6d -"\x00\x1f\x68\x00\x03\x42", 0x1f6e -"\x00\x1f\x69\x00\x03\x42", 0x1f6f -"\x00\x03\xb1\x00\x03\x00", 0x1f70 -"\x00\x03\xb5\x00\x03\x00", 0x1f72 -"\x00\x03\xb7\x00\x03\x00", 0x1f74 -"\x00\x03\xb9\x00\x03\x00", 0x1f76 -"\x00\x03\xbf\x00\x03\x00", 0x1f78 -"\x00\x03\xc5\x00\x03\x00", 0x1f7a -"\x00\x03\xc9\x00\x03\x00", 0x1f7c -"\x00\x1f\x00\x00\x03\x45", 0x1f80 -"\x00\x1f\x01\x00\x03\x45", 0x1f81 -"\x00\x1f\x02\x00\x03\x45", 0x1f82 -"\x00\x1f\x03\x00\x03\x45", 0x1f83 -"\x00\x1f\x04\x00\x03\x45", 0x1f84 -"\x00\x1f\x05\x00\x03\x45", 0x1f85 -"\x00\x1f\x06\x00\x03\x45", 0x1f86 -"\x00\x1f\x07\x00\x03\x45", 0x1f87 -"\x00\x1f\x08\x00\x03\x45", 0x1f88 -"\x00\x1f\x09\x00\x03\x45", 0x1f89 -"\x00\x1f\x0a\x00\x03\x45", 0x1f8a -"\x00\x1f\x0b\x00\x03\x45", 0x1f8b -"\x00\x1f\x0c\x00\x03\x45", 0x1f8c -"\x00\x1f\x0d\x00\x03\x45", 0x1f8d -"\x00\x1f\x0e\x00\x03\x45", 0x1f8e -"\x00\x1f\x0f\x00\x03\x45", 0x1f8f -"\x00\x1f\x20\x00\x03\x45", 0x1f90 -"\x00\x1f\x21\x00\x03\x45", 0x1f91 -"\x00\x1f\x22\x00\x03\x45", 0x1f92 -"\x00\x1f\x23\x00\x03\x45", 0x1f93 -"\x00\x1f\x24\x00\x03\x45", 0x1f94 -"\x00\x1f\x25\x00\x03\x45", 0x1f95 -"\x00\x1f\x26\x00\x03\x45", 0x1f96 -"\x00\x1f\x27\x00\x03\x45", 0x1f97 -"\x00\x1f\x28\x00\x03\x45", 0x1f98 -"\x00\x1f\x29\x00\x03\x45", 0x1f99 -"\x00\x1f\x2a\x00\x03\x45", 0x1f9a -"\x00\x1f\x2b\x00\x03\x45", 0x1f9b -"\x00\x1f\x2c\x00\x03\x45", 0x1f9c -"\x00\x1f\x2d\x00\x03\x45", 0x1f9d -"\x00\x1f\x2e\x00\x03\x45", 0x1f9e -"\x00\x1f\x2f\x00\x03\x45", 0x1f9f -"\x00\x1f\x60\x00\x03\x45", 0x1fa0 -"\x00\x1f\x61\x00\x03\x45", 0x1fa1 -"\x00\x1f\x62\x00\x03\x45", 0x1fa2 -"\x00\x1f\x63\x00\x03\x45", 0x1fa3 -"\x00\x1f\x64\x00\x03\x45", 0x1fa4 -"\x00\x1f\x65\x00\x03\x45", 0x1fa5 -"\x00\x1f\x66\x00\x03\x45", 0x1fa6 -"\x00\x1f\x67\x00\x03\x45", 0x1fa7 -"\x00\x1f\x68\x00\x03\x45", 0x1fa8 -"\x00\x1f\x69\x00\x03\x45", 0x1fa9 -"\x00\x1f\x6a\x00\x03\x45", 0x1faa -"\x00\x1f\x6b\x00\x03\x45", 0x1fab -"\x00\x1f\x6c\x00\x03\x45", 0x1fac -"\x00\x1f\x6d\x00\x03\x45", 0x1fad -"\x00\x1f\x6e\x00\x03\x45", 0x1fae -"\x00\x1f\x6f\x00\x03\x45", 0x1faf -"\x00\x03\xb1\x00\x03\x06", 0x1fb0 -"\x00\x03\xb1\x00\x03\x04", 0x1fb1 -"\x00\x1f\x70\x00\x03\x45", 0x1fb2 -"\x00\x03\xb1\x00\x03\x45", 0x1fb3 -"\x00\x03\xac\x00\x03\x45", 0x1fb4 -"\x00\x03\xb1\x00\x03\x42", 0x1fb6 -"\x00\x1f\xb6\x00\x03\x45", 0x1fb7 -"\x00\x03\x91\x00\x03\x06", 0x1fb8 -"\x00\x03\x91\x00\x03\x04", 0x1fb9 -"\x00\x03\x91\x00\x03\x00", 0x1fba -"\x00\x03\x91\x00\x03\x45", 0x1fbc -"\x00\x00\xa8\x00\x03\x42", 0x1fc1 -"\x00\x1f\x74\x00\x03\x45", 0x1fc2 -"\x00\x03\xb7\x00\x03\x45", 0x1fc3 -"\x00\x03\xae\x00\x03\x45", 0x1fc4 -"\x00\x03\xb7\x00\x03\x42", 0x1fc6 -"\x00\x1f\xc6\x00\x03\x45", 0x1fc7 -"\x00\x03\x95\x00\x03\x00", 0x1fc8 -"\x00\x03\x97\x00\x03\x00", 0x1fca -"\x00\x03\x97\x00\x03\x45", 0x1fcc -"\x00\x1f\xbf\x00\x03\x00", 0x1fcd -"\x00\x1f\xbf\x00\x03\x01", 0x1fce -"\x00\x1f\xbf\x00\x03\x42", 0x1fcf -"\x00\x03\xb9\x00\x03\x06", 0x1fd0 -"\x00\x03\xb9\x00\x03\x04", 0x1fd1 -"\x00\x03\xca\x00\x03\x00", 0x1fd2 -"\x00\x03\xb9\x00\x03\x42", 0x1fd6 -"\x00\x03\xca\x00\x03\x42", 0x1fd7 -"\x00\x03\x99\x00\x03\x06", 0x1fd8 -"\x00\x03\x99\x00\x03\x04", 0x1fd9 -"\x00\x03\x99\x00\x03\x00", 0x1fda -"\x00\x1f\xfe\x00\x03\x00", 0x1fdd -"\x00\x1f\xfe\x00\x03\x01", 0x1fde -"\x00\x1f\xfe\x00\x03\x42", 0x1fdf -"\x00\x03\xc5\x00\x03\x06", 0x1fe0 -"\x00\x03\xc5\x00\x03\x04", 0x1fe1 -"\x00\x03\xcb\x00\x03\x00", 0x1fe2 -"\x00\x03\xc1\x00\x03\x13", 0x1fe4 -"\x00\x03\xc1\x00\x03\x14", 0x1fe5 -"\x00\x03\xc5\x00\x03\x42", 0x1fe6 -"\x00\x03\xcb\x00\x03\x42", 0x1fe7 -"\x00\x03\xa5\x00\x03\x06", 0x1fe8 -"\x00\x03\xa5\x00\x03\x04", 0x1fe9 -"\x00\x03\xa5\x00\x03\x00", 0x1fea -"\x00\x03\xa1\x00\x03\x14", 0x1fec -"\x00\x00\xa8\x00\x03\x00", 0x1fed -"\x00\x1f\x7c\x00\x03\x45", 0x1ff2 -"\x00\x03\xc9\x00\x03\x45", 0x1ff3 -"\x00\x03\xce\x00\x03\x45", 0x1ff4 -"\x00\x03\xc9\x00\x03\x42", 0x1ff6 -"\x00\x1f\xf6\x00\x03\x45", 0x1ff7 -"\x00\x03\x9f\x00\x03\x00", 0x1ff8 -"\x00\x03\xa9\x00\x03\x00", 0x1ffa -"\x00\x03\xa9\x00\x03\x45", 0x1ffc -"\x00\x21\x90\x00\x03\x38", 0x219a -"\x00\x21\x92\x00\x03\x38", 0x219b -"\x00\x21\x94\x00\x03\x38", 0x21ae -"\x00\x21\xd0\x00\x03\x38", 0x21cd -"\x00\x21\xd4\x00\x03\x38", 0x21ce -"\x00\x21\xd2\x00\x03\x38", 0x21cf -"\x00\x22\x03\x00\x03\x38", 0x2204 -"\x00\x22\x08\x00\x03\x38", 0x2209 -"\x00\x22\x0b\x00\x03\x38", 0x220c -"\x00\x22\x23\x00\x03\x38", 0x2224 -"\x00\x22\x25\x00\x03\x38", 0x2226 -"\x00\x22\x3c\x00\x03\x38", 0x2241 -"\x00\x22\x43\x00\x03\x38", 0x2244 -"\x00\x22\x45\x00\x03\x38", 0x2247 -"\x00\x22\x48\x00\x03\x38", 0x2249 -"\x00\x00\x3d\x00\x03\x38", 0x2260 -"\x00\x22\x61\x00\x03\x38", 0x2262 -"\x00\x22\x4d\x00\x03\x38", 0x226d -"\x00\x00\x3c\x00\x03\x38", 0x226e -"\x00\x00\x3e\x00\x03\x38", 0x226f -"\x00\x22\x64\x00\x03\x38", 0x2270 -"\x00\x22\x65\x00\x03\x38", 0x2271 -"\x00\x22\x72\x00\x03\x38", 0x2274 -"\x00\x22\x73\x00\x03\x38", 0x2275 -"\x00\x22\x76\x00\x03\x38", 0x2278 -"\x00\x22\x77\x00\x03\x38", 0x2279 -"\x00\x22\x7a\x00\x03\x38", 0x2280 -"\x00\x22\x7b\x00\x03\x38", 0x2281 -"\x00\x22\x82\x00\x03\x38", 0x2284 -"\x00\x22\x83\x00\x03\x38", 0x2285 -"\x00\x22\x86\x00\x03\x38", 0x2288 -"\x00\x22\x87\x00\x03\x38", 0x2289 -"\x00\x22\xa2\x00\x03\x38", 0x22ac -"\x00\x22\xa8\x00\x03\x38", 0x22ad -"\x00\x22\xa9\x00\x03\x38", 0x22ae -"\x00\x22\xab\x00\x03\x38", 0x22af -"\x00\x22\x7c\x00\x03\x38", 0x22e0 -"\x00\x22\x7d\x00\x03\x38", 0x22e1 -"\x00\x22\x91\x00\x03\x38", 0x22e2 -"\x00\x22\x92\x00\x03\x38", 0x22e3 -"\x00\x22\xb2\x00\x03\x38", 0x22ea -"\x00\x22\xb3\x00\x03\x38", 0x22eb -"\x00\x22\xb4\x00\x03\x38", 0x22ec -"\x00\x22\xb5\x00\x03\x38", 0x22ed -"\x00\x30\x4b\x00\x30\x99", 0x304c -"\x00\x30\x4d\x00\x30\x99", 0x304e -"\x00\x30\x4f\x00\x30\x99", 0x3050 -"\x00\x30\x51\x00\x30\x99", 0x3052 -"\x00\x30\x53\x00\x30\x99", 0x3054 -"\x00\x30\x55\x00\x30\x99", 0x3056 -"\x00\x30\x57\x00\x30\x99", 0x3058 -"\x00\x30\x59\x00\x30\x99", 0x305a -"\x00\x30\x5b\x00\x30\x99", 0x305c -"\x00\x30\x5d\x00\x30\x99", 0x305e -"\x00\x30\x5f\x00\x30\x99", 0x3060 -"\x00\x30\x61\x00\x30\x99", 0x3062 -"\x00\x30\x64\x00\x30\x99", 0x3065 -"\x00\x30\x66\x00\x30\x99", 0x3067 -"\x00\x30\x68\x00\x30\x99", 0x3069 -"\x00\x30\x6f\x00\x30\x99", 0x3070 -"\x00\x30\x6f\x00\x30\x9a", 0x3071 -"\x00\x30\x72\x00\x30\x99", 0x3073 -"\x00\x30\x72\x00\x30\x9a", 0x3074 -"\x00\x30\x75\x00\x30\x99", 0x3076 -"\x00\x30\x75\x00\x30\x9a", 0x3077 -"\x00\x30\x78\x00\x30\x99", 0x3079 -"\x00\x30\x78\x00\x30\x9a", 0x307a -"\x00\x30\x7b\x00\x30\x99", 0x307c -"\x00\x30\x7b\x00\x30\x9a", 0x307d -"\x00\x30\x46\x00\x30\x99", 0x3094 -"\x00\x30\x9d\x00\x30\x99", 0x309e -"\x00\x30\xab\x00\x30\x99", 0x30ac -"\x00\x30\xad\x00\x30\x99", 0x30ae -"\x00\x30\xaf\x00\x30\x99", 0x30b0 -"\x00\x30\xb1\x00\x30\x99", 0x30b2 -"\x00\x30\xb3\x00\x30\x99", 0x30b4 -"\x00\x30\xb5\x00\x30\x99", 0x30b6 -"\x00\x30\xb7\x00\x30\x99", 0x30b8 -"\x00\x30\xb9\x00\x30\x99", 0x30ba -"\x00\x30\xbb\x00\x30\x99", 0x30bc -"\x00\x30\xbd\x00\x30\x99", 0x30be -"\x00\x30\xbf\x00\x30\x99", 0x30c0 -"\x00\x30\xc1\x00\x30\x99", 0x30c2 -"\x00\x30\xc4\x00\x30\x99", 0x30c5 -"\x00\x30\xc6\x00\x30\x99", 0x30c7 -"\x00\x30\xc8\x00\x30\x99", 0x30c9 -"\x00\x30\xcf\x00\x30\x99", 0x30d0 -"\x00\x30\xcf\x00\x30\x9a", 0x30d1 -"\x00\x30\xd2\x00\x30\x99", 0x30d3 -"\x00\x30\xd2\x00\x30\x9a", 0x30d4 -"\x00\x30\xd5\x00\x30\x99", 0x30d6 -"\x00\x30\xd5\x00\x30\x9a", 0x30d7 -"\x00\x30\xd8\x00\x30\x99", 0x30d9 -"\x00\x30\xd8\x00\x30\x9a", 0x30da -"\x00\x30\xdb\x00\x30\x99", 0x30dc -"\x00\x30\xdb\x00\x30\x9a", 0x30dd -"\x00\x30\xa6\x00\x30\x99", 0x30f4 -"\x00\x30\xef\x00\x30\x99", 0x30f7 -"\x00\x30\xf0\x00\x30\x99", 0x30f8 -"\x00\x30\xf1\x00\x30\x99", 0x30f9 -"\x00\x30\xf2\x00\x30\x99", 0x30fa -"\x00\x30\xfd\x00\x30\x99", 0x30fe -"\x01\x05\xd2\x00\x03\x07", 0x105c9 -"\x01\x05\xda\x00\x03\x07", 0x105e4 -"\x01\x10\x99\x01\x10\xba", 0x1109a -"\x01\x10\x9b\x01\x10\xba", 0x1109c -"\x01\x10\xa5\x01\x10\xba", 0x110ab -"\x01\x11\x31\x01\x11\x27", 0x1112e -"\x01\x11\x32\x01\x11\x27", 0x1112f -"\x01\x13\x47\x01\x13\x3e", 0x1134b -"\x01\x13\x47\x01\x13\x57", 0x1134c -"\x01\x13\x82\x01\x13\xc9", 0x11383 -"\x01\x13\x84\x01\x13\xbb", 0x11385 -"\x01\x13\x8b\x01\x13\xc2", 0x1138e -"\x01\x13\x90\x01\x13\xc9", 0x11391 -"\x01\x13\xc2\x01\x13\xc2", 0x113c5 -"\x01\x13\xc2\x01\x13\xb8", 0x113c7 -"\x01\x13\xc2\x01\x13\xc9", 0x113c8 -"\x01\x14\xb9\x01\x14\xba", 0x114bb -"\x01\x14\xb9\x01\x14\xb0", 0x114bc -"\x01\x14\xb9\x01\x14\xbd", 0x114be -"\x01\x15\xb8\x01\x15\xaf", 0x115ba -"\x01\x15\xb9\x01\x15\xaf", 0x115bb -"\x01\x19\x35\x01\x19\x30", 0x11938 -"\x01\x61\x1e\x01\x61\x1e", 0x16121 -"\x01\x61\x1e\x01\x61\x29", 0x16122 -"\x01\x61\x1e\x01\x61\x1f", 0x16123 -"\x01\x61\x29\x01\x61\x1f", 0x16124 -"\x01\x61\x1e\x01\x61\x20", 0x16125 -"\x01\x61\x21\x01\x61\x1f", 0x16126 -"\x01\x61\x22\x01\x61\x1f", 0x16127 -"\x01\x61\x21\x01\x61\x20", 0x16128 -"\x01\x6d\x67\x01\x6d\x67", 0x16d68 -"\x01\x6d\x63\x01\x6d\x67", 0x16d69 -"\x01\x6d\x69\x01\x6d\x67", 0x16d6a diff --git a/include/libgnulib/uninorm/decompose-internal.h b/include/libgnulib/uninorm/decompose-internal.h deleted file mode 100755 index c68671e..0000000 --- a/include/libgnulib/uninorm/decompose-internal.h +++ /dev/null @@ -1,46 +0,0 @@ -/* Decomposition of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "unitypes.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Variant of uc_decomposition that does not produce the 'tag'. */ -extern int - uc_compat_decomposition (ucs4_t uc, ucs4_t *decomposition); - -/* A Unicode character together with its canonical combining class. */ -struct ucs4_with_ccc -{ - ucs4_t code; - int ccc; /* range 0..255 */ -}; - -/* Stable-sort an array of 'struct ucs4_with_ccc'. */ -extern void - gl_uninorm_decompose_merge_sort_inplace (struct ucs4_with_ccc *src, size_t n, - struct ucs4_with_ccc *tmp); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/uninorm/decomposition-table.h b/include/libgnulib/uninorm/decomposition-table.h deleted file mode 100755 index 631d874..0000000 --- a/include/libgnulib/uninorm/decomposition-table.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Decomposition of Unicode characters. - Copyright (C) 2001-2003, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - - -#include "unitypes.h" - -/* The decomposition table is made of two parts: - - A table containing the actual arrays of decomposed equivalents. - (This table is separate because the maximum length of a decomposition - is 18, much larger than the average length 1.497 of a decomposition). - - A 3-level table of indices into this array. */ - -#include "decomposition-table1.h" - -static inline unsigned short -decomp_index (ucs4_t uc) -{ - unsigned int index1 = uc >> decomp_header_0; - if (index1 < decomp_header_1) - { - int lookup1 = gl_uninorm_decomp_index_table.level1[index1]; - if (lookup1 >= 0) - { - unsigned int index2 = (uc >> decomp_header_2) & decomp_header_3; - int lookup2 = gl_uninorm_decomp_index_table.level2[lookup1 + index2]; - if (lookup2 >= 0) - { - unsigned int index3 = uc & decomp_header_4; - return gl_uninorm_decomp_index_table.level3[lookup2 + index3]; - } - } - } - return (unsigned short)(-1); -} diff --git a/include/libgnulib/uninorm/decomposition-table1.h b/include/libgnulib/uninorm/decomposition-table1.h deleted file mode 100755 index c6ee5ab..0000000 --- a/include/libgnulib/uninorm/decomposition-table1.h +++ /dev/null @@ -1,35 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Decomposition of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -extern const unsigned char gl_uninorm_decomp_chars_table[]; - -#define decomp_header_0 10 -#define decomp_header_1 191 -#define decomp_header_2 5 -#define decomp_header_3 31 -#define decomp_header_4 31 - -typedef struct - { - int level1[191]; - int level2[30 << 5]; - unsigned short level3[293 << 5]; - } -decomp_index_table_t; -extern const decomp_index_table_t gl_uninorm_decomp_index_table; diff --git a/include/libgnulib/uninorm/decomposition-table2.h b/include/libgnulib/uninorm/decomposition-table2.h deleted file mode 100755 index 3a8e540..0000000 --- a/include/libgnulib/uninorm/decomposition-table2.h +++ /dev/null @@ -1,3533 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Decomposition of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -const unsigned char gl_uninorm_decomp_chars_table[] = -{ - 0x08, 0x00, 0x20, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x08, 0x20, 0x00, 0x61, - 0xC0, 0x00, 0x20, 0x00, 0x03, 0x04, 0x20, 0x00, 0x32, 0x20, 0x00, 0x33, - 0xC0, 0x00, 0x20, 0x00, 0x03, 0x01, 0x40, 0x03, 0xBC, 0xC0, 0x00, 0x20, - 0x00, 0x03, 0x27, 0x20, 0x00, 0x31, 0x20, 0x00, 0x6F, 0xBC, 0x00, 0x31, - 0x80, 0x20, 0x44, 0x00, 0x00, 0x34, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, - 0x00, 0x00, 0x32, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x34, - 0x80, 0x00, 0x41, 0x00, 0x03, 0x00, 0x80, 0x00, 0x41, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x41, 0x00, 0x03, 0x02, 0x80, 0x00, 0x41, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x41, 0x00, 0x03, 0x08, 0x80, 0x00, 0x41, 0x00, 0x03, 0x0A, - 0x80, 0x00, 0x43, 0x00, 0x03, 0x27, 0x80, 0x00, 0x45, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x45, 0x00, 0x03, 0x01, 0x80, 0x00, 0x45, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x45, 0x00, 0x03, 0x08, 0x80, 0x00, 0x49, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x49, 0x00, 0x03, 0x01, 0x80, 0x00, 0x49, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x49, 0x00, 0x03, 0x08, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x4F, 0x00, 0x03, 0x00, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x4F, 0x00, 0x03, 0x02, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x4F, 0x00, 0x03, 0x08, 0x80, 0x00, 0x55, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x55, 0x00, 0x03, 0x01, 0x80, 0x00, 0x55, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x55, 0x00, 0x03, 0x08, 0x80, 0x00, 0x59, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x00, 0x80, 0x00, 0x61, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x02, 0x80, 0x00, 0x61, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x08, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0A, - 0x80, 0x00, 0x63, 0x00, 0x03, 0x27, 0x80, 0x00, 0x65, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x01, 0x80, 0x00, 0x65, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x08, 0x80, 0x00, 0x69, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x01, 0x80, 0x00, 0x69, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x08, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x00, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x02, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x08, 0x80, 0x00, 0x75, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x01, 0x80, 0x00, 0x75, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x08, 0x80, 0x00, 0x79, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x08, 0x80, 0x00, 0x41, 0x00, 0x03, 0x04, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x04, 0x80, 0x00, 0x41, 0x00, 0x03, 0x06, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x06, 0x80, 0x00, 0x41, 0x00, 0x03, 0x28, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x28, 0x80, 0x00, 0x43, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x63, 0x00, 0x03, 0x01, 0x80, 0x00, 0x43, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x63, 0x00, 0x03, 0x02, 0x80, 0x00, 0x43, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x63, 0x00, 0x03, 0x07, 0x80, 0x00, 0x43, 0x00, 0x03, 0x0C, - 0x80, 0x00, 0x63, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x44, 0x00, 0x03, 0x0C, - 0x80, 0x00, 0x64, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x45, 0x00, 0x03, 0x04, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x04, 0x80, 0x00, 0x45, 0x00, 0x03, 0x06, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x06, 0x80, 0x00, 0x45, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x07, 0x80, 0x00, 0x45, 0x00, 0x03, 0x28, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x28, 0x80, 0x00, 0x45, 0x00, 0x03, 0x0C, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x47, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x67, 0x00, 0x03, 0x02, 0x80, 0x00, 0x47, 0x00, 0x03, 0x06, - 0x80, 0x00, 0x67, 0x00, 0x03, 0x06, 0x80, 0x00, 0x47, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x67, 0x00, 0x03, 0x07, 0x80, 0x00, 0x47, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x67, 0x00, 0x03, 0x27, 0x80, 0x00, 0x48, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x68, 0x00, 0x03, 0x02, 0x80, 0x00, 0x49, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x03, 0x80, 0x00, 0x49, 0x00, 0x03, 0x04, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x04, 0x80, 0x00, 0x49, 0x00, 0x03, 0x06, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x06, 0x80, 0x00, 0x49, 0x00, 0x03, 0x28, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x28, 0x80, 0x00, 0x49, 0x00, 0x03, 0x07, - 0xC0, 0x00, 0x49, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x6A, - 0x80, 0x00, 0x4A, 0x00, 0x03, 0x02, 0x80, 0x00, 0x6A, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x4B, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6B, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x4C, 0x00, 0x03, 0x01, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x4C, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x4C, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6C, 0x00, 0x03, 0x0C, - 0xC0, 0x00, 0x4C, 0x00, 0x00, 0xB7, 0xC0, 0x00, 0x6C, 0x00, 0x00, 0xB7, - 0x80, 0x00, 0x4E, 0x00, 0x03, 0x01, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x4E, 0x00, 0x03, 0x27, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x4E, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x0C, - 0xC0, 0x02, 0xBC, 0x00, 0x00, 0x6E, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x04, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x06, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x06, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x0B, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0B, 0x80, 0x00, 0x52, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x72, 0x00, 0x03, 0x01, 0x80, 0x00, 0x52, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x72, 0x00, 0x03, 0x27, 0x80, 0x00, 0x52, 0x00, 0x03, 0x0C, - 0x80, 0x00, 0x72, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x53, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x73, 0x00, 0x03, 0x01, 0x80, 0x00, 0x53, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x73, 0x00, 0x03, 0x02, 0x80, 0x00, 0x53, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x73, 0x00, 0x03, 0x27, 0x80, 0x00, 0x53, 0x00, 0x03, 0x0C, - 0x80, 0x00, 0x73, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x54, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x27, 0x80, 0x00, 0x54, 0x00, 0x03, 0x0C, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x55, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x03, 0x80, 0x00, 0x55, 0x00, 0x03, 0x04, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x04, 0x80, 0x00, 0x55, 0x00, 0x03, 0x06, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x06, 0x80, 0x00, 0x55, 0x00, 0x03, 0x0A, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x0A, 0x80, 0x00, 0x55, 0x00, 0x03, 0x0B, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x0B, 0x80, 0x00, 0x55, 0x00, 0x03, 0x28, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x28, 0x80, 0x00, 0x57, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x77, 0x00, 0x03, 0x02, 0x80, 0x00, 0x59, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x02, 0x80, 0x00, 0x59, 0x00, 0x03, 0x08, - 0x80, 0x00, 0x5A, 0x00, 0x03, 0x01, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x5A, 0x00, 0x03, 0x07, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x5A, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x7A, 0x00, 0x03, 0x0C, - 0x40, 0x00, 0x73, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x1B, 0x80, 0x00, 0x6F, - 0x00, 0x03, 0x1B, 0x80, 0x00, 0x55, 0x00, 0x03, 0x1B, 0x80, 0x00, 0x75, - 0x00, 0x03, 0x1B, 0xC0, 0x00, 0x44, 0x00, 0x01, 0x7D, 0xC0, 0x00, 0x44, - 0x00, 0x01, 0x7E, 0xC0, 0x00, 0x64, 0x00, 0x01, 0x7E, 0xC0, 0x00, 0x4C, - 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x4C, 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x6C, - 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x4E, 0x00, 0x00, 0x4A, 0xC0, 0x00, 0x4E, - 0x00, 0x00, 0x6A, 0xC0, 0x00, 0x6E, 0x00, 0x00, 0x6A, 0x80, 0x00, 0x41, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x49, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x69, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4F, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x55, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x75, 0x00, 0x03, 0x0C, 0x80, 0x00, 0xDC, - 0x00, 0x03, 0x04, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x04, 0x80, 0x00, 0xDC, - 0x00, 0x03, 0x01, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x01, 0x80, 0x00, 0xDC, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x0C, 0x80, 0x00, 0xDC, - 0x00, 0x03, 0x00, 0x80, 0x00, 0xFC, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC4, - 0x00, 0x03, 0x04, 0x80, 0x00, 0xE4, 0x00, 0x03, 0x04, 0x80, 0x02, 0x26, - 0x00, 0x03, 0x04, 0x80, 0x02, 0x27, 0x00, 0x03, 0x04, 0x80, 0x00, 0xC6, - 0x00, 0x03, 0x04, 0x80, 0x00, 0xE6, 0x00, 0x03, 0x04, 0x80, 0x00, 0x47, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x67, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4B, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6B, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x4F, - 0x00, 0x03, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x28, 0x80, 0x01, 0xEA, - 0x00, 0x03, 0x04, 0x80, 0x01, 0xEB, 0x00, 0x03, 0x04, 0x80, 0x01, 0xB7, - 0x00, 0x03, 0x0C, 0x80, 0x02, 0x92, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x6A, - 0x00, 0x03, 0x0C, 0xC0, 0x00, 0x44, 0x00, 0x00, 0x5A, 0xC0, 0x00, 0x44, - 0x00, 0x00, 0x7A, 0xC0, 0x00, 0x64, 0x00, 0x00, 0x7A, 0x80, 0x00, 0x47, - 0x00, 0x03, 0x01, 0x80, 0x00, 0x67, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4E, - 0x00, 0x03, 0x00, 0x80, 0x00, 0x6E, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC5, - 0x00, 0x03, 0x01, 0x80, 0x00, 0xE5, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC6, - 0x00, 0x03, 0x01, 0x80, 0x00, 0xE6, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD8, - 0x00, 0x03, 0x01, 0x80, 0x00, 0xF8, 0x00, 0x03, 0x01, 0x80, 0x00, 0x41, - 0x00, 0x03, 0x0F, 0x80, 0x00, 0x61, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x41, - 0x00, 0x03, 0x11, 0x80, 0x00, 0x61, 0x00, 0x03, 0x11, 0x80, 0x00, 0x45, - 0x00, 0x03, 0x0F, 0x80, 0x00, 0x65, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x45, - 0x00, 0x03, 0x11, 0x80, 0x00, 0x65, 0x00, 0x03, 0x11, 0x80, 0x00, 0x49, - 0x00, 0x03, 0x0F, 0x80, 0x00, 0x69, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x49, - 0x00, 0x03, 0x11, 0x80, 0x00, 0x69, 0x00, 0x03, 0x11, 0x80, 0x00, 0x4F, - 0x00, 0x03, 0x0F, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x4F, - 0x00, 0x03, 0x11, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x11, 0x80, 0x00, 0x52, - 0x00, 0x03, 0x0F, 0x80, 0x00, 0x72, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x52, - 0x00, 0x03, 0x11, 0x80, 0x00, 0x72, 0x00, 0x03, 0x11, 0x80, 0x00, 0x55, - 0x00, 0x03, 0x0F, 0x80, 0x00, 0x75, 0x00, 0x03, 0x0F, 0x80, 0x00, 0x55, - 0x00, 0x03, 0x11, 0x80, 0x00, 0x75, 0x00, 0x03, 0x11, 0x80, 0x00, 0x53, - 0x00, 0x03, 0x26, 0x80, 0x00, 0x73, 0x00, 0x03, 0x26, 0x80, 0x00, 0x54, - 0x00, 0x03, 0x26, 0x80, 0x00, 0x74, 0x00, 0x03, 0x26, 0x80, 0x00, 0x48, - 0x00, 0x03, 0x0C, 0x80, 0x00, 0x68, 0x00, 0x03, 0x0C, 0x80, 0x00, 0x41, - 0x00, 0x03, 0x07, 0x80, 0x00, 0x61, 0x00, 0x03, 0x07, 0x80, 0x00, 0x45, - 0x00, 0x03, 0x27, 0x80, 0x00, 0x65, 0x00, 0x03, 0x27, 0x80, 0x00, 0xD6, - 0x00, 0x03, 0x04, 0x80, 0x00, 0xF6, 0x00, 0x03, 0x04, 0x80, 0x00, 0xD5, - 0x00, 0x03, 0x04, 0x80, 0x00, 0xF5, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4F, - 0x00, 0x03, 0x07, 0x80, 0x00, 0x6F, 0x00, 0x03, 0x07, 0x80, 0x02, 0x2E, - 0x00, 0x03, 0x04, 0x80, 0x02, 0x2F, 0x00, 0x03, 0x04, 0x80, 0x00, 0x59, - 0x00, 0x03, 0x04, 0x80, 0x00, 0x79, 0x00, 0x03, 0x04, 0x20, 0x00, 0x68, - 0x20, 0x02, 0x66, 0x20, 0x00, 0x6A, 0x20, 0x00, 0x72, 0x20, 0x02, 0x79, - 0x20, 0x02, 0x7B, 0x20, 0x02, 0x81, 0x20, 0x00, 0x77, 0x20, 0x00, 0x79, - 0xC0, 0x00, 0x20, 0x00, 0x03, 0x06, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x07, - 0xC0, 0x00, 0x20, 0x00, 0x03, 0x0A, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x28, - 0xC0, 0x00, 0x20, 0x00, 0x03, 0x03, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x0B, - 0x20, 0x02, 0x63, 0x20, 0x00, 0x6C, 0x20, 0x00, 0x73, 0x20, 0x00, 0x78, - 0x20, 0x02, 0x95, 0x00, 0x03, 0x00, 0x00, 0x03, 0x01, 0x00, 0x03, 0x13, - 0x80, 0x03, 0x08, 0x00, 0x03, 0x01, 0x00, 0x02, 0xB9, 0xC0, 0x00, 0x20, - 0x00, 0x03, 0x45, 0x00, 0x00, 0x3B, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xA8, 0x00, 0x03, 0x01, 0x80, 0x03, 0x91, 0x00, 0x03, 0x01, - 0x00, 0x00, 0xB7, 0x80, 0x03, 0x95, 0x00, 0x03, 0x01, 0x80, 0x03, 0x97, - 0x00, 0x03, 0x01, 0x80, 0x03, 0x99, 0x00, 0x03, 0x01, 0x80, 0x03, 0x9F, - 0x00, 0x03, 0x01, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x01, 0x80, 0x03, 0xA9, - 0x00, 0x03, 0x01, 0x80, 0x03, 0xCA, 0x00, 0x03, 0x01, 0x80, 0x03, 0x99, - 0x00, 0x03, 0x08, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x08, 0x80, 0x03, 0xB1, - 0x00, 0x03, 0x01, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x01, 0x80, 0x03, 0xB7, - 0x00, 0x03, 0x01, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x01, 0x80, 0x03, 0xCB, - 0x00, 0x03, 0x01, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x08, 0x80, 0x03, 0xC5, - 0x00, 0x03, 0x08, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x01, 0x80, 0x03, 0xC5, - 0x00, 0x03, 0x01, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x01, 0x40, 0x03, 0xB2, - 0x40, 0x03, 0xB8, 0x40, 0x03, 0xA5, 0x80, 0x03, 0xD2, 0x00, 0x03, 0x01, - 0x80, 0x03, 0xD2, 0x00, 0x03, 0x08, 0x40, 0x03, 0xC6, 0x40, 0x03, 0xC0, - 0x40, 0x03, 0xBA, 0x40, 0x03, 0xC1, 0x40, 0x03, 0xC2, 0x40, 0x03, 0x98, - 0x40, 0x03, 0xB5, 0x40, 0x03, 0xA3, 0x80, 0x04, 0x15, 0x00, 0x03, 0x00, - 0x80, 0x04, 0x15, 0x00, 0x03, 0x08, 0x80, 0x04, 0x13, 0x00, 0x03, 0x01, - 0x80, 0x04, 0x06, 0x00, 0x03, 0x08, 0x80, 0x04, 0x1A, 0x00, 0x03, 0x01, - 0x80, 0x04, 0x18, 0x00, 0x03, 0x00, 0x80, 0x04, 0x23, 0x00, 0x03, 0x06, - 0x80, 0x04, 0x18, 0x00, 0x03, 0x06, 0x80, 0x04, 0x38, 0x00, 0x03, 0x06, - 0x80, 0x04, 0x35, 0x00, 0x03, 0x00, 0x80, 0x04, 0x35, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x33, 0x00, 0x03, 0x01, 0x80, 0x04, 0x56, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x3A, 0x00, 0x03, 0x01, 0x80, 0x04, 0x38, 0x00, 0x03, 0x00, - 0x80, 0x04, 0x43, 0x00, 0x03, 0x06, 0x80, 0x04, 0x74, 0x00, 0x03, 0x0F, - 0x80, 0x04, 0x75, 0x00, 0x03, 0x0F, 0x80, 0x04, 0x16, 0x00, 0x03, 0x06, - 0x80, 0x04, 0x36, 0x00, 0x03, 0x06, 0x80, 0x04, 0x10, 0x00, 0x03, 0x06, - 0x80, 0x04, 0x30, 0x00, 0x03, 0x06, 0x80, 0x04, 0x10, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x30, 0x00, 0x03, 0x08, 0x80, 0x04, 0x15, 0x00, 0x03, 0x06, - 0x80, 0x04, 0x35, 0x00, 0x03, 0x06, 0x80, 0x04, 0xD8, 0x00, 0x03, 0x08, - 0x80, 0x04, 0xD9, 0x00, 0x03, 0x08, 0x80, 0x04, 0x16, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x36, 0x00, 0x03, 0x08, 0x80, 0x04, 0x17, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x37, 0x00, 0x03, 0x08, 0x80, 0x04, 0x18, 0x00, 0x03, 0x04, - 0x80, 0x04, 0x38, 0x00, 0x03, 0x04, 0x80, 0x04, 0x18, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x38, 0x00, 0x03, 0x08, 0x80, 0x04, 0x1E, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x3E, 0x00, 0x03, 0x08, 0x80, 0x04, 0xE8, 0x00, 0x03, 0x08, - 0x80, 0x04, 0xE9, 0x00, 0x03, 0x08, 0x80, 0x04, 0x2D, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x4D, 0x00, 0x03, 0x08, 0x80, 0x04, 0x23, 0x00, 0x03, 0x04, - 0x80, 0x04, 0x43, 0x00, 0x03, 0x04, 0x80, 0x04, 0x23, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x43, 0x00, 0x03, 0x08, 0x80, 0x04, 0x23, 0x00, 0x03, 0x0B, - 0x80, 0x04, 0x43, 0x00, 0x03, 0x0B, 0x80, 0x04, 0x27, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x47, 0x00, 0x03, 0x08, 0x80, 0x04, 0x2B, 0x00, 0x03, 0x08, - 0x80, 0x04, 0x4B, 0x00, 0x03, 0x08, 0xC0, 0x05, 0x65, 0x00, 0x05, 0x82, - 0x80, 0x06, 0x27, 0x00, 0x06, 0x53, 0x80, 0x06, 0x27, 0x00, 0x06, 0x54, - 0x80, 0x06, 0x48, 0x00, 0x06, 0x54, 0x80, 0x06, 0x27, 0x00, 0x06, 0x55, - 0x80, 0x06, 0x4A, 0x00, 0x06, 0x54, 0xC0, 0x06, 0x27, 0x00, 0x06, 0x74, - 0xC0, 0x06, 0x48, 0x00, 0x06, 0x74, 0xC0, 0x06, 0xC7, 0x00, 0x06, 0x74, - 0xC0, 0x06, 0x4A, 0x00, 0x06, 0x74, 0x80, 0x06, 0xD5, 0x00, 0x06, 0x54, - 0x80, 0x06, 0xC1, 0x00, 0x06, 0x54, 0x80, 0x06, 0xD2, 0x00, 0x06, 0x54, - 0x80, 0x09, 0x28, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x30, 0x00, 0x09, 0x3C, - 0x80, 0x09, 0x33, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x15, 0x00, 0x09, 0x3C, - 0x80, 0x09, 0x16, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x17, 0x00, 0x09, 0x3C, - 0x80, 0x09, 0x1C, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x21, 0x00, 0x09, 0x3C, - 0x80, 0x09, 0x22, 0x00, 0x09, 0x3C, 0x80, 0x09, 0x2B, 0x00, 0x09, 0x3C, - 0x80, 0x09, 0x2F, 0x00, 0x09, 0x3C, 0x80, 0x09, 0xC7, 0x00, 0x09, 0xBE, - 0x80, 0x09, 0xC7, 0x00, 0x09, 0xD7, 0x80, 0x09, 0xA1, 0x00, 0x09, 0xBC, - 0x80, 0x09, 0xA2, 0x00, 0x09, 0xBC, 0x80, 0x09, 0xAF, 0x00, 0x09, 0xBC, - 0x80, 0x0A, 0x32, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x38, 0x00, 0x0A, 0x3C, - 0x80, 0x0A, 0x16, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x17, 0x00, 0x0A, 0x3C, - 0x80, 0x0A, 0x1C, 0x00, 0x0A, 0x3C, 0x80, 0x0A, 0x2B, 0x00, 0x0A, 0x3C, - 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x56, 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x3E, - 0x80, 0x0B, 0x47, 0x00, 0x0B, 0x57, 0x80, 0x0B, 0x21, 0x00, 0x0B, 0x3C, - 0x80, 0x0B, 0x22, 0x00, 0x0B, 0x3C, 0x80, 0x0B, 0x92, 0x00, 0x0B, 0xD7, - 0x80, 0x0B, 0xC6, 0x00, 0x0B, 0xBE, 0x80, 0x0B, 0xC7, 0x00, 0x0B, 0xBE, - 0x80, 0x0B, 0xC6, 0x00, 0x0B, 0xD7, 0x80, 0x0C, 0x46, 0x00, 0x0C, 0x56, - 0x80, 0x0C, 0xBF, 0x00, 0x0C, 0xD5, 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xD5, - 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xD6, 0x80, 0x0C, 0xC6, 0x00, 0x0C, 0xC2, - 0x80, 0x0C, 0xCA, 0x00, 0x0C, 0xD5, 0x80, 0x0D, 0x46, 0x00, 0x0D, 0x3E, - 0x80, 0x0D, 0x47, 0x00, 0x0D, 0x3E, 0x80, 0x0D, 0x46, 0x00, 0x0D, 0x57, - 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xCA, 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xCF, - 0x80, 0x0D, 0xDC, 0x00, 0x0D, 0xCA, 0x80, 0x0D, 0xD9, 0x00, 0x0D, 0xDF, - 0xC0, 0x0E, 0x4D, 0x00, 0x0E, 0x32, 0xC0, 0x0E, 0xCD, 0x00, 0x0E, 0xB2, - 0xC0, 0x0E, 0xAB, 0x00, 0x0E, 0x99, 0xC0, 0x0E, 0xAB, 0x00, 0x0E, 0xA1, - 0x08, 0x0F, 0x0B, 0x80, 0x0F, 0x42, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x4C, - 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x51, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x56, - 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x5B, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x40, - 0x00, 0x0F, 0xB5, 0x80, 0x0F, 0x71, 0x00, 0x0F, 0x72, 0x80, 0x0F, 0x71, - 0x00, 0x0F, 0x74, 0x80, 0x0F, 0xB2, 0x00, 0x0F, 0x80, 0xC0, 0x0F, 0xB2, - 0x00, 0x0F, 0x81, 0x80, 0x0F, 0xB3, 0x00, 0x0F, 0x80, 0xC0, 0x0F, 0xB3, - 0x00, 0x0F, 0x81, 0x80, 0x0F, 0x71, 0x00, 0x0F, 0x80, 0x80, 0x0F, 0x92, - 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x9C, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xA1, - 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xA6, 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0xAB, - 0x00, 0x0F, 0xB7, 0x80, 0x0F, 0x90, 0x00, 0x0F, 0xB5, 0x80, 0x10, 0x25, - 0x00, 0x10, 0x2E, 0x20, 0x10, 0xDC, 0x80, 0x1B, 0x05, 0x00, 0x1B, 0x35, - 0x80, 0x1B, 0x07, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x09, 0x00, 0x1B, 0x35, - 0x80, 0x1B, 0x0B, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x0D, 0x00, 0x1B, 0x35, - 0x80, 0x1B, 0x11, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x3A, 0x00, 0x1B, 0x35, - 0x80, 0x1B, 0x3C, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x3E, 0x00, 0x1B, 0x35, - 0x80, 0x1B, 0x3F, 0x00, 0x1B, 0x35, 0x80, 0x1B, 0x42, 0x00, 0x1B, 0x35, - 0x20, 0x00, 0x41, 0x20, 0x00, 0xC6, 0x20, 0x00, 0x42, 0x20, 0x00, 0x44, - 0x20, 0x00, 0x45, 0x20, 0x01, 0x8E, 0x20, 0x00, 0x47, 0x20, 0x00, 0x48, - 0x20, 0x00, 0x49, 0x20, 0x00, 0x4A, 0x20, 0x00, 0x4B, 0x20, 0x00, 0x4C, - 0x20, 0x00, 0x4D, 0x20, 0x00, 0x4E, 0x20, 0x00, 0x4F, 0x20, 0x02, 0x22, - 0x20, 0x00, 0x50, 0x20, 0x00, 0x52, 0x20, 0x00, 0x54, 0x20, 0x00, 0x55, - 0x20, 0x00, 0x57, 0x20, 0x00, 0x61, 0x20, 0x02, 0x50, 0x20, 0x02, 0x51, - 0x20, 0x1D, 0x02, 0x20, 0x00, 0x62, 0x20, 0x00, 0x64, 0x20, 0x00, 0x65, - 0x20, 0x02, 0x59, 0x20, 0x02, 0x5B, 0x20, 0x02, 0x5C, 0x20, 0x00, 0x67, - 0x20, 0x00, 0x6B, 0x20, 0x00, 0x6D, 0x20, 0x01, 0x4B, 0x20, 0x00, 0x6F, - 0x20, 0x02, 0x54, 0x20, 0x1D, 0x16, 0x20, 0x1D, 0x17, 0x20, 0x00, 0x70, - 0x20, 0x00, 0x74, 0x20, 0x00, 0x75, 0x20, 0x1D, 0x1D, 0x20, 0x02, 0x6F, - 0x20, 0x00, 0x76, 0x20, 0x1D, 0x25, 0x20, 0x03, 0xB2, 0x20, 0x03, 0xB3, - 0x20, 0x03, 0xB4, 0x20, 0x03, 0xC6, 0x20, 0x03, 0xC7, 0x24, 0x00, 0x69, - 0x24, 0x00, 0x72, 0x24, 0x00, 0x75, 0x24, 0x00, 0x76, 0x24, 0x03, 0xB2, - 0x24, 0x03, 0xB3, 0x24, 0x03, 0xC1, 0x24, 0x03, 0xC6, 0x24, 0x03, 0xC7, - 0x20, 0x04, 0x3D, 0x20, 0x02, 0x52, 0x20, 0x00, 0x63, 0x20, 0x02, 0x55, - 0x20, 0x00, 0xF0, 0x20, 0x02, 0x5C, 0x20, 0x00, 0x66, 0x20, 0x02, 0x5F, - 0x20, 0x02, 0x61, 0x20, 0x02, 0x65, 0x20, 0x02, 0x68, 0x20, 0x02, 0x69, - 0x20, 0x02, 0x6A, 0x20, 0x1D, 0x7B, 0x20, 0x02, 0x9D, 0x20, 0x02, 0x6D, - 0x20, 0x1D, 0x85, 0x20, 0x02, 0x9F, 0x20, 0x02, 0x71, 0x20, 0x02, 0x70, - 0x20, 0x02, 0x72, 0x20, 0x02, 0x73, 0x20, 0x02, 0x74, 0x20, 0x02, 0x75, - 0x20, 0x02, 0x78, 0x20, 0x02, 0x82, 0x20, 0x02, 0x83, 0x20, 0x01, 0xAB, - 0x20, 0x02, 0x89, 0x20, 0x02, 0x8A, 0x20, 0x1D, 0x1C, 0x20, 0x02, 0x8B, - 0x20, 0x02, 0x8C, 0x20, 0x00, 0x7A, 0x20, 0x02, 0x90, 0x20, 0x02, 0x91, - 0x20, 0x02, 0x92, 0x20, 0x03, 0xB8, 0x80, 0x00, 0x41, 0x00, 0x03, 0x25, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x25, 0x80, 0x00, 0x42, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x62, 0x00, 0x03, 0x07, 0x80, 0x00, 0x42, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x62, 0x00, 0x03, 0x23, 0x80, 0x00, 0x42, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x62, 0x00, 0x03, 0x31, 0x80, 0x00, 0xC7, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xE7, 0x00, 0x03, 0x01, 0x80, 0x00, 0x44, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x64, 0x00, 0x03, 0x07, 0x80, 0x00, 0x44, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x64, 0x00, 0x03, 0x23, 0x80, 0x00, 0x44, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x64, 0x00, 0x03, 0x31, 0x80, 0x00, 0x44, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x64, 0x00, 0x03, 0x27, 0x80, 0x00, 0x44, 0x00, 0x03, 0x2D, - 0x80, 0x00, 0x64, 0x00, 0x03, 0x2D, 0x80, 0x01, 0x12, 0x00, 0x03, 0x00, - 0x80, 0x01, 0x13, 0x00, 0x03, 0x00, 0x80, 0x01, 0x12, 0x00, 0x03, 0x01, - 0x80, 0x01, 0x13, 0x00, 0x03, 0x01, 0x80, 0x00, 0x45, 0x00, 0x03, 0x2D, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x45, 0x00, 0x03, 0x30, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x30, 0x80, 0x02, 0x28, 0x00, 0x03, 0x06, - 0x80, 0x02, 0x29, 0x00, 0x03, 0x06, 0x80, 0x00, 0x46, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x66, 0x00, 0x03, 0x07, 0x80, 0x00, 0x47, 0x00, 0x03, 0x04, - 0x80, 0x00, 0x67, 0x00, 0x03, 0x04, 0x80, 0x00, 0x48, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x68, 0x00, 0x03, 0x07, 0x80, 0x00, 0x48, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x68, 0x00, 0x03, 0x23, 0x80, 0x00, 0x48, 0x00, 0x03, 0x08, - 0x80, 0x00, 0x68, 0x00, 0x03, 0x08, 0x80, 0x00, 0x48, 0x00, 0x03, 0x27, - 0x80, 0x00, 0x68, 0x00, 0x03, 0x27, 0x80, 0x00, 0x48, 0x00, 0x03, 0x2E, - 0x80, 0x00, 0x68, 0x00, 0x03, 0x2E, 0x80, 0x00, 0x49, 0x00, 0x03, 0x30, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x30, 0x80, 0x00, 0xCF, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xEF, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x6B, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x6B, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4B, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x6B, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x6C, 0x00, 0x03, 0x23, 0x80, 0x1E, 0x36, 0x00, 0x03, 0x04, - 0x80, 0x1E, 0x37, 0x00, 0x03, 0x04, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x6C, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4C, 0x00, 0x03, 0x2D, - 0x80, 0x00, 0x6C, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x6D, 0x00, 0x03, 0x01, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x6D, 0x00, 0x03, 0x07, 0x80, 0x00, 0x4D, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x6D, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x6E, 0x00, 0x03, 0x07, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x6E, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x6E, 0x00, 0x03, 0x31, 0x80, 0x00, 0x4E, 0x00, 0x03, 0x2D, - 0x80, 0x00, 0x6E, 0x00, 0x03, 0x2D, 0x80, 0x00, 0xD5, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xF5, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD5, 0x00, 0x03, 0x08, - 0x80, 0x00, 0xF5, 0x00, 0x03, 0x08, 0x80, 0x01, 0x4C, 0x00, 0x03, 0x00, - 0x80, 0x01, 0x4D, 0x00, 0x03, 0x00, 0x80, 0x01, 0x4C, 0x00, 0x03, 0x01, - 0x80, 0x01, 0x4D, 0x00, 0x03, 0x01, 0x80, 0x00, 0x50, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x70, 0x00, 0x03, 0x01, 0x80, 0x00, 0x50, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x70, 0x00, 0x03, 0x07, 0x80, 0x00, 0x52, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x72, 0x00, 0x03, 0x07, 0x80, 0x00, 0x52, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x72, 0x00, 0x03, 0x23, 0x80, 0x1E, 0x5A, 0x00, 0x03, 0x04, - 0x80, 0x1E, 0x5B, 0x00, 0x03, 0x04, 0x80, 0x00, 0x52, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x72, 0x00, 0x03, 0x31, 0x80, 0x00, 0x53, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x73, 0x00, 0x03, 0x07, 0x80, 0x00, 0x53, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x73, 0x00, 0x03, 0x23, 0x80, 0x01, 0x5A, 0x00, 0x03, 0x07, - 0x80, 0x01, 0x5B, 0x00, 0x03, 0x07, 0x80, 0x01, 0x60, 0x00, 0x03, 0x07, - 0x80, 0x01, 0x61, 0x00, 0x03, 0x07, 0x80, 0x1E, 0x62, 0x00, 0x03, 0x07, - 0x80, 0x1E, 0x63, 0x00, 0x03, 0x07, 0x80, 0x00, 0x54, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x07, 0x80, 0x00, 0x54, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x23, 0x80, 0x00, 0x54, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x31, 0x80, 0x00, 0x54, 0x00, 0x03, 0x2D, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x2D, 0x80, 0x00, 0x55, 0x00, 0x03, 0x24, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x24, 0x80, 0x00, 0x55, 0x00, 0x03, 0x30, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x30, 0x80, 0x00, 0x55, 0x00, 0x03, 0x2D, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x2D, 0x80, 0x01, 0x68, 0x00, 0x03, 0x01, - 0x80, 0x01, 0x69, 0x00, 0x03, 0x01, 0x80, 0x01, 0x6A, 0x00, 0x03, 0x08, - 0x80, 0x01, 0x6B, 0x00, 0x03, 0x08, 0x80, 0x00, 0x56, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x76, 0x00, 0x03, 0x03, 0x80, 0x00, 0x56, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x76, 0x00, 0x03, 0x23, 0x80, 0x00, 0x57, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x77, 0x00, 0x03, 0x00, 0x80, 0x00, 0x57, 0x00, 0x03, 0x01, - 0x80, 0x00, 0x77, 0x00, 0x03, 0x01, 0x80, 0x00, 0x57, 0x00, 0x03, 0x08, - 0x80, 0x00, 0x77, 0x00, 0x03, 0x08, 0x80, 0x00, 0x57, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x77, 0x00, 0x03, 0x07, 0x80, 0x00, 0x57, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x77, 0x00, 0x03, 0x23, 0x80, 0x00, 0x58, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x78, 0x00, 0x03, 0x07, 0x80, 0x00, 0x58, 0x00, 0x03, 0x08, - 0x80, 0x00, 0x78, 0x00, 0x03, 0x08, 0x80, 0x00, 0x59, 0x00, 0x03, 0x07, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x07, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x02, - 0x80, 0x00, 0x7A, 0x00, 0x03, 0x02, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x7A, 0x00, 0x03, 0x23, 0x80, 0x00, 0x5A, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x7A, 0x00, 0x03, 0x31, 0x80, 0x00, 0x68, 0x00, 0x03, 0x31, - 0x80, 0x00, 0x74, 0x00, 0x03, 0x08, 0x80, 0x00, 0x77, 0x00, 0x03, 0x0A, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x0A, 0xC0, 0x00, 0x61, 0x00, 0x02, 0xBE, - 0x80, 0x01, 0x7F, 0x00, 0x03, 0x07, 0x80, 0x00, 0x41, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x23, 0x80, 0x00, 0x41, 0x00, 0x03, 0x09, - 0x80, 0x00, 0x61, 0x00, 0x03, 0x09, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xE2, 0x00, 0x03, 0x01, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x00, - 0x80, 0x00, 0xE2, 0x00, 0x03, 0x00, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x09, - 0x80, 0x00, 0xE2, 0x00, 0x03, 0x09, 0x80, 0x00, 0xC2, 0x00, 0x03, 0x03, - 0x80, 0x00, 0xE2, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xA0, 0x00, 0x03, 0x02, - 0x80, 0x1E, 0xA1, 0x00, 0x03, 0x02, 0x80, 0x01, 0x02, 0x00, 0x03, 0x01, - 0x80, 0x01, 0x03, 0x00, 0x03, 0x01, 0x80, 0x01, 0x02, 0x00, 0x03, 0x00, - 0x80, 0x01, 0x03, 0x00, 0x03, 0x00, 0x80, 0x01, 0x02, 0x00, 0x03, 0x09, - 0x80, 0x01, 0x03, 0x00, 0x03, 0x09, 0x80, 0x01, 0x02, 0x00, 0x03, 0x03, - 0x80, 0x01, 0x03, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xA0, 0x00, 0x03, 0x06, - 0x80, 0x1E, 0xA1, 0x00, 0x03, 0x06, 0x80, 0x00, 0x45, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x23, 0x80, 0x00, 0x45, 0x00, 0x03, 0x09, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x09, 0x80, 0x00, 0x45, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x65, 0x00, 0x03, 0x03, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xEA, 0x00, 0x03, 0x01, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x00, - 0x80, 0x00, 0xEA, 0x00, 0x03, 0x00, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x09, - 0x80, 0x00, 0xEA, 0x00, 0x03, 0x09, 0x80, 0x00, 0xCA, 0x00, 0x03, 0x03, - 0x80, 0x00, 0xEA, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xB8, 0x00, 0x03, 0x02, - 0x80, 0x1E, 0xB9, 0x00, 0x03, 0x02, 0x80, 0x00, 0x49, 0x00, 0x03, 0x09, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x09, 0x80, 0x00, 0x49, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x69, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x23, 0x80, 0x00, 0x4F, 0x00, 0x03, 0x09, - 0x80, 0x00, 0x6F, 0x00, 0x03, 0x09, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x01, - 0x80, 0x00, 0xF4, 0x00, 0x03, 0x01, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x00, - 0x80, 0x00, 0xF4, 0x00, 0x03, 0x00, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x09, - 0x80, 0x00, 0xF4, 0x00, 0x03, 0x09, 0x80, 0x00, 0xD4, 0x00, 0x03, 0x03, - 0x80, 0x00, 0xF4, 0x00, 0x03, 0x03, 0x80, 0x1E, 0xCC, 0x00, 0x03, 0x02, - 0x80, 0x1E, 0xCD, 0x00, 0x03, 0x02, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x01, - 0x80, 0x01, 0xA1, 0x00, 0x03, 0x01, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x00, - 0x80, 0x01, 0xA1, 0x00, 0x03, 0x00, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x09, - 0x80, 0x01, 0xA1, 0x00, 0x03, 0x09, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x03, - 0x80, 0x01, 0xA1, 0x00, 0x03, 0x03, 0x80, 0x01, 0xA0, 0x00, 0x03, 0x23, - 0x80, 0x01, 0xA1, 0x00, 0x03, 0x23, 0x80, 0x00, 0x55, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x23, 0x80, 0x00, 0x55, 0x00, 0x03, 0x09, - 0x80, 0x00, 0x75, 0x00, 0x03, 0x09, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x01, - 0x80, 0x01, 0xB0, 0x00, 0x03, 0x01, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x00, - 0x80, 0x01, 0xB0, 0x00, 0x03, 0x00, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x09, - 0x80, 0x01, 0xB0, 0x00, 0x03, 0x09, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x03, - 0x80, 0x01, 0xB0, 0x00, 0x03, 0x03, 0x80, 0x01, 0xAF, 0x00, 0x03, 0x23, - 0x80, 0x01, 0xB0, 0x00, 0x03, 0x23, 0x80, 0x00, 0x59, 0x00, 0x03, 0x00, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x00, 0x80, 0x00, 0x59, 0x00, 0x03, 0x23, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x23, 0x80, 0x00, 0x59, 0x00, 0x03, 0x09, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x09, 0x80, 0x00, 0x59, 0x00, 0x03, 0x03, - 0x80, 0x00, 0x79, 0x00, 0x03, 0x03, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xB1, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x01, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x01, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x00, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x01, 0x00, 0x03, 0x42, 0x80, 0x03, 0x91, 0x00, 0x03, 0x13, - 0x80, 0x03, 0x91, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x09, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x09, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x08, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x09, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xB5, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x10, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x11, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x10, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x11, 0x00, 0x03, 0x01, 0x80, 0x03, 0x95, 0x00, 0x03, 0x13, - 0x80, 0x03, 0x95, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x18, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x19, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x18, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x19, 0x00, 0x03, 0x01, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xB7, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x21, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x21, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x20, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x21, 0x00, 0x03, 0x42, 0x80, 0x03, 0x97, 0x00, 0x03, 0x13, - 0x80, 0x03, 0x97, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x29, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x29, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x28, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x29, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xB9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x31, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x31, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x30, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x31, 0x00, 0x03, 0x42, 0x80, 0x03, 0x99, 0x00, 0x03, 0x13, - 0x80, 0x03, 0x99, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x39, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x39, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x38, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x39, 0x00, 0x03, 0x42, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xBF, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x40, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x41, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x40, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x41, 0x00, 0x03, 0x01, 0x80, 0x03, 0x9F, 0x00, 0x03, 0x13, - 0x80, 0x03, 0x9F, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x48, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x49, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x48, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x49, 0x00, 0x03, 0x01, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xC5, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x51, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x51, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x50, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x51, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x14, - 0x80, 0x1F, 0x59, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x59, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x59, 0x00, 0x03, 0x42, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xC9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x61, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x61, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x60, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x61, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA9, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xA9, 0x00, 0x03, 0x14, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x00, - 0x80, 0x1F, 0x69, 0x00, 0x03, 0x00, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x01, - 0x80, 0x1F, 0x69, 0x00, 0x03, 0x01, 0x80, 0x1F, 0x68, 0x00, 0x03, 0x42, - 0x80, 0x1F, 0x69, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x00, - 0x00, 0x03, 0xAC, 0x80, 0x03, 0xB5, 0x00, 0x03, 0x00, 0x00, 0x03, 0xAD, - 0x80, 0x03, 0xB7, 0x00, 0x03, 0x00, 0x00, 0x03, 0xAE, 0x80, 0x03, 0xB9, - 0x00, 0x03, 0x00, 0x00, 0x03, 0xAF, 0x80, 0x03, 0xBF, 0x00, 0x03, 0x00, - 0x00, 0x03, 0xCC, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x00, 0x00, 0x03, 0xCD, - 0x80, 0x03, 0xC9, 0x00, 0x03, 0x00, 0x00, 0x03, 0xCE, 0x80, 0x1F, 0x00, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x01, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x02, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x03, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x04, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x05, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x06, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x07, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x08, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x09, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0A, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0C, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0E, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x0F, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x20, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x21, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x22, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x23, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x24, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x25, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x26, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x27, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x28, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x29, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2A, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2C, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2E, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x2F, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x60, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x61, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x62, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x63, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x64, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x65, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x66, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x67, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x68, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x69, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6A, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6B, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6C, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6D, 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6E, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0x6F, 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, - 0x00, 0x03, 0x06, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x04, 0x80, 0x1F, 0x70, - 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x45, 0x80, 0x03, 0xAC, - 0x00, 0x03, 0x45, 0x80, 0x03, 0xB1, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xB6, - 0x00, 0x03, 0x45, 0x80, 0x03, 0x91, 0x00, 0x03, 0x06, 0x80, 0x03, 0x91, - 0x00, 0x03, 0x04, 0x80, 0x03, 0x91, 0x00, 0x03, 0x00, 0x00, 0x03, 0x86, - 0x80, 0x03, 0x91, 0x00, 0x03, 0x45, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x13, - 0x00, 0x03, 0xB9, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x13, 0xC0, 0x00, 0x20, - 0x00, 0x03, 0x42, 0x80, 0x00, 0xA8, 0x00, 0x03, 0x42, 0x80, 0x1F, 0x74, - 0x00, 0x03, 0x45, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x45, 0x80, 0x03, 0xAE, - 0x00, 0x03, 0x45, 0x80, 0x03, 0xB7, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xC6, - 0x00, 0x03, 0x45, 0x80, 0x03, 0x95, 0x00, 0x03, 0x00, 0x00, 0x03, 0x88, - 0x80, 0x03, 0x97, 0x00, 0x03, 0x00, 0x00, 0x03, 0x89, 0x80, 0x03, 0x97, - 0x00, 0x03, 0x45, 0x80, 0x1F, 0xBF, 0x00, 0x03, 0x00, 0x80, 0x1F, 0xBF, - 0x00, 0x03, 0x01, 0x80, 0x1F, 0xBF, 0x00, 0x03, 0x42, 0x80, 0x03, 0xB9, - 0x00, 0x03, 0x06, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x04, 0x80, 0x03, 0xCA, - 0x00, 0x03, 0x00, 0x00, 0x03, 0x90, 0x80, 0x03, 0xB9, 0x00, 0x03, 0x42, - 0x80, 0x03, 0xCA, 0x00, 0x03, 0x42, 0x80, 0x03, 0x99, 0x00, 0x03, 0x06, - 0x80, 0x03, 0x99, 0x00, 0x03, 0x04, 0x80, 0x03, 0x99, 0x00, 0x03, 0x00, - 0x00, 0x03, 0x8A, 0x80, 0x1F, 0xFE, 0x00, 0x03, 0x00, 0x80, 0x1F, 0xFE, - 0x00, 0x03, 0x01, 0x80, 0x1F, 0xFE, 0x00, 0x03, 0x42, 0x80, 0x03, 0xC5, - 0x00, 0x03, 0x06, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x04, 0x80, 0x03, 0xCB, - 0x00, 0x03, 0x00, 0x00, 0x03, 0xB0, 0x80, 0x03, 0xC1, 0x00, 0x03, 0x13, - 0x80, 0x03, 0xC1, 0x00, 0x03, 0x14, 0x80, 0x03, 0xC5, 0x00, 0x03, 0x42, - 0x80, 0x03, 0xCB, 0x00, 0x03, 0x42, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x06, - 0x80, 0x03, 0xA5, 0x00, 0x03, 0x04, 0x80, 0x03, 0xA5, 0x00, 0x03, 0x00, - 0x00, 0x03, 0x8E, 0x80, 0x03, 0xA1, 0x00, 0x03, 0x14, 0x80, 0x00, 0xA8, - 0x00, 0x03, 0x00, 0x00, 0x03, 0x85, 0x00, 0x00, 0x60, 0x80, 0x1F, 0x7C, - 0x00, 0x03, 0x45, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x45, 0x80, 0x03, 0xCE, - 0x00, 0x03, 0x45, 0x80, 0x03, 0xC9, 0x00, 0x03, 0x42, 0x80, 0x1F, 0xF6, - 0x00, 0x03, 0x45, 0x80, 0x03, 0x9F, 0x00, 0x03, 0x00, 0x00, 0x03, 0x8C, - 0x80, 0x03, 0xA9, 0x00, 0x03, 0x00, 0x00, 0x03, 0x8F, 0x80, 0x03, 0xA9, - 0x00, 0x03, 0x45, 0x00, 0x00, 0xB4, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x14, - 0x00, 0x20, 0x02, 0x00, 0x20, 0x03, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, - 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x08, 0x00, 0x20, - 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x40, 0x00, 0x20, 0x08, 0x20, 0x10, - 0xC0, 0x00, 0x20, 0x00, 0x03, 0x33, 0x40, 0x00, 0x2E, 0xC0, 0x00, 0x2E, - 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x2E, 0x80, 0x00, 0x2E, 0x00, 0x00, 0x2E, - 0x08, 0x00, 0x20, 0xC0, 0x20, 0x32, 0x00, 0x20, 0x32, 0xC0, 0x20, 0x32, - 0x80, 0x20, 0x32, 0x00, 0x20, 0x32, 0xC0, 0x20, 0x35, 0x00, 0x20, 0x35, - 0xC0, 0x20, 0x35, 0x80, 0x20, 0x35, 0x00, 0x20, 0x35, 0xC0, 0x00, 0x21, - 0x00, 0x00, 0x21, 0xC0, 0x00, 0x20, 0x00, 0x03, 0x05, 0xC0, 0x00, 0x3F, - 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0x00, 0x00, 0x21, 0xC0, 0x00, 0x21, - 0x00, 0x00, 0x3F, 0xC0, 0x20, 0x32, 0x80, 0x20, 0x32, 0x80, 0x20, 0x32, - 0x00, 0x20, 0x32, 0x40, 0x00, 0x20, 0x20, 0x00, 0x30, 0x20, 0x00, 0x69, - 0x20, 0x00, 0x34, 0x20, 0x00, 0x35, 0x20, 0x00, 0x36, 0x20, 0x00, 0x37, - 0x20, 0x00, 0x38, 0x20, 0x00, 0x39, 0x20, 0x00, 0x2B, 0x20, 0x22, 0x12, - 0x20, 0x00, 0x3D, 0x20, 0x00, 0x28, 0x20, 0x00, 0x29, 0x20, 0x00, 0x6E, - 0x24, 0x00, 0x30, 0x24, 0x00, 0x31, 0x24, 0x00, 0x32, 0x24, 0x00, 0x33, - 0x24, 0x00, 0x34, 0x24, 0x00, 0x35, 0x24, 0x00, 0x36, 0x24, 0x00, 0x37, - 0x24, 0x00, 0x38, 0x24, 0x00, 0x39, 0x24, 0x00, 0x2B, 0x24, 0x22, 0x12, - 0x24, 0x00, 0x3D, 0x24, 0x00, 0x28, 0x24, 0x00, 0x29, 0x24, 0x00, 0x61, - 0x24, 0x00, 0x65, 0x24, 0x00, 0x6F, 0x24, 0x00, 0x78, 0x24, 0x02, 0x59, - 0x24, 0x00, 0x68, 0x24, 0x00, 0x6B, 0x24, 0x00, 0x6C, 0x24, 0x00, 0x6D, - 0x24, 0x00, 0x6E, 0x24, 0x00, 0x70, 0x24, 0x00, 0x73, 0x24, 0x00, 0x74, - 0xC0, 0x00, 0x52, 0x00, 0x00, 0x73, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F, - 0x00, 0x00, 0x63, 0xC0, 0x00, 0x61, 0x80, 0x00, 0x2F, 0x00, 0x00, 0x73, - 0x04, 0x00, 0x43, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x43, 0xC0, 0x00, 0x63, - 0x80, 0x00, 0x2F, 0x00, 0x00, 0x6F, 0xC0, 0x00, 0x63, 0x80, 0x00, 0x2F, - 0x00, 0x00, 0x75, 0x40, 0x01, 0x90, 0xC0, 0x00, 0xB0, 0x00, 0x00, 0x46, - 0x04, 0x00, 0x67, 0x04, 0x00, 0x48, 0x04, 0x00, 0x48, 0x04, 0x00, 0x48, - 0x04, 0x00, 0x68, 0x04, 0x01, 0x27, 0x04, 0x00, 0x49, 0x04, 0x00, 0x49, - 0x04, 0x00, 0x4C, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x4E, 0xC0, 0x00, 0x4E, - 0x00, 0x00, 0x6F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x52, 0x04, 0x00, 0x52, 0xA0, 0x00, 0x53, 0x00, 0x00, 0x4D, - 0xC0, 0x00, 0x54, 0x80, 0x00, 0x45, 0x00, 0x00, 0x4C, 0xA0, 0x00, 0x54, - 0x00, 0x00, 0x4D, 0x04, 0x00, 0x5A, 0x00, 0x03, 0xA9, 0x04, 0x00, 0x5A, - 0x00, 0x00, 0x4B, 0x00, 0x00, 0xC5, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x4D, - 0x04, 0x00, 0x6F, 0x40, 0x05, 0xD0, 0x40, 0x05, 0xD1, 0x40, 0x05, 0xD2, - 0x40, 0x05, 0xD3, 0x04, 0x00, 0x69, 0xC0, 0x00, 0x46, 0x80, 0x00, 0x41, - 0x00, 0x00, 0x58, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xB3, 0x04, 0x03, 0x93, - 0x04, 0x03, 0xA0, 0x04, 0x22, 0x11, 0x04, 0x00, 0x44, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0xBC, 0x00, 0x31, - 0x80, 0x20, 0x44, 0x00, 0x00, 0x37, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, - 0x00, 0x00, 0x39, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x80, 0x00, 0x31, - 0x00, 0x00, 0x30, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x33, - 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0xBC, 0x00, 0x31, - 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x32, 0x80, 0x20, 0x44, - 0x00, 0x00, 0x35, 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, - 0xBC, 0x00, 0x34, 0x80, 0x20, 0x44, 0x00, 0x00, 0x35, 0xBC, 0x00, 0x31, - 0x80, 0x20, 0x44, 0x00, 0x00, 0x36, 0xBC, 0x00, 0x35, 0x80, 0x20, 0x44, - 0x00, 0x00, 0x36, 0xBC, 0x00, 0x31, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, - 0xBC, 0x00, 0x33, 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x35, - 0x80, 0x20, 0x44, 0x00, 0x00, 0x38, 0xBC, 0x00, 0x37, 0x80, 0x20, 0x44, - 0x00, 0x00, 0x38, 0xBC, 0x00, 0x31, 0x00, 0x20, 0x44, 0x40, 0x00, 0x49, - 0xC0, 0x00, 0x49, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x80, 0x00, 0x49, - 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x56, 0x40, 0x00, 0x56, - 0xC0, 0x00, 0x56, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x56, 0x80, 0x00, 0x49, - 0x00, 0x00, 0x49, 0xC0, 0x00, 0x56, 0x80, 0x00, 0x49, 0x80, 0x00, 0x49, - 0x00, 0x00, 0x49, 0xC0, 0x00, 0x49, 0x00, 0x00, 0x58, 0x40, 0x00, 0x58, - 0xC0, 0x00, 0x58, 0x00, 0x00, 0x49, 0xC0, 0x00, 0x58, 0x80, 0x00, 0x49, - 0x00, 0x00, 0x49, 0x40, 0x00, 0x4C, 0x40, 0x00, 0x43, 0x40, 0x00, 0x44, - 0x40, 0x00, 0x4D, 0x40, 0x00, 0x69, 0xC0, 0x00, 0x69, 0x00, 0x00, 0x69, - 0xC0, 0x00, 0x69, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, - 0x00, 0x00, 0x76, 0x40, 0x00, 0x76, 0xC0, 0x00, 0x76, 0x00, 0x00, 0x69, - 0xC0, 0x00, 0x76, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x76, - 0x80, 0x00, 0x69, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x69, - 0x00, 0x00, 0x78, 0x40, 0x00, 0x78, 0xC0, 0x00, 0x78, 0x00, 0x00, 0x69, - 0xC0, 0x00, 0x78, 0x80, 0x00, 0x69, 0x00, 0x00, 0x69, 0x40, 0x00, 0x6C, - 0x40, 0x00, 0x63, 0x40, 0x00, 0x64, 0x40, 0x00, 0x6D, 0xBC, 0x00, 0x30, - 0x80, 0x20, 0x44, 0x00, 0x00, 0x33, 0x80, 0x21, 0x90, 0x00, 0x03, 0x38, - 0x80, 0x21, 0x92, 0x00, 0x03, 0x38, 0x80, 0x21, 0x94, 0x00, 0x03, 0x38, - 0x80, 0x21, 0xD0, 0x00, 0x03, 0x38, 0x80, 0x21, 0xD4, 0x00, 0x03, 0x38, - 0x80, 0x21, 0xD2, 0x00, 0x03, 0x38, 0x80, 0x22, 0x03, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x08, 0x00, 0x03, 0x38, 0x80, 0x22, 0x0B, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x23, 0x00, 0x03, 0x38, 0x80, 0x22, 0x25, 0x00, 0x03, 0x38, - 0xC0, 0x22, 0x2B, 0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, - 0x00, 0x22, 0x2B, 0xC0, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0xC0, 0x22, 0x2E, - 0x80, 0x22, 0x2E, 0x00, 0x22, 0x2E, 0x80, 0x22, 0x3C, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x43, 0x00, 0x03, 0x38, 0x80, 0x22, 0x45, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x48, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3D, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x61, 0x00, 0x03, 0x38, 0x80, 0x22, 0x4D, 0x00, 0x03, 0x38, - 0x80, 0x00, 0x3C, 0x00, 0x03, 0x38, 0x80, 0x00, 0x3E, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x64, 0x00, 0x03, 0x38, 0x80, 0x22, 0x65, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x72, 0x00, 0x03, 0x38, 0x80, 0x22, 0x73, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x76, 0x00, 0x03, 0x38, 0x80, 0x22, 0x77, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x7A, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7B, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x82, 0x00, 0x03, 0x38, 0x80, 0x22, 0x83, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x86, 0x00, 0x03, 0x38, 0x80, 0x22, 0x87, 0x00, 0x03, 0x38, - 0x80, 0x22, 0xA2, 0x00, 0x03, 0x38, 0x80, 0x22, 0xA8, 0x00, 0x03, 0x38, - 0x80, 0x22, 0xA9, 0x00, 0x03, 0x38, 0x80, 0x22, 0xAB, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x7C, 0x00, 0x03, 0x38, 0x80, 0x22, 0x7D, 0x00, 0x03, 0x38, - 0x80, 0x22, 0x91, 0x00, 0x03, 0x38, 0x80, 0x22, 0x92, 0x00, 0x03, 0x38, - 0x80, 0x22, 0xB2, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB3, 0x00, 0x03, 0x38, - 0x80, 0x22, 0xB4, 0x00, 0x03, 0x38, 0x80, 0x22, 0xB5, 0x00, 0x03, 0x38, - 0x00, 0x30, 0x08, 0x00, 0x30, 0x09, 0x1C, 0x00, 0x31, 0x1C, 0x00, 0x32, - 0x1C, 0x00, 0x33, 0x1C, 0x00, 0x34, 0x1C, 0x00, 0x35, 0x1C, 0x00, 0x36, - 0x1C, 0x00, 0x37, 0x1C, 0x00, 0x38, 0x1C, 0x00, 0x39, 0x9C, 0x00, 0x31, - 0x00, 0x00, 0x30, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x31, - 0x00, 0x00, 0x32, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x31, - 0x00, 0x00, 0x34, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x31, - 0x00, 0x00, 0x36, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x31, - 0x00, 0x00, 0x38, 0x9C, 0x00, 0x31, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x32, - 0x00, 0x00, 0x30, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x33, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x34, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x37, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x38, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x31, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x32, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x33, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x34, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x35, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x36, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x37, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x38, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x39, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, - 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x33, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, - 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x37, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, - 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, 0x00, 0x00, 0x2E, - 0xC0, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x62, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x63, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x64, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x65, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x66, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x67, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x68, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x69, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6A, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6B, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x6D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6E, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x70, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x71, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x72, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x73, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x74, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x75, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x76, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x77, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x78, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x79, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x7A, - 0x00, 0x00, 0x29, 0x1C, 0x00, 0x41, 0x1C, 0x00, 0x42, 0x1C, 0x00, 0x43, - 0x1C, 0x00, 0x44, 0x1C, 0x00, 0x45, 0x1C, 0x00, 0x46, 0x1C, 0x00, 0x47, - 0x1C, 0x00, 0x48, 0x1C, 0x00, 0x49, 0x1C, 0x00, 0x4A, 0x1C, 0x00, 0x4B, - 0x1C, 0x00, 0x4C, 0x1C, 0x00, 0x4D, 0x1C, 0x00, 0x4E, 0x1C, 0x00, 0x4F, - 0x1C, 0x00, 0x50, 0x1C, 0x00, 0x51, 0x1C, 0x00, 0x52, 0x1C, 0x00, 0x53, - 0x1C, 0x00, 0x54, 0x1C, 0x00, 0x55, 0x1C, 0x00, 0x56, 0x1C, 0x00, 0x57, - 0x1C, 0x00, 0x58, 0x1C, 0x00, 0x59, 0x1C, 0x00, 0x5A, 0x1C, 0x00, 0x61, - 0x1C, 0x00, 0x62, 0x1C, 0x00, 0x63, 0x1C, 0x00, 0x64, 0x1C, 0x00, 0x65, - 0x1C, 0x00, 0x66, 0x1C, 0x00, 0x67, 0x1C, 0x00, 0x68, 0x1C, 0x00, 0x69, - 0x1C, 0x00, 0x6A, 0x1C, 0x00, 0x6B, 0x1C, 0x00, 0x6C, 0x1C, 0x00, 0x6D, - 0x1C, 0x00, 0x6E, 0x1C, 0x00, 0x6F, 0x1C, 0x00, 0x70, 0x1C, 0x00, 0x71, - 0x1C, 0x00, 0x72, 0x1C, 0x00, 0x73, 0x1C, 0x00, 0x74, 0x1C, 0x00, 0x75, - 0x1C, 0x00, 0x76, 0x1C, 0x00, 0x77, 0x1C, 0x00, 0x78, 0x1C, 0x00, 0x79, - 0x1C, 0x00, 0x7A, 0x1C, 0x00, 0x30, 0xC0, 0x22, 0x2B, 0x80, 0x22, 0x2B, - 0x80, 0x22, 0x2B, 0x00, 0x22, 0x2B, 0xC0, 0x00, 0x3A, 0x80, 0x00, 0x3A, - 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0xC0, 0x00, 0x3D, - 0x80, 0x00, 0x3D, 0x00, 0x00, 0x3D, 0x80, 0x2A, 0xDD, 0x00, 0x03, 0x38, - 0x24, 0x00, 0x6A, 0x20, 0x00, 0x56, 0x20, 0x2D, 0x61, 0x40, 0x6B, 0xCD, - 0x40, 0x9F, 0x9F, 0x40, 0x4E, 0x00, 0x40, 0x4E, 0x28, 0x40, 0x4E, 0x36, - 0x40, 0x4E, 0x3F, 0x40, 0x4E, 0x59, 0x40, 0x4E, 0x85, 0x40, 0x4E, 0x8C, - 0x40, 0x4E, 0xA0, 0x40, 0x4E, 0xBA, 0x40, 0x51, 0x3F, 0x40, 0x51, 0x65, - 0x40, 0x51, 0x6B, 0x40, 0x51, 0x82, 0x40, 0x51, 0x96, 0x40, 0x51, 0xAB, - 0x40, 0x51, 0xE0, 0x40, 0x51, 0xF5, 0x40, 0x52, 0x00, 0x40, 0x52, 0x9B, - 0x40, 0x52, 0xF9, 0x40, 0x53, 0x15, 0x40, 0x53, 0x1A, 0x40, 0x53, 0x38, - 0x40, 0x53, 0x41, 0x40, 0x53, 0x5C, 0x40, 0x53, 0x69, 0x40, 0x53, 0x82, - 0x40, 0x53, 0xB6, 0x40, 0x53, 0xC8, 0x40, 0x53, 0xE3, 0x40, 0x56, 0xD7, - 0x40, 0x57, 0x1F, 0x40, 0x58, 0xEB, 0x40, 0x59, 0x02, 0x40, 0x59, 0x0A, - 0x40, 0x59, 0x15, 0x40, 0x59, 0x27, 0x40, 0x59, 0x73, 0x40, 0x5B, 0x50, - 0x40, 0x5B, 0x80, 0x40, 0x5B, 0xF8, 0x40, 0x5C, 0x0F, 0x40, 0x5C, 0x22, - 0x40, 0x5C, 0x38, 0x40, 0x5C, 0x6E, 0x40, 0x5C, 0x71, 0x40, 0x5D, 0xDB, - 0x40, 0x5D, 0xE5, 0x40, 0x5D, 0xF1, 0x40, 0x5D, 0xFE, 0x40, 0x5E, 0x72, - 0x40, 0x5E, 0x7A, 0x40, 0x5E, 0x7F, 0x40, 0x5E, 0xF4, 0x40, 0x5E, 0xFE, - 0x40, 0x5F, 0x0B, 0x40, 0x5F, 0x13, 0x40, 0x5F, 0x50, 0x40, 0x5F, 0x61, - 0x40, 0x5F, 0x73, 0x40, 0x5F, 0xC3, 0x40, 0x62, 0x08, 0x40, 0x62, 0x36, - 0x40, 0x62, 0x4B, 0x40, 0x65, 0x2F, 0x40, 0x65, 0x34, 0x40, 0x65, 0x87, - 0x40, 0x65, 0x97, 0x40, 0x65, 0xA4, 0x40, 0x65, 0xB9, 0x40, 0x65, 0xE0, - 0x40, 0x65, 0xE5, 0x40, 0x66, 0xF0, 0x40, 0x67, 0x08, 0x40, 0x67, 0x28, - 0x40, 0x6B, 0x20, 0x40, 0x6B, 0x62, 0x40, 0x6B, 0x79, 0x40, 0x6B, 0xB3, - 0x40, 0x6B, 0xCB, 0x40, 0x6B, 0xD4, 0x40, 0x6B, 0xDB, 0x40, 0x6C, 0x0F, - 0x40, 0x6C, 0x14, 0x40, 0x6C, 0x34, 0x40, 0x70, 0x6B, 0x40, 0x72, 0x2A, - 0x40, 0x72, 0x36, 0x40, 0x72, 0x3B, 0x40, 0x72, 0x3F, 0x40, 0x72, 0x47, - 0x40, 0x72, 0x59, 0x40, 0x72, 0x5B, 0x40, 0x72, 0xAC, 0x40, 0x73, 0x84, - 0x40, 0x73, 0x89, 0x40, 0x74, 0xDC, 0x40, 0x74, 0xE6, 0x40, 0x75, 0x18, - 0x40, 0x75, 0x1F, 0x40, 0x75, 0x28, 0x40, 0x75, 0x30, 0x40, 0x75, 0x8B, - 0x40, 0x75, 0x92, 0x40, 0x76, 0x76, 0x40, 0x76, 0x7D, 0x40, 0x76, 0xAE, - 0x40, 0x76, 0xBF, 0x40, 0x76, 0xEE, 0x40, 0x77, 0xDB, 0x40, 0x77, 0xE2, - 0x40, 0x77, 0xF3, 0x40, 0x79, 0x3A, 0x40, 0x79, 0xB8, 0x40, 0x79, 0xBE, - 0x40, 0x7A, 0x74, 0x40, 0x7A, 0xCB, 0x40, 0x7A, 0xF9, 0x40, 0x7C, 0x73, - 0x40, 0x7C, 0xF8, 0x40, 0x7F, 0x36, 0x40, 0x7F, 0x51, 0x40, 0x7F, 0x8A, - 0x40, 0x7F, 0xBD, 0x40, 0x80, 0x01, 0x40, 0x80, 0x0C, 0x40, 0x80, 0x12, - 0x40, 0x80, 0x33, 0x40, 0x80, 0x7F, 0x40, 0x80, 0x89, 0x40, 0x81, 0xE3, - 0x40, 0x81, 0xEA, 0x40, 0x81, 0xF3, 0x40, 0x81, 0xFC, 0x40, 0x82, 0x0C, - 0x40, 0x82, 0x1B, 0x40, 0x82, 0x1F, 0x40, 0x82, 0x6E, 0x40, 0x82, 0x72, - 0x40, 0x82, 0x78, 0x40, 0x86, 0x4D, 0x40, 0x86, 0x6B, 0x40, 0x88, 0x40, - 0x40, 0x88, 0x4C, 0x40, 0x88, 0x63, 0x40, 0x89, 0x7E, 0x40, 0x89, 0x8B, - 0x40, 0x89, 0xD2, 0x40, 0x8A, 0x00, 0x40, 0x8C, 0x37, 0x40, 0x8C, 0x46, - 0x40, 0x8C, 0x55, 0x40, 0x8C, 0x78, 0x40, 0x8C, 0x9D, 0x40, 0x8D, 0x64, - 0x40, 0x8D, 0x70, 0x40, 0x8D, 0xB3, 0x40, 0x8E, 0xAB, 0x40, 0x8E, 0xCA, - 0x40, 0x8F, 0x9B, 0x40, 0x8F, 0xB0, 0x40, 0x8F, 0xB5, 0x40, 0x90, 0x91, - 0x40, 0x91, 0x49, 0x40, 0x91, 0xC6, 0x40, 0x91, 0xCC, 0x40, 0x91, 0xD1, - 0x40, 0x95, 0x77, 0x40, 0x95, 0x80, 0x40, 0x96, 0x1C, 0x40, 0x96, 0xB6, - 0x40, 0x96, 0xB9, 0x40, 0x96, 0xE8, 0x40, 0x97, 0x51, 0x40, 0x97, 0x5E, - 0x40, 0x97, 0x62, 0x40, 0x97, 0x69, 0x40, 0x97, 0xCB, 0x40, 0x97, 0xED, - 0x40, 0x97, 0xF3, 0x40, 0x98, 0x01, 0x40, 0x98, 0xA8, 0x40, 0x98, 0xDB, - 0x40, 0x98, 0xDF, 0x40, 0x99, 0x96, 0x40, 0x99, 0x99, 0x40, 0x99, 0xAC, - 0x40, 0x9A, 0xA8, 0x40, 0x9A, 0xD8, 0x40, 0x9A, 0xDF, 0x40, 0x9B, 0x25, - 0x40, 0x9B, 0x2F, 0x40, 0x9B, 0x32, 0x40, 0x9B, 0x3C, 0x40, 0x9B, 0x5A, - 0x40, 0x9C, 0xE5, 0x40, 0x9E, 0x75, 0x40, 0x9E, 0x7F, 0x40, 0x9E, 0xA5, - 0x40, 0x9E, 0xBB, 0x40, 0x9E, 0xC3, 0x40, 0x9E, 0xCD, 0x40, 0x9E, 0xD1, - 0x40, 0x9E, 0xF9, 0x40, 0x9E, 0xFD, 0x40, 0x9F, 0x0E, 0x40, 0x9F, 0x13, - 0x40, 0x9F, 0x20, 0x40, 0x9F, 0x3B, 0x40, 0x9F, 0x4A, 0x40, 0x9F, 0x52, - 0x40, 0x9F, 0x8D, 0x40, 0x9F, 0x9C, 0x40, 0x9F, 0xA0, 0x2C, 0x00, 0x20, - 0x40, 0x30, 0x12, 0x40, 0x53, 0x41, 0x40, 0x53, 0x44, 0x40, 0x53, 0x45, - 0x80, 0x30, 0x4B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x4D, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x4F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x51, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x53, 0x00, 0x30, 0x99, 0x80, 0x30, 0x55, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x57, 0x00, 0x30, 0x99, 0x80, 0x30, 0x59, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x5B, 0x00, 0x30, 0x99, 0x80, 0x30, 0x5D, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x5F, 0x00, 0x30, 0x99, 0x80, 0x30, 0x61, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x64, 0x00, 0x30, 0x99, 0x80, 0x30, 0x66, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x68, 0x00, 0x30, 0x99, 0x80, 0x30, 0x6F, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x6F, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x72, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x72, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x75, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x75, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x78, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x78, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x7B, 0x00, 0x30, 0x99, - 0x80, 0x30, 0x7B, 0x00, 0x30, 0x9A, 0x80, 0x30, 0x46, 0x00, 0x30, 0x99, - 0xC0, 0x00, 0x20, 0x00, 0x30, 0x99, 0xC0, 0x00, 0x20, 0x00, 0x30, 0x9A, - 0x80, 0x30, 0x9D, 0x00, 0x30, 0x99, 0xA8, 0x30, 0x88, 0x00, 0x30, 0x8A, - 0x80, 0x30, 0xAB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xAD, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xAF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB1, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xB3, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB5, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xB7, 0x00, 0x30, 0x99, 0x80, 0x30, 0xB9, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xBB, 0x00, 0x30, 0x99, 0x80, 0x30, 0xBD, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xBF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC1, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xC4, 0x00, 0x30, 0x99, 0x80, 0x30, 0xC6, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xC8, 0x00, 0x30, 0x99, 0x80, 0x30, 0xCF, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xCF, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD2, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xD2, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD5, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xD5, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xD8, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xD8, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xDB, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xDB, 0x00, 0x30, 0x9A, 0x80, 0x30, 0xA6, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xEF, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF0, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xF1, 0x00, 0x30, 0x99, 0x80, 0x30, 0xF2, 0x00, 0x30, 0x99, - 0x80, 0x30, 0xFD, 0x00, 0x30, 0x99, 0xA8, 0x30, 0xB3, 0x00, 0x30, 0xC8, - 0x40, 0x11, 0x00, 0x40, 0x11, 0x01, 0x40, 0x11, 0xAA, 0x40, 0x11, 0x02, - 0x40, 0x11, 0xAC, 0x40, 0x11, 0xAD, 0x40, 0x11, 0x03, 0x40, 0x11, 0x04, - 0x40, 0x11, 0x05, 0x40, 0x11, 0xB0, 0x40, 0x11, 0xB1, 0x40, 0x11, 0xB2, - 0x40, 0x11, 0xB3, 0x40, 0x11, 0xB4, 0x40, 0x11, 0xB5, 0x40, 0x11, 0x1A, - 0x40, 0x11, 0x06, 0x40, 0x11, 0x07, 0x40, 0x11, 0x08, 0x40, 0x11, 0x21, - 0x40, 0x11, 0x09, 0x40, 0x11, 0x0A, 0x40, 0x11, 0x0B, 0x40, 0x11, 0x0C, - 0x40, 0x11, 0x0D, 0x40, 0x11, 0x0E, 0x40, 0x11, 0x0F, 0x40, 0x11, 0x10, - 0x40, 0x11, 0x11, 0x40, 0x11, 0x12, 0x40, 0x11, 0x61, 0x40, 0x11, 0x62, - 0x40, 0x11, 0x63, 0x40, 0x11, 0x64, 0x40, 0x11, 0x65, 0x40, 0x11, 0x66, - 0x40, 0x11, 0x67, 0x40, 0x11, 0x68, 0x40, 0x11, 0x69, 0x40, 0x11, 0x6A, - 0x40, 0x11, 0x6B, 0x40, 0x11, 0x6C, 0x40, 0x11, 0x6D, 0x40, 0x11, 0x6E, - 0x40, 0x11, 0x6F, 0x40, 0x11, 0x70, 0x40, 0x11, 0x71, 0x40, 0x11, 0x72, - 0x40, 0x11, 0x73, 0x40, 0x11, 0x74, 0x40, 0x11, 0x75, 0x40, 0x11, 0x60, - 0x40, 0x11, 0x14, 0x40, 0x11, 0x15, 0x40, 0x11, 0xC7, 0x40, 0x11, 0xC8, - 0x40, 0x11, 0xCC, 0x40, 0x11, 0xCE, 0x40, 0x11, 0xD3, 0x40, 0x11, 0xD7, - 0x40, 0x11, 0xD9, 0x40, 0x11, 0x1C, 0x40, 0x11, 0xDD, 0x40, 0x11, 0xDF, - 0x40, 0x11, 0x1D, 0x40, 0x11, 0x1E, 0x40, 0x11, 0x20, 0x40, 0x11, 0x22, - 0x40, 0x11, 0x23, 0x40, 0x11, 0x27, 0x40, 0x11, 0x29, 0x40, 0x11, 0x2B, - 0x40, 0x11, 0x2C, 0x40, 0x11, 0x2D, 0x40, 0x11, 0x2E, 0x40, 0x11, 0x2F, - 0x40, 0x11, 0x32, 0x40, 0x11, 0x36, 0x40, 0x11, 0x40, 0x40, 0x11, 0x47, - 0x40, 0x11, 0x4C, 0x40, 0x11, 0xF1, 0x40, 0x11, 0xF2, 0x40, 0x11, 0x57, - 0x40, 0x11, 0x58, 0x40, 0x11, 0x59, 0x40, 0x11, 0x84, 0x40, 0x11, 0x85, - 0x40, 0x11, 0x88, 0x40, 0x11, 0x91, 0x40, 0x11, 0x92, 0x40, 0x11, 0x94, - 0x40, 0x11, 0x9E, 0x40, 0x11, 0xA1, 0x20, 0x4E, 0x00, 0x20, 0x4E, 0x8C, - 0x20, 0x4E, 0x09, 0x20, 0x56, 0xDB, 0x20, 0x4E, 0x0A, 0x20, 0x4E, 0x2D, - 0x20, 0x4E, 0x0B, 0x20, 0x75, 0x32, 0x20, 0x4E, 0x59, 0x20, 0x4E, 0x19, - 0x20, 0x4E, 0x01, 0x20, 0x59, 0x29, 0x20, 0x57, 0x30, 0x20, 0x4E, 0xBA, - 0xC0, 0x00, 0x28, 0x80, 0x11, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x11, 0x02, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x11, 0x06, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x11, 0x07, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x11, 0x0E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x11, 0x11, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x11, 0x12, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x00, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x02, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x03, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x05, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x06, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x07, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x09, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0E, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0F, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x10, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x11, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x12, - 0x80, 0x11, 0x61, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0C, - 0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, - 0x80, 0x11, 0x69, 0x80, 0x11, 0x0C, 0x80, 0x11, 0x65, 0x80, 0x11, 0xAB, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x11, 0x0B, 0x80, 0x11, 0x69, - 0x80, 0x11, 0x12, 0x80, 0x11, 0x6E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x4E, 0x00, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x8C, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x09, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x56, 0xDB, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x4E, 0x94, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x51, 0x6D, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0x03, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x51, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x4E, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x53, 0x41, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x08, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x70, 0x6B, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x6C, 0x34, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x28, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x91, 0xD1, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x57, 0x1F, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x65, 0xE5, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x68, 0x2A, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x67, 0x09, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x79, 0x3E, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x54, 0x0D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x72, 0x79, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xA1, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x79, 0x5D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x52, 0xB4, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4E, 0xE3, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x54, 0x7C, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x5B, 0x66, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x76, 0xE3, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x01, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x8C, 0xC7, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x53, 0x54, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x79, 0x6D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x4F, 0x11, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x81, 0xEA, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x81, 0xF3, 0x00, 0x00, 0x29, 0x1C, 0x55, 0x4F, - 0x1C, 0x5E, 0x7C, 0x1C, 0x65, 0x87, 0x1C, 0x7B, 0x8F, 0xB8, 0x00, 0x50, - 0x80, 0x00, 0x54, 0x00, 0x00, 0x45, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x31, - 0x9C, 0x00, 0x32, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x33, - 0x9C, 0x00, 0x32, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x35, - 0x9C, 0x00, 0x32, 0x00, 0x00, 0x36, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x37, - 0x9C, 0x00, 0x32, 0x00, 0x00, 0x38, 0x9C, 0x00, 0x32, 0x00, 0x00, 0x39, - 0x9C, 0x00, 0x33, 0x00, 0x00, 0x30, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x31, - 0x9C, 0x00, 0x33, 0x00, 0x00, 0x32, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x33, - 0x9C, 0x00, 0x33, 0x00, 0x00, 0x34, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x35, - 0x1C, 0x11, 0x00, 0x1C, 0x11, 0x02, 0x1C, 0x11, 0x03, 0x1C, 0x11, 0x05, - 0x1C, 0x11, 0x06, 0x1C, 0x11, 0x07, 0x1C, 0x11, 0x09, 0x1C, 0x11, 0x0B, - 0x1C, 0x11, 0x0C, 0x1C, 0x11, 0x0E, 0x1C, 0x11, 0x0F, 0x1C, 0x11, 0x10, - 0x1C, 0x11, 0x11, 0x1C, 0x11, 0x12, 0x9C, 0x11, 0x00, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x02, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x03, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x05, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x06, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x07, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x09, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x0B, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0C, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x0E, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0F, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x10, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x11, 0x00, 0x11, 0x61, - 0x9C, 0x11, 0x12, 0x00, 0x11, 0x61, 0x9C, 0x11, 0x0E, 0x80, 0x11, 0x61, - 0x80, 0x11, 0xB7, 0x80, 0x11, 0x00, 0x00, 0x11, 0x69, 0x9C, 0x11, 0x0C, - 0x80, 0x11, 0x6E, 0x80, 0x11, 0x0B, 0x00, 0x11, 0x74, 0x9C, 0x11, 0x0B, - 0x00, 0x11, 0x6E, 0x1C, 0x4E, 0x00, 0x1C, 0x4E, 0x8C, 0x1C, 0x4E, 0x09, - 0x1C, 0x56, 0xDB, 0x1C, 0x4E, 0x94, 0x1C, 0x51, 0x6D, 0x1C, 0x4E, 0x03, - 0x1C, 0x51, 0x6B, 0x1C, 0x4E, 0x5D, 0x1C, 0x53, 0x41, 0x1C, 0x67, 0x08, - 0x1C, 0x70, 0x6B, 0x1C, 0x6C, 0x34, 0x1C, 0x67, 0x28, 0x1C, 0x91, 0xD1, - 0x1C, 0x57, 0x1F, 0x1C, 0x65, 0xE5, 0x1C, 0x68, 0x2A, 0x1C, 0x67, 0x09, - 0x1C, 0x79, 0x3E, 0x1C, 0x54, 0x0D, 0x1C, 0x72, 0x79, 0x1C, 0x8C, 0xA1, - 0x1C, 0x79, 0x5D, 0x1C, 0x52, 0xB4, 0x1C, 0x79, 0xD8, 0x1C, 0x75, 0x37, - 0x1C, 0x59, 0x73, 0x1C, 0x90, 0x69, 0x1C, 0x51, 0x2A, 0x1C, 0x53, 0x70, - 0x1C, 0x6C, 0xE8, 0x1C, 0x98, 0x05, 0x1C, 0x4F, 0x11, 0x1C, 0x51, 0x99, - 0x1C, 0x6B, 0x63, 0x1C, 0x4E, 0x0A, 0x1C, 0x4E, 0x2D, 0x1C, 0x4E, 0x0B, - 0x1C, 0x5D, 0xE6, 0x1C, 0x53, 0xF3, 0x1C, 0x53, 0x3B, 0x1C, 0x5B, 0x97, - 0x1C, 0x5B, 0x66, 0x1C, 0x76, 0xE3, 0x1C, 0x4F, 0x01, 0x1C, 0x8C, 0xC7, - 0x1C, 0x53, 0x54, 0x1C, 0x59, 0x1C, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x36, - 0x9C, 0x00, 0x33, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x33, 0x00, 0x00, 0x38, - 0x9C, 0x00, 0x33, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x30, - 0x9C, 0x00, 0x34, 0x00, 0x00, 0x31, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x32, - 0x9C, 0x00, 0x34, 0x00, 0x00, 0x33, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x34, - 0x9C, 0x00, 0x34, 0x00, 0x00, 0x35, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x36, - 0x9C, 0x00, 0x34, 0x00, 0x00, 0x37, 0x9C, 0x00, 0x34, 0x00, 0x00, 0x38, - 0x9C, 0x00, 0x34, 0x00, 0x00, 0x39, 0x9C, 0x00, 0x35, 0x00, 0x00, 0x30, - 0xC0, 0x00, 0x31, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x32, 0x00, 0x67, 0x08, - 0xC0, 0x00, 0x33, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x34, 0x00, 0x67, 0x08, - 0xC0, 0x00, 0x35, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x36, 0x00, 0x67, 0x08, - 0xC0, 0x00, 0x37, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x38, 0x00, 0x67, 0x08, - 0xC0, 0x00, 0x39, 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, - 0x00, 0x67, 0x08, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, 0x00, 0x67, 0x08, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x67, 0x08, 0xB8, 0x00, 0x48, - 0x00, 0x00, 0x67, 0xB8, 0x00, 0x65, 0x80, 0x00, 0x72, 0x00, 0x00, 0x67, - 0xB8, 0x00, 0x65, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4C, 0x80, 0x00, 0x54, - 0x00, 0x00, 0x44, 0x1C, 0x30, 0xA2, 0x1C, 0x30, 0xA4, 0x1C, 0x30, 0xA6, - 0x1C, 0x30, 0xA8, 0x1C, 0x30, 0xAA, 0x1C, 0x30, 0xAB, 0x1C, 0x30, 0xAD, - 0x1C, 0x30, 0xAF, 0x1C, 0x30, 0xB1, 0x1C, 0x30, 0xB3, 0x1C, 0x30, 0xB5, - 0x1C, 0x30, 0xB7, 0x1C, 0x30, 0xB9, 0x1C, 0x30, 0xBB, 0x1C, 0x30, 0xBD, - 0x1C, 0x30, 0xBF, 0x1C, 0x30, 0xC1, 0x1C, 0x30, 0xC4, 0x1C, 0x30, 0xC6, - 0x1C, 0x30, 0xC8, 0x1C, 0x30, 0xCA, 0x1C, 0x30, 0xCB, 0x1C, 0x30, 0xCC, - 0x1C, 0x30, 0xCD, 0x1C, 0x30, 0xCE, 0x1C, 0x30, 0xCF, 0x1C, 0x30, 0xD2, - 0x1C, 0x30, 0xD5, 0x1C, 0x30, 0xD8, 0x1C, 0x30, 0xDB, 0x1C, 0x30, 0xDE, - 0x1C, 0x30, 0xDF, 0x1C, 0x30, 0xE0, 0x1C, 0x30, 0xE1, 0x1C, 0x30, 0xE2, - 0x1C, 0x30, 0xE4, 0x1C, 0x30, 0xE6, 0x1C, 0x30, 0xE8, 0x1C, 0x30, 0xE9, - 0x1C, 0x30, 0xEA, 0x1C, 0x30, 0xEB, 0x1C, 0x30, 0xEC, 0x1C, 0x30, 0xED, - 0x1C, 0x30, 0xEF, 0x1C, 0x30, 0xF0, 0x1C, 0x30, 0xF1, 0x1C, 0x30, 0xF2, - 0xB8, 0x4E, 0xE4, 0x00, 0x54, 0x8C, 0xB8, 0x30, 0xA2, 0x80, 0x30, 0xD1, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xA2, 0x80, 0x30, 0xEB, - 0x80, 0x30, 0xD5, 0x00, 0x30, 0xA1, 0xB8, 0x30, 0xA2, 0x80, 0x30, 0xF3, - 0x80, 0x30, 0xDA, 0x00, 0x30, 0xA2, 0xB8, 0x30, 0xA2, 0x80, 0x30, 0xFC, - 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xCB, 0x80, 0x30, 0xF3, - 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xA4, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC1, - 0xB8, 0x30, 0xA6, 0x80, 0x30, 0xA9, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xA8, - 0x80, 0x30, 0xB9, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC9, - 0xB8, 0x30, 0xA8, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xAB, 0x00, 0x30, 0xFC, - 0xB8, 0x30, 0xAA, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xAA, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xA4, - 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xE9, 0x80, 0x30, 0xC3, - 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xAB, 0x80, 0x30, 0xED, 0x80, 0x30, 0xEA, - 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xED, 0x00, 0x30, 0xF3, - 0xB8, 0x30, 0xAC, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xDE, 0xB8, 0x30, 0xAE, - 0x00, 0x30, 0xAC, 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xCB, 0x00, 0x30, 0xFC, - 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xE5, 0x80, 0x30, 0xEA, 0x00, 0x30, 0xFC, - 0xB8, 0x30, 0xAE, 0x80, 0x30, 0xEB, 0x80, 0x30, 0xC0, 0x00, 0x30, 0xFC, - 0xB8, 0x30, 0xAD, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, - 0x80, 0x30, 0xB0, 0x80, 0x30, 0xE9, 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xAD, - 0x80, 0x30, 0xED, 0x80, 0x30, 0xE1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xC8, - 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xAD, 0x80, 0x30, 0xED, 0x80, 0x30, 0xEF, - 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xB0, 0x80, 0x30, 0xE9, - 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB0, 0x80, 0x30, 0xE9, 0x80, 0x30, 0xE0, - 0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xAF, 0x80, 0x30, 0xEB, - 0x80, 0x30, 0xBC, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xED, 0xB8, 0x30, 0xAF, - 0x80, 0x30, 0xED, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xCD, 0xB8, 0x30, 0xB1, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xB3, 0x80, 0x30, 0xEB, - 0x00, 0x30, 0xCA, 0xB8, 0x30, 0xB3, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xDD, - 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xAF, 0x00, 0x30, 0xEB, - 0xB8, 0x30, 0xB5, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC1, 0x80, 0x30, 0xFC, - 0x00, 0x30, 0xE0, 0xB8, 0x30, 0xB7, 0x80, 0x30, 0xEA, 0x80, 0x30, 0xF3, - 0x00, 0x30, 0xB0, 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC1, - 0xB8, 0x30, 0xBB, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xC0, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xC7, 0x00, 0x30, 0xB7, - 0xB8, 0x30, 0xC9, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xC8, 0x00, 0x30, 0xF3, - 0xB8, 0x30, 0xCA, 0x00, 0x30, 0xCE, 0xB8, 0x30, 0xCE, 0x80, 0x30, 0xC3, - 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xCF, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xC4, - 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xBB, 0x80, 0x30, 0xF3, - 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD1, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC4, - 0xB8, 0x30, 0xD0, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xEC, 0x00, 0x30, 0xEB, - 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xA2, 0x80, 0x30, 0xB9, 0x80, 0x30, 0xC8, - 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD4, 0x80, 0x30, 0xAF, 0x00, 0x30, 0xEB, - 0xB8, 0x30, 0xD4, 0x00, 0x30, 0xB3, 0xB8, 0x30, 0xD3, 0x00, 0x30, 0xEB, - 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA1, 0x80, 0x30, 0xE9, 0x80, 0x30, 0xC3, - 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xA3, 0x80, 0x30, 0xFC, - 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xD6, 0x80, 0x30, 0xC3, 0x80, 0x30, 0xB7, - 0x80, 0x30, 0xA7, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xD5, 0x80, 0x30, 0xE9, - 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xD8, 0x80, 0x30, 0xAF, 0x80, 0x30, 0xBF, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDA, 0x00, 0x30, 0xBD, - 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xCB, 0x00, 0x30, 0xD2, 0xB8, 0x30, 0xD8, - 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC4, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xF3, - 0x00, 0x30, 0xB9, 0xB8, 0x30, 0xDA, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xB8, - 0xB8, 0x30, 0xD9, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xBF, 0xB8, 0x30, 0xDD, - 0x80, 0x30, 0xA4, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xDC, - 0x80, 0x30, 0xEB, 0x00, 0x30, 0xC8, 0xB8, 0x30, 0xDB, 0x00, 0x30, 0xF3, - 0xB8, 0x30, 0xDD, 0x80, 0x30, 0xF3, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xDB, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xDB, 0x80, 0x30, 0xFC, - 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4, 0x80, 0x30, 0xAF, - 0x00, 0x30, 0xED, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xA4, 0x00, 0x30, 0xEB, - 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xCF, 0xB8, 0x30, 0xDE, - 0x80, 0x30, 0xEB, 0x00, 0x30, 0xAF, 0xB8, 0x30, 0xDE, 0x80, 0x30, 0xF3, - 0x80, 0x30, 0xB7, 0x80, 0x30, 0xE7, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDF, - 0x80, 0x30, 0xAF, 0x80, 0x30, 0xED, 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xDF, - 0x00, 0x30, 0xEA, 0xB8, 0x30, 0xDF, 0x80, 0x30, 0xEA, 0x80, 0x30, 0xD0, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE1, 0x00, 0x30, 0xAC, - 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xAC, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xF3, - 0xB8, 0x30, 0xE1, 0x80, 0x30, 0xFC, 0x80, 0x30, 0xC8, 0x00, 0x30, 0xEB, - 0xB8, 0x30, 0xE4, 0x80, 0x30, 0xFC, 0x00, 0x30, 0xC9, 0xB8, 0x30, 0xE4, - 0x80, 0x30, 0xFC, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xE6, 0x80, 0x30, 0xA2, - 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEA, 0x80, 0x30, 0xC3, 0x80, 0x30, 0xC8, - 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEA, 0x00, 0x30, 0xE9, 0xB8, 0x30, 0xEB, - 0x80, 0x30, 0xD4, 0x00, 0x30, 0xFC, 0xB8, 0x30, 0xEB, 0x80, 0x30, 0xFC, - 0x80, 0x30, 0xD6, 0x00, 0x30, 0xEB, 0xB8, 0x30, 0xEC, 0x00, 0x30, 0xE0, - 0xB8, 0x30, 0xEC, 0x80, 0x30, 0xF3, 0x80, 0x30, 0xC8, 0x80, 0x30, 0xB2, - 0x00, 0x30, 0xF3, 0xB8, 0x30, 0xEF, 0x80, 0x30, 0xC3, 0x00, 0x30, 0xC8, - 0xC0, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x33, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x35, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x36, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x37, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x38, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x39, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x30, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x31, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, - 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x34, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x35, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x36, - 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x38, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x39, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x30, - 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31, 0x00, 0x70, 0xB9, - 0xC0, 0x00, 0x32, 0x80, 0x00, 0x32, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, - 0x80, 0x00, 0x33, 0x00, 0x70, 0xB9, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x34, - 0x00, 0x70, 0xB9, 0xB8, 0x00, 0x68, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, - 0xB8, 0x00, 0x64, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x41, 0x00, 0x00, 0x55, - 0xB8, 0x00, 0x62, 0x80, 0x00, 0x61, 0x00, 0x00, 0x72, 0xB8, 0x00, 0x6F, - 0x00, 0x00, 0x56, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x63, 0xB8, 0x00, 0x64, - 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, - 0xB8, 0x00, 0x64, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x49, - 0x00, 0x00, 0x55, 0xB8, 0x5E, 0x73, 0x00, 0x62, 0x10, 0xB8, 0x66, 0x2D, - 0x00, 0x54, 0x8C, 0xB8, 0x59, 0x27, 0x00, 0x6B, 0x63, 0xB8, 0x66, 0x0E, - 0x00, 0x6C, 0xBB, 0xB8, 0x68, 0x2A, 0x80, 0x5F, 0x0F, 0x80, 0x4F, 0x1A, - 0x00, 0x79, 0x3E, 0xB8, 0x00, 0x70, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6E, - 0x00, 0x00, 0x41, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6D, - 0x00, 0x00, 0x41, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x4B, - 0x00, 0x00, 0x42, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x47, - 0x00, 0x00, 0x42, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x61, 0x00, 0x00, 0x6C, - 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x63, 0x80, 0x00, 0x61, 0x00, 0x00, 0x6C, - 0xB8, 0x00, 0x70, 0x00, 0x00, 0x46, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x46, - 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x46, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x67, - 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x67, - 0xB8, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x48, - 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, - 0xB8, 0x00, 0x47, 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x00, 0x54, - 0x80, 0x00, 0x48, 0x00, 0x00, 0x7A, 0xB8, 0x03, 0xBC, 0x00, 0x21, 0x13, - 0xB8, 0x00, 0x6D, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x64, 0x00, 0x21, 0x13, - 0xB8, 0x00, 0x6B, 0x00, 0x21, 0x13, 0xB8, 0x00, 0x66, 0x00, 0x00, 0x6D, - 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x6D, 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x6D, - 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x63, 0x00, 0x00, 0x6D, - 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6D, - 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB2, - 0xB8, 0x00, 0x6D, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x6D, - 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, - 0xB8, 0x00, 0x63, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6D, - 0x00, 0x00, 0xB3, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x6D, 0x00, 0x00, 0xB3, - 0xB8, 0x00, 0x6D, 0x80, 0x22, 0x15, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6D, - 0x80, 0x22, 0x15, 0x80, 0x00, 0x73, 0x00, 0x00, 0xB2, 0xB8, 0x00, 0x50, - 0x00, 0x00, 0x61, 0xB8, 0x00, 0x6B, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, - 0xB8, 0x00, 0x4D, 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x47, - 0x80, 0x00, 0x50, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x72, 0x80, 0x00, 0x61, - 0x00, 0x00, 0x64, 0xB8, 0x00, 0x72, 0x80, 0x00, 0x61, 0x80, 0x00, 0x64, - 0x80, 0x22, 0x15, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x72, 0x80, 0x00, 0x61, - 0x80, 0x00, 0x64, 0x80, 0x22, 0x15, 0x80, 0x00, 0x73, 0x00, 0x00, 0xB2, - 0xB8, 0x00, 0x70, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x73, - 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x73, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x73, - 0xB8, 0x00, 0x70, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x56, - 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x56, - 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x56, - 0xB8, 0x00, 0x70, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6E, 0x00, 0x00, 0x57, - 0xB8, 0x03, 0xBC, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x57, - 0xB8, 0x00, 0x6B, 0x00, 0x00, 0x57, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x57, - 0xB8, 0x00, 0x6B, 0x00, 0x03, 0xA9, 0xB8, 0x00, 0x4D, 0x00, 0x03, 0xA9, - 0xB8, 0x00, 0x61, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D, 0x00, 0x00, 0x2E, - 0xB8, 0x00, 0x42, 0x00, 0x00, 0x71, 0xB8, 0x00, 0x63, 0x00, 0x00, 0x63, - 0xB8, 0x00, 0x63, 0x00, 0x00, 0x64, 0xB8, 0x00, 0x43, 0x80, 0x22, 0x15, - 0x80, 0x00, 0x6B, 0x00, 0x00, 0x67, 0xB8, 0x00, 0x43, 0x80, 0x00, 0x6F, - 0x00, 0x00, 0x2E, 0xB8, 0x00, 0x64, 0x00, 0x00, 0x42, 0xB8, 0x00, 0x47, - 0x00, 0x00, 0x79, 0xB8, 0x00, 0x68, 0x00, 0x00, 0x61, 0xB8, 0x00, 0x48, - 0x00, 0x00, 0x50, 0xB8, 0x00, 0x69, 0x00, 0x00, 0x6E, 0xB8, 0x00, 0x4B, - 0x00, 0x00, 0x4B, 0xB8, 0x00, 0x4B, 0x00, 0x00, 0x4D, 0xB8, 0x00, 0x6B, - 0x00, 0x00, 0x74, 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x6C, - 0x00, 0x00, 0x6E, 0xB8, 0x00, 0x6C, 0x80, 0x00, 0x6F, 0x00, 0x00, 0x67, - 0xB8, 0x00, 0x6C, 0x00, 0x00, 0x78, 0xB8, 0x00, 0x6D, 0x00, 0x00, 0x62, - 0xB8, 0x00, 0x6D, 0x80, 0x00, 0x69, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x6D, - 0x80, 0x00, 0x6F, 0x00, 0x00, 0x6C, 0xB8, 0x00, 0x50, 0x00, 0x00, 0x48, - 0xB8, 0x00, 0x70, 0x80, 0x00, 0x2E, 0x80, 0x00, 0x6D, 0x00, 0x00, 0x2E, - 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50, 0x00, 0x00, 0x4D, 0xB8, 0x00, 0x50, - 0x00, 0x00, 0x52, 0xB8, 0x00, 0x73, 0x00, 0x00, 0x72, 0xB8, 0x00, 0x53, - 0x00, 0x00, 0x76, 0xB8, 0x00, 0x57, 0x00, 0x00, 0x62, 0xB8, 0x00, 0x56, - 0x80, 0x22, 0x15, 0x00, 0x00, 0x6D, 0xB8, 0x00, 0x41, 0x80, 0x22, 0x15, - 0x00, 0x00, 0x6D, 0xC0, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x34, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x35, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x36, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x37, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x38, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x39, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x31, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x32, 0x00, 0x65, 0xE5, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x33, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x34, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x35, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x36, 0x00, 0x65, 0xE5, - 0xC0, 0x00, 0x31, 0x80, 0x00, 0x37, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, - 0x80, 0x00, 0x38, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x31, 0x80, 0x00, 0x39, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, - 0xC0, 0x00, 0x32, 0x80, 0x00, 0x31, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, - 0x80, 0x00, 0x32, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x33, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x34, 0x00, 0x65, 0xE5, - 0xC0, 0x00, 0x32, 0x80, 0x00, 0x35, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, - 0x80, 0x00, 0x36, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x37, - 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x32, 0x80, 0x00, 0x38, 0x00, 0x65, 0xE5, - 0xC0, 0x00, 0x32, 0x80, 0x00, 0x39, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, - 0x80, 0x00, 0x30, 0x00, 0x65, 0xE5, 0xC0, 0x00, 0x33, 0x80, 0x00, 0x31, - 0x00, 0x65, 0xE5, 0xB8, 0x00, 0x67, 0x80, 0x00, 0x61, 0x00, 0x00, 0x6C, - 0x20, 0x04, 0x4A, 0x20, 0x04, 0x4C, 0x20, 0xA7, 0x6F, 0x20, 0x00, 0x43, - 0x20, 0x00, 0x46, 0x20, 0x00, 0x51, 0x20, 0x01, 0x26, 0x20, 0x01, 0x53, - 0x20, 0xA7, 0x27, 0x20, 0xAB, 0x37, 0x20, 0x02, 0x6B, 0x20, 0xAB, 0x52, - 0x20, 0x02, 0x8D, 0x00, 0x8C, 0x48, 0x00, 0x66, 0xF4, 0x00, 0x8E, 0xCA, - 0x00, 0x8C, 0xC8, 0x00, 0x6E, 0xD1, 0x00, 0x4E, 0x32, 0x00, 0x53, 0xE5, - 0x00, 0x9F, 0x9C, 0x00, 0x9F, 0x9C, 0x00, 0x59, 0x51, 0x00, 0x91, 0xD1, - 0x00, 0x55, 0x87, 0x00, 0x59, 0x48, 0x00, 0x61, 0xF6, 0x00, 0x76, 0x69, - 0x00, 0x7F, 0x85, 0x00, 0x86, 0x3F, 0x00, 0x87, 0xBA, 0x00, 0x88, 0xF8, - 0x00, 0x90, 0x8F, 0x00, 0x6A, 0x02, 0x00, 0x6D, 0x1B, 0x00, 0x70, 0xD9, - 0x00, 0x73, 0xDE, 0x00, 0x84, 0x3D, 0x00, 0x91, 0x6A, 0x00, 0x99, 0xF1, - 0x00, 0x4E, 0x82, 0x00, 0x53, 0x75, 0x00, 0x6B, 0x04, 0x00, 0x72, 0x1B, - 0x00, 0x86, 0x2D, 0x00, 0x9E, 0x1E, 0x00, 0x5D, 0x50, 0x00, 0x6F, 0xEB, - 0x00, 0x85, 0xCD, 0x00, 0x89, 0x64, 0x00, 0x62, 0xC9, 0x00, 0x81, 0xD8, - 0x00, 0x88, 0x1F, 0x00, 0x5E, 0xCA, 0x00, 0x67, 0x17, 0x00, 0x6D, 0x6A, - 0x00, 0x72, 0xFC, 0x00, 0x90, 0xCE, 0x00, 0x4F, 0x86, 0x00, 0x51, 0xB7, - 0x00, 0x52, 0xDE, 0x00, 0x64, 0xC4, 0x00, 0x6A, 0xD3, 0x00, 0x72, 0x10, - 0x00, 0x76, 0xE7, 0x00, 0x80, 0x01, 0x00, 0x86, 0x06, 0x00, 0x86, 0x5C, - 0x00, 0x8D, 0xEF, 0x00, 0x97, 0x32, 0x00, 0x9B, 0x6F, 0x00, 0x9D, 0xFA, - 0x00, 0x78, 0x8C, 0x00, 0x79, 0x7F, 0x00, 0x7D, 0xA0, 0x00, 0x83, 0xC9, - 0x00, 0x93, 0x04, 0x00, 0x9E, 0x7F, 0x00, 0x8A, 0xD6, 0x00, 0x58, 0xDF, - 0x00, 0x5F, 0x04, 0x00, 0x7C, 0x60, 0x00, 0x80, 0x7E, 0x00, 0x72, 0x62, - 0x00, 0x78, 0xCA, 0x00, 0x8C, 0xC2, 0x00, 0x96, 0xF7, 0x00, 0x58, 0xD8, - 0x00, 0x5C, 0x62, 0x00, 0x6A, 0x13, 0x00, 0x6D, 0xDA, 0x00, 0x6F, 0x0F, - 0x00, 0x7D, 0x2F, 0x00, 0x7E, 0x37, 0x00, 0x96, 0x4B, 0x00, 0x52, 0xD2, - 0x00, 0x80, 0x8B, 0x00, 0x51, 0xDC, 0x00, 0x51, 0xCC, 0x00, 0x7A, 0x1C, - 0x00, 0x7D, 0xBE, 0x00, 0x83, 0xF1, 0x00, 0x96, 0x75, 0x00, 0x8B, 0x80, - 0x00, 0x62, 0xCF, 0x00, 0x6A, 0x02, 0x00, 0x8A, 0xFE, 0x00, 0x4E, 0x39, - 0x00, 0x5B, 0xE7, 0x00, 0x60, 0x12, 0x00, 0x73, 0x87, 0x00, 0x75, 0x70, - 0x00, 0x53, 0x17, 0x00, 0x78, 0xFB, 0x00, 0x4F, 0xBF, 0x00, 0x5F, 0xA9, - 0x00, 0x4E, 0x0D, 0x00, 0x6C, 0xCC, 0x00, 0x65, 0x78, 0x00, 0x7D, 0x22, - 0x00, 0x53, 0xC3, 0x00, 0x58, 0x5E, 0x00, 0x77, 0x01, 0x00, 0x84, 0x49, - 0x00, 0x8A, 0xAA, 0x00, 0x6B, 0xBA, 0x00, 0x8F, 0xB0, 0x00, 0x6C, 0x88, - 0x00, 0x62, 0xFE, 0x00, 0x82, 0xE5, 0x00, 0x63, 0xA0, 0x00, 0x75, 0x65, - 0x00, 0x4E, 0xAE, 0x00, 0x51, 0x69, 0x00, 0x51, 0xC9, 0x00, 0x68, 0x81, - 0x00, 0x7C, 0xE7, 0x00, 0x82, 0x6F, 0x00, 0x8A, 0xD2, 0x00, 0x91, 0xCF, - 0x00, 0x52, 0xF5, 0x00, 0x54, 0x42, 0x00, 0x59, 0x73, 0x00, 0x5E, 0xEC, - 0x00, 0x65, 0xC5, 0x00, 0x6F, 0xFE, 0x00, 0x79, 0x2A, 0x00, 0x95, 0xAD, - 0x00, 0x9A, 0x6A, 0x00, 0x9E, 0x97, 0x00, 0x9E, 0xCE, 0x00, 0x52, 0x9B, - 0x00, 0x66, 0xC6, 0x00, 0x6B, 0x77, 0x00, 0x8F, 0x62, 0x00, 0x5E, 0x74, - 0x00, 0x61, 0x90, 0x00, 0x62, 0x00, 0x00, 0x64, 0x9A, 0x00, 0x6F, 0x23, - 0x00, 0x71, 0x49, 0x00, 0x74, 0x89, 0x00, 0x79, 0xCA, 0x00, 0x7D, 0xF4, - 0x00, 0x80, 0x6F, 0x00, 0x8F, 0x26, 0x00, 0x84, 0xEE, 0x00, 0x90, 0x23, - 0x00, 0x93, 0x4A, 0x00, 0x52, 0x17, 0x00, 0x52, 0xA3, 0x00, 0x54, 0xBD, - 0x00, 0x70, 0xC8, 0x00, 0x88, 0xC2, 0x00, 0x8A, 0xAA, 0x00, 0x5E, 0xC9, - 0x00, 0x5F, 0xF5, 0x00, 0x63, 0x7B, 0x00, 0x6B, 0xAE, 0x00, 0x7C, 0x3E, - 0x00, 0x73, 0x75, 0x00, 0x4E, 0xE4, 0x00, 0x56, 0xF9, 0x00, 0x5B, 0xE7, - 0x00, 0x5D, 0xBA, 0x00, 0x60, 0x1C, 0x00, 0x73, 0xB2, 0x00, 0x74, 0x69, - 0x00, 0x7F, 0x9A, 0x00, 0x80, 0x46, 0x00, 0x92, 0x34, 0x00, 0x96, 0xF6, - 0x00, 0x97, 0x48, 0x00, 0x98, 0x18, 0x00, 0x4F, 0x8B, 0x00, 0x79, 0xAE, - 0x00, 0x91, 0xB4, 0x00, 0x96, 0xB8, 0x00, 0x60, 0xE1, 0x00, 0x4E, 0x86, - 0x00, 0x50, 0xDA, 0x00, 0x5B, 0xEE, 0x00, 0x5C, 0x3F, 0x00, 0x65, 0x99, - 0x00, 0x6A, 0x02, 0x00, 0x71, 0xCE, 0x00, 0x76, 0x42, 0x00, 0x84, 0xFC, - 0x00, 0x90, 0x7C, 0x00, 0x9F, 0x8D, 0x00, 0x66, 0x88, 0x00, 0x96, 0x2E, - 0x00, 0x52, 0x89, 0x00, 0x67, 0x7B, 0x00, 0x67, 0xF3, 0x00, 0x6D, 0x41, - 0x00, 0x6E, 0x9C, 0x00, 0x74, 0x09, 0x00, 0x75, 0x59, 0x00, 0x78, 0x6B, - 0x00, 0x7D, 0x10, 0x00, 0x98, 0x5E, 0x00, 0x51, 0x6D, 0x00, 0x62, 0x2E, - 0x00, 0x96, 0x78, 0x00, 0x50, 0x2B, 0x00, 0x5D, 0x19, 0x00, 0x6D, 0xEA, - 0x00, 0x8F, 0x2A, 0x00, 0x5F, 0x8B, 0x00, 0x61, 0x44, 0x00, 0x68, 0x17, - 0x00, 0x73, 0x87, 0x00, 0x96, 0x86, 0x00, 0x52, 0x29, 0x00, 0x54, 0x0F, - 0x00, 0x5C, 0x65, 0x00, 0x66, 0x13, 0x00, 0x67, 0x4E, 0x00, 0x68, 0xA8, - 0x00, 0x6C, 0xE5, 0x00, 0x74, 0x06, 0x00, 0x75, 0xE2, 0x00, 0x7F, 0x79, - 0x00, 0x88, 0xCF, 0x00, 0x88, 0xE1, 0x00, 0x91, 0xCC, 0x00, 0x96, 0xE2, - 0x00, 0x53, 0x3F, 0x00, 0x6E, 0xBA, 0x00, 0x54, 0x1D, 0x00, 0x71, 0xD0, - 0x00, 0x74, 0x98, 0x00, 0x85, 0xFA, 0x00, 0x96, 0xA3, 0x00, 0x9C, 0x57, - 0x00, 0x9E, 0x9F, 0x00, 0x67, 0x97, 0x00, 0x6D, 0xCB, 0x00, 0x81, 0xE8, - 0x00, 0x7A, 0xCB, 0x00, 0x7B, 0x20, 0x00, 0x7C, 0x92, 0x00, 0x72, 0xC0, - 0x00, 0x70, 0x99, 0x00, 0x8B, 0x58, 0x00, 0x4E, 0xC0, 0x00, 0x83, 0x36, - 0x00, 0x52, 0x3A, 0x00, 0x52, 0x07, 0x00, 0x5E, 0xA6, 0x00, 0x62, 0xD3, - 0x00, 0x7C, 0xD6, 0x00, 0x5B, 0x85, 0x00, 0x6D, 0x1E, 0x00, 0x66, 0xB4, - 0x00, 0x8F, 0x3B, 0x00, 0x88, 0x4C, 0x00, 0x96, 0x4D, 0x00, 0x89, 0x8B, - 0x00, 0x5E, 0xD3, 0x00, 0x51, 0x40, 0x00, 0x55, 0xC0, 0x00, 0x58, 0x5A, - 0x00, 0x66, 0x74, 0x00, 0x51, 0xDE, 0x00, 0x73, 0x2A, 0x00, 0x76, 0xCA, - 0x00, 0x79, 0x3C, 0x00, 0x79, 0x5E, 0x00, 0x79, 0x65, 0x00, 0x79, 0x8F, - 0x00, 0x97, 0x56, 0x00, 0x7C, 0xBE, 0x00, 0x7F, 0xBD, 0x00, 0x86, 0x12, - 0x00, 0x8A, 0xF8, 0x00, 0x90, 0x38, 0x00, 0x90, 0xFD, 0x00, 0x98, 0xEF, - 0x00, 0x98, 0xFC, 0x00, 0x99, 0x28, 0x00, 0x9D, 0xB4, 0x00, 0x90, 0xDE, - 0x00, 0x96, 0xB7, 0x00, 0x4F, 0xAE, 0x00, 0x50, 0xE7, 0x00, 0x51, 0x4D, - 0x00, 0x52, 0xC9, 0x00, 0x52, 0xE4, 0x00, 0x53, 0x51, 0x00, 0x55, 0x9D, - 0x00, 0x56, 0x06, 0x00, 0x56, 0x68, 0x00, 0x58, 0x40, 0x00, 0x58, 0xA8, - 0x00, 0x5C, 0x64, 0x00, 0x5C, 0x6E, 0x00, 0x60, 0x94, 0x00, 0x61, 0x68, - 0x00, 0x61, 0x8E, 0x00, 0x61, 0xF2, 0x00, 0x65, 0x4F, 0x00, 0x65, 0xE2, - 0x00, 0x66, 0x91, 0x00, 0x68, 0x85, 0x00, 0x6D, 0x77, 0x00, 0x6E, 0x1A, - 0x00, 0x6F, 0x22, 0x00, 0x71, 0x6E, 0x00, 0x72, 0x2B, 0x00, 0x74, 0x22, - 0x00, 0x78, 0x91, 0x00, 0x79, 0x3E, 0x00, 0x79, 0x49, 0x00, 0x79, 0x48, - 0x00, 0x79, 0x50, 0x00, 0x79, 0x56, 0x00, 0x79, 0x5D, 0x00, 0x79, 0x8D, - 0x00, 0x79, 0x8E, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x81, 0x00, 0x7B, 0xC0, - 0x00, 0x7D, 0xF4, 0x00, 0x7E, 0x09, 0x00, 0x7E, 0x41, 0x00, 0x7F, 0x72, - 0x00, 0x80, 0x05, 0x00, 0x81, 0xED, 0x00, 0x82, 0x79, 0x00, 0x82, 0x79, - 0x00, 0x84, 0x57, 0x00, 0x89, 0x10, 0x00, 0x89, 0x96, 0x00, 0x8B, 0x01, - 0x00, 0x8B, 0x39, 0x00, 0x8C, 0xD3, 0x00, 0x8D, 0x08, 0x00, 0x8F, 0xB6, - 0x00, 0x90, 0x38, 0x00, 0x96, 0xE3, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x3B, - 0x00, 0x60, 0x75, 0x02, 0x42, 0xEE, 0x00, 0x82, 0x18, 0x00, 0x4E, 0x26, - 0x00, 0x51, 0xB5, 0x00, 0x51, 0x68, 0x00, 0x4F, 0x80, 0x00, 0x51, 0x45, - 0x00, 0x51, 0x80, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xFA, 0x00, 0x55, 0x9D, - 0x00, 0x55, 0x55, 0x00, 0x55, 0x99, 0x00, 0x55, 0xE2, 0x00, 0x58, 0x5A, - 0x00, 0x58, 0xB3, 0x00, 0x59, 0x44, 0x00, 0x59, 0x54, 0x00, 0x5A, 0x62, - 0x00, 0x5B, 0x28, 0x00, 0x5E, 0xD2, 0x00, 0x5E, 0xD9, 0x00, 0x5F, 0x69, - 0x00, 0x5F, 0xAD, 0x00, 0x60, 0xD8, 0x00, 0x61, 0x4E, 0x00, 0x61, 0x08, - 0x00, 0x61, 0x8E, 0x00, 0x61, 0x60, 0x00, 0x61, 0xF2, 0x00, 0x62, 0x34, - 0x00, 0x63, 0xC4, 0x00, 0x64, 0x1C, 0x00, 0x64, 0x52, 0x00, 0x65, 0x56, - 0x00, 0x66, 0x74, 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x56, - 0x00, 0x6B, 0x79, 0x00, 0x6B, 0xBA, 0x00, 0x6D, 0x41, 0x00, 0x6E, 0xDB, - 0x00, 0x6E, 0xCB, 0x00, 0x6F, 0x22, 0x00, 0x70, 0x1E, 0x00, 0x71, 0x6E, - 0x00, 0x77, 0xA7, 0x00, 0x72, 0x35, 0x00, 0x72, 0xAF, 0x00, 0x73, 0x2A, - 0x00, 0x74, 0x71, 0x00, 0x75, 0x06, 0x00, 0x75, 0x3B, 0x00, 0x76, 0x1D, - 0x00, 0x76, 0x1F, 0x00, 0x76, 0xCA, 0x00, 0x76, 0xDB, 0x00, 0x76, 0xF4, - 0x00, 0x77, 0x4A, 0x00, 0x77, 0x40, 0x00, 0x78, 0xCC, 0x00, 0x7A, 0xB1, - 0x00, 0x7B, 0xC0, 0x00, 0x7C, 0x7B, 0x00, 0x7D, 0x5B, 0x00, 0x7D, 0xF4, - 0x00, 0x7F, 0x3E, 0x00, 0x80, 0x05, 0x00, 0x83, 0x52, 0x00, 0x83, 0xEF, - 0x00, 0x87, 0x79, 0x00, 0x89, 0x41, 0x00, 0x89, 0x86, 0x00, 0x89, 0x96, - 0x00, 0x8A, 0xBF, 0x00, 0x8A, 0xF8, 0x00, 0x8A, 0xCB, 0x00, 0x8B, 0x01, - 0x00, 0x8A, 0xFE, 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x39, 0x00, 0x8B, 0x8A, - 0x00, 0x8D, 0x08, 0x00, 0x8F, 0x38, 0x00, 0x90, 0x72, 0x00, 0x91, 0x99, - 0x00, 0x92, 0x76, 0x00, 0x96, 0x7C, 0x00, 0x96, 0xE3, 0x00, 0x97, 0x56, - 0x00, 0x97, 0xDB, 0x00, 0x97, 0xFF, 0x00, 0x98, 0x0B, 0x00, 0x98, 0x3B, - 0x00, 0x9B, 0x12, 0x00, 0x9F, 0x9C, 0x02, 0x28, 0x4A, 0x02, 0x28, 0x44, - 0x02, 0x33, 0xD5, 0x00, 0x3B, 0x9D, 0x00, 0x40, 0x18, 0x00, 0x40, 0x39, - 0x02, 0x52, 0x49, 0x02, 0x5C, 0xD0, 0x02, 0x7E, 0xD3, 0x00, 0x9F, 0x43, - 0x00, 0x9F, 0x8E, 0xC0, 0x00, 0x66, 0x00, 0x00, 0x66, 0xC0, 0x00, 0x66, - 0x00, 0x00, 0x69, 0xC0, 0x00, 0x66, 0x00, 0x00, 0x6C, 0xC0, 0x00, 0x66, - 0x80, 0x00, 0x66, 0x00, 0x00, 0x69, 0xC0, 0x00, 0x66, 0x80, 0x00, 0x66, - 0x00, 0x00, 0x6C, 0xC0, 0x01, 0x7F, 0x00, 0x00, 0x74, 0xC0, 0x00, 0x73, - 0x00, 0x00, 0x74, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x76, 0xC0, 0x05, 0x74, - 0x00, 0x05, 0x65, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x6B, 0xC0, 0x05, 0x7E, - 0x00, 0x05, 0x76, 0xC0, 0x05, 0x74, 0x00, 0x05, 0x6D, 0x80, 0x05, 0xD9, - 0x00, 0x05, 0xB4, 0x80, 0x05, 0xF2, 0x00, 0x05, 0xB7, 0x04, 0x05, 0xE2, - 0x04, 0x05, 0xD0, 0x04, 0x05, 0xD3, 0x04, 0x05, 0xD4, 0x04, 0x05, 0xDB, - 0x04, 0x05, 0xDC, 0x04, 0x05, 0xDD, 0x04, 0x05, 0xE8, 0x04, 0x05, 0xEA, - 0x04, 0x00, 0x2B, 0x80, 0x05, 0xE9, 0x00, 0x05, 0xC1, 0x80, 0x05, 0xE9, - 0x00, 0x05, 0xC2, 0x80, 0xFB, 0x49, 0x00, 0x05, 0xC1, 0x80, 0xFB, 0x49, - 0x00, 0x05, 0xC2, 0x80, 0x05, 0xD0, 0x00, 0x05, 0xB7, 0x80, 0x05, 0xD0, - 0x00, 0x05, 0xB8, 0x80, 0x05, 0xD0, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD1, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD2, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD3, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD4, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD5, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD6, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD8, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD9, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDA, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDB, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDC, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xDE, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE0, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE1, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE3, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE4, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE6, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE7, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE8, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xE9, 0x00, 0x05, 0xBC, 0x80, 0x05, 0xEA, - 0x00, 0x05, 0xBC, 0x80, 0x05, 0xD5, 0x00, 0x05, 0xB9, 0x80, 0x05, 0xD1, - 0x00, 0x05, 0xBF, 0x80, 0x05, 0xDB, 0x00, 0x05, 0xBF, 0x80, 0x05, 0xE4, - 0x00, 0x05, 0xBF, 0xC0, 0x05, 0xD0, 0x00, 0x05, 0xDC, 0x18, 0x06, 0x71, - 0x14, 0x06, 0x71, 0x18, 0x06, 0x7B, 0x14, 0x06, 0x7B, 0x0C, 0x06, 0x7B, - 0x10, 0x06, 0x7B, 0x18, 0x06, 0x7E, 0x14, 0x06, 0x7E, 0x0C, 0x06, 0x7E, - 0x10, 0x06, 0x7E, 0x18, 0x06, 0x80, 0x14, 0x06, 0x80, 0x0C, 0x06, 0x80, - 0x10, 0x06, 0x80, 0x18, 0x06, 0x7A, 0x14, 0x06, 0x7A, 0x0C, 0x06, 0x7A, - 0x10, 0x06, 0x7A, 0x18, 0x06, 0x7F, 0x14, 0x06, 0x7F, 0x0C, 0x06, 0x7F, - 0x10, 0x06, 0x7F, 0x18, 0x06, 0x79, 0x14, 0x06, 0x79, 0x0C, 0x06, 0x79, - 0x10, 0x06, 0x79, 0x18, 0x06, 0xA4, 0x14, 0x06, 0xA4, 0x0C, 0x06, 0xA4, - 0x10, 0x06, 0xA4, 0x18, 0x06, 0xA6, 0x14, 0x06, 0xA6, 0x0C, 0x06, 0xA6, - 0x10, 0x06, 0xA6, 0x18, 0x06, 0x84, 0x14, 0x06, 0x84, 0x0C, 0x06, 0x84, - 0x10, 0x06, 0x84, 0x18, 0x06, 0x83, 0x14, 0x06, 0x83, 0x0C, 0x06, 0x83, - 0x10, 0x06, 0x83, 0x18, 0x06, 0x86, 0x14, 0x06, 0x86, 0x0C, 0x06, 0x86, - 0x10, 0x06, 0x86, 0x18, 0x06, 0x87, 0x14, 0x06, 0x87, 0x0C, 0x06, 0x87, - 0x10, 0x06, 0x87, 0x18, 0x06, 0x8D, 0x14, 0x06, 0x8D, 0x18, 0x06, 0x8C, - 0x14, 0x06, 0x8C, 0x18, 0x06, 0x8E, 0x14, 0x06, 0x8E, 0x18, 0x06, 0x88, - 0x14, 0x06, 0x88, 0x18, 0x06, 0x98, 0x14, 0x06, 0x98, 0x18, 0x06, 0x91, - 0x14, 0x06, 0x91, 0x18, 0x06, 0xA9, 0x14, 0x06, 0xA9, 0x0C, 0x06, 0xA9, - 0x10, 0x06, 0xA9, 0x18, 0x06, 0xAF, 0x14, 0x06, 0xAF, 0x0C, 0x06, 0xAF, - 0x10, 0x06, 0xAF, 0x18, 0x06, 0xB3, 0x14, 0x06, 0xB3, 0x0C, 0x06, 0xB3, - 0x10, 0x06, 0xB3, 0x18, 0x06, 0xB1, 0x14, 0x06, 0xB1, 0x0C, 0x06, 0xB1, - 0x10, 0x06, 0xB1, 0x18, 0x06, 0xBA, 0x14, 0x06, 0xBA, 0x18, 0x06, 0xBB, - 0x14, 0x06, 0xBB, 0x0C, 0x06, 0xBB, 0x10, 0x06, 0xBB, 0x18, 0x06, 0xC0, - 0x14, 0x06, 0xC0, 0x18, 0x06, 0xC1, 0x14, 0x06, 0xC1, 0x0C, 0x06, 0xC1, - 0x10, 0x06, 0xC1, 0x18, 0x06, 0xBE, 0x14, 0x06, 0xBE, 0x0C, 0x06, 0xBE, - 0x10, 0x06, 0xBE, 0x18, 0x06, 0xD2, 0x14, 0x06, 0xD2, 0x18, 0x06, 0xD3, - 0x14, 0x06, 0xD3, 0x18, 0x06, 0xAD, 0x14, 0x06, 0xAD, 0x0C, 0x06, 0xAD, - 0x10, 0x06, 0xAD, 0x18, 0x06, 0xC7, 0x14, 0x06, 0xC7, 0x18, 0x06, 0xC6, - 0x14, 0x06, 0xC6, 0x18, 0x06, 0xC8, 0x14, 0x06, 0xC8, 0x18, 0x06, 0x77, - 0x18, 0x06, 0xCB, 0x14, 0x06, 0xCB, 0x18, 0x06, 0xC5, 0x14, 0x06, 0xC5, - 0x18, 0x06, 0xC9, 0x14, 0x06, 0xC9, 0x18, 0x06, 0xD0, 0x14, 0x06, 0xD0, - 0x0C, 0x06, 0xD0, 0x10, 0x06, 0xD0, 0x0C, 0x06, 0x49, 0x10, 0x06, 0x49, - 0x98, 0x06, 0x26, 0x00, 0x06, 0x27, 0x94, 0x06, 0x26, 0x00, 0x06, 0x27, - 0x98, 0x06, 0x26, 0x00, 0x06, 0xD5, 0x94, 0x06, 0x26, 0x00, 0x06, 0xD5, - 0x98, 0x06, 0x26, 0x00, 0x06, 0x48, 0x94, 0x06, 0x26, 0x00, 0x06, 0x48, - 0x98, 0x06, 0x26, 0x00, 0x06, 0xC7, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC7, - 0x98, 0x06, 0x26, 0x00, 0x06, 0xC6, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC6, - 0x98, 0x06, 0x26, 0x00, 0x06, 0xC8, 0x94, 0x06, 0x26, 0x00, 0x06, 0xC8, - 0x98, 0x06, 0x26, 0x00, 0x06, 0xD0, 0x94, 0x06, 0x26, 0x00, 0x06, 0xD0, - 0x8C, 0x06, 0x26, 0x00, 0x06, 0xD0, 0x98, 0x06, 0x26, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x26, 0x00, 0x06, 0x49, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x49, - 0x18, 0x06, 0xCC, 0x14, 0x06, 0xCC, 0x0C, 0x06, 0xCC, 0x10, 0x06, 0xCC, - 0x98, 0x06, 0x26, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x26, 0x00, 0x06, 0x2D, - 0x98, 0x06, 0x26, 0x00, 0x06, 0x45, 0x98, 0x06, 0x26, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x26, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x28, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x28, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x28, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x28, 0x00, 0x06, 0x45, 0x98, 0x06, 0x28, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x28, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x2A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2A, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x2A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2B, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x2B, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2B, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x2B, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2C, 0x00, 0x06, 0x2D, - 0x98, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2D, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x2D, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x2E, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x45, - 0x98, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x33, 0x00, 0x06, 0x2D, - 0x98, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x33, 0x00, 0x06, 0x45, - 0x98, 0x06, 0x35, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x35, 0x00, 0x06, 0x45, - 0x98, 0x06, 0x36, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x36, 0x00, 0x06, 0x2D, - 0x98, 0x06, 0x36, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x36, 0x00, 0x06, 0x45, - 0x98, 0x06, 0x37, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x37, 0x00, 0x06, 0x45, - 0x98, 0x06, 0x38, 0x00, 0x06, 0x45, 0x98, 0x06, 0x39, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x39, 0x00, 0x06, 0x45, 0x98, 0x06, 0x3A, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x3A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x41, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x41, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x41, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x41, 0x00, 0x06, 0x45, 0x98, 0x06, 0x41, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x41, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x42, 0x00, 0x06, 0x2D, - 0x98, 0x06, 0x42, 0x00, 0x06, 0x45, 0x98, 0x06, 0x42, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x42, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x43, 0x00, 0x06, 0x27, - 0x98, 0x06, 0x43, 0x00, 0x06, 0x2C, 0x98, 0x06, 0x43, 0x00, 0x06, 0x2D, - 0x98, 0x06, 0x43, 0x00, 0x06, 0x2E, 0x98, 0x06, 0x43, 0x00, 0x06, 0x44, - 0x98, 0x06, 0x43, 0x00, 0x06, 0x45, 0x98, 0x06, 0x43, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x43, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x44, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x44, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x44, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x44, 0x00, 0x06, 0x45, 0x98, 0x06, 0x44, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x44, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x45, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x45, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x45, 0x00, 0x06, 0x45, 0x98, 0x06, 0x45, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x46, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x46, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x46, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x46, 0x00, 0x06, 0x45, 0x98, 0x06, 0x46, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x46, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x47, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x47, 0x00, 0x06, 0x45, 0x98, 0x06, 0x47, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x47, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2C, - 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x2E, - 0x98, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x98, 0x06, 0x4A, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x4A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x30, 0x00, 0x06, 0x70, - 0x98, 0x06, 0x31, 0x00, 0x06, 0x70, 0x98, 0x06, 0x49, 0x00, 0x06, 0x70, - 0x98, 0x00, 0x20, 0x80, 0x06, 0x4C, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, - 0x80, 0x06, 0x4D, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, 0x80, 0x06, 0x4E, - 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, 0x80, 0x06, 0x4F, 0x00, 0x06, 0x51, - 0x98, 0x00, 0x20, 0x80, 0x06, 0x50, 0x00, 0x06, 0x51, 0x98, 0x00, 0x20, - 0x80, 0x06, 0x51, 0x00, 0x06, 0x70, 0x94, 0x06, 0x26, 0x00, 0x06, 0x31, - 0x94, 0x06, 0x26, 0x00, 0x06, 0x32, 0x94, 0x06, 0x26, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x26, 0x00, 0x06, 0x46, 0x94, 0x06, 0x26, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x26, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x28, 0x00, 0x06, 0x31, - 0x94, 0x06, 0x28, 0x00, 0x06, 0x32, 0x94, 0x06, 0x28, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x28, 0x00, 0x06, 0x46, 0x94, 0x06, 0x28, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x28, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x31, - 0x94, 0x06, 0x2A, 0x00, 0x06, 0x32, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x2A, 0x00, 0x06, 0x46, 0x94, 0x06, 0x2A, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x2A, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x31, - 0x94, 0x06, 0x2B, 0x00, 0x06, 0x32, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x2B, 0x00, 0x06, 0x46, 0x94, 0x06, 0x2B, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x2B, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x41, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x41, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x42, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x42, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x43, 0x00, 0x06, 0x27, - 0x94, 0x06, 0x43, 0x00, 0x06, 0x44, 0x94, 0x06, 0x43, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x43, 0x00, 0x06, 0x49, 0x94, 0x06, 0x43, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x44, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x44, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, 0x00, 0x06, 0x27, - 0x94, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x00, 0x06, 0x31, - 0x94, 0x06, 0x46, 0x00, 0x06, 0x32, 0x94, 0x06, 0x46, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x46, 0x00, 0x06, 0x46, 0x94, 0x06, 0x46, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x46, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x49, 0x00, 0x06, 0x70, - 0x94, 0x06, 0x4A, 0x00, 0x06, 0x31, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x32, - 0x94, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x46, - 0x94, 0x06, 0x4A, 0x00, 0x06, 0x49, 0x94, 0x06, 0x4A, 0x00, 0x06, 0x4A, - 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x26, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x26, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x26, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x28, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x28, 0x00, 0x06, 0x47, - 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x2A, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x2B, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x2C, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2D, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x2E, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2E, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x33, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x35, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x35, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x35, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x36, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x36, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x37, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x38, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x39, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x3A, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x3A, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x41, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x41, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x42, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x42, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x43, 0x00, 0x06, 0x44, 0x8C, 0x06, 0x43, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x44, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x44, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x44, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x45, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x46, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x00, 0x06, 0x47, - 0x8C, 0x06, 0x47, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x47, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x47, 0x00, 0x06, 0x70, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x4A, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x26, 0x00, 0x06, 0x45, 0x90, 0x06, 0x26, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x28, 0x00, 0x06, 0x45, 0x90, 0x06, 0x28, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x2A, 0x00, 0x06, 0x45, 0x90, 0x06, 0x2A, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x2B, 0x00, 0x06, 0x45, 0x90, 0x06, 0x2B, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x33, 0x00, 0x06, 0x45, 0x90, 0x06, 0x33, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x34, 0x00, 0x06, 0x45, 0x90, 0x06, 0x34, 0x00, 0x06, 0x47, - 0x90, 0x06, 0x43, 0x00, 0x06, 0x44, 0x90, 0x06, 0x43, 0x00, 0x06, 0x45, - 0x90, 0x06, 0x44, 0x00, 0x06, 0x45, 0x90, 0x06, 0x46, 0x00, 0x06, 0x45, - 0x90, 0x06, 0x46, 0x00, 0x06, 0x47, 0x90, 0x06, 0x4A, 0x00, 0x06, 0x45, - 0x90, 0x06, 0x4A, 0x00, 0x06, 0x47, 0x90, 0x06, 0x40, 0x80, 0x06, 0x4E, - 0x00, 0x06, 0x51, 0x90, 0x06, 0x40, 0x80, 0x06, 0x4F, 0x00, 0x06, 0x51, - 0x90, 0x06, 0x40, 0x80, 0x06, 0x50, 0x00, 0x06, 0x51, 0x98, 0x06, 0x37, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x37, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x39, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x39, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x3A, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x3A, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x33, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x33, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x34, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x34, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2D, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2C, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x2E, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x2E, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x35, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x35, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x36, - 0x00, 0x06, 0x49, 0x98, 0x06, 0x36, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x34, - 0x00, 0x06, 0x2C, 0x98, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x98, 0x06, 0x34, - 0x00, 0x06, 0x2E, 0x98, 0x06, 0x34, 0x00, 0x06, 0x45, 0x98, 0x06, 0x34, - 0x00, 0x06, 0x31, 0x98, 0x06, 0x33, 0x00, 0x06, 0x31, 0x98, 0x06, 0x35, - 0x00, 0x06, 0x31, 0x98, 0x06, 0x36, 0x00, 0x06, 0x31, 0x94, 0x06, 0x37, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x37, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x39, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x39, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x3A, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x3A, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x33, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x34, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2D, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2C, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2E, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x2E, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x35, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x35, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x36, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x36, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, - 0x00, 0x06, 0x2C, 0x94, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x34, - 0x00, 0x06, 0x2E, 0x94, 0x06, 0x34, 0x00, 0x06, 0x45, 0x94, 0x06, 0x34, - 0x00, 0x06, 0x31, 0x94, 0x06, 0x33, 0x00, 0x06, 0x31, 0x94, 0x06, 0x35, - 0x00, 0x06, 0x31, 0x94, 0x06, 0x36, 0x00, 0x06, 0x31, 0x8C, 0x06, 0x34, - 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x34, - 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x33, - 0x00, 0x06, 0x47, 0x8C, 0x06, 0x34, 0x00, 0x06, 0x47, 0x8C, 0x06, 0x37, - 0x00, 0x06, 0x45, 0x90, 0x06, 0x33, 0x00, 0x06, 0x2C, 0x90, 0x06, 0x33, - 0x00, 0x06, 0x2D, 0x90, 0x06, 0x33, 0x00, 0x06, 0x2E, 0x90, 0x06, 0x34, - 0x00, 0x06, 0x2C, 0x90, 0x06, 0x34, 0x00, 0x06, 0x2D, 0x90, 0x06, 0x34, - 0x00, 0x06, 0x2E, 0x90, 0x06, 0x37, 0x00, 0x06, 0x45, 0x90, 0x06, 0x38, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x27, 0x00, 0x06, 0x4B, 0x98, 0x06, 0x27, - 0x00, 0x06, 0x4B, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, - 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2D, - 0x00, 0x06, 0x45, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x2A, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x2A, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x2E, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x2D, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2D, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x49, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, - 0x8C, 0x06, 0x33, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x33, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x94, 0x06, 0x33, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x33, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x35, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x35, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x35, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x34, 0x80, 0x06, 0x2D, - 0x00, 0x06, 0x45, 0x8C, 0x06, 0x34, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x34, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x2E, 0x8C, 0x06, 0x34, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x2E, 0x94, 0x06, 0x34, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x34, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x36, - 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, 0x94, 0x06, 0x36, 0x80, 0x06, 0x2E, - 0x00, 0x06, 0x45, 0x8C, 0x06, 0x36, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x37, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x37, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x37, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x37, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x39, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x3A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x3A, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x3A, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x41, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, - 0x8C, 0x06, 0x41, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x94, 0x06, 0x42, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x42, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x44, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, - 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2C, - 0x00, 0x06, 0x2C, 0x94, 0x06, 0x44, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2C, - 0x94, 0x06, 0x44, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x44, - 0x80, 0x06, 0x2E, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x45, - 0x80, 0x06, 0x2D, 0x00, 0x06, 0x45, 0x94, 0x06, 0x45, 0x80, 0x06, 0x2D, - 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, - 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x45, - 0x80, 0x06, 0x2E, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2E, - 0x00, 0x06, 0x45, 0x8C, 0x06, 0x45, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2E, - 0x8C, 0x06, 0x47, 0x80, 0x06, 0x45, 0x00, 0x06, 0x2C, 0x8C, 0x06, 0x47, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, 0x80, 0x06, 0x2D, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x46, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, - 0x00, 0x06, 0x49, 0x94, 0x06, 0x46, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x46, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x4A, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x4A, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x28, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x49, 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2E, - 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x2A, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2A, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x4A, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x49, - 0x94, 0x06, 0x2C, 0x80, 0x06, 0x45, 0x00, 0x06, 0x49, 0x94, 0x06, 0x33, - 0x80, 0x06, 0x2E, 0x00, 0x06, 0x49, 0x94, 0x06, 0x35, 0x80, 0x06, 0x2D, - 0x00, 0x06, 0x4A, 0x94, 0x06, 0x34, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x36, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x44, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x4A, 0x94, 0x06, 0x4A, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x4A, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x4A, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x4A, 0x94, 0x06, 0x42, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x46, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x42, - 0x80, 0x06, 0x45, 0x00, 0x06, 0x2D, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2D, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x39, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x46, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x2D, 0x94, 0x06, 0x45, 0x80, 0x06, 0x2E, - 0x00, 0x06, 0x4A, 0x8C, 0x06, 0x44, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, - 0x94, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x94, 0x06, 0x44, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, - 0x00, 0x06, 0x2D, 0x94, 0x06, 0x2C, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x2D, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x45, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x94, 0x06, 0x41, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x4A, 0x94, 0x06, 0x28, 0x80, 0x06, 0x2D, 0x00, 0x06, 0x4A, - 0x8C, 0x06, 0x43, 0x80, 0x06, 0x45, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x39, - 0x80, 0x06, 0x2C, 0x00, 0x06, 0x45, 0x8C, 0x06, 0x35, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x45, 0x94, 0x06, 0x33, 0x80, 0x06, 0x2E, 0x00, 0x06, 0x4A, - 0x94, 0x06, 0x46, 0x80, 0x06, 0x2C, 0x00, 0x06, 0x4A, 0x98, 0x06, 0x35, - 0x80, 0x06, 0x44, 0x00, 0x06, 0xD2, 0x98, 0x06, 0x42, 0x80, 0x06, 0x44, - 0x00, 0x06, 0xD2, 0x98, 0x06, 0x27, 0x80, 0x06, 0x44, 0x80, 0x06, 0x44, - 0x00, 0x06, 0x47, 0x98, 0x06, 0x27, 0x80, 0x06, 0x43, 0x80, 0x06, 0x28, - 0x00, 0x06, 0x31, 0x98, 0x06, 0x45, 0x80, 0x06, 0x2D, 0x80, 0x06, 0x45, - 0x00, 0x06, 0x2F, 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x80, 0x06, 0x39, - 0x00, 0x06, 0x45, 0x98, 0x06, 0x31, 0x80, 0x06, 0x33, 0x80, 0x06, 0x48, - 0x00, 0x06, 0x44, 0x98, 0x06, 0x39, 0x80, 0x06, 0x44, 0x80, 0x06, 0x4A, - 0x00, 0x06, 0x47, 0x98, 0x06, 0x48, 0x80, 0x06, 0x33, 0x80, 0x06, 0x44, - 0x00, 0x06, 0x45, 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x00, 0x06, 0x49, - 0x98, 0x06, 0x35, 0x80, 0x06, 0x44, 0x80, 0x06, 0x49, 0x80, 0x00, 0x20, - 0x80, 0x06, 0x27, 0x80, 0x06, 0x44, 0x80, 0x06, 0x44, 0x80, 0x06, 0x47, - 0x80, 0x00, 0x20, 0x80, 0x06, 0x39, 0x80, 0x06, 0x44, 0x80, 0x06, 0x4A, - 0x80, 0x06, 0x47, 0x80, 0x00, 0x20, 0x80, 0x06, 0x48, 0x80, 0x06, 0x33, - 0x80, 0x06, 0x44, 0x00, 0x06, 0x45, 0x98, 0x06, 0x2C, 0x80, 0x06, 0x44, - 0x80, 0x00, 0x20, 0x80, 0x06, 0x2C, 0x80, 0x06, 0x44, 0x80, 0x06, 0x27, - 0x80, 0x06, 0x44, 0x00, 0x06, 0x47, 0x98, 0x06, 0x31, 0x80, 0x06, 0xCC, - 0x80, 0x06, 0x27, 0x00, 0x06, 0x44, 0x28, 0x00, 0x2C, 0x28, 0x30, 0x01, - 0x28, 0x30, 0x02, 0x28, 0x00, 0x3A, 0x28, 0x00, 0x3B, 0x28, 0x00, 0x21, - 0x28, 0x00, 0x3F, 0x28, 0x30, 0x16, 0x28, 0x30, 0x17, 0x28, 0x20, 0x26, - 0x28, 0x20, 0x25, 0x28, 0x20, 0x14, 0x28, 0x20, 0x13, 0x28, 0x00, 0x5F, - 0x28, 0x00, 0x5F, 0x28, 0x00, 0x28, 0x28, 0x00, 0x29, 0x28, 0x00, 0x7B, - 0x28, 0x00, 0x7D, 0x28, 0x30, 0x14, 0x28, 0x30, 0x15, 0x28, 0x30, 0x10, - 0x28, 0x30, 0x11, 0x28, 0x30, 0x0A, 0x28, 0x30, 0x0B, 0x28, 0x30, 0x08, - 0x28, 0x30, 0x09, 0x28, 0x30, 0x0C, 0x28, 0x30, 0x0D, 0x28, 0x30, 0x0E, - 0x28, 0x30, 0x0F, 0x28, 0x00, 0x5B, 0x28, 0x00, 0x5D, 0x40, 0x20, 0x3E, - 0x40, 0x20, 0x3E, 0x40, 0x20, 0x3E, 0x40, 0x20, 0x3E, 0x40, 0x00, 0x5F, - 0x40, 0x00, 0x5F, 0x40, 0x00, 0x5F, 0x34, 0x00, 0x2C, 0x34, 0x30, 0x01, - 0x34, 0x00, 0x2E, 0x34, 0x00, 0x3B, 0x34, 0x00, 0x3A, 0x34, 0x00, 0x3F, - 0x34, 0x00, 0x21, 0x34, 0x20, 0x14, 0x34, 0x00, 0x28, 0x34, 0x00, 0x29, - 0x34, 0x00, 0x7B, 0x34, 0x00, 0x7D, 0x34, 0x30, 0x14, 0x34, 0x30, 0x15, - 0x34, 0x00, 0x23, 0x34, 0x00, 0x26, 0x34, 0x00, 0x2A, 0x34, 0x00, 0x2B, - 0x34, 0x00, 0x2D, 0x34, 0x00, 0x3C, 0x34, 0x00, 0x3E, 0x34, 0x00, 0x3D, - 0x34, 0x00, 0x5C, 0x34, 0x00, 0x24, 0x34, 0x00, 0x25, 0x34, 0x00, 0x40, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x4B, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4B, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x4C, 0x98, 0x00, 0x20, 0x00, 0x06, 0x4D, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x4E, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4E, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x4F, 0x90, 0x06, 0x40, 0x00, 0x06, 0x4F, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x50, 0x90, 0x06, 0x40, 0x00, 0x06, 0x50, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x51, 0x90, 0x06, 0x40, 0x00, 0x06, 0x51, - 0x98, 0x00, 0x20, 0x00, 0x06, 0x52, 0x90, 0x06, 0x40, 0x00, 0x06, 0x52, - 0x18, 0x06, 0x21, 0x18, 0x06, 0x22, 0x14, 0x06, 0x22, 0x18, 0x06, 0x23, - 0x14, 0x06, 0x23, 0x18, 0x06, 0x24, 0x14, 0x06, 0x24, 0x18, 0x06, 0x25, - 0x14, 0x06, 0x25, 0x18, 0x06, 0x26, 0x14, 0x06, 0x26, 0x0C, 0x06, 0x26, - 0x10, 0x06, 0x26, 0x18, 0x06, 0x27, 0x14, 0x06, 0x27, 0x18, 0x06, 0x28, - 0x14, 0x06, 0x28, 0x0C, 0x06, 0x28, 0x10, 0x06, 0x28, 0x18, 0x06, 0x29, - 0x14, 0x06, 0x29, 0x18, 0x06, 0x2A, 0x14, 0x06, 0x2A, 0x0C, 0x06, 0x2A, - 0x10, 0x06, 0x2A, 0x18, 0x06, 0x2B, 0x14, 0x06, 0x2B, 0x0C, 0x06, 0x2B, - 0x10, 0x06, 0x2B, 0x18, 0x06, 0x2C, 0x14, 0x06, 0x2C, 0x0C, 0x06, 0x2C, - 0x10, 0x06, 0x2C, 0x18, 0x06, 0x2D, 0x14, 0x06, 0x2D, 0x0C, 0x06, 0x2D, - 0x10, 0x06, 0x2D, 0x18, 0x06, 0x2E, 0x14, 0x06, 0x2E, 0x0C, 0x06, 0x2E, - 0x10, 0x06, 0x2E, 0x18, 0x06, 0x2F, 0x14, 0x06, 0x2F, 0x18, 0x06, 0x30, - 0x14, 0x06, 0x30, 0x18, 0x06, 0x31, 0x14, 0x06, 0x31, 0x18, 0x06, 0x32, - 0x14, 0x06, 0x32, 0x18, 0x06, 0x33, 0x14, 0x06, 0x33, 0x0C, 0x06, 0x33, - 0x10, 0x06, 0x33, 0x18, 0x06, 0x34, 0x14, 0x06, 0x34, 0x0C, 0x06, 0x34, - 0x10, 0x06, 0x34, 0x18, 0x06, 0x35, 0x14, 0x06, 0x35, 0x0C, 0x06, 0x35, - 0x10, 0x06, 0x35, 0x18, 0x06, 0x36, 0x14, 0x06, 0x36, 0x0C, 0x06, 0x36, - 0x10, 0x06, 0x36, 0x18, 0x06, 0x37, 0x14, 0x06, 0x37, 0x0C, 0x06, 0x37, - 0x10, 0x06, 0x37, 0x18, 0x06, 0x38, 0x14, 0x06, 0x38, 0x0C, 0x06, 0x38, - 0x10, 0x06, 0x38, 0x18, 0x06, 0x39, 0x14, 0x06, 0x39, 0x0C, 0x06, 0x39, - 0x10, 0x06, 0x39, 0x18, 0x06, 0x3A, 0x14, 0x06, 0x3A, 0x0C, 0x06, 0x3A, - 0x10, 0x06, 0x3A, 0x18, 0x06, 0x41, 0x14, 0x06, 0x41, 0x0C, 0x06, 0x41, - 0x10, 0x06, 0x41, 0x18, 0x06, 0x42, 0x14, 0x06, 0x42, 0x0C, 0x06, 0x42, - 0x10, 0x06, 0x42, 0x18, 0x06, 0x43, 0x14, 0x06, 0x43, 0x0C, 0x06, 0x43, - 0x10, 0x06, 0x43, 0x18, 0x06, 0x44, 0x14, 0x06, 0x44, 0x0C, 0x06, 0x44, - 0x10, 0x06, 0x44, 0x18, 0x06, 0x45, 0x14, 0x06, 0x45, 0x0C, 0x06, 0x45, - 0x10, 0x06, 0x45, 0x18, 0x06, 0x46, 0x14, 0x06, 0x46, 0x0C, 0x06, 0x46, - 0x10, 0x06, 0x46, 0x18, 0x06, 0x47, 0x14, 0x06, 0x47, 0x0C, 0x06, 0x47, - 0x10, 0x06, 0x47, 0x18, 0x06, 0x48, 0x14, 0x06, 0x48, 0x18, 0x06, 0x49, - 0x14, 0x06, 0x49, 0x18, 0x06, 0x4A, 0x14, 0x06, 0x4A, 0x0C, 0x06, 0x4A, - 0x10, 0x06, 0x4A, 0x98, 0x06, 0x44, 0x00, 0x06, 0x22, 0x94, 0x06, 0x44, - 0x00, 0x06, 0x22, 0x98, 0x06, 0x44, 0x00, 0x06, 0x23, 0x94, 0x06, 0x44, - 0x00, 0x06, 0x23, 0x98, 0x06, 0x44, 0x00, 0x06, 0x25, 0x94, 0x06, 0x44, - 0x00, 0x06, 0x25, 0x98, 0x06, 0x44, 0x00, 0x06, 0x27, 0x94, 0x06, 0x44, - 0x00, 0x06, 0x27, 0x2C, 0x00, 0x21, 0x2C, 0x00, 0x22, 0x2C, 0x00, 0x23, - 0x2C, 0x00, 0x24, 0x2C, 0x00, 0x25, 0x2C, 0x00, 0x26, 0x2C, 0x00, 0x27, - 0x2C, 0x00, 0x28, 0x2C, 0x00, 0x29, 0x2C, 0x00, 0x2A, 0x2C, 0x00, 0x2B, - 0x2C, 0x00, 0x2C, 0x2C, 0x00, 0x2D, 0x2C, 0x00, 0x2E, 0x2C, 0x00, 0x2F, - 0x2C, 0x00, 0x30, 0x2C, 0x00, 0x31, 0x2C, 0x00, 0x32, 0x2C, 0x00, 0x33, - 0x2C, 0x00, 0x34, 0x2C, 0x00, 0x35, 0x2C, 0x00, 0x36, 0x2C, 0x00, 0x37, - 0x2C, 0x00, 0x38, 0x2C, 0x00, 0x39, 0x2C, 0x00, 0x3A, 0x2C, 0x00, 0x3B, - 0x2C, 0x00, 0x3C, 0x2C, 0x00, 0x3D, 0x2C, 0x00, 0x3E, 0x2C, 0x00, 0x3F, - 0x2C, 0x00, 0x40, 0x2C, 0x00, 0x41, 0x2C, 0x00, 0x42, 0x2C, 0x00, 0x43, - 0x2C, 0x00, 0x44, 0x2C, 0x00, 0x45, 0x2C, 0x00, 0x46, 0x2C, 0x00, 0x47, - 0x2C, 0x00, 0x48, 0x2C, 0x00, 0x49, 0x2C, 0x00, 0x4A, 0x2C, 0x00, 0x4B, - 0x2C, 0x00, 0x4C, 0x2C, 0x00, 0x4D, 0x2C, 0x00, 0x4E, 0x2C, 0x00, 0x4F, - 0x2C, 0x00, 0x50, 0x2C, 0x00, 0x51, 0x2C, 0x00, 0x52, 0x2C, 0x00, 0x53, - 0x2C, 0x00, 0x54, 0x2C, 0x00, 0x55, 0x2C, 0x00, 0x56, 0x2C, 0x00, 0x57, - 0x2C, 0x00, 0x58, 0x2C, 0x00, 0x59, 0x2C, 0x00, 0x5A, 0x2C, 0x00, 0x5B, - 0x2C, 0x00, 0x5C, 0x2C, 0x00, 0x5D, 0x2C, 0x00, 0x5E, 0x2C, 0x00, 0x5F, - 0x2C, 0x00, 0x60, 0x2C, 0x00, 0x61, 0x2C, 0x00, 0x62, 0x2C, 0x00, 0x63, - 0x2C, 0x00, 0x64, 0x2C, 0x00, 0x65, 0x2C, 0x00, 0x66, 0x2C, 0x00, 0x67, - 0x2C, 0x00, 0x68, 0x2C, 0x00, 0x69, 0x2C, 0x00, 0x6A, 0x2C, 0x00, 0x6B, - 0x2C, 0x00, 0x6C, 0x2C, 0x00, 0x6D, 0x2C, 0x00, 0x6E, 0x2C, 0x00, 0x6F, - 0x2C, 0x00, 0x70, 0x2C, 0x00, 0x71, 0x2C, 0x00, 0x72, 0x2C, 0x00, 0x73, - 0x2C, 0x00, 0x74, 0x2C, 0x00, 0x75, 0x2C, 0x00, 0x76, 0x2C, 0x00, 0x77, - 0x2C, 0x00, 0x78, 0x2C, 0x00, 0x79, 0x2C, 0x00, 0x7A, 0x2C, 0x00, 0x7B, - 0x2C, 0x00, 0x7C, 0x2C, 0x00, 0x7D, 0x2C, 0x00, 0x7E, 0x2C, 0x29, 0x85, - 0x2C, 0x29, 0x86, 0x30, 0x30, 0x02, 0x30, 0x30, 0x0C, 0x30, 0x30, 0x0D, - 0x30, 0x30, 0x01, 0x30, 0x30, 0xFB, 0x30, 0x30, 0xF2, 0x30, 0x30, 0xA1, - 0x30, 0x30, 0xA3, 0x30, 0x30, 0xA5, 0x30, 0x30, 0xA7, 0x30, 0x30, 0xA9, - 0x30, 0x30, 0xE3, 0x30, 0x30, 0xE5, 0x30, 0x30, 0xE7, 0x30, 0x30, 0xC3, - 0x30, 0x30, 0xFC, 0x30, 0x30, 0xA2, 0x30, 0x30, 0xA4, 0x30, 0x30, 0xA6, - 0x30, 0x30, 0xA8, 0x30, 0x30, 0xAA, 0x30, 0x30, 0xAB, 0x30, 0x30, 0xAD, - 0x30, 0x30, 0xAF, 0x30, 0x30, 0xB1, 0x30, 0x30, 0xB3, 0x30, 0x30, 0xB5, - 0x30, 0x30, 0xB7, 0x30, 0x30, 0xB9, 0x30, 0x30, 0xBB, 0x30, 0x30, 0xBD, - 0x30, 0x30, 0xBF, 0x30, 0x30, 0xC1, 0x30, 0x30, 0xC4, 0x30, 0x30, 0xC6, - 0x30, 0x30, 0xC8, 0x30, 0x30, 0xCA, 0x30, 0x30, 0xCB, 0x30, 0x30, 0xCC, - 0x30, 0x30, 0xCD, 0x30, 0x30, 0xCE, 0x30, 0x30, 0xCF, 0x30, 0x30, 0xD2, - 0x30, 0x30, 0xD5, 0x30, 0x30, 0xD8, 0x30, 0x30, 0xDB, 0x30, 0x30, 0xDE, - 0x30, 0x30, 0xDF, 0x30, 0x30, 0xE0, 0x30, 0x30, 0xE1, 0x30, 0x30, 0xE2, - 0x30, 0x30, 0xE4, 0x30, 0x30, 0xE6, 0x30, 0x30, 0xE8, 0x30, 0x30, 0xE9, - 0x30, 0x30, 0xEA, 0x30, 0x30, 0xEB, 0x30, 0x30, 0xEC, 0x30, 0x30, 0xED, - 0x30, 0x30, 0xEF, 0x30, 0x30, 0xF3, 0x30, 0x30, 0x99, 0x30, 0x30, 0x9A, - 0x30, 0x31, 0x64, 0x30, 0x31, 0x31, 0x30, 0x31, 0x32, 0x30, 0x31, 0x33, - 0x30, 0x31, 0x34, 0x30, 0x31, 0x35, 0x30, 0x31, 0x36, 0x30, 0x31, 0x37, - 0x30, 0x31, 0x38, 0x30, 0x31, 0x39, 0x30, 0x31, 0x3A, 0x30, 0x31, 0x3B, - 0x30, 0x31, 0x3C, 0x30, 0x31, 0x3D, 0x30, 0x31, 0x3E, 0x30, 0x31, 0x3F, - 0x30, 0x31, 0x40, 0x30, 0x31, 0x41, 0x30, 0x31, 0x42, 0x30, 0x31, 0x43, - 0x30, 0x31, 0x44, 0x30, 0x31, 0x45, 0x30, 0x31, 0x46, 0x30, 0x31, 0x47, - 0x30, 0x31, 0x48, 0x30, 0x31, 0x49, 0x30, 0x31, 0x4A, 0x30, 0x31, 0x4B, - 0x30, 0x31, 0x4C, 0x30, 0x31, 0x4D, 0x30, 0x31, 0x4E, 0x30, 0x31, 0x4F, - 0x30, 0x31, 0x50, 0x30, 0x31, 0x51, 0x30, 0x31, 0x52, 0x30, 0x31, 0x53, - 0x30, 0x31, 0x54, 0x30, 0x31, 0x55, 0x30, 0x31, 0x56, 0x30, 0x31, 0x57, - 0x30, 0x31, 0x58, 0x30, 0x31, 0x59, 0x30, 0x31, 0x5A, 0x30, 0x31, 0x5B, - 0x30, 0x31, 0x5C, 0x30, 0x31, 0x5D, 0x30, 0x31, 0x5E, 0x30, 0x31, 0x5F, - 0x30, 0x31, 0x60, 0x30, 0x31, 0x61, 0x30, 0x31, 0x62, 0x30, 0x31, 0x63, - 0x2C, 0x00, 0xA2, 0x2C, 0x00, 0xA3, 0x2C, 0x00, 0xAC, 0x2C, 0x00, 0xAF, - 0x2C, 0x00, 0xA6, 0x2C, 0x00, 0xA5, 0x2C, 0x20, 0xA9, 0x30, 0x25, 0x02, - 0x30, 0x21, 0x90, 0x30, 0x21, 0x91, 0x30, 0x21, 0x92, 0x30, 0x21, 0x93, - 0x30, 0x25, 0xA0, 0x30, 0x25, 0xCB, 0x81, 0x05, 0xD2, 0x00, 0x03, 0x07, - 0x81, 0x05, 0xDA, 0x00, 0x03, 0x07, 0x20, 0x02, 0xD0, 0x20, 0x02, 0xD1, - 0x20, 0x00, 0xE6, 0x20, 0x02, 0x99, 0x20, 0x02, 0x53, 0x20, 0x02, 0xA3, - 0x20, 0xAB, 0x66, 0x20, 0x02, 0xA5, 0x20, 0x02, 0xA4, 0x20, 0x02, 0x56, - 0x20, 0x02, 0x57, 0x20, 0x1D, 0x91, 0x20, 0x02, 0x58, 0x20, 0x02, 0x5E, - 0x20, 0x02, 0xA9, 0x20, 0x02, 0x64, 0x20, 0x02, 0x62, 0x20, 0x02, 0x60, - 0x20, 0x02, 0x9B, 0x20, 0x01, 0x27, 0x20, 0x02, 0x9C, 0x20, 0x02, 0x67, - 0x20, 0x02, 0x84, 0x20, 0x02, 0xAA, 0x20, 0x02, 0xAB, 0x20, 0x02, 0x6C, - 0x21, 0xDF, 0x04, 0x20, 0xA7, 0x8E, 0x20, 0x02, 0x6E, 0x21, 0xDF, 0x05, - 0x20, 0x02, 0x8E, 0x21, 0xDF, 0x06, 0x20, 0x00, 0xF8, 0x20, 0x02, 0x76, - 0x20, 0x02, 0x77, 0x20, 0x00, 0x71, 0x20, 0x02, 0x7A, 0x21, 0xDF, 0x08, - 0x20, 0x02, 0x7D, 0x20, 0x02, 0x7E, 0x20, 0x02, 0x80, 0x20, 0x02, 0xA8, - 0x20, 0x02, 0xA6, 0x20, 0xAB, 0x67, 0x20, 0x02, 0xA7, 0x20, 0x02, 0x88, - 0x20, 0x2C, 0x71, 0x20, 0x02, 0x8F, 0x20, 0x02, 0xA1, 0x20, 0x02, 0xA2, - 0x20, 0x02, 0x98, 0x20, 0x01, 0xC0, 0x20, 0x01, 0xC1, 0x20, 0x01, 0xC2, - 0x21, 0xDF, 0x0A, 0x21, 0xDF, 0x1E, 0x81, 0x10, 0x99, 0x01, 0x10, 0xBA, - 0x81, 0x10, 0x9B, 0x01, 0x10, 0xBA, 0x81, 0x10, 0xA5, 0x01, 0x10, 0xBA, - 0x81, 0x11, 0x31, 0x01, 0x11, 0x27, 0x81, 0x11, 0x32, 0x01, 0x11, 0x27, - 0x81, 0x13, 0x47, 0x01, 0x13, 0x3E, 0x81, 0x13, 0x47, 0x01, 0x13, 0x57, - 0x81, 0x13, 0x82, 0x01, 0x13, 0xC9, 0x81, 0x13, 0x84, 0x01, 0x13, 0xBB, - 0x81, 0x13, 0x8B, 0x01, 0x13, 0xC2, 0x81, 0x13, 0x90, 0x01, 0x13, 0xC9, - 0x81, 0x13, 0xC2, 0x01, 0x13, 0xC2, 0x81, 0x13, 0xC2, 0x01, 0x13, 0xB8, - 0x81, 0x13, 0xC2, 0x01, 0x13, 0xC9, 0x81, 0x14, 0xB9, 0x01, 0x14, 0xBA, - 0x81, 0x14, 0xB9, 0x01, 0x14, 0xB0, 0x81, 0x14, 0xB9, 0x01, 0x14, 0xBD, - 0x81, 0x15, 0xB8, 0x01, 0x15, 0xAF, 0x81, 0x15, 0xB9, 0x01, 0x15, 0xAF, - 0x81, 0x19, 0x35, 0x01, 0x19, 0x30, 0x81, 0x61, 0x1E, 0x01, 0x61, 0x1E, - 0x81, 0x61, 0x1E, 0x01, 0x61, 0x29, 0x81, 0x61, 0x1E, 0x01, 0x61, 0x1F, - 0x81, 0x61, 0x29, 0x01, 0x61, 0x1F, 0x81, 0x61, 0x1E, 0x01, 0x61, 0x20, - 0x81, 0x61, 0x21, 0x01, 0x61, 0x1F, 0x81, 0x61, 0x22, 0x01, 0x61, 0x1F, - 0x81, 0x61, 0x21, 0x01, 0x61, 0x20, 0x81, 0x6D, 0x67, 0x01, 0x6D, 0x67, - 0x81, 0x6D, 0x63, 0x01, 0x6D, 0x67, 0x81, 0x6D, 0x69, 0x01, 0x6D, 0x67, - 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, - 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, - 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, - 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, - 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, - 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, - 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, - 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, - 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, - 0x81, 0xD1, 0x57, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0x58, 0x01, 0xD1, 0x65, - 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x6F, - 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x70, 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x71, - 0x81, 0xD1, 0x5F, 0x01, 0xD1, 0x72, 0x81, 0xD1, 0xB9, 0x01, 0xD1, 0x65, - 0x81, 0xD1, 0xBA, 0x01, 0xD1, 0x65, 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6E, - 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6E, 0x81, 0xD1, 0xBB, 0x01, 0xD1, 0x6F, - 0x81, 0xD1, 0xBC, 0x01, 0xD1, 0x6F, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x69, - 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, - 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, - 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, - 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, - 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x43, - 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, - 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, - 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, - 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, 0x04, 0x00, 0x53, - 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, - 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, - 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, - 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, - 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, - 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, - 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, - 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, - 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x53, - 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, - 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, 0x04, 0x00, 0x61, - 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x66, - 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, - 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, - 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, - 0x04, 0x00, 0x4E, 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x61, - 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, 0x04, 0x00, 0x65, - 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, 0x04, 0x00, 0x69, - 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, 0x04, 0x00, 0x6D, - 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, 0x04, 0x00, 0x71, - 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, 0x04, 0x00, 0x75, - 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, 0x04, 0x00, 0x79, - 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, 0x04, 0x00, 0x44, - 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, 0x04, 0x00, 0x47, 0x04, 0x00, 0x49, - 0x04, 0x00, 0x4A, 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, - 0x04, 0x00, 0x56, 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x00, 0x41, 0x04, 0x00, 0x42, - 0x04, 0x00, 0x43, 0x04, 0x00, 0x44, 0x04, 0x00, 0x45, 0x04, 0x00, 0x46, - 0x04, 0x00, 0x47, 0x04, 0x00, 0x48, 0x04, 0x00, 0x49, 0x04, 0x00, 0x4A, - 0x04, 0x00, 0x4B, 0x04, 0x00, 0x4C, 0x04, 0x00, 0x4D, 0x04, 0x00, 0x4E, - 0x04, 0x00, 0x4F, 0x04, 0x00, 0x50, 0x04, 0x00, 0x51, 0x04, 0x00, 0x52, - 0x04, 0x00, 0x53, 0x04, 0x00, 0x54, 0x04, 0x00, 0x55, 0x04, 0x00, 0x56, - 0x04, 0x00, 0x57, 0x04, 0x00, 0x58, 0x04, 0x00, 0x59, 0x04, 0x00, 0x5A, - 0x04, 0x00, 0x61, 0x04, 0x00, 0x62, 0x04, 0x00, 0x63, 0x04, 0x00, 0x64, - 0x04, 0x00, 0x65, 0x04, 0x00, 0x66, 0x04, 0x00, 0x67, 0x04, 0x00, 0x68, - 0x04, 0x00, 0x69, 0x04, 0x00, 0x6A, 0x04, 0x00, 0x6B, 0x04, 0x00, 0x6C, - 0x04, 0x00, 0x6D, 0x04, 0x00, 0x6E, 0x04, 0x00, 0x6F, 0x04, 0x00, 0x70, - 0x04, 0x00, 0x71, 0x04, 0x00, 0x72, 0x04, 0x00, 0x73, 0x04, 0x00, 0x74, - 0x04, 0x00, 0x75, 0x04, 0x00, 0x76, 0x04, 0x00, 0x77, 0x04, 0x00, 0x78, - 0x04, 0x00, 0x79, 0x04, 0x00, 0x7A, 0x04, 0x01, 0x31, 0x04, 0x02, 0x37, - 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, - 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, - 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, - 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, - 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, - 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, - 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, - 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, - 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, - 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, - 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, - 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, - 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, - 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, - 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, - 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, - 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, - 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, - 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, - 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, - 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, - 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, - 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, - 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, - 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, - 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, - 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, - 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, - 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, - 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, - 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, - 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, - 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, - 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, - 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, - 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, - 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, - 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, - 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, - 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, - 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, - 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, - 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, - 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, - 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, - 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, - 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, - 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, - 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, - 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, - 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, - 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, - 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, - 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, - 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, - 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, - 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, - 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, - 0x04, 0x03, 0x91, 0x04, 0x03, 0x92, 0x04, 0x03, 0x93, 0x04, 0x03, 0x94, - 0x04, 0x03, 0x95, 0x04, 0x03, 0x96, 0x04, 0x03, 0x97, 0x04, 0x03, 0x98, - 0x04, 0x03, 0x99, 0x04, 0x03, 0x9A, 0x04, 0x03, 0x9B, 0x04, 0x03, 0x9C, - 0x04, 0x03, 0x9D, 0x04, 0x03, 0x9E, 0x04, 0x03, 0x9F, 0x04, 0x03, 0xA0, - 0x04, 0x03, 0xA1, 0x04, 0x03, 0xF4, 0x04, 0x03, 0xA3, 0x04, 0x03, 0xA4, - 0x04, 0x03, 0xA5, 0x04, 0x03, 0xA6, 0x04, 0x03, 0xA7, 0x04, 0x03, 0xA8, - 0x04, 0x03, 0xA9, 0x04, 0x22, 0x07, 0x04, 0x03, 0xB1, 0x04, 0x03, 0xB2, - 0x04, 0x03, 0xB3, 0x04, 0x03, 0xB4, 0x04, 0x03, 0xB5, 0x04, 0x03, 0xB6, - 0x04, 0x03, 0xB7, 0x04, 0x03, 0xB8, 0x04, 0x03, 0xB9, 0x04, 0x03, 0xBA, - 0x04, 0x03, 0xBB, 0x04, 0x03, 0xBC, 0x04, 0x03, 0xBD, 0x04, 0x03, 0xBE, - 0x04, 0x03, 0xBF, 0x04, 0x03, 0xC0, 0x04, 0x03, 0xC1, 0x04, 0x03, 0xC2, - 0x04, 0x03, 0xC3, 0x04, 0x03, 0xC4, 0x04, 0x03, 0xC5, 0x04, 0x03, 0xC6, - 0x04, 0x03, 0xC7, 0x04, 0x03, 0xC8, 0x04, 0x03, 0xC9, 0x04, 0x22, 0x02, - 0x04, 0x03, 0xF5, 0x04, 0x03, 0xD1, 0x04, 0x03, 0xF0, 0x04, 0x03, 0xD5, - 0x04, 0x03, 0xF1, 0x04, 0x03, 0xD6, 0x04, 0x03, 0xDC, 0x04, 0x03, 0xDD, - 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, - 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, - 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, - 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, - 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, - 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, - 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, - 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, - 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, - 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, - 0x04, 0x00, 0x30, 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, - 0x04, 0x00, 0x34, 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, - 0x04, 0x00, 0x38, 0x04, 0x00, 0x39, 0x20, 0x04, 0x30, 0x20, 0x04, 0x31, - 0x20, 0x04, 0x32, 0x20, 0x04, 0x33, 0x20, 0x04, 0x34, 0x20, 0x04, 0x35, - 0x20, 0x04, 0x36, 0x20, 0x04, 0x37, 0x20, 0x04, 0x38, 0x20, 0x04, 0x3A, - 0x20, 0x04, 0x3B, 0x20, 0x04, 0x3C, 0x20, 0x04, 0x3E, 0x20, 0x04, 0x3F, - 0x20, 0x04, 0x40, 0x20, 0x04, 0x41, 0x20, 0x04, 0x42, 0x20, 0x04, 0x43, - 0x20, 0x04, 0x44, 0x20, 0x04, 0x45, 0x20, 0x04, 0x46, 0x20, 0x04, 0x47, - 0x20, 0x04, 0x48, 0x20, 0x04, 0x4B, 0x20, 0x04, 0x4D, 0x20, 0x04, 0x4E, - 0x20, 0xA6, 0x89, 0x20, 0x04, 0xD9, 0x20, 0x04, 0x56, 0x20, 0x04, 0x58, - 0x20, 0x04, 0xE9, 0x20, 0x04, 0xAF, 0x20, 0x04, 0xCF, 0x24, 0x04, 0x30, - 0x24, 0x04, 0x31, 0x24, 0x04, 0x32, 0x24, 0x04, 0x33, 0x24, 0x04, 0x34, - 0x24, 0x04, 0x35, 0x24, 0x04, 0x36, 0x24, 0x04, 0x37, 0x24, 0x04, 0x38, - 0x24, 0x04, 0x3A, 0x24, 0x04, 0x3B, 0x24, 0x04, 0x3E, 0x24, 0x04, 0x3F, - 0x24, 0x04, 0x41, 0x24, 0x04, 0x43, 0x24, 0x04, 0x44, 0x24, 0x04, 0x45, - 0x24, 0x04, 0x46, 0x24, 0x04, 0x47, 0x24, 0x04, 0x48, 0x24, 0x04, 0x4A, - 0x24, 0x04, 0x4B, 0x24, 0x04, 0x91, 0x24, 0x04, 0x56, 0x24, 0x04, 0x55, - 0x24, 0x04, 0x5F, 0x20, 0x04, 0xAB, 0x20, 0xA6, 0x51, 0x20, 0x04, 0xB1, - 0x04, 0x06, 0x27, 0x04, 0x06, 0x28, 0x04, 0x06, 0x2C, 0x04, 0x06, 0x2F, - 0x04, 0x06, 0x48, 0x04, 0x06, 0x32, 0x04, 0x06, 0x2D, 0x04, 0x06, 0x37, - 0x04, 0x06, 0x4A, 0x04, 0x06, 0x43, 0x04, 0x06, 0x44, 0x04, 0x06, 0x45, - 0x04, 0x06, 0x46, 0x04, 0x06, 0x33, 0x04, 0x06, 0x39, 0x04, 0x06, 0x41, - 0x04, 0x06, 0x35, 0x04, 0x06, 0x42, 0x04, 0x06, 0x31, 0x04, 0x06, 0x34, - 0x04, 0x06, 0x2A, 0x04, 0x06, 0x2B, 0x04, 0x06, 0x2E, 0x04, 0x06, 0x30, - 0x04, 0x06, 0x36, 0x04, 0x06, 0x38, 0x04, 0x06, 0x3A, 0x04, 0x06, 0x6E, - 0x04, 0x06, 0xBA, 0x04, 0x06, 0xA1, 0x04, 0x06, 0x6F, 0x04, 0x06, 0x28, - 0x04, 0x06, 0x2C, 0x04, 0x06, 0x47, 0x04, 0x06, 0x2D, 0x04, 0x06, 0x4A, - 0x04, 0x06, 0x43, 0x04, 0x06, 0x44, 0x04, 0x06, 0x45, 0x04, 0x06, 0x46, - 0x04, 0x06, 0x33, 0x04, 0x06, 0x39, 0x04, 0x06, 0x41, 0x04, 0x06, 0x35, - 0x04, 0x06, 0x42, 0x04, 0x06, 0x34, 0x04, 0x06, 0x2A, 0x04, 0x06, 0x2B, - 0x04, 0x06, 0x2E, 0x04, 0x06, 0x36, 0x04, 0x06, 0x3A, 0x04, 0x06, 0x2C, - 0x04, 0x06, 0x2D, 0x04, 0x06, 0x4A, 0x04, 0x06, 0x44, 0x04, 0x06, 0x46, - 0x04, 0x06, 0x33, 0x04, 0x06, 0x39, 0x04, 0x06, 0x35, 0x04, 0x06, 0x42, - 0x04, 0x06, 0x34, 0x04, 0x06, 0x2E, 0x04, 0x06, 0x36, 0x04, 0x06, 0x3A, - 0x04, 0x06, 0xBA, 0x04, 0x06, 0x6F, 0x04, 0x06, 0x28, 0x04, 0x06, 0x2C, - 0x04, 0x06, 0x47, 0x04, 0x06, 0x2D, 0x04, 0x06, 0x37, 0x04, 0x06, 0x4A, - 0x04, 0x06, 0x43, 0x04, 0x06, 0x45, 0x04, 0x06, 0x46, 0x04, 0x06, 0x33, - 0x04, 0x06, 0x39, 0x04, 0x06, 0x41, 0x04, 0x06, 0x35, 0x04, 0x06, 0x42, - 0x04, 0x06, 0x34, 0x04, 0x06, 0x2A, 0x04, 0x06, 0x2B, 0x04, 0x06, 0x2E, - 0x04, 0x06, 0x36, 0x04, 0x06, 0x38, 0x04, 0x06, 0x3A, 0x04, 0x06, 0x6E, - 0x04, 0x06, 0xA1, 0x04, 0x06, 0x27, 0x04, 0x06, 0x28, 0x04, 0x06, 0x2C, - 0x04, 0x06, 0x2F, 0x04, 0x06, 0x47, 0x04, 0x06, 0x48, 0x04, 0x06, 0x32, - 0x04, 0x06, 0x2D, 0x04, 0x06, 0x37, 0x04, 0x06, 0x4A, 0x04, 0x06, 0x44, - 0x04, 0x06, 0x45, 0x04, 0x06, 0x46, 0x04, 0x06, 0x33, 0x04, 0x06, 0x39, - 0x04, 0x06, 0x41, 0x04, 0x06, 0x35, 0x04, 0x06, 0x42, 0x04, 0x06, 0x31, - 0x04, 0x06, 0x34, 0x04, 0x06, 0x2A, 0x04, 0x06, 0x2B, 0x04, 0x06, 0x2E, - 0x04, 0x06, 0x30, 0x04, 0x06, 0x36, 0x04, 0x06, 0x38, 0x04, 0x06, 0x3A, - 0x04, 0x06, 0x28, 0x04, 0x06, 0x2C, 0x04, 0x06, 0x2F, 0x04, 0x06, 0x48, - 0x04, 0x06, 0x32, 0x04, 0x06, 0x2D, 0x04, 0x06, 0x37, 0x04, 0x06, 0x4A, - 0x04, 0x06, 0x44, 0x04, 0x06, 0x45, 0x04, 0x06, 0x46, 0x04, 0x06, 0x33, - 0x04, 0x06, 0x39, 0x04, 0x06, 0x41, 0x04, 0x06, 0x35, 0x04, 0x06, 0x42, - 0x04, 0x06, 0x31, 0x04, 0x06, 0x34, 0x04, 0x06, 0x2A, 0x04, 0x06, 0x2B, - 0x04, 0x06, 0x2E, 0x04, 0x06, 0x30, 0x04, 0x06, 0x36, 0x04, 0x06, 0x38, - 0x04, 0x06, 0x3A, 0xC0, 0x00, 0x30, 0x00, 0x00, 0x2E, 0xC0, 0x00, 0x30, - 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x31, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x32, - 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x33, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x34, - 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x35, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x36, - 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x37, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x38, - 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x39, 0x00, 0x00, 0x2C, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x41, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x42, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x43, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x44, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x45, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x46, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x47, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x48, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x49, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4A, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4B, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4C, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x4D, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4E, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x4F, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x50, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x51, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x52, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x53, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x54, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x55, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x56, - 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x57, 0x00, 0x00, 0x29, - 0xC0, 0x00, 0x28, 0x80, 0x00, 0x58, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, - 0x80, 0x00, 0x59, 0x00, 0x00, 0x29, 0xC0, 0x00, 0x28, 0x80, 0x00, 0x5A, - 0x00, 0x00, 0x29, 0xC0, 0x30, 0x14, 0x80, 0x00, 0x53, 0x00, 0x30, 0x15, - 0x1C, 0x00, 0x43, 0x1C, 0x00, 0x52, 0x9C, 0x00, 0x43, 0x00, 0x00, 0x44, - 0x9C, 0x00, 0x57, 0x00, 0x00, 0x5A, 0x38, 0x00, 0x41, 0x38, 0x00, 0x42, - 0x38, 0x00, 0x43, 0x38, 0x00, 0x44, 0x38, 0x00, 0x45, 0x38, 0x00, 0x46, - 0x38, 0x00, 0x47, 0x38, 0x00, 0x48, 0x38, 0x00, 0x49, 0x38, 0x00, 0x4A, - 0x38, 0x00, 0x4B, 0x38, 0x00, 0x4C, 0x38, 0x00, 0x4D, 0x38, 0x00, 0x4E, - 0x38, 0x00, 0x4F, 0x38, 0x00, 0x50, 0x38, 0x00, 0x51, 0x38, 0x00, 0x52, - 0x38, 0x00, 0x53, 0x38, 0x00, 0x54, 0x38, 0x00, 0x55, 0x38, 0x00, 0x56, - 0x38, 0x00, 0x57, 0x38, 0x00, 0x58, 0x38, 0x00, 0x59, 0x38, 0x00, 0x5A, - 0xB8, 0x00, 0x48, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x4D, 0x00, 0x00, 0x56, - 0xB8, 0x00, 0x53, 0x00, 0x00, 0x44, 0xB8, 0x00, 0x53, 0x00, 0x00, 0x53, - 0xB8, 0x00, 0x50, 0x80, 0x00, 0x50, 0x00, 0x00, 0x56, 0xB8, 0x00, 0x57, - 0x00, 0x00, 0x43, 0xA0, 0x00, 0x4D, 0x00, 0x00, 0x43, 0xA0, 0x00, 0x4D, - 0x00, 0x00, 0x44, 0xA0, 0x00, 0x4D, 0x00, 0x00, 0x52, 0xB8, 0x00, 0x44, - 0x00, 0x00, 0x4A, 0xB8, 0x30, 0x7B, 0x00, 0x30, 0x4B, 0xB8, 0x30, 0xB3, - 0x00, 0x30, 0xB3, 0x38, 0x30, 0xB5, 0x38, 0x62, 0x4B, 0x38, 0x5B, 0x57, - 0x38, 0x53, 0xCC, 0x38, 0x30, 0xC7, 0x38, 0x4E, 0x8C, 0x38, 0x59, 0x1A, - 0x38, 0x89, 0xE3, 0x38, 0x59, 0x29, 0x38, 0x4E, 0xA4, 0x38, 0x66, 0x20, - 0x38, 0x71, 0x21, 0x38, 0x65, 0x99, 0x38, 0x52, 0x4D, 0x38, 0x5F, 0x8C, - 0x38, 0x51, 0x8D, 0x38, 0x65, 0xB0, 0x38, 0x52, 0x1D, 0x38, 0x7D, 0x42, - 0x38, 0x75, 0x1F, 0x38, 0x8C, 0xA9, 0x38, 0x58, 0xF0, 0x38, 0x54, 0x39, - 0x38, 0x6F, 0x14, 0x38, 0x62, 0x95, 0x38, 0x63, 0x55, 0x38, 0x4E, 0x00, - 0x38, 0x4E, 0x09, 0x38, 0x90, 0x4A, 0x38, 0x5D, 0xE6, 0x38, 0x4E, 0x2D, - 0x38, 0x53, 0xF3, 0x38, 0x63, 0x07, 0x38, 0x8D, 0x70, 0x38, 0x62, 0x53, - 0x38, 0x79, 0x81, 0x38, 0x7A, 0x7A, 0x38, 0x54, 0x08, 0x38, 0x6E, 0x80, - 0x38, 0x67, 0x09, 0x38, 0x67, 0x08, 0x38, 0x75, 0x33, 0x38, 0x52, 0x72, - 0x38, 0x55, 0xB6, 0x38, 0x91, 0x4D, 0xC0, 0x30, 0x14, 0x80, 0x67, 0x2C, - 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x4E, 0x09, 0x00, 0x30, 0x15, - 0xC0, 0x30, 0x14, 0x80, 0x4E, 0x8C, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, - 0x80, 0x5B, 0x89, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x70, 0xB9, - 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x62, 0x53, 0x00, 0x30, 0x15, - 0xC0, 0x30, 0x14, 0x80, 0x76, 0xD7, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, - 0x80, 0x52, 0xDD, 0x00, 0x30, 0x15, 0xC0, 0x30, 0x14, 0x80, 0x65, 0x57, - 0x00, 0x30, 0x15, 0x1C, 0x5F, 0x97, 0x1C, 0x53, 0xEF, 0x04, 0x00, 0x30, - 0x04, 0x00, 0x31, 0x04, 0x00, 0x32, 0x04, 0x00, 0x33, 0x04, 0x00, 0x34, - 0x04, 0x00, 0x35, 0x04, 0x00, 0x36, 0x04, 0x00, 0x37, 0x04, 0x00, 0x38, - 0x04, 0x00, 0x39, 0x00, 0x4E, 0x3D, 0x00, 0x4E, 0x38, 0x00, 0x4E, 0x41, - 0x02, 0x01, 0x22, 0x00, 0x4F, 0x60, 0x00, 0x4F, 0xAE, 0x00, 0x4F, 0xBB, - 0x00, 0x50, 0x02, 0x00, 0x50, 0x7A, 0x00, 0x50, 0x99, 0x00, 0x50, 0xE7, - 0x00, 0x50, 0xCF, 0x00, 0x34, 0x9E, 0x02, 0x06, 0x3A, 0x00, 0x51, 0x4D, - 0x00, 0x51, 0x54, 0x00, 0x51, 0x64, 0x00, 0x51, 0x77, 0x02, 0x05, 0x1C, - 0x00, 0x34, 0xB9, 0x00, 0x51, 0x67, 0x00, 0x51, 0x8D, 0x02, 0x05, 0x4B, - 0x00, 0x51, 0x97, 0x00, 0x51, 0xA4, 0x00, 0x4E, 0xCC, 0x00, 0x51, 0xAC, - 0x00, 0x51, 0xB5, 0x02, 0x91, 0xDF, 0x00, 0x51, 0xF5, 0x00, 0x52, 0x03, - 0x00, 0x34, 0xDF, 0x00, 0x52, 0x3B, 0x00, 0x52, 0x46, 0x00, 0x52, 0x72, - 0x00, 0x52, 0x77, 0x00, 0x35, 0x15, 0x00, 0x52, 0xC7, 0x00, 0x52, 0xC9, - 0x00, 0x52, 0xE4, 0x00, 0x52, 0xFA, 0x00, 0x53, 0x05, 0x00, 0x53, 0x06, - 0x00, 0x53, 0x17, 0x00, 0x53, 0x49, 0x00, 0x53, 0x51, 0x00, 0x53, 0x5A, - 0x00, 0x53, 0x73, 0x00, 0x53, 0x7D, 0x00, 0x53, 0x7F, 0x00, 0x53, 0x7F, - 0x00, 0x53, 0x7F, 0x02, 0x0A, 0x2C, 0x00, 0x70, 0x70, 0x00, 0x53, 0xCA, - 0x00, 0x53, 0xDF, 0x02, 0x0B, 0x63, 0x00, 0x53, 0xEB, 0x00, 0x53, 0xF1, - 0x00, 0x54, 0x06, 0x00, 0x54, 0x9E, 0x00, 0x54, 0x38, 0x00, 0x54, 0x48, - 0x00, 0x54, 0x68, 0x00, 0x54, 0xA2, 0x00, 0x54, 0xF6, 0x00, 0x55, 0x10, - 0x00, 0x55, 0x53, 0x00, 0x55, 0x63, 0x00, 0x55, 0x84, 0x00, 0x55, 0x84, - 0x00, 0x55, 0x99, 0x00, 0x55, 0xAB, 0x00, 0x55, 0xB3, 0x00, 0x55, 0xC2, - 0x00, 0x57, 0x16, 0x00, 0x56, 0x06, 0x00, 0x57, 0x17, 0x00, 0x56, 0x51, - 0x00, 0x56, 0x74, 0x00, 0x52, 0x07, 0x00, 0x58, 0xEE, 0x00, 0x57, 0xCE, - 0x00, 0x57, 0xF4, 0x00, 0x58, 0x0D, 0x00, 0x57, 0x8B, 0x00, 0x58, 0x32, - 0x00, 0x58, 0x31, 0x00, 0x58, 0xAC, 0x02, 0x14, 0xE4, 0x00, 0x58, 0xF2, - 0x00, 0x58, 0xF7, 0x00, 0x59, 0x06, 0x00, 0x59, 0x1A, 0x00, 0x59, 0x22, - 0x00, 0x59, 0x62, 0x02, 0x16, 0xA8, 0x02, 0x16, 0xEA, 0x00, 0x59, 0xEC, - 0x00, 0x5A, 0x1B, 0x00, 0x5A, 0x27, 0x00, 0x59, 0xD8, 0x00, 0x5A, 0x66, - 0x00, 0x36, 0xEE, 0x00, 0x36, 0xFC, 0x00, 0x5B, 0x08, 0x00, 0x5B, 0x3E, - 0x00, 0x5B, 0x3E, 0x02, 0x19, 0xC8, 0x00, 0x5B, 0xC3, 0x00, 0x5B, 0xD8, - 0x00, 0x5B, 0xE7, 0x00, 0x5B, 0xF3, 0x02, 0x1B, 0x18, 0x00, 0x5B, 0xFF, - 0x00, 0x5C, 0x06, 0x00, 0x5F, 0x53, 0x00, 0x5C, 0x22, 0x00, 0x37, 0x81, - 0x00, 0x5C, 0x60, 0x00, 0x5C, 0x6E, 0x00, 0x5C, 0xC0, 0x00, 0x5C, 0x8D, - 0x02, 0x1D, 0xE4, 0x00, 0x5D, 0x43, 0x02, 0x1D, 0xE6, 0x00, 0x5D, 0x6E, - 0x00, 0x5D, 0x6B, 0x00, 0x5D, 0x7C, 0x00, 0x5D, 0xE1, 0x00, 0x5D, 0xE2, - 0x00, 0x38, 0x2F, 0x00, 0x5D, 0xFD, 0x00, 0x5E, 0x28, 0x00, 0x5E, 0x3D, - 0x00, 0x5E, 0x69, 0x00, 0x38, 0x62, 0x02, 0x21, 0x83, 0x00, 0x38, 0x7C, - 0x00, 0x5E, 0xB0, 0x00, 0x5E, 0xB3, 0x00, 0x5E, 0xB6, 0x00, 0x5E, 0xCA, - 0x02, 0xA3, 0x92, 0x00, 0x5E, 0xFE, 0x02, 0x23, 0x31, 0x02, 0x23, 0x31, - 0x00, 0x82, 0x01, 0x00, 0x5F, 0x22, 0x00, 0x5F, 0x22, 0x00, 0x38, 0xC7, - 0x02, 0x32, 0xB8, 0x02, 0x61, 0xDA, 0x00, 0x5F, 0x62, 0x00, 0x5F, 0x6B, - 0x00, 0x38, 0xE3, 0x00, 0x5F, 0x9A, 0x00, 0x5F, 0xCD, 0x00, 0x5F, 0xD7, - 0x00, 0x5F, 0xF9, 0x00, 0x60, 0x81, 0x00, 0x39, 0x3A, 0x00, 0x39, 0x1C, - 0x00, 0x60, 0x94, 0x02, 0x26, 0xD4, 0x00, 0x60, 0xC7, 0x00, 0x61, 0x48, - 0x00, 0x61, 0x4C, 0x00, 0x61, 0x4E, 0x00, 0x61, 0x4C, 0x00, 0x61, 0x7A, - 0x00, 0x61, 0x8E, 0x00, 0x61, 0xB2, 0x00, 0x61, 0xA4, 0x00, 0x61, 0xAF, - 0x00, 0x61, 0xDE, 0x00, 0x61, 0xF2, 0x00, 0x61, 0xF6, 0x00, 0x62, 0x10, - 0x00, 0x62, 0x1B, 0x00, 0x62, 0x5D, 0x00, 0x62, 0xB1, 0x00, 0x62, 0xD4, - 0x00, 0x63, 0x50, 0x02, 0x2B, 0x0C, 0x00, 0x63, 0x3D, 0x00, 0x62, 0xFC, - 0x00, 0x63, 0x68, 0x00, 0x63, 0x83, 0x00, 0x63, 0xE4, 0x02, 0x2B, 0xF1, - 0x00, 0x64, 0x22, 0x00, 0x63, 0xC5, 0x00, 0x63, 0xA9, 0x00, 0x3A, 0x2E, - 0x00, 0x64, 0x69, 0x00, 0x64, 0x7E, 0x00, 0x64, 0x9D, 0x00, 0x64, 0x77, - 0x00, 0x3A, 0x6C, 0x00, 0x65, 0x4F, 0x00, 0x65, 0x6C, 0x02, 0x30, 0x0A, - 0x00, 0x65, 0xE3, 0x00, 0x66, 0xF8, 0x00, 0x66, 0x49, 0x00, 0x3B, 0x19, - 0x00, 0x66, 0x91, 0x00, 0x3B, 0x08, 0x00, 0x3A, 0xE4, 0x00, 0x51, 0x92, - 0x00, 0x51, 0x95, 0x00, 0x67, 0x00, 0x00, 0x66, 0x9C, 0x00, 0x80, 0xAD, - 0x00, 0x43, 0xD9, 0x00, 0x67, 0x17, 0x00, 0x67, 0x1B, 0x00, 0x67, 0x21, - 0x00, 0x67, 0x5E, 0x00, 0x67, 0x53, 0x02, 0x33, 0xC3, 0x00, 0x3B, 0x49, - 0x00, 0x67, 0xFA, 0x00, 0x67, 0x85, 0x00, 0x68, 0x52, 0x00, 0x68, 0x85, - 0x02, 0x34, 0x6D, 0x00, 0x68, 0x8E, 0x00, 0x68, 0x1F, 0x00, 0x69, 0x14, - 0x00, 0x3B, 0x9D, 0x00, 0x69, 0x42, 0x00, 0x69, 0xA3, 0x00, 0x69, 0xEA, - 0x00, 0x6A, 0xA8, 0x02, 0x36, 0xA3, 0x00, 0x6A, 0xDB, 0x00, 0x3C, 0x18, - 0x00, 0x6B, 0x21, 0x02, 0x38, 0xA7, 0x00, 0x6B, 0x54, 0x00, 0x3C, 0x4E, - 0x00, 0x6B, 0x72, 0x00, 0x6B, 0x9F, 0x00, 0x6B, 0xBA, 0x00, 0x6B, 0xBB, - 0x02, 0x3A, 0x8D, 0x02, 0x1D, 0x0B, 0x02, 0x3A, 0xFA, 0x00, 0x6C, 0x4E, - 0x02, 0x3C, 0xBC, 0x00, 0x6C, 0xBF, 0x00, 0x6C, 0xCD, 0x00, 0x6C, 0x67, - 0x00, 0x6D, 0x16, 0x00, 0x6D, 0x3E, 0x00, 0x6D, 0x77, 0x00, 0x6D, 0x41, - 0x00, 0x6D, 0x69, 0x00, 0x6D, 0x78, 0x00, 0x6D, 0x85, 0x02, 0x3D, 0x1E, - 0x00, 0x6D, 0x34, 0x00, 0x6E, 0x2F, 0x00, 0x6E, 0x6E, 0x00, 0x3D, 0x33, - 0x00, 0x6E, 0xCB, 0x00, 0x6E, 0xC7, 0x02, 0x3E, 0xD1, 0x00, 0x6D, 0xF9, - 0x00, 0x6F, 0x6E, 0x02, 0x3F, 0x5E, 0x02, 0x3F, 0x8E, 0x00, 0x6F, 0xC6, - 0x00, 0x70, 0x39, 0x00, 0x70, 0x1E, 0x00, 0x70, 0x1B, 0x00, 0x3D, 0x96, - 0x00, 0x70, 0x4A, 0x00, 0x70, 0x7D, 0x00, 0x70, 0x77, 0x00, 0x70, 0xAD, - 0x02, 0x05, 0x25, 0x00, 0x71, 0x45, 0x02, 0x42, 0x63, 0x00, 0x71, 0x9C, - 0x02, 0x43, 0xAB, 0x00, 0x72, 0x28, 0x00, 0x72, 0x35, 0x00, 0x72, 0x50, - 0x02, 0x46, 0x08, 0x00, 0x72, 0x80, 0x00, 0x72, 0x95, 0x02, 0x47, 0x35, - 0x02, 0x48, 0x14, 0x00, 0x73, 0x7A, 0x00, 0x73, 0x8B, 0x00, 0x3E, 0xAC, - 0x00, 0x73, 0xA5, 0x00, 0x3E, 0xB8, 0x00, 0x3E, 0xB8, 0x00, 0x74, 0x47, - 0x00, 0x74, 0x5C, 0x00, 0x74, 0x71, 0x00, 0x74, 0x85, 0x00, 0x74, 0xCA, - 0x00, 0x3F, 0x1B, 0x00, 0x75, 0x24, 0x02, 0x4C, 0x36, 0x00, 0x75, 0x3E, - 0x02, 0x4C, 0x92, 0x00, 0x75, 0x70, 0x02, 0x21, 0x9F, 0x00, 0x76, 0x10, - 0x02, 0x4F, 0xA1, 0x02, 0x4F, 0xB8, 0x02, 0x50, 0x44, 0x00, 0x3F, 0xFC, - 0x00, 0x40, 0x08, 0x00, 0x76, 0xF4, 0x02, 0x50, 0xF3, 0x02, 0x50, 0xF2, - 0x02, 0x51, 0x19, 0x02, 0x51, 0x33, 0x00, 0x77, 0x1E, 0x00, 0x77, 0x1F, - 0x00, 0x77, 0x1F, 0x00, 0x77, 0x4A, 0x00, 0x40, 0x39, 0x00, 0x77, 0x8B, - 0x00, 0x40, 0x46, 0x00, 0x40, 0x96, 0x02, 0x54, 0x1D, 0x00, 0x78, 0x4E, - 0x00, 0x78, 0x8C, 0x00, 0x78, 0xCC, 0x00, 0x40, 0xE3, 0x02, 0x56, 0x26, - 0x00, 0x79, 0x56, 0x02, 0x56, 0x9A, 0x02, 0x56, 0xC5, 0x00, 0x79, 0x8F, - 0x00, 0x79, 0xEB, 0x00, 0x41, 0x2F, 0x00, 0x7A, 0x40, 0x00, 0x7A, 0x4A, - 0x00, 0x7A, 0x4F, 0x02, 0x59, 0x7C, 0x02, 0x5A, 0xA7, 0x02, 0x5A, 0xA7, - 0x00, 0x7A, 0xEE, 0x00, 0x42, 0x02, 0x02, 0x5B, 0xAB, 0x00, 0x7B, 0xC6, - 0x00, 0x7B, 0xC9, 0x00, 0x42, 0x27, 0x02, 0x5C, 0x80, 0x00, 0x7C, 0xD2, - 0x00, 0x42, 0xA0, 0x00, 0x7C, 0xE8, 0x00, 0x7C, 0xE3, 0x00, 0x7D, 0x00, - 0x02, 0x5F, 0x86, 0x00, 0x7D, 0x63, 0x00, 0x43, 0x01, 0x00, 0x7D, 0xC7, - 0x00, 0x7E, 0x02, 0x00, 0x7E, 0x45, 0x00, 0x43, 0x34, 0x02, 0x62, 0x28, - 0x02, 0x62, 0x47, 0x00, 0x43, 0x59, 0x02, 0x62, 0xD9, 0x00, 0x7F, 0x7A, - 0x02, 0x63, 0x3E, 0x00, 0x7F, 0x95, 0x00, 0x7F, 0xFA, 0x00, 0x80, 0x05, - 0x02, 0x64, 0xDA, 0x02, 0x65, 0x23, 0x00, 0x80, 0x60, 0x02, 0x65, 0xA8, - 0x00, 0x80, 0x70, 0x02, 0x33, 0x5F, 0x00, 0x43, 0xD5, 0x00, 0x80, 0xB2, - 0x00, 0x81, 0x03, 0x00, 0x44, 0x0B, 0x00, 0x81, 0x3E, 0x00, 0x5A, 0xB5, - 0x02, 0x67, 0xA7, 0x02, 0x67, 0xB5, 0x02, 0x33, 0x93, 0x02, 0x33, 0x9C, - 0x00, 0x82, 0x01, 0x00, 0x82, 0x04, 0x00, 0x8F, 0x9E, 0x00, 0x44, 0x6B, - 0x00, 0x82, 0x91, 0x00, 0x82, 0x8B, 0x00, 0x82, 0x9D, 0x00, 0x52, 0xB3, - 0x00, 0x82, 0xB1, 0x00, 0x82, 0xB3, 0x00, 0x82, 0xBD, 0x00, 0x82, 0xE6, - 0x02, 0x6B, 0x3C, 0x00, 0x82, 0xE5, 0x00, 0x83, 0x1D, 0x00, 0x83, 0x63, - 0x00, 0x83, 0xAD, 0x00, 0x83, 0x23, 0x00, 0x83, 0xBD, 0x00, 0x83, 0xE7, - 0x00, 0x84, 0x57, 0x00, 0x83, 0x53, 0x00, 0x83, 0xCA, 0x00, 0x83, 0xCC, - 0x00, 0x83, 0xDC, 0x02, 0x6C, 0x36, 0x02, 0x6D, 0x6B, 0x02, 0x6C, 0xD5, - 0x00, 0x45, 0x2B, 0x00, 0x84, 0xF1, 0x00, 0x84, 0xF3, 0x00, 0x85, 0x16, - 0x02, 0x73, 0xCA, 0x00, 0x85, 0x64, 0x02, 0x6F, 0x2C, 0x00, 0x45, 0x5D, - 0x00, 0x45, 0x61, 0x02, 0x6F, 0xB1, 0x02, 0x70, 0xD2, 0x00, 0x45, 0x6B, - 0x00, 0x86, 0x50, 0x00, 0x86, 0x5C, 0x00, 0x86, 0x67, 0x00, 0x86, 0x69, - 0x00, 0x86, 0xA9, 0x00, 0x86, 0x88, 0x00, 0x87, 0x0E, 0x00, 0x86, 0xE2, - 0x00, 0x87, 0x79, 0x00, 0x87, 0x28, 0x00, 0x87, 0x6B, 0x00, 0x87, 0x86, - 0x00, 0x45, 0xD7, 0x00, 0x87, 0xE1, 0x00, 0x88, 0x01, 0x00, 0x45, 0xF9, - 0x00, 0x88, 0x60, 0x00, 0x88, 0x63, 0x02, 0x76, 0x67, 0x00, 0x88, 0xD7, - 0x00, 0x88, 0xDE, 0x00, 0x46, 0x35, 0x00, 0x88, 0xFA, 0x00, 0x34, 0xBB, - 0x02, 0x78, 0xAE, 0x02, 0x79, 0x66, 0x00, 0x46, 0xBE, 0x00, 0x46, 0xC7, - 0x00, 0x8A, 0xA0, 0x00, 0x8A, 0xED, 0x00, 0x8B, 0x8A, 0x00, 0x8C, 0x55, - 0x02, 0x7C, 0xA8, 0x00, 0x8C, 0xAB, 0x00, 0x8C, 0xC1, 0x00, 0x8D, 0x1B, - 0x00, 0x8D, 0x77, 0x02, 0x7F, 0x2F, 0x02, 0x08, 0x04, 0x00, 0x8D, 0xCB, - 0x00, 0x8D, 0xBC, 0x00, 0x8D, 0xF0, 0x02, 0x08, 0xDE, 0x00, 0x8E, 0xD4, - 0x00, 0x8F, 0x38, 0x02, 0x85, 0xD2, 0x02, 0x85, 0xED, 0x00, 0x90, 0x94, - 0x00, 0x90, 0xF1, 0x00, 0x91, 0x11, 0x02, 0x87, 0x2E, 0x00, 0x91, 0x1B, - 0x00, 0x92, 0x38, 0x00, 0x92, 0xD7, 0x00, 0x92, 0xD8, 0x00, 0x92, 0x7C, - 0x00, 0x93, 0xF9, 0x00, 0x94, 0x15, 0x02, 0x8B, 0xFA, 0x00, 0x95, 0x8B, - 0x00, 0x49, 0x95, 0x00, 0x95, 0xB7, 0x02, 0x8D, 0x77, 0x00, 0x49, 0xE6, - 0x00, 0x96, 0xC3, 0x00, 0x5D, 0xB2, 0x00, 0x97, 0x23, 0x02, 0x91, 0x45, - 0x02, 0x92, 0x1A, 0x00, 0x4A, 0x6E, 0x00, 0x4A, 0x76, 0x00, 0x97, 0xE0, - 0x02, 0x94, 0x0A, 0x00, 0x4A, 0xB2, 0x02, 0x94, 0x96, 0x00, 0x98, 0x0B, - 0x00, 0x98, 0x0B, 0x00, 0x98, 0x29, 0x02, 0x95, 0xB6, 0x00, 0x98, 0xE2, - 0x00, 0x4B, 0x33, 0x00, 0x99, 0x29, 0x00, 0x99, 0xA7, 0x00, 0x99, 0xC2, - 0x00, 0x99, 0xFE, 0x00, 0x4B, 0xCE, 0x02, 0x9B, 0x30, 0x00, 0x9B, 0x12, - 0x00, 0x9C, 0x40, 0x00, 0x9C, 0xFD, 0x00, 0x4C, 0xCE, 0x00, 0x4C, 0xED, - 0x00, 0x9D, 0x67, 0x02, 0xA0, 0xCE, 0x00, 0x4C, 0xF8, 0x02, 0xA1, 0x05, - 0x02, 0xA2, 0x0E, 0x02, 0xA2, 0x91, 0x00, 0x9E, 0xBB, 0x00, 0x4D, 0x56, - 0x00, 0x9E, 0xF9, 0x00, 0x9E, 0xFE, 0x00, 0x9F, 0x05, 0x00, 0x9F, 0x0F, - 0x00, 0x9F, 0x16, 0x00, 0x9F, 0x3B, 0x02, 0xA6, 0x00 -}; - -const decomp_index_table_t gl_uninorm_decomp_index_table = -{ - { - 0, 32, 64, 96, 128, -1, 160, 192, - 224, 256, 288, 320, 352, -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, 384, 416, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 448, 480, - -1, 512, -1, -1, 544, 576, 608, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 640, -1, -1, 672, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 704, 736, 768, -1, -1, - 800, -1, -1, 832, 864, -1, 896, -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, 928 - }, - { - -1, -1, -1, -1, -1, 0, 32, 64, - 96, 128, 160, 192, -1, 224, 256, 288, - 320, 352, -1, -1, -1, 384, 416, 448, - -1, -1, 480, 512, 544, 576, 608, 640, - 672, 704, 736, 768, -1, -1, 800, 832, - -1, -1, -1, -1, 864, -1, -1, -1, - -1, 896, -1, 928, -1, -1, 960, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 992, 1024, -1, -1, -1, 1056, -1, - -1, 1088, 1120, -1, -1, -1, -1, -1, - -1, -1, 1152, -1, 1184, -1, 1216, -1, - -1, -1, 1248, -1, -1, -1, 1280, -1, - -1, -1, 1312, -1, -1, -1, 1344, -1, - -1, 1376, -1, -1, -1, 1408, 1440, -1, - 1472, -1, 1504, 1536, 1568, 1600, -1, -1, - -1, 1632, -1, -1, -1, -1, -1, 1664, - -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, - 1696, 1728, 1760, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1792, 1824, 1856, 1888, 1920, -1, -1, - 1952, 1984, 2016, 2048, 2080, 2112, 2144, 2176, - 2208, 2240, 2272, 2304, 2336, 2368, 2400, 2432, - 2464, 2496, 2528, 2560, 2592, 2624, -1, -1, - 2656, 2688, 2720, 2752, 2784, 2816, 2848, -1, - 2880, 2912, 2944, 2976, 3008, 3040, -1, 3072, - -1, 3104, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3136, 3168, 3200, 3232, 3264, - -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, - 3296, -1, -1, 3328, -1, -1, 3360, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3392, -1, -1, -1, -1, - -1, -1, -1, 3424, -1, -1, -1, -1, - -1, -1, -1, -1, 3456, -1, -1, 3488, - 3520, 3552, 3584, 3616, 3648, 3680, 3712, -1, - 3744, 3776, 3808, 3840, 3872, 3904, 3936, 3968, - -1, 4000, 4032, 4064, 4096, -1, -1, -1, - 4128, 4160, 4192, 4224, 4256, 4288, 4320, 4352, - 4384, 4416, 4448, 4480, 4512, 4544, 4576, 4608, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4640, -1, -1, -1, - -1, -1, -1, 4672, -1, -1, -1, 4704, - -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, 4736, 4768, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 4800, 4832, 4864, 4896, 4928, 4960, 4992, 5024, - 5056, 5088, 5120, 5152, 5184, 5216, 5248, -1, - 5280, 5312, 5344, 5376, 5408, 5440, 5472, 5504, - 5536, 5568, 5600, 5632, 5664, 5696, 5728, 5760, - 5792, 5824, 5856, 5888, 5920, 5952, 5984, 6016, - 6048, 6080, 6112, 6144, 6176, 6208, 6240, 6272, - 6304, 6336, 6368, 6400, 6432, 6464, 6496, 6528, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 6560, 6592, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6624, 6656, -1, -1, - -1, -1, -1, -1, 6688, 6720, -1, -1, - -1, 6752, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 6784, -1, 6816, -1, 6848, -1, - -1, -1, -1, -1, -1, 6880, -1, -1, - -1, -1, -1, -1, -1, 6912, -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, 6944, -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, 6976, -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, 7008, -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, 7040, 7072, - -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, 7104, 7136, -1, 7168, 7200, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 7232, 7264, 7296, 7328, 7360, 7392, 7424, 7456, - 7488, 7520, 7552, 7584, 7616, 7648, 7680, 7712, - 7744, 7776, 7808, 7840, 7872, 7904, 7936, 7968, - 8000, 8032, 8064, 8096, 8128, 8160, 8192, 8224, - -1, 8256, 8288, 8320, -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, - 8352, 8384, 8416, 8448, 8480, 8512, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 8544, 8576, 8608, 8640, 8672, -1, -1, -1, - 8704, 8736, 8768, -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, 8800, - 8832, 8864, 8896, 8928, 8960, 8992, 9024, 9056, - 9088, 9120, 9152, 9184, 9216, 9248, 9280, 9312, - 9344, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1 - }, - { - 32768, -1, -1, -1, -1, -1, -1, -1, - 32769, -1, 32771, -1, -1, -1, -1, 32772, - -1, -1, 32774, 32775, 32776, 32778, -1, -1, - 32779, 32781, 32782, -1, 32783, 32786, 32789, -1, - 24, 26, 28, 30, 32, 34, -1, 36, - 38, 40, 42, 44, 46, 48, 50, 52, - -1, 54, 56, 58, 60, 62, 64, -1, - -1, 66, 68, 70, 72, 74, -1, -1, - 76, 78, 80, 82, 84, 86, -1, 88, - 90, 92, 94, 96, 98, 100, 102, 104, - -1, 106, 108, 110, 112, 114, 116, -1, - -1, 118, 120, 122, 124, 126, -1, 128, - 130, 132, 134, 136, 138, 140, 142, 144, - 146, 148, 150, 152, 154, 156, 158, 160, - -1, -1, 162, 164, 166, 168, 170, 172, - 174, 176, 178, 180, 182, 184, 186, 188, - 190, 192, 194, 196, 198, 200, -1, -1, - 202, 204, 206, 208, 210, 212, 214, 216, - 218, -1, 32988, 32990, 224, 226, 228, 230, - -1, 232, 234, 236, 238, 240, 242, 33012, - 33014, -1, -1, 248, 250, 252, 254, 256, - 258, 33028, -1, -1, 262, 264, 266, 268, - 270, 272, -1, -1, 274, 276, 278, 280, - 282, 284, 286, 288, 290, 292, 294, 296, - 298, 300, 302, 304, 306, 308, -1, -1, - 310, 312, 314, 316, 318, 320, 322, 324, - 326, 328, 330, 332, 334, 336, 338, 340, - 342, 344, 346, 348, 350, 352, 354, 33124, - 357, 359, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 361, - 363, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33133, 33135, 33137, 33139, - 33141, 33143, 33145, 33147, 33149, 383, 385, 387, - 389, 391, 393, 395, 397, 399, 401, 403, - 405, 407, 409, 411, 413, -1, 415, 417, - 419, 421, 423, 425, -1, -1, 427, 429, - 431, 433, 435, 437, 439, 441, 443, 445, - 447, 33217, 33219, 33221, 455, 457, -1, -1, - 459, 461, 463, 465, 467, 469, 471, 473, - 475, 477, 479, 481, 483, 485, 487, 489, - 491, 493, 495, 497, 499, 501, 503, 505, - 507, 509, 511, 513, 515, 517, 519, 521, - 523, 525, 527, 529, -1, -1, 531, 533, - -1, -1, -1, -1, -1, -1, 535, 537, - 539, 541, 543, 545, 547, 549, 551, 553, - 555, 557, 559, 561, -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, - 33331, 33332, 33333, 33334, 33335, 33336, 33337, 33338, - 33339, -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, - 33340, 33342, 33344, 33346, 33348, 33350, -1, -1, - 33352, 33353, 33354, 33355, 33356, -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, - 589, 590, -1, 591, 592, -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, 594, -1, -1, -1, - -1, -1, 33363, -1, -1, -1, 597, -1, - -1, -1, -1, -1, 33366, 600, 602, 604, - 605, 607, 609, -1, 611, -1, 613, 615, - 617, -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, 619, 621, 623, 625, 627, 629, - 631, -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, 633, 635, 637, 639, 641, -1, - 33411, 33412, 33413, 646, 648, 33418, 33419, -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, - 33420, 33421, 33422, -1, 33423, 33424, -1, -1, - -1, 33425, -1, -1, -1, -1, -1, -1, - 658, 660, -1, 662, -1, -1, -1, 664, - -1, -1, -1, -1, 666, 668, 670, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 672, -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, 674, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 676, 678, -1, 680, -1, -1, -1, 682, - -1, -1, -1, -1, 684, 686, 688, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 690, 692, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 694, 696, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 698, 700, 702, 704, -1, -1, 706, 708, - -1, -1, 710, 712, 714, 716, 718, 720, - -1, -1, 722, 724, 726, 728, 730, 732, - -1, -1, 734, 736, 738, 740, 742, 744, - 746, 748, 750, 752, 754, 756, -1, -1, - 758, 760, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 33530, - -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, 764, 766, 768, 770, 772, -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, 33542, 33544, 33546, - 33548, -1, -1, -1, -1, -1, -1, -1, - 782, -1, 784, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 786, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 788, -1, -1, -1, -1, -1, -1, - -1, 790, -1, -1, 792, -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, - 794, 796, 798, 800, 802, 804, 806, 808, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 810, 812, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 814, 816, -1, 818, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 820, -1, -1, 822, -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, 824, 826, 828, -1, -1, 830, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 832, -1, -1, 834, 836, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 838, 840, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 842, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 844, 846, 848, -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, - 850, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 852, -1, -1, -1, -1, -1, -1, 854, - 856, -1, 858, 860, -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, 862, 864, 866, -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, 868, -1, 870, 872, 874, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33644, -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, 33646, -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, 33648, 33650, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33652, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 885, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 887, -1, -1, - -1, -1, 889, -1, -1, -1, -1, 891, - -1, -1, -1, -1, 893, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 895, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 897, -1, 899, 901, 33671, - 905, 33675, -1, -1, -1, -1, -1, -1, - -1, 909, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 911, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 913, -1, -1, - -1, -1, 915, -1, -1, -1, -1, 917, - -1, -1, -1, -1, 919, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 921, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 923, -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, 33693, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 926, -1, - 928, -1, 930, -1, 932, -1, 934, -1, - -1, -1, 936, -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, 938, -1, 940, -1, -1, - 942, 944, -1, 946, -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, 33716, 33717, 33718, -1, - 33719, 33720, 33721, 33722, 33723, 33724, 33725, 33726, - 33727, 33728, 33729, -1, 33730, 33731, 33732, 33733, - 33734, 33735, 33736, 33737, 33738, 33739, 33740, 33741, - 33742, 33743, 33744, 33745, 33746, 33747, -1, 33748, - 33749, 33750, 33751, 33752, 33753, 33754, 33755, 33756, - 33757, 33758, 33759, 33760, 33761, 33762, 33763, 33764, - 33765, 33766, 33767, 33768, 33769, 33770, 33771, 33772, - 33773, 33774, 33775, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 33776, -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, 33777, 33778, 33779, 33780, 33781, - 33782, 33783, 33784, 33785, 33786, 33787, 33788, 33789, - 33790, 33791, 33792, 33793, 33794, 33795, 33796, 33797, - 33798, 33799, 33800, 33801, 33802, 33803, 33804, 33805, - 33806, 33807, 33808, 33809, 33810, 33811, 33812, 33813, - 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, - 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1076, - 1078, 1080, 1082, 1084, 1086, 1088, 1090, 1092, - 1094, 1096, 1098, 1100, 1102, 1104, 1106, 1108, - 1110, 1112, 1114, 1116, 1118, 1120, 1122, 1124, - 1126, 1128, 1130, 1132, 1134, 1136, 1138, 1140, - 1142, 1144, 1146, 1148, 1150, 1152, 1154, 1156, - 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, - 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, - 1190, 1192, 1194, 1196, 1198, 1200, 1202, 1204, - 1206, 1208, 1210, 1212, 1214, 1216, 1218, 1220, - 1222, 1224, 1226, 1228, 1230, 1232, 1234, 1236, - 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, - 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, - 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1284, - 1286, 1288, 1290, 1292, 1294, 1296, 1298, 1300, - 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, - 1318, 1320, 1322, 1324, 1326, 1328, 1330, 1332, - 1334, 1336, 1338, 1340, 1342, 1344, 1346, 1348, - 1350, 1352, 34122, 1356, -1, -1, -1, -1, - 1358, 1360, 1362, 1364, 1366, 1368, 1370, 1372, - 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, - 1390, 1392, 1394, 1396, 1398, 1400, 1402, 1404, - 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, - 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436, - 1438, 1440, 1442, 1444, 1446, 1448, 1450, 1452, - 1454, 1456, 1458, 1460, 1462, 1464, 1466, 1468, - 1470, 1472, 1474, 1476, 1478, 1480, 1482, 1484, - 1486, 1488, 1490, 1492, 1494, 1496, 1498, 1500, - 1502, 1504, 1506, 1508, 1510, 1512, 1514, 1516, - 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, - 1534, 1536, -1, -1, -1, -1, -1, -1, - 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1552, - 1554, 1556, 1558, 1560, 1562, 1564, 1566, 1568, - 1570, 1572, 1574, 1576, 1578, 1580, -1, -1, - 1582, 1584, 1586, 1588, 1590, 1592, -1, -1, - 1594, 1596, 1598, 1600, 1602, 1604, 1606, 1608, - 1610, 1612, 1614, 1616, 1618, 1620, 1622, 1624, - 1626, 1628, 1630, 1632, 1634, 1636, 1638, 1640, - 1642, 1644, 1646, 1648, 1650, 1652, 1654, 1656, - 1658, 1660, 1662, 1664, 1666, 1668, -1, -1, - 1670, 1672, 1674, 1676, 1678, 1680, -1, -1, - 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, - -1, 1698, -1, 1700, -1, 1702, -1, 1704, - 1706, 1708, 1710, 1712, 1714, 1716, 1718, 1720, - 1722, 1724, 1726, 1728, 1730, 1732, 1734, 1736, - 1738, 1740, 1741, 1743, 1744, 1746, 1747, 1749, - 1750, 1752, 1753, 1755, 1756, 1758, -1, -1, - 1759, 1761, 1763, 1765, 1767, 1769, 1771, 1773, - 1775, 1777, 1779, 1781, 1783, 1785, 1787, 1789, - 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, - 1807, 1809, 1811, 1813, 1815, 1817, 1819, 1821, - 1823, 1825, 1827, 1829, 1831, 1833, 1835, 1837, - 1839, 1841, 1843, 1845, 1847, 1849, 1851, 1853, - 1855, 1857, 1859, 1861, 1863, -1, 1865, 1867, - 1869, 1871, 1873, 1875, 1876, 34646, 1880, 34649, - 34651, 1885, 1887, 1889, 1891, -1, 1893, 1895, - 1897, 1899, 1900, 1902, 1903, 1905, 1907, 1909, - 1911, 1913, 1915, 1917, -1, -1, 1918, 1920, - 1922, 1924, 1926, 1928, -1, 1929, 1931, 1933, - 1935, 1937, 1939, 1941, 1942, 1944, 1946, 1948, - 1950, 1952, 1954, 1956, 1957, 1959, 1961, 1962, - -1, -1, 1963, 1965, 1967, -1, 1969, 1971, - 1973, 1975, 1976, 1978, 1979, 1981, 34750, -1, - 1984, 1985, 34754, 34755, 34756, 34757, 34758, 34759, - 34760, 34761, 34762, -1, -1, -1, -1, -1, - -1, 34763, -1, -1, -1, -1, -1, 34764, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 34766, 34767, 34769, -1, - -1, -1, -1, -1, -1, -1, -1, 34772, - -1, -1, -1, 34773, 34775, -1, 34778, 34780, - -1, -1, -1, -1, 34783, -1, 34785, -1, - -1, -1, -1, -1, -1, -1, -1, 34787, - 34789, 34791, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 34793, - -1, -1, -1, -1, -1, -1, -1, 34797, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 34798, 34799, -1, -1, 34800, 34801, 34802, 34803, - 34804, 34805, 34806, 34807, 34808, 34809, 34810, 34811, - 34812, 34813, 34814, 34815, 34816, 34817, 34818, 34819, - 34820, 34821, 34822, 34823, 34824, 34825, 34826, -1, - 34827, 34828, 34829, 34830, 34831, 34832, 34833, 34834, - 34835, 34836, 34837, 34838, 34839, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 34840, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 34842, 34845, 34848, 34849, -1, 34851, 34854, 34857, - -1, 34858, 34860, 34861, 34862, 34863, 34864, 34865, - 34866, 34867, 34868, 34869, -1, 34870, 34871, -1, - -1, 34873, 34874, 34875, 34876, 34877, -1, -1, - 34878, 34880, 34883, -1, 34885, -1, 2118, -1, - 34887, -1, 2120, 2121, 34890, 34891, -1, 34892, - 34893, 34894, -1, 34895, 34896, 34897, 34898, 34899, - 34900, 34901, -1, 34902, 34905, 34906, 34907, 34908, - 34909, -1, -1, -1, -1, 34910, 34911, 34912, - 34913, 34914, -1, -1, -1, -1, -1, -1, - 34915, 34918, 34921, 34925, 34928, 34931, 34934, 34937, - 34940, 34943, 34946, 34949, 34952, 34955, 34958, 34961, - 34963, 34964, 34966, 34969, 34971, 34972, 34974, 34977, - 34981, 34983, 34984, 34986, 34989, 34990, 34991, 34992, - 34993, 34994, 34996, 34999, 35001, 35002, 35004, 35007, - 35011, 35013, 35014, 35016, 35019, 35020, 35021, 35022, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 35023, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2258, 2260, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2262, -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, 2264, 2266, 2268, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2270, -1, -1, -1, - -1, 2272, -1, -1, 2274, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2276, -1, 2278, -1, - -1, -1, -1, -1, 35048, 35050, -1, 35053, - 35055, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2290, -1, -1, 2292, -1, -1, 2294, - -1, 2296, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2298, -1, 2300, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2302, 2304, 2306, - 2308, 2310, -1, -1, 2312, 2314, -1, -1, - 2316, 2318, -1, -1, -1, -1, -1, -1, - 2320, 2322, -1, -1, 2324, 2326, -1, -1, - 2328, 2330, -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, 2332, 2334, 2336, 2338, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2340, 2342, 2344, 2346, -1, -1, -1, -1, - -1, -1, 2348, 2350, 2352, 2354, -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, 2356, 2357, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 35126, 35127, 35128, 35129, 35130, 35131, 35132, 35133, - 35134, 35135, 35137, 35139, 35141, 35143, 35145, 35147, - 35149, 35151, 35153, 35155, 35157, 35160, 35163, 35166, - 35169, 35172, 35175, 35178, 35181, 35184, 35188, 35192, - 35196, 35200, 35204, 35208, 35212, 35216, 35220, 35224, - 35228, 35230, 35232, 35234, 35236, 35238, 35240, 35242, - 35244, 35246, 35249, 35252, 35255, 35258, 35261, 35264, - 35267, 35270, 35273, 35276, 35279, 35282, 35285, 35288, - 35291, 35294, 35297, 35300, 35303, 35306, 35309, 35312, - 35315, 35318, 35321, 35324, 35327, 35330, 35333, 35336, - 35339, 35342, 35345, 35348, 35351, 35354, 35357, 35358, - 35359, 35360, 35361, 35362, 35363, 35364, 35365, 35366, - 35367, 35368, 35369, 35370, 35371, 35372, 35373, 35374, - 35375, 35376, 35377, 35378, 35379, 35380, 35381, 35382, - 35383, 35384, 35385, 35386, 35387, 35388, 35389, 35390, - 35391, 35392, 35393, 35394, 35395, 35396, 35397, 35398, - 35399, 35400, 35401, 35402, 35403, 35404, 35405, 35406, - 35407, 35408, 35409, -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, 35410, -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, 35414, 35417, 35419, -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, 2654, -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, 35424, 35425, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 35426, - -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, 35427, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 35428, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 35429, 35430, 35431, 35432, 35433, 35434, 35435, 35436, - 35437, 35438, 35439, 35440, 35441, 35442, 35443, 35444, - 35445, 35446, 35447, 35448, 35449, 35450, 35451, 35452, - 35453, 35454, 35455, 35456, 35457, 35458, 35459, 35460, - 35461, 35462, 35463, 35464, 35465, 35466, 35467, 35468, - 35469, 35470, 35471, 35472, 35473, 35474, 35475, 35476, - 35477, 35478, 35479, 35480, 35481, 35482, 35483, 35484, - 35485, 35486, 35487, 35488, 35489, 35490, 35491, 35492, - 35493, 35494, 35495, 35496, 35497, 35498, 35499, 35500, - 35501, 35502, 35503, 35504, 35505, 35506, 35507, 35508, - 35509, 35510, 35511, 35512, 35513, 35514, 35515, 35516, - 35517, 35518, 35519, 35520, 35521, 35522, 35523, 35524, - 35525, 35526, 35527, 35528, 35529, 35530, 35531, 35532, - 35533, 35534, 35535, 35536, 35537, 35538, 35539, 35540, - 35541, 35542, 35543, 35544, 35545, 35546, 35547, 35548, - 35549, 35550, 35551, 35552, 35553, 35554, 35555, 35556, - 35557, 35558, 35559, 35560, 35561, 35562, 35563, 35564, - 35565, 35566, 35567, 35568, 35569, 35570, 35571, 35572, - 35573, 35574, 35575, 35576, 35577, 35578, 35579, 35580, - 35581, 35582, 35583, 35584, 35585, 35586, 35587, 35588, - 35589, 35590, 35591, 35592, 35593, 35594, 35595, 35596, - 35597, 35598, 35599, 35600, 35601, 35602, 35603, 35604, - 35605, 35606, 35607, 35608, 35609, 35610, 35611, 35612, - 35613, 35614, 35615, 35616, 35617, 35618, 35619, 35620, - 35621, 35622, 35623, 35624, 35625, 35626, 35627, 35628, - 35629, 35630, 35631, 35632, 35633, 35634, 35635, 35636, - 35637, 35638, 35639, 35640, 35641, 35642, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 35643, -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, 35644, -1, - 35645, 35646, 35647, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2880, -1, 2882, -1, - 2884, -1, 2886, -1, 2888, -1, 2890, -1, - 2892, -1, 2894, -1, 2896, -1, 2898, -1, - 2900, -1, 2902, -1, -1, 2904, -1, 2906, - -1, 2908, -1, -1, -1, -1, -1, -1, - 2910, 2912, -1, 2914, 2916, -1, 2918, 2920, - -1, 2922, 2924, -1, 2926, 2928, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2930, -1, -1, -1, - -1, -1, -1, 35700, 35702, -1, 2936, 35706, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2940, -1, 2942, -1, - 2944, -1, 2946, -1, 2948, -1, 2950, -1, - 2952, -1, 2954, -1, 2956, -1, 2958, -1, - 2960, -1, 2962, -1, -1, 2964, -1, 2966, - -1, 2968, -1, -1, -1, -1, -1, -1, - 2970, 2972, -1, 2974, 2976, -1, 2978, 2980, - -1, 2982, 2984, -1, 2986, 2988, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2990, -1, -1, 2992, - 2994, 2996, 2998, -1, -1, -1, 3000, 35770, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 35772, 35773, 35774, 35775, 35776, 35777, 35778, - 35779, 35780, 35781, 35782, 35783, 35784, 35785, 35786, - 35787, 35788, 35789, 35790, 35791, 35792, 35793, 35794, - 35795, 35796, 35797, 35798, 35799, 35800, 35801, 35802, - 35803, 35804, 35805, 35806, 35807, 35808, 35809, 35810, - 35811, 35812, 35813, 35814, 35815, 35816, 35817, 35818, - 35819, 35820, 35821, 35822, 35823, 35824, 35825, 35826, - 35827, 35828, 35829, 35830, 35831, 35832, 35833, 35834, - 35835, 35836, 35837, 35838, 35839, 35840, 35841, 35842, - 35843, 35844, 35845, 35846, 35847, 35848, 35849, 35850, - 35851, 35852, 35853, 35854, 35855, 35856, 35857, 35858, - 35859, 35860, 35861, 35862, 35863, 35864, 35865, -1, - -1, -1, 35866, 35867, 35868, 35869, 35870, 35871, - 35872, 35873, 35874, 35875, 35876, 35877, 35878, 35879, - 35880, 35883, 35886, 35889, 35892, 35895, 35898, 35901, - 35904, 35907, 35910, 35913, 35916, 35919, 35922, 35926, - 35930, 35934, 35938, 35942, 35946, 35950, 35954, 35958, - 35962, 35966, 35970, 35974, 35978, 35982, 35989, -1, - 35995, 35998, 36001, 36004, 36007, 36010, 36013, 36016, - 36019, 36022, 36025, 36028, 36031, 36034, 36037, 36040, - 36043, 36046, 36049, 36052, 36055, 36058, 36061, 36064, - 36067, 36070, 36073, 36076, 36079, 36082, 36085, 36088, - 36091, 36094, 36097, 36100, 36103, 36104, 36105, 36106, - -1, -1, -1, -1, -1, -1, -1, -1, - 36107, 36110, 36112, 36114, 36116, 36118, 36120, 36122, - 36124, 36126, 36128, 36130, 36132, 36134, 36136, 36138, - 36140, 36141, 36142, 36143, 36144, 36145, 36146, 36147, - 36148, 36149, 36150, 36151, 36152, 36153, 36154, 36156, - 36158, 36160, 36162, 36164, 36166, 36168, 36170, 36172, - 36174, 36176, 36178, 36180, 36182, 36187, 36191, -1, - 36193, 36194, 36195, 36196, 36197, 36198, 36199, 36200, - 36201, 36202, 36203, 36204, 36205, 36206, 36207, 36208, - 36209, 36210, 36211, 36212, 36213, 36214, 36215, 36216, - 36217, 36218, 36219, 36220, 36221, 36222, 36223, 36224, - 36225, 36226, 36227, 36228, 36229, 36230, 36231, 36232, - 36233, 36234, 36235, 36236, 36237, 36238, 36239, 36240, - 36241, 36242, 36244, 36246, 36248, 36250, 36252, 36254, - 36256, 36258, 36260, 36262, 36264, 36266, 36268, 36270, - 36272, 36274, 36276, 36278, 36280, 36282, 36284, 36286, - 36288, 36290, 36293, 36296, 36299, 36301, 36304, 36306, - 36309, 36310, 36311, 36312, 36313, 36314, 36315, 36316, - 36317, 36318, 36319, 36320, 36321, 36322, 36323, 36324, - 36325, 36326, 36327, 36328, 36329, 36330, 36331, 36332, - 36333, 36334, 36335, 36336, 36337, 36338, 36339, 36340, - 36341, 36342, 36343, 36344, 36345, 36346, 36347, 36348, - 36349, 36350, 36351, 36352, 36353, 36354, 36355, 36356, - 36358, 36362, 36366, 36370, 36373, 36377, 36380, 36383, - 36388, 36392, 36395, 36398, 36401, 36405, 36409, 36412, - 36415, 36417, 36420, 36424, 36428, 36430, 36435, 36441, - 36446, 36449, 36454, 36459, 36463, 36466, 36469, 36472, - 36476, 36481, 36485, 36488, 36491, 36494, 36496, 36498, - 36500, 36502, 36505, 36508, 36513, 36516, 36520, 36525, - 36528, 36530, 36532, 36537, 36541, 36546, 36549, 36554, - 36556, 36559, 36562, 36565, 36568, 36571, 36575, 36578, - 36580, 36583, 36586, 36589, 36593, 36596, 36599, 36602, - 36607, 36611, 36613, 36618, 36620, 36624, 36628, 36631, - 36634, 36637, 36641, 36643, 36646, 36650, 36652, 36657, - 36660, 36662, 36664, 36666, 36668, 36670, 36672, 36674, - 36676, 36678, 36680, 36683, 36686, 36689, 36692, 36695, - 36698, 36701, 36704, 36707, 36710, 36713, 36716, 36719, - 36722, 36725, 36728, 36730, 36732, 36735, 36737, 36739, - 36741, 36744, 36747, 36749, 36751, 36753, 36755, 36757, - 36761, 36763, 36765, 36767, 36769, 36771, 36773, 36775, - 36777, 36780, 36784, 36786, 36788, 36790, 36792, 36794, - 36796, 36798, 36801, 36804, 36807, 36810, 36812, 36814, - 36816, 36818, 36820, 36822, 36824, 36826, 36828, 36830, - 36833, 36836, 36838, 36841, 36844, 36847, 36849, 36852, - 36855, 36859, 36861, 36864, 36867, 36870, 36873, 36878, - 36884, 36886, 36888, 36890, 36892, 36894, 36896, 36898, - 36900, 36902, 36904, 36906, 36908, 36910, 36912, 36914, - 36916, 36918, 36920, 36924, 36926, 36928, 36930, 36934, - 36937, 36939, 36941, 36943, 36945, 36947, 36949, 36951, - 36953, 36955, 36957, 36960, 36962, 36964, 36967, 36970, - 36972, 36976, 36979, 36981, 36983, 36985, 36987, 36990, - 36993, 36995, 36997, 36999, 37001, 37003, 37005, 37007, - 37009, 37011, 37014, 37017, 37020, 37023, 37026, 37029, - 37032, 37035, 37038, 37041, 37044, 37047, 37050, 37053, - 37056, 37059, 37062, 37065, 37068, 37071, 37074, 37077, - -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, 37080, 37081, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 37082, -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, 37083, 37084, 37085, -1, -1, -1, - 37086, 37087, -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, 37088, 37089, 37090, 37091, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37092, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, - 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, - 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, - 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, - 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, - 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, - 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, - 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, - 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, - 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, - 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, - 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, - 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, - 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, - 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, - 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, - 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, - 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, - 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, - 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, - 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, - 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, - 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, - 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, - 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, - 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, - 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, - 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, - 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, - 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, - 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, - 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, - 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, - 4589, 4590, 4591, 4592, 4593, 4594, -1, -1, - 4595, -1, 4596, -1, -1, 4597, 4598, 4599, - 4600, 4601, 4602, 4603, 4604, 4605, 4606, -1, - 4607, -1, 4608, -1, -1, 4609, 4610, -1, - -1, -1, 4611, 4612, 4613, 4614, 4615, 4616, - 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, - 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, - 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, - 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, - 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, - 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, - 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, - 4673, 4674, 4675, 4676, 4677, 4678, -1, -1, - 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, - 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, - 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, - 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, - 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, - 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, - 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, - 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, - 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, - 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, - 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, - 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, - 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, - 4783, 4784, -1, -1, -1, -1, -1, -1, - 37553, 37555, 37557, 37559, 37562, 37565, 37567, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37569, 37571, 37573, 37575, 37577, - -1, -1, -1, -1, -1, 4811, -1, 4813, - 37583, 37584, 37585, 37586, 37587, 37588, 37589, 37590, - 37591, 37592, 4825, 4827, 4829, 4831, 4833, 4835, - 4837, 4839, 4841, 4843, 4845, 4847, 4849, -1, - 4851, 4853, 4855, 4857, 4859, -1, 4861, -1, - 4863, 4865, -1, 4867, 4869, -1, 4871, 4873, - 4875, 4877, 4879, 4881, 4883, 4885, 4887, 37657, - 37659, 37660, 37661, 37662, 37663, 37664, 37665, 37666, - 37667, 37668, 37669, 37670, 37671, 37672, 37673, 37674, - 37675, 37676, 37677, 37678, 37679, 37680, 37681, 37682, - 37683, 37684, 37685, 37686, 37687, 37688, 37689, 37690, - 37691, 37692, 37693, 37694, 37695, 37696, 37697, 37698, - 37699, 37700, 37701, 37702, 37703, 37704, 37705, 37706, - 37707, 37708, 37709, 37710, 37711, 37712, 37713, 37714, - 37715, 37716, 37717, 37718, 37719, 37720, 37721, 37722, - 37723, 37724, 37725, 37726, 37727, 37728, 37729, 37730, - 37731, 37732, 37733, 37734, 37735, 37736, 37737, 37738, - 37739, 37740, 37741, 37742, 37743, 37744, 37745, 37746, - 37747, 37748, 37749, 37750, 37751, 37752, 37753, 37754, - 37755, 37756, -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, 37757, 37758, 37759, 37760, 37761, - 37762, 37763, 37764, 37765, 37766, 37767, 37768, 37769, - 37770, 37771, 37772, 37773, 37774, 37775, 37776, 37777, - 37778, 37779, 37780, 37782, 37784, 37786, 37788, 37790, - 37792, 37794, 37796, 37798, 37800, 37802, 37804, 37806, - 37808, 37810, 37812, 37814, 37816, 37817, 37818, 37819, - 37820, 37822, 37824, 37826, 37828, 37830, 37832, 37834, - 37836, 37838, 37840, 37842, 37844, 37846, 37848, 37850, - 37852, 37854, 37856, 37858, 37860, 37862, 37864, 37866, - 37868, 37870, 37872, 37874, 37876, 37878, 37880, 37882, - 37884, 37886, 37888, 37890, 37892, 37894, 37896, 37898, - 37900, 37902, 37904, 37906, 37908, 37910, 37912, 37914, - 37916, 37918, 37920, 37922, 37924, 37926, 37928, 37930, - 37932, 37934, 37936, 37938, 37940, 37942, 37944, 37946, - 37948, 37950, 37952, 37954, 37956, 37958, 37960, 37962, - 37964, 37966, 37968, 37970, 37972, 37974, 37976, 37978, - 37980, 37982, 37984, 37986, 37988, 37990, 37992, 37994, - 37996, 37998, 38000, 38002, 38004, 38006, 38008, 38011, - 38014, 38017, 38020, 38023, 38026, 38028, 38030, 38032, - 38034, 38036, 38038, 38040, 38042, 38044, 38046, 38048, - 38050, 38052, 38054, 38056, 38058, 38060, 38062, 38064, - 38066, 38068, 38070, 38072, 38074, 38076, 38078, 38080, - 38082, 38084, 38086, 38088, 38090, 38092, 38094, 38096, - 38098, 38100, 38102, 38104, 38106, 38108, 38110, 38112, - 38114, 38116, 38118, 38120, 38122, 38124, 38126, 38128, - 38130, 38132, 38134, 38136, 38138, 38140, 38142, 38144, - 38146, 38148, 38150, 38152, 38154, 38156, 38158, 38160, - 38162, 38164, 38166, 38168, 38170, 38172, 38174, 38176, - 38178, 38180, 38182, 38184, 38186, 38188, 38190, 38192, - 38194, 38196, 38198, 38200, 38202, 38204, 38206, 38208, - 38210, 38212, 38214, 38216, 38218, 38220, 38222, 38224, - 38226, 38228, 38230, 38232, 38234, 38236, 38238, 38240, - 38242, 38244, 38246, 38248, 38250, 38252, 38254, 38256, - 38258, 38260, 38262, 38264, 38266, 38268, 38270, 38272, - 38274, 38276, 38278, 38280, 38282, 38284, 38286, 38288, - 38290, 38292, 38294, 38296, 38298, 38300, 38302, 38304, - 38306, 38308, 38310, 38313, 38316, 38319, 38321, 38323, - 38325, 38327, 38329, 38331, 38333, 38335, 38337, 38339, - 38341, 38343, 38345, 38347, 38349, 38351, 38353, 38355, - 38357, 38359, 38361, 38363, 38365, 38367, 38369, 38371, - 38373, 38375, 38377, 38379, 38381, 38383, 38385, 38387, - 38389, 38391, 38393, 38395, 38397, 38399, 38401, 38403, - 38405, 38407, 38409, 38411, 38413, 38415, 38417, 38419, - 38421, 38423, 38425, 38427, 38429, 38431, 38433, 38435, - 38437, 38439, 38441, 38443, 38445, 38447, 38449, 38451, - 38453, 38455, 38457, 38459, 38461, 38463, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 38465, 38468, 38471, 38474, 38477, 38480, 38483, 38486, - 38489, 38492, 38495, 38498, 38501, 38504, 38507, 38510, - 38513, 38516, 38519, 38522, 38525, 38528, 38531, 38534, - 38537, 38540, 38543, 38546, 38549, 38552, 38555, 38558, - 38561, 38564, 38567, 38570, 38573, 38576, 38579, 38582, - 38585, 38588, 38591, 38594, 38597, 38600, 38603, 38606, - 38609, 38612, 38615, 38618, 38621, 38624, 38627, 38630, - 38633, 38636, 38639, 38642, 38645, 38648, 38651, 38654, - -1, -1, 38657, 38660, 38663, 38666, 38669, 38672, - 38675, 38678, 38681, 38684, 38687, 38690, 38693, 38696, - 38699, 38702, 38705, 38708, 38711, 38714, 38717, 38720, - 38723, 38726, 38729, 38732, 38735, 38738, 38741, 38744, - 38747, 38750, 38753, 38756, 38759, 38762, 38765, 38768, - 38771, 38774, 38777, 38780, 38783, 38786, 38789, 38792, - 38795, 38798, 38801, 38804, 38807, 38810, 38813, 38816, - -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, - 38819, 38822, 38825, 38829, 38833, 38837, 38841, 38845, - 38849, 38853, 38856, 38874, 38882, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 38886, 38887, 38888, 38889, 38890, 38891, 38892, 38893, - 38894, 38895, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 38896, 38897, 38898, 38899, 38900, 38901, 38902, 38903, - 38904, 38905, 38906, 38907, 38908, 38909, 38910, 38911, - 38912, 38913, 38914, 38915, 38916, -1, -1, 38917, - 38918, 38919, 38920, 38921, 38922, 38923, 38924, 38925, - 38926, 38927, 38928, -1, 38929, 38930, 38931, 38932, - 38933, 38934, 38935, 38936, 38937, 38938, 38939, 38940, - 38941, 38942, 38943, 38944, 38945, 38946, 38947, -1, - 38948, 38949, 38950, 38951, -1, -1, -1, -1, - 38952, 38954, 38956, -1, 38958, -1, 38960, 38962, - 38964, 38966, 38968, 38970, 38972, 38974, 38976, 38978, - 38980, 38981, 38982, 38983, 38984, 38985, 38986, 38987, - 38988, 38989, 38990, 38991, 38992, 38993, 38994, 38995, - 38996, 38997, 38998, 38999, 39000, 39001, 39002, 39003, - 39004, 39005, 39006, 39007, 39008, 39009, 39010, 39011, - 39012, 39013, 39014, 39015, 39016, 39017, 39018, 39019, - 39020, 39021, 39022, 39023, 39024, 39025, 39026, 39027, - 39028, 39029, 39030, 39031, 39032, 39033, 39034, 39035, - 39036, 39037, 39038, 39039, 39040, 39041, 39042, 39043, - 39044, 39045, 39046, 39047, 39048, 39049, 39050, 39051, - 39052, 39053, 39054, 39055, 39056, 39057, 39058, 39059, - 39060, 39061, 39062, 39063, 39064, 39065, 39066, 39067, - 39068, 39069, 39070, 39071, 39072, 39073, 39074, 39075, - 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083, - 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091, - 39092, 39093, 39094, 39095, 39096, 39097, 39099, 39101, - 39103, 39105, 39107, 39109, 39111, -1, -1, -1, - -1, 39113, 39114, 39115, 39116, 39117, 39118, 39119, - 39120, 39121, 39122, 39123, 39124, 39125, 39126, 39127, - 39128, 39129, 39130, 39131, 39132, 39133, 39134, 39135, - 39136, 39137, 39138, 39139, 39140, 39141, 39142, 39143, - 39144, 39145, 39146, 39147, 39148, 39149, 39150, 39151, - 39152, 39153, 39154, 39155, 39156, 39157, 39158, 39159, - 39160, 39161, 39162, 39163, 39164, 39165, 39166, 39167, - 39168, 39169, 39170, 39171, 39172, 39173, 39174, 39175, - 39176, 39177, 39178, 39179, 39180, 39181, 39182, 39183, - 39184, 39185, 39186, 39187, 39188, 39189, 39190, 39191, - 39192, 39193, 39194, 39195, 39196, 39197, 39198, 39199, - 39200, 39201, 39202, 39203, 39204, 39205, 39206, 39207, - 39208, 39209, 39210, 39211, 39212, 39213, 39214, 39215, - 39216, 39217, 39218, 39219, 39220, 39221, 39222, 39223, - 39224, 39225, 39226, 39227, 39228, 39229, 39230, 39231, - 39232, 39233, 39234, 39235, 39236, 39237, 39238, 39239, - 39240, 39241, 39242, 39243, 39244, 39245, 39246, 39247, - 39248, 39249, 39250, 39251, 39252, 39253, 39254, 39255, - 39256, 39257, 39258, 39259, 39260, 39261, 39262, 39263, - 39264, 39265, 39266, 39267, 39268, 39269, 39270, 39271, - 39272, 39273, 39274, 39275, 39276, 39277, 39278, 39279, - 39280, 39281, 39282, 39283, 39284, 39285, 39286, 39287, - 39288, 39289, 39290, 39291, 39292, 39293, 39294, 39295, - 39296, 39297, 39298, 39299, 39300, 39301, 39302, -1, - -1, -1, 39303, 39304, 39305, 39306, 39307, 39308, - -1, -1, 39309, 39310, 39311, 39312, 39313, 39314, - -1, -1, 39315, 39316, 39317, 39318, 39319, 39320, - -1, -1, 39321, 39322, 39323, -1, -1, -1, - 39324, 39325, 39326, 39327, 39328, 39329, 39330, -1, - 39331, 39332, 39333, 39334, 39335, 39336, 39337, -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, 6570, -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, 6572, -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, 39342, 39343, 39344, 39345, 39346, -1, 39347, - 39348, 39349, 39350, 39351, 39352, 39353, 39354, 39355, - 39356, 39357, 39358, 39359, 39360, 39361, 39362, 39363, - 39364, 39365, 39366, 39367, 39368, 39369, 39370, 39371, - 39372, 39373, 39374, 39375, 39376, 39377, 39378, 39379, - 39380, 39381, 39382, 39383, 39384, 39385, 39386, 39387, - 39388, -1, 39389, 39390, 39391, 39392, 39393, 39394, - 39395, 39396, 39397, -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, 6630, -1, 6632, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 6634, -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, 6636, 6638, - -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, 6640, 6642, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 6644, -1, 6646, -1, -1, - -1, -1, -1, -1, -1, -1, 6648, -1, - -1, 6650, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 6652, -1, 6654, - 6656, -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, 6658, 6660, -1, 6662, -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, 6664, 6666, -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, - 6668, -1, -1, -1, -1, -1, -1, -1, - -1, 6670, 6672, 6674, 6676, 6678, 6680, 6682, - 6684, -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, - 6686, 6688, 6690, -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, 39460, 39461, - 39462, 39463, 39464, 39465, 39466, 39467, 39468, 39469, - 39470, 39471, 39472, 39473, 39474, 39475, 39476, 39477, - 39478, 39479, 39480, 39481, 39482, 39483, 39484, 39485, - 39486, 39487, 39488, 39489, 39490, 39491, 39492, 39493, - 39494, 39495, -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, 6728, 6730, - 6732, 6734, 6736, 6738, 6740, -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, 6742, 6744, 6746, 6748, 6750, - 6752, -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, - 39522, 39523, 39524, 39525, 39526, 39527, 39528, 39529, - 39530, 39531, 39532, 39533, 39534, 39535, 39536, 39537, - 39538, 39539, 39540, 39541, 39542, 39543, 39544, 39545, - 39546, 39547, 39548, 39549, 39550, 39551, 39552, 39553, - 39554, 39555, 39556, 39557, 39558, 39559, 39560, 39561, - 39562, 39563, 39564, 39565, 39566, 39567, 39568, 39569, - 39570, 39571, 39572, 39573, 39574, 39575, 39576, 39577, - 39578, 39579, 39580, 39581, 39582, 39583, 39584, 39585, - 39586, 39587, 39588, 39589, 39590, 39591, 39592, 39593, - 39594, 39595, 39596, 39597, 39598, 39599, 39600, 39601, - 39602, 39603, 39604, 39605, 39606, -1, 39607, 39608, - 39609, 39610, 39611, 39612, 39613, 39614, 39615, 39616, - 39617, 39618, 39619, 39620, 39621, 39622, 39623, 39624, - 39625, 39626, 39627, 39628, 39629, 39630, 39631, 39632, - 39633, 39634, 39635, 39636, 39637, 39638, 39639, 39640, - 39641, 39642, 39643, 39644, 39645, 39646, 39647, 39648, - 39649, 39650, 39651, 39652, 39653, 39654, 39655, 39656, - 39657, 39658, 39659, 39660, 39661, 39662, 39663, 39664, - 39665, 39666, 39667, 39668, 39669, 39670, 39671, 39672, - 39673, 39674, 39675, 39676, 39677, -1, 39678, 39679, - -1, -1, 39680, -1, -1, 39681, 39682, -1, - -1, 39683, 39684, 39685, 39686, -1, 39687, 39688, - 39689, 39690, 39691, 39692, 39693, 39694, 39695, 39696, - 39697, 39698, -1, 39699, -1, 39700, 39701, 39702, - 39703, 39704, 39705, 39706, -1, 39707, 39708, 39709, - 39710, 39711, 39712, 39713, 39714, 39715, 39716, 39717, - 39718, 39719, 39720, 39721, 39722, 39723, 39724, 39725, - 39726, 39727, 39728, 39729, 39730, 39731, 39732, 39733, - 39734, 39735, 39736, 39737, 39738, 39739, 39740, 39741, - 39742, 39743, 39744, 39745, 39746, 39747, 39748, 39749, - 39750, 39751, 39752, 39753, 39754, 39755, 39756, 39757, - 39758, 39759, 39760, 39761, 39762, 39763, 39764, 39765, - 39766, 39767, 39768, 39769, 39770, 39771, -1, 39772, - 39773, 39774, 39775, -1, -1, 39776, 39777, 39778, - 39779, 39780, 39781, 39782, 39783, -1, 39784, 39785, - 39786, 39787, 39788, 39789, 39790, -1, 39791, 39792, - 39793, 39794, 39795, 39796, 39797, 39798, 39799, 39800, - 39801, 39802, 39803, 39804, 39805, 39806, 39807, 39808, - 39809, 39810, 39811, 39812, 39813, 39814, 39815, 39816, - 39817, 39818, -1, 39819, 39820, 39821, 39822, -1, - 39823, 39824, 39825, 39826, 39827, -1, 39828, -1, - -1, -1, 39829, 39830, 39831, 39832, 39833, 39834, - 39835, -1, 39836, 39837, 39838, 39839, 39840, 39841, - 39842, 39843, 39844, 39845, 39846, 39847, 39848, 39849, - 39850, 39851, 39852, 39853, 39854, 39855, 39856, 39857, - 39858, 39859, 39860, 39861, 39862, 39863, 39864, 39865, - 39866, 39867, 39868, 39869, 39870, 39871, 39872, 39873, - 39874, 39875, 39876, 39877, 39878, 39879, 39880, 39881, - 39882, 39883, 39884, 39885, 39886, 39887, 39888, 39889, - 39890, 39891, 39892, 39893, 39894, 39895, 39896, 39897, - 39898, 39899, 39900, 39901, 39902, 39903, 39904, 39905, - 39906, 39907, 39908, 39909, 39910, 39911, 39912, 39913, - 39914, 39915, 39916, 39917, 39918, 39919, 39920, 39921, - 39922, 39923, 39924, 39925, 39926, 39927, 39928, 39929, - 39930, 39931, 39932, 39933, 39934, 39935, 39936, 39937, - 39938, 39939, 39940, 39941, 39942, 39943, 39944, 39945, - 39946, 39947, 39948, 39949, 39950, 39951, 39952, 39953, - 39954, 39955, 39956, 39957, 39958, 39959, 39960, 39961, - 39962, 39963, 39964, 39965, 39966, 39967, 39968, 39969, - 39970, 39971, 39972, 39973, 39974, 39975, 39976, 39977, - 39978, 39979, 39980, 39981, 39982, 39983, 39984, 39985, - 39986, 39987, 39988, 39989, 39990, 39991, 39992, 39993, - 39994, 39995, 39996, 39997, 39998, 39999, 40000, 40001, - 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, - 40010, 40011, 40012, 40013, 40014, 40015, 40016, 40017, - 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, - 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, - 40034, 40035, 40036, 40037, 40038, 40039, 40040, 40041, - 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, - 40050, 40051, 40052, 40053, 40054, 40055, 40056, 40057, - 40058, 40059, 40060, 40061, 40062, 40063, 40064, 40065, - 40066, 40067, 40068, 40069, 40070, 40071, 40072, 40073, - 40074, 40075, 40076, 40077, 40078, 40079, 40080, 40081, - 40082, 40083, 40084, 40085, 40086, 40087, 40088, 40089, - 40090, 40091, 40092, 40093, 40094, 40095, 40096, 40097, - 40098, 40099, 40100, 40101, 40102, 40103, 40104, 40105, - 40106, 40107, 40108, 40109, 40110, 40111, 40112, 40113, - 40114, 40115, 40116, 40117, 40118, 40119, 40120, 40121, - 40122, 40123, 40124, 40125, 40126, 40127, 40128, 40129, - 40130, 40131, 40132, 40133, 40134, 40135, 40136, 40137, - 40138, 40139, 40140, 40141, 40142, 40143, 40144, 40145, - 40146, 40147, 40148, 40149, 40150, 40151, 40152, 40153, - 40154, 40155, 40156, 40157, 40158, 40159, 40160, 40161, - 40162, 40163, 40164, 40165, 40166, 40167, 40168, 40169, - 40170, 40171, 40172, 40173, 40174, 40175, -1, -1, - 40176, 40177, 40178, 40179, 40180, 40181, 40182, 40183, - 40184, 40185, 40186, 40187, 40188, 40189, 40190, 40191, - 40192, 40193, 40194, 40195, 40196, 40197, 40198, 40199, - 40200, 40201, 40202, 40203, 40204, 40205, 40206, 40207, - 40208, 40209, 40210, 40211, 40212, 40213, 40214, 40215, - 40216, 40217, 40218, 40219, 40220, 40221, 40222, 40223, - 40224, 40225, 40226, 40227, 40228, 40229, 40230, 40231, - 40232, 40233, 40234, 40235, 40236, 40237, 40238, 40239, - 40240, 40241, 40242, 40243, 40244, 40245, 40246, 40247, - 40248, 40249, 40250, 40251, 40252, 40253, 40254, 40255, - 40256, 40257, 40258, 40259, 40260, 40261, 40262, 40263, - 40264, 40265, 40266, 40267, 40268, 40269, 40270, 40271, - 40272, 40273, 40274, 40275, 40276, 40277, 40278, 40279, - 40280, 40281, 40282, 40283, 40284, 40285, 40286, 40287, - 40288, 40289, 40290, 40291, 40292, 40293, 40294, 40295, - 40296, 40297, 40298, 40299, 40300, 40301, 40302, 40303, - 40304, 40305, 40306, 40307, 40308, 40309, 40310, 40311, - 40312, 40313, 40314, 40315, 40316, 40317, 40318, 40319, - 40320, 40321, 40322, 40323, 40324, 40325, 40326, 40327, - 40328, 40329, 40330, 40331, 40332, 40333, 40334, 40335, - 40336, 40337, 40338, 40339, 40340, 40341, 40342, 40343, - 40344, 40345, 40346, 40347, 40348, 40349, 40350, 40351, - 40352, 40353, 40354, 40355, 40356, 40357, 40358, 40359, - 40360, 40361, 40362, 40363, 40364, 40365, 40366, 40367, - 40368, 40369, 40370, 40371, 40372, 40373, 40374, 40375, - 40376, 40377, 40378, 40379, 40380, 40381, 40382, 40383, - 40384, 40385, 40386, 40387, 40388, 40389, 40390, 40391, - 40392, 40393, 40394, 40395, 40396, 40397, 40398, 40399, - 40400, 40401, 40402, 40403, 40404, 40405, 40406, 40407, - 40408, 40409, 40410, 40411, 40412, 40413, 40414, 40415, - 40416, 40417, 40418, 40419, 40420, 40421, 40422, 40423, - 40424, 40425, 40426, 40427, 40428, 40429, 40430, 40431, - 40432, 40433, 40434, 40435, 40436, 40437, 40438, 40439, - 40440, 40441, 40442, 40443, 40444, 40445, 40446, 40447, - 40448, 40449, 40450, 40451, 40452, 40453, 40454, 40455, - 40456, 40457, 40458, 40459, 40460, 40461, 40462, 40463, - 40464, 40465, 40466, 40467, -1, -1, 40468, 40469, - 40470, 40471, 40472, 40473, 40474, 40475, 40476, 40477, - 40478, 40479, 40480, 40481, 40482, 40483, 40484, 40485, - 40486, 40487, 40488, 40489, 40490, 40491, 40492, 40493, - 40494, 40495, 40496, 40497, 40498, 40499, 40500, 40501, - 40502, 40503, 40504, 40505, 40506, 40507, 40508, 40509, - 40510, 40511, 40512, 40513, 40514, 40515, 40516, 40517, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 40518, 40519, 40520, 40521, 40522, 40523, 40524, 40525, - 40526, 40527, 40528, 40529, 40530, 40531, 40532, 40533, - 40534, 40535, 40536, 40537, 40538, 40539, 40540, 40541, - 40542, 40543, 40544, 40545, 40546, 40547, 40548, 40549, - 40550, 40551, 40552, 40553, 40554, 40555, 40556, 40557, - 40558, 40559, 40560, 40561, 40562, 40563, 40564, 40565, - 40566, 40567, 40568, 40569, 40570, 40571, 40572, 40573, - 40574, 40575, 40576, 40577, 40578, 40579, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 40580, 40581, 40582, 40583, -1, 40584, 40585, 40586, - 40587, 40588, 40589, 40590, 40591, 40592, 40593, 40594, - 40595, 40596, 40597, 40598, 40599, 40600, 40601, 40602, - 40603, 40604, 40605, 40606, 40607, 40608, 40609, 40610, - -1, 40611, 40612, -1, 40613, -1, -1, 40614, - -1, 40615, 40616, 40617, 40618, 40619, 40620, 40621, - 40622, 40623, 40624, -1, 40625, 40626, 40627, 40628, - -1, 40629, -1, 40630, -1, -1, -1, -1, - -1, -1, 40631, -1, -1, -1, -1, 40632, - -1, 40633, -1, 40634, -1, 40635, 40636, 40637, - -1, 40638, 40639, -1, 40640, -1, -1, 40641, - -1, 40642, -1, 40643, -1, 40644, -1, 40645, - -1, 40646, 40647, -1, 40648, -1, -1, 40649, - 40650, 40651, 40652, -1, 40653, 40654, 40655, 40656, - 40657, 40658, 40659, -1, 40660, 40661, 40662, 40663, - -1, 40664, 40665, 40666, 40667, -1, 40668, -1, - 40669, 40670, 40671, 40672, 40673, 40674, 40675, 40676, - 40677, 40678, -1, 40679, 40680, 40681, 40682, 40683, - 40684, 40685, 40686, 40687, 40688, 40689, 40690, 40691, - 40692, 40693, 40694, 40695, -1, -1, -1, -1, - -1, 40696, 40697, 40698, -1, 40699, 40700, 40701, - 40702, 40703, -1, 40704, 40705, 40706, 40707, 40708, - 40709, 40710, 40711, 40712, 40713, 40714, 40715, 40716, - 40717, 40718, 40719, 40720, -1, -1, -1, -1, - 40721, 40723, 40725, 40727, 40729, 40731, 40733, 40735, - 40737, 40739, 40741, -1, -1, -1, -1, -1, - 40743, 40746, 40749, 40752, 40755, 40758, 40761, 40764, - 40767, 40770, 40773, 40776, 40779, 40782, 40785, 40788, - 40791, 40794, 40797, 40800, 40803, 40806, 40809, 40812, - 40815, 40818, 40821, 40824, 40825, 40826, 40828, -1, - 40830, 40831, 40832, 40833, 40834, 40835, 40836, 40837, - 40838, 40839, 40840, 40841, 40842, 40843, 40844, 40845, - 40846, 40847, 40848, 40849, 40850, 40851, 40852, 40853, - 40854, 40855, 40856, 40858, 40860, 40862, 40864, 40867, - -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, 40869, 40871, 40873, -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, - 40875, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 40877, 40879, 40881, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 40882, 40883, 40884, 40885, 40886, 40887, 40888, 40889, - 40890, 40891, 40892, 40893, 40894, 40895, 40896, 40897, - 40898, 40899, 40900, 40901, 40902, 40903, 40904, 40905, - 40906, 40907, 40908, 40909, 40910, 40911, 40912, 40913, - 40914, 40915, 40916, 40917, 40918, 40919, 40920, 40921, - 40922, 40923, 40924, 40925, -1, -1, -1, -1, - 40926, 40929, 40932, 40935, 40938, 40941, 40944, 40947, - 40950, -1, -1, -1, -1, -1, -1, -1, - 40953, 40954, -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, - 40955, 40956, 40957, 40958, 40959, 40960, 40961, 40962, - 40963, 40964, -1, -1, -1, -1, -1, -1, - 8197, 8198, 8199, 8200, 8201, 8202, 8203, 8204, - 8205, 8206, 8207, 8208, 8209, 8210, 8211, 8212, - 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8220, - 8221, 8222, 8223, 8224, 8225, 8226, 8227, 8228, - 8229, 8230, 8231, 8232, 8233, 8234, 8235, 8236, - 8237, 8238, 8239, 8240, 8241, 8242, 8243, 8244, - 8245, 8246, 8247, 8248, 8249, 8250, 8251, 8252, - 8253, 8254, 8255, 8256, 8257, 8258, 8259, 8260, - 8261, 8262, 8263, 8264, 8265, 8266, 8267, 8268, - 8269, 8270, 8271, 8272, 8273, 8274, 8275, 8276, - 8277, 8278, 8279, 8280, 8281, 8282, 8283, 8284, - 8285, 8286, 8287, 8288, 8289, 8290, 8291, 8292, - 8293, 8294, 8295, 8296, 8297, 8298, 8299, 8300, - 8301, 8302, 8303, 8304, 8305, 8306, 8307, 8308, - 8309, 8310, 8311, 8312, 8313, 8314, 8315, 8316, - 8317, 8318, 8319, 8320, 8321, 8322, 8323, 8324, - 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, - 8333, 8334, 8335, 8336, 8337, 8338, 8339, 8340, - 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, - 8349, 8350, 8351, 8352, 8353, 8354, 8355, 8356, - 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, - 8365, 8366, 8367, 8368, 8369, 8370, 8371, 8372, - 8373, 8374, 8375, 8376, 8377, 8378, 8379, 8380, - 8381, 8382, 8383, 8384, 8385, 8386, 8387, 8388, - 8389, 8390, 8391, 8392, 8393, 8394, 8395, 8396, - 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, - 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, - 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, - 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, - 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, - 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, - 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, - 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, - 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, - 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, - 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, - 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, - 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, - 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, - 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, - 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, - 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, - 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, - 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, - 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, - 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, - 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, - 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, - 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, - 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, - 8597, 8598, 8599, 8600, 8601, 8602, 8603, 8604, - 8605, 8606, 8607, 8608, 8609, 8610, 8611, 8612, - 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, - 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, - 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, - 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, - 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, - 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, - 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, - 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, - 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, - 8685, 8686, 8687, 8688, 8689, 8690, 8691, 8692, - 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, - 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, - 8709, 8710, 8711, 8712, 8713, 8714, 8715, 8716, - 8717, 8718, 8719, 8720, 8721, 8722, 8723, 8724, - 8725, 8726, 8727, 8728, 8729, 8730, 8731, 8732, - 8733, 8734, 8735, 8736, 8737, 8738, -1, -1 - } -}; diff --git a/include/libgnulib/uninorm/normalize-internal.h b/include/libgnulib/uninorm/normalize-internal.h deleted file mode 100755 index a53d2dd..0000000 --- a/include/libgnulib/uninorm/normalize-internal.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Normalization of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - -#include "unitypes.h" - -/* Complete definition of normalization form descriptor. */ -struct unicode_normalization_form -{ - /* Bit mask containing meta-information. - This must be the first field. */ - unsigned int description; - #define NF_IS_COMPAT_DECOMPOSING (1 << 0) - #define NF_IS_COMPOSING (1 << 1) - /* Function that decomposes a Unicode character. */ - int (*decomposer) (ucs4_t uc, ucs4_t *decomposition); - /* Function that combines two Unicode characters, a starter and another - character. */ - ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2); - /* Decomposing variant. */ - const struct unicode_normalization_form *decomposing_variant; -}; diff --git a/include/libgnulib/uninorm/u-normalize-internal.h b/include/libgnulib/uninorm/u-normalize-internal.h deleted file mode 100755 index 9f5e0b0..0000000 --- a/include/libgnulib/uninorm/u-normalize-internal.h +++ /dev/null @@ -1,380 +0,0 @@ -/* Decomposition and composition of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - -UNIT * -FUNC (uninorm_t nf, const UNIT *s, size_t n, - UNIT *resultbuf, size_t *lengthp) -{ - int (*decomposer) (ucs4_t uc, ucs4_t *decomposition) = nf->decomposer; - ucs4_t (*composer) (ucs4_t uc1, ucs4_t uc2) = nf->composer; - - /* The result being accumulated. */ - UNIT *result; - size_t length; - size_t allocated; - /* The buffer for sorting. */ - #define SORTBUF_PREALLOCATED 64 - struct ucs4_with_ccc sortbuf_preallocated[2 * SORTBUF_PREALLOCATED]; - struct ucs4_with_ccc *sortbuf; /* array of size 2 * sortbuf_allocated */ - size_t sortbuf_allocated; - size_t sortbuf_count; - - /* Initialize the accumulator. */ - if (resultbuf == NULL) - { - result = NULL; - allocated = 0; - } - else - { - result = resultbuf; - allocated = *lengthp; - } - length = 0; - - /* Initialize the buffer for sorting. */ - sortbuf = sortbuf_preallocated; - sortbuf_allocated = SORTBUF_PREALLOCATED; - sortbuf_count = 0; - - { - const UNIT *s_end = s + n; - - for (;;) - { - int count; - ucs4_t decomposed[UC_DECOMPOSITION_MAX_LENGTH]; - int decomposed_count; - int i; - - if (s < s_end) - { - /* Fetch the next character. */ - count = U_MBTOUC_UNSAFE (&decomposed[0], s, s_end - s); - decomposed_count = 1; - - /* Decompose it, recursively. - It would be possible to precompute the recursive decomposition - and store it in a table. But this would significantly increase - the size of the decomposition tables, because for example for - U+1FC1 the recursive canonical decomposition and the recursive - compatibility decomposition are different. */ - { - int curr; - - for (curr = 0; curr < decomposed_count; ) - { - /* Invariant: decomposed[0..curr-1] is fully decomposed, i.e. - all elements are atomic. */ - ucs4_t curr_decomposed[UC_DECOMPOSITION_MAX_LENGTH]; - int curr_decomposed_count; - - curr_decomposed_count = decomposer (decomposed[curr], curr_decomposed); - if (curr_decomposed_count >= 0) - { - /* Move curr_decomposed[0..curr_decomposed_count-1] over - decomposed[curr], making room. It's not worth using - memcpy() here, since the counts are so small. */ - int shift = curr_decomposed_count - 1; - - if (shift < 0) - abort (); - if (shift > 0) - { - int j; - - decomposed_count += shift; - if (decomposed_count > UC_DECOMPOSITION_MAX_LENGTH) - abort (); - for (j = decomposed_count - 1 - shift; j > curr; j--) - decomposed[j + shift] = decomposed[j]; - } - for (; shift >= 0; shift--) - decomposed[curr + shift] = curr_decomposed[shift]; - } - else - { - /* decomposed[curr] is atomic. */ - curr++; - } - } - } - } - else - { - count = 0; - decomposed_count = 0; - } - - i = 0; - for (;;) - { - ucs4_t uc; - int ccc; - - if (s < s_end) - { - /* Fetch the next character from the decomposition. */ - if (i == decomposed_count) - break; - uc = decomposed[i]; - ccc = uc_combining_class (uc); - } - else - { - /* End of string reached. */ - uc = 0; - ccc = 0; - } - - if (ccc == 0) - { - size_t j; - - /* Apply the canonical ordering algorithm to the accumulated - sequence of characters. */ - if (sortbuf_count > 1) - gl_uninorm_decompose_merge_sort_inplace (sortbuf, sortbuf_count, - sortbuf + sortbuf_count); - - if (composer != NULL) - { - /* Attempt to combine decomposed characters, as specified - in the Unicode Standard Annex #15 "Unicode Normalization - Forms". We need to check - 1. whether the first accumulated character is a - "starter" (i.e. has ccc = 0). This is usually the - case. But when the string starts with a - non-starter, the sortbuf also starts with a - non-starter. Btw, this check could also be - omitted, because the composition table has only - entries (code1, code2) for which code1 is a - starter; if the first accumulated character is not - a starter, no lookup will succeed. - 2. If the sortbuf has more than one character, check - for each of these characters that are not "blocked" - from the starter (i.e. have a ccc that is higher - than the ccc of the previous character) whether it - can be combined with the first character. - 3. If only one character is left in sortbuf, check - whether it can be combined with the next character - (also a starter). */ - if (sortbuf_count > 0 && sortbuf[0].ccc == 0) - { - for (j = 1; j < sortbuf_count; ) - { - if (sortbuf[j].ccc > sortbuf[j - 1].ccc) - { - ucs4_t combined = - composer (sortbuf[0].code, sortbuf[j].code); - if (combined) - { - size_t k; - - sortbuf[0].code = combined; - /* sortbuf[0].ccc = 0, still valid. */ - for (k = j + 1; k < sortbuf_count; k++) - sortbuf[k - 1] = sortbuf[k]; - sortbuf_count--; - continue; - } - } - j++; - } - if (s < s_end && sortbuf_count == 1) - { - ucs4_t combined = - composer (sortbuf[0].code, uc); - if (combined) - { - uc = combined; - ccc = 0; - /* uc could be further combined with subsequent - characters. So don't put it into sortbuf[0] in - this round, only in the next round. */ - sortbuf_count = 0; - } - } - } - } - - for (j = 0; j < sortbuf_count; j++) - { - ucs4_t muc = sortbuf[j].code; - - /* Append muc to the result accumulator. */ - if (length < allocated) - { - int ret = - U_UCTOMB (result + length, muc, allocated - length); - if (ret == -1) - { - errno = EINVAL; - goto fail; - } - if (ret >= 0) - { - length += ret; - goto done_appending; - } - } - { - size_t old_allocated = allocated; - size_t new_allocated = 2 * old_allocated; - if (new_allocated < 64) - new_allocated = 64; - if (new_allocated < old_allocated) /* integer overflow? */ - abort (); - { - UNIT *larger_result; - if (result == NULL) - { - larger_result = - (UNIT *) malloc (new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail; - } - } - else if (result == resultbuf) - { - larger_result = - (UNIT *) malloc (new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail; - } - U_CPY (larger_result, resultbuf, length); - } - else - { - larger_result = - (UNIT *) realloc (result, new_allocated * sizeof (UNIT)); - if (larger_result == NULL) - { - errno = ENOMEM; - goto fail; - } - } - result = larger_result; - allocated = new_allocated; - { - int ret = - U_UCTOMB (result + length, muc, allocated - length); - if (ret == -1) - { - errno = EINVAL; - goto fail; - } - if (ret < 0) - abort (); - length += ret; - goto done_appending; - } - } - } - done_appending: ; - } - - /* sortbuf is now empty. */ - sortbuf_count = 0; - } - - if (!(s < s_end)) - /* End of string reached. */ - break; - - /* Append (uc, ccc) to sortbuf. */ - if (sortbuf_count == sortbuf_allocated) - { - struct ucs4_with_ccc *new_sortbuf; - - sortbuf_allocated = 2 * sortbuf_allocated; - if (sortbuf_allocated < sortbuf_count) /* integer overflow? */ - abort (); - new_sortbuf = - (struct ucs4_with_ccc *) malloc (2 * sortbuf_allocated * sizeof (struct ucs4_with_ccc)); - if (new_sortbuf == NULL) - { - errno = ENOMEM; - goto fail; - } - memcpy (new_sortbuf, sortbuf, - sortbuf_count * sizeof (struct ucs4_with_ccc)); - if (sortbuf != sortbuf_preallocated) - free (sortbuf); - sortbuf = new_sortbuf; - } - sortbuf[sortbuf_count].code = uc; - sortbuf[sortbuf_count].ccc = ccc; - sortbuf_count++; - - i++; - } - - if (!(s < s_end)) - /* End of string reached. */ - break; - - s += count; - } - } - - if (length == 0) - { - if (result == NULL) - { - /* Return a non-NULL value. NULL means error. */ - result = (UNIT *) malloc (1); - if (result == NULL) - { - errno = ENOMEM; - goto fail; - } - } - } - else if (result != resultbuf && length < allocated) - { - /* Shrink the allocated memory if possible. */ - UNIT *memory; - - memory = (UNIT *) realloc (result, length * sizeof (UNIT)); - if (memory != NULL) - result = memory; - } - - if (sortbuf_count > 0) - abort (); - if (sortbuf != sortbuf_preallocated) - free (sortbuf); - - *lengthp = length; - return result; - - fail: - { - int saved_errno = errno; - if (sortbuf != sortbuf_preallocated) - free (sortbuf); - if (result != resultbuf) - free (result); - errno = saved_errno; - } - return NULL; -} diff --git a/include/libgnulib/uninorm/u-normcmp.h b/include/libgnulib/uninorm/u-normcmp.h deleted file mode 100755 index f846d51..0000000 --- a/include/libgnulib/uninorm/u-normcmp.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Normalization insensitive comparison of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2, - uninorm_t nf, int *resultp) -{ - UNIT buf1[2048 / sizeof (UNIT)]; - UNIT buf2[2048 / sizeof (UNIT)]; - UNIT *norms1; - size_t norms1_length; - UNIT *norms2; - size_t norms2_length; - int cmp; - - /* Normalize S1. */ - norms1_length = sizeof (buf1) / sizeof (UNIT); - norms1 = U_NORMALIZE (nf, s1, n1, buf1, &norms1_length); - if (norms1 == NULL) - /* errno is set here. */ - return -1; - - /* Normalize S2. */ - norms2_length = sizeof (buf2) / sizeof (UNIT); - norms2 = U_NORMALIZE (nf, s2, n2, buf2, &norms2_length); - if (norms2 == NULL) - { - if (norms1 != buf1) - { - int saved_errno = errno; - free (norms1); - errno = saved_errno; - } - return -1; - } - - /* Compare the normalized strings. */ - cmp = U_CMP2 (norms1, norms1_length, norms2, norms2_length); - if (cmp > 0) - cmp = 1; - else if (cmp < 0) - cmp = -1; - - if (norms2 != buf2) - free (norms2); - if (norms1 != buf1) - free (norms1); - *resultp = cmp; - return 0; -} diff --git a/include/libgnulib/uninorm/u-normcoll.h b/include/libgnulib/uninorm/u-normcoll.h deleted file mode 100755 index 7543e48..0000000 --- a/include/libgnulib/uninorm/u-normcoll.h +++ /dev/null @@ -1,73 +0,0 @@ -/* Locale dependent, normalization insensitive comparison of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2, - uninorm_t nf, int *resultp) -{ - char buf1[2048]; - char buf2[2048]; - char *transformed1; - size_t transformed1_length; - char *transformed2; - size_t transformed2_length; - int cmp; - - /* Normalize and transform S1. */ - transformed1_length = sizeof (buf1); - transformed1 = U_NORMXFRM (s1, n1, nf, buf1, &transformed1_length); - if (transformed1 == NULL) - /* errno is set here. */ - return -1; - - /* Normalize and transform S2. */ - transformed2_length = sizeof (buf2); - transformed2 = U_NORMXFRM (s2, n2, nf, buf2, &transformed2_length); - if (transformed2 == NULL) - { - if (transformed1 != buf1) - { - int saved_errno = errno; - free (transformed1); - errno = saved_errno; - } - return -1; - } - - /* Compare the transformed strings. */ - cmp = memcmp2 (transformed1, transformed1_length, - transformed2, transformed2_length); - if (cmp < 0) - cmp = -1; - else if (cmp > 0) - cmp = 1; - - if (transformed2 != buf2) - free (transformed2); - if (transformed1 != buf1) - free (transformed1); - *resultp = cmp; - return 0; -} diff --git a/include/libgnulib/uninorm/u-normxfrm.h b/include/libgnulib/uninorm/u-normxfrm.h deleted file mode 100755 index 2d7f10e..0000000 --- a/include/libgnulib/uninorm/u-normxfrm.h +++ /dev/null @@ -1,95 +0,0 @@ -/* Locale dependent transformation for comparison of Unicode strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -char * -FUNC (const UNIT *s, size_t n, uninorm_t nf, - char *resultbuf, size_t *lengthp) -{ - UNIT normsbuf[2048 / sizeof (UNIT)]; - UNIT *norms; - size_t norms_length; - char convsbuf[2048]; - char *convs; - size_t convs_length; - char *result; - - /* Normalize the Unicode string. */ - norms_length = sizeof (normsbuf) / sizeof (UNIT); - norms = U_NORMALIZE (nf, s, n, normsbuf, &norms_length); - if (norms == NULL) - /* errno is set here. */ - return NULL; - - /* Convert it to locale encoding. */ - convs_length = sizeof (convsbuf) - 1; - convs = U_CONV_TO_ENCODING (locale_charset (), - iconveh_error, - norms, norms_length, - NULL, - convsbuf, &convs_length); - if (convs == NULL) - { - if (norms != normsbuf) - { - int saved_errno = errno; - free (norms); - errno = saved_errno; - } - return NULL; - } - - if (norms != normsbuf) - free (norms); - - /* Ensure one more byte is available. */ - if (convs != convsbuf) - { - char *memory = (char *) realloc (convs, convs_length + 1); - if (memory == NULL) - { - free (convs); - errno = ENOMEM; - return NULL; - } - convs = memory; - } - - /* Apply locale dependent transformations for comparison. */ - result = amemxfrm (convs, convs_length, resultbuf, lengthp); - if (result == NULL) - { - if (convs != convsbuf) - { - int saved_errno = errno; - free (convs); - errno = saved_errno; - } - return NULL; - } - - if (convs != convsbuf) - free (convs); - return result; -} diff --git a/include/libgnulib/unistd--.h b/include/libgnulib/unistd--.h deleted file mode 100755 index 4c555d4..0000000 --- a/include/libgnulib/unistd--.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Like unistd.h, but redefine some names to avoid glitches. - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#include -#include "unistd-safer.h" - -#undef dup -#define dup dup_safer - -#undef pipe -#define pipe pipe_safer - -#if GNULIB_PIPE2_SAFER -# undef pipe2 -# define pipe2 pipe2_safer -#endif diff --git a/include/libgnulib/unistd-safer.h b/include/libgnulib/unistd-safer.h deleted file mode 100755 index 70562c9..0000000 --- a/include/libgnulib/unistd-safer.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Invoke unistd-like functions, but avoid some glitches. - - Copyright (C) 2001, 2003, 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert and Eric Blake. */ - -#ifdef __cplusplus -extern "C" { -#endif - - -int dup_safer (int); -int fd_safer (int); -int pipe_safer (int[2]); - -#if GNULIB_FD_SAFER_FLAG -int dup_safer_flag (int, int); -int fd_safer_flag (int, int); -#endif - -#if GNULIB_PIPE2_SAFER -int pipe2_safer (int[2], int); -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unistdio/u-asnprintf.h b/include/libgnulib/unistdio/u-asnprintf.h deleted file mode 100755 index 302b3e5..0000000 --- a/include/libgnulib/unistdio/u-asnprintf.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2005-2007, 2009-2024 Free Software Foundation, - Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -DCHAR_T * -ASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, const FCHAR_T *format, ...) -{ - va_list args; - DCHAR_T *result; - - va_start (args, format); - result = VASNPRINTF (resultbuf, lengthp, format, args); - va_end (args); - return result; -} diff --git a/include/libgnulib/unistdio/u-asprintf.h b/include/libgnulib/unistdio/u-asprintf.h deleted file mode 100755 index bbec610..0000000 --- a/include/libgnulib/unistdio/u-asprintf.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2005-2007, 2009-2024 Free Software Foundation, - Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -ASPRINTF (DCHAR_T **resultp, const FCHAR_T *format, ...) -{ - va_list args; - int result; - - va_start (args, format); - result = VASPRINTF (resultp, format, args); - va_end (args); - return result; -} diff --git a/include/libgnulib/unistdio/u-printf-args.h b/include/libgnulib/unistdio/u-printf-args.h deleted file mode 100755 index e8c3875..0000000 --- a/include/libgnulib/unistdio/u-printf-args.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Decomposed printf argument list. - Copyright (C) 1999, 2002, 2005-2007, 2009-2024 Free Software Foundation, - Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#ifndef _U_PRINTF_ARGS_H -#define _U_PRINTF_ARGS_H - -#include "unitypes.h" - -/* Parametrization of printf-args.h. */ -#define ENABLE_UNISTDIO 1 -#define PRINTF_FETCHARGS u_printf_fetchargs -#include "printf-args.h" - -#endif /* _U_PRINTF_ARGS_H */ diff --git a/include/libgnulib/unistdio/u-printf-parse.h b/include/libgnulib/unistdio/u-printf-parse.h deleted file mode 100755 index 6292aa1..0000000 --- a/include/libgnulib/unistdio/u-printf-parse.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Parse printf format string. - Copyright (C) 1999, 2002, 2005, 2007, 2009-2024 Free Software Foundation, - Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#ifndef _U_PRINTF_PARSE_H -#define _U_PRINTF_PARSE_H - -#include "unistdio/u-printf-args.h" - -/* Parametrization of printf-parse.h. */ -#undef ENABLE_UNISTDIO -#define ENABLE_UNISTDIO 1 -#include "printf-parse.h" - -#endif /* _U_PRINTF_PARSE_H */ diff --git a/include/libgnulib/unistdio/u-snprintf.h b/include/libgnulib/unistdio/u-snprintf.h deleted file mode 100755 index c74bf87..0000000 --- a/include/libgnulib/unistdio/u-snprintf.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2005-2007, 2009-2024 Free Software Foundation, - Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -SNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, ...) -{ - va_list args; - int result; - - va_start (args, format); - result = VSNPRINTF (buf, size, format, args); - va_end (args); - return result; -} diff --git a/include/libgnulib/unistdio/u-sprintf.h b/include/libgnulib/unistdio/u-sprintf.h deleted file mode 100755 index 8b65188..0000000 --- a/include/libgnulib/unistdio/u-sprintf.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2005-2007, 2009-2024 Free Software Foundation, - Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -SPRINTF (DCHAR_T *buf, const FCHAR_T *format, ...) -{ - va_list args; - int result; - - va_start (args, format); - result = VSPRINTF (buf, format, args); - va_end (args); - return result; -} diff --git a/include/libgnulib/unistdio/u-vasprintf.h b/include/libgnulib/unistdio/u-vasprintf.h deleted file mode 100755 index bc04a0f..0000000 --- a/include/libgnulib/unistdio/u-vasprintf.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -VASPRINTF (DCHAR_T **resultp, const FCHAR_T *format, va_list args) -{ - size_t length; - DCHAR_T *result = VASNPRINTF (NULL, &length, format, args); - if (result == NULL) - return -1; - - if (length > INT_MAX) - { - free (result); - errno = EOVERFLOW; - return -1; - } - - *resultp = result; - /* Return the number of resulting units, excluding the trailing NUL. */ - return length; -} diff --git a/include/libgnulib/unistdio/u-vsnprintf.h b/include/libgnulib/unistdio/u-vsnprintf.h deleted file mode 100755 index 50abaf3..0000000 --- a/include/libgnulib/unistdio/u-vsnprintf.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -VSNPRINTF (DCHAR_T *buf, size_t size, const FCHAR_T *format, va_list args) -{ - size_t length; - DCHAR_T *result; - - if (size == 0) - buf = NULL; - else - length = size; - result = VASNPRINTF (buf, &length, format, args); - if (result == NULL) - return -1; - - if (result != buf) - { - if (size != 0) - { - /* The result did not fit into the buffer. Copy the initial segment - into the buffer, truncating it if necessary. */ - size_t n = (length < size ? length : size - 1); - DCHAR_CPY (buf, result, n); - buf[n] = '\0'; - } - free (result); - } - - if (length > INT_MAX) - { - errno = EOVERFLOW; - return -1; - } - - /* Return the number of resulting units, excluding the trailing NUL. */ - return length; -} diff --git a/include/libgnulib/unistdio/u-vsprintf.h b/include/libgnulib/unistdio/u-vsprintf.h deleted file mode 100755 index 60b1b7f..0000000 --- a/include/libgnulib/unistdio/u-vsprintf.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -int -VSPRINTF (DCHAR_T *buf, const FCHAR_T *format, va_list args) -{ - /* Pass an infinite length. But note that *vasnprintf may fail if the buffer - argument is larger than INT_MAX (if that fits into a 'size_t' at all). - Also note that glibc's iconv fails with E2BIG when we pass a length that - is so large that buf + length wraps around, i.e. - (uintptr_t) (buf + length) < (uintptr_t) buf. */ - size_t length; - DCHAR_T *result; - - /* Set length = min (SIZE_MAX, INT_MAX, - (uintptr_t) buf - 1). */ - length = (SIZE_MAX < INT_MAX ? SIZE_MAX : INT_MAX); - if (length > (~ (uintptr_t) buf) / sizeof (DCHAR_T)) - length = (~ (uintptr_t) buf) / sizeof (DCHAR_T); - - result = VASNPRINTF (buf, &length, format, args); - if (result == NULL) - return -1; - - /* The infinite buffer size guarantees that the result is not malloc()ed. */ - if (result != buf) - { - /* length is near SIZE_MAX. */ - free (result); - errno = EOVERFLOW; - return -1; - } - - if (length > INT_MAX) - { - errno = EOVERFLOW; - return -1; - } - - /* Return the number of resulting units, excluding the trailing NUL. */ - return length; -} diff --git a/include/libgnulib/unistr/u-cmp2.h b/include/libgnulib/unistr/u-cmp2.h deleted file mode 100755 index 8d5960b..0000000 --- a/include/libgnulib/unistr/u-cmp2.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Compare pieces of UTF-8/UTF-16/UTF-32 strings. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s1, size_t n1, const UNIT *s2, size_t n2) -{ - int cmp = U_CMP (s1, s2, MIN (n1, n2)); - - if (cmp == 0) - cmp = _GL_CMP (n1, n2); - - return cmp; -} diff --git a/include/libgnulib/unistr/u-cpy-alloc.h b/include/libgnulib/unistr/u-cpy-alloc.h deleted file mode 100755 index ac22566..0000000 --- a/include/libgnulib/unistr/u-cpy-alloc.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Copy piece of UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006-2007, 2009-2024 Free Software Foundation, - Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include -#include - -UNIT * -FUNC (const UNIT *s, size_t n) -{ - UNIT *dest; - - dest = (UNIT *) malloc (n > 0 ? n * sizeof (UNIT) : 1); - if (dest != NULL) - { -#if 0 - UNIT *destptr = dest; - - for (; n > 0; n--) - *destptr++ = *s++; -#else - if (n > 0) - memcpy ((char *) dest, (const char *) s, n * sizeof (UNIT)); -#endif - } - return dest; -} diff --git a/include/libgnulib/unistr/u-cpy.h b/include/libgnulib/unistr/u-cpy.h deleted file mode 100755 index 4848c14..0000000 --- a/include/libgnulib/unistr/u-cpy.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Copy piece of UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -#include - -UNIT * -FUNC (UNIT *dest, const UNIT *src, size_t n) -{ -#if 0 - UNIT *destptr = dest; - - for (; n > 0; n--) - *destptr++ = *src++; -#else - if (n > 0) - memcpy ((char *) dest, (const char *) src, n * sizeof (UNIT)); -#endif - return dest; -} diff --git a/include/libgnulib/unistr/u-endswith.h b/include/libgnulib/unistr/u-endswith.h deleted file mode 100755 index 0c512ad..0000000 --- a/include/libgnulib/unistr/u-endswith.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Substring test for UTF-8/UTF-16/UTF-32 strings. - Copyright (C) 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -bool -FUNC (const UNIT *str, const UNIT *suffix) -{ - size_t len = U_STRLEN (str); - size_t suffixlen = U_STRLEN (suffix); - - if (len >= suffixlen) - return (U_CMP (str + (len - suffixlen), suffix, suffixlen) == 0); - else - return false; -} diff --git a/include/libgnulib/unistr/u-move.h b/include/libgnulib/unistr/u-move.h deleted file mode 100755 index 9aa36c4..0000000 --- a/include/libgnulib/unistr/u-move.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copy piece of UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include - -UNIT * -FUNC (UNIT *dest, const UNIT *src, size_t n) -{ -#if 0 - if (dest < src) - { - UNIT *destptr = dest; - const UNIT *srcptr = src; - - for (; n > 0; n--) - *destptr++ = *srcptr++; - } - else if (dest > src) - { - UNIT *destptr = dest + n - 1; - const UNIT *srcptr = src + n - 1; - - for (; n > 0; n--) - *destptr-- = *srcptr--; - } -#else - memmove ((char *) dest, (const char *) src, n * sizeof (UNIT)); -#endif - return dest; -} diff --git a/include/libgnulib/unistr/u-pcpy.h b/include/libgnulib/unistr/u-pcpy.h deleted file mode 100755 index 8124197..0000000 --- a/include/libgnulib/unistr/u-pcpy.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copy piece of UTF-8/16/32 string, return pointer after last written unit. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2023. - - This file 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 file 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 program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src, size_t n) -{ - return U_CPY (dest, src, n) + n; -} diff --git a/include/libgnulib/unistr/u-set.h b/include/libgnulib/unistr/u-set.h deleted file mode 100755 index 088cabe..0000000 --- a/include/libgnulib/unistr/u-set.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Fill UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include - -UNIT * -FUNC (UNIT *s, ucs4_t uc, size_t n) -{ - if (n > 0) - { - if (IS_SINGLE_UNIT (uc)) - { - UNIT *ptr = s; - - for (; n > 0; n--) - *ptr++ = uc; - } - else - { - errno = EILSEQ; - return NULL; - } - } - return s; -} diff --git a/include/libgnulib/unistr/u-startswith.h b/include/libgnulib/unistr/u-startswith.h deleted file mode 100755 index 8346c26..0000000 --- a/include/libgnulib/unistr/u-startswith.h +++ /dev/null @@ -1,38 +0,0 @@ -/* Substring test for UTF-8/UTF-16/UTF-32 strings. - Copyright (C) 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -bool -FUNC (const UNIT *str, const UNIT *prefix) -{ - for (;;) - { - UNIT uc1 = *str++; - UNIT uc2 = *prefix++; - if (uc2 == 0) - return true; - if (uc1 != uc2) - return false; - } -} diff --git a/include/libgnulib/unistr/u-stpcpy.h b/include/libgnulib/unistr/u-stpcpy.h deleted file mode 100755 index 22099ed..0000000 --- a/include/libgnulib/unistr/u-stpcpy.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copy UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src) -{ - for (; (*dest = *src) != 0; src++, dest++) - ; - return dest; -} diff --git a/include/libgnulib/unistr/u-stpncpy.h b/include/libgnulib/unistr/u-stpncpy.h deleted file mode 100755 index 2e532e0..0000000 --- a/include/libgnulib/unistr/u-stpncpy.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copy UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src, size_t n) -{ - for (; n > 0 && (*dest = *src) != 0; src++, dest++, n--) - ; - - /* This behavior is rarely useful, but it is here for consistency with - strncpy and wcsncpy. */ - { - UNIT *destptr = dest; - - for (; n > 0; n--) - *destptr++ = 0; - } - - return dest; -} diff --git a/include/libgnulib/unistr/u-strcat.h b/include/libgnulib/unistr/u-strcat.h deleted file mode 100755 index a4a4e93..0000000 --- a/include/libgnulib/unistr/u-strcat.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Concatenate UTF-8/UTF-16/UTF-32 strings. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src) -{ - UNIT *destptr = dest + U_STRLEN (dest); - - for (; (*destptr = *src) != 0; src++, destptr++) - ; - return dest; -} diff --git a/include/libgnulib/unistr/u-strcoll.h b/include/libgnulib/unistr/u-strcoll.h deleted file mode 100755 index e26eac0..0000000 --- a/include/libgnulib/unistr/u-strcoll.h +++ /dev/null @@ -1,100 +0,0 @@ -/* Compare UTF-8/UTF-16/UTF-32 strings using the collation rules of the current - locale. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -int -FUNC (const UNIT *s1, const UNIT *s2) -{ - /* When this function succeeds, it sets errno back to its original value. - When it fails, it sets errno, but also returns a meaningful return value, - for the sake of callers which ignore errno. */ - int final_errno = errno; - const char *encoding = locale_charset (); - char *sl1; - char *sl2; - int result; - - /* Pass iconveh_error here, not iconveh_question_mark. Otherwise the - conversion to locale encoding can do transliteration or map some - characters to question marks, leading to results that depend on the - iconv() implementation and are not obvious. */ - sl1 = U_STRCONV_TO_ENCODING (s1, encoding, iconveh_error); - if (sl1 != NULL) - { - sl2 = U_STRCONV_TO_ENCODING (s2, encoding, iconveh_error); - if (sl2 != NULL) - { - /* Compare sl1 and sl2. */ - errno = 0; - result = strcoll (sl1, sl2); - if (errno == 0) - { - /* strcoll succeeded. */ - free (sl1); - free (sl2); - /* The conversion to locale encoding can drop Unicode TAG - characters. Therefore sl1 and sl2 may be equal when s1 - and s2 were in fact different. Return a nonzero result - in this case. */ - if (result == 0) - result = U_STRCMP (s1, s2); - } - else - { - /* strcoll failed. */ - final_errno = errno; - free (sl1); - free (sl2); - result = U_STRCMP (s1, s2); - } - } - else - { - /* s1 could be converted to locale encoding, s2 not. */ - final_errno = errno; - free (sl1); - result = -1; - } - } - else - { - final_errno = errno; - sl2 = U_STRCONV_TO_ENCODING (s2, encoding, iconveh_error); - if (sl2 != NULL) - { - /* s2 could be converted to locale encoding, s1 not. */ - free (sl2); - result = 1; - } - else - { - /* Neither s1 nor s2 could be converted to locale encoding. */ - result = U_STRCMP (s1, s2); - } - } - - errno = final_errno; - return result; -} diff --git a/include/libgnulib/unistr/u-strcpy.h b/include/libgnulib/unistr/u-strcpy.h deleted file mode 100755 index 4151d1c..0000000 --- a/include/libgnulib/unistr/u-strcpy.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Copy UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src) -{ - UNIT *destptr = dest; - - for (; (*destptr = *src) != 0; src++, destptr++) - ; - return dest; -} diff --git a/include/libgnulib/unistr/u-strcspn.h b/include/libgnulib/unistr/u-strcspn.h deleted file mode 100755 index 3cca61c..0000000 --- a/include/libgnulib/unistr/u-strcspn.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Search for some characters in UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -size_t -FUNC (const UNIT *str, const UNIT *reject) -{ - /* Optimize two cases. */ - if (reject[0] == 0) - return U_STRLEN (str); - { - ucs4_t uc; - int count = U_STRMBTOUC (&uc, reject); - if (count >= 0 && reject[count] == 0) - { - const UNIT *found = U_STRCHR (str, uc); - if (found != NULL) - return found - str; - else - return U_STRLEN (str); - } - } - /* General case. */ - { - const UNIT *ptr = str; - - for (;;) - { - ucs4_t uc; - int count = U_STRMBTOUC (&uc, ptr); - if (count == 0) - return ptr - str; - if (count < 0) - break; - if (U_STRCHR (reject, uc)) - return ptr - str; - ptr += count; - } - return U_STRLEN (str); - } -} diff --git a/include/libgnulib/unistr/u-strdup.h b/include/libgnulib/unistr/u-strdup.h deleted file mode 100755 index 978687b..0000000 --- a/include/libgnulib/unistr/u-strdup.h +++ /dev/null @@ -1,49 +0,0 @@ -/* Copy UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006-2007, 2009-2024 Free Software Foundation, - Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#include -#include - -UNIT * -FUNC (const UNIT *s) -{ - size_t n = U_STRLEN (s) + 1; - UNIT *dest; - - dest = (UNIT *) malloc (n * sizeof (UNIT)); - if (dest != NULL) - { -#if 0 - UNIT *destptr = dest; - - for (; n > 0; n--) - *destptr++ = *s++; -#else - memcpy ((char *) dest, (const char *) s, n * sizeof (UNIT)); -#endif - } - return dest; -} diff --git a/include/libgnulib/unistr/u-strlen.h b/include/libgnulib/unistr/u-strlen.h deleted file mode 100755 index 03106a1..0000000 --- a/include/libgnulib/unistr/u-strlen.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Determine length of UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -size_t -FUNC (const UNIT *s) -{ - const UNIT *ptr; - - for (ptr = s; *ptr != 0; ptr++) - ; - return ptr - s; -} diff --git a/include/libgnulib/unistr/u-strncat.h b/include/libgnulib/unistr/u-strncat.h deleted file mode 100755 index 587960d..0000000 --- a/include/libgnulib/unistr/u-strncat.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Concatenate UTF-8/UTF-16/UTF-32 strings. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src, size_t n) -{ - UNIT *destptr = dest + U_STRLEN (dest); - - for (; n > 0 && (*destptr = *src) != 0; src++, destptr++, n--) - ; - if (n == 0) - *destptr = 0; - return dest; -} diff --git a/include/libgnulib/unistr/u-strncpy.h b/include/libgnulib/unistr/u-strncpy.h deleted file mode 100755 index c59db65..0000000 --- a/include/libgnulib/unistr/u-strncpy.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Copy UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (UNIT *dest, const UNIT *src, size_t n) -{ - UNIT *destptr = dest; - - for (; n > 0 && (*destptr = *src) != 0; src++, destptr++, n--) - ; - - /* This behavior is rarely useful, but it is here for consistency with - strncpy and wcsncpy. */ - for (; n > 0; n--) - *destptr++ = 0; - - return dest; -} diff --git a/include/libgnulib/unistr/u-strnlen.h b/include/libgnulib/unistr/u-strnlen.h deleted file mode 100755 index 4ec1474..0000000 --- a/include/libgnulib/unistr/u-strnlen.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Determine bounded length of UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -size_t -FUNC (const UNIT *s, size_t maxlen) -{ - const UNIT *ptr; - - for (ptr = s; maxlen > 0 && *ptr != 0; ptr++, maxlen--) - ; - return ptr - s; -} diff --git a/include/libgnulib/unistr/u-strpbrk.h b/include/libgnulib/unistr/u-strpbrk.h deleted file mode 100755 index c5f9d2d..0000000 --- a/include/libgnulib/unistr/u-strpbrk.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Search for some characters in UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (const UNIT *str, const UNIT *accept) -{ - /* Optimize two cases. */ - if (accept[0] == 0) - return NULL; - { - ucs4_t uc; - int count = U_STRMBTOUC (&uc, accept); - if (count >= 0 && accept[count] == 0) - return U_STRCHR (str, uc); - } - /* General case. */ - { - const UNIT *ptr = str; - - for (;;) - { - ucs4_t uc; - int count = U_STRMBTOUC (&uc, ptr); - if (count <= 0) - break; - if (U_STRCHR (accept, uc)) - return (UNIT *) ptr; - ptr += count; - } - return NULL; - } -} diff --git a/include/libgnulib/unistr/u-strspn.h b/include/libgnulib/unistr/u-strspn.h deleted file mode 100755 index 021ffcf..0000000 --- a/include/libgnulib/unistr/u-strspn.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Search for some characters in UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -size_t -FUNC (const UNIT *str, const UNIT *accept) -{ - /* Optimize two cases. */ - if (accept[0] == 0) - return 0; - { - ucs4_t uc; - int count = U_STRMBTOUC (&uc, accept); - if (count >= 0 && accept[count] == 0) - { - const UNIT *ptr = str; - for (; *ptr != 0; ptr += count) - if (U_CMP (ptr, accept, count) != 0) - break; - return ptr - str; - } - } - /* General case. */ - { - const UNIT *ptr = str; - - for (;;) - { - ucs4_t uc; - int count = U_STRMBTOUC (&uc, ptr); - if (count == 0) - return ptr - str; - if (count < 0) - break; - if (!U_STRCHR (accept, uc)) - return ptr - str; - ptr += count; - } - return U_STRLEN (str); - } -} diff --git a/include/libgnulib/unistr/u-strtok.h b/include/libgnulib/unistr/u-strtok.h deleted file mode 100755 index 823b545..0000000 --- a/include/libgnulib/unistr/u-strtok.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Tokenize UTF-8/UTF-16/UTF-32 string. - Copyright (C) 1999, 2002, 2006, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -UNIT * -FUNC (UNIT *str, const UNIT *delim, UNIT **ptr) -{ - if (str == NULL) - { - str = *ptr; - if (str == NULL) - return NULL; /* reminder that end of token sequence has been reached */ - } - - /* Skip leading delimiters. */ - str += U_STRSPN (str, delim); - - /* Found a token? */ - if (*str == 0) - { - *ptr = NULL; - return NULL; - } - - /* Move past the token. */ - { - UNIT *token_end = U_STRPBRK (str, delim); - if (token_end) - { - *ptr = token_end + U_STRMBLEN (token_end); - /* NUL-terminate the token. */ - *token_end = 0; - } - else - *ptr = NULL; - } - - return str; -} diff --git a/include/libgnulib/uniwbrk/u-wordbreaks.h b/include/libgnulib/uniwbrk/u-wordbreaks.h deleted file mode 100755 index 18abe69..0000000 --- a/include/libgnulib/uniwbrk/u-wordbreaks.h +++ /dev/null @@ -1,182 +0,0 @@ -/* Word breaks in UTF-8/UTF-16/UTF-32 strings. -*- coding: utf-8 -*- - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -/* This file implements section 4 "Word Boundaries" - of Unicode Standard Annex #29 . */ - -void -FUNC (const UNIT *s, size_t n, char *p) -{ - if (n > 0) - { - const UNIT *s_end = s + n; - - /* Word break property of the last character. - -1 at the very beginning of the string. */ - int last_char_prop = -1; - - /* Format and Extend characters are ignored; this means, the mostly used - unit is the complex character (= character with subsequent ignored - characters). - Word break property of the last complex character. - -1 at the very beginning of the string. */ - int last_compchar_prop = -1; - char *last_compchar_ptr = NULL; - - /* For recognizing rules involving 3 complex characters: - Word break property of the second-to-last complex character. - -1 at the very beginning of the string. */ - int secondlast_compchar_prop = -1; - - /* Number of consecutive regional indicator (RI) characters seen - immediately before the current point. */ - size_t ri_count = 0; - - /* Don't break inside multibyte characters. */ - memset (p, 0, n); - - while (s < s_end) - { - ucs4_t uc; - int count = U_MBTOUC_UNSAFE (&uc, s, s_end - s); - int prop = uc_wordbreak_property (uc); - - /* No break at the start of the string. */ - if (last_char_prop >= 0) - { - /* No break between CR and LF (WB3). */ - if (last_char_prop == WBP_CR && prop == WBP_LF) - /* *p = 0 */; - /* Break before and after newlines (WB3a, WB3b). */ - else if ((last_char_prop == WBP_CR - || last_char_prop == WBP_LF - || last_char_prop == WBP_NEWLINE) - || (prop == WBP_CR - || prop == WBP_LF - || prop == WBP_NEWLINE)) - *p = 1; - /* No break within emoji zwj sequence (WB3c). */ - else if (last_char_prop == WBP_ZWJ - && uc_is_property_extended_pictographic (uc)) - /* *p = 0 */; - /* Keep horizontal whitespace together (WB3d). */ - else if (last_char_prop == WBP_WSS && prop == WBP_WSS) - /* *p = 0 */; - /* Ignore Format and Extend characters (WB4). */ - else if (prop == WBP_EXTEND - || prop == WBP_FORMAT - || prop == WBP_ZWJ) - /* *p = 0 */; - else - { - /* No break in these situations (see UAX #29): - - secondlast last current - - (ALetter | HL) (MidLetter | MidNumLet | SQ) × (ALetter | HL) (WB7) - (ALetter | HL) × (MidLetter | MidNumLet | SQ) (ALetter | HL) (WB6) - Numeric (MidNum | MidNumLet | SQ) × Numeric (WB11) - Numeric × (MidNum | MidNumLet | SQ) Numeric (WB12) - HL × DQ HL (WB7b) - HL DQ × HL (WB7c) - ^ (RI RI)* RI × RI (WB15) - [^RI] (RI RI)* RI × RI (WB16) - */ - /* No break across certain punctuation. Also, disable word - breaks that were recognized earlier (due to lookahead of - only one complex character). */ - if (((prop == WBP_ALETTER - || prop == WBP_HL) - && (last_compchar_prop == WBP_MIDLETTER - || last_compchar_prop == WBP_MIDNUMLET - || last_compchar_prop == WBP_SQ) - && (secondlast_compchar_prop == WBP_ALETTER - || secondlast_compchar_prop == WBP_HL)) - || (prop == WBP_NUMERIC - && (last_compchar_prop == WBP_MIDNUM - || last_compchar_prop == WBP_MIDNUMLET - || last_compchar_prop == WBP_SQ) - && secondlast_compchar_prop == WBP_NUMERIC) - || (prop == WBP_HL - && last_compchar_prop == WBP_DQ - && secondlast_compchar_prop == WBP_HL)) - { - *last_compchar_ptr = 0; - /* *p = 0; */ - } - /* Break before RI, if odd number of RI's are - preceding (WB15, WB16). */ - else if (last_compchar_prop == WBP_RI && prop == WBP_RI) - { - if (ri_count % 2 == 0) - *p = 1; - /* else *p = 0 */ - } - /* Break after Format and Extend character. */ - else if (last_compchar_prop == WBP_EXTEND - || last_compchar_prop == WBP_FORMAT) - *p = 1; - else - { - int last_compchar_index = - uniwbrk_prop_index[last_compchar_prop]; - int index = uniwbrk_prop_index[prop]; - - /* Break between unknown pair (WB999). */ - if (last_compchar_index < 0 || index < 0) - *p = 1; - /* Perform a single table lookup. */ - else if (uniwbrk_table[last_compchar_index][index]) - *p = 1; - /* else *p = 0; */ - } - } - } - - last_char_prop = prop; - - /* Ignore Format and Extend characters, except at the - start of the line (WB4). */ - if (last_compchar_prop < 0 - || last_compchar_prop == WBP_CR - || last_compchar_prop == WBP_LF - || last_compchar_prop == WBP_NEWLINE - || !(prop == WBP_EXTEND || prop == WBP_FORMAT || prop == WBP_ZWJ)) - { - secondlast_compchar_prop = last_compchar_prop; - last_compchar_prop = prop; - last_compchar_ptr = p; - - if (prop == WBP_RI) - ri_count++; - else - ri_count = 0; - } - - s += count; - p += count; - } - } -} diff --git a/include/libgnulib/uniwbrk/wbrkprop.h b/include/libgnulib/uniwbrk/wbrkprop.h deleted file mode 100755 index d138f65..0000000 --- a/include/libgnulib/uniwbrk/wbrkprop.h +++ /dev/null @@ -1,6515 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Word breaking properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define wbrkprop_header_0 16 -#define wbrkprop_header_1 15 -#define wbrkprop_header_2 7 -#define wbrkprop_header_3 511 -#define wbrkprop_header_4 127 - -typedef struct - { - int level1[15]; - int level2[3 << 9]; - unsigned char level3[196 << 7]; - } -wbrkprop_t; -static const wbrkprop_t uniwbrkprop = -{ - { - 0, 512, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1024 - }, - { - 0, 128, 256, 256, 256, 384, 512, 640, - 256, 768, 896, 1024, 1152, 1280, 1408, 1536, - 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, - 2688, 2816, 2944, 3072, 3200, 3328, 3456, 3584, - 3712, 3840, 256, 256, 3968, 4096, 4224, 4352, - 4480, 256, 256, 256, 4608, 4736, 4864, 4992, - 5120, 5248, 5376, 5504, 5632, 5760, 5888, 6016, - 6144, 6272, 256, 6400, 256, 256, 6528, 6656, - 6784, 6912, 7040, 7168, -1, -1, -1, -1, - -1, 7296, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 256, 7424, 7552, 7680, 7808, -1, -1, -1, - 7936, 8064, 8192, 8320, -1, 8448, 8576, -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, -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, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 8704, 256, 256, 8832, 8960, 9088, 9216, - 9344, 9472, 9600, 9728, 9856, 9984, 10112, 10240, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 10368, - -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, 10496, 10624, - 256, 256, 10752, 10880, 11008, 11136, 11264, 11392, - 11520, 11648, 11776, 11904, -1, 12032, 12160, 12288, - 256, 12416, 12544, 12672, 256, 256, 12800, 12928, - 13056, 13184, 13312, 13440, 13568, 13696, 13824, 13952, - 14080, 14208, 14336, 14464, -1, 14592, 14720, 14848, - 14976, 15104, 15232, 15360, 15488, 15616, 15744, 15872, - 16000, 16128, -1, 16256, 16384, 16512, 16640, -1, - 16768, 16896, 17024, 17152, 17280, 17408, -1, 17536, - 17664, 17792, 17920, 18048, -1, 18176, 18304, 18432, - 256, 256, 256, 256, 256, 256, 256, 18560, - 18688, 256, 18816, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 18944, - 256, 256, 256, 256, 256, 256, 256, 256, - 19072, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 11648, - 256, 256, 256, 256, 19200, -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, 19328, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 256, 256, 256, 256, 19456, 19584, 19712, 19840, - -1, -1, 19968, -1, 20096, -1, 20224, 20352, - -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, 20480, - 20608, -1, 20736, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 20864, 20992, -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, 21120, -1, -1, -1, -1, 21248, -1, - -1, -1, 21376, 21504, 21632, -1, -1, -1, - 21760, 21888, 22016, 256, 256, 22144, 22272, 22400, - -1, -1, -1, -1, 22528, 22656, -1, -1, - -1, -1, -1, -1, -1, -1, 22784, -1, - 22912, 23040, 23168, -1, -1, 23296, -1, -1, - -1, 23424, -1, 23552, -1, -1, -1, 23680, - 256, 23808, 23936, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24064, 24192, -1, -1, - -1, -1, 24320, 24448, -1, -1, -1, 24576, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 21120, - -1, -1, -1, -1, -1, -1, -1, -1, - 24704, -1, 24832, 24960, -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, -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, -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 - }, - { - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_LF, WBP_NEWLINE, - WBP_NEWLINE, WBP_CR, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_WSS, WBP_OTHER, WBP_DQ, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_SQ, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUM, WBP_OTHER, WBP_MIDNUMLET, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_MIDLETTER, WBP_MIDNUM, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_NEWLINE, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_FORMAT, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_MIDLETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_MIDNUM, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_MIDLETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_MIDLETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_MIDNUM, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_ALETTER, - WBP_MIDLETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUM, WBP_MIDNUM, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_FORMAT, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_NUMERIC, - WBP_MIDNUM, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_NUMERIC, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUM, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_NUMERIC, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_WSS, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_FORMAT, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_WSS, WBP_WSS, WBP_WSS, WBP_WSS, - WBP_WSS, WBP_WSS, WBP_WSS, WBP_OTHER, - WBP_WSS, WBP_WSS, WBP_WSS, WBP_OTHER, - WBP_EXTEND, WBP_ZWJ, WBP_FORMAT, WBP_FORMAT, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUMLET, WBP_MIDNUMLET, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUMLET, WBP_OTHER, WBP_OTHER, WBP_MIDLETTER, - WBP_NEWLINE, WBP_NEWLINE, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_EXTENDNUMLET, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET, - WBP_EXTENDNUMLET, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUM, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTENDNUMLET, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_WSS, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_OTHER, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_WSS, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_KATAKANA, - WBP_KATAKANA, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_HL, WBP_EXTEND, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_OTHER, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_OTHER, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_OTHER, WBP_HL, WBP_OTHER, - WBP_HL, WBP_HL, WBP_OTHER, WBP_HL, - WBP_HL, WBP_OTHER, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_HL, WBP_HL, WBP_HL, WBP_HL, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_MIDLETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET, - WBP_EXTENDNUMLET, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTENDNUMLET, WBP_EXTENDNUMLET, WBP_EXTENDNUMLET, - WBP_MIDNUM, WBP_OTHER, WBP_MIDNUMLET, WBP_OTHER, - WBP_MIDNUM, WBP_MIDLETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_FORMAT, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_MIDNUMLET, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_MIDNUM, WBP_OTHER, WBP_MIDNUMLET, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_MIDLETTER, WBP_MIDNUM, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTENDNUMLET, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, WBP_EXTEND, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_EXTEND, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_OTHER, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_OTHER, WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER, - WBP_KATAKANA, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_KATAKANA, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, WBP_KATAKANA, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, - WBP_FORMAT, WBP_FORMAT, WBP_FORMAT, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_EXTEND, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_OTHER, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_EXTEND, WBP_EXTEND, - WBP_ALETTER, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, WBP_NUMERIC, - WBP_NUMERIC, WBP_NUMERIC, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_OTHER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_OTHER, WBP_ALETTER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, WBP_ALETTER, - WBP_ALETTER, WBP_ALETTER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_RI, WBP_RI, - WBP_RI, WBP_RI, WBP_RI, WBP_RI, - WBP_RI, WBP_RI, WBP_RI, WBP_RI, - WBP_RI, WBP_RI, WBP_RI, WBP_RI, - WBP_RI, WBP_RI, WBP_RI, WBP_RI, - WBP_RI, WBP_RI, WBP_RI, WBP_RI, - WBP_RI, WBP_RI, WBP_RI, WBP_RI, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_FORMAT, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, WBP_EXTEND, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER, - WBP_OTHER, WBP_OTHER, WBP_OTHER, WBP_OTHER - } -}; diff --git a/include/libgnulib/uniwbrk/wbrktable.h b/include/libgnulib/uniwbrk/wbrktable.h deleted file mode 100755 index d24d3ca..0000000 --- a/include/libgnulib/uniwbrk/wbrktable.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Word break auxiliary table. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern const int uniwbrk_prop_index[23]; -extern const unsigned char uniwbrk_table[12][12]; - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/uniwidth/cjk.h b/include/libgnulib/uniwidth/cjk.h deleted file mode 100755 index 5fab365..0000000 --- a/include/libgnulib/uniwidth/cjk.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Test for CJK encoding. - Copyright (C) 2001-2002, 2005-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -#include "streq.h" - -static int -is_cjk_encoding (const char *encoding) -{ - if (0 - /* Legacy Japanese encodings */ - || STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0) - /* Legacy Chinese encodings */ - || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) - || STREQ_OPT (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0) - || STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0) - || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0) - /* Legacy Korean encodings */ - || STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - || STREQ_OPT (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0) - || STREQ_OPT (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0)) - return 1; - return 0; -} diff --git a/include/libgnulib/uniwidth/width0.h b/include/libgnulib/uniwidth/width0.h deleted file mode 100755 index 2edbe24..0000000 --- a/include/libgnulib/uniwidth/width0.h +++ /dev/null @@ -1,495 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Table of non-spacing or control characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -static const unsigned char nonspacing_table_data[49*64] = { - /* 0x0000-0x01ff */ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */ - /* 0x0200-0x03ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */ - /* 0x0400-0x05ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */ - 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */ - 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */ - 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */ - /* 0x0600-0x07ff */ - 0x00, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */ - 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */ - 0x00, 0x00, 0xc0, 0x9f, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */ - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */ - 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */ - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x20, /* 0x07c0-0x07ff */ - /* 0x0800-0x09ff */ - 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ - 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ - 0x00, 0xfc, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ - 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ - 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x40, /* 0x09c0-0x09ff */ - /* 0x0a00-0x0bff */ - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */ - 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */ - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */ - 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xfc, /* 0x0ac0-0x0aff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */ - 0x1e, 0x20, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */ - 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */ - /* 0x0c00-0x0dff */ - 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, /* 0x0c00-0x0c3f */ - 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */ - 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x0d00-0x0d3f */ - 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */ - 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */ - /* 0x0e00-0x0fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */ - 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1f, /* 0x0e80-0x0ebf */ - 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */ - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */ - 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */ - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */ - /* 0x1000-0x11ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */ - 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */ - 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */ - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x1140-0x117f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1180-0x11bf */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x11c0-0x11ff */ - /* 0x1200-0x13ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */ - 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */ - /* 0x1600-0x17ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */ - 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1700-0x173f */ - 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */ - 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */ - /* 0x1800-0x19ff */ - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ - 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */ - /* 0x1a00-0x1bff */ - 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */ - 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x1a80-0x1abf */ - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */ - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */ - 0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */ - 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */ - /* 0x1c00-0x1dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */ - 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1dc0-0x1dff */ - /* 0x2000-0x21ff */ - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ - 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */ - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */ - /* 0x2c00-0x2dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */ - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */ - /* 0x3000-0x31ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */ - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */ - /* 0xa600-0xa7ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */ - 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */ - /* 0xa800-0xa9ff */ - 0x44, 0x08, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, /* 0xa800-0xa83f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ - 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x80, /* 0xa8c0-0xa8ff */ - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ - 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x33, /* 0xa980-0xa9bf */ - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */ - /* 0xaa00-0xabff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */ - 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */ - 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */ - /* 0xd600-0xd7ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd600-0xd63f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd640-0xd67f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd680-0xd6bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd6c0-0xd6ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd700-0xd73f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd740-0xd77f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0xd780-0xd7bf */ - 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, /* 0xd7c0-0xd7ff */ - /* 0xfa00-0xfbff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */ - 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */ - /* 0xfe00-0xffff */ - 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */ - /* 0x10000-0x101ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */ - /* 0x10200-0x103ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */ - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */ - /* 0x10a00-0x10bff */ - 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */ - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */ - /* 0x10c00-0x10dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c00-0x10c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c40-0x10c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c80-0x10cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10cc0-0x10cff */ - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x10d00-0x10d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, /* 0x10d40-0x10d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d80-0x10dbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10dc0-0x10dff */ - /* 0x10e00-0x10fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e00-0x10e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e40-0x10e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, /* 0x10e80-0x10ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, /* 0x10ec0-0x10eff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f00-0x10f3f */ - 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f40-0x10f7f */ - 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f80-0x10fbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10fc0-0x10fff */ - /* 0x11000-0x111ff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */ - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, /* 0x11040-0x1107f */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x06, /* 0x11080-0x110bf */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */ - 0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */ - 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ - /* 0x11200-0x113ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */ - 0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x11300-0x1133f */ - 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, /* 0x11380-0x113bf */ - 0x01, 0x40, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */ - /* 0x11400-0x115ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */ - 0x5c, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */ - 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */ - 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */ - /* 0x11600-0x117ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */ - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */ - 0x00, 0x00, 0x00, 0xa0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */ - /* 0x11800-0x119ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x06, /* 0x11800-0x1183f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11840-0x1187f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11880-0x118bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x118c0-0x118ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, /* 0x11900-0x1193f */ - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11940-0x1197f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11980-0x119bf */ - 0x00, 0x00, 0xf0, 0x0c, 0x01, 0x00, 0x00, 0x00, /* 0x119c0-0x119ff */ - /* 0x11a00-0x11bff */ - 0x7e, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x79, /* 0x11a00-0x11a3f */ - 0x80, 0x00, 0x7e, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x11a40-0x11a7f */ - 0x00, 0xfc, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x11a80-0x11abf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11ac0-0x11aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b00-0x11b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b40-0x11b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b80-0x11bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11bc0-0x11bff */ - /* 0x11c00-0x11dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */ - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xb4, /* 0x11d00-0x11d3f */ - 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */ - 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */ - /* 0x11e00-0x11fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e00-0x11e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e40-0x11e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e80-0x11ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, /* 0x11ec0-0x11eff */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x11f00-0x11f3f */ - 0x05, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, /* 0x11f40-0x11f7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f80-0x11fbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11fc0-0x11fff */ - /* 0x13400-0x135ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x13400-0x1343f */ - 0x81, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13440-0x1347f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13480-0x134bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x134c0-0x134ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13500-0x1353f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13540-0x1357f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13580-0x135bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x135c0-0x135ff */ - /* 0x16000-0x161ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16000-0x1603f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16040-0x1607f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16080-0x160bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x160c0-0x160ff */ - 0x00, 0x00, 0x00, 0xc0, 0xff, 0xe3, 0x00, 0x00, /* 0x16100-0x1613f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16140-0x1617f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16180-0x161bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x161c0-0x161ff */ - /* 0x16a00-0x16bff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */ - /* 0x16e00-0x16fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */ - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */ - 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */ - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */ - /* 0x1bc00-0x1bdff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */ - 0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */ - /* 0x1ce00-0x1cfff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce00-0x1ce3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce40-0x1ce7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce80-0x1cebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cec0-0x1ceff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, /* 0x1cf00-0x1cf3f */ - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf40-0x1cf7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf80-0x1cfbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cfc0-0x1cfff */ - /* 0x1d000-0x1d1ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */ - 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */ - /* 0x1d200-0x1d3ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */ - 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */ - /* 0x1da00-0x1dbff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */ - 0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */ - /* 0x1e000-0x1e1ff */ - 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */ - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x1e100-0x1e13f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */ - /* 0x1e200-0x1e3ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e200-0x1e23f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e240-0x1e27f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, /* 0x1e280-0x1e2bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e2c0-0x1e2ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e300-0x1e33f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e340-0x1e37f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e380-0x1e3bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e3c0-0x1e3ff */ - /* 0x1e400-0x1e5ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e400-0x1e43f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e440-0x1e47f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e480-0x1e4bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e4c0-0x1e4ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e500-0x1e53f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e540-0x1e57f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e580-0x1e5bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, /* 0x1e5c0-0x1e5ff */ - /* 0x1e800-0x1e9ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */ - 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */ - 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */ -}; -static const signed char nonspacing_table_ind[248] = { - 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */ - 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */ - 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */ - 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */ - -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */ - -1, -1, -1, 20, -1, -1, -1, -1, /* 0xd000-0xdfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ - -1, -1, -1, -1, -1, 21, -1, 22, /* 0xf000-0xffff */ - 23, 24, -1, -1, -1, 25, 26, 27, /* 0x10000-0x10fff */ - 28, 29, 30, 31, 32, 33, 34, 35, /* 0x11000-0x11fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ - -1, -1, 36, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ - 37, -1, -1, -1, -1, 38, -1, 39, /* 0x16000-0x16fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ - -1, -1, -1, -1, -1, -1, 40, -1, /* 0x1b000-0x1bfff */ - -1, -1, -1, -1, -1, -1, -1, 41, /* 0x1c000-0x1cfff */ - 42, 43, -1, -1, -1, 44, -1, -1, /* 0x1d000-0x1dfff */ - 45, 46, 47, -1, 48, -1, -1, -1 /* 0x1e000-0x1efff */ -}; diff --git a/include/libgnulib/uniwidth/width2.h b/include/libgnulib/uniwidth/width2.h deleted file mode 100755 index f919989..0000000 --- a/include/libgnulib/uniwidth/width2.h +++ /dev/null @@ -1,541 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Width 2 property of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 -static const -struct - { - int header[1]; - int level1[4]; - short level2[3 << 7]; - unsigned int level3[28 << 4]; - } -u_width2 = -{ - { 4 }, - { - 5 * sizeof (int) / sizeof (short) + 0, - 5 * sizeof (int) / sizeof (short) + 128, - 5 * sizeof (int) / sizeof (short) + 256, - 5 * sizeof (int) / sizeof (short) + 256 - }, - { - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 0, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 16, - 5 + 384 * sizeof (short) / sizeof (int) + 32, - 5 + 384 * sizeof (short) / sizeof (int) + 48, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 64, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 80, - 5 + 384 * sizeof (short) / sizeof (int) + 96, - 5 + 384 * sizeof (short) / sizeof (int) + 112, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 144, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 160, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 176, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 192, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 208, - 5 + 384 * sizeof (short) / sizeof (int) + 224, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 240, - -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, - 5 + 384 * sizeof (short) / sizeof (int) + 256, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 272, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 288, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 304, - 5 + 384 * sizeof (short) / sizeof (int) + 320, - 5 + 384 * sizeof (short) / sizeof (int) + 336, - -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, - 5 + 384 * sizeof (short) / sizeof (int) + 352, - 5 + 384 * sizeof (short) / sizeof (int) + 368, - 5 + 384 * sizeof (short) / sizeof (int) + 384, - 5 + 384 * sizeof (short) / sizeof (int) + 400, - 5 + 384 * sizeof (short) / sizeof (int) + 416, - 5 + 384 * sizeof (short) / sizeof (int) + 432, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128 - }, - { - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x0C000000U, 0x00000600U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00091E00U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x60000000U, - 0x00300000U, 0x00000000U, 0x000FFF00U, 0x80000000U, - 0x00080000U, 0x60000C02U, 0x00104030U, 0x242C0400U, - 0x00000C20U, 0x00000100U, 0x00B85000U, 0x00000000U, - 0x00E00000U, 0x80010000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x18000000U, 0x00000000U, 0x00210000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x1FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFF0000U, 0xFFFF0000U, 0xFFFFFFFFU, 0x0000FFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000001U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x0000007FU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x0003000FU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x00000000U, - 0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x00000007U, 0x00070000U, 0xFFFF00F0U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000010U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00008000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x07FE4000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFBFE001U, 0xFFFFFFFFU, 0xDFFFFFFFU, - 0x000FFFFFU, 0xFFFFFFFFU, 0x000F87FFU, 0xFF11FFFFU, - 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFDU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU, - 0xFFFFFFFFU, 0x3FFFFFFFU, 0xFFFF7800U, 0x040000FFU, - 0x00600000U, 0x00000010U, 0x00000000U, 0xF8000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xE0E7103FU, 0x1FF01800U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00010FFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFF000U, 0xF7FFFFFFU, 0xFFFFFFBFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x1F1F0000U, - 0xFFFF007FU, 0x07FF1FFFU, 0x03FF003FU, 0x007F00FFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U - } -}; diff --git a/include/libgnulib/unlinkdir.h b/include/libgnulib/unlinkdir.h deleted file mode 100755 index a142f23..0000000 --- a/include/libgnulib/unlinkdir.h +++ /dev/null @@ -1,32 +0,0 @@ -/* unlinkdir.h - determine (and maybe change) whether we can unlink directories - - Copyright (C) 2005, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert and Jim Meyering. */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if UNLINK_CANNOT_UNLINK_DIR -# define cannot_unlink_dir() true -#else -bool cannot_unlink_dir (void); -#endif - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/unlocked-io.h b/include/libgnulib/unlocked-io.h deleted file mode 100755 index 0cd9bbf..0000000 --- a/include/libgnulib/unlocked-io.h +++ /dev/null @@ -1,141 +0,0 @@ -/* Prefer faster, non-thread-safe stdio functions if available. - - Copyright (C) 2001-2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#ifndef UNLOCKED_IO_H -# define UNLOCKED_IO_H 1 - -/* These are wrappers for functions/macros from the GNU C library, and - from other C libraries supporting POSIX's optional thread-safe functions. - - The standard I/O functions are thread-safe. These *_unlocked ones are - more efficient but not thread-safe. That they're not thread-safe is - fine since all of the applications in this package are single threaded. - - Also, some code that is shared with the GNU C library may invoke - the *_unlocked functions directly. On hosts that lack those - functions, invoke the non-thread-safe versions instead. */ - -/* This file uses HAVE_DECL_*_UNLOCKED. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include - -# if HAVE_DECL_CLEARERR_UNLOCKED || defined clearerr_unlocked -# undef clearerr -# define clearerr(x) clearerr_unlocked (x) -# else -# define clearerr_unlocked(x) clearerr (x) -# endif - -# if HAVE_DECL_FEOF_UNLOCKED || defined feof_unlocked -# undef feof -# define feof(x) feof_unlocked (x) -# else -# define feof_unlocked(x) feof (x) -# endif - -# if HAVE_DECL_FERROR_UNLOCKED || defined ferror_unlocked -# undef ferror -# define ferror(x) ferror_unlocked (x) -# else -# define ferror_unlocked(x) ferror (x) -# endif - -# if HAVE_DECL_FFLUSH_UNLOCKED || defined fflush_unlocked -# undef fflush -# define fflush(x) fflush_unlocked (x) -# else -# define fflush_unlocked(x) fflush (x) -# endif - -# if HAVE_DECL_FGETS_UNLOCKED || defined fgets_unlocked -# undef fgets -# define fgets(x,y,z) fgets_unlocked (x,y,z) -# else -# define fgets_unlocked(x,y,z) fgets (x,y,z) -# endif - -# if HAVE_DECL_FPUTC_UNLOCKED || defined fputc_unlocked -# undef fputc -# define fputc(x,y) fputc_unlocked (x,y) -# else -# define fputc_unlocked(x,y) fputc (x,y) -# endif - -# if HAVE_DECL_FPUTS_UNLOCKED || defined fputs_unlocked -# undef fputs -# define fputs(x,y) fputs_unlocked (x,y) -# else -# define fputs_unlocked(x,y) fputs (x,y) -# endif - -# if HAVE_DECL_FREAD_UNLOCKED || defined fread_unlocked -# undef fread -# define fread(w,x,y,z) fread_unlocked (w,x,y,z) -# else -# define fread_unlocked(w,x,y,z) fread (w,x,y,z) -# endif - -# if HAVE_DECL_FWRITE_UNLOCKED || defined fwrite_unlocked -# undef fwrite -# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z) -# else -# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) -# endif - -# if HAVE_DECL_GETC_UNLOCKED || defined getc_unlocked -# undef getc -# define getc(x) getc_unlocked (x) -# else -# define getc_unlocked(x) getc (x) -# endif - -# if HAVE_DECL_GETCHAR_UNLOCKED || defined getchar_unlocked -# undef getchar -# define getchar() getchar_unlocked () -# else -# define getchar_unlocked() getchar () -# endif - -# if HAVE_DECL_PUTC_UNLOCKED || defined putc_unlocked -# undef putc -# define putc(x,y) putc_unlocked (x,y) -# else -# define putc_unlocked(x,y) putc (x,y) -# endif - -# if HAVE_DECL_PUTCHAR_UNLOCKED || defined putchar_unlocked -# undef putchar -# define putchar(x) putchar_unlocked (x) -# else -# define putchar_unlocked(x) putchar (x) -# endif - -# undef flockfile -# define flockfile(x) ((void) 0) - -# undef ftrylockfile -# define ftrylockfile(x) 0 - -# undef funlockfile -# define funlockfile(x) ((void) 0) - -#endif /* UNLOCKED_IO_H */ diff --git a/include/libgnulib/unused-parameter.h b/include/libgnulib/unused-parameter.h deleted file mode 100755 index 83faefa..0000000 --- a/include/libgnulib/unused-parameter.h +++ /dev/null @@ -1,29 +0,0 @@ -/* A C macro for declaring that specific function parameters are not used. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_UNUSED_PARAMETER is a marker that can be prepended to function parameter - declarations for parameters that are not used. This helps to reduce - warnings, such as from GCC -Wunused-parameter. The syntax is as follows: - _GL_UNUSED_PARAMETER type param - or more generally - _GL_UNUSED_PARAMETER param_decl - For example: - _GL_UNUSED_PARAMETER int param - _GL_UNUSED_PARAMETER int *(*param) (void) - */ -#ifndef _GL_UNUSED_PARAMETER -# define _GL_UNUSED_PARAMETER _GL_ATTRIBUTE_MAYBE_UNUSED -#endif diff --git a/include/libgnulib/userspec.h b/include/libgnulib/userspec.h deleted file mode 100755 index dff2309..0000000 --- a/include/libgnulib/userspec.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Parse a 'user:group' specifier (e.g. the first argument of chown utility). - Copyright (C) 2003-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering, 2003. */ - -#ifndef USERSPEC_H -#define USERSPEC_H 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -char const * -parse_user_spec (char const *spec_arg, uid_t *uid, gid_t *gid, - char **username_arg, char **groupname_arg); -char const * -parse_user_spec_warn (char const *spec_arg, uid_t *uid, gid_t *gid, - char **username_arg, char **groupname_arg, bool *pwarn); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/utimecmp.h b/include/libgnulib/utimecmp.h deleted file mode 100755 index 6af5b0b..0000000 --- a/include/libgnulib/utimecmp.h +++ /dev/null @@ -1,49 +0,0 @@ -/* utimecmp.h -- compare file timestamps - - Copyright (C) 2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#ifndef UTIMECMP_H -#define UTIMECMP_H 1 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Options for utimecmp. */ -enum -{ - /* Before comparing, truncate the source timestamp to the - resolution of the destination file system and to the resolution - of utimens. */ - UTIMECMP_TRUNCATE_SOURCE = 1 -}; - -int utimecmp (char const *, struct stat const *, struct stat const *, int); -int utimecmpat (int, char const *, struct stat const *, struct stat const *, - int); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/utimens.h b/include/libgnulib/utimens.h deleted file mode 100755 index 762c3f9..0000000 --- a/include/libgnulib/utimens.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Set file access and modification times. - - Copyright 2012-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#if HAVE_UTIMENS || HAVE_LUTIMENS -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -int fdutimens (int, char const *, struct timespec const [2]); - -#if HAVE_UTIMENS -# define utimens rpl_utimens -#endif -int utimens (char const *, struct timespec const [2]); - -#if HAVE_LUTIMENS -# define lutimens rpl_lutimens -#endif -int lutimens (char const *, struct timespec const [2]); - -#ifdef __cplusplus -} -#endif - - -#if GNULIB_FDUTIMENSAT - -# include -# include - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_UTIMENS_INLINE -# define _GL_UTIMENS_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -int fdutimensat (int fd, int dir, char const *name, struct timespec const [2], - int atflag); - -/* Using this function makes application code slightly more readable. */ -_GL_UTIMENS_INLINE int -lutimensat (int dir, char const *file, struct timespec const times[2]) -{ - return utimensat (dir, file, times, AT_SYMLINK_NOFOLLOW); -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/vasnprintf.h b/include/libgnulib/vasnprintf.h deleted file mode 100755 index 7ed9145..0000000 --- a/include/libgnulib/vasnprintf.h +++ /dev/null @@ -1,77 +0,0 @@ -/* vsprintf with automatic memory allocation. - Copyright (C) 2002-2004, 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _VASNPRINTF_H -#define _VASNPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. */ -#include - -/* Get size_t. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Write formatted output to a string dynamically allocated with malloc(). - You can pass a preallocated buffer for the result in RESULTBUF and its - size in *LENGTHP; otherwise you pass RESULTBUF = NULL. - If successful, return the address of the string (this may be = RESULTBUF - if no dynamic memory allocation was necessary) and set *LENGTHP to the - number of resulting bytes, excluding the trailing NUL. Upon error, set - errno and return NULL. - - When dynamic memory allocation occurs, the preallocated buffer is left - alone (with possibly modified contents). This makes it possible to use - a statically allocated or stack-allocated buffer, like this: - - char buf[100]; - size_t len = sizeof (buf); - char *output = vasnprintf (buf, &len, format, args); - if (output == NULL) - ... error handling ...; - else - { - ... use the output string ...; - if (output != buf) - free (output); - } - */ -#if REPLACE_VASNPRINTF -# define asnprintf rpl_asnprintf -# define vasnprintf rpl_vasnprintf -#endif -extern char * asnprintf (char *restrict resultbuf, size_t *lengthp, - const char *format, ...) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)); -extern char * vasnprintf (char *restrict resultbuf, size_t *lengthp, - const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0)); - -#ifdef __cplusplus -} -#endif - -#endif /* _VASNPRINTF_H */ diff --git a/include/libgnulib/vasnwprintf.h b/include/libgnulib/vasnwprintf.h deleted file mode 100755 index 3f134a3..0000000 --- a/include/libgnulib/vasnwprintf.h +++ /dev/null @@ -1,63 +0,0 @@ -/* vswprintf with automatic memory allocation. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _VASNWPRINTF_H -#define _VASNWPRINTF_H - -/* Get va_list. */ -#include - -/* Get wchar_t, size_t. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Write formatted output to a string dynamically allocated with malloc(). - You can pass a preallocated buffer for the result in RESULTBUF and its - size in *LENGTHP; otherwise you pass RESULTBUF = NULL. - If successful, return the address of the string (this may be = RESULTBUF - if no dynamic memory allocation was necessary) and set *LENGTHP to the - number of resulting bytes, excluding the trailing NUL. Upon error, set - errno and return NULL. - - When dynamic memory allocation occurs, the preallocated buffer is left - alone (with possibly modified contents). This makes it possible to use - a statically allocated or stack-allocated buffer, like this: - - wchar_t buf[100]; - size_t len = sizeof (buf) / sizeof (wchar_t); - wchar_t *output = vasnwprintf (buf, &len, format, args); - if (output == NULL) - ... error handling ...; - else - { - ... use the output string ...; - if (output != buf) - free (output); - } - */ -extern wchar_t * asnwprintf (wchar_t *resultbuf, size_t *lengthp, - const wchar_t *format, ...); -extern wchar_t * vasnwprintf (wchar_t *resultbuf, size_t *lengthp, - const wchar_t *format, va_list args); - -#ifdef __cplusplus -} -#endif - -#endif /* _VASNWPRINTF_H */ diff --git a/include/libgnulib/verify.h b/include/libgnulib/verify.h deleted file mode 100755 index 49a73c0..0000000 --- a/include/libgnulib/verify.h +++ /dev/null @@ -1,387 +0,0 @@ -/* Compile-time assert-like macros. - - Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ - -#ifndef _GL_VERIFY_H -#define _GL_VERIFY_H - - -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) - works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. - - Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as - per C23. This is supported by GCC 9.1+. - - Support compilers claiming conformance to the relevant standard, - and also support GCC when not pedantic. If we were willing to slow - 'configure' down we could also use it with other compilers, but - since this affects only the quality of diagnostics, why bother? */ -#ifndef __cplusplus -# if (201112 <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ \ - && ((4 < __GNUC__ + (6 <= __GNUC_MINOR__) && !defined __clang__) \ - || 5 <= __clang_major__))) -# define _GL_HAVE__STATIC_ASSERT 1 -# endif -# if (202311 <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ && 9 <= __GNUC__ && !defined __clang__)) -# define _GL_HAVE__STATIC_ASSERT1 1 -# endif -#endif - -/* FreeBSD 9.1 , included by and lots of other - system headers, defines a conflicting _Static_assert that is no - better than ours; override it. */ -#ifndef _GL_HAVE__STATIC_ASSERT -# include -# undef _Static_assert -#endif - -/* Each of these macros verifies that its argument R is nonzero. To - be portable, R should be an integer constant expression. Unlike - assert (R), there is no run-time overhead. - - If _Static_assert works, verify (R) uses it directly. Similarly, - _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct - that is an operand of sizeof. - - The code below uses several ideas for C++ compilers, and for C - compilers that do not support _Static_assert: - - * The first step is ((R) ? 1 : -1). Given an expression R, of - integral or boolean or floating-point type, this yields an - expression of integral type, whose value is later verified to be - constant and nonnegative. - - * Next this expression W is wrapped in a type - struct _gl_verify_type { - unsigned int _gl_verify_error_if_negative: W; - }. - If W is negative, this yields a compile-time error. No compiler can - deal with a bit-field of negative size. - - One might think that an array size check would have the same - effect, that is, that the type struct { unsigned int dummy[W]; } - would work as well. However, inside a function, some compilers - (such as C++ compilers and GNU C) allow local parameters and - variables inside array size expressions. With these compilers, - an array size check would not properly diagnose this misuse of - the verify macro: - - void function (int n) { verify (n < 0); } - - * For the verify macro, the struct _gl_verify_type will need to - somehow be embedded into a declaration. To be portable, this - declaration must declare an object, a constant, a function, or a - typedef name. If the declared entity uses the type directly, - such as in - - struct dummy {...}; - typedef struct {...} dummy; - extern struct {...} *dummy; - extern void dummy (struct {...} *); - extern struct {...} *dummy (void); - - two uses of the verify macro would yield colliding declarations - if the entity names are not disambiguated. A workaround is to - attach the current line number to the entity name: - - #define _GL_CONCAT0(x, y) x##y - #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) - extern struct {...} * _GL_CONCAT (dummy, __LINE__); - - But this has the problem that two invocations of verify from - within the same macro would collide, since the __LINE__ value - would be the same for both invocations. (The GCC __COUNTER__ - macro solves this problem, but is not portable.) - - A solution is to use the sizeof operator. It yields a number, - getting rid of the identity of the type. Declarations like - - extern int dummy [sizeof (struct {...})]; - extern void dummy (int [sizeof (struct {...})]); - extern int (*dummy (void)) [sizeof (struct {...})]; - - can be repeated. - - * Should the implementation use a named struct or an unnamed struct? - Which of the following alternatives can be used? - - extern int dummy [sizeof (struct {...})]; - extern int dummy [sizeof (struct _gl_verify_type {...})]; - extern void dummy (int [sizeof (struct {...})]); - extern void dummy (int [sizeof (struct _gl_verify_type {...})]); - extern int (*dummy (void)) [sizeof (struct {...})]; - extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; - - In the second and sixth case, the struct type is exported to the - outer scope; two such declarations therefore collide. GCC warns - about the first, third, and fourth cases. So the only remaining - possibility is the fifth case: - - extern int (*dummy (void)) [sizeof (struct {...})]; - - * GCC warns about duplicate declarations of the dummy function if - -Wredundant-decls is used. GCC 4.3 and later have a builtin - __COUNTER__ macro that can let us generate unique identifiers for - each dummy function, to suppress this warning. - - * This implementation exploits the fact that older versions of GCC, - which do not support _Static_assert, also do not warn about the - last declaration mentioned above. - - * GCC warns if -Wnested-externs is enabled and 'verify' is used - within a function body; but inside a function, you can always - arrange to use verify_expr instead. - - * In C++, any struct definition inside sizeof is invalid. - Use a template type to work around the problem. */ - -/* Concatenate two preprocessor tokens. */ -#define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) -#define _GL_CONCAT0(x, y) x##y - -/* _GL_COUNTER is an integer, preferably one that changes each time we - use it. Use __COUNTER__ if it works, falling back on __LINE__ - otherwise. __LINE__ isn't perfect, but it's better than a - constant. */ -#if defined __COUNTER__ && __COUNTER__ != __COUNTER__ -# define _GL_COUNTER __COUNTER__ -#else -# define _GL_COUNTER __LINE__ -#endif - -/* Generate a symbol with the given prefix, making it unique if - possible. */ -#define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) - -/* Verify requirement R at compile-time, as an integer constant expression - that returns 1. If R is false, fail at compile-time, preferably - with a diagnostic that includes the string-literal DIAGNOSTIC. */ - -#define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ - (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) - -#ifdef __cplusplus -# if !GNULIB_defined_struct__gl_verify_type -template - struct _gl_verify_type { - unsigned int _gl_verify_error_if_negative: w; - }; -# define GNULIB_defined_struct__gl_verify_type 1 -# endif -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - _gl_verify_type<(R) ? 1 : -1> -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - struct { \ - _Static_assert (R, DIAGNOSTIC); \ - int _gl_dummy; \ - } -#else -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } -#endif - -/* Verify requirement R at compile-time, as a declaration without a - trailing ';'. If R is false, fail at compile-time. - - This macro requires three or more arguments but uses at most the first - two, so that the _Static_assert macro optionally defined below supports - both the C11 two-argument syntax and the C23 one-argument syntax. - - Unfortunately, unlike C11, this implementation must appear as an - ordinary declaration, and cannot appear inside struct { ... }. */ - -#if 202311 <= __STDC_VERSION__ || 200410 <= __cpp_static_assert -# define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) -#else -# define _GL_VERIFY(R, DIAGNOSTIC, ...) \ - extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ - [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] -# if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) && !defined __clang__ -# pragma GCC diagnostic ignored "-Wnested-externs" -# endif -#endif - -/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ -#ifdef _GL_STATIC_ASSERT_H -/* Define _Static_assert if needed. */ -/* With clang ≥ 3.8.0 in C++ mode, _Static_assert already works and accepts - 1 or 2 arguments. We better don't override it, because clang's standard - C++ library uses static_assert inside classes in several places, and our - replacement via _GL_VERIFY does not work in these contexts. */ -# if (defined __cplusplus && defined __clang__ \ - && (4 <= __clang_major__ + (8 <= __clang_minor__))) -# if 5 <= __clang_major__ -/* Avoid "warning: 'static_assert' with no message is a C++17 extension". */ -# pragma clang diagnostic ignored "-Wc++17-extensions" -# else -/* Avoid "warning: static_assert with no message is a C++1z extension". */ -# pragma clang diagnostic ignored "-Wc++1z-extensions" -# endif -# elif !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert -# if !defined _MSC_VER || defined __clang__ -# define _Static_assert(...) \ - _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) -# else -# if defined __cplusplus && _MSC_VER >= 1910 - /* In MSVC 14.1 or newer, static_assert accepts one or two arguments, - but _Static_assert is not defined. */ -# define _Static_assert static_assert -# else - /* Work around MSVC preprocessor incompatibility with ISO C; see - . */ -# define _Static_assert(R, ...) \ - _GL_VERIFY ((R), "static assertion failed", -) -# endif -# endif -# endif -/* Define static_assert if needed. */ -# if (!defined static_assert \ - && __STDC_VERSION__ < 202311 \ - && (!defined __cplusplus \ - || (__cpp_static_assert < 201411 \ - && __GNUG__ < 6 && __clang_major__ < 6 && _MSC_VER < 1910))) -# if (defined __cplusplus && defined __GNUG__ && __GNUG__ < 6 \ - && __cplusplus == 201103L && !defined __clang__) -/* g++ >= 4.7, < 6 with option -std=c++11 or -std=gnu++11 supports the - two-arguments static_assert but not the one-argument static_assert, and - it does not support _Static_assert. - We have to play preprocessor tricks to distinguish the two cases. */ -# define _GL_SA1(a1) static_assert ((a1), "static assertion failed") -# define _GL_SA2 static_assert -# define _GL_SA3 static_assert -# define _GL_SA_PICK(x1,x2,x3,x4,...) x4 -# define static_assert(...) _GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1) (__VA_ARGS__) -# elif defined __cplusplus && _MSC_VER >= 1900 && !defined __clang__ -/* MSVC 14 in C++ mode supports the two-arguments static_assert but not - the one-argument static_assert, and it does not support _Static_assert. - We have to play preprocessor tricks to distinguish the two cases. - Since the MSVC preprocessor is not ISO C compliant (see above), - the solution is specific to MSVC. */ -# define _GL_EXPAND(x) x -# define _GL_SA1(a1) static_assert ((a1), "static assertion failed") -# define _GL_SA2 static_assert -# define _GL_SA3 static_assert -# define _GL_SA_PICK(x1,x2,x3,x4,...) x4 -# define static_assert(...) _GL_EXPAND(_GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1)) (__VA_ARGS__) -/* Avoid "fatal error C1189: #error: The C++ Standard Library forbids macroizing keywords." */ -# define _ALLOW_KEYWORD_MACROS 1 -# else -# define static_assert _Static_assert /* C11 requires this #define. */ -# endif -# endif -#endif - -/* @assert.h omit start@ */ - -#if defined __clang_major__ && __clang_major__ < 5 -# define _GL_HAS_BUILTIN_TRAP 0 -#elif 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) -# define _GL_HAS_BUILTIN_TRAP 1 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) -#else -# define _GL_HAS_BUILTIN_TRAP 0 -#endif - -#ifndef _GL_HAS_BUILTIN_UNREACHABLE -# if defined __clang_major__ && __clang_major__ < 5 -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__) && !defined __clang__ -# define _GL_HAS_BUILTIN_UNREACHABLE 1 -# elif defined __has_builtin -# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) -# else -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -# endif -#endif - -/* Each of these macros verifies that its argument R is nonzero. To - be portable, R should be an integer constant expression. Unlike - assert (R), there is no run-time overhead. - - There are two macros, since no single macro can be used in all - contexts in C. verify_expr (R, E) is for scalar contexts, including - integer constant expression contexts. verify (R) is for declaration - contexts, e.g., the top level. */ - -/* Verify requirement R at compile-time. Return the value of the - expression E. */ - -#define verify_expr(R, E) \ - (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) - -/* Verify requirement R at compile-time, as a declaration without a - trailing ';'. verify (R) acts like static_assert (R) except that - it is portable to C11/C++14 and earlier, it can issue better - diagnostics, and its name is shorter and may be more convenient. */ - -#ifdef __PGI -/* PGI barfs if R is long. */ -# define verify(R) _GL_VERIFY (R, "verify (...)", -) -#else -# define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) -#endif - -/* Assume that R always holds. Behavior is undefined if R is false, - fails to evaluate, or has side effects. - - 'assume (R)' is a directive from the programmer telling the - compiler that R is true so the compiler needn't generate code to - test R. This is why 'assume' is in verify.h: it's related to - static checking (in this case, static checking done by the - programmer), not dynamic checking. - - 'assume (R)' can affect compilation of all the code, not just code - that happens to be executed after the assume (R) is "executed". - For example, if the code mistakenly does 'assert (R); assume (R);' - the compiler is entitled to optimize away the 'assert (R)'. - - Although assuming R can help a compiler generate better code or - diagnostics, performance can suffer if R uses hard-to-optimize - features such as function calls not inlined by the compiler. - - Avoid Clang's __builtin_assume, as it breaks GNU Emacs master - as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see - . It's not known whether this breakage - is a Clang bug or an Emacs bug; play it safe for now. */ - -#if _GL_HAS_BUILTIN_UNREACHABLE -# define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) -#elif 1200 <= _MSC_VER -# define assume(R) __assume (R) -#elif 202311 <= __STDC_VERSION__ -# include -# define assume(R) ((R) ? (void) 0 : unreachable ()) -#elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP - /* Doing it this way helps various packages when configured with - --enable-gcc-warnings, which compiles with -Dlint. It's nicer - if 'assume' silences warnings with GCC 3.4 through GCC 4.4.7 (2012). */ -# define assume(R) ((R) ? (void) 0 : __builtin_trap ()) -#else - /* Some older tools grok NOTREACHED, e.g., Oracle Studio 12.6 (2017). */ -# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) -#endif - -/* @assert.h omit end@ */ - -#endif diff --git a/include/libgnulib/version-etc.h b/include/libgnulib/version-etc.h deleted file mode 100755 index 505d2fa..0000000 --- a/include/libgnulib/version-etc.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Print --version and bug-reporting information in a consistent format. - Copyright (C) 1999, 2003, 2005, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Jim Meyering. */ - -#ifndef VERSION_ETC_H -# define VERSION_ETC_H 1 - -/* This file uses _GL_ATTRIBUTE_SENTINEL. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include -# include - -# ifdef __cplusplus -extern "C" -{ -# endif - -extern const char version_etc_copyright[]; - -/* The three functions below display the --version information in the - standard way: command and package names, package version, followed - by a short GPLv3+ notice and a list of up to 10 author names. - - If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of - the program. The formats are therefore: - - PACKAGE VERSION - - or - - COMMAND_NAME (PACKAGE) VERSION. - - The functions differ in the way they are passed author names: */ - -/* N_AUTHORS names are supplied in array AUTHORS. */ -extern void version_etc_arn (FILE *stream, - const char *command_name, const char *package, - const char *version, - const char * const * authors, size_t n_authors); - -/* Names are passed in the NULL-terminated array AUTHORS. */ -extern void version_etc_ar (FILE *stream, - const char *command_name, const char *package, - const char *version, const char * const * authors); - -/* Names are passed in the NULL-terminated va_list. */ -extern void version_etc_va (FILE *stream, - const char *command_name, const char *package, - const char *version, va_list authors); - -/* Names are passed as separate arguments, with an additional - NULL argument at the end. */ -extern void version_etc (FILE *stream, - const char *command_name, const char *package, - const char *version, - /* const char *author1, ..., NULL */ ...) - _GL_ATTRIBUTE_SENTINEL ((0)); - -/* Display the usual "Report bugs to" stanza. */ -extern void emit_bug_reporting_address (void); - -# ifdef __cplusplus -} -# endif - -#endif /* VERSION_ETC_H */ diff --git a/include/libgnulib/vla.h b/include/libgnulib/vla.h deleted file mode 100755 index a999d12..0000000 --- a/include/libgnulib/vla.h +++ /dev/null @@ -1,53 +0,0 @@ -/* vla.h - variable length arrays - - Copyright 2014-2024 Free Software Foundation, Inc. - - 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 3 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, see . - - Written by Paul Eggert. */ - -/* The VLA_ELEMS macro does not allocate variable-length arrays (VLAs), - so it does not have the security or performance issues commonly - associated with VLAs. VLA_ELEMS is for exploiting a C11 feature - where a function can start like this: - - double scan_array (int n, double v[static n]) - - to require a caller to pass a vector V with at least N elements; - this allows better static checking and performance in some cases. - In C11 this feature means that V is a VLA, so the feature is - supported only if __STDC_NO_VLA__ is defined, and for compatibility - to platforms that do not support VLAs, VLA_ELEMS (n) expands to - nothing when __STDC_NO_VLA__ is not defined. */ - -/* A function's argument must point to an array with at least N elements. - Example: 'int main (int argc, char *argv[VLA_ELEMS (argc)]);'. */ - -#ifdef __STDC_NO_VLA__ -# define VLA_ELEMS(n) -#else -# define VLA_ELEMS(n) static n -#endif - -/* Although C99 requires support for variable-length arrays (VLAs), - some C compilers never supported VLAs and VLAs are optional in C11. - VLAs are controversial because their allocation may be unintended - or awkward to support, and large VLAs might cause security or - performance problems. GCC can diagnose the use of VLAs via the - -Wvla and -Wvla-larger-than warnings options, and defining the - macro GNULIB_NO_VLA disables the allocation of VLAs in Gnulib code. - - The VLA_ELEMS macro is unaffected by GNULIB_NO_VLA, since it does - not allocate VLAs. Programs that use VLA_ELEMS should be compiled - with 'gcc -Wvla-larger-than' instead of with 'gcc -Wvla'. */ diff --git a/include/libgnulib/vma-iter.h b/include/libgnulib/vma-iter.h deleted file mode 100755 index f2eccdb..0000000 --- a/include/libgnulib/vma-iter.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Iteration over virtual memory areas. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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. - - This file 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, see . */ - -#ifndef _VMA_ITER_H -#define _VMA_ITER_H - -/* This file uses HAVE_PSTAT_GETPROCVM, HAVE_MQUERY. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Bit mask for the FLAGS parameter of a vma_iterate callback function. */ -#define VMA_PROT_READ (1<<0) -#define VMA_PROT_WRITE (1<<1) -#define VMA_PROT_EXECUTE (1<<2) - -typedef int (*vma_iterate_callback_fn) (void *data, - uintptr_t start, uintptr_t end, - unsigned int flags); - -/* Iterate over the virtual memory areas of the current process. - If such iteration is supported, the callback is called once for every - virtual memory area, in ascending order, with the following arguments: - - DATA is the same argument as passed to vma_iterate. - - START is the address of the first byte in the area, page-aligned. - - END is the address of the last byte in the area plus 1, page-aligned. - Note that it may be 0 for the last area in the address space. - - FLAGS is a combination of the VMA_* bits. - If the callback returns 0, the iteration continues. If it returns 1, - the iteration terminates prematurely. - This function may open file descriptors, but does not call malloc(). - Return 0 if all went well, or -1 in case of error. */ -extern int vma_iterate (vma_iterate_callback_fn callback, void *data); - -/* The macro VMA_ITERATE_SUPPORTED indicates that vma_iterate is supported on - this platform. - Note that even when this macro is defined, vma_iterate() may still fail to - find any virtual memory area, for example if /proc is not mounted. */ -#if defined __linux__ || defined __ANDROID__ || defined __GNU__ || defined __FreeBSD_kernel__ || defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined _AIX || defined __sgi || defined __osf__ || defined __sun || HAVE_PSTAT_GETPROCVM || (defined __APPLE__ && defined __MACH__) || defined _WIN32 || defined __CYGWIN__ || defined __BEOS__ || defined __HAIKU__ || defined __minix || HAVE_MQUERY -# define VMA_ITERATE_SUPPORTED 1 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _VMA_ITER_H */ diff --git a/include/libgnulib/vma-prot.h b/include/libgnulib/vma-prot.h deleted file mode 100755 index aa99048..0000000 --- a/include/libgnulib/vma-prot.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Determine the protection of a virtual memory area. - Copyright (C) 2024 Free Software Foundation, Inc. - - This file 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. - - This file 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, see . */ - -/* Written by Bruno Haible , 2024. */ - -#ifndef _VMA_PROT_H -#define _VMA_PROT_H - -/* Get size_t. */ -#include - -/* Get VMA_PROT_READ, VMA_PROT_WRITE, VMA_PROT_EXECUTE. */ -#include "vma-iter.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Returns the declared permissions available on the memory area that - starts at START and is SIZE bytes long, as a combination of the bit masks - VMA_PROT_READ, VMA_PROT_WRITE, VMA_PROT_EXECUTE. - Note: The effective permissions may be larger. For example, some hardware - allows execute permission anywhere where read permission is present. - Returns -1 if it cannot be determined. - - Note: This function is expensive. If possible, an application should find - faster alternatives for memory areas that it has allocated itself, such as - through malloc(), mmap(), or shmat(). */ -extern int get_vma_prot (void *start, size_t size); - - -#ifdef __cplusplus -} -#endif - -#endif /* _VMA_PROT_H */ diff --git a/include/libgnulib/w32sock.h b/include/libgnulib/w32sock.h deleted file mode 100755 index 166a5f7..0000000 --- a/include/libgnulib/w32sock.h +++ /dev/null @@ -1,140 +0,0 @@ -/* w32sock.h --- internal auxiliary functions for Windows socket functions - - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paolo Bonzini */ - -#include - -/* Get O_RDWR and O_BINARY. */ -#include - -/* Get _open_osfhandle(). */ -#include - -/* Get _get_osfhandle(). */ -#if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -#else -# include -#endif - -#define FD_TO_SOCKET(fd) ((SOCKET) _get_osfhandle ((fd))) -#define SOCKET_TO_FD(fh) (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY)) - -static inline void -set_winsock_errno (void) -{ - int err = WSAGetLastError (); - - /* Map some WSAE* errors to the runtime library's error codes. */ - switch (err) - { - case WSA_INVALID_HANDLE: - errno = EBADF; - break; - case WSA_NOT_ENOUGH_MEMORY: - errno = ENOMEM; - break; - case WSA_INVALID_PARAMETER: - errno = EINVAL; - break; - case WSAENAMETOOLONG: - errno = ENAMETOOLONG; - break; - case WSAENOTEMPTY: - errno = ENOTEMPTY; - break; - case WSAEWOULDBLOCK: - errno = EWOULDBLOCK; - break; - case WSAEINPROGRESS: - errno = EINPROGRESS; - break; - case WSAEALREADY: - errno = EALREADY; - break; - case WSAENOTSOCK: - errno = ENOTSOCK; - break; - case WSAEDESTADDRREQ: - errno = EDESTADDRREQ; - break; - case WSAEMSGSIZE: - errno = EMSGSIZE; - break; - case WSAEPROTOTYPE: - errno = EPROTOTYPE; - break; - case WSAENOPROTOOPT: - errno = ENOPROTOOPT; - break; - case WSAEPROTONOSUPPORT: - errno = EPROTONOSUPPORT; - break; - case WSAEOPNOTSUPP: - errno = EOPNOTSUPP; - break; - case WSAEAFNOSUPPORT: - errno = EAFNOSUPPORT; - break; - case WSAEADDRINUSE: - errno = EADDRINUSE; - break; - case WSAEADDRNOTAVAIL: - errno = EADDRNOTAVAIL; - break; - case WSAENETDOWN: - errno = ENETDOWN; - break; - case WSAENETUNREACH: - errno = ENETUNREACH; - break; - case WSAENETRESET: - errno = ENETRESET; - break; - case WSAECONNABORTED: - errno = ECONNABORTED; - break; - case WSAECONNRESET: - errno = ECONNRESET; - break; - case WSAENOBUFS: - errno = ENOBUFS; - break; - case WSAEISCONN: - errno = EISCONN; - break; - case WSAENOTCONN: - errno = ENOTCONN; - break; - case WSAETIMEDOUT: - errno = ETIMEDOUT; - break; - case WSAECONNREFUSED: - errno = ECONNREFUSED; - break; - case WSAELOOP: - errno = ELOOP; - break; - case WSAEHOSTUNREACH: - errno = EHOSTUNREACH; - break; - default: - errno = (err > 10000 && err < 10025) ? err - 10000 : err; - break; - } -} diff --git a/include/libgnulib/wait-process.h b/include/libgnulib/wait-process.h deleted file mode 100755 index a09101c..0000000 --- a/include/libgnulib/wait-process.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Waiting for a subprocess to finish. - Copyright (C) 2001-2003, 2006, 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _WAIT_PROCESS_H -#define _WAIT_PROCESS_H - -/* Get pid_t. */ -#include -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Wait for a subprocess to finish. Return its exit code. - If it didn't terminate correctly, exit if exit_on_error is true, otherwise - return 127. - Arguments: - - child is the pid of the subprocess. - - progname is the name of the program executed by the subprocess, used for - error messages. - - If ignore_sigpipe is true, consider a subprocess termination due to - SIGPIPE as equivalent to a success. This is suitable for processes whose - only purpose is to write to standard output. This flag can be safely set - to false when the process' standard output is known to go to DEV_NULL. - - If null_stderr is true, the usual error message to stderr will be omitted. - This is suitable when the subprocess does not fulfill an important task. - - slave_process should be set to true if the process has been launched as a - slave process. - - If exit_on_error is true, any error will cause the main process to exit - with an error status. - - If termsigp is not NULL: *termsig will be set to the signal that - terminated the subprocess (if supported by the platform: not on native - Windows platforms), otherwise 0, and the error message about the signal - that terminated the subprocess will be omitted. - Prerequisites: The signal handler for SIGCHLD should not be set to SIG_IGN, - otherwise this function will not work. */ -extern int wait_subprocess (pid_t child, const char *progname, - bool ignore_sigpipe, bool null_stderr, - bool slave_process, bool exit_on_error, - int *termsigp); - -/* Register a subprocess as being a slave process. This means that the - subprocess will be terminated when its creator receives a catchable fatal - signal or exits normally. Registration ends when wait_subprocess() - notices that the subprocess has exited. */ -extern void register_slave_subprocess (pid_t child); - - -#ifdef __cplusplus -} -#endif - - -#endif /* _WAIT_PROCESS_H */ diff --git a/include/libgnulib/warn-on-use.h b/include/libgnulib/warn-on-use.h deleted file mode 100755 index 73c4397..0000000 --- a/include/libgnulib/warn-on-use.h +++ /dev/null @@ -1,153 +0,0 @@ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif diff --git a/include/libgnulib/wcpcpy-impl.h b/include/libgnulib/wcpcpy-impl.h deleted file mode 100755 index 98066a6..0000000 --- a/include/libgnulib/wcpcpy-impl.h +++ /dev/null @@ -1,24 +0,0 @@ -/* Copy a wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcpcpy (wchar_t *dest, const wchar_t *src) -{ - for (; (*dest = *src) != (wchar_t)'\0'; src++, dest++) - ; - return dest; -} diff --git a/include/libgnulib/wcpncpy-impl.h b/include/libgnulib/wcpncpy-impl.h deleted file mode 100755 index d212200..0000000 --- a/include/libgnulib/wcpncpy-impl.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copy a size-bounded wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcpncpy (wchar_t *dest, const wchar_t *src, size_t n) -{ - for (; n > 0 && (*dest = *src) != (wchar_t)'\0'; src++, dest++, n--) - ; - - /* This behavior is rarely useful, but it is here for consistency with - wcsncpy. */ - for (; n > 0; n--) - *dest++ = (wchar_t)'\0'; - - return dest-1; -} diff --git a/include/libgnulib/wcs-two-way.h b/include/libgnulib/wcs-two-way.h deleted file mode 100755 index 17011fe..0000000 --- a/include/libgnulib/wcs-two-way.h +++ /dev/null @@ -1,302 +0,0 @@ -/* Wide character substring search, using the Two-Way algorithm. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Written by Eric Blake , 2008. - - This file 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 file 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 program. If not, see . */ - -/* Before including this file, you need to include and - , and define: - UNIT The element type of the needle and haystack. - RETURN_TYPE A macro that expands to the return type. - AVAILABLE(h, h_l, j, n_l) - A macro that returns nonzero if there are - at least N_L characters left starting at H[J]. - H is 'UNIT *', H_L, J, and N_L are 'size_t'; - H_L is an lvalue. For NUL-terminated searches, - H_L can be modified each iteration to avoid - having to compute the end of H up front. - - For case-insensitivity, you may optionally define: - CMP_FUNC(p1, p2, l) A macro that returns 0 iff the first L - characters of P1 and P2 are equal. - CANON_ELEMENT(c) A macro that canonicalizes an element right after - it has been fetched from one of the two strings. - The argument is a 'UNIT'; the result must be a - 'UNIT' as well. - - This file undefines the macros documented above, and defines - LONG_NEEDLE_THRESHOLD. -*/ - -#include -#include - -/* We use the Two-Way string matching algorithm (also known as - Chrochemore-Perrin), which guarantees linear complexity with - constant space. - - See https://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260 -*/ - -#ifndef MAX -# define MAX(a, b) ((a < b) ? (b) : (a)) -#endif - -#ifndef CANON_ELEMENT -# define CANON_ELEMENT(c) c -#endif -#ifndef CMP_FUNC -# define CMP_FUNC wmemcmp -#endif - -/* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN. - Return the index of the first character in the right half, and set - *PERIOD to the global period of the right half. - - The global period of a string is the smallest index (possibly its - length) at which all remaining bytes in the string are repetitions - of the prefix (the last repetition may be a subset of the prefix). - - When NEEDLE is factored into two halves, a local period is the - length of the smallest word that shares a suffix with the left half - and shares a prefix with the right half. All factorizations of a - non-empty NEEDLE have a local period of at least 1 and no greater - than NEEDLE_LEN. - - A critical factorization has the property that the local period - equals the global period. All strings have at least one critical - factorization with the left half smaller than the global period. - And while some strings have more than one critical factorization, - it is provable that with an ordered alphabet, at least one of the - critical factorizations corresponds to a maximal suffix. - - Given an ordered alphabet, a critical factorization can be computed - in linear time, with 2 * NEEDLE_LEN comparisons, by computing the - shorter of two ordered maximal suffixes. The ordered maximal - suffixes are determined by lexicographic comparison while tracking - periodicity. */ -static size_t -critical_factorization (const UNIT *needle, size_t needle_len, - size_t *period) -{ - /* Index of last character of left half, or SIZE_MAX. */ - size_t max_suffix, max_suffix_rev; - size_t j; /* Index into NEEDLE for current candidate suffix. */ - size_t k; /* Offset into current period. */ - size_t p; /* Intermediate period. */ - UNIT a, b; /* Current comparison characters. */ - - /* Special case NEEDLE_LEN of 1 or 2 (all callers already filtered - out 0-length needles. */ - if (needle_len < 3) - { - *period = 1; - return needle_len - 1; - } - - /* Invariants: - 0 <= j < NEEDLE_LEN - 1 - -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed) - min(max_suffix, max_suffix_rev) < global period of NEEDLE - 1 <= p <= global period of NEEDLE - p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j] - 1 <= k <= p - */ - - /* Perform lexicographic search. */ - max_suffix = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix + k]); - if (a < b) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* b < a */ - { - /* Suffix is larger, start over from current location. */ - max_suffix = j++; - k = p = 1; - } - } - *period = p; - - /* Perform reverse lexicographic search. */ - max_suffix_rev = SIZE_MAX; - j = 0; - k = p = 1; - while (j + k < needle_len) - { - a = CANON_ELEMENT (needle[j + k]); - b = CANON_ELEMENT (needle[max_suffix_rev + k]); - if (b < a) - { - /* Suffix is smaller, period is entire prefix so far. */ - j += k; - k = 1; - p = j - max_suffix_rev; - } - else if (a == b) - { - /* Advance through repetition of the current period. */ - if (k != p) - ++k; - else - { - j += p; - k = 1; - } - } - else /* a < b */ - { - /* Suffix is larger, start over from current location. */ - max_suffix_rev = j++; - k = p = 1; - } - } - - /* Choose the shorter suffix. Return the index of the first character - of the right half, rather than the last character of the left half. - - For some examples, 'banana' has two critical factorizations, both - exposed by the two lexicographic extreme suffixes of 'anana' and - 'nana', where both suffixes have a period of 2. On the other - hand, with 'aab' and 'bba', both strings have a single critical - factorization of the last character, with the suffix having a period - of 1. While the maximal lexicographic suffix of 'aab' is 'b', - the maximal lexicographic suffix of 'bba' is 'ba', which is not a - critical factorization. Conversely, the maximal reverse - lexicographic suffix of 'a' works for 'bba', but not 'ab' for - 'aab'. The shorter suffix of the two will always be a critical - factorization. */ - if (max_suffix_rev + 1 < max_suffix + 1) - return max_suffix + 1; - *period = p; - return max_suffix_rev + 1; -} - -/* Return the first location of non-empty NEEDLE within HAYSTACK, or - NULL. HAYSTACK_LEN is the minimum known length of HAYSTACK. This - method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD. - Performance is guaranteed to be linear, with an initialization cost - of 2 * NEEDLE_LEN comparisons. - - If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at - most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. - If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 * - HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching. */ -static RETURN_TYPE _GL_ATTRIBUTE_PURE -two_way_short_needle (const UNIT *haystack, size_t haystack_len, - const UNIT *needle, size_t needle_len) -{ - size_t i; /* Index into current character of NEEDLE. */ - size_t j; /* Index into current window of HAYSTACK. */ - size_t period; /* The period of the right half of needle. */ - size_t suffix; /* The index of the right half of needle. */ - - /* Factor the needle into two halves, such that the left half is - smaller than the global period, and the right half is - periodic (with a period as large as NEEDLE_LEN - suffix). */ - suffix = critical_factorization (needle, needle_len, &period); - - /* Perform the search. Each iteration compares the right half - first. */ - if (CMP_FUNC (needle, needle + period, suffix) == 0) - { - /* Entire needle is periodic; a mismatch in the left half can - only advance by the period, so use memory to avoid rescanning - known occurrences of the period in the right half. */ - size_t memory = 0; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = MAX (suffix, memory); - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (memory < i + 1 && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i + 1 < memory + 1) - return (RETURN_TYPE) (haystack + j); - /* No match, so remember how many repetitions of period - on the right half were scanned. */ - j += period; - memory = needle_len - period; - } - else - { - j += i - suffix + 1; - memory = 0; - } - } - } - else - { - /* The two halves of needle are distinct; no extra memory is - required, and any mismatch results in a maximal shift. */ - period = MAX (suffix, needle_len - suffix) + 1; - j = 0; - while (AVAILABLE (haystack, haystack_len, j, needle_len)) - { - /* Scan for matches in right half. */ - i = suffix; - while (i < needle_len && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - ++i; - if (needle_len <= i) - { - /* Scan for matches in left half. */ - i = suffix - 1; - while (i != SIZE_MAX && (CANON_ELEMENT (needle[i]) - == CANON_ELEMENT (haystack[i + j]))) - --i; - if (i == SIZE_MAX) - return (RETURN_TYPE) (haystack + j); - j += period; - } - else - j += i - suffix + 1; - } - } - return NULL; -} - -#undef AVAILABLE -#undef CANON_ELEMENT -#undef CMP_FUNC -#undef MAX diff --git a/include/libgnulib/wcscasecmp-impl.h b/include/libgnulib/wcscasecmp-impl.h deleted file mode 100755 index bed3d2b..0000000 --- a/include/libgnulib/wcscasecmp-impl.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Compare two wide strings ignoring case. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -int -wcscasecmp (const wchar_t *s1, const wchar_t *s2) -{ - for (;;) - { - wchar_t wc1 = towlower (*s1++); - wchar_t wc2 = towlower (*s2++); - if (wc1 != (wchar_t)'\0' && wc1 == wc2) - continue; - /* Note that wc1 and wc2 each have at most 31 bits. */ - return (int)wc1 - (int)wc2; - /* > 0 if wc1 > wc2, < 0 if wc1 < wc2, - = 0 if wc1 and wc2 are both '\0'. */ - } -} diff --git a/include/libgnulib/wcscat-impl.h b/include/libgnulib/wcscat-impl.h deleted file mode 100755 index a0e845f..0000000 --- a/include/libgnulib/wcscat-impl.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Concatenate two wide strings. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcscat (wchar_t *dest, const wchar_t *src) -{ - wchar_t *destptr = dest + wcslen (dest); - - for (; (*destptr = *src) != (wchar_t)'\0'; src++, destptr++) - ; - return dest; -} diff --git a/include/libgnulib/wcschr-impl.h b/include/libgnulib/wcschr-impl.h deleted file mode 100755 index 56b580f..0000000 --- a/include/libgnulib/wcschr-impl.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Search wide string for a wide character. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 file 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 program. If not, see . */ - -wchar_t * -wcschr (const wchar_t *wcs, wchar_t wc) -{ - for (;; wcs++) - { - if (*wcs == wc) - break; - if (*wcs == (wchar_t)'\0') - goto notfound; - } - return (wchar_t *) wcs; - - notfound: - return NULL; -} diff --git a/include/libgnulib/wcscmp-impl.h b/include/libgnulib/wcscmp-impl.h deleted file mode 100755 index a25297f..0000000 --- a/include/libgnulib/wcscmp-impl.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Compare two wide strings. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -int -wcscmp (const wchar_t *s1, const wchar_t *s2) -{ - for (;;) - { - wchar_t wc1 = *s1++; - wchar_t wc2 = *s2++; - if (wc1 != (wchar_t)'\0' && wc1 == wc2) - continue; - /* ISO C requires wcscmp to work with all wchar_t values. - We cannot assume that wc1 and wc2 are in the range 0..INT_MAX. */ - return _GL_CMP (wc1, wc2); - /* > 0 if wc1 > wc2, < 0 if wc1 < wc2, - = 0 if wc1 and wc2 are both '\0'. */ - } -} diff --git a/include/libgnulib/wcscoll-impl.h b/include/libgnulib/wcscoll-impl.h deleted file mode 100755 index dea22ce..0000000 --- a/include/libgnulib/wcscoll-impl.h +++ /dev/null @@ -1,103 +0,0 @@ -/* Compare two wide strings using the current locale. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -int -wcscoll (const wchar_t *s1, const wchar_t *s2) -{ - char mbbuf1[1024]; - char mbbuf2[1024]; - char *mbs1; - char *mbs2; - - { - int saved_errno = errno; - - /* Convert s1 to a multibyte string, trying to avoid malloc(). */ - { - size_t ret; - - ret = wcstombs (mbbuf1, s1, sizeof (mbbuf1)); - if (ret == (size_t)-1) - goto failed1; - if (ret < sizeof (mbbuf1)) - mbs1 = mbbuf1; - else - { - size_t need = wcstombs (NULL, s1, 0); - if (need == (size_t)-1) - goto failed1; - mbs1 = (char *) malloc (need + 1); - if (mbs1 == NULL) - goto out_of_memory1; - ret = wcstombs (mbs1, s1, need + 1); - if (ret != need) - abort (); - } - } - - /* Convert s2 to a multibyte string, trying to avoid malloc(). */ - { - size_t ret; - - ret = wcstombs (mbbuf2, s2, sizeof (mbbuf2)); - if (ret == (size_t)-1) - goto failed2; - if (ret < sizeof (mbbuf2)) - mbs2 = mbbuf2; - else - { - size_t need = wcstombs (NULL, s2, 0); - if (need == (size_t)-1) - goto failed2; - mbs2 = (char *) malloc (need + 1); - if (mbs2 == NULL) - goto out_of_memory2; - ret = wcstombs (mbs2, s2, need + 1); - if (ret != need) - abort (); - } - } - - /* No error so far. */ - errno = saved_errno; - } - - /* Compare the two multibyte strings. */ - { - int result = strcoll (mbs1, mbs2); - - if (mbs1 != mbbuf1) - free (mbs1); - if (mbs2 != mbbuf2) - free (mbs2); - return result; - } - - out_of_memory2: - if (mbs1 != mbbuf1) - free (mbs1); - out_of_memory1: - errno = ENOMEM; - return 0; - - failed2: - if (mbs1 != mbbuf1) - free (mbs1); - failed1: - errno = EILSEQ; - return 0; -} diff --git a/include/libgnulib/wcscpy-impl.h b/include/libgnulib/wcscpy-impl.h deleted file mode 100755 index fba8eb2..0000000 --- a/include/libgnulib/wcscpy-impl.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copy a wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcscpy (wchar_t *dest, const wchar_t *src) -{ - wchar_t *destptr = dest; - - for (; (*destptr = *src) != (wchar_t)'\0'; src++, destptr++) - ; - return dest; -} diff --git a/include/libgnulib/wcscspn-impl.h b/include/libgnulib/wcscspn-impl.h deleted file mode 100755 index abc5e1a..0000000 --- a/include/libgnulib/wcscspn-impl.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Search a wide string for any of a set of wide characters. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -wcscspn (const wchar_t *wcs, const wchar_t *reject) -{ - /* Optimize two cases. */ - if (reject[0] == (wchar_t)'\0') - return wcslen (wcs); - - if (reject[1] == (wchar_t)'\0') - { - wchar_t wc = reject[0]; - const wchar_t *ptr = wcs; - for (; *ptr != (wchar_t)'\0'; ptr++) - { - if (*ptr == wc) - break; - } - return ptr - wcs; - } - - /* General case. */ - { - const wchar_t *ptr = wcs; - for (; *ptr != (wchar_t)'\0'; ptr++) - { - if (wcschr (reject, *ptr)) - break; - } - return ptr - wcs; - } -} diff --git a/include/libgnulib/wcsdup-impl.h b/include/libgnulib/wcsdup-impl.h deleted file mode 100755 index 1fe5179..0000000 --- a/include/libgnulib/wcsdup-impl.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Duplicate a wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcsdup (const wchar_t *s) -{ - size_t n = wcslen (s) + 1; - wchar_t *copy = (wchar_t *) malloc (n * sizeof (wchar_t)); - if (copy != NULL) - return wmemcpy (copy, s, n); - else - /* The glibc documentation does not say that errno should be set to ENOMEM - here. */ - return NULL; -} diff --git a/include/libgnulib/wcslen-impl.h b/include/libgnulib/wcslen-impl.h deleted file mode 100755 index 269908f..0000000 --- a/include/libgnulib/wcslen-impl.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Determine the length of a wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -wcslen (const wchar_t *s) -{ - const wchar_t *ptr; - - for (ptr = s; *ptr != (wchar_t)'\0'; ptr++) - ; - return ptr - s; -} diff --git a/include/libgnulib/wcsncasecmp-impl.h b/include/libgnulib/wcsncasecmp-impl.h deleted file mode 100755 index a8a58b7..0000000 --- a/include/libgnulib/wcsncasecmp-impl.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Compare two wide strings ignoring case. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -int -wcsncasecmp (const wchar_t *s1, const wchar_t *s2, size_t n) -{ - for (; n > 0;) - { - wchar_t wc1 = towlower (*s1++); - wchar_t wc2 = towlower (*s2++); - if (wc1 != (wchar_t)'\0' && wc1 == wc2) - { - n--; - continue; - } - /* Note that wc1 and wc2 each have at most 31 bits. */ - return (int)wc1 - (int)wc2; - /* > 0 if wc1 > wc2, < 0 if wc1 < wc2, - = 0 if wc1 and wc2 are both '\0'. */ - } - return 0; -} diff --git a/include/libgnulib/wcsncat-impl.h b/include/libgnulib/wcsncat-impl.h deleted file mode 100755 index 2d31384..0000000 --- a/include/libgnulib/wcsncat-impl.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Append part of a wide string to a wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcsncat (wchar_t *dest, const wchar_t *src, size_t n) -{ - wchar_t *destptr = dest + wcslen (dest); - - for (; n > 0 && (*destptr = *src) != (wchar_t)'\0'; src++, destptr++, n--) - ; - if (n == 0) - *destptr = (wchar_t)'\0'; - return dest; -} diff --git a/include/libgnulib/wcsncmp-impl.h b/include/libgnulib/wcsncmp-impl.h deleted file mode 100755 index 383b18b..0000000 --- a/include/libgnulib/wcsncmp-impl.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Compare two wide strings. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -int -wcsncmp (const wchar_t *s1, const wchar_t *s2, size_t n) -{ - for (; n > 0;) - { - wchar_t wc1 = *s1++; - wchar_t wc2 = *s2++; - if (wc1 != (wchar_t)'\0' && wc1 == wc2) - { - n--; - continue; - } - /* ISO C requires wcsncmp to work with all wchar_t values. - We cannot assume that wc1 and wc2 are in the range 0..INT_MAX. */ - return _GL_CMP (wc1, wc2); - /* > 0 if wc1 > wc2, < 0 if wc1 < wc2, - = 0 if wc1 and wc2 are both '\0'. */ - } - return 0; -} diff --git a/include/libgnulib/wcsncpy-impl.h b/include/libgnulib/wcsncpy-impl.h deleted file mode 100755 index d29237c..0000000 --- a/include/libgnulib/wcsncpy-impl.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copy a size-bounded wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcsncpy (wchar_t *dest, const wchar_t *src, size_t n) -{ - wchar_t *destptr = dest; - - for (; n > 0 && (*destptr = *src) != (wchar_t)'\0'; src++, destptr++, n--) - ; - - /* This behavior is rarely useful, but it is specified by the ISO C - standard. */ - for (; n > 0; n--) - *destptr++ = (wchar_t)'\0'; - - return dest; -} diff --git a/include/libgnulib/wcsnlen-impl.h b/include/libgnulib/wcsnlen-impl.h deleted file mode 100755 index 2e977f7..0000000 --- a/include/libgnulib/wcsnlen-impl.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Determine the length of a size-bounded wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -wcsnlen (const wchar_t *s, size_t maxlen) -{ - const wchar_t *ptr; - - for (ptr = s; maxlen > 0 && *ptr != (wchar_t)'\0'; ptr++, maxlen--) - ; - return ptr - s; -} diff --git a/include/libgnulib/wcsnrtombs-impl.h b/include/libgnulib/wcsnrtombs-impl.h deleted file mode 100755 index 0961c05..0000000 --- a/include/libgnulib/wcsnrtombs-impl.h +++ /dev/null @@ -1,90 +0,0 @@ -/* Convert wide string to string. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -FUNC (char *dest, const SCHAR_T **srcp, size_t srclen, size_t len, mbstate_t *ps) -{ - if (ps == NULL) - ps = &INTERNAL_STATE; - { - const SCHAR_T *src = *srcp; - size_t cur_max = MB_CUR_MAX; - char buf[64]; - - if (!(cur_max <= sizeof (buf))) - abort (); - - if (dest != NULL) - { - char *destptr = dest; - - for (; srclen > 0 && len > 0; src++, srclen--) - { - SCHAR_T wc = *src; - size_t ret = WCRTOMB (len >= cur_max ? destptr : buf, wc, ps); - - if (ret == (size_t)(-1)) - goto bad_input; - if (!(ret <= cur_max)) - abort (); - if (len < ret) - break; - if (len < cur_max) - memcpy (destptr, buf, ret); - if (wc == 0) - { - src = NULL; - /* Here mbsinit (ps). */ - break; - } - destptr += ret; - len -= ret; - } - *srcp = src; - return destptr - dest; - } - else - { - /* Ignore dest and len, don't store *srcp at the end, and - don't clobber *ps. */ - mbstate_t state = *ps; - size_t totalcount = 0; - - for (; srclen > 0; src++, srclen--) - { - SCHAR_T wc = *src; - size_t ret = WCRTOMB (buf, wc, &state); - - if (ret == (size_t)(-1)) - goto bad_input2; - if (wc == 0) - { - /* Here mbsinit (&state). */ - break; - } - totalcount += ret; - } - return totalcount; - } - - bad_input: - *srcp = src; - bad_input2: - errno = EILSEQ; - return (size_t)(-1); - } -} diff --git a/include/libgnulib/wcspbrk-impl.h b/include/libgnulib/wcspbrk-impl.h deleted file mode 100755 index 43a5636..0000000 --- a/include/libgnulib/wcspbrk-impl.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Search a wide string for any of a set of wide characters. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcspbrk (const wchar_t *wcs, const wchar_t *accept) -{ - /* Optimize two cases. */ - if (accept[0] == (wchar_t)'\0') - return NULL; - - if (accept[1] == (wchar_t)'\0') - { - wchar_t wc = accept[0]; - const wchar_t *ptr = wcs; - for (; *ptr != (wchar_t)'\0'; ptr++) - { - if (*ptr == wc) - return (wchar_t *) ptr; - } - return NULL; - } - - /* General case. */ - { - const wchar_t *ptr = wcs; - for (; *ptr != (wchar_t)'\0'; ptr++) - { - if (wcschr (accept, *ptr)) - return (wchar_t *) ptr; - } - return NULL; - } -} diff --git a/include/libgnulib/wcsrchr-impl.h b/include/libgnulib/wcsrchr-impl.h deleted file mode 100755 index 6341559..0000000 --- a/include/libgnulib/wcsrchr-impl.h +++ /dev/null @@ -1,33 +0,0 @@ -/* Search wide string for a wide character. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcsrchr (const wchar_t *wcs, wchar_t wc) -{ - /* Calling wcslen and then searching from the other end would cause more - memory accesses. Avoid that, at the cost of a few more comparisons. */ - wchar_t *result = NULL; - - for (;; wcs++) - { - if (*wcs == wc) - result = (wchar_t *) wcs; - if (*wcs == (wchar_t)'\0') - break; - } - return result; -} diff --git a/include/libgnulib/wcsrtombs-impl.h b/include/libgnulib/wcsrtombs-impl.h deleted file mode 100755 index c969858..0000000 --- a/include/libgnulib/wcsrtombs-impl.h +++ /dev/null @@ -1,90 +0,0 @@ -/* Convert wide string to string. - Copyright (C) 2008, 2010-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -FUNC (char *dest, const SCHAR_T **srcp, size_t len, mbstate_t *ps) -{ - if (ps == NULL) - ps = &INTERNAL_STATE; - { - const SCHAR_T *src = *srcp; - size_t cur_max = MB_CUR_MAX; - char buf[64]; - - if (!(cur_max <= sizeof (buf))) - abort (); - - if (dest != NULL) - { - char *destptr = dest; - - for (; len > 0; src++) - { - SCHAR_T wc = *src; - size_t ret = WCRTOMB (len >= cur_max ? destptr : buf, wc, ps); - - if (ret == (size_t)(-1)) - goto bad_input; - if (!(ret <= cur_max)) - abort (); - if (len < ret) - break; - if (len < cur_max) - memcpy (destptr, buf, ret); - if (wc == 0) - { - src = NULL; - /* Here mbsinit (ps). */ - break; - } - destptr += ret; - len -= ret; - } - *srcp = src; - return destptr - dest; - } - else - { - /* Ignore dest and len, don't store *srcp at the end, and - don't clobber *ps. */ - mbstate_t state = *ps; - size_t totalcount = 0; - - for (;; src++) - { - SCHAR_T wc = *src; - size_t ret = WCRTOMB (buf, wc, &state); - - if (ret == (size_t)(-1)) - goto bad_input2; - if (wc == 0) - { - /* Here mbsinit (&state). */ - break; - } - totalcount += ret; - } - return totalcount; - } - - bad_input: - *srcp = src; - bad_input2: - errno = EILSEQ; - return (size_t)(-1); - } -} diff --git a/include/libgnulib/wcsspn-impl.h b/include/libgnulib/wcsspn-impl.h deleted file mode 100755 index a95cff0..0000000 --- a/include/libgnulib/wcsspn-impl.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Advance in a wide string, skipping any of a set of wide characters. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -wcsspn (const wchar_t *wcs, const wchar_t *accept) -{ - /* Optimize two cases. */ - if (accept[0] == (wchar_t)'\0') - return 0; - - if (accept[1] == (wchar_t)'\0') - { - wchar_t wc = accept[0]; - const wchar_t *ptr = wcs; - for (; *ptr != (wchar_t)'\0'; ptr++) - { - if (*ptr != wc) - break; - } - return ptr - wcs; - } - - /* General case. */ - { - const wchar_t *ptr = wcs; - for (; *ptr != (wchar_t)'\0'; ptr++) - { - if (!wcschr (accept, *ptr)) - break; - } - return ptr - wcs; - } -} diff --git a/include/libgnulib/wcsstr-impl.h b/include/libgnulib/wcsstr-impl.h deleted file mode 100755 index b5f094e..0000000 --- a/include/libgnulib/wcsstr-impl.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Locate a substring in a wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake, 2008. */ - -#define AVAILABLE(h, h_l, j, n_l) \ - (!MEMCHR0 ((h) + (h_l), (j) + (n_l) - (h_l)) \ - && ((h_l) = (j) + (n_l))) -#include "wcs-two-way.h" - -RETURN_TYPE -FUNC (const UNIT *haystack_start, const UNIT *needle_start) -{ - const UNIT *haystack = haystack_start; - const UNIT *needle = needle_start; - size_t needle_len; /* Length of NEEDLE. */ - size_t haystack_len; /* Known minimum length of HAYSTACK. */ - bool ok = true; /* True if NEEDLE is prefix of HAYSTACK. */ - - /* Determine length of NEEDLE, and in the process, make sure - HAYSTACK is at least as long (no point processing all of a long - NEEDLE if HAYSTACK is too short). */ - while (*haystack && *needle) - ok &= *haystack++ == *needle++; - if (*needle) - return NULL; - if (ok) - return (RETURN_TYPE) haystack_start; - - /* Reduce the size of haystack using STRCHR, since it has a smaller - linear coefficient than the Two-Way algorithm. */ - needle_len = needle - needle_start; - haystack = STRCHR (haystack_start + 1, *needle_start); - if (!haystack || __builtin_expect (needle_len == 1, 0)) - return (RETURN_TYPE) haystack; - needle -= needle_len; - haystack_len = (haystack > haystack_start + needle_len ? 1 - : needle_len + haystack_start - haystack); - - /* Perform the search. */ - return two_way_short_needle (haystack, haystack_len, - needle, needle_len); -} diff --git a/include/libgnulib/wcstok-impl.h b/include/libgnulib/wcstok-impl.h deleted file mode 100755 index 2437929..0000000 --- a/include/libgnulib/wcstok-impl.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Split a wide string into tokens. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wcstok (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr) -{ - if (wcs == NULL) - { - wcs = *ptr; - if (wcs == NULL) - return NULL; /* reminder that end of token sequence has been reached */ - } - - /* Skip leading delimiters. */ - wcs += wcsspn (wcs, delim); - - /* Found a token? */ - if (*wcs == (wchar_t)'\0') - { - *ptr = NULL; - return NULL; - } - /* Move past the token. */ - { - wchar_t *token_end = wcspbrk (wcs, delim); - if (token_end) - { - /* NUL-terminate the token. */ - *token_end = (wchar_t)'\0'; - *ptr = token_end + 1; - } - else - *ptr = NULL; - } - return wcs; -} diff --git a/include/libgnulib/wcswidth-impl.h b/include/libgnulib/wcswidth-impl.h deleted file mode 100755 index 37b1c21..0000000 --- a/include/libgnulib/wcswidth-impl.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Determine number of screen columns needed for a size-bounded wide string. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 file 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 program. If not, see . */ - -int -FUNC (const UNIT *s, size_t n) -{ - int count = 0; - for (; n > 0; s++, n--) - { - UNIT c = *s; - if (c == (UNIT)'\0') - break; - { - int width = CHARACTER_WIDTH (c); - if (width < 0) - goto found_nonprinting; - if (width > INT_MAX - count) - goto overflow; - count += width; - } - } - return count; - - /* The total width has become > INT_MAX. - Continue searching for a non-printing wide character. */ - for (; n > 0; s++, n--) - { - UNIT c = *s; - if (c == (UNIT)'\0') - break; - { - int width = CHARACTER_WIDTH (c); - if (width < 0) - goto found_nonprinting; - } - overflow: ; - } - return INT_MAX; - - found_nonprinting: - return -1; -} diff --git a/include/libgnulib/wcsxfrm-impl.h b/include/libgnulib/wcsxfrm-impl.h deleted file mode 100755 index f2eb6d1..0000000 --- a/include/libgnulib/wcsxfrm-impl.h +++ /dev/null @@ -1,92 +0,0 @@ -/* Transform wide string for comparison using the current locale. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -size_t -wcsxfrm (wchar_t *s1, const wchar_t *s2, size_t n) -{ - char mbbuf2[1024]; - char *mbs2; - - { - int saved_errno = errno; - size_t result; - - /* Convert s2 to a multibyte string, trying to avoid malloc(). */ - { - size_t ret; - - ret = wcstombs (mbbuf2, s2, sizeof (mbbuf2)); - if (ret == (size_t)-1) - goto failed; - if (ret < sizeof (mbbuf2)) - mbs2 = mbbuf2; - else - { - size_t need = wcstombs (NULL, s2, 0); - if (need == (size_t)-1) - goto failed; - mbs2 = (char *) malloc (need + 1); - if (mbs2 == NULL) - goto out_of_memory; - ret = wcstombs (mbs2, s2, need + 1); - if (ret != need) - abort (); - } - } - - /* Transform the multibyte string. */ - errno = 0; - result = strxfrm ((char *)s1, mbs2, n); - if (errno != 0) - { - /* An error occurred. */ - if (mbs2 != mbbuf2) - free (mbs2); - return 0; - } - - if (result < n) - { - /* Convert the result by mapping char[] -> wchar_t[]. - Since strcmp() compares the elements as 'unsigned char' values, - whereas wcscmp() compares the elements as 'wchar_t' values, we need - to map 1 'unsigned char' to 1 'wchar_t'. (We could also map 2 - consecutive 'unsigned char' values to 1 'wchar_t' value, but this is - not needed. */ - wchar_t *wcp = s1 + n; - char *cp = (char *)s1 + n; - - while (wcp > s1) - *--wcp = (wchar_t) (unsigned char) *--cp; - } - - if (mbs2 != mbbuf2) - free (mbs2); - - /* No error. */ - errno = saved_errno; - return result; - } - - out_of_memory: - errno = ENOMEM; - return 0; - - failed: - errno = EILSEQ; - return 0; -} diff --git a/include/libgnulib/wctomb-impl.h b/include/libgnulib/wctomb-impl.h deleted file mode 100755 index ccec9ce..0000000 --- a/include/libgnulib/wctomb-impl.h +++ /dev/null @@ -1,34 +0,0 @@ -/* Convert wide character to multibyte character. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -int -wctomb (char *s, wchar_t wc) -{ - if (s == NULL) - return 0; - else - { - mbstate_t state; - size_t result; - - mbszero (&state); - result = wcrtomb (s, wc, &state); - if (result == (size_t)-1) - return -1; - return result; - } -} diff --git a/include/libgnulib/wctrans-impl.h b/include/libgnulib/wctrans-impl.h deleted file mode 100755 index 284777d..0000000 --- a/include/libgnulib/wctrans-impl.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Get descriptor for a wide character case conversion. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -wctrans_t -wctrans (const char *name) -{ - if (name[0] == 't' - && name[1] == 'o') - switch (name[2]) - { - case 'l': - if (strcmp (name + 3, "ower") == 0) - return (wctrans_t) towlower; - break; - case 'u': - if (strcmp (name + 3, "pper") == 0) - return (wctrans_t) towupper; - break; - default: - break; - } - return NULL; -} diff --git a/include/libgnulib/wctype-impl.h b/include/libgnulib/wctype-impl.h deleted file mode 100755 index 26d68b4..0000000 --- a/include/libgnulib/wctype-impl.h +++ /dev/null @@ -1,96 +0,0 @@ -/* Get descriptor for a wide character property. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -wctype_t -wctype (const char* name) -{ - switch (name[0]) - { - case 'a': - switch (name[1]) - { - case 'l': - switch (name[2]) - { - case 'n': - if (strcmp (name + 3, "um") == 0) - return (wctype_t) iswalnum; - break; - case 'p': - if (strcmp (name + 3, "ha") == 0) - return (wctype_t) iswalpha; - break; - default: - break; - } - break; - default: - break; - } - break; - case 'b': - if (strcmp (name + 1, "lank") == 0) - return (wctype_t) iswblank; - break; - case 'c': - if (strcmp (name + 1, "ntrl") == 0) - return (wctype_t) iswcntrl; - break; - case 'd': - if (strcmp (name + 1, "igit") == 0) - return (wctype_t) iswdigit; - break; - case 'g': - if (strcmp (name + 1, "raph") == 0) - return (wctype_t) iswgraph; - break; - case 'l': - if (strcmp (name + 1, "ower") == 0) - return (wctype_t) iswlower; - break; - case 'p': - switch (name[1]) - { - case 'r': - if (strcmp (name + 2, "int") == 0) - return (wctype_t) iswprint; - break; - case 'u': - if (strcmp (name + 2, "nct") == 0) - return (wctype_t) iswpunct; - break; - default: - break; - } - break; - case 's': - if (strcmp (name + 1, "pace") == 0) - return (wctype_t) iswspace; - break; - case 'u': - if (strcmp (name + 1, "pper") == 0) - return (wctype_t) iswupper; - break; - case 'x': - if (strcmp (name + 1, "digit") == 0) - return (wctype_t) iswxdigit; - break; - default: - break; - } - return NULL; -} diff --git a/include/libgnulib/windows-cond.h b/include/libgnulib/windows-cond.h deleted file mode 100755 index cfc160f..0000000 --- a/include/libgnulib/windows-cond.h +++ /dev/null @@ -1,79 +0,0 @@ -/* Condition variables (native Windows implementation). - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Yoann Vandoorselaere , 2008. - Based on Bruno Haible lock.h */ - -#ifndef _WINDOWS_COND_H -#define _WINDOWS_COND_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include - -#include "windows-initguard.h" - -#ifndef _glwthread_linked_waitqueue_link_defined -#define _glwthread_linked_waitqueue_link_defined -struct glwthread_waitqueue_link -{ - struct glwthread_waitqueue_link *wql_next; - struct glwthread_waitqueue_link *wql_prev; -}; -#endif /* _glwthread_linked_waitqueue_link_defined */ - -typedef struct - { - struct glwthread_waitqueue_link wq_list; /* circular list of waiting threads */ - } - glwthread_linked_waitqueue_t; - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - CRITICAL_SECTION lock; /* protects the remaining fields */ - glwthread_linked_waitqueue_t waiters; /* waiting threads */ - } - glwthread_cond_t; - -#define GLWTHREAD_COND_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern int glwthread_cond_init (glwthread_cond_t *cond); -/* Here, to cope with the various types of mutexes, the mutex is a 'void *', and - the caller needs to pass the corresponding *_lock and *_unlock functions. */ -extern int glwthread_cond_wait (glwthread_cond_t *cond, - void *mutex, - int (*mutex_lock) (void *), - int (*mutex_unlock) (void *)); -extern int glwthread_cond_timedwait (glwthread_cond_t *cond, - void *mutex, - int (*mutex_lock) (void *), - int (*mutex_unlock) (void *), - const struct timespec *abstime); -extern int glwthread_cond_signal (glwthread_cond_t *cond); -extern int glwthread_cond_broadcast (glwthread_cond_t *cond); -extern int glwthread_cond_destroy (glwthread_cond_t *cond); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_COND_H */ diff --git a/include/libgnulib/windows-initguard.h b/include/libgnulib/windows-initguard.h deleted file mode 100755 index 6bace3f..0000000 --- a/include/libgnulib/windows-initguard.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Init guards, somewhat like spinlocks (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_INITGUARD_H -#define _WINDOWS_INITGUARD_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -typedef struct - { - volatile int done; - volatile LONG started; - } - glwthread_initguard_t; - -#define GLWTHREAD_INITGUARD_INIT { 0, -1 } - -#endif /* _WINDOWS_INITGUARD_H */ diff --git a/include/libgnulib/windows-mutex.h b/include/libgnulib/windows-mutex.h deleted file mode 100755 index cb676c1..0000000 --- a/include/libgnulib/windows-mutex.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Plain mutexes (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_MUTEX_H -#define _WINDOWS_MUTEX_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include "windows-initguard.h" - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - DWORD owner; - CRITICAL_SECTION lock; - } - glwthread_mutex_t; - -#define GLWTHREAD_MUTEX_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_mutex_init (glwthread_mutex_t *mutex); -extern int glwthread_mutex_lock (glwthread_mutex_t *mutex); -extern int glwthread_mutex_trylock (glwthread_mutex_t *mutex); -extern int glwthread_mutex_unlock (glwthread_mutex_t *mutex); -extern int glwthread_mutex_destroy (glwthread_mutex_t *mutex); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_MUTEX_H */ diff --git a/include/libgnulib/windows-once.h b/include/libgnulib/windows-once.h deleted file mode 100755 index 18ed8d8..0000000 --- a/include/libgnulib/windows-once.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Once-only control (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_ONCE_H -#define _WINDOWS_ONCE_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -typedef struct - { - volatile LONG inited; - volatile LONG num_threads; - volatile LONG started; - CRITICAL_SECTION lock; - } - glwthread_once_t; - -#define GLWTHREAD_ONCE_INIT { -1, 0, -1 } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_once (glwthread_once_t *once_control, - void (*initfunction) (void)); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_ONCE_H */ diff --git a/include/libgnulib/windows-path.h b/include/libgnulib/windows-path.h deleted file mode 100755 index f4199db..0000000 --- a/include/libgnulib/windows-path.h +++ /dev/null @@ -1,54 +0,0 @@ -/* Auxiliary functions for the creation of subprocesses on Windows. - Copyright (C) 2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2024. - - This file 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 file 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 program. If not, see . */ - -#ifndef _WINDOWS_PATH_H -#define _WINDOWS_PATH_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Returns an augmented "PATH=..." string for the environment of a child process. - dll_dirs is a NULL-terminated list of directories that contain DLLs needed to - execute the program, or NULL if none is needed. - Returns a freshly allocated string. In case of memory allocation failure, - NULL is returned, with errno set. */ -extern char * extended_PATH (const char * const *dll_dirs) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -/* Returns an augmented environment for a child process. - dll_dirs is a NULL-terminated list of directories that contain DLLs needed to - execute the program, or NULL if none is needed. - Returns a freshly allocated string array, with a freshly allocated first - string. In case of memory allocation failure, NULL is returned, with errno - set. */ -extern char ** extended_environ (const char * const *dll_dirs) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_PATH_H */ diff --git a/include/libgnulib/windows-recmutex.h b/include/libgnulib/windows-recmutex.h deleted file mode 100755 index 9fa445b..0000000 --- a/include/libgnulib/windows-recmutex.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Plain recursive mutexes (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_RECMUTEX_H -#define _WINDOWS_RECMUTEX_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include "windows-initguard.h" - -/* The native Windows documentation says that CRITICAL_SECTION already - implements a recursive lock. But we need not rely on it: It's easy to - implement a recursive lock without this assumption. */ - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - DWORD owner; - unsigned long depth; - CRITICAL_SECTION lock; - } - glwthread_recmutex_t; - -#define GLWTHREAD_RECMUTEX_INIT { GLWTHREAD_INITGUARD_INIT, 0, 0 } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_recmutex_init (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_lock (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_trylock (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_unlock (glwthread_recmutex_t *mutex); -extern int glwthread_recmutex_destroy (glwthread_recmutex_t *mutex); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_RECMUTEX_H */ diff --git a/include/libgnulib/windows-rwlock.h b/include/libgnulib/windows-rwlock.h deleted file mode 100755 index 08d6775..0000000 --- a/include/libgnulib/windows-rwlock.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Read-write locks (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_RWLOCK_H -#define _WINDOWS_RWLOCK_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include "windows-initguard.h" - -/* It is impossible to implement read-write locks using plain locks, without - introducing an extra thread dedicated to managing read-write locks. - Therefore here we need to use the low-level Event type. */ - -typedef struct - { - HANDLE *array; /* array of waiting threads, each represented by an event */ - unsigned int count; /* number of waiting threads */ - unsigned int alloc; /* length of allocated array */ - unsigned int offset; /* index of first waiting thread in array */ - } - glwthread_carray_waitqueue_t; -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - CRITICAL_SECTION lock; /* protects the remaining fields */ - glwthread_carray_waitqueue_t waiting_readers; /* waiting readers */ - glwthread_carray_waitqueue_t waiting_writers; /* waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - glwthread_rwlock_t; - -#define GLWTHREAD_RWLOCK_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_rwlock_init (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_rdlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_wrlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_tryrdlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_trywrlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_unlock (glwthread_rwlock_t *lock); -extern int glwthread_rwlock_destroy (glwthread_rwlock_t *lock); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_RWLOCK_H */ diff --git a/include/libgnulib/windows-spawn.h b/include/libgnulib/windows-spawn.h deleted file mode 100755 index 3a33016..0000000 --- a/include/libgnulib/windows-spawn.h +++ /dev/null @@ -1,206 +0,0 @@ -/* Auxiliary functions for the creation of subprocesses. Native Windows API. - Copyright (C) 2001, 2003-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - -#ifndef _WINDOWS_SPAWN_H -#define _WINDOWS_SPAWN_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -/* Get declarations of the native Windows API functions. */ -#define WIN32_LEAN_AND_MEAN -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Prepares an argument vector before calling spawn(). - - Note that spawn() does not by itself call the command interpreter - (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : - ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&v); - v.dwPlatformId == VER_PLATFORM_WIN32_NT; - }) ? "cmd.exe" : "command.com"). - Instead it simply concatenates the arguments, separated by ' ', and calls - CreateProcess(). We must quote the arguments since Windows CreateProcess() - interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a - special way: - - Space and tab are interpreted as delimiters. They are not treated as - delimiters if they are surrounded by double quotes: "...". - - Unescaped double quotes are removed from the input. Their only effect is - that within double quotes, space and tab are treated like normal - characters. - - Backslashes not followed by double quotes are not special. - - But 2*n+1 backslashes followed by a double quote become - n backslashes followed by a double quote (n >= 0): - \" -> " - \\\" -> \" - \\\\\" -> \\" - - '*', '?' characters may get expanded through wildcard expansion in the - callee: By default, in the callee, the initialization code before main() - takes the result of GetCommandLine(), wildcard-expands it, and passes it - to main(). The exceptions to this rule are: - - programs that inspect GetCommandLine() and ignore argv, - - mingw programs that have a global variable 'int _CRT_glob = 0;', - - Cygwin programs, when invoked from a Cygwin program. - - prepare_spawn creates and returns a new argument vector, where the arguments - are appropriately quoted and an additional argument "sh.exe" has been added - at the beginning. The new argument vector is freshly allocated. The memory - for all its elements is allocated within *MEM_TO_FREE, which is freshly - allocated as well. In case of memory allocation failure, NULL is returned, - with errno set. - */ -extern const char ** prepare_spawn (const char * const *argv, - char **mem_to_free); - -/* Composes the command to be passed to CreateProcess(). - ARGV must contain appropriately quoted arguments, as returned by - prepare_spawn. - Returns a freshly allocated string. In case of memory allocation failure, - NULL is returned, with errno set. */ -extern char * compose_command (const char * const *argv) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -/* Composes the block of memory that contains the environment variables. - ENVP must contain an environment (a NULL-terminated array of string of the - form VARIABLE=VALUE). - NEW_PATH must be a string of the form PATH=VALUE, or NULL if the PATH - environment variable from this process is suitable for the child process. - Returns a freshly allocated block of memory. In case of memory allocation - failure, NULL is returned, with errno set. */ -extern char * compose_envblock (const char * const *envp, const char *new_PATH) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -/* An inheritable handle with some additional information. */ -struct IHANDLE -{ - /* Either INVALID_HANDLE_VALUE or an inheritable handle. */ - HANDLE handle; - /* Only relevant if handle != INVALID_HANDLE_VALUE. - It is a bit mask consisting of: - - 32 for O_APPEND. - - KEEP_OPEN_IN_CHILD if the handle is scheduled to be preserved in the - child process. - - KEEP_OPEN_IN_PARENT if the handle is shared with (and needs to be kept - open in) the parent process. - - DELAYED_DUP2_OLDFD if there is a delayed dup2 (oldfd, newfd) and - this IHANDLE is at position oldfd. - - DELAYED_DUP2_NEWFD if there is a delayed dup2 (oldfd, newfd) and - this IHANDLE is at position newfd. - Note that DELAYED_DUP2_OLDFD and DELAYED_DUP2_NEWFD cannot be set in the - same IHANDLE. */ - unsigned short flags; - #define KEEP_OPEN_IN_CHILD 0x100 - #define KEEP_OPEN_IN_PARENT 0x200 - #define DELAYED_DUP2_OLDFD 0x400 - #define DELAYED_DUP2_NEWFD 0x800 - /* Only relevant if handle != INVALID_HANDLE_VALUE and flags contains - either DELAYED_DUP2_OLDFD or DELAYED_DUP2_NEWFD. - It is the other fd of the delayed dup2 (oldfd, newfd), i.e. - - for DELAYED_DUP2_OLDFD, the newfd, - - for DELAYED_DUP2_NEWFD, the oldfd. */ - int linked_fd; -}; - -/* This struct keeps track of which handles to potentially pass to a subprocess, - and with which flags. All of the handles here are inheritable. - Regarding handle inheritance, see - . - Whether a handle is actually scheduled for being preserved in the child - process is determined by the KEEP_OPEN_IN_CHILD bit in the flags. */ -struct inheritable_handles -{ - /* The number of occupied entries in the two arrays below. - 3 <= count <= allocated. */ - size_t count; - /* The number of allocated entries in the two arrays below. */ - size_t allocated; - /* ih[0..count-1] are the occupied entries. */ - struct IHANDLE *ih; -}; - -/* Initializes a set of inheritable handles, filling in all or part of the - file descriptors of the current process. - If DUPLICATE is true, the handles stored are those of all file descriptors, - and we use DuplicateHandle to make sure that they are all inheritable. - If DUPLICATE is false, the handles stored are only the inheritables ones; - this is a shortcut for spawnpvech(). - Returns 0 upon success. In case of failure, -1 is returned, with errno set. - */ -extern int init_inheritable_handles (struct inheritable_handles *inh_handles, - bool duplicate); - -/* Fills a set of inheritable handles into a STARTUPINFO for CreateProcess(). - Returns 0 upon success. In case of failure, -1 is returned, with errno set. - */ -extern int compose_handles_block (const struct inheritable_handles *inh_handles, - STARTUPINFOA *sinfo); - -/* Frees the memory held by a set of inheritable handles. */ -extern void free_inheritable_handles (struct inheritable_handles *inh_handles); - - -/* Converts a CreateProcess() error code (retrieved through GetLastError()) to - an errno value. */ -extern int convert_CreateProcess_error (DWORD error); - - -/* Creates a subprocess. - MODE is either P_WAIT or P_NOWAIT. - PROGNAME is the program to invoke. - ARGV is the NULL-terminated array of arguments, ARGV[0] being PROGNAME by - convention. - ENVP is the NULL-terminated set of environment variable assignments, or NULL - to inherit the initial environ variable assignments from the caller and - ignore all calls to putenv(), setenv(), unsetenv() done in the caller. - DLL_DIRS is, on Windows platforms, a NULL-terminated list of directories - that contain DLLs needed to execute the program, or NULL if none is needed. - On other platforms, always pass NULL. - CURRDIR is the directory in which to start the program, or NULL to inherit - the working directory from the caller. - STDIN_HANDLE, STDOUT_HANDLE, STDERR_HANDLE are the handles to use for the - first three file descriptors in the callee process. - Returns - - 0 for success (if MODE is P_WAIT), or - - a handle that be passed to _cwait (on Windows) or waitpid (on OS/2), or - - -1 upon error, with errno set. - */ -extern intptr_t spawnpvech (int mode, - const char *progname, const char * const *argv, - const char * const *envp, - const char * const *dll_dirs, - const char *currdir, - HANDLE stdin_handle, HANDLE stdout_handle, - HANDLE stderr_handle); - - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_SPAWN_H */ diff --git a/include/libgnulib/windows-spin.h b/include/libgnulib/windows-spin.h deleted file mode 100755 index 948b4f6..0000000 --- a/include/libgnulib/windows-spin.h +++ /dev/null @@ -1,47 +0,0 @@ -/* Spin locks (native Windows implementation). - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#ifndef _WINDOWS_SPIN_H -#define _WINDOWS_SPIN_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -typedef struct - { - LONG volatile word; - } - glwthread_spinlock_t; - -#define GLWTHREAD_SPIN_INIT { 0 } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_spin_init (glwthread_spinlock_t *lock); -extern int glwthread_spin_lock (glwthread_spinlock_t *lock); -extern int glwthread_spin_trylock (glwthread_spinlock_t *lock); -extern int glwthread_spin_unlock (glwthread_spinlock_t *lock); -extern int glwthread_spin_destroy (glwthread_spinlock_t *lock); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_SPIN_H */ diff --git a/include/libgnulib/windows-thread.h b/include/libgnulib/windows-thread.h deleted file mode 100755 index 154bdfa..0000000 --- a/include/libgnulib/windows-thread.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Creating and controlling threads (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_THREAD_H -#define _WINDOWS_THREAD_H - -/* This file uses _Noreturn. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -/* The glwthread_thread_t is a pointer to a structure in memory. - Why not the thread handle? If it were the thread handle, it would be hard - to implement glwthread_thread_self() (since GetCurrentThread () returns a - pseudo-handle, DuplicateHandle (GetCurrentThread ()) returns a handle that - must be closed afterwards, and there is no function for quickly retrieving - a thread handle from its id). - Why not the thread id? I tried it. It did not work: Sometimes ids appeared - that did not belong to running threads, and glthread_join failed with ESRCH. - */ -typedef struct glwthread_thread_struct *glwthread_thread_t; - -#ifdef __cplusplus -extern "C" { -#endif - -/* attr is a bit mask, consisting of the following bits: */ -#define GLWTHREAD_ATTR_DETACHED 1 -extern int glwthread_thread_create (glwthread_thread_t *threadp, - unsigned int attr, - void * (*func) (void *), void *arg); -extern int glwthread_thread_join (glwthread_thread_t thread, void **retvalp); -extern int glwthread_thread_detach (glwthread_thread_t thread); -extern glwthread_thread_t glwthread_thread_self (void); -extern _Noreturn void glwthread_thread_exit (void *retval); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_THREAD_H */ diff --git a/include/libgnulib/windows-timedmutex.h b/include/libgnulib/windows-timedmutex.h deleted file mode 100755 index 6ede4b2..0000000 --- a/include/libgnulib/windows-timedmutex.h +++ /dev/null @@ -1,57 +0,0 @@ -/* Timed mutexes (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005, 2019. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_TIMEDMUTEX_H -#define _WINDOWS_TIMEDMUTEX_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include - -#include "windows-initguard.h" - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - DWORD owner; - HANDLE event; - CRITICAL_SECTION lock; - } - glwthread_timedmutex_t; - -#define GLWTHREAD_TIMEDMUTEX_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern int glwthread_timedmutex_init (glwthread_timedmutex_t *mutex); -extern int glwthread_timedmutex_lock (glwthread_timedmutex_t *mutex); -extern int glwthread_timedmutex_trylock (glwthread_timedmutex_t *mutex); -extern int glwthread_timedmutex_timedlock (glwthread_timedmutex_t *mutex, - const struct timespec *abstime); -extern int glwthread_timedmutex_unlock (glwthread_timedmutex_t *mutex); -extern int glwthread_timedmutex_destroy (glwthread_timedmutex_t *mutex); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_TIMEDMUTEX_H */ diff --git a/include/libgnulib/windows-timedrecmutex.h b/include/libgnulib/windows-timedrecmutex.h deleted file mode 100755 index 537070f..0000000 --- a/include/libgnulib/windows-timedrecmutex.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Timed recursive mutexes (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005, 2019. - Based on GCC's gthr-win32.h. */ - -#ifndef _WINDOWS_TIMEDRECMUTEX_H -#define _WINDOWS_TIMEDRECMUTEX_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include - -#include "windows-initguard.h" - -/* The native Windows documentation says that CRITICAL_SECTION already - implements a recursive lock. But we need not rely on it: It's easy to - implement a recursive lock without this assumption. */ - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - DWORD owner; - unsigned long depth; - HANDLE event; - CRITICAL_SECTION lock; - } - glwthread_timedrecmutex_t; - -#define GLWTHREAD_TIMEDRECMUTEX_INIT { GLWTHREAD_INITGUARD_INIT, 0, 0 } - -#ifdef __cplusplus -extern "C" { -#endif - -extern int glwthread_timedrecmutex_init (glwthread_timedrecmutex_t *mutex); -extern int glwthread_timedrecmutex_lock (glwthread_timedrecmutex_t *mutex); -extern int glwthread_timedrecmutex_trylock (glwthread_timedrecmutex_t *mutex); -extern int glwthread_timedrecmutex_timedlock (glwthread_timedrecmutex_t *mutex, - const struct timespec *abstime); -extern int glwthread_timedrecmutex_unlock (glwthread_timedrecmutex_t *mutex); -extern int glwthread_timedrecmutex_destroy (glwthread_timedrecmutex_t *mutex); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_TIMEDRECMUTEX_H */ diff --git a/include/libgnulib/windows-timedrwlock.h b/include/libgnulib/windows-timedrwlock.h deleted file mode 100755 index 4520f08..0000000 --- a/include/libgnulib/windows-timedrwlock.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Timed read-write locks (native Windows implementation). - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#ifndef _WINDOWS_TIMEDRWLOCK_H -#define _WINDOWS_TIMEDRWLOCK_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -#include - -#include "windows-initguard.h" - -#ifndef _glwthread_linked_waitqueue_link_defined -#define _glwthread_linked_waitqueue_link_defined -struct glwthread_waitqueue_link -{ - struct glwthread_waitqueue_link *wql_next; - struct glwthread_waitqueue_link *wql_prev; -}; -#endif /* _glwthread_linked_waitqueue_link_defined */ -typedef struct - { - struct glwthread_waitqueue_link wq_list; /* circular list of waiting threads */ - unsigned int count; /* number of waiting threads */ - } - glwthread_clinked_waitqueue_t; - -typedef struct - { - glwthread_initguard_t guard; /* protects the initialization */ - CRITICAL_SECTION lock; /* protects the remaining fields */ - glwthread_clinked_waitqueue_t waiting_readers; /* waiting readers */ - glwthread_clinked_waitqueue_t waiting_writers; /* waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - glwthread_timedrwlock_t; - -#define GLWTHREAD_TIMEDRWLOCK_INIT { GLWTHREAD_INITGUARD_INIT } - -#ifdef __cplusplus -extern "C" { -#endif - -extern void glwthread_timedrwlock_init (glwthread_timedrwlock_t *lock); -extern int glwthread_timedrwlock_rdlock (glwthread_timedrwlock_t *lock); -extern int glwthread_timedrwlock_wrlock (glwthread_timedrwlock_t *lock); -extern int glwthread_timedrwlock_tryrdlock (glwthread_timedrwlock_t *lock); -extern int glwthread_timedrwlock_trywrlock (glwthread_timedrwlock_t *lock); -extern int glwthread_timedrwlock_timedrdlock (glwthread_timedrwlock_t *lock, - const struct timespec *abstime); -extern int glwthread_timedrwlock_timedwrlock (glwthread_timedrwlock_t *lock, - const struct timespec *abstime); -extern int glwthread_timedrwlock_unlock (glwthread_timedrwlock_t *lock); -extern int glwthread_timedrwlock_destroy (glwthread_timedrwlock_t *lock); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_TIMEDRWLOCK_H */ diff --git a/include/libgnulib/windows-tls.h b/include/libgnulib/windows-tls.h deleted file mode 100755 index d9393fe..0000000 --- a/include/libgnulib/windows-tls.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Thread-local storage (native Windows implementation). - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2005. */ - -#ifndef _WINDOWS_TLS_H -#define _WINDOWS_TLS_H - -#define WIN32_LEAN_AND_MEAN /* avoid including junk */ -#include - -typedef DWORD glwthread_tls_key_t; - -#ifdef __cplusplus -extern "C" { -#endif - -extern int glwthread_tls_key_create (glwthread_tls_key_t *keyp, void (*destructor) (void *)); -extern void *glwthread_tls_get (glwthread_tls_key_t key); -extern int glwthread_tls_set (glwthread_tls_key_t key, void *value); -extern int glwthread_tls_key_delete (glwthread_tls_key_t key); -extern void glwthread_tls_process_destructors (void); -#define GLWTHREAD_DESTRUCTOR_ITERATIONS 4 - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS_TLS_H */ diff --git a/include/libgnulib/wmemchr-impl.h b/include/libgnulib/wmemchr-impl.h deleted file mode 100755 index 0cdecb8..0000000 --- a/include/libgnulib/wmemchr-impl.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Search wide character array for a wide character. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 file 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 program. If not, see . */ - -wchar_t * -wmemchr (const wchar_t *s, wchar_t c, size_t n) -{ - for (; n > 0; s++, n--) - { - if (*s == c) - return (wchar_t *) s; - } - return NULL; -} diff --git a/include/libgnulib/wmemcmp-impl.h b/include/libgnulib/wmemcmp-impl.h deleted file mode 100755 index 71259ba..0000000 --- a/include/libgnulib/wmemcmp-impl.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Compare wide character arrays. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 file 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 program. If not, see . */ - -int -wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n) -{ - for (; n > 0;) - { - wchar_t wc1 = *s1++; - wchar_t wc2 = *s2++; - if (wc1 == wc2) - { - n--; - continue; - } - /* ISO C requires wmemcmp to work with all wchar_t values. - We cannot assume that wc1 and wc2 are in the range 0..INT_MAX. */ - return _GL_CMP (wc1, wc2); - /* > 0 if wc1 > wc2, < 0 if wc1 < wc2. */ - } - return 0; -} diff --git a/include/libgnulib/wmemcpy-impl.h b/include/libgnulib/wmemcpy-impl.h deleted file mode 100755 index 60492b9..0000000 --- a/include/libgnulib/wmemcpy-impl.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copy wide character array. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 file 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 program. If not, see . */ - -wchar_t * -wmemcpy (wchar_t *dest, const wchar_t *src, size_t n) -{ - wchar_t *destptr = dest; - - for (; n > 0; n--) - *destptr++ = *src++; - return dest; -} diff --git a/include/libgnulib/wmemmove-impl.h b/include/libgnulib/wmemmove-impl.h deleted file mode 100755 index 5174256..0000000 --- a/include/libgnulib/wmemmove-impl.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Copy wide character array. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -wchar_t * -wmemmove (wchar_t *dest, const wchar_t *src, size_t n) -{ - if (dest < src) - { - wchar_t *destptr = dest; - const wchar_t *srcptr = src; - for (; n > 0; n--) - *destptr++ = *srcptr++; - } - else if (dest > src) - { - wchar_t *destptr = dest + n - 1; - const wchar_t *srcptr = src + n - 1; - for (; n > 0; n--) - *destptr-- = *srcptr--; - } - return dest; -} diff --git a/include/libgnulib/wmemset-impl.h b/include/libgnulib/wmemset-impl.h deleted file mode 100755 index 915cf7b..0000000 --- a/include/libgnulib/wmemset-impl.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Fill wide character array. - Copyright (C) 1999, 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 1999. - - This file 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 file 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 program. If not, see . */ - -wchar_t * -wmemset (wchar_t *s, wchar_t c, size_t n) -{ - wchar_t *ptr = s; - - for (; n > 0; n--) - *ptr++ = c; - return s; -} diff --git a/include/libgnulib/wprintf-parse.h b/include/libgnulib/wprintf-parse.h deleted file mode 100755 index 43a6430..0000000 --- a/include/libgnulib/wprintf-parse.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Parse wprintf format string. - Copyright (C) 1999-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* This file can be parametrized with the following macros: - STATIC Set to 'static' to declare the function static. */ -#ifndef _WPRINTF_PARSE_H -#define _WPRINTF_PARSE_H - -#if HAVE_FEATURES_H -# include /* for __GLIBC__, __UCLIBC__ */ -#endif - -#include "printf-args.h" - - -/* Flags */ -#define FLAG_GROUP 1 /* ' flag */ -#define FLAG_LEFT 2 /* - flag */ -#define FLAG_SHOWSIGN 4 /* + flag */ -#define FLAG_SPACE 8 /* space flag */ -#define FLAG_ALT 16 /* # flag */ -#define FLAG_ZERO 32 -#if __GLIBC__ >= 2 && !defined __UCLIBC__ -# define FLAG_LOCALIZED 64 /* I flag, uses localized digits */ -#endif - -/* arg_index value indicating that no argument is consumed. */ -#define ARG_NONE (~(size_t)0) - -/* Number of directly allocated directives (no malloc() needed). */ -#define N_DIRECT_ALLOC_DIRECTIVES 7 - -/* A parsed directive. */ -typedef struct -{ - const wchar_t* dir_start; - const wchar_t* dir_end; - int flags; - const wchar_t* width_start; - const wchar_t* width_end; - size_t width_arg_index; - const wchar_t* precision_start; - const wchar_t* precision_end; - size_t precision_arg_index; - wchar_t conversion; /* d i b B o u x X f F e E g G a A c s p n U % but not C S */ - size_t arg_index; -} -wchar_t_directive; - -/* A parsed format string. */ -typedef struct -{ - size_t count; - wchar_t_directive *dir; - size_t max_width_length; - size_t max_precision_length; - wchar_t_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES]; -} -wchar_t_directives; - - -/* Parses the format string. Fills in the number N of directives, and fills - in directives[0], ..., directives[N-1], and sets directives[N].dir_start - to the end of the format string. Also fills in the arg_type fields of the - arguments and the needed count of arguments. */ -#ifdef STATIC -STATIC -#else -extern -#endif -int wprintf_parse (const wchar_t *format, wchar_t_directives *d, arguments *a); - -#endif /* _WPRINTF_PARSE_H */ diff --git a/include/libgnulib/write-any-file.h b/include/libgnulib/write-any-file.h deleted file mode 100755 index 412b981..0000000 --- a/include/libgnulib/write-any-file.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Determine whether we can write any file. - - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - - -bool can_write_any_file (void); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xalloc-oversized.h b/include/libgnulib/xalloc-oversized.h deleted file mode 100755 index cfa527d..0000000 --- a/include/libgnulib/xalloc-oversized.h +++ /dev/null @@ -1,65 +0,0 @@ -/* xalloc-oversized.h -- memory allocation size checking - - Copyright (C) 1990-2000, 2003-2004, 2006-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef XALLOC_OVERSIZED_H_ -#define XALLOC_OVERSIZED_H_ - -#include -#include - -/* True if N * S does not fit into both ptrdiff_t and size_t. - N and S should be nonnegative and free of side effects. - This expands to a constant expression if N and S are both constants. - By gnulib convention, SIZE_MAX represents overflow in size_t - calculations, so the conservative size_t-based dividend to use here - is SIZE_MAX - 1. */ -#define __xalloc_oversized(n, s) \ - ((s) != 0 \ - && (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n)) - -/* Return 1 if and only if an array of N objects, each of size S, - cannot exist reliably because its total size in bytes would exceed - MIN (PTRDIFF_MAX, SIZE_MAX - 1). - - N and S should be nonnegative and free of side effects. - - Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can - misbehave if N and S are both narrower than ptrdiff_t and size_t, - and can be rewritten as (xalloc_oversized (N, S) ? NULL - : malloc (N * (size_t) S)). - - This is a macro, not a function, so that it works even if an - argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ -#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX -# define xalloc_oversized(n, s) \ - __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) -#elif 5 <= __GNUC__ && !defined __clang__ && !defined __ICC \ - && PTRDIFF_MAX < SIZE_MAX -# define xalloc_oversized(n, s) \ - (__builtin_constant_p (n) && __builtin_constant_p (s) \ - ? __xalloc_oversized (n, s) \ - : __extension__ \ - ({ ptrdiff_t __xalloc_count; \ - __builtin_mul_overflow (n, s, &__xalloc_count); })) - -/* Other compilers use integer division; this may be slower but is - more portable. */ -#else -# define xalloc_oversized(n, s) __xalloc_oversized (n, s) -#endif - -#endif /* !XALLOC_OVERSIZED_H_ */ diff --git a/include/libgnulib/xalloc.h b/include/libgnulib/xalloc.h deleted file mode 100755 index 75a5db3..0000000 --- a/include/libgnulib/xalloc.h +++ /dev/null @@ -1,215 +0,0 @@ -/* xalloc.h -- malloc with out-of-memory checking - - Copyright (C) 1990-2000, 2003-2004, 2006-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef XALLOC_H_ -#define XALLOC_H_ - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn, - _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#if GNULIB_XALLOC -# include "idx.h" -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef XALLOC_INLINE -# define XALLOC_INLINE _GL_INLINE -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if GNULIB_XALLOC_DIE - -/* This function is always triggered when memory is exhausted. - It must be defined by the application, either explicitly - or by using gnulib's xalloc-die module. This is the - function to call when one wants the program to die because of a - memory allocation failure. */ -_Noreturn void xalloc_die (void); - -#endif /* GNULIB_XALLOC_DIE */ - -#if GNULIB_XALLOC - -void *xmalloc (size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *ximalloc (idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xinmalloc (idx_t n, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xzalloc (size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xizalloc (idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xcalloc (size_t n, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xicalloc (idx_t n, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xrealloc (void *p, size_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2)); -void *xirealloc (void *p, idx_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xreallocarray (void *p, size_t n, size_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); -void *xireallocarray (void *p, idx_t n, idx_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *x2realloc (void *p, size_t *ps) /* superseded by xpalloc */ - _GL_ATTRIBUTE_RETURNS_NONNULL; -void *x2nrealloc (void *p, size_t *pn, size_t s) /* superseded by xpalloc */ - _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) - _GL_ATTRIBUTE_RETURNS_NONNULL; -void *xmemdup (void const *p, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -void *ximemdup (void const *p, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((2)) _GL_ATTRIBUTE_RETURNS_NONNULL; -char *ximemdup0 (void const *p, idx_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; -char *xstrdup (char const *str) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* In the following macros, T must be an elementary or structure/union or - typedef'ed type, or a pointer to such a type. To apply one of the - following macros to a function pointer or array type, you need to typedef - it first and use the typedef name. */ - -/* Allocate an object of type T dynamically, with error checking. */ -/* extern t *XMALLOC (typename t); */ -# define XMALLOC(t) ((t *) xmalloc (sizeof (t))) - -/* Allocate memory for N elements of type T, with error checking. */ -/* extern t *XNMALLOC (size_t n, typename t); */ -# define XNMALLOC(n, t) \ - ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t)))) - -/* Allocate an object of type T dynamically, with error checking, - and zero it. */ -/* extern t *XZALLOC (typename t); */ -# define XZALLOC(t) ((t *) xzalloc (sizeof (t))) - -/* Allocate memory for N elements of type T, with error checking, - and zero it. */ -/* extern t *XCALLOC (size_t n, typename t); */ -# define XCALLOC(n, t) \ - ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t)))) - - -/* Allocate an array of N objects, each with S bytes of memory, - dynamically, with error checking. S must be nonzero. */ - -void *xnmalloc (size_t n, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2)) _GL_ATTRIBUTE_RETURNS_NONNULL; - -/* FIXME: Deprecate this in favor of xreallocarray? */ -/* Change the size of an allocated block of memory P to an array of N - objects each of S bytes, with error checking. S must be nonzero. */ - -XALLOC_INLINE void *xnrealloc (void *p, size_t n, size_t s) - _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3)); -XALLOC_INLINE void * -xnrealloc (void *p, size_t n, size_t s) -{ - return xreallocarray (p, n, s); -} - -/* Return a pointer to a new buffer of N bytes. This is like xmalloc, - except it returns char *. */ - -char *xcharalloc (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; - -#endif /* GNULIB_XALLOC */ - - -#ifdef __cplusplus -} -#endif - - -#if GNULIB_XALLOC && defined __cplusplus - -/* C++ does not allow conversions from void * to other pointer types - without a cast. Use templates to work around the problem when - possible. */ - -template inline T * -xrealloc (T *p, size_t s) -{ - return (T *) xrealloc ((void *) p, s); -} - -template inline T * -xreallocarray (T *p, size_t n, size_t s) -{ - return (T *) xreallocarray ((void *) p, n, s); -} - -/* FIXME: Deprecate this in favor of xreallocarray? */ -template inline T * -xnrealloc (T *p, size_t n, size_t s) -{ - return xreallocarray (p, n, s); -} - -template inline T * -x2realloc (T *p, size_t *pn) -{ - return (T *) x2realloc ((void *) p, pn); -} - -template inline T * -x2nrealloc (T *p, size_t *pn, size_t s) -{ - return (T *) x2nrealloc ((void *) p, pn, s); -} - -template inline T * -xmemdup (T const *p, size_t s) -{ - return (T *) xmemdup ((void const *) p, s); -} - -#endif /* GNULIB_XALLOC && C++ */ - - -_GL_INLINE_HEADER_END - -#endif /* !XALLOC_H_ */ diff --git a/include/libgnulib/xbinary-io.h b/include/libgnulib/xbinary-io.h deleted file mode 100755 index 52310e0..0000000 --- a/include/libgnulib/xbinary-io.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Binary mode I/O with checking - Copyright 2017-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -#ifndef _XBINARY_IO_H -#define _XBINARY_IO_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _Noreturn. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "binary-io.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef XBINARY_IO_INLINE -# define XBINARY_IO_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#if O_BINARY -extern _Noreturn void xset_binary_mode_error (void); -#else -XBINARY_IO_INLINE void xset_binary_mode_error (void) {} -#endif - -/* Set the mode of FD to MODE, which should be either O_TEXT or O_BINARY. - Report an error and exit if this fails. */ - -XBINARY_IO_INLINE void -xset_binary_mode (int fd, int mode) -{ - if (set_binary_mode (fd, mode) < 0) - xset_binary_mode_error (); -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _XBINARY_IO_H */ diff --git a/include/libgnulib/xfreopen.h b/include/libgnulib/xfreopen.h deleted file mode 100755 index 03cf68d..0000000 --- a/include/libgnulib/xfreopen.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Open a file, reusing a given stream, with error checking. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Opens the file FILENAME with mode MODE, reusing the given stream FP. - Upon failure, emits an error message and exits the program. */ -void xfreopen (char const *filename, char const *mode, FILE *fp); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xgetaname-impl.h b/include/libgnulib/xgetaname-impl.h deleted file mode 100755 index 4a76430..0000000 --- a/include/libgnulib/xgetaname-impl.h +++ /dev/null @@ -1,63 +0,0 @@ -/* xgetaname-impl.c -- common implementation of xgethostname and xgetdomainname - - Copyright (C) 1992, 1996, 2000-2001, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* written by Jim Meyering and Paul Eggert */ - -#include -#include -#include -#include - -#include "xalloc.h" - -/* Return the current host or domain name in malloc'd storage. - If malloc fails, exit. - Upon any other failure, return NULL and set errno. */ -char * -XGETANAME (void) -{ - char buf[100]; - idx_t size = sizeof buf; - char *name = buf; - char *alloc = NULL; - - while (1) - { - /* Use SIZE_1 here rather than SIZE to work around the bug in - SunOS 5.5's gethostname whereby it NUL-terminates HOSTNAME - even when the name is as long as the supplied buffer. */ - idx_t size_1 = size - 1; - name[size_1] = '\0'; - errno = 0; - if (GETANAME (name, size_1) == 0) - { - /* Check whether the name was possibly truncated; POSIX does not - specify whether a truncated name is null-terminated. */ - idx_t actual_size = strlen (name) + 1; - if (actual_size < size_1) - return alloc ? alloc : ximemdup (name, actual_size); - errno = 0; - } - free (alloc); - if (errno != 0 && errno != ENAMETOOLONG && errno != EINVAL - /* macOS/Darwin does this when SIZE_1 is too small. */ - && errno != ENOMEM) - return NULL; - name = alloc = xpalloc (NULL, &size, 1, -1, 1); - } -} diff --git a/include/libgnulib/xgetcwd.h b/include/libgnulib/xgetcwd.h deleted file mode 100755 index 67749af..0000000 --- a/include/libgnulib/xgetcwd.h +++ /dev/null @@ -1,35 +0,0 @@ -/* prototype for xgetcwd - Copyright (C) 1995, 2001, 2003, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -extern char *xgetcwd (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xgetdomainname.h b/include/libgnulib/xgetdomainname.h deleted file mode 100755 index 526d1a7..0000000 --- a/include/libgnulib/xgetdomainname.h +++ /dev/null @@ -1,48 +0,0 @@ -/* xgetdomainname.h -- Return the NIS domain name, without size limitations. - Copyright (C) 1992, 1996, 2000-2001, 2003, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _XGETDOMAINNAME_H -#define _XGETDOMAINNAME_H - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the NIS domain name of the machine, in malloc'd storage. - WARNING! The NIS domain name is unrelated to the fully qualified host name - of the machine. It is also unrelated to email addresses. - WARNING! The NIS domain name is usually the empty string or "(none)" when - not using NIS. - If malloc fails, exit. - Upon any other failure, set errno and return NULL. */ -extern char *xgetdomainname (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - -#endif /* _XGETDOMAINNAME_H */ diff --git a/include/libgnulib/xgethostname.h b/include/libgnulib/xgethostname.h deleted file mode 100755 index 4e293dc..0000000 --- a/include/libgnulib/xgethostname.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Return current hostname with unlimited length. - - Copyright (C) 2003-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -char *xgethostname (void) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xmalloca.h b/include/libgnulib/xmalloca.h deleted file mode 100755 index a096511..0000000 --- a/include/libgnulib/xmalloca.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Safe automatic memory allocation with out of memory checking. - Copyright (C) 2003, 2005, 2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -#ifndef _XMALLOCA_H -#define _XMALLOCA_H - -/* This file uses _GL_ATTRIBUTE_ALLOC_SIZE, _GL_ATTRIBUTE_DEALLOC, - _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL, HAVE_ALLOCA. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include "malloca.h" -#include "xalloc.h" -#include "xalloc-oversized.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* xmalloca(N) is a checking safe variant of alloca(N). It allocates N bytes - of memory allocated on the stack, that must be freed using freea() before - the function returns. N should not have side effects. - Upon failure, it exits with an error message. */ -#if HAVE_ALLOCA -# define xmalloca(N) \ - ((N) < 4032 - (2 * sa_alignment_max - 1) \ - ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ - + (2 * sa_alignment_max - 1)) \ - & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ - : xmmalloca (N)) -extern void * xmmalloca (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1) - _GL_ATTRIBUTE_ALLOC_SIZE ((1)) _GL_ATTRIBUTE_RETURNS_NONNULL; -#else -# define xmalloca(N) \ - xmalloc (N) -#endif - -/* xnmalloca(N,S) is an overflow-safe variant of xmalloca (N * S). - It allocates an array of N objects, each with S bytes of memory, - on the stack. S must be positive and N must be nonnegative, - and S and N should not have side effects. - The array must be freed using freea() before the function returns. - Upon failure, it exits with an error message. */ -#if HAVE_ALLOCA -/* Rely on xmalloca (SIZE_MAX) calling xalloc_die (). */ -# define xnmalloca(n, s) \ - xmalloca (xalloc_oversized (n, s) ? (size_t) (-1) : (n) * (size_t) (s)) -#else -# define xnmalloca(n, s) \ - xnmalloc (n, s) -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _XMALLOCA_H */ diff --git a/include/libgnulib/xmemcoll.h b/include/libgnulib/xmemcoll.h deleted file mode 100755 index 9a59948..0000000 --- a/include/libgnulib/xmemcoll.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Locale-specific memory comparison. - - Copyright (C) 2002-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -int xmemcoll (char *restrict, size_t, char *restrict, size_t); -int xmemcoll0 (char const *, size_t, char const *, size_t); - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xmemdup0.h b/include/libgnulib/xmemdup0.h deleted file mode 100755 index 8a68a8d..0000000 --- a/include/libgnulib/xmemdup0.h +++ /dev/null @@ -1,41 +0,0 @@ -/* xmemdup0.h -- copy a block of arbitrary bytes, plus a trailing NUL - - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef XMEMDUP_H_ -# define XMEMDUP_H_ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -char *xmemdup0 (void const *p, size_t s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -# ifdef __cplusplus -} -# endif - -#endif /* !XMEMDUP0_H_ */ diff --git a/include/libgnulib/xnanosleep.h b/include/libgnulib/xnanosleep.h deleted file mode 100755 index dcf2551..0000000 --- a/include/libgnulib/xnanosleep.h +++ /dev/null @@ -1,25 +0,0 @@ -/* A variant of nanosleep that takes a 'double' argument and handles EINTR. - Copyright (C) 2004-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - -int xnanosleep (double); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xprintf.h b/include/libgnulib/xprintf.h deleted file mode 100755 index 202dbd2..0000000 --- a/include/libgnulib/xprintf.h +++ /dev/null @@ -1,71 +0,0 @@ -/* printf wrappers that fail immediately for non-file-related errors - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _XPRINTF_H -#define _XPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -extern int xprintf (char const *restrict format, ...) -#if GNULIB_VPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 1, 2)) -#endif - ; - -extern int xvprintf (char const *restrict format, va_list args) -#if GNULIB_VPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 1, 0)) -#endif - ; - -extern int xfprintf (FILE *restrict stream, char const *restrict format, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 3)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 3)) -#endif - ; - -extern int xvfprintf (FILE *restrict stream, char const *restrict format, - va_list args) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 2, 0)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 2, 0)) -#endif - ; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libgnulib/xreadlink.h b/include/libgnulib/xreadlink.h deleted file mode 100755 index bfce10a..0000000 --- a/include/libgnulib/xreadlink.h +++ /dev/null @@ -1,44 +0,0 @@ -/* Reading symbolic links without size limitation. - - Copyright (C) 2001, 2003-2004, 2007, 2009-2024 Free Software Foundation, - Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering */ - -/* This file uses _GL_ATTRIBUTE_MALLOC. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -extern char *xreadlink (char const *filename) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#if GNULIB_XREADLINKAT -extern char *xreadlinkat (int fd, char const *filename) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xsetenv.h b/include/libgnulib/xsetenv.h deleted file mode 100755 index 4b5dbe8..0000000 --- a/include/libgnulib/xsetenv.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Setting environment variables, with out-of-memory checking. - Copyright (C) 2001-2002, 2007, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Get unsetenv(). It can be used without error checking. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Set NAME to VALUE in the environment. - If REPLACE is nonzero, overwrite an existing value. - With error checking. */ -extern void xsetenv (const char *name, const char *value, int replace); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xsize.h b/include/libgnulib/xsize.h deleted file mode 100755 index 5ae8600..0000000 --- a/include/libgnulib/xsize.h +++ /dev/null @@ -1,130 +0,0 @@ -/* xsize.h -- Checked size_t computations. - - Copyright (C) 2003, 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _XSIZE_H -#define _XSIZE_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, HAVE_STDINT_H. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get size_t. */ -#include - -/* Get INT_MAX, SIZE_MAX. */ -#include -#if HAVE_STDINT_H -# include -#endif - -/* Get ATTRIBUTE_PURE. */ -#include "attribute.h" - -_GL_INLINE_HEADER_BEGIN -#ifndef XSIZE_INLINE -# define XSIZE_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* The size of memory objects is often computed through expressions of - type size_t. Example: - void* p = malloc (header_size + n * element_size). - These computations can lead to overflow. When this happens, malloc() - returns a piece of memory that is way too small, and the program then - crashes while attempting to fill the memory. - To avoid this, the functions and macros in this file check for overflow. - The convention is that SIZE_MAX represents overflow. - malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc - implementation that uses mmap --, it's recommended to use size_overflow_p() - or size_in_bounds_p() before invoking malloc(). - The example thus becomes: - size_t size = xsum (header_size, xtimes (n, element_size)); - void *p = (size_in_bounds_p (size) ? malloc (size) : NULL); -*/ - -/* Convert an arbitrary N >= 0 to type size_t. - N should not have side effects. */ -#define xcast_size_t(N) \ - ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX) - -/* Sum of two sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE -xsum (size_t size1, size_t size2) -{ - if (INT_MAX < SIZE_MAX) - { - /* Optimize for the common case where size_t arithmetic wraps - around without undefined behavior. */ - size_t sum = size1 + size2; - return size1 <= sum ? sum : SIZE_MAX; - } - - return size1 <= SIZE_MAX - size2 ? size1 + size2 : SIZE_MAX; -} - -/* Sum of three sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE -xsum3 (size_t size1, size_t size2, size_t size3) -{ - return xsum (xsum (size1, size2), size3); -} - -/* Sum of four sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE -xsum4 (size_t size1, size_t size2, size_t size3, size_t size4) -{ - return xsum (xsum (xsum (size1, size2), size3), size4); -} - -/* Maximum of two sizes, with overflow check. */ -XSIZE_INLINE size_t ATTRIBUTE_PURE -xmax (size_t size1, size_t size2) -{ - /* No explicit check is needed here, because for any n: - max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */ - return (size1 >= size2 ? size1 : size2); -} - -/* Multiplication of a count with an element size, with overflow check. - The count must be >= 0 and the element size must be > 0. - Arguments should not have side effects. - The element size's type should be no wider than size_t. - This is a macro, not a function, so that it works correctly even - when N is of a wider type and N > SIZE_MAX. */ -#define xtimes(N, ELSIZE) \ - ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX) - -/* Check for overflow. */ -#define size_overflow_p(SIZE) \ - ((SIZE) == SIZE_MAX) -/* Check against overflow. */ -#define size_in_bounds_p(SIZE) \ - ((SIZE) != SIZE_MAX) - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* _XSIZE_H */ diff --git a/include/libgnulib/xstdopen.h b/include/libgnulib/xstdopen.h deleted file mode 100755 index bb16872..0000000 --- a/include/libgnulib/xstdopen.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Ensure that stdin, stdout, stderr are open. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Ensures that the file descriptors of stdin, stdout, stderr (0, 1, 2) are - open. Exits the program with an error message upon failure; the error - message may not appear if stderr is closed. */ -extern void xstdopen (void); - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xstrerror.h b/include/libgnulib/xstrerror.h deleted file mode 100755 index db27a84..0000000 --- a/include/libgnulib/xstrerror.h +++ /dev/null @@ -1,45 +0,0 @@ -/* Return diagnostic string based on error code. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _XSTRERROR_H -#define _XSTRERROR_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get 'free'. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return a freshly allocated diagnostic string that contains a given string - MESSAGE and the (internationalized) description of the error code ERRNUM. - Upon [ENOMEM] memory allocation error, call xalloc_die. - - This function is multithread-safe. */ -extern char *xstrerror (const char *message, int errnum) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - -#ifdef __cplusplus -} -#endif - -#endif /* _XSTRERROR_H */ diff --git a/include/libgnulib/xstriconv.h b/include/libgnulib/xstriconv.h deleted file mode 100755 index d8abc20..0000000 --- a/include/libgnulib/xstriconv.h +++ /dev/null @@ -1,85 +0,0 @@ -/* Charset conversion with out-of-memory checking. - Copyright (C) 2001-2004, 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible and Simon Josefsson. - - 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 3 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, see . */ - -#ifndef _XSTRICONV_H -#define _XSTRICONV_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_ICONV. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#if HAVE_ICONV -#include -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if HAVE_ICONV - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - The conversion descriptor is passed as CD. - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Upon memory allocation failure, report the error and exit. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int xmem_cd_iconv (const char *src, size_t srclen, iconv_t cd, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - The conversion descriptor is passed as CD. Both the "from" and the "to" - encoding must use a single NUL byte at the end of the string (i.e. not - UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Upon memory allocation failure, report the error and exit. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * xstr_cd_iconv (const char *src, iconv_t cd) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#endif - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - Both the "from" and the "to" encoding must use a single NUL byte at the - end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Upon memory allocation failure, report the error and exit. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * xstr_iconv (const char *src, - const char *from_codeset, const char *to_codeset) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _XSTRICONV_H */ diff --git a/include/libgnulib/xstriconveh.h b/include/libgnulib/xstriconveh.h deleted file mode 100755 index 39d7d3c..0000000 --- a/include/libgnulib/xstriconveh.h +++ /dev/null @@ -1,122 +0,0 @@ -/* Charset conversion with out-of-memory checking. - Copyright (C) 2001-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible and Simon Josefsson. - - 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 3 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, see . */ - -#ifndef _XSTRICONVEH_H -#define _XSTRICONVEH_H - -/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_ICONV. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Get the 'enum iconv_ilseq_handler' and iconveh_t types, and the - iconveh_open, iconveh_close declarations. */ -#include "striconveh.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -#if HAVE_ICONV - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - CD points to the conversion descriptor from FROMCODE to TOCODE, created by - the function iconveh_open(). - If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this - array is filled with offsets into the result, i.e. the character starting - at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], - and other offsets are set to (size_t)(-1). - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Upon memory allocation failure, report the error and exit. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int - xmem_cd_iconveh (const char *src, size_t srclen, - const iconveh_t *cd, - enum iconv_ilseq_handler handler, - size_t *offsets, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - CD points to the conversion descriptor from FROMCODE to TOCODE, created by - the function iconveh_open(). - Both the "from" and the "to" encoding must use a single NUL byte at the end - of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Upon memory allocation failure, report the error and exit. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * - xstr_cd_iconveh (const char *src, - const iconveh_t *cd, - enum iconv_ilseq_handler handler) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#endif - -/* Convert an entire string from one encoding to another, using iconv. - The original string is at [SRC,...,SRC+SRCLEN-1]. - If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this - array is filled with offsets into the result, i.e. the character starting - at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]], - and other offsets are set to (size_t)(-1). - *RESULTP and *LENGTH should initially be a scratch buffer and its size, - or *RESULTP can initially be NULL. - May erase the contents of the memory at *RESULTP. - Upon memory allocation failure, report the error and exit. - Return value: 0 if successful, otherwise -1 and errno set. - If successful: The resulting string is stored in *RESULTP and its length - in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is - unchanged if no dynamic memory allocation was necessary. */ -extern int - xmem_iconveh (const char *src, size_t srclen, - const char *from_codeset, const char *to_codeset, - enum iconv_ilseq_handler handler, - size_t *offsets, - char **resultp, size_t *lengthp); - -/* Convert an entire string from one encoding to another, using iconv. - The original string is the NUL-terminated string starting at SRC. - Both the "from" and the "to" encoding must use a single NUL byte at the - end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). - Allocate a malloced memory block for the result. - Upon memory allocation failure, report the error and exit. - Return value: the freshly allocated resulting NUL-terminated string if - successful, otherwise NULL and errno set. */ -extern char * - xstr_iconveh (const char *src, - const char *from_codeset, const char *to_codeset, - enum iconv_ilseq_handler handler) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - - -#ifdef __cplusplus -} -#endif - - -#endif /* _XSTRICONVEH_H */ diff --git a/include/libgnulib/xstring-desc.h b/include/libgnulib/xstring-desc.h deleted file mode 100755 index 36124cb..0000000 --- a/include/libgnulib/xstring-desc.h +++ /dev/null @@ -1,116 +0,0 @@ -/* String descriptors, with out-of-memory checking. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -/* Written by Bruno Haible , 2023. */ - -#ifndef _XSTRING_DESC_H -#define _XSTRING_DESC_H 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include -#include "string-desc.h" -#include "xalloc.h" - - -_GL_INLINE_HEADER_BEGIN -#ifndef GL_XSTRING_DESC_INLINE -# define GL_XSTRING_DESC_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* ==== Memory-allocating operations on string descriptors ==== */ - -/* Return a string of length N, with uninitialized contents. */ -#if 0 /* Defined inline below. */ -extern string_desc_t xstring_desc_new (idx_t n); -#endif - -/* Return a string of length N, filled with C. */ -#if 0 /* Defined inline below. */ -extern string_desc_t xstring_desc_new_filled (idx_t n, char c); -#endif - -/* Return a copy of string S. */ -#if 0 /* Defined inline below. */ -extern string_desc_t xstring_desc_copy (string_desc_t s); -#endif - -/* Return the concatenation of N strings. N must be > 0. */ -extern string_desc_t xstring_desc_concat (idx_t n, string_desc_t string1, ...); - -/* Construct and return a copy of string S, as a NUL-terminated C string. */ -#if 0 /* Defined inline below. */ -extern char * xstring_desc_c (string_desc_t s) _GL_ATTRIBUTE_DEALLOC_FREE; -#endif - - -/* ==== Inline function definitions ==== */ - -GL_XSTRING_DESC_INLINE string_desc_t -xstring_desc_new (idx_t n) -{ - string_desc_t result; - if (string_desc_new (&result, n) < 0) - xalloc_die (); - return result; -} - -GL_XSTRING_DESC_INLINE string_desc_t -xstring_desc_new_filled (idx_t n, char c) -{ - string_desc_t result; - if (string_desc_new_filled (&result, n, c) < 0) - xalloc_die (); - return result; -} - -GL_XSTRING_DESC_INLINE string_desc_t -xstring_desc_copy (string_desc_t s) -{ - string_desc_t result; - if (string_desc_copy (&result, s) < 0) - xalloc_die (); - return result; -} - -GL_XSTRING_DESC_INLINE -_GL_ATTRIBUTE_DEALLOC_FREE -char * -xstring_desc_c (string_desc_t s) -{ - char *result = string_desc_c (s); - if (result == NULL) - xalloc_die (); - return result; -} - - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - - -#endif /* _XSTRING_DESC_H */ diff --git a/include/libgnulib/xstrndup.h b/include/libgnulib/xstrndup.h deleted file mode 100755 index 272265e..0000000 --- a/include/libgnulib/xstrndup.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Duplicate a bounded initial segment of a string, with out-of-memory - checking. - Copyright (C) 2003, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* This file uses _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return a newly allocated copy of at most N bytes of STRING. - In other words, return a copy of the initial segment of length N of - STRING. */ -extern char *xstrndup (const char *string, size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_RETURNS_NONNULL; - - -#ifdef __cplusplus -} -#endif diff --git a/include/libgnulib/xstrtod.h b/include/libgnulib/xstrtod.h deleted file mode 100755 index f6a1ed8..0000000 --- a/include/libgnulib/xstrtod.h +++ /dev/null @@ -1,84 +0,0 @@ -/* Error-checking interface to strtod-like functions. - - Copyright (C) 1996, 1998, 2003-2004, 2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#ifndef XSTRTOD_H -#define XSTRTOD_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Converts the initial portion of the string starting at STR (if PTR != NULL) - or the entire string starting at STR (if PTR == NULL) to a number of type - 'double'. - CONVERT should be a conversion function with the same calling conventions - as strtod, such as strtod or c_strtod. - If successful, it returns true, with *RESULT set to the result. - If it fails, it returns false, with *RESULT and errno set. - In total, there are the following cases: - - Condition RET *RESULT errno - ----------------------------------------------------------------------------- - conversion error: no number parsed false 0.0 EINVAL or 0 - PTR == NULL, number parsed but junk after number false value 0 - NaN true NaN 0 - ±Infinity true ±HUGE_VAL 0 - overflow false ±HUGE_VAL ERANGE - gradual underflow true near zero 0 - flush-to-zero underflow true ±0.0 ERANGE - other finite value true value 0 - - In both cases, if PTR != NULL, *PTR is set to point to the character after - the parsed number. */ -bool xstrtod (const char *str, const char **ptr, double *result, - double (*convert) (char const *, char **)); - -/* Converts the initial portion of the string starting at STR (if PTR != NULL) - or the entire string starting at STR (if PTR == NULL) to a number of type - 'long double'. - CONVERT should be a conversion function with the same calling conventions - as strtold, such as strtold or c_strtold. - If successful, it returns true, with *RESULT set to the result. - If it fails, it returns false, with *RESULT and errno set. - In total, there are the following cases: - - Condition RET *RESULT errno - ----------------------------------------------------------------------------- - conversion error: no number parsed false 0.0L EINVAL or 0 - PTR == NULL, number parsed but junk after number false value 0 - NaN true NaN 0 - ±Infinity true ±HUGE_VALL 0 - overflow false ±HUGE_VALL ERANGE - gradual underflow true near zero 0 - flush-to-zero underflow true ±0.0L ERANGE - other finite value true value 0 - - In both cases, if PTR != NULL, *PTR is set to point to the character after - the parsed number. */ -bool xstrtold (const char *str, const char **ptr, long double *result, - long double (*convert) (char const *, char **)); - - -#ifdef __cplusplus -} -#endif - -#endif /* not XSTRTOD_H */ diff --git a/include/libgnulib/xstrtol-error.h b/include/libgnulib/xstrtol-error.h deleted file mode 100755 index ace787b..0000000 --- a/include/libgnulib/xstrtol-error.h +++ /dev/null @@ -1,51 +0,0 @@ -/* Error reporting interface for xstrto* functions. - - Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#ifndef XSTRTOL_ERROR_H_ -# define XSTRTOL_ERROR_H_ 1 - -/* This file uses _Noreturn. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -# include "xstrtol.h" - -# include - -/* Report an error for an invalid integer in an option argument. - - ERR is the error code returned by one of the xstrto* functions. - - Use OPT_IDX to decide whether to print the short option string "C" - or "-C" or a long option string derived from LONG_OPTIONS. OPT_IDX - is -2 if the short option "C" was used, without any leading "-"; it - is -1 if the short option "-C" was used; otherwise it is an index - into LONG_OPTIONS, which should have a name preceded by two '-' - characters. - - ARG is the option-argument containing the integer. - - After reporting an error, exit with a failure status. */ - -_Noreturn void xstrtol_fatal (enum strtol_error /* err */, - int /* opt_idx */, char /* c */, - struct option const * /* long_options */, - char const * /* arg */); - -#endif /* not XSTRTOL_ERROR_H_ */ diff --git a/include/libgnulib/xstrtol.h b/include/libgnulib/xstrtol.h deleted file mode 100755 index 45c8921..0000000 --- a/include/libgnulib/xstrtol.h +++ /dev/null @@ -1,81 +0,0 @@ -/* A more useful interface to strtol. - - Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#ifndef XSTRTOL_H_ -#define XSTRTOL_H_ 1 - -/* Get intmax_t, uintmax_t. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -enum strtol_error - { - LONGINT_OK = 0, - - /* These two values can be ORed together, to indicate that both - errors occurred. */ - LONGINT_OVERFLOW = 1, - LONGINT_INVALID_SUFFIX_CHAR = 2, - - LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW = (LONGINT_INVALID_SUFFIX_CHAR - | LONGINT_OVERFLOW), - LONGINT_INVALID = 4 - }; -typedef enum strtol_error strtol_error; - -/* Act like the system's strtol (NPTR, ENDPTR, BASE) except: - - The TYPE of the result might be something other than long int. - - Return strtol_error, and store any result through an additional - TYPE *VAL pointer instead of returning the result. - - If TYPE is unsigned, reject leading '-'. - - Behavior is undefined if BASE is negative, 1, or greater than 36. - (In this respect xstrtol acts like the C standard, not like POSIX.) - - Accept an additional char const *VALID_SUFFIXES pointer to a - possibly-empty string containing allowed numeric suffixes, - which multiply the value. These include SI suffixes like 'k' and 'M'; - these normally stand for powers of 1024, but if VALID_SUFFIXES also - includes '0' they can be followed by "B" to stand for the usual - SI powers of 1000 (or by "iB" to stand for powers of 1024 as before). - Other supported suffixes include 'K' for 1024 or 1000, 'b' for 512, - 'c' for 1, and 'w' for 2. - - Suppose that after the initial whitespace, the number is missing - but there is a valid suffix. Then the number is treated as 1. */ - -#define _DECLARE_XSTRTOL(name, type) \ - strtol_error name (char const *restrict /*nptr*/, \ - char **restrict /*endptr*/, \ - int /*base*/, \ - type *restrict /*val*/, \ - char const *restrict /*valid_suffixes*/); -_DECLARE_XSTRTOL (xstrtol, long int) -_DECLARE_XSTRTOL (xstrtoul, unsigned long int) -_DECLARE_XSTRTOL (xstrtoll, long long int) -_DECLARE_XSTRTOL (xstrtoull, unsigned long long int) -_DECLARE_XSTRTOL (xstrtoimax, intmax_t) -_DECLARE_XSTRTOL (xstrtoumax, uintmax_t) - - -#ifdef __cplusplus -} -#endif - -#endif /* not XSTRTOL_H_ */ diff --git a/include/libgnulib/xtime.h b/include/libgnulib/xtime.h deleted file mode 100755 index 39cc5be..0000000 --- a/include/libgnulib/xtime.h +++ /dev/null @@ -1,92 +0,0 @@ -/* xtime -- extended-resolution integer timestamps - - Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert. */ - -#ifndef XTIME_H_ -#define XTIME_H_ 1 - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef XTIME_INLINE -# define XTIME_INLINE _GL_INLINE -#endif - -/* xtime_t is a signed type used for timestamps. It is an integer - type that is a count of nanoseconds. */ -typedef long long int xtime_t; -#define XTIME_PRECISION 1000000000 - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return an extended time value that contains S seconds and NS - nanoseconds. S and NS should be nonnegative; otherwise, integer - overflow can occur even if the result is in range. */ -XTIME_INLINE xtime_t -xtime_make (xtime_t s, long int ns) -{ - return XTIME_PRECISION * s + ns; -} - -/* The following functions split an extended time value: - T = XTIME_PRECISION * xtime_sec (T) + xtime_nsec (T) - with 0 <= xtime_nsec (T) < XTIME_PRECISION. */ - -/* Return the number of seconds in T, which must be nonnegative. */ -XTIME_INLINE xtime_t -xtime_nonnegative_sec (xtime_t t) -{ - return t / XTIME_PRECISION; -} - -/* Return the number of seconds in T. */ -XTIME_INLINE xtime_t -xtime_sec (xtime_t t) -{ - return (t + (t < 0)) / XTIME_PRECISION - (t < 0); -} - -/* Return the number of nanoseconds in T, which must be nonnegative. */ -XTIME_INLINE long int -xtime_nonnegative_nsec (xtime_t t) -{ - return t % XTIME_PRECISION; -} - -/* Return the number of nanoseconds in T. */ -XTIME_INLINE long int -xtime_nsec (xtime_t t) -{ - long int ns = t % XTIME_PRECISION; - if (ns < 0) - ns += XTIME_PRECISION; - return ns; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/include/libgnulib/xvasprintf.h b/include/libgnulib/xvasprintf.h deleted file mode 100755 index fac633c..0000000 --- a/include/libgnulib/xvasprintf.h +++ /dev/null @@ -1,65 +0,0 @@ -/* vasprintf and asprintf with out-of-memory checking. - Copyright (C) 2002-2004, 2006-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef _XVASPRINTF_H -#define _XVASPRINTF_H - -/* This file uses _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_RETURNS_NONNULL. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD. */ -#include - -/* Get 'free'. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Prints formatted output to a string dynamically allocated with malloc(), - and returns it. Upon [ENOMEM] memory allocation error, it calls xalloc_die. - - It is the responsibility of the programmer to ensure that - - the format string is valid, - - the format string does not use %ls or %lc directives, and - - all widths in the format string and passed as arguments are >= -INT_MAX - and <= INT_MAX, - so that other errors - - [EINVAL] invalid format string, - - [EILSEQ] error during conversion between wide and multibyte characters, - - [EOVERFLOW] some specified width is > INT_MAX, - cannot occur. */ -extern char *xasprintf (const char *format, ...) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 2)) - _GL_ATTRIBUTE_RETURNS_NONNULL; -extern char *xvasprintf (const char *format, va_list args) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 1, 0)) - _GL_ATTRIBUTE_RETURNS_NONNULL; - -#ifdef __cplusplus -} -#endif - -#endif /* _XVASPRINTF_H */ diff --git a/include/libgnulib/yesno.h b/include/libgnulib/yesno.h deleted file mode 100755 index 81c0eca..0000000 --- a/include/libgnulib/yesno.h +++ /dev/null @@ -1,32 +0,0 @@ -/* declare yesno - Copyright (C) 2004, 2009-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#ifndef YESNO_H_ -# define YESNO_H_ - -#ifdef __cplusplus -extern "C" { -#endif - - -bool yesno (void); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/include/libiconv/export.h b/include/libiconv/export.h deleted file mode 100755 index e9fb806..0000000 --- a/include/libiconv/export.h +++ /dev/null @@ -1,8 +0,0 @@ - -#if @HAVE_VISIBILITY@ && BUILDING_LIBICONV -#define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_LIBICONV -#define LIBICONV_DLL_EXPORTED __declspec(dllexport) -#else -#define LIBICONV_DLL_EXPORTED -#endif diff --git a/include/libiconv/iconv.h b/include/libiconv/iconv.h deleted file mode 100755 index 2f0b61c..0000000 --- a/include/libiconv/iconv.h +++ /dev/null @@ -1,249 +0,0 @@ -/* Copyright (C) 1999-2022 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* When installed, this file is called "iconv.h". */ - -#ifndef _LIBICONV_H -#define _LIBICONV_H - -#define _LIBICONV_VERSION 0x0111 /* version number: (major<<8) + minor */ - -#if 1 && BUILDING_LIBICONV -#define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_LIBICONV -#define LIBICONV_DLL_EXPORTED __declspec(dllexport) -#else -#define LIBICONV_DLL_EXPORTED -#endif -extern LIBICONV_DLL_EXPORTED int _libiconv_version; /* Likewise */ - -/* We would like to #include any system header file which could define - iconv_t, 1. in order to eliminate the risk that the user gets compilation - errors because some other system header file includes /usr/include/iconv.h - which defines iconv_t or declares iconv after this file, 2. when compiling - for LIBICONV_PLUG, we need the proper iconv_t type in order to produce - binary compatible code. - But gcc's #include_next is not portable. Thus, once libiconv's iconv.h - has been installed in /usr/local/include, there is no way any more to - include the original /usr/include/iconv.h. We simply have to get away - without it. - Ad 1. The risk that a system header file does - #include "iconv.h" or #include_next "iconv.h" - is small. They all do #include . - Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It - has to be a scalar type because (iconv_t)(-1) is a possible return value - from iconv_open().) */ - -/* Define iconv_t ourselves. */ -#undef iconv_t -#define iconv_t libiconv_t -typedef void* iconv_t; - -/* Get size_t declaration. - Get wchar_t declaration if it exists. */ -#include - -/* Get errno declaration and values. */ -#include -/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS, - have EILSEQ in a different header. On these systems, define EILSEQ - ourselves. */ -#ifndef EILSEQ -#define EILSEQ -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Allocates descriptor for code conversion from encoding ‘fromcode’ to - encoding ‘tocode’. */ -#ifndef LIBICONV_PLUG -#define iconv_open libiconv_open -#endif -extern LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode); - -/* Converts, using conversion descriptor ‘cd’, at most ‘*inbytesleft’ bytes - starting at ‘*inbuf’, writing at most ‘*outbytesleft’ bytes starting at - ‘*outbuf’. - Decrements ‘*inbytesleft’ and increments ‘*inbuf’ by the same amount. - Decrements ‘*outbytesleft’ and increments ‘*outbuf’ by the same amount. */ -#ifndef LIBICONV_PLUG -#define iconv libiconv -#endif -extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); - -/* Frees resources allocated for conversion descriptor ‘cd’. */ -#ifndef LIBICONV_PLUG -#define iconv_close libiconv_close -#endif -extern LIBICONV_DLL_EXPORTED int iconv_close (iconv_t cd); - - -#ifdef __cplusplus -} -#endif - - -#ifndef LIBICONV_PLUG - -/* Nonstandard extensions. */ - -#if 1 -#if 0 -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be - included before . */ -#include -#include -#include -#endif -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* A type that holds all memory needed by a conversion descriptor. - A pointer to such an object can be used as an iconv_t. */ -typedef struct { - void* dummy1[28]; -#if 1 - mbstate_t dummy2; -#endif -} iconv_allocation_t; - -/* Allocates descriptor for code conversion from encoding ‘fromcode’ to - encoding ‘tocode’ into preallocated memory. Returns an error indicator - (0 or -1 with errno set). */ -#define iconv_open_into libiconv_open_into -extern LIBICONV_DLL_EXPORTED int iconv_open_into (const char* tocode, const char* fromcode, - iconv_allocation_t* resultp); - -/* Control of attributes. */ -#define iconvctl libiconvctl -extern LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument); - -/* Hook performed after every successful conversion of a Unicode character. */ -typedef void (*iconv_unicode_char_hook) (unsigned int uc, void* data); -/* Hook performed after every successful conversion of a wide character. */ -typedef void (*iconv_wide_char_hook) (wchar_t wc, void* data); -/* Set of hooks. */ -struct iconv_hooks { - iconv_unicode_char_hook uc_hook; - iconv_wide_char_hook wc_hook; - void* data; -}; - -/* Fallback function. Invoked when a small number of bytes could not be - converted to a Unicode character. This function should process all - bytes from inbuf and may produce replacement Unicode characters by calling - the write_replacement callback repeatedly. */ -typedef void (*iconv_unicode_mb_to_uc_fallback) - (const char* inbuf, size_t inbufsize, - void (*write_replacement) (const unsigned int *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -/* Fallback function. Invoked when a Unicode character could not be converted - to the target encoding. This function should process the character and - may produce replacement bytes (in the target encoding) by calling the - write_replacement callback repeatedly. */ -typedef void (*iconv_unicode_uc_to_mb_fallback) - (unsigned int code, - void (*write_replacement) (const char *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -#if 1 -/* Fallback function. Invoked when a number of bytes could not be converted to - a wide character. This function should process all bytes from inbuf and may - produce replacement wide characters by calling the write_replacement - callback repeatedly. */ -typedef void (*iconv_wchar_mb_to_wc_fallback) - (const char* inbuf, size_t inbufsize, - void (*write_replacement) (const wchar_t *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -/* Fallback function. Invoked when a wide character could not be converted to - the target encoding. This function should process the character and may - produce replacement bytes (in the target encoding) by calling the - write_replacement callback repeatedly. */ -typedef void (*iconv_wchar_wc_to_mb_fallback) - (wchar_t code, - void (*write_replacement) (const char *buf, size_t buflen, - void* callback_arg), - void* callback_arg, - void* data); -#else -/* If the wchar_t type does not exist, these two fallback functions are never - invoked. Their argument list therefore does not matter. */ -typedef void (*iconv_wchar_mb_to_wc_fallback) (); -typedef void (*iconv_wchar_wc_to_mb_fallback) (); -#endif -/* Set of fallbacks. */ -struct iconv_fallbacks { - iconv_unicode_mb_to_uc_fallback mb_to_uc_fallback; - iconv_unicode_uc_to_mb_fallback uc_to_mb_fallback; - iconv_wchar_mb_to_wc_fallback mb_to_wc_fallback; - iconv_wchar_wc_to_mb_fallback wc_to_mb_fallback; - void* data; -}; - -/* Requests for iconvctl. */ -#define ICONV_TRIVIALP 0 /* int *argument */ -#define ICONV_GET_TRANSLITERATE 1 /* int *argument */ -#define ICONV_SET_TRANSLITERATE 2 /* const int *argument */ -#define ICONV_GET_DISCARD_ILSEQ 3 /* int *argument */ -#define ICONV_SET_DISCARD_ILSEQ 4 /* const int *argument */ -#define ICONV_SET_HOOKS 5 /* const struct iconv_hooks *argument */ -#define ICONV_SET_FALLBACKS 6 /* const struct iconv_fallbacks *argument */ - -/* Listing of locale independent encodings. */ -#define iconvlist libiconvlist -extern LIBICONV_DLL_EXPORTED void iconvlist (int (*do_one) (unsigned int namescount, - const char * const * names, - void* data), - void* data); - -/* Canonicalize an encoding name. - The result is either a canonical encoding name, or name itself. */ -extern LIBICONV_DLL_EXPORTED const char * iconv_canonicalize (const char * name); - -/* 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 LIBICONV_DLL_EXPORTED void libiconv_set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - -#ifdef __cplusplus -} -#endif - -#endif - - -#endif /* _LIBICONV_H */ diff --git a/include/malloc.h b/include/malloc.h deleted file mode 100755 index cc7a8b9..0000000 --- a/include/malloc.h +++ /dev/null @@ -1,423 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -/** - * @file malloc.h - * @brief Heap memory allocation. - * - * [Debugging Native Memory Use](https://source.android.com/devices/tech/debug/native-memory) - * is the canonical source for documentation on Android's heap debugging - * features. - */ - -#include -#include -#include - -__BEGIN_DECLS - -#define __BIONIC_ALLOC_SIZE(...) __attribute__((__alloc_size__(__VA_ARGS__))) - -/** - * [malloc(3)](http://man7.org/linux/man-pages/man3/malloc.3.html) allocates - * memory on the heap. - * - * Returns a pointer to the allocated memory on success and returns a null - * pointer and sets `errno` on failure. - * - * Note that Android (like most Unix systems) allows "overcommit". This - * allows processes to allocate more memory than the system has, provided - * they don't use it all. This works because only "dirty" pages that have - * been written to actually require physical memory. In practice, this - * means that it's rare to see memory allocation functions return a null - * pointer, and that a non-null pointer does not mean that you actually - * have all of the memory you asked for. - * - * Note also that the Linux Out Of Memory (OOM) killer behaves differently - * for code run via `adb shell`. The assumption is that if you ran - * something via `adb shell` you're a developer who actually wants the - * device to do what you're asking it to do _even if_ that means killing - * other processes. Obviously this is not the case for apps, which will - * be killed in preference to killing other processes. - */ -void* _Nullable malloc(size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(1) __wur; - -/** - * [calloc(3)](http://man7.org/linux/man-pages/man3/calloc.3.html) allocates - * and clears memory on the heap. - * - * Returns a pointer to the allocated memory on success and returns a null - * pointer and sets `errno` on failure (but see the notes for malloc()). - */ -void* _Nullable calloc(size_t __item_count, size_t __item_size) __mallocfunc __BIONIC_ALLOC_SIZE(1,2) __wur; - -/** - * [realloc(3)](http://man7.org/linux/man-pages/man3/realloc.3.html) resizes - * allocated memory on the heap. - * - * Returns a pointer (which may be different from `__ptr`) to the resized - * memory on success and returns a null pointer and sets `errno` on failure - * (but see the notes for malloc()). - */ -void* _Nullable realloc(void* _Nullable __ptr, size_t __byte_count) __BIONIC_ALLOC_SIZE(2) __wur; - -/** - * [reallocarray(3)](http://man7.org/linux/man-pages/man3/realloc.3.html) resizes - * allocated memory on the heap. - * - * Equivalent to `realloc(__ptr, __item_count * __item_size)` but fails if the - * multiplication overflows. - * - * Returns a pointer (which may be different from `__ptr`) to the resized - * memory on success and returns a null pointer and sets `errno` on failure - * (but see the notes for malloc()). - */ - -/** -#if __ANDROID_API__ >= 29 -void* _Nullable reallocarray(void* _Nullable __ptr, size_t __item_count, size_t __item_size) __BIONIC_ALLOC_SIZE(2, 3) __wur __INTRODUCED_IN(29); -#endif -*/ - - -/** - * [free(3)](http://man7.org/linux/man-pages/man3/free.3.html) deallocates - * memory on the heap. - */ -void free(void* _Nullable __ptr); - -/** - * [memalign(3)](http://man7.org/linux/man-pages/man3/memalign.3.html) allocates - * memory on the heap with the required alignment. - * - * Returns a pointer to the allocated memory on success and returns a null - * pointer and sets `errno` on failure (but see the notes for malloc()). - * - * See also posix_memalign(). - */ -void* _Nullable memalign(size_t __alignment, size_t __byte_count) __mallocfunc __BIONIC_ALLOC_SIZE(2) __wur; - -/** - * [malloc_usable_size(3)](http://man7.org/linux/man-pages/man3/malloc_usable_size.3.html) - * returns the actual size of the given heap block. - */ -size_t malloc_usable_size(const void* _Nullable __ptr); - -#define __MALLINFO_BODY \ - /** Total number of non-mmapped bytes currently allocated from OS. */ \ - size_t arena; \ - /** Number of free chunks. */ \ - size_t ordblks; \ - /** (Unused.) */ \ - size_t smblks; \ - /** (Unused.) */ \ - size_t hblks; \ - /** Total number of bytes in mmapped regions. */ \ - size_t hblkhd; \ - /** Maximum total allocated space; greater than total if trimming has occurred. */ \ - size_t usmblks; \ - /** (Unused.) */ \ - size_t fsmblks; \ - /** Total allocated space (normal or mmapped.) */ \ - size_t uordblks; \ - /** Total free space. */ \ - size_t fordblks; \ - /** Upper bound on number of bytes releasable by a trim operation. */ \ - size_t keepcost; - -#ifndef STRUCT_MALLINFO_DECLARED -#define STRUCT_MALLINFO_DECLARED 1 -struct mallinfo { __MALLINFO_BODY }; -#endif - -/** - * [mallinfo(3)](http://man7.org/linux/man-pages/man3/mallinfo.3.html) returns - * information about the current state of the heap. Note that mallinfo() is - * inherently unreliable and consider using malloc_info() instead. - */ -struct mallinfo mallinfo(void); - -/** - * On Android the struct mallinfo and struct mallinfo2 are the same. - */ -struct mallinfo2 { __MALLINFO_BODY }; - -/** - * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns - * information about the current state of the heap. Note that mallinfo2() is - * inherently unreliable and consider using malloc_info() instead. - */ -struct mallinfo2 mallinfo2(void) __RENAME(mallinfo); - -/** - * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html) - * writes information about the current state of the heap to the given stream. - * - * The XML structure for malloc_info() is as follows: - * ``` - * - * - * INT - * INT - * INT - * INT - * - * INT - * INT - * INT - * - * - * - * - * - * ``` - * - * Available since API level 23. - */ - -#if __ANDROID_API__ >= 23 -int malloc_info(int __must_be_zero, FILE* _Nonnull __fp) __INTRODUCED_IN(23); -#endif /* __ANDROID_API__ >= 23 */ - - -/** - * mallopt() option to set the decay time. Valid values are -1, 0 and 1. - * -1 : Disable the releasing of unused pages. This value is available since - * API level 35. - * 0 : Release the unused pages immediately. - * 1 : Release the unused pages at a device-specific interval. - * - * Available since API level 27. - */ -#define M_DECAY_TIME (-100) -/** - * mallopt() option to immediately purge any memory not in use. This - * will release the memory back to the kernel. The value is ignored. - * - * Available since API level 28. - */ -#define M_PURGE (-101) -/** - * mallopt() option to immediately purge all possible memory back to - * the kernel. This call can take longer than a normal purge since it - * examines everything. In some cases, it can take more than twice the - * time of a M_PURGE call. The value is ignored. - * - * Available since API level 34. - */ -#define M_PURGE_ALL (-104) - -/** - * mallopt() option to tune the allocator's choice of memory tags to - * make it more likely that a certain class of memory errors will be - * detected. This is only relevant if MTE is enabled in this process - * and ignored otherwise. The value argument should be one of the - * M_MEMTAG_TUNING_* flags. - * NOTE: This is only available in scudo. - * - * Available since API level 31. - */ -#define M_MEMTAG_TUNING (-102) - -/** - * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables - * deterministic detection of linear buffer overflow and underflow - * bugs by assigning distinct tag values to adjacent allocations. This - * mode has a slightly reduced chance to detect use-after-free bugs - * because only half of the possible tag values are available for each - * memory location. - * - * Please keep in mind that MTE can not detect overflow within the - * same tag granule (16-byte aligned chunk), and can miss small - * overflows even in this mode. Such overflow can not be the cause of - * a memory corruption, because the memory within one granule is never - * used for multiple allocations. - */ -#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0 - -/** - * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables - * independently randomized tags for uniform ~93% probability of - * detecting both spatial (buffer overflow) and temporal (use after - * free) bugs. - */ -#define M_MEMTAG_TUNING_UAF 1 - -/** - * mallopt() option for per-thread memory initialization tuning. - * The value argument should be one of: - * 1: Disable automatic heap initialization on this thread only. - * If memory tagging is enabled, disable as much as possible of the - * memory tagging initialization for this thread. - * 0: Normal behavior. - * - * Available since API level 31. - */ -#define M_THREAD_DISABLE_MEM_INIT (-103) -/** - * mallopt() option to set the maximum number of items in the secondary - * cache of the scudo allocator. - * - * Available since API level 31. - */ -#define M_CACHE_COUNT_MAX (-200) -/** - * mallopt() option to set the maximum size in bytes of a cacheable item in - * the secondary cache of the scudo allocator. - * - * Available since API level 31. - */ -#define M_CACHE_SIZE_MAX (-201) -/** - * mallopt() option to increase the maximum number of shared thread-specific - * data structures that can be created. This number cannot be decreased, - * only increased and only applies to the scudo allocator. - * - * Available since API level 31. - */ -#define M_TSDS_COUNT_MAX (-202) - -/** - * mallopt() option to decide whether heap memory is zero-initialized on - * allocation across the whole process. May be called at any time, including - * when multiple threads are running. An argument of zero indicates memory - * should not be zero-initialized, any other value indicates to initialize heap - * memory to zero. - * - * Note that this memory mitigation is only implemented in scudo and therefore - * this will have no effect when using another allocator (such as jemalloc on - * Android Go devices). - * - * Available since API level 31. - */ -#define M_BIONIC_ZERO_INIT (-203) - -/** - * mallopt() option to change the heap tagging state. May be called at any - * time, including when multiple threads are running. - * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants. - * NOTE: This is only available in scudo. - * - * Available since API level 31. - */ -#define M_BIONIC_SET_HEAP_TAGGING_LEVEL (-204) - -/** - * Constants for use with the M_BIONIC_SET_HEAP_TAGGING_LEVEL mallopt() option. - */ -enum HeapTaggingLevel { - /** - * Disable heap tagging and memory tag checks (if supported). - * Heap tagging may not be re-enabled after being disabled. - */ - M_HEAP_TAGGING_LEVEL_NONE = 0, -#define M_HEAP_TAGGING_LEVEL_NONE M_HEAP_TAGGING_LEVEL_NONE - /** - * Address-only tagging. Heap pointers have a non-zero tag in the - * most significant ("top") byte which is checked in free(). Memory - * accesses ignore the tag using arm64's Top Byte Ignore (TBI) feature. - */ - M_HEAP_TAGGING_LEVEL_TBI = 1, -#define M_HEAP_TAGGING_LEVEL_TBI M_HEAP_TAGGING_LEVEL_TBI - /** - * Enable heap tagging and asynchronous memory tag checks (if supported). - * Disable stack trace collection. - */ - M_HEAP_TAGGING_LEVEL_ASYNC = 2, -#define M_HEAP_TAGGING_LEVEL_ASYNC M_HEAP_TAGGING_LEVEL_ASYNC - /** - * Enable heap tagging and synchronous memory tag checks (if supported). - * Enable stack trace collection. - */ - M_HEAP_TAGGING_LEVEL_SYNC = 3, -#define M_HEAP_TAGGING_LEVEL_SYNC M_HEAP_TAGGING_LEVEL_SYNC -}; - -/** - * mallopt() option to print human readable statistics about the memory - * allocator to the log. There is no format for this data, each allocator - * can use a different format, and the data that is printed can - * change at any time. This is expected to be used as a debugging aid. - * - * Available since API level 35. - */ -#define M_LOG_STATS (-205) - -/** - * [mallopt(3)](http://man7.org/linux/man-pages/man3/mallopt.3.html) modifies - * heap behavior. Values of `__option` are the `M_` constants from this header. - * - * Returns 1 on success, 0 on error. - * - * Available since API level 26. - */ - -#if __ANDROID_API__ >= 26 -int mallopt(int __option, int __value) __INTRODUCED_IN(26); -#endif /* __ANDROID_API__ >= 26 */ - - -/** - * [__malloc_hook(3)](http://man7.org/linux/man-pages/man3/__malloc_hook.3.html) - * is called to implement malloc(). By default this points to the system's - * implementation. - * - * Available since API level 28. - * - * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) - */ - -#if __ANDROID_API__ >= 28 -extern void* _Nonnull (*volatile _Nonnull __malloc_hook)(size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28); - -/** - * [__realloc_hook(3)](http://man7.org/linux/man-pages/man3/__realloc_hook.3.html) - * is called to implement realloc(). By default this points to the system's - * implementation. - * - * Available since API level 28. - * - * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) - */ -extern void* _Nonnull (*volatile _Nonnull __realloc_hook)(void* _Nullable __ptr, size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28); - -/** - * [__free_hook(3)](http://man7.org/linux/man-pages/man3/__free_hook.3.html) - * is called to implement free(). By default this points to the system's - * implementation. - * - * Available since API level 28. - * - * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) - */ -extern void (*volatile _Nonnull __free_hook)(void* _Nullable __ptr, const void* _Nonnull __caller) __INTRODUCED_IN(28); - -/** - * [__memalign_hook(3)](http://man7.org/linux/man-pages/man3/__memalign_hook.3.html) - * is called to implement memalign(). By default this points to the system's - * implementation. - * - * Available since API level 28. - * - * See also: [extra documentation](https://android.googlesource.com/platform/bionic/+/main/libc/malloc_hooks/README.md) - */ -extern void* _Nonnull (*volatile _Nonnull __memalign_hook)(size_t __alignment, size_t __byte_count, const void* _Nonnull __caller) __INTRODUCED_IN(28); -#endif /* __ANDROID_API__ >= 28 */ - - -__END_DECLS \ No newline at end of file diff --git a/include/parted/constraint.h b/include/parted/constraint.h deleted file mode 100755 index cfb411c..0000000 --- a/include/parted/constraint.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_CONSTRAINT_H_INCLUDED -#define PED_CONSTRAINT_H_INCLUDED - -typedef struct _PedConstraint PedConstraint; - -#include -#include -#include - -struct _PedConstraint { - PedAlignment* start_align; - PedAlignment* end_align; - PedGeometry* start_range; - PedGeometry* end_range; - PedSector min_size; - PedSector max_size; -}; - -extern int -ped_constraint_init ( - PedConstraint* constraint, - const PedAlignment* start_align, - const PedAlignment* end_align, - const PedGeometry* start_range, - const PedGeometry* end_range, - PedSector min_size, - PedSector max_size); - -extern PedConstraint* -ped_constraint_new ( - const PedAlignment* start_align, - const PedAlignment* end_align, - const PedGeometry* start_range, - const PedGeometry* end_range, - PedSector min_size, - PedSector max_size); - -extern PedConstraint* -ped_constraint_new_from_min_max ( - const PedGeometry* min, - const PedGeometry* max); - -extern PedConstraint* -ped_constraint_new_from_min (const PedGeometry* min); - -extern PedConstraint* -ped_constraint_new_from_max (const PedGeometry* max); - -extern PedConstraint* -ped_constraint_duplicate (const PedConstraint* constraint); - -extern void -ped_constraint_done (PedConstraint* constraint); - -extern void -ped_constraint_destroy (PedConstraint* constraint); - -extern PedConstraint* -ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b); - -extern PedGeometry* -ped_constraint_solve_max (const PedConstraint* constraint); - -extern PedGeometry* -ped_constraint_solve_nearest ( - const PedConstraint* constraint, const PedGeometry* geom); - -extern int -ped_constraint_is_solution (const PedConstraint* constraint, - const PedGeometry* geom) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern PedConstraint* -ped_constraint_any (const PedDevice* dev); - -extern PedConstraint* -ped_constraint_exact (const PedGeometry* geom); - -#endif /* PED_CONSTRAINT_H_INCLUDED */ diff --git a/include/parted/crc32.h b/include/parted/crc32.h deleted file mode 100755 index 8c06b25..0000000 --- a/include/parted/crc32.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - crc32.h - - 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 3 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, see . -*/ - -#ifndef _CRC32_H -#define _CRC32_H - -#include - -/* - * This computes a 32 bit CRC of the data in the buffer, and returns the CRC. - * The polynomial used is 0xedb88320. - */ - -extern uint32_t __efi_crc32 (const void *buf, unsigned long len, - uint32_t seed) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -#endif /* _CRC32_H */ diff --git a/include/parted/debug.h b/include/parted/debug.h deleted file mode 100755 index 97cd000..0000000 --- a/include/parted/debug.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1998-2000, 2002, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_DEBUG_H_INCLUDED -#define PED_DEBUG_H_INCLUDED - -#include - -#ifdef DEBUG - -typedef void (PedDebugHandler) ( const int level, const char* file, int line, - const char* function, const char* msg ); - -extern void ped_debug_set_handler (PedDebugHandler* handler); -extern void ped_debug ( const int level, const char* file, int line, - const char* function, const char* msg, ... ); - -extern void __attribute__((__noreturn__)) -ped_assert ( const char* cond_text, - const char* file, int line, const char* function ); - -#if defined __GNUC__ && !defined __JSFTRACE__ - -#define PED_DEBUG(level, ...) \ - ped_debug ( level, __FILE__, __LINE__, __PRETTY_FUNCTION__, \ - __VA_ARGS__ ) - -#define PED_ASSERT(cond) \ - do { \ - if (!(cond)) { \ - ped_assert ( \ - #cond, \ - __FILE__, \ - __LINE__, \ - __PRETTY_FUNCTION__ ); \ - } \ - } while (0) - -#else /* !__GNUC__ */ - -/* function because variadic macros are C99 */ -static void PED_DEBUG (int level, ...) -{ - va_list va_args; - - va_start (va_args, level); - ped_debug ( level, "unknown file", 0, "unknown function", va_args ); - va_end (va_args); -} - -#define PED_ASSERT(cond) \ - do { \ - if (!(cond)) { \ - ped_assert ( \ - #cond, \ - "unknown", \ - 0, \ - "unknown"); \ - } \ - } while (0) - -#endif /* __GNUC__ */ - -#else /* !DEBUG */ - -#define PED_ASSERT(cond) do {} while (0) -#define PED_DEBUG(level, ...) do {} while (0) - - -#endif /* DEBUG */ - -#endif /* PED_DEBUG_H_INCLUDED */ diff --git a/include/parted/device.h b/include/parted/device.h deleted file mode 100755 index 49a4fd2..0000000 --- a/include/parted/device.h +++ /dev/null @@ -1,172 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1998-2001, 2005, 2007-2008, 2011-2014, 2019-2023 Free - Software Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedDevice - * @{ - */ - -/** \file device.h */ - -#ifndef PED_DEVICE_H_INCLUDED -#define PED_DEVICE_H_INCLUDED - -/** We can address 2^63 sectors */ -typedef long long PedSector; - -typedef enum { - PED_DEVICE_UNKNOWN = 0, - PED_DEVICE_SCSI = 1, - PED_DEVICE_IDE = 2, - PED_DEVICE_DAC960 = 3, - PED_DEVICE_CPQARRAY = 4, - PED_DEVICE_FILE = 5, - PED_DEVICE_ATARAID = 6, - PED_DEVICE_I2O = 7, - PED_DEVICE_UBD = 8, - PED_DEVICE_DASD = 9, - PED_DEVICE_VIODASD = 10, - PED_DEVICE_SX8 = 11, - PED_DEVICE_DM = 12, - PED_DEVICE_XVD = 13, - PED_DEVICE_SDMMC = 14, - PED_DEVICE_VIRTBLK = 15, - PED_DEVICE_AOE = 16, - PED_DEVICE_MD = 17, - PED_DEVICE_LOOP = 18, - PED_DEVICE_NVME = 19, - PED_DEVICE_RAM = 20, - PED_DEVICE_PMEM = 21 -} PedDeviceType; - -typedef struct _PedDevice PedDevice; -typedef struct _PedDeviceArchOps PedDeviceArchOps; -typedef struct _PedCHSGeometry PedCHSGeometry; - -/** - * A cylinder-head-sector "old-style" geometry. - * - * A device addressed in this way has C*H*S sectors. - */ -struct _PedCHSGeometry { - int cylinders; - int heads; - int sectors; -}; - -/** A block device - for example, /dev/hda, not /dev/hda3 */ -struct _PedDevice { - PedDevice* next; - - char* model; /**< \brief description of hardware - (manufacturer, model) */ - char* path; /**< device /dev entry */ - - PedDeviceType type; /**< SCSI, IDE, etc. \sa PedDeviceType */ - long long sector_size; /**< logical sector size */ - long long phys_sector_size; /**< physical sector size */ - PedSector length; /**< device length (LBA) */ - - int open_count; /**< the number of times this device has - been opened with ped_device_open(). */ - int read_only; - int external_mode; - int dirty; - int boot_dirty; - - PedCHSGeometry hw_geom; - PedCHSGeometry bios_geom; - short host, did; - - void* arch_specific; -}; - -#include - -/** - * List of functions implementing architecture-specific operations. - */ -struct _PedDeviceArchOps { - PedDevice* (*_new) (const char* path); - void (*destroy) (PedDevice* dev); - int (*is_busy) (PedDevice* dev); - int (*open) (PedDevice* dev); - int (*refresh_open) (PedDevice* dev); - int (*close) (PedDevice* dev); - int (*refresh_close) (PedDevice* dev); - int (*read) (const PedDevice* dev, void* buffer, - PedSector start, PedSector count); - int (*write) (PedDevice* dev, const void* buffer, - PedSector start, PedSector count); - int (*sync) (PedDevice* dev); - int (*sync_fast) (PedDevice* dev); - PedSector (*check) (PedDevice* dev, void* buffer, - PedSector start, PedSector count); - void (*probe_all) (); - /* These functions are optional */ - PedAlignment *(*get_minimum_alignment)(const PedDevice *dev); - PedAlignment *(*get_optimum_alignment)(const PedDevice *dev); -}; - -#include -#include - -extern void ped_device_probe_all (); -extern void ped_device_free_all (); - -extern PedDevice* ped_device_get (const char* name); -extern PedDevice* ped_device_get_next (const PedDevice* dev) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_device_is_busy (PedDevice* dev); -extern int ped_device_open (PedDevice* dev); -extern int ped_device_close (PedDevice* dev); -extern void ped_device_destroy (PedDevice* dev); -extern void ped_device_cache_remove (PedDevice* dev); - -extern int ped_device_begin_external_access (PedDevice* dev); -extern int ped_device_end_external_access (PedDevice* dev); - -extern int ped_device_read (const PedDevice* dev, void* buffer, - PedSector start, PedSector count); -extern int ped_device_write (PedDevice* dev, const void* buffer, - PedSector start, PedSector count); -extern int ped_device_sync (PedDevice* dev); -extern int ped_device_sync_fast (PedDevice* dev); -extern PedSector ped_device_check (PedDevice* dev, void* buffer, - PedSector start, PedSector count); -extern PedConstraint* ped_device_get_constraint (const PedDevice* dev); - -extern PedConstraint *ped_device_get_minimal_aligned_constraint( - const PedDevice *dev); -extern PedConstraint *ped_device_get_optimal_aligned_constraint( - const PedDevice *dev); - -extern PedAlignment *ped_device_get_minimum_alignment(const PedDevice *dev); -extern PedAlignment *ped_device_get_optimum_alignment(const PedDevice *dev); - -/* private stuff ;-) */ - -extern void _ped_device_probe (const char* path); - -#endif /* PED_DEVICE_H_INCLUDED */ - -/** @} */ diff --git a/include/parted/disk.h b/include/parted/disk.h deleted file mode 100755 index 0b1d4b9..0000000 --- a/include/parted/disk.h +++ /dev/null @@ -1,503 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2002, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedDisk - * @{ - */ - -/** \file disk.h */ - -#ifndef PED_DISK_H_INCLUDED -#define PED_DISK_H_INCLUDED - -/* Include these to work around gnulib redefining free, read, etc. which causes problems - * with pt-common.h - */ -#include -#include -#include - -/** - * Disk flags - */ -enum _PedDiskFlag { - /* This flag (which defaults to true) controls if disk types for - which cylinder alignment is optional do cylinder alignment when a - new partition gets added. - This flag is available for msdos and sun disklabels (for sun labels - it only controls the aligning of the end of the partition) */ - PED_DISK_CYLINDER_ALIGNMENT=1, - /* This flag controls whether the boot flag of a GPT PMBR is set */ - PED_DISK_GPT_PMBR_BOOT=2, -}; -// NOTE: DO NOT define using enums -#define PED_DISK_FIRST_FLAG 1 // PED_DISK_CYLINDER_ALIGNMENT -#define PED_DISK_LAST_FLAG 2 // PED_DISK_GPT_PMBR_BOOT - -/** - * Partition types - */ -enum _PedPartitionType { - PED_PARTITION_NORMAL = 0x00, - PED_PARTITION_LOGICAL = 0x01, - PED_PARTITION_EXTENDED = 0x02, - PED_PARTITION_FREESPACE = 0x04, - PED_PARTITION_METADATA = 0x08, - PED_PARTITION_PROTECTED = 0x10 -}; - -/** - * Partition flags. - */ -enum _PedPartitionFlag { - PED_PARTITION_BOOT=1, - PED_PARTITION_ROOT=2, - PED_PARTITION_SWAP=3, - PED_PARTITION_HIDDEN=4, - PED_PARTITION_RAID=5, - PED_PARTITION_LVM=6, - PED_PARTITION_LBA=7, - PED_PARTITION_HPSERVICE=8, - PED_PARTITION_PALO=9, - PED_PARTITION_PREP=10, - PED_PARTITION_MSFT_RESERVED=11, - PED_PARTITION_BIOS_GRUB=12, - PED_PARTITION_APPLE_TV_RECOVERY=13, - PED_PARTITION_DIAG=14, - PED_PARTITION_LEGACY_BOOT=15, - PED_PARTITION_MSFT_DATA=16, - PED_PARTITION_IRST=17, - PED_PARTITION_ESP=18, - PED_PARTITION_CHROMEOS_KERNEL=19, - PED_PARTITION_BLS_BOOT=20, - PED_PARTITION_LINUX_HOME=21, - PED_PARTITION_NO_AUTOMOUNT=22, -}; -// NOTE: DO NOT define using enums -#define PED_PARTITION_FIRST_FLAG 1 // PED_PARTITION_BOOT -#define PED_PARTITION_LAST_FLAG 22 // PED_PARTITION_NO_AUTOMOUNT - -enum _PedDiskTypeFeature { - PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */ - PED_DISK_TYPE_PARTITION_NAME=2, /**< supports partition names */ - PED_DISK_TYPE_PARTITION_TYPE_ID=4, /**< supports partition type-ids */ - PED_DISK_TYPE_PARTITION_TYPE_UUID=8, /**< supports partition type-uuids */ - PED_DISK_TYPE_DISK_UUID=16, /**< supports disk uuids */ - PED_DISK_TYPE_PARTITION_UUID=32, /**< supports partition uuids */ -}; -// NOTE: DO NOT define using enums -#define PED_DISK_TYPE_FIRST_FEATURE 1 // PED_DISK_TYPE_EXTENDED -#define PED_DISK_TYPE_LAST_FEATURE 32 // PED_DISK_TYPE_PARTITION_UUID - -struct _PedDisk; -struct _PedPartition; -struct _PedDiskOps; -struct _PedDiskType; -struct _PedDiskArchOps; - -typedef enum _PedDiskFlag PedDiskFlag; -typedef enum _PedPartitionType PedPartitionType; -typedef enum _PedPartitionFlag PedPartitionFlag; -typedef enum _PedDiskTypeFeature PedDiskTypeFeature; -typedef struct _PedDisk PedDisk; -typedef struct _PedPartition PedPartition; -typedef const struct _PedDiskOps PedDiskOps; -typedef struct _PedDiskType PedDiskType; -typedef const struct _PedDiskArchOps PedDiskArchOps; - -#include -#include -#include -#include -#include - -/** @} */ - -/** - * \addtogroup PedPartition - * - * @{ - */ - -/** \file disk.h */ - -/** - * PedPartition structure represents a partition. - */ -struct _PedPartition { - PedPartition* prev; - PedPartition* next; - - /**< the partition table of the partition */ - PedDisk* disk; - PedGeometry geom; /**< geometry of the partition */ - - /**< the partition number: In Linux, this is the - same as the minor number. No assumption - should be made about "num" and "type" - - different disk labels have different rules. */ - - int num; - PedPartitionType type; /**< the type of partition: a bit field of - PED_PARTITION_LOGICAL, PED_PARTITION_EXTENDED, - PED_PARTITION_METADATA - and PED_PARTITION_FREESPACE. - Both the first two, and the last two are - mutually exclusive. - An extended partition is a primary - partition that may contain logical partitions. - There is at most one extended partition on - a disk. - A logical partition is like a primary - partition, except it's inside an extended - partition. Internally, pseudo partitions are - allocated to represent free space, or disk - label meta-data. These have the - PED_PARTITION_FREESPACE or - PED_PARTITION_METADATA bit set. */ - - /**< The type of file system on the partition. NULL if unknown. */ - const PedFileSystemType* fs_type; - - /**< Only used for an extended partition. The list of logical - partitions (and free space and metadata within the extended - partition). */ - PedPartition* part_list; - - void* disk_specific; -}; - -/** @} */ - -/** - * \addtogroup PedDisk - * @{ - */ - -/** - * Represents a disk label (partition table). - */ -struct _PedDisk { - PedDevice* dev; /**< the device where the - partition table lies */ - const PedDiskType* type; /**< type of disk label */ - const int* block_sizes; /**< block sizes supported - by this label */ - PedPartition* part_list; /**< list of partitions. Access with - ped_disk_next_partition() */ - - void* disk_specific; - -/* office use only ;-) */ - int needs_clobber; /**< clobber before write? */ - int update_mode; /**< mode without free/metadata - partitions, for easier - update */ -}; - -struct _PedDiskOps { - /* disk label operations */ - int (*probe) (const PedDevice *dev); - int (*clobber) (PedDevice* dev); - PedDisk* (*alloc) (const PedDevice* dev); - PedDisk* (*duplicate) (const PedDisk* disk); - void (*free) (PedDisk* disk); - int (*read) (PedDisk* disk); - int (*write) (const PedDisk* disk); - int (*disk_set_flag) ( - PedDisk *disk, - PedDiskFlag flag, - int state); - int (*disk_get_flag) ( - const PedDisk *disk, - PedDiskFlag flag); - int (*disk_is_flag_available) ( - const PedDisk *disk, - PedDiskFlag flag); - uint8_t* (*disk_get_uuid) (const PedDisk* disk); - /** \todo add label guessing op here */ - - /* partition operations */ - PedPartition* (*partition_new) ( - const PedDisk* disk, - PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, - PedSector end); - PedPartition* (*partition_duplicate) (const PedPartition* part); - void (*partition_destroy) (PedPartition* part); - int (*partition_set_system) (PedPartition* part, - const PedFileSystemType* fs_type); - int (*partition_set_flag) ( - PedPartition* part, - PedPartitionFlag flag, - int state); - int (*partition_get_flag) ( - const PedPartition* part, - PedPartitionFlag flag); - int (*partition_is_flag_available) ( - const PedPartition* part, - PedPartitionFlag flag); - void (*partition_set_name) (PedPartition* part, const char* name); - const char* (*partition_get_name) (const PedPartition* part); - - int (*partition_set_type_id) (PedPartition* part, uint8_t id); - uint8_t (*partition_get_type_id) (const PedPartition* part); - - int (*partition_set_type_uuid) (PedPartition* part, const uint8_t* uuid); - uint8_t* (*partition_get_type_uuid) (const PedPartition* part); - - uint8_t* (*partition_get_uuid) (const PedPartition* part); - - int (*partition_align) (PedPartition* part, - const PedConstraint* constraint); - int (*partition_enumerate) (PedPartition* part); - bool (*partition_check) (const PedPartition* part); - - /* other */ - int (*alloc_metadata) (PedDisk* disk); - int (*get_max_primary_partition_count) (const PedDisk* disk); - bool (*get_max_supported_partition_count) (const PedDisk* disk, - int* supported); - PedAlignment *(*get_partition_alignment)(const PedDisk *disk); - PedSector (*max_length) (void); - PedSector (*max_start_sector) (void); -}; - -struct _PedDiskType { - PedDiskType* next; - const char* name; /**< the name of the partition table type. - \todo not very intuitive name */ - PedDiskOps* const ops; - - PedDiskTypeFeature features; /**< bitmap of supported features */ -}; - -/** - * Architecture-specific operations. i.e. communication with kernel (or - * whatever) about changes, etc. - */ -struct _PedDiskArchOps { - char* (*partition_get_path) (const PedPartition* part); - int (*partition_is_busy) (const PedPartition* part); - int (*disk_commit) (PedDisk* disk); -}; - -extern void ped_disk_type_register (PedDiskType* type); -extern void ped_disk_type_unregister (PedDiskType* type); - -extern PedDiskType* ped_disk_type_get_next (PedDiskType const *type) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern PedDiskType* ped_disk_type_get (const char* name) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_disk_type_check_feature (const PedDiskType* disk_type, - PedDiskTypeFeature feature) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern PedDiskType* ped_disk_probe (PedDevice* dev); -extern int ped_disk_clobber (PedDevice* dev); -extern PedDisk* ped_disk_new (PedDevice* dev); -extern PedDisk* ped_disk_new_fresh (PedDevice* dev, - const PedDiskType* disk_type); -extern PedDisk* ped_disk_duplicate (const PedDisk* old_disk); -extern void ped_disk_destroy (PedDisk* disk); -extern int ped_disk_commit (PedDisk* disk); -extern int ped_disk_commit_to_dev (PedDisk* disk); -extern int ped_disk_commit_to_os (PedDisk* disk); -extern int ped_disk_check (const PedDisk* disk); -extern void ped_disk_print (const PedDisk* disk); - -extern int ped_disk_get_primary_partition_count (const PedDisk* disk) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_disk_get_last_partition_num (const PedDisk* disk) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_disk_get_max_primary_partition_count (const PedDisk* disk); -extern bool ped_disk_get_max_supported_partition_count(const PedDisk* disk, - int* supported); -extern PedAlignment *ped_disk_get_partition_alignment(const PedDisk *disk); - -extern int ped_disk_set_flag(PedDisk *disk, PedDiskFlag flag, int state); -extern int ped_disk_get_flag(const PedDisk *disk, PedDiskFlag flag); -extern int ped_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag); - -extern uint8_t* ped_disk_get_uuid (const PedDisk* disk); - -extern const char *ped_disk_flag_get_name(PedDiskFlag flag); -extern PedDiskFlag ped_disk_flag_get_by_name(const char *name); -extern PedDiskFlag ped_disk_flag_next(PedDiskFlag flag) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; - -/** @} */ - -/** - * \addtogroup PedPartition - * - * @{ - */ - -extern PedPartition* ped_partition_new (const PedDisk* disk, - PedPartitionType type, - const PedFileSystemType* fs_type, - PedSector start, - PedSector end); -extern void ped_partition_destroy (PedPartition* part); -extern int ped_partition_is_active (const PedPartition* part) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag, - int state); -extern int ped_partition_get_flag (const PedPartition* part, - PedPartitionFlag flag); -extern int ped_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag); -extern int ped_partition_set_system (PedPartition* part, - const PedFileSystemType* fs_type); -extern int ped_partition_set_name (PedPartition* part, const char* name); -extern const char* ped_partition_get_name (const PedPartition* part); - -extern int ped_partition_set_type_id (PedPartition* part, uint8_t id); -extern uint8_t ped_partition_get_type_id (const PedPartition* part); - -extern int ped_partition_set_type_uuid (PedPartition* part, const uint8_t* uuid); -extern uint8_t* ped_partition_get_type_uuid (const PedPartition* part); - -extern uint8_t* ped_partition_get_uuid (const PedPartition* part); - -extern int ped_partition_is_busy (const PedPartition* part); -extern char* ped_partition_get_path (const PedPartition* part); - -extern const char* ped_partition_type_get_name (PedPartitionType part_type) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; -extern const char* ped_partition_flag_get_name (PedPartitionFlag flag); -extern PedPartitionFlag ped_partition_flag_get_by_name (const char* name); -extern PedPartitionFlag ped_partition_flag_next (PedPartitionFlag flag) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; - -/** @} */ - -/** - * \addtogroup PedDisk - * @{ - */ - -extern int ped_disk_add_partition (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint); -extern int ped_disk_remove_partition (PedDisk* disk, PedPartition* part); -extern int ped_disk_delete_partition (PedDisk* disk, PedPartition* part); -extern int ped_disk_delete_all (PedDisk* disk); -extern int ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint, - PedSector start, PedSector end); -extern int ped_disk_maximize_partition (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint); -extern PedGeometry* ped_disk_get_max_partition_geometry (PedDisk* disk, - PedPartition* part, const PedConstraint* constraint); -extern int ped_disk_minimize_extended_partition (PedDisk* disk); - -extern PedPartition* ped_disk_next_partition (const PedDisk* disk, - const PedPartition* part) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern PedPartition* ped_disk_get_partition (const PedDisk* disk, int num) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern PedPartition* ped_disk_get_partition_by_sector (const PedDisk* disk, - PedSector sect) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern PedPartition* ped_disk_extended_partition (const PedDisk* disk) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern PedSector ped_disk_max_partition_length (const PedDisk *disk); -extern PedSector ped_disk_max_partition_start_sector (const PedDisk *disk); - -/* internal functions */ -extern PedDisk* _ped_disk_alloc (const PedDevice* dev, const PedDiskType* type); -extern void _ped_disk_free (PedDisk* disk); - - -/** @} */ - -/** - * \addtogroup PedPartition - * - * @{ - */ - -extern PedPartition* _ped_partition_alloc (const PedDisk* disk, - PedPartitionType type, - const PedFileSystemType* fs_type, - PedSector start, - PedSector end); -extern void _ped_partition_free (PedPartition* part); - -extern int _ped_partition_attempt_align ( - PedPartition* part, const PedConstraint* external, - PedConstraint* internal); - -#endif /* PED_DISK_H_INCLUDED */ - -/** @} */ diff --git a/include/parted/endian.h b/include/parted/endian.h deleted file mode 100755 index f9f473c..0000000 --- a/include/parted/endian.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1998-2002, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/* should only be #included by files in libparted */ - -#ifndef PED_ENDIAN_H_INCLUDED -#define PED_ENDIAN_H_INCLUDED - -#include - -/* returns the n'th least significant byte */ -#define _GET_BYTE(x, n) ( ((x) >> (8 * (n))) & 0xff ) - -#define _PED_SWAP16(x) ( (_GET_BYTE(x, 0) << 8) \ - + (_GET_BYTE(x, 1) << 0) ) - -#define _PED_SWAP32(x) ( (_GET_BYTE(x, 0) << 24) \ - + (_GET_BYTE(x, 1) << 16) \ - + (_GET_BYTE(x, 2) << 8) \ - + (_GET_BYTE(x, 3) << 0) ) - -#define _PED_SWAP64(x) ( (_GET_BYTE(x, 0) << 56) \ - + (_GET_BYTE(x, 1) << 48) \ - + (_GET_BYTE(x, 2) << 40) \ - + (_GET_BYTE(x, 3) << 32) \ - + (_GET_BYTE(x, 4) << 24) \ - + (_GET_BYTE(x, 5) << 16) \ - + (_GET_BYTE(x, 6) << 8) \ - + (_GET_BYTE(x, 7) << 0) ) - -#define PED_SWAP16(x) ((uint16_t) _PED_SWAP16( (uint16_t) (x) )) -#define PED_SWAP32(x) ((uint32_t) _PED_SWAP32( (uint32_t) (x) )) -#define PED_SWAP64(x) ((uint64_t) _PED_SWAP64( (uint64_t) (x) )) - -#ifdef WORDS_BIGENDIAN - -#define PED_CPU_TO_LE16(x) PED_SWAP16(x) -#define PED_CPU_TO_BE16(x) (x) -#define PED_CPU_TO_LE32(x) PED_SWAP32(x) -#define PED_CPU_TO_BE32(x) (x) -#define PED_CPU_TO_LE64(x) PED_SWAP64(x) -#define PED_CPU_TO_BE64(x) (x) - -#define PED_LE16_TO_CPU(x) PED_SWAP16(x) -#define PED_BE16_TO_CPU(x) (x) -#define PED_LE32_TO_CPU(x) PED_SWAP32(x) -#define PED_BE32_TO_CPU(x) (x) -#define PED_LE64_TO_CPU(x) PED_SWAP64(x) -#define PED_BE64_TO_CPU(x) (x) - -#else /* !WORDS_BIGENDIAN */ - -#define PED_CPU_TO_LE16(x) (x) -#define PED_CPU_TO_BE16(x) PED_SWAP16(x) -#define PED_CPU_TO_LE32(x) (x) -#define PED_CPU_TO_BE32(x) PED_SWAP32(x) -#define PED_CPU_TO_LE64(x) (x) -#define PED_CPU_TO_BE64(x) PED_SWAP64(x) - -#define PED_LE16_TO_CPU(x) (x) -#define PED_BE16_TO_CPU(x) PED_SWAP16(x) -#define PED_LE32_TO_CPU(x) (x) -#define PED_BE32_TO_CPU(x) PED_SWAP32(x) -#define PED_LE64_TO_CPU(x) (x) -#define PED_BE64_TO_CPU(x) PED_SWAP64(x) - -#endif /* !WORDS_BIGENDIAN */ - -#endif /* PED_ENDIAN_H_INCLUDED */ diff --git a/include/parted/exception.h b/include/parted/exception.h deleted file mode 100755 index 527cc73..0000000 --- a/include/parted/exception.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedException - * @{ - */ - -/** \file exception.h */ - -#ifndef PED_EXCEPTION_H_INCLUDED -#define PED_EXCEPTION_H_INCLUDED - -typedef struct _PedException PedException; - -/** - * Exception type - */ -enum _PedExceptionType { - PED_EXCEPTION_INFORMATION=1, - PED_EXCEPTION_WARNING=2, - PED_EXCEPTION_ERROR=3, - PED_EXCEPTION_FATAL=4, - PED_EXCEPTION_BUG=5, - PED_EXCEPTION_NO_FEATURE=6, -}; -typedef enum _PedExceptionType PedExceptionType; - -/** - * Option for resolving the exception - */ -enum _PedExceptionOption { - /* individual options */ - PED_EXCEPTION_UNHANDLED=0, - PED_EXCEPTION_FIX=1, - PED_EXCEPTION_YES=2, - PED_EXCEPTION_NO=4, - PED_EXCEPTION_OK=8, - PED_EXCEPTION_RETRY=16, - PED_EXCEPTION_IGNORE=32, - PED_EXCEPTION_CANCEL=64, - - /* combinations of individual options */ - PED_EXCEPTION_OK_CANCEL = PED_EXCEPTION_OK + PED_EXCEPTION_CANCEL, - PED_EXCEPTION_YES_NO = PED_EXCEPTION_YES + PED_EXCEPTION_NO, - PED_EXCEPTION_YES_NO_CANCEL = - PED_EXCEPTION_YES_NO + PED_EXCEPTION_CANCEL, - PED_EXCEPTION_IGNORE_CANCEL = - PED_EXCEPTION_IGNORE + PED_EXCEPTION_CANCEL, - PED_EXCEPTION_RETRY_CANCEL = PED_EXCEPTION_RETRY + PED_EXCEPTION_CANCEL, - PED_EXCEPTION_RETRY_IGNORE_CANCEL = - PED_EXCEPTION_RETRY + PED_EXCEPTION_IGNORE_CANCEL, -}; - -#define PED_EXCEPTION_OPTION_FIRST PED_EXCEPTION_FIX -#define PED_EXCEPTION_OPTION_LAST PED_EXCEPTION_CANCEL /* last individual option */ - -typedef enum _PedExceptionOption PedExceptionOption; - -/** - * Structure with information about exception - */ -struct _PedException { - char* message; /**< text describing what the event was */ - PedExceptionType type; /**< type of exception */ - PedExceptionOption options; /**< ORed list of options that - the exception handler can - return (the ways an exception - can be resolved) */ -}; - -typedef PedExceptionOption (PedExceptionHandler) (PedException* ex); - -extern int ped_exception; /* set to true if there's an exception */ - -extern char* ped_exception_get_type_string (PedExceptionType ex_type) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; -extern char* ped_exception_get_option_string (PedExceptionOption ex_opt) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern void ped_exception_set_handler (PedExceptionHandler* handler); -extern PedExceptionHandler *ped_exception_get_handler(void) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern PedExceptionOption ped_exception_default_handler (PedException* ex); - -extern PedExceptionOption ped_exception_throw (PedExceptionType ex_type, - PedExceptionOption ex_opt, - const char* message, - ...); -/* rethrows an exception - i.e. calls the exception handler, (or returns a - code to return to pass up higher) */ -extern PedExceptionOption ped_exception_rethrow (); - -/* frees an exception, indicating that the exception has been handled. - Calling an exception handler counts. */ -extern void ped_exception_catch (); - -/* indicate that exceptions should not go to the exception handler, but passed - up to the calling function(s) */ -extern void ped_exception_fetch_all (); - -/* indicate that exceptions should invoke the exception handler */ -extern void ped_exception_leave_all (); - -#endif /* PED_EXCEPTION_H_INCLUDED */ - -/** @} */ diff --git a/include/parted/fdasd.h b/include/parted/fdasd.h deleted file mode 100755 index e3ba183..0000000 --- a/include/parted/fdasd.h +++ /dev/null @@ -1,299 +0,0 @@ -/* - * File...........: s390-tools/fdasd/fdasd.h - * Author(s)......: Volker Sameske - * Horst Hummel - * Bugreports.to..: - * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2001-2002 - * - * History of changes (starts March 2001) - * version 1.01 - menu entry 's' to show mapping devnode - DS name - * 1.02 - DS names count now from 0001 instead from 0000 - * 1.03 - volser checks: 'AA AAA' to 'AAAAA ' - * - removed dependency to kernel headers. - * 1.04 - added -p option - * 1.05 - new API policy, set it back to 0 - */ -#ifndef FDASD_H -#define FDASD_H - -#include - -/***************************************************************************** - * SECTION: Definitions needed for DASD-API (see dasd.h) * - *****************************************************************************/ - -#define DASD_IOCTL_LETTER 'D' - -#define DASD_PARTN_BITS 2 - -#define PARTITION_LINUX_SWAP 0x82 -#define PARTITION_LINUX 0x83 -#define PARTITION_LINUX_LVM 0x8e -#define PARTITION_LINUX_RAID 0xfd - -#define PART_TYPE_NATIVE "NATIVE" -#define PART_TYPE_SWAP "SWAP " -#define PART_TYPE_RAID "RAID " -#define PART_TYPE_LVM "LVM " - -#ifdef DEBUG_DASD -#define PDEBUG fprintf(stderr, "%s:%d:%s\n", \ - __FILE__, \ - __LINE__, \ - __PRETTY_FUNCTION__); -#else -#define PDEBUG -#endif - -/* - * struct dasd_information_t - * represents any data about the device, which is visible to userspace. - * including foramt and featueres. - */ -typedef struct dasd_information_t { - unsigned int devno; /* S/390 devno */ - unsigned int real_devno; /* for aliases */ - unsigned int schid; /* S/390 subchannel identifier */ - unsigned int cu_type : 16; /* from SenseID */ - unsigned int cu_model : 8; /* from SenseID */ - unsigned int dev_type : 16; /* from SenseID */ - unsigned int dev_model : 8; /* from SenseID */ - unsigned int open_count; - unsigned int req_queue_len; - unsigned int chanq_len; /* length of chanq */ - char type[4]; /* from discipline.name, 'none' for */ - /* unknown */ - unsigned int status; /* current device level */ - unsigned int label_block; /* where to find the VOLSER */ - unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ - unsigned int characteristics_size; - unsigned int confdata_size; - char characteristics[64]; /* from read_device_characteristics */ - char configuration_data[256]; /* from read_configuration_data */ -} dasd_information_t; - -struct dasd_eckd_characteristics { - unsigned short cu_type; - struct { - unsigned char support:2; - unsigned char async:1; - unsigned char reserved:1; - unsigned char cache_info:1; - unsigned char model:3; - } __attribute__ ((packed)) cu_model; - unsigned short dev_type; - unsigned char dev_model; - struct { - unsigned char mult_burst:1; - unsigned char RT_in_LR:1; - unsigned char reserved1:1; - unsigned char RD_IN_LR:1; - unsigned char reserved2:4; - unsigned char reserved3:8; - unsigned char defect_wr:1; - unsigned char XRC_supported:1; - unsigned char reserved4:1; - unsigned char striping:1; - unsigned char reserved5:4; - unsigned char cfw:1; - unsigned char reserved6:2; - unsigned char cache:1; - unsigned char dual_copy:1; - unsigned char dfw:1; - unsigned char reset_alleg:1; - unsigned char sense_down:1; - } __attribute__ ((packed)) facilities; - unsigned char dev_class; - unsigned char unit_type; - unsigned short no_cyl; - unsigned short trk_per_cyl; - unsigned char sec_per_trk; - unsigned char byte_per_track[3]; - unsigned short home_bytes; - unsigned char formula; - union { - struct { - unsigned char f1; - unsigned short f2; - unsigned short f3; - } __attribute__ ((packed)) f_0x01; - struct { - unsigned char f1; - unsigned char f2; - unsigned char f3; - unsigned char f4; - unsigned char f5; - } __attribute__ ((packed)) f_0x02; - } __attribute__ ((packed)) factors; - unsigned short first_alt_trk; - unsigned short no_alt_trk; - unsigned short first_dia_trk; - unsigned short no_dia_trk; - unsigned short first_sup_trk; - unsigned short no_sup_trk; - unsigned char MDR_ID; - unsigned char OBR_ID; - unsigned char director; - unsigned char rd_trk_set; - unsigned short max_rec_zero; - unsigned char reserved1; - unsigned char RWANY_in_LR; - unsigned char factor6; - unsigned char factor7; - unsigned char factor8; - unsigned char reserved2[3]; - unsigned char reserved3[6]; - unsigned int long_no_cyl; -} __attribute__ ((packed)); - -/* - * struct format_data_t - * represents all data necessary to format a dasd - */ -typedef struct format_data_t { - int start_unit; /* from track */ - int stop_unit; /* to track */ - int blksize; /* sectorsize */ - int intensity; -} format_data_t; - -/* - * values to be used for format_data_t.intensity - * 0/8: normal format - * 1/9: also write record zero - * 3/11: also write home address - * 4/12: invalidate track - */ -#define DASD_FMT_INT_FMT_R0 1 /* write record zero */ -#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */ -#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */ -#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */ - - -/* Disable the volume (for Linux) */ -#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) -/* Enable the volume (for Linux) */ -#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1) - -/* retrieve API version number */ -#define DASDAPIVER _IOR(DASD_IOCTL_LETTER,0,int) -/* Get information on a dasd device (enhanced) */ -#define BIODASDINFO _IOR(DASD_IOCTL_LETTER,1,dasd_information_t) - - -/***************************************************************************** - * SECTION: Further IOCTL Definitions (see fs.h) * - *****************************************************************************/ -#define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */ -/* re-read partition table */ -#define BLKRRPART _IO(0x12,95) -/* get block device sector size */ -#define BLKSSZGET _IO(0x12,104) -/* device size in bytes (u64 *arg)*/ -#define BLKGETSIZE64 _IOR(0x12,114,size_t) -/* get device geometry */ -#define HDIO_GETGEO 0x0301 - -/***************************************************************************** - * SECTION: FDASD internal types * - *****************************************************************************/ -#define PARTN_MASK ((1 << DASD_PARTN_BITS) - 1) -#define USABLE_PARTITIONS ((1 << DASD_PARTN_BITS) - 1) - -#define DASD_MIN_API_VERSION 0 - -#define DEFAULT_FDASD_CONF "/etc/fdasd.conf" /* default config file */ - -#define FDASD_VERSION "1.32.0" -#define DEVICE "device" -#define DISC "disc" -#define PART "part" - -#define ALTERNATE_CYLINDERS_USED 0x10 - -typedef struct partition_info { - u_int8_t used; - unsigned long start_trk; - unsigned long end_trk; - unsigned long len_trk; - unsigned long fspace_trk; - format1_label_t *f1; - struct partition_info *next; - struct partition_info *prev; - u_int8_t type; -} partition_info_t; - -typedef struct config_data { - unsigned long start; - unsigned long stop; -} config_data_t; - -typedef struct fdasd_anchor { - int vlabel_changed; - int vtoc_changed; - int auto_partition; - int print_table; - int big_disk; - int silent; - int verbose; - int devno; - int option_reuse; - int option_recreate; - int partno[USABLE_PARTITIONS]; - u_int16_t dev_type; - unsigned int used_partitions; - unsigned long label_pos; - unsigned int blksize; - unsigned long fspace_trk; - format4_label_t *f4; - format5_label_t *f5; - format7_label_t *f7; - format9_label_t *f9; /* template for all f9 labels */ - partition_info_t *first; - partition_info_t *last; - volume_label_t *vlabel; - config_data_t confdata[USABLE_PARTITIONS]; - u_int32_t hw_cylinders; - u_int32_t formatted_cylinders; - struct fdasd_hd_geometry geo; - unsigned int label_block; - unsigned int FBA_layout; - bool is_file; -} fdasd_anchor_t; - -enum offset {lower, upper}; - -enum fdasd_failure { - unable_to_open_disk, - unable_to_seek_disk, - unable_to_read_disk, - read_only_disk, - unable_to_ioctl, - api_version_mismatch, - wrong_disk_type, - wrong_disk_format, - disk_in_use, - config_syntax_error, - vlabel_corrupted, - dsname_corrupted, - malloc_failed, - device_verification_failed, - volser_not_found -}; - -void fdasd_cleanup (fdasd_anchor_t *anchor); -void fdasd_initialize_anchor (fdasd_anchor_t * anc); -int fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int fd); -void fdasd_check_api_version (fdasd_anchor_t *anc, int fd); -int fdasd_check_volume (fdasd_anchor_t *anc, int fd); -int fdasd_write_labels (fdasd_anchor_t *anc, int fd); -void fdasd_recreate_vtoc(fdasd_anchor_t *anc); -partition_info_t * fdasd_add_partition (fdasd_anchor_t *anc, - unsigned int start, unsigned int stop); -int fdasd_prepare_labels (fdasd_anchor_t *anc, int fd) ; -void fdasd_check_volser(char *volser, int devno); -int fdasd_get_volser(fdasd_anchor_t *anc, char *volser, int fd); -void fdasd_change_volser(fdasd_anchor_t *anc, char *str); -void fdasd_reuse_vtoc(fdasd_anchor_t *anc); - -#endif /* FDASD_H */ diff --git a/include/parted/filesys.h b/include/parted/filesys.h deleted file mode 100755 index 9fe6b6c..0000000 --- a/include/parted/filesys.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2001, 2006-2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedFileSystem - * @{ - */ - -/** \file filesys.h */ - -#ifndef PED_FILESYS_H_INCLUDED -#define PED_FILESYS_H_INCLUDED - -typedef struct _PedFileSystem PedFileSystem; -typedef struct _PedFileSystemType PedFileSystemType; -typedef struct _PedFileSystemAlias PedFileSystemAlias; -typedef const struct _PedFileSystemOps PedFileSystemOps; - -#include -#include -#include - -struct _PedFileSystemOps { - PedGeometry* (*probe) (PedGeometry* geom); -}; - -/** - * Structure describing type of file system - */ -struct _PedFileSystemType { - PedFileSystemType* next; - const char* const name; /**< name of the file system type */ - PedFileSystemOps* const ops; -}; - -/** - * Structure describing a file system alias. This is separate from - * PedFileSystemType because probing only looks through the list of types, - * and does not probe aliases separately. - */ -struct _PedFileSystemAlias { - PedFileSystemAlias* next; - PedFileSystemType* fs_type; - const char* alias; - int deprecated; -}; - - -/** - * Structure describing file system - */ -struct _PedFileSystem { - PedFileSystemType* type; /**< the file system type */ - PedGeometry* geom; /**< where the file system actually is */ - int checked; /**< 1 if the file system has been checked. - 0 otherwise. */ - - void* type_specific; - -}; - -extern void ped_file_system_type_register (PedFileSystemType* type); -extern void ped_file_system_type_unregister (PedFileSystemType* type); - -extern void ped_file_system_alias_register (PedFileSystemType* type, - const char* alias, int deprecated); -extern void ped_file_system_alias_unregister (PedFileSystemType* type, - const char* alias); - -extern PedFileSystemType* ped_file_system_type_get (const char* name); -extern PedFileSystemType* -ped_file_system_type_get_next (const PedFileSystemType* fs_type) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern PedFileSystemAlias* -ped_file_system_alias_get_next (const PedFileSystemAlias* fs_alias) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern PedFileSystemType* ped_file_system_probe (PedGeometry* geom); -extern PedGeometry* ped_file_system_probe_specific ( - const PedFileSystemType* fs_type, - PedGeometry* geom); - -PedFileSystem *ped_file_system_open (PedGeometry *geom); -int ped_file_system_close (PedFileSystem *fs); -int ped_file_system_resize (PedFileSystem *fs, PedGeometry *geom, - PedTimer *timer); -PedConstraint *ped_file_system_get_resize_constraint (const PedFileSystem *fs); - -#endif /* PED_FILESYS_H_INCLUDED */ - -/** @} */ diff --git a/include/parted/geom.h b/include/parted/geom.h deleted file mode 100755 index 387b779..0000000 --- a/include/parted/geom.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1998-2001, 2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedGeometry - * @{ - */ - -/** \file geom.h */ - -#ifndef PED_GEOM_H_INCLUDED -#define PED_GEOM_H_INCLUDED - -typedef struct _PedGeometry PedGeometry; - -/** - * Geometry of the partition - */ -struct _PedGeometry { - PedDevice* dev; - PedSector start; - PedSector length; - PedSector end; -}; - -#include -#include - -extern int ped_geometry_init (PedGeometry* geom, const PedDevice* dev, - PedSector start, PedSector length); -extern PedGeometry* ped_geometry_new (const PedDevice* dev, PedSector start, - PedSector length); -extern PedGeometry* ped_geometry_duplicate (const PedGeometry* geom); -extern PedGeometry* ped_geometry_intersect (const PedGeometry* a, - const PedGeometry* b); -extern void ped_geometry_destroy (PedGeometry* geom); -extern int ped_geometry_set (PedGeometry* geom, PedSector start, - PedSector length); -extern int ped_geometry_set_start (PedGeometry* geom, PedSector start); -extern int ped_geometry_set_end (PedGeometry* geom, PedSector end); -extern int ped_geometry_test_overlap (const PedGeometry* a, - const PedGeometry* b) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_geometry_test_inside (const PedGeometry* a, - const PedGeometry* b) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern int ped_geometry_test_sector_inside (const PedGeometry* geom, - PedSector sect) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern int ped_geometry_read (const PedGeometry* geom, void* buffer, - PedSector offset, PedSector count); -extern int ped_geometry_read_alloc (const PedGeometry* geom, void** buffer, - PedSector offset, PedSector count); -extern int ped_geometry_write (PedGeometry* geom, const void* buffer, - PedSector offset, PedSector count); -extern PedSector ped_geometry_check (PedGeometry* geom, void* buffer, - PedSector buffer_size, PedSector offset, - PedSector granularity, PedSector count, - PedTimer* timer); -extern int ped_geometry_sync (PedGeometry* geom); -extern int ped_geometry_sync_fast (PedGeometry* geom); - -/* returns -1 if "sector" is not within dest's space. */ -extern PedSector ped_geometry_map (const PedGeometry* dst, - const PedGeometry* src, - PedSector sector) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -#endif /* PED_GEOM_H_INCLUDED */ - -/** @} */ diff --git a/include/parted/natmath.h b/include/parted/natmath.h deleted file mode 100755 index e88c821..0000000 --- a/include/parted/natmath.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2007-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedAlignment - * @{ - */ - -/** \file natmath.h */ - -#ifndef PED_NATMATH_H_INCLUDED -#define PED_NATMATH_H_INCLUDED - - -typedef struct _PedAlignment PedAlignment; - -#include -#include -#include - -#define PED_MIN(a, b) ( ((a)<(b)) ? (a) : (b) ) -#define PED_MAX(a, b) ( ((a)>(b)) ? (a) : (b) ) - -/* this is weird (I'm still not sure I should be doing this!) - * - * For the functions: new, destroy, duplicate and merge: the following values - * for align are valid: - * * align == NULL (!) represents no solution - * * align->grain_size == 0 represents a single solution - * (align->offset) - * * align->grain_size > 0 represents a set of solutions - * - * These are invalid: - * * align->offset < 0 Note: this gets "normalized" - * * align->grain_size < 0 - * - * For the align_* operations, there must be a solution. i.e. align != NULL - * All solutions must be greater than zero. - */ - -struct _PedAlignment { - PedSector offset; - PedSector grain_size; -}; - -extern PedSector ped_round_up_to (PedSector sector, PedSector grain_size) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; -extern PedSector ped_round_down_to (PedSector sector, PedSector grain_size) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; -extern PedSector ped_round_to_nearest (PedSector sector, PedSector grain_size) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; -extern PedSector ped_greatest_common_divisor (PedSector a, PedSector b) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern int ped_alignment_init (PedAlignment* align, PedSector offset, - PedSector grain_size); -extern PedAlignment* ped_alignment_new (PedSector offset, PedSector grain_size); -extern void ped_alignment_destroy (PedAlignment* align); -extern PedAlignment* ped_alignment_duplicate (const PedAlignment* align); -extern PedAlignment* ped_alignment_intersect (const PedAlignment* a, - const PedAlignment* b); - -extern PedSector -ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern PedSector -ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; -extern PedSector -ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern int -ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern const PedAlignment* ped_alignment_any; -extern const PedAlignment* ped_alignment_none; - -static inline PedSector -ped_div_round_up (PedSector numerator, PedSector divisor) -{ - return (numerator + divisor - 1) / divisor; -} - - -static inline PedSector -ped_div_round_to_nearest (PedSector numerator, PedSector divisor) -{ - return (numerator + divisor/2) / divisor; -} - -#endif /* PED_NATMATH_H_INCLUDED */ - -/** - * @} - */ diff --git a/include/parted/parted.h b/include/parted/parted.h deleted file mode 100755 index e53655c..0000000 --- a/include/parted/parted.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PARTED_H_INCLUDED -#define PARTED_H_INCLUDED - -#define PED_DEFAULT_ALIGNMENT (1024 * 1024) - -#ifdef __cplusplus -extern "C" { -#endif - -#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) -# define __attribute(arg) __attribute__ (arg) -#else -# define __attribute(arg) -#endif - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -extern const char *ped_get_version () -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; - -extern void* __attribute__ ((malloc)) ped_malloc (size_t size); -extern void* __attribute__ ((malloc)) ped_calloc (size_t size); -extern void free (void* ptr); - -#ifdef __cplusplus -} -#endif - -#endif /* PARTED_H_INCLUDED */ diff --git a/include/parted/timer.h b/include/parted/timer.h deleted file mode 100755 index f3aef74..0000000 --- a/include/parted/timer.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2001-2002, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedTimer - * @{ - */ - -/** \file timer.h */ - -#ifndef PED_TIMER_H_INCLUDED -#define PED_TIMER_H_INCLUDED - -#include - -typedef struct _PedTimer PedTimer; - -typedef void PedTimerHandler (PedTimer* timer, void* context); - -/* - * Structure keeping track of progress and time - */ -struct _PedTimer { - float frac; /**< fraction of operation done */ - time_t start; /**< time of start of op */ - time_t now; /**< time of last update (now!) */ - time_t predicted_end; /**< expected finish time */ - const char* state_name; /**< eg: "copying data" */ - PedTimerHandler* handler; /**< who to notify on updates */ - void* context; /**< context to pass to handler */ -}; - -extern PedTimer* ped_timer_new (PedTimerHandler* handler, void* context); -extern void ped_timer_destroy (PedTimer* timer); - -/* a nested timer automatically notifies it's parent. You should only - * create one when you are going to use it (not before) - */ -extern PedTimer* ped_timer_new_nested (PedTimer* parent, float nest_frac); -extern void ped_timer_destroy_nested (PedTimer* timer); - -extern void ped_timer_touch (PedTimer* timer); -extern void ped_timer_reset (PedTimer* timer); -extern void ped_timer_update (PedTimer* timer, float new_frac); -extern void ped_timer_set_state_name (PedTimer* timer, const char* state_name); - -#endif /* PED_TIMER_H_INCLUDED */ - - -/** @} */ diff --git a/include/parted/unit.h b/include/parted/unit.h deleted file mode 100755 index bb8459b..0000000 --- a/include/parted/unit.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2005, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedUnit - * @{ - */ - -/** \file unit.h */ - -#ifndef PED_UNIT_H_INCLUDED -#define PED_UNIT_H_INCLUDED - -#include - -#include -#include - -#define PED_SECTOR_SIZE_DEFAULT 512LL -#define PED_KILOBYTE_SIZE 1000LL -#define PED_MEGABYTE_SIZE 1000000LL -#define PED_GIGABYTE_SIZE 1000000000LL -#define PED_TERABYTE_SIZE 1000000000000LL -#define PED_KIBIBYTE_SIZE 1024LL -#define PED_MEBIBYTE_SIZE 1048576LL -#define PED_GIBIBYTE_SIZE 1073741824LL -#define PED_TEBIBYTE_SIZE 1099511627776LL - -/** - * Human-friendly unit for representation of a location within device - */ -typedef enum { - PED_UNIT_SECTOR, - PED_UNIT_BYTE, - PED_UNIT_KILOBYTE, - PED_UNIT_MEGABYTE, - PED_UNIT_GIGABYTE, - PED_UNIT_TERABYTE, - PED_UNIT_COMPACT, - PED_UNIT_CYLINDER, - PED_UNIT_CHS, - PED_UNIT_PERCENT, - PED_UNIT_KIBIBYTE, - PED_UNIT_MEBIBYTE, - PED_UNIT_GIBIBYTE, - PED_UNIT_TEBIBYTE -} PedUnit; - -#define PED_UNIT_FIRST PED_UNIT_SECTOR -#define PED_UNIT_LAST PED_UNIT_TEBIBYTE - -extern long long ped_unit_get_size (const PedDevice* dev, PedUnit unit); -extern const char *ped_unit_get_name (PedUnit unit) - -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__const__)) -#endif -; -extern PedUnit ped_unit_get_by_name (const char* unit_name) -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) - __attribute ((__pure__)) -#endif -; - -extern void ped_unit_set_default (PedUnit unit); -extern PedUnit ped_unit_get_default (); - -extern char* ped_unit_format_byte (const PedDevice* dev, PedSector byte); -extern char* ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte, - PedUnit unit); - -extern char* ped_unit_format (const PedDevice* dev, PedSector sector); -extern char* ped_unit_format_custom (const PedDevice* dev, PedSector sector, - PedUnit unit); - -extern int ped_unit_parse (const char* str, const PedDevice* dev, - PedSector* sector, - PedGeometry** range); -extern int ped_unit_parse_custom (const char* str, const PedDevice* dev, - PedUnit unit, PedSector* sector, - PedGeometry** range); - -#endif /* PED_UNIT_H_INCLUDED */ - -/** @} */ diff --git a/include/parted/vtoc.h b/include/parted/vtoc.h deleted file mode 100755 index c2756f9..0000000 --- a/include/parted/vtoc.h +++ /dev/null @@ -1,387 +0,0 @@ -/* - * File...........: s390-tools/dasdview/vtoc.h - * Author(s)......: Horst Hummel - * Bugreports.to..: - * - * This is a user-space copy of the kernel vtoc,h. - * - * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2002 - * - * History of changes (starts March 2002) - * 2002-03-12 initial - */ - -#ifndef VTOC_H -#define VTOC_H - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define LINE_LENGTH 80 -#define VTOC_START_CC 0x0 -#define VTOC_START_HH 0x1 -#define FIRST_USABLE_CYL 1 -#define FIRST_USABLE_TRK 2 - -#define DASD_3380_TYPE 13148 -#define DASD_3390_TYPE 13200 -#define DASD_9345_TYPE 37701 - -#define DASD_3380_VALUE 0xbb60 -#define DASD_3390_VALUE 0xe5a2 -#define DASD_9345_VALUE 0xbc98 - -#define VOLSER_LENGTH 6 -#define BIG_DISK_SIZE 0x10000 -#define LV_COMPAT_CYL 0xFFFE - -/***************************************************************************** - * SECTION: Definition from hdreq.h * - *****************************************************************************/ - -struct fdasd_hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - unsigned long start; -}; - - -typedef struct ttr ttr_t; -typedef struct cchhb cchhb_t; -typedef struct cchh cchh_t; -typedef struct labeldate labeldate_t; -typedef struct volume_label volume_label_t; -typedef struct cms_volume_label cms_volume_label_t; -typedef struct extent extent_t; -typedef struct dev_const dev_const_t; -typedef struct format1_label format1_label_t; -typedef struct format4_label format4_label_t; -typedef struct ds5ext ds5ext_t; -typedef struct format5_label format5_label_t; -typedef struct ds7ext ds7ext_t; -typedef struct format7_label format7_label_t; -typedef struct format9_label format9_label_t; - -struct __attribute__ ((packed)) ttr { - u_int16_t tt; - u_int8_t r; -}; - -struct __attribute__ ((packed)) cchhb { - u_int16_t cc; - u_int16_t hh; - u_int8_t b; -}; - -struct __attribute__ ((packed)) cchh { - u_int16_t cc; - u_int16_t hh; -}; - -struct __attribute__ ((packed)) labeldate { - u_int8_t year; - u_int16_t day; -}; - -/* - * The following structure is a merger of the cdl and ldl volume label. - * On an ldl disk there is no key information, so when reading an - * ldl label from disk, the data should be copied at the address of vollbl. - * On the other side, the field ldl_version is reserved in a cdl record - * and the field formatted_blocks exists only for ldl labels. So when - * reading a cdl label from disk, the formatted_blocks field will contain - * arbitrary data. - * This layout may be a bit awkward, but the advantage of having the - * same label type for both disk layout types is bigger than the effort - * for taking a bit of extra care at the fringes. - */ - -struct __attribute__ ((packed)) volume_label { - char volkey[4]; /* volume key = volume label */ - char vollbl[4]; /* volume label ("VOL1" in EBCDIC) */ - char volid[6]; /* volume identifier */ - u_int8_t security; /* security byte */ - cchhb_t vtoc; /* VTOC address */ - char res1[5]; /* reserved */ - char cisize[4]; /* CI-size for FBA,... */ - /* ...blanks for CKD */ - char blkperci[4]; /* no of blocks per CI (FBA), blanks for CKD */ - char labperci[4]; /* no of labels per CI (FBA), blanks for CKD */ - char res2[4]; /* reserved */ - char lvtoc[14]; /* owner code for LVTOC */ - char res3[28]; /* reserved */ - char ldl_version; /* version number, valid for ldl format */ - u_int64_t formatted_blocks; /* valid when ldl_version >= "2" (in - EBCDIC) */ -}; - -/* - * See: - * z/VM V5R2.0 CMS Planning and Administration - * SC24-6078-01 - * What CMS Does / Disk and File Management / Disk File Format - * http://publib.boulder.ibm.com/infocenter/zvm/v5r4/topic/com.ibm.zvm.v54.dmsd1/hcsg2b1018.htm - */ -struct __attribute__ ((packed)) cms_volume_label { - char label_id[4]; /* Label identifier ("CMS1" in EBCDIC) */ - char vol_id[6]; /* Volume identifier */ - char version_id[2]; /* Version identifier ("\0\0") */ - u_int32_t block_size; /* Disk block size (512, 1024, 2048 or 4096) */ - u_int32_t origin_ptr; /* Disk origin pointer (4 or 5) */ - u_int32_t usable_count; /* Number of usable cylinders/blocks */ - u_int32_t formatted_count; /* Max # of formatted cylinders/blocks */ - u_int32_t block_count; /* Disk size in CMS blocks */ - u_int32_t used_count; /* Number of CMS blocks in use */ - u_int32_t fst_size; /* File Status Table (FST) size (64) */ - u_int32_t fst_count; /* Number of FSTs per CMS block */ - char format_date[6]; /* Disk FORMAT date (YYMMDDhhmmss) */ - char reserved1[2]; /* Reserved fields. - The low-order bit of the first byte is a - century flag. 0 = 1900s, 1 = 2000s. - It is used in conjunction with - "format_date" to determine the - four-digit year. */ - u_int32_t disk_offset; /* Offset in blocks to the start of the - reserved file when the disk is reserved. - This is the number of blocks to skip - before the partition starts. */ - u_int32_t map_block; /* Allocation map block with next hole */ - u_int32_t hblk_disp; /* Displacement in HBLK data of next hole */ - u_int32_t user_disp; /* Disp into user part of allocation map */ - u_int32_t open_files; /* Count of SFS open files for this ADT. - open_files is not really part of the - volume label. It is not used for - minidisks. */ - char segment_name[8]; /* Name of the shared segment. - segment_name is not really part of the - volume label. It is not stored on disk. */ -}; - -struct __attribute__ ((packed)) extent { - u_int8_t typeind; /* extent type indicator */ - u_int8_t seqno; /* extent sequence number */ - cchh_t llimit; /* starting point of this extent */ - cchh_t ulimit; /* ending point of this extent */ -}; - -struct __attribute__ ((packed)) dev_const { - u_int16_t DS4DSCYL; /* number of logical cyls */ - u_int16_t DS4DSTRK; /* number of tracks in a logical cylinder */ - u_int16_t DS4DEVTK; /* device track length */ - u_int8_t DS4DEVI; /* non-last keyed record overhead */ - u_int8_t DS4DEVL; /* last keyed record overhead */ - u_int8_t DS4DEVK; /* non-keyed record overhead differential */ - u_int8_t DS4DEVFG; /* flag byte */ - u_int16_t DS4DEVTL; /* device tolerance */ - u_int8_t DS4DEVDT; /* number of DSCB's per track */ - u_int8_t DS4DEVDB; /* number of directory blocks per track */ -}; - -/* - * format 1 and format 8 label have the same layout so we use the following - * structure for both. - */ -struct __attribute__ ((packed)) format1_label { - char DS1DSNAM[44]; /* data set name */ - u_int8_t DS1FMTID; /* format identifier */ - char DS1DSSN[6]; /* data set serial number */ - u_int16_t DS1VOLSQ; /* volume sequence number */ - labeldate_t DS1CREDT; /* creation date: ydd */ - labeldate_t DS1EXPDT; /* expiration date */ - u_int8_t DS1NOEPV; /* number of extents on volume */ - u_int8_t DS1NOBDB; /* no. of bytes used in last direction blk */ - u_int8_t DS1FLAG1; /* flag 1 */ - char DS1SYSCD[13]; /* system code */ - labeldate_t DS1REFD; /* date last referenced */ - u_int8_t DS1SMSFG; /* system managed storage indicators */ - u_int8_t DS1SCXTF; /* sec. space extension flag byte */ - u_int16_t DS1SCXTV; /* secondary space extension value */ - u_int8_t DS1DSRG1; /* data set organisation byte 1 */ - u_int8_t DS1DSRG2; /* data set organisation byte 2 */ - u_int8_t DS1RECFM; /* record format */ - u_int8_t DS1OPTCD; /* option code */ - u_int16_t DS1BLKL; /* block length */ - u_int16_t DS1LRECL; /* record length */ - u_int8_t DS1KEYL; /* key length */ - u_int16_t DS1RKP; /* relative key position */ - u_int8_t DS1DSIND; /* data set indicators */ - u_int8_t DS1SCAL1; /* secondary allocation flag byte */ - char DS1SCAL3[3]; /* secondary allocation quantity */ - ttr_t DS1LSTAR; /* last used track and block on track */ - u_int16_t DS1TRBAL; /* space remaining on last used track */ - u_int16_t res1; /* reserved */ - extent_t DS1EXT1; /* first extent description */ - extent_t DS1EXT2; /* second extent description */ - extent_t DS1EXT3; /* third extent description */ - cchhb_t DS1PTRDS; /* possible pointer to f2 or f3 DSCB */ -}; - -struct __attribute__ ((packed)) format4_label { - char DS4KEYCD[44]; /* key code for VTOC labels: 44 times 0x04 */ - u_int8_t DS4IDFMT; /* format identifier */ - cchhb_t DS4HPCHR; /* highest address of a format 1 DSCB */ - u_int16_t DS4DSREC; /* number of available DSCB's */ - cchh_t DS4HCCHH; /* CCHH of next available alternate track */ - u_int16_t DS4NOATK; /* number of remaining alternate tracks */ - u_int8_t DS4VTOCI; /* VTOC indicators */ - u_int8_t DS4NOEXT; /* number of extents in VTOC */ - u_int8_t DS4SMSFG; /* system managed storage indicators */ - u_int8_t DS4DEVAC; /* number of alternate cylinders. - Subtract from first two bytes of - DS4DEVSZ to get number of usable - cylinders. can be zero. valid - only if DS4DEVAV on. */ - dev_const_t DS4DEVCT; /* device constants */ - char DS4AMTIM[8]; /* VSAM timestamp */ - char DS4AMCAT[3]; /* VSAM catalog indicator */ - char DS4R2TIM[8]; /* VSAM volume/catalog match timestamp */ - char res1[5]; /* reserved */ - char DS4F6PTR[5]; /* pointer to first format 6 DSCB */ - extent_t DS4VTOCE; /* VTOC extent description */ - char res2[10]; /* reserved */ - u_int8_t DS4EFLVL; /* extended free-space management level */ - cchhb_t DS4EFPTR; /* pointer to extended free-space info */ - char res3; /* reserved */ - u_int32_t DS4DCYL; /* number of logical cyls */ - char res4[2]; /* reserved */ - u_int8_t DS4DEVF2; /* device flags */ - char res5; /* reserved */ -}; - -struct __attribute__ ((packed)) ds5ext { - u_int16_t t; /* RTA of the first track of free extent */ - u_int16_t fc; /* number of whole cylinders in free ext. */ - u_int8_t ft; /* number of remaining free tracks */ -}; - -struct __attribute__ ((packed)) format5_label { - char DS5KEYID[4]; /* key identifier */ - ds5ext_t DS5AVEXT; /* first available (free-space) extent. */ - ds5ext_t DS5EXTAV[7]; /* seven available extents */ - u_int8_t DS5FMTID; /* format identifier */ - ds5ext_t DS5MAVET[18]; /* eighteen available extents */ - cchhb_t DS5PTRDS; /* pointer to next format5 DSCB */ -}; - -struct __attribute__ ((packed)) ds7ext { - u_int32_t a; /* starting RTA value */ - u_int32_t b; /* ending RTA value + 1 */ -}; - -struct __attribute__ ((packed)) format7_label { - char DS7KEYID[4]; /* key identifier */ - ds7ext_t DS7EXTNT[5]; /* space for 5 extent descriptions */ - u_int8_t DS7FMTID; /* format identifier */ - ds7ext_t DS7ADEXT[11]; /* space for 11 extent descriptions */ - char res1[2]; /* reserved */ - cchhb_t DS7PTRDS; /* pointer to next FMT7 DSCB */ -}; - -struct __attribute__ ((packed)) format9_label { - u_int8_t DS9KEYID; /* key code for format 9 labels (0x09) */ - u_int8_t DS9SUBTY; /* subtype (0x01) */ - u_int8_t DS9NUMF9; /* number of F9 datasets */ - u_int8_t res1[41]; /* reserved */ - u_int8_t DS9FMTID; /* format identifier */ - u_int8_t res2[95]; /* reserved */ -}; - -char *vtoc_ebcdic_enc (char const *source, char *target, int l); -char *vtoc_ebcdic_dec (char const *source, char *target, int l); -void vtoc_set_extent (extent_t *ext, u_int8_t typeind, u_int8_t seqno, - cchh_t *lower, cchh_t *upper); -void vtoc_set_cchh (cchh_t *addr, u_int32_t cc, u_int16_t hh); -u_int32_t vtoc_get_cyl_from_cchh(cchh_t *addr); -u_int16_t vtoc_get_head_from_cchh(cchh_t *addr); -void vtoc_set_cchhb (cchhb_t *addr, u_int32_t cc, u_int16_t hh, u_int8_t b); -u_int32_t vtoc_get_cyl_from_cchhb(cchhb_t *addr); -u_int16_t vtoc_get_head_from_cchhb(cchhb_t *addr); -u_int64_t cchhb2blk(cchhb_t *p, struct fdasd_hd_geometry *geo); -u_int64_t cchh2blk (cchh_t *p, struct fdasd_hd_geometry *geo); -u_int32_t cchh2trk (cchh_t *p, struct fdasd_hd_geometry *geo); -void vtoc_set_date (labeldate_t *d, u_int8_t year, u_int16_t day); - -void vtoc_volume_label_init (volume_label_t *vlabel); - -int vtoc_read_volume_label (int fd, unsigned long vlabel_start, - volume_label_t *vlabel); - -int vtoc_write_volume_label (int fd, unsigned long vlabel_start, - volume_label_t const *vlabel); - -void vtoc_volume_label_set_volser (volume_label_t *vlabel, char const *volser); - -char *vtoc_volume_label_get_volser (volume_label_t *vlabel, char *volser); - -void vtoc_volume_label_set_key (volume_label_t *vlabel, char const *key); - -void vtoc_volume_label_set_label (volume_label_t *vlabel, char const *lbl); - -char *vtoc_volume_label_get_label (volume_label_t *vlabel, char *lbl); - -void vtoc_read_label (int fd, unsigned long position, format1_label_t *f1, - format4_label_t *f4, format5_label_t *f5, - format7_label_t *f7); - -void vtoc_write_label (int fd, unsigned long position, - format1_label_t const *f1, - format4_label_t const *f4, - format5_label_t const *f5, - format7_label_t const *f7, - format9_label_t const *f9); - -void vtoc_init_format1_label (unsigned int blksize, - extent_t *part_extent, format1_label_t *f1); - -void vtoc_init_format4_label (format4_label_t *f4lbl, - unsigned int compat_cylinders, - unsigned int real_cylinders, - unsigned int tracks, - unsigned int blocks, - unsigned int blksize, - u_int16_t dev_type); - -void vtoc_update_format4_label (format4_label_t *f4, cchhb_t *highest_f1, - u_int16_t unused_update); - -void vtoc_init_format5_label (format5_label_t *f5); - -void vtoc_update_format5_label_add (format5_label_t *f5, int verbose, - int trk, u_int16_t a, u_int16_t b, - u_int8_t c); - -void vtoc_update_format5_label_del (format5_label_t *f5, int verbose, - int trk, u_int16_t a, u_int16_t b, - u_int8_t c); - -void vtoc_init_format7_label (format7_label_t *f7); - -void vtoc_update_format7_label_add (format7_label_t *f7, int verbose, - u_int32_t a, u_int32_t b); - -void vtoc_update_format7_label_del (format7_label_t *f7, int verbose, - u_int32_t a, u_int32_t b); - -void vtoc_init_format8_label (unsigned int blksize, - extent_t *part_extent, format1_label_t *f1); - -void vtoc_update_format8_label (cchhb_t *associated_f9, format1_label_t *f8); - -void vtoc_init_format9_label (format9_label_t *f9); - -void vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5, - format7_label_t *f7, char ch, int verbose, - u_int32_t start, u_int32_t stop, u_int32_t cyl, - u_int32_t trk); - -#endif /* VTOC_H */ diff --git a/jni/Android.mk b/jni/Android.mk index 4039b4f..1397b4a 100755 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -6,7 +6,7 @@ # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -15,7 +15,7 @@ # limitations under the License. ######## -# 3.0.2 +# 2.9.6 ######## LOCAL_PATH := $(call my-dir) @@ -23,41 +23,31 @@ LOCAL_PATH := $(call my-dir) include $(LOCAL_PATH)/../build/config/env.mk PMT_CXXFLAGS = \ - -O3 \ - -Wall \ - -Wextra \ - -Wno-vla-cxx-extension \ - -Wno-nullability-completeness \ - -Wno-writable-strings \ - -Wno-nullability-extension \ - -Wno-reorder-init-list \ - -Wno-gnu-zero-variadic-macro-arguments \ - -static \ - $(PMT_EXTRA_CXXFLAGS) + -O3 \ + -Wall \ + -Wextra \ + -Wno-vla-cxx-extension \ + -Wno-nullability-completeness \ + -Wno-writable-strings \ + -Wno-nullability-extension \ + -Wno-reorder-init-list \ + -Wno-gnu-zero-variadic-macro-arguments \ + -static \ + $(PMT_EXTRA_CXXFLAGS) E2FSPROGS_DEFAULT_CFLAGS = \ - -Werror \ - -Wno-pointer-arith \ - -Wno-sign-compare \ - -Wno-type-limits \ - -Wno-typedef-redefinition \ - -Wno-unused-parameter \ - -Wno-unused-command-line-argument -PARTED_DEFAULTS_CFLAGS = \ - -Wno-pointer-sign \ - -Wno-sign-compare \ - -Wno-gnu-designator \ - -Wno-unused-variable \ - -Wno-unused-parameter \ - -Wno-unused-command-line-argument \ - -Wno-missing-field-initializers \ - -Wno-single-bit-bitfield-constant-conversion + -Werror \ + -Wno-pointer-arith \ + -Wno-sign-compare \ + -Wno-type-limits \ + -Wno-typedef-redefinition \ + -Wno-unused-parameter \ + -Wno-unused-command-line-argument ifneq ($(PMT_ENABLE_DEBUG),) - PMT_CXXFLAGS += -gdwarf-5 -fsanitize=address + PMT_CXXFLAGS += -gdwarf-5 -fsanitize=address endif PMT := PartitionManager -PARTED := parted MKE2FS := e2fsprogs/mke2fs LIB := e2fsprogs/lib LIBEXT2FS := $(LIB)/ext2fs @@ -67,116 +57,111 @@ LIBEXT2_QUOTA := $(LIB)/support LIBEXT2_MISC := $(LIB)/misc LIBEXT2_COM_ERR := $(LIB)/et LIBEXT2_BLKID := $(LIB)/blkid -LIBGNULIB := $(PARTED)/libgnulib -LIBCHARSET := $(PARTED)/libcharset -LIBICRT := $(PARTED)/libiconv/icrt -LIBICONV := $(PARTED)/libiconv -LIBPARTED := $(PARTED)/libparted INC_DIR := $(LOCAL_PATH)/../include/e2fsprogs E2FSPROGS_INCLUDES := \ - $(INC_DIR)/misc \ - $(INC_DIR)/blkid \ - $(INC_DIR)/e2p \ - $(INC_DIR)/et \ - $(INC_DIR)/ext2fs \ - $(INC_DIR)/ss \ - $(INC_DIR)/support \ - $(INC_DIR)/uuid \ - $(INC_DIR)/e2fsck \ - $(INC_DIR) + $(INC_DIR)/misc \ + $(INC_DIR)/blkid \ + $(INC_DIR)/e2p \ + $(INC_DIR)/et \ + $(INC_DIR)/ext2fs \ + $(INC_DIR)/ss \ + $(INC_DIR)/support \ + $(INC_DIR)/uuid \ + $(INC_DIR)/e2fsck \ + $(INC_DIR) include $(CLEAR_VARS) LOCAL_MODULE := libext2fs LOCAL_SRC_FILES := \ - $(LIBEXT2FS)/ext2_err.c \ - $(LIBEXT2FS)/alloc.c \ - $(LIBEXT2FS)/alloc_sb.c \ - $(LIBEXT2FS)/alloc_stats.c \ - $(LIBEXT2FS)/alloc_tables.c \ - $(LIBEXT2FS)/atexit.c \ - $(LIBEXT2FS)/badblocks.c \ - $(LIBEXT2FS)/bb_inode.c \ - $(LIBEXT2FS)/bitmaps.c \ - $(LIBEXT2FS)/bitops.c \ - $(LIBEXT2FS)/blkmap64_ba.c \ - $(LIBEXT2FS)/blkmap64_rb.c \ - $(LIBEXT2FS)/blknum.c \ - $(LIBEXT2FS)/block.c \ - $(LIBEXT2FS)/bmap.c \ - $(LIBEXT2FS)/check_desc.c \ - $(LIBEXT2FS)/crc16.c \ - $(LIBEXT2FS)/crc32c.c \ - $(LIBEXT2FS)/csum.c \ - $(LIBEXT2FS)/closefs.c \ - $(LIBEXT2FS)/dblist.c \ - $(LIBEXT2FS)/dblist_dir.c \ - $(LIBEXT2FS)/digest_encode.c \ - $(LIBEXT2FS)/dirblock.c \ - $(LIBEXT2FS)/dirhash.c \ - $(LIBEXT2FS)/dir_iterate.c \ - $(LIBEXT2FS)/dupfs.c \ - $(LIBEXT2FS)/expanddir.c \ - $(LIBEXT2FS)/ext_attr.c \ - $(LIBEXT2FS)/extent.c \ - $(LIBEXT2FS)/fallocate.c \ - $(LIBEXT2FS)/fileio.c \ - $(LIBEXT2FS)/finddev.c \ - $(LIBEXT2FS)/flushb.c \ - $(LIBEXT2FS)/freefs.c \ - $(LIBEXT2FS)/gen_bitmap.c \ - $(LIBEXT2FS)/gen_bitmap64.c \ - $(LIBEXT2FS)/get_num_dirs.c \ - $(LIBEXT2FS)/get_pathname.c \ - $(LIBEXT2FS)/getsize.c \ - $(LIBEXT2FS)/getsectsize.c \ - $(LIBEXT2FS)/hashmap.c \ - $(LIBEXT2FS)/i_block.c \ - $(LIBEXT2FS)/icount.c \ - $(LIBEXT2FS)/imager.c \ - $(LIBEXT2FS)/ind_block.c \ - $(LIBEXT2FS)/initialize.c \ - $(LIBEXT2FS)/inline.c \ - $(LIBEXT2FS)/inline_data.c \ - $(LIBEXT2FS)/inode.c \ - $(LIBEXT2FS)/io_manager.c \ - $(LIBEXT2FS)/ismounted.c \ - $(LIBEXT2FS)/link.c \ - $(LIBEXT2FS)/llseek.c \ - $(LIBEXT2FS)/lookup.c \ - $(LIBEXT2FS)/mmp.c \ - $(LIBEXT2FS)/mkdir.c \ - $(LIBEXT2FS)/mkjournal.c \ - $(LIBEXT2FS)/namei.c \ - $(LIBEXT2FS)/native.c \ - $(LIBEXT2FS)/newdir.c \ - $(LIBEXT2FS)/nls_utf8.c \ - $(LIBEXT2FS)/openfs.c \ - $(LIBEXT2FS)/progress.c \ - $(LIBEXT2FS)/punch.c \ - $(LIBEXT2FS)/qcow2.c \ - $(LIBEXT2FS)/rbtree.c \ - $(LIBEXT2FS)/read_bb.c \ - $(LIBEXT2FS)/read_bb_file.c \ - $(LIBEXT2FS)/res_gdt.c \ - $(LIBEXT2FS)/rw_bitmaps.c \ - $(LIBEXT2FS)/sha256.c \ - $(LIBEXT2FS)/sha512.c \ - $(LIBEXT2FS)/swapfs.c \ - $(LIBEXT2FS)/symlink.c \ - $(LIBEXT2FS)/undo_io.c \ - $(LIBEXT2FS)/unix_io.c \ - $(LIBEXT2FS)/sparse_io.c \ - $(LIBEXT2FS)/unlink.c \ - $(LIBEXT2FS)/valid_blk.c \ - $(LIBEXT2FS)/version.c \ - $(LIBEXT2FS)/test_io.c + $(LIBEXT2FS)/ext2_err.c \ + $(LIBEXT2FS)/alloc.c \ + $(LIBEXT2FS)/alloc_sb.c \ + $(LIBEXT2FS)/alloc_stats.c \ + $(LIBEXT2FS)/alloc_tables.c \ + $(LIBEXT2FS)/atexit.c \ + $(LIBEXT2FS)/badblocks.c \ + $(LIBEXT2FS)/bb_inode.c \ + $(LIBEXT2FS)/bitmaps.c \ + $(LIBEXT2FS)/bitops.c \ + $(LIBEXT2FS)/blkmap64_ba.c \ + $(LIBEXT2FS)/blkmap64_rb.c \ + $(LIBEXT2FS)/blknum.c \ + $(LIBEXT2FS)/block.c \ + $(LIBEXT2FS)/bmap.c \ + $(LIBEXT2FS)/check_desc.c \ + $(LIBEXT2FS)/crc16.c \ + $(LIBEXT2FS)/crc32c.c \ + $(LIBEXT2FS)/csum.c \ + $(LIBEXT2FS)/closefs.c \ + $(LIBEXT2FS)/dblist.c \ + $(LIBEXT2FS)/dblist_dir.c \ + $(LIBEXT2FS)/digest_encode.c \ + $(LIBEXT2FS)/dirblock.c \ + $(LIBEXT2FS)/dirhash.c \ + $(LIBEXT2FS)/dir_iterate.c \ + $(LIBEXT2FS)/dupfs.c \ + $(LIBEXT2FS)/expanddir.c \ + $(LIBEXT2FS)/ext_attr.c \ + $(LIBEXT2FS)/extent.c \ + $(LIBEXT2FS)/fallocate.c \ + $(LIBEXT2FS)/fileio.c \ + $(LIBEXT2FS)/finddev.c \ + $(LIBEXT2FS)/flushb.c \ + $(LIBEXT2FS)/freefs.c \ + $(LIBEXT2FS)/gen_bitmap.c \ + $(LIBEXT2FS)/gen_bitmap64.c \ + $(LIBEXT2FS)/get_num_dirs.c \ + $(LIBEXT2FS)/get_pathname.c \ + $(LIBEXT2FS)/getsize.c \ + $(LIBEXT2FS)/getsectsize.c \ + $(LIBEXT2FS)/hashmap.c \ + $(LIBEXT2FS)/i_block.c \ + $(LIBEXT2FS)/icount.c \ + $(LIBEXT2FS)/imager.c \ + $(LIBEXT2FS)/ind_block.c \ + $(LIBEXT2FS)/initialize.c \ + $(LIBEXT2FS)/inline.c \ + $(LIBEXT2FS)/inline_data.c \ + $(LIBEXT2FS)/inode.c \ + $(LIBEXT2FS)/io_manager.c \ + $(LIBEXT2FS)/ismounted.c \ + $(LIBEXT2FS)/link.c \ + $(LIBEXT2FS)/llseek.c \ + $(LIBEXT2FS)/lookup.c \ + $(LIBEXT2FS)/mmp.c \ + $(LIBEXT2FS)/mkdir.c \ + $(LIBEXT2FS)/mkjournal.c \ + $(LIBEXT2FS)/namei.c \ + $(LIBEXT2FS)/native.c \ + $(LIBEXT2FS)/newdir.c \ + $(LIBEXT2FS)/nls_utf8.c \ + $(LIBEXT2FS)/openfs.c \ + $(LIBEXT2FS)/progress.c \ + $(LIBEXT2FS)/punch.c \ + $(LIBEXT2FS)/qcow2.c \ + $(LIBEXT2FS)/rbtree.c \ + $(LIBEXT2FS)/read_bb.c \ + $(LIBEXT2FS)/read_bb_file.c \ + $(LIBEXT2FS)/res_gdt.c \ + $(LIBEXT2FS)/rw_bitmaps.c \ + $(LIBEXT2FS)/sha256.c \ + $(LIBEXT2FS)/sha512.c \ + $(LIBEXT2FS)/swapfs.c \ + $(LIBEXT2FS)/symlink.c \ + $(LIBEXT2FS)/undo_io.c \ + $(LIBEXT2FS)/unix_io.c \ + $(LIBEXT2FS)/sparse_io.c \ + $(LIBEXT2FS)/unlink.c \ + $(LIBEXT2FS)/valid_blk.c \ + $(LIBEXT2FS)/version.c \ + $(LIBEXT2FS)/test_io.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -Wno-unused-but-set-variable \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -Wno-unused-but-set-variable \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) @@ -184,27 +169,27 @@ include $(CLEAR_VARS) LOCAL_MODULE := libext2_blkid LOCAL_SRC_FILES := \ - $(LIBEXT2_BLKID)/cache.c \ - $(LIBEXT2_BLKID)/dev.c \ - $(LIBEXT2_BLKID)/devname.c \ - $(LIBEXT2_BLKID)/devno.c \ - $(LIBEXT2_BLKID)/getsize.c \ - $(LIBEXT2_BLKID)/llseek.c \ - $(LIBEXT2_BLKID)/probe.c \ - $(LIBEXT2_BLKID)/read.c \ - $(LIBEXT2_BLKID)/resolve.c \ - $(LIBEXT2_BLKID)/save.c \ - $(LIBEXT2_BLKID)/tag.c \ - $(LIBEXT2_BLKID)/version.c + $(LIBEXT2_BLKID)/cache.c \ + $(LIBEXT2_BLKID)/dev.c \ + $(LIBEXT2_BLKID)/devname.c \ + $(LIBEXT2_BLKID)/devno.c \ + $(LIBEXT2_BLKID)/getsize.c \ + $(LIBEXT2_BLKID)/llseek.c \ + $(LIBEXT2_BLKID)/probe.c \ + $(LIBEXT2_BLKID)/read.c \ + $(LIBEXT2_BLKID)/resolve.c \ + $(LIBEXT2_BLKID)/save.c \ + $(LIBEXT2_BLKID)/tag.c \ + $(LIBEXT2_BLKID)/version.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -Wno-error=attributes \ - -Wno-error=pointer-sign \ - -Wno-unused-but-set-variable \ - -fno-strict-aliasing \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -Wno-error=attributes \ + -Wno-error=pointer-sign \ + -Wno-unused-but-set-variable \ + -fno-strict-aliasing \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) @@ -212,21 +197,21 @@ include $(CLEAR_VARS) LOCAL_MODULE := libext2_uuid LOCAL_SRC_FILES := \ - $(LIBEXT2_UUID)/clear.c \ - $(LIBEXT2_UUID)/compare.c \ - $(LIBEXT2_UUID)/copy.c \ - $(LIBEXT2_UUID)/gen_uuid.c \ - $(LIBEXT2_UUID)/isnull.c \ - $(LIBEXT2_UUID)/pack.c \ - $(LIBEXT2_UUID)/parse.c \ - $(LIBEXT2_UUID)/unpack.c \ - $(LIBEXT2_UUID)/unparse.c \ - $(LIBEXT2_UUID)/uuid_time.c + $(LIBEXT2_UUID)/clear.c \ + $(LIBEXT2_UUID)/compare.c \ + $(LIBEXT2_UUID)/copy.c \ + $(LIBEXT2_UUID)/gen_uuid.c \ + $(LIBEXT2_UUID)/isnull.c \ + $(LIBEXT2_UUID)/pack.c \ + $(LIBEXT2_UUID)/parse.c \ + $(LIBEXT2_UUID)/unpack.c \ + $(LIBEXT2_UUID)/unparse.c \ + $(LIBEXT2_UUID)/uuid_time.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) @@ -234,38 +219,38 @@ include $(CLEAR_VARS) LOCAL_MODULE := libext2_e2p LOCAL_SRC_FILES := \ - $(LIBEXT2_E2P)/crypto_mode.c \ - $(LIBEXT2_E2P)/encoding.c \ - $(LIBEXT2_E2P)/errcode.c \ - $(LIBEXT2_E2P)/feature.c \ - $(LIBEXT2_E2P)/fgetflags.c \ - $(LIBEXT2_E2P)/fgetproject.c \ - $(LIBEXT2_E2P)/fgetversion.c \ - $(LIBEXT2_E2P)/fsetflags.c \ - $(LIBEXT2_E2P)/fsetproject.c \ - $(LIBEXT2_E2P)/fsetversion.c \ - $(LIBEXT2_E2P)/getflags.c \ - $(LIBEXT2_E2P)/getversion.c \ - $(LIBEXT2_E2P)/hashstr.c \ - $(LIBEXT2_E2P)/iod.c \ - $(LIBEXT2_E2P)/ljs.c \ - $(LIBEXT2_E2P)/ls.c \ - $(LIBEXT2_E2P)/mntopts.c \ - $(LIBEXT2_E2P)/ostype.c \ - $(LIBEXT2_E2P)/parse_num.c \ - $(LIBEXT2_E2P)/pe.c \ - $(LIBEXT2_E2P)/percent.c \ - $(LIBEXT2_E2P)/pf.c \ - $(LIBEXT2_E2P)/ps.c \ - $(LIBEXT2_E2P)/setflags.c \ - $(LIBEXT2_E2P)/setversion.c \ - $(LIBEXT2_E2P)/uuid.c + $(LIBEXT2_E2P)/crypto_mode.c \ + $(LIBEXT2_E2P)/encoding.c \ + $(LIBEXT2_E2P)/errcode.c \ + $(LIBEXT2_E2P)/feature.c \ + $(LIBEXT2_E2P)/fgetflags.c \ + $(LIBEXT2_E2P)/fgetproject.c \ + $(LIBEXT2_E2P)/fgetversion.c \ + $(LIBEXT2_E2P)/fsetflags.c \ + $(LIBEXT2_E2P)/fsetproject.c \ + $(LIBEXT2_E2P)/fsetversion.c \ + $(LIBEXT2_E2P)/getflags.c \ + $(LIBEXT2_E2P)/getversion.c \ + $(LIBEXT2_E2P)/hashstr.c \ + $(LIBEXT2_E2P)/iod.c \ + $(LIBEXT2_E2P)/ljs.c \ + $(LIBEXT2_E2P)/ls.c \ + $(LIBEXT2_E2P)/mntopts.c \ + $(LIBEXT2_E2P)/ostype.c \ + $(LIBEXT2_E2P)/parse_num.c \ + $(LIBEXT2_E2P)/pe.c \ + $(LIBEXT2_E2P)/percent.c \ + $(LIBEXT2_E2P)/pf.c \ + $(LIBEXT2_E2P)/ps.c \ + $(LIBEXT2_E2P)/setflags.c \ + $(LIBEXT2_E2P)/setversion.c \ + $(LIBEXT2_E2P)/uuid.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -Wno-error=attributes \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -Wno-error=attributes \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) @@ -273,22 +258,22 @@ include $(CLEAR_VARS) LOCAL_MODULE := libext2_quota LOCAL_SRC_FILES := \ - $(LIBEXT2_QUOTA)/devname.c \ - $(LIBEXT2_QUOTA)/dict.c \ - $(LIBEXT2_QUOTA)/mkquota.c \ - $(LIBEXT2_QUOTA)/parse_qtype.c \ - $(LIBEXT2_QUOTA)/plausible.c \ - $(LIBEXT2_QUOTA)/prof_err.c \ - $(LIBEXT2_QUOTA)/profile.c \ - $(LIBEXT2_QUOTA)/profile_helpers.c \ - $(LIBEXT2_QUOTA)/quotaio.c \ - $(LIBEXT2_QUOTA)/quotaio_tree.c \ - $(LIBEXT2_QUOTA)/quotaio_v2.c + $(LIBEXT2_QUOTA)/devname.c \ + $(LIBEXT2_QUOTA)/dict.c \ + $(LIBEXT2_QUOTA)/mkquota.c \ + $(LIBEXT2_QUOTA)/parse_qtype.c \ + $(LIBEXT2_QUOTA)/plausible.c \ + $(LIBEXT2_QUOTA)/prof_err.c \ + $(LIBEXT2_QUOTA)/profile.c \ + $(LIBEXT2_QUOTA)/profile_helpers.c \ + $(LIBEXT2_QUOTA)/quotaio.c \ + $(LIBEXT2_QUOTA)/quotaio_tree.c \ + $(LIBEXT2_QUOTA)/quotaio_v2.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) @@ -298,10 +283,10 @@ LOCAL_MODULE := libext2_misc LOCAL_SRC_FILES := $(LIBEXT2_MISC)/create_inode.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -Wno-error=format-extra-args \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -Wno-error=format-extra-args \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) @@ -309,75 +294,52 @@ include $(CLEAR_VARS) LOCAL_MODULE := libext2_com_err LOCAL_SRC_FILES := \ - $(LIBEXT2_COM_ERR)/com_err.c \ - $(LIBEXT2_COM_ERR)/com_right.c \ - $(LIBEXT2_COM_ERR)/error_message.c \ - $(LIBEXT2_COM_ERR)/et_name.c \ - $(LIBEXT2_COM_ERR)/init_et.c + $(LIBEXT2_COM_ERR)/com_err.c \ + $(LIBEXT2_COM_ERR)/com_right.c \ + $(LIBEXT2_COM_ERR)/error_message.c \ + $(LIBEXT2_COM_ERR)/et_name.c \ + $(LIBEXT2_COM_ERR)/init_et.c LOCAL_C_INCLUDES := $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - -fPIC \ - -pthread + $(E2FSPROGS_DEFAULT_CFLAGS) \ + -fPIC \ + -pthread include $(BUILD_STATIC_LIBRARY) -include $(LIBGNULIB)/Android.mk -include $(LIBCHARSET)/Android.mk -include $(LIBICRT)/Android.mk -include $(LIBICONV)/Android.mk -include $(LIBPARTED)/Android.mk - include $(CLEAR_VARS) LOCAL_MODULE := pmt LOCAL_SRC_FILES := \ - $(PMT)/Alternatives.c \ - $(PMT)/Debug.cpp \ - $(PMT)/Root.cpp \ - $(PMT)/PartitionManager.cpp \ - $(PMT)/PartitionTool.cpp \ - $(PMT)/ListPartitions.cpp \ - $(PMT)/Version.cpp \ - $(PMT)/GetState.cpp \ - $(PMT)/Tools.cpp \ - $(PMT)/LanguageTools.cpp \ - $(PMT)/Languages.cpp \ - $(PMT)/Help.cpp \ - $(MKE2FS)/default_profile.c \ - $(MKE2FS)/mk_hugefiles.c \ - $(MKE2FS)/mke2fs.c \ - $(MKE2FS)/util.c \ - $(PARTED)/parted/command.c \ - $(PARTED)/parted/jsonwrt.c \ - $(PARTED)/parted/parted.c \ - $(PARTED)/parted/strlist.c \ - $(PARTED)/parted/table.c \ - $(PARTED)/parted/ui.c \ - $(PARTED)/parted/version.c + $(PMT)/Debug.cpp \ + $(PMT)/Root.cpp \ + $(PMT)/PartitionManager.cpp \ + $(PMT)/PartitionTool.cpp \ + $(PMT)/ListPartitions.cpp \ + $(PMT)/Version.cpp \ + $(PMT)/GetState.cpp \ + $(PMT)/Tools.cpp \ + $(PMT)/LanguageTools.cpp \ + $(PMT)/Languages.cpp \ + $(PMT)/Help.cpp \ + $(MKE2FS)/default_profile.c \ + $(MKE2FS)/mk_hugefiles.c \ + $(MKE2FS)/mke2fs.c \ + $(MKE2FS)/util.c LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../include \ - $(LOCAL_PATH)/../include/PartitionManager \ - $(LOCAL_PATH)/../include/libgnulib \ - $(LOCAL_PATH)/../include/libparted \ - $(LOCAL_PATH)/parted/lib - $(E2FSPROGS_INCLUDES) + $(LOCAL_PATH)/../include \ + $(LOCAL_PATH)/../include/PartitionManager \ + $(E2FSPROGS_INCLUDES) LOCAL_CFLAGS := \ - $(PMT_CXXFLAGS) \ - $(E2FSPROGS_DEFAULT_CFLAGS) \ - $(PARTED_DEFAULTS_CFLAGS) + $(PMT_CXXFLAGS) \ + $(E2FSPROGS_DEFAULT_CFLAGS) LOCAL_STATIC_LIBRARIES := \ - libext2fs \ - libext2_blkid \ - libext2_uuid \ - libext2_e2p \ - libext2_quota \ - libext2_misc \ - libext2_com_err \ - libgnulib \ - libparted \ - libiconv \ - libcharset \ - libicrt + libext2fs \ + libext2_blkid \ + libext2_uuid \ + libext2_e2p \ + libext2_quota \ + libext2_misc \ + libext2_com_err include $(BUILD_EXECUTABLE) diff --git a/jni/Application.mk b/jni/Application.mk index d6eb60a..e5e12e8 100755 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -15,7 +15,7 @@ # limitations under the License. ######## -# 3.0.2 +# 2.9.6 ######## # architecture @@ -23,7 +23,7 @@ APP_ABI := \ arm64-v8a \ armeabi-v7a -APP_PLATFORM := android-21 +APP_PLATFORM := android-29 APP_OPTIM := release APP_STL := c++_static diff --git a/jni/PartitionManager/Alternatives.c b/jni/PartitionManager/Alternatives.c deleted file mode 100755 index 0054804..0000000 --- a/jni/PartitionManager/Alternatives.c +++ /dev/null @@ -1,127 +0,0 @@ -/* By YZBruh */ - -/** - * Copyright 2024 Partition Manager - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include - -ssize_t getrandom(void* buf, size_t buflen, unsigned int flags) { - if (!buf || buflen == 0) { - errno = EINVAL; - return -1; - } - - const char* device = (flags & 1) ? "/dev/random" : "/dev/urandom"; - int fd = open(device, O_RDONLY); - if (fd < 0) { - perror("Failed to open random device"); - return -1; - } - - ssize_t total_read = 0; - while (total_read < (ssize_t)buflen) { - ssize_t bytes_read = read(fd, (char*)buf + total_read, buflen - total_read); - if (bytes_read < 0) { - if (errno == EINTR) continue; - perror("Failed to read random data"); - close(fd); - return -1; - } - total_read += bytes_read; - } - - close(fd); - return total_read; -} - -int getentropy(void* buf, size_t buflen) { - if (!buf || buflen == 0 || buflen > 256) { - errno = EINVAL; - return -1; - } - - int fd = open("/dev/urandom", O_RDONLY); - if (fd < 0) { - perror("Failed to open /dev/urandom"); - return -1; - } - - ssize_t total_read = 0; - while (total_read < (ssize_t)buflen) { - ssize_t bytes_read = read(fd, (char*)buf + total_read, buflen - total_read); - if (bytes_read < 0) { - if (errno == EINTR) continue; - perror("Failed to read random data"); - close(fd); - return -1; - } - total_read += bytes_read; - } - - close(fd); - return 0; -} - -char* _Nullable hasmntopt(const struct mntent* mnt, const char* opt) { - if (!mnt || !opt) return NULL; - - char* options = mnt->mnt_opts; - size_t opt_len = strlen(opt); - - while (*options) { - char *comma = strchr(options, ','); - size_t len = comma ? (size_t)(comma - options) : strlen(options); - - if (len == opt_len && strncmp(options, opt, len) == 0) - return (char*)options; - - if (!comma) break; - options = comma + 1; - } - - return NULL; -} - -void* _Nullable reallocarray(void* ptr, size_t count, size_t size) { - if (count == 0 || size == 0) { - free(ptr); - return NULL; - } - - if (count > SIZE_MAX / size) return NULL; - - size_t total_size = count * size; - void* new_ptr = realloc(ptr, total_size); - if (new_ptr == NULL) return NULL; - - return new_ptr; -} - -#ifdef __cplusplus -} -#endif - -/* end of code */ \ No newline at end of file diff --git a/jni/PartitionManager/Debug.cpp b/jni/PartitionManager/Debug.cpp index 0a77da6..676c2a4 100755 --- a/jni/PartitionManager/Debug.cpp +++ b/jni/PartitionManager/Debug.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,8 +16,8 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_STRINGKEYS 1 +#define INC_MAIN_LIBS +#define INC_STRINGKEYS #include @@ -26,67 +26,67 @@ using namespace PartitionManager; /* it's prints standart logs */ void PartitionManager::DisplayLog(LogLevel LogPriority, const char* _Nonnull fmt, ...) { - va_list args; - va_start(args, fmt); + va_list args; + va_start(args, fmt); - if (!Config.SilentEnabled) - { - switch (LogPriority) - { - case LOG_LEVEL_ERROR: - fprintf(stderr, "%s: ", Strings::ExecutingName.c_str()); - vfprintf(stderr, fmt, args); - break; - case LOG_LEVEL_WARN: - fprintf(stdout, "%s: ", Display::UsingDispString->warn); - vfprintf(stdout, fmt, args); - break; - case LOG_LEVEL_FATAL: - fprintf(stderr, "%s: ", Display::UsingDispString->fatal); - vfprintf(stderr, fmt, args); - break; - case LOG_LEVEL_DEBUG: - vfprintf(stdout, fmt, args); - break; - } - } + if (!Config.SilentEnabled) + { + switch (LogPriority) + { + case LOG_LEVEL_ERROR: + fprintf(stderr, "%s: ", Strings::ExecutingName.c_str()); + vfprintf(stderr, fmt, args); + break; + case LOG_LEVEL_WARN: + fprintf(stdout, "%s: ", Display::UsingDispString->warn); + vfprintf(stdout, fmt, args); + break; + case LOG_LEVEL_FATAL: + fprintf(stderr, "%s: ", Display::UsingDispString->fatal); + vfprintf(stderr, fmt, args); + break; + case LOG_LEVEL_DEBUG: + vfprintf(stdout, fmt, args); + break; + } + } - if (LogPriority == LOG_LEVEL_ERROR) exit(1); - else if (LogPriority == LOG_LEVEL_FATAL) abort(); + if (LogPriority == LOG_LEVEL_ERROR) exit(1); + else if (LogPriority == LOG_LEVEL_FATAL) abort(); - va_end(args); + va_end(args); } /* it's prints verbose logs */ void PartitionManager::DisplayVerboseLog(LogLevel LogPriority, const char* func, const int& line, const char* _Nonnull fmt, ...) { - va_list args; - va_start(args, fmt); + va_list args; + va_start(args, fmt); - if (Config.VerboseMode) - { - switch (LogPriority) - { - case LOG_LEVEL_ERROR: - fprintf(stderr, " [%s() Line<%d>]: ", func, line); - vfprintf(stderr, fmt, args); - break; - case LOG_LEVEL_WARN: - fprintf(stdout, " [%s() Line<%d>]: ", func, line); - vfprintf(stdout, fmt, args); - break; - case LOG_LEVEL_FATAL: - fprintf(stderr, " [%s() Line<%d>]: ", func, line); - vfprintf(stderr, fmt, args); - break; - case LOG_LEVEL_DEBUG: - fprintf(stdout, " [%s() Line<%d>]: ", func, line); - vfprintf(stdout, fmt, args); - break; - } - } + if (Config.VerboseMode) + { + switch (LogPriority) + { + case LOG_LEVEL_ERROR: + fprintf(stderr, " [%s() Line<%d>]: ", func, line); + vfprintf(stderr, fmt, args); + break; + case LOG_LEVEL_WARN: + fprintf(stdout, " [%s() Line<%d>]: ", func, line); + vfprintf(stdout, fmt, args); + break; + case LOG_LEVEL_FATAL: + fprintf(stderr, " [%s() Line<%d>]: ", func, line); + vfprintf(stderr, fmt, args); + break; + case LOG_LEVEL_DEBUG: + fprintf(stdout, " [%s() Line<%d>]: ", func, line); + vfprintf(stdout, fmt, args); + break; + } + } - va_end(args); + va_end(args); } /** diff --git a/jni/PartitionManager/GetState.cpp b/jni/PartitionManager/GetState.cpp index ace4558..04bed8d 100755 --- a/jni/PartitionManager/GetState.cpp +++ b/jni/PartitionManager/GetState.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,8 +16,8 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_STAT 1 +#define INC_MAIN_LIBS +#define INC_STAT #include @@ -31,22 +31,21 @@ */ int PartitionManager::GetState(const string& filepath, const string& stype) { - struct stat GetStat; - VLOGD("Checking `%s' with 'stat '...\n", filepath.c_str()); + struct stat GetStat; + VLOGD("Checking `%s' with 'stat '...\n", filepath.c_str()); - if (stat(filepath.c_str(), &GetStat) != 0) return 1; - if (stype == "none") return 0; - if (stype == "dir") - return (S_ISDIR(GetStat.st_mode)) ? 0 : -1; - else if (stype == "file") - return (S_ISREG(GetStat.st_mode)) ? 0 : -1; - else if (stype == "blk") - return (S_ISBLK(GetStat.st_mode)) ? 0 : -1; - else if (stype == "link") - return (S_ISLNK(GetStat.st_mode)) ? 0 : -1; - else return 3; + if (stat(filepath.c_str(), &GetStat) != 0) return 1; + if (stype == "dir") + return (S_ISDIR(GetStat.st_mode)) ? 0 : -1; + else if (stype == "file") + return (S_ISREG(GetStat.st_mode)) ? 0 : -1; + else if (stype == "blk") + return (S_ISBLK(GetStat.st_mode)) ? 0 : -1; + else if (stype == "link") + return (S_ISLNK(GetStat.st_mode)) ? 0 : -1; + else return 3; - return 2; /* it's a dummy value */ + return 2; /* it's a dummy value */ } /* end of code */ diff --git a/jni/PartitionManager/Help.cpp b/jni/PartitionManager/Help.cpp index bb2b328..c60112e 100755 --- a/jni/PartitionManager/Help.cpp +++ b/jni/PartitionManager/Help.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,9 +16,9 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_STRINGKEYS 1 -#define HELP_CPP 1 +#define INC_MAIN_LIBS +#define INC_STRINGKEYS +#define HELP #include #include @@ -30,46 +30,45 @@ struct langdb_docs* Display::UsingDocDispString = nullptr; static void PrepareLangconfDocs(void) { - if (Strings::CurrentLanguage == "en") - Display::UsingDocDispString = &Display::LangDocEn; - else if (Strings::CurrentLanguage == "tr") - Display::UsingDocDispString = &Display::LangDocTr; + if (Strings::CurrentLanguage == "en") + Display::UsingDocDispString = &Display::LangDocEn; + else if (Strings::CurrentLanguage == "tr") + Display::UsingDocDispString = &Display::LangDocTr; } void PartitionManager::DisplayHelp(void) { - VLOGD("Loading language for help messages... Calling PrepareLangconfDocs() ...\n"); - PrepareLangconfDocs(); - VLOGD("Printing...\n"); - LOGD("%s: %s %s\n", Display::UsingDocDispString->usage_docstr, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l1); - LOGD(" %s: %s %s\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l2); - LOGD(" %s: %s %s\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l3); - LOGD(" %s: %s %s\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l4); - LOGD(" %s: %s %s\n\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l5); - LOGD("%s:\n", Display::UsingDocDispString->docs_strs_l6); - LOGD(" -l, --logical %s\n", Display::UsingDocDispString->docs_strs_l7); - LOGD(" -P, --search-path %s\n", Display::UsingDocDispString->docs_strs_l8); - LOGD(" -p, --list %s\n", Display::UsingDocDispString->docs_strs_l9); - LOGD(" -s, --silent %s\n", Display::UsingDocDispString->docs_strs_l10); - LOGD(" -f, --force %s\n", Display::UsingDocDispString->docs_strs_l11); - LOGD(" -V, --verbose %s\n", Display::UsingDocDispString->docs_strs_l12); - LOGD(" -S, --set-lang %s\n", Display::UsingDocDispString->docs_strs_l13); - LOGD(" -v, --version %s\n", Display::UsingDocDispString->docs_strs_l14); - LOGD(" --help %s\n\n", Display::UsingDocDispString->docs_strs_l15); - LOGD("%s:\n", Display::UsingDocDispString->docs_strs_l16); - LOGD(" --only-size %s\n", Display::UsingDocDispString->docs_strs_l17); - LOGD(" --as-byte %s\n", Display::UsingDocDispString->docs_strs_l18); - LOGD(" --as-kilobyte %s\n", Display::UsingDocDispString->docs_strs_l19); - LOGD(" --as-megabyte %s\n", Display::UsingDocDispString->docs_strs_l20); - LOGD(" --as-gigabyte %s\n\n", Display::UsingDocDispString->docs_strs_l21); - LOGD("%s:\n", Display::UsingDocDispString->docs_strs_l22); - LOGD(" %s backup boot_a -P /dev/block/platform/bootdevice/by-name\n", Strings::ExecutingName.c_str()); - LOGD(" %s flash boot_a /sdcard/twrp/boot.img -c /dev/block/platform/bootdevice/by-name\n", Strings::ExecutingName.c_str()); - LOGD(" %s format system_a ext4 --logical\n", Strings::ExecutingName.c_str()); - LOGD(" %s -P /dev/block/platform/bootdevice/by-name --list\n", Strings::ExecutingName.c_str()); - LOGD(" %s partition-size boot --as-byte\n", Strings::ExecutingName.c_str()); - LOGD(" %s partition-size system --only-size --as-gigabyte --logical\n\n", Strings::ExecutingName.c_str()); - LOGD("%s \n", Display::UsingDocDispString->docs_strs_l23); + VLOGD("Loading language for help messages... Calling PrepareLangconfDocs() ...\n"); + PrepareLangconfDocs(); + VLOGD("Printing...\n"); + LOGD("%s: %s %s\n", Display::UsingDocDispString->usage_docstr, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l1); + LOGD(" %s: %s %s\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l2); + LOGD(" %s: %s %s\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l3); + LOGD(" %s: %s %s\n\n", Display::UsingDocDispString->or_str, Strings::ExecutingName.c_str(), Display::UsingDocDispString->docs_strs_l4); + LOGD("%s:\n", Display::UsingDocDispString->docs_strs_l5); + LOGD(" -l, --logical %s\n", Display::UsingDocDispString->docs_strs_l6); + LOGD(" -P, --search-path %s\n", Display::UsingDocDispString->docs_strs_l7); + LOGD(" -p, --list %s\n", Display::UsingDocDispString->docs_strs_l8); + LOGD(" -s, --silent %s\n", Display::UsingDocDispString->docs_strs_l9); + LOGD(" -f, --force %s\n", Display::UsingDocDispString->docs_strs_l10); + LOGD(" -V, --verbose %s\n", Display::UsingDocDispString->docs_strs_l11); + LOGD(" -S, --set-lang %s\n", Display::UsingDocDispString->docs_strs_l12); + LOGD(" -v, --version %s\n", Display::UsingDocDispString->docs_strs_l13); + LOGD(" --help %s\n\n", Display::UsingDocDispString->docs_strs_l14); + LOGD("%s:\n", Display::UsingDocDispString->docs_strs_l15); + LOGD(" --only-size %s\n", Display::UsingDocDispString->docs_strs_l16); + LOGD(" --as-byte %s\n", Display::UsingDocDispString->docs_strs_l17); + LOGD(" --as-kilobyte %s\n", Display::UsingDocDispString->docs_strs_l18); + LOGD(" --as-megabyte %s\n", Display::UsingDocDispString->docs_strs_l19); + LOGD(" --as-gigabyte %s\n\n", Display::UsingDocDispString->docs_strs_l20); + LOGD("%s:\n", Display::UsingDocDispString->docs_strs_l21); + LOGD(" %s backup boot_a -P /dev/block/platform/bootdevice/by-name\n", Strings::ExecutingName.c_str()); + LOGD(" %s flash boot_a /sdcard/twrp/boot.img -c /dev/block/platform/bootdevice/by-name\n", Strings::ExecutingName.c_str()); + LOGD(" %s format system_a ext4 --logical\n", Strings::ExecutingName.c_str()); + LOGD(" %s -P /dev/block/platform/bootdevice/by-name --list\n", Strings::ExecutingName.c_str()); + LOGD(" %s partition-size boot --as-byte\n", Strings::ExecutingName.c_str()); + LOGD(" %s partition-size system --only-size --as-gigabyte --logical\n\n", Strings::ExecutingName.c_str()); + LOGD("%s \n", Display::UsingDocDispString->docs_strs_l22); } /* end of code */ diff --git a/jni/PartitionManager/LanguageTools.cpp b/jni/PartitionManager/LanguageTools.cpp index 6771359..4b9e93b 100755 --- a/jni/PartitionManager/LanguageTools.cpp +++ b/jni/PartitionManager/LanguageTools.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,13 +16,12 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_DEBUGERS 1 -#define INC_STAT 1 -#define INC_STRINGKEYS 1 +#define INC_MAIN_LIBS +#define INC_DEBUGERS +#define INC_STAT +#define INC_STRINGKEYS #include -#include using namespace PartitionManager; @@ -32,147 +31,153 @@ using namespace PartitionManager; #define PMTLANG_CONF "/sdcard/.pmtlang.conf" #define PMT_SW_POINT "/sdcard/.pmtlangsw" -static fstream LanguageConfigFile; -static bool LanguageApplied = false; -static int StructSize = static_cast(sizeof(LanguageConfig) / sizeof(LanguageConfig[0])); +struct langdb_general* Display::UsingDispString = nullptr; +static fstream langconf; +string supp_langs[] = { + "en", + "tr", + "" +}; static bool InternalStorageDirFound(void) { - return (GetState(INTERNAL_STORAGE_DIR, "dir") == 0) ? true : false; + return (GetState(INTERNAL_STORAGE_DIR, "dir") == 0) ? true : false; } -static inline void -LoadLanguageAs(const string& Name, struct langdb_general* &Language) +static bool +LanguageControl(const string& lang) { - if (LanguageConfigFile.is_open()) - LanguageConfigFile.close(); + for (int i = 0; !supp_langs[i].empty(); i++) + { + if (lang == supp_langs[i]) + return true; + } - VLOGD("Load language as '%s'...\n", Name.c_str()); - - Display::UsingDispString = Language; - Strings::CurrentLanguage = Name; - LanguageApplied = true; -} - -static inline bool -LanguageIsSupport(const string& Name) -{ - for (int i = 0; (i < StructSize && !LanguageConfig[i].Name.empty()); i++) - if (Name == LanguageConfig[i].Name) return true; - - return false; -} - -static int -IfLanguageIsSupport_Load(const string& Name) -{ - for (int i = 0; i < StructSize; i++) { - if (Name == LanguageConfig[i].Name) { - VLOGD("'Name' ('%s') is '%s'.\n", Name.c_str(), LanguageConfig[i].Name.c_str()); - LoadLanguageAs(LanguageConfig[i].Name, LanguageConfig[i].LanguageStructure); - return 0; - } - } - - return -1; + return false; } bool PartitionManager::LoadLanguage(void) { - string TargetLanguage = "en"; - LanguageConfigFile.close(); + string lang_fpr = "en"; + langconf.close(); - VLOGD("Checking install type...\n"); - if (GetState(TERMUX_PMT_MANDOC) == 0) - Config.InstalledOnTermux = true; + VLOGD("Checking install type...\n"); + if (GetState(TERMUX_PMT_MANDOC) == 0) + Config.InstalledOnTermux = true; - VLOGD("Checking internal storage dir: `%s'\n", INTERNAL_STORAGE_DIR); - if (!InternalStorageDirFound()) - LOGE("PartitionManagerLanguageTools: İnternal storage directory (`%s') not found or accessible.\n", INTERNAL_STORAGE_DIR); + VLOGD("Checking internal storage dir: `%s'\n", INTERNAL_STORAGE_DIR); + if (!InternalStorageDirFound()) + LOGE("PartitionManagerLanguageTools: İnternal storage directory (`%s') not found or accessible.\n", INTERNAL_STORAGE_DIR); - VLOGD("Trying to open `%s' with 'open '\n", PMTLANG_CONF); - LanguageConfigFile.open(PMTLANG_CONF, ios::in | ios::out); + VLOGD("Trying to open `%s' with 'open '\n", PMTLANG_CONF); + langconf.open(PMTLANG_CONF, ios::in | ios::out); - VLOGD("Checking status: `%s'...\n", PMTLANG_CONF); - if (!LanguageConfigFile.is_open()) { - LanguageConfigFile.open(PMTLANG_CONF, ios::out | ios::trunc); + VLOGD("Checking status: `%s'...\n", PMTLANG_CONF); + if (!langconf.is_open()) + { + langconf.open(PMTLANG_CONF, ios::out | ios::trunc); - VLOGD("Calling SetLanguage()...\n"); - SetLanguage(LanguageConfig[0].Name, 1); - LoadLanguageAs(LanguageConfig[0].Name, LanguageConfig[0].LanguageStructure); // english - "en" + VLOGD("Calling SetLanguage()...\n"); + SetLanguage("en", 1); + Display::UsingDispString = &Display::LangEn; + Strings::CurrentLanguage = "en"; - return true; - } else { - VLOGD("Reading `%s'\n", PMTLANG_CONF); - while (getline(LanguageConfigFile, TargetLanguage)) - IfLanguageIsSupport_Load(TargetLanguage); + if (langconf.is_open()) + langconf.close(); - if (!LanguageApplied) { - VLOGD("Calling SetLanguage()\n"); - SetLanguage(LanguageConfig[0].Name, 1); - LoadLanguageAs(LanguageConfig[0].Name, LanguageConfig[0].LanguageStructure); // english - "en" - return true; - } - } + return true; + } + else + { + VLOGD("Reading `%s'\n", PMTLANG_CONF); + while (getline(langconf, lang_fpr)) + { + if (lang_fpr == "en") + goto SetEn; + else if (lang_fpr == "tr") + goto SetTr; + else + { + VLOGD("Calling SetLanguage()\n"); + SetLanguage("en", 1); + VLOGD("Re-calling LoadLanguage()\n"); + PartitionManager::LoadLanguage(); + return true; + } + } - if (LanguageApplied) return true; + if (!getline(langconf, lang_fpr)) + { + VLOGD("Calling SetLanguage()\n"); + SetLanguage("en", 1); + VLOGD("Re-calling LoadLanguage()\n"); + PartitionManager::LoadLanguage(); + return true; + } + } - return false; +SetEn: + langconf.close(); + Display::UsingDispString = &Display::LangEn; + Strings::CurrentLanguage = "en"; + VLOGD("Loaded \"en\"\n"); + return true; + +SetTr: + langconf.close(); + Display::UsingDispString = &Display::LangTr; + Strings::CurrentLanguage = "tr"; + VLOGD("Loaded \"tr\"\n"); + return true; + + return false; } -void PartitionManager::SetLanguage(const string& Language, ushort_t NullConfigState) +void PartitionManager::SetLanguage(const string& lang, ushort_t null_conf_stat) { - VLOGD("Checking speficed language (from input).\n"); - if (!LanguageIsSupport(Language)) - LOGE("Unknown language: %s.\n", Language.c_str()); + VLOGD("Checking speficed language (from input).\n"); + if (!LanguageControl(lang)) + LOGE("Unknown language: %s.\n", lang.c_str()); - LanguageConfigFile.close(); + langconf.close(); - VLOGD("Checking internal storage dir: `%s'\n", INTERNAL_STORAGE_DIR); - if (!InternalStorageDirFound()) - LOGE("PartitionManagerSetLanguage: Internal storage directory (`%s') not found or accessible.\n", INTERNAL_STORAGE_DIR); + VLOGD("Checking internal storage dir: `%s'\n", INTERNAL_STORAGE_DIR); + if (!InternalStorageDirFound()) + LOGE("PartitionManagerSetLanguage: Internal storage directory (`%s') not found or accessible.\n", INTERNAL_STORAGE_DIR); - VLOGD("Trying to open `%s' with 'open '\n", PMTLANG_CONF); - LanguageConfigFile.open(PMTLANG_CONF, ios::out | ios::trunc); + VLOGD("Trying to open `%s' with 'open '\n", PMTLANG_CONF); + langconf.open(PMTLANG_CONF, ios::out | ios::trunc); - if (!LanguageConfigFile.is_open()) - LOGE("PartitionManagerLanguageTools: Cannot open/write config file!!!\n"); + if (!langconf.is_open()) + LOGE("PartitionManagerLanguageTools: Cannot open/write config file!!!\n"); - VLOGD("Write \"%s\" to `%s' with 'std '\n", Language.c_str(), PMTLANG_CONF); - LanguageConfigFile << Language; - if (!LanguageConfigFile) - LOGE("PartitionManagerLanguageTools: Couldn't write config!!!\n"); - else - LanguageConfigFile.close(); + VLOGD("Write \"%s\" to `%s' with 'std '\n", lang.c_str(), PMTLANG_CONF); + langconf << lang; + if (!langconf) + LOGE("PartitionManagerLanguageTools: Couldn't write config!!!\n"); + else + langconf.close(); - if (NullConfigState != 1) { - VLOGD("Generating dummy file `%s' with 'ofstream '\n", PMT_SW_POINT); - ofstream sw_point(PMT_SW_POINT, ios::trunc); - if (sw_point.is_open()) sw_point.close(); - } -} - -void DisplaySupportedLanguages(void) -{ - VLOGD("Listing supported languages...\n"); - LOGD("List of supported languages: \n"); - - for (int i = 0; i < StructSize; i++) - LOGD(" - %s (%s)\n", - LanguageConfig[i].ExName, - LanguageConfig[i].Name); + if (null_conf_stat != 1) + { + VLOGD("Generating dummy file `%s' with 'ofstream '\n", PMT_SW_POINT); + ofstream sw_point(PMT_SW_POINT, ios::trunc); + if (sw_point.is_open()) + sw_point.close(); + } } bool PartitionManager::CleanSWPoint(void) { - if (GetState(PMT_SW_POINT) == 0) { - VLOGD("Removing (force) `%s' with 'remove '\n", PMT_SW_POINT); - remove(PMT_SW_POINT); - return true; - } + if (GetState(PMT_SW_POINT) == 0) + { + VLOGD("Removing (force) `%s' with 'remove '\n", PMT_SW_POINT); + remove(PMT_SW_POINT); + return true; + } - return false; + return false; } /* end of code */ diff --git a/jni/PartitionManager/Languages.cpp b/jni/PartitionManager/Languages.cpp index fb69743..0298106 100755 --- a/jni/PartitionManager/Languages.cpp +++ b/jni/PartitionManager/Languages.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,8 +16,8 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_STRINGKEYS 1 +#define INC_MAIN_LIBS +#define INC_STRINGKEYS #include @@ -25,237 +25,221 @@ namespace PartitionManager { namespace Display { struct langdb_general LangEn = { - .lang_by_s = "YZBruh & r0manas", - .language = "English", - .lang_prefix = "en", - .not_logical = "This device does not have logical partitions!", - .not_file = "is not a file.", - .not_dir = "is not a directory.", - .not_in_dev = "Nothing found in /dev. Use force mode to avoid this error.", - .not_open = "Couldn't open", - .not_block = "The specified partition is not recognized as a block device. Use force mode to avoid this error.", - .not_read = "Couldn't read", - .not_readdir = "Couldn't read directory", - .not_write = "Couldn't write", - .not_gen = "Couldn't generate", - .no_root = "Root access could not be detected! Please run this with root permissions.", - .expected_backup_arg = "Expected backup argument 2 (1 of them are not mandatory), retrieved", - .expected_flash_arg = "Expected flash argument 2, retrieved", - .expected_format_arg = "Expected format argument 2, retrieved", - .expected_partsz_arg = "Expected partition-size argument 1, retrieved", - .expected_partutil_arg = "Expected part-util argument 1, retrieved", - .missing_operand = "Missing operand", - .multiple_wiewers = "Multiple viewers can't be used on the same line.", - .symbol_rule = "When specifying arguments for an option, ensure they do not begin with '-'. Each argument must correspond correctly to its respective option.", - .req_part_name = "Partition name required.", - .part_not_found = "Partition not found! Maybe a logical partition?", - .unsupported_fs = "Formatter: unsupported filesystem", - .cannot_stat = "Cannot stat", - .ffile_more_part = "Flash file size exceeds partition capacity. Use force mode to avoid this error (not recommended, riscy!).", - .cannot_get_bsz = "Failed to retrieve partition block size.", - .format_fail = "Formatting failed! There is a possibility of data damage.", - .fail_get_psize = "Cannot get partition size", - .depr_backup_opt = "These options for the backup are unavailable.", - .depr_flash_opt = "These options for the flash are unavailable.", - .depr_format_opt = "These options for the format are unavailable.", - .depr_Vlicense_opt = "Deprecated because it was unnecessary.", - .depr_ch_list_opt = "Use -p argument for listing partitions.", - .depr_ch_sp_opt = "Use -P (--search-path) argument instead of -c (--context).", - .not_spec_opt = "Specify the necessary arguments, not option", - .some_spec = "You may have indicated options, but they don't work much unless you speficy a main transaction", - .logical_warn = "This device uses logical partitions.", - .ab_warn = "This device uses A/B partition style.", - .out_not_spec = "Output file name not specified. Using created name", - .no_found_on_process = "The file that was processed was not found. Something wen wrong...", - .please_rerun = "Please rerun the command.", - .part_disk_sz = "Partition (backup) size", - .flash_file_sz = "Flash file size", - .part_disk_sz_fail = "Failed to retrieve partition disk size.", - .flash_file_sz_fail = "Failed to retrieve flash file size.", - .cannot_find_any_defdevice = "Couldn't find any default device", - .cannot_find_device = "Device not founded", - .found_defdevice = "Founded a default device", - .not_spec_device_on_args = "Device is not speficed in arguments. Searching default devices (by pmt)", - .starting_parted = "Starting parted", - .exited_with = "Exited parted with exit code", - .unknown_opr = "Unknown operand", - .req_an_arg = "option requires an argument", - .list_of_general = "List of general partitions", - .list_of_logc = "List of logical partitions", - .success_backup = "Backup successful. Output", - .success_flash = "Flash successful", - .success_format = "Format successful", - .formatting = "Formatting", - .warn = "WARNING", - .fatal = "FATAL ERROR", - .is_requires_arg = "requires an argument", - .only_partsz_args = "Flags can be used only in partition size view were identified. But target not this", - .unknw_arg = "unknown option", - .switching_lang = "Switching language...", - .welcome = "language!", - .welcome_ = "Welcome to ", - .for_more = "for more information", - .s_and_v = "Silent and verbose mode cannot be used together!", - .try_h = "Try", - .usage_head = "Usage", - .depr_opt_str = "DEPRECATED OPTION", - .switched_opt_str = "SWITCHED OPTION", - .not_changed_opt = "not changed", - .compiler_str = "compiler", - .version_str = "version", - .bin_str = "binary", - .part_name = "Partition name", - .part_type = "Partition is dynamic", - .fs_str = "Filesystem", - .unknw_str = "unknown", - .by_str = "By", - .yes = "true", - .no = "false" + .lang_by_s = "YZBruh & r0manas", + .language = "English", + .lang_prefix = "en", + .not_logical = "This device does not have logical partitions!", + .not_file = "is not a file.", + .not_dir = "is not a directory.", + .not_in_dev = "Nothing found in /dev. Use force mode to avoid this error.", + .not_open = "Couldn't open", + .not_block = "The specified partition is not recognized as a block device. Use force mode to avoid this error.", + .not_read = "Couldn't read", + .not_readdir = "Couldn't read directory", + .not_write = "Couldn't write", + .not_gen = "Couldn't generate", + .no_root = "Root access could not be detected! Please run this with root permissions.", + .expected_backup_arg = "Expected backup argument 2 (1 of them are not mandatory), retrieved", + .expected_flash_arg = "Expected flash argument 2, retrieved", + .expected_format_arg = "Expected format argument 2, retrieved", + .expected_partsz_arg = "Expacted partition-size argument 2, retrieved", + .missing_operand = "Missing operand", + .multiple_wiewers = "Multiple viewers can't be used on the same line.", + .symbol_rule = "When specifying arguments for an option, ensure they do not begin with '-'. Each argument must correspond correctly to its respective option.", + .req_part_name = "Partition name required.", + .part_not_found = "Partition not found! Maybe a logical partition?", + .unsupported_fs = "Formatter: unsupported filesystem", + .cannot_stat = "Cannot stat", + .ffile_more_part = "Flash file size exceeds partition capacity. Use force mode to avoid this error (not recommended, riscy!).", + .cannot_get_bsz = "Failed to retrieve partition block size.", + .format_fail = "Formatting failed! There is a possibility of data damage.", + .fail_get_psize = "Cannot get partition size", + .depr_backup_opt = "These options for the backup are unavailable.", + .depr_flash_opt = "These options for the flash are unavailable.", + .depr_format_opt = "These options for the format are unavailable.", + .depr_Vlicense_opt = "Deprecated because it was unnecessary.", + .depr_ch_list_opt = "Use -p argument for listing partitions.", + .depr_ch_sp_opt = "Use -P (--search-path) argument instead of -c (--context).", + .not_spec_opt = "Specify the necessary arguments, not option", + .some_spec = "You may have indicated options, but they don't work much unless you speficy a main transaction", + .logical_warn = "This device uses logical partitions.", + .ab_warn = "This device uses A/B partition style.", + .out_not_spec = "Output file name not specified. Using created name", + .no_found_on_process = "The file that was processed was not found. Something wen wrong...", + .please_rerun = "Please rerun the command.", + .part_disk_sz = "Partition (backup) size", + .flash_file_sz = "Flash file size", + .part_disk_sz_fail = "Failed to retrieve partition disk size.", + .flash_file_sz_fail = "Failed to retrieve flash file size.", + .unknown_opr = "Unknown operand", + .req_an_arg = "option requires an argument", + .list_of_general = "List of general partitions", + .list_of_logc = "List of logical partitions", + .success_backup = "Backup successful. Output", + .success_flash = "Flash successful", + .success_format = "Format successful", + .formatting = "Formatting", + .warn = "WARNING", + .fatal = "FATAL ERROR", + .is_requires_arg = "requires an argument", + .only_partsz_args = "Flags can be used only in partition size view were identified. But target not this", + .unknw_arg = "unknown option", + .switching_lang = "Switching language...", + .welcome = "language!", + .welcome_ = "Welcome to ", + .for_more = "for more information", + .s_and_v = "Silent and verbose mode cannot be used together!", + .try_h = "Try", + .usage_head = "Usage", + .depr_opt_str = "DEPRECATED OPTION", + .switched_opt_str = "SWITCHED OPTION", + .not_changed_opt = "not changed", + .compiler_str = "compiler", + .version_str = "version", + .bin_str = "binary", + .part_name = "Partition name", + .part_type = "Partition is dynamic", + .fs_str = "Filesystem", + .unknw_str = "unknown", + .by_str = "By", + .yes = "true", + .no = "false" }; struct langdb_general LangTr = { - .lang_by_s = "YZBruh", - .language = "Türkçe", - .lang_prefix = "tr", - .not_logical = "Bu cihaz mantıksal (logical) bölümlere sahip değil!", - .not_file = "Bu bir dosya değil", - .not_dir = "Bu bir dizin değil", - .not_in_dev = "Bu bir şakamı? Bunun /dev dizini ile bir ilgisi yok (içermiyor). Bu hatayla karşılaşmak istemiyorsanız zorlama (force) modu kullanın.", - .not_open = "Açılamıyor", - .not_block = "Belirtilen bölüm bir blok değil. Yani aslında bu bir bölüm bile değil (disk). Bu hatayı almak için şanslı olmak gerek..! Bu hatayla karşılaşmak istemiyorsanız zorlama (force) modu kullanın.", - .not_read = "Veri okunamıyor", - .not_readdir = "Dizin verisi okunamıyor", - .not_write = "Veri yazılamıyor", - .not_gen = "Oluşturulamıyor", - .no_root = "Root erişimi tespit edilemedi! Lütfen root erişimi ile çalıştırın.", - .expected_backup_arg = "Beklenen yedekleme argümanı 2 (bir tanesi zorunlu değil), alınan", - .expected_flash_arg = "Beklenen flaş argümanı 2, alınan", - .expected_format_arg = "Beklenen format argümanı 2, alınan", - .expected_partsz_arg = "Beklenen partition-size argümanı 1, alınan", - .expected_partutil_arg = "Beklenen part-util argümanı 1, alınan", - .missing_operand = "İşlem belirtilmedi", - .multiple_wiewers = "Birden fazla görüntüleme işlemi yapan fonksiyonlar bir arada kullanılamaz. Aynı anda sadece bir tanesi kullanılabilir.", - .symbol_rule = "Bir seçeneğin argümanını verirken argüman önüne '-' sembolü getirilemez. Sembolü kaldırın ve tekrar deneyin.", - .req_part_name = "Bölüm adı gereklidir.", - .part_not_found = "Bölüm bulunamadı! Belki mantıksal (logical) bir bölümdür?", - .unsupported_fs = "Formatlayıcı: desteklenmeyen dosya sistemi:", - .cannot_stat = "Durumu tespit edilemedi", - .ffile_more_part = "Flaşlanacak dosyanın boyutu mevcut bölüm boyutundan fazla. Bu hatayla karşılaşmak istemiyorsanız zorlama (force) modu kullanın (bunu yapmanız asla önerilmez).", - .cannot_get_bsz = "Bölüm blok boyutu tespit edilemedi!", - .format_fail = "Formatlama başarısız oldu. Bazı şeyler zarar görmüş olabilir!", - .fail_get_psize = "Bölüm boyutu alınamadı", - .depr_backup_opt = "Yedek için artık bu seçeneği kullanamazsınız.", - .depr_flash_opt = "Flaşlama için artık bu seçeneği kullanamazsınız.", - .depr_format_opt = "Formatlama için artıi bu seçeneği kullanamazsınız.", - .depr_Vlicense_opt = "Gereksiz seçeneklere bellek yok!", - .depr_ch_list_opt = "Listeleme için -p seçeneğini kullanabilirsiniz.", - .depr_ch_sp_opt = "Özel arama dizini belirtmek için -P (--search-path) seçeneğini kullanabilirsiniz.", - .logical_warn = "Bu cihaz mantıksal (logical) bölümlere sahip.", - .not_spec_opt = "Seçenek değil, şuan gerekli argümanları verin", - .some_spec = "Seçenek belirtmiş olabilirsiniz fakat, ana işlem belirtmedikçe pek işe yaramazlar", - .ab_warn = "Bu cihazın bazı bölümleri A/B kullanıyor.", - .out_not_spec = "Çıktı dosya adı belirtilmedi. Oluşturulan çıktı adı", - .no_found_on_process = "İşlenmekte olan dosya bulunamadı. Bir şeyler yanlış...", - .please_rerun = "Lütfen yeniden çalıştırın", - .part_disk_sz = "Bölümün (yedek) boyutu", - .flash_file_sz = "Flaşlanacak dosyanın boyutu", - .flash_file_sz_fail = "Uyarı: flaşlanacak dosyanın boyutu tespit edilemedi.", - .part_disk_sz_fail = "Uyarı: bölüm boyutunun boyutu tespit edilemedi.", - .found_defdevice = "Varsayılan bir cihaz bulundu", - .cannot_find_any_defdevice = "Herhangi bir varsayılan cihaz bulunamadı", - .cannot_find_device = "Cihaz bulunamadı", - .not_spec_device_on_args = "Cihaz argümanlarda belirtilmedi. Varsayılan cihazlar aranıyor (pmt tarafından tanımlanan cihazlar)", - .starting_parted = "Parted başlatılıyor", - .exited_with = "Parted çıkış kodu", - .unknown_opr = "Bilinmeyen işlem", - .req_an_arg = "bu seçenek argüman gerektirir", - .list_of_general = "Genel bölümlerin listesi", - .list_of_logc = "Mantıksal (logical) bölümlerin listesi", - .success_backup = "Başarılı. Çıktı", - .success_flash = "Başarılı.", - .success_format = "Formatlama başarılı", - .formatting = "Formatlanıyor", - .warn = "UYARI", - .fatal = "KRİTİK HATA", - .is_requires_arg = "bir argüman gereklidir", - .only_partsz_args = "Sadece bölüm boyutu görüntülemesinde kullanılabilecek bayraklar tespit edildi. Ama hedef bu değil", - .unknw_arg = "bilinmeyen seçenek", - .switching_lang = "Dil değiştiriliyor...", - .welcome = "diline hoş geldiniz!", - .welcome_ = NULL, - .for_more = "komutunu kullanabilirsiniz", - .s_and_v = "Sessiz ve ayrıntılı günlüklenme aynı anda kullanılamaz!", - .try_h = "Daha fazla bilgi", - .usage_head = "Kullanımı", - .depr_opt_str = "KALDIRILMIŞ SEÇENEK", - .switched_opt_str = "DEĞİŞTİRİLMİŞ SEÇENEK", - .not_changed_opt = "değiştirilmedi", - .compiler_str = "derleyicisi", - .version_str = "versiyon", - .bin_str = "yapı", - .part_name = "Bölüm adı", - .part_type = "Dinamik bölüm", - .fs_str = "Dosya sistemi", - .unknw_str = "bilinmeyen", - .by_str = "Çeviriyi yapan(lar):", - .yes = "evet", - .no = "hayır" + .lang_by_s = "YZBruh", + .language = "Türkçe", + .lang_prefix = "tr", + .not_logical = "Bu cihaz mantıksal (logical) bölümlere sahip değil!", + .not_file = "Bu bir dosya değil", + .not_dir = "Bu bir dizin değil", + .not_in_dev = "Bu bir şakamı? Bunun /dev dizini ile bir ilgisi yok (içermiyor). Bu hatayla karşılaşmak istemiyorsanız zorlama (force) modu kullanın.", + .not_open = "Açılamıyor", + .not_block = "Belirtilen bölüm bir blok değil. Yani aslında bu bir bölüm bile değil (disk). Bu hatayı almak için şanslı olmak gerek..! Bu hatayla karşılaşmak istemiyorsanız zorlama (force) modu kullanın.", + .not_read = "Veri okunamıyor", + .not_readdir = "Dizin verisi okunamıyor", + .not_write = "Veri yazılamıyor", + .not_gen = "Oluşturulamıyor", + .no_root = "Root erişimi tespit edilemedi! Lütfen root erişimi ile çalıştırın.", + .expected_backup_arg = "Beklenen yedekleme argümanı 2 (bir tanesi zorunlu değil), alınan", + .expected_flash_arg = "Beklenen flaş argümanı 2, alınan", + .expected_format_arg = "Beklenen format argümanı 2, alınan", + .expected_partsz_arg = "Beklenen partition-size argümanı 1, alınan", + .missing_operand = "İşlem belirtilmedi", + .multiple_wiewers = "Birden fazla görüntüleme işlemi yapan fonksiyonlar bir arada kullanılamaz. Aynı anda sadece bir tanesi kullanılabilir.", + .symbol_rule = "Bir seçeneğin argümanını verirken argüman önüne '-' sembolü getirilemez. Sembolü kaldırın ve tekrar deneyin.", + .req_part_name = "Bölüm adı gereklidir.", + .part_not_found = "Bölüm bulunamadı! Belki mantıksal (logical) bir bölümdür?", + .unsupported_fs = "Formatlayıcı: desteklenmeyen dosya sistemi:", + .cannot_stat = "Durumu tespit edilemedi", + .ffile_more_part = "Flaşlanacak dosyanın boyutu mevcut bölüm boyutundan fazla. Bu hatayla karşılaşmak istemiyorsanız zorlama (force) modu kullanın (bunu yapmanız asla önerilmez).", + .cannot_get_bsz = "Bölüm blok boyutu tespit edilemedi!", + .format_fail = "Formatlama başarısız oldu. Bazı şeyler zarar görmüş olabilir!", + .fail_get_psize = "Bölüm boyutu alınamadı", + .depr_backup_opt = "Yedek için artık bu seçeneği kullanamazsınız.", + .depr_flash_opt = "Flaşlama için artık bu seçeneği kullanamazsınız.", + .depr_format_opt = "Formatlama için artıi bu seçeneği kullanamazsınız.", + .depr_Vlicense_opt = "Gereksiz seçeneklere bellek yok!", + .depr_ch_list_opt = "Listeleme için -p seçeneğini kullanabilirsiniz.", + .depr_ch_sp_opt = "Özel arama dizini belirtmek için -P (--search-path) seçeneğini kullanabilirsiniz.", + .logical_warn = "Bu cihaz mantıksal (logical) bölümlere sahip.", + .not_spec_opt = "Seçenek değil, şuan gerekli argümanları verin", + .some_spec = "Seçenek belirtmiş olabilirsiniz fakat, ana işlem belirtmedikçe pek işe yaramazlar", + .ab_warn = "Bu cihazın bazı bölümleri A/B kullanıyor.", + .out_not_spec = "Çıktı dosya adı belirtilmedi. Oluşturulan çıktı adı", + .no_found_on_process = "İşlenmekte olan dosya bulunamadı. Bir şeyler yanlış...", + .please_rerun = "Lütfen yeniden çalıştırın", + .part_disk_sz = "Bölümün (yedek) boyutu", + .flash_file_sz = "Flaşlanacak dosyanın boyutu", + .flash_file_sz_fail = "Uyarı: flaşlanacak dosyanın boyutu tespit edilemedi.", + .part_disk_sz_fail = "Uyarı: bölüm boyutunun boyutu tespit edilemedi.", + .unknown_opr = "Bilinmeyen işlem", + .req_an_arg = "bu seçenek argüman gerektirir", + .list_of_general = "Genel bölümlerin listesi", + .list_of_logc = "Mantıksal (logical) bölümlerin listesi", + .success_backup = "Başarılı. Çıktı", + .success_flash = "Başarılı.", + .success_format = "Formatlama başarılı", + .formatting = "Formatlanıyor", + .warn = "UYARI", + .fatal = "KRİTİK HATA", + .is_requires_arg = "bir argüman gereklidir", + .only_partsz_args = "Sadece bölüm boyutu görüntülemesinde kullanılabilecek bayraklar tespit edildi. Ama hedef bu değil", + .unknw_arg = "bilinmeyen seçenek", + .switching_lang = "Dil değiştiriliyor...", + .welcome = "diline hoş geldiniz!", + .welcome_ = NULL, + .for_more = "komutunu kullanabilirsiniz", + .s_and_v = "Sessiz ve ayrıntılı günlüklenme aynı anda kullanılamaz!", + .try_h = "Daha fazla bilgi", + .usage_head = "Kullanımı", + .depr_opt_str = "KALDIRILMIŞ SEÇENEK", + .switched_opt_str = "DEĞİŞTİRİLMİŞ SEÇENEK", + .not_changed_opt = "değiştirilmedi", + .compiler_str = "derleyicisi", + .version_str = "versiyon", + .bin_str = "yapı", + .part_name = "Bölüm adı", + .part_type = "Dinamik bölüm", + .fs_str = "Dosya sistemi", + .unknw_str = "bilinmeyen", + .by_str = "Çeviriyi yapan(lar):", + .yes = "evet", + .no = "hayır" }; struct langdb_docs LangDocEn = { - .docs_strs_l1 = "[OPTIONS] start-parted [DEVICE]...", - .docs_strs_l2 = "[OPTIONS] backup PARTITION [OUTPUT] [OPTIONS]...", - .docs_strs_l3 = "[OPTIONS] flash PARTITION FILE [OPTIONS]...", - .docs_strs_l4 = "[OPTIONS] format PARTITION FILE_SYSTEM[ext/2/3/4] [OPTIONS]...", - .docs_strs_l5 = "[OPTIONS] partition-size PARTITION [OPTIONS]...", - .docs_strs_l6 = "Options", - .docs_strs_l7 = "It is meant to determine whether the target partition is logical.", - .docs_strs_l8 = "It is meant to specify a custom partition search path. Only normal partitions (default: /dev/block/by-name).", - .docs_strs_l9 = "List partitions.", - .docs_strs_l10 = "Information and warning messages are silenced in normal work.", - .docs_strs_l11 = "Force mode. Some things are ignored.", - .docs_strs_l12 = "Verbose mode. Print detailed informations etc.", - .docs_strs_l13 = "Set current language.", - .docs_strs_l14 = "See version.", - .docs_strs_l15 = "See this help message.", - .docs_strs_l16 = "partition-size flags", - .docs_strs_l17 = "Only the size is displayed, the partition name etc is not displayed.", - .docs_strs_l18 = "Display size as byte.", - .docs_strs_l19 = "Display size as kilobyte.", - .docs_strs_l20 = "Display size as megabyte.", - .docs_strs_l21 = "Display size as gigabyte.", - .docs_strs_l22 = "Examples", - .docs_strs_l23 = "Report bugs and suggestions to", - .or_str = "or", - .usage_docstr = "Usage" + .docs_strs_l1 = "[OPTIONS] backup PARTITION [OUTPUT] [OPTIONS]...", + .docs_strs_l2 = "[OPTIONS] flash PARTITION FILE [OPTIONS]...", + .docs_strs_l3 = "[OPTIONS] format PARTITION FILE_SYSTEM[ext/2/3/4] [OPTIONS]...", + .docs_strs_l4 = "[OPTIONS] partition-size PARTITION [OPTIONS]...", + .docs_strs_l5 = "Options", + .docs_strs_l6 = "It is meant to determine whether the target partition is logical.", + .docs_strs_l7 = "It is meant to specify a custom partition search path. Only normal partitions (default: /dev/block/by-name).", + .docs_strs_l8 = "List partitions.", + .docs_strs_l9 = "Information and warning messages are silenced in normal work.", + .docs_strs_l10 = "Force mode. Some things are ignored.", + .docs_strs_l11 = "Verbose mode. Print detailed informations etc.", + .docs_strs_l12 = "Set current language.", + .docs_strs_l13 = "See version.", + .docs_strs_l14 = "See this help message.", + .docs_strs_l15 = "partition-size flags", + .docs_strs_l16 = "Only the size is displayed, the partition name etc is not displayed.", + .docs_strs_l17 = "Display size as byte.", + .docs_strs_l18 = "Display size as kilobyte.", + .docs_strs_l19 = "Display size as megabyte.", + .docs_strs_l20 = "Display size as gigabyte.", + .docs_strs_l21 = "Examples", + .docs_strs_l22 = "Report bugs and suggestions to", + .or_str = "or", + .usage_docstr = "Usage" }; struct langdb_docs LangDocTr = { - .docs_strs_l1 = "[SEÇENEKLER] start-parted [CİHAZ]...", - .docs_strs_l2 = "[SEÇENEKLER] backup BÖLÜM [ÇIKTI] [SEÇENEKLER]...", - .docs_strs_l3 = "[SEÇENEKLER] flash BÖLÜM DOSYA [SEÇENEKLER]...", - .docs_strs_l4 = "[SEÇENEKLER] format BÖLÜM DOSYA_SİSTEMİ[ext/2/3/4] [SEÇENEKLER]...", - .docs_strs_l5 = "[SEÇENEKLER] partition-size BÖLÜM [SEÇENEKLER]...", - .docs_strs_l6 = "Seçenekler", - .docs_strs_l7 = "Mantıksal (logical) bölüm ile işlem yapın.", - .docs_strs_l8 = "Özel bir bölüm arama dizini belirtin. Sadece normal bölümler içindir (Varsayılan: /dev/block/by-name).", - .docs_strs_l9 = "Bölümler listelenir.", - .docs_strs_l10 = "Bilgi ve uyarı mesajları susturulur.", - .docs_strs_l11 = "Zorlama modu. Bazı şeyler göz ardı edilir.", - .docs_strs_l12 = "Ayrıntılı bilgi modu. Daha fazla bilgi mesajı verilir.", - .docs_strs_l13 = "Mevcut dili ayarlayın.", - .docs_strs_l14 = "Sürümü görüntüleyin.", - .docs_strs_l15 = "Bu yardım mesajını görüntüleyin.", - .docs_strs_l16 = "partition-size bayrakları", - .docs_strs_l17 = "Boyut görüntülenirken bölüm adı vb gibi bilgiler verilmez, sadece boyut görüntülenir.", - .docs_strs_l18 = "Boyutu bayt olarak görüntüleyin.", - .docs_strs_l19 = "Boyutu kilobayt olarak görüntüleyin.", - .docs_strs_l20 = "Boyutu megabyte olarak görüntüleyin.", - .docs_strs_l21 = "Boyutu gigabayt olarak görüntüleyin.", - .docs_strs_l22 = "Örnekler", - .docs_strs_l23 = "Sorunları ve önerileri şuraya bildirin:", - .or_str = "yada", - .usage_docstr = "Kullanımı" + .docs_strs_l1 = "[SEÇENEKLER] backup BÖLÜM [ÇIKTI] [SEÇENEKLER]...", + .docs_strs_l2 = "[SEÇENEKLER] flash BÖLÜM DOSYA [SEÇENEKLER]...", + .docs_strs_l3 = "[SEÇENEKLER] format BÖLÜM DOSYA_SİSTEMİ[ext/2/3/4] [SEÇENEKLER]...", + .docs_strs_l4 = "[SEÇENEKLER] partition-size BÖLÜM [SEÇENEKLER]...", + .docs_strs_l5 = "Seçenekler", + .docs_strs_l6 = "Mantıksal (logical) bölüm ile işlem yapın.", + .docs_strs_l7 = "Özel bir bölüm arama dizini belirtin. Sadece normal bölümler içindir (Varsayılan: /dev/block/by-name).", + .docs_strs_l8 = "Bölümler listelenir.", + .docs_strs_l9 = "Bilgi ve uyarı mesajları susturulur.", + .docs_strs_l10 = "Zorlama modu. Bazı şeyler göz ardı edilir.", + .docs_strs_l11 = "Ayrıntılı bilgi modu. Daha fazla bilgi mesajı verilir.", + .docs_strs_l12 = "Mevcut dili ayarlayın.", + .docs_strs_l13 = "Sürümü görüntüleyin.", + .docs_strs_l14 = "Bu yardım mesajını görüntüleyin.", + .docs_strs_l15 = "partition-size bayrakları", + .docs_strs_l16 = "Boyut görüntülenirken bölüm adı vb gibi bilgiler verilmez, sadece boyut görüntülenir.", + .docs_strs_l17 = "Boyutu bayt olarak görüntüleyin.", + .docs_strs_l18 = "Boyutu kilobayt olarak görüntüleyin.", + .docs_strs_l19 = "Boyutu megabyte olarak görüntüleyin.", + .docs_strs_l20 = "Boyutu gigabayt olarak görüntüleyin.", + .docs_strs_l21 = "Örnekler", + .docs_strs_l22 = "Sorunları ve önerileri şuraya bildirin:", + .or_str = "yada", + .usage_docstr = "Kullanımı" }; } /* namespace Display */ diff --git a/jni/PartitionManager/ListPartitions.cpp b/jni/PartitionManager/ListPartitions.cpp index dd38852..4ad4eb9 100755 --- a/jni/PartitionManager/ListPartitions.cpp +++ b/jni/PartitionManager/ListPartitions.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,10 +16,10 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_DEBUGERS 1 -#define INC_DIRENT 1 -#define INC_STRINGKEYS 1 +#define INC_MAIN_LIBS +#define INC_DEBUGERS +#define INC_DIRENT +#define INC_STRINGKEYS #include @@ -33,108 +33,108 @@ static DIR* Directory; static int ListDir(const string& TargetDir, const bool ListTargetDir = false) { - static int count; - struct dirent **List; - bool ListParts = (ListTargetDir) ? true : false; + static int count; + struct dirent **List; + bool ListParts = (ListTargetDir) ? true : false; - Directory = nullptr; - Directory = opendir(TargetDir.c_str()); + Directory = nullptr; + Directory = opendir(TargetDir.c_str()); - if (ListParts) - { - count = scandir(TargetDir.c_str(), &List, nullptr, alphasort); + if (ListParts) + { + count = scandir(TargetDir.c_str(), &List, nullptr, alphasort); - if (count < 0) - LOGE("%s: `%s': %s\n", - Display::UsingDispString->not_readdir, - TargetDir.c_str(), - strqerror()); + if (count < 0) + LOGE("%s: `%s': %s\n", + Display::UsingDispString->not_readdir, + TargetDir.c_str(), + strqerror()); - for (int i = 0; i < count; i++) - { - if (List[i]->d_name[0] != '.' - && strncmp(List[i]->d_name, "com.", 4) != 0 - && strcmp(List[i]->d_name, "by-uuid") != 0 - && strcmp(List[i]->d_name, "userdata") != 0) - LOGD(" - [ %-16s ]\n", List[i]->d_name); + for (int i = 0; i < count; i++) + { + if (List[i]->d_name[0] != '.' + && strncmp(List[i]->d_name, "com.", 4) != 0 + && strcmp(List[i]->d_name, "by-uuid") != 0 + && strcmp(List[i]->d_name, "userdata") != 0) + LOGD(" - [ %-16s ]\n", List[i]->d_name); - free(List[i]); - } + free(List[i]); + } - free(List); - List = nullptr; + free(List); + List = nullptr; - goto directory; - } + goto directory; + } directory: - if (Directory != nullptr) - { - closedir(Directory); - return 0; - } - else - return -1; + if (Directory != nullptr) + { + closedir(Directory); + return 0; + } + else + return -1; - return 2; + return 2; } /* list existing partitions */ int PartitionManager::ListPartitions(void) { - VLOGD("Selecting search path...\n"); - string AccessDir = (Config.UseCustomSearchPath) ? Strings::CustomSearchPath : CUR_DEV_SP; + VLOGD("Selecting search path...\n"); + string AccessDir = (Config.UseCustomSearchPath) ? Strings::CustomSearchPath : CUR_DEV_SP; - VLOGD("Trying to access `%s'...\n", AccessDir.c_str()); - if (ListDir(AccessDir) != 0) - { - if (!Config.ForceMode) - LOGE("%s: `%s': %s\n", - Display::UsingDispString->not_open, - AccessDir.c_str(), - strqerror()); - else - return 1; - } - else - { - LOGD("%s:\n", Display::UsingDispString->list_of_general); - ListDir(AccessDir, true); - } + VLOGD("Trying to access `%s'...\n", AccessDir.c_str()); + if (ListDir(AccessDir) != 0) + { + if (!Config.ForceMode) + LOGE("%s: `%s': %s\n", + Display::UsingDispString->not_open, + AccessDir.c_str(), + strqerror()); + else + return 1; + } + else + { + LOGD("%s:\n", Display::UsingDispString->list_of_general); + ListDir(AccessDir, true); + } - if (Config.UsesLogical) - { - VLOGD("Checking for listing `%s'...\n", LGC_DEV_SP); + if (Config.UsesLogical) + { + VLOGD("Checking for listing `%s'...\n", LGC_DEV_SP); - if (ListDir(LGC_DEV_SP) != 0) - LOGE("%s: `%s': %s\n", - Display::UsingDispString->not_open, - LGC_DEV_SP, - strqerror()); - else - { - LOGD("\n%s:\n", Display::UsingDispString->list_of_logc); - ListDir(LGC_DEV_SP, true); - } - } + if (ListDir(LGC_DEV_SP) != 0) + LOGE("%s: `%s': %s\n", + Display::UsingDispString->not_open, + LGC_DEV_SP, + strqerror()); + else + { + LOGD("\n%s:\n", Display::UsingDispString->list_of_logc); + ListDir(LGC_DEV_SP, true); + } + } - VLOGD("(if have) warnings are printed...\n"); + VLOGD("(if have) warnings are printed...\n"); - if (Config.UsesLogical) - { - LOGD("\n"); - LOGW("%s\n", Display::UsingDispString->logical_warn); - } + if (Config.UsesLogical) + { + LOGD("\n"); + LOGW("%s\n", Display::UsingDispString->logical_warn); + } - if (Config.UsesSlots) - { - if (!Config.UsesLogical) - LOGD("\n"); + if (Config.UsesSlots) + { + if (!Config.UsesLogical) + LOGD("\n"); - LOGW("%s\n", Display::UsingDispString->ab_warn); - } + LOGW("%s\n", Display::UsingDispString->ab_warn); + } - return 0; + return 0; } /* end of code */ diff --git a/jni/PartitionManager/PartedUtils.cpp b/jni/PartitionManager/PartedUtils.cpp deleted file mode 100755 index cd2f534..0000000 --- a/jni/PartitionManager/PartedUtils.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* By YZBruh */ - -/** - * Copyright 2024 Partition Manager - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#define INC_MAIN_LIBS 1 -#define INC_STRINGKEYS 1 -#define INC_DEBUGERS 1 -#define INC_PTHREAD 1 - -/* using by new devices */ -#define DEFAULT_DEVICE_NEW "/dev/block/sda" - -/* using by old devices */ -#define DEFAULT_DEVICE_OLD "/dev/block/mmcblk0" - -/** - * These macros will be added/deleted/modified - * according to user feedback. - */ - -#include -#include - -static bool started = false, o_ended = false; -static int ret = 0; -static pthread_mutex_t plock = PTHREAD_MUTEX_INITIALIZER; - -extern "C" void* __start_parted(void* dummy_arg); -extern "C" void* __watch_parted(void* dummy_arg); - -bool PartitionManager::SearchDevice(const string& DevicePath) -{ - VLOGD("Check '%s'.\n", DevicePath.c_str()); - - if (PartitionManager::GetState(DevicePath, "none") != 0) { - VLOGD("Cannot find '%s'.\n", DevicePath.c_str()); - return false; - } else VLOGD("Founded: '%s'.\n", DevicePath.c_str()); - - return true; -} - -bool PartitionManager::SearchDefaultDevices(void) -{ - VLOGD("Searching '%s'.\n", DEFAULT_DEVICE_NEW); - if (PartitionManager::SearchDevice(DEFAULT_DEVICE_NEW)) { - PartitionManager::Strings::Device = DEFAULT_DEVICE_NEW; - return true; - } - - VLOGD("Searching '%s'.\n", DEFAULT_DEVICE_NEW); - if (PartitionManager::SearchDevice(DEFAULT_DEVICE_OLD)) { - PartitionManager::Strings::Device = DEFAULT_DEVICE_OLD; - return true; - } - - return false; -} - -void* __watch_parted(void* dummy_arg) -{ - while (1) { - pthread_mutex_lock(&plock); - - if (started) { - if (o_ended) { - pthread_mutex_unlock(&plock); - return NULL; - } - if (set_ret) { - LOGD("%s: %d.\n", - PartitionManager::Display::UsingDispString->exited_with, - parted_ret); - pthread_mutex_unlock(&plock); - return NULL; - } - } else { - VLOGD("Parted is still not started...\n"); - sleep(1); - } - - pthread_mutex_unlock(&plock); - usleep(1000); - } -} - -void* __start_parted(void* dummy_arg) -{ - VLOGD("Generating arguments...\n"); - char* arguments[] = { - "parted-pmt", - (char*)PartitionManager::Strings::Device.c_str(), - }; - - LOGD("%s...\n", PartitionManager::Display::UsingDispString->starting_parted); - VLOGD("Calling parted_main...\n"); - - pthread_mutex_lock(&plock); - started = true; - pthread_mutex_unlock(&plock); - ret = parted_main(2, arguments); - pthread_mutex_lock(&plock); - o_ended = true; - pthread_mutex_unlock(&plock); - sleep(1); - - return NULL; -} - -int PartitionManager::StartParted(void) -{ - pthread_t t1, t2; - - pthread_create(&t1, NULL, __start_parted, NULL); - pthread_create(&t2, NULL, __watch_parted, NULL); - - pthread_join(t1, NULL); - pthread_join(t2, NULL); - - return ret; -} - -/* end of code */ diff --git a/jni/PartitionManager/PartitionManager.cpp b/jni/PartitionManager/PartitionManager.cpp index 5c21fee..535a919 100755 --- a/jni/PartitionManager/PartitionManager.cpp +++ b/jni/PartitionManager/PartitionManager.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,12 +16,12 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_DEBUGERS 1 -#define INC_STAT 1 -#define INC_LIBGEN 1 -#define INC_STRINGKEYS 1 -#define IS_MAIN 1 +#define INC_MAIN_LIBS +#define INC_DEBUGERS +#define INC_STAT +#define INC_LIBGEN +#define INC_STRINGKEYS +#define IS_MAIN #include #include @@ -31,43 +31,37 @@ /* add value to variables that are added globally and are not worth */ namespace PartitionManager { - namespace Strings { - string OutputName = ""; - string CustomSearchPath = ""; - string TargetPartition = ""; - string TargetFlashFile = ""; - string TargetFormatFS = ""; - string PartitionType = ""; - string Device = ""; - string ExecutingName = ""; - string CurrentLanguage = ""; - } /* namespace Strings */ + namespace Strings { + string OutputName = ""; + string CustomSearchPath = ""; + string TargetPartition = ""; + string TargetFlashFile = ""; + string TargetFormatFS = ""; + string PartitionType = ""; + string ExecutingName = ""; + string CurrentLanguage = ""; + } /* namespace Strings */ - namespace Integers { - int PartSizeViewType = VIEW_AS_MIB; - } /* namespace Integers */ + namespace Integers { + int PartSizeViewType = VIEW_AS_MIB; + } /* namespace Integers */ } /* namespace PartitionManager */ /* configure struct body */ struct Configuration Config { - /* general boolean tab */ - .UseLogical = false, - .UseCustomSearchPath = false, - .UsesSlots = false, - .UsesLogical = false, - .SilentEnabled = false, - .FlashMode = false, - .BackupMode = false, - .FormatMode = false, - .PartedMode = false, - .PartSizeViewMode = false, - .PartUtilMode = false, - .ForceMode = false, - .VerboseMode = false, - .InstalledOnTermux = false, - - /* part-size argument bools */ - .OnlyViewSize = false, + .UseLogical = false, + .UseCustomSearchPath = false, + .UsesSlots = false, + .UsesLogical = false, + .OnlyViewSize = false, + .SilentEnabled = false, + .FlashMode = false, + .BackupMode = false, + .FormatMode = false, + .PartSizeViewMode = false, + .ForceMode = false, + .VerboseMode = false, + .InstalledOnTermux = false }; /* some variables. for parsing and processing arguments */ @@ -79,7 +73,6 @@ static bool MultipleViewers = false; static bool SetLanguageReq = false; static bool SomeSpec = false; static bool PartSizeArgSpeficed = false; -static bool ListSupportedLanguages = false; static char* SpeficedLanguagePr; static string Option; static string Target; @@ -93,167 +86,172 @@ namespace PartitionManager { * He controls whether the '-' sign at * the beginning of the given word */ -static inline void +static void CheckOptSymbol(const string& Symbol) { - if (!Symbol.empty()) { - if (strncmp(Symbol.c_str(), "-", 1) == 0) - LOGE("%s\n", SymbolRule.c_str()); - } + if (!Symbol.empty()) + { + if (strncmp(Symbol.c_str(), "-", 1) == 0) + LOGE("%s\n", SymbolRule.c_str()); + } } -static inline bool +static bool ControlArg(char* &ArgvHolder) { - if (ArgvHolder[0] != '-') return true; + if (ArgvHolder[0] != '-') return true; - return false; + return false; } } /* namespace PartitionManager */ static void -deprecated(const char &opt, const char* &deprecation_message, const char* opt_long = "IS_EMPTY") +deprecated(const char &opt, const char* &deprecation_message, const char* opt_long = "ISNULL") { - VLOGE("Deprecated Option: -%c (--%s). Printing error...\n", opt, opt_long); - DEPR_HANDLE(opt, opt_long, deprecation_message); + VLOGE("Deprecated Option: -%c (--%s). Printing error...\n", opt, opt_long); + DEPR_HANDLE(opt, opt_long, deprecation_message); - exit(1); + exit(1); } -static inline void +static void PrSpInput(const string& sp) { - Config.UseCustomSearchPath = true; - PartitionManager::Strings::CustomSearchPath = sp; - PartitionManager::CheckOptSymbol(PartitionManager::Strings::CustomSearchPath); + Config.UseCustomSearchPath = true; + PartitionManager::Strings::CustomSearchPath = sp; + PartitionManager::CheckOptSymbol(PartitionManager::Strings::CustomSearchPath); } class PartitionManagerBase { protected: - char* BaseFunctionName = nullptr; - int StartCode = -1; - bool IsRequiredOnlyOneArg = false; + char* BaseFunctionName = nullptr; + int StartCode = -1; + bool IsRequiredOnlyOneArg = false; public: - void CallTargetBaseFunction(void) - { - VLOGD("[class]: Call PartitionManagerMain(%d)\n", StartCode); - PartitionManager::PartitionManagerMain(StartCode); - } + void CallTargetBaseFunction(void) + { + VLOGD("[class]: Call PartitionManagerMain(%d)\n", StartCode); + PartitionManager::PartitionManagerMain(StartCode); + } - void GenericNumericalController(int& searchOn, int& total, const char* &MissingArgMessage) - { - if (total <= searchOn) { - VLOGE("[class]: Missing argument total (for %s function).\n", BaseFunctionName); - LOGE("%s 0.\n", MissingArgMessage); - } + void GenericNumericalController(int& searchOn, int& total, const char* &MissingArgMessage) + { + if (total <= searchOn) + { + VLOGE("[class]: Missing argument total (for %s function).\n", BaseFunctionName); + LOGE("%s 0.\n", MissingArgMessage); + } - if (!IsRequiredOnlyOneArg) { - if (total <= (searchOn + 1)) { - VLOGE("[class]: Missing argument total (for %s function).\n", BaseFunctionName); - LOGE("%s 1.\n", MissingArgMessage); - } - } - } + if (!IsRequiredOnlyOneArg) + { + if (total <= (searchOn + 1)) + { + VLOGE("[class]: Missing argument total (for %s function).\n", BaseFunctionName); + LOGE("%s 1.\n", MissingArgMessage); + } + } + } - virtual void ArgumentProcessor(int& searchOn, int& total, char** &arguments) { /* dummy */ } + virtual void ArgumentProcessor(int& searchOn, int& total, char** &arguments) { /* dummy */ } }; class PartitionManagerBackup : public PartitionManagerBase { public: - void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override - { - BaseFunctionName = "backup"; - StartCode = 1; - IsRequiredOnlyOneArg = true; + void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override + { + BaseFunctionName = "backup"; + StartCode = 1; + IsRequiredOnlyOneArg = true; - GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_backup_arg); + GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_backup_arg); - if (PartitionManager::ControlArg(arguments[searchOn])) - PartitionManager::Strings::TargetPartition = arguments[searchOn]; - else - LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); + if (PartitionManager::ControlArg(arguments[searchOn])) + PartitionManager::Strings::TargetPartition = arguments[searchOn]; + else + LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); - PartitionManager::Strings::OutputName = PartitionManager::Strings::TargetPartition; + PartitionManager::Strings::OutputName = PartitionManager::Strings::TargetPartition; - if (total > (searchOn + 1) && PartitionManager::ControlArg(arguments[(searchOn + 1)])) { - VLOGD("[class]: Non-mandatory argument was detected and retrieved (for %s function).\n", BaseFunctionName); - PartitionManager::Strings::OutputName = arguments[(searchOn + 1)]; - } + if (total > (searchOn + 1) && PartitionManager::ControlArg(arguments[(searchOn + 1)])) + { + VLOGD("[class]: Non-mandatory argument was detected and retrieved (for %s function).\n", BaseFunctionName); + PartitionManager::Strings::OutputName = arguments[(searchOn + 1)]; + } - PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); - PartitionManager::CheckOptSymbol(PartitionManager::Strings::OutputName); - } + PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); + PartitionManager::CheckOptSymbol(PartitionManager::Strings::OutputName); + } }; class PartitionManagerFlash : public PartitionManagerBase { public: - void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override - { - BaseFunctionName = "flash"; - StartCode = 2; - IsRequiredOnlyOneArg = false; + void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override + { + BaseFunctionName = "flash"; + StartCode = 2; + IsRequiredOnlyOneArg = false; - GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_flash_arg); + GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_flash_arg); - if (PartitionManager::ControlArg(arguments[searchOn])) - PartitionManager::Strings::TargetPartition = arguments[searchOn]; - else - LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); + if (PartitionManager::ControlArg(arguments[searchOn])) + PartitionManager::Strings::TargetPartition = arguments[searchOn]; + else + LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); - if (PartitionManager::ControlArg(arguments[(searchOn + 1)])) - PartitionManager::Strings::TargetFlashFile = arguments[(searchOn + 1)]; - else - LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); + if (PartitionManager::ControlArg(arguments[(searchOn + 1)])) + PartitionManager::Strings::TargetFlashFile = arguments[(searchOn + 1)]; + else + LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); - PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetFlashFile); - PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); - } + PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetFlashFile); + PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); + } }; class PartitionManagerFormat : public PartitionManagerBase { public: - void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override - { - BaseFunctionName = "format"; - StartCode = 3; - IsRequiredOnlyOneArg = false; + void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override + { + BaseFunctionName = "format"; + StartCode = 3; + IsRequiredOnlyOneArg = false; - GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_format_arg); + GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_format_arg); - if (PartitionManager::ControlArg(arguments[searchOn])) - PartitionManager::Strings::TargetPartition = arguments[searchOn]; - else - LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); + if (PartitionManager::ControlArg(arguments[searchOn])) + PartitionManager::Strings::TargetPartition = arguments[searchOn]; + else + LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); - if (PartitionManager::ControlArg(arguments[(searchOn + 1)])) - PartitionManager::Strings::TargetFormatFS = arguments[(searchOn + 1)]; - else - LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); + if (PartitionManager::ControlArg(arguments[(searchOn + 1)])) + PartitionManager::Strings::TargetFormatFS = arguments[(searchOn + 1)]; + else + LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); - PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetFormatFS); - PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); - } + PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetFormatFS); + PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); + } }; class PartitionManagerPartSize : public PartitionManagerBase { public: - void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override - { - BaseFunctionName = "partition-size"; - StartCode = 4; - IsRequiredOnlyOneArg = true; + void ArgumentProcessor(int& searchOn, int& total, char** &arguments) override + { + BaseFunctionName = "partition-size"; + StartCode = 4; + IsRequiredOnlyOneArg = true; - GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_partsz_arg); + GenericNumericalController(searchOn, total, PartitionManager::Display::UsingDispString->expected_partsz_arg); - if (PartitionManager::ControlArg(arguments[searchOn])) - PartitionManager::Strings::TargetPartition = arguments[searchOn]; - else - LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); + if (PartitionManager::ControlArg(arguments[searchOn])) + PartitionManager::Strings::TargetPartition = arguments[searchOn]; + else + LOGE("%s.\n", PartitionManager::Display::UsingDispString->not_spec_opt); - PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); - } + PartitionManager::CheckOptSymbol(PartitionManager::Strings::TargetPartition); + } }; /* Generate classes */ @@ -269,568 +267,585 @@ namespace PartitionManager { static void ParseMainOperations(int argc, char** argv) { - SearchOnMainInt = -1; - Base = &BaseTemplate; + SearchOnMainInt = -1; + Base = &BaseTemplate; - VLOGD("Starting cycle for trapping main options...\n"); - while (1) { - if ((argc - 1) == 0) { - VLOGD("argc - 1 = 0. Breaking...\n"); - break; - } + VLOGD("Starting cycle for trapping main options...\n"); + while (1) + { + if ((argc - 1) == 0) + { + VLOGD("argc - 1 = 0. Breaking...\n"); + break; + } - if (argv[(argc - 1)][0] == '-') { - VLOGD("argv[%d] starts with '-'. Continue.\n", (argc - 1)); - argc--; - continue; - } else { - Target = argv[(argc - 1)]; - SearchOnMainInt = argc; - VLOGD("argv[%d] = %s\n", (argc - 1), argv[(argc - 1)]); - VLOGD("Variable of \"Target\" (string): %s\n", Target.c_str()); + if (argv[(argc - 1)][0] == '-') + { + VLOGD("argv[%d] starts with '-'. Continue.\n", (argc - 1)); + argc--; + continue; + } + else + { + Target = argv[(argc - 1)]; + SearchOnMainInt = argc; + VLOGD("argv[%d] = %s\n", (argc - 1), argv[(argc - 1)]); + VLOGD("Variable of \"Target\" (string): %s\n", Target.c_str()); - if (Target == "backup") { - Base = &BackupArgProcessorBase; - Config.BackupMode = true; - break; - } else if (Target == "flash") { - Base = &FlashArgProcessorBase; - Config.FlashMode = true; - break; - } else if (Target == "format") { - Base = &FormatArgProcessorBase; - Config.FormatMode = true; - break; - } else if (Target == "partition-size") { - Base = &PartSizeArgProcessorBase; - Config.PartSizeViewMode = true; - break; - } else if (Target == "start-parted") { - Config.PartedMode = true; - break; - } else { - Target = ""; - SearchOnMainInt = -1; - argc--; - continue; - } - } + if (Target == "backup") + { + Base = &BackupArgProcessorBase; + Config.BackupMode = true; + break; + } + else if (Target == "flash") + { + Base = &FlashArgProcessorBase; + Config.FlashMode = true; + break; + } + else if (Target == "format") + { + Base = &FormatArgProcessorBase; + Config.FormatMode = true; + break; + } + else if (Target == "partition-size") + { + Base = &PartSizeArgProcessorBase; + Config.PartSizeViewMode = true; + break; + } + else + { + Target = ""; + SearchOnMainInt = -1; + argc--; + continue; + } + } - break; - } + break; + } } static char** ParseStdin(int argc, char** argv) { - StdinArgcTotal = 0; - char buf[256]; + StdinArgcTotal = 0; + char buf[256]; - VLOGD("Checking stdin status...\n"); - if (!isatty(fileno(stdin))) { - VLOGD("stdin is not empty.\n"); - VLOGD("Parsing stdin arguments...\n"); + VLOGD("Checking stdin status...\n"); + if (!isatty(fileno(stdin))) + { + VLOGD("stdin is not empty.\n"); + VLOGD("Parsing stdin arguments...\n"); - while (fgets(buf, sizeof(buf), stdin) != nullptr) { - buf[strcspn(buf, "\n")] = 0; + while (fgets(buf, sizeof(buf), stdin) != nullptr) + { + buf[strcspn(buf, "\n")] = 0; - argv[argc] = strdup(buf); - argc++; - StdinArgcTotal++; - } + argv[argc] = strdup(buf); + argc++; + StdinArgcTotal++; + } - VLOGD("Parsing completed.\n"); - } + VLOGD("Parsing completed.\n"); + } - VLOGD("stdin empty.\n"); - return argv; + VLOGD("stdin empty.\n"); + return argv; } static void ParseOptions(int argc, char** argv) { - argc--; - argv++; + argc--; + argv++; - VLOGD("Parsing standart arguments...\n"); - while (argc && argv[0] != nullptr) { - if (argv[0][0] != '-') { - argc--; - argv++; - continue; - } + VLOGD("Parsing standart arguments...\n"); + while (argc && argv[0] != nullptr) + { + if (argv[0][0] != '-') + { + argc--; + argv++; + continue; + } - for (int x = 1; true; x++) { - Option = argv[0]; - SomeSpec = true; + for (int x = 1; true; x++) + { + Option = argv[0]; + SomeSpec = true; - switch (argv[0][x]) { - case '-': - if (Option == "--backup") - deprecated('b', - PartitionManager::Display::UsingDispString->depr_backup_opt, - "backup"); - else if (Option == "--flash") - deprecated('F', - PartitionManager::Display::UsingDispString->depr_flash_opt, - "flash"); - else if (Option == "--format") - deprecated('r', - PartitionManager::Display::UsingDispString->depr_format_opt, - "format"); - else if (Option == "--license") - deprecated('L', - PartitionManager::Display::UsingDispString->depr_Vlicense_opt, - "license"); - else if (Option == "--context") - deprecated('c', - PartitionManager::Display::UsingDispString->depr_ch_sp_opt, - "context"); - else if (Option == "--logical") { - VLOGD("Logical partition type specified.\n"); - LogicalSpeficy = true; - break; - } else if (Option == "--search-path") { - VLOGD("Custom search path specified.\n"); - if (argc > 1) - PrSpInput(argv[1]); - else - LOGE("--search-path: %s.\n%s `%s --help' %s.\n", \ - PartitionManager::Display::UsingDispString->is_requires_arg, \ - PartitionManager::Display::UsingDispString->try_h, \ - PartitionManager::Strings::ExecutingName.c_str(), \ - PartitionManager::Display::UsingDispString->for_more); - break; - } else if (Option == "--list") { - VLOGD("It was requested to list the partitions.\n"); - ListRequired = true; - if (ViewVersion || ViewHelp) - MultipleViewers = true; - break; - } else if (Option == "--force") { - VLOGD("Force mode speficed.\n"); - Config.ForceMode = true; - break; - } else if (Option == "--verbose") { - VLOGD("Verbose mode speficed.\n"); - Config.VerboseMode = true; - break; - } else if (Option == "--silent") { - VLOGD("Silent mode speficed.\n"); - Config.SilentEnabled = true; - break; - } else if (Option == "--set-language") { - VLOGD("It was requested to adjust the language.\n"); - if (argc > 1) { - VLOGE("Language inputs: getting inputs...\n"); - SetLanguageReq = true; - SpeficedLanguagePr = argv[1]; - } - else - LOGE("--set-language: %s.\n%s `%s --help' %s.\n", - PartitionManager::Display::UsingDispString->is_requires_arg, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); - break; - } else if (Option == "--view-languages") { - ListSupportedLanguages = true; - } else if (Option == "--as-byte") { - PartSizeArgSpeficed = true; - PartitionManager::Integers::PartSizeViewType = VIEW_AS_BYTE; - break; - } else if (Option == "--as-kilobyte") { - PartSizeArgSpeficed = true; - PartitionManager::Integers::PartSizeViewType = VIEW_AS_KIB; - break; - } else if (Option == "--as-megabyte") { - PartSizeArgSpeficed = true; - PartitionManager::Integers::PartSizeViewType = VIEW_AS_MIB; - break; - } else if (Option == "--as-gigabyte") { - PartSizeArgSpeficed = true; - PartitionManager::Integers::PartSizeViewType = VIEW_AS_GIB; - break; - } else if (Option == "--only-size") { - PartSizeArgSpeficed = true; - Config.OnlyViewSize = true; - break; - } else if (Option == "--version") { - VLOGD("The version info was requested to be displayed.\n"); - ViewVersion = true; - if (ListRequired || ViewHelp) - MultipleViewers = true; - break; - } else if (Option == "--help") { - VLOGD("The help message was requested to be displayed.\n"); - ViewHelp = true; - if (ViewVersion || ListRequired) - MultipleViewers = true; - break; - } else { - VLOGE("Unknown Option: %s\n", argv[0]); - LOGE("%s: %s.\n%s `%s --help' %s.\n", argv[0], - PartitionManager::Display::UsingDispString->unknw_arg, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); - } - break; - case 'b': - deprecated('b', - PartitionManager::Display::UsingDispString->depr_backup_opt, - "backup"); - break; - case 'F': - deprecated('F', - PartitionManager::Display::UsingDispString->depr_flash_opt, - "flash"); - break; - case 'r': - deprecated('r', - PartitionManager::Display::UsingDispString->depr_format_opt, - "format"); - break; - case 'L': - deprecated('L', - PartitionManager::Display::UsingDispString->depr_Vlicense_opt, - "license"); - break; - case 'D': - deprecated('D', - PartitionManager::Display::UsingDispString->depr_ch_list_opt); - break; - case 'c': - deprecated('c', - PartitionManager::Display::UsingDispString->depr_ch_sp_opt, - "context"); - case 'l': - VLOGD("Logical partition type specified.\n"); - LogicalSpeficy = true; - continue; - case 'P': - VLOGD("Custom search path speficed.\n"); - if (argc > 1) { - VLOGE("Search-path inputs: getting inputs...\n"); - PrSpInput(argv[1]); - continue; - } else - LOGE("-P: %s.\n%s `%s --help' %s.\n", - PartitionManager::Display::UsingDispString->is_requires_arg, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); - break; - case 'p': - VLOGD("It was requested to list the partitions.\n"); - ListRequired = true; - if (ViewVersion || ViewHelp) - MultipleViewers = true; - continue; - case 'f': - VLOGD("Force mode speficed.\n"); - Config.ForceMode = true; - continue; - case 'V': - VLOGD("Verbose mode speficed.\n"); - Config.VerboseMode = true; - continue; - case 's': - VLOGD("Silent mode speficed.\n"); - Config.SilentEnabled = true; - continue; - case 'S': - VLOGD("It was requested to adjust the language.\n"); - if (argc > 1) { - VLOGE("Language inputs: getting inputs...\n"); - SetLanguageReq = true; - SpeficedLanguagePr = argv[1]; - continue; - } else - LOGE("-S: %s.\n%s `%s --help' %s.\n", - PartitionManager::Display::UsingDispString->is_requires_arg, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); - case 'v': - VLOGD("The version info was requested to be displayed.\n"); - ViewVersion = true; - if (ListRequired || ViewHelp) - MultipleViewers = true; - continue; - case '\0': - break; - default: - VLOGE("Unknown Option: -%c\n", argv[0][x]); - LOGE("-%c: %s.\n%s `%s --help' %s.\n", - argv[0][x], - PartitionManager::Display::UsingDispString->unknw_arg, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); - } + switch (argv[0][x]) + { + case '-': + if (Option == "--backup") + deprecated('b', + PartitionManager::Display::UsingDispString->depr_backup_opt, + "backup"); + else if (Option == "--flash") + deprecated('F', + PartitionManager::Display::UsingDispString->depr_flash_opt, + "flash"); + else if (Option == "--format") + deprecated('r', + PartitionManager::Display::UsingDispString->depr_format_opt, + "format"); + else if (Option == "--license") + deprecated('L', + PartitionManager::Display::UsingDispString->depr_Vlicense_opt, + "license"); + else if (Option == "--context") + deprecated('c', + PartitionManager::Display::UsingDispString->depr_ch_sp_opt, + "context"); + else if (Option == "--logical") + { + VLOGD("Logical partition type specified.\n"); + LogicalSpeficy = true; + break; + } + else if (Option == "--search-path") + { + VLOGD("Custom search path specified.\n"); + if (argc > 1) + PrSpInput(argv[1]); + else + LOGE("--search-path: %s.\n%s `%s --help' %s.\n", \ + PartitionManager::Display::UsingDispString->is_requires_arg, \ + PartitionManager::Display::UsingDispString->try_h, \ + PartitionManager::Strings::ExecutingName.c_str(), \ + PartitionManager::Display::UsingDispString->for_more); + break; + } + else if (Option == "--list") + { + VLOGD("It was requested to list the partitions.\n"); + ListRequired = true; + if (ViewVersion || ViewHelp) + MultipleViewers = true; + break; + } + else if (Option == "--force") + { + VLOGD("Force mode speficed.\n"); + Config.ForceMode = true; + break; + } + else if (Option == "--verbose") + { + VLOGD("Verbose mode speficed.\n"); + Config.VerboseMode = true; + break; + } + else if (Option == "--silent") + { + VLOGD("Silent mode speficed.\n"); + Config.SilentEnabled = true; + break; + } + else if (Option == "--set-language") + { + VLOGD("It was requested to adjust the language.\n"); + if (argc > 1) + { + VLOGE("Language inputs: getting inputs...\n"); + SetLanguageReq = true; + SpeficedLanguagePr = argv[1]; + } + else + LOGE("--set-language: %s.\n%s `%s --help' %s.\n", + PartitionManager::Display::UsingDispString->is_requires_arg, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + break; + } + else if (Option == "--as-byte") + { + PartSizeArgSpeficed = true; + PartitionManager::Integers::PartSizeViewType = VIEW_AS_BYTE; + break; + } + else if (Option == "--as-kilobyte") + { + PartSizeArgSpeficed = true; + PartitionManager::Integers::PartSizeViewType = VIEW_AS_KIB; + break; + } + else if (Option == "--as-megabyte") + { + PartSizeArgSpeficed = true; + PartitionManager::Integers::PartSizeViewType = VIEW_AS_MIB; + break; + } + else if (Option == "--as-gigabyte") + { + PartSizeArgSpeficed = true; + PartitionManager::Integers::PartSizeViewType = VIEW_AS_GIB; + break; + } + else if (Option == "--only-size") + { + PartSizeArgSpeficed = true; + Config.OnlyViewSize = true; + break; + } + else if (Option == "--version") + { + VLOGD("The version info was requested to be displayed.\n"); + ViewVersion = true; + if (ListRequired || ViewHelp) + MultipleViewers = true; + break; + } + else if (Option == "--help") + { + VLOGD("The help message was requested to be displayed.\n"); + ViewHelp = true; + if (ViewVersion || ListRequired) + MultipleViewers = true; + break; + } + else + { + VLOGE("Unknown Option: %s\n", argv[0]); + LOGE("%s: %s.\n%s `%s --help' %s.\n", argv[0], + PartitionManager::Display::UsingDispString->unknw_arg, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + } + break; + case 'b': + deprecated('b', + PartitionManager::Display::UsingDispString->depr_backup_opt, + "backup"); + break; + case 'F': + deprecated('F', + PartitionManager::Display::UsingDispString->depr_flash_opt, + "flash"); + break; + case 'r': + deprecated('r', + PartitionManager::Display::UsingDispString->depr_format_opt, + "format"); + break; + case 'L': + deprecated('L', + PartitionManager::Display::UsingDispString->depr_Vlicense_opt, + "license"); + break; + case 'D': + deprecated('D', + PartitionManager::Display::UsingDispString->depr_ch_list_opt); + break; + case 'c': + deprecated('c', + PartitionManager::Display::UsingDispString->depr_ch_sp_opt, + "context"); + case 'l': + VLOGD("Logical partition type specified.\n"); + LogicalSpeficy = true; + continue; + case 'P': + VLOGD("Custom search path speficed.\n"); + if (argc > 1) + { + VLOGE("Search-path inputs: getting inputs...\n"); + PrSpInput(argv[1]); + continue; + } + else + LOGE("-P: %s.\n%s `%s --help' %s.\n", + PartitionManager::Display::UsingDispString->is_requires_arg, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + break; + case 'p': + VLOGD("It was requested to list the partitions.\n"); + ListRequired = true; + if (ViewVersion || ViewHelp) + MultipleViewers = true; + continue; + case 'f': + VLOGD("Force mode speficed.\n"); + Config.ForceMode = true; + continue; + case 'V': + VLOGD("Verbose mode speficed.\n"); + Config.VerboseMode = true; + continue; + case 's': + VLOGD("Silent mode speficed.\n"); + Config.SilentEnabled = true; + continue; + case 'S': + VLOGD("It was requested to adjust the language.\n"); + if (argc > 1) + { + VLOGE("Language inputs: getting inputs...\n"); + SetLanguageReq = true; + SpeficedLanguagePr = argv[1]; + continue; + } + else + LOGE("-S: %s.\n%s `%s --help' %s.\n", + PartitionManager::Display::UsingDispString->is_requires_arg, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + case 'v': + VLOGD("The version info was requested to be displayed.\n"); + ViewVersion = true; + if (ListRequired || ViewHelp) + MultipleViewers = true; + continue; + case '\0': + break; + default: + VLOGE("Unknown Option: -%c\n", argv[0][x]); + LOGE("-%c: %s.\n%s `%s --help' %s.\n", + argv[0][x], + PartitionManager::Display::UsingDispString->unknw_arg, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + } - break; - } + break; + } - argc--; - argv++; - } -} - -static bool -GetDeviceFromArguments(int argc, char** argv) -{ - VLOGD("Checking arguments for finding device path...\n"); - - if (argc <= 2) return false; - if (argc < 3) return false; - - if (strncmp(argv[2], "/dev", 4) != 0) return false; - else PartitionManager::Strings::Device = argv[2]; - - VLOGD("Device path founded in arguments.\n"); - return true; + argc--; + argv++; + } } } /* namespace PartitionManager */ int main(int argc, char** argv) { - PartitionManager::Strings::ExecutingName = basename(argv[0]); + PartitionManager::Strings::ExecutingName = basename(argv[0]); - for (int i = 0; i <= (argc - 1); i++) { - if (strncmp(argv[i], "-V", 2) == 0 || strcmp(argv[i], "--verbose") == 0) - Config.VerboseMode = true; - else - continue; - } + for (int i = 0; i <= (argc - 1); i++) + { + if (strncmp(argv[i], "-V", 2) == 0 || strcmp(argv[i], "--verbose") == 0) + Config.VerboseMode = true; + else + continue; + } - VLOGD("Main function started. Setting up locale. Calling 'setlocale '\n"); - setlocale(LC_ALL, ""); + VLOGD("Main function started. Setting up locale. Calling 'setlocale '\n"); + setlocale(LC_ALL, ""); - char** args = PartitionManager::ParseStdin(argc, argv); - argc = (argc + StdinArgcTotal); - /* It's not gonna be okay even 0. */ + char** args = PartitionManager::ParseStdin(argc, argv); + argc = (argc + StdinArgcTotal); + /* It's not gonna be okay even 0. */ - /* load language */ - VLOGD("Loading language... Calling LoadLanguage()...\n"); - if (!PartitionManager::LoadLanguage()) { - cout << "LoadLanguage() process failed..!" << endl; - cout << "Loading english language!!! (pmt-defaults)" << endl; - PartitionManager::Display::UsingDispString = &PartitionManager::Display::LangEn; - PartitionManager::Strings::CurrentLanguage = "en"; - } + /* load language */ + VLOGD("Loading language... Calling LoadLanguage()...\n"); + if (!PartitionManager::LoadLanguage()) + { + cout << "LoadLanguage() process failed..!" << endl; + abort(); + } - SymbolRule = PartitionManager::Display::UsingDispString->symbol_rule; - int SearchResult = 3; + SymbolRule = PartitionManager::Display::UsingDispString->symbol_rule; + int SearchResult = 3; - PartitionManager::ParseOptions(argc, argv); - PartitionManager::ParseMainOperations(argc, argv); + PartitionManager::ParseOptions(argc, argv); + PartitionManager::ParseMainOperations(argc, argv); - if (Config.SilentEnabled && Config.VerboseMode) { - VLOGE("Silent and verbose mode is one-way.\n"); - cout << PartitionManager::Strings::ExecutingName << ": " << PartitionManager::Display::UsingDispString->s_and_v << endl; - exit(1); - } + if (Config.SilentEnabled && Config.VerboseMode) + { + VLOGE("Silent and verbose mode is one-way.\n"); + cout << PartitionManager::Strings::ExecutingName << ": " << PartitionManager::Display::UsingDispString->s_and_v << endl; + exit(1); + } - VLOGD("Checking last language switch status...\n"); - if (PartitionManager::CleanSWPoint()) { - VLOGD("Last transactions found that language was changed between.\n"); + VLOGD("Checking last language switch status...\n"); + if (PartitionManager::CleanSWPoint()) + { + VLOGD("Last transactions found that language was changed between.\n"); - if (PartitionManager::Display::UsingDispString->welcome_ != nullptr) - LOGD("%s", PartitionManager::Display::UsingDispString->welcome_); + if (PartitionManager::Display::UsingDispString->welcome_ != nullptr) + LOGD("%s", PartitionManager::Display::UsingDispString->welcome_); - LOGD("%s %s %s %s.\n", - PartitionManager::Display::UsingDispString->language, - PartitionManager::Display::UsingDispString->welcome, - PartitionManager::Display::UsingDispString->by_str, - PartitionManager::Display::UsingDispString->lang_by_s); - } + LOGD("%s %s %s %s.\n", + PartitionManager::Display::UsingDispString->language, + PartitionManager::Display::UsingDispString->welcome, + PartitionManager::Display::UsingDispString->by_str, + PartitionManager::Display::UsingDispString->lang_by_s); + } - /* check argument total */ - VLOGD("argc (arguments) total: %d.\n", argc); - if (argc < 2) - LOGE("%s.\n%s '%s --help' %s.\n", - PartitionManager::Display::UsingDispString->missing_operand, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); + /* check argument total */ + VLOGD("argc (arguments) total: %d.\n", argc); + if (argc < 2) + LOGE("%s.\n%s '%s --help' %s.\n", + PartitionManager::Display::UsingDispString->missing_operand, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); - /* stop the program if multiple viewer is used */ - if (MultipleViewers) { - VLOGE("Multiple viewer option selected!\n"); - LOGE("%s\n", PartitionManager::Display::UsingDispString->multiple_wiewers); - } + /* stop the program if multiple viewer is used */ + if (MultipleViewers) + { + VLOGE("Multiple viewer option selected!\n"); + LOGE("%s\n", PartitionManager::Display::UsingDispString->multiple_wiewers); + } - if (!Config.PartSizeViewMode && PartSizeArgSpeficed) { - VLOGE("Related flags were detected, although some partition size was not requested.\n"); - LOGE("%s.\n", PartitionManager::Display::UsingDispString->only_partsz_args); - } + if (!Config.PartSizeViewMode && PartSizeArgSpeficed) + { + VLOGE("Related flags were detected, although some partition size was not requested.\n"); + LOGE("%s.\n", PartitionManager::Display::UsingDispString->only_partsz_args); + } - if (ListSupportedLanguages) { - DisplaySupportedLanguages(); - return 0; - } + /* controller to handle viewer */ + if (ViewHelp) + { + VLOGD("The help message was asked to display. It's displayed... Calling DisplayHelp()\n"); + PartitionManager::DisplayHelp(); + return 0; + } + else if (ViewVersion) + { + VLOGD("The version info message was asked to display. It's displayed... Calling DisplayVersion()\n"); + PartitionManager::DisplayVersion(); + return 0; + } + else if (ListRequired) + { + VLOGD("Partitions were asked to be listed. It's listed... Calling CheckRoot() (root check is required), CheckDevPoint() (for generating warnings etc.) and ListPartitions()\n"); + PartitionManager::CheckRoot(); + VLOGD("CheckRoot() completed.\n"); + PartitionManager::CheckDevPoint(); + VLOGD("CheckDevPoint() completed.\n"); + return PartitionManager::ListPartitions(); + } - /* controller to handle viewer */ - if (ViewHelp) { - VLOGD("The help message was asked to display. It's displayed... Calling DisplayHelp()\n"); - PartitionManager::DisplayHelp(); - return 0; - } else if (ViewVersion) { - VLOGD("The version info message was asked to display. It's displayed... Calling DisplayVersion()\n"); - PartitionManager::DisplayVersion(); - return 0; - } else if (ListRequired) { - VLOGD("Partitions were asked to be listed. It's listed... Calling CheckRoot() (root check is required), CheckDevPoint() (for generating warnings etc.) and ListPartitions()\n"); - PartitionManager::CheckRoot(); - VLOGD("CheckRoot() completed.\n"); - PartitionManager::CheckDevPoint(); - VLOGD("CheckDevPoint() completed.\n"); - return PartitionManager::ListPartitions(); - } + if (SetLanguageReq) + { + VLOGD("The language was asked to adjust. Calling SetLanguage()...\n"); + LOGD("%s: %s\n", + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->switching_lang); + PartitionManager::SetLanguage(SpeficedLanguagePr, 0); + sleep(2); + VLOGD("SetLanguage() completed.\n"); + LOGD("%s: %s.\n", + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->please_rerun); + return 0; + } - if (SetLanguageReq) { - VLOGD("The language was asked to adjust. Calling SetLanguage()...\n"); - LOGD("%s: %s\n", - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->switching_lang); - PartitionManager::SetLanguage(SpeficedLanguagePr, 0); + if (Target.empty()) + { + VLOGE("There's no job to do.\n"); + LOGD("%s: %s.\n", + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->missing_operand); - sleep(2); + if (SomeSpec) + LOGD("%s.\n", PartitionManager::Display::UsingDispString->some_spec); - VLOGD("SetLanguage() completed.\n"); - LOGD("%s: %s.\n", - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->please_rerun); + LOGD("%s '%s --help' %s.\n", + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + exit(1); + } - return 0; - } + Base->ArgumentProcessor(SearchOnMainInt, argc, args); - if (Target.empty()) { - VLOGE("There's no job to do.\n"); - LOGD("%s: %s.\n", - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->missing_operand); + if (Config.FormatMode) + { + VLOGD("File system name specified for formatting is being contaminated...\n"); + if (PartitionManager::Strings::TargetFormatFS != "ext4" \ + && PartitionManager::Strings::TargetFormatFS != "ext3" \ + && PartitionManager::Strings::TargetFormatFS != "ext2") + { + VLOGE("Unsupported file system: %s.\n", PartitionManager::Strings::TargetFormatFS.c_str()); + LOGE("%s: %s\n", + PartitionManager::Display::UsingDispString->unsupported_fs, + PartitionManager::Strings::TargetFormatFS.c_str()); + } + } - if (SomeSpec) - LOGD("%s.\n", PartitionManager::Display::UsingDispString->some_spec); + /* checks */ + VLOGD("Checking root status... Calling CheckRoot()...\n"); + PartitionManager::CheckRoot(); + VLOGD("Checking A/B and logical device status... Calling CheckDevPoint()...\n"); + PartitionManager::CheckDevPoint(); - LOGD("%s '%s --help' %s.\n", - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); + if (LogicalSpeficy) + { + VLOGD("Logical partition type speficed. Checking partition statust's...\n"); + if (Config.UsesLogical) + Config.UseLogical = true; + else + LOGE("%s\n", PartitionManager::Display::UsingDispString->not_logical); + } - exit(1); - } + if (Config.FlashMode) + { + VLOGD("The status of the specified file for flashing is being checked...\n"); + SearchResult = PartitionManager::GetState(PartitionManager::Strings::TargetFlashFile); - if (Config.PartedMode) { - VLOGD("Checking root status... Calling CheckRoot()...\n"); - PartitionManager::CheckRoot(); + if (SearchResult == 1) + LOGE("%s: `%s': %s\n", + PartitionManager::Display::UsingDispString->cannot_stat, + PartitionManager::Strings::TargetFlashFile.c_str(), + strqerror()); + else if (SearchResult == -1) + LOGE("`%s': %s\n", + PartitionManager::Strings::TargetFlashFile.c_str(), + PartitionManager::Display::UsingDispString->not_file); + } - VLOGD("Parted terminal open requested.\n"); + /* custom search path checker */ + if (Config.UseCustomSearchPath) + { + VLOGD("The status of the \"dev\" is controlled in the specified custom /dev search path...\n"); + if (strncmp(PartitionManager::Strings::CustomSearchPath.c_str(), "/dev", 4) != 0) + { + if (!Config.ForceMode) + LOGE("%s\n", PartitionManager::Display::UsingDispString->not_in_dev); + } - if (!PartitionManager::GetDeviceFromArguments(argc, argv)) { - LOGW("%s...\n", PartitionManager::Display::UsingDispString->not_spec_device_on_args); - VLOGD("Device path not found in arguments. Searching default devices...\n"); + VLOGD("The specified custom /dev search path is being put in countless...\n"); + SearchResult = PartitionManager::GetState(PartitionManager::Strings::CustomSearchPath, "dir"); - if (!PartitionManager::SearchDefaultDevices()) - LOGE("%s.\n", PartitionManager::Display::UsingDispString->cannot_find_any_defdevice); - } else { - if (!PartitionManager::SearchDevice(PartitionManager::Strings::Device)) - LOGE("'%s': %s: %s\n", - PartitionManager::Strings::Device.c_str(), - PartitionManager::Display::UsingDispString->cannot_find_device, - strqerror()); - } + if (SearchResult == 1) + LOGE("%s: `%s': %s\n", + PartitionManager::Display::UsingDispString->cannot_stat, + PartitionManager::Strings::CustomSearchPath.c_str(), + strqerror()); + else if (SearchResult == -1) + LOGE("`%s': %s\n", + PartitionManager::Strings::CustomSearchPath.c_str(), + PartitionManager::Display::UsingDispString->not_dir); + } - int ret = PartitionManager::StartParted(); - LOGD("%s: %d.\n", - PartitionManager::Display::UsingDispString->exited_with, - ret); - - return ret; - } - - Base->ArgumentProcessor(SearchOnMainInt, argc, args); - - if (Config.FormatMode) { - VLOGD("File system name specified for formatting is being contaminated...\n"); - if (PartitionManager::Strings::TargetFormatFS != "ext4" \ - && PartitionManager::Strings::TargetFormatFS != "ext3" \ - && PartitionManager::Strings::TargetFormatFS != "ext2") { - VLOGE("Unsupported file system: %s.\n", PartitionManager::Strings::TargetFormatFS.c_str()); - LOGE("%s: %s\n", - PartitionManager::Display::UsingDispString->unsupported_fs, - PartitionManager::Strings::TargetFormatFS.c_str()); - } - } - - /* checks */ - VLOGD("Checking root status... Calling CheckRoot()...\n"); - PartitionManager::CheckRoot(); - VLOGD("Checking A/B and logical device status... Calling CheckDevPoint()...\n"); - PartitionManager::CheckDevPoint(); - - if (LogicalSpeficy) { - VLOGD("Logical partition type speficed. Checking partition statust's...\n"); - if (Config.UsesLogical) - Config.UseLogical = true; - else - LOGE("%s\n", PartitionManager::Display::UsingDispString->not_logical); - } - - if (Config.FlashMode) { - VLOGD("The status of the specified file for flashing is being checked...\n"); - SearchResult = PartitionManager::GetState(PartitionManager::Strings::TargetFlashFile); - - if (SearchResult == 1) - LOGE("%s: `%s': %s\n", - PartitionManager::Display::UsingDispString->cannot_stat, - PartitionManager::Strings::TargetFlashFile.c_str(), - strqerror()); - else if (SearchResult == -1) - LOGE("`%s': %s\n", - PartitionManager::Strings::TargetFlashFile.c_str(), - PartitionManager::Display::UsingDispString->not_file); - } - - /* custom search path checker */ - if (Config.UseCustomSearchPath) { - VLOGD("The status of the \"dev\" is controlled in the specified custom /dev search path...\n"); - if (strncmp(PartitionManager::Strings::CustomSearchPath.c_str(), "/dev", 4) != 0) { - if (!Config.ForceMode) - LOGE("%s\n", PartitionManager::Display::UsingDispString->not_in_dev); - } - - VLOGD("The specified custom /dev search path is being put in countless...\n"); - SearchResult = PartitionManager::GetState(PartitionManager::Strings::CustomSearchPath, "dir"); - - if (SearchResult == 1) - LOGE("%s: `%s': %s\n", - PartitionManager::Display::UsingDispString->cannot_stat, - PartitionManager::Strings::CustomSearchPath.c_str(), - strqerror()); - else if (SearchResult == -1) - LOGE("`%s': %s\n", - PartitionManager::Strings::CustomSearchPath.c_str(), - PartitionManager::Display::UsingDispString->not_dir); - } - - VLOGD("The partition specification status is controlled...\n"); - if (PartitionManager::Strings::TargetPartition.empty()) { - if (!Config.ForceMode) - LOGE("%s\n%s `%s --help' %s\n", - PartitionManager::Display::UsingDispString->req_part_name, - PartitionManager::Display::UsingDispString->try_h, - PartitionManager::Strings::ExecutingName.c_str(), - PartitionManager::Display::UsingDispString->for_more); - } else { - VLOGD("The call of main operations is being checked in case of the call...\n"); - if (!Target.empty()) - Base->CallTargetBaseFunction(); - } + VLOGD("The partition specification status is controlled...\n"); + if (PartitionManager::Strings::TargetPartition.empty()) + { + if (!Config.ForceMode) + LOGE("%s\n%s `%s --help' %s\n", + PartitionManager::Display::UsingDispString->req_part_name, + PartitionManager::Display::UsingDispString->try_h, + PartitionManager::Strings::ExecutingName.c_str(), + PartitionManager::Display::UsingDispString->for_more); + } + else + { + VLOGD("The call of main operations is being checked in case of the call...\n"); + if (!Target.empty()) + Base->CallTargetBaseFunction(); + } } /* end of code */ diff --git a/jni/PartitionManager/PartitionTool.cpp b/jni/PartitionManager/PartitionTool.cpp index bb0e291..36261be 100755 --- a/jni/PartitionManager/PartitionTool.cpp +++ b/jni/PartitionManager/PartitionTool.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,7 +16,7 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 +#define INC_MAIN_LIBS #include #include @@ -24,51 +24,51 @@ static int GetProperty(const char* _Nonnull property, const char* _Nonnull val1, const char* _Nullable val2 = nullptr) { - char val[PROP_VALUE_MAX]; - int len = __system_property_get(property, val); + char val[PROP_VALUE_MAX]; + int len = __system_property_get(property, val); - VLOGD("Get property value: '%s'\n", property); - if (len > 0) - { - VLOGD("%s=%s\n", property, val); + VLOGD("Get property value: '%s'\n", property); + if (len > 0) + { + VLOGD("%s=%s\n", property, val); - VLOGD("Comparing '%s' property value '%s'\n", property, val1); - if (strcmp(val, val1) == 0) - { - VLOGD("'%s' is '%s'. Stop (0).\n", property, val1); - return 0; - } - else - { - VLOGE("'%s' property is not '%s'. Comparing desired value 2 (if speficed).\n", property, val1); + VLOGD("Comparing '%s' property value '%s'\n", property, val1); + if (strcmp(val, val1) == 0) + { + VLOGD("'%s' is '%s'. Stop (0).\n", property, val1); + return 0; + } + else + { + VLOGE("'%s' property is not '%s'. Comparing desired value 2 (if speficed).\n", property, val1); - if (val2 != nullptr) - { - if (strcmp(val, val2) == 0) - { - VLOGD("'%s' is '%s'.Stop (0).\n", property, val2); - return 0; - } - else - { - VLOGE("'%s' is not '%s'. Stop (1).\n", property, val2); - return 1; - } - } - else - { - VLOGE("'%s' is not '%s'. Stop (1).\n", property, val1); - return 1; - } - } - } - else - { - VLOGE("Cannot get property '%s'. No such property or empty. Stop (1).\n", property); - return 1; - } + if (val2 != nullptr) + { + if (strcmp(val, val2) == 0) + { + VLOGD("'%s' is '%s'.Stop (0).\n", property, val2); + return 0; + } + else + { + VLOGE("'%s' is not '%s'. Stop (1).\n", property, val2); + return 1; + } + } + else + { + VLOGE("'%s' is not '%s'. Stop (1).\n", property, val1); + return 1; + } + } + } + else + { + VLOGE("Cannot get property '%s'. No such property or empty. Stop (1).\n", property); + return 1; + } - return 2; + return 2; } using namespace PartitionManager; @@ -76,17 +76,17 @@ using namespace PartitionManager; /* check parts */ void PartitionManager::CheckDevPoint(void) { - /* true = ab | false = a only */ - Config.UsesSlots = (GetProperty("ro.boot.slot_suffix", "_a", "_b") == 0 || GetProperty("ro.boot.slot", "_a", "_b") == 0) ? true : false; + /* true = ab | false = a only */ + Config.UsesSlots = (GetProperty("ro.boot.slot_suffix", "_a", "_b") == 0 || GetProperty("ro.boot.slot", "_a", "_b") == 0) ? true : false; - if (Config.UsesSlots) - VLOGW("1 warning generated: A/B partitions status.\n"); + if (Config.UsesSlots) + VLOGW("1 warning generated: A/B partitions status.\n"); - /* true = logical | false = normal */ - Config.UsesLogical = (GetProperty("ro.boot.dynamic_partitions", "true") == 0) ? true : false; + /* true = logical | false = normal */ + Config.UsesLogical = (GetProperty("ro.boot.dynamic_partitions", "true") == 0) ? true : false; - if (Config.UsesLogical) - VLOGW("1 warning generated: logical partitions status.\n"); + if (Config.UsesLogical) + VLOGW("1 warning generated: logical partitions status.\n"); } /* end of code */ diff --git a/jni/PartitionManager/Root.cpp b/jni/PartitionManager/Root.cpp index f13eff2..8646752 100755 --- a/jni/PartitionManager/Root.cpp +++ b/jni/PartitionManager/Root.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,22 +16,22 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_DEBUGERS 1 -#define INC_STRINGKEYS 1 +#define INC_MAIN_LIBS +#define INC_DEBUGERS +#define INC_STRINGKEYS #include /* root checker function */ void PartitionManager::CheckRoot(void) { - VLOGD("Trying to get UID with 'getuid '\n"); + VLOGD("Trying to get UID with 'getuid '\n"); - if (getuid() != 0) - { - VLOGE("You are not superuser!\n"); - LOGE("%s\n", PartitionManager::Display::UsingDispString->no_root); - } + if (getuid() != 0) + { + VLOGE("You are not superuser!\n"); + LOGE("%s\n", PartitionManager::Display::UsingDispString->no_root); + } } /* end of code */ diff --git a/jni/PartitionManager/Tools.cpp b/jni/PartitionManager/Tools.cpp index 89e31c2..51bdbc7 100755 --- a/jni/PartitionManager/Tools.cpp +++ b/jni/PartitionManager/Tools.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,12 +16,12 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_STAT 1 -#define INC_LIBGEN 1 -#define INC_DEBUGERS 1 -#define INC_TOOLS_REQS 1 -#define INC_STRINGKEYS 1 +#define INC_MAIN_LIBS +#define INC_STAT +#define INC_LIBGEN +#define INC_DEBUGERS +#define INC_TOOLS_REQS +#define INC_STRINGKEYS #include #include @@ -36,69 +36,70 @@ namespace PartitionManager { * it is meant to calculate the size of the quickly given file. * its purpose is for rapid processing */ -static inline long long +static long long CalculateSizeLongLong(const string& fp) { - VLOGD("Calculating file size: `%s'\n", fp.c_str()); + VLOGD("Calculating file size: `%s'\n", fp.c_str()); - VLOGD("Reading `%s' with 'ifstream '\n", fp.c_str()); - ifstream file(fp, ios::binary | ios::ate); + VLOGD("Reading `%s' with 'ifstream '\n", fp.c_str()); + ifstream file(fp, ios::binary | ios::ate); - return (!file) ? -1 : static_cast(file.tellg()); + return (!file) ? -1 : static_cast(file.tellg()); } /** * error that the partition is not found. * It's for quick action. */ -static inline void +static void PartitionNotFound(const string& part) { LOGE("%s: %s\n", part.c_str(), Display::UsingDispString->part_not_found); } /* the partitions are meant to quickly find. */ -static inline void +static void SearchPartition(const string& fp) { - VLOGD("Calling GetState()...\n"); - static int op = GetState(fp, "blk"); + VLOGD("Calling GetState()...\n"); + static int op = GetState(fp, "blk"); - if (op == 1) - PartitionNotFound(basename(fp.c_str())); - else if (op == -1 && !Config.ForceMode) - LOGE("%s\n", Display::UsingDispString->not_block); + if (op == 1) + PartitionNotFound(basename(fp.c_str())); + else if (op == -1 && !Config.ForceMode) + LOGE("%s\n", Display::UsingDispString->not_block); } static void PrintInfo(const ushort_t& pcode, const double& psz, const double& fsz) { - LOGD("##########################################\n"); - LOGD("# --> %s: %s\n", - Display::UsingDispString->part_name, - Strings::TargetPartition.c_str()); - LOGD("# --> %s: %s\n", - Display::UsingDispString->part_type, - (Config.UseLogical) ? Display::UsingDispString->yes : Display::UsingDispString->no); + LOGD("##########################################\n"); + LOGD("# --> %s: %s\n", + Display::UsingDispString->part_name, + Strings::TargetPartition.c_str()); + LOGD("# --> %s: %s\n", + Display::UsingDispString->part_type, + (Config.UseLogical) ? Display::UsingDispString->yes : Display::UsingDispString->no); - if (psz != -1) - LOGD("# --> %s: %.2fMB\n", - Display::UsingDispString->part_disk_sz, - psz); - else - LOGD("# --> %s: %s\n", - Display::UsingDispString->warn, - Display::UsingDispString->part_disk_sz_fail); + if (psz != -1) + LOGD("# --> %s: %.2fMB\n", + Display::UsingDispString->part_disk_sz, + psz); + else + LOGD("# --> %s: %s\n", + Display::UsingDispString->warn, + Display::UsingDispString->part_disk_sz_fail); - if (pcode == 3) { - if (fsz != -1) - LOGD("# --> %s: %.2fMB\n", - Display::UsingDispString->flash_file_sz, - fsz); - else - LOGW("# --> %s: %s\n", - Display::UsingDispString->warn, - Display::UsingDispString->flash_file_sz_fail); - } + if (pcode == 3) + { + if (fsz != -1) + LOGD("# --> %s: %.2fMB\n", + Display::UsingDispString->flash_file_sz, + fsz); + else + LOGW("# --> %s: %s\n", + Display::UsingDispString->warn, + Display::UsingDispString->flash_file_sz_fail); + } - LOGD("##########################################\n"); + LOGD("##########################################\n"); } template @@ -108,47 +109,48 @@ IsDoubleOf1024(T size) { return size % (T)1024 == 0; } static void ReadAndWrite(const string& FNameForMsg, const int& bfsize) { - long long copiedData = 0; - char buffer[bfsize]; + long long copiedData = 0; + char buffer[bfsize]; - while (sourceF.read(buffer, bfsize) && copiedData < Count) { - streamsize readed_data = sourceF.gcount(); - targetF.write(buffer, readed_data); + while (sourceF.read(buffer, bfsize) && copiedData < Count) + { + streamsize readed_data = sourceF.gcount(); + targetF.write(buffer, readed_data); - if (targetF.fail() || targetF.bad()) - LOGF("%s: %s: %s\n", - Display::UsingDispString->not_write, - FNameForMsg.c_str(), - strqerror()); + if (targetF.fail() || targetF.bad()) + LOGF("%s: %s: %s\n", + Display::UsingDispString->not_write, + FNameForMsg.c_str(), + strqerror()); - copiedData += readed_data; - } + copiedData += readed_data; + } } static void OpenSourceFile(const string& fp) { - VLOGD("Trying to open `%s' with 'open '.\n", fp.c_str()); + VLOGD("Trying to open `%s' with 'open '.\n", fp.c_str()); - sourceF.open(fp, ios::binary | ios::in); - if (!sourceF.is_open()) - LOGE("%s: %s: %s\n", - Display::UsingDispString->not_read, - fp.c_str(), - strqerror()); + sourceF.open(fp, ios::binary | ios::in); + if (!sourceF.is_open()) + LOGE("%s: %s: %s\n", + Display::UsingDispString->not_read, + fp.c_str(), + strqerror()); } static void OpenTargetFile(const string& fp) { - VLOGD("Trying to open `%s' with 'open '.\n", fp.c_str()); + VLOGD("Trying to open `%s' with 'open '.\n", fp.c_str()); - targetF.open(fp, ios::binary | ios::out); - if (!targetF.is_open()) - LOGE("%s: %s: %s\n", - Display::UsingDispString->not_gen, - fp.c_str(), - strqerror()); + targetF.open(fp, ios::binary | ios::out); + if (!targetF.is_open()) + LOGE("%s: %s: %s\n", + Display::UsingDispString->not_gen, + fp.c_str(), + strqerror()); } } /* namespace PartitionManager */ @@ -157,159 +159,172 @@ using namespace PartitionManager; int PartitionManager::PartitionManagerMain(const ushort_t& progress_code) { - /* Some required variables */ - string accessPrefix, opName; + /* Some required variables */ + string accessPrefix, opName; - if (Config.UseLogical) - accessPrefix = "/dev/block/mapper/" + Strings::TargetPartition; - else - accessPrefix = (Config.UseCustomSearchPath) ? (Strings::CustomSearchPath) + ("/") + (Strings::TargetPartition) : ("/dev/block/by-name/") + (Strings::TargetPartition); + if (Config.UseLogical) + accessPrefix = "/dev/block/mapper/" + Strings::TargetPartition; + else + accessPrefix = (Config.UseCustomSearchPath) ? (Strings::CustomSearchPath) + ("/") + (Strings::TargetPartition) : ("/dev/block/by-name/") + (Strings::TargetPartition); - VLOGD("Calling SearchPartition() for searching partition (path); `%s'\n", accessPrefix.c_str()); - SearchPartition(accessPrefix); + VLOGD("Calling SearchPartition() for searching partition (path); `%s'\n", accessPrefix.c_str()); + SearchPartition(accessPrefix); - Count = (long long)(CalculateSizeLongLong(accessPrefix) + ((1024 * 1024) * 4)); - const int BFSIZE = (IsDoubleOf1024(CalculateSizeLongLong(accessPrefix))) ? 1024 : 1; - double FlashFileSize = 0; + Count = (long long)(CalculateSizeLongLong(accessPrefix) + ((1024 * 1024) * 4)); + const int BFSIZE = (IsDoubleOf1024(CalculateSizeLongLong(accessPrefix))) ? 1024 : 1; + double FlashFileSize = 0; - double PartitionSize = (double)(static_cast(CalculateSizeLongLong(accessPrefix)) / (1024 * 1024)); - if (!Strings::TargetFlashFile.empty()) - FlashFileSize = (double)(static_cast(CalculateSizeLongLong(Strings::TargetFlashFile)) / (1024 * 1024)); + double PartitionSize = (double)(static_cast(CalculateSizeLongLong(accessPrefix)) / (1024 * 1024)); + if (!Strings::TargetFlashFile.empty()) + FlashFileSize = (double)(static_cast(CalculateSizeLongLong(Strings::TargetFlashFile)) / (1024 * 1024)); - if (progress_code != 4) PrintInfo(progress_code, PartitionSize, FlashFileSize); + if (progress_code != 4) PrintInfo(progress_code, PartitionSize, FlashFileSize); - if (progress_code == 1) { - OpenSourceFile(accessPrefix); + if (progress_code == 1) + { + OpenSourceFile(accessPrefix); - /* determine output */ - if (Strings::OutputName == Strings::TargetPartition) { - opName = Strings::OutputName + ".img"; - VLOGW("Output not speficed. Selecting automaticly.\n"); - LOGW("%s: %s\n", - Display::UsingDispString->out_not_spec, - opName.c_str()); - } else - opName = Strings::OutputName; + /* determine output */ + if (Strings::OutputName == Strings::TargetPartition) + { + opName = Strings::OutputName + ".img"; + VLOGW("Output not speficed. Selecting automaticly.\n"); + LOGW("%s: %s\n", + Display::UsingDispString->out_not_spec, + opName.c_str()); + } + else + opName = Strings::OutputName; - VLOGD("Checking output status...\n"); - if (GetState(opName) == 0) - LOGE("'%s': File exits.\n", opName.c_str()); + VLOGD("Checking output status...\n"); + if (GetState(opName) == 0) + LOGE("'%s': File exits.\n", opName.c_str()); - OpenTargetFile(opName); + OpenTargetFile(opName); - VLOGD("Read (partition) and write (output) 'read, write '\n"); - ReadAndWrite(opName.c_str(), BFSIZE); + VLOGD("Read (partition) and write (output) 'read, write '\n"); + ReadAndWrite(opName.c_str(), BFSIZE); - /* close files */ - sourceF.close(); - targetF.close(); + /* close files */ + sourceF.close(); + targetF.close(); - LOGD("%s: %s\n", - Display::UsingDispString->success_backup, - opName.c_str()); - } else if (progress_code == 2) { - if (PartitionSize != -1 && FlashFileSize != -1) { - if (FlashFileSize > PartitionSize && !Config.ForceMode) - LOGE("%s\n", Display::UsingDispString->ffile_more_part); - } + LOGD("%s: %s\n", + Display::UsingDispString->success_backup, + opName.c_str()); + } + else if (progress_code == 2) + { + if (PartitionSize != -1 && FlashFileSize != -1) + { + if (FlashFileSize > PartitionSize && !Config.ForceMode) + LOGE("%s\n", Display::UsingDispString->ffile_more_part); + } - OpenSourceFile(Strings::TargetFlashFile); - OpenTargetFile(accessPrefix); + OpenSourceFile(Strings::TargetFlashFile); + OpenTargetFile(accessPrefix); - VLOGD("Read (flash file) and write (partition) 'read, write '\n"); - ReadAndWrite(accessPrefix.c_str(), BFSIZE); + VLOGD("Read (flash file) and write (partition) 'read, write '\n"); + ReadAndWrite(accessPrefix.c_str(), BFSIZE); - sourceF.close(); - targetF.close(); + sourceF.close(); + targetF.close(); - LOGD("%s.\n", Display::UsingDispString->success_flash); - } else if (progress_code == 3) { - /* get target partition block size */ - VLOGD("Getting block size '%s' with 'statfs '\n", accessPrefix.c_str()); + LOGD("%s.\n", Display::UsingDispString->success_flash); + } + else if (progress_code == 3) + { + /* get target partition block size */ + VLOGD("Getting block size '%s' with 'statfs '\n", accessPrefix.c_str()); - struct statfs file_sys_inf; - if (statfs(accessPrefix.c_str(), &file_sys_inf) != 0) - LOGE("%s\n", Display::UsingDispString->cannot_get_bsz); + struct statfs file_sys_inf; + if (statfs(accessPrefix.c_str(), &file_sys_inf) != 0) + LOGE("%s\n", Display::UsingDispString->cannot_get_bsz); - /* generate mke2fs argument list */ - VLOGD("Generating mke2fs argument list...\n"); - char bsize[25] = ""; + /* generate mke2fs argument list */ + VLOGD("Generating mke2fs argument list...\n"); + char bsize[25] = ""; #ifdef __LP64__ - sprintf(bsize, "%lu", file_sys_inf.f_bsize); + sprintf(bsize, "%lu", file_sys_inf.f_bsize); #else - sprintf(bsize, "%u", file_sys_inf.f_bsize); + sprintf(bsize, "%u", file_sys_inf.f_bsize); #endif - char* arguments[] = { - "mke2fs-static", - "-Fq", - "-t", - (char*)Strings::TargetFormatFS.c_str(), - "-b", - (char*)bsize, - (char*)accessPrefix.c_str(), - }; + char* arguments[] = { + "mke2fs-static", + "-Fq", + "-t", + (char*)Strings::TargetFormatFS.c_str(), + "-b", + (char*)bsize, + (char*)accessPrefix.c_str(), + }; - LOGD("%s: `%s'. %s: %s\n", - Display::UsingDispString->formatting, - accessPrefix.c_str(), - Display::UsingDispString->fs_str, - Strings::TargetFormatFS.c_str()); + LOGD("%s: `%s'. %s: %s\n", + Display::UsingDispString->formatting, + accessPrefix.c_str(), + Display::UsingDispString->fs_str, + Strings::TargetFormatFS.c_str()); - /* run mke2fs */ - VLOGD("Calling mke2fs_main...\n"); - if (mke2fs_main(sizeof(arguments), arguments) != 0) - LOGF("%s\n", Display::UsingDispString->format_fail); + /* run mke2fs */ + VLOGD("Calling mke2fs_main...\n"); + if (mke2fs_main(sizeof(arguments), arguments) != 0) + LOGF("%s\n", Display::UsingDispString->format_fail); - LOGD("%s.\n", Display::UsingDispString->success_format); - } else if (progress_code == 4) { - VLOGD("Getting size of '%s' (long long)\n", accessPrefix.c_str()); - long long psize = (long long)CalculateSizeLongLong(accessPrefix); + LOGD("%s.\n", Display::UsingDispString->success_format); + } + else if (progress_code == 4) + { + VLOGD("Getting size of '%s' (long long)\n", accessPrefix.c_str()); + long long psize = (long long)CalculateSizeLongLong(accessPrefix); - if (psize == -1) { - VLOGE("Cannot get partition size!\n"); - LOGE("%s: %s\n", - Display::UsingDispString->fail_get_psize, - strqerror()); - } + if (psize == -1) + { + VLOGE("Cannot get partition size!\n"); + LOGE("%s: %s\n", + Display::UsingDispString->fail_get_psize, + strqerror()); + } - static char* SizeType; - static char Holder[50]; + static char* SizeType; + static char Holder[50]; - if (!Config.OnlyViewSize) { - sprintf(Holder, "%s: ", Strings::TargetPartition.c_str()); + if (!Config.OnlyViewSize) + { + sprintf(Holder, "%s: ", Strings::TargetPartition.c_str()); - if (Integers::PartSizeViewType == VIEW_AS_BYTE) SizeType = "B"; - else if (Integers::PartSizeViewType == VIEW_AS_KIB) SizeType = "KB"; - else if (Integers::PartSizeViewType == VIEW_AS_MIB) SizeType = "MB"; - else if (Integers::PartSizeViewType == VIEW_AS_GIB) SizeType = "GB"; - } else - SizeType = ""; + if (Integers::PartSizeViewType == VIEW_AS_BYTE) SizeType = "B"; + else if (Integers::PartSizeViewType == VIEW_AS_KIB) SizeType = "KB"; + else if (Integers::PartSizeViewType == VIEW_AS_MIB) SizeType = "MB"; + else if (Integers::PartSizeViewType == VIEW_AS_GIB) SizeType = "GB"; + } + else + SizeType = ""; - VLOGD("Displaying partition size...\n"); + VLOGD("Displaying partition size...\n"); - if (Integers::PartSizeViewType == VIEW_AS_BYTE) - LOGD("%s%llu%s\n", - Holder, - (long long)psize, - SizeType); - else if (Integers::PartSizeViewType == VIEW_AS_KIB) - LOGD("%s%lu%s\n", - Holder, - (long)(psize / 1024), - SizeType); - else if (Integers::PartSizeViewType == VIEW_AS_MIB) - LOGD("%s%.2f%s\n", - Holder, - (double)(static_cast(psize) / (1024 * 1024)), - SizeType); - else if (Integers::PartSizeViewType == VIEW_AS_GIB) - LOGD("%s%.2f%s\n", - Holder, - (double)(static_cast(psize) / (1024 * 1024 * 1024)), - SizeType); - } + if (Integers::PartSizeViewType == VIEW_AS_BYTE) + LOGD("%s%llu%s\n", + Holder, + (long long)psize, + SizeType); + else if (Integers::PartSizeViewType == VIEW_AS_KIB) + LOGD("%s%lu%s\n", + Holder, + (long)(psize / 1024), + SizeType); + else if (Integers::PartSizeViewType == VIEW_AS_MIB) + LOGD("%s%.2f%s\n", + Holder, + (double)(static_cast(psize) / (1024 * 1024)), + SizeType); + else if (Integers::PartSizeViewType == VIEW_AS_GIB) + LOGD("%s%.2f%s\n", + Holder, + (double)(static_cast(psize) / (1024 * 1024 * 1024)), + SizeType); + } - return 0; + return 0; } /* end of code */ diff --git a/jni/PartitionManager/Version.cpp b/jni/PartitionManager/Version.cpp index 7f6e51e..0e0c788 100755 --- a/jni/PartitionManager/Version.cpp +++ b/jni/PartitionManager/Version.cpp @@ -7,7 +7,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -16,9 +16,9 @@ * limitations under the License. */ -#define INC_MAIN_LIBS 1 -#define INC_STRINGKEYS 1 -#define VERSION_CPP 1 +#define INC_MAIN_LIBS +#define INC_STRINGKEYS +#define VERSIONING #include #include @@ -27,34 +27,33 @@ using namespace PartitionManager; void PartitionManager::DisplayVersion(void) { - VLOGD("Printing main info...\n"); - LOGD("%s %s %d.%d.%d (%d%d%d / C++) ", - Strings::ExecutingName.c_str(), - Display::UsingDispString->version_str, - PMT_MAJOR, - PMT_MINOR, - PMT_PATCHLEVEL, - PMT_MAJOR, - PMT_MINOR, - PMT_PATCHLEVEL); + VLOGD("Printing main info...\n"); + LOGD("%s %s %d.%d.%d (%d%d%d / C++) ", + Strings::ExecutingName.c_str(), + Display::UsingDispString->version_str, + PMT_MAJOR, + PMT_MINOR, + PMT_PATCHLEVEL, + PMT_MAJOR, + PMT_MINOR, + PMT_PATCHLEVEL); #ifdef __LP64__ - LOGD("64-bit %s\n", Display::UsingDispString->bin_str); + LOGD("64-bit %s\n", Display::UsingDispString->bin_str); #else - LOGD("32-bit %s\n", Display::UsingDispString->bin_str); + LOGD("32-bit %s\n", Display::UsingDispString->bin_str); #endif - LOGD("mke2fs %s %s (%s)\n", - Display::UsingDispString->version_str, - E2FSPROGS_VERSION_PRIVATE, - E2FSPROGS_DATE); - LOGD("libext2fs %s %s (%s / %s)\n", - Display::UsingDispString->version_str, - E2FSPROGS_VERSION_PRIVATE, - EXT2FS_LIB_VERSION_PRIVATE, - E2FSPROGS_DATE); - - LOGD("\n%s\n", __NDK_CXX_VERSION__); + LOGD("mke2fs %s %s (%s)\n", + Display::UsingDispString->version_str, + E2FSPROGS_VERSION_PRIVATE, + E2FSPROGS_DATE); + LOGD("libext2fs %s %s (%s / %s)\n", + Display::UsingDispString->version_str, + E2FSPROGS_VERSION_PRIVATE, + EXT2FS_LIB_VERSION_PRIVATE, + E2FSPROGS_DATE); + LOGD("\n%s\n", __NDK_CXX_VERSION__); } /* end of code */ diff --git a/jni/e2fsprogs/Makefile b/jni/e2fsprogs/Makefile deleted file mode 100755 index df5fe9e..0000000 --- a/jni/e2fsprogs/Makefile +++ /dev/null @@ -1,382 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -##### -# sub-make for building e2fsprogs (built-in mke2fs) -##### - -# Include required files -include ../../build/config/env.mk -ifeq ($(INC_OLDENV),true) -include ../../build/config/oldenv.mk -endif - -# Some variables, flags etc. -E := @ echo -INCLUDE := $(realpath ../../include/e2fsprogs) -E2FSPROGS_DEFAULT_CFLAGS = \ - -std=c17 \ - -Wall \ - -Werror \ - -Wno-pointer-arith \ - -Wno-sign-compare \ - -Wno-type-limits \ - -Wno-typedef-redefinition \ - -Wno-unused-parameter \ - -Wno-unused-command-line-argument \ - -Wno-nullability-completeness \ - -Wno-macro-redefined \ - -fPIC \ - -pthread \ - -include $(INCLUDE)/../PartitionManager/Alternatives.h -INCLUDE_DIRS := \ - $(INCLUDE)/misc \ - $(INCLUDE)/blkid \ - $(INCLUDE)/e2p \ - $(INCLUDE)/et \ - $(INCLUDE)/ext2fs \ - $(INCLUDE)/ss \ - $(INCLUDE)/support \ - $(INCLUDE)/uuid \ - $(INCLUDE)/e2fsck \ - $(INCLUDE) -INC_DIRS := $(foreach dir,$(INCLUDE_DIRS),$(shell echo -I$(dir))) -CFLAGS := $(E2FSPROGS_DEFAULT_CFLAGS) $(INC_DIRS) -ARFLAGS := rcs -OUT := $(realpath ../../out/e2fsprogs) -MKE2FS := $(CURDIR)/mke2fs -LIB := $(CURDIR)/lib -LIBEXT2FS := $(LIB)/ext2fs -LIBEXT2_UUID := $(LIB)/uuid -LIBEXT2_E2P := $(LIB)/e2p -LIBEXT2_QUOTA := $(LIB)/support -LIBEXT2_MISC := $(LIB)/misc -LIBEXT2_COM_ERR := $(LIB)/et -LIBEXT2_BLKID := $(LIB)/blkid - -# Source list of mke2fs -MKE2FS_SRCS := \ - $(MKE2FS)/default_profile.c \ - $(MKE2FS)/mk_hugefiles.c \ - $(MKE2FS)/mke2fs.c \ - $(MKE2FS)/util.c - -# Source list of libext2fs -LIBEXT2FS_SRCS := \ - $(LIBEXT2FS)/alloc.c \ - $(LIBEXT2FS)/alloc_sb.c \ - $(LIBEXT2FS)/alloc_stats.c \ - $(LIBEXT2FS)/alloc_tables.c \ - $(LIBEXT2FS)/atexit.c \ - $(LIBEXT2FS)/badblocks.c \ - $(LIBEXT2FS)/bb_inode.c \ - $(LIBEXT2FS)/bitmaps.c \ - $(LIBEXT2FS)/bitops.c \ - $(LIBEXT2FS)/blkmap64_ba.c \ - $(LIBEXT2FS)/blkmap64_rb.c \ - $(LIBEXT2FS)/blknum.c \ - $(LIBEXT2FS)/block.c \ - $(LIBEXT2FS)/bmap.c \ - $(LIBEXT2FS)/check_desc.c \ - $(LIBEXT2FS)/crc16.c \ - $(LIBEXT2FS)/crc32c.c \ - $(LIBEXT2FS)/csum.c \ - $(LIBEXT2FS)/closefs.c \ - $(LIBEXT2FS)/dblist.c \ - $(LIBEXT2FS)/dblist_dir.c \ - $(LIBEXT2FS)/digest_encode.c \ - $(LIBEXT2FS)/dirblock.c \ - $(LIBEXT2FS)/dirhash.c \ - $(LIBEXT2FS)/dir_iterate.c \ - $(LIBEXT2FS)/dupfs.c \ - $(LIBEXT2FS)/expanddir.c \ - $(LIBEXT2FS)/ext2_err.c \ - $(LIBEXT2FS)/ext_attr.c \ - $(LIBEXT2FS)/extent.c \ - $(LIBEXT2FS)/fallocate.c \ - $(LIBEXT2FS)/fileio.c \ - $(LIBEXT2FS)/finddev.c \ - $(LIBEXT2FS)/flushb.c \ - $(LIBEXT2FS)/freefs.c \ - $(LIBEXT2FS)/gen_bitmap.c \ - $(LIBEXT2FS)/gen_bitmap64.c \ - $(LIBEXT2FS)/get_num_dirs.c \ - $(LIBEXT2FS)/get_pathname.c \ - $(LIBEXT2FS)/getsize.c \ - $(LIBEXT2FS)/getsectsize.c \ - $(LIBEXT2FS)/hashmap.c \ - $(LIBEXT2FS)/i_block.c \ - $(LIBEXT2FS)/icount.c \ - $(LIBEXT2FS)/imager.c \ - $(LIBEXT2FS)/ind_block.c \ - $(LIBEXT2FS)/initialize.c \ - $(LIBEXT2FS)/inline.c \ - $(LIBEXT2FS)/inline_data.c \ - $(LIBEXT2FS)/inode.c \ - $(LIBEXT2FS)/io_manager.c \ - $(LIBEXT2FS)/ismounted.c \ - $(LIBEXT2FS)/link.c \ - $(LIBEXT2FS)/llseek.c \ - $(LIBEXT2FS)/lookup.c \ - $(LIBEXT2FS)/mmp.c \ - $(LIBEXT2FS)/mkdir.c \ - $(LIBEXT2FS)/mkjournal.c \ - $(LIBEXT2FS)/namei.c \ - $(LIBEXT2FS)/native.c \ - $(LIBEXT2FS)/newdir.c \ - $(LIBEXT2FS)/nls_utf8.c \ - $(LIBEXT2FS)/openfs.c \ - $(LIBEXT2FS)/progress.c \ - $(LIBEXT2FS)/punch.c \ - $(LIBEXT2FS)/qcow2.c \ - $(LIBEXT2FS)/rbtree.c \ - $(LIBEXT2FS)/read_bb.c \ - $(LIBEXT2FS)/read_bb_file.c \ - $(LIBEXT2FS)/res_gdt.c \ - $(LIBEXT2FS)/rw_bitmaps.c \ - $(LIBEXT2FS)/sha256.c \ - $(LIBEXT2FS)/sha512.c \ - $(LIBEXT2FS)/swapfs.c \ - $(LIBEXT2FS)/symlink.c \ - $(LIBEXT2FS)/undo_io.c \ - $(LIBEXT2FS)/unix_io.c \ - $(LIBEXT2FS)/sparse_io.c \ - $(LIBEXT2FS)/unlink.c \ - $(LIBEXT2FS)/valid_blk.c \ - $(LIBEXT2FS)/version.c \ - $(LIBEXT2FS)/test_io.c - -# Source list of libext2_uuid -LIBEXT2_UUID_SRCS := \ - $(LIBEXT2_UUID)/clear.c \ - $(LIBEXT2_UUID)/compare.c \ - $(LIBEXT2_UUID)/copy.c \ - $(LIBEXT2_UUID)/gen_uuid.c \ - $(LIBEXT2_UUID)/isnull.c \ - $(LIBEXT2_UUID)/pack.c \ - $(LIBEXT2_UUID)/parse.c \ - $(LIBEXT2_UUID)/unpack.c \ - $(LIBEXT2_UUID)/unparse.c \ - $(LIBEXT2_UUID)/uuid_time.c - -# Source list of libext2_blkid -LIBEXT2_BLKID_SRCS := \ - $(LIBEXT2_BLKID)/cache.c \ - $(LIBEXT2_BLKID)/dev.c \ - $(LIBEXT2_BLKID)/devname.c \ - $(LIBEXT2_BLKID)/devno.c \ - $(LIBEXT2_BLKID)/getsize.c \ - $(LIBEXT2_BLKID)/llseek.c \ - $(LIBEXT2_BLKID)/probe.c \ - $(LIBEXT2_BLKID)/read.c \ - $(LIBEXT2_BLKID)/resolve.c \ - $(LIBEXT2_BLKID)/save.c \ - $(LIBEXT2_BLKID)/tag.c \ - $(LIBEXT2_BLKID)/version.c - -# Source list of libext2_e2p -LIBEXT2_E2P_SRCS := \ - $(LIBEXT2_E2P)/crypto_mode.c \ - $(LIBEXT2_E2P)/encoding.c \ - $(LIBEXT2_E2P)/errcode.c \ - $(LIBEXT2_E2P)/feature.c \ - $(LIBEXT2_E2P)/fgetflags.c \ - $(LIBEXT2_E2P)/fgetproject.c \ - $(LIBEXT2_E2P)/fgetversion.c \ - $(LIBEXT2_E2P)/fsetflags.c \ - $(LIBEXT2_E2P)/fsetproject.c \ - $(LIBEXT2_E2P)/fsetversion.c \ - $(LIBEXT2_E2P)/getflags.c \ - $(LIBEXT2_E2P)/getversion.c \ - $(LIBEXT2_E2P)/hashstr.c \ - $(LIBEXT2_E2P)/iod.c \ - $(LIBEXT2_E2P)/ljs.c \ - $(LIBEXT2_E2P)/ls.c \ - $(LIBEXT2_E2P)/mntopts.c \ - $(LIBEXT2_E2P)/ostype.c \ - $(LIBEXT2_E2P)/parse_num.c \ - $(LIBEXT2_E2P)/pe.c \ - $(LIBEXT2_E2P)/percent.c \ - $(LIBEXT2_E2P)/pf.c \ - $(LIBEXT2_E2P)/ps.c \ - $(LIBEXT2_E2P)/setflags.c \ - $(LIBEXT2_E2P)/setversion.c \ - $(LIBEXT2_E2P)/uuid.c - -# Source list of libext2_quota -LIBEXT2_QUOTA_SRCS := \ - $(LIBEXT2_QUOTA)/devname.c \ - $(LIBEXT2_QUOTA)/dict.c \ - $(LIBEXT2_QUOTA)/mkquota.c \ - $(LIBEXT2_QUOTA)/parse_qtype.c \ - $(LIBEXT2_QUOTA)/plausible.c \ - $(LIBEXT2_QUOTA)/prof_err.c \ - $(LIBEXT2_QUOTA)/profile.c \ - $(LIBEXT2_QUOTA)/profile_helpers.c \ - $(LIBEXT2_QUOTA)/quotaio.c \ - $(LIBEXT2_QUOTA)/quotaio_tree.c \ - $(LIBEXT2_QUOTA)/quotaio_v2.c - -# Source od libext2_misc -LIBEXT2_MISC_SRCS := $(LIBEXT2_MISC)/create_inode.c - -# Source list of libext2_com_err -LIBEXT2_COM_ERR_SRCS := \ - $(LIBEXT2_COM_ERR)/com_err.c \ - $(LIBEXT2_COM_ERR)/com_right.c \ - $(LIBEXT2_COM_ERR)/error_message.c \ - $(LIBEXT2_COM_ERR)/et_name.c \ - $(LIBEXT2_COM_ERR)/init_et.c - -# Object lists -MKE2FS_OBJS := $(MKE2FS_SRCS:.c=.o) -LIBEXT2FS_OBJS := $(LIBEXT2FS_SRCS:.c=.o) -LIBEXT2_UUID_OBJS := $(LIBEXT2_UUID_SRCS:.c=.o) -LIBEXT2_BLKID_OBJS := $(LIBEXT2_BLKID_SRCS:.c=.o) -LIBEXT2_E2P_OBJS := $(LIBEXT2_E2P_SRCS:.c=.o) -LIBEXT2_QUOTA_OBJS := $(LIBEXT2_QUOTA_SRCS:.c=.o) -LIBEXT2_MISC_OBJS := $(LIBEXT2_MISC_SRCS:.c=.o) -LIBEXT2_COM_ERR_OBJS := $(LIBEXT2_COM_ERR_SRCS:.c=.o) - -# Compiler flags (CFLAGS) -LIBEXT2FS_CFLAGS := -Wno-unused-but-set-variable -LIBEXT2_E2P_CFLAGS := -Wno-error=attributes -LIBEXT2_MISC_CFLAGS := -Wno-error=format-extra-args -LIBEXT2_BLKID_CFLAGS := \ - -Wno-error=attributes \ - -Wno-error=pointer-sign \ - -Wno-unused-but-set-variable \ - -fno-strict-aliasing - -# Full object list -OBJS_ALL := \ - $(MKE2FS_OBJS) \ - $(LIBEXT2FS_OBJS) \ - $(LIBEXT2_BLKID_OBJS) \ - $(LIBEXT2_UUID_OBJS) \ - $(LIBEXT2_E2P_OBJS) \ - $(LIBEXT2_QUOTA_OBJS) \ - $(LIBEXT2_MISC_OBJS) \ - $(LIBEXT2_COM_ERR_OBJS) - -# Progress list -PROGRESS_LIST := \ - $(LIBEXT2_BLKID_OBJS) \ - libext2_blkid_ar \ - $(LIBEXT2_UUID_OBJS) \ - libext2_uuid_ar \ - $(LIBEXT2_E2P_OBJS) \ - libext2_e2p_ar \ - $(LIBEXT2FS_OBJS) \ - libext2fs_ar \ - $(LIBEXT2_QUOTA_OBJS) \ - libext2_quota_ar \ - $(LIBEXT2_MISC_OBJS) \ - libext2_misc_ar \ - $(LIBEXT2_COM_ERR_OBJS) \ - libext2_com_err_ar \ - $(MKE2FS_OBJS) \ - mke2fs_dummy_ld - -.PHONY: all -all: $(PROGRESS_LIST) - -# Cleaner -.PHONY: clean -clean: - @ rm -rf $(OBJS_ALL) - -####################################### -# 'MAKE' TARGETS FOR BUILDING OBJECTS # -####################################### - -$(MKE2FS)/%.o: $(MKE2FS)/%.c - $(E) " CC e2fsprogs/`basename $(MKE2FS)`/`basename $@`" - @ $(CC) -c $(CFLAGS) $(MKE2FS_CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2FS)/%.o: $(LIBEXT2FS)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2FS)`/`basename $@`" - @ $(CC) -c $(CFLAGS) $(LIBEXT2FS_CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2_BLKID)/%.o: $(LIBEXT2_BLKID)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2_BLKID)`/`basename $@`" - @ $(CC) -c $(CFLAGS) $(LIBEXT2_BLKID_CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2_E2P)/%.o: $(LIBEXT2_E2P)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2_E2P)`/`basename $@`" - @ $(CC) -c $(CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2_UUID)/%.o: $(LIBEXT2_UUID)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2_UUID)`/`basename $@`" - @ $(CC) -c $(CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2_QUOTA)/%.o: $(LIBEXT2_QUOTA)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2_QUOTA)`/`basename $@`" - @ $(CC) -c $(CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2_MISC)/%.o: $(LIBEXT2_MISC)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2_MISC)`/`basename $@`" - @ $(CC) -c $(CFLAGS) $(LIBEXT2_MISC_CFLAGS) "$<" -o "$@" || exit 1 - -$(LIBEXT2_COM_ERR)/%.o: $(LIBEXT2_COM_ERR)/%.c - $(E) " CC e2fsprogs/lib/`basename $(LIBEXT2_COM_ERR)`/`basename $@`" - @ $(CC) -c $(CFLAGS) "$<" -o "$@" || exit 1 - -############################################# -# 'MAKE' TARGETS FOR GENERATING STATIC LIBS # -############################################# - -libext2fs_ar: $(LIBEXT2FS_OBJS) - $(E) " AR out/e2fsprogs/libext2fs.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2fs.a $^ || exit 1 - $(E) " ----------- libext2_quota -----------" - -libext2_blkid_ar: $(LIBEXT2_BLKID_OBJS) - $(E) " AR out/e2fsprogs/libext2_blkid.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2_blkid.a $^ || exit 1 - $(E) " ----------- libext2_uuid ---------" - -libext2_e2p_ar: $(LIBEXT2_E2P_OBJS) - $(E) " AR out/e2fsprogs/libext2_e2p.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2_e2p.a $^ || exit 1 - $(E) " ----------- libext2fs -----------" - -libext2_uuid_ar: $(LIBEXT2_UUID_OBJS) - $(E) " AR out/e2fsprogs/libext2_uuid.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2_uuid.a $^ || exit 1 - $(E) " ----------- libext2_e2p -----------" - -libext2_quota_ar: $(LIBEXT2_QUOTA_OBJS) - $(E) " AR out/e2fsprogs/libext2_quota.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2_quota.a $^ || exit 1 - $(E) " ----------- libext2_misc -----------" - -libext2_misc_ar: $(LIBEXT2_MISC_OBJS) - $(E) " AR out/e2fsprogs/libext2_misc.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2_misc.a $^ || exit 1 - $(E) " ----------- libext2_com_err -----------" - -libext2_com_err_ar: $(LIBEXT2_COM_ERR_OBJS) - $(E) " AR out/e2fsprogs/libext2_com_err.a" - @ $(AR) $(ARFLAGS) $(OUT)/libext2_com_err.a $^ || exit 1 - $(E) " ----------- mke2fs -----------" - -############################################# -# DUMMY 'MAKE' TARGET FOR DISPLAYING MKE2FS # -############################################# - -mke2fs_dummy_ld: - $(E) " DMY mke2fs" diff --git a/jni/e2fsprogs/lib/ext2fs/unix_io.c b/jni/e2fsprogs/lib/ext2fs/unix_io.c index 3cef643..353d85a 100755 --- a/jni/e2fsprogs/lib/ext2fs/unix_io.c +++ b/jni/e2fsprogs/lib/ext2fs/unix_io.c @@ -17,9 +17,7 @@ #if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) #define _XOPEN_SOURCE 600 -#ifndef _DARWIN_C_SOURCE #define _DARWIN_C_SOURCE -#endif #define _FILE_OFFSET_BITS 64 #ifndef _LARGEFILE_SOURCE #define _LARGEFILE_SOURCE diff --git a/jni/e2fsprogs/mke2fs/mke2fs.c b/jni/e2fsprogs/mke2fs/mke2fs.c index cc44f92..c8ed67a 100755 --- a/jni/e2fsprogs/mke2fs/mke2fs.c +++ b/jni/e2fsprogs/mke2fs/mke2fs.c @@ -76,7 +76,7 @@ extern int optind; extern int isatty(int); extern FILE *fpopen(const char *cmd, const char *mode); -const char * ProgramName = "mke2fs"; +const char * program_name = "mke2fs"; static const char * device_name /* = NULL */; /* Command line options */ @@ -140,7 +140,7 @@ static void usage(void) "\t[-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior]" "[-z undo_file]\n" "\t[-jnqvDFSV] device [blocks-count]\n"), - ProgramName); + program_name); exit(1); } @@ -1061,7 +1061,7 @@ static void parse_extended_opts(struct ext2_super_block *param, "Failed to parse quota type at %s", errtok); free(errtok); } else - com_err(ProgramName, ret, + com_err(program_name, ret, "while parsing quota type"); r_usage++; badopt = token; @@ -1320,9 +1320,9 @@ static char **parse_fs_type(const char *fs_type, ext_type = fs_type; else if (is_hurd) ext_type = "ext2"; - else if (!strcmp(ProgramName, "mke3fs")) + else if (!strcmp(program_name, "mke3fs")) ext_type = "ext3"; - else if (!strcmp(ProgramName, "mke4fs")) + else if (!strcmp(program_name, "mke4fs")) ext_type = "ext4"; else if (progname) { ext_type = strrchr(progname, '/'); @@ -1643,11 +1643,11 @@ profile_error: fs_param.s_rev_level = 0; if (argc && *argv) { - ProgramName = get_progname(*argv); + program_name = get_progname(*argv); /* If called as mkfs.ext3, create a journal inode */ - if (!strcmp(ProgramName, "mkfs.ext3") || - !strcmp(ProgramName, "mke3fs")) + if (!strcmp(program_name, "mkfs.ext3") || + !strcmp(program_name, "mke3fs")) journal_size = -1; } @@ -1659,7 +1659,7 @@ profile_error: b = (blocksize > 0) ? blocksize : -blocksize; if (b < EXT2_MIN_BLOCK_SIZE || b > EXT2_MAX_BLOCK_SIZE) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid block size - %s"), optarg); exit(1); } @@ -1679,7 +1679,7 @@ profile_error: cluster_size = parse_num_blocks2(optarg, -1); if (cluster_size <= EXT2_MIN_CLUSTER_SIZE || cluster_size > EXT2_MAX_CLUSTER_SIZE) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid cluster size - %s"), optarg); exit(1); @@ -1692,7 +1692,7 @@ profile_error: direct_io = 1; break; case 'R': - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("'-R' is deprecated, use '-E' instead")); /* fallthrough */ case 'E': @@ -1706,7 +1706,7 @@ profile_error: else if (strcmp(optarg, "panic") == 0) errors_behavior = EXT2_ERRORS_PANIC; else { - com_err(ProgramName, 0, + com_err(program_name, 0, _("bad error behavior - %s"), optarg); usage(); @@ -1718,12 +1718,12 @@ profile_error: case 'g': fs_param.s_blocks_per_group = strtoul(optarg, &tmp, 0); if (*tmp) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Illegal number for blocks per group")); exit(1); } if ((fs_param.s_blocks_per_group % 8) != 0) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("blocks per group must be multiple of 8")); exit(1); } @@ -1731,18 +1731,18 @@ profile_error: case 'G': flex_bg_size = strtoul(optarg, &tmp, 0); if (*tmp) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Illegal number for flex_bg size")); exit(1); } if (flex_bg_size < 1 || (flex_bg_size & (flex_bg_size-1)) != 0) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("flex_bg size must be a power of 2")); exit(1); } if (flex_bg_size > MAX_32_NUM) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("flex_bg size (%lu) must be less than" " or equal to 2^31"), flex_bg_size); exit(1); @@ -1752,7 +1752,7 @@ profile_error: inode_ratio = parse_num_blocks(optarg, -1); if (inode_ratio < EXT2_MIN_BLOCK_SIZE || inode_ratio > EXT2_MAX_BLOCK_SIZE * 1024) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid inode ratio %s (min %d/max %d)"), optarg, EXT2_MIN_BLOCK_SIZE, EXT2_MAX_BLOCK_SIZE * 1024); @@ -1762,7 +1762,7 @@ profile_error: case 'I': inode_size = strtoul(optarg, &tmp, 0); if (*tmp) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid inode size - %s"), optarg); exit(1); } @@ -1788,7 +1788,7 @@ profile_error: bad_blocks_filename = realloc(bad_blocks_filename, strlen(optarg) + 1); if (!bad_blocks_filename) { - com_err(ProgramName, ENOMEM, "%s", + com_err(program_name, ENOMEM, "%s", _("in malloc for bad_blocks_filename")); exit(1); } @@ -1806,7 +1806,7 @@ profile_error: reserved_ratio = strtod(optarg, &tmp); if ( *tmp || reserved_ratio > 50 || reserved_ratio < 0) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid reserved blocks percent - %s"), optarg); exit(1); @@ -1821,7 +1821,7 @@ profile_error: case 'N': num_inodes = strtoul(optarg, &tmp, 0); if (*tmp) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("bad num inodes - %s"), optarg); exit(1); } @@ -1834,7 +1834,7 @@ profile_error: fs_features_size + 1 + strlen(optarg), &fs_features); if (retval) { - com_err(ProgramName, retval, + com_err(program_name, retval, _("while allocating fs_feature string")); exit(1); } @@ -1851,12 +1851,12 @@ profile_error: case 'r': r_opt = strtoul(optarg, &tmp, 0); if (*tmp) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("bad revision level - %s"), optarg); exit(1); } if (r_opt > EXT2_MAX_SUPP_REV) { - com_err(ProgramName, EXT2_ET_REV_TOO_HIGH, + com_err(program_name, EXT2_ET_REV_TOO_HIGH, _("while trying to create revision %d"), r_opt); exit(1); } @@ -1870,7 +1870,7 @@ profile_error: break; case 't': if (fs_type) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("The -t option may only be used once")); exit(1); } @@ -1878,7 +1878,7 @@ profile_error: break; case 'T': if (usage_types) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("The -T option may only be used once")); exit(1); } @@ -1933,13 +1933,13 @@ profile_error: EXT2_FLAG_JOURNAL_DEV_OK, 0, 0, io_ptr, &jfs); if (retval) { - com_err(ProgramName, retval, + com_err(program_name, retval, _("while trying to open journal device %s\n"), journal_device); exit(1); } if ((blocksize < 0) && (jfs->blocksize < (unsigned) (-blocksize))) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("Journal dev blocksize (%d) smaller than " "minimum blocksize %d\n"), jfs->blocksize, -blocksize); @@ -1956,7 +1956,7 @@ profile_error: fs_blocks_count = parse_num_blocks2(argv[optind++], fs_param.s_log_block_size); if (!fs_blocks_count) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid blocks '%s' on device '%s'"), argv[optind - 1], device_name); exit(1); @@ -2008,20 +2008,20 @@ profile_error: } } if (retval && (retval != EXT2_ET_UNIMPLEMENTED)) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while trying to determine filesystem size")); exit(1); } if (!fs_blocks_count) { if (retval == EXT2_ET_UNIMPLEMENTED) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Couldn't determine device size; you " "must specify\nthe size of the " "filesystem\n")); exit(1); } else { if (dev_size == 0) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Device size reported to be zero. " "Invalid partition specified, or\n\t" "partition table wasn't reread " @@ -2038,7 +2038,7 @@ profile_error: EXT2_BLOCK_SIZE(&fs_param))-1)); } } else if (!force && is_device && (fs_blocks_count > dev_size)) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Filesystem larger than apparent device size.")); proceed_question(proceed_delay); } @@ -2136,13 +2136,13 @@ profile_error: /* Get the hardware sector sizes, if available */ retval = ext2fs_get_device_sectsize(device_name, &lsector_size); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while trying to determine hardware sector size")); exit(1); } retval = ext2fs_get_device_phys_sectsize(device_name, &psector_size); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while trying to determine physical sector size")); exit(1); } @@ -2174,7 +2174,7 @@ profile_error: fs_blocks_count /= (blocksize / 1024); } else { if (blocksize < lsector_size) { /* Impossible */ - com_err(ProgramName, EINVAL, "%s", + com_err(program_name, EINVAL, "%s", _("while setting blocksize; too small " "for device\n")); exit(1); @@ -2207,7 +2207,7 @@ profile_error: fprintf(stderr, _("%s: Size of device (0x%llx blocks) %s " "too big to be expressed\n\t" "in 32 bits using a blocksize of %d.\n"), - ProgramName, (unsigned long long) fs_blocks_count, + program_name, (unsigned long long) fs_blocks_count, device_name, EXT2_BLOCK_SIZE(&fs_param)); exit(1); } @@ -2221,7 +2221,7 @@ profile_error: fprintf(stderr, _("%s: Size of device (0x%llx blocks) %s " "too big to create\n\t" "a filesystem using a blocksize of %d.\n"), - ProgramName, (unsigned long long) fs_blocks_count, + program_name, (unsigned long long) fs_blocks_count, device_name, EXT2_BLOCK_SIZE(&fs_param)); exit(1); } @@ -2277,7 +2277,7 @@ profile_error: reserved_ratio = get_double_from_profile( fs_types, "reserved_ratio", 5.0); if (reserved_ratio > 50 || reserved_ratio < 0) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid reserved blocks percent - %lf"), reserved_ratio); exit(1); @@ -2314,13 +2314,13 @@ profile_error: int_log2(cluster_size >> EXT2_MIN_CLUSTER_LOG_SIZE); if (fs_param.s_log_cluster_size && fs_param.s_log_cluster_size < fs_param.s_log_block_size) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("The cluster size may not be " "smaller than the block size.\n")); exit(1); } } else if (cluster_size) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("specifying a cluster size requires the " "bigalloc feature")); exit(1); @@ -2384,7 +2384,7 @@ profile_error: /* This check should happen beyond the last assignment to blocksize */ if (blocksize > sys_page_size) { if (!force) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("%d-byte blocks too big for system (max %d)"), blocksize, sys_page_size); proceed_question(proceed_delay); @@ -2442,7 +2442,7 @@ profile_error: int encoding = e2p_str2encoding(en); if (encoding < 0) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("Unknown filename encoding from profile: %s"), en); exit(1); @@ -2453,7 +2453,7 @@ profile_error: if (ef) { if (e2p_str2encoding_flags(encoding, ef, &fs_param.s_encoding_flags) < 0) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("Unknown encoding flags from profile: %s"), ef); exit(1); } @@ -2493,7 +2493,7 @@ profile_error: if (ext2fs_has_feature_project(&fs_param)) { quotatype_bits |= QUOTA_PRJ_BIT; if (inode_size == EXT2_GOOD_OLD_INODE_SIZE) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("%d byte inodes are too small for " "project quota"), inode_size); @@ -2515,7 +2515,7 @@ profile_error: /* Can't support bigalloc feature without extents feature */ if (ext2fs_has_feature_bigalloc(&fs_param) && !ext2fs_has_feature_extents(&fs_param)) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Can't support bigalloc feature without " "extents feature")); exit(1); @@ -2543,7 +2543,7 @@ profile_error: */ if (ext2fs_has_feature_resize_inode(&fs_param) && !ext2fs_has_feature_sparse_super(&fs_param)) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("reserved online resize blocks not supported " "on non-sparse filesystem")); exit(1); @@ -2552,7 +2552,7 @@ profile_error: if (fs_param.s_blocks_per_group) { if (fs_param.s_blocks_per_group < 256 || fs_param.s_blocks_per_group > 8 * (unsigned) blocksize) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("blocks per group count out of range")); exit(1); } @@ -2574,7 +2574,7 @@ profile_error: "flex_bg_size", 16); if (flex_bg_size) { if (!ext2fs_has_feature_flex_bg(&fs_param)) { - com_err(ProgramName, 0, "%s", + com_err(program_name, 0, "%s", _("Flex_bg feature not enabled, so " "flex_bg size may not be specified")); exit(1); @@ -2586,7 +2586,7 @@ profile_error: if (inode_size < EXT2_GOOD_OLD_INODE_SIZE || inode_size > EXT2_BLOCK_SIZE(&fs_param) || inode_size & (inode_size - 1)) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("invalid inode size %d (min %d/max %d)"), inode_size, EXT2_GOOD_OLD_INODE_SIZE, blocksize); @@ -2601,7 +2601,7 @@ profile_error: */ if (ext2fs_has_feature_inline_data(&fs_param) && fs_param.s_inode_size == EXT2_GOOD_OLD_INODE_SIZE) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("%d byte inodes are too small for inline data; " "specify larger size"), fs_param.s_inode_size); @@ -2627,7 +2627,7 @@ _("128-byte inodes cannot handle dates beyond 2038 and are deprecated\n")); if (ext2fs_has_feature_64bit(&fs_param)) num_inodes = MAX_32_NUM; else { - com_err(ProgramName, 0, + com_err(program_name, 0, _("too many inodes (%llu), raise " "inode ratio?"), (unsigned long long) n); @@ -2635,7 +2635,7 @@ _("128-byte inodes cannot handle dates beyond 2038 and are deprecated\n")); } } } else if (num_inodes > MAX_32_NUM) { - com_err(ProgramName, 0, + com_err(program_name, 0, _("too many inodes (%llu), specify < 2^32 inodes"), (unsigned long long) num_inodes); exit(1); @@ -2650,7 +2650,7 @@ _("128-byte inodes cannot handle dates beyond 2038 and are deprecated\n")); (inode_size ? inode_size : EXT2_GOOD_OLD_INODE_SIZE)) >= ((ext2fs_blocks_count(&fs_param)) * EXT2_BLOCK_SIZE(&fs_param))) { - com_err(ProgramName, 0, _("inode_size (%u) * inodes_count " + com_err(program_name, 0, _("inode_size (%u) * inodes_count " "(%u) too big for a\n\t" "filesystem with %llu blocks, " "specify higher inode_ratio (-i)\n\t" @@ -2795,7 +2795,7 @@ static int mke2fs_setup_tdb(const char *name, io_manager *io_ptr) if ((unlink(tdb_file) < 0) && (errno != ENOENT)) { retval = errno; - com_err(ProgramName, retval, + com_err(program_name, retval, _("while trying to delete %s"), tdb_file); goto errout; } @@ -2821,7 +2821,7 @@ errout: free(tdb_dir); free(tdb_file); err: - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while trying to setup undo file\n")); return retval; } @@ -2921,14 +2921,14 @@ static int create_quota_inodes(ext2_filsys fs) retval = quota_init_context(&qctx, fs, quotatype_bits); if (retval) { - com_err(ProgramName, retval, + com_err(program_name, retval, _("while initializing quota context")); exit(1); } quota_compute_usage(qctx); retval = quota_write_inode(qctx, quotatype_bits); if (retval) { - com_err(ProgramName, retval, + com_err(program_name, retval, _("while writing quota inodes")); exit(1); } @@ -2953,7 +2953,7 @@ static errcode_t set_error_behavior(ext2_filsys fs) else if (strcmp(arg, "panic") == 0) errors = EXT2_ERRORS_PANIC; else { - com_err(ProgramName, 0, + com_err(program_name, 0, _("bad error behavior in profile - %s"), arg); free(arg); @@ -3033,7 +3033,7 @@ int mke2fs_main (int argc, char *argv[]) char *android_sparse_params = malloc(strlen(device_name) + 48); if (!android_sparse_params) { - com_err(ProgramName, ENOMEM, "%s", + com_err(program_name, ENOMEM, "%s", _("in malloc for android_sparse_params")); exit(1); } @@ -3202,7 +3202,7 @@ int mke2fs_main (int argc, char *argv[]) * Override the creator OS, if applicable */ if (creator_os && !set_os(fs->super, creator_os)) { - com_err (ProgramName, 0, _("unknown os - %s"), creator_os); + com_err (program_name, 0, _("unknown os - %s"), creator_os); exit(1); } @@ -3272,7 +3272,7 @@ int mke2fs_main (int argc, char *argv[]) else retval = ext2fs_allocate_tables(fs); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while trying to allocate filesystem tables")); exit(1); } @@ -3298,7 +3298,7 @@ int mke2fs_main (int argc, char *argv[]) retval = ext2fs_convert_subcluster_bitmap(fs, &fs->block_map); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("\n\twhile converting subcluster bitmap")); exit(1); } @@ -3307,7 +3307,7 @@ int mke2fs_main (int argc, char *argv[]) ext2fs_blocks_count(fs->super) - 1, &overhead); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while calculating overhead")); exit(1); } @@ -3367,7 +3367,7 @@ int mke2fs_main (int argc, char *argv[]) &ret_blk, NULL); if (retval) { - com_err(ProgramName, retval, + com_err(program_name, retval, _("while zeroing block %llu at end of filesystem"), (unsigned long long) ret_blk); } @@ -3399,7 +3399,7 @@ int mke2fs_main (int argc, char *argv[]) EXT2_FLAG_JOURNAL_DEV_OK, 0, fs->blocksize, default_io_manager, &jfs); if (retval) { - com_err(ProgramName, retval, + com_err(program_name, retval, _("while trying to open journal device %s\n"), journal_device); exit(1); @@ -3411,7 +3411,7 @@ int mke2fs_main (int argc, char *argv[]) } retval = ext2fs_add_journal_device(fs, jfs); if(retval) { - com_err (ProgramName, retval, + com_err (program_name, retval, _("\n\twhile trying to add journal to device %s"), journal_device); exit(1); @@ -3442,7 +3442,7 @@ int mke2fs_main (int argc, char *argv[]) journal_location, journal_flags); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("\n\twhile trying to create journal")); exit(1); } @@ -3476,7 +3476,7 @@ no_journal: retval = mk_hugefiles(fs, device_name); if (retval) - com_err(ProgramName, retval, "while creating huge files"); + com_err(program_name, retval, "while creating huge files"); /* Copy files from the specified directory */ if (src_root_dir) { if (!quiet) @@ -3485,7 +3485,7 @@ no_journal: retval = populate_fs(fs, EXT2_ROOT_INO, src_root_dir, EXT2_ROOT_INO); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while populating file system")); exit(1); } else if (!quiet) @@ -3499,7 +3499,7 @@ no_journal: max_mnt_count = fs->super->s_max_mnt_count; retval = ext2fs_close_free(&fs); if (retval) { - com_err(ProgramName, retval, "%s", + com_err(program_name, retval, "%s", _("while writing out and closing file system")); retval = 1; } else if (!quiet) { diff --git a/jni/parted/COPYING b/jni/parted/COPYING deleted file mode 100755 index 24afbe2..0000000 --- a/jni/parted/COPYING +++ /dev/null @@ -1,675 +0,0 @@ - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, 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 -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If 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 convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU 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 -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state 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 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 3 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, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/jni/parted/Makefile b/jni/parted/Makefile deleted file mode 100755 index 5499993..0000000 --- a/jni/parted/Makefile +++ /dev/null @@ -1,219 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -##### -# sub-make for building parted (built-in parted) -##### - -# Include required files -include ../../build/config/env.mk -ifeq ($(INC_OLDENV),true) -include ../../build/config/oldenv.mk -endif - -# Some flags etc -E := @ echo -INCLUDE_DIRS := \ - $(CURDIR)/../../include \ - $(CURDIR)/../../include/libgnulib \ - $(CURDIR)/parted \ - $(CURDIR)/libparted \ - $(CURDIR)/libparted/labels \ - $(CURDIR)/lib -CFLAGS := \ - -Wall \ - -Wextra \ - -fPIC \ - -Wno-pointer-sign \ - -Wno-sign-compare \ - -Wno-gnu-designator \ - -Wno-unused-variable \ - -Wno-unused-parameter \ - -Wno-unused-command-line-argument \ - -Wno-missing-field-initializers \ - -Wno-single-bit-bitfield-constant-conversion \ - $(foreach dir,$(INCLUDE_DIRS),$(shell echo -I$(dir))) -AR_FLAGS := rcs -OUT := $(realpath ../../out/parted) -LIBPARTED := libparted -PARTED := parted -PATH := $(shell echo $$PREFIX)/bin - -LIBPARTED_SRCS := \ - $(LIBPARTED)/architecture.c \ - $(LIBPARTED)/debug.c \ - $(LIBPARTED)/device.c \ - $(LIBPARTED)/disk.c \ - $(LIBPARTED)/exception.c \ - $(LIBPARTED)/filesys.c \ - $(LIBPARTED)/libparted.c \ - $(LIBPARTED)/timer.c \ - $(LIBPARTED)/unit.c \ - $(LIBPARTED)/arch/linux.c \ - $(LIBPARTED)/cs/constraint.c \ - $(LIBPARTED)/cs/geom.c \ - $(LIBPARTED)/cs/natmath.c \ - $(LIBPARTED)/fs/amiga/a-interface.c \ - $(LIBPARTED)/fs/amiga/affs.c \ - $(LIBPARTED)/fs/amiga/amiga.c \ - $(LIBPARTED)/fs/amiga/apfs.c \ - $(LIBPARTED)/fs/amiga/asfs.c \ - $(LIBPARTED)/fs/btrfs/btrfs.c \ - $(LIBPARTED)/fs/ext2/interface.c \ - $(LIBPARTED)/fs/f2fs/f2fs.c \ - $(LIBPARTED)/fs/fat/bootsector.c \ - $(LIBPARTED)/fs/fat/fat.c \ - $(LIBPARTED)/fs/hfs/hfs.c \ - $(LIBPARTED)/fs/hfs/probe.c \ - $(LIBPARTED)/fs/jfs/jfs.c \ - $(LIBPARTED)/fs/linux_swap/linux_swap.c \ - $(LIBPARTED)/fs/nilfs2/nilfs2.c \ - $(LIBPARTED)/fs/ntfs/ntfs.c \ - $(LIBPARTED)/fs/r/filesys.c \ - $(LIBPARTED)/fs/r/fat/bootsector.c \ - $(LIBPARTED)/fs/r/fat/calc.c \ - $(LIBPARTED)/fs/r/fat/clstdup.c \ - $(LIBPARTED)/fs/r/fat/context.c \ - $(LIBPARTED)/fs/r/fat/count.c \ - $(LIBPARTED)/fs/r/fat/fat.c \ - $(LIBPARTED)/fs/r/fat/fatio.c \ - $(LIBPARTED)/fs/r/fat/resize.c \ - $(LIBPARTED)/fs/r/fat/table.c \ - $(LIBPARTED)/fs/r/fat/traverse.c \ - $(LIBPARTED)/fs/r/hfs/advfs.c \ - $(LIBPARTED)/fs/r/hfs/advfs_plus.c \ - $(LIBPARTED)/fs/r/hfs/cache.c \ - $(LIBPARTED)/fs/r/hfs/file.c \ - $(LIBPARTED)/fs/r/hfs/file_plus.c \ - $(LIBPARTED)/fs/r/hfs/hfs.c \ - $(LIBPARTED)/fs/r/hfs/journal.c \ - $(LIBPARTED)/fs/r/hfs/probe.c \ - $(LIBPARTED)/fs/r/hfs/reloc.c \ - $(LIBPARTED)/fs/r/hfs/reloc_plus.c \ - $(LIBPARTED)/fs/reiserfs/reiserfs.c \ - $(LIBPARTED)/fs/udf/udf.c \ - $(LIBPARTED)/fs/ufs/ufs.c \ - $(LIBPARTED)/fs/xfs/xfs.c \ - $(LIBPARTED)/labels/aix.c \ - $(LIBPARTED)/labels/atari.c \ - $(LIBPARTED)/labels/bsd.c \ - $(LIBPARTED)/labels/dos.c \ - $(LIBPARTED)/labels/dvh.c \ - $(LIBPARTED)/labels/efi_crc32.c \ - $(LIBPARTED)/labels/fdasd.c \ - $(LIBPARTED)/labels/gpt.c \ - $(LIBPARTED)/labels/loop.c \ - $(LIBPARTED)/labels/mac.c \ - $(LIBPARTED)/labels/pt-tools.c \ - $(LIBPARTED)/labels/rdb.c \ - $(LIBPARTED)/labels/sun.c \ - $(LIBPARTED)/labels/vtoc.c - -PARTED_SRCS := \ - $(PARTED)/command.c \ - $(PARTED)/jsonwrt.c \ - $(PARTED)/parted.c \ - $(PARTED)/strlist.c \ - $(PARTED)/table.c \ - $(PARTED)/ui.c \ - $(PARTED)/version.c - -LIBPARTED_OBJS := $(LIBPARTED_SRCS:.c=.o) -PARTED_OBJS := $(PARTED_SRCS:.c=.o) - -OBJS_ALL := \ - $(LIBPARTED_OBJS) \ - $(PARTED_OBJS) - -PROGRESS_LIST := \ - make_outdir \ - build_libgnulib \ - build_libcharset \ - build_libiconv_and_libicrt \ - print_libparted \ - $(LIBPARTED_OBJS) \ - libparted_ar \ - print_parted \ - $(PARTED_OBJS) \ - dummy_parted - -.PHONY: all -all: $(PROGRESS_LIST) - -.PHONY: clean -clean: - @ rm -rf $(OBJS_ALL) $(OUT) *.a - @ $(MAKE) -C $(CURDIR)/libgnulib -s clean - @ $(MAKE) -C $(CURDIR)/libiconv -s clean - @ $(MAKE) -C $(CURDIR)/libcharset -s clean - -.PHONY: install -install: - @ abort() { \ - echo "$1"; \ - exit 1; \ - }; \ - [ -f $(PATH)/parted-test ] && \ - abort "Already installed."; \ - cp $(OUT)/parted $(PATH)/parted-test || \ - abort "Copying failed!"; \ - chmod 777 $(PATH)/parted-test || \ - abort "Cannot set permissions!" - -.PHONY: uninstall -uninstall: - @ if [ ! -f $(PATH)/parted-test ]; then echo "Already uninstalled"; exit 1; fi - @ rm -f $(PATH)/parted-test &>/dev/null - -.PHONY: -reinstall: - @ $(MAKE) -s uninstall - @ $(MAKE) -s install - -$(LIBPARTED)/%.o: $(LIBPARTED)/%.c - $(E) " CC $@" - @ $(CC) -c $(CFLAGS) -o $@ $^ || exit 1 - -$(PARTED)/%.o: $(PARTED)/%.c - $(E) " CC $@" - @ $(CC) -c $(CFLAGS) -o $@ $^ || exit 1 - -libparted_ar: $(LIBPARTED_OBJS) - $(E) " AR out/parted/libparted.a" - @ $(AR) $(AR_FLAGS) $(OUT)/libparted.a $(LIBPARTED_OBJS) - -build_libgnulib: - @ $(MAKE) -C $(CURDIR)/libgnulib -s - -build_libcharset: - $(E) " ----------- libcharset ----------- " - @ $(MAKE) -C $(CURDIR)/libcharset -s - -build_libiconv_and_libicrt: - $(E) " ----------- libicrt ----------- " - @ $(MAKE) -C $(CURDIR)/libiconv -s - -make_outdir: - @ if [ ! -d $(OUT) ]; then mkdir -p $(OUT); fi - -print_libparted: - $(E) " ----------- libparted ----------- " - -print_parted: - $(E) " ----------- parted ----------- " - -dummy_parted: - $(E) " DMY parted" diff --git a/jni/parted/lib/alloca.h b/jni/parted/lib/alloca.h deleted file mode 100755 index dbf5fc1..0000000 --- a/jni/parted/lib/alloca.h +++ /dev/null @@ -1,73 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Memory allocation on the stack. - - Copyright (C) 1995, 1999, 2001-2004, 2006-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H - means there is a real alloca function. */ -#ifndef _GL_ALLOCA_H -#define _GL_ALLOCA_H - -/* alloca (N) returns a pointer to N bytes of memory - allocated on the stack, which will last until the function returns. - Use of alloca should be avoided: - - inside arguments of function calls - undefined behaviour, - - in inline functions - the allocation may actually last until the - calling function returns, - - for huge N (say, N >= 65536) - you never know how large (or small) - the stack is, and when the stack cannot fulfill the memory allocation - request, the program just crashes. - */ - -#ifndef alloca - /* Some version of mingw have an that causes trouble when - included after 'alloca' gets defined as a macro. As a workaround, - include this first and define 'alloca' as a macro afterwards - if needed. */ -# if defined __GNUC__ && (defined _WIN32 && ! defined __CYGWIN__) && 1 -# include_next -# endif -#endif -#ifndef alloca -# if defined __GNUC__ || (__clang_major__ >= 4) -# define alloca __builtin_alloca -# elif defined _AIX -# define alloca __alloca -# elif defined _MSC_VER -# include -# define alloca _alloca -# elif defined __DECC && defined __VMS -# define alloca __ALLOCA -# elif defined __TANDEM && defined _TNS_E_TARGET -# ifdef __cplusplus -extern "C" -# endif -void *_alloca (unsigned short); -# pragma intrinsic (_alloca) -# define alloca _alloca -# elif defined __MVS__ -# include -# else -# include -# ifdef __cplusplus -extern "C" -# endif -void *alloca (size_t); -# endif -#endif - -#endif /* _GL_ALLOCA_H */ diff --git a/jni/parted/lib/assert.h b/jni/parted/lib/assert.h deleted file mode 100755 index c302650..0000000 --- a/jni/parted/lib/assert.h +++ /dev/null @@ -1,323 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Substitute for and wrapper around - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Do not guard the include, since is supposed to define - the assert macro each time it is included. */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#include_next - -/* The definition of static_assert is copied here. */ -/* Compile-time assert-like macros. - - Copyright (C) 2005-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ - -#ifndef _GL_STATIC_ASSERT_H -#define _GL_STATIC_ASSERT_H - - -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) - works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. - - Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as - per C23. This is supported by GCC 9.1+. - - Support compilers claiming conformance to the relevant standard, - and also support GCC when not pedantic. If we were willing to slow - 'configure' down we could also use it with other compilers, but - since this affects only the quality of diagnostics, why bother? */ -#ifndef __cplusplus -# if (201112 <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ \ - && ((4 < __GNUC__ + (6 <= __GNUC_MINOR__) && !defined __clang__) \ - || 5 <= __clang_major__))) -# define _GL_HAVE__STATIC_ASSERT 1 -# endif -# if (202311 <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ && 9 <= __GNUC__ && !defined __clang__)) -# define _GL_HAVE__STATIC_ASSERT1 1 -# endif -#endif - -/* FreeBSD 9.1 , included by and lots of other - system headers, defines a conflicting _Static_assert that is no - better than ours; override it. */ -#ifndef _GL_HAVE__STATIC_ASSERT -# include -# undef _Static_assert -#endif - -/* Each of these macros verifies that its argument R is nonzero. To - be portable, R should be an integer constant expression. Unlike - assert (R), there is no run-time overhead. - - If _Static_assert works, verify (R) uses it directly. Similarly, - _GL_STATIC_ASSERT_TRUE works by packaging a _Static_assert inside a struct - that is an operand of sizeof. - - The code below uses several ideas for C++ compilers, and for C - compilers that do not support _Static_assert: - - * The first step is ((R) ? 1 : -1). Given an expression R, of - integral or boolean or floating-point type, this yields an - expression of integral type, whose value is later verified to be - constant and nonnegative. - - * Next this expression W is wrapped in a type - struct _gl_static_assert_type { - unsigned int _gl_static_assert_error_if_negative: W; - }. - If W is negative, this yields a compile-time error. No compiler can - deal with a bit-field of negative size. - - One might think that an array size check would have the same - effect, that is, that the type struct { unsigned int dummy[W]; } - would work as well. However, inside a function, some compilers - (such as C++ compilers and GNU C) allow local parameters and - variables inside array size expressions. With these compilers, - an array size check would not properly diagnose this misuse of - the verify macro: - - void function (int n) { verify (n < 0); } - - * For the verify macro, the struct _gl_static_assert_type will need to - somehow be embedded into a declaration. To be portable, this - declaration must declare an object, a constant, a function, or a - typedef name. If the declared entity uses the type directly, - such as in - - struct dummy {...}; - typedef struct {...} dummy; - extern struct {...} *dummy; - extern void dummy (struct {...} *); - extern struct {...} *dummy (void); - - two uses of the verify macro would yield colliding declarations - if the entity names are not disambiguated. A workaround is to - attach the current line number to the entity name: - - #define _GL_CONCAT0(x, y) x##y - #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) - extern struct {...} * _GL_CONCAT (dummy, __LINE__); - - But this has the problem that two invocations of verify from - within the same macro would collide, since the __LINE__ value - would be the same for both invocations. (The GCC __COUNTER__ - macro solves this problem, but is not portable.) - - A solution is to use the sizeof operator. It yields a number, - getting rid of the identity of the type. Declarations like - - extern int dummy [sizeof (struct {...})]; - extern void dummy (int [sizeof (struct {...})]); - extern int (*dummy (void)) [sizeof (struct {...})]; - - can be repeated. - - * Should the implementation use a named struct or an unnamed struct? - Which of the following alternatives can be used? - - extern int dummy [sizeof (struct {...})]; - extern int dummy [sizeof (struct _gl_static_assert_type {...})]; - extern void dummy (int [sizeof (struct {...})]); - extern void dummy (int [sizeof (struct _gl_static_assert_type {...})]); - extern int (*dummy (void)) [sizeof (struct {...})]; - extern int (*dummy (void)) [sizeof (struct _gl_static_assert_type {...})]; - - In the second and sixth case, the struct type is exported to the - outer scope; two such declarations therefore collide. GCC warns - about the first, third, and fourth cases. So the only remaining - possibility is the fifth case: - - extern int (*dummy (void)) [sizeof (struct {...})]; - - * GCC warns about duplicate declarations of the dummy function if - -Wredundant-decls is used. GCC 4.3 and later have a builtin - __COUNTER__ macro that can let us generate unique identifiers for - each dummy function, to suppress this warning. - - * This implementation exploits the fact that older versions of GCC, - which do not support _Static_assert, also do not warn about the - last declaration mentioned above. - - * GCC warns if -Wnested-externs is enabled and 'verify' is used - within a function body; but inside a function, you can always - arrange to use verify_expr instead. - - * In C++, any struct definition inside sizeof is invalid. - Use a template type to work around the problem. */ - -/* Concatenate two preprocessor tokens. */ -#define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) -#define _GL_CONCAT0(x, y) x##y - -/* _GL_COUNTER is an integer, preferably one that changes each time we - use it. Use __COUNTER__ if it works, falling back on __LINE__ - otherwise. __LINE__ isn't perfect, but it's better than a - constant. */ -#if defined __COUNTER__ && __COUNTER__ != __COUNTER__ -# define _GL_COUNTER __COUNTER__ -#else -# define _GL_COUNTER __LINE__ -#endif - -/* Generate a symbol with the given prefix, making it unique if - possible. */ -#define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) - -/* Verify requirement R at compile-time, as an integer constant expression - that returns 1. If R is false, fail at compile-time, preferably - with a diagnostic that includes the string-literal DIAGNOSTIC. */ - -#define _GL_STATIC_ASSERT_TRUE(R, DIAGNOSTIC) \ - (!!sizeof (_GL_STATIC_ASSERT_TYPE (R, DIAGNOSTIC))) - -#ifdef __cplusplus -# if !GNULIB_defined_struct__gl_static_assert_type -template - struct _gl_static_assert_type { - unsigned int _gl_static_assert_error_if_negative: w; - }; -# define GNULIB_defined_struct__gl_static_assert_type 1 -# endif -# define _GL_STATIC_ASSERT_TYPE(R, DIAGNOSTIC) \ - _gl_static_assert_type<(R) ? 1 : -1> -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_STATIC_ASSERT_TYPE(R, DIAGNOSTIC) \ - struct { \ - _Static_assert (R, DIAGNOSTIC); \ - int _gl_dummy; \ - } -#else -# define _GL_STATIC_ASSERT_TYPE(R, DIAGNOSTIC) \ - struct { unsigned int _gl_static_assert_error_if_negative: (R) ? 1 : -1; } -#endif - -/* Verify requirement R at compile-time, as a declaration without a - trailing ';'. If R is false, fail at compile-time. - - This macro requires three or more arguments but uses at most the first - two, so that the _Static_assert macro optionally defined below supports - both the C11 two-argument syntax and the C23 one-argument syntax. - - Unfortunately, unlike C11, this implementation must appear as an - ordinary declaration, and cannot appear inside struct { ... }. */ - -#if 202311 <= __STDC_VERSION__ || 200410 <= __cpp_static_assert -# define _GL_STATIC_ASSERT(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_STATIC_ASSERT(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) -#else -# define _GL_STATIC_ASSERT(R, DIAGNOSTIC, ...) \ - extern int (*_GL_GENSYM (_gl_static_assert_function) (void)) \ - [_GL_STATIC_ASSERT_TRUE (R, DIAGNOSTIC)] -# if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) && !defined __clang__ -# pragma GCC diagnostic ignored "-Wnested-externs" -# endif -#endif - -/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ -#ifdef _GL_STATIC_ASSERT_H -/* Define _Static_assert if needed. */ -/* With clang ≥ 3.8.0 in C++ mode, _Static_assert already works and accepts - 1 or 2 arguments. We better don't override it, because clang's standard - C++ library uses static_assert inside classes in several places, and our - replacement via _GL_STATIC_ASSERT does not work in these contexts. */ -# if (defined __cplusplus && defined __clang__ \ - && (4 <= __clang_major__ + (8 <= __clang_minor__))) -# if 5 <= __clang_major__ -/* Avoid "warning: 'static_assert' with no message is a C++17 extension". */ -# pragma clang diagnostic ignored "-Wc++17-extensions" -# else -/* Avoid "warning: static_assert with no message is a C++1z extension". */ -# pragma clang diagnostic ignored "-Wc++1z-extensions" -# endif -# elif !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert -# if !defined _MSC_VER || defined __clang__ -# define _Static_assert(...) \ - _GL_STATIC_ASSERT (__VA_ARGS__, "static assertion failed", -) -# else -# if defined __cplusplus && _MSC_VER >= 1910 - /* In MSVC 14.1 or newer, static_assert accepts one or two arguments, - but _Static_assert is not defined. */ -# define _Static_assert static_assert -# else - /* Work around MSVC preprocessor incompatibility with ISO C; see - . */ -# define _Static_assert(R, ...) \ - _GL_STATIC_ASSERT ((R), "static assertion failed", -) -# endif -# endif -# endif -/* Define static_assert if needed. */ -# if (!defined static_assert \ - && __STDC_VERSION__ < 202311 \ - && (!defined __cplusplus \ - || (__cpp_static_assert < 201411 \ - && __GNUG__ < 6 && __clang_major__ < 6 && _MSC_VER < 1910))) -# if (defined __cplusplus && defined __GNUG__ && __GNUG__ < 6 \ - && __cplusplus == 201103L && !defined __clang__) -/* g++ >= 4.7, < 6 with option -std=c++11 or -std=gnu++11 supports the - two-arguments static_assert but not the one-argument static_assert, and - it does not support _Static_assert. - We have to play preprocessor tricks to distinguish the two cases. */ -# define _GL_SA1(a1) static_assert ((a1), "static assertion failed") -# define _GL_SA2 static_assert -# define _GL_SA3 static_assert -# define _GL_SA_PICK(x1,x2,x3,x4,...) x4 -# define static_assert(...) _GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1) (__VA_ARGS__) -# elif defined __cplusplus && _MSC_VER >= 1900 && !defined __clang__ -/* MSVC 14 in C++ mode supports the two-arguments static_assert but not - the one-argument static_assert, and it does not support _Static_assert. - We have to play preprocessor tricks to distinguish the two cases. - Since the MSVC preprocessor is not ISO C compliant (see above), - the solution is specific to MSVC. */ -# define _GL_EXPAND(x) x -# define _GL_SA1(a1) static_assert ((a1), "static assertion failed") -# define _GL_SA2 static_assert -# define _GL_SA3 static_assert -# define _GL_SA_PICK(x1,x2,x3,x4,...) x4 -# define static_assert(...) _GL_EXPAND(_GL_SA_PICK(__VA_ARGS__,_GL_SA3,_GL_SA2,_GL_SA1)) (__VA_ARGS__) -/* Avoid "fatal error C1189: #error: The C++ Standard Library forbids macroizing keywords." */ -# define _ALLOW_KEYWORD_MACROS 1 -# else -# define static_assert _Static_assert /* C11 requires this #define. */ -# endif -# endif -#endif - - -#endif diff --git a/jni/parted/lib/config.h b/jni/parted/lib/config.h deleted file mode 100755 index cc0347d..0000000 --- a/jni/parted/lib/config.h +++ /dev/null @@ -1,3270 +0,0 @@ -/* lib/config.h. Generated from config.h.in by configure. */ -/* lib/config.h.in. Generated from configure.ac by autoheader. */ - -/* Witness that has been included. */ -#define _GL_CONFIG_H_INCLUDED 1 - - -/* Define if building universal (internal helper macro) */ -/* #undef AC_APPLE_UNIVERSAL_BUILD */ - -/* Define if no multithread safety and no multithreading is desired. */ -/* #undef AVOID_ANY_THREADS */ - -/* Define to the number of bits in type 'ptrdiff_t'. */ -#define BITSIZEOF_PTRDIFF_T 64 - -/* Define to the number of bits in type 'sig_atomic_t'. */ -#define BITSIZEOF_SIG_ATOMIC_T 32 - -/* Define to the number of bits in type 'size_t'. */ -#define BITSIZEOF_SIZE_T 64 - -/* Define to the number of bits in type 'wchar_t'. */ -#define BITSIZEOF_WCHAR_T 32 - -/* Define to the number of bits in type 'wint_t'. */ -#define BITSIZEOF_WINT_T 32 - -/* Define if the c32rtomb function has an incorrect return value. */ -/* #undef C32RTOMB_RETVAL_BUG */ - -/* Define to 1 if using 'alloca.c'. */ -/* #undef C_ALLOCA */ - -/* Define as the bit index in the word where to find bit 0 of the exponent of - 'double'. */ -#define DBL_EXPBIT0_BIT 20 - -/* Define as the word index where to find the exponent of 'double'. */ -#define DBL_EXPBIT0_WORD 1 - -/* Define as the bit index in the word where to find the sign of 'double'. */ -/* #undef DBL_SIGNBIT_BIT */ - -/* Define as the word index where to find the sign of 'double'. */ -/* #undef DBL_SIGNBIT_WORD */ - -/* Enable assertions, etc. */ -#define DEBUG 1 - -/* the name of the file descriptor member of DIR */ -/* #undef DIR_FD_MEMBER_NAME */ - -#ifdef DIR_FD_MEMBER_NAME -# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME) -#else -# define DIR_TO_FD(Dir_p) -1 -#endif - - -/* Probing functionality only */ -/* #undef DISCOVER_ONLY */ - -/* Define to 1 if // is a file system root distinct from /. */ -/* #undef DOUBLE_SLASH_IS_DISTINCT_ROOT */ - -/* Define if struct dirent has a member d_ino that actually works. */ -#define D_INO_IN_DIRENT 1 - -/* device mapper (libdevmapper) support */ -/* #undef ENABLE_DEVICE_MAPPER */ - -/* Mtrace malloc() debugging */ -/* #undef ENABLE_MTRACE */ - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -/* #undef ENABLE_NLS */ - -/* Include PC98 partition tables. (Sometimes excluded to avoid collisions with - msdos partition tables */ -/* #undef ENABLE_PC98 */ - -/* Define this to 1 if F_DUPFD behavior does not match POSIX */ -/* #undef FCNTL_DUPFD_BUGGY */ - -/* Define to nothing if C supports flexible array members, and to 1 if it does - not. That way, with a declaration like 'struct s { int n; short - d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 - compilers. Use 'FLEXSIZEOF (struct s, d, N * sizeof (short))' to calculate - the size in bytes of such a struct containing an N-element array. */ -#define FLEXIBLE_ARRAY_MEMBER /**/ - -/* Define as the bit index in the word where to find bit 0 of the exponent of - 'float'. */ -#define FLT_EXPBIT0_BIT 23 - -/* Define as the word index where to find the exponent of 'float'. */ -#define FLT_EXPBIT0_WORD 0 - -/* Define as the bit index in the word where to find the sign of 'float'. */ -/* #undef FLT_SIGNBIT_BIT */ - -/* Define as the word index where to find the sign of 'float'. */ -/* #undef FLT_SIGNBIT_WORD */ - -/* Define to 1 if mkdir mistakenly creates a directory given with a trailing - dot component. */ -/* #undef FUNC_MKDIR_DOT_BUG */ - -/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */ -#define FUNC_NL_LANGINFO_YESEXPR_WORKS 1 - -/* Define to 1 if realpath() can malloc memory, always gives an absolute path, - and handles a trailing slash correctly. */ -/* #undef FUNC_REALPATH_NEARLY_WORKS */ - -/* Define to 1 if realpath() can malloc memory, always gives an absolute path, - and handles leading slashes and a trailing slash correctly. */ -#define FUNC_REALPATH_WORKS 1 - -/* Define this to 'void' or 'struct timezone' to match the system's - declaration of the second argument to gettimeofday. */ -#define GETTIMEOFDAY_TIMEZONE struct timezone - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module accept shall be considered present. */ -#define GNULIB_ACCEPT IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module bind shall be considered present. */ -#define GNULIB_BIND IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module canonicalize-lgpl shall be considered present. */ -#define GNULIB_CANONICALIZE_LGPL 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module close shall be considered present. */ -#define GNULIB_CLOSE 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module close-stream shall be considered present. */ -#define GNULIB_CLOSE_STREAM 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module connect shall be considered present. */ -#define GNULIB_CONNECT IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module dirname shall be considered present. */ -#define GNULIB_DIRNAME 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fdopendir shall be considered present. */ -#define GNULIB_FDOPENDIR IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fd-safer-flag shall be considered present. */ -#define GNULIB_FD_SAFER_FLAG IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fscanf shall be considered present. */ -#define GNULIB_FSCANF 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fstat shall be considered present. */ -#define GNULIB_FSTAT 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fstatat shall be considered present. */ -#define GNULIB_FSTATAT IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module getcwd shall be considered present. */ -#define GNULIB_GETCWD IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module ioctl shall be considered present. */ -#define GNULIB_IOCTL IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module isblank shall be considered present. */ -#define GNULIB_ISBLANK IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module listen shall be considered present. */ -#define GNULIB_LISTEN IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module localeconv shall be considered present. */ -#define GNULIB_LOCALECONV 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module lock shall be considered present. */ -#define GNULIB_LOCK 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module lstat shall be considered present. */ -#define GNULIB_LSTAT 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module msvc-nothrow shall be considered present. */ -#define GNULIB_MSVC_NOTHROW 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module openat shall be considered present. */ -#define GNULIB_OPENAT IN_PARTED_GNULIB_TESTS - -/* enable some gnulib portability checks */ -#define GNULIB_PORTCHECK 1 - -/* Define to 1 if printf and friends should be labeled with attribute - "__gnu_printf__" instead of "__printf__" */ -/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */ - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module reallocarray shall be considered present. */ -#define GNULIB_REALLOCARRAY 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module scanf shall be considered present. */ -#define GNULIB_SCANF 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module select shall be considered present. */ -#define GNULIB_SELECT IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module setsockopt shall be considered present. */ -#define GNULIB_SETSOCKOPT IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module socket shall be considered present. */ -#define GNULIB_SOCKET IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module stat shall be considered present. */ -#define GNULIB_STAT 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module strerror shall be considered present. */ -#define GNULIB_STRERROR 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module strerror_r-posix shall be considered present. */ -#define GNULIB_STRERROR_R_POSIX IN_PARTED_GNULIB_TESTS - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module tempname shall be considered present. */ -#define GNULIB_TEMPNAME 1 - -/* Define to 1 when the gnulib module accept should be tested. */ -#define GNULIB_TEST_ACCEPT 1 - -/* Define to 1 when the gnulib module bind should be tested. */ -#define GNULIB_TEST_BIND 1 - -/* Define to 1 when the gnulib module btoc32 should be tested. */ -#define GNULIB_TEST_BTOC32 1 - -/* Define to 1 when the gnulib module btowc should be tested. */ -#define GNULIB_TEST_BTOWC 1 - -/* Define to 1 when the gnulib module c32isprint should be tested. */ -#define GNULIB_TEST_C32ISPRINT 1 - -/* Define to 1 when the gnulib module c32rtomb should be tested. */ -#define GNULIB_TEST_C32RTOMB 1 - -/* Define to 1 when the gnulib module c32tob should be tested. */ -#define GNULIB_TEST_C32TOB 1 - -/* Define to 1 when the gnulib module calloc-gnu should be tested. */ -#define GNULIB_TEST_CALLOC_GNU 1 - -/* Define to 1 when the gnulib module calloc-posix should be tested. */ -#define GNULIB_TEST_CALLOC_POSIX 1 - -/* Define to 1 when the gnulib module canonicalize_file_name should be tested. - */ -#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1 - -/* Define to 1 when the gnulib module chdir should be tested. */ -#define GNULIB_TEST_CHDIR 1 - -/* Define to 1 when the gnulib module cloexec should be tested. */ -#define GNULIB_TEST_CLOEXEC 1 - -/* Define to 1 when the gnulib module close should be tested. */ -#define GNULIB_TEST_CLOSE 1 - -/* Define to 1 when the gnulib module closedir should be tested. */ -#define GNULIB_TEST_CLOSEDIR 1 - -/* Define to 1 when the gnulib module connect should be tested. */ -#define GNULIB_TEST_CONNECT 1 - -/* Define to 1 when the gnulib module dirfd should be tested. */ -#define GNULIB_TEST_DIRFD 1 - -/* Define to 1 when the gnulib module dup should be tested. */ -#define GNULIB_TEST_DUP 1 - -/* Define to 1 when the gnulib module dup2 should be tested. */ -#define GNULIB_TEST_DUP2 1 - -/* Define to 1 when the gnulib module environ should be tested. */ -#define GNULIB_TEST_ENVIRON 1 - -/* Define to 1 when the gnulib module fchdir should be tested. */ -#define GNULIB_TEST_FCHDIR 1 - -/* Define to 1 when the gnulib module fcntl should be tested. */ -#define GNULIB_TEST_FCNTL 1 - -/* Define to 1 when the gnulib module fdopen should be tested. */ -#define GNULIB_TEST_FDOPEN 1 - -/* Define to 1 when the gnulib module fdopendir should be tested. */ -#define GNULIB_TEST_FDOPENDIR 1 - -/* Define to 1 when the gnulib module fgetc should be tested. */ -#define GNULIB_TEST_FGETC 1 - -/* Define to 1 when the gnulib module fgets should be tested. */ -#define GNULIB_TEST_FGETS 1 - -/* Define to 1 when the gnulib module fprintf should be tested. */ -#define GNULIB_TEST_FPRINTF 1 - -/* Define to 1 when the gnulib module fputc should be tested. */ -#define GNULIB_TEST_FPUTC 1 - -/* Define to 1 when the gnulib module fputs should be tested. */ -#define GNULIB_TEST_FPUTS 1 - -/* Define to 1 when the gnulib module fread should be tested. */ -#define GNULIB_TEST_FREAD 1 - -/* Define to 1 when the gnulib module free-posix should be tested. */ -#define GNULIB_TEST_FREE_POSIX 1 - -/* Define to 1 when the gnulib module fscanf should be tested. */ -#define GNULIB_TEST_FSCANF 1 - -/* Define to 1 when the gnulib module fstat should be tested. */ -#define GNULIB_TEST_FSTAT 1 - -/* Define to 1 when the gnulib module fstatat should be tested. */ -#define GNULIB_TEST_FSTATAT 1 - -/* Define to 1 when the gnulib module fsync should be tested. */ -#define GNULIB_TEST_FSYNC 1 - -/* Define to 1 when the gnulib module ftruncate should be tested. */ -#define GNULIB_TEST_FTRUNCATE 1 - -/* Define to 1 when the gnulib module fwrite should be tested. */ -#define GNULIB_TEST_FWRITE 1 - -/* Define to 1 when the gnulib module getc should be tested. */ -#define GNULIB_TEST_GETC 1 - -/* Define to 1 when the gnulib module getchar should be tested. */ -#define GNULIB_TEST_GETCHAR 1 - -/* Define to 1 when the gnulib module getcwd should be tested. */ -#define GNULIB_TEST_GETCWD 1 - -/* Define to 1 when the gnulib module getdtablesize should be tested. */ -#define GNULIB_TEST_GETDTABLESIZE 1 - -/* Define to 1 when the gnulib module getopt-posix should be tested. */ -#define GNULIB_TEST_GETOPT_POSIX 1 - -/* Define to 1 when the gnulib module getprogname should be tested. */ -#define GNULIB_TEST_GETPROGNAME 1 - -/* Define to 1 when the gnulib module getrandom should be tested. */ -#define GNULIB_TEST_GETRANDOM 1 - -/* Define to 1 when the gnulib module gettimeofday should be tested. */ -#define GNULIB_TEST_GETTIMEOFDAY 1 - -/* Define to 1 when the gnulib module ioctl should be tested. */ -#define GNULIB_TEST_IOCTL 1 - -/* Define to 1 when the gnulib module iswblank should be tested. */ -#define GNULIB_TEST_ISWBLANK 1 - -/* Define to 1 when the gnulib module iswctype should be tested. */ -#define GNULIB_TEST_ISWCTYPE 1 - -/* Define to 1 when the gnulib module iswdigit should be tested. */ -#define GNULIB_TEST_ISWDIGIT 1 - -/* Define to 1 when the gnulib module iswpunct should be tested. */ -#define GNULIB_TEST_ISWPUNCT 1 - -/* Define to 1 when the gnulib module iswxdigit should be tested. */ -#define GNULIB_TEST_ISWXDIGIT 1 - -/* Define to 1 when the gnulib module listen should be tested. */ -#define GNULIB_TEST_LISTEN 1 - -/* Define to 1 when the gnulib module localeconv should be tested. */ -#define GNULIB_TEST_LOCALECONV 1 - -/* Define to 1 when the gnulib module localename-unsafe should be tested. */ -#define GNULIB_TEST_LOCALENAME_UNSAFE 1 - -/* Define to 1 when the gnulib module lseek should be tested. */ -#define GNULIB_TEST_LSEEK 1 - -/* Define to 1 when the gnulib module lstat should be tested. */ -#define GNULIB_TEST_LSTAT 1 - -/* Define to 1 when the gnulib module malloc-gnu should be tested. */ -#define GNULIB_TEST_MALLOC_GNU 1 - -/* Define to 1 when the gnulib module malloc-posix should be tested. */ -#define GNULIB_TEST_MALLOC_POSIX 1 - -/* Define to 1 when the gnulib module mbrtoc32 should be tested. */ -#define GNULIB_TEST_MBRTOC32 1 - -/* Define to 1 when the gnulib module mbrtowc should be tested. */ -#define GNULIB_TEST_MBRTOWC 1 - -/* Define to 1 when the gnulib module mbsinit should be tested. */ -#define GNULIB_TEST_MBSINIT 1 - -/* Define to 1 when the gnulib module mbszero should be tested. */ -#define GNULIB_TEST_MBSZERO 1 - -/* Define to 1 when the gnulib module mbtowc should be tested. */ -#define GNULIB_TEST_MBTOWC 1 - -/* Define to 1 when the gnulib module memchr should be tested. */ -#define GNULIB_TEST_MEMCHR 1 - -/* Define to 1 when the gnulib module mempcpy should be tested. */ -#define GNULIB_TEST_MEMPCPY 1 - -/* Define to 1 when the gnulib module memrchr should be tested. */ -#define GNULIB_TEST_MEMRCHR 1 - -/* Define to 1 when the gnulib module mkdir should be tested. */ -#define GNULIB_TEST_MKDIR 1 - -/* Define to 1 when the gnulib module mkstemp should be tested. */ -#define GNULIB_TEST_MKSTEMP 1 - -/* Define to 1 when the gnulib module nanosleep should be tested. */ -#define GNULIB_TEST_NANOSLEEP 1 - -/* Define to 1 when the gnulib module nl_langinfo should be tested. */ -#define GNULIB_TEST_NL_LANGINFO 1 - -/* Define to 1 when the gnulib module open should be tested. */ -#define GNULIB_TEST_OPEN 1 - -/* Define to 1 when the gnulib module openat should be tested. */ -#define GNULIB_TEST_OPENAT 1 - -/* Define to 1 when the gnulib module opendir should be tested. */ -#define GNULIB_TEST_OPENDIR 1 - -/* Define to 1 when the gnulib module perror should be tested. */ -#define GNULIB_TEST_PERROR 1 - -/* Define to 1 when the gnulib module pipe should be tested. */ -#define GNULIB_TEST_PIPE 1 - -/* Define to 1 when the gnulib module printf should be tested. */ -#define GNULIB_TEST_PRINTF 1 - -/* Define to 1 when the gnulib module pselect should be tested. */ -#define GNULIB_TEST_PSELECT 1 - -/* Define to 1 when the gnulib module pthread-cond should be tested. */ -#define GNULIB_TEST_PTHREAD_COND 1 - -/* Define to 1 when the gnulib module pthread-mutex should be tested. */ -#define GNULIB_TEST_PTHREAD_MUTEX 1 - -/* Define to 1 when the gnulib module pthread_mutex_timedlock should be - tested. */ -#define GNULIB_TEST_PTHREAD_MUTEX_TIMEDLOCK 1 - -/* Define to 1 when the gnulib module pthread-once should be tested. */ -#define GNULIB_TEST_PTHREAD_ONCE 1 - -/* Define to 1 when the gnulib module pthread-rwlock should be tested. */ -#define GNULIB_TEST_PTHREAD_RWLOCK 1 - -/* Define to 1 when the gnulib module pthread_sigmask should be tested. */ -#define GNULIB_TEST_PTHREAD_SIGMASK 1 - -/* Define to 1 when the gnulib module pthread-thread should be tested. */ -#define GNULIB_TEST_PTHREAD_THREAD 1 - -/* Define to 1 when the gnulib module putc should be tested. */ -#define GNULIB_TEST_PUTC 1 - -/* Define to 1 when the gnulib module putchar should be tested. */ -#define GNULIB_TEST_PUTCHAR 1 - -/* Define to 1 when the gnulib module putenv should be tested. */ -#define GNULIB_TEST_PUTENV 1 - -/* Define to 1 when the gnulib module puts should be tested. */ -#define GNULIB_TEST_PUTS 1 - -/* Define to 1 when the gnulib module raise should be tested. */ -#define GNULIB_TEST_RAISE 1 - -/* Define to 1 when the gnulib module random should be tested. */ -#define GNULIB_TEST_RANDOM 1 - -/* Define to 1 when the gnulib module random_r should be tested. */ -#define GNULIB_TEST_RANDOM_R 1 - -/* Define to 1 when the gnulib module rawmemchr should be tested. */ -#define GNULIB_TEST_RAWMEMCHR 1 - -/* Define to 1 when the gnulib module read should be tested. */ -#define GNULIB_TEST_READ 1 - -/* Define to 1 when the gnulib module readdir should be tested. */ -#define GNULIB_TEST_READDIR 1 - -/* Define to 1 when the gnulib module readlink should be tested. */ -#define GNULIB_TEST_READLINK 1 - -/* Define to 1 when the gnulib module reallocarray should be tested. */ -#define GNULIB_TEST_REALLOCARRAY 1 - -/* Define to 1 when the gnulib module realloc-gnu should be tested. */ -#define GNULIB_TEST_REALLOC_GNU 1 - -/* Define to 1 when the gnulib module realloc-posix should be tested. */ -#define GNULIB_TEST_REALLOC_POSIX 1 - -/* Define to 1 when the gnulib module realpath should be tested. */ -#define GNULIB_TEST_REALPATH 1 - -/* Define to 1 when the gnulib module rewinddir should be tested. */ -#define GNULIB_TEST_REWINDDIR 1 - -/* Define to 1 when the gnulib module rpmatch should be tested. */ -#define GNULIB_TEST_RPMATCH 1 - -/* Define to 1 when the gnulib module scanf should be tested. */ -#define GNULIB_TEST_SCANF 1 - -/* Define to 1 when the gnulib module sched_yield should be tested. */ -#define GNULIB_TEST_SCHED_YIELD 1 - -/* Define to 1 when the gnulib module select should be tested. */ -#define GNULIB_TEST_SELECT 1 - -/* Define to 1 when the gnulib module setenv should be tested. */ -#define GNULIB_TEST_SETENV 1 - -/* Define to 1 when the gnulib module setlocale should be tested. */ -#define GNULIB_TEST_SETLOCALE 1 - -/* Define to 1 when the gnulib module setlocale_null should be tested. */ -#define GNULIB_TEST_SETLOCALE_NULL 1 - -/* Define to 1 when the gnulib module setsockopt should be tested. */ -#define GNULIB_TEST_SETSOCKOPT 1 - -/* Define to 1 when the gnulib module signbit should be tested. */ -#define GNULIB_TEST_SIGNBIT 1 - -/* Define to 1 when the gnulib module sigprocmask should be tested. */ -#define GNULIB_TEST_SIGPROCMASK 1 - -/* Define to 1 when the gnulib module sleep should be tested. */ -#define GNULIB_TEST_SLEEP 1 - -/* Define to 1 when the gnulib module socket should be tested. */ -#define GNULIB_TEST_SOCKET 1 - -/* Define to 1 when the gnulib module stat should be tested. */ -#define GNULIB_TEST_STAT 1 - -/* Define to 1 when the gnulib module stpcpy should be tested. */ -#define GNULIB_TEST_STPCPY 1 - -/* Define to 1 when the gnulib module strdup should be tested. */ -#define GNULIB_TEST_STRDUP 1 - -/* Define to 1 when the gnulib module strerror should be tested. */ -#define GNULIB_TEST_STRERROR 1 - -/* Define to 1 when the gnulib module strerror_r should be tested. */ -#define GNULIB_TEST_STRERROR_R 1 - -/* Define to 1 when the gnulib module strtoll should be tested. */ -#define GNULIB_TEST_STRTOLL 1 - -/* Define to 1 when the gnulib module strtoull should be tested. */ -#define GNULIB_TEST_STRTOULL 1 - -/* Define to 1 when the gnulib module symlink should be tested. */ -#define GNULIB_TEST_SYMLINK 1 - -/* Define to 1 when the gnulib module time should be tested. */ -#define GNULIB_TEST_TIME 1 - -/* Define to 1 when the gnulib module unlink should be tested. */ -#define GNULIB_TEST_UNLINK 1 - -/* Define to 1 when the gnulib module unsetenv should be tested. */ -#define GNULIB_TEST_UNSETENV 1 - -/* Define to 1 when the gnulib module usleep should be tested. */ -#define GNULIB_TEST_USLEEP 1 - -/* Define to 1 when the gnulib module vfprintf should be tested. */ -#define GNULIB_TEST_VFPRINTF 1 - -/* Define to 1 when the gnulib module vprintf should be tested. */ -#define GNULIB_TEST_VPRINTF 1 - -/* Define to 1 when the gnulib module wcrtomb should be tested. */ -#define GNULIB_TEST_WCRTOMB 1 - -/* Define to 1 when the gnulib module wctob should be tested. */ -#define GNULIB_TEST_WCTOB 1 - -/* Define to 1 when the gnulib module wctomb should be tested. */ -#define GNULIB_TEST_WCTOMB 1 - -/* Define to 1 when the gnulib module wctype should be tested. */ -#define GNULIB_TEST_WCTYPE 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module xalloc shall be considered present. */ -#define GNULIB_XALLOC 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module xalloc-die shall be considered present. */ -#define GNULIB_XALLOC_DIE 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_AFUNIX_H */ - -/* Define if the __locale_t type contains the name of the LC_MESSAGES - category. */ -/* #undef HAVE_AIX72_LOCALES */ - -/* Define to 1 if you have 'alloca' after including , a header that - may be supplied by this distribution. */ -#define HAVE_ALLOCA 1 - -/* Define to 1 if works. */ -#define HAVE_ALLOCA_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_ARPA_INET_H 1 - -/* Has backtrace support */ -/* #undef HAVE_BACKTRACE */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_BCRYPT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_BLKID_BLKID_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_BP_SYM_H */ - -/* Define to 1 if you have the 'btowc' function. */ -#define HAVE_BTOWC 1 - -/* Define to 1 if nanosleep mishandles large arguments. */ -#define HAVE_BUG_BIG_NANOSLEEP 1 - -/* Define to 1 if you have the 'canonicalize_file_name' function. */ -/* #undef HAVE_CANONICALIZE_FILE_NAME */ - -/* Define to 1 if you have the `catgets' function. */ -#define HAVE_CATGETS 1 - -/* Define to 1 if you have the Mac OS X function - CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ -/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ - -/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in - the CoreFoundation framework. */ -/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ - -/* Define to 1 if you have the 'clock_getres' function. */ -#define HAVE_CLOCK_GETRES 1 - -/* Define to 1 if you have the 'clock_gettime' function. */ -#define HAVE_CLOCK_GETTIME 1 - -/* Define to 1 if you have the 'clock_settime' function. */ -#define HAVE_CLOCK_SETTIME 1 - -/* Define to 1 if you have the 'closedir' function. */ -#define HAVE_CLOSEDIR 1 - -/* Define if the copysignf function is declared in and available in - libc. */ -/* #undef HAVE_COPYSIGNF_IN_LIBC */ - -/* Define if the copysignl function is declared in and available in - libc. */ -/* #undef HAVE_COPYSIGNL_IN_LIBC */ - -/* Define if the copysign function is declared in and available in - libc. */ -/* #undef HAVE_COPYSIGN_IN_LIBC */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CRTDEFS_H */ - -/* Define to 1 if the alignas and alignof keywords work. */ -/* #undef HAVE_C_ALIGNASOF */ - -/* Define to 1 if bool, true and false work as per C2023. */ -/* #undef HAVE_C_BOOL */ - -/* Define to 1 if the static_assert keyword works. */ -/* #undef HAVE_C_STATIC_ASSERT */ - -/* Define to 1 if C supports variable-length arrays. */ -#define HAVE_C_VARARRAYS 1 - -/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -/* #undef HAVE_DCGETTEXT */ - -/* Define to 1 if you have the declaration of 'alarm', and to 0 if you don't. - */ -#define HAVE_DECL_ALARM 1 - -/* Define to 1 if you have the declaration of 'copysign', and to 0 if you - don't. */ -/* #undef HAVE_DECL_COPYSIGN */ - -/* Define to 1 if you have the declaration of 'copysignf', and to 0 if you - don't. */ -/* #undef HAVE_DECL_COPYSIGNF */ - -/* Define to 1 if you have the declaration of 'copysignl', and to 0 if you - don't. */ -/* #undef HAVE_DECL_COPYSIGNL */ - -/* Define to 1 if you have the declaration of 'dirfd', and to 0 if you don't. - */ -#define HAVE_DECL_DIRFD 1 - -/* Define to 1 if you have the declaration of 'ecvt', and to 0 if you don't. - */ -#define HAVE_DECL_ECVT 0 - -/* Define to 1 if you have the declaration of 'execvpe', and to 0 if you - don't. */ -#define HAVE_DECL_EXECVPE 1 - -/* Define to 1 if you have the declaration of 'fchdir', and to 0 if you don't. - */ -#define HAVE_DECL_FCHDIR 1 - -/* Define to 1 if you have the declaration of 'fcloseall', and to 0 if you - don't. */ -#define HAVE_DECL_FCLOSEALL 0 - -/* Define to 1 if you have the declaration of 'fcvt', and to 0 if you don't. - */ -#define HAVE_DECL_FCVT 0 - -/* Define to 1 if you have the declaration of 'fdopendir', and to 0 if you - don't. */ -#define HAVE_DECL_FDOPENDIR 1 - -/* Define to 1 if you have the declaration of 'gcvt', and to 0 if you don't. - */ -#define HAVE_DECL_GCVT 0 - -/* Define to 1 if you have the declaration of 'getcwd', and to 0 if you don't. - */ -#define HAVE_DECL_GETCWD 1 - -/* Define to 1 if you have the declaration of 'getdtablesize', and to 0 if you - don't. */ -#define HAVE_DECL_GETDTABLESIZE 0 - -/* Define to 1 if you have the declaration of 'getw', and to 0 if you don't. - */ -#define HAVE_DECL_GETW 0 - -/* Define to 1 if you have the declaration of 'inet_pton', and to 0 if you - don't. */ -#define HAVE_DECL_INET_PTON 1 - -/* Define to 1 if you have the declaration of 'initstate', and to 0 if you - don't. */ -#define HAVE_DECL_INITSTATE 1 - -/* Define to 1 if you have the declaration of 'isblank', and to 0 if you - don't. */ -#define HAVE_DECL_ISBLANK 1 - -/* Define to 1 if you have the declaration of 'iswblank', and to 0 if you - don't. */ -#define HAVE_DECL_ISWBLANK 1 - -/* Define to 1 if you have the declaration of 'mbrtowc', and to 0 if you - don't. */ -/* #undef HAVE_DECL_MBRTOWC */ - -/* Define to 1 if you have the declaration of 'mbsinit', and to 0 if you - don't. */ -/* #undef HAVE_DECL_MBSINIT */ - -/* Define to 1 if you have the declaration of 'memrchr', and to 0 if you - don't. */ -#define HAVE_DECL_MEMRCHR 1 - -/* Define to 1 if you have the declaration of 'program_invocation_name', and - to 0 if you don't. */ -#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0 - -/* Define to 1 if you have the declaration of 'program_invocation_short_name', - and to 0 if you don't. */ -#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0 - -/* Define to 1 if you have the declaration of 'putw', and to 0 if you don't. - */ -#define HAVE_DECL_PUTW 0 - -/* Define to 1 if you have the declaration of 'setenv', and to 0 if you don't. - */ -#define HAVE_DECL_SETENV 1 - -/* Define to 1 if you have the declaration of 'setstate', and to 0 if you - don't. */ -#define HAVE_DECL_SETSTATE 1 - -/* Define to 1 if you have the declaration of 'sleep', and to 0 if you don't. - */ -#define HAVE_DECL_SLEEP 1 - -/* Define to 1 if you have the declaration of 'strdup', and to 0 if you don't. - */ -#define HAVE_DECL_STRDUP 1 - -/* Define to 1 if you have the declaration of 'strerror_r', and to 0 if you - don't. */ -#define HAVE_DECL_STRERROR_R 1 - -/* Define to 1 if you have the declaration of 'towlower', and to 0 if you - don't. */ -/* #undef HAVE_DECL_TOWLOWER */ - -/* Define to 1 if you have the declaration of 'unsetenv', and to 0 if you - don't. */ -#define HAVE_DECL_UNSETENV 1 - -/* Define to 1 if you have the declaration of 'wcrtomb', and to 0 if you - don't. */ -/* #undef HAVE_DECL_WCRTOMB */ - -/* Define to 1 if you have the declaration of 'wcsdup', and to 0 if you don't. - */ -#define HAVE_DECL_WCSDUP 1 - -/* Define to 1 if you have the declaration of 'wctob', and to 0 if you don't. - */ -#define HAVE_DECL_WCTOB 1 - -/* Define to 1 if you have the declaration of '_putenv', and to 0 if you - don't. */ -#define HAVE_DECL__PUTENV 0 - -/* Define to 1 if you have the declaration of '__argv', and to 0 if you don't. - */ -/* #undef HAVE_DECL___ARGV */ - -/* Define to 1 if you have the declaration of '__fpending', and to 0 if you - don't. */ -#define HAVE_DECL___FPENDING 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_DIRENT_H 1 - -/* Define to 1 if you have the 'dirfd' function. */ -#define HAVE_DIRFD 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define to 1 if you have the `duplocale' function. */ -#define HAVE_DUPLOCALE 1 - -/* Define if you have the declaration of environ. */ -#define HAVE_ENVIRON_DECL 1 - -/* Define to 1 if you have the `error' function. */ -#define HAVE_ERROR 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_ERROR_H 1 - -/* Define to 1 if you have the `faccessat' function. */ -#define HAVE_FACCESSAT 1 - -/* Define if the locale_t type contains insufficient information, as on - OpenBSD. */ -/* #undef HAVE_FAKE_LOCALES */ - -/* Define to 1 if you have the 'fchdir' function. */ -#define HAVE_FCHDIR 1 - -/* Define to 1 if you have the 'fcntl' function. */ -#define HAVE_FCNTL 1 - -/* Define to 1 if you have the 'fdopendir' function. */ -#define HAVE_FDOPENDIR 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_FEATURES_H 1 - -/* Define to 1 if you have the `freelocale' function. */ -#define HAVE_FREELOCALE 1 - -/* Define if the 'free' function is guaranteed to preserve errno. */ -/* #undef HAVE_FREE_POSIX */ - -/* Define to 1 if you have the 'fstatat' function. */ -#define HAVE_FSTATAT 1 - -/* Define to 1 if you have the 'fsync' function. */ -#define HAVE_FSYNC 1 - -/* Define to 1 if you have the `ftruncate' function. */ -#define HAVE_FTRUNCATE 1 - -/* Define to 1 if you have the 'getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if getcwd works, but with shorter paths than is generally - tested with the replacement. */ -/* #undef HAVE_GETCWD_SHORTER */ - -/* Define to 1 if you have the 'getdtablesize' function. */ -/* #undef HAVE_GETDTABLESIZE */ - -/* Define to 1 if you have the 'getexecname' function. */ -/* #undef HAVE_GETEXECNAME */ - -/* Define to 1 if you have the 'getlocalename_l' function. */ -/* #undef HAVE_GETLOCALENAME_L */ - -/* Define to 1 if you have the header file. */ -#define HAVE_GETOPT_H 1 - -/* Define to 1 if you have the 'getopt_long_only' function. */ -#define HAVE_GETOPT_LONG_ONLY 1 - -/* Define to 1 if you have the 'getppriv' function. */ -/* #undef HAVE_GETPPRIV */ - -/* Define to 1 if you have the `getprogname' function. */ -#define HAVE_GETPROGNAME 1 - -/* Define to 1 if you have the `getrandom' function. */ -#define HAVE_GETRANDOM 1 - -/* Define if the GNU gettext() function is already present or preinstalled. */ -/* #undef HAVE_GETTEXT */ - -/* Define to 1 if you have the 'gettimeofday' function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the 'getuid' function. */ -#define HAVE_GETUID 1 - -/* Define if the uselocale function exists, may be safely called, and returns - sufficient information. */ -#define HAVE_GOOD_USELOCALE 1 - -/* Define if you have the iconv() function and it works. */ -#define HAVE_ICONV 1 - -/* Define to 1 if you have the 'inet_pton' function. */ -/* #undef HAVE_INET_PTON */ - -/* Define to 1 if you have the `initstate' function. */ -#define HAVE_INITSTATE 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the 'ioctl' function. */ -#define HAVE_IOCTL 1 - -/* Define to 1 if defines AF_INET. */ -#define HAVE_IPV4 1 - -/* Define to 1 if defines AF_INET6. */ -#define HAVE_IPV6 1 - -/* Define to 1 if you have the 'isblank' function. */ -#define HAVE_ISBLANK 1 - -/* Define if the isnan(double) function is available in libc. */ -#define HAVE_ISNAND_IN_LIBC 1 - -/* Define if the isnan(float) function is available in libc. */ -#define HAVE_ISNANF_IN_LIBC 1 - -/* Define if the isnan(long double) function is available in libc. */ -#define HAVE_ISNANL_IN_LIBC 1 - -/* Define to 1 if you have the `iswblank' function. */ -#define HAVE_ISWBLANK 1 - -/* Define to 1 if you have the 'iswcntrl' function. */ -#define HAVE_ISWCNTRL 1 - -/* Define to 1 if you have the 'iswctype' function. */ -#define HAVE_ISWCTYPE 1 - -/* Define if you have and nl_langinfo(CODESET). */ -#define HAVE_LANGINFO_CODESET 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_LANGINFO_H 1 - -/* Define if you have and nl_langinfo(YESEXPR). */ -#define HAVE_LANGINFO_YESEXPR 1 - -/* Define if your file defines LC_MESSAGES. */ -#define HAVE_LC_MESSAGES 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_LIBINTL_H 1 - -/* Define to 1 if you have the 'parted' library (-lparted). */ -/* #undef HAVE_LIBPARTED */ - -/* have readline */ -/* #undef HAVE_LIBREADLINE */ - -/* Define to 1 if the bcrypt library is guaranteed to be present. */ -/* #undef HAVE_LIB_BCRYPT */ - -/* Define to 1 if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_LINUX_EXT2_FS_H */ - -/* Define to 1 if the system has the type 'long long int'. */ -#define HAVE_LONG_LONG_INT 1 - -/* Define to 1 if you have the 'lstat' function. */ -#define HAVE_LSTAT 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MALLOC_H 1 - -/* Define if malloc, realloc, and calloc set errno on allocation failure. */ -#define HAVE_MALLOC_POSIX 1 - -/* Define to 1 if mmap()'s MAP_ANONYMOUS flag is available after including - config.h and . */ -#define HAVE_MAP_ANONYMOUS 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MATH_H 1 - -/* Define to 1 if you have the 'mbrtowc' function. */ -#define HAVE_MBRTOWC 1 - -/* Define to 1 if you have the 'mbsinit' function. */ -#define HAVE_MBSINIT 1 - -/* Define to 1 if declares mbstate_t. */ -#define HAVE_MBSTATE_T 1 - -/* Define to 1 if you have the `mbtowc' function. */ -#define HAVE_MBTOWC 1 - -/* Define to 1 if you have the `mempcpy' function. */ -#define HAVE_MEMPCPY 1 - -/* Define to 1 if you have the 'memrchr' function. */ -#define HAVE_MEMRCHR 1 - -/* Define to 1 if getcwd minimally works, that is, its result can be trusted - when it succeeds. */ -#define HAVE_MINIMALLY_WORKING_GETCWD 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MINIX_CONFIG_H */ - -/* Define to 1 if defines the MIN and MAX macros. */ -/* #undef HAVE_MINMAX_IN_LIMITS_H */ - -/* Define to 1 if defines the MIN and MAX macros. */ -#define HAVE_MINMAX_IN_SYS_PARAM_H 1 - -/* Define to 1 if you have the 'mkstemp' function. */ -#define HAVE_MKSTEMP 1 - -/* Define to 1 if you have the 'mprotect' function. */ -#define HAVE_MPROTECT 1 - -/* Define to 1 on MSVC platforms that have the "invalid parameter handler" - concept. */ -/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */ - -/* Define if the locale_t type does not contain the name of each locale - category. */ -/* #undef HAVE_NAMELESS_LOCALES */ - -/* Define to 1 if you have the header file. */ -#define HAVE_NETDB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_NETINET_IN_H 1 - -/* Define to 1 if you have the `newlocale' function. */ -#define HAVE_NEWLOCALE 1 - -/* Define to 1 if you have the `nl_langinfo' function. */ -#define HAVE_NL_LANGINFO 1 - -/* Define to 1 if you have the 'openat' function. */ -#define HAVE_OPENAT 1 - -/* Define to 1 if you have the 'opendir' function. */ -#define HAVE_OPENDIR 1 - -/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't, - setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */ -#define HAVE_PARTLY_WORKING_GETCWD 1 - -/* Define to 1 if you have the 'pipe' function. */ -#define HAVE_PIPE 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_PRIV_H */ - -/* Define to 1 if you have the 'pselect' function. */ -#define HAVE_PSELECT 1 - -/* Define if you have the header and the POSIX threads API. */ -#define HAVE_PTHREAD_API 1 - -/* Define to 1 if you have the `pthread_atfork' function. */ -#define HAVE_PTHREAD_ATFORK 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_PTHREAD_H 1 - -/* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ -#define HAVE_PTHREAD_MUTEX_RECURSIVE 1 - -/* Define if the POSIX multithreading library has read/write locks. */ -#define HAVE_PTHREAD_RWLOCK 1 - -/* Define if the 'pthread_rwlock_rdlock' function prefers a writer to a - reader. */ -/* #undef HAVE_PTHREAD_RWLOCK_RDLOCK_PREFER_WRITER */ - -/* Define to 1 if the pthread_sigmask function can be used (despite bugs). */ -#define HAVE_PTHREAD_SIGMASK 1 - -/* Define to 1 if the system has the type 'pthread_spinlock_t'. */ -#define HAVE_PTHREAD_SPINLOCK_T 1 - -/* Define to 1 if the system has the type 'pthread_t'. */ -#define HAVE_PTHREAD_T 1 - -/* Define to 1 if you have the 'raise' function. */ -#define HAVE_RAISE 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_RANDOM_H */ - -/* Define to 1 if you have the 'random_r' function. */ -/* #undef HAVE_RANDOM_R */ - -/* Define to 1 if you have the 'rawmemchr' function. */ -/* #undef HAVE_RAWMEMCHR */ - -/* Define to 1 if you have the 'readdir' function. */ -#define HAVE_READDIR 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_READLINE_HISTORY_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_READLINE_READLINE_H 1 - -/* Define to 1 if you have the 'readlink' function. */ -#define HAVE_READLINK 1 - -/* Define to 1 if you have the `reallocarray' function. */ -#define HAVE_REALLOCARRAY 1 - -/* Define to 1 if you have the 'realpath' function. */ -#define HAVE_REALPATH 1 - -/* Define to 1 if you have the 'rewinddir' function. */ -#define HAVE_REWINDDIR 1 - -/* Define to 1 if you have the 'rl_completion_matches' function. */ -#define HAVE_RL_COMPLETION_MATCHES 1 - -/* Define to 1 if you have the 'rpmatch' function. */ -/* #undef HAVE_RPMATCH */ - -/* Define to 1 if 'long double' and 'double' have the same representation. */ -/* #undef HAVE_SAME_LONG_DOUBLE_AS_DOUBLE */ - -/* Define to 1 if the system has the type 'sa_family_t'. */ -#define HAVE_SA_FAMILY_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SCHED_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SDKDDKVER_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SEARCH_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SEMAPHORE_H 1 - -/* Define to 1 if you have the 'setdtablesize' function. */ -/* #undef HAVE_SETDTABLESIZE */ - -/* Define to 1 if you have the 'setenv' function. */ -#define HAVE_SETENV 1 - -/* Define to 1 if you have the `setstate' function. */ -#define HAVE_SETSTATE 1 - -/* Define to 1 if you have the 'shutdown' function. */ -#define HAVE_SHUTDOWN 1 - -/* Define to 1 if you have the 'sigaction' function. */ -#define HAVE_SIGACTION 1 - -/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ -#define HAVE_SIGNED_SIG_ATOMIC_T 1 - -/* Define to 1 if 'wchar_t' is a signed integer type. */ -/* #undef HAVE_SIGNED_WCHAR_T */ - -/* Define to 1 if 'wint_t' is a signed integer type. */ -/* #undef HAVE_SIGNED_WINT_T */ - -/* Define to 1 if the system has the type 'sigset_t'. */ -#define HAVE_SIGSET_T 1 - -/* Define to 1 if you have the 'sleep' function. */ -#define HAVE_SLEEP 1 - -/* Define to 1 if you have the 'snprintf' function. */ -#define HAVE_SNPRINTF 1 - -/* Define if the locale_t type is as on Solaris 11.4. */ -/* #undef HAVE_SOLARIS114_LOCALES */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STDBOOL_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDCKDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDIO_EXT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDIO_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `stpcpy' function. */ -#define HAVE_STPCPY 1 - -/* Define to 1 if you have the `strerror_r' function. */ -#define HAVE_STRERROR_R 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the 'strtoll' function. */ -#define HAVE_STRTOLL 1 - -/* Define to 1 if you have the 'strtoull' function. */ -#define HAVE_STRTOULL 1 - -/* Define to 1 if 'decimal_point' is a member of 'struct lconv'. */ -/* #undef HAVE_STRUCT_LCONV_DECIMAL_POINT */ - -/* Define to 1 if 'int_p_cs_precedes' is a member of 'struct lconv'. */ -/* #undef HAVE_STRUCT_LCONV_INT_P_CS_PRECEDES */ - -/* Define to 1 if the system has the type 'struct random_data'. */ -/* #undef HAVE_STRUCT_RANDOM_DATA */ - -/* Define to 1 if the system has the type 'struct sockaddr_storage'. */ -#define HAVE_STRUCT_SOCKADDR_STORAGE 1 - -/* Define to 1 if 'ss_family' is a member of 'struct sockaddr_storage'. */ -#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 - -/* Define to 1 if 'st_atimensec' is a member of 'struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */ - -/* Define to 1 if 'st_atimespec.tv_nsec' is a member of 'struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC */ - -/* Define to 1 if 'st_atim.st__tim.tv_nsec' is a member of 'struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */ - -/* Define to 1 if 'st_atim.tv_nsec' is a member of 'struct stat'. */ -#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 - -/* Define to 1 if 'st_birthtimensec' is a member of 'struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC */ - -/* Define to 1 if 'st_birthtimespec.tv_nsec' is a member of 'struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC */ - -/* Define to 1 if 'st_birthtim.tv_nsec' is a member of 'struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC */ - -/* Define to 1 if you have the 'symlink' function. */ -#define HAVE_SYMLINK 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_BITYPES_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_INTTYPES_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_IOCTL_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_MMAN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_RANDOM_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SELECT_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_SINGLE_THREADED_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SOCKET_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_UIO_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_UN_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_TERMCAP_H 1 - -/* Define to 1 if you have the `thrd_create' function. */ -/* #undef HAVE_THRD_CREATE */ - -/* Define to 1 if you have the header file. */ -#define HAVE_THREADS_H 1 - -/* Define to 1 if you have the 'towlower' function. */ -#define HAVE_TOWLOWER 1 - -/* Define to 1 if you have the `tsearch' function. */ -#define HAVE_TSEARCH 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UCHAR_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_UNISTRING_WOE32DLL_H */ - -/* Define to 1 if defines AF_UNIX. */ -#define HAVE_UNIXSOCKET 1 - -/* Define to 1 if you have the 'unsetenv' function. */ -#define HAVE_UNSETENV 1 - -/* Define to 1 if the system has the type 'unsigned long long int'. */ -#define HAVE_UNSIGNED_LONG_LONG_INT 1 - -/* Define to 1 if you have the `uselocale' function. */ -#define HAVE_USELOCALE 1 - -/* Define to 1 if you have the 'usleep' function. */ -#define HAVE_USLEEP 1 - -/* Define if you have a global __progname variable */ -/* #undef HAVE_VAR___PROGNAME */ - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#define HAVE_VISIBILITY 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_WCHAR_H 1 - -/* Define to 1 if you have the 'wcrtomb' function. */ -#define HAVE_WCRTOMB 1 - -/* Define to 1 if you have the 'wctob' function. */ -#define HAVE_WCTOB 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_WCTYPE_H 1 - -/* Define to 1 if the compiler and linker support weak declarations of - symbols. */ -#define HAVE_WEAK_SYMBOLS 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_WINSOCK2_H */ - -/* Define if you have the 'wint_t' type. */ -#define HAVE_WINT_T 1 - -/* Define if the c32rtomb function basically works. */ -#define HAVE_WORKING_C32RTOMB 1 - -/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX - 7.1. */ -/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */ - -/* Define if the mbrtoc32 function basically works. */ -#define HAVE_WORKING_MBRTOC32 1 - -/* Define to 1 if O_NOATIME works. */ -#define HAVE_WORKING_O_NOATIME 1 - -/* Define to 1 if O_NOFOLLOW works. */ -#define HAVE_WORKING_O_NOFOLLOW 1 - -/* Define if the uselocale function exists and may safely be called. */ -#define HAVE_WORKING_USELOCALE 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_WS2TCPIP_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_XLOCALE_H 1 - -/* Define to 1 if you have the '_chsize' function. */ -/* #undef HAVE__CHSIZE */ - -/* Define to 1 if you have the '_set_invalid_parameter_handler' function. */ -/* #undef HAVE__SET_INVALID_PARAMETER_HANDLER */ - -/* Define to 1 if the compiler supports __builtin_expect, - and to 2 if does. */ -#define HAVE___BUILTIN_EXPECT 1 -#ifndef HAVE___BUILTIN_EXPECT -# define __builtin_expect(e, c) (e) -#elif HAVE___BUILTIN_EXPECT == 2 -# include -#endif - - -/* Define to 1 if ctype.h defines __header_inline. */ -/* #undef HAVE___HEADER_INLINE */ - -/* Please see the Gnulib manual for how to use these macros. - - Suppress extern inline with HP-UX cc, as it appears to be broken; see - . - - Suppress extern inline with Sun C in standards-conformance mode, as it - mishandles inline functions that call each other. E.g., for 'inline void f - (void) { } inline void g (void) { f (); }', c99 incorrectly complains - 'reference to static identifier "f" in extern inline function'. - This bug was observed with Oracle Developer Studio 12.6 - (Sun C 5.15 SunOS_sparc 2017/05/30). - - Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) - on configurations that mistakenly use 'static inline' to implement - functions or macros in standard C headers like . For example, - if isdigit is mistakenly implemented via a static inline function, - a program containing an extern inline function that calls isdigit - may not work since the C standard prohibits extern inline functions - from calling static functions (ISO C 99 section 6.7.4.(3). - This bug is known to occur on: - - OS X 10.8 and earlier; see: - https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html - - DragonFly; see - http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log - - FreeBSD; see: - https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html - - OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. - - GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. It defines a macro - __GNUC_STDC_INLINE__ to indicate this situation or a macro - __GNUC_GNU_INLINE__ to indicate the opposite situation. - GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline - semantics but warns, unless -fgnu89-inline is used: - warning: C99 inline functions are not supported; using GNU89 - warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute - It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. - */ -#if (((defined __APPLE__ && defined __MACH__) \ - || defined __DragonFly__ || defined __FreeBSD__) \ - && (defined HAVE___HEADER_INLINE \ - ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ - && ! defined __clang__) \ - : ((! defined _DONT_USE_CTYPE_INLINE_ \ - && (defined __GNUC__ || defined __cplusplus)) \ - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - && defined __GNUC__ && ! defined __cplusplus)))) -# define _GL_EXTERN_INLINE_STDHEADER_BUG -#endif -#if ((__GNUC__ \ - ? (defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - && !defined __PCC__) \ - : (199901L <= __STDC_VERSION__ \ - && !defined __HP_cc \ - && !defined __PGI \ - && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# define _GL_INLINE inline -# define _GL_EXTERN_INLINE extern inline -# define _GL_EXTERN_INLINE_IN_USE -#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined __PCC__ \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ - /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ -# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) -# else -# define _GL_INLINE extern inline -# endif -# define _GL_EXTERN_INLINE extern -# define _GL_EXTERN_INLINE_IN_USE -#else -# define _GL_INLINE _GL_UNUSED static -# define _GL_EXTERN_INLINE _GL_UNUSED static -#endif - -/* In GCC 4.6 (inclusive) to 5.1 (exclusive), - suppress bogus "no previous prototype for 'FOO'" - and "no previous declaration for 'FOO'" diagnostics, - when FOO is an inline function in the header; see - and - . */ -#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ -# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ -# define _GL_INLINE_HEADER_CONST_PRAGMA -# else -# define _GL_INLINE_HEADER_CONST_PRAGMA \ - _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") -# endif -# define _GL_INLINE_HEADER_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ - _GL_INLINE_HEADER_CONST_PRAGMA -# define _GL_INLINE_HEADER_END \ - _Pragma ("GCC diagnostic pop") -#else -# define _GL_INLINE_HEADER_BEGIN -# define _GL_INLINE_HEADER_END -#endif - -/* Define to 1 if the compiler supports the keyword '__inline'. */ -#define HAVE___INLINE 1 - -/* Define to 1 if you have the '__xpg_strerror_r' function. */ -/* #undef HAVE___XPG_STRERROR_R */ - -/* Extract low level special HFS(+) files for debugging purposes when using - the "check" command (NOT FOR PACKAGING) */ -/* #undef HFS_EXTRACT_FS */ - -/* Define as const if the declaration of iconv() needs const. */ -#define ICONV_CONST - -/* Define as the bit index in the word where to find bit 0 of the exponent of - 'long double'. */ -#define LDBL_EXPBIT0_BIT 16 - -/* Define as the word index where to find the exponent of 'long double'. */ -#define LDBL_EXPBIT0_WORD 3 - -/* Define as the bit index in the word where to find the sign of 'long - double'. */ -/* #undef LDBL_SIGNBIT_BIT */ - -/* Define as the word index where to find the sign of 'long double'. */ -/* #undef LDBL_SIGNBIT_WORD */ - -/* Define if localename.c overrides newlocale(), duplocale(), freelocale(). */ -/* #undef LOCALENAME_ENHANCE_LOCALE_FUNCS */ - -/* Define to 1 if lseek does not detect pipes. */ -/* #undef LSEEK_PIPE_BROKEN */ - -/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing - slash. */ -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#define LT_OBJDIR ".libs/" - -/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ -#define MALLOC_0_IS_NONNULL 1 - -/* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */ -/* #undef MAP_ANONYMOUS */ - -/* Define if the mbrtoc32 function does not return (size_t) -2 for empty - input. */ -#define MBRTOC32_EMPTY_INPUT_BUG 1 - -/* Define if the mbrtoc32 function may signal encoding errors in the C locale. - */ -#define MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ 1 - -/* Define if the mbrtoc32 function does not accept the input bytes one-by-one. - */ -/* #undef MBRTOC32_MULTIBYTE_LOCALE_BUG */ - -/* Define if the mbrtowc function does not return (size_t) -2 for empty input. - */ -#define MBRTOWC_EMPTY_INPUT_BUG 1 - -/* Define if the mbrtowc function may signal encoding errors in the C locale. - */ -#define MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ 1 - -/* Define if the mbrtowc function has the NULL pwc argument bug. */ -/* #undef MBRTOWC_NULL_ARG1_BUG */ - -/* Define if the mbrtowc function has the NULL string argument bug. */ -/* #undef MBRTOWC_NULL_ARG2_BUG */ - -/* Define if the mbrtowc function does not return 0 for a NUL character. */ -/* #undef MBRTOWC_NUL_RETVAL_BUG */ - -/* Define if the mbrtowc function returns a wrong return value. */ -/* #undef MBRTOWC_RETVAL_BUG */ - -/* Define if the mbrtowc function stores a wide character when reporting - incomplete input. */ -/* #undef MBRTOWC_STORES_INCOMPLETE_BUG */ - -/* Use GNU style printf and scanf. */ -#ifndef __USE_MINGW_ANSI_STDIO -# define __USE_MINGW_ANSI_STDIO 1 -#endif - - -/* Define to 1 if the encoding of NaN 'double's is as in IEEE 754-2008 § - 6.2.1. */ -/* #undef MIPS_NAN2008_DOUBLE */ - -/* Define to 1 if the encoding of NaN 'float's is as in IEEE 754-2008 § - 6.2.1. */ -/* #undef MIPS_NAN2008_FLOAT */ - -/* Define to 1 if the encoding of NaN 'long double's is as in IEEE 754-2008 § - 6.2.1. */ -/* #undef MIPS_NAN2008_LONG_DOUBLE */ - -/* Define to 1 on musl libc. */ -/* #undef MUSL_LIBC */ - -/* Define to 1 if assertions should be disabled. */ -/* #undef NDEBUG */ - -/* Define to 1 if realloc should abort upon undefined behaviour. */ -/* #undef NEED_SANITIZED_REALLOC */ - -/* Define to 1 to enable general improvements of setlocale. */ -#define NEED_SETLOCALE_IMPROVED 0 - -/* Define to 1 to enable a multithread-safety fix of setlocale. */ -#define NEED_SETLOCALE_MTSAFE 1 - -/* Define to 1 if nl_langinfo is multithread-safe. */ -#define NL_LANGINFO_MTSAFE 1 - -/* Define to 1 if open() fails to recognize a trailing slash. */ -/* #undef OPEN_TRAILING_SLASH_BUG */ - -/* Name of package */ -#define PACKAGE "parted" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "bug-parted@gnu.org" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "GNU parted" - -/* String identifying the packager of this software */ -/* #undef PACKAGE_PACKAGER */ - -/* Packager info for bug reports (URL/e-mail/...) */ -/* #undef PACKAGE_PACKAGER_BUG_REPORTS */ - -/* Packager-specific version information */ -/* #undef PACKAGE_PACKAGER_VERSION */ - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GNU parted 3.6.6-c5bd" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "parted" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "https://www.gnu.org/software/parted/" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "3.6.6-c5bd" - -/* Define to the type that is the result of default argument promotions of - type mode_t. */ -#define PROMOTED_MODE_T mode_t - -/* Define if pthread_create is an inline function. */ -/* #undef PTHREAD_CREATE_IS_INLINE */ - -/* Define if the pthread_in_use() detection is hard. */ -/* #undef PTHREAD_IN_USE_DETECTION_HARD */ - -/* Define if the 'robust' attribute of pthread_mutex* doesn't exist. */ -#define PTHREAD_MUTEXATTR_ROBUST_UNIMPLEMENTED 1 - -/* Define if the pthread_rwlock wait queue handling is not reasonable. */ -/* #undef PTHREAD_RWLOCK_BAD_WAITQUEUE */ - -/* Define if the functions pthread_rwlock_timedrdlock and - pthread_rwlock_timedwrlock don't exist. */ -/* #undef PTHREAD_RWLOCK_LACKS_TIMEOUT */ - -/* Define if all pthread_rwlock* functions don't exist. */ -/* #undef PTHREAD_RWLOCK_UNIMPLEMENTED */ - -/* Define to 1 if pthread_sigmask(), when it fails, returns -1 and sets errno. - */ -/* #undef PTHREAD_SIGMASK_FAILS_WITH_ERRNO */ - -/* Define to 1 if pthread_sigmask may return 0 and have no effect. */ -/* #undef PTHREAD_SIGMASK_INEFFECTIVE */ - -/* Define to 1 if pthread_sigmask() unblocks signals incorrectly. */ -/* #undef PTHREAD_SIGMASK_UNBLOCK_BUG */ - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'ptrdiff_t'. */ -#define PTRDIFF_T_SUFFIX l - -/* Define to 1 if readlink fails to recognize a trailing slash. */ -/* #undef READLINK_TRAILING_SLASH_BUG */ - -/* Define to 1 if readlink sets errno instead of truncating a too-long link. - */ -/* #undef READLINK_TRUNCATE_BUG */ - -/* Disable all writing code */ -/* #undef READ_ONLY */ - -/* Define to 1 if gnulib's fchdir() replacement is used. */ -/* #undef REPLACE_FCHDIR */ - -/* Define to 1 if stat needs help when passed a file name with a trailing - slash */ -/* #undef REPLACE_FUNC_STAT_FILE */ - -/* Define if nl_langinfo exists but is overridden by gnulib. */ -#define REPLACE_NL_LANGINFO 1 - -/* Define to 1 if open() should work around the inability to open a directory. - */ -/* #undef REPLACE_OPEN_DIRECTORY */ - -/* Define to 1 if strerror(0) does not return a message implying success. */ -/* #undef REPLACE_STRERROR_0 */ - -/* Define to 1 if setlocale (LC_ALL, NULL) is multithread-safe. */ -#define SETLOCALE_NULL_ALL_MTSAFE 0 - -/* Define to 1 if setlocale (category, NULL) is multithread-safe. */ -#define SETLOCALE_NULL_ONE_MTSAFE 0 - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'sig_atomic_t'. */ -#define SIG_ATOMIC_T_SUFFIX - -/* The size of 'off_t', as computed by sizeof. */ -#define SIZEOF_OFF_T 8 - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'size_t'. */ -#define SIZE_T_SUFFIX ul - -/* 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 */ - -/* Define to 1 if the 'S_IS*' macros in do not work properly. */ -/* #undef STAT_MACROS_BROKEN */ - -/* Define to 1 if all of the C89 standard headers exist (not just the ones - required in a freestanding environment). This macro is provided for - backward compatibility; new code need not use it. */ -#define STDC_HEADERS 1 - -/* Define to 1 if strerror_r returns char *. */ -#define STRERROR_R_CHAR_P 1 - -/* Define to 1 if the type of the st_atim member of a struct stat is struct - timespec. */ -#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1 - -/* Define to 1 if unlink (dir) cannot possibly succeed. */ -#define UNLINK_CANNOT_UNLINK_DIR 1 - -/* Define to 1 if unlink() on a parent directory may succeed */ -/* #undef UNLINK_PARENT_BUG */ - -/* Define if you have sufficient blkid support. */ -/* #undef USE_BLKID */ - -/* Define if the combination of the ISO C and POSIX multithreading APIs can be - used. */ -/* #undef USE_ISOC_AND_POSIX_THREADS */ - -/* Define if the ISO C multithreading library can be used. */ -/* #undef USE_ISOC_THREADS */ - -/* Define to enable the declarations of ISO C 23 Annex K types and functions. */ -#if !(defined __STDC_WANT_LIB_EXT1__ && __STDC_WANT_LIB_EXT1__) -#undef/**/__STDC_WANT_LIB_EXT1__ -#define __STDC_WANT_LIB_EXT1__ 1 -#endif - - -/* Define if the POSIX multithreading library can be used. */ -#define USE_POSIX_THREADS 1 - -/* Define if references to the POSIX multithreading library are satisfied by - libc. */ -/* #undef USE_POSIX_THREADS_FROM_LIBC */ - -/* Define if references to the POSIX multithreading library should be made - weak. */ -#define USE_POSIX_THREADS_WEAK 1 - -/* Enable extensions on AIX, Interix, z/OS. */ -#ifndef _ALL_SOURCE -# define _ALL_SOURCE 1 -#endif -/* Enable general extensions on macOS. */ -#ifndef _DARWIN_C_SOURCE -# define _DARWIN_C_SOURCE 1 -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif -/* Enable X/Open compliant socket functions that do not require linking - with -lxnet on HP-UX 11.11. */ -#ifndef _HPUX_ALT_XOPEN_SOCKET_API -# define _HPUX_ALT_XOPEN_SOCKET_API 1 -#endif -/* Identify the host operating system as Minix. - This macro does not affect the system headers' behavior. - A future release of Autoconf may stop defining this macro. */ -#ifndef _MINIX -/* # undef _MINIX */ -#endif -/* Enable general extensions on NetBSD. - Enable NetBSD compatibility extensions on Minix. */ -#ifndef _NETBSD_SOURCE -# define _NETBSD_SOURCE 1 -#endif -/* Enable OpenBSD compatibility extensions on NetBSD. - Oddly enough, this does nothing on OpenBSD. */ -#ifndef _OPENBSD_SOURCE -# define _OPENBSD_SOURCE 1 -#endif -/* Define to 1 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_SOURCE -/* # undef _POSIX_SOURCE */ -#endif -/* Define to 2 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_1_SOURCE -/* # undef _POSIX_1_SOURCE */ -#endif -/* Enable POSIX-compatible threading on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# define _POSIX_PTHREAD_SEMANTICS 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ -#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ -#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ -# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ -#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ -# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 -#endif -/* Enable extensions specified by C23 Annex F. */ -#ifndef __STDC_WANT_IEC_60559_EXT__ -# define __STDC_WANT_IEC_60559_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ -#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ -# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 -#endif -/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ -#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ -# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ -#ifndef __STDC_WANT_LIB_EXT2__ -# define __STDC_WANT_LIB_EXT2__ 1 -#endif -/* Enable extensions specified by ISO/IEC 24747:2009. */ -#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ -# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# define _TANDEM_SOURCE 1 -#endif -/* Enable X/Open extensions. Define to 500 only if necessary - to make mbstate_t available. */ -#ifndef _XOPEN_SOURCE -/* # undef _XOPEN_SOURCE */ -#endif - - -/* Define if the native Windows multithreading API can be used. */ -/* #undef USE_WINDOWS_THREADS */ - -/* Version number of package */ -#define VERSION "3.6.6-c5bd" - -/* Define to 1 if unsetenv returns void instead of int. */ -/* #undef VOID_UNSETENV */ - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'wchar_t'. */ -#define WCHAR_T_SUFFIX u - -/* Define if the wcrtomb function does not work in the C locale. */ -/* #undef WCRTOMB_C_LOCALE_BUG */ - -/* Define if the wcrtomb function has an incorrect return value. */ -/* #undef WCRTOMB_RETVAL_BUG */ - -/* Define if WSAStartup is needed. */ -/* #undef WINDOWS_SOCKETS */ - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'wint_t'. */ -#define WINT_T_SUFFIX u - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -/* # undef WORDS_BIGENDIAN */ -# endif -#endif - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef _FILE_OFFSET_BITS */ - -/* enable compile-time and run-time bounds-checking, and some warnings */ -#define _FORTIFY_SOURCE 2 - -/* True if the compiler says it groks GNU C version MAJOR.MINOR. - Except that - - clang groks GNU C 4.2, even on Windows, where it does not define - __GNUC__. - - The OpenMandriva-modified clang compiler pretends that it groks - GNU C version 13.1, but it doesn't: It does not support - __attribute__ ((__malloc__ (f, i))), nor does it support - __attribute__ ((__warning__ (message))) on a function redeclaration. - - Users can make clang lie as well, through the -fgnuc-version option. */ -#if defined __GNUC__ && defined __GNUC_MINOR__ && !defined __clang__ -# define _GL_GNUC_PREREQ(major, minor) \ - ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) -#elif defined __clang__ - /* clang really only groks GNU C 4.2. */ -# define _GL_GNUC_PREREQ(major, minor) \ - ((major) < 4 + ((minor) <= 2)) -#else -# define _GL_GNUC_PREREQ(major, minor) 0 -#endif - - -/* Define to enable the declarations of ISO C 11 types and functions. */ -/* #undef _ISOC11_SOURCE */ - -/* Define to 1 on platforms where this makes off_t a 64-bit type. */ -/* #undef _LARGE_FILES */ - -/* Define to 1 on Solaris. */ -/* #undef _LCONV_C99 */ - -/* Define so that AIX headers are more compatible with GNU/Linux. */ -#define _LINUX_SOURCE_COMPAT 1 - -/* The _Noreturn keyword of C11. */ -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (_GL_GNUC_PREREQ (4, 7) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif - - -/* Define to 1 in order to get the POSIX compatible declarations of socket - functions. */ -/* #undef _POSIX_PII_SOCKET */ - -/* Define if you want to include , so that it consistently - overrides 's RE_DUP_MAX. */ -#define _REGEX_INCLUDE_LIMITS_H 1 - -/* Define if you want regoff_t to be at least as wide POSIX requires. */ -#define _REGEX_LARGE_OFFSETS 1 - -/* Number of bits in time_t, on hosts where this is settable. */ -/* #undef _TIME_BITS */ - -/* For standard stat data types on VMS. */ -#define _USE_STD_STAT 1 - -/* Define to rpl_ if the getopt replacement functions and variables should be - used. */ -/* #undef __GETOPT_PREFIX */ - -/* Define to 1 on platforms where this makes time_t a 64-bit type. */ -/* #undef __MINGW_USE_VC2005_COMPAT */ - -/* Define to 1 if the system predates C++11. */ -/* #undef __STDC_CONSTANT_MACROS */ - -/* Define to 1 if the system predates C++11. */ -/* #undef __STDC_LIMIT_MACROS */ - -/* Define to 1 if C does not support variable-length arrays, and if the - compiler does not already define this. */ -/* #undef __STDC_NO_VLA__ */ - -/* The _GL_ASYNC_SAFE marker should be attached to functions that are - signal handlers (for signals other than SIGABRT, SIGPIPE) or can be - invoked from such signal handlers. Such functions have some restrictions: - * All functions that it calls should be marked _GL_ASYNC_SAFE as well, - or should be listed as async-signal-safe in POSIX - - section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in - particular, are NOT async-signal-safe. - * All memory locations (variables and struct fields) that these functions - access must be marked 'volatile'. This holds for both read and write - accesses. Otherwise the compiler might optimize away stores to and - reads from such locations that occur in the program, depending on its - data flow analysis. For example, when the program contains a loop - that is intended to inspect a variable set from within a signal handler - while (!signal_occurred) - ; - the compiler is allowed to transform this into an endless loop if the - variable 'signal_occurred' is not declared 'volatile'. - Additionally, recall that: - * A signal handler should not modify errno (except if it is a handler - for a fatal signal and ends by raising the same signal again, thus - provoking the termination of the process). If it invokes a function - that may clobber errno, it needs to save and restore the value of - errno. */ -#define _GL_ASYNC_SAFE - - -/* Attributes. */ -/* Define _GL_HAS_ATTRIBUTE only once, because on FreeBSD, with gcc < 5, if - gets included once again after , __has_attribute(x) - expands to 0 always, and redefining _GL_HAS_ATTRIBUTE would turn off all - attributes. */ -#ifndef _GL_HAS_ATTRIBUTE -# if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 7000000 <= __apple_build_version__ \ - : 5 <= __clang_major__))) -# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) -# else -# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr -# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) -# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) -# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_diagnose_if 0 -# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) -# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) -# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) -# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) -# ifdef _ICC -# define _GL_ATTR_may_alias 0 -# else -# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) -# endif -# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) -# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) -# define _GL_ATTR_reproducible 0 /* not yet supported, as of GCC 14 */ -# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) -# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) -# define _GL_ATTR_unsequenced 0 /* not yet supported, as of GCC 14 */ -# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) -# endif -#endif - -/* Use __has_c_attribute if available. However, do not use with - pre-C23 GCC, which can issue false positives if -Wpedantic. */ -#if (defined __has_c_attribute \ - && ! (_GL_GNUC_PREREQ (4, 6) \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710)) -# define _GL_HAVE___HAS_C_ATTRIBUTE 1 -#else -# define _GL_HAVE___HAS_C_ATTRIBUTE 0 -#endif - -/* Attributes in bracket syntax [[...]] vs. attributes in __attribute__((...)) - syntax, in function declarations. There are two problems here. - (Last tested with gcc/g++ 14 and clang/clang++ 18.) - - 1) We want that the _GL_ATTRIBUTE_* can be cumulated on the same declaration - in any order. - =========================== foo.c = foo.cc =========================== - __attribute__ ((__deprecated__)) [[__nodiscard__]] int bar1 (int); - [[__nodiscard__]] __attribute__ ((__deprecated__)) int bar2 (int); - ====================================================================== - This gives a syntax error - - in C mode with gcc - , and - - in C++ mode with clang++ version < 16, and - - in C++ mode, inside extern "C" {}, still in newer clang++ versions - . - */ -/* Define if, in a function declaration, the attributes in bracket syntax - [[...]] must come before the attributes in __attribute__((...)) syntax. - If this is defined, it is best to avoid the bracket syntax, so that the - various _GL_ATTRIBUTE_* can be cumulated on the same declaration in any - order. */ -#ifdef __cplusplus -# if defined __clang__ -# define _GL_BRACKET_BEFORE_ATTRIBUTE 1 -# endif -#else -# if defined __GNUC__ && !defined __clang__ -# define _GL_BRACKET_BEFORE_ATTRIBUTE 1 -# endif -#endif -/* - 2) We want that the _GL_ATTRIBUTE_* can be placed in a declaration - - without 'extern', in C as well as in C++, - - with 'extern', in C, - - with 'extern "C"', in C++ - in the same position. That is, we don't want to be forced to use a - macro which arranges for the attribute to come before 'extern' in - one case and after 'extern' in the other case, because such a macro - would make the source code of .h files pretty ugly. - =========================== foo.c = foo.cc =========================== - #ifdef __cplusplus - # define CC "C" - #else - # define CC - #endif - - #define ND [[__nodiscard__]] - #define WUR __attribute__((__warn_unused_result__)) - - #ifdef __cplusplus - extern "C" { - #endif - // gcc clang g++ clang++ - - ND int foo (int); - int ND foo (int); // warn error warn error - int foo ND (int); - int foo (int) ND; // warn error warn error - - WUR int foo (int); - int WUR foo (int); - int fo1 WUR (int); // error error error error - int foo (int) WUR; - - #ifdef __cplusplus - } - #endif - - // gcc clang g++ clang++ - - ND extern CC int foo (int); // error error - extern CC ND int foo (int); // error error - extern CC int ND foo (int); // warn error warn error - extern CC int foo ND (int); - extern CC int foo (int) ND; // warn error warn error - - WUR extern CC int foo (int); // warn - extern CC WUR int foo (int); - extern CC int WUR foo (int); - extern CC int foo WUR (int); // error error error error - extern CC int foo (int) WUR; - - ND EXTERN_C_FUNC int foo (int); // error error - EXTERN_C_FUNC ND int foo (int); - EXTERN_C_FUNC int ND foo (int); // warn error warn error - EXTERN_C_FUNC int foo ND (int); - EXTERN_C_FUNC int foo (int) ND; // warn error warn error - - WUR EXTERN_C_FUNC int foo (int); // warn - EXTERN_C_FUNC WUR int foo (int); - EXTERN_C_FUNC int WUR foo (int); - EXTERN_C_FUNC int fo2 WUR (int); // error error error error - EXTERN_C_FUNC int foo (int) WUR; - ====================================================================== - So, if we insist on using the 'extern' keyword ('extern CC' idiom): - * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]] - in both C and C++, there is one available position: - - between the function name and the parameter list. - * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax - in both C and C++, there are several available positions: - - before the return type, - - between return type and function name, - - at the end of the declaration. - * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]] in C and to - __attribute__((...)) syntax in C++, there is no available position: - it would need to come before 'extern' in C but after 'extern "C"' - in C++. - * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax in C and - to bracket syntax [[...]] in C++, there is one available position: - - before the return type. - Whereas, if we use the 'EXTERN_C_FUNC' idiom, which conditionally - omits the 'extern' keyword: - * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]] - in both C and C++, there are two available positions: - - before the return type, - - between the function name and the parameter list. - * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax - in both C and C++, there are several available positions: - - before the return type, - - between return type and function name, - - at the end of the declaration. - * If _GL_ATTRIBUTE_* expands to bracket syntax [[...]] in C and to - __attribute__((...)) syntax in C++, there is one available position: - - before the return type. - * If _GL_ATTRIBUTE_* expands to __attribute__((...)) syntax in C and - to bracket syntax [[...]] in C++, there is one available position: - - before the return type. - The best choice is therefore to use the 'EXTERN_C_FUNC' idiom and - put the attributes before the return type. This works regardless - to what the _GL_ATTRIBUTE_* macros expand. - */ - -/* Attributes in bracket syntax [[...]] vs. attributes in __attribute__((...)) - syntax, in static/inline function definitions. - - There are similar constraints as for function declarations. However, here, - we cannot omit the storage-class specifier. Therefore, the following rule - applies: - * The macros - _GL_ATTRIBUTE_CONST - _GL_ATTRIBUTE_DEPRECATED - _GL_ATTRIBUTE_MAYBE_UNUSED - _GL_ATTRIBUTE_NODISCARD - _GL_ATTRIBUTE_PURE - _GL_ATTRIBUTE_REPRODUCIBLE - _GL_ATTRIBUTE_UNSEQUENCED - which may expand to bracket syntax [[...]], must come first, before the - storage-class specifier. - * Other _GL_ATTRIBUTE_* macros, that expand to __attribute__((...)) syntax, - are better placed between the storage-class specifier and the return - type. - */ - -/* Attributes in bracket syntax [[...]] vs. attributes in __attribute__((...)) - syntax, in variable declarations. - - At which position can they be placed? - (Last tested with gcc/g++ 14 and clang/clang++ 18.) - - =========================== foo.c = foo.cc =========================== - #ifdef __cplusplus - # define CC "C" - #else - # define CC - #endif - - #define BD [[__deprecated__]] - #define AD __attribute__ ((__deprecated__)) - - // gcc clang g++ clang++ - - BD extern CC int var; // error error - extern CC BD int var; // error error - extern CC int BD var; // warn error warn error - extern CC int var BD; - - AD extern CC int var; // warn - extern CC AD int var; - extern CC int AD var; - extern CC int var AD; - - BD extern CC int z[]; // error error - extern CC BD int z[]; // error error - extern CC int BD z[]; // warn error warn error - extern CC int z1 BD []; - extern CC int z[] BD; // warn error error - - AD extern CC int z[]; // warn - extern CC AD int z[]; - extern CC int AD z[]; - extern CC int z2 AD []; // error error error error - extern CC int z[] AD; - ====================================================================== - - * For non-array variables, the only good position is after the variable name, - that is, at the end of the declaration. - * For array variables, you will need to distinguish C and C++: - - In C, before the 'extern' keyword. - - In C++, between the 'extern "C"' and the variable's type. - */ - -/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function - is the size of the returned memory block. - _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied - by the Nth argument of the function is the size of the returned memory block. - */ -/* Applies to: functions, pointer to functions, function types. */ -#ifndef _GL_ATTRIBUTE_ALLOC_SIZE -# if _GL_HAS_ATTRIBUTE (alloc_size) -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) -# else -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) -# endif -#endif - -/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the - function and report an error if it cannot do so. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE -# if _GL_HAS_ATTRIBUTE (always_inline) -# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) -# else -# define _GL_ATTRIBUTE_ALWAYS_INLINE -# endif -#endif - -/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show - in stack traces when debugging. The compiler should omit the function from - stack traces. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_ARTIFICIAL -# if _GL_HAS_ATTRIBUTE (artificial) -# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) -# else -# define _GL_ATTRIBUTE_ARTIFICIAL -# endif -#endif - -/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ -/* Applies to: functions. */ -/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at - . - Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ -#ifndef _GL_ATTRIBUTE_COLD -# if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ -# ifndef __SUNPRO_C -# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) -# else -# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) -# endif -# else -# define _GL_ATTRIBUTE_COLD -# endif -#endif - -/* _GL_ATTRIBUTE_CONST declares: - It is OK for a compiler to move calls to the function and to omit - calls to the function if another call has the same arguments or the - result is not used. - This attribute is safe for a function that neither depends on - nor affects state, and always returns exactly once - - e.g., does not raise an exception, call longjmp, or loop forever. - (This attribute is stricter than _GL_ATTRIBUTE_PURE because the - function cannot observe state. It is stricter than - _GL_ATTRIBUTE_UNSEQUENCED because the function must return exactly - once and cannot depend on state addressed by its arguments.) */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_CONST -# if _GL_HAS_ATTRIBUTE (const) -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -# else -# define _GL_ATTRIBUTE_CONST _GL_ATTRIBUTE_UNSEQUENCED -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. - _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if _GL_GNUC_PREREQ (11, 0) -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif -/* If gnulib's or has already defined this macro, continue - to use this earlier definition, since may not have been included - yet. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. - The compiler may warn if the entity is used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: namespace, class, template specialization. */ -#ifndef _GL_ATTRIBUTE_DEPRECATED -# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE -# if _GL_HAVE___HAS_C_ATTRIBUTE -# if __has_c_attribute (__deprecated__) -# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] -# endif -# endif -# endif -# if !defined _GL_ATTRIBUTE_DEPRECATED && _GL_HAS_ATTRIBUTE (deprecated) -# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) -# endif -# ifndef _GL_ATTRIBUTE_DEPRECATED -# define _GL_ATTRIBUTE_DEPRECATED -# endif -#endif - -/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and - the function call is not optimized away. - _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and - the function call is not optimized away. */ -/* Applies to: functions. */ -#if !(defined _GL_ATTRIBUTE_ERROR && defined _GL_ATTRIBUTE_WARNING) -# if _GL_HAS_ATTRIBUTE (error) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) -# elif _GL_HAS_ATTRIBUTE (diagnose_if) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# else -# define _GL_ATTRIBUTE_ERROR(msg) -# define _GL_ATTRIBUTE_WARNING(msg) -# endif -#endif - -/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain - visible to debuggers etc., even with '-fwhole-program'. */ -/* Applies to: functions, variables. */ -#ifndef _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -# if _GL_HAS_ATTRIBUTE (externally_visible) -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) -# else -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -# endif -#endif - -/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if - the control flow falls through to the immediately following 'case' or - 'default' label. The compiler should not warn in this case. */ -/* Applies to: Empty statement (;), inside a 'switch' statement. */ -/* Always expands to something. */ -#ifndef _GL_ATTRIBUTE_FALLTHROUGH -# if _GL_HAVE___HAS_C_ATTRIBUTE -# if __has_c_attribute (__fallthrough__) -# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] -# endif -# endif -# if !defined _GL_ATTRIBUTE_FALLTHROUGH && _GL_HAS_ATTRIBUTE (fallthrough) -# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) -# endif -# ifndef _GL_ATTRIBUTE_FALLTHROUGH -# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) -# endif -#endif - -/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - declares that the STRING-INDEXth function argument is a format string of - style ARCHETYPE, which is one of: - printf, gnu_printf - scanf, gnu_scanf, - strftime, gnu_strftime, - strfmon, - or the same thing prefixed and suffixed with '__'. - If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK - are suitable for the format string. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_FORMAT -# if _GL_HAS_ATTRIBUTE (format) -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -# else -# define _GL_ATTRIBUTE_FORMAT(spec) -# endif -#endif - -/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other - compilation unit, it executes code from that unit only by return or by - exception handling. This declaration lets the compiler optimize that unit - more aggressively. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_LEAF -# if _GL_HAS_ATTRIBUTE (leaf) -# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) -# else -# define _GL_ATTRIBUTE_LEAF -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if _GL_HAS_ATTRIBUTE (malloc) -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the - same storage as pointers to other types. Thus this declaration disables - strict aliasing optimization. */ -/* Applies to: types. */ -/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ -#ifndef _GL_ATTRIBUTE_MAY_ALIAS -# if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C -# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) -# else -# define _GL_ATTRIBUTE_MAY_ALIAS -# endif -#endif - -/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if - the entity is not used. The compiler should not warn if the entity is not - used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: class. */ -/* In C++ and C23, this is spelled [[__maybe_unused__]]. - GCC's syntax is __attribute__ ((__unused__)). - clang supports both syntaxes. Except that with clang ≥ 6, < 10, in C++ mode, - __has_c_attribute (__maybe_unused__) yields true but the use of - [[__maybe_unused__]] nevertheless produces a warning. */ -#ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE -# if defined __clang__ && defined __cplusplus -# if !defined __apple_build_version__ && __clang_major__ >= 10 -# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] -# endif -# elif _GL_HAVE___HAS_C_ATTRIBUTE -# if __has_c_attribute (__maybe_unused__) -# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] -# endif -# endif -# endif -# ifndef _GL_ATTRIBUTE_MAYBE_UNUSED -# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED -# endif -#endif -/* Alternative spelling of this macro, for convenience and for - compatibility with glibc/include/libc-symbols.h. */ -#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED -/* Earlier spellings of this macro. */ -#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED - -/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not - discard the return value. The compiler may warn if the caller does not use - the return value, unless the caller uses something like ignore_value. */ -/* Applies to: function, enumeration, class. */ -#ifndef _GL_ATTRIBUTE_NODISCARD -# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE -# if defined __clang__ && defined __cplusplus - /* With clang up to 15.0.6 (at least), in C++ mode, [[__nodiscard__]] produces - a warning. - The 1000 below means a yet unknown threshold. When clang++ version X - starts supporting [[__nodiscard__]] without warning about it, you can - replace the 1000 with X. */ -# if __clang_major__ >= 1000 -# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] -# endif -# elif _GL_HAVE___HAS_C_ATTRIBUTE -# if __has_c_attribute (__nodiscard__) -# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] -# endif -# endif -# endif -# if !defined _GL_ATTRIBUTE_NODISCARD && _GL_HAS_ATTRIBUTE (warn_unused_result) -# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) -# endif -# ifndef _GL_ATTRIBUTE_NODISCARD -# define _GL_ATTRIBUTE_NODISCARD -# endif -#endif - -/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the - function. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NOINLINE -# if _GL_HAS_ATTRIBUTE (noinline) -# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) -# else -# define _GL_ATTRIBUTE_NOINLINE -# endif -#endif - -/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... - must not be NULL. - _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be - null. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_NONNULL -# if _GL_HAS_ATTRIBUTE (nonnull) -# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) -# else -# define _GL_ATTRIBUTE_NONNULL(args) -# endif -#endif - -/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is - not meant to be NUL-terminated. */ -/* Applies to: struct/union members and variables that are arrays of element - type '[[un]signed] char'. */ -#ifndef _GL_ATTRIBUTE_NONSTRING -# if _GL_HAS_ATTRIBUTE (nonstring) -# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) -# else -# define _GL_ATTRIBUTE_NONSTRING -# endif -#endif - -/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -/* Applies to: functions. */ -/* After a function's parameter list, this attribute must come first, before - other attributes. */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if _GL_GNUC_PREREQ (2, 8) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if _GL_HAS_ATTRIBUTE (nothrow) -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* _GL_ATTRIBUTE_PACKED declares: - For struct members: The member has the smallest possible alignment. - For struct, union, class: All members have the smallest possible alignment, - minimizing the memory required. */ -/* Applies to: struct members, struct, union, - in C++ also: class. */ -#ifndef _GL_ATTRIBUTE_PACKED -/* Oracle Studio 12.6 miscompiles code with __attribute__ ((__packed__)) despite - __has_attribute OK. */ -# if _GL_HAS_ATTRIBUTE (packed) && !defined __SUNPRO_C -# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) -# else -# define _GL_ATTRIBUTE_PACKED -# endif -#endif - -/* _GL_ATTRIBUTE_PURE declares: - It is OK for a compiler to move calls to the function and to omit - calls to the function if another call has the same arguments or the - result is not used, and if observable state is the same. - This attribute is safe for a function that does not affect observable state - and always returns exactly once. - (This attribute is looser than _GL_ATTRIBUTE_CONST because the function - can depend on observable state. It is stricter than - _GL_ATTRIBUTE_REPRODUCIBLE because the function must return exactly - once and cannot affect state addressed by its arguments.) */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_PURE -# if _GL_HAS_ATTRIBUTE (pure) -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE _GL_ATTRIBUTE_REPRODUCIBLE -# endif -#endif - -/* _GL_ATTRIBUTE_REPRODUCIBLE declares: - It is OK for a compiler to move calls to the function and to omit duplicate - calls to the function with the same arguments, so long as the state - addressed by its arguments is the same and is updated in time for - the rest of the program. - This attribute is safe for a function that is effectless and idempotent; see - ISO C 23 § 6.7.12.7 for a definition of these terms. - (This attribute is looser than _GL_ATTRIBUTE_UNSEQUENCED because - the function need not be stateless and idempotent. It is looser - than _GL_ATTRIBUTE_PURE because the function need not return - exactly once and can affect state addressed by its arguments.) - See also and - . */ -/* Applies to: functions, pointer to functions, function types. */ -#ifndef _GL_ATTRIBUTE_REPRODUCIBLE -/* This may be revisited when gcc and clang support [[reproducible]] or possibly - __attribute__ ((__reproducible__)). */ -# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE -# if _GL_HAS_ATTRIBUTE (reproducible) -# define _GL_ATTRIBUTE_REPRODUCIBLE [[reproducible]] -# endif -# endif -# ifndef _GL_ATTRIBUTE_REPRODUCIBLE -# define _GL_ATTRIBUTE_REPRODUCIBLE -# endif -#endif - -/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is - a non-NULL pointer. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_RETURNS_NONNULL -# if _GL_HAS_ATTRIBUTE (returns_nonnull) -# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) -# else -# define _GL_ATTRIBUTE_RETURNS_NONNULL -# endif -#endif - -/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a - trailing NULL argument. - _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). - _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_SENTINEL -# if _GL_HAS_ATTRIBUTE (sentinel) -# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) -# else -# define _GL_ATTRIBUTE_SENTINEL(pos) -# endif -#endif - -/* _GL_ATTRIBUTE_UNSEQUENCED declares: - It is OK for a compiler to move calls to the function and to omit duplicate - calls to the function with the same arguments, so long as the state - addressed by its arguments is the same. - This attribute is safe for a function that is effectless, idempotent, - stateless, and independent; see ISO C 23 § 6.7.12.7 for a definition of - these terms. - (This attribute is stricter than _GL_ATTRIBUTE_REPRODUCIBLE because - the function must be stateless and independent. It is looser than - _GL_ATTRIBUTE_CONST because the function need not return exactly - once and can depend on state addressed by its arguments.) - See also and - . */ -/* Applies to: functions, pointer to functions, function types. */ -#ifndef _GL_ATTRIBUTE_UNSEQUENCED -/* This may be revisited when gcc and clang support [[unsequenced]] or possibly - __attribute__ ((__unsequenced__)). */ -# ifndef _GL_BRACKET_BEFORE_ATTRIBUTE -# if _GL_HAS_ATTRIBUTE (unsequenced) -# define _GL_ATTRIBUTE_UNSEQUENCED [[unsequenced]] -# endif -# endif -# ifndef _GL_ATTRIBUTE_UNSEQUENCED -# define _GL_ATTRIBUTE_UNSEQUENCED -# endif -#endif - -/* A helper macro. Don't use it directly. */ -#ifndef _GL_ATTRIBUTE_UNUSED -# if _GL_HAS_ATTRIBUTE (unused) -# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define _GL_ATTRIBUTE_UNUSED -# endif -#endif - - -/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the - immediately preceding label is not used. The compiler should not warn - if the label is not used. */ -/* Applies to: label (both in C and C++). */ -/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' - syntax. But clang does. */ -#ifndef _GL_UNUSED_LABEL -# if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ -# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED -# else -# define _GL_UNUSED_LABEL -# endif -#endif - -/* The following attributes enable detection of multithread-safety problems - and resource leaks at compile-time, by clang ≥ 15, when the warning option - -Wthread-safety is enabled. For usage, see - . */ -#ifndef _GL_ATTRIBUTE_CAPABILITY_TYPE -# if __clang_major__ >= 15 -# define _GL_ATTRIBUTE_CAPABILITY_TYPE(concept) \ - __attribute__ ((__capability__ (concept))) -#else -# define _GL_ATTRIBUTE_CAPABILITY_TYPE(concept) -# endif -#endif -#ifndef _GL_ATTRIBUTE_ACQUIRE_CAPABILITY -# if __clang_major__ >= 15 -# define _GL_ATTRIBUTE_ACQUIRE_CAPABILITY(resource) \ - __attribute__ ((__acquire_capability__ (resource))) -# else -# define _GL_ATTRIBUTE_ACQUIRE_CAPABILITY(resource) -# endif -#endif -#ifndef _GL_ATTRIBUTE_RELEASE_CAPABILITY -# if __clang_major__ >= 15 -# define _GL_ATTRIBUTE_RELEASE_CAPABILITY(resource) \ - __attribute__ ((__release_capability__ (resource))) -# else -# define _GL_ATTRIBUTE_RELEASE_CAPABILITY(resource) -# endif -#endif - - -/* In C++, there is the concept of "language linkage", that encompasses - name mangling and function calling conventions. - The following macros start and end a block of "C" linkage. */ -#ifdef __cplusplus -# define _GL_BEGIN_C_LINKAGE extern "C" { -# define _GL_END_C_LINKAGE } -#else -# define _GL_BEGIN_C_LINKAGE -# define _GL_END_C_LINKAGE -#endif - - -/* Define to empty if 'const' does not conform to ANSI C. */ -/* #undef const */ - -/* Define as 'int' if doesn't define. */ -/* #undef gid_t */ - -/* A replacement for va_copy, if needed. */ -#define gl_va_copy(a,b) ((a) = (b)) - -/* Define to '__inline__' or '__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -/* #undef inline */ -#endif - -/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports - the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of - earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. - __APPLE__ && __MACH__ test for Mac OS X. - __APPLE_CC__ tests for the Apple compiler and its version. - __STDC_VERSION__ tests for the C99 mode. */ -#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ -# define __GNUC_STDC_INLINE__ 1 -#endif - -/* Define to 1 if the compiler is checking for lint. */ -#define lint 1 - -/* Define to a type if does not define. */ -/* #undef mbstate_t */ - -/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where - n1 and n2 are expressions without side effects, that evaluate to real - numbers (excluding NaN). - It returns - 1 if n1 > n2 - 0 if n1 == n2 - -1 if n1 < n2 - The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional - jump with nearly all GCC versions up to GCC 10. - This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many - GCC versions up to GCC 9. - The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 - avoids conditional jumps in all GCC versions >= 3.4. */ -#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) - - -/* Define to 'int' if does not define. */ -/* #undef mode_t */ - -/* Define to the type of st_nlink in struct stat, or a supertype. */ -/* #undef nlink_t */ - -/* Define as a signed integer type capable of holding a process identifier. */ -/* #undef pid_t */ - -/* Define to rpl_re_comp if the replacement should be used. */ -#define re_comp rpl_re_comp - -/* Define to rpl_re_compile_fastmap if the replacement should be used. */ -#define re_compile_fastmap rpl_re_compile_fastmap - -/* Define to rpl_re_compile_pattern if the replacement should be used. */ -#define re_compile_pattern rpl_re_compile_pattern - -/* Define to rpl_re_exec if the replacement should be used. */ -#define re_exec rpl_re_exec - -/* Define to rpl_re_match if the replacement should be used. */ -#define re_match rpl_re_match - -/* Define to rpl_re_match_2 if the replacement should be used. */ -#define re_match_2 rpl_re_match_2 - -/* Define to rpl_re_search if the replacement should be used. */ -#define re_search rpl_re_search - -/* Define to rpl_re_search_2 if the replacement should be used. */ -#define re_search_2 rpl_re_search_2 - -/* Define to rpl_re_set_registers if the replacement should be used. */ -#define re_set_registers rpl_re_set_registers - -/* Define to rpl_re_set_syntax if the replacement should be used. */ -#define re_set_syntax rpl_re_set_syntax - -/* Define to rpl_re_syntax_options if the replacement should be used. */ -#define re_syntax_options rpl_re_syntax_options - -/* Define to rpl_regcomp if the replacement should be used. */ -#define regcomp rpl_regcomp - -/* Define to rpl_regerror if the replacement should be used. */ -#define regerror rpl_regerror - -/* Define to rpl_regexec if the replacement should be used. */ -#define regexec rpl_regexec - -/* Define to rpl_regfree if the replacement should be used. */ -#define regfree rpl_regfree - -/* Define to the equivalent of the C99 'restrict' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported only directly. */ -#define restrict __restrict__ -/* Work around a bug in older versions of Sun C++, which did not - #define __restrict__ or support _Restrict or __restrict__ - even though the corresponding Sun C compiler ended up with - "#define restrict _Restrict" or "#define restrict __restrict__" - in the previous line. This workaround can be removed once - we assume Oracle Developer Studio 12.5 (2016) or later. */ -#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ -# define _Restrict -# define __restrict__ -#endif - -/* Define as 'unsigned int' if doesn't define. */ -/* #undef size_t */ - -/* type to use in place of socklen_t if not defined */ -/* #undef socklen_t */ - -/* Define as a signed type of the same size as size_t. */ -/* #undef ssize_t */ - -/* Define as 'int' if doesn't define. */ -/* #undef uid_t */ - - - /* This definition is a duplicate of the one in unitypes.h. - It is here so that we can cope with an older version of unitypes.h - that does not contain this definition and that is pre-installed among - the public header files. */ - # if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 - # define _UC_RESTRICT __restrict - # elif 199901L <= __STDC_VERSION__ || defined restrict - # define _UC_RESTRICT restrict - # else - # define _UC_RESTRICT - # endif - - -/* Define to an unsigned 32-bit type if lacks this type. */ -/* #undef useconds_t */ - -/* Define as a macro for copying va_list variables. */ -/* #undef va_copy */ - -#if !defined HAVE_C_ALIGNASOF \ - && !(defined __cplusplus && 201103 <= __cplusplus) \ - && !defined alignof -# if defined HAVE_STDALIGN_H -# include -# endif - -/* ISO C23 alignas and alignof for platforms that lack it. - - References: - ISO C23 (latest free draft - ) - sections 6.5.3.4, 6.7.5, 7.15. - C++11 (latest free draft - ) - section 18.10. */ - -/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment - requirement of a structure member (i.e., slot or field) that is of - type TYPE, as an integer constant expression. - - This differs from GCC's and clang's __alignof__ operator, which can - yield a better-performing alignment for an object of that type. For - example, on x86 with GCC and on Linux/x86 with clang, - __alignof__ (double) and __alignof__ (long long) are 8, whereas - alignof (double) and alignof (long long) are 4 unless the option - '-malign-double' is used. - - The result cannot be used as a value for an 'enum' constant, if you - want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */ - -/* GCC releases before GCC 4.9 had a bug in _Alignof. See GCC bug 52023 - . - clang versions < 8.0.0 have the same bug. */ -# if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \ - || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9) \ - && !defined __clang__) \ - || (defined __clang__ && __clang_major__ < 8)) -# undef/**/_Alignof -# ifdef __cplusplus -# if (201103 <= __cplusplus || defined _MSC_VER) -# define _Alignof(type) alignof (type) -# else - template struct __alignof_helper { char __a; __t __b; }; -# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ -# define _Alignof(type) __builtin_offsetof (__alignof_helper, __b) -# else -# define _Alignof(type) offsetof (__alignof_helper, __b) -# endif -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif -# else -# if (defined __GNUC__ && 4 <= __GNUC__) || defined __clang__ -# define _Alignof(type) __builtin_offsetof (struct { char __a; type __b; }, __b) -# else -# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b) -# define _GL_STDALIGN_NEEDS_STDDEF 1 -# endif -# endif -# endif -# if ! (defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER)) -# undef/**/alignof -# define alignof _Alignof -# endif - -/* alignas (A), also known as _Alignas (A), aligns a variable or type - to the alignment A, where A is an integer constant expression. For - example: - - int alignas (8) foo; - struct s { int a; int alignas (8) bar; }; - - aligns the address of FOO and the offset of BAR to be multiples of 8. - - A should be a power of two that is at least the type's alignment - and at most the implementation's alignment limit. This limit is - 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable - to MSVC through at least version 10.0, A should be an integer - constant, as MSVC does not support expressions such as 1 << 3. - To be portable to Sun C 5.11, do not align auto variables to - anything stricter than their default alignment. - - The following C23 requirements are not supported here: - - - If A is zero, alignas has no effect. - - alignas can be used multiple times; the strictest one wins. - - alignas (TYPE) is equivalent to alignas (alignof (TYPE)). - - */ -# if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 -# if defined __cplusplus && (201103 <= __cplusplus || defined _MSC_VER) -# define _Alignas(a) alignas (a) -# elif (!defined __attribute__ \ - && ((defined __APPLE__ && defined __MACH__ \ - ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \ - : __GNUC__ && !defined __ibmxl__) \ - || (4 <= __clang_major__) \ - || (__ia64 && (61200 <= __HP_cc || 61200 <= __HP_aCC)) \ - || __ICC || 0x590 <= __SUNPRO_C || 0x0600 <= __xlC__)) -# define _Alignas(a) __attribute__ ((__aligned__ (a))) -# elif 1300 <= _MSC_VER -# define _Alignas(a) __declspec (align (a)) -# endif -# endif -# if !defined HAVE_STDALIGN_H -# if ((defined _Alignas \ - && !(defined __cplusplus \ - && (201103 <= __cplusplus || defined _MSC_VER))) \ - || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) -# define alignas _Alignas -# endif -# endif - -# if defined _GL_STDALIGN_NEEDS_STDDEF -# include -# endif -#endif - -#ifndef HAVE_C_BOOL -# if !defined __cplusplus && !defined __bool_true_false_are_defined -# if HAVE_STDBOOL_H -# include -# else -# if defined __SUNPRO_C -# error " is not usable with this configuration. To make it usable, add -D_STDC_C99= to $CC." -# else -# error " does not exist on this platform. Use gnulib module 'stdbool-c99' instead of gnulib module 'stdbool'." -# endif -# endif -# endif -# if !true -# define true (!false) -# endif -#endif - -#if (!defined HAVE_C_STATIC_ASSERT && !defined assert \ - && (!defined __cplusplus \ - || (__cpp_static_assert < 201411 \ - && __GNUG__ < 6 && __clang_major__ < 6))) - #include - #undef/**/assert - #ifdef __sgi - #undef/**/__ASSERT_H__ - #endif - /* Solaris 11.4 defines static_assert as a macro with 2 arguments. - We need it also to be invocable with a single argument. */ - #if defined __sun && (__STDC_VERSION__ - 0 >= 201112L) && !defined __cplusplus - #undef/**/static_assert - #define static_assert _Static_assert - #endif -#endif diff --git a/jni/parted/lib/configmake.h b/jni/parted/lib/configmake.h deleted file mode 100755 index 1b70ece..0000000 --- a/jni/parted/lib/configmake.h +++ /dev/null @@ -1,31 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -#if HAVE_WINSOCK2_H -# include /* avoid mingw pollution on DATADIR */ -#endif -#define PREFIX "/usr/local" -#define EXEC_PREFIX "/usr/local" -#define BINDIR "/usr/local/bin" -#define SBINDIR "/usr/local/sbin" -#define LIBEXECDIR "/usr/local/libexec" -#define DATAROOTDIR "/usr/local/share" -#define DATADIR "/usr/local/share" -#define SYSCONFDIR "/usr/local/etc" -#define SHAREDSTATEDIR "/usr/local/com" -#define LOCALSTATEDIR "/usr/local/var" -#define RUNSTATEDIR "/usr/local/var/run" -#define INCLUDEDIR "/usr/local/include" -#define OLDINCLUDEDIR "/usr/include" -#define DOCDIR "/usr/local/share/doc/parted" -#define INFODIR "/usr/local/share/info" -#define HTMLDIR "/usr/local/share/doc/parted" -#define DVIDIR "/usr/local/share/doc/parted" -#define PDFDIR "/usr/local/share/doc/parted" -#define PSDIR "/usr/local/share/doc/parted" -#define LIBDIR "/usr/local/lib" -#define LISPDIR "/usr/local/share/emacs/site-lisp" -#define LOCALEDIR "/usr/local/share/locale" -#define MANDIR "/usr/local/share/man" -#define PKGDATADIR "/usr/local/share/parted" -#define PKGINCLUDEDIR "/usr/local/include/parted" -#define PKGLIBDIR "/usr/local/lib/parted" -#define PKGLIBEXECDIR "/usr/local/libexec/parted" diff --git a/jni/parted/lib/error.h b/jni/parted/lib/error.h deleted file mode 100755 index e574ff9..0000000 --- a/jni/parted/lib/error.h +++ /dev/null @@ -1,619 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Declarations for error-reporting functions. - Copyright (C) 1995-1997, 2003, 2006, 2008-2024 Free Software Foundation, - Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_ERROR_H - -/* No @PRAGMA_SYSTEM_HEADER@ here, because it would prevent - -Wimplicit-fallthrough warnings for missing FALLTHROUGH after error(...) - or error_at_line(...) invocations. */ - -/* The include_next requires a split double-inclusion guard. */ -#if 1 && !defined __MINGW32__ -# include_next -#endif - -#ifndef _GL_ERROR_H -#define _GL_ERROR_H - -/* This file uses _GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_COLD, - _GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_MAYBE_UNUSED. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. */ -#include - -/* Get 'unreachable'. */ -#include - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ -#include - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -#if GNULIB_VFPRINTF_POSIX -# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD -#else -# define _GL_ATTRIBUTE_SPEC_PRINTF_ERROR _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM -#endif - -/* Helper macro for supporting the compiler's control flow analysis better. - It evaluates its arguments only once. - Test case: Compile copy-file.c with "gcc -Wimplicit-fallthrough". */ -#if defined __GNUC__ || defined __clang__ -/* Use 'unreachable' to tell the compiler when the function call does not - return. */ -# define __gl_error_call1(function, status, ...) \ - ((function) (status, __VA_ARGS__), \ - (status) != 0 ? unreachable () : (void) 0) -/* If STATUS is a not a constant, the function call may or may not return; - therefore -Wimplicit-fallthrough will produce a warning. Use a compound - statement in order to evaluate STATUS only once. - If STATUS is a constant, we don't use a compound statement, because that - would trigger a -Wimplicit-fallthrough warning even when STATUS is != 0, - when not optimizing. This causes STATUS to be evaluated twice, but - that's OK since it does not have side effects. */ -# define __gl_error_call(function, status, ...) \ - (__builtin_constant_p (status) \ - ? __gl_error_call1 (function, status, __VA_ARGS__) \ - : __extension__ \ - ({ \ - int const __errstatus = status; \ - __gl_error_call1 (function, __errstatus, __VA_ARGS__); \ - })) -#else -# define __gl_error_call(function, status, ...) \ - (function) (status, __VA_ARGS__) -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Print a message with 'fprintf (stderr, FORMAT, ...)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ -#if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef error -# define error rpl_error -# endif -_GL_FUNCDECL_RPL (error, void, - (int __status, int __errnum, const char *__format, ...), - _GL_ATTRIBUTE_COLD - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))); -_GL_CXXALIAS_RPL (error, void, - (int __status, int __errnum, const char *__format, ...)); -# ifndef _GL_NO_INLINE_ERROR -# undef error -# define error(status, ...) \ - __gl_error_call (rpl_error, status, __VA_ARGS__) -# endif -#else -# if ! 1 -_GL_FUNCDECL_SYS (error, void, - (int __status, int __errnum, const char *__format, ...), - _GL_ATTRIBUTE_COLD - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4))); -# endif -_GL_CXXALIAS_SYS (error, void, - (int __status, int __errnum, const char *__format, ...)); -# ifndef _GL_NO_INLINE_ERROR -# ifdef error -/* Only gcc ≥ 4.7 has __builtin_va_arg_pack. */ -# if _GL_GNUC_PREREQ (4, 7) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wattributes" -_GL_ATTRIBUTE_MAYBE_UNUSED -static void -_GL_ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_COLD -_GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 3, 4)) -_gl_inline_error (int __status, int __errnum, const char *__format, ...) -{ - return error (__status, __errnum, __format, __builtin_va_arg_pack ()); -} -# pragma GCC diagnostic pop -# undef error -# define error(status, ...) \ - __gl_error_call (_gl_inline_error, status, __VA_ARGS__) -# endif -# else -# define error(status, ...) \ - __gl_error_call (error, status, __VA_ARGS__) -# endif -# endif -#endif -#if __GLIBC__ >= 2 -_GL_CXXALIASWARN (error); -#endif - -/* Likewise. If FILENAME is non-NULL, include FILENAME:LINENO: in the - message. */ -#if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef error_at_line -# define error_at_line rpl_error_at_line -# endif -_GL_FUNCDECL_RPL (error_at_line, void, - (int __status, int __errnum, const char *__filename, - unsigned int __lineno, const char *__format, ...), - _GL_ATTRIBUTE_COLD - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))); -_GL_CXXALIAS_RPL (error_at_line, void, - (int __status, int __errnum, const char *__filename, - unsigned int __lineno, const char *__format, ...)); -# ifndef _GL_NO_INLINE_ERROR -# undef error_at_line -# define error_at_line(status, ...) \ - __gl_error_call (rpl_error_at_line, status, __VA_ARGS__) -# endif -#else -# if ! 1 -_GL_FUNCDECL_SYS (error_at_line, void, - (int __status, int __errnum, const char *__filename, - unsigned int __lineno, const char *__format, ...), - _GL_ATTRIBUTE_COLD - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6))); -# endif -_GL_CXXALIAS_SYS (error_at_line, void, - (int __status, int __errnum, const char *__filename, - unsigned int __lineno, const char *__format, ...)); -# ifndef _GL_NO_INLINE_ERROR -# ifdef error_at_line -/* Only gcc ≥ 4.7 has __builtin_va_arg_pack. */ -# if _GL_GNUC_PREREQ (4, 7) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wattributes" -_GL_ATTRIBUTE_MAYBE_UNUSED -static void -_GL_ATTRIBUTE_ALWAYS_INLINE _GL_ATTRIBUTE_COLD -_GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_ERROR, 5, 6)) -_gl_inline_error_at_line (int __status, int __errnum, const char *__filename, - unsigned int __lineno, const char *__format, ...) -{ - return error_at_line (__status, __errnum, __filename, __lineno, __format, - __builtin_va_arg_pack ()); -} -# pragma GCC diagnostic pop -# undef error_at_line -# define error_at_line(status, ...) \ - __gl_error_call (_gl_inline_error_at_line, status, __VA_ARGS__) -# endif -# else -# define error_at_line(status, ...) \ - __gl_error_call (error_at_line, status, __VA_ARGS__) -# endif -# endif -#endif -_GL_CXXALIASWARN (error_at_line); - -/* Print a message with 'vfprintf (stderr, FORMAT, ARGS)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with 'exit (STATUS)'. - Use the globals error_print_progname and error_message_count similarly - to error(). */ - -extern void verror (int __status, int __errnum, const char *__format, - va_list __args) - _GL_ATTRIBUTE_COLD - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 0)); -#ifndef _GL_NO_INLINE_ERROR -# ifndef verror -# define verror(status, ...) \ - __gl_error_call (verror, status, __VA_ARGS__) -# define GNULIB_defined_verror 1 -# endif -#endif - -/* Print a message with 'vfprintf (stderr, FORMAT, ARGS)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with 'exit (STATUS)'. - If FNAME is not NULL, prepend the message with "FNAME:LINENO:". - Use the globals error_print_progname, error_message_count, and - error_one_per_line similarly to error_at_line(). */ - -extern void verror_at_line (int __status, int __errnum, const char *__fname, - unsigned int __lineno, const char *__format, - va_list __args) - _GL_ATTRIBUTE_COLD - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 0)); -#ifdef _GL_NO_INLINE_ERROR -# ifndef verror_at_line -# define verror_at_line(status, ...) \ - __gl_error_call (verror_at_line, status, __VA_ARGS__) -# define GNULIB_defined_verror_at_line 1 -# endif -#endif - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -extern void (*error_print_progname) (void); - -/* This variable is incremented each time 'error' is called. */ -extern unsigned int error_message_count; - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -extern int error_one_per_line; - -#ifdef __cplusplus -} -#endif - -#endif /* _GL_ERROR_H */ -#endif /* _GL_ERROR_H */ diff --git a/jni/parted/lib/fcntl.h b/jni/parted/lib/fcntl.h deleted file mode 100755 index 3331954..0000000 --- a/jni/parted/lib/fcntl.h +++ /dev/null @@ -1,988 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Like , but with non-working flags defined to 0. - - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Paul Eggert */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_system_fcntl_h -/* Special invocation convention. */ - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) -# include -#endif -#include_next - -/* Native Windows platforms declare open(), creat() in . */ -#if (0 || 1 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -#else -/* Normal invocation convention. */ - -#ifndef _GL_FCNTL_H - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. - Also defines off64_t on macOS, NetBSD, OpenBSD, MSVC, Cygwin, Haiku. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) -# include -#endif -/* The include_next requires a split double-inclusion guard. */ -#include_next - -/* Native Windows platforms declare open(), creat() in . */ -#if (0 || 1 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -#ifndef _GL_FCNTL_H -#define _GL_FCNTL_H - -/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ -# include -#endif - - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Declare overridden functions. */ - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat rpl_creat -# endif -_GL_FUNCDECL_RPL (creat, int, (const char *filename, mode_t mode), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (creat, int, (const char *filename, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat _creat -# endif -_GL_CXXALIAS_MDA (creat, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (creat); -#elif defined GNULIB_POSIXCHECK -# undef creat -/* Assume creat is always declared. */ -_GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - " - "use gnulib module creat for portability"); -#elif 1 -/* On native Windows, map 'creat' to '_creat', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::creat always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat _creat -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (creat, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (creat); -#endif - -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcntl -# define fcntl rpl_fcntl -# endif -_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...), ); -_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); -# if !GNULIB_defined_rpl_fcntl -# define GNULIB_defined_rpl_fcntl 1 -# endif -# else -# if !1 -_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...), ); -# if !GNULIB_defined_fcntl -# define GNULIB_defined_fcntl 1 -# endif -# endif -_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); -# endif -_GL_CXXALIASWARN (fcntl); -#elif defined GNULIB_POSIXCHECK -# undef fcntl -# if HAVE_RAW_DECL_FCNTL -_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " - "use gnulib module fcntl for portability"); -# endif -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open rpl_open -# endif -_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open _open -# endif -_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a - default argument. _GL_CXXALIASWARN does not work in this case. */ -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#elif defined GNULIB_POSIXCHECK -# undef open -/* Assume open is always declared. */ -_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " - "use gnulib module open for portability"); -#elif 1 -/* On native Windows, map 'open' to '_open', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::open always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open _open -# endif -_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef openat -# define openat rpl_openat -# endif -_GL_FUNCDECL_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# endif -_GL_CXXALIASWARN (openat); -#elif defined GNULIB_POSIXCHECK -# undef openat -# if HAVE_RAW_DECL_OPENAT -_GL_WARN_ON_USE (openat, "openat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -/* Fix up the FD_* macros, only known to be missing on mingw. */ - -#ifndef FD_CLOEXEC -# define FD_CLOEXEC 1 -#endif - -/* Fix up the supported F_* macros. Intentionally leave other F_* - macros undefined. Only known to be missing on mingw. */ - -#ifndef F_DUPFD_CLOEXEC -# define F_DUPFD_CLOEXEC 0x40000000 -/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ -# define GNULIB_defined_F_DUPFD_CLOEXEC 1 -#else -# define GNULIB_defined_F_DUPFD_CLOEXEC 0 -#endif - -#ifndef F_DUPFD -# define F_DUPFD 1 -#endif - -#ifndef F_GETFD -# define F_GETFD 2 -#endif - -/* Fix up the O_* macros. */ - -/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT - to values outside 'int' range, so omit these misdefinitions. - But avoid namespace pollution on non-AIX systems. */ -#ifdef _AIX -# include -# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) -# undef O_CLOEXEC -# endif -# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) -# undef O_NOFOLLOW -# endif -# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) -# undef O_TTY_INIT -# endif -#endif - -#if !defined O_DIRECT && defined O_DIRECTIO -/* Tru64 spells it 'O_DIRECTIO'. */ -# define O_DIRECT O_DIRECTIO -#endif - -#if !defined O_CLOEXEC && defined O_NOINHERIT -/* Mingw spells it 'O_NOINHERIT'. */ -# define O_CLOEXEC O_NOINHERIT -#endif - -#ifndef O_CLOEXEC -# define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ -# define GNULIB_defined_O_CLOEXEC 1 -#else -# define GNULIB_defined_O_CLOEXEC 0 -#endif - -#ifndef O_DIRECT -# define O_DIRECT 0 -#endif - -#ifndef O_DIRECTORY -# define O_DIRECTORY 0 -#endif - -#ifndef O_DSYNC -# define O_DSYNC 0 -#endif - -#ifndef O_EXEC -# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_IGNORE_CTTY -# define O_IGNORE_CTTY 0 -#endif - -#ifndef O_NDELAY -# define O_NDELAY 0 -#endif - -#ifndef O_NOATIME -# define O_NOATIME 0 -#endif - -#ifndef O_NONBLOCK -# define O_NONBLOCK O_NDELAY -#endif - -/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero - value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY - or to 0 as fallback. */ -#if 0 -# if O_NONBLOCK -# define GNULIB_defined_O_NONBLOCK 0 -# else -# define GNULIB_defined_O_NONBLOCK 1 -# undef O_NONBLOCK -# define O_NONBLOCK 0x40000000 -# endif -#endif - -#ifndef O_NOCTTY -# define O_NOCTTY 0 -#endif - -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif - -#ifndef O_NOLINK -# define O_NOLINK 0 -#endif - -#ifndef O_NOLINKS -# define O_NOLINKS 0 -#endif - -#ifndef O_NOTRANS -# define O_NOTRANS 0 -#endif - -#ifndef O_RSYNC -# define O_RSYNC 0 -#endif - -#ifndef O_SEARCH -# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_SYNC -# define O_SYNC 0 -#endif - -#ifndef O_TTY_INIT -# define O_TTY_INIT 0 -#endif - -#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -# undef O_ACCMODE -# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -#endif - -/* For systems that distinguish between text and binary I/O. - O_BINARY is usually declared in fcntl.h */ -#if !defined O_BINARY && defined _O_BINARY - /* For MSC-compatible compilers. */ -# define O_BINARY _O_BINARY -# define O_TEXT _O_TEXT -#endif - -#if defined __BEOS__ || defined __HAIKU__ - /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ -# undef O_BINARY -# undef O_TEXT -#endif - -#ifndef O_BINARY -# define O_BINARY 0 -# define O_TEXT 0 -#endif - -/* Fix up the AT_* macros. */ - -/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its - value exceeds INT_MAX, so its use as an int doesn't conform to the - C standard, and GCC and Sun C complain in some cases. If the bug - is present, undef AT_FDCWD here, so it can be redefined below. */ -#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 -# undef AT_FDCWD -#endif - -/* Use the same bit pattern as Solaris 9, but with the proper - signedness. The bit pattern is important, in case this actually is - Solaris with the above workaround. */ -#ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -#endif - -/* Use the same values as Solaris 9. This shouldn't matter, but - there's no real reason to differ. */ -#ifndef AT_SYMLINK_NOFOLLOW -# define AT_SYMLINK_NOFOLLOW 4096 -#endif - -#ifndef AT_REMOVEDIR -# define AT_REMOVEDIR 1 -#endif - -/* Solaris 9 lacks these two, so just pick unique values. */ -#ifndef AT_SYMLINK_FOLLOW -# define AT_SYMLINK_FOLLOW 2 -#endif - -#ifndef AT_EACCESS -# define AT_EACCESS 4 -#endif - -/* Ignore this flag if not supported. */ -#ifndef AT_NO_AUTOMOUNT -# define AT_NO_AUTOMOUNT 0 -#endif - -#endif /* _GL_FCNTL_H */ -#endif /* _GL_FCNTL_H */ -#endif diff --git a/jni/parted/lib/inttypes.h b/jni/parted/lib/inttypes.h deleted file mode 100755 index a25ead4..0000000 --- a/jni/parted/lib/inttypes.h +++ /dev/null @@ -1,1570 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 2006-2024 Free Software Foundation, Inc. - Written by Paul Eggert, Bruno Haible, Derek Price. - This file is part of gnulib. - - This file 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 file 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 program. If not, see . */ - -/* - * ISO C 99 for platforms that lack it. - * - */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* Include the original if it exists, and if this file - has not been included yet or if this file includes gnulib stdint.h - which in turn includes this file. - The include_next requires a split double-inclusion guard. */ -#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H -# if 1 - - /* Some pre-C++11 implementations need this. */ -# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS -# define __STDC_FORMAT_MACROS 1 -# endif - -# include_next - -# define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H -# endif -#endif - -#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H -#define INTTYPES_H - -/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Include or the gnulib replacement. - But avoid namespace pollution on glibc systems. */ -#ifndef __GLIBC__ -# include -#endif -/* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ -#include -/* On mingw, __USE_MINGW_ANSI_STDIO only works if is also included */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include -#endif - -#if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) -# error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to ." -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* 7.8.1 Macros for format specifiers */ - -#if defined _TNS_R_TARGET - /* Tandem NonStop R series and compatible platforms released before - July 2005 support %Ld but not %lld. */ -# define _LONG_LONG_FORMAT_PREFIX "L" -#else -# define _LONG_LONG_FORMAT_PREFIX "ll" -#endif - -#if !defined PRId8 -# ifdef INT8_MAX -# define PRId8 "d" -# endif -#endif -#if !defined PRIi8 -# ifdef INT8_MAX -# define PRIi8 "i" -# endif -#endif -#if !defined PRIo8 -# ifdef UINT8_MAX -# define PRIo8 "o" -# endif -#endif -#if !defined PRIu8 -# ifdef UINT8_MAX -# define PRIu8 "u" -# endif -#endif -#if !defined PRIx8 -# ifdef UINT8_MAX -# define PRIx8 "x" -# endif -#endif -#if !defined PRIX8 -# ifdef UINT8_MAX -# define PRIX8 "X" -# endif -#endif -#if !defined PRId16 -# ifdef INT16_MAX -# define PRId16 "d" -# endif -#endif -#if !defined PRIi16 -# ifdef INT16_MAX -# define PRIi16 "i" -# endif -#endif -#if !defined PRIo16 -# ifdef UINT16_MAX -# define PRIo16 "o" -# endif -#endif -#if !defined PRIu16 -# ifdef UINT16_MAX -# define PRIu16 "u" -# endif -#endif -#if !defined PRIx16 -# ifdef UINT16_MAX -# define PRIx16 "x" -# endif -#endif -#if !defined PRIX16 -# ifdef UINT16_MAX -# define PRIX16 "X" -# endif -#endif -#if !defined PRId32 -# ifdef INT32_MAX -# define PRId32 "d" -# endif -#endif -#if !defined PRIi32 -# ifdef INT32_MAX -# define PRIi32 "i" -# endif -#endif -#if !defined PRIo32 -# ifdef UINT32_MAX -# define PRIo32 "o" -# endif -#endif -#if !defined PRIu32 -# ifdef UINT32_MAX -# define PRIu32 "u" -# endif -#endif -#if !defined PRIx32 -# ifdef UINT32_MAX -# define PRIx32 "x" -# endif -#endif -#if !defined PRIX32 -# ifdef UINT32_MAX -# define PRIX32 "X" -# endif -#endif -#ifdef INT64_MAX -# if (0 ? defined _LP64 : 1) -# define _PRI64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRI64_PREFIX "I64" -# elif LONG_MAX >> 30 == 1 -# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRId64 -# define PRId64 _PRI64_PREFIX "d" -# endif -# if !defined PRIi64 -# define PRIi64 _PRI64_PREFIX "i" -# endif -#endif -#ifdef UINT64_MAX -# if (0 ? defined _LP64 : 1) -# define _PRIu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRIu64_PREFIX "I64" -# elif ULONG_MAX >> 31 == 1 -# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRIo64 -# define PRIo64 _PRIu64_PREFIX "o" -# endif -# if !defined PRIu64 -# define PRIu64 _PRIu64_PREFIX "u" -# endif -# if !defined PRIx64 -# define PRIx64 _PRIu64_PREFIX "x" -# endif -# if !defined PRIX64 -# define PRIX64 _PRIu64_PREFIX "X" -# endif -#endif - -#if !defined PRIdLEAST8 -# define PRIdLEAST8 "d" -#endif -#if !defined PRIiLEAST8 -# define PRIiLEAST8 "i" -#endif -#if !defined PRIoLEAST8 -# define PRIoLEAST8 "o" -#endif -#if !defined PRIuLEAST8 -# define PRIuLEAST8 "u" -#endif -#if !defined PRIxLEAST8 -# define PRIxLEAST8 "x" -#endif -#if !defined PRIXLEAST8 -# define PRIXLEAST8 "X" -#endif -#if !defined PRIdLEAST16 -# define PRIdLEAST16 "d" -#endif -#if !defined PRIiLEAST16 -# define PRIiLEAST16 "i" -#endif -#if !defined PRIoLEAST16 -# define PRIoLEAST16 "o" -#endif -#if !defined PRIuLEAST16 -# define PRIuLEAST16 "u" -#endif -#if !defined PRIxLEAST16 -# define PRIxLEAST16 "x" -#endif -#if !defined PRIXLEAST16 -# define PRIXLEAST16 "X" -#endif -#if !defined PRIdLEAST32 -# define PRIdLEAST32 "d" -#endif -#if !defined PRIiLEAST32 -# define PRIiLEAST32 "i" -#endif -#if !defined PRIoLEAST32 -# define PRIoLEAST32 "o" -#endif -#if !defined PRIuLEAST32 -# define PRIuLEAST32 "u" -#endif -#if !defined PRIxLEAST32 -# define PRIxLEAST32 "x" -#endif -#if !defined PRIXLEAST32 -# define PRIXLEAST32 "X" -#endif -#ifdef INT64_MAX -# if !defined PRIdLEAST64 -# define PRIdLEAST64 PRId64 -# endif -# if !defined PRIiLEAST64 -# define PRIiLEAST64 PRIi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined PRIoLEAST64 -# define PRIoLEAST64 PRIo64 -# endif -# if !defined PRIuLEAST64 -# define PRIuLEAST64 PRIu64 -# endif -# if !defined PRIxLEAST64 -# define PRIxLEAST64 PRIx64 -# endif -# if !defined PRIXLEAST64 -# define PRIXLEAST64 PRIX64 -# endif -#endif - -#if !defined PRIdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIdFAST8 PRId64 -# else -# define PRIdFAST8 "d" -# endif -#endif -#if !defined PRIiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIiFAST8 PRIi64 -# else -# define PRIiFAST8 "i" -# endif -#endif -#if !defined PRIoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIoFAST8 PRIo64 -# else -# define PRIoFAST8 "o" -# endif -#endif -#if !defined PRIuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIuFAST8 PRIu64 -# else -# define PRIuFAST8 "u" -# endif -#endif -#if !defined PRIxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIxFAST8 PRIx64 -# else -# define PRIxFAST8 "x" -# endif -#endif -#if !defined PRIXFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIXFAST8 PRIX64 -# else -# define PRIXFAST8 "X" -# endif -#endif -#if !defined PRIdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIdFAST16 PRId64 -# else -# define PRIdFAST16 "d" -# endif -#endif -#if !defined PRIiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIiFAST16 PRIi64 -# else -# define PRIiFAST16 "i" -# endif -#endif -#if !defined PRIoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIoFAST16 PRIo64 -# else -# define PRIoFAST16 "o" -# endif -#endif -#if !defined PRIuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIuFAST16 PRIu64 -# else -# define PRIuFAST16 "u" -# endif -#endif -#if !defined PRIxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIxFAST16 PRIx64 -# else -# define PRIxFAST16 "x" -# endif -#endif -#if !defined PRIXFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIXFAST16 PRIX64 -# else -# define PRIXFAST16 "X" -# endif -#endif -#if !defined PRIdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIdFAST32 PRId64 -# else -# define PRIdFAST32 "d" -# endif -#endif -#if !defined PRIiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIiFAST32 PRIi64 -# else -# define PRIiFAST32 "i" -# endif -#endif -#if !defined PRIoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIoFAST32 PRIo64 -# else -# define PRIoFAST32 "o" -# endif -#endif -#if !defined PRIuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIuFAST32 PRIu64 -# else -# define PRIuFAST32 "u" -# endif -#endif -#if !defined PRIxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIxFAST32 PRIx64 -# else -# define PRIxFAST32 "x" -# endif -#endif -#if !defined PRIXFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIXFAST32 PRIX64 -# else -# define PRIXFAST32 "X" -# endif -#endif -#ifdef INT64_MAX -# if !defined PRIdFAST64 -# define PRIdFAST64 PRId64 -# endif -# if !defined PRIiFAST64 -# define PRIiFAST64 PRIi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined PRIoFAST64 -# define PRIoFAST64 PRIo64 -# endif -# if !defined PRIuFAST64 -# define PRIuFAST64 PRIu64 -# endif -# if !defined PRIxFAST64 -# define PRIxFAST64 PRIx64 -# endif -# if !defined PRIXFAST64 -# define PRIXFAST64 PRIX64 -# endif -#endif - -#if !defined PRIdMAX -# if 1 -# define PRIdMAX PRId64 -# else -# define PRIdMAX "ld" -# endif -#endif -#if !defined PRIiMAX -# if 1 -# define PRIiMAX PRIi64 -# else -# define PRIiMAX "li" -# endif -#endif -#if !defined PRIoMAX -# if 1 -# define PRIoMAX PRIo64 -# else -# define PRIoMAX "lo" -# endif -#endif -#if !defined PRIuMAX -# if 1 -# define PRIuMAX PRIu64 -# else -# define PRIuMAX "lu" -# endif -#endif -#if !defined PRIxMAX -# if 1 -# define PRIxMAX PRIx64 -# else -# define PRIxMAX "lx" -# endif -#endif -#if !defined PRIXMAX -# if 1 -# define PRIXMAX PRIX64 -# else -# define PRIXMAX "lX" -# endif -#endif - -#if !defined PRIdPTR -# ifdef INTPTR_MAX -# define PRIdPTR "l" "d" -# endif -#endif -#if !defined PRIiPTR -# ifdef INTPTR_MAX -# define PRIiPTR "l" "i" -# endif -#endif -#if !defined PRIoPTR -# ifdef UINTPTR_MAX -# define PRIoPTR "l" "o" -# endif -#endif -#if !defined PRIuPTR -# ifdef UINTPTR_MAX -# define PRIuPTR "l" "u" -# endif -#endif -#if !defined PRIxPTR -# ifdef UINTPTR_MAX -# define PRIxPTR "l" "x" -# endif -#endif -#if !defined PRIXPTR -# ifdef UINTPTR_MAX -# define PRIXPTR "l" "X" -# endif -#endif - -#if !defined SCNd8 -# ifdef INT8_MAX -# define SCNd8 "hhd" -# endif -#endif -#if !defined SCNi8 -# ifdef INT8_MAX -# define SCNi8 "hhi" -# endif -#endif -#if !defined SCNo8 -# ifdef UINT8_MAX -# define SCNo8 "hho" -# endif -#endif -#if !defined SCNu8 -# ifdef UINT8_MAX -# define SCNu8 "hhu" -# endif -#endif -#if !defined SCNx8 -# ifdef UINT8_MAX -# define SCNx8 "hhx" -# endif -#endif -#if !defined SCNd16 -# ifdef INT16_MAX -# define SCNd16 "hd" -# endif -#endif -#if !defined SCNi16 -# ifdef INT16_MAX -# define SCNi16 "hi" -# endif -#endif -#if !defined SCNo16 -# ifdef UINT16_MAX -# define SCNo16 "ho" -# endif -#endif -#if !defined SCNu16 -# ifdef UINT16_MAX -# define SCNu16 "hu" -# endif -#endif -#if !defined SCNx16 -# ifdef UINT16_MAX -# define SCNx16 "hx" -# endif -#endif -#if !defined SCNd32 -# ifdef INT32_MAX -# define SCNd32 "d" -# endif -#endif -#if !defined SCNi32 -# ifdef INT32_MAX -# define SCNi32 "i" -# endif -#endif -#if !defined SCNo32 -# ifdef UINT32_MAX -# define SCNo32 "o" -# endif -#endif -#if !defined SCNu32 -# ifdef UINT32_MAX -# define SCNu32 "u" -# endif -#endif -#if !defined SCNx32 -# ifdef UINT32_MAX -# define SCNx32 "x" -# endif -#endif -#ifdef INT64_MAX -# if (0 ? defined _LP64 : 1) -# define _SCN64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCN64_PREFIX "I64" -# elif LONG_MAX >> 30 == 1 -# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNd64 -# define SCNd64 _SCN64_PREFIX "d" -# endif -# if !defined SCNi64 -# define SCNi64 _SCN64_PREFIX "i" -# endif -#endif -#ifdef UINT64_MAX -# if (0 ? defined _LP64 : 1) -# define _SCNu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCNu64_PREFIX "I64" -# elif ULONG_MAX >> 31 == 1 -# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNo64 -# define SCNo64 _SCNu64_PREFIX "o" -# endif -# if !defined SCNu64 -# define SCNu64 _SCNu64_PREFIX "u" -# endif -# if !defined SCNx64 -# define SCNx64 _SCNu64_PREFIX "x" -# endif -#endif - -#if !defined SCNdLEAST8 -# define SCNdLEAST8 "hhd" -#endif -#if !defined SCNiLEAST8 -# define SCNiLEAST8 "hhi" -#endif -#if !defined SCNoLEAST8 -# define SCNoLEAST8 "hho" -#endif -#if !defined SCNuLEAST8 -# define SCNuLEAST8 "hhu" -#endif -#if !defined SCNxLEAST8 -# define SCNxLEAST8 "hhx" -#endif -#if !defined SCNdLEAST16 -# define SCNdLEAST16 "hd" -#endif -#if !defined SCNiLEAST16 -# define SCNiLEAST16 "hi" -#endif -#if !defined SCNoLEAST16 -# define SCNoLEAST16 "ho" -#endif -#if !defined SCNuLEAST16 -# define SCNuLEAST16 "hu" -#endif -#if !defined SCNxLEAST16 -# define SCNxLEAST16 "hx" -#endif -#if !defined SCNdLEAST32 -# define SCNdLEAST32 "d" -#endif -#if !defined SCNiLEAST32 -# define SCNiLEAST32 "i" -#endif -#if !defined SCNoLEAST32 -# define SCNoLEAST32 "o" -#endif -#if !defined SCNuLEAST32 -# define SCNuLEAST32 "u" -#endif -#if !defined SCNxLEAST32 -# define SCNxLEAST32 "x" -#endif -#ifdef INT64_MAX -# if !defined SCNdLEAST64 -# define SCNdLEAST64 SCNd64 -# endif -# if !defined SCNiLEAST64 -# define SCNiLEAST64 SCNi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined SCNoLEAST64 -# define SCNoLEAST64 SCNo64 -# endif -# if !defined SCNuLEAST64 -# define SCNuLEAST64 SCNu64 -# endif -# if !defined SCNxLEAST64 -# define SCNxLEAST64 SCNx64 -# endif -#endif - -#if !defined SCNdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNdFAST8 SCNd64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNdFAST8 "hd" -# elif INT_FAST8_MAX == 0x7f -# define SCNdFAST8 "hhd" -# else -# define SCNdFAST8 "d" -# endif -#endif -#if !defined SCNiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNiFAST8 SCNi64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNiFAST8 "hi" -# elif INT_FAST8_MAX == 0x7f -# define SCNiFAST8 "hhi" -# else -# define SCNiFAST8 "i" -# endif -#endif -#if !defined SCNoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNoFAST8 SCNo64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNoFAST8 "ho" -# elif UINT_FAST8_MAX == 0xff -# define SCNoFAST8 "hho" -# else -# define SCNoFAST8 "o" -# endif -#endif -#if !defined SCNuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNuFAST8 SCNu64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNuFAST8 "hu" -# elif UINT_FAST8_MAX == 0xff -# define SCNuFAST8 "hhu" -# else -# define SCNuFAST8 "u" -# endif -#endif -#if !defined SCNxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNxFAST8 SCNx64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNxFAST8 "hx" -# elif UINT_FAST8_MAX == 0xff -# define SCNxFAST8 "hhx" -# else -# define SCNxFAST8 "x" -# endif -#endif -#if !defined SCNdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNdFAST16 SCNd64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNdFAST16 "hd" -# else -# define SCNdFAST16 "d" -# endif -#endif -#if !defined SCNiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNiFAST16 SCNi64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNiFAST16 "hi" -# else -# define SCNiFAST16 "i" -# endif -#endif -#if !defined SCNoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNoFAST16 SCNo64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNoFAST16 "ho" -# else -# define SCNoFAST16 "o" -# endif -#endif -#if !defined SCNuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNuFAST16 SCNu64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNuFAST16 "hu" -# else -# define SCNuFAST16 "u" -# endif -#endif -#if !defined SCNxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNxFAST16 SCNx64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNxFAST16 "hx" -# else -# define SCNxFAST16 "x" -# endif -#endif -#if !defined SCNdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNdFAST32 SCNd64 -# else -# define SCNdFAST32 "d" -# endif -#endif -#if !defined SCNiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNiFAST32 SCNi64 -# else -# define SCNiFAST32 "i" -# endif -#endif -#if !defined SCNoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNoFAST32 SCNo64 -# else -# define SCNoFAST32 "o" -# endif -#endif -#if !defined SCNuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNuFAST32 SCNu64 -# else -# define SCNuFAST32 "u" -# endif -#endif -#if !defined SCNxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNxFAST32 SCNx64 -# else -# define SCNxFAST32 "x" -# endif -#endif -#ifdef INT64_MAX -# if !defined SCNdFAST64 -# define SCNdFAST64 SCNd64 -# endif -# if !defined SCNiFAST64 -# define SCNiFAST64 SCNi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined SCNoFAST64 -# define SCNoFAST64 SCNo64 -# endif -# if !defined SCNuFAST64 -# define SCNuFAST64 SCNu64 -# endif -# if !defined SCNxFAST64 -# define SCNxFAST64 SCNx64 -# endif -#endif - -#if !defined SCNdMAX -# if 1 -# define SCNdMAX SCNd64 -# else -# define SCNdMAX "ld" -# endif -#endif -#if !defined SCNiMAX -# if 1 -# define SCNiMAX SCNi64 -# else -# define SCNiMAX "li" -# endif -#endif -#if !defined SCNoMAX -# if 1 -# define SCNoMAX SCNo64 -# else -# define SCNoMAX "lo" -# endif -#endif -#if !defined SCNuMAX -# if 1 -# define SCNuMAX SCNu64 -# else -# define SCNuMAX "lu" -# endif -#endif -#if !defined SCNxMAX -# if 1 -# define SCNxMAX SCNx64 -# else -# define SCNxMAX "lx" -# endif -#endif - -#if !defined SCNdPTR -# ifdef INTPTR_MAX -# define SCNdPTR "l" "d" -# endif -#endif -#if !defined SCNiPTR -# ifdef INTPTR_MAX -# define SCNiPTR "l" "i" -# endif -#endif -#if !defined SCNoPTR -# ifdef UINTPTR_MAX -# define SCNoPTR "l" "o" -# endif -#endif -#if !defined SCNuPTR -# ifdef UINTPTR_MAX -# define SCNuPTR "l" "u" -# endif -#endif -#if !defined SCNxPTR -# ifdef UINTPTR_MAX -# define SCNxPTR "l" "x" -# endif -#endif - -/* 7.8.2 Functions for greatest-width integer types */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef imaxabs -# define imaxabs rpl_imaxabs -# endif -_GL_FUNCDECL_RPL (imaxabs, intmax_t, (intmax_t x), ); -_GL_CXXALIAS_RPL (imaxabs, intmax_t, (intmax_t x)); -# else -# if !1 -_GL_FUNCDECL_SYS (imaxabs, intmax_t, (intmax_t x), ); -# endif -_GL_CXXALIAS_SYS (imaxabs, intmax_t, (intmax_t x)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (imaxabs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef imaxabs -# if HAVE_RAW_DECL_IMAXABS -_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " - "use gnulib module imaxabs for portability"); -# endif -#endif - -#if 0 -# if !1 -# if !GNULIB_defined_imaxdiv_t -typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; -# define GNULIB_defined_imaxdiv_t 1 -# endif -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef imaxdiv -# define imaxdiv rpl_imaxdiv -# endif -_GL_FUNCDECL_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom), ); -_GL_CXXALIAS_RPL (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom)); -# else -# if !1 -_GL_FUNCDECL_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom), ); -# endif -_GL_CXXALIAS_SYS (imaxdiv, imaxdiv_t, (intmax_t numer, intmax_t denom)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (imaxdiv); -# endif -#elif defined GNULIB_POSIXCHECK -# undef imaxdiv -# if HAVE_RAW_DECL_IMAXDIV -_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " - "use gnulib module imaxdiv for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtoimax -# define strtoimax rpl_strtoimax -# endif -_GL_FUNCDECL_RPL (strtoimax, intmax_t, - (const char *restrict, char **restrict, int), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoimax, intmax_t, - (const char *restrict, char **restrict, int)); -# else -# if !1 -# undef strtoimax -_GL_FUNCDECL_SYS (strtoimax, intmax_t, - (const char *restrict, char **restrict, int), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoimax, intmax_t, - (const char *restrict, char **restrict, int)); -# endif -_GL_CXXALIASWARN (strtoimax); -#elif defined GNULIB_POSIXCHECK -# undef strtoimax -# if HAVE_RAW_DECL_STRTOIMAX -_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " - "use gnulib module strtoimax for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtoumax -# define strtoumax rpl_strtoumax -# endif -_GL_FUNCDECL_RPL (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int)); -# else -# if !1 -# undef strtoumax -_GL_FUNCDECL_SYS (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int)); -# endif -_GL_CXXALIASWARN (strtoumax); -#elif defined GNULIB_POSIXCHECK -# undef strtoumax -# if HAVE_RAW_DECL_STRTOUMAX -_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " - "use gnulib module strtoumax for portability"); -# endif -#endif - -/* Don't bother defining or declaring wcstoimax and wcstoumax, since - wide-character functions like this are hardly ever useful. */ - -#ifdef __cplusplus -} -#endif - -#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ diff --git a/jni/parted/lib/langinfo.h b/jni/parted/lib/langinfo.h deleted file mode 100755 index 7e80f9a..0000000 --- a/jni/parted/lib/langinfo.h +++ /dev/null @@ -1,740 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Substitute for and wrapper around . - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* - * POSIX for platforms that lack it or have an incomplete one. - * - */ - -#ifndef _GL_LANGINFO_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# include_next -#endif - -#ifndef _GL_LANGINFO_H -#define _GL_LANGINFO_H - -/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - - -#if !1 - -/* A platform that lacks . */ - -/* Assume that it also lacks and the nl_item type. */ -# if !GNULIB_defined_nl_item -typedef int nl_item; -# define GNULIB_defined_nl_item 1 -# endif - -/* nl_langinfo items of the LC_CTYPE category */ -# define CODESET 10000 -/* nl_langinfo items of the LC_NUMERIC category */ -# define RADIXCHAR 10001 -# define DECIMAL_POINT RADIXCHAR -# define THOUSEP 10002 -# define THOUSANDS_SEP THOUSEP -# define GROUPING 10114 -/* nl_langinfo items of the LC_TIME category */ -# define D_T_FMT 10003 -# define D_FMT 10004 -# define T_FMT 10005 -# define T_FMT_AMPM 10006 -# define AM_STR 10007 -# define PM_STR 10008 -# define DAY_1 10009 -# define DAY_2 (DAY_1 + 1) -# define DAY_3 (DAY_1 + 2) -# define DAY_4 (DAY_1 + 3) -# define DAY_5 (DAY_1 + 4) -# define DAY_6 (DAY_1 + 5) -# define DAY_7 (DAY_1 + 6) -# define ABDAY_1 10016 -# define ABDAY_2 (ABDAY_1 + 1) -# define ABDAY_3 (ABDAY_1 + 2) -# define ABDAY_4 (ABDAY_1 + 3) -# define ABDAY_5 (ABDAY_1 + 4) -# define ABDAY_6 (ABDAY_1 + 5) -# define ABDAY_7 (ABDAY_1 + 6) -# define MON_1 10023 -# define MON_2 (MON_1 + 1) -# define MON_3 (MON_1 + 2) -# define MON_4 (MON_1 + 3) -# define MON_5 (MON_1 + 4) -# define MON_6 (MON_1 + 5) -# define MON_7 (MON_1 + 6) -# define MON_8 (MON_1 + 7) -# define MON_9 (MON_1 + 8) -# define MON_10 (MON_1 + 9) -# define MON_11 (MON_1 + 10) -# define MON_12 (MON_1 + 11) -# define ALTMON_1 10200 -# define ALTMON_2 (ALTMON_1 + 1) -# define ALTMON_3 (ALTMON_1 + 2) -# define ALTMON_4 (ALTMON_1 + 3) -# define ALTMON_5 (ALTMON_1 + 4) -# define ALTMON_6 (ALTMON_1 + 5) -# define ALTMON_7 (ALTMON_1 + 6) -# define ALTMON_8 (ALTMON_1 + 7) -# define ALTMON_9 (ALTMON_1 + 8) -# define ALTMON_10 (ALTMON_1 + 9) -# define ALTMON_11 (ALTMON_1 + 10) -# define ALTMON_12 (ALTMON_1 + 11) -# define ABMON_1 10035 -# define ABMON_2 (ABMON_1 + 1) -# define ABMON_3 (ABMON_1 + 2) -# define ABMON_4 (ABMON_1 + 3) -# define ABMON_5 (ABMON_1 + 4) -# define ABMON_6 (ABMON_1 + 5) -# define ABMON_7 (ABMON_1 + 6) -# define ABMON_8 (ABMON_1 + 7) -# define ABMON_9 (ABMON_1 + 8) -# define ABMON_10 (ABMON_1 + 9) -# define ABMON_11 (ABMON_1 + 10) -# define ABMON_12 (ABMON_1 + 11) -# define ERA 10047 -# define ERA_D_FMT 10048 -# define ERA_D_T_FMT 10049 -# define ERA_T_FMT 10050 -# define ALT_DIGITS 10051 -/* nl_langinfo items of the LC_MONETARY category */ -# define CRNCYSTR 10052 -# define CURRENCY_SYMBOL CRNCYSTR -# define INT_CURR_SYMBOL 10100 -# define MON_DECIMAL_POINT 10101 -# define MON_THOUSANDS_SEP 10102 -# define MON_GROUPING 10103 -# define POSITIVE_SIGN 10104 -# define NEGATIVE_SIGN 10105 -# define FRAC_DIGITS 10106 -# define INT_FRAC_DIGITS 10107 -# define P_CS_PRECEDES 10108 -# define N_CS_PRECEDES 10109 -# define P_SEP_BY_SPACE 10110 -# define N_SEP_BY_SPACE 10111 -# define P_SIGN_POSN 10112 -# define N_SIGN_POSN 10113 -/* nl_langinfo items of the LC_MESSAGES category */ -# define YESEXPR 10053 -# define NOEXPR 10054 - -#else - -/* A platform that has . */ - -# if !1 -# define CODESET 10000 -# define GNULIB_defined_CODESET 1 -# endif - -# if !1 -# define T_FMT_AMPM 10006 -# define GNULIB_defined_T_FMT_AMPM 1 -# endif - -# if !0 -# define ALTMON_1 10200 -# define ALTMON_2 (ALTMON_1 + 1) -# define ALTMON_3 (ALTMON_1 + 2) -# define ALTMON_4 (ALTMON_1 + 3) -# define ALTMON_5 (ALTMON_1 + 4) -# define ALTMON_6 (ALTMON_1 + 5) -# define ALTMON_7 (ALTMON_1 + 6) -# define ALTMON_8 (ALTMON_1 + 7) -# define ALTMON_9 (ALTMON_1 + 8) -# define ALTMON_10 (ALTMON_1 + 9) -# define ALTMON_11 (ALTMON_1 + 10) -# define ALTMON_12 (ALTMON_1 + 11) -# define GNULIB_defined_ALTMON 1 -# endif - -# if !1 -# define ERA 10047 -# define ERA_D_FMT 10048 -# define ERA_D_T_FMT 10049 -# define ERA_T_FMT 10050 -# define ALT_DIGITS 10051 -# define GNULIB_defined_ERA 1 -# endif - -# if !1 -# define YESEXPR 10053 -# define NOEXPR 10054 -# define GNULIB_defined_YESEXPR 1 -# endif - -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Declare overridden functions. */ - - -/* Return a piece of locale dependent information. - Note: The difference between nl_langinfo (CODESET) and locale_charset () - is that the latter normalizes the encoding names to GNU conventions. */ - -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef nl_langinfo -# define nl_langinfo rpl_nl_langinfo -# endif -_GL_FUNCDECL_RPL (nl_langinfo, char *, (nl_item item), ); -_GL_CXXALIAS_RPL (nl_langinfo, char *, (nl_item item)); -# else -# if !1 -_GL_FUNCDECL_SYS (nl_langinfo, char *, (nl_item item), ); -# endif -_GL_CXXALIAS_SYS (nl_langinfo, char *, (nl_item item)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (nl_langinfo); -# endif -#elif defined GNULIB_POSIXCHECK -# undef nl_langinfo -# if HAVE_RAW_DECL_NL_LANGINFO -_GL_WARN_ON_USE (nl_langinfo, "nl_langinfo is not portable - " - "use gnulib module nl_langinfo for portability"); -# endif -#endif - - -#endif /* _GL_LANGINFO_H */ -#endif /* _GL_LANGINFO_H */ diff --git a/jni/parted/lib/limits.h b/jni/parted/lib/limits.h deleted file mode 100755 index 7a3de5a..0000000 --- a/jni/parted/lib/limits.h +++ /dev/null @@ -1,152 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright 2016-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined _GL_ALREADY_INCLUDING_LIMITS_H -/* Special invocation convention: - On Haiku/x86_64, we have a sequence of nested includes - -> -> . - In this situation, LONG_MAX and INT_MAX are not yet defined, - therefore we should not attempt to define LONG_BIT. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_LIMITS_H - -# define _GL_ALREADY_INCLUDING_LIMITS_H - -/* The include_next requires a split double-inclusion guard. */ -# include_next - -# undef _GL_ALREADY_INCLUDING_LIMITS_H - -#ifndef _GL_LIMITS_H -#define _GL_LIMITS_H - -#ifndef LLONG_MIN -# if defined LONG_LONG_MIN /* HP-UX 11.31 */ -# define LLONG_MIN LONG_LONG_MIN -# elif defined LONGLONG_MIN /* IRIX 6.5 */ -# define LLONG_MIN LONGLONG_MIN -# elif defined __GNUC__ -# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) -# endif -#endif -#ifndef LLONG_MAX -# if defined LONG_LONG_MAX /* HP-UX 11.31 */ -# define LLONG_MAX LONG_LONG_MAX -# elif defined LONGLONG_MAX /* IRIX 6.5 */ -# define LLONG_MAX LONGLONG_MAX -# elif defined __GNUC__ -# define LLONG_MAX __LONG_LONG_MAX__ -# endif -#endif -#ifndef ULLONG_MAX -# if defined ULONG_LONG_MAX /* HP-UX 11.31 */ -# define ULLONG_MAX ULONG_LONG_MAX -# elif defined ULONGLONG_MAX /* IRIX 6.5 */ -# define ULLONG_MAX ULONGLONG_MAX -# elif defined __GNUC__ -# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) -# endif -#endif - -/* The number of usable bits in an unsigned or signed integer type - with minimum value MIN and maximum value MAX, as an int expression - suitable in #if. Cover all known practical hosts. This - implementation exploits the fact that MAX is 1 less than a power of - 2, and merely counts the number of 1 bits in MAX; "COBn" means - "count the number of 1 bits in the low-order n bits"). */ -#define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) -#define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) -#define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) -#define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) -#define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) -#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) -#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) - -#ifndef WORD_BIT -/* Assume 'int' is 32 bits wide. */ -# define WORD_BIT 32 -#endif -#ifndef LONG_BIT -/* Assume 'long' is 32 or 64 bits wide. */ -# if LONG_MAX == INT_MAX -# define LONG_BIT 32 -# else -# define LONG_BIT 64 -# endif -#endif - -/* Assume no multibyte character is longer than 16 bytes. */ -#ifndef MB_LEN_MAX -# define MB_LEN_MAX 16 -#endif - -/* Macros specified by C23 and by ISO/IEC TS 18661-1:2014. */ - -#if (! defined ULLONG_WIDTH \ - && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \ - || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) -# define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) -# define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) -# define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) -# define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) -# define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) -# define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) -# define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) -# define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) -# define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) -# define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) -# define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) -#endif - -/* Macros specified by C23. */ - -#if (defined _GNU_SOURCE \ - || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__)) -# if ! defined BOOL_WIDTH -# define BOOL_WIDTH 1 -# define BOOL_MAX 1 -# elif ! defined BOOL_MAX -# define BOOL_MAX 1 -# endif -#endif - -/* Macro specified by POSIX. */ - -/* The maximum ssize_t value. Although it might not be of ssize_t type - as it should be, it's too much trouble to fix this minor detail. */ -#ifndef SSIZE_MAX -# ifdef _WIN64 -# define SSIZE_MAX LLONG_MAX -# else -# define SSIZE_MAX LONG_MAX -# endif -#endif - -#endif /* _GL_LIMITS_H */ -#endif /* _GL_LIMITS_H */ -#endif diff --git a/jni/parted/lib/locale.h b/jni/parted/lib/locale.h deleted file mode 100755 index 8b77de7..0000000 --- a/jni/parted/lib/locale.h +++ /dev/null @@ -1,849 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A POSIX . - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \ - || defined _GL_ALREADY_INCLUDING_LOCALE_H - -/* Special invocation convention: - - Inside mingw header files, - - To handle Solaris header files (through Solaris 10) when combined - with gettext's libintl.h. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_LOCALE_H - -#define _GL_ALREADY_INCLUDING_LOCALE_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#undef _GL_ALREADY_INCLUDING_LOCALE_H - -#ifndef _GL_LOCALE_H -#define _GL_LOCALE_H - -/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* NetBSD 5.0 mis-defines NULL. */ -#include - -/* Mac OS X 10.5 defines the locale_t type in . */ -#if 1 -# include -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C. - On systems that don't define it, use the same value as GNU libintl. */ -#if !defined LC_MESSAGES -# define LC_MESSAGES 1729 -#endif - -/* On native Windows with MSVC, 'struct lconv' lacks the members int_p_* and - int_n_*. Instead of overriding 'struct lconv', merely define these member - names as macros. This avoids trouble in C++ mode. */ -#if defined _MSC_VER -# define int_p_cs_precedes p_cs_precedes -# define int_p_sign_posn p_sign_posn -# define int_p_sep_by_space p_sep_by_space -# define int_n_cs_precedes n_cs_precedes -# define int_n_sign_posn n_sign_posn -# define int_n_sep_by_space n_sep_by_space -#endif - -/* Bionic libc's 'struct lconv' is just a dummy. */ -#if 0 -# define lconv rpl_lconv -struct lconv -{ - /* All 'char *' are actually 'const char *'. */ - - /* Members that depend on the LC_NUMERIC category of the locale. See - */ - - /* Symbol used as decimal point. */ - char *decimal_point; - /* Symbol used to separate groups of digits to the left of the decimal - point. */ - char *thousands_sep; - /* Definition of the size of groups of digits to the left of the decimal - point. */ - char *grouping; - - /* Members that depend on the LC_MONETARY category of the locale. See - */ - - /* Symbol used as decimal point. */ - char *mon_decimal_point; - /* Symbol used to separate groups of digits to the left of the decimal - point. */ - char *mon_thousands_sep; - /* Definition of the size of groups of digits to the left of the decimal - point. */ - char *mon_grouping; - /* Sign used to indicate a value >= 0. */ - char *positive_sign; - /* Sign used to indicate a value < 0. */ - char *negative_sign; - - /* For formatting local currency. */ - /* Currency symbol (3 characters) followed by separator (1 character). */ - char *currency_symbol; - /* Number of digits after the decimal point. */ - char frac_digits; - /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it - comes after the number. */ - char p_cs_precedes; - /* For values >= 0: Position of the sign. */ - char p_sign_posn; - /* For values >= 0: Placement of spaces between currency symbol, sign, and - number. */ - char p_sep_by_space; - /* For values < 0: 1 if the currency symbol precedes the number, 0 if it - comes after the number. */ - char n_cs_precedes; - /* For values < 0: Position of the sign. */ - char n_sign_posn; - /* For values < 0: Placement of spaces between currency symbol, sign, and - number. */ - char n_sep_by_space; - - /* For formatting international currency. */ - /* Currency symbol (3 characters) followed by separator (1 character). */ - char *int_curr_symbol; - /* Number of digits after the decimal point. */ - char int_frac_digits; - /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it - comes after the number. */ - char int_p_cs_precedes; - /* For values >= 0: Position of the sign. */ - char int_p_sign_posn; - /* For values >= 0: Placement of spaces between currency symbol, sign, and - number. */ - char int_p_sep_by_space; - /* For values < 0: 1 if the currency symbol precedes the number, 0 if it - comes after the number. */ - char int_n_cs_precedes; - /* For values < 0: Position of the sign. */ - char int_n_sign_posn; - /* For values < 0: Placement of spaces between currency symbol, sign, and - number. */ - char int_n_sep_by_space; -}; -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localeconv -# define localeconv rpl_localeconv -# endif -_GL_FUNCDECL_RPL (localeconv, struct lconv *, (void), ); -_GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); -# else -_GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (localeconv); -# endif -#elif 0 -# if !GNULIB_LOCALECONV -# undef localeconv -# define localeconv localeconv_used_without_requesting_gnulib_module_localeconv -# endif -#elif defined GNULIB_POSIXCHECK -# undef localeconv -# if HAVE_RAW_DECL_LOCALECONV -_GL_WARN_ON_USE (localeconv, - "localeconv returns too few information on some platforms - " - "use gnulib module localeconv for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setlocale -# define setlocale rpl_setlocale -# define GNULIB_defined_setlocale 1 -# endif -_GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale), ); -_GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); -# else -_GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (setlocale); -# endif -#elif defined GNULIB_POSIXCHECK -# undef setlocale -# if HAVE_RAW_DECL_SETLOCALE -_GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " - "use gnulib module setlocale for portability"); -# endif -#endif - -#if 1 -/* Included here for convenience. */ -# include "setlocale_null.h" -#endif - -#if /*@GNULIB_NEWLOCALE@ ||*/ (IN_PARTED_GNULIB_TESTS && 0 && 1) -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef newlocale -# define newlocale rpl_newlocale -# define GNULIB_defined_newlocale 1 -# endif -_GL_FUNCDECL_RPL (newlocale, locale_t, - (int category_mask, const char *name, locale_t base), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (newlocale, locale_t, - (int category_mask, const char *name, locale_t base)); -# else -# if 1 -_GL_CXXALIAS_SYS (newlocale, locale_t, - (int category_mask, const char *name, locale_t base)); -# endif -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (newlocale); -# endif -# if 1 || 0 -# ifndef HAVE_WORKING_NEWLOCALE -# define HAVE_WORKING_NEWLOCALE 1 -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef newlocale -# if HAVE_RAW_DECL_NEWLOCALE -_GL_WARN_ON_USE (newlocale, "newlocale is not portable"); -# endif -#endif - -#if 0 || (IN_PARTED_GNULIB_TESTS && 0 && 1) -# if 1 /* locale_t may be undefined if !1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef duplocale -# define duplocale rpl_duplocale -# define GNULIB_defined_duplocale 1 -# endif -_GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); -# else -_GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); -# endif -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (duplocale); -# endif -# if 1 -# ifndef HAVE_WORKING_DUPLOCALE -# define HAVE_WORKING_DUPLOCALE 1 -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# undef duplocale -# if HAVE_RAW_DECL_DUPLOCALE -_GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " - "use gnulib module duplocale for portability"); -# endif -#endif - -#if /*@GNULIB_FREELOCALE@ ||*/ (IN_PARTED_GNULIB_TESTS && 0 && 1) -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef freelocale -# define freelocale rpl_freelocale -# define GNULIB_defined_freelocale 1 -# endif -_GL_FUNCDECL_RPL (freelocale, void, (locale_t locale), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (freelocale, void, (locale_t locale)); -# else -# if 1 -/* Need to cast, because on FreeBSD and Mac OS X 10.13, the return type is - int. */ -_GL_CXXALIAS_SYS_CAST (freelocale, void, (locale_t locale)); -# endif -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (freelocale); -# endif -#elif defined GNULIB_POSIXCHECK -# undef freelocale -# if HAVE_RAW_DECL_FREELOCALE -_GL_WARN_ON_USE (freelocale, "freelocale is not portable"); -# endif -#endif - -#endif /* _GL_LOCALE_H */ -#endif /* _GL_LOCALE_H */ -#endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */ diff --git a/jni/parted/lib/malloc/dynarray-skeleton.gl.h b/jni/parted/lib/malloc/dynarray-skeleton.gl.h deleted file mode 100755 index 01c545a..0000000 --- a/jni/parted/lib/malloc/dynarray-skeleton.gl.h +++ /dev/null @@ -1,529 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Type-safe arrays which grow dynamically. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* Pre-processor macros which act as parameters: - - DYNARRAY_STRUCT - The struct tag of dynamic array to be defined. - DYNARRAY_ELEMENT - The type name of the element type. Elements are copied - as if by memcpy, and can change address as the dynamic - array grows. - DYNARRAY_PREFIX - The prefix of the functions which are defined. - - The following parameters are optional: - - DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (E) is evaluated to deallocate the - contents of elements. E is of type DYNARRAY_ELEMENT *. - DYNARRAY_ELEMENT_INIT - DYNARRAY_ELEMENT_INIT (E) is evaluated to initialize a new - element. E is of type DYNARRAY_ELEMENT *. - If DYNARRAY_ELEMENT_FREE but not DYNARRAY_ELEMENT_INIT is - defined, new elements are automatically zero-initialized. - Otherwise, new elements have undefined contents. - DYNARRAY_INITIAL_SIZE - The size of the statically allocated array (default: - at least 2, more elements if they fit into 128 bytes). - Must be a preprocessor constant. If DYNARRAY_INITIAL_SIZE is 0, - there is no statically allocated array at, and all non-empty - arrays are heap-allocated. - DYNARRAY_FINAL_TYPE - The name of the type which holds the final array. If not - defined, is PREFIX##finalize not provided. DYNARRAY_FINAL_TYPE - must be a struct type, with members of type DYNARRAY_ELEMENT and - size_t at the start (in this order). - - These macros are undefined after this header file has been - included. - - The following types are provided (their members are private to the - dynarray implementation): - - struct DYNARRAY_STRUCT - - The following functions are provided: - - void DYNARRAY_PREFIX##init (struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##free (struct DYNARRAY_STRUCT *); - bool DYNARRAY_PREFIX##has_failed (const struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##mark_failed (struct DYNARRAY_STRUCT *); - size_t DYNARRAY_PREFIX##size (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##begin (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##end (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##at (struct DYNARRAY_STRUCT *, size_t); - void DYNARRAY_PREFIX##add (struct DYNARRAY_STRUCT *, DYNARRAY_ELEMENT); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##emplace (struct DYNARRAY_STRUCT *); - bool DYNARRAY_PREFIX##resize (struct DYNARRAY_STRUCT *, size_t); - void DYNARRAY_PREFIX##remove_last (struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##clear (struct DYNARRAY_STRUCT *); - - The following functions are provided are provided if the - prerequisites are met: - - bool DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *, - DYNARRAY_FINAL_TYPE *); - (if DYNARRAY_FINAL_TYPE is defined) - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *, - size_t *); - (if DYNARRAY_FINAL_TYPE is not defined) -*/ - -#include - -#include -#include -#include - -#ifndef DYNARRAY_STRUCT -# error "DYNARRAY_STRUCT must be defined" -#endif - -#ifndef DYNARRAY_ELEMENT -# error "DYNARRAY_ELEMENT must be defined" -#endif - -#ifndef DYNARRAY_PREFIX -# error "DYNARRAY_PREFIX must be defined" -#endif - -#ifdef DYNARRAY_INITIAL_SIZE -# if DYNARRAY_INITIAL_SIZE < 0 -# error "DYNARRAY_INITIAL_SIZE must be non-negative" -# endif -# if DYNARRAY_INITIAL_SIZE > 0 -# define DYNARRAY_HAVE_SCRATCH 1 -# else -# define DYNARRAY_HAVE_SCRATCH 0 -# endif -#else -/* Provide a reasonable default which limits the size of - DYNARRAY_STRUCT. */ -# define DYNARRAY_INITIAL_SIZE \ - (sizeof (DYNARRAY_ELEMENT) > 64 ? 2 : 128 / sizeof (DYNARRAY_ELEMENT)) -# define DYNARRAY_HAVE_SCRATCH 1 -#endif - -/* Public type definitions. */ - -/* All fields of this struct are private to the implementation. */ -struct DYNARRAY_STRUCT -{ - union - { - struct dynarray_header dynarray_abstract; - struct - { - /* These fields must match struct dynarray_header. */ - size_t used; - size_t allocated; - DYNARRAY_ELEMENT *array; - } dynarray_header; - } u; - -#if DYNARRAY_HAVE_SCRATCH - /* Initial inline allocation. */ - DYNARRAY_ELEMENT scratch[DYNARRAY_INITIAL_SIZE]; -#endif -}; - -/* Internal use only: Helper macros. */ - -/* Ensure macro-expansion of DYNARRAY_PREFIX. */ -#define DYNARRAY_CONCAT0(prefix, name) prefix##name -#define DYNARRAY_CONCAT1(prefix, name) DYNARRAY_CONCAT0(prefix, name) -#define DYNARRAY_NAME(name) DYNARRAY_CONCAT1(DYNARRAY_PREFIX, name) - -/* Use DYNARRAY_FREE instead of DYNARRAY_NAME (free), - so that Gnulib does not change 'free' to 'rpl_free'. */ -#define DYNARRAY_FREE DYNARRAY_CONCAT1 (DYNARRAY_NAME (f), ree) - -/* Address of the scratch buffer if any. */ -#if DYNARRAY_HAVE_SCRATCH -# define DYNARRAY_SCRATCH(list) (list)->scratch -#else -# define DYNARRAY_SCRATCH(list) NULL -#endif - -/* Internal use only: Helper functions. */ - -/* Internal function. Call DYNARRAY_ELEMENT_FREE with the array - elements. Name mangling needed due to the DYNARRAY_ELEMENT_FREE - macro expansion. */ -static inline void -DYNARRAY_NAME (free__elements__) (DYNARRAY_ELEMENT *__dynarray_array, - size_t __dynarray_used) -{ -#ifdef DYNARRAY_ELEMENT_FREE - for (size_t __dynarray_i = 0; __dynarray_i < __dynarray_used; ++__dynarray_i) - DYNARRAY_ELEMENT_FREE (&__dynarray_array[__dynarray_i]); -#endif /* DYNARRAY_ELEMENT_FREE */ -} - -/* Internal function. Free the non-scratch array allocation. */ -static inline void -DYNARRAY_NAME (free__array__) (struct DYNARRAY_STRUCT *list) -{ -#if DYNARRAY_HAVE_SCRATCH - if (list->u.dynarray_header.array != list->scratch) - free (list->u.dynarray_header.array); -#else - free (list->u.dynarray_header.array); -#endif -} - -/* Public functions. */ - -/* Initialize a dynamic array object. This must be called before any - use of the object. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static void -DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list) -{ - list->u.dynarray_header.used = 0; - list->u.dynarray_header.allocated = DYNARRAY_INITIAL_SIZE; - list->u.dynarray_header.array = DYNARRAY_SCRATCH (list); -} - -/* Deallocate the dynamic array and its elements. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NONNULL ((1)) -static void -DYNARRAY_FREE (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - DYNARRAY_NAME (free__array__) (list); - DYNARRAY_NAME (init) (list); -} - -/* Return true if the dynamic array is in an error state. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static inline bool -DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.allocated == __dynarray_error_marker (); -} - -/* Mark the dynamic array as failed. All elements are deallocated as - a side effect. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static void -DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - DYNARRAY_NAME (free__array__) (list); - list->u.dynarray_header.array = DYNARRAY_SCRATCH (list); - list->u.dynarray_header.used = 0; - list->u.dynarray_header.allocated = __dynarray_error_marker (); -} - -/* Return the number of elements which have been added to the dynamic - array. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static inline size_t -DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.used; -} - -/* Return a pointer to the array element at INDEX. Terminate the - process if INDEX is out of bounds. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index) -{ - if (_GL_UNLIKELY (index >= DYNARRAY_NAME (size) (list))) - __libc_dynarray_at_failure (DYNARRAY_NAME (size) (list), index); - return list->u.dynarray_header.array + index; -} - -/* Return a pointer to the first array element, if any. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.array; -} - -/* Return a pointer one element past the last array element. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.array + list->u.dynarray_header.used; -} - -/* Internal function. Slow path for the add function below. */ -static void -DYNARRAY_NAME (add__) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) -{ - if (_GL_UNLIKELY - (!__libc_dynarray_emplace_enlarge (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)))) - { - DYNARRAY_NAME (mark_failed) (list); - return; - } - - /* Copy the new element and increase the array length. */ - list->u.dynarray_header.array[list->u.dynarray_header.used++] = item; -} - -/* Add ITEM at the end of the array, enlarging it by one element. - Mark *LIST as failed if the dynamic array allocation size cannot be - increased. */ -_GL_ATTRIBUTE_NONNULL ((1)) -static inline void -DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) -{ - /* Do nothing in case of previous error. */ - if (DYNARRAY_NAME (has_failed) (list)) - return; - - /* Enlarge the array if necessary. */ - if (_GL_UNLIKELY (list->u.dynarray_header.used - == list->u.dynarray_header.allocated)) - { - DYNARRAY_NAME (add__) (list, item); - return; - } - - /* Copy the new element and increase the array length. */ - list->u.dynarray_header.array[list->u.dynarray_header.used++] = item; -} - -/* Internal function. Building block for the emplace functions below. - Assumes space for one more element in *LIST. */ -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace__tail__) (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_ELEMENT *result - = &list->u.dynarray_header.array[list->u.dynarray_header.used]; - ++list->u.dynarray_header.used; -#if defined (DYNARRAY_ELEMENT_INIT) - DYNARRAY_ELEMENT_INIT (result); -#elif defined (DYNARRAY_ELEMENT_FREE) - memset (result, 0, sizeof (*result)); -#endif - return result; -} - -/* Internal function. Slow path for the emplace function below. */ -static DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace__) (struct DYNARRAY_STRUCT *list) -{ - if (_GL_UNLIKELY - (!__libc_dynarray_emplace_enlarge (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)))) - { - DYNARRAY_NAME (mark_failed) (list); - return NULL; - } - return DYNARRAY_NAME (emplace__tail__) (list); -} - -/* Allocate a place for a new element in *LIST and return a pointer to - it. The pointer can be NULL if the dynamic array cannot be - enlarged due to a memory allocation failure. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NODISCARD -_GL_ATTRIBUTE_NONNULL ((1)) -static -/* Avoid inlining with the larger initialization code. */ -#if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE)) -inline -#endif -DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace) (struct DYNARRAY_STRUCT *list) -{ - /* Do nothing in case of previous error. */ - if (DYNARRAY_NAME (has_failed) (list)) - return NULL; - - /* Enlarge the array if necessary. */ - if (_GL_UNLIKELY (list->u.dynarray_header.used - == list->u.dynarray_header.allocated)) - return (DYNARRAY_NAME (emplace__) (list)); - return DYNARRAY_NAME (emplace__tail__) (list); -} - -/* Change the size of *LIST to SIZE. If SIZE is larger than the - existing size, new elements are added (which can be initialized). - Otherwise, the list is truncated, and elements are freed. Return - false on memory allocation failure (and mark *LIST as failed). */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NONNULL ((1)) -static bool -DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size) -{ - if (size > list->u.dynarray_header.used) - { - bool ok; -#if defined (DYNARRAY_ELEMENT_INIT) - /* The new elements have to be initialized. */ - size_t old_size = list->u.dynarray_header.used; - ok = __libc_dynarray_resize (&list->u.dynarray_abstract, - size, DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)); - if (ok) - for (size_t i = old_size; i < size; ++i) - { - DYNARRAY_ELEMENT_INIT (&list->u.dynarray_header.array[i]); - } -#elif defined (DYNARRAY_ELEMENT_FREE) - /* Zero initialization is needed so that the elements can be - safely freed. */ - ok = __libc_dynarray_resize_clear - (&list->u.dynarray_abstract, size, - DYNARRAY_SCRATCH (list), sizeof (DYNARRAY_ELEMENT)); -#else - ok = __libc_dynarray_resize (&list->u.dynarray_abstract, - size, DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)); -#endif - if (_GL_UNLIKELY (!ok)) - DYNARRAY_NAME (mark_failed) (list); - return ok; - } - else - { - /* The list has shrunk in size. Free the removed elements. */ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array + size, - list->u.dynarray_header.used - size); - list->u.dynarray_header.used = size; - return true; - } -} - -/* Remove the last element of LIST if it is present. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NONNULL ((1)) -static void -DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list) -{ - /* used > 0 implies that the array is the non-failed state. */ - if (list->u.dynarray_header.used > 0) - { - size_t new_length = list->u.dynarray_header.used - 1; -#ifdef DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (&list->u.dynarray_header.array[new_length]); -#endif - list->u.dynarray_header.used = new_length; - } -} - -/* Remove all elements from the list. The elements are freed, but the - list itself is not. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NONNULL ((1)) -static void -DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list) -{ - /* free__elements__ does nothing if the list is in the failed - state. */ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - list->u.dynarray_header.used = 0; -} - -#ifdef DYNARRAY_FINAL_TYPE -/* Transfer the dynamic array to a permanent location at *RESULT. - Returns true on success on false on allocation failure. In either - case, *LIST is re-initialized and can be reused. A NULL pointer is - stored in *RESULT if LIST refers to an empty list. On success, the - pointer in *RESULT is heap-allocated and must be deallocated using - free. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NODISCARD -_GL_ATTRIBUTE_NONNULL ((1, 2)) -static bool -DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, - DYNARRAY_FINAL_TYPE *result) -{ - struct dynarray_finalize_result res; - if (__libc_dynarray_finalize (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT), &res)) - { - /* On success, the result owns all the data. */ - DYNARRAY_NAME (init) (list); - *result = (DYNARRAY_FINAL_TYPE) { res.array, res.length }; - return true; - } - else - { - /* On error, we need to free all data. */ - DYNARRAY_FREE (list); - errno = ENOMEM; - return false; - } -} -#else /* !DYNARRAY_FINAL_TYPE */ -/* Transfer the dynamic array to a heap-allocated array and return a - pointer to it. The pointer is NULL if memory allocation fails, or - if the array is empty, so this function should be used only for - arrays which are known not be empty (usually because they always - have a sentinel at the end). If LENGTHP is not NULL, the array - length is written to *LENGTHP. *LIST is re-initialized and can be - reused. */ -_GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_NODISCARD -_GL_ATTRIBUTE_NONNULL ((1)) -static DYNARRAY_ELEMENT * -DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp) -{ - struct dynarray_finalize_result res; - if (__libc_dynarray_finalize (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT), &res)) - { - /* On success, the result owns all the data. */ - DYNARRAY_NAME (init) (list); - if (lengthp != NULL) - *lengthp = res.length; - return res.array; - } - else - { - /* On error, we need to free all data. */ - DYNARRAY_FREE (list); - errno = ENOMEM; - return NULL; - } -} -#endif /* !DYNARRAY_FINAL_TYPE */ - -/* Undo macro definitions. */ - -#undef DYNARRAY_CONCAT0 -#undef DYNARRAY_CONCAT1 -#undef DYNARRAY_NAME -#undef DYNARRAY_SCRATCH -#undef DYNARRAY_HAVE_SCRATCH - -#undef DYNARRAY_STRUCT -#undef DYNARRAY_ELEMENT -#undef DYNARRAY_PREFIX -#undef DYNARRAY_ELEMENT_FREE -#undef DYNARRAY_ELEMENT_INIT -#undef DYNARRAY_INITIAL_SIZE -#undef DYNARRAY_FINAL_TYPE diff --git a/jni/parted/lib/malloc/dynarray.gl.h b/jni/parted/lib/malloc/dynarray.gl.h deleted file mode 100755 index 87a2a88..0000000 --- a/jni/parted/lib/malloc/dynarray.gl.h +++ /dev/null @@ -1,173 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Type-safe arrays which grow dynamically. Shared definitions. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* To use the dynarray facility, you need to include - and define the parameter macros - documented in that file. - - A minimal example which provides a growing list of integers can be - defined like this: - - struct int_array - { - // Pointer to result array followed by its length, - // as required by DYNARRAY_FINAL_TYPE. - int *array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_int - #define DYNARRAY_ELEMENT int - #define DYNARRAY_PREFIX dynarray_int_ - #define DYNARRAY_FINAL_TYPE struct int_array - #include - - To create a three-element array with elements 1, 2, 3, use this - code: - - struct dynarray_int dyn; - dynarray_int_init (&dyn); - for (int i = 1; i <= 3; ++i) - { - int *place = dynarray_int_emplace (&dyn); - assert (place != NULL); - *place = i; - } - struct int_array result; - bool ok = dynarray_int_finalize (&dyn, &result); - assert (ok); - assert (result.length == 3); - assert (result.array[0] == 1); - assert (result.array[1] == 2); - assert (result.array[2] == 3); - free (result.array); - - If the elements contain resources which must be freed, define - DYNARRAY_ELEMENT_FREE appropriately, like this: - - struct str_array - { - char **array; - size_t length; - }; - - #define DYNARRAY_STRUCT dynarray_str - #define DYNARRAY_ELEMENT char * - #define DYNARRAY_ELEMENT_FREE(ptr) free (*ptr) - #define DYNARRAY_PREFIX dynarray_str_ - #define DYNARRAY_FINAL_TYPE struct str_array - #include - - Compared to scratch buffers, dynamic arrays have the following - features: - - - They have an element type, and are not just an untyped buffer of - bytes. - - - When growing, previously stored elements are preserved. (It is - expected that scratch_buffer_grow_preserve and - scratch_buffer_set_array_size eventually go away because all - current users are moved to dynamic arrays.) - - - Scratch buffers have a more aggressive growth policy because - growing them typically means a retry of an operation (across an - NSS service module boundary), which is expensive. - - - For the same reason, scratch buffers have a much larger initial - stack allocation. */ - -#ifndef _DYNARRAY_H -#define _DYNARRAY_H - -#include -#include - -struct dynarray_header -{ - size_t used; - size_t allocated; - void *array; -}; - -/* Marker used in the allocated member to indicate that an error was - encountered. */ -static inline size_t -__dynarray_error_marker (void) -{ - return -1; -} - -/* Internal function. See the has_failed function in - dynarray-skeleton.c. */ -static inline bool -__dynarray_error (struct dynarray_header *list) -{ - return list->allocated == __dynarray_error_marker (); -} - -/* Internal function. Enlarge the dynamically allocated area of the - array to make room for one more element. SCRATCH is a pointer to - the scratch area (which is not heap-allocated and must not be - freed). ELEMENT_SIZE is the size, in bytes, of one element. - Return false on failure, true on success. */ -bool __libc_dynarray_emplace_enlarge (struct dynarray_header *, - void *scratch, size_t element_size); - -/* Internal function. Enlarge the dynamically allocated area of the - array to make room for at least SIZE elements (which must be larger - than the existing used part of the dynamic array). SCRATCH is a - pointer to the scratch area (which is not heap-allocated and must - not be freed). ELEMENT_SIZE is the size, in bytes, of one element. - Return false on failure, true on success. */ -bool __libc_dynarray_resize (struct dynarray_header *, size_t size, - void *scratch, size_t element_size); - -/* Internal function. Like __libc_dynarray_resize, but clear the new - part of the dynamic array. */ -bool __libc_dynarray_resize_clear (struct dynarray_header *, size_t size, - void *scratch, size_t element_size); - -/* Internal type. */ -struct dynarray_finalize_result -{ - void *array; - size_t length; -}; - -/* Internal function. Copy the dynamically-allocated area to an - explicitly-sized heap allocation. SCRATCH is a pointer to the - embedded scratch space. ELEMENT_SIZE is the size, in bytes, of the - element type. On success, true is returned, and pointer and length - are written to *RESULT. On failure, false is returned. The caller - has to take care of some of the memory management; this function is - expected to be called from dynarray-skeleton.c. */ -bool __libc_dynarray_finalize (struct dynarray_header *list, void *scratch, - size_t element_size, - struct dynarray_finalize_result *result); - - -/* Internal function. Terminate the process after an index error. - SIZE is the number of elements of the dynamic array. INDEX is the - lookup index which triggered the failure. */ -_Noreturn void __libc_dynarray_at_failure (size_t size, size_t index); - -#ifndef _ISOMAC -#endif - -#endif /* _DYNARRAY_H */ diff --git a/jni/parted/lib/malloc/scratch_buffer.gl.h b/jni/parted/lib/malloc/scratch_buffer.gl.h deleted file mode 100755 index 8d66d8b..0000000 --- a/jni/parted/lib/malloc/scratch_buffer.gl.h +++ /dev/null @@ -1,133 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _SCRATCH_BUFFER_H -#define _SCRATCH_BUFFER_H - -/* Scratch buffers with a default stack allocation and fallback to - heap allocation. It is expected that this function is used in this - way: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - return -1; - - scratch_buffer_free (&tmpbuf); - return 0; - - The allocation functions (scratch_buffer_grow, - scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make - sure that the heap allocation, if any, is freed, so that the code - above does not have a memory leak. The buffer still remains in a - state that can be deallocated using scratch_buffer_free, so a loop - like this is valid as well: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - break; - - scratch_buffer_free (&tmpbuf); - - scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed - to grow the buffer by at least 512 bytes. This means that when - using the scratch buffer as a backing store for a non-character - array whose element size, in bytes, is 512 or smaller, the scratch - buffer only has to grow once to make room for at least one more - element. -*/ - -#include -#include -#include - -/* Scratch buffer. Must be initialized with scratch_buffer_init - before its use. */ -struct scratch_buffer { - void *data; /* Pointer to the beginning of the scratch area. */ - size_t length; /* Allocated space at the data pointer, in bytes. */ - union { max_align_t __align; char __c[1024]; } __space; -}; - -/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space - and BUFFER->length reflects the available space. */ -static inline void -scratch_buffer_init (struct scratch_buffer *buffer) -{ - buffer->data = buffer->__space.__c; - buffer->length = sizeof (buffer->__space); -} - -/* Deallocates *BUFFER (if it was heap-allocated). */ -static inline void -scratch_buffer_free (struct scratch_buffer *buffer) -{ - if (buffer->data != buffer->__space.__c) - free (buffer->data); -} - -/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT - preserved. Return true on success, false on allocation failure (in - which case the old buffer is freed). On success, the new buffer is - larger than the previous size. On failure, *BUFFER is deallocated, - but remains in a free-able state, and errno is set. */ -bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer); - -/* Alias for __libc_scratch_buffer_grow. */ -static inline _GL_ATTRIBUTE_ALWAYS_INLINE bool -scratch_buffer_grow (struct scratch_buffer *buffer) -{ - return _GL_LIKELY (__libc_scratch_buffer_grow (buffer)); -} - -/* Like __libc_scratch_buffer_grow, but preserve the old buffer - contents on success, as a prefix of the new buffer. */ -bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer); - -/* Alias for __libc_scratch_buffer_grow_preserve. */ -static inline _GL_ATTRIBUTE_ALWAYS_INLINE bool -scratch_buffer_grow_preserve (struct scratch_buffer *buffer) -{ - return _GL_LIKELY (__libc_scratch_buffer_grow_preserve (buffer)); -} - -/* Grow *BUFFER so that it can store at least NELEM elements of SIZE - bytes. The buffer contents are NOT preserved. Both NELEM and SIZE - can be zero. Return true on success, false on allocation failure - (in which case the old buffer is freed, but *BUFFER remains in a - free-able state, and errno is set). It is unspecified whether this - function can reduce the array size. */ -bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size); - -/* Alias for __libc_scratch_set_array_size. */ -static inline _GL_ATTRIBUTE_ALWAYS_INLINE bool -scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size) -{ - return _GL_LIKELY (__libc_scratch_buffer_set_array_size - (buffer, nelem, size)); -} - -#endif /* _SCRATCH_BUFFER_H */ diff --git a/jni/parted/lib/pthread.h b/jni/parted/lib/pthread.h deleted file mode 100755 index ace2f7c..0000000 --- a/jni/parted/lib/pthread.h +++ /dev/null @@ -1,2619 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Implement the most essential subset of POSIX pthread.h. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Glen Lenker, and Bruno Haible. */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined _GL_ALREADY_INCLUDING_PTHREAD_H -/* Special invocation convention: - On Android, we have a sequence of nested includes - -> -> -> -> - -> . - In this situation, PTHREAD_COND_INITIALIZER is not yet defined, - therefore we should not attempt to define PTHREAD_MUTEX_NORMAL etc. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_PTHREAD_H_ - -#if 1 - -# define _GL_ALREADY_INCLUDING_PTHREAD_H - -/* The include_next requires a split double-inclusion guard. */ -# include_next - -# undef _GL_ALREADY_INCLUDING_PTHREAD_H - -#endif - -#ifndef _GL_PTHREAD_H_ -#define _GL_PTHREAD_H_ - -/* This file uses _Noreturn, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#define __need_system_stdlib_h -#include -#undef __need_system_stdlib_h - - -/* The pthreads-win32 defines a couple of broken macros. */ -#undef asctime_r -#undef ctime_r -#undef gmtime_r -#undef localtime_r -#undef rand_r -#undef strtok_r - -#include -#include -#include -#include - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _Noreturn is copied here. */ -/* A C macro for declaring that a function does not return. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __clang__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* =========== Thread types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if IN_PARTED_GNULIB_TESTS -# include "windows-thread.h" -# if 1 -# define pthread_t rpl_pthread_t -# define pthread_attr_t rpl_pthread_attr_t -# endif -# if !GNULIB_defined_pthread_thread_types -typedef glwthread_thread_t pthread_t; -typedef unsigned int pthread_attr_t; -# define GNULIB_defined_pthread_thread_types 1 -# endif -# else -# if 1 -# define pthread_t rpl_pthread_t -# define pthread_attr_t rpl_pthread_attr_t -# endif -# if !GNULIB_defined_pthread_thread_types -typedef int pthread_t; -typedef unsigned int pthread_attr_t; -# define GNULIB_defined_pthread_thread_types 1 -# endif -# endif -# undef PTHREAD_CREATE_JOINABLE -# undef PTHREAD_CREATE_DETACHED -# define PTHREAD_CREATE_JOINABLE 0 -# define PTHREAD_CREATE_DETACHED 1 -#else -# if !1 -# if !GNULIB_defined_pthread_thread_types -typedef int pthread_t; -typedef unsigned int pthread_attr_t; -# define GNULIB_defined_pthread_thread_types 1 -# endif -# endif -# if !1 -# define PTHREAD_CREATE_JOINABLE 0 -# define PTHREAD_CREATE_DETACHED 1 -# endif -#endif - -/* =========== Once-only control (initialization) types and macros ========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if 1 -# include "windows-once.h" -# if 1 -# define pthread_once_t rpl_pthread_once_t -# endif -# if !GNULIB_defined_pthread_once_types -typedef glwthread_once_t pthread_once_t; -# define GNULIB_defined_pthread_once_types 1 -# endif -# undef PTHREAD_ONCE_INIT -# define PTHREAD_ONCE_INIT GLWTHREAD_ONCE_INIT -# else -# if 1 -# define pthread_once_t rpl_pthread_once_t -# endif -# if !GNULIB_defined_pthread_once_types -typedef int pthread_once_t; -# define GNULIB_defined_pthread_once_types 1 -# endif -# undef PTHREAD_ONCE_INIT -# define PTHREAD_ONCE_INIT { 0 } -# endif -#else -# if !1 -# if !GNULIB_defined_pthread_once_types -typedef int pthread_once_t; -# define GNULIB_defined_pthread_once_types 1 -# endif -# undef PTHREAD_ONCE_INIT -# define PTHREAD_ONCE_INIT { 0 } -# endif -#endif - -/* =========== Mutex types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if IN_PARTED_GNULIB_TESTS -# include "windows-timedmutex.h" -# include "windows-timedrecmutex.h" -# if 1 -# define pthread_mutex_t rpl_pthread_mutex_t -# define pthread_mutexattr_t rpl_pthread_mutexattr_t -# endif -# if !GNULIB_defined_pthread_mutex_types -typedef struct - { - int type; - union - { - glwthread_timedmutex_t u_timedmutex; - glwthread_timedrecmutex_t u_timedrecmutex; - } - u; - } - pthread_mutex_t; -typedef unsigned int pthread_mutexattr_t; -# define GNULIB_defined_pthread_mutex_types 1 -# endif -# undef PTHREAD_MUTEX_INITIALIZER -# define PTHREAD_MUTEX_INITIALIZER { 1, { GLWTHREAD_TIMEDMUTEX_INIT } } -# else -# if 1 -# define pthread_mutex_t rpl_pthread_mutex_t -# define pthread_mutexattr_t rpl_pthread_mutexattr_t -# endif -# if !GNULIB_defined_pthread_mutex_types -typedef int pthread_mutex_t; -typedef unsigned int pthread_mutexattr_t; -# define GNULIB_defined_pthread_mutex_types 1 -# endif -# undef PTHREAD_MUTEX_INITIALIZER -# define PTHREAD_MUTEX_INITIALIZER { 0 } -# endif -# undef PTHREAD_MUTEX_DEFAULT -# undef PTHREAD_MUTEX_NORMAL -# undef PTHREAD_MUTEX_ERRORCHECK -# undef PTHREAD_MUTEX_RECURSIVE -# define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL -# define PTHREAD_MUTEX_NORMAL 0 -# define PTHREAD_MUTEX_ERRORCHECK 1 -# define PTHREAD_MUTEX_RECURSIVE 2 -# undef PTHREAD_MUTEX_STALLED -# undef PTHREAD_MUTEX_ROBUST -# define PTHREAD_MUTEX_STALLED 0 -# define PTHREAD_MUTEX_ROBUST 1 -#else -# if !1 -# if !GNULIB_defined_pthread_mutex_types -typedef int pthread_mutex_t; -typedef unsigned int pthread_mutexattr_t; -# define GNULIB_defined_pthread_mutex_types 1 -# endif -# undef PTHREAD_MUTEX_INITIALIZER -# define PTHREAD_MUTEX_INITIALIZER { 0 } -# endif -# if !1 -# define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL -# define PTHREAD_MUTEX_NORMAL 0 -# define PTHREAD_MUTEX_ERRORCHECK 1 -# define PTHREAD_MUTEX_RECURSIVE 2 -# endif -# if !0 -# define PTHREAD_MUTEX_STALLED 0 -# define PTHREAD_MUTEX_ROBUST 1 -# endif -#endif - -/* =========== Read-write lock types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if IN_PARTED_GNULIB_TESTS -# include "windows-timedrwlock.h" -# if 1 -# define pthread_rwlock_t rpl_pthread_rwlock_t -# define pthread_rwlockattr_t rpl_pthread_rwlockattr_t -# endif -# if !GNULIB_defined_pthread_rwlock_types -typedef glwthread_timedrwlock_t pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER GLWTHREAD_TIMEDRWLOCK_INIT -# else -# if 1 -# define pthread_rwlock_t rpl_pthread_rwlock_t -# define pthread_rwlockattr_t rpl_pthread_rwlockattr_t -# endif -# if !GNULIB_defined_pthread_rwlock_types -typedef int pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER { 0 } -# endif -#elif IN_PARTED_GNULIB_TESTS && 0 /* i.e. PTHREAD_RWLOCK_UNIMPLEMENTED */ -# if 1 -# define pthread_rwlock_t rpl_pthread_rwlock_t -# define pthread_rwlockattr_t rpl_pthread_rwlockattr_t -# endif -# if !GNULIB_defined_pthread_rwlock_types -typedef struct - { - pthread_mutex_t lock; /* protects the remaining fields */ - pthread_cond_t waiting_readers; /* waiting readers */ - pthread_cond_t waiting_writers; /* waiting writers */ - unsigned int waiting_writers_count; /* number of waiting writers */ - int runcount; /* number of readers running, or -1 when a writer runs */ - } - pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER \ - { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } -#elif IN_PARTED_GNULIB_TESTS && 0 /* i.e. PTHREAD_RWLOCK_BAD_WAITQUEUE */ -/* Use rwlocks of kind PREFER_WRITER or PREFER_WRITER_NONRECURSIVE instead of - the DEFAULT. */ -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP -#else -# if 1 -# if !defined PTHREAD_RWLOCK_INITIALIZER && defined PTHREAD_RWLOCK_INITIALIZER_NP /* z/OS */ -# define PTHREAD_RWLOCK_INITIALIZER PTHREAD_RWLOCK_INITIALIZER_NP -# endif -# else -# if !GNULIB_defined_pthread_rwlock_types -typedef int pthread_rwlock_t; -typedef unsigned int pthread_rwlockattr_t; -# define GNULIB_defined_pthread_rwlock_types 1 -# endif -# undef PTHREAD_RWLOCK_INITIALIZER -# define PTHREAD_RWLOCK_INITIALIZER { 0 } -# endif -#endif - -/* =========== Condition variable types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if IN_PARTED_GNULIB_TESTS -# include "windows-cond.h" -# if 1 -# define pthread_cond_t rpl_pthread_cond_t -# define pthread_condattr_t rpl_pthread_condattr_t -# endif -# if !GNULIB_defined_pthread_cond_types -typedef glwthread_cond_t pthread_cond_t; -typedef unsigned int pthread_condattr_t; -# define GNULIB_defined_pthread_cond_types 1 -# endif -# undef PTHREAD_COND_INITIALIZER -# define PTHREAD_COND_INITIALIZER GLWTHREAD_COND_INIT -# else -# if 1 -# define pthread_cond_t rpl_pthread_cond_t -# define pthread_condattr_t rpl_pthread_condattr_t -# endif -# if !GNULIB_defined_pthread_cond_types -typedef int pthread_cond_t; -typedef unsigned int pthread_condattr_t; -# define GNULIB_defined_pthread_cond_types 1 -# endif -# undef PTHREAD_COND_INITIALIZER -# define PTHREAD_COND_INITIALIZER { 0 } -# endif -#else -# if !1 -# if !GNULIB_defined_pthread_cond_types -typedef int pthread_cond_t; -typedef unsigned int pthread_condattr_t; -# define GNULIB_defined_pthread_cond_types 1 -# endif -# undef PTHREAD_COND_INITIALIZER -# define PTHREAD_COND_INITIALIZER { 0 } -# endif -#endif - -/* =========== Thread-specific storage types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if 0 -# include "windows-tls.h" -# if 1 -# define pthread_key_t rpl_pthread_key_t -# endif -# if !GNULIB_defined_pthread_tss_types -typedef glwthread_tls_key_t pthread_key_t; -# define GNULIB_defined_pthread_tss_types 1 -# endif -# undef PTHREAD_DESTRUCTOR_ITERATIONS -# define PTHREAD_DESTRUCTOR_ITERATIONS GLWTHREAD_DESTRUCTOR_ITERATIONS -# else -# if 1 -# define pthread_key_t rpl_pthread_key_t -# endif -# if !GNULIB_defined_pthread_tss_types -typedef void ** pthread_key_t; -# define GNULIB_defined_pthread_tss_types 1 -# endif -# undef PTHREAD_DESTRUCTOR_ITERATIONS -# define PTHREAD_DESTRUCTOR_ITERATIONS 0 -# endif -#else -# if !1 -# if !GNULIB_defined_pthread_tss_types -typedef void ** pthread_key_t; -# define GNULIB_defined_pthread_tss_types 1 -# endif -# undef PTHREAD_DESTRUCTOR_ITERATIONS -# define PTHREAD_DESTRUCTOR_ITERATIONS 0 -# endif -#endif - -/* =========== Spinlock types and macros =========== */ - -#if (defined _WIN32 && ! defined __CYGWIN__) && USE_WINDOWS_THREADS -# if 0 -# include "windows-spin.h" -# if 1 -# define pthread_spinlock_t rpl_pthread_spinlock_t -# endif -# if !GNULIB_defined_pthread_spin_types -typedef glwthread_spinlock_t pthread_spinlock_t; -# define GNULIB_defined_pthread_spin_types 1 -# endif -# else -# if 1 -# define pthread_spinlock_t rpl_pthread_spinlock_t -# endif -# if !GNULIB_defined_pthread_spin_types -typedef pthread_mutex_t pthread_spinlock_t; -# define GNULIB_defined_pthread_spin_types 1 -# endif -# endif -# undef PTHREAD_PROCESS_PRIVATE -# undef PTHREAD_PROCESS_SHARED -# define PTHREAD_PROCESS_PRIVATE 0 -# define PTHREAD_PROCESS_SHARED 1 -#else -# if 1 -/* exists and defines pthread_spinlock_t. */ -# if !1 || 0 -/* If the 'pthread-spin' module is in use, it defines all the pthread_spin* - functions. Prepare for it by overriding pthread_spinlock_t if that might - be needed. */ -# if !(((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) \ - || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 1)) \ - || (((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) \ - && !defined __ANDROID__) \ - || __clang_major__ >= 3)) \ - && !defined __ibmxl__) -/* We can't use GCC built-ins. Approximate spinlocks with mutexes. */ -# if !GNULIB_defined_pthread_spin_types -# define pthread_spinlock_t pthread_mutex_t -# define GNULIB_defined_pthread_spin_types 1 -# endif -# endif -# endif -# else -/* Approximate spinlocks with mutexes. */ -# if !GNULIB_defined_pthread_spin_types -typedef pthread_mutex_t pthread_spinlock_t; -# define GNULIB_defined_pthread_spin_types 1 -# endif -# endif -# if !1 -# define PTHREAD_PROCESS_PRIVATE 0 -# define PTHREAD_PROCESS_SHARED 1 -# endif -#endif - -/* =========== Other types and macros =========== */ - -#if !1 -# if !GNULIB_defined_other_pthread_types -typedef int pthread_barrier_t; -typedef unsigned int pthread_barrierattr_t; -# define GNULIB_defined_other_pthread_types 1 -# endif -#endif - -#if !defined PTHREAD_CANCELED - -# define PTHREAD_BARRIER_SERIAL_THREAD (-1) - -# define PTHREAD_CANCEL_DEFERRED 0 -# define PTHREAD_CANCEL_ASYNCHRONOUS 1 - -# define PTHREAD_CANCEL_ENABLE 0 -# define PTHREAD_CANCEL_DISABLE 1 - -# define PTHREAD_CANCELED ((void *) -1) - -# define PTHREAD_INHERIT_SCHED 0 -# define PTHREAD_EXPLICIT_SCHED 1 - -# define PTHREAD_PRIO_NONE 0 -# define PTHREAD_PRIO_INHERIT 1 -# define PTHREAD_PRIO_PROTECT 2 - -# define PTHREAD_SCOPE_SYSTEM 0 -# define PTHREAD_SCOPE_PROCESS 1 - -#endif - -/* =========== Thread functions =========== */ - -#if IN_PARTED_GNULIB_TESTS -/* The 'restrict' qualifier on ARG is nonsense, but POSIX specifies it this way. - Sigh. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_create -# define pthread_create rpl_pthread_create -# endif -_GL_FUNCDECL_RPL (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg), - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg), - _GL_ARG_NONNULL ((1, 3))); -# endif -_GL_CXXALIAS_SYS_CAST (pthread_create, int, - (pthread_t *restrict threadp, - const pthread_attr_t *restrict attr, - void * (*mainfunc) (void *), void *restrict arg)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_create); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_create -# if HAVE_RAW_DECL_PTHREAD_CREATE -_GL_WARN_ON_USE (pthread_create, "pthread_create is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_init -# define pthread_attr_init rpl_pthread_attr_init -# endif -_GL_FUNCDECL_RPL (pthread_attr_init, int, (pthread_attr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_attr_init, int, (pthread_attr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_attr_init, int, (pthread_attr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_init, int, (pthread_attr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_init -# if HAVE_RAW_DECL_PTHREAD_ATTR_INIT -_GL_WARN_ON_USE (pthread_attr_init, "pthread_attr_init is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_getdetachstate -# define pthread_attr_getdetachstate rpl_pthread_attr_getdetachstate -# endif -_GL_FUNCDECL_RPL (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_getdetachstate, int, - (const pthread_attr_t *attr, int *detachstatep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_getdetachstate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_getdetachstate -# if HAVE_RAW_DECL_PTHREAD_ATTR_GETDETACHSTATE -_GL_WARN_ON_USE (pthread_attr_getdetachstate, "pthread_attr_getdetachstate is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_setdetachstate -# define pthread_attr_setdetachstate rpl_pthread_attr_setdetachstate -# endif -_GL_FUNCDECL_RPL (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_setdetachstate, int, - (pthread_attr_t *attr, int detachstate)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_setdetachstate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_setdetachstate -# if HAVE_RAW_DECL_PTHREAD_ATTR_SETDETACHSTATE -_GL_WARN_ON_USE (pthread_attr_setdetachstate, "pthread_attr_setdetachstate is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_attr_destroy -# define pthread_attr_destroy rpl_pthread_attr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_attr_destroy, int, (pthread_attr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_attr_destroy, int, (pthread_attr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_attr_destroy, int, (pthread_attr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_attr_destroy, int, (pthread_attr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_attr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_attr_destroy -# if HAVE_RAW_DECL_PTHREAD_ATTR_DESTROY -_GL_WARN_ON_USE (pthread_attr_destroy, "pthread_attr_destroy is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_self -# define pthread_self rpl_pthread_self -# endif -_GL_FUNCDECL_RPL (pthread_self, pthread_t, (void), _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (pthread_self, pthread_t, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_self, pthread_t, (void), _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (pthread_self, pthread_t, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_self); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_self -# if HAVE_RAW_DECL_PTHREAD_SELF -_GL_WARN_ON_USE (pthread_self, "pthread_self is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_equal -# define pthread_equal rpl_pthread_equal -# endif -_GL_FUNCDECL_RPL (pthread_equal, int, (pthread_t thread1, pthread_t thread2), ); -_GL_CXXALIAS_RPL (pthread_equal, int, (pthread_t thread1, pthread_t thread2)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_equal, int, (pthread_t thread1, pthread_t thread2), ); -# endif -_GL_CXXALIAS_SYS (pthread_equal, int, (pthread_t thread1, pthread_t thread2)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_equal); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_equal -# if HAVE_RAW_DECL_PTHREAD_EQUAL -_GL_WARN_ON_USE (pthread_equal, "pthread_equal is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_detach -# define pthread_detach rpl_pthread_detach -# endif -_GL_FUNCDECL_RPL (pthread_detach, int, (pthread_t thread), ); -_GL_CXXALIAS_RPL (pthread_detach, int, (pthread_t thread)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_detach, int, (pthread_t thread), ); -# endif -_GL_CXXALIAS_SYS (pthread_detach, int, (pthread_t thread)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_detach); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_detach -# if HAVE_RAW_DECL_PTHREAD_DETACH -_GL_WARN_ON_USE (pthread_detach, "pthread_detach is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_join -# define pthread_join rpl_pthread_join -# endif -_GL_FUNCDECL_RPL (pthread_join, int, (pthread_t thread, void **valuep), ); -_GL_CXXALIAS_RPL (pthread_join, int, (pthread_t thread, void **valuep)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_join, int, (pthread_t thread, void **valuep), ); -# endif -_GL_CXXALIAS_SYS (pthread_join, int, (pthread_t thread, void **valuep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_join); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_join -# if HAVE_RAW_DECL_PTHREAD_JOIN -_GL_WARN_ON_USE (pthread_join, "pthread_join is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_exit -# define pthread_exit rpl_pthread_exit -# endif -_GL_FUNCDECL_RPL (pthread_exit, _Noreturn void, (void *value), ); -_GL_CXXALIAS_RPL (pthread_exit, void, (void *value)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_exit, _Noreturn void, (void *value), ); -# endif -/* Need to cast because of AIX with xlclang++. */ -_GL_CXXALIAS_SYS_CAST (pthread_exit, void, (void *value)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_exit); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_exit -# if HAVE_RAW_DECL_PTHREAD_EXIT -_GL_WARN_ON_USE (pthread_exit, "pthread_exit is not portable - " - "use gnulib module pthread-thread for portability"); -# endif -#endif - -/* =========== Once-only control (initialization) functions =========== */ - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_once -# define pthread_once rpl_pthread_once -# endif -_GL_FUNCDECL_RPL (pthread_once, int, - (pthread_once_t *once_control, void (*initfunction) (void)), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_once, int, - (pthread_once_t *once_control, void (*initfunction) (void))); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_once, int, - (pthread_once_t *once_control, void (*initfunction) (void)), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS_CAST (pthread_once, int, - (pthread_once_t *once_control, - void (*initfunction) (void))); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_once); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_once -# if HAVE_RAW_DECL_PTHREAD_ONCE -_GL_WARN_ON_USE (pthread_once, "pthread_once is not portable - " - "use gnulib module pthread-once for portability"); -# endif -#endif - -/* =========== Mutex functions =========== */ - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_init -# define pthread_mutex_init rpl_pthread_mutex_init -# endif -_GL_FUNCDECL_RPL (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_init, int, - (pthread_mutex_t *restrict mutex, - const pthread_mutexattr_t *restrict attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_init -# if HAVE_RAW_DECL_PTHREAD_MUTEX_INIT -_GL_WARN_ON_USE (pthread_mutex_init, "pthread_mutex_init is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_init -# define pthread_mutexattr_init rpl_pthread_mutexattr_init -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_init, int, (pthread_mutexattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_init -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_INIT -_GL_WARN_ON_USE (pthread_mutexattr_init, "pthread_mutexattr_init is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_gettype -# define pthread_mutexattr_gettype rpl_pthread_mutexattr_gettype -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep), - _GL_ARG_NONNULL ((1, 2))); -# endif -/* Need to cast, because on FreeBSD the first parameter is - pthread_mutexattr_t *attr. */ -_GL_CXXALIAS_SYS_CAST (pthread_mutexattr_gettype, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict typep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_gettype); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_gettype -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETTYPE -_GL_WARN_ON_USE (pthread_mutexattr_gettype, "pthread_mutexattr_gettype is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_settype -# define pthread_mutexattr_settype rpl_pthread_mutexattr_settype -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_settype, int, - (pthread_mutexattr_t *attr, int type)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_settype); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_settype -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETTYPE -_GL_WARN_ON_USE (pthread_mutexattr_settype, "pthread_mutexattr_settype is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_getrobust -# define pthread_mutexattr_getrobust rpl_pthread_mutexattr_getrobust -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp)); -# else -# if !0 -_GL_FUNCDECL_SYS (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp), - _GL_ARG_NONNULL ((1, 2))); -# endif -/* Need to cast, because on FreeBSD the first parameter is - pthread_mutexattr_t *attr. */ -_GL_CXXALIAS_SYS_CAST (pthread_mutexattr_getrobust, int, - (const pthread_mutexattr_t *restrict attr, - int *restrict robustp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_getrobust); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_getrobust -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_GETROBUST -_GL_WARN_ON_USE (pthread_mutexattr_getrobust, "pthread_mutexattr_getrobust is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_setrobust -# define pthread_mutexattr_setrobust rpl_pthread_mutexattr_setrobust -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust)); -# else -# if !0 -_GL_FUNCDECL_SYS (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_setrobust, int, - (pthread_mutexattr_t *attr, int robust)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_setrobust); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_setrobust -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_SETROBUST -_GL_WARN_ON_USE (pthread_mutexattr_setrobust, "pthread_mutexattr_setrobust is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutexattr_destroy -# define pthread_mutexattr_destroy rpl_pthread_mutexattr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutexattr_destroy, int, (pthread_mutexattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutexattr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutexattr_destroy -# if HAVE_RAW_DECL_PTHREAD_MUTEXATTR_DESTROY -_GL_WARN_ON_USE (pthread_mutexattr_destroy, "pthread_mutexattr_destroy is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_lock -# define pthread_mutex_lock rpl_pthread_mutex_lock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_lock, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_lock, int, (pthread_mutex_t *mutex)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutex_lock, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_lock, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_lock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_lock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_LOCK -_GL_WARN_ON_USE (pthread_mutex_lock, "pthread_mutex_lock is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_trylock -# define pthread_mutex_trylock rpl_pthread_mutex_trylock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_trylock, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_trylock, int, (pthread_mutex_t *mutex)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutex_trylock, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_trylock, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_trylock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_trylock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_TRYLOCK -_GL_WARN_ON_USE (pthread_mutex_trylock, "pthread_mutex_trylock is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_timedlock -# define pthread_mutex_timedlock rpl_pthread_mutex_timedlock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_timedlock, int, - (pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_timedlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_timedlock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_TIMEDLOCK -_GL_WARN_ON_USE (pthread_mutex_timedlock, "pthread_mutex_timedlock is not portable - " - "use gnulib module pthread_mutex_timedlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_unlock -# define pthread_mutex_unlock rpl_pthread_mutex_unlock -# endif -_GL_FUNCDECL_RPL (pthread_mutex_unlock, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_unlock, int, (pthread_mutex_t *mutex)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutex_unlock, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_unlock, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_unlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_unlock -# if HAVE_RAW_DECL_PTHREAD_MUTEX_UNLOCK -_GL_WARN_ON_USE (pthread_mutex_unlock, "pthread_mutex_unlock is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_mutex_destroy -# define pthread_mutex_destroy rpl_pthread_mutex_destroy -# endif -_GL_FUNCDECL_RPL (pthread_mutex_destroy, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_mutex_destroy, int, (pthread_mutex_t *mutex)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_mutex_destroy, int, (pthread_mutex_t *mutex), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_mutex_destroy, int, (pthread_mutex_t *mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_mutex_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_mutex_destroy -# if HAVE_RAW_DECL_PTHREAD_MUTEX_DESTROY -_GL_WARN_ON_USE (pthread_mutex_destroy, "pthread_mutex_destroy is not portable - " - "use gnulib module pthread-mutex for portability"); -# endif -#endif - -/* =========== Read-write lock functions =========== */ - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_init -# define pthread_rwlock_init rpl_pthread_rwlock_init -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_init, int, - (pthread_rwlock_t *restrict lock, - const pthread_rwlockattr_t *restrict attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_init -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_INIT -_GL_WARN_ON_USE (pthread_rwlock_init, "pthread_rwlock_init is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlockattr_init -# define pthread_rwlockattr_init rpl_pthread_rwlockattr_init -# endif -_GL_FUNCDECL_RPL (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlockattr_init, int, (pthread_rwlockattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlockattr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlockattr_init -# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_INIT -_GL_WARN_ON_USE (pthread_rwlockattr_init, "pthread_rwlockattr_init is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlockattr_destroy -# define pthread_rwlockattr_destroy rpl_pthread_rwlockattr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlockattr_destroy, int, - (pthread_rwlockattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlockattr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlockattr_destroy -# if HAVE_RAW_DECL_PTHREAD_RWLOCKATTR_DESTROY -_GL_WARN_ON_USE (pthread_rwlockattr_destroy, "pthread_rwlockattr_destroy is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_rdlock -# define pthread_rwlock_rdlock rpl_pthread_rwlock_rdlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_rdlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_rdlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_rdlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_RDLOCK -_GL_WARN_ON_USE (pthread_rwlock_rdlock, "pthread_rwlock_rdlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_wrlock -# define pthread_rwlock_wrlock rpl_pthread_rwlock_wrlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_wrlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_wrlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_wrlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_WRLOCK -_GL_WARN_ON_USE (pthread_rwlock_wrlock, "pthread_rwlock_wrlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_tryrdlock -# define pthread_rwlock_tryrdlock rpl_pthread_rwlock_tryrdlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_tryrdlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_tryrdlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_tryrdlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYRDLOCK -_GL_WARN_ON_USE (pthread_rwlock_tryrdlock, "pthread_rwlock_tryrdlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_trywrlock -# define pthread_rwlock_trywrlock rpl_pthread_rwlock_trywrlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_trywrlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_trywrlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_trywrlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TRYWRLOCK -_GL_WARN_ON_USE (pthread_rwlock_trywrlock, "pthread_rwlock_trywrlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_timedrdlock -# define pthread_rwlock_timedrdlock rpl_pthread_rwlock_timedrdlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_timedrdlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_timedrdlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_timedrdlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDRDLOCK -_GL_WARN_ON_USE (pthread_rwlock_timedrdlock, "pthread_rwlock_timedrdlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_timedwrlock -# define pthread_rwlock_timedwrlock rpl_pthread_rwlock_timedwrlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_timedwrlock, int, - (pthread_rwlock_t *restrict lock, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_timedwrlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_timedwrlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_TIMEDWRLOCK -_GL_WARN_ON_USE (pthread_rwlock_timedwrlock, "pthread_rwlock_timedwrlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_unlock -# define pthread_rwlock_unlock rpl_pthread_rwlock_unlock -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_unlock, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_unlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_unlock -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_UNLOCK -_GL_WARN_ON_USE (pthread_rwlock_unlock, "pthread_rwlock_unlock is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_rwlock_destroy -# define pthread_rwlock_destroy rpl_pthread_rwlock_destroy -# endif -_GL_FUNCDECL_RPL (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_rwlock_destroy, int, (pthread_rwlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_rwlock_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_rwlock_destroy -# if HAVE_RAW_DECL_PTHREAD_RWLOCK_DESTROY -_GL_WARN_ON_USE (pthread_rwlock_destroy, "pthread_rwlock_destroy is not portable - " - "use gnulib module pthread-rwlock for portability"); -# endif -#endif - -/* =========== Condition variable functions =========== */ - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_init -# define pthread_cond_init rpl_pthread_cond_init -# endif -_GL_FUNCDECL_RPL (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_init, int, - (pthread_cond_t *restrict cond, - const pthread_condattr_t *restrict attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_init -# if HAVE_RAW_DECL_PTHREAD_COND_INIT -_GL_WARN_ON_USE (pthread_cond_init, "pthread_cond_init is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_condattr_init -# define pthread_condattr_init rpl_pthread_condattr_init -# endif -_GL_FUNCDECL_RPL (pthread_condattr_init, int, (pthread_condattr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_condattr_init, int, (pthread_condattr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_condattr_init, int, (pthread_condattr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_condattr_init, int, (pthread_condattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_condattr_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_condattr_init -# if HAVE_RAW_DECL_PTHREAD_CONDATTR_INIT -_GL_WARN_ON_USE (pthread_condattr_init, "pthread_condattr_init is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_condattr_destroy -# define pthread_condattr_destroy rpl_pthread_condattr_destroy -# endif -_GL_FUNCDECL_RPL (pthread_condattr_destroy, int, (pthread_condattr_t *attr), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_condattr_destroy, int, (pthread_condattr_t *attr)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_condattr_destroy, int, (pthread_condattr_t *attr), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_condattr_destroy, int, (pthread_condattr_t *attr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_condattr_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_condattr_destroy -# if HAVE_RAW_DECL_PTHREAD_CONDATTR_DESTROY -_GL_WARN_ON_USE (pthread_condattr_destroy, "pthread_condattr_destroy is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_wait -# define pthread_cond_wait rpl_pthread_cond_wait -# endif -_GL_FUNCDECL_RPL (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_wait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_wait); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_wait -# if HAVE_RAW_DECL_PTHREAD_COND_WAIT -_GL_WARN_ON_USE (pthread_cond_wait, "pthread_cond_wait is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_timedwait -# define pthread_cond_timedwait rpl_pthread_cond_timedwait -# endif -_GL_FUNCDECL_RPL (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2, 3))); -_GL_CXXALIAS_RPL (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime), - _GL_ARG_NONNULL ((1, 2, 3))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_timedwait, int, - (pthread_cond_t *restrict cond, - pthread_mutex_t *restrict mutex, - const struct timespec *restrict abstime)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_timedwait); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_timedwait -# if HAVE_RAW_DECL_PTHREAD_COND_TIMEDWAIT -_GL_WARN_ON_USE (pthread_cond_timedwait, "pthread_cond_timedwait is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_signal -# define pthread_cond_signal rpl_pthread_cond_signal -# endif -_GL_FUNCDECL_RPL (pthread_cond_signal, int, (pthread_cond_t *cond), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_signal, int, (pthread_cond_t *cond)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_cond_signal, int, (pthread_cond_t *cond), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_signal, int, (pthread_cond_t *cond)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_signal); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_signal -# if HAVE_RAW_DECL_PTHREAD_COND_SIGNAL -_GL_WARN_ON_USE (pthread_cond_signal, "pthread_cond_signal is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_broadcast -# define pthread_cond_broadcast rpl_pthread_cond_broadcast -# endif -_GL_FUNCDECL_RPL (pthread_cond_broadcast, int, (pthread_cond_t *cond), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_broadcast, int, (pthread_cond_t *cond)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_cond_broadcast, int, (pthread_cond_t *cond), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_broadcast, int, (pthread_cond_t *cond)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_broadcast); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_broadcast -# if HAVE_RAW_DECL_PTHREAD_COND_BROADCAST -_GL_WARN_ON_USE (pthread_cond_broadcast, "pthread_cond_broadcast is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_cond_destroy -# define pthread_cond_destroy rpl_pthread_cond_destroy -# endif -_GL_FUNCDECL_RPL (pthread_cond_destroy, int, (pthread_cond_t *cond), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_cond_destroy, int, (pthread_cond_t *cond)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_cond_destroy, int, (pthread_cond_t *cond), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_cond_destroy, int, (pthread_cond_t *cond)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_cond_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_cond_destroy -# if HAVE_RAW_DECL_PTHREAD_COND_DESTROY -_GL_WARN_ON_USE (pthread_cond_destroy, "pthread_cond_destroy is not portable - " - "use gnulib module pthread-cond for portability"); -# endif -#endif - -/* =========== Thread-specific storage functions =========== */ - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_key_create -# define pthread_key_create rpl_pthread_key_create -# endif -_GL_FUNCDECL_RPL (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *)), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *))); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *)), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS_CAST (pthread_key_create, int, - (pthread_key_t *keyp, void (*destructor) (void *))); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_key_create); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_key_create -# if HAVE_RAW_DECL_PTHREAD_KEY_CREATE -_GL_WARN_ON_USE (pthread_key_create, "pthread_key_create is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_setspecific -# define pthread_setspecific rpl_pthread_setspecific -# endif -_GL_FUNCDECL_RPL (pthread_setspecific, int, - (pthread_key_t key, const void *value), ); -_GL_CXXALIAS_RPL (pthread_setspecific, int, - (pthread_key_t key, const void *value)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_setspecific, int, - (pthread_key_t key, const void *value), ); -# endif -_GL_CXXALIAS_SYS (pthread_setspecific, int, - (pthread_key_t key, const void *value)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_setspecific); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_setspecific -# if HAVE_RAW_DECL_PTHREAD_SETSPECIFIC -_GL_WARN_ON_USE (pthread_setspecific, "pthread_setspecific is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_getspecific -# define pthread_getspecific rpl_pthread_getspecific -# endif -_GL_FUNCDECL_RPL (pthread_getspecific, void *, (pthread_key_t key), ); -_GL_CXXALIAS_RPL (pthread_getspecific, void *, (pthread_key_t key)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_getspecific, void *, (pthread_key_t key), ); -# endif -_GL_CXXALIAS_SYS (pthread_getspecific, void *, (pthread_key_t key)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_getspecific); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_getspecific -# if HAVE_RAW_DECL_PTHREAD_GETSPECIFIC -_GL_WARN_ON_USE (pthread_getspecific, "pthread_getspecific is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_key_delete -# define pthread_key_delete rpl_pthread_key_delete -# endif -_GL_FUNCDECL_RPL (pthread_key_delete, int, (pthread_key_t key), ); -_GL_CXXALIAS_RPL (pthread_key_delete, int, (pthread_key_t key)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_key_delete, int, (pthread_key_t key), ); -# endif -_GL_CXXALIAS_SYS (pthread_key_delete, int, (pthread_key_t key)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_key_delete); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_key_delete -# if HAVE_RAW_DECL_PTHREAD_KEY_DELETE -_GL_WARN_ON_USE (pthread_key_delete, "pthread_key_delete is not portable - " - "use gnulib module pthread-tss for portability"); -# endif -#endif - -/* =========== Spinlock functions =========== */ - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_init -# define pthread_spin_init rpl_pthread_spin_init -# endif -_GL_FUNCDECL_RPL (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_init, int, - (pthread_spinlock_t *lock, int shared_across_processes)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_init); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_init -# if HAVE_RAW_DECL_PTHREAD_SPIN_INIT -_GL_WARN_ON_USE (pthread_spin_init, "pthread_spin_init is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_lock -# define pthread_spin_lock rpl_pthread_spin_lock -# endif -_GL_FUNCDECL_RPL (pthread_spin_lock, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_lock, int, (pthread_spinlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_spin_lock, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_lock, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_lock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_lock -# if HAVE_RAW_DECL_PTHREAD_SPIN_LOCK -_GL_WARN_ON_USE (pthread_spin_lock, "pthread_spin_lock is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_trylock -# define pthread_spin_trylock rpl_pthread_spin_trylock -# endif -_GL_FUNCDECL_RPL (pthread_spin_trylock, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_trylock, int, (pthread_spinlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_spin_trylock, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_trylock, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_trylock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_trylock -# if HAVE_RAW_DECL_PTHREAD_SPIN_TRYLOCK -_GL_WARN_ON_USE (pthread_spin_trylock, "pthread_spin_trylock is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_unlock -# define pthread_spin_unlock rpl_pthread_spin_unlock -# endif -_GL_FUNCDECL_RPL (pthread_spin_unlock, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_unlock, int, (pthread_spinlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_spin_unlock, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_unlock, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_unlock); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_unlock -# if HAVE_RAW_DECL_PTHREAD_SPIN_UNLOCK -_GL_WARN_ON_USE (pthread_spin_unlock, "pthread_spin_unlock is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_spin_destroy -# define pthread_spin_destroy rpl_pthread_spin_destroy -# endif -_GL_FUNCDECL_RPL (pthread_spin_destroy, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pthread_spin_destroy, int, (pthread_spinlock_t *lock)); -# else -# if !1 -_GL_FUNCDECL_SYS (pthread_spin_destroy, int, (pthread_spinlock_t *lock), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pthread_spin_destroy, int, (pthread_spinlock_t *lock)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_spin_destroy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_spin_destroy -# if HAVE_RAW_DECL_PTHREAD_SPIN_DESTROY -_GL_WARN_ON_USE (pthread_spin_destroy, "pthread_spin_destroy is not portable - " - "use gnulib module pthread-spin for portability"); -# endif -#endif - - -#if defined __cplusplus && defined GNULIB_NAMESPACE && !1 && defined __MINGW32__ -/* Provide the symbols required by mingw's . */ -using GNULIB_NAMESPACE::pthread_create; -using GNULIB_NAMESPACE::pthread_self; -using GNULIB_NAMESPACE::pthread_equal; -using GNULIB_NAMESPACE::pthread_detach; -using GNULIB_NAMESPACE::pthread_join; -using GNULIB_NAMESPACE::pthread_once; -using GNULIB_NAMESPACE::pthread_mutex_init; -using GNULIB_NAMESPACE::pthread_mutexattr_init; -using GNULIB_NAMESPACE::pthread_mutexattr_settype; -using GNULIB_NAMESPACE::pthread_mutexattr_destroy; -using GNULIB_NAMESPACE::pthread_mutex_lock; -using GNULIB_NAMESPACE::pthread_mutex_trylock; -using GNULIB_NAMESPACE::pthread_mutex_timedlock; -using GNULIB_NAMESPACE::pthread_mutex_unlock; -using GNULIB_NAMESPACE::pthread_mutex_destroy; -using GNULIB_NAMESPACE::pthread_cond_wait; -using GNULIB_NAMESPACE::pthread_cond_timedwait; -using GNULIB_NAMESPACE::pthread_cond_signal; -using GNULIB_NAMESPACE::pthread_cond_broadcast; -using GNULIB_NAMESPACE::pthread_cond_destroy; -using GNULIB_NAMESPACE::pthread_key_create; -using GNULIB_NAMESPACE::pthread_setspecific; -using GNULIB_NAMESPACE::pthread_getspecific; -using GNULIB_NAMESPACE::pthread_key_delete; -#endif - - -#endif /* _GL_PTHREAD_H_ */ -#endif /* _GL_PTHREAD_H_ */ -#endif diff --git a/jni/parted/lib/sched.h b/jni/parted/lib/sched.h deleted file mode 100755 index 19c3322..0000000 --- a/jni/parted/lib/sched.h +++ /dev/null @@ -1,622 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_SCHED_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* This file uses #include_next of a system file that defines time_t. - For the 'year2038' module to work right, needs to have been - included before. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# if 0 -# include -# endif -# include_next -#endif - -#ifndef _GL_SCHED_H -#define _GL_SCHED_H - -/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get pid_t. - This is needed on glibc 2.11 (see - glibc bug ) - and Mac OS X 10.5. */ -#include - -#ifdef __KLIBC__ -/* On OS/2 kLIBC, struct sched_param is in spawn.h. */ -# include -#endif - -#ifdef __VMS -/* On OpenVMS, struct sched_param is in . */ -# include -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -#if !1 - -# if !GNULIB_defined_struct_sched_param -struct sched_param -{ - int sched_priority; -}; -# define GNULIB_defined_struct_sched_param 1 -# endif - -#endif - -#if !(defined SCHED_FIFO && defined SCHED_RR && defined SCHED_OTHER) -# define SCHED_FIFO 1 -# define SCHED_RR 2 -# define SCHED_OTHER 0 -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sched_yield -# define sched_yield rpl_sched_yield -# endif -_GL_FUNCDECL_RPL (sched_yield, int, (void), ); -_GL_CXXALIAS_RPL (sched_yield, int, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (sched_yield, int, (void), ); -# endif -_GL_CXXALIAS_SYS (sched_yield, int, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (sched_yield); -# endif -#elif defined GNULIB_POSIXCHECK -# undef sched_yield -# if HAVE_RAW_DECL_SCHED_YIELD -_GL_WARN_ON_USE (sched_yield, "sched_yield is not portable - " - "use gnulib module sched_yield for portability"); -# endif -#endif - -#endif /* _GL_SCHED_H */ -#endif /* _GL_SCHED_H */ diff --git a/jni/parted/lib/stddef.h b/jni/parted/lib/stddef.h deleted file mode 100755 index fd22366..0000000 --- a/jni/parted/lib/stddef.h +++ /dev/null @@ -1,230 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A substitute for POSIX 2008 , for platforms that have issues. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake. */ - -/* - * POSIX 2008 and ISO C 23 for platforms that have issues. - * - */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if (defined __need_wchar_t || defined __need_size_t \ - || defined __need_ptrdiff_t || defined __need_NULL \ - || defined __need_wint_t) \ - /* Avoid warning triggered by "gcc -std=gnu23 -Wsystem-headers" \ - in Fedora 40 with gcc 14.0.1. \ - . */ \ - && !0 -/* Special invocation convention inside gcc header files. In - particular, in some ancient versions of GCC blindly - redefined NULL when __need_wint_t was defined, even though wint_t - is not normally provided by . - (FIXME: It's not clear what GCC versions those were - perhaps so - ancient that we can stop worrying about this?) - Although glibc 2.26 (2017) and later do not use __need_wint_t, - for portability to macOS, Cygwin, Haiku, and older Glibc + GCC, - remember if special invocation has ever been used to obtain wint_t, - in which case we need to clean up NULL yet again. */ - -# if !(defined _GL_STDDEF_H && defined _GL_STDDEF_WINT_T) -# ifdef __need_wint_t -# define _GL_STDDEF_WINT_T -# endif -# include_next - /* On TinyCC, make sure that the macros that indicate the special invocation - convention get undefined. */ -# undef __need_wchar_t -# undef __need_size_t -# undef __need_ptrdiff_t -# undef __need_NULL -# undef __need_wint_t -# endif - -#else -/* For 0. */ -# undef __need_wchar_t -# undef __need_size_t -# undef __need_ptrdiff_t -# undef __need_NULL -# undef __need_wint_t - -/* Normal invocation convention. */ - -# ifndef _GL_STDDEF_H - -/* On AIX 7.2, with xlc in 64-bit mode, defines max_align_t to a - type with alignment 4, but 'long' has alignment 8. */ -# if defined _AIX && defined __LP64__ && !1 -# if !GNULIB_defined_max_align_t -# ifdef _MAX_ALIGN_T -/* /usr/include/stddef.h has already defined max_align_t. Override it. */ -typedef long rpl_max_align_t; -# define max_align_t rpl_max_align_t -# else -/* Prevent /usr/include/stddef.h from defining max_align_t. */ -typedef long max_align_t; -# define _MAX_ALIGN_T -# endif -# define __CLANG_MAX_ALIGN_T_DEFINED -# define GNULIB_defined_max_align_t 1 -# endif -# endif - -# if !defined _GCC_NULLPTR_T && !1 - /* Suppress unwanted nullptr_t typedef. See - . */ -# define _GCC_NULLPTR_T -# endif - -/* The include_next requires a split double-inclusion guard. */ - -# include_next - -/* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ -# if (0 \ - && (!defined _GL_STDDEF_H || defined _GL_STDDEF_WINT_T)) -# undef NULL -# ifdef __cplusplus - /* ISO C++ says that the macro NULL must expand to an integer constant - expression, hence '((void *) 0)' is not allowed in C++. */ -# if __GNUG__ >= 3 - /* GNU C++ has a __null macro that behaves like an integer ('int' or - 'long') but has the same size as a pointer. Use that, to avoid - warnings. */ -# define NULL __null -# else -# define NULL 0L -# endif -# else -# define NULL ((void *) 0) -# endif -# endif - -# ifndef _GL_STDDEF_H -# define _GL_STDDEF_H - -/* This file uses _Noreturn, _GL_ATTRIBUTE_NOTHROW. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* Some platforms lack max_align_t. The check for _GCC_MAX_ALIGN_T is - a hack in case the configure-time test was done with g++ even though - we are currently compiling with gcc. - On MSVC, max_align_t is defined only in C++ mode, after was - included. Its definition is good since it has an alignment of 8 (on x86 - and x86_64). - Similarly on OS/2 kLIBC. */ -#if (defined _MSC_VER || (defined __KLIBC__ && !defined __LIBCN__)) \ - && defined __cplusplus -# include -#else -# if ! (1 || (defined _GCC_MAX_ALIGN_T && !defined __clang__)) -# if !GNULIB_defined_max_align_t -/* On the x86, the maximum storage alignment of double, long, etc. is 4, - but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8, - and the C11 standard allows this. Work around this problem by - using __alignof__ (which returns 8 for double) rather than _Alignof - (which returns 4), and align each union member accordingly. */ -# if defined __GNUC__ || (__clang_major__ >= 4) -# define _GL_STDDEF_ALIGNAS(type) \ - __attribute__ ((__aligned__ (__alignof__ (type)))) -# else -# define _GL_STDDEF_ALIGNAS(type) /* */ -# endif -typedef union -{ - char *__p _GL_STDDEF_ALIGNAS (char *); - double __d _GL_STDDEF_ALIGNAS (double); - long double __ld _GL_STDDEF_ALIGNAS (long double); - long int __i _GL_STDDEF_ALIGNAS (long int); -} rpl_max_align_t; -# define max_align_t rpl_max_align_t -# define __CLANG_MAX_ALIGN_T_DEFINED -# define GNULIB_defined_max_align_t 1 -# endif -# endif -#endif - -/* ISO C 23 § 7.21.1 The unreachable macro */ -#ifndef unreachable - -/* Code borrowed from verify.h. */ -# ifndef _GL_HAS_BUILTIN_UNREACHABLE -# if defined __clang_major__ && __clang_major__ < 5 -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -# elif 4 < __GNUC__ + (5 <= __GNUC_MINOR__) && !defined __clang__ -# define _GL_HAS_BUILTIN_UNREACHABLE 1 -# elif defined __has_builtin -# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) -# else -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -# endif -# endif - -# if _GL_HAS_BUILTIN_UNREACHABLE -# define unreachable() __builtin_unreachable () -# elif 1200 <= _MSC_VER -# define unreachable() __assume (0) -# else -/* Declare abort(), without including . */ -extern -# if defined __cplusplus -"C" -# endif -_Noreturn -void abort (void) -# if defined __cplusplus && (__GLIBC__ >= 2) -_GL_ATTRIBUTE_NOTHROW -# endif -; -# define unreachable() abort () -# endif - -#endif - -# endif /* _GL_STDDEF_H */ -# endif /* _GL_STDDEF_H */ -#endif /* __need_XXX */ diff --git a/jni/parted/lib/stdint.h b/jni/parted/lib/stdint.h deleted file mode 100755 index d880b09..0000000 --- a/jni/parted/lib/stdint.h +++ /dev/null @@ -1,752 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 2001-2002, 2004-2024 Free Software Foundation, Inc. - Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. - This file is part of gnulib. - - This file 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 file 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 program. If not, see . */ - -/* - * ISO C 99 for platforms that lack it. - * - */ - -#ifndef _GL_STDINT_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* When including a system file that in turn includes , - use the system , not our substitute. This avoids - problems with (for example) VMS, whose includes - . */ -#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H - -/* On Android (Bionic libc), includes this file before - having defined 'time_t'. Therefore in this case avoid including - other system header files; just include the system's . - Ideally we should test __BIONIC__ here, but it is only defined after - has been included; hence test __ANDROID__ instead. */ -#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H -# include_next -#else - -/* Get those types that are already defined in other system include - files, so that we can "#define int8_t signed char" below without - worrying about a later system include file containing a "typedef - signed char int8_t;" that will get messed up by our macro. Our - macros should all be consistent with the system versions, except - for the "fast" types and macros, which we recommend against using - in public interfaces due to compiler differences. */ - -#if 1 -# if defined __sgi && ! defined __c99 - /* Bypass IRIX's if in C89 mode, since it merely annoys users - with "This header file is to be used only for c99 mode compilations" - diagnostics. */ -# define __STDINT_H__ -# endif - - /* Some pre-C++11 implementations need this. */ -# ifdef __cplusplus -# ifndef __STDC_CONSTANT_MACROS -# define __STDC_CONSTANT_MACROS 1 -# endif -# ifndef __STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS 1 -# endif -# endif - - /* Other systems may have an incomplete or buggy . - Include it before , since any "#include " - in would reinclude us, skipping our contents because - _GL_STDINT_H is defined. - The include_next requires a split double-inclusion guard. */ -# include_next -#endif - -#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H -#define _GL_STDINT_H - -/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, - LONG_MIN, LONG_MAX, ULONG_MAX, CHAR_BIT, _GL_INTEGER_WIDTH. */ -#include - -/* Override WINT_MIN and WINT_MAX if gnulib's or overrides - wint_t. */ -#if 0 -# undef WINT_MIN -# undef WINT_MAX -# define WINT_MIN 0x0U -# define WINT_MAX 0xffffffffU -#endif - -#if ! 0 - -/* defines some of the stdint.h types as well, on glibc, - IRIX 6.5, and OpenBSD 3.8 (via ). - AIX 5.2 isn't needed and causes troubles. - Mac OS X 10.4.6 includes (which is us), but - relies on the system definitions, so include - after . */ -# if 1 && ! defined _AIX -# include -# endif - -# if 1 - /* In OpenBSD 3.8, includes , which defines - int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. - also defines intptr_t and uintptr_t. */ -# include -# elif 0 - /* Solaris 7 has the types except the *_fast*_t types, and - the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ -# include -# endif - -# if 0 && ! defined __BIT_TYPES_DEFINED__ - /* Linux libc4 >= 4.6.7 and libc5 have a that defines - int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is - included by . */ -# include -# endif - -# undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H - -/* Minimum and maximum values for an integer type under the usual assumption. - Return an unspecified value if BITS == 0, adding a check to pacify - picky compilers. */ - -/* These are separate macros, because if you try to merge these macros into - a single one, HP-UX cc rejects the resulting expression in constant - expressions. */ -# define _STDINT_UNSIGNED_MIN(bits, zero) \ - (zero) -# define _STDINT_SIGNED_MIN(bits, zero) \ - (~ _STDINT_MAX (1, bits, zero)) - -# define _STDINT_MAX(signed, bits, zero) \ - (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) - -#if !GNULIB_defined_stdint_types - -/* 7.18.1.1. Exact-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. */ - -# undef int8_t -# undef uint8_t -typedef signed char gl_int8_t; -typedef unsigned char gl_uint8_t; -# define int8_t gl_int8_t -# define uint8_t gl_uint8_t - -# undef int16_t -# undef uint16_t -typedef short int gl_int16_t; -typedef unsigned short int gl_uint16_t; -# define int16_t gl_int16_t -# define uint16_t gl_uint16_t - -# undef int32_t -# undef uint32_t -typedef int gl_int32_t; -typedef unsigned int gl_uint32_t; -# define int32_t gl_int32_t -# define uint32_t gl_uint32_t - -/* If the system defines INT64_MAX, assume int64_t works. That way, - if the underlying platform defines int64_t to be a 64-bit long long - int, the code below won't mistakenly define it to be a 64-bit long - int, which would mess up C++ name mangling. We must use #ifdef - rather than #if, to avoid an error with HP-UX 10.20 cc. */ - -# ifdef INT64_MAX -# define GL_INT64_T -# else -/* Do not undefine int64_t if gnulib is not being used with 64-bit - types, since otherwise it breaks platforms like Tandem/NSK. */ -# if LONG_MAX >> 31 >> 31 == 1 -# undef int64_t -typedef long int gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# elif defined _MSC_VER -# undef int64_t -typedef __int64 gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# else -/* Verify that 'long long' has exactly 64 bits. */ -typedef _gl_verify_int64_bits[ - _STDINT_MAX (1, sizeof (long long) * CHAR_BIT, 0ll) >> 31 >> 31 == 1 - ? 1 : -1]; -# undef int64_t -typedef long long int gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# endif -# endif - -# ifdef UINT64_MAX -# define GL_UINT64_T -# else -# if ULONG_MAX >> 31 >> 31 >> 1 == 1 -# undef uint64_t -typedef unsigned long int gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# elif defined _MSC_VER -# undef uint64_t -typedef unsigned __int64 gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# else -/* Verify that 'unsigned long long' has exactly 64 bits. */ -typedef _gl_verify_uint64_bits[ - _STDINT_MAX (0, sizeof (unsigned long long) * CHAR_BIT, 0ull) - >> 31 >> 31 >> 1 == 1 - ? 1 : -1]; -# undef uint64_t -typedef unsigned long long int gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# endif -# endif - -/* Avoid collision with Solaris 2.5.1 etc. */ -# define _UINT8_T -# define _UINT32_T -# define _UINT64_T - - -/* 7.18.1.2. Minimum-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types - are the same as the corresponding N_t types. */ - -# undef int_least8_t -# undef uint_least8_t -# undef int_least16_t -# undef uint_least16_t -# undef int_least32_t -# undef uint_least32_t -# undef int_least64_t -# undef uint_least64_t -# define int_least8_t int8_t -# define uint_least8_t uint8_t -# define int_least16_t int16_t -# define uint_least16_t uint16_t -# define int_least32_t int32_t -# define uint_least32_t uint32_t -# ifdef GL_INT64_T -# define int_least64_t int64_t -# endif -# ifdef GL_UINT64_T -# define uint_least64_t uint64_t -# endif - -/* 7.18.1.3. Fastest minimum-width integer types */ - -/* Note: Other substitutes may define these types differently. - It is not recommended to use these types in public header files. */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types - are taken from the same list of types. The following code normally - uses types consistent with glibc, as that lessens the chance of - incompatibility with older GNU hosts. */ - -# undef int_fast8_t -# undef uint_fast8_t -# undef int_fast16_t -# undef uint_fast16_t -# undef int_fast32_t -# undef uint_fast32_t -# undef int_fast64_t -# undef uint_fast64_t -typedef signed char gl_int_fast8_t; -typedef unsigned char gl_uint_fast8_t; - -# ifdef __sun -/* Define types compatible with SunOS 5.10, so that code compiled under - earlier SunOS versions works with code compiled under SunOS 5.10. */ -typedef int gl_int_fast32_t; -typedef unsigned int gl_uint_fast32_t; -# else -typedef long int gl_int_fast32_t; -typedef unsigned long int gl_uint_fast32_t; -# endif -typedef gl_int_fast32_t gl_int_fast16_t; -typedef gl_uint_fast32_t gl_uint_fast16_t; - -# define int_fast8_t gl_int_fast8_t -# define uint_fast8_t gl_uint_fast8_t -# define int_fast16_t gl_int_fast16_t -# define uint_fast16_t gl_uint_fast16_t -# define int_fast32_t gl_int_fast32_t -# define uint_fast32_t gl_uint_fast32_t -# ifdef GL_INT64_T -# define int_fast64_t int64_t -# endif -# ifdef GL_UINT64_T -# define uint_fast64_t uint64_t -# endif - -/* 7.18.1.4. Integer types capable of holding object pointers */ - -/* kLIBC's defines _INTPTR_T_DECLARED and needs its own - definitions of intptr_t and uintptr_t (which use int and unsigned) - to avoid clashes with declarations of system functions like sbrk. - Similarly, MinGW WSL-5.4.1 needs its own intptr_t and - uintptr_t to avoid conflicting declarations of system functions like - _findclose in . */ -# if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ - || (defined __INTPTR_WIDTH__ \ - && __INTPTR_WIDTH__ != (defined _WIN64 ? LLONG_WIDTH : LONG_WIDTH)) \ - || defined __MINGW32__) -# undef intptr_t -# undef uintptr_t -# ifdef _WIN64 -typedef long long int gl_intptr_t; -typedef unsigned long long int gl_uintptr_t; -# else -typedef long int gl_intptr_t; -typedef unsigned long int gl_uintptr_t; -# endif -# define intptr_t gl_intptr_t -# define uintptr_t gl_uintptr_t -# endif - -/* 7.18.1.5. Greatest-width integer types */ - -/* Note: These types are compiler dependent. It may be unwise to use them in - public header files. */ - -/* If the system defines INTMAX_MAX, assume that intmax_t works, and - similarly for UINTMAX_MAX and uintmax_t. This avoids problems with - assuming one type where another is used by the system. */ - -# ifndef INTMAX_MAX -# undef INTMAX_C -# undef intmax_t -# if LONG_MAX >> 30 == 1 -typedef long long int gl_intmax_t; -# define intmax_t gl_intmax_t -# elif defined GL_INT64_T -# define intmax_t int64_t -# else -typedef long int gl_intmax_t; -# define intmax_t gl_intmax_t -# endif -# endif - -# ifndef UINTMAX_MAX -# undef UINTMAX_C -# undef uintmax_t -# if ULONG_MAX >> 31 == 1 -typedef unsigned long long int gl_uintmax_t; -# define uintmax_t gl_uintmax_t -# elif defined GL_UINT64_T -# define uintmax_t uint64_t -# else -typedef unsigned long int gl_uintmax_t; -# define uintmax_t gl_uintmax_t -# endif -# endif - -/* Verify that intmax_t and uintmax_t have the same size. Too much code - breaks if this is not the case. If this check fails, the reason is likely - to be found in the autoconf macros. */ -typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) - ? 1 : -1]; - -# define GNULIB_defined_stdint_types 1 -# endif /* !GNULIB_defined_stdint_types */ - -/* 7.18.2. Limits of specified-width integer types */ - -/* 7.18.2.1. Limits of exact-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. */ - -# undef INT8_MIN -# undef INT8_MAX -# undef UINT8_MAX -# define INT8_MIN (~ INT8_MAX) -# define INT8_MAX 127 -# define UINT8_MAX 255 - -# undef INT16_MIN -# undef INT16_MAX -# undef UINT16_MAX -# define INT16_MIN (~ INT16_MAX) -# define INT16_MAX 32767 -# define UINT16_MAX 65535 - -# undef INT32_MIN -# undef INT32_MAX -# undef UINT32_MAX -# define INT32_MIN (~ INT32_MAX) -# define INT32_MAX 2147483647 -# define UINT32_MAX 4294967295U - -# if defined GL_INT64_T && ! defined INT64_MAX -/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 - evaluates the latter incorrectly in preprocessor expressions. */ -# define INT64_MIN (- INTMAX_C (1) << 63) -# define INT64_MAX INTMAX_C (9223372036854775807) -# endif - -# if defined GL_UINT64_T && ! defined UINT64_MAX -# define UINT64_MAX UINTMAX_C (18446744073709551615) -# endif - -/* 7.18.2.2. Limits of minimum-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types - are the same as the corresponding N_t types. */ - -# undef INT_LEAST8_MIN -# undef INT_LEAST8_MAX -# undef UINT_LEAST8_MAX -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST8_MAX INT8_MAX -# define UINT_LEAST8_MAX UINT8_MAX - -# undef INT_LEAST16_MIN -# undef INT_LEAST16_MAX -# undef UINT_LEAST16_MAX -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST16_MAX INT16_MAX -# define UINT_LEAST16_MAX UINT16_MAX - -# undef INT_LEAST32_MIN -# undef INT_LEAST32_MAX -# undef UINT_LEAST32_MAX -# define INT_LEAST32_MIN INT32_MIN -# define INT_LEAST32_MAX INT32_MAX -# define UINT_LEAST32_MAX UINT32_MAX - -# undef INT_LEAST64_MIN -# undef INT_LEAST64_MAX -# ifdef GL_INT64_T -# define INT_LEAST64_MIN INT64_MIN -# define INT_LEAST64_MAX INT64_MAX -# endif - -# undef UINT_LEAST64_MAX -# ifdef GL_UINT64_T -# define UINT_LEAST64_MAX UINT64_MAX -# endif - -/* 7.18.2.3. Limits of fastest minimum-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types - are taken from the same list of types. */ - -# undef INT_FAST8_MIN -# undef INT_FAST8_MAX -# undef UINT_FAST8_MAX -# define INT_FAST8_MIN SCHAR_MIN -# define INT_FAST8_MAX SCHAR_MAX -# define UINT_FAST8_MAX UCHAR_MAX - -# undef INT_FAST16_MIN -# undef INT_FAST16_MAX -# undef UINT_FAST16_MAX -# define INT_FAST16_MIN INT_FAST32_MIN -# define INT_FAST16_MAX INT_FAST32_MAX -# define UINT_FAST16_MAX UINT_FAST32_MAX - -# undef INT_FAST32_MIN -# undef INT_FAST32_MAX -# undef UINT_FAST32_MAX -# ifdef __sun -# define INT_FAST32_MIN INT_MIN -# define INT_FAST32_MAX INT_MAX -# define UINT_FAST32_MAX UINT_MAX -# else -# define INT_FAST32_MIN LONG_MIN -# define INT_FAST32_MAX LONG_MAX -# define UINT_FAST32_MAX ULONG_MAX -# endif - -# undef INT_FAST64_MIN -# undef INT_FAST64_MAX -# ifdef GL_INT64_T -# define INT_FAST64_MIN INT64_MIN -# define INT_FAST64_MAX INT64_MAX -# endif - -# undef UINT_FAST64_MAX -# ifdef GL_UINT64_T -# define UINT_FAST64_MAX UINT64_MAX -# endif - -/* 7.18.2.4. Limits of integer types capable of holding object pointers */ - -# undef INTPTR_MIN -# undef INTPTR_MAX -# undef UINTPTR_MAX -# ifdef _WIN64 -# define INTPTR_MIN LLONG_MIN -# define INTPTR_MAX LLONG_MAX -# define UINTPTR_MAX ULLONG_MAX -# else -# define INTPTR_MIN LONG_MIN -# define INTPTR_MAX LONG_MAX -# define UINTPTR_MAX ULONG_MAX -# endif - -/* 7.18.2.5. Limits of greatest-width integer types */ - -# ifndef INTMAX_MAX -# undef INTMAX_MIN -# ifdef INT64_MAX -# define INTMAX_MIN INT64_MIN -# define INTMAX_MAX INT64_MAX -# else -# define INTMAX_MIN INT32_MIN -# define INTMAX_MAX INT32_MAX -# endif -# endif - -# ifndef UINTMAX_MAX -# ifdef UINT64_MAX -# define UINTMAX_MAX UINT64_MAX -# else -# define UINTMAX_MAX UINT32_MAX -# endif -# endif - -/* 7.18.3. Limits of other integer types */ - -/* ptrdiff_t limits */ -# undef PTRDIFF_MIN -# undef PTRDIFF_MAX -# if 0 -# ifdef _LP64 -# define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) -# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) -# else -# define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) -# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) -# endif -# else -# define PTRDIFF_MIN \ - _STDINT_SIGNED_MIN (64, 0l) -# define PTRDIFF_MAX \ - _STDINT_MAX (1, 64, 0l) -# endif - -/* sig_atomic_t limits */ -# undef SIG_ATOMIC_MIN -# undef SIG_ATOMIC_MAX -# if 1 -# define SIG_ATOMIC_MIN \ - _STDINT_SIGNED_MIN (32, 0) -# else -# define SIG_ATOMIC_MIN \ - _STDINT_UNSIGNED_MIN (32, 0) -# endif -# define SIG_ATOMIC_MAX \ - _STDINT_MAX (1, 32, \ - 0) - - -/* size_t limit */ -# undef SIZE_MAX -# if 0 -# ifdef _LP64 -# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) -# else -# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) -# endif -# else -# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) -# endif - -/* wchar_t limits */ -/* Get WCHAR_MIN, WCHAR_MAX. - This include is not on the top, above, because on OSF/1 4.0 we have a - sequence of nested includes - -> -> -> , and the latter includes - and assumes its types are already defined. */ -# if 1 && ! (defined WCHAR_MIN && defined WCHAR_MAX) -# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H -# include -# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H -# endif -# undef WCHAR_MIN -# undef WCHAR_MAX -# if 0 -# define WCHAR_MIN \ - _STDINT_SIGNED_MIN (32, 0u) -# else -# define WCHAR_MIN \ - _STDINT_UNSIGNED_MIN (32, 0u) -# endif -# define WCHAR_MAX \ - _STDINT_MAX (0, 32, 0u) - -/* wint_t limits */ -/* If gnulib's or overrides wint_t, u is not - accurate, therefore use the definitions from above. */ -# if !0 -# undef WINT_MIN -# undef WINT_MAX -# if 0 -# define WINT_MIN \ - _STDINT_SIGNED_MIN (32, 0u) -# else -# define WINT_MIN \ - _STDINT_UNSIGNED_MIN (32, 0u) -# endif -# define WINT_MAX \ - _STDINT_MAX (0, 32, 0u) -# endif - -/* 7.18.4. Macros for integer constants */ - -/* 7.18.4.1. Macros for minimum-width integer constants */ -/* According to ISO C 99 Technical Corrigendum 1 */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ - -# undef INT8_C -# undef UINT8_C -# define INT8_C(x) x -# define UINT8_C(x) x - -# undef INT16_C -# undef UINT16_C -# define INT16_C(x) x -# define UINT16_C(x) x - -# undef INT32_C -# undef UINT32_C -# define INT32_C(x) x -# define UINT32_C(x) x ## U - -# undef INT64_C -# undef UINT64_C -# if LONG_MAX >> 31 >> 31 == 1 -# define INT64_C(x) x##L -# elif defined _MSC_VER -# define INT64_C(x) x##i64 -# else -# define INT64_C(x) x##LL -# endif -# if ULONG_MAX >> 31 >> 31 >> 1 == 1 -# define UINT64_C(x) x##UL -# elif defined _MSC_VER -# define UINT64_C(x) x##ui64 -# else -# define UINT64_C(x) x##ULL -# endif - -/* 7.18.4.2. Macros for greatest-width integer constants */ - -# ifndef INTMAX_C -# if LONG_MAX >> 30 == 1 -# define INTMAX_C(x) x##LL -# elif defined GL_INT64_T -# define INTMAX_C(x) INT64_C(x) -# else -# define INTMAX_C(x) x##L -# endif -# endif - -# ifndef UINTMAX_C -# if ULONG_MAX >> 31 == 1 -# define UINTMAX_C(x) x##ULL -# elif defined GL_UINT64_T -# define UINTMAX_C(x) UINT64_C(x) -# else -# define UINTMAX_C(x) x##UL -# endif -# endif - -#endif /* !0 */ - -/* Macros specified by ISO/IEC TS 18661-1:2014. */ - -#if (!defined UINTMAX_WIDTH \ - && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) -# ifdef INT8_MAX -# define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) -# endif -# ifdef UINT8_MAX -# define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) -# endif -# ifdef INT16_MAX -# define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) -# endif -# ifdef UINT16_MAX -# define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) -# endif -# ifdef INT32_MAX -# define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) -# endif -# ifdef UINT32_MAX -# define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) -# endif -# ifdef INT64_MAX -# define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) -# endif -# ifdef UINT64_MAX -# define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) -# endif -# define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) -# define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) -# define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) -# define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) -# define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) -# define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) -# define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) -# define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) -# define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) -# define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) -# define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) -# define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) -# define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) -# define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) -# define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) -# define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) -# define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) -# define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) -# define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) -# define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) -# define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) -# define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) -# define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) -# ifdef WINT_MAX -# define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) -# endif -# ifdef SIG_ATOMIC_MAX -# define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) -# endif -#endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ - -#endif /* _GL_STDINT_H */ -#endif /* !(defined __ANDROID__ && ...) */ -#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ diff --git a/jni/parted/lib/stdio.h b/jni/parted/lib/stdio.h deleted file mode 100755 index 947a819..0000000 --- a/jni/parted/lib/stdio.h +++ /dev/null @@ -1,2651 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 2004, 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H -/* Special invocation convention: - - Inside glibc header files. - - On OSF/1 5.1 we have a sequence of nested includes - -> -> -> -> - -> -> -> . - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STDIO_H - -/* Suppress macOS deprecation warnings for sprintf and vsprintf. */ -#if (defined __APPLE__ && defined __MACH__) && !defined _POSIX_C_SOURCE -# ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -# include -# endif -# if (defined MAC_OS_X_VERSION_MIN_REQUIRED \ - && 130000 <= MAC_OS_X_VERSION_MIN_REQUIRED) -# define _POSIX_C_SOURCE 200809L -# define _GL_DEFINED__POSIX_C_SOURCE -# endif -#endif - -#define _GL_ALREADY_INCLUDING_STDIO_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#undef _GL_ALREADY_INCLUDING_STDIO_H - -#ifdef _GL_DEFINED__POSIX_C_SOURCE -# undef _GL_DEFINED__POSIX_C_SOURCE -# undef _POSIX_C_SOURCE -#endif - -#ifndef _GL_STDIO_H -#define _GL_STDIO_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_FORMAT, - _GL_ATTRIBUTE_MALLOC, _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOTHROW, - GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get va_list. Needed on many systems, including glibc 2.8. */ -#include - -#include - -/* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 - and eglibc 2.11.2. - May also define off_t to a 64-bit type on native Windows. - Also defines off64_t on macOS, NetBSD, OpenBSD, MSVC, Cygwin, Haiku. */ -#include - -/* Solaris 10 and NetBSD 7.0 declare renameat in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ - && ! defined __GLIBC__ -# include -#endif - -/* Android 4.3 declares renameat in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ - && ! defined __GLIBC__ -# include -#endif - -/* MSVC declares 'perror' in , not in . We must include - it before we #define perror rpl_perror. */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (IN_PARTED_GNULIB_TESTS || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ -# include -#endif - -/* MSVC declares 'remove' in , not in . We must include - it before we #define remove rpl_remove. */ -/* MSVC declares 'rename' in , not in . We must include - it before we #define rename rpl_rename. */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || 0 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ -# include -#endif - - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 && !defined __clang__ -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The __-protected variants of the attributes 'format' and 'printf' are - accepted by gcc versions 2.6.4 (effectively 2.7) and later. - We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because - gnulib and libintl do '#define printf __printf__' when they override - the 'printf' function. */ -#ifndef _GL_ATTRIBUTE_FORMAT -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -# else -# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* An __attribute__ __format__ specifier for a function that takes a format - string and arguments, where the format string directives are the ones - standardized by ISO C99 and POSIX. - _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ -/* __gnu_printf__ is supported in GCC >= 4.4. */ -#if (__GNUC__ + (__GNUC_MINOR__ >= 4) > 4) && !defined __clang__ -# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ -#else -# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ -#endif - -/* An __attribute__ __format__ specifier for a function that takes a format - string and arguments, where the format string directives are the ones of the - system printf(), rather than the ones standardized by ISO C99 and POSIX. - _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ -/* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to - the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates - whether this change is effective. On older mingw, it is not. */ -#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU -# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD -#else -# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ -#endif - -/* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD - indicates to GCC that the function takes a format string and arguments, - where the format string directives are the ones standardized by ISO C99 - and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) - -/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, - except that it indicates to GCC that the supported format string directives - are the ones of the system printf(), rather than the ones standardized by - ISO C99 and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) - -/* _GL_ATTRIBUTE_FORMAT_SCANF - indicates to GCC that the function takes a format string and arguments, - where the format string directives are the ones standardized by ISO C99 - and POSIX. */ -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) -# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) -#else -# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) -#endif - -/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, - except that it indicates to GCC that the supported format string directives - are the ones of the system scanf(), rather than the ones standardized by - ISO C99 and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Macros for stringification. */ -#define _GL_STDIO_STRINGIZE(token) #token -#define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) - -/* When also using extern inline, suppress the use of static inline in - standard headers of problematic Apple configurations, as Libc at - least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., - . - Perhaps Apple will fix this some day. */ -#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ - && defined __GNUC__ && defined __STDC__) -# undef putc_unlocked -#endif - - -/* Maximum number of characters produced by printing a NaN value. */ -#ifndef _PRINTF_NAN_LEN_MAX -# if defined __FreeBSD__ || defined __DragonFly__ \ - || defined __NetBSD__ \ - || (defined __APPLE__ && defined __MACH__) -/* On BSD systems, a NaN value prints as just "nan", without a sign. */ -# define _PRINTF_NAN_LEN_MAX 3 -# elif (__GLIBC__ >= 2) || MUSL_LIBC || defined __OpenBSD__ || defined __sun || defined __CYGWIN__ -/* glibc, musl libc, OpenBSD, Solaris libc, and Cygwin produce "[-]nan". */ -# define _PRINTF_NAN_LEN_MAX 4 -# elif defined _AIX -/* AIX produces "[-]NaNQ". */ -# define _PRINTF_NAN_LEN_MAX 5 -# elif defined _WIN32 && !defined __CYGWIN__ -/* On native Windows, the output can be: - - with MSVC ucrt: "[-]nan" or "[-]nan(ind)" or "[-]nan(snan)", - - with mingw: "[-]1.#IND" or "[-]1.#QNAN". */ -# define _PRINTF_NAN_LEN_MAX 10 -# elif defined __sgi -/* On IRIX, the output typically is "[-]nan0xNNNNNNNN" with 8 hexadecimal - digits. */ -# define _PRINTF_NAN_LEN_MAX 14 -# else -/* We don't know, but 32 should be a safe maximum. */ -# define _PRINTF_NAN_LEN_MAX 32 -# endif -#endif - - -#if 0 -/* Prints formatted output to file descriptor FD. - Returns the number of bytes written to the file descriptor. Upon - failure, returns -1 with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure codes are ENOMEM - and the possible failure codes from write(), excluding EINTR. */ -_GL_FUNCDECL_SYS (dzprintf, off64_t, - (int fd, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_SYS (dzprintf, off64_t, - (int fd, const char *restrict format, ...)); -#endif - -#if 0 -/* Prints formatted output to file descriptor FD. - Returns the number of bytes written to the file descriptor. Upon - failure, returns a negative value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define dprintf rpl_dprintf -# endif -_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (dprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef dprintf -# if HAVE_RAW_DECL_DPRINTF -_GL_WARN_ON_USE (dprintf, "dprintf is unportable - " - "use gnulib module dprintf for portability"); -# endif -#endif - -#if 0 -/* Close STREAM and its underlying file descriptor. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fclose rpl_fclose -# endif -_GL_FUNCDECL_RPL (fclose, int, (FILE *stream), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); -# else -_GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fclose); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fclose -/* Assume fclose is always declared. */ -_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " - "use gnulib module fclose for portable POSIX compliance"); -#endif - -#if 1 -/* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is - not required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcloseall -# define fcloseall _fcloseall -# endif -_GL_CXXALIAS_MDA (fcloseall, int, (void)); -# else -# if 0 -# if defined __FreeBSD__ || defined __DragonFly__ -_GL_CXXALIAS_SYS (fcloseall, void, (void)); -# else -_GL_CXXALIAS_SYS (fcloseall, int, (void)); -# endif -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (fcloseall); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen rpl_fdopen -# endif -_GL_FUNCDECL_RPL (fdopen, FILE *, - (int fd, const char *mode), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen _fdopen -# endif -_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); -# else -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC - _GL_ATTRIBUTE_NODISCARD) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC - _GL_ATTRIBUTE_NODISCARD); -# endif -# endif -_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); -# endif -_GL_CXXALIASWARN (fdopen); -#else -# if 0 && (__GNUC__ >= 11 && !defined __clang__) && !defined fdopen -/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef fdopen -/* Assume fdopen is always declared. */ -_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " - "use gnulib module fdopen for portability"); -# elif 1 -/* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fdopen always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen _fdopen -# endif -_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); -# else -_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); -# endif -_GL_CXXALIASWARN (fdopen); -# endif -#endif - -#if 0 -/* Flush all pending data on STREAM according to POSIX rules. Both - output and seekable input streams are supported. - Note! LOSS OF DATA can occur if fflush is applied on an input stream - that is _not_seekable_ or on an update stream that is _not_seekable_ - and in which the most recent operation was input. Seekability can - be tested with lseek(fileno(fp),0,SEEK_CUR). */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fflush rpl_fflush -# endif -_GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream), ); -_GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); -# else -_GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fflush); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fflush -/* Assume fflush is always declared. */ -_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " - "use gnulib module fflush for portable POSIX compliance"); -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fgetc -# define fgetc rpl_fgetc -# endif -_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); -# else -_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fgetc); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fgets -# define fgets rpl_fgets -# endif -_GL_FUNCDECL_RPL (fgets, char *, - (char *restrict s, int n, FILE *restrict stream), - _GL_ARG_NONNULL ((1, 3)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fgets, char *, - (char *restrict s, int n, FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fgets, char *, - (char *restrict s, int n, FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fgets); -# endif -#endif - -#if 1 -/* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fileno always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fileno -# define fileno _fileno -# endif -_GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (fileno); -#endif - -#if 0 -# if (0 && 0) \ - || (0 && 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fopen -# define fopen rpl_fopen -# endif -_GL_FUNCDECL_RPL (fopen, FILE *, - (const char *restrict filename, const char *restrict mode), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fopen, FILE *, - (const char *restrict filename, const char *restrict mode)); -# else -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fopen); -# endif -#else -# if 0 && (__GNUC__ >= 11 && !defined __clang__) && !defined fopen -/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef fopen -/* Assume fopen is always declared. */ -_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " - "use gnulib module fopen for portability"); -# endif -#endif - -#if 0 -/* Prints formatted output to stream FP. - Returns the number of bytes written to the stream. Upon failure, - returns -1 with the stream's error indicator set. - Failure cause EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure causes are ENOMEM - and the possible failure causes from fwrite(). */ -_GL_FUNCDECL_SYS (fzprintf, off64_t, - (FILE *restrict fp, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (fzprintf, off64_t, - (FILE *restrict fp, const char *restrict format, ...)); -#endif - -#if 0 || 1 -/* Prints formatted output to stream FP. - Returns the number of bytes written to the stream. Upon failure, - returns a negative value with the stream's error indicator set. */ -# if (0 && 0) \ - || (1 && 0 && (0 || 0)) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fprintf rpl_fprintf -# endif -# define GNULIB_overrides_fprintf 1 -# if 0 || 0 -_GL_FUNCDECL_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# else -_GL_FUNCDECL_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...)); -# else -_GL_CXXALIAS_SYS (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fprintf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_fprintf -# undef fprintf -# endif -/* Assume fprintf is always declared. */ -_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " - "use gnulib module fprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 0 -/* Discard all pending buffered I/O data on STREAM. - STREAM must not be wide-character oriented. - When discarding pending output, the file position is set back to where it - was before the write calls. When discarding pending input, the file - position is advanced to match the end of the previously read input. - Return 0 if successful. Upon error, return -1 and set errno. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fpurge rpl_fpurge -# endif -_GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); -# else -# if !1 -_GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fpurge); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fpurge -# if HAVE_RAW_DECL_FPURGE -_GL_WARN_ON_USE (fpurge, "fpurge is not always present - " - "use gnulib module fpurge for portability"); -# endif -#endif - -#if 1 -# if 0 && (0 || 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fputc -# define fputc rpl_fputc -# endif -_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream), _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); -# else -_GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fputc); -# endif -#endif - -#if 1 -# if 0 && (0 || 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fputs -# define fputs rpl_fputs -# endif -_GL_FUNCDECL_RPL (fputs, int, - (const char *restrict string, FILE *restrict stream), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (fputs, int, - (const char *restrict string, FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fputs, int, - (const char *restrict string, FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fputs); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fread -# define fread rpl_fread -# endif -_GL_FUNCDECL_RPL (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream), - _GL_ARG_NONNULL ((4)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fread); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef freopen -# define freopen rpl_freopen -# endif -_GL_FUNCDECL_RPL (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream), - _GL_ARG_NONNULL ((2, 3)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (freopen); -# endif -#elif defined GNULIB_POSIXCHECK -# undef freopen -/* Assume freopen is always declared. */ -_GL_WARN_ON_USE (freopen, - "freopen on native Windows platforms is not POSIX compliant - " - "use gnulib module freopen for portability"); -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fscanf -# define fscanf rpl_fscanf -# endif -_GL_FUNCDECL_RPL (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...)); -# else -_GL_CXXALIAS_SYS (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fscanf); -# endif -#endif - - -/* Set up the following warnings, based on which modules are in use. - GNU Coding Standards discourage the use of fseek, since it imposes - an arbitrary limitation on some 32-bit hosts. Remember that the - fseek module depends on the fseeko module, so we only have three - cases to consider: - - 1. The developer is not using either module. Issue a warning under - GNULIB_POSIXCHECK for both functions, to remind them that both - functions have bugs on some systems. _GL_NO_LARGE_FILES has no - impact on this warning. - - 2. The developer is using both modules. They may be unaware of the - arbitrary limitations of fseek, so issue a warning under - GNULIB_POSIXCHECK. On the other hand, they may be using both - modules intentionally, so the developer can define - _GL_NO_LARGE_FILES in the compilation units where the use of fseek - is safe, to silence the warning. - - 3. The developer is using the fseeko module, but not fseek. Gnulib - guarantees that fseek will still work around platform bugs in that - case, but we presume that the developer is aware of the pitfalls of - fseek and was trying to avoid it, so issue a warning even when - GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be - defined to silence the warning in particular compilation units. - In C++ compilations with GNULIB_NAMESPACE, in order to avoid that - fseek gets defined as a macro, it is recommended that the developer - uses the fseek module, even if he is not calling the fseek function. - - Most gnulib clients that perform stream operations should fall into - category 3. */ - -#if 0 -# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES -# define _GL_FSEEK_WARN /* Category 2, above. */ -# undef fseek -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fseek -# define fseek rpl_fseek -# endif -_GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); -# else -_GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fseek); -# endif -#endif - -#if 0 -# if !0 && !defined _GL_NO_LARGE_FILES -# define _GL_FSEEK_WARN /* Category 3, above. */ -# undef fseek -# endif -# if 0 -/* Provide an fseeko function that is aware of a preceding fflush(), and which - detects pipes. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fseeko -# define fseeko rpl_fseeko -# endif -_GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (fseeko); -#elif defined GNULIB_POSIXCHECK -# define _GL_FSEEK_WARN /* Category 1, above. */ -# undef fseek -# undef fseeko -# if HAVE_RAW_DECL_FSEEKO -_GL_WARN_ON_USE (fseeko, "fseeko is unportable - " - "use gnulib module fseeko for portability"); -# endif -#endif - -#ifdef _GL_FSEEK_WARN -# undef _GL_FSEEK_WARN -/* Here, either fseek is undefined (but C89 guarantees that it is - declared), or it is defined as rpl_fseek (declared above). */ -_GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " - "on 32-bit platforms - " - "use fseeko function for handling of large files"); -#endif - - -/* ftell, ftello. See the comments on fseek/fseeko. */ - -#if 0 -# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES -# define _GL_FTELL_WARN /* Category 2, above. */ -# undef ftell -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ftell -# define ftell rpl_ftell -# endif -_GL_FUNCDECL_RPL (ftell, long, (FILE *fp), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); -# else -_GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ftell); -# endif -#endif - -#if 0 -# if !0 && !defined _GL_NO_LARGE_FILES -# define _GL_FTELL_WARN /* Category 3, above. */ -# undef ftell -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ftello -# define ftello rpl_ftello -# endif -_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); -# endif -_GL_CXXALIASWARN (ftello); -#elif defined GNULIB_POSIXCHECK -# define _GL_FTELL_WARN /* Category 1, above. */ -# undef ftell -# undef ftello -# if HAVE_RAW_DECL_FTELLO -_GL_WARN_ON_USE (ftello, "ftello is unportable - " - "use gnulib module ftello for portability"); -# endif -#endif - -#ifdef _GL_FTELL_WARN -# undef _GL_FTELL_WARN -/* Here, either ftell is undefined (but C89 guarantees that it is - declared), or it is defined as rpl_ftell (declared above). */ -_GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " - "on 32-bit platforms - " - "use ftello function for handling of large files"); -#endif - - -#if 1 -# if 0 && (0 || 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fwrite -# define fwrite rpl_fwrite -# endif -_GL_FUNCDECL_RPL (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream), - _GL_ARG_NONNULL ((1, 4))); -_GL_CXXALIAS_RPL (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); - -/* Work around bug 11959 when fortifying glibc 2.4 through 2.15 - , - which sometimes causes an unwanted diagnostic for fwrite calls. - This affects only function declaration attributes under certain - versions of gcc and clang, and is not needed for C++. */ -# if (0 < __USE_FORTIFY_LEVEL \ - && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ - && (3 < __GNUC__ + (4 <= __GNUC_MINOR__) || defined __clang__) \ - && !defined __cplusplus) -# undef fwrite -# undef fwrite_unlocked -_GL_EXTERN_C size_t __REDIRECT (rpl_fwrite, - (const void *__restrict, size_t, size_t, - FILE *__restrict), - fwrite); -_GL_EXTERN_C size_t __REDIRECT (rpl_fwrite_unlocked, - (const void *__restrict, size_t, size_t, - FILE *__restrict), - fwrite_unlocked); -# define fwrite rpl_fwrite -# define fwrite_unlocked rpl_fwrite_unlocked -# endif -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fwrite); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getc -# define getc rpl_fgetc -# endif -_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); -# else -_GL_CXXALIAS_SYS (getc, int, (FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getc); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getchar -# define getchar rpl_getchar -# endif -_GL_FUNCDECL_RPL (getchar, int, (void), ); -_GL_CXXALIAS_RPL (getchar, int, (void)); -# else -_GL_CXXALIAS_SYS (getchar, int, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getchar); -# endif -#endif - -#if 0 -/* Read input, up to (and including) the next occurrence of DELIMITER, from - STREAM, store it in *LINEPTR (and NUL-terminate it). - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdelim -# define getdelim rpl_getdelim -# endif -_GL_FUNCDECL_RPL (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream), - _GL_ARG_NONNULL ((1, 2, 4)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream)); -# else -# if !1 -_GL_FUNCDECL_SYS (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream), - _GL_ARG_NONNULL ((1, 2, 4)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getdelim); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getdelim -# if HAVE_RAW_DECL_GETDELIM -_GL_WARN_ON_USE (getdelim, "getdelim is unportable - " - "use gnulib module getdelim for portability"); -# endif -#endif - -#if 0 -/* Read a line, up to (and including) the next newline, from STREAM, store it - in *LINEPTR (and NUL-terminate it). - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getline -# define getline rpl_getline -# endif -_GL_FUNCDECL_RPL (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream), - _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream)); -# else -# if !1 -_GL_FUNCDECL_SYS (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream), - _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (getline); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getline -# if HAVE_RAW_DECL_GETLINE -_GL_WARN_ON_USE (getline, "getline is unportable - " - "use gnulib module getline for portability"); -# endif -#endif - -/* It is very rare that the developer ever has full control of stdin, - so any use of gets warrants an unconditional warning; besides, C11 - removed it. */ -#undef gets -#if HAVE_RAW_DECL_GETS && !defined __cplusplus -_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -#endif - -#if 1 -/* On native Windows, map 'getw' to '_getw', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getw always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getw -# define getw _getw -# endif -_GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); -# else -# if 0 -# if defined __APPLE__ && defined __MACH__ -/* The presence of the declaration depends on _POSIX_C_SOURCE. */ -_GL_FUNCDECL_SYS (getw, int, (FILE *restrict stream), ); -# endif -_GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); -# endif -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getw); -# endif -#endif - -#if 0 -struct obstack; -/* Grows an obstack with formatted output. Returns the number of - bytes added to OBS. No trailing nul byte is added, and the - object should be closed with obstack_finish before use. - Upon memory allocation error, calls obstack_alloc_failed_handler. - Upon other error, returns -1 with errno set. - - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is through - obstack_alloc_failed_handler. */ -_GL_FUNCDECL_SYS (obstack_zprintf, ptrdiff_t, - (struct obstack *obs, const char *format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (obstack_zprintf, ptrdiff_t, - (struct obstack *obs, const char *format, ...)); -_GL_FUNCDECL_SYS (obstack_vzprintf, ptrdiff_t, - (struct obstack *obs, const char *format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (obstack_vzprintf, ptrdiff_t, - (struct obstack *obs, const char *format, va_list args)); -#endif - -#if 0 || 0 -struct obstack; -/* Grows an obstack with formatted output. Returns the number of - bytes added to OBS. No trailing nul byte is added, and the - object should be closed with obstack_finish before use. - Upon memory allocation error, calls obstack_alloc_failed_handler. - Upon other error, returns -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define obstack_printf rpl_obstack_printf -# endif -_GL_FUNCDECL_RPL (obstack_printf, int, - (struct obstack *obs, const char *format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (obstack_printf, int, - (struct obstack *obs, const char *format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (obstack_printf, int, - (struct obstack *obs, const char *format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (obstack_printf, int, - (struct obstack *obs, const char *format, ...)); -# endif -_GL_CXXALIASWARN (obstack_printf); -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define obstack_vprintf rpl_obstack_vprintf -# endif -_GL_FUNCDECL_RPL (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args)); -# endif -_GL_CXXALIASWARN (obstack_vprintf); -#endif - -#if 0 -# if !1 -_GL_FUNCDECL_SYS (pclose, int, (FILE *stream), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); -_GL_CXXALIASWARN (pclose); -#elif defined GNULIB_POSIXCHECK -# undef pclose -# if HAVE_RAW_DECL_PCLOSE -_GL_WARN_ON_USE (pclose, "pclose is unportable - " - "use gnulib module pclose for more portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -/* Print a message to standard error, describing the value of ERRNO, - (if STRING is not NULL and not empty) prefixed with STRING and ": ", - and terminated with a newline. */ -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define perror rpl_perror -# endif -_GL_FUNCDECL_RPL (perror, void, (const char *string), ); -_GL_CXXALIAS_RPL (perror, void, (const char *string)); -# else -_GL_CXXALIAS_SYS (perror, void, (const char *string)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (perror); -# endif -#elif defined GNULIB_POSIXCHECK -# undef perror -/* Assume perror is always declared. */ -_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " - "use gnulib module perror for portability"); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef popen -# define popen rpl_popen -# endif -_GL_FUNCDECL_RPL (popen, FILE *, - (const char *cmd, const char *mode), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); -# else -# if !1 || (__GNUC__ >= 11 && !defined __clang__) -_GL_FUNCDECL_SYS (popen, FILE *, - (const char *cmd, const char *mode), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); -# endif -_GL_CXXALIASWARN (popen); -#else -# if 0 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined popen -/* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose. */ -_GL_FUNCDECL_SYS (popen, FILE *, - (const char *cmd, const char *mode), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1) - _GL_ATTRIBUTE_MALLOC); -# endif -# if defined GNULIB_POSIXCHECK -# undef popen -# if HAVE_RAW_DECL_POPEN -_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " - "use gnulib module popen or pipe for more portability"); -# endif -# endif -#endif - -#if 0 -/* Prints formatted output to standard output. - Returns the number of bytes written to standard output. Upon failure, - returns -1 with stdout's error indicator set. - Failure cause EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure causes are ENOMEM - and the possible failure causes from fwrite(). */ -_GL_FUNCDECL_SYS (zprintf, off64_t, (const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (zprintf, off64_t, (const char *restrict format, ...)); -#endif - -#if 0 || 1 -/* Prints formatted output to standard output. - Returns the number of bytes written to standard output. Upon failure, - returns a negative value with stdout's error indicator set. */ -# if (0 && 0) \ - || (1 && 0 && (0 || 0)) -# if defined __GNUC__ || defined __clang__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -/* Don't break __attribute__((format(printf,M,N))). */ -# define printf __printf__ -# endif -# if 0 || 0 -_GL_FUNCDECL_RPL_1 (__printf__, int, - (const char *restrict format, ...) - __asm__ ( - _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) - _GL_ARG_NONNULL ((1))); -# else -_GL_FUNCDECL_RPL_1 (__printf__, int, - (const char *restrict format, ...) - __asm__ ( - _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)), - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); -# else -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define printf rpl_printf -# endif -_GL_FUNCDECL_RPL (printf, int, - (const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); -# endif -# define GNULIB_overrides_printf 1 -# else -_GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (printf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_printf -# undef printf -# endif -/* Assume printf is always declared. */ -_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " - "use gnulib module printf-posix for portable " - "POSIX compliance"); -#endif - -#if 1 -# if 0 && (0 || 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putc -# define putc rpl_fputc -# endif -_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream), _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); -# else -_GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (putc); -# endif -#endif - -#if 1 -# if 0 && (0 || 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putchar -# define putchar rpl_putchar -# endif -_GL_FUNCDECL_RPL (putchar, int, (int c), ); -_GL_CXXALIAS_RPL (putchar, int, (int c)); -# else -_GL_CXXALIAS_SYS (putchar, int, (int c)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (putchar); -# endif -#endif - -#if 1 -# if 0 && (0 || 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef puts -# define puts rpl_puts -# endif -_GL_FUNCDECL_RPL (puts, int, (const char *string), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (puts, int, (const char *string)); -# else -_GL_CXXALIAS_SYS (puts, int, (const char *string)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (puts); -# endif -#endif - -#if 1 -/* On native Windows, map 'putw' to '_putw', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::putw always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putw -# define putw _putw -# endif -_GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); -# else -# if 0 -# if defined __APPLE__ && defined __MACH__ -/* The presence of the declaration depends on _POSIX_C_SOURCE. */ -_GL_FUNCDECL_SYS (putw, int, (int w, FILE *restrict stream), ); -# endif -_GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); -# endif -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (putw); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef remove -# define remove rpl_remove -# endif -_GL_FUNCDECL_RPL (remove, int, (const char *name), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (remove, int, (const char *name)); -# else -_GL_CXXALIAS_SYS (remove, int, (const char *name)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (remove); -# endif -#elif defined GNULIB_POSIXCHECK -# undef remove -/* Assume remove is always declared. */ -_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " - "use gnulib module remove for more portability"); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rename -# define rename rpl_rename -# endif -_GL_FUNCDECL_RPL (rename, int, - (const char *old_filename, const char *new_filename), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (rename, int, - (const char *old_filename, const char *new_filename)); -# else -_GL_CXXALIAS_SYS (rename, int, - (const char *old_filename, const char *new_filename)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (rename); -# endif -#elif defined GNULIB_POSIXCHECK -# undef rename -/* Assume rename is always declared. */ -_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " - "use gnulib module rename for more portability"); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef renameat -# define renameat rpl_renameat -# endif -_GL_FUNCDECL_RPL (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2), - _GL_ARG_NONNULL ((2, 4))); -_GL_CXXALIAS_RPL (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2)); -# else -# if !1 -_GL_FUNCDECL_SYS (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2), - _GL_ARG_NONNULL ((2, 4))); -# endif -_GL_CXXALIAS_SYS (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2)); -# endif -_GL_CXXALIASWARN (renameat); -#elif defined GNULIB_POSIXCHECK -# undef renameat -# if HAVE_RAW_DECL_RENAMEAT -_GL_WARN_ON_USE (renameat, "renameat is not portable - " - "use gnulib module renameat for portability"); -# endif -#endif - -#if 1 -# if 0 && 0 -# if defined __GNUC__ || defined __clang__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef scanf -/* Don't break __attribute__((format(scanf,M,N))). */ -# define scanf __scanf__ -# endif -_GL_FUNCDECL_RPL_1 (__scanf__, int, - (const char *restrict format, ...) - __asm__ ( - _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)), - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); -# else -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef scanf -# define scanf rpl_scanf -# endif -_GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); -# endif -# else -_GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (scanf); -# endif -#endif - -#if 0 -/* Prints formatted output to string STR. Similar to sprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns -1 with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. */ -_GL_FUNCDECL_SYS (snzprintf, ptrdiff_t, - (char *restrict str, size_t size, - const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) - _GL_ARG_NONNULL ((3))); -_GL_CXXALIAS_SYS (snzprintf, ptrdiff_t, - (char *restrict str, size_t size, - const char *restrict format, ...)); -#endif - -#if 0 -/* Prints formatted output to string STR. Similar to sprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns a negative value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define snprintf rpl_snprintf -# endif -# define GNULIB_overrides_snprintf 1 -_GL_FUNCDECL_RPL (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) - _GL_ARG_NONNULL ((3))); -_GL_CXXALIAS_RPL (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) - _GL_ARG_NONNULL ((3))); -# endif -_GL_CXXALIAS_SYS (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (snprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef snprintf -# if HAVE_RAW_DECL_SNPRINTF -_GL_WARN_ON_USE (snprintf, "snprintf is unportable - " - "use gnulib module snprintf for portability"); -# endif -#endif - -#if 0 -/* Prints formatted output to string STR. - Returns the string length of the formatted string. Upon failure, - returns -1 with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. */ -_GL_FUNCDECL_SYS (szprintf, ptrdiff_t, - (char *restrict str, - const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (szprintf, ptrdiff_t, - (char *restrict str, - const char *restrict format, ...)); -#endif - -/* Some people would argue that all sprintf uses should be warned about - (for example, OpenBSD issues a link warning for it), - since it can cause security holes due to buffer overruns. - However, we believe that sprintf can be used safely, and is more - efficient than snprintf in those safe cases; and as proof of our - belief, we use sprintf in several gnulib modules. So this header - intentionally avoids adding a warning to sprintf except when - GNULIB_POSIXCHECK is defined. */ - -#if 0 -/* Prints formatted output to string STR. - Returns the string length of the formatted string. Upon failure, - returns a negative value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define sprintf rpl_sprintf -# endif -# define GNULIB_overrides_sprintf 1 -_GL_FUNCDECL_RPL (sprintf, int, - (char *restrict str, const char *restrict format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (sprintf, int, - (char *restrict str, const char *restrict format, ...)); -# else -_GL_CXXALIAS_SYS (sprintf, int, - (char *restrict str, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (sprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef sprintf -/* Assume sprintf is always declared. */ -_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " - "use gnulib module sprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 1 -/* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::tempnam always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tempnam -# define tempnam _tempnam -# endif -_GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); -# else -_GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); -# endif -_GL_CXXALIASWARN (tempnam); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define tmpfile rpl_tmpfile -# endif -_GL_FUNCDECL_RPL (tmpfile, FILE *, (void), - _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); -# else -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (tmpfile, FILE *, (void), - _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC - _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (tmpfile); -# endif -#else -# if 0 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined tmpfile -/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (tmpfile, FILE *, (void), - _GL_ATTRIBUTE_DEALLOC (fclose, 1) - _GL_ATTRIBUTE_MALLOC); -# endif -# if defined GNULIB_POSIXCHECK -# undef tmpfile -# if HAVE_RAW_DECL_TMPFILE -_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " - "use gnulib module tmpfile for portability"); -# endif -# endif -#endif - -#if 0 -/* Prints formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, it stores the address of the string in - *RESULT and returns the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, it returns -1 - with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. */ -_GL_FUNCDECL_SYS (aszprintf, ptrdiff_t, - (char **result, const char *format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2)) - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_SYS (aszprintf, ptrdiff_t, - (char **result, const char *format, ...)); -_GL_FUNCDECL_SYS (vaszprintf, ptrdiff_t, - (char **result, const char *format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2)) - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_SYS (vaszprintf, ptrdiff_t, - (char **result, const char *format, va_list args)); -#endif - -#if 0 -/* Write formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, store the address of the string in - *RESULT and return the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define asprintf rpl_asprintf -# endif -# define GNULIB_overrides_asprintf -_GL_FUNCDECL_RPL (asprintf, int, - (char **result, const char *format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2)) - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (asprintf, int, - (char **result, const char *format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (asprintf, int, - (char **result, const char *format, ...), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2)) - _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (asprintf, int, - (char **result, const char *format, ...)); -# endif -_GL_CXXALIASWARN (asprintf); -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vasprintf rpl_vasprintf -# endif -# define GNULIB_overrides_vasprintf 1 -_GL_FUNCDECL_RPL (vasprintf, int, - (char **result, const char *format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2)) - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (vasprintf, int, - (char **result, const char *format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (vasprintf, int, - (char **result, const char *format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2)) - _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (vasprintf, int, - (char **result, const char *format, va_list args)); -# endif -_GL_CXXALIASWARN (vasprintf); -#endif - -#if 0 -/* Prints formatted output to file descriptor FD. - Returns the number of bytes written to the file descriptor. Upon - failure, returns -1 with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure codes are ENOMEM - and the possible failure codes from write(), excluding EINTR. */ -_GL_FUNCDECL_SYS (vdzprintf, off64_t, - (int fd, const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_SYS (vdzprintf, off64_t, - (int fd, const char *restrict format, va_list args)); -#endif - -#if 0 -/* Prints formatted output to file descriptor FD. - Returns the number of bytes written to the file descriptor. Upon - failure, returns a negative value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vdprintf rpl_vdprintf -# endif -_GL_FUNCDECL_RPL (vdprintf, int, - (int fd, const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (vdprintf, int, - (int fd, const char *restrict format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (vdprintf, int, - (int fd, const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); -# endif -/* Need to cast, because on Solaris, the third parameter will likely be - __va_list args. */ -_GL_CXXALIAS_SYS_CAST (vdprintf, int, - (int fd, const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vdprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vdprintf -# if HAVE_RAW_DECL_VDPRINTF -_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " - "use gnulib module vdprintf for portability"); -# endif -#endif - -#if 0 -/* Prints formatted output to stream FP. - Returns the number of bytes written to the stream. Upon failure, - returns -1 with the stream's error indicator set. - Failure cause EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure causes are ENOMEM - and the possible failure causes from fwrite(). */ -_GL_FUNCDECL_SYS (vfzprintf, off64_t, - (FILE *restrict fp, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (vfzprintf, off64_t, - (FILE *restrict fp, - const char *restrict format, va_list args)); -#endif - -#if 0 || 1 -/* Prints formatted output to stream FP. - Returns the number of bytes written to the stream. Upon failure, - returns a negative value with the stream's error indicator set. */ -# if (0 && 0) \ - || (1 && 0 && (0 || 0)) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vfprintf rpl_vfprintf -# endif -# define GNULIB_overrides_vfprintf 1 -# if 0 -_GL_FUNCDECL_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# else -_GL_FUNCDECL_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args)); -# else -/* Need to cast, because on Solaris, the third parameter is - __va_list args - and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vfprintf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_vfprintf -# undef vfprintf -# endif -/* Assume vfprintf is always declared. */ -_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " - "use gnulib module vfprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 0 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef vfscanf -# define vfscanf rpl_vfscanf -# endif -_GL_FUNCDECL_RPL (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args)); -# else -_GL_CXXALIAS_SYS (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vfscanf); -# endif -#endif - -#if 0 -/* Prints formatted output to standard output. - Returns the number of bytes written to standard output. Upon failure, - returns -1 with stdout's error indicator set. - Failure cause EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure causes are ENOMEM - and the possible failure causes from fwrite(). */ -_GL_FUNCDECL_SYS (vzprintf, off64_t, - (const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (vzprintf, off64_t, - (const char *restrict format, va_list args)); -#endif - -#if 0 || 1 -/* Prints formatted output to standard output. - Returns the number of bytes written to standard output. Upon failure, - returns a negative value with stdout's error indicator set. */ -# if (0 && 0) \ - || (1 && 0 && (0 || 0)) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vprintf rpl_vprintf -# endif -# define GNULIB_overrides_vprintf 1 -# if 0 || 0 -_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) - _GL_ARG_NONNULL ((1))); -# else -_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); -# else -/* Need to cast, because on Solaris, the second parameter is - __va_list args - and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vprintf, int, - (const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vprintf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_vprintf -# undef vprintf -# endif -/* Assume vprintf is always declared. */ -_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " - "use gnulib module vprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 0 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef vscanf -# define vscanf rpl_vscanf -# endif -_GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); -# else -_GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vscanf); -# endif -#endif - -#if 0 -/* Prints formatted output to string STR. Similar to sprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns -1 with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. */ -_GL_FUNCDECL_SYS (vsnzprintf, ptrdiff_t, - (char *restrict str, size_t size, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) - _GL_ARG_NONNULL ((3))); -_GL_CXXALIAS_SYS (vsnzprintf, ptrdiff_t, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); -#endif - -#if 0 -/* Prints formatted output to string STR. Similar to vsprintf, but the - additional parameter SIZE limits how much is written into STR. - STR may be NULL, in which case nothing will be written. - Returns the string length of the formatted string (which may be larger - than SIZE). Upon failure, returns a negative value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vsnprintf rpl_vsnprintf -# endif -# define GNULIB_overrides_vsnprintf 1 -_GL_FUNCDECL_RPL (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) - _GL_ARG_NONNULL ((3))); -_GL_CXXALIAS_RPL (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) - _GL_ARG_NONNULL ((3))); -# endif -_GL_CXXALIAS_SYS (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vsnprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vsnprintf -# if HAVE_RAW_DECL_VSNPRINTF -_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " - "use gnulib module vsnprintf for portability"); -# endif -#endif - -#if 0 -/* Prints formatted output to string STR. - Returns the string length of the formatted string. Upon failure, - returns -1 with errno set. - Failure code EOVERFLOW can only occur when a width > INT_MAX is used. - Therefore, if the format string is valid and does not use %ls/%lc - directives nor widths, the only possible failure code is ENOMEM. */ -_GL_FUNCDECL_SYS (vszprintf, ptrdiff_t, - (char *restrict str, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (vszprintf, ptrdiff_t, - (char *restrict str, - const char *restrict format, va_list args)); -#endif - -#if 0 -/* Prints formatted output to string STR. - Returns the string length of the formatted string. Upon failure, - returns a negative value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vsprintf rpl_vsprintf -# endif -# define GNULIB_overrides_vsprintf 1 -_GL_FUNCDECL_RPL (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args), - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args)); -# else -/* Need to cast, because on Solaris, the third parameter is - __va_list args - and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vsprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vsprintf -/* Assume vsprintf is always declared. */ -_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " - "use gnulib module vsprintf-posix for portable " - "POSIX compliance"); -#endif - -#endif /* _GL_STDIO_H */ -#endif /* _GL_STDIO_H */ -#endif diff --git a/jni/parted/lib/stdlib.h b/jni/parted/lib/stdlib.h deleted file mode 100755 index fdc7581..0000000 --- a/jni/parted/lib/stdlib.h +++ /dev/null @@ -1,2560 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 1995, 2001-2004, 2006-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if ((defined __need_system_stdlib_h && !defined _GLIBCXX_STDLIB_H) \ - || defined __need_malloc_and_calloc) \ - && !defined __SUNPRO_CC -/* Special invocation conventions inside some gnulib header files, - and inside some glibc header files, respectively. - Do not recognize this special invocation convention when GCC's - c++/11/stdlib.h is being included or has been included. This is needed - to support the use of clang+llvm binaries on Ubuntu 22.04 with - CXX="$clangdir/bin/clang++ -I/usr/include/c++/11 \ - -I/usr/include/x86_64-linux-gnu/c++/11 - -L/usr/lib/gcc/x86_64-linux-gnu/11 - -Wl,-rpath,$clangdir/lib" - because in this case /usr/include/c++/11/stdlib.h (which does not support - the convention) is seen before the gnulib-generated stdlib.h. */ - -#include_next - -/* Make sure that the macros that indicate the special invocation convention - get undefined. This is needed at least on CentOS 7. */ -#undef __need_malloc_and_calloc - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STDLIB_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#ifndef _GL_STDLIB_H -#define _GL_STDLIB_H - -/* This file uses _Noreturn, _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PURE, - GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* NetBSD 5.0 mis-defines NULL. */ -#include - -/* MirBSD 10 defines WEXITSTATUS in , not in . */ -#if 0 && !defined WEXITSTATUS -# include -#endif - -/* Solaris declares getloadavg() in . */ -#if (0 || defined GNULIB_POSIXCHECK) && 0 -/* OpenIndiana has a bug: must be included before - . */ -# include -# include -#endif - -/* Native Windows platforms declare _mktemp() in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include -#endif - -#if IN_PARTED_GNULIB_TESTS - -/* OSF/1 5.1 declares 'struct random_data' in , which is included - from if _REENTRANT is defined. Include it whenever we need - 'struct random_data'. */ -# if 0 -# include -# endif - -# include - -# if !0 -/* Define 'struct random_data'. - But allow multiple gnulib generated replacements to coexist. */ -# if !GNULIB_defined_struct_random_data -struct random_data -{ - int32_t *fptr; /* Front pointer. */ - int32_t *rptr; /* Rear pointer. */ - int32_t *state; /* Array of state values. */ - int rand_type; /* Type of random number generator. */ - int rand_deg; /* Degree of random number generator. */ - int rand_sep; /* Distance between front and rear. */ - int32_t *end_ptr; /* Pointer behind state table. */ -}; -# define GNULIB_defined_struct_random_data 1 -# endif -# endif -#endif - -#if (1 || 0 || 0 || 0 || 0 || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) -/* On Mac OS X 10.3, only declares mkstemp. */ -/* On Mac OS X 10.5, only declares mkstemps. */ -/* On Mac OS X 10.13, only declares mkostemp and mkostemps. */ -/* On Cygwin 1.7.1, only declares getsubopt. */ -/* But avoid namespace pollution on glibc systems and native Windows. */ -# include -#endif - -#if ((0 && 0) || (1 && 0) || (0 && 0) || (1 && 0)) && defined __cplusplus && !defined GNULIB_NAMESPACE && defined __GNUG__ && !defined __clang__ && defined __sun -/* When strtol, strtoll, strtoul, or strtoull is going to be defined as a macro - below, this may cause compilation errors later in the libstdc++ header files - (that are part of GCC), such as: - error: 'rpl_strtol' is not a member of 'std' - To avoid this, include the relevant header files here, before these symbols - get defined as macros. But do so only on Solaris 11 (where it is needed), - not on mingw (where it would cause other compilation errors). */ -# include -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 && !defined __clang__ -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definition of _Noreturn is copied here. */ -/* A C macro for declaring that a function does not return. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif (defined __clang__ && __clang_major__ < 16 \ - && defined _GL_WORK_AROUND_LLVM_BUG_59792) - /* Compile with -D_GL_WORK_AROUND_LLVM_BUG_59792 to work around - that rare LLVM bug, though you may get many false-alarm warnings. */ -# define _Noreturn -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __clang__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere - with proper operation of xargs. */ -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#elif EXIT_FAILURE != 1 -# undef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - - -#if 0 -/* Terminate the current process with the given return code, without running - the 'atexit' handlers. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef _Exit -# define _Exit rpl__Exit -# endif -_GL_FUNCDECL_RPL (_Exit, _Noreturn void, (int status), ); -_GL_CXXALIAS_RPL (_Exit, void, (int status)); -# else -# if !1 -_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status), ); -# endif -_GL_CXXALIAS_SYS (_Exit, void, (int status)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (_Exit); -# endif -#elif defined GNULIB_POSIXCHECK -# undef _Exit -# if HAVE_RAW_DECL__EXIT -_GL_WARN_ON_USE (_Exit, "_Exit is unportable - " - "use gnulib module _Exit for portability"); -# endif -#endif - - -#if 0 -/* Terminates the current process with signal SIGABRT. - Note: While the original abort() function is safe to call in signal handlers, - the overridden abort() function is not. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef abort -# define abort rpl_abort -# endif -_GL_FUNCDECL_RPL (abort, _Noreturn void, (void), ); -_GL_CXXALIAS_RPL (abort, void, (void)); -# else -_GL_CXXALIAS_SYS (abort, void, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (abort); -# endif -#endif - - -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef free -# define free rpl_free -# endif -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_RPL (free, void, (void *ptr), ); -# endif -_GL_CXXALIAS_RPL (free, void, (void *ptr)); -# else -_GL_CXXALIAS_SYS (free, void, (void *ptr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (free); -# endif -#elif defined GNULIB_POSIXCHECK -# undef free -/* Assume free is always declared. */ -_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " - "use gnulib module free for portability"); -#endif - - -/* Allocate memory with indefinite extent and specified alignment. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef aligned_alloc -# define aligned_alloc rpl_aligned_alloc -# endif -_GL_FUNCDECL_RPL (aligned_alloc, void *, - (size_t alignment, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); -# else -# if 1 -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -# endif -# endif -_GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); -# endif -# endif -# if (__GLIBC__ >= 2) && 1 -_GL_CXXALIASWARN (aligned_alloc); -# endif -#else -# if 1 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined aligned_alloc -/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef aligned_alloc -# if HAVE_RAW_DECL_ALIGNED_ALLOC -_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " - "use gnulib module aligned_alloc for portability"); -# endif -# endif -#endif - -#if 0 -/* Parse a signed decimal integer. - Returns the value of the integer. Errors are not detected. */ -# if !1 -_GL_FUNCDECL_SYS (atoll, long long, - (const char *string), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (atoll, long long, (const char *string)); -_GL_CXXALIASWARN (atoll); -#elif defined GNULIB_POSIXCHECK -# undef atoll -# if HAVE_RAW_DECL_ATOLL -_GL_WARN_ON_USE (atoll, "atoll is unportable - " - "use gnulib module atoll for portability"); -# endif -#endif - -#if 1 -# if (1 && 0) \ - || (1 && 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef calloc -# define calloc rpl_calloc -# endif -_GL_FUNCDECL_RPL (calloc, void *, - (size_t nmemb, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); -# else -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -# endif -# endif -_GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (calloc); -# endif -#else -# if 1 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined calloc -/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef calloc -/* Assume calloc is always declared. */ -_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " - "use gnulib module calloc-posix for portability"); -# endif -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define canonicalize_file_name rpl_canonicalize_file_name -# endif -_GL_FUNCDECL_RPL (canonicalize_file_name, char *, - (const char *name), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); -# else -# if !0 || (__GNUC__ >= 11 && !defined __clang__) -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -# endif -# endif -_GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); -# endif -# ifndef GNULIB_defined_canonicalize_file_name -# define GNULIB_defined_canonicalize_file_name \ - (!0 || 0) -# endif -_GL_CXXALIASWARN (canonicalize_file_name); -#else -# if 1 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined canonicalize_file_name -/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or - rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef canonicalize_file_name -# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME -_GL_WARN_ON_USE (canonicalize_file_name, - "canonicalize_file_name is unportable - " - "use gnulib module canonicalize-lgpl for portability"); -# endif -# endif -#endif - -#if 1 -/* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ecvt -# define ecvt _ecvt -# endif -_GL_CXXALIAS_MDA (ecvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# else -# if 0 -_GL_CXXALIAS_SYS (ecvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (ecvt); -# endif -#endif - -#if 1 -/* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcvt -# define fcvt _fcvt -# endif -_GL_CXXALIAS_MDA (fcvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# else -# if 0 -_GL_CXXALIAS_SYS (fcvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (fcvt); -# endif -#endif - -#if 1 -/* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gcvt -# define gcvt _gcvt -# endif -_GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf)); -# else -# if 0 -_GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (gcvt); -# endif -#endif - -#if 0 -/* Store max(NELEM,3) load average numbers in LOADAVG[]. - The three numbers are the load average of the last 1 minute, the last 5 - minutes, and the last 15 minutes, respectively. - LOADAVG is an array of NELEM numbers. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getloadavg -# define getloadavg rpl_getloadavg -# endif -_GL_FUNCDECL_RPL (getloadavg, int, (double loadavg[], int nelem), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getloadavg, int, (double loadavg[], int nelem)); -# else -# if !1 -_GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getloadavg); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getloadavg -# if HAVE_RAW_DECL_GETLOADAVG -_GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " - "use gnulib module getloadavg for portability"); -# endif -#endif - -#if 1 -/* Return the base name of the executing program. - On native Windows this will usually end in ".exe" or ".EXE". */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getprogname -# define getprogname rpl_getprogname -# endif -# if 0 -_GL_FUNCDECL_RPL (getprogname, const char *, (void), _GL_ATTRIBUTE_PURE); -# else -_GL_FUNCDECL_RPL (getprogname, const char *, (void), ); -# endif -_GL_CXXALIAS_RPL (getprogname, const char *, (void)); -# else -# if !1 -# if 0 -_GL_FUNCDECL_SYS (getprogname, const char *, (void), _GL_ATTRIBUTE_PURE); -# else -_GL_FUNCDECL_SYS (getprogname, const char *, (void), ); -# endif -# endif -_GL_CXXALIAS_SYS (getprogname, const char *, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getprogname); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getprogname -# if HAVE_RAW_DECL_GETPROGNAME -_GL_WARN_ON_USE (getprogname, "getprogname is unportable - " - "use gnulib module getprogname for portability"); -# endif -#endif - -#if 0 -/* Assuming *OPTIONP is a comma separated list of elements of the form - "token" or "token=value", getsubopt parses the first of these elements. - If the first element refers to a "token" that is member of the given - NULL-terminated array of tokens: - - It replaces the comma with a NUL byte, updates *OPTIONP to point past - the first option and the comma, sets *VALUEP to the value of the - element (or NULL if it doesn't contain an "=" sign), - - It returns the index of the "token" in the given array of tokens. - Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. - For more details see the POSIX specification. - https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getsubopt -# define getsubopt rpl_getsubopt -# endif -_GL_FUNCDECL_RPL (getsubopt, int, - (char **optionp, char *const *tokens, char **valuep), - _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getsubopt, int, - (char **optionp, char *const *tokens, char **valuep)); -# else -# if !1 -_GL_FUNCDECL_SYS (getsubopt, int, - (char **optionp, char *const *tokens, char **valuep), - _GL_ARG_NONNULL ((1, 2, 3)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getsubopt, int, - (char **optionp, char *const *tokens, char **valuep)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getsubopt); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getsubopt -# if HAVE_RAW_DECL_GETSUBOPT -_GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " - "use gnulib module getsubopt for portability"); -# endif -#endif - -#if 0 -/* Change the ownership and access permission of the slave side of the - pseudo-terminal whose master side is specified by FD. */ -# if !1 -_GL_FUNCDECL_SYS (grantpt, int, (int fd), ); -# endif -_GL_CXXALIAS_SYS (grantpt, int, (int fd)); -_GL_CXXALIASWARN (grantpt); -#elif defined GNULIB_POSIXCHECK -# undef grantpt -# if HAVE_RAW_DECL_GRANTPT -_GL_WARN_ON_USE (grantpt, "grantpt is not portable - " - "use gnulib module grantpt for portability"); -# endif -#endif - -/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not - rely on GNU or POSIX semantics for malloc and realloc (for example, - by never specifying a zero size), so it does not need malloc or - realloc to be redefined. */ -#if 1 -# if (1 && 0) \ - || (1 && 0) -# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ - || _GL_USE_STDLIB_ALLOC) -# undef malloc -# define malloc rpl_malloc -# endif -_GL_FUNCDECL_RPL (malloc, void *, - (size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (malloc, void *, (size_t size)); -# else -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE - _GL_ATTRIBUTE_NODISCARD); -# endif -# endif -_GL_CXXALIAS_SYS (malloc, void *, (size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (malloc); -# endif -#else -# if 1 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined malloc -/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC -# undef malloc -/* Assume malloc is always declared. */ -_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " - "use gnulib module malloc-posix for portability"); -# endif -#endif - -/* Return maximum number of bytes of a multibyte character. */ -#if 0 -# if !GNULIB_defined_MB_CUR_MAX -static inline -int gl_MB_CUR_MAX (void) -{ - /* Turn the value 3 to the value 4, as needed for the UTF-8 encoding. */ - return MB_CUR_MAX + (MB_CUR_MAX == 3); -} -# undef MB_CUR_MAX -# define MB_CUR_MAX gl_MB_CUR_MAX () -# define GNULIB_defined_MB_CUR_MAX 1 -# endif -#endif - -/* Convert a string to a wide string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbstowcs -# define mbstowcs rpl_mbstowcs -# endif -_GL_FUNCDECL_RPL (mbstowcs, size_t, - (wchar_t *restrict dest, const char *restrict src, - size_t len), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mbstowcs, size_t, - (wchar_t *restrict dest, const char *restrict src, - size_t len)); -# else -_GL_CXXALIAS_SYS (mbstowcs, size_t, - (wchar_t *restrict dest, const char *restrict src, - size_t len)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbstowcs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbstowcs -# if HAVE_RAW_DECL_MBSTOWCS -_GL_WARN_ON_USE (mbstowcs, "mbstowcs is unportable - " - "use gnulib module mbstowcs for portability"); -# endif -#endif - -/* Convert a multibyte character to a wide character. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbtowc -# define mbtowc rpl_mbtowc -# endif -_GL_FUNCDECL_RPL (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n), ); -_GL_CXXALIAS_RPL (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n), ); -# endif -_GL_CXXALIAS_SYS (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbtowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbtowc -# if HAVE_RAW_DECL_MBTOWC -_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " - "use gnulib module mbtowc for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary directory from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the directory name unique. - Returns TEMPLATE, or a null pointer if it cannot get a unique name. - The directory is created mode 700. */ -# if !1 -_GL_FUNCDECL_SYS (mkdtemp, char *, - (char * /*template*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); -_GL_CXXALIASWARN (mkdtemp); -#elif defined GNULIB_POSIXCHECK -# undef mkdtemp -# if HAVE_RAW_DECL_MKDTEMP -_GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " - "use gnulib module mkdtemp for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - The file is then created, with the specified flags, ensuring it didn't exist - before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkostemp -# define mkostemp rpl_mkostemp -# endif -_GL_FUNCDECL_RPL (mkostemp, int, (char * /*template*/, int /*flags*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (mkostemp, int, (char * /*template*/, int /*flags*/)); -# else -# if !1 -_GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mkostemp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mkostemp -# if HAVE_RAW_DECL_MKOSTEMP -_GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " - "use gnulib module mkostemp for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE before a suffix of length - SUFFIXLEN must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - The file is then created, with the specified flags, ensuring it didn't exist - before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkostemps -# define mkostemps rpl_mkostemps -# endif -_GL_FUNCDECL_RPL (mkostemps, int, - (char * /*template*/, int /*suffixlen*/, int /*flags*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (mkostemps, int, - (char * /*template*/, int /*suffixlen*/, int /*flags*/)); -# else -# if !1 -_GL_FUNCDECL_SYS (mkostemps, int, - (char * /*template*/, int /*suffixlen*/, int /*flags*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (mkostemps, int, - (char * /*template*/, int /*suffixlen*/, int /*flags*/)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mkostemps); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mkostemps -# if HAVE_RAW_DECL_MKOSTEMPS -_GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " - "use gnulib module mkostemps for portability"); -# endif -#endif - -#if 1 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The file is then created, ensuring it didn't exist before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mkstemp rpl_mkstemp -# endif -_GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); -# endif -_GL_CXXALIASWARN (mkstemp); -#elif defined GNULIB_POSIXCHECK -# undef mkstemp -# if HAVE_RAW_DECL_MKSTEMP -_GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " - "use gnulib module mkstemp for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE prior to a suffix of length - SUFFIXLEN must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The file is then created, ensuring it didn't exist before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if !1 -_GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); -_GL_CXXALIASWARN (mkstemps); -#elif defined GNULIB_POSIXCHECK -# undef mkstemps -# if HAVE_RAW_DECL_MKSTEMPS -_GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " - "use gnulib module mkstemps for portability"); -# endif -#endif - -#if 1 -/* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::mktemp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mktemp -# define mktemp _mktemp -# endif -_GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/)); -# else -_GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/)); -# endif -_GL_CXXALIASWARN (mktemp); -#endif - -/* Allocate memory with indefinite extent and specified alignment. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef posix_memalign -# define posix_memalign rpl_posix_memalign -# endif -_GL_FUNCDECL_RPL (posix_memalign, int, - (void **memptr, size_t alignment, size_t size), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (posix_memalign, int, - (void **memptr, size_t alignment, size_t size)); -# else -# if 1 -_GL_CXXALIAS_SYS (posix_memalign, int, - (void **memptr, size_t alignment, size_t size)); -# endif -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (posix_memalign); -# endif -#elif defined GNULIB_POSIXCHECK -# undef posix_memalign -# if HAVE_RAW_DECL_POSIX_MEMALIGN -_GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " - "use gnulib module posix_memalign for portability"); -# endif -#endif - -#if 0 -/* Return an FD open to the master side of a pseudo-terminal. Flags should - include O_RDWR, and may also include O_NOCTTY. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef posix_openpt -# define posix_openpt rpl_posix_openpt -# endif -_GL_FUNCDECL_RPL (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (posix_openpt, int, (int flags)); -# else -# if !1 -_GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (posix_openpt); -# endif -#elif defined GNULIB_POSIXCHECK -# undef posix_openpt -# if HAVE_RAW_DECL_POSIX_OPENPT -_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " - "use gnulib module posix_openpt for portability"); -# endif -#endif - -#if 0 -/* Return the pathname of the pseudo-terminal slave associated with - the master FD is open on, or NULL on errors. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ptsname -# define ptsname rpl_ptsname -# endif -_GL_FUNCDECL_RPL (ptsname, char *, (int fd), _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (ptsname, char *, (int fd)); -# else -# if !1 -_GL_FUNCDECL_SYS (ptsname, char *, (int fd), _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (ptsname, char *, (int fd)); -# endif -_GL_CXXALIASWARN (ptsname); -#elif defined GNULIB_POSIXCHECK -# undef ptsname -# if HAVE_RAW_DECL_PTSNAME -_GL_WARN_ON_USE (ptsname, "ptsname is not portable - " - "use gnulib module ptsname for portability"); -# endif -#endif - -#if 0 -/* Set the pathname of the pseudo-terminal slave associated with - the master FD is open on and return 0, or set errno and return - non-zero on errors. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ptsname_r -# define ptsname_r rpl_ptsname_r -# endif -_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len), ); -_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len), ); -# endif -_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); -# endif -# ifndef GNULIB_defined_ptsname_r -# define GNULIB_defined_ptsname_r (!1 || 0) -# endif -_GL_CXXALIASWARN (ptsname_r); -#elif defined GNULIB_POSIXCHECK -# undef ptsname_r -# if HAVE_RAW_DECL_PTSNAME_R -_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " - "use gnulib module ptsname_r for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv rpl_putenv -# endif -_GL_FUNCDECL_RPL (putenv, int, (char *string), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (putenv, int, (char *string)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv _putenv -# endif -_GL_CXXALIAS_MDA (putenv, int, (char *string)); -# elif defined __KLIBC__ -/* Need to cast, because on OS/2 kLIBC, the first parameter is - const char *string. */ -_GL_CXXALIAS_SYS_CAST (putenv, int, (char *string)); -# else -_GL_CXXALIAS_SYS (putenv, int, (char *string)); -# endif -_GL_CXXALIASWARN (putenv); -#elif 1 -/* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::putenv always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv _putenv -# endif -/* Need to cast, because on mingw, the parameter is either - 'const char *string' or 'char *string'. */ -_GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); -# elif defined __KLIBC__ -/* Need to cast, because on OS/2 kLIBC, the first parameter is - const char *string. */ -_GL_CXXALIAS_SYS_CAST (putenv, int, (char *string)); -# else -_GL_CXXALIAS_SYS (putenv, int, (char *string)); -# endif -_GL_CXXALIASWARN (putenv); -#endif - -#if 0 -/* Sort an array of NMEMB elements, starting at address BASE, each element - occupying SIZE bytes, in ascending order according to the comparison - function COMPARE. */ -# ifdef __cplusplus -extern "C" { -# endif -# if !GNULIB_defined_qsort_r_fn_types -typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *); -# define GNULIB_defined_qsort_r_fn_types 1 -# endif -# ifdef __cplusplus -} -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef qsort_r -# define qsort_r rpl_qsort_r -# endif -_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg), - _GL_ARG_NONNULL ((1, 4))); -_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg)); -# else -# if !1 -_GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg), - _GL_ARG_NONNULL ((1, 4))); -# endif -_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (qsort_r); -# endif -#elif defined GNULIB_POSIXCHECK -# undef qsort_r -# if HAVE_RAW_DECL_QSORT_R -_GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " - "use gnulib module qsort_r for portability"); -# endif -#endif - - -#if 0 || (IN_PARTED_GNULIB_TESTS && !0) -# ifndef RAND_MAX -# define RAND_MAX 2147483647 -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rand -# define rand rpl_rand -# endif -_GL_FUNCDECL_RPL (rand, int, (void), ); -_GL_CXXALIAS_RPL (rand, int, (void)); -# else -_GL_CXXALIAS_SYS (rand, int, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (rand); -# endif -#endif - - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef random -# define random rpl_random -# endif -_GL_FUNCDECL_RPL (random, long, (void), ); -_GL_CXXALIAS_RPL (random, long, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (random, long, (void), ); -# endif -/* Need to cast, because on Haiku, the return type is - int. */ -_GL_CXXALIAS_SYS_CAST (random, long, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (random); -# endif -#elif defined GNULIB_POSIXCHECK -# undef random -# if HAVE_RAW_DECL_RANDOM -_GL_WARN_ON_USE (random, "random is unportable - " - "use gnulib module random for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef srandom -# define srandom rpl_srandom -# endif -_GL_FUNCDECL_RPL (srandom, void, (unsigned int seed), ); -_GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); -# else -# if !1 -_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed), ); -# endif -/* Need to cast, because on FreeBSD, the first parameter is - unsigned long seed. */ -_GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (srandom); -# endif -#elif defined GNULIB_POSIXCHECK -# undef srandom -# if HAVE_RAW_DECL_SRANDOM -_GL_WARN_ON_USE (srandom, "srandom is unportable - " - "use gnulib module random for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef initstate -# define initstate rpl_initstate -# endif -_GL_FUNCDECL_RPL (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size)); -# else -# if !1 || !1 -_GL_FUNCDECL_SYS (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size), - _GL_ARG_NONNULL ((2))); -# endif -/* Need to cast, because on FreeBSD, the first parameter is - unsigned long seed. */ -_GL_CXXALIAS_SYS_CAST (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (initstate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef initstate -# if HAVE_RAW_DECL_INITSTATE -_GL_WARN_ON_USE (initstate, "initstate is unportable - " - "use gnulib module random for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setstate -# define setstate rpl_setstate -# endif -_GL_FUNCDECL_RPL (setstate, char *, (char *arg_state), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); -# else -# if !1 || !1 -_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state), _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter - is const char *arg_state. */ -_GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (setstate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef setstate -# if HAVE_RAW_DECL_SETSTATE -_GL_WARN_ON_USE (setstate, "setstate is unportable - " - "use gnulib module random for portability"); -# endif -#endif - - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef random_r -# define random_r rpl_random_r -# endif -_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); -# else -# if !0 -_GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); -# endif -_GL_CXXALIASWARN (random_r); -#elif defined GNULIB_POSIXCHECK -# undef random_r -# if HAVE_RAW_DECL_RANDOM_R -_GL_WARN_ON_USE (random_r, "random_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef srandom_r -# define srandom_r rpl_srandom_r -# endif -_GL_FUNCDECL_RPL (srandom_r, int, - (unsigned int seed, struct random_data *rand_state), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (srandom_r, int, - (unsigned int seed, struct random_data *rand_state)); -# else -# if !0 -_GL_FUNCDECL_SYS (srandom_r, int, - (unsigned int seed, struct random_data *rand_state), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (srandom_r, int, - (unsigned int seed, struct random_data *rand_state)); -# endif -_GL_CXXALIASWARN (srandom_r); -#elif defined GNULIB_POSIXCHECK -# undef srandom_r -# if HAVE_RAW_DECL_SRANDOM_R -_GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef initstate_r -# define initstate_r rpl_initstate_r -# endif -_GL_FUNCDECL_RPL (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state), - _GL_ARG_NONNULL ((2, 4))); -_GL_CXXALIAS_RPL (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state)); -# else -# if !0 -_GL_FUNCDECL_SYS (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state), - _GL_ARG_NONNULL ((2, 4))); -# endif -/* Need to cast, because on Haiku, the third parameter is - unsigned long buf_size. */ -_GL_CXXALIAS_SYS_CAST (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state)); -# endif -_GL_CXXALIASWARN (initstate_r); -#elif defined GNULIB_POSIXCHECK -# undef initstate_r -# if HAVE_RAW_DECL_INITSTATE_R -_GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setstate_r -# define setstate_r rpl_setstate_r -# endif -_GL_FUNCDECL_RPL (setstate_r, int, - (char *arg_state, struct random_data *rand_state), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (setstate_r, int, - (char *arg_state, struct random_data *rand_state)); -# else -# if !0 -_GL_FUNCDECL_SYS (setstate_r, int, - (char *arg_state, struct random_data *rand_state), - _GL_ARG_NONNULL ((1, 2))); -# endif -/* Need to cast, because on Haiku, the first parameter is - void *arg_state. */ -_GL_CXXALIAS_SYS_CAST (setstate_r, int, - (char *arg_state, struct random_data *rand_state)); -# endif -_GL_CXXALIASWARN (setstate_r); -#elif defined GNULIB_POSIXCHECK -# undef setstate_r -# if HAVE_RAW_DECL_SETSTATE_R -_GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - - -#if 1 -# if (1 && 0) \ - || (1 && 0) -# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ - || _GL_USE_STDLIB_ALLOC) -# undef realloc -# define realloc rpl_realloc -# endif -_GL_FUNCDECL_RPL (realloc, void *, - (void *ptr, size_t size), - _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); -# else -# if __GNUC__ >= 11 && !defined __clang__ -/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 -_GL_FUNCDECL_SYS (realloc, void *, - (void *ptr, size_t size), - _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_NODISCARD) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (realloc, void *, - (void *ptr, size_t size), - _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_NODISCARD); -# endif -# endif -_GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (realloc); -# endif -#else -# if 1 \ - && (__GNUC__ >= 11 && !defined __clang__) && !defined realloc -/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2 -_GL_FUNCDECL_SYS (realloc, void *, - (void *ptr, size_t size), - _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (realloc, void *, - (void *ptr, size_t size), - _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC -# undef realloc -/* Assume realloc is always declared. */ -_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " - "use gnulib module realloc-posix for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef reallocarray -# define reallocarray rpl_reallocarray -# endif -_GL_FUNCDECL_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size), - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size), - _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (reallocarray); -# endif -#elif defined GNULIB_POSIXCHECK -# undef reallocarray -# if HAVE_RAW_DECL_REALLOCARRAY -_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " - "use gnulib module reallocarray for portability"); -# endif -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define realpath rpl_realpath -# endif -_GL_FUNCDECL_RPL (realpath, char *, - (const char *restrict name, char *restrict resolved), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (realpath, char *, - (const char *restrict name, char *restrict resolved)); -# else -# if !1 -_GL_FUNCDECL_SYS (realpath, char *, - (const char *restrict name, char *restrict resolved), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (realpath, char *, - (const char *restrict name, char *restrict resolved)); -# endif -_GL_CXXALIASWARN (realpath); -#elif defined GNULIB_POSIXCHECK -# undef realpath -# if HAVE_RAW_DECL_REALPATH -_GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " - "canonicalize or canonicalize-lgpl for portability"); -# endif -#endif - -#if 1 -/* Test a user response to a question. - Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ -# if !0 -_GL_FUNCDECL_SYS (rpmatch, int, (const char *response), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); -_GL_CXXALIASWARN (rpmatch); -#elif defined GNULIB_POSIXCHECK -# undef rpmatch -# if HAVE_RAW_DECL_RPMATCH -_GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " - "use gnulib module rpmatch for portability"); -# endif -#endif - -#if 0 -/* Look up NAME in the environment, returning 0 in insecure situations. */ -# if !1 -_GL_FUNCDECL_SYS (secure_getenv, char *, - (char const *name), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); -_GL_CXXALIASWARN (secure_getenv); -#elif defined GNULIB_POSIXCHECK -# undef secure_getenv -# if HAVE_RAW_DECL_SECURE_GETENV -_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " - "use gnulib module secure_getenv for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -/* Set NAME to VALUE in the environment. - If REPLACE is nonzero, overwrite an existing value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setenv -# define setenv rpl_setenv -# endif -_GL_FUNCDECL_RPL (setenv, int, - (const char *name, const char *value, int replace), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (setenv, int, - (const char *name, const char *value, int replace)); -# else -# if !1 -_GL_FUNCDECL_SYS (setenv, int, - (const char *name, const char *value, int replace), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (setenv, int, - (const char *name, const char *value, int replace)); -# endif -# if !(0 && !1) -_GL_CXXALIASWARN (setenv); -# endif -#elif defined GNULIB_POSIXCHECK -# undef setenv -# if HAVE_RAW_DECL_SETENV -_GL_WARN_ON_USE (setenv, "setenv is unportable - " - "use gnulib module setenv for portability"); -# endif -#endif - -#if 0 -/* Prints a stack trace of the current thread to standard error, - if possible. */ -# if 0 -_GL_EXTERN_C void print_stack_trace (void); -# else -# if !GNULIB_defined_print_stack_trace -# define print_stack_trace() /* nothing */ -# define GNULIB_defined_print_stack_trace 1 -# endif -# endif -#endif - -#if 0 - /* Parse a double from STRING, updating ENDP if appropriate. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtod rpl_strtod -# endif -# define GNULIB_defined_strtod_function 1 -_GL_FUNCDECL_RPL (strtod, double, - (const char *restrict str, char **restrict endp), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtod, double, - (const char *restrict str, char **restrict endp)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtod, double, - (const char *restrict str, char **restrict endp), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtod, double, - (const char *restrict str, char **restrict endp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtod); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtod -# if HAVE_RAW_DECL_STRTOD -_GL_WARN_ON_USE (strtod, "strtod is unportable - " - "use gnulib module strtod for portability"); -# endif -#endif - -#if 0 - /* Parse a float from STRING, updating ENDP if appropriate. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtof rpl_strtof -# endif -# define GNULIB_defined_strtof_function 1 -_GL_FUNCDECL_RPL (strtof, float, - (const char *restrict str, char **restrict endp), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtof, float, - (const char *restrict str, char **restrict endp)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtof, float, - (const char *restrict str, char **restrict endp), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtof, float, - (const char *restrict str, char **restrict endp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtof); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtof -# if HAVE_RAW_DECL_STRTOF -_GL_WARN_ON_USE (strtof, "strtof is unportable - " - "use gnulib module strtof for portability"); -# endif -#endif - -#if 0 - /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtold rpl_strtold -# endif -# define GNULIB_defined_strtold_function 1 -_GL_FUNCDECL_RPL (strtold, long double, - (const char *restrict str, char **restrict endp), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtold, long double, - (const char *restrict str, char **restrict endp)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtold, long double, - (const char *restrict str, char **restrict endp), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtold, long double, - (const char *restrict str, char **restrict endp)); -# endif -_GL_CXXALIASWARN (strtold); -#elif defined GNULIB_POSIXCHECK -# undef strtold -# if HAVE_RAW_DECL_STRTOLD -_GL_WARN_ON_USE (strtold, "strtold is unportable - " - "use gnulib module strtold for portability"); -# endif -#endif - -#if 0 -/* Parse a signed integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set - to ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtol rpl_strtol -# endif -# define GNULIB_defined_strtol_function 1 -_GL_FUNCDECL_RPL (strtol, long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtol, long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtol, long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtol, long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtol); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtol -# if HAVE_RAW_DECL_STRTOL -_GL_WARN_ON_USE (strtol, "strtol is unportable - " - "use gnulib module strtol for portability"); -# endif -#endif - -#if 1 -/* Parse a signed integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set - to ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoll rpl_strtoll -# endif -# define GNULIB_defined_strtoll_function 1 -_GL_FUNCDECL_RPL (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -_GL_CXXALIASWARN (strtoll); -#elif defined GNULIB_POSIXCHECK -# undef strtoll -# if HAVE_RAW_DECL_STRTOLL -_GL_WARN_ON_USE (strtoll, "strtoll is unportable - " - "use gnulib module strtoll for portability"); -# endif -#endif - -#if 0 -/* Parse an unsigned integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoul rpl_strtoul -# endif -# define GNULIB_defined_strtoul_function 1 -_GL_FUNCDECL_RPL (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtoul); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtoul -# if HAVE_RAW_DECL_STRTOUL -_GL_WARN_ON_USE (strtoul, "strtoul is unportable - " - "use gnulib module strtoul for portability"); -# endif -#endif - -#if 1 -/* Parse an unsigned integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is ULLONG_MAX, and errno is set to - ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoull rpl_strtoull -# endif -# define GNULIB_defined_strtoull_function 1 -_GL_FUNCDECL_RPL (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -_GL_CXXALIASWARN (strtoull); -#elif defined GNULIB_POSIXCHECK -# undef strtoull -# if HAVE_RAW_DECL_STRTOULL -_GL_WARN_ON_USE (strtoull, "strtoull is unportable - " - "use gnulib module strtoull for portability"); -# endif -#endif - -#if 0 -/* Unlock the slave side of the pseudo-terminal whose master side is specified - by FD, so that it can be opened. */ -# if !1 -_GL_FUNCDECL_SYS (unlockpt, int, (int fd), ); -# endif -_GL_CXXALIAS_SYS (unlockpt, int, (int fd)); -_GL_CXXALIASWARN (unlockpt); -#elif defined GNULIB_POSIXCHECK -# undef unlockpt -# if HAVE_RAW_DECL_UNLOCKPT -_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " - "use gnulib module unlockpt for portability"); -# endif -#endif - -#if IN_PARTED_GNULIB_TESTS -/* Remove the variable NAME from the environment. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unsetenv -# define unsetenv rpl_unsetenv -# endif -_GL_FUNCDECL_RPL (unsetenv, int, (const char *name), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); -# else -# if !1 -_GL_FUNCDECL_SYS (unsetenv, int, (const char *name), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); -# endif -# if !(0 && !1) -_GL_CXXALIASWARN (unsetenv); -# endif -#elif defined GNULIB_POSIXCHECK -# undef unsetenv -# if HAVE_RAW_DECL_UNSETENV -_GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " - "use gnulib module unsetenv for portability"); -# endif -#endif - -/* Convert a wide character to a multibyte character. */ -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wctomb -# define wctomb rpl_wctomb -# endif -_GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc), ); -_GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); -# else -_GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wctomb); -# endif -#endif - - -#endif /* _GL_STDLIB_H */ -#endif /* _GL_STDLIB_H */ -#endif diff --git a/jni/parted/lib/string.h b/jni/parted/lib/string.h deleted file mode 100755 index 64a208c..0000000 --- a/jni/parted/lib/string.h +++ /dev/null @@ -1,1999 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 1995-1996, 2001-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined _GL_ALREADY_INCLUDING_STRING_H -/* Special invocation convention: - - On OS X/NetBSD we have a sequence of nested includes - -> -> "string.h" - In this situation system _chk variants due to -D_FORTIFY_SOURCE - might be used after any replacements defined here. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STRING_H - -#define _GL_ALREADY_INCLUDING_STRING_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#undef _GL_ALREADY_INCLUDING_STRING_H - -#ifndef _GL_STRING_H -#define _GL_STRING_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* NetBSD 5.0 mis-defines NULL. */ -#include - -/* MirBSD defines mbslen as a macro. */ -#if 0 && defined __MirBSD__ -# include -#endif - -/* NetBSD 5.0 declares strsignal in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ - && ! defined __GLIBC__ -# include -#endif - -/* AIX 7.2 and Android 13 declare ffsl and ffsll in , not in - . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if ((0 || 0 || defined GNULIB_POSIXCHECK) \ - && (defined _AIX || defined __ANDROID__)) \ - && ! defined __GLIBC__ -# include -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 && !defined __clang__ -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have - been included yet. */ -#if 1 -# if (1 && !defined free \ - && !(defined __cplusplus && defined GNULIB_NAMESPACE)) -/* We can't do '#define free rpl_free' here. */ -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void rpl_free (void *) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_EXTERN_C void rpl_free (void *); -# endif -# undef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) -# else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -# endif -#else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -#endif - -/* Clear a block of memory. The compiler will not delete a call to - this function, even if the block is dead after the call. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (explicit_bzero, void, - (void *__dest, size_t __n), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); -_GL_CXXALIASWARN (explicit_bzero); -#elif defined GNULIB_POSIXCHECK -# undef explicit_bzero -# if HAVE_RAW_DECL_EXPLICIT_BZERO -_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " - "use gnulib module explicit_bzero for portability"); -# endif -#endif - -/* Find the index of the least-significant set bit. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (ffsl, int, (long int i), ); -# endif -_GL_CXXALIAS_SYS (ffsl, int, (long int i)); -_GL_CXXALIASWARN (ffsl); -#elif defined GNULIB_POSIXCHECK -# undef ffsl -# if HAVE_RAW_DECL_FFSL -_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); -# endif -#endif - - -/* Find the index of the least-significant set bit. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define ffsll rpl_ffsll -# endif -_GL_FUNCDECL_RPL (ffsll, int, (long long int i), ); -_GL_CXXALIAS_RPL (ffsll, int, (long long int i)); -# else -# if !1 -_GL_FUNCDECL_SYS (ffsll, int, (long long int i), ); -# endif -_GL_CXXALIAS_SYS (ffsll, int, (long long int i)); -# endif -_GL_CXXALIASWARN (ffsll); -#elif defined GNULIB_POSIXCHECK -# undef ffsll -# if HAVE_RAW_DECL_FFSLL -_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::memccpy always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memccpy -# define memccpy _memccpy -# endif -_GL_CXXALIAS_MDA (memccpy, void *, - (void *dest, const void *src, int c, size_t n)); -# else -_GL_CXXALIAS_SYS (memccpy, void *, - (void *dest, const void *src, int c, size_t n)); -# endif -_GL_CXXALIASWARN (memccpy); -#endif - - -/* Return the first instance of C within N bytes of S, or NULL. */ -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memchr -# define memchr rpl_memchr -# endif -_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); -# else - /* On some systems, this function is defined as an overloaded function: - extern "C" { const void * std::memchr (const void *, int, size_t); } - extern "C++" { void * std::memchr (void *, int, size_t); } */ -_GL_CXXALIAS_SYS_CAST2 (memchr, - void *, (void const *__s, int __c, size_t __n), - void const *, (void const *__s, int __c, size_t __n)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (memchr, void *, - (void *__s, int __c, size_t __n) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (memchr, void const *, - (void const *__s, int __c, size_t __n) - _GL_ATTRIBUTE_NOTHROW); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (memchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef memchr -/* Assume memchr is always declared. */ -_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " - "use gnulib module memchr for portability" ); -#endif - -/* Return the first occurrence of NEEDLE in HAYSTACK. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define memmem rpl_memmem -# endif -_GL_FUNCDECL_RPL (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 3))); -# endif -_GL_CXXALIAS_SYS (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len)); -# endif -_GL_CXXALIASWARN (memmem); -#elif defined GNULIB_POSIXCHECK -# undef memmem -# if HAVE_RAW_DECL_MEMMEM -_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " - "use gnulib module memmem-simple for portability, " - "and module memmem for speed" ); -# endif -#endif - -/* Copy N bytes of SRC to DEST, return pointer to bytes after the - last written byte. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mempcpy -# define mempcpy rpl_mempcpy -# endif -_GL_FUNCDECL_RPL (mempcpy, void *, - (void *restrict __dest, void const *restrict __src, - size_t __n), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (mempcpy, void *, - (void *restrict __dest, void const *restrict __src, - size_t __n)); -# else -# if !1 -_GL_FUNCDECL_SYS (mempcpy, void *, - (void *restrict __dest, void const *restrict __src, - size_t __n), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (mempcpy, void *, - (void *restrict __dest, void const *restrict __src, - size_t __n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mempcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mempcpy -# if HAVE_RAW_DECL_MEMPCPY -_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " - "use gnulib module mempcpy for portability"); -# endif -#endif - -/* Search backwards through a block for a byte (specified as an int). */ -#if IN_PARTED_GNULIB_TESTS -# if ! 1 -_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const void * std::memrchr (const void *, int, size_t); } - extern "C++" { void * std::memrchr (void *, int, size_t); } */ -_GL_CXXALIAS_SYS_CAST2 (memrchr, - void *, (void const *, int, size_t), - void const *, (void const *, int, size_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (memrchr, void *, - (void *, int, size_t) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (memrchr, void const *, - (void const *, int, size_t) - _GL_ATTRIBUTE_NOTHROW); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (memrchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef memrchr -# if HAVE_RAW_DECL_MEMRCHR -_GL_WARN_ON_USE (memrchr, "memrchr is unportable - " - "use gnulib module memrchr for portability"); -# endif -#endif - -/* Overwrite a block of memory. The compiler will not optimize - effects away, even if the block is dead after the call. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memset_explicit -# define memset_explicit rpl_memset_explicit -# endif -_GL_FUNCDECL_RPL (memset_explicit, void *, - (void *__dest, int __c, size_t __n), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (memset_explicit, void *, (void *__dest, int __c, size_t __n)); -# else -# if !1 -_GL_FUNCDECL_SYS (memset_explicit, void *, - (void *__dest, int __c, size_t __n), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (memset_explicit, void *, (void *__dest, int __c, size_t __n)); -# endif -_GL_CXXALIASWARN (memset_explicit); -#elif defined GNULIB_POSIXCHECK -# undef memset_explicit -# if HAVE_RAW_DECL_MEMSET_EXPLICIT -_GL_WARN_ON_USE (memset_explicit, "memset_explicit is unportable - " - "use gnulib module memset_explicit for portability"); -# endif -#endif - -/* Find the first occurrence of C in S. More efficient than - memchr(S,C,N), at the expense of undefined behavior if C does not - occur within N bytes. */ -#if 1 -# if ! 0 -_GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const void * std::rawmemchr (const void *, int); } - extern "C++" { void * std::rawmemchr (void *, int); } */ -_GL_CXXALIAS_SYS_CAST2 (rawmemchr, - void *, (void const *__s, int __c_in), - void const *, (void const *__s, int __c_in)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (rawmemchr, void *, - (void *__s, int __c_in) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (rawmemchr, void const *, - (void const *__s, int __c_in) - _GL_ATTRIBUTE_NOTHROW); -# else -_GL_CXXALIASWARN (rawmemchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef rawmemchr -# if HAVE_RAW_DECL_RAWMEMCHR -_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " - "use gnulib module rawmemchr for portability"); -# endif -#endif - -/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef stpcpy -# define stpcpy rpl_stpcpy -# endif -_GL_FUNCDECL_RPL (stpcpy, char *, - (char *restrict __dst, char const *restrict __src), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (stpcpy, char *, - (char *restrict __dst, char const *restrict __src)); -# else -# if !1 -_GL_FUNCDECL_SYS (stpcpy, char *, - (char *restrict __dst, char const *restrict __src), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (stpcpy, char *, - (char *restrict __dst, char const *restrict __src)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (stpcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef stpcpy -# if HAVE_RAW_DECL_STPCPY -_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " - "use gnulib module stpcpy for portability"); -# endif -#endif - -/* Copy no more than N bytes of SRC to DST, returning a pointer past the - last non-NUL byte written into DST. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef stpncpy -# define stpncpy rpl_stpncpy -# endif -_GL_FUNCDECL_RPL (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (stpncpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef stpncpy -# if HAVE_RAW_DECL_STPNCPY -_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " - "use gnulib module stpncpy for portability"); -# endif -#endif - -#if defined GNULIB_POSIXCHECK -/* strchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ -# undef strchr -/* Assume strchr is always declared. */ -_GL_WARN_ON_USE_CXX (strchr, - const char *, char *, (const char *, int), - "strchr cannot work correctly on character strings " - "in some multibyte locales - " - "use mbschr if you care about internationalization"); -#endif - -/* Find the first occurrence of C in S or the final NUL byte. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strchrnul rpl_strchrnul -# endif -_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strchrnul, char *, - (const char *str, int ch)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const char * std::strchrnul (const char *, int); } - extern "C++" { char * std::strchrnul (char *, int); } */ -_GL_CXXALIAS_SYS_CAST2 (strchrnul, - char *, (char const *__s, int __c_in), - char const *, (char const *__s, int __c_in)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strchrnul, char *, - (char *__s, int __c_in) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (strchrnul, char const *, - (char const *__s, int __c_in) - _GL_ATTRIBUTE_NOTHROW); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (strchrnul); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strchrnul -# if HAVE_RAW_DECL_STRCHRNUL -_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " - "use gnulib module strchrnul for portability"); -# endif -#endif - -/* Duplicate S, returning an identical malloc'd string. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup rpl_strdup -# endif -_GL_FUNCDECL_RPL (strdup, char *, - (char const *__s), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup _strdup -# endif -_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); -# else -# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup - /* strdup exists as a function and as a macro. Get rid of the macro. */ -# undef strdup -# endif -# if (!1 || (__GNUC__ >= 11 && !defined __clang__)) \ - && !defined strdup -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); -# endif -_GL_CXXALIASWARN (strdup); -#else -# if (__GNUC__ >= 11 && !defined __clang__) && !defined strdup -/* For -Wmismatched-dealloc: Associate strdup with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef strdup -# if HAVE_RAW_DECL_STRDUP -_GL_WARN_ON_USE (strdup, "strdup is unportable - " - "use gnulib module strdup for portability"); -# endif -# elif 1 -/* On native Windows, map 'creat' to '_creat', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::strdup always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup _strdup -# endif -_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); -# else -# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup -# undef strdup -# endif -_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); -# endif -_GL_CXXALIASWARN (strdup); -# endif -#endif - -/* Append no more than N characters from SRC onto DEST. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strncat -# define strncat rpl_strncat -# endif -_GL_FUNCDECL_RPL (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n)); -# else -_GL_CXXALIAS_SYS (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strncat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strncat -# if HAVE_RAW_DECL_STRNCAT -_GL_WARN_ON_USE (strncat, "strncat is unportable - " - "use gnulib module strncat for portability"); -# endif -#endif - -/* Return a newly allocated copy of at most N bytes of STRING. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strndup -# define strndup rpl_strndup -# endif -_GL_FUNCDECL_RPL (strndup, char *, - (char const *__s, size_t __n), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); -# else -# if !1 \ - || ((__GNUC__ >= 11 && !defined __clang__) && !defined strndup) -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -_GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); -# endif -_GL_CXXALIASWARN (strndup); -#else -# if (__GNUC__ >= 11 && !defined __clang__) && !defined strndup -/* For -Wmismatched-dealloc: Associate strndup with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n), - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef strndup -# if HAVE_RAW_DECL_STRNDUP -_GL_WARN_ON_USE (strndup, "strndup is unportable - " - "use gnulib module strndup for portability"); -# endif -# endif -#endif - -/* Find the length (number of bytes) of STRING, but scan at most - MAXLEN bytes. If no '\0' terminator is found in that many bytes, - return MAXLEN. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strnlen -# define strnlen rpl_strnlen -# endif -_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); -# endif -_GL_CXXALIASWARN (strnlen); -#elif defined GNULIB_POSIXCHECK -# undef strnlen -# if HAVE_RAW_DECL_STRNLEN -_GL_WARN_ON_USE (strnlen, "strnlen is unportable - " - "use gnulib module strnlen for portability"); -# endif -#endif - -#if defined GNULIB_POSIXCHECK -/* strcspn() assumes the second argument is a list of single-byte characters. - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ -# undef strcspn -/* Assume strcspn is always declared. */ -_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " - "in multibyte locales - " - "use mbscspn if you care about internationalization"); -#endif - -/* Find the first occurrence in S of any character in ACCEPT. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C" { const char * strpbrk (const char *, const char *); } - extern "C++" { char * strpbrk (char *, const char *); } */ -_GL_CXXALIAS_SYS_CAST2 (strpbrk, - char *, (char const *__s, char const *__accept), - const char *, (char const *__s, char const *__accept)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strpbrk, char *, - (char *__s, char const *__accept) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (strpbrk, char const *, - (char const *__s, char const *__accept) - _GL_ATTRIBUTE_NOTHROW); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (strpbrk); -# endif -# if defined GNULIB_POSIXCHECK -/* strpbrk() assumes the second argument is a list of single-byte characters. - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ -# undef strpbrk -_GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk cannot work correctly on character strings " - "in multibyte locales - " - "use mbspbrk if you care about internationalization"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strpbrk -# if HAVE_RAW_DECL_STRPBRK -_GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk is unportable - " - "use gnulib module strpbrk for portability"); -# endif -#endif - -#if defined GNULIB_POSIXCHECK -/* strspn() assumes the second argument is a list of single-byte characters. - Even in this simple case, it cannot work with multibyte strings. */ -# undef strspn -/* Assume strspn is always declared. */ -_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " - "in multibyte locales - " - "use mbsspn if you care about internationalization"); -#endif - -#if defined GNULIB_POSIXCHECK -/* strrchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ -# undef strrchr -/* Assume strrchr is always declared. */ -_GL_WARN_ON_USE_CXX (strrchr, - const char *, char *, (const char *, int), - "strrchr cannot work correctly on character strings " - "in some multibyte locales - " - "use mbsrchr if you care about internationalization"); -#endif - -/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. - If one is found, overwrite it with a NUL, and advance *STRINGP - to point to the next char after it. Otherwise, set *STRINGP to NULL. - If *STRINGP was already NULL, nothing happens. - Return the old value of *STRINGP. - - This is a variant of strtok() that is multithread-safe and supports - empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strtok_r(). */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (strsep, char *, - (char **restrict __stringp, char const *restrict __delim), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (strsep, char *, - (char **restrict __stringp, char const *restrict __delim)); -_GL_CXXALIASWARN (strsep); -# if defined GNULIB_POSIXCHECK -# undef strsep -_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " - "in multibyte locales - " - "use mbssep if you care about internationalization"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strsep -# if HAVE_RAW_DECL_STRSEP -_GL_WARN_ON_USE (strsep, "strsep is unportable - " - "use gnulib module strsep for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strstr rpl_strstr -# endif -_GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); -# else - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const char * strstr (const char *, const char *); } - extern "C++" { char * strstr (char *, const char *); } */ -_GL_CXXALIAS_SYS_CAST2 (strstr, - char *, (const char *haystack, const char *needle), - const char *, (const char *haystack, const char *needle)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strstr, char *, - (char *haystack, const char *needle) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (strstr, const char *, - (const char *haystack, const char *needle) - _GL_ATTRIBUTE_NOTHROW); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (strstr); -# endif -#elif defined GNULIB_POSIXCHECK -/* strstr() does not work with multibyte strings if the locale encoding is - different from UTF-8: - POSIX says that it operates on "strings", and "string" in POSIX is defined - as a sequence of bytes, not of characters. */ -# undef strstr -/* Assume strstr is always declared. */ -_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " - "work correctly on character strings in most " - "multibyte locales - " - "use mbsstr if you care about internationalization, " - "or use strstr if you care about speed"); -#endif - -/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive - comparison. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strcasestr rpl_strcasestr -# endif -_GL_FUNCDECL_RPL (strcasestr, char *, - (const char *haystack, const char *needle), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strcasestr, char *, - (const char *haystack, const char *needle)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strcasestr, char *, - (const char *haystack, const char *needle), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const char * strcasestr (const char *, const char *); } - extern "C++" { char * strcasestr (char *, const char *); } */ -_GL_CXXALIAS_SYS_CAST2 (strcasestr, - char *, (const char *haystack, const char *needle), - const char *, (const char *haystack, const char *needle)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strcasestr, char *, - (char *haystack, const char *needle) - _GL_ATTRIBUTE_NOTHROW); -_GL_CXXALIASWARN1 (strcasestr, const char *, - (const char *haystack, const char *needle) - _GL_ATTRIBUTE_NOTHROW); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (strcasestr); -# endif -#elif defined GNULIB_POSIXCHECK -/* strcasestr() does not work with multibyte strings: - It is a glibc extension, and glibc implements it only for unibyte - locales. */ -# undef strcasestr -# if HAVE_RAW_DECL_STRCASESTR -_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " - "strings in multibyte locales - " - "use mbscasestr if you care about " - "internationalization, or use c-strcasestr if you want " - "a locale independent function"); -# endif -#endif - -/* Parse S into tokens separated by characters in DELIM. - If S is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = strtok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - This is a variant of strtok() that is multithread-safe. - - For the POSIX documentation for this function, see: - https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strsep(). */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtok_r -# define strtok_r rpl_strtok_r -# endif -_GL_FUNCDECL_RPL (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr), - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr)); -# else -# if 0 || defined GNULIB_POSIXCHECK -# undef strtok_r -# endif -# if ! 1 -_GL_FUNCDECL_SYS (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr), - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr)); -# endif -_GL_CXXALIASWARN (strtok_r); -# if defined GNULIB_POSIXCHECK -_GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " - "strings in multibyte locales - " - "use mbstok_r if you care about internationalization"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtok_r -# if HAVE_RAW_DECL_STRTOK_R -_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " - "use gnulib module strtok_r for portability"); -# endif -#endif - - -/* The following functions are not specified by POSIX. They are gnulib - extensions. */ - -#if 0 -/* Return the number of multibyte characters in the character string STRING. - This considers multibyte characters, unlike strlen, which counts bytes. */ -# ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ -# undef mbslen -# endif -# if 0 /* AIX, OSF/1, MirBSD define mbslen already in libc. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbslen rpl_mbslen -# endif -_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); -# else -_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbslen); -# endif -#endif - -#if 0 -/* Return the number of multibyte characters in the character string starting - at STRING and ending at STRING + LEN. */ -_GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1)); -#endif - -#if 0 -/* Locate the first single-byte character C in the character string STRING, - and return a pointer to it. Return NULL if C is not found in STRING. - Unlike strchr(), this function works correctly in multibyte locales with - encodings such as GB18030. */ -# if defined __hpux -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ -# endif -_GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); -# else -_GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); -# endif -_GL_CXXALIASWARN (mbschr); -#endif - -#if 0 -/* Locate the last single-byte character C in the character string STRING, - and return a pointer to it. Return NULL if C is not found in STRING. - Unlike strrchr(), this function works correctly in multibyte locales with - encodings such as GB18030. */ -# if defined __hpux || defined __INTERIX -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbsrchr rpl_mbsrchr /* avoid collision with system function */ -# endif -_GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); -# else -_GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); -# endif -_GL_CXXALIASWARN (mbsrchr); -#endif - -#if 0 -/* Find the first occurrence of the character string NEEDLE in the character - string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. - Unlike strstr(), this function works correctly in multibyte locales with - encodings different from UTF-8. */ -_GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Compare the character strings S1 and S2, ignoring case, returning less than, - equal to or greater than zero if S1 is lexicographically less than, equal to - or greater than S2. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! - Unlike strcasecmp(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Compare the initial segment of the character string S1 consisting of at most - N characters with the initial segment of the character string S2 consisting - of at most N characters, ignoring case, returning less than, equal to or - greater than zero if the initial segment of S1 is lexicographically less - than, equal to or greater than the initial segment of S2. - Note: This function may, in multibyte locales, return 0 for initial segments - of different lengths! - Unlike strncasecmp(), this function works correctly in multibyte locales. - But beware that N is not a byte count but a character count! */ -_GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Compare the initial segment of the character string STRING consisting of - at most mbslen (PREFIX) characters with the character string PREFIX, - ignoring case. If the two match, return a pointer to the first byte - after this prefix in STRING. Otherwise, return NULL. - Note: This function may, in multibyte locales, return non-NULL if STRING - is of smaller length than PREFIX! - Unlike strncasecmp(), this function works correctly in multibyte - locales. */ -_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Find the first occurrence of the character string NEEDLE in the character - string HAYSTACK, using case-insensitive comparison. - Note: This function may, in multibyte locales, return success even if - strlen (haystack) < strlen (needle) ! - Unlike strcasestr(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Find the first occurrence in the character string STRING of any character - in the character string ACCEPT. Return the number of bytes from the - beginning of the string to this occurrence, or to the end of the string - if none exists. - Unlike strcspn(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Find the first occurrence in the character string STRING of any character - in the character string ACCEPT. Return the pointer to it, or NULL if none - exists. - Unlike strpbrk(), this function works correctly in multibyte locales. */ -# if defined __hpux -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ -# endif -_GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); -# else -_GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); -# endif -_GL_CXXALIASWARN (mbspbrk); -#endif - -#if 0 -/* Find the first occurrence in the character string STRING of any character - not in the character string REJECT. Return the number of bytes from the - beginning of the string to this occurrence, or to the end of the string - if none exists. - Unlike strspn(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Search the next delimiter (multibyte character listed in the character - string DELIM) starting at the character string *STRINGP. - If one is found, overwrite it with a NUL, and advance *STRINGP to point - to the next multibyte character after it. Otherwise, set *STRINGP to NULL. - If *STRINGP was already NULL, nothing happens. - Return the old value of *STRINGP. - - This is a variant of mbstok_r() that supports empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - - See also mbstok_r(). */ -_GL_EXTERN_C char * mbssep (char **stringp, const char *delim) - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Parse the character string STRING into tokens separated by characters in - the character string DELIM. - If STRING is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = mbstok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - - See also mbssep(). */ -_GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, - char **save_ptr) - _GL_ARG_NONNULL ((2, 3)); -#endif - -/* Map any int, typically from errno, into an error message. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strerror -# define strerror rpl_strerror -# endif -_GL_FUNCDECL_RPL (strerror, char *, (int), ); -_GL_CXXALIAS_RPL (strerror, char *, (int)); -# else -_GL_CXXALIAS_SYS (strerror, char *, (int)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strerror); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strerror -/* Assume strerror is always declared. */ -_GL_WARN_ON_USE (strerror, "strerror is unportable - " - "use gnulib module strerror to guarantee non-NULL result"); -#endif - -/* Map any int, typically from errno, into an error message. Multithread-safe. - Uses the POSIX declaration, not the glibc declaration. */ -#if IN_PARTED_GNULIB_TESTS -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strerror_r -# define strerror_r rpl_strerror_r -# endif -_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); -# else -# if !1 -_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (strerror_r); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strerror_r -# if HAVE_RAW_DECL_STRERROR_R -_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " - "use gnulib module strerror_r-posix for portability"); -# endif -#endif - -/* Return the name of the system error code ERRNUM. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strerrorname_np -# define strerrorname_np rpl_strerrorname_np -# endif -_GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum), ); -_GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); -# else -# if !1 -_GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum), ); -# endif -_GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); -# endif -_GL_CXXALIASWARN (strerrorname_np); -#elif defined GNULIB_POSIXCHECK -# undef strerrorname_np -# if HAVE_RAW_DECL_STRERRORNAME_NP -_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " - "use gnulib module strerrorname_np for portability"); -# endif -#endif - -/* Return an abbreviation string for the signal number SIG. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig), ); -# endif -_GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); -_GL_CXXALIASWARN (sigabbrev_np); -#elif defined GNULIB_POSIXCHECK -# undef sigabbrev_np -# if HAVE_RAW_DECL_SIGABBREV_NP -_GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " - "use gnulib module sigabbrev_np for portability"); -# endif -#endif - -/* Return an English description string for the signal number SIG. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig), ); -# endif -_GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); -_GL_CXXALIASWARN (sigdescr_np); -#elif defined GNULIB_POSIXCHECK -# undef sigdescr_np -# if HAVE_RAW_DECL_SIGDESCR_NP -_GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " - "use gnulib module sigdescr_np for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strsignal rpl_strsignal -# endif -_GL_FUNCDECL_RPL (strsignal, char *, (int __sig), ); -_GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strsignal, char *, (int __sig), ); -# endif -/* Need to cast, because on Cygwin 1.5.x systems, the return type is - 'const char *'. */ -_GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); -# endif -_GL_CXXALIASWARN (strsignal); -#elif defined GNULIB_POSIXCHECK -# undef strsignal -# if HAVE_RAW_DECL_STRSIGNAL -_GL_WARN_ON_USE (strsignal, "strsignal is unportable - " - "use gnulib module strsignal for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strverscmp rpl_strverscmp -# endif -_GL_FUNCDECL_RPL (strverscmp, int, (const char *, const char *), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strverscmp, int, (const char *, const char *)); -# else -# if !1 -_GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *), - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); -# endif -_GL_CXXALIASWARN (strverscmp); -#elif defined GNULIB_POSIXCHECK -# undef strverscmp -# if HAVE_RAW_DECL_STRVERSCMP -_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " - "use gnulib module strverscmp for portability"); -# endif -#endif - - -#endif /* _GL_STRING_H */ -#endif /* _GL_STRING_H */ -#endif diff --git a/jni/parted/lib/sys/random.h b/jni/parted/lib/sys/random.h deleted file mode 100755 index f812a72..0000000 --- a/jni/parted/lib/sys/random.h +++ /dev/null @@ -1,643 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Substitute for . - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -# if __GNUC__ >= 3 -#pragma GCC system_header -# endif - - -#ifndef _GL_SYS_RANDOM_H - -#if 1 - -/* On uClibc < 1.0.35, assumes prior inclusion of . - Do not use __UCLIBC__ here, as it might not be defined yet. - But avoid namespace pollution on glibc systems. */ -# ifndef __GLIBC__ -# include -# endif -/* On Mac OS X 10.5, assumes prior inclusion of . - On Max OS X 10.13, assumes prior inclusion of a file that - includes , such as or . */ -# if defined __APPLE__ && defined __MACH__ /* Mac OS X */ -# include -# include -# endif - -/* The include_next requires a split double-inclusion guard. */ -# include_next - -#endif - -#ifndef _GL_SYS_RANDOM_H -#define _GL_SYS_RANDOM_H - -/* This file uses _GL_ATTRIBUTE_NODISCARD, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#include - -/* Define the GRND_* constants. */ -#ifndef GRND_NONBLOCK -# define GRND_NONBLOCK 1 -# define GRND_RANDOM 2 -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Declare overridden functions. */ - - -#if 1 -/* Fill a buffer with random bytes. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getrandom -# define getrandom rpl_getrandom -# endif -_GL_FUNCDECL_RPL (getrandom, ssize_t, - (void *buffer, size_t length, unsigned int flags), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getrandom, ssize_t, - (void *buffer, size_t length, unsigned int flags)); -# else -# if !1 -_GL_FUNCDECL_SYS (getrandom, ssize_t, - (void *buffer, size_t length, unsigned int flags), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getrandom, ssize_t, - (void *buffer, size_t length, unsigned int flags)); -# endif -# if __GLIBC__ + (__GLIBC_MINOR__ >= 25) > 2 -_GL_CXXALIASWARN (getrandom); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getrandom -# if HAVE_RAW_DECL_GETRANDOM -_GL_WARN_ON_USE (getrandom, "getrandom is unportable - " - "use gnulib module getrandom for portability"); -# endif -#endif - - -#endif /* _GL_SYS_RANDOM_H */ -#endif /* _GL_SYS_RANDOM_H */ diff --git a/jni/parted/lib/sys/stat.h b/jni/parted/lib/sys/stat.h deleted file mode 100755 index 80f9430..0000000 --- a/jni/parted/lib/sys/stat.h +++ /dev/null @@ -1,1545 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Provide a more complete sys/stat.h header file. - Copyright (C) 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ - -/* This file is supposed to be used on platforms where is - incomplete. It is intended to provide definitions and prototypes - needed by an application. Start with what the system provides. */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* This file uses #include_next of a system file that defines time_t. - For the 'year2038' module to work right, needs to have been - included before. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if defined __need_system_sys_stat_h -/* Special invocation convention. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_SYS_STAT_H - -/* Get nlink_t. - May also define off_t to a 64-bit type on native Windows. */ -#include - -/* Get struct timespec. */ -#include - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#ifndef _GL_SYS_STAT_H -#define _GL_SYS_STAT_H - -/* This file uses _GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOTHROW, - GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Before doing "#define mknod rpl_mknod" below, we need to include all - headers that may declare mknod(). OS/2 kLIBC declares mknod() in - , not in . */ -#ifdef __KLIBC__ -# include -#endif - -/* Before doing "#define mkdir rpl_mkdir" below, we need to include all - headers that may declare mkdir(). Native Windows platforms declare mkdir - in and/or , not in . */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include /* mingw32, mingw64 */ -# include /* mingw64, MSVC 9 */ -#endif - -/* Native Windows platforms declare umask() in . */ -#if 0 && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -/* Large File Support on native Windows. */ -#if 0 -# define stat _stati64 -#endif - -/* Optionally, override 'struct stat' on native Windows. */ -#if 0 - -# undef stat -# if 1 -# define stat rpl_stat -# else -# if !GNULIB_STAT - /* Provoke a clear link error if stat() is used as a function and - module 'stat' is not in use. */ -# define stat stat_used_without_requesting_gnulib_module_stat -# endif -# endif - -# if !GNULIB_defined_struct_stat -struct stat -{ - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; -# if 0 - uid_t st_uid; -# else /* uid_t is not defined by default on native Windows. */ - short st_uid; -# endif -# if 0 - gid_t st_gid; -# else /* gid_t is not defined by default on native Windows. */ - short st_gid; -# endif - dev_t st_rdev; - off_t st_size; -# if 0 - blksize_t st_blksize; - blkcnt_t st_blocks; -# endif - -# if 0 - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; -# else - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -# endif -}; -# if 0 -# define st_atime st_atim.tv_sec -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec - /* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_STAT_TIMESPEC 1 -# endif -# define GNULIB_defined_struct_stat 1 -# endif - -/* Other possible values of st_mode. */ -# if 0 -# define _S_IFBLK 0x6000 -# endif -# if 0 -# define _S_IFLNK 0xA000 -# endif -# if 0 -# define _S_IFSOCK 0xC000 -# endif - -#endif - -#ifndef S_IFIFO -# ifdef _S_IFIFO -# define S_IFIFO _S_IFIFO -# endif -#endif - -#ifndef S_IFMT -# define S_IFMT 0170000 -#endif - -#if STAT_MACROS_BROKEN -# undef S_ISBLK -# undef S_ISCHR -# undef S_ISDIR -# undef S_ISFIFO -# undef S_ISLNK -# undef S_ISNAM -# undef S_ISMPB -# undef S_ISMPC -# undef S_ISNWK -# undef S_ISREG -# undef S_ISSOCK -#endif - -#ifndef S_ISBLK -# ifdef S_IFBLK -# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -# else -# define S_ISBLK(m) 0 -# endif -#endif - -#ifndef S_ISCHR -# ifdef S_IFCHR -# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -# else -# define S_ISCHR(m) 0 -# endif -#endif - -#ifndef S_ISDIR -# ifdef S_IFDIR -# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -# else -# define S_ISDIR(m) 0 -# endif -#endif - -#ifndef S_ISDOOR /* Solaris 2.5 and up */ -# define S_ISDOOR(m) 0 -#endif - -#ifndef S_ISFIFO -# ifdef S_IFIFO -# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -# else -# define S_ISFIFO(m) 0 -# endif -#endif - -#ifndef S_ISLNK -# ifdef S_IFLNK -# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) -# else -# define S_ISLNK(m) 0 -# endif -#endif - -#ifndef S_ISMPB /* V7 */ -# ifdef S_IFMPB -# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) -# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) -# else -# define S_ISMPB(m) 0 -# define S_ISMPC(m) 0 -# endif -#endif - -#ifndef S_ISMPX /* AIX */ -# define S_ISMPX(m) 0 -#endif - -#ifndef S_ISNAM /* Xenix */ -# ifdef S_IFNAM -# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) -# else -# define S_ISNAM(m) 0 -# endif -#endif - -#ifndef S_ISNWK /* HP/UX */ -# ifdef S_IFNWK -# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) -# else -# define S_ISNWK(m) 0 -# endif -#endif - -#ifndef S_ISPORT /* Solaris 10 and up */ -# define S_ISPORT(m) 0 -#endif - -#ifndef S_ISREG -# ifdef S_IFREG -# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -# else -# define S_ISREG(m) 0 -# endif -#endif - -#ifndef S_ISSOCK -# ifdef S_IFSOCK -# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) -# else -# define S_ISSOCK(m) 0 -# endif -#endif - - -#ifndef S_TYPEISMQ -# define S_TYPEISMQ(p) 0 -#endif - -#ifndef S_TYPEISTMO -# define S_TYPEISTMO(p) 0 -#endif - - -#ifndef S_TYPEISSEM -# ifdef S_INSEM -# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) -# else -# define S_TYPEISSEM(p) 0 -# endif -#endif - -#ifndef S_TYPEISSHM -# ifdef S_INSHD -# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) -# else -# define S_TYPEISSHM(p) 0 -# endif -#endif - -/* high performance ("contiguous data") */ -#ifndef S_ISCTG -# define S_ISCTG(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with data */ -#ifndef S_ISOFD -# define S_ISOFD(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with no data */ -#ifndef S_ISOFL -# define S_ISOFL(p) 0 -#endif - -/* 4.4BSD whiteout */ -#ifndef S_ISWHT -# define S_ISWHT(m) 0 -#endif - -/* If any of the following are undefined, - define them to their de facto standard values. */ -#if !S_ISUID -# define S_ISUID 04000 -#endif -#if !S_ISGID -# define S_ISGID 02000 -#endif - -/* S_ISVTX is a common extension to POSIX. */ -#ifndef S_ISVTX -# define S_ISVTX 01000 -#endif - -#if !S_IRUSR && S_IREAD -# define S_IRUSR S_IREAD -#endif -#if !S_IRUSR -# define S_IRUSR 00400 -#endif -#if !S_IRGRP -# define S_IRGRP (S_IRUSR >> 3) -#endif -#if !S_IROTH -# define S_IROTH (S_IRUSR >> 6) -#endif - -#if !S_IWUSR && S_IWRITE -# define S_IWUSR S_IWRITE -#endif -#if !S_IWUSR -# define S_IWUSR 00200 -#endif -#if !S_IWGRP -# define S_IWGRP (S_IWUSR >> 3) -#endif -#if !S_IWOTH -# define S_IWOTH (S_IWUSR >> 6) -#endif - -#if !S_IXUSR && S_IEXEC -# define S_IXUSR S_IEXEC -#endif -#if !S_IXUSR -# define S_IXUSR 00100 -#endif -#if !S_IXGRP -# define S_IXGRP (S_IXUSR >> 3) -#endif -#if !S_IXOTH -# define S_IXOTH (S_IXUSR >> 6) -#endif - -#if !S_IRWXU -# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#endif -#if !S_IRWXG -# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#endif -#if !S_IRWXO -# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#endif - -/* Although S_IXUGO and S_IRWXUGO are not specified by POSIX and are - not implemented in GNU/Linux, some Gnulib-using apps use the macros. */ -#if !S_IXUGO -# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) -#endif -#ifndef S_IRWXUGO -# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) -#endif - -/* Macros for futimens and utimensat. */ -#ifndef UTIME_NOW -# define UTIME_NOW (-1) -# define UTIME_OMIT (-2) -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod rpl_chmod -# endif -_GL_FUNCDECL_RPL (chmod, int, (const char *filename, mode_t mode), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (chmod, int, (const char *filename, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod _chmod -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (chmod); -#elif defined GNULIB_POSIXCHECK -# undef chmod -# if HAVE_RAW_DECL_CHMOD -_GL_WARN_ON_USE (chmod, "chmod has portability problems - " - "use gnulib module chmod for portability"); -# endif -#elif 1 -/* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::chmod always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod _chmod -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (chmod); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fchmodat -# define fchmodat rpl_fchmodat -# endif -_GL_FUNCDECL_RPL (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag)); -# endif -_GL_CXXALIASWARN (fchmodat); -#elif defined GNULIB_POSIXCHECK -# undef fchmodat -# if HAVE_RAW_DECL_FCHMODAT -_GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fstat -# define fstat rpl_fstat -# endif -_GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); -# else -_GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fstat); -# endif -#elif 0 -# if !GNULIB_FSTAT -# undef fstat -# define fstat fstat_used_without_requesting_gnulib_module_fstat -# endif -#elif 0 -/* Above, we define stat to _stati64. */ -# define fstat _fstati64 -#elif defined GNULIB_POSIXCHECK -# undef fstat -# if HAVE_RAW_DECL_FSTAT -_GL_WARN_ON_USE (fstat, "fstat has portability problems - " - "use gnulib module fstat for portability"); -# endif -#endif - - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fstatat -# define fstatat rpl_fstatat -# endif -_GL_FUNCDECL_RPL (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags), - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags)); -# else -# if !1 -_GL_FUNCDECL_SYS (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags), - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags)); -# endif -_GL_CXXALIASWARN (fstatat); -#elif 0 -# if !GNULIB_FSTATAT -# undef fstatat -# define fstatat fstatat_used_without_requesting_gnulib_module_fstatat -# endif -#elif defined GNULIB_POSIXCHECK -# undef fstatat -# if HAVE_RAW_DECL_FSTATAT -_GL_WARN_ON_USE (fstatat, "fstatat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if 0 -/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens - implementation relies on futimesat, which on Solaris 10 makes an invocation - to futimens that is meant to invoke the libc's futimens(), not gnulib's - futimens(). */ -# if 0 || (!1 && defined __sun) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef futimens -# define futimens rpl_futimens -# endif -_GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2]), ); -_GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); -# else -# if !1 -_GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2]), ); -# endif -_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (futimens); -# endif -#elif defined GNULIB_POSIXCHECK -# undef futimens -# if HAVE_RAW_DECL_FUTIMENS -_GL_WARN_ON_USE (futimens, "futimens is not portable - " - "use gnulib module futimens for portability"); -# endif -#endif - - -#if 0 -# if !1 -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (getumask, mode_t, (void), ); -# endif -# endif -_GL_CXXALIAS_SYS (getumask, mode_t, (void)); -# if 1 -_GL_CXXALIASWARN (getumask); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getumask -# if HAVE_RAW_DECL_GETUMASK -_GL_WARN_ON_USE (getumask, "getumask is not portable - " - "use gnulib module getumask for portability"); -# endif -#endif - - -#if 0 -/* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME - denotes a symbolic link. */ -# if !1 || defined __hpux -_GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); -_GL_CXXALIASWARN (lchmod); -#elif defined GNULIB_POSIXCHECK -# undef lchmod -# if HAVE_RAW_DECL_LCHMOD -_GL_WARN_ON_USE (lchmod, "lchmod is unportable - " - "use gnulib module lchmod for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. - Additionally, it declares _mkdir (and depending on compile flags, an - alias mkdir), only in the nonstandard includes and , - which are included above. */ -# if !GNULIB_defined_rpl_mkdir -static int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} -# define GNULIB_defined_rpl_mkdir 1 -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# else -_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkdir); -#elif 1 -/* On native Windows, map 'mkdir' to '_mkdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::mkdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !GNULIB_defined_rpl_mkdir -static int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} -# define GNULIB_defined_rpl_mkdir 1 -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# else -_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkdir); -#elif defined GNULIB_POSIXCHECK -# undef mkdir -# if HAVE_RAW_DECL_MKDIR -_GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - " - "use gnulib module mkdir for portability"); -# endif -#endif - - -#if 0 -# if !1 -_GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); -_GL_CXXALIASWARN (mkdirat); -#elif defined GNULIB_POSIXCHECK -# undef mkdirat -# if HAVE_RAW_DECL_MKDIRAT -_GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkfifo -# define mkfifo rpl_mkfifo -# endif -_GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); -# else -# if !1 -_GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkfifo); -#elif defined GNULIB_POSIXCHECK -# undef mkfifo -# if HAVE_RAW_DECL_MKFIFO -_GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " - "use gnulib module mkfifo for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkfifoat -# define mkfifoat rpl_mkfifoat -# endif -_GL_FUNCDECL_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode)); -# else -# if !1 -_GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mkfifoat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mkfifoat -# if HAVE_RAW_DECL_MKFIFOAT -_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " - "use gnulib module mkfifoat for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mknod -# define mknod rpl_mknod -# endif -_GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); -# else -# if !1 -_GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev), - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ -_GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); -# endif -_GL_CXXALIASWARN (mknod); -#elif defined GNULIB_POSIXCHECK -# undef mknod -# if HAVE_RAW_DECL_MKNOD -_GL_WARN_ON_USE (mknod, "mknod is not portable - " - "use gnulib module mknod for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mknodat -# define mknodat rpl_mknodat -# endif -_GL_FUNCDECL_RPL (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev)); -# else -# if !1 -_GL_FUNCDECL_SYS (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mknodat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mknodat -# if HAVE_RAW_DECL_MKNODAT -_GL_WARN_ON_USE (mknodat, "mknodat is not portable - " - "use gnulib module mkfifoat for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !0 - /* We can't use the object-like #define stat rpl_stat, because of - struct stat. This means that rpl_stat will not be used if the user - does (stat)(a,b). Oh well. */ -# if defined _AIX && defined stat && defined _LARGE_FILES - /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, - so we have to replace stat64() instead of stat(). */ -# undef stat64 -# define stat64(name, st) rpl_stat (name, st) -# elif 0 - /* Above, we define stat to _stati64. */ -# if defined __MINGW32__ && defined _stati64 -# ifndef _USE_32BIT_TIME_T - /* The system headers define _stati64 to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# elif defined _MSC_VER && defined _stati64 -# ifdef _USE_32BIT_TIME_T - /* The system headers define _stati64 to _stat32i64. */ -# undef _stat32i64 -# define _stat32i64(name, st) rpl_stat (name, st) -# else - /* The system headers define _stati64 to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# else -# undef _stati64 -# define _stati64(name, st) rpl_stat (name, st) -# endif -# elif defined __MINGW32__ && defined stat -# ifdef _USE_32BIT_TIME_T - /* The system headers define stat to _stat32i64. */ -# undef _stat32i64 -# define _stat32i64(name, st) rpl_stat (name, st) -# else - /* The system headers define stat to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# elif defined _MSC_VER && defined stat -# ifdef _USE_32BIT_TIME_T - /* The system headers define stat to _stat32. */ -# undef _stat32 -# define _stat32(name, st) rpl_stat (name, st) -# else - /* The system headers define stat to _stat64i32. */ -# undef _stat64i32 -# define _stat64i32(name, st) rpl_stat (name, st) -# endif -# else /* !(_AIX || __MINGW32__ || _MSC_VER) */ -# undef stat -# define stat(name, st) rpl_stat (name, st) -# endif /* !_LARGE_FILES */ -# endif /* !0 */ -_GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf) - _GL_ARG_NONNULL ((1, 2)); -# endif -#elif 0 -/* see above: - #define stat stat_used_without_requesting_gnulib_module_stat - */ -#elif defined GNULIB_POSIXCHECK -# undef stat -# if HAVE_RAW_DECL_STAT -_GL_WARN_ON_USE (stat, "stat is unportable - " - "use gnulib module stat for portability"); -# endif -#endif - - -#if 1 -# if ! 1 -/* mingw does not support symlinks, therefore it does not have lstat. But - without links, stat does just fine. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define lstat stat -# endif -_GL_CXXALIAS_RPL_1 (lstat, stat, int, - (const char *restrict name, struct stat *restrict buf)); -# elif 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lstat -# define lstat rpl_lstat -# endif -_GL_FUNCDECL_RPL (lstat, int, - (const char *restrict name, struct stat *restrict buf), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (lstat, int, - (const char *restrict name, struct stat *restrict buf)); -# else -_GL_CXXALIAS_SYS (lstat, int, - (const char *restrict name, struct stat *restrict buf)); -# endif -# if 1 -_GL_CXXALIASWARN (lstat); -# endif -#elif 0 -# if !GNULIB_LSTAT -# undef lstat -# define lstat lstat_used_without_requesting_gnulib_module_lstat -# endif -#elif defined GNULIB_POSIXCHECK -# undef lstat -# if HAVE_RAW_DECL_LSTAT -_GL_WARN_ON_USE (lstat, "lstat is unportable - " - "use gnulib module lstat for portability"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'umask' to '_umask', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::umask always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef umask -# define umask _umask -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (umask, mode_t, (mode_t mask)); -# else -_GL_CXXALIAS_SYS (umask, mode_t, (mode_t mask)); -# endif -_GL_CXXALIASWARN (umask); -#endif - - -#if 0 -/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat - implementation relies on futimesat, which on Solaris 10 makes an invocation - to utimensat that is meant to invoke the libc's utimensat(), not gnulib's - utimensat(). */ -# if 0 || (!1 && defined __sun) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef utimensat -# define utimensat rpl_utimensat -# endif -_GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag)); -# endif -# if __GLIBC__ >= 2 && 1 -_GL_CXXALIASWARN (utimensat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef utimensat -# if HAVE_RAW_DECL_UTIMENSAT -_GL_WARN_ON_USE (utimensat, "utimensat is not portable - " - "use gnulib module utimensat for portability"); -# endif -#endif - - -#endif /* _GL_SYS_STAT_H */ -#endif /* _GL_SYS_STAT_H */ -#endif diff --git a/jni/parted/lib/sys/types.h b/jni/parted/lib/sys/types.h deleted file mode 100755 index f8b607a..0000000 --- a/jni/parted/lib/sys/types.h +++ /dev/null @@ -1,123 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Provide a more complete sys/types.h. - - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* This file uses #include_next of a system file that defines time_t. - For the 'year2038' module to work right, needs to have been - included before. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if defined _WIN32 && !defined __CYGWIN__ \ - && (defined __need_off_t || defined __need___off64_t \ - || defined __need_ssize_t || defined __need_time_t) - -/* Special invocation convention inside mingw header files. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_SYS_TYPES_H - -/* The include_next requires a split double-inclusion guard. */ -# define _GL_INCLUDING_SYS_TYPES_H -#include_next -# undef _GL_INCLUDING_SYS_TYPES_H - -#ifndef _GL_SYS_TYPES_H -#define _GL_SYS_TYPES_H - -/* Override off_t if Large File Support is requested on native Windows. */ -#if 0 -/* Same as int64_t in . */ -# if defined _MSC_VER -# define off_t __int64 -# else -# define off_t long long int -# endif -/* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_64_BIT_OFF_T 1 -#endif - -/* Define the off64_t type. */ -#if !1 -# if !GNULIB_defined_off64_t -/* Define off64_t to int64_t always. */ -typedef long long off64_t; -# define GNULIB_defined_off64_t 1 -# endif -#endif - -/* Override dev_t and ino_t if distinguishable inodes support is requested - on native Windows. */ -#if 0 - -# if 0 == 2 -/* Experimental, not useful in Windows 10. */ - -/* Define dev_t to a 64-bit type. */ -# if !defined GNULIB_defined_dev_t -typedef unsigned long long int rpl_dev_t; -# undef dev_t -# define dev_t rpl_dev_t -# define GNULIB_defined_dev_t 1 -# endif - -/* Define ino_t to a 128-bit type. */ -# if !defined GNULIB_defined_ino_t -/* MSVC does not have a 128-bit integer type. - GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ -typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; -# undef ino_t -# define ino_t rpl_ino_t -# define GNULIB_defined_ino_t 1 -# endif - -# else /* 0 == 1 */ - -/* Define ino_t to a 64-bit type. */ -# if !defined GNULIB_defined_ino_t -typedef unsigned long long int rpl_ino_t; -# undef ino_t -# define ino_t rpl_ino_t -# define GNULIB_defined_ino_t 1 -# endif - -# endif - -/* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_STAT_INODES 0 - -#endif - -/* MSVC 9 defines size_t in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ -# include -#endif - -#endif /* _GL_SYS_TYPES_H */ -#endif /* _GL_SYS_TYPES_H */ -#endif /* __need_XXX */ diff --git a/jni/parted/lib/time.h b/jni/parted/lib/time.h deleted file mode 100755 index cab4bc2..0000000 --- a/jni/parted/lib/time.h +++ /dev/null @@ -1,1188 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A more-standard . - - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* This file uses #include_next of a system file that defines time_t. - For the 'year2038' module to work right, needs to have been - included before. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Don't get in the way of glibc when it includes time.h merely to - declare a few standard symbols, rather than to declare all the - symbols. (However, skip this for MinGW as it treats __need_time_t - incompatibly.) Also, Solaris 8 eventually includes itself - recursively; if that is happening, just include the system - without adding our own declarations. */ -#if (((defined __need_time_t || defined __need_clock_t \ - || defined __need_timespec) \ - && !defined __MINGW32__) \ - || defined _GL_TIME_H) - -# include_next - -#else - -# define _GL_TIME_H - -/* mingw's provides the functions asctime_r, ctime_r, gmtime_r, - localtime_r only if or has been included before. */ -# if defined __MINGW32__ -# include -# endif - -# include_next - -/* This file uses _GL_ATTRIBUTE_DEPRECATED, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -# if !_GL_CONFIG_H_INCLUDED -# error "Please include config.h first." -# endif - -/* NetBSD 5.0 mis-defines NULL. */ -# include - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Some systems don't define struct timespec (e.g., AIX 4.1). - Or they define it with the wrong member names or define it in - (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, - but the pthreads-win32 library defines it in . */ -# if ! 1 -# if 0 -# include -# elif 0 -# include -# elif 0 -# include -# else - -# ifdef __cplusplus -extern "C" { -# endif - -# if !GNULIB_defined_struct_timespec -# undef timespec -# define timespec rpl_timespec -struct timespec -{ - time_t tv_sec; - long int tv_nsec; -}; -# define GNULIB_defined_struct_timespec 1 -# endif - -# ifdef __cplusplus -} -# endif - -# endif -# endif - -# if !GNULIB_defined_struct_time_t_must_be_integral -/* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html - requires time_t to be an integer type, even though C99 permits floating - point. We don't know of any implementation that uses floating - point, and it is much easier to write code that doesn't have to - worry about that corner case, so we force the issue. */ -struct __time_t_must_be_integral { - unsigned int __floating_time_t_unsupported : (time_t) 1; -}; -# define GNULIB_defined_struct_time_t_must_be_integral 1 -# endif - -/* Define TIME_UTC, a positive integer constant used for timespec_get(). */ -# if ! 1 -# if !GNULIB_defined_TIME_UTC -# define TIME_UTC 1 -# define GNULIB_defined_TIME_UTC 1 -# endif -# endif - -# if 0 -/* tzname[0..1]: Abbreviated time zone names, set by the tzset() function. */ -# if NEED_DECL_TZNAME -extern -# ifdef __cplusplus - "C" -# endif - char *tzname[]; -# endif -# if defined _WIN32 && !defined __CYGWIN__ -/* On native Windows, map 'tzname' to '_tzname' etc., so that -loldnames is not - required. */ -# undef tzname -# define tzname _tzname -# endif -# endif - -/* Set *TS to the current time, and return BASE. - Upon failure, return 0. */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef timespec_get -# define timespec_get rpl_timespec_get -# endif -_GL_FUNCDECL_RPL (timespec_get, int, (struct timespec *ts, int base), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (timespec_get, int, (struct timespec *ts, int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (timespec_get); -# endif -# elif defined GNULIB_POSIXCHECK -# undef timespec_get -# if HAVE_RAW_DECL_TIMESPEC_GET -_GL_WARN_ON_USE (timespec_get, "timespec_get is unportable - " - "use gnulib module timespec_get for portability"); -# endif -# endif - -/* Set *TS to the current time resolution, and return BASE. - Upon failure, return 0. */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef timespec_getres -# define timespec_getres rpl_timespec_getres -# endif -_GL_FUNCDECL_RPL (timespec_getres, int, (struct timespec *ts, int base), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (timespec_getres, int, (struct timespec *ts, int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (timespec_getres, int, (struct timespec *ts, int base), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base)); -# endif -_GL_CXXALIASWARN (timespec_getres); -# elif defined GNULIB_POSIXCHECK -# undef timespec_getres -# if HAVE_RAW_DECL_TIMESPEC_GETRES -_GL_WARN_ON_USE (timespec_getres, "timespec_getres is unportable - " - "use gnulib module timespec_getres for portability"); -# endif -# endif - -/* Return the number of seconds that have elapsed since the Epoch. */ -# if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define time rpl_time -# endif -_GL_FUNCDECL_RPL (time, time_t, (time_t *__tp), ); -_GL_CXXALIAS_RPL (time, time_t, (time_t *__tp)); -# else -_GL_CXXALIAS_SYS (time, time_t, (time_t *__tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (time); -# endif -# elif defined GNULIB_POSIXCHECK -# undef time -# if HAVE_RAW_DECL_TIME -_GL_WARN_ON_USE (time, "time has consistency problems - " - "use gnulib module time for portability"); -# endif -# endif - -/* Sleep for at least RQTP seconds unless interrupted, If interrupted, - return -1 and store the remaining time into RMTP. See - . */ -# if IN_PARTED_GNULIB_TESTS -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define nanosleep rpl_nanosleep -# endif -_GL_FUNCDECL_RPL (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp)); -# endif -_GL_CXXALIASWARN (nanosleep); -# elif defined GNULIB_POSIXCHECK -# undef nanosleep -# if HAVE_RAW_DECL_NANOSLEEP -_GL_WARN_ON_USE (nanosleep, "nanosleep is unportable - " - "use gnulib module nanosleep for portability"); -# endif -# endif - -/* Initialize time conversion information. */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset rpl_tzset -# endif -_GL_FUNCDECL_RPL (tzset, void, (void), ); -_GL_CXXALIAS_RPL (tzset, void, (void)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset _tzset -# endif -_GL_CXXALIAS_MDA (tzset, void, (void)); -# else -_GL_CXXALIAS_SYS (tzset, void, (void)); -# endif -_GL_CXXALIASWARN (tzset); -# elif 1 -/* On native Windows, map 'tzset' to '_tzset', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::tzset always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset _tzset -# endif -_GL_CXXALIAS_MDA (tzset, void, (void)); -# else -_GL_CXXALIAS_SYS (tzset, void, (void)); -# endif -_GL_CXXALIASWARN (tzset); -# elif defined GNULIB_POSIXCHECK -# undef tzset -# if HAVE_RAW_DECL_TZSET -_GL_WARN_ON_USE (tzset, "tzset has portability problems - " - "use gnulib module tzset for portability"); -# endif -# endif - -/* Return the 'time_t' representation of TP and normalize TP. */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mktime rpl_mktime -# endif -_GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); -# else -_GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mktime); -# endif -# elif defined GNULIB_POSIXCHECK -# undef mktime -# if HAVE_RAW_DECL_MKTIME -_GL_WARN_ON_USE (mktime, "mktime has portability problems - " - "use gnulib module mktime for portability"); -# endif -# endif - -/* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localtime_r -# define localtime_r rpl_localtime_r -# endif -_GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# endif -# if 1 -_GL_CXXALIASWARN (localtime_r); -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gmtime_r -# define gmtime_r rpl_gmtime_r -# endif -_GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# endif -# if 1 -_GL_CXXALIASWARN (gmtime_r); -# endif -# elif defined GNULIB_POSIXCHECK -# undef localtime_r -# if HAVE_RAW_DECL_LOCALTIME_R -_GL_WARN_ON_USE (localtime_r, "localtime_r is unportable - " - "use gnulib module time_r for portability"); -# endif -# undef gmtime_r -# if HAVE_RAW_DECL_GMTIME_R -_GL_WARN_ON_USE (gmtime_r, "gmtime_r is unportable - " - "use gnulib module time_r for portability"); -# endif -# endif - -/* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ -# if 0 || 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localtime -# define localtime rpl_localtime -# endif -_GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); -# else -_GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (localtime); -# endif -# elif defined GNULIB_POSIXCHECK -# undef localtime -# if HAVE_RAW_DECL_LOCALTIME -_GL_WARN_ON_USE (localtime, "localtime has portability problems - " - "use gnulib module localtime for portability"); -# endif -# endif - -# if 0 || 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gmtime -# define gmtime rpl_gmtime -# endif -_GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); -# else -_GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); -# endif -_GL_CXXALIASWARN (gmtime); -# endif - -/* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store - the resulting broken-down time into TM. See - . */ -# if 0 -# if ! 1 -_GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, - char const *restrict __format, - struct tm *restrict __tm), - _GL_ARG_NONNULL ((1, 2, 3))); -# endif -_GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, - char const *restrict __format, - struct tm *restrict __tm)); -_GL_CXXALIASWARN (strptime); -# elif defined GNULIB_POSIXCHECK -# undef strptime -# if HAVE_RAW_DECL_STRPTIME -_GL_WARN_ON_USE (strptime, "strptime is unportable - " - "use gnulib module strptime for portability"); -# endif -# endif - -/* Convert *TP to a date and time string. See - . */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define ctime rpl_ctime -# endif -# ifndef __cplusplus -_GL_ATTRIBUTE_DEPRECATED -# endif -_GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); -# else -_GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ctime); -# endif -# elif defined GNULIB_POSIXCHECK -/* No need to warn about portability, as a more serious warning is below. */ -# endif - -/* Convert *TP to a date and time string. See - . */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strftime rpl_strftime -# endif -_GL_FUNCDECL_RPL (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp), - _GL_ARG_NONNULL ((1, 3, 4))); -_GL_CXXALIAS_RPL (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp)); -# else -_GL_CXXALIAS_SYS (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strftime); -# endif -# elif defined GNULIB_POSIXCHECK -# undef strftime -# if HAVE_RAW_DECL_STRFTIME -_GL_WARN_ON_USE (strftime, "strftime has portability problems - " - "use gnulib module strftime-fixes for portability"); -# endif -# endif - -# if 0 -/* Functions that use a first-class time zone data type, instead of - relying on an implicit global time zone. - Inspired by NetBSD. */ - -/* Represents a time zone. - (timezone_t) NULL stands for UTC. */ -# if !0 -# if !GNULIB_defined_timezone_t -# if !0 -typedef struct tm_zone *timezone_t; -# else -typedef struct tm_zone *rpl_timezone_t; -# define timezone_t rpl_timezone_t -# endif -# define GNULIB_defined_timezone_t 1 -# endif -# endif - -/* tzalloc (name) - Returns a time zone object for the given time zone NAME. This object - represents the time zone that other functions would use it the TZ - environment variable was set to NAME. - If NAME is NULL, the result represents the time zone that other functions - would use it the TZ environment variable was unset. - May return NULL if NAME is invalid (this is platform dependent) or - upon memory allocation failure. */ -# if !0 -_GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name), ); -_GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); -# endif - -/* tzfree (tz) - Frees a time zone object. - The argument must have been returned by tzalloc(). */ -# if !0 -_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz), ); -_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); -# endif - -/* localtime_rz (tz, &t, &result) - Converts an absolute time T to a broken-down time RESULT, assuming the - time zone TZ. - This function is like 'localtime_r', but relies on the argument TZ instead - of an implicit global time zone. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localtime_rz -# define localtime_rz rpl_localtime_rz -# endif -_GL_FUNCDECL_RPL (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result), - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result)); -# else -# if !0 -_GL_FUNCDECL_SYS (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result), - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result)); -# endif - -/* mktime_z (tz, &tm) - Normalizes the broken-down time TM and converts it to an absolute time, - assuming the time zone TZ. Returns the absolute time. - This function is like 'mktime', but relies on the argument TZ instead - of an implicit global time zone. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mktime_z -# define mktime_z rpl_mktime_z -# endif -_GL_FUNCDECL_RPL (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm)); -# else -# if !0 -_GL_FUNCDECL_SYS (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm)); -# endif - -/* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' - in the 'tm_zone' member of 'struct tm') are valid as long as - - the 'struct tm' argument is not destroyed or overwritten, - and - - the 'timezone_t' argument is not freed through tzfree(). */ - -# endif - -/* Convert TM to a time_t value, assuming UTC. */ -# if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef timegm -# define timegm rpl_timegm -# endif -_GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm), _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (timegm); -# endif -# elif defined GNULIB_POSIXCHECK -# undef timegm -# if HAVE_RAW_DECL_TIMEGM -_GL_WARN_ON_USE (timegm, "timegm is unportable - " - "use gnulib module timegm for portability"); -# endif -# endif - -/* Encourage applications to avoid unsafe functions that can overrun - buffers when given outlandish struct tm values. Portable - applications should use strftime (or even sprintf) instead. */ -# if defined GNULIB_POSIXCHECK -# undef asctime -# if HAVE_RAW_DECL_ASCTIME -_GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef asctime_r -# if HAVE_RAW_DECL_ASCTIME_R -_GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef ctime -# if HAVE_RAW_DECL_CTIME -_GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef ctime_r -# if HAVE_RAW_DECL_CTIME_R -_GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# endif - -#endif diff --git a/jni/parted/lib/uchar.h b/jni/parted/lib/uchar.h deleted file mode 100755 index 3e1a901..0000000 --- a/jni/parted/lib/uchar.h +++ /dev/null @@ -1,1449 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* substitute - 16-bit and 32-bit wide character types. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -/* - * ISO C 23 for platforms that lack it. - */ - -#ifndef _GL_UCHAR_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# if defined __HAIKU__ -/* Work around . */ -# include -# endif -/* On AIX 7.2 with xlclang++, /usr/include/uchar.h produces compilation errors - because it contains typedef definitions of char16_t and char32_t, however - char16_t and char32_t are keywords in this situation. To work around it, - define char16_t and char32_t as macros. */ -# if defined __cplusplus && defined _AIX && defined __ibmxl__ && defined __clang__ -# define char16_t gl_char16_t -# define char32_t gl_char32_t -# endif -# include_next -#endif - -#ifndef _GL_UCHAR_H -#define _GL_UCHAR_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, _GL_BEGIN_C_LINKAGE, - _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* Get uint_least16_t, uint_least32_t. */ -#include - -/* Get mbstate_t, size_t. */ -#include - -/* For the inline functions. */ -#include -#include - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -_GL_INLINE_HEADER_BEGIN - - -#if !(1 || (defined __cplusplus && 0)) - -/* An 8-bit variant of wchar_t. - Note: This type is only mandated by ISO C 23 or newer, and it does - denote UTF-8 units. */ -typedef unsigned char char8_t; - -#elif 1 - -typedef unsigned char gl_char8_t; -# define char8_t gl_char8_t - -#endif - -#if !(1 || (defined __cplusplus && 0)) - -/* A 16-bit variant of wchar_t. - Note: This type is only mandated by ISO C 11 or newer. In ISO C 23 - and newer, it denotes UTF-16 units; in older versions of ISO C it did - so only on platforms on which __STDC_UTF_16__ was defined. */ -typedef uint_least16_t char16_t; - -#elif 0 - -typedef uint_least16_t gl_char16_t; -# define char16_t gl_char16_t - -#endif - -#if !(1 || (defined __cplusplus && 0)) - -/* A 32-bit variant of wchar_t. - Note: This type is only mandated by ISO C 11 or newer. In ISO C 23 - and newer, it denotes UTF-32 code points; in older versions of ISO C - it did so only on platforms on which __STDC_UTF_32__ was defined. - In gnulib, we guarantee that it denotes UTF-32 code points if and - only if the module 'uchar-c23' is in use. */ -typedef uint_least32_t char32_t; - -#elif 0 - -typedef uint_least32_t gl_char32_t; -# define char32_t gl_char32_t - -#endif - -/* Define if a 'char32_t' can hold more characters than a 'wchar_t'. */ -#if 0 /* 32-bit AIX, Cygwin, native Windows */ -# define _GL_SMALL_WCHAR_T 1 -#endif - -/* Define if 'wchar_t', like 'char32_t', - - is a 32-bit type, and - - represents Unicode code points. - For this test, we can use __STDC_ISO_10646__ (defined by glibc, musl libc, - Cygwin) but need to consider _GL_SMALL_WCHAR_T, so as to exclude Cygwin. - We cannot use __STDC_UTF_16__ or __STDC_UTF_32__ - - because these macros provide info about char16_t and char32_t (not - wchar_t!), and - - because GCC >= 4.9 defines these macros on all platforms, even on - FreeBSD and Solaris. - We should better not use __STD_UTF_16__, __STD_UTF_32__ either, because - these macros are misspellings, only defined by Android's . */ -#if defined __STDC_ISO_10646__ && !_GL_SMALL_WCHAR_T -/* glibc, musl libc */ -# define _GL_WCHAR_T_IS_UCS4 1 -#endif -#if _GL_WCHAR_T_IS_UCS4 -static_assert (sizeof (char32_t) == sizeof (wchar_t)); -#endif - - -/* Convert a single-byte character to a 32-bit wide character. */ -#if IN_PARTED_GNULIB_TESTS -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_BTOC32 -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ATTRIBUTE_PURE wint_t -btoc32 (int c) -{ - return -# if 1 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - btowc (c); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (btoc32, wint_t, (int c), _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (btoc32, wint_t, (int c)); -_GL_CXXALIASWARN (btoc32); -#endif - - -/* Test a specific property of a 32-bit wide character. */ -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISALNUM -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isalnum (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswalnum (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isalnum, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isalnum, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isalnum); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISALPHA -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isalpha (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswalpha (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isalpha, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isalpha, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isalpha); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISBLANK -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isblank (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswblank (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isblank, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isblank, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isblank); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISCNTRL -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32iscntrl (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswcntrl (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32iscntrl, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32iscntrl, int, (wint_t wc)); -_GL_CXXALIASWARN (c32iscntrl); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISDIGIT -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isdigit (wint_t wc) -{ - return -# if 1 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswdigit (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isdigit, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isdigit, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isdigit); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISGRAPH -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isgraph (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswgraph (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isgraph, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isgraph, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isgraph); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISLOWER -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32islower (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswlower (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32islower, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32islower, int, (wint_t wc)); -_GL_CXXALIASWARN (c32islower); -#endif -#if 1 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISPRINT -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isprint (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswprint (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isprint, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isprint, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isprint); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISPUNCT -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32ispunct (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswpunct (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32ispunct, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32ispunct, int, (wint_t wc)); -_GL_CXXALIASWARN (c32ispunct); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISSPACE -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isspace (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswspace (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isspace, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isspace, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isspace); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISUPPER -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isupper (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswupper (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isupper, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isupper, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isupper); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32ISXDIGIT -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32isxdigit (wint_t wc) -{ - return -# if 1 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswxdigit (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32isxdigit, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32isxdigit, int, (wint_t wc)); -_GL_CXXALIASWARN (c32isxdigit); -#endif - - -/* Case mapping of a 32-bit wide character. */ -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32TOLOWER -_GL_BEGIN_C_LINKAGE -_GL_INLINE wint_t -c32tolower (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - towlower (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32tolower, wint_t, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32tolower, wint_t, (wint_t wc)); -_GL_CXXALIASWARN (c32tolower); -#endif -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32TOUPPER -_GL_BEGIN_C_LINKAGE -_GL_INLINE wint_t -c32toupper (wint_t wc) -{ - return -# if defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - towupper (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32toupper, wint_t, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32toupper, wint_t, (wint_t wc)); -_GL_CXXALIASWARN (c32toupper); -#endif - - -/* Number of screen columns needed for a 32-bit wide character. */ -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32WIDTH -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32width (char32_t wc) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wcwidth (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32width, int, (char32_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32width, int, (char32_t wc)); -_GL_CXXALIASWARN (c32width); -#endif - - -/* Converts a 32-bit wide character to a multibyte character. */ -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef c32rtomb -# define c32rtomb rpl_c32rtomb -# endif -_GL_FUNCDECL_RPL (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps), ); -_GL_CXXALIAS_RPL (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps), ); -# endif -_GL_CXXALIAS_SYS (c32rtomb, size_t, (char *s, char32_t wc, mbstate_t *ps)); -# endif -# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 -_GL_CXXALIASWARN (c32rtomb); -# endif -#elif defined GNULIB_POSIXCHECK -# undef c32rtomb -# if HAVE_RAW_DECL_C32RTOMB -_GL_WARN_ON_USE (c32rtomb, "c32rtomb is not portable - " - "use gnulib module c32rtomb for portability"); -# endif -#endif - - -/* Convert a 32-bit wide string to a string. */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32SNRTOMBS -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) size_t -c32snrtombs (char *dest, const char32_t **srcp, size_t srclen, size_t len, - mbstate_t *ps) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wcsnrtombs (dest, (const wchar_t **) srcp, srclen, len, ps); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32snrtombs, size_t, - (char *dest, const char32_t **srcp, size_t srclen, size_t len, - mbstate_t *ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (c32snrtombs, size_t, - (char *dest, const char32_t **srcp, size_t srclen, size_t len, - mbstate_t *ps)); -_GL_CXXALIASWARN (c32snrtombs); -#endif - - -/* Convert a 32-bit wide string to a string. */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32SRTOMBS -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) size_t -c32srtombs (char *dest, const char32_t **srcp, size_t len, mbstate_t *ps) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wcsrtombs (dest, (const wchar_t **) srcp, len, ps); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32srtombs, size_t, - (char *dest, const char32_t **srcp, size_t len, - mbstate_t *ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (c32srtombs, size_t, - (char *dest, const char32_t **srcp, size_t len, - mbstate_t *ps)); -_GL_CXXALIASWARN (c32srtombs); -#endif - - -/* Convert a 32-bit wide string to a string. */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32STOMBS -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) size_t -c32stombs (char *dest, const char32_t *src, size_t len) -{ - mbstate_t state; - - mbszero (&state); - return c32srtombs (dest, &src, len, &state); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32stombs, size_t, - (char *dest, const char32_t *src, size_t len), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (c32stombs, size_t, - (char *dest, const char32_t *src, size_t len)); -_GL_CXXALIASWARN (c32stombs); -#endif - - -/* Number of screen columns needed for a size-bounded 32-bit wide string. */ -#if 0 -# if (_GL_WCHAR_T_IS_UCS4 && !GNULIB_defined_mbstate_t) && !defined IN_C32SWIDTH -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((1)) int -c32swidth (const char32_t *s, size_t n) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wcswidth ((const wchar_t *) s, n); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32swidth, int, (const char32_t *s, size_t n), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (c32swidth, int, (const char32_t *s, size_t n)); -_GL_CXXALIASWARN (c32swidth); -#endif - - -/* Converts a 32-bit wide character to unibyte character. - Returns the single-byte representation of WC if it exists, - or EOF otherwise. */ -#if IN_PARTED_GNULIB_TESTS -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32TOB -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32tob (wint_t wc) -{ - return -# if IN_PARTED_GNULIB_TESTS && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wctob (wc); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32tob, int, (wint_t wc), ); -# endif -_GL_CXXALIAS_SYS (c32tob, int, (wint_t wc)); -_GL_CXXALIASWARN (c32tob); -#endif - - -/* Converts a multibyte character to a 32-bit wide character. */ -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbrtoc32 -# define mbrtoc32 rpl_mbrtoc32 -# endif -_GL_FUNCDECL_RPL (mbrtoc32, size_t, - (char32_t *pc, const char *s, size_t n, mbstate_t *ps), ); -_GL_CXXALIAS_RPL (mbrtoc32, size_t, - (char32_t *pc, const char *s, size_t n, mbstate_t *ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbrtoc32, size_t, - (char32_t *pc, const char *s, size_t n, mbstate_t *ps), ); -# endif -_GL_CXXALIAS_SYS (mbrtoc32, size_t, - (char32_t *pc, const char *s, size_t n, mbstate_t *ps)); -# endif -# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 -_GL_CXXALIASWARN (mbrtoc32); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrtoc32 -# if HAVE_RAW_DECL_MBRTOC32 -_GL_WARN_ON_USE (mbrtoc32, "mbrtoc32 is not portable - " - "use gnulib module mbrtoc32 for portability"); -# endif -#endif - - -/* Converts a multibyte character and returns the next 16-bit wide - character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbrtoc16 -# define mbrtoc16 rpl_mbrtoc16 -# endif -_GL_FUNCDECL_RPL (mbrtoc16, size_t, - (char16_t *pc, const char *s, size_t n, mbstate_t *ps), ); -_GL_CXXALIAS_RPL (mbrtoc16, size_t, - (char16_t *pc, const char *s, size_t n, mbstate_t *ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbrtoc16, size_t, - (char16_t *pc, const char *s, size_t n, mbstate_t *ps), ); -# endif -_GL_CXXALIAS_SYS (mbrtoc16, size_t, - (char16_t *pc, const char *s, size_t n, mbstate_t *ps)); -# endif -# if __GLIBC__ + (__GLIBC_MINOR__ >= 16) > 2 -_GL_CXXALIASWARN (mbrtoc16); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrtoc16 -# if HAVE_RAW_DECL_MBRTOC16 -_GL_WARN_ON_USE (mbrtoc16, "mbrtoc16 is not portable - " - "use gnulib module mbrtoc16 for portability"); -# endif -#endif - - -/* Convert a string to a 32-bit wide string. */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_MBSNRTOC32S -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) size_t -mbsnrtoc32s (char32_t *dest, const char **srcp, size_t srclen, size_t len, - mbstate_t *ps) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - mbsnrtowcs ((wchar_t *) dest, srcp, srclen, len, ps); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (mbsnrtoc32s, size_t, - (char32_t *dest, const char **srcp, size_t srclen, size_t len, - mbstate_t *ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbsnrtoc32s, size_t, - (char32_t *dest, const char **srcp, size_t srclen, size_t len, - mbstate_t *ps)); -_GL_CXXALIASWARN (mbsnrtoc32s); -#endif - - -/* Convert a string to a 32-bit wide string. */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_MBSRTOC32S -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) size_t -mbsrtoc32s (char32_t *dest, const char **srcp, size_t len, mbstate_t *ps) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - mbsrtowcs ((wchar_t *) dest, srcp, len, ps); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (mbsrtoc32s, size_t, - (char32_t *dest, const char **srcp, size_t len, - mbstate_t *ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbsrtoc32s, size_t, - (char32_t *dest, const char **srcp, size_t len, - mbstate_t *ps)); -_GL_CXXALIASWARN (mbsrtoc32s); -#endif - - -/* Convert a string to a 32-bit wide string. */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_MBSTOC32S -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) size_t -mbstoc32s (char32_t *dest, const char *src, size_t len) -{ - mbstate_t state; - - mbszero (&state); - return mbsrtoc32s (dest, &src, len, &state); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (mbstoc32s, size_t, - (char32_t *dest, const char *src, size_t len), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbstoc32s, size_t, - (char32_t *dest, const char *src, size_t len)); -_GL_CXXALIASWARN (mbstoc32s); -#endif - - -#if 0 || 0 -/* A scalar type. Instances of this type, other than (c32_type_test_t) 0, - represent a character property, sometimes also viewed as a "character class". - It can be applied to 32-bit wide characters. It is the counterpart of - type 'wctype_t' for wide characters. - To test whether a given character has a certain property, use the function - 'c32_apply_type_test'. */ -# if _GL_WCHAR_T_IS_UCS4 -typedef wctype_t c32_type_test_t; -# else -typedef /*bool*/int (*c32_type_test_t) (wint_t wc); -# endif -#endif - -/* Return a character property with the given name, or (c32_type_test_t) 0 - if the designated property does not exist. - This function is the counterpart of function 'wctype' for wide characters. - */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32_GET_TYPE_TEST -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((1)) c32_type_test_t -c32_get_type_test (const char *name) -{ - return -# if 1 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wctype (name); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32_get_type_test, c32_type_test_t, (const char *name), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (c32_get_type_test, c32_type_test_t, (const char *name)); -_GL_CXXALIASWARN (c32_get_type_test); -#endif - -/* Test whether a given 32-bit wide character has the specified character - property. - Return non-zero if true, zero if false or if the argument is WEOF. - This function is the counterpart of function 'iswctype' for wide characters. - */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 -# if !defined IN_C32_APPLY_TYPE_TEST -_GL_BEGIN_C_LINKAGE -_GL_INLINE int -c32_apply_type_test (wint_t wc, c32_type_test_t property) -{ - return -# if 1 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - iswctype (wc, property); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32_apply_type_test, int, - (wint_t wc, c32_type_test_t property), ); -# endif -# else -_GL_FUNCDECL_SYS (c32_apply_type_test, int, - (wint_t wc, c32_type_test_t property), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (c32_apply_type_test, int, - (wint_t wc, c32_type_test_t property)); -_GL_CXXALIASWARN (c32_apply_type_test); -#endif - - -#if 0 || 0 -/* A scalar type. Instances of this type, other than (c32_mapping_t) 0, - represent a character mapping. It can be applied to 32-bit wide characters. - It is the counterpart of type 'wctrans_t' for wide characters. - To apply a certain mapping to a given character, use the function - 'c32_apply_mapping'. */ -# if _GL_WCHAR_T_IS_UCS4 -typedef wctrans_t c32_mapping_t; -# else -typedef wint_t (*c32_mapping_t) (wint_t wc); -# endif -#endif - -/* Return a character mapping with the given name, or (c32_mapping_t) 0 - if the designated mapping does not exist. - This function is the counterpart of function 'wctrans' for wide characters. - */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32_GET_MAPPING -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((1)) c32_mapping_t -c32_get_mapping (const char *name) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - wctrans (name); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32_get_mapping, c32_mapping_t, (const char *name), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (c32_get_mapping, c32_mapping_t, (const char *name)); -_GL_CXXALIASWARN (c32_get_mapping); -#endif - -/* Apply the specified character mapping to a given 32-bit wide character. - Return the result of this mapping. Return the WC argument unchanged if it is - WEOF. - This function is the counterpart of function 'towctrans' for wide characters. - */ -#if 0 -# if _GL_WCHAR_T_IS_UCS4 && !defined IN_C32_APPLY_MAPPING -_GL_BEGIN_C_LINKAGE -_GL_INLINE _GL_ARG_NONNULL ((2)) wint_t -c32_apply_mapping (wint_t wc, c32_mapping_t mapping) -{ - return -# if 0 && defined __cplusplus && defined GNULIB_NAMESPACE - GNULIB_NAMESPACE:: -# endif - towctrans (wc, mapping); -} -_GL_END_C_LINKAGE -# else -_GL_FUNCDECL_SYS (c32_apply_mapping, wint_t, - (wint_t wc, c32_mapping_t mapping), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (c32_apply_mapping, wint_t, - (wint_t wc, c32_mapping_t mapping)); -_GL_CXXALIASWARN (c32_apply_mapping); -#endif - - -_GL_INLINE_HEADER_END - -#endif /* _GL_UCHAR_H */ -#endif /* _GL_UCHAR_H */ diff --git a/jni/parted/lib/unictype.h b/jni/parted/lib/unictype.h deleted file mode 100755 index f551234..0000000 --- a/jni/parted/lib/unictype.h +++ /dev/null @@ -1,1147 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Unicode character classification and properties. - Copyright (C) 2002, 2005-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _UNICTYPE_H -#define _UNICTYPE_H - -#include "unitypes.h" - -/* Get bool. */ -#include - -/* Get size_t. */ -#include - -#if 0 -# include -#else -# define LIBUNISTRING_DLL_VARIABLE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* ========================================================================= */ - -/* Field 1 of Unicode Character Database: Character name. - See "uniname.h". */ - -/* ========================================================================= */ - -/* Field 2 of Unicode Character Database: General category. */ - -/* Data type denoting a General category value. This is not just a bitmask, - but rather a bitmask and a pointer to the lookup table, so that programs - that use only the predefined bitmasks (i.e. don't combine bitmasks with & - and |) don't have a link-time dependency towards the big general table. */ -typedef struct -{ - uint32_t bitmask : 31; - /*bool*/ unsigned int generic : 1; - union - { - const void *table; /* when generic is 0 */ - bool (*lookup_fn) (ucs4_t uc, uint32_t bitmask); /* when generic is 1 */ - } lookup; -} -uc_general_category_t; - -/* Bits and bit masks denoting General category values. UnicodeData-3.2.0.html - says a 32-bit integer will always suffice to represent them. - These bit masks can only be used with the uc_is_general_category_withtable - function. */ -enum -{ - UC_CATEGORY_MASK_L = 0x0000001f, - UC_CATEGORY_MASK_LC = 0x00000007, - UC_CATEGORY_MASK_Lu = 0x00000001, - UC_CATEGORY_MASK_Ll = 0x00000002, - UC_CATEGORY_MASK_Lt = 0x00000004, - UC_CATEGORY_MASK_Lm = 0x00000008, - UC_CATEGORY_MASK_Lo = 0x00000010, - UC_CATEGORY_MASK_M = 0x000000e0, - UC_CATEGORY_MASK_Mn = 0x00000020, - UC_CATEGORY_MASK_Mc = 0x00000040, - UC_CATEGORY_MASK_Me = 0x00000080, - UC_CATEGORY_MASK_N = 0x00000700, - UC_CATEGORY_MASK_Nd = 0x00000100, - UC_CATEGORY_MASK_Nl = 0x00000200, - UC_CATEGORY_MASK_No = 0x00000400, - UC_CATEGORY_MASK_P = 0x0003f800, - UC_CATEGORY_MASK_Pc = 0x00000800, - UC_CATEGORY_MASK_Pd = 0x00001000, - UC_CATEGORY_MASK_Ps = 0x00002000, - UC_CATEGORY_MASK_Pe = 0x00004000, - UC_CATEGORY_MASK_Pi = 0x00008000, - UC_CATEGORY_MASK_Pf = 0x00010000, - UC_CATEGORY_MASK_Po = 0x00020000, - UC_CATEGORY_MASK_S = 0x003c0000, - UC_CATEGORY_MASK_Sm = 0x00040000, - UC_CATEGORY_MASK_Sc = 0x00080000, - UC_CATEGORY_MASK_Sk = 0x00100000, - UC_CATEGORY_MASK_So = 0x00200000, - UC_CATEGORY_MASK_Z = 0x01c00000, - UC_CATEGORY_MASK_Zs = 0x00400000, - UC_CATEGORY_MASK_Zl = 0x00800000, - UC_CATEGORY_MASK_Zp = 0x01000000, - UC_CATEGORY_MASK_C = 0x3e000000, - UC_CATEGORY_MASK_Cc = 0x02000000, - UC_CATEGORY_MASK_Cf = 0x04000000, - UC_CATEGORY_MASK_Cs = 0x08000000, - UC_CATEGORY_MASK_Co = 0x10000000, - UC_CATEGORY_MASK_Cn = 0x20000000 -}; - -/* Predefined General category values. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_L; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_LC; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lu; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ll; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lt; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lm; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Lo; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_M; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Mn; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Mc; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Me; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_N; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Nd; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Nl; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_No; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_P; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pc; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pd; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Ps; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pe; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pi; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Pf; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Po; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_S; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sm; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sc; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Sk; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_So; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Z; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zs; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zl; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Zp; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_C; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cc; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cf; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cs; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Co; -extern LIBUNISTRING_DLL_VARIABLE const uc_general_category_t UC_CATEGORY_Cn; -/* Non-public. */ -extern const uc_general_category_t _UC_CATEGORY_NONE; - -/* Alias names for predefined General category values. */ -#define UC_LETTER UC_CATEGORY_L -#define UC_CASED_LETTER UC_CATEGORY_LC -#define UC_UPPERCASE_LETTER UC_CATEGORY_Lu -#define UC_LOWERCASE_LETTER UC_CATEGORY_Ll -#define UC_TITLECASE_LETTER UC_CATEGORY_Lt -#define UC_MODIFIER_LETTER UC_CATEGORY_Lm -#define UC_OTHER_LETTER UC_CATEGORY_Lo -#define UC_MARK UC_CATEGORY_M -#define UC_NON_SPACING_MARK UC_CATEGORY_Mn -#define UC_COMBINING_SPACING_MARK UC_CATEGORY_Mc -#define UC_ENCLOSING_MARK UC_CATEGORY_Me -#define UC_NUMBER UC_CATEGORY_N -#define UC_DECIMAL_DIGIT_NUMBER UC_CATEGORY_Nd -#define UC_LETTER_NUMBER UC_CATEGORY_Nl -#define UC_OTHER_NUMBER UC_CATEGORY_No -#define UC_PUNCTUATION UC_CATEGORY_P -#define UC_CONNECTOR_PUNCTUATION UC_CATEGORY_Pc -#define UC_DASH_PUNCTUATION UC_CATEGORY_Pd -#define UC_OPEN_PUNCTUATION UC_CATEGORY_Ps /* a.k.a. UC_START_PUNCTUATION */ -#define UC_CLOSE_PUNCTUATION UC_CATEGORY_Pe /* a.k.a. UC_END_PUNCTUATION */ -#define UC_INITIAL_QUOTE_PUNCTUATION UC_CATEGORY_Pi -#define UC_FINAL_QUOTE_PUNCTUATION UC_CATEGORY_Pf -#define UC_OTHER_PUNCTUATION UC_CATEGORY_Po -#define UC_SYMBOL UC_CATEGORY_S -#define UC_MATH_SYMBOL UC_CATEGORY_Sm -#define UC_CURRENCY_SYMBOL UC_CATEGORY_Sc -#define UC_MODIFIER_SYMBOL UC_CATEGORY_Sk -#define UC_OTHER_SYMBOL UC_CATEGORY_So -#define UC_SEPARATOR UC_CATEGORY_Z -#define UC_SPACE_SEPARATOR UC_CATEGORY_Zs -#define UC_LINE_SEPARATOR UC_CATEGORY_Zl -#define UC_PARAGRAPH_SEPARATOR UC_CATEGORY_Zp -#define UC_OTHER UC_CATEGORY_C -#define UC_CONTROL UC_CATEGORY_Cc -#define UC_FORMAT UC_CATEGORY_Cf -#define UC_SURROGATE UC_CATEGORY_Cs /* all of them are invalid characters */ -#define UC_PRIVATE_USE UC_CATEGORY_Co -#define UC_UNASSIGNED UC_CATEGORY_Cn /* some of them are invalid characters */ - -/* Return the union of two general categories. - This corresponds to the unions of the two sets of characters. */ -extern uc_general_category_t - uc_general_category_or (uc_general_category_t category1, - uc_general_category_t category2); - -/* Return the intersection of two general categories as bit masks. - This *does*not* correspond to the intersection of the two sets of - characters. */ -extern uc_general_category_t - uc_general_category_and (uc_general_category_t category1, - uc_general_category_t category2); - -/* Return the intersection of a general category with the complement of a - second general category, as bit masks. - This *does*not* correspond to the intersection with complement, when - viewing the categories as sets of characters. */ -extern uc_general_category_t - uc_general_category_and_not (uc_general_category_t category1, - uc_general_category_t category2); - -/* Return the name of a general category. */ -extern const char * - uc_general_category_name (uc_general_category_t category) - _UC_ATTRIBUTE_PURE; - -/* Return the long name of a general category. */ -extern const char * - uc_general_category_long_name (uc_general_category_t category) - _UC_ATTRIBUTE_PURE; - -/* Return the general category given by name, e.g. "Lu", or by long name, - e.g. "Uppercase Letter". */ -extern uc_general_category_t - uc_general_category_byname (const char *category_name) - _UC_ATTRIBUTE_PURE; - -/* Return the general category of a Unicode character. */ -extern uc_general_category_t - uc_general_category (ucs4_t uc) - _UC_ATTRIBUTE_PURE; - -/* Test whether a Unicode character belongs to a given category. - The CATEGORY argument can be the combination of several predefined - general categories. */ -extern bool - uc_is_general_category (ucs4_t uc, uc_general_category_t category) - _UC_ATTRIBUTE_PURE; -/* Likewise. This function uses a big table comprising all categories. */ -extern bool - uc_is_general_category_withtable (ucs4_t uc, uint32_t bitmask) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Field 3 of Unicode Character Database: Canonical combining class. */ - -/* The possible results of uc_combining_class (0..255) are described in - UCD.html. The list here is not definitive; more values can be added - in future versions. */ -enum -{ - UC_CCC_NR = 0, /* Not Reordered */ - UC_CCC_OV = 1, /* Overlay */ - UC_CCC_NK = 7, /* Nukta */ - UC_CCC_KV = 8, /* Kana Voicing */ - UC_CCC_VR = 9, /* Virama */ - UC_CCC_ATBL = 200, /* Attached Below Left */ - UC_CCC_ATB = 202, /* Attached Below */ - UC_CCC_ATA = 214, /* Attached Above */ - UC_CCC_ATAR = 216, /* Attached Above Right */ - UC_CCC_BL = 218, /* Below Left */ - UC_CCC_B = 220, /* Below */ - UC_CCC_BR = 222, /* Below Right */ - UC_CCC_L = 224, /* Left */ - UC_CCC_R = 226, /* Right */ - UC_CCC_AL = 228, /* Above Left */ - UC_CCC_A = 230, /* Above */ - UC_CCC_AR = 232, /* Above Right */ - UC_CCC_DB = 233, /* Double Below */ - UC_CCC_DA = 234, /* Double Above */ - UC_CCC_IS = 240 /* Iota Subscript */ -}; - -/* Return the canonical combining class of a Unicode character. */ -extern int - uc_combining_class (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Return the name of a canonical combining class. */ -extern const char * - uc_combining_class_name (int ccc) - _UC_ATTRIBUTE_CONST; - -/* Return the long name of a canonical combining class. */ -extern const char * - uc_combining_class_long_name (int ccc) - _UC_ATTRIBUTE_CONST; - -/* Return the canonical combining class given by name, e.g. "BL", or by long - name, e.g. "Below Left". */ -extern int - uc_combining_class_byname (const char *ccc_name) - _UC_ATTRIBUTE_PURE; - -/* ========================================================================= */ - -/* Field 4 of Unicode Character Database: Bidi class. - Before Unicode 4.0, this field was called "Bidirectional category". */ - -enum -{ - UC_BIDI_L, /* Left-to-Right */ - UC_BIDI_LRE, /* Left-to-Right Embedding */ - UC_BIDI_LRO, /* Left-to-Right Override */ - UC_BIDI_R, /* Right-to-Left */ - UC_BIDI_AL, /* Right-to-Left Arabic */ - UC_BIDI_RLE, /* Right-to-Left Embedding */ - UC_BIDI_RLO, /* Right-to-Left Override */ - UC_BIDI_PDF, /* Pop Directional Format */ - UC_BIDI_EN, /* European Number */ - UC_BIDI_ES, /* European Number Separator */ - UC_BIDI_ET, /* European Number Terminator */ - UC_BIDI_AN, /* Arabic Number */ - UC_BIDI_CS, /* Common Number Separator */ - UC_BIDI_NSM, /* Non-Spacing Mark */ - UC_BIDI_BN, /* Boundary Neutral */ - UC_BIDI_B, /* Paragraph Separator */ - UC_BIDI_S, /* Segment Separator */ - UC_BIDI_WS, /* Whitespace */ - UC_BIDI_ON, /* Other Neutral */ - UC_BIDI_LRI, /* Left-to-Right Isolate */ - UC_BIDI_RLI, /* Right-to-Left Isolate */ - UC_BIDI_FSI, /* First Strong Isolate */ - UC_BIDI_PDI /* Pop Directional Isolate */ -}; - -/* Return the name of a bidi class. */ -extern const char * - uc_bidi_class_name (int bidi_class) - _UC_ATTRIBUTE_CONST; -/* Same; obsolete function name. */ -extern const char * - uc_bidi_category_name (int category) - _UC_ATTRIBUTE_CONST; - -/* Return the long name of a bidi class. */ -extern const char * - uc_bidi_class_long_name (int bidi_class) - _UC_ATTRIBUTE_CONST; - -/* Return the bidi class given by name, e.g. "LRE", or by long name, e.g. - "Left-to-Right Embedding". */ -extern int - uc_bidi_class_byname (const char *bidi_class_name) - _UC_ATTRIBUTE_PURE; -/* Same; obsolete function name. */ -extern int - uc_bidi_category_byname (const char *category_name) - _UC_ATTRIBUTE_PURE; - -/* Return the bidi class of a Unicode character. */ -extern int - uc_bidi_class (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -/* Same; obsolete function name. */ -extern int - uc_bidi_category (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test whether a Unicode character belongs to a given bidi class. */ -extern bool - uc_is_bidi_class (ucs4_t uc, int bidi_class) - _UC_ATTRIBUTE_CONST; -/* Same; obsolete function name. */ -extern bool - uc_is_bidi_category (ucs4_t uc, int category) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Field 5 of Unicode Character Database: Character decomposition mapping. - See "uninorm.h". */ - -/* ========================================================================= */ - -/* Field 6 of Unicode Character Database: Decimal digit value. */ - -/* Return the decimal digit value of a Unicode character. */ -extern int - uc_decimal_value (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Field 7 of Unicode Character Database: Digit value. */ - -/* Return the digit value of a Unicode character. */ -extern int - uc_digit_value (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Field 8 of Unicode Character Database: Numeric value. */ - -/* Return the numeric value of a Unicode character. */ -typedef struct -{ - int numerator; - int denominator; -} -uc_fraction_t; -extern uc_fraction_t - uc_numeric_value (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Field 9 of Unicode Character Database: Mirrored. */ - -/* Return the mirrored character of a Unicode character UC in *PUC. */ -extern bool - uc_mirror_char (ucs4_t uc, ucs4_t *puc); - -/* ========================================================================= */ - -/* Field 10 of Unicode Character Database: Unicode 1.0 Name. - Not available in this library. */ - -/* ========================================================================= */ - -/* Field 11 of Unicode Character Database: ISO 10646 comment. - Not available in this library. */ - -/* ========================================================================= */ - -/* Field 12, 13, 14 of Unicode Character Database: Uppercase mapping, - lowercase mapping, titlecase mapping. See "unicase.h". */ - -/* ========================================================================= */ - -/* Field 2 of the file ArabicShaping.txt in the Unicode Character Database. */ - -/* Possible joining types. */ -enum -{ - UC_JOINING_TYPE_U, /* Non_Joining */ - UC_JOINING_TYPE_T, /* Transparent */ - UC_JOINING_TYPE_C, /* Join_Causing */ - UC_JOINING_TYPE_L, /* Left_Joining */ - UC_JOINING_TYPE_R, /* Right_Joining */ - UC_JOINING_TYPE_D /* Dual_Joining */ -}; - -/* Return the name of a joining type. */ -extern const char * - uc_joining_type_name (int joining_type) - _UC_ATTRIBUTE_CONST; - -/* Return the long name of a joining type. */ -extern const char * - uc_joining_type_long_name (int joining_type) - _UC_ATTRIBUTE_CONST; - -/* Return the joining type given by name, e.g. "D", or by long name, e.g. - "Dual Joining". */ -extern int - uc_joining_type_byname (const char *joining_type_name) - _UC_ATTRIBUTE_PURE; - -/* Return the joining type of a Unicode character. */ -extern int - uc_joining_type (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Field 3 of the file ArabicShaping.txt in the Unicode Character Database. */ - -/* Possible joining groups. - This enumeration may be extended in the future. */ -enum -{ - UC_JOINING_GROUP_NONE, /* No_Joining_Group */ - UC_JOINING_GROUP_AIN, /* Ain */ - UC_JOINING_GROUP_ALAPH, /* Alaph */ - UC_JOINING_GROUP_ALEF, /* Alef */ - UC_JOINING_GROUP_BEH, /* Beh */ - UC_JOINING_GROUP_BETH, /* Beth */ - UC_JOINING_GROUP_BURUSHASKI_YEH_BARREE, /* Burushaski_Yeh_Barree */ - UC_JOINING_GROUP_DAL, /* Dal */ - UC_JOINING_GROUP_DALATH_RISH, /* Dalath_Rish */ - UC_JOINING_GROUP_E, /* E */ - UC_JOINING_GROUP_FARSI_YEH, /* Farsi_Yeh */ - UC_JOINING_GROUP_FE, /* Fe */ - UC_JOINING_GROUP_FEH, /* Feh */ - UC_JOINING_GROUP_FINAL_SEMKATH, /* Final_Semkath */ - UC_JOINING_GROUP_GAF, /* Gaf */ - UC_JOINING_GROUP_GAMAL, /* Gamal */ - UC_JOINING_GROUP_HAH, /* Hah */ - UC_JOINING_GROUP_HE, /* He */ - UC_JOINING_GROUP_HEH, /* Heh */ - UC_JOINING_GROUP_HEH_GOAL, /* Heh_Goal */ - UC_JOINING_GROUP_HETH, /* Heth */ - UC_JOINING_GROUP_KAF, /* Kaf */ - UC_JOINING_GROUP_KAPH, /* Kaph */ - UC_JOINING_GROUP_KHAPH, /* Khaph */ - UC_JOINING_GROUP_KNOTTED_HEH, /* Knotted_Heh */ - UC_JOINING_GROUP_LAM, /* Lam */ - UC_JOINING_GROUP_LAMADH, /* Lamadh */ - UC_JOINING_GROUP_MEEM, /* Meem */ - UC_JOINING_GROUP_MIM, /* Mim */ - UC_JOINING_GROUP_NOON, /* Noon */ - UC_JOINING_GROUP_NUN, /* Nun */ - UC_JOINING_GROUP_NYA, /* Nya */ - UC_JOINING_GROUP_PE, /* Pe */ - UC_JOINING_GROUP_QAF, /* Qaf */ - UC_JOINING_GROUP_QAPH, /* Qaph */ - UC_JOINING_GROUP_REH, /* Reh */ - UC_JOINING_GROUP_REVERSED_PE, /* Reversed_Pe */ - UC_JOINING_GROUP_SAD, /* Sad */ - UC_JOINING_GROUP_SADHE, /* Sadhe */ - UC_JOINING_GROUP_SEEN, /* Seen */ - UC_JOINING_GROUP_SEMKATH, /* Semkath */ - UC_JOINING_GROUP_SHIN, /* Shin */ - UC_JOINING_GROUP_SWASH_KAF, /* Swash_Kaf */ - UC_JOINING_GROUP_SYRIAC_WAW, /* Syriac_Waw */ - UC_JOINING_GROUP_TAH, /* Tah */ - UC_JOINING_GROUP_TAW, /* Taw */ - UC_JOINING_GROUP_TEH_MARBUTA, /* Teh_Marbuta */ - UC_JOINING_GROUP_TEH_MARBUTA_GOAL, /* Teh_Marbuta_Goal */ - UC_JOINING_GROUP_TETH, /* Teth */ - UC_JOINING_GROUP_WAW, /* Waw */ - UC_JOINING_GROUP_YEH, /* Yeh */ - UC_JOINING_GROUP_YEH_BARREE, /* Yeh_Barree */ - UC_JOINING_GROUP_YEH_WITH_TAIL, /* Yeh_With_Tail */ - UC_JOINING_GROUP_YUDH, /* Yudh */ - UC_JOINING_GROUP_YUDH_HE, /* Yudh_He */ - UC_JOINING_GROUP_ZAIN, /* Zain */ - UC_JOINING_GROUP_ZHAIN, /* Zhain */ - UC_JOINING_GROUP_ROHINGYA_YEH, /* Rohingya_Yeh */ - UC_JOINING_GROUP_STRAIGHT_WAW, /* Straight_Waw */ - UC_JOINING_GROUP_MANICHAEAN_ALEPH, /* Manichaean_Aleph */ - UC_JOINING_GROUP_MANICHAEAN_BETH, /* Manichaean_Beth */ - UC_JOINING_GROUP_MANICHAEAN_GIMEL, /* Manichaean_Gimel */ - UC_JOINING_GROUP_MANICHAEAN_DALETH, /* Manichaean_Daleth */ - UC_JOINING_GROUP_MANICHAEAN_WAW, /* Manichaean_Waw */ - UC_JOINING_GROUP_MANICHAEAN_ZAYIN, /* Manichaean_Zayin */ - UC_JOINING_GROUP_MANICHAEAN_HETH, /* Manichaean_Heth */ - UC_JOINING_GROUP_MANICHAEAN_TETH, /* Manichaean_Teth */ - UC_JOINING_GROUP_MANICHAEAN_YODH, /* Manichaean_Yodh */ - UC_JOINING_GROUP_MANICHAEAN_KAPH, /* Manichaean_Kaph */ - UC_JOINING_GROUP_MANICHAEAN_LAMEDH, /* Manichaean_Lamedh */ - UC_JOINING_GROUP_MANICHAEAN_DHAMEDH, /* Manichaean_Dhamedh */ - UC_JOINING_GROUP_MANICHAEAN_THAMEDH, /* Manichaean_Thamedh */ - UC_JOINING_GROUP_MANICHAEAN_MEM, /* Manichaean_Mem */ - UC_JOINING_GROUP_MANICHAEAN_NUN, /* Manichaean_Nun */ - UC_JOINING_GROUP_MANICHAEAN_SAMEKH, /* Manichaean_Aleph */ - UC_JOINING_GROUP_MANICHAEAN_AYIN, /* Manichaean_Ayin */ - UC_JOINING_GROUP_MANICHAEAN_PE, /* Manichaean_Pe */ - UC_JOINING_GROUP_MANICHAEAN_SADHE, /* Manichaean_Sadhe */ - UC_JOINING_GROUP_MANICHAEAN_QOPH, /* Manichaean_Qoph */ - UC_JOINING_GROUP_MANICHAEAN_RESH, /* Manichaean_Resh */ - UC_JOINING_GROUP_MANICHAEAN_TAW, /* Manichaean_Taw */ - UC_JOINING_GROUP_MANICHAEAN_ONE, /* Manichaean_One */ - UC_JOINING_GROUP_MANICHAEAN_FIVE, /* Manichaean_Five */ - UC_JOINING_GROUP_MANICHAEAN_TEN, /* Manichaean_Ten */ - UC_JOINING_GROUP_MANICHAEAN_TWENTY, /* Manichaean_Twenty */ - UC_JOINING_GROUP_MANICHAEAN_HUNDRED, /* Manichaean_Hundred */ - UC_JOINING_GROUP_AFRICAN_FEH, /* African_Feh */ - UC_JOINING_GROUP_AFRICAN_QAF, /* African_Qaf */ - UC_JOINING_GROUP_AFRICAN_NOON, /* African_Noon */ - UC_JOINING_GROUP_MALAYALAM_NGA, /* Malayalam_Nga */ - UC_JOINING_GROUP_MALAYALAM_JA, /* Malayalam_Ja */ - UC_JOINING_GROUP_MALAYALAM_NYA, /* Malayalam_Nya */ - UC_JOINING_GROUP_MALAYALAM_TTA, /* Malayalam_Tta */ - UC_JOINING_GROUP_MALAYALAM_NNA, /* Malayalam_Nna */ - UC_JOINING_GROUP_MALAYALAM_NNNA, /* Malayalam_Nnna */ - UC_JOINING_GROUP_MALAYALAM_BHA, /* Malayalam_Bha */ - UC_JOINING_GROUP_MALAYALAM_RA, /* Malayalam_Ra */ - UC_JOINING_GROUP_MALAYALAM_LLA, /* Malayalam_Lla */ - UC_JOINING_GROUP_MALAYALAM_LLLA, /* Malayalam_Llla */ - UC_JOINING_GROUP_MALAYALAM_SSA, /* Malayalam_Ssa */ - UC_JOINING_GROUP_HANIFI_ROHINGYA_PA, /* Hanifi_Rohingya_Pa */ - UC_JOINING_GROUP_HANIFI_ROHINGYA_KINNA_YA, /* Hanifi_Rohingya_Kinna_Ya */ - UC_JOINING_GROUP_THIN_YEH, /* Thin_Yeh */ - UC_JOINING_GROUP_VERTICAL_TAIL, /* Vertical_Tail */ - UC_JOINING_GROUP_KASHMIRI_YEH /* Kashmiri_Yeh */ -}; - -/* Return the name of a joining group. */ -extern const char * - uc_joining_group_name (int joining_group) - _UC_ATTRIBUTE_CONST; - -/* Return the joining group given by name, e.g. "Teh_Marbuta". */ -extern int - uc_joining_group_byname (const char *joining_group_name) - _UC_ATTRIBUTE_PURE; - -/* Return the joining group of a Unicode character. */ -extern int - uc_joining_group (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Common API for properties. */ - -/* Data type denoting a property. This is not just a number, but rather a - pointer to the test functions, so that programs that use only few of the - properties don't have a link-time dependency towards all the tables. */ -typedef struct -{ - bool (*test_fn) (ucs4_t uc); -} -uc_property_t; - -/* Predefined properties. */ -/* General. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_WHITE_SPACE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ALPHABETIC; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ALPHABETIC; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NOT_A_CHARACTER; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DEPRECATED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOGICAL_ORDER_EXCEPTION; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_VARIATION_SELECTOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PRIVATE_USE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UNASSIGNED_CODE_VALUE; -/* Case. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UPPERCASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_UPPERCASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LOWERCASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_LOWERCASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TITLECASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CASED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CASE_IGNORABLE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_LOWERCASED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_UPPERCASED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_TITLECASED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEFOLDED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CHANGES_WHEN_CASEMAPPED; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SOFT_DOTTED; -/* Identifiers. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_START; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ID_START; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_CONTINUE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_ID_CONTINUE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_XID_START; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_XID_CONTINUE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_COMPAT_MATH_START; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ID_COMPAT_MATH_CONTINUE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PATTERN_WHITE_SPACE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PATTERN_SYNTAX; -/* Shaping and rendering. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_JOIN_CONTROL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_BASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_EXTEND; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_GRAPHEME_EXTEND; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_GRAPHEME_LINK; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_MODIFIER_COMBINING_MARK; -/* Bidi. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_CONTROL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_LEFT_TO_RIGHT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUROPEAN_DIGIT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_ARABIC_DIGIT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_COMMON_SEPARATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_BLOCK_SEPARATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_SEGMENT_SEPARATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_WHITESPACE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_NON_SPACING_MARK; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_PDF; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_BIDI_OTHER_NEUTRAL; -/* Numeric. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_HEX_DIGIT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ASCII_HEX_DIGIT; -/* CJK. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDEOGRAPHIC; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_UNIFIED_IDEOGRAPH; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_RADICAL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_UNARY_OPERATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_BINARY_OPERATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IDS_TRINARY_OPERATOR; -/* Emoji. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EMOJI; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EMOJI_PRESENTATION; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EMOJI_MODIFIER; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EMOJI_MODIFIER_BASE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EMOJI_COMPONENT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EXTENDED_PICTOGRAPHIC; -/* Misc. */ -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ZERO_WIDTH; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SPACE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NON_BREAK; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_ISO_CONTROL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_FORMAT_CONTROL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PREPENDED_CONCATENATION_MARK; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DASH; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_HYPHEN; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PUNCTUATION; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LINE_SEPARATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PARAGRAPH_SEPARATOR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_QUOTATION_MARK; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_SENTENCE_TERMINAL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_TERMINAL_PUNCTUATION; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_CURRENCY_SYMBOL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_MATH; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_OTHER_MATH; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_PAIRED_PUNCTUATION; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_LEFT_OF_PAIR; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_COMBINING; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_COMPOSITE; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DECIMAL_DIGIT; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_NUMERIC; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_DIACRITIC; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_EXTENDER; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_IGNORABLE_CONTROL; -extern LIBUNISTRING_DLL_VARIABLE const uc_property_t UC_PROPERTY_REGIONAL_INDICATOR; - -/* Return the property given by name, e.g. "White space". */ -extern uc_property_t - uc_property_byname (const char *property_name); - -/* Test whether a property is valid. */ -#define uc_property_is_valid(property) ((property).test_fn != NULL) - -/* Test whether a Unicode character has a given property. */ -extern bool - uc_is_property (ucs4_t uc, uc_property_t property); -extern bool uc_is_property_white_space (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_alphabetic (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_alphabetic (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_not_a_character (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_default_ignorable_code_point (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_default_ignorable_code_point (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_deprecated (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_logical_order_exception (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_variation_selector (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_private_use (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_unassigned_code_value (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_uppercase (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_uppercase (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_lowercase (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_lowercase (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_titlecase (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_cased (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_case_ignorable (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_changes_when_lowercased (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_changes_when_uppercased (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_changes_when_titlecased (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_changes_when_casefolded (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_changes_when_casemapped (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_soft_dotted (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_id_start (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_id_start (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_id_continue (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_id_continue (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_xid_start (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_xid_continue (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_id_compat_math_start (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_id_compat_math_continue (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_pattern_white_space (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_pattern_syntax (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_join_control (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_grapheme_base (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_grapheme_extend (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_grapheme_extend (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_grapheme_link (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_modifier_combining_mark (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_control (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_left_to_right (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_hebrew_right_to_left (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_arabic_right_to_left (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_european_digit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_eur_num_separator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_eur_num_terminator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_arabic_digit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_common_separator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_block_separator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_segment_separator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_whitespace (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_non_spacing_mark (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_boundary_neutral (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_pdf (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_embedding_or_override (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_bidi_other_neutral (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_hex_digit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_ascii_hex_digit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_ideographic (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_unified_ideograph (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_radical (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_ids_unary_operator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_ids_binary_operator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_ids_trinary_operator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_emoji (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_emoji_presentation (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_emoji_modifier (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_emoji_modifier_base (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_emoji_component (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_extended_pictographic (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_zero_width (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_space (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_non_break (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_iso_control (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_format_control (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_prepended_concatenation_mark (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_dash (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_hyphen (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_punctuation (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_line_separator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_paragraph_separator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_quotation_mark (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_sentence_terminal (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_terminal_punctuation (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_currency_symbol (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_math (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_other_math (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_paired_punctuation (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_left_of_pair (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_combining (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_composite (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_decimal_digit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_numeric (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_diacritic (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_extender (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_ignorable_control (ucs4_t uc) - _UC_ATTRIBUTE_CONST; -extern bool uc_is_property_regional_indicator (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Other attributes. */ - -/* ------------------------------------------------------------------------- */ - -/* Indic_Conjunct_Break (InCB): from the file DerivedCoreProperties.txt - in the Unicode Character Database. */ - -/* Possible values of the Indic_Conjunct_Break attribute. - This enumeration may be extended in the future. */ -enum -{ - UC_INDIC_CONJUNCT_BREAK_NONE, /* None */ - UC_INDIC_CONJUNCT_BREAK_CONSONANT, /* Consonant */ - UC_INDIC_CONJUNCT_BREAK_LINKER, /* Linker */ - UC_INDIC_CONJUNCT_BREAK_EXTEND /* Extend */ -}; - -/* Return the name of an Indic_Conjunct_Break value. */ -extern const char * - uc_indic_conjunct_break_name (int indic_conjunct_break) - _UC_ATTRIBUTE_CONST; - -/* Return the Indic_Conjunct_Break value given by name, e.g. "Consonant". */ -extern int - uc_indic_conjunct_break_byname (const char *indic_conjunct_break_name) - _UC_ATTRIBUTE_PURE; - -/* Return the Indic_Conjunct_Break attribute of a Unicode character. */ -extern int - uc_indic_conjunct_break (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Subdivision of the Unicode characters into scripts. */ - -typedef struct -{ - unsigned int code : 21; - unsigned int start : 1; - unsigned int end : 1; -} -uc_interval_t; -typedef struct -{ - unsigned int nintervals; - const uc_interval_t *intervals; - const char *name; -} -uc_script_t; - -/* Return the script of a Unicode character. */ -extern const uc_script_t * - uc_script (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Return the script given by name, e.g. "HAN". */ -extern const uc_script_t * - uc_script_byname (const char *script_name) - _UC_ATTRIBUTE_PURE; - -/* Test whether a Unicode character belongs to a given script. */ -extern bool - uc_is_script (ucs4_t uc, const uc_script_t *script) - _UC_ATTRIBUTE_PURE; - -/* Get the list of all scripts. */ -extern void - uc_all_scripts (const uc_script_t **scripts, size_t *count); - -/* ========================================================================= */ - -/* Subdivision of the Unicode character range into blocks. */ - -typedef struct -{ - ucs4_t start; - ucs4_t end; - const char *name; -} -uc_block_t; - -/* Return the block a character belongs to. */ -extern const uc_block_t * - uc_block (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test whether a Unicode character belongs to a given block. */ -extern bool - uc_is_block (ucs4_t uc, const uc_block_t *block) - _UC_ATTRIBUTE_PURE; - -/* Get the list of all blocks. */ -extern void - uc_all_blocks (const uc_block_t **blocks, size_t *count); - -/* ========================================================================= */ - -/* Properties taken from language standards. */ - -/* Test whether a Unicode character is considered whitespace in ISO C 99. */ -extern bool - uc_is_c_whitespace (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test whether a Unicode character is considered whitespace in Java. */ -extern bool - uc_is_java_whitespace (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -enum -{ - UC_IDENTIFIER_START, /* valid as first or subsequent character */ - UC_IDENTIFIER_VALID, /* valid as subsequent character only */ - UC_IDENTIFIER_INVALID, /* not valid */ - UC_IDENTIFIER_IGNORABLE /* ignorable (Java only) */ -}; - -/* Return the categorization of a Unicode character w.r.t. the ISO C 99 - identifier syntax. */ -extern int - uc_c_ident_category (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Return the categorization of a Unicode character w.r.t. the Java - identifier syntax. */ -extern int - uc_java_ident_category (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -/* Like ISO C and . These functions are deprecated, - because this set of functions was designed with ASCII in mind and cannot - reflect the more diverse reality of the Unicode character set. But they - can be a quick-and-dirty porting aid when migrating from wchar_t APIs - to Unicode strings. */ - -/* Test for any character for which 'uc_is_alpha' or 'uc_is_digit' is true. */ -extern bool - uc_is_alnum (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character for which 'uc_is_upper' or 'uc_is_lower' is true, - or any character that is one of a locale-specific set of characters for - which none of 'uc_is_cntrl', 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' - is true. */ -extern bool - uc_is_alpha (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any control character. */ -extern bool - uc_is_cntrl (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character that corresponds to a decimal-digit character. */ -extern bool - uc_is_digit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character for which 'uc_is_print' is true and 'uc_is_space' - is false. */ -extern bool - uc_is_graph (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character that corresponds to a lowercase letter or is one - of a locale-specific set of characters for which none of 'uc_is_cntrl', - 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true. */ -extern bool - uc_is_lower (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any printing character. */ -extern bool - uc_is_print (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any printing character that is one of a locale-specific set of - characters for which neither 'uc_is_space' nor 'uc_is_alnum' is true. */ -extern bool - uc_is_punct (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character that corresponds to a locale-specific set of - characters for which none of 'uc_is_alnum', 'uc_is_graph', or 'uc_is_punct' - is true. */ -extern bool - uc_is_space (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character that corresponds to an uppercase letter or is one - of a locale-specific set of character for which none of 'uc_is_cntrl', - 'uc_is_digit', 'uc_is_punct', or 'uc_is_space' is true. */ -extern bool - uc_is_upper (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* Test for any character that corresponds to a hexadecimal-digit - character. */ -extern bool - uc_is_xdigit (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* GNU extension. */ -/* Test for any character that corresponds to a standard blank character or - a locale-specific set of characters for which 'uc_is_alnum' is false. */ -extern bool - uc_is_blank (ucs4_t uc) - _UC_ATTRIBUTE_CONST; - -/* ========================================================================= */ - -#ifdef __cplusplus -} -#endif - -#endif /* _UNICTYPE_H */ diff --git a/jni/parted/lib/unistd.h b/jni/parted/lib/unistd.h deleted file mode 100755 index 94a2d5b..0000000 --- a/jni/parted/lib/unistd.h +++ /dev/null @@ -1,3017 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Substitute for and wrapper around . - Copyright (C) 2003-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_UNISTD_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if 1 && defined _GL_INCLUDING_UNISTD_H -/* Special invocation convention: - - On Mac OS X 10.3.9 we have a sequence of nested includes - -> -> -> - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. */ - -#include_next - -#else -/* Normal invocation convention. */ - -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# define _GL_INCLUDING_UNISTD_H -# include_next -# undef _GL_INCLUDING_UNISTD_H -#endif - -/* Avoid lseek bugs in FreeBSD, macOS . - This bug is fixed after FreeBSD 13; see . - Use macOS "9999" to stand for a future fixed macOS version. */ -#if defined __FreeBSD__ && __FreeBSD__ < 14 -# undef SEEK_DATA -# undef SEEK_HOLE -#elif defined __APPLE__ && defined __MACH__ && defined SEEK_DATA -# ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -# include -# endif -# if (!defined MAC_OS_X_VERSION_MIN_REQUIRED \ - || MAC_OS_X_VERSION_MIN_REQUIRED < 99990000) -# include /* It also defines the two macros. */ -# undef SEEK_DATA -# undef SEEK_HOLE -# endif -#endif - -/* Get all possible declarations of gethostname(). */ -#if 0 && 0 \ - && !defined _GL_INCLUDING_WINSOCK2_H -# define _GL_INCLUDING_WINSOCK2_H -# include -# undef _GL_INCLUDING_WINSOCK2_H -#endif - -#if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H -#define _GL_UNISTD_H - -/* This file uses _GL_ATTRIBUTE_NODISCARD, _GL_INLINE_HEADER_BEGIN, _GL_INLINE, - GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* NetBSD 5.0 mis-defines NULL. Also get size_t. */ -/* But avoid namespace pollution on glibc systems. */ -#ifndef __GLIBC__ -# include -#endif - -/* mingw doesn't define the SEEK_* or *_FILENO macros in . */ -/* MSVC declares 'unlink' in , not in . We must include - it before we #define unlink rpl_unlink. */ -/* Cygwin 1.7.1 declares symlinkat in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ - || ((1 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__)) \ - || ((0 || defined GNULIB_POSIXCHECK) \ - && defined __CYGWIN__)) \ - && ! defined __GLIBC__ -# include -#endif - -/* Cygwin 1.7.1 and Android 4.3 declare unlinkat in , not in - . */ -/* But avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) \ - && (defined __CYGWIN__ || defined __ANDROID__) \ - && ! defined __GLIBC__ -# include -#endif - -/* mingw fails to declare _exit in . */ -/* mingw, MSVC, BeOS, Haiku declare environ in , not in - . */ -/* Solaris declares getcwd not only in but also in . */ -/* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is - included here. */ -/* But avoid namespace pollution on glibc systems. */ -#if !defined __GLIBC__ && !defined __osf__ -# define __need_system_stdlib_h -# include -# undef __need_system_stdlib_h -#endif - -/* Native Windows platforms declare _chdir, _getcwd, _rmdir in - and/or , not in . - They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), - _lseek(), _read(), _unlink(), _write() in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include -# include -#endif - -/* Native Windows platforms declare _execl*, _execv* in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include -#endif - -/* AIX and OSF/1 5.1 declare getdomainname in , not in . - NonStop Kernel declares gethostname in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if ((0 && (defined _AIX || defined __osf__)) \ - || (0 && defined __TANDEM)) \ - && !defined __GLIBC__ -# include -#endif - -/* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in - , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) \ - && ((defined __APPLE__ && defined __MACH__) || defined __sun \ - || defined __ANDROID__) \ - && 1 \ - && !defined __GLIBC__ -# include -#endif - -/* Android 4.3 declares fchownat in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ - && !defined __GLIBC__ -# include -#endif - -/* MSVC defines off_t in . - May also define off_t to a 64-bit type on native Windows. - Also defines off64_t on macOS, NetBSD, OpenBSD, MSVC, Cygwin, Haiku. */ -/* Get off_t, off64_t, ssize_t, mode_t. */ -#include - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Get getopt(), optarg, optind, opterr, optopt. */ -#if 1 && 00 && !defined _GL_SYSTEM_GETOPT -# include -# include -#endif - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_UNISTD_INLINE -# define _GL_UNISTD_INLINE _GL_INLINE -#endif - -/* Hide some function declarations from . */ - -#if 0 && 0 -# if !defined _GL_SYS_SOCKET_H -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef socket -# define socket socket_used_without_including_sys_socket_h -# undef connect -# define connect connect_used_without_including_sys_socket_h -# undef accept -# define accept accept_used_without_including_sys_socket_h -# undef bind -# define bind bind_used_without_including_sys_socket_h -# undef getpeername -# define getpeername getpeername_used_without_including_sys_socket_h -# undef getsockname -# define getsockname getsockname_used_without_including_sys_socket_h -# undef getsockopt -# define getsockopt getsockopt_used_without_including_sys_socket_h -# undef listen -# define listen listen_used_without_including_sys_socket_h -# undef recv -# define recv recv_used_without_including_sys_socket_h -# undef send -# define send send_used_without_including_sys_socket_h -# undef recvfrom -# define recvfrom recvfrom_used_without_including_sys_socket_h -# undef sendto -# define sendto sendto_used_without_including_sys_socket_h -# undef setsockopt -# define setsockopt setsockopt_used_without_including_sys_socket_h -# undef shutdown -# define shutdown shutdown_used_without_including_sys_socket_h -# else - _GL_WARN_ON_USE (socket, - "socket() used without including "); - _GL_WARN_ON_USE (connect, - "connect() used without including "); - _GL_WARN_ON_USE (accept, - "accept() used without including "); - _GL_WARN_ON_USE (bind, - "bind() used without including "); - _GL_WARN_ON_USE (getpeername, - "getpeername() used without including "); - _GL_WARN_ON_USE (getsockname, - "getsockname() used without including "); - _GL_WARN_ON_USE (getsockopt, - "getsockopt() used without including "); - _GL_WARN_ON_USE (listen, - "listen() used without including "); - _GL_WARN_ON_USE (recv, - "recv() used without including "); - _GL_WARN_ON_USE (send, - "send() used without including "); - _GL_WARN_ON_USE (recvfrom, - "recvfrom() used without including "); - _GL_WARN_ON_USE (sendto, - "sendto() used without including "); - _GL_WARN_ON_USE (setsockopt, - "setsockopt() used without including "); - _GL_WARN_ON_USE (shutdown, - "shutdown() used without including "); -# endif -# endif -# if !defined _GL_SYS_SELECT_H -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef select -# define select select_used_without_including_sys_select_h -# else - _GL_WARN_ON_USE (select, - "select() used without including "); -# endif -# endif -#endif - - -/* OS/2 EMX lacks these macros. */ -#ifndef STDIN_FILENO -# define STDIN_FILENO 0 -#endif -#ifndef STDOUT_FILENO -# define STDOUT_FILENO 1 -#endif -#ifndef STDERR_FILENO -# define STDERR_FILENO 2 -#endif - -/* Ensure *_OK macros exist. */ -#ifndef F_OK -# define F_OK 0 -# define X_OK 1 -# define W_OK 2 -# define R_OK 4 -#endif - - -/* Declare overridden functions. */ - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access rpl_access -# endif -_GL_FUNCDECL_RPL (access, int, (const char *file, int mode), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access _access -# endif -_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); -# else -_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); -# endif -_GL_CXXALIASWARN (access); -#elif defined GNULIB_POSIXCHECK -# undef access -# if HAVE_RAW_DECL_ACCESS -/* The access() function is a security risk. */ -_GL_WARN_ON_USE (access, "access does not always support X_OK - " - "use gnulib module access for portability; " - "also, this function is a security risk - " - "use the gnulib module faccessat instead"); -# endif -#elif 1 -/* On native Windows, map 'access' to '_access', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::access always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access _access -# endif -_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); -# else -_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); -# endif -_GL_CXXALIASWARN (access); -#endif - - -#if IN_PARTED_GNULIB_TESTS -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chdir -# define chdir _chdir -# endif -_GL_CXXALIAS_MDA (chdir, int, (const char *file)); -# else -_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIASWARN (chdir); -#elif defined GNULIB_POSIXCHECK -# undef chdir -# if HAVE_RAW_DECL_CHDIR -_GL_WARN_ON_USE (chdir, "chdir is not always in - " - "use gnulib module chdir for portability"); -# endif -#elif 1 -/* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::chdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chdir -# define chdir _chdir -# endif -_GL_CXXALIAS_MDA (chdir, int, (const char *file)); -# else -_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIASWARN (chdir); -#endif - - -#if 0 -/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE - to GID (if GID is not -1). Follow symbolic links. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define dup2 rpl_dup2 -# endif -_GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd), ); -_GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup2 -# define dup2 _dup2 -# endif -_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); -# else -_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); -# endif -_GL_CXXALIASWARN (dup2); -#elif defined GNULIB_POSIXCHECK -# undef dup2 -# if HAVE_RAW_DECL_DUP2 -_GL_WARN_ON_USE (dup2, "dup2 is unportable - " - "use gnulib module dup2 for portability"); -# endif -#elif 1 -/* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::dup2 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup2 -# define dup2 _dup2 -# endif -_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); -# else -_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); -# endif -_GL_CXXALIASWARN (dup2); -#endif - - -#if 0 -/* Copy the file descriptor OLDFD into file descriptor NEWFD, with the - specified flags. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - Close NEWFD first if it is open. - Return newfd if successful, otherwise -1 and errno set. - See the Linux man page at - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup3 -# define dup3 rpl_dup3 -# endif -_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags), ); -_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); -# else -# if !1 -_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags), ); -# endif -_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (dup3); -# endif -#elif defined GNULIB_POSIXCHECK -# undef dup3 -# if HAVE_RAW_DECL_DUP3 -_GL_WARN_ON_USE (dup3, "dup3 is unportable - " - "use gnulib module dup3 for portability"); -# endif -#endif - - -#if IN_PARTED_GNULIB_TESTS -# if defined __CYGWIN__ && !defined __i386__ -/* The 'environ' variable is defined in a DLL. Therefore its declaration needs - the '__declspec(dllimport)' attribute, but the system's lacks it. - This leads to a link error on 64-bit Cygwin when the option - -Wl,--disable-auto-import is in use. */ -_GL_EXTERN_C __declspec(dllimport) char **environ; -# endif -# if !1 -/* Set of environment variables and values. An array of strings of the form - "VARIABLE=VALUE", terminated with a NULL. */ -# if defined __APPLE__ && defined __MACH__ -# include -# if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR -# define _GL_USE_CRT_EXTERNS -# endif -# endif -# ifdef _GL_USE_CRT_EXTERNS -# include -# define environ (*_NSGetEnviron ()) -# else -# ifdef __cplusplus -extern "C" { -# endif -extern char **environ; -# ifdef __cplusplus -} -# endif -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# if HAVE_RAW_DECL_ENVIRON -_GL_UNISTD_INLINE char *** -_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " - "use gnulib module environ for portability") -rpl_environ (void) -{ - return &environ; -} -# undef environ -# define environ (*rpl_environ ()) -# endif -#endif - - -#if 0 -/* Like access(), except that it uses the effective user id and group id of - the current process. */ -# if !1 -_GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); -_GL_CXXALIASWARN (euidaccess); -# if defined GNULIB_POSIXCHECK -/* Like access(), this function is a security risk. */ -_GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " - "use the gnulib module faccessat instead"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef euidaccess -# if HAVE_RAW_DECL_EUIDACCESS -_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " - "use gnulib module euidaccess for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execl -# define execl rpl_execl -# endif -_GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execl); -#elif defined GNULIB_POSIXCHECK -# undef execl -# if HAVE_RAW_DECL_EXECL -_GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " - "use gnulib module execl for portability"); -# endif -#elif 1 -/* On native Windows, map 'execl' to '_execl', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execl always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execl -# define execl _execl -# endif -_GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execl); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execle -# define execle rpl_execle -# endif -_GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execle); -#elif defined GNULIB_POSIXCHECK -# undef execle -# if HAVE_RAW_DECL_EXECLE -_GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " - "use gnulib module execle for portability"); -# endif -#elif 1 -/* On native Windows, map 'execle' to '_execle', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execle always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execle -# define execle _execle -# endif -_GL_CXXALIAS_MDA (execle, intptr_t, - (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execle); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execlp -# define execlp rpl_execlp -# endif -_GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execlp); -#elif defined GNULIB_POSIXCHECK -# undef execlp -# if HAVE_RAW_DECL_EXECLP -_GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " - "use gnulib module execlp for portability"); -# endif -#elif 1 -/* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execlp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execlp -# define execlp _execlp -# endif -_GL_CXXALIAS_MDA (execlp, intptr_t, - (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execlp); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execv -# define execv rpl_execv -# endif -_GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execv); -#elif defined GNULIB_POSIXCHECK -# undef execv -# if HAVE_RAW_DECL_EXECV -_GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " - "use gnulib module execv for portability"); -# endif -#elif 1 -/* On native Windows, map 'execv' to '_execv', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execv always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execv -# define execv _execv -# endif -_GL_CXXALIAS_MDA_CAST (execv, intptr_t, - (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execv); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execve -# define execve rpl_execve -# endif -_GL_FUNCDECL_RPL (execve, int, - (const char *program, char * const *argv, char * const *env), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execve, int, - (const char *program, char * const *argv, char * const *env)); -# else -_GL_CXXALIAS_SYS (execve, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execve); -#elif defined GNULIB_POSIXCHECK -# undef execve -# if HAVE_RAW_DECL_EXECVE -_GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " - "use gnulib module execve for portability"); -# endif -#elif 1 -/* On native Windows, map 'execve' to '_execve', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execve always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execve -# define execve _execve -# endif -_GL_CXXALIAS_MDA_CAST (execve, intptr_t, - (const char *program, char * const *argv, - char * const *env)); -# else -_GL_CXXALIAS_SYS (execve, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execve); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvp -# define execvp rpl_execvp -# endif -_GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execvp); -#elif defined GNULIB_POSIXCHECK -# undef execvp -# if HAVE_RAW_DECL_EXECVP -_GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " - "use gnulib module execvp for portability"); -# endif -#elif 1 -/* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execvp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvp -# define execvp _execvp -# endif -_GL_CXXALIAS_MDA_CAST (execvp, intptr_t, - (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execvp); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvpe -# define execvpe rpl_execvpe -# endif -_GL_FUNCDECL_RPL (execvpe, int, - (const char *program, char * const *argv, char * const *env), - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# else -# if !1 -_GL_FUNCDECL_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (execvpe); -# endif -#elif defined GNULIB_POSIXCHECK -# undef execvpe -# if HAVE_RAW_DECL_EXECVPE -_GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " - "use gnulib module execvpe for portability"); -# endif -#elif 1 -/* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvpe -# define execvpe _execvpe -# endif -_GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, - (const char *program, char * const *argv, - char * const *env)); -# elif 1 -# if !1 -_GL_FUNCDECL_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env), - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 1 -_GL_CXXALIASWARN (execvpe); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef faccessat -# define faccessat rpl_faccessat -# endif -_GL_FUNCDECL_RPL (faccessat, int, - (int fd, char const *name, int mode, int flag), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (faccessat, int, - (int fd, char const *name, int mode, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (faccessat, int, - (int fd, char const *file, int mode, int flag), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (faccessat, int, - (int fd, char const *file, int mode, int flag)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (faccessat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef faccessat -# if HAVE_RAW_DECL_FACCESSAT -_GL_WARN_ON_USE (faccessat, "faccessat is not portable - " - "use gnulib module faccessat for portability"); -# endif -#endif - - -#if IN_PARTED_GNULIB_TESTS -/* Change the process' current working directory to the directory on which - the given file descriptor is open. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fchdir -# define fchdir rpl_fchdir -# endif -_GL_FUNCDECL_RPL (fchdir, int, (int /*fd*/), _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fchdir, int, (int /*fd*/)); -# else -# if !1 || !1 -_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/), _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); -# endif -_GL_CXXALIASWARN (fchdir); -# if 0 || !1 -/* Gnulib internal hooks needed to maintain the fchdir metadata. */ -_GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) - _GL_ARG_NONNULL ((2)); -_GL_EXTERN_C void _gl_unregister_fd (int fd); -_GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); -_GL_EXTERN_C const char *_gl_directory_name (int fd); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fchdir -# if HAVE_RAW_DECL_FCHDIR -_GL_WARN_ON_USE (fchdir, "fchdir is unportable - " - "use gnulib module fchdir for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fchownat -# define fchownat rpl_fchownat -# endif -_GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag)); -# endif -_GL_CXXALIASWARN (fchownat); -#elif defined GNULIB_POSIXCHECK -# undef fchownat -# if HAVE_RAW_DECL_FCHOWNAT -_GL_WARN_ON_USE (fchownat, "fchownat is not portable - " - "use gnulib module fchownat for portability"); -# endif -#endif - - -#if 0 -/* Synchronize changes to a file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdatasync -# define fdatasync rpl_fdatasync -# endif -_GL_FUNCDECL_RPL (fdatasync, int, (int fd), ); -_GL_CXXALIAS_RPL (fdatasync, int, (int fd)); -# else -# if !1|| !1 -_GL_FUNCDECL_SYS (fdatasync, int, (int fd), ); -# endif -_GL_CXXALIAS_SYS (fdatasync, int, (int fd)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fdatasync); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fdatasync -# if HAVE_RAW_DECL_FDATASYNC -_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " - "use gnulib module fdatasync for portability"); -# endif -#endif - - -#if 1 -/* Synchronize changes, including metadata, to a file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2008 specification - . */ -# if !1 -_GL_FUNCDECL_SYS (fsync, int, (int fd), ); -# endif -_GL_CXXALIAS_SYS (fsync, int, (int fd)); -_GL_CXXALIASWARN (fsync); -#elif defined GNULIB_POSIXCHECK -# undef fsync -# if HAVE_RAW_DECL_FSYNC -_GL_WARN_ON_USE (fsync, "fsync is unportable - " - "use gnulib module fsync for portability"); -# endif -#endif - - -#if IN_PARTED_GNULIB_TESTS -/* Change the size of the file to which FD is opened to become equal to LENGTH. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ftruncate -# define ftruncate rpl_ftruncate -# endif -_GL_FUNCDECL_RPL (ftruncate, int, - (int fd, off_t length), _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (ftruncate, int, - (int fd, off_t length)); -# else -# if !1 -_GL_FUNCDECL_SYS (ftruncate, int, - (int fd, off_t length), _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (ftruncate, int, - (int fd, off_t length)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ftruncate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef ftruncate -# if HAVE_RAW_DECL_FTRUNCATE -_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " - "use gnulib module ftruncate for portability"); -# endif -#endif - - -#if (IN_PARTED_GNULIB_TESTS || IN_PARTED_GNULIB_TESTS) -/* Get the name of the current working directory, and put it in SIZE bytes - of BUF. - Return BUF if successful, or NULL if the directory couldn't be determined - or SIZE was too small. - See the POSIX:2008 specification - . - Additionally, the gnulib module 'getcwd' or 'getcwd-lgpl' guarantees the - following GNU extension: If BUF is NULL, an array is allocated with - 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case - it is as big as necessary. */ -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getcwd rpl_getcwd -# endif -_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size), - _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getcwd -# define getcwd _getcwd -# endif -_GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); -# else -/* Need to cast, because on mingw, the second parameter is - int size. */ -_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); -# endif -_GL_CXXALIASWARN (getcwd); -#elif defined GNULIB_POSIXCHECK -# undef getcwd -# if HAVE_RAW_DECL_GETCWD -_GL_WARN_ON_USE (getcwd, "getcwd is unportable - " - "use gnulib module getcwd for portability"); -# endif -#elif 1 -/* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getcwd always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getcwd -# define getcwd _getcwd -# endif -/* Need to cast, because on mingw, the second parameter is either - 'int size' or 'size_t size'. */ -_GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); -# else -_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); -# endif -_GL_CXXALIASWARN (getcwd); -#endif - - -#if 0 -/* Return the NIS domain name of the machine. - WARNING! The NIS domain name is unrelated to the fully qualified host name - of the machine. It is also unrelated to email addresses. - WARNING! The NIS domain name is usually the empty string or "(none)" when - not using NIS. - - Put up to LEN bytes of the NIS domain name into NAME. - Null terminate it if the name is shorter than LEN. - If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. - Return 0 if successful, otherwise set errno and return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdomainname -# define getdomainname rpl_getdomainname -# endif -_GL_FUNCDECL_RPL (getdomainname, int, - (char *name, size_t len), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getdomainname, int, - (char *name, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (getdomainname, int, - (char *name, size_t len), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getdomainname, int, - (char *name, size_t len)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getdomainname); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getdomainname -# if HAVE_RAW_DECL_GETDOMAINNAME -_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " - "use gnulib module getdomainname for portability"); -# endif -#endif - - -#if 1 -/* Return the maximum number of file descriptors in the current process. - In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdtablesize -# define getdtablesize rpl_getdtablesize -# endif -_GL_FUNCDECL_RPL (getdtablesize, int, (void), ); -_GL_CXXALIAS_RPL (getdtablesize, int, (void)); -# else -# if !0 -_GL_FUNCDECL_SYS (getdtablesize, int, (void), ); -# endif -/* Need to cast, because on AIX, the parameter list is - (...). */ -_GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); -# endif -_GL_CXXALIASWARN (getdtablesize); -#elif defined GNULIB_POSIXCHECK -# undef getdtablesize -# if HAVE_RAW_DECL_GETDTABLESIZE -_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " - "use gnulib module getdtablesize for portability"); -# endif -#endif - - -#if 0 -/* Fill a buffer with random bytes. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getentropy -# define getentropy rpl_getentropy -# endif -_GL_FUNCDECL_RPL (getentropy, int, - (void *buffer, size_t length), _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getentropy, int, - (void *buffer, size_t length)); -# else -# if !1 -_GL_FUNCDECL_SYS (getentropy, int, - (void *buffer, size_t length), _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getentropy, int, - (void *buffer, size_t length)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getentropy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getentropy -# if HAVE_RAW_DECL_GETENTROPY -_GL_WARN_ON_USE (getentropy, "getentropy is unportable - " - "use gnulib module getentropy for portability"); -# endif -#endif - - -#if 0 -/* Return the supplemental groups that the current process belongs to. - It is unspecified whether the effective group id is in the list. - If N is 0, return the group count; otherwise, N describes how many - entries are available in GROUPS. Return -1 and set errno if N is - not 0 and not large enough. Fails with ENOSYS on some systems. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getgroups -# define getgroups rpl_getgroups -# endif -_GL_FUNCDECL_RPL (getgroups, int, - (int n, gid_t *groups), _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (getgroups, int, - (int n, gid_t *groups)); -# else -# if !1 -_GL_FUNCDECL_SYS (getgroups, int, - (int n, gid_t *groups), _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (getgroups, int, - (int n, gid_t *groups)); -# endif -_GL_CXXALIASWARN (getgroups); -#elif defined GNULIB_POSIXCHECK -# undef getgroups -# if HAVE_RAW_DECL_GETGROUPS -_GL_WARN_ON_USE (getgroups, "getgroups is unportable - " - "use gnulib module getgroups for portability"); -# endif -#endif - - -#if 0 -/* Return the standard host name of the machine. - WARNING! The host name may or may not be fully qualified. - - Put up to LEN bytes of the host name into NAME. - Null terminate it if the name is shorter than LEN. - If the host name is longer than LEN, set errno = EINVAL and return -1. - Return 0 if successful, otherwise set errno and return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gethostname -# define gethostname rpl_gethostname -# endif -_GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len), - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second - parameter is - int len. */ -_GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); -# endif -_GL_CXXALIASWARN (gethostname); -#elif 0 -# if !GNULIB_GETHOSTNAME -# undef gethostname -# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname -# endif -#elif defined GNULIB_POSIXCHECK -# undef gethostname -# if HAVE_RAW_DECL_GETHOSTNAME -_GL_WARN_ON_USE (gethostname, "gethostname is unportable - " - "use gnulib module gethostname for portability"); -# endif -#endif - - -#if 0 -/* Returns the user's login name, or NULL if it cannot be found. Upon error, - returns NULL with errno set. - - See . - - Most programs don't need to use this function, because the information is - available through environment variables: - ${LOGNAME-$USER} on Unix platforms, - $USERNAME on native Windows platforms. - */ -# if !1 -_GL_FUNCDECL_SYS (getlogin, char *, (void), ); -# endif -_GL_CXXALIAS_SYS (getlogin, char *, (void)); -_GL_CXXALIASWARN (getlogin); -#elif defined GNULIB_POSIXCHECK -# undef getlogin -# if HAVE_RAW_DECL_GETLOGIN -_GL_WARN_ON_USE (getlogin, "getlogin is unportable - " - "use gnulib module getlogin for portability"); -# endif -#endif - - -#if 0 -/* Copies the user's login name to NAME. - The array pointed to by NAME has room for SIZE bytes. - - Returns 0 if successful. Upon error, an error number is returned, or -1 in - the case that the login name cannot be found but no specific error is - provided (this case is hopefully rare but is left open by the POSIX spec). - - See . - - Most programs don't need to use this function, because the information is - available through environment variables: - ${LOGNAME-$USER} on Unix platforms, - $USERNAME on native Windows platforms. - */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getlogin_r rpl_getlogin_r -# endif -_GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); -# else -# if !1 -_GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size), - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Solaris 10 systems, the second argument is - int size. */ -_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getlogin_r); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getlogin_r -# if HAVE_RAW_DECL_GETLOGIN_R -_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " - "use gnulib module getlogin_r for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getpagesize rpl_getpagesize -# endif -_GL_FUNCDECL_RPL (getpagesize, int, (void), ); -_GL_CXXALIAS_RPL (getpagesize, int, (void)); -# else -/* On HP-UX, getpagesize exists, but it is not declared in even if - the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ -# if defined __hpux -_GL_FUNCDECL_SYS (getpagesize, int, (void), ); -# endif -# if !1 -# if !defined getpagesize -/* This is for POSIX systems. */ -# if !defined _gl_getpagesize && defined _SC_PAGESIZE -# if ! (defined __VMS && __VMS_VER < 70000000) -# define _gl_getpagesize() sysconf (_SC_PAGESIZE) -# endif -# endif -/* This is for older VMS. */ -# if !defined _gl_getpagesize && defined __VMS -# ifdef __ALPHA -# define _gl_getpagesize() 8192 -# else -# define _gl_getpagesize() 512 -# endif -# endif -/* This is for BeOS. */ -# if !defined _gl_getpagesize && 0 -# include -# if defined B_PAGE_SIZE -# define _gl_getpagesize() B_PAGE_SIZE -# endif -# endif -/* This is for AmigaOS4.0. */ -# if !defined _gl_getpagesize && defined __amigaos4__ -# define _gl_getpagesize() 2048 -# endif -/* This is for older Unix systems. */ -# if !defined _gl_getpagesize && 0 -# include -# ifdef EXEC_PAGESIZE -# define _gl_getpagesize() EXEC_PAGESIZE -# else -# ifdef NBPG -# ifndef CLSIZE -# define CLSIZE 1 -# endif -# define _gl_getpagesize() (NBPG * CLSIZE) -# else -# ifdef NBPC -# define _gl_getpagesize() NBPC -# endif -# endif -# endif -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getpagesize() _gl_getpagesize () -# else -# if !GNULIB_defined_getpagesize_function -_GL_UNISTD_INLINE int -getpagesize () -{ - return _gl_getpagesize (); -} -# define GNULIB_defined_getpagesize_function 1 -# endif -# endif -# endif -# endif -/* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ -_GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); -# endif -# if 1 -_GL_CXXALIASWARN (getpagesize); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getpagesize -# if HAVE_RAW_DECL_GETPAGESIZE -_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " - "use gnulib module getpagesize for portability"); -# endif -#endif - - -#if 0 -/* Function getpass() from module 'getpass': - Read a password from /dev/tty or stdin. - Function getpass() from module 'getpass-gnu': - Read a password of arbitrary length from /dev/tty or stdin. */ -# if (0 && 0) \ - || (0 && 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getpass -# define getpass rpl_getpass -# endif -_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); -# else -# if !1 -_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); -# endif -_GL_CXXALIASWARN (getpass); -#elif defined GNULIB_POSIXCHECK -# undef getpass -# if HAVE_RAW_DECL_GETPASS -_GL_WARN_ON_USE (getpass, "getpass is unportable - " - "use gnulib module getpass or getpass-gnu for portability"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getpid always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getpid -# define getpid _getpid -# endif -_GL_CXXALIAS_MDA (getpid, int, (void)); -# else -_GL_CXXALIAS_SYS (getpid, pid_t, (void)); -# endif -_GL_CXXALIASWARN (getpid); -#endif - - -#if 0 -# if 0 -/* Return the next valid login shell on the system, or NULL when the end of - the list has been reached. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getusershell -# define getusershell rpl_getusershell -# endif -_GL_FUNCDECL_RPL (getusershell, char *, (void), ); -_GL_CXXALIAS_RPL (getusershell, char *, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (getusershell, char *, (void), ); -# endif -_GL_CXXALIAS_SYS (getusershell, char *, (void)); -# endif -_GL_CXXALIASWARN (getusershell); -#elif defined GNULIB_POSIXCHECK -# undef getusershell -# if HAVE_RAW_DECL_GETUSERSHELL -_GL_WARN_ON_USE (getusershell, "getusershell is unportable - " - "use gnulib module getusershell for portability"); -# endif -#endif - -#if 0 -/* Rewind to pointer that is advanced at each getusershell() call. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setusershell -# define setusershell rpl_setusershell -# endif -_GL_FUNCDECL_RPL (setusershell, void, (void), ); -_GL_CXXALIAS_RPL (setusershell, void, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (setusershell, void, (void), ); -# endif -_GL_CXXALIAS_SYS (setusershell, void, (void)); -# endif -_GL_CXXALIASWARN (setusershell); -#elif defined GNULIB_POSIXCHECK -# undef setusershell -# if HAVE_RAW_DECL_SETUSERSHELL -_GL_WARN_ON_USE (setusershell, "setusershell is unportable - " - "use gnulib module getusershell for portability"); -# endif -#endif - -#if 0 -/* Free the pointer that is advanced at each getusershell() call and - associated resources. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef endusershell -# define endusershell rpl_endusershell -# endif -_GL_FUNCDECL_RPL (endusershell, void, (void), ); -_GL_CXXALIAS_RPL (endusershell, void, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (endusershell, void, (void), ); -# endif -_GL_CXXALIAS_SYS (endusershell, void, (void)); -# endif -_GL_CXXALIASWARN (endusershell); -#elif defined GNULIB_POSIXCHECK -# undef endusershell -# if HAVE_RAW_DECL_ENDUSERSHELL -_GL_WARN_ON_USE (endusershell, "endusershell is unportable - " - "use gnulib module getusershell for portability"); -# endif -#endif - - -#if 0 -/* Determine whether group id is in calling user's group list. */ -# if !1 -_GL_FUNCDECL_SYS (group_member, int, (gid_t gid), ); -# endif -_GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); -_GL_CXXALIASWARN (group_member); -#elif defined GNULIB_POSIXCHECK -# undef group_member -# if HAVE_RAW_DECL_GROUP_MEMBER -_GL_WARN_ON_USE (group_member, "group_member is unportable - " - "use gnulib module group-member for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty rpl_isatty -# endif -# define GNULIB_defined_isatty 1 -_GL_FUNCDECL_RPL (isatty, int, (int fd), ); -_GL_CXXALIAS_RPL (isatty, int, (int fd)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty _isatty -# endif -_GL_CXXALIAS_MDA (isatty, int, (int fd)); -# else -_GL_CXXALIAS_SYS (isatty, int, (int fd)); -# endif -_GL_CXXALIASWARN (isatty); -#elif defined GNULIB_POSIXCHECK -# undef isatty -# if HAVE_RAW_DECL_ISATTY -_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " - "use gnulib module isatty for portability"); -# endif -#elif 1 -/* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::isatty always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty _isatty -# endif -_GL_CXXALIAS_MDA (isatty, int, (int fd)); -# else -_GL_CXXALIAS_SYS (isatty, int, (int fd)); -# endif -_GL_CXXALIASWARN (isatty); -#endif - - -#if 0 -/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE - to GID (if GID is not -1). Do not follow symbolic links. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lchown -# define lchown rpl_lchown -# endif -_GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); -# else -# if !1 -_GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); -# endif -_GL_CXXALIASWARN (lchown); -#elif defined GNULIB_POSIXCHECK -# undef lchown -# if HAVE_RAW_DECL_LCHOWN -_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " - "use gnulib module lchown for portability"); -# endif -#endif - - -#if 0 -/* Create a new hard link for an existing file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define link rpl_link -# endif -_GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); -# else -# if !1 -_GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); -# endif -_GL_CXXALIASWARN (link); -#elif defined GNULIB_POSIXCHECK -# undef link -# if HAVE_RAW_DECL_LINK -_GL_WARN_ON_USE (link, "link is unportable - " - "use gnulib module link for portability"); -# endif -#endif - - -#if 0 -/* Create a new hard link for an existing file, relative to two - directories. FLAG controls whether symlinks are followed. - Return 0 if successful, otherwise -1 and errno set. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef linkat -# define linkat rpl_linkat -# endif -_GL_FUNCDECL_RPL (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag), - _GL_ARG_NONNULL ((2, 4)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag), - _GL_ARG_NONNULL ((2, 4)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (linkat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef linkat -# if HAVE_RAW_DECL_LINKAT -_GL_WARN_ON_USE (linkat, "linkat is unportable - " - "use gnulib module linkat for portability"); -# endif -#endif - - -#if 1 -/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. - Return the new offset if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define lseek rpl_lseek -# endif -_GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence), ); -_GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lseek -# define lseek _lseek -# endif -_GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); -# else -_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (lseek); -#elif defined GNULIB_POSIXCHECK -# undef lseek -# if HAVE_RAW_DECL_LSEEK -_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " - "systems - use gnulib module lseek for portability"); -# endif -#elif 1 -/* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::lseek always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lseek -# define lseek _lseek -# endif -_GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); -# else -_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (lseek); -#endif - - -#if IN_PARTED_GNULIB_TESTS -/* Create a pipe, defaulting to O_BINARY mode. - Store the read-end as fd[0] and the write-end as fd[1]. - Return 0 upon success, or -1 with errno set upon failure. */ -# if !1 -_GL_FUNCDECL_SYS (pipe, int, (int fd[2]), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (pipe, int, (int fd[2])); -_GL_CXXALIASWARN (pipe); -#elif defined GNULIB_POSIXCHECK -# undef pipe -# if HAVE_RAW_DECL_PIPE -_GL_WARN_ON_USE (pipe, "pipe is unportable - " - "use gnulib module pipe-posix for portability"); -# endif -#endif - - -#if 0 -/* Create a pipe, applying the given flags when opening the read-end of the - pipe and the write-end of the pipe. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - Store the read-end as fd[0] and the write-end as fd[1]. - Return 0 upon success, or -1 with errno set upon failure. - See also the Linux man page at - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pipe2 -# define pipe2 rpl_pipe2 -# endif -_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); -# else -_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pipe2); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pipe2 -# if HAVE_RAW_DECL_PIPE2 -_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " - "use gnulib module pipe2 for portability"); -# endif -#endif - - -#if 0 -/* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. - Return the number of bytes placed into BUF if successful, otherwise - set errno and return -1. 0 indicates EOF. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pread -# define pread rpl_pread -# endif -_GL_FUNCDECL_RPL (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset)); -# else -# if !1 -_GL_FUNCDECL_SYS (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pread); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pread -# if HAVE_RAW_DECL_PREAD -_GL_WARN_ON_USE (pread, "pread is unportable - " - "use gnulib module pread for portability"); -# endif -#endif - - -#if 0 -/* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. - Return the number of bytes written if successful, otherwise - set errno and return -1. 0 indicates nothing written. See the - POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pwrite -# define pwrite rpl_pwrite -# endif -_GL_FUNCDECL_RPL (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset)); -# else -# if !1 -_GL_FUNCDECL_SYS (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pwrite); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pwrite -# if HAVE_RAW_DECL_PWRITE -_GL_WARN_ON_USE (pwrite, "pwrite is unportable - " - "use gnulib module pwrite for portability"); -# endif -#endif - - -#if 1 -/* Read up to COUNT bytes from file descriptor FD into the buffer starting - at BUF. See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read rpl_read -# endif - -_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read _read -# endif -_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); -# else -_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (read); -#elif 1 -/* On native Windows, map 'read' to '_read', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::read always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read _read -# endif -_GL_CXXALIAS_MDA_CAST (read, ssize_t, (int fd, void *buf, unsigned int count)); -# else -_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (read); -#endif - - -#if 1 -/* Read the contents of the symbolic link FILE and place the first BUFSIZE - bytes of it into BUF. Return the number of bytes placed into BUF if - successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define readlink rpl_readlink -# endif -_GL_FUNCDECL_RPL (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize)); -# else -# if !1 -_GL_FUNCDECL_SYS (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize)); -# endif -_GL_CXXALIASWARN (readlink); -#elif defined GNULIB_POSIXCHECK -# undef readlink -# if HAVE_RAW_DECL_READLINK -_GL_WARN_ON_USE (readlink, "readlink is unportable - " - "use gnulib module readlink for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define readlinkat rpl_readlinkat -# endif -_GL_FUNCDECL_RPL (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len), - _GL_ARG_NONNULL ((2, 3)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len), - _GL_ARG_NONNULL ((2, 3)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (readlinkat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef readlinkat -# if HAVE_RAW_DECL_READLINKAT -_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " - "use gnulib module readlinkat for portability"); -# endif -#endif - - -#if 0 -/* Remove the directory DIR. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define rmdir rpl_rmdir -# endif -_GL_FUNCDECL_RPL (rmdir, int, (char const *name), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (rmdir, int, (char const *name)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rmdir -# define rmdir _rmdir -# endif -_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); -# else -_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); -# endif -_GL_CXXALIASWARN (rmdir); -#elif defined GNULIB_POSIXCHECK -# undef rmdir -# if HAVE_RAW_DECL_RMDIR -_GL_WARN_ON_USE (rmdir, "rmdir is unportable - " - "use gnulib module rmdir for portability"); -# endif -#elif 1 -/* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::rmdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rmdir -# define rmdir _rmdir -# endif -_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); -# else -_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); -# endif -_GL_CXXALIASWARN (rmdir); -#endif - - -#if 0 -/* Set the host name of the machine. - The host name may or may not be fully qualified. - - Put LEN bytes of NAME into the host name. - Return 0 if successful, otherwise, set errno and return -1. - - Platforms with no ability to set the hostname return -1 and set - errno = ENOSYS. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sethostname -# define sethostname rpl_sethostname -# endif -_GL_FUNCDECL_RPL (sethostname, int, - (const char *name, size_t len), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (sethostname, int, - (const char *name, size_t len)); -# else -# if !1 || !1 -_GL_FUNCDECL_SYS (sethostname, int, - (const char *name, size_t len), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 - and FreeBSD 6.4 the second parameter is int. On Solaris 11 - 2011-10, the first parameter is not const. */ -_GL_CXXALIAS_SYS_CAST (sethostname, int, - (const char *name, size_t len)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (sethostname); -# endif -#elif defined GNULIB_POSIXCHECK -# undef sethostname -# if HAVE_RAW_DECL_SETHOSTNAME -_GL_WARN_ON_USE (sethostname, "sethostname is unportable - " - "use gnulib module sethostname for portability"); -# endif -#endif - - -#if 1 -/* Pause the execution of the current thread for N seconds. - Returns the number of seconds left to sleep. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sleep -# define sleep rpl_sleep -# endif -_GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n), ); -_GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); -# else -# if !1 -_GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n), ); -# endif -_GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); -# endif -_GL_CXXALIASWARN (sleep); -#elif defined GNULIB_POSIXCHECK -# undef sleep -# if HAVE_RAW_DECL_SLEEP -_GL_WARN_ON_USE (sleep, "sleep is unportable - " - "use gnulib module sleep for portability"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'swab' to '_swab', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::swab always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef swab -# define swab _swab -# endif -/* Need to cast, because in old mingw the arguments are - (const char *from, char *to, size_t n). */ -_GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); -# else -# if defined __hpux /* HP-UX */ -_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); -# elif defined __sun && (defined __SunOS_5_10 || defined __XOPEN_OR_POSIX) && !defined _XPG4 /* Solaris */ -_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); -# else -_GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); -# endif -# endif -_GL_CXXALIASWARN (swab); -#endif - - -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef symlink -# define symlink rpl_symlink -# endif -_GL_FUNCDECL_RPL (symlink, int, - (char const *contents, char const *file), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (symlink, int, - (char const *contents, char const *file)); -# else -# if !1 -_GL_FUNCDECL_SYS (symlink, int, - (char const *contents, char const *file), - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (symlink, int, - (char const *contents, char const *file)); -# endif -_GL_CXXALIASWARN (symlink); -#elif defined GNULIB_POSIXCHECK -# undef symlink -# if HAVE_RAW_DECL_SYMLINK -_GL_WARN_ON_USE (symlink, "symlink is not portable - " - "use gnulib module symlink for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef symlinkat -# define symlinkat rpl_symlinkat -# endif -_GL_FUNCDECL_RPL (symlinkat, int, - (char const *contents, int fd, char const *file), - _GL_ARG_NONNULL ((1, 3)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (symlinkat, int, - (char const *contents, int fd, char const *file)); -# else -# if !1 -_GL_FUNCDECL_SYS (symlinkat, int, - (char const *contents, int fd, char const *file), - _GL_ARG_NONNULL ((1, 3)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (symlinkat, int, - (char const *contents, int fd, char const *file)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (symlinkat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef symlinkat -# if HAVE_RAW_DECL_SYMLINKAT -_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " - "use gnulib module symlinkat for portability"); -# endif -#endif - - -#if 0 -/* Change the size of the file designated by FILENAME to become equal to LENGTH. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef truncate -# define truncate rpl_truncate -# endif -_GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); -# else -# if !1 -_GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length), - _GL_ARG_NONNULL ((1)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (truncate); -# endif -#elif defined GNULIB_POSIXCHECK -# undef truncate -# if HAVE_RAW_DECL_TRUNCATE -_GL_WARN_ON_USE (truncate, "truncate is unportable - " - "use gnulib module truncate for portability"); -# endif -#endif - - -#if 0 -/* Store at most BUFLEN characters of the pathname of the terminal FD is - open on in BUF. Return 0 on success, otherwise an error number. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ttyname_r -# define ttyname_r rpl_ttyname_r -# endif -_GL_FUNCDECL_RPL (ttyname_r, int, - (int fd, char *buf, size_t buflen), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (ttyname_r, int, - (int fd, char *buf, size_t buflen)); -# else -# if !1 -_GL_FUNCDECL_SYS (ttyname_r, int, - (int fd, char *buf, size_t buflen), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -# endif -_GL_CXXALIAS_SYS (ttyname_r, int, - (int fd, char *buf, size_t buflen)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ttyname_r); -# endif -#elif defined GNULIB_POSIXCHECK -# undef ttyname_r -# if HAVE_RAW_DECL_TTYNAME_R -_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " - "use gnulib module ttyname_r for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink rpl_unlink -# endif -_GL_FUNCDECL_RPL (unlink, int, (char const *file), _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (unlink, int, (char const *file)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink _unlink -# endif -_GL_CXXALIAS_MDA (unlink, int, (char const *file)); -# else -_GL_CXXALIAS_SYS (unlink, int, (char const *file)); -# endif -_GL_CXXALIASWARN (unlink); -#elif defined GNULIB_POSIXCHECK -# undef unlink -# if HAVE_RAW_DECL_UNLINK -_GL_WARN_ON_USE (unlink, "unlink is not portable - " - "use gnulib module unlink for portability"); -# endif -#elif 1 -/* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::unlink always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink _unlink -# endif -_GL_CXXALIAS_MDA (unlink, int, (char const *file)); -# else -_GL_CXXALIAS_SYS (unlink, int, (char const *file)); -# endif -_GL_CXXALIASWARN (unlink); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlinkat -# define unlinkat rpl_unlinkat -# endif -_GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); -# endif -_GL_CXXALIASWARN (unlinkat); -#elif defined GNULIB_POSIXCHECK -# undef unlinkat -# if HAVE_RAW_DECL_UNLINKAT -_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " - "use gnulib module unlinkat for portability"); -# endif -#endif - - -#if 1 -/* Pause the execution of the current thread for N microseconds. - Returns 0 on completion, or -1 on range error. - See the POSIX:2001 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef usleep -# define usleep rpl_usleep -# endif -_GL_FUNCDECL_RPL (usleep, int, (useconds_t n), ); -_GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (usleep, int, (useconds_t n), ); -# endif -/* Need to cast, because on Haiku, the first parameter is - unsigned int n. */ -_GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); -# endif -_GL_CXXALIASWARN (usleep); -#elif defined GNULIB_POSIXCHECK -# undef usleep -# if HAVE_RAW_DECL_USLEEP -_GL_WARN_ON_USE (usleep, "usleep is unportable - " - "use gnulib module usleep for portability"); -# endif -#endif - - -#if 0 -/* Write up to COUNT bytes starting at BUF to file descriptor FD. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write rpl_write -# endif -_GL_FUNCDECL_RPL (write, ssize_t, - (int fd, const void *buf, size_t count), - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_NODISCARD); -_GL_CXXALIAS_RPL (write, ssize_t, - (int fd, const void *buf, size_t count)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write _write -# endif -_GL_CXXALIAS_MDA (write, ssize_t, - (int fd, const void *buf, size_t count)); -# else -_GL_CXXALIAS_SYS (write, ssize_t, - (int fd, const void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (write); -#elif 1 -/* On native Windows, map 'write' to '_write', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::write always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write _write -# endif -_GL_CXXALIAS_MDA_CAST (write, ssize_t, - (int fd, const void *buf, unsigned int count)); -# else -_GL_CXXALIAS_SYS (write, ssize_t, - (int fd, const void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (write); -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_UNISTD_H */ -#endif /* _GL_INCLUDING_UNISTD_H */ -#endif /* _GL_UNISTD_H */ diff --git a/jni/parted/lib/unitypes.h b/jni/parted/lib/unitypes.h deleted file mode 100755 index 5e9df33..0000000 --- a/jni/parted/lib/unitypes.h +++ /dev/null @@ -1,72 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Elementary types and macros for the GNU UniString library. - Copyright (C) 2002, 2005-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _UNITYPES_H -#define _UNITYPES_H - -/* Get uint8_t, uint16_t, uint32_t. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Type representing a Unicode character. */ -typedef uint32_t ucs4_t; - -/* Attribute of a function whose result depends only on the arguments - (not pointers!) and which has no side effects. */ -#ifndef _UC_ATTRIBUTE_CONST -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ -# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) -# else -# define _UC_ATTRIBUTE_CONST -# endif -#endif - -/* Attribute of a function whose result depends only on the arguments - (possibly pointers) and global memory, and which has no side effects. */ -#ifndef _UC_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _UC_ATTRIBUTE_PURE -# endif -#endif - -/* Qualifier in a function declaration, that asserts that the caller must - pass a pointer to a different object in the specified pointer argument - than in the other pointer arguments. */ -#ifndef _UC_RESTRICT -# if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 -# define _UC_RESTRICT __restrict -# elif 199901L <= __STDC_VERSION__ || defined restrict -# define _UC_RESTRICT restrict -# else -# define _UC_RESTRICT -# endif -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _UNITYPES_H */ diff --git a/jni/parted/lib/wchar.h b/jni/parted/lib/wchar.h deleted file mode 100755 index 544e241..0000000 --- a/jni/parted/lib/wchar.h +++ /dev/null @@ -1,2250 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A substitute for ISO C99 , for platforms that have issues. - - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake. */ - -/* - * ISO C 99 for platforms that have issues. - * - * - * For now, this just ensures proper prerequisite inclusion order and - * the declaration of wcwidth(). - */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if (((defined __need_mbstate_t || defined __need_wint_t) \ - && !defined __MINGW32__) \ - || (defined __hpux \ - && ((defined _INTTYPES_INCLUDED \ - && !defined _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H) \ - || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ - || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ - || defined _GL_ALREADY_INCLUDING_WCHAR_H) -/* Special invocation convention: - - Inside glibc and uClibc header files, but not MinGW. - - On HP-UX 11.00 we have a sequence of nested includes - -> -> , and the latter includes , - once indirectly -> -> -> - and once directly. In both situations 'wint_t' is not yet defined, - therefore we cannot provide the function overrides; instead include only - the system's . - - With MinGW 3.22, when includes , only some part of - is actually processed, and that doesn't include 'mbstate_t'. - - On IRIX 6.5, similarly, we have an include -> , and - the latter includes . But here, we have no way to detect whether - is completely included or is still being included. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_WCHAR_H - -#define _GL_ALREADY_INCLUDING_WCHAR_H - -#if 1 -# include /* for __GLIBC__ */ -#endif - -/* In some builds of uClibc, is nonexistent and wchar_t is defined - by . - But avoid namespace pollution on glibc systems. */ -#if !(defined __GLIBC__ && !defined __UCLIBC__) -# include -#endif - -/* Include the original if it exists. - Some builds of uClibc lack it. */ -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# include_next -#endif - -#undef _GL_ALREADY_INCLUDING_WCHAR_H - -#ifndef _GL_WCHAR_H -#define _GL_WCHAR_H - -/* This file uses _GL_ATTRIBUTE_DEALLOC, _GL_ATTRIBUTE_MALLOC, - _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PURE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 && !defined __clang__ -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# if defined __cplusplus && defined __GNUC__ && !defined __clang__ -/* Work around GCC bug */ -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC ((void (*) (void *)) free, 1) -# else -# define _GL_ATTRIBUTE_DEALLOC_FREE \ - _GL_ATTRIBUTE_DEALLOC (free, 1) -# endif -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -#ifndef _GL_ATTRIBUTE_NOTHROW -# if defined __cplusplus -# if (__GNUC__ + (__GNUC_MINOR__ >= 8) > 2) || __clang_major__ >= 4 -# if __cplusplus >= 201103L -# define _GL_ATTRIBUTE_NOTHROW noexcept (true) -# else -# define _GL_ATTRIBUTE_NOTHROW throw () -# endif -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# else -# if (__GNUC__ + (__GNUC_MINOR__ >= 3) > 3) || defined __clang__ -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -# else -# define _GL_ATTRIBUTE_NOTHROW -# endif -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Define wint_t and WEOF. (Also done in wctype.in.h.) */ -#if !1 && !defined wint_t -# define wint_t int -# ifndef WEOF -# define WEOF -1 -# endif -#else -/* mingw and MSVC define wint_t as 'unsigned short' in or - . This is too small: ISO C 99 section 7.24.1.(2) says that - wint_t must be "unchanged by default argument promotions". Override it. */ -# if 0 -# if !GNULIB_defined_wint_t -# if 0 -# include -# else -# include -# endif -typedef unsigned int rpl_wint_t; -# undef wint_t -# define wint_t rpl_wint_t -# define GNULIB_defined_wint_t 1 -# endif -# endif -# ifndef WEOF -# define WEOF ((wint_t) -1) -# endif -#endif - - -/* Override mbstate_t if it is too small. - On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for - implementing mbrtowc for encodings like UTF-8. - On AIX and MSVC, mbrtowc needs to be overridden, but mbstate_t exists and is - large enough and overriding it would cause problems in C++ mode. */ -#if !(((defined _WIN32 && !defined __CYGWIN__) || 1) && 1) || 0 -# if !GNULIB_defined_mbstate_t -# if !(defined _AIX || defined _MSC_VER) -typedef int rpl_mbstate_t; -# undef mbstate_t -# define mbstate_t rpl_mbstate_t -# endif -# define GNULIB_defined_mbstate_t 1 -# endif -#endif - -/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have - been included yet. */ -#if 1 -# if (1 && !defined free \ - && !(defined __cplusplus && defined GNULIB_NAMESPACE)) -/* We can't do '#define free rpl_free' here. */ -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void rpl_free (void *) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_EXTERN_C void rpl_free (void *); -# endif -# undef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) -# else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -# endif -#else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) _GL_ATTRIBUTE_NOTHROW; -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -#endif - - -#if 1 -/* Get memset(). */ -# include -#endif - - -/* Convert a single-byte character to a wide character. */ -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef btowc -# define btowc rpl_btowc -# endif -_GL_FUNCDECL_RPL (btowc, wint_t, (int c), _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (btowc, wint_t, (int c)); -# else -# if !1 -_GL_FUNCDECL_SYS (btowc, wint_t, (int c), _GL_ATTRIBUTE_PURE); -# endif -/* Need to cast, because on mingw, the return type is 'unsigned short'. */ -_GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (btowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef btowc -# if HAVE_RAW_DECL_BTOWC -_GL_WARN_ON_USE (btowc, "btowc is unportable - " - "use gnulib module btowc for portability"); -# endif -#endif - - -/* Convert a wide character to a single-byte character. */ -#if IN_PARTED_GNULIB_TESTS -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wctob -# define wctob rpl_wctob -# endif -_GL_FUNCDECL_RPL (wctob, int, (wint_t wc), _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); -# else -# if !defined wctob && !1 -/* wctob is provided by gnulib, or wctob exists but is not declared. */ -_GL_FUNCDECL_SYS (wctob, int, (wint_t wc), _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wctob); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wctob -# if HAVE_RAW_DECL_WCTOB -_GL_WARN_ON_USE (wctob, "wctob is unportable - " - "use gnulib module wctob for portability"); -# endif -#endif - - -/* Test whether *PS is in an initial state. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbsinit -# define mbsinit rpl_mbsinit -# endif -_GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps), ); -_GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps), ); -# endif -_GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbsinit); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsinit -# if HAVE_RAW_DECL_MBSINIT -_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " - "use gnulib module mbsinit for portability"); -# endif -#endif - - -/* Put *PS into an initial state. */ -#if 1 -/* ISO C 23 § 7.31.6.(3) says that zeroing an mbstate_t is a way to put the - mbstate_t into an initial state. However, on many platforms an mbstate_t - is large, and it is possible - as an optimization - to get away with zeroing - only part of it. So, instead of - - mbstate_t state = { 0 }; - - or - - mbstate_t state; - memset (&state, 0, sizeof (mbstate_t)); - - we can write this faster code: - - mbstate_t state; - mbszero (&state); - */ -/* _GL_MBSTATE_INIT_SIZE describes how mbsinit() behaves: It is the number of - bytes at the beginning of an mbstate_t that need to be zero, for mbsinit() - to return true. - _GL_MBSTATE_ZERO_SIZE is the number of bytes at the beginning of an mbstate_t - that need to be zero, - - for mbsinit() to return true, and - - for all other multibyte-aware functions to operate properly. - 0 < _GL_MBSTATE_INIT_SIZE <= _GL_MBSTATE_ZERO_SIZE <= sizeof (mbstate_t). - These values are determined by source code inspection, where possible, and - by running the gnulib unit tests. - We need _GL_MBSTATE_INIT_SIZE because if we define _GL_MBSTATE_ZERO_SIZE - without considering what mbsinit() does, we get test failures such as - assertion "mbsinit (&iter->state)" failed - */ -# if GNULIB_defined_mbstate_t /* AIX, IRIX */ -/* mbstate_t has at least 4 bytes. They are used as coded in - gnulib/lib/mbrtowc.c. */ -# define _GL_MBSTATE_INIT_SIZE 1 -/* define _GL_MBSTATE_ZERO_SIZE 4 - does not work: it causes test failures. - So, use the safe fallback value, below. */ -# elif __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 /* glibc */ -/* mbstate_t is defined in . - For more details, see glibc/iconv/skeleton.c. */ -# define _GL_MBSTATE_INIT_SIZE 4 /* sizeof (((mbstate_t) {0}).__count) */ -# define _GL_MBSTATE_ZERO_SIZE /* 8 */ sizeof (mbstate_t) -# elif defined MUSL_LIBC /* musl libc */ -/* mbstate_t is defined in . - It is an opaque aligned 8-byte struct, of which at most the first - 4 bytes are used. - For more details, see src/multibyte/mbrtowc.c. */ -# define _GL_MBSTATE_INIT_SIZE 4 /* sizeof (unsigned) */ -# define _GL_MBSTATE_ZERO_SIZE 4 -# elif defined __APPLE__ && defined __MACH__ /* macOS */ -/* On macOS, mbstate_t is defined in . - It is an opaque aligned 128-byte struct, of which at most the first - 12 bytes are used. - For more details, see the __mbsinit implementations in - Libc-/locale/FreeBSD/ - {ascii,none,euc,mskanji,big5,gb2312,gbk,gb18030,utf8,utf2}.c. */ -/* File INIT_SIZE ZERO_SIZE - ascii.c 0 0 - none.c 0 0 - euc.c 12 12 - mskanji.c 4 4 - big5.c 4 4 - gb2312.c 4 6 - gbk.c 4 4 - gb18030.c 4 8 - utf8.c 8 10 - utf2.c 8 12 */ -# define _GL_MBSTATE_INIT_SIZE 12 -# define _GL_MBSTATE_ZERO_SIZE 12 -# elif defined __FreeBSD__ /* FreeBSD */ -/* On FreeBSD, mbstate_t is defined in src/sys/sys/_types.h. - It is an opaque aligned 128-byte struct, of which at most the first - 12 bytes are used. - For more details, see the __mbsinit implementations in - src/lib/libc/locale/ - {ascii,none,euc,mskanji,big5,gb2312,gbk,gb18030,utf8}.c. */ -/* File INIT_SIZE ZERO_SIZE - ascii.c 0 0 - none.c 0 0 - euc.c 12 12 - mskanji.c 4 4 - big5.c 4 4 - gb2312.c 4 6 - gbk.c 4 4 - gb18030.c 4 8 - utf8.c 8 12 */ -# define _GL_MBSTATE_INIT_SIZE 12 -# define _GL_MBSTATE_ZERO_SIZE 12 -# elif defined __NetBSD__ /* NetBSD */ -/* On NetBSD, mbstate_t is defined in src/sys/sys/ansi.h. - It is an opaque aligned 128-byte struct, of which at most the first - 28 bytes are used. - For more details, see the *State types in - src/lib/libc/citrus/modules/citrus_*.c - (ignoring citrus_{hz,iso2022,utf7,viqr,zw}.c, since these implement - stateful encodings, not usable as locale encodings). */ -/* File ZERO_SIZE - citrus/citrus_none.c 0 - citrus/modules/citrus_euc.c 8 - citrus/modules/citrus_euctw.c 8 - citrus/modules/citrus_mskanji.c 8 - citrus/modules/citrus_big5.c 8 - citrus/modules/citrus_gbk2k.c 8 - citrus/modules/citrus_dechanyu.c 8 - citrus/modules/citrus_johab.c 6 - citrus/modules/citrus_utf8.c 12 */ -/* But 12 is not the correct value for _GL_MBSTATE_ZERO_SIZE: we get test - failures for values < 28. */ -# define _GL_MBSTATE_ZERO_SIZE 28 -# elif defined __OpenBSD__ /* OpenBSD */ -/* On OpenBSD, mbstate_t is defined in src/sys/sys/_types.h. - It is an opaque aligned 128-byte struct, of which at most the first - 12 bytes are used. - For more details, see src/lib/libc/citrus/citrus_*.c. */ -/* File INIT_SIZE ZERO_SIZE - citrus_none.c 0 0 - citrus_utf8.c 12 12 */ -# define _GL_MBSTATE_INIT_SIZE 12 -# define _GL_MBSTATE_ZERO_SIZE 12 -# elif defined __minix /* Minix */ -/* On Minix, mbstate_t is defined in sys/sys/ansi.h. - It is an opaque aligned 128-byte struct. - For more details, see the *State types in - lib/libc/citrus/citrus_*.c. */ -/* File INIT_SIZE ZERO_SIZE - citrus_none.c 0 0 */ -/* But 1 is not the correct value for _GL_MBSTATE_ZERO_SIZE: we get test - failures for values < 4. */ -# define _GL_MBSTATE_ZERO_SIZE 4 -# elif defined __sun /* Solaris */ -/* On Solaris, mbstate_t is defined in . - It is an opaque aligned 24-byte or 32-byte struct, of which at most the first - 20 or 28 bytes are used. - For more details on OpenSolaris derivatives, see the *State types in - illumos-gate/usr/src/lib/libc/port/locale/ - {none,euc,mskanji,big5,gb2312,gbk,gb18030,utf8}.c. */ -/* File INIT_SIZE ZERO_SIZE - none.c 0 0 - euc.c 12 12 - mskanji.c 4 4 - big5.c 4 4 - gb2312.c 4 6 - gbk.c 4 4 - gb18030.c 4 8 - utf8.c 12 12 */ -/* But 12 is not the correct value for _GL_MBSTATE_ZERO_SIZE: we get test - failures - - in OpenIndiana and OmniOS: for values < 16, - - in Solaris 10 and 11: for values < 20 (in 32-bit mode) - or < 28 (in 64-bit mode). - Since we don't have a good way to distinguish the OpenSolaris derivatives - from the proprietary Solaris versions, and can't inspect the Solaris source - code, use the safe fallback values, below. */ -# elif defined __CYGWIN__ /* Cygwin */ -/* On Cygwin, mbstate_t is defined in . - For more details, see newlib/libc/stdlib/mbtowc_r.c and - winsup/cygwin/strfuncs.cc. */ -# define _GL_MBSTATE_INIT_SIZE 4 /* sizeof (int) */ -# define _GL_MBSTATE_ZERO_SIZE 8 -# elif defined _WIN32 && !defined __CYGWIN__ /* Native Windows. */ -/* MSVC defines 'mbstate_t' as an aligned 8-byte struct. - On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined - as an aligned 8-byte struct, of which the first 4 bytes matter. - Use the safe values, below. */ -# elif defined __ANDROID__ /* Android */ -/* Android defines 'mbstate_t' in . - It is an opaque 4-byte or 8-byte struct. - For more details, see - bionic/libc/private/bionic_mbstate.h - bionic/libc/bionic/mbrtoc32.cpp - bionic/libc/bionic/mbrtoc16.cpp - */ -# define _GL_MBSTATE_INIT_SIZE 4 -# define _GL_MBSTATE_ZERO_SIZE 4 -# endif -/* Use safe values as defaults. */ -# ifndef _GL_MBSTATE_INIT_SIZE -# define _GL_MBSTATE_INIT_SIZE sizeof (mbstate_t) -# endif -# ifndef _GL_MBSTATE_ZERO_SIZE -# define _GL_MBSTATE_ZERO_SIZE sizeof (mbstate_t) -# endif -_GL_BEGIN_C_LINKAGE -# if defined IN_MBSZERO -_GL_EXTERN_INLINE -# else -_GL_INLINE -# endif -_GL_ARG_NONNULL ((1)) void -mbszero (mbstate_t *ps) -{ - memset (ps, 0, _GL_MBSTATE_ZERO_SIZE); -} -_GL_END_C_LINKAGE -_GL_CXXALIAS_SYS (mbszero, void, (mbstate_t *ps)); -_GL_CXXALIASWARN (mbszero); -#endif - - -/* Convert a multibyte character to a wide character. */ -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbrtowc -# define mbrtowc rpl_mbrtowc -# endif -_GL_FUNCDECL_RPL (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps), ); -_GL_CXXALIAS_RPL (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps), ); -# endif -_GL_CXXALIAS_SYS (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbrtowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrtowc -# if HAVE_RAW_DECL_MBRTOWC -_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " - "use gnulib module mbrtowc for portability"); -# endif -#endif - - -/* Recognize a multibyte character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbrlen -# define mbrlen rpl_mbrlen -# endif -_GL_FUNCDECL_RPL (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps), ); -_GL_CXXALIAS_RPL (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps), ); -# endif -_GL_CXXALIAS_SYS (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbrlen); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrlen -# if HAVE_RAW_DECL_MBRLEN -_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " - "use gnulib module mbrlen for portability"); -# endif -#endif - - -/* Convert a string to a wide string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbsrtowcs -# define mbsrtowcs rpl_mbsrtowcs -# endif -_GL_FUNCDECL_RPL (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbsrtowcs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsrtowcs -# if HAVE_RAW_DECL_MBSRTOWCS -_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " - "use gnulib module mbsrtowcs for portability"); -# endif -#endif - - -/* Convert a string to a wide string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbsnrtowcs -# define mbsnrtowcs rpl_mbsnrtowcs -# endif -_GL_FUNCDECL_RPL (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbsnrtowcs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsnrtowcs -# if HAVE_RAW_DECL_MBSNRTOWCS -_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " - "use gnulib module mbsnrtowcs for portability"); -# endif -#endif - - -/* Convert a wide character to a multibyte character. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcrtomb -# define wcrtomb rpl_wcrtomb -# endif -_GL_FUNCDECL_RPL (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps), ); -_GL_CXXALIAS_RPL (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps), ); -# endif -_GL_CXXALIAS_SYS (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcrtomb); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcrtomb -# if HAVE_RAW_DECL_WCRTOMB -_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " - "use gnulib module wcrtomb for portability"); -# endif -#endif - - -/* Convert a wide string to a string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsrtombs -# define wcsrtombs rpl_wcsrtombs -# endif -_GL_FUNCDECL_RPL (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsrtombs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsrtombs -# if HAVE_RAW_DECL_WCSRTOMBS -_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " - "use gnulib module wcsrtombs for portability"); -# endif -#endif - - -/* Convert a wide string to a string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsnrtombs -# define wcsnrtombs rpl_wcsnrtombs -# endif -_GL_FUNCDECL_RPL (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps)); -# else -# if !1 || (defined __cplusplus && defined __sun) -_GL_FUNCDECL_SYS (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps), - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsnrtombs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsnrtombs -# if HAVE_RAW_DECL_WCSNRTOMBS -_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " - "use gnulib module wcsnrtombs for portability"); -# endif -#endif - - -/* Return the number of screen columns needed for WC. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcwidth -# define wcwidth rpl_wcwidth -# endif -_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t), _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); -# else -# if !1 -/* wcwidth exists but is not declared. */ -_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t), _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcwidth); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcwidth -# if HAVE_RAW_DECL_WCWIDTH -_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " - "use gnulib module wcwidth for portability"); -# endif -#endif - - -/* Search N wide characters of S for C. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n), - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); - wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); - } */ -_GL_CXXALIAS_SYS_CAST2 (wmemchr, - wchar_t *, (const wchar_t *, wchar_t, size_t), - const wchar_t *, (const wchar_t *, wchar_t, size_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) \ - && !defined __clang__ -_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); -_GL_CXXALIASWARN1 (wmemchr, const wchar_t *, - (const wchar_t *s, wchar_t c, size_t n)); -# elif __GLIBC__ >= 2 && !defined __CORRECT_ISO_CPP_WCHAR_H_PROTO -_GL_CXXALIASWARN (wmemchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemchr -# if HAVE_RAW_DECL_WMEMCHR -_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " - "use gnulib module wmemchr for portability"); -# endif -#endif - - -/* Compare N wide characters of S1 and S2. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wmemcmp -# define wmemcmp rpl_wmemcmp -# endif -_GL_FUNCDECL_RPL (wmemcmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n), - _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wmemcmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (wmemcmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wmemcmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemcmp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemcmp -# if HAVE_RAW_DECL_WMEMCMP -_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " - "use gnulib module wmemcmp for portability"); -# endif -#endif - - -/* Copy N wide characters of SRC to DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wmemcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemcpy -# if HAVE_RAW_DECL_WMEMCPY -_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " - "use gnulib module wmemcpy for portability"); -# endif -#endif - - -/* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for - overlapping memory areas. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemmove, wchar_t *, - (wchar_t *dest, const wchar_t *src, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wmemmove, wchar_t *, - (wchar_t *dest, const wchar_t *src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemmove); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemmove -# if HAVE_RAW_DECL_WMEMMOVE -_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " - "use gnulib module wmemmove for portability"); -# endif -#endif - - -/* Copy N wide characters of SRC to DEST. - Return pointer to wide characters after the last written wide character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wmempcpy -# define wmempcpy rpl_wmempcpy -# endif -_GL_FUNCDECL_RPL (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n), ); -_GL_CXXALIAS_RPL (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmempcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmempcpy -# if HAVE_RAW_DECL_WMEMPCPY -_GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - " - "use gnulib module wmempcpy for portability"); -# endif -#endif - - -/* Set N wide characters of S to C. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemset); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemset -# if HAVE_RAW_DECL_WMEMSET -_GL_WARN_ON_USE (wmemset, "wmemset is unportable - " - "use gnulib module wmemset for portability"); -# endif -#endif - - -/* Return the number of wide characters in S. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s), _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcslen); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcslen -# if HAVE_RAW_DECL_WCSLEN -_GL_WARN_ON_USE (wcslen, "wcslen is unportable - " - "use gnulib module wcslen for portability"); -# endif -#endif - - -/* Return the number of wide characters in S, but at most MAXLEN. */ -#if 0 -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !1 || (defined __sun && defined __cplusplus) -_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); -_GL_CXXALIASWARN (wcsnlen); -#elif defined GNULIB_POSIXCHECK -# undef wcsnlen -# if HAVE_RAW_DECL_WCSNLEN -_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " - "use gnulib module wcsnlen for portability"); -# endif -#endif - - -/* Copy SRC to DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src), ); -# endif -_GL_CXXALIAS_SYS (wcscpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscpy -# if HAVE_RAW_DECL_WCSCPY -_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " - "use gnulib module wcscpy for portability"); -# endif -#endif - - -/* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ -#if 0 -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !1 || (defined __sun && defined __cplusplus) -_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src), ); -# endif -_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -_GL_CXXALIASWARN (wcpcpy); -#elif defined GNULIB_POSIXCHECK -# undef wcpcpy -# if HAVE_RAW_DECL_WCPCPY -_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " - "use gnulib module wcpcpy for portability"); -# endif -#endif - - -/* Copy no more than N wide characters of SRC to DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wcsncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsncpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsncpy -# if HAVE_RAW_DECL_WCSNCPY -_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " - "use gnulib module wcsncpy for portability"); -# endif -#endif - - -/* Copy no more than N characters of SRC to DEST, returning the address of - the last character written into DEST. */ -#if 0 -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !1 || (defined __sun && defined __cplusplus) -_GL_FUNCDECL_SYS (wcpncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wcpncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -_GL_CXXALIASWARN (wcpncpy); -#elif defined GNULIB_POSIXCHECK -# undef wcpncpy -# if HAVE_RAW_DECL_WCPNCPY -_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " - "use gnulib module wcpncpy for portability"); -# endif -#endif - - -/* Append SRC onto DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src), ); -# endif -_GL_CXXALIAS_SYS (wcscat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscat -# if HAVE_RAW_DECL_WCSCAT -_GL_WARN_ON_USE (wcscat, "wcscat is unportable - " - "use gnulib module wcscat for portability"); -# endif -#endif - - -/* Append no more than N wide characters of SRC onto DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsncat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src, - size_t n), ); -# endif -_GL_CXXALIAS_SYS (wcsncat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src, - size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsncat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsncat -# if HAVE_RAW_DECL_WCSNCAT -_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " - "use gnulib module wcsncat for portability"); -# endif -#endif - - -/* Compare S1 and S2. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcscmp -# define wcscmp rpl_wcscmp -# endif -_GL_FUNCDECL_RPL (wcscmp, int, (const wchar_t *s1, const wchar_t *s2), - _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscmp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscmp -# if HAVE_RAW_DECL_WCSCMP -_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " - "use gnulib module wcscmp for portability"); -# endif -#endif - - -/* Compare no more than N wide characters of S1 and S2. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsncmp -# define wcsncmp rpl_wcsncmp -# endif -_GL_FUNCDECL_RPL (wcsncmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n), - _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcsncmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcsncmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsncmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsncmp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsncmp -# if HAVE_RAW_DECL_WCSNCMP -_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " - "use gnulib module wcsncmp for portability"); -# endif -#endif - - -/* Compare S1 and S2, ignoring case. */ -#if 0 -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !1 || (defined __sun && defined __cplusplus) -_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); -_GL_CXXALIASWARN (wcscasecmp); -#elif defined GNULIB_POSIXCHECK -# undef wcscasecmp -# if HAVE_RAW_DECL_WCSCASECMP -_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " - "use gnulib module wcscasecmp for portability"); -# endif -#endif - - -/* Compare no more than N chars of S1 and S2, ignoring case. */ -#if 0 -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !1 || (defined __sun && defined __cplusplus) -_GL_FUNCDECL_SYS (wcsncasecmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsncasecmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -_GL_CXXALIASWARN (wcsncasecmp); -#elif defined GNULIB_POSIXCHECK -# undef wcsncasecmp -# if HAVE_RAW_DECL_WCSNCASECMP -_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " - "use gnulib module wcsncasecmp for portability"); -# endif -#endif - - -/* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE - category of the current locale. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2), ); -# endif -_GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscoll); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscoll -# if HAVE_RAW_DECL_WCSCOLL -_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " - "use gnulib module wcscoll for portability"); -# endif -#endif - - -/* Transform S2 into array pointed to by S1 such that if wcscmp is applied - to two transformed strings the result is the as applying 'wcscoll' to the - original strings. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsxfrm, size_t, - (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n), ); -# endif -_GL_CXXALIAS_SYS (wcsxfrm, size_t, - (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsxfrm); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsxfrm -# if HAVE_RAW_DECL_WCSXFRM -_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " - "use gnulib module wcsxfrm for portability"); -# endif -#endif - - -/* Duplicate S, returning an identical malloc'd string. */ -#if 0 -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsdup -# define wcsdup _wcsdup -# endif -_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); -# else -/* On Solaris 11.3, the header files declare the function in the std:: - namespace, not in the global namespace. So, force a declaration in - the global namespace. */ -# if !1 || (defined __sun && defined __cplusplus) \ - || (__GNUC__ >= 11 && !defined __clang__) -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); -# endif -_GL_CXXALIASWARN (wcsdup); -#else -# if (__GNUC__ >= 11 && !defined __clang__) && !defined wcsdup -/* For -Wmismatched-dealloc: Associate wcsdup with free or rpl_free. */ -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# endif -# if defined GNULIB_POSIXCHECK -# undef wcsdup -# if HAVE_RAW_DECL_WCSDUP -_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " - "use gnulib module wcsdup for portability"); -# endif -# elif 1 -/* On native Windows, map 'wcsdup' to '_wcsdup', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::wcsdup always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsdup -# define wcsdup _wcsdup -# endif -_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); -# else -# if __GLIBC__ + (__GLIBC_MINOR__ >= 2) > 2 -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE) - _GL_ATTRIBUTE_NOTHROW; -# else -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s), - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if 1 -_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 1 -_GL_CXXALIASWARN (wcsdup); -# endif -# endif -#endif - - -/* Find the first occurrence of WC in WCS. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc), - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcschr (const wchar_t *, wchar_t); - wchar_t * std::wcschr (wchar_t *, wchar_t); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcschr, - wchar_t *, (const wchar_t *, wchar_t), - const wchar_t *, (const wchar_t *, wchar_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) \ - && !defined __clang__ -_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); -_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); -# elif __GLIBC__ >= 2 && !defined __CORRECT_ISO_CPP_WCHAR_H_PROTO -_GL_CXXALIASWARN (wcschr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcschr -# if HAVE_RAW_DECL_WCSCHR -_GL_WARN_ON_USE (wcschr, "wcschr is unportable - " - "use gnulib module wcschr for portability"); -# endif -#endif - - -/* Find the last occurrence of WC in WCS. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc), - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); - wchar_t * std::wcsrchr (wchar_t *, wchar_t); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcsrchr, - wchar_t *, (const wchar_t *, wchar_t), - const wchar_t *, (const wchar_t *, wchar_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) \ - && !defined __clang__ -_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); -_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); -# elif __GLIBC__ >= 2 && !defined __CORRECT_ISO_CPP_WCHAR_H_PROTO -_GL_CXXALIASWARN (wcsrchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsrchr -# if HAVE_RAW_DECL_WCSRCHR -_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " - "use gnulib module wcsrchr for portability"); -# endif -#endif - - -/* Return the length of the initial segment of WCS which consists entirely - of wide characters not in REJECT. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscspn); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscspn -# if HAVE_RAW_DECL_WCSCSPN -_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " - "use gnulib module wcscspn for portability"); -# endif -#endif - - -/* Return the length of the initial segment of WCS which consists entirely - of wide characters in ACCEPT. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsspn); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsspn -# if HAVE_RAW_DECL_WCSSPN -_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " - "use gnulib module wcsspn for portability"); -# endif -#endif - - -/* Find the first occurrence in WCS of any character in ACCEPT. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcspbrk, wchar_t *, - (const wchar_t *wcs, const wchar_t *accept), - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); - wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcspbrk, - wchar_t *, (const wchar_t *, const wchar_t *), - const wchar_t *, (const wchar_t *, const wchar_t *)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) \ - && !defined __clang__ -_GL_CXXALIASWARN1 (wcspbrk, wchar_t *, - (wchar_t *wcs, const wchar_t *accept)); -_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, - (const wchar_t *wcs, const wchar_t *accept)); -# elif __GLIBC__ >= 2 && !defined __CORRECT_ISO_CPP_WCHAR_H_PROTO -_GL_CXXALIASWARN (wcspbrk); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcspbrk -# if HAVE_RAW_DECL_WCSPBRK -_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " - "use gnulib module wcspbrk for portability"); -# endif -#endif - - -/* Find the first occurrence of NEEDLE in HAYSTACK. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsstr -# define wcsstr rpl_wcsstr -# endif -_GL_FUNCDECL_RPL (wcsstr, wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle), - _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcsstr, wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcsstr, wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle), - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); - wchar_t * std::wcsstr (wchar_t *, const wchar_t *); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcsstr, - wchar_t *, - (const wchar_t *restrict, const wchar_t *restrict), - const wchar_t *, - (const wchar_t *restrict, const wchar_t *restrict)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) \ - && !defined __clang__ -_GL_CXXALIASWARN1 (wcsstr, wchar_t *, - (wchar_t *restrict haystack, - const wchar_t *restrict needle)); -_GL_CXXALIASWARN1 (wcsstr, const wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle)); -# elif __GLIBC__ >= 2 && !defined __CORRECT_ISO_CPP_WCHAR_H_PROTO -_GL_CXXALIASWARN (wcsstr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsstr -# if HAVE_RAW_DECL_WCSSTR -_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " - "use gnulib module wcsstr for portability"); -# endif -#endif - - -/* Divide WCS into tokens separated by characters in DELIM. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcstok -# define wcstok rpl_wcstok -# endif -_GL_FUNCDECL_RPL (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr), ); -_GL_CXXALIAS_RPL (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr), ); -# endif -_GL_CXXALIAS_SYS (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcstok); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcstok -# if HAVE_RAW_DECL_WCSTOK -_GL_WARN_ON_USE (wcstok, "wcstok is unportable - " - "use gnulib module wcstok for portability"); -# endif -#endif - - -/* Determine number of column positions required for first N wide - characters (or fewer if S ends before this) in S. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcswidth -# define wcswidth rpl_wcswidth -# endif -_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n), - _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n), - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcswidth); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcswidth -# if HAVE_RAW_DECL_WCSWIDTH -_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " - "use gnulib module wcswidth for portability"); -# endif -#endif - - -/* Convert *TP to a date and time wide string. See - . */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsftime -# define wcsftime rpl_wcsftime -# endif -_GL_FUNCDECL_RPL (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp), - _GL_ARG_NONNULL ((1, 3, 4))); -_GL_CXXALIAS_RPL (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp), - _GL_ARG_NONNULL ((1, 3, 4))); -# endif -_GL_CXXALIAS_SYS (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsftime); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsftime -# if HAVE_RAW_DECL_WCSFTIME -_GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - " - "use gnulib module wcsftime for portability"); -# endif -#endif - - -#if 0 && (defined _WIN32 && !defined __CYGWIN__) -/* Gets the name of the current working directory. - (a) If BUF is non-NULL, it is assumed to have room for SIZE wide characters. - This function stores the working directory (NUL-terminated) in BUF and - returns BUF. - (b) If BUF is NULL, an array is allocated with 'malloc'. The array is SIZE - wide characters long, unless SIZE == 0, in which case it is as big as - necessary. - If the directory couldn't be determined or SIZE was too small, this function - returns NULL and sets errno. For a directory of length LEN, SIZE should be - >= LEN + 3 in case (a) or >= LEN + 1 in case (b). - Possible errno values include: - - ERANGE if SIZE is too small. - - ENOMEM if the memory could no be allocated. */ -_GL_FUNCDECL_SYS (wgetcwd, wchar_t *, (wchar_t *buf, size_t size), ); -#endif - - -#endif /* _GL_WCHAR_H */ -#endif /* _GL_WCHAR_H */ -#endif diff --git a/jni/parted/lib/wctype.h b/jni/parted/lib/wctype.h deleted file mode 100755 index 6faef88..0000000 --- a/jni/parted/lib/wctype.h +++ /dev/null @@ -1,1334 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A substitute for ISO C99 , for platforms that lack it. - - Copyright (C) 2006-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible and Paul Eggert. */ - -/* - * ISO C 99 for platforms that lack it. - * - * - * iswctype, towctrans, towlower, towupper, wctrans, wctype, - * wctrans_t, and wctype_t are not yet implemented. - */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if (defined __MINGW32__ && defined __CTYPE_H_SOURCED__) - -/* Special invocation convention: - - With MinGW 3.22, when includes , only some part of - is being processed, which doesn't include the idempotency - guard. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_WCTYPE_H - -/* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE, GNULIB_POSIXCHECK, - HAVE_RAW_DECL_*. */ -#if !_GL_CONFIG_H_INCLUDED - #error "Please include config.h first." -#endif - -#if 1 -/* Solaris 2.5 has a bug: must be included before . */ -# include -#endif - -/* Native Windows (mingw, MSVC) have declarations of towupper, towlower, and - isw* functions in , as well as in . Include - , in advance to avoid rpl_ prefix being added to the - declarations. */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include -# include -#endif - -/* Include the original if it exists. - BeOS 5 has the functions but no . */ -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# include_next -#endif - -#ifndef _GL_WCTYPE_H -#define _GL_WCTYPE_H - -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_WCTYPE_INLINE -# define _GL_WCTYPE_INLINE _GL_INLINE -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_EXTERN_C_FUNC declaration; - performs the declaration of a function with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C_FUNC extern "C" -#else -/* In C mode, omit the 'extern' keyword, because attributes in bracket syntax - are not allowed between 'extern' and the return type (see gnulib-common.m4). - */ -# define _GL_EXTERN_C_FUNC -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters, [attributes]); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_RPL (free, void, (void *ptr), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...), - _GL_ARG_NONNULL ((1))); - - Note: Attributes, such as _GL_ATTRIBUTE_DEPRECATED, are supported in front - of a _GL_FUNCDECL_RPL invocation only in C mode, not in C++ mode. (That's - because - [[...]] extern "C" ; - is invalid syntax in C++.) - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters,...) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters, __VA_ARGS__) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype rpl_func parameters - -/* _GL_FUNCDECL_SYS (func, rettype, parameters, [attributes]); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Although attributes are optional, the comma before them is required - for portability to C17 and earlier. The attribute _GL_ATTRIBUTE_NOTHROW, - if needed, must be placed after the _GL_FUNCDECL_RPL invocation, - at the end of the declaration. - Examples: - _GL_FUNCDECL_SYS (getumask, mode_t, (void), ) _GL_ATTRIBUTE_NOTHROW; - _GL_FUNCDECL_SYS (posix_openpt, int, (int flags), _GL_ATTRIBUTE_NODISCARD); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters,...) \ - _GL_EXTERN_C_FUNC __VA_ARGS__ rettype func parameters - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - _GL_WARN_ON_USE should not be used more than once for a given function - in a given compilation unit (because this may generate a warning even - if the function is never called). - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if (4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)) && !defined __clang__ -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif (__GNUC__ >= 3 || defined __clang__) && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Solaris 2.6 includes which includes which - #defines a number of identifiers in the application namespace. Revert - these #defines. */ -#ifdef __sun -# undef multibyte -# undef eucw1 -# undef eucw2 -# undef eucw3 -# undef scrw1 -# undef scrw2 -# undef scrw3 -#endif - -/* Define wint_t and WEOF. (Also done in wchar.in.h.) */ -#if !1 && !defined wint_t -# define wint_t int -# ifndef WEOF -# define WEOF -1 -# endif -#else -/* mingw and MSVC define wint_t as 'unsigned short' in or - . This is too small: ISO C 99 section 7.24.1.(2) says that - wint_t must be "unchanged by default argument promotions". Override it. */ -# if 0 -# if !GNULIB_defined_wint_t -# if 0 -# include -# else -# include -# endif -typedef unsigned int rpl_wint_t; -# undef wint_t -# define wint_t rpl_wint_t -# define GNULIB_defined_wint_t 1 -# endif -# endif -# ifndef WEOF -# define WEOF ((wint_t) -1) -# endif -#endif - - -#if !GNULIB_defined_wctype_functions - -/* FreeBSD 4.4 to 4.11 has but lacks the functions. - Linux libc5 has and the functions but they are broken. - mingw and MSVC have and the functions but they take a wchar_t - as argument, not an rpl_wint_t. Additionally, the mingw iswprint function - and the Android iswpunct function are broken. - Assume all 11 functions (all isw* except iswblank) are implemented the - same way, or not at all. */ -# if ! 1 || 0 - -# if 0 /* implies 0 */ - -_GL_WCTYPE_INLINE int -rpl_iswalnum (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswalnum ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswalpha (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswalpha ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswblank (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswblank ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswcntrl (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswcntrl ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswdigit (wint_t wc) -{ - return ((wchar_t) wc == wc ? wc >= '0' && wc <= '9' : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswgraph (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswgraph ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswlower (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswlower ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswprint (wint_t wc) -{ -# ifdef __MINGW32__ - return ((wchar_t) wc == wc ? wc == ' ' || iswgraph ((wchar_t) wc) : 0); -# else - return ((wchar_t) wc == wc ? iswprint ((wchar_t) wc) : 0); -# endif -} - -_GL_WCTYPE_INLINE int -rpl_iswpunct (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswpunct ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswspace (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswspace ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswupper (wint_t wc) -{ - return ((wchar_t) wc == wc ? iswupper ((wchar_t) wc) : 0); -} - -_GL_WCTYPE_INLINE int -rpl_iswxdigit (wint_t wc) -{ - return ((wchar_t) wc == wc - ? (wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F') - : 0); -} - -_GL_WCTYPE_INLINE wint_t -rpl_towlower (wint_t wc) -{ - return ((wchar_t) wc == wc ? (wchar_t) towlower ((wchar_t) wc) : wc); -} - -_GL_WCTYPE_INLINE wint_t -rpl_towupper (wint_t wc) -{ - return ((wchar_t) wc == wc ? (wchar_t) towupper ((wchar_t) wc) : wc); -} - -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswalnum -# undef iswalpha -# undef iswblank -# undef iswcntrl -# undef iswdigit -# undef iswgraph -# undef iswlower -# undef iswprint -# undef iswpunct -# undef iswspace -# undef iswupper -# undef iswxdigit -# undef towlower -# undef towupper -# define iswalnum rpl_iswalnum -# define iswalpha rpl_iswalpha -# define iswblank rpl_iswblank -# define iswcntrl rpl_iswcntrl -# define iswdigit rpl_iswdigit -# define iswgraph rpl_iswgraph -# define iswlower rpl_iswlower -# define iswprint rpl_iswprint -# define iswpunct rpl_iswpunct -# define iswspace rpl_iswspace -# define iswupper rpl_iswupper -# define iswxdigit rpl_iswxdigit -# define towlower rpl_towlower -# define towupper rpl_towupper -# endif - -# else - -/* IRIX 5.3 has macros but no functions, its isw* macros refer to an - undefined variable _ctmp_ and to macros like _P, and they - refer to system functions like _iswctype that are not in the - standard C library. Rather than try to get ancient buggy - implementations like this to work, just disable them. */ -# undef iswalnum -# undef iswalpha -# undef iswblank -# undef iswcntrl -# undef iswdigit -# undef iswgraph -# undef iswlower -# undef iswprint -# undef iswpunct -# undef iswspace -# undef iswupper -# undef iswxdigit -# undef towlower -# undef towupper - -/* Linux libc5 has and the functions but they are broken. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define iswalnum rpl_iswalnum -# define iswalpha rpl_iswalpha -# define iswblank rpl_iswblank -# define iswcntrl rpl_iswcntrl -# define iswdigit rpl_iswdigit -# define iswgraph rpl_iswgraph -# define iswlower rpl_iswlower -# define iswprint rpl_iswprint -# define iswpunct rpl_iswpunct -# define iswspace rpl_iswspace -# define iswupper rpl_iswupper -# define iswxdigit rpl_iswxdigit -# endif -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define towlower rpl_towlower -# define towupper rpl_towupper -# endif -# endif - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswalnum -# else -iswalnum -# endif - (wint_t wc) -{ - return ((wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')); -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswalpha -# else -iswalpha -# endif - (wint_t wc) -{ - return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'; -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswblank -# else -iswblank -# endif - (wint_t wc) -{ - return wc == ' ' || wc == '\t'; -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswcntrl -# else -iswcntrl -# endif - (wint_t wc) -{ - return (wc & ~0x1f) == 0 || wc == 0x7f; -} - -_GL_WCTYPE_INLINE int -# if 1 -rpl_iswdigit -# else -iswdigit -# endif - (wint_t wc) -{ - return wc >= '0' && wc <= '9'; -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswgraph -# else -iswgraph -# endif - (wint_t wc) -{ - return wc >= '!' && wc <= '~'; -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswlower -# else -iswlower -# endif - (wint_t wc) -{ - return wc >= 'a' && wc <= 'z'; -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswprint -# else -iswprint -# endif - (wint_t wc) -{ - return wc >= ' ' && wc <= '~'; -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswpunct -# else -iswpunct -# endif - (wint_t wc) -{ - return (wc >= '!' && wc <= '~' - && !((wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'))); -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswspace -# else -iswspace -# endif - (wint_t wc) -{ - return (wc == ' ' || wc == '\t' - || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r'); -} - -_GL_WCTYPE_INLINE int -# if 0 -rpl_iswupper -# else -iswupper -# endif - (wint_t wc) -{ - return wc >= 'A' && wc <= 'Z'; -} - -_GL_WCTYPE_INLINE int -# if 1 -rpl_iswxdigit -# else -iswxdigit -# endif - (wint_t wc) -{ - return ((wc >= '0' && wc <= '9') - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F')); -} - -_GL_WCTYPE_INLINE wint_t -# if 0 -rpl_towlower -# else -towlower -# endif - (wint_t wc) -{ - return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc); -} - -_GL_WCTYPE_INLINE wint_t -# if 0 -rpl_towupper -# else -towupper -# endif - (wint_t wc) -{ - return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc); -} - -# endif - -# else -/* Only some of the functions are missing or broken. */ - -# if 1 && (! 1 || 0) -/* Only the iswblank function is missing. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define iswblank rpl_iswblank -# endif -_GL_FUNCDECL_RPL (iswblank, int, (wint_t wc), ); -# else -_GL_FUNCDECL_SYS (iswblank, int, (wint_t wc), ); -# endif -# endif - -# if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswdigit -# define iswdigit rpl_iswdigit -# endif -_GL_FUNCDECL_RPL (iswdigit, int, (wint_t wc), ); -# endif -# endif - -# if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswpunct -# define iswpunct rpl_iswpunct -# endif -_GL_FUNCDECL_RPL (iswpunct, int, (wint_t wc), ); -# endif -# endif - -# if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswxdigit -# define iswxdigit rpl_iswxdigit -# endif -_GL_FUNCDECL_RPL (iswxdigit, int, (wint_t wc), ); -# endif -# endif - -# endif - -# if defined __MINGW32__ && !0 - -/* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t. - The functions towlower and towupper are implemented in the MSVCRT library - to take a wchar_t argument and return a wchar_t result. mingw declares - these functions to take a wint_t argument and return a wint_t result. - This means that: - 1. When the user passes an argument outside the range 0x0000..0xFFFF, the - function will look only at the lower 16 bits. This is allowed according - to POSIX. - 2. The return value is returned in the lower 16 bits of the result register. - The upper 16 bits are random: whatever happened to be in that part of the - result register. We need to fix this by adding a zero-extend from - wchar_t to wint_t after the call. */ - -_GL_WCTYPE_INLINE wint_t -rpl_towlower (wint_t wc) -{ - return (wint_t) (wchar_t) towlower (wc); -} -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define towlower rpl_towlower -# endif - -_GL_WCTYPE_INLINE wint_t -rpl_towupper (wint_t wc) -{ - return (wint_t) (wchar_t) towupper (wc); -} -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define towupper rpl_towupper -# endif - -# endif /* __MINGW32__ && !0 */ - -# define GNULIB_defined_wctype_functions 1 -#endif - -#if 0 -_GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswalnum, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswalpha, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswalpha, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswcntrl, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswcntrl, int, (wint_t wc)); -#endif -#if 1 -# if 1 -_GL_CXXALIAS_RPL (iswdigit, int, (wint_t wc)); -# else -_GL_CXXALIAS_SYS (iswdigit, int, (wint_t wc)); -# endif -#endif -#if 0 -_GL_CXXALIAS_RPL (iswgraph, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswgraph, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswlower, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswlower, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswprint, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswprint, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswpunct, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswpunct, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswspace, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswspace, int, (wint_t wc)); -#endif -#if 0 -_GL_CXXALIAS_RPL (iswupper, int, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (iswupper, int, (wint_t wc)); -#endif -#if 1 -# if 1 -_GL_CXXALIAS_RPL (iswxdigit, int, (wint_t wc)); -# else -_GL_CXXALIAS_SYS (iswxdigit, int, (wint_t wc)); -# endif -#endif -#if __GLIBC__ >= 2 -_GL_CXXALIASWARN (iswalnum); -_GL_CXXALIASWARN (iswalpha); -_GL_CXXALIASWARN (iswcntrl); -_GL_CXXALIASWARN (iswdigit); -_GL_CXXALIASWARN (iswgraph); -_GL_CXXALIASWARN (iswlower); -_GL_CXXALIASWARN (iswprint); -_GL_CXXALIASWARN (iswpunct); -_GL_CXXALIASWARN (iswspace); -_GL_CXXALIASWARN (iswupper); -_GL_CXXALIASWARN (iswxdigit); -#endif - -#if 1 -# if 0 || 0 -_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc)); -# else -_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (iswblank); -# endif -#endif - -#if !1 -# if !GNULIB_defined_wctype_t -typedef void * wctype_t; -# define GNULIB_defined_wctype_t 1 -# endif -#elif 1 -# if !GNULIB_defined_wctype_t -typedef void *rpl_wctype_t; -# undef wctype_t -# define wctype_t rpl_wctype_t -# define GNULIB_defined_wctype_t 1 -# endif -#endif - -/* Get a descriptor for a wide character property. */ -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wctype -# define wctype rpl_wctype -# endif -_GL_FUNCDECL_RPL (wctype, wctype_t, (const char *name), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (wctype, wctype_t, (const char *name)); -# else -# if !1 -_GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wctype); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wctype -# if HAVE_RAW_DECL_WCTYPE -_GL_WARN_ON_USE (wctype, "wctype is unportable - " - "use gnulib module wctype for portability"); -# endif -#endif - -/* Test whether a wide character has a given property. - The argument WC must be either a wchar_t value or WEOF. - The argument DESC must have been returned by the wctype() function. */ -#if 1 -# if 0 || 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef iswctype -# define iswctype rpl_iswctype -# endif -_GL_FUNCDECL_RPL (iswctype, int, (wint_t wc, wctype_t desc), ); -_GL_CXXALIAS_RPL (iswctype, int, (wint_t wc, wctype_t desc)); -# else -# if !1 -_GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc), ); -# endif -_GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (iswctype); -# endif -#elif defined GNULIB_POSIXCHECK -# undef iswctype -# if HAVE_RAW_DECL_ISWCTYPE -_GL_WARN_ON_USE (iswctype, "iswctype is unportable - " - "use gnulib module iswctype for portability"); -# endif -#endif - -#if 0 || defined __MINGW32__ -_GL_CXXALIAS_RPL (towlower, wint_t, (wint_t wc)); -_GL_CXXALIAS_RPL (towupper, wint_t, (wint_t wc)); -#else -_GL_CXXALIAS_SYS (towlower, wint_t, (wint_t wc)); -_GL_CXXALIAS_SYS (towupper, wint_t, (wint_t wc)); -#endif -#if __GLIBC__ >= 2 -_GL_CXXALIASWARN (towlower); -_GL_CXXALIASWARN (towupper); -#endif - -#if !1 -# if !GNULIB_defined_wctrans_t -typedef void * wctrans_t; -# define GNULIB_defined_wctrans_t 1 -# endif -#elif 0 -# if !GNULIB_defined_wctrans_t -typedef void *rpl_wctrans_t; -# undef wctrans_t -# define wctrans_t rpl_wctrans_t -# define GNULIB_defined_wctrans_t 1 -# endif -#endif - -/* Get a descriptor for a wide character case conversion. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wctrans -# define wctrans rpl_wctrans -# endif -_GL_FUNCDECL_RPL (wctrans, wctrans_t, (const char *name), - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (wctrans, wctrans_t, (const char *name)); -# else -# if !1 -_GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name), - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wctrans); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wctrans -# if HAVE_RAW_DECL_WCTRANS -_GL_WARN_ON_USE (wctrans, "wctrans is unportable - " - "use gnulib module wctrans for portability"); -# endif -#endif - -/* Perform a given case conversion on a wide character. - The argument WC must be either a wchar_t value or WEOF. - The argument DESC must have been returned by the wctrans() function. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef towctrans -# define towctrans rpl_towctrans -# endif -_GL_FUNCDECL_RPL (towctrans, wint_t, (wint_t wc, wctrans_t desc), ); -_GL_CXXALIAS_RPL (towctrans, wint_t, (wint_t wc, wctrans_t desc)); -# else -# if !1 -_GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc), ); -# endif -_GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (towctrans); -# endif -#elif defined GNULIB_POSIXCHECK -# undef towctrans -# if HAVE_RAW_DECL_TOWCTRANS -_GL_WARN_ON_USE (towctrans, "towctrans is unportable - " - "use gnulib module towctrans for portability"); -# endif -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_WCTYPE_H */ -#endif /* _GL_WCTYPE_H */ -#endif diff --git a/jni/parted/libcharset/Android.mk b/jni/parted/libcharset/Android.mk deleted file mode 100755 index 33bf619..0000000 --- a/jni/parted/libcharset/Android.mk +++ /dev/null @@ -1,40 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -######## -# 3.0.2 -######## - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libcharset -LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/lib/localcharset.c \ - $(LOCAL_PATH)/lib/relocatable-stub.c -LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../include/libcharset -LOCAL_CFLAGS := \ - -Wall \ - -Wextra \ - -Wno-sign-compare \ - -Wno-unused-const-variable \ - -Wno-unused-parameter \ - -fPIC \ - -g \ - -fvisibility=hidden - -include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/jni/parted/libcharset/Makefile b/jni/parted/libcharset/Makefile deleted file mode 100755 index 5849ba8..0000000 --- a/jni/parted/libcharset/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -##### -# sub-make for building libcharset (built-in lib) -##### - -include ../../../build/config/env.mk -ifeq ($(INC_OLDENV),true) -include ../../../build/config/oldenv.mk -endif - -E := @ echo -INCLUDE_DIR := $(CURDIR)/../../../include/libcharset -CFLAGS := \ - -Wall \ - -Wextra \ - -Wno-sign-compare \ - -Wno-unused-const-variable \ - -Wno-unused-parameter \ - -fPIC \ - -g \ - -fvisibility=hidden \ - -I$(INCLUDE_DIR) -AR_FLAGS := rcs -OUT := $(realpath ../../../out/parted) -LIB := $(CURDIR)/lib - -LIBCHARSET_SRCS := \ - $(LIB)/localcharset.c \ - $(LIB)/relocatable-stub.c -LIBCHARSET_OBJS := $(LIBCHARSET_SRCS:.c=.o) - -PROGRESS_LIST := \ - outctrl \ - $(LIBCHARSET_OBJS) \ - libcharset_ar - -.PHONY: all -all: $(PROGRESS_LIST) - -.PHONY: clean -clean: - @ rm -f $(LIBCHARSET_OBJS) $(OUT)/libcharset.a - -outctrl: - @ if [ ! -d $(OUT) ]; then mkdir -p $(OUT); fi - -$(LIB)/%.o: $(LIB)/%.c - $(E) " CC libcharset/lib/`basename $@`" - @ $(CC) -c $(CFLAGS) -o $@ $^ || exit 1 - -libcharset_ar: $(LIBCHARSET_OBJS) - $(E) " AR out/parted/libcharset.a" - @ $(AR) $(AR_FLAGS) $(OUT)/libcharset.a $(LIBCHARSET_OBJS) diff --git a/jni/parted/libcharset/lib/localcharset.c b/jni/parted/libcharset/lib/localcharset.c deleted file mode 100755 index dbcd384..0000000 --- a/jni/parted/libcharset/lib/localcharset.c +++ /dev/null @@ -1,1159 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - - Copyright (C) 2000-2006, 2008-2019 Free Software Foundation, Inc. - - This program 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, 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see . */ - -/* Written by Bruno Haible . */ - -#include - -/* Specification. */ -#include "localcharset.h" - -#include -#include -#include -#include - -#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET -# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ -#endif - -#if defined _WIN32 && !defined __CYGWIN__ -# define WINDOWS_NATIVE -# include -#endif - -#if defined __EMX__ -/* Assume EMX program runs on OS/2, even if compiled under DOS. */ -# ifndef OS2 -# define OS2 -# endif -#endif - -#if !defined WINDOWS_NATIVE -# if HAVE_LANGINFO_CODESET -# include -# else -# if 0 /* see comment regarding use of setlocale(), below */ -# include -# endif -# endif -# ifdef __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include -# endif -#elif defined WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include - /* For the use of setlocale() below, the Gnulib override in setlocale.c is - not needed; see the platform lists in setlocale_null.m4. */ -# undef setlocale -#endif -#if defined OS2 -# define INCL_DOS -# include -#endif - -/* For MB_CUR_MAX_L */ -#if defined DARWIN7 -# include -#endif - - -#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 - -/* On these platforms, we use a mapping from non-canonical encoding name - to GNU canonical encoding name. */ - -/* 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. */ -# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) - -struct table_entry -{ - const char alias[11+1]; - const char canonical[11+1]; -}; - -/* Table of platform-dependent mappings, sorted in ascending order. */ -static const struct table_entry alias_table[] = - { -# if defined __FreeBSD__ /* FreeBSD */ - /*{ "ARMSCII-8", "ARMSCII-8" },*/ - { "Big5", "BIG5" }, - { "C", "ASCII" }, - /*{ "CP1131", "CP1131" },*/ - /*{ "CP1251", "CP1251" },*/ - /*{ "CP866", "CP866" },*/ - /*{ "GB18030", "GB18030" },*/ - /*{ "GB2312", "GB2312" },*/ - /*{ "GBK", "GBK" },*/ - /*{ "ISCII-DEV", "?" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - /*{ "KOI8-R", "KOI8-R" },*/ - /*{ "KOI8-U", "KOI8-U" },*/ - { "SJIS", "SHIFT_JIS" }, - { "US-ASCII", "ASCII" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" } -# define alias_table_defined -# endif -# if defined __NetBSD__ /* NetBSD */ - { "646", "ASCII" }, - /*{ "ARMSCII-8", "ARMSCII-8" },*/ - /*{ "BIG5", "BIG5" },*/ - { "Big5-HKSCS", "BIG5-HKSCS" }, - /*{ "CP1251", "CP1251" },*/ - /*{ "CP866", "CP866" },*/ - /*{ "GB18030", "GB18030" },*/ - /*{ "GB2312", "GB2312" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - /*{ "KOI8-R", "KOI8-R" },*/ - /*{ "KOI8-U", "KOI8-U" },*/ - /*{ "PT154", "PT154" },*/ - { "SJIS", "SHIFT_JIS" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# if defined __OpenBSD__ /* OpenBSD */ - { "646", "ASCII" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "US-ASCII", "ASCII" } -# define alias_table_defined -# endif -# if defined __APPLE__ && defined __MACH__ /* Mac OS X */ - /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value 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. - Then there are also the locales with encodings other than US-ASCII - and UTF-8. These locales can be occasionally useful to users (e.g. - when grepping through ISO-8859-1 encoded text files), when all their - file names are in US-ASCII. - */ - { "ARMSCII-8", "ARMSCII-8" }, - { "Big5", "BIG5" }, - { "Big5HKSCS", "BIG5-HKSCS" }, - { "CP1131", "CP1131" }, - { "CP1251", "CP1251" }, - { "CP866", "CP866" }, - { "CP949", "CP949" }, - { "GB18030", "GB18030" }, - { "GB2312", "GB2312" }, - { "GBK", "GBK" }, - /*{ "ISCII-DEV", "?" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - { "KOI8-R", "KOI8-R" }, - { "KOI8-U", "KOI8-U" }, - { "PT154", "PT154" }, - { "SJIS", "SHIFT_JIS" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" } -# define alias_table_defined -# endif -# if defined _AIX /* AIX */ - /*{ "GBK", "GBK" },*/ - { "IBM-1046", "CP1046" }, - { "IBM-1124", "CP1124" }, - { "IBM-1129", "CP1129" }, - { "IBM-1252", "CP1252" }, - { "IBM-850", "CP850" }, - { "IBM-856", "CP856" }, - { "IBM-921", "ISO-8859-13" }, - { "IBM-922", "CP922" }, - { "IBM-932", "CP932" }, - { "IBM-943", "CP943" }, - { "IBM-eucCN", "GB2312" }, - { "IBM-eucJP", "EUC-JP" }, - { "IBM-eucKR", "EUC-KR" }, - { "IBM-eucTW", "EUC-TW" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "TIS-620", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "big5", "BIG5" } -# define alias_table_defined -# endif -# if defined __hpux /* HP-UX */ - { "SJIS", "SHIFT_JIS" }, - { "arabic8", "HP-ARABIC8" }, - { "big5", "BIG5" }, - { "cp1251", "CP1251" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" }, - { "gb18030", "GB18030" }, - { "greek8", "HP-GREEK8" }, - { "hebrew8", "HP-HEBREW8" }, - { "hkbig5", "BIG5-HKSCS" }, - { "hp15CN", "GB2312" }, - { "iso88591", "ISO-8859-1" }, - { "iso885913", "ISO-8859-13" }, - { "iso885915", "ISO-8859-15" }, - { "iso88592", "ISO-8859-2" }, - { "iso88594", "ISO-8859-4" }, - { "iso88595", "ISO-8859-5" }, - { "iso88596", "ISO-8859-6" }, - { "iso88597", "ISO-8859-7" }, - { "iso88598", "ISO-8859-8" }, - { "iso88599", "ISO-8859-9" }, - { "kana8", "HP-KANA8" }, - { "koi8r", "KOI8-R" }, - { "roman8", "HP-ROMAN8" }, - { "tis620", "TIS-620" }, - { "turkish8", "HP-TURKISH8" }, - { "utf8", "UTF-8" } -# define alias_table_defined -# endif -# if defined __sgi /* IRIX */ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# if defined __osf__ /* OSF/1 */ - /*{ "GBK", "GBK" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "KSC5601", "CP949" }, - { "SJIS", "SHIFT_JIS" }, - { "TACTIS", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "big5", "BIG5" }, - { "cp850", "CP850" }, - { "dechanyu", "DEC-HANYU" }, - { "dechanzi", "GB2312" }, - { "deckanji", "DEC-KANJI" }, - { "deckorean", "EUC-KR" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" }, - { "sdeckanji", "EUC-JP" } -# define alias_table_defined -# endif -# if defined __sun /* Solaris */ - { "5601", "EUC-KR" }, - { "646", "ASCII" }, - /*{ "BIG5", "BIG5" },*/ - { "Big5-HKSCS", "BIG5-HKSCS" }, - { "GB18030", "GB18030" }, - /*{ "GBK", "GBK" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-11", "TIS-620" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-3", "ISO-8859-3" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "PCK", "SHIFT_JIS" }, - { "TIS620.2533", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "ansi-1251", "CP1251" }, - { "cns11643", "EUC-TW" }, - { "eucJP", "EUC-JP" }, - { "gb2312", "GB2312" }, - { "koi8-r", "KOI8-R" } -# define alias_table_defined -# endif -# if defined __minix /* Minix */ - { "646", "ASCII" } -# define alias_table_defined -# endif -# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ - { "CP1361", "JOHAB" }, - { "CP20127", "ASCII" }, - { "CP20866", "KOI8-R" }, - { "CP20936", "GB2312" }, - { "CP21866", "KOI8-RU" }, - { "CP28591", "ISO-8859-1" }, - { "CP28592", "ISO-8859-2" }, - { "CP28593", "ISO-8859-3" }, - { "CP28594", "ISO-8859-4" }, - { "CP28595", "ISO-8859-5" }, - { "CP28596", "ISO-8859-6" }, - { "CP28597", "ISO-8859-7" }, - { "CP28598", "ISO-8859-8" }, - { "CP28599", "ISO-8859-9" }, - { "CP28605", "ISO-8859-15" }, - { "CP38598", "ISO-8859-8" }, - { "CP51932", "EUC-JP" }, - { "CP51936", "GB2312" }, - { "CP51949", "EUC-KR" }, - { "CP51950", "EUC-TW" }, - { "CP54936", "GB18030" }, - { "CP65001", "UTF-8" }, - { "CP936", "GBK" } -# define alias_table_defined -# endif -# if defined OS2 /* OS/2 */ - /* The list of encodings is taken from "List of OS/2 Codepages" - by Alex Taylor: - . - See also "__convcp() of kLIBC": - . */ - { "CP1004", "CP1252" }, - /*{ "CP1041", "CP943" },*/ - /*{ "CP1088", "CP949" },*/ - { "CP1089", "ISO-8859-6" }, - /*{ "CP1114", "CP950" },*/ - /*{ "CP1115", "GB2312" },*/ - { "CP1208", "UTF-8" }, - /*{ "CP1380", "GB2312" },*/ - { "CP1381", "GB2312" }, - { "CP1383", "GB2312" }, - { "CP1386", "GBK" }, - /*{ "CP301", "CP943" },*/ - { "CP3372", "EUC-JP" }, - { "CP4946", "CP850" }, - /*{ "CP5048", "JIS_X0208-1990" },*/ - /*{ "CP5049", "JIS_X0212-1990" },*/ - /*{ "CP5067", "KS_C_5601-1987" },*/ - { "CP813", "ISO-8859-7" }, - { "CP819", "ISO-8859-1" }, - { "CP878", "KOI8-R" }, - /*{ "CP897", "CP943" },*/ - { "CP912", "ISO-8859-2" }, - { "CP913", "ISO-8859-3" }, - { "CP914", "ISO-8859-4" }, - { "CP915", "ISO-8859-5" }, - { "CP916", "ISO-8859-8" }, - { "CP920", "ISO-8859-9" }, - { "CP921", "ISO-8859-13" }, - { "CP923", "ISO-8859-15" }, - /*{ "CP941", "CP943" },*/ - /*{ "CP947", "CP950" },*/ - /*{ "CP951", "CP949" },*/ - /*{ "CP952", "JIS_X0208-1990" },*/ - /*{ "CP953", "JIS_X0212-1990" },*/ - { "CP954", "EUC-JP" }, - { "CP964", "EUC-TW" }, - { "CP970", "EUC-KR" }, - /*{ "CP971", "KS_C_5601-1987" },*/ - { "IBM-1004", "CP1252" }, - /*{ "IBM-1006", "?" },*/ - /*{ "IBM-1008", "?" },*/ - /*{ "IBM-1041", "CP943" },*/ - /*{ "IBM-1051", "?" },*/ - /*{ "IBM-1088", "CP949" },*/ - { "IBM-1089", "ISO-8859-6" }, - /*{ "IBM-1098", "?" },*/ - /*{ "IBM-1114", "CP950" },*/ - /*{ "IBM-1115", "GB2312" },*/ - /*{ "IBM-1116", "?" },*/ - /*{ "IBM-1117", "?" },*/ - /*{ "IBM-1118", "?" },*/ - /*{ "IBM-1119", "?" },*/ - { "IBM-1124", "CP1124" }, - { "IBM-1125", "CP1125" }, - { "IBM-1131", "CP1131" }, - { "IBM-1208", "UTF-8" }, - { "IBM-1250", "CP1250" }, - { "IBM-1251", "CP1251" }, - { "IBM-1252", "CP1252" }, - { "IBM-1253", "CP1253" }, - { "IBM-1254", "CP1254" }, - { "IBM-1255", "CP1255" }, - { "IBM-1256", "CP1256" }, - { "IBM-1257", "CP1257" }, - /*{ "IBM-1275", "?" },*/ - /*{ "IBM-1276", "?" },*/ - /*{ "IBM-1277", "?" },*/ - /*{ "IBM-1280", "?" },*/ - /*{ "IBM-1281", "?" },*/ - /*{ "IBM-1282", "?" },*/ - /*{ "IBM-1283", "?" },*/ - /*{ "IBM-1380", "GB2312" },*/ - { "IBM-1381", "GB2312" }, - { "IBM-1383", "GB2312" }, - { "IBM-1386", "GBK" }, - /*{ "IBM-301", "CP943" },*/ - { "IBM-3372", "EUC-JP" }, - { "IBM-367", "ASCII" }, - { "IBM-437", "CP437" }, - { "IBM-4946", "CP850" }, - /*{ "IBM-5048", "JIS_X0208-1990" },*/ - /*{ "IBM-5049", "JIS_X0212-1990" },*/ - /*{ "IBM-5067", "KS_C_5601-1987" },*/ - { "IBM-813", "ISO-8859-7" }, - { "IBM-819", "ISO-8859-1" }, - { "IBM-850", "CP850" }, - /*{ "IBM-851", "?" },*/ - { "IBM-852", "CP852" }, - { "IBM-855", "CP855" }, - { "IBM-856", "CP856" }, - { "IBM-857", "CP857" }, - /*{ "IBM-859", "?" },*/ - { "IBM-860", "CP860" }, - { "IBM-861", "CP861" }, - { "IBM-862", "CP862" }, - { "IBM-863", "CP863" }, - { "IBM-864", "CP864" }, - { "IBM-865", "CP865" }, - { "IBM-866", "CP866" }, - /*{ "IBM-868", "?" },*/ - { "IBM-869", "CP869" }, - { "IBM-874", "CP874" }, - { "IBM-878", "KOI8-R" }, - /*{ "IBM-895", "?" },*/ - /*{ "IBM-897", "CP943" },*/ - /*{ "IBM-907", "?" },*/ - /*{ "IBM-909", "?" },*/ - { "IBM-912", "ISO-8859-2" }, - { "IBM-913", "ISO-8859-3" }, - { "IBM-914", "ISO-8859-4" }, - { "IBM-915", "ISO-8859-5" }, - { "IBM-916", "ISO-8859-8" }, - { "IBM-920", "ISO-8859-9" }, - { "IBM-921", "ISO-8859-13" }, - { "IBM-922", "CP922" }, - { "IBM-923", "ISO-8859-15" }, - { "IBM-932", "CP932" }, - /*{ "IBM-941", "CP943" },*/ - /*{ "IBM-942", "?" },*/ - { "IBM-943", "CP943" }, - /*{ "IBM-947", "CP950" },*/ - { "IBM-949", "CP949" }, - { "IBM-950", "CP950" }, - /*{ "IBM-951", "CP949" },*/ - /*{ "IBM-952", "JIS_X0208-1990" },*/ - /*{ "IBM-953", "JIS_X0212-1990" },*/ - { "IBM-954", "EUC-JP" }, - /*{ "IBM-955", "?" },*/ - { "IBM-964", "EUC-TW" }, - { "IBM-970", "EUC-KR" }, - /*{ "IBM-971", "KS_C_5601-1987" },*/ - { "IBM-eucCN", "GB2312" }, - { "IBM-eucJP", "EUC-JP" }, - { "IBM-eucKR", "EUC-KR" }, - { "IBM-eucTW", "EUC-TW" }, - { "IBM33722", "EUC-JP" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-3", "ISO-8859-3" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - /*{ "JISX0201-1976", "JISX0201-1976" },*/ - /*{ "JISX0208-1978", "?" },*/ - /*{ "JISX0208-1983", "JIS_X0208-1983" },*/ - /*{ "JISX0208-1990", "JIS_X0208-1990" },*/ - /*{ "JISX0212-1990", "JIS_X0212-1990" },*/ - /*{ "KSC5601-1987", "KS_C_5601-1987" },*/ - { "SJIS-1", "CP943" }, - { "SJIS-2", "CP943" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW-1993", "EUC-TW" } -# define alias_table_defined -# endif -# if defined VMS /* OpenVMS */ - /* 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". */ - { "DECHANYU", "DEC-HANYU" }, - { "DECHANZI", "GB2312" }, - { "DECKANJI", "DEC-KANJI" }, - { "DECKOREAN", "EUC-KR" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "SDECKANJI", "EUC-JP" }, - { "SJIS", "SHIFT_JIS" }, - { "eucJP", "EUC-JP" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# ifndef alias_table_defined - /* Just a dummy entry, to avoid a C syntax error. */ - { "", "" } -# endif - }; - -# endif - -#else - -/* On these platforms, we use a mapping from locale name to GNU canonical - encoding name. */ - -struct table_entry -{ - const char locale[17+1]; - const char canonical[11+1]; -}; - -/* Table of platform-dependent mappings, sorted in ascending order. */ -static const struct table_entry locale_table[] = - { -# if defined __FreeBSD__ /* FreeBSD 4.2 */ - { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, - { "da_DK.DIS_8859-15", "ISO-8859-15" }, - { "da_DK.ISO_8859-1", "ISO-8859-1" }, - { "de_AT.DIS_8859-15", "ISO-8859-15" }, - { "de_AT.ISO_8859-1", "ISO-8859-1" }, - { "de_CH.DIS_8859-15", "ISO-8859-15" }, - { "de_CH.ISO_8859-1", "ISO-8859-1" }, - { "de_DE.DIS_8859-15", "ISO-8859-15" }, - { "de_DE.ISO_8859-1", "ISO-8859-1" }, - { "en_AU.DIS_8859-15", "ISO-8859-15" }, - { "en_AU.ISO_8859-1", "ISO-8859-1" }, - { "en_CA.DIS_8859-15", "ISO-8859-15" }, - { "en_CA.ISO_8859-1", "ISO-8859-1" }, - { "en_GB.DIS_8859-15", "ISO-8859-15" }, - { "en_GB.ISO_8859-1", "ISO-8859-1" }, - { "en_US.DIS_8859-15", "ISO-8859-15" }, - { "en_US.ISO_8859-1", "ISO-8859-1" }, - { "es_ES.DIS_8859-15", "ISO-8859-15" }, - { "es_ES.ISO_8859-1", "ISO-8859-1" }, - { "fi_FI.DIS_8859-15", "ISO-8859-15" }, - { "fi_FI.ISO_8859-1", "ISO-8859-1" }, - { "fr_BE.DIS_8859-15", "ISO-8859-15" }, - { "fr_BE.ISO_8859-1", "ISO-8859-1" }, - { "fr_CA.DIS_8859-15", "ISO-8859-15" }, - { "fr_CA.ISO_8859-1", "ISO-8859-1" }, - { "fr_CH.DIS_8859-15", "ISO-8859-15" }, - { "fr_CH.ISO_8859-1", "ISO-8859-1" }, - { "fr_FR.DIS_8859-15", "ISO-8859-15" }, - { "fr_FR.ISO_8859-1", "ISO-8859-1" }, - { "hr_HR.ISO_8859-2", "ISO-8859-2" }, - { "hu_HU.ISO_8859-2", "ISO-8859-2" }, - { "is_IS.DIS_8859-15", "ISO-8859-15" }, - { "is_IS.ISO_8859-1", "ISO-8859-1" }, - { "it_CH.DIS_8859-15", "ISO-8859-15" }, - { "it_CH.ISO_8859-1", "ISO-8859-1" }, - { "it_IT.DIS_8859-15", "ISO-8859-15" }, - { "it_IT.ISO_8859-1", "ISO-8859-1" }, - { "ja_JP.EUC", "EUC-JP" }, - { "ja_JP.SJIS", "SHIFT_JIS" }, - { "ja_JP.Shift_JIS", "SHIFT_JIS" }, - { "ko_KR.EUC", "EUC-KR" }, - { "la_LN.ASCII", "ASCII" }, - { "la_LN.DIS_8859-15", "ISO-8859-15" }, - { "la_LN.ISO_8859-1", "ISO-8859-1" }, - { "la_LN.ISO_8859-2", "ISO-8859-2" }, - { "la_LN.ISO_8859-4", "ISO-8859-4" }, - { "lt_LN.ASCII", "ASCII" }, - { "lt_LN.DIS_8859-15", "ISO-8859-15" }, - { "lt_LN.ISO_8859-1", "ISO-8859-1" }, - { "lt_LN.ISO_8859-2", "ISO-8859-2" }, - { "lt_LT.ISO_8859-4", "ISO-8859-4" }, - { "nl_BE.DIS_8859-15", "ISO-8859-15" }, - { "nl_BE.ISO_8859-1", "ISO-8859-1" }, - { "nl_NL.DIS_8859-15", "ISO-8859-15" }, - { "nl_NL.ISO_8859-1", "ISO-8859-1" }, - { "no_NO.DIS_8859-15", "ISO-8859-15" }, - { "no_NO.ISO_8859-1", "ISO-8859-1" }, - { "pl_PL.ISO_8859-2", "ISO-8859-2" }, - { "pt_PT.DIS_8859-15", "ISO-8859-15" }, - { "pt_PT.ISO_8859-1", "ISO-8859-1" }, - { "ru_RU.CP866", "CP866" }, - { "ru_RU.ISO_8859-5", "ISO-8859-5" }, - { "ru_RU.KOI8-R", "KOI8-R" }, - { "ru_SU.CP866", "CP866" }, - { "ru_SU.ISO_8859-5", "ISO-8859-5" }, - { "ru_SU.KOI8-R", "KOI8-R" }, - { "sl_SI.ISO_8859-2", "ISO-8859-2" }, - { "sv_SE.DIS_8859-15", "ISO-8859-15" }, - { "sv_SE.ISO_8859-1", "ISO-8859-1" }, - { "uk_UA.KOI8-U", "KOI8-U" }, - { "zh_CN.EUC", "GB2312" }, - { "zh_TW.BIG5", "BIG5" }, - { "zh_TW.Big5", "BIG5" } -# define locale_table_defined -# endif -# if defined __DJGPP__ /* DOS / DJGPP 2.03 */ - /* The encodings given here may not all be correct. - If you find that the encoding given for your language and - country is not the one your DOS machine actually uses, just - correct it in this file, and send a mail to - Juan Manuel Guerrero - and . */ - { "C", "ASCII" }, - { "ar", "CP864" }, - { "ar_AE", "CP864" }, - { "ar_DZ", "CP864" }, - { "ar_EG", "CP864" }, - { "ar_IQ", "CP864" }, - { "ar_IR", "CP864" }, - { "ar_JO", "CP864" }, - { "ar_KW", "CP864" }, - { "ar_MA", "CP864" }, - { "ar_OM", "CP864" }, - { "ar_QA", "CP864" }, - { "ar_SA", "CP864" }, - { "ar_SY", "CP864" }, - { "be", "CP866" }, - { "be_BE", "CP866" }, - { "bg", "CP866" }, /* not CP855 ?? */ - { "bg_BG", "CP866" }, /* not CP855 ?? */ - { "ca", "CP850" }, - { "ca_ES", "CP850" }, - { "cs", "CP852" }, - { "cs_CZ", "CP852" }, - { "da", "CP865" }, /* not CP850 ?? */ - { "da_DK", "CP865" }, /* not CP850 ?? */ - { "de", "CP850" }, - { "de_AT", "CP850" }, - { "de_CH", "CP850" }, - { "de_DE", "CP850" }, - { "el", "CP869" }, - { "el_GR", "CP869" }, - { "en", "CP850" }, - { "en_AU", "CP850" }, /* not CP437 ?? */ - { "en_CA", "CP850" }, - { "en_GB", "CP850" }, - { "en_NZ", "CP437" }, - { "en_US", "CP437" }, - { "en_ZA", "CP850" }, /* not CP437 ?? */ - { "eo", "CP850" }, - { "eo_EO", "CP850" }, - { "es", "CP850" }, - { "es_AR", "CP850" }, - { "es_BO", "CP850" }, - { "es_CL", "CP850" }, - { "es_CO", "CP850" }, - { "es_CR", "CP850" }, - { "es_CU", "CP850" }, - { "es_DO", "CP850" }, - { "es_EC", "CP850" }, - { "es_ES", "CP850" }, - { "es_GT", "CP850" }, - { "es_HN", "CP850" }, - { "es_MX", "CP850" }, - { "es_NI", "CP850" }, - { "es_PA", "CP850" }, - { "es_PE", "CP850" }, - { "es_PY", "CP850" }, - { "es_SV", "CP850" }, - { "es_UY", "CP850" }, - { "es_VE", "CP850" }, - { "et", "CP850" }, - { "et_EE", "CP850" }, - { "eu", "CP850" }, - { "eu_ES", "CP850" }, - { "fi", "CP850" }, - { "fi_FI", "CP850" }, - { "fr", "CP850" }, - { "fr_BE", "CP850" }, - { "fr_CA", "CP850" }, - { "fr_CH", "CP850" }, - { "fr_FR", "CP850" }, - { "ga", "CP850" }, - { "ga_IE", "CP850" }, - { "gd", "CP850" }, - { "gd_GB", "CP850" }, - { "gl", "CP850" }, - { "gl_ES", "CP850" }, - { "he", "CP862" }, - { "he_IL", "CP862" }, - { "hr", "CP852" }, - { "hr_HR", "CP852" }, - { "hu", "CP852" }, - { "hu_HU", "CP852" }, - { "id", "CP850" }, /* not CP437 ?? */ - { "id_ID", "CP850" }, /* not CP437 ?? */ - { "is", "CP861" }, /* not CP850 ?? */ - { "is_IS", "CP861" }, /* not CP850 ?? */ - { "it", "CP850" }, - { "it_CH", "CP850" }, - { "it_IT", "CP850" }, - { "ja", "CP932" }, - { "ja_JP", "CP932" }, - { "kr", "CP949" }, /* not CP934 ?? */ - { "kr_KR", "CP949" }, /* not CP934 ?? */ - { "lt", "CP775" }, - { "lt_LT", "CP775" }, - { "lv", "CP775" }, - { "lv_LV", "CP775" }, - { "mk", "CP866" }, /* not CP855 ?? */ - { "mk_MK", "CP866" }, /* not CP855 ?? */ - { "mt", "CP850" }, - { "mt_MT", "CP850" }, - { "nb", "CP865" }, /* not CP850 ?? */ - { "nb_NO", "CP865" }, /* not CP850 ?? */ - { "nl", "CP850" }, - { "nl_BE", "CP850" }, - { "nl_NL", "CP850" }, - { "nn", "CP865" }, /* not CP850 ?? */ - { "nn_NO", "CP865" }, /* not CP850 ?? */ - { "no", "CP865" }, /* not CP850 ?? */ - { "no_NO", "CP865" }, /* not CP850 ?? */ - { "pl", "CP852" }, - { "pl_PL", "CP852" }, - { "pt", "CP850" }, - { "pt_BR", "CP850" }, - { "pt_PT", "CP850" }, - { "ro", "CP852" }, - { "ro_RO", "CP852" }, - { "ru", "CP866" }, - { "ru_RU", "CP866" }, - { "sk", "CP852" }, - { "sk_SK", "CP852" }, - { "sl", "CP852" }, - { "sl_SI", "CP852" }, - { "sq", "CP852" }, - { "sq_AL", "CP852" }, - { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sv", "CP850" }, - { "sv_SE", "CP850" }, - { "th", "CP874" }, - { "th_TH", "CP874" }, - { "tr", "CP857" }, - { "tr_TR", "CP857" }, - { "uk", "CP1125" }, - { "uk_UA", "CP1125" }, - { "zh_CN", "GBK" }, - { "zh_TW", "CP950" } /* not CP938 ?? */ -# define locale_table_defined -# endif -# ifndef locale_table_defined - /* Just a dummy entry, to avoid a C syntax error. */ - { "", "" } -# endif - }; - -#endif - - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. - If the canonical name cannot be determined, the result is a non-canonical - name. */ - -#ifdef STATIC -STATIC -#endif -const char * -locale_charset (void) -{ - const char *codeset; - - /* This function must be multithread-safe. To achieve this without using - thread-local storage, we use a simple strcpy or memcpy to fill this static - buffer. Filling it through, for example, strcpy + strcat would not be - guaranteed to leave the buffer's contents intact if another thread is - currently accessing it. If necessary, the contents is first assembled in - a stack-allocated buffer. */ - -#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 - -# if HAVE_LANGINFO_CODESET - - /* Most systems support nl_langinfo (CODESET) nowadays. */ - codeset = nl_langinfo (CODESET); - -# ifdef __CYGWIN__ - /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always - returns "US-ASCII". 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 resultbuf[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 (resultbuf)) - { - /* This way of filling resultbuf is multithread-safe. */ - memcpy (resultbuf, dot, modifier - dot); - resultbuf [modifier - dot] = '\0'; - return resultbuf; - } - } - } - - /* The Windows API has a function returning the locale's codepage as a - number: GetACP(). This encoding is used by Cygwin, unless the user - has set the environment variable CYGWIN=codepage:oem (which very few - people do). - Output directed to console windows needs to be converted (to - GetOEMCP() if the console is using a raster font, or to - GetConsoleOutputCP() if it is using a TrueType font). Cygwin does - this conversion transparently (see winsup/cygwin/fhandler_console.cc), - converting to GetConsoleOutputCP(). This leads to correct results, - except when SetConsoleOutputCP has been called and a raster font is - in use. */ - { - char buf[2 + 10 + 1]; - - sprintf (buf, "CP%u", GetACP ()); - strcpy (resultbuf, buf); - codeset = resultbuf; - } - } -# endif - - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; - -# elif defined WINDOWS_NATIVE - - char buf[2 + 10 + 1]; - static char resultbuf[2 + 10 + 1]; - - /* The Windows API has a function returning the locale's codepage as - a number, but the value doesn't change according to what the - 'setlocale' call specified. So we use it as a last resort, in - case the string returned by 'setlocale' doesn't specify the - codepage. */ - char *current_locale = setlocale (LC_CTYPE, NULL); - char *pdot = strrchr (current_locale, '.'); - - if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) - sprintf (buf, "CP%s", pdot + 1); - else - { - /* The Windows API has a function returning the locale's codepage as a - number: GetACP(). - When the output goes to a console window, it needs to be provided in - GetOEMCP() encoding if the console is using a raster font, or in - GetConsoleOutputCP() encoding if it is using a TrueType font. - But in GUI programs and for output sent to files and pipes, GetACP() - encoding is the best bet. */ - sprintf (buf, "CP%u", GetACP ()); - } - /* For a locale name such as "French_France.65001", in Windows 10, - setlocale now returns "French_France.utf8" instead. */ - if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) - codeset = "UTF-8"; - else - { - strcpy (resultbuf, buf); - codeset = resultbuf; - } - -# elif defined OS2 - - const char *locale; - static char resultbuf[2 + 10 + 1]; - ULONG cp[3]; - ULONG cplen; - - codeset = NULL; - - /* 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 (resultbuf)) - { - /* This way of filling resultbuf is multithread-safe. */ - memcpy (resultbuf, dot, modifier - dot); - resultbuf [modifier - dot] = '\0'; - return resultbuf; - } - } - - /* For the POSIX locale, don't use the system's codepage. */ - if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0) - codeset = ""; - } - - if (codeset == NULL) - { - /* OS/2 has a function returning the locale's codepage as a number. */ - if (DosQueryCp (sizeof (cp), cp, &cplen)) - codeset = ""; - else - { - char buf[2 + 10 + 1]; - - sprintf (buf, "CP%u", cp[0]); - strcpy (resultbuf, buf); - codeset = resultbuf; - } - } - -# else - -# error "Add code for other platforms here." - -# endif - - /* Resolve alias. */ - { -# ifdef alias_table_defined - /* On some platforms, UTF-8 locales are the most frequently used ones. - Speed up the common case and slow down the less common cases by - testing for this case first. */ -# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ - if (strcmp (codeset, "UTF-8") == 0) - goto done_table_lookup; - else -# endif - { - const struct table_entry * const table = alias_table; - size_t const table_size = - sizeof (alias_table) / sizeof (struct table_entry); - /* The table is sorted. Perform a binary search. */ - size_t hi = table_size; - size_t lo = 0; - while (lo < hi) - { - /* Invariant: - for i < lo, strcmp (table[i].alias, codeset) < 0, - for i >= hi, strcmp (table[i].alias, codeset) > 0. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - int cmp = strcmp (table[mid].alias, codeset); - if (cmp < 0) - lo = mid + 1; - else if (cmp > 0) - hi = mid; - else - { - /* Found an i with - strcmp (table[i].alias, codeset) == 0. */ - codeset = table[mid].canonical; - goto done_table_lookup; - } - } - } - if (0) - done_table_lookup: ; - else -# endif - { - /* Did not find it in the table. */ - /* On Mac OS X, all modern locales use the UTF-8 encoding. - BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ -# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ - codeset = "UTF-8"; -# else - /* 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"; -# 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 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"); - if (locale == NULL) - locale = ""; - } - } - - /* Map locale name to canonical encoding name. */ - { -# ifdef locale_table_defined - const struct table_entry * const table = locale_table; - size_t const table_size = - sizeof (locale_table) / sizeof (struct table_entry); - /* The table is sorted. Perform a binary search. */ - size_t hi = table_size; - size_t lo = 0; - while (lo < hi) - { - /* Invariant: - for i < lo, strcmp (table[i].locale, locale) < 0, - for i >= hi, strcmp (table[i].locale, locale) > 0. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - int cmp = strcmp (table[mid].locale, locale); - if (cmp < 0) - lo = mid + 1; - else if (cmp > 0) - hi = mid; - else - { - /* Found an i with - strcmp (table[i].locale, locale) == 0. */ - codeset = table[mid].canonical; - goto done_table_lookup; - } - } - if (0) - done_table_lookup: ; - else -# endif - { - /* Did not find it in the table. */ - /* On Mac OS X, all modern locales use the UTF-8 encoding. - BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ -# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ - codeset = "UTF-8"; -# else - /* The canonical name cannot be determined. */ - /* 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. */ - codeset = "ASCII"; -# endif - } - } - -#endif - -#ifdef DARWIN7 - /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" - (the default codeset) does not work when MB_CUR_MAX is 1. */ - if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1) - codeset = "ASCII"; -#endif - - return codeset; -} diff --git a/jni/parted/libcharset/lib/relocatable-stub.c b/jni/parted/libcharset/lib/relocatable-stub.c deleted file mode 100755 index cbfc595..0000000 --- a/jni/parted/libcharset/lib/relocatable-stub.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Provide relocatable packages. - Copyright (C) 2018 Free Software Foundation, Inc. - Written by Bruno Haible , 2018. - - This program 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, 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see . */ - -#include - -#include "libcharset.h" - -extern LIBCHARSET_DLL_EXPORTED void -libcharset_set_relocation_prefix (const char *orig_prefix, const char *curr_prefix); - -/* This is a stub for binary backward-compatibility. */ -void -libcharset_set_relocation_prefix (const char *orig_prefix, const char *curr_prefix) -{ -} diff --git a/jni/parted/libgnulib/Android.mk b/jni/parted/libgnulib/Android.mk deleted file mode 100755 index 1ceb7b9..0000000 --- a/jni/parted/libgnulib/Android.mk +++ /dev/null @@ -1,97 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -######## -# 3.0.2 -######## - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libgnulib -LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/lib/argmatch.c \ - $(LOCAL_PATH)/lib/basename-lgpl.c \ - $(LOCAL_PATH)/lib/basename.c \ - $(LOCAL_PATH)/lib/btowc.c \ - $(LOCAL_PATH)/lib/c-ctype.c \ - $(LOCAL_PATH)/lib/c-strcasecmp.c \ - $(LOCAL_PATH)/lib/c-strncasecmp.c \ - $(LOCAL_PATH)/lib/c32isprint.c \ - $(LOCAL_PATH)/lib/canonicalize-lgpl.c \ - $(LOCAL_PATH)/lib/cloexec.c \ - $(LOCAL_PATH)/lib/close-stream.c \ - $(LOCAL_PATH)/lib/closeout.c \ - $(LOCAL_PATH)/lib/dirname-lgpl.c \ - $(LOCAL_PATH)/lib/dirname.c \ - $(LOCAL_PATH)/lib/error.c \ - $(LOCAL_PATH)/lib/exitfail.c \ - $(LOCAL_PATH)/lib/fcntl.c \ - $(LOCAL_PATH)/lib/free.c \ - $(LOCAL_PATH)/lib/getdtablesize.c \ - $(LOCAL_PATH)/lib/hard-locale.c \ - $(LOCAL_PATH)/lib/ialloc.c \ - $(LOCAL_PATH)/lib/iswctype.c \ - $(LOCAL_PATH)/lib/iswdigit.c \ - $(LOCAL_PATH)/lib/iswpunct.c \ - $(LOCAL_PATH)/lib/iswxdigit.c \ - $(LOCAL_PATH)/lib/localcharset.c \ - $(LOCAL_PATH)/lib/long-options.c \ - $(LOCAL_PATH)/lib/malloca.c \ - $(LOCAL_PATH)/lib/mbrtoc32.c \ - $(LOCAL_PATH)/lib/mbrtowc.c \ - $(LOCAL_PATH)/lib/mbszero.c \ - $(LOCAL_PATH)/lib/nl_langinfo.c \ - $(LOCAL_PATH)/lib/progname.c \ - $(LOCAL_PATH)/lib/quotearg.c \ - $(LOCAL_PATH)/lib/rawmemchr.c \ - $(LOCAL_PATH)/lib/regex.c \ - $(LOCAL_PATH)/lib/rpmatch.c \ - $(LOCAL_PATH)/lib/safe-read.c \ - $(LOCAL_PATH)/lib/setlocale-lock.c \ - $(LOCAL_PATH)/lib/setlocale_null-unlocked.c \ - $(LOCAL_PATH)/lib/setlocale_null.c \ - $(LOCAL_PATH)/lib/stat-time.c \ - $(LOCAL_PATH)/lib/stripslash.c \ - $(LOCAL_PATH)/lib/tempname.c \ - $(LOCAL_PATH)/lib/version-etc-fsf.c \ - $(LOCAL_PATH)/lib/version-etc.c \ - $(LOCAL_PATH)/lib/wctype.c \ - $(LOCAL_PATH)/lib/unictype/ctype_print.c \ - $(LOCAL_PATH)/lib/xalloc-die.c \ - $(LOCAL_PATH)/lib/xmalloc.c \ - $(LOCAL_PATH)/lib/xstrtol.c \ - $(LOCAL_PATH)/lib/xstrtoll.c \ - $(LOCAL_PATH)/lib/xstrtoul.c \ - $(LOCAL_PATH)/lib/xstrtoull.c -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../../../include/libgnulib \ - $(LOCAL_PATH)/../../../include \ - $(LOCAL_PATH)/../lib \ - $(LOCAL_PATH)/lib -LOCAL_CFLAGS := \ - -Wall \ - -Wextra \ - -Wno-sign-compare \ - -Wno-unused-const-variable \ - -Wno-unused-parameter \ - -Wno-nullability-completeness \ - -Wno-macro-redefined \ - -fPIC \ - -include $(LOCAL_PATH)/../../include/PartitionManager/Alternatives.h - -include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/jni/parted/libgnulib/lib/argmatch.c b/jni/parted/libgnulib/lib/argmatch.c deleted file mode 100755 index c9d727c..0000000 --- a/jni/parted/libgnulib/lib/argmatch.c +++ /dev/null @@ -1,293 +0,0 @@ -/* argmatch.c -- find a match for a string in an array - - Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by David MacKenzie - Modified by Akim Demaille */ - -#include - -/* Specification. */ -#include "argmatch.h" - -#include -#include -#include - -#define _(msgid) gettext (msgid) - -#include -#include "quotearg.h" - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -/* When reporting an invalid argument, show nonprinting characters - by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use - literal_quoting_style. */ -#ifndef ARGMATCH_QUOTING_STYLE -# define ARGMATCH_QUOTING_STYLE locale_quoting_style -#endif - -/* Non failing version of argmatch call this function after failing. */ -#ifndef ARGMATCH_DIE -# include "exitfail.h" -# define ARGMATCH_DIE exit (exit_failure) -#endif - -#ifdef ARGMATCH_DIE_DECL -ARGMATCH_DIE_DECL; -#endif - -static void -__argmatch_die (void) -{ - ARGMATCH_DIE; -} - -/* Used by XARGMATCH. See description in argmatch.h. - Default to __argmatch_die, but allow caller to change this at run-time. */ -argmatch_exit_fn argmatch_die = __argmatch_die; - - -/* If ARG is an unambiguous match for an element of the - NULL-terminated array ARGLIST, return the index in ARGLIST - of the matched element, else -1 if it does not match any element - or -2 if it is ambiguous (is a prefix of more than one element). - - If VALLIST is none null, use it to resolve ambiguities limited to - synonyms, i.e., for - "yes", "yop" -> 0 - "no", "nope" -> 1 - "y" is a valid argument, for 0, and "n" for 1. */ - -ptrdiff_t -argmatch (const char *arg, const char *const *arglist, - const void *vallist, size_t valsize) -{ - size_t i; /* Temporary index in ARGLIST. */ - size_t arglen; /* Length of ARG. */ - ptrdiff_t matchind = -1; /* Index of first nonexact match. */ - bool ambiguous = false; /* If true, multiple nonexact match(es). */ - - arglen = strlen (arg); - - /* Test all elements for either exact match or abbreviated matches. */ - for (i = 0; arglist[i]; i++) - { - if (!strncmp (arglist[i], arg, arglen)) - { - if (strlen (arglist[i]) == arglen) - /* Exact match found. */ - return i; - else if (matchind == -1) - /* First nonexact match found. */ - matchind = i; - else - { - /* Second nonexact match found. */ - if (vallist == NULL - || memcmp ((char const *) vallist + valsize * matchind, - (char const *) vallist + valsize * i, valsize)) - { - /* There is a real ambiguity, or we could not - disambiguate. */ - ambiguous = true; - } - } - } - } - if (ambiguous) - return -2; - else - return matchind; -} - -ptrdiff_t -argmatch_exact (const char *arg, const char *const *arglist) -{ - size_t i; - - /* Test elements for exact match. */ - for (i = 0; arglist[i]; i++) - { - if (!strcmp (arglist[i], arg)) - return i; - } - - return -1; -} - -/* Error reporting for argmatch. - CONTEXT is a description of the type of entity that was being matched. - VALUE is the invalid value that was given. - PROBLEM is the return value from argmatch. */ - -void -argmatch_invalid (const char *context, const char *value, ptrdiff_t problem) -{ - char const *format = (problem == -1 - ? _("invalid argument %s for %s") - : _("ambiguous argument %s for %s")); - - error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value), - quote_n (1, context)); -} - -/* List the valid arguments for argmatch. - ARGLIST is the same as in argmatch. - VALLIST is a pointer to an array of values. - VALSIZE is the size of the elements of VALLIST */ -void -argmatch_valid (const char *const *arglist, - const void *vallist, size_t valsize) -{ - size_t i; - const char *last_val = NULL; - - /* We try to put synonyms on the same line. The assumption is that - synonyms follow each other */ - fputs (_("Valid arguments are:"), stderr); - for (i = 0; arglist[i]; i++) - if ((i == 0) - || memcmp (last_val, (char const *) vallist + valsize * i, valsize)) - { - fprintf (stderr, "\n - %s", quote (arglist[i])); - last_val = (char const *) vallist + valsize * i; - } - else - { - fprintf (stderr, ", %s", quote (arglist[i])); - } - putc ('\n', stderr); -} - -/* Never failing versions of the previous functions. - - CONTEXT is the context for which argmatch is called (e.g., - "--version-control", or "$VERSION_CONTROL" etc.). Upon failure, - calls the (supposed never to return) function EXIT_FN. */ - -ptrdiff_t -__xargmatch_internal (const char *context, - const char *arg, const char *const *arglist, - const void *vallist, size_t valsize, - argmatch_exit_fn exit_fn, - bool allow_abbreviation) -{ - ptrdiff_t res; - - if (allow_abbreviation) - res = argmatch (arg, arglist, vallist, valsize); - else - res = argmatch_exact (arg, arglist); - - if (res >= 0) - /* Success. */ - return res; - - /* We failed. Explain why. */ - argmatch_invalid (context, arg, res); - argmatch_valid (arglist, vallist, valsize); - (*exit_fn) (); - - return -1; /* To please the compilers. */ -} - -/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and - return the first corresponding argument in ARGLIST */ -const char * -argmatch_to_argument (const void *value, - const char *const *arglist, - const void *vallist, size_t valsize) -{ - size_t i; - - for (i = 0; arglist[i]; i++) - if (!memcmp (value, (char const *) vallist + valsize * i, valsize)) - return arglist[i]; - return NULL; -} - -#ifdef TEST -/* - * Based on "getversion.c" by David MacKenzie - */ - -/* When to make backup files. */ -enum backup_type -{ - /* Never make backups. */ - no_backups, - - /* Make simple backups of every file. */ - simple_backups, - - /* Make numbered backups of files that already have numbered backups, - and simple backups of the others. */ - numbered_existing_backups, - - /* Make numbered backups of every file. */ - numbered_backups -}; - -/* Two tables describing arguments (keys) and their corresponding - values */ -static const char *const backup_args[] = -{ - "no", "none", "off", - "simple", "never", - "existing", "nil", - "numbered", "t", - 0 -}; - -static const enum backup_type backup_vals[] = -{ - no_backups, no_backups, no_backups, - simple_backups, simple_backups, - numbered_existing_backups, numbered_existing_backups, - numbered_backups, numbered_backups -}; - -int -main (int argc, const char *const *argv) -{ - const char *cp; - enum backup_type backup_type = no_backups; - - if (argc > 2) - { - fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", getprogname ()); - exit (1); - } - - if ((cp = getenv ("VERSION_CONTROL"))) - backup_type = XARGMATCH ("$VERSION_CONTROL", cp, - backup_args, backup_vals); - - if (argc == 2) - backup_type = XARGMATCH (getprogname (), argv[1], - backup_args, backup_vals); - - printf ("The version control is '%s'\n", - ARGMATCH_TO_ARGUMENT (&backup_type, backup_args, backup_vals)); - - return 0; -} -#endif diff --git a/jni/parted/libgnulib/lib/basename-lgpl.c b/jni/parted/libgnulib/lib/basename-lgpl.c deleted file mode 100755 index 256f846..0000000 --- a/jni/parted/libgnulib/lib/basename-lgpl.c +++ /dev/null @@ -1,70 +0,0 @@ -/* basename.c -- return the last element in a file name - - Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "basename-lgpl.h" - -#include - -#include "filename.h" - -char * -last_component (char const *name) -{ - char const *base = name + FILE_SYSTEM_PREFIX_LEN (name); - char const *p; - bool last_was_slash = false; - - while (ISSLASH (*base)) - base++; - - for (p = base; *p; p++) - { - if (ISSLASH (*p)) - last_was_slash = true; - else if (last_was_slash) - { - base = p; - last_was_slash = false; - } - } - - return (char *) base; -} - -size_t -base_len (char const *name) -{ - size_t len; - size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); - - for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) - continue; - - if (DOUBLE_SLASH_IS_DISTINCT_ROOT && len == 1 - && ISSLASH (name[0]) && ISSLASH (name[1]) && ! name[2]) - return 2; - - if (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE && prefix_len - && len == prefix_len && ISSLASH (name[prefix_len])) - return prefix_len + 1; - - return len; -} diff --git a/jni/parted/libgnulib/lib/basename.c b/jni/parted/libgnulib/lib/basename.c deleted file mode 100755 index c5a6bdc..0000000 --- a/jni/parted/libgnulib/lib/basename.c +++ /dev/null @@ -1,64 +0,0 @@ -/* basename.c -- return the last element in a file name - - Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#include - -#include "dirname.h" - -#include -#include "xalloc.h" - -char * -base_name (char const *name) -{ - char const *base = last_component (name); - idx_t length; - int dotslash_len; - if (*base) - { - length = base_len (base); - - /* Collapse a sequence of trailing slashes into one. */ - length += ISSLASH (base[length]); - - /* On systems with drive letters, "a/b:c" must return "./b:c" rather - than "b:c" to avoid confusion with a drive letter. On systems - with pure POSIX semantics, this is not an issue. */ - dotslash_len = FILE_SYSTEM_PREFIX_LEN (base) != 0 ? 2 : 0; - } - else - { - /* There is no last component, so NAME is a file system root or - the empty string. */ - base = name; - length = base_len (base); - dotslash_len = 0; - } - - char *p = ximalloc (dotslash_len + length + 1); - if (dotslash_len) - { - p[0] = '.'; - p[1] = '/'; - } - - /* Finally, copy the basename. */ - memcpy (p + dotslash_len, base, length); - p[dotslash_len + length] = '\0'; - return p; -} diff --git a/jni/parted/libgnulib/lib/btowc.c b/jni/parted/libgnulib/lib/btowc.c deleted file mode 100755 index 8bf21aa..0000000 --- a/jni/parted/libgnulib/lib/btowc.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Convert unibyte character to wide character. - Copyright (C) 2008, 2010-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include - -wint_t -btowc (int c) -{ - if (c != EOF) - { - char buf[1]; - wchar_t wc; - - buf[0] = c; -#if HAVE_MBRTOWC - mbstate_t state; - mbszero (&state); - size_t ret = mbrtowc (&wc, buf, 1, &state); - if (!(ret == (size_t)(-1) || ret == (size_t)(-2))) -#else - if (mbtowc (&wc, buf, 1) >= 0) -#endif - return wc; - } - return WEOF; -} diff --git a/jni/parted/libgnulib/lib/c-ctype.c b/jni/parted/libgnulib/lib/c-ctype.c deleted file mode 100755 index d3f1b12..0000000 --- a/jni/parted/libgnulib/lib/c-ctype.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Character handling in C locale. - - Copyright (C) 2003-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define C_CTYPE_INLINE _GL_EXTERN_INLINE -#include "c-ctype.h" diff --git a/jni/parted/libgnulib/lib/c-strcasecmp.c b/jni/parted/libgnulib/lib/c-strcasecmp.c deleted file mode 100755 index 1fa575a..0000000 --- a/jni/parted/libgnulib/lib/c-strcasecmp.c +++ /dev/null @@ -1,56 +0,0 @@ -/* c-strcasecmp.c -- case insensitive string comparator in C locale - Copyright (C) 1998-1999, 2005-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "c-strcase.h" - -#include - -#include "c-ctype.h" - -int -c_strcasecmp (const char *s1, const char *s2) -{ - register const unsigned char *p1 = (const unsigned char *) s1; - register const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - if (p1 == p2) - return 0; - - do - { - c1 = c_tolower (*p1); - c2 = c_tolower (*p2); - - if (c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - if (UCHAR_MAX <= INT_MAX) - return c1 - c2; - else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return _GL_CMP (c1, c2); -} diff --git a/jni/parted/libgnulib/lib/c-strncasecmp.c b/jni/parted/libgnulib/lib/c-strncasecmp.c deleted file mode 100755 index 4c8b0b6..0000000 --- a/jni/parted/libgnulib/lib/c-strncasecmp.c +++ /dev/null @@ -1,56 +0,0 @@ -/* c-strncasecmp.c -- case insensitive string comparator in C locale - Copyright (C) 1998-1999, 2005-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "c-strcase.h" - -#include - -#include "c-ctype.h" - -int -c_strncasecmp (const char *s1, const char *s2, size_t n) -{ - register const unsigned char *p1 = (const unsigned char *) s1; - register const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - if (p1 == p2 || n == 0) - return 0; - - do - { - c1 = c_tolower (*p1); - c2 = c_tolower (*p2); - - if (--n == 0 || c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - if (UCHAR_MAX <= INT_MAX) - return c1 - c2; - else - /* On machines where 'char' and 'int' are types of the same size, the - difference of two 'unsigned char' values - including the sign bit - - doesn't fit in an 'int'. */ - return _GL_CMP (c1, c2); -} diff --git a/jni/parted/libgnulib/lib/c32isprint.c b/jni/parted/libgnulib/lib/c32isprint.c deleted file mode 100755 index fd8d7a6..0000000 --- a/jni/parted/libgnulib/lib/c32isprint.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Test 32-bit wide character for being printable. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define IN_C32ISPRINT -/* Specification. */ -#include - -#define FUNC c32isprint -#define WCHAR_FUNC iswprint -#define UCS_FUNC uc_is_print -#include "c32is-impl.h" diff --git a/jni/parted/libgnulib/lib/canonicalize-lgpl.c b/jni/parted/libgnulib/lib/canonicalize-lgpl.c deleted file mode 100755 index efd79ce..0000000 --- a/jni/parted/libgnulib/lib/canonicalize-lgpl.c +++ /dev/null @@ -1,469 +0,0 @@ -/* Return the canonical absolute name of a given file. - Copyright (C) 1996-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _LIBC -/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc - optimizes away the name == NULL test below. */ -# define _GL_ARG_NONNULL(params) - -# include -#endif - -/* Specification. */ -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#ifdef _LIBC -# include -# define GCC_LINT 1 -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -#else -# define __canonicalize_file_name canonicalize_file_name -# define __realpath realpath -# define __strdup strdup -# include "pathmax.h" -# define __faccessat faccessat -# if defined _WIN32 && !defined __CYGWIN__ -# define __getcwd _getcwd -# elif HAVE_GETCWD -# if IN_RELOCWRAPPER - /* When building the relocatable program wrapper, use the system's getcwd - function, not the gnulib override, otherwise we would get a link error. - */ -# undef getcwd -# endif -# if defined VMS && !defined getcwd - /* We want the directory in Unix syntax, not in VMS syntax. - The gnulib override of 'getcwd' takes 2 arguments; the original VMS - 'getcwd' takes 3 arguments. */ -# define __getcwd(buf, max) getcwd (buf, max, 0) -# else -# define __getcwd getcwd -# endif -# else -# define __getcwd(buf, max) getwd (buf) -# endif -# define __mempcpy mempcpy -# define __pathconf pathconf -# define __rawmemchr rawmemchr -# define __readlink readlink -# if IN_RELOCWRAPPER - /* When building the relocatable program wrapper, use the system's memmove - function, not the gnulib override, otherwise we would get a link error. - */ -# undef memmove -# endif -#endif - -/* Suppress bogus GCC -Wmaybe-uninitialized warnings. */ -#if defined GCC_LINT || defined lint -# define IF_LINT(Code) Code -#else -# define IF_LINT(Code) /* empty */ -#endif - -#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT -# define DOUBLE_SLASH_IS_DISTINCT_ROOT false -#endif - -#if defined _LIBC || !FUNC_REALPATH_WORKS - -/* Return true if FILE's existence can be shown, false (setting errno) - otherwise. Follow symbolic links. */ -static bool -file_accessible (char const *file) -{ -# if defined _LIBC || HAVE_FACCESSAT - return __faccessat (AT_FDCWD, file, F_OK, AT_EACCESS) == 0; -# else - struct stat st; - return stat (file, &st) == 0 || errno == EOVERFLOW; -# endif -} - -/* True if concatenating END as a suffix to a file name means that the - code needs to check that the file name is that of a searchable - directory, since the canonicalize_filename_mode_stk code won't - check this later anyway when it checks an ordinary file name - component within END. END must either be empty, or start with a - slash. */ - -static bool _GL_ATTRIBUTE_PURE -suffix_requires_dir_check (char const *end) -{ - /* If END does not start with a slash, the suffix is OK. */ - while (ISSLASH (*end)) - { - /* Two or more slashes act like a single slash. */ - do - end++; - while (ISSLASH (*end)); - - switch (*end++) - { - default: return false; /* An ordinary file name component is OK. */ - case '\0': return true; /* Trailing "/" is trouble. */ - case '.': break; /* Possibly "." or "..". */ - } - /* Trailing "/.", or "/.." even if not trailing, is trouble. */ - if (!*end || (*end == '.' && (!end[1] || ISSLASH (end[1])))) - return true; - } - - return false; -} - -/* Append this to a file name to test whether it is a searchable directory. - On POSIX platforms "/" suffices, but "/./" is sometimes needed on - macOS 10.13 , and should also work on - platforms like AIX 7.2 that need at least "/.". */ - -# if defined _LIBC || defined LSTAT_FOLLOWS_SLASHED_SYMLINK -static char const dir_suffix[] = "/"; -# else -static char const dir_suffix[] = "/./"; -# endif - -/* Return true if DIR is a searchable dir, false (setting errno) otherwise. - DIREND points to the NUL byte at the end of the DIR string. - Store garbage into DIREND[0 .. strlen (dir_suffix)]. */ - -static bool -dir_check (char *dir, char *dirend) -{ - strcpy (dirend, dir_suffix); - return file_accessible (dir); -} - -static idx_t -get_path_max (void) -{ -# ifdef PATH_MAX - long int path_max = PATH_MAX; -# else - /* The caller invoked realpath with a null RESOLVED, even though - PATH_MAX is not defined as a constant. The glibc manual says - programs should not do this, and POSIX says the behavior is undefined. - Historically, glibc here used the result of pathconf, or 1024 if that - failed; stay consistent with this (dubious) historical practice. */ - int err = errno; - long int path_max = __pathconf ("/", _PC_PATH_MAX); - __set_errno (err); -# endif - return path_max < 0 ? 1024 : path_max <= IDX_MAX ? path_max : IDX_MAX; -} - -/* Scratch buffers used by realpath_stk and managed by __realpath. */ -struct realpath_bufs -{ - struct scratch_buffer rname; - struct scratch_buffer extra; - struct scratch_buffer link; -}; - -static char * -realpath_stk (const char *name, char *resolved, struct realpath_bufs *bufs) -{ - char *dest; - char const *start; - char const *end; - int num_links = 0; - - if (name == NULL) - { - /* As per Single Unix Specification V2 we must return an error if - either parameter is a null pointer. We extend this to allow - the RESOLVED parameter to be NULL in case the we are expected to - allocate the room for the return value. */ - __set_errno (EINVAL); - return NULL; - } - - if (name[0] == '\0') - { - /* As per Single Unix Specification V2 we must return an error if - the name argument points to an empty string. */ - __set_errno (ENOENT); - return NULL; - } - - char *rname = bufs->rname.data; - bool end_in_extra_buffer = false; - bool failed = true; - - /* This is always zero for Posix hosts, but can be 2 for MS-Windows - and MS-DOS X:/foo/bar file names. */ - idx_t prefix_len = FILE_SYSTEM_PREFIX_LEN (name); - - if (!IS_ABSOLUTE_FILE_NAME (name)) - { - while (!__getcwd (bufs->rname.data, bufs->rname.length)) - { - if (errno != ERANGE) - { - dest = rname; - goto error; - } - if (!scratch_buffer_grow (&bufs->rname)) - return NULL; - rname = bufs->rname.data; - } - dest = __rawmemchr (rname, '\0'); - start = name; - prefix_len = FILE_SYSTEM_PREFIX_LEN (rname); - } - else - { - dest = __mempcpy (rname, name, prefix_len); - *dest++ = '/'; - if (DOUBLE_SLASH_IS_DISTINCT_ROOT) - { - if (prefix_len == 0 /* implies ISSLASH (name[0]) */ - && ISSLASH (name[1]) && !ISSLASH (name[2])) - *dest++ = '/'; - *dest = '\0'; - } - start = name + prefix_len; - } - - for ( ; *start; start = end) - { - /* Skip sequence of multiple file name separators. */ - while (ISSLASH (*start)) - ++start; - - /* Find end of component. */ - for (end = start; *end && !ISSLASH (*end); ++end) - /* Nothing. */; - - /* Length of this file name component; it can be zero if a file - name ends in '/'. */ - idx_t startlen = end - start; - - if (startlen == 0) - break; - else if (startlen == 1 && start[0] == '.') - /* nothing */; - else if (startlen == 2 && start[0] == '.' && start[1] == '.') - { - /* Back up to previous component, ignore if at root already. */ - if (dest > rname + prefix_len + 1) - for (--dest; dest > rname && !ISSLASH (dest[-1]); --dest) - continue; - if (DOUBLE_SLASH_IS_DISTINCT_ROOT - && dest == rname + 1 && !prefix_len - && ISSLASH (*dest) && !ISSLASH (dest[1])) - dest++; - } - else - { - if (!ISSLASH (dest[-1])) - *dest++ = '/'; - - while (rname + bufs->rname.length - dest - < startlen + sizeof dir_suffix) - { - idx_t dest_offset = dest - rname; - if (!scratch_buffer_grow_preserve (&bufs->rname)) - return NULL; - rname = bufs->rname.data; - dest = rname + dest_offset; - } - - dest = __mempcpy (dest, start, startlen); - *dest = '\0'; - - char *buf; - ssize_t n; - while (true) - { - buf = bufs->link.data; - idx_t bufsize = bufs->link.length; - n = __readlink (rname, buf, bufsize - 1); - if (n < bufsize - 1) - break; - if (!scratch_buffer_grow (&bufs->link)) - return NULL; - } - if (0 <= n) - { - if (++num_links > __eloop_threshold ()) - { - __set_errno (ELOOP); - goto error; - } - - buf[n] = '\0'; - - char *extra_buf = bufs->extra.data; - idx_t end_idx IF_LINT (= 0); - if (end_in_extra_buffer) - end_idx = end - extra_buf; - size_t len = strlen (end); - if (INT_ADD_OVERFLOW (len, n)) - { - __set_errno (ENOMEM); - return NULL; - } - while (bufs->extra.length <= len + n) - { - if (!scratch_buffer_grow_preserve (&bufs->extra)) - return NULL; - extra_buf = bufs->extra.data; - } - if (end_in_extra_buffer) - end = extra_buf + end_idx; - - /* Careful here, end may be a pointer into extra_buf... */ - memmove (&extra_buf[n], end, len + 1); - name = end = memcpy (extra_buf, buf, n); - end_in_extra_buffer = true; - - if (IS_ABSOLUTE_FILE_NAME (buf)) - { - idx_t pfxlen = FILE_SYSTEM_PREFIX_LEN (buf); - - dest = __mempcpy (rname, buf, pfxlen); - *dest++ = '/'; /* It's an absolute symlink */ - if (DOUBLE_SLASH_IS_DISTINCT_ROOT) - { - if (ISSLASH (buf[1]) && !ISSLASH (buf[2]) && !pfxlen) - *dest++ = '/'; - *dest = '\0'; - } - /* Install the new prefix to be in effect hereafter. */ - prefix_len = pfxlen; - } - else - { - /* Back up to previous component, ignore if at root - already: */ - if (dest > rname + prefix_len + 1) - for (--dest; dest > rname && !ISSLASH (dest[-1]); --dest) - continue; - if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 - && ISSLASH (*dest) && !ISSLASH (dest[1]) && !prefix_len) - dest++; - } - } - else if (! (suffix_requires_dir_check (end) - ? dir_check (rname, dest) - : errno == EINVAL)) - goto error; - } - } - if (dest > rname + prefix_len + 1 && ISSLASH (dest[-1])) - --dest; - if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rname + 1 && !prefix_len - && ISSLASH (*dest) && !ISSLASH (dest[1])) - dest++; - failed = false; - -error: - *dest++ = '\0'; - if (resolved != NULL) - { - /* Copy the full result on success or partial result if failure was due - to the path not existing or not being accessible. */ - if ((!failed || errno == ENOENT || errno == EACCES) - && dest - rname <= get_path_max ()) - { - strcpy (resolved, rname); - if (failed) - return NULL; - else - return resolved; - } - if (!failed) - __set_errno (ENAMETOOLONG); - return NULL; - } - else - { - if (failed) - return NULL; - else - return __strdup (bufs->rname.data); - } -} - -/* Return the canonical absolute name of file NAME. A canonical name - does not contain any ".", ".." components nor any repeated file name - separators ('/') or symlinks. All file name components must exist. If - RESOLVED is null, the result is malloc'd; otherwise, if the - canonical name is PATH_MAX chars or more, returns null with 'errno' - set to ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, - returns the name in RESOLVED. If the name cannot be resolved and - RESOLVED is non-NULL, it contains the name of the first component - that cannot be resolved. If the name can be resolved, RESOLVED - holds the same value as the value returned. */ - -char * -__realpath (const char *name, char *resolved) -{ - struct realpath_bufs bufs; - scratch_buffer_init (&bufs.rname); - scratch_buffer_init (&bufs.extra); - scratch_buffer_init (&bufs.link); - char *result = realpath_stk (name, resolved, &bufs); - scratch_buffer_free (&bufs.link); - scratch_buffer_free (&bufs.extra); - scratch_buffer_free (&bufs.rname); - return result; -} -libc_hidden_def (__realpath) -versioned_symbol (libc, __realpath, realpath, GLIBC_2_3); - -#endif /* defined _LIBC || !FUNC_REALPATH_WORKS */ - - -#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3) -char * -attribute_compat_text_section -__old_realpath (const char *name, char *resolved) -{ - if (resolved == NULL) - { - __set_errno (EINVAL); - return NULL; - } - - return __realpath (name, resolved); -} -compat_symbol (libc, __old_realpath, realpath, GLIBC_2_0); -#endif - - -char * -__canonicalize_file_name (const char *name) -{ - return __realpath (name, NULL); -} -weak_alias (__canonicalize_file_name, canonicalize_file_name) diff --git a/jni/parted/libgnulib/lib/cloexec.c b/jni/parted/libgnulib/lib/cloexec.c deleted file mode 100755 index cdb0d74..0000000 --- a/jni/parted/libgnulib/lib/cloexec.c +++ /dev/null @@ -1,83 +0,0 @@ -/* cloexec.c - set or clear the close-on-exec descriptor flag - - Copyright (C) 1991, 2004-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* The code is taken from glibc/manual/llio.texi */ - -#include - -#include "cloexec.h" - -#include -#include -#include - -/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, - or clear the flag if VALUE is false. - Return 0 on success, or -1 on error with 'errno' set. - - Note that on MingW, this function does NOT protect DESC from being - inherited into spawned children. Instead, either use dup_cloexec - followed by closing the original DESC, or use interfaces such as - open or pipe2 that accept flags like O_CLOEXEC to create DESC - non-inheritable in the first place. */ - -int -set_cloexec_flag (int desc, bool value) -{ -#ifdef F_SETFD - - int flags = fcntl (desc, F_GETFD, 0); - - if (0 <= flags) - { - int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC); - - if (flags == newflags - || fcntl (desc, F_SETFD, newflags) != -1) - return 0; - } - - return -1; - -#else /* !F_SETFD */ - - /* Use dup2 to reject invalid file descriptors; the cloexec flag - will be unaffected. */ - if (desc < 0) - { - errno = EBADF; - return -1; - } - if (dup2 (desc, desc) < 0) - /* errno is EBADF here. */ - return -1; - - /* There is nothing we can do on this kind of platform. Punt. */ - return 0; -#endif /* !F_SETFD */ -} - - -/* Duplicates a file handle FD, while marking the copy to be closed - prior to exec or spawn. Returns -1 and sets errno if FD could not - be duplicated. */ - -int -dup_cloexec (int fd) -{ - return fcntl (fd, F_DUPFD_CLOEXEC, 0); -} diff --git a/jni/parted/libgnulib/lib/close-stream.c b/jni/parted/libgnulib/lib/close-stream.c deleted file mode 100755 index 81094c6..0000000 --- a/jni/parted/libgnulib/lib/close-stream.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Close a stream, with nicer error checking than fclose's. - - Copyright (C) 1998-2002, 2004, 2006-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include - -#include "close-stream.h" - -#include - -#include "fpending.h" - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -/* Close STREAM. Return 0 if successful, EOF (setting errno) - otherwise. A failure might set errno to 0 if the error number - cannot be determined. - - A failure with errno set to EPIPE may or may not indicate an error - situation worth signaling to the user. See the documentation of the - close_stdout_set_ignore_EPIPE function for details. - - If a program writes *anything* to STREAM, that program should close - STREAM and make sure that it succeeds before exiting. Otherwise, - suppose that you go to the extreme of checking the return status - of every function that does an explicit write to STREAM. The last - printf can succeed in writing to the internal stream buffer, and yet - the fclose(STREAM) could still fail (due e.g., to a disk full error) - when it tries to write out that buffered data. Thus, you would be - left with an incomplete output file and the offending program would - exit successfully. Even calling fflush is not always sufficient, - since some file systems (NFS and CODA) buffer written/flushed data - until an actual close call. - - Besides, it's wasteful to check the return value from every call - that writes to STREAM -- just let the internal stream state record - the failure. That's what the ferror test is checking below. */ - -int -close_stream (FILE *stream) -{ - const bool some_pending = (__fpending (stream) != 0); - const bool prev_fail = (ferror (stream) != 0); - const bool fclose_fail = (fclose (stream) != 0); - - /* Return an error indication if there was a previous failure or if - fclose failed, with one exception: ignore an fclose failure if - there was no previous error, no data remains to be flushed, and - fclose failed with EBADF. That can happen when a program like cp - is invoked like this 'cp a b >&-' (i.e., with standard output - closed) and doesn't generate any output (hence no previous error - and nothing to be flushed). */ - - if (prev_fail || (fclose_fail && (some_pending || errno != EBADF))) - { - if (! fclose_fail) - errno = 0; - return EOF; - } - - return 0; -} diff --git a/jni/parted/libgnulib/lib/closeout.c b/jni/parted/libgnulib/lib/closeout.c deleted file mode 100755 index 2ffdecb..0000000 --- a/jni/parted/libgnulib/lib/closeout.c +++ /dev/null @@ -1,135 +0,0 @@ -/* Close standard output and standard error, exiting with a diagnostic on error. - - Copyright (C) 1998-2002, 2004, 2006, 2008-2024 Free Software Foundation, - Inc. - - 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 3 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, see . */ - -#include - -#include "closeout.h" - -#include -#include -#include - -#include "gettext.h" -#define _(msgid) gettext (msgid) - -#include "close-stream.h" -#include -#include "exitfail.h" -#include "quotearg.h" - -#ifndef __has_feature -# define __has_feature(a) false -#endif - -#if defined __SANITIZE_ADDRESS__ || __has_feature (address_sanitizer) -enum { SANITIZE_ADDRESS = true }; -#else -enum { SANITIZE_ADDRESS = false }; -#endif - -static const char *file_name; - -/* Set the file name to be reported in the event an error is detected - by close_stdout. */ -void -close_stdout_set_file_name (const char *file) -{ - file_name = file; -} - -static bool ignore_EPIPE /* = false */; - -/* Specify the reaction to an EPIPE error during the closing of stdout: - - If ignore = true, it shall be ignored. - - If ignore = false, it shall evoke a diagnostic, along with a nonzero - exit status. - The default is ignore = false. - - This setting matters only if the SIGPIPE signal is ignored (i.e. its - handler set to SIG_IGN) or blocked. Only particular programs need to - temporarily ignore SIGPIPE. If SIGPIPE is ignored or blocked because - it was ignored or blocked in the parent process when it created the - child process, it usually is a bug in the parent process: It is bad - practice to have SIGPIPE ignored or blocked while creating a child - process. - - EPIPE occurs when writing to a pipe or socket that has no readers now, - when SIGPIPE is ignored or blocked. - - The ignore = false setting is suitable for a scenario where it is normally - guaranteed that the pipe writer terminates before the pipe reader. In - this case, an EPIPE is an indication of a premature termination of the - pipe reader and should lead to a diagnostic and a nonzero exit status. - - The ignore = true setting is suitable for a scenario where you don't know - ahead of time whether the pipe writer or the pipe reader will terminate - first. In this case, an EPIPE is an indication that the pipe writer can - stop doing useless write() calls; this is what close_stdout does anyway. - EPIPE is part of the normal pipe/socket shutdown protocol in this case, - and should not lead to a diagnostic message. */ - -void -close_stdout_set_ignore_EPIPE (bool ignore) -{ - ignore_EPIPE = ignore; -} - -/* Close standard output. On error, issue a diagnostic and _exit - with status 'exit_failure'. - - Also close standard error. On error, _exit with status 'exit_failure'. - - Since close_stdout is commonly registered via 'atexit', POSIX - and the C standard both say that it should not call 'exit', - because the behavior is undefined if 'exit' is called more than - once. So it calls '_exit' instead of 'exit'. If close_stdout - is registered via atexit before other functions are registered, - the other functions can act before this _exit is invoked. - - Applications that use close_stdout should flush any streams - other than stdout and stderr before exiting, since the call to - _exit will bypass other buffer flushing. Applications should - be flushing and closing other streams anyway, to check for I/O - errors. Also, applications should not use tmpfile, since _exit - can bypass the removal of these files. - - It's important to detect such failures and exit nonzero because many - tools (most notably 'make' and other build-management systems) depend - on being able to detect failure in other tools via their exit status. */ - -void -close_stdout (void) -{ - if (close_stream (stdout) != 0 - && !(ignore_EPIPE && errno == EPIPE)) - { - char const *write_error = _("write error"); - if (file_name) - error (0, errno, "%s: %s", quotearg_colon (file_name), - write_error); - else - error (0, errno, "%s", write_error); - - _exit (exit_failure); - } - - /* Close stderr only if not sanitizing, as sanitizers may report to - stderr after this function returns. */ - if (!SANITIZE_ADDRESS && close_stream (stderr) != 0) - _exit (exit_failure); -} diff --git a/jni/parted/libgnulib/lib/dirname-lgpl.c b/jni/parted/libgnulib/lib/dirname-lgpl.c deleted file mode 100755 index 8333c0e..0000000 --- a/jni/parted/libgnulib/lib/dirname-lgpl.c +++ /dev/null @@ -1,86 +0,0 @@ -/* dirname.c -- return all but the last element in a file name - - Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "dirname.h" - -#include -#include - -/* Return the length of the prefix of FILE that will be used by - dir_name. If FILE is in the working directory, this returns zero - even though 'dir_name (FILE)' will return ".". Works properly even - if there are trailing slashes (by effectively ignoring them). */ - -size_t -dir_len (char const *file) -{ - size_t prefix_length = FILE_SYSTEM_PREFIX_LEN (file); - size_t length; - - /* Advance prefix_length beyond important leading slashes. */ - prefix_length += (prefix_length != 0 - ? (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - && ISSLASH (file[prefix_length])) - : (ISSLASH (file[0]) - ? ((DOUBLE_SLASH_IS_DISTINCT_ROOT - && ISSLASH (file[1]) && ! ISSLASH (file[2]) - ? 2 : 1)) - : 0)); - - /* Strip the basename and any redundant slashes before it. */ - for (length = last_component (file) - file; - prefix_length < length; length--) - if (! ISSLASH (file[length - 1])) - break; - return length; -} - - -/* In general, we can't use the builtin 'dirname' function if available, - since it has different meanings in different environments. - In some environments the builtin 'dirname' modifies its argument. - - Return the leading directories part of FILE, allocated with malloc. - Works properly even if there are trailing slashes (by effectively - ignoring them). Return NULL on failure. - - If lstat (FILE) would succeed, then { chdir (dir_name (FILE)); - lstat (base_name (FILE)); } will access the same file. Likewise, - if the sequence { chdir (dir_name (FILE)); - rename (base_name (FILE), "foo"); } succeeds, you have renamed FILE - to "foo" in the same directory FILE was in. */ - -char * -mdir_name (char const *file) -{ - size_t length = dir_len (file); - bool append_dot = (length == 0 - || (FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - && length == FILE_SYSTEM_PREFIX_LEN (file) - && file[2] != '\0' && ! ISSLASH (file[2]))); - char *dir = malloc (length + append_dot + 1); - if (!dir) - return NULL; - memcpy (dir, file, length); - if (append_dot) - dir[length++] = '.'; - dir[length] = '\0'; - return dir; -} diff --git a/jni/parted/libgnulib/lib/dirname.c b/jni/parted/libgnulib/lib/dirname.c deleted file mode 100755 index 393ec1b..0000000 --- a/jni/parted/libgnulib/lib/dirname.c +++ /dev/null @@ -1,38 +0,0 @@ -/* dirname.c -- return all but the last element in a file name - - Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#include - -#include "dirname.h" - -#include -#include -#include "xalloc.h" - -/* Just like mdir_name (dirname-lgpl.c), except, rather than - returning NULL upon malloc failure, here, we report the - "memory exhausted" condition and exit. */ - -char * -dir_name (char const *file) -{ - char *result = mdir_name (file); - if (!result) - xalloc_die (); - return result; -} diff --git a/jni/parted/libgnulib/lib/error.c b/jni/parted/libgnulib/lib/error.c deleted file mode 100755 index 6816805..0000000 --- a/jni/parted/libgnulib/lib/error.c +++ /dev/null @@ -1,375 +0,0 @@ -/* Error handler for noninteractive utilities - Copyright (C) 1990-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* Written by David MacKenzie . */ - -#if !_LIBC -# include -# define _GL_NO_INLINE_ERROR -# define __error_internal(status, err, fmt, args, flags) \ - verror (status, err, fmt, args) -# define __error_at_line_internal(status, err, file, line, fmt, args, flags) \ - verror_at_line (status, err, file, line, fmt, args) -# define error_tail(status, err, fmt, args, flags) \ - error_tail (status, err, fmt, args) -#endif - -#include - -#include -#include -#include -#include - -#if !_LIBC && ENABLE_NLS -# include "gettext.h" -# define _(msgid) gettext (msgid) -#endif - -#ifdef _LIBC -# include -# include -# include -# include -# define mbsrtowcs __mbsrtowcs -# define USE_UNLOCKED_IO 0 -# define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b) -# define _GL_ARG_NONNULL(a) -#endif - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#ifndef _ -# define _(String) String -#endif - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -void (*error_print_progname) (void); - -/* This variable is incremented each time 'error' is called. */ -unsigned int error_message_count; - -#ifdef _LIBC -/* In the GNU C library, there is a predefined variable for this. */ - -# define program_name program_invocation_name -# include -# include -# include - -/* In GNU libc we want do not want to use the common name 'error' directly. - Instead make it a weak alias. */ -extern void __error (int status, int errnum, const char *message, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -extern void __error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, - ...) - __attribute__ ((__format__ (__printf__, 5, 6))); -# define error __error -# define error_at_line __error_at_line - -# include -# define fflush(s) _IO_fflush (s) -# undef putc -# define putc(c, fp) _IO_putc (c, fp) - -# include - -#else /* not _LIBC */ - -# include -# include - -# if defined _WIN32 && ! defined __CYGWIN__ -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif -# endif - -/* The gnulib override of fcntl is not needed in this file. */ -# undef fcntl - -# if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R) -# ifndef HAVE_DECL_STRERROR_R -"this configure-time declaration test was not run" -# endif -# if STRERROR_R_CHAR_P -char *strerror_r (int errnum, char *buf, size_t buflen); -# else -int strerror_r (int errnum, char *buf, size_t buflen); -# endif -# endif - -# define program_name getprogname () - -# if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r -# define __strerror_r strerror_r -# endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */ - -# if GNULIB_defined_verror -# undef verror -# endif -# if GNULIB_defined_verror_at_line -# undef verror_at_line -# endif -#endif /* not _LIBC */ - -#if !_LIBC -/* Return non-zero if FD is open. */ -static int -is_open (int fd) -{ -# if defined _WIN32 && ! defined __CYGWIN__ - /* On native Windows: The initial state of unassigned standard file - descriptors is that they are open but point to an INVALID_HANDLE_VALUE. - There is no fcntl, and the gnulib replacement fcntl does not support - F_GETFL. */ - return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; -# else -# ifndef F_GETFL -# error Please port fcntl to your platform -# endif - return 0 <= fcntl (fd, F_GETFL); -# endif -} -#endif - -static void -flush_stdout (void) -{ -#if !_LIBC - int stdout_fd; - -# if GNULIB_FREOPEN_SAFER - /* Use of gnulib's freopen-safer module normally ensures that - fileno (stdout) == 1 - whenever stdout is open. */ - stdout_fd = STDOUT_FILENO; -# else - /* POSIX states that fileno (stdout) after fclose is unspecified. But in - practice it is not a problem, because stdout is statically allocated and - the fd of a FILE stream is stored as a field in its allocated memory. */ - stdout_fd = fileno (stdout); -# endif - /* POSIX states that fflush (stdout) after fclose is unspecified; it - is safe in glibc, but not on all other platforms. fflush (NULL) - is always defined, but too draconian. */ - if (0 <= stdout_fd && is_open (stdout_fd)) -#endif - fflush (stdout); -} - -static void -print_errno_message (int errnum) -{ - char const *s; - -#if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R - char errbuf[1024]; -# if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P) - s = __strerror_r (errnum, errbuf, sizeof errbuf); -# else - if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) - s = errbuf; - else - s = 0; -# endif -#else - s = strerror (errnum); -#endif - -#if !_LIBC - if (! s) - s = _("Unknown system error"); -#endif - -#if _LIBC - __fxprintf (NULL, ": %s", s); -#else - fprintf (stderr, ": %s", s); -#endif -} - -static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3)) -error_tail (int status, int errnum, const char *message, va_list args, - unsigned int mode_flags) -{ -#if _LIBC - int ret = __vfxprintf (stderr, message, args, mode_flags); - if (ret < 0 && errno == ENOMEM && _IO_fwide (stderr, 0) > 0) - /* Leave a trace in case the heap allocation of the message string - failed. */ - fputws_unlocked (L"out of memory\n", stderr); -#else - vfprintf (stderr, message, args); -#endif - - ++error_message_count; - if (errnum) - print_errno_message (errnum); -#if _LIBC - __fxprintf (NULL, "\n"); -#else - putc ('\n', stderr); -#endif - fflush (stderr); - if (status) - exit (status); -} - - -/* Print the program name and error message MESSAGE, which is a printf-style - format string with optional args. - If ERRNUM is nonzero, print its corresponding system error message. - Exit with status STATUS if it is nonzero. */ -void -__error_internal (int status, int errnum, const char *message, - va_list args, unsigned int mode_flags) -{ -#if defined _LIBC - /* We do not want this call to be cut short by a thread - cancellation. Therefore disable cancellation for now. */ - int state = PTHREAD_CANCEL_ENABLE; - __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state); -#endif - - flush_stdout (); -#ifdef _LIBC - _IO_flockfile (stderr); -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC - __fxprintf (NULL, "%s: ", program_name); -#else - fprintf (stderr, "%s: ", program_name); -#endif - } - - error_tail (status, errnum, message, args, mode_flags); - -#ifdef _LIBC - _IO_funlockfile (stderr); - __pthread_setcancelstate (state, NULL); -#endif -} - -void -error (int status, int errnum, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - __error_internal (status, errnum, message, ap, 0); - va_end (ap); -} - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -int error_one_per_line; - -void -__error_at_line_internal (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, - va_list args, unsigned int mode_flags) -{ - if (error_one_per_line) - { - static const char *old_file_name; - static unsigned int old_line_number; - - if (old_line_number == line_number - && (file_name == old_file_name - || (old_file_name != NULL - && file_name != NULL - && strcmp (old_file_name, file_name) == 0))) - - /* Simply return and print nothing. */ - return; - - old_file_name = file_name; - old_line_number = line_number; - } - -#if defined _LIBC - /* We do not want this call to be cut short by a thread - cancellation. Therefore disable cancellation for now. */ - int state = PTHREAD_CANCEL_ENABLE; - __pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &state); -#endif - - flush_stdout (); -#ifdef _LIBC - _IO_flockfile (stderr); -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC - __fxprintf (NULL, "%s:", program_name); -#else - fprintf (stderr, "%s:", program_name); -#endif - } - -#if _LIBC - __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", - file_name, line_number); -#else - fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", - file_name, line_number); -#endif - - error_tail (status, errnum, message, args, mode_flags); - -#ifdef _LIBC - _IO_funlockfile (stderr); - __pthread_setcancelstate (state, NULL); -#endif -} - -void -error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, ...) -{ - va_list ap; - va_start (ap, message); - __error_at_line_internal (status, errnum, file_name, line_number, - message, ap, 0); - va_end (ap); -} - -#ifdef _LIBC -/* Make the weak alias. */ -# undef error -# undef error_at_line -weak_alias (__error, error) -weak_alias (__error_at_line, error_at_line) -#endif diff --git a/jni/parted/libgnulib/lib/exitfail.c b/jni/parted/libgnulib/lib/exitfail.c deleted file mode 100755 index 8a5962e..0000000 --- a/jni/parted/libgnulib/lib/exitfail.c +++ /dev/null @@ -1,24 +0,0 @@ -/* Failure exit status - - Copyright (C) 2002-2003, 2005-2007, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "exitfail.h" - -#include - -int volatile exit_failure = EXIT_FAILURE; diff --git a/jni/parted/libgnulib/lib/fcntl.c b/jni/parted/libgnulib/lib/fcntl.c deleted file mode 100755 index 7cd3a0f..0000000 --- a/jni/parted/libgnulib/lib/fcntl.c +++ /dev/null @@ -1,629 +0,0 @@ -/* Provide file descriptor control. - - Copyright (C) 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include -#include -#include - -#ifdef __KLIBC__ -# define INCL_DOS -# include -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include - -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Upper bound on getdtablesize(). See lib/getdtablesize.c. */ -# define OPEN_MAX_MAX 0x10000 - -/* Duplicate OLDFD into the first available slot of at least NEWFD, - which must be positive, with FLAGS determining whether the duplicate - will be inheritable. */ -static int -dupfd (int oldfd, int newfd, int flags) -{ - /* Mingw has no way to create an arbitrary fd. Iterate until all - file descriptors less than newfd are filled up. */ - HANDLE curr_process = GetCurrentProcess (); - HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd); - unsigned char fds_to_close[OPEN_MAX_MAX / CHAR_BIT]; - unsigned int fds_to_close_bound = 0; - int result; - BOOL inherit = flags & O_CLOEXEC ? FALSE : TRUE; - int mode; - - if (newfd < 0 || getdtablesize () <= newfd) - { - errno = EINVAL; - return -1; - } - if (old_handle == INVALID_HANDLE_VALUE - || (mode = _setmode (oldfd, O_BINARY)) == -1) - { - /* oldfd is not open, or is an unassigned standard file - descriptor. */ - errno = EBADF; - return -1; - } - _setmode (oldfd, mode); - flags |= mode; - - for (;;) - { - HANDLE new_handle; - int duplicated_fd; - unsigned int index; - - if (!DuplicateHandle (curr_process, /* SourceProcessHandle */ - old_handle, /* SourceHandle */ - curr_process, /* TargetProcessHandle */ - (PHANDLE) &new_handle, /* TargetHandle */ - (DWORD) 0, /* DesiredAccess */ - inherit, /* InheritHandle */ - DUPLICATE_SAME_ACCESS)) /* Options */ - { - switch (GetLastError ()) - { - case ERROR_TOO_MANY_OPEN_FILES: - errno = EMFILE; - break; - case ERROR_INVALID_HANDLE: - case ERROR_INVALID_TARGET_HANDLE: - case ERROR_DIRECT_ACCESS_HANDLE: - errno = EBADF; - break; - case ERROR_INVALID_PARAMETER: - case ERROR_INVALID_FUNCTION: - case ERROR_INVALID_ACCESS: - errno = EINVAL; - break; - default: - errno = EACCES; - break; - } - result = -1; - break; - } - duplicated_fd = _open_osfhandle ((intptr_t) new_handle, flags); - if (duplicated_fd < 0) - { - CloseHandle (new_handle); - result = -1; - break; - } - if (newfd <= duplicated_fd) - { - result = duplicated_fd; - break; - } - - /* Set the bit duplicated_fd in fds_to_close[]. */ - index = (unsigned int) duplicated_fd / CHAR_BIT; - if (fds_to_close_bound <= index) - { - if (sizeof fds_to_close <= index) - /* Need to increase OPEN_MAX_MAX. */ - abort (); - memset (fds_to_close + fds_to_close_bound, '\0', - index + 1 - fds_to_close_bound); - fds_to_close_bound = index + 1; - } - fds_to_close[index] |= 1 << ((unsigned int) duplicated_fd % CHAR_BIT); - } - - /* Close the previous fds that turned out to be too small. */ - { - int saved_errno = errno; - unsigned int duplicated_fd; - - for (duplicated_fd = 0; - duplicated_fd < fds_to_close_bound * CHAR_BIT; - duplicated_fd++) - if ((fds_to_close[duplicated_fd / CHAR_BIT] - >> (duplicated_fd % CHAR_BIT)) - & 1) - close (duplicated_fd); - - errno = saved_errno; - } - -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (oldfd, result); -# endif - return result; -} -#endif /* W32 */ - -/* Forward declarations, because we '#undef fcntl' in the middle of this - compilation unit. */ -/* Our implementation of fcntl (fd, F_DUPFD, target). */ -static int rpl_fcntl_DUPFD (int fd, int target); -/* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */ -static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target); -#ifdef __KLIBC__ -/* Adds support for fcntl on directories. */ -static int klibc_fcntl (int fd, int action, /* arg */...); -#endif - - -/* Perform the specified ACTION on the file descriptor FD, possibly - using the argument ARG further described below. This replacement - handles the following actions, and forwards all others on to the - native fcntl. An unrecognized ACTION returns -1 with errno set to - EINVAL. - - F_DUPFD - duplicate FD, with int ARG being the minimum target fd. - If successful, return the duplicate, which will be inheritable; - otherwise return -1 and set errno. - - F_DUPFD_CLOEXEC - duplicate FD, with int ARG being the minimum - target fd. If successful, return the duplicate, which will not be - inheritable; otherwise return -1 and set errno. - - F_GETFD - ARG need not be present. If successful, return a - non-negative value containing the descriptor flags of FD (only - FD_CLOEXEC is portable, but other flags may be present); otherwise - return -1 and set errno. */ - -int -fcntl (int fd, int action, /* arg */...) -#undef fcntl -#ifdef __KLIBC__ -# define fcntl klibc_fcntl -#endif -{ - va_list arg; - int result = -1; - va_start (arg, action); - switch (action) - { - case F_DUPFD: - { - int target = va_arg (arg, int); - result = rpl_fcntl_DUPFD (fd, target); - break; - } - - case F_DUPFD_CLOEXEC: - { - int target = va_arg (arg, int); - result = rpl_fcntl_DUPFD_CLOEXEC (fd, target); - break; - } - -#if !HAVE_FCNTL - case F_GETFD: - { -# if defined _WIN32 && ! defined __CYGWIN__ - HANDLE handle = (HANDLE) _get_osfhandle (fd); - DWORD flags; - if (handle == INVALID_HANDLE_VALUE - || GetHandleInformation (handle, &flags) == 0) - errno = EBADF; - else - result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; -# else /* !W32 */ - /* Use dup2 to reject invalid file descriptors. No way to - access this information, so punt. */ - if (0 <= dup2 (fd, fd)) - result = 0; -# endif /* !W32 */ - break; - } /* F_GETFD */ -#endif /* !HAVE_FCNTL */ - - /* Implementing F_SETFD on mingw is not trivial - there is no - API for changing the O_NOINHERIT bit on an fd, and merely - changing the HANDLE_FLAG_INHERIT bit on the underlying handle - can lead to odd state. It may be possible by duplicating the - handle, using _open_osfhandle with the right flags, then - using dup2 to move the duplicate onto the original, but that - is not supported for now. */ - - default: - { -#if HAVE_FCNTL - switch (action) - { - #ifdef F_BARRIERFSYNC /* macOS */ - case F_BARRIERFSYNC: - #endif - #ifdef F_CHKCLEAN /* macOS */ - case F_CHKCLEAN: - #endif - #ifdef F_CLOSEM /* NetBSD, HP-UX */ - case F_CLOSEM: - #endif - #ifdef F_FLUSH_DATA /* macOS */ - case F_FLUSH_DATA: - #endif - #ifdef F_FREEZE_FS /* macOS */ - case F_FREEZE_FS: - #endif - #ifdef F_FULLFSYNC /* macOS */ - case F_FULLFSYNC: - #endif - #ifdef F_GETCONFINED /* macOS */ - case F_GETCONFINED: - #endif - #ifdef F_GETDEFAULTPROTLEVEL /* macOS */ - case F_GETDEFAULTPROTLEVEL: - #endif - #ifdef F_GETFD /* POSIX */ - case F_GETFD: - #endif - #ifdef F_GETFL /* POSIX */ - case F_GETFL: - #endif - #ifdef F_GETLEASE /* Linux */ - case F_GETLEASE: - #endif - #ifdef F_GETNOSIGPIPE /* macOS */ - case F_GETNOSIGPIPE: - #endif - #ifdef F_GETOWN /* POSIX */ - case F_GETOWN: - #endif - #ifdef F_GETPIPE_SZ /* Linux */ - case F_GETPIPE_SZ: - #endif - #ifdef F_GETPROTECTIONCLASS /* macOS */ - case F_GETPROTECTIONCLASS: - #endif - #ifdef F_GETPROTECTIONLEVEL /* macOS */ - case F_GETPROTECTIONLEVEL: - #endif - #ifdef F_GET_SEALS /* Linux */ - case F_GET_SEALS: - #endif - #ifdef F_GETSIG /* Linux */ - case F_GETSIG: - #endif - #ifdef F_MAXFD /* NetBSD */ - case F_MAXFD: - #endif - #ifdef F_RECYCLE /* macOS */ - case F_RECYCLE: - #endif - #ifdef F_SETFIFOENH /* HP-UX */ - case F_SETFIFOENH: - #endif - #ifdef F_THAW_FS /* macOS */ - case F_THAW_FS: - #endif - /* These actions take no argument. */ - result = fcntl (fd, action); - break; - - #ifdef F_ADD_SEALS /* Linux */ - case F_ADD_SEALS: - #endif - #ifdef F_BADFD /* Solaris */ - case F_BADFD: - #endif - #ifdef F_CHECK_OPENEVT /* macOS */ - case F_CHECK_OPENEVT: - #endif - #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */ - case F_DUP2FD: - #endif - #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */ - case F_DUP2FD_CLOEXEC: - #endif - #ifdef F_DUP2FD_CLOFORK /* Solaris */ - case F_DUP2FD_CLOFORK: - #endif - #ifdef F_DUPFD /* POSIX */ - case F_DUPFD: - #endif - #ifdef F_DUPFD_CLOEXEC /* POSIX */ - case F_DUPFD_CLOEXEC: - #endif - #ifdef F_DUPFD_CLOFORK /* Solaris */ - case F_DUPFD_CLOFORK: - #endif - #ifdef F_GETXFL /* Solaris */ - case F_GETXFL: - #endif - #ifdef F_GLOBAL_NOCACHE /* macOS */ - case F_GLOBAL_NOCACHE: - #endif - #ifdef F_MAKECOMPRESSED /* macOS */ - case F_MAKECOMPRESSED: - #endif - #ifdef F_MOVEDATAEXTENTS /* macOS */ - case F_MOVEDATAEXTENTS: - #endif - #ifdef F_NOCACHE /* macOS */ - case F_NOCACHE: - #endif - #ifdef F_NODIRECT /* macOS */ - case F_NODIRECT: - #endif - #ifdef F_NOTIFY /* Linux */ - case F_NOTIFY: - #endif - #ifdef F_OPLKACK /* IRIX */ - case F_OPLKACK: - #endif - #ifdef F_OPLKREG /* IRIX */ - case F_OPLKREG: - #endif - #ifdef F_RDAHEAD /* macOS */ - case F_RDAHEAD: - #endif - #ifdef F_SETBACKINGSTORE /* macOS */ - case F_SETBACKINGSTORE: - #endif - #ifdef F_SETCONFINED /* macOS */ - case F_SETCONFINED: - #endif - #ifdef F_SETFD /* POSIX */ - case F_SETFD: - #endif - #ifdef F_SETFL /* POSIX */ - case F_SETFL: - #endif - #ifdef F_SETLEASE /* Linux */ - case F_SETLEASE: - #endif - #ifdef F_SETNOSIGPIPE /* macOS */ - case F_SETNOSIGPIPE: - #endif - #ifdef F_SETOWN /* POSIX */ - case F_SETOWN: - #endif - #ifdef F_SETPIPE_SZ /* Linux */ - case F_SETPIPE_SZ: - #endif - #ifdef F_SETPROTECTIONCLASS /* macOS */ - case F_SETPROTECTIONCLASS: - #endif - #ifdef F_SETSIG /* Linux */ - case F_SETSIG: - #endif - #ifdef F_SINGLE_WRITER /* macOS */ - case F_SINGLE_WRITER: - #endif - /* These actions take an 'int' argument. */ - { - int x = va_arg (arg, int); - result = fcntl (fd, action, x); - } - break; - - default: - /* Other actions take a pointer argument. */ - { - void *p = va_arg (arg, void *); - result = fcntl (fd, action, p); - } - break; - } -#else - errno = EINVAL; -#endif - break; - } - } - va_end (arg); - return result; -} - -static int -rpl_fcntl_DUPFD (int fd, int target) -{ - int result; -#if !HAVE_FCNTL - result = dupfd (fd, target, 0); -#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR - /* Detect invalid target; needed for cygwin 1.5.x. */ - if (target < 0 || getdtablesize () <= target) - { - result = -1; - errno = EINVAL; - } - else - { - /* Haiku alpha 2 loses fd flags on original. */ - int flags = fcntl (fd, F_GETFD); - if (flags < 0) - result = -1; - else - { - result = fcntl (fd, F_DUPFD, target); - if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) - { - int saved_errno = errno; - close (result); - result = -1; - errno = saved_errno; - } -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (fd, result); -# endif - } - } -#else - result = fcntl (fd, F_DUPFD, target); -#endif - return result; -} - -static int -rpl_fcntl_DUPFD_CLOEXEC (int fd, int target) -{ - int result; -#if !HAVE_FCNTL - result = dupfd (fd, target, O_CLOEXEC); -#else /* HAVE_FCNTL */ -# if defined __NetBSD__ || defined __HAIKU__ - /* On NetBSD 9.0, the system fcntl (fd, F_DUPFD_CLOEXEC, target) - has only the same effect as fcntl (fd, F_DUPFD, target). */ - /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets - the FD_CLOEXEC flag on fd, not on target. Therefore avoid the - system fcntl in this case. */ -# define have_dupfd_cloexec -1 -# else - /* Try the system call first, if the headers claim it exists - (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we - may be running with a glibc that has the macro but with an - older kernel that does not support it. Cache the - information on whether the system call really works, but - avoid caching failure if the corresponding F_DUPFD fails - for any reason. 0 = unknown, 1 = yes, -1 = no. */ - static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; - if (0 <= have_dupfd_cloexec) - { - result = fcntl (fd, F_DUPFD_CLOEXEC, target); - if (0 <= result || errno != EINVAL) - { - have_dupfd_cloexec = 1; -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (fd, result); -# endif - } - else - { - result = rpl_fcntl_DUPFD (fd, target); - if (result >= 0) - have_dupfd_cloexec = -1; - } - } - else -# endif - result = rpl_fcntl_DUPFD (fd, target); - if (0 <= result && have_dupfd_cloexec == -1) - { - int flags = fcntl (result, F_GETFD); - if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) - { - int saved_errno = errno; - close (result); - errno = saved_errno; - result = -1; - } - } -#endif /* HAVE_FCNTL */ - return result; -} - -#undef fcntl - -#ifdef __KLIBC__ - -static int -klibc_fcntl (int fd, int action, /* arg */...) -{ - va_list arg_ptr; - int arg; - struct stat sbuf; - int result; - - va_start (arg_ptr, action); - arg = va_arg (arg_ptr, int); - result = fcntl (fd, action, arg); - /* EPERM for F_DUPFD, ENOTSUP for others */ - if (result == -1 && (errno == EPERM || errno == ENOTSUP) - && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) - { - ULONG ulMode; - - switch (action) - { - case F_DUPFD: - /* Find available fd */ - while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) - arg++; - - result = dup2 (fd, arg); - break; - - /* Using underlying APIs is right ? */ - case F_GETFD: - if (DosQueryFHState (fd, &ulMode)) - break; - - result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; - break; - - case F_SETFD: - if (arg & ~FD_CLOEXEC) - break; - - if (DosQueryFHState (fd, &ulMode)) - break; - - if (arg & FD_CLOEXEC) - ulMode |= OPEN_FLAGS_NOINHERIT; - else - ulMode &= ~OPEN_FLAGS_NOINHERIT; - - /* Filter supported flags. */ - ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR - | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); - - if (DosSetFHState (fd, ulMode)) - break; - - result = 0; - break; - - case F_GETFL: - result = 0; - break; - - case F_SETFL: - if (arg != 0) - break; - - result = 0; - break; - - default: - errno = EINVAL; - break; - } - } - - va_end (arg_ptr); - - return result; -} - -#endif diff --git a/jni/parted/libgnulib/lib/free.c b/jni/parted/libgnulib/lib/free.c deleted file mode 100755 index 2f0c40b..0000000 --- a/jni/parted/libgnulib/lib/free.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Make free() preserve errno. - - Copyright (C) 2003, 2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Paul Eggert */ - -#include - -/* Specification. */ -#include - -/* A function definition is only needed if HAVE_FREE_POSIX is not defined. */ -#if !HAVE_FREE_POSIX - -# include - -void -rpl_free (void *p) -# undef free -{ -# if defined __GNUC__ && !defined __clang__ - /* An invalid GCC optimization - - would optimize away the assignments in the code below, when link-time - optimization (LTO) is enabled. Make the code more complicated, so that - GCC does not grok how to optimize it. */ - int err[2]; - err[0] = errno; - err[1] = errno; - errno = 0; - free (p); - errno = err[errno == 0]; -# else - int err = errno; - free (p); - errno = err; -# endif -} - -#endif diff --git a/jni/parted/libgnulib/lib/getdtablesize.c b/jni/parted/libgnulib/lib/getdtablesize.c deleted file mode 100755 index 762c100..0000000 --- a/jni/parted/libgnulib/lib/getdtablesize.c +++ /dev/null @@ -1,124 +0,0 @@ -/* getdtablesize() function: Return maximum possible file descriptor value + 1. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if defined _WIN32 && ! defined __CYGWIN__ - -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -# endif - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -_setmaxstdio_nothrow (int newmax) -{ - int result; - - TRY_MSVC_INVAL - { - result = _setmaxstdio (newmax); - } - CATCH_MSVC_INVAL - { - result = -1; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define _setmaxstdio_nothrow _setmaxstdio -# endif - -/* Cache for the previous getdtablesize () result. Safe to cache because - Windows also lacks setrlimit. */ -static int dtablesize; - -int -getdtablesize (void) -{ - if (dtablesize == 0) - { - /* We are looking for the number N such that the valid file descriptors - are 0..N-1. It can be obtained through a loop as follows: - { - int fd; - for (fd = 3; fd < 65536; fd++) - if (dup2 (0, fd) == -1) - break; - return fd; - } - On Windows XP, the result is 2048. - The drawback of this loop is that it allocates memory for a libc - internal array that is never freed. - - The number N can also be obtained as the upper bound for - _getmaxstdio (). _getmaxstdio () returns the maximum number of open - FILE objects. The sanity check in _setmaxstdio reveals the maximum - number of file descriptors. This too allocates memory, but it is - freed when we call _setmaxstdio with the original value. */ - int orig_max_stdio = _getmaxstdio (); - unsigned int bound; - for (bound = 0x10000; _setmaxstdio_nothrow (bound) < 0; bound = bound / 2) - ; - _setmaxstdio_nothrow (orig_max_stdio); - dtablesize = bound; - } - return dtablesize; -} - -#else - -# include -# include - -# ifndef RLIM_SAVED_CUR -# define RLIM_SAVED_CUR RLIM_INFINITY -# endif -# ifndef RLIM_SAVED_MAX -# define RLIM_SAVED_MAX RLIM_INFINITY -# endif - -# ifdef __CYGWIN__ - /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it - hits the compile-time constant hard limit of 3200. We might as - well just report the hard limit. */ -# define rlim_cur rlim_max -# endif - -int -getdtablesize (void) -{ - struct rlimit lim; - - if (getrlimit (RLIMIT_NOFILE, &lim) == 0 - && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX - && lim.rlim_cur != RLIM_INFINITY - && lim.rlim_cur != RLIM_SAVED_CUR - && lim.rlim_cur != RLIM_SAVED_MAX) - return lim.rlim_cur; - - return INT_MAX; -} - -#endif diff --git a/jni/parted/libgnulib/lib/hard-locale.c b/jni/parted/libgnulib/lib/hard-locale.c deleted file mode 100755 index 653c580..0000000 --- a/jni/parted/libgnulib/lib/hard-locale.c +++ /dev/null @@ -1,47 +0,0 @@ -/* hard-locale.c -- Determine whether a locale is hard. - - Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "hard-locale.h" - -#include -#include -#include - -bool -hard_locale (int category) -{ - char locale[SETLOCALE_NULL_MAX]; - - if (setlocale_null_r (category, locale, sizeof (locale))) - return false; - - if (!(strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)) - return true; - -#if defined __ANDROID__ - /* On Android 5.0 or newer, it is possible to set a locale that has the same - name as the "C" locale but in fact uses UTF-8 encoding. Cf. test case 2 in - . */ - if (MB_CUR_MAX > 1) - return true; -#endif - - return false; -} diff --git a/jni/parted/libgnulib/lib/ialloc.c b/jni/parted/libgnulib/lib/ialloc.c deleted file mode 100755 index 8564a15..0000000 --- a/jni/parted/libgnulib/lib/ialloc.c +++ /dev/null @@ -1,21 +0,0 @@ -/* malloc with idx_t rather than size_t - - Copyright 2021-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define IALLOC_INLINE _GL_EXTERN_INLINE -#include "ialloc.h" diff --git a/jni/parted/libgnulib/lib/iswctype.c b/jni/parted/libgnulib/lib/iswctype.c deleted file mode 100755 index f4e6f01..0000000 --- a/jni/parted/libgnulib/lib/iswctype.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Test whether a wide character has a given property. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if GNULIB_defined_wint_t && !GNULIB_defined_wctype_t - -int -iswctype (wint_t wc, wctype_t desc) -# undef iswctype -{ - return ((wchar_t) wc == wc ? iswctype ((wchar_t) wc, desc) : 0); -} - -#else - -# include "iswctype-impl.h" - -#endif diff --git a/jni/parted/libgnulib/lib/iswdigit.c b/jni/parted/libgnulib/lib/iswdigit.c deleted file mode 100755 index 57363ab..0000000 --- a/jni/parted/libgnulib/lib/iswdigit.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Test wide character for being a digit. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -int -iswdigit (wint_t wc) -{ - return wc >= '0' && wc <= '9'; -} diff --git a/jni/parted/libgnulib/lib/iswpunct.c b/jni/parted/libgnulib/lib/iswpunct.c deleted file mode 100755 index c7cb28b..0000000 --- a/jni/parted/libgnulib/lib/iswpunct.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Test wide character for being a punctuation or symbol character. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include - -int -iswpunct (wint_t wc) -#undef iswpunct -{ -#if defined __ANDROID__ - if ((unsigned int) wc < 128) - return ispunct ((unsigned int) wc); -#endif - return iswpunct (wc); -} diff --git a/jni/parted/libgnulib/lib/iswxdigit.c b/jni/parted/libgnulib/lib/iswxdigit.c deleted file mode 100755 index d32e3b0..0000000 --- a/jni/parted/libgnulib/lib/iswxdigit.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Test wide character for being a hexadecimal digit. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -int -iswxdigit (wint_t wc) -{ - return ((wc >= '0' && wc <= '9') -#if 'A' == 0x41 && 'a' == 0x61 - /* Optimization, assuming ASCII */ - || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F') -#else - || (wc >= 'A' && wc <= 'F') || (wc >= 'a' && wc <= 'f') -#endif - ); -} diff --git a/jni/parted/libgnulib/lib/localcharset.c b/jni/parted/libgnulib/lib/localcharset.c deleted file mode 100755 index 93c4baa..0000000 --- a/jni/parted/libgnulib/lib/localcharset.c +++ /dev/null @@ -1,1159 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - - Copyright (C) 2000-2006, 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -#include - -/* Specification. */ -#include "localcharset.h" - -#include -#include -#include -#include - -#if defined __APPLE__ && defined __MACH__ && HAVE_LANGINFO_CODESET -# define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ -#endif - -#if defined _WIN32 && !defined __CYGWIN__ -# define WINDOWS_NATIVE -# include -#endif - -#if defined __EMX__ -/* Assume EMX program runs on OS/2, even if compiled under DOS. */ -# ifndef OS2 -# define OS2 -# endif -#endif - -#if !defined WINDOWS_NATIVE -# if HAVE_LANGINFO_CODESET -# include -# else -# if 0 /* see comment regarding use of setlocale(), below */ -# include -# endif -# endif -# ifdef __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include -# endif -#elif defined WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include - /* For the use of setlocale() below, the Gnulib override in setlocale.c is - not needed; see the platform lists in setlocale_null.m4. */ -# undef setlocale -#endif -#if defined OS2 -# define INCL_DOS -# include -#endif - -/* For MB_CUR_MAX_L */ -#if defined DARWIN7 -# include -#endif - - -#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 - -/* On these platforms, we use a mapping from non-canonical encoding name - to GNU canonical encoding name. */ - -/* 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. */ -# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) - -struct table_entry -{ - const char alias[11+1]; - const char canonical[11+1]; -}; - -/* Table of platform-dependent mappings, sorted in ascending order. */ -static const struct table_entry alias_table[] = - { -# if defined __FreeBSD__ /* FreeBSD */ - /*{ "ARMSCII-8", "ARMSCII-8" },*/ - { "Big5", "BIG5" }, - { "C", "ASCII" }, - /*{ "CP1131", "CP1131" },*/ - /*{ "CP1251", "CP1251" },*/ - /*{ "CP866", "CP866" },*/ - /*{ "GB18030", "GB18030" },*/ - /*{ "GB2312", "GB2312" },*/ - /*{ "GBK", "GBK" },*/ - /*{ "ISCII-DEV", "?" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - /*{ "KOI8-R", "KOI8-R" },*/ - /*{ "KOI8-U", "KOI8-U" },*/ - { "SJIS", "SHIFT_JIS" }, - { "US-ASCII", "ASCII" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" } -# define alias_table_defined -# endif -# if defined __NetBSD__ /* NetBSD */ - { "646", "ASCII" }, - /*{ "ARMSCII-8", "ARMSCII-8" },*/ - /*{ "BIG5", "BIG5" },*/ - { "Big5-HKSCS", "BIG5-HKSCS" }, - /*{ "CP1251", "CP1251" },*/ - /*{ "CP866", "CP866" },*/ - /*{ "GB18030", "GB18030" },*/ - /*{ "GB2312", "GB2312" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - /*{ "KOI8-R", "KOI8-R" },*/ - /*{ "KOI8-U", "KOI8-U" },*/ - /*{ "PT154", "PT154" },*/ - { "SJIS", "SHIFT_JIS" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# if defined __OpenBSD__ /* OpenBSD */ - { "646", "ASCII" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "US-ASCII", "ASCII" } -# define alias_table_defined -# endif -# if defined __APPLE__ && defined __MACH__ /* Mac OS X */ - /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value 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. - Then there are also the locales with encodings other than US-ASCII - and UTF-8. These locales can be occasionally useful to users (e.g. - when grepping through ISO-8859-1 encoded text files), when all their - file names are in US-ASCII. - */ - { "ARMSCII-8", "ARMSCII-8" }, - { "Big5", "BIG5" }, - { "Big5HKSCS", "BIG5-HKSCS" }, - { "CP1131", "CP1131" }, - { "CP1251", "CP1251" }, - { "CP866", "CP866" }, - { "CP949", "CP949" }, - { "GB18030", "GB18030" }, - { "GB2312", "GB2312" }, - { "GBK", "GBK" }, - /*{ "ISCII-DEV", "?" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - { "KOI8-R", "KOI8-R" }, - { "KOI8-U", "KOI8-U" }, - { "PT154", "PT154" }, - { "SJIS", "SHIFT_JIS" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" } -# define alias_table_defined -# endif -# if defined _AIX /* AIX */ - /*{ "GBK", "GBK" },*/ - { "IBM-1046", "CP1046" }, - { "IBM-1124", "CP1124" }, - { "IBM-1129", "CP1129" }, - { "IBM-1252", "CP1252" }, - { "IBM-850", "CP850" }, - { "IBM-856", "CP856" }, - { "IBM-921", "ISO-8859-13" }, - { "IBM-922", "CP922" }, - { "IBM-932", "CP932" }, - { "IBM-943", "CP943" }, - { "IBM-eucCN", "GB2312" }, - { "IBM-eucJP", "EUC-JP" }, - { "IBM-eucKR", "EUC-KR" }, - { "IBM-eucTW", "EUC-TW" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "TIS-620", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "big5", "BIG5" } -# define alias_table_defined -# endif -# if defined __hpux /* HP-UX */ - { "SJIS", "SHIFT_JIS" }, - { "arabic8", "HP-ARABIC8" }, - { "big5", "BIG5" }, - { "cp1251", "CP1251" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" }, - { "gb18030", "GB18030" }, - { "greek8", "HP-GREEK8" }, - { "hebrew8", "HP-HEBREW8" }, - { "hkbig5", "BIG5-HKSCS" }, - { "hp15CN", "GB2312" }, - { "iso88591", "ISO-8859-1" }, - { "iso885913", "ISO-8859-13" }, - { "iso885915", "ISO-8859-15" }, - { "iso88592", "ISO-8859-2" }, - { "iso88594", "ISO-8859-4" }, - { "iso88595", "ISO-8859-5" }, - { "iso88596", "ISO-8859-6" }, - { "iso88597", "ISO-8859-7" }, - { "iso88598", "ISO-8859-8" }, - { "iso88599", "ISO-8859-9" }, - { "kana8", "HP-KANA8" }, - { "koi8r", "KOI8-R" }, - { "roman8", "HP-ROMAN8" }, - { "tis620", "TIS-620" }, - { "turkish8", "HP-TURKISH8" }, - { "utf8", "UTF-8" } -# define alias_table_defined -# endif -# if defined __sgi /* IRIX */ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-9", "ISO-8859-9" }, - { "eucCN", "GB2312" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# if defined __osf__ /* OSF/1 */ - /*{ "GBK", "GBK" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "KSC5601", "CP949" }, - { "SJIS", "SHIFT_JIS" }, - { "TACTIS", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "big5", "BIG5" }, - { "cp850", "CP850" }, - { "dechanyu", "DEC-HANYU" }, - { "dechanzi", "GB2312" }, - { "deckanji", "DEC-KANJI" }, - { "deckorean", "EUC-KR" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW", "EUC-TW" }, - { "sdeckanji", "EUC-JP" } -# define alias_table_defined -# endif -# if defined __sun /* Solaris */ - { "5601", "EUC-KR" }, - { "646", "ASCII" }, - /*{ "BIG5", "BIG5" },*/ - { "Big5-HKSCS", "BIG5-HKSCS" }, - { "GB18030", "GB18030" }, - /*{ "GBK", "GBK" },*/ - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-11", "TIS-620" }, - { "ISO8859-13", "ISO-8859-13" }, - { "ISO8859-15", "ISO-8859-15" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-3", "ISO-8859-3" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "PCK", "SHIFT_JIS" }, - { "TIS620.2533", "TIS-620" }, - /*{ "UTF-8", "UTF-8" },*/ - { "ansi-1251", "CP1251" }, - { "cns11643", "EUC-TW" }, - { "eucJP", "EUC-JP" }, - { "gb2312", "GB2312" }, - { "koi8-r", "KOI8-R" } -# define alias_table_defined -# endif -# if defined __minix /* Minix */ - { "646", "ASCII" } -# define alias_table_defined -# endif -# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ - { "CP1361", "JOHAB" }, - { "CP20127", "ASCII" }, - { "CP20866", "KOI8-R" }, - { "CP20936", "GB2312" }, - { "CP21866", "KOI8-RU" }, - { "CP28591", "ISO-8859-1" }, - { "CP28592", "ISO-8859-2" }, - { "CP28593", "ISO-8859-3" }, - { "CP28594", "ISO-8859-4" }, - { "CP28595", "ISO-8859-5" }, - { "CP28596", "ISO-8859-6" }, - { "CP28597", "ISO-8859-7" }, - { "CP28598", "ISO-8859-8" }, - { "CP28599", "ISO-8859-9" }, - { "CP28605", "ISO-8859-15" }, - { "CP38598", "ISO-8859-8" }, - { "CP51932", "EUC-JP" }, - { "CP51936", "GB2312" }, - { "CP51949", "EUC-KR" }, - { "CP51950", "EUC-TW" }, - { "CP54936", "GB18030" }, - { "CP65001", "UTF-8" }, - { "CP936", "GBK" } -# define alias_table_defined -# endif -# if defined OS2 /* OS/2 */ - /* The list of encodings is taken from "List of OS/2 Codepages" - by Alex Taylor: - . - See also "__convcp() of kLIBC": - . */ - { "CP1004", "CP1252" }, - /*{ "CP1041", "CP943" },*/ - /*{ "CP1088", "CP949" },*/ - { "CP1089", "ISO-8859-6" }, - /*{ "CP1114", "CP950" },*/ - /*{ "CP1115", "GB2312" },*/ - { "CP1208", "UTF-8" }, - /*{ "CP1380", "GB2312" },*/ - { "CP1381", "GB2312" }, - { "CP1383", "GB2312" }, - { "CP1386", "GBK" }, - /*{ "CP301", "CP943" },*/ - { "CP3372", "EUC-JP" }, - { "CP4946", "CP850" }, - /*{ "CP5048", "JIS_X0208-1990" },*/ - /*{ "CP5049", "JIS_X0212-1990" },*/ - /*{ "CP5067", "KS_C_5601-1987" },*/ - { "CP813", "ISO-8859-7" }, - { "CP819", "ISO-8859-1" }, - { "CP878", "KOI8-R" }, - /*{ "CP897", "CP943" },*/ - { "CP912", "ISO-8859-2" }, - { "CP913", "ISO-8859-3" }, - { "CP914", "ISO-8859-4" }, - { "CP915", "ISO-8859-5" }, - { "CP916", "ISO-8859-8" }, - { "CP920", "ISO-8859-9" }, - { "CP921", "ISO-8859-13" }, - { "CP923", "ISO-8859-15" }, - /*{ "CP941", "CP943" },*/ - /*{ "CP947", "CP950" },*/ - /*{ "CP951", "CP949" },*/ - /*{ "CP952", "JIS_X0208-1990" },*/ - /*{ "CP953", "JIS_X0212-1990" },*/ - { "CP954", "EUC-JP" }, - { "CP964", "EUC-TW" }, - { "CP970", "EUC-KR" }, - /*{ "CP971", "KS_C_5601-1987" },*/ - { "IBM-1004", "CP1252" }, - /*{ "IBM-1006", "?" },*/ - /*{ "IBM-1008", "?" },*/ - /*{ "IBM-1041", "CP943" },*/ - /*{ "IBM-1051", "?" },*/ - /*{ "IBM-1088", "CP949" },*/ - { "IBM-1089", "ISO-8859-6" }, - /*{ "IBM-1098", "?" },*/ - /*{ "IBM-1114", "CP950" },*/ - /*{ "IBM-1115", "GB2312" },*/ - /*{ "IBM-1116", "?" },*/ - /*{ "IBM-1117", "?" },*/ - /*{ "IBM-1118", "?" },*/ - /*{ "IBM-1119", "?" },*/ - { "IBM-1124", "CP1124" }, - { "IBM-1125", "CP1125" }, - { "IBM-1131", "CP1131" }, - { "IBM-1208", "UTF-8" }, - { "IBM-1250", "CP1250" }, - { "IBM-1251", "CP1251" }, - { "IBM-1252", "CP1252" }, - { "IBM-1253", "CP1253" }, - { "IBM-1254", "CP1254" }, - { "IBM-1255", "CP1255" }, - { "IBM-1256", "CP1256" }, - { "IBM-1257", "CP1257" }, - /*{ "IBM-1275", "?" },*/ - /*{ "IBM-1276", "?" },*/ - /*{ "IBM-1277", "?" },*/ - /*{ "IBM-1280", "?" },*/ - /*{ "IBM-1281", "?" },*/ - /*{ "IBM-1282", "?" },*/ - /*{ "IBM-1283", "?" },*/ - /*{ "IBM-1380", "GB2312" },*/ - { "IBM-1381", "GB2312" }, - { "IBM-1383", "GB2312" }, - { "IBM-1386", "GBK" }, - /*{ "IBM-301", "CP943" },*/ - { "IBM-3372", "EUC-JP" }, - { "IBM-367", "ASCII" }, - { "IBM-437", "CP437" }, - { "IBM-4946", "CP850" }, - /*{ "IBM-5048", "JIS_X0208-1990" },*/ - /*{ "IBM-5049", "JIS_X0212-1990" },*/ - /*{ "IBM-5067", "KS_C_5601-1987" },*/ - { "IBM-813", "ISO-8859-7" }, - { "IBM-819", "ISO-8859-1" }, - { "IBM-850", "CP850" }, - /*{ "IBM-851", "?" },*/ - { "IBM-852", "CP852" }, - { "IBM-855", "CP855" }, - { "IBM-856", "CP856" }, - { "IBM-857", "CP857" }, - /*{ "IBM-859", "?" },*/ - { "IBM-860", "CP860" }, - { "IBM-861", "CP861" }, - { "IBM-862", "CP862" }, - { "IBM-863", "CP863" }, - { "IBM-864", "CP864" }, - { "IBM-865", "CP865" }, - { "IBM-866", "CP866" }, - /*{ "IBM-868", "?" },*/ - { "IBM-869", "CP869" }, - { "IBM-874", "CP874" }, - { "IBM-878", "KOI8-R" }, - /*{ "IBM-895", "?" },*/ - /*{ "IBM-897", "CP943" },*/ - /*{ "IBM-907", "?" },*/ - /*{ "IBM-909", "?" },*/ - { "IBM-912", "ISO-8859-2" }, - { "IBM-913", "ISO-8859-3" }, - { "IBM-914", "ISO-8859-4" }, - { "IBM-915", "ISO-8859-5" }, - { "IBM-916", "ISO-8859-8" }, - { "IBM-920", "ISO-8859-9" }, - { "IBM-921", "ISO-8859-13" }, - { "IBM-922", "CP922" }, - { "IBM-923", "ISO-8859-15" }, - { "IBM-932", "CP932" }, - /*{ "IBM-941", "CP943" },*/ - /*{ "IBM-942", "?" },*/ - { "IBM-943", "CP943" }, - /*{ "IBM-947", "CP950" },*/ - { "IBM-949", "CP949" }, - { "IBM-950", "CP950" }, - /*{ "IBM-951", "CP949" },*/ - /*{ "IBM-952", "JIS_X0208-1990" },*/ - /*{ "IBM-953", "JIS_X0212-1990" },*/ - { "IBM-954", "EUC-JP" }, - /*{ "IBM-955", "?" },*/ - { "IBM-964", "EUC-TW" }, - { "IBM-970", "EUC-KR" }, - /*{ "IBM-971", "KS_C_5601-1987" },*/ - { "IBM-eucCN", "GB2312" }, - { "IBM-eucJP", "EUC-JP" }, - { "IBM-eucKR", "EUC-KR" }, - { "IBM-eucTW", "EUC-TW" }, - { "IBM33722", "EUC-JP" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-3", "ISO-8859-3" }, - { "ISO8859-4", "ISO-8859-4" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-6", "ISO-8859-6" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - /*{ "JISX0201-1976", "JISX0201-1976" },*/ - /*{ "JISX0208-1978", "?" },*/ - /*{ "JISX0208-1983", "JIS_X0208-1983" },*/ - /*{ "JISX0208-1990", "JIS_X0208-1990" },*/ - /*{ "JISX0212-1990", "JIS_X0212-1990" },*/ - /*{ "KSC5601-1987", "KS_C_5601-1987" },*/ - { "SJIS-1", "CP943" }, - { "SJIS-2", "CP943" }, - { "eucJP", "EUC-JP" }, - { "eucKR", "EUC-KR" }, - { "eucTW-1993", "EUC-TW" } -# define alias_table_defined -# endif -# if defined VMS /* OpenVMS */ - /* 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". */ - { "DECHANYU", "DEC-HANYU" }, - { "DECHANZI", "GB2312" }, - { "DECKANJI", "DEC-KANJI" }, - { "DECKOREAN", "EUC-KR" }, - { "ISO8859-1", "ISO-8859-1" }, - { "ISO8859-2", "ISO-8859-2" }, - { "ISO8859-5", "ISO-8859-5" }, - { "ISO8859-7", "ISO-8859-7" }, - { "ISO8859-8", "ISO-8859-8" }, - { "ISO8859-9", "ISO-8859-9" }, - { "SDECKANJI", "EUC-JP" }, - { "SJIS", "SHIFT_JIS" }, - { "eucJP", "EUC-JP" }, - { "eucTW", "EUC-TW" } -# define alias_table_defined -# endif -# ifndef alias_table_defined - /* Just a dummy entry, to avoid a C syntax error. */ - { "", "" } -# endif - }; - -# endif - -#else - -/* On these platforms, we use a mapping from locale name to GNU canonical - encoding name. */ - -struct table_entry -{ - const char locale[17+1]; - const char canonical[11+1]; -}; - -/* Table of platform-dependent mappings, sorted in ascending order. */ -static const struct table_entry locale_table[] = - { -# if defined __FreeBSD__ /* FreeBSD 4.2 */ - { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, - { "da_DK.DIS_8859-15", "ISO-8859-15" }, - { "da_DK.ISO_8859-1", "ISO-8859-1" }, - { "de_AT.DIS_8859-15", "ISO-8859-15" }, - { "de_AT.ISO_8859-1", "ISO-8859-1" }, - { "de_CH.DIS_8859-15", "ISO-8859-15" }, - { "de_CH.ISO_8859-1", "ISO-8859-1" }, - { "de_DE.DIS_8859-15", "ISO-8859-15" }, - { "de_DE.ISO_8859-1", "ISO-8859-1" }, - { "en_AU.DIS_8859-15", "ISO-8859-15" }, - { "en_AU.ISO_8859-1", "ISO-8859-1" }, - { "en_CA.DIS_8859-15", "ISO-8859-15" }, - { "en_CA.ISO_8859-1", "ISO-8859-1" }, - { "en_GB.DIS_8859-15", "ISO-8859-15" }, - { "en_GB.ISO_8859-1", "ISO-8859-1" }, - { "en_US.DIS_8859-15", "ISO-8859-15" }, - { "en_US.ISO_8859-1", "ISO-8859-1" }, - { "es_ES.DIS_8859-15", "ISO-8859-15" }, - { "es_ES.ISO_8859-1", "ISO-8859-1" }, - { "fi_FI.DIS_8859-15", "ISO-8859-15" }, - { "fi_FI.ISO_8859-1", "ISO-8859-1" }, - { "fr_BE.DIS_8859-15", "ISO-8859-15" }, - { "fr_BE.ISO_8859-1", "ISO-8859-1" }, - { "fr_CA.DIS_8859-15", "ISO-8859-15" }, - { "fr_CA.ISO_8859-1", "ISO-8859-1" }, - { "fr_CH.DIS_8859-15", "ISO-8859-15" }, - { "fr_CH.ISO_8859-1", "ISO-8859-1" }, - { "fr_FR.DIS_8859-15", "ISO-8859-15" }, - { "fr_FR.ISO_8859-1", "ISO-8859-1" }, - { "hr_HR.ISO_8859-2", "ISO-8859-2" }, - { "hu_HU.ISO_8859-2", "ISO-8859-2" }, - { "is_IS.DIS_8859-15", "ISO-8859-15" }, - { "is_IS.ISO_8859-1", "ISO-8859-1" }, - { "it_CH.DIS_8859-15", "ISO-8859-15" }, - { "it_CH.ISO_8859-1", "ISO-8859-1" }, - { "it_IT.DIS_8859-15", "ISO-8859-15" }, - { "it_IT.ISO_8859-1", "ISO-8859-1" }, - { "ja_JP.EUC", "EUC-JP" }, - { "ja_JP.SJIS", "SHIFT_JIS" }, - { "ja_JP.Shift_JIS", "SHIFT_JIS" }, - { "ko_KR.EUC", "EUC-KR" }, - { "la_LN.ASCII", "ASCII" }, - { "la_LN.DIS_8859-15", "ISO-8859-15" }, - { "la_LN.ISO_8859-1", "ISO-8859-1" }, - { "la_LN.ISO_8859-2", "ISO-8859-2" }, - { "la_LN.ISO_8859-4", "ISO-8859-4" }, - { "lt_LN.ASCII", "ASCII" }, - { "lt_LN.DIS_8859-15", "ISO-8859-15" }, - { "lt_LN.ISO_8859-1", "ISO-8859-1" }, - { "lt_LN.ISO_8859-2", "ISO-8859-2" }, - { "lt_LT.ISO_8859-4", "ISO-8859-4" }, - { "nl_BE.DIS_8859-15", "ISO-8859-15" }, - { "nl_BE.ISO_8859-1", "ISO-8859-1" }, - { "nl_NL.DIS_8859-15", "ISO-8859-15" }, - { "nl_NL.ISO_8859-1", "ISO-8859-1" }, - { "no_NO.DIS_8859-15", "ISO-8859-15" }, - { "no_NO.ISO_8859-1", "ISO-8859-1" }, - { "pl_PL.ISO_8859-2", "ISO-8859-2" }, - { "pt_PT.DIS_8859-15", "ISO-8859-15" }, - { "pt_PT.ISO_8859-1", "ISO-8859-1" }, - { "ru_RU.CP866", "CP866" }, - { "ru_RU.ISO_8859-5", "ISO-8859-5" }, - { "ru_RU.KOI8-R", "KOI8-R" }, - { "ru_SU.CP866", "CP866" }, - { "ru_SU.ISO_8859-5", "ISO-8859-5" }, - { "ru_SU.KOI8-R", "KOI8-R" }, - { "sl_SI.ISO_8859-2", "ISO-8859-2" }, - { "sv_SE.DIS_8859-15", "ISO-8859-15" }, - { "sv_SE.ISO_8859-1", "ISO-8859-1" }, - { "uk_UA.KOI8-U", "KOI8-U" }, - { "zh_CN.EUC", "GB2312" }, - { "zh_TW.BIG5", "BIG5" }, - { "zh_TW.Big5", "BIG5" } -# define locale_table_defined -# endif -# if defined __DJGPP__ /* DOS / DJGPP 2.03 */ - /* The encodings given here may not all be correct. - If you find that the encoding given for your language and - country is not the one your DOS machine actually uses, just - correct it in this file, and send a mail to - Juan Manuel Guerrero - and . */ - { "C", "ASCII" }, - { "ar", "CP864" }, - { "ar_AE", "CP864" }, - { "ar_DZ", "CP864" }, - { "ar_EG", "CP864" }, - { "ar_IQ", "CP864" }, - { "ar_IR", "CP864" }, - { "ar_JO", "CP864" }, - { "ar_KW", "CP864" }, - { "ar_MA", "CP864" }, - { "ar_OM", "CP864" }, - { "ar_QA", "CP864" }, - { "ar_SA", "CP864" }, - { "ar_SY", "CP864" }, - { "be", "CP866" }, - { "be_BE", "CP866" }, - { "bg", "CP866" }, /* not CP855 ?? */ - { "bg_BG", "CP866" }, /* not CP855 ?? */ - { "ca", "CP850" }, - { "ca_ES", "CP850" }, - { "cs", "CP852" }, - { "cs_CZ", "CP852" }, - { "da", "CP865" }, /* not CP850 ?? */ - { "da_DK", "CP865" }, /* not CP850 ?? */ - { "de", "CP850" }, - { "de_AT", "CP850" }, - { "de_CH", "CP850" }, - { "de_DE", "CP850" }, - { "el", "CP869" }, - { "el_GR", "CP869" }, - { "en", "CP850" }, - { "en_AU", "CP850" }, /* not CP437 ?? */ - { "en_CA", "CP850" }, - { "en_GB", "CP850" }, - { "en_NZ", "CP437" }, - { "en_US", "CP437" }, - { "en_ZA", "CP850" }, /* not CP437 ?? */ - { "eo", "CP850" }, - { "eo_EO", "CP850" }, - { "es", "CP850" }, - { "es_AR", "CP850" }, - { "es_BO", "CP850" }, - { "es_CL", "CP850" }, - { "es_CO", "CP850" }, - { "es_CR", "CP850" }, - { "es_CU", "CP850" }, - { "es_DO", "CP850" }, - { "es_EC", "CP850" }, - { "es_ES", "CP850" }, - { "es_GT", "CP850" }, - { "es_HN", "CP850" }, - { "es_MX", "CP850" }, - { "es_NI", "CP850" }, - { "es_PA", "CP850" }, - { "es_PE", "CP850" }, - { "es_PY", "CP850" }, - { "es_SV", "CP850" }, - { "es_UY", "CP850" }, - { "es_VE", "CP850" }, - { "et", "CP850" }, - { "et_EE", "CP850" }, - { "eu", "CP850" }, - { "eu_ES", "CP850" }, - { "fi", "CP850" }, - { "fi_FI", "CP850" }, - { "fr", "CP850" }, - { "fr_BE", "CP850" }, - { "fr_CA", "CP850" }, - { "fr_CH", "CP850" }, - { "fr_FR", "CP850" }, - { "ga", "CP850" }, - { "ga_IE", "CP850" }, - { "gd", "CP850" }, - { "gd_GB", "CP850" }, - { "gl", "CP850" }, - { "gl_ES", "CP850" }, - { "he", "CP862" }, - { "he_IL", "CP862" }, - { "hr", "CP852" }, - { "hr_HR", "CP852" }, - { "hu", "CP852" }, - { "hu_HU", "CP852" }, - { "id", "CP850" }, /* not CP437 ?? */ - { "id_ID", "CP850" }, /* not CP437 ?? */ - { "is", "CP861" }, /* not CP850 ?? */ - { "is_IS", "CP861" }, /* not CP850 ?? */ - { "it", "CP850" }, - { "it_CH", "CP850" }, - { "it_IT", "CP850" }, - { "ja", "CP932" }, - { "ja_JP", "CP932" }, - { "kr", "CP949" }, /* not CP934 ?? */ - { "kr_KR", "CP949" }, /* not CP934 ?? */ - { "lt", "CP775" }, - { "lt_LT", "CP775" }, - { "lv", "CP775" }, - { "lv_LV", "CP775" }, - { "mk", "CP866" }, /* not CP855 ?? */ - { "mk_MK", "CP866" }, /* not CP855 ?? */ - { "mt", "CP850" }, - { "mt_MT", "CP850" }, - { "nb", "CP865" }, /* not CP850 ?? */ - { "nb_NO", "CP865" }, /* not CP850 ?? */ - { "nl", "CP850" }, - { "nl_BE", "CP850" }, - { "nl_NL", "CP850" }, - { "nn", "CP865" }, /* not CP850 ?? */ - { "nn_NO", "CP865" }, /* not CP850 ?? */ - { "no", "CP865" }, /* not CP850 ?? */ - { "no_NO", "CP865" }, /* not CP850 ?? */ - { "pl", "CP852" }, - { "pl_PL", "CP852" }, - { "pt", "CP850" }, - { "pt_BR", "CP850" }, - { "pt_PT", "CP850" }, - { "ro", "CP852" }, - { "ro_RO", "CP852" }, - { "ru", "CP866" }, - { "ru_RU", "CP866" }, - { "sk", "CP852" }, - { "sk_SK", "CP852" }, - { "sl", "CP852" }, - { "sl_SI", "CP852" }, - { "sq", "CP852" }, - { "sq_AL", "CP852" }, - { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ - { "sv", "CP850" }, - { "sv_SE", "CP850" }, - { "th", "CP874" }, - { "th_TH", "CP874" }, - { "tr", "CP857" }, - { "tr_TR", "CP857" }, - { "uk", "CP1125" }, - { "uk_UA", "CP1125" }, - { "zh_CN", "GBK" }, - { "zh_TW", "CP950" } /* not CP938 ?? */ -# define locale_table_defined -# endif -# ifndef locale_table_defined - /* Just a dummy entry, to avoid a C syntax error. */ - { "", "" } -# endif - }; - -#endif - - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. - If the canonical name cannot be determined, the result is a non-canonical - name. */ - -#ifdef STATIC -STATIC -#endif -const char * -locale_charset (void) -{ - const char *codeset; - - /* This function must be multithread-safe. To achieve this without using - thread-local storage, we use a simple strcpy or memcpy to fill this static - buffer. Filling it through, for example, strcpy + strcat would not be - guaranteed to leave the buffer's contents intact if another thread is - currently accessing it. If necessary, the contents is first assembled in - a stack-allocated buffer. */ - -#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 - -# if HAVE_LANGINFO_CODESET - - /* Most systems support nl_langinfo (CODESET) nowadays. */ - codeset = nl_langinfo (CODESET); - -# ifdef __CYGWIN__ - /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always - returns "US-ASCII". 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 resultbuf[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 (resultbuf)) - { - /* This way of filling resultbuf is multithread-safe. */ - memcpy (resultbuf, dot, modifier - dot); - resultbuf [modifier - dot] = '\0'; - return resultbuf; - } - } - } - - /* The Windows API has a function returning the locale's codepage as a - number: GetACP(). This encoding is used by Cygwin, unless the user - has set the environment variable CYGWIN=codepage:oem (which very few - people do). - Output directed to console windows needs to be converted (to - GetOEMCP() if the console is using a raster font, or to - GetConsoleOutputCP() if it is using a TrueType font). Cygwin does - this conversion transparently (see winsup/cygwin/fhandler_console.cc), - converting to GetConsoleOutputCP(). This leads to correct results, - except when SetConsoleOutputCP has been called and a raster font is - in use. */ - { - char buf[2 + 10 + 1]; - - sprintf (buf, "CP%u", GetACP ()); - strcpy (resultbuf, buf); - codeset = resultbuf; - } - } -# endif - - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; - -# elif defined WINDOWS_NATIVE - - char buf[2 + 10 + 1]; - static char resultbuf[2 + 10 + 1]; - - /* The Windows API has a function returning the locale's codepage as - a number, but the value doesn't change according to what the - 'setlocale' call specified. So we use it as a last resort, in - case the string returned by 'setlocale' doesn't specify the - codepage. */ - char *current_locale = setlocale (LC_CTYPE, NULL); - char *pdot = strrchr (current_locale, '.'); - - if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) - sprintf (buf, "CP%s", pdot + 1); - else - { - /* The Windows API has a function returning the locale's codepage as a - number: GetACP(). - When the output goes to a console window, it needs to be provided in - GetOEMCP() encoding if the console is using a raster font, or in - GetConsoleOutputCP() encoding if it is using a TrueType font. - But in GUI programs and for output sent to files and pipes, GetACP() - encoding is the best bet. */ - sprintf (buf, "CP%u", GetACP ()); - } - /* For a locale name such as "French_France.65001", in Windows 10, - setlocale now returns "French_France.utf8" instead. */ - if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) - codeset = "UTF-8"; - else - { - strcpy (resultbuf, buf); - codeset = resultbuf; - } - -# elif defined OS2 - - const char *locale; - static char resultbuf[2 + 10 + 1]; - ULONG cp[3]; - ULONG cplen; - - codeset = NULL; - - /* 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 (resultbuf)) - { - /* This way of filling resultbuf is multithread-safe. */ - memcpy (resultbuf, dot, modifier - dot); - resultbuf [modifier - dot] = '\0'; - return resultbuf; - } - } - - /* For the POSIX locale, don't use the system's codepage. */ - if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0) - codeset = ""; - } - - if (codeset == NULL) - { - /* OS/2 has a function returning the locale's codepage as a number. */ - if (DosQueryCp (sizeof (cp), cp, &cplen)) - codeset = ""; - else - { - char buf[2 + 10 + 1]; - - sprintf (buf, "CP%u", cp[0]); - strcpy (resultbuf, buf); - codeset = resultbuf; - } - } - -# else - -# error "Add code for other platforms here." - -# endif - - /* Resolve alias. */ - { -# ifdef alias_table_defined - /* On some platforms, UTF-8 locales are the most frequently used ones. - Speed up the common case and slow down the less common cases by - testing for this case first. */ -# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ - if (strcmp (codeset, "UTF-8") == 0) - goto done_table_lookup; - else -# endif - { - const struct table_entry * const table = alias_table; - size_t const table_size = - sizeof (alias_table) / sizeof (struct table_entry); - /* The table is sorted. Perform a binary search. */ - size_t hi = table_size; - size_t lo = 0; - while (lo < hi) - { - /* Invariant: - for i < lo, strcmp (table[i].alias, codeset) < 0, - for i >= hi, strcmp (table[i].alias, codeset) > 0. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - int cmp = strcmp (table[mid].alias, codeset); - if (cmp < 0) - lo = mid + 1; - else if (cmp > 0) - hi = mid; - else - { - /* Found an i with - strcmp (table[i].alias, codeset) == 0. */ - codeset = table[mid].canonical; - goto done_table_lookup; - } - } - } - if (0) - done_table_lookup: {} - else -# endif - { - /* Did not find it in the table. */ - /* On Mac OS X, all modern locales use the UTF-8 encoding. - BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ -# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ - codeset = "UTF-8"; -# else - /* 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"; -# 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 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"); - if (locale == NULL) - locale = ""; - } - } - - /* Map locale name to canonical encoding name. */ - { -# ifdef locale_table_defined - const struct table_entry * const table = locale_table; - size_t const table_size = - sizeof (locale_table) / sizeof (struct table_entry); - /* The table is sorted. Perform a binary search. */ - size_t hi = table_size; - size_t lo = 0; - while (lo < hi) - { - /* Invariant: - for i < lo, strcmp (table[i].locale, locale) < 0, - for i >= hi, strcmp (table[i].locale, locale) > 0. */ - size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ - int cmp = strcmp (table[mid].locale, locale); - if (cmp < 0) - lo = mid + 1; - else if (cmp > 0) - hi = mid; - else - { - /* Found an i with - strcmp (table[i].locale, locale) == 0. */ - codeset = table[mid].canonical; - goto done_table_lookup; - } - } - if (0) - done_table_lookup: ; - else -# endif - { - /* Did not find it in the table. */ - /* On Mac OS X, all modern locales use the UTF-8 encoding. - BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ -# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ - codeset = "UTF-8"; -# else - /* The canonical name cannot be determined. */ - /* 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. */ - codeset = "ASCII"; -# endif - } - } - -#endif - -#ifdef DARWIN7 - /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" - (the default codeset) does not work when MB_CUR_MAX is 1. */ - if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1) - codeset = "ASCII"; -#endif - - return codeset; -} diff --git a/jni/parted/libgnulib/lib/long-options.c b/jni/parted/libgnulib/lib/long-options.c deleted file mode 100755 index 7f6600c..0000000 --- a/jni/parted/libgnulib/lib/long-options.c +++ /dev/null @@ -1,139 +0,0 @@ -/* Utility to accept --help and --version options as unobtrusively as possible. - - Copyright (C) 1993-1994, 1998-2000, 2002-2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#include - -/* Specification. */ -#include "long-options.h" - -#include -#include -#include -#include - -#include "version-etc.h" -#include "exitfail.h" - -static struct option const long_options[] = -{ - {"help", no_argument, NULL, 'h'}, - {"version", no_argument, NULL, 'v'}, - {NULL, 0, NULL, 0} -}; - -/* Process long options --help and --version, but only if argc == 2. - Be careful not to gobble up "--". */ - -void -parse_long_options (int argc, - char **argv, - const char *command_name, - const char *package, - const char *version, - void (*usage_func) (int), - /* const char *author1, ...*/ ...) -{ - int c; - int saved_opterr; - - saved_opterr = opterr; - - /* Don't print an error message for unrecognized options. */ - opterr = 0; - - if (argc == 2 - && (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1) - { - switch (c) - { - case 'h': - (*usage_func) (EXIT_SUCCESS); - break; - - case 'v': - { - va_list authors; - va_start (authors, usage_func); - version_etc_va (stdout, command_name, package, version, authors); - exit (EXIT_SUCCESS); - } - - default: - /* Don't process any other long-named options. */ - break; - } - } - - /* Restore previous value. */ - opterr = saved_opterr; - - /* Reset this to zero so that getopt internals get initialized from - the probably-new parameters when/if getopt is called later. */ - optind = 0; -} - -/* Process the GNU default long options --help and --version (see also - https://gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html), - and fail for any other unknown long or short option. - Use with SCAN_ALL=true to scan until "--", or with SCAN_ALL=false to stop - at the first non-option argument (or "--", whichever comes first). */ -void -parse_gnu_standard_options_only (int argc, - char **argv, - const char *command_name, - const char *package, - const char *version, - bool scan_all, - void (*usage_func) (int), - /* const char *author1, ...*/ ...) -{ - int c; - int saved_opterr = opterr; - - /* Print an error message for unrecognized options. */ - opterr = 1; - - const char *optstring = scan_all ? "" : "+"; - - if ((c = getopt_long (argc, argv, optstring, long_options, NULL)) != -1) - { - switch (c) - { - case 'h': - (*usage_func) (EXIT_SUCCESS); - break; - - case 'v': - { - va_list authors; - va_start (authors, usage_func); - version_etc_va (stdout, command_name, package, version, authors); - exit (EXIT_SUCCESS); - } - - default: - (*usage_func) (exit_failure); - break; - } - } - - /* Restore previous value. */ - opterr = saved_opterr; -} diff --git a/jni/parted/libgnulib/lib/malloc/dynarray-skeleton.c b/jni/parted/libgnulib/lib/malloc/dynarray-skeleton.c deleted file mode 100755 index a95241a..0000000 --- a/jni/parted/libgnulib/lib/malloc/dynarray-skeleton.c +++ /dev/null @@ -1,528 +0,0 @@ -/* Type-safe arrays which grow dynamically. - Copyright (C) 2017-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* Pre-processor macros which act as parameters: - - DYNARRAY_STRUCT - The struct tag of dynamic array to be defined. - DYNARRAY_ELEMENT - The type name of the element type. Elements are copied - as if by memcpy, and can change address as the dynamic - array grows. - DYNARRAY_PREFIX - The prefix of the functions which are defined. - - The following parameters are optional: - - DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (E) is evaluated to deallocate the - contents of elements. E is of type DYNARRAY_ELEMENT *. - DYNARRAY_ELEMENT_INIT - DYNARRAY_ELEMENT_INIT (E) is evaluated to initialize a new - element. E is of type DYNARRAY_ELEMENT *. - If DYNARRAY_ELEMENT_FREE but not DYNARRAY_ELEMENT_INIT is - defined, new elements are automatically zero-initialized. - Otherwise, new elements have undefined contents. - DYNARRAY_INITIAL_SIZE - The size of the statically allocated array (default: - at least 2, more elements if they fit into 128 bytes). - Must be a preprocessor constant. If DYNARRAY_INITIAL_SIZE is 0, - there is no statically allocated array at, and all non-empty - arrays are heap-allocated. - DYNARRAY_FINAL_TYPE - The name of the type which holds the final array. If not - defined, is PREFIX##finalize not provided. DYNARRAY_FINAL_TYPE - must be a struct type, with members of type DYNARRAY_ELEMENT and - size_t at the start (in this order). - - These macros are undefined after this header file has been - included. - - The following types are provided (their members are private to the - dynarray implementation): - - struct DYNARRAY_STRUCT - - The following functions are provided: - - void DYNARRAY_PREFIX##init (struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##free (struct DYNARRAY_STRUCT *); - bool DYNARRAY_PREFIX##has_failed (const struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##mark_failed (struct DYNARRAY_STRUCT *); - size_t DYNARRAY_PREFIX##size (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##begin (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##end (const struct DYNARRAY_STRUCT *); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##at (struct DYNARRAY_STRUCT *, size_t); - void DYNARRAY_PREFIX##add (struct DYNARRAY_STRUCT *, DYNARRAY_ELEMENT); - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##emplace (struct DYNARRAY_STRUCT *); - bool DYNARRAY_PREFIX##resize (struct DYNARRAY_STRUCT *, size_t); - void DYNARRAY_PREFIX##remove_last (struct DYNARRAY_STRUCT *); - void DYNARRAY_PREFIX##clear (struct DYNARRAY_STRUCT *); - - The following functions are provided are provided if the - prerequisites are met: - - bool DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *, - DYNARRAY_FINAL_TYPE *); - (if DYNARRAY_FINAL_TYPE is defined) - DYNARRAY_ELEMENT *DYNARRAY_PREFIX##finalize (struct DYNARRAY_STRUCT *, - size_t *); - (if DYNARRAY_FINAL_TYPE is not defined) -*/ - -#include - -#include -#include -#include - -#ifndef DYNARRAY_STRUCT -# error "DYNARRAY_STRUCT must be defined" -#endif - -#ifndef DYNARRAY_ELEMENT -# error "DYNARRAY_ELEMENT must be defined" -#endif - -#ifndef DYNARRAY_PREFIX -# error "DYNARRAY_PREFIX must be defined" -#endif - -#ifdef DYNARRAY_INITIAL_SIZE -# if DYNARRAY_INITIAL_SIZE < 0 -# error "DYNARRAY_INITIAL_SIZE must be non-negative" -# endif -# if DYNARRAY_INITIAL_SIZE > 0 -# define DYNARRAY_HAVE_SCRATCH 1 -# else -# define DYNARRAY_HAVE_SCRATCH 0 -# endif -#else -/* Provide a reasonable default which limits the size of - DYNARRAY_STRUCT. */ -# define DYNARRAY_INITIAL_SIZE \ - (sizeof (DYNARRAY_ELEMENT) > 64 ? 2 : 128 / sizeof (DYNARRAY_ELEMENT)) -# define DYNARRAY_HAVE_SCRATCH 1 -#endif - -/* Public type definitions. */ - -/* All fields of this struct are private to the implementation. */ -struct DYNARRAY_STRUCT -{ - union - { - struct dynarray_header dynarray_abstract; - struct - { - /* These fields must match struct dynarray_header. */ - size_t used; - size_t allocated; - DYNARRAY_ELEMENT *array; - } dynarray_header; - } u; - -#if DYNARRAY_HAVE_SCRATCH - /* Initial inline allocation. */ - DYNARRAY_ELEMENT scratch[DYNARRAY_INITIAL_SIZE]; -#endif -}; - -/* Internal use only: Helper macros. */ - -/* Ensure macro-expansion of DYNARRAY_PREFIX. */ -#define DYNARRAY_CONCAT0(prefix, name) prefix##name -#define DYNARRAY_CONCAT1(prefix, name) DYNARRAY_CONCAT0(prefix, name) -#define DYNARRAY_NAME(name) DYNARRAY_CONCAT1(DYNARRAY_PREFIX, name) - -/* Use DYNARRAY_FREE instead of DYNARRAY_NAME (free), - so that Gnulib does not change 'free' to 'rpl_free'. */ -#define DYNARRAY_FREE DYNARRAY_CONCAT1 (DYNARRAY_NAME (f), ree) - -/* Address of the scratch buffer if any. */ -#if DYNARRAY_HAVE_SCRATCH -# define DYNARRAY_SCRATCH(list) (list)->scratch -#else -# define DYNARRAY_SCRATCH(list) NULL -#endif - -/* Internal use only: Helper functions. */ - -/* Internal function. Call DYNARRAY_ELEMENT_FREE with the array - elements. Name mangling needed due to the DYNARRAY_ELEMENT_FREE - macro expansion. */ -static inline void -DYNARRAY_NAME (free__elements__) (DYNARRAY_ELEMENT *__dynarray_array, - size_t __dynarray_used) -{ -#ifdef DYNARRAY_ELEMENT_FREE - for (size_t __dynarray_i = 0; __dynarray_i < __dynarray_used; ++__dynarray_i) - DYNARRAY_ELEMENT_FREE (&__dynarray_array[__dynarray_i]); -#endif /* DYNARRAY_ELEMENT_FREE */ -} - -/* Internal function. Free the non-scratch array allocation. */ -static inline void -DYNARRAY_NAME (free__array__) (struct DYNARRAY_STRUCT *list) -{ -#if DYNARRAY_HAVE_SCRATCH - if (list->u.dynarray_header.array != list->scratch) - free (list->u.dynarray_header.array); -#else - free (list->u.dynarray_header.array); -#endif -} - -/* Public functions. */ - -/* Initialize a dynamic array object. This must be called before any - use of the object. */ -__attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (init) (struct DYNARRAY_STRUCT *list) -{ - list->u.dynarray_header.used = 0; - list->u.dynarray_header.allocated = DYNARRAY_INITIAL_SIZE; - list->u.dynarray_header.array = DYNARRAY_SCRATCH (list); -} - -/* Deallocate the dynamic array and its elements. */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static void -DYNARRAY_FREE (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - DYNARRAY_NAME (free__array__) (list); - DYNARRAY_NAME (init) (list); -} - -/* Return true if the dynamic array is in an error state. */ -__attribute_nonnull__ ((1)) -static inline bool -DYNARRAY_NAME (has_failed) (const struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.allocated == __dynarray_error_marker (); -} - -/* Mark the dynamic array as failed. All elements are deallocated as - a side effect. */ -__attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (mark_failed) (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - DYNARRAY_NAME (free__array__) (list); - list->u.dynarray_header.array = DYNARRAY_SCRATCH (list); - list->u.dynarray_header.used = 0; - list->u.dynarray_header.allocated = __dynarray_error_marker (); -} - -/* Return the number of elements which have been added to the dynamic - array. */ -__attribute_nonnull__ ((1)) -static inline size_t -DYNARRAY_NAME (size) (const struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.used; -} - -/* Return a pointer to the array element at INDEX. Terminate the - process if INDEX is out of bounds. */ -__attribute_nonnull__ ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (at) (struct DYNARRAY_STRUCT *list, size_t index) -{ - if (__glibc_unlikely (index >= DYNARRAY_NAME (size) (list))) - __libc_dynarray_at_failure (DYNARRAY_NAME (size) (list), index); - return list->u.dynarray_header.array + index; -} - -/* Return a pointer to the first array element, if any. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -__attribute_nonnull__ ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (begin) (struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.array; -} - -/* Return a pointer one element past the last array element. For a - zero-length array, the pointer can be NULL even though the dynamic - array has not entered the failure state. */ -__attribute_nonnull__ ((1)) -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (end) (struct DYNARRAY_STRUCT *list) -{ - return list->u.dynarray_header.array + list->u.dynarray_header.used; -} - -/* Internal function. Slow path for the add function below. */ -static void -DYNARRAY_NAME (add__) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) -{ - if (__glibc_unlikely - (!__libc_dynarray_emplace_enlarge (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)))) - { - DYNARRAY_NAME (mark_failed) (list); - return; - } - - /* Copy the new element and increase the array length. */ - list->u.dynarray_header.array[list->u.dynarray_header.used++] = item; -} - -/* Add ITEM at the end of the array, enlarging it by one element. - Mark *LIST as failed if the dynamic array allocation size cannot be - increased. */ -__attribute_nonnull__ ((1)) -static inline void -DYNARRAY_NAME (add) (struct DYNARRAY_STRUCT *list, DYNARRAY_ELEMENT item) -{ - /* Do nothing in case of previous error. */ - if (DYNARRAY_NAME (has_failed) (list)) - return; - - /* Enlarge the array if necessary. */ - if (__glibc_unlikely (list->u.dynarray_header.used - == list->u.dynarray_header.allocated)) - { - DYNARRAY_NAME (add__) (list, item); - return; - } - - /* Copy the new element and increase the array length. */ - list->u.dynarray_header.array[list->u.dynarray_header.used++] = item; -} - -/* Internal function. Building block for the emplace functions below. - Assumes space for one more element in *LIST. */ -static inline DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace__tail__) (struct DYNARRAY_STRUCT *list) -{ - DYNARRAY_ELEMENT *result - = &list->u.dynarray_header.array[list->u.dynarray_header.used]; - ++list->u.dynarray_header.used; -#if defined (DYNARRAY_ELEMENT_INIT) - DYNARRAY_ELEMENT_INIT (result); -#elif defined (DYNARRAY_ELEMENT_FREE) - memset (result, 0, sizeof (*result)); -#endif - return result; -} - -/* Internal function. Slow path for the emplace function below. */ -static DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace__) (struct DYNARRAY_STRUCT *list) -{ - if (__glibc_unlikely - (!__libc_dynarray_emplace_enlarge (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)))) - { - DYNARRAY_NAME (mark_failed) (list); - return NULL; - } - return DYNARRAY_NAME (emplace__tail__) (list); -} - -/* Allocate a place for a new element in *LIST and return a pointer to - it. The pointer can be NULL if the dynamic array cannot be - enlarged due to a memory allocation failure. */ -__attribute_maybe_unused__ __attribute_warn_unused_result__ -__attribute_nonnull__ ((1)) -static -/* Avoid inlining with the larger initialization code. */ -#if !(defined (DYNARRAY_ELEMENT_INIT) || defined (DYNARRAY_ELEMENT_FREE)) -inline -#endif -DYNARRAY_ELEMENT * -DYNARRAY_NAME (emplace) (struct DYNARRAY_STRUCT *list) -{ - /* Do nothing in case of previous error. */ - if (DYNARRAY_NAME (has_failed) (list)) - return NULL; - - /* Enlarge the array if necessary. */ - if (__glibc_unlikely (list->u.dynarray_header.used - == list->u.dynarray_header.allocated)) - return (DYNARRAY_NAME (emplace__) (list)); - return DYNARRAY_NAME (emplace__tail__) (list); -} - -/* Change the size of *LIST to SIZE. If SIZE is larger than the - existing size, new elements are added (which can be initialized). - Otherwise, the list is truncated, and elements are freed. Return - false on memory allocation failure (and mark *LIST as failed). */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static bool -DYNARRAY_NAME (resize) (struct DYNARRAY_STRUCT *list, size_t size) -{ - if (size > list->u.dynarray_header.used) - { - bool ok; -#if defined (DYNARRAY_ELEMENT_INIT) - /* The new elements have to be initialized. */ - size_t old_size = list->u.dynarray_header.used; - ok = __libc_dynarray_resize (&list->u.dynarray_abstract, - size, DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)); - if (ok) - for (size_t i = old_size; i < size; ++i) - { - DYNARRAY_ELEMENT_INIT (&list->u.dynarray_header.array[i]); - } -#elif defined (DYNARRAY_ELEMENT_FREE) - /* Zero initialization is needed so that the elements can be - safely freed. */ - ok = __libc_dynarray_resize_clear - (&list->u.dynarray_abstract, size, - DYNARRAY_SCRATCH (list), sizeof (DYNARRAY_ELEMENT)); -#else - ok = __libc_dynarray_resize (&list->u.dynarray_abstract, - size, DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT)); -#endif - if (__glibc_unlikely (!ok)) - DYNARRAY_NAME (mark_failed) (list); - return ok; - } - else - { - /* The list has shrunk in size. Free the removed elements. */ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array + size, - list->u.dynarray_header.used - size); - list->u.dynarray_header.used = size; - return true; - } -} - -/* Remove the last element of LIST if it is present. */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (remove_last) (struct DYNARRAY_STRUCT *list) -{ - /* used > 0 implies that the array is the non-failed state. */ - if (list->u.dynarray_header.used > 0) - { - size_t new_length = list->u.dynarray_header.used - 1; -#ifdef DYNARRAY_ELEMENT_FREE - DYNARRAY_ELEMENT_FREE (&list->u.dynarray_header.array[new_length]); -#endif - list->u.dynarray_header.used = new_length; - } -} - -/* Remove all elements from the list. The elements are freed, but the - list itself is not. */ -__attribute_maybe_unused__ __attribute_nonnull__ ((1)) -static void -DYNARRAY_NAME (clear) (struct DYNARRAY_STRUCT *list) -{ - /* free__elements__ does nothing if the list is in the failed - state. */ - DYNARRAY_NAME (free__elements__) - (list->u.dynarray_header.array, list->u.dynarray_header.used); - list->u.dynarray_header.used = 0; -} - -#ifdef DYNARRAY_FINAL_TYPE -/* Transfer the dynamic array to a permanent location at *RESULT. - Returns true on success on false on allocation failure. In either - case, *LIST is re-initialized and can be reused. A NULL pointer is - stored in *RESULT if LIST refers to an empty list. On success, the - pointer in *RESULT is heap-allocated and must be deallocated using - free. */ -__attribute_maybe_unused__ __attribute_warn_unused_result__ -__attribute_nonnull__ ((1, 2)) -static bool -DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, - DYNARRAY_FINAL_TYPE *result) -{ - struct dynarray_finalize_result res; - if (__libc_dynarray_finalize (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT), &res)) - { - /* On success, the result owns all the data. */ - DYNARRAY_NAME (init) (list); - *result = (DYNARRAY_FINAL_TYPE) { res.array, res.length }; - return true; - } - else - { - /* On error, we need to free all data. */ - DYNARRAY_FREE (list); - errno = ENOMEM; - return false; - } -} -#else /* !DYNARRAY_FINAL_TYPE */ -/* Transfer the dynamic array to a heap-allocated array and return a - pointer to it. The pointer is NULL if memory allocation fails, or - if the array is empty, so this function should be used only for - arrays which are known not be empty (usually because they always - have a sentinel at the end). If LENGTHP is not NULL, the array - length is written to *LENGTHP. *LIST is re-initialized and can be - reused. */ -__attribute_maybe_unused__ __attribute_warn_unused_result__ -__attribute_nonnull__ ((1)) -static DYNARRAY_ELEMENT * -DYNARRAY_NAME (finalize) (struct DYNARRAY_STRUCT *list, size_t *lengthp) -{ - struct dynarray_finalize_result res; - if (__libc_dynarray_finalize (&list->u.dynarray_abstract, - DYNARRAY_SCRATCH (list), - sizeof (DYNARRAY_ELEMENT), &res)) - { - /* On success, the result owns all the data. */ - DYNARRAY_NAME (init) (list); - if (lengthp != NULL) - *lengthp = res.length; - return res.array; - } - else - { - /* On error, we need to free all data. */ - DYNARRAY_FREE (list); - errno = ENOMEM; - return NULL; - } -} -#endif /* !DYNARRAY_FINAL_TYPE */ - -/* Undo macro definitions. */ - -#undef DYNARRAY_CONCAT0 -#undef DYNARRAY_CONCAT1 -#undef DYNARRAY_NAME -#undef DYNARRAY_SCRATCH -#undef DYNARRAY_HAVE_SCRATCH - -#undef DYNARRAY_STRUCT -#undef DYNARRAY_ELEMENT -#undef DYNARRAY_PREFIX -#undef DYNARRAY_ELEMENT_FREE -#undef DYNARRAY_ELEMENT_INIT -#undef DYNARRAY_INITIAL_SIZE -#undef DYNARRAY_FINAL_TYPE diff --git a/jni/parted/libgnulib/lib/malloca.c b/jni/parted/libgnulib/lib/malloca.c deleted file mode 100755 index e75c72d..0000000 --- a/jni/parted/libgnulib/lib/malloca.c +++ /dev/null @@ -1,135 +0,0 @@ -/* Safe automatic memory allocation. - Copyright (C) 2003, 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2003, 2018. - - This file 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 file 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 program. If not, see . */ - -#define _GL_USE_STDLIB_ALLOC 1 -#include - -/* Specification. */ -#include "malloca.h" - -#include -#if defined __CHERI_PURE_CAPABILITY__ -# include -#endif - -#include "idx.h" - -/* The speed critical point in this file is freea() applied to an alloca() - result: it must be fast, to match the speed of alloca(). The speed of - mmalloca() and freea() in the other case are not critical, because they - are only invoked for big memory sizes. - Here we use a bit in the address as an indicator, an idea by OndÅ™ej Bílka. - malloca() can return three types of pointers: - - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. - - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap - allocation. - - NULL comes from a failed heap allocation. */ - -#if defined __CHERI_PURE_CAPABILITY__ -/* Type for holding the original malloc() result. */ -typedef uintptr_t small_t; -#else -/* Type for holding very small pointer differences. */ -typedef unsigned char small_t; -/* Verify that it is wide enough. */ -static_assert (2 * sa_alignment_max - 1 <= (small_t) -1); -#endif - -void * -mmalloca (size_t n) -{ -#if HAVE_ALLOCA - /* Allocate one more word, used to determine the address to pass to freea(), - and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ - uintptr_t alignment2_mask = 2 * sa_alignment_max - 1; - int plus = sizeof (small_t) + alignment2_mask; - idx_t nplus; - if (!ckd_add (&nplus, n, plus) && !xalloc_oversized (nplus, 1)) - { - char *mem = (char *) malloc (nplus); - - if (mem != NULL) - { - uintptr_t umem = (uintptr_t) mem; - /* The ckd_add avoids signed integer overflow on - theoretical platforms where UINTPTR_MAX <= INT_MAX. */ - uintptr_t umemplus; - ckd_add (&umemplus, umem, sizeof (small_t) + sa_alignment_max - 1); - idx_t offset = (umemplus - umemplus % (2 * sa_alignment_max) - + sa_alignment_max - umem); - void *p = mem + offset; - /* Here p >= mem + sizeof (small_t), - and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 - hence p + n <= mem + nplus. - So, the memory range [p, p+n) lies in the allocated memory range - [mem, mem + nplus). */ - small_t *sp = p; -# if defined __CHERI_PURE_CAPABILITY__ - sp[-1] = umem; - p = (char *) cheri_bounds_set ((char *) p - sizeof (small_t), - sizeof (small_t) + n) - + sizeof (small_t); -# else - sp[-1] = offset; -# endif - /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ - return p; - } - } - /* Out of memory. */ - return NULL; -#else -# if !MALLOC_0_IS_NONNULL - if (n == 0) - n = 1; -# endif - return malloc (n); -#endif -} - -#if HAVE_ALLOCA -void -freea (void *p) -{ - /* Check argument. */ - uintptr_t u = (uintptr_t) p; - if (u & (sa_alignment_max - 1)) - { - /* p was not the result of a malloca() call. Invalid argument. */ - abort (); - } - /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ - if (u & sa_alignment_max) - { - char *cp = p; - small_t *sp = p; -# if defined __CHERI_PURE_CAPABILITY__ - void *mem = sp[-1]; -# else - void *mem = cp - sp[-1]; -# endif - free (mem); - } -} -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/jni/parted/libgnulib/lib/mbrtoc32.c b/jni/parted/libgnulib/lib/mbrtoc32.c deleted file mode 100755 index 771c857..0000000 --- a/jni/parted/libgnulib/lib/mbrtoc32.c +++ /dev/null @@ -1,288 +0,0 @@ -/* Convert multibyte character to 32-bit wide character. - Copyright (C) 2020-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2020. */ - -#include - -/* Specification. */ -#include - -#include "attribute.h" - -#include -#include - -#if GL_CHAR32_T_IS_UNICODE -# include "lc-charset-unicode.h" -#endif - -#if GNULIB_defined_mbstate_t /* AIX, IRIX */ -/* Implement mbrtoc32() on top of mbtowc() for the non-UTF-8 locales - and directly for the UTF-8 locales. */ - -/* Note: On AIX (64-bit) we can implement mbrtoc32 in two equivalent ways: - - in a way that parallels the override of mbrtowc; this is the code branch - here; - - in a way that invokes the overridden mbrtowc; this would be the #else - branch below. - They are equivalent. */ - -# if AVOID_ANY_THREADS - -/* The option '--disable-threads' explicitly requests no locking. */ - -# elif defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# elif HAVE_PTHREAD_API - -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif - -# include "lc-charset-dispatch.h" -# include "mbtowc-lock.h" - -static_assert (sizeof (mbstate_t) >= 4); -static char internal_state[4]; - -size_t -mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps) -{ -# define FITS_IN_CHAR_TYPE(wc) 1 -# include "mbrtowc-impl.h" -} - -#else /* glibc, macOS, FreeBSD, NetBSD, OpenBSD, HP-UX, Solaris, Cygwin, mingw, MSVC, Minix, Android */ - -/* Implement mbrtoc32() based on the original mbrtoc32() or on mbrtowc(). */ - -# include - -# include "localcharset.h" -# include "streq.h" - -# if MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ -# include "hard-locale.h" -# include -# endif - -static mbstate_t internal_state; - -size_t -mbrtoc32 (char32_t *pwc, const char *s, size_t n, mbstate_t *ps) -# undef mbrtoc32 -{ - /* It's simpler to handle the case s == NULL upfront, than to worry about - this case later, before every test of pwc and n. */ - if (s == NULL) - { - pwc = NULL; - s = ""; - n = 1; - } - -# if MBRTOC32_EMPTY_INPUT_BUG || _GL_SMALL_WCHAR_T - if (n == 0) - return (size_t) -2; -# endif - - if (ps == NULL) - ps = &internal_state; - -# if HAVE_WORKING_MBRTOC32 && HAVE_WORKING_C32RTOMB && !MBRTOC32_MULTIBYTE_LOCALE_BUG - /* mbrtoc32() may produce different values for wc than mbrtowc(). Therefore - use mbrtoc32(). */ - -# if defined _WIN32 && !defined __CYGWIN__ - char32_t wc; - size_t ret = mbrtoc32 (&wc, s, n, ps); - if (ret < (size_t) -2 && pwc != NULL) - *pwc = wc; -# else - size_t ret = mbrtoc32 (pwc, s, n, ps); -# endif - -# if GNULIB_MBRTOC32_REGULAR - /* Verify that mbrtoc32 is regular. */ - if (ret < (size_t) -3 && ! mbsinit (ps)) - /* This occurs on glibc 2.36. */ - mbszero (ps); - if (ret == (size_t) -3) - abort (); -# endif - -# if MBRTOC32_IN_C_LOCALE_MAYBE_EILSEQ - if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE)) - { - if (pwc != NULL) - *pwc = (unsigned char) *s; - return 1; - } -# endif - - return ret; - -# elif _GL_SMALL_WCHAR_T - - /* Special-case all encodings that may produce wide character values - > WCHAR_MAX. */ - const char *encoding = locale_charset (); - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) - { - /* Special-case the UTF-8 encoding. Assume that the wide-character - encoding in a UTF-8 locale is UCS-2 or, equivalently, UTF-16. */ - /* Here n > 0. */ - char *pstate = (char *)ps; - size_t nstate = pstate[0]; - char buf[4]; - const char *p; - size_t m; - int res; - - switch (nstate) - { - case 0: - p = s; - m = n; - break; - case 3: - buf[2] = pstate[3]; - FALLTHROUGH; - case 2: - buf[1] = pstate[2]; - FALLTHROUGH; - case 1: - buf[0] = pstate[1]; - p = buf; - m = nstate; - buf[m++] = s[0]; - if (n >= 2 && m < 4) - { - buf[m++] = s[1]; - if (n >= 3 && m < 4) - buf[m++] = s[2]; - } - break; - default: - errno = EINVAL; - return (size_t)(-1); - } - - /* Here m > 0. */ - - { -# define FITS_IN_CHAR_TYPE(wc) 1 -# include "mbrtowc-impl-utf8.h" - } - - success: - if (nstate >= (res > 0 ? res : 1)) - abort (); - res -= nstate; - /* Set *ps to an initial state. */ -# if defined _WIN32 && !defined __CYGWIN__ - /* Native Windows. */ - /* MSVC defines 'mbstate_t' as an 8-byte struct; the first 4 bytes matter. - On mingw, 'mbstate_t' is sometimes defined as 'int', sometimes defined - as an 8-byte struct, of which the first 4 bytes matter. */ - *(unsigned int *)pstate = 0; -# elif defined __CYGWIN__ - /* Cygwin defines 'mbstate_t' as an 8-byte struct; the first 4 bytes - matter. */ - ps->__count = 0; -# else - pstate[0] = 0; -# endif - return res; - - incomplete: - { - size_t k = nstate; - /* Here 0 <= k < m < 4. */ - pstate[++k] = s[0]; - if (k < m) - { - pstate[++k] = s[1]; - if (k < m) - pstate[++k] = s[2]; - } - if (k != m) - abort (); - } - pstate[0] = m; - return (size_t)(-2); - - invalid: - errno = EILSEQ; - /* The conversion state is undefined, says POSIX. */ - return (size_t)(-1); - } - else - { - wchar_t wc; - size_t ret = mbrtowc (&wc, s, n, ps); - if (ret < (size_t) -2 && pwc != NULL) - *pwc = wc; - return ret; - } - -# else - - /* char32_t and wchar_t are equivalent. Use mbrtowc(). */ - wchar_t wc; - size_t ret = mbrtowc (&wc, s, n, ps); - -# if GNULIB_MBRTOC32_REGULAR - /* Ensure that mbrtoc32 is regular. */ - if (ret < (size_t) -2 && ! mbsinit (ps)) - /* This occurs on glibc 2.12. */ - mbszero (ps); -# endif - -# if GL_CHAR32_T_IS_UNICODE && GL_CHAR32_T_VS_WCHAR_T_NEEDS_CONVERSION - if (ret < (size_t) -2 && wc != 0) - { - wc = locale_encoding_to_unicode (wc); - if (wc == 0) - { - ret = (size_t) -1; - errno = EILSEQ; - } - } -# endif - if (ret < (size_t) -2 && pwc != NULL) - *pwc = wc; - return ret; - -# endif -} - -#endif diff --git a/jni/parted/libgnulib/lib/mbrtowc.c b/jni/parted/libgnulib/lib/mbrtowc.c deleted file mode 100755 index 8a1646d..0000000 --- a/jni/parted/libgnulib/lib/mbrtowc.c +++ /dev/null @@ -1,161 +0,0 @@ -/* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if GNULIB_defined_mbstate_t -/* Implement mbrtowc() on top of mbtowc() for the non-UTF-8 locales - and directly for the UTF-8 locales. */ - -# include -# include -# include - -# if AVOID_ANY_THREADS - -/* The option '--disable-threads' explicitly requests no locking. */ - -# elif defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# elif HAVE_PTHREAD_API - -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif - -# include "attribute.h" -# include "lc-charset-dispatch.h" -# include "mbtowc-lock.h" - -static_assert (sizeof (mbstate_t) >= 4); -static char internal_state[4]; - -size_t -mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) -{ -# define FITS_IN_CHAR_TYPE(wc) ((wc) <= WCHAR_MAX) -# include "mbrtowc-impl.h" -} - -#else -/* Override the system's mbrtowc() function. */ - -# if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ -# include "hard-locale.h" -# include -# endif - -# undef mbrtowc - -size_t -rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) -{ - size_t ret; - wchar_t wc; - -# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG - if (s == NULL) - { - pwc = NULL; - s = ""; - n = 1; - } -# endif - -# if MBRTOWC_EMPTY_INPUT_BUG - if (n == 0) - return (size_t) -2; -# endif - - if (! pwc) - pwc = &wc; - -# if MBRTOWC_RETVAL_BUG - { - static mbstate_t internal_state; - - /* Override mbrtowc's internal state. We cannot call mbsinit() on the - hidden internal state, but we can call it on our variable. */ - if (ps == NULL) - ps = &internal_state; - - if (!mbsinit (ps)) - { - /* Parse the rest of the multibyte character byte for byte. */ - size_t count = 0; - for (; n > 0; s++, n--) - { - ret = mbrtowc (&wc, s, 1, ps); - - if (ret == (size_t)(-1)) - return (size_t)(-1); - count++; - if (ret != (size_t)(-2)) - { - /* The multibyte character has been completed. */ - *pwc = wc; - return (wc == 0 ? 0 : count); - } - } - return (size_t)(-2); - } - } -# endif - -# if MBRTOWC_STORES_INCOMPLETE_BUG - ret = mbrtowc (&wc, s, n, ps); - if (ret < (size_t) -2 && pwc != NULL) - *pwc = wc; -# else - ret = mbrtowc (pwc, s, n, ps); -# endif - -# if MBRTOWC_NUL_RETVAL_BUG - if (ret < (size_t) -2 && !*pwc) - return 0; -# endif - -# if MBRTOWC_IN_C_LOCALE_MAYBE_EILSEQ - if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE)) - { - unsigned char uc = *s; - *pwc = uc; - return 1; - } -# endif - - return ret; -} - -#endif diff --git a/jni/parted/libgnulib/lib/mbszero.c b/jni/parted/libgnulib/lib/mbszero.c deleted file mode 100755 index 25af284..0000000 --- a/jni/parted/libgnulib/lib/mbszero.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Put an mbstate_t into an initial conversion state. - Copyright (C) 2023-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2023. */ - -#include - -#define IN_MBSZERO -/* Specification and implementation. */ -#include diff --git a/jni/parted/libgnulib/lib/nl_langinfo.c b/jni/parted/libgnulib/lib/nl_langinfo.c deleted file mode 100755 index 64ff93b..0000000 --- a/jni/parted/libgnulib/lib/nl_langinfo.c +++ /dev/null @@ -1,585 +0,0 @@ -/* nl_langinfo() replacement: query locale dependent information. - - Copyright (C) 2007-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include -#if defined _WIN32 && ! defined __CYGWIN__ -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include -# include -#endif - -#if REPLACE_NL_LANGINFO && !NL_LANGINFO_MTSAFE - -# if AVOID_ANY_THREADS - -/* The option '--disable-threads' explicitly requests no locking. */ - -# elif defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# elif HAVE_PTHREAD_API - -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif - -#endif - -/* nl_langinfo() must be multithread-safe. To achieve this without using - thread-local storage: - 1. We use a specific static buffer for each possible argument. - So that different threads can call nl_langinfo with different arguments, - without interfering. - 2. We use a simple strcpy or memcpy to fill this static buffer. Filling it - through, for example, strcpy + strcat would not be guaranteed to leave - the buffer's contents intact if another thread is currently accessing - it. If necessary, the contents is first assembled in a stack-allocated - buffer. */ - -#if !REPLACE_NL_LANGINFO || GNULIB_defined_CODESET -/* Return the codeset of the current locale, if this is easily deducible. - Otherwise, return "". */ -static char * -ctype_codeset (void) -{ - /* This function is only used on platforms which don't have uselocale(). - Therefore we don't need to look at the per-thread locale first, here. */ - static char result[2 + 10 + 1]; - char buf[2 + 10 + 1]; - char locale[SETLOCALE_NULL_MAX]; - char *codeset; - size_t codesetlen; - - if (setlocale_null_r (LC_CTYPE, locale, sizeof (locale))) - locale[0] = '\0'; - - codeset = buf; - codeset[0] = '\0'; - - if (locale[0]) - { - /* If the locale name contains an encoding after the dot, return it. */ - char *dot = strchr (locale, '.'); - - if (dot) - { - /* Look for the possible @... trailer and remove it, if any. */ - char *codeset_start = dot + 1; - char const *modifier = strchr (codeset_start, '@'); - - if (! modifier) - codeset = codeset_start; - else - { - codesetlen = modifier - codeset_start; - if (codesetlen < sizeof buf) - { - codeset = memcpy (buf, codeset_start, codesetlen); - codeset[codesetlen] = '\0'; - } - } - } - } - -# if defined _WIN32 && ! defined __CYGWIN__ - /* If setlocale is successful, it returns the number of the - codepage, as a string. Otherwise, fall back on Windows API - GetACP, which returns the locale's codepage as a number (although - this doesn't change according to what the 'setlocale' call specified). - Either way, prepend "CP" to make it a valid codeset name. */ - codesetlen = strlen (codeset); - if (0 < codesetlen && codesetlen < sizeof buf - 2) - memmove (buf + 2, codeset, codesetlen + 1); - else - sprintf (buf + 2, "%u", GetACP ()); - /* For a locale name such as "French_France.65001", in Windows 10, - setlocale now returns "French_France.utf8" instead. */ - if (strcmp (buf + 2, "65001") == 0 || strcmp (buf + 2, "utf8") == 0) - return (char *) "UTF-8"; - else - { - memcpy (buf, "CP", 2); - strcpy (result, buf); - return result; - } -# else - strcpy (result, codeset); - return result; -#endif -} -#endif - - -#if REPLACE_NL_LANGINFO - -/* Override nl_langinfo with support for added nl_item values. */ - -# undef nl_langinfo - -/* Without locking, on Solaris 11.3, test-nl_langinfo-mt fails, with message - "thread5 disturbed by threadN!", even when threadN invokes only - nl_langinfo (CODESET); - nl_langinfo (CRNCYSTR); - Similarly on Solaris 10. */ - -# if !NL_LANGINFO_MTSAFE /* Solaris */ - -# define ITEMS (MAXSTRMSG + 1) -# define MAX_RESULT_LEN 80 - -static char * -nl_langinfo_unlocked (nl_item item) -{ - static char result[ITEMS][MAX_RESULT_LEN]; - - /* The result of nl_langinfo is in storage that can be overwritten by - other calls to nl_langinfo. */ - char *tmp = nl_langinfo (item); - if (item >= 0 && item < ITEMS && tmp != NULL) - { - size_t tmp_len = strlen (tmp); - if (tmp_len < MAX_RESULT_LEN) - strcpy (result[item], tmp); - else - { - /* Produce a truncated result. Oh well... */ - result[item][MAX_RESULT_LEN - 1] = '\0'; - memcpy (result[item], tmp, MAX_RESULT_LEN - 1); - } - return result[item]; - } - else - return tmp; -} - -/* Use a lock, so that no two threads can invoke nl_langinfo_unlocked - at the same time. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_nl_langinfo_lock - -# if AVOID_ANY_THREADS - -/* The option '--disable-threads' explicitly requests no locking. */ -# define nl_langinfo_with_lock nl_langinfo_unlocked - -# elif defined _WIN32 && !defined __CYGWIN__ - -extern __declspec(dllimport) CRITICAL_SECTION *gl_get_nl_langinfo_lock (void); - -static char * -nl_langinfo_with_lock (nl_item item) -{ - CRITICAL_SECTION *lock = gl_get_nl_langinfo_lock (); - char *ret; - - EnterCriticalSection (lock); - ret = nl_langinfo_unlocked (item); - LeaveCriticalSection (lock); - - return ret; -} - -# elif HAVE_PTHREAD_API - -extern -# if defined _WIN32 || defined __CYGWIN__ - __declspec(dllimport) -# endif - pthread_mutex_t *gl_get_nl_langinfo_lock (void); - -# if HAVE_WEAK_SYMBOLS /* musl libc, FreeBSD, NetBSD, OpenBSD, Haiku */ - - /* Avoid the need to link with '-lpthread'. */ -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock - - /* Determine whether libpthread is in use. */ -# pragma weak pthread_mutexattr_gettype - /* See the comments in lock.h. */ -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) - -# else -# define pthread_in_use() 1 -# endif - -static char * -nl_langinfo_with_lock (nl_item item) -{ - if (pthread_in_use()) - { - pthread_mutex_t *lock = gl_get_nl_langinfo_lock (); - char *ret; - - if (pthread_mutex_lock (lock)) - abort (); - ret = nl_langinfo_unlocked (item); - if (pthread_mutex_unlock (lock)) - abort (); - - return ret; - } - else - return nl_langinfo_unlocked (item); -} - -# elif HAVE_THREADS_H - -extern mtx_t *gl_get_nl_langinfo_lock (void); - -static char * -nl_langinfo_with_lock (nl_item item) -{ - mtx_t *lock = gl_get_nl_langinfo_lock (); - char *ret; - - if (mtx_lock (lock) != thrd_success) - abort (); - ret = nl_langinfo_unlocked (item); - if (mtx_unlock (lock) != thrd_success) - abort (); - - return ret; -} - -# endif - -# else - -/* On other platforms, no lock is needed. */ -# define nl_langinfo_with_lock nl_langinfo - -# endif - -char * -rpl_nl_langinfo (nl_item item) -{ - switch (item) - { -# if GNULIB_defined_CODESET - case CODESET: - return ctype_codeset (); -# endif -# if GNULIB_defined_T_FMT_AMPM - case T_FMT_AMPM: - return (char *) "%I:%M:%S %p"; -# endif -# if GNULIB_defined_ALTMON - case ALTMON_1: - case ALTMON_2: - case ALTMON_3: - case ALTMON_4: - case ALTMON_5: - case ALTMON_6: - case ALTMON_7: - case ALTMON_8: - case ALTMON_9: - case ALTMON_10: - case ALTMON_11: - case ALTMON_12: - /* We don't ship the appropriate localizations with gnulib. Therefore, - treat ALTMON_i like MON_i. */ - item = item - ALTMON_1 + MON_1; - break; -# endif -# if GNULIB_defined_ERA - case ERA: - /* The format is not standardized. In glibc it is a sequence of strings - of the form "direction:offset:start_date:end_date:era_name:era_format" - with an empty string at the end. */ - return (char *) ""; - case ERA_D_FMT: - /* The %Ex conversion in strftime behaves like %x if the locale does not - have an alternative time format. */ - item = D_FMT; - break; - case ERA_D_T_FMT: - /* The %Ec conversion in strftime behaves like %c if the locale does not - have an alternative time format. */ - item = D_T_FMT; - break; - case ERA_T_FMT: - /* The %EX conversion in strftime behaves like %X if the locale does not - have an alternative time format. */ - item = T_FMT; - break; - case ALT_DIGITS: - /* The format is not standardized. In glibc it is a sequence of 10 - strings, appended in memory. */ - return (char *) "\0\0\0\0\0\0\0\0\0\0"; -# endif -# if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS - case YESEXPR: - return (char *) "^[yY]"; - case NOEXPR: - return (char *) "^[nN]"; -# endif - default: - break; - } - return nl_langinfo_with_lock (item); -} - -#else - -/* Provide nl_langinfo from scratch, either for native MS-Windows, or - for old Unix platforms without locales, such as Linux libc5 or - BeOS. */ - -# include - -char * -nl_langinfo (nl_item item) -{ - char buf[100]; - struct tm tmm = { 0 }; - - switch (item) - { - /* nl_langinfo items of the LC_CTYPE category */ - case CODESET: - { - char *codeset = ctype_codeset (); - if (*codeset) - return codeset; - } -# ifdef __BEOS__ - return (char *) "UTF-8"; -# else - return (char *) "ISO-8859-1"; -# endif - /* nl_langinfo items of the LC_NUMERIC category */ - case RADIXCHAR: - return localeconv () ->decimal_point; - case THOUSEP: - return localeconv () ->thousands_sep; -# ifdef GROUPING - case GROUPING: - return localeconv () ->grouping; -# endif - /* nl_langinfo items of the LC_TIME category. - TODO: Really use the locale. */ - case D_T_FMT: - case ERA_D_T_FMT: - return (char *) "%a %b %e %H:%M:%S %Y"; - case D_FMT: - case ERA_D_FMT: - return (char *) "%m/%d/%y"; - case T_FMT: - case ERA_T_FMT: - return (char *) "%H:%M:%S"; - case T_FMT_AMPM: - return (char *) "%I:%M:%S %p"; - case AM_STR: - { - static char result[80]; - if (!strftime (buf, sizeof result, "%p", &tmm)) - return (char *) "AM"; - strcpy (result, buf); - return result; - } - case PM_STR: - { - static char result[80]; - tmm.tm_hour = 12; - if (!strftime (buf, sizeof result, "%p", &tmm)) - return (char *) "PM"; - strcpy (result, buf); - return result; - } - case DAY_1: - case DAY_2: - case DAY_3: - case DAY_4: - case DAY_5: - case DAY_6: - case DAY_7: - { - static char result[7][50]; - static char const days[][sizeof "Wednesday"] = { - "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", - "Friday", "Saturday" - }; - tmm.tm_wday = item - DAY_1; - if (!strftime (buf, sizeof result[0], "%A", &tmm)) - return (char *) days[item - DAY_1]; - strcpy (result[item - DAY_1], buf); - return result[item - DAY_1]; - } - case ABDAY_1: - case ABDAY_2: - case ABDAY_3: - case ABDAY_4: - case ABDAY_5: - case ABDAY_6: - case ABDAY_7: - { - static char result[7][30]; - static char const abdays[][sizeof "Sun"] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" - }; - tmm.tm_wday = item - ABDAY_1; - if (!strftime (buf, sizeof result[0], "%a", &tmm)) - return (char *) abdays[item - ABDAY_1]; - strcpy (result[item - ABDAY_1], buf); - return result[item - ABDAY_1]; - } - { - static char const months[][sizeof "September"] = { - "January", "February", "March", "April", "May", "June", "July", - "August", "September", "October", "November", "December" - }; - case MON_1: - case MON_2: - case MON_3: - case MON_4: - case MON_5: - case MON_6: - case MON_7: - case MON_8: - case MON_9: - case MON_10: - case MON_11: - case MON_12: - { - static char result[12][50]; - tmm.tm_mon = item - MON_1; - if (!strftime (buf, sizeof result[0], "%B", &tmm)) - return (char *) months[item - MON_1]; - strcpy (result[item - MON_1], buf); - return result[item - MON_1]; - } - case ALTMON_1: - case ALTMON_2: - case ALTMON_3: - case ALTMON_4: - case ALTMON_5: - case ALTMON_6: - case ALTMON_7: - case ALTMON_8: - case ALTMON_9: - case ALTMON_10: - case ALTMON_11: - case ALTMON_12: - { - static char result[12][50]; - tmm.tm_mon = item - ALTMON_1; - /* The platforms without nl_langinfo() don't support strftime with - %OB. We don't even need to try. */ - #if 0 - if (!strftime (buf, sizeof result[0], "%OB", &tmm)) - #endif - if (!strftime (buf, sizeof result[0], "%B", &tmm)) - return (char *) months[item - ALTMON_1]; - strcpy (result[item - ALTMON_1], buf); - return result[item - ALTMON_1]; - } - } - case ABMON_1: - case ABMON_2: - case ABMON_3: - case ABMON_4: - case ABMON_5: - case ABMON_6: - case ABMON_7: - case ABMON_8: - case ABMON_9: - case ABMON_10: - case ABMON_11: - case ABMON_12: - { - static char result[12][30]; - static char const abmonths[][sizeof "Jan"] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", - "Aug", "Sep", "Oct", "Nov", "Dec" - }; - tmm.tm_mon = item - ABMON_1; - if (!strftime (buf, sizeof result[0], "%b", &tmm)) - return (char *) abmonths[item - ABMON_1]; - strcpy (result[item - ABMON_1], buf); - return result[item - ABMON_1]; - } - case ERA: - return (char *) ""; - case ALT_DIGITS: - return (char *) "\0\0\0\0\0\0\0\0\0\0"; - /* nl_langinfo items of the LC_MONETARY category. */ - case CRNCYSTR: - return localeconv () ->currency_symbol; -# ifdef INT_CURR_SYMBOL - case INT_CURR_SYMBOL: - return localeconv () ->int_curr_symbol; - case MON_DECIMAL_POINT: - return localeconv () ->mon_decimal_point; - case MON_THOUSANDS_SEP: - return localeconv () ->mon_thousands_sep; - case MON_GROUPING: - return localeconv () ->mon_grouping; - case POSITIVE_SIGN: - return localeconv () ->positive_sign; - case NEGATIVE_SIGN: - return localeconv () ->negative_sign; - case FRAC_DIGITS: - return & localeconv () ->frac_digits; - case INT_FRAC_DIGITS: - return & localeconv () ->int_frac_digits; - case P_CS_PRECEDES: - return & localeconv () ->p_cs_precedes; - case N_CS_PRECEDES: - return & localeconv () ->n_cs_precedes; - case P_SEP_BY_SPACE: - return & localeconv () ->p_sep_by_space; - case N_SEP_BY_SPACE: - return & localeconv () ->n_sep_by_space; - case P_SIGN_POSN: - return & localeconv () ->p_sign_posn; - case N_SIGN_POSN: - return & localeconv () ->n_sign_posn; -# endif - /* nl_langinfo items of the LC_MESSAGES category - TODO: Really use the locale. */ - case YESEXPR: - return (char *) "^[yY]"; - case NOEXPR: - return (char *) "^[nN]"; - default: - return (char *) ""; - } -} - -#endif diff --git a/jni/parted/libgnulib/lib/progname.c b/jni/parted/libgnulib/lib/progname.c deleted file mode 100755 index db17f5b..0000000 --- a/jni/parted/libgnulib/lib/progname.c +++ /dev/null @@ -1,92 +0,0 @@ -/* Program name management. - Copyright (C) 2001-2003, 2005-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - - -#include - -/* Specification. */ -#undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */ -#include "progname.h" - -#include /* get program_invocation_name declaration */ -#include -#include -#include - - -/* String containing name the program is called with. - To be initialized by main(). */ -const char *program_name = NULL; - -/* Set program_name, based on argv[0]. - argv0 must be a string allocated with indefinite extent, and must not be - modified after this call. */ -void -set_program_name (const char *argv0) -{ - /* libtool creates a temporary executable whose name is sometimes prefixed - with "lt-" (depends on the platform). It also makes argv[0] absolute. - But the name of the temporary executable is a detail that should not be - visible to the end user and to the test suite. - Remove this "/.libs/" or "/.libs/lt-" prefix here. */ - const char *slash; - const char *base; - - /* Sanity check. POSIX requires the invoking process to pass a non-NULL - argv[0]. */ - if (argv0 == NULL) - { - /* It's a bug in the invoking program. Help diagnosing it. */ - fputs ("A NULL argv[0] was passed through an exec system call.\n", - stderr); - abort (); - } - - slash = strrchr (argv0, '/'); - base = (slash != NULL ? slash + 1 : argv0); - if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0) - { - argv0 = base; - if (strncmp (base, "lt-", 3) == 0) - { - argv0 = base + 3; - /* On glibc systems, remove the "lt-" prefix from the variable - program_invocation_short_name. */ -#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME - program_invocation_short_name = (char *) argv0; -#endif - } - } - - /* But don't strip off a leading / in general, because when the user - runs - /some/hidden/place/bin/cp foo foo - he should get the error message - /some/hidden/place/bin/cp: `foo' and `foo' are the same file - not - cp: `foo' and `foo' are the same file - */ - - program_name = argv0; - - /* On glibc systems, the error() function comes from libc and uses the - variable program_invocation_name, not program_name. So set this variable - as well. */ -#if HAVE_DECL_PROGRAM_INVOCATION_NAME - program_invocation_name = (char *) argv0; -#endif -} diff --git a/jni/parted/libgnulib/lib/quotearg.c b/jni/parted/libgnulib/lib/quotearg.c deleted file mode 100755 index 8e359be..0000000 --- a/jni/parted/libgnulib/lib/quotearg.c +++ /dev/null @@ -1,1084 +0,0 @@ -/* quotearg.c - quote arguments for output - - Copyright (C) 1998-2002, 2004-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Paul Eggert */ - -#include - -/* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that - the quoting_options_from_style function might be candidate for - attribute 'pure' */ -#if _GL_GNUC_PREREQ (4, 6) -# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" -#endif - -#include "quotearg.h" -#include "quote.h" - -#include "attribute.h" -#include "minmax.h" -#include "xalloc.h" -#include "c-strcaseeq.h" -#include "localcharset.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "gettext.h" -#define _(msgid) gettext (msgid) -#define N_(msgid) msgid - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -#define INT_BITS (sizeof (int) * CHAR_BIT) - -struct quoting_options -{ - /* Basic quoting style. */ - enum quoting_style style; - - /* Additional flags. Bitwise combination of enum quoting_flags. */ - int flags; - - /* Quote the characters indicated by this bit vector even if the - quoting style would not normally require them to be quoted. */ - unsigned int quote_these_too[(UCHAR_MAX / INT_BITS) + 1]; - - /* The left quote for custom_quoting_style. */ - char const *left_quote; - - /* The right quote for custom_quoting_style. */ - char const *right_quote; -}; - -/* Names of quoting styles. */ -char const *const quoting_style_args[] = -{ - "literal", - "shell", - "shell-always", - "shell-escape", - "shell-escape-always", - "c", - "c-maybe", - "escape", - "locale", - "clocale", - 0 -}; - -/* Correspondences to quoting style names. */ -enum quoting_style const quoting_style_vals[] = -{ - literal_quoting_style, - shell_quoting_style, - shell_always_quoting_style, - shell_escape_quoting_style, - shell_escape_always_quoting_style, - c_quoting_style, - c_maybe_quoting_style, - escape_quoting_style, - locale_quoting_style, - clocale_quoting_style -}; - -/* The default quoting options. */ -static struct quoting_options default_quoting_options; - -/* Allocate a new set of quoting options, with contents initially identical - to O if O is not null, or to the default if O is null. - It is the caller's responsibility to free the result. */ -struct quoting_options * -clone_quoting_options (struct quoting_options *o) -{ - int e = errno; - struct quoting_options *p = xmemdup (o ? o : &default_quoting_options, - sizeof *o); - errno = e; - return p; -} - -/* Get the value of O's quoting style. If O is null, use the default. */ -enum quoting_style -get_quoting_style (struct quoting_options const *o) -{ - return (o ? o : &default_quoting_options)->style; -} - -/* In O (or in the default if O is null), - set the value of the quoting style to S. */ -void -set_quoting_style (struct quoting_options *o, enum quoting_style s) -{ - (o ? o : &default_quoting_options)->style = s; -} - -/* In O (or in the default if O is null), - set the value of the quoting options for character C to I. - Return the old value. Currently, the only values defined for I are - 0 (the default) and 1 (which means to quote the character even if - it would not otherwise be quoted). */ -int -set_char_quoting (struct quoting_options *o, char c, int i) -{ - unsigned char uc = c; - unsigned int *p = - (o ? o : &default_quoting_options)->quote_these_too + uc / INT_BITS; - int shift = uc % INT_BITS; - int r = (*p >> shift) & 1; - *p ^= ((i & 1) ^ r) << shift; - return r; -} - -/* In O (or in the default if O is null), - set the value of the quoting options flag to I, which can be a - bitwise combination of enum quoting_flags, or 0 for default - behavior. Return the old value. */ -int -set_quoting_flags (struct quoting_options *o, int i) -{ - int r; - if (!o) - o = &default_quoting_options; - r = o->flags; - o->flags = i; - return r; -} - -void -set_custom_quoting (struct quoting_options *o, - char const *left_quote, char const *right_quote) -{ - if (!o) - o = &default_quoting_options; - o->style = custom_quoting_style; - if (!left_quote || !right_quote) - abort (); - o->left_quote = left_quote; - o->right_quote = right_quote; -} - -/* Return quoting options for STYLE, with no extra quoting. */ -static struct quoting_options /* NOT PURE!! */ -quoting_options_from_style (enum quoting_style style) -{ - struct quoting_options o = { literal_quoting_style, 0, { 0 }, NULL, NULL }; - if (style == custom_quoting_style) - abort (); - o.style = style; - return o; -} - -/* MSGID approximates a quotation mark. Return its translation if it - has one; otherwise, return either it or "\"", depending on S. - - S is either clocale_quoting_style or locale_quoting_style. */ -static char const * -gettext_quote (char const *msgid, enum quoting_style s) -{ - char const *translation = _(msgid); - char const *locale_code; - - if (translation != msgid) - return translation; - - /* For UTF-8 and GB-18030, use single quotes U+2018 and U+2019. - Here is a list of other locales that include U+2018 and U+2019: - - ISO-8859-7 0xA1 KOI8-T 0x91 - CP869 0x8B CP874 0x91 - CP932 0x81 0x65 CP936 0xA1 0xAE - CP949 0xA1 0xAE CP950 0xA1 0xA5 - CP1250 0x91 CP1251 0x91 - CP1252 0x91 CP1253 0x91 - CP1254 0x91 CP1255 0x91 - CP1256 0x91 CP1257 0x91 - EUC-JP 0xA1 0xC6 EUC-KR 0xA1 0xAE - EUC-TW 0xA1 0xE4 BIG5 0xA1 0xA5 - BIG5-HKSCS 0xA1 0xA5 EUC-CN 0xA1 0xAE - GBK 0xA1 0xAE Georgian-PS 0x91 - PT154 0x91 - - None of these is still in wide use; using iconv is overkill. */ - locale_code = locale_charset (); - if (STRCASEEQ (locale_code, "UTF-8", 'U','T','F','-','8',0,0,0,0)) - return msgid[0] == '`' ? "\xe2\x80\x98": "\xe2\x80\x99"; - if (STRCASEEQ (locale_code, "GB18030", 'G','B','1','8','0','3','0',0,0)) - return msgid[0] == '`' ? "\xa1\ae": "\xa1\xaf"; - - return (s == clocale_quoting_style ? "\"" : "'"); -} - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using QUOTING_STYLE, FLAGS, and - QUOTE_THESE_TOO to control quoting. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is SIZE_MAX, use the string length of the argument for ARGSIZE. - - This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG, - ARGSIZE, O), except it breaks O into its component pieces and is - not careful about errno. */ - -static size_t -quotearg_buffer_restyled (char *buffer, size_t buffersize, - char const *arg, size_t argsize, - enum quoting_style quoting_style, int flags, - unsigned int const *quote_these_too, - char const *left_quote, - char const *right_quote) -{ - size_t i; - size_t len = 0; - size_t orig_buffersize = 0; - char const *quote_string = 0; - size_t quote_string_len = 0; - bool backslash_escapes = false; - bool unibyte_locale = MB_CUR_MAX == 1; - bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0; - bool encountered_single_quote = false; - bool all_c_and_shell_quote_compat = true; - -#define STORE(c) \ - do \ - { \ - if (len < buffersize) \ - buffer[len] = (c); \ - len++; \ - } \ - while (0) - -#define START_ESC() \ - do \ - { \ - if (elide_outer_quotes) \ - goto force_outer_quoting_style; \ - escaping = true; \ - if (quoting_style == shell_always_quoting_style \ - && ! pending_shell_escape_end) \ - { \ - STORE ('\''); \ - STORE ('$'); \ - STORE ('\''); \ - pending_shell_escape_end = true; \ - } \ - STORE ('\\'); \ - } \ - while (0) - -#define END_ESC() \ - do \ - { \ - if (pending_shell_escape_end && ! escaping) \ - { \ - STORE ('\''); \ - STORE ('\''); \ - pending_shell_escape_end = false; \ - } \ - } \ - while (0) - - process_input: ; - bool pending_shell_escape_end = false; - - switch (quoting_style) - { - case c_maybe_quoting_style: - quoting_style = c_quoting_style; - elide_outer_quotes = true; - FALLTHROUGH; - case c_quoting_style: - if (!elide_outer_quotes) - STORE ('"'); - backslash_escapes = true; - quote_string = "\""; - quote_string_len = 1; - break; - - case escape_quoting_style: - backslash_escapes = true; - elide_outer_quotes = false; - break; - - case locale_quoting_style: - case clocale_quoting_style: - case custom_quoting_style: - { - if (quoting_style != custom_quoting_style) - { - /* TRANSLATORS: - Get translations for open and closing quotation marks. - The message catalog should translate "`" to a left - quotation mark suitable for the locale, and similarly for - "'". For example, a French Unicode local should translate - these to U+00AB (LEFT-POINTING DOUBLE ANGLE - QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE - QUOTATION MARK), respectively. - - If the catalog has no translation, we will try to - use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and - Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the - current locale is not Unicode, locale_quoting_style - will quote 'like this', and clocale_quoting_style will - quote "like this". You should always include translations - for "`" and "'" even if U+2018 and U+2019 are appropriate - for your locale. - - If you don't know what to put here, please see - - and use glyphs suitable for your language. */ - left_quote = gettext_quote (N_("`"), quoting_style); - right_quote = gettext_quote (N_("'"), quoting_style); - } - if (!elide_outer_quotes) - for (quote_string = left_quote; *quote_string; quote_string++) - STORE (*quote_string); - backslash_escapes = true; - quote_string = right_quote; - quote_string_len = strlen (quote_string); - } - break; - - case shell_escape_quoting_style: - backslash_escapes = true; - FALLTHROUGH; - case shell_quoting_style: - elide_outer_quotes = true; - FALLTHROUGH; - case shell_escape_always_quoting_style: - if (!elide_outer_quotes) - backslash_escapes = true; - FALLTHROUGH; - case shell_always_quoting_style: - quoting_style = shell_always_quoting_style; - if (!elide_outer_quotes) - STORE ('\''); - quote_string = "'"; - quote_string_len = 1; - break; - - case literal_quoting_style: - elide_outer_quotes = false; - break; - - default: - abort (); - } - - for (i = 0; ! (argsize == SIZE_MAX ? arg[i] == '\0' : i == argsize); i++) - { - unsigned char c; - unsigned char esc; - bool is_right_quote = false; - bool escaping = false; - bool c_and_shell_quote_compat = false; - - if (backslash_escapes - && quoting_style != shell_always_quoting_style - && quote_string_len - && (i + quote_string_len - <= (argsize == SIZE_MAX && 1 < quote_string_len - /* Use strlen only if we must: when argsize is SIZE_MAX, - and when the quote string is more than 1 byte long. - If we do call strlen, save the result. */ - ? (argsize = strlen (arg)) : argsize)) - && memcmp (arg + i, quote_string, quote_string_len) == 0) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - is_right_quote = true; - } - - c = arg[i]; - switch (c) - { - case '\0': - if (backslash_escapes) - { - START_ESC (); - /* If quote_string were to begin with digits, we'd need to - test for the end of the arg as well. However, it's - hard to imagine any locale that would use digits in - quotes, and set_custom_quoting is documented not to - accept them. Use only a single \0 with shell-escape - as currently digits are not printed within $'...' */ - if (quoting_style != shell_always_quoting_style - && i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9') - { - STORE ('0'); - STORE ('0'); - } - c = '0'; - /* We don't have to worry that this last '0' will be - backslash-escaped because, again, quote_string should - not start with it and because quote_these_too is - documented as not accepting it. */ - } - else if (flags & QA_ELIDE_NULL_BYTES) - continue; - break; - - case '?': - switch (quoting_style) - { - case shell_always_quoting_style: - if (elide_outer_quotes) - goto force_outer_quoting_style; - break; - - case c_quoting_style: - if ((flags & QA_SPLIT_TRIGRAPHS) - && i + 2 < argsize && arg[i + 1] == '?') - switch (arg[i + 2]) - { - case '!': case '\'': - case '(': case ')': case '-': case '/': - case '<': case '=': case '>': - /* Escape the second '?' in what would otherwise be - a trigraph. */ - if (elide_outer_quotes) - goto force_outer_quoting_style; - c = arg[i + 2]; - i += 2; - STORE ('?'); - STORE ('"'); - STORE ('"'); - STORE ('?'); - break; - - default: - break; - } - break; - - default: - break; - } - break; - - case '\a': esc = 'a'; goto c_escape; - case '\b': esc = 'b'; goto c_escape; - case '\f': esc = 'f'; goto c_escape; - case '\n': esc = 'n'; goto c_and_shell_escape; - case '\r': esc = 'r'; goto c_and_shell_escape; - case '\t': esc = 't'; goto c_and_shell_escape; - case '\v': esc = 'v'; goto c_escape; - case '\\': esc = c; - /* Never need to escape '\' in shell case. */ - if (quoting_style == shell_always_quoting_style) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - goto store_c; - } - - /* No need to escape the escape if we are trying to elide - outer quotes and nothing else is problematic. */ - if (backslash_escapes && elide_outer_quotes && quote_string_len) - goto store_c; - - c_and_shell_escape: - if (quoting_style == shell_always_quoting_style - && elide_outer_quotes) - goto force_outer_quoting_style; - /* fall through */ - c_escape: - if (backslash_escapes) - { - c = esc; - goto store_escape; - } - break; - - case '{': case '}': /* sometimes special if isolated */ - if (! (argsize == SIZE_MAX ? arg[1] == '\0' : argsize == 1)) - break; - FALLTHROUGH; - case '#': case '~': - if (i != 0) - break; - FALLTHROUGH; - case ' ': - c_and_shell_quote_compat = true; - FALLTHROUGH; - case '!': /* special in bash */ - case '"': case '$': case '&': - case '(': case ')': case '*': case ';': - case '<': - case '=': /* sometimes special in 0th or (with "set -k") later args */ - case '>': case '[': - case '^': /* special in old /bin/sh, e.g., Solaris 10 */ - case '`': case '|': - /* A shell special character. */ - if (quoting_style == shell_always_quoting_style - && elide_outer_quotes) - goto force_outer_quoting_style; - break; - - case '\'': - encountered_single_quote = true; - c_and_shell_quote_compat = true; - if (quoting_style == shell_always_quoting_style) - { - if (elide_outer_quotes) - goto force_outer_quoting_style; - - if (buffersize && ! orig_buffersize) - { - /* Just scan string to see if supports a more concise - representation, rather than writing a longer string - but returning the length of the more concise form. */ - orig_buffersize = buffersize; - buffersize = 0; - } - - STORE ('\''); - STORE ('\\'); - STORE ('\''); - pending_shell_escape_end = false; - } - break; - - case '%': case '+': case ',': case '-': case '.': case '/': - case '0': case '1': case '2': case '3': case '4': case '5': - case '6': case '7': case '8': case '9': case ':': - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': - case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': - case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': - case 'Y': case 'Z': case ']': case '_': case 'a': case 'b': - case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': - case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': - case 'o': case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': - /* These characters don't cause problems, no matter what the - quoting style is. They cannot start multibyte sequences. - A digit or a special letter would cause trouble if it - appeared at the beginning of quote_string because we'd then - escape by prepending a backslash. However, it's hard to - imagine any locale that would use digits or letters as - quotes, and set_custom_quoting is documented not to accept - them. Also, a digit or a special letter would cause - trouble if it appeared in quote_these_too, but that's also - documented as not accepting them. */ - c_and_shell_quote_compat = true; - break; - - default: - /* If we have a multibyte sequence, copy it until we reach - its end, find an error, or come back to the initial shift - state. For C-like styles, if the sequence has - unprintable characters, escape the whole sequence, since - we can't easily escape single characters within it. */ - { - /* Length of multibyte sequence found so far. */ - size_t m; - - bool printable; - - if (unibyte_locale) - { - m = 1; - printable = isprint (c) != 0; - } - else - { - mbstate_t mbstate; - mbszero (&mbstate); - - m = 0; - printable = true; - if (argsize == SIZE_MAX) - argsize = strlen (arg); - - for (;;) - { - char32_t w; - size_t bytes = mbrtoc32 (&w, &arg[i + m], - argsize - (i + m), &mbstate); - if (bytes == 0) - break; - else if (bytes == (size_t) -1) - { - printable = false; - break; - } - else if (bytes == (size_t) -2) - { - printable = false; - while (i + m < argsize && arg[i + m]) - m++; - break; - } - else - { - #if !GNULIB_MBRTOC32_REGULAR - if (bytes == (size_t) -3) - bytes = 0; - #endif - /* Work around a bug with older shells that "see" a '\' - that is really the 2nd byte of a multibyte character. - In practice the problem is limited to ASCII - chars >= '@' that are shell special chars. */ - if ('[' == 0x5b && elide_outer_quotes - && quoting_style == shell_always_quoting_style) - { - size_t j; - for (j = 1; j < bytes; j++) - switch (arg[i + m + j]) - { - case '[': case '\\': case '^': - case '`': case '|': - goto force_outer_quoting_style; - - default: - break; - } - } - - if (! c32isprint (w)) - printable = false; - m += bytes; - } - #if !GNULIB_MBRTOC32_REGULAR - if (mbsinit (&mbstate)) - #endif - break; - } - } - - c_and_shell_quote_compat = printable; - - if (1 < m || (backslash_escapes && ! printable)) - { - /* Output a multibyte sequence, or an escaped - unprintable unibyte character. */ - size_t ilim = i + m; - - for (;;) - { - if (backslash_escapes && ! printable) - { - START_ESC (); - STORE ('0' + (c >> 6)); - STORE ('0' + ((c >> 3) & 7)); - c = '0' + (c & 7); - } - else if (is_right_quote) - { - STORE ('\\'); - is_right_quote = false; - } - if (ilim <= i + 1) - break; - END_ESC (); - STORE (c); - c = arg[++i]; - } - - goto store_c; - } - } - } - - if (! (((backslash_escapes && quoting_style != shell_always_quoting_style) - || elide_outer_quotes) - && quote_these_too - && quote_these_too[c / INT_BITS] >> (c % INT_BITS) & 1) - && !is_right_quote) - goto store_c; - - store_escape: - START_ESC (); - - store_c: - END_ESC (); - STORE (c); - - if (! c_and_shell_quote_compat) - all_c_and_shell_quote_compat = false; - } - - if (len == 0 && quoting_style == shell_always_quoting_style - && elide_outer_quotes) - goto force_outer_quoting_style; - - /* Single shell quotes (') are commonly enough used as an apostrophe, - that we attempt to minimize the quoting in this case. Note itʼs - better to use the apostrophe modifier "\u02BC" if possible, as that - renders better and works with the word match regex \W+ etc. */ - if (quoting_style == shell_always_quoting_style && ! elide_outer_quotes - && encountered_single_quote) - { - if (all_c_and_shell_quote_compat) - return quotearg_buffer_restyled (buffer, orig_buffersize, arg, argsize, - c_quoting_style, - flags, quote_these_too, - left_quote, right_quote); - else if (! buffersize && orig_buffersize) - { - /* Disable read-only scan, and reprocess to write quoted string. */ - buffersize = orig_buffersize; - len = 0; - goto process_input; - } - } - - if (quote_string && !elide_outer_quotes) - for (; *quote_string; quote_string++) - STORE (*quote_string); - - if (len < buffersize) - buffer[len] = '\0'; - return len; - - force_outer_quoting_style: - /* Don't reuse quote_these_too, since the addition of outer quotes - sufficiently quotes the specified characters. */ - if (quoting_style == shell_always_quoting_style && backslash_escapes) - quoting_style = shell_escape_always_quoting_style; - return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, - quoting_style, - flags & ~QA_ELIDE_OUTER_QUOTES, NULL, - left_quote, right_quote); -} - -/* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of - argument ARG (of size ARGSIZE), using O to control quoting. - If O is null, use the default. - Terminate the output with a null character, and return the written - size of the output, not counting the terminating null. - If BUFFERSIZE is too small to store the output string, return the - value that would have been returned had BUFFERSIZE been large enough. - If ARGSIZE is SIZE_MAX, use the string length of the argument for - ARGSIZE. */ -size_t -quotearg_buffer (char *buffer, size_t buffersize, - char const *arg, size_t argsize, - struct quoting_options const *o) -{ - struct quoting_options const *p = o ? o : &default_quoting_options; - int e = errno; - size_t r = quotearg_buffer_restyled (buffer, buffersize, arg, argsize, - p->style, p->flags, p->quote_these_too, - p->left_quote, p->right_quote); - errno = e; - return r; -} - -char * -quotearg_alloc (char const *arg, size_t argsize, - struct quoting_options const *o) -{ - return quotearg_alloc_mem (arg, argsize, NULL, o); -} - -/* Like quotearg_buffer (..., ARG, ARGSIZE, O), except return newly - allocated storage containing the quoted string, and store the - resulting size into *SIZE, if non-NULL. The result can contain - embedded null bytes only if ARGSIZE is not SIZE_MAX, SIZE is not - NULL, and set_quoting_flags has not set the null byte elision - flag. */ -char * -quotearg_alloc_mem (char const *arg, size_t argsize, size_t *size, - struct quoting_options const *o) -{ - struct quoting_options const *p = o ? o : &default_quoting_options; - int e = errno; - /* Elide embedded null bytes if we can't return a size. */ - int flags = p->flags | (size ? 0 : QA_ELIDE_NULL_BYTES); - size_t bufsize = quotearg_buffer_restyled (0, 0, arg, argsize, p->style, - flags, p->quote_these_too, - p->left_quote, - p->right_quote) + 1; - char *buf = xcharalloc (bufsize); - quotearg_buffer_restyled (buf, bufsize, arg, argsize, p->style, flags, - p->quote_these_too, - p->left_quote, p->right_quote); - errno = e; - if (size) - *size = bufsize - 1; - return buf; -} - -/* A storage slot with size and pointer to a value. */ -struct slotvec -{ - size_t size; - char *val; -}; - -/* Preallocate a slot 0 buffer, so that the caller can always quote - one small component of a "memory exhausted" message in slot 0. */ -static char slot0[256]; -static int nslots = 1; -static struct slotvec slotvec0 = {sizeof slot0, slot0}; -static struct slotvec *slotvec = &slotvec0; - -void -quotearg_free (void) -{ - struct slotvec *sv = slotvec; - int i; - for (i = 1; i < nslots; i++) - free (sv[i].val); - if (sv[0].val != slot0) - { - free (sv[0].val); - slotvec0.size = sizeof slot0; - slotvec0.val = slot0; - } - if (sv != &slotvec0) - { - free (sv); - slotvec = &slotvec0; - } - nslots = 1; -} - -/* Use storage slot N to return a quoted version of argument ARG. - ARG is of size ARGSIZE, but if that is SIZE_MAX, ARG is a - null-terminated string. - OPTIONS specifies the quoting options. - The returned value points to static storage that can be - reused by the next call to this function with the same value of N. - N must be nonnegative; it is typically small, and must be - less than MIN (INT_MAX, IDX_MAX). The type of N is signed - to allow for future extensions (using negative values). */ -static char * -quotearg_n_options (int n, char const *arg, size_t argsize, - struct quoting_options const *options) -{ - int e = errno; - - struct slotvec *sv = slotvec; - - int nslots_max = MIN (INT_MAX, IDX_MAX); - if (! (0 <= n && n < nslots_max)) - abort (); - - if (nslots <= n) - { - bool preallocated = (sv == &slotvec0); - idx_t new_nslots = nslots; - - slotvec = sv = xpalloc (preallocated ? NULL : sv, &new_nslots, - n - nslots + 1, nslots_max, sizeof *sv); - if (preallocated) - *sv = slotvec0; - memset (sv + nslots, 0, (new_nslots - nslots) * sizeof *sv); - nslots = new_nslots; - } - - { - size_t size = sv[n].size; - char *val = sv[n].val; - /* Elide embedded null bytes since we don't return a size. */ - int flags = options->flags | QA_ELIDE_NULL_BYTES; - size_t qsize = quotearg_buffer_restyled (val, size, arg, argsize, - options->style, flags, - options->quote_these_too, - options->left_quote, - options->right_quote); - - if (size <= qsize) - { - sv[n].size = size = qsize + 1; - if (val != slot0) - free (val); - sv[n].val = val = xcharalloc (size); - quotearg_buffer_restyled (val, size, arg, argsize, options->style, - flags, options->quote_these_too, - options->left_quote, - options->right_quote); - } - - errno = e; - return val; - } -} - -char * -quotearg_n (int n, char const *arg) -{ - return quotearg_n_options (n, arg, SIZE_MAX, &default_quoting_options); -} - -char * -quotearg_n_mem (int n, char const *arg, size_t argsize) -{ - return quotearg_n_options (n, arg, argsize, &default_quoting_options); -} - -char * -quotearg (char const *arg) -{ - return quotearg_n (0, arg); -} - -char * -quotearg_mem (char const *arg, size_t argsize) -{ - return quotearg_n_mem (0, arg, argsize); -} - -char * -quotearg_n_style (int n, enum quoting_style s, char const *arg) -{ - struct quoting_options const o = quoting_options_from_style (s); - return quotearg_n_options (n, arg, SIZE_MAX, &o); -} - -char * -quotearg_n_style_mem (int n, enum quoting_style s, - char const *arg, size_t argsize) -{ - struct quoting_options const o = quoting_options_from_style (s); - return quotearg_n_options (n, arg, argsize, &o); -} - -char * -quotearg_style (enum quoting_style s, char const *arg) -{ - return quotearg_n_style (0, s, arg); -} - -char * -quotearg_style_mem (enum quoting_style s, char const *arg, size_t argsize) -{ - return quotearg_n_style_mem (0, s, arg, argsize); -} - -char * -quotearg_char_mem (char const *arg, size_t argsize, char ch) -{ - struct quoting_options options; - options = default_quoting_options; - set_char_quoting (&options, ch, 1); - return quotearg_n_options (0, arg, argsize, &options); -} - -char * -quotearg_char (char const *arg, char ch) -{ - return quotearg_char_mem (arg, SIZE_MAX, ch); -} - -char * -quotearg_colon (char const *arg) -{ - return quotearg_char (arg, ':'); -} - -char * -quotearg_colon_mem (char const *arg, size_t argsize) -{ - return quotearg_char_mem (arg, argsize, ':'); -} - -char * -quotearg_n_style_colon (int n, enum quoting_style s, char const *arg) -{ - struct quoting_options options; - options = quoting_options_from_style (s); - set_char_quoting (&options, ':', 1); - return quotearg_n_options (n, arg, SIZE_MAX, &options); -} - -char * -quotearg_n_custom (int n, char const *left_quote, - char const *right_quote, char const *arg) -{ - return quotearg_n_custom_mem (n, left_quote, right_quote, arg, - SIZE_MAX); -} - -char * -quotearg_n_custom_mem (int n, char const *left_quote, - char const *right_quote, - char const *arg, size_t argsize) -{ - struct quoting_options o = default_quoting_options; - set_custom_quoting (&o, left_quote, right_quote); - return quotearg_n_options (n, arg, argsize, &o); -} - -char * -quotearg_custom (char const *left_quote, char const *right_quote, - char const *arg) -{ - return quotearg_n_custom (0, left_quote, right_quote, arg); -} - -char * -quotearg_custom_mem (char const *left_quote, char const *right_quote, - char const *arg, size_t argsize) -{ - return quotearg_n_custom_mem (0, left_quote, right_quote, arg, - argsize); -} - - -/* The quoting option used by the functions of quote.h. */ -struct quoting_options quote_quoting_options = - { - locale_quoting_style, - 0, - { 0 }, - NULL, NULL - }; - -char const * -quote_n_mem (int n, char const *arg, size_t argsize) -{ - return quotearg_n_options (n, arg, argsize, "e_quoting_options); -} - -char const * -quote_mem (char const *arg, size_t argsize) -{ - return quote_n_mem (0, arg, argsize); -} - -char const * -quote_n (int n, char const *arg) -{ - return quote_n_mem (n, arg, SIZE_MAX); -} - -char const * -quote (char const *arg) -{ - return quote_n (0, arg); -} - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/jni/parted/libgnulib/lib/rawmemchr.c b/jni/parted/libgnulib/lib/rawmemchr.c deleted file mode 100755 index 013e7f8..0000000 --- a/jni/parted/libgnulib/lib/rawmemchr.c +++ /dev/null @@ -1,135 +0,0 @@ -/* Searching in a string. - Copyright (C) 2008-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* A function definition is needed only if HAVE_RAWMEMCHR is not defined. */ -#if !HAVE_RAWMEMCHR - -# include -# include - - -/* Find the first occurrence of C in S. */ -void * -rawmemchr (const void *s, int c_in) -{ -# ifdef __CHERI_PURE_CAPABILITY__ - /* Most architectures let you read an aligned word, - even if the unsigned char array at S ends in the middle of the word. - However CHERI does not, so call memchr - with the underlying object's remaining length. - This cannot return NULL if S points to a C_IN-terminated array. - Use builtins rather than including which is less stable. */ - return memchr (s, c_in, (__builtin_cheri_length_get (s) - - __builtin_cheri_offset_get (s))); -# else - - /* You can change this typedef to experiment with performance. */ - typedef uintptr_t longword; - /* Verify that the longword type lacks padding bits. */ - static_assert (UINTPTR_WIDTH == UCHAR_WIDTH * sizeof (uintptr_t)); - - const unsigned char *char_ptr; - unsigned char c = c_in; - - /* Handle the first few bytes by reading one byte at a time. - Do this until CHAR_PTR is aligned on a natural longword boundary, - as using alignof (longword) might be slower. */ - for (char_ptr = (const unsigned char *) s; - (uintptr_t) char_ptr % sizeof (longword) != 0; - ++char_ptr) - if (*char_ptr == c) - return (void *) char_ptr; - - longword const *longword_ptr = s = char_ptr; - - /* Compute auxiliary longword values: - repeated_one is a value which has a 1 in every byte. - repeated_c has c in every byte. */ - longword repeated_one = (longword) -1 / UCHAR_MAX; - longword repeated_c = repeated_one * c; - longword repeated_hibit = repeated_one * (UCHAR_MAX / 2 + 1); - - /* Instead of the traditional loop which tests each byte, we will - test a longword at a time. The tricky part is testing if any of - the bytes in the longword in question are equal to - c. We first use an xor with repeated_c. This reduces the task - to testing whether any of the bytes in longword1 is zero. - - (The following comments assume 8-bit bytes, as POSIX requires; - the code's use of UCHAR_MAX should work even if bytes have more - than 8 bits.) - - We compute tmp = - ((longword1 - repeated_one) & ~longword1) & (repeated_one * 0x80). - That is, we perform the following operations: - 1. Subtract repeated_one. - 2. & ~longword1. - 3. & a mask consisting of 0x80 in every byte. - Consider what happens in each byte: - - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff, - and step 3 transforms it into 0x80. A carry can also be propagated - to more significant bytes. - - If a byte of longword1 is nonzero, let its lowest 1 bit be at - position k (0 <= k <= 7); so the lowest k bits are 0. After step 1, - the byte ends in a single bit of value 0 and k bits of value 1. - After step 2, the result is just k bits of value 1: 2^k - 1. After - step 3, the result is 0. And no carry is produced. - So, if longword1 has only non-zero bytes, tmp is zero. - Whereas if longword1 has a zero byte, call j the position of the least - significant zero byte. Then the result has a zero at positions 0, ..., - j-1 and a 0x80 at position j. We cannot predict the result at the more - significant bytes (positions j+1..3), but it does not matter since we - already have a non-zero bit at position 8*j+7. - - The test whether any byte in longword1 is zero is equivalent - to testing whether tmp is nonzero. - - This test can read beyond the end of a string, depending on where - C_IN is encountered. However, this is considered safe since the - initialization phase ensured that the read will be aligned, - therefore, the read will not cross page boundaries and will not - cause a fault. */ - - while (1) - { - longword longword1 = *longword_ptr ^ repeated_c; - - if ((((longword1 - repeated_one) & ~longword1) & repeated_hibit) != 0) - break; - longword_ptr++; - } - - char_ptr = s = longword_ptr; - - /* At this point, we know that one of the sizeof (longword) bytes - starting at char_ptr is == c. If we knew endianness, we - could determine the first such byte without any further memory - accesses, just by looking at the tmp result from the last loop - iteration. However, the following simple and portable code does - not attempt this potential optimization. */ - - while (*char_ptr != c) - char_ptr++; - return (void *) char_ptr; -# endif -} - -#endif diff --git a/jni/parted/libgnulib/lib/regcomp.c b/jni/parted/libgnulib/lib/regcomp.c deleted file mode 100755 index 696cf81..0000000 --- a/jni/parted/libgnulib/lib/regcomp.c +++ /dev/null @@ -1,3788 +0,0 @@ -/* Extended regular expression matching and search library. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Isamu Hasegawa . - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifdef _LIBC -# include -#endif - -static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, - size_t length, reg_syntax_t syntax); -static void re_compile_fastmap_iter (regex_t *bufp, - const re_dfastate_t *init_state, - char *fastmap); -static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); -static void free_charset (re_charset_t *cset); -static void free_workarea_compile (regex_t *preg); -static reg_errcode_t create_initial_state (re_dfa_t *dfa); -static void optimize_utf8 (re_dfa_t *dfa); -static reg_errcode_t analyze (regex_t *preg); -static reg_errcode_t preorder (bin_tree_t *root, - reg_errcode_t (fn (void *, bin_tree_t *)), - void *extra); -static reg_errcode_t postorder (bin_tree_t *root, - reg_errcode_t (fn (void *, bin_tree_t *)), - void *extra); -static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node); -static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node); -static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg, - bin_tree_t *node); -static reg_errcode_t calc_first (void *extra, bin_tree_t *node); -static reg_errcode_t calc_next (void *extra, bin_tree_t *node); -static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node); -static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint); -static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node, - unsigned int constraint); -static reg_errcode_t calc_eclosure (re_dfa_t *dfa); -static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, - Idx node, bool root); -static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); -static Idx fetch_number (re_string_t *input, re_token_t *token, - reg_syntax_t syntax); -static int peek_token (re_token_t *token, re_string_t *input, - reg_syntax_t syntax); -static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, - reg_syntax_t syntax, reg_errcode_t *err); -static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, - re_token_t *token, reg_syntax_t syntax, - Idx nest, reg_errcode_t *err); -static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg, - re_token_t *token, reg_syntax_t syntax, - Idx nest, reg_errcode_t *err); -static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg, - re_token_t *token, reg_syntax_t syntax, - Idx nest, reg_errcode_t *err); -static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg, - re_token_t *token, reg_syntax_t syntax, - Idx nest, reg_errcode_t *err); -static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp, - re_dfa_t *dfa, re_token_t *token, - reg_syntax_t syntax, reg_errcode_t *err); -static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, - re_token_t *token, reg_syntax_t syntax, - reg_errcode_t *err); -static reg_errcode_t parse_bracket_element (bracket_elem_t *elem, - re_string_t *regexp, - re_token_t *token, int token_len, - re_dfa_t *dfa, - reg_syntax_t syntax, - bool accept_hyphen); -static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, - re_string_t *regexp, - re_token_t *token); -static reg_errcode_t build_equiv_class (bitset_t sbcset, - re_charset_t *mbcset, - Idx *equiv_class_alloc, - const unsigned char *name); -static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, - bitset_t sbcset, - re_charset_t *mbcset, - Idx *char_class_alloc, - const char *class_name, - reg_syntax_t syntax); -static bin_tree_t *build_charclass_op (re_dfa_t *dfa, - RE_TRANSLATE_TYPE trans, - const char *class_name, - const char *extra, - bool non_match, reg_errcode_t *err); -static bin_tree_t *create_tree (re_dfa_t *dfa, - bin_tree_t *left, bin_tree_t *right, - re_token_type_t type); -static bin_tree_t *create_token_tree (re_dfa_t *dfa, - bin_tree_t *left, bin_tree_t *right, - const re_token_t *token); -static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa); -static void free_token (re_token_t *node); -static reg_errcode_t free_tree (void *extra, bin_tree_t *node); -static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node); - -/* This table gives an error message for each of the error codes listed - in regex.h. Obviously the order here has to be same as there. - POSIX doesn't require that we do anything for REG_NOERROR, - but why not be nice? */ - -static const char __re_error_msgid[] = - { -#define REG_NOERROR_IDX 0 - gettext_noop ("Success") /* REG_NOERROR */ - "\0" -#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") - gettext_noop ("No match") /* REG_NOMATCH */ - "\0" -#define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") - gettext_noop ("Invalid regular expression") /* REG_BADPAT */ - "\0" -#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") - gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ - "\0" -#define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") - gettext_noop ("Invalid character class name") /* REG_ECTYPE */ - "\0" -#define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") - gettext_noop ("Trailing backslash") /* REG_EESCAPE */ - "\0" -#define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") - gettext_noop ("Invalid back reference") /* REG_ESUBREG */ - "\0" -#define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") - gettext_noop ("Unmatched [, [^, [:, [., or [=") /* REG_EBRACK */ - "\0" -#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [, [^, [:, [., or [=") - gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ - "\0" -#define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") - gettext_noop ("Unmatched \\{") /* REG_EBRACE */ - "\0" -#define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") - gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ - "\0" -#define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") - gettext_noop ("Invalid range end") /* REG_ERANGE */ - "\0" -#define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") - gettext_noop ("Memory exhausted") /* REG_ESPACE */ - "\0" -#define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") - gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ - "\0" -#define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") - gettext_noop ("Premature end of regular expression") /* REG_EEND */ - "\0" -#define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") - gettext_noop ("Regular expression too big") /* REG_ESIZE */ - "\0" -#define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") - gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ - }; - -static const size_t __re_error_msgid_idx[] = - { - REG_NOERROR_IDX, - REG_NOMATCH_IDX, - REG_BADPAT_IDX, - REG_ECOLLATE_IDX, - REG_ECTYPE_IDX, - REG_EESCAPE_IDX, - REG_ESUBREG_IDX, - REG_EBRACK_IDX, - REG_EPAREN_IDX, - REG_EBRACE_IDX, - REG_BADBR_IDX, - REG_ERANGE_IDX, - REG_ESPACE_IDX, - REG_BADRPT_IDX, - REG_EEND_IDX, - REG_ESIZE_IDX, - REG_ERPAREN_IDX - }; - -/* Entry points for GNU code. */ - -/* re_compile_pattern is the GNU regular expression compiler: it - compiles PATTERN (of length LENGTH) and puts the result in BUFP. - Returns 0 if the pattern was valid, otherwise an error string. - - Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields - are set in BUFP on entry. */ - -const char * -re_compile_pattern (const char *pattern, size_t length, - struct re_pattern_buffer *bufp) -{ - reg_errcode_t ret; - - /* And GNU code determines whether or not to get register information - by passing null for the REGS argument to re_match, etc., not by - setting no_sub, unless RE_NO_SUB is set. */ - bufp->no_sub = !!(re_syntax_options & RE_NO_SUB); - - /* Match anchors at newline. */ - bufp->newline_anchor = 1; - - ret = re_compile_internal (bufp, pattern, length, re_syntax_options); - - if (!ret) - return NULL; - return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); -} -weak_alias (__re_compile_pattern, re_compile_pattern) - -/* Set by 're_set_syntax' to the current regexp syntax to recognize. Can - also be assigned to arbitrarily: each pattern buffer stores its own - syntax, so it can be changed between regex compilations. */ -/* This has no initializer because initialized variables in Emacs - become read-only after dumping. */ -reg_syntax_t re_syntax_options; - - -/* Specify the precise syntax of regexps for compilation. This provides - for compatibility for various utilities which historically have - different, incompatible syntaxes. - - The argument SYNTAX is a bit mask comprised of the various bits - defined in regex.h. We return the old syntax. */ - -reg_syntax_t -re_set_syntax (reg_syntax_t syntax) -{ - reg_syntax_t ret = re_syntax_options; - - re_syntax_options = syntax; - return ret; -} -weak_alias (__re_set_syntax, re_set_syntax) - -int -re_compile_fastmap (struct re_pattern_buffer *bufp) -{ - re_dfa_t *dfa = bufp->buffer; - char *fastmap = bufp->fastmap; - - memset (fastmap, '\0', sizeof (char) * SBC_MAX); - re_compile_fastmap_iter (bufp, dfa->init_state, fastmap); - if (dfa->init_state != dfa->init_state_word) - re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap); - if (dfa->init_state != dfa->init_state_nl) - re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap); - if (dfa->init_state != dfa->init_state_begbuf) - re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap); - bufp->fastmap_accurate = 1; - return 0; -} -weak_alias (__re_compile_fastmap, re_compile_fastmap) - -static __always_inline void -re_set_fastmap (char *fastmap, bool icase, int ch) -{ - fastmap[ch] = 1; - if (icase) - fastmap[tolower (ch)] = 1; -} - -/* Helper function for re_compile_fastmap. - Compile fastmap for the initial_state INIT_STATE. */ - -static void -re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, - char *fastmap) -{ - re_dfa_t *dfa = bufp->buffer; - Idx node_cnt; - bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); - for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) - { - Idx node = init_state->nodes.elems[node_cnt]; - re_token_type_t type = dfa->nodes[node].type; - - if (type == CHARACTER) - { - re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c); - if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) - { - unsigned char buf[MB_LEN_MAX]; - unsigned char *p; - wchar_t wc; - mbstate_t state; - - p = buf; - *p++ = dfa->nodes[node].opr.c; - while (++node < dfa->nodes_len - && dfa->nodes[node].type == CHARACTER - && dfa->nodes[node].mb_partial) - *p++ = dfa->nodes[node].opr.c; - memset (&state, '\0', sizeof (state)); - if (__mbrtowc (&wc, (const char *) buf, p - buf, - &state) == p - buf - && (__wcrtomb ((char *) buf, __towlower (wc), &state) - != (size_t) -1)) - re_set_fastmap (fastmap, false, buf[0]); - } - } - else if (type == SIMPLE_BRACKET) - { - int i, ch; - for (i = 0, ch = 0; i < BITSET_WORDS; ++i) - { - int j; - bitset_word_t w = dfa->nodes[node].opr.sbcset[i]; - for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) - if (w & ((bitset_word_t) 1 << j)) - re_set_fastmap (fastmap, icase, ch); - } - } - else if (type == COMPLEX_BRACKET) - { - re_charset_t *cset = dfa->nodes[node].opr.mbcset; - Idx i; - -#ifdef _LIBC - /* See if we have to try all bytes which start multiple collation - elements. - e.g. In da_DK, we want to catch 'a' since "aa" is a valid - collation element, and don't catch 'b' since 'b' is - the only collation element which starts from 'b' (and - it is caught by SIMPLE_BRACKET). */ - if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0 - && (cset->ncoll_syms || cset->nranges)) - { - const int32_t *table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - for (i = 0; i < SBC_MAX; ++i) - if (table[i] < 0) - re_set_fastmap (fastmap, icase, i); - } -#endif /* _LIBC */ - - /* See if we have to start the match at all multibyte characters, - i.e. where we would not find an invalid sequence. This only - applies to multibyte character sets; for single byte character - sets, the SIMPLE_BRACKET again suffices. */ - if (dfa->mb_cur_max > 1 - && (cset->nchar_classes || cset->non_match || cset->nranges -#ifdef _LIBC - || cset->nequiv_classes -#endif /* _LIBC */ - )) - { - unsigned char c = 0; - do - { - mbstate_t mbs; - memset (&mbs, 0, sizeof (mbs)); - if (__mbrtowc (NULL, (char *) &c, 1, &mbs) == (size_t) -2) - re_set_fastmap (fastmap, false, (int) c); - } - while (++c != 0); - } - - else - { - /* ... Else catch all bytes which can start the mbchars. */ - for (i = 0; i < cset->nmbchars; ++i) - { - char buf[256]; - mbstate_t state; - memset (&state, '\0', sizeof (state)); - if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) - re_set_fastmap (fastmap, icase, *(unsigned char *) buf); - if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) - { - if (__wcrtomb (buf, __towlower (cset->mbchars[i]), &state) - != (size_t) -1) - re_set_fastmap (fastmap, false, *(unsigned char *) buf); - } - } - } - } - else if (type == OP_PERIOD || type == OP_UTF8_PERIOD || type == END_OF_RE) - { - memset (fastmap, '\1', sizeof (char) * SBC_MAX); - if (type == END_OF_RE) - bufp->can_be_null = 1; - return; - } - } -} - -/* Entry point for POSIX code. */ -/* regcomp takes a regular expression as a string and compiles it. - - PREG is a regex_t *. We do not expect any fields to be initialized, - since POSIX says we shouldn't. Thus, we set - - 'buffer' to the compiled pattern; - 'used' to the length of the compiled pattern; - 'syntax' to RE_SYNTAX_POSIX_EXTENDED if the - REG_EXTENDED bit in CFLAGS is set; otherwise, to - RE_SYNTAX_POSIX_BASIC; - 'newline_anchor' to REG_NEWLINE being set in CFLAGS; - 'fastmap' to an allocated space for the fastmap; - 'fastmap_accurate' to zero; - 're_nsub' to the number of subexpressions in PATTERN. - - PATTERN is the address of the pattern string. - - CFLAGS is a series of bits which affect compilation. - - If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we - use POSIX basic syntax. - - If REG_NEWLINE is set, then . and [^...] don't match newline. - Also, regexec will try a match beginning after every newline. - - If REG_ICASE is set, then we considers upper- and lowercase - versions of letters to be equivalent when matching. - - If REG_NOSUB is set, then when PREG is passed to regexec, that - routine will report only success or failure, and nothing about the - registers. - - It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for - the return codes and their meanings.) */ - -int -regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) -{ - reg_errcode_t ret; - reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED - : RE_SYNTAX_POSIX_BASIC); - - preg->buffer = NULL; - preg->allocated = 0; - preg->used = 0; - - /* Try to allocate space for the fastmap. */ - preg->fastmap = re_malloc (char, SBC_MAX); - if (__glibc_unlikely (preg->fastmap == NULL)) - return REG_ESPACE; - - syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; - - /* If REG_NEWLINE is set, newlines are treated differently. */ - if (cflags & REG_NEWLINE) - { /* REG_NEWLINE implies neither . nor [^...] match newline. */ - syntax &= ~RE_DOT_NEWLINE; - syntax |= RE_HAT_LISTS_NOT_NEWLINE; - /* It also changes the matching behavior. */ - preg->newline_anchor = 1; - } - else - preg->newline_anchor = 0; - preg->no_sub = !!(cflags & REG_NOSUB); - preg->translate = NULL; - - ret = re_compile_internal (preg, pattern, strlen (pattern), syntax); - - /* POSIX doesn't distinguish between an unmatched open-group and an - unmatched close-group: both are REG_EPAREN. */ - if (ret == REG_ERPAREN) - ret = REG_EPAREN; - - /* We have already checked preg->fastmap != NULL. */ - if (__glibc_likely (ret == REG_NOERROR)) - /* Compute the fastmap now, since regexec cannot modify the pattern - buffer. This function never fails in this implementation. */ - (void) re_compile_fastmap (preg); - else - { - /* Some error occurred while compiling the expression. */ - re_free (preg->fastmap); - preg->fastmap = NULL; - } - - return (int) ret; -} -libc_hidden_def (__regcomp) -weak_alias (__regcomp, regcomp) - -/* Returns a message corresponding to an error code, ERRCODE, returned - from either regcomp or regexec. We don't use PREG here. */ - -size_t -regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, - size_t errbuf_size) -{ - const char *msg; - size_t msg_size; - int nerrcodes = sizeof __re_error_msgid_idx / sizeof __re_error_msgid_idx[0]; - - if (__glibc_unlikely (errcode < 0 || errcode >= nerrcodes)) - /* Only error codes returned by the rest of the code should be passed - to this routine. If we are given anything else, or if other regex - code generates an invalid error code, then the program has a bug. - Dump core so we can fix it. */ - abort (); - - msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); - - msg_size = strlen (msg) + 1; /* Includes the null. */ - - if (__glibc_likely (errbuf_size != 0)) - { - size_t cpy_size = msg_size; - if (__glibc_unlikely (msg_size > errbuf_size)) - { - cpy_size = errbuf_size - 1; - errbuf[cpy_size] = '\0'; - } - memcpy (errbuf, msg, cpy_size); - } - - return msg_size; -} -weak_alias (__regerror, regerror) - - -/* This static array is used for the map to single-byte characters when - UTF-8 is used. Otherwise we would allocate memory just to initialize - it the same all the time. UTF-8 is the preferred encoding so this is - a worthwhile optimization. */ -static const bitset_t utf8_sb_map = -{ - /* Set the first 128 bits. */ -#if (defined __GNUC__ || __clang_major__ >= 4) && !defined __STRICT_ANSI__ - [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX -#else -# if 4 * BITSET_WORD_BITS < ASCII_CHARS -# error "bitset_word_t is narrower than 32 bits" -# elif 3 * BITSET_WORD_BITS < ASCII_CHARS - BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX, -# elif 2 * BITSET_WORD_BITS < ASCII_CHARS - BITSET_WORD_MAX, BITSET_WORD_MAX, -# elif 1 * BITSET_WORD_BITS < ASCII_CHARS - BITSET_WORD_MAX, -# endif - (BITSET_WORD_MAX - >> (SBC_MAX % BITSET_WORD_BITS == 0 - ? 0 - : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS)) -#endif -}; - - -static void -free_dfa_content (re_dfa_t *dfa) -{ - Idx i, j; - - if (dfa->nodes) - for (i = 0; i < dfa->nodes_len; ++i) - free_token (dfa->nodes + i); - re_free (dfa->nexts); - for (i = 0; i < dfa->nodes_len; ++i) - { - if (dfa->eclosures != NULL) - re_node_set_free (dfa->eclosures + i); - if (dfa->inveclosures != NULL) - re_node_set_free (dfa->inveclosures + i); - if (dfa->edests != NULL) - re_node_set_free (dfa->edests + i); - } - re_free (dfa->edests); - re_free (dfa->eclosures); - re_free (dfa->inveclosures); - re_free (dfa->nodes); - - if (dfa->state_table) - for (i = 0; i <= dfa->state_hash_mask; ++i) - { - struct re_state_table_entry *entry = dfa->state_table + i; - for (j = 0; j < entry->num; ++j) - { - re_dfastate_t *state = entry->array[j]; - free_state (state); - } - re_free (entry->array); - } - re_free (dfa->state_table); - if (dfa->sb_char != utf8_sb_map) - re_free (dfa->sb_char); - re_free (dfa->subexp_map); -#ifdef DEBUG - re_free (dfa->re_str); -#endif - - re_free (dfa); -} - - -/* Free dynamically allocated space used by PREG. */ - -void -regfree (regex_t *preg) -{ - re_dfa_t *dfa = preg->buffer; - if (__glibc_likely (dfa != NULL)) - { - lock_fini (dfa->lock); - free_dfa_content (dfa); - } - preg->buffer = NULL; - preg->allocated = 0; - - re_free (preg->fastmap); - preg->fastmap = NULL; - - re_free (preg->translate); - preg->translate = NULL; -} -libc_hidden_def (__regfree) -weak_alias (__regfree, regfree) - -/* Entry points compatible with 4.2 BSD regex library. We don't define - them unless specifically requested. */ - -#if defined _REGEX_RE_COMP || defined _LIBC - -/* BSD has one and only one pattern buffer. */ -static struct re_pattern_buffer re_comp_buf; - -char * -# ifdef _LIBC -/* Make these definitions weak in libc, so POSIX programs can redefine - these names if they don't use our functions, and still use - regcomp/regexec above without link errors. */ -weak_function -# endif -re_comp (const char *s) -{ - reg_errcode_t ret; - char *fastmap; - - if (!s) - { - if (!re_comp_buf.buffer) - return gettext ("No previous regular expression"); - return 0; - } - - if (re_comp_buf.buffer) - { - fastmap = re_comp_buf.fastmap; - re_comp_buf.fastmap = NULL; - __regfree (&re_comp_buf); - memset (&re_comp_buf, '\0', sizeof (re_comp_buf)); - re_comp_buf.fastmap = fastmap; - } - - if (re_comp_buf.fastmap == NULL) - { - re_comp_buf.fastmap = re_malloc (char, SBC_MAX); - if (re_comp_buf.fastmap == NULL) - return (char *) gettext (__re_error_msgid - + __re_error_msgid_idx[(int) REG_ESPACE]); - } - - /* Since 're_exec' always passes NULL for the 'regs' argument, we - don't need to initialize the pattern buffer fields which affect it. */ - - /* Match anchors at newlines. */ - re_comp_buf.newline_anchor = 1; - - ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options); - - if (!ret) - return NULL; - - /* Yes, we're discarding 'const' here if !HAVE_LIBINTL. */ - return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); -} - -#ifdef _LIBC -libc_freeres_fn (free_mem) -{ - __regfree (&re_comp_buf); -} -#endif - -#endif /* _REGEX_RE_COMP */ - -/* Internal entry point. - Compile the regular expression PATTERN, whose length is LENGTH. - SYNTAX indicate regular expression's syntax. */ - -static reg_errcode_t -re_compile_internal (regex_t *preg, const char * pattern, size_t length, - reg_syntax_t syntax) -{ - reg_errcode_t err = REG_NOERROR; - re_dfa_t *dfa; - re_string_t regexp; - - /* Initialize the pattern buffer. */ - preg->fastmap_accurate = 0; - preg->syntax = syntax; - preg->not_bol = preg->not_eol = 0; - preg->used = 0; - preg->re_nsub = 0; - preg->can_be_null = 0; - preg->regs_allocated = REGS_UNALLOCATED; - - /* Initialize the dfa. */ - dfa = preg->buffer; - if (__glibc_unlikely (preg->allocated < sizeof (re_dfa_t))) - { - /* If zero allocated, but buffer is non-null, try to realloc - enough space. This loses if buffer's address is bogus, but - that is the user's responsibility. If ->buffer is NULL this - is a simple allocation. */ - dfa = re_realloc (preg->buffer, re_dfa_t, 1); - if (dfa == NULL) - return REG_ESPACE; - preg->allocated = sizeof (re_dfa_t); - preg->buffer = dfa; - } - preg->used = sizeof (re_dfa_t); - - err = init_dfa (dfa, length); - if (__glibc_unlikely (err == REG_NOERROR && lock_init (dfa->lock) != 0)) - err = REG_ESPACE; - if (__glibc_unlikely (err != REG_NOERROR)) - { - free_dfa_content (dfa); - preg->buffer = NULL; - preg->allocated = 0; - return err; - } -#ifdef DEBUG - /* Note: length+1 will not overflow since it is checked in init_dfa. */ - dfa->re_str = re_malloc (char, length + 1); - strncpy (dfa->re_str, pattern, length + 1); -#endif - - err = re_string_construct (®exp, pattern, length, preg->translate, - (syntax & RE_ICASE) != 0, dfa); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_compile_internal_free_return: - free_workarea_compile (preg); - re_string_destruct (®exp); - lock_fini (dfa->lock); - free_dfa_content (dfa); - preg->buffer = NULL; - preg->allocated = 0; - return err; - } - - /* Parse the regular expression, and build a structure tree. */ - preg->re_nsub = 0; - dfa->str_tree = parse (®exp, preg, syntax, &err); - if (__glibc_unlikely (dfa->str_tree == NULL)) - goto re_compile_internal_free_return; - - /* Analyze the tree and create the nfa. */ - err = analyze (preg); - if (__glibc_unlikely (err != REG_NOERROR)) - goto re_compile_internal_free_return; - - /* If possible, do searching in single byte encoding to speed things up. */ - if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL) - optimize_utf8 (dfa); - - /* Then create the initial state of the dfa. */ - err = create_initial_state (dfa); - - /* Release work areas. */ - free_workarea_compile (preg); - re_string_destruct (®exp); - - if (__glibc_unlikely (err != REG_NOERROR)) - { - lock_fini (dfa->lock); - free_dfa_content (dfa); - preg->buffer = NULL; - preg->allocated = 0; - } - - return err; -} - -/* Initialize DFA. We use the length of the regular expression PAT_LEN - as the initial length of some arrays. */ - -static reg_errcode_t -init_dfa (re_dfa_t *dfa, size_t pat_len) -{ - __re_size_t table_size; -#ifndef _LIBC - const char *codeset_name; -#endif - size_t max_i18n_object_size = MAX (sizeof (wchar_t), sizeof (wctype_t)); - size_t max_object_size = - MAX (sizeof (struct re_state_table_entry), - MAX (sizeof (re_token_t), - MAX (sizeof (re_node_set), - MAX (sizeof (regmatch_t), - max_i18n_object_size)))); - - memset (dfa, '\0', sizeof (re_dfa_t)); - - /* Force allocation of str_tree_storage the first time. */ - dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; - - /* Avoid overflows. The extra "/ 2" is for the table_size doubling - calculation below, and for similar doubling calculations - elsewhere. And it's <= rather than <, because some of the - doubling calculations add 1 afterwards. */ - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 - <= pat_len)) - return REG_ESPACE; - - dfa->nodes_alloc = pat_len + 1; - dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc); - - /* table_size = 2 ^ ceil(log pat_len) */ - for (table_size = 1; ; table_size <<= 1) - if (table_size > pat_len) - break; - - dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size); - dfa->state_hash_mask = table_size - 1; - - dfa->mb_cur_max = MB_CUR_MAX; -#ifdef _LIBC - if (dfa->mb_cur_max == 6 - && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0) - dfa->is_utf8 = 1; - dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII) - != 0); -#else - codeset_name = nl_langinfo (CODESET); - if ((codeset_name[0] == 'U' || codeset_name[0] == 'u') - && (codeset_name[1] == 'T' || codeset_name[1] == 't') - && (codeset_name[2] == 'F' || codeset_name[2] == 'f') - && strcmp (codeset_name + 3 + (codeset_name[3] == '-'), "8") == 0) - dfa->is_utf8 = 1; - - /* We check exhaustively in the loop below if this charset is a - superset of ASCII. */ - dfa->map_notascii = 0; -#endif - - if (dfa->mb_cur_max > 1) - { - if (dfa->is_utf8) - dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; - else - { - int i, j, ch; - - dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - if (__glibc_unlikely (dfa->sb_char == NULL)) - return REG_ESPACE; - - /* Set the bits corresponding to single byte chars. */ - for (i = 0, ch = 0; i < BITSET_WORDS; ++i) - for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) - { - wint_t wch = __btowc (ch); - if (wch != WEOF) - dfa->sb_char[i] |= (bitset_word_t) 1 << j; -#ifndef _LIBC - if (isascii (ch) && wch != ch) - dfa->map_notascii = 1; -#endif - } - } - } - - if (__glibc_unlikely (dfa->nodes == NULL || dfa->state_table == NULL)) - return REG_ESPACE; - return REG_NOERROR; -} - -/* Initialize WORD_CHAR table, which indicate which character is - "word". In this case "word" means that it is the word construction - character used by some operators like "\<", "\>", etc. */ - -static void -init_word_char (re_dfa_t *dfa) -{ - int i = 0; - int j; - int ch = 0; - dfa->word_ops_used = 1; - if (__glibc_likely (dfa->map_notascii == 0)) - { - bitset_word_t bits0 = 0x00000000; - bitset_word_t bits1 = 0x03ff0000; - bitset_word_t bits2 = 0x87fffffe; - bitset_word_t bits3 = 0x07fffffe; - if (BITSET_WORD_BITS == 64) - { - /* Pacify gcc -Woverflow on 32-bit platforms. */ - dfa->word_char[0] = bits1 << 31 << 1 | bits0; - dfa->word_char[1] = bits3 << 31 << 1 | bits2; - i = 2; - } - else if (BITSET_WORD_BITS == 32) - { - dfa->word_char[0] = bits0; - dfa->word_char[1] = bits1; - dfa->word_char[2] = bits2; - dfa->word_char[3] = bits3; - i = 4; - } - else - goto general_case; - ch = 128; - - if (__glibc_likely (dfa->is_utf8)) - { - memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8); - return; - } - } - - general_case: - for (; i < BITSET_WORDS; ++i) - for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) - if (isalnum (ch) || ch == '_') - dfa->word_char[i] |= (bitset_word_t) 1 << j; -} - -/* Free the work area which are only used while compiling. */ - -static void -free_workarea_compile (regex_t *preg) -{ - re_dfa_t *dfa = preg->buffer; - bin_tree_storage_t *storage, *next; - for (storage = dfa->str_tree_storage; storage; storage = next) - { - next = storage->next; - re_free (storage); - } - dfa->str_tree_storage = NULL; - dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; - dfa->str_tree = NULL; - re_free (dfa->org_indices); - dfa->org_indices = NULL; -} - -/* Create initial states for all contexts. */ - -static reg_errcode_t -create_initial_state (re_dfa_t *dfa) -{ - Idx first, i; - reg_errcode_t err; - re_node_set init_nodes; - - /* Initial states have the epsilon closure of the node which is - the first node of the regular expression. */ - first = dfa->str_tree->first->node_idx; - dfa->init_node = first; - err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - /* The back-references which are in initial states can epsilon transit, - since in this case all of the subexpressions can be null. - Then we add epsilon closures of the nodes which are the next nodes of - the back-references. */ - if (dfa->nbackref > 0) - for (i = 0; i < init_nodes.nelem; ++i) - { - Idx node_idx = init_nodes.elems[i]; - re_token_type_t type = dfa->nodes[node_idx].type; - - Idx clexp_idx; - if (type != OP_BACK_REF) - continue; - for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx) - { - re_token_t *clexp_node; - clexp_node = dfa->nodes + init_nodes.elems[clexp_idx]; - if (clexp_node->type == OP_CLOSE_SUBEXP - && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx) - break; - } - if (clexp_idx == init_nodes.nelem) - continue; - - if (type == OP_BACK_REF) - { - Idx dest_idx = dfa->edests[node_idx].elems[0]; - if (!re_node_set_contains (&init_nodes, dest_idx)) - { - reg_errcode_t merge_err - = re_node_set_merge (&init_nodes, dfa->eclosures + dest_idx); - if (merge_err != REG_NOERROR) - return merge_err; - i = 0; - } - } - } - - /* It must be the first time to invoke acquire_state. */ - dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); - /* We don't check ERR here, since the initial state must not be NULL. */ - if (__glibc_unlikely (dfa->init_state == NULL)) - return err; - if (dfa->init_state->has_constraint) - { - dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes, - CONTEXT_WORD); - dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes, - CONTEXT_NEWLINE); - dfa->init_state_begbuf = re_acquire_state_context (&err, dfa, - &init_nodes, - CONTEXT_NEWLINE - | CONTEXT_BEGBUF); - if (__glibc_unlikely (dfa->init_state_word == NULL - || dfa->init_state_nl == NULL - || dfa->init_state_begbuf == NULL)) - return err; - } - else - dfa->init_state_word = dfa->init_state_nl - = dfa->init_state_begbuf = dfa->init_state; - - re_node_set_free (&init_nodes); - return REG_NOERROR; -} - -/* If it is possible to do searching in single byte encoding instead of UTF-8 - to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change - DFA nodes where needed. */ - -static void -optimize_utf8 (re_dfa_t *dfa) -{ - Idx node; - int i; - bool mb_chars = false; - bool has_period = false; - - for (node = 0; node < dfa->nodes_len; ++node) - switch (dfa->nodes[node].type) - { - case CHARACTER: - if (dfa->nodes[node].opr.c >= ASCII_CHARS) - mb_chars = true; - break; - case ANCHOR: - switch (dfa->nodes[node].opr.ctx_type) - { - case LINE_FIRST: - case LINE_LAST: - case BUF_FIRST: - case BUF_LAST: - break; - default: - /* Word anchors etc. cannot be handled. It's okay to test - opr.ctx_type since constraints (for all DFA nodes) are - created by ORing one or more opr.ctx_type values. */ - return; - } - break; - case OP_PERIOD: - has_period = true; - break; - case OP_BACK_REF: - case OP_ALT: - case END_OF_RE: - case OP_DUP_ASTERISK: - case OP_OPEN_SUBEXP: - case OP_CLOSE_SUBEXP: - break; - case COMPLEX_BRACKET: - return; - case SIMPLE_BRACKET: - /* Just double check. */ - { - int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0 - ? 0 - : BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS); - for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i) - { - if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0) - return; - rshift = 0; - } - } - break; - default: - abort (); - } - - if (mb_chars || has_period) - for (node = 0; node < dfa->nodes_len; ++node) - { - if (dfa->nodes[node].type == CHARACTER - && dfa->nodes[node].opr.c >= ASCII_CHARS) - dfa->nodes[node].mb_partial = 0; - else if (dfa->nodes[node].type == OP_PERIOD) - dfa->nodes[node].type = OP_UTF8_PERIOD; - } - - /* The search can be in single byte locale. */ - dfa->mb_cur_max = 1; - dfa->is_utf8 = 0; - dfa->has_mb_node = dfa->nbackref > 0 || has_period; -} - -/* Analyze the structure tree, and calculate "first", "next", "edest", - "eclosure", and "inveclosure". */ - -static reg_errcode_t -analyze (regex_t *preg) -{ - re_dfa_t *dfa = preg->buffer; - reg_errcode_t ret; - - /* Allocate arrays. */ - dfa->nexts = re_malloc (Idx, dfa->nodes_alloc); - dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc); - dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); - dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); - if (__glibc_unlikely (dfa->nexts == NULL || dfa->org_indices == NULL - || dfa->edests == NULL || dfa->eclosures == NULL)) - return REG_ESPACE; - - dfa->subexp_map = re_malloc (Idx, preg->re_nsub); - if (dfa->subexp_map != NULL) - { - Idx i; - for (i = 0; i < preg->re_nsub; i++) - dfa->subexp_map[i] = i; - preorder (dfa->str_tree, optimize_subexps, dfa); - for (i = 0; i < preg->re_nsub; i++) - if (dfa->subexp_map[i] != i) - break; - if (i == preg->re_nsub) - { - re_free (dfa->subexp_map); - dfa->subexp_map = NULL; - } - } - - ret = postorder (dfa->str_tree, lower_subexps, preg); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - ret = postorder (dfa->str_tree, calc_first, dfa); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - preorder (dfa->str_tree, calc_next, dfa); - ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - ret = calc_eclosure (dfa); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - - /* We only need this during the prune_impossible_nodes pass in regexec.c; - skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */ - if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match) - || dfa->nbackref) - { - dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); - if (__glibc_unlikely (dfa->inveclosures == NULL)) - return REG_ESPACE; - ret = calc_inveclosure (dfa); - } - - return ret; -} - -/* Our parse trees are very unbalanced, so we cannot use a stack to - implement parse tree visits. Instead, we use parent pointers and - some hairy code in these two functions. */ -static reg_errcode_t -postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), - void *extra) -{ - bin_tree_t *node, *prev; - - for (node = root; ; ) - { - /* Descend down the tree, preferably to the left (or to the right - if that's the only child). */ - while (node->left || node->right) - if (node->left) - node = node->left; - else - node = node->right; - - do - { - reg_errcode_t err = fn (extra, node); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - if (node->parent == NULL) - return REG_NOERROR; - prev = node; - node = node->parent; - } - /* Go up while we have a node that is reached from the right. */ - while (node->right == prev || node->right == NULL); - node = node->right; - } -} - -static reg_errcode_t -preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), - void *extra) -{ - bin_tree_t *node; - - for (node = root; ; ) - { - reg_errcode_t err = fn (extra, node); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - /* Go to the left node, or up and to the right. */ - if (node->left) - node = node->left; - else - { - bin_tree_t *prev = NULL; - while (node->right == prev || node->right == NULL) - { - prev = node; - node = node->parent; - if (!node) - return REG_NOERROR; - } - node = node->right; - } - } -} - -/* Optimization pass: if a SUBEXP is entirely contained, strip it and tell - re_search_internal to map the inner one's opr.idx to this one's. Adjust - backreferences as well. Requires a preorder visit. */ -static reg_errcode_t -optimize_subexps (void *extra, bin_tree_t *node) -{ - re_dfa_t *dfa = (re_dfa_t *) extra; - - if (node->token.type == OP_BACK_REF && dfa->subexp_map) - { - int idx = node->token.opr.idx; - node->token.opr.idx = dfa->subexp_map[idx]; - dfa->used_bkref_map |= 1 << node->token.opr.idx; - } - - else if (node->token.type == SUBEXP - && node->left && node->left->token.type == SUBEXP) - { - Idx other_idx = node->left->token.opr.idx; - - node->left = node->left->left; - if (node->left) - node->left->parent = node; - - dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; - if (other_idx < BITSET_WORD_BITS) - dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx); - } - - return REG_NOERROR; -} - -/* Lowering pass: Turn each SUBEXP node into the appropriate concatenation - of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */ -static reg_errcode_t -lower_subexps (void *extra, bin_tree_t *node) -{ - regex_t *preg = (regex_t *) extra; - reg_errcode_t err = REG_NOERROR; - - if (node->left && node->left->token.type == SUBEXP) - { - node->left = lower_subexp (&err, preg, node->left); - if (node->left) - node->left->parent = node; - } - if (node->right && node->right->token.type == SUBEXP) - { - node->right = lower_subexp (&err, preg, node->right); - if (node->right) - node->right->parent = node; - } - - return err; -} - -static bin_tree_t * -lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) -{ - re_dfa_t *dfa = preg->buffer; - bin_tree_t *body = node->left; - bin_tree_t *op, *cls, *tree1, *tree; - - if (preg->no_sub - /* We do not optimize empty subexpressions, because otherwise we may - have bad CONCAT nodes with NULL children. This is obviously not - very common, so we do not lose much. An example that triggers - this case is the sed "script" /\(\)/x. */ - && node->left != NULL - && (node->token.opr.idx >= BITSET_WORD_BITS - || !(dfa->used_bkref_map - & ((bitset_word_t) 1 << node->token.opr.idx)))) - return node->left; - - /* Convert the SUBEXP node to the concatenation of an - OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */ - op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP); - cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); - tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; - tree = create_tree (dfa, op, tree1, CONCAT); - if (__glibc_unlikely (tree == NULL || tree1 == NULL - || op == NULL || cls == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - - op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx; - op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp; - return tree; -} - -/* Pass 1 in building the NFA: compute FIRST and create unlinked automaton - nodes. Requires a postorder visit. */ -static reg_errcode_t -calc_first (void *extra, bin_tree_t *node) -{ - re_dfa_t *dfa = (re_dfa_t *) extra; - if (node->token.type == CONCAT) - { - node->first = node->left->first; - node->node_idx = node->left->node_idx; - } - else - { - node->first = node; - node->node_idx = re_dfa_add_node (dfa, node->token); - if (__glibc_unlikely (node->node_idx == -1)) - return REG_ESPACE; - if (node->token.type == ANCHOR) - dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; - } - return REG_NOERROR; -} - -/* Pass 2: compute NEXT on the tree. Preorder visit. */ -static reg_errcode_t -calc_next (void *extra, bin_tree_t *node) -{ - switch (node->token.type) - { - case OP_DUP_ASTERISK: - node->left->next = node; - break; - case CONCAT: - node->left->next = node->right->first; - node->right->next = node->next; - break; - default: - if (node->left) - node->left->next = node->next; - if (node->right) - node->right->next = node->next; - break; - } - return REG_NOERROR; -} - -/* Pass 3: link all DFA nodes to their NEXT node (any order will do). */ -static reg_errcode_t -link_nfa_nodes (void *extra, bin_tree_t *node) -{ - re_dfa_t *dfa = (re_dfa_t *) extra; - Idx idx = node->node_idx; - reg_errcode_t err = REG_NOERROR; - - switch (node->token.type) - { - case CONCAT: - break; - - case END_OF_RE: - DEBUG_ASSERT (node->next == NULL); - break; - - case OP_DUP_ASTERISK: - case OP_ALT: - { - Idx left, right; - dfa->has_plural_match = 1; - if (node->left != NULL) - left = node->left->first->node_idx; - else - left = node->next->node_idx; - if (node->right != NULL) - right = node->right->first->node_idx; - else - right = node->next->node_idx; - DEBUG_ASSERT (left > -1); - DEBUG_ASSERT (right > -1); - err = re_node_set_init_2 (dfa->edests + idx, left, right); - } - break; - - case ANCHOR: - case OP_OPEN_SUBEXP: - case OP_CLOSE_SUBEXP: - err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx); - break; - - case OP_BACK_REF: - dfa->nexts[idx] = node->next->node_idx; - if (node->token.type == OP_BACK_REF) - err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]); - break; - - default: - DEBUG_ASSERT (!IS_EPSILON_NODE (node->token.type)); - dfa->nexts[idx] = node->next->node_idx; - break; - } - - return err; -} - -/* Duplicate the epsilon closure of the node ROOT_NODE. - Note that duplicated nodes have constraint INIT_CONSTRAINT in addition - to their own constraint. */ - -static reg_errcode_t -duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, - Idx root_node, unsigned int init_constraint) -{ - Idx org_node, clone_node; - bool ok; - unsigned int constraint = init_constraint; - for (org_node = top_org_node, clone_node = top_clone_node;;) - { - Idx org_dest, clone_dest; - if (dfa->nodes[org_node].type == OP_BACK_REF) - { - /* If the back reference epsilon-transit, its destination must - also have the constraint. Then duplicate the epsilon closure - of the destination of the back reference, and store it in - edests of the back reference. */ - org_dest = dfa->nexts[org_node]; - re_node_set_empty (dfa->edests + clone_node); - clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) - return REG_ESPACE; - dfa->nexts[clone_node] = dfa->nexts[org_node]; - ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - else if (dfa->edests[org_node].nelem == 0) - { - /* In case of the node can't epsilon-transit, don't duplicate the - destination and store the original destination as the - destination of the node. */ - dfa->nexts[clone_node] = dfa->nexts[org_node]; - break; - } - else if (dfa->edests[org_node].nelem == 1) - { - /* In case of the node can epsilon-transit, and it has only one - destination. */ - org_dest = dfa->edests[org_node].elems[0]; - re_node_set_empty (dfa->edests + clone_node); - /* If the node is root_node itself, it means the epsilon closure - has a loop. Then tie it to the destination of the root_node. */ - if (org_node == root_node && clone_node != org_node) - { - ok = re_node_set_insert (dfa->edests + clone_node, org_dest); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - break; - } - /* In case the node has another constraint, append it. */ - constraint |= dfa->nodes[org_node].constraint; - clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) - return REG_ESPACE; - ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - else /* dfa->edests[org_node].nelem == 2 */ - { - /* In case of the node can epsilon-transit, and it has two - destinations. In the bin_tree_t and DFA, that's '|' and '*'. */ - org_dest = dfa->edests[org_node].elems[0]; - re_node_set_empty (dfa->edests + clone_node); - /* Search for a duplicated node which satisfies the constraint. */ - clone_dest = search_duplicated_node (dfa, org_dest, constraint); - if (clone_dest == -1) - { - /* There is no such duplicated node, create a new one. */ - reg_errcode_t err; - clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) - return REG_ESPACE; - ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - err = duplicate_node_closure (dfa, org_dest, clone_dest, - root_node, constraint); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - else - { - /* There is a duplicated node which satisfies the constraint, - use it to avoid infinite loop. */ - ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - - org_dest = dfa->edests[org_node].elems[1]; - clone_dest = duplicate_node (dfa, org_dest, constraint); - if (__glibc_unlikely (clone_dest == -1)) - return REG_ESPACE; - ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - org_node = org_dest; - clone_node = clone_dest; - } - return REG_NOERROR; -} - -/* Search for a node which is duplicated from the node ORG_NODE, and - satisfies the constraint CONSTRAINT. */ - -static Idx -search_duplicated_node (const re_dfa_t *dfa, Idx org_node, - unsigned int constraint) -{ - Idx idx; - for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx) - { - if (org_node == dfa->org_indices[idx] - && constraint == dfa->nodes[idx].constraint) - return idx; /* Found. */ - } - return -1; /* Not found. */ -} - -/* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. - Return the index of the new node, or -1 if insufficient storage is - available. */ - -static Idx -duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint) -{ - Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); - if (__glibc_likely (dup_idx != -1)) - { - dfa->nodes[dup_idx].constraint = constraint; - dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint; - dfa->nodes[dup_idx].duplicated = 1; - - /* Store the index of the original node. */ - dfa->org_indices[dup_idx] = org_idx; - } - return dup_idx; -} - -static reg_errcode_t -calc_inveclosure (re_dfa_t *dfa) -{ - Idx src, idx; - bool ok; - for (idx = 0; idx < dfa->nodes_len; ++idx) - re_node_set_init_empty (dfa->inveclosures + idx); - - for (src = 0; src < dfa->nodes_len; ++src) - { - Idx *elems = dfa->eclosures[src].elems; - for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) - { - ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - } - - return REG_NOERROR; -} - -/* Calculate "eclosure" for all the node in DFA. */ - -static reg_errcode_t -calc_eclosure (re_dfa_t *dfa) -{ - Idx node_idx; - bool incomplete; - DEBUG_ASSERT (dfa->nodes_len > 0); - incomplete = false; - /* For each nodes, calculate epsilon closure. */ - for (node_idx = 0; ; ++node_idx) - { - reg_errcode_t err; - re_node_set eclosure_elem; - if (node_idx == dfa->nodes_len) - { - if (!incomplete) - break; - incomplete = false; - node_idx = 0; - } - - DEBUG_ASSERT (dfa->eclosures[node_idx].nelem != -1); - - /* If we have already calculated, skip it. */ - if (dfa->eclosures[node_idx].nelem != 0) - continue; - /* Calculate epsilon closure of 'node_idx'. */ - err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - if (dfa->eclosures[node_idx].nelem == 0) - { - incomplete = true; - re_node_set_free (&eclosure_elem); - } - } - return REG_NOERROR; -} - -/* Calculate epsilon closure of NODE. */ - -static reg_errcode_t -calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) -{ - reg_errcode_t err; - Idx i; - re_node_set eclosure; - bool incomplete = false; - err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - /* An epsilon closure includes itself. */ - eclosure.elems[eclosure.nelem++] = node; - - /* This indicates that we are calculating this node now. - We reference this value to avoid infinite loop. */ - dfa->eclosures[node].nelem = -1; - - /* If the current node has constraints, duplicate all nodes - since they must inherit the constraints. */ - if (dfa->nodes[node].constraint - && dfa->edests[node].nelem - && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) - { - err = duplicate_node_closure (dfa, node, node, node, - dfa->nodes[node].constraint); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - - /* Expand each epsilon destination nodes. */ - if (IS_EPSILON_NODE(dfa->nodes[node].type)) - for (i = 0; i < dfa->edests[node].nelem; ++i) - { - re_node_set eclosure_elem; - Idx edest = dfa->edests[node].elems[i]; - /* If calculating the epsilon closure of 'edest' is in progress, - return intermediate result. */ - if (dfa->eclosures[edest].nelem == -1) - { - incomplete = true; - continue; - } - /* If we haven't calculated the epsilon closure of 'edest' yet, - calculate now. Otherwise use calculated epsilon closure. */ - if (dfa->eclosures[edest].nelem == 0) - { - err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - else - eclosure_elem = dfa->eclosures[edest]; - /* Merge the epsilon closure of 'edest'. */ - err = re_node_set_merge (&eclosure, &eclosure_elem); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - /* If the epsilon closure of 'edest' is incomplete, - the epsilon closure of this node is also incomplete. */ - if (dfa->eclosures[edest].nelem == 0) - { - incomplete = true; - re_node_set_free (&eclosure_elem); - } - } - - if (incomplete && !root) - dfa->eclosures[node].nelem = 0; - else - dfa->eclosures[node] = eclosure; - *new_set = eclosure; - return REG_NOERROR; -} - -/* Functions for token which are used in the parser. */ - -/* Fetch a token from INPUT. - We must not use this function inside bracket expressions. */ - -static void -fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) -{ - re_string_skip_bytes (input, peek_token (result, input, syntax)); -} - -/* Peek a token from INPUT, and return the length of the token. - We must not use this function inside bracket expressions. */ - -static int -peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) -{ - unsigned char c; - - if (re_string_eoi (input)) - { - token->type = END_OF_RE; - return 0; - } - - c = re_string_peek_byte (input, 0); - token->opr.c = c; - - token->word_char = 0; - token->mb_partial = 0; - if (input->mb_cur_max > 1 - && !re_string_first_byte (input, re_string_cur_idx (input))) - { - token->type = CHARACTER; - token->mb_partial = 1; - return 1; - } - if (c == '\\') - { - unsigned char c2; - if (re_string_cur_idx (input) + 1 >= re_string_length (input)) - { - token->type = BACK_SLASH; - return 1; - } - - c2 = re_string_peek_byte_case (input, 1); - token->opr.c = c2; - token->type = CHARACTER; - if (input->mb_cur_max > 1) - { - wint_t wc = re_string_wchar_at (input, - re_string_cur_idx (input) + 1); - token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; - } - else - token->word_char = IS_WORD_CHAR (c2) != 0; - - switch (c2) - { - case '|': - if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR)) - token->type = OP_ALT; - break; - case '1': case '2': case '3': case '4': case '5': - case '6': case '7': case '8': case '9': - if (!(syntax & RE_NO_BK_REFS)) - { - token->type = OP_BACK_REF; - token->opr.idx = c2 - '1'; - } - break; - case '<': - if (!(syntax & RE_NO_GNU_OPS)) - { - token->type = ANCHOR; - token->opr.ctx_type = WORD_FIRST; - } - break; - case '>': - if (!(syntax & RE_NO_GNU_OPS)) - { - token->type = ANCHOR; - token->opr.ctx_type = WORD_LAST; - } - break; - case 'b': - if (!(syntax & RE_NO_GNU_OPS)) - { - token->type = ANCHOR; - token->opr.ctx_type = WORD_DELIM; - } - break; - case 'B': - if (!(syntax & RE_NO_GNU_OPS)) - { - token->type = ANCHOR; - token->opr.ctx_type = NOT_WORD_DELIM; - } - break; - case 'w': - if (!(syntax & RE_NO_GNU_OPS)) - token->type = OP_WORD; - break; - case 'W': - if (!(syntax & RE_NO_GNU_OPS)) - token->type = OP_NOTWORD; - break; - case 's': - if (!(syntax & RE_NO_GNU_OPS)) - token->type = OP_SPACE; - break; - case 'S': - if (!(syntax & RE_NO_GNU_OPS)) - token->type = OP_NOTSPACE; - break; - case '`': - if (!(syntax & RE_NO_GNU_OPS)) - { - token->type = ANCHOR; - token->opr.ctx_type = BUF_FIRST; - } - break; - case '\'': - if (!(syntax & RE_NO_GNU_OPS)) - { - token->type = ANCHOR; - token->opr.ctx_type = BUF_LAST; - } - break; - case '(': - if (!(syntax & RE_NO_BK_PARENS)) - token->type = OP_OPEN_SUBEXP; - break; - case ')': - if (!(syntax & RE_NO_BK_PARENS)) - token->type = OP_CLOSE_SUBEXP; - break; - case '+': - if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) - token->type = OP_DUP_PLUS; - break; - case '?': - if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM)) - token->type = OP_DUP_QUESTION; - break; - case '{': - if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) - token->type = OP_OPEN_DUP_NUM; - break; - case '}': - if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES))) - token->type = OP_CLOSE_DUP_NUM; - break; - default: - break; - } - return 2; - } - - token->type = CHARACTER; - if (input->mb_cur_max > 1) - { - wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input)); - token->word_char = IS_WIDE_WORD_CHAR (wc) != 0; - } - else - token->word_char = IS_WORD_CHAR (token->opr.c); - - switch (c) - { - case '\n': - if (syntax & RE_NEWLINE_ALT) - token->type = OP_ALT; - break; - case '|': - if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR)) - token->type = OP_ALT; - break; - case '*': - token->type = OP_DUP_ASTERISK; - break; - case '+': - if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) - token->type = OP_DUP_PLUS; - break; - case '?': - if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM)) - token->type = OP_DUP_QUESTION; - break; - case '{': - if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) - token->type = OP_OPEN_DUP_NUM; - break; - case '}': - if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES)) - token->type = OP_CLOSE_DUP_NUM; - break; - case '(': - if (syntax & RE_NO_BK_PARENS) - token->type = OP_OPEN_SUBEXP; - break; - case ')': - if (syntax & RE_NO_BK_PARENS) - token->type = OP_CLOSE_SUBEXP; - break; - case '[': - token->type = OP_OPEN_BRACKET; - break; - case '.': - token->type = OP_PERIOD; - break; - case '^': - if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) - && re_string_cur_idx (input) != 0) - { - char prev = re_string_peek_byte (input, -1); - if (!(syntax & RE_NEWLINE_ALT) || prev != '\n') - break; - } - token->type = ANCHOR; - token->opr.ctx_type = LINE_FIRST; - break; - case '$': - if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) - && re_string_cur_idx (input) + 1 != re_string_length (input)) - { - re_token_t next; - re_string_skip_bytes (input, 1); - peek_token (&next, input, syntax); - re_string_skip_bytes (input, -1); - if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP) - break; - } - token->type = ANCHOR; - token->opr.ctx_type = LINE_LAST; - break; - default: - break; - } - return 1; -} - -/* Peek a token from INPUT, and return the length of the token. - We must not use this function out of bracket expressions. */ - -static int -peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) -{ - unsigned char c; - if (re_string_eoi (input)) - { - token->type = END_OF_RE; - return 0; - } - c = re_string_peek_byte (input, 0); - token->opr.c = c; - - if (input->mb_cur_max > 1 - && !re_string_first_byte (input, re_string_cur_idx (input))) - { - token->type = CHARACTER; - return 1; - } - - if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) - && re_string_cur_idx (input) + 1 < re_string_length (input)) - { - /* In this case, '\' escape a character. */ - unsigned char c2; - re_string_skip_bytes (input, 1); - c2 = re_string_peek_byte (input, 0); - token->opr.c = c2; - token->type = CHARACTER; - return 1; - } - if (c == '[') /* '[' is a special char in a bracket exps. */ - { - unsigned char c2; - int token_len; - if (re_string_cur_idx (input) + 1 < re_string_length (input)) - c2 = re_string_peek_byte (input, 1); - else - c2 = 0; - token->opr.c = c2; - token_len = 2; - switch (c2) - { - case '.': - token->type = OP_OPEN_COLL_ELEM; - break; - - case '=': - token->type = OP_OPEN_EQUIV_CLASS; - break; - - case ':': - if (syntax & RE_CHAR_CLASSES) - { - token->type = OP_OPEN_CHAR_CLASS; - break; - } - FALLTHROUGH; - default: - token->type = CHARACTER; - token->opr.c = c; - token_len = 1; - break; - } - return token_len; - } - switch (c) - { - case ']': - token->type = OP_CLOSE_BRACKET; - break; - case '^': - token->type = OP_NON_MATCH_LIST; - break; - case '-': - /* In V7 Unix grep and Unix awk and mawk, [...---...] - (3 adjacent minus signs) stands for a single minus sign. - Support that without breaking anything else. */ - if (! (re_string_cur_idx (input) + 2 < re_string_length (input) - && re_string_peek_byte (input, 1) == '-' - && re_string_peek_byte (input, 2) == '-')) - { - token->type = OP_CHARSET_RANGE; - break; - } - re_string_skip_bytes (input, 2); - FALLTHROUGH; - default: - token->type = CHARACTER; - } - return 1; -} - -/* Functions for parser. */ - -/* Entry point of the parser. - Parse the regular expression REGEXP and return the structure tree. - If an error occurs, ERR is set by error code, and return NULL. - This function build the following tree, from regular expression : - CAT - / \ - / \ - EOR - - CAT means concatenation. - EOR means end of regular expression. */ - -static bin_tree_t * -parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, - reg_errcode_t *err) -{ - re_dfa_t *dfa = preg->buffer; - bin_tree_t *tree, *eor, *root; - re_token_t current_token; - dfa->syntax = syntax; - fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); - tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - eor = create_tree (dfa, NULL, NULL, END_OF_RE); - if (tree != NULL) - root = create_tree (dfa, tree, eor, CONCAT); - else - root = eor; - if (__glibc_unlikely (eor == NULL || root == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - return root; -} - -/* This function build the following tree, from regular expression - |: - ALT - / \ - / \ - - - ALT means alternative, which represents the operator '|'. */ - -static bin_tree_t * -parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, - reg_syntax_t syntax, Idx nest, reg_errcode_t *err) -{ - re_dfa_t *dfa = preg->buffer; - bin_tree_t *tree, *branch = NULL; - bitset_word_t initial_bkref_map = dfa->completed_bkref_map; - tree = parse_branch (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - - while (token->type == OP_ALT) - { - fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); - if (token->type != OP_ALT && token->type != END_OF_RE - && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) - { - bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map; - dfa->completed_bkref_map = initial_bkref_map; - branch = parse_branch (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && branch == NULL)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - return NULL; - } - dfa->completed_bkref_map |= accumulated_bkref_map; - } - else - branch = NULL; - tree = create_tree (dfa, tree, branch, OP_ALT); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - } - return tree; -} - -/* This function build the following tree, from regular expression - : - CAT - / \ - / \ - - - CAT means concatenation. */ - -static bin_tree_t * -parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, - reg_syntax_t syntax, Idx nest, reg_errcode_t *err) -{ - bin_tree_t *tree, *expr; - re_dfa_t *dfa = preg->buffer; - tree = parse_expression (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - - while (token->type != OP_ALT && token->type != END_OF_RE - && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) - { - expr = parse_expression (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err != REG_NOERROR && expr == NULL)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - return NULL; - } - if (tree != NULL && expr != NULL) - { - bin_tree_t *newtree = create_tree (dfa, tree, expr, CONCAT); - if (newtree == NULL) - { - postorder (expr, free_tree, NULL); - postorder (tree, free_tree, NULL); - *err = REG_ESPACE; - return NULL; - } - tree = newtree; - } - else if (tree == NULL) - tree = expr; - /* Otherwise expr == NULL, we don't need to create new tree. */ - } - return tree; -} - -/* This function build the following tree, from regular expression a*: - * - | - a -*/ - -static bin_tree_t * -parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, - reg_syntax_t syntax, Idx nest, reg_errcode_t *err) -{ - re_dfa_t *dfa = preg->buffer; - bin_tree_t *tree; - switch (token->type) - { - case CHARACTER: - tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - if (dfa->mb_cur_max > 1) - { - while (!re_string_eoi (regexp) - && !re_string_first_byte (regexp, re_string_cur_idx (regexp))) - { - bin_tree_t *mbc_remain; - fetch_token (token, regexp, syntax); - mbc_remain = create_token_tree (dfa, NULL, NULL, token); - tree = create_tree (dfa, tree, mbc_remain, CONCAT); - if (__glibc_unlikely (mbc_remain == NULL || tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - } - } - break; - - case OP_OPEN_SUBEXP: - tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - break; - - case OP_OPEN_BRACKET: - tree = parse_bracket_exp (regexp, dfa, token, syntax, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - break; - - case OP_BACK_REF: - if (!__glibc_likely (dfa->completed_bkref_map & (1 << token->opr.idx))) - { - *err = REG_ESUBREG; - return NULL; - } - dfa->used_bkref_map |= 1 << token->opr.idx; - tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - ++dfa->nbackref; - dfa->has_mb_node = 1; - break; - - case OP_OPEN_DUP_NUM: - if (syntax & RE_CONTEXT_INVALID_DUP) - { - *err = REG_BADRPT; - return NULL; - } - FALLTHROUGH; - case OP_DUP_ASTERISK: - case OP_DUP_PLUS: - case OP_DUP_QUESTION: - if (syntax & RE_CONTEXT_INVALID_OPS) - { - *err = REG_BADRPT; - return NULL; - } - else if (syntax & RE_CONTEXT_INDEP_OPS) - { - fetch_token (token, regexp, syntax); - return parse_expression (regexp, preg, token, syntax, nest, err); - } - FALLTHROUGH; - case OP_CLOSE_SUBEXP: - if ((token->type == OP_CLOSE_SUBEXP) - && !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)) - { - *err = REG_ERPAREN; - return NULL; - } - FALLTHROUGH; - case OP_CLOSE_DUP_NUM: - /* We treat it as a normal character. */ - - /* Then we can these characters as normal characters. */ - token->type = CHARACTER; - /* mb_partial and word_char bits should be initialized already - by peek_token. */ - tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - break; - - case ANCHOR: - if ((token->opr.ctx_type - & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST)) - && dfa->word_ops_used == 0) - init_word_char (dfa); - if (token->opr.ctx_type == WORD_DELIM - || token->opr.ctx_type == NOT_WORD_DELIM) - { - bin_tree_t *tree_first, *tree_last; - if (token->opr.ctx_type == WORD_DELIM) - { - token->opr.ctx_type = WORD_FIRST; - tree_first = create_token_tree (dfa, NULL, NULL, token); - token->opr.ctx_type = WORD_LAST; - } - else - { - token->opr.ctx_type = INSIDE_WORD; - tree_first = create_token_tree (dfa, NULL, NULL, token); - token->opr.ctx_type = INSIDE_NOTWORD; - } - tree_last = create_token_tree (dfa, NULL, NULL, token); - tree = create_tree (dfa, tree_first, tree_last, OP_ALT); - if (__glibc_unlikely (tree_first == NULL || tree_last == NULL - || tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - } - else - { - tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - } - /* We must return here, since ANCHORs can't be followed - by repetition operators. - eg. RE"^*" is invalid or "", - it must not be "". */ - fetch_token (token, regexp, syntax); - return tree; - - case OP_PERIOD: - tree = create_token_tree (dfa, NULL, NULL, token); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - if (dfa->mb_cur_max > 1) - dfa->has_mb_node = 1; - break; - - case OP_WORD: - case OP_NOTWORD: - tree = build_charclass_op (dfa, regexp->trans, - "alnum", - "_", - token->type == OP_NOTWORD, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - break; - - case OP_SPACE: - case OP_NOTSPACE: - tree = build_charclass_op (dfa, regexp->trans, - "space", - "", - token->type == OP_NOTSPACE, err); - if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) - return NULL; - break; - - case OP_ALT: - case END_OF_RE: - return NULL; - - case BACK_SLASH: - *err = REG_EESCAPE; - return NULL; - - default: - /* Must not happen? */ - DEBUG_ASSERT (false); - return NULL; - } - fetch_token (token, regexp, syntax); - - while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS - || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM) - { - bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token, - syntax, err); - if (__glibc_unlikely (*err != REG_NOERROR && dup_tree == NULL)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - return NULL; - } - tree = dup_tree; - /* In BRE consecutive duplications are not allowed. */ - if ((syntax & RE_CONTEXT_INVALID_DUP) - && (token->type == OP_DUP_ASTERISK - || token->type == OP_OPEN_DUP_NUM)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - *err = REG_BADRPT; - return NULL; - } - } - - return tree; -} - -/* This function build the following tree, from regular expression - (): - SUBEXP - | - -*/ - -static bin_tree_t * -parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, - reg_syntax_t syntax, Idx nest, reg_errcode_t *err) -{ - re_dfa_t *dfa = preg->buffer; - bin_tree_t *tree; - size_t cur_nsub; - cur_nsub = preg->re_nsub++; - - fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE); - - /* The subexpression may be a null string. */ - if (token->type == OP_CLOSE_SUBEXP) - tree = NULL; - else - { - tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); - if (__glibc_unlikely (*err == REG_NOERROR - && token->type != OP_CLOSE_SUBEXP)) - { - if (tree != NULL) - postorder (tree, free_tree, NULL); - *err = REG_EPAREN; - } - if (__glibc_unlikely (*err != REG_NOERROR)) - return NULL; - } - - if (cur_nsub <= '9' - '1') - dfa->completed_bkref_map |= 1 << cur_nsub; - - tree = create_tree (dfa, tree, NULL, SUBEXP); - if (__glibc_unlikely (tree == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - tree->token.opr.idx = cur_nsub; - return tree; -} - -/* This function parse repetition operators like "*", "+", "{1,3}" etc. */ - -static bin_tree_t * -parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, - re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) -{ - bin_tree_t *tree = NULL, *old_tree = NULL; - Idx i, start, end, start_idx = re_string_cur_idx (regexp); - re_token_t start_token = *token; - - if (token->type == OP_OPEN_DUP_NUM) - { - end = 0; - start = fetch_number (regexp, token, syntax); - if (start == -1) - { - if (token->type == CHARACTER && token->opr.c == ',') - start = 0; /* We treat "{,m}" as "{0,m}". */ - else - { - *err = REG_BADBR; /* {} is invalid. */ - return NULL; - } - } - if (__glibc_likely (start != -2)) - { - /* We treat "{n}" as "{n,n}". */ - end = ((token->type == OP_CLOSE_DUP_NUM) ? start - : ((token->type == CHARACTER && token->opr.c == ',') - ? fetch_number (regexp, token, syntax) : -2)); - } - if (__glibc_unlikely (start == -2 || end == -2)) - { - /* Invalid sequence. */ - if (__glibc_unlikely (!(syntax & RE_INVALID_INTERVAL_ORD))) - { - if (token->type == END_OF_RE) - *err = REG_EBRACE; - else - *err = REG_BADBR; - - return NULL; - } - - /* If the syntax bit is set, rollback. */ - re_string_set_index (regexp, start_idx); - *token = start_token; - token->type = CHARACTER; - /* mb_partial and word_char bits should be already initialized by - peek_token. */ - return elem; - } - - if (__glibc_unlikely ((end != -1 && start > end) - || token->type != OP_CLOSE_DUP_NUM)) - { - /* First number greater than second. */ - *err = REG_BADBR; - return NULL; - } - - if (__glibc_unlikely (RE_DUP_MAX < (end == -1 ? start : end))) - { - *err = REG_ESIZE; - return NULL; - } - } - else - { - start = (token->type == OP_DUP_PLUS) ? 1 : 0; - end = (token->type == OP_DUP_QUESTION) ? 1 : -1; - } - - fetch_token (token, regexp, syntax); - - if (__glibc_unlikely (elem == NULL)) - return NULL; - if (__glibc_unlikely (start == 0 && end == 0)) - { - postorder (elem, free_tree, NULL); - return NULL; - } - - /* Extract "{n,m}" to "...{0,}". */ - if (__glibc_unlikely (start > 0)) - { - tree = elem; - for (i = 2; i <= start; ++i) - { - elem = duplicate_tree (elem, dfa); - tree = create_tree (dfa, tree, elem, CONCAT); - if (__glibc_unlikely (elem == NULL || tree == NULL)) - goto parse_dup_op_espace; - } - - if (start == end) - return tree; - - /* Duplicate ELEM before it is marked optional. */ - elem = duplicate_tree (elem, dfa); - if (__glibc_unlikely (elem == NULL)) - goto parse_dup_op_espace; - old_tree = tree; - } - else - old_tree = NULL; - - if (elem->token.type == SUBEXP) - { - uintptr_t subidx = elem->token.opr.idx; - postorder (elem, mark_opt_subexp, (void *) subidx); - } - - tree = create_tree (dfa, elem, NULL, - (end == -1 ? OP_DUP_ASTERISK : OP_ALT)); - if (__glibc_unlikely (tree == NULL)) - goto parse_dup_op_espace; - - /* This loop is actually executed only when end != -1, - to rewrite {0,n} as ((...?)?)?... We have - already created the start+1-th copy. */ - if (TYPE_SIGNED (Idx) || end != -1) - for (i = start + 2; i <= end; ++i) - { - elem = duplicate_tree (elem, dfa); - tree = create_tree (dfa, tree, elem, CONCAT); - if (__glibc_unlikely (elem == NULL || tree == NULL)) - goto parse_dup_op_espace; - - tree = create_tree (dfa, tree, NULL, OP_ALT); - if (__glibc_unlikely (tree == NULL)) - goto parse_dup_op_espace; - } - - if (old_tree) - tree = create_tree (dfa, old_tree, tree, CONCAT); - - return tree; - - parse_dup_op_espace: - *err = REG_ESPACE; - return NULL; -} - -/* Size of the names for collating symbol/equivalence_class/character_class. - I'm not sure, but maybe enough. */ -#define BRACKET_NAME_BUF_SIZE 32 - -#ifndef _LIBC - -/* Convert the byte B to the corresponding wide character. In a - unibyte locale, treat B as itself. In a multibyte locale, return - WEOF if B is an encoding error. */ -static wint_t -parse_byte (unsigned char b, re_dfa_t const *dfa) -{ - return dfa->mb_cur_max > 1 ? __btowc (b) : b; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Build the range expression which starts from START_ELEM, and ends - at END_ELEM. The result are written to MBCSET and SBCSET. - RANGE_ALLOC is the allocated size of mbcset->range_starts, and - mbcset->range_ends, is a pointer argument since we may - update it. */ - -static reg_errcode_t -build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, - bracket_elem_t *start_elem, bracket_elem_t *end_elem, - re_dfa_t *dfa, reg_syntax_t syntax, uint_fast32_t nrules, - const unsigned char *collseqmb, const char *collseqwc, - int_fast32_t table_size, const void *symb_table, - const unsigned char *extra) -{ - /* Equivalence Classes and Character Classes can't be a range start/end. */ - if (__glibc_unlikely (start_elem->type == EQUIV_CLASS - || start_elem->type == CHAR_CLASS - || end_elem->type == EQUIV_CLASS - || end_elem->type == CHAR_CLASS)) - return REG_ERANGE; - - /* We can handle no multi character collating elements without libc - support. */ - if (__glibc_unlikely ((start_elem->type == COLL_SYM - && strlen ((char *) start_elem->opr.name) > 1) - || (end_elem->type == COLL_SYM - && strlen ((char *) end_elem->opr.name) > 1))) - return REG_ECOLLATE; - - unsigned int - start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch - : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0] - : 0)), - end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch - : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] - : 0)); - wint_t - start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) - ? parse_byte (start_ch, dfa) : start_elem->opr.wch), - end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) - ? parse_byte (end_ch, dfa) : end_elem->opr.wch); - - if (start_wc == WEOF || end_wc == WEOF) - return REG_ECOLLATE; - else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES) - && start_wc > end_wc)) - return REG_ERANGE; - - /* Got valid collation sequence values, add them as a new entry. - However, for !_LIBC we have no collation elements: if the - character set is single byte, the single byte character set - that we build below suffices. parse_bracket_exp passes - no MBCSET if dfa->mb_cur_max == 1. */ - if (dfa->mb_cur_max > 1) - { - /* Check the space of the arrays. */ - if (__glibc_unlikely (*range_alloc == mbcset->nranges)) - { - /* There is not enough space, need realloc. */ - wchar_t *new_array_start, *new_array_end; - Idx new_nranges; - - /* +1 in case of mbcset->nranges is 0. */ - new_nranges = 2 * mbcset->nranges + 1; - /* Use realloc since mbcset->range_starts and mbcset->range_ends - are NULL if *range_alloc == 0. */ - new_array_start = re_realloc (mbcset->range_starts, wchar_t, - new_nranges); - new_array_end = re_realloc (mbcset->range_ends, wchar_t, - new_nranges); - - if (__glibc_unlikely (new_array_start == NULL - || new_array_end == NULL)) - { - re_free (new_array_start); - re_free (new_array_end); - return REG_ESPACE; - } - - mbcset->range_starts = new_array_start; - mbcset->range_ends = new_array_end; - *range_alloc = new_nranges; - } - - mbcset->range_starts[mbcset->nranges] = start_wc; - mbcset->range_ends[mbcset->nranges++] = end_wc; - } - - /* Build the table for single byte characters. */ - for (wchar_t wc = 0; wc < SBC_MAX; ++wc) - { - if (start_wc <= wc && wc <= end_wc) - bitset_set (sbcset, wc); - } - - return REG_NOERROR; -} -#endif /* not _LIBC */ - -#ifndef _LIBC -/* Helper function for parse_bracket_exp only used in case of NOT _LIBC. - Build the collating element which is represented by NAME. - The result are written to MBCSET and SBCSET. - COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a - pointer argument since we may update it. */ - -static reg_errcode_t -build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, - Idx *coll_sym_alloc, const unsigned char *name, - uint_fast32_t nrules, int_fast32_t table_size, - const void *symb_table, const unsigned char *extra) -{ - size_t name_len = strlen ((const char *) name); - if (__glibc_unlikely (name_len != 1)) - return REG_ECOLLATE; - else - { - bitset_set (sbcset, name[0]); - return REG_NOERROR; - } -} -#endif /* not _LIBC */ - -#ifdef _LIBC -/* Local function for parse_bracket_exp used in _LIBC environment. - Seek the collating symbol entry corresponding to NAME. - Return the index of the symbol in the SYMB_TABLE, - or -1 if not found. */ - -static __always_inline int32_t -seek_collating_symbol_entry (const unsigned char *name, size_t name_len, - const int32_t *symb_table, - int_fast32_t table_size, - const unsigned char *extra) -{ - int_fast32_t elem; - - for (elem = 0; elem < table_size; elem++) - if (symb_table[2 * elem] != 0) - { - int32_t idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - if (/* Compare the length of the name. */ - name_len == extra[idx] - /* Compare the name. */ - && memcmp (name, &extra[idx + 1], name_len) == 0) - /* Yep, this is the entry. */ - return elem; - } - return -1; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Look up the collation sequence value of BR_ELEM. - Return the value if succeeded, UINT_MAX otherwise. */ - -static __always_inline unsigned int -lookup_collation_sequence_value (bracket_elem_t *br_elem, uint32_t nrules, - const unsigned char *collseqmb, - const char *collseqwc, - int_fast32_t table_size, - const int32_t *symb_table, - const unsigned char *extra) -{ - if (br_elem->type == SB_CHAR) - { - /* if (MB_CUR_MAX == 1) */ - if (nrules == 0) - return collseqmb[br_elem->opr.ch]; - else - { - wint_t wc = __btowc (br_elem->opr.ch); - return __collseq_table_lookup (collseqwc, wc); - } - } - else if (br_elem->type == MB_CHAR) - { - if (nrules != 0) - return __collseq_table_lookup (collseqwc, br_elem->opr.wch); - } - else if (br_elem->type == COLL_SYM) - { - size_t sym_name_len = strlen ((char *) br_elem->opr.name); - if (nrules != 0) - { - int32_t elem, idx; - elem = seek_collating_symbol_entry (br_elem->opr.name, - sym_name_len, - symb_table, table_size, - extra); - if (elem != -1) - { - /* We found the entry. */ - idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - /* Skip the byte sequence of the collating element. */ - idx += 1 + extra[idx]; - /* Adjust for the alignment. */ - idx = (idx + 3) & ~3; - /* Skip the multibyte collation sequence value. */ - idx += sizeof (unsigned int); - /* Skip the wide char sequence of the collating element. */ - idx += sizeof (unsigned int) * - (1 + *(unsigned int *) (extra + idx)); - /* Return the collation sequence value. */ - return *(unsigned int *) (extra + idx); - } - else if (sym_name_len == 1) - { - /* No valid character. Match it as a single byte - character. */ - return collseqmb[br_elem->opr.name[0]]; - } - } - else if (sym_name_len == 1) - return collseqmb[br_elem->opr.name[0]]; - } - return UINT_MAX; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Build the range expression which starts from START_ELEM, and ends - at END_ELEM. The result are written to MBCSET and SBCSET. - RANGE_ALLOC is the allocated size of mbcset->range_starts, and - mbcset->range_ends, is a pointer argument since we may - update it. */ - -static __always_inline reg_errcode_t -build_range_exp (bitset_t sbcset, re_charset_t *mbcset, Idx *range_alloc, - bracket_elem_t *start_elem, bracket_elem_t *end_elem, - re_dfa_t *dfa, reg_syntax_t syntax, uint32_t nrules, - const unsigned char *collseqmb, const char *collseqwc, - int_fast32_t table_size, const int32_t *symb_table, - const unsigned char *extra) -{ - unsigned int ch; - uint32_t start_collseq; - uint32_t end_collseq; - - /* Equivalence Classes and Character Classes can't be a range - start/end. */ - if (__glibc_unlikely (start_elem->type == EQUIV_CLASS - || start_elem->type == CHAR_CLASS - || end_elem->type == EQUIV_CLASS - || end_elem->type == CHAR_CLASS)) - return REG_ERANGE; - - /* FIXME: Implement rational ranges here, too. */ - start_collseq = lookup_collation_sequence_value (start_elem, nrules, collseqmb, collseqwc, - table_size, symb_table, extra); - end_collseq = lookup_collation_sequence_value (end_elem, nrules, collseqmb, collseqwc, - table_size, symb_table, extra); - /* Check start/end collation sequence values. */ - if (__glibc_unlikely (start_collseq == UINT_MAX - || end_collseq == UINT_MAX)) - return REG_ECOLLATE; - if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES) - && start_collseq > end_collseq)) - return REG_ERANGE; - - /* Got valid collation sequence values, add them as a new entry. - However, if we have no collation elements, and the character set - is single byte, the single byte character set that we - build below suffices. */ - if (nrules > 0 || dfa->mb_cur_max > 1) - { - /* Check the space of the arrays. */ - if (__glibc_unlikely (*range_alloc == mbcset->nranges)) - { - /* There is not enough space, need realloc. */ - uint32_t *new_array_start; - uint32_t *new_array_end; - int new_nranges; - - /* +1 in case of mbcset->nranges is 0. */ - new_nranges = 2 * mbcset->nranges + 1; - new_array_start = re_realloc (mbcset->range_starts, uint32_t, - new_nranges); - new_array_end = re_realloc (mbcset->range_ends, uint32_t, - new_nranges); - - if (__glibc_unlikely (new_array_start == NULL - || new_array_end == NULL)) - return REG_ESPACE; - - mbcset->range_starts = new_array_start; - mbcset->range_ends = new_array_end; - *range_alloc = new_nranges; - } - - mbcset->range_starts[mbcset->nranges] = start_collseq; - mbcset->range_ends[mbcset->nranges++] = end_collseq; - } - - /* Build the table for single byte characters. */ - for (ch = 0; ch < SBC_MAX; ch++) - { - uint32_t ch_collseq; - /* if (MB_CUR_MAX == 1) */ - if (nrules == 0) - ch_collseq = collseqmb[ch]; - else - ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch)); - if (start_collseq <= ch_collseq && ch_collseq <= end_collseq) - bitset_set (sbcset, ch); - } - return REG_NOERROR; -} - -/* Local function for parse_bracket_exp used in _LIBC environment. - Build the collating element which is represented by NAME. - The result are written to MBCSET and SBCSET. - COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a - pointer argument since we may update it. */ - -static __always_inline reg_errcode_t -build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, - Idx *coll_sym_alloc, const unsigned char *name, - uint_fast32_t nrules, int_fast32_t table_size, - const int32_t *symb_table, const unsigned char *extra) -{ - int32_t elem, idx; - size_t name_len = strlen ((const char *) name); - if (nrules != 0) - { - elem = seek_collating_symbol_entry (name, name_len, symb_table, - table_size, extra); - if (elem != -1) - { - /* We found the entry. */ - idx = symb_table[2 * elem + 1]; - /* Skip the name of collating element name. */ - idx += 1 + extra[idx]; - } - else if (name_len == 1) - { - /* No valid character, treat it as a normal - character. */ - bitset_set (sbcset, name[0]); - return REG_NOERROR; - } - else - return REG_ECOLLATE; - - /* Got valid collation sequence, add it as a new entry. */ - /* Check the space of the arrays. */ - if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms)) - { - /* Not enough, realloc it. */ - /* +1 in case of mbcset->ncoll_syms is 0. */ - int new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1; - /* Use realloc since mbcset->coll_syms is NULL - if *alloc == 0. */ - int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, - new_coll_sym_alloc); - if (__glibc_unlikely (new_coll_syms == NULL)) - return REG_ESPACE; - mbcset->coll_syms = new_coll_syms; - *coll_sym_alloc = new_coll_sym_alloc; - } - mbcset->coll_syms[mbcset->ncoll_syms++] = idx; - return REG_NOERROR; - } - else - { - if (__glibc_unlikely (name_len != 1)) - return REG_ECOLLATE; - else - { - bitset_set (sbcset, name[0]); - return REG_NOERROR; - } - } -} -#endif /* _LIBC */ - -/* This function parse bracket expression like "[abc]", "[a-c]", - "[[.a-a.]]" etc. */ - -static bin_tree_t * -parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, - reg_syntax_t syntax, reg_errcode_t *err) -{ - const unsigned char *collseqmb = NULL; - const char *collseqwc = NULL; - uint_fast32_t nrules = 0; - int_fast32_t table_size = 0; - const void *symb_table = NULL; - const unsigned char *extra = NULL; - - re_token_t br_token; - re_bitset_ptr_t sbcset; - re_charset_t *mbcset; - Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0; - Idx equiv_class_alloc = 0, char_class_alloc = 0; - bool non_match = false; - bin_tree_t *work_tree; - int token_len; - bool first_round = true; -#ifdef _LIBC - collseqmb = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); - nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules) - { - /* - if (MB_CUR_MAX > 1) - */ - collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); - table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); - symb_table = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); - extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - } -#endif - sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); - if (__glibc_unlikely (sbcset == NULL || mbcset == NULL)) - { - re_free (sbcset); - re_free (mbcset); - *err = REG_ESPACE; - return NULL; - } - - token_len = peek_token_bracket (token, regexp, syntax); - if (__glibc_unlikely (token->type == END_OF_RE)) - { - *err = REG_BADPAT; - goto parse_bracket_exp_free_return; - } - if (token->type == OP_NON_MATCH_LIST) - { - mbcset->non_match = 1; - non_match = true; - if (syntax & RE_HAT_LISTS_NOT_NEWLINE) - bitset_set (sbcset, '\n'); - re_string_skip_bytes (regexp, token_len); /* Skip a token. */ - token_len = peek_token_bracket (token, regexp, syntax); - if (__glibc_unlikely (token->type == END_OF_RE)) - { - *err = REG_BADPAT; - goto parse_bracket_exp_free_return; - } - } - - /* We treat the first ']' as a normal character. */ - if (token->type == OP_CLOSE_BRACKET) - token->type = CHARACTER; - - while (1) - { - bracket_elem_t start_elem, end_elem; - unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE]; - unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE]; - reg_errcode_t ret; - int token_len2 = 0; - bool is_range_exp = false; - re_token_t token2; - - start_elem.opr.name = start_name_buf; - start_elem.type = COLL_SYM; - ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, - syntax, first_round); - if (__glibc_unlikely (ret != REG_NOERROR)) - { - *err = ret; - goto parse_bracket_exp_free_return; - } - first_round = false; - - /* Get information about the next token. We need it in any case. */ - token_len = peek_token_bracket (token, regexp, syntax); - - /* Do not check for ranges if we know they are not allowed. */ - if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) - { - if (__glibc_unlikely (token->type == END_OF_RE)) - { - *err = REG_EBRACK; - goto parse_bracket_exp_free_return; - } - if (token->type == OP_CHARSET_RANGE) - { - re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ - token_len2 = peek_token_bracket (&token2, regexp, syntax); - if (__glibc_unlikely (token2.type == END_OF_RE)) - { - *err = REG_EBRACK; - goto parse_bracket_exp_free_return; - } - if (token2.type == OP_CLOSE_BRACKET) - { - /* We treat the last '-' as a normal character. */ - re_string_skip_bytes (regexp, -token_len); - token->type = CHARACTER; - } - else - is_range_exp = true; - } - } - - if (is_range_exp == true) - { - end_elem.opr.name = end_name_buf; - end_elem.type = COLL_SYM; - ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, - dfa, syntax, true); - if (__glibc_unlikely (ret != REG_NOERROR)) - { - *err = ret; - goto parse_bracket_exp_free_return; - } - - token_len = peek_token_bracket (token, regexp, syntax); - - *err = build_range_exp (sbcset, mbcset, &range_alloc, - &start_elem, &end_elem, - dfa, syntax, nrules, collseqmb, collseqwc, - table_size, symb_table, extra); - if (__glibc_unlikely (*err != REG_NOERROR)) - goto parse_bracket_exp_free_return; - } - else - { - switch (start_elem.type) - { - case SB_CHAR: - bitset_set (sbcset, start_elem.opr.ch); - break; - case MB_CHAR: - /* Check whether the array has enough space. */ - if (__glibc_unlikely (mbchar_alloc == mbcset->nmbchars)) - { - wchar_t *new_mbchars; - /* Not enough, realloc it. */ - /* +1 in case of mbcset->nmbchars is 0. */ - mbchar_alloc = 2 * mbcset->nmbchars + 1; - /* Use realloc since array is NULL if *alloc == 0. */ - new_mbchars = re_realloc (mbcset->mbchars, wchar_t, - mbchar_alloc); - if (__glibc_unlikely (new_mbchars == NULL)) - goto parse_bracket_exp_espace; - mbcset->mbchars = new_mbchars; - } - mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch; - break; - case EQUIV_CLASS: - *err = build_equiv_class (sbcset, - mbcset, &equiv_class_alloc, - start_elem.opr.name); - if (__glibc_unlikely (*err != REG_NOERROR)) - goto parse_bracket_exp_free_return; - break; - case COLL_SYM: - *err = build_collating_symbol (sbcset, - mbcset, &coll_sym_alloc, - start_elem.opr.name, - nrules, table_size, symb_table, extra); - if (__glibc_unlikely (*err != REG_NOERROR)) - goto parse_bracket_exp_free_return; - break; - case CHAR_CLASS: - *err = build_charclass (regexp->trans, sbcset, - mbcset, &char_class_alloc, - (const char *) start_elem.opr.name, - syntax); - if (__glibc_unlikely (*err != REG_NOERROR)) - goto parse_bracket_exp_free_return; - break; - default: - DEBUG_ASSERT (false); - break; - } - } - if (__glibc_unlikely (token->type == END_OF_RE)) - { - *err = REG_EBRACK; - goto parse_bracket_exp_free_return; - } - if (token->type == OP_CLOSE_BRACKET) - break; - } - - re_string_skip_bytes (regexp, token_len); /* Skip a token. */ - - /* If it is non-matching list. */ - if (non_match) - bitset_not (sbcset); - - /* Ensure only single byte characters are set. */ - if (dfa->mb_cur_max > 1) - bitset_mask (sbcset, dfa->sb_char); - - if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes - || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes - || mbcset->non_match))) - { - bin_tree_t *mbc_tree; - int sbc_idx; - /* Build a tree for complex bracket. */ - dfa->has_mb_node = 1; - br_token.type = COMPLEX_BRACKET; - br_token.opr.mbcset = mbcset; - mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (mbc_tree == NULL)) - goto parse_bracket_exp_espace; - for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) - if (sbcset[sbc_idx]) - break; - /* If there are no bits set in sbcset, there is no point - of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ - if (sbc_idx < BITSET_WORDS) - { - /* Build a tree for simple bracket. */ - br_token.type = SIMPLE_BRACKET; - br_token.opr.sbcset = sbcset; - work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (work_tree == NULL)) - goto parse_bracket_exp_espace; - - /* Then join them by ALT node. */ - work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); - if (__glibc_unlikely (work_tree == NULL)) - goto parse_bracket_exp_espace; - } - else - { - re_free (sbcset); - work_tree = mbc_tree; - } - } - else - { - free_charset (mbcset); - /* Build a tree for simple bracket. */ - br_token.type = SIMPLE_BRACKET; - br_token.opr.sbcset = sbcset; - work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (work_tree == NULL)) - goto parse_bracket_exp_espace; - } - return work_tree; - - parse_bracket_exp_espace: - *err = REG_ESPACE; - parse_bracket_exp_free_return: - re_free (sbcset); - free_charset (mbcset); - return NULL; -} - -/* Parse an element in the bracket expression. */ - -static reg_errcode_t -parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, - re_token_t *token, int token_len, re_dfa_t *dfa, - reg_syntax_t syntax, bool accept_hyphen) -{ - int cur_char_size; - cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp)); - if (cur_char_size > 1) - { - elem->type = MB_CHAR; - elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp)); - re_string_skip_bytes (regexp, cur_char_size); - return REG_NOERROR; - } - re_string_skip_bytes (regexp, token_len); /* Skip a token. */ - if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS - || token->type == OP_OPEN_EQUIV_CLASS) - return parse_bracket_symbol (elem, regexp, token); - if (__glibc_unlikely (token->type == OP_CHARSET_RANGE) && !accept_hyphen) - { - /* A '-' must only appear as anything but a range indicator before - the closing bracket. Everything else is an error. */ - re_token_t token2; - (void) peek_token_bracket (&token2, regexp, syntax); - if (token2.type != OP_CLOSE_BRACKET) - /* The actual error value is not standardized since this whole - case is undefined. But ERANGE makes good sense. */ - return REG_ERANGE; - } - elem->type = SB_CHAR; - elem->opr.ch = token->opr.c; - return REG_NOERROR; -} - -/* Parse a bracket symbol in the bracket expression. Bracket symbols are - such as [::], [..], and - [==]. */ - -static reg_errcode_t -parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, - re_token_t *token) -{ - unsigned char ch, delim = token->opr.c; - int i = 0; - if (re_string_eoi(regexp)) - return REG_EBRACK; - for (;; ++i) - { - if (i >= BRACKET_NAME_BUF_SIZE) - return REG_EBRACK; - if (token->type == OP_OPEN_CHAR_CLASS) - ch = re_string_fetch_byte_case (regexp); - else - ch = re_string_fetch_byte (regexp); - if (re_string_eoi(regexp)) - return REG_EBRACK; - if (ch == delim && re_string_peek_byte (regexp, 0) == ']') - break; - elem->opr.name[i] = ch; - } - re_string_skip_bytes (regexp, 1); - elem->opr.name[i] = '\0'; - switch (token->type) - { - case OP_OPEN_COLL_ELEM: - elem->type = COLL_SYM; - break; - case OP_OPEN_EQUIV_CLASS: - elem->type = EQUIV_CLASS; - break; - case OP_OPEN_CHAR_CLASS: - elem->type = CHAR_CLASS; - break; - default: - break; - } - return REG_NOERROR; -} - - /* Helper function for parse_bracket_exp. - Build the equivalence class which is represented by NAME. - The result are written to MBCSET and SBCSET. - EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes, - is a pointer argument since we may update it. */ - -static reg_errcode_t -build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, - Idx *equiv_class_alloc, const unsigned char *name) -{ -#ifdef _LIBC - uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules != 0) - { - const int32_t *table, *indirect; - const unsigned char *weights, *extra, *cp; - unsigned char char_buf[2]; - int32_t idx1, idx2; - unsigned int ch; - size_t len; - /* Calculate the index for equivalence class. */ - cp = name; - table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - weights = (const unsigned char *) _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_WEIGHTMB); - extra = (const unsigned char *) _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_EXTRAMB); - indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_INDIRECTMB); - idx1 = findidx (table, indirect, extra, &cp, -1); - if (__glibc_unlikely (idx1 == 0 || *cp != '\0')) - /* This isn't a valid character. */ - return REG_ECOLLATE; - - /* Build single byte matching table for this equivalence class. */ - len = weights[idx1 & 0xffffff]; - for (ch = 0; ch < SBC_MAX; ++ch) - { - char_buf[0] = ch; - cp = char_buf; - idx2 = findidx (table, indirect, extra, &cp, 1); -/* - idx2 = table[ch]; -*/ - if (idx2 == 0) - /* This isn't a valid character. */ - continue; - /* Compare only if the length matches and the collation rule - index is the same. */ - if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24) - && memcmp (weights + (idx1 & 0xffffff) + 1, - weights + (idx2 & 0xffffff) + 1, len) == 0) - bitset_set (sbcset, ch); - } - /* Check whether the array has enough space. */ - if (__glibc_unlikely (*equiv_class_alloc == mbcset->nequiv_classes)) - { - /* Not enough, realloc it. */ - /* +1 in case of mbcset->nequiv_classes is 0. */ - Idx new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1; - /* Use realloc since the array is NULL if *alloc == 0. */ - int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, - int32_t, - new_equiv_class_alloc); - if (__glibc_unlikely (new_equiv_classes == NULL)) - return REG_ESPACE; - mbcset->equiv_classes = new_equiv_classes; - *equiv_class_alloc = new_equiv_class_alloc; - } - mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1; - } - else -#endif /* _LIBC */ - { - if (__glibc_unlikely (strlen ((const char *) name) != 1)) - return REG_ECOLLATE; - bitset_set (sbcset, *name); - } - return REG_NOERROR; -} - - /* Helper function for parse_bracket_exp. - Build the character class which is represented by NAME. - The result are written to MBCSET and SBCSET. - CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes, - is a pointer argument since we may update it. */ - -static reg_errcode_t -build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, - re_charset_t *mbcset, Idx *char_class_alloc, - const char *class_name, reg_syntax_t syntax) -{ - int i; - const char *name = class_name; - - /* In case of REG_ICASE "upper" and "lower" match the both of - upper and lower cases. */ - if ((syntax & RE_ICASE) - && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0)) - name = "alpha"; - - /* Check the space of the arrays. */ - if (__glibc_unlikely (*char_class_alloc == mbcset->nchar_classes)) - { - /* Not enough, realloc it. */ - /* +1 in case of mbcset->nchar_classes is 0. */ - Idx new_char_class_alloc = 2 * mbcset->nchar_classes + 1; - /* Use realloc since array is NULL if *alloc == 0. */ - wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, - new_char_class_alloc); - if (__glibc_unlikely (new_char_classes == NULL)) - return REG_ESPACE; - mbcset->char_classes = new_char_classes; - *char_class_alloc = new_char_class_alloc; - } - mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name); - -#define BUILD_CHARCLASS_LOOP(ctype_func) \ - do { \ - if (__glibc_unlikely (trans != NULL)) \ - { \ - for (i = 0; i < SBC_MAX; ++i) \ - if (ctype_func (i)) \ - bitset_set (sbcset, trans[i]); \ - } \ - else \ - { \ - for (i = 0; i < SBC_MAX; ++i) \ - if (ctype_func (i)) \ - bitset_set (sbcset, i); \ - } \ - } while (0) - - if (strcmp (name, "alnum") == 0) - BUILD_CHARCLASS_LOOP (isalnum); - else if (strcmp (name, "cntrl") == 0) - BUILD_CHARCLASS_LOOP (iscntrl); - else if (strcmp (name, "lower") == 0) - BUILD_CHARCLASS_LOOP (islower); - else if (strcmp (name, "space") == 0) - BUILD_CHARCLASS_LOOP (isspace); - else if (strcmp (name, "alpha") == 0) - BUILD_CHARCLASS_LOOP (isalpha); - else if (strcmp (name, "digit") == 0) - BUILD_CHARCLASS_LOOP (isdigit); - else if (strcmp (name, "print") == 0) - BUILD_CHARCLASS_LOOP (isprint); - else if (strcmp (name, "upper") == 0) - BUILD_CHARCLASS_LOOP (isupper); - else if (strcmp (name, "blank") == 0) - BUILD_CHARCLASS_LOOP (isblank); - else if (strcmp (name, "graph") == 0) - BUILD_CHARCLASS_LOOP (isgraph); - else if (strcmp (name, "punct") == 0) - BUILD_CHARCLASS_LOOP (ispunct); - else if (strcmp (name, "xdigit") == 0) - BUILD_CHARCLASS_LOOP (isxdigit); - else - return REG_ECTYPE; - - return REG_NOERROR; -} - -static bin_tree_t * -build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, - const char *class_name, - const char *extra, bool non_match, - reg_errcode_t *err) -{ - re_bitset_ptr_t sbcset; - re_charset_t *mbcset; - Idx alloc = 0; - reg_errcode_t ret; - bin_tree_t *tree; - - sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - if (__glibc_unlikely (sbcset == NULL)) - { - *err = REG_ESPACE; - return NULL; - } - mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); - if (__glibc_unlikely (mbcset == NULL)) - { - re_free (sbcset); - *err = REG_ESPACE; - return NULL; - } - mbcset->non_match = non_match; - - /* We don't care the syntax in this case. */ - ret = build_charclass (trans, sbcset, mbcset, &alloc, class_name, 0); - - if (__glibc_unlikely (ret != REG_NOERROR)) - { - re_free (sbcset); - free_charset (mbcset); - *err = ret; - return NULL; - } - /* \w match '_' also. */ - for (; *extra; extra++) - bitset_set (sbcset, *extra); - - /* If it is non-matching list. */ - if (non_match) - bitset_not (sbcset); - - /* Ensure only single byte characters are set. */ - if (dfa->mb_cur_max > 1) - bitset_mask (sbcset, dfa->sb_char); - - /* Build a tree for simple bracket. */ - re_token_t br_token = { .type = SIMPLE_BRACKET, .opr.sbcset = sbcset }; - tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (tree == NULL)) - goto build_word_op_espace; - - if (dfa->mb_cur_max > 1) - { - bin_tree_t *mbc_tree; - /* Build a tree for complex bracket. */ - br_token.type = COMPLEX_BRACKET; - br_token.opr.mbcset = mbcset; - dfa->has_mb_node = 1; - mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (__glibc_unlikely (mbc_tree == NULL)) - goto build_word_op_espace; - /* Then join them by ALT node. */ - tree = create_tree (dfa, tree, mbc_tree, OP_ALT); - if (__glibc_likely (mbc_tree != NULL)) - return tree; - } - else - { - free_charset (mbcset); - return tree; - } - - build_word_op_espace: - re_free (sbcset); - free_charset (mbcset); - *err = REG_ESPACE; - return NULL; -} - -/* This is intended for the expressions like "a{1,3}". - Fetch a number from 'input', and return the number. - Return -1 if the number field is empty like "{,1}". - Return RE_DUP_MAX + 1 if the number field is too large. - Return -2 if an error occurred. */ - -static Idx -fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) -{ - Idx num = -1; - unsigned char c; - while (1) - { - fetch_token (token, input, syntax); - c = token->opr.c; - if (__glibc_unlikely (token->type == END_OF_RE)) - return -2; - if (token->type == OP_CLOSE_DUP_NUM || c == ',') - break; - num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2) - ? -2 - : num == -1 - ? c - '0' - : MIN (RE_DUP_MAX + 1, num * 10 + c - '0')); - } - return num; -} - -static void -free_charset (re_charset_t *cset) -{ - re_free (cset->mbchars); -#ifdef _LIBC - re_free (cset->coll_syms); - re_free (cset->equiv_classes); -#endif - re_free (cset->range_starts); - re_free (cset->range_ends); - re_free (cset->char_classes); - re_free (cset); -} - -/* Functions for binary tree operation. */ - -/* Create a tree node. */ - -static bin_tree_t * -create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, - re_token_type_t type) -{ - re_token_t t = { .type = type }; - return create_token_tree (dfa, left, right, &t); -} - -static bin_tree_t * -create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, - const re_token_t *token) -{ - bin_tree_t *tree; - if (__glibc_unlikely (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE)) - { - bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); - - if (storage == NULL) - return NULL; - storage->next = dfa->str_tree_storage; - dfa->str_tree_storage = storage; - dfa->str_tree_storage_idx = 0; - } - tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++]; - - tree->parent = NULL; - tree->left = left; - tree->right = right; - tree->token = *token; - tree->token.duplicated = 0; - tree->token.opt_subexp = 0; - tree->first = NULL; - tree->next = NULL; - tree->node_idx = -1; - - if (left != NULL) - left->parent = tree; - if (right != NULL) - right->parent = tree; - return tree; -} - -/* Mark the tree SRC as an optional subexpression. - To be called from preorder or postorder. */ - -static reg_errcode_t -mark_opt_subexp (void *extra, bin_tree_t *node) -{ - Idx idx = (uintptr_t) extra; - if (node->token.type == SUBEXP && node->token.opr.idx == idx) - node->token.opt_subexp = 1; - - return REG_NOERROR; -} - -/* Free the allocated memory inside NODE. */ - -static void -free_token (re_token_t *node) -{ - if (node->type == COMPLEX_BRACKET && node->duplicated == 0) - free_charset (node->opr.mbcset); - else if (node->type == SIMPLE_BRACKET && node->duplicated == 0) - re_free (node->opr.sbcset); -} - -/* Worker function for tree walking. Free the allocated memory inside NODE - and its children. */ - -static reg_errcode_t -free_tree (void *extra, bin_tree_t *node) -{ - free_token (&node->token); - return REG_NOERROR; -} - - -/* Duplicate the node SRC, and return new node. This is a preorder - visit similar to the one implemented by the generic visitor, but - we need more infrastructure to maintain two parallel trees --- so, - it's easier to duplicate. */ - -static bin_tree_t * -duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) -{ - const bin_tree_t *node; - bin_tree_t *dup_root; - bin_tree_t **p_new = &dup_root, *dup_node = root->parent; - - for (node = root; ; ) - { - /* Create a new tree and link it back to the current parent. */ - *p_new = create_token_tree (dfa, NULL, NULL, &node->token); - if (*p_new == NULL) - return NULL; - (*p_new)->parent = dup_node; - (*p_new)->token.duplicated = 1; - dup_node = *p_new; - - /* Go to the left node, or up and to the right. */ - if (node->left) - { - node = node->left; - p_new = &dup_node->left; - } - else - { - const bin_tree_t *prev = NULL; - while (node->right == prev || node->right == NULL) - { - prev = node; - node = node->parent; - dup_node = dup_node->parent; - if (!node) - return dup_root; - } - node = node->right; - p_new = &dup_node->right; - } - } -} diff --git a/jni/parted/libgnulib/lib/regex.c b/jni/parted/libgnulib/lib/regex.c deleted file mode 100755 index 4b1a6ed..0000000 --- a/jni/parted/libgnulib/lib/regex.c +++ /dev/null @@ -1,80 +0,0 @@ -/* Extended regular expression matching and search library. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Isamu Hasegawa . - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#define __STDC_WANT_IEC_60559_BFP_EXT__ - -#ifndef _LIBC -# include - -# if __GNUC_PREREQ (4, 6) -# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" -# pragma GCC diagnostic ignored "-Wvla" -# endif -#endif - -/* Make sure no one compiles this code with a C++ compiler. */ -#if defined __cplusplus && defined _LIBC -# error "This is C code, use a C compiler" -#endif - -#ifdef _LIBC -/* We have to keep the namespace clean. */ -# define regfree(preg) __regfree (preg) -# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) -# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) -# define regerror(errcode, preg, errbuf, errbuf_size) \ - __regerror(errcode, preg, errbuf, errbuf_size) -# define re_set_registers(bu, re, nu, st, en) \ - __re_set_registers (bu, re, nu, st, en) -# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ - __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) -# define re_match(bufp, string, size, pos, regs) \ - __re_match (bufp, string, size, pos, regs) -# define re_search(bufp, string, size, startpos, range, regs) \ - __re_search (bufp, string, size, startpos, range, regs) -# define re_compile_pattern(pattern, length, bufp) \ - __re_compile_pattern (pattern, length, bufp) -# define re_set_syntax(syntax) __re_set_syntax (syntax) -# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ - __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) -# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) - -# include "../locale/localeinfo.h" -#endif - -/* On some systems, limits.h sets RE_DUP_MAX to a lower value than - GNU regex allows. Include it before , which correctly - #undefs RE_DUP_MAX and sets it to the right value. */ -#include - -#include -#include "regex_internal.h" - -#include "regex_internal.c" -#include "regcomp.c" -#include "regexec.c" - -/* Binary backward compatibility. */ -#if _LIBC -# include -# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) -link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.") -int re_max_failures = 2000; -# endif -#endif diff --git a/jni/parted/libgnulib/lib/regex_internal.c b/jni/parted/libgnulib/lib/regex_internal.c deleted file mode 100755 index 98f9eb2..0000000 --- a/jni/parted/libgnulib/lib/regex_internal.c +++ /dev/null @@ -1,1711 +0,0 @@ -/* Extended regular expression matching and search library. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Isamu Hasegawa . - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -static void re_string_construct_common (const char *str, Idx len, - re_string_t *pstr, - RE_TRANSLATE_TYPE trans, bool icase, - const re_dfa_t *dfa); -static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, - const re_node_set *nodes, - re_hashval_t hash); -static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, - const re_node_set *nodes, - unsigned int context, - re_hashval_t hash); -static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, - Idx new_buf_len); -static void build_wcs_buffer (re_string_t *pstr); -static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr); -static void build_upper_buffer (re_string_t *pstr); -static void re_string_translate_buffer (re_string_t *pstr); -static unsigned int re_string_context_at (const re_string_t *input, Idx idx, - int eflags) __attribute__ ((pure)); - -/* Functions for string operation. */ - -/* This function allocate the buffers. It is necessary to call - re_string_reconstruct before using the object. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, - RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) -{ - reg_errcode_t ret; - Idx init_buf_len; - - /* Ensure at least one character fits into the buffers. */ - if (init_len < dfa->mb_cur_max) - init_len = dfa->mb_cur_max; - init_buf_len = (len + 1 < init_len) ? len + 1: init_len; - re_string_construct_common (str, len, pstr, trans, icase, dfa); - - ret = re_string_realloc_buffers (pstr, init_buf_len); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - - pstr->word_char = dfa->word_char; - pstr->word_ops_used = dfa->word_ops_used; - pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; - pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; - pstr->valid_raw_len = pstr->valid_len; - return REG_NOERROR; -} - -/* This function allocate the buffers, and initialize them. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_string_construct (re_string_t *pstr, const char *str, Idx len, - RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) -{ - reg_errcode_t ret; - memset (pstr, '\0', sizeof (re_string_t)); - re_string_construct_common (str, len, pstr, trans, icase, dfa); - - if (len > 0) - { - ret = re_string_realloc_buffers (pstr, len + 1); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - } - pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; - - if (icase) - { - if (dfa->mb_cur_max > 1) - { - while (1) - { - ret = build_wcs_upper_buffer (pstr); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - if (pstr->valid_raw_len >= len) - break; - if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) - break; - ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - } - } - else - build_upper_buffer (pstr); - } - else - { - if (dfa->mb_cur_max > 1) - build_wcs_buffer (pstr); - else - { - if (trans != NULL) - re_string_translate_buffer (pstr); - else - { - pstr->valid_len = pstr->bufs_len; - pstr->valid_raw_len = pstr->bufs_len; - } - } - } - - return REG_NOERROR; -} - -/* Helper functions for re_string_allocate, and re_string_construct. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) -{ - if (pstr->mb_cur_max > 1) - { - wint_t *new_wcs; - - /* Avoid overflow in realloc. */ - const size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx)); - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) - < new_buf_len)) - return REG_ESPACE; - - new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); - if (__glibc_unlikely (new_wcs == NULL)) - return REG_ESPACE; - pstr->wcs = new_wcs; - if (pstr->offsets != NULL) - { - Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len); - if (__glibc_unlikely (new_offsets == NULL)) - return REG_ESPACE; - pstr->offsets = new_offsets; - } - } - if (pstr->mbs_allocated) - { - unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, - new_buf_len); - if (__glibc_unlikely (new_mbs == NULL)) - return REG_ESPACE; - pstr->mbs = new_mbs; - } - pstr->bufs_len = new_buf_len; - return REG_NOERROR; -} - - -static void -re_string_construct_common (const char *str, Idx len, re_string_t *pstr, - RE_TRANSLATE_TYPE trans, bool icase, - const re_dfa_t *dfa) -{ - pstr->raw_mbs = (const unsigned char *) str; - pstr->len = len; - pstr->raw_len = len; - pstr->trans = trans; - pstr->icase = icase; - pstr->mbs_allocated = (trans != NULL || icase); - pstr->mb_cur_max = dfa->mb_cur_max; - pstr->is_utf8 = dfa->is_utf8; - pstr->map_notascii = dfa->map_notascii; - pstr->stop = pstr->len; - pstr->raw_stop = pstr->stop; -} - - -/* Build wide character buffer PSTR->WCS. - If the byte sequence of the string are: - (0), (1), (0), (1), - Then wide character buffer will be: - , WEOF , , WEOF , - We use WEOF for padding, they indicate that the position isn't - a first byte of a multibyte character. - - Note that this function assumes PSTR->VALID_LEN elements are already - built and starts from PSTR->VALID_LEN. */ - -static void -build_wcs_buffer (re_string_t *pstr) -{ -#ifdef _LIBC - unsigned char buf[MB_LEN_MAX]; - DEBUG_ASSERT (MB_LEN_MAX >= pstr->mb_cur_max); -#else - unsigned char buf[64]; -#endif - mbstate_t prev_st; - Idx byte_idx, end_idx, remain_len; - size_t mbclen; - - /* Build the buffers from pstr->valid_len to either pstr->len or - pstr->bufs_len. */ - end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; - for (byte_idx = pstr->valid_len; byte_idx < end_idx;) - { - wchar_t wc; - const char *p; - - remain_len = end_idx - byte_idx; - prev_st = pstr->cur_state; - /* Apply the translation if we need. */ - if (__glibc_unlikely (pstr->trans != NULL)) - { - int i, ch; - - for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) - { - ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i]; - buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch]; - } - p = (const char *) buf; - } - else - p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx; - mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); - if (__glibc_unlikely (mbclen == (size_t) -1 || mbclen == 0 - || (mbclen == (size_t) -2 - && pstr->bufs_len >= pstr->len))) - { - /* We treat these cases as a singlebyte character. */ - mbclen = 1; - wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; - if (__glibc_unlikely (pstr->trans != NULL)) - wc = pstr->trans[wc]; - pstr->cur_state = prev_st; - } - else if (__glibc_unlikely (mbclen == (size_t) -2)) - { - /* The buffer doesn't have enough space, finish to build. */ - pstr->cur_state = prev_st; - break; - } - - /* Write wide character and padding. */ - pstr->wcs[byte_idx++] = wc; - /* Write paddings. */ - for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) - pstr->wcs[byte_idx++] = WEOF; - } - pstr->valid_len = byte_idx; - pstr->valid_raw_len = byte_idx; -} - -/* Build wide character buffer PSTR->WCS like build_wcs_buffer, - but for REG_ICASE. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -build_wcs_upper_buffer (re_string_t *pstr) -{ - mbstate_t prev_st; - Idx src_idx, byte_idx, end_idx, remain_len; - size_t mbclen; -#ifdef _LIBC - char buf[MB_LEN_MAX]; - DEBUG_ASSERT (pstr->mb_cur_max <= MB_LEN_MAX); -#else - char buf[64]; -#endif - - byte_idx = pstr->valid_len; - end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; - - /* The following optimization assumes that ASCII characters can be - mapped to wide characters with a simple cast. */ - if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed) - { - while (byte_idx < end_idx) - { - wchar_t wc; - unsigned char ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; - - if (isascii (ch) && mbsinit (&pstr->cur_state)) - { - /* The next step uses the assumption that wchar_t is encoded - ASCII-safe: all ASCII values can be converted like this. */ - wchar_t wcu = __towupper (ch); - if (isascii (wcu)) - { - pstr->mbs[byte_idx] = wcu; - pstr->wcs[byte_idx] = wcu; - byte_idx++; - continue; - } - } - - remain_len = end_idx - byte_idx; - prev_st = pstr->cur_state; - mbclen = __mbrtowc (&wc, - ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx - + byte_idx), remain_len, &pstr->cur_state); - if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2)) - { - wchar_t wcu = __towupper (wc); - if (wcu != wc) - { - size_t mbcdlen; - - mbcdlen = __wcrtomb (buf, wcu, &prev_st); - if (__glibc_likely (mbclen == mbcdlen)) - memcpy (pstr->mbs + byte_idx, buf, mbclen); - else - { - src_idx = byte_idx; - goto offsets_needed; - } - } - else - memcpy (pstr->mbs + byte_idx, - pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen); - pstr->wcs[byte_idx++] = wcu; - /* Write paddings. */ - for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) - pstr->wcs[byte_idx++] = WEOF; - } - else if (mbclen == (size_t) -1 || mbclen == 0 - || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) - { - /* It is an invalid character, an incomplete character - at the end of the string, or '\0'. Just use the byte. */ - pstr->mbs[byte_idx] = ch; - /* And also cast it to wide char. */ - pstr->wcs[byte_idx++] = (wchar_t) ch; - if (__glibc_unlikely (mbclen == (size_t) -1)) - pstr->cur_state = prev_st; - } - else - { - /* The buffer doesn't have enough space, finish to build. */ - pstr->cur_state = prev_st; - break; - } - } - pstr->valid_len = byte_idx; - pstr->valid_raw_len = byte_idx; - return REG_NOERROR; - } - else - for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;) - { - wchar_t wc; - const char *p; - offsets_needed: - remain_len = end_idx - byte_idx; - prev_st = pstr->cur_state; - if (__glibc_unlikely (pstr->trans != NULL)) - { - int i, ch; - - for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i) - { - ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i]; - buf[i] = pstr->trans[ch]; - } - p = (const char *) buf; - } - else - p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; - mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); - if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2)) - { - wchar_t wcu = __towupper (wc); - if (wcu != wc) - { - size_t mbcdlen; - - mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st); - if (__glibc_likely (mbclen == mbcdlen)) - memcpy (pstr->mbs + byte_idx, buf, mbclen); - else if (mbcdlen != (size_t) -1) - { - size_t i; - - if (byte_idx + mbcdlen > pstr->bufs_len) - { - pstr->cur_state = prev_st; - break; - } - - if (pstr->offsets == NULL) - { - pstr->offsets = re_malloc (Idx, pstr->bufs_len); - - if (pstr->offsets == NULL) - return REG_ESPACE; - } - if (!pstr->offsets_needed) - { - for (i = 0; i < (size_t) byte_idx; ++i) - pstr->offsets[i] = i; - pstr->offsets_needed = 1; - } - - memcpy (pstr->mbs + byte_idx, buf, mbcdlen); - pstr->wcs[byte_idx] = wcu; - pstr->offsets[byte_idx] = src_idx; - for (i = 1; i < mbcdlen; ++i) - { - pstr->offsets[byte_idx + i] - = src_idx + (i < mbclen ? i : mbclen - 1); - pstr->wcs[byte_idx + i] = WEOF; - } - pstr->len += mbcdlen - mbclen; - if (pstr->raw_stop > src_idx) - pstr->stop += mbcdlen - mbclen; - end_idx = (pstr->bufs_len > pstr->len) - ? pstr->len : pstr->bufs_len; - byte_idx += mbcdlen; - src_idx += mbclen; - continue; - } - else - memcpy (pstr->mbs + byte_idx, p, mbclen); - } - else - memcpy (pstr->mbs + byte_idx, p, mbclen); - - if (__glibc_unlikely (pstr->offsets_needed != 0)) - { - size_t i; - for (i = 0; i < mbclen; ++i) - pstr->offsets[byte_idx + i] = src_idx + i; - } - src_idx += mbclen; - - pstr->wcs[byte_idx++] = wcu; - /* Write paddings. */ - for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;) - pstr->wcs[byte_idx++] = WEOF; - } - else if (mbclen == (size_t) -1 || mbclen == 0 - || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len)) - { - /* It is an invalid character or '\0'. Just use the byte. */ - int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; - - if (__glibc_unlikely (pstr->trans != NULL)) - ch = pstr->trans [ch]; - pstr->mbs[byte_idx] = ch; - - if (__glibc_unlikely (pstr->offsets_needed != 0)) - pstr->offsets[byte_idx] = src_idx; - ++src_idx; - - /* And also cast it to wide char. */ - pstr->wcs[byte_idx++] = (wchar_t) ch; - if (__glibc_unlikely (mbclen == (size_t) -1)) - pstr->cur_state = prev_st; - } - else - { - /* The buffer doesn't have enough space, finish to build. */ - pstr->cur_state = prev_st; - break; - } - } - pstr->valid_len = byte_idx; - pstr->valid_raw_len = src_idx; - return REG_NOERROR; -} - -/* Skip characters until the index becomes greater than NEW_RAW_IDX. - Return the index. */ - -static Idx -re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) -{ - mbstate_t prev_st; - Idx rawbuf_idx; - size_t mbclen; - wint_t wc = WEOF; - - /* Skip the characters which are not necessary to check. */ - for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len; - rawbuf_idx < new_raw_idx;) - { - wchar_t wc2; - Idx remain_len = pstr->raw_len - rawbuf_idx; - prev_st = pstr->cur_state; - mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, - remain_len, &pstr->cur_state); - if (__glibc_unlikely (mbclen == (size_t) -2 || mbclen == (size_t) -1 - || mbclen == 0)) - { - /* We treat these cases as a single byte character. */ - if (mbclen == 0 || remain_len == 0) - wc = L'\0'; - else - wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx); - mbclen = 1; - pstr->cur_state = prev_st; - } - else - wc = wc2; - /* Then proceed the next character. */ - rawbuf_idx += mbclen; - } - *last_wc = wc; - return rawbuf_idx; -} - -/* Build the buffer PSTR->MBS, and apply the translation if we need. - This function is used in case of REG_ICASE. */ - -static void -build_upper_buffer (re_string_t *pstr) -{ - Idx char_idx, end_idx; - end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; - - for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) - { - int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; - if (__glibc_unlikely (pstr->trans != NULL)) - ch = pstr->trans[ch]; - pstr->mbs[char_idx] = toupper (ch); - } - pstr->valid_len = char_idx; - pstr->valid_raw_len = char_idx; -} - -/* Apply TRANS to the buffer in PSTR. */ - -static void -re_string_translate_buffer (re_string_t *pstr) -{ - Idx buf_idx, end_idx; - end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; - - for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx) - { - int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx]; - pstr->mbs[buf_idx] = pstr->trans[ch]; - } - - pstr->valid_len = buf_idx; - pstr->valid_raw_len = buf_idx; -} - -/* This function re-construct the buffers. - Concretely, convert to wide character in case of pstr->mb_cur_max > 1, - convert to upper case in case of REG_ICASE, apply translation. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) -{ - Idx offset; - - if (__glibc_unlikely (pstr->raw_mbs_idx <= idx)) - offset = idx - pstr->raw_mbs_idx; - else - { - /* Reset buffer. */ - if (pstr->mb_cur_max > 1) - memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); - pstr->len = pstr->raw_len; - pstr->stop = pstr->raw_stop; - pstr->valid_len = 0; - pstr->raw_mbs_idx = 0; - pstr->valid_raw_len = 0; - pstr->offsets_needed = 0; - pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF - : CONTEXT_NEWLINE | CONTEXT_BEGBUF); - if (!pstr->mbs_allocated) - pstr->mbs = (unsigned char *) pstr->raw_mbs; - offset = idx; - } - - if (__glibc_likely (offset != 0)) - { - /* Should the already checked characters be kept? */ - if (__glibc_likely (offset < pstr->valid_raw_len)) - { - /* Yes, move them to the front of the buffer. */ - if (__glibc_unlikely (pstr->offsets_needed)) - { - Idx low = 0, high = pstr->valid_len, mid; - do - { - mid = (high + low) / 2; - if (pstr->offsets[mid] > offset) - high = mid; - else if (pstr->offsets[mid] < offset) - low = mid + 1; - else - break; - } - while (low < high); - if (pstr->offsets[mid] < offset) - ++mid; - pstr->tip_context = re_string_context_at (pstr, mid - 1, - eflags); - /* This can be quite complicated, so handle specially - only the common and easy case where the character with - different length representation of lower and upper - case is present at or after offset. */ - if (pstr->valid_len > offset - && mid == offset && pstr->offsets[mid] == offset) - { - memmove (pstr->wcs, pstr->wcs + offset, - (pstr->valid_len - offset) * sizeof (wint_t)); - memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); - pstr->valid_len -= offset; - pstr->valid_raw_len -= offset; - for (low = 0; low < pstr->valid_len; low++) - pstr->offsets[low] = pstr->offsets[low + offset] - offset; - } - else - { - /* Otherwise, just find out how long the partial multibyte - character at offset is and fill it with WEOF/255. */ - pstr->len = pstr->raw_len - idx + offset; - pstr->stop = pstr->raw_stop - idx + offset; - pstr->offsets_needed = 0; - while (mid > 0 && pstr->offsets[mid - 1] == offset) - --mid; - while (mid < pstr->valid_len) - if (pstr->wcs[mid] != WEOF) - break; - else - ++mid; - if (mid == pstr->valid_len) - pstr->valid_len = 0; - else - { - pstr->valid_len = pstr->offsets[mid] - offset; - if (pstr->valid_len) - { - for (low = 0; low < pstr->valid_len; ++low) - pstr->wcs[low] = WEOF; - memset (pstr->mbs, 255, pstr->valid_len); - } - } - pstr->valid_raw_len = pstr->valid_len; - } - } - else - { - pstr->tip_context = re_string_context_at (pstr, offset - 1, - eflags); - if (pstr->mb_cur_max > 1) - memmove (pstr->wcs, pstr->wcs + offset, - (pstr->valid_len - offset) * sizeof (wint_t)); - if (__glibc_unlikely (pstr->mbs_allocated)) - memmove (pstr->mbs, pstr->mbs + offset, - pstr->valid_len - offset); - pstr->valid_len -= offset; - pstr->valid_raw_len -= offset; - DEBUG_ASSERT (pstr->valid_len > 0); - } - } - else - { - /* No, skip all characters until IDX. */ - Idx prev_valid_len = pstr->valid_len; - - if (__glibc_unlikely (pstr->offsets_needed)) - { - pstr->len = pstr->raw_len - idx + offset; - pstr->stop = pstr->raw_stop - idx + offset; - pstr->offsets_needed = 0; - } - pstr->valid_len = 0; - if (pstr->mb_cur_max > 1) - { - Idx wcs_idx; - wint_t wc = WEOF; - - if (pstr->is_utf8) - { - const unsigned char *raw, *p, *end; - - /* Special case UTF-8. Multi-byte chars start with any - byte other than 0x80 - 0xbf. */ - raw = pstr->raw_mbs + pstr->raw_mbs_idx; - end = raw + (offset - pstr->mb_cur_max); - if (end < pstr->raw_mbs) - end = pstr->raw_mbs; - p = raw + offset - 1; -#ifdef _LIBC - /* We know the wchar_t encoding is UCS4, so for the simple - case, ASCII characters, skip the conversion step. */ - if (isascii (*p) && __glibc_likely (pstr->trans == NULL)) - { - memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); - /* pstr->valid_len = 0; */ - wc = (wchar_t) *p; - } - else -#endif - for (; p >= end; --p) - if ((*p & 0xc0) != 0x80) - { - mbstate_t cur_state; - wchar_t wc2; - Idx mlen = raw + pstr->len - p; - unsigned char buf[6]; - size_t mbclen; - - const unsigned char *pp = p; - if (__glibc_unlikely (pstr->trans != NULL)) - { - int i = mlen < 6 ? mlen : 6; - while (--i >= 0) - buf[i] = pstr->trans[p[i]]; - pp = buf; - } - /* XXX Don't use mbrtowc, we know which conversion - to use (UTF-8 -> UCS4). */ - memset (&cur_state, 0, sizeof (cur_state)); - mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, - &cur_state); - if (raw + offset - p <= mbclen - && mbclen < (size_t) -2) - { - memset (&pstr->cur_state, '\0', - sizeof (mbstate_t)); - pstr->valid_len = mbclen - (raw + offset - p); - wc = wc2; - } - break; - } - } - - if (wc == WEOF) - pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx; - if (wc == WEOF) - pstr->tip_context - = re_string_context_at (pstr, prev_valid_len - 1, eflags); - else - pstr->tip_context = ((__glibc_unlikely (pstr->word_ops_used != 0) - && IS_WIDE_WORD_CHAR (wc)) - ? CONTEXT_WORD - : ((IS_WIDE_NEWLINE (wc) - && pstr->newline_anchor) - ? CONTEXT_NEWLINE : 0)); - if (__glibc_unlikely (pstr->valid_len)) - { - for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) - pstr->wcs[wcs_idx] = WEOF; - if (pstr->mbs_allocated) - memset (pstr->mbs, 255, pstr->valid_len); - } - pstr->valid_raw_len = pstr->valid_len; - } - else - { - int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; - pstr->valid_raw_len = 0; - if (pstr->trans) - c = pstr->trans[c]; - pstr->tip_context = (bitset_contain (pstr->word_char, c) - ? CONTEXT_WORD - : ((IS_NEWLINE (c) && pstr->newline_anchor) - ? CONTEXT_NEWLINE : 0)); - } - } - if (!__glibc_unlikely (pstr->mbs_allocated)) - pstr->mbs += offset; - } - pstr->raw_mbs_idx = idx; - pstr->len -= offset; - pstr->stop -= offset; - - /* Then build the buffers. */ - if (pstr->mb_cur_max > 1) - { - if (pstr->icase) - { - reg_errcode_t ret = build_wcs_upper_buffer (pstr); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - } - else - build_wcs_buffer (pstr); - } - else - if (__glibc_unlikely (pstr->mbs_allocated)) - { - if (pstr->icase) - build_upper_buffer (pstr); - else if (pstr->trans != NULL) - re_string_translate_buffer (pstr); - } - else - pstr->valid_len = pstr->len; - - pstr->cur_idx = 0; - return REG_NOERROR; -} - -static unsigned char -__attribute__ ((pure)) -re_string_peek_byte_case (const re_string_t *pstr, Idx idx) -{ - int ch; - Idx off; - - /* Handle the common (easiest) cases first. */ - if (__glibc_likely (!pstr->mbs_allocated)) - return re_string_peek_byte (pstr, idx); - - if (pstr->mb_cur_max > 1 - && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx)) - return re_string_peek_byte (pstr, idx); - - off = pstr->cur_idx + idx; - if (pstr->offsets_needed) - off = pstr->offsets[off]; - - ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; - - /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I - this function returns CAPITAL LETTER I instead of first byte of - DOTLESS SMALL LETTER I. The latter would confuse the parser, - since peek_byte_case doesn't advance cur_idx in any way. */ - if (pstr->offsets_needed && !isascii (ch)) - return re_string_peek_byte (pstr, idx); - - return ch; -} - -static unsigned char -re_string_fetch_byte_case (re_string_t *pstr) -{ - if (__glibc_likely (!pstr->mbs_allocated)) - return re_string_fetch_byte (pstr); - - if (pstr->offsets_needed) - { - Idx off; - int ch; - - /* For tr_TR.UTF-8 [[:islower:]] there is - [[: CAPITAL LETTER I WITH DOT lower:]] in mbs. Skip - in that case the whole multi-byte character and return - the original letter. On the other side, with - [[: DOTLESS SMALL LETTER I return [[:I, as doing - anything else would complicate things too much. */ - - if (!re_string_first_byte (pstr, pstr->cur_idx)) - return re_string_fetch_byte (pstr); - - off = pstr->offsets[pstr->cur_idx]; - ch = pstr->raw_mbs[pstr->raw_mbs_idx + off]; - - if (! isascii (ch)) - return re_string_fetch_byte (pstr); - - re_string_skip_bytes (pstr, - re_string_char_size_at (pstr, pstr->cur_idx)); - return ch; - } - - return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++]; -} - -static void -re_string_destruct (re_string_t *pstr) -{ - re_free (pstr->wcs); - re_free (pstr->offsets); - if (pstr->mbs_allocated) - re_free (pstr->mbs); -} - -/* Return the context at IDX in INPUT. */ - -static unsigned int -re_string_context_at (const re_string_t *input, Idx idx, int eflags) -{ - int c; - if (__glibc_unlikely (idx < 0)) - /* In this case, we use the value stored in input->tip_context, - since we can't know the character in input->mbs[-1] here. */ - return input->tip_context; - if (__glibc_unlikely (idx == input->len)) - return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF - : CONTEXT_NEWLINE | CONTEXT_ENDBUF); - if (input->mb_cur_max > 1) - { - wint_t wc; - Idx wc_idx = idx; - while(input->wcs[wc_idx] == WEOF) - { - DEBUG_ASSERT (wc_idx >= 0); - --wc_idx; - if (wc_idx < 0) - return input->tip_context; - } - wc = input->wcs[wc_idx]; - if (__glibc_unlikely (input->word_ops_used != 0) - && IS_WIDE_WORD_CHAR (wc)) - return CONTEXT_WORD; - return (IS_WIDE_NEWLINE (wc) && input->newline_anchor - ? CONTEXT_NEWLINE : 0); - } - else - { - c = re_string_byte_at (input, idx); - if (bitset_contain (input->word_char, c)) - return CONTEXT_WORD; - return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0; - } -} - -/* Functions for set operation. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_alloc (re_node_set *set, Idx size) -{ - set->alloc = size; - set->nelem = 0; - set->elems = re_malloc (Idx, size); - if (__glibc_unlikely (set->elems == NULL) - && (MALLOC_0_IS_NONNULL || size != 0)) - return REG_ESPACE; - return REG_NOERROR; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_init_1 (re_node_set *set, Idx elem) -{ - set->alloc = 1; - set->nelem = 1; - set->elems = re_malloc (Idx, 1); - if (__glibc_unlikely (set->elems == NULL)) - { - set->alloc = set->nelem = 0; - return REG_ESPACE; - } - set->elems[0] = elem; - return REG_NOERROR; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) -{ - set->alloc = 2; - set->elems = re_malloc (Idx, 2); - if (__glibc_unlikely (set->elems == NULL)) - return REG_ESPACE; - if (elem1 == elem2) - { - set->nelem = 1; - set->elems[0] = elem1; - } - else - { - set->nelem = 2; - if (elem1 < elem2) - { - set->elems[0] = elem1; - set->elems[1] = elem2; - } - else - { - set->elems[0] = elem2; - set->elems[1] = elem1; - } - } - return REG_NOERROR; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_init_copy (re_node_set *dest, const re_node_set *src) -{ - dest->nelem = src->nelem; - if (src->nelem > 0) - { - dest->alloc = dest->nelem; - dest->elems = re_malloc (Idx, dest->alloc); - if (__glibc_unlikely (dest->elems == NULL)) - { - dest->alloc = dest->nelem = 0; - return REG_ESPACE; - } - memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); - } - else - re_node_set_init_empty (dest); - return REG_NOERROR; -} - -/* Calculate the intersection of the sets SRC1 and SRC2. And merge it to - DEST. Return value indicate the error code or REG_NOERROR if succeeded. - Note: We assume dest->elems is NULL, when dest->alloc is 0. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, - const re_node_set *src2) -{ - Idx i1, i2, is, id, delta, sbase; - if (src1->nelem == 0 || src2->nelem == 0) - return REG_NOERROR; - - /* We need dest->nelem + 2 * elems_in_intersection; this is a - conservative estimate. */ - if (src1->nelem + src2->nelem + dest->nelem > dest->alloc) - { - Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; - Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); - if (__glibc_unlikely (new_elems == NULL)) - return REG_ESPACE; - dest->elems = new_elems; - dest->alloc = new_alloc; - } - - /* Find the items in the intersection of SRC1 and SRC2, and copy - into the top of DEST those that are not already in DEST itself. */ - sbase = dest->nelem + src1->nelem + src2->nelem; - i1 = src1->nelem - 1; - i2 = src2->nelem - 1; - id = dest->nelem - 1; - for (;;) - { - if (src1->elems[i1] == src2->elems[i2]) - { - /* Try to find the item in DEST. Maybe we could binary search? */ - while (id >= 0 && dest->elems[id] > src1->elems[i1]) - --id; - - if (id < 0 || dest->elems[id] != src1->elems[i1]) - dest->elems[--sbase] = src1->elems[i1]; - - if (--i1 < 0 || --i2 < 0) - break; - } - - /* Lower the highest of the two items. */ - else if (src1->elems[i1] < src2->elems[i2]) - { - if (--i2 < 0) - break; - } - else - { - if (--i1 < 0) - break; - } - } - - id = dest->nelem - 1; - is = dest->nelem + src1->nelem + src2->nelem - 1; - delta = is - sbase + 1; - - /* Now copy. When DELTA becomes zero, the remaining - DEST elements are already in place; this is more or - less the same loop that is in re_node_set_merge. */ - dest->nelem += delta; - if (delta > 0 && id >= 0) - for (;;) - { - if (dest->elems[is] > dest->elems[id]) - { - /* Copy from the top. */ - dest->elems[id + delta--] = dest->elems[is--]; - if (delta == 0) - break; - } - else - { - /* Slide from the bottom. */ - dest->elems[id + delta] = dest->elems[id]; - if (--id < 0) - break; - } - } - - /* Copy remaining SRC elements. */ - memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx)); - - return REG_NOERROR; -} - -/* Calculate the union set of the sets SRC1 and SRC2. And store it to - DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_init_union (re_node_set *dest, const re_node_set *src1, - const re_node_set *src2) -{ - Idx i1, i2, id; - if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0) - { - dest->alloc = src1->nelem + src2->nelem; - dest->elems = re_malloc (Idx, dest->alloc); - if (__glibc_unlikely (dest->elems == NULL)) - return REG_ESPACE; - } - else - { - if (src1 != NULL && src1->nelem > 0) - return re_node_set_init_copy (dest, src1); - else if (src2 != NULL && src2->nelem > 0) - return re_node_set_init_copy (dest, src2); - else - re_node_set_init_empty (dest); - return REG_NOERROR; - } - for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;) - { - if (src1->elems[i1] > src2->elems[i2]) - { - dest->elems[id++] = src2->elems[i2++]; - continue; - } - if (src1->elems[i1] == src2->elems[i2]) - ++i2; - dest->elems[id++] = src1->elems[i1++]; - } - if (i1 < src1->nelem) - { - memcpy (dest->elems + id, src1->elems + i1, - (src1->nelem - i1) * sizeof (Idx)); - id += src1->nelem - i1; - } - else if (i2 < src2->nelem) - { - memcpy (dest->elems + id, src2->elems + i2, - (src2->nelem - i2) * sizeof (Idx)); - id += src2->nelem - i2; - } - dest->nelem = id; - return REG_NOERROR; -} - -/* Calculate the union set of the sets DEST and SRC. And store it to - DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_node_set_merge (re_node_set *dest, const re_node_set *src) -{ - Idx is, id, sbase, delta; - if (src == NULL || src->nelem == 0) - return REG_NOERROR; - if (dest->alloc < 2 * src->nelem + dest->nelem) - { - Idx new_alloc = 2 * (src->nelem + dest->alloc); - Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc); - if (__glibc_unlikely (new_buffer == NULL)) - return REG_ESPACE; - dest->elems = new_buffer; - dest->alloc = new_alloc; - } - - if (__glibc_unlikely (dest->nelem == 0)) - { - /* Although we already guaranteed above that dest->alloc != 0 and - therefore dest->elems != NULL, add a debug assertion to pacify - GCC 11.2.1's -fanalyzer. */ - DEBUG_ASSERT (dest->elems); - dest->nelem = src->nelem; - memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); - return REG_NOERROR; - } - - /* Copy into the top of DEST the items of SRC that are not - found in DEST. Maybe we could binary search in DEST? */ - for (sbase = dest->nelem + 2 * src->nelem, - is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; ) - { - if (dest->elems[id] == src->elems[is]) - is--, id--; - else if (dest->elems[id] < src->elems[is]) - dest->elems[--sbase] = src->elems[is--]; - else /* if (dest->elems[id] > src->elems[is]) */ - --id; - } - - if (is >= 0) - { - /* If DEST is exhausted, the remaining items of SRC must be unique. */ - sbase -= is + 1; - memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx)); - } - - id = dest->nelem - 1; - is = dest->nelem + 2 * src->nelem - 1; - delta = is - sbase + 1; - if (delta == 0) - return REG_NOERROR; - - /* Now copy. When DELTA becomes zero, the remaining - DEST elements are already in place. */ - dest->nelem += delta; - for (;;) - { - if (dest->elems[is] > dest->elems[id]) - { - /* Copy from the top. */ - dest->elems[id + delta--] = dest->elems[is--]; - if (delta == 0) - break; - } - else - { - /* Slide from the bottom. */ - dest->elems[id + delta] = dest->elems[id]; - if (--id < 0) - { - /* Copy remaining SRC elements. */ - memcpy (dest->elems, dest->elems + sbase, - delta * sizeof (Idx)); - break; - } - } - } - - return REG_NOERROR; -} - -/* Insert the new element ELEM to the re_node_set* SET. - SET should not already have ELEM. - Return true if successful. */ - -static bool -__attribute_warn_unused_result__ -re_node_set_insert (re_node_set *set, Idx elem) -{ - Idx idx; - /* In case the set is empty. */ - if (set->alloc == 0) - return __glibc_likely (re_node_set_init_1 (set, elem) == REG_NOERROR); - - if (__glibc_unlikely (set->nelem) == 0) - { - /* Although we already guaranteed above that set->alloc != 0 and - therefore set->elems != NULL, add a debug assertion to pacify - GCC 11.2 -fanalyzer. */ - DEBUG_ASSERT (set->elems); - set->elems[0] = elem; - ++set->nelem; - return true; - } - - /* Realloc if we need. */ - if (set->alloc == set->nelem) - { - Idx *new_elems; - set->alloc = set->alloc * 2; - new_elems = re_realloc (set->elems, Idx, set->alloc); - if (__glibc_unlikely (new_elems == NULL)) - return false; - set->elems = new_elems; - } - - /* Move the elements which follows the new element. Test the - first element separately to skip a check in the inner loop. */ - if (elem < set->elems[0]) - { - for (idx = set->nelem; idx > 0; idx--) - set->elems[idx] = set->elems[idx - 1]; - } - else - { - for (idx = set->nelem; set->elems[idx - 1] > elem; idx--) - set->elems[idx] = set->elems[idx - 1]; - DEBUG_ASSERT (set->elems[idx - 1] < elem); - } - - /* Insert the new element. */ - set->elems[idx] = elem; - ++set->nelem; - return true; -} - -/* Insert the new element ELEM to the re_node_set* SET. - SET should not already have any element greater than or equal to ELEM. - Return true if successful. */ - -static bool -__attribute_warn_unused_result__ -re_node_set_insert_last (re_node_set *set, Idx elem) -{ - /* Realloc if we need. */ - if (set->alloc == set->nelem) - { - Idx *new_elems; - set->alloc = (set->alloc + 1) * 2; - new_elems = re_realloc (set->elems, Idx, set->alloc); - if (__glibc_unlikely (new_elems == NULL)) - return false; - set->elems = new_elems; - } - - /* Insert the new element. */ - set->elems[set->nelem++] = elem; - return true; -} - -/* Compare two node sets SET1 and SET2. - Return true if SET1 and SET2 are equivalent. */ - -static bool -__attribute__ ((pure)) -re_node_set_compare (const re_node_set *set1, const re_node_set *set2) -{ - Idx i; - if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) - return false; - for (i = set1->nelem ; --i >= 0 ; ) - if (set1->elems[i] != set2->elems[i]) - return false; - return true; -} - -/* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ - -static Idx -__attribute__ ((pure)) -re_node_set_contains (const re_node_set *set, Idx elem) -{ - __re_size_t idx, right, mid; - if (set->nelem <= 0) - return 0; - - /* Binary search the element. */ - idx = 0; - right = set->nelem - 1; - while (idx < right) - { - mid = (idx + right) / 2; - if (set->elems[mid] < elem) - idx = mid + 1; - else - right = mid; - } - return set->elems[idx] == elem ? idx + 1 : 0; -} - -static void -re_node_set_remove_at (re_node_set *set, Idx idx) -{ - if (idx < 0 || idx >= set->nelem) - return; - --set->nelem; - for (; idx < set->nelem; idx++) - set->elems[idx] = set->elems[idx + 1]; -} - - -/* Add the token TOKEN to dfa->nodes, and return the index of the token. - Or return -1 if an error occurred. */ - -static Idx -re_dfa_add_node (re_dfa_t *dfa, re_token_t token) -{ - if (__glibc_unlikely (dfa->nodes_len >= dfa->nodes_alloc)) - { - size_t new_nodes_alloc = dfa->nodes_alloc * 2; - Idx *new_nexts, *new_indices; - re_node_set *new_edests, *new_eclosures; - re_token_t *new_nodes; - - /* Avoid overflows in realloc. */ - const size_t max_object_size = MAX (sizeof (re_token_t), - MAX (sizeof (re_node_set), - sizeof (Idx))); - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) - < new_nodes_alloc)) - return -1; - - new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); - if (__glibc_unlikely (new_nodes == NULL)) - return -1; - dfa->nodes = new_nodes; - dfa->nodes_alloc = new_nodes_alloc; - new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc); - if (new_nexts != NULL) - dfa->nexts = new_nexts; - new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc); - if (new_indices != NULL) - dfa->org_indices = new_indices; - new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); - if (new_edests != NULL) - dfa->edests = new_edests; - new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); - if (new_eclosures != NULL) - dfa->eclosures = new_eclosures; - if (__glibc_unlikely (new_nexts == NULL || new_indices == NULL - || new_edests == NULL || new_eclosures == NULL)) - return -1; - } - dfa->nodes[dfa->nodes_len] = token; - dfa->nodes[dfa->nodes_len].constraint = 0; - dfa->nodes[dfa->nodes_len].accept_mb = - ((token.type == OP_PERIOD && dfa->mb_cur_max > 1) - || token.type == COMPLEX_BRACKET); - dfa->nexts[dfa->nodes_len] = -1; - re_node_set_init_empty (dfa->edests + dfa->nodes_len); - re_node_set_init_empty (dfa->eclosures + dfa->nodes_len); - return dfa->nodes_len++; -} - -static re_hashval_t -calc_state_hash (const re_node_set *nodes, unsigned int context) -{ - re_hashval_t hash = nodes->nelem + context; - Idx i; - for (i = 0 ; i < nodes->nelem ; i++) - hash += nodes->elems[i]; - return hash; -} - -/* Search for the state whose node_set is equivalent to NODES. - Return the pointer to the state, if we found it in the DFA. - Otherwise create the new one and return it. In case of an error - return NULL and set the error code in ERR. - Note: - We assume NULL as the invalid state, then it is possible that - return value is NULL and ERR is REG_NOERROR. - - We never return non-NULL value in case of any errors, it is for - optimization. */ - -static re_dfastate_t * -__attribute_warn_unused_result__ -re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, - const re_node_set *nodes) -{ - re_hashval_t hash; - re_dfastate_t *new_state; - struct re_state_table_entry *spot; - Idx i; -#if defined GCC_LINT || defined lint - /* Suppress bogus uninitialized-variable warnings. */ - *err = REG_NOERROR; -#endif - if (__glibc_unlikely (nodes->nelem == 0)) - { - *err = REG_NOERROR; - return NULL; - } - hash = calc_state_hash (nodes, 0); - spot = dfa->state_table + (hash & dfa->state_hash_mask); - - for (i = 0 ; i < spot->num ; i++) - { - re_dfastate_t *state = spot->array[i]; - if (hash != state->hash) - continue; - if (re_node_set_compare (&state->nodes, nodes)) - return state; - } - - /* There are no appropriate state in the dfa, create the new one. */ - new_state = create_ci_newstate (dfa, nodes, hash); - if (__glibc_unlikely (new_state == NULL)) - *err = REG_ESPACE; - - return new_state; -} - -/* Search for the state whose node_set is equivalent to NODES and - whose context is equivalent to CONTEXT. - Return the pointer to the state, if we found it in the DFA. - Otherwise create the new one and return it. In case of an error - return NULL and set the error code in ERR. - Note: - We assume NULL as the invalid state, then it is possible that - return value is NULL and ERR is REG_NOERROR. - - We never return non-NULL value in case of any errors, it is for - optimization. */ - -static re_dfastate_t * -__attribute_warn_unused_result__ -re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, - const re_node_set *nodes, unsigned int context) -{ - re_hashval_t hash; - re_dfastate_t *new_state; - struct re_state_table_entry *spot; - Idx i; -#if defined GCC_LINT || defined lint - /* Suppress bogus uninitialized-variable warnings. */ - *err = REG_NOERROR; -#endif - if (nodes->nelem == 0) - { - *err = REG_NOERROR; - return NULL; - } - hash = calc_state_hash (nodes, context); - spot = dfa->state_table + (hash & dfa->state_hash_mask); - - for (i = 0 ; i < spot->num ; i++) - { - re_dfastate_t *state = spot->array[i]; - if (state->hash == hash - && state->context == context - && re_node_set_compare (state->entrance_nodes, nodes)) - return state; - } - /* There are no appropriate state in 'dfa', create the new one. */ - new_state = create_cd_newstate (dfa, nodes, context, hash); - if (__glibc_unlikely (new_state == NULL)) - *err = REG_ESPACE; - - return new_state; -} - -/* Finish initialization of the new state NEWSTATE, and using its hash value - HASH put in the appropriate bucket of DFA's state table. Return value - indicates the error code if failed. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, - re_hashval_t hash) -{ - struct re_state_table_entry *spot; - reg_errcode_t err; - Idx i; - - newstate->hash = hash; - err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); - if (__glibc_unlikely (err != REG_NOERROR)) - return REG_ESPACE; - for (i = 0; i < newstate->nodes.nelem; i++) - { - Idx elem = newstate->nodes.elems[i]; - if (!IS_EPSILON_NODE (dfa->nodes[elem].type)) - if (! re_node_set_insert_last (&newstate->non_eps_nodes, elem)) - return REG_ESPACE; - } - - spot = dfa->state_table + (hash & dfa->state_hash_mask); - if (__glibc_unlikely (spot->alloc <= spot->num)) - { - Idx new_alloc = 2 * spot->num + 2; - re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, - new_alloc); - if (__glibc_unlikely (new_array == NULL)) - return REG_ESPACE; - spot->array = new_array; - spot->alloc = new_alloc; - } - spot->array[spot->num++] = newstate; - return REG_NOERROR; -} - -static void -free_state (re_dfastate_t *state) -{ - re_node_set_free (&state->non_eps_nodes); - re_node_set_free (&state->inveclosure); - if (state->entrance_nodes != &state->nodes) - { - re_node_set_free (state->entrance_nodes); - re_free (state->entrance_nodes); - } - re_node_set_free (&state->nodes); - re_free (state->word_trtable); - re_free (state->trtable); - re_free (state); -} - -/* Create the new state which is independent of contexts. - Return the new state if succeeded, otherwise return NULL. */ - -static re_dfastate_t * -__attribute_warn_unused_result__ -create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, - re_hashval_t hash) -{ - Idx i; - reg_errcode_t err; - re_dfastate_t *newstate; - - newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); - if (__glibc_unlikely (newstate == NULL)) - return NULL; - err = re_node_set_init_copy (&newstate->nodes, nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_free (newstate); - return NULL; - } - - newstate->entrance_nodes = &newstate->nodes; - for (i = 0 ; i < nodes->nelem ; i++) - { - re_token_t *node = dfa->nodes + nodes->elems[i]; - re_token_type_t type = node->type; - if (type == CHARACTER && !node->constraint) - continue; - newstate->accept_mb |= node->accept_mb; - - /* If the state has the halt node, the state is a halt state. */ - if (type == END_OF_RE) - newstate->halt = 1; - else if (type == OP_BACK_REF) - newstate->has_backref = 1; - else if (type == ANCHOR || node->constraint) - newstate->has_constraint = 1; - } - err = register_state (dfa, newstate, hash); - if (__glibc_unlikely (err != REG_NOERROR)) - { - free_state (newstate); - newstate = NULL; - } - return newstate; -} - -/* Create the new state which is depend on the context CONTEXT. - Return the new state if succeeded, otherwise return NULL. */ - -static re_dfastate_t * -__attribute_warn_unused_result__ -create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, - unsigned int context, re_hashval_t hash) -{ - Idx i, nctx_nodes = 0; - reg_errcode_t err; - re_dfastate_t *newstate; - - newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); - if (__glibc_unlikely (newstate == NULL)) - return NULL; - err = re_node_set_init_copy (&newstate->nodes, nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_free (newstate); - return NULL; - } - - newstate->context = context; - newstate->entrance_nodes = &newstate->nodes; - - for (i = 0 ; i < nodes->nelem ; i++) - { - re_token_t *node = dfa->nodes + nodes->elems[i]; - re_token_type_t type = node->type; - unsigned int constraint = node->constraint; - - if (type == CHARACTER && !constraint) - continue; - newstate->accept_mb |= node->accept_mb; - - /* If the state has the halt node, the state is a halt state. */ - if (type == END_OF_RE) - newstate->halt = 1; - else if (type == OP_BACK_REF) - newstate->has_backref = 1; - - if (constraint) - { - if (newstate->entrance_nodes == &newstate->nodes) - { - re_node_set *entrance_nodes = re_malloc (re_node_set, 1); - if (__glibc_unlikely (entrance_nodes == NULL)) - { - free_state (newstate); - return NULL; - } - newstate->entrance_nodes = entrance_nodes; - if (re_node_set_init_copy (newstate->entrance_nodes, nodes) - != REG_NOERROR) - { - free_state (newstate); - return NULL; - } - nctx_nodes = 0; - newstate->has_constraint = 1; - } - - if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context)) - { - re_node_set_remove_at (&newstate->nodes, i - nctx_nodes); - ++nctx_nodes; - } - } - } - err = register_state (dfa, newstate, hash); - if (__glibc_unlikely (err != REG_NOERROR)) - { - free_state (newstate); - newstate = NULL; - } - return newstate; -} diff --git a/jni/parted/libgnulib/lib/regexec.c b/jni/parted/libgnulib/lib/regexec.c deleted file mode 100755 index 9f065df..0000000 --- a/jni/parted/libgnulib/lib/regexec.c +++ /dev/null @@ -1,4221 +0,0 @@ -/* Extended regular expression matching and search library. - Copyright (C) 2002-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Isamu Hasegawa . - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, - Idx n); -static void match_ctx_clean (re_match_context_t *mctx); -static void match_ctx_free (re_match_context_t *cache); -static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node, - Idx str_idx, Idx from, Idx to); -static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx); -static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node, - Idx str_idx); -static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, - Idx node, Idx str_idx); -static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, - re_dfastate_t **limited_sts, Idx last_node, - Idx last_str_idx); -static reg_errcode_t re_search_internal (const regex_t *preg, - const char *string, Idx length, - Idx start, Idx last_start, Idx stop, - size_t nmatch, regmatch_t pmatch[], - int eflags); -static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, - const char *string1, Idx length1, - const char *string2, Idx length2, - Idx start, regoff_t range, - struct re_registers *regs, - Idx stop, bool ret_len); -static regoff_t re_search_stub (struct re_pattern_buffer *bufp, - const char *string, Idx length, Idx start, - regoff_t range, Idx stop, - struct re_registers *regs, - bool ret_len); -static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, - Idx nregs, int regs_allocated); -static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx); -static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match, - Idx *p_match_first); -static Idx check_halt_state_context (const re_match_context_t *mctx, - const re_dfastate_t *state, Idx idx); -static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, - regmatch_t *prev_idx_match, Idx cur_node, - Idx cur_idx, Idx nmatch); -static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, - Idx str_idx, Idx dest_node, Idx nregs, - regmatch_t *regs, regmatch_t *prevregs, - re_node_set *eps_via_nodes); -static reg_errcode_t set_regs (const regex_t *preg, - const re_match_context_t *mctx, - size_t nmatch, regmatch_t *pmatch, - bool fl_backtrack); -static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs); - -static int sift_states_iter_mb (const re_match_context_t *mctx, - re_sift_context_t *sctx, - Idx node_idx, Idx str_idx, Idx max_str_idx); -static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, - re_sift_context_t *sctx); -static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, - re_sift_context_t *sctx, Idx str_idx, - re_node_set *cur_dest); -static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, - re_sift_context_t *sctx, - Idx str_idx, - re_node_set *dest_nodes); -static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, - re_node_set *dest_nodes, - const re_node_set *candidates); -static bool check_dst_limits (const re_match_context_t *mctx, - const re_node_set *limits, - Idx dst_node, Idx dst_idx, Idx src_node, - Idx src_idx); -static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, - int boundaries, Idx subexp_idx, - Idx from_node, Idx bkref_idx); -static int check_dst_limits_calc_pos (const re_match_context_t *mctx, - Idx limit, Idx subexp_idx, - Idx node, Idx str_idx, - Idx bkref_idx); -static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, - re_node_set *dest_nodes, - const re_node_set *candidates, - re_node_set *limits, - struct re_backref_cache_entry *bkref_ents, - Idx str_idx); -static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, - re_sift_context_t *sctx, - Idx str_idx, const re_node_set *candidates); -static reg_errcode_t merge_state_array (const re_dfa_t *dfa, - re_dfastate_t **dst, - re_dfastate_t **src, Idx num); -static re_dfastate_t *find_recover_state (reg_errcode_t *err, - re_match_context_t *mctx); -static re_dfastate_t *transit_state (reg_errcode_t *err, - re_match_context_t *mctx, - re_dfastate_t *state); -static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, - re_match_context_t *mctx, - re_dfastate_t *next_state); -static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, - re_node_set *cur_nodes, - Idx str_idx); -#if 0 -static re_dfastate_t *transit_state_sb (reg_errcode_t *err, - re_match_context_t *mctx, - re_dfastate_t *pstate); -#endif -static reg_errcode_t transit_state_mb (re_match_context_t *mctx, - re_dfastate_t *pstate); -static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, - const re_node_set *nodes); -static reg_errcode_t get_subexp (re_match_context_t *mctx, - Idx bkref_node, Idx bkref_str_idx); -static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, - const re_sub_match_top_t *sub_top, - re_sub_match_last_t *sub_last, - Idx bkref_node, Idx bkref_str); -static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, - Idx subexp_idx, int type); -static reg_errcode_t check_arrival (re_match_context_t *mctx, - state_array_t *path, Idx top_node, - Idx top_str, Idx last_node, Idx last_str, - int type); -static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, - Idx str_idx, - re_node_set *cur_nodes, - re_node_set *next_nodes); -static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, - re_node_set *cur_nodes, - Idx ex_subexp, int type); -static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, - re_node_set *dst_nodes, - Idx target, Idx ex_subexp, - int type); -static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, - re_node_set *cur_nodes, Idx cur_str, - Idx subexp_num, int type); -static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state); -static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, - const re_string_t *input, Idx idx); -#ifdef _LIBC -static unsigned int find_collation_sequence_value (const unsigned char *mbs, - size_t name_len); -#endif -static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, - const re_dfastate_t *state, - re_node_set *states_node, - bitset_t *states_ch); -static bool check_node_accept (const re_match_context_t *mctx, - const re_token_t *node, Idx idx); -static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len); - -/* Entry point for POSIX code. */ - -/* regexec searches for a given pattern, specified by PREG, in the - string STRING. - - If NMATCH is zero or REG_NOSUB was set in the cflags argument to - 'regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at - least NMATCH elements, and we set them to the offsets of the - corresponding matched substrings. - - EFLAGS specifies "execution flags" which affect matching: if - REG_NOTBOL is set, then ^ does not match at the beginning of the - string; if REG_NOTEOL is set, then $ does not match at the end. - - Return 0 if a match is found, REG_NOMATCH if not, REG_BADPAT if - EFLAGS is invalid. */ - -int -regexec (const regex_t *__restrict preg, const char *__restrict string, - size_t nmatch, regmatch_t pmatch[_REGEX_NELTS (nmatch)], int eflags) -{ - reg_errcode_t err; - Idx start, length; - re_dfa_t *dfa = preg->buffer; - - if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND)) - return REG_BADPAT; - - if (eflags & REG_STARTEND) - { - start = pmatch[0].rm_so; - length = pmatch[0].rm_eo; - } - else - { - start = 0; - length = strlen (string); - } - - lock_lock (dfa->lock); - if (preg->no_sub) - err = re_search_internal (preg, string, length, start, length, - length, 0, NULL, eflags); - else - err = re_search_internal (preg, string, length, start, length, - length, nmatch, pmatch, eflags); - lock_unlock (dfa->lock); - return err != REG_NOERROR; -} - -#ifdef _LIBC -libc_hidden_def (__regexec) - -# include -versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); - -# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) -__typeof__ (__regexec) __compat_regexec; - -int -attribute_compat_text_section -__compat_regexec (const regex_t *__restrict preg, - const char *__restrict string, size_t nmatch, - regmatch_t pmatch[_REGEX_NELTS (nmatch)], int eflags) -{ - return regexec (preg, string, nmatch, pmatch, - eflags & (REG_NOTBOL | REG_NOTEOL)); -} -compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0); -# endif -#endif - -/* Entry points for GNU code. */ - -/* re_match, re_search, re_match_2, re_search_2 - - The former two functions operate on STRING with length LENGTH, - while the later two operate on concatenation of STRING1 and STRING2 - with lengths LENGTH1 and LENGTH2, respectively. - - re_match() matches the compiled pattern in BUFP against the string, - starting at index START. - - re_search() first tries matching at index START, then it tries to match - starting from index START + 1, and so on. The last start position tried - is START + RANGE. (Thus RANGE = 0 forces re_search to operate the same - way as re_match().) - - The parameter STOP of re_{match,search}_2 specifies that no match exceeding - the first STOP characters of the concatenation of the strings should be - concerned. - - If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match - and all groups is stored in REGS. (For the "_2" variants, the offsets are - computed relative to the concatenation, not relative to the individual - strings.) - - On success, re_match* functions return the length of the match, re_search* - return the position of the start of the match. They return -1 on - match failure, -2 on error. */ - -regoff_t -re_match (struct re_pattern_buffer *bufp, const char *string, Idx length, - Idx start, struct re_registers *regs) -{ - return re_search_stub (bufp, string, length, start, 0, length, regs, true); -} -#ifdef _LIBC -weak_alias (__re_match, re_match) -#endif - -regoff_t -re_search (struct re_pattern_buffer *bufp, const char *string, Idx length, - Idx start, regoff_t range, struct re_registers *regs) -{ - return re_search_stub (bufp, string, length, start, range, length, regs, - false); -} -#ifdef _LIBC -weak_alias (__re_search, re_search) -#endif - -regoff_t -re_match_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, - const char *string2, Idx length2, Idx start, - struct re_registers *regs, Idx stop) -{ - return re_search_2_stub (bufp, string1, length1, string2, length2, - start, 0, regs, stop, true); -} -#ifdef _LIBC -weak_alias (__re_match_2, re_match_2) -#endif - -regoff_t -re_search_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1, - const char *string2, Idx length2, Idx start, regoff_t range, - struct re_registers *regs, Idx stop) -{ - return re_search_2_stub (bufp, string1, length1, string2, length2, - start, range, regs, stop, false); -} -#ifdef _LIBC -weak_alias (__re_search_2, re_search_2) -#endif - -static regoff_t -re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, - Idx length1, const char *string2, Idx length2, Idx start, - regoff_t range, struct re_registers *regs, - Idx stop, bool ret_len) -{ - const char *str; - regoff_t rval; - Idx len; - char *s = NULL; - - if (__glibc_unlikely ((length1 < 0 || length2 < 0 || stop < 0 - || ckd_add (&len, length1, length2)))) - return -2; - - /* Concatenate the strings. */ - if (length2 > 0) - if (length1 > 0) - { - s = re_malloc (char, len); - - if (__glibc_unlikely (s == NULL)) - return -2; -#ifdef _LIBC - memcpy (__mempcpy (s, string1, length1), string2, length2); -#else - memcpy (s, string1, length1); - memcpy (s + length1, string2, length2); -#endif - str = s; - } - else - str = string2; - else - str = string1; - - rval = re_search_stub (bufp, str, len, start, range, stop, regs, - ret_len); - re_free (s); - return rval; -} - -/* The parameters have the same meaning as those of re_search. - Additional parameters: - If RET_LEN is true the length of the match is returned (re_match style); - otherwise the position of the match is returned. */ - -static regoff_t -re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, - Idx start, regoff_t range, Idx stop, struct re_registers *regs, - bool ret_len) -{ - reg_errcode_t result; - regmatch_t *pmatch; - Idx nregs; - regoff_t rval; - int eflags = 0; - re_dfa_t *dfa = bufp->buffer; - Idx last_start = start + range; - - /* Check for out-of-range. */ - if (__glibc_unlikely (start < 0 || start > length)) - return -1; - if (__glibc_unlikely (length < last_start - || (0 <= range && last_start < start))) - last_start = length; - else if (__glibc_unlikely (last_start < 0 - || (range < 0 && start <= last_start))) - last_start = 0; - - lock_lock (dfa->lock); - - eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; - eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; - - /* Compile fastmap if we haven't yet. */ - if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate) - re_compile_fastmap (bufp); - - if (__glibc_unlikely (bufp->no_sub)) - regs = NULL; - - /* We need at least 1 register. */ - if (regs == NULL) - nregs = 1; - else if (__glibc_unlikely (bufp->regs_allocated == REGS_FIXED - && regs->num_regs <= bufp->re_nsub)) - { - nregs = regs->num_regs; - if (__glibc_unlikely (nregs < 1)) - { - /* Nothing can be copied to regs. */ - regs = NULL; - nregs = 1; - } - } - else - nregs = bufp->re_nsub + 1; - pmatch = re_malloc (regmatch_t, nregs); - if (__glibc_unlikely (pmatch == NULL)) - { - rval = -2; - goto out; - } - - result = re_search_internal (bufp, string, length, start, last_start, stop, - nregs, pmatch, eflags); - - rval = 0; - - /* I hope we needn't fill their regs with -1's when no match was found. */ - if (result != REG_NOERROR) - rval = result == REG_NOMATCH ? -1 : -2; - else if (regs != NULL) - { - /* If caller wants register contents data back, copy them. */ - bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, - bufp->regs_allocated); - if (__glibc_unlikely (bufp->regs_allocated == REGS_UNALLOCATED)) - rval = -2; - } - - if (__glibc_likely (rval == 0)) - { - if (ret_len) - { - DEBUG_ASSERT (pmatch[0].rm_so == start); - rval = pmatch[0].rm_eo - start; - } - else - rval = pmatch[0].rm_so; - } - re_free (pmatch); - out: - lock_unlock (dfa->lock); - return rval; -} - -static unsigned -re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, - int regs_allocated) -{ - int rval = REGS_REALLOCATE; - Idx i; - Idx need_regs = nregs + 1; - /* We need one extra element beyond 'num_regs' for the '-1' marker GNU code - uses. */ - - /* Have the register data arrays been allocated? */ - if (regs_allocated == REGS_UNALLOCATED) - { /* No. So allocate them with malloc. */ - regs->start = re_malloc (regoff_t, need_regs); - if (__glibc_unlikely (regs->start == NULL)) - return REGS_UNALLOCATED; - regs->end = re_malloc (regoff_t, need_regs); - if (__glibc_unlikely (regs->end == NULL)) - { - re_free (regs->start); - return REGS_UNALLOCATED; - } - regs->num_regs = need_regs; - } - else if (regs_allocated == REGS_REALLOCATE) - { /* Yes. If we need more elements than were already - allocated, reallocate them. If we need fewer, just - leave it alone. */ - if (__glibc_unlikely (need_regs > regs->num_regs)) - { - regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); - regoff_t *new_end; - if (__glibc_unlikely (new_start == NULL)) - return REGS_UNALLOCATED; - new_end = re_realloc (regs->end, regoff_t, need_regs); - if (__glibc_unlikely (new_end == NULL)) - { - re_free (new_start); - return REGS_UNALLOCATED; - } - regs->start = new_start; - regs->end = new_end; - regs->num_regs = need_regs; - } - } - else - { - DEBUG_ASSERT (regs_allocated == REGS_FIXED); - /* This function may not be called with REGS_FIXED and nregs too big. */ - DEBUG_ASSERT (nregs <= regs->num_regs); - rval = REGS_FIXED; - } - - /* Copy the regs. */ - for (i = 0; i < nregs; ++i) - { - regs->start[i] = pmatch[i].rm_so; - regs->end[i] = pmatch[i].rm_eo; - } - for ( ; i < regs->num_regs; ++i) - regs->start[i] = regs->end[i] = -1; - - return rval; -} - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use - this memory for recording register information. STARTS and ENDS - must be allocated using the malloc library routine, and must each - be at least NUM_REGS * sizeof (regoff_t) bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - PATTERN_BUFFER will allocate its own register data, without - freeing the old data. */ - -void -re_set_registers (struct re_pattern_buffer *bufp, struct re_registers *regs, - __re_size_t num_regs, regoff_t *starts, regoff_t *ends) -{ - if (num_regs) - { - bufp->regs_allocated = REGS_REALLOCATE; - regs->num_regs = num_regs; - regs->start = starts; - regs->end = ends; - } - else - { - bufp->regs_allocated = REGS_UNALLOCATED; - regs->num_regs = 0; - regs->start = regs->end = NULL; - } -} -#ifdef _LIBC -weak_alias (__re_set_registers, re_set_registers) -#endif - -/* Entry points compatible with 4.2 BSD regex library. We don't define - them unless specifically requested. */ - -#if defined _REGEX_RE_COMP || defined _LIBC -int -# ifdef _LIBC -weak_function -# endif -re_exec (const char *s) -{ - return 0 == regexec (&re_comp_buf, s, 0, NULL, 0); -} -#endif /* _REGEX_RE_COMP */ - -/* Internal entry point. */ - -/* Searches for a compiled pattern PREG in the string STRING, whose - length is LENGTH. NMATCH, PMATCH, and EFLAGS have the same - meaning as with regexec. LAST_START is START + RANGE, where - START and RANGE have the same meaning as with re_search. - Return REG_NOERROR if we find a match, and REG_NOMATCH if not, - otherwise return the error code. - Note: We assume front end functions already check ranges. - (0 <= LAST_START && LAST_START <= LENGTH) */ - -static reg_errcode_t -__attribute_warn_unused_result__ -re_search_internal (const regex_t *preg, const char *string, Idx length, - Idx start, Idx last_start, Idx stop, size_t nmatch, - regmatch_t pmatch[], int eflags) -{ - reg_errcode_t err; - const re_dfa_t *dfa = preg->buffer; - Idx left_lim, right_lim; - int incr; - bool fl_longest_match; - int match_kind; - Idx match_first; - Idx match_last = -1; - Idx extra_nmatch; - bool sb; - int ch; - re_match_context_t mctx = { .dfa = dfa }; - char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate - && start != last_start && !preg->can_be_null) - ? preg->fastmap : NULL); - RE_TRANSLATE_TYPE t = preg->translate; - - extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0; - nmatch -= extra_nmatch; - - /* Check if the DFA haven't been compiled. */ - if (__glibc_unlikely (preg->used == 0 || dfa->init_state == NULL - || dfa->init_state_word == NULL - || dfa->init_state_nl == NULL - || dfa->init_state_begbuf == NULL)) - return REG_NOMATCH; - - /* We assume front-end functions already check them. */ - DEBUG_ASSERT (0 <= last_start && last_start <= length); - - /* If initial states with non-begbuf contexts have no elements, - the regex must be anchored. If preg->newline_anchor is set, - we'll never use init_state_nl, so do not check it. */ - if (dfa->init_state->nodes.nelem == 0 - && dfa->init_state_word->nodes.nelem == 0 - && (dfa->init_state_nl->nodes.nelem == 0 - || !preg->newline_anchor)) - { - if (start != 0 && last_start != 0) - return REG_NOMATCH; - start = last_start = 0; - } - - /* We must check the longest matching, if nmatch > 0. */ - fl_longest_match = (nmatch != 0 || dfa->nbackref); - - err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, - preg->translate, (preg->syntax & RE_ICASE) != 0, - dfa); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - mctx.input.stop = stop; - mctx.input.raw_stop = stop; - mctx.input.newline_anchor = preg->newline_anchor; - - err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - - /* We will log all the DFA states through which the dfa pass, - if nmatch > 1, or this dfa has "multibyte node", which is a - back-reference or a node which can accept multibyte character or - multi character collating element. */ - if (nmatch > 1 || dfa->has_mb_node) - { - /* Avoid overflow. */ - if (__glibc_unlikely ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) - <= mctx.input.bufs_len))) - { - err = REG_ESPACE; - goto free_return; - } - - mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); - if (__glibc_unlikely (mctx.state_log == NULL)) - { - err = REG_ESPACE; - goto free_return; - } - } - - match_first = start; - mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF - : CONTEXT_NEWLINE | CONTEXT_BEGBUF; - - /* Check incrementally whether the input string matches. */ - incr = (last_start < start) ? -1 : 1; - left_lim = (last_start < start) ? last_start : start; - right_lim = (last_start < start) ? start : last_start; - sb = dfa->mb_cur_max == 1; - match_kind = - (fastmap - ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0) - | (start <= last_start ? 2 : 0) - | (t != NULL ? 1 : 0)) - : 8); - - for (;; match_first += incr) - { - err = REG_NOMATCH; - if (match_first < left_lim || right_lim < match_first) - goto free_return; - - /* Advance as rapidly as possible through the string, until we - find a plausible place to start matching. This may be done - with varying efficiency, so there are various possibilities: - only the most common of them are specialized, in order to - save on code size. We use a switch statement for speed. */ - switch (match_kind) - { - case 8: - /* No fastmap. */ - break; - - case 7: - /* Fastmap with single-byte translation, match forward. */ - while (__glibc_likely (match_first < right_lim) - && !fastmap[t[(unsigned char) string[match_first]]]) - ++match_first; - goto forward_match_found_start_or_reached_end; - - case 6: - /* Fastmap without translation, match forward. */ - while (__glibc_likely (match_first < right_lim) - && !fastmap[(unsigned char) string[match_first]]) - ++match_first; - - forward_match_found_start_or_reached_end: - if (__glibc_unlikely (match_first == right_lim)) - { - ch = match_first >= length - ? 0 : (unsigned char) string[match_first]; - if (!fastmap[t ? t[ch] : ch]) - goto free_return; - } - break; - - case 4: - case 5: - /* Fastmap without multi-byte translation, match backwards. */ - while (match_first >= left_lim) - { - ch = match_first >= length - ? 0 : (unsigned char) string[match_first]; - if (fastmap[t ? t[ch] : ch]) - break; - --match_first; - } - if (match_first < left_lim) - goto free_return; - break; - - default: - /* In this case, we can't determine easily the current byte, - since it might be a component byte of a multibyte - character. Then we use the constructed buffer instead. */ - for (;;) - { - /* If MATCH_FIRST is out of the valid range, reconstruct the - buffers. */ - __re_size_t offset = match_first - mctx.input.raw_mbs_idx; - if (__glibc_unlikely (offset - >= (__re_size_t) mctx.input.valid_raw_len)) - { - err = re_string_reconstruct (&mctx.input, match_first, - eflags); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - - offset = match_first - mctx.input.raw_mbs_idx; - } - /* Use buffer byte if OFFSET is in buffer, otherwise '\0'. */ - ch = (offset < mctx.input.valid_len - ? re_string_byte_at (&mctx.input, offset) : 0); - if (fastmap[ch]) - break; - match_first += incr; - if (match_first < left_lim || match_first > right_lim) - { - err = REG_NOMATCH; - goto free_return; - } - } - break; - } - - /* Reconstruct the buffers so that the matcher can assume that - the matching starts from the beginning of the buffer. */ - err = re_string_reconstruct (&mctx.input, match_first, eflags); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - - /* Don't consider this char as a possible match start if it part, - yet isn't the head, of a multibyte character. */ - if (!sb && !re_string_first_byte (&mctx.input, 0)) - continue; - - /* It seems to be appropriate one, then use the matcher. */ - /* We assume that the matching starts from 0. */ - mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0; - match_last = check_matching (&mctx, fl_longest_match, - start <= last_start ? &match_first : NULL); - if (match_last != -1) - { - if (__glibc_unlikely (match_last == -2)) - { - err = REG_ESPACE; - goto free_return; - } - else - { - mctx.match_last = match_last; - if ((!preg->no_sub && nmatch > 1) || dfa->nbackref) - { - re_dfastate_t *pstate = mctx.state_log[match_last]; - mctx.last_node = check_halt_state_context (&mctx, pstate, - match_last); - } - if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match) - || dfa->nbackref) - { - err = prune_impossible_nodes (&mctx); - if (err == REG_NOERROR) - break; - if (__glibc_unlikely (err != REG_NOMATCH)) - goto free_return; - match_last = -1; - } - else - break; /* We found a match. */ - } - } - - match_ctx_clean (&mctx); - } - - DEBUG_ASSERT (match_last != -1); - DEBUG_ASSERT (err == REG_NOERROR); - - /* Set pmatch[] if we need. */ - if (nmatch > 0) - { - Idx reg_idx; - - /* Initialize registers. */ - for (reg_idx = 1; reg_idx < nmatch; ++reg_idx) - pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1; - - /* Set the points where matching start/end. */ - pmatch[0].rm_so = 0; - pmatch[0].rm_eo = mctx.match_last; - /* FIXME: This function should fail if mctx.match_last exceeds - the maximum possible regoff_t value. We need a new error - code REG_OVERFLOW. */ - - if (!preg->no_sub && nmatch > 1) - { - err = set_regs (preg, &mctx, nmatch, pmatch, - dfa->has_plural_match && dfa->nbackref > 0); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - } - - /* At last, add the offset to each register, since we slid - the buffers so that we could assume that the matching starts - from 0. */ - for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) - if (pmatch[reg_idx].rm_so != -1) - { - if (__glibc_unlikely (mctx.input.offsets_needed != 0)) - { - pmatch[reg_idx].rm_so = - (pmatch[reg_idx].rm_so == mctx.input.valid_len - ? mctx.input.valid_raw_len - : mctx.input.offsets[pmatch[reg_idx].rm_so]); - pmatch[reg_idx].rm_eo = - (pmatch[reg_idx].rm_eo == mctx.input.valid_len - ? mctx.input.valid_raw_len - : mctx.input.offsets[pmatch[reg_idx].rm_eo]); - } - pmatch[reg_idx].rm_so += match_first; - pmatch[reg_idx].rm_eo += match_first; - } - for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx) - { - pmatch[nmatch + reg_idx].rm_so = -1; - pmatch[nmatch + reg_idx].rm_eo = -1; - } - - if (dfa->subexp_map) - for (reg_idx = 0; reg_idx + 1 < nmatch; reg_idx++) - if (dfa->subexp_map[reg_idx] != reg_idx) - { - pmatch[reg_idx + 1].rm_so - = pmatch[dfa->subexp_map[reg_idx] + 1].rm_so; - pmatch[reg_idx + 1].rm_eo - = pmatch[dfa->subexp_map[reg_idx] + 1].rm_eo; - } - } - - free_return: - re_free (mctx.state_log); - if (dfa->nbackref) - match_ctx_free (&mctx); - re_string_destruct (&mctx.input); - return err; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -prune_impossible_nodes (re_match_context_t *mctx) -{ - const re_dfa_t *const dfa = mctx->dfa; - Idx halt_node, match_last; - reg_errcode_t ret; - re_dfastate_t **sifted_states; - re_dfastate_t **lim_states = NULL; - re_sift_context_t sctx; - DEBUG_ASSERT (mctx->state_log != NULL); - match_last = mctx->match_last; - halt_node = mctx->last_node; - - /* Avoid overflow. */ - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) - <= match_last)) - return REG_ESPACE; - - sifted_states = re_malloc (re_dfastate_t *, match_last + 1); - if (__glibc_unlikely (sifted_states == NULL)) - { - ret = REG_ESPACE; - goto free_return; - } - if (dfa->nbackref) - { - lim_states = re_malloc (re_dfastate_t *, match_last + 1); - if (__glibc_unlikely (lim_states == NULL)) - { - ret = REG_ESPACE; - goto free_return; - } - while (1) - { - memset (lim_states, '\0', - sizeof (re_dfastate_t *) * (match_last + 1)); - sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, - match_last); - ret = sift_states_backward (mctx, &sctx); - re_node_set_free (&sctx.limits); - if (__glibc_unlikely (ret != REG_NOERROR)) - goto free_return; - if (sifted_states[0] != NULL || lim_states[0] != NULL) - break; - do - { - --match_last; - if (match_last < 0) - { - ret = REG_NOMATCH; - goto free_return; - } - } while (mctx->state_log[match_last] == NULL - || !mctx->state_log[match_last]->halt); - halt_node = check_halt_state_context (mctx, - mctx->state_log[match_last], - match_last); - } - ret = merge_state_array (dfa, sifted_states, lim_states, - match_last + 1); - re_free (lim_states); - lim_states = NULL; - if (__glibc_unlikely (ret != REG_NOERROR)) - goto free_return; - } - else - { - sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); - ret = sift_states_backward (mctx, &sctx); - re_node_set_free (&sctx.limits); - if (__glibc_unlikely (ret != REG_NOERROR)) - goto free_return; - if (sifted_states[0] == NULL) - { - ret = REG_NOMATCH; - goto free_return; - } - } - re_free (mctx->state_log); - mctx->state_log = sifted_states; - sifted_states = NULL; - mctx->last_node = halt_node; - mctx->match_last = match_last; - ret = REG_NOERROR; - free_return: - re_free (sifted_states); - re_free (lim_states); - return ret; -} - -/* Acquire an initial state and return it. - We must select appropriate initial state depending on the context, - since initial states may have constraints like "\<", "^", etc.. */ - -static __always_inline re_dfastate_t * -acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, - Idx idx) -{ - const re_dfa_t *const dfa = mctx->dfa; - if (dfa->init_state->has_constraint) - { - unsigned int context; - context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags); - if (IS_WORD_CONTEXT (context)) - return dfa->init_state_word; - else if (IS_ORDINARY_CONTEXT (context)) - return dfa->init_state; - else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context)) - return dfa->init_state_begbuf; - else if (IS_NEWLINE_CONTEXT (context)) - return dfa->init_state_nl; - else if (IS_BEGBUF_CONTEXT (context)) - { - /* It is relatively rare case, then calculate on demand. */ - return re_acquire_state_context (err, dfa, - dfa->init_state->entrance_nodes, - context); - } - else - /* Must not happen? */ - return dfa->init_state; - } - else - return dfa->init_state; -} - -/* Check whether the regular expression match input string INPUT or not, - and return the index where the matching end. Return -1 if - there is no match, and return -2 in case of an error. - FL_LONGEST_MATCH means we want the POSIX longest matching. - If P_MATCH_FIRST is not NULL, and the match fails, it is set to the - next place where we may want to try matching. - Note that the matcher assumes that the matching starts from the current - index of the buffer. */ - -static Idx -__attribute_warn_unused_result__ -check_matching (re_match_context_t *mctx, bool fl_longest_match, - Idx *p_match_first) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; - Idx match = 0; - Idx match_last = -1; - Idx cur_str_idx = re_string_cur_idx (&mctx->input); - re_dfastate_t *cur_state; - bool at_init_state = p_match_first != NULL; - Idx next_start_idx = cur_str_idx; - - err = REG_NOERROR; - cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); - /* An initial state must not be NULL (invalid). */ - if (__glibc_unlikely (cur_state == NULL)) - { - DEBUG_ASSERT (err == REG_ESPACE); - return -2; - } - - if (mctx->state_log != NULL) - { - mctx->state_log[cur_str_idx] = cur_state; - - /* Check OP_OPEN_SUBEXP in the initial state in case that we use them - later. E.g. Processing back references. */ - if (__glibc_unlikely (dfa->nbackref)) - { - at_init_state = false; - err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - if (cur_state->has_backref) - { - err = transit_state_bkref (mctx, &cur_state->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - } - } - - /* If the RE accepts NULL string. */ - if (__glibc_unlikely (cur_state->halt)) - { - if (!cur_state->has_constraint - || check_halt_state_context (mctx, cur_state, cur_str_idx)) - { - if (!fl_longest_match) - return cur_str_idx; - else - { - match_last = cur_str_idx; - match = 1; - } - } - } - - while (!re_string_eoi (&mctx->input)) - { - re_dfastate_t *old_state = cur_state; - Idx next_char_idx = re_string_cur_idx (&mctx->input) + 1; - - if ((__glibc_unlikely (next_char_idx >= mctx->input.bufs_len) - && mctx->input.bufs_len < mctx->input.len) - || (__glibc_unlikely (next_char_idx >= mctx->input.valid_len) - && mctx->input.valid_len < mctx->input.len)) - { - err = extend_buffers (mctx, next_char_idx + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - { - DEBUG_ASSERT (err == REG_ESPACE); - return -2; - } - } - - cur_state = transit_state (&err, mctx, cur_state); - if (mctx->state_log != NULL) - cur_state = merge_state_with_log (&err, mctx, cur_state); - - if (cur_state == NULL) - { - /* Reached the invalid state or an error. Try to recover a valid - state using the state log, if available and if we have not - already found a valid (even if not the longest) match. */ - if (__glibc_unlikely (err != REG_NOERROR)) - return -2; - - if (mctx->state_log == NULL - || (match && !fl_longest_match) - || (cur_state = find_recover_state (&err, mctx)) == NULL) - break; - } - - if (__glibc_unlikely (at_init_state)) - { - if (old_state == cur_state) - next_start_idx = next_char_idx; - else - at_init_state = false; - } - - if (cur_state->halt) - { - /* Reached a halt state. - Check the halt state can satisfy the current context. */ - if (!cur_state->has_constraint - || check_halt_state_context (mctx, cur_state, - re_string_cur_idx (&mctx->input))) - { - /* We found an appropriate halt state. */ - match_last = re_string_cur_idx (&mctx->input); - match = 1; - - /* We found a match, do not modify match_first below. */ - p_match_first = NULL; - if (!fl_longest_match) - break; - } - } - } - - if (p_match_first) - *p_match_first += next_start_idx; - - return match_last; -} - -/* Check NODE match the current context. */ - -static bool -check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) -{ - re_token_type_t type = dfa->nodes[node].type; - unsigned int constraint = dfa->nodes[node].constraint; - if (type != END_OF_RE) - return false; - if (!constraint) - return true; - if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context)) - return false; - return true; -} - -/* Check the halt state STATE match the current context. - Return 0 if not match, if the node, STATE has, is a halt node and - match the context, return the node. */ - -static Idx -check_halt_state_context (const re_match_context_t *mctx, - const re_dfastate_t *state, Idx idx) -{ - Idx i; - unsigned int context; - DEBUG_ASSERT (state->halt); - context = re_string_context_at (&mctx->input, idx, mctx->eflags); - for (i = 0; i < state->nodes.nelem; ++i) - if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context)) - return state->nodes.elems[i]; - return 0; -} - -/* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA - corresponding to the DFA). - Return the destination node, and update EPS_VIA_NODES; - return -1 on match failure, -2 on error. */ - -static Idx -proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, - regmatch_t *prevregs, - Idx *pidx, Idx node, re_node_set *eps_via_nodes, - struct re_fail_stack_t *fs) -{ - const re_dfa_t *const dfa = mctx->dfa; - if (IS_EPSILON_NODE (dfa->nodes[node].type)) - { - re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; - re_node_set *edests = &dfa->edests[node]; - - if (! re_node_set_contains (eps_via_nodes, node)) - { - bool ok = re_node_set_insert (eps_via_nodes, node); - if (__glibc_unlikely (! ok)) - return -2; - } - - /* Pick a valid destination, or return -1 if none is found. */ - Idx dest_node = -1; - for (Idx i = 0; i < edests->nelem; i++) - { - Idx candidate = edests->elems[i]; - if (!re_node_set_contains (cur_nodes, candidate)) - continue; - if (dest_node == -1) - dest_node = candidate; - - else - { - /* In order to avoid infinite loop like "(a*)*", return the second - epsilon-transition if the first was already considered. */ - if (re_node_set_contains (eps_via_nodes, dest_node)) - return candidate; - - /* Otherwise, push the second epsilon-transition on the fail stack. */ - else if (fs != NULL - && push_fail_stack (fs, *pidx, candidate, nregs, regs, - prevregs, eps_via_nodes)) - return -2; - - /* We know we are going to exit. */ - break; - } - } - return dest_node; - } - else - { - Idx naccepted = 0; - re_token_type_t type = dfa->nodes[node].type; - - if (dfa->nodes[node].accept_mb) - naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx); - else if (type == OP_BACK_REF) - { - Idx subexp_idx = dfa->nodes[node].opr.idx + 1; - if (subexp_idx < nregs) - naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so; - if (fs != NULL) - { - if (subexp_idx >= nregs - || regs[subexp_idx].rm_so == -1 - || regs[subexp_idx].rm_eo == -1) - return -1; - else if (naccepted) - { - char *buf = (char *) re_string_get_buffer (&mctx->input); - if (mctx->input.valid_len - *pidx < naccepted - || (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx, - naccepted) - != 0)) - return -1; - } - } - - if (naccepted == 0) - { - Idx dest_node; - bool ok = re_node_set_insert (eps_via_nodes, node); - if (__glibc_unlikely (! ok)) - return -2; - dest_node = dfa->edests[node].elems[0]; - if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, - dest_node)) - return dest_node; - } - } - - if (naccepted != 0 - || check_node_accept (mctx, dfa->nodes + node, *pidx)) - { - Idx dest_node = dfa->nexts[node]; - *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted; - if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL - || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, - dest_node))) - return -1; - re_node_set_empty (eps_via_nodes); - return dest_node; - } - } - return -1; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, - Idx nregs, regmatch_t *regs, regmatch_t *prevregs, - re_node_set *eps_via_nodes) -{ - reg_errcode_t err; - Idx num = fs->num; - if (num == fs->alloc) - { - struct re_fail_stack_ent_t *new_array; - new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t, - fs->alloc * 2); - if (new_array == NULL) - return REG_ESPACE; - fs->alloc *= 2; - fs->stack = new_array; - } - fs->stack[num].idx = str_idx; - fs->stack[num].node = dest_node; - fs->stack[num].regs = re_malloc (regmatch_t, 2 * nregs); - if (fs->stack[num].regs == NULL) - return REG_ESPACE; - fs->num = num + 1; - memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs); - memcpy (fs->stack[num].regs + nregs, prevregs, sizeof (regmatch_t) * nregs); - err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes); - return err; -} - -static Idx -pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, - regmatch_t *regs, regmatch_t *prevregs, - re_node_set *eps_via_nodes) -{ - if (fs == NULL || fs->num == 0) - return -1; - Idx num = --fs->num; - *pidx = fs->stack[num].idx; - memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs); - memcpy (prevregs, fs->stack[num].regs + nregs, sizeof (regmatch_t) * nregs); - re_node_set_free (eps_via_nodes); - re_free (fs->stack[num].regs); - *eps_via_nodes = fs->stack[num].eps_via_nodes; - DEBUG_ASSERT (0 <= fs->stack[num].node); - return fs->stack[num].node; -} - - -#define DYNARRAY_STRUCT regmatch_list -#define DYNARRAY_ELEMENT regmatch_t -#define DYNARRAY_PREFIX regmatch_list_ -#include - -/* Set the positions where the subexpressions are starts/ends to registers - PMATCH. - Note: We assume that pmatch[0] is already set, and - pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, - regmatch_t *pmatch, bool fl_backtrack) -{ - const re_dfa_t *dfa = preg->buffer; - Idx idx, cur_node; - re_node_set eps_via_nodes; - struct re_fail_stack_t *fs; - struct re_fail_stack_t fs_body = { 0, 2, NULL }; - struct regmatch_list prev_match; - regmatch_list_init (&prev_match); - - DEBUG_ASSERT (nmatch > 1); - DEBUG_ASSERT (mctx->state_log != NULL); - if (fl_backtrack) - { - fs = &fs_body; - fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc); - if (fs->stack == NULL) - return REG_ESPACE; - } - else - fs = NULL; - - cur_node = dfa->init_node; - re_node_set_init_empty (&eps_via_nodes); - - if (!regmatch_list_resize (&prev_match, nmatch)) - { - regmatch_list_free (&prev_match); - free_fail_stack_return (fs); - return REG_ESPACE; - } - regmatch_t *prev_idx_match = regmatch_list_begin (&prev_match); - memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); - - for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) - { - update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch); - - if ((idx == pmatch[0].rm_eo && cur_node == mctx->last_node) - || (fs && re_node_set_contains (&eps_via_nodes, cur_node))) - { - Idx reg_idx; - cur_node = -1; - if (fs) - { - for (reg_idx = 0; reg_idx < nmatch; ++reg_idx) - if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1) - { - cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, - prev_idx_match, &eps_via_nodes); - break; - } - } - if (cur_node < 0) - { - re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); - return free_fail_stack_return (fs); - } - } - - /* Proceed to next node. */ - cur_node = proceed_next_node (mctx, nmatch, pmatch, prev_idx_match, - &idx, cur_node, - &eps_via_nodes, fs); - - if (__glibc_unlikely (cur_node < 0)) - { - if (__glibc_unlikely (cur_node == -2)) - { - re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); - free_fail_stack_return (fs); - return REG_ESPACE; - } - cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, - prev_idx_match, &eps_via_nodes); - if (cur_node < 0) - { - re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); - free_fail_stack_return (fs); - return REG_NOMATCH; - } - } - } - re_node_set_free (&eps_via_nodes); - regmatch_list_free (&prev_match); - return free_fail_stack_return (fs); -} - -static reg_errcode_t -free_fail_stack_return (struct re_fail_stack_t *fs) -{ - if (fs) - { - Idx fs_idx; - for (fs_idx = 0; fs_idx < fs->num; ++fs_idx) - { - re_node_set_free (&fs->stack[fs_idx].eps_via_nodes); - re_free (fs->stack[fs_idx].regs); - } - re_free (fs->stack); - } - return REG_NOERROR; -} - -static void -update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, - regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) -{ - int type = dfa->nodes[cur_node].type; - if (type == OP_OPEN_SUBEXP) - { - Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; - - /* We are at the first node of this sub expression. */ - if (reg_num < nmatch) - { - pmatch[reg_num].rm_so = cur_idx; - pmatch[reg_num].rm_eo = -1; - } - } - else if (type == OP_CLOSE_SUBEXP) - { - /* We are at the last node of this sub expression. */ - Idx reg_num = dfa->nodes[cur_node].opr.idx + 1; - if (reg_num < nmatch) - { - if (pmatch[reg_num].rm_so < cur_idx) - { - pmatch[reg_num].rm_eo = cur_idx; - /* This is a non-empty match or we are not inside an optional - subexpression. Accept this right away. */ - memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); - } - else - { - if (dfa->nodes[cur_node].opt_subexp - && prev_idx_match[reg_num].rm_so != -1) - /* We transited through an empty match for an optional - subexpression, like (a?)*, and this is not the subexp's - first match. Copy back the old content of the registers - so that matches of an inner subexpression are undone as - well, like in ((a?))*. */ - memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch); - else - /* We completed a subexpression, but it may be part of - an optional one, so do not update PREV_IDX_MATCH. */ - pmatch[reg_num].rm_eo = cur_idx; - } - } - } -} - -/* This function checks the STATE_LOG from the SCTX->last_str_idx to 0 - and sift the nodes in each states according to the following rules. - Updated state_log will be wrote to STATE_LOG. - - Rules: We throw away the Node 'a' in the STATE_LOG[STR_IDX] if... - 1. When STR_IDX == MATCH_LAST(the last index in the state_log): - If 'a' isn't the LAST_NODE and 'a' can't epsilon transit to - the LAST_NODE, we throw away the node 'a'. - 2. When 0 <= STR_IDX < MATCH_LAST and 'a' accepts - string 's' and transit to 'b': - i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw - away the node 'a'. - ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is - thrown away, we throw away the node 'a'. - 3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b': - i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the - node 'a'. - ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away, - we throw away the node 'a'. */ - -#define STATE_NODE_CONTAINS(state,node) \ - ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) - -static reg_errcode_t -sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) -{ - reg_errcode_t err; - int null_cnt = 0; - Idx str_idx = sctx->last_str_idx; - re_node_set cur_dest; - - DEBUG_ASSERT (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL); - - /* Build sifted state_log[str_idx]. It has the nodes which can epsilon - transit to the last_node and the last_node itself. */ - err = re_node_set_init_1 (&cur_dest, sctx->last_node); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - - /* Then check each states in the state_log. */ - while (str_idx > 0) - { - /* Update counters. */ - null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0; - if (null_cnt > mctx->max_mb_elem_len) - { - memset (sctx->sifted_states, '\0', - sizeof (re_dfastate_t *) * str_idx); - re_node_set_free (&cur_dest); - return REG_NOERROR; - } - re_node_set_empty (&cur_dest); - --str_idx; - - if (mctx->state_log[str_idx]) - { - err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - } - - /* Add all the nodes which satisfy the following conditions: - - It can epsilon transit to a node in CUR_DEST. - - It is in CUR_SRC. - And update state_log. */ - err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - } - err = REG_NOERROR; - free_return: - re_node_set_free (&cur_dest); - return err; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx str_idx, re_node_set *cur_dest) -{ - const re_dfa_t *const dfa = mctx->dfa; - const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; - Idx i; - - /* Then build the next sifted state. - We build the next sifted state on 'cur_dest', and update - 'sifted_states[str_idx]' with 'cur_dest'. - Note: - 'cur_dest' is the sifted state from 'state_log[str_idx + 1]'. - 'cur_src' points the node_set of the old 'state_log[str_idx]' - (with the epsilon nodes pre-filtered out). */ - for (i = 0; i < cur_src->nelem; i++) - { - Idx prev_node = cur_src->elems[i]; - int naccepted = 0; - bool ok; - DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[prev_node].type)); - - /* If the node may accept "multi byte". */ - if (dfa->nodes[prev_node].accept_mb) - naccepted = sift_states_iter_mb (mctx, sctx, prev_node, - str_idx, sctx->last_str_idx); - - /* We don't check backreferences here. - See update_cur_sifted_state(). */ - if (!naccepted - && check_node_accept (mctx, dfa->nodes + prev_node, str_idx) - && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1], - dfa->nexts[prev_node])) - naccepted = 1; - - if (naccepted == 0) - continue; - - if (sctx->limits.nelem) - { - Idx to_idx = str_idx + naccepted; - if (check_dst_limits (mctx, &sctx->limits, - dfa->nexts[prev_node], to_idx, - prev_node, str_idx)) - continue; - } - ok = re_node_set_insert (cur_dest, prev_node); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - - return REG_NOERROR; -} - -/* Helper functions. */ - -static reg_errcode_t -clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) -{ - Idx top = mctx->state_log_top; - - if ((next_state_log_idx >= mctx->input.bufs_len - && mctx->input.bufs_len < mctx->input.len) - || (next_state_log_idx >= mctx->input.valid_len - && mctx->input.valid_len < mctx->input.len)) - { - reg_errcode_t err; - err = extend_buffers (mctx, next_state_log_idx + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - - if (top < next_state_log_idx) - { - DEBUG_ASSERT (mctx->state_log != NULL); - memset (mctx->state_log + top + 1, '\0', - sizeof (re_dfastate_t *) * (next_state_log_idx - top)); - mctx->state_log_top = next_state_log_idx; - } - return REG_NOERROR; -} - -static reg_errcode_t -merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, - re_dfastate_t **src, Idx num) -{ - Idx st_idx; - reg_errcode_t err; - for (st_idx = 0; st_idx < num; ++st_idx) - { - if (dst[st_idx] == NULL) - dst[st_idx] = src[st_idx]; - else if (src[st_idx] != NULL) - { - re_node_set merged_set; - err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, - &src[st_idx]->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); - re_node_set_free (&merged_set); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - } - return REG_NOERROR; -} - -static reg_errcode_t -update_cur_sifted_state (const re_match_context_t *mctx, - re_sift_context_t *sctx, Idx str_idx, - re_node_set *dest_nodes) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err = REG_NOERROR; - const re_node_set *candidates; - candidates = ((mctx->state_log[str_idx] == NULL) ? NULL - : &mctx->state_log[str_idx]->nodes); - - if (dest_nodes->nelem == 0) - sctx->sifted_states[str_idx] = NULL; - else - { - if (candidates) - { - /* At first, add the nodes which can epsilon transit to a node in - DEST_NODE. */ - err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - /* Then, check the limitations in the current sift_context. */ - if (sctx->limits.nelem) - { - err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, - mctx->bkref_ents, str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - } - - sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - - if (candidates && mctx->state_log[str_idx]->has_backref) - { - err = sift_states_bkref (mctx, sctx, str_idx, candidates); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - return REG_NOERROR; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, - const re_node_set *candidates) -{ - reg_errcode_t err = REG_NOERROR; - Idx i; - - re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - if (!state->inveclosure.alloc) - { - err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); - if (__glibc_unlikely (err != REG_NOERROR)) - return REG_ESPACE; - for (i = 0; i < dest_nodes->nelem; i++) - { - err = re_node_set_merge (&state->inveclosure, - dfa->inveclosures + dest_nodes->elems[i]); - if (__glibc_unlikely (err != REG_NOERROR)) - return REG_ESPACE; - } - } - return re_node_set_add_intersect (dest_nodes, candidates, - &state->inveclosure); -} - -static reg_errcode_t -sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, - const re_node_set *candidates) -{ - Idx ecl_idx; - reg_errcode_t err; - re_node_set *inv_eclosure = dfa->inveclosures + node; - re_node_set except_nodes; - re_node_set_init_empty (&except_nodes); - for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) - { - Idx cur_node = inv_eclosure->elems[ecl_idx]; - if (cur_node == node) - continue; - if (IS_EPSILON_NODE (dfa->nodes[cur_node].type)) - { - Idx edst1 = dfa->edests[cur_node].elems[0]; - Idx edst2 = ((dfa->edests[cur_node].nelem > 1) - ? dfa->edests[cur_node].elems[1] : -1); - if ((!re_node_set_contains (inv_eclosure, edst1) - && re_node_set_contains (dest_nodes, edst1)) - || (edst2 > 0 - && !re_node_set_contains (inv_eclosure, edst2) - && re_node_set_contains (dest_nodes, edst2))) - { - err = re_node_set_add_intersect (&except_nodes, candidates, - dfa->inveclosures + cur_node); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&except_nodes); - return err; - } - } - } - } - for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx) - { - Idx cur_node = inv_eclosure->elems[ecl_idx]; - if (!re_node_set_contains (&except_nodes, cur_node)) - { - Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1; - re_node_set_remove_at (dest_nodes, idx); - } - } - re_node_set_free (&except_nodes); - return REG_NOERROR; -} - -static bool -check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, - Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) -{ - const re_dfa_t *const dfa = mctx->dfa; - Idx lim_idx, src_pos, dst_pos; - - Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx); - Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx); - for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) - { - Idx subexp_idx; - struct re_backref_cache_entry *ent; - ent = mctx->bkref_ents + limits->elems[lim_idx]; - subexp_idx = dfa->nodes[ent->node].opr.idx; - - dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], - subexp_idx, dst_node, dst_idx, - dst_bkref_idx); - src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx], - subexp_idx, src_node, src_idx, - src_bkref_idx); - - /* In case of: - ( ) - ( ) - ( ) */ - if (src_pos == dst_pos) - continue; /* This is unrelated limitation. */ - else - return true; - } - return false; -} - -static int -check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, - Idx subexp_idx, Idx from_node, Idx bkref_idx) -{ - const re_dfa_t *const dfa = mctx->dfa; - const re_node_set *eclosures = dfa->eclosures + from_node; - Idx node_idx; - - /* Else, we are on the boundary: examine the nodes on the epsilon - closure. */ - for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx) - { - Idx node = eclosures->elems[node_idx]; - switch (dfa->nodes[node].type) - { - case OP_BACK_REF: - if (bkref_idx != -1) - { - struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx; - do - { - Idx dst; - int cpos; - - if (ent->node != node) - continue; - - if (subexp_idx < BITSET_WORD_BITS - && !(ent->eps_reachable_subexps_map - & ((bitset_word_t) 1 << subexp_idx))) - continue; - - /* Recurse trying to reach the OP_OPEN_SUBEXP and - OP_CLOSE_SUBEXP cases below. But, if the - destination node is the same node as the source - node, don't recurse because it would cause an - infinite loop: a regex that exhibits this behavior - is ()\1*\1* */ - dst = dfa->edests[node].elems[0]; - if (dst == from_node) - { - if (boundaries & 1) - return -1; - else /* if (boundaries & 2) */ - return 0; - } - - cpos = - check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, - dst, bkref_idx); - if (cpos == -1 /* && (boundaries & 1) */) - return -1; - if (cpos == 0 && (boundaries & 2)) - return 0; - - if (subexp_idx < BITSET_WORD_BITS) - ent->eps_reachable_subexps_map - &= ~((bitset_word_t) 1 << subexp_idx); - } - while (ent++->more); - } - break; - - case OP_OPEN_SUBEXP: - if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx) - return -1; - break; - - case OP_CLOSE_SUBEXP: - if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx) - return 0; - break; - - default: - break; - } - } - - return (boundaries & 2) ? 1 : 0; -} - -static int -check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, - Idx subexp_idx, Idx from_node, Idx str_idx, - Idx bkref_idx) -{ - struct re_backref_cache_entry *lim = mctx->bkref_ents + limit; - int boundaries; - - /* If we are outside the range of the subexpression, return -1 or 1. */ - if (str_idx < lim->subexp_from) - return -1; - - if (lim->subexp_to < str_idx) - return 1; - - /* If we are within the subexpression, return 0. */ - boundaries = (str_idx == lim->subexp_from); - boundaries |= (str_idx == lim->subexp_to) << 1; - if (boundaries == 0) - return 0; - - /* Else, examine epsilon closure. */ - return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, - from_node, bkref_idx); -} - -/* Check the limitations of sub expressions LIMITS, and remove the nodes - which are against limitations from DEST_NODES. */ - -static reg_errcode_t -check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, - const re_node_set *candidates, re_node_set *limits, - struct re_backref_cache_entry *bkref_ents, Idx str_idx) -{ - reg_errcode_t err; - Idx node_idx, lim_idx; - - for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx) - { - Idx subexp_idx; - struct re_backref_cache_entry *ent; - ent = bkref_ents + limits->elems[lim_idx]; - - if (str_idx <= ent->subexp_from || ent->str_idx < str_idx) - continue; /* This is unrelated limitation. */ - - subexp_idx = dfa->nodes[ent->node].opr.idx; - if (ent->subexp_to == str_idx) - { - Idx ops_node = -1; - Idx cls_node = -1; - for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) - { - Idx node = dest_nodes->elems[node_idx]; - re_token_type_t type = dfa->nodes[node].type; - if (type == OP_OPEN_SUBEXP - && subexp_idx == dfa->nodes[node].opr.idx) - ops_node = node; - else if (type == OP_CLOSE_SUBEXP - && subexp_idx == dfa->nodes[node].opr.idx) - cls_node = node; - } - - /* Check the limitation of the open subexpression. */ - /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */ - if (ops_node >= 0) - { - err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, - candidates); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - - /* Check the limitation of the close subexpression. */ - if (cls_node >= 0) - for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) - { - Idx node = dest_nodes->elems[node_idx]; - if (!re_node_set_contains (dfa->inveclosures + node, - cls_node) - && !re_node_set_contains (dfa->eclosures + node, - cls_node)) - { - /* It is against this limitation. - Remove it form the current sifted state. */ - err = sub_epsilon_src_nodes (dfa, node, dest_nodes, - candidates); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - --node_idx; - } - } - } - else /* (ent->subexp_to != str_idx) */ - { - for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx) - { - Idx node = dest_nodes->elems[node_idx]; - re_token_type_t type = dfa->nodes[node].type; - if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP) - { - if (subexp_idx != dfa->nodes[node].opr.idx) - continue; - /* It is against this limitation. - Remove it form the current sifted state. */ - err = sub_epsilon_src_nodes (dfa, node, dest_nodes, - candidates); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - } - } - } - return REG_NOERROR; -} - -static reg_errcode_t -__attribute_warn_unused_result__ -sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx str_idx, const re_node_set *candidates) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; - Idx node_idx, node; - re_sift_context_t local_sctx; - Idx first_idx = search_cur_bkref_entry (mctx, str_idx); - - if (first_idx == -1) - return REG_NOERROR; - - local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */ - - for (node_idx = 0; node_idx < candidates->nelem; ++node_idx) - { - Idx enabled_idx; - re_token_type_t type; - struct re_backref_cache_entry *entry; - node = candidates->elems[node_idx]; - type = dfa->nodes[node].type; - /* Avoid infinite loop for the REs like "()\1+". */ - if (node == sctx->last_node && str_idx == sctx->last_str_idx) - continue; - if (type != OP_BACK_REF) - continue; - - entry = mctx->bkref_ents + first_idx; - enabled_idx = first_idx; - do - { - Idx subexp_len; - Idx to_idx; - Idx dst_node; - bool ok; - re_dfastate_t *cur_state; - - if (entry->node != node) - continue; - subexp_len = entry->subexp_to - entry->subexp_from; - to_idx = str_idx + subexp_len; - dst_node = (subexp_len ? dfa->nexts[node] - : dfa->edests[node].elems[0]); - - if (to_idx > sctx->last_str_idx - || sctx->sifted_states[to_idx] == NULL - || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node) - || check_dst_limits (mctx, &sctx->limits, node, - str_idx, dst_node, to_idx)) - continue; - - if (local_sctx.sifted_states == NULL) - { - local_sctx = *sctx; - err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - } - local_sctx.last_node = node; - local_sctx.last_str_idx = str_idx; - ok = re_node_set_insert (&local_sctx.limits, enabled_idx); - if (__glibc_unlikely (! ok)) - { - err = REG_ESPACE; - goto free_return; - } - cur_state = local_sctx.sifted_states[str_idx]; - err = sift_states_backward (mctx, &local_sctx); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - if (sctx->limited_states != NULL) - { - err = merge_state_array (dfa, sctx->limited_states, - local_sctx.sifted_states, - str_idx + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - } - local_sctx.sifted_states[str_idx] = cur_state; - re_node_set_remove (&local_sctx.limits, enabled_idx); - - /* mctx->bkref_ents may have changed, reload the pointer. */ - entry = mctx->bkref_ents + enabled_idx; - } - while (enabled_idx++, entry++->more); - } - err = REG_NOERROR; - free_return: - if (local_sctx.sifted_states != NULL) - { - re_node_set_free (&local_sctx.limits); - } - - return err; -} - - -static int -sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx node_idx, Idx str_idx, Idx max_str_idx) -{ - const re_dfa_t *const dfa = mctx->dfa; - int naccepted; - /* Check the node can accept "multi byte". */ - naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); - if (naccepted > 0 && str_idx + naccepted <= max_str_idx - && !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted], - dfa->nexts[node_idx])) - /* The node can't accept the "multi byte", or the - destination was already thrown away, then the node - couldn't accept the current input "multi byte". */ - naccepted = 0; - /* Otherwise, it is sure that the node could accept - 'naccepted' bytes input. */ - return naccepted; -} - -/* Functions for state transition. */ - -/* Return the next state to which the current state STATE will transit by - accepting the current input byte, and update STATE_LOG if necessary. - Return NULL on failure. - If STATE can accept a multibyte char/collating element/back reference - update the destination of STATE_LOG. */ - -static re_dfastate_t * -__attribute_warn_unused_result__ -transit_state (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *state) -{ - re_dfastate_t **trtable; - unsigned char ch; - - /* If the current state can accept multibyte. */ - if (__glibc_unlikely (state->accept_mb)) - { - *err = transit_state_mb (mctx, state); - if (__glibc_unlikely (*err != REG_NOERROR)) - return NULL; - } - - /* Then decide the next state with the single byte. */ -#if 0 - if (0) - /* don't use transition table */ - return transit_state_sb (err, mctx, state); -#endif - - /* Use transition table */ - ch = re_string_fetch_byte (&mctx->input); - for (;;) - { - trtable = state->trtable; - if (__glibc_likely (trtable != NULL)) - return trtable[ch]; - - trtable = state->word_trtable; - if (__glibc_likely (trtable != NULL)) - { - unsigned int context; - context - = re_string_context_at (&mctx->input, - re_string_cur_idx (&mctx->input) - 1, - mctx->eflags); - if (IS_WORD_CONTEXT (context)) - return trtable[ch + SBC_MAX]; - else - return trtable[ch]; - } - - if (!build_trtable (mctx->dfa, state)) - { - *err = REG_ESPACE; - return NULL; - } - - /* Retry, we now have a transition table. */ - } -} - -/* Update the state_log if we need */ -static re_dfastate_t * -merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *next_state) -{ - const re_dfa_t *const dfa = mctx->dfa; - Idx cur_idx = re_string_cur_idx (&mctx->input); - - if (cur_idx > mctx->state_log_top) - { - mctx->state_log[cur_idx] = next_state; - mctx->state_log_top = cur_idx; - } - else if (mctx->state_log[cur_idx] == 0) - { - mctx->state_log[cur_idx] = next_state; - } - else - { - re_dfastate_t *pstate; - unsigned int context; - re_node_set next_nodes, *log_nodes, *table_nodes = NULL; - /* If (state_log[cur_idx] != 0), it implies that cur_idx is - the destination of a multibyte char/collating element/ - back reference. Then the next state is the union set of - these destinations and the results of the transition table. */ - pstate = mctx->state_log[cur_idx]; - log_nodes = pstate->entrance_nodes; - if (next_state != NULL) - { - table_nodes = next_state->entrance_nodes; - *err = re_node_set_init_union (&next_nodes, table_nodes, - log_nodes); - if (__glibc_unlikely (*err != REG_NOERROR)) - return NULL; - } - else - next_nodes = *log_nodes; - /* Note: We already add the nodes of the initial state, - then we don't need to add them here. */ - - context = re_string_context_at (&mctx->input, - re_string_cur_idx (&mctx->input) - 1, - mctx->eflags); - next_state = mctx->state_log[cur_idx] - = re_acquire_state_context (err, dfa, &next_nodes, context); - /* We don't need to check errors here, since the return value of - this function is next_state and ERR is already set. */ - - if (table_nodes != NULL) - re_node_set_free (&next_nodes); - } - - if (__glibc_unlikely (dfa->nbackref) && next_state != NULL) - { - /* Check OP_OPEN_SUBEXP in the current state in case that we use them - later. We must check them here, since the back references in the - next state might use them. */ - *err = check_subexp_matching_top (mctx, &next_state->nodes, - cur_idx); - if (__glibc_unlikely (*err != REG_NOERROR)) - return NULL; - - /* If the next state has back references. */ - if (next_state->has_backref) - { - *err = transit_state_bkref (mctx, &next_state->nodes); - if (__glibc_unlikely (*err != REG_NOERROR)) - return NULL; - next_state = mctx->state_log[cur_idx]; - } - } - - return next_state; -} - -/* Skip bytes in the input that correspond to part of a - multi-byte match, then look in the log for a state - from which to restart matching. */ -static re_dfastate_t * -find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) -{ - re_dfastate_t *cur_state; - do - { - Idx max = mctx->state_log_top; - Idx cur_str_idx = re_string_cur_idx (&mctx->input); - - do - { - if (++cur_str_idx > max) - return NULL; - re_string_skip_bytes (&mctx->input, 1); - } - while (mctx->state_log[cur_str_idx] == NULL); - - cur_state = merge_state_with_log (err, mctx, NULL); - } - while (*err == REG_NOERROR && cur_state == NULL); - return cur_state; -} - -/* Helper functions for transit_state. */ - -/* From the node set CUR_NODES, pick up the nodes whose types are - OP_OPEN_SUBEXP and which have corresponding back references in the regular - expression. And register them to use them later for evaluating the - corresponding back references. */ - -static reg_errcode_t -check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, - Idx str_idx) -{ - const re_dfa_t *const dfa = mctx->dfa; - Idx node_idx; - reg_errcode_t err; - - /* TODO: This isn't efficient. - Because there might be more than one nodes whose types are - OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all - nodes. - E.g. RE: (a){2} */ - for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx) - { - Idx node = cur_nodes->elems[node_idx]; - if (dfa->nodes[node].type == OP_OPEN_SUBEXP - && dfa->nodes[node].opr.idx < BITSET_WORD_BITS - && (dfa->used_bkref_map - & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) - { - err = match_ctx_add_subtop (mctx, node, str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - } - return REG_NOERROR; -} - -#if 0 -/* Return the next state to which the current state STATE will transit by - accepting the current input byte. Return NULL on failure. */ - -static re_dfastate_t * -transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *state) -{ - const re_dfa_t *const dfa = mctx->dfa; - re_node_set next_nodes; - re_dfastate_t *next_state; - Idx node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input); - unsigned int context; - - *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); - if (__glibc_unlikely (*err != REG_NOERROR)) - return NULL; - for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) - { - Idx cur_node = state->nodes.elems[node_cnt]; - if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx)) - { - *err = re_node_set_merge (&next_nodes, - dfa->eclosures + dfa->nexts[cur_node]); - if (__glibc_unlikely (*err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return NULL; - } - } - } - context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags); - next_state = re_acquire_state_context (err, dfa, &next_nodes, context); - /* We don't need to check errors here, since the return value of - this function is next_state and ERR is already set. */ - - re_node_set_free (&next_nodes); - re_string_skip_bytes (&mctx->input, 1); - return next_state; -} -#endif - -static reg_errcode_t -transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; - Idx i; - - for (i = 0; i < pstate->nodes.nelem; ++i) - { - re_node_set dest_nodes, *new_nodes; - Idx cur_node_idx = pstate->nodes.elems[i]; - int naccepted; - Idx dest_idx; - unsigned int context; - re_dfastate_t *dest_state; - - if (!dfa->nodes[cur_node_idx].accept_mb) - continue; - - if (dfa->nodes[cur_node_idx].constraint) - { - context = re_string_context_at (&mctx->input, - re_string_cur_idx (&mctx->input), - mctx->eflags); - if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint, - context)) - continue; - } - - /* How many bytes the node can accept? */ - naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input, - re_string_cur_idx (&mctx->input)); - if (naccepted == 0) - continue; - - /* The node can accepts 'naccepted' bytes. */ - dest_idx = re_string_cur_idx (&mctx->input) + naccepted; - mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted - : mctx->max_mb_elem_len); - err = clean_state_log_if_needed (mctx, dest_idx); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - DEBUG_ASSERT (dfa->nexts[cur_node_idx] != -1); - new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx]; - - dest_state = mctx->state_log[dest_idx]; - if (dest_state == NULL) - dest_nodes = *new_nodes; - else - { - err = re_node_set_init_union (&dest_nodes, - dest_state->entrance_nodes, new_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - context = re_string_context_at (&mctx->input, dest_idx - 1, - mctx->eflags); - mctx->state_log[dest_idx] - = re_acquire_state_context (&err, dfa, &dest_nodes, context); - if (dest_state != NULL) - re_node_set_free (&dest_nodes); - if (__glibc_unlikely (mctx->state_log[dest_idx] == NULL - && err != REG_NOERROR)) - return err; - } - return REG_NOERROR; -} - -static reg_errcode_t -transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; - Idx i; - Idx cur_str_idx = re_string_cur_idx (&mctx->input); - - for (i = 0; i < nodes->nelem; ++i) - { - Idx dest_str_idx, prev_nelem, bkc_idx; - Idx node_idx = nodes->elems[i]; - unsigned int context; - const re_token_t *node = dfa->nodes + node_idx; - re_node_set *new_dest_nodes; - - /* Check whether 'node' is a backreference or not. */ - if (node->type != OP_BACK_REF) - continue; - - if (node->constraint) - { - context = re_string_context_at (&mctx->input, cur_str_idx, - mctx->eflags); - if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) - continue; - } - - /* 'node' is a backreference. - Check the substring which the substring matched. */ - bkc_idx = mctx->nbkref_ents; - err = get_subexp (mctx, node_idx, cur_str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - - /* And add the epsilon closures (which is 'new_dest_nodes') of - the backreference to appropriate state_log. */ - DEBUG_ASSERT (dfa->nexts[node_idx] != -1); - for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx) - { - Idx subexp_len; - re_dfastate_t *dest_state; - struct re_backref_cache_entry *bkref_ent; - bkref_ent = mctx->bkref_ents + bkc_idx; - if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx) - continue; - subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from; - new_dest_nodes = (subexp_len == 0 - ? dfa->eclosures + dfa->edests[node_idx].elems[0] - : dfa->eclosures + dfa->nexts[node_idx]); - dest_str_idx = (cur_str_idx + bkref_ent->subexp_to - - bkref_ent->subexp_from); - context = re_string_context_at (&mctx->input, dest_str_idx - 1, - mctx->eflags); - dest_state = mctx->state_log[dest_str_idx]; - prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0 - : mctx->state_log[cur_str_idx]->nodes.nelem); - /* Add 'new_dest_node' to state_log. */ - if (dest_state == NULL) - { - mctx->state_log[dest_str_idx] - = re_acquire_state_context (&err, dfa, new_dest_nodes, - context); - if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL - && err != REG_NOERROR)) - goto free_return; - } - else - { - re_node_set dest_nodes; - err = re_node_set_init_union (&dest_nodes, - dest_state->entrance_nodes, - new_dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&dest_nodes); - goto free_return; - } - mctx->state_log[dest_str_idx] - = re_acquire_state_context (&err, dfa, &dest_nodes, context); - re_node_set_free (&dest_nodes); - if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL - && err != REG_NOERROR)) - goto free_return; - } - /* We need to check recursively if the backreference can epsilon - transit. */ - if (subexp_len == 0 - && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem) - { - err = check_subexp_matching_top (mctx, new_dest_nodes, - cur_str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - err = transit_state_bkref (mctx, new_dest_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - goto free_return; - } - } - } - err = REG_NOERROR; - free_return: - return err; -} - -/* Enumerate all the candidates which the backreference BKREF_NODE can match - at BKREF_STR_IDX, and register them by match_ctx_add_entry(). - Note that we might collect inappropriate candidates here. - However, the cost of checking them strictly here is too high, then we - delay these checking for prune_impossible_nodes(). */ - -static reg_errcode_t -__attribute_warn_unused_result__ -get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) -{ - const re_dfa_t *const dfa = mctx->dfa; - Idx subexp_num, sub_top_idx; - const char *buf = (const char *) re_string_get_buffer (&mctx->input); - /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ - Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); - if (cache_idx != -1) - { - const struct re_backref_cache_entry *entry - = mctx->bkref_ents + cache_idx; - do - if (entry->node == bkref_node) - return REG_NOERROR; /* We already checked it. */ - while (entry++->more); - } - - subexp_num = dfa->nodes[bkref_node].opr.idx; - - /* For each sub expression */ - for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx) - { - reg_errcode_t err; - re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx]; - re_sub_match_last_t *sub_last; - Idx sub_last_idx, sl_str, bkref_str_off; - - if (dfa->nodes[sub_top->node].opr.idx != subexp_num) - continue; /* It isn't related. */ - - sl_str = sub_top->str_idx; - bkref_str_off = bkref_str_idx; - /* At first, check the last node of sub expressions we already - evaluated. */ - for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx) - { - regoff_t sl_str_diff; - sub_last = sub_top->lasts[sub_last_idx]; - sl_str_diff = sub_last->str_idx - sl_str; - /* The matched string by the sub expression match with the substring - at the back reference? */ - if (sl_str_diff > 0) - { - if (__glibc_unlikely (bkref_str_off + sl_str_diff - > mctx->input.valid_len)) - { - /* Not enough chars for a successful match. */ - if (bkref_str_off + sl_str_diff > mctx->input.len) - break; - - err = clean_state_log_if_needed (mctx, - bkref_str_off - + sl_str_diff); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - buf = (const char *) re_string_get_buffer (&mctx->input); - } - if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0) - /* We don't need to search this sub expression any more. */ - break; - } - bkref_str_off += sl_str_diff; - sl_str += sl_str_diff; - err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, - bkref_str_idx); - - /* Reload buf, since the preceding call might have reallocated - the buffer. */ - buf = (const char *) re_string_get_buffer (&mctx->input); - - if (err == REG_NOMATCH) - continue; - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - - if (sub_last_idx < sub_top->nlasts) - continue; - if (sub_last_idx > 0) - ++sl_str; - /* Then, search for the other last nodes of the sub expression. */ - for (; sl_str <= bkref_str_idx; ++sl_str) - { - Idx cls_node; - regoff_t sl_str_off; - const re_node_set *nodes; - sl_str_off = sl_str - sub_top->str_idx; - /* The matched string by the sub expression match with the substring - at the back reference? */ - if (sl_str_off > 0) - { - if (__glibc_unlikely (bkref_str_off >= mctx->input.valid_len)) - { - /* If we are at the end of the input, we cannot match. */ - if (bkref_str_off >= mctx->input.len) - break; - - err = extend_buffers (mctx, bkref_str_off + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - - buf = (const char *) re_string_get_buffer (&mctx->input); - } - if (buf [bkref_str_off++] != buf[sl_str - 1]) - break; /* We don't need to search this sub expression - any more. */ - } - if (mctx->state_log[sl_str] == NULL) - continue; - /* Does this state have a ')' of the sub expression? */ - nodes = &mctx->state_log[sl_str]->nodes; - cls_node = find_subexp_node (dfa, nodes, subexp_num, - OP_CLOSE_SUBEXP); - if (cls_node == -1) - continue; /* No. */ - if (sub_top->path == NULL) - { - sub_top->path = calloc (sizeof (state_array_t), - sl_str - sub_top->str_idx + 1); - if (sub_top->path == NULL) - return REG_ESPACE; - } - /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node - in the current context? */ - err = check_arrival (mctx, sub_top->path, sub_top->node, - sub_top->str_idx, cls_node, sl_str, - OP_CLOSE_SUBEXP); - if (err == REG_NOMATCH) - continue; - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); - if (__glibc_unlikely (sub_last == NULL)) - return REG_ESPACE; - err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, - bkref_str_idx); - buf = (const char *) re_string_get_buffer (&mctx->input); - if (err == REG_NOMATCH) - continue; - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - } - return REG_NOERROR; -} - -/* Helper functions for get_subexp(). */ - -/* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR. - If it can arrive, register the sub expression expressed with SUB_TOP - and SUB_LAST. */ - -static reg_errcode_t -get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, - re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) -{ - reg_errcode_t err; - Idx to_idx; - /* Can the subexpression arrive the back reference? */ - err = check_arrival (mctx, &sub_last->path, sub_last->node, - sub_last->str_idx, bkref_node, bkref_str, - OP_OPEN_SUBEXP); - if (err != REG_NOERROR) - return err; - err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, - sub_last->str_idx); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; - return clean_state_log_if_needed (mctx, to_idx); -} - -/* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX. - Search '(' if FL_OPEN, or search ')' otherwise. - TODO: This function isn't efficient... - Because there might be more than one nodes whose types are - OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all - nodes. - E.g. RE: (a){2} */ - -static Idx -find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, - Idx subexp_idx, int type) -{ - Idx cls_idx; - for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx) - { - Idx cls_node = nodes->elems[cls_idx]; - const re_token_t *node = dfa->nodes + cls_node; - if (node->type == type - && node->opr.idx == subexp_idx) - return cls_node; - } - return -1; -} - -/* Check whether the node TOP_NODE at TOP_STR can arrive to the node - LAST_NODE at LAST_STR. We record the path onto PATH since it will be - heavily reused. - Return REG_NOERROR if it can arrive, REG_NOMATCH if it cannot, - REG_ESPACE if memory is exhausted. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, - Idx top_str, Idx last_node, Idx last_str, int type) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err = REG_NOERROR; - Idx subexp_num, backup_cur_idx, str_idx, null_cnt; - re_dfastate_t *cur_state = NULL; - re_node_set *cur_nodes, next_nodes; - re_dfastate_t **backup_state_log; - unsigned int context; - - subexp_num = dfa->nodes[top_node].opr.idx; - /* Extend the buffer if we need. */ - if (__glibc_unlikely (path->alloc < last_str + mctx->max_mb_elem_len + 1)) - { - re_dfastate_t **new_array; - Idx old_alloc = path->alloc; - Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1; - Idx new_alloc; - if (__glibc_unlikely (IDX_MAX - old_alloc < incr_alloc)) - return REG_ESPACE; - new_alloc = old_alloc + incr_alloc; - if (__glibc_unlikely (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc)) - return REG_ESPACE; - new_array = re_realloc (path->array, re_dfastate_t *, new_alloc); - if (__glibc_unlikely (new_array == NULL)) - return REG_ESPACE; - path->array = new_array; - path->alloc = new_alloc; - memset (new_array + old_alloc, '\0', - sizeof (re_dfastate_t *) * (path->alloc - old_alloc)); - } - - str_idx = path->next_idx ? path->next_idx : top_str; - - /* Temporary modify MCTX. */ - backup_state_log = mctx->state_log; - backup_cur_idx = mctx->input.cur_idx; - mctx->state_log = path->array; - mctx->input.cur_idx = str_idx; - - /* Setup initial node set. */ - context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); - if (str_idx == top_str) - { - err = re_node_set_init_1 (&next_nodes, top_node); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - } - else - { - cur_state = mctx->state_log[str_idx]; - if (cur_state && cur_state->has_backref) - { - err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - else - re_node_set_init_empty (&next_nodes); - } - if (str_idx == top_str || (cur_state && cur_state->has_backref)) - { - if (next_nodes.nelem) - { - err = expand_bkref_cache (mctx, &next_nodes, str_idx, - subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - } - cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); - if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - mctx->state_log[str_idx] = cur_state; - } - - for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;) - { - re_node_set_empty (&next_nodes); - if (mctx->state_log[str_idx + 1]) - { - err = re_node_set_merge (&next_nodes, - &mctx->state_log[str_idx + 1]->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - } - if (cur_state) - { - err = check_arrival_add_next_nodes (mctx, str_idx, - &cur_state->non_eps_nodes, - &next_nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - } - ++str_idx; - if (next_nodes.nelem) - { - err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - err = expand_bkref_cache (mctx, &next_nodes, str_idx, - subexp_num, type); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - } - context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); - cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); - if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR)) - { - re_node_set_free (&next_nodes); - return err; - } - mctx->state_log[str_idx] = cur_state; - null_cnt = cur_state == NULL ? null_cnt + 1 : 0; - } - re_node_set_free (&next_nodes); - cur_nodes = (mctx->state_log[last_str] == NULL ? NULL - : &mctx->state_log[last_str]->nodes); - path->next_idx = str_idx; - - /* Fix MCTX. */ - mctx->state_log = backup_state_log; - mctx->input.cur_idx = backup_cur_idx; - - /* Then check the current node set has the node LAST_NODE. */ - if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node)) - return REG_NOERROR; - - return REG_NOMATCH; -} - -/* Helper functions for check_arrival. */ - -/* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them - to NEXT_NODES. - TODO: This function is similar to the functions transit_state*(), - however this function has many additional works. - Can't we unify them? */ - -static reg_errcode_t -__attribute_warn_unused_result__ -check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, - re_node_set *cur_nodes, re_node_set *next_nodes) -{ - const re_dfa_t *const dfa = mctx->dfa; - bool ok; - Idx cur_idx; - reg_errcode_t err = REG_NOERROR; - re_node_set union_set; - re_node_set_init_empty (&union_set); - for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx) - { - int naccepted = 0; - Idx cur_node = cur_nodes->elems[cur_idx]; - DEBUG_ASSERT (!IS_EPSILON_NODE (dfa->nodes[cur_node].type)); - - /* If the node may accept "multi byte". */ - if (dfa->nodes[cur_node].accept_mb) - { - naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input, - str_idx); - if (naccepted > 1) - { - re_dfastate_t *dest_state; - Idx next_node = dfa->nexts[cur_node]; - Idx next_idx = str_idx + naccepted; - dest_state = mctx->state_log[next_idx]; - re_node_set_empty (&union_set); - if (dest_state) - { - err = re_node_set_merge (&union_set, &dest_state->nodes); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&union_set); - return err; - } - } - ok = re_node_set_insert (&union_set, next_node); - if (__glibc_unlikely (! ok)) - { - re_node_set_free (&union_set); - return REG_ESPACE; - } - mctx->state_log[next_idx] = re_acquire_state (&err, dfa, - &union_set); - if (__glibc_unlikely (mctx->state_log[next_idx] == NULL - && err != REG_NOERROR)) - { - re_node_set_free (&union_set); - return err; - } - } - } - - if (naccepted - || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) - { - ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); - if (__glibc_unlikely (! ok)) - { - re_node_set_free (&union_set); - return REG_ESPACE; - } - } - } - re_node_set_free (&union_set); - return REG_NOERROR; -} - -/* For all the nodes in CUR_NODES, add the epsilon closures of them to - CUR_NODES, however exclude the nodes which are: - - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN. - - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN. -*/ - -static reg_errcode_t -check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, - Idx ex_subexp, int type) -{ - reg_errcode_t err; - Idx idx, outside_node; - re_node_set new_nodes; - DEBUG_ASSERT (cur_nodes->nelem); - err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - /* Create a new node set NEW_NODES with the nodes which are epsilon - closures of the node in CUR_NODES. */ - - for (idx = 0; idx < cur_nodes->nelem; ++idx) - { - Idx cur_node = cur_nodes->elems[idx]; - const re_node_set *eclosure = dfa->eclosures + cur_node; - outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); - if (outside_node == -1) - { - /* There are no problematic nodes, just merge them. */ - err = re_node_set_merge (&new_nodes, eclosure); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&new_nodes); - return err; - } - } - else - { - /* There are problematic nodes, re-calculate incrementally. */ - err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, - ex_subexp, type); - if (__glibc_unlikely (err != REG_NOERROR)) - { - re_node_set_free (&new_nodes); - return err; - } - } - } - re_node_set_free (cur_nodes); - *cur_nodes = new_nodes; - return REG_NOERROR; -} - -/* Helper function for check_arrival_expand_ecl. - Check incrementally the epsilon closure of TARGET, and if it isn't - problematic append it to DST_NODES. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, - Idx target, Idx ex_subexp, int type) -{ - Idx cur_node; - for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);) - { - bool ok; - - if (dfa->nodes[cur_node].type == type - && dfa->nodes[cur_node].opr.idx == ex_subexp) - { - if (type == OP_CLOSE_SUBEXP) - { - ok = re_node_set_insert (dst_nodes, cur_node); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - } - break; - } - ok = re_node_set_insert (dst_nodes, cur_node); - if (__glibc_unlikely (! ok)) - return REG_ESPACE; - if (dfa->edests[cur_node].nelem == 0) - break; - if (dfa->edests[cur_node].nelem == 2) - { - reg_errcode_t err; - err = check_arrival_expand_ecl_sub (dfa, dst_nodes, - dfa->edests[cur_node].elems[1], - ex_subexp, type); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - cur_node = dfa->edests[cur_node].elems[0]; - } - return REG_NOERROR; -} - - -/* For all the back references in the current state, calculate the - destination of the back references by the appropriate entry - in MCTX->BKREF_ENTS. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, - Idx cur_str, Idx subexp_num, int type) -{ - const re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; - Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str); - struct re_backref_cache_entry *ent; - - if (cache_idx_start == -1) - return REG_NOERROR; - - restart: - ent = mctx->bkref_ents + cache_idx_start; - do - { - Idx to_idx, next_node; - - /* Is this entry ENT is appropriate? */ - if (!re_node_set_contains (cur_nodes, ent->node)) - continue; /* No. */ - - to_idx = cur_str + ent->subexp_to - ent->subexp_from; - /* Calculate the destination of the back reference, and append it - to MCTX->STATE_LOG. */ - if (to_idx == cur_str) - { - /* The backreference did epsilon transit, we must re-check all the - node in the current state. */ - re_node_set new_dests; - reg_errcode_t err2, err3; - next_node = dfa->edests[ent->node].elems[0]; - if (re_node_set_contains (cur_nodes, next_node)) - continue; - err = re_node_set_init_1 (&new_dests, next_node); - err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); - err3 = re_node_set_merge (cur_nodes, &new_dests); - re_node_set_free (&new_dests); - if (__glibc_unlikely (err != REG_NOERROR || err2 != REG_NOERROR - || err3 != REG_NOERROR)) - { - err = (err != REG_NOERROR ? err - : (err2 != REG_NOERROR ? err2 : err3)); - return err; - } - /* TODO: It is still inefficient... */ - goto restart; - } - else - { - re_node_set union_set; - next_node = dfa->nexts[ent->node]; - if (mctx->state_log[to_idx]) - { - bool ok; - if (re_node_set_contains (&mctx->state_log[to_idx]->nodes, - next_node)) - continue; - err = re_node_set_init_copy (&union_set, - &mctx->state_log[to_idx]->nodes); - ok = re_node_set_insert (&union_set, next_node); - if (__glibc_unlikely (err != REG_NOERROR || ! ok)) - { - re_node_set_free (&union_set); - err = err != REG_NOERROR ? err : REG_ESPACE; - return err; - } - } - else - { - err = re_node_set_init_1 (&union_set, next_node); - if (__glibc_unlikely (err != REG_NOERROR)) - return err; - } - mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); - re_node_set_free (&union_set); - if (__glibc_unlikely (mctx->state_log[to_idx] == NULL - && err != REG_NOERROR)) - return err; - } - } - while (ent++->more); - return REG_NOERROR; -} - -/* Build transition table for the state. - Return true if successful. */ - -static bool __attribute_noinline__ -build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) -{ - reg_errcode_t err; - Idx i, j; - int ch; - bool need_word_trtable = false; - bitset_word_t elem, mask; - Idx ndests; /* Number of the destination states from 'state'. */ - re_dfastate_t **trtable; - re_dfastate_t *dest_states[SBC_MAX]; - re_dfastate_t *dest_states_word[SBC_MAX]; - re_dfastate_t *dest_states_nl[SBC_MAX]; - re_node_set follows; - bitset_t acceptable; - - /* We build DFA states which corresponds to the destination nodes - from 'state'. 'dests_node[i]' represents the nodes which i-th - destination state contains, and 'dests_ch[i]' represents the - characters which i-th destination state accepts. */ - re_node_set dests_node[SBC_MAX]; - bitset_t dests_ch[SBC_MAX]; - - /* Initialize transition table. */ - state->word_trtable = state->trtable = NULL; - - /* At first, group all nodes belonging to 'state' into several - destinations. */ - ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); - if (__glibc_unlikely (ndests <= 0)) - { - /* Return false in case of an error, true otherwise. */ - if (ndests == 0) - { - state->trtable = (re_dfastate_t **) - calloc (sizeof (re_dfastate_t *), SBC_MAX); - if (__glibc_unlikely (state->trtable == NULL)) - return false; - return true; - } - return false; - } - - err = re_node_set_alloc (&follows, ndests + 1); - if (__glibc_unlikely (err != REG_NOERROR)) - { - out_free: - re_node_set_free (&follows); - for (i = 0; i < ndests; ++i) - re_node_set_free (dests_node + i); - return false; - } - - bitset_empty (acceptable); - - /* Then build the states for all destinations. */ - for (i = 0; i < ndests; ++i) - { - Idx next_node; - re_node_set_empty (&follows); - /* Merge the follows of this destination states. */ - for (j = 0; j < dests_node[i].nelem; ++j) - { - next_node = dfa->nexts[dests_node[i].elems[j]]; - if (next_node != -1) - { - err = re_node_set_merge (&follows, dfa->eclosures + next_node); - if (__glibc_unlikely (err != REG_NOERROR)) - goto out_free; - } - } - dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); - if (__glibc_unlikely (dest_states[i] == NULL && err != REG_NOERROR)) - goto out_free; - /* If the new state has context constraint, - build appropriate states for these contexts. */ - if (dest_states[i]->has_constraint) - { - dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, - CONTEXT_WORD); - if (__glibc_unlikely (dest_states_word[i] == NULL - && err != REG_NOERROR)) - goto out_free; - - if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) - need_word_trtable = true; - - dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, - CONTEXT_NEWLINE); - if (__glibc_unlikely (dest_states_nl[i] == NULL && err != REG_NOERROR)) - goto out_free; - } - else - { - dest_states_word[i] = dest_states[i]; - dest_states_nl[i] = dest_states[i]; - } - bitset_merge (acceptable, dests_ch[i]); - } - - if (!__glibc_unlikely (need_word_trtable)) - { - /* We don't care about whether the following character is a word - character, or we are in a single-byte character set so we can - discern by looking at the character code: allocate a - 256-entry transition table. */ - trtable = state->trtable = - (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); - if (__glibc_unlikely (trtable == NULL)) - goto out_free; - - /* For all characters ch...: */ - for (i = 0; i < BITSET_WORDS; ++i) - for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; - elem; - mask <<= 1, elem >>= 1, ++ch) - if (__glibc_unlikely (elem & 1)) - { - /* There must be exactly one destination which accepts - character ch. See group_nodes_into_DFAstates. */ - for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) - ; - - /* j-th destination accepts the word character ch. */ - if (dfa->word_char[i] & mask) - trtable[ch] = dest_states_word[j]; - else - trtable[ch] = dest_states[j]; - } - } - else - { - /* We care about whether the following character is a word - character, and we are in a multi-byte character set: discern - by looking at the character code: build two 256-entry - transition tables, one starting at trtable[0] and one - starting at trtable[SBC_MAX]. */ - trtable = state->word_trtable = - (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); - if (__glibc_unlikely (trtable == NULL)) - goto out_free; - - /* For all characters ch...: */ - for (i = 0; i < BITSET_WORDS; ++i) - for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; - elem; - mask <<= 1, elem >>= 1, ++ch) - if (__glibc_unlikely (elem & 1)) - { - /* There must be exactly one destination which accepts - character ch. See group_nodes_into_DFAstates. */ - for (j = 0; (dests_ch[j][i] & mask) == 0; ++j) - ; - - /* j-th destination accepts the word character ch. */ - trtable[ch] = dest_states[j]; - trtable[ch + SBC_MAX] = dest_states_word[j]; - } - } - - /* new line */ - if (bitset_contain (acceptable, NEWLINE_CHAR)) - { - /* The current state accepts newline character. */ - for (j = 0; j < ndests; ++j) - if (bitset_contain (dests_ch[j], NEWLINE_CHAR)) - { - /* k-th destination accepts newline character. */ - trtable[NEWLINE_CHAR] = dest_states_nl[j]; - if (need_word_trtable) - trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j]; - /* There must be only one destination which accepts - newline. See group_nodes_into_DFAstates. */ - break; - } - } - - re_node_set_free (&follows); - for (i = 0; i < ndests; ++i) - re_node_set_free (dests_node + i); - return true; -} - -/* Group all nodes belonging to STATE into several destinations. - Then for all destinations, set the nodes belonging to the destination - to DESTS_NODE[i] and set the characters accepted by the destination - to DEST_CH[i]. Return the number of destinations if successful, - -1 on internal error. */ - -static Idx -group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, - re_node_set *dests_node, bitset_t *dests_ch) -{ - reg_errcode_t err; - bool ok; - Idx i, j, k; - Idx ndests; /* Number of the destinations from 'state'. */ - bitset_t accepts; /* Characters a node can accept. */ - const re_node_set *cur_nodes = &state->nodes; - bitset_empty (accepts); - ndests = 0; - - /* For all the nodes belonging to 'state', */ - for (i = 0; i < cur_nodes->nelem; ++i) - { - re_token_t *node = &dfa->nodes[cur_nodes->elems[i]]; - re_token_type_t type = node->type; - unsigned int constraint = node->constraint; - - /* Enumerate all single byte character this node can accept. */ - if (type == CHARACTER) - bitset_set (accepts, node->opr.c); - else if (type == SIMPLE_BRACKET) - { - bitset_merge (accepts, node->opr.sbcset); - } - else if (type == OP_PERIOD) - { - if (dfa->mb_cur_max > 1) - bitset_merge (accepts, dfa->sb_char); - else - bitset_set_all (accepts); - if (!(dfa->syntax & RE_DOT_NEWLINE)) - bitset_clear (accepts, '\n'); - if (dfa->syntax & RE_DOT_NOT_NULL) - bitset_clear (accepts, '\0'); - } - else if (type == OP_UTF8_PERIOD) - { - if (ASCII_CHARS % BITSET_WORD_BITS == 0) - memset (accepts, -1, ASCII_CHARS / CHAR_BIT); - else - bitset_merge (accepts, utf8_sb_map); - if (!(dfa->syntax & RE_DOT_NEWLINE)) - bitset_clear (accepts, '\n'); - if (dfa->syntax & RE_DOT_NOT_NULL) - bitset_clear (accepts, '\0'); - } - else - continue; - - /* Check the 'accepts' and sift the characters which are not - match it the context. */ - if (constraint) - { - if (constraint & NEXT_NEWLINE_CONSTRAINT) - { - bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); - bitset_empty (accepts); - if (accepts_newline) - bitset_set (accepts, NEWLINE_CHAR); - else - continue; - } - if (constraint & NEXT_ENDBUF_CONSTRAINT) - { - bitset_empty (accepts); - continue; - } - - if (constraint & NEXT_WORD_CONSTRAINT) - { - bitset_word_t any_set = 0; - if (type == CHARACTER && !node->word_char) - { - bitset_empty (accepts); - continue; - } - if (dfa->mb_cur_max > 1) - for (j = 0; j < BITSET_WORDS; ++j) - any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); - else - for (j = 0; j < BITSET_WORDS; ++j) - any_set |= (accepts[j] &= dfa->word_char[j]); - if (!any_set) - continue; - } - if (constraint & NEXT_NOTWORD_CONSTRAINT) - { - bitset_word_t any_set = 0; - if (type == CHARACTER && node->word_char) - { - bitset_empty (accepts); - continue; - } - if (dfa->mb_cur_max > 1) - for (j = 0; j < BITSET_WORDS; ++j) - any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); - else - for (j = 0; j < BITSET_WORDS; ++j) - any_set |= (accepts[j] &= ~dfa->word_char[j]); - if (!any_set) - continue; - } - } - - /* Then divide 'accepts' into DFA states, or create a new - state. Above, we make sure that accepts is not empty. */ - for (j = 0; j < ndests; ++j) - { - bitset_t intersec; /* Intersection sets, see below. */ - bitset_t remains; - /* Flags, see below. */ - bitset_word_t has_intersec, not_subset, not_consumed; - - /* Optimization, skip if this state doesn't accept the character. */ - if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c)) - continue; - - /* Enumerate the intersection set of this state and 'accepts'. */ - has_intersec = 0; - for (k = 0; k < BITSET_WORDS; ++k) - has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k]; - /* And skip if the intersection set is empty. */ - if (!has_intersec) - continue; - - /* Then check if this state is a subset of 'accepts'. */ - not_subset = not_consumed = 0; - for (k = 0; k < BITSET_WORDS; ++k) - { - not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k]; - not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k]; - } - - /* If this state isn't a subset of 'accepts', create a - new group state, which has the 'remains'. */ - if (not_subset) - { - bitset_copy (dests_ch[ndests], remains); - bitset_copy (dests_ch[j], intersec); - err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); - if (__glibc_unlikely (err != REG_NOERROR)) - goto error_return; - ++ndests; - } - - /* Put the position in the current group. */ - ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); - if (__glibc_unlikely (! ok)) - goto error_return; - - /* If all characters are consumed, go to next node. */ - if (!not_consumed) - break; - } - /* Some characters remain, create a new group. */ - if (j == ndests) - { - bitset_copy (dests_ch[ndests], accepts); - err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); - if (__glibc_unlikely (err != REG_NOERROR)) - goto error_return; - ++ndests; - bitset_empty (accepts); - } - } - assume (ndests <= SBC_MAX); - return ndests; - error_return: - for (j = 0; j < ndests; ++j) - re_node_set_free (dests_node + j); - return -1; -} - -/* Check how many bytes the node 'dfa->nodes[node_idx]' accepts. - Return the number of the bytes the node accepts. - STR_IDX is the current index of the input string. - - This function handles the nodes which can accept one character, or - one collating element like '.', '[a-z]', opposite to the other nodes - can only accept one byte. */ - -#ifdef _LIBC -# include -#endif - -static int -check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, - const re_string_t *input, Idx str_idx) -{ - const re_token_t *node = dfa->nodes + node_idx; - int char_len, elem_len; - Idx i; - - if (__glibc_unlikely (node->type == OP_UTF8_PERIOD)) - { - unsigned char c = re_string_byte_at (input, str_idx), d; - if (__glibc_likely (c < 0xc2)) - return 0; - - if (str_idx + 2 > input->len) - return 0; - - d = re_string_byte_at (input, str_idx + 1); - if (c < 0xe0) - return (d < 0x80 || d > 0xbf) ? 0 : 2; - else if (c < 0xf0) - { - char_len = 3; - if (c == 0xe0 && d < 0xa0) - return 0; - } - else if (c < 0xf8) - { - char_len = 4; - if (c == 0xf0 && d < 0x90) - return 0; - } - else if (c < 0xfc) - { - char_len = 5; - if (c == 0xf8 && d < 0x88) - return 0; - } - else if (c < 0xfe) - { - char_len = 6; - if (c == 0xfc && d < 0x84) - return 0; - } - else - return 0; - - if (str_idx + char_len > input->len) - return 0; - - for (i = 1; i < char_len; ++i) - { - d = re_string_byte_at (input, str_idx + i); - if (d < 0x80 || d > 0xbf) - return 0; - } - return char_len; - } - - char_len = re_string_char_size_at (input, str_idx); - if (node->type == OP_PERIOD) - { - if (char_len <= 1) - return 0; - /* FIXME: I don't think this if is needed, as both '\n' - and '\0' are char_len == 1. */ - /* '.' accepts any one character except the following two cases. */ - if ((!(dfa->syntax & RE_DOT_NEWLINE) - && re_string_byte_at (input, str_idx) == '\n') - || ((dfa->syntax & RE_DOT_NOT_NULL) - && re_string_byte_at (input, str_idx) == '\0')) - return 0; - return char_len; - } - - elem_len = re_string_elem_size_at (input, str_idx); - if ((elem_len <= 1 && char_len <= 1) || char_len == 0) - return 0; - - if (node->type == COMPLEX_BRACKET) - { - const re_charset_t *cset = node->opr.mbcset; -#ifdef _LIBC - const unsigned char *pin - = ((const unsigned char *) re_string_get_buffer (input) + str_idx); - Idx j; - uint32_t nrules; -#endif - int match_len = 0; - wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars) - ? re_string_wchar_at (input, str_idx) : 0); - - /* match with multibyte character? */ - for (i = 0; i < cset->nmbchars; ++i) - if (wc == cset->mbchars[i]) - { - match_len = char_len; - goto check_node_accept_bytes_match; - } - /* match with character_class? */ - for (i = 0; i < cset->nchar_classes; ++i) - { - wctype_t wt = cset->char_classes[i]; - if (__iswctype (wc, wt)) - { - match_len = char_len; - goto check_node_accept_bytes_match; - } - } - -#ifdef _LIBC - nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules != 0) - { - unsigned int in_collseq = 0; - const int32_t *table, *indirect; - const unsigned char *weights, *extra; - const char *collseqwc; - - /* match with collating_symbol? */ - if (cset->ncoll_syms) - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); - for (i = 0; i < cset->ncoll_syms; ++i) - { - const unsigned char *coll_sym = extra + cset->coll_syms[i]; - /* Compare the length of input collating element and - the length of current collating element. */ - if (*coll_sym != elem_len) - continue; - /* Compare each bytes. */ - for (j = 0; j < *coll_sym; j++) - if (pin[j] != coll_sym[1 + j]) - break; - if (j == *coll_sym) - { - /* Match if every bytes is equal. */ - match_len = j; - goto check_node_accept_bytes_match; - } - } - - if (cset->nranges) - { - if (elem_len <= char_len) - { - collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); - in_collseq = __collseq_table_lookup (collseqwc, wc); - } - else - in_collseq = find_collation_sequence_value (pin, elem_len); - } - /* match with range expression? */ - /* FIXME: Implement rational ranges here, too. */ - for (i = 0; i < cset->nranges; ++i) - if (cset->range_starts[i] <= in_collseq - && in_collseq <= cset->range_ends[i]) - { - match_len = elem_len; - goto check_node_accept_bytes_match; - } - - /* match with equivalence_class? */ - if (cset->nequiv_classes) - { - const unsigned char *cp = pin; - table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - weights = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); - int32_t idx = findidx (table, indirect, extra, &cp, elem_len); - int32_t rule = idx >> 24; - idx &= 0xffffff; - if (idx > 0) - { - size_t weight_len = weights[idx]; - for (i = 0; i < cset->nequiv_classes; ++i) - { - int32_t equiv_class_idx = cset->equiv_classes[i]; - int32_t equiv_class_rule = equiv_class_idx >> 24; - equiv_class_idx &= 0xffffff; - if (weights[equiv_class_idx] == weight_len - && equiv_class_rule == rule - && memcmp (weights + idx + 1, - weights + equiv_class_idx + 1, - weight_len) == 0) - { - match_len = elem_len; - goto check_node_accept_bytes_match; - } - } - } - } - } - else -#endif /* _LIBC */ - { - /* match with range expression? */ - for (i = 0; i < cset->nranges; ++i) - { - if (cset->range_starts[i] <= wc && wc <= cset->range_ends[i]) - { - match_len = char_len; - goto check_node_accept_bytes_match; - } - } - } - check_node_accept_bytes_match: - if (!cset->non_match) - return match_len; - else - { - if (match_len > 0) - return 0; - else - return (elem_len > char_len) ? elem_len : char_len; - } - } - return 0; -} - -#ifdef _LIBC -static unsigned int -find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) -{ - uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules == 0) - { - if (mbs_len == 1) - { - /* No valid character. Match it as a single byte character. */ - const unsigned char *collseq = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB); - return collseq[mbs[0]]; - } - return UINT_MAX; - } - else - { - int32_t idx; - const unsigned char *extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); - int32_t extrasize = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra; - - for (idx = 0; idx < extrasize;) - { - int mbs_cnt; - bool found = false; - int32_t elem_mbs_len; - /* Skip the name of collating element name. */ - idx = idx + extra[idx] + 1; - elem_mbs_len = extra[idx++]; - if (mbs_len == elem_mbs_len) - { - for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt) - if (extra[idx + mbs_cnt] != mbs[mbs_cnt]) - break; - if (mbs_cnt == elem_mbs_len) - /* Found the entry. */ - found = true; - } - /* Skip the byte sequence of the collating element. */ - idx += elem_mbs_len; - /* Adjust for the alignment. */ - idx = (idx + 3) & ~3; - /* Skip the collation sequence value. */ - idx += sizeof (uint32_t); - /* Skip the wide char sequence of the collating element. */ - idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1); - /* If we found the entry, return the sequence value. */ - if (found) - return *(uint32_t *) (extra + idx); - /* Skip the collation sequence value. */ - idx += sizeof (uint32_t); - } - return UINT_MAX; - } -} -#endif /* _LIBC */ - -/* Check whether the node accepts the byte which is IDX-th - byte of the INPUT. */ - -static bool -check_node_accept (const re_match_context_t *mctx, const re_token_t *node, - Idx idx) -{ - unsigned char ch; - ch = re_string_byte_at (&mctx->input, idx); - switch (node->type) - { - case CHARACTER: - if (node->opr.c != ch) - return false; - break; - - case SIMPLE_BRACKET: - if (!bitset_contain (node->opr.sbcset, ch)) - return false; - break; - - case OP_UTF8_PERIOD: - if (ch >= ASCII_CHARS) - return false; - FALLTHROUGH; - case OP_PERIOD: - if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE)) - || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL))) - return false; - break; - - default: - return false; - } - - if (node->constraint) - { - /* The node has constraints. Check whether the current context - satisfies the constraints. */ - unsigned int context = re_string_context_at (&mctx->input, idx, - mctx->eflags); - if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context)) - return false; - } - - return true; -} - -/* Extend the buffers, if the buffers have run out. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -extend_buffers (re_match_context_t *mctx, int min_len) -{ - reg_errcode_t ret; - re_string_t *pstr = &mctx->input; - - /* Avoid overflow. */ - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 - <= pstr->bufs_len)) - return REG_ESPACE; - - /* Double the lengths of the buffers, but allocate at least MIN_LEN. */ - ret = re_string_realloc_buffers (pstr, - MAX (min_len, - MIN (pstr->len, pstr->bufs_len * 2))); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - - if (mctx->state_log != NULL) - { - /* And double the length of state_log. */ - /* XXX We have no indication of the size of this buffer. If this - allocation fail we have no indication that the state_log array - does not have the right size. */ - re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, - pstr->bufs_len + 1); - if (__glibc_unlikely (new_array == NULL)) - return REG_ESPACE; - mctx->state_log = new_array; - } - - /* Then reconstruct the buffers. */ - if (pstr->icase) - { - if (pstr->mb_cur_max > 1) - { - ret = build_wcs_upper_buffer (pstr); - if (__glibc_unlikely (ret != REG_NOERROR)) - return ret; - } - else - build_upper_buffer (pstr); - } - else - { - if (pstr->mb_cur_max > 1) - build_wcs_buffer (pstr); - else - { - if (pstr->trans != NULL) - re_string_translate_buffer (pstr); - } - } - return REG_NOERROR; -} - - -/* Functions for matching context. */ - -/* Initialize MCTX. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) -{ - mctx->eflags = eflags; - mctx->match_last = -1; - if (n > 0) - { - /* Avoid overflow. */ - size_t max_object_size = - MAX (sizeof (struct re_backref_cache_entry), - sizeof (re_sub_match_top_t *)); - if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n)) - return REG_ESPACE; - - mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); - mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); - if (__glibc_unlikely (mctx->bkref_ents == NULL || mctx->sub_tops == NULL)) - return REG_ESPACE; - } - /* Already zero-ed by the caller. - else - mctx->bkref_ents = NULL; - mctx->nbkref_ents = 0; - mctx->nsub_tops = 0; */ - mctx->abkref_ents = n; - mctx->max_mb_elem_len = 1; - mctx->asub_tops = n; - return REG_NOERROR; -} - -/* Clean the entries which depend on the current input in MCTX. - This function must be invoked when the matcher changes the start index - of the input, or changes the input string. */ - -static void -match_ctx_clean (re_match_context_t *mctx) -{ - Idx st_idx; - for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) - { - Idx sl_idx; - re_sub_match_top_t *top = mctx->sub_tops[st_idx]; - for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx) - { - re_sub_match_last_t *last = top->lasts[sl_idx]; - re_free (last->path.array); - re_free (last); - } - re_free (top->lasts); - if (top->path) - { - re_free (top->path->array); - re_free (top->path); - } - re_free (top); - } - - mctx->nsub_tops = 0; - mctx->nbkref_ents = 0; -} - -/* Free all the memory associated with MCTX. */ - -static void -match_ctx_free (re_match_context_t *mctx) -{ - /* First, free all the memory associated with MCTX->SUB_TOPS. */ - match_ctx_clean (mctx); - re_free (mctx->sub_tops); - re_free (mctx->bkref_ents); -} - -/* Add a new backreference entry to MCTX. - Note that we assume that caller never call this function with duplicate - entry, and call with STR_IDX which isn't smaller than any existing entry. -*/ - -static reg_errcode_t -__attribute_warn_unused_result__ -match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, - Idx to) -{ - if (mctx->nbkref_ents >= mctx->abkref_ents) - { - struct re_backref_cache_entry* new_entry; - new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, - mctx->abkref_ents * 2); - if (__glibc_unlikely (new_entry == NULL)) - { - re_free (mctx->bkref_ents); - return REG_ESPACE; - } - mctx->bkref_ents = new_entry; - memset (mctx->bkref_ents + mctx->nbkref_ents, '\0', - sizeof (struct re_backref_cache_entry) * mctx->abkref_ents); - mctx->abkref_ents *= 2; - } - if (mctx->nbkref_ents > 0 - && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx) - mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1; - - mctx->bkref_ents[mctx->nbkref_ents].node = node; - mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx; - mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from; - mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to; - - /* This is a cache that saves negative results of check_dst_limits_calc_pos. - If bit N is clear, means that this entry won't epsilon-transition to - an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression. If - it is set, check_dst_limits_calc_pos_1 will recurse and try to find one - such node. - - A backreference does not epsilon-transition unless it is empty, so set - to all zeros if FROM != TO. */ - mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map - = (from == to ? -1 : 0); - - mctx->bkref_ents[mctx->nbkref_ents++].more = 0; - if (mctx->max_mb_elem_len < to - from) - mctx->max_mb_elem_len = to - from; - return REG_NOERROR; -} - -/* Return the first entry with the same str_idx, or -1 if none is - found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ - -static Idx -search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) -{ - Idx left, right, mid, last; - last = right = mctx->nbkref_ents; - for (left = 0; left < right;) - { - mid = (left + right) / 2; - if (mctx->bkref_ents[mid].str_idx < str_idx) - left = mid + 1; - else - right = mid; - } - if (left < last && mctx->bkref_ents[left].str_idx == str_idx) - return left; - else - return -1; -} - -/* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches - at STR_IDX. */ - -static reg_errcode_t -__attribute_warn_unused_result__ -match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) -{ - DEBUG_ASSERT (mctx->sub_tops != NULL); - DEBUG_ASSERT (mctx->asub_tops > 0); - if (__glibc_unlikely (mctx->nsub_tops == mctx->asub_tops)) - { - Idx new_asub_tops = mctx->asub_tops * 2; - re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, - re_sub_match_top_t *, - new_asub_tops); - if (__glibc_unlikely (new_array == NULL)) - return REG_ESPACE; - mctx->sub_tops = new_array; - mctx->asub_tops = new_asub_tops; - } - mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); - if (__glibc_unlikely (mctx->sub_tops[mctx->nsub_tops] == NULL)) - return REG_ESPACE; - mctx->sub_tops[mctx->nsub_tops]->node = node; - mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; - return REG_NOERROR; -} - -/* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches - at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. - Return the new entry if successful, NULL if memory is exhausted. */ - -static re_sub_match_last_t * -match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) -{ - re_sub_match_last_t *new_entry; - if (__glibc_unlikely (subtop->nlasts == subtop->alasts)) - { - Idx new_alasts = 2 * subtop->alasts + 1; - re_sub_match_last_t **new_array = re_realloc (subtop->lasts, - re_sub_match_last_t *, - new_alasts); - if (__glibc_unlikely (new_array == NULL)) - return NULL; - subtop->lasts = new_array; - subtop->alasts = new_alasts; - } - new_entry = calloc (1, sizeof (re_sub_match_last_t)); - if (__glibc_likely (new_entry != NULL)) - { - subtop->lasts[subtop->nlasts] = new_entry; - new_entry->node = node; - new_entry->str_idx = str_idx; - ++subtop->nlasts; - } - return new_entry; -} - -static void -sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, - re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) -{ - sctx->sifted_states = sifted_sts; - sctx->limited_states = limited_sts; - sctx->last_node = last_node; - sctx->last_str_idx = last_str_idx; - re_node_set_init_empty (&sctx->limits); -} diff --git a/jni/parted/libgnulib/lib/rpmatch.c b/jni/parted/libgnulib/lib/rpmatch.c deleted file mode 100755 index ac16fbf..0000000 --- a/jni/parted/libgnulib/lib/rpmatch.c +++ /dev/null @@ -1,175 +0,0 @@ -/* Determine whether string value is affirmation or negative response - according to current locale's data. - - Copyright (C) 1996, 1998, 2000, 2002-2003, 2006-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#include - -/* Specification. */ -#include - -#include - -#if ENABLE_NLS -# include -# include -# include -# if HAVE_LANGINFO_YESEXPR -# include -# endif -# include -# include "gettext.h" -# define _(msgid) gettext (msgid) -# define N_(msgid) gettext_noop (msgid) - -# if HAVE_LANGINFO_YESEXPR -/* Return the localized regular expression pattern corresponding to - ENGLISH_PATTERN. NL_INDEX can be used with nl_langinfo. - The resulting string may only be used until the next nl_langinfo call. */ -static const char * -localized_pattern (const char *english_pattern, nl_item nl_index, - bool posixly_correct) -{ - const char *translated_pattern; - - /* We prefer to get the patterns from a PO file. It would be possible to - always use nl_langinfo (YESEXPR) instead of _("^[yY]"), and - nl_langinfo (NOEXPR) instead of _("^[nN]"), if we could assume that the - system's locale support is good. But this is not the case e.g. on Cygwin. - The localizations of gnulib.pot are of better quality in general. - Also, if we use locale info from non-free systems that don't have a - 'localedef' command, we deprive the users of the freedom to localize - this pattern for their preferred language. - But some programs, such as 'cp', 'mv', 'rm', 'find', 'xargs', are - specified by POSIX to use nl_langinfo (YESEXPR). We implement this - behaviour if POSIXLY_CORRECT is set, for the sake of these programs. */ - - /* If the user wants strict POSIX compliance, use nl_langinfo. */ - if (posixly_correct) - { - translated_pattern = nl_langinfo (nl_index); - /* Check against a broken system return value. */ - if (translated_pattern != NULL && translated_pattern[0] != '\0') - return translated_pattern; - } - - /* Look in the gnulib message catalog. */ - translated_pattern = _(english_pattern); - if (translated_pattern == english_pattern) - { - /* The gnulib message catalog provides no translation. - Try the system's message catalog. */ - translated_pattern = nl_langinfo (nl_index); - /* Check against a broken system return value. */ - if (translated_pattern != NULL && translated_pattern[0] != '\0') - return translated_pattern; - /* Fall back to English. */ - translated_pattern = english_pattern; - } - return translated_pattern; -} -# else -# define localized_pattern(english_pattern,nl_index,posixly_correct) \ - _(english_pattern) -# endif - -static int -try (const char *response, const char *pattern, char **lastp, regex_t *re) -{ - if (*lastp == NULL || strcmp (pattern, *lastp) != 0) - { - char *safe_pattern; - - /* The pattern has changed. */ - if (*lastp != NULL) - { - /* Free the old compiled pattern. */ - regfree (re); - free (*lastp); - *lastp = NULL; - } - /* Put the PATTERN into safe memory before calling regcomp. - (regcomp may call nl_langinfo, overwriting PATTERN's storage. */ - safe_pattern = strdup (pattern); - if (safe_pattern == NULL) - return -1; - /* Compile the pattern and cache it for future runs. */ - if (regcomp (re, safe_pattern, REG_EXTENDED) != 0) - { - free (safe_pattern); - return -1; - } - *lastp = safe_pattern; - } - - /* See if the regular expression matches RESPONSE. */ - return regexec (re, response, 0, NULL, 0) == 0; -} -#endif - - -int -rpmatch (const char *response) -{ -#if ENABLE_NLS - /* Match against one of the response patterns, compiling the pattern - first if necessary. */ - - /* We cache the response patterns and compiled regexps here. */ - static char *last_yesexpr, *last_noexpr; - static regex_t cached_yesre, cached_nore; - -# if HAVE_LANGINFO_YESEXPR - bool posixly_correct = (getenv ("POSIXLY_CORRECT") != NULL); -# endif - - const char *yesexpr, *noexpr; - int result; - - /* TRANSLATORS: A regular expression testing for an affirmative answer - (english: "yes"). Testing the first character may be sufficient. - Take care to consider upper and lower case. - To enquire the regular expression that your system uses for this - purpose, you can use the command - locale -k LC_MESSAGES | grep '^yesexpr=' */ - yesexpr = localized_pattern (N_("^[yY]"), YESEXPR, posixly_correct); - result = try (response, yesexpr, &last_yesexpr, &cached_yesre); - if (result < 0) - return -1; - if (result) - return 1; - - /* TRANSLATORS: A regular expression testing for a negative answer - (english: "no"). Testing the first character may be sufficient. - Take care to consider upper and lower case. - To enquire the regular expression that your system uses for this - purpose, you can use the command - locale -k LC_MESSAGES | grep '^noexpr=' */ - noexpr = localized_pattern (N_("^[nN]"), NOEXPR, posixly_correct); - result = try (response, noexpr, &last_noexpr, &cached_nore); - if (result < 0) - return -1; - if (result) - return 0; - - return -1; -#else - /* Test against "^[yY]" and "^[nN]", hardcoded to avoid requiring regex */ - return (*response == 'y' || *response == 'Y' ? 1 - : *response == 'n' || *response == 'N' ? 0 : -1); -#endif -} diff --git a/jni/parted/libgnulib/lib/safe-read.c b/jni/parted/libgnulib/lib/safe-read.c deleted file mode 100755 index c7d31d5..0000000 --- a/jni/parted/libgnulib/lib/safe-read.c +++ /dev/null @@ -1,71 +0,0 @@ -/* An interface to read and write that retries after interrupts. - - Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2024 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#ifdef SAFE_WRITE -# include "safe-write.h" -#else -# include "safe-read.h" -#endif - -/* Get ssize_t. */ -#include -#include - -#include - -#ifdef EINTR -# define IS_EINTR(x) ((x) == EINTR) -#else -# define IS_EINTR(x) 0 -#endif - -#include "sys-limits.h" - -#ifdef SAFE_WRITE -# define safe_rw safe_write -# define rw write -typedef void const *bufptr; -#else -# define safe_rw safe_read -# define rw read -typedef void *bufptr; -#endif - -/* Read(write) up to COUNT bytes at BUF from(to) descriptor FD, retrying if - interrupted. Return the number of bytes read(written), zero for EOF, - or -1 upon error. */ -ptrdiff_t -safe_rw (int fd, bufptr buf, idx_t count) -{ - for (;;) - { - ssize_t result = rw (fd, buf, count <= (size_t) -1 ? count : (size_t) -1); - - if (0 <= result) - return result; - else if (IS_EINTR (errno)) - continue; - else if (errno == EINVAL && SYS_BUFSIZE_MAX < count) - count = SYS_BUFSIZE_MAX; - else - return result; - } -} diff --git a/jni/parted/libgnulib/lib/setlocale-lock.c b/jni/parted/libgnulib/lib/setlocale-lock.c deleted file mode 100755 index 192489c..0000000 --- a/jni/parted/libgnulib/lib/setlocale-lock.c +++ /dev/null @@ -1,151 +0,0 @@ -/* Return the internal lock used by setlocale_null_r. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#include - -/* The option '--disable-threads' explicitly requests no locking. */ -/* When it is known that the gl_get_setlocale_null_lock function is defined - by a dependency library, it should not be defined here. */ -#if AVOID_ANY_THREADS || OMIT_SETLOCALE_LOCK - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#else - -/* This file defines the internal lock used by setlocale_null_r. - It is a separate compilation unit, so that only one copy of it is - present when linking statically. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_setlocale_null_lock - -/* Macro for exporting a symbol (function, not variable) defined in this file, - when compiled into a shared library. */ -# ifndef SHLIB_EXPORTED -# if HAVE_VISIBILITY - /* Override the effect of the compiler option '-fvisibility=hidden'. */ -# define SHLIB_EXPORTED __attribute__((__visibility__("default"))) -# elif defined _WIN32 || defined __CYGWIN__ -# define SHLIB_EXPORTED __declspec(dllexport) -# else -# define SHLIB_EXPORTED -# endif -# endif - -# if defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# include "windows-initguard.h" - -/* The return type is a 'CRITICAL_SECTION *', not a 'glwthread_mutex_t *', - because the latter is not guaranteed to be a stable ABI in the future. */ - -/* Make sure the function gets exported from DLLs. */ -SHLIB_EXPORTED CRITICAL_SECTION *gl_get_setlocale_null_lock (void); - -static glwthread_initguard_t guard = GLWTHREAD_INITGUARD_INIT; -static CRITICAL_SECTION lock; - -/* Returns the internal lock used by setlocale_null_r. */ -CRITICAL_SECTION * -gl_get_setlocale_null_lock (void) -{ - if (!guard.done) - { - if (InterlockedIncrement (&guard.started) == 0) - { - /* This thread is the first one to need the lock. Initialize it. */ - InitializeCriticalSection (&lock); - guard.done = 1; - } - else - { - /* Don't let guard.started grow and wrap around. */ - InterlockedDecrement (&guard.started); - /* Yield the CPU while waiting for another thread to finish - initializing this mutex. */ - while (!guard.done) - Sleep (0); - } - } - return &lock; -} - -# elif HAVE_PTHREAD_API - -# include - -static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -/* Make sure the function gets exported from shared libraries. */ -SHLIB_EXPORTED pthread_mutex_t *gl_get_setlocale_null_lock (void); - -/* Returns the internal lock used by setlocale_null_r. */ -pthread_mutex_t * -gl_get_setlocale_null_lock (void) -{ - return &mutex; -} - -# elif HAVE_THREADS_H - -# include -# include - -static int volatile init_needed = 1; -static once_flag init_once = ONCE_FLAG_INIT; -static mtx_t mutex; - -static void -atomic_init (void) -{ - if (mtx_init (&mutex, mtx_plain) != thrd_success) - abort (); - init_needed = 0; -} - -/* Make sure the function gets exported from shared libraries. */ -SHLIB_EXPORTED mtx_t *gl_get_setlocale_null_lock (void); - -/* Returns the internal lock used by setlocale_null_r. */ -mtx_t * -gl_get_setlocale_null_lock (void) -{ - if (init_needed) - call_once (&init_once, atomic_init); - return &mutex; -} - -# endif - -# if (defined _WIN32 || defined __CYGWIN__) && !defined _MSC_VER -/* Make sure the '__declspec(dllimport)' in setlocale_null.c does not cause - a link failure when no DLLs are involved. */ -# if defined _WIN64 || defined _LP64 -# define IMP(x) __imp_##x -# else -# define IMP(x) _imp__##x -# endif -void * IMP(gl_get_setlocale_null_lock) = &gl_get_setlocale_null_lock; -# endif - -#endif diff --git a/jni/parted/libgnulib/lib/setlocale_null-unlocked.c b/jni/parted/libgnulib/lib/setlocale_null-unlocked.c deleted file mode 100755 index 0a86f0d..0000000 --- a/jni/parted/libgnulib/lib/setlocale_null-unlocked.c +++ /dev/null @@ -1,149 +0,0 @@ -/* Query the name of the current global locale, without locking. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#include - -/* Specification. */ -#include "setlocale_null.h" - -#include -#include -#include -#if defined _WIN32 && !defined __CYGWIN__ -# include -#endif - -/* Use the system's setlocale() function, not the gnulib override, here. */ -#undef setlocale - -const char * -setlocale_null_unlocked (int category) -{ - const char *result = setlocale (category, NULL); - -#ifdef __ANDROID__ - if (result == NULL) - switch (category) - { - case LC_CTYPE: - case LC_NUMERIC: - case LC_TIME: - case LC_COLLATE: - case LC_MONETARY: - case LC_MESSAGES: - case LC_ALL: - case LC_PAPER: - case LC_NAME: - case LC_ADDRESS: - case LC_TELEPHONE: - case LC_MEASUREMENT: - result = "C"; - break; - default: - break; - } -#endif - - return result; -} - -int -setlocale_null_r_unlocked (int category, char *buf, size_t bufsize) -{ -#if defined _WIN32 && !defined __CYGWIN__ && defined _MSC_VER - /* On native Windows, nowadays, the setlocale() implementation is based - on _wsetlocale() and uses malloc() for the result. We are better off - using _wsetlocale() directly. */ - const wchar_t *result = _wsetlocale (category, NULL); - - if (result == NULL) - { - /* CATEGORY is invalid. */ - if (bufsize > 0) - /* Return an empty string in BUF. - This is a convenience for callers that don't want to write explicit - code for handling EINVAL. */ - buf[0] = '\0'; - return EINVAL; - } - else - { - size_t length = wcslen (result); - if (length < bufsize) - { - size_t i; - - /* Convert wchar_t[] -> char[], assuming plain ASCII. */ - for (i = 0; i <= length; i++) - buf[i] = result[i]; - - return 0; - } - else - { - if (bufsize > 0) - { - /* Return a truncated result in BUF. - This is a convenience for callers that don't want to write - explicit code for handling ERANGE. */ - size_t i; - - /* Convert wchar_t[] -> char[], assuming plain ASCII. */ - for (i = 0; i < bufsize; i++) - buf[i] = result[i]; - buf[bufsize - 1] = '\0'; - } - return ERANGE; - } - } -#else - const char *result = setlocale_null_unlocked (category); - - if (result == NULL) - { - /* CATEGORY is invalid. */ - if (bufsize > 0) - /* Return an empty string in BUF. - This is a convenience for callers that don't want to write explicit - code for handling EINVAL. */ - buf[0] = '\0'; - return EINVAL; - } - else - { - size_t length = strlen (result); - if (length < bufsize) - { - memcpy (buf, result, length + 1); - return 0; - } - else - { - if (bufsize > 0) - { - /* Return a truncated result in BUF. - This is a convenience for callers that don't want to write - explicit code for handling ERANGE. */ - memcpy (buf, result, bufsize - 1); - buf[bufsize - 1] = '\0'; - } - return ERANGE; - } - } -#endif -} diff --git a/jni/parted/libgnulib/lib/setlocale_null.c b/jni/parted/libgnulib/lib/setlocale_null.c deleted file mode 100755 index 5ecf413..0000000 --- a/jni/parted/libgnulib/lib/setlocale_null.c +++ /dev/null @@ -1,299 +0,0 @@ -/* Query the name of the current global locale. - Copyright (C) 2019-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2019. */ - -#include - -/* Specification. */ -#include "setlocale_null.h" - -#include -#include -#include -#include - -#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) - -# if AVOID_ANY_THREADS - -/* The option '--disable-threads' explicitly requests no locking. */ - -# elif defined _WIN32 && !defined __CYGWIN__ - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# elif HAVE_PTHREAD_API - -# include -# if HAVE_THREADS_H && HAVE_WEAK_SYMBOLS -# include -# pragma weak thrd_exit -# define c11_threads_in_use() (thrd_exit != NULL) -# else -# define c11_threads_in_use() 0 -# endif - -# elif HAVE_THREADS_H - -# include - -# endif - -#endif - -#if !(SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE) /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */ - -/* Use a lock, so that no two threads can invoke setlocale_null_r_unlocked - at the same time. */ - -/* Prohibit renaming this symbol. */ -# undef gl_get_setlocale_null_lock - -# if AVOID_ANY_THREADS - -/* The option '--disable-threads' explicitly requests no locking. */ -# define setlocale_null_r_with_lock setlocale_null_r_unlocked - -# elif defined _WIN32 && !defined __CYGWIN__ - -extern __declspec(dllimport) CRITICAL_SECTION *gl_get_setlocale_null_lock (void); - -static int -setlocale_null_r_with_lock (int category, char *buf, size_t bufsize) -{ - CRITICAL_SECTION *lock = gl_get_setlocale_null_lock (); - int ret; - - EnterCriticalSection (lock); - ret = setlocale_null_r_unlocked (category, buf, bufsize); - LeaveCriticalSection (lock); - - return ret; -} - -# elif HAVE_PTHREAD_API /* musl libc, macOS, FreeBSD, NetBSD, OpenBSD, AIX, Haiku, Cygwin < 3.4.6 */ - -extern -# if defined _WIN32 || defined __CYGWIN__ - __declspec(dllimport) -# endif - pthread_mutex_t *gl_get_setlocale_null_lock (void); - -# if HAVE_WEAK_SYMBOLS /* musl libc, FreeBSD, NetBSD, OpenBSD, Haiku */ - - /* Avoid the need to link with '-lpthread'. */ -# pragma weak pthread_mutex_lock -# pragma weak pthread_mutex_unlock - - /* Determine whether libpthread is in use. */ -# pragma weak pthread_mutexattr_gettype - /* See the comments in lock.h. */ -# define pthread_in_use() \ - (pthread_mutexattr_gettype != NULL || c11_threads_in_use ()) - -# else -# define pthread_in_use() 1 -# endif - -static int -setlocale_null_r_with_lock (int category, char *buf, size_t bufsize) -{ - if (pthread_in_use()) - { - pthread_mutex_t *lock = gl_get_setlocale_null_lock (); - int ret; - - if (pthread_mutex_lock (lock)) - abort (); - ret = setlocale_null_r_unlocked (category, buf, bufsize); - if (pthread_mutex_unlock (lock)) - abort (); - - return ret; - } - else - return setlocale_null_r_unlocked (category, buf, bufsize); -} - -# elif HAVE_THREADS_H - -extern mtx_t *gl_get_setlocale_null_lock (void); - -static int -setlocale_null_r_with_lock (int category, char *buf, size_t bufsize) -{ - mtx_t *lock = gl_get_setlocale_null_lock (); - int ret; - - if (mtx_lock (lock) != thrd_success) - abort (); - ret = setlocale_null_r_unlocked (category, buf, bufsize); - if (mtx_unlock (lock) != thrd_success) - abort (); - - return ret; -} - -# endif - -#endif - -int -setlocale_null_r (int category, char *buf, size_t bufsize) -{ -#if SETLOCALE_NULL_ALL_MTSAFE -# if SETLOCALE_NULL_ONE_MTSAFE - - return setlocale_null_r_unlocked (category, buf, bufsize); - -# else - - if (category == LC_ALL) - return setlocale_null_r_unlocked (category, buf, bufsize); - else - return setlocale_null_r_with_lock (category, buf, bufsize); - -# endif -#else -# if SETLOCALE_NULL_ONE_MTSAFE - - if (category == LC_ALL) - return setlocale_null_r_with_lock (category, buf, bufsize); - else - return setlocale_null_r_unlocked (category, buf, bufsize); - -# else - - return setlocale_null_r_with_lock (category, buf, bufsize); - -# endif -#endif -} - -const char * -setlocale_null (int category) -{ -#if SETLOCALE_NULL_ALL_MTSAFE && SETLOCALE_NULL_ONE_MTSAFE - return setlocale_null_unlocked (category); -#else - - /* This call must be multithread-safe. To achieve this without using - thread-local storage: - 1. We use a specific static buffer for each possible CATEGORY - argument. So that different threads can call setlocale_mtsafe - with different CATEGORY arguments, without interfering. - 2. We use a simple strcpy or memcpy to fill this static buffer. - Filling it through, for example, strcpy + strcat would not be - guaranteed to leave the buffer's contents intact if another thread - is currently accessing it. If necessary, the contents is first - assembled in a stack-allocated buffer. */ - if (category == LC_ALL) - { -# if SETLOCALE_NULL_ALL_MTSAFE - return setlocale_null_unlocked (LC_ALL); -# else - char buf[SETLOCALE_NULL_ALL_MAX]; - static char resultbuf[SETLOCALE_NULL_ALL_MAX]; - - if (setlocale_null_r (LC_ALL, buf, sizeof (buf))) - return "C"; - strcpy (resultbuf, buf); - return resultbuf; -# endif - } - else - { -# if SETLOCALE_NULL_ONE_MTSAFE - return setlocale_null_unlocked (category); -# else - enum - { - LC_CTYPE_INDEX, - LC_NUMERIC_INDEX, - LC_TIME_INDEX, - LC_COLLATE_INDEX, - LC_MONETARY_INDEX, - LC_MESSAGES_INDEX, -# ifdef LC_PAPER - LC_PAPER_INDEX, -# endif -# ifdef LC_NAME - LC_NAME_INDEX, -# endif -# ifdef LC_ADDRESS - LC_ADDRESS_INDEX, -# endif -# ifdef LC_TELEPHONE - LC_TELEPHONE_INDEX, -# endif -# ifdef LC_MEASUREMENT - LC_MEASUREMENT_INDEX, -# endif -# ifdef LC_IDENTIFICATION - LC_IDENTIFICATION_INDEX, -# endif - LC_INDICES_COUNT - } - i; - char buf[SETLOCALE_NULL_MAX]; - static char resultbuf[LC_INDICES_COUNT][SETLOCALE_NULL_MAX]; - int err; - - err = setlocale_null_r (category, buf, sizeof (buf)); - if (err == EINVAL) - return NULL; - if (err) - return "C"; - - switch (category) - { - case LC_CTYPE: i = LC_CTYPE_INDEX; break; - case LC_NUMERIC: i = LC_NUMERIC_INDEX; break; - case LC_TIME: i = LC_TIME_INDEX; break; - case LC_COLLATE: i = LC_COLLATE_INDEX; break; - case LC_MONETARY: i = LC_MONETARY_INDEX; break; - case LC_MESSAGES: i = LC_MESSAGES_INDEX; break; -# ifdef LC_PAPER - case LC_PAPER: i = LC_PAPER_INDEX; break; -# endif -# ifdef LC_NAME - case LC_NAME: i = LC_NAME_INDEX; break; -# endif -# ifdef LC_ADDRESS - case LC_ADDRESS: i = LC_ADDRESS_INDEX; break; -# endif -# ifdef LC_TELEPHONE - case LC_TELEPHONE: i = LC_TELEPHONE_INDEX; break; -# endif -# ifdef LC_MEASUREMENT - case LC_MEASUREMENT: i = LC_MEASUREMENT_INDEX; break; -# endif -# ifdef LC_IDENTIFICATION - case LC_IDENTIFICATION: i = LC_IDENTIFICATION_INDEX; break; -# endif - default: - /* If you get here, a #ifdef LC_xxx is missing. */ - abort (); - } - - strcpy (resultbuf[i], buf); - return resultbuf[i]; -# endif - } -#endif -} diff --git a/jni/parted/libgnulib/lib/stat-time.c b/jni/parted/libgnulib/lib/stat-time.c deleted file mode 100755 index 1ab01f5..0000000 --- a/jni/parted/libgnulib/lib/stat-time.c +++ /dev/null @@ -1,21 +0,0 @@ -/* stat-related time functions. - - Copyright (C) 2012-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE -#include "stat-time.h" diff --git a/jni/parted/libgnulib/lib/stripslash.c b/jni/parted/libgnulib/lib/stripslash.c deleted file mode 100755 index c127ce7..0000000 --- a/jni/parted/libgnulib/lib/stripslash.c +++ /dev/null @@ -1,45 +0,0 @@ -/* stripslash.c -- remove redundant trailing slashes from a file name - - Copyright (C) 1990, 2001, 2003-2006, 2009-2024 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#include "dirname.h" - -/* Remove trailing slashes from FILE. Return true if a trailing slash - was removed. This is useful when using file name completion from a - shell that adds a "/" after directory names (such as tcsh and - bash), because on symlinks to directories, several system calls - have different semantics according to whether a trailing slash is - present. */ - -bool -strip_trailing_slashes (char *file) -{ - char *base = last_component (file); - char *base_lim; - bool had_slash; - - /* last_component returns "" for file system roots, but we need to turn - "///" into "/". */ - if (! *base) - base = file; - base_lim = base + base_len (base); - had_slash = (*base_lim != '\0'); - *base_lim = '\0'; - return had_slash; -} diff --git a/jni/parted/libgnulib/lib/tempname.c b/jni/parted/libgnulib/lib/tempname.c deleted file mode 100755 index 446ddea..0000000 --- a/jni/parted/libgnulib/lib/tempname.c +++ /dev/null @@ -1,286 +0,0 @@ -/* Copyright (C) 1991-2024 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#if !_LIBC -# include -# include "tempname.h" -#endif - -#include - -#include -#ifndef TMP_MAX -# define TMP_MAX 238328 -#endif -#ifndef __GT_FILE -# define __GT_FILE 0 -# define __GT_DIR 1 -# define __GT_NOCREATE 2 -#endif -#if !_LIBC && (GT_FILE != __GT_FILE || GT_DIR != __GT_DIR \ - || GT_NOCREATE != __GT_NOCREATE) -# error report this to bug-gnulib@gnu.org -#endif - -#include -#include - -#include -#include -#include -#include -#include - -#if _LIBC -# define struct_stat64 struct __stat64_t64 -#else -# define struct_stat64 struct stat -# define __gen_tempname gen_tempname -# define __mkdir mkdir -# define __open open -# define __lstat64_time64(file, buf) lstat (file, buf) -# define __getrandom getrandom -# define __clock_gettime64 clock_gettime -# define __timespec64 timespec -#endif - -/* Use getrandom if it works, falling back on a 64-bit linear - congruential generator that starts with Var's value - mixed in with a clock's low-order bits if available. */ -typedef uint_fast64_t random_value; -#define RANDOM_VALUE_MAX UINT_FAST64_MAX -#define BASE_62_DIGITS 10 /* 62**10 < UINT_FAST64_MAX */ -#define BASE_62_POWER (62LL * 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62 * 62) - -/* Return the result of mixing the entropy from R and S. - Assume that R and S are not particularly random, - and that the result should look randomish to an untrained eye. */ - -static random_value -mix_random_values (random_value r, random_value s) -{ - /* As this code is used only when high-quality randomness is neither - available nor necessary, there is no need for fancier polynomials - such as those in the Linux kernel's 'random' driver. */ - return (2862933555777941757 * r + 3037000493) ^ s; -} - -/* Set *R to a random value. - Return true if *R is set to high-quality value taken from getrandom. - Otherwise return false, falling back to a low-quality *R that might - depend on S. - - This function returns false only when getrandom fails. - On GNU systems this should happen only early in the boot process, - when the fallback should be good enough for programs using tempname - because any attacker likely has root privileges already. */ - -static bool -random_bits (random_value *r, random_value s) -{ - /* Without GRND_NONBLOCK it can be blocked for minutes on some systems. */ - if (__getrandom (r, sizeof *r, GRND_NONBLOCK) == sizeof *r) - return true; - - /* If getrandom did not work, use ersatz entropy based on low-order - clock bits. On GNU systems getrandom should fail only - early in booting, when ersatz should be good enough. - Do not use ASLR-based entropy, as that would leak ASLR info into - the resulting file name which is typically public. - - Of course we are in a state of sin here. */ - - random_value v = s; - -#if _LIBC || (defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME) - struct __timespec64 tv; - __clock_gettime64 (CLOCK_REALTIME, &tv); - v = mix_random_values (v, tv.tv_sec); - v = mix_random_values (v, tv.tv_nsec); -#endif - - *r = mix_random_values (v, clock ()); - return false; -} - -#if _LIBC -static int try_tempname_len (char *, int, void *, int (*) (char *, void *), - size_t); -#endif - -static int -try_file (char *tmpl, void *flags) -{ - int *openflags = flags; - return __open (tmpl, - (*openflags & ~O_ACCMODE) - | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); -} - -static int -try_dir (char *tmpl, _GL_UNUSED void *flags) -{ - return __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); -} - -static int -try_nocreate (char *tmpl, _GL_UNUSED void *flags) -{ - struct_stat64 st; - - if (__lstat64_time64 (tmpl, &st) == 0 || errno == EOVERFLOW) - __set_errno (EEXIST); - return errno == ENOENT ? 0 : -1; -} - -/* These are the characters used in temporary file names. */ -static const char letters[] = -"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - -/* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e., end in at least X_SUFFIX_LEN "X"s, - possibly with a suffix). - The name constructed does not exist at the time of the call to - this function. TMPL is overwritten with the result. - - KIND may be one of: - __GT_NOCREATE: simply verify that the name does not exist - at the time of the call. - __GT_FILE: create the file using open(O_CREAT|O_EXCL) - and return a read-write fd. The file is mode 0600. - __GT_DIR: create a directory, which will be mode 0700. - - */ -#ifdef _LIBC -static -#endif -int -gen_tempname_len (char *tmpl, int suffixlen, int flags, int kind, - size_t x_suffix_len) -{ - static int (*const tryfunc[]) (char *, void *) = - { - [__GT_FILE] = try_file, - [__GT_DIR] = try_dir, - [__GT_NOCREATE] = try_nocreate - }; - return try_tempname_len (tmpl, suffixlen, &flags, tryfunc[kind], - x_suffix_len); -} - -#ifdef _LIBC -static -#endif -int -try_tempname_len (char *tmpl, int suffixlen, void *args, - int (*tryfunc) (char *, void *), size_t x_suffix_len) -{ - size_t len; - char *XXXXXX; - unsigned int count; - int fd = -1; - int saved_errno = errno; - - /* A lower bound on the number of temporary files to attempt to - generate. The maximum total number of temporary file names that - can exist for a given template is 62**6. It should never be - necessary to try all of these combinations. Instead if a reasonable - number of names is tried (we define reasonable as 62**3) fail to - give the system administrator the chance to remove the problems. - This value requires that X_SUFFIX_LEN be at least 3. */ -#define ATTEMPTS_MIN (62 * 62 * 62) - - /* The number of times to attempt to generate a temporary file. To - conform to POSIX, this must be no smaller than TMP_MAX. */ -#if ATTEMPTS_MIN < TMP_MAX - unsigned int attempts = TMP_MAX; -#else - unsigned int attempts = ATTEMPTS_MIN; -#endif - - /* A random variable. */ - random_value v = 0; - - /* A value derived from the random variable, and how many random - base-62 digits can currently be extracted from VDIGBUF. */ - random_value vdigbuf; - int vdigits = 0; - - /* Least biased value for V. If V is less than this, V can generate - BASE_62_DIGITS unbiased digits. Otherwise the digits are biased. */ - random_value const biased_min - = RANDOM_VALUE_MAX - RANDOM_VALUE_MAX % BASE_62_POWER; - - len = strlen (tmpl); - if (len < x_suffix_len + suffixlen - || strspn (&tmpl[len - x_suffix_len - suffixlen], "X") < x_suffix_len) - { - __set_errno (EINVAL); - return -1; - } - - /* This is where the Xs start. */ - XXXXXX = &tmpl[len - x_suffix_len - suffixlen]; - - for (count = 0; count < attempts; ++count) - { - for (size_t i = 0; i < x_suffix_len; i++) - { - if (vdigits == 0) - { - /* Worry about bias only if the bits are high quality. */ - while (random_bits (&v, v) && biased_min <= v) - continue; - - vdigbuf = v; - vdigits = BASE_62_DIGITS; - } - - XXXXXX[i] = letters[vdigbuf % 62]; - vdigbuf /= 62; - vdigits--; - } - - fd = tryfunc (tmpl, args); - if (fd >= 0) - { - __set_errno (saved_errno); - return fd; - } - else if (errno != EEXIST) - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - __set_errno (EEXIST); - return -1; -} - -int -__gen_tempname (char *tmpl, int suffixlen, int flags, int kind) -{ - return gen_tempname_len (tmpl, suffixlen, flags, kind, 6); -} - -#if !_LIBC -int -try_tempname (char *tmpl, int suffixlen, void *args, - int (*tryfunc) (char *, void *)) -{ - return try_tempname_len (tmpl, suffixlen, args, tryfunc, 6); -} -#endif diff --git a/jni/parted/libgnulib/lib/unictype/bitmap.h b/jni/parted/libgnulib/lib/unictype/bitmap.h deleted file mode 100755 index dba2365..0000000 --- a/jni/parted/libgnulib/lib/unictype/bitmap.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Three-level bitmap lookup. - Copyright (C) 2000-2002, 2005-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2000-2002. - - This file 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 file 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 program. If not, see . */ - -static inline int bitmap_lookup (const void *table, ucs4_t uc); - -/* These values are currently hardcoded into gen-uni-tables.c, function - output_predicate(). */ -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 - -static inline int -bitmap_lookup (const void *table, ucs4_t uc) -{ - unsigned int index1 = uc >> header_0; - if (index1 < ((const int *) table)[0]) - { - int lookup1 = ((const int *) table)[1 + index1]; - if (lookup1 >= 0) - { - unsigned int index2 = (uc >> header_2) & header_3; - int lookup2 = ((const short *) table)[lookup1 + index2]; - if (lookup2 >= 0) - { - unsigned int index3 = (uc >> 5) & header_4; - unsigned int lookup3 = ((const unsigned int *) table)[lookup2 + index3]; - - return (lookup3 >> (uc & 0x1f)) & 1; - } - } - } - return 0; -} diff --git a/jni/parted/libgnulib/lib/unictype/ctype_print.c b/jni/parted/libgnulib/lib/unictype/ctype_print.c deleted file mode 100755 index 5e73e42..0000000 --- a/jni/parted/libgnulib/lib/unictype/ctype_print.c +++ /dev/null @@ -1,32 +0,0 @@ -/* ISO C like properties of Unicode characters. - Copyright (C) 2002, 2006-2007, 2009-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "unictype.h" - -#include "bitmap.h" - -/* Define u_is_print table. */ -#include "ctype_print.h" - -bool -uc_is_print (ucs4_t uc) -{ - return bitmap_lookup (&u_is_print, uc); -} diff --git a/jni/parted/libgnulib/lib/unictype/ctype_print.h b/jni/parted/libgnulib/lib/unictype/ctype_print.h deleted file mode 100755 index b700782..0000000 --- a/jni/parted/libgnulib/lib/unictype/ctype_print.h +++ /dev/null @@ -1,1202 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* ISO C like properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 16.0.0. */ - -/* Copyright (C) 2000-2024 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 -static const -struct - { - int header[1]; - int level1[17]; - short level2[6 << 7]; - unsigned int level3[94 << 4]; - } -u_is_print = -{ - { 17 }, - { - 18 * sizeof (int) / sizeof (short) + 0, - 18 * sizeof (int) / sizeof (short) + 128, - 18 * sizeof (int) / sizeof (short) + 256, - 18 * sizeof (int) / sizeof (short) + 384, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 18 * sizeof (int) / sizeof (short) + 512, - 18 * sizeof (int) / sizeof (short) + 640, - 18 * sizeof (int) / sizeof (short) + 640 - }, - { - 18 + 768 * sizeof (short) / sizeof (int) + 0, - 18 + 768 * sizeof (short) / sizeof (int) + 16, - 18 + 768 * sizeof (short) / sizeof (int) + 32, - 18 + 768 * sizeof (short) / sizeof (int) + 48, - 18 + 768 * sizeof (short) / sizeof (int) + 64, - 18 + 768 * sizeof (short) / sizeof (int) + 80, - 18 + 768 * sizeof (short) / sizeof (int) + 96, - 18 + 768 * sizeof (short) / sizeof (int) + 112, - 18 + 768 * sizeof (short) / sizeof (int) + 128, - 18 + 768 * sizeof (short) / sizeof (int) + 144, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 176, - 18 + 768 * sizeof (short) / sizeof (int) + 192, - 18 + 768 * sizeof (short) / sizeof (int) + 208, - 18 + 768 * sizeof (short) / sizeof (int) + 224, - 18 + 768 * sizeof (short) / sizeof (int) + 240, - 18 + 768 * sizeof (short) / sizeof (int) + 256, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 272, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 288, - 18 + 768 * sizeof (short) / sizeof (int) + 304, - 18 + 768 * sizeof (short) / sizeof (int) + 320, - 18 + 768 * sizeof (short) / sizeof (int) + 336, - 18 + 768 * sizeof (short) / sizeof (int) + 352, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 368, - 18 + 768 * sizeof (short) / sizeof (int) + 384, - 18 + 768 * sizeof (short) / sizeof (int) + 400, - 18 + 768 * sizeof (short) / sizeof (int) + 416, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 432, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 448, - 18 + 768 * sizeof (short) / sizeof (int) + 464, - 18 + 768 * sizeof (short) / sizeof (int) + 480, - 18 + 768 * sizeof (short) / sizeof (int) + 496, - 18 + 768 * sizeof (short) / sizeof (int) + 512, - 18 + 768 * sizeof (short) / sizeof (int) + 528, - 18 + 768 * sizeof (short) / sizeof (int) + 544, - 18 + 768 * sizeof (short) / sizeof (int) + 560, - 18 + 768 * sizeof (short) / sizeof (int) + 576, - 18 + 768 * sizeof (short) / sizeof (int) + 592, - 18 + 768 * sizeof (short) / sizeof (int) + 608, - 18 + 768 * sizeof (short) / sizeof (int) + 624, - 18 + 768 * sizeof (short) / sizeof (int) + 640, - 18 + 768 * sizeof (short) / sizeof (int) + 656, - 18 + 768 * sizeof (short) / sizeof (int) + 672, - 18 + 768 * sizeof (short) / sizeof (int) + 688, - 18 + 768 * sizeof (short) / sizeof (int) + 704, - 18 + 768 * sizeof (short) / sizeof (int) + 720, - 18 + 768 * sizeof (short) / sizeof (int) + 736, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 752, - 18 + 768 * sizeof (short) / sizeof (int) + 768, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 784, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 800, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 816, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 832, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 848, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 864, - 18 + 768 * sizeof (short) / sizeof (int) + 880, - 18 + 768 * sizeof (short) / sizeof (int) + 896, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 912, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 928, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 944, - 18 + 768 * sizeof (short) / sizeof (int) + 960, - 18 + 768 * sizeof (short) / sizeof (int) + 976, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 992, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 1008, - 18 + 768 * sizeof (short) / sizeof (int) + 1024, - 18 + 768 * sizeof (short) / sizeof (int) + 1040, - 18 + 768 * sizeof (short) / sizeof (int) + 1056, - 18 + 768 * sizeof (short) / sizeof (int) + 1072, - 18 + 768 * sizeof (short) / sizeof (int) + 1088, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1104, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 1120, - 18 + 768 * sizeof (short) / sizeof (int) + 1136, - 18 + 768 * sizeof (short) / sizeof (int) + 1152, - 18 + 768 * sizeof (short) / sizeof (int) + 1168, - 18 + 768 * sizeof (short) / sizeof (int) + 1184, - 18 + 768 * sizeof (short) / sizeof (int) + 1200, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 1216, - 18 + 768 * sizeof (short) / sizeof (int) + 1232, - 18 + 768 * sizeof (short) / sizeof (int) + 1248, - 18 + 768 * sizeof (short) / sizeof (int) + 1264, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1280, - 18 + 768 * sizeof (short) / sizeof (int) + 1296, - 18 + 768 * sizeof (short) / sizeof (int) + 1312, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1328, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1344, - 18 + 768 * sizeof (short) / sizeof (int) + 1360, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1376, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1392, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1408, - -1, - -1, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1424, - -1, - -1, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1440, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1456, - -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, - 18 + 768 * sizeof (short) / sizeof (int) + 1472, - -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, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 160, - 18 + 768 * sizeof (short) / sizeof (int) + 1488 - }, - { - 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x7FFFFFFFU, - 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFCFFFFFFU, - 0xFFFFD7F0U, 0xFFFFFFFBU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFEFFFFU, 0xFE7FFFFFU, 0xFFFFFFFFU, - 0xFFFEE7FFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0x001F87FFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFBFFFU, 0xFFFFFFFFU, 0xFFFFE7FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x0003FFFFU, 0xFFFFFFFFU, 0xE7FFFFFFU, - 0xFFFFFFFFU, 0x7FFF3FFFU, 0x4FFFFFFFU, 0xFFFF07FFU, - 0xFF837FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFF99FEFU, 0xF3C5FDFFU, 0xB080799FU, 0x7FFFFFCFU, - 0xFFF987EEU, 0xD36DFDFFU, 0x5E023987U, 0x007FFFC0U, - 0xFFFBBFEEU, 0xF3EDFDFFU, 0x00013BBFU, 0xFE03FFCFU, - 0xFFF99FEEU, 0xF3EDFDFFU, 0xB0E0399FU, 0x00FFFFCFU, - 0xD63DC7ECU, 0xC3FFC718U, 0x00813DC7U, 0x07FFFFC0U, - 0xFFFDDFFFU, 0xF3FFFDFFU, 0x27603DDFU, 0xFF80FFCFU, - 0xFFFDDFFFU, 0xF3EFFDFFU, 0x60603DDFU, 0x000EFFCFU, - 0xFFFDDFFFU, 0xFFFFFFFFU, 0xFFF0FDDFU, 0xFFFFFFCFU, - 0xFC7FFFEEU, 0x2FFBFFFFU, 0xFF5F847FU, 0x001CFFC0U, - 0xFFFFFFFEU, 0x87FFFFFFU, 0x0FFFFFFFU, 0x00000000U, - 0xFFFFF7D6U, 0x3FFFFFAFU, 0xF3FF7F5FU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFEFFU, 0xFFFE1FFFU, - 0xFEFFFFFFU, 0xDFFFFFFFU, 0x07FFDFFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF20BFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3D7F3DFFU, 0xFFFFFFFFU, - 0xFFFF3DFFU, 0x7F3DFFFFU, 0xFF7FFF3DU, 0xFFFFFFFFU, - 0xFF3DFFFFU, 0xFFFFFFFFU, 0xE7FFFFFFU, 0x1FFFFFFFU, - 0x03FFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3F3FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x1FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x01FFFFFFU, - 0x803FFFFFU, 0x007FFFFFU, 0x000FFFFFU, 0x000DDFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU, 0x03FF03FFU, - 0x03FFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x01FFFFFFU, - 0xFFFFFFFFU, 0xFFFF07FFU, 0xFFFFFFFFU, 0x003FFFFFU, - 0x7FFFFFFFU, 0x0FFF0FFFU, 0xFFFFFFF1U, 0x001F3FFFU, - 0xFFFFFFFFU, 0xFFFF0FFFU, 0xC7FF03FFU, 0xFFFFFFFFU, - 0xCFFFFFFFU, 0xFFFFFFFFU, 0x7FFFFFFFU, 0x9FFFFFFFU, - 0x03FF03FFU, 0xFFFF3FFFU, 0x00007FFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFDFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xF00FFFFFU, - 0xFFFFFFFFU, 0xF8FFFFFFU, 0xFFFFE3FFU, 0xFFFFFFFFU, - 0xFFFF07FFU, 0xE7FFFFFFU, 0xFFFF00FFU, 0x07FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x3F3FFFFFU, 0xFFFFFFFFU, 0xAAFF3F3FU, 0x3FFFFFFFU, - 0xFFFFFFFFU, 0xFFDFFFFFU, 0xEFCFFFDFU, 0x7FDCFFFFU, - 0xFFFFFFFFU, 0xFFFFFCFFU, 0xFFFFFFFFU, 0xFFF3FFDFU, - 0x1FFF7FFFU, 0xFFFFFFFFU, 0xFFFF0001U, 0x0001FFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFF0FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x000003FFU, 0x000007FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFCFFFFFU, - 0xFFBFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFE0FFFFFU, - 0xFFFFFFFFU, 0xFFFF20BFU, 0xFFFFFFFFU, 0x800180FFU, - 0x007FFFFFU, 0x7F7F7F7FU, 0x7F7F7F7FU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU, 0x00000000U, - 0xFBFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0xFFFF0000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFEU, 0xFFFFFFFFU, - 0xFE7FFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFE0U, 0xFFFEFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFF7FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF803FU, - 0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFF1FFFU, 0xFFFFFFFFU, 0xFFFF007FU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x00000FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x1FEB3FFFU, 0xFFFC0000U, - 0xFFFFFFFFU, 0x03FF1FFFU, 0xFFFFFFFFU, 0x00FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFC03FU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x800FFFFFU, 0x1FFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xC3FFBFFFU, 0x7FFFFFFFU, - 0xFFFFFFFFU, 0x007FFFFFU, 0xF3FF3FFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xF8000007U, 0x007FFFFFU, - 0x007E7E7EU, 0xFFFF7F7FU, 0xFFFFFFFFU, 0xFFFF0FFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FF3FFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFF000FU, 0xFFFFF87FU, 0x0FFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF3FFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU, 0x00000000U, - 0xE0F8007FU, 0x5F7FFFFFU, 0xFFFFFFDBU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFF80007U, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFCFFFFU, 0xFFFFFFFFU, 0x000080FFU, 0xFFFF0000U, - 0x03FFFFFFU, 0xFFFFFFFFU, 0xFFF7FFFFU, 0xFFDF0F7FU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU, - 0xFFFFFFFEU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x7FFFFFFFU, 0x1CFCFCFCU, 0x3E007F7FU, - 0xFFFFEFFFU, 0xB7FFFF7FU, 0x3FFF3FFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x07FFFFFFU, - 0xFFFFFF87U, 0xFF8FFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x1FFF7FFFU, 0x00000001U, 0xFFFF0000U, 0x3FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x1FFFFFFFU, 0xFFFFFFFFU, 0x0001FFFFU, 0x0FFFFFFFU, - 0xFFFFFFFFU, 0xFFFFE00FU, 0xFFFF07FFU, 0x07FFFFFFU, - 0xBFFFFFFFU, 0xFFFFFFFFU, 0x003FFF0FU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x3FFFFFFFU, 0xFFFF03FFU, 0xFF0FFFFFU, 0x0FFFFFFFU, - 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, 0xF7FF800FU, - 0xFFB7F7FFU, 0x1BFBFFFBU, 0xFFFFFFFFU, 0x000FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x007FFFFFU, 0x003FFFFFU, 0x000000FFU, - 0xFFFFFFBFU, 0x07FDFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFD3FU, 0x91BFFFFFU, 0xFFBFFFFFU, 0xFFFFFFFFU, - 0x7FFFFFFFU, 0x0000FF80U, 0x00000000U, 0xF837FFFFU, - 0x8FFFFFFFU, 0x83FFFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xF0FFFFFFU, 0xFFFCFFFFU, 0xFFFFFFFFU, - 0xFEEFF06FU, 0x873FFFFFU, 0x01FF01FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x00000000U, 0xFFFFFFFFU, 0x007FF87FU, - 0xFFFFFFFFU, 0xFE3FFFFFU, 0xFF3FFFFFU, 0xFF07FFFFU, - 0x1E03FFFFU, 0x0000FE00U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000001FFU, 0x00000000U, - 0xFFFFFFFFU, 0x0007FFFFU, 0xFFFFFFFFU, 0xFC07FFFFU, - 0xFFFFFFFFU, 0x03FF00FFU, 0xFFFFFFFFU, 0xFFFFFE3FU, - 0x0000C03FU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x7FFFFFFFU, - 0xFFFFFFFFU, 0x00033BFFU, 0x0000001CU, 0xF0000000U, - 0xFFFFFFFFU, 0xFFFF00FFU, 0x03FFFFFFU, 0xFFFF0000U, - 0x000003FFU, 0xFFFF0000U, 0x00000FFFU, 0x007FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFC3FFFU, 0x803FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF2007U, 0x03FF01FFU, - 0xFFFFFFFFU, 0xFFDFFFFFU, 0xFFFF00FFU, 0x007FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x001FFFFEU, - 0xFFFBFFFFU, 0xFFFFFFFFU, 0x00000003U, 0x00000000U, - 0xBFFFBD7FU, 0xFFFF03FFU, 0xFFFFFFFFU, 0x03FF07FFU, - 0xFFF99FEFU, 0xFBEDFDFFU, 0xE081399FU, 0x001F1FCFU, - 0xFFFF4BFFU, 0xFFBFFFFFU, 0x01BFF7A5U, 0x00000006U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xEFFFFFFFU, 0x00000003U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FF00FFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFF3FFFFFU, 0x3FFFFFFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FF001FU, 0x00001FFFU, - 0xFFFFFFFFU, 0x03FFFFFFU, 0xFFFF03FFU, 0x0000000FU, - 0xE7FFFFFFU, 0xFFFF0FFFU, 0x0000007FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0x0FFFFFFFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x8007FFFFU, - 0xFF6FF27FU, 0xF9BFFFFFU, 0x03FF007FU, 0x00000000U, - 0x00000000U, 0xFFFFFCFFU, 0xFCFFFFFFU, 0x0000001FU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFF0007U, 0xFFFFFFFFU, 0x01FFFFFFU, - 0x000003FFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0x03FF0003U, - 0xFFFFFDFFU, 0xFF7FFFFFU, 0xFFFF003FU, 0xFFFF1FFFU, - 0xFFFCFFFFU, 0x007FFEFFU, 0x00000000U, 0x00000000U, - 0xFFFFFB7FU, 0xB47FFFFFU, 0x03FF00FFU, 0xFFFFFDBFU, - 0x01FB7FFFU, 0x000003FFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x01FFFFFFU, - 0xFFFDFFFFU, 0xC7FFFFFFU, 0x07FFFFFFU, 0x00000000U, - 0x00000000U, 0x00010000U, 0xFFFFFFFFU, 0x8003FFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x03FFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x001F7FFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFF0000U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0007FFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x07FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000007FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0x03FFFFFFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0x01FFFFFFU, 0x7FFFFFFFU, 0xFFFFC3FFU, - 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFF03FFU, 0x003F3FFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFBFF003FU, 0xE0FFFFFBU, - 0x0000FFFFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0x03FFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x07FFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF87FFU, 0xFFFFFFFFU, - 0xFFFF80FFU, 0x00000000U, 0x00000000U, 0x0003001FU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x80000000U, - 0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x00040007U, 0x00270000U, 0xFFFF00F0U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x1FFF07FFU, - 0xF3FF01FFU, 0x0000000FU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x000FFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFF3FFFU, 0xFFFF007FU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, - 0xFFFFFFFFU, 0xFFFFFE7FU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000007FFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000003FU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x000FFFFFU, 0x000FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x007FFFFFU, 0x01FFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFDFFFFFU, 0xFFFFFFFFU, - 0xDFFFFFFFU, 0xEBFFDE64U, 0xFFFFFFEFU, 0xFFFFFFFFU, - 0xDFDFE7BFU, 0x7BFFFFFFU, 0xFFFDFC5FU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFF3FU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFCFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xF8000FFFU, 0x0000FFFEU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x7FFFFFFFU, 0x000007E0U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xF9FFFF7FU, 0xFFFF07DBU, 0xFFFFFFFFU, 0x00003FFFU, - 0x00008000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0x3FFF1FFFU, 0x0000C3FFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFF0000U, 0x00007FFFU, 0xFFFFFFFFU, 0x83FFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFF0000U, 0x03FFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0xFFFF0000U, 0x87FFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x7FFF6F7FU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x007FFF9FU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xC3FF0FFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0xFFFE0000U, - 0xFFFFFFFFU, 0x001FFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFEU, 0x3FFFFFFFU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFEFU, 0x0AF7FE96U, 0xAA96EA84U, 0x5EF7F796U, - 0x0FFFFBFFU, 0x0FFFFBEEU, 0x00000000U, 0x00030000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFF0FFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x000FFFFFU, 0xFFFE7FFFU, 0xFFFEFFFEU, 0x003FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x00003FFFU, 0x00000000U, 0xFFFFFFC0U, - 0xFFFF0007U, 0x0FFFFFFFU, 0x000301FFU, 0x0000003FU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xF0FFFFFFU, 0x1FFF1FFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xF87FFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU, 0x00010FFFU, - 0xFFFF0FFFU, 0xFFFFFFFFU, 0x03FF00FFU, 0xFFFFFFFFU, - 0xFFFF00FFU, 0x0FFF3FFFU, 0x00000003U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x000FFFFFU, 0x1FFF3FFFU, - 0xFFFF83FFU, 0xFFFFFFFFU, 0x9FFFC07FU, 0x01FF03FFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFF7FFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x03FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x03FFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x3FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFF0003U, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF0001U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x3FFFFFFFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF07FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, 0x00000000U, - 0x00000002U, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x3FFFFFFFU - } -}; diff --git a/jni/parted/libgnulib/lib/version-etc-fsf.c b/jni/parted/libgnulib/lib/version-etc-fsf.c deleted file mode 100755 index 894b1c3..0000000 --- a/jni/parted/libgnulib/lib/version-etc-fsf.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Variable with FSF copyright information, for version-etc. - Copyright (C) 1999-2006, 2009-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Jim Meyering. */ - -#include - -/* Specification. */ -#include "version-etc.h" - -/* Default copyright goes to the FSF. */ - -const char version_etc_copyright[] = - /* Do *not* mark this string for translation. %s is a copyright - symbol suitable for this locale, and %d is the copyright - year. */ - "Copyright %s %d Free Software Foundation, Inc."; diff --git a/jni/parted/libgnulib/lib/version-etc.c b/jni/parted/libgnulib/lib/version-etc.c deleted file mode 100755 index 45d0c93..0000000 --- a/jni/parted/libgnulib/lib/version-etc.c +++ /dev/null @@ -1,262 +0,0 @@ -/* Print --version and bug-reporting information in a consistent format. - Copyright (C) 1999-2024 Free Software Foundation, Inc. - - This file 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 3 of the - License, or (at your option) any later version. - - This file 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 program. If not, see . */ - -/* Written by Jim Meyering. */ - -#include - -/* Specification. */ -#include "version-etc.h" - -#include -#include - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#include "gettext.h" -#define _(msgid) gettext (msgid) - -/* If you use AM_INIT_AUTOMAKE's no-define option, - PACKAGE is not defined. Use PACKAGE_TARNAME instead. */ -#if ! defined PACKAGE && defined PACKAGE_TARNAME -# define PACKAGE PACKAGE_TARNAME -#endif - -enum { COPYRIGHT_YEAR = 2024 }; - -/* The three functions below display the --version information the - standard way. - - If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of - the program. The formats are therefore: - - PACKAGE VERSION - - or - - COMMAND_NAME (PACKAGE) VERSION. - - The functions differ in the way they are passed author names. */ - -/* Display the --version information the standard way. - - Author names are given in the array AUTHORS. N_AUTHORS is the - number of elements in the array. */ -void -version_etc_arn (FILE *stream, - const char *command_name, const char *package, - const char *version, - const char * const * authors, size_t n_authors) -{ - if (command_name) - fprintf (stream, "%s (%s) %s\n", command_name, package, version); - else - fprintf (stream, "%s %s\n", package, version); - -#ifdef PACKAGE_PACKAGER -# ifdef PACKAGE_PACKAGER_VERSION - fprintf (stream, _("Packaged by %s (%s)\n"), PACKAGE_PACKAGER, - PACKAGE_PACKAGER_VERSION); -# else - fprintf (stream, _("Packaged by %s\n"), PACKAGE_PACKAGER); -# endif -#endif - - /* TRANSLATORS: Translate "(C)" to the copyright symbol - (C-in-a-circle), if this symbol is available in the user's - locale. Otherwise, do not translate "(C)"; leave it as-is. */ - fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); - - fputs ("\n", stream); - - /* TRANSLATORS: The %s placeholder is the web address of the GPL license. */ - fprintf (stream, _("\ -License GPLv3+: GNU GPL version 3 or later <%s>.\n\ -This is free software: you are free to change and redistribute it.\n\ -There is NO WARRANTY, to the extent permitted by law.\n\ -"), - "https://gnu.org/licenses/gpl.html"); - - fputs ("\n", stream); - - switch (n_authors) - { - case 0: - /* No authors are given. The caller should output authorship - info after calling this function. */ - break; - case 1: - /* TRANSLATORS: %s denotes an author name. */ - fprintf (stream, _("Written by %s.\n"), authors[0]); - break; - case 2: - /* TRANSLATORS: Each %s denotes an author name. */ - fprintf (stream, _("Written by %s and %s.\n"), authors[0], authors[1]); - break; - case 3: - /* TRANSLATORS: Each %s denotes an author name. */ - fprintf (stream, _("Written by %s, %s, and %s.\n"), - authors[0], authors[1], authors[2]); - break; - case 4: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), - authors[0], authors[1], authors[2], authors[3]); - break; - case 5: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), - authors[0], authors[1], authors[2], authors[3], authors[4]); - break; - case 6: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"), - authors[0], authors[1], authors[2], authors[3], authors[4], - authors[5]); - break; - case 7: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"), - authors[0], authors[1], authors[2], authors[3], authors[4], - authors[5], authors[6]); - break; - case 8: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("\ -Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"), - authors[0], authors[1], authors[2], authors[3], authors[4], - authors[5], authors[6], authors[7]); - break; - case 9: - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("\ -Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"), - authors[0], authors[1], authors[2], authors[3], authors[4], - authors[5], authors[6], authors[7], authors[8]); - break; - default: - /* 10 or more authors. Use an abbreviation, since the human reader - will probably not want to read the entire list anyway. */ - /* TRANSLATORS: Each %s denotes an author name. - You can use line breaks, estimating that each author name occupies - ca. 16 screen columns and that a screen line has ca. 80 columns. */ - fprintf (stream, _("\ -Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"), - authors[0], authors[1], authors[2], authors[3], authors[4], - authors[5], authors[6], authors[7], authors[8]); - break; - } -} - -/* Display the --version information the standard way. See the initial - comment to this module, for more information. - - Author names are given in the NULL-terminated array AUTHORS. */ -void -version_etc_ar (FILE *stream, - const char *command_name, const char *package, - const char *version, const char * const * authors) -{ - size_t n_authors; - - for (n_authors = 0; authors[n_authors]; n_authors++) - ; - version_etc_arn (stream, command_name, package, version, authors, n_authors); -} - -/* Display the --version information the standard way. See the initial - comment to this module, for more information. - - Author names are given in the NULL-terminated va_list AUTHORS. */ -void -version_etc_va (FILE *stream, - const char *command_name, const char *package, - const char *version, va_list authors) -{ - size_t n_authors; - const char *authtab[10]; - - for (n_authors = 0; - n_authors < 10 - && (authtab[n_authors] = va_arg (authors, const char *)) != NULL; - n_authors++) - ; - version_etc_arn (stream, command_name, package, version, - authtab, n_authors); -} - - -/* Display the --version information the standard way. - - If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of - the program. The formats are therefore: - - PACKAGE VERSION - - or - - COMMAND_NAME (PACKAGE) VERSION. - - The authors names are passed as separate arguments, with an additional - NULL argument at the end. */ -void -version_etc (FILE *stream, - const char *command_name, const char *package, - const char *version, /* const char *author1, ...*/ ...) -{ - va_list authors; - - va_start (authors, version); - version_etc_va (stream, command_name, package, version, authors); - va_end (authors); -} - -void -emit_bug_reporting_address (void) -{ - fputs ("\n", stdout); - /* TRANSLATORS: The placeholder indicates the bug-reporting address - for this package. Please add _another line_ saying - "Report translation bugs to <...>\n" with the address for translation - bugs (typically your translation team's web or email address). */ - printf (_("Report bugs to: %s\n"), PACKAGE_BUGREPORT); -#ifdef PACKAGE_PACKAGER_BUG_REPORTS - printf (_("Report %s bugs to: %s\n"), PACKAGE_PACKAGER, - PACKAGE_PACKAGER_BUG_REPORTS); -#endif -#ifdef PACKAGE_URL - printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); -#else - printf (_("%s home page: <%s>\n"), - PACKAGE_NAME, "https://www.gnu.org/software/" PACKAGE "/"); -#endif - printf (_("General help using GNU software: <%s>\n"), - "https://www.gnu.org/gethelp/"); -} diff --git a/jni/parted/libgnulib/lib/wctype.c b/jni/parted/libgnulib/lib/wctype.c deleted file mode 100755 index 914f684..0000000 --- a/jni/parted/libgnulib/lib/wctype.c +++ /dev/null @@ -1,25 +0,0 @@ -/* Get descriptor for a wide character property. - Copyright (C) 2011-2024 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include - -#include "wctype-impl.h" diff --git a/jni/parted/libgnulib/lib/xalloc-die.c b/jni/parted/libgnulib/lib/xalloc-die.c deleted file mode 100755 index c053c7a..0000000 --- a/jni/parted/libgnulib/lib/xalloc-die.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Report a memory allocation failure and exit. - - Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -#include - -#include "xalloc.h" - -#include - -#include -#include "exitfail.h" - -#include "gettext.h" -#define _(msgid) gettext (msgid) - -void -xalloc_die (void) -{ - error (exit_failure, 0, "%s", _("memory exhausted")); - - /* _Noreturn cannot be given to error, since it may return if - its first argument is 0. To help compilers understand the - xalloc_die does not return, call abort. Also, the abort is a - safety feature if exit_failure is 0 (which shouldn't happen). */ - abort (); -} diff --git a/jni/parted/libgnulib/lib/xmalloc.c b/jni/parted/libgnulib/lib/xmalloc.c deleted file mode 100755 index 5befdab..0000000 --- a/jni/parted/libgnulib/lib/xmalloc.c +++ /dev/null @@ -1,340 +0,0 @@ -/* xmalloc.c -- malloc with out of memory checking - - Copyright (C) 1990-2000, 2002-2006, 2008-2024 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include - -#define XALLOC_INLINE _GL_EXTERN_INLINE - -#include "xalloc.h" - -#include "ialloc.h" -#include "minmax.h" - -#include -#include -#include -#include - -static void * _GL_ATTRIBUTE_PURE -check_nonnull (void *p) -{ - if (!p) - xalloc_die (); - return p; -} - -/* Allocate S bytes of memory dynamically, with error checking. */ - -void * -xmalloc (size_t s) -{ - return check_nonnull (malloc (s)); -} - -void * -ximalloc (idx_t s) -{ - return check_nonnull (imalloc (s)); -} - -char * -xcharalloc (size_t n) -{ - return XNMALLOC (n, char); -} - -/* Change the size of an allocated block of memory P to S bytes, - with error checking. */ - -void * -xrealloc (void *p, size_t s) -{ - void *r = realloc (p, s); - if (!r && (!p || s)) - xalloc_die (); - return r; -} - -void * -xirealloc (void *p, idx_t s) -{ - return check_nonnull (irealloc (p, s)); -} - -/* Change the size of an allocated block of memory P to an array of N - objects each of S bytes, with error checking. */ - -void * -xreallocarray (void *p, size_t n, size_t s) -{ - void *r = reallocarray (p, n, s); - if (!r && (!p || (n && s))) - xalloc_die (); - return r; -} - -void * -xireallocarray (void *p, idx_t n, idx_t s) -{ - return check_nonnull (ireallocarray (p, n, s)); -} - -/* Allocate an array of N objects, each with S bytes of memory, - dynamically, with error checking. S must be nonzero. */ - -void * -xnmalloc (size_t n, size_t s) -{ - return xreallocarray (NULL, n, s); -} - -void * -xinmalloc (idx_t n, idx_t s) -{ - return xireallocarray (NULL, n, s); -} - -/* If P is null, allocate a block of at least *PS bytes; otherwise, - reallocate P so that it contains more than *PS bytes. *PS must be - nonzero unless P is null. Set *PS to the new block's size, and - return the pointer to the new block. *PS is never set to zero, and - the returned pointer is never null. */ - -void * -x2realloc (void *p, size_t *ps) -{ - return x2nrealloc (p, ps, 1); -} - -/* If P is null, allocate a block of at least *PN such objects; - otherwise, reallocate P so that it contains more than *PN objects - each of S bytes. S must be nonzero. Set *PN to the new number of - objects, and return the pointer to the new block. *PN is never set - to zero, and the returned pointer is never null. - - Repeated reallocations are guaranteed to make progress, either by - allocating an initial block with a nonzero size, or by allocating a - larger block. - - In the following implementation, nonzero sizes are increased by a - factor of approximately 1.5 so that repeated reallocations have - O(N) overall cost rather than O(N**2) cost, but the - specification for this function does not guarantee that rate. - - Here is an example of use: - - int *p = NULL; - size_t used = 0; - size_t allocated = 0; - - void - append_int (int value) - { - if (used == allocated) - p = x2nrealloc (p, &allocated, sizeof *p); - p[used++] = value; - } - - This causes x2nrealloc to allocate a block of some nonzero size the - first time it is called. - - To have finer-grained control over the initial size, set *PN to a - nonzero value before calling this function with P == NULL. For - example: - - int *p = NULL; - size_t used = 0; - size_t allocated = 0; - size_t allocated1 = 1000; - - void - append_int (int value) - { - if (used == allocated) - { - p = x2nrealloc (p, &allocated1, sizeof *p); - allocated = allocated1; - } - p[used++] = value; - } - - */ - -void * -x2nrealloc (void *p, size_t *pn, size_t s) -{ - size_t n = *pn; - - if (! p) - { - if (! n) - { - /* The approximate size to use for initial small allocation - requests, when the invoking code specifies an old size of - zero. This is the largest "small" request for the GNU C - library malloc. */ - enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; - - n = DEFAULT_MXFAST / s; - n += !n; - } - } - else - { - /* Set N = floor (1.5 * N) + 1 to make progress even if N == 0. */ - if (ckd_add (&n, n, (n >> 1) + 1)) - xalloc_die (); - } - - p = xreallocarray (p, n, s); - *pn = n; - return p; -} - -/* Grow PA, which points to an array of *PN items, and return the - location of the reallocated array, updating *PN to reflect its - new size. The new array will contain at least N_INCR_MIN more - items, but will not contain more than N_MAX items total. - S is the size of each item, in bytes. - - S and N_INCR_MIN must be positive. *PN must be - nonnegative. If N_MAX is -1, it is treated as if it were - infinity. - - If PA is null, then allocate a new array instead of reallocating - the old one. - - Thus, to grow an array A without saving its old contents, do - { free (A); A = xpalloc (NULL, &AITEMS, ...); }. */ - -void * -xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s) -{ - idx_t n0 = *pn; - - /* The approximate size to use for initial small allocation - requests. This is the largest "small" request for the GNU C - library malloc. */ - enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 }; - - /* If the array is tiny, grow it to about (but no greater than) - DEFAULT_MXFAST bytes. Otherwise, grow it by about 50%. - Adjust the growth according to three constraints: N_INCR_MIN, - N_MAX, and what the C language can represent safely. */ - - idx_t n; - if (ckd_add (&n, n0, n0 >> 1)) - n = IDX_MAX; - if (0 <= n_max && n_max < n) - n = n_max; - - /* NBYTES is of a type suitable for holding the count of bytes in an object. - This is typically idx_t, but it should be size_t on (theoretical?) - platforms where SIZE_MAX < IDX_MAX so xpalloc does not pass - values greater than SIZE_MAX to xrealloc. */ -#if IDX_MAX <= SIZE_MAX - idx_t nbytes; -#else - size_t nbytes; -#endif - idx_t adjusted_nbytes - = (ckd_mul (&nbytes, n, s) - ? MIN (IDX_MAX, SIZE_MAX) - : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0); - if (adjusted_nbytes) - { - n = adjusted_nbytes / s; - nbytes = adjusted_nbytes - adjusted_nbytes % s; - } - - if (! pa) - *pn = 0; - if (n - n0 < n_incr_min - && (ckd_add (&n, n0, n_incr_min) - || (0 <= n_max && n_max < n) - || ckd_mul (&nbytes, n, s))) - xalloc_die (); - pa = xrealloc (pa, nbytes); - *pn = n; - return pa; -} - -/* Allocate S bytes of zeroed memory dynamically, with error checking. - There's no need for xnzalloc (N, S), since it would be equivalent - to xcalloc (N, S). */ - -void * -xzalloc (size_t s) -{ - return xcalloc (s, 1); -} - -void * -xizalloc (idx_t s) -{ - return xicalloc (s, 1); -} - -/* Allocate zeroed memory for N elements of S bytes, with error - checking. S must be nonzero. */ - -void * -xcalloc (size_t n, size_t s) -{ - return check_nonnull (calloc (n, s)); -} - -void * -xicalloc (idx_t n, idx_t s) -{ - return check_nonnull (icalloc (n, s)); -} - -/* Clone an object P of size S, with error checking. There's no need - for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any - need for an arithmetic overflow check. */ - -void * -xmemdup (void const *p, size_t s) -{ - return memcpy (xmalloc (s), p, s); -} - -void * -ximemdup (void const *p, idx_t s) -{ - return memcpy (ximalloc (s), p, s); -} - -/* Clone an object P of size S, with error checking. Append - a terminating NUL byte. */ - -char * -ximemdup0 (void const *p, idx_t s) -{ - char *result = ximalloc (s + 1); - result[s] = 0; - return memcpy (result, p, s); -} - -/* Clone STRING. */ - -char * -xstrdup (char const *string) -{ - return xmemdup (string, strlen (string) + 1); -} diff --git a/jni/parted/libgnulib/lib/xstrtol.c b/jni/parted/libgnulib/lib/xstrtol.c deleted file mode 100755 index 4e7c0fc..0000000 --- a/jni/parted/libgnulib/lib/xstrtol.c +++ /dev/null @@ -1,236 +0,0 @@ -/* A more useful interface to strtol. - - Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2024 Free Software - Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#ifndef __strtol -# define __strtol strtol -# define __strtol_t long int -# define __xstrtol xstrtol -# define STRTOL_T_MINIMUM LONG_MIN -# define STRTOL_T_MAXIMUM LONG_MAX -#endif - -#include - -#include "xstrtol.h" - -#include -#include -#include -#include -#include -#include - -#if XSTRTOL_INCLUDE_INTTYPES_H -# include -#endif - -#include "intprops.h" - -static strtol_error -bkm_scale (__strtol_t *x, int scale_factor) -{ - __strtol_t scaled; - if (ckd_mul (&scaled, *x, scale_factor)) - { - *x = *x < 0 ? TYPE_MINIMUM (__strtol_t) : TYPE_MAXIMUM (__strtol_t); - return LONGINT_OVERFLOW; - } - - *x = scaled; - - return LONGINT_OK; -} - -static strtol_error -bkm_scale_by_power (__strtol_t *x, int base, int power) -{ - strtol_error err = LONGINT_OK; - while (power--) - err |= bkm_scale (x, base); - return err; -} - -strtol_error -__xstrtol (char const *nptr, char **endptr, int base, - __strtol_t *val, char const *valid_suffixes) -{ - char *t_ptr; - char **p = endptr ? endptr : &t_ptr; - - if (! TYPE_SIGNED (__strtol_t)) - { - char const *q = nptr; - unsigned char ch = *q; - while (isspace (ch)) - ch = *++q; - if (ch == '-') - { - *p = (char *) nptr; - return LONGINT_INVALID; - } - } - - errno = 0; - __strtol_t tmp = __strtol (nptr, p, base); - strtol_error err = LONGINT_OK; - - if (*p == nptr) - { - /* If there is no number but there is a valid suffix, assume the - number is 1. The string is invalid otherwise. */ - if (! (valid_suffixes && *nptr && strchr (valid_suffixes, *nptr))) - return LONGINT_INVALID; - tmp = 1; - } - else if (errno != 0) - { - if (errno != ERANGE) - return LONGINT_INVALID; - err = LONGINT_OVERFLOW; - } - - /* Let valid_suffixes == NULL mean "allow any suffix". */ - /* FIXME: update all callers except the ones that allow suffixes - after the number, changing last parameter NULL to "". */ - if (!valid_suffixes) - { - *val = tmp; - return err; - } - - if (**p != '\0') - { - int xbase = 1024; - int suffixes = 1; - strtol_error overflow; - - if (!strchr (valid_suffixes, **p)) - { - *val = tmp; - return err | LONGINT_INVALID_SUFFIX_CHAR; - } - - switch (**p) - { - case 'E': case 'G': case 'g': case 'k': case 'K': case 'M': case 'm': - case 'P': case 'Q': case 'R': case 'T': case 't': case 'Y': case 'Z': - - /* The "valid suffix" '0' is a special flag meaning that - an optional second suffix is allowed, which can change - the base. A suffix "B" (e.g. "100MB") stands for a power - of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for - a power of 1024. If no suffix (e.g. "100M"), assume - power-of-1024. */ - - if (strchr (valid_suffixes, '0')) - switch (p[0][1]) - { - case 'i': - if (p[0][2] == 'B') - suffixes += 2; - break; - - case 'B': - case 'D': /* 'D' is obsolescent */ - xbase = 1000; - suffixes++; - break; - } - } - - switch (**p) - { - case 'b': - overflow = bkm_scale (&tmp, 512); - break; - - case 'B': - /* This obsolescent first suffix is distinct from the 'B' - second suffix above. E.g., 'tar -L 1000B' means change - the tape after writing 1000 KiB of data. */ - overflow = bkm_scale (&tmp, 1024); - break; - - case 'c': - overflow = LONGINT_OK; - break; - - case 'E': /* exa or exbi */ - overflow = bkm_scale_by_power (&tmp, xbase, 6); - break; - - case 'G': /* giga or gibi */ - case 'g': /* 'g' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, xbase, 3); - break; - - case 'k': /* kilo */ - case 'K': /* kibi */ - overflow = bkm_scale_by_power (&tmp, xbase, 1); - break; - - case 'M': /* mega or mebi */ - case 'm': /* 'm' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, xbase, 2); - break; - - case 'P': /* peta or pebi */ - overflow = bkm_scale_by_power (&tmp, xbase, 5); - break; - - case 'Q': /* quetta or 2**100 */ - overflow = bkm_scale_by_power (&tmp, xbase, 10); - break; - - case 'R': /* ronna or 2**90 */ - overflow = bkm_scale_by_power (&tmp, xbase, 9); - break; - - case 'T': /* tera or tebi */ - case 't': /* 't' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, xbase, 4); - break; - - case 'w': - overflow = bkm_scale (&tmp, 2); - break; - - case 'Y': /* yotta or 2**80 */ - overflow = bkm_scale_by_power (&tmp, xbase, 8); - break; - - case 'Z': /* zetta or 2**70 */ - overflow = bkm_scale_by_power (&tmp, xbase, 7); - break; - - default: - *val = tmp; - return err | LONGINT_INVALID_SUFFIX_CHAR; - } - - err |= overflow; - *p += suffixes; - if (**p) - err |= LONGINT_INVALID_SUFFIX_CHAR; - } - - *val = tmp; - return err; -} diff --git a/jni/parted/libgnulib/lib/xstrtoll.c b/jni/parted/libgnulib/lib/xstrtoll.c deleted file mode 100755 index aff6064..0000000 --- a/jni/parted/libgnulib/lib/xstrtoll.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Convert string to 'long long', with error checking. - - Copyright (C) 2011-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#define __strtol strtoll -#define __strtol_t long long int -#define __xstrtol xstrtoll -#define STRTOL_T_MINIMUM LLONG_MIN -#define STRTOL_T_MAXIMUM LLONG_MAX -#include "xstrtol.c" diff --git a/jni/parted/libgnulib/lib/xstrtoul.c b/jni/parted/libgnulib/lib/xstrtoul.c deleted file mode 100755 index 6162af4..0000000 --- a/jni/parted/libgnulib/lib/xstrtoul.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Convert string to 'unsigned long', with error checking. - - Copyright (C) 1994-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#define __strtol strtoul -#define __strtol_t unsigned long int -#define __xstrtol xstrtoul -#define STRTOL_T_MINIMUM 0 -#define STRTOL_T_MAXIMUM ULONG_MAX -#include "xstrtol.c" diff --git a/jni/parted/libgnulib/lib/xstrtoull.c b/jni/parted/libgnulib/lib/xstrtoull.c deleted file mode 100755 index c82d322..0000000 --- a/jni/parted/libgnulib/lib/xstrtoull.c +++ /dev/null @@ -1,23 +0,0 @@ -/* Convert string to 'unsigned long long', with error checking. - - Copyright (C) 2010-2024 Free Software Foundation, Inc. - - This file 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 3 of the License, - or (at your option) any later version. - - This file 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, see . */ - -#define __strtol strtoull -#define __strtol_t unsigned long long int -#define __xstrtol xstrtoull -#define STRTOL_T_MINIMUM 0 -#define STRTOL_T_MAXIMUM ULLONG_MAX -#include "xstrtol.c" diff --git a/jni/parted/libiconv/Android.mk b/jni/parted/libiconv/Android.mk deleted file mode 100755 index edf72c7..0000000 --- a/jni/parted/libiconv/Android.mk +++ /dev/null @@ -1,44 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -######## -# 3.0.2 -######## - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libiconv -LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/lib/iconv.c \ - $(LOCAL_PATH)/lib/relocatable.c -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../../../../include/libiconv \ - $(LOCAL_PATH)/lib \ - $(LOCAL_PATH)/srclib -LOCAL_CFLAGS := \ - -Wall \ - -Wextra \ - -Wno-sign-compare \ - -Wno-unused-const-variable \ - -Wno-unused-parameter \ - -Wno-unused-function \ - -Wno-unused-but-set-variable \ - -Wno-missing-field-initializers \ - -fPIC - -include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/jni/parted/libiconv/Makefile b/jni/parted/libiconv/Makefile deleted file mode 100755 index 40e1048..0000000 --- a/jni/parted/libiconv/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -##### -# sub-make for building libiconv and libicrt (built-in libs) -##### - -# Include required files -include ../../../build/config/env.mk -ifeq ($(INC_OLDENV),true) -include ../../../build/config/oldenv.mk -endif - -E := @ echo -INCLUDE_DIRS := \ - $(CURDIR)/../../../include/libiconv \ - $(CURDIR)/lib \ - $(CURDIR)/srclib -CFLAGS := \ - -Wall \ - -Wextra \ - -Wno-sign-compare \ - -Wno-unused-const-variable \ - -Wno-unused-parameter \ - -Wno-unused-function \ - -Wno-unused-but-set-variable \ - -Wno-missing-field-initializers \ - -fPIC \ - $(foreach dir,$(INCLUDE_DIRS),$(shell echo "-I$(dir)")) -AR_FLAGS := rcs -OUT := $(realpath ../../../out/parted) -LIB := $(CURDIR)/lib -SRC := $(CURDIR)/src -SRCLIB := $(CURDIR)/srclib -LIBICRT := $(CURDIR)/icrt - -LIBICRT_SRCS := \ - $(LIBICRT)/allocator.c \ - $(LIBICRT)/areadlink.c \ - $(LIBICRT)/binary-io.c \ - $(LIBICRT)/careadlinkat.c \ - $(LIBICRT)/fd-hook.c \ - $(LIBICRT)/getprogname.c \ - $(LIBICRT)/unistd.c \ - $(LIBICRT)/xreadlink.c - -LIBICRT_OBJS := $(LIBICRT_SRCS:.c=.o) - -LIBICONV_SRCS := \ - $(LIB)/iconv.c \ - $(LIB)/relocatable.c - -LIBICONV_OBJS := $(LIBICONV_SRCS:.c=.o) - -PROGRESS_LIST := \ - outctrl \ - $(LIBICRT_OBJS) \ - libicrt_ar \ - print_iconv \ - $(LIBICONV_OBJS) \ - libiconv_ar - -.PHONY: all -all: $(PROGRESS_LIST) - -.PHONY: clean -clean: - @ rm -rf $(LIBICONV_OBJS) $(LIBICRT_OBJS) $(OUT)/libicrt.a $(OUT)/libiconv.a - -outctrl: - @ if [ ! -d $(OUT) ]; then mkdir -p $(OUT); fi - -$(LIBICRT)/%.o: $(LIBICRT)/%.c - $(E) " CC libiconv/icrt/`basename $@`" - @ $(CC) -c $(CFLAGS) -o $@ $^ || exit 1 - -$(LIB)/%.o: $(LIB)/%.c - $(E) " CC libiconv/lib/`basename $@`" - @ $(CC) -c $(CFLAGS) -o $@ $^ || exit 1 - -$(SRC)/%.o: $(SRC)/%.c - $(E) " CC libiconv/src/`basename $@`" - @ $(CC) -c $(CFLAGS) -o $@ $^ || exit 1 - -libicrt_ar: $(LIBICRT_OBJS) - $(E) " AR out/parted/libicrt.a" - @ $(AR) $(AR_FLAGS) $(OUT)/libicrt.a $(LIBICRT_OBJS) - -libiconv_ar: $(LIBICONV_OBJS) - $(E) " AR out/parted/libiconv.a" - @ $(AR) $(AR_FLAGS) $(OUT)/libiconv.a $(LIBICONV_OBJS) - -print_iconv: - $(E) " ----------- libiconv ----------- " diff --git a/jni/parted/libiconv/icrt/Android.mk b/jni/parted/libiconv/icrt/Android.mk deleted file mode 100755 index f6252f8..0000000 --- a/jni/parted/libiconv/icrt/Android.mk +++ /dev/null @@ -1,49 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -######## -# 3.0.2 -######## - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libicrt -LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/allocator.c \ - $(LOCAL_PATH)/areadlink.c \ - $(LOCAL_PATH)/binary-io.c \ - $(LOCAL_PATH)/careadlinkat.c \ - $(LOCAL_PATH)/fd-hook.c \ - $(LOCAL_PATH)/getprogname.c \ - $(LOCAL_PATH)/unistd.c \ - $(LOCAL_PATH)/xreadlink.c -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../lib \ - $(LOCAL_PATH)/../srclib -LOCAL_CFLAGS := \ - -Wall \ - -Wextra \ - -Wno-sign-compare \ - -Wno-unused-const-variable \ - -Wno-unused-parameter \ - -Wno-unused-function \ - -Wno-unused-but-set-variable \ - -Wno-missing-field-initializers \ - -fPIC - -include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/jni/parted/libiconv/icrt/allocator.c b/jni/parted/libiconv/icrt/allocator.c deleted file mode 100755 index 42c8918..0000000 --- a/jni/parted/libiconv/icrt/allocator.c +++ /dev/null @@ -1,22 +0,0 @@ -/* Memory allocators such as malloc+free. - - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#define _GL_USE_STDLIB_ALLOC 1 -#include -#include "allocator.h" -#include -struct allocator const stdlib_allocator = { malloc, realloc, free, NULL }; diff --git a/jni/parted/libiconv/icrt/areadlink.c b/jni/parted/libiconv/icrt/areadlink.c deleted file mode 100755 index 0bff4a9..0000000 --- a/jni/parted/libiconv/icrt/areadlink.c +++ /dev/null @@ -1,56 +0,0 @@ -/* areadlink.c -- readlink wrapper to return the link name in malloc'd storage - Unlike xreadlink and xreadlink_with_size, don't ever call exit. - - Copyright (C) 2001, 2003-2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Jim Meyering - and Bruno Haible . */ - -#include - -/* Specification. */ -#include "areadlink.h" - -#include "careadlinkat.h" - -#include -#include - -/* Get the symbolic link value of FILENAME and put it into BUFFER, with - size BUFFER_SIZE. This function acts like readlink but has - readlinkat's signature. */ -static ssize_t -careadlinkatcwd (int fd, char const *filename, char *buffer, - size_t buffer_size) -{ - /* FD must be AT_FDCWD here, otherwise the caller is using this - function in contexts it was not meant for. */ - if (fd != AT_FDCWD) - abort (); - return readlink (filename, buffer, buffer_size); -} - -/* Call readlink to get the symbolic link value of FILENAME. - Return a pointer to that NUL-terminated string in malloc'd storage. - If readlink fails, return NULL and set errno. - If allocation fails, or if the link value is longer than SIZE_MAX :-), - return NULL and set errno to ENOMEM. */ - -char * -areadlink (char const *filename) -{ - return careadlinkat (AT_FDCWD, filename, NULL, 0, NULL, careadlinkatcwd); -} diff --git a/jni/parted/libiconv/icrt/binary-io.c b/jni/parted/libiconv/icrt/binary-io.c deleted file mode 100755 index ea407fd..0000000 --- a/jni/parted/libiconv/icrt/binary-io.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Binary mode I/O. - Copyright 2017-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define BINARY_IO_INLINE _GL_EXTERN_INLINE -#include "binary-io.h" - -#if defined __DJGPP__ || defined __EMX__ -# include - -int -set_binary_mode (int fd, int mode) -{ - if (isatty (fd)) - /* If FD refers to a console (not a pipe, not a regular file), - O_TEXT is the only reasonable mode, both on input and on output. - Silently ignore the request. If we were to return -1 here, - all programs that use xset_binary_mode would fail when run - with console input or console output. */ - return O_TEXT; - else - return __gl_setmode (fd, mode); -} - -#endif diff --git a/jni/parted/libiconv/icrt/careadlinkat.c b/jni/parted/libiconv/icrt/careadlinkat.c deleted file mode 100755 index 6ddc35f..0000000 --- a/jni/parted/libiconv/icrt/careadlinkat.c +++ /dev/null @@ -1,184 +0,0 @@ -/* Read symbolic links into a buffer without size limitation, relative to fd. - - Copyright (C) 2001, 2003-2004, 2007, 2009-2022 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ - -#include - -#include "careadlinkat.h" - -#include "idx.h" -#include "minmax.h" - -#include -#include -#include -#include - -/* Define this independently so that stdint.h is not a prerequisite. */ -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -#ifndef SSIZE_MAX -# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) -#endif - -#include "allocator.h" - -enum { STACK_BUF_SIZE = 1024 }; - -/* Act like careadlinkat (see below), with an additional argument - STACK_BUF that can be used as temporary storage. - - If GCC_LINT is defined, do not inline this function with GCC 10.1 - and later, to avoid creating a pointer to the stack that GCC - -Wreturn-local-addr incorrectly complains about. See: - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93644 - Although the noinline attribute can hurt performance a bit, no better way - to pacify GCC is known; even an explicit #pragma does not pacify GCC. - When the GCC bug is fixed this workaround should be limited to the - broken GCC versions. */ -#if _GL_GNUC_PREREQ (10, 1) -# if defined GCC_LINT || defined lint -__attribute__ ((__noinline__)) -# elif __OPTIMIZE__ && !__NO_INLINE__ -# define GCC_BOGUS_WRETURN_LOCAL_ADDR -# endif -#endif -static char * -readlink_stk (int fd, char const *filename, - char *buffer, size_t buffer_size, - struct allocator const *alloc, - ssize_t (*preadlinkat) (int, char const *, char *, size_t), - char stack_buf[STACK_BUF_SIZE]) -{ - if (! alloc) - alloc = &stdlib_allocator; - - if (!buffer) - { - buffer = stack_buf; - buffer_size = STACK_BUF_SIZE; - } - - char *buf = buffer; - idx_t buf_size_max = MIN (IDX_MAX, MIN (SSIZE_MAX, SIZE_MAX)); - idx_t buf_size = MIN (buffer_size, buf_size_max); - - while (buf) - { - /* Attempt to read the link into the current buffer. */ - idx_t link_length = preadlinkat (fd, filename, buf, buf_size); - if (link_length < 0) - { - if (buf != buffer) - { - int readlinkat_errno = errno; - alloc->free (buf); - errno = readlinkat_errno; - } - return NULL; - } - - idx_t link_size = link_length; - - if (link_size < buf_size) - { - buf[link_size++] = '\0'; - - if (buf == stack_buf) - { - char *b = alloc->allocate (link_size); - buf_size = link_size; - if (! b) - break; - return memcpy (b, buf, link_size); - } - - if (link_size < buf_size && buf != buffer && alloc->reallocate) - { - /* Shrink BUF before returning it. */ - char *b = alloc->reallocate (buf, link_size); - if (b) - return b; - } - - return buf; - } - - if (buf != buffer) - alloc->free (buf); - - if (buf_size_max / 2 <= buf_size) - { - errno = ENAMETOOLONG; - return NULL; - } - - buf_size = 2 * buf_size + 1; - buf = alloc->allocate (buf_size); - } - - if (alloc->die) - alloc->die (buf_size); - errno = ENOMEM; - return NULL; -} - - -/* Assuming the current directory is FD, get the symbolic link value - of FILENAME as a null-terminated string and put it into a buffer. - If FD is AT_FDCWD, FILENAME is interpreted relative to the current - working directory, as in openat. - - If the link is small enough to fit into BUFFER put it there. - BUFFER's size is BUFFER_SIZE, and BUFFER can be null - if BUFFER_SIZE is zero. - - If the link is not small, put it into a dynamically allocated - buffer managed by ALLOC. It is the caller's responsibility to free - the returned value if it is nonnull and is not BUFFER. A null - ALLOC stands for the standard allocator. - - The PREADLINKAT function specifies how to read links. It operates - like POSIX readlinkat() - - but can assume that its first argument is the same as FD. - - If successful, return the buffer address; otherwise return NULL and - set errno. */ - -char * -careadlinkat (int fd, char const *filename, - char *buffer, size_t buffer_size, - struct allocator const *alloc, - ssize_t (*preadlinkat) (int, char const *, char *, size_t)) -{ - /* Allocate the initial buffer on the stack. This way, in the - common case of a symlink of small size, we get away with a - single small malloc instead of a big malloc followed by a - shrinking realloc. */ - #ifdef GCC_BOGUS_WRETURN_LOCAL_ADDR - #warning "GCC might issue a bogus -Wreturn-local-addr warning here." - #warning "See ." - #endif - char stack_buf[STACK_BUF_SIZE]; - return readlink_stk (fd, filename, buffer, buffer_size, alloc, - preadlinkat, stack_buf); -} diff --git a/jni/parted/libiconv/icrt/fd-hook.c b/jni/parted/libiconv/icrt/fd-hook.c deleted file mode 100755 index 64a7a80..0000000 --- a/jni/parted/libiconv/icrt/fd-hook.c +++ /dev/null @@ -1,116 +0,0 @@ -/* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2009. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "fd-hook.h" - -#include - -/* Currently, this entire code is only needed for the handling of sockets - on native Windows platforms. */ -#if WINDOWS_SOCKETS - -/* The first and last link in the doubly linked list. - Initially the list is empty. */ -static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; - -int -execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, - int fd) -{ - if (remaining_list == &anchor) - /* End of list reached. */ - return primary (fd); - else - return remaining_list->private_close_fn (remaining_list->private_next, - primary, fd); -} - -int -execute_all_close_hooks (gl_close_fn primary, int fd) -{ - return execute_close_hooks (anchor.private_next, primary, fd); -} - -int -execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, - int fd, int request, void *arg) -{ - if (remaining_list == &anchor) - /* End of list reached. */ - return primary (fd, request, arg); - else - return remaining_list->private_ioctl_fn (remaining_list->private_next, - primary, fd, request, arg); -} - -int -execute_all_ioctl_hooks (gl_ioctl_fn primary, - int fd, int request, void *arg) -{ - return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); -} - -void -register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) -{ - if (close_hook == NULL) - close_hook = execute_close_hooks; - if (ioctl_hook == NULL) - ioctl_hook = execute_ioctl_hooks; - - if (link->private_next == NULL && link->private_prev == NULL) - { - /* Add the link to the doubly linked list. */ - link->private_next = anchor.private_next; - link->private_prev = &anchor; - link->private_close_fn = close_hook; - link->private_ioctl_fn = ioctl_hook; - anchor.private_next->private_prev = link; - anchor.private_next = link; - } - else - { - /* The link is already in use. */ - if (link->private_close_fn != close_hook - || link->private_ioctl_fn != ioctl_hook) - abort (); - } -} - -void -unregister_fd_hook (struct fd_hook *link) -{ - struct fd_hook *next = link->private_next; - struct fd_hook *prev = link->private_prev; - - if (next != NULL && prev != NULL) - { - /* The link is in use. Remove it from the doubly linked list. */ - prev->private_next = next; - next->private_prev = prev; - /* Clear the link, to mark it unused. */ - link->private_next = NULL; - link->private_prev = NULL; - link->private_close_fn = NULL; - link->private_ioctl_fn = NULL; - } -} - -#endif diff --git a/jni/parted/libiconv/icrt/getprogname.c b/jni/parted/libiconv/icrt/getprogname.c deleted file mode 100755 index 62a4800..0000000 --- a/jni/parted/libiconv/icrt/getprogname.c +++ /dev/null @@ -1,302 +0,0 @@ -/* Program name management. - Copyright (C) 2016-2022 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#include - -/* Specification. */ -#include "getprogname.h" - -#include /* get program_invocation_name declaration */ -#include /* get __argv declaration */ - -#ifdef _AIX -# include -# include -# include -#endif - -#ifdef __MVS__ -# ifndef _OPEN_SYS -# define _OPEN_SYS -# endif -# include -# include -#endif - -#ifdef __hpux -# include -# include -# include -# include -#endif - -#if defined __sgi || defined __osf__ -# include -# include -# include -# include -# include -#endif - -#if defined __SCO_VERSION__ || defined __sysv5__ -# include -# include -# include -#endif - -#include "basename-lgpl.h" - -#ifndef HAVE_GETPROGNAME /* not Mac OS X, FreeBSD, NetBSD, OpenBSD >= 5.4, Cygwin */ -char const * -getprogname (void) -{ -# if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* glibc, BeOS */ - /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ - return program_invocation_short_name; -# elif HAVE_DECL_PROGRAM_INVOCATION_NAME /* glibc, BeOS */ - /* https://www.gnu.org/software/libc/manual/html_node/Error-Messages.html */ - return last_component (program_invocation_name); -# elif HAVE_GETEXECNAME /* Solaris */ - /* https://docs.oracle.com/cd/E19253-01/816-5168/6mbb3hrb1/index.html */ - const char *p = getexecname (); - if (!p) - p = "?"; - return last_component (p); -# elif HAVE_DECL___ARGV /* mingw, MSVC */ - /* https://docs.microsoft.com/en-us/cpp/c-runtime-library/argc-argv-wargv */ - const char *p = __argv && __argv[0] ? __argv[0] : "?"; - return last_component (p); -# elif HAVE_VAR___PROGNAME /* OpenBSD, Android, QNX */ - /* https://man.openbsd.org/style.9 */ - /* http://www.qnx.de/developers/docs/6.5.0/index.jsp?topic=%2Fcom.qnx.doc.neutrino_lib_ref%2Fp%2F__progname.html */ - /* Be careful to declare this only when we absolutely need it - (OpenBSD 5.1), rather than when it's available. Otherwise, - its mere declaration makes program_invocation_short_name - malfunction (have zero length) with Fedora 25's glibc. */ - extern char *__progname; - const char *p = __progname; -# if defined __ANDROID__ - return last_component (p); -# else - return p && p[0] ? p : "?"; -# endif -# elif _AIX /* AIX */ - /* Idea by Bastien ROUCARIÈS, - https://lists.gnu.org/r/bug-gnulib/2010-12/msg00095.html - Reference: https://www.ibm.com/support/knowledgecenter/en/ssw_aix_61/com.ibm.aix.basetrf1/getprocs.htm - */ - static char *p; - static int first = 1; - if (first) - { - first = 0; - pid_t pid = getpid (); - struct procentry64 procs; - p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1) - ? strdup (procs.pi_comm) - : NULL); - if (!p) - p = "?"; - } - return p; -# elif defined __hpux - static char *p; - static int first = 1; - if (first) - { - first = 0; - pid_t pid = getpid (); - struct pst_status status; - if (pstat_getproc (&status, sizeof status, 0, pid) > 0) - { - char *ucomm = status.pst_ucomm; - char *cmd = status.pst_cmd; - if (strlen (ucomm) < PST_UCOMMLEN - 1) - p = ucomm; - else - { - /* ucomm is truncated to length PST_UCOMMLEN - 1. - Look at cmd instead. */ - char *space = strchr (cmd, ' '); - if (space != NULL) - *space = '\0'; - p = strrchr (cmd, '/'); - if (p != NULL) - p++; - else - p = cmd; - if (strlen (p) > PST_UCOMMLEN - 1 - && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) - /* p is less truncated than ucomm. */ - ; - else - p = ucomm; - } - p = strdup (p); - } - else - { -# if !defined __LP64__ - /* Support for 32-bit programs running in 64-bit HP-UX. - The documented way to do this is to use the same source code - as above, but in a compilation unit where '#define _PSTAT64 1' - is in effect. I prefer a single compilation unit; the struct - size and the offsets are not going to change. */ - char status64[1216]; - if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0) - { - char *ucomm = status64 + 288; - char *cmd = status64 + 168; - if (strlen (ucomm) < PST_UCOMMLEN - 1) - p = ucomm; - else - { - /* ucomm is truncated to length PST_UCOMMLEN - 1. - Look at cmd instead. */ - char *space = strchr (cmd, ' '); - if (space != NULL) - *space = '\0'; - p = strrchr (cmd, '/'); - if (p != NULL) - p++; - else - p = cmd; - if (strlen (p) > PST_UCOMMLEN - 1 - && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) - /* p is less truncated than ucomm. */ - ; - else - p = ucomm; - } - p = strdup (p); - } - else -# endif - p = NULL; - } - if (!p) - p = "?"; - } - return p; -# elif __MVS__ /* z/OS */ - /* https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/rtwgetp.htm */ - static char *p = "?"; - static int first = 1; - if (first) - { - pid_t pid = getpid (); - int token; - W_PSPROC buf; - first = 0; - memset (&buf, 0, sizeof(buf)); - buf.ps_cmdptr = (char *) malloc (buf.ps_cmdlen = PS_CMDBLEN_LONG); - buf.ps_conttyptr = (char *) malloc (buf.ps_conttylen = PS_CONTTYBLEN); - buf.ps_pathptr = (char *) malloc (buf.ps_pathlen = PS_PATHBLEN); - if (buf.ps_cmdptr && buf.ps_conttyptr && buf.ps_pathptr) - { - for (token = 0; token >= 0; - token = w_getpsent (token, &buf, sizeof(buf))) - { - if (token > 0 && buf.ps_pid == pid) - { - char *s = strdup (last_component (buf.ps_pathptr)); - if (s) - p = s; - break; - } - } - } - free (buf.ps_cmdptr); - free (buf.ps_conttyptr); - free (buf.ps_pathptr); - } - return p; -# elif defined __sgi || defined __osf__ /* IRIX or Tru64 */ - char filename[50]; - int fd; - - # if defined __sgi - sprintf (filename, "/proc/pinfo/%d", (int) getpid ()); - # else - sprintf (filename, "/proc/%d", (int) getpid ()); - # endif - fd = open (filename, O_RDONLY | O_CLOEXEC); - if (0 <= fd) - { - prpsinfo_t buf; - int ioctl_ok = 0 <= ioctl (fd, PIOCPSINFO, &buf); - close (fd); - if (ioctl_ok) - { - char *name = buf.pr_fname; - size_t namesize = sizeof buf.pr_fname; - /* It may not be NUL-terminated. */ - char *namenul = memchr (name, '\0', namesize); - size_t namelen = namenul ? namenul - name : namesize; - char *namecopy = malloc (namelen + 1); - if (namecopy) - { - namecopy[namelen] = '\0'; - return memcpy (namecopy, name, namelen); - } - } - } - return NULL; -# elif defined __SCO_VERSION__ || defined __sysv5__ /* SCO OpenServer6/UnixWare */ - char buf[80]; - int fd; - sprintf (buf, "/proc/%d/cmdline", getpid()); - fd = open (buf, O_RDONLY); - if (0 <= fd) - { - size_t n = read (fd, buf, 79); - if (n > 0) - { - buf[n] = '\0'; /* Guarantee null-termination */ - char *progname; - progname = strrchr (buf, '/'); - if (progname) - { - progname = progname + 1; /* Skip the '/' */ - } - else - { - progname = buf; - } - char *ret; - ret = malloc (strlen (progname) + 1); - if (ret) - { - strcpy (ret, progname); - return ret; - } - } - close (fd); - } - return "?"; -# else -# error "getprogname module not ported to this OS" -# endif -} - -#endif - -/* - * Hey Emacs! - * Local Variables: - * coding: utf-8 - * End: - */ diff --git a/jni/parted/libiconv/icrt/unistd.c b/jni/parted/libiconv/icrt/unistd.c deleted file mode 100755 index 95978e6..0000000 --- a/jni/parted/libiconv/icrt/unistd.c +++ /dev/null @@ -1,22 +0,0 @@ -/* Inline functions for . - - Copyright (C) 2012-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define _GL_UNISTD_INLINE _GL_EXTERN_INLINE -#include "unistd.h" -typedef int dummy; diff --git a/jni/parted/libiconv/icrt/xreadlink.c b/jni/parted/libiconv/icrt/xreadlink.c deleted file mode 100755 index b496a52..0000000 --- a/jni/parted/libiconv/icrt/xreadlink.c +++ /dev/null @@ -1,44 +0,0 @@ -/* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage - - Copyright (C) 2001, 2003-2007, 2009-2022 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering - and Bruno Haible . */ - -#include - -/* Specification. */ -#include "xreadlink.h" - -#include - -#include "areadlink.h" -#include "xalloc.h" - -/* Call readlink to get the symbolic link value of FILENAME. - Return a pointer to that NUL-terminated string in malloc'd storage. - If readlink fails, return NULL and set errno. - If realloc fails, or if the link value is longer than SIZE_MAX :-), - give a diagnostic and exit. */ - -char * -xreadlink (char const *filename) -{ - char *result = areadlink (filename); - if (result == NULL && errno == ENOMEM) - xalloc_die (); - return result; -} diff --git a/jni/parted/libiconv/lib/aliases.h b/jni/parted/libiconv/lib/aliases.h deleted file mode 100755 index 6d3039c..0000000 --- a/jni/parted/libiconv/lib/aliases.h +++ /dev/null @@ -1,1777 +0,0 @@ -/* ANSI-C code produced by gperf version 3.2 */ -/* Command-line: gperf -m 10 lib/aliases.gperf */ -/* Computed positions: -k'1,3-11,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 1 "lib/aliases.gperf" -struct alias { int name; unsigned int encoding_index; }; - -#define TOTAL_KEYWORDS 349 -#define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 15 -#define MAX_HASH_VALUE 921 -/* maximum key range = 907, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -aliases_hash (register const char *str, register size_t len) -{ - static const unsigned short asso_values[] = - { - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 5, 6, 922, 97, 7, - 33, 102, 15, 17, 5, 173, 23, 25, 193, 922, - 922, 922, 922, 922, 922, 168, 159, 11, 32, 25, - 159, 13, 70, 6, 308, 186, 8, 132, 7, 6, - 62, 922, 5, 8, 30, 174, 163, 180, 79, 28, - 6, 922, 922, 922, 922, 6, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922 - }; - register unsigned int hval = len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[10]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 10: - hval += asso_values[(unsigned char)str[9]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 9: - hval += asso_values[(unsigned char)str[8]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 8: - hval += asso_values[(unsigned char)str[7]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 7: - hval += asso_values[(unsigned char)str[6]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 6: - hval += asso_values[(unsigned char)str[5]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 5: - hval += asso_values[(unsigned char)str[4]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 4: - hval += asso_values[(unsigned char)str[3]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 3: - hval += asso_values[(unsigned char)str[2]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct stringpool_t - { - char stringpool_str15[sizeof("L6")]; - char stringpool_str17[sizeof("L1")]; - char stringpool_str20[sizeof("CN")]; - char stringpool_str25[sizeof("L4")]; - char stringpool_str27[sizeof("L5")]; - char stringpool_str30[sizeof("R8")]; - char stringpool_str33[sizeof("L8")]; - char stringpool_str34[sizeof("SJIS")]; - char stringpool_str36[sizeof("866")]; - char stringpool_str43[sizeof("L2")]; - char stringpool_str51[sizeof("ISO-IR-6")]; - char stringpool_str54[sizeof("CP866")]; - char stringpool_str64[sizeof("C99")]; - char stringpool_str65[sizeof("ISO-IR-166")]; - char stringpool_str66[sizeof("EUCCN")]; - char stringpool_str67[sizeof("LATIN6")]; - char stringpool_str70[sizeof("CP154")]; - char stringpool_str71[sizeof("LATIN1")]; - char stringpool_str72[sizeof("EUC-CN")]; - char stringpool_str74[sizeof("CYRILLIC")]; - char stringpool_str76[sizeof("ISO646-CN")]; - char stringpool_str78[sizeof("HZ")]; - char stringpool_str79[sizeof("ISO-IR-14")]; - char stringpool_str84[sizeof("CP1256")]; - char stringpool_str87[sizeof("LATIN4")]; - char stringpool_str88[sizeof("CP1251")]; - char stringpool_str89[sizeof("ISO-IR-165")]; - char stringpool_str91[sizeof("LATIN5")]; - char stringpool_str92[sizeof("862")]; - char stringpool_str93[sizeof("ISO-IR-126")]; - char stringpool_str95[sizeof("ISO-IR-144")]; - char stringpool_str96[sizeof("CP819")]; - char stringpool_str103[sizeof("LATIN8")]; - char stringpool_str104[sizeof("CP1254")]; - char stringpool_str105[sizeof("ISO-IR-58")]; - char stringpool_str106[sizeof("CP949")]; - char stringpool_str108[sizeof("CP1255")]; - char stringpool_str110[sizeof("CP862")]; - char stringpool_str111[sizeof("ISO-IR-148")]; - char stringpool_str112[sizeof("L3")]; - char stringpool_str113[sizeof("LATIN-9")]; - char stringpool_str114[sizeof("CHINESE")]; - char stringpool_str115[sizeof("ISO-IR-149")]; - char stringpool_str117[sizeof("ISO-IR-159")]; - char stringpool_str119[sizeof("ISO-IR-226")]; - char stringpool_str120[sizeof("CP1258")]; - char stringpool_str121[sizeof("PT154")]; - char stringpool_str123[sizeof("LATIN2")]; - char stringpool_str124[sizeof("ISO8859-6")]; - char stringpool_str125[sizeof("ISO-IR-199")]; - char stringpool_str128[sizeof("ISO8859-1")]; - char stringpool_str129[sizeof("ISO-CELTIC")]; - char stringpool_str130[sizeof("ISO-8859-6")]; - char stringpool_str131[sizeof("ISO_8859-6")]; - char stringpool_str132[sizeof("ISO8859-16")]; - char stringpool_str134[sizeof("ISO-8859-1")]; - char stringpool_str135[sizeof("ISO_8859-1")]; - char stringpool_str136[sizeof("ISO8859-11")]; - char stringpool_str138[sizeof("ISO-8859-16")]; - char stringpool_str139[sizeof("ISO_8859-16")]; - char stringpool_str140[sizeof("CP1252")]; - char stringpool_str142[sizeof("ISO-8859-11")]; - char stringpool_str143[sizeof("ISO_8859-11")]; - char stringpool_str144[sizeof("ISO8859-4")]; - char stringpool_str145[sizeof("CP1361")]; - char stringpool_str146[sizeof("ISO_8859-16:2001")]; - char stringpool_str147[sizeof("CP1131")]; - char stringpool_str148[sizeof("ISO8859-5")]; - char stringpool_str150[sizeof("ISO-8859-4")]; - char stringpool_str151[sizeof("ISO_8859-4")]; - char stringpool_str152[sizeof("ISO8859-14")]; - char stringpool_str153[sizeof("CP936")]; - char stringpool_str154[sizeof("ISO-8859-5")]; - char stringpool_str155[sizeof("ISO_8859-5")]; - char stringpool_str156[sizeof("ISO8859-15")]; - char stringpool_str157[sizeof("MAC")]; - char stringpool_str158[sizeof("ISO-8859-14")]; - char stringpool_str159[sizeof("ISO_8859-14")]; - char stringpool_str160[sizeof("ISO8859-8")]; - char stringpool_str161[sizeof("ISO-IR-101")]; - char stringpool_str162[sizeof("ISO-8859-15")]; - char stringpool_str163[sizeof("ISO_8859-15")]; - char stringpool_str164[sizeof("ISO8859-9")]; - char stringpool_str166[sizeof("ISO-8859-8")]; - char stringpool_str167[sizeof("ISO_8859-8")]; - char stringpool_str170[sizeof("ISO-8859-9")]; - char stringpool_str171[sizeof("ISO_8859-9")]; - char stringpool_str172[sizeof("ISO_8859-14:1998")]; - char stringpool_str174[sizeof("ISO_8859-15:1998")]; - char stringpool_str176[sizeof("RK1048")]; - char stringpool_str179[sizeof("ELOT_928")]; - char stringpool_str180[sizeof("ISO8859-2")]; - char stringpool_str182[sizeof("IBM866")]; - char stringpool_str183[sizeof("L7")]; - char stringpool_str184[sizeof("US")]; - char stringpool_str186[sizeof("ISO-8859-2")]; - char stringpool_str187[sizeof("ISO_8859-2")]; - char stringpool_str190[sizeof("X0212")]; - char stringpool_str193[sizeof("CHAR")]; - char stringpool_str196[sizeof("PTCP154")]; - char stringpool_str197[sizeof("ISO-IR-109")]; - char stringpool_str198[sizeof("ISO-IR-138")]; - char stringpool_str199[sizeof("UHC")]; - char stringpool_str202[sizeof("ASCII")]; - char stringpool_str204[sizeof("MS-CYRL")]; - char stringpool_str205[sizeof("L10")]; - char stringpool_str206[sizeof("VISCII")]; - char stringpool_str209[sizeof("CP932")]; - char stringpool_str210[sizeof("BIG5")]; - char stringpool_str211[sizeof("TCVN")]; - char stringpool_str212[sizeof("CP50221")]; - char stringpool_str216[sizeof("BIG-5")]; - char stringpool_str217[sizeof("MS-EE")]; - char stringpool_str220[sizeof("850")]; - char stringpool_str222[sizeof("UCS-4")]; - char stringpool_str223[sizeof("CSASCII")]; - char stringpool_str224[sizeof("IBM819")]; - char stringpool_str225[sizeof("CSVISCII")]; - char stringpool_str227[sizeof("GB2312")]; - char stringpool_str228[sizeof("X0201")]; - char stringpool_str229[sizeof("CSBIG5")]; - char stringpool_str235[sizeof("CN-BIG5")]; - char stringpool_str236[sizeof("KOI8-R")]; - char stringpool_str237[sizeof("EUCKR")]; - char stringpool_str238[sizeof("IBM862")]; - char stringpool_str239[sizeof("CSPTCP154")]; - char stringpool_str240[sizeof("CSUCS4")]; - char stringpool_str241[sizeof("ISO646-US")]; - char stringpool_str242[sizeof("CP874")]; - char stringpool_str243[sizeof("EUC-KR")]; - char stringpool_str244[sizeof("VISCII1.1-1")]; - char stringpool_str246[sizeof("ISO_646.IRV:1991")]; - char stringpool_str248[sizeof("MACCYRILLIC")]; - char stringpool_str249[sizeof("CSKOI8R")]; - char stringpool_str250[sizeof("CP850")]; - char stringpool_str251[sizeof("ISO-IR-110")]; - char stringpool_str252[sizeof("CP950")]; - char stringpool_str254[sizeof("ISO-2022-CN")]; - char stringpool_str255[sizeof("CN-GB-ISOIR165")]; - char stringpool_str257[sizeof("CYRILLIC-ASIAN")]; - char stringpool_str258[sizeof("UCS-2")]; - char stringpool_str259[sizeof("LATIN10")]; - char stringpool_str260[sizeof("X0208")]; - char stringpool_str261[sizeof("LATIN3")]; - char stringpool_str263[sizeof("CSISO2022CN")]; - char stringpool_str264[sizeof("ISO_8859-10:1992")]; - char stringpool_str267[sizeof("UCS-4LE")]; - char stringpool_str268[sizeof("CP1250")]; - char stringpool_str271[sizeof("CSISOLATIN6")]; - char stringpool_str273[sizeof("ISO-IR-179")]; - char stringpool_str274[sizeof("MS936")]; - char stringpool_str275[sizeof("CSISOLATIN1")]; - char stringpool_str276[sizeof("TIS620")]; - char stringpool_str278[sizeof("CP1253")]; - char stringpool_str281[sizeof("ISO-2022-CN-EXT")]; - char stringpool_str282[sizeof("TIS-620")]; - char stringpool_str285[sizeof("UCS-2LE")]; - char stringpool_str286[sizeof("KOI8-T")]; - char stringpool_str290[sizeof("CSISOLATINCYRILLIC")]; - char stringpool_str291[sizeof("CSISOLATIN4")]; - char stringpool_str295[sizeof("CSISOLATIN5")]; - char stringpool_str296[sizeof("UNICODE-1-1")]; - char stringpool_str301[sizeof("GREEK8")]; - char stringpool_str302[sizeof("UCS-4-INTERNAL")]; - char stringpool_str304[sizeof("CSUNICODE11")]; - char stringpool_str306[sizeof("CSUNICODE")]; - char stringpool_str307[sizeof("TIS620.2529-1")]; - char stringpool_str311[sizeof("NEXTSTEP")]; - char stringpool_str312[sizeof("GEORGIAN-PS")]; - char stringpool_str316[sizeof("ISO8859-10")]; - char stringpool_str318[sizeof("ISO8859-3")]; - char stringpool_str320[sizeof("UCS-2-INTERNAL")]; - char stringpool_str322[sizeof("ISO-8859-10")]; - char stringpool_str323[sizeof("ISO_8859-10")]; - char stringpool_str324[sizeof("ISO-8859-3")]; - char stringpool_str325[sizeof("ISO_8859-3")]; - char stringpool_str326[sizeof("ISO8859-13")]; - char stringpool_str327[sizeof("CSISOLATIN2")]; - char stringpool_str329[sizeof("GB_1988-80")]; - char stringpool_str332[sizeof("ISO-8859-13")]; - char stringpool_str333[sizeof("ISO_8859-13")]; - char stringpool_str337[sizeof("CP1133")]; - char stringpool_str339[sizeof("MS-ANSI")]; - char stringpool_str341[sizeof("ISO-IR-100")]; - char stringpool_str344[sizeof("KSC_5601")]; - char stringpool_str349[sizeof("MACINTOSH")]; - char stringpool_str352[sizeof("CN-GB")]; - char stringpool_str354[sizeof("CSIBM866")]; - char stringpool_str355[sizeof("ISO-10646-UCS-4")]; - char stringpool_str357[sizeof("ISO_8859-4:1988")]; - char stringpool_str359[sizeof("ISO_8859-5:1988")]; - char stringpool_str361[sizeof("UTF-16")]; - char stringpool_str363[sizeof("KZ-1048")]; - char stringpool_str364[sizeof("ROMAN8")]; - char stringpool_str365[sizeof("ISO_8859-8:1988")]; - char stringpool_str366[sizeof("UNICODELITTLE")]; - char stringpool_str369[sizeof("ISO_8859-9:1989")]; - char stringpool_str372[sizeof("JP")]; - char stringpool_str373[sizeof("ISO-10646-UCS-2")]; - char stringpool_str375[sizeof("MULELAO-1")]; - char stringpool_str376[sizeof("CSKZ1048")]; - char stringpool_str377[sizeof("ISO-IR-203")]; - char stringpool_str378[sizeof("IBM850")]; - char stringpool_str380[sizeof("TIS620-0")]; - char stringpool_str382[sizeof("ECMA-114")]; - char stringpool_str386[sizeof("KS_C_5601-1989")]; - char stringpool_str388[sizeof("GBK")]; - char stringpool_str389[sizeof("UTF-8")]; - char stringpool_str391[sizeof("ARMSCII-8")]; - char stringpool_str392[sizeof("US-ASCII")]; - char stringpool_str398[sizeof("ECMA-118")]; - char stringpool_str399[sizeof("CSGB2312")]; - char stringpool_str403[sizeof("LATIN7")]; - char stringpool_str404[sizeof("KOREAN")]; - char stringpool_str405[sizeof("ISO-IR-57")]; - char stringpool_str408[sizeof("MS-HEBR")]; - char stringpool_str409[sizeof("CSISO14JISC6220RO")]; - char stringpool_str411[sizeof("ISO-IR-87")]; - char stringpool_str413[sizeof("ISO-IR-157")]; - char stringpool_str416[sizeof("UTF-16LE")]; - char stringpool_str418[sizeof("UCS-4BE")]; - char stringpool_str420[sizeof("CP1257")]; - char stringpool_str421[sizeof("ANSI_X3.4-1986")]; - char stringpool_str424[sizeof("CSEUCKR")]; - char stringpool_str425[sizeof("ISO-2022-KR")]; - char stringpool_str426[sizeof("GB_2312-80")]; - char stringpool_str429[sizeof("ISO-IR-127")]; - char stringpool_str430[sizeof("MACTHAI")]; - char stringpool_str431[sizeof("EUCTW")]; - char stringpool_str433[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; - char stringpool_str434[sizeof("CSISO2022KR")]; - char stringpool_str436[sizeof("UCS-2BE")]; - char stringpool_str437[sizeof("EUC-TW")]; - char stringpool_str439[sizeof("ANSI_X3.4-1968")]; - char stringpool_str440[sizeof("GREEK")]; - char stringpool_str442[sizeof("MACICELAND")]; - char stringpool_str443[sizeof("GB18030")]; - char stringpool_str444[sizeof("ISO_8859-3:1988")]; - char stringpool_str445[sizeof("CSISOLATINARABIC")]; - char stringpool_str446[sizeof("GEORGIAN-ACADEMY")]; - char stringpool_str448[sizeof("HP-ROMAN8")]; - char stringpool_str453[sizeof("TIS620.2533-1")]; - char stringpool_str455[sizeof("UNICODEBIG")]; - char stringpool_str459[sizeof("TCVN5712-1")]; - char stringpool_str460[sizeof("ISO8859-7")]; - char stringpool_str461[sizeof("CSISO57GB1988")]; - char stringpool_str463[sizeof("MACCENTRALEUROPE")]; - char stringpool_str464[sizeof("CSISOLATINGREEK")]; - char stringpool_str465[sizeof("CSISOLATIN3")]; - char stringpool_str466[sizeof("ISO-8859-7")]; - char stringpool_str467[sizeof("ISO_8859-7")]; - char stringpool_str468[sizeof("UNICODE-1-1-UTF-7")]; - char stringpool_str469[sizeof("CP367")]; - char stringpool_str470[sizeof("HZ-GB-2312")]; - char stringpool_str473[sizeof("EUCJP")]; - char stringpool_str474[sizeof("CSUNICODE11UTF7")]; - char stringpool_str476[sizeof("MACROMAN")]; - char stringpool_str477[sizeof("TCVN-5712")]; - char stringpool_str479[sizeof("EUC-JP")]; - char stringpool_str483[sizeof("ISO646-JP")]; - char stringpool_str489[sizeof("BIG5HKSCS")]; - char stringpool_str490[sizeof("CSISO58GB231280")]; - char stringpool_str492[sizeof("WINDOWS-1256")]; - char stringpool_str494[sizeof("WINDOWS-1251")]; - char stringpool_str495[sizeof("BIG5-HKSCS")]; - char stringpool_str496[sizeof("WCHAR_T")]; - char stringpool_str497[sizeof("ISO_8859-6:1987")]; - char stringpool_str499[sizeof("ISO_8859-1:1987")]; - char stringpool_str502[sizeof("WINDOWS-1254")]; - char stringpool_str504[sizeof("WINDOWS-1255")]; - char stringpool_str510[sizeof("WINDOWS-1258")]; - char stringpool_str512[sizeof("UTF-32")]; - char stringpool_str516[sizeof("CSISOLATINHEBREW")]; - char stringpool_str517[sizeof("CSHPROMAN8")]; - char stringpool_str519[sizeof("CSISO159JISX02121990")]; - char stringpool_str520[sizeof("WINDOWS-1252")]; - char stringpool_str522[sizeof("STRK1048-2002")]; - char stringpool_str525[sizeof("ISO_8859-2:1987")]; - char stringpool_str529[sizeof("ARABIC")]; - char stringpool_str530[sizeof("CSMACINTOSH")]; - char stringpool_str534[sizeof("KS_C_5601-1987")]; - char stringpool_str536[sizeof("JIS_C6220-1969-RO")]; - char stringpool_str537[sizeof("JIS_C6226-1983")]; - char stringpool_str539[sizeof("UTF-32LE")]; - char stringpool_str543[sizeof("TIS620.2533-0")]; - char stringpool_str546[sizeof("IBM-CP1133")]; - char stringpool_str547[sizeof("SHIFT-JIS")]; - char stringpool_str548[sizeof("SHIFT_JIS")]; - char stringpool_str555[sizeof("CSPC862LATINHEBREW")]; - char stringpool_str557[sizeof("BIGFIVE")]; - char stringpool_str560[sizeof("CSKSC56011987")]; - char stringpool_str562[sizeof("MACCROATIAN")]; - char stringpool_str563[sizeof("BIG-FIVE")]; - char stringpool_str566[sizeof("WINDOWS-936")]; - char stringpool_str567[sizeof("UTF-16BE")]; - char stringpool_str574[sizeof("KOI8-U")]; - char stringpool_str580[sizeof("KOI8-RU")]; - char stringpool_str584[sizeof("WINDOWS-1250")]; - char stringpool_str585[sizeof("MS-GREEK")]; - char stringpool_str589[sizeof("WINDOWS-1253")]; - char stringpool_str591[sizeof("MACGREEK")]; - char stringpool_str592[sizeof("CSPC850MULTILINGUAL")]; - char stringpool_str594[sizeof("ISO_8859-7:2003")]; - char stringpool_str596[sizeof("JIS0208")]; - char stringpool_str597[sizeof("IBM367")]; - char stringpool_str608[sizeof("ISO-2022-JP-1")]; - char stringpool_str610[sizeof("ISO-2022-JP-MS")]; - char stringpool_str613[sizeof("JIS_X0212")]; - char stringpool_str618[sizeof("CSEUCTW")]; - char stringpool_str624[sizeof("CSSHIFTJIS")]; - char stringpool_str625[sizeof("HEBREW")]; - char stringpool_str634[sizeof("ISO-2022-JP-2")]; - char stringpool_str635[sizeof("ASMO-708")]; - char stringpool_str642[sizeof("CSISO2022JP2")]; - char stringpool_str651[sizeof("JIS_X0201")]; - char stringpool_str655[sizeof("WINDOWS-874")]; - char stringpool_str660[sizeof("WINDOWS-1257")]; - char stringpool_str661[sizeof("ISO-2022-JP")]; - char stringpool_str665[sizeof("ISO_8859-7:1987")]; - char stringpool_str666[sizeof("CSISO87JISX0208")]; - char stringpool_str670[sizeof("CSISO2022JP")]; - char stringpool_str680[sizeof("MACARABIC")]; - char stringpool_str683[sizeof("JIS_X0208")]; - char stringpool_str684[sizeof("JISX0201-1976")]; - char stringpool_str689[sizeof("UTF-7")]; - char stringpool_str690[sizeof("UTF-32BE")]; - char stringpool_str692[sizeof("BIG5-HKSCS:2001")]; - char stringpool_str694[sizeof("JIS_X0212-1990")]; - char stringpool_str697[sizeof("JIS_X0212.1990-0")]; - char stringpool_str700[sizeof("BIG5-HKSCS:2004")]; - char stringpool_str702[sizeof("MACTURKISH")]; - char stringpool_str708[sizeof("BIG5-HKSCS:2008")]; - char stringpool_str710[sizeof("BIG5-HKSCS:1999")]; - char stringpool_str725[sizeof("MS-TURK")]; - char stringpool_str732[sizeof("UCS-4-SWAPPED")]; - char stringpool_str749[sizeof("MACUKRAINE")]; - char stringpool_str750[sizeof("UCS-2-SWAPPED")]; - char stringpool_str752[sizeof("TCVN5712-1:1993")]; - char stringpool_str774[sizeof("JIS_X0208-1990")]; - char stringpool_str779[sizeof("JIS_X0208-1983")]; - char stringpool_str796[sizeof("MACHEBREW")]; - char stringpool_str803[sizeof("MS-ARAB")]; - char stringpool_str811[sizeof("JAVA")]; - char stringpool_str813[sizeof("MACROMANIA")]; - char stringpool_str827[sizeof("MS_KANJI")]; - char stringpool_str837[sizeof("WINBALTRIM")]; - char stringpool_str866[sizeof("CSEUCPKDFMTJAPANESE")]; - char stringpool_str869[sizeof("JOHAB")]; - char stringpool_str921[sizeof("CSHALFWIDTHKATAKANA")]; - }; -static const struct stringpool_t stringpool_contents = - { - "L6", - "L1", - "CN", - "L4", - "L5", - "R8", - "L8", - "SJIS", - "866", - "L2", - "ISO-IR-6", - "CP866", - "C99", - "ISO-IR-166", - "EUCCN", - "LATIN6", - "CP154", - "LATIN1", - "EUC-CN", - "CYRILLIC", - "ISO646-CN", - "HZ", - "ISO-IR-14", - "CP1256", - "LATIN4", - "CP1251", - "ISO-IR-165", - "LATIN5", - "862", - "ISO-IR-126", - "ISO-IR-144", - "CP819", - "LATIN8", - "CP1254", - "ISO-IR-58", - "CP949", - "CP1255", - "CP862", - "ISO-IR-148", - "L3", - "LATIN-9", - "CHINESE", - "ISO-IR-149", - "ISO-IR-159", - "ISO-IR-226", - "CP1258", - "PT154", - "LATIN2", - "ISO8859-6", - "ISO-IR-199", - "ISO8859-1", - "ISO-CELTIC", - "ISO-8859-6", - "ISO_8859-6", - "ISO8859-16", - "ISO-8859-1", - "ISO_8859-1", - "ISO8859-11", - "ISO-8859-16", - "ISO_8859-16", - "CP1252", - "ISO-8859-11", - "ISO_8859-11", - "ISO8859-4", - "CP1361", - "ISO_8859-16:2001", - "CP1131", - "ISO8859-5", - "ISO-8859-4", - "ISO_8859-4", - "ISO8859-14", - "CP936", - "ISO-8859-5", - "ISO_8859-5", - "ISO8859-15", - "MAC", - "ISO-8859-14", - "ISO_8859-14", - "ISO8859-8", - "ISO-IR-101", - "ISO-8859-15", - "ISO_8859-15", - "ISO8859-9", - "ISO-8859-8", - "ISO_8859-8", - "ISO-8859-9", - "ISO_8859-9", - "ISO_8859-14:1998", - "ISO_8859-15:1998", - "RK1048", - "ELOT_928", - "ISO8859-2", - "IBM866", - "L7", - "US", - "ISO-8859-2", - "ISO_8859-2", - "X0212", - "CHAR", - "PTCP154", - "ISO-IR-109", - "ISO-IR-138", - "UHC", - "ASCII", - "MS-CYRL", - "L10", - "VISCII", - "CP932", - "BIG5", - "TCVN", - "CP50221", - "BIG-5", - "MS-EE", - "850", - "UCS-4", - "CSASCII", - "IBM819", - "CSVISCII", - "GB2312", - "X0201", - "CSBIG5", - "CN-BIG5", - "KOI8-R", - "EUCKR", - "IBM862", - "CSPTCP154", - "CSUCS4", - "ISO646-US", - "CP874", - "EUC-KR", - "VISCII1.1-1", - "ISO_646.IRV:1991", - "MACCYRILLIC", - "CSKOI8R", - "CP850", - "ISO-IR-110", - "CP950", - "ISO-2022-CN", - "CN-GB-ISOIR165", - "CYRILLIC-ASIAN", - "UCS-2", - "LATIN10", - "X0208", - "LATIN3", - "CSISO2022CN", - "ISO_8859-10:1992", - "UCS-4LE", - "CP1250", - "CSISOLATIN6", - "ISO-IR-179", - "MS936", - "CSISOLATIN1", - "TIS620", - "CP1253", - "ISO-2022-CN-EXT", - "TIS-620", - "UCS-2LE", - "KOI8-T", - "CSISOLATINCYRILLIC", - "CSISOLATIN4", - "CSISOLATIN5", - "UNICODE-1-1", - "GREEK8", - "UCS-4-INTERNAL", - "CSUNICODE11", - "CSUNICODE", - "TIS620.2529-1", - "NEXTSTEP", - "GEORGIAN-PS", - "ISO8859-10", - "ISO8859-3", - "UCS-2-INTERNAL", - "ISO-8859-10", - "ISO_8859-10", - "ISO-8859-3", - "ISO_8859-3", - "ISO8859-13", - "CSISOLATIN2", - "GB_1988-80", - "ISO-8859-13", - "ISO_8859-13", - "CP1133", - "MS-ANSI", - "ISO-IR-100", - "KSC_5601", - "MACINTOSH", - "CN-GB", - "CSIBM866", - "ISO-10646-UCS-4", - "ISO_8859-4:1988", - "ISO_8859-5:1988", - "UTF-16", - "KZ-1048", - "ROMAN8", - "ISO_8859-8:1988", - "UNICODELITTLE", - "ISO_8859-9:1989", - "JP", - "ISO-10646-UCS-2", - "MULELAO-1", - "CSKZ1048", - "ISO-IR-203", - "IBM850", - "TIS620-0", - "ECMA-114", - "KS_C_5601-1989", - "GBK", - "UTF-8", - "ARMSCII-8", - "US-ASCII", - "ECMA-118", - "CSGB2312", - "LATIN7", - "KOREAN", - "ISO-IR-57", - "MS-HEBR", - "CSISO14JISC6220RO", - "ISO-IR-87", - "ISO-IR-157", - "UTF-16LE", - "UCS-4BE", - "CP1257", - "ANSI_X3.4-1986", - "CSEUCKR", - "ISO-2022-KR", - "GB_2312-80", - "ISO-IR-127", - "MACTHAI", - "EUCTW", - "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", - "CSISO2022KR", - "UCS-2BE", - "EUC-TW", - "ANSI_X3.4-1968", - "GREEK", - "MACICELAND", - "GB18030", - "ISO_8859-3:1988", - "CSISOLATINARABIC", - "GEORGIAN-ACADEMY", - "HP-ROMAN8", - "TIS620.2533-1", - "UNICODEBIG", - "TCVN5712-1", - "ISO8859-7", - "CSISO57GB1988", - "MACCENTRALEUROPE", - "CSISOLATINGREEK", - "CSISOLATIN3", - "ISO-8859-7", - "ISO_8859-7", - "UNICODE-1-1-UTF-7", - "CP367", - "HZ-GB-2312", - "EUCJP", - "CSUNICODE11UTF7", - "MACROMAN", - "TCVN-5712", - "EUC-JP", - "ISO646-JP", - "BIG5HKSCS", - "CSISO58GB231280", - "WINDOWS-1256", - "WINDOWS-1251", - "BIG5-HKSCS", - "WCHAR_T", - "ISO_8859-6:1987", - "ISO_8859-1:1987", - "WINDOWS-1254", - "WINDOWS-1255", - "WINDOWS-1258", - "UTF-32", - "CSISOLATINHEBREW", - "CSHPROMAN8", - "CSISO159JISX02121990", - "WINDOWS-1252", - "STRK1048-2002", - "ISO_8859-2:1987", - "ARABIC", - "CSMACINTOSH", - "KS_C_5601-1987", - "JIS_C6220-1969-RO", - "JIS_C6226-1983", - "UTF-32LE", - "TIS620.2533-0", - "IBM-CP1133", - "SHIFT-JIS", - "SHIFT_JIS", - "CSPC862LATINHEBREW", - "BIGFIVE", - "CSKSC56011987", - "MACCROATIAN", - "BIG-FIVE", - "WINDOWS-936", - "UTF-16BE", - "KOI8-U", - "KOI8-RU", - "WINDOWS-1250", - "MS-GREEK", - "WINDOWS-1253", - "MACGREEK", - "CSPC850MULTILINGUAL", - "ISO_8859-7:2003", - "JIS0208", - "IBM367", - "ISO-2022-JP-1", - "ISO-2022-JP-MS", - "JIS_X0212", - "CSEUCTW", - "CSSHIFTJIS", - "HEBREW", - "ISO-2022-JP-2", - "ASMO-708", - "CSISO2022JP2", - "JIS_X0201", - "WINDOWS-874", - "WINDOWS-1257", - "ISO-2022-JP", - "ISO_8859-7:1987", - "CSISO87JISX0208", - "CSISO2022JP", - "MACARABIC", - "JIS_X0208", - "JISX0201-1976", - "UTF-7", - "UTF-32BE", - "BIG5-HKSCS:2001", - "JIS_X0212-1990", - "JIS_X0212.1990-0", - "BIG5-HKSCS:2004", - "MACTURKISH", - "BIG5-HKSCS:2008", - "BIG5-HKSCS:1999", - "MS-TURK", - "UCS-4-SWAPPED", - "MACUKRAINE", - "UCS-2-SWAPPED", - "TCVN5712-1:1993", - "JIS_X0208-1990", - "JIS_X0208-1983", - "MACHEBREW", - "MS-ARAB", - "JAVA", - "MACROMANIA", - "MS_KANJI", - "WINBALTRIM", - "CSEUCPKDFMTJAPANESE", - "JOHAB", - "CSHALFWIDTHKATAKANA" - }; -#define stringpool ((const char *) &stringpool_contents) - -static const struct alias aliases[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 134 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, ei_iso8859_10}, - {-1}, -#line 60 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_1}, - {-1}, {-1}, -#line 288 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, ei_iso646_cn}, - {-1}, {-1}, {-1}, {-1}, -#line 84 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, ei_iso8859_4}, - {-1}, -#line 126 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, ei_iso8859_9}, - {-1}, {-1}, -#line 227 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, ei_hp_roman8}, - {-1}, {-1}, -#line 151 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, ei_iso8859_14}, -#line 308 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, ei_sjis}, - {-1}, -#line 207 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, ei_cp866}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 68 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, ei_iso8859_2}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 16 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str51, ei_ascii}, - {-1}, {-1}, -#line 205 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str54, ei_cp866}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 51 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, ei_c99}, -#line 252 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str65, ei_tis620}, -#line 320 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str66, ei_euc_cn}, -#line 133 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str67, ei_iso8859_10}, - {-1}, {-1}, -#line 236 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str70, ei_pt154}, -#line 59 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str71, ei_iso8859_1}, -#line 319 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str72, ei_euc_cn}, - {-1}, -#line 91 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str74, ei_iso8859_5}, - {-1}, -#line 286 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str76, ei_iso646_cn}, - {-1}, -#line 332 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str78, ei_hz}, -#line 264 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str79, ei_iso646_jp}, - {-1}, {-1}, {-1}, {-1}, -#line 189 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str84, ei_cp1256}, - {-1}, {-1}, -#line 83 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str87, ei_iso8859_4}, -#line 174 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str88, ei_cp1251}, -#line 294 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str89, ei_isoir165}, - {-1}, -#line 125 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_9}, -#line 203 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str92, ei_cp862}, -#line 107 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_7}, - {-1}, -#line 90 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str95, ei_iso8859_5}, -#line 57 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str96, ei_iso8859_1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 150 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_14}, -#line 183 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str104, ei_cp1254}, -#line 291 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str105, ei_gb2312}, -#line 353 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str106, ei_cp949}, - {-1}, -#line 186 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str108, ei_cp1255}, - {-1}, -#line 201 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str110, ei_cp862}, -#line 124 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_9}, -#line 76 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str112, ei_iso8859_3}, -#line 158 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str113, ei_iso8859_15}, -#line 293 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str114, ei_gb2312}, -#line 299 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str115, ei_ksc5601}, - {-1}, -#line 283 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str117, ei_jisx0212}, - {-1}, -#line 163 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_16}, -#line 195 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str120, ei_cp1258}, -#line 234 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str121, ei_pt154}, - {-1}, -#line 67 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str123, ei_iso8859_2}, -#line 102 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_6}, -#line 149 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_14}, - {-1}, {-1}, -#line 62 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str128, ei_iso8859_1}, -#line 152 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str129, ei_iso8859_14}, -#line 94 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_6}, -#line 95 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str131, ei_iso8859_6}, -#line 166 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str132, ei_iso8859_16}, - {-1}, -#line 53 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str134, ei_iso8859_1}, -#line 54 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str135, ei_iso8859_1}, -#line 139 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str136, ei_iso8859_11}, - {-1}, -#line 160 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str138, ei_iso8859_16}, -#line 161 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str139, ei_iso8859_16}, -#line 177 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str140, ei_cp1252}, - {-1}, -#line 137 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_11}, -#line 138 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_11}, -#line 86 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str144, ei_iso8859_4}, -#line 356 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str145, ei_johab}, -#line 162 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str146, ei_iso8859_16}, -#line 209 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str147, ei_cp1131}, -#line 93 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_5}, - {-1}, -#line 79 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str150, ei_iso8859_4}, -#line 80 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str151, ei_iso8859_4}, -#line 153 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_14}, -#line 325 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str153, ei_cp936}, -#line 87 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_5}, -#line 88 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_5}, -#line 159 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_15}, -#line 212 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str157, ei_mac_roman}, -#line 146 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_14}, -#line 147 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str159, ei_iso8859_14}, -#line 120 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_8}, -#line 66 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_2}, -#line 154 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_15}, -#line 155 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_15}, -#line 128 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str164, ei_iso8859_9}, - {-1}, -#line 114 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str166, ei_iso8859_8}, -#line 115 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str167, ei_iso8859_8}, - {-1}, {-1}, -#line 121 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_9}, -#line 122 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str171, ei_iso8859_9}, -#line 148 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_14}, - {-1}, -#line 156 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str174, ei_iso8859_15}, - {-1}, -#line 239 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str176, ei_rk1048}, - {-1}, {-1}, -#line 109 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_7}, -#line 70 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str180, ei_iso8859_2}, - {-1}, -#line 206 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str182, ei_cp866}, -#line 144 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str183, ei_iso8859_13}, -#line 21 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str184, ei_ascii}, - {-1}, -#line 63 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str186, ei_iso8859_2}, -#line 64 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str187, ei_iso8859_2}, - {-1}, {-1}, -#line 282 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str190, ei_jisx0212}, - {-1}, {-1}, -#line 359 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str193, ei_local_char}, - {-1}, {-1}, -#line 235 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str196, ei_pt154}, -#line 74 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_3}, -#line 117 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str198, ei_iso8859_8}, -#line 354 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str199, ei_cp949}, - {-1}, {-1}, -#line 13 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str202, ei_ascii}, - {-1}, -#line 176 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str204, ei_cp1251}, -#line 165 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str205, ei_iso8859_16}, -#line 255 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str206, ei_viscii}, - {-1}, {-1}, -#line 311 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str209, ei_cp932}, -#line 337 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str210, ei_ces_big5}, -#line 258 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str211, ei_tcvn}, -#line 318 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str212, ei_iso2022_jpms}, - {-1}, {-1}, {-1}, -#line 338 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str216, ei_ces_big5}, -#line 173 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str217, ei_cp1250}, - {-1}, {-1}, -#line 199 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str220, ei_cp850}, - {-1}, -#line 33 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str222, ei_ucs4}, -#line 22 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str223, ei_ascii}, -#line 58 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str224, ei_iso8859_1}, -#line 257 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str225, ei_viscii}, - {-1}, -#line 321 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str227, ei_euc_cn}, -#line 269 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str228, ei_jisx0201}, -#line 342 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str229, ei_ces_big5}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 341 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str235, ei_ces_big5}, -#line 167 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str236, ei_koi8_r}, -#line 351 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str237, ei_euc_kr}, -#line 202 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str238, ei_cp862}, -#line 238 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str239, ei_pt154}, -#line 35 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str240, ei_ucs4}, -#line 14 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str241, ei_ascii}, -#line 253 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str242, ei_cp874}, -#line 350 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str243, ei_euc_kr}, -#line 256 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str244, ei_viscii}, - {-1}, -#line 15 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str246, ei_ascii}, - {-1}, -#line 218 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str248, ei_mac_cyrillic}, -#line 168 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str249, ei_koi8_r}, -#line 197 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str250, ei_cp850}, -#line 82 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str251, ei_iso8859_4}, -#line 343 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str252, ei_cp950}, - {-1}, -#line 329 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str254, ei_iso2022_cn}, -#line 295 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str255, ei_isoir165}, - {-1}, -#line 237 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str257, ei_pt154}, -#line 24 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str258, ei_ucs2}, -#line 164 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str259, ei_iso8859_16}, -#line 275 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str260, ei_jisx0208}, -#line 75 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str261, ei_iso8859_3}, - {-1}, -#line 330 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str263, ei_iso2022_cn}, -#line 131 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str264, ei_iso8859_10}, - {-1}, {-1}, -#line 37 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str267, ei_ucs4le}, -#line 171 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str268, ei_cp1250}, - {-1}, {-1}, -#line 135 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str271, ei_iso8859_10}, - {-1}, -#line 142 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str273, ei_iso8859_13}, -#line 326 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str274, ei_cp936}, -#line 61 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str275, ei_iso8859_1}, -#line 247 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str276, ei_tis620}, - {-1}, -#line 180 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str278, ei_cp1253}, - {-1}, {-1}, -#line 331 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str281, ei_iso2022_cn_ext}, -#line 246 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str282, ei_tis620}, - {-1}, {-1}, -#line 31 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str285, ei_ucs2le}, -#line 233 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str286, ei_koi8_t}, - {-1}, {-1}, {-1}, -#line 92 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str290, ei_iso8859_5}, -#line 85 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str291, ei_iso8859_4}, - {-1}, {-1}, {-1}, -#line 127 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str295, ei_iso8859_9}, -#line 29 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str296, ei_ucs2be}, - {-1}, {-1}, {-1}, {-1}, -#line 110 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str301, ei_iso8859_7}, -#line 49 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str302, ei_ucs4internal}, - {-1}, -#line 30 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str304, ei_ucs2be}, - {-1}, -#line 26 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str306, ei_ucs2}, -#line 249 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str307, ei_tis620}, - {-1}, {-1}, {-1}, -#line 229 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str311, ei_nextstep}, -#line 232 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str312, ei_georgian_ps}, - {-1}, {-1}, {-1}, -#line 136 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str316, ei_iso8859_10}, - {-1}, -#line 78 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str318, ei_iso8859_3}, - {-1}, -#line 47 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str320, ei_ucs2internal}, - {-1}, -#line 129 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str322, ei_iso8859_10}, -#line 130 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str323, ei_iso8859_10}, -#line 71 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str324, ei_iso8859_3}, -#line 72 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str325, ei_iso8859_3}, -#line 145 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str326, ei_iso8859_13}, -#line 69 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str327, ei_iso8859_2}, - {-1}, -#line 285 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str329, ei_iso646_cn}, - {-1}, {-1}, -#line 140 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str332, ei_iso8859_13}, -#line 141 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str333, ei_iso8859_13}, - {-1}, {-1}, {-1}, -#line 244 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str337, ei_cp1133}, - {-1}, -#line 179 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str339, ei_cp1252}, - {-1}, -#line 56 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str341, ei_iso8859_1}, - {-1}, {-1}, -#line 296 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str344, ei_ksc5601}, - {-1}, {-1}, {-1}, {-1}, -#line 211 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str349, ei_mac_roman}, - {-1}, {-1}, -#line 322 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str352, ei_euc_cn}, - {-1}, -#line 208 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str354, ei_cp866}, -#line 34 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str355, ei_ucs4}, - {-1}, -#line 81 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str357, ei_iso8859_4}, - {-1}, -#line 89 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str359, ei_iso8859_5}, - {-1}, -#line 38 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str361, ei_utf16}, - {-1}, -#line 241 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str363, ei_rk1048}, -#line 226 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str364, ei_hp_roman8}, -#line 116 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str365, ei_iso8859_8}, -#line 32 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str366, ei_ucs2le}, - {-1}, {-1}, -#line 123 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str369, ei_iso8859_9}, - {-1}, {-1}, -#line 265 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str372, ei_iso646_jp}, -#line 25 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str373, ei_ucs2}, - {-1}, -#line 243 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str375, ei_mulelao}, -#line 242 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str376, ei_rk1048}, -#line 157 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str377, ei_iso8859_15}, -#line 198 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str378, ei_cp850}, - {-1}, -#line 248 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str380, ei_tis620}, - {-1}, -#line 98 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str382, ei_iso8859_6}, - {-1}, {-1}, {-1}, -#line 298 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str386, ei_ksc5601}, - {-1}, -#line 324 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str388, ei_ces_gbk}, -#line 23 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str389, ei_utf8}, - {-1}, -#line 230 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str391, ei_armscii_8}, -#line 12 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str392, ei_ascii}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 108 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str398, ei_iso8859_7}, -#line 323 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str399, ei_euc_cn}, - {-1}, {-1}, {-1}, -#line 143 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str403, ei_iso8859_13}, -#line 301 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str404, ei_ksc5601}, -#line 287 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str405, ei_iso646_cn}, - {-1}, {-1}, -#line 188 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str408, ei_cp1255}, -#line 266 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str409, ei_iso646_jp}, - {-1}, -#line 276 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str411, ei_jisx0208}, - {-1}, -#line 132 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str413, ei_iso8859_10}, - {-1}, {-1}, -#line 40 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str416, ei_utf16le}, - {-1}, -#line 36 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str418, ei_ucs4be}, - {-1}, -#line 192 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str420, ei_cp1257}, -#line 18 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str421, ei_ascii}, - {-1}, {-1}, -#line 352 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str424, ei_euc_kr}, -#line 357 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str425, ei_iso2022_kr}, -#line 290 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str426, ei_gb2312}, - {-1}, {-1}, -#line 97 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str429, ei_iso8859_6}, -#line 224 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str430, ei_mac_thai}, -#line 335 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str431, ei_euc_tw}, - {-1}, -#line 304 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str433, ei_euc_jp}, -#line 358 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str434, ei_iso2022_kr}, - {-1}, -#line 27 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str436, ei_ucs2be}, -#line 334 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str437, ei_euc_tw}, - {-1}, -#line 17 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str439, ei_ascii}, -#line 111 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str440, ei_iso8859_7}, - {-1}, -#line 215 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str442, ei_mac_iceland}, -#line 328 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str443, ei_gb18030}, -#line 73 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str444, ei_iso8859_3}, -#line 101 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str445, ei_iso8859_6}, -#line 231 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str446, ei_georgian_academy}, - {-1}, -#line 225 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str448, ei_hp_roman8}, - {-1}, {-1}, {-1}, {-1}, -#line 251 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str453, ei_tis620}, - {-1}, -#line 28 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str455, ei_ucs2be}, - {-1}, {-1}, {-1}, -#line 260 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str459, ei_tcvn}, -#line 113 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str460, ei_iso8859_7}, -#line 289 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str461, ei_iso646_cn}, - {-1}, -#line 214 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str463, ei_mac_centraleurope}, -#line 112 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str464, ei_iso8859_7}, -#line 77 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str465, ei_iso8859_3}, -#line 103 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str466, ei_iso8859_7}, -#line 104 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str467, ei_iso8859_7}, -#line 45 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str468, ei_utf7}, -#line 19 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str469, ei_ascii}, -#line 333 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str470, ei_hz}, - {-1}, {-1}, -#line 303 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str473, ei_euc_jp}, -#line 46 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str474, ei_utf7}, - {-1}, -#line 210 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str476, ei_mac_roman}, -#line 259 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str477, ei_tcvn}, - {-1}, -#line 302 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str479, ei_euc_jp}, - {-1}, {-1}, {-1}, -#line 263 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str483, ei_iso646_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 348 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str489, ei_big5hkscs2008}, -#line 292 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str490, ei_gb2312}, - {-1}, -#line 190 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str492, ei_cp1256}, - {-1}, -#line 175 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str494, ei_cp1251}, -#line 347 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str495, ei_big5hkscs2008}, -#line 360 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str496, ei_local_wchar_t}, -#line 96 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str497, ei_iso8859_6}, - {-1}, -#line 55 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str499, ei_iso8859_1}, - {-1}, {-1}, -#line 184 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str502, ei_cp1254}, - {-1}, -#line 187 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str504, ei_cp1255}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 196 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str510, ei_cp1258}, - {-1}, -#line 41 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str512, ei_utf32}, - {-1}, {-1}, {-1}, -#line 119 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str516, ei_iso8859_8}, -#line 228 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str517, ei_hp_roman8}, - {-1}, -#line 284 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str519, ei_jisx0212}, -#line 178 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str520, ei_cp1252}, - {-1}, -#line 240 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str522, ei_rk1048}, - {-1}, {-1}, -#line 65 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str525, ei_iso8859_2}, - {-1}, {-1}, {-1}, -#line 100 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str529, ei_iso8859_6}, -#line 213 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str530, ei_mac_roman}, - {-1}, {-1}, {-1}, -#line 297 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str534, ei_ksc5601}, - {-1}, -#line 262 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str536, ei_iso646_jp}, -#line 277 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str537, ei_jisx0208}, - {-1}, -#line 43 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str539, ei_utf32le}, - {-1}, {-1}, {-1}, -#line 250 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str543, ei_tis620}, - {-1}, {-1}, -#line 245 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str546, ei_cp1133}, -#line 307 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str547, ei_sjis}, -#line 306 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str548, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 204 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str555, ei_cp862}, - {-1}, -#line 340 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str557, ei_ces_big5}, - {-1}, {-1}, -#line 300 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str560, ei_ksc5601}, - {-1}, -#line 216 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str562, ei_mac_croatian}, -#line 339 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str563, ei_ces_big5}, - {-1}, {-1}, -#line 327 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str566, ei_cp936}, -#line 39 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str567, ei_utf16be}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 169 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str574, ei_koi8_u}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 170 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str580, ei_koi8_ru}, - {-1}, {-1}, {-1}, -#line 172 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str584, ei_cp1250}, -#line 182 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str585, ei_cp1253}, - {-1}, {-1}, {-1}, -#line 181 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str589, ei_cp1253}, - {-1}, -#line 220 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str591, ei_mac_greek}, -#line 200 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str592, ei_cp850}, - {-1}, -#line 106 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str594, ei_iso8859_7}, - {-1}, -#line 274 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str596, ei_jisx0208}, -#line 20 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str597, ei_ascii}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 314 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str608, ei_iso2022_jp1}, - {-1}, -#line 317 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str610, ei_iso2022_jpms}, - {-1}, {-1}, -#line 279 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str613, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, -#line 336 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str618, ei_euc_tw}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 310 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str624, ei_sjis}, -#line 118 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str625, ei_iso8859_8}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 315 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str634, ei_iso2022_jp2}, -#line 99 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str635, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 316 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str642, ei_iso2022_jp2}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 267 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str651, ei_jisx0201}, - {-1}, {-1}, {-1}, -#line 254 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str655, ei_cp874}, - {-1}, {-1}, {-1}, {-1}, -#line 193 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str660, ei_cp1257}, -#line 312 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str661, ei_iso2022_jp}, - {-1}, {-1}, {-1}, -#line 105 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str665, ei_iso8859_7}, -#line 278 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str666, ei_jisx0208}, - {-1}, {-1}, {-1}, -#line 313 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str670, ei_iso2022_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 223 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str680, ei_mac_arabic}, - {-1}, {-1}, -#line 271 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str683, ei_jisx0208}, -#line 268 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str684, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, -#line 44 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str689, ei_utf7}, -#line 42 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str690, ei_utf32be}, - {-1}, -#line 345 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str692, ei_big5hkscs2001}, - {-1}, -#line 281 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str694, ei_jisx0212}, - {-1}, {-1}, -#line 280 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str697, ei_jisx0212}, - {-1}, {-1}, -#line 346 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str700, ei_big5hkscs2004}, - {-1}, -#line 221 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str702, ei_mac_turkish}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 349 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str708, ei_big5hkscs2008}, - {-1}, -#line 344 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str710, ei_big5hkscs1999}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 185 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str725, ei_cp1254}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 50 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str732, ei_ucs4swapped}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 219 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str749, ei_mac_ukraine}, -#line 48 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str750, ei_ucs2swapped}, - {-1}, -#line 261 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str752, ei_tcvn}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, -#line 273 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str774, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, -#line 272 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str779, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 222 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str796, ei_mac_hebrew}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 191 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str803, ei_cp1256}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 52 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str811, ei_java}, - {-1}, -#line 217 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str813, ei_mac_romania}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, -#line 309 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str827, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 194 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str837, ei_cp1257}, - {-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}, -#line 305 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str866, ei_euc_jp}, - {-1}, {-1}, -#line 355 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str869, ei_johab}, - {-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}, -#line 270 "lib/aliases.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str921, ei_jisx0201} - }; - -static const struct alias * -aliases_lookup (register const char *str, register size_t len) -{ - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = aliases_hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = aliases[key].name; - if (o >= 0) - { - register const char *s = o + stringpool; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &aliases[key]; - } - } - } - return 0; -} diff --git a/jni/parted/libiconv/lib/aliases2.h b/jni/parted/libiconv/lib/aliases2.h deleted file mode 100755 index 6a65c42..0000000 --- a/jni/parted/libiconv/lib/aliases2.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 1999-2003, 2008, 2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -#ifdef USE_AIX -# if defined _AIX -# include "aliases_aix_sysaix.h" -# else -# include "aliases_aix.h" -# endif -#endif -#ifdef USE_OSF1 -# if defined __osf__ -# include "aliases_osf1_sysosf1.h" -# else -# include "aliases_osf1.h" -# endif -#endif -#ifdef USE_DOS -# include "aliases_dos.h" -#endif -#ifdef USE_ZOS -# include "aliases_zos.h" -#endif -#ifdef USE_EXTRA -# include "aliases_extra.h" -#endif diff --git a/jni/parted/libiconv/lib/aliases_aix.h b/jni/parted/libiconv/lib/aliases_aix.h deleted file mode 100755 index 5cbc77f..0000000 --- a/jni/parted/libiconv/lib/aliases_aix.h +++ /dev/null @@ -1,18 +0,0 @@ - S(aix_0, "CP856", ei_cp856 ) - S(aix_1, "CP922", ei_cp922 ) - S(aix_2, "CP943", ei_cp943 ) - S(aix_3, "CP1046", ei_cp1046 ) - S(aix_4, "CP1124", ei_cp1124 ) - S(aix_5, "CP1129", ei_cp1129 ) - S(aix_6, "CP1161", ei_cp1161 ) - S(aix_7, "IBM1161", ei_cp1161 ) - S(aix_8, "IBM-1161", ei_cp1161 ) - S(aix_9, "CSIBM1161", ei_cp1161 ) - S(aix_10, "CP1162", ei_cp1162 ) - S(aix_11, "IBM1162", ei_cp1162 ) - S(aix_12, "IBM-1162", ei_cp1162 ) - S(aix_13, "CSIBM1162", ei_cp1162 ) - S(aix_14, "CP1163", ei_cp1163 ) - S(aix_15, "IBM1163", ei_cp1163 ) - S(aix_16, "IBM-1163", ei_cp1163 ) - S(aix_17, "CSIBM1163", ei_cp1163 ) diff --git a/jni/parted/libiconv/lib/aliases_aix_sysaix.h b/jni/parted/libiconv/lib/aliases_aix_sysaix.h deleted file mode 100755 index b7dc584..0000000 --- a/jni/parted/libiconv/lib/aliases_aix_sysaix.h +++ /dev/null @@ -1,24 +0,0 @@ - S(aix_0, "CP856", ei_cp856 ) - S(aix_1, "IBM-856", ei_cp856 ) - S(aix_2, "CP922", ei_cp922 ) - S(aix_3, "IBM-922", ei_cp922 ) - S(aix_4, "CP943", ei_cp943 ) - S(aix_5, "IBM-943", ei_cp943 ) - S(aix_6, "CP1046", ei_cp1046 ) - S(aix_7, "IBM-1046", ei_cp1046 ) - S(aix_8, "CP1124", ei_cp1124 ) - S(aix_9, "IBM-1124", ei_cp1124 ) - S(aix_10, "CP1129", ei_cp1129 ) - S(aix_11, "IBM-1129", ei_cp1129 ) - S(aix_12, "CP1161", ei_cp1161 ) - S(aix_13, "IBM1161", ei_cp1161 ) - S(aix_14, "IBM-1161", ei_cp1161 ) - S(aix_15, "CSIBM1161", ei_cp1161 ) - S(aix_16, "CP1162", ei_cp1162 ) - S(aix_17, "IBM1162", ei_cp1162 ) - S(aix_18, "IBM-1162", ei_cp1162 ) - S(aix_19, "CSIBM1162", ei_cp1162 ) - S(aix_20, "CP1163", ei_cp1163 ) - S(aix_21, "IBM1163", ei_cp1163 ) - S(aix_22, "IBM-1163", ei_cp1163 ) - S(aix_23, "CSIBM1163", ei_cp1163 ) diff --git a/jni/parted/libiconv/lib/aliases_dos.h b/jni/parted/libiconv/lib/aliases_dos.h deleted file mode 100755 index 1dd4fcb..0000000 --- a/jni/parted/libiconv/lib/aliases_dos.h +++ /dev/null @@ -1,48 +0,0 @@ - S(dos_0, "CP437", ei_cp437 ) - S(dos_1, "IBM437", ei_cp437 ) - S(dos_2, "437", ei_cp437 ) - S(dos_3, "CSPC8CODEPAGE437", ei_cp437 ) - S(dos_4, "CP737", ei_cp737 ) - S(dos_5, "CP775", ei_cp775 ) - S(dos_6, "IBM775", ei_cp775 ) - S(dos_7, "CSPC775BALTIC", ei_cp775 ) - S(dos_8, "CP852", ei_cp852 ) - S(dos_9, "IBM852", ei_cp852 ) - S(dos_10, "852", ei_cp852 ) - S(dos_11, "CSPCP852", ei_cp852 ) - S(dos_12, "CP853", ei_cp853 ) - S(dos_13, "CP855", ei_cp855 ) - S(dos_14, "IBM855", ei_cp855 ) - S(dos_15, "855", ei_cp855 ) - S(dos_16, "CSIBM855", ei_cp855 ) - S(dos_17, "CP857", ei_cp857 ) - S(dos_18, "IBM857", ei_cp857 ) - S(dos_19, "857", ei_cp857 ) - S(dos_20, "CSIBM857", ei_cp857 ) - S(dos_21, "CP858", ei_cp858 ) - S(dos_22, "CP860", ei_cp860 ) - S(dos_23, "IBM860", ei_cp860 ) - S(dos_24, "860", ei_cp860 ) - S(dos_25, "CSIBM860", ei_cp860 ) - S(dos_26, "CP861", ei_cp861 ) - S(dos_27, "IBM861", ei_cp861 ) - S(dos_28, "861", ei_cp861 ) - S(dos_29, "CP-IS", ei_cp861 ) - S(dos_30, "CSIBM861", ei_cp861 ) - S(dos_31, "CP863", ei_cp863 ) - S(dos_32, "IBM863", ei_cp863 ) - S(dos_33, "863", ei_cp863 ) - S(dos_34, "CSIBM863", ei_cp863 ) - S(dos_35, "CP864", ei_cp864 ) - S(dos_36, "IBM864", ei_cp864 ) - S(dos_37, "CSIBM864", ei_cp864 ) - S(dos_38, "CP865", ei_cp865 ) - S(dos_39, "IBM865", ei_cp865 ) - S(dos_40, "865", ei_cp865 ) - S(dos_41, "CSIBM865", ei_cp865 ) - S(dos_42, "CP869", ei_cp869 ) - S(dos_43, "IBM869", ei_cp869 ) - S(dos_44, "869", ei_cp869 ) - S(dos_45, "CP-GR", ei_cp869 ) - S(dos_46, "CSIBM869", ei_cp869 ) - S(dos_47, "CP1125", ei_cp1125 ) diff --git a/jni/parted/libiconv/lib/aliases_extra.h b/jni/parted/libiconv/lib/aliases_extra.h deleted file mode 100755 index 9a54e16..0000000 --- a/jni/parted/libiconv/lib/aliases_extra.h +++ /dev/null @@ -1,12 +0,0 @@ - S(extra_0, "EUC-JISX0213", ei_euc_jisx0213 ) - S(extra_1, "EUC-JIS-2004", ei_euc_jisx0213 ) - S(extra_2, "SHIFT_JISX0213", ei_shift_jisx0213 ) - S(extra_3, "SHIFT_JIS-2004", ei_shift_jisx0213 ) - S(extra_4, "ISO-2022-JP-3", ei_iso2022_jp3 ) - S(extra_5, "ISO-2022-JP-2004", ei_iso2022_jp3 ) - S(extra_6, "BIG5-2003", ei_big5_2003 ) - S(extra_7, "TDS565", ei_tds565 ) - S(extra_8, "ISO-IR-230", ei_tds565 ) - S(extra_9, "ATARIST", ei_atarist ) - S(extra_10, "ATARI", ei_atarist ) - S(extra_11, "RISCOS-LATIN1", ei_riscos1 ) diff --git a/jni/parted/libiconv/lib/aliases_osf1.h b/jni/parted/libiconv/lib/aliases_osf1.h deleted file mode 100755 index 9e4f685..0000000 --- a/jni/parted/libiconv/lib/aliases_osf1.h +++ /dev/null @@ -1,2 +0,0 @@ - S(osf1_0, "DEC-KANJI", ei_dec_kanji ) - S(osf1_1, "DEC-HANYU", ei_dec_hanyu ) diff --git a/jni/parted/libiconv/lib/aliases_osf1_sysosf1.h b/jni/parted/libiconv/lib/aliases_osf1_sysosf1.h deleted file mode 100755 index b1f802d..0000000 --- a/jni/parted/libiconv/lib/aliases_osf1_sysosf1.h +++ /dev/null @@ -1,4 +0,0 @@ - S(osf1_0, "DEC-KANJI", ei_dec_kanji ) - S(osf1_1, "DECKANJI", ei_dec_kanji ) - S(osf1_2, "DEC-HANYU", ei_dec_hanyu ) - S(osf1_3, "DECHANYU", ei_dec_hanyu ) diff --git a/jni/parted/libiconv/lib/aliases_sysaix.h b/jni/parted/libiconv/lib/aliases_sysaix.h deleted file mode 100755 index 56e6d7e..0000000 --- a/jni/parted/libiconv/lib/aliases_sysaix.h +++ /dev/null @@ -1,1814 +0,0 @@ -/* ANSI-C code produced by gperf version 3.2 */ -/* Command-line: gperf -m 10 lib/aliases_sysaix.gperf */ -/* Computed positions: -k'1,3-11,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 1 "lib/aliases_sysaix.gperf" -struct alias { int name; unsigned int encoding_index; }; - -#define TOTAL_KEYWORDS 358 -#define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 5 -#define MAX_HASH_VALUE 1039 -/* maximum key range = 1035, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -aliases_hash (register const char *str, register size_t len) -{ - static const unsigned short asso_values[] = - { - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 0, 174, 1040, 44, 2, - 16, 28, 9, 13, 5, 188, 20, 0, 170, 1040, - 1040, 1040, 1040, 1040, 1040, 9, 191, 2, 19, 65, - 140, 65, 42, 88, 376, 199, 6, 206, 3, 0, - 52, 1040, 0, 11, 118, 97, 59, 189, 220, 13, - 4, 1040, 1040, 1040, 1040, 1, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040 - }; - register unsigned int hval = len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[10]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 10: - hval += asso_values[(unsigned char)str[9]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 9: - hval += asso_values[(unsigned char)str[8]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 8: - hval += asso_values[(unsigned char)str[7]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 7: - hval += asso_values[(unsigned char)str[6]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 6: - hval += asso_values[(unsigned char)str[5]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 5: - hval += asso_values[(unsigned char)str[4]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 4: - hval += asso_values[(unsigned char)str[3]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 3: - hval += asso_values[(unsigned char)str[2]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct stringpool_t - { - char stringpool_str5[sizeof("C99")]; - char stringpool_str7[sizeof("CN")]; - char stringpool_str10[sizeof("L1")]; - char stringpool_str13[sizeof("L6")]; - char stringpool_str15[sizeof("CHAR")]; - char stringpool_str16[sizeof("CP949")]; - char stringpool_str17[sizeof("L4")]; - char stringpool_str21[sizeof("L5")]; - char stringpool_str22[sizeof("R8")]; - char stringpool_str24[sizeof("L2")]; - char stringpool_str28[sizeof("L8")]; - char stringpool_str29[sizeof("CP819")]; - char stringpool_str33[sizeof("866")]; - char stringpool_str36[sizeof("L3")]; - char stringpool_str40[sizeof("CP154")]; - char stringpool_str42[sizeof("CP866")]; - char stringpool_str43[sizeof("CP1251")]; - char stringpool_str44[sizeof("CP1131")]; - char stringpool_str45[sizeof("CP936")]; - char stringpool_str47[sizeof("CP1361")]; - char stringpool_str48[sizeof("HZ")]; - char stringpool_str49[sizeof("CP1256")]; - char stringpool_str55[sizeof("862")]; - char stringpool_str57[sizeof("CP1254")]; - char stringpool_str64[sizeof("CP862")]; - char stringpool_str65[sizeof("CP1255")]; - char stringpool_str67[sizeof("CP932")]; - char stringpool_str71[sizeof("CP1252")]; - char stringpool_str79[sizeof("CP1258")]; - char stringpool_str80[sizeof("EUCCN")]; - char stringpool_str81[sizeof("EUC-CN")]; - char stringpool_str90[sizeof("PT154")]; - char stringpool_str95[sizeof("CP1253")]; - char stringpool_str96[sizeof("CP1133")]; - char stringpool_str97[sizeof("L10")]; - char stringpool_str101[sizeof("RK1048")]; - char stringpool_str102[sizeof("CP50221")]; - char stringpool_str104[sizeof("UHC")]; - char stringpool_str108[sizeof("CP950")]; - char stringpool_str110[sizeof("US")]; - char stringpool_str111[sizeof("850")]; - char stringpool_str124[sizeof("ISO646-CN")]; - char stringpool_str125[sizeof("SJIS")]; - char stringpool_str127[sizeof("CP1250")]; - char stringpool_str128[sizeof("CP850")]; - char stringpool_str131[sizeof("UCS-4")]; - char stringpool_str136[sizeof("CSUCS4")]; - char stringpool_str145[sizeof("UCS-2")]; - char stringpool_str146[sizeof("PTCP154")]; - char stringpool_str149[sizeof("GB2312")]; - char stringpool_str150[sizeof("ISO8859-9")]; - char stringpool_str151[sizeof("ISO-8859-9")]; - char stringpool_str152[sizeof("ISO_8859-9")]; - char stringpool_str154[sizeof("ISO8859-1")]; - char stringpool_str155[sizeof("ISO-8859-1")]; - char stringpool_str156[sizeof("ISO_8859-1")]; - char stringpool_str157[sizeof("ISO8859-11")]; - char stringpool_str158[sizeof("ISO-8859-11")]; - char stringpool_str159[sizeof("ISO_8859-11")]; - char stringpool_str160[sizeof("ISO8859-6")]; - char stringpool_str161[sizeof("ISO-8859-6")]; - char stringpool_str162[sizeof("ISO_8859-6")]; - char stringpool_str163[sizeof("ISO8859-16")]; - char stringpool_str164[sizeof("ISO-8859-16")]; - char stringpool_str165[sizeof("ISO_8859-16")]; - char stringpool_str167[sizeof("ISO_8859-16:2001")]; - char stringpool_str168[sizeof("ISO8859-4")]; - char stringpool_str169[sizeof("ISO-8859-4")]; - char stringpool_str170[sizeof("ISO_8859-4")]; - char stringpool_str171[sizeof("ISO8859-14")]; - char stringpool_str172[sizeof("ISO-8859-14")]; - char stringpool_str173[sizeof("ISO_8859-14")]; - char stringpool_str176[sizeof("ISO8859-5")]; - char stringpool_str177[sizeof("ISO-8859-5")]; - char stringpool_str178[sizeof("ISO_8859-5")]; - char stringpool_str179[sizeof("ISO8859-15")]; - char stringpool_str180[sizeof("ISO-8859-15")]; - char stringpool_str181[sizeof("ISO_8859-15")]; - char stringpool_str182[sizeof("ISO8859-2")]; - char stringpool_str183[sizeof("ISO-8859-2")]; - char stringpool_str184[sizeof("ISO_8859-2")]; - char stringpool_str187[sizeof("TCVN")]; - char stringpool_str188[sizeof("ISO-IR-199")]; - char stringpool_str189[sizeof("ISO_8859-14:1998")]; - char stringpool_str190[sizeof("ISO8859-8")]; - char stringpool_str191[sizeof("ISO-8859-8")]; - char stringpool_str192[sizeof("ISO_8859-8")]; - char stringpool_str193[sizeof("ISO_8859-15:1998")]; - char stringpool_str194[sizeof("ISO-IR-6")]; - char stringpool_str196[sizeof("L7")]; - char stringpool_str197[sizeof("ISO-IR-149")]; - char stringpool_str199[sizeof("ISO-2022-CN")]; - char stringpool_str201[sizeof("ISO-IR-159")]; - char stringpool_str202[sizeof("CYRILLIC")]; - char stringpool_str203[sizeof("ISO-IR-166")]; - char stringpool_str205[sizeof("ISO-IR-14")]; - char stringpool_str206[sizeof("ISO8859-3")]; - char stringpool_str207[sizeof("ISO-8859-3")]; - char stringpool_str208[sizeof("ISO_8859-3")]; - char stringpool_str209[sizeof("ISO8859-13")]; - char stringpool_str210[sizeof("ISO-8859-13")]; - char stringpool_str211[sizeof("ISO_8859-13")]; - char stringpool_str212[sizeof("CSISO2022CN")]; - char stringpool_str213[sizeof("MAC")]; - char stringpool_str214[sizeof("ISO-IR-126")]; - char stringpool_str215[sizeof("ISO-IR-144")]; - char stringpool_str219[sizeof("ISO-IR-165")]; - char stringpool_str220[sizeof("ISO_8859-10:1992")]; - char stringpool_str222[sizeof("LATIN-9")]; - char stringpool_str225[sizeof("LATIN1")]; - char stringpool_str226[sizeof("GB_1988-80")]; - char stringpool_str228[sizeof("ISO-IR-226")]; - char stringpool_str229[sizeof("CYRILLIC-ASIAN")]; - char stringpool_str231[sizeof("LATIN6")]; - char stringpool_str232[sizeof("ISO-IR-109")]; - char stringpool_str233[sizeof("CP874")]; - char stringpool_str235[sizeof("ISO646-US")]; - char stringpool_str236[sizeof("ISO-IR-101")]; - char stringpool_str237[sizeof("ISO-IR-148")]; - char stringpool_str238[sizeof("ISO-IR-58")]; - char stringpool_str239[sizeof("LATIN4")]; - char stringpool_str240[sizeof("MS-CYRL")]; - char stringpool_str241[sizeof("ISO8859-10")]; - char stringpool_str242[sizeof("ISO-8859-10")]; - char stringpool_str243[sizeof("ISO_8859-10")]; - char stringpool_str244[sizeof("TIS620")]; - char stringpool_str245[sizeof("TIS-620")]; - char stringpool_str246[sizeof("GB_2312-80")]; - char stringpool_str247[sizeof("LATIN5")]; - char stringpool_str248[sizeof("ELOT_928")]; - char stringpool_str249[sizeof("MS936")]; - char stringpool_str253[sizeof("LATIN2")]; - char stringpool_str254[sizeof("GB18030")]; - char stringpool_str255[sizeof("UTF-16")]; - char stringpool_str256[sizeof("ISO-IR-138")]; - char stringpool_str260[sizeof("UCS-4LE")]; - char stringpool_str261[sizeof("LATIN8")]; - char stringpool_str264[sizeof("ROMAN8")]; - char stringpool_str267[sizeof("UCS-2LE")]; - char stringpool_str268[sizeof("CSPTCP154")]; - char stringpool_str270[sizeof("GEORGIAN-ACADEMY")]; - char stringpool_str271[sizeof("EUCKR")]; - char stringpool_str272[sizeof("EUC-KR")]; - char stringpool_str274[sizeof("ISO-10646-UCS-4")]; - char stringpool_str275[sizeof("X0212")]; - char stringpool_str276[sizeof("KSC_5601")]; - char stringpool_str277[sizeof("LATIN3")]; - char stringpool_str278[sizeof("ISO-IR-110")]; - char stringpool_str280[sizeof("ASCII")]; - char stringpool_str281[sizeof("ISO-10646-UCS-2")]; - char stringpool_str282[sizeof("UTF-8")]; - char stringpool_str283[sizeof("KS_C_5601-1989")]; - char stringpool_str285[sizeof("KOREAN")]; - char stringpool_str286[sizeof("BIG5")]; - char stringpool_str287[sizeof("BIG-5")]; - char stringpool_str288[sizeof("UNICODE-1-1")]; - char stringpool_str289[sizeof("X0201")]; - char stringpool_str290[sizeof("TIS620-0")]; - char stringpool_str293[sizeof("CSUNICODE11")]; - char stringpool_str295[sizeof("CSASCII")]; - char stringpool_str301[sizeof("KZ-1048")]; - char stringpool_str302[sizeof("ISO-IR-203")]; - char stringpool_str303[sizeof("UTF-32")]; - char stringpool_str305[sizeof("MULELAO-1")]; - char stringpool_str306[sizeof("CHINESE")]; - char stringpool_str307[sizeof("ARABIC")]; - char stringpool_str308[sizeof("CSKZ1048")]; - char stringpool_str309[sizeof("HP-ROMAN8")]; - char stringpool_str310[sizeof("ECMA-114")]; - char stringpool_str312[sizeof("LATIN10")]; - char stringpool_str313[sizeof("KOI8-R")]; - char stringpool_str315[sizeof("GEORGIAN-PS")]; - char stringpool_str316[sizeof("CSKOI8R")]; - char stringpool_str318[sizeof("ISO-2022-CN-EXT")]; - char stringpool_str320[sizeof("ISO-IR-100")]; - char stringpool_str321[sizeof("IBM-921")]; - char stringpool_str322[sizeof("IBM819")]; - char stringpool_str325[sizeof("X0208")]; - char stringpool_str327[sizeof("ISO_8859-9:1989")]; - char stringpool_str332[sizeof("ECMA-118")]; - char stringpool_str335[sizeof("IBM866")]; - char stringpool_str338[sizeof("IBM-1131")]; - char stringpool_str340[sizeof("CSISOLATIN1")]; - char stringpool_str342[sizeof("VISCII")]; - char stringpool_str344[sizeof("CSGB2312")]; - char stringpool_str346[sizeof("CSISOLATIN6")]; - char stringpool_str347[sizeof("CSISOLATINCYRILLIC")]; - char stringpool_str350[sizeof("CSUNICODE")]; - char stringpool_str352[sizeof("CSISOLATINARABIC")]; - char stringpool_str354[sizeof("CSISOLATIN4")]; - char stringpool_str356[sizeof("ISO_8859-4:1988")]; - char stringpool_str357[sizeof("IBM862")]; - char stringpool_str360[sizeof("ISO_8859-5:1988")]; - char stringpool_str361[sizeof("IBM-932")]; - char stringpool_str362[sizeof("CSISOLATIN5")]; - char stringpool_str364[sizeof("CSHPROMAN8")]; - char stringpool_str365[sizeof("IBM-1252")]; - char stringpool_str367[sizeof("ISO_8859-8:1988")]; - char stringpool_str368[sizeof("CSISOLATIN2")]; - char stringpool_str372[sizeof("CSEUCKR")]; - char stringpool_str374[sizeof("STRK1048-2002")]; - char stringpool_str375[sizeof("ISO_8859-3:1988")]; - char stringpool_str376[sizeof("ISO-IR-179")]; - char stringpool_str378[sizeof("CSBIG5")]; - char stringpool_str379[sizeof("CN-BIG5")]; - char stringpool_str381[sizeof("ISO-CELTIC")]; - char stringpool_str386[sizeof("HZ-GB-2312")]; - char stringpool_str388[sizeof("UTF-16LE")]; - char stringpool_str390[sizeof("ISO-2022-KR")]; - char stringpool_str391[sizeof("US-ASCII")]; - char stringpool_str392[sizeof("CSISOLATIN3")]; - char stringpool_str403[sizeof("CSISO2022KR")]; - char stringpool_str406[sizeof("MS-EE")]; - char stringpool_str411[sizeof("UCS-4-INTERNAL")]; - char stringpool_str412[sizeof("MS-ANSI")]; - char stringpool_str413[sizeof("TCVN5712-1")]; - char stringpool_str415[sizeof("CP1257")]; - char stringpool_str416[sizeof("CP367")]; - char stringpool_str418[sizeof("UCS-2-INTERNAL")]; - char stringpool_str421[sizeof("IBM850")]; - char stringpool_str422[sizeof("IBM-850")]; - char stringpool_str424[sizeof("TCVN-5712")]; - char stringpool_str425[sizeof("UTF-32LE")]; - char stringpool_str426[sizeof("MACCYRILLIC")]; - char stringpool_str428[sizeof("TIS620.2529-1")]; - char stringpool_str429[sizeof("MACICELAND")]; - char stringpool_str430[sizeof("JP")]; - char stringpool_str434[sizeof("CSVISCII")]; - char stringpool_str437[sizeof("MACROMAN")]; - char stringpool_str440[sizeof("GREEK8")]; - char stringpool_str441[sizeof("VISCII1.1-1")]; - char stringpool_str445[sizeof("UCS-4BE")]; - char stringpool_str446[sizeof("IBM-CP1133")]; - char stringpool_str447[sizeof("ISO_646.IRV:1991")]; - char stringpool_str451[sizeof("MACCROATIAN")]; - char stringpool_str452[sizeof("UCS-2BE")]; - char stringpool_str453[sizeof("ARMSCII-8")]; - char stringpool_str454[sizeof("CN-GB")]; - char stringpool_str456[sizeof("WINDOWS-1251")]; - char stringpool_str457[sizeof("JAVA")]; - char stringpool_str459[sizeof("WINDOWS-1256")]; - char stringpool_str460[sizeof("WINDOWS-936")]; - char stringpool_str462[sizeof("UCS-4-SWAPPED")]; - char stringpool_str463[sizeof("WINDOWS-1254")]; - char stringpool_str466[sizeof("GBK")]; - char stringpool_str467[sizeof("WINDOWS-1255")]; - char stringpool_str468[sizeof("TIS620.2533-1")]; - char stringpool_str469[sizeof("UCS-2-SWAPPED")]; - char stringpool_str470[sizeof("WINDOWS-1252")]; - char stringpool_str471[sizeof("KS_C_5601-1987")]; - char stringpool_str472[sizeof("CN-GB-ISOIR165")]; - char stringpool_str474[sizeof("WINDOWS-1258")]; - char stringpool_str475[sizeof("IBM-EUCCN")]; - char stringpool_str476[sizeof("JIS_C6226-1983")]; - char stringpool_str480[sizeof("UNICODE-1-1-UTF-7")]; - char stringpool_str481[sizeof("CSKSC56011987")]; - char stringpool_str482[sizeof("WINDOWS-1253")]; - char stringpool_str483[sizeof("CSUNICODE11UTF7")]; - char stringpool_str484[sizeof("WCHAR_T")]; - char stringpool_str490[sizeof("JIS_C6220-1969-RO")]; - char stringpool_str493[sizeof("CSISO58GB231280")]; - char stringpool_str495[sizeof("ASMO-708")]; - char stringpool_str498[sizeof("WINDOWS-1250")]; - char stringpool_str507[sizeof("KOI8-U")]; - char stringpool_str508[sizeof("KOI8-RU")]; - char stringpool_str510[sizeof("TIS620.2533-0")]; - char stringpool_str511[sizeof("MS-HEBR")]; - char stringpool_str517[sizeof("ISO_8859-1:1987")]; - char stringpool_str518[sizeof("MACARABIC")]; - char stringpool_str520[sizeof("ISO_8859-6:1987")]; - char stringpool_str521[sizeof("MACINTOSH")]; - char stringpool_str525[sizeof("CSPC862LATINHEBREW")]; - char stringpool_str526[sizeof("ISO8859-7")]; - char stringpool_str527[sizeof("ISO-8859-7")]; - char stringpool_str528[sizeof("ISO_8859-7")]; - char stringpool_str530[sizeof("CSIBM866")]; - char stringpool_str531[sizeof("ISO_8859-2:1987")]; - char stringpool_str534[sizeof("CSMACINTOSH")]; - char stringpool_str538[sizeof("JIS0208")]; - char stringpool_str542[sizeof("MACROMANIA")]; - char stringpool_str543[sizeof("ISO_8859-7:2003")]; - char stringpool_str549[sizeof("KOI8-T")]; - char stringpool_str552[sizeof("EUCJP")]; - char stringpool_str553[sizeof("EUC-JP")]; - char stringpool_str554[sizeof("BIG5HKSCS")]; - char stringpool_str555[sizeof("BIG5-HKSCS")]; - char stringpool_str557[sizeof("MACCENTRALEUROPE")]; - char stringpool_str560[sizeof("MACTHAI")]; - char stringpool_str561[sizeof("ANSI_X3.4-1986")]; - char stringpool_str565[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; - char stringpool_str568[sizeof("EUCTW")]; - char stringpool_str569[sizeof("EUC-TW")]; - char stringpool_str572[sizeof("CSISOLATINHEBREW")]; - char stringpool_str573[sizeof("UTF-16BE")]; - char stringpool_str574[sizeof("ISO-IR-57")]; - char stringpool_str576[sizeof("ANSI_X3.4-1968")]; - char stringpool_str577[sizeof("ISO-IR-157")]; - char stringpool_str580[sizeof("ISO-IR-127")]; - char stringpool_str581[sizeof("ISO-IR-87")]; - char stringpool_str585[sizeof("CSPC850MULTILINGUAL")]; - char stringpool_str593[sizeof("CSISO57GB1988")]; - char stringpool_str596[sizeof("ISO646-JP")]; - char stringpool_str597[sizeof("LATIN7")]; - char stringpool_str598[sizeof("GREEK")]; - char stringpool_str604[sizeof("CSISOLATINGREEK")]; - char stringpool_str606[sizeof("CSISO14JISC6220RO")]; - char stringpool_str610[sizeof("UTF-32BE")]; - char stringpool_str613[sizeof("MS-ARAB")]; - char stringpool_str614[sizeof("TCVN5712-1:1993")]; - char stringpool_str618[sizeof("UTF-7")]; - char stringpool_str623[sizeof("ISO-2022-JP-1")]; - char stringpool_str633[sizeof("ISO-2022-JP-MS")]; - char stringpool_str637[sizeof("ISO-2022-JP-2")]; - char stringpool_str642[sizeof("WINDOWS-1257")]; - char stringpool_str647[sizeof("NEXTSTEP")]; - char stringpool_str648[sizeof("WINDOWS-874")]; - char stringpool_str649[sizeof("CSISO2022JP2")]; - char stringpool_str655[sizeof("CSISO159JISX02121990")]; - char stringpool_str666[sizeof("IBM-EUCKR")]; - char stringpool_str669[sizeof("CSEUCTW")]; - char stringpool_str671[sizeof("ISO-2022-JP")]; - char stringpool_str679[sizeof("UNICODELITTLE")]; - char stringpool_str680[sizeof("BIGFIVE")]; - char stringpool_str681[sizeof("BIG-FIVE")]; - char stringpool_str682[sizeof("HEBREW")]; - char stringpool_str683[sizeof("CSHALFWIDTHKATAKANA")]; - char stringpool_str684[sizeof("CSISO2022JP")]; - char stringpool_str690[sizeof("UNICODEBIG")]; - char stringpool_str703[sizeof("ISO_8859-7:1987")]; - char stringpool_str709[sizeof("IBM367")]; - char stringpool_str711[sizeof("JIS_X0212")]; - char stringpool_str719[sizeof("BIG5-HKSCS:1999")]; - char stringpool_str721[sizeof("BIG5-HKSCS:2001")]; - char stringpool_str725[sizeof("JIS_X0201")]; - char stringpool_str728[sizeof("BIG5-HKSCS:2004")]; - char stringpool_str733[sizeof("JISX0201-1976")]; - char stringpool_str739[sizeof("BIG5-HKSCS:2008")]; - char stringpool_str744[sizeof("MACUKRAINE")]; - char stringpool_str746[sizeof("JIS_X0212-1990")]; - char stringpool_str761[sizeof("JIS_X0208")]; - char stringpool_str776[sizeof("JIS_X0208-1983")]; - char stringpool_str792[sizeof("JIS_X0208-1990")]; - char stringpool_str807[sizeof("MS-GREEK")]; - char stringpool_str809[sizeof("MACGREEK")]; - char stringpool_str814[sizeof("JOHAB")]; - char stringpool_str815[sizeof("MACTURKISH")]; - char stringpool_str826[sizeof("MS-TURK")]; - char stringpool_str852[sizeof("SHIFT-JIS")]; - char stringpool_str853[sizeof("SHIFT_JIS")]; - char stringpool_str897[sizeof("CSSHIFTJIS")]; - char stringpool_str922[sizeof("JIS_X0212.1990-0")]; - char stringpool_str947[sizeof("IBM-EUCJP")]; - char stringpool_str958[sizeof("MACHEBREW")]; - char stringpool_str963[sizeof("IBM-EUCTW")]; - char stringpool_str978[sizeof("MS_KANJI")]; - char stringpool_str984[sizeof("CSEUCPKDFMTJAPANESE")]; - char stringpool_str1026[sizeof("WINBALTRIM")]; - char stringpool_str1039[sizeof("CSISO87JISX0208")]; - }; -static const struct stringpool_t stringpool_contents = - { - "C99", - "CN", - "L1", - "L6", - "CHAR", - "CP949", - "L4", - "L5", - "R8", - "L2", - "L8", - "CP819", - "866", - "L3", - "CP154", - "CP866", - "CP1251", - "CP1131", - "CP936", - "CP1361", - "HZ", - "CP1256", - "862", - "CP1254", - "CP862", - "CP1255", - "CP932", - "CP1252", - "CP1258", - "EUCCN", - "EUC-CN", - "PT154", - "CP1253", - "CP1133", - "L10", - "RK1048", - "CP50221", - "UHC", - "CP950", - "US", - "850", - "ISO646-CN", - "SJIS", - "CP1250", - "CP850", - "UCS-4", - "CSUCS4", - "UCS-2", - "PTCP154", - "GB2312", - "ISO8859-9", - "ISO-8859-9", - "ISO_8859-9", - "ISO8859-1", - "ISO-8859-1", - "ISO_8859-1", - "ISO8859-11", - "ISO-8859-11", - "ISO_8859-11", - "ISO8859-6", - "ISO-8859-6", - "ISO_8859-6", - "ISO8859-16", - "ISO-8859-16", - "ISO_8859-16", - "ISO_8859-16:2001", - "ISO8859-4", - "ISO-8859-4", - "ISO_8859-4", - "ISO8859-14", - "ISO-8859-14", - "ISO_8859-14", - "ISO8859-5", - "ISO-8859-5", - "ISO_8859-5", - "ISO8859-15", - "ISO-8859-15", - "ISO_8859-15", - "ISO8859-2", - "ISO-8859-2", - "ISO_8859-2", - "TCVN", - "ISO-IR-199", - "ISO_8859-14:1998", - "ISO8859-8", - "ISO-8859-8", - "ISO_8859-8", - "ISO_8859-15:1998", - "ISO-IR-6", - "L7", - "ISO-IR-149", - "ISO-2022-CN", - "ISO-IR-159", - "CYRILLIC", - "ISO-IR-166", - "ISO-IR-14", - "ISO8859-3", - "ISO-8859-3", - "ISO_8859-3", - "ISO8859-13", - "ISO-8859-13", - "ISO_8859-13", - "CSISO2022CN", - "MAC", - "ISO-IR-126", - "ISO-IR-144", - "ISO-IR-165", - "ISO_8859-10:1992", - "LATIN-9", - "LATIN1", - "GB_1988-80", - "ISO-IR-226", - "CYRILLIC-ASIAN", - "LATIN6", - "ISO-IR-109", - "CP874", - "ISO646-US", - "ISO-IR-101", - "ISO-IR-148", - "ISO-IR-58", - "LATIN4", - "MS-CYRL", - "ISO8859-10", - "ISO-8859-10", - "ISO_8859-10", - "TIS620", - "TIS-620", - "GB_2312-80", - "LATIN5", - "ELOT_928", - "MS936", - "LATIN2", - "GB18030", - "UTF-16", - "ISO-IR-138", - "UCS-4LE", - "LATIN8", - "ROMAN8", - "UCS-2LE", - "CSPTCP154", - "GEORGIAN-ACADEMY", - "EUCKR", - "EUC-KR", - "ISO-10646-UCS-4", - "X0212", - "KSC_5601", - "LATIN3", - "ISO-IR-110", - "ASCII", - "ISO-10646-UCS-2", - "UTF-8", - "KS_C_5601-1989", - "KOREAN", - "BIG5", - "BIG-5", - "UNICODE-1-1", - "X0201", - "TIS620-0", - "CSUNICODE11", - "CSASCII", - "KZ-1048", - "ISO-IR-203", - "UTF-32", - "MULELAO-1", - "CHINESE", - "ARABIC", - "CSKZ1048", - "HP-ROMAN8", - "ECMA-114", - "LATIN10", - "KOI8-R", - "GEORGIAN-PS", - "CSKOI8R", - "ISO-2022-CN-EXT", - "ISO-IR-100", - "IBM-921", - "IBM819", - "X0208", - "ISO_8859-9:1989", - "ECMA-118", - "IBM866", - "IBM-1131", - "CSISOLATIN1", - "VISCII", - "CSGB2312", - "CSISOLATIN6", - "CSISOLATINCYRILLIC", - "CSUNICODE", - "CSISOLATINARABIC", - "CSISOLATIN4", - "ISO_8859-4:1988", - "IBM862", - "ISO_8859-5:1988", - "IBM-932", - "CSISOLATIN5", - "CSHPROMAN8", - "IBM-1252", - "ISO_8859-8:1988", - "CSISOLATIN2", - "CSEUCKR", - "STRK1048-2002", - "ISO_8859-3:1988", - "ISO-IR-179", - "CSBIG5", - "CN-BIG5", - "ISO-CELTIC", - "HZ-GB-2312", - "UTF-16LE", - "ISO-2022-KR", - "US-ASCII", - "CSISOLATIN3", - "CSISO2022KR", - "MS-EE", - "UCS-4-INTERNAL", - "MS-ANSI", - "TCVN5712-1", - "CP1257", - "CP367", - "UCS-2-INTERNAL", - "IBM850", - "IBM-850", - "TCVN-5712", - "UTF-32LE", - "MACCYRILLIC", - "TIS620.2529-1", - "MACICELAND", - "JP", - "CSVISCII", - "MACROMAN", - "GREEK8", - "VISCII1.1-1", - "UCS-4BE", - "IBM-CP1133", - "ISO_646.IRV:1991", - "MACCROATIAN", - "UCS-2BE", - "ARMSCII-8", - "CN-GB", - "WINDOWS-1251", - "JAVA", - "WINDOWS-1256", - "WINDOWS-936", - "UCS-4-SWAPPED", - "WINDOWS-1254", - "GBK", - "WINDOWS-1255", - "TIS620.2533-1", - "UCS-2-SWAPPED", - "WINDOWS-1252", - "KS_C_5601-1987", - "CN-GB-ISOIR165", - "WINDOWS-1258", - "IBM-EUCCN", - "JIS_C6226-1983", - "UNICODE-1-1-UTF-7", - "CSKSC56011987", - "WINDOWS-1253", - "CSUNICODE11UTF7", - "WCHAR_T", - "JIS_C6220-1969-RO", - "CSISO58GB231280", - "ASMO-708", - "WINDOWS-1250", - "KOI8-U", - "KOI8-RU", - "TIS620.2533-0", - "MS-HEBR", - "ISO_8859-1:1987", - "MACARABIC", - "ISO_8859-6:1987", - "MACINTOSH", - "CSPC862LATINHEBREW", - "ISO8859-7", - "ISO-8859-7", - "ISO_8859-7", - "CSIBM866", - "ISO_8859-2:1987", - "CSMACINTOSH", - "JIS0208", - "MACROMANIA", - "ISO_8859-7:2003", - "KOI8-T", - "EUCJP", - "EUC-JP", - "BIG5HKSCS", - "BIG5-HKSCS", - "MACCENTRALEUROPE", - "MACTHAI", - "ANSI_X3.4-1986", - "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", - "EUCTW", - "EUC-TW", - "CSISOLATINHEBREW", - "UTF-16BE", - "ISO-IR-57", - "ANSI_X3.4-1968", - "ISO-IR-157", - "ISO-IR-127", - "ISO-IR-87", - "CSPC850MULTILINGUAL", - "CSISO57GB1988", - "ISO646-JP", - "LATIN7", - "GREEK", - "CSISOLATINGREEK", - "CSISO14JISC6220RO", - "UTF-32BE", - "MS-ARAB", - "TCVN5712-1:1993", - "UTF-7", - "ISO-2022-JP-1", - "ISO-2022-JP-MS", - "ISO-2022-JP-2", - "WINDOWS-1257", - "NEXTSTEP", - "WINDOWS-874", - "CSISO2022JP2", - "CSISO159JISX02121990", - "IBM-EUCKR", - "CSEUCTW", - "ISO-2022-JP", - "UNICODELITTLE", - "BIGFIVE", - "BIG-FIVE", - "HEBREW", - "CSHALFWIDTHKATAKANA", - "CSISO2022JP", - "UNICODEBIG", - "ISO_8859-7:1987", - "IBM367", - "JIS_X0212", - "BIG5-HKSCS:1999", - "BIG5-HKSCS:2001", - "JIS_X0201", - "BIG5-HKSCS:2004", - "JISX0201-1976", - "BIG5-HKSCS:2008", - "MACUKRAINE", - "JIS_X0212-1990", - "JIS_X0208", - "JIS_X0208-1983", - "JIS_X0208-1990", - "MS-GREEK", - "MACGREEK", - "JOHAB", - "MACTURKISH", - "MS-TURK", - "SHIFT-JIS", - "SHIFT_JIS", - "CSSHIFTJIS", - "JIS_X0212.1990-0", - "IBM-EUCJP", - "MACHEBREW", - "IBM-EUCTW", - "MS_KANJI", - "CSEUCPKDFMTJAPANESE", - "WINBALTRIM", - "CSISO87JISX0208" - }; -#define stringpool ((const char *) &stringpool_contents) - -static const struct alias aliases[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 51 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str5, ei_c99}, - {-1}, -#line 292 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str7, ei_iso646_cn}, - {-1}, {-1}, -#line 60 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str10, ei_iso8859_1}, - {-1}, {-1}, -#line 134 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str13, ei_iso8859_10}, - {-1}, -#line 368 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, ei_local_char}, -#line 362 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str16, ei_cp949}, -#line 84 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_4}, - {-1}, {-1}, {-1}, -#line 126 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str21, ei_iso8859_9}, -#line 231 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, ei_hp_roman8}, - {-1}, -#line 68 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str24, ei_iso8859_2}, - {-1}, {-1}, {-1}, -#line 152 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, ei_iso8859_14}, -#line 57 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, ei_iso8859_1}, - {-1}, {-1}, {-1}, -#line 210 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, ei_cp866}, - {-1}, {-1}, -#line 76 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, ei_iso8859_3}, - {-1}, {-1}, {-1}, -#line 240 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str40, ei_pt154}, - {-1}, -#line 208 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str42, ei_cp866}, -#line 175 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, ei_cp1251}, -#line 212 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str44, ei_cp1131}, -#line 332 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str45, ei_cp936}, - {-1}, -#line 365 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str47, ei_johab}, -#line 339 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, ei_hz}, -#line 191 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, ei_cp1256}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 206 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str55, ei_cp862}, - {-1}, -#line 185 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str57, ei_cp1254}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 204 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, ei_cp862}, -#line 188 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str65, ei_cp1255}, - {-1}, -#line 316 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str67, ei_cp932}, - {-1}, {-1}, {-1}, -#line 178 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str71, ei_cp1252}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 197 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str79, ei_cp1258}, -#line 326 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str80, ei_euc_cn}, -#line 325 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str81, ei_euc_cn}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 238 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str90, ei_pt154}, - {-1}, {-1}, {-1}, {-1}, -#line 182 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str95, ei_cp1253}, -#line 248 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str96, ei_cp1133}, -#line 166 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str97, ei_iso8859_16}, - {-1}, {-1}, {-1}, -#line 243 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str101, ei_rk1048}, -#line 324 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str102, ei_iso2022_jpms}, - {-1}, -#line 363 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str104, ei_cp949}, - {-1}, {-1}, {-1}, -#line 351 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str108, ei_cp950}, - {-1}, -#line 21 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str110, ei_ascii}, -#line 201 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str111, ei_cp850}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, -#line 290 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str124, ei_iso646_cn}, -#line 313 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str125, ei_sjis}, - {-1}, -#line 172 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str127, ei_cp1250}, -#line 199 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str128, ei_cp850}, - {-1}, {-1}, -#line 33 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str131, ei_ucs4}, - {-1}, {-1}, {-1}, {-1}, -#line 35 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str136, ei_ucs4}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 24 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str145, ei_ucs2}, -#line 239 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str146, ei_pt154}, - {-1}, {-1}, -#line 327 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str149, ei_euc_cn}, -#line 128 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str150, ei_iso8859_9}, -#line 121 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str151, ei_iso8859_9}, -#line 122 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_9}, - {-1}, -#line 62 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_1}, -#line 53 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_1}, -#line 54 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_1}, -#line 139 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_11}, -#line 137 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_11}, -#line 138 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str159, ei_iso8859_11}, -#line 102 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_6}, -#line 94 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_6}, -#line 95 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_6}, -#line 167 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_16}, -#line 161 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str164, ei_iso8859_16}, -#line 162 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str165, ei_iso8859_16}, - {-1}, -#line 163 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str167, ei_iso8859_16}, -#line 86 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str168, ei_iso8859_4}, -#line 79 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str169, ei_iso8859_4}, -#line 80 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_4}, -#line 154 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str171, ei_iso8859_14}, -#line 147 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_14}, -#line 148 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str173, ei_iso8859_14}, - {-1}, {-1}, -#line 93 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str176, ei_iso8859_5}, -#line 87 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str177, ei_iso8859_5}, -#line 88 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_5}, -#line 160 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_15}, -#line 155 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str180, ei_iso8859_15}, -#line 156 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str181, ei_iso8859_15}, -#line 70 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str182, ei_iso8859_2}, -#line 63 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str183, ei_iso8859_2}, -#line 64 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str184, ei_iso8859_2}, - {-1}, {-1}, -#line 262 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str187, ei_tcvn}, -#line 150 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str188, ei_iso8859_14}, -#line 149 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str189, ei_iso8859_14}, -#line 120 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str190, ei_iso8859_8}, -#line 114 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_8}, -#line 115 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str192, ei_iso8859_8}, -#line 157 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str193, ei_iso8859_15}, -#line 16 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str194, ei_ascii}, - {-1}, -#line 144 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str196, ei_iso8859_13}, -#line 303 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str197, ei_ksc5601}, - {-1}, -#line 336 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str199, ei_iso2022_cn}, - {-1}, -#line 287 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str201, ei_jisx0212}, -#line 91 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str202, ei_iso8859_5}, -#line 256 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str203, ei_tis620}, - {-1}, -#line 268 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str205, ei_iso646_jp}, -#line 78 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str206, ei_iso8859_3}, -#line 71 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str207, ei_iso8859_3}, -#line 72 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str208, ei_iso8859_3}, -#line 145 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_13}, -#line 140 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str210, ei_iso8859_13}, -#line 141 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str211, ei_iso8859_13}, -#line 337 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str212, ei_iso2022_cn}, -#line 216 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str213, ei_mac_roman}, -#line 107 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str214, ei_iso8859_7}, -#line 90 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str215, ei_iso8859_5}, - {-1}, {-1}, {-1}, -#line 298 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str219, ei_isoir165}, -#line 131 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str220, ei_iso8859_10}, - {-1}, -#line 159 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str222, ei_iso8859_15}, - {-1}, {-1}, -#line 59 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str225, ei_iso8859_1}, -#line 289 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str226, ei_iso646_cn}, - {-1}, -#line 164 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str228, ei_iso8859_16}, -#line 241 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str229, ei_pt154}, - {-1}, -#line 133 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str231, ei_iso8859_10}, -#line 74 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_3}, -#line 257 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str233, ei_cp874}, - {-1}, -#line 14 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str235, ei_ascii}, -#line 66 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_2}, -#line 124 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str237, ei_iso8859_9}, -#line 295 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str238, ei_gb2312}, -#line 83 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str239, ei_iso8859_4}, -#line 177 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str240, ei_cp1251}, -#line 136 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str241, ei_iso8859_10}, -#line 129 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str242, ei_iso8859_10}, -#line 130 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str243, ei_iso8859_10}, -#line 251 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str244, ei_tis620}, -#line 250 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str245, ei_tis620}, -#line 294 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str246, ei_gb2312}, -#line 125 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str247, ei_iso8859_9}, -#line 109 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str248, ei_iso8859_7}, -#line 333 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str249, ei_cp936}, - {-1}, {-1}, {-1}, -#line 67 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str253, ei_iso8859_2}, -#line 335 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str254, ei_gb18030}, -#line 38 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str255, ei_utf16}, -#line 117 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str256, ei_iso8859_8}, - {-1}, {-1}, {-1}, -#line 37 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str260, ei_ucs4le}, -#line 151 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str261, ei_iso8859_14}, - {-1}, {-1}, -#line 230 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str264, ei_hp_roman8}, - {-1}, {-1}, -#line 31 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str267, ei_ucs2le}, -#line 242 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str268, ei_pt154}, - {-1}, -#line 235 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str270, ei_georgian_academy}, -#line 359 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str271, ei_euc_kr}, -#line 358 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str272, ei_euc_kr}, - {-1}, -#line 34 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str274, ei_ucs4}, -#line 286 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str275, ei_jisx0212}, -#line 300 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str276, ei_ksc5601}, -#line 75 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str277, ei_iso8859_3}, -#line 82 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str278, ei_iso8859_4}, - {-1}, -#line 13 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str280, ei_ascii}, -#line 25 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str281, ei_ucs2}, -#line 23 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str282, ei_utf8}, -#line 302 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str283, ei_ksc5601}, - {-1}, -#line 305 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str285, ei_ksc5601}, -#line 345 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str286, ei_ces_big5}, -#line 346 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str287, ei_ces_big5}, -#line 29 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str288, ei_ucs2be}, -#line 273 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str289, ei_jisx0201}, -#line 252 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str290, ei_tis620}, - {-1}, {-1}, -#line 30 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str293, ei_ucs2be}, - {-1}, -#line 22 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str295, ei_ascii}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 245 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str301, ei_rk1048}, -#line 158 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str302, ei_iso8859_15}, -#line 41 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str303, ei_utf32}, - {-1}, -#line 247 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str305, ei_mulelao}, -#line 297 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str306, ei_gb2312}, -#line 100 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str307, ei_iso8859_6}, -#line 246 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str308, ei_rk1048}, -#line 229 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str309, ei_hp_roman8}, -#line 98 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str310, ei_iso8859_6}, - {-1}, -#line 165 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str312, ei_iso8859_16}, -#line 168 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str313, ei_koi8_r}, - {-1}, -#line 236 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str315, ei_georgian_ps}, -#line 169 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str316, ei_koi8_r}, - {-1}, -#line 338 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str318, ei_iso2022_cn_ext}, - {-1}, -#line 56 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str320, ei_iso8859_1}, -#line 146 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str321, ei_iso8859_13}, -#line 58 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str322, ei_iso8859_1}, - {-1}, {-1}, -#line 279 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str325, ei_jisx0208}, - {-1}, -#line 123 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str327, ei_iso8859_9}, - {-1}, {-1}, {-1}, {-1}, -#line 108 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str332, ei_iso8859_7}, - {-1}, {-1}, -#line 209 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str335, ei_cp866}, - {-1}, {-1}, -#line 213 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str338, ei_cp1131}, - {-1}, -#line 61 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str340, ei_iso8859_1}, - {-1}, -#line 259 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str342, ei_viscii}, - {-1}, -#line 329 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str344, ei_euc_cn}, - {-1}, -#line 135 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str346, ei_iso8859_10}, -#line 92 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str347, ei_iso8859_5}, - {-1}, {-1}, -#line 26 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str350, ei_ucs2}, - {-1}, -#line 101 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str352, ei_iso8859_6}, - {-1}, -#line 85 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str354, ei_iso8859_4}, - {-1}, -#line 81 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str356, ei_iso8859_4}, -#line 205 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str357, ei_cp862}, - {-1}, {-1}, -#line 89 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str360, ei_iso8859_5}, -#line 317 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str361, ei_cp932}, -#line 127 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str362, ei_iso8859_9}, - {-1}, -#line 232 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str364, ei_hp_roman8}, -#line 181 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str365, ei_cp1252}, - {-1}, -#line 116 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str367, ei_iso8859_8}, -#line 69 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str368, ei_iso8859_2}, - {-1}, {-1}, {-1}, -#line 360 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str372, ei_euc_kr}, - {-1}, -#line 244 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str374, ei_rk1048}, -#line 73 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str375, ei_iso8859_3}, -#line 142 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str376, ei_iso8859_13}, - {-1}, -#line 350 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str378, ei_ces_big5}, -#line 349 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str379, ei_ces_big5}, - {-1}, -#line 153 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str381, ei_iso8859_14}, - {-1}, {-1}, {-1}, {-1}, -#line 340 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str386, ei_hz}, - {-1}, -#line 40 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str388, ei_utf16le}, - {-1}, -#line 366 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str390, ei_iso2022_kr}, -#line 12 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str391, ei_ascii}, -#line 77 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str392, ei_iso8859_3}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 367 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str403, ei_iso2022_kr}, - {-1}, {-1}, -#line 174 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str406, ei_cp1250}, - {-1}, {-1}, {-1}, {-1}, -#line 49 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str411, ei_ucs4internal}, -#line 180 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str412, ei_cp1252}, -#line 264 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str413, ei_tcvn}, - {-1}, -#line 194 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str415, ei_cp1257}, -#line 19 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str416, ei_ascii}, - {-1}, -#line 47 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str418, ei_ucs2internal}, - {-1}, {-1}, -#line 200 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str421, ei_cp850}, -#line 203 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str422, ei_cp850}, - {-1}, -#line 263 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str424, ei_tcvn}, -#line 43 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str425, ei_utf32le}, -#line 222 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str426, ei_mac_cyrillic}, - {-1}, -#line 253 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str428, ei_tis620}, -#line 219 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str429, ei_mac_iceland}, -#line 269 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str430, ei_iso646_jp}, - {-1}, {-1}, {-1}, -#line 261 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str434, ei_viscii}, - {-1}, {-1}, -#line 214 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str437, ei_mac_roman}, - {-1}, {-1}, -#line 110 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str440, ei_iso8859_7}, -#line 260 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str441, ei_viscii}, - {-1}, {-1}, {-1}, -#line 36 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str445, ei_ucs4be}, -#line 249 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str446, ei_cp1133}, -#line 15 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str447, ei_ascii}, - {-1}, {-1}, {-1}, -#line 220 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str451, ei_mac_croatian}, -#line 27 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str452, ei_ucs2be}, -#line 234 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str453, ei_armscii_8}, -#line 328 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str454, ei_euc_cn}, - {-1}, -#line 176 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str456, ei_cp1251}, -#line 52 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str457, ei_java}, - {-1}, -#line 192 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str459, ei_cp1256}, -#line 334 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str460, ei_cp936}, - {-1}, -#line 50 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str462, ei_ucs4swapped}, -#line 186 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str463, ei_cp1254}, - {-1}, {-1}, -#line 331 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str466, ei_ces_gbk}, -#line 189 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str467, ei_cp1255}, -#line 255 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str468, ei_tis620}, -#line 48 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str469, ei_ucs2swapped}, -#line 179 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str470, ei_cp1252}, -#line 301 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str471, ei_ksc5601}, -#line 299 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str472, ei_isoir165}, - {-1}, -#line 198 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str474, ei_cp1258}, -#line 330 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str475, ei_euc_cn}, -#line 281 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str476, ei_jisx0208}, - {-1}, {-1}, {-1}, -#line 45 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str480, ei_utf7}, -#line 304 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str481, ei_ksc5601}, -#line 183 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str482, ei_cp1253}, -#line 46 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str483, ei_utf7}, -#line 369 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str484, ei_local_wchar_t}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 266 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str490, ei_iso646_jp}, - {-1}, {-1}, -#line 296 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str493, ei_gb2312}, - {-1}, -#line 99 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str495, ei_iso8859_6}, - {-1}, {-1}, -#line 173 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str498, ei_cp1250}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 170 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str507, ei_koi8_u}, -#line 171 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str508, ei_koi8_ru}, - {-1}, -#line 254 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str510, ei_tis620}, -#line 190 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str511, ei_cp1255}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 55 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str517, ei_iso8859_1}, -#line 227 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str518, ei_mac_arabic}, - {-1}, -#line 96 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str520, ei_iso8859_6}, -#line 215 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str521, ei_mac_roman}, - {-1}, {-1}, {-1}, -#line 207 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str525, ei_cp862}, -#line 113 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str526, ei_iso8859_7}, -#line 103 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str527, ei_iso8859_7}, -#line 104 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str528, ei_iso8859_7}, - {-1}, -#line 211 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str530, ei_cp866}, -#line 65 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str531, ei_iso8859_2}, - {-1}, {-1}, -#line 217 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str534, ei_mac_roman}, - {-1}, {-1}, {-1}, -#line 278 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str538, ei_jisx0208}, - {-1}, {-1}, {-1}, -#line 221 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str542, ei_mac_romania}, -#line 106 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str543, ei_iso8859_7}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 237 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str549, ei_koi8_t}, - {-1}, {-1}, -#line 307 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str552, ei_euc_jp}, -#line 306 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str553, ei_euc_jp}, -#line 356 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str554, ei_big5hkscs2008}, -#line 355 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str555, ei_big5hkscs2008}, - {-1}, -#line 218 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str557, ei_mac_centraleurope}, - {-1}, {-1}, -#line 228 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str560, ei_mac_thai}, -#line 18 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str561, ei_ascii}, - {-1}, {-1}, {-1}, -#line 308 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str565, ei_euc_jp}, - {-1}, {-1}, -#line 342 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str568, ei_euc_tw}, -#line 341 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str569, ei_euc_tw}, - {-1}, {-1}, -#line 119 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str572, ei_iso8859_8}, -#line 39 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str573, ei_utf16be}, -#line 291 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str574, ei_iso646_cn}, - {-1}, -#line 17 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str576, ei_ascii}, -#line 132 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str577, ei_iso8859_10}, - {-1}, {-1}, -#line 97 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str580, ei_iso8859_6}, -#line 280 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str581, ei_jisx0208}, - {-1}, {-1}, {-1}, -#line 202 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str585, ei_cp850}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 293 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str593, ei_iso646_cn}, - {-1}, {-1}, -#line 267 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str596, ei_iso646_jp}, -#line 143 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str597, ei_iso8859_13}, -#line 111 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str598, ei_iso8859_7}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 112 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str604, ei_iso8859_7}, - {-1}, -#line 270 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str606, ei_iso646_jp}, - {-1}, {-1}, {-1}, -#line 42 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str610, ei_utf32be}, - {-1}, {-1}, -#line 193 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str613, ei_cp1256}, -#line 265 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str614, ei_tcvn}, - {-1}, {-1}, {-1}, -#line 44 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str618, ei_utf7}, - {-1}, {-1}, {-1}, {-1}, -#line 320 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str623, ei_iso2022_jp1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 323 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str633, ei_iso2022_jpms}, - {-1}, {-1}, {-1}, -#line 321 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str637, ei_iso2022_jp2}, - {-1}, {-1}, {-1}, {-1}, -#line 195 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str642, ei_cp1257}, - {-1}, {-1}, {-1}, {-1}, -#line 233 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str647, ei_nextstep}, -#line 258 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str648, ei_cp874}, -#line 322 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str649, ei_iso2022_jp2}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 288 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str655, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 361 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str666, ei_euc_kr}, - {-1}, {-1}, -#line 343 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str669, ei_euc_tw}, - {-1}, -#line 318 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str671, ei_iso2022_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 32 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str679, ei_ucs2le}, -#line 348 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str680, ei_ces_big5}, -#line 347 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str681, ei_ces_big5}, -#line 118 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str682, ei_iso8859_8}, -#line 274 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str683, ei_jisx0201}, -#line 319 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str684, ei_iso2022_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 28 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str690, ei_ucs2be}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, -#line 105 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str703, ei_iso8859_7}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 20 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str709, ei_ascii}, - {-1}, -#line 283 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str711, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 352 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str719, ei_big5hkscs1999}, - {-1}, -#line 353 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str721, ei_big5hkscs2001}, - {-1}, {-1}, {-1}, -#line 271 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str725, ei_jisx0201}, - {-1}, {-1}, -#line 354 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str728, ei_big5hkscs2004}, - {-1}, {-1}, {-1}, {-1}, -#line 272 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str733, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 357 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str739, ei_big5hkscs2008}, - {-1}, {-1}, {-1}, {-1}, -#line 223 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str744, ei_mac_ukraine}, - {-1}, -#line 285 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str746, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 275 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str761, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 276 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str776, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 277 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str792, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 184 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str807, ei_cp1253}, - {-1}, -#line 224 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str809, ei_mac_greek}, - {-1}, {-1}, {-1}, {-1}, -#line 364 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str814, ei_johab}, -#line 225 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str815, ei_mac_turkish}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 187 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str826, ei_cp1254}, - {-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}, -#line 312 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str852, ei_sjis}, -#line 311 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str853, ei_sjis}, - {-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}, -#line 315 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str897, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 284 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str922, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 310 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str947, ei_euc_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 226 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str958, ei_mac_hebrew}, - {-1}, {-1}, {-1}, {-1}, -#line 344 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str963, ei_euc_tw}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 314 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str978, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 309 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str984, ei_euc_jp}, - {-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}, -#line 196 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str1026, ei_cp1257}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, -#line 282 "lib/aliases_sysaix.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str1039, ei_jisx0208} - }; - -static const struct alias * -aliases_lookup (register const char *str, register size_t len) -{ - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = aliases_hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = aliases[key].name; - if (o >= 0) - { - register const char *s = o + stringpool; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &aliases[key]; - } - } - } - return 0; -} diff --git a/jni/parted/libiconv/lib/aliases_syshpux.h b/jni/parted/libiconv/lib/aliases_syshpux.h deleted file mode 100755 index b54cc7c..0000000 --- a/jni/parted/libiconv/lib/aliases_syshpux.h +++ /dev/null @@ -1,1819 +0,0 @@ -/* ANSI-C code produced by gperf version 3.2 */ -/* Command-line: gperf -m 10 lib/aliases_syshpux.gperf */ -/* Computed positions: -k'1,3-11,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 1 "lib/aliases_syshpux.gperf" -struct alias { int name; unsigned int encoding_index; }; - -#define TOTAL_KEYWORDS 359 -#define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 19 -#define MAX_HASH_VALUE 1033 -/* maximum key range = 1015, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -aliases_hash (register const char *str, register size_t len) -{ - static const unsigned short asso_values[] = - { - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 2, 22, 1034, 56, 4, - 36, 62, 23, 18, 11, 100, 30, 3, 115, 1034, - 1034, 1034, 1034, 1034, 1034, 62, 170, 101, 3, 35, - 78, 78, 169, 3, 375, 55, 16, 149, 18, 8, - 3, 1034, 2, 4, 161, 210, 136, 158, 191, 6, - 5, 1034, 1034, 1034, 1034, 3, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034 - }; - register unsigned int hval = len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[10]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 10: - hval += asso_values[(unsigned char)str[9]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 9: - hval += asso_values[(unsigned char)str[8]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 8: - hval += asso_values[(unsigned char)str[7]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 7: - hval += asso_values[(unsigned char)str[6]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 6: - hval += asso_values[(unsigned char)str[5]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 5: - hval += asso_values[(unsigned char)str[4]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 4: - hval += asso_values[(unsigned char)str[3]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 3: - hval += asso_values[(unsigned char)str[2]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct stringpool_t - { - char stringpool_str19[sizeof("SJIS")]; - char stringpool_str22[sizeof("L1")]; - char stringpool_str29[sizeof("L6")]; - char stringpool_str34[sizeof("R8")]; - char stringpool_str36[sizeof("L5")]; - char stringpool_str41[sizeof("L4")]; - char stringpool_str43[sizeof("ISO-IR-199")]; - char stringpool_str48[sizeof("L8")]; - char stringpool_str50[sizeof("ISO-IR-6")]; - char stringpool_str54[sizeof("L2")]; - char stringpool_str55[sizeof("866")]; - char stringpool_str58[sizeof("ISO-IR-159")]; - char stringpool_str63[sizeof("ISO-IR-149")]; - char stringpool_str67[sizeof("ISO-IR-166")]; - char stringpool_str76[sizeof("PT154")]; - char stringpool_str79[sizeof("ISO-IR-14")]; - char stringpool_str80[sizeof("L3")]; - char stringpool_str81[sizeof("ISO-IR-165")]; - char stringpool_str92[sizeof("ISO-IR-126")]; - char stringpool_str96[sizeof("ISO-IR-109")]; - char stringpool_str98[sizeof("ISO-IR-101")]; - char stringpool_str100[sizeof("KOI8-R")]; - char stringpool_str103[sizeof("ISO-IR-144")]; - char stringpool_str105[sizeof("862")]; - char stringpool_str106[sizeof("ISO88599")]; - char stringpool_str107[sizeof("ISO-IR-58")]; - char stringpool_str108[sizeof("ISO88591")]; - char stringpool_str109[sizeof("ISO8859-9")]; - char stringpool_str110[sizeof("C99")]; - char stringpool_str111[sizeof("ISO8859-1")]; - char stringpool_str112[sizeof("ISO-8859-9")]; - char stringpool_str113[sizeof("ISO_8859-9")]; - char stringpool_str114[sizeof("ISO-8859-1")]; - char stringpool_str115[sizeof("ISO_8859-1")]; - char stringpool_str116[sizeof("ISO8859-11")]; - char stringpool_str117[sizeof("ISO-IR-148")]; - char stringpool_str118[sizeof("L7")]; - char stringpool_str119[sizeof("ISO-8859-11")]; - char stringpool_str120[sizeof("ISO_8859-11")]; - char stringpool_str121[sizeof("CN")]; - char stringpool_str122[sizeof("ISO88596")]; - char stringpool_str124[sizeof("ISO-IR-226")]; - char stringpool_str125[sizeof("ISO8859-6")]; - char stringpool_str128[sizeof("ISO-8859-6")]; - char stringpool_str129[sizeof("ISO_8859-6")]; - char stringpool_str130[sizeof("ISO8859-16")]; - char stringpool_str131[sizeof("L10")]; - char stringpool_str132[sizeof("ISO_8859-16:2001")]; - char stringpool_str133[sizeof("ISO-8859-16")]; - char stringpool_str134[sizeof("ISO_8859-16")]; - char stringpool_str136[sizeof("ISO88595")]; - char stringpool_str138[sizeof("CP949")]; - char stringpool_str139[sizeof("ISO8859-5")]; - char stringpool_str140[sizeof("ISO-IR-179")]; - char stringpool_str141[sizeof("ISO885915")]; - char stringpool_str142[sizeof("ISO-8859-5")]; - char stringpool_str143[sizeof("ISO_8859-5")]; - char stringpool_str144[sizeof("ISO8859-15")]; - char stringpool_str145[sizeof("850")]; - char stringpool_str146[sizeof("CP819")]; - char stringpool_str147[sizeof("ISO-8859-15")]; - char stringpool_str148[sizeof("ISO_8859-15")]; - char stringpool_str149[sizeof("ISO8859-4")]; - char stringpool_str150[sizeof("ISO-IR-110")]; - char stringpool_str151[sizeof("RK1048")]; - char stringpool_str152[sizeof("ISO-8859-4")]; - char stringpool_str153[sizeof("ISO_8859-4")]; - char stringpool_str154[sizeof("ISO8859-14")]; - char stringpool_str156[sizeof("ISO-IR-138")]; - char stringpool_str157[sizeof("ISO-8859-14")]; - char stringpool_str158[sizeof("ISO_8859-14")]; - char stringpool_str160[sizeof("ISO88598")]; - char stringpool_str163[sizeof("ISO8859-8")]; - char stringpool_str165[sizeof("ISO_8859-15:1998")]; - char stringpool_str166[sizeof("ISO-8859-8")]; - char stringpool_str167[sizeof("ISO_8859-8")]; - char stringpool_str169[sizeof("CP866")]; - char stringpool_str170[sizeof("ISO_8859-14:1998")]; - char stringpool_str171[sizeof("CHAR")]; - char stringpool_str172[sizeof("ISO88592")]; - char stringpool_str173[sizeof("CP1251")]; - char stringpool_str174[sizeof("CP154")]; - char stringpool_str175[sizeof("ISO8859-2")]; - char stringpool_str176[sizeof("HZ")]; - char stringpool_str177[sizeof("ASCII")]; - char stringpool_str178[sizeof("ISO-8859-2")]; - char stringpool_str179[sizeof("ISO_8859-2")]; - char stringpool_str182[sizeof("PTCP154")]; - char stringpool_str185[sizeof("CP1131")]; - char stringpool_str187[sizeof("CP1256")]; - char stringpool_str191[sizeof("GBK")]; - char stringpool_str192[sizeof("CP1361")]; - char stringpool_str193[sizeof("CP936")]; - char stringpool_str196[sizeof("KOREAN")]; - char stringpool_str198[sizeof("IBM819")]; - char stringpool_str200[sizeof("EUCKR")]; - char stringpool_str201[sizeof("CP1255")]; - char stringpool_str202[sizeof("ISO-IR-100")]; - char stringpool_str203[sizeof("EUC-KR")]; - char stringpool_str204[sizeof("ISO646-CN")]; - char stringpool_str207[sizeof("KZ-1048")]; - char stringpool_str208[sizeof("CSKOI8R")]; - char stringpool_str209[sizeof("ISO_8859-10:1992")]; - char stringpool_str211[sizeof("CP1254")]; - char stringpool_str212[sizeof("LATIN1")]; - char stringpool_str213[sizeof("LATIN-9")]; - char stringpool_str216[sizeof("US")]; - char stringpool_str219[sizeof("CP862")]; - char stringpool_str220[sizeof("ISO8859-10")]; - char stringpool_str221[sizeof("IBM866")]; - char stringpool_str223[sizeof("ISO-8859-10")]; - char stringpool_str224[sizeof("ISO_8859-10")]; - char stringpool_str225[sizeof("CP1258")]; - char stringpool_str226[sizeof("LATIN6")]; - char stringpool_str227[sizeof("ISO8859-3")]; - char stringpool_str230[sizeof("ISO-8859-3")]; - char stringpool_str231[sizeof("ISO_8859-3")]; - char stringpool_str232[sizeof("ISO8859-13")]; - char stringpool_str233[sizeof("ISO_8859-9:1989")]; - char stringpool_str235[sizeof("ISO-8859-13")]; - char stringpool_str236[sizeof("ISO_8859-13")]; - char stringpool_str237[sizeof("CP1252")]; - char stringpool_str238[sizeof("CHINESE")]; - char stringpool_str239[sizeof("CP950")]; - char stringpool_str240[sizeof("LATIN5")]; - char stringpool_str241[sizeof("MS936")]; - char stringpool_str242[sizeof("ISO_646.IRV:1991")]; - char stringpool_str243[sizeof("CP932")]; - char stringpool_str246[sizeof("ISO-IR-203")]; - char stringpool_str247[sizeof("ISO-IR-57")]; - char stringpool_str248[sizeof("MS-ANSI")]; - char stringpool_str249[sizeof("ISO-2022-KR")]; - char stringpool_str250[sizeof("LATIN4")]; - char stringpool_str252[sizeof("ISO-IR-157")]; - char stringpool_str256[sizeof("VISCII")]; - char stringpool_str258[sizeof("GB2312")]; - char stringpool_str259[sizeof("ISO-IR-87")]; - char stringpool_str260[sizeof("KSC_5601")]; - char stringpool_str261[sizeof("MS-EE")]; - char stringpool_str262[sizeof("CP50221")]; - char stringpool_str263[sizeof("GREEK")]; - char stringpool_str264[sizeof("LATIN8")]; - char stringpool_str266[sizeof("CP850")]; - char stringpool_str267[sizeof("UCS-4")]; - char stringpool_str269[sizeof("GREEK8")]; - char stringpool_str270[sizeof("ISO-IR-127")]; - char stringpool_str271[sizeof("IBM862")]; - char stringpool_str273[sizeof("GEORGIAN-PS")]; - char stringpool_str274[sizeof("KS_C_5601-1989")]; - char stringpool_str275[sizeof("ISO_8859-5:1988")]; - char stringpool_str276[sizeof("LATIN2")]; - char stringpool_str277[sizeof("CP1250")]; - char stringpool_str278[sizeof("EUCCN")]; - char stringpool_str280[sizeof("ISO_8859-4:1988")]; - char stringpool_str281[sizeof("EUC-CN")]; - char stringpool_str282[sizeof("CP874")]; - char stringpool_str284[sizeof("CSASCII")]; - char stringpool_str285[sizeof("ISO646-US")]; - char stringpool_str287[sizeof("ISO_8859-8:1988")]; - char stringpool_str288[sizeof("BIG5")]; - char stringpool_str289[sizeof("CP1253")]; - char stringpool_str291[sizeof("BIG-5")]; - char stringpool_str293[sizeof("UCS-2")]; - char stringpool_str296[sizeof("X0201")]; - char stringpool_str297[sizeof("ROMAN8")]; - char stringpool_str298[sizeof("VISCII1.1-1")]; - char stringpool_str299[sizeof("MS-CYRL")]; - char stringpool_str300[sizeof("ISO88597")]; - char stringpool_str301[sizeof("CP1133")]; - char stringpool_str302[sizeof("GB_1988-80")]; - char stringpool_str303[sizeof("ISO8859-7")]; - char stringpool_str305[sizeof("MULELAO-1")]; - char stringpool_str306[sizeof("ISO-8859-7")]; - char stringpool_str307[sizeof("ISO_8859-7")]; - char stringpool_str308[sizeof("X0212")]; - char stringpool_str310[sizeof("ECMA-114")]; - char stringpool_str312[sizeof("CSKZ1048")]; - char stringpool_str314[sizeof("ELOT_928")]; - char stringpool_str317[sizeof("STRK1048-2002")]; - char stringpool_str318[sizeof("IBM850")]; - char stringpool_str319[sizeof("ISO_8859-3:1988")]; - char stringpool_str321[sizeof("LATIN10")]; - char stringpool_str322[sizeof("UTF-16")]; - char stringpool_str324[sizeof("ECMA-118")]; - char stringpool_str327[sizeof("ISO-2022-CN")]; - char stringpool_str328[sizeof("LATIN3")]; - char stringpool_str330[sizeof("TIS620")]; - char stringpool_str331[sizeof("ISO_8859-1:1987")]; - char stringpool_str332[sizeof("UCS-4LE")]; - char stringpool_str333[sizeof("TIS-620")]; - char stringpool_str334[sizeof("HP15CN")]; - char stringpool_str337[sizeof("TCVN")]; - char stringpool_str338[sizeof("ISO_8859-6:1987")]; - char stringpool_str342[sizeof("CYRILLIC-ASIAN")]; - char stringpool_str345[sizeof("UCS-2LE")]; - char stringpool_str348[sizeof("X0208")]; - char stringpool_str349[sizeof("GB18030")]; - char stringpool_str350[sizeof("CSISO2022KR")]; - char stringpool_str351[sizeof("CYRILLIC")]; - char stringpool_str352[sizeof("UTF8")]; - char stringpool_str354[sizeof("MAC")]; - char stringpool_str355[sizeof("UTF-8")]; - char stringpool_str362[sizeof("CSVISCII")]; - char stringpool_str363[sizeof("ISO_8859-2:1987")]; - char stringpool_str365[sizeof("CP1257")]; - char stringpool_str368[sizeof("ISO-10646-UCS-4")]; - char stringpool_str371[sizeof("KS_C_5601-1987")]; - char stringpool_str373[sizeof("GB_2312-80")]; - char stringpool_str379[sizeof("CP367")]; - char stringpool_str380[sizeof("JP")]; - char stringpool_str381[sizeof("ISO-10646-UCS-2")]; - char stringpool_str387[sizeof("UNICODE-1-1")]; - char stringpool_str389[sizeof("ISO_8859-7:2003")]; - char stringpool_str390[sizeof("TIS620-0")]; - char stringpool_str393[sizeof("ARMSCII-8")]; - char stringpool_str394[sizeof("CSBIG5")]; - char stringpool_str395[sizeof("CSISOLATIN1")]; - char stringpool_str396[sizeof("US-ASCII")]; - char stringpool_str397[sizeof("CN-BIG5")]; - char stringpool_str399[sizeof("UTF-16LE")]; - char stringpool_str400[sizeof("TIS620.2529-1")]; - char stringpool_str401[sizeof("ANSI_X3.4-1986")]; - char stringpool_str404[sizeof("LATIN7")]; - char stringpool_str405[sizeof("CN-GB-ISOIR165")]; - char stringpool_str409[sizeof("CSISOLATIN6")]; - char stringpool_str415[sizeof("UHC")]; - char stringpool_str418[sizeof("KOI8-T")]; - char stringpool_str419[sizeof("MS-GREEK")]; - char stringpool_str420[sizeof("ANSI_X3.4-1968")]; - char stringpool_str423[sizeof("CSISOLATIN5")]; - char stringpool_str425[sizeof("WINDOWS-1251")]; - char stringpool_str427[sizeof("ISO_8859-7:1987")]; - char stringpool_str428[sizeof("CSISO2022CN")]; - char stringpool_str430[sizeof("UTF-32")]; - char stringpool_str431[sizeof("IBM367")]; - char stringpool_str432[sizeof("WINDOWS-1256")]; - char stringpool_str433[sizeof("CSISOLATIN4")]; - char stringpool_str436[sizeof("GEORGIAN-ACADEMY")]; - char stringpool_str439[sizeof("WINDOWS-1255")]; - char stringpool_str444[sizeof("WINDOWS-1254")]; - char stringpool_str445[sizeof("ASMO-708")]; - char stringpool_str446[sizeof("CSPTCP154")]; - char stringpool_str448[sizeof("ISO646-JP")]; - char stringpool_str449[sizeof("WINDOWS-936")]; - char stringpool_str451[sizeof("WINDOWS-1258")]; - char stringpool_str457[sizeof("WINDOWS-1252")]; - char stringpool_str459[sizeof("CSISOLATIN2")]; - char stringpool_str462[sizeof("IBM-CP1133")]; - char stringpool_str468[sizeof("CSUCS4")]; - char stringpool_str470[sizeof("CSKSC56011987")]; - char stringpool_str474[sizeof("ISO-2022-CN-EXT")]; - char stringpool_str477[sizeof("WINDOWS-1250")]; - char stringpool_str479[sizeof("HP-ROMAN8")]; - char stringpool_str482[sizeof("UTF-32LE")]; - char stringpool_str483[sizeof("WINDOWS-1253")]; - char stringpool_str485[sizeof("TIS620.2533-1")]; - char stringpool_str486[sizeof("UCS-4BE")]; - char stringpool_str487[sizeof("UCS-4-SWAPPED")]; - char stringpool_str489[sizeof("UNICODE-1-1-UTF-7")]; - char stringpool_str490[sizeof("UCS-4-INTERNAL")]; - char stringpool_str493[sizeof("TCVN5712-1")]; - char stringpool_str494[sizeof("CSIBM866")]; - char stringpool_str495[sizeof("UTF-7")]; - char stringpool_str499[sizeof("UCS-2BE")]; - char stringpool_str500[sizeof("UCS-2-SWAPPED")]; - char stringpool_str501[sizeof("MACICELAND")]; - char stringpool_str502[sizeof("CSUNICODE11")]; - char stringpool_str503[sizeof("UCS-2-INTERNAL")]; - char stringpool_str505[sizeof("ARABIC")]; - char stringpool_str511[sizeof("CSISOLATIN3")]; - char stringpool_str513[sizeof("CSEUCKR")]; - char stringpool_str515[sizeof("MACROMAN")]; - char stringpool_str516[sizeof("KOI8-U")]; - char stringpool_str518[sizeof("MACGREEK")]; - char stringpool_str519[sizeof("KOI8-RU")]; - char stringpool_str520[sizeof("TCVN-5712")]; - char stringpool_str521[sizeof("WINDOWS-1257")]; - char stringpool_str522[sizeof("EUCJP")]; - char stringpool_str523[sizeof("CSUNICODE")]; - char stringpool_str524[sizeof("CSISOLATINGREEK")]; - char stringpool_str525[sizeof("EUC-JP")]; - char stringpool_str526[sizeof("CN-GB")]; - char stringpool_str531[sizeof("CSGB2312")]; - char stringpool_str532[sizeof("CSISO57GB1988")]; - char stringpool_str536[sizeof("MS-HEBR")]; - char stringpool_str537[sizeof("TIS620.2533-0")]; - char stringpool_str538[sizeof("WINDOWS-874")]; - char stringpool_str541[sizeof("ISO-CELTIC")]; - char stringpool_str542[sizeof("BIGFIVE")]; - char stringpool_str545[sizeof("BIG-FIVE")]; - char stringpool_str553[sizeof("UTF-16BE")]; - char stringpool_str555[sizeof("CSISOLATINARABIC")]; - char stringpool_str571[sizeof("ISO-2022-JP")]; - char stringpool_str574[sizeof("ISO-2022-JP-1")]; - char stringpool_str575[sizeof("ISO-2022-JP-MS")]; - char stringpool_str581[sizeof("CSISO58GB231280")]; - char stringpool_str582[sizeof("CSHPROMAN8")]; - char stringpool_str584[sizeof("NEXTSTEP")]; - char stringpool_str594[sizeof("JIS0208")]; - char stringpool_str596[sizeof("CSISOLATINCYRILLIC")]; - char stringpool_str599[sizeof("CSISO159JISX02121990")]; - char stringpool_str601[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; - char stringpool_str602[sizeof("CSUNICODE11UTF7")]; - char stringpool_str605[sizeof("HZ-GB-2312")]; - char stringpool_str606[sizeof("ISO-2022-JP-2")]; - char stringpool_str610[sizeof("MACCYRILLIC")]; - char stringpool_str612[sizeof("BIG5HKSCS")]; - char stringpool_str615[sizeof("BIG5-HKSCS")]; - char stringpool_str618[sizeof("EUCTW")]; - char stringpool_str621[sizeof("EUC-TW")]; - char stringpool_str624[sizeof("MS-ARAB")]; - char stringpool_str626[sizeof("MACROMANIA")]; - char stringpool_str636[sizeof("UTF-32BE")]; - char stringpool_str639[sizeof("JAVA")]; - char stringpool_str641[sizeof("MS-TURK")]; - char stringpool_str643[sizeof("SHIFT-JIS")]; - char stringpool_str644[sizeof("SHIFT_JIS")]; - char stringpool_str651[sizeof("CSISO14JISC6220RO")]; - char stringpool_str653[sizeof("JIS_C6220-1969-RO")]; - char stringpool_str655[sizeof("MACTHAI")]; - char stringpool_str659[sizeof("JIS_C6226-1983")]; - char stringpool_str671[sizeof("TCVN5712-1:1993")]; - char stringpool_str672[sizeof("CSISO2022JP")]; - char stringpool_str676[sizeof("MS_KANJI")]; - char stringpool_str680[sizeof("MACUKRAINE")]; - char stringpool_str696[sizeof("MACCROATIAN")]; - char stringpool_str698[sizeof("HEBREW")]; - char stringpool_str699[sizeof("UNICODEBIG")]; - char stringpool_str700[sizeof("CSPC862LATINHEBREW")]; - char stringpool_str706[sizeof("CSISO2022JP2")]; - char stringpool_str719[sizeof("CSISOLATINHEBREW")]; - char stringpool_str723[sizeof("WCHAR_T")]; - char stringpool_str731[sizeof("MACCENTRALEUROPE")]; - char stringpool_str734[sizeof("BIG5-HKSCS:1999")]; - char stringpool_str735[sizeof("BIG5-HKSCS:2001")]; - char stringpool_str738[sizeof("JIS_X0201")]; - char stringpool_str749[sizeof("UNICODELITTLE")]; - char stringpool_str750[sizeof("JIS_X0212")]; - char stringpool_str754[sizeof("BIG5-HKSCS:2004")]; - char stringpool_str755[sizeof("JISX0201-1976")]; - char stringpool_str760[sizeof("MACARABIC")]; - char stringpool_str761[sizeof("BIG5-HKSCS:2008")]; - char stringpool_str781[sizeof("JIS_X0212-1990")]; - char stringpool_str790[sizeof("JIS_X0208")]; - char stringpool_str791[sizeof("MACINTOSH")]; - char stringpool_str803[sizeof("JIS_X0212.1990-0")]; - char stringpool_str827[sizeof("JIS_X0208-1990")]; - char stringpool_str833[sizeof("JIS_X0208-1983")]; - char stringpool_str864[sizeof("CSISO87JISX0208")]; - char stringpool_str880[sizeof("CSPC850MULTILINGUAL")]; - char stringpool_str898[sizeof("WINBALTRIM")]; - char stringpool_str912[sizeof("CSSHIFTJIS")]; - char stringpool_str931[sizeof("CSEUCTW")]; - char stringpool_str950[sizeof("CSEUCPKDFMTJAPANESE")]; - char stringpool_str951[sizeof("JOHAB")]; - char stringpool_str956[sizeof("CSMACINTOSH")]; - char stringpool_str986[sizeof("MACHEBREW")]; - char stringpool_str1001[sizeof("CSHALFWIDTHKATAKANA")]; - char stringpool_str1033[sizeof("MACTURKISH")]; - }; -static const struct stringpool_t stringpool_contents = - { - "SJIS", - "L1", - "L6", - "R8", - "L5", - "L4", - "ISO-IR-199", - "L8", - "ISO-IR-6", - "L2", - "866", - "ISO-IR-159", - "ISO-IR-149", - "ISO-IR-166", - "PT154", - "ISO-IR-14", - "L3", - "ISO-IR-165", - "ISO-IR-126", - "ISO-IR-109", - "ISO-IR-101", - "KOI8-R", - "ISO-IR-144", - "862", - "ISO88599", - "ISO-IR-58", - "ISO88591", - "ISO8859-9", - "C99", - "ISO8859-1", - "ISO-8859-9", - "ISO_8859-9", - "ISO-8859-1", - "ISO_8859-1", - "ISO8859-11", - "ISO-IR-148", - "L7", - "ISO-8859-11", - "ISO_8859-11", - "CN", - "ISO88596", - "ISO-IR-226", - "ISO8859-6", - "ISO-8859-6", - "ISO_8859-6", - "ISO8859-16", - "L10", - "ISO_8859-16:2001", - "ISO-8859-16", - "ISO_8859-16", - "ISO88595", - "CP949", - "ISO8859-5", - "ISO-IR-179", - "ISO885915", - "ISO-8859-5", - "ISO_8859-5", - "ISO8859-15", - "850", - "CP819", - "ISO-8859-15", - "ISO_8859-15", - "ISO8859-4", - "ISO-IR-110", - "RK1048", - "ISO-8859-4", - "ISO_8859-4", - "ISO8859-14", - "ISO-IR-138", - "ISO-8859-14", - "ISO_8859-14", - "ISO88598", - "ISO8859-8", - "ISO_8859-15:1998", - "ISO-8859-8", - "ISO_8859-8", - "CP866", - "ISO_8859-14:1998", - "CHAR", - "ISO88592", - "CP1251", - "CP154", - "ISO8859-2", - "HZ", - "ASCII", - "ISO-8859-2", - "ISO_8859-2", - "PTCP154", - "CP1131", - "CP1256", - "GBK", - "CP1361", - "CP936", - "KOREAN", - "IBM819", - "EUCKR", - "CP1255", - "ISO-IR-100", - "EUC-KR", - "ISO646-CN", - "KZ-1048", - "CSKOI8R", - "ISO_8859-10:1992", - "CP1254", - "LATIN1", - "LATIN-9", - "US", - "CP862", - "ISO8859-10", - "IBM866", - "ISO-8859-10", - "ISO_8859-10", - "CP1258", - "LATIN6", - "ISO8859-3", - "ISO-8859-3", - "ISO_8859-3", - "ISO8859-13", - "ISO_8859-9:1989", - "ISO-8859-13", - "ISO_8859-13", - "CP1252", - "CHINESE", - "CP950", - "LATIN5", - "MS936", - "ISO_646.IRV:1991", - "CP932", - "ISO-IR-203", - "ISO-IR-57", - "MS-ANSI", - "ISO-2022-KR", - "LATIN4", - "ISO-IR-157", - "VISCII", - "GB2312", - "ISO-IR-87", - "KSC_5601", - "MS-EE", - "CP50221", - "GREEK", - "LATIN8", - "CP850", - "UCS-4", - "GREEK8", - "ISO-IR-127", - "IBM862", - "GEORGIAN-PS", - "KS_C_5601-1989", - "ISO_8859-5:1988", - "LATIN2", - "CP1250", - "EUCCN", - "ISO_8859-4:1988", - "EUC-CN", - "CP874", - "CSASCII", - "ISO646-US", - "ISO_8859-8:1988", - "BIG5", - "CP1253", - "BIG-5", - "UCS-2", - "X0201", - "ROMAN8", - "VISCII1.1-1", - "MS-CYRL", - "ISO88597", - "CP1133", - "GB_1988-80", - "ISO8859-7", - "MULELAO-1", - "ISO-8859-7", - "ISO_8859-7", - "X0212", - "ECMA-114", - "CSKZ1048", - "ELOT_928", - "STRK1048-2002", - "IBM850", - "ISO_8859-3:1988", - "LATIN10", - "UTF-16", - "ECMA-118", - "ISO-2022-CN", - "LATIN3", - "TIS620", - "ISO_8859-1:1987", - "UCS-4LE", - "TIS-620", - "HP15CN", - "TCVN", - "ISO_8859-6:1987", - "CYRILLIC-ASIAN", - "UCS-2LE", - "X0208", - "GB18030", - "CSISO2022KR", - "CYRILLIC", - "UTF8", - "MAC", - "UTF-8", - "CSVISCII", - "ISO_8859-2:1987", - "CP1257", - "ISO-10646-UCS-4", - "KS_C_5601-1987", - "GB_2312-80", - "CP367", - "JP", - "ISO-10646-UCS-2", - "UNICODE-1-1", - "ISO_8859-7:2003", - "TIS620-0", - "ARMSCII-8", - "CSBIG5", - "CSISOLATIN1", - "US-ASCII", - "CN-BIG5", - "UTF-16LE", - "TIS620.2529-1", - "ANSI_X3.4-1986", - "LATIN7", - "CN-GB-ISOIR165", - "CSISOLATIN6", - "UHC", - "KOI8-T", - "MS-GREEK", - "ANSI_X3.4-1968", - "CSISOLATIN5", - "WINDOWS-1251", - "ISO_8859-7:1987", - "CSISO2022CN", - "UTF-32", - "IBM367", - "WINDOWS-1256", - "CSISOLATIN4", - "GEORGIAN-ACADEMY", - "WINDOWS-1255", - "WINDOWS-1254", - "ASMO-708", - "CSPTCP154", - "ISO646-JP", - "WINDOWS-936", - "WINDOWS-1258", - "WINDOWS-1252", - "CSISOLATIN2", - "IBM-CP1133", - "CSUCS4", - "CSKSC56011987", - "ISO-2022-CN-EXT", - "WINDOWS-1250", - "HP-ROMAN8", - "UTF-32LE", - "WINDOWS-1253", - "TIS620.2533-1", - "UCS-4BE", - "UCS-4-SWAPPED", - "UNICODE-1-1-UTF-7", - "UCS-4-INTERNAL", - "TCVN5712-1", - "CSIBM866", - "UTF-7", - "UCS-2BE", - "UCS-2-SWAPPED", - "MACICELAND", - "CSUNICODE11", - "UCS-2-INTERNAL", - "ARABIC", - "CSISOLATIN3", - "CSEUCKR", - "MACROMAN", - "KOI8-U", - "MACGREEK", - "KOI8-RU", - "TCVN-5712", - "WINDOWS-1257", - "EUCJP", - "CSUNICODE", - "CSISOLATINGREEK", - "EUC-JP", - "CN-GB", - "CSGB2312", - "CSISO57GB1988", - "MS-HEBR", - "TIS620.2533-0", - "WINDOWS-874", - "ISO-CELTIC", - "BIGFIVE", - "BIG-FIVE", - "UTF-16BE", - "CSISOLATINARABIC", - "ISO-2022-JP", - "ISO-2022-JP-1", - "ISO-2022-JP-MS", - "CSISO58GB231280", - "CSHPROMAN8", - "NEXTSTEP", - "JIS0208", - "CSISOLATINCYRILLIC", - "CSISO159JISX02121990", - "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", - "CSUNICODE11UTF7", - "HZ-GB-2312", - "ISO-2022-JP-2", - "MACCYRILLIC", - "BIG5HKSCS", - "BIG5-HKSCS", - "EUCTW", - "EUC-TW", - "MS-ARAB", - "MACROMANIA", - "UTF-32BE", - "JAVA", - "MS-TURK", - "SHIFT-JIS", - "SHIFT_JIS", - "CSISO14JISC6220RO", - "JIS_C6220-1969-RO", - "MACTHAI", - "JIS_C6226-1983", - "TCVN5712-1:1993", - "CSISO2022JP", - "MS_KANJI", - "MACUKRAINE", - "MACCROATIAN", - "HEBREW", - "UNICODEBIG", - "CSPC862LATINHEBREW", - "CSISO2022JP2", - "CSISOLATINHEBREW", - "WCHAR_T", - "MACCENTRALEUROPE", - "BIG5-HKSCS:1999", - "BIG5-HKSCS:2001", - "JIS_X0201", - "UNICODELITTLE", - "JIS_X0212", - "BIG5-HKSCS:2004", - "JISX0201-1976", - "MACARABIC", - "BIG5-HKSCS:2008", - "JIS_X0212-1990", - "JIS_X0208", - "MACINTOSH", - "JIS_X0212.1990-0", - "JIS_X0208-1990", - "JIS_X0208-1983", - "CSISO87JISX0208", - "CSPC850MULTILINGUAL", - "WINBALTRIM", - "CSSHIFTJIS", - "CSEUCTW", - "CSEUCPKDFMTJAPANESE", - "JOHAB", - "CSMACINTOSH", - "MACHEBREW", - "CSHALFWIDTHKATAKANA", - "MACTURKISH" - }; -#define stringpool ((const char *) &stringpool_contents) - -static const struct alias aliases[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 317 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, ei_sjis}, - {-1}, {-1}, -#line 61 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, ei_iso8859_1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 142 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, ei_iso8859_10}, - {-1}, {-1}, {-1}, {-1}, -#line 236 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, ei_hp_roman8}, - {-1}, -#line 133 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, ei_iso8859_9}, - {-1}, {-1}, {-1}, {-1}, -#line 87 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str41, ei_iso8859_4}, - {-1}, -#line 157 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, ei_iso8859_14}, - {-1}, {-1}, {-1}, {-1}, -#line 159 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, ei_iso8859_14}, - {-1}, -#line 16 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str50, ei_ascii}, - {-1}, {-1}, {-1}, -#line 70 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str54, ei_iso8859_2}, -#line 216 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str55, ei_cp866}, - {-1}, {-1}, -#line 292 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str58, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, -#line 308 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str63, ei_ksc5601}, - {-1}, {-1}, {-1}, -#line 261 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str67, ei_tis620}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 243 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str76, ei_pt154}, - {-1}, {-1}, -#line 273 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str79, ei_iso646_jp}, -#line 79 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str80, ei_iso8859_3}, -#line 303 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str81, ei_isoir165}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 112 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str92, ei_iso8859_7}, - {-1}, {-1}, {-1}, -#line 77 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str96, ei_iso8859_3}, - {-1}, -#line 68 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_2}, - {-1}, -#line 176 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str100, ei_koi8_r}, - {-1}, {-1}, -#line 93 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_5}, - {-1}, -#line 212 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str105, ei_cp862}, -#line 136 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str106, ei_iso8859_9}, -#line 300 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str107, ei_gb2312}, -#line 64 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_1}, -#line 135 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str109, ei_iso8859_9}, -#line 52 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str110, ei_c99}, -#line 63 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_1}, -#line 128 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str112, ei_iso8859_9}, -#line 129 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str113, ei_iso8859_9}, -#line 54 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str114, ei_iso8859_1}, -#line 55 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str115, ei_iso8859_1}, -#line 147 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str116, ei_iso8859_11}, -#line 131 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str117, ei_iso8859_9}, -#line 152 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str118, ei_iso8859_13}, -#line 145 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_11}, -#line 146 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str120, ei_iso8859_11}, -#line 297 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str121, ei_iso646_cn}, -#line 107 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str122, ei_iso8859_6}, - {-1}, -#line 172 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_16}, -#line 106 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_6}, - {-1}, {-1}, -#line 98 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str128, ei_iso8859_6}, -#line 99 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str129, ei_iso8859_6}, -#line 175 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_16}, -#line 174 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str131, ei_iso8859_16}, -#line 171 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str132, ei_iso8859_16}, -#line 169 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str133, ei_iso8859_16}, -#line 170 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str134, ei_iso8859_16}, - {-1}, -#line 97 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str136, ei_iso8859_5}, - {-1}, -#line 363 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str138, ei_cp949}, -#line 96 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str139, ei_iso8859_5}, -#line 150 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str140, ei_iso8859_13}, -#line 168 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str141, ei_iso8859_15}, -#line 90 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_5}, -#line 91 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_5}, -#line 167 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str144, ei_iso8859_15}, -#line 208 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str145, ei_cp850}, -#line 58 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str146, ei_iso8859_1}, -#line 162 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str147, ei_iso8859_15}, -#line 163 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_15}, -#line 89 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str149, ei_iso8859_4}, -#line 85 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str150, ei_iso8859_4}, -#line 248 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str151, ei_rk1048}, -#line 82 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_4}, -#line 83 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str153, ei_iso8859_4}, -#line 161 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_14}, - {-1}, -#line 123 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_8}, -#line 154 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_14}, -#line 155 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_14}, - {-1}, -#line 127 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_8}, - {-1}, {-1}, -#line 126 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_8}, - {-1}, -#line 164 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str165, ei_iso8859_15}, -#line 120 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str166, ei_iso8859_8}, -#line 121 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str167, ei_iso8859_8}, - {-1}, -#line 214 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str169, ei_cp866}, -#line 156 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_14}, -#line 369 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str171, ei_local_char}, -#line 73 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_2}, -#line 183 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str173, ei_cp1251}, -#line 245 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str174, ei_pt154}, -#line 72 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str175, ei_iso8859_2}, -#line 342 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str176, ei_hz}, -#line 13 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str177, ei_ascii}, -#line 65 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str178, ei_iso8859_2}, -#line 66 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_2}, - {-1}, {-1}, -#line 244 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str182, ei_pt154}, - {-1}, {-1}, -#line 218 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str185, ei_cp1131}, - {-1}, -#line 198 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str187, ei_cp1256}, - {-1}, {-1}, {-1}, -#line 334 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str191, ei_ces_gbk}, -#line 366 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str192, ei_johab}, -#line 335 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str193, ei_cp936}, - {-1}, {-1}, -#line 310 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str196, ei_ksc5601}, - {-1}, -#line 59 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str198, ei_iso8859_1}, - {-1}, -#line 361 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str200, ei_euc_kr}, -#line 195 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str201, ei_cp1255}, -#line 57 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str202, ei_iso8859_1}, -#line 360 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str203, ei_euc_kr}, -#line 295 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str204, ei_iso646_cn}, - {-1}, {-1}, -#line 250 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str207, ei_rk1048}, -#line 177 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str208, ei_koi8_r}, -#line 139 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str209, ei_iso8859_10}, - {-1}, -#line 192 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str211, ei_cp1254}, -#line 60 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str212, ei_iso8859_1}, -#line 166 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str213, ei_iso8859_15}, - {-1}, {-1}, -#line 21 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str216, ei_ascii}, - {-1}, {-1}, -#line 210 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str219, ei_cp862}, -#line 144 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str220, ei_iso8859_10}, -#line 215 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str221, ei_cp866}, - {-1}, -#line 137 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str223, ei_iso8859_10}, -#line 138 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str224, ei_iso8859_10}, -#line 204 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str225, ei_cp1258}, -#line 141 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str226, ei_iso8859_10}, -#line 81 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str227, ei_iso8859_3}, - {-1}, {-1}, -#line 74 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str230, ei_iso8859_3}, -#line 75 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str231, ei_iso8859_3}, -#line 153 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str232, ei_iso8859_13}, -#line 130 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str233, ei_iso8859_9}, - {-1}, -#line 148 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str235, ei_iso8859_13}, -#line 149 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_13}, -#line 186 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str237, ei_cp1252}, -#line 302 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str238, ei_gb2312}, -#line 353 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str239, ei_cp950}, -#line 132 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str240, ei_iso8859_9}, -#line 336 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str241, ei_cp936}, -#line 15 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str242, ei_ascii}, -#line 320 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str243, ei_cp932}, - {-1}, {-1}, -#line 165 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str246, ei_iso8859_15}, -#line 296 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str247, ei_iso646_cn}, -#line 188 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str248, ei_cp1252}, -#line 367 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str249, ei_iso2022_kr}, -#line 86 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str250, ei_iso8859_4}, - {-1}, -#line 140 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str252, ei_iso8859_10}, - {-1}, {-1}, {-1}, -#line 264 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str256, ei_viscii}, - {-1}, -#line 330 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str258, ei_euc_cn}, -#line 285 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str259, ei_jisx0208}, -#line 305 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str260, ei_ksc5601}, -#line 182 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str261, ei_cp1250}, -#line 327 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str262, ei_iso2022_jpms}, -#line 116 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str263, ei_iso8859_7}, -#line 158 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str264, ei_iso8859_14}, - {-1}, -#line 206 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str266, ei_cp850}, -#line 34 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str267, ei_ucs4}, - {-1}, -#line 115 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str269, ei_iso8859_7}, -#line 101 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str270, ei_iso8859_6}, -#line 211 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str271, ei_cp862}, - {-1}, -#line 241 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str273, ei_georgian_ps}, -#line 307 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str274, ei_ksc5601}, -#line 92 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str275, ei_iso8859_5}, -#line 69 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str276, ei_iso8859_2}, -#line 180 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str277, ei_cp1250}, -#line 329 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str278, ei_euc_cn}, - {-1}, -#line 84 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str280, ei_iso8859_4}, -#line 328 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str281, ei_euc_cn}, -#line 262 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str282, ei_cp874}, - {-1}, -#line 22 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str284, ei_ascii}, -#line 14 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str285, ei_ascii}, - {-1}, -#line 122 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str287, ei_iso8859_8}, -#line 347 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str288, ei_ces_big5}, -#line 189 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str289, ei_cp1253}, - {-1}, -#line 348 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str291, ei_ces_big5}, - {-1}, -#line 25 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str293, ei_ucs2}, - {-1}, {-1}, -#line 278 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str296, ei_jisx0201}, -#line 235 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str297, ei_hp_roman8}, -#line 265 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str298, ei_viscii}, -#line 185 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str299, ei_cp1251}, -#line 119 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str300, ei_iso8859_7}, -#line 253 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str301, ei_cp1133}, -#line 294 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str302, ei_iso646_cn}, -#line 118 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str303, ei_iso8859_7}, - {-1}, -#line 252 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str305, ei_mulelao}, -#line 108 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str306, ei_iso8859_7}, -#line 109 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str307, ei_iso8859_7}, -#line 291 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str308, ei_jisx0212}, - {-1}, -#line 102 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str310, ei_iso8859_6}, - {-1}, -#line 251 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str312, ei_rk1048}, - {-1}, -#line 114 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str314, ei_iso8859_7}, - {-1}, {-1}, -#line 249 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str317, ei_rk1048}, -#line 207 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str318, ei_cp850}, -#line 76 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str319, ei_iso8859_3}, - {-1}, -#line 173 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str321, ei_iso8859_16}, -#line 39 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str322, ei_utf16}, - {-1}, -#line 113 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str324, ei_iso8859_7}, - {-1}, {-1}, -#line 339 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str327, ei_iso2022_cn}, -#line 78 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str328, ei_iso8859_3}, - {-1}, -#line 256 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str330, ei_tis620}, -#line 56 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str331, ei_iso8859_1}, -#line 38 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str332, ei_ucs4le}, -#line 255 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str333, ei_tis620}, -#line 333 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str334, ei_euc_cn}, - {-1}, {-1}, -#line 267 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str337, ei_tcvn}, -#line 100 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str338, ei_iso8859_6}, - {-1}, {-1}, {-1}, -#line 246 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str342, ei_pt154}, - {-1}, {-1}, -#line 32 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str345, ei_ucs2le}, - {-1}, {-1}, -#line 284 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str348, ei_jisx0208}, -#line 338 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str349, ei_gb18030}, -#line 368 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str350, ei_iso2022_kr}, -#line 94 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str351, ei_iso8859_5}, -#line 24 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str352, ei_utf8}, - {-1}, -#line 221 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str354, ei_mac_roman}, -#line 23 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str355, ei_utf8}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 266 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str362, ei_viscii}, -#line 67 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str363, ei_iso8859_2}, - {-1}, -#line 201 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str365, ei_cp1257}, - {-1}, {-1}, -#line 35 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str368, ei_ucs4}, - {-1}, {-1}, -#line 306 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str371, ei_ksc5601}, - {-1}, -#line 299 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str373, ei_gb2312}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 19 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str379, ei_ascii}, -#line 274 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str380, ei_iso646_jp}, -#line 26 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str381, ei_ucs2}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 30 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str387, ei_ucs2be}, - {-1}, -#line 111 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str389, ei_iso8859_7}, -#line 257 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str390, ei_tis620}, - {-1}, {-1}, -#line 239 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str393, ei_armscii_8}, -#line 352 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str394, ei_ces_big5}, -#line 62 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str395, ei_iso8859_1}, -#line 12 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str396, ei_ascii}, -#line 351 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str397, ei_ces_big5}, - {-1}, -#line 41 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str399, ei_utf16le}, -#line 258 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str400, ei_tis620}, -#line 18 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str401, ei_ascii}, - {-1}, {-1}, -#line 151 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str404, ei_iso8859_13}, -#line 304 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str405, ei_isoir165}, - {-1}, {-1}, {-1}, -#line 143 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str409, ei_iso8859_10}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 364 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str415, ei_cp949}, - {-1}, {-1}, -#line 242 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str418, ei_koi8_t}, -#line 191 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str419, ei_cp1253}, -#line 17 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str420, ei_ascii}, - {-1}, {-1}, -#line 134 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str423, ei_iso8859_9}, - {-1}, -#line 184 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str425, ei_cp1251}, - {-1}, -#line 110 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str427, ei_iso8859_7}, -#line 340 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str428, ei_iso2022_cn}, - {-1}, -#line 42 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str430, ei_utf32}, -#line 20 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str431, ei_ascii}, -#line 199 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str432, ei_cp1256}, -#line 88 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str433, ei_iso8859_4}, - {-1}, {-1}, -#line 240 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str436, ei_georgian_academy}, - {-1}, {-1}, -#line 196 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str439, ei_cp1255}, - {-1}, {-1}, {-1}, {-1}, -#line 193 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str444, ei_cp1254}, -#line 103 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str445, ei_iso8859_6}, -#line 247 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str446, ei_pt154}, - {-1}, -#line 272 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str448, ei_iso646_jp}, -#line 337 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str449, ei_cp936}, - {-1}, -#line 205 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str451, ei_cp1258}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 187 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str457, ei_cp1252}, - {-1}, -#line 71 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str459, ei_iso8859_2}, - {-1}, {-1}, -#line 254 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str462, ei_cp1133}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 36 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str468, ei_ucs4}, - {-1}, -#line 309 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str470, ei_ksc5601}, - {-1}, {-1}, {-1}, -#line 341 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str474, ei_iso2022_cn_ext}, - {-1}, {-1}, -#line 181 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str477, ei_cp1250}, - {-1}, -#line 234 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str479, ei_hp_roman8}, - {-1}, {-1}, -#line 44 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str482, ei_utf32le}, -#line 190 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str483, ei_cp1253}, - {-1}, -#line 260 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str485, ei_tis620}, -#line 37 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str486, ei_ucs4be}, -#line 51 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str487, ei_ucs4swapped}, - {-1}, -#line 46 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str489, ei_utf7}, -#line 50 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str490, ei_ucs4internal}, - {-1}, {-1}, -#line 269 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str493, ei_tcvn}, -#line 217 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str494, ei_cp866}, -#line 45 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str495, ei_utf7}, - {-1}, {-1}, {-1}, -#line 28 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str499, ei_ucs2be}, -#line 49 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str500, ei_ucs2swapped}, -#line 224 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str501, ei_mac_iceland}, -#line 31 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str502, ei_ucs2be}, -#line 48 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str503, ei_ucs2internal}, - {-1}, -#line 104 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str505, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 80 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str511, ei_iso8859_3}, - {-1}, -#line 362 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str513, ei_euc_kr}, - {-1}, -#line 219 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str515, ei_mac_roman}, -#line 178 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str516, ei_koi8_u}, - {-1}, -#line 229 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str518, ei_mac_greek}, -#line 179 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str519, ei_koi8_ru}, -#line 268 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str520, ei_tcvn}, -#line 202 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str521, ei_cp1257}, -#line 312 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str522, ei_euc_jp}, -#line 27 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str523, ei_ucs2}, -#line 117 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str524, ei_iso8859_7}, -#line 311 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str525, ei_euc_jp}, -#line 331 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str526, ei_euc_cn}, - {-1}, {-1}, {-1}, {-1}, -#line 332 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str531, ei_euc_cn}, -#line 298 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str532, ei_iso646_cn}, - {-1}, {-1}, {-1}, -#line 197 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str536, ei_cp1255}, -#line 259 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str537, ei_tis620}, -#line 263 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str538, ei_cp874}, - {-1}, {-1}, -#line 160 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str541, ei_iso8859_14}, -#line 350 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str542, ei_ces_big5}, - {-1}, {-1}, -#line 349 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str545, ei_ces_big5}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 40 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str553, ei_utf16be}, - {-1}, -#line 105 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str555, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 321 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str571, ei_iso2022_jp}, - {-1}, {-1}, -#line 323 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str574, ei_iso2022_jp1}, -#line 326 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str575, ei_iso2022_jpms}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 301 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str581, ei_gb2312}, -#line 237 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str582, ei_hp_roman8}, - {-1}, -#line 238 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str584, ei_nextstep}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 283 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str594, ei_jisx0208}, - {-1}, -#line 95 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str596, ei_iso8859_5}, - {-1}, {-1}, -#line 293 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str599, ei_jisx0212}, - {-1}, -#line 313 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str601, ei_euc_jp}, -#line 47 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str602, ei_utf7}, - {-1}, {-1}, -#line 343 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str605, ei_hz}, -#line 324 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str606, ei_iso2022_jp2}, - {-1}, {-1}, {-1}, -#line 227 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str610, ei_mac_cyrillic}, - {-1}, -#line 358 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str612, ei_big5hkscs2008}, - {-1}, {-1}, -#line 357 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str615, ei_big5hkscs2008}, - {-1}, {-1}, -#line 345 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str618, ei_euc_tw}, - {-1}, {-1}, -#line 344 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str621, ei_euc_tw}, - {-1}, {-1}, -#line 200 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str624, ei_cp1256}, - {-1}, -#line 226 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str626, ei_mac_romania}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 43 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str636, ei_utf32be}, - {-1}, {-1}, -#line 53 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str639, ei_java}, - {-1}, -#line 194 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str641, ei_cp1254}, - {-1}, -#line 316 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str643, ei_sjis}, -#line 315 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str644, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 275 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str651, ei_iso646_jp}, - {-1}, -#line 271 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str653, ei_iso646_jp}, - {-1}, -#line 233 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str655, ei_mac_thai}, - {-1}, {-1}, {-1}, -#line 286 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str659, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, -#line 270 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str671, ei_tcvn}, -#line 322 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str672, ei_iso2022_jp}, - {-1}, {-1}, {-1}, -#line 318 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str676, ei_sjis}, - {-1}, {-1}, {-1}, -#line 228 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str680, ei_mac_ukraine}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 225 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str696, ei_mac_croatian}, - {-1}, -#line 124 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str698, ei_iso8859_8}, -#line 29 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str699, ei_ucs2be}, -#line 213 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str700, ei_cp862}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 325 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str706, ei_iso2022_jp2}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, -#line 125 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str719, ei_iso8859_8}, - {-1}, {-1}, {-1}, -#line 370 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str723, ei_local_wchar_t}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 223 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str731, ei_mac_centraleurope}, - {-1}, {-1}, -#line 354 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str734, ei_big5hkscs1999}, -#line 355 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str735, ei_big5hkscs2001}, - {-1}, {-1}, -#line 276 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str738, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 33 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str749, ei_ucs2le}, -#line 288 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str750, ei_jisx0212}, - {-1}, {-1}, {-1}, -#line 356 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str754, ei_big5hkscs2004}, -#line 277 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str755, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, -#line 232 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str760, ei_mac_arabic}, -#line 359 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str761, ei_big5hkscs2008}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 290 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str781, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 280 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str790, ei_jisx0208}, -#line 220 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str791, ei_mac_roman}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, -#line 289 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str803, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 282 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str827, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 281 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str833, ei_jisx0208}, - {-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}, -#line 287 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str864, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 209 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str880, ei_cp850}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 203 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str898, ei_cp1257}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, -#line 319 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str912, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 346 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str931, ei_euc_tw}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 314 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str950, ei_euc_jp}, -#line 365 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str951, ei_johab}, - {-1}, {-1}, {-1}, {-1}, -#line 222 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str956, ei_mac_roman}, - {-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}, -#line 231 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str986, ei_mac_hebrew}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 279 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str1001, ei_jisx0201}, - {-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}, -#line 230 "lib/aliases_syshpux.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str1033, ei_mac_turkish} - }; - -static const struct alias * -aliases_lookup (register const char *str, register size_t len) -{ - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = aliases_hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = aliases[key].name; - if (o >= 0) - { - register const char *s = o + stringpool; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &aliases[key]; - } - } - } - return 0; -} diff --git a/jni/parted/libiconv/lib/aliases_sysosf1.h b/jni/parted/libiconv/lib/aliases_sysosf1.h deleted file mode 100755 index 035e840..0000000 --- a/jni/parted/libiconv/lib/aliases_sysosf1.h +++ /dev/null @@ -1,1789 +0,0 @@ -/* ANSI-C code produced by gperf version 3.2 */ -/* Command-line: gperf -m 10 lib/aliases_sysosf1.gperf */ -/* Computed positions: -k'1,3-11,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 1 "lib/aliases_sysosf1.gperf" -struct alias { int name; unsigned int encoding_index; }; - -#define TOTAL_KEYWORDS 354 -#define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 15 -#define MAX_HASH_VALUE 981 -/* maximum key range = 967, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -aliases_hash (register const char *str, register size_t len) -{ - static const unsigned short asso_values[] = - { - 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 5, 96, 982, 97, 7, - 33, 102, 15, 17, 5, 173, 23, 25, 298, 982, - 982, 982, 982, 982, 982, 168, 248, 11, 26, 25, - 17, 29, 29, 6, 139, 153, 8, 132, 7, 6, - 114, 982, 5, 8, 30, 235, 185, 182, 225, 5, - 18, 982, 982, 982, 982, 6, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, - 982, 982, 982, 982, 982, 982, 982, 982 - }; - register unsigned int hval = len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[10]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 10: - hval += asso_values[(unsigned char)str[9]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 9: - hval += asso_values[(unsigned char)str[8]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 8: - hval += asso_values[(unsigned char)str[7]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 7: - hval += asso_values[(unsigned char)str[6]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 6: - hval += asso_values[(unsigned char)str[5]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 5: - hval += asso_values[(unsigned char)str[4]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 4: - hval += asso_values[(unsigned char)str[3]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 3: - hval += asso_values[(unsigned char)str[2]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct stringpool_t - { - char stringpool_str15[sizeof("L6")]; - char stringpool_str17[sizeof("L1")]; - char stringpool_str20[sizeof("CN")]; - char stringpool_str25[sizeof("L4")]; - char stringpool_str27[sizeof("L5")]; - char stringpool_str30[sizeof("R8")]; - char stringpool_str33[sizeof("L8")]; - char stringpool_str34[sizeof("SJIS")]; - char stringpool_str36[sizeof("866")]; - char stringpool_str43[sizeof("L2")]; - char stringpool_str49[sizeof("HZ")]; - char stringpool_str51[sizeof("ISO-IR-6")]; - char stringpool_str54[sizeof("CP866")]; - char stringpool_str64[sizeof("C99")]; - char stringpool_str65[sizeof("ISO-IR-166")]; - char stringpool_str66[sizeof("EUCCN")]; - char stringpool_str67[sizeof("LATIN6")]; - char stringpool_str70[sizeof("CP154")]; - char stringpool_str71[sizeof("LATIN1")]; - char stringpool_str72[sizeof("EUC-CN")]; - char stringpool_str74[sizeof("CYRILLIC")]; - char stringpool_str76[sizeof("ISO646-CN")]; - char stringpool_str79[sizeof("ISO-IR-14")]; - char stringpool_str84[sizeof("CP1256")]; - char stringpool_str87[sizeof("LATIN4")]; - char stringpool_str88[sizeof("CP1251")]; - char stringpool_str89[sizeof("ISO-IR-165")]; - char stringpool_str91[sizeof("LATIN5")]; - char stringpool_str92[sizeof("862")]; - char stringpool_str93[sizeof("ISO-IR-126")]; - char stringpool_str95[sizeof("ISO-IR-144")]; - char stringpool_str96[sizeof("CP819")]; - char stringpool_str99[sizeof("TACTIS")]; - char stringpool_str103[sizeof("LATIN8")]; - char stringpool_str104[sizeof("CP1254")]; - char stringpool_str105[sizeof("ISO-IR-58")]; - char stringpool_str106[sizeof("CP949")]; - char stringpool_str108[sizeof("CP1255")]; - char stringpool_str110[sizeof("CP862")]; - char stringpool_str111[sizeof("ISO-IR-148")]; - char stringpool_str112[sizeof("L3")]; - char stringpool_str113[sizeof("LATIN-9")]; - char stringpool_str114[sizeof("CHINESE")]; - char stringpool_str115[sizeof("ISO-IR-149")]; - char stringpool_str117[sizeof("ISO-IR-159")]; - char stringpool_str119[sizeof("ISO-IR-226")]; - char stringpool_str120[sizeof("CP1258")]; - char stringpool_str123[sizeof("LATIN2")]; - char stringpool_str124[sizeof("ISO8859-6")]; - char stringpool_str125[sizeof("ISO-IR-199")]; - char stringpool_str128[sizeof("ISO8859-1")]; - char stringpool_str129[sizeof("ISO-CELTIC")]; - char stringpool_str130[sizeof("ISO-8859-6")]; - char stringpool_str131[sizeof("ISO_8859-6")]; - char stringpool_str132[sizeof("ISO8859-16")]; - char stringpool_str134[sizeof("ISO-8859-1")]; - char stringpool_str135[sizeof("ISO_8859-1")]; - char stringpool_str136[sizeof("ISO8859-11")]; - char stringpool_str138[sizeof("ISO-8859-16")]; - char stringpool_str139[sizeof("ISO_8859-16")]; - char stringpool_str140[sizeof("CP1252")]; - char stringpool_str142[sizeof("ISO-8859-11")]; - char stringpool_str143[sizeof("ISO_8859-11")]; - char stringpool_str144[sizeof("ISO8859-4")]; - char stringpool_str145[sizeof("CP1361")]; - char stringpool_str146[sizeof("ISO_8859-16:2001")]; - char stringpool_str147[sizeof("CP1131")]; - char stringpool_str148[sizeof("ISO8859-5")]; - char stringpool_str150[sizeof("ISO-8859-4")]; - char stringpool_str151[sizeof("ISO_8859-4")]; - char stringpool_str152[sizeof("ISO8859-14")]; - char stringpool_str153[sizeof("CP936")]; - char stringpool_str154[sizeof("ISO-8859-5")]; - char stringpool_str155[sizeof("ISO_8859-5")]; - char stringpool_str156[sizeof("ISO8859-15")]; - char stringpool_str157[sizeof("MAC")]; - char stringpool_str158[sizeof("ISO-8859-14")]; - char stringpool_str159[sizeof("ISO_8859-14")]; - char stringpool_str160[sizeof("ISO8859-8")]; - char stringpool_str161[sizeof("ISO-IR-101")]; - char stringpool_str162[sizeof("ISO-8859-15")]; - char stringpool_str163[sizeof("ISO_8859-15")]; - char stringpool_str164[sizeof("ISO8859-9")]; - char stringpool_str166[sizeof("ISO-8859-8")]; - char stringpool_str167[sizeof("ISO_8859-8")]; - char stringpool_str170[sizeof("ISO-8859-9")]; - char stringpool_str171[sizeof("ISO_8859-9")]; - char stringpool_str172[sizeof("ISO_8859-14:1998")]; - char stringpool_str173[sizeof("PT154")]; - char stringpool_str174[sizeof("ISO_8859-15:1998")]; - char stringpool_str176[sizeof("RK1048")]; - char stringpool_str179[sizeof("ELOT_928")]; - char stringpool_str180[sizeof("ISO8859-2")]; - char stringpool_str181[sizeof("MS-CYRL")]; - char stringpool_str182[sizeof("IBM866")]; - char stringpool_str183[sizeof("L7")]; - char stringpool_str186[sizeof("ISO-8859-2")]; - char stringpool_str187[sizeof("ISO_8859-2")]; - char stringpool_str193[sizeof("CHAR")]; - char stringpool_str197[sizeof("ISO-IR-109")]; - char stringpool_str198[sizeof("ISO-IR-138")]; - char stringpool_str202[sizeof("ASCII")]; - char stringpool_str203[sizeof("KOI8-R")]; - char stringpool_str204[sizeof("EUCKR")]; - char stringpool_str205[sizeof("L10")]; - char stringpool_str209[sizeof("CP932")]; - char stringpool_str210[sizeof("EUC-KR")]; - char stringpool_str212[sizeof("CP50221")]; - char stringpool_str216[sizeof("CSKOI8R")]; - char stringpool_str217[sizeof("MS-EE")]; - char stringpool_str220[sizeof("850")]; - char stringpool_str223[sizeof("CSASCII")]; - char stringpool_str224[sizeof("IBM819")]; - char stringpool_str225[sizeof("MACCYRILLIC")]; - char stringpool_str228[sizeof("VISCII")]; - char stringpool_str233[sizeof("TCVN")]; - char stringpool_str236[sizeof("SHIFT-JIS")]; - char stringpool_str237[sizeof("SHIFT_JIS")]; - char stringpool_str238[sizeof("IBM862")]; - char stringpool_str240[sizeof("CSISO14JISC6220RO")]; - char stringpool_str242[sizeof("CP874")]; - char stringpool_str243[sizeof("GB2312")]; - char stringpool_str245[sizeof("US")]; - char stringpool_str247[sizeof("CSVISCII")]; - char stringpool_str250[sizeof("CP850")]; - char stringpool_str251[sizeof("ISO-IR-110")]; - char stringpool_str252[sizeof("CP950")]; - char stringpool_str253[sizeof("KOI8-T")]; - char stringpool_str254[sizeof("ISO-2022-CN")]; - char stringpool_str255[sizeof("JP")]; - char stringpool_str257[sizeof("CYRILLIC-ASIAN")]; - char stringpool_str259[sizeof("LATIN10")]; - char stringpool_str260[sizeof("UHC")]; - char stringpool_str261[sizeof("LATIN3")]; - char stringpool_str263[sizeof("CSISO2022CN")]; - char stringpool_str264[sizeof("ISO_8859-10:1992")]; - char stringpool_str267[sizeof("MACINTOSH")]; - char stringpool_str268[sizeof("CP1250")]; - char stringpool_str271[sizeof("CSISOLATIN6")]; - char stringpool_str272[sizeof("CSSHIFTJIS")]; - char stringpool_str273[sizeof("ISO-IR-179")]; - char stringpool_str274[sizeof("MS936")]; - char stringpool_str275[sizeof("CSISOLATIN1")]; - char stringpool_str276[sizeof("TIS620")]; - char stringpool_str278[sizeof("CP1253")]; - char stringpool_str279[sizeof("DECHANZI")]; - char stringpool_str280[sizeof("UTF-16")]; - char stringpool_str281[sizeof("ISO-2022-CN-EXT")]; - char stringpool_str282[sizeof("TIS-620")]; - char stringpool_str283[sizeof("UCS-4")]; - char stringpool_str284[sizeof("GREEK8")]; - char stringpool_str290[sizeof("CSISOLATINCYRILLIC")]; - char stringpool_str291[sizeof("CSISOLATIN4")]; - char stringpool_str295[sizeof("CSISOLATIN5")]; - char stringpool_str300[sizeof("PTCP154")]; - char stringpool_str301[sizeof("CSUCS4")]; - char stringpool_str302[sizeof("ISO646-US")]; - char stringpool_str304[sizeof("KSC5601")]; - char stringpool_str308[sizeof("UTF-8")]; - char stringpool_str311[sizeof("KSC_5601")]; - char stringpool_str315[sizeof("BIG5")]; - char stringpool_str316[sizeof("ISO8859-10")]; - char stringpool_str318[sizeof("ISO8859-3")]; - char stringpool_str319[sizeof("UCS-2")]; - char stringpool_str321[sizeof("BIG-5")]; - char stringpool_str322[sizeof("ISO-8859-10")]; - char stringpool_str323[sizeof("ISO_8859-10")]; - char stringpool_str324[sizeof("ISO-8859-3")]; - char stringpool_str325[sizeof("ISO_8859-3")]; - char stringpool_str326[sizeof("ISO8859-13")]; - char stringpool_str327[sizeof("CSISOLATIN2")]; - char stringpool_str328[sizeof("UCS-4LE")]; - char stringpool_str330[sizeof("KZ-1048")]; - char stringpool_str332[sizeof("ISO-8859-13")]; - char stringpool_str333[sizeof("ISO_8859-13")]; - char stringpool_str334[sizeof("CSBIG5")]; - char stringpool_str335[sizeof("UTF-16LE")]; - char stringpool_str336[sizeof("X0212")]; - char stringpool_str337[sizeof("CP1133")]; - char stringpool_str338[sizeof("GBK")]; - char stringpool_str339[sizeof("MS-ANSI")]; - char stringpool_str340[sizeof("CN-BIG5")]; - char stringpool_str341[sizeof("ISO-IR-100")]; - char stringpool_str343[sizeof("CSPTCP154")]; - char stringpool_str345[sizeof("GB_1988-80")]; - char stringpool_str346[sizeof("UCS-2LE")]; - char stringpool_str350[sizeof("CSISO159JISX02121990")]; - char stringpool_str351[sizeof("UNICODE-1-1")]; - char stringpool_str353[sizeof("KS_C_5601-1989")]; - char stringpool_str355[sizeof("CSKZ1048")]; - char stringpool_str356[sizeof("VISCII1.1-1")]; - char stringpool_str358[sizeof("ISO_646.IRV:1991")]; - char stringpool_str359[sizeof("CSUNICODE11")]; - char stringpool_str360[sizeof("CN-GB-ISOIR165")]; - char stringpool_str361[sizeof("CSUNICODE")]; - char stringpool_str363[sizeof("UCS-4-INTERNAL")]; - char stringpool_str364[sizeof("ROMAN8")]; - char stringpool_str367[sizeof("JIS_C6220-1969-RO")]; - char stringpool_str368[sizeof("JIS_C6226-1983")]; - char stringpool_str371[sizeof("KOREAN")]; - char stringpool_str374[sizeof("X0201")]; - char stringpool_str375[sizeof("MULELAO-1")]; - char stringpool_str377[sizeof("ISO-IR-203")]; - char stringpool_str378[sizeof("IBM850")]; - char stringpool_str380[sizeof("TIS620-0")]; - char stringpool_str381[sizeof("UCS-2-INTERNAL")]; - char stringpool_str382[sizeof("ECMA-114")]; - char stringpool_str389[sizeof("MACTHAI")]; - char stringpool_str390[sizeof("GREEK")]; - char stringpool_str391[sizeof("ARMSCII-8")]; - char stringpool_str392[sizeof("ISO-2022-KR")]; - char stringpool_str396[sizeof("GEORGIAN-PS")]; - char stringpool_str397[sizeof("TIS620.2529-1")]; - char stringpool_str398[sizeof("ECMA-118")]; - char stringpool_str401[sizeof("CSISO2022KR")]; - char stringpool_str403[sizeof("LATIN7")]; - char stringpool_str405[sizeof("ISO-IR-57")]; - char stringpool_str406[sizeof("X0208")]; - char stringpool_str407[sizeof("HP-ROMAN8")]; - char stringpool_str408[sizeof("EUCJP")]; - char stringpool_str411[sizeof("ISO-IR-87")]; - char stringpool_str413[sizeof("ISO-IR-157")]; - char stringpool_str414[sizeof("EUC-JP")]; - char stringpool_str416[sizeof("ISO-10646-UCS-4")]; - char stringpool_str417[sizeof("DECKOREAN")]; - char stringpool_str418[sizeof("ISO646-JP")]; - char stringpool_str420[sizeof("CP1257")]; - char stringpool_str421[sizeof("UNICODELITTLE")]; - char stringpool_str427[sizeof("JIS0208")]; - char stringpool_str429[sizeof("ISO-IR-127")]; - char stringpool_str430[sizeof("MACICELAND")]; - char stringpool_str431[sizeof("UTF-32")]; - char stringpool_str434[sizeof("ISO-10646-UCS-2")]; - char stringpool_str435[sizeof("EUCTW")]; - char stringpool_str441[sizeof("EUC-TW")]; - char stringpool_str442[sizeof("GB_2312-80")]; - char stringpool_str443[sizeof("CSIBM866")]; - char stringpool_str445[sizeof("CSISOLATINARABIC")]; - char stringpool_str447[sizeof("CSISOLATINGREEK")]; - char stringpool_str448[sizeof("CSMACINTOSH")]; - char stringpool_str452[sizeof("CSEUCKR")]; - char stringpool_str453[sizeof("US-ASCII")]; - char stringpool_str455[sizeof("GEORGIAN-ACADEMY")]; - char stringpool_str456[sizeof("MS-HEBR")]; - char stringpool_str457[sizeof("WCHAR_T")]; - char stringpool_str458[sizeof("UTF-32LE")]; - char stringpool_str459[sizeof("GB18030")]; - char stringpool_str460[sizeof("ISO8859-7")]; - char stringpool_str462[sizeof("ISO_8859-4:1988")]; - char stringpool_str463[sizeof("MACCENTRALEUROPE")]; - char stringpool_str464[sizeof("ISO_8859-5:1988")]; - char stringpool_str465[sizeof("CSISOLATIN3")]; - char stringpool_str466[sizeof("ISO-8859-7")]; - char stringpool_str467[sizeof("ISO_8859-7")]; - char stringpool_str469[sizeof("CP367")]; - char stringpool_str470[sizeof("ISO_8859-8:1988")]; - char stringpool_str474[sizeof("ISO_8859-9:1989")]; - char stringpool_str476[sizeof("MACROMAN")]; - char stringpool_str477[sizeof("CSISOLATINHEBREW")]; - char stringpool_str481[sizeof("TCVN5712-1")]; - char stringpool_str482[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; - char stringpool_str489[sizeof("STRK1048-2002")]; - char stringpool_str490[sizeof("WINDOWS-1256")]; - char stringpool_str491[sizeof("ISO-2022-JP-1")]; - char stringpool_str492[sizeof("WINDOWS-1251")]; - char stringpool_str493[sizeof("ISO-2022-JP-MS")]; - char stringpool_str499[sizeof("TCVN-5712")]; - char stringpool_str500[sizeof("WINDOWS-1254")]; - char stringpool_str501[sizeof("KS_C_5601-1987")]; - char stringpool_str502[sizeof("WINDOWS-1255")]; - char stringpool_str504[sizeof("CSGB2312")]; - char stringpool_str508[sizeof("WINDOWS-1258")]; - char stringpool_str517[sizeof("ISO-2022-JP-2")]; - char stringpool_str518[sizeof("WINDOWS-1252")]; - char stringpool_str520[sizeof("BIG5HKSCS")]; - char stringpool_str523[sizeof("UNICODE-1-1-UTF-7")]; - char stringpool_str525[sizeof("CSISO2022JP2")]; - char stringpool_str526[sizeof("BIG5-HKSCS")]; - char stringpool_str527[sizeof("CSKSC56011987")]; - char stringpool_str528[sizeof("CSHPROMAN8")]; - char stringpool_str529[sizeof("CSUNICODE11UTF7")]; - char stringpool_str532[sizeof("SDECKANJI")]; - char stringpool_str534[sizeof("HZ-GB-2312")]; - char stringpool_str535[sizeof("MS-GREEK")]; - char stringpool_str541[sizeof("MACGREEK")]; - char stringpool_str542[sizeof("BIGFIVE")]; - char stringpool_str543[sizeof("TIS620.2533-1")]; - char stringpool_str546[sizeof("CN-GB")]; - char stringpool_str548[sizeof("BIG-FIVE")]; - char stringpool_str549[sizeof("ISO_8859-3:1988")]; - char stringpool_str561[sizeof("NEXTSTEP")]; - char stringpool_str562[sizeof("MACCROATIAN")]; - char stringpool_str564[sizeof("WINDOWS-936")]; - char stringpool_str566[sizeof("CSISO57GB1988")]; - char stringpool_str568[sizeof("UCS-4BE")]; - char stringpool_str575[sizeof("UTF-16BE")]; - char stringpool_str582[sizeof("WINDOWS-1250")]; - char stringpool_str586[sizeof("UCS-2BE")]; - char stringpool_str587[sizeof("WINDOWS-1253")]; - char stringpool_str590[sizeof("JIS_X0212")]; - char stringpool_str595[sizeof("CSISO58GB231280")]; - char stringpool_str596[sizeof("ISO-2022-JP")]; - char stringpool_str597[sizeof("IBM367")]; - char stringpool_str598[sizeof("IBM-CP1133")]; - char stringpool_str602[sizeof("ISO_8859-6:1987")]; - char stringpool_str604[sizeof("ISO_8859-1:1987")]; - char stringpool_str605[sizeof("CSISO2022JP")]; - char stringpool_str608[sizeof("UTF-7")]; - char stringpool_str609[sizeof("CSPC862LATINHEBREW")]; - char stringpool_str618[sizeof("ARABIC")]; - char stringpool_str625[sizeof("MS_KANJI")]; - char stringpool_str628[sizeof("JIS_X0201")]; - char stringpool_str630[sizeof("ISO_8859-2:1987")]; - char stringpool_str631[sizeof("UNICODEBIG")]; - char stringpool_str633[sizeof("TIS620.2533-0")]; - char stringpool_str635[sizeof("ASMO-708")]; - char stringpool_str643[sizeof("CSISO87JISX0208")]; - char stringpool_str648[sizeof("MACTURKISH")]; - char stringpool_str653[sizeof("WINDOWS-874")]; - char stringpool_str657[sizeof("ANSI_X3.4-1986")]; - char stringpool_str658[sizeof("WINDOWS-1257")]; - char stringpool_str660[sizeof("JIS_X0208")]; - char stringpool_str661[sizeof("JISX0201-1976")]; - char stringpool_str663[sizeof("KOI8-U")]; - char stringpool_str664[sizeof("JAVA")]; - char stringpool_str669[sizeof("KOI8-RU")]; - char stringpool_str671[sizeof("JIS_X0212-1990")]; - char stringpool_str675[sizeof("ANSI_X3.4-1968")]; - char stringpool_str677[sizeof("HEBREW")]; - char stringpool_str683[sizeof("CSEUCTW")]; - char stringpool_str693[sizeof("CSHALFWIDTHKATAKANA")]; - char stringpool_str698[sizeof("UTF-32BE")]; - char stringpool_str699[sizeof("ISO_8859-7:2003")]; - char stringpool_str705[sizeof("CSPC850MULTILINGUAL")]; - char stringpool_str720[sizeof("MS-TURK")]; - char stringpool_str751[sizeof("JIS_X0208-1990")]; - char stringpool_str756[sizeof("JIS_X0208-1983")]; - char stringpool_str764[sizeof("JIS_X0212.1990-0")]; - char stringpool_str769[sizeof("MACARABIC")]; - char stringpool_str770[sizeof("ISO_8859-7:1987")]; - char stringpool_str777[sizeof("MACUKRAINE")]; - char stringpool_str798[sizeof("CSEUCPKDFMTJAPANESE")]; - char stringpool_str813[sizeof("MACROMANIA")]; - char stringpool_str828[sizeof("BIG5-HKSCS:2001")]; - char stringpool_str836[sizeof("BIG5-HKSCS:2004")]; - char stringpool_str837[sizeof("JOHAB")]; - char stringpool_str844[sizeof("BIG5-HKSCS:2008")]; - char stringpool_str846[sizeof("BIG5-HKSCS:1999")]; - char stringpool_str848[sizeof("MACHEBREW")]; - char stringpool_str879[sizeof("TCVN5712-1:1993")]; - char stringpool_str893[sizeof("UCS-4-SWAPPED")]; - char stringpool_str911[sizeof("UCS-2-SWAPPED")]; - char stringpool_str928[sizeof("WINBALTRIM")]; - char stringpool_str981[sizeof("MS-ARAB")]; - }; -static const struct stringpool_t stringpool_contents = - { - "L6", - "L1", - "CN", - "L4", - "L5", - "R8", - "L8", - "SJIS", - "866", - "L2", - "HZ", - "ISO-IR-6", - "CP866", - "C99", - "ISO-IR-166", - "EUCCN", - "LATIN6", - "CP154", - "LATIN1", - "EUC-CN", - "CYRILLIC", - "ISO646-CN", - "ISO-IR-14", - "CP1256", - "LATIN4", - "CP1251", - "ISO-IR-165", - "LATIN5", - "862", - "ISO-IR-126", - "ISO-IR-144", - "CP819", - "TACTIS", - "LATIN8", - "CP1254", - "ISO-IR-58", - "CP949", - "CP1255", - "CP862", - "ISO-IR-148", - "L3", - "LATIN-9", - "CHINESE", - "ISO-IR-149", - "ISO-IR-159", - "ISO-IR-226", - "CP1258", - "LATIN2", - "ISO8859-6", - "ISO-IR-199", - "ISO8859-1", - "ISO-CELTIC", - "ISO-8859-6", - "ISO_8859-6", - "ISO8859-16", - "ISO-8859-1", - "ISO_8859-1", - "ISO8859-11", - "ISO-8859-16", - "ISO_8859-16", - "CP1252", - "ISO-8859-11", - "ISO_8859-11", - "ISO8859-4", - "CP1361", - "ISO_8859-16:2001", - "CP1131", - "ISO8859-5", - "ISO-8859-4", - "ISO_8859-4", - "ISO8859-14", - "CP936", - "ISO-8859-5", - "ISO_8859-5", - "ISO8859-15", - "MAC", - "ISO-8859-14", - "ISO_8859-14", - "ISO8859-8", - "ISO-IR-101", - "ISO-8859-15", - "ISO_8859-15", - "ISO8859-9", - "ISO-8859-8", - "ISO_8859-8", - "ISO-8859-9", - "ISO_8859-9", - "ISO_8859-14:1998", - "PT154", - "ISO_8859-15:1998", - "RK1048", - "ELOT_928", - "ISO8859-2", - "MS-CYRL", - "IBM866", - "L7", - "ISO-8859-2", - "ISO_8859-2", - "CHAR", - "ISO-IR-109", - "ISO-IR-138", - "ASCII", - "KOI8-R", - "EUCKR", - "L10", - "CP932", - "EUC-KR", - "CP50221", - "CSKOI8R", - "MS-EE", - "850", - "CSASCII", - "IBM819", - "MACCYRILLIC", - "VISCII", - "TCVN", - "SHIFT-JIS", - "SHIFT_JIS", - "IBM862", - "CSISO14JISC6220RO", - "CP874", - "GB2312", - "US", - "CSVISCII", - "CP850", - "ISO-IR-110", - "CP950", - "KOI8-T", - "ISO-2022-CN", - "JP", - "CYRILLIC-ASIAN", - "LATIN10", - "UHC", - "LATIN3", - "CSISO2022CN", - "ISO_8859-10:1992", - "MACINTOSH", - "CP1250", - "CSISOLATIN6", - "CSSHIFTJIS", - "ISO-IR-179", - "MS936", - "CSISOLATIN1", - "TIS620", - "CP1253", - "DECHANZI", - "UTF-16", - "ISO-2022-CN-EXT", - "TIS-620", - "UCS-4", - "GREEK8", - "CSISOLATINCYRILLIC", - "CSISOLATIN4", - "CSISOLATIN5", - "PTCP154", - "CSUCS4", - "ISO646-US", - "KSC5601", - "UTF-8", - "KSC_5601", - "BIG5", - "ISO8859-10", - "ISO8859-3", - "UCS-2", - "BIG-5", - "ISO-8859-10", - "ISO_8859-10", - "ISO-8859-3", - "ISO_8859-3", - "ISO8859-13", - "CSISOLATIN2", - "UCS-4LE", - "KZ-1048", - "ISO-8859-13", - "ISO_8859-13", - "CSBIG5", - "UTF-16LE", - "X0212", - "CP1133", - "GBK", - "MS-ANSI", - "CN-BIG5", - "ISO-IR-100", - "CSPTCP154", - "GB_1988-80", - "UCS-2LE", - "CSISO159JISX02121990", - "UNICODE-1-1", - "KS_C_5601-1989", - "CSKZ1048", - "VISCII1.1-1", - "ISO_646.IRV:1991", - "CSUNICODE11", - "CN-GB-ISOIR165", - "CSUNICODE", - "UCS-4-INTERNAL", - "ROMAN8", - "JIS_C6220-1969-RO", - "JIS_C6226-1983", - "KOREAN", - "X0201", - "MULELAO-1", - "ISO-IR-203", - "IBM850", - "TIS620-0", - "UCS-2-INTERNAL", - "ECMA-114", - "MACTHAI", - "GREEK", - "ARMSCII-8", - "ISO-2022-KR", - "GEORGIAN-PS", - "TIS620.2529-1", - "ECMA-118", - "CSISO2022KR", - "LATIN7", - "ISO-IR-57", - "X0208", - "HP-ROMAN8", - "EUCJP", - "ISO-IR-87", - "ISO-IR-157", - "EUC-JP", - "ISO-10646-UCS-4", - "DECKOREAN", - "ISO646-JP", - "CP1257", - "UNICODELITTLE", - "JIS0208", - "ISO-IR-127", - "MACICELAND", - "UTF-32", - "ISO-10646-UCS-2", - "EUCTW", - "EUC-TW", - "GB_2312-80", - "CSIBM866", - "CSISOLATINARABIC", - "CSISOLATINGREEK", - "CSMACINTOSH", - "CSEUCKR", - "US-ASCII", - "GEORGIAN-ACADEMY", - "MS-HEBR", - "WCHAR_T", - "UTF-32LE", - "GB18030", - "ISO8859-7", - "ISO_8859-4:1988", - "MACCENTRALEUROPE", - "ISO_8859-5:1988", - "CSISOLATIN3", - "ISO-8859-7", - "ISO_8859-7", - "CP367", - "ISO_8859-8:1988", - "ISO_8859-9:1989", - "MACROMAN", - "CSISOLATINHEBREW", - "TCVN5712-1", - "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", - "STRK1048-2002", - "WINDOWS-1256", - "ISO-2022-JP-1", - "WINDOWS-1251", - "ISO-2022-JP-MS", - "TCVN-5712", - "WINDOWS-1254", - "KS_C_5601-1987", - "WINDOWS-1255", - "CSGB2312", - "WINDOWS-1258", - "ISO-2022-JP-2", - "WINDOWS-1252", - "BIG5HKSCS", - "UNICODE-1-1-UTF-7", - "CSISO2022JP2", - "BIG5-HKSCS", - "CSKSC56011987", - "CSHPROMAN8", - "CSUNICODE11UTF7", - "SDECKANJI", - "HZ-GB-2312", - "MS-GREEK", - "MACGREEK", - "BIGFIVE", - "TIS620.2533-1", - "CN-GB", - "BIG-FIVE", - "ISO_8859-3:1988", - "NEXTSTEP", - "MACCROATIAN", - "WINDOWS-936", - "CSISO57GB1988", - "UCS-4BE", - "UTF-16BE", - "WINDOWS-1250", - "UCS-2BE", - "WINDOWS-1253", - "JIS_X0212", - "CSISO58GB231280", - "ISO-2022-JP", - "IBM367", - "IBM-CP1133", - "ISO_8859-6:1987", - "ISO_8859-1:1987", - "CSISO2022JP", - "UTF-7", - "CSPC862LATINHEBREW", - "ARABIC", - "MS_KANJI", - "JIS_X0201", - "ISO_8859-2:1987", - "UNICODEBIG", - "TIS620.2533-0", - "ASMO-708", - "CSISO87JISX0208", - "MACTURKISH", - "WINDOWS-874", - "ANSI_X3.4-1986", - "WINDOWS-1257", - "JIS_X0208", - "JISX0201-1976", - "KOI8-U", - "JAVA", - "KOI8-RU", - "JIS_X0212-1990", - "ANSI_X3.4-1968", - "HEBREW", - "CSEUCTW", - "CSHALFWIDTHKATAKANA", - "UTF-32BE", - "ISO_8859-7:2003", - "CSPC850MULTILINGUAL", - "MS-TURK", - "JIS_X0208-1990", - "JIS_X0208-1983", - "JIS_X0212.1990-0", - "MACARABIC", - "ISO_8859-7:1987", - "MACUKRAINE", - "CSEUCPKDFMTJAPANESE", - "MACROMANIA", - "BIG5-HKSCS:2001", - "BIG5-HKSCS:2004", - "JOHAB", - "BIG5-HKSCS:2008", - "BIG5-HKSCS:1999", - "MACHEBREW", - "TCVN5712-1:1993", - "UCS-4-SWAPPED", - "UCS-2-SWAPPED", - "WINBALTRIM", - "MS-ARAB" - }; -#define stringpool ((const char *) &stringpool_contents) - -static const struct alias aliases[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 134 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, ei_iso8859_10}, - {-1}, -#line 60 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str17, ei_iso8859_1}, - {-1}, {-1}, -#line 289 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str20, ei_iso646_cn}, - {-1}, {-1}, {-1}, {-1}, -#line 84 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, ei_iso8859_4}, - {-1}, -#line 126 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str27, ei_iso8859_9}, - {-1}, {-1}, -#line 227 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, ei_hp_roman8}, - {-1}, {-1}, -#line 151 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str33, ei_iso8859_14}, -#line 310 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, ei_sjis}, - {-1}, -#line 207 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str36, ei_cp866}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 68 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str43, ei_iso8859_2}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 335 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str49, ei_hz}, - {-1}, -#line 16 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str51, ei_ascii}, - {-1}, {-1}, -#line 205 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str54, ei_cp866}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 51 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, ei_c99}, -#line 252 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str65, ei_tis620}, -#line 322 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str66, ei_euc_cn}, -#line 133 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str67, ei_iso8859_10}, - {-1}, {-1}, -#line 236 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str70, ei_pt154}, -#line 59 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str71, ei_iso8859_1}, -#line 321 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str72, ei_euc_cn}, - {-1}, -#line 91 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str74, ei_iso8859_5}, - {-1}, -#line 287 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str76, ei_iso646_cn}, - {-1}, {-1}, -#line 265 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str79, ei_iso646_jp}, - {-1}, {-1}, {-1}, {-1}, -#line 189 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str84, ei_cp1256}, - {-1}, {-1}, -#line 83 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str87, ei_iso8859_4}, -#line 174 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str88, ei_cp1251}, -#line 295 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str89, ei_isoir165}, - {-1}, -#line 125 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str91, ei_iso8859_9}, -#line 203 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str92, ei_cp862}, -#line 107 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str93, ei_iso8859_7}, - {-1}, -#line 90 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str95, ei_iso8859_5}, -#line 57 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str96, ei_iso8859_1}, - {-1}, {-1}, -#line 253 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str99, ei_tis620}, - {-1}, {-1}, {-1}, -#line 150 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str103, ei_iso8859_14}, -#line 183 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str104, ei_cp1254}, -#line 292 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str105, ei_gb2312}, -#line 357 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str106, ei_cp949}, - {-1}, -#line 186 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str108, ei_cp1255}, - {-1}, -#line 201 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str110, ei_cp862}, -#line 124 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_9}, -#line 76 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str112, ei_iso8859_3}, -#line 158 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str113, ei_iso8859_15}, -#line 294 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str114, ei_gb2312}, -#line 300 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str115, ei_ksc5601}, - {-1}, -#line 284 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str117, ei_jisx0212}, - {-1}, -#line 163 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_16}, -#line 195 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str120, ei_cp1258}, - {-1}, {-1}, -#line 67 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str123, ei_iso8859_2}, -#line 102 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str124, ei_iso8859_6}, -#line 149 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str125, ei_iso8859_14}, - {-1}, {-1}, -#line 62 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str128, ei_iso8859_1}, -#line 152 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str129, ei_iso8859_14}, -#line 94 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str130, ei_iso8859_6}, -#line 95 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str131, ei_iso8859_6}, -#line 166 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str132, ei_iso8859_16}, - {-1}, -#line 53 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str134, ei_iso8859_1}, -#line 54 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str135, ei_iso8859_1}, -#line 139 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str136, ei_iso8859_11}, - {-1}, -#line 160 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str138, ei_iso8859_16}, -#line 161 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str139, ei_iso8859_16}, -#line 177 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str140, ei_cp1252}, - {-1}, -#line 137 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_11}, -#line 138 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_11}, -#line 86 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str144, ei_iso8859_4}, -#line 361 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str145, ei_johab}, -#line 162 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str146, ei_iso8859_16}, -#line 209 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str147, ei_cp1131}, -#line 93 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_5}, - {-1}, -#line 79 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str150, ei_iso8859_4}, -#line 80 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str151, ei_iso8859_4}, -#line 153 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str152, ei_iso8859_14}, -#line 328 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str153, ei_cp936}, -#line 87 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_5}, -#line 88 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_5}, -#line 159 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str156, ei_iso8859_15}, -#line 212 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str157, ei_mac_roman}, -#line 146 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str158, ei_iso8859_14}, -#line 147 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str159, ei_iso8859_14}, -#line 120 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str160, ei_iso8859_8}, -#line 66 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str161, ei_iso8859_2}, -#line 154 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str162, ei_iso8859_15}, -#line 155 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str163, ei_iso8859_15}, -#line 128 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str164, ei_iso8859_9}, - {-1}, -#line 114 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str166, ei_iso8859_8}, -#line 115 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str167, ei_iso8859_8}, - {-1}, {-1}, -#line 121 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str170, ei_iso8859_9}, -#line 122 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str171, ei_iso8859_9}, -#line 148 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str172, ei_iso8859_14}, -#line 234 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str173, ei_pt154}, -#line 156 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str174, ei_iso8859_15}, - {-1}, -#line 239 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str176, ei_rk1048}, - {-1}, {-1}, -#line 109 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_7}, -#line 70 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str180, ei_iso8859_2}, -#line 176 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str181, ei_cp1251}, -#line 206 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str182, ei_cp866}, -#line 144 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str183, ei_iso8859_13}, - {-1}, {-1}, -#line 63 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str186, ei_iso8859_2}, -#line 64 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str187, ei_iso8859_2}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 364 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str193, ei_local_char}, - {-1}, {-1}, {-1}, -#line 74 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_3}, -#line 117 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str198, ei_iso8859_8}, - {-1}, {-1}, {-1}, -#line 13 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str202, ei_ascii}, -#line 167 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str203, ei_koi8_r}, -#line 354 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str204, ei_euc_kr}, -#line 165 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str205, ei_iso8859_16}, - {-1}, {-1}, {-1}, -#line 313 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str209, ei_cp932}, -#line 353 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str210, ei_euc_kr}, - {-1}, -#line 320 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str212, ei_iso2022_jpms}, - {-1}, {-1}, {-1}, -#line 168 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str216, ei_koi8_r}, -#line 173 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str217, ei_cp1250}, - {-1}, {-1}, -#line 199 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str220, ei_cp850}, - {-1}, {-1}, -#line 22 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str223, ei_ascii}, -#line 58 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str224, ei_iso8859_1}, -#line 218 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str225, ei_mac_cyrillic}, - {-1}, {-1}, -#line 256 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str228, ei_viscii}, - {-1}, {-1}, {-1}, {-1}, -#line 259 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str233, ei_tcvn}, - {-1}, {-1}, -#line 309 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str236, ei_sjis}, -#line 308 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str237, ei_sjis}, -#line 202 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str238, ei_cp862}, - {-1}, -#line 267 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str240, ei_iso646_jp}, - {-1}, -#line 254 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str242, ei_cp874}, -#line 323 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str243, ei_euc_cn}, - {-1}, -#line 21 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str245, ei_ascii}, - {-1}, -#line 258 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str247, ei_viscii}, - {-1}, {-1}, -#line 197 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str250, ei_cp850}, -#line 82 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str251, ei_iso8859_4}, -#line 346 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str252, ei_cp950}, -#line 233 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str253, ei_koi8_t}, -#line 332 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str254, ei_iso2022_cn}, -#line 266 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str255, ei_iso646_jp}, - {-1}, -#line 237 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str257, ei_pt154}, - {-1}, -#line 164 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str259, ei_iso8859_16}, -#line 358 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str260, ei_cp949}, -#line 75 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str261, ei_iso8859_3}, - {-1}, -#line 333 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str263, ei_iso2022_cn}, -#line 131 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str264, ei_iso8859_10}, - {-1}, {-1}, -#line 211 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str267, ei_mac_roman}, -#line 171 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str268, ei_cp1250}, - {-1}, {-1}, -#line 135 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str271, ei_iso8859_10}, -#line 312 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str272, ei_sjis}, -#line 142 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str273, ei_iso8859_13}, -#line 329 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str274, ei_cp936}, -#line 61 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str275, ei_iso8859_1}, -#line 247 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str276, ei_tis620}, - {-1}, -#line 180 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str278, ei_cp1253}, -#line 326 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str279, ei_euc_cn}, -#line 38 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str280, ei_utf16}, -#line 334 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str281, ei_iso2022_cn_ext}, -#line 246 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str282, ei_tis620}, -#line 33 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str283, ei_ucs4}, -#line 110 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str284, ei_iso8859_7}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 92 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str290, ei_iso8859_5}, -#line 85 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str291, ei_iso8859_4}, - {-1}, {-1}, {-1}, -#line 127 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str295, ei_iso8859_9}, - {-1}, {-1}, {-1}, {-1}, -#line 235 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str300, ei_pt154}, -#line 35 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str301, ei_ucs4}, -#line 14 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str302, ei_ascii}, - {-1}, -#line 359 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str304, ei_cp949}, - {-1}, {-1}, {-1}, -#line 23 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str308, ei_utf8}, - {-1}, {-1}, -#line 297 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str311, ei_ksc5601}, - {-1}, {-1}, {-1}, -#line 340 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str315, ei_ces_big5}, -#line 136 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str316, ei_iso8859_10}, - {-1}, -#line 78 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str318, ei_iso8859_3}, -#line 24 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str319, ei_ucs2}, - {-1}, -#line 341 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str321, ei_ces_big5}, -#line 129 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str322, ei_iso8859_10}, -#line 130 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str323, ei_iso8859_10}, -#line 71 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str324, ei_iso8859_3}, -#line 72 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str325, ei_iso8859_3}, -#line 145 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str326, ei_iso8859_13}, -#line 69 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str327, ei_iso8859_2}, -#line 37 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str328, ei_ucs4le}, - {-1}, -#line 241 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str330, ei_rk1048}, - {-1}, -#line 140 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str332, ei_iso8859_13}, -#line 141 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str333, ei_iso8859_13}, -#line 345 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str334, ei_ces_big5}, -#line 40 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str335, ei_utf16le}, -#line 283 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str336, ei_jisx0212}, -#line 244 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str337, ei_cp1133}, -#line 327 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str338, ei_ces_gbk}, -#line 179 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str339, ei_cp1252}, -#line 344 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str340, ei_ces_big5}, -#line 56 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str341, ei_iso8859_1}, - {-1}, -#line 238 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str343, ei_pt154}, - {-1}, -#line 286 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str345, ei_iso646_cn}, -#line 31 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str346, ei_ucs2le}, - {-1}, {-1}, {-1}, -#line 285 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str350, ei_jisx0212}, -#line 29 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str351, ei_ucs2be}, - {-1}, -#line 299 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str353, ei_ksc5601}, - {-1}, -#line 242 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str355, ei_rk1048}, -#line 257 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str356, ei_viscii}, - {-1}, -#line 15 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str358, ei_ascii}, -#line 30 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str359, ei_ucs2be}, -#line 296 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str360, ei_isoir165}, -#line 26 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str361, ei_ucs2}, - {-1}, -#line 49 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str363, ei_ucs4internal}, -#line 226 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str364, ei_hp_roman8}, - {-1}, {-1}, -#line 263 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str367, ei_iso646_jp}, -#line 278 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str368, ei_jisx0208}, - {-1}, {-1}, -#line 302 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str371, ei_ksc5601}, - {-1}, {-1}, -#line 270 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str374, ei_jisx0201}, -#line 243 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str375, ei_mulelao}, - {-1}, -#line 157 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str377, ei_iso8859_15}, -#line 198 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str378, ei_cp850}, - {-1}, -#line 248 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str380, ei_tis620}, -#line 47 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str381, ei_ucs2internal}, -#line 98 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str382, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 224 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str389, ei_mac_thai}, -#line 111 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str390, ei_iso8859_7}, -#line 230 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str391, ei_armscii_8}, -#line 362 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str392, ei_iso2022_kr}, - {-1}, {-1}, {-1}, -#line 232 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str396, ei_georgian_ps}, -#line 249 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str397, ei_tis620}, -#line 108 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str398, ei_iso8859_7}, - {-1}, {-1}, -#line 363 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str401, ei_iso2022_kr}, - {-1}, -#line 143 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str403, ei_iso8859_13}, - {-1}, -#line 288 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str405, ei_iso646_cn}, -#line 276 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str406, ei_jisx0208}, -#line 225 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str407, ei_hp_roman8}, -#line 304 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str408, ei_euc_jp}, - {-1}, {-1}, -#line 277 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str411, ei_jisx0208}, - {-1}, -#line 132 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str413, ei_iso8859_10}, -#line 303 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str414, ei_euc_jp}, - {-1}, -#line 34 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str416, ei_ucs4}, -#line 356 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str417, ei_euc_kr}, -#line 264 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str418, ei_iso646_jp}, - {-1}, -#line 192 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str420, ei_cp1257}, -#line 32 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str421, ei_ucs2le}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 275 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str427, ei_jisx0208}, - {-1}, -#line 97 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str429, ei_iso8859_6}, -#line 215 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str430, ei_mac_iceland}, -#line 41 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str431, ei_utf32}, - {-1}, {-1}, -#line 25 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str434, ei_ucs2}, -#line 338 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str435, ei_euc_tw}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 337 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str441, ei_euc_tw}, -#line 291 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str442, ei_gb2312}, -#line 208 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str443, ei_cp866}, - {-1}, -#line 101 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str445, ei_iso8859_6}, - {-1}, -#line 112 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str447, ei_iso8859_7}, -#line 213 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str448, ei_mac_roman}, - {-1}, {-1}, {-1}, -#line 355 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str452, ei_euc_kr}, -#line 12 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str453, ei_ascii}, - {-1}, -#line 231 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str455, ei_georgian_academy}, -#line 188 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str456, ei_cp1255}, -#line 365 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str457, ei_local_wchar_t}, -#line 43 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str458, ei_utf32le}, -#line 331 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str459, ei_gb18030}, -#line 113 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str460, ei_iso8859_7}, - {-1}, -#line 81 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str462, ei_iso8859_4}, -#line 214 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str463, ei_mac_centraleurope}, -#line 89 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str464, ei_iso8859_5}, -#line 77 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str465, ei_iso8859_3}, -#line 103 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str466, ei_iso8859_7}, -#line 104 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str467, ei_iso8859_7}, - {-1}, -#line 19 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str469, ei_ascii}, -#line 116 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str470, ei_iso8859_8}, - {-1}, {-1}, {-1}, -#line 123 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str474, ei_iso8859_9}, - {-1}, -#line 210 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str476, ei_mac_roman}, -#line 119 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str477, ei_iso8859_8}, - {-1}, {-1}, {-1}, -#line 261 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str481, ei_tcvn}, -#line 305 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str482, ei_euc_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 240 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str489, ei_rk1048}, -#line 190 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str490, ei_cp1256}, -#line 316 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str491, ei_iso2022_jp1}, -#line 175 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str492, ei_cp1251}, -#line 319 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str493, ei_iso2022_jpms}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 260 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str499, ei_tcvn}, -#line 184 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str500, ei_cp1254}, -#line 298 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str501, ei_ksc5601}, -#line 187 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str502, ei_cp1255}, - {-1}, -#line 325 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str504, ei_euc_cn}, - {-1}, {-1}, {-1}, -#line 196 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str508, ei_cp1258}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 317 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str517, ei_iso2022_jp2}, -#line 178 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str518, ei_cp1252}, - {-1}, -#line 351 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str520, ei_big5hkscs2008}, - {-1}, {-1}, -#line 45 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str523, ei_utf7}, - {-1}, -#line 318 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str525, ei_iso2022_jp2}, -#line 350 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str526, ei_big5hkscs2008}, -#line 301 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str527, ei_ksc5601}, -#line 228 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str528, ei_hp_roman8}, -#line 46 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str529, ei_utf7}, - {-1}, {-1}, -#line 307 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str532, ei_euc_jp}, - {-1}, -#line 336 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str534, ei_hz}, -#line 182 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str535, ei_cp1253}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 220 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str541, ei_mac_greek}, -#line 343 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str542, ei_ces_big5}, -#line 251 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str543, ei_tis620}, - {-1}, {-1}, -#line 324 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str546, ei_euc_cn}, - {-1}, -#line 342 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str548, ei_ces_big5}, -#line 73 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str549, ei_iso8859_3}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, -#line 229 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str561, ei_nextstep}, -#line 216 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str562, ei_mac_croatian}, - {-1}, -#line 330 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str564, ei_cp936}, - {-1}, -#line 290 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str566, ei_iso646_cn}, - {-1}, -#line 36 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str568, ei_ucs4be}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 39 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str575, ei_utf16be}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 172 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str582, ei_cp1250}, - {-1}, {-1}, {-1}, -#line 27 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str586, ei_ucs2be}, -#line 181 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str587, ei_cp1253}, - {-1}, {-1}, -#line 280 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str590, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, -#line 293 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str595, ei_gb2312}, -#line 314 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str596, ei_iso2022_jp}, -#line 20 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str597, ei_ascii}, -#line 245 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str598, ei_cp1133}, - {-1}, {-1}, {-1}, -#line 96 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str602, ei_iso8859_6}, - {-1}, -#line 55 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str604, ei_iso8859_1}, -#line 315 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str605, ei_iso2022_jp}, - {-1}, {-1}, -#line 44 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str608, ei_utf7}, -#line 204 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str609, ei_cp862}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 100 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str618, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 311 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str625, ei_sjis}, - {-1}, {-1}, -#line 268 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str628, ei_jisx0201}, - {-1}, -#line 65 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str630, ei_iso8859_2}, -#line 28 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str631, ei_ucs2be}, - {-1}, -#line 250 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str633, ei_tis620}, - {-1}, -#line 99 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str635, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 279 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str643, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, -#line 221 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str648, ei_mac_turkish}, - {-1}, {-1}, {-1}, {-1}, -#line 255 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str653, ei_cp874}, - {-1}, {-1}, {-1}, -#line 18 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str657, ei_ascii}, -#line 193 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str658, ei_cp1257}, - {-1}, -#line 272 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str660, ei_jisx0208}, -#line 269 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str661, ei_jisx0201}, - {-1}, -#line 169 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str663, ei_koi8_u}, -#line 52 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str664, ei_java}, - {-1}, {-1}, {-1}, {-1}, -#line 170 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str669, ei_koi8_ru}, - {-1}, -#line 282 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str671, ei_jisx0212}, - {-1}, {-1}, {-1}, -#line 17 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str675, ei_ascii}, - {-1}, -#line 118 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str677, ei_iso8859_8}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 339 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str683, ei_euc_tw}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 271 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str693, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, -#line 42 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str698, ei_utf32be}, -#line 106 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str699, ei_iso8859_7}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 200 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str705, ei_cp850}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 185 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str720, ei_cp1254}, - {-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}, -#line 274 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str751, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, -#line 273 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str756, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 281 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str764, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, -#line 223 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str769, ei_mac_arabic}, -#line 105 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str770, ei_iso8859_7}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 219 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str777, ei_mac_ukraine}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, -#line 306 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str798, ei_euc_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 217 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str813, ei_mac_romania}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 348 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str828, ei_big5hkscs2001}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 349 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str836, ei_big5hkscs2004}, -#line 360 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str837, ei_johab}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 352 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str844, ei_big5hkscs2008}, - {-1}, -#line 347 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str846, ei_big5hkscs1999}, - {-1}, -#line 222 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str848, ei_mac_hebrew}, - {-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}, -#line 262 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str879, ei_tcvn}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, -#line 50 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str893, ei_ucs4swapped}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 48 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str911, ei_ucs2swapped}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 194 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str928, ei_cp1257}, - {-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}, -#line 191 "lib/aliases_sysosf1.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str981, ei_cp1256} - }; - -static const struct alias * -aliases_lookup (register const char *str, register size_t len) -{ - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = aliases_hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = aliases[key].name; - if (o >= 0) - { - register const char *s = o + stringpool; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &aliases[key]; - } - } - } - return 0; -} diff --git a/jni/parted/libiconv/lib/aliases_syssolaris.h b/jni/parted/libiconv/lib/aliases_syssolaris.h deleted file mode 100755 index d112305..0000000 --- a/jni/parted/libiconv/lib/aliases_syssolaris.h +++ /dev/null @@ -1,1799 +0,0 @@ -/* ANSI-C code produced by gperf version 3.2 */ -/* Command-line: gperf -m 10 lib/aliases_syssolaris.gperf */ -/* Computed positions: -k'1,3-11,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 1 "lib/aliases_syssolaris.gperf" -struct alias { int name; unsigned int encoding_index; }; - -#define TOTAL_KEYWORDS 356 -#define MIN_WORD_LENGTH 2 -#define MAX_WORD_LENGTH 45 -#define MIN_HASH_VALUE 8 -#define MAX_HASH_VALUE 956 -/* maximum key range = 949, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -aliases_hash (register const char *str, register size_t len) -{ - static const unsigned short asso_values[] = - { - 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 10, 110, 957, 34, 2, - 8, 85, 31, 4, 3, 170, 6, 7, 192, 957, - 957, 957, 957, 957, 957, 26, 164, 2, 39, 78, - 125, 98, 118, 2, 168, 103, 149, 143, 4, 2, - 139, 957, 40, 64, 28, 123, 106, 162, 190, 5, - 4, 957, 957, 957, 957, 82, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957 - }; - register unsigned int hval = len; - - switch (hval) - { - default: - hval += asso_values[(unsigned char)str[10]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 10: - hval += asso_values[(unsigned char)str[9]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 9: - hval += asso_values[(unsigned char)str[8]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 8: - hval += asso_values[(unsigned char)str[7]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 7: - hval += asso_values[(unsigned char)str[6]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 6: - hval += asso_values[(unsigned char)str[5]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 5: - hval += asso_values[(unsigned char)str[4]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 4: - hval += asso_values[(unsigned char)str[3]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 3: - hval += asso_values[(unsigned char)str[2]]; -#if defined __cplusplus && (__cplusplus >= 201703L || (__cplusplus >= 201103L && defined __clang_major__ && defined __clang_minor__ && __clang_major__ + (__clang_minor__ >= 9) > 3)) - [[fallthrough]]; -#elif defined __GNUC__ && __GNUC__ >= 7 - __attribute__ ((__fallthrough__)); -#endif - /*FALLTHROUGH*/ - case 2: - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval + asso_values[(unsigned char)str[len - 1]]; -} - -struct stringpool_t - { - char stringpool_str8[sizeof("CN")]; - char stringpool_str12[sizeof("646")]; - char stringpool_str15[sizeof("866")]; - char stringpool_str19[sizeof("C99")]; - char stringpool_str22[sizeof("CP866")]; - char stringpool_str25[sizeof("862")]; - char stringpool_str26[sizeof("CP1251")]; - char stringpool_str28[sizeof("CP1256")]; - char stringpool_str29[sizeof("CP819")]; - char stringpool_str30[sizeof("CP1255")]; - char stringpool_str32[sizeof("CP862")]; - char stringpool_str34[sizeof("CP1258")]; - char stringpool_str38[sizeof("CP1252")]; - char stringpool_str39[sizeof("ASCII")]; - char stringpool_str46[sizeof("5601")]; - char stringpool_str48[sizeof("R8")]; - char stringpool_str50[sizeof("ISO8859-1")]; - char stringpool_str52[sizeof("ISO8859-6")]; - char stringpool_str53[sizeof("ISO8859-11")]; - char stringpool_str54[sizeof("ISO8859-5")]; - char stringpool_str55[sizeof("ISO8859-16")]; - char stringpool_str57[sizeof("ISO8859-15")]; - char stringpool_str58[sizeof("ISO8859-8")]; - char stringpool_str59[sizeof("CP949")]; - char stringpool_str60[sizeof("ISO8859-9")]; - char stringpool_str61[sizeof("ISO-8859-1")]; - char stringpool_str62[sizeof("ISO8859-2")]; - char stringpool_str63[sizeof("ISO-8859-6")]; - char stringpool_str64[sizeof("ISO-8859-11")]; - char stringpool_str65[sizeof("ISO-8859-5")]; - char stringpool_str66[sizeof("ISO-8859-16")]; - char stringpool_str67[sizeof("CP50221")]; - char stringpool_str68[sizeof("ISO-8859-15")]; - char stringpool_str69[sizeof("ISO-8859-8")]; - char stringpool_str70[sizeof("ISO646-CN")]; - char stringpool_str71[sizeof("ISO-8859-9")]; - char stringpool_str73[sizeof("ISO-8859-2")]; - char stringpool_str75[sizeof("CP154")]; - char stringpool_str77[sizeof("850")]; - char stringpool_str80[sizeof("ISO-IR-6")]; - char stringpool_str84[sizeof("CP1254")]; - char stringpool_str85[sizeof("CP850")]; - char stringpool_str86[sizeof("CP950")]; - char stringpool_str87[sizeof("ISO-IR-166")]; - char stringpool_str89[sizeof("ISO-IR-165")]; - char stringpool_str90[sizeof("CP1250")]; - char stringpool_str91[sizeof("ISO-IR-58")]; - char stringpool_str92[sizeof("ISO-IR-126")]; - char stringpool_str95[sizeof("EUCCN")]; - char stringpool_str96[sizeof("ISO-IR-159")]; - char stringpool_str98[sizeof("ISO-IR-226")]; - char stringpool_str99[sizeof("ISO-IR-199")]; - char stringpool_str101[sizeof("CP1131")]; - char stringpool_str102[sizeof("CP1361")]; - char stringpool_str103[sizeof("ISO-2022-CN")]; - char stringpool_str105[sizeof("CP936")]; - char stringpool_str106[sizeof("EUC-CN")]; - char stringpool_str107[sizeof("CSASCII")]; - char stringpool_str108[sizeof("ISO8859-4")]; - char stringpool_str111[sizeof("ISO8859-14")]; - char stringpool_str112[sizeof("CHAR")]; - char stringpool_str115[sizeof("CP932")]; - char stringpool_str116[sizeof("ISO-IR-101")]; - char stringpool_str117[sizeof("ISO8859-10")]; - char stringpool_str119[sizeof("ISO-8859-4")]; - char stringpool_str121[sizeof("ISO-IR-148")]; - char stringpool_str122[sizeof("ISO-8859-14")]; - char stringpool_str123[sizeof("ISO-IR-149")]; - char stringpool_str124[sizeof("HZ")]; - char stringpool_str125[sizeof("RK1048")]; - char stringpool_str126[sizeof("ISO-IR-109")]; - char stringpool_str128[sizeof("ISO-8859-10")]; - char stringpool_str129[sizeof("ANSI-1251")]; - char stringpool_str130[sizeof("UHC")]; - char stringpool_str131[sizeof("ISO-2022-CN-EXT")]; - char stringpool_str133[sizeof("ISO_8859-1")]; - char stringpool_str135[sizeof("ISO_8859-6")]; - char stringpool_str136[sizeof("ISO_8859-11")]; - char stringpool_str137[sizeof("ISO_8859-5")]; - char stringpool_str138[sizeof("ISO_8859-16")]; - char stringpool_str139[sizeof("ISO-IR-14")]; - char stringpool_str140[sizeof("ISO_8859-15")]; - char stringpool_str141[sizeof("ISO_8859-8")]; - char stringpool_str142[sizeof("ISO_8859-16:2001")]; - char stringpool_str143[sizeof("ISO_8859-9")]; - char stringpool_str145[sizeof("ISO_8859-2")]; - char stringpool_str146[sizeof("TCVN")]; - char stringpool_str147[sizeof("ISO_8859-15:1998")]; - char stringpool_str148[sizeof("ISO-IR-110")]; - char stringpool_str149[sizeof("CSISO2022CN")]; - char stringpool_str150[sizeof("MAC")]; - char stringpool_str153[sizeof("L1")]; - char stringpool_str154[sizeof("L6")]; - char stringpool_str155[sizeof("L5")]; - char stringpool_str157[sizeof("L8")]; - char stringpool_str159[sizeof("L2")]; - char stringpool_str166[sizeof("IBM866")]; - char stringpool_str171[sizeof("ISO-IR-144")]; - char stringpool_str173[sizeof("IBM819")]; - char stringpool_str174[sizeof("ISO_8859-14:1998")]; - char stringpool_str175[sizeof("ISO-IR-138")]; - char stringpool_str176[sizeof("IBM862")]; - char stringpool_str177[sizeof("TIS620")]; - char stringpool_str179[sizeof("ISO_8859-10:1992")]; - char stringpool_str180[sizeof("ISO-IR-100")]; - char stringpool_str182[sizeof("L4")]; - char stringpool_str183[sizeof("KOI8-T")]; - char stringpool_str184[sizeof("VISCII")]; - char stringpool_str188[sizeof("TIS-620")]; - char stringpool_str189[sizeof("US")]; - char stringpool_str190[sizeof("CSVISCII")]; - char stringpool_str191[sizeof("ISO_8859-4")]; - char stringpool_str192[sizeof("CP1253")]; - char stringpool_str193[sizeof("LATIN1")]; - char stringpool_str194[sizeof("ISO_8859-14")]; - char stringpool_str195[sizeof("LATIN6")]; - char stringpool_str196[sizeof("CSKZ1048")]; - char stringpool_str197[sizeof("LATIN5")]; - char stringpool_str198[sizeof("SJIS")]; - char stringpool_str199[sizeof("KZ-1048")]; - char stringpool_str200[sizeof("ISO_8859-10")]; - char stringpool_str201[sizeof("LATIN8")]; - char stringpool_str202[sizeof("CSKOI8R")]; - char stringpool_str205[sizeof("LATIN2")]; - char stringpool_str207[sizeof("KOI8-R")]; - char stringpool_str212[sizeof("PT154")]; - char stringpool_str214[sizeof("LATIN-9")]; - char stringpool_str215[sizeof("GB2312")]; - char stringpool_str216[sizeof("ISO8859-3")]; - char stringpool_str218[sizeof("UCS-2")]; - char stringpool_str219[sizeof("ISO8859-13")]; - char stringpool_str220[sizeof("L10")]; - char stringpool_str221[sizeof("X0212")]; - char stringpool_str223[sizeof("TIS620-0")]; - char stringpool_str225[sizeof("ELOT_928")]; - char stringpool_str227[sizeof("ISO-8859-3")]; - char stringpool_str228[sizeof("ARABIC")]; - char stringpool_str229[sizeof("IBM850")]; - char stringpool_str230[sizeof("ISO-8859-13")]; - char stringpool_str231[sizeof("ROMAN8")]; - char stringpool_str236[sizeof("L3")]; - char stringpool_str239[sizeof("US-ASCII")]; - char stringpool_str240[sizeof("KSC_5601")]; - char stringpool_str241[sizeof("X0201")]; - char stringpool_str243[sizeof("ISO-10646-UCS-2")]; - char stringpool_str245[sizeof("CP874")]; - char stringpool_str246[sizeof("MS936")]; - char stringpool_str249[sizeof("X0208")]; - char stringpool_str251[sizeof("LATIN4")]; - char stringpool_str258[sizeof("MS-ANSI")]; - char stringpool_str259[sizeof("CSUCS4")]; - char stringpool_str260[sizeof("LATIN10")]; - char stringpool_str261[sizeof("KOREAN")]; - char stringpool_str262[sizeof("ISO-IR-179")]; - char stringpool_str264[sizeof("UCS-4")]; - char stringpool_str266[sizeof("ISO-10646-UCS-4")]; - char stringpool_str267[sizeof("CP1133")]; - char stringpool_str268[sizeof("EUCKR")]; - char stringpool_str269[sizeof("CSUNICODE11")]; - char stringpool_str270[sizeof("ARMSCII-8")]; - char stringpool_str272[sizeof("UTF-16")]; - char stringpool_str274[sizeof("BIG5")]; - char stringpool_str275[sizeof("UTF-8")]; - char stringpool_str276[sizeof("ISO-2022-KR")]; - char stringpool_str279[sizeof("EUC-KR")]; - char stringpool_str280[sizeof("CSBIG5")]; - char stringpool_str281[sizeof("ECMA-118")]; - char stringpool_str282[sizeof("CNS11643")]; - char stringpool_str283[sizeof("UNICODE-1-1")]; - char stringpool_str285[sizeof("BIG-5")]; - char stringpool_str287[sizeof("ISO-CELTIC")]; - char stringpool_str288[sizeof("ISO-IR-203")]; - char stringpool_str289[sizeof("TIS620.2529-1")]; - char stringpool_str290[sizeof("MACCROATIAN")]; - char stringpool_str291[sizeof("CN-BIG5")]; - char stringpool_str294[sizeof("CSISOLATIN1")]; - char stringpool_str295[sizeof("GB_1988-80")]; - char stringpool_str296[sizeof("CSISOLATIN6")]; - char stringpool_str298[sizeof("CSISOLATIN5")]; - char stringpool_str299[sizeof("ISO_8859-3")]; - char stringpool_str300[sizeof("GB18030")]; - char stringpool_str301[sizeof("CSISOLATINCYRILLIC")]; - char stringpool_str302[sizeof("ISO_8859-13")]; - char stringpool_str306[sizeof("CSISOLATIN2")]; - char stringpool_str307[sizeof("GBK")]; - char stringpool_str309[sizeof("JP")]; - char stringpool_str311[sizeof("ISO646-US")]; - char stringpool_str313[sizeof("CHINESE")]; - char stringpool_str315[sizeof("VISCII1.1-1")]; - char stringpool_str321[sizeof("L7")]; - char stringpool_str322[sizeof("CSISO2022KR")]; - char stringpool_str323[sizeof("CSISOLATINARABIC")]; - char stringpool_str327[sizeof("JIS0208")]; - char stringpool_str328[sizeof("MACTHAI")]; - char stringpool_str329[sizeof("GEORGIAN-ACADEMY")]; - char stringpool_str330[sizeof("JAVA")]; - char stringpool_str331[sizeof("ECMA-114")]; - char stringpool_str334[sizeof("CSIBM866")]; - char stringpool_str336[sizeof("ISO_8859-5:1988")]; - char stringpool_str338[sizeof("ISO_8859-8:1988")]; - char stringpool_str339[sizeof("CSUNICODE")]; - char stringpool_str340[sizeof("ISO_8859-9:1989")]; - char stringpool_str345[sizeof("KS_C_5601-1989")]; - char stringpool_str346[sizeof("TCVN5712-1")]; - char stringpool_str348[sizeof("PCK")]; - char stringpool_str349[sizeof("TCVN-5712")]; - char stringpool_str352[sizeof("CSISOLATIN4")]; - char stringpool_str353[sizeof("STRK1048-2002")]; - char stringpool_str355[sizeof("PTCP154")]; - char stringpool_str356[sizeof("CYRILLIC")]; - char stringpool_str358[sizeof("CSISO14JISC6220RO")]; - char stringpool_str359[sizeof("LATIN3")]; - char stringpool_str362[sizeof("CP1257")]; - char stringpool_str363[sizeof("ISO_8859-4:1988")]; - char stringpool_str364[sizeof("HP-ROMAN8")]; - char stringpool_str365[sizeof("UTF-32")]; - char stringpool_str371[sizeof("CSISO159JISX02121990")]; - char stringpool_str372[sizeof("MACROMAN")]; - char stringpool_str373[sizeof("KOI8-U")]; - char stringpool_str375[sizeof("GREEK8")]; - char stringpool_str377[sizeof("GB_2312-80")]; - char stringpool_str383[sizeof("CSGB2312")]; - char stringpool_str386[sizeof("ISO8859-7")]; - char stringpool_str387[sizeof("CSPTCP154")]; - char stringpool_str392[sizeof("MS-EE")]; - char stringpool_str395[sizeof("CSEUCKR")]; - char stringpool_str397[sizeof("ISO-8859-7")]; - char stringpool_str399[sizeof("ISO_646.IRV:1991")]; - char stringpool_str400[sizeof("JIS_C6220-1969-RO")]; - char stringpool_str404[sizeof("ISO-2022-JP-1")]; - char stringpool_str405[sizeof("ASMO-708")]; - char stringpool_str406[sizeof("CSKSC56011987")]; - char stringpool_str410[sizeof("ISO-2022-JP-2")]; - char stringpool_str412[sizeof("CN-GB-ISOIR165")]; - char stringpool_str414[sizeof("KOI8-RU")]; - char stringpool_str416[sizeof("MACARABIC")]; - char stringpool_str417[sizeof("ISO_8859-3:1988")]; - char stringpool_str419[sizeof("ISO-IR-57")]; - char stringpool_str421[sizeof("ISO-IR-87")]; - char stringpool_str422[sizeof("ISO-IR-157")]; - char stringpool_str424[sizeof("MACROMANIA")]; - char stringpool_str426[sizeof("ISO-IR-127")]; - char stringpool_str435[sizeof("CP367")]; - char stringpool_str437[sizeof("EUCTW")]; - char stringpool_str441[sizeof("CSUNICODE11UTF7")]; - char stringpool_str443[sizeof("CN-GB")]; - char stringpool_str444[sizeof("TIS620.2533-1")]; - char stringpool_str448[sizeof("EUC-TW")]; - char stringpool_str449[sizeof("JIS_C6226-1983")]; - char stringpool_str455[sizeof("CSISO2022JP2")]; - char stringpool_str457[sizeof("UNICODE-1-1-UTF-7")]; - char stringpool_str460[sizeof("CSISOLATIN3")]; - char stringpool_str464[sizeof("CYRILLIC-ASIAN")]; - char stringpool_str465[sizeof("GREEK")]; - char stringpool_str467[sizeof("ISO-2022-JP-MS")]; - char stringpool_str469[sizeof("ISO_8859-7")]; - char stringpool_str471[sizeof("WINDOWS-1251")]; - char stringpool_str472[sizeof("WINDOWS-1256")]; - char stringpool_str473[sizeof("WINDOWS-1255")]; - char stringpool_str475[sizeof("WINDOWS-1258")]; - char stringpool_str476[sizeof("TIS620.2533-0")]; - char stringpool_str477[sizeof("WINDOWS-1252")]; - char stringpool_str484[sizeof("CSISO58GB231280")]; - char stringpool_str490[sizeof("MACINTOSH")]; - char stringpool_str491[sizeof("WCHAR_T")]; - char stringpool_str494[sizeof("MACICELAND")]; - char stringpool_str495[sizeof("CSISOLATINGREEK")]; - char stringpool_str496[sizeof("CSHPROMAN8")]; - char stringpool_str498[sizeof("ISO_8859-1:1987")]; - char stringpool_str499[sizeof("ISO_8859-6:1987")]; - char stringpool_str500[sizeof("WINDOWS-1254")]; - char stringpool_str503[sizeof("WINDOWS-1250")]; - char stringpool_str504[sizeof("ISO_8859-2:1987")]; - char stringpool_str505[sizeof("MS-CYRL")]; - char stringpool_str506[sizeof("ISO646-JP")]; - char stringpool_str508[sizeof("KS_C_5601-1987")]; - char stringpool_str509[sizeof("MACCYRILLIC")]; - char stringpool_str517[sizeof("UCS-2LE")]; - char stringpool_str520[sizeof("CSMACINTOSH")]; - char stringpool_str521[sizeof("HZ-GB-2312")]; - char stringpool_str525[sizeof("TIS620.2533")]; - char stringpool_str529[sizeof("LATIN7")]; - char stringpool_str530[sizeof("UCS-2-INTERNAL")]; - char stringpool_str531[sizeof("EUCJP")]; - char stringpool_str532[sizeof("UCS-2BE")]; - char stringpool_str534[sizeof("CSISO57GB1988")]; - char stringpool_str535[sizeof("JISX0201-1976")]; - char stringpool_str536[sizeof("SHIFT-JIS")]; - char stringpool_str538[sizeof("MS_KANJI")]; - char stringpool_str539[sizeof("ISO-2022-JP")]; - char stringpool_str540[sizeof("UCS-4LE")]; - char stringpool_str542[sizeof("EUC-JP")]; - char stringpool_str544[sizeof("UNICODELITTLE")]; - char stringpool_str545[sizeof("CSPC862LATINHEBREW")]; - char stringpool_str552[sizeof("WINDOWS-936")]; - char stringpool_str553[sizeof("UCS-4-INTERNAL")]; - char stringpool_str554[sizeof("WINDOWS-1253")]; - char stringpool_str555[sizeof("UCS-4BE")]; - char stringpool_str557[sizeof("MS-TURK")]; - char stringpool_str558[sizeof("GEORGIAN-PS")]; - char stringpool_str564[sizeof("CSEUCTW")]; - char stringpool_str565[sizeof("IBM-CP1133")]; - char stringpool_str570[sizeof("MULELAO-1")]; - char stringpool_str573[sizeof("JIS_X0212")]; - char stringpool_str575[sizeof("CSISOLATINHEBREW")]; - char stringpool_str576[sizeof("UTF-16LE")]; - char stringpool_str579[sizeof("IBM367")]; - char stringpool_str580[sizeof("MS-ARAB")]; - char stringpool_str581[sizeof("ISO_8859-7:2003")]; - char stringpool_str585[sizeof("CSISO2022JP")]; - char stringpool_str591[sizeof("UTF-16BE")]; - char stringpool_str593[sizeof("JIS_X0201")]; - char stringpool_str600[sizeof("MS-HEBR")]; - char stringpool_str601[sizeof("JIS_X0208")]; - char stringpool_str603[sizeof("UTF-7")]; - char stringpool_str608[sizeof("SHIFT_JIS")]; - char stringpool_str609[sizeof("MACUKRAINE")]; - char stringpool_str616[sizeof("JIS_X0212-1990")]; - char stringpool_str618[sizeof("UNICODEBIG")]; - char stringpool_str619[sizeof("ANSI_X3.4-1986")]; - char stringpool_str622[sizeof("ANSI_X3.4-1968")]; - char stringpool_str626[sizeof("TCVN5712-1:1993")]; - char stringpool_str639[sizeof("WINDOWS-1257")]; - char stringpool_str644[sizeof("MACCENTRALEUROPE")]; - char stringpool_str645[sizeof("JOHAB")]; - char stringpool_str646[sizeof("JIS_X0208-1990")]; - char stringpool_str647[sizeof("CSSHIFTJIS")]; - char stringpool_str653[sizeof("MACGREEK")]; - char stringpool_str658[sizeof("BIGFIVE")]; - char stringpool_str661[sizeof("MS-GREEK")]; - char stringpool_str664[sizeof("UTF-32LE")]; - char stringpool_str666[sizeof("ISO_8859-7:1987")]; - char stringpool_str669[sizeof("BIG-FIVE")]; - char stringpool_str676[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; - char stringpool_str678[sizeof("NEXTSTEP")]; - char stringpool_str679[sizeof("UTF-32BE")]; - char stringpool_str690[sizeof("BIG5HKSCS")]; - char stringpool_str691[sizeof("CSISO87JISX0208")]; - char stringpool_str692[sizeof("WINDOWS-874")]; - char stringpool_str697[sizeof("JIS_X0208-1983")]; - char stringpool_str701[sizeof("BIG5-HKSCS")]; - char stringpool_str718[sizeof("JIS_X0212.1990-0")]; - char stringpool_str730[sizeof("HEBREW")]; - char stringpool_str751[sizeof("MACTURKISH")]; - char stringpool_str797[sizeof("UCS-2-SWAPPED")]; - char stringpool_str798[sizeof("CSPC850MULTILINGUAL")]; - char stringpool_str814[sizeof("CSHALFWIDTHKATAKANA")]; - char stringpool_str820[sizeof("UCS-4-SWAPPED")]; - char stringpool_str836[sizeof("BIG5-HKSCS:2001")]; - char stringpool_str840[sizeof("BIG5-HKSCS:2008")]; - char stringpool_str841[sizeof("BIG5-HKSCS:1999")]; - char stringpool_str865[sizeof("BIG5-HKSCS:2004")]; - char stringpool_str871[sizeof("WINBALTRIM")]; - char stringpool_str879[sizeof("CSEUCPKDFMTJAPANESE")]; - char stringpool_str912[sizeof("KO_KR.JOHAP92")]; - char stringpool_str956[sizeof("MACHEBREW")]; - }; -static const struct stringpool_t stringpool_contents = - { - "CN", - "646", - "866", - "C99", - "CP866", - "862", - "CP1251", - "CP1256", - "CP819", - "CP1255", - "CP862", - "CP1258", - "CP1252", - "ASCII", - "5601", - "R8", - "ISO8859-1", - "ISO8859-6", - "ISO8859-11", - "ISO8859-5", - "ISO8859-16", - "ISO8859-15", - "ISO8859-8", - "CP949", - "ISO8859-9", - "ISO-8859-1", - "ISO8859-2", - "ISO-8859-6", - "ISO-8859-11", - "ISO-8859-5", - "ISO-8859-16", - "CP50221", - "ISO-8859-15", - "ISO-8859-8", - "ISO646-CN", - "ISO-8859-9", - "ISO-8859-2", - "CP154", - "850", - "ISO-IR-6", - "CP1254", - "CP850", - "CP950", - "ISO-IR-166", - "ISO-IR-165", - "CP1250", - "ISO-IR-58", - "ISO-IR-126", - "EUCCN", - "ISO-IR-159", - "ISO-IR-226", - "ISO-IR-199", - "CP1131", - "CP1361", - "ISO-2022-CN", - "CP936", - "EUC-CN", - "CSASCII", - "ISO8859-4", - "ISO8859-14", - "CHAR", - "CP932", - "ISO-IR-101", - "ISO8859-10", - "ISO-8859-4", - "ISO-IR-148", - "ISO-8859-14", - "ISO-IR-149", - "HZ", - "RK1048", - "ISO-IR-109", - "ISO-8859-10", - "ANSI-1251", - "UHC", - "ISO-2022-CN-EXT", - "ISO_8859-1", - "ISO_8859-6", - "ISO_8859-11", - "ISO_8859-5", - "ISO_8859-16", - "ISO-IR-14", - "ISO_8859-15", - "ISO_8859-8", - "ISO_8859-16:2001", - "ISO_8859-9", - "ISO_8859-2", - "TCVN", - "ISO_8859-15:1998", - "ISO-IR-110", - "CSISO2022CN", - "MAC", - "L1", - "L6", - "L5", - "L8", - "L2", - "IBM866", - "ISO-IR-144", - "IBM819", - "ISO_8859-14:1998", - "ISO-IR-138", - "IBM862", - "TIS620", - "ISO_8859-10:1992", - "ISO-IR-100", - "L4", - "KOI8-T", - "VISCII", - "TIS-620", - "US", - "CSVISCII", - "ISO_8859-4", - "CP1253", - "LATIN1", - "ISO_8859-14", - "LATIN6", - "CSKZ1048", - "LATIN5", - "SJIS", - "KZ-1048", - "ISO_8859-10", - "LATIN8", - "CSKOI8R", - "LATIN2", - "KOI8-R", - "PT154", - "LATIN-9", - "GB2312", - "ISO8859-3", - "UCS-2", - "ISO8859-13", - "L10", - "X0212", - "TIS620-0", - "ELOT_928", - "ISO-8859-3", - "ARABIC", - "IBM850", - "ISO-8859-13", - "ROMAN8", - "L3", - "US-ASCII", - "KSC_5601", - "X0201", - "ISO-10646-UCS-2", - "CP874", - "MS936", - "X0208", - "LATIN4", - "MS-ANSI", - "CSUCS4", - "LATIN10", - "KOREAN", - "ISO-IR-179", - "UCS-4", - "ISO-10646-UCS-4", - "CP1133", - "EUCKR", - "CSUNICODE11", - "ARMSCII-8", - "UTF-16", - "BIG5", - "UTF-8", - "ISO-2022-KR", - "EUC-KR", - "CSBIG5", - "ECMA-118", - "CNS11643", - "UNICODE-1-1", - "BIG-5", - "ISO-CELTIC", - "ISO-IR-203", - "TIS620.2529-1", - "MACCROATIAN", - "CN-BIG5", - "CSISOLATIN1", - "GB_1988-80", - "CSISOLATIN6", - "CSISOLATIN5", - "ISO_8859-3", - "GB18030", - "CSISOLATINCYRILLIC", - "ISO_8859-13", - "CSISOLATIN2", - "GBK", - "JP", - "ISO646-US", - "CHINESE", - "VISCII1.1-1", - "L7", - "CSISO2022KR", - "CSISOLATINARABIC", - "JIS0208", - "MACTHAI", - "GEORGIAN-ACADEMY", - "JAVA", - "ECMA-114", - "CSIBM866", - "ISO_8859-5:1988", - "ISO_8859-8:1988", - "CSUNICODE", - "ISO_8859-9:1989", - "KS_C_5601-1989", - "TCVN5712-1", - "PCK", - "TCVN-5712", - "CSISOLATIN4", - "STRK1048-2002", - "PTCP154", - "CYRILLIC", - "CSISO14JISC6220RO", - "LATIN3", - "CP1257", - "ISO_8859-4:1988", - "HP-ROMAN8", - "UTF-32", - "CSISO159JISX02121990", - "MACROMAN", - "KOI8-U", - "GREEK8", - "GB_2312-80", - "CSGB2312", - "ISO8859-7", - "CSPTCP154", - "MS-EE", - "CSEUCKR", - "ISO-8859-7", - "ISO_646.IRV:1991", - "JIS_C6220-1969-RO", - "ISO-2022-JP-1", - "ASMO-708", - "CSKSC56011987", - "ISO-2022-JP-2", - "CN-GB-ISOIR165", - "KOI8-RU", - "MACARABIC", - "ISO_8859-3:1988", - "ISO-IR-57", - "ISO-IR-87", - "ISO-IR-157", - "MACROMANIA", - "ISO-IR-127", - "CP367", - "EUCTW", - "CSUNICODE11UTF7", - "CN-GB", - "TIS620.2533-1", - "EUC-TW", - "JIS_C6226-1983", - "CSISO2022JP2", - "UNICODE-1-1-UTF-7", - "CSISOLATIN3", - "CYRILLIC-ASIAN", - "GREEK", - "ISO-2022-JP-MS", - "ISO_8859-7", - "WINDOWS-1251", - "WINDOWS-1256", - "WINDOWS-1255", - "WINDOWS-1258", - "TIS620.2533-0", - "WINDOWS-1252", - "CSISO58GB231280", - "MACINTOSH", - "WCHAR_T", - "MACICELAND", - "CSISOLATINGREEK", - "CSHPROMAN8", - "ISO_8859-1:1987", - "ISO_8859-6:1987", - "WINDOWS-1254", - "WINDOWS-1250", - "ISO_8859-2:1987", - "MS-CYRL", - "ISO646-JP", - "KS_C_5601-1987", - "MACCYRILLIC", - "UCS-2LE", - "CSMACINTOSH", - "HZ-GB-2312", - "TIS620.2533", - "LATIN7", - "UCS-2-INTERNAL", - "EUCJP", - "UCS-2BE", - "CSISO57GB1988", - "JISX0201-1976", - "SHIFT-JIS", - "MS_KANJI", - "ISO-2022-JP", - "UCS-4LE", - "EUC-JP", - "UNICODELITTLE", - "CSPC862LATINHEBREW", - "WINDOWS-936", - "UCS-4-INTERNAL", - "WINDOWS-1253", - "UCS-4BE", - "MS-TURK", - "GEORGIAN-PS", - "CSEUCTW", - "IBM-CP1133", - "MULELAO-1", - "JIS_X0212", - "CSISOLATINHEBREW", - "UTF-16LE", - "IBM367", - "MS-ARAB", - "ISO_8859-7:2003", - "CSISO2022JP", - "UTF-16BE", - "JIS_X0201", - "MS-HEBR", - "JIS_X0208", - "UTF-7", - "SHIFT_JIS", - "MACUKRAINE", - "JIS_X0212-1990", - "UNICODEBIG", - "ANSI_X3.4-1986", - "ANSI_X3.4-1968", - "TCVN5712-1:1993", - "WINDOWS-1257", - "MACCENTRALEUROPE", - "JOHAB", - "JIS_X0208-1990", - "CSSHIFTJIS", - "MACGREEK", - "BIGFIVE", - "MS-GREEK", - "UTF-32LE", - "ISO_8859-7:1987", - "BIG-FIVE", - "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", - "NEXTSTEP", - "UTF-32BE", - "BIG5HKSCS", - "CSISO87JISX0208", - "WINDOWS-874", - "JIS_X0208-1983", - "BIG5-HKSCS", - "JIS_X0212.1990-0", - "HEBREW", - "MACTURKISH", - "UCS-2-SWAPPED", - "CSPC850MULTILINGUAL", - "CSHALFWIDTHKATAKANA", - "UCS-4-SWAPPED", - "BIG5-HKSCS:2001", - "BIG5-HKSCS:2008", - "BIG5-HKSCS:1999", - "BIG5-HKSCS:2004", - "WINBALTRIM", - "CSEUCPKDFMTJAPANESE", - "KO_KR.JOHAP92", - "MACHEBREW" - }; -#define stringpool ((const char *) &stringpool_contents) - -static const struct alias aliases[] = - { - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 291 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str8, ei_iso646_cn}, - {-1}, {-1}, {-1}, -#line 23 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str12, ei_ascii}, - {-1}, {-1}, -#line 209 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str15, ei_cp866}, - {-1}, {-1}, {-1}, -#line 52 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str19, ei_c99}, - {-1}, {-1}, -#line 207 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str22, ei_cp866}, - {-1}, {-1}, -#line 205 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str25, ei_cp862}, -#line 175 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str26, ei_cp1251}, - {-1}, -#line 191 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str28, ei_cp1256}, -#line 58 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str29, ei_iso8859_1}, -#line 188 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str30, ei_cp1255}, - {-1}, -#line 203 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str32, ei_cp862}, - {-1}, -#line 197 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str34, ei_cp1258}, - {-1}, {-1}, {-1}, -#line 179 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str38, ei_cp1252}, -#line 13 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str39, ei_ascii}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 358 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str46, ei_euc_kr}, - {-1}, -#line 229 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str48, ei_hp_roman8}, - {-1}, -#line 63 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str50, ei_iso8859_1}, - {-1}, -#line 103 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str52, ei_iso8859_6}, -#line 140 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str53, ei_iso8859_11}, -#line 94 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str54, ei_iso8859_5}, -#line 167 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str55, ei_iso8859_16}, - {-1}, -#line 160 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str57, ei_iso8859_15}, -#line 121 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str58, ei_iso8859_8}, -#line 359 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str59, ei_cp949}, -#line 129 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str60, ei_iso8859_9}, -#line 54 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str61, ei_iso8859_1}, -#line 71 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str62, ei_iso8859_2}, -#line 95 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str63, ei_iso8859_6}, -#line 138 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str64, ei_iso8859_11}, -#line 88 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str65, ei_iso8859_5}, -#line 161 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str66, ei_iso8859_16}, -#line 322 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str67, ei_iso2022_jpms}, -#line 155 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str68, ei_iso8859_15}, -#line 115 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str69, ei_iso8859_8}, -#line 289 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str70, ei_iso646_cn}, -#line 122 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str71, ei_iso8859_9}, - {-1}, -#line 64 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str73, ei_iso8859_2}, - {-1}, -#line 238 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str75, ei_pt154}, - {-1}, -#line 201 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str77, ei_cp850}, - {-1}, {-1}, -#line 16 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str80, ei_ascii}, - {-1}, {-1}, {-1}, -#line 185 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str84, ei_cp1254}, -#line 199 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str85, ei_cp850}, -#line 348 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str86, ei_cp950}, -#line 254 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str87, ei_tis620}, - {-1}, -#line 297 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str89, ei_isoir165}, -#line 172 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str90, ei_cp1250}, -#line 294 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str91, ei_gb2312}, -#line 108 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str92, ei_iso8859_7}, - {-1}, {-1}, -#line 324 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str95, ei_euc_cn}, -#line 286 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str96, ei_jisx0212}, - {-1}, -#line 164 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str98, ei_iso8859_16}, -#line 150 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str99, ei_iso8859_14}, - {-1}, -#line 211 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str101, ei_cp1131}, -#line 362 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str102, ei_johab}, -#line 333 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str103, ei_iso2022_cn}, - {-1}, -#line 329 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str105, ei_cp936}, -#line 323 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str106, ei_euc_cn}, -#line 22 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str107, ei_ascii}, -#line 87 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str108, ei_iso8859_4}, - {-1}, {-1}, -#line 154 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str111, ei_iso8859_14}, -#line 366 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str112, ei_local_char}, - {-1}, {-1}, -#line 315 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str115, ei_cp932}, -#line 67 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str116, ei_iso8859_2}, -#line 137 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str117, ei_iso8859_10}, - {-1}, -#line 80 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str119, ei_iso8859_4}, - {-1}, -#line 125 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str121, ei_iso8859_9}, -#line 147 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str122, ei_iso8859_14}, -#line 302 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str123, ei_ksc5601}, -#line 336 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str124, ei_hz}, -#line 241 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str125, ei_rk1048}, -#line 75 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str126, ei_iso8859_3}, - {-1}, -#line 130 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str128, ei_iso8859_10}, -#line 178 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str129, ei_cp1251}, -#line 360 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str130, ei_cp949}, -#line 335 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str131, ei_iso2022_cn_ext}, - {-1}, -#line 55 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str133, ei_iso8859_1}, - {-1}, -#line 96 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str135, ei_iso8859_6}, -#line 139 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str136, ei_iso8859_11}, -#line 89 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str137, ei_iso8859_5}, -#line 162 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str138, ei_iso8859_16}, -#line 267 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str139, ei_iso646_jp}, -#line 156 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str140, ei_iso8859_15}, -#line 116 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str141, ei_iso8859_8}, -#line 163 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str142, ei_iso8859_16}, -#line 123 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str143, ei_iso8859_9}, - {-1}, -#line 65 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str145, ei_iso8859_2}, -#line 261 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str146, ei_tcvn}, -#line 157 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str147, ei_iso8859_15}, -#line 83 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str148, ei_iso8859_4}, -#line 334 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str149, ei_iso2022_cn}, -#line 214 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str150, ei_mac_roman}, - {-1}, {-1}, -#line 61 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str153, ei_iso8859_1}, -#line 135 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str154, ei_iso8859_10}, -#line 127 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str155, ei_iso8859_9}, - {-1}, -#line 152 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str157, ei_iso8859_14}, - {-1}, -#line 69 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str159, ei_iso8859_2}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 208 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str166, ei_cp866}, - {-1}, {-1}, {-1}, {-1}, -#line 91 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str171, ei_iso8859_5}, - {-1}, -#line 59 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str173, ei_iso8859_1}, -#line 149 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str174, ei_iso8859_14}, -#line 118 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str175, ei_iso8859_8}, -#line 204 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str176, ei_cp862}, -#line 249 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str177, ei_tis620}, - {-1}, -#line 132 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str179, ei_iso8859_10}, -#line 57 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str180, ei_iso8859_1}, - {-1}, -#line 85 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str182, ei_iso8859_4}, -#line 235 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str183, ei_koi8_t}, -#line 258 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str184, ei_viscii}, - {-1}, {-1}, {-1}, -#line 248 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str188, ei_tis620}, -#line 21 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str189, ei_ascii}, -#line 260 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str190, ei_viscii}, -#line 81 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str191, ei_iso8859_4}, -#line 182 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str192, ei_cp1253}, -#line 60 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str193, ei_iso8859_1}, -#line 148 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str194, ei_iso8859_14}, -#line 134 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str195, ei_iso8859_10}, -#line 244 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str196, ei_rk1048}, -#line 126 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str197, ei_iso8859_9}, -#line 311 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str198, ei_sjis}, -#line 243 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str199, ei_rk1048}, -#line 131 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str200, ei_iso8859_10}, -#line 151 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str201, ei_iso8859_14}, -#line 169 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str202, ei_koi8_r}, - {-1}, {-1}, -#line 68 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str205, ei_iso8859_2}, - {-1}, -#line 168 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str207, ei_koi8_r}, - {-1}, {-1}, {-1}, {-1}, -#line 236 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str212, ei_pt154}, - {-1}, -#line 159 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str214, ei_iso8859_15}, -#line 325 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str215, ei_euc_cn}, -#line 79 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str216, ei_iso8859_3}, - {-1}, -#line 25 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str218, ei_ucs2}, -#line 146 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str219, ei_iso8859_13}, -#line 166 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str220, ei_iso8859_16}, -#line 285 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str221, ei_jisx0212}, - {-1}, -#line 250 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str223, ei_tis620}, - {-1}, -#line 110 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str225, ei_iso8859_7}, - {-1}, -#line 72 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str227, ei_iso8859_3}, -#line 101 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str228, ei_iso8859_6}, -#line 200 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str229, ei_cp850}, -#line 141 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str230, ei_iso8859_13}, -#line 228 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str231, ei_hp_roman8}, - {-1}, {-1}, {-1}, {-1}, -#line 77 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str236, ei_iso8859_3}, - {-1}, {-1}, -#line 12 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str239, ei_ascii}, -#line 299 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str240, ei_ksc5601}, -#line 272 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str241, ei_jisx0201}, - {-1}, -#line 26 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str243, ei_ucs2}, - {-1}, -#line 256 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str245, ei_cp874}, -#line 330 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str246, ei_cp936}, - {-1}, {-1}, -#line 278 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str249, ei_jisx0208}, - {-1}, -#line 84 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str251, ei_iso8859_4}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 181 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str258, ei_cp1252}, -#line 36 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str259, ei_ucs4}, -#line 165 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str260, ei_iso8859_16}, -#line 304 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str261, ei_ksc5601}, -#line 143 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str262, ei_iso8859_13}, - {-1}, -#line 34 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str264, ei_ucs4}, - {-1}, -#line 35 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str266, ei_ucs4}, -#line 246 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str267, ei_cp1133}, -#line 356 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str268, ei_euc_kr}, -#line 31 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str269, ei_ucs2be}, -#line 232 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str270, ei_armscii_8}, - {-1}, -#line 39 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str272, ei_utf16}, - {-1}, -#line 342 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str274, ei_ces_big5}, -#line 24 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str275, ei_utf8}, -#line 364 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str276, ei_iso2022_kr}, - {-1}, {-1}, -#line 355 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str279, ei_euc_kr}, -#line 347 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str280, ei_ces_big5}, -#line 109 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str281, ei_iso8859_7}, -#line 341 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str282, ei_euc_tw}, -#line 30 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str283, ei_ucs2be}, - {-1}, -#line 343 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str285, ei_ces_big5}, - {-1}, -#line 153 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str287, ei_iso8859_14}, -#line 158 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str288, ei_iso8859_15}, -#line 251 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str289, ei_tis620}, -#line 218 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str290, ei_mac_croatian}, -#line 346 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str291, ei_ces_big5}, - {-1}, {-1}, -#line 62 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str294, ei_iso8859_1}, -#line 288 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str295, ei_iso646_cn}, -#line 136 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str296, ei_iso8859_10}, - {-1}, -#line 128 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str298, ei_iso8859_9}, -#line 73 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str299, ei_iso8859_3}, -#line 332 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str300, ei_gb18030}, -#line 93 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str301, ei_iso8859_5}, -#line 142 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str302, ei_iso8859_13}, - {-1}, {-1}, {-1}, -#line 70 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str306, ei_iso8859_2}, -#line 328 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str307, ei_ces_gbk}, - {-1}, -#line 268 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str309, ei_iso646_jp}, - {-1}, -#line 14 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str311, ei_ascii}, - {-1}, -#line 296 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str313, ei_gb2312}, - {-1}, -#line 259 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str315, ei_viscii}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 145 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str321, ei_iso8859_13}, -#line 365 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str322, ei_iso2022_kr}, -#line 102 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str323, ei_iso8859_6}, - {-1}, {-1}, {-1}, -#line 277 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str327, ei_jisx0208}, -#line 226 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str328, ei_mac_thai}, -#line 233 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str329, ei_georgian_academy}, -#line 53 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str330, ei_java}, -#line 99 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str331, ei_iso8859_6}, - {-1}, {-1}, -#line 210 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str334, ei_cp866}, - {-1}, -#line 90 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str336, ei_iso8859_5}, - {-1}, -#line 117 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str338, ei_iso8859_8}, -#line 27 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str339, ei_ucs2}, -#line 124 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str340, ei_iso8859_9}, - {-1}, {-1}, {-1}, {-1}, -#line 301 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str345, ei_ksc5601}, -#line 263 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str346, ei_tcvn}, - {-1}, -#line 314 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str348, ei_sjis}, -#line 262 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str349, ei_tcvn}, - {-1}, {-1}, -#line 86 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str352, ei_iso8859_4}, -#line 242 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str353, ei_rk1048}, - {-1}, -#line 237 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str355, ei_pt154}, -#line 92 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str356, ei_iso8859_5}, - {-1}, -#line 269 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str358, ei_iso646_jp}, -#line 76 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str359, ei_iso8859_3}, - {-1}, {-1}, -#line 194 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str362, ei_cp1257}, -#line 82 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str363, ei_iso8859_4}, -#line 227 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str364, ei_hp_roman8}, -#line 42 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str365, ei_utf32}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 287 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str371, ei_jisx0212}, -#line 212 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str372, ei_mac_roman}, -#line 170 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str373, ei_koi8_u}, - {-1}, -#line 111 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str375, ei_iso8859_7}, - {-1}, -#line 293 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str377, ei_gb2312}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 327 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str383, ei_euc_cn}, - {-1}, {-1}, -#line 114 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str386, ei_iso8859_7}, -#line 240 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str387, ei_pt154}, - {-1}, {-1}, {-1}, {-1}, -#line 174 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str392, ei_cp1250}, - {-1}, {-1}, -#line 357 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str395, ei_euc_kr}, - {-1}, -#line 104 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str397, ei_iso8859_7}, - {-1}, -#line 15 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str399, ei_ascii}, -#line 265 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str400, ei_iso646_jp}, - {-1}, {-1}, {-1}, -#line 318 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str404, ei_iso2022_jp1}, -#line 100 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str405, ei_iso8859_6}, -#line 303 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str406, ei_ksc5601}, - {-1}, {-1}, {-1}, -#line 319 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str410, ei_iso2022_jp2}, - {-1}, -#line 298 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str412, ei_isoir165}, - {-1}, -#line 171 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str414, ei_koi8_ru}, - {-1}, -#line 225 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str416, ei_mac_arabic}, -#line 74 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str417, ei_iso8859_3}, - {-1}, -#line 290 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str419, ei_iso646_cn}, - {-1}, -#line 279 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str421, ei_jisx0208}, -#line 133 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str422, ei_iso8859_10}, - {-1}, -#line 219 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str424, ei_mac_romania}, - {-1}, -#line 98 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str426, ei_iso8859_6}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 19 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str435, ei_ascii}, - {-1}, -#line 339 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str437, ei_euc_tw}, - {-1}, {-1}, {-1}, -#line 47 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str441, ei_utf7}, - {-1}, -#line 326 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str443, ei_euc_cn}, -#line 253 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str444, ei_tis620}, - {-1}, {-1}, {-1}, -#line 338 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str448, ei_euc_tw}, -#line 280 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str449, ei_jisx0208}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 320 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str455, ei_iso2022_jp2}, - {-1}, -#line 46 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str457, ei_utf7}, - {-1}, {-1}, -#line 78 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str460, ei_iso8859_3}, - {-1}, {-1}, {-1}, -#line 239 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str464, ei_pt154}, -#line 112 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str465, ei_iso8859_7}, - {-1}, -#line 321 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str467, ei_iso2022_jpms}, - {-1}, -#line 105 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str469, ei_iso8859_7}, - {-1}, -#line 176 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str471, ei_cp1251}, -#line 192 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str472, ei_cp1256}, -#line 189 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str473, ei_cp1255}, - {-1}, -#line 198 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str475, ei_cp1258}, -#line 252 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str476, ei_tis620}, -#line 180 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str477, ei_cp1252}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 295 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str484, ei_gb2312}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 213 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str490, ei_mac_roman}, -#line 367 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str491, ei_local_wchar_t}, - {-1}, {-1}, -#line 217 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str494, ei_mac_iceland}, -#line 113 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str495, ei_iso8859_7}, -#line 230 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str496, ei_hp_roman8}, - {-1}, -#line 56 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str498, ei_iso8859_1}, -#line 97 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str499, ei_iso8859_6}, -#line 186 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str500, ei_cp1254}, - {-1}, {-1}, -#line 173 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str503, ei_cp1250}, -#line 66 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str504, ei_iso8859_2}, -#line 177 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str505, ei_cp1251}, -#line 266 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str506, ei_iso646_jp}, - {-1}, -#line 300 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str508, ei_ksc5601}, -#line 220 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str509, ei_mac_cyrillic}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 32 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str517, ei_ucs2le}, - {-1}, {-1}, -#line 215 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str520, ei_mac_roman}, -#line 337 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str521, ei_hz}, - {-1}, {-1}, {-1}, -#line 255 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str525, ei_tis620}, - {-1}, {-1}, {-1}, -#line 144 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str529, ei_iso8859_13}, -#line 48 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str530, ei_ucs2internal}, -#line 306 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str531, ei_euc_jp}, -#line 28 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str532, ei_ucs2be}, - {-1}, -#line 292 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str534, ei_iso646_cn}, -#line 271 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str535, ei_jisx0201}, -#line 310 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str536, ei_sjis}, - {-1}, -#line 312 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str538, ei_sjis}, -#line 316 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str539, ei_iso2022_jp}, -#line 38 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str540, ei_ucs4le}, - {-1}, -#line 305 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str542, ei_euc_jp}, - {-1}, -#line 33 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str544, ei_ucs2le}, -#line 206 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str545, ei_cp862}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 331 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str552, ei_cp936}, -#line 50 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str553, ei_ucs4internal}, -#line 183 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str554, ei_cp1253}, -#line 37 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str555, ei_ucs4be}, - {-1}, -#line 187 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str557, ei_cp1254}, -#line 234 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str558, ei_georgian_ps}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 340 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str564, ei_euc_tw}, -#line 247 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str565, ei_cp1133}, - {-1}, {-1}, {-1}, {-1}, -#line 245 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str570, ei_mulelao}, - {-1}, {-1}, -#line 282 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str573, ei_jisx0212}, - {-1}, -#line 120 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str575, ei_iso8859_8}, -#line 41 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str576, ei_utf16le}, - {-1}, {-1}, -#line 20 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str579, ei_ascii}, -#line 193 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str580, ei_cp1256}, -#line 107 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str581, ei_iso8859_7}, - {-1}, {-1}, {-1}, -#line 317 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str585, ei_iso2022_jp}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 40 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str591, ei_utf16be}, - {-1}, -#line 270 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str593, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 190 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str600, ei_cp1255}, -#line 274 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str601, ei_jisx0208}, - {-1}, -#line 45 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str603, ei_utf7}, - {-1}, {-1}, {-1}, {-1}, -#line 309 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str608, ei_sjis}, -#line 221 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str609, ei_mac_ukraine}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 284 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str616, ei_jisx0212}, - {-1}, -#line 29 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str618, ei_ucs2be}, -#line 18 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str619, ei_ascii}, - {-1}, {-1}, -#line 17 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str622, ei_ascii}, - {-1}, {-1}, {-1}, -#line 264 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str626, ei_tcvn}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, -#line 195 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str639, ei_cp1257}, - {-1}, {-1}, {-1}, {-1}, -#line 216 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str644, ei_mac_centraleurope}, -#line 361 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str645, ei_johab}, -#line 276 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str646, ei_jisx0208}, -#line 313 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str647, ei_sjis}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 222 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str653, ei_mac_greek}, - {-1}, {-1}, {-1}, {-1}, -#line 345 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str658, ei_ces_big5}, - {-1}, {-1}, -#line 184 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str661, ei_cp1253}, - {-1}, {-1}, -#line 44 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str664, ei_utf32le}, - {-1}, -#line 106 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str666, ei_iso8859_7}, - {-1}, {-1}, -#line 344 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str669, ei_ces_big5}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 307 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str676, ei_euc_jp}, - {-1}, -#line 231 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str678, ei_nextstep}, -#line 43 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str679, ei_utf32be}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, -#line 353 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str690, ei_big5hkscs2008}, -#line 281 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str691, ei_jisx0208}, -#line 257 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str692, ei_cp874}, - {-1}, {-1}, {-1}, {-1}, -#line 275 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str697, ei_jisx0208}, - {-1}, {-1}, {-1}, -#line 352 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str701, ei_big5hkscs2008}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 283 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str718, ei_jisx0212}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, -#line 119 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str730, ei_iso8859_8}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, -#line 223 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str751, ei_mac_turkish}, - {-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}, -#line 49 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str797, ei_ucs2swapped}, -#line 202 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str798, ei_cp850}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 273 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str814, ei_jisx0201}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 51 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str820, ei_ucs4swapped}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 350 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str836, ei_big5hkscs2001}, - {-1}, {-1}, {-1}, -#line 354 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str840, ei_big5hkscs2008}, -#line 349 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str841, ei_big5hkscs1999}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 351 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str865, ei_big5hkscs2004}, - {-1}, {-1}, {-1}, {-1}, {-1}, -#line 196 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str871, ei_cp1257}, - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, -#line 308 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str879, ei_euc_jp}, - {-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}, -#line 363 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str912, ei_johab}, - {-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}, -#line 224 "lib/aliases_syssolaris.gperf" - {(int)(size_t)&((struct stringpool_t *)0)->stringpool_str956, ei_mac_hebrew} - }; - -static const struct alias * -aliases_lookup (register const char *str, register size_t len) -{ - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = aliases_hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register int o = aliases[key].name; - if (o >= 0) - { - register const char *s = o + stringpool; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &aliases[key]; - } - } - } - return 0; -} diff --git a/jni/parted/libiconv/lib/aliases_zos.h b/jni/parted/libiconv/lib/aliases_zos.h deleted file mode 100755 index 9143ea1..0000000 --- a/jni/parted/libiconv/lib/aliases_zos.h +++ /dev/null @@ -1,241 +0,0 @@ - S(zos_0, "IBM-037", ei_ebcdic037 ) - S(zos_1, "IBM037", ei_ebcdic037 ) - S(zos_2, "CP037", ei_ebcdic037 ) - S(zos_3, "EBCDIC-CP-US", ei_ebcdic037 ) - S(zos_4, "EBCDIC-CP-CA", ei_ebcdic037 ) - S(zos_5, "EBCDIC-CP-WT", ei_ebcdic037 ) - S(zos_6, "EBCDIC-CP-NL", ei_ebcdic037 ) - S(zos_7, "CSIBM037", ei_ebcdic037 ) - S(zos_8, "IBM-273", ei_ebcdic273 ) - S(zos_9, "IBM273", ei_ebcdic273 ) - S(zos_10, "CP273", ei_ebcdic273 ) - S(zos_11, "CSIBM273", ei_ebcdic273 ) - S(zos_12, "IBM-277", ei_ebcdic277 ) - S(zos_13, "IBM277", ei_ebcdic277 ) - S(zos_14, "EBCDIC-CP-DK", ei_ebcdic277 ) - S(zos_15, "EBCDIC-CP-NO", ei_ebcdic277 ) - S(zos_16, "CSIBM277", ei_ebcdic277 ) - S(zos_17, "IBM-278", ei_ebcdic278 ) - S(zos_18, "IBM278", ei_ebcdic278 ) - S(zos_19, "CP278", ei_ebcdic278 ) - S(zos_20, "EBCDIC-CP-FI", ei_ebcdic278 ) - S(zos_21, "EBCDIC-CP-SE", ei_ebcdic278 ) - S(zos_22, "CSIBM278", ei_ebcdic278 ) - S(zos_23, "IBM-280", ei_ebcdic280 ) - S(zos_24, "IBM280", ei_ebcdic280 ) - S(zos_25, "CP280", ei_ebcdic280 ) - S(zos_26, "EBCDIC-CP-IT", ei_ebcdic280 ) - S(zos_27, "CSIBM280", ei_ebcdic280 ) - S(zos_28, "IBM-282", ei_ebcdic282 ) - S(zos_29, "IBM282", ei_ebcdic282 ) - S(zos_30, "IBM-284", ei_ebcdic284 ) - S(zos_31, "IBM284", ei_ebcdic284 ) - S(zos_32, "CP284", ei_ebcdic284 ) - S(zos_33, "EBCDIC-CP-ES", ei_ebcdic284 ) - S(zos_34, "CSIBM284", ei_ebcdic284 ) - S(zos_35, "IBM-285", ei_ebcdic285 ) - S(zos_36, "IBM285", ei_ebcdic285 ) - S(zos_37, "CP285", ei_ebcdic285 ) - S(zos_38, "EBCDIC-CP-GB", ei_ebcdic285 ) - S(zos_39, "CSIBM285", ei_ebcdic285 ) - S(zos_40, "IBM-297", ei_ebcdic297 ) - S(zos_41, "IBM297", ei_ebcdic297 ) - S(zos_42, "CP297", ei_ebcdic297 ) - S(zos_43, "EBCDIC-CP-FR", ei_ebcdic297 ) - S(zos_44, "CSIBM297", ei_ebcdic297 ) - S(zos_45, "IBM-423", ei_ebcdic423 ) - S(zos_46, "IBM423", ei_ebcdic423 ) - S(zos_47, "CP423", ei_ebcdic423 ) - S(zos_48, "EBCDIC-CP-GR", ei_ebcdic423 ) - S(zos_49, "CSIBM423", ei_ebcdic423 ) - S(zos_50, "IBM-424", ei_ebcdic424 ) - S(zos_51, "IBM424", ei_ebcdic424 ) - S(zos_52, "CP424", ei_ebcdic424 ) - S(zos_53, "EBCDIC-CP-HE", ei_ebcdic424 ) - S(zos_54, "CSIBM424", ei_ebcdic424 ) - S(zos_55, "IBM-425", ei_ebcdic425 ) - S(zos_56, "IBM425", ei_ebcdic425 ) - S(zos_57, "IBM-500", ei_ebcdic500 ) - S(zos_58, "IBM500", ei_ebcdic500 ) - S(zos_59, "CP500", ei_ebcdic500 ) - S(zos_60, "EBCDIC-CP-BE", ei_ebcdic500 ) - S(zos_61, "EBCDIC-CP-CH", ei_ebcdic500 ) - S(zos_62, "CSIBM500", ei_ebcdic500 ) - S(zos_63, "IBM-838", ei_ebcdic838 ) - S(zos_64, "IBM838", ei_ebcdic838 ) - S(zos_65, "IBM-THAI", ei_ebcdic838 ) - S(zos_66, "CSIBMTHAI", ei_ebcdic838 ) - S(zos_67, "IBM-870", ei_ebcdic870 ) - S(zos_68, "IBM870", ei_ebcdic870 ) - S(zos_69, "CP870", ei_ebcdic870 ) - S(zos_70, "EBCDIC-CP-ROECE", ei_ebcdic870 ) - S(zos_71, "EBCDIC-CP-YU", ei_ebcdic870 ) - S(zos_72, "CSIBM870", ei_ebcdic870 ) - S(zos_73, "IBM-871", ei_ebcdic871 ) - S(zos_74, "IBM871", ei_ebcdic871 ) - S(zos_75, "CP871", ei_ebcdic871 ) - S(zos_76, "EBCDIC-CP-IS", ei_ebcdic871 ) - S(zos_77, "CSIBM871", ei_ebcdic871 ) - S(zos_78, "IBM-875", ei_ebcdic875 ) - S(zos_79, "IBM875", ei_ebcdic875 ) - S(zos_80, "CP875", ei_ebcdic875 ) - S(zos_81, "EBCDIC-GREEK", ei_ebcdic875 ) - S(zos_82, "IBM-880", ei_ebcdic880 ) - S(zos_83, "IBM880", ei_ebcdic880 ) - S(zos_84, "CP880", ei_ebcdic880 ) - S(zos_85, "EBCDIC-CYRILLIC", ei_ebcdic880 ) - S(zos_86, "CSIBM880", ei_ebcdic880 ) - S(zos_87, "IBM-905", ei_ebcdic905 ) - S(zos_88, "IBM905", ei_ebcdic905 ) - S(zos_89, "CP905", ei_ebcdic905 ) - S(zos_90, "EBCDIC-CP-TR", ei_ebcdic905 ) - S(zos_91, "CSIBM905", ei_ebcdic905 ) - S(zos_92, "IBM-924", ei_ebcdic924 ) - S(zos_93, "IBM924", ei_ebcdic924 ) - S(zos_94, "IBM00924", ei_ebcdic924 ) - S(zos_95, "CCSID00924", ei_ebcdic924 ) - S(zos_96, "CP00924", ei_ebcdic924 ) - S(zos_97, "EBCDIC-LATIN9-EURO", ei_ebcdic924 ) - S(zos_98, "CSIBM00924", ei_ebcdic924 ) - S(zos_99, "IBM-1025", ei_ebcdic1025 ) - S(zos_100, "IBM1025", ei_ebcdic1025 ) - S(zos_101, "CP1025", ei_ebcdic1025 ) - S(zos_102, "IBM-1026", ei_ebcdic1026 ) - S(zos_103, "IBM1026", ei_ebcdic1026 ) - S(zos_104, "CP1026", ei_ebcdic1026 ) - S(zos_105, "CSIBM1026", ei_ebcdic1026 ) - S(zos_106, "IBM-1047", ei_ebcdic1047 ) - S(zos_107, "IBM1047", ei_ebcdic1047 ) - S(zos_108, "CP1047", ei_ebcdic1047 ) - S(zos_109, "CSIBM1047", ei_ebcdic1047 ) - S(zos_110, "IBM-1097", ei_ebcdic1097 ) - S(zos_111, "IBM1097", ei_ebcdic1097 ) - S(zos_112, "CP1097", ei_ebcdic1097 ) - S(zos_113, "IBM-1112", ei_ebcdic1112 ) - S(zos_114, "IBM1112", ei_ebcdic1112 ) - S(zos_115, "CP1112", ei_ebcdic1112 ) - S(zos_116, "IBM-1122", ei_ebcdic1122 ) - S(zos_117, "IBM1122", ei_ebcdic1122 ) - S(zos_118, "CP1122", ei_ebcdic1122 ) - S(zos_119, "IBM-1123", ei_ebcdic1123 ) - S(zos_120, "IBM1123", ei_ebcdic1123 ) - S(zos_121, "CP1123", ei_ebcdic1123 ) - S(zos_122, "IBM-1130", ei_ebcdic1130 ) - S(zos_123, "IBM1130", ei_ebcdic1130 ) - S(zos_124, "CP1130", ei_ebcdic1130 ) - S(zos_125, "IBM-1132", ei_ebcdic1132 ) - S(zos_126, "IBM1132", ei_ebcdic1132 ) - S(zos_127, "CP1132", ei_ebcdic1132 ) - S(zos_128, "IBM-1137", ei_ebcdic1137 ) - S(zos_129, "IBM1137", ei_ebcdic1137 ) - S(zos_130, "CP1137", ei_ebcdic1137 ) - S(zos_131, "IBM-1140", ei_ebcdic1140 ) - S(zos_132, "IBM1140", ei_ebcdic1140 ) - S(zos_133, "IBM01140", ei_ebcdic1140 ) - S(zos_134, "CCSID01140", ei_ebcdic1140 ) - S(zos_135, "CP01140", ei_ebcdic1140 ) - S(zos_136, "EBCDIC-US-37+EURO", ei_ebcdic1140 ) - S(zos_137, "CSIBM01140", ei_ebcdic1140 ) - S(zos_138, "IBM-1141", ei_ebcdic1141 ) - S(zos_139, "IBM1141", ei_ebcdic1141 ) - S(zos_140, "IBM01141", ei_ebcdic1141 ) - S(zos_141, "CCSID01141", ei_ebcdic1141 ) - S(zos_142, "CP01141", ei_ebcdic1141 ) - S(zos_143, "EBCDIC-DE-273+EURO", ei_ebcdic1141 ) - S(zos_144, "CSIBM01141", ei_ebcdic1141 ) - S(zos_145, "IBM-1142", ei_ebcdic1142 ) - S(zos_146, "IBM1142", ei_ebcdic1142 ) - S(zos_147, "IBM01142", ei_ebcdic1142 ) - S(zos_148, "CCSID01142", ei_ebcdic1142 ) - S(zos_149, "CP01142", ei_ebcdic1142 ) - S(zos_150, "EBCDIC-DK-277+EURO", ei_ebcdic1142 ) - S(zos_151, "EBCDIC-NO-277+EURO", ei_ebcdic1142 ) - S(zos_152, "CSIBM01142", ei_ebcdic1142 ) - S(zos_153, "IBM-1143", ei_ebcdic1143 ) - S(zos_154, "IBM1143", ei_ebcdic1143 ) - S(zos_155, "IBM01143", ei_ebcdic1143 ) - S(zos_156, "CCSID01143", ei_ebcdic1143 ) - S(zos_157, "CP01143", ei_ebcdic1143 ) - S(zos_158, "EBCDIC-FI-278+EURO", ei_ebcdic1143 ) - S(zos_159, "EBCDIC-SE-278+EURO", ei_ebcdic1143 ) - S(zos_160, "CSIBM01143", ei_ebcdic1143 ) - S(zos_161, "IBM-1144", ei_ebcdic1144 ) - S(zos_162, "IBM1144", ei_ebcdic1144 ) - S(zos_163, "IBM01144", ei_ebcdic1144 ) - S(zos_164, "CCSID01144", ei_ebcdic1144 ) - S(zos_165, "CP01144", ei_ebcdic1144 ) - S(zos_166, "EBCDIC-IT-280+EURO", ei_ebcdic1144 ) - S(zos_167, "CSPC8CODEPAGE1144", ei_ebcdic1144 ) - S(zos_168, "IBM-1145", ei_ebcdic1145 ) - S(zos_169, "IBM1145", ei_ebcdic1145 ) - S(zos_170, "IBM01145", ei_ebcdic1145 ) - S(zos_171, "CCSID01145", ei_ebcdic1145 ) - S(zos_172, "CP01145", ei_ebcdic1145 ) - S(zos_173, "EBCDIC-ES-284+EURO", ei_ebcdic1145 ) - S(zos_174, "CSIBM01145", ei_ebcdic1145 ) - S(zos_175, "IBM-1146", ei_ebcdic1146 ) - S(zos_176, "IBM1146", ei_ebcdic1146 ) - S(zos_177, "IBM01146", ei_ebcdic1146 ) - S(zos_178, "CCSID01146", ei_ebcdic1146 ) - S(zos_179, "CP01146", ei_ebcdic1146 ) - S(zos_180, "EBCDIC-GB-285+EURO", ei_ebcdic1146 ) - S(zos_181, "CSPC8CODEPAGE1146", ei_ebcdic1146 ) - S(zos_182, "IBM-1147", ei_ebcdic1147 ) - S(zos_183, "IBM1147", ei_ebcdic1147 ) - S(zos_184, "IBM01147", ei_ebcdic1147 ) - S(zos_185, "CCSID01147", ei_ebcdic1147 ) - S(zos_186, "CP01147", ei_ebcdic1147 ) - S(zos_187, "EBCDIC-FR-297+EURO", ei_ebcdic1147 ) - S(zos_188, "CSIBM01147", ei_ebcdic1147 ) - S(zos_189, "IBM-1148", ei_ebcdic1148 ) - S(zos_190, "IBM1148", ei_ebcdic1148 ) - S(zos_191, "IBM01148", ei_ebcdic1148 ) - S(zos_192, "CCSID01148", ei_ebcdic1148 ) - S(zos_193, "CP01148", ei_ebcdic1148 ) - S(zos_194, "EBCDIC-INTERNATIONAL-500+EURO", ei_ebcdic1148 ) - S(zos_195, "CSIBM01148", ei_ebcdic1148 ) - S(zos_196, "IBM-1149", ei_ebcdic1149 ) - S(zos_197, "IBM1149", ei_ebcdic1149 ) - S(zos_198, "IBM01149", ei_ebcdic1149 ) - S(zos_199, "CCSID01149", ei_ebcdic1149 ) - S(zos_200, "CP01149", ei_ebcdic1149 ) - S(zos_201, "EBCDIC-IS-871+EURO", ei_ebcdic1149 ) - S(zos_202, "CSIBM01149", ei_ebcdic1149 ) - S(zos_203, "IBM-1153", ei_ebcdic1153 ) - S(zos_204, "IBM1153", ei_ebcdic1153 ) - S(zos_205, "CP1153", ei_ebcdic1153 ) - S(zos_206, "IBM-1154", ei_ebcdic1154 ) - S(zos_207, "IBM1154", ei_ebcdic1154 ) - S(zos_208, "CP1154", ei_ebcdic1154 ) - S(zos_209, "IBM-1155", ei_ebcdic1155 ) - S(zos_210, "IBM1155", ei_ebcdic1155 ) - S(zos_211, "CP1155", ei_ebcdic1155 ) - S(zos_212, "IBM-1156", ei_ebcdic1156 ) - S(zos_213, "IBM1156", ei_ebcdic1156 ) - S(zos_214, "CP1156", ei_ebcdic1156 ) - S(zos_215, "IBM-1157", ei_ebcdic1157 ) - S(zos_216, "IBM1157", ei_ebcdic1157 ) - S(zos_217, "CP1157", ei_ebcdic1157 ) - S(zos_218, "IBM-1158", ei_ebcdic1158 ) - S(zos_219, "IBM1158", ei_ebcdic1158 ) - S(zos_220, "CP1158", ei_ebcdic1158 ) - S(zos_221, "IBM-1160", ei_ebcdic1160 ) - S(zos_222, "IBM1160", ei_ebcdic1160 ) - S(zos_223, "CP1160", ei_ebcdic1160 ) - S(zos_224, "IBM-1164", ei_ebcdic1164 ) - S(zos_225, "IBM1164", ei_ebcdic1164 ) - S(zos_226, "CP1164", ei_ebcdic1164 ) - S(zos_227, "IBM-1165", ei_ebcdic1165 ) - S(zos_228, "IBM1165", ei_ebcdic1165 ) - S(zos_229, "IBM-1166", ei_ebcdic1166 ) - S(zos_230, "IBM1166", ei_ebcdic1166 ) - S(zos_231, "CP1166", ei_ebcdic1166 ) - S(zos_232, "IBM-4971", ei_ebcdic4971 ) - S(zos_233, "IBM4971", ei_ebcdic4971 ) - S(zos_234, "CP4971", ei_ebcdic4971 ) - S(zos_235, "IBM-12712", ei_ebcdic12712 ) - S(zos_236, "IBM12712", ei_ebcdic12712 ) - S(zos_237, "CP12712", ei_ebcdic12712 ) - S(zos_238, "IBM-16804", ei_ebcdic16804 ) - S(zos_239, "IBM16804", ei_ebcdic16804 ) - S(zos_240, "CP16804", ei_ebcdic16804 ) diff --git a/jni/parted/libiconv/lib/armscii_8.h b/jni/parted/libiconv/lib/armscii_8.h deleted file mode 100755 index 6acee33..0000000 --- a/jni/parted/libiconv/lib/armscii_8.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ARMSCII-8 - */ - -static const unsigned short armscii_8_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0xfffd, 0x0587, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab, - 0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x058a, 0x2026, 0x055c, - /* 0xb0 */ - 0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563, - 0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567, - /* 0xc0 */ - 0x0538, 0x0568, 0x0539, 0x0569, 0x053a, 0x056a, 0x053b, 0x056b, - 0x053c, 0x056c, 0x053d, 0x056d, 0x053e, 0x056e, 0x053f, 0x056f, - /* 0xd0 */ - 0x0540, 0x0570, 0x0541, 0x0571, 0x0542, 0x0572, 0x0543, 0x0573, - 0x0544, 0x0574, 0x0545, 0x0575, 0x0546, 0x0576, 0x0547, 0x0577, - /* 0xe0 */ - 0x0548, 0x0578, 0x0549, 0x0579, 0x054a, 0x057a, 0x054b, 0x057b, - 0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f, - /* 0xf0 */ - 0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583, - 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055a, 0xfffd, -}; - -static int -armscii_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = armscii_8_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char armscii_8_page00[8] = { - 0xa5, 0xa4, 0x2a, 0x2b, 0xab, 0xac, 0xa9, 0x2f, /* 0x28-0x2f */ -}; -static const unsigned char armscii_8_page00_1[32] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char armscii_8_page05[96] = { - 0x00, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, /* 0x30-0x37 */ - 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, /* 0x38-0x3f */ - 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, /* 0x40-0x47 */ - 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, /* 0x48-0x4f */ - 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0xfe, 0xb0, 0xaf, 0xaa, 0xb1, 0x00, /* 0x58-0x5f */ - 0x00, 0xb3, 0xb5, 0xb7, 0xb9, 0xbb, 0xbd, 0xbf, /* 0x60-0x67 */ - 0xc1, 0xc3, 0xc5, 0xc7, 0xc9, 0xcb, 0xcd, 0xcf, /* 0x68-0x6f */ - 0xd1, 0xd3, 0xd5, 0xd7, 0xd9, 0xdb, 0xdd, 0xdf, /* 0x70-0x77 */ - 0xe1, 0xe3, 0xe5, 0xe7, 0xe9, 0xeb, 0xed, 0xef, /* 0x78-0x7f */ - 0xf1, 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfd, 0xa2, /* 0x80-0x87 */ - 0x00, 0xa3, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ -}; -static const unsigned char armscii_8_page20[24] = { - 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x20-0x27 */ -}; - -static int -armscii_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0028) { - *r = wc; - return 1; - } - else if (wc >= 0x0028 && wc < 0x0030) - c = armscii_8_page00[wc-0x0028]; - else if (wc >= 0x0030 && wc < 0x00a0) - c = wc; - else if (wc >= 0x00a0 && wc < 0x00c0) - c = armscii_8_page00_1[wc-0x00a0]; - else if (wc >= 0x0530 && wc < 0x0590) - c = armscii_8_page05[wc-0x0530]; - else if (wc >= 0x2010 && wc < 0x2028) - c = armscii_8_page20[wc-0x2010]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ascii.h b/jni/parted/libiconv/lib/ascii.h deleted file mode 100755 index ec3da6c..0000000 --- a/jni/parted/libiconv/lib/ascii.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ASCII - */ - -static int -ascii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - return RET_ILSEQ; -} - -static int -ascii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x0080) { - *r = wc; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/atarist.h b/jni/parted/libiconv/lib/atarist.h deleted file mode 100755 index f728664..0000000 --- a/jni/parted/libiconv/lib/atarist.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (C) 1999-2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * Atari ST - */ - -static const unsigned short atarist_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x00df, 0x0192, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x00e3, 0x00f5, 0x00d8, 0x00f8, 0x0153, 0x0152, 0x00c0, 0x00c3, - 0x00d5, 0x00a8, 0x00b4, 0x2020, 0x00b6, 0x00a9, 0x00ae, 0x2122, - /* 0xc0 */ - 0x0133, 0x0132, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, - 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05db, 0x05dc, 0x05de, 0x05e0, - /* 0xd0 */ - 0x05e1, 0x05e2, 0x05e4, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, - 0x05df, 0x05da, 0x05dd, 0x05e3, 0x05e5, 0x00a7, 0x2227, 0x221e, - /* 0xe0 */ - 0x03b1, 0x03b2, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x222e, 0x03c6, 0x2208, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x00b3, 0x00af, -}; - -static int -atarist_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) atarist_2uni[c-0x80]; - return 1; -} - -static const unsigned char atarist_page00[96] = { - 0x00, 0xad, 0x9b, 0x9c, 0x00, 0x9d, 0x00, 0xdd, /* 0xa0-0xa7 */ - 0xb9, 0xbd, 0xa6, 0xae, 0xaa, 0x00, 0xbe, 0xff, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0xfe, 0xba, 0xe6, 0xbc, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ - 0xb6, 0x00, 0x00, 0xb7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ - 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0xa5, 0x00, 0x00, 0x00, 0xb8, 0x99, 0x00, /* 0xd0-0xd7 */ - 0xb2, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0x9e, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0xb0, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ - 0x00, 0xa4, 0x95, 0xa2, 0x93, 0xb1, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0xb3, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ -}; -static const unsigned char atarist_page01[104] = { - 0x00, 0x00, 0xc1, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xb5, 0xb4, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char atarist_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0xe1, 0x00, 0xeb, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char atarist_page05[32] = { - 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, /* 0xd0-0xd7 */ - 0xca, 0xcb, 0xd9, 0xcc, 0xcd, 0xda, 0xce, 0xd8, /* 0xd8-0xdf */ - 0xcf, 0xd0, 0xd1, 0xdb, 0xd2, 0xdc, 0xd3, 0xd4, /* 0xe0-0xe7 */ - 0xd5, 0xd6, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char atarist_page22[96] = { - 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xdf, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char atarist_page23[24] = { - 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; - -static int -atarist_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = atarist_page00[wc-0x00a0]; - else if (wc >= 0x0130 && wc < 0x0198) - c = atarist_page01[wc-0x0130]; - else if (wc >= 0x0390 && wc < 0x03c8) - c = atarist_page03[wc-0x0390]; - else if (wc >= 0x05d0 && wc < 0x05f0) - c = atarist_page05[wc-0x05d0]; - else if (wc == 0x2020) - c = 0xbb; - else if (wc == 0x207f) - c = 0xfc; - else if (wc == 0x2122) - c = 0xbf; - else if (wc >= 0x2208 && wc < 0x2268) - c = atarist_page22[wc-0x2208]; - else if (wc >= 0x2310 && wc < 0x2328) - c = atarist_page23[wc-0x2310]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/big5.h b/jni/parted/libiconv/lib/big5.h deleted file mode 100755 index 2b60aca..0000000 --- a/jni/parted/libiconv/lib/big5.h +++ /dev/null @@ -1,4159 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG5 - */ - -static const unsigned short big5_2uni_pagea1[6121] = { - /* 0xa1 */ - 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2022, 0xff1b, 0xff1a, - 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xff64, 0xfe52, - 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, - 0x2014, 0xfe33, 0xfffd, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, - 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, - 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, - 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, - 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, - 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, - 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, - 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, - 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, - 0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, - 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, - 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, - 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, - 0xfe66, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, - 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, - 0x2641, 0x2609, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, - 0x2199, 0x2198, 0x2225, 0x2223, 0xfffd, - /* 0xa2 */ - 0xfffd, 0xff0f, 0xff3c, 0xff04, 0x00a5, 0x3012, 0x00a2, 0x00a3, - 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, - 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, - 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, - 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, - 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, - 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, - 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e, - 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3, - 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, - 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, - 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, - 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, - 0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd, 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, 0xff41, - 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, - 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, - 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, - /* 0xa3 */ - 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394, - 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, - 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, - 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4, - 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, - 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, - 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108, - 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110, - 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, - 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, - 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, - 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xa4 */ - 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c, - 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b, - 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a, - 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e, - 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f, - 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8, - 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2, - 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11, - 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88, - 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3, - 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141, - 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206, 0x5207, - 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348, 0x5347, - 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec, 0x5929, - 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a, 0x5c6f, - 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208, 0x6236, - 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9, 0x65e5, - 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb, 0x6bd4, - 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b, 0x7247, - 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, - /* 0xa5 */ - 0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, - 0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, - 0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, - 0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317, - 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e, - 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8, - 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1, - 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x592e, - 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, 0x5de7, - 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, 0x5f17, - 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, 0x65e6, - 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, 0x6c11, - 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, 0x7389, - 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, 0x7531, - 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, 0x77db, - 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e, 0x4e1f, - 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5, 0x4eff, - 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11, 0x4f0f, - 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01, 0x4f0b, - 0x5149, 0x5147, 0x5146, 0x5148, 0x5168, - /* 0xa6 */ - 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216, - 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f, - 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d, - 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd, - 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919, - 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979, - 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89, - 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x5f0f, - 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210, 0x6263, - 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed, 0x66f2, - 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21, 0x6b64, - 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60, 0x6c50, - 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f, 0x725d, - 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd, 0x8001, - 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b, 0x808c, - 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f, 0x826e, - 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f, 0x9621, - 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e, 0x4f34, - 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a, 0x4f38, - 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63, - /* 0xa7 */ - 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48, - 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225, - 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac, - 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426, - 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b, - 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436, - 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea, - 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x5747, - 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, 0x599d, - 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, 0x59a4, - 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, 0x5b8c, - 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e, 0x5c90, - 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87, 0x5e8a, - 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79, 0x5fd8, - 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea, 0x6212, - 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289, 0x626d, - 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f, 0x6298, - 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b, 0x6538, - 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751, 0x675c, - 0x6756, 0x675e, 0x6749, 0x6746, 0x6760, - /* 0xa8 */ - 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81, - 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70, - 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e, - 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076, - 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2, - 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3, - 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093, - 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x828b, - 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55, 0x8c9d, - 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0, 0x8fc2, - 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa, 0x90a6, - 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631, 0x962a, - 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e, 0x4eab, - 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c, 0x4f9b, - 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69, 0x4f7b, - 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152, 0x5155, - 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b, 0x5238, - 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be, 0x52bb, - 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378, 0x5379, - 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475, - /* 0xa9 */ - 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492, - 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462, - 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a, - 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947, - 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae, - 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af, - 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a, - 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x5c46, - 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3, 0x5e18, - 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a, 0x5e97, - 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29, 0x5f80, - 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5, 0x5fff, - 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015, 0x6021, - 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f, 0x623e, - 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2, 0x62b9, - 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8, 0x62a8, - 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5, 0x62da, - 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce, 0x653e, - 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606, 0x6602, - 0x660e, 0x6600, 0x660f, 0x6615, 0x660a, - /* 0xaa */ - 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c, - 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f, - 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a, - 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3, - 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe, - 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9, - 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1, - 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x7095, - 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238, 0x7248, - 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0, 0x73a9, - 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599, 0x759a, - 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e, 0x7940, - 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe, 0x7f54, - 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1, 0x80a1, - 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe, 0x820d, - 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9, 0x82b1, - 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be, 0x82b7, - 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1, - 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577, 0x9580, - 0x961c, 0x9640, 0x963f, 0x963b, 0x9644, - /* 0xab */ - 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae, - 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd, - 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0, - 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192, - 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b, - 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b, - 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8, - 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x54c4, - 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7, 0x54bf, - 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce, 0x57ae, - 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc, 0x59d8, - 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da, 0x59e6, - 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2, 0x5ba5, - 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2, 0x5df7, - 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa, 0x5f08, - 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c, - 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028, 0x604d, - 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b, 0x606a, - 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301, - 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7, - /* 0xac */ - 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545, - 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f, - 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1, - 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef, - 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de, - 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83, - 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32, - 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x6d3b, - 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27, 0x6d38, - 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba, 0x70b3, - 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230, 0x7272, - 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca, 0x73bb, - 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f, 0x754c, - 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3, 0x7678, - 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5, 0x7701, - 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707, 0x77dc, - 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948, 0x7947, - 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81, 0x7aff, - 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07, 0x7d04, - 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004, - /* 0xad */ - 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3, - 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd, - 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6, - 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301, - 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306, - 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4, - 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4, - 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x8fed, - 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3, 0x914b, - 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d, 0x9762, - 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db, 0x98df, - 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023, 0x4fef, - 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c, 0x501f, - 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028, 0x4ff1, - 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d, 0x502a, - 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2, 0x51cd, - 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b, 0x525d, - 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510, 0x5501, - 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514, 0x54e9, - 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea, - /* 0xae */ - 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2, - 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a, - 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20, - 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0, - 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04, - 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8, - 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab, - 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x6063, - 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084, 0x609f, - 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247, 0x62f3, - 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342, 0x6346, - 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b, 0x6328, - 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5, 0x6642, - 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641, 0x66f8, - 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846, 0x6853, - 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851, - 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a, 0x6845, - 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27, - 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87, - 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93, - /* 0xaf */ - 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a, - 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9, - 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8, - 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de, - 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7, - 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b, - 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728, - 0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x7825, - 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960, 0x795f, - 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3, 0x79e7, - 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9, 0x7b06, - 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20, 0x7d22, - 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b, - 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018, 0x8015, - 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105, - 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a, - 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b, - 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a, 0x8338, - 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339, 0x8336, - 0x8317, 0x8340, 0x8331, 0x8328, 0x8343, - /* 0xb0 */ - 0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3, - 0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18, - 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16, - 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77, - 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7, - 0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095, - 0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd, - 0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x965b, - 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac, 0x9aa8, - 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d, 0x505c, - 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076, 0x504e, - 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d, - 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8, - 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3, - 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543, - 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538, - 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708, - 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4, - 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36, - 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40, - /* 0xb1 */ - 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5, - 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60, - 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22, - 0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, - 0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, - 0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, - 0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, - 0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5, - 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df, - 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7, - 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa, - 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384, - 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b, - 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559, 0x6557, - 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac, - 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668, - 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2, - 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0, - 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8, - 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba, - /* 0xb2 */ - 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2, - 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, - 0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5, - 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea, - 0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf, - 0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d, - 0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405, - 0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7, - 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4, - 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db, - 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843, - 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20, - 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92, - 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c, - 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31, - 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a, - 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124, - 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398, - 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393, - 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, - /* 0xb3 */ - 0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, - 0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, - 0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f, - 0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, - 0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, - 0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, - 0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015, - 0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8, - 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7, - 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678, 0x9670, - 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0, - 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5, - 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096, - 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269, - 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7, - 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594, - 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2, - 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599, - 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821, - 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960, - /* 0xb4 */ - 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71, - 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, - 0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43, - 0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, - 0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, - 0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, - 0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, - 0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2, - 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4, - 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562, - 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676, - 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f, - 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df, - 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb, - 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb, - 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e, - 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67, - 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24, - 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a, - 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, - /* 0xb5 */ - 0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, - 0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c, - 0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a, - 0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f, - 0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, - 0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, - 0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, - 0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97, - 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52, - 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e, - 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66, - 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052, - 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146, - 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403, - 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1, - 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2, - 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df, - 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0, - 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, 0x8a3b, - 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, - /* 0xb6 */ - 0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, - 0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, - 0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, - 0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, - 0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, - 0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, - 0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, - 0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593, - 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686, - 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7, - 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea, - 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd, - 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be, - 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d, - 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8, - 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4, - 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712, - 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b, - 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1, - 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, - /* 0xb7 */ - 0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, - 0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, - 0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, - 0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, - 0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, - 0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, - 0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, - 0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a, - 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968, - 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b, - 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf, - 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5, - 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4, - 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164, - 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, 0x715e, - 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, 0x733f, - 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, 0x743f, - 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, 0x7601, - 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, 0x76df, - 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, - /* 0xb8 */ - 0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, - 0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, - 0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, - 0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, - 0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, - 0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, - 0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084, - 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179, - 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431, - 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435, - 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f, - 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702, - 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc, - 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3, - 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c, - 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c, - 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca, - 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1, - 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4, 0x8de6, - 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, - /* 0xb9 */ - 0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, - 0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, - 0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, - 0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, - 0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, - 0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, - 0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, - 0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd, - 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e, - 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da, - 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, 0x51f3, - 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, 0x5617, - 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, 0x5616, - 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, 0x587e, - 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, 0x5925, - 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, 0x5ad7, - 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, 0x5be5, - 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, 0x5d84, - 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, 0x5ed6, - 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, - /* 0xba */ - 0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, - 0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, - 0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1, - 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995, - 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab, - 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3, - 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4, - 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff, - 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b, - 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7, - 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292, - 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d, - 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1, - 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7, - 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e, 0x7a31, - 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b, 0x7b75, - 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84, 0x7cb9, - 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe, 0x7da0, - 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf, 0x7db5, - 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, - /* 0xbb */ - 0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, - 0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, - 0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, - 0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, - 0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, - 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, - 0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6, - 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x8aaa, - 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, 0x8c8d, - 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, 0x8dfc, - 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, 0x905c, - 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, 0x9118, - 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280, 0x9285, - 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c, 0x9291, - 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699, 0x969c, - 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6, 0x9817, - 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909, 0x99c1, - 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6, 0x9cf3, - 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5, 0x50f9, - 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc, - /* 0xbc */ - 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e, - 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e, - 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e, - 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb, - 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb, - 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2, - 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7, - 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x617c, - 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, 0x61ac, - 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, 0x6479, - 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493, 0x6495, - 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac, 0x6499, - 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab, 0x66b4, - 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19, 0x69fd, - 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed, 0x6a11, - 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c, 0x6f84, - 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78, 0x6f6e, - 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5, 0x6f6f, - 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256, 0x729b, - 0x734e, 0x7357, 0x7469, 0x748b, 0x7483, - /* 0xbd */ - 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626, - 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c, - 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5, - 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b, - 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7, - 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb, - 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9, - 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x7fe9, - 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198, 0x8517, - 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511, 0x8523, - 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782, 0x8774, - 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757, 0x874c, - 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913, 0x8915, - 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb, 0x8af8, - 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6, - 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6, - 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1, - 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22, 0x8e0f, - 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f, - 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e, - /* 0xbe */ - 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d, - 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb, - 0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2, - 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707, - 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c, - 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df, - 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef, - 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x9d03, - 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118, 0x5114, - 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293, 0x52f3, - 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a, 0x5668, - 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1, 0x58be, - 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0, 0x5c0e, - 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6, 0x61be, - 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb, 0x64bc, - 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2, 0x64d4, - 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7, 0x66b8, - 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39, 0x6a44, - 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48, 0x6b59, - 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1, - /* 0xbf */ - 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6, - 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8, - 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368, - 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d, - 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f, - 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e, - 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4, - 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x7e11, - 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, 0x7f79, - 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, 0x81a8, - 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548, 0x8568, - 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783, 0x879f, - 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925, 0x892b, - 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1, 0x8b00, - 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7, 0x8aed, - 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4, 0x8e44, - 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f, 0x8f38, - 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072, 0x907c, - 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333, 0x932f, - 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a, - /* 0xc0 */ - 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7, - 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713, - 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b, - 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b, - 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb, - 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12, - 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121, - 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x568f, - 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24, 0x5b7a, - 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b, 0x5f4c, - 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232, 0x6234, - 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec, 0x64f1, - 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80, 0x6a94, - 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97, 0x6a90, - 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf, - 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec, 0x6fe1, - 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee, 0x71e6, - 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246, 0x7370, - 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642, 0x764c, - 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac, - /* 0xc1 */ - 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901, - 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7, - 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9, - 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b, - 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35, - 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070, - 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf, - 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x8584, - 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587, 0x85a8, - 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6, 0x87ab, - 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944, 0x8938, - 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a, 0x8b20, - 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd, - 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48, 0x8e4a, - 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d, 0x9084, - 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c, 0x934d, - 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318, 0x937e, - 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb, 0x95cc, - 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0, - 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01, - /* 0xc2 */ - 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b, - 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2, - 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233, - 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7, - 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2, - 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe, - 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8, - 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x7652, - 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61, 0x7a62, - 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e, 0x7c23, - 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52, - 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf, - 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba, - 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986, 0x89b2, - 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05, 0x8e59, - 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49, 0x8f4d, - 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394, 0x938a, - 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398, 0x939a, - 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc, 0x96d9, - 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6, - /* 0xc3 */ - 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba, - 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03, - 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8, - 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133, - 0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2, - 0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5, - 0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d, - 0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x737a, - 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661, 0x77c7, - 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d, - 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a, 0x7f85, - 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd, 0x85ea, - 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d, 0x87f9, - 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c, 0x8b58, - 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a, - 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54, - 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1, - 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd, - 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a, - 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e, - /* 0xc4 */ - 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d, - 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a, - 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7, - 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6, - 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727, - 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662, - 0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c, - 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x7e82, - 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611, 0x85fa, - 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964, 0x89ba, - 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f, - 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb, 0x9418, - 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951, 0x99a8, - 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79, 0x9eb5, - 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138, 0x56c1, - 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe, 0x651d, - 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2, 0x704c, - 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50, 0x7e8f, - 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821, - 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74, - /* 0xc5 */ - 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf, - 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b, - 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957, - 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d, - 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19, - 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9, - 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61, - 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x79b3, - 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f, 0x89fc, - 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148, 0x9444, - 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955, - 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b, - 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6, - 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca, - 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638, - 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460, 0x9464, - 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4, - 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1, - 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88, - 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92, - /* 0xc6 */ - 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744, - 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa, - 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063, - 0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470, - 0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a, - 0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, - 0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f, - 0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x30fe, - 0x309d, 0x309e, 0x3005, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, - 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, - 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, - 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, - 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, - 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, - 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, - 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, - 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, - 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, - 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x30a1, 0x30a2, - 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, - /* 0xc7 */ - 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, - 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, - 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, - 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, - 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, - 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, - 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, - 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, - 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, - 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x0414, - 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, - 0x041c, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, - 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, - 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 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, 0x2460, - 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, - 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, - 0x247b, 0x247c, 0x247d, -}; -static const unsigned short big5_2uni_pagec9[7652] = { - /* 0xc9 */ - 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47, - 0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, - 0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, - 0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, - 0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, - 0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723, - 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73, - 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36, - 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a, - 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00, - 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04, - 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6, 0x5322, - 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, 0x572a, - 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, 0x5977, - 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, 0x5c7e, - 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, 0x5fd4, - 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, 0x6259, - 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739, 0x6738, - 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46, 0x6c52, - 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, - /* 0xca */ - 0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, - 0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, - 0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, - 0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64, - 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33, - 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad, - 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437, - 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x543d, - 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, 0x56e5, - 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, 0x5940, - 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, 0x598f, - 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, 0x5c8f, - 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, 0x5c95, - 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, 0x5e8d, - 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, 0x5fed, - 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa, 0x5fef, - 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c, 0x628e, - 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270, 0x6281, - 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0, 0x65f4, - 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, - /* 0xcb */ - 0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, - 0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, - 0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, - 0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, - 0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, - 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, - 0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, - 0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x828a, - 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, 0x90a5, - 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, 0x4e33, - 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, 0x4f74, - 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, 0x4f79, - 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, 0x4f82, - 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, 0x5232, - 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, 0x5392, - 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, 0x546b, - 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, 0x546f, - 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, 0x56f9, - 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, 0x5780, - 0x5775, 0x577b, 0x5773, 0x5774, 0x5762, - /* 0xcc */ - 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce, - 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1, - 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93, - 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf, - 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7, - 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19, - 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d, - 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034, - 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d, - 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214, - 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca, - 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8, 0x653d, - 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608, 0x65fb, - 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610, 0x66f6, - 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b, 0x6798, - 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f, 0x6791, - 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794, 0x6b25, - 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb, 0x6cee, - 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0, 0x6cc2, - 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, - /* 0xcd */ - 0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, - 0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, - 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, - 0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9, - 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1, - 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8, - 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1, - 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x77f7, - 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, 0x7cfd, - 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, 0x8220, - 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, 0x82a7, - 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, 0x82a9, - 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, 0x866d, - 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, 0x8fd5, - 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, 0x963d, - 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2, 0x4fc9, - 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3, 0x4fdb, - 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244, 0x5249, - 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399, 0x5398, - 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf, - /* 0xce */ - 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6, - 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0, - 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b, - 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4, - 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd, - 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db, - 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8, - 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x5cde, - 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4, 0x5ccf, - 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21, 0x5e22, - 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b, 0x5ea3, - 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039, 0x6054, - 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b, 0x604c, - 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066, 0x606e, - 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e, 0x6303, - 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300, 0x6313, - 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543, 0x65aa, - 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626, 0x6622, - 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e, 0x670f, - 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba, - /* 0xcf */ - 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb, - 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee, - 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc, - 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9, - 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6, - 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d, - 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04, - 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x6d01, - 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, 0x6d2c, - 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, 0x70b1, - 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, 0x724a, - 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8, 0x72eb, - 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2, 0x73c8, - 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf, 0x73c7, - 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee, 0x752e, - 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708, 0x7703, - 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7, 0x77e8, - 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e, 0x7809, - 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944, 0x79d5, - 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80, - /* 0xd0 */ - 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f, - 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d, - 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7, - 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9, - 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd, - 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8, - 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1, - 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x82e4, - 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c, 0x8673, - 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04, 0x8a07, - 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd, 0x90bf, - 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4, 0x91d3, - 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e, 0x5005, - 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4, 0x5033, - 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020, 0x5027, - 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193, 0x51ca, - 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252, 0x525e, - 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526, 0x54e2, - 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff, 0x5504, - 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1, - /* 0xd1 */ - 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b, - 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6, - 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9, - 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15, - 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad, - 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1, - 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa, - 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x6041, - 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083, 0x6095, - 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246, 0x62f2, - 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343, 0x63e4, - 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334, 0x6358, - 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351, 0x6338, - 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3, 0x65c4, - 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713, 0x681f, - 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f, 0x6816, - 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e, 0x6844, - 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e, 0x684d, - 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31, 0x6b34, - 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4, - /* 0xd2 */ - 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64, - 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f, - 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60, - 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68, - 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d, - 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39, - 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5, - 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x7277, - 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3, 0x72fb, - 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7, 0x73e3, - 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da, 0x73d7, - 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521, 0x755b, - 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf, 0x75b6, - 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713, 0x7712, - 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727, 0x7823, - 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b, 0x7821, - 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f, 0x795c, - 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee, 0x79ed, - 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85, 0x7a8b, - 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10, - /* 0xd3 */ - 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09, - 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85, - 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f, - 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d, - 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e, - 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100, - 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351, - 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x8342, - 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316, 0x8324, - 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c, 0x8353, - 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652, 0x86a2, - 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697, 0x8686, - 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7, 0x8695, - 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844, 0x886d, - 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f, 0x8883, - 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4, - 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3, - 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6, - 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8, - 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150, - /* 0xd4 */ - 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc, - 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e, - 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041, - 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b, - 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051, - 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d, - 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a, - 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x550c, - 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b, 0x5540, - 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6, 0x57dc, - 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b, 0x57f3, - 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec, 0x57e1, - 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1, 0x57e9, - 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55, 0x5a67, - 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65, 0x5a6c, - 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44, 0x5a5b, - 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70, 0x5a69, - 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1, - 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c, - 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f, - /* 0xd5 */ - 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1, - 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96, - 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3, - 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db, - 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365, - 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397, - 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375, - 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x6378, - 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd, 0x6665, - 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879, 0x6887, - 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956, 0x686f, - 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877, - 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e, - 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b, - 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38, - 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab, - 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6, - 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5, - 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0, - 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9, - /* 0xd6 */ - 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb, - 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104, - 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8, - 0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f, - 0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff, - 0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401, - 0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b, - 0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x75cb, - 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739, 0x772f, - 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725, 0x773b, - 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c, 0x7826, - 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963, 0x796b, - 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f, 0x7a94, - 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22, 0x7b24, - 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f, - 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3, - 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29, - 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63, - 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0, - 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f, - /* 0xd7 */ - 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119, - 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127, - 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232, - 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4, - 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9, - 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e, - 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387, - 0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x86c2, - 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3, 0x86b8, - 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be, 0x8852, - 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891, 0x88a1, - 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4, 0x88ac, - 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5, 0x8a30, - 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d, - 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf, - 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1, - 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef, 0x90ea, - 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec, 0x90e9, - 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4, 0x91f1, - 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea, - /* 0xd8 */ - 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c, - 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5, - 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083, - 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087, - 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8, - 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f, - 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6, - 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x5819, - 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825, 0x581c, - 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838, 0x582d, - 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a, 0x5aa2, - 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae, - 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b, - 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd, - 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37, - 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e, - 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42, - 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45, - 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9, - 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114, - /* 0xd9 */ - 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc, - 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104, - 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8, - 0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5, - 0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4, - 0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0, - 0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568, - 0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x667c, - 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672, 0x6701, - 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea, 0x68f1, - 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913, 0x6910, - 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4, 0x6911, - 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc, 0x68e8, - 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de, 0x68e6, - 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925, 0x68c7, - 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95, - 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47, - 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b, - 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40, - 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e, - /* 0xda */ - 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b, - 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64, - 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a, - 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125, - 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a, - 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330, - 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323, - 0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x741a, - 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429, 0x7420, - 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1, - 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da, - 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e, 0x774b, - 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c, 0x786d, - 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e, 0x7862, - 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c, - 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44, 0x7b48, - 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8, - 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a, - 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51, - 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, - /* 0xdb */ - 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050, - 0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d, - 0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204, - 0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423, - 0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410, - 0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5, - 0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9, - 0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x83d5, - 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec, 0x83ee, - 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8, - 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb, - 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856, - 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6, - 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998, - 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59, - 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51, - 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe, - 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3, - 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8, - 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa, - /* 0xdc */ - 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, - 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f, - 0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb, - 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, - 0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, - 0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, - 0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, - 0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689, - 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c, - 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83, - 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca, - 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb, - 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c, - 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0, - 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5, - 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714, - 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855, - 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871, - 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5, - 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, - /* 0xdd */ - 0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, - 0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, - 0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, - 0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, - 0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, - 0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f, - 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, - 0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433, - 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423, - 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a, - 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e, - 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695, - 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966, - 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a, - 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935, - 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969, - 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c, - 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952, - 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, 0x6b48, - 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc, - /* 0xde */ - 0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, - 0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, - 0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, - 0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, - 0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, - 0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, - 0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142, - 0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x7144, - 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290, 0x728e, - 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349, 0x7444, - 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f, 0x7450, - 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe, - 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603, - 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6, - 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f, - 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759, - 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895, - 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896, - 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19, - 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13, - /* 0xdf */ - 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64, - 0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70, - 0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88, - 0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, - 0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, - 0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, - 0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, - 0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144, - 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1, - 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451, - 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459, - 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434, - 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b, - 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c, - 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433, - 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450, - 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d, - 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6, - 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0, - 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, - /* 0xe0 */ - 0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, - 0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, - 0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, - 0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, - 0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, - 0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, - 0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, - 0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044, - 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114, - 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a, - 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246, - 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261, - 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253, - 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692, - 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5, - 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac, - 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab, - 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4, - 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, 0x50d3, - 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, - /* 0xe1 */ - 0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, - 0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, - 0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, - 0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, - 0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, - 0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, - 0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, - 0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3, - 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77, - 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f, - 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc, - 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6, - 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153, - 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165, - 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b, - 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d, - 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b, - 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459, - 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705, - 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, - /* 0xe2 */ - 0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, - 0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, - 0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, - 0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, - 0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, - 0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, - 0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, - 0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36, - 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35, - 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39, - 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21, - 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b, - 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293, - 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475, - 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, 0x7590, - 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, 0x76b8, - 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, 0x777e, - 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, 0x78ab, - 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, 0x798a, - 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, - /* 0xe3 */ - 0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, - 0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, - 0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, - 0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, - 0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, - 0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, - 0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9, - 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024, - 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c, - 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce, - 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd, - 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2, - 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6, - 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db, - 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740, - 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741, - 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712, - 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724, - 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2, 0x88fa, - 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, - /* 0xe4 */ - 0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, - 0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, - 0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, - 0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, - 0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, - 0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, - 0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, - 0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6, - 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e, - 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286, - 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, 0x928b, - 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, 0x977e, - 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, 0x97ce, - 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, 0x999d, - 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, 0x99c7, - 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, 0x9b5f, - 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, 0x50f8, - 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, 0x510a, - 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, 0x5635, - 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, - /* 0xe5 */ - 0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, - 0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, - 0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7, - 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05, - 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93, - 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d, - 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2, - 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b, - 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d, - 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485, - 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f, - 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2, - 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af, - 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4, - 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe, 0x6a27, - 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08, 0x69e6, - 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18, 0x6a25, - 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51, 0x6ba5, - 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02, 0x6f41, - 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, - /* 0xe6 */ - 0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, - 0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, - 0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, - 0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, - 0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, - 0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, - 0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e, - 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x7362, - 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, 0x7488, - 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, 0x7619, - 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, 0x769d, - 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, 0x78bb, - 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, 0x78c4, - 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, 0x6b76, - 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, 0x7bac, - 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, 0x7ccc, - 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, 0x7e03, - 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, 0x7f76, - 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec, 0x7fe6, - 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f, - /* 0xe7 */ - 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253, - 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500, - 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c, - 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2, - 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9, - 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e, - 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9, - 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756, - 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b, - 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750, - 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e, 0x875c, - 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769, 0x885a, - 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919, 0x8906, - 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3, 0x89ed, - 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1, 0x8ad4, - 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8, 0x8ac3, - 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5, 0x8cdf, - 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c, 0x8da1, - 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15, 0x8e1b, - 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, - /* 0xe8 */ - 0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, - 0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, - 0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a, - 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182, - 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6, - 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc, - 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd, - 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x92b5, - 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae, 0x95b0, - 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a, 0x978a, - 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826, 0x9829, - 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa, 0x9911, - 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf, 0x99d3, - 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7, 0x99cc, - 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46, 0x9b43, - 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70, 0x9b68, - 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7, 0x9d07, - 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83, 0x9ed3, - 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111, 0x51de, - 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e, - /* 0xe9 */ - 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c, - 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc, - 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10, - 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1, - 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2, - 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9, - 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8, - 0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x61bf, - 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9, 0x64bd, - 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f, 0x657c, - 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf, 0x66bd, - 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49, 0x6a67, - 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b, 0x6a51, - 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64, 0x6a50, - 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e, 0x6a56, - 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56, 0x6ba7, - 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06, 0x6fad, - 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4, - 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba, - 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8, - /* 0xea */ - 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5, - 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4, - 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da, - 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365, - 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495, - 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633, - 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d, - 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x7797, - 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db, 0x78e1, - 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48, 0x7a47, - 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7, - 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea, - 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7, - 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20, - 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f, - 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c, - 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6, - 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2, - 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556, 0x8545, - 0x856b, 0x854d, 0x8553, 0x8561, 0x8558, - /* 0xeb */ - 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547, - 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555, - 0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c, - 0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792, - 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, - 0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789, - 0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922, - 0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2, - 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0, - 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91, - 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c, - 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45, - 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36, - 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079, - 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190, - 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306, - 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301, - 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9325, - 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329, - 0x9339, 0x9335, 0x932a, 0x9314, 0x930c, - /* 0xec */ - 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd, - 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9, - 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0, - 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929, - 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea, - 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa, - 0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, - 0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d, - 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d, - 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87, - 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126, - 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c, - 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f, 0x5681, - 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23, - 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2, - 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5, 0x61bc, - 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef, 0x64e9, - 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6, 0x65da, - 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b, - 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e, - /* 0xed */ - 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a, - 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9, - 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde, - 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2, - 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2, - 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510, - 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647, - 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x77b4, - 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb, 0x78fc, - 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8, 0x7a5c, - 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1, - 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4, - 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd, - 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c, - 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47, - 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45, - 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4, - 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a, - 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b, - 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e, - /* 0xee */ - 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e, - 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582, - 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668, - 0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, - 0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, - 0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, - 0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937, - 0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18, - 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15, - 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f, - 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f, - 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40, - 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f, - 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356, - 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351, - 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355, - 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363, - 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3, - 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718, - 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c, - /* 0xef */ - 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a, - 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933, - 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1, - 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb, - 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01, - 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1, - 0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, - 0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45, - 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d, - 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff, - 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e, - 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c, - 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed, - 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff, - 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db, - 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6, - 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9, - 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014, 0x700e, - 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201, - 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376, - /* 0xf0 */ - 0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2, - 0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657, - 0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c, - 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac, - 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d, - 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56, - 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53, - 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x81d0, - 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2, 0x85b3, - 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce, 0x85c8, - 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be, - 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5, - 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8, - 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8, 0x87dd, - 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951, 0x8949, - 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47, 0x8b2f, - 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36, 0x8b2e, - 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99, 0x8c98, - 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62, 0x8e60, - 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67, - /* 0xf1 */ - 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47, - 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5, - 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b, - 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395, - 0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4, - 0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3, - 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722, - 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x97a2, - 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850, 0x9851, - 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b, 0x9a09, - 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06, 0x9ac0, - 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a, 0x9b4c, - 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5, 0x9bb8, - 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53, 0x9d4f, - 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52, - 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01, - 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c, - 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad, - 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912, - 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70, - /* 0xf2 */ - 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e, - 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1, - 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd, - 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016, - 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c, - 0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6, - 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516, - 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x7921, - 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33, 0x7c3c, - 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75, 0x7e78, - 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68, 0x7f4b, - 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078, 0x81d7, - 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed, 0x85d9, - 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8, 0x85d8, - 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef, 0x85de, - 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809, 0x880c, - 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802, 0x8962, - 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d, 0x8959, - 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40, - 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55, - /* 0xf3 */ - 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a, - 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d, - 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51, - 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad, - 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec, - 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3, - 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da, - 0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x97b3, - 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859, 0x985d, - 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947, 0x9943, - 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b, - 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2, - 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0, - 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec, - 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81, - 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b, - 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85, - 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68, - 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d, - 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2, - /* 0xf4 */ - 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef, - 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df, - 0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, - 0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034, - 0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b, - 0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, - 0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, - 0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2, - 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47, - 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff, - 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622, 0x85ff, - 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605, - 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813, 0x8816, - 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68, - 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84, - 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143, - 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb, - 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419, - 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412, - 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff, - /* 0xf5 */ - 0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, - 0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, - 0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, - 0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, - 0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, - 0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, - 0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, - 0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0, - 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8, - 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99, - 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e, - 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139, - 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb, - 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8, - 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046, - 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d, - 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88, - 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, 0x8618, - 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, 0x862e, - 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, - /* 0xf6 */ - 0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, - 0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, - 0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, - 0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, - 0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437, - 0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, - 0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, - 0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f, - 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b, - 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21, - 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe, - 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac, - 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a, - 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31, - 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb, - 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520, - 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056, - 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5, - 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71, - 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, - /* 0xf7 */ - 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634, - 0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826, - 0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, - 0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, - 0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, - 0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, - 0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, - 0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49, - 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55, - 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c, - 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde, - 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9, - 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35, - 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299, - 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201, - 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12, - 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383, - 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640, - 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e, - 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, - /* 0xf8 */ - 0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, - 0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, - 0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, - 0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, - 0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, - 0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, - 0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, - 0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71, - 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d, - 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223, - 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97, - 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94, - 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2, - 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7, - 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62, - 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05, - 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e, - 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, 0x6b18, - 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, 0x77d9, - 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, - /* 0xf9 */ - 0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, - 0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, - 0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, - 0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, - 0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, - 0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, - 0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74, - 0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4, - 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e, - 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, 0x9961, - 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, 0x9f48, - 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, 0x9481, - 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f, 0x9483, - 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a, - 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, -}; - -static int -big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0xa1 && c1 <= 0xc7) || (c1 >= 0xc9 && c1 <= 0xf9)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - unsigned short wc = 0xfffd; - if (i < 6280) { - if (i < 6121) - wc = big5_2uni_pagea1[i]; - } else { - if (i < 13932) - wc = big5_2uni_pagec9[i-6280]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short big5_2charset[13703] = { - 0xa246, 0xa247, 0xa244, 0xa1b1, 0xa258, 0xa1d3, 0xa150, 0xa1d1, - 0xa1d2, 0xa3be, 0xa3bc, 0xa3bd, 0xa3bf, 0xa3bb, 0xa344, 0xa345, - 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, 0xa34d, - 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0xa355, - 0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa35c, 0xa35d, - 0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365, - 0xa366, 0xa367, 0xa368, 0xa369, 0xa36a, 0xa36b, 0xa36c, 0xa36d, - 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, 0xc7b3, 0xc7b1, - 0xc7b2, 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, - 0xc7bb, 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, - 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, - 0xc7cb, 0xc7cc, 0xc7cd, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, - 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, - 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, - 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7ce, 0xa156, 0xa158, - 0xa1a5, 0xa1a6, 0xa1a7, 0xa1a8, 0xa145, 0xa14c, 0xa14b, 0xa1ac, - 0xa1ab, 0xa1b0, 0xa1c2, 0xa24a, 0xa1c1, 0xa24b, 0xa2b9, 0xa2ba, - 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2, - 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0xa1f8, 0xa1f9, 0xa1fb, 0xa1fa, - 0xa1d4, 0xa1db, 0xa1e8, 0xa1e7, 0xa1fd, 0xa1fc, 0xa1e4, 0xa1e5, - 0xa1ec, 0xa1ed, 0xa1ef, 0xa1ee, 0xa1e3, 0xa1dc, 0xa1da, 0xa1dd, - 0xa1d8, 0xa1d9, 0xa1e6, 0xa1e9, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ec, - 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, - 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0xc7fb, 0xc7fc, - 0xa277, 0xa278, 0xa27a, 0xa27b, 0xa27c, 0xa27d, 0xa275, 0xa274, - 0xa273, 0xa272, 0xa271, 0xa2a4, 0xa2a5, 0xa2a7, 0xa2a6, 0xa27e, - 0xa2a1, 0xa2a3, 0xa2a2, 0xa2ac, 0xa2ad, 0xa2ae, 0xa262, 0xa263, - 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, 0xa270, 0xa26f, - 0xa26e, 0xa26d, 0xa26c, 0xa26b, 0xa26a, 0xa276, 0xa279, 0xa1bd, - 0xa1bc, 0xa1b6, 0xa1b5, 0xa1bf, 0xa1be, 0xa1bb, 0xa1ba, 0xa1b3, - 0xa1b7, 0xa1b4, 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0xa1b9, 0xa1b8, - 0xa1f3, 0xa1f0, 0xa1f2, 0xa1f1, 0xa140, 0xa142, 0xa143, 0xa1b2, - 0xc6a4, 0xa171, 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179, - 0xa17a, 0xa169, 0xa16a, 0xa245, 0xa165, 0xa166, 0xa1a9, 0xa1aa, - 0xa2c3, 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, - 0xa2cb, 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, - 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, - 0xc6b4, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, - 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c0, 0xc6c1, 0xc6c2, 0xc6c3, - 0xc6c4, 0xc6c5, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb, - 0xc6cc, 0xc6cd, 0xc6ce, 0xc6cf, 0xc6d0, 0xc6d1, 0xc6d2, 0xc6d3, - 0xc6d4, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, - 0xc6dc, 0xc6dd, 0xc6de, 0xc6df, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3, - 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, - 0xc6ec, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, - 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6a2, 0xc6a3, 0xc6f8, 0xc6f9, - 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742, - 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, - 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752, - 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, - 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762, - 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, - 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, - 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, - 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, 0xc7a4, - 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ac, - 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc6a1, 0xa374, 0xa375, 0xa376, - 0xa377, 0xa378, 0xa379, 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e, - 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, - 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, - 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, - 0xa3b9, 0xa3ba, 0xa1c0, 0xa255, 0xa256, 0xa250, 0xa251, 0xa252, - 0xa254, 0xa257, 0xa253, 0xa1eb, 0xa1ea, 0xa24f, 0xa440, 0xa442, - 0xa443, 0xc945, 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3, - 0xc94f, 0xc94d, 0xa4a2, 0xa4a1, 0xa542, 0xa541, 0xa540, 0xa543, - 0xa4fe, 0xa5e0, 0xa5e1, 0xa8c3, 0xa458, 0xa4a4, 0xc950, 0xa4a5, - 0xc963, 0xa6ea, 0xcbb1, 0xa459, 0xa4a6, 0xa544, 0xc964, 0xc940, - 0xa444, 0xa45b, 0xc947, 0xa45c, 0xa4a7, 0xa545, 0xa547, 0xa546, - 0xa5e2, 0xa5e3, 0xa8c4, 0xadbc, 0xa441, 0xc941, 0xa445, 0xa45e, - 0xa45d, 0xa5e4, 0xa8c5, 0xb0ae, 0xd44b, 0xb6c3, 0xdcb1, 0xdcb2, - 0xa446, 0xa4a9, 0xa8c6, 0xa447, 0xc948, 0xa45f, 0xa4aa, 0xa4ac, - 0xc951, 0xa4ad, 0xa4ab, 0xa5e5, 0xa8c7, 0xa8c8, 0xab45, 0xa460, - 0xa4ae, 0xa5e6, 0xa5e8, 0xa5e7, 0xa6eb, 0xa8c9, 0xa8ca, 0xab46, - 0xab47, 0xadbd, 0xdcb3, 0xf6d6, 0xa448, 0xa4b0, 0xa4af, 0xc952, - 0xa4b1, 0xa4b7, 0xa4b2, 0xa4b3, 0xc954, 0xc953, 0xa4b5, 0xa4b6, - 0xa4b4, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa549, 0xa550, 0xc96a, - 0xc966, 0xc969, 0xa551, 0xa561, 0xc968, 0xa54e, 0xa54f, 0xa548, - 0xc965, 0xc967, 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae, - 0xa5f3, 0xc9b2, 0xa5f4, 0xa5f7, 0xa5e9, 0xc9b1, 0xa5f8, 0xc9b5, - 0xc9b9, 0xc9b6, 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9, 0xa5ee, 0xc9ab, - 0xa5f1, 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af, 0xa5ed, 0xc9ac, - 0xa5eb, 0xc9b4, 0xc9b7, 0xc9ad, 0xca66, 0xa742, 0xa6f4, 0xca67, - 0xa6f1, 0xa744, 0xa6f9, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7, 0xca60, - 0xca68, 0xca64, 0xa6fa, 0xa6fd, 0xa6ee, 0xa747, 0xca5d, 0xcbbd, - 0xa6ec, 0xa743, 0xa6ed, 0xa6f5, 0xa6f6, 0xca62, 0xca5e, 0xa6fb, - 0xa6f3, 0xca5a, 0xa6ef, 0xca65, 0xa745, 0xa748, 0xa6f2, 0xa740, - 0xa746, 0xa6f0, 0xca63, 0xa741, 0xca69, 0xca5c, 0xa6fe, 0xca5f, - 0xca61, 0xa8d8, 0xcbbf, 0xcbcb, 0xa8d0, 0xcbcc, 0xa8cb, 0xa8d5, - 0xa8ce, 0xcbb9, 0xa8d6, 0xcbb8, 0xcbbc, 0xcbc3, 0xcbc1, 0xa8de, - 0xa8d9, 0xcbb3, 0xcbb5, 0xa8db, 0xa8cf, 0xcbb6, 0xcbc2, 0xcbc9, - 0xa8d4, 0xcbbb, 0xcbb4, 0xa8d3, 0xcbb7, 0xa8d7, 0xcbba, 0xa8d2, - 0xa8cd, 0xa8dc, 0xcbc4, 0xa8dd, 0xcbc8, 0xcbc6, 0xcbca, 0xa8da, - 0xcbbe, 0xcbb2, 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0xab56, - 0xab4a, 0xcde0, 0xcde8, 0xab49, 0xab51, 0xab5d, 0xcdee, 0xcdec, - 0xcde7, 0xab4b, 0xcded, 0xcde3, 0xab59, 0xab50, 0xab58, 0xcdde, - 0xcdea, 0xcde1, 0xab54, 0xcde2, 0xcddd, 0xab5b, 0xab4e, 0xab57, - 0xab4d, 0xcddf, 0xcde4, 0xcdeb, 0xab55, 0xab52, 0xcde6, 0xab5a, - 0xcde9, 0xcde5, 0xab4f, 0xab5c, 0xab53, 0xab4c, 0xab48, 0xcdef, - 0xadd7, 0xadc1, 0xadd1, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4, 0xd0d5, - 0xadc4, 0xadcd, 0xadda, 0xadce, 0xd0c9, 0xadc7, 0xd0ca, 0xaddc, - 0xadd3, 0xadbe, 0xadbf, 0xd0dd, 0xb0bf, 0xadcc, 0xadcb, 0xd0cb, - 0xadcf, 0xd45b, 0xadc6, 0xd0d6, 0xadd5, 0xadd4, 0xadca, 0xd0ce, - 0xd0d7, 0xd0c8, 0xadc9, 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0xadc3, - 0xadc2, 0xd0d9, 0xadd0, 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8, - 0xd0db, 0xd0cd, 0xd0dc, 0xd0d1, 0xd0da, 0xd0d2, 0xadc8, 0xd463, - 0xd457, 0xb0b3, 0xd45c, 0xd462, 0xb0b2, 0xd455, 0xb0b6, 0xd459, - 0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, 0xd467, 0xd451, 0xb0ba, - 0xd466, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f, 0xd45d, 0xd450, - 0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0xd85b, 0xd45e, 0xd44d, - 0xd45f, 0xb0c1, 0xd464, 0xb0c0, 0xd44c, 0xd454, 0xd465, 0xb0bc, - 0xb0bb, 0xb0b8, 0xb0bd, 0xb0af, 0xb0b0, 0xb3c8, 0xd85e, 0xd857, - 0xb3c5, 0xd85f, 0xd855, 0xd858, 0xb3c4, 0xd859, 0xb3c7, 0xd85d, - 0xd853, 0xd852, 0xb3c9, 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c, - 0xd85a, 0xd854, 0xb3c3, 0xd856, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd, - 0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb, - 0xdcc4, 0xdcbf, 0xb6cc, 0xdcb4, 0xb6c9, 0xdcb5, 0xdcbe, 0xdcbc, - 0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, 0xdcbb, 0xdcc2, 0xdcb9, 0xdcc1, - 0xb9b6, 0xb9b3, 0xb9b4, 0xe0f9, 0xe0f1, 0xb9b2, 0xb9af, 0xe0f2, - 0xb9b1, 0xe0f5, 0xe0f7, 0xe0fe, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0, - 0xb9ac, 0xe0f3, 0xb9b7, 0xe0f6, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc, - 0xe0fb, 0xb9b5, 0xe0f4, 0xbbf8, 0xe4ec, 0xe4e9, 0xbbf9, 0xbbf7, - 0xe4f0, 0xe4ed, 0xe4e6, 0xbbf6, 0xbbfa, 0xe4e7, 0xbbf5, 0xbbfd, - 0xe4ea, 0xe4eb, 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef, 0xbeaa, - 0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab, 0xe8f6, 0xbea8, 0xe8f7, - 0xe8f4, 0xc076, 0xecbd, 0xc077, 0xecbb, 0xecbc, 0xecba, 0xecb9, - 0xecbe, 0xc075, 0xefb8, 0xefb9, 0xe4e8, 0xefb7, 0xc078, 0xc35f, - 0xf1eb, 0xf1ec, 0xc4d7, 0xc4d8, 0xf5c1, 0xf5c0, 0xc56c, 0xc56b, - 0xf7d0, 0xa449, 0xa461, 0xa4b9, 0xa4b8, 0xa553, 0xa552, 0xa5fc, - 0xa5fb, 0xa5fd, 0xa5fa, 0xa74a, 0xa749, 0xa74b, 0xa8e0, 0xa8df, - 0xa8e1, 0xab5e, 0xa259, 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b, - 0xd860, 0xa25d, 0xb9b8, 0xa25e, 0xa44a, 0xa4ba, 0xa5fe, 0xa8e2, - 0xa44b, 0xa4bd, 0xa4bb, 0xa4bc, 0xa640, 0xa74c, 0xa8e4, 0xa8e3, - 0xa8e5, 0xaddd, 0xbeac, 0xc94e, 0xa554, 0xa555, 0xa641, 0xca6a, - 0xab60, 0xab5f, 0xd0e0, 0xd0df, 0xb0c3, 0xa4be, 0xc955, 0xcbcd, - 0xab61, 0xade0, 0xadde, 0xaddf, 0xbead, 0xa556, 0xa642, 0xc9bc, - 0xa74d, 0xa74e, 0xca6b, 0xcbce, 0xa8e6, 0xcbcf, 0xd0e2, 0xd0e3, - 0xade3, 0xd0e4, 0xd0e1, 0xade4, 0xade2, 0xade1, 0xd0e5, 0xd468, - 0xd861, 0xdcc5, 0xe140, 0xbbfe, 0xbeae, 0xe8f9, 0xa44c, 0xa45a, - 0xb0c4, 0xb3cd, 0xb9b9, 0xc942, 0xa4bf, 0xa559, 0xa557, 0xa558, - 0xa8e7, 0xa44d, 0xa44e, 0xa462, 0xa4c0, 0xa4c1, 0xa4c2, 0xc9be, - 0xa55a, 0xc96b, 0xa646, 0xc9bf, 0xa644, 0xa645, 0xc9bd, 0xa647, - 0xa643, 0xca6c, 0xaaec, 0xca6d, 0xca6e, 0xa750, 0xa74f, 0xa753, - 0xa751, 0xa752, 0xa8ed, 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0xcbd0, - 0xa8ee, 0xa8ea, 0xa8e9, 0xa8eb, 0xa8e8, 0xa8ef, 0xab63, 0xcdf0, - 0xcbd3, 0xab68, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62, - 0xd0e8, 0xade7, 0xd0eb, 0xade5, 0xd0e7, 0xade8, 0xade6, 0xade9, - 0xd0e9, 0xd0ea, 0xd0e6, 0xd0ec, 0xb3d1, 0xb0c5, 0xd469, 0xd46b, - 0xd46a, 0xd46c, 0xb0c6, 0xb3ce, 0xb3cf, 0xb3d0, 0xb6d0, 0xdcc7, - 0xdcc6, 0xdcc8, 0xdcc9, 0xb6d1, 0xb6cf, 0xe141, 0xe142, 0xb9bb, - 0xb9ba, 0xe35a, 0xbc40, 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3, - 0xbc43, 0xbeaf, 0xbeb0, 0xf1ed, 0xf5c3, 0xf5c2, 0xf7d1, 0xa44f, - 0xa55c, 0xa55b, 0xa648, 0xc9c0, 0xa755, 0xa756, 0xa754, 0xa757, - 0xca6f, 0xca70, 0xa8f1, 0xcbd5, 0xa8f0, 0xcdf2, 0xab6c, 0xcdf3, - 0xab6b, 0xab69, 0xab6a, 0xd0ed, 0xb0c7, 0xd46e, 0xb0ca, 0xd46d, - 0xb1e5, 0xb0c9, 0xb0c8, 0xb3d4, 0xb3d3, 0xb3d2, 0xb6d2, 0xb6d5, - 0xb6d6, 0xb6d4, 0xb6d3, 0xe143, 0xe144, 0xe4f5, 0xbc45, 0xe4f4, - 0xbeb1, 0xecbf, 0xc079, 0xf1ee, 0xc455, 0xa463, 0xa4c3, 0xc956, - 0xa4c4, 0xa4c5, 0xa55d, 0xa55e, 0xa649, 0xca71, 0xcbd6, 0xcbd7, - 0xab6d, 0xd0ee, 0xb0cc, 0xb0cb, 0xd863, 0xd862, 0xa450, 0xa4c6, - 0xa55f, 0xb0cd, 0xc943, 0xc96c, 0xa560, 0xc9c2, 0xa64b, 0xa64a, - 0xc9c1, 0xa758, 0xadea, 0xd46f, 0xb6d7, 0xe145, 0xb9bc, 0xe8fa, - 0xf3fd, 0xa4c7, 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, 0xb0cf, 0xa451, - 0xa464, 0xa2cd, 0xa4ca, 0xa4c9, 0xa4c8, 0xa563, 0xa562, 0xc96d, - 0xc9c3, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0xab6e, 0xb3d5, 0xa452, - 0xa4cb, 0xa565, 0xa564, 0xca72, 0xa8f6, 0xc957, 0xa567, 0xa566, - 0xa64c, 0xa64d, 0xca73, 0xa759, 0xa75a, 0xa8f7, 0xa8f8, 0xa8f9, - 0xab6f, 0xcdf5, 0xadeb, 0xc944, 0xa4cc, 0xc9c4, 0xca74, 0xca75, - 0xcbd9, 0xcbda, 0xcdf7, 0xcdf6, 0xcdf9, 0xcdf8, 0xab70, 0xd470, - 0xaded, 0xd0ef, 0xadec, 0xd864, 0xb3d6, 0xd865, 0xe146, 0xb9bd, - 0xbc46, 0xf1ef, 0xc958, 0xa568, 0xb0d1, 0xa453, 0xa465, 0xa4ce, - 0xa4cd, 0xa4cf, 0xa8fb, 0xa8fa, 0xa8fc, 0xab71, 0xadee, 0xe8fb, - 0xc24f, 0xa466, 0xa56a, 0xa579, 0xa574, 0xa56f, 0xa56e, 0xa575, - 0xa573, 0xa56c, 0xa57a, 0xa56d, 0xa569, 0xa578, 0xa577, 0xa576, - 0xa56b, 0xa572, 0xa571, 0xa57b, 0xa570, 0xa653, 0xa659, 0xa655, - 0xa65b, 0xc9c5, 0xa658, 0xa64e, 0xa651, 0xa654, 0xa650, 0xa657, - 0xa65a, 0xa64f, 0xa652, 0xa656, 0xa65c, 0xca7e, 0xca7b, 0xa767, - 0xca7c, 0xa75b, 0xa75d, 0xa775, 0xa770, 0xcaa5, 0xca7d, 0xa75f, - 0xa761, 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d, - 0xca76, 0xa773, 0xa764, 0xa76e, 0xa76f, 0xca77, 0xa76c, 0xa76a, - 0xa76b, 0xa771, 0xcaa1, 0xa75e, 0xa772, 0xcaa3, 0xa766, 0xa763, - 0xca7a, 0xa762, 0xcaa6, 0xa765, 0xa769, 0xa760, 0xcaa2, 0xca79, - 0xcbeb, 0xcbea, 0xa94f, 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee, - 0xa950, 0xcbe1, 0xcbe5, 0xcbe9, 0xce49, 0xa94b, 0xce4d, 0xa8fd, - 0xcbe6, 0xa8fe, 0xa94c, 0xa945, 0xa941, 0xcbe2, 0xa944, 0xa949, - 0xa952, 0xcbe3, 0xcbdc, 0xa943, 0xcbdd, 0xcbdf, 0xa946, 0xa948, - 0xcbdb, 0xcbe0, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0xa94a, 0xcbde, - 0xa947, 0xa942, 0xa940, 0xcbec, 0xa94e, 0xce48, 0xcdfb, 0xce4b, - 0xcdfd, 0xab78, 0xaba8, 0xab74, 0xaba7, 0xab7d, 0xaba4, 0xab72, - 0xcdfc, 0xce43, 0xaba3, 0xce4f, 0xaba5, 0xab79, 0xce45, 0xce42, - 0xab77, 0xcdfa, 0xaba6, 0xce4a, 0xab7c, 0xce4c, 0xaba9, 0xab73, - 0xab7e, 0xab7b, 0xce40, 0xaba1, 0xce46, 0xce47, 0xab7a, 0xaba2, - 0xab76, 0xab75, 0xcdfe, 0xce44, 0xce4e, 0xd144, 0xadfb, 0xd0f1, - 0xd0f6, 0xadf4, 0xae40, 0xd0f4, 0xadef, 0xadf9, 0xadfe, 0xd0fb, - 0xadfa, 0xadfd, 0xd0fe, 0xadf5, 0xd0f5, 0xd142, 0xd143, 0xadf7, - 0xd141, 0xadf3, 0xae43, 0xd0f8, 0xadf1, 0xd146, 0xd0f9, 0xd0fd, - 0xadf6, 0xae42, 0xd0fa, 0xadfc, 0xd140, 0xd147, 0xd4a1, 0xd145, - 0xae44, 0xadf0, 0xd0fc, 0xd0f3, 0xadf8, 0xd0f2, 0xd0f7, 0xd0f0, - 0xae41, 0xd477, 0xb0e4, 0xd4a7, 0xb0e2, 0xb0df, 0xd47c, 0xb0db, - 0xd4a2, 0xb0e6, 0xd476, 0xd47b, 0xd47a, 0xadf2, 0xb0e1, 0xd4a5, - 0xd4a8, 0xd473, 0xb3e8, 0xd4a9, 0xb0e7, 0xb0d9, 0xb0d6, 0xd47e, - 0xb0d3, 0xd4a6, 0xb0da, 0xd4aa, 0xd474, 0xd4a4, 0xb0dd, 0xd475, - 0xd478, 0xd47d, 0xb0de, 0xb0dc, 0xb0e8, 0xb0e3, 0xb0d7, 0xb1d2, - 0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0xb0d4, 0xd471, - 0xd472, 0xd86a, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, 0xb3d8, - 0xd871, 0xb3de, 0xb3e4, 0xb5bd, 0xb3e2, 0xd86e, 0xb3ef, 0xb3db, - 0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, 0xd866, 0xd873, 0xd86d, - 0xb3e1, 0xd879, 0xb3dd, 0xb3f1, 0xb3ea, 0xb3df, 0xb3dc, 0xb3e7, - 0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9, 0xd867, - 0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0xb3ed, 0xb3e9, 0xb3e5, - 0xd870, 0xb3eb, 0xdcd5, 0xdcd1, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5, - 0xb6e6, 0xb6de, 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde, - 0xb6dc, 0xdcd8, 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9, - 0xdcdb, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0, 0xb6d8, 0xb6e4, - 0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db, 0xa25f, 0xb6d9, 0xdcd4, - 0xb6e2, 0xdcdd, 0xb9cd, 0xb9c8, 0xe155, 0xe151, 0xe14b, 0xb9c2, - 0xb9be, 0xe154, 0xb9bf, 0xe14e, 0xe150, 0xe153, 0xb9c4, 0xb9cb, - 0xb9c5, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, 0xb9cc, 0xe14a, 0xe14f, - 0xb9c3, 0xe148, 0xb9c9, 0xb9c1, 0xb9c0, 0xe14d, 0xe152, 0xb9ca, - 0xe147, 0xbc4d, 0xe547, 0xe544, 0xbc47, 0xbc53, 0xbc54, 0xbc4a, - 0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0xe546, 0xbc49, 0xe548, 0xbc48, - 0xe543, 0xe545, 0xbc4b, 0xe541, 0xe4fa, 0xe4f7, 0xd86b, 0xe4fd, - 0xe4f6, 0xe4fc, 0xe4fb, 0xe4f8, 0xbc4f, 0xbc4e, 0xbc50, 0xe4fe, - 0xbeb2, 0xe540, 0xe945, 0xe8fd, 0xbebe, 0xe942, 0xbeb6, 0xbeba, - 0xe941, 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3, 0xbebd, 0xe943, 0xe8fe, - 0xbebc, 0xe8fc, 0xbebb, 0xe944, 0xe940, 0xbc51, 0xbebf, 0xe946, - 0xbeb7, 0xbeb4, 0xecc6, 0xecc8, 0xc07b, 0xecc9, 0xecc7, 0xecc5, - 0xecc4, 0xc07d, 0xecc3, 0xc07e, 0xecc1, 0xecc2, 0xc07a, 0xc0a1, - 0xc07c, 0xecc0, 0xc250, 0xefbc, 0xefba, 0xefbf, 0xefbd, 0xefbb, - 0xefbe, 0xc360, 0xf1f2, 0xf1f3, 0xc456, 0xf1f4, 0xf1f0, 0xf1f5, - 0xf1f1, 0xc251, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457, - 0xc45a, 0xf5c5, 0xf5c6, 0xc4da, 0xc4d9, 0xc4db, 0xf5c4, 0xf6d8, - 0xf6d7, 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8, 0xf8a6, 0xc5f1, - 0xf8a5, 0xf8ee, 0xc949, 0xa57d, 0xa57c, 0xa65f, 0xa65e, 0xc9c7, - 0xa65d, 0xc9c6, 0xa779, 0xcaa9, 0xcaa8, 0xa777, 0xa77a, 0xcaa7, - 0xa778, 0xcbf0, 0xcbf1, 0xa954, 0xabaa, 0xd148, 0xd149, 0xae45, - 0xae46, 0xd4ac, 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c, 0xb3f2, - 0xb6e9, 0xb6ea, 0xdce1, 0xb9cf, 0xb9ce, 0xe549, 0xe948, 0xe947, - 0xf96b, 0xa467, 0xc959, 0xc96e, 0xc96f, 0xa662, 0xa666, 0xc9c9, - 0xa664, 0xa663, 0xc9c8, 0xa665, 0xa661, 0xa660, 0xc9ca, 0xa7a6, - 0xa7a3, 0xa77d, 0xcaaa, 0xcaab, 0xa7a1, 0xcaad, 0xa77b, 0xcaae, - 0xcaac, 0xa77e, 0xa7a2, 0xa7a5, 0xa7a4, 0xa77c, 0xcaaf, 0xa959, - 0xcbfe, 0xa95b, 0xa95a, 0xcc40, 0xa958, 0xa957, 0xcbf5, 0xcbf4, - 0xcbf2, 0xcbf7, 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8, - 0xa956, 0xcbfb, 0xa95c, 0xcc41, 0xcbf9, 0xabab, 0xa955, 0xabac, - 0xce54, 0xce5a, 0xabb2, 0xce58, 0xce5e, 0xce55, 0xce59, 0xce5b, - 0xce5d, 0xce57, 0xce56, 0xce51, 0xce52, 0xabad, 0xabaf, 0xabae, - 0xce53, 0xce5c, 0xabb1, 0xce50, 0xd153, 0xd152, 0xd157, 0xd14e, - 0xd151, 0xd150, 0xd154, 0xd158, 0xae47, 0xae4a, 0xd14f, 0xd155, - 0xae49, 0xd14a, 0xabb0, 0xd4ba, 0xd156, 0xd14d, 0xae48, 0xd14c, - 0xd4b1, 0xb0ec, 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1, 0xd4bf, - 0xd4c5, 0xd4c9, 0xd4c0, 0xd4b4, 0xd4bc, 0xd4ca, 0xd4c8, 0xd4be, - 0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5, 0xd4b7, 0xb0f6, 0xb0f2, - 0xd4ad, 0xd4c3, 0xd4b5, 0xd4b3, 0xd4c6, 0xb0f3, 0xd4cc, 0xb0ed, - 0xb0ef, 0xd4bb, 0xd4b6, 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb, - 0xd4c2, 0xd4c4, 0xd4ae, 0xd8a1, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2, - 0xb3fb, 0xb3f9, 0xd8a4, 0xb3f6, 0xd8a8, 0xd8a3, 0xd8a5, 0xd87d, - 0xb3f4, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, 0xb3f7, 0xb3f8, 0xd14b, - 0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, 0xd8b0, 0xd8af, 0xd8b3, - 0xdcef, 0xd8ac, 0xd8a7, 0xdce7, 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6, - 0xdcea, 0xdce5, 0xb6ec, 0xb6f6, 0xdce2, 0xb6f0, 0xdce9, 0xb6ee, - 0xb6ed, 0xdcec, 0xb6ef, 0xdcee, 0xdceb, 0xb6eb, 0xb6f5, 0xdcf0, - 0xdce4, 0xdced, 0xdce3, 0xb6f1, 0xb6f3, 0xdce8, 0xdcf1, 0xe15d, - 0xb9d0, 0xe163, 0xb9d5, 0xe15f, 0xe166, 0xe157, 0xb9d7, 0xb9d1, - 0xe15c, 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0xb9d6, 0xe15a, 0xe160, - 0xe165, 0xe156, 0xb9d4, 0xe15e, 0xe162, 0xe168, 0xe158, 0xe161, - 0xb9d3, 0xe167, 0xe159, 0xbc59, 0xe54b, 0xbc57, 0xbc56, 0xe54d, - 0xe552, 0xe54e, 0xe551, 0xbc5c, 0xbea5, 0xbc5b, 0xe54a, 0xe550, - 0xbc5a, 0xe54f, 0xe54c, 0xbc58, 0xe94d, 0xe94f, 0xe94a, 0xbec1, - 0xe94c, 0xbec0, 0xe94e, 0xbec3, 0xe950, 0xbec2, 0xe949, 0xe94b, - 0xc0a5, 0xeccc, 0xc0a4, 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca, - 0xc253, 0xc252, 0xf1f6, 0xf1f8, 0xf1f7, 0xc361, 0xc362, 0xc363, - 0xf442, 0xc45b, 0xf7d3, 0xf7d2, 0xc5f2, 0xa468, 0xa4d0, 0xa7a7, - 0xce5f, 0xb3fc, 0xb3fd, 0xdcf2, 0xb9d8, 0xe169, 0xe553, 0xc95a, - 0xcab0, 0xcc42, 0xce60, 0xd159, 0xae4c, 0xf1f9, 0xc4dc, 0xa469, - 0xa57e, 0xc970, 0xa667, 0xa668, 0xa95d, 0xb0f7, 0xb9da, 0xb9db, - 0xb9d9, 0xa46a, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b, 0xa4d4, 0xa5a1, - 0xc971, 0xa5a2, 0xa669, 0xa66a, 0xc9cb, 0xa7a8, 0xcab1, 0xa961, - 0xcc43, 0xa95f, 0xa960, 0xa95e, 0xd15a, 0xabb6, 0xabb5, 0xabb7, - 0xabb4, 0xce61, 0xa962, 0xabb3, 0xae4d, 0xae4e, 0xae4f, 0xd4cd, - 0xb3fe, 0xd8b4, 0xb0f8, 0xb6f8, 0xb9dd, 0xb9dc, 0xe16a, 0xbc5d, - 0xbec4, 0xefc0, 0xf6da, 0xf7d4, 0xa46b, 0xa5a3, 0xa5a4, 0xc9d1, - 0xa66c, 0xa66f, 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, 0xc9cc, - 0xa671, 0xa670, 0xa66d, 0xa66b, 0xc9ce, 0xa7b3, 0xa7b0, 0xcab6, - 0xcab9, 0xcab8, 0xa7aa, 0xa7b2, 0xa7af, 0xcab5, 0xcab3, 0xa7ae, - 0xa7a9, 0xa7ac, 0xcab4, 0xcabb, 0xcab7, 0xa7ad, 0xa7b1, 0xa7b4, - 0xcab2, 0xcaba, 0xa7ab, 0xa967, 0xa96f, 0xcc4f, 0xcc48, 0xa970, - 0xcc53, 0xcc44, 0xcc4b, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50, - 0xa963, 0xcc51, 0xcc4a, 0xcc4d, 0xa972, 0xa969, 0xcc54, 0xcc52, - 0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, 0xa96a, 0xa968, - 0xa971, 0xa96d, 0xa965, 0xcc4e, 0xabb9, 0xabc0, 0xce6f, 0xabb8, - 0xce67, 0xce63, 0xce73, 0xce62, 0xabbb, 0xce6c, 0xabbe, 0xabc1, - 0xabbc, 0xce70, 0xabbf, 0xae56, 0xce76, 0xce64, 0xce66, 0xce6d, - 0xce71, 0xce75, 0xce72, 0xce6b, 0xce6e, 0xce68, 0xabc3, 0xce6a, - 0xce69, 0xce74, 0xabba, 0xce65, 0xabc2, 0xabbd, 0xae5c, 0xd162, - 0xae5b, 0xd160, 0xae50, 0xae55, 0xd15f, 0xd15c, 0xd161, 0xae51, - 0xd15b, 0xae54, 0xae52, 0xd163, 0xae53, 0xae57, 0xae58, 0xae5a, - 0xae59, 0xd15d, 0xd15e, 0xd164, 0xd4d4, 0xb0f9, 0xd8c2, 0xd4d3, - 0xd4e6, 0xb140, 0xd4e4, 0xb0fe, 0xb0fa, 0xd4ed, 0xd4dd, 0xd4e0, - 0xb143, 0xd4ea, 0xd4e2, 0xb0fb, 0xb144, 0xd4e7, 0xd4e5, 0xd4d6, - 0xd4eb, 0xd4df, 0xd4da, 0xd4d0, 0xd4ec, 0xd4dc, 0xd4cf, 0xb142, - 0xd4e1, 0xd4ee, 0xd4de, 0xd4d2, 0xd4d7, 0xd4ce, 0xb141, 0xd4db, - 0xd4d8, 0xb0fc, 0xd4d1, 0xd4e9, 0xb0fd, 0xd4d9, 0xd4d5, 0xd4e8, - 0xb440, 0xd8bb, 0xd8b8, 0xd8c9, 0xd8bd, 0xd8ca, 0xb442, 0xd8c6, - 0xd8c3, 0xd8c4, 0xd8c7, 0xd8cb, 0xd4e3, 0xd8cd, 0xdd47, 0xb443, - 0xd8ce, 0xd8b6, 0xd8c0, 0xd8c5, 0xb441, 0xb444, 0xd8cc, 0xd8cf, - 0xd8ba, 0xd8b7, 0xd8b9, 0xd8be, 0xd8bc, 0xb445, 0xd8c8, 0xd8bf, - 0xd8c1, 0xd8b5, 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9, - 0xdd44, 0xdd40, 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd, - 0xb6fc, 0xdcfb, 0xdd41, 0xb6f9, 0xb741, 0xdcf4, 0xdcfe, 0xdcf3, - 0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0xe16e, 0xb9e2, - 0xb9e1, 0xb9e3, 0xe17a, 0xe170, 0xe176, 0xe16b, 0xe179, 0xe178, - 0xe17c, 0xe175, 0xb9de, 0xe174, 0xb9e4, 0xe16d, 0xb9df, 0xe17b, - 0xb9e0, 0xe16f, 0xe172, 0xe177, 0xe171, 0xe16c, 0xe173, 0xe555, - 0xbc61, 0xe558, 0xe557, 0xe55a, 0xe55c, 0xbc5f, 0xe556, 0xe554, - 0xe55d, 0xe55b, 0xe559, 0xe55f, 0xe55e, 0xbc63, 0xbc5e, 0xbc60, - 0xbc62, 0xe560, 0xe957, 0xe956, 0xe955, 0xe958, 0xe951, 0xe952, - 0xe95a, 0xe953, 0xbec5, 0xe95c, 0xe95b, 0xe954, 0xecd1, 0xc0a8, - 0xeccf, 0xecd4, 0xecd3, 0xe959, 0xc0a7, 0xecd2, 0xecce, 0xecd6, - 0xecd5, 0xc0a6, 0xecd0, 0xbec6, 0xc254, 0xefc1, 0xf1fa, 0xf1fb, - 0xf1fc, 0xc45c, 0xc45d, 0xf443, 0xf5c8, 0xf5c7, 0xf6db, 0xf6dc, - 0xf7d5, 0xf8a7, 0xa46c, 0xa46d, 0xa46e, 0xa4d5, 0xa5a5, 0xc9d3, - 0xa672, 0xa673, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5, 0xa973, 0xcc55, - 0xa975, 0xa974, 0xcc56, 0xabc4, 0xae5d, 0xd165, 0xd4f0, 0xb145, - 0xb447, 0xd4ef, 0xb446, 0xb9e5, 0xe17d, 0xbec7, 0xc0a9, 0xecd7, - 0xc45e, 0xc570, 0xc972, 0xa5a6, 0xc973, 0xa676, 0xa674, 0xa675, - 0xa677, 0xa7ba, 0xa7b9, 0xcabc, 0xa7bb, 0xcabd, 0xcc57, 0xcc58, - 0xa976, 0xa978, 0xa97a, 0xa977, 0xa97b, 0xa979, 0xabc8, 0xabc5, - 0xabc7, 0xabc9, 0xabc6, 0xd166, 0xce77, 0xd168, 0xd167, 0xae63, - 0xae5f, 0xae60, 0xae62, 0xae64, 0xae61, 0xae66, 0xae65, 0xb14a, - 0xd4f2, 0xd4f1, 0xb149, 0xb148, 0xb147, 0xb14b, 0xb146, 0xd8d5, - 0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0xb44b, 0xd8d4, 0xb448, 0xb44a, - 0xd8d3, 0xdd48, 0xdd49, 0xdd4a, 0xb9e6, 0xb9ee, 0xe17e, 0xb9e8, - 0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea, 0xb9e7, 0xb9eb, 0xbc66, - 0xd8d0, 0xbc67, 0xbc65, 0xbc64, 0xe95d, 0xbec8, 0xecd8, 0xecd9, - 0xc364, 0xc45f, 0xa46f, 0xa678, 0xabca, 0xd169, 0xae67, 0xb14e, - 0xb14d, 0xb14c, 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470, - 0xc95c, 0xa4d6, 0xc974, 0xc9d4, 0xa679, 0xa97c, 0xdd4b, 0xa471, - 0xa4d7, 0xc9d5, 0xcabe, 0xcabf, 0xa7bc, 0xd8d8, 0xb44e, 0xdd4c, - 0xc0aa, 0xa472, 0xa4a8, 0xa4d8, 0xc975, 0xa5a7, 0xa7c0, 0xa7bf, - 0xa7bd, 0xa7be, 0xcc59, 0xa97e, 0xa9a1, 0xcc5a, 0xa97d, 0xabce, - 0xce78, 0xabcd, 0xabcb, 0xabcc, 0xae6a, 0xae68, 0xd16b, 0xae69, - 0xd16a, 0xae5e, 0xd4f3, 0xb150, 0xb151, 0xb14f, 0xb9f0, 0xe1a2, - 0xbc68, 0xbc69, 0xe561, 0xc0ab, 0xefc2, 0xefc3, 0xc4dd, 0xf8a8, - 0xc94b, 0xa4d9, 0xa473, 0xc977, 0xc976, 0xa67a, 0xc9d7, 0xc9d8, - 0xc9d6, 0xc9d9, 0xcac7, 0xcac2, 0xcac4, 0xcac6, 0xcac3, 0xa7c4, - 0xcac0, 0xcac1, 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3, 0xcac9, - 0xcc68, 0xcc62, 0xcc5d, 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69, - 0xcc6c, 0xcc67, 0xcc60, 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64, - 0xcc5b, 0xcc5f, 0xcc6b, 0xa9a7, 0xa9a8, 0xcc5e, 0xcc6a, 0xa9a2, - 0xa9a4, 0xceab, 0xcea4, 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b, - 0xceac, 0xcea9, 0xce79, 0xabd0, 0xcea7, 0xcea8, 0xcea6, 0xce7c, - 0xce7a, 0xabcf, 0xcea2, 0xce7e, 0xcea1, 0xcead, 0xae6f, 0xae6e, - 0xd16c, 0xae6b, 0xd16e, 0xae70, 0xd16f, 0xae73, 0xae71, 0xd170, - 0xceae, 0xd172, 0xae6d, 0xae6c, 0xd16d, 0xd171, 0xae72, 0xb153, - 0xb152, 0xd4f5, 0xd4f9, 0xd4fb, 0xb154, 0xd4fe, 0xb158, 0xd541, - 0xb15a, 0xb156, 0xb15e, 0xb15b, 0xd4f7, 0xb155, 0xd4f6, 0xd4f4, - 0xd543, 0xd4f8, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d, - 0xd4fa, 0xb159, 0xd544, 0xd540, 0xd8e7, 0xd8ee, 0xd8e3, 0xb451, - 0xd8df, 0xd8ef, 0xd8d9, 0xd8ec, 0xd8ea, 0xd8e4, 0xd8ed, 0xd8e6, - 0xd8de, 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da, 0xd8f1, 0xb452, 0xd8eb, - 0xdd4f, 0xd8dd, 0xb44f, 0xd8e1, 0xb450, 0xd8e0, 0xd8e5, 0xd8e2, - 0xd8e8, 0xdd53, 0xdd56, 0xdd4e, 0xdd50, 0xdd55, 0xdd54, 0xb743, - 0xd8db, 0xdd52, 0xb744, 0xdd4d, 0xdd51, 0xe1a9, 0xe1b0, 0xe1a7, - 0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, 0xe1a4, 0xe1a8, 0xe1a3, 0xb9f1, - 0xe1a6, 0xb9f2, 0xe1ac, 0xe1ab, 0xe1aa, 0xe1af, 0xe565, 0xe567, - 0xbc6b, 0xe568, 0xe563, 0xe562, 0xe56c, 0xe56a, 0xbc6a, 0xe56d, - 0xe564, 0xe569, 0xe56b, 0xe566, 0xe961, 0xe966, 0xe960, 0xe965, - 0xe95e, 0xe968, 0xe964, 0xe969, 0xe963, 0xe95f, 0xe967, 0xe96a, - 0xe962, 0xecda, 0xc0af, 0xc0ad, 0xc0ac, 0xc0ae, 0xefc4, 0xf172, - 0xf1fd, 0xf444, 0xf445, 0xc460, 0xf5c9, 0xc4de, 0xf5ca, 0xf6de, - 0xc572, 0xc571, 0xf6dd, 0xc5c9, 0xf7d6, 0xa474, 0xa67b, 0xc9da, - 0xcaca, 0xa8b5, 0xb15f, 0xa475, 0xa5aa, 0xa5a9, 0xa5a8, 0xa7c5, - 0xae74, 0xdd57, 0xa476, 0xa477, 0xa478, 0xa4da, 0xabd1, 0xceaf, - 0xb453, 0xa479, 0xc95d, 0xa5ab, 0xa5ac, 0xc978, 0xa67c, 0xcacb, - 0xa7c6, 0xcacc, 0xa9ae, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d, 0xa9a9, - 0xcc6f, 0xa9aa, 0xa9ad, 0xabd2, 0xabd4, 0xceb3, 0xceb0, 0xceb1, - 0xceb2, 0xceb4, 0xabd3, 0xd174, 0xd173, 0xae76, 0xae75, 0xb162, - 0xd546, 0xb161, 0xb163, 0xb160, 0xb455, 0xd545, 0xb456, 0xd8f3, - 0xb457, 0xd8f2, 0xb454, 0xdd5a, 0xdd5c, 0xb745, 0xdd5b, 0xdd59, - 0xdd58, 0xe1b4, 0xb9f7, 0xb9f5, 0xb9f6, 0xe1b2, 0xe1b3, 0xb9f3, - 0xe571, 0xe56f, 0xbc6d, 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0xe96d, - 0xe96b, 0xe96c, 0xe56e, 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6, - 0xe96e, 0xf1fe, 0xa47a, 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0xa9af, - 0xb746, 0xa4db, 0xa5ae, 0xabd5, 0xb458, 0xc979, 0xc97a, 0xc9dc, - 0xa7c8, 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1, 0xa7c7, - 0xa9b3, 0xa9b4, 0xa9b1, 0xa9b0, 0xceb8, 0xa9b2, 0xabd6, 0xceb7, - 0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79, 0xd175, 0xd177, 0xae77, - 0xd178, 0xae78, 0xd176, 0xceb5, 0xd547, 0xd54a, 0xd54b, 0xd548, - 0xb167, 0xb166, 0xb164, 0xb165, 0xd549, 0xb168, 0xb45a, 0xb45b, - 0xb45c, 0xdd5d, 0xdd5f, 0xdd61, 0xb748, 0xb747, 0xb459, 0xdd60, - 0xdd5e, 0xe1b8, 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9, - 0xe1b7, 0xe1b5, 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574, - 0xbc71, 0xbc74, 0xe575, 0xbc6f, 0xbc73, 0xe973, 0xe971, 0xe970, - 0xe972, 0xe96f, 0xc366, 0xf446, 0xf447, 0xf5cb, 0xf6df, 0xc655, - 0xa9b5, 0xa7ca, 0xabd8, 0xa47b, 0xa4dc, 0xa5af, 0xc9dd, 0xa7cb, - 0xcad2, 0xcebb, 0xabd9, 0xb9fa, 0xa47c, 0xa6a1, 0xb749, 0xa47d, - 0xa4dd, 0xa4de, 0xa5b1, 0xa5b0, 0xc9de, 0xa6a2, 0xcad3, 0xa7cc, - 0xcc71, 0xcc72, 0xcc73, 0xa9b6, 0xa9b7, 0xcc70, 0xa9b8, 0xabda, - 0xcebc, 0xd17a, 0xae7a, 0xd179, 0xb169, 0xd54c, 0xb16a, 0xd54d, - 0xb45d, 0xdd62, 0xe1bf, 0xe1be, 0xb9fb, 0xbc75, 0xe576, 0xbeca, - 0xe974, 0xc0b1, 0xc573, 0xf7d8, 0xcc74, 0xcebd, 0xb16b, 0xd8f4, - 0xb74a, 0xc255, 0xa7ce, 0xa7cd, 0xabdb, 0xd17b, 0xb16d, 0xb343, - 0xb16e, 0xb16c, 0xb45e, 0xe1c0, 0xb9fc, 0xbc76, 0xc94c, 0xc9df, - 0xcad5, 0xa7cf, 0xcad4, 0xa7d0, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb, - 0xa9b9, 0xa9ba, 0xcc75, 0xabdd, 0xcebe, 0xabe0, 0xabdc, 0xabe2, - 0xabde, 0xabdf, 0xabe1, 0xae7d, 0xae7c, 0xae7b, 0xd54f, 0xb16f, - 0xb172, 0xb170, 0xd54e, 0xb175, 0xb171, 0xd550, 0xb174, 0xb173, - 0xd8f6, 0xd8f5, 0xb461, 0xb45f, 0xb460, 0xd8f7, 0xb74b, 0xdd64, - 0xb74c, 0xdd63, 0xe577, 0xbc78, 0xe1c1, 0xbc77, 0xb9fd, 0xecde, - 0xe975, 0xc0b2, 0xecdd, 0xf240, 0xf448, 0xf449, 0xa4df, 0xa5b2, - 0xc97b, 0xa7d2, 0xa7d4, 0xc9e2, 0xcad8, 0xcad7, 0xcad6, 0xc9e1, - 0xc9e0, 0xa6a4, 0xa7d3, 0xa7d1, 0xa6a3, 0xa9bd, 0xcc78, 0xa9be, - 0xcadd, 0xcadf, 0xcade, 0xcc79, 0xcada, 0xa7d8, 0xa7d6, 0xcad9, - 0xcadb, 0xcae1, 0xa7d5, 0xcadc, 0xcae5, 0xa9c0, 0xcae2, 0xa7d7, - 0xcae0, 0xcae3, 0xa9bf, 0xa9c1, 0xcae4, 0xccaf, 0xcca2, 0xcc7e, - 0xccae, 0xcca9, 0xabe7, 0xa9c2, 0xccaa, 0xccad, 0xabe3, 0xccac, - 0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, 0xcc7c, 0xcca5, 0xa9cd, 0xccb0, - 0xabe4, 0xcca6, 0xabe5, 0xa9c9, 0xcca8, 0xcecd, 0xabe6, 0xcc7b, - 0xa9ca, 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7, 0xcc7a, 0xccab, - 0xa9c4, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5, 0xcebf, 0xcec0, 0xceca, - 0xd1a1, 0xcecb, 0xabee, 0xcece, 0xcec4, 0xabed, 0xcec6, 0xcec7, - 0xcec9, 0xabe9, 0xaea3, 0xcec5, 0xcec1, 0xaea4, 0xcecf, 0xae7e, - 0xd17d, 0xcec8, 0xd17c, 0xcec3, 0xcecc, 0xabec, 0xaea1, 0xabf2, - 0xaea2, 0xced0, 0xd17e, 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef, - 0xaea5, 0xced1, 0xaea7, 0xabea, 0xcec2, 0xb176, 0xd1a4, 0xd1a6, - 0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, 0xd1a3, 0xb178, 0xd551, - 0xaead, 0xaeab, 0xd1ae, 0xd552, 0xd1a5, 0xaeac, 0xd1a9, 0xaeaf, - 0xd1ab, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0xaea9, 0xb179, 0xd1a2, - 0xb177, 0xb17a, 0xd555, 0xd55e, 0xb464, 0xb17c, 0xb1a3, 0xb465, - 0xd560, 0xb1aa, 0xd8f9, 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554, - 0xd562, 0xd565, 0xd949, 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac, - 0xd55d, 0xd8f8, 0xd561, 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559, - 0xb462, 0xd557, 0xd558, 0xb1a7, 0xb1a6, 0xd55b, 0xb1ab, 0xd55f, - 0xb1a4, 0xd55c, 0xb1a9, 0xb466, 0xb463, 0xd8fb, 0xd55a, 0xb17d, - 0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d, 0xd944, 0xb471, 0xdd65, - 0xd946, 0xb753, 0xb469, 0xb46c, 0xd947, 0xd948, 0xd94e, 0xb473, - 0xb754, 0xd94a, 0xd94f, 0xd943, 0xb75e, 0xb755, 0xb472, 0xd941, - 0xd950, 0xb75d, 0xb470, 0xb74e, 0xd94d, 0xb474, 0xd945, 0xd8fe, - 0xb46a, 0xd942, 0xd94b, 0xb74d, 0xb752, 0xb467, 0xd94c, 0xb750, - 0xb468, 0xb75c, 0xe1c3, 0xdd70, 0xdd68, 0xe1c2, 0xdd6c, 0xdd6e, - 0xdd6b, 0xb75b, 0xdd6a, 0xb75f, 0xe1d2, 0xb75a, 0xba40, 0xdd71, - 0xe1c4, 0xb758, 0xdd69, 0xdd6d, 0xb9fe, 0xb74f, 0xdd66, 0xdd67, - 0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f, 0xe1c8, 0xe1c9, 0xe1ce, - 0xbc7d, 0xe1d5, 0xba47, 0xba46, 0xe1d0, 0xbc7c, 0xe1c5, 0xba45, - 0xe1d4, 0xba43, 0xba44, 0xe1d1, 0xe5aa, 0xbc7a, 0xb46e, 0xe1d3, - 0xbca3, 0xe1cb, 0xbc7b, 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7, 0xe1cd, - 0xba48, 0xbc79, 0xba42, 0xe57a, 0xe1cf, 0xbca1, 0xbca4, 0xe1cc, - 0xbc7e, 0xe579, 0xe57e, 0xbece, 0xe578, 0xe9a3, 0xe5a9, 0xbca8, - 0xbca6, 0xbecc, 0xe5a6, 0xe5a2, 0xbcac, 0xe978, 0xbcaa, 0xe5a1, - 0xe976, 0xe5a5, 0xe5a8, 0xe57d, 0xbcab, 0xbca5, 0xe977, 0xbecd, - 0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, 0xe57c, 0xe57b, - 0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0xe9a2, 0xe97e, 0xece1, - 0xbed1, 0xe9a1, 0xe97c, 0xc0b4, 0xecdf, 0xe979, 0xe97b, 0xc0b5, - 0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d, 0xbecf, 0xefcf, 0xefc7, - 0xece7, 0xefc8, 0xece3, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2, - 0xece6, 0xefd0, 0xefcc, 0xefce, 0xefc9, 0xefca, 0xefcd, 0xefcb, - 0xc367, 0xc36a, 0xc369, 0xc368, 0xc461, 0xf44a, 0xc462, 0xf241, - 0xc4df, 0xf5cc, 0xc4e0, 0xc574, 0xc5ca, 0xf7d9, 0xf7da, 0xf7db, - 0xf9ba, 0xa4e0, 0xc97c, 0xa5b3, 0xa6a6, 0xa6a7, 0xa6a5, 0xa6a8, - 0xa7da, 0xa7d9, 0xccb1, 0xa9cf, 0xa9ce, 0xd1af, 0xb1ad, 0xb1ae, - 0xb475, 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0xe1d7, - 0xe1d6, 0xba49, 0xe1d8, 0xe5ac, 0xbcae, 0xbed4, 0xc0b8, 0xc257, - 0xc0b9, 0xa4e1, 0xcae6, 0xccb2, 0xa9d1, 0xa9d0, 0xa9d2, 0xabf3, - 0xced2, 0xced3, 0xd1b0, 0xaeb0, 0xb1af, 0xb476, 0xd951, 0xa4e2, - 0xa47e, 0xa4e3, 0xc97d, 0xa5b7, 0xa5b6, 0xa5b4, 0xa5b5, 0xa6ab, - 0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3, 0xc9e4, 0xc9ea, 0xc9e6, 0xc9e8, - 0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7, 0xa7e1, 0xa7ea, 0xa7e8, 0xcaf0, - 0xcaed, 0xcaf5, 0xa7e6, 0xcaf6, 0xa7df, 0xcaf3, 0xa7e5, 0xcaef, - 0xcaee, 0xa7e3, 0xcaf4, 0xa7e4, 0xa9d3, 0xa7de, 0xcaf1, 0xcae7, - 0xa7db, 0xa7ee, 0xcaec, 0xcaf2, 0xa7e0, 0xa7e2, 0xcae8, 0xcae9, - 0xcaea, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc, - 0xa7e9, 0xa9e1, 0xccbe, 0xccb7, 0xa9dc, 0xa9ef, 0xccb3, 0xccba, - 0xccbc, 0xccbf, 0xa9ea, 0xccbb, 0xccb4, 0xa9e8, 0xccb8, 0xccc0, - 0xa9d9, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6, 0xa9d7, 0xa9d8, 0xa9d6, - 0xa9ee, 0xa9e6, 0xa9e0, 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7, - 0xa9f0, 0xced4, 0xa9e4, 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0xa9ec, - 0xa9ed, 0xa9eb, 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0xceda, 0xac41, - 0xabf8, 0xabfa, 0xac40, 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43, - 0xced7, 0xcedf, 0xabfe, 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7, - 0xabfb, 0xac42, 0xaeb3, 0xcee0, 0xabf9, 0xac45, 0xced9, 0xabfc, - 0xaeb2, 0xabf6, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, 0xd1b2, - 0xac44, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0xaec1, 0xd1be, 0xaebf, - 0xaec0, 0xd1b4, 0xd1c4, 0xaeb6, 0xd566, 0xd1c6, 0xd1c0, 0xd1b7, - 0xd1c9, 0xd1ba, 0xaebc, 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0xd1cb, - 0xd1bf, 0xaeb8, 0xd1b8, 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, 0xd1cc, - 0xaebb, 0xd1bc, 0xd1bb, 0xaec3, 0xaec2, 0xaeb4, 0xaeba, 0xaebd, - 0xd1c8, 0xd1c2, 0xaeb7, 0xd1b3, 0xd1ca, 0xd1c1, 0xd1c3, 0xd1c7, - 0xd567, 0xb1b7, 0xb1cb, 0xb1ca, 0xb1bf, 0xd579, 0xd575, 0xd572, - 0xd5a6, 0xb1ba, 0xb1b2, 0xd577, 0xb4a8, 0xb1b6, 0xd5a1, 0xb1cc, - 0xb1c9, 0xd57b, 0xd56a, 0xb1c8, 0xd5a3, 0xd569, 0xb1bd, 0xb1c1, - 0xd5a2, 0xd573, 0xb1c2, 0xb1bc, 0xd568, 0xb478, 0xd5a5, 0xd571, - 0xb1c7, 0xd574, 0xd5a4, 0xb1c6, 0xd952, 0xb1b3, 0xd56f, 0xb1b8, - 0xb1c3, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e, 0xb1b0, 0xb1c4, - 0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0xb1b1, 0xb1c0, 0xb1bb, 0xb1b9, - 0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, 0xd954, 0xd953, 0xd56b, - 0xd964, 0xb47a, 0xd96a, 0xd959, 0xd967, 0xdd77, 0xb47d, 0xd96b, - 0xd96e, 0xb47c, 0xd95c, 0xd96d, 0xd96c, 0xb47e, 0xd955, 0xb479, - 0xb4a3, 0xb4a1, 0xd969, 0xd95f, 0xb4a5, 0xd970, 0xd968, 0xd971, - 0xb4ad, 0xb4ab, 0xd966, 0xd965, 0xd963, 0xd95d, 0xb4a4, 0xb4a2, - 0xd1b9, 0xd956, 0xddb7, 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0xb4a6, - 0xb4a7, 0xd958, 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961, - 0xd95e, 0xb4ae, 0xb770, 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c, - 0xddbb, 0xb769, 0xdd7a, 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e, - 0xb76f, 0xdda5, 0xddb2, 0xddb8, 0xb76a, 0xb764, 0xdda3, 0xdd7d, - 0xddba, 0xdda8, 0xdda9, 0xdd7e, 0xddb4, 0xddab, 0xddb5, 0xddad, - 0xb765, 0xe1d9, 0xb768, 0xb766, 0xddb9, 0xddb0, 0xddac, 0xdda1, - 0xba53, 0xddaf, 0xb76d, 0xdda7, 0xdda6, 0xb767, 0xb763, 0xe1ee, - 0xddb3, 0xddae, 0xdda2, 0xe1e9, 0xe1da, 0xe1e5, 0xe1ec, 0xba51, - 0xb4ac, 0xe1ea, 0xba4c, 0xba4b, 0xe1f1, 0xe1db, 0xe1e8, 0xe1dc, - 0xe1e7, 0xba4f, 0xe1eb, 0xd962, 0xe1f2, 0xe1e3, 0xba52, 0xe5ba, - 0xbcaf, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0, 0xe5ae, 0xe1df, - 0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3, 0xba4e, 0xbcb1, 0xba50, - 0xba55, 0xe1e1, 0xe1ed, 0xe1e6, 0xe5b1, 0xba4a, 0xbcb4, 0xe9aa, - 0xe5b6, 0xe5b5, 0xe5b7, 0xe5b4, 0xbcb5, 0xbcbb, 0xbcb8, 0xbcb9, - 0xe5af, 0xe5b2, 0xe5bc, 0xbcc1, 0xbcbf, 0xe5b3, 0xd95a, 0xbcb2, - 0xe5b9, 0xe5b0, 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0xbcba, - 0xbcbe, 0xbcc0, 0xbcbd, 0xbcbc, 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3, - 0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, 0xbed6, 0xbedd, 0xe9ab, - 0xbedb, 0xbed5, 0xbedc, 0xe9a8, 0xc0bb, 0xbed7, 0xbede, 0xc0ba, - 0xe9a7, 0xe9a6, 0xbee0, 0xbee1, 0xe9a5, 0xe9a4, 0xc0bc, 0xe9ae, - 0xbeda, 0xe9ac, 0xc0bd, 0xc0c2, 0xecea, 0xecec, 0xc0bf, 0xeced, - 0xece9, 0xeceb, 0xc0c0, 0xc0c3, 0xece8, 0xc0be, 0xc0c1, 0xc259, - 0xe9ad, 0xc258, 0xc25e, 0xefd4, 0xc25c, 0xc25d, 0xefd7, 0xefd3, - 0xc25a, 0xefd1, 0xc36b, 0xefd5, 0xefd6, 0xefd2, 0xc25b, 0xf242, - 0xf245, 0xf246, 0xf244, 0xf247, 0xc36c, 0xf243, 0xf44e, 0xc464, - 0xf44d, 0xf44c, 0xf44b, 0xc463, 0xc465, 0xf5cd, 0xc4e2, 0xc4e1, - 0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb, 0xc575, 0xf7dd, 0xf6e2, 0xf7dc, - 0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9, 0xf8ef, 0xa4e4, 0xd972, 0xe9af, - 0xa6ac, 0xcaf7, 0xa7f1, 0xa7ef, 0xa7f0, 0xccc1, 0xa9f1, 0xac46, - 0xcee7, 0xcee8, 0xac47, 0xd1ce, 0xaec4, 0xaec5, 0xd1cd, 0xb1d3, - 0xb1cf, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, 0xb1d4, 0xb1d0, - 0xd976, 0xb1cd, 0xb4af, 0xb4b1, 0xb4b2, 0xd975, 0xd978, 0xb4b0, - 0xd973, 0xd977, 0xd974, 0xb771, 0xddbc, 0xba56, 0xe1f4, 0xbee3, - 0xbcc4, 0xe5bd, 0xbcc5, 0xbcc6, 0xe5bf, 0xe5be, 0xe5c0, 0xe9b1, - 0xe9b0, 0xecef, 0xecee, 0xc0c4, 0xc0c5, 0xf248, 0xa4e5, 0xd979, - 0xb4b4, 0xb4b3, 0xddbd, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, 0xaec6, - 0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, 0xe1f5, 0xba57, 0xe9b2, - 0xa4e7, 0xa5b8, 0xa9f2, 0xccc2, 0xcee9, 0xac48, 0xb1d9, 0xd97c, - 0xb4b5, 0xb773, 0xe5c1, 0xe5c2, 0xecf0, 0xc25f, 0xf8f0, 0xa4e8, - 0xccc3, 0xa9f3, 0xac49, 0xceea, 0xaec7, 0xd1d2, 0xd1d0, 0xd1d1, - 0xaec8, 0xd1cf, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd, 0xb1da, 0xd97d, - 0xd97e, 0xddbe, 0xba59, 0xba58, 0xecf1, 0xefd9, 0xf24a, 0xf249, - 0xf44f, 0xc95e, 0xac4a, 0xa4e9, 0xa5b9, 0xa6ae, 0xa6ad, 0xa6af, - 0xa6b0, 0xc9ee, 0xc9ed, 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9, - 0xcafc, 0xa9f4, 0xccc9, 0xccc5, 0xccce, 0xa9fb, 0xa9f9, 0xccca, - 0xccc6, 0xcccd, 0xa9f8, 0xaa40, 0xccc8, 0xccc4, 0xa9fe, 0xcccb, - 0xa9f7, 0xcccc, 0xa9fa, 0xa9fc, 0xccd0, 0xcccf, 0xccc7, 0xa9f6, - 0xa9f5, 0xa9fd, 0xceef, 0xcef5, 0xac50, 0xac4d, 0xceec, 0xcef1, - 0xac53, 0xac4b, 0xcef0, 0xac4e, 0xac51, 0xcef3, 0xac4c, 0xcef8, - 0xac4f, 0xac52, 0xceed, 0xcef2, 0xcef6, 0xceee, 0xceeb, 0xcef7, - 0xcef4, 0xaed0, 0xaec9, 0xaecc, 0xaecf, 0xd1d5, 0xaeca, 0xd1d3, - 0xaece, 0xaecb, 0xd1d6, 0xaecd, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad, - 0xb1de, 0xb1e3, 0xd1d4, 0xd5aa, 0xd5ae, 0xb1e0, 0xd5a9, 0xb1e2, - 0xb1e1, 0xd9a7, 0xd9a2, 0xb4b6, 0xb4ba, 0xb4b7, 0xd9a5, 0xd9a8, - 0xb4b8, 0xb4b9, 0xb4be, 0xddc7, 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1, - 0xb4bd, 0xd9a4, 0xb779, 0xddbf, 0xb776, 0xb777, 0xb775, 0xddc4, - 0xddc3, 0xddc0, 0xb77b, 0xddc2, 0xb4bb, 0xddc6, 0xddc1, 0xb778, - 0xb774, 0xb77a, 0xddc5, 0xba5c, 0xe1f8, 0xe1f7, 0xe1f6, 0xba5a, - 0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0xbcc7, 0xe5c9, 0xe5c4, 0xbcca, - 0xe5c6, 0xbcc9, 0xe5c3, 0xe5c7, 0xbee9, 0xbee6, 0xe9bb, 0xe9ba, - 0xe9b9, 0xe9b4, 0xe9b5, 0xbee7, 0xbee4, 0xbee8, 0xe9b3, 0xbee5, - 0xe9b6, 0xe9b7, 0xe9bc, 0xe9b8, 0xecf2, 0xc0c7, 0xefdc, 0xc0c6, - 0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0xc36d, 0xf451, 0xf452, - 0xc466, 0xf450, 0xc4e4, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0xa4ea, - 0xa6b1, 0xa6b2, 0xa7f3, 0xccd1, 0xac54, 0xaed1, 0xb1e4, 0xb0d2, - 0xb4bf, 0xb4c0, 0xb3cc, 0xd9a9, 0xb77c, 0xe1fa, 0xe1f9, 0xa4eb, - 0xa6b3, 0xccd2, 0xaa42, 0xaa41, 0xcef9, 0xcefa, 0xd1d7, 0xd1d8, - 0xaed2, 0xaed3, 0xaed4, 0xd5af, 0xb1e6, 0xb4c2, 0xb4c1, 0xddc8, - 0xdf7a, 0xe1fb, 0xe9bd, 0xc261, 0xc467, 0xa4ec, 0xa5bc, 0xa5bd, - 0xa5bb, 0xa5be, 0xa5ba, 0xa6b6, 0xc9f6, 0xa6b5, 0xa6b7, 0xc9f1, - 0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4, 0xcafd, - 0xa7fd, 0xcafe, 0xcb43, 0xa7fc, 0xcb47, 0xcb42, 0xcb45, 0xa7f5, - 0xa7f6, 0xa7f7, 0xa7f8, 0xa840, 0xcb41, 0xa7fa, 0xa841, 0xcb40, - 0xcb46, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, 0xa7fe, 0xaa57, 0xccd4, - 0xaa43, 0xaa4d, 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53, - 0xccd7, 0xaa49, 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4, - 0xaa51, 0xaa4f, 0xcce5, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a, - 0xaa50, 0xaa44, 0xccde, 0xccdd, 0xccd5, 0xaa52, 0xcce1, 0xccd6, - 0xaa55, 0xcce8, 0xaa45, 0xaa4c, 0xccd9, 0xcce2, 0xaa54, 0xaa47, - 0xaa4b, 0xcce0, 0xcf5b, 0xac5c, 0xac69, 0xcf56, 0xcf4c, 0xac62, - 0xcf4a, 0xac5b, 0xcf45, 0xac65, 0xcf52, 0xcefe, 0xcf41, 0xcf44, - 0xcefb, 0xcf51, 0xcf61, 0xac60, 0xcf46, 0xcf58, 0xcefd, 0xcf5f, - 0xcf60, 0xcf63, 0xcf5a, 0xcf4b, 0xcf53, 0xac66, 0xac59, 0xac61, - 0xac6d, 0xac56, 0xac58, 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40, - 0xac6c, 0xac67, 0xcf49, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c, - 0xcf54, 0xac5e, 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f, - 0xcf55, 0xac57, 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d, - 0xcf42, 0xcf5e, 0xcf57, 0xac55, 0xd1ec, 0xaeea, 0xd1ed, 0xd1e1, - 0xaedf, 0xaeeb, 0xd1da, 0xd1e3, 0xd1eb, 0xd1d9, 0xd1f4, 0xaed5, - 0xd1f3, 0xd1ee, 0xd1ef, 0xaedd, 0xaee8, 0xd1e5, 0xd1e6, 0xd1f0, - 0xd1e7, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4, 0xaed6, 0xaeda, - 0xd1f2, 0xd1de, 0xaee6, 0xaee2, 0xaee5, 0xaeec, 0xaedb, 0xaee7, - 0xd1e9, 0xaee9, 0xaed8, 0xaed7, 0xd1db, 0xd1df, 0xaee0, 0xd1f1, - 0xd1e8, 0xd1e0, 0xaee4, 0xaee1, 0xaed9, 0xaedc, 0xd5c4, 0xd5b4, - 0xd5b5, 0xd5b9, 0xd5c8, 0xd5c5, 0xd5be, 0xd5bd, 0xb1ed, 0xd5c1, - 0xd5d0, 0xd5b0, 0xd5d1, 0xd5c3, 0xd5d5, 0xd5c9, 0xb1ec, 0xd5c7, - 0xb1e7, 0xb1fc, 0xb1f2, 0xb1f6, 0xb1f5, 0xd5b1, 0xd5ce, 0xd5d4, - 0xd5cc, 0xd5d3, 0xd5c0, 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7, - 0xd5cb, 0xb1f0, 0xd5ca, 0xd5b3, 0xb1f8, 0xb1fa, 0xd5cd, 0xb1fb, - 0xb1e9, 0xd5ba, 0xd5cf, 0xb1ef, 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7, - 0xd5bb, 0xb1f4, 0xd5b6, 0xb1e8, 0xb1f1, 0xb1ee, 0xd5bf, 0xaede, - 0xd9c0, 0xb1eb, 0xb1f3, 0xd9c3, 0xd9d9, 0xd9ce, 0xb4d6, 0xb4d1, - 0xd9bd, 0xb4d2, 0xd9cd, 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5, - 0xb4c4, 0xd9b3, 0xb4c7, 0xb4c6, 0xb4d7, 0xd9ad, 0xd9cf, 0xd9d0, - 0xb4c9, 0xb4c5, 0xd9bb, 0xb4d0, 0xd9b6, 0xd9d1, 0xb4cc, 0xd9c9, - 0xd9d6, 0xd9b0, 0xd9b5, 0xd9af, 0xb4cb, 0xd9c2, 0xddde, 0xd9b1, - 0xb4cf, 0xd9ba, 0xd9d2, 0xb4ca, 0xd9b7, 0xd9b4, 0xd9c5, 0xb4cd, - 0xb4c3, 0xb4d9, 0xd9c8, 0xd9c7, 0xd9ac, 0xb4c8, 0xd9d4, 0xd9bc, - 0xd9be, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5, 0xd9b2, 0xd9b9, - 0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0xd9cc, 0xd9d8, 0xd9ae, - 0xddf2, 0xb7a6, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0xddec, 0xddcb, - 0xddd2, 0xddea, 0xddf4, 0xdddc, 0xddcf, 0xdde2, 0xdde7, 0xddd3, - 0xdde4, 0xddd0, 0xddd7, 0xddd8, 0xb7a8, 0xddeb, 0xdde9, 0xddcc, - 0xddee, 0xddef, 0xddf1, 0xb7ac, 0xb7a4, 0xd5b8, 0xddd4, 0xdde6, - 0xddd5, 0xb7a1, 0xb7b1, 0xdded, 0xb7af, 0xb7ab, 0xddca, 0xb7a3, - 0xddcd, 0xb7b0, 0xdddd, 0xddc9, 0xb7a9, 0xdde1, 0xddd1, 0xb7aa, - 0xddda, 0xb77e, 0xb4d8, 0xdde3, 0xd9bf, 0xddce, 0xdde8, 0xb7a5, - 0xdde5, 0xb7a2, 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0xb7a7, 0xdec6, - 0xb7ae, 0xe24a, 0xe248, 0xe25e, 0xe246, 0xe258, 0xb77d, 0xba5f, - 0xe242, 0xe25d, 0xe247, 0xe255, 0xba64, 0xba5d, 0xe25b, 0xe240, - 0xe25a, 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, 0xba5e, 0xe24b, - 0xe259, 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, 0xe243, 0xe1fc, - 0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, 0xe253, 0xba66, 0xe245, - 0xe250, 0xe24c, 0xe24e, 0xba60, 0xe25f, 0xba6e, 0xe24f, 0xe262, - 0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256, 0xba69, - 0xba62, 0xe252, 0xe25c, 0xe5d5, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de, - 0xbccd, 0xe5e5, 0xe5d4, 0xbcd8, 0xe5db, 0xe5d0, 0xe5da, 0xbcd5, - 0xe5ee, 0xe5eb, 0xe5dd, 0xe5ce, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8, - 0xe5d3, 0xe5ca, 0xbcce, 0xbcd6, 0xe5e7, 0xbcd7, 0xe5cb, 0xe5ed, - 0xe5e0, 0xe5e6, 0xbcd4, 0xe5e3, 0xe5ea, 0xbcd9, 0xbcd3, 0xe5dc, - 0xe5cf, 0xe5ef, 0xe5cc, 0xe5e8, 0xbcd0, 0xe5d6, 0xe5d7, 0xbccf, - 0xbccc, 0xe5d2, 0xbcd2, 0xbccb, 0xe5e9, 0xe5ec, 0xe5d9, 0xe9ca, - 0xe9c2, 0xe9be, 0xbef6, 0xbeeb, 0xbef0, 0xbeec, 0xe9cc, 0xe9d7, - 0xbeea, 0xe9c4, 0xe9cd, 0xe5df, 0xe9ce, 0xbef1, 0xe9dd, 0xbef5, - 0xbef8, 0xe9c0, 0xbef4, 0xe9db, 0xe9dc, 0xe9d2, 0xe9d1, 0xe9c9, - 0xe9d3, 0xe9da, 0xe9d9, 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0xe9c5, - 0xe9d8, 0xbef7, 0xe9d6, 0xbef3, 0xbef2, 0xe9d0, 0xe9bf, 0xe9c1, - 0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0xe9c6, 0xe9d4, 0xe9c7, 0xc0cf, - 0xed45, 0xc0c8, 0xecf5, 0xed41, 0xc0ca, 0xed48, 0xecfc, 0xecf7, - 0xed49, 0xecf3, 0xecfe, 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9, - 0xed40, 0xecf4, 0xc0d0, 0xed47, 0xecf9, 0xc0cc, 0xecfb, 0xecf8, - 0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46, 0xed42, - 0xc263, 0xefe7, 0xc268, 0xc269, 0xc262, 0xefe6, 0xefe3, 0xefe4, - 0xc266, 0xefde, 0xefe2, 0xc265, 0xefdf, 0xc267, 0xc264, 0xefdd, - 0xefe1, 0xefe5, 0xf251, 0xf24e, 0xf257, 0xf256, 0xf254, 0xf24f, - 0xc372, 0xf250, 0xc371, 0xc0cd, 0xf253, 0xc370, 0xf258, 0xf252, - 0xf24d, 0xefe0, 0xc36f, 0xf24c, 0xf456, 0xf455, 0xf255, 0xc468, - 0xf459, 0xf45a, 0xf454, 0xf458, 0xf453, 0xf5d1, 0xf457, 0xc4e7, - 0xc4e5, 0xf5cf, 0xf5d2, 0xf5ce, 0xf5d0, 0xc4e6, 0xf6e5, 0xf6e6, - 0xc576, 0xf6e4, 0xf7e2, 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0xc656, - 0xf8f3, 0xf8f1, 0xf8f2, 0xf8f4, 0xf9bb, 0xa4ed, 0xa6b8, 0xaa59, - 0xcce9, 0xcf64, 0xd1f5, 0xd1f7, 0xd1f6, 0xd1f8, 0xb1fd, 0xd5d7, - 0xd1f9, 0xd5d6, 0xd5d8, 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd, - 0xb4dc, 0xb4da, 0xd9dc, 0xddfa, 0xddf8, 0xddf7, 0xddf6, 0xddf5, - 0xb7b2, 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb, - 0xbcda, 0xe5f0, 0xe9df, 0xe9de, 0xe9e0, 0xbef9, 0xed4b, 0xc0d3, - 0xefe8, 0xc26a, 0xf259, 0xc577, 0xa4ee, 0xa5bf, 0xa6b9, 0xa842, - 0xaa5a, 0xaa5b, 0xac6e, 0xd1fa, 0xb7b3, 0xe6d1, 0xbefa, 0xc26b, - 0xa4ef, 0xa6ba, 0xcceb, 0xaa5c, 0xccea, 0xcf65, 0xac6f, 0xcf66, - 0xac70, 0xd1fc, 0xaeee, 0xaeed, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db, - 0xd5da, 0xd9de, 0xd9e1, 0xb4de, 0xd9df, 0xb4dd, 0xd9e0, 0xddfb, - 0xe266, 0xe267, 0xe268, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4, - 0xe9e1, 0xe9e2, 0xe9e3, 0xed4c, 0xc0d4, 0xc26c, 0xf25a, 0xc4e8, - 0xc95f, 0xac71, 0xcf67, 0xaeef, 0xb1fe, 0xb4df, 0xd9e2, 0xb7b5, - 0xb7b4, 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, 0xe9e4, 0xefe9, - 0xf7e3, 0xa4f0, 0xc960, 0xa5c0, 0xa843, 0xcb48, 0xac72, 0xb7b6, - 0xa4f1, 0xcf68, 0xac73, 0xcf69, 0xc0d5, 0xa4f2, 0xccec, 0xcf6a, - 0xd242, 0xd241, 0xd1fe, 0xd1fd, 0xd243, 0xd240, 0xb240, 0xb241, - 0xb4e0, 0xd9e3, 0xd9e4, 0xd9e5, 0xde41, 0xde42, 0xde40, 0xddfd, - 0xddfe, 0xb7b7, 0xe26b, 0xe5f7, 0xe5f6, 0xe5f5, 0xe5f8, 0xe9e7, - 0xe9e6, 0xbefb, 0xe9e8, 0xc0d6, 0xed4d, 0xefea, 0xf25b, 0xf6e7, - 0xa4f3, 0xa5c2, 0xa5c1, 0xaa5d, 0xc961, 0xc97e, 0xa6bb, 0xc9f7, - 0xcb49, 0xcb4a, 0xaa5e, 0xcced, 0xac74, 0xcf6b, 0xcf6c, 0xaef0, - 0xaef4, 0xd244, 0xaef3, 0xaef1, 0xaef2, 0xd5df, 0xb242, 0xb4e3, - 0xb4e1, 0xb4e2, 0xd9e6, 0xba72, 0xa4f4, 0xc9a1, 0xa5c3, 0xc9a4, - 0xa5c6, 0xc9a3, 0xa5c5, 0xa5c4, 0xa844, 0xc9a2, 0xc9f8, 0xc9fc, - 0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb, 0xa6c1, 0xc9f9, 0xc9fd, - 0xa6c2, 0xa6bd, 0xa6be, 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf, - 0xa6c0, 0xa6c3, 0xcb5b, 0xcb59, 0xcb4c, 0xa851, 0xcb53, 0xa84c, - 0xcb4d, 0xcb55, 0xcb52, 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858, - 0xa85a, 0xcb4b, 0xa84d, 0xcb5c, 0xa854, 0xa857, 0xcd45, 0xa847, - 0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, 0xa848, 0xa849, - 0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, 0xa84e, 0xa853, - 0xccee, 0xa85c, 0xcb57, 0xa852, 0xa85d, 0xa846, 0xcb54, 0xa84b, - 0xcb58, 0xcd44, 0xaa6a, 0xaa7a, 0xccf5, 0xaa71, 0xcd4b, 0xaa62, - 0xaa65, 0xcd42, 0xccf3, 0xccf7, 0xaa6d, 0xaa6f, 0xccfa, 0xaa76, - 0xaa68, 0xaa66, 0xaa67, 0xaa75, 0xcd47, 0xaa70, 0xccf9, 0xccfb, - 0xaa6e, 0xaa73, 0xccfc, 0xcd4a, 0xac75, 0xaa79, 0xaa63, 0xcd49, - 0xcd4d, 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d, - 0xaa72, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0xaa7e, - 0xaa77, 0xaa69, 0xaa5f, 0xaa64, 0xccf6, 0xaa60, 0xcd4e, 0xccf0, - 0xccef, 0xccfd, 0xccf1, 0xaa7b, 0xaef5, 0xaa74, 0xccfe, 0xaa61, - 0xaca6, 0xcd4c, 0xcf7c, 0xcfa1, 0xcfa4, 0xcf77, 0xcfa7, 0xcfaa, - 0xcfac, 0xcf74, 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, 0xcfad, - 0xcf7b, 0xcf73, 0xd264, 0xac7e, 0xcfa2, 0xcf78, 0xcf7a, 0xaca5, - 0xcf7d, 0xac7d, 0xcf70, 0xcfa8, 0xcfab, 0xac7a, 0xaca8, 0xcf6d, - 0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, 0xcd48, - 0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, 0xaca9, - 0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, 0xcfa6, - 0xac79, 0xcf7e, 0xd24c, 0xaefd, 0xaf43, 0xd255, 0xd25b, 0xd257, - 0xd24a, 0xd24d, 0xd246, 0xd247, 0xaf4a, 0xaefa, 0xd256, 0xd25f, - 0xaf45, 0xaef6, 0xaf40, 0xd24e, 0xaf42, 0xd24f, 0xd259, 0xaf44, - 0xd268, 0xd248, 0xaefc, 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a, - 0xd267, 0xd261, 0xd253, 0xd262, 0xd25c, 0xd265, 0xd263, 0xaf49, - 0xd254, 0xaef9, 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251, - 0xb243, 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0xd258, - 0xd25d, 0xb265, 0xd5e1, 0xd5e5, 0xb252, 0xb250, 0xb247, 0xd5e3, - 0xd5e2, 0xb25b, 0xd5e8, 0xb255, 0xd5fa, 0xd647, 0xb244, 0xd5f7, - 0xd5f0, 0xb267, 0xd5e0, 0xd5fc, 0xb264, 0xb258, 0xb263, 0xb24e, - 0xd5ec, 0xd5fe, 0xd5f6, 0xb24f, 0xb249, 0xd645, 0xd5fd, 0xd640, - 0xb251, 0xb259, 0xd642, 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, 0xb25e, - 0xb246, 0xb25c, 0xd5f4, 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, 0xd5ed, - 0xb248, 0xd5e7, 0xd646, 0xb24a, 0xd5f1, 0xb268, 0xb262, 0xd5e6, - 0xb25f, 0xb25d, 0xb266, 0xd5f8, 0xb261, 0xd252, 0xd5f9, 0xb260, - 0xd641, 0xb245, 0xd5f5, 0xb257, 0xd5e9, 0xb256, 0xb254, 0xb24c, - 0xb24b, 0xd9e7, 0xd643, 0xd5eb, 0xd9fc, 0xb24d, 0xb541, 0xb25a, - 0xb4ee, 0xd9f6, 0xb4fc, 0xd9ea, 0xb4eb, 0xb4e7, 0xda49, 0xb4ed, - 0xb4f1, 0xb4ec, 0xb4f5, 0xda4d, 0xda44, 0xd9f1, 0xb4fa, 0xb4f4, - 0xd9fd, 0xb4e4, 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55, - 0xda56, 0xb4e5, 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd, - 0xd9f2, 0xd9f9, 0xd9f3, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9, - 0xd9eb, 0xb4ea, 0xd9f8, 0xb4f8, 0xb542, 0xd9fa, 0xda53, 0xda4b, - 0xb4e6, 0xda51, 0xb4f2, 0xb4f0, 0xda57, 0xb4ef, 0xda41, 0xd9f4, - 0xd9fe, 0xb547, 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f, 0xda4c, - 0xda54, 0xb4e9, 0xda40, 0xb546, 0xda47, 0xb4f3, 0xb4f6, 0xda46, - 0xb545, 0xd9f5, 0xd5e4, 0xda50, 0xda4e, 0xda52, 0xd9ec, 0xb540, - 0xde61, 0xde60, 0xde46, 0xb7bd, 0xde5f, 0xde49, 0xde4a, 0xb7c7, - 0xde68, 0xb7c2, 0xde5e, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48, - 0xde4b, 0xde63, 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc, - 0xb7cb, 0xb7c5, 0xde69, 0xb7b9, 0xde55, 0xde4c, 0xde59, 0xde65, - 0xb7cd, 0xb7bb, 0xde54, 0xde4d, 0xb7c4, 0xb7c3, 0xde50, 0xde5a, - 0xde64, 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0, 0xde4e, - 0xb7bf, 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56, 0xe26c, - 0xde58, 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0, 0xde44, - 0xde5d, 0xde5c, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, 0xe26e, - 0xbaaf, 0xba77, 0xe26d, 0xe2b0, 0xbab1, 0xe271, 0xe2a3, 0xe273, - 0xe2b3, 0xe2af, 0xba75, 0xbaa1, 0xe653, 0xbaae, 0xba7d, 0xe26f, - 0xe2ae, 0xbaa3, 0xe2ab, 0xe2b8, 0xe275, 0xe27e, 0xe2b6, 0xe2ac, - 0xba7c, 0xe27c, 0xba76, 0xba74, 0xbaa8, 0xe27a, 0xe277, 0xe278, - 0xe2b2, 0xe2b7, 0xe2b5, 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0xe270, - 0xe5fa, 0xe279, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274, - 0xbaaa, 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0xe2a9, 0xe2a1, 0xe272, - 0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0xba79, 0xbcdf, 0xe2a6, - 0xe5f9, 0xe2ad, 0xe276, 0xe644, 0xe64e, 0xbce2, 0xe64d, 0xe659, - 0xbce4, 0xe64b, 0xe64f, 0xbcef, 0xe646, 0xbce7, 0xe652, 0xe9f0, - 0xbcf3, 0xbcf2, 0xe654, 0xe643, 0xe65e, 0xbced, 0xbce3, 0xe657, - 0xe65b, 0xe660, 0xe655, 0xe649, 0xbce6, 0xbce9, 0xbcf1, 0xbcec, - 0xe64c, 0xe2a2, 0xe648, 0xe65f, 0xbce8, 0xbceb, 0xe661, 0xbce0, - 0xe656, 0xe5fb, 0xe65c, 0xc0df, 0xe64a, 0xbce1, 0xe645, 0xbce5, - 0xe5fc, 0xbaab, 0xe641, 0xe65a, 0xe642, 0xe640, 0xbcea, 0xe658, - 0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, 0xe9f3, 0xbf49, - 0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48, 0xbf43, 0xe9f5, - 0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8, 0xea44, 0xea46, - 0xbefd, 0xea45, 0xbf44, 0xbf4a, 0xbf47, 0xe9fe, 0xbf46, 0xe9f9, - 0xe9ed, 0xe9f2, 0xe9fd, 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1, - 0xe5fd, 0xe9ec, 0xe9ef, 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43, - 0xe9ee, 0xe9fc, 0xed51, 0xc0e3, 0xc0d7, 0xc0db, 0xed53, 0xed59, - 0xed57, 0xc0d9, 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0xed56, - 0xed55, 0xed5b, 0xc0e2, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de, - 0xc0e5, 0xc0d8, 0xed58, 0xed50, 0xeff7, 0xc271, 0xeff4, 0xeff6, - 0xc26f, 0xeff2, 0xeff3, 0xefee, 0xe9f6, 0xefef, 0xc270, 0xefeb, - 0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed, 0xeff1, 0xc273, 0xc272, - 0xeff0, 0xc378, 0xf25f, 0xf265, 0xc379, 0xf25c, 0xc376, 0xc373, - 0xf267, 0xc377, 0xc374, 0xf25e, 0xf261, 0xf262, 0xf263, 0xf266, - 0xeff5, 0xf25d, 0xc375, 0xf264, 0xf268, 0xf260, 0xf45d, 0xc46a, - 0xf460, 0xc46b, 0xf468, 0xf45f, 0xf45c, 0xf45e, 0xf462, 0xf465, - 0xf464, 0xf467, 0xf45b, 0xc469, 0xf463, 0xf466, 0xf469, 0xf461, - 0xf5d3, 0xf5d4, 0xf5d8, 0xf5d9, 0xf5d6, 0xf5d7, 0xf5d5, 0xc4e9, - 0xc578, 0xf6eb, 0xf6e8, 0xf6e9, 0xf6ea, 0xc579, 0xf7e5, 0xf7e4, - 0xf8af, 0xc5f4, 0xf8ad, 0xf8b0, 0xf8ae, 0xf8f5, 0xc657, 0xc665, - 0xf9a3, 0xf96c, 0xf9a2, 0xf9d0, 0xf9d1, 0xa4f5, 0xa6c7, 0xca41, - 0xcb5e, 0xa85f, 0xa862, 0xcb5f, 0xa860, 0xa861, 0xcd58, 0xcd5a, - 0xcd55, 0xcd52, 0xcd54, 0xaaa4, 0xaaa2, 0xcd56, 0xaaa3, 0xcd53, - 0xcd50, 0xaaa1, 0xcd57, 0xcd51, 0xaaa5, 0xcd59, 0xcfaf, 0xcfb3, - 0xacb7, 0xcfb6, 0xacaf, 0xacb2, 0xacb4, 0xacb6, 0xacb3, 0xcfb2, - 0xcfb1, 0xacb1, 0xcfb4, 0xcfb5, 0xcfae, 0xacb5, 0xacb0, 0xcfb0, - 0xd277, 0xd278, 0xd279, 0xaf50, 0xaf4c, 0xd26e, 0xd276, 0xd27b, - 0xaf51, 0xd26c, 0xd272, 0xd26b, 0xd275, 0xd271, 0xaf4d, 0xaf4f, - 0xd27a, 0xd26a, 0xd26d, 0xd273, 0xd274, 0xd27c, 0xd270, 0xaf4e, - 0xb26d, 0xd64e, 0xd650, 0xd64c, 0xd658, 0xd64a, 0xd657, 0xb269, - 0xd648, 0xda5b, 0xd652, 0xb26c, 0xd653, 0xd656, 0xd65a, 0xd64f, - 0xd654, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649, 0xd65b, 0xd651, - 0xd655, 0xd64b, 0xb548, 0xb549, 0xda65, 0xb54f, 0xda59, 0xda62, - 0xda58, 0xb54c, 0xda60, 0xda5e, 0xda5f, 0xb54a, 0xda63, 0xda5c, - 0xda5a, 0xb54b, 0xda5d, 0xda61, 0xb54d, 0xda64, 0xde70, 0xde77, - 0xde79, 0xdea1, 0xb7da, 0xde6b, 0xb7d2, 0xde7a, 0xb7d7, 0xdea2, - 0xb7ce, 0xde7d, 0xde6d, 0xde7e, 0xde6c, 0xb7dc, 0xde78, 0xb7cf, - 0xdea3, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, 0xde6f, 0xde76, 0xde72, - 0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, 0xb7db, 0xb7d0, 0xde75, - 0xb7d5, 0xb54e, 0xde7b, 0xde73, 0xde74, 0xe2c1, 0xbab4, 0xe2bd, - 0xe2c3, 0xe2bf, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, 0xe2bc, 0xbab5, - 0xe2c0, 0xe2bb, 0xbab7, 0xbab2, 0xe2c4, 0xbab3, 0xe667, 0xe664, - 0xe670, 0xe66a, 0xe66c, 0xbcf4, 0xe666, 0xe66e, 0xe66d, 0xe66b, - 0xe671, 0xbcf7, 0xe668, 0xe66f, 0xbcf5, 0xe663, 0xe665, 0xbcf6, - 0xe662, 0xe672, 0xe669, 0xea4a, 0xbf51, 0xea55, 0xea53, 0xbf4b, - 0xea49, 0xea4c, 0xea4d, 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56, - 0xea51, 0xbf4f, 0xbf4c, 0xea50, 0xea4e, 0xbf52, 0xea52, 0xbf4d, - 0xbf4e, 0xea4f, 0xbf50, 0xea4b, 0xea54, 0xbf53, 0xea57, 0xea58, - 0xbf54, 0xc0e7, 0xc0ee, 0xed5c, 0xed62, 0xed60, 0xc0ea, 0xc0e9, - 0xc0e6, 0xed5e, 0xc0ec, 0xc0eb, 0xc0e8, 0xed61, 0xed5d, 0xed5f, - 0xc0ed, 0xc277, 0xeffb, 0xc274, 0xc275, 0xeffd, 0xc276, 0xeffa, - 0xeff9, 0xf26c, 0xeffc, 0xf26d, 0xc37a, 0xf26b, 0xf26a, 0xf269, - 0xc37b, 0xc46c, 0xf46a, 0xf46b, 0xf5dc, 0xf5db, 0xc4ea, 0xf5da, - 0xf6ec, 0xf6ed, 0xf7e6, 0xf8b1, 0xf8f6, 0xf9bc, 0xc679, 0xf9c6, - 0xa4f6, 0xaaa6, 0xaaa7, 0xacb8, 0xc0ef, 0xa4f7, 0xaaa8, 0xaf52, - 0xb7dd, 0xa4f8, 0xb26e, 0xbab8, 0xc962, 0xcfb7, 0xd27d, 0xe2c5, - 0xc0f0, 0xa4f9, 0xaaa9, 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0xdea4, - 0xb7de, 0xe2c6, 0xbcf8, 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0xa6c9, - 0xca42, 0xa6c8, 0xa865, 0xa864, 0xa863, 0xcb60, 0xaaaa, 0xaaab, - 0xcd5b, 0xcfba, 0xcfbd, 0xacba, 0xcfbb, 0xacb9, 0xcfbc, 0xacbb, - 0xd2a2, 0xd2a1, 0xd27e, 0xaf53, 0xd65d, 0xd65e, 0xb26f, 0xd65c, - 0xd65f, 0xb552, 0xb270, 0xb551, 0xda6b, 0xda6a, 0xda68, 0xda69, - 0xda6c, 0xdea6, 0xdea5, 0xdea9, 0xdea8, 0xdea7, 0xbab9, 0xe2c9, - 0xe2c8, 0xbaba, 0xe2c7, 0xe673, 0xe674, 0xbcf9, 0xea59, 0xea5a, - 0xf272, 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, 0xf46c, - 0xf6ee, 0xf8f7, 0xa4fc, 0xc9a5, 0xa5c7, 0xc9a6, 0xca43, 0xca44, - 0xcb66, 0xcb62, 0xcb61, 0xaaac, 0xcb65, 0xa867, 0xcb63, 0xa866, - 0xcb67, 0xcb64, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0xaaad, 0xaab0, - 0xcd65, 0xcd61, 0xcd62, 0xcd5c, 0xaaaf, 0xcd5e, 0xaaae, 0xcd63, - 0xcd60, 0xcfc2, 0xacbd, 0xacbe, 0xcfc5, 0xcfbf, 0xcfc4, 0xcfc0, - 0xacbc, 0xcfc3, 0xcfc1, 0xd2a8, 0xd2a5, 0xd2a7, 0xaf58, 0xaf57, - 0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56, 0xd2a6, 0xd667, 0xd2a3, - 0xd2aa, 0xd662, 0xd666, 0xd665, 0xda6e, 0xda79, 0xd668, 0xd663, - 0xda6d, 0xb274, 0xb273, 0xd661, 0xd664, 0xb275, 0xb272, 0xb271, - 0xd660, 0xd669, 0xda70, 0xda77, 0xb554, 0xda76, 0xda73, 0xb556, - 0xda75, 0xda6f, 0xda71, 0xda74, 0xda72, 0xb555, 0xda78, 0xb553, - 0xb7df, 0xdead, 0xdeac, 0xdeaa, 0xb7e2, 0xb7e1, 0xdeae, 0xdeab, - 0xe2ca, 0xbabb, 0xb7e0, 0xdeb0, 0xdeaf, 0xe2cd, 0xe2cb, 0xbcfa, - 0xbabc, 0xe2cc, 0xe676, 0xbcfb, 0xe675, 0xe67e, 0xe67d, 0xe67b, - 0xe67a, 0xe677, 0xe678, 0xe679, 0xe67c, 0xe6a1, 0xea5f, 0xea5c, - 0xea5d, 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0xed64, 0xed65, - 0xc0f1, 0xc0f2, 0xed63, 0xc279, 0xeffe, 0xc278, 0xc37e, 0xc3a1, - 0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, 0xc57a, 0xf7e8, 0xf7e7, - 0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, 0xd66a, 0xa5c9, 0xc9a7, - 0xa4fd, 0xca45, 0xcb6c, 0xcb6a, 0xcb6b, 0xcb68, 0xa868, 0xcb69, - 0xcd6d, 0xaab3, 0xcd6b, 0xcd67, 0xcd6a, 0xcd66, 0xaab5, 0xcd69, - 0xaab2, 0xaab1, 0xaab4, 0xcd6c, 0xcd68, 0xacc2, 0xacc5, 0xcfce, - 0xcfcd, 0xcfcc, 0xacbf, 0xcfd5, 0xcfcb, 0xacc1, 0xd2af, 0xcfd2, - 0xcfd0, 0xacc4, 0xcfc8, 0xcfd3, 0xcfca, 0xcfd4, 0xcfd1, 0xcfc9, - 0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0xd2b4, 0xd2ab, 0xd2b6, 0xd2ae, - 0xd2b9, 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f, - 0xaf5d, 0xd2b1, 0xd2ad, 0xd2b0, 0xd2bb, 0xd2b2, 0xaf5e, 0xcfcf, - 0xaf5a, 0xaf5c, 0xd678, 0xd66d, 0xd66b, 0xd66c, 0xd673, 0xd674, - 0xd670, 0xb27b, 0xd675, 0xd672, 0xd66f, 0xb279, 0xd66e, 0xb277, - 0xb27a, 0xd671, 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676, 0xb27c, - 0xda7e, 0xdaa1, 0xb560, 0xdaa7, 0xdaa9, 0xdaa2, 0xb55a, 0xdaa6, - 0xdaa5, 0xb55b, 0xb561, 0xb562, 0xdaa8, 0xb558, 0xda7d, 0xda7b, - 0xdaa3, 0xda7a, 0xb55f, 0xda7c, 0xdaa4, 0xdaaa, 0xb559, 0xb55e, - 0xb55c, 0xb55d, 0xb557, 0xb7e9, 0xdeb7, 0xb7e8, 0xdebb, 0xdeb1, - 0xdebc, 0xdeb2, 0xdeb3, 0xdebd, 0xdeba, 0xdeb8, 0xdeb9, 0xdeb5, - 0xdeb4, 0xdebe, 0xb7e5, 0xdeb6, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec, - 0xb7e7, 0xb7e6, 0xe2ce, 0xbabe, 0xbabd, 0xe2d3, 0xbcfc, 0xbabf, - 0xbac1, 0xe2d4, 0xb7e3, 0xbac0, 0xe2d0, 0xe2d2, 0xe2cf, 0xe2d1, - 0xe6ab, 0xe6aa, 0xe6a7, 0xbd40, 0xea62, 0xbd41, 0xe6a6, 0xbcfe, - 0xe6a8, 0xe6a5, 0xe6a2, 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0xed69, - 0xea66, 0xea65, 0xea67, 0xed66, 0xbf5a, 0xea63, 0xbf58, 0xbf5c, - 0xbf5b, 0xea64, 0xea68, 0xbf59, 0xed6d, 0xc0f5, 0xc27a, 0xc0f6, - 0xc0f3, 0xed6a, 0xed68, 0xed6b, 0xed6e, 0xc0f4, 0xed6c, 0xed67, - 0xf042, 0xf045, 0xf275, 0xf040, 0xf46f, 0xf046, 0xc3a2, 0xf044, - 0xc27b, 0xf041, 0xf043, 0xf047, 0xf276, 0xf274, 0xc3a3, 0xf273, - 0xc46e, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, 0xf6f0, 0xf6f2, 0xc5d0, - 0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, 0xb27d, 0xdebf, 0xbf5d, - 0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0xcd6f, 0xa260, 0xcfd7, 0xcfd8, - 0xd2be, 0xd2bf, 0xb27e, 0xb2a1, 0xdaab, 0xdec2, 0xdec1, 0xdec0, - 0xe2d5, 0xe2d6, 0xe2d7, 0xbac2, 0xe6ad, 0xe6ac, 0xea69, 0xbf5e, - 0xbf5f, 0xed72, 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048, 0xc27c, - 0xf277, 0xf5de, 0xa5cc, 0xacc6, 0xb2a2, 0xdec3, 0xa5cd, 0xd2c0, - 0xb2a3, 0xb563, 0xb564, 0xa5ce, 0xa5cf, 0xca46, 0xa86a, 0xa869, - 0xacc7, 0xcfd9, 0xdaac, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa86b, - 0xa86c, 0xcb6e, 0xcb6d, 0xaab6, 0xcd72, 0xcd70, 0xcd71, 0xcfda, - 0xcfdb, 0xaccb, 0xacc9, 0xacca, 0xacc8, 0xaf60, 0xaf64, 0xaf63, - 0xd2c1, 0xaf62, 0xaf61, 0xd2c2, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4, - 0xb2a5, 0xb566, 0xb565, 0xdaae, 0xdaad, 0xb2a7, 0xb7ed, 0xdec5, - 0xb7ee, 0xdec4, 0xe2d8, 0xe6ae, 0xbd42, 0xea6a, 0xed73, 0xc3a6, - 0xc3a5, 0xc57c, 0xa5d4, 0xcd73, 0xb2a8, 0xe2d9, 0xbac3, 0xcb6f, - 0xcb70, 0xcd74, 0xaab8, 0xaab9, 0xaab7, 0xaccf, 0xacd0, 0xaccd, - 0xacce, 0xcfdc, 0xcfdd, 0xaccc, 0xd2c3, 0xaf68, 0xaf69, 0xb2ab, - 0xd2c9, 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b, 0xaf6a, 0xaf65, - 0xd2c8, 0xd2c7, 0xd2c4, 0xaf6d, 0xd2c6, 0xaf66, 0xaf67, 0xb2ac, - 0xd6a1, 0xd6a2, 0xb2ad, 0xd67c, 0xd67e, 0xd6a4, 0xd6a3, 0xd67d, - 0xb2a9, 0xb2aa, 0xdab6, 0xb56b, 0xb56a, 0xdab0, 0xb568, 0xdab3, - 0xb56c, 0xdab4, 0xb56d, 0xdab1, 0xb567, 0xb569, 0xdab5, 0xdab2, - 0xdaaf, 0xded2, 0xdec7, 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6, - 0xded3, 0xded1, 0xdeca, 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc, - 0xded4, 0xdecb, 0xb7f5, 0xb7ef, 0xb7f1, 0xdec9, 0xe2db, 0xbac7, - 0xe2df, 0xbac6, 0xe2dc, 0xbac5, 0xdec8, 0xdecf, 0xe2de, 0xbac8, - 0xe2e0, 0xe2dd, 0xe2da, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2, - 0xe6b0, 0xbd45, 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af, - 0xbd47, 0xbac4, 0xe6b6, 0xbd44, 0xea6c, 0xea6b, 0xea73, 0xea6d, - 0xea72, 0xea6f, 0xbf60, 0xea71, 0xbf61, 0xbf62, 0xea70, 0xea6e, - 0xc0f8, 0xed74, 0xc0f7, 0xed77, 0xed75, 0xed76, 0xc0f9, 0xf04d, - 0xc2a1, 0xf04e, 0xc27d, 0xf04f, 0xc27e, 0xf04c, 0xf050, 0xf04a, - 0xc3a7, 0xf278, 0xc3a8, 0xc46f, 0xf04b, 0xc470, 0xc4ee, 0xf5df, - 0xc57e, 0xf6f4, 0xc57d, 0xf7ea, 0xc5f5, 0xc5f6, 0xf9cc, 0xacd1, - 0xcfde, 0xb56e, 0xb56f, 0xa5d5, 0xa6ca, 0xca47, 0xcb71, 0xa86d, - 0xaaba, 0xacd2, 0xacd3, 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0xb2ae, - 0xd6a5, 0xdab8, 0xb571, 0xdab7, 0xb570, 0xded5, 0xbd4a, 0xe6bb, - 0xe6b8, 0xe6b9, 0xe6ba, 0xed78, 0xf051, 0xf471, 0xf470, 0xf6f5, - 0xa5d6, 0xcd75, 0xaf70, 0xb572, 0xded6, 0xe2e1, 0xbd4b, 0xea74, - 0xf052, 0xf472, 0xa5d7, 0xaabb, 0xacd7, 0xcfdf, 0xacd8, 0xacd6, - 0xacd5, 0xd2cc, 0xaf71, 0xaf72, 0xaf73, 0xb2b0, 0xd6a7, 0xb2af, - 0xdab9, 0xb2b1, 0xb573, 0xded7, 0xb7f8, 0xb7f9, 0xbac9, 0xbaca, - 0xbd4c, 0xbf64, 0xea75, 0xbf63, 0xed79, 0xc0fa, 0xf053, 0xf473, - 0xa5d8, 0xa86e, 0xcd78, 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79, - 0xcfe5, 0xacdb, 0xacda, 0xcfe7, 0xcfe6, 0xacdf, 0xacde, 0xacd9, - 0xcfe1, 0xcfe2, 0xcfe3, 0xace0, 0xcfe0, 0xacdc, 0xcfe4, 0xacdd, - 0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2ce, - 0xd2cd, 0xaf75, 0xaf76, 0xd2d7, 0xd2d2, 0xd6b0, 0xd2d8, 0xaf77, - 0xaf74, 0xd6aa, 0xd6a9, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2, - 0xb2b5, 0xb2b2, 0xb2b6, 0xd6a8, 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af, - 0xb2b3, 0xdabc, 0xdabe, 0xdaba, 0xdabb, 0xdabf, 0xdac1, 0xdac2, - 0xdabd, 0xdac0, 0xb574, 0xdedb, 0xdee0, 0xded8, 0xdedc, 0xdee1, - 0xdedd, 0xb7fa, 0xb843, 0xb7fd, 0xded9, 0xdeda, 0xbace, 0xb846, - 0xb7fe, 0xb844, 0xb7fc, 0xdedf, 0xb845, 0xdede, 0xb841, 0xb7fb, - 0xb842, 0xdee2, 0xe2e6, 0xe2e8, 0xb840, 0xe2e3, 0xbacc, 0xe2e9, - 0xbacd, 0xe2e7, 0xe2e2, 0xe2e5, 0xe2ea, 0xbacb, 0xe2e4, 0xbd4e, - 0xe6bf, 0xe6be, 0xbd51, 0xbd4f, 0xe6bc, 0xbd4d, 0xe6bd, 0xbd50, - 0xea7d, 0xeaa1, 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66, - 0xbf67, 0xbf65, 0xea78, 0xea7b, 0xea7c, 0xbf68, 0xc140, 0xeda3, - 0xc0fc, 0xed7b, 0xc0fe, 0xc141, 0xc0fd, 0xeda2, 0xed7c, 0xc0fb, - 0xeda1, 0xed7a, 0xed7e, 0xed7d, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2, - 0xc2a3, 0xf054, 0xf27b, 0xc3a9, 0xf279, 0xf27a, 0xf474, 0xf477, - 0xf475, 0xf476, 0xf5e0, 0xc4ef, 0xf7eb, 0xf8b4, 0xc5f7, 0xf8f8, - 0xf8f9, 0xc666, 0xa5d9, 0xace1, 0xdac3, 0xdee3, 0xa5da, 0xa86f, - 0xaabe, 0xcfe8, 0xcfe9, 0xaf78, 0xdac4, 0xb575, 0xb847, 0xc142, - 0xeda4, 0xf27c, 0xf478, 0xa5db, 0xcda1, 0xcd7a, 0xcd7c, 0xcd7e, - 0xcd7d, 0xcd7b, 0xaabf, 0xace2, 0xcff2, 0xcfed, 0xcfea, 0xcff1, - 0xace4, 0xace5, 0xcff0, 0xcfef, 0xcfee, 0xcfeb, 0xcfec, 0xcff3, - 0xace3, 0xaf7c, 0xafa4, 0xafa3, 0xd2e1, 0xd2db, 0xd2d9, 0xafa1, - 0xd6b9, 0xaf7a, 0xd2de, 0xd2e2, 0xd2e4, 0xd2e0, 0xd2da, 0xafa2, - 0xd2df, 0xd2dd, 0xaf79, 0xd2e5, 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc, - 0xaf7e, 0xaf7b, 0xb2b9, 0xd6ba, 0xd6b3, 0xd6b5, 0xd6b7, 0xd6b8, - 0xd6b6, 0xb2ba, 0xd6bb, 0xd6b4, 0xdac8, 0xb576, 0xdad0, 0xdac5, - 0xdad1, 0xdac6, 0xdac7, 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577, - 0xdac9, 0xdacc, 0xb578, 0xdacd, 0xdaca, 0xdeee, 0xdef2, 0xb84e, - 0xe2f0, 0xb851, 0xdef0, 0xdeed, 0xdee8, 0xdeea, 0xdeeb, 0xdee4, - 0xb84d, 0xb84c, 0xb848, 0xdee7, 0xb84f, 0xb850, 0xdee6, 0xdee9, - 0xdef1, 0xb84a, 0xb84b, 0xdeef, 0xdee5, 0xe2f2, 0xbad0, 0xe2f4, - 0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3, 0xbad1, 0xe2ef, 0xbad3, - 0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0xb849, 0xe2eb, 0xbad2, 0xe2ed, - 0xbd54, 0xe6c1, 0xbd58, 0xbd56, 0xbacf, 0xe6c8, 0xe6c9, 0xbd53, - 0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5, 0xe6c2, - 0xbd59, 0xe6c4, 0xe6c6, 0xbd57, 0xbf6a, 0xeaa8, 0xeaa2, 0xeaa6, - 0xeaac, 0xeaad, 0xeaa9, 0xeaaa, 0xeaa7, 0xeaa4, 0xbf6c, 0xbf69, - 0xeaa3, 0xeaa5, 0xbf6b, 0xeaab, 0xc146, 0xedaa, 0xeda5, 0xc145, - 0xc143, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6, 0xedad, 0xf056, - 0xc147, 0xeda7, 0xedae, 0xedab, 0xf05a, 0xf057, 0xc2a6, 0xf05b, - 0xf05d, 0xf05c, 0xf058, 0xf059, 0xf2a3, 0xc3aa, 0xf27e, 0xf2a2, - 0xf27d, 0xf2a4, 0xf2a1, 0xf47a, 0xf47d, 0xf479, 0xc471, 0xf47b, - 0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473, 0xf5e1, 0xf5e3, 0xf5e2, - 0xf6f6, 0xf8b5, 0xf8fa, 0xa5dc, 0xcb72, 0xaac0, 0xcda3, 0xaac1, - 0xaac2, 0xcda2, 0xcff8, 0xcff7, 0xace6, 0xace9, 0xace8, 0xace7, - 0xcff4, 0xcff6, 0xcff5, 0xd2e8, 0xafa7, 0xd2ec, 0xd2eb, 0xd2ea, - 0xd2e6, 0xafa6, 0xafaa, 0xafad, 0xafae, 0xd2e7, 0xd2e9, 0xafac, - 0xafab, 0xafa9, 0xafa8, 0xd6c2, 0xd6c0, 0xd6bc, 0xb2bb, 0xd6bd, - 0xb2bc, 0xd6be, 0xd6bf, 0xd6c1, 0xb2bd, 0xdad5, 0xdad4, 0xdad3, - 0xdad2, 0xdef6, 0xb852, 0xdef3, 0xdef5, 0xb853, 0xb854, 0xdef4, - 0xe341, 0xe2f9, 0xe2fa, 0xbad7, 0xbad5, 0xbad6, 0xe343, 0xe342, - 0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb, 0xe340, 0xe2f8, 0xe6cb, 0xe6d0, - 0xe6ce, 0xe6cd, 0xe6cc, 0xe6cf, 0xeaae, 0xbf6d, 0xc148, 0xedb0, - 0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0xf2a5, 0xc3ab, 0xf4a1, - 0xc5a1, 0xf6f7, 0xf8b7, 0xf8b6, 0xc9a8, 0xacea, 0xaceb, 0xd6c3, - 0xb856, 0xa5dd, 0xa872, 0xa871, 0xa870, 0xcda4, 0xaac4, 0xaac3, - 0xacee, 0xcffa, 0xcffd, 0xcffb, 0xacec, 0xaced, 0xcff9, 0xcffc, - 0xafb5, 0xd2f3, 0xd2f5, 0xd2f4, 0xafb2, 0xd2ef, 0xafb0, 0xafaf, - 0xafb3, 0xafb1, 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0, - 0xd6c6, 0xd6c7, 0xd6c5, 0xd6c4, 0xb2be, 0xb57d, 0xdad6, 0xdad8, - 0xdada, 0xb57c, 0xb57a, 0xdad7, 0xb57b, 0xdad9, 0xb579, 0xdf41, - 0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0xdefb, 0xdef8, 0xdef9, - 0xb858, 0xdf40, 0xb857, 0xb85c, 0xb85b, 0xb859, 0xdefd, 0xe349, - 0xe348, 0xe344, 0xbad8, 0xe347, 0xe346, 0xbad9, 0xbd5e, 0xe6d2, - 0xbd5f, 0xbd5b, 0xbd5d, 0xbd5a, 0xbd5c, 0xeaaf, 0xbf70, 0xeab1, - 0xeab0, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0xedb5, 0xedb3, - 0xc14a, 0xedb4, 0xedb6, 0xedb2, 0xedb1, 0xf060, 0xc2aa, 0xc2a8, - 0xc2a9, 0xf2a6, 0xf2a7, 0xc3ad, 0xc3ac, 0xf4a3, 0xf4a4, 0xf4a2, - 0xf6f8, 0xf6f9, 0xa5de, 0xca48, 0xa873, 0xcda5, 0xaac6, 0xaac5, - 0xcda6, 0xd040, 0xacef, 0xcffe, 0xacf0, 0xafb6, 0xd2f8, 0xd2f6, - 0xd2fc, 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9, 0xd2fa, 0xd6c8, 0xd6ca, - 0xb2bf, 0xd6c9, 0xb2c0, 0xb5a2, 0xb5a1, 0xb57e, 0xdadb, 0xdf44, - 0xb85d, 0xb85e, 0xdf43, 0xdf42, 0xe34a, 0xbadb, 0xbada, 0xe34b, - 0xe34c, 0xbd61, 0xbd60, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4, - 0xeab2, 0xeab6, 0xeab3, 0xbf73, 0xedb7, 0xc14b, 0xedb8, 0xedb9, - 0xc2ab, 0xc2ac, 0xc475, 0xc5d1, 0xa5df, 0xd041, 0xd2fd, 0xafb8, - 0xb3ba, 0xb3b9, 0xb5a4, 0xdadd, 0xb5a3, 0xdadc, 0xdf45, 0xbadc, - 0xe34d, 0xbadd, 0xc476, 0xf4a5, 0xa6cb, 0xaac7, 0xcda7, 0xacf2, - 0xacf1, 0xd042, 0xd043, 0xd340, 0xd342, 0xafb9, 0xd344, 0xd347, - 0xd345, 0xd346, 0xd343, 0xd2fe, 0xafba, 0xd348, 0xd341, 0xd6d3, - 0xb2c6, 0xd6dc, 0xb2c3, 0xd6d5, 0xb2c7, 0xb2c1, 0xd6d0, 0xd6dd, - 0xd6d1, 0xd6ce, 0xb2c5, 0xb2c2, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8, - 0xb2c8, 0xd6d9, 0xd6cf, 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb, - 0xd6db, 0xdadf, 0xdae4, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, 0xdae1, - 0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, 0xb5a8, - 0xb5ae, 0xb5a9, 0xb5aa, 0xb5a6, 0xdae5, 0xb861, 0xdf50, 0xdf53, - 0xdf47, 0xdf4c, 0xdf46, 0xb863, 0xdf4a, 0xdf48, 0xb862, 0xdf4f, - 0xdf4e, 0xdf4b, 0xdf4d, 0xdf49, 0xbae1, 0xdf52, 0xb85f, 0xdf51, - 0xe35d, 0xbae8, 0xe358, 0xbae7, 0xe34e, 0xe350, 0xbae0, 0xe355, - 0xe354, 0xe357, 0xbae5, 0xe352, 0xe351, 0xbae4, 0xbadf, 0xe353, - 0xbae2, 0xe359, 0xe35b, 0xe356, 0xe34f, 0xbae3, 0xbd69, 0xbade, - 0xe35c, 0xe6d9, 0xbd62, 0xe6db, 0xbd63, 0xbd65, 0xe6de, 0xe6d6, - 0xbae6, 0xe6dc, 0xe6d8, 0xb860, 0xbd68, 0xbd64, 0xbd66, 0xbd67, - 0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0xe6da, 0xeac0, 0xeabb, 0xeac5, - 0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba, 0xeab7, 0xeac6, 0xc151, - 0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc, 0xbf7b, 0xeab9, 0xeabe, - 0xbf7a, 0xeac1, 0xeac4, 0xedcb, 0xedcc, 0xedbc, 0xedc3, 0xedc1, - 0xc14f, 0xedc8, 0xeabf, 0xedbf, 0xedc9, 0xc14e, 0xedbe, 0xedbd, - 0xedc7, 0xedc4, 0xedc6, 0xedba, 0xedca, 0xc14c, 0xedc5, 0xedce, - 0xedc2, 0xc150, 0xc14d, 0xedc0, 0xedbb, 0xedcd, 0xbf75, 0xf063, - 0xf061, 0xf067, 0xc2b0, 0xf065, 0xf064, 0xc2b2, 0xf06a, 0xc2b1, - 0xf06b, 0xf068, 0xc2ae, 0xf069, 0xf062, 0xc2af, 0xc2ad, 0xf2ab, - 0xf066, 0xf06c, 0xf2a8, 0xc3b2, 0xc3b0, 0xf2aa, 0xf2ac, 0xf2a9, - 0xc3b1, 0xc3ae, 0xc3af, 0xc3b3, 0xc478, 0xf4aa, 0xf4a9, 0xf4a7, - 0xf4a6, 0xf4a8, 0xc477, 0xc479, 0xc4f0, 0xf5e5, 0xf5e4, 0xf6fa, - 0xf6fc, 0xf6fe, 0xf6fd, 0xf6fb, 0xc5a3, 0xc5a2, 0xc5d3, 0xc5d2, - 0xc5d4, 0xf7ed, 0xf7ec, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0xc659, - 0xf96d, 0xc67e, 0xa6cc, 0xcda8, 0xd045, 0xd046, 0xd044, 0xacf3, - 0xd047, 0xd048, 0xd049, 0xd349, 0xd34f, 0xd34d, 0xafbb, 0xd34b, - 0xd34c, 0xd34e, 0xd34a, 0xb2c9, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca, - 0xd6df, 0xdae8, 0xb5af, 0xdaea, 0xdae7, 0xd6e1, 0xb5b0, 0xdae9, - 0xdf56, 0xb864, 0xdf54, 0xb865, 0xdf55, 0xb866, 0xbae9, 0xe361, - 0xe35e, 0xe360, 0xbaea, 0xbaeb, 0xe35f, 0xe6df, 0xe6e0, 0xbd6b, - 0xe6e2, 0xe6e1, 0xa261, 0xeaca, 0xeacb, 0xeac7, 0xeac8, 0xbf7c, - 0xbf7d, 0xeac9, 0xc157, 0xc153, 0xc158, 0xc154, 0xc156, 0xc152, - 0xc155, 0xc2b3, 0xedcf, 0xf2ae, 0xf2ad, 0xf4ab, 0xc47a, 0xc47b, - 0xf741, 0xf5e6, 0xf740, 0xf8fd, 0xf9a4, 0xa6cd, 0xa874, 0xcda9, - 0xaac8, 0xacf6, 0xd04c, 0xacf4, 0xd04a, 0xacf9, 0xacf5, 0xacfa, - 0xacf8, 0xd04b, 0xacf7, 0xafbf, 0xafbe, 0xd35a, 0xafc7, 0xd353, - 0xd359, 0xafc3, 0xd352, 0xd358, 0xd356, 0xafc2, 0xafc4, 0xd355, - 0xafbd, 0xd354, 0xafc8, 0xafc5, 0xafc9, 0xafc6, 0xd351, 0xd350, - 0xd357, 0xafc0, 0xafbc, 0xafc1, 0xd6f0, 0xd6e9, 0xb5b5, 0xd6e8, - 0xb2cf, 0xb2d6, 0xb2d3, 0xb2d9, 0xb2d8, 0xb2d4, 0xd6e2, 0xd6e5, - 0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef, 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed, - 0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd, 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb, - 0xd6ee, 0xdafb, 0xdaf2, 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7, - 0xb5b4, 0xdaef, 0xdaeb, 0xb86c, 0xdaf4, 0xb5b1, 0xdafa, 0xb5b8, - 0xb5ba, 0xdaed, 0xb5b9, 0xdaf0, 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5, - 0xdaf3, 0xb5b6, 0xdaec, 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0xb868, - 0xdf5d, 0xdf5f, 0xdf61, 0xdf65, 0xdf5b, 0xdf59, 0xb86a, 0xdf60, - 0xdf64, 0xdf5c, 0xdf58, 0xdf57, 0xdf62, 0xdf5a, 0xdf5e, 0xb86b, - 0xb869, 0xdf66, 0xb867, 0xdf63, 0xe372, 0xbaee, 0xe36a, 0xbd78, - 0xe374, 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0xe375, 0xe362, 0xe377, - 0xe366, 0xbafe, 0xbafb, 0xe376, 0xe370, 0xbaed, 0xbaf5, 0xbaf4, - 0xbaf3, 0xbaf9, 0xe363, 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373, - 0xbaef, 0xbaf0, 0xbaf8, 0xe368, 0xe367, 0xe364, 0xe36c, 0xe369, - 0xe36d, 0xbafd, 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0xe36b, 0xbafc, - 0xe6e7, 0xbd70, 0xbd79, 0xbd75, 0xe6e4, 0xbd72, 0xbd76, 0xe6f0, - 0xbd6c, 0xe6e8, 0xbd74, 0xe6eb, 0xe6e6, 0xbd73, 0xbd77, 0xe6e5, - 0xbd71, 0xe6ef, 0xbd6e, 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d, - 0xe6ec, 0xe6e3, 0xbd7b, 0xe6ea, 0xbd6f, 0xe6e9, 0xbfa2, 0xbfa7, - 0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9, 0xbfa8, 0xbfa1, - 0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace, 0xead6, 0xbfa3, - 0xead4, 0xbfa6, 0xbfa5, 0xead0, 0xead1, 0xeacd, 0xead7, 0xbfa4, - 0xeade, 0xeadd, 0xedda, 0xedd6, 0xc15f, 0xedd0, 0xc159, 0xc169, - 0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164, 0xc167, 0xedde, 0xc15c, - 0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1, 0xc160, 0xc15a, 0xc168, - 0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf, 0xc162, 0xc15b, 0xedd9, - 0xc166, 0xedd7, 0xeddb, 0xf06e, 0xf074, 0xc2b9, 0xf077, 0xc2b4, - 0xc2b5, 0xf06f, 0xf076, 0xf071, 0xc2ba, 0xc2b7, 0xf06d, 0xc2b6, - 0xf073, 0xf075, 0xc2b8, 0xf072, 0xf070, 0xf2b8, 0xc3b7, 0xc3b8, - 0xc3b4, 0xc3b5, 0xf2b4, 0xf2b2, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0, - 0xf2af, 0xf2b3, 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d, - 0xf4ad, 0xf4af, 0xf4ae, 0xc4a1, 0xf5eb, 0xf5e8, 0xf5e9, 0xf5e7, - 0xf5ea, 0xc4f2, 0xf5ec, 0xc4f1, 0xf742, 0xc5d5, 0xc5d7, 0xf7ee, - 0xc5d6, 0xf8b9, 0xf940, 0xf942, 0xf8fe, 0xf941, 0xc66c, 0xa6ce, - 0xacfb, 0xd26f, 0xafca, 0xb2da, 0xdafc, 0xdafd, 0xeadf, 0xc16a, - 0xede1, 0xc2bb, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0xf743, 0xc5f8, - 0xca49, 0xaac9, 0xa875, 0xd04d, 0xd360, 0xd35b, 0xd35f, 0xd35d, - 0xafcb, 0xd35e, 0xd35c, 0xd6f1, 0xdafe, 0xdb40, 0xdf69, 0xdf6a, - 0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67, 0xb86d, 0xbb40, 0xb870, - 0xe37a, 0xbd7c, 0xe6f1, 0xbd7d, 0xbfa9, 0xeae2, 0xeae0, 0xeae1, - 0xede4, 0xede3, 0xede2, 0xf2bb, 0xc3b9, 0xf2bc, 0xf744, 0xc5f9, - 0xf8ba, 0xa6cf, 0xaacb, 0xaaca, 0xd04f, 0xacfc, 0xd04e, 0xd362, - 0xafcc, 0xd6f2, 0xd361, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db, - 0xdb42, 0xdb43, 0xdb41, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e, 0xb872, - 0xb871, 0xe6f2, 0xe6f4, 0xbd7e, 0xe6f3, 0xeae3, 0xbfaa, 0xf079, - 0xf078, 0xc3bb, 0xf2bd, 0xc3bd, 0xc3bc, 0xf4b0, 0xf5ee, 0xc4f3, - 0xa6d0, 0xd050, 0xacfd, 0xd365, 0xafce, 0xd364, 0xd363, 0xafcd, - 0xd6fb, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd, 0xd6f8, 0xb2de, 0xd6fc, - 0xd6f9, 0xd6fa, 0xb2df, 0xb5be, 0xb5bf, 0xdb44, 0xdf6f, 0xdf70, - 0xe37e, 0xbb43, 0xbb41, 0xbb42, 0xe37b, 0xe37c, 0xe37d, 0xe6f9, - 0xe6fa, 0xbda1, 0xe6f7, 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4, - 0xbfab, 0xbfac, 0xede6, 0xc16b, 0xede5, 0xefa8, 0xf07a, 0xf07b, - 0xc2bc, 0xc2bd, 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, 0xc4a3, 0xa6d1, - 0xa6d2, 0xacfe, 0xaacc, 0xafcf, 0xd051, 0xb5c0, 0xa6d3, 0xad41, - 0xd052, 0xd053, 0xad40, 0xad42, 0xa6d4, 0xd054, 0xafd1, 0xd366, - 0xafd3, 0xafd0, 0xafd2, 0xd741, 0xb2e0, 0xd740, 0xd6fe, 0xdf71, - 0xe3a1, 0xbda2, 0xbfae, 0xeae6, 0xeae5, 0xede7, 0xf5ef, 0xa6d5, - 0xcb73, 0xcdaa, 0xad43, 0xd055, 0xd368, 0xafd4, 0xd367, 0xafd5, - 0xd743, 0xb2e2, 0xd742, 0xd744, 0xb2e1, 0xdb46, 0xdb47, 0xdb45, - 0xb5c1, 0xb874, 0xb875, 0xbb45, 0xe3a3, 0xe3a2, 0xbb44, 0xe6fb, - 0xe6fc, 0xeae7, 0xc170, 0xc16f, 0xc16d, 0xc16e, 0xc171, 0xf07c, - 0xc2bf, 0xc2be, 0xf2c0, 0xf4b2, 0xc5a5, 0xc5a4, 0xa6d6, 0xd1fb, - 0xb877, 0xb5c2, 0xb876, 0xbb46, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9, - 0xcdab, 0xcb76, 0xcb77, 0xa877, 0xcb74, 0xa876, 0xa879, 0xcb75, - 0xa87b, 0xa87a, 0xcb78, 0xa878, 0xaad1, 0xaacf, 0xcdad, 0xaace, - 0xaad3, 0xaad5, 0xaad2, 0xcdb0, 0xcdac, 0xaad6, 0xaad0, 0xa87c, - 0xaad4, 0xcdaf, 0xcdae, 0xaacd, 0xd05b, 0xad47, 0xad48, 0xd05d, - 0xd057, 0xd05a, 0xd063, 0xd061, 0xad49, 0xd067, 0xad4c, 0xd064, - 0xd05c, 0xd059, 0xdb49, 0xd062, 0xad44, 0xd065, 0xd056, 0xd05f, - 0xad46, 0xad4b, 0xd060, 0xad4f, 0xad4d, 0xd058, 0xad4a, 0xd05e, - 0xad4e, 0xad45, 0xd066, 0xafda, 0xafe3, 0xafd8, 0xafd6, 0xd36a, - 0xafde, 0xafdb, 0xd36c, 0xafdd, 0xd36b, 0xd369, 0xd36e, 0xafe2, - 0xafe0, 0xdb48, 0xd36f, 0xd36d, 0xafd7, 0xafd9, 0xafdc, 0xafdf, - 0xafe1, 0xd74e, 0xb2e4, 0xd745, 0xd747, 0xd748, 0xd750, 0xd74c, - 0xd74a, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746, 0xd74f, 0xb2e7, - 0xb2e6, 0xd74b, 0xd749, 0xb2e3, 0xb2e8, 0xb5c8, 0xdb51, 0xdb4f, - 0xb5ca, 0xdb4a, 0xdfa1, 0xb5c9, 0xdb4e, 0xdb4b, 0xb5c5, 0xb5cb, - 0xdb50, 0xb5c7, 0xdb4d, 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4, - 0xb5c3, 0xdf77, 0xdf75, 0xdf7b, 0xdf73, 0xdfa2, 0xdf78, 0xdf72, - 0xb87b, 0xb8a3, 0xdf7d, 0xdf76, 0xb87e, 0xb87c, 0xdf7e, 0xb879, - 0xb878, 0xdf79, 0xb87d, 0xb5cd, 0xdf7c, 0xdf74, 0xb87a, 0xb8a1, - 0xb8a2, 0xbb4c, 0xbb48, 0xbb4d, 0xe3a6, 0xe3a5, 0xe3a7, 0xbb4a, - 0xe3a4, 0xbb4b, 0xe3aa, 0xe3a9, 0xe3a8, 0xbb49, 0xe741, 0xe744, - 0xbda8, 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe, - 0xbda6, 0xe742, 0xe6fd, 0xeae9, 0xeaf3, 0xbfb1, 0xbfb0, 0xeaed, - 0xeaef, 0xeaea, 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0, 0xeaec, - 0xeaf2, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178, 0xc17a, 0xc177, - 0xc176, 0xc175, 0xc173, 0xede9, 0xedec, 0xc172, 0xeded, 0xc179, - 0xedeb, 0xedea, 0xc2c0, 0xc2c1, 0xf0a1, 0xf07d, 0xf07e, 0xf2c2, - 0xf2c1, 0xc3be, 0xf4b4, 0xc4a4, 0xf4b3, 0xf5f0, 0xf745, 0xc5a6, - 0xf943, 0xf944, 0xc5d8, 0xa6da, 0xaad7, 0xdb52, 0xbb4e, 0xc17b, - 0xedef, 0xa6db, 0xafe5, 0xafe4, 0xdb53, 0xeaf4, 0xa6dc, 0xad50, - 0xdb54, 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0xaad8, 0xd068, - 0xafe6, 0xd370, 0xb2ea, 0xdb57, 0xb8a4, 0xbb50, 0xbfb3, 0xc17c, - 0xc2c2, 0xf4b5, 0xa6de, 0xaad9, 0xafe7, 0xd752, 0xb5ce, 0xbb51, - 0xe3ab, 0xe745, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0, 0xcdb1, - 0xd069, 0xad51, 0xd372, 0xafea, 0xafe8, 0xafe9, 0xafeb, 0xd371, - 0xd757, 0xd754, 0xd756, 0xb2eb, 0xb2ed, 0xb2ec, 0xd753, 0xb2ee, - 0xd755, 0xdb58, 0xdb59, 0xdb5a, 0xdfa6, 0xdfa7, 0xdfa5, 0xdfa8, - 0xb8a5, 0xdfa4, 0xbb53, 0xe74a, 0xe746, 0xe749, 0xe74b, 0xe748, - 0xe747, 0xeaf5, 0xeaf6, 0xeaf7, 0xbfb4, 0xbfb5, 0xedf1, 0xedf0, - 0xedf2, 0xf0a3, 0xf0a2, 0xf2c4, 0xf2c5, 0xf2c3, 0xc4a5, 0xf4b6, - 0xf4b7, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, 0xc17d, 0xa6e2, - 0xd758, 0xdb5b, 0xc641, 0xca4a, 0xca4b, 0xca4d, 0xa6e3, 0xca4e, - 0xca4c, 0xcba2, 0xcba3, 0xcb7b, 0xcba1, 0xa8a1, 0xa8a2, 0xcb7c, - 0xcb7a, 0xcb79, 0xcb7d, 0xa87e, 0xcb7e, 0xd06a, 0xcdb6, 0xaadc, - 0xcdb5, 0xcdb7, 0xaadb, 0xcdbc, 0xaadf, 0xcdb2, 0xcdc0, 0xcdc6, - 0xaae6, 0xcdc3, 0xaae3, 0xcdb9, 0xcdbf, 0xcdc1, 0xcdb4, 0xaae2, - 0xaadd, 0xcdba, 0xaae4, 0xaae7, 0xaae1, 0xaada, 0xcdbe, 0xcdb8, - 0xcdc5, 0xaae9, 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade, - 0xaae8, 0xcdb3, 0xcdc2, 0xcdc4, 0xad62, 0xad5c, 0xad64, 0xad61, - 0xd071, 0xd074, 0xad5d, 0xd06b, 0xad56, 0xad60, 0xad63, 0xad65, - 0xd0a2, 0xd077, 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, 0xd06f, - 0xd07e, 0xd073, 0xd076, 0xd0a5, 0xad66, 0xd07d, 0xad5e, 0xd078, - 0xd0a4, 0xd075, 0xd079, 0xd07c, 0xd06d, 0xd0a3, 0xd07b, 0xd06c, - 0xd070, 0xad5f, 0xad5a, 0xad53, 0xad58, 0xad54, 0xad67, 0xd06e, - 0xd3a5, 0xad5b, 0xd07a, 0xce41, 0xd3a8, 0xaffa, 0xd376, 0xd3a3, - 0xd37d, 0xd3b2, 0xd3aa, 0xd37e, 0xd3a9, 0xd378, 0xd37c, 0xd3b5, - 0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0xd3ac, 0xaffc, - 0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, 0xaff1, 0xaff8, - 0xd072, 0xdb5c, 0xd3a6, 0xd37a, 0xaffb, 0xd37b, 0xd3a1, 0xaffe, - 0xd375, 0xd3af, 0xd3ae, 0xd3b6, 0xaff3, 0xaff0, 0xd3b4, 0xd3b0, - 0xd3a7, 0xd3a2, 0xaff6, 0xaff2, 0xd377, 0xafee, 0xd3b1, 0xafef, - 0xd379, 0xd75e, 0xd760, 0xd765, 0xd779, 0xb2fc, 0xb2f2, 0xd75d, - 0xb2fd, 0xb2fe, 0xd768, 0xd76f, 0xd775, 0xd762, 0xd769, 0xb340, - 0xd777, 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef, - 0xd761, 0xd759, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773, - 0xb2f1, 0xd764, 0xd77a, 0xd76c, 0xd76b, 0xb2f0, 0xb2fb, 0xb2f3, - 0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, 0xd75b, 0xd767, 0xd76d, - 0xb2f6, 0xd778, 0xd771, 0xd774, 0xb2f5, 0xdb6c, 0xdb60, 0xb5d7, - 0xdb7d, 0xdba7, 0xdbaa, 0xb5d5, 0xdb68, 0xdba3, 0xdb69, 0xdb77, - 0xb5e2, 0xdb73, 0xb5df, 0xdb74, 0xdb5d, 0xdba4, 0xb5e8, 0xdba1, - 0xdb75, 0xdbac, 0xdb70, 0xdfc8, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a, - 0xb5e9, 0xb5d4, 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0xdb63, - 0xdb61, 0xb5d0, 0xdba5, 0xdb6a, 0xdba8, 0xdba9, 0xb5d8, 0xb5dd, - 0xb5d9, 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0xb5d2, 0xdb5e, - 0xdba2, 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, 0xdb6d, 0xb5d1, - 0xb5e5, 0xdb7c, 0xb5e7, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3, - 0xb5e4, 0xdb79, 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0xdbae, 0xdb5f, - 0xdfc7, 0xdfdd, 0xb855, 0xdfcc, 0xdfca, 0xdfb5, 0xb8a9, 0xdfc5, - 0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, 0xb5e3, 0xdfcf, 0xdfc0, - 0xdfd6, 0xb8b0, 0xb8a8, 0xdfaa, 0xdfb2, 0xdfcb, 0xdfc3, 0xdfdc, - 0xdfc6, 0xb8b6, 0xdfd7, 0xb8ad, 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0, - 0xdfe1, 0xdfb1, 0xdfd2, 0xdfdf, 0xdfab, 0xb5db, 0xdfb9, 0xdfb8, - 0xb8af, 0xdfbc, 0xdfbe, 0xdfcd, 0xdfde, 0xb8b2, 0xb8b3, 0xdfb0, - 0xb8ab, 0xdfb4, 0xdfda, 0xb8b4, 0xb8ac, 0xb8ae, 0xb8b5, 0xdfe0, - 0xdfd3, 0xdfce, 0xdfbb, 0xdfba, 0xb8aa, 0xdfac, 0xb8a7, 0xdfc4, - 0xdfad, 0xdfc2, 0xdfb7, 0xdfdb, 0xb8a6, 0xdfb3, 0xdfaf, 0xdfd5, - 0xdfae, 0xbb60, 0xe3d3, 0xe3c2, 0xe3ac, 0xe3ca, 0xbb58, 0xe3bb, - 0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, 0xe3cd, 0xe3ae, 0xe3c1, - 0xe3ad, 0xe3bf, 0xe3c8, 0xe3c6, 0xe3ba, 0xe3b5, 0xe3b3, 0xe3b4, - 0xe3c7, 0xe3d2, 0xe3bc, 0xbb5a, 0xe3b7, 0xe3cb, 0xbb5d, 0xe3b6, - 0xe3b0, 0xe3c0, 0xbb61, 0xbb55, 0xbb5e, 0xe3b8, 0xe3b2, 0xbb57, - 0xdfd4, 0xbb56, 0xe3c3, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9, - 0xe3b1, 0xe3cc, 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0xe3c9, - 0xe3ce, 0xe3d1, 0xe773, 0xe774, 0xe767, 0xe766, 0xe762, 0xbdb4, - 0xbdac, 0xe776, 0xe775, 0xdfa9, 0xe75f, 0xe763, 0xe75d, 0xe770, - 0xe761, 0xe777, 0xe75a, 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6, - 0xe74f, 0xe76d, 0xbdb7, 0xdfbd, 0xe75b, 0xe752, 0xe755, 0xe77b, - 0xe75c, 0xe753, 0xe751, 0xe74e, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3, - 0xe760, 0xe768, 0xbda9, 0xe778, 0xe77c, 0xbdab, 0xe757, 0xe76b, - 0xe76f, 0xe754, 0xe779, 0xbdb2, 0xbdb1, 0xe74c, 0xbdb5, 0xe772, - 0xe756, 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c, - 0xe77d, 0xe77a, 0xe771, 0xe74d, 0xbdaa, 0xeb49, 0xeb40, 0xeb43, - 0xbfbb, 0xeb45, 0xeaf9, 0xeb41, 0xeb47, 0xbfb8, 0xbfbc, 0xbfb6, - 0xeafb, 0xeb4c, 0xeb46, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46, - 0xeafe, 0xbfb7, 0xeb4a, 0xeb54, 0xbfbf, 0xeb51, 0xeafd, 0xeb44, - 0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, 0xbfb9, 0xbfba, 0xbfbe, - 0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0xeb4b, 0xeb4e, 0xee53, 0xee40, - 0xee45, 0xee52, 0xee44, 0xedfb, 0xee41, 0xc1a2, 0xedf4, 0xee4d, - 0xee4f, 0xedf3, 0xc1a1, 0xee51, 0xee49, 0xc1a8, 0xee50, 0xee42, - 0xc1aa, 0xedf9, 0xeb52, 0xee4a, 0xee47, 0xedf5, 0xee55, 0xc1a4, - 0xc1a5, 0xedf7, 0xee48, 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3, - 0xee4c, 0xedfe, 0xee56, 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc, - 0xc2cb, 0xedf6, 0xc1a9, 0xc2c4, 0xc17e, 0xc1a6, 0xc2c8, 0xf0b3, - 0xf0a9, 0xf0a4, 0xf0aa, 0xf0b4, 0xf0b8, 0xf0b7, 0xc2ca, 0xc2c9, - 0xf0ab, 0xf0b9, 0xf0ae, 0xf0a6, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2, - 0xf0a5, 0xf0ac, 0xf0b1, 0xc2c7, 0xf0af, 0xc2c5, 0xf0b0, 0xc2c3, - 0xc2c6, 0xf2d5, 0xf0b5, 0xc3c2, 0xf2cd, 0xf2d1, 0xf2c9, 0xf2cc, - 0xf2d4, 0xc3c0, 0xf2d9, 0xf2d2, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3, - 0xc3c4, 0xf2d7, 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8, - 0xf2d8, 0xf2d6, 0xf2c7, 0xf2cf, 0xf4be, 0xc3c5, 0xf2d0, 0xc4a7, - 0xc4a9, 0xc4a6, 0xf4c3, 0xf4bb, 0xf4b9, 0xf4bd, 0xf4ba, 0xf4bf, - 0xf4c1, 0xc4aa, 0xc4ac, 0xf4c0, 0xc4ad, 0xc4ab, 0xf4c2, 0xc4a8, - 0xc4f4, 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0xf5fd, 0xf5f4, - 0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8, - 0xf5fc, 0xf5f2, 0xf74a, 0xc4f5, 0xf5f9, 0xf7f4, 0xf74b, 0xf749, - 0xf747, 0xf748, 0xf74c, 0xc5d9, 0xf7f2, 0xf7f0, 0xf7f5, 0xf7f3, - 0xf7f6, 0xc5da, 0xf7f1, 0xf8bc, 0xf945, 0xf946, 0xf947, 0xf9c7, - 0xf9bd, 0xca4f, 0xaaea, 0xad68, 0xd3b8, 0xd3b7, 0xb040, 0xb342, - 0xd77c, 0xd77b, 0xb5ea, 0xb8b8, 0xb8b7, 0xb8b9, 0xe3d4, 0xe77e, - 0xeb58, 0xeb5a, 0xeb59, 0xc1ab, 0xee57, 0xf0ba, 0xf9a5, 0xa6e4, - 0xcdc9, 0xcdca, 0xcdc8, 0xcdc7, 0xaaeb, 0xd0a9, 0xd0a7, 0xd0a6, - 0xad69, 0xad6b, 0xad6a, 0xd0a8, 0xd3c4, 0xd3c1, 0xd3bf, 0xb041, - 0xd3c2, 0xb046, 0xd3bc, 0xd3cb, 0xd3cd, 0xd3bd, 0xb043, 0xd3ce, - 0xd3c9, 0xd3bb, 0xd3c0, 0xd3ca, 0xd3c6, 0xd3c3, 0xb048, 0xd3cc, - 0xd3be, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0xd3c8, 0xd3ba, - 0xb045, 0xb042, 0xb34c, 0xd7a5, 0xb34b, 0xd7a8, 0xd7ab, 0xb348, - 0xb346, 0xd77e, 0xd7a9, 0xd7a7, 0xd7a4, 0xd7ac, 0xd7ad, 0xd7af, - 0xd7b0, 0xd77d, 0xb345, 0xd7a2, 0xd7a1, 0xd7ae, 0xb347, 0xd7a3, - 0xb349, 0xb344, 0xd7a6, 0xb34d, 0xb34a, 0xd7aa, 0xb5f1, 0xdbbf, - 0xdbb4, 0xb5ee, 0xdfe7, 0xdbbd, 0xdbb1, 0xb5ec, 0xdbb6, 0xb5ef, - 0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, 0xdbb2, 0xdbb5, 0xb5f0, 0xdbb3, - 0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb, 0xb5ed, 0xdfe8, 0xdfee, - 0xdfe4, 0xdfea, 0xb8ba, 0xdfe6, 0xb8c0, 0xb8bf, 0xb8be, 0xdfed, - 0xb8c1, 0xb8c2, 0xdfe3, 0xdff0, 0xb8c3, 0xb8bd, 0xb8bc, 0xdfec, - 0xb8c4, 0xdfe2, 0xdfe5, 0xdfef, 0xdfeb, 0xe3f4, 0xe3e9, 0xb8bb, - 0xbb6a, 0xe3dd, 0xe3f2, 0xe3de, 0xbb65, 0xe3db, 0xe3e4, 0xe3dc, - 0xbb67, 0xe3d6, 0xe3f1, 0xbb68, 0xe3ee, 0xe3ef, 0xe3d7, 0xbb6d, - 0xe3e6, 0xe3e0, 0xe3e7, 0xe3da, 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5, - 0xbb69, 0xe3ec, 0xbb6c, 0xe3f0, 0xe3ea, 0xbb66, 0xe3e8, 0xe3e2, - 0xbb64, 0xe3d9, 0xe3e1, 0xe3ed, 0xe3df, 0xe3e3, 0xbdc1, 0xdfe9, - 0xe7b2, 0xe7bb, 0xe7b1, 0xe7ad, 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b, - 0xe7a1, 0xbdc0, 0xe7a7, 0xbdbf, 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4, - 0xe7ae, 0xe7b3, 0xbdbb, 0xe7ab, 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba, - 0xbdbc, 0xe7bf, 0xbdbe, 0xe7c0, 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af, - 0xe7b8, 0xe7b5, 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, 0xbdbd, - 0xeb64, 0xe7b7, 0xe7bc, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67, - 0xeb65, 0xeb60, 0xeb6f, 0xbfc4, 0xeb5c, 0xeb68, 0xeb69, 0xeb5f, - 0xeb5e, 0xeb6c, 0xeb62, 0xeb5d, 0xeb63, 0xeb6e, 0xeb5b, 0xeb6d, - 0xeb6a, 0xbfc2, 0xbfc1, 0xbfc3, 0xeb66, 0xf0cb, 0xee59, 0xc1b1, - 0xee5d, 0xee5a, 0xee61, 0xee67, 0xee5c, 0xee70, 0xc1ae, 0xee6a, - 0xee5f, 0xee6b, 0xee66, 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60, - 0xee6e, 0xee58, 0xee6c, 0xc1ac, 0xee64, 0xee63, 0xee68, 0xee5b, - 0xc1b0, 0xc1b4, 0xee62, 0xee69, 0xc1b5, 0xee65, 0xc1ad, 0xc1af, - 0xf0c7, 0xf0c5, 0xf0cc, 0xf0c9, 0xf0cd, 0xf0be, 0xf0c6, 0xf0d1, - 0xee6f, 0xf0c2, 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4, 0xf0c1, - 0xf0bc, 0xf0bb, 0xf0d0, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8, 0xc2cc, - 0xc2ce, 0xf0c3, 0xf0cf, 0xf2de, 0xf2df, 0xc3c9, 0xf2dc, 0xc3c6, - 0xf2e4, 0xc3ca, 0xf2e6, 0xf2db, 0xf0ce, 0xf2e8, 0xf2dd, 0xc3c7, - 0xf2e3, 0xf2e5, 0xf2e0, 0xf2e7, 0xf2e2, 0xf2e1, 0xc3c8, 0xf4c5, - 0xf4c6, 0xf4c8, 0xc4ae, 0xc4af, 0xf4c9, 0xf4c7, 0xf4c4, 0xf642, - 0xf645, 0xf641, 0xc4fa, 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644, - 0xf751, 0xf74f, 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0xf7f9, - 0xf7d7, 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0xf8bf, 0xc5fa, 0xf8be, - 0xf8bd, 0xc5fb, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, 0xa6e5, - 0xd0aa, 0xd3cf, 0xd3d0, 0xdbc0, 0xf647, 0xf8c0, 0xa6e6, 0xad6c, - 0xd0ab, 0xd7b1, 0xb34e, 0xdbc2, 0xdbc1, 0xb5f3, 0xb8c5, 0xe7c1, - 0xbdc3, 0xbdc4, 0xbfc5, 0xc5fc, 0xa6e7, 0xd0ac, 0xaaed, 0xd0ae, - 0xd0ad, 0xad6d, 0xd3d1, 0xd3d8, 0xb049, 0xd3d6, 0xd3d4, 0xd3db, - 0xd3d2, 0xd3d3, 0xb04a, 0xb04e, 0xd3dc, 0xb04d, 0xd3da, 0xd3d7, - 0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0xb350, 0xd7b2, 0xb355, 0xd7c2, - 0xb354, 0xd7c4, 0xd7b8, 0xb352, 0xd7c3, 0xd7b3, 0xb353, 0xd7bf, - 0xd7bb, 0xd7bd, 0xd7b7, 0xd7be, 0xb34f, 0xd7ba, 0xd7b9, 0xd7b5, - 0xd7c0, 0xd7bc, 0xd7b4, 0xd7b6, 0xb351, 0xd7c1, 0xb5f6, 0xdbcd, - 0xdbc9, 0xdbcb, 0xdbc6, 0xdbc5, 0xdbc3, 0xdbca, 0xdbcc, 0xdbc8, - 0xdbc7, 0xb5f4, 0xb5f5, 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3, - 0xdff4, 0xdff9, 0xb8cf, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, 0xb8ca, - 0xb8c8, 0xdff7, 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, 0xb8cc, - 0xe3f6, 0xbb74, 0xe442, 0xe441, 0xe3fb, 0xbb76, 0xe440, 0xe3f7, - 0xe3f8, 0xbb6e, 0xbb70, 0xe3fd, 0xe3f5, 0xbb72, 0xbb71, 0xe3f9, - 0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0xdbce, 0xbb6f, 0xe7c2, 0xe7c9, - 0xbdc6, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0xe7cc, 0xbdc5, 0xe7cb, - 0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6, 0xe7c7, 0xe7c8, - 0xbb75, 0xeb70, 0xeb7c, 0xbfca, 0xeb77, 0xeb79, 0xbfc8, 0xeb71, - 0xeb75, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b, 0xeb73, 0xeb74, 0xeb7a, - 0xeb72, 0xeb76, 0xbfc7, 0xee72, 0xee71, 0xc1b7, 0xee77, 0xc1b9, - 0xc1b6, 0xee73, 0xc1ba, 0xee74, 0xee75, 0xee78, 0xc1b8, 0xf0d6, - 0xf0d9, 0xf0d3, 0xf0d5, 0xf0d4, 0xf0d7, 0xf0d8, 0xee76, 0xf0d2, - 0xc3cd, 0xf2ec, 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0, - 0xc3ce, 0xc3cc, 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0xf4cb, - 0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, 0xf752, - 0xc5a7, 0xf7fd, 0xf7fc, 0xf7fb, 0xf948, 0xf949, 0xf94b, 0xf94a, - 0xca50, 0xa6e8, 0xad6e, 0xd7c5, 0xb5f7, 0xdffa, 0xc2d0, 0xf2f2, - 0xa8a3, 0xb357, 0xb356, 0xdbd0, 0xb5f8, 0xdbd2, 0xdbd1, 0xdffb, - 0xb8d0, 0xe443, 0xe446, 0xe445, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf, - 0xbfcc, 0xbfcb, 0xc1bb, 0xee79, 0xee7b, 0xee7a, 0xc2d1, 0xf2f4, - 0xf2f3, 0xf4cc, 0xc4b1, 0xc4fd, 0xf754, 0xf753, 0xc65b, 0xa8a4, - 0xd0af, 0xad6f, 0xd7c8, 0xd7c6, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043, - 0xdbd3, 0xdffc, 0xe041, 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd, - 0xe044, 0xe449, 0xe447, 0xe448, 0xe7d3, 0xe7d1, 0xe7d2, 0xeb7d, - 0xee7c, 0xee7d, 0xc2d2, 0xf2f5, 0xf4cd, 0xc4b2, 0xf64c, 0xf755, - 0xc5a9, 0xf7fe, 0xf94c, 0xa8a5, 0xad71, 0xad72, 0xd0b0, 0xd0b1, - 0xad70, 0xb054, 0xb052, 0xb051, 0xb058, 0xb050, 0xb059, 0xd3dd, - 0xb056, 0xb053, 0xb057, 0xb055, 0xb04f, 0xb35f, 0xb359, 0xd7cc, - 0xb35e, 0xb360, 0xb35a, 0xb35b, 0xd7ca, 0xb358, 0xd7cb, 0xb35d, - 0xd7c9, 0xb35c, 0xb644, 0xb646, 0xdbd8, 0xb645, 0xb5f9, 0xb5fd, - 0xb8e4, 0xe049, 0xdbda, 0xb5fe, 0xdbdd, 0xdbde, 0xb643, 0xdbe0, - 0xdbe2, 0xdbe3, 0xdbd7, 0xdbd6, 0xdbe4, 0xb642, 0xdbe1, 0xdbdf, - 0xb640, 0xb5fb, 0xb647, 0xdbdb, 0xdbdc, 0xdbd9, 0xb641, 0xb5fc, - 0xb5fa, 0xe048, 0xb8df, 0xb8da, 0xb8d5, 0xb8e5, 0xb8d6, 0xb8d2, - 0xb8e1, 0xb8de, 0xb8e0, 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050, - 0xe04d, 0xe045, 0xe04a, 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0xe047, - 0xe04f, 0xe04b, 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, 0xe44c, - 0xbb78, 0xbb7b, 0xe44e, 0xbba5, 0xe44d, 0xbb7d, 0xbdcf, 0xe44f, - 0xbba4, 0xe44b, 0xbba6, 0xbb79, 0xb8db, 0xbb7c, 0xbb7a, 0xbb7e, - 0xbba2, 0xbb77, 0xbba7, 0xbba3, 0xbba1, 0xe44a, 0xbdd6, 0xbdd2, - 0xbdd9, 0xe7d6, 0xbdda, 0xe7e2, 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd, - 0xbdd5, 0xe7de, 0xbdd4, 0xe7e1, 0xbdce, 0xe7df, 0xe7d5, 0xbdcd, - 0xebaa, 0xbdd3, 0xbdd0, 0xbdd8, 0xe7d4, 0xe7d8, 0xbdcc, 0xe7d7, - 0xe7d9, 0xe7da, 0xbdd7, 0xe7dc, 0xe7e0, 0xe7e4, 0xbddb, 0xbfd2, - 0xeba5, 0xebab, 0xeba8, 0xeb7e, 0xebac, 0xeba1, 0xeba7, 0xbfcd, - 0xbfd3, 0xebad, 0xbfcf, 0xbfd9, 0xbfd4, 0xebaf, 0xeba9, 0xbfd0, - 0xeba2, 0xbfda, 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, 0xbdd1, 0xbfce, - 0xebb0, 0xbfdc, 0xbfd5, 0xebae, 0xbfd1, 0xbfd6, 0xbfd7, 0xc1c3, - 0xeea4, 0xeead, 0xeeaa, 0xeeac, 0xc1c0, 0xeea5, 0xeeab, 0xc1bc, - 0xeea7, 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2, - 0xc1bd, 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e, - 0xc1c1, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, 0xc2d3, - 0xf0da, 0xc2d6, 0xc2d5, 0xf0e9, 0xf0e1, 0xf0de, 0xf0e4, 0xf0dd, - 0xf0df, 0xf0e8, 0xf0e6, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2, 0xf0ec, - 0xf0e3, 0xf2f9, 0xc3cf, 0xf341, 0xf64f, 0xc3d6, 0xf0e0, 0xf2f7, - 0xc3d2, 0xf2f8, 0xf2fd, 0xc3d4, 0xc3d5, 0xf2f6, 0xf340, 0xf342, - 0xf2fa, 0xf2fc, 0xf2fe, 0xf2fb, 0xf343, 0xc3d1, 0xc3d7, 0xc3d3, - 0xc3d0, 0xf4d0, 0xc4b7, 0xf4ce, 0xf4d2, 0xf4d3, 0xc4b5, 0xf4d4, - 0xf4d1, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0xc4b6, 0xc4b3, 0xc4fe, - 0xc540, 0xf64e, 0xf64d, 0xf650, 0xf651, 0xc541, 0xf756, 0xf75b, - 0xc5aa, 0xf758, 0xf757, 0xf75a, 0xf759, 0xf843, 0xc5dc, 0xf842, - 0xf840, 0xf841, 0xc5fe, 0xc5fd, 0xf8c1, 0xf8c2, 0xc640, 0xf94d, - 0xf94e, 0xc667, 0xc66d, 0xf9a9, 0xf9c8, 0xa8a6, 0xd7cd, 0xd7ce, - 0xe052, 0xe450, 0xe7e5, 0xc1c6, 0xc1c5, 0xf0ee, 0xf344, 0xf844, - 0xa8a7, 0xd3de, 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6, - 0xbddd, 0xeeb1, 0xc2d7, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, 0xb362, - 0xd7cf, 0xd7d0, 0xdbe5, 0xb648, 0xb8e6, 0xe056, 0xe055, 0xe057, - 0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0xeeb5, 0xeeb2, - 0xeeb4, 0xeeb3, 0xc1c7, 0xf0ef, 0xf346, 0xf345, 0xcba4, 0xb05c, - 0xb05b, 0xd3e0, 0xd7d1, 0xdbe7, 0xdbe6, 0xb649, 0xe059, 0xe05a, - 0xe058, 0xb8e8, 0xb8e7, 0xbbaa, 0xbba9, 0xe7e7, 0xebb3, 0xebb1, - 0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0xf0f2, 0xf0f1, 0xf0f0, 0xf347, - 0xf9aa, 0xa8a9, 0xad73, 0xad74, 0xb05d, 0xb05e, 0xd3e2, 0xd3e1, - 0xd7d2, 0xb368, 0xb366, 0xb363, 0xb367, 0xb365, 0xb364, 0xb64a, - 0xdbea, 0xb8ed, 0xb64c, 0xb651, 0xdbec, 0xb653, 0xb652, 0xb655, - 0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d, 0xdbe9, 0xb654, 0xb650, - 0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0, 0xb8ea, 0xb8eb, 0xb8e9, - 0xe05b, 0xe454, 0xbbac, 0xbbad, 0xbbab, 0xe453, 0xe455, 0xe7ea, - 0xe7ec, 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, 0xbddf, 0xbde9, 0xbde5, - 0xbde6, 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, 0xe7eb, 0xbde8, 0xbde3, - 0xbde4, 0xebb5, 0xebb7, 0xebb6, 0xebb8, 0xbfe0, 0xebb4, 0xc1cb, - 0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9, 0xf0f3, 0xf0f6, 0xf0f5, - 0xf0f4, 0xc2d8, 0xf348, 0xf349, 0xc3d8, 0xf34a, 0xc3d9, 0xc4ba, - 0xc4b9, 0xf652, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, 0xf845, - 0xc642, 0xa8aa, 0xb36a, 0xb369, 0xe05c, 0xe05d, 0xbbae, 0xebb9, - 0xbdea, 0xebba, 0xeeb9, 0xa8ab, 0xd0b2, 0xad76, 0xad75, 0xd3e3, - 0xb05f, 0xd3e4, 0xd7d5, 0xd7d4, 0xd7d3, 0xdbee, 0xb658, 0xdbed, - 0xb657, 0xdbef, 0xb656, 0xe05f, 0xe062, 0xe060, 0xe061, 0xe065, - 0xe05e, 0xe066, 0xe063, 0xe064, 0xbbb0, 0xe456, 0xbbaf, 0xe7f2, - 0xe7f0, 0xbdeb, 0xe7ef, 0xe7f1, 0xbdec, 0xebbb, 0xebbc, 0xc1cd, - 0xf34c, 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, 0xf96f, 0xa8ac, - 0xad77, 0xd3e5, 0xd3e7, 0xd3e6, 0xd7d8, 0xb36c, 0xd7d6, 0xb36b, - 0xd7d9, 0xd7da, 0xd7d7, 0xdbfb, 0xb660, 0xdbf3, 0xdbf9, 0xb65b, - 0xb65e, 0xdbf2, 0xb659, 0xdbf6, 0xe06c, 0xb65d, 0xdbf1, 0xdbf7, - 0xdbf4, 0xdbfa, 0xdbf0, 0xdbf8, 0xb65c, 0xb65f, 0xdbf5, 0xb65a, - 0xb8f2, 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8, 0xb8f9, 0xe070, - 0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0xe06b, 0xb8f4, 0xe067, - 0xe06a, 0xe071, 0xb8f5, 0xe073, 0xb8f6, 0xbbb1, 0xe45b, 0xe461, - 0xe459, 0xe462, 0xe458, 0xe45d, 0xe463, 0xe460, 0xe45f, 0xe45e, - 0xe457, 0xe45c, 0xe45a, 0xbdf1, 0xbdee, 0xe7fb, 0xe841, 0xe843, - 0xe840, 0xe7f8, 0xe7fa, 0xe845, 0xe842, 0xe7fc, 0xe846, 0xe7f9, - 0xe844, 0xbdef, 0xbdf5, 0xbdf3, 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4, - 0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe, 0xbdf2, 0xbded, 0xe7f7, 0xebc6, - 0xbfe2, 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0xebbf, 0xbfe5, 0xebc3, - 0xebc4, 0xebbe, 0xebc7, 0xebc0, 0xebc5, 0xbfe4, 0xbfe1, 0xebc1, - 0xeebf, 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb, 0xeeba, - 0xeebd, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa, 0xc2d9, 0xf141, - 0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, 0xf0f9, 0xf142, 0xf0f8, - 0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, 0xf144, 0xf352, 0xc3de, - 0xf34f, 0xf353, 0xc3db, 0xf351, 0xc3e0, 0xc3dd, 0xf350, 0xc3df, - 0xf354, 0xc3da, 0xc4bc, 0xc4be, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc, - 0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0xf761, - 0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, 0xf846, - 0xf75f, 0xf8c6, 0xf8c3, 0xf8c4, 0xf8c5, 0xc65c, 0xf951, 0xf950, - 0xf94f, 0xf970, 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060, 0xb8fa, - 0xbdf6, 0xebc8, 0xc2df, 0xf355, 0xf9ac, 0xa8ae, 0xaaee, 0xad79, - 0xad78, 0xb063, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0xd7df, 0xd7db, - 0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, 0xd7e0, 0xd7e1, 0xdc43, - 0xdc41, 0xdc45, 0xdc46, 0xdc4c, 0xdc48, 0xdc4a, 0xdc42, 0xdbfc, - 0xdc49, 0xdc4b, 0xdc44, 0xdc47, 0xdbfd, 0xb662, 0xdc40, 0xdbfe, - 0xb661, 0xb663, 0xb8fd, 0xe075, 0xe077, 0xe076, 0xe07b, 0xb8fb, - 0xe078, 0xe074, 0xe079, 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0xe467, - 0xe466, 0xe464, 0xe465, 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d, - 0xe84e, 0xe849, 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9, - 0xe84b, 0xe84c, 0xe848, 0xbe40, 0xbdfb, 0xbdfa, 0xbdfc, 0xe847, - 0xebca, 0xbfe8, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce, - 0xbfe9, 0xebcd, 0xbfe7, 0xc1d3, 0xc1d6, 0xeec1, 0xc1d4, 0xeec0, - 0xc1d2, 0xc1d5, 0xf146, 0xf147, 0xf148, 0xc2e0, 0xf149, 0xc2e1, - 0xc3e2, 0xf358, 0xf359, 0xf357, 0xf356, 0xf35a, 0xc3e1, 0xf4dd, - 0xf4db, 0xf4dc, 0xf4de, 0xf4da, 0xf4df, 0xf658, 0xf659, 0xf657, - 0xc546, 0xf764, 0xc5af, 0xf765, 0xf848, 0xf847, 0xa8af, 0xb664, - 0xb940, 0xbbb6, 0xbfec, 0xbfeb, 0xc3e3, 0xc47c, 0xc547, 0xa8b0, - 0xb064, 0xb941, 0xf35b, 0xcba6, 0xa8b1, 0xa8b4, 0xa8b3, 0xa8b2, - 0xcba5, 0xcdcd, 0xcdcf, 0xaaef, 0xaaf1, 0xcdcc, 0xcdce, 0xaaf0, - 0xcdd1, 0xcdd0, 0xcdd2, 0xd0b6, 0xd0b4, 0xad7c, 0xd0b3, 0xada3, - 0xad7e, 0xad7b, 0xada4, 0xad7d, 0xada2, 0xada1, 0xd0b5, 0xad7a, - 0xb06a, 0xd3eb, 0xd3f1, 0xb067, 0xb06e, 0xb069, 0xd3ee, 0xd3f0, - 0xb06c, 0xd3ea, 0xd3ed, 0xb068, 0xb065, 0xd3ec, 0xb06b, 0xd3ef, - 0xb06d, 0xb066, 0xd7e3, 0xd7e6, 0xb370, 0xb37a, 0xb376, 0xd7e4, - 0xb37e, 0xb377, 0xb37c, 0xb372, 0xb36f, 0xb371, 0xb37d, 0xd7e5, - 0xb375, 0xb378, 0xb374, 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2, - 0xdc4d, 0xb665, 0xdc4f, 0xb667, 0xb669, 0xdc4e, 0xb666, 0xb66a, - 0xb668, 0xb947, 0xe0a3, 0xb94f, 0xe07e, 0xb950, 0xb945, 0xe0a1, - 0xb94a, 0xe0a2, 0xb943, 0xb942, 0xb94d, 0xb94c, 0xb94b, 0xb949, - 0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0xbbb8, 0xbbbb, 0xbbbf, - 0xbbb9, 0xbbbe, 0xbbbc, 0xbbb7, 0xbbbd, 0xbbba, 0xe852, 0xbe43, - 0xbe41, 0xe853, 0xbe44, 0xbe42, 0xe851, 0xe850, 0xbff0, 0xe84f, - 0xbfee, 0xbfed, 0xebd0, 0xbe45, 0xbfef, 0xebd1, 0xbff2, 0xebd2, - 0xbff1, 0xc1d8, 0xeec3, 0xc1d7, 0xc1dc, 0xc1da, 0xc1db, 0xc2e3, - 0xc1d9, 0xeec2, 0xebd3, 0xc2e2, 0xc2e4, 0xc3e4, 0xc3e5, 0xf4e0, - 0xc5de, 0xc5dd, 0xa8b6, 0xca55, 0xb06f, 0xca52, 0xca53, 0xca51, - 0xca54, 0xcbaa, 0xcba7, 0xcbac, 0xcba8, 0xa8b7, 0xa8ba, 0xcba9, - 0xa8b9, 0xcbab, 0xa8b8, 0xcdd5, 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6, - 0xcdd4, 0xaaf2, 0xaaf5, 0xaaf3, 0xd0b8, 0xd0bc, 0xd0b9, 0xada7, - 0xada8, 0xd0bb, 0xd0bd, 0xd0bf, 0xada5, 0xd0be, 0xada6, 0xd7ee, - 0xd0ba, 0xd3f2, 0xd3fb, 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc, - 0xb071, 0xd3f7, 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8, - 0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0xd7e8, 0xd7ea, - 0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0xdc56, 0xebd4, 0xdc57, - 0xdc54, 0xb3a3, 0xb66e, 0xdc53, 0xdc59, 0xdc58, 0xb66b, 0xdc5c, - 0xdc52, 0xdc5b, 0xdc50, 0xdc5a, 0xdc55, 0xb66d, 0xe0aa, 0xe0a5, - 0xe0ab, 0xe0a6, 0xe0a4, 0xe0a7, 0xb951, 0xe0a9, 0xe0a8, 0xb952, - 0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c, - 0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0xe859, 0xbe48, 0xf14a, - 0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, 0xbe46, - 0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0xeec4, 0xc1dd, - 0xf14b, 0xf14c, 0xf14d, 0xf35d, 0xf35c, 0xf4e2, 0xf4e1, 0xf65b, - 0xf65c, 0xf65a, 0xf766, 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075, - 0xb074, 0xd440, 0xd441, 0xd3fe, 0xb073, 0xd7f5, 0xd7f6, 0xd7f2, - 0xb3a4, 0xd7f3, 0xd7f4, 0xdc5f, 0xdc61, 0xdc5d, 0xdc60, 0xb66f, - 0xdc5e, 0xb670, 0xdd73, 0xb955, 0xb954, 0xb953, 0xe0ac, 0xe0ad, - 0xe473, 0xe475, 0xbbc6, 0xbbc3, 0xbbc5, 0xbbc4, 0xe474, 0xe472, - 0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a, - 0xbe4b, 0xe85d, 0xbe4c, 0xebdb, 0xebdc, 0xebd9, 0xebda, 0xbff4, - 0xebd8, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb, 0xc1df, 0xeec9, - 0xeecc, 0xeeca, 0xeec6, 0xc1de, 0xf14f, 0xf150, 0xf14e, 0xf152, - 0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151, 0xf35e, 0xc3e6, 0xf4e5, - 0xf4e6, 0xc4bf, 0xf4e4, 0xf4e3, 0xf65d, 0xc548, 0xf849, 0xf8c8, - 0xf8c7, 0xc643, 0xc65d, 0xf8c9, 0xf971, 0xc66f, 0xa8bc, 0xaaf6, - 0xb956, 0xc4c0, 0xa8bd, 0xadab, 0xb3a5, 0xb671, 0xc2e7, 0xaaf7, - 0xd0c1, 0xd0c0, 0xd442, 0xb078, 0xb076, 0xb07a, 0xd444, 0xb079, - 0xb077, 0xd443, 0xb3a8, 0xd7fc, 0xb3a7, 0xb3a9, 0xd842, 0xb3ab, - 0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0xd7f9, 0xd7fa, 0xd7f8, - 0xb3a6, 0xd841, 0xd7fb, 0xd7fd, 0xdc6d, 0xdc6c, 0xdc6a, 0xdc62, - 0xdc71, 0xdc65, 0xdc6f, 0xdc76, 0xdc6e, 0xb679, 0xb675, 0xdc63, - 0xdc69, 0xb677, 0xdc68, 0xb678, 0xb67a, 0xdc6b, 0xb672, 0xb673, - 0xdc77, 0xdc75, 0xdc74, 0xdc66, 0xdc72, 0xb676, 0xb674, 0xdc73, - 0xdc64, 0xdc67, 0xdc70, 0xe4ba, 0xe0b7, 0xe0b0, 0xe0c3, 0xe0cc, - 0xe0b3, 0xb961, 0xe0c0, 0xb957, 0xb959, 0xb965, 0xe0b1, 0xb95a, - 0xb95c, 0xb966, 0xb95b, 0xb964, 0xe0b9, 0xe0ae, 0xb962, 0xe0b8, - 0xb95e, 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, 0xe0c6, 0xb960, 0xe0af, - 0xe0c9, 0xe0c4, 0xe0cb, 0xb958, 0xb967, 0xb95d, 0xe0b5, 0xe0bd, - 0xe0c1, 0xe0c5, 0xb95f, 0xe0b4, 0xe0b2, 0xe0be, 0xe0bb, 0xe0ba, - 0xe0bf, 0xe0c2, 0xe0c7, 0xe478, 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc, - 0xbbd0, 0xe4ad, 0xe4b5, 0xe4a6, 0xbbc8, 0xe4aa, 0xe0b6, 0xbbc9, - 0xe4b1, 0xe4b6, 0xe4ae, 0xe4b0, 0xe4b9, 0xe4b2, 0xe47e, 0xe4a9, - 0xbbd1, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb, 0xe4a5, 0xbbca, 0xe4b3, - 0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0xe47b, 0xe4af, 0xe4ac, 0xe4a7, - 0xe477, 0xe476, 0xe4a1, 0xe4b4, 0xbbcf, 0xe4b7, 0xe47d, 0xe4a3, - 0xbe52, 0xbe5a, 0xbe55, 0xe8a4, 0xe8a1, 0xe867, 0xbe50, 0xbe4f, - 0xbe56, 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e, 0xe8a3, - 0xbe58, 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877, 0xe875, - 0xe868, 0xe862, 0xe87d, 0xbe57, 0xe87e, 0xe878, 0xe86d, 0xe86b, - 0xe866, 0xe86e, 0xe87b, 0xe86a, 0xe87a, 0xe8a2, 0xbe53, 0xe876, - 0xe87c, 0xe872, 0xe86c, 0xbe51, 0xe4a8, 0xe870, 0xbe59, 0xe869, - 0xebf4, 0xbff7, 0xebf3, 0xebf0, 0xec44, 0xbffb, 0xec41, 0xebf8, - 0xec43, 0xebe9, 0xebf6, 0xbffd, 0xebe1, 0xebdf, 0xec42, 0xec40, - 0xebfe, 0xebed, 0xebec, 0xebe2, 0xc040, 0xebe8, 0xebf2, 0xebfd, - 0xc043, 0xec45, 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0xebef, 0xebde, - 0xebe0, 0xbff5, 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041, - 0xebdd, 0xc1e3, 0xebf9, 0xebfc, 0xbffc, 0xebeb, 0xc044, 0xbff9, - 0xbff8, 0xebf5, 0xebfb, 0xbff6, 0xebe4, 0xebfa, 0xebe5, 0xebea, - 0xeed2, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3, - 0xeed8, 0xeed9, 0xeee2, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, 0xeed4, - 0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0xeee8, 0xeeda, 0xeee7, 0xeee9, - 0xeed0, 0xc1e6, 0xeeea, 0xeede, 0xc1ea, 0xeedb, 0xc1ec, 0xeee4, - 0xc1e4, 0xeed6, 0xeee5, 0xeedf, 0xebe3, 0xeee6, 0xeed3, 0xc1e9, - 0xeeeb, 0xc1e2, 0xeece, 0xf160, 0xf159, 0xc2e9, 0xf154, 0xf163, - 0xf15b, 0xeedc, 0xf165, 0xf155, 0xc2e8, 0xf15f, 0xc2ea, 0xc2f2, - 0xc2f0, 0xf161, 0xc2f1, 0xf157, 0xf158, 0xf15d, 0xf162, 0xeecd, - 0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e, 0xf15a, 0xf168, 0xf36a, - 0xf15c, 0xc2ee, 0xc2ed, 0xeecf, 0xc2ef, 0xf164, 0xf166, 0xc2ec, - 0xf169, 0xf153, 0xf156, 0xf373, 0xf363, 0xc3eb, 0xf371, 0xf361, - 0xc3ec, 0xf36c, 0xf368, 0xc3f1, 0xf372, 0xf362, 0xf365, 0xc3e9, - 0xf374, 0xf36d, 0xf370, 0xc3ef, 0xc3f4, 0xc3f2, 0xf369, 0xf364, - 0xc3ed, 0xc3ee, 0xf360, 0xc3ea, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3, - 0xf36b, 0xf375, 0xc3f5, 0xf367, 0xf36e, 0xf4f3, 0xf542, 0xf4f5, - 0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed, 0xf4fe, - 0xf4f4, 0xc4c2, 0xf544, 0xf4f6, 0xf4fb, 0xf4fd, 0xf4e7, 0xf541, - 0xf4f2, 0xf4f7, 0xf4eb, 0xf4ef, 0xf543, 0xf4f9, 0xf4e8, 0xf4ec, - 0xf4ee, 0xf4f8, 0xc4c1, 0xf4f1, 0xf4ea, 0xf4f0, 0xf661, 0xf666, - 0xc54f, 0xf668, 0xc549, 0xf664, 0xf66a, 0xc54e, 0xc54a, 0xc54b, - 0xf660, 0xf667, 0xc54d, 0xf665, 0xc54c, 0xf65f, 0xf663, 0xf662, - 0xf65e, 0xf669, 0xc5b1, 0xf76d, 0xf770, 0xf76c, 0xf76e, 0xf76f, - 0xf769, 0xf76a, 0xf767, 0xf76b, 0xf768, 0xc5b2, 0xc5b3, 0xf84b, - 0xf84d, 0xf84c, 0xf84e, 0xc5e0, 0xf84a, 0xc5df, 0xc5e1, 0xf8cb, - 0xf8cc, 0xc644, 0xf8ca, 0xf953, 0xf952, 0xf954, 0xc65f, 0xf955, - 0xc65e, 0xf956, 0xf972, 0xf975, 0xf974, 0xc668, 0xf973, 0xc672, - 0xc670, 0xc671, 0xc677, 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0xaaf8, - 0xd844, 0xdc78, 0xe8a5, 0xf376, 0xaaf9, 0xadac, 0xb07b, 0xd845, - 0xd846, 0xb3ac, 0xb67d, 0xdc7a, 0xdc79, 0xb6a3, 0xb67c, 0xdc7b, - 0xb67e, 0xb6a2, 0xb6a1, 0xb67b, 0xb968, 0xe0d0, 0xe0ce, 0xe0cf, - 0xe0cd, 0xbbd2, 0xbbd5, 0xbbd7, 0xbbd6, 0xbbd3, 0xbbd4, 0xe8a7, - 0xe8a6, 0xbe5b, 0xe8a8, 0xe8a9, 0xbe5c, 0xec4d, 0xec4b, 0xeef3, - 0xec49, 0xec4a, 0xc046, 0xec46, 0xec4e, 0xec48, 0xec4c, 0xeeef, - 0xeef1, 0xeef2, 0xc1f3, 0xeeee, 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0, - 0xc1f1, 0xec47, 0xc2f5, 0xf16e, 0xf16c, 0xf16d, 0xc2f3, 0xc2f6, - 0xc2f4, 0xf377, 0xf378, 0xc3f6, 0xf545, 0xf547, 0xf546, 0xc4c4, - 0xc550, 0xf66d, 0xf66c, 0xf66b, 0xaafa, 0xc9aa, 0xca58, 0xa6e9, - 0xca56, 0xca59, 0xca57, 0xcbae, 0xa8c1, 0xa8c2, 0xcbb0, 0xa8bf, - 0xcbaf, 0xcbad, 0xa8c0, 0xa8be, 0xcdd8, 0xcddb, 0xaafd, 0xcdda, - 0xcdd9, 0xaafc, 0xaafb, 0xab40, 0xcddc, 0xaafe, 0xd0c6, 0xadae, - 0xadaf, 0xadb0, 0xd0c7, 0xd0c3, 0xadad, 0xd0c4, 0xd0c5, 0xd0c2, - 0xb0a4, 0xb0a1, 0xd445, 0xb0a2, 0xb0a5, 0xd446, 0xb07e, 0xb07c, - 0xb07d, 0xb0a3, 0xb3ad, 0xd849, 0xb3b5, 0xd848, 0xd84b, 0xb3b1, - 0xd84a, 0xb6ab, 0xb3af, 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, 0xb3b0, - 0xd847, 0xb6a7, 0xdc7d, 0xdca3, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9, - 0xdc7c, 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0xb6aa, 0xb6a5, 0xe0d3, - 0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0xe0d4, 0xb969, 0xbbd8, 0xbbda, - 0xbbd9, 0xe4bb, 0xe4bc, 0xe8ab, 0xe8aa, 0xc047, 0xc048, 0xec4f, - 0xc049, 0xeef6, 0xeef4, 0xeef5, 0xc1f4, 0xf16f, 0xc3f7, 0xc1f5, - 0xab41, 0xb0a6, 0xd447, 0xd84c, 0xb3b6, 0xb6ad, 0xdca4, 0xdca6, - 0xb6af, 0xb6ae, 0xb6b0, 0xb6b1, 0xdca5, 0xb96e, 0xb96f, 0xb96d, - 0xbbdb, 0xb96c, 0xe0d5, 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6, - 0xf170, 0xf174, 0xc2f9, 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb, - 0xf173, 0xf379, 0xc2f7, 0xc3f8, 0xf8cd, 0xab42, 0xb3b8, 0xb3b7, - 0xb6b2, 0xdca8, 0xdca7, 0xb6b3, 0xe0d9, 0xb973, 0xb970, 0xe0d8, - 0xb972, 0xe0d6, 0xb971, 0xe0d7, 0xe4bd, 0xbbdd, 0xe8af, 0xbe5d, - 0xe8ad, 0xbe5e, 0xbe5f, 0xe8ae, 0xbe60, 0xec51, 0xc04e, 0xc04b, - 0xc050, 0xec53, 0xc04c, 0xec52, 0xc04f, 0xc04d, 0xeef9, 0xeefb, - 0xc1f7, 0xeefa, 0xc1f8, 0xeef8, 0xeef7, 0xf177, 0xf176, 0xc2fc, - 0xf178, 0xf37e, 0xc3fa, 0xf37d, 0xf37a, 0xc3f9, 0xf37b, 0xf37c, - 0xf548, 0xf549, 0xc4c5, 0xc553, 0xf66e, 0xc551, 0xc552, 0xf66f, - 0xc5b4, 0xc5b5, 0xf771, 0xc645, 0xf8cf, 0xc647, 0xf8ce, 0xf8d0, - 0xc646, 0xf957, 0xf9ad, 0xab43, 0xb974, 0xe4be, 0xe8b0, 0xc051, - 0xc052, 0xab44, 0xbe61, 0xc3fb, 0xadb1, 0xc053, 0xc5e2, 0xadb2, - 0xd84d, 0xdca9, 0xdcab, 0xdcaa, 0xe0dd, 0xe0da, 0xb975, 0xb976, - 0xe0db, 0xe0dc, 0xe4c0, 0xe4c5, 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8, - 0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2, 0xe4c6, 0xbbdf, 0xe8b3, 0xe8b1, - 0xbe63, 0xbe62, 0xe8b2, 0xbe64, 0xec56, 0xec55, 0xc054, 0xec54, - 0xeefc, 0xeefe, 0xef41, 0xef40, 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd, - 0xf17d, 0xf1a2, 0xc2fe, 0xf17b, 0xf17e, 0xf17c, 0xf179, 0xc340, - 0xf17a, 0xf3a1, 0xf3a3, 0xf3a2, 0xf54a, 0xf54b, 0xf670, 0xc5b7, - 0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, 0xc669, 0xadb3, 0xb6b4, - 0xe4ca, 0xe4c9, 0xe8b5, 0xe8b4, 0xc1fa, 0xef43, 0xef42, 0xf1a5, - 0xf1a3, 0xf1a6, 0xf1a4, 0xc3fc, 0xf3a4, 0xf3a5, 0xf3a6, 0xf671, - 0xf772, 0xf8d2, 0xadb4, 0xec57, 0xef44, 0xadb5, 0xbbe0, 0xec58, - 0xc341, 0xf1a7, 0xc3fd, 0xf54c, 0xf54d, 0xc554, 0xf851, 0xadb6, - 0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, 0xb6b7, 0xb97a, - 0xb97c, 0xe0df, 0xe0e0, 0xe0de, 0xb977, 0xb978, 0xb97b, 0xb979, - 0xe4cb, 0xbbe1, 0xbbe2, 0xe8bc, 0xbe67, 0xe8b7, 0xe8b6, 0xe8bb, - 0xbe65, 0xc05b, 0xe8b8, 0xe8bd, 0xe8ba, 0xe8b9, 0xbe66, 0xc059, - 0xec5a, 0xc055, 0xec5b, 0xec59, 0xc058, 0xc056, 0xc05a, 0xc057, - 0xef45, 0xef4a, 0xef46, 0xef49, 0xc1fb, 0xedd4, 0xef48, 0xef47, - 0xc344, 0xc342, 0xc345, 0xc343, 0xf1a8, 0xf1a9, 0xf1aa, 0xc346, - 0xf3aa, 0xc440, 0xf3a8, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe, 0xf551, - 0xf54e, 0xf54f, 0xf550, 0xf672, 0xc556, 0xc555, 0xf774, 0xf773, - 0xc5b8, 0xc5e3, 0xc649, 0xc660, 0xf958, 0xf9ae, 0xf9af, 0xadb7, - 0xdcad, 0xe0e1, 0xe4cc, 0xe4cd, 0xbbe3, 0xbbe4, 0xe8be, 0xbe68, - 0xc1fc, 0xf1ab, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab, - 0xf675, 0xf552, 0xf553, 0xc4c6, 0xf674, 0xf673, 0xf775, 0xf9b0, - 0xadb8, 0xadb9, 0xb0a7, 0xd448, 0xd84f, 0xb6b8, 0xb6bb, 0xb6b9, - 0xdcae, 0xb6bd, 0xb6ba, 0xb6bc, 0xb97e, 0xe0e2, 0xe0e3, 0xe8c0, - 0xb97d, 0xb9a1, 0xb9a2, 0xe4cf, 0xe4ce, 0xbbe5, 0xbbe6, 0xe4d0, - 0xe8bf, 0xbbe8, 0xbe69, 0xbbe7, 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a, - 0xe8c2, 0xe8c5, 0xe8c3, 0xe8c4, 0xbe6c, 0xc061, 0xc05f, 0xc05e, - 0xec5d, 0xc060, 0xec5c, 0xef4b, 0xec5e, 0xc05d, 0xec5f, 0xef4e, - 0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, 0xef54, 0xef53, 0xef50, - 0xef4f, 0xc1fd, 0xf1ae, 0xf1ad, 0xc34a, 0xc348, 0xc349, 0xf1ac, - 0xf3b1, 0xc443, 0xf3b0, 0xf3af, 0xc444, 0xf558, 0xf557, 0xf555, - 0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557, - 0xf676, 0xf556, 0xf777, 0xc5e4, 0xc661, 0xf959, 0xf9b1, 0xadba, - 0xd850, 0xef55, 0xadbb, 0xe4d2, 0xe4d1, 0xec60, 0xef57, 0xef56, - 0xc34c, 0xf3b2, 0xf3b3, 0xc4c9, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be, - 0xe0e4, 0xe0e6, 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0xe4d4, - 0xe4d6, 0xe4d5, 0xe4d8, 0xbbe9, 0xe4d7, 0xe4d3, 0xe4d9, 0xe8cc, - 0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, 0xbe6e, 0xbe71, 0xbe73, - 0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, 0xe8ce, 0xbe74, 0xbe70, - 0xe8c6, 0xbe6d, 0xbe6f, 0xc063, 0xec66, 0xec64, 0xec63, 0xec69, - 0xec68, 0xec67, 0xec62, 0xc062, 0xec61, 0xec65, 0xc064, 0xef5a, - 0xef5e, 0xef5b, 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60, - 0xef61, 0xc240, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8, - 0xf1b7, 0xf1b1, 0xf1b5, 0xf1b0, 0xf1b2, 0xc34d, 0xf1af, 0xf1b4, - 0xf3c0, 0xf3b5, 0xc445, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf, 0xf3b7, - 0xf3be, 0xf3bb, 0xf3ba, 0xf3bd, 0xf3b8, 0xf3b6, 0xf3bc, 0xf560, - 0xf55e, 0xc4ca, 0xf55d, 0xf563, 0xf561, 0xc4cb, 0xf55c, 0xf55a, - 0xf55b, 0xc4cd, 0xf55f, 0xc4cc, 0xf562, 0xf678, 0xf67e, 0xf679, - 0xc55b, 0xf6a1, 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558, - 0xf67a, 0xf77d, 0xf7a1, 0xf77e, 0xf77b, 0xc5bb, 0xf778, 0xf77c, - 0xf7a3, 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, 0xf853, - 0xc5e5, 0xc5e6, 0xf8d3, 0xc64a, 0xf976, 0xc66a, 0xf9b3, 0xc66b, - 0xf9b4, 0xf9b5, 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd, 0xb0a9, 0xe0e9, - 0xe0e8, 0xbbea, 0xbbeb, 0xe4da, 0xe8d2, 0xec6c, 0xbe75, 0xc065, - 0xec6a, 0xec6d, 0xc066, 0xef64, 0xec6b, 0xf1b9, 0xc34e, 0xf3c1, - 0xf566, 0xf564, 0xf565, 0xf6a2, 0xc55c, 0xf7a4, 0xc5ea, 0xc5bc, - 0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0xb0aa, 0xf1ba, 0xd449, 0xb9a6, - 0xe4db, 0xbbec, 0xe4dc, 0xe8d4, 0xe8d3, 0xc068, 0xbe76, 0xbe77, - 0xe8d7, 0xe8d6, 0xe8d5, 0xec6e, 0xec71, 0xec70, 0xec6f, 0xc067, - 0xef68, 0xef66, 0xef65, 0xef67, 0xc34f, 0xf1bc, 0xf1bd, 0xc350, - 0xf1bb, 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0xf567, 0xf569, - 0xf568, 0xf6a3, 0xf6a6, 0xf6a4, 0xf6a5, 0xf7a5, 0xc5bd, 0xf854, - 0xf855, 0xf856, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0xbe78, 0xc069, - 0xf1be, 0xf7a6, 0xf9c4, 0xd44a, 0xc67b, 0xb0ac, 0xec72, 0xf1bf, - 0xf3c6, 0xf6a7, 0xf7a7, 0xb0ad, 0xe4dd, 0xe4de, 0xbbed, 0xbbee, - 0xe8d9, 0xbe7a, 0xbe79, 0xe8d8, 0xef69, 0xf1c0, 0xf1c2, 0xf1c1, - 0xc353, 0xc352, 0xc351, 0xc55e, 0xf6a8, 0xc55d, 0xf7a9, 0xf7a8, - 0xc64c, 0xf8d5, 0xb3bd, 0xe0ea, 0xe4e1, 0xe4df, 0xe4e0, 0xe8e2, - 0xe8dd, 0xe8da, 0xe8e1, 0xe8e3, 0xbe7c, 0xe8e0, 0xe8dc, 0xe8db, - 0xe8df, 0xe8de, 0xbe7b, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77, - 0xec73, 0xec79, 0xec74, 0xef72, 0xec75, 0xeca2, 0xec7c, 0xc06a, - 0xec7b, 0xec7a, 0xec7e, 0xef6a, 0xef6d, 0xef6c, 0xef74, 0xef6f, - 0xef73, 0xef71, 0xef70, 0xef6e, 0xef6b, 0xc243, 0xc242, 0xc244, - 0xc241, 0xef75, 0xf1c8, 0xf1cb, 0xf1c9, 0xf1cd, 0xf1ce, 0xf1c6, - 0xc358, 0xf1c7, 0xf1c5, 0xf1cc, 0xf1c4, 0xf1c3, 0xc357, 0xc355, - 0xc354, 0xf1ca, 0xf3cf, 0xf3d5, 0xc44a, 0xf3d0, 0xf3d3, 0xf3d7, - 0xc44b, 0xf3d2, 0xf3ca, 0xf3c9, 0xf3d6, 0xf3cd, 0xf3cb, 0xf3d4, - 0xf3cc, 0xc449, 0xc448, 0xf3c7, 0xf3c8, 0xf3d1, 0xf3ce, 0xf56c, - 0xf56f, 0xc356, 0xf56d, 0xf573, 0xf571, 0xf56b, 0xf576, 0xf56a, - 0xc4cf, 0xf572, 0xf56e, 0xc4ce, 0xf575, 0xf574, 0xf6ab, 0xf6aa, - 0xf6b1, 0xf6ad, 0xf6b0, 0xc560, 0xf6ae, 0xf6af, 0xf6a9, 0xf6ac, - 0xc55f, 0xc5bf, 0xf7b4, 0xf7af, 0xf7b3, 0xf7b6, 0xf7b2, 0xf7ae, - 0xc5c1, 0xf7b1, 0xf7b5, 0xc5c0, 0xf7ac, 0xf570, 0xf7b0, 0xf7ad, - 0xf7aa, 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860, - 0xf859, 0xf857, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, 0xf858, 0xf85e, - 0xf8da, 0xc64d, 0xf8db, 0xf8d9, 0xf8d6, 0xf8d8, 0xf8d7, 0xf95a, - 0xf95c, 0xf95b, 0xf979, 0xf978, 0xf977, 0xf97a, 0xc673, 0xc674, - 0xf9ca, 0xf9ce, 0xb3be, 0xdcaf, 0xe0ed, 0xb9a7, 0xe0eb, 0xe0ec, - 0xe4e2, 0xe4e3, 0xbbf1, 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, 0xe8eb, - 0xe8e5, 0xe8ec, 0xe8e4, 0xe8e6, 0xe8e7, 0xe8ea, 0xbea1, 0xe8ef, - 0xe8ee, 0xbe7d, 0xe8e9, 0xe8ed, 0xbe7e, 0xecac, 0xc06f, 0xeca7, - 0xc06b, 0xeca4, 0xecaa, 0xecad, 0xc070, 0xeca9, 0xeca6, 0xecae, - 0xeca5, 0xecab, 0xc06c, 0xeca3, 0xc06d, 0xc06e, 0xeca8, 0xefa9, - 0xef7a, 0xef7b, 0xef7e, 0xef7c, 0xef76, 0xef79, 0xefa5, 0xef7d, - 0xc245, 0xefa7, 0xefa4, 0xc246, 0xefa6, 0xef77, 0xefa2, 0xefa3, - 0xefa1, 0xf1d2, 0xf1d4, 0xf1d7, 0xf1d1, 0xc359, 0xf1d9, 0xf1d0, - 0xf1da, 0xf1d6, 0xf1d8, 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf, - 0xc35a, 0xf1db, 0xc35b, 0xc44d, 0xef78, 0xf3f1, 0xf3e8, 0xc44f, - 0xf3e4, 0xc450, 0xf3ed, 0xf3e7, 0xf3dd, 0xc44e, 0xf3ea, 0xf3e5, - 0xf3e6, 0xf3d8, 0xf3df, 0xf3ee, 0xf3eb, 0xf3e3, 0xf3ef, 0xf3de, - 0xf3d9, 0xf3ec, 0xf3db, 0xf3e9, 0xf3e0, 0xf3f0, 0xf3dc, 0xc44c, - 0xf3da, 0xf3e1, 0xf3e2, 0xf57d, 0xf57b, 0xf5a2, 0xf5ae, 0xf5a5, - 0xf57c, 0xf578, 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577, - 0xf5a1, 0xf5a6, 0xf5a8, 0xf5ab, 0xf579, 0xf5af, 0xf5b0, 0xf5a9, - 0xf5ad, 0xf5a4, 0xf6c1, 0xf6c4, 0xc561, 0xf6c3, 0xf6c8, 0xf6c6, - 0xc562, 0xf6bd, 0xf6b3, 0xf6b2, 0xc564, 0xf6bf, 0xf6c0, 0xf6bc, - 0xf6b4, 0xf6b9, 0xf5ac, 0xf6b5, 0xc563, 0xf6bb, 0xf6ba, 0xf6b6, - 0xf6c2, 0xf6b7, 0xf7bb, 0xf6c5, 0xf6c7, 0xf6be, 0xf6b8, 0xf7bc, - 0xf7be, 0xf7b8, 0xc5c2, 0xf7c5, 0xf7c3, 0xc5c3, 0xf7c2, 0xf7c1, - 0xf7ba, 0xf7b7, 0xf7bd, 0xf7c6, 0xf7b9, 0xf7bf, 0xf869, 0xf86e, - 0xf864, 0xf867, 0xc5ee, 0xf86b, 0xf872, 0xf7c0, 0xf865, 0xf86f, - 0xf873, 0xf86a, 0xf863, 0xf86d, 0xf86c, 0xf871, 0xf870, 0xf7c4, - 0xf868, 0xf862, 0xf866, 0xc64e, 0xc64f, 0xf861, 0xf8e6, 0xf8dd, - 0xf8e5, 0xf8e2, 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0, - 0xf8de, 0xf8e4, 0xf95d, 0xf95e, 0xf960, 0xf95f, 0xf962, 0xf961, - 0xf97c, 0xf97b, 0xf9b7, 0xf9b8, 0xf9c5, 0xc678, 0xc67c, 0xf9cf, - 0xc67d, 0xb3bf, 0xc4d0, 0xf6c9, 0xc650, 0xc651, 0xb3c0, 0xe0ee, - 0xb9a8, 0xe8f0, 0xecb0, 0xecb1, 0xecaf, 0xefab, 0xefaa, 0xc247, - 0xf1df, 0xefac, 0xf1de, 0xf3f3, 0xc451, 0xc453, 0xf3f2, 0xc452, - 0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca, 0xc565, 0xc5ef, 0xf8e8, 0xf963, - 0xf9d2, 0xb3c1, 0xe4e5, 0xbea2, 0xecb3, 0xecb2, 0xefad, 0xc454, - 0xc4d1, 0xf7c7, 0xf9cb, 0xb3c2, 0xbbf2, 0xbea3, 0xf3f4, 0xf874, - 0xb6c0, 0xefae, 0xc664, 0xb6c1, 0xbea4, 0xc248, 0xf875, 0xb6c2, - 0xe8f1, 0xc072, 0xecb4, 0xecb5, 0xc071, 0xefaf, 0xc24c, 0xc24a, - 0xc24b, 0xc249, 0xf1e0, 0xc35c, 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6, - 0xc4d2, 0xf6cb, 0xf6cd, 0xf6cc, 0xc566, 0xf7c8, 0xf876, 0xf877, - 0xc5f0, 0xf964, 0xf97d, 0xc675, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5, - 0xe0ef, 0xefb1, 0xf1e2, 0xf1e1, 0xf878, 0xc652, 0xf965, 0xf97e, - 0xb9a9, 0xe8f2, 0xe8f3, 0xecb7, 0xb9aa, 0xc35d, 0xf1e3, 0xf6cf, - 0xc567, 0xf6d0, 0xf6ce, 0xf879, 0xf8e9, 0xb9ab, 0xefb4, 0xefb3, - 0xefb2, 0xf1e4, 0xf1e8, 0xf1e7, 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6, - 0xf5b9, 0xc4d3, 0xf5b8, 0xf6d1, 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9, - 0xf87c, 0xf87b, 0xf87a, 0xbbf3, 0xecb8, 0xc24d, 0xf3f7, 0xf3f8, - 0xf7cc, 0xf87d, 0xf8ea, 0xf966, 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e, - 0xf1e9, 0xf3f9, 0xf6d2, 0xf87e, 0xbea6, 0xefb5, 0xf1ea, 0xf3fa, - 0xf3fb, 0xf3fc, 0xf5be, 0xf5ba, 0xc568, 0xf5bd, 0xf5bc, 0xc4d4, - 0xf5bb, 0xc4d6, 0xc4d5, 0xf6d4, 0xf6d3, 0xc569, 0xc56a, 0xc5c6, - 0xf7cd, 0xc5c5, 0xf8a3, 0xf8a4, 0xf8a2, 0xf8a1, 0xc654, 0xf8eb, - 0xf8ec, 0xf8ed, 0xc653, 0xf967, 0xf96a, 0xf969, 0xf968, 0xf9d3, - 0xc073, 0xc365, 0xf5bf, 0xf6d5, 0xc5c7, 0xf7ce, 0xf9d5, 0xc074, - 0xefb6, 0xf7cf, 0xf9a1, 0xc94a, 0xddfc, 0xa14a, 0xa157, 0xa159, - 0xa15b, 0xa15f, 0xa160, 0xa163, 0xa164, 0xa167, 0xa168, 0xa16b, - 0xa16c, 0xa16f, 0xa170, 0xa173, 0xa174, 0xa177, 0xa178, 0xa17b, - 0xa17c, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb, 0xa1c8, 0xa1c9, 0xa15c, - 0xa14d, 0xa14f, 0xa151, 0xa152, 0xa153, 0xa154, 0xa17d, 0xa17e, - 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1cc, 0xa1cd, 0xa1ce, 0xa1de, - 0xa1df, 0xa1e0, 0xa1e1, 0xa1e2, 0xa24c, 0xa24d, 0xa24e, 0xa149, - 0xa1ad, 0xa243, 0xa248, 0xa1ae, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, - 0xa141, 0xa1d0, 0xa144, 0xa241, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, - 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, - 0xa1d5, 0xa1d7, 0xa1d6, 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, - 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, - 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, - 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa242, - 0xa1c4, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef, - 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, - 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, 0xa340, - 0xa341, 0xa342, 0xa343, 0xa161, 0xa155, 0xa162, 0xa14e, -}; - -static const Summary16 big5_uni2indx_page00[16] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x00ac }, { 4, 0x0083 }, - { 7, 0x0000 }, { 7, 0x0080 }, { 8, 0x0000 }, { 8, 0x0080 }, -}; -static const Summary16 big5_uni2indx_page02[38] = { - /* 0x0200 */ - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, - { 9, 0x0e80 }, { 13, 0x0200 }, { 14, 0x0000 }, { 14, 0x0000 }, - /* 0x0300 */ - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, - { 14, 0x0000 }, { 14, 0xfffe }, { 29, 0x03fb }, { 38, 0xfffe }, - { 53, 0x03fb }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, - /* 0x0400 */ - { 62, 0x0002 }, { 63, 0x1ff0 }, { 72, 0xfff8 }, { 85, 0xffff }, - { 101, 0xffff }, { 117, 0x0002 }, -}; -static const Summary16 big5_uni2indx_page20[44] = { - /* 0x2000 */ - { 118, 0x0000 }, { 118, 0x3318 }, { 124, 0x0064 }, { 127, 0x4824 }, - { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, - { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, - { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, - /* 0x2100 */ - { 131, 0x0228 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, - { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x03ff }, { 144, 0x0000 }, - { 144, 0x0000 }, { 144, 0x03cf }, { 152, 0x0000 }, { 152, 0x0000 }, - { 152, 0x0000 }, { 152, 0x0000 }, { 152, 0x0000 }, { 152, 0x0000 }, - /* 0x2200 */ - { 152, 0x0000 }, { 152, 0xc400 }, { 155, 0x4e29 }, { 162, 0x1030 }, - { 165, 0x0000 }, { 165, 0x0004 }, { 166, 0x00c3 }, { 170, 0x0000 }, - { 170, 0x0000 }, { 170, 0x0000 }, { 170, 0x0020 }, { 171, 0x8000 }, -}; -static const Summary16 big5_uni2indx_page24[37] = { - /* 0x2400 */ - { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, - { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x03ff }, { 182, 0x3ff0 }, - { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, - { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, - /* 0x2500 */ - { 192, 0x1005 }, { 195, 0x1111 }, { 199, 0x1010 }, { 201, 0x1010 }, - { 203, 0x0000 }, { 203, 0x4001 }, { 205, 0xe402 }, { 210, 0x000f }, - { 214, 0xfffe }, { 229, 0x0030 }, { 231, 0x0003 }, { 233, 0x300c }, - { 237, 0xc8c0 }, { 242, 0x0000 }, { 242, 0x003c }, { 246, 0x0000 }, - /* 0x2600 */ - { 246, 0x0260 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, - { 249, 0x0007 }, -}; -static const Summary16 big5_uni2indx_page30[62] = { - /* 0x3000 */ - { 252, 0xff2f }, { 265, 0x6037 }, { 272, 0x03fe }, { 281, 0x0000 }, - { 281, 0xfffe }, { 296, 0xffff }, { 312, 0xffff }, { 328, 0xffff }, - { 344, 0xffff }, { 360, 0x600f }, { 366, 0xfffe }, { 381, 0xffff }, - { 397, 0xffff }, { 413, 0xffff }, { 429, 0xffff }, { 445, 0x407f }, - /* 0x3100 */ - { 453, 0xffe0 }, { 464, 0xffff }, { 480, 0x03ff }, { 490, 0x0000 }, - { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, - { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, - { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, - /* 0x3200 */ - { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, - { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0000 }, - { 490, 0x0000 }, { 490, 0x0000 }, { 490, 0x0008 }, { 491, 0x0000 }, - { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, - /* 0x3300 */ - { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, - { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, { 491, 0x0000 }, - { 491, 0xc000 }, { 493, 0x7000 }, { 496, 0x0002 }, { 497, 0x0000 }, - { 497, 0x4010 }, { 499, 0x0026 }, -}; -static const Summary16 big5_uni2indx_page4e[1307] = { - /* 0x4e00 */ - { 502, 0xff8b }, { 514, 0xc373 }, { 523, 0x6840 }, { 527, 0x1b0f }, - { 535, 0xe9ac }, { 544, 0xf34c }, { 553, 0x0200 }, { 554, 0xc008 }, - { 557, 0x795c }, { 566, 0xca3e }, { 575, 0x7976 }, { 585, 0x0648 }, - { 589, 0x2fdf }, { 601, 0xf7f0 }, { 612, 0x033a }, { 618, 0xa8ff }, - /* 0x4f00 */ - { 629, 0xef37 }, { 641, 0x233f }, { 650, 0xb004 }, { 654, 0xfd59 }, - { 665, 0xf3ca }, { 675, 0xffff }, { 691, 0xde9f }, { 703, 0xfff9 }, - { 717, 0xabff }, { 730, 0x7df7 }, { 743, 0xc000 }, { 745, 0x8eec }, - { 754, 0xeebf }, { 767, 0xffdb }, { 781, 0xd003 }, { 786, 0x45fa }, - /* 0x5000 */ - { 795, 0xfae1 }, { 805, 0xdffe }, { 819, 0xbfef }, { 833, 0x10ab }, - { 839, 0xffeb }, { 853, 0xfcaa }, { 863, 0xef3f }, { 876, 0x24fd }, - { 885, 0x78ad }, { 894, 0x7f76 }, { 906, 0xf00c }, { 912, 0xedff }, - { 926, 0xcff6 }, { 938, 0x2cfa }, { 947, 0xf7f9 }, { 960, 0xeb6b }, - /* 0x5100 */ - { 971, 0x1ffd }, { 983, 0x95bf }, { 994, 0x6677 }, { 1004, 0xbfbf }, - { 1018, 0x3bfb }, { 1030, 0xfeb4 }, { 1041, 0x7bae }, { 1052, 0x11e2 }, - { 1058, 0xa681 }, { 1064, 0x41be }, { 1072, 0x1435 }, { 1078, 0x72c3 }, - { 1086, 0x7d70 }, { 1095, 0x7191 }, { 1102, 0x0003 }, { 1104, 0x276b }, - /* 0x5200 */ - { 1113, 0x57cb }, { 1123, 0x70cf }, { 1132, 0x4732 }, { 1139, 0x0def }, - { 1149, 0x7eda }, { 1160, 0xfc74 }, { 1170, 0xfe06 }, { 1179, 0xbdb4 }, - { 1189, 0x3f9f }, { 1201, 0x8bca }, { 1209, 0x7e49 }, { 1218, 0x5800 }, - { 1221, 0x228f }, { 1228, 0xebec }, { 1239, 0x8a5c }, { 1246, 0xddbb }, - /* 0x5300 */ - { 1258, 0xef60 }, { 1267, 0xb6e7 }, { 1278, 0xa40f }, { 1285, 0xf293 }, - { 1294, 0x37bb }, { 1305, 0x549e }, { 1313, 0xd04b }, { 1320, 0x9baf }, - { 1331, 0xc414 }, { 1336, 0xf7d4 }, { 1347, 0x30b0 }, { 1352, 0x0a14 }, - { 1356, 0x2f08 }, { 1362, 0x88d0 }, { 1367, 0xff7e }, { 1381, 0x192f }, - /* 0x5400 */ - { 1389, 0xffda }, { 1402, 0xfb07 }, { 1412, 0x7ff1 }, { 1424, 0x7beb }, - { 1436, 0xc5ef }, { 1447, 0x0010 }, { 1448, 0x99ff }, { 1460, 0xfdff }, - { 1475, 0x79d7 }, { 1486, 0x0567 }, { 1493, 0xffe7 }, { 1507, 0xfdcb }, - { 1519, 0xc3ff }, { 1531, 0x4040 }, { 1533, 0x6ff7 }, { 1546, 0xbd8e }, - /* 0x5500 */ - { 1556, 0xdffa }, { 1569, 0x0497 }, { 1575, 0xf4c0 }, { 1582, 0x5bff }, - { 1595, 0xed7b }, { 1607, 0xd0e7 }, { 1616, 0x047e }, { 1623, 0xf8e0 }, - { 1631, 0xff9f }, { 1645, 0xb73e }, { 1656, 0x7dfe }, { 1669, 0x882e }, - { 1675, 0xfffd }, { 1690, 0xbe7f }, { 1703, 0x83fe }, { 1713, 0xf6c4 }, - /* 0x5600 */ - { 1722, 0xf357 }, { 1733, 0xb8fd }, { 1744, 0xd680 }, { 1750, 0xef7d }, - { 1763, 0x5767 }, { 1773, 0x4788 }, { 1779, 0xff7d }, { 1793, 0xc3df }, - { 1804, 0xf0ff }, { 1816, 0x37a9 }, { 1825, 0x7de0 }, { 1834, 0x70fc }, - { 1843, 0x3f6f }, { 1855, 0xec9a }, { 1864, 0x4cb3 }, { 1872, 0x8681 }, - /* 0x5700 */ - { 1877, 0x3f9e }, { 1888, 0xdd5c }, { 1898, 0xf70d }, { 1908, 0x4819 }, - { 1913, 0xfea3 }, { 1924, 0x0007 }, { 1927, 0xaf56 }, { 1937, 0x38ff }, - { 1948, 0x980d }, { 1954, 0xefb8 }, { 1965, 0x403d }, { 1971, 0xb760 }, - { 1979, 0xd8ce }, { 1988, 0x9035 }, { 1994, 0x72bf }, { 2005, 0x3fff }, - /* 0x5800 */ - { 2019, 0x7ff7 }, { 2033, 0x7a11 }, { 2040, 0xf7bb }, { 2053, 0xabff }, - { 2066, 0xff00 }, { 2074, 0x6fbe }, { 2086, 0xa93c }, { 2094, 0xfe72 }, - { 2105, 0xcfef }, { 2118, 0xf11b }, { 2127, 0xdb6b }, { 2138, 0xf40a }, - { 2145, 0xc3e6 }, { 2154, 0xef7e }, { 2167, 0x9b9c }, { 2176, 0xf610 }, - /* 0x5900 */ - { 2183, 0xf048 }, { 2189, 0x16f4 }, { 2197, 0xfeb5 }, { 2209, 0x5182 }, - { 2214, 0xc7b1 }, { 2223, 0x15bb }, { 2232, 0x6e87 }, { 2241, 0xfbdf }, - { 2255, 0xe43f }, { 2265, 0x63cd }, { 2274, 0xc1ff }, { 2285, 0x7e7e }, - { 2297, 0xfdeb }, { 2310, 0x7d5f }, { 2322, 0x777b }, { 2334, 0xfcfe }, - /* 0x5a00 */ - { 2347, 0x960b }, { 2354, 0xdbea }, { 2365, 0x6229 }, { 2371, 0x53e8 }, - { 2379, 0x37df }, { 2391, 0xfdef }, { 2405, 0x36f5 }, { 2415, 0xbd81 }, - { 2423, 0xdc18 }, { 2430, 0xfcbd }, { 2442, 0xd2e4 }, { 2450, 0xffff }, - { 2466, 0x3fd7 }, { 2478, 0xffe0 }, { 2489, 0x7f6f }, { 2502, 0xabf8 }, - /* 0x5b00 */ - { 2512, 0x9bae }, { 2522, 0x6ed9 }, { 2532, 0xf5fb }, { 2545, 0xf115 }, - { 2553, 0x79a9 }, { 2562, 0xbdfb }, { 2575, 0x5a3c }, { 2583, 0xadaf }, - { 2594, 0xdbba }, { 2605, 0x1fac }, { 2614, 0x71fc }, { 2624, 0x8379 }, - { 2632, 0x7cf7 }, { 2644, 0xc35f }, { 2654, 0xdfff }, { 2669, 0x0567 }, - /* 0x5c00 */ - { 2676, 0xff9a }, { 2688, 0x8467 }, { 2695, 0x1534 }, { 2701, 0xdf8b }, - { 2712, 0xf9f3 }, { 2724, 0x3373 }, { 2733, 0xf7bd }, { 2746, 0x5e1a }, - { 2754, 0xbf40 }, { 2762, 0xa03f }, { 2770, 0xffff }, { 2786, 0x01eb }, - { 2793, 0xdfc0 }, { 2802, 0xcfdd }, { 2814, 0x7500 }, { 2819, 0xabd3 }, - /* 0x5d00 */ - { 2829, 0xf8c3 }, { 2838, 0xeed6 }, { 2849, 0x43fd }, { 2859, 0xb7ff }, - { 2873, 0x5eaf }, { 2884, 0x4227 }, { 2890, 0x9bac }, { 2899, 0xf686 }, - { 2908, 0x27d7 }, { 2918, 0xf6bc }, { 2929, 0xf787 }, { 2940, 0x35b7 }, - { 2950, 0xaacd }, { 2959, 0xe176 }, { 2968, 0x49e7 }, { 2977, 0xe29f }, - /* 0x5e00 */ - { 2987, 0x545c }, { 2994, 0xaff2 }, { 3005, 0x2b3f }, { 3015, 0x61d8 }, - { 3022, 0xfc3b }, { 3033, 0xbbb8 }, { 3043, 0xffcf }, { 3057, 0x7b7d }, - { 3069, 0xbf95 }, { 3080, 0x1ce0 }, { 3086, 0x7dfd }, { 3099, 0x43ff }, - { 3110, 0x5ff6 }, { 3122, 0xfffe }, { 3137, 0xd3ef }, { 3149, 0xc4ce }, - /* 0x5f00 */ - { 3157, 0x8db6 }, { 3166, 0xadbc }, { 3176, 0x63dc }, { 3185, 0x11eb }, - { 3193, 0xdf59 }, { 3204, 0x23d0 }, { 3210, 0xbeb4 }, { 3220, 0xf3db }, - { 3232, 0x1fe7 }, { 3243, 0xdbc7 }, { 3254, 0xff63 }, { 3266, 0xfae4 }, - { 3276, 0xb22b }, { 3284, 0x63f7 }, { 3295, 0xed3b }, { 3306, 0xadba }, - /* 0x6000 */ - { 3316, 0xfe01 }, { 3324, 0x7eff }, { 3338, 0xfff7 }, { 3353, 0x02bc }, - { 3359, 0x32ff }, { 3370, 0xef39 }, { 3381, 0xfffc }, { 3395, 0x8005 }, - { 3398, 0x77fb }, { 3411, 0xbcf5 }, { 3422, 0x010d }, { 3426, 0xfff7 }, - { 3441, 0xfffb }, { 3456, 0xbf3a }, { 3467, 0x0057 }, { 3472, 0xdfff }, - /* 0x6100 */ - { 3487, 0xef7b }, { 3500, 0xbd7d }, { 3512, 0xdb88 }, { 3520, 0xc8d4 }, - { 3527, 0xfff3 }, { 3541, 0xed7c }, { 3552, 0x5dee }, { 3563, 0x56ff }, - { 3575, 0x7e0d }, { 3584, 0xac5f }, { 3594, 0xff96 }, { 3606, 0xd57f }, - { 3618, 0x3fee }, { 3630, 0xc140 }, { 3634, 0x6ff9 }, { 3646, 0xffe7 }, - /* 0x6200 */ - { 3660, 0x779b }, { 3671, 0x8e77 }, { 3681, 0x6ebf }, { 3693, 0xe45d }, - { 3702, 0x6fcf }, { 3714, 0x5f1f }, { 3725, 0xe07f }, { 3735, 0xfedf }, - { 3749, 0xd7db }, { 3761, 0x01fe }, { 3769, 0xff00 }, { 3777, 0xfb7b }, - { 3790, 0xffd4 }, { 3802, 0x1fdf }, { 3814, 0xf800 }, { 3819, 0xffff }, - /* 0x6300 */ - { 3835, 0xfb8f }, { 3847, 0x007b }, { 3853, 0xbf00 }, { 3860, 0x7f5c }, - { 3871, 0xffff }, { 3887, 0x07f3 }, { 3896, 0xeba0 }, { 3904, 0x3de7 }, - { 3915, 0xf7bf }, { 3929, 0xfbd7 }, { 3942, 0xffbf }, { 3957, 0x6003 }, - { 3961, 0xfffd }, { 3976, 0xbfed }, { 3989, 0xefbb }, { 4002, 0x027f }, - /* 0x6400 */ - { 4010, 0xfe40 }, { 4018, 0xddfd }, { 4031, 0xfdff }, { 4046, 0xe2f9 }, - { 4056, 0x680b }, { 4062, 0xfb1f }, { 4074, 0xfbe3 }, { 4086, 0xaffd }, - { 4099, 0x9fa4 }, { 4108, 0xf7ed }, { 4121, 0x7a7d }, { 4132, 0xf80f }, - { 4141, 0xeebe }, { 4153, 0x0fd5 }, { 4162, 0xbb5d }, { 4173, 0xfd9f }, - /* 0x6500 */ - { 4186, 0xf2db }, { 4197, 0x3bf9 }, { 4208, 0xfe7f }, { 4222, 0xebcc }, - { 4232, 0x876a }, { 4240, 0x73fa }, { 4251, 0x95fc }, { 4261, 0x9ffc }, - { 4273, 0x109f }, { 4280, 0xfaf7 }, { 4293, 0xddb7 }, { 4305, 0xbbcd }, - { 4316, 0xf87e }, { 4327, 0xeccd }, { 4337, 0xf366 }, { 4347, 0x3c3f }, - /* 0x6600 */ - { 4357, 0xfffd }, { 4372, 0xb03f }, { 4381, 0xe9f7 }, { 4393, 0x067e }, - { 4401, 0x96ae }, { 4410, 0xfe06 }, { 4419, 0xd576 }, { 4429, 0x5fd7 }, - { 4441, 0x3fd1 }, { 4451, 0xa3f3 }, { 4461, 0xcf07 }, { 4470, 0x6fb7 }, - { 4482, 0x9fd1 }, { 4492, 0x7f44 }, { 4501, 0x7b59 }, { 4511, 0xd3dd }, - /* 0x6700 */ - { 4522, 0xaf3b }, { 4533, 0xa9bd }, { 4543, 0x7dcf }, { 4555, 0xff3a }, - { 4567, 0xfbe0 }, { 4577, 0xf6eb }, { 4589, 0xb401 }, { 4594, 0xffff }, - { 4610, 0x7afa }, { 4621, 0xb7bf }, { 4634, 0xc000 }, { 4636, 0x0ffd }, - { 4647, 0xff7f }, { 4662, 0xff1f }, { 4675, 0xfefc }, { 4688, 0x95ff }, - /* 0x6800 */ - { 4700, 0x0000 }, { 4700, 0xb5dc }, { 4710, 0xef63 }, { 4721, 0x3f3e }, - { 4732, 0xfb7f }, { 4746, 0x001b }, { 4750, 0xe800 }, { 4754, 0xfbf6 }, - { 4767, 0x9eef }, { 4779, 0xb8df }, { 4790, 0xff9f }, { 4804, 0x003f }, - { 4810, 0x7bd0 }, { 4819, 0xf5ff }, { 4833, 0xdfdb }, { 4846, 0x3fff }, - /* 0x6900 */ - { 4860, 0xfdf0 }, { 4871, 0x00bf }, { 4878, 0x8420 }, { 4881, 0xbbbd }, - { 4893, 0xdf37 }, { 4905, 0xffde }, { 4919, 0xff6d }, { 4932, 0x0ff3 }, - { 4942, 0x604c }, { 4947, 0x5efb }, { 4959, 0xfffb }, { 4974, 0xfafb }, - { 4987, 0xfe5e }, { 4999, 0x0219 }, { 5003, 0x79f4 }, { 5013, 0xf9de }, - /* 0x6a00 */ - { 5025, 0xa7f7 }, { 5037, 0xebfa }, { 5049, 0x01eb }, { 5056, 0xff34 }, - { 5067, 0xebd3 }, { 5078, 0xef73 }, { 5090, 0xafd7 }, { 5102, 0xc040 }, - { 5105, 0x72bb }, { 5115, 0xdcff }, { 5128, 0xf17f }, { 5140, 0x2fd8 }, - { 5149, 0xb8ec }, { 5158, 0xfe0b }, { 5168, 0xdda3 }, { 5178, 0x1f0b }, - /* 0x6b00 */ - { 5186, 0x8f1d }, { 5195, 0x47cf }, { 5205, 0xb12b }, { 5213, 0xffde }, - { 5227, 0x7fee }, { 5240, 0xda73 }, { 5250, 0x24ff }, { 5260, 0xcbc4 }, - { 5268, 0xf75d }, { 5280, 0xcbf2 }, { 5290, 0xecfd }, { 5302, 0xb4ed }, - { 5312, 0xbff9 }, { 5325, 0x4ddd }, { 5335, 0x99dd }, { 5345, 0xfb8d }, - /* 0x6c00 */ - { 5356, 0xbb7f }, { 5369, 0xaf7b }, { 5381, 0xddfb }, { 5394, 0xc959 }, - { 5402, 0xfc4f }, { 5413, 0xfab5 }, { 5424, 0xafe3 }, { 5435, 0x6d5f }, - { 5446, 0xffff }, { 5462, 0x3f7d }, { 5474, 0x7800 }, { 5478, 0xffdb }, - { 5492, 0xb6ff }, { 5505, 0x7eff }, { 5519, 0xfbaf }, { 5532, 0x022f }, - /* 0x6d00 */ - { 5538, 0xff9b }, { 5551, 0xefc7 }, { 5563, 0xffa5 }, { 5575, 0xffff }, - { 5591, 0x0007 }, { 5594, 0xc700 }, { 5599, 0xf7ff }, { 5614, 0xfff1 }, - { 5627, 0x7ffd }, { 5641, 0x01bf }, { 5649, 0xdc00 }, { 5654, 0xfdbc }, - { 5666, 0xbff5 }, { 5679, 0xffff }, { 5695, 0xff7f }, { 5710, 0x3eff }, - /* 0x6e00 */ - { 5723, 0x0029 }, { 5726, 0xbe00 }, { 5732, 0xf9ff }, { 5746, 0xff7f }, - { 5761, 0x6efb }, { 5773, 0xfd7e }, { 5786, 0xcbff }, { 5799, 0x039e }, - { 5806, 0xe300 }, { 5811, 0xfbdd }, { 5824, 0xccff }, { 5836, 0xf6df }, - { 5849, 0xffff }, { 5865, 0x117f }, { 5874, 0xf800 }, { 5879, 0xfbf6 }, - /* 0x6f00 */ - { 5892, 0xe7ef }, { 5905, 0xd73c }, { 5915, 0xfeef }, { 5929, 0xdfef }, - { 5943, 0xc00b }, { 5948, 0xedbf }, { 5961, 0xfedf }, { 5975, 0xfdcd }, - { 5987, 0x7bf5 }, { 5999, 0x40fd }, { 6007, 0xffff }, { 6023, 0xb75f }, - { 6035, 0xffdf }, { 6050, 0xf930 }, { 6058, 0xfbdf }, { 6072, 0xdc97 }, - /* 0x7000 */ - { 6082, 0xfef3 }, { 6095, 0xbff2 }, { 6107, 0x8fdf }, { 6119, 0xdfbf }, - { 6133, 0x177f }, { 6144, 0xede6 }, { 6155, 0x0f7f }, { 6166, 0x3553 }, - { 6174, 0x447c }, { 6181, 0x877e }, { 6191, 0xfa12 }, { 6199, 0x45bb }, - { 6208, 0xede0 }, { 6217, 0x779e }, { 6228, 0x8017 }, { 6233, 0xbfd9 }, - /* 0x7100 */ - { 6245, 0x7e55 }, { 6255, 0xde89 }, { 6264, 0xc16f }, { 6273, 0x0447 }, - { 6278, 0x7ade }, { 6289, 0xf75d }, { 6301, 0x57ff }, { 6314, 0x2905 }, - { 6319, 0x86f7 }, { 6329, 0xfe95 }, { 6340, 0x97b3 }, { 6350, 0xf32f }, - { 6361, 0xcfff }, { 6375, 0x9f75 }, { 6386, 0x71f7 }, { 6397, 0xfb17 }, - /* 0x7200 */ - { 6408, 0x34ee }, { 6417, 0xee19 }, { 6426, 0x37cc }, { 6435, 0xef61 }, - { 6445, 0x9fd6 }, { 6456, 0xef4c }, { 6466, 0xd68f }, { 6476, 0xfbdd }, - { 6489, 0x7b73 }, { 6500, 0x6def }, { 6512, 0xd7fe }, { 6525, 0xa431 }, - { 6531, 0x5e7f }, { 6543, 0x97d7 }, { 6554, 0x0f5b }, { 6563, 0xffd8 }, - /* 0x7300 */ - { 6575, 0x9d83 }, { 6583, 0x7bce }, { 6594, 0x22ec }, { 6601, 0xdcff }, - { 6614, 0x763d }, { 6624, 0xef87 }, { 6635, 0xdfe7 }, { 6648, 0xfded }, - { 6661, 0x4fff }, { 6674, 0xa0fc }, { 6682, 0x3b77 }, { 6693, 0xdbfc }, - { 6705, 0x3ded }, { 6716, 0x7fdc }, { 6728, 0x6fa9 }, { 6738, 0xf570 }, - /* 0x7400 */ - { 6747, 0x3ffb }, { 6760, 0x2c40 }, { 6764, 0xff7f }, { 6779, 0x847f }, - { 6788, 0xec57 }, { 6798, 0xdeb7 }, { 6810, 0xe69c }, { 6819, 0xf22f }, - { 6829, 0x0feb }, { 6839, 0xd5b5 }, { 6849, 0xafeb }, { 6861, 0xede7 }, - { 6873, 0x8c2f }, { 6881, 0xfff0 }, { 6893, 0x537f }, { 6904, 0xe8f0 }, - /* 0x7500 */ - { 6912, 0xb99d }, { 6922, 0xb5ff }, { 6935, 0xff66 }, { 6947, 0xe78f }, - { 6958, 0xd981 }, { 6965, 0xbe10 }, { 6972, 0x9c7c }, { 6981, 0xe3c1 }, - { 6989, 0x9cd1 }, { 6997, 0x2733 }, { 7005, 0x0cbc }, { 7012, 0xff6d }, - { 7025, 0xfcb7 }, { 7037, 0xefb7 }, { 7050, 0xa0df }, { 7059, 0xffff }, - /* 0x7600 */ - { 7075, 0xbf0b }, { 7085, 0xfe7b }, { 7098, 0xa3ff }, { 7110, 0x353f }, - { 7120, 0x13cc }, { 7127, 0x97cd }, { 7137, 0x7637 }, { 7147, 0xfb27 }, - { 7158, 0xcfd6 }, { 7169, 0x7e6c }, { 7179, 0xec50 }, { 7186, 0xed31 }, - { 7195, 0x677c }, { 7205, 0xfc1c }, { 7214, 0xf6fa }, { 7226, 0x5fbf }, - /* 0x7700 */ - { 7239, 0x0fba }, { 7248, 0xae2f }, { 7258, 0xa3ad }, { 7267, 0x7ffe }, - { 7281, 0xfcf0 }, { 7291, 0xde74 }, { 7301, 0xffef }, { 7316, 0xf200 }, - { 7321, 0xfbbf }, { 7335, 0xfea2 }, { 7345, 0x3daf }, { 7356, 0xbcff }, - { 7369, 0xf694 }, { 7378, 0x5fb9 }, { 7389, 0xf3ad }, { 7400, 0x3f8f }, - /* 0x7800 */ - { 7411, 0xf26c }, { 7420, 0xa01f }, { 7427, 0xffef }, { 7442, 0x01bf }, - { 7450, 0x7728 }, { 7458, 0x7005 }, { 7463, 0xff35 }, { 7475, 0xda03 }, - { 7482, 0xd2f9 }, { 7492, 0xc7fa }, { 7503, 0x3fbf }, { 7516, 0x5c1d }, - { 7524, 0xff3a }, { 7536, 0xec33 }, { 7545, 0xb7af }, { 7557, 0xfe9c }, - /* 0x7900 */ - { 7568, 0x5236 }, { 7575, 0x7a9f }, { 7586, 0xbffa }, { 7599, 0xe722 }, - { 7607, 0x9ff7 }, { 7620, 0xfcff }, { 7634, 0x2fbb }, { 7645, 0xb61d }, - { 7654, 0xed06 }, { 7662, 0x1dfd }, { 7673, 0x7dd7 }, { 7685, 0xefdf }, - { 7699, 0xeb23 }, { 7708, 0xf166 }, { 7717, 0x7ed9 }, { 7728, 0x0dc0 }, - /* 0x7a00 */ - { 7733, 0x3d3d }, { 7743, 0xdfbf }, { 7757, 0xc945 }, { 7764, 0xba83 }, - { 7772, 0x7dd1 }, { 7782, 0x9dd0 }, { 7790, 0x7b87 }, { 7800, 0xcf73 }, - { 7811, 0x9ff3 }, { 7823, 0xc3f5 }, { 7833, 0xdf0d }, { 7843, 0xc5fe }, - { 7854, 0x0cb3 }, { 7861, 0x8302 }, { 7865, 0xe879 }, { 7874, 0xaec0 }, - /* 0x7b00 */ - { 7881, 0xc773 }, { 7891, 0x6f0f }, { 7901, 0xfd7d }, { 7914, 0x093f }, - { 7922, 0xfff1 }, { 7935, 0x0157 }, { 7941, 0x62fb }, { 7951, 0x01ff }, - { 7960, 0xfdb4 }, { 7971, 0x3bf3 }, { 7982, 0xb013 }, { 7988, 0x43b2 }, - { 7995, 0x5ed3 }, { 8005, 0xff30 }, { 8015, 0x0fff }, { 8027, 0xeb9f }, - /* 0x7c00 */ - { 8039, 0xfeef }, { 8053, 0xf203 }, { 8060, 0x3fef }, { 8073, 0xfb89 }, - { 8083, 0x37a9 }, { 8092, 0x9e99 }, { 8101, 0xdef9 }, { 8113, 0xa72c }, - { 8121, 0x3733 }, { 8130, 0xc1f6 }, { 8139, 0x812e }, { 8145, 0xfe3e }, - { 8157, 0x5d20 }, { 8163, 0xf2f7 }, { 8175, 0xd585 }, { 8183, 0x69d7 }, - /* 0x7d00 */ - { 8193, 0xffff }, { 8209, 0xffff }, { 8225, 0xdb07 }, { 8234, 0xff6f }, - { 8248, 0xc4ff }, { 8259, 0xd97f }, { 8271, 0xefce }, { 8283, 0xbe0f }, - { 8293, 0xf17b }, { 8304, 0xf05e }, { 8313, 0xf6cf }, { 8325, 0xffb7 }, - { 8339, 0x5ef7 }, { 8351, 0xef84 }, { 8360, 0xd7cb }, { 8371, 0x0edf }, - /* 0x7e00 */ - { 8381, 0xff08 }, { 8390, 0xfcff }, { 8404, 0xee3f }, { 8416, 0xffff }, - { 8432, 0x13ff }, { 8443, 0xd7ff }, { 8457, 0xaf0f }, { 8467, 0x7ffd }, - { 8481, 0xbdc7 }, { 8492, 0x1ffa }, { 8503, 0x0000 }, { 8503, 0x0000 }, - { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, - /* 0x7f00 */ - { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0x0000 }, { 8503, 0xe740 }, - { 8510, 0xbd38 }, { 8519, 0xf933 }, { 8529, 0x7feb }, { 8542, 0xfeed }, - { 8555, 0x7fe8 }, { 8566, 0x7c76 }, { 8576, 0xb3f7 }, { 8588, 0xffef }, - { 8603, 0xfeaf }, { 8616, 0xd8b7 }, { 8626, 0xff6f }, { 8640, 0xfbbf }, - /* 0x8000 */ - { 8654, 0xf8fb }, { 8666, 0xdbf7 }, { 8679, 0x1752 }, { 8686, 0xe2f9 }, - { 8696, 0x85c8 }, { 8702, 0x7547 }, { 8711, 0x9090 }, { 8715, 0xe3ef }, - { 8727, 0x9ef4 }, { 8737, 0x3f6d }, { 8748, 0xee2e }, { 8758, 0x0536 }, - { 8764, 0xf7bc }, { 8776, 0x7ff3 }, { 8789, 0xa07b }, { 8797, 0x7f3f }, - /* 0x8100 */ - { 8810, 0x0567 }, { 8817, 0xeb60 }, { 8825, 0xbabe }, { 8836, 0x6601 }, - { 8841, 0xfcd8 }, { 8851, 0x583f }, { 8860, 0xcaf7 }, { 8871, 0x87df }, - { 8882, 0xbfcd }, { 8894, 0xffa0 }, { 8904, 0x5bcd }, { 8914, 0xfebf }, - { 8928, 0xb6fd }, { 8940, 0xefa7 }, { 8952, 0x77ef }, { 8965, 0xdf9c }, - /* 0x8200 */ - { 8976, 0x3fb7 }, { 8988, 0xf877 }, { 8999, 0x9d27 }, { 9008, 0xb7fc }, - { 9020, 0xcab5 }, { 9029, 0xdfef }, { 9043, 0xfb5a }, { 9054, 0xf1b6 }, - { 9064, 0xec39 }, { 9073, 0xef1f }, { 9085, 0xfbbf }, { 9099, 0x7ffb }, - { 9113, 0x000d }, { 9116, 0xdafe }, { 9128, 0xbdfb }, { 9141, 0x4e7f }, - /* 0x8300 */ - { 9152, 0x33ff }, { 9164, 0x5ac0 }, { 9170, 0xbff5 }, { 9183, 0x9ffe }, - { 9196, 0xffbf }, { 9211, 0x005f }, { 9217, 0x0000 }, { 9217, 0xfdf8 }, - { 9229, 0xffca }, { 9241, 0x6ffd }, { 9254, 0xcffd }, { 9267, 0xa001 }, - { 9270, 0xdfff }, { 9285, 0xfbf2 }, { 9297, 0xdfbf }, { 9311, 0xff7f }, - /* 0x8400 */ - { 9326, 0xfeda }, { 9338, 0x080f }, { 9343, 0xba08 }, { 9349, 0xbfff }, - { 9364, 0x7afd }, { 9376, 0xeed7 }, { 9388, 0xfbeb }, { 9401, 0x67f9 }, - { 9412, 0xe044 }, { 9417, 0xff93 }, { 9429, 0xdf97 }, { 9441, 0x9f57 }, - { 9452, 0xfef7 }, { 9466, 0x08df }, { 9474, 0xdf80 }, { 9482, 0xfedf }, - /* 0x8500 */ - { 9496, 0xffc5 }, { 9508, 0xf7fe }, { 9522, 0xfffb }, { 9537, 0x6803 }, - { 9542, 0x67fb }, { 9554, 0x6bfa }, { 9565, 0x7fff }, { 9580, 0x5fe2 }, - { 9590, 0xffff }, { 9606, 0xff73 }, { 9619, 0x87df }, { 9630, 0xe7fb }, - { 9643, 0xebfd }, { 9656, 0xf7a7 }, { 9668, 0xbf7e }, { 9681, 0xefc7 }, - /* 0x8600 */ - { 9693, 0x1ef3 }, { 9703, 0xdf82 }, { 9712, 0x76ff }, { 9725, 0xdf7e }, - { 9738, 0x79c9 }, { 9747, 0xda7d }, { 9758, 0xefbe }, { 9771, 0x1e9b }, - { 9780, 0x7ce0 }, { 9788, 0x77fb }, { 9801, 0x87be }, { 9811, 0xfffb }, - { 9826, 0x1bff }, { 9838, 0xffdb }, { 9852, 0x3f5c }, { 9862, 0x4fe0 }, - /* 0x8700 */ - { 9870, 0x7fff }, { 9885, 0x5f0e }, { 9894, 0x77ff }, { 9908, 0xddbf }, - { 9921, 0xf04f }, { 9930, 0xffff }, { 9946, 0xffff }, { 9962, 0x0ff8 }, - { 9971, 0xa3be }, { 9981, 0xfddf }, { 9995, 0xfc1c }, { 10004, 0xfffd }, - { 10019, 0x1f7d }, { 10030, 0xfb9e }, { 10042, 0xbdff }, { 10056, 0xdedc }, - /* 0x8800 */ - { 10067, 0x3f6f }, { 10079, 0xbafb }, { 10091, 0xdf7f }, { 10105, 0xfbef }, - { 10119, 0x7d1b }, { 10129, 0x2eec }, { 10138, 0xaf8e }, { 10148, 0xf2f7 }, - { 10160, 0x7b0f }, { 10170, 0xcfee }, { 10182, 0x1d96 }, { 10190, 0x77c6 }, - { 10200, 0x7e07 }, { 10209, 0xfff5 }, { 10223, 0xd982 }, { 10230, 0x7fdf }, - /* 0x8900 */ - { 10244, 0x5ee6 }, { 10254, 0xc7ff }, { 10267, 0xfeee }, { 10280, 0x79ef }, - { 10292, 0x9a56 }, { 10300, 0xffcf }, { 10314, 0xfe5f }, { 10327, 0xde5e }, - { 10338, 0x896e }, { 10346, 0xf9e8 }, { 10356, 0xf45e }, { 10366, 0xe6c4 }, - { 10374, 0x0001 }, { 10375, 0xbe7c }, { 10386, 0x3b7f }, { 10398, 0xdddf }, - /* 0x8a00 */ - { 10411, 0xd59d }, { 10421, 0xe9ef }, { 10433, 0x34ac }, { 10440, 0xde53 }, - { 10450, 0xf573 }, { 10461, 0x4bf7 }, { 10472, 0x7b4f }, { 10483, 0x9eff }, - { 10496, 0xb8fe }, { 10507, 0x476e }, { 10516, 0x0dfb }, { 10526, 0xff45 }, - { 10537, 0xabfd }, { 10549, 0xfbfe }, { 10563, 0xe9d7 }, { 10574, 0xddff }, - /* 0x8b00 */ - { 10588, 0xedf7 }, { 10601, 0x7fff }, { 10616, 0xddfd }, { 10629, 0x7eeb }, - { 10641, 0xcfe7 }, { 10653, 0xb7ff }, { 10667, 0xbde9 }, { 10678, 0xef91 }, - { 10688, 0x5d75 }, { 10698, 0xd77c }, { 10709, 0x0000 }, { 10709, 0x0000 }, - { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, - /* 0x8c00 */ - { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0x0000 }, { 10709, 0xfa80 }, - { 10716, 0xffee }, { 10730, 0xb4f1 }, { 10739, 0xbf76 }, { 10751, 0x2fef }, - { 10763, 0xb677 }, { 10774, 0x77bf }, { 10787, 0x9fbf }, { 10800, 0xfffd }, - { 10815, 0x95bf }, { 10826, 0xf6ae }, { 10837, 0x75ff }, { 10850, 0x7f3b }, - /* 0x8d00 */ - { 10862, 0xa7f5 }, { 10873, 0x0af9 }, { 10881, 0x0000 }, { 10881, 0x0000 }, - { 10881, 0x0000 }, { 10881, 0x0000 }, { 10881, 0xfbd0 }, { 10891, 0x2bdd }, - { 10901, 0xf633 }, { 10911, 0x9a7f }, { 10922, 0xfdab }, { 10934, 0xd6fc }, - { 10945, 0xf9e6 }, { 10956, 0xbfeb }, { 10969, 0xdfdf }, { 10983, 0xf41f }, - /* 0x8e00 */ - { 10993, 0xa6fd }, { 11004, 0xffff }, { 11020, 0x4aff }, { 11031, 0xf37b }, - { 11043, 0x7fb7 }, { 11056, 0xfef9 }, { 11069, 0xb6ff }, { 11082, 0x1d5c }, - { 11090, 0x7ff6 }, { 11103, 0xe5ff }, { 11116, 0x1f7b }, { 11127, 0x2404 }, - { 11130, 0xbe05 }, { 11138, 0xf99e }, { 11149, 0xdbe3 }, { 11160, 0xdff2 }, - /* 0x8f00 */ - { 11172, 0x6fef }, { 11185, 0xfdff }, { 11200, 0xd679 }, { 11210, 0xcbfc }, - { 11221, 0xebfd }, { 11234, 0xefff }, { 11249, 0x001f }, { 11254, 0x0000 }, - { 11254, 0x0000 }, { 11254, 0x9800 }, { 11257, 0xe148 }, { 11263, 0x8017 }, - { 11268, 0x6a74 }, { 11276, 0x00fe }, { 11283, 0x6d7f }, { 11295, 0xfdf1 }, - /* 0x9000 */ - { 11307, 0xb87f }, { 11318, 0xfef3 }, { 11331, 0xe01f }, { 11339, 0xf176 }, - { 11349, 0xee96 }, { 11359, 0x7b3f }, { 11371, 0xeb8d }, { 11381, 0xfffd }, - { 11396, 0xadff }, { 11409, 0xcbb3 }, { 11419, 0x84ef }, { 11428, 0xe17f }, - { 11439, 0x4daa }, { 11447, 0xbff0 }, { 11458, 0xbf3f }, { 11471, 0xfe3f }, - /* 0x9100 */ - { 11484, 0xebff }, { 11498, 0xffd7 }, { 11512, 0xffdf }, { 11527, 0xcf7f }, - { 11540, 0xfffb }, { 11555, 0x85ed }, { 11564, 0xd73f }, { 11576, 0x07bc }, - { 11584, 0xaeff }, { 11597, 0xfe0f }, { 11608, 0xfdaf }, { 11621, 0x76bf }, - { 11633, 0xfaef }, { 11646, 0x37bb }, { 11657, 0x7fdc }, { 11669, 0xa3ba }, - /* 0x9200 */ - { 11678, 0xb6ff }, { 11691, 0x56f7 }, { 11702, 0x60f8 }, { 11709, 0xe7df }, - { 11722, 0xff61 }, { 11733, 0x4cdf }, { 11743, 0xb0fb }, { 11753, 0xff45 }, - { 11764, 0x7ded }, { 11776, 0x3ffa }, { 11788, 0x1fff }, { 11801, 0x18fc }, - { 11809, 0xffff }, { 11825, 0xe3af }, { 11836, 0xc7d3 }, { 11846, 0xdf83 }, - /* 0x9300 */ - { 11856, 0xfb57 }, { 11868, 0xef7d }, { 11881, 0xefff }, { 11896, 0x1378 }, - { 11903, 0xfec0 }, { 11912, 0x5ff7 }, { 11925, 0x34bb }, { 11934, 0x5ee3 }, - { 11944, 0xf70d }, { 11954, 0xeff6 }, { 11967, 0xd7fe }, { 11980, 0x00bf }, - { 11987, 0xf59d }, { 11998, 0xf7f7 }, { 12012, 0x51de }, { 12021, 0xffe0 }, - /* 0x9400 */ - { 12032, 0xfec9 }, { 12043, 0x037f }, { 12052, 0x5f01 }, { 12059, 0xbfef }, - { 12073, 0x9ff1 }, { 12084, 0x60a7 }, { 12091, 0xef1d }, { 12102, 0xf1ff }, - { 12115, 0x000f }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, - { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, - /* 0x9500 */ - { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, - { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x0000 }, { 12119, 0x3c80 }, - { 12124, 0xfb4d }, { 12135, 0xd91f }, { 12145, 0x7b3a }, { 12155, 0xfee3 }, - { 12167, 0x3fe9 }, { 12178, 0xdc7f }, { 12190, 0x003f }, { 12196, 0x0000 }, - /* 0x9600 */ - { 12196, 0x0000 }, { 12196, 0x5000 }, { 12198, 0xf51f }, { 12209, 0xbe07 }, - { 12218, 0xfc1d }, { 12228, 0xf91b }, { 12238, 0xbc1e }, { 12247, 0x71ff }, - { 12259, 0x6ff9 }, { 12271, 0x5bbe }, { 12282, 0x5796 }, { 12291, 0x9b1b }, - { 12300, 0x7fff }, { 12315, 0xfffc }, { 12329, 0x872e }, { 12337, 0xafe7 }, - /* 0x9700 */ - { 12349, 0xebf5 }, { 12361, 0xf34f }, { 12372, 0xdffd }, { 12386, 0xe725 }, - { 12395, 0x0bdc }, { 12403, 0x5d44 }, { 12410, 0x5747 }, { 12419, 0xfddd }, - { 12432, 0xed3f }, { 12444, 0x7790 }, { 12452, 0x7d7f }, { 12465, 0x8ac8 }, - { 12471, 0xfafa }, { 12483, 0xf3f9 }, { 12495, 0x202a }, { 12499, 0xef4b }, - /* 0x9800 */ - { 12510, 0xf5ff }, { 12524, 0x79cf }, { 12535, 0xabd3 }, { 12545, 0x0ba5 }, - { 12552, 0xf77a }, { 12564, 0xfb8f }, { 12576, 0x8ebd }, { 12586, 0x001f }, - { 12591, 0x0000 }, { 12591, 0x0000 }, { 12591, 0xf300 }, { 12597, 0xfd4e }, - { 12608, 0x1a57 }, { 12616, 0x8800 }, { 12618, 0xaeac }, { 12627, 0x7654 }, - /* 0x9900 */ - { 12635, 0x17ad }, { 12644, 0xcdff }, { 12657, 0xffb2 }, { 12669, 0xf42f }, - { 12679, 0x5baa }, { 12688, 0xdbff }, { 12702, 0x0002 }, { 12703, 0x0000 }, - { 12703, 0x0000 }, { 12703, 0x73c0 }, { 12710, 0xf9ea }, { 12721, 0x2e3f }, - { 12731, 0xfa8e }, { 12741, 0xbbff }, { 12755, 0x76bc }, { 12765, 0xffd3 }, - /* 0x9a00 */ - { 12778, 0xeefe }, { 12791, 0x7e72 }, { 12801, 0x7ebd }, { 12813, 0xe7f7 }, - { 12826, 0xf77f }, { 12840, 0xcefd }, { 12852, 0x0ff5 }, { 12862, 0x0000 }, - { 12862, 0x0000 }, { 12862, 0x0000 }, { 12862, 0xa900 }, { 12866, 0xdb9b }, - { 12877, 0xa4c7 }, { 12885, 0x917f }, { 12895, 0xf8ca }, { 12904, 0x7ece }, - /* 0x9b00 */ - { 12915, 0x7d7a }, { 12926, 0xc7e7 }, { 12937, 0xcbbd }, { 12948, 0xdcae }, - { 12958, 0xfd7e }, { 12971, 0x8f76 }, { 12981, 0x91d3 }, { 12989, 0x7cf3 }, - { 13000, 0x01e5 }, { 13006, 0x4c2f }, { 13014, 0xed77 }, { 13026, 0xa360 }, - { 13032, 0x07db }, { 13041, 0x5ef8 }, { 13051, 0x1df7 }, { 13062, 0x2181 }, - /* 0x9c00 */ - { 13066, 0x6be0 }, { 13074, 0x309c }, { 13080, 0x3b3a }, { 13089, 0xfade }, - { 13101, 0x7f53 }, { 13112, 0xc3f5 }, { 13122, 0x61cd }, { 13130, 0x07ba }, - { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x0000 }, - { 13138, 0x0000 }, { 13138, 0x0000 }, { 13138, 0x26e0 }, { 13144, 0xbefe }, - /* 0x9d00 */ - { 13157, 0x03f9 }, { 13165, 0xebb5 }, { 13176, 0xe36d }, { 13186, 0xe9cb }, - { 13196, 0x9c2f }, { 13205, 0xbfde }, { 13218, 0x9f83 }, { 13227, 0xabbf }, - { 13239, 0x1ff7 }, { 13251, 0xffd5 }, { 13264, 0xb7df }, { 13277, 0xdffe }, - { 13291, 0xfdae }, { 13303, 0xffef }, { 13318, 0xfb7e }, { 13331, 0xeffd }, - /* 0x9e00 */ - { 13345, 0xaaff }, { 13357, 0x6ebf }, { 13369, 0x0000 }, { 13369, 0x0000 }, - { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0x0000 }, { 13369, 0xb620 }, - { 13375, 0x7fcd }, { 13387, 0xbe9e }, { 13398, 0x62b3 }, { 13406, 0x58f1 }, - { 13414, 0xf10d }, { 13422, 0xfd7b }, { 13435, 0xe9f1 }, { 13445, 0xbefd }, - /* 0x9f00 */ - { 13458, 0xc6c3 }, { 13466, 0x5f6d }, { 13477, 0xff3d }, { 13490, 0x69ff }, - { 13502, 0xffcf }, { 13516, 0xfbf4 }, { 13528, 0xdcfb }, { 13540, 0x4ff7 }, - { 13552, 0x2000 }, { 13553, 0x1137 }, { 13560, 0x0015 }, -}; -static const Summary16 big5_uni2indx_pagefa[1] = { - /* 0xfa00 */ - { 13563, 0x3000 }, -}; -static const Summary16 big5_uni2indx_pagefe[23] = { - /* 0xfe00 */ - { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0x0000 }, { 13565, 0xfffb }, - { 13580, 0xfe1f }, { 13592, 0xfef5 }, { 13605, 0x0e7f }, { 13615, 0x0000 }, - { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, - { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, { 13615, 0x0000 }, - /* 0xff00 */ - { 13615, 0xff7a }, { 13628, 0xffff }, { 13644, 0xffff }, { 13660, 0x97ff }, - { 13673, 0xfffe }, { 13688, 0x3fff }, { 13702, 0x0010 }, -}; - -static int -big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0100) - summary = &big5_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x0200 && wc < 0x0460) - summary = &big5_uni2indx_page02[(wc>>4)-0x020]; - else if (wc >= 0x2000 && wc < 0x22c0) - summary = &big5_uni2indx_page20[(wc>>4)-0x200]; - else if (wc >= 0x2400 && wc < 0x2650) - summary = &big5_uni2indx_page24[(wc>>4)-0x240]; - else if (wc >= 0x3000 && wc < 0x33e0) - summary = &big5_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x4e00 && wc < 0x9fb0) - summary = &big5_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0xfa00 && wc < 0xfa10) - summary = &big5_uni2indx_pagefa[(wc>>4)-0xfa0]; - else if (wc >= 0xfe00 && wc < 0xff70) - summary = &big5_uni2indx_pagefe[(wc>>4)-0xfe0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = big5_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/big5_2003.h b/jni/parted/libiconv/lib/big5_2003.h deleted file mode 100755 index a42e1cd..0000000 --- a/jni/parted/libiconv/lib/big5_2003.h +++ /dev/null @@ -1,475 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG5-2003 - */ - -/* - * BIG5-2003 is a slightly extended and slightly modified version of BIG5. - * It is actually nearer to Microsoft CP950 than to BIG5. The differences - * between EASTASIA/OTHER/BIG5.TXT found on ftp.unicode.org and BIG5-2003.TXT - * are as follows: - * - * 1. Some characters in the symbols area (0xA140..0xA2CE) are defined - * differently: - * - * code BIG5.TXT BIG5-2003.TXT - * 0xA145 0x2022 # BULLET 0x2027 # HYPHENATION POINT - * 0xA14E 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA - * 0xFE51 # SMALL IDEOGRAPHIC COMMA - * 0xA156 0x2013 # EN DASH 0x2015 # HORIZONTAL BAR - * 0xA15A --- 0x2574 # BOX DRAWINGS LIGHT LEFT - * 0xA1C3 --- 0xFFE3 # FULLWIDTH MACRON - * 0xA1C5 --- 0x02CD # MODIFIER LETTER LOW MACRON - * 0xA1E3 0x223C # TILDE OPERATOR 0xFF5E # FULLWIDTH TILDE - * 0xA1F2 0x2641 # EARTH 0x2295 # CIRCLED PLUS - * 0xA1F3 0x2609 # SUN 0x2299 # CIRCLED DOT OPERATOR - * 0xA1FE --- 0xFF0F # FULLWIDTH SOLIDUS - * 0xA240 --- 0xFF3C # FULLWIDTH REVERSE SOLIDUS - * 0xA241 0xFF0F # FULLWIDTH SOLIDUS 0x2215 # DIVISION SLASH - * 0xA242 0xFF3C # FULLWIDTH REVERSE SOLIDUS - * 0xFE68 # SMALL REVERSE SOLIDUS - * 0xA244 0x00A5 # YEN SIGN 0xFFE5 # FULLWIDTH YEN SIGN - * 0xA246 0x00A2 # CENT SIGN 0xFFE0 # FULLWIDTH CENT SIGN - * 0xA247 0x00A3 # POUND SIGN 0xFFE1 # FULLWIDTH POUND SIGN - * 0xA2A4 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL - * 0x2501 # BOX DRAWINGS HEAVY HORIZONTAL - * 0xA2A5 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - * 0x251D # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY - * 0xA2A6 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE - * 0x253F # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY - * 0xA2A7 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - * 0x2525 # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY - * 0xA2CC --- 0x3038 # HANGZHOU NUMERAL TEN - * 0xA2CD 0x5344 0x3039 # HANGZHOU NUMERAL TWENTY - * 0xA2CE --- 0x303A # HANGZHOU NUMERAL THIRTY - * - * 2. A control symbols area is added: - * - * code - * 0xA3C0..0xA3E0 U+2400..U+2421 - * - * 3. The Euro sign is added: - * - * code - * 0xA3E1 0x20AC # EURO SIGN - * - * 4. Some characters in the main area are defined differently: - * - * code BIG5.TXT BIG5-2003.TXT - * 0xC255 0x5F5D 0x5F5E - * - * 5. The area 0xC6A1..0xC7FE is organized differently: - * - * code - * 0xC6A1..0xC6BE numerals (was in BIG5.TXT at 0xC7E9..0xC7FC) - * 0xC6BF..0xC6D7 radicals - * 0xC6D8..0xC6E6 rarely used symbols - * 0xC6E7..0xC77A hiragana (U+3041..U+3093, was in BIG5.TXT at 0xC6A5..0xC6F7) - * 0xC77B..0xC7F2 katakana (U+30A1..U+30F6, was in BIG5.TXT at 0xC6F8..0xC7B0) - * - * 6. Some characters are added at 0xF9D6..0xF9DC. - * - * 7. Box drawing characters are added at 0xF9DD..0xF9FE. - * - * Note: 4 of these characters are mapped in a non-inversible way, because - * Unicode does not yet include the corresponding characters: - * - * code Unicode approximation - * 0xF9FA BOX DRAWINGS DOUBLE ARC DOWN AND RIGHT 0x2554 - * 0xF9FB BOX DRAWINGS DOUBLE ARC DOWN AND LEFT 0x2557 - * 0xF9FC BOX DRAWINGS DOUBLE ARC UP AND RIGHT 0x255A - * 0xF9FD BOX DRAWINGS DOUBLE ARC UP AND LEFT 0x255D - * - * 8. Private area mappings are added: - * - * code Unicode - * 0x{81..8D}{40..7E,A1..FE} U+EEB8..U+F6B0 - * 0x{8E..A0}{40..7E,A1..FE} U+E311..U+EEB7 - * 0x{FA..FE}{40..7E,A1..FE} U+E000..U+E310 - * - * These mappings are not contained in the BSMI Big5-2003 standard. However, - * they were contained in a draft of it. - */ - -static const unsigned short big5_2003_2uni_pagea1[314] = { - /* 0xa1 */ - 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a, - 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, - 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2015, 0xfe31, - 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, - 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, - 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, - 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, - 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, - 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, - 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, - 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, - 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, - 0x203e, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, - 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, - 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, - 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, - 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, - 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, - 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, - 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f, - /* 0xa2 */ - 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, - 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, - 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, - 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, - 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, - 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, - 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, - 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e, - 0x2570, 0x256f, 0x2501, 0x251d, 0x253f, 0x2525, 0x25e2, 0x25e3, - 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, - 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, - 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, - 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, - 0x3028, 0x3029, 0x3038, 0x3039, 0x303a, 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, 0xff41, - 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, - 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, - 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, -}; - -static const unsigned short big5_2003_2uni_pagec6[70] = { - /* 0xc6a1 */ - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, - 0x247a, 0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173, - 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x2f02, 0x2f03, - 0x2f05, 0x2f07, 0x2f0c, 0x2f0d, 0x2f0e, 0x2f13, 0x2f16, 0x2f19, - 0x2f1b, 0x2f22, 0x2f27, 0x2f2e, 0x2f33, 0x2f34, 0x2f35, 0x2f39, - 0x2f3a, 0x2f41, 0x2f46, 0x2f67, 0x2f68, 0x2fa1, 0x2faa, 0x00a8, - 0xff3e, 0x30fd, 0x30fe, 0x309d, 0x309e, 0xfffd, 0xfffd, 0x3005, - 0x3006, 0x3007, 0x30fc, 0xff3b, 0xff3d, 0x273d, -}; - -static const unsigned short big5_2003_2uni_pagef9[41] = { - /* 0xf9d6 */ - 0x7881, 0x92b9, 0x88cf, 0x58bb, 0x6052, 0x7ca7, 0x5afa, - /* 0xf9dd */ - 0x2554, 0x2566, 0x2557, 0x2560, 0x256c, 0x2563, 0x255a, 0x2569, - 0x255d, 0x2552, 0x2564, 0x2555, 0x255e, 0x256a, 0x2561, 0x2558, - 0x2567, 0x255b, 0x2553, 0x2565, 0x2556, 0x255f, 0x256b, 0x2562, - 0x2559, 0x2568, 0x255c, 0x2551, 0x2550, - 0x2554, 0x2557, 0x255a, 0x255d, /* not invertible */ - 0x2593, -}; - -static int -big5_2003_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5 extended) */ - if (c >= 0x81 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - if (c >= 0xa1) { - if (c < 0xa3) { - unsigned int i = 157 * (c - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - unsigned short wc = big5_2003_2uni_pagea1[i]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { - if (!(c == 0xc2 && c2 == 0x55)) { - int ret = big5_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - if (c == 0xa3) { - if (c2 >= 0xc0 && c2 <= 0xe1) { - *pwc = (c2 == 0xe1 ? 0x20ac : c2 == 0xe0 ? 0x2421 : 0x2340 + c2); - return 2; - } - } else if (c == 0xf9) { - if (c2 >= 0xd6) { - *pwc = big5_2003_2uni_pagef9[c2-0xd6]; - return 2; - } - } else if (c >= 0xfa) { - *pwc = 0xe000 + 157 * (c - 0xfa) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - return 2; - } - } else { - /* c == 0xc2 && c2 == 0x55. */ - *pwc = 0x5f5e; - return 2; - } - } else { - /* (c == 0xc6 && c2 >= 0xa1) || c == 0xc7. */ - unsigned int i = 157 * (c - 0xc6) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - if (i < 133) { - /* 63 <= i < 133. */ - unsigned short wc = big5_2003_2uni_pagec6[i-63]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } else if (i < 216) { - /* 133 <= i < 216. Hiragana. */ - *pwc = 0x3041 - 133 + i; - return 2; - } else if (i < 302) { - /* 216 <= i < 302. Katakana. */ - *pwc = 0x30a1 - 216 + i; - return 2; - } - } - } else { - /* 0x81 <= c < 0xa1. */ - *pwc = (c >= 0x8e ? 0xdb18 : 0xeeb8) + 157 * (c - 0x81) - + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - return 2; - } - } - } - } - return RET_ILSEQ; -} - -static const unsigned char big5_2003_2charset_page25[29] = { - /* 0x2550 */ - 0xf9, 0xf8, 0xe6, 0xef, 0xdd, 0xe8, 0xf1, 0xdf, - 0xec, 0xf5, 0xe3, 0xee, 0xf7, 0xe5, 0xe9, 0xf2, - 0xe0, 0xeb, 0xf4, 0xe2, 0xe7, 0xf0, 0xde, 0xed, - 0xf6, 0xe4, 0xea, 0xf3, 0xe1, -}; - -static int -big5_2003_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (BIG5 extended) */ - switch (wc >> 8) { - case 0x00: - if (wc == 0x00a8) { buf[0] = 0xc6; buf[1] = 0xd8; ret = 2; break; } - if (wc == 0x00a2 || wc == 0x00a3 || wc == 0x00a5) - return RET_ILUNI; - break; - case 0x02: - if (wc == 0x02cd) { buf[0] = 0xa1; buf[1] = 0xc5; ret = 2; break; } - break; - case 0x04: - return RET_ILUNI; - case 0x20: - if (wc == 0x2015) { buf[0] = 0xa1; buf[1] = 0x56; ret = 2; break; } - if (wc == 0x2027) { buf[0] = 0xa1; buf[1] = 0x45; ret = 2; break; } - if (wc == 0x20ac) { buf[0] = 0xa3; buf[1] = 0xe1; ret = 2; break; } - if (wc == 0x2013 || wc == 0x2022) - return RET_ILUNI; - break; - case 0x21: - if (wc >= 0x2170 && wc <= 0x2179) { - buf[0] = 0xc6; buf[1] = wc - 0x20bb; ret = 2; - break; - } - break; - case 0x22: - if (wc == 0x2215) { buf[0] = 0xa2; buf[1] = 0x41; ret = 2; break; } - if (wc == 0x2295) { buf[0] = 0xa1; buf[1] = 0xf2; ret = 2; break; } - if (wc == 0x2299) { buf[0] = 0xa1; buf[1] = 0xf3; ret = 2; break; } - if (wc == 0x223c) - return RET_ILUNI; - break; - case 0x24: - if (wc <= 0x241f) { buf[0] = 0xa3; buf[1] = wc - 0x2340; ret = 2; break; } - if (wc == 0x2421) { buf[0] = 0xa3; buf[1] = 0xe0; ret = 2; break; } - if (wc >= 0x2460 && wc <= 0x2469) { - buf[0] = 0xc6; buf[1] = wc - 0x23bf; ret = 2; - break; - } - if (wc >= 0x2474 && wc <= 0x247d) { - buf[0] = 0xc6; buf[1] = wc - 0x23c9; ret = 2; - break; - } - break; - case 0x25: - if (wc == 0x2501) { buf[0] = 0xa2; buf[1] = 0xa4; ret = 2; break; } - if (wc == 0x251d) { buf[0] = 0xa2; buf[1] = 0xa5; ret = 2; break; } - if (wc == 0x2525) { buf[0] = 0xa2; buf[1] = 0xa7; ret = 2; break; } - if (wc == 0x253f) { buf[0] = 0xa2; buf[1] = 0xa6; ret = 2; break; } - if (wc >= 0x2550 && wc <= 0x256c) { - buf[0] = 0xf9; buf[1] = big5_2003_2charset_page25[wc-0x2550]; ret = 2; - break; - } - if (wc == 0x2574) { buf[0] = 0xa1; buf[1] = 0x5a; ret = 2; break; } - if (wc == 0x2593) { buf[0] = 0xf9; buf[1] = 0xfe; ret = 2; break; } - break; - case 0x26: - if (wc == 0x2609 || wc == 0x2641) - return RET_ILUNI; - break; - case 0x27: - if (wc == 0x273d) { buf[0] = 0xc6; buf[1] = 0xe6; ret = 2; break; } - break; - case 0x2f: - if (wc == 0x2f02) { buf[0] = 0xc6; buf[1] = 0xbf; ret = 2; break; } - if (wc == 0x2f03) { buf[0] = 0xc6; buf[1] = 0xc0; ret = 2; break; } - if (wc == 0x2f05) { buf[0] = 0xc6; buf[1] = 0xc1; ret = 2; break; } - if (wc == 0x2f07) { buf[0] = 0xc6; buf[1] = 0xc2; ret = 2; break; } - if (wc == 0x2f0c) { buf[0] = 0xc6; buf[1] = 0xc3; ret = 2; break; } - if (wc == 0x2f0d) { buf[0] = 0xc6; buf[1] = 0xc4; ret = 2; break; } - if (wc == 0x2f0e) { buf[0] = 0xc6; buf[1] = 0xc5; ret = 2; break; } - if (wc == 0x2f13) { buf[0] = 0xc6; buf[1] = 0xc6; ret = 2; break; } - if (wc == 0x2f16) { buf[0] = 0xc6; buf[1] = 0xc7; ret = 2; break; } - if (wc == 0x2f19) { buf[0] = 0xc6; buf[1] = 0xc8; ret = 2; break; } - if (wc == 0x2f1b) { buf[0] = 0xc6; buf[1] = 0xc9; ret = 2; break; } - if (wc == 0x2f22) { buf[0] = 0xc6; buf[1] = 0xca; ret = 2; break; } - if (wc == 0x2f27) { buf[0] = 0xc6; buf[1] = 0xcb; ret = 2; break; } - if (wc == 0x2f2e) { buf[0] = 0xc6; buf[1] = 0xcc; ret = 2; break; } - if (wc == 0x2f33) { buf[0] = 0xc6; buf[1] = 0xcd; ret = 2; break; } - if (wc == 0x2f34) { buf[0] = 0xc6; buf[1] = 0xce; ret = 2; break; } - if (wc == 0x2f35) { buf[0] = 0xc6; buf[1] = 0xcf; ret = 2; break; } - if (wc == 0x2f39) { buf[0] = 0xc6; buf[1] = 0xd0; ret = 2; break; } - if (wc == 0x2f3a) { buf[0] = 0xc6; buf[1] = 0xd1; ret = 2; break; } - if (wc == 0x2f41) { buf[0] = 0xc6; buf[1] = 0xd2; ret = 2; break; } - if (wc == 0x2f46) { buf[0] = 0xc6; buf[1] = 0xd3; ret = 2; break; } - if (wc == 0x2f67) { buf[0] = 0xc6; buf[1] = 0xd4; ret = 2; break; } - if (wc == 0x2f68) { buf[0] = 0xc6; buf[1] = 0xd5; ret = 2; break; } - if (wc == 0x2fa1) { buf[0] = 0xc6; buf[1] = 0xd6; ret = 2; break; } - if (wc == 0x2faa) { buf[0] = 0xc6; buf[1] = 0xd7; ret = 2; break; } - break; - case 0x30: - if (wc >= 0x3005 && wc <= 0x3007) { - buf[0] = 0xc6; buf[1] = wc - 0x2f25; ret = 2; - break; - } - if (wc >= 0x3038 && wc <= 0x303a) { - buf[0] = 0xa2; buf[1] = wc - 0x2f6c; ret = 2; - break; - } - if (wc >= 0x3041 && wc <= 0x3093) { - if (wc < 0x3059) { - buf[0] = 0xc6; buf[1] = wc - 0x2f5a; - } else { - buf[0] = 0xc7; buf[1] = wc - 0x3019; - } - ret = 2; - break; - } - if (wc == 0x309d) { buf[0] = 0xc6; buf[1] = 0xdc; ret = 2; break; } - if (wc == 0x309e) { buf[0] = 0xc6; buf[1] = 0xdd; ret = 2; break; } - if (wc >= 0x30a1 && wc <= 0x30f6) { - buf[0] = 0xc7; buf[1] = wc - (wc < 0x30a5 ? 0x3026 : 0x3004); ret = 2; - break; - } - if (wc == 0x30fc) { buf[0] = 0xc6; buf[1] = 0xe3; ret = 2; break; } - if (wc == 0x30fd) { buf[0] = 0xc6; buf[1] = 0xda; ret = 2; break; } - if (wc == 0x30fe) { buf[0] = 0xc6; buf[1] = 0xdb; ret = 2; break; } - break; - case 0x53: - if (wc == 0x5344) - return RET_ILUNI; - break; - case 0x58: - if (wc == 0x58bb) { buf[0] = 0xf9; buf[1] = 0xd9; ret = 2; break; } - break; - case 0x5a: - if (wc == 0x5afa) { buf[0] = 0xf9; buf[1] = 0xdc; ret = 2; break; } - break; - case 0x5f: - if (wc == 0x5f5e) { buf[0] = 0xc2; buf[1] = 0x55; ret = 2; break; } - if (wc == 0x5f5d) - return RET_ILUNI; - break; - case 0x60: - if (wc == 0x6052) { buf[0] = 0xf9; buf[1] = 0xda; ret = 2; break; } - break; - case 0x78: - if (wc == 0x7881) { buf[0] = 0xf9; buf[1] = 0xd6; ret = 2; break; } - break; - case 0x7c: - if (wc == 0x7ca7) { buf[0] = 0xf9; buf[1] = 0xdb; ret = 2; break; } - break; - case 0x88: - if (wc == 0x88cf) { buf[0] = 0xf9; buf[1] = 0xd8; ret = 2; break; } - break; - case 0x92: - if (wc == 0x92b9) { buf[0] = 0xf9; buf[1] = 0xd7; ret = 2; break; } - break; - case 0xe0: case 0xe1: case 0xe2: case 0xe3: case 0xe4: case 0xe5: - case 0xe6: case 0xe7: case 0xe8: case 0xe9: case 0xea: case 0xeb: - case 0xec: case 0xed: case 0xee: case 0xef: case 0xf0: case 0xf1: - case 0xf2: case 0xf3: case 0xf4: case 0xf5: case 0xf6: - { - unsigned int i = wc - 0xe000; - if (i < 5809) { - unsigned int c1 = i / 157; - unsigned int c2 = i % 157; - buf[0] = c1 + (c1 < 5 ? 0xfa : c1 < 24 ? 0x89 : 0x69); - buf[1] = c2 + (c2 < 0x3f ? 0x40 : 0x62); - ret = 2; - break; - } - } - break; - case 0xfe: - if (wc == 0xfe51) { buf[0] = 0xa1; buf[1] = 0x4e; ret = 2; break; } - if (wc == 0xfe68) { buf[0] = 0xa2; buf[1] = 0x42; ret = 2; break; } - break; - case 0xff: - if (wc == 0xff0f) { buf[0] = 0xa1; buf[1] = 0xfe; ret = 2; break; } - if (wc == 0xff3b) { buf[0] = 0xc6; buf[1] = 0xe4; ret = 2; break; } - if (wc == 0xff3c) { buf[0] = 0xa2; buf[1] = 0x40; ret = 2; break; } - if (wc == 0xff3d) { buf[0] = 0xc6; buf[1] = 0xe5; ret = 2; break; } - if (wc == 0xff3e) { buf[0] = 0xc6; buf[1] = 0xd9; ret = 2; break; } - if (wc == 0xff5e) { buf[0] = 0xa1; buf[1] = 0xe3; ret = 2; break; } - if (wc == 0xffe0) { buf[0] = 0xa2; buf[1] = 0x46; ret = 2; break; } - if (wc == 0xffe1) { buf[0] = 0xa2; buf[1] = 0x47; ret = 2; break; } - if (wc == 0xffe3) { buf[0] = 0xa1; buf[1] = 0xc3; ret = 2; break; } - if (wc == 0xffe5) { buf[0] = 0xa2; buf[1] = 0x44; ret = 2; break; } - if (wc == 0xff64) - return RET_ILUNI; - break; - } - if (ret == RET_ILUNI) - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/big5hkscs1999.h b/jni/parted/libiconv/lib/big5hkscs1999.h deleted file mode 100755 index cd563c0..0000000 --- a/jni/parted/libiconv/lib/big5hkscs1999.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2006, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG5-HKSCS:1999 - */ - -/* - * BIG5-HKSCS:1999 can be downloaded from - * http://www.info.gov.hk/digital21/eng/hkscs/download.html - * http://www.info.gov.hk/digital21/eng/hkscs/index.html - * - * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges - * - * 0x{88..8D}{40..7E,A1..FE} 641 characters - * 0x{8E..A0}{40..7E,A1..FE} 2898 characters - * 0x{C6..C8}{40..7E,A1..FE} 359 characters - * 0xF9{D6..FE} 41 characters - * 0x{FA..FE}{40..7E,A1..FE} 763 characters - * - * Note that some HKSCS characters are not contained in Unicode 3.2 - * and are therefore best represented as sequences of Unicode characters: - * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON - * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON - */ - -#include "hkscs1999.h" -#include "flushwc.h" - -static int -big5hkscs1999_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5 extended) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { - int ret = big5_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - } - } - } - } - { - int ret = hkscs1999_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - if (c == 0x88) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { - /* It's a composed character. */ - ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ - ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = wc2; - return 2; - } - } - } - return RET_ILSEQ; - } -} - -#define big5hkscs1999_flushwc normal_flushwc - -static int -big5hkscs1999_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned char last = conv->ostate; - - if (last) { - /* last is = 0x66 or = 0xa7. */ - if (wc == 0x0304 || wc == 0x030c) { - /* Output the combined character. */ - if (n >= 2) { - r[0] = 0x88; - r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ - conv->ostate = 0; - return 2; - } else - return RET_TOOSMALL; - } - - /* Output the buffered character. */ - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - r += 2; - count = 2; - } - - /* Code set 0 (ASCII) */ - if (wc < 0x0080) { - /* Plain ASCII character. */ - if (n > count) { - r[0] = (unsigned char) wc; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else { - unsigned char buf[2]; - int ret; - - /* Code set 1 (BIG5 extended) */ - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - } - ret = hkscs1999_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if ((wc & ~0x0020) == 0x00ca) { - /* A possible first character of a multi-character sequence. We have to - buffer it. */ - if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); - conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ - return count+0; - } - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; - } -} - -static int -big5hkscs1999_reset (conv_t conv, unsigned char *r, size_t n) -{ - unsigned char last = conv->ostate; - - if (last) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/big5hkscs2001.h b/jni/parted/libiconv/lib/big5hkscs2001.h deleted file mode 100755 index 89c97cd..0000000 --- a/jni/parted/libiconv/lib/big5hkscs2001.h +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2006, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG5-HKSCS:2001 - */ - -/* - * BIG5-HKSCS:2001 can be downloaded from - * http://www.info.gov.hk/digital21/eng/hkscs/download.html - * http://www.info.gov.hk/digital21/eng/hkscs/index.html - * - * It extends BIG5-HKSCS:1999 through 116 characters. - * - * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges - * - * 0x{88..8D}{40..7E,A1..FE} 757 characters - * 0x{8E..A0}{40..7E,A1..FE} 2898 characters - * 0x{C6..C8}{40..7E,A1..FE} 359 characters - * 0xF9{D6..FE} 41 characters - * 0x{FA..FE}{40..7E,A1..FE} 763 characters - * - * Note that some HKSCS characters are not contained in Unicode 3.2 - * and are therefore best represented as sequences of Unicode characters: - * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON - * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON - */ - -#include "hkscs2001.h" -#include "flushwc.h" - -static int -big5hkscs2001_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5 extended) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { - int ret = big5_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - } - } - } - } - { - int ret = hkscs1999_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - { - int ret = hkscs2001_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - if (c == 0x88) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { - /* It's a composed character. */ - ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ - ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = wc2; - return 2; - } - } - } - return RET_ILSEQ; - } -} - -#define big5hkscs2001_flushwc normal_flushwc - -static int -big5hkscs2001_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned char last = conv->ostate; - - if (last) { - /* last is = 0x66 or = 0xa7. */ - if (wc == 0x0304 || wc == 0x030c) { - /* Output the combined character. */ - if (n >= 2) { - r[0] = 0x88; - r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ - conv->ostate = 0; - return 2; - } else - return RET_TOOSMALL; - } - - /* Output the buffered character. */ - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - r += 2; - count = 2; - } - - /* Code set 0 (ASCII) */ - if (wc < 0x0080) { - /* Plain ASCII character. */ - if (n > count) { - r[0] = (unsigned char) wc; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else { - unsigned char buf[2]; - int ret; - - /* Code set 1 (BIG5 extended) */ - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - } - ret = hkscs1999_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if ((wc & ~0x0020) == 0x00ca) { - /* A possible first character of a multi-character sequence. We have to - buffer it. */ - if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); - conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ - return count+0; - } - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - ret = hkscs2001_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; - } -} - -static int -big5hkscs2001_reset (conv_t conv, unsigned char *r, size_t n) -{ - unsigned char last = conv->ostate; - - if (last) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/big5hkscs2004.h b/jni/parted/libiconv/lib/big5hkscs2004.h deleted file mode 100755 index 87d8ae0..0000000 --- a/jni/parted/libiconv/lib/big5hkscs2004.h +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2006, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG5-HKSCS:2004 - */ - -/* - * BIG5-HKSCS:2004 can be downloaded from - * http://www.info.gov.hk/digital21/eng/hkscs/download.html - * http://www.info.gov.hk/digital21/eng/hkscs/index.html - * - * It extends BIG5-HKSCS:2001 through 123 characters. - * - * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges - * - * 0x{87..8D}{40..7E,A1..FE} 880 characters - * 0x{8E..A0}{40..7E,A1..FE} 2898 characters - * 0x{C6..C8}{40..7E,A1..FE} 359 characters - * 0xF9{D6..FE} 41 characters - * 0x{FA..FE}{40..7E,A1..FE} 763 characters - * - * Note that some HKSCS characters are not contained in Unicode 3.2 - * and are therefore best represented as sequences of Unicode characters: - * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON - * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON - */ - -#include "hkscs2004.h" -#include "flushwc.h" - -static int -big5hkscs2004_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5 extended) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { - int ret = big5_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - } - } - } - } - { - int ret = hkscs1999_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - { - int ret = hkscs2001_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - { - int ret = hkscs2004_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - if (c == 0x88) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { - /* It's a composed character. */ - ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ - ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = wc2; - return 2; - } - } - } - return RET_ILSEQ; - } -} - -#define big5hkscs2004_flushwc normal_flushwc - -static int -big5hkscs2004_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned char last = conv->ostate; - - if (last) { - /* last is = 0x66 or = 0xa7. */ - if (wc == 0x0304 || wc == 0x030c) { - /* Output the combined character. */ - if (n >= 2) { - r[0] = 0x88; - r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ - conv->ostate = 0; - return 2; - } else - return RET_TOOSMALL; - } - - /* Output the buffered character. */ - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - r += 2; - count = 2; - } - - /* Code set 0 (ASCII) */ - if (wc < 0x0080) { - /* Plain ASCII character. */ - if (n > count) { - r[0] = (unsigned char) wc; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else { - unsigned char buf[2]; - int ret; - - /* Code set 1 (BIG5 extended) */ - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - } - ret = hkscs1999_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if ((wc & ~0x0020) == 0x00ca) { - /* A possible first character of a multi-character sequence. We have to - buffer it. */ - if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); - conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ - return count+0; - } - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - ret = hkscs2001_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - ret = hkscs2004_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; - } -} - -static int -big5hkscs2004_reset (conv_t conv, unsigned char *r, size_t n) -{ - unsigned char last = conv->ostate; - - if (last) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/big5hkscs2008.h b/jni/parted/libiconv/lib/big5hkscs2008.h deleted file mode 100755 index c9818e4..0000000 --- a/jni/parted/libiconv/lib/big5hkscs2008.h +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2006, 2010 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG5-HKSCS:2008 - */ - -/* - * BIG5-HKSCS:2008 can be downloaded from - * http://www.ogcio.gov.hk/ccli/eng/hkscs/download.html - * http://www.ogcio.gov.hk/ccli/eng/hkscs/introduction.html - * - * It extends BIG5-HKSCS:2004 through 68 characters. - * - * It extends BIG5 (without the rows 0xC6..0xC7) through the ranges - * - * 0x{87..8D}{40..7E,A1..FE} 880 characters - * 0x{8E..A0}{40..7E,A1..FE} 2898 characters - * 0x{C6..C8}{40..7E,A1..FE} 359 characters - * 0xF9{D6..FE} 41 characters - * 0x{FA..FE}{40..7E,A1..FE} 763 characters - * - * Note that some HKSCS characters are not contained in Unicode 3.2 - * and are therefore best represented as sequences of Unicode characters: - * 0x8862 U+00CA U+0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x8864 U+00CA U+030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON - * 0x88A3 U+00EA U+0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON - * 0x88A5 U+00EA U+030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON - */ - -#include "hkscs2008.h" -#include "flushwc.h" - -static int -big5hkscs2008_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5 extended) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { - int ret = big5_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - } - } - } - } - { - int ret = hkscs1999_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - { - int ret = hkscs2001_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - { - int ret = hkscs2004_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - { - int ret = hkscs2008_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - if (c == 0x88) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 == 0x62 || c2 == 0x64 || c2 == 0xa3 || c2 == 0xa5) { - /* It's a composed character. */ - ucs4_t wc1 = ((c2 >> 3) << 2) + 0x009a; /* = 0x00ca or 0x00ea */ - ucs4_t wc2 = ((c2 & 6) << 2) + 0x02fc; /* = 0x0304 or 0x030c */ - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = wc2; - return 2; - } - } - } - return RET_ILSEQ; - } -} - -#define big5hkscs2008_flushwc normal_flushwc - -static int -big5hkscs2008_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned char last = conv->ostate; - - if (last) { - /* last is = 0x66 or = 0xa7. */ - if (wc == 0x0304 || wc == 0x030c) { - /* Output the combined character. */ - if (n >= 2) { - r[0] = 0x88; - r[1] = last + ((wc & 24) >> 2) - 4; /* = 0x62 or 0x64 or 0xa3 or 0xa5 */ - conv->ostate = 0; - return 2; - } else - return RET_TOOSMALL; - } - - /* Output the buffered character. */ - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - r += 2; - count = 2; - } - - /* Code set 0 (ASCII) */ - if (wc < 0x0080) { - /* Plain ASCII character. */ - if (n > count) { - r[0] = (unsigned char) wc; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else { - unsigned char buf[2]; - int ret; - - /* Code set 1 (BIG5 extended) */ - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - } - ret = hkscs1999_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if ((wc & ~0x0020) == 0x00ca) { - /* A possible first character of a multi-character sequence. We have to - buffer it. */ - if (!(buf[0] == 0x88 && (buf[1] == 0x66 || buf[1] == 0xa7))) abort(); - conv->ostate = buf[1]; /* = 0x66 or = 0xa7 */ - return count+0; - } - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - ret = hkscs2001_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - ret = hkscs2004_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - ret = hkscs2008_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n >= count+2) { - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; - } -} - -static int -big5hkscs2008_reset (conv_t conv, unsigned char *r, size_t n) -{ - unsigned char last = conv->ostate; - - if (last) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x88; - r[1] = last; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/c99.h b/jni/parted/libiconv/lib/c99.h deleted file mode 100755 index 290dd9a..0000000 --- a/jni/parted/libiconv/lib/c99.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * C99 - * This is ASCII with \uXXXX and \UXXXXXXXX escape sequences, denoting Unicode - * characters. See ISO/IEC 9899:1999, section 6.4.3. - * The treatment of control characters in the range U+0080..U+009F is not - * specified; we pass them through unmodified. - */ - -static int -c99_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c; - ucs4_t wc; - int i; - - c = s[0]; - if (c < 0xa0) { - if (c != '\\') { - *pwc = c; - return 1; - } - if (n < 2) - return RET_TOOFEW(0); - c = s[1]; - if (c == 'u') { - wc = 0; - for (i = 2; i < 6; i++) { - if (n <= i) - return RET_TOOFEW(0); - c = s[i]; - 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 - goto simply_backslash; - wc |= (ucs4_t) c << (4 * (5-i)); - } - if ((wc >= 0x00a0 && !(wc >= 0xd800 && wc < 0xe000)) - || wc == 0x0024 || wc == 0x0040 || wc == 0x0060) { - *pwc = wc; - return 6; - } - } else if (c == 'U') { - wc = 0; - for (i = 2; i < 10; i++) { - if (n <= i) - return RET_TOOFEW(0); - c = s[i]; - 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 - goto simply_backslash; - wc |= (ucs4_t) c << (4 * (9-i)); - } - if ((wc >= 0x00a0 && !(wc >= 0xd800 && wc < 0xe000)) - || wc == 0x0024 || wc == 0x0040 || wc == 0x0060) { - *pwc = wc; - return 10; - } - } else - goto simply_backslash; - } - return RET_ILSEQ; -simply_backslash: - *pwc = '\\'; - return 1; -} - -static int -c99_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0xa0) { - *r = wc; - return 1; - } else { - int result; - unsigned char u; - if (wc < 0x10000) { - result = 6; - u = 'u'; - } else { - result = 10; - u = 'U'; - } - if (n >= result) { - int count; - r[0] = '\\'; - r[1] = u; - r += 2; - for (count = result-3; count >= 0; count--) { - unsigned int i = (wc >> (4*count)) & 0x0f; - *r++ = (i < 10 ? '0'+i : 'a'-10+i); - } - return result; - } else - return RET_TOOSMALL; - } -} diff --git a/jni/parted/libiconv/lib/canonical.h b/jni/parted/libiconv/lib/canonical.h deleted file mode 100755 index fe7b18e..0000000 --- a/jni/parted/libiconv/lib/canonical.h +++ /dev/null @@ -1,111 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str392, - (int)(long)&((struct stringpool_t *)0)->stringpool_str389, - (int)(long)&((struct stringpool_t *)0)->stringpool_str258, - (int)(long)&((struct stringpool_t *)0)->stringpool_str436, - (int)(long)&((struct stringpool_t *)0)->stringpool_str285, - (int)(long)&((struct stringpool_t *)0)->stringpool_str222, - (int)(long)&((struct stringpool_t *)0)->stringpool_str418, - (int)(long)&((struct stringpool_t *)0)->stringpool_str267, - (int)(long)&((struct stringpool_t *)0)->stringpool_str361, - (int)(long)&((struct stringpool_t *)0)->stringpool_str567, - (int)(long)&((struct stringpool_t *)0)->stringpool_str416, - (int)(long)&((struct stringpool_t *)0)->stringpool_str512, - (int)(long)&((struct stringpool_t *)0)->stringpool_str690, - (int)(long)&((struct stringpool_t *)0)->stringpool_str539, - (int)(long)&((struct stringpool_t *)0)->stringpool_str689, - (int)(long)&((struct stringpool_t *)0)->stringpool_str320, - (int)(long)&((struct stringpool_t *)0)->stringpool_str750, - (int)(long)&((struct stringpool_t *)0)->stringpool_str302, - (int)(long)&((struct stringpool_t *)0)->stringpool_str732, - (int)(long)&((struct stringpool_t *)0)->stringpool_str64, - (int)(long)&((struct stringpool_t *)0)->stringpool_str811, - (int)(long)&((struct stringpool_t *)0)->stringpool_str134, - (int)(long)&((struct stringpool_t *)0)->stringpool_str186, - (int)(long)&((struct stringpool_t *)0)->stringpool_str324, - (int)(long)&((struct stringpool_t *)0)->stringpool_str150, - (int)(long)&((struct stringpool_t *)0)->stringpool_str154, - (int)(long)&((struct stringpool_t *)0)->stringpool_str130, - (int)(long)&((struct stringpool_t *)0)->stringpool_str466, - (int)(long)&((struct stringpool_t *)0)->stringpool_str166, - (int)(long)&((struct stringpool_t *)0)->stringpool_str170, - (int)(long)&((struct stringpool_t *)0)->stringpool_str322, - (int)(long)&((struct stringpool_t *)0)->stringpool_str142, - (int)(long)&((struct stringpool_t *)0)->stringpool_str332, - (int)(long)&((struct stringpool_t *)0)->stringpool_str158, - (int)(long)&((struct stringpool_t *)0)->stringpool_str162, - (int)(long)&((struct stringpool_t *)0)->stringpool_str138, - (int)(long)&((struct stringpool_t *)0)->stringpool_str236, - (int)(long)&((struct stringpool_t *)0)->stringpool_str574, - (int)(long)&((struct stringpool_t *)0)->stringpool_str580, - (int)(long)&((struct stringpool_t *)0)->stringpool_str268, - (int)(long)&((struct stringpool_t *)0)->stringpool_str88, - (int)(long)&((struct stringpool_t *)0)->stringpool_str140, - (int)(long)&((struct stringpool_t *)0)->stringpool_str278, - (int)(long)&((struct stringpool_t *)0)->stringpool_str104, - (int)(long)&((struct stringpool_t *)0)->stringpool_str108, - (int)(long)&((struct stringpool_t *)0)->stringpool_str84, - (int)(long)&((struct stringpool_t *)0)->stringpool_str420, - (int)(long)&((struct stringpool_t *)0)->stringpool_str120, - (int)(long)&((struct stringpool_t *)0)->stringpool_str250, - (int)(long)&((struct stringpool_t *)0)->stringpool_str110, - (int)(long)&((struct stringpool_t *)0)->stringpool_str54, - (int)(long)&((struct stringpool_t *)0)->stringpool_str147, - (int)(long)&((struct stringpool_t *)0)->stringpool_str476, - (int)(long)&((struct stringpool_t *)0)->stringpool_str463, - (int)(long)&((struct stringpool_t *)0)->stringpool_str442, - (int)(long)&((struct stringpool_t *)0)->stringpool_str562, - (int)(long)&((struct stringpool_t *)0)->stringpool_str813, - (int)(long)&((struct stringpool_t *)0)->stringpool_str248, - (int)(long)&((struct stringpool_t *)0)->stringpool_str749, - (int)(long)&((struct stringpool_t *)0)->stringpool_str591, - (int)(long)&((struct stringpool_t *)0)->stringpool_str702, - (int)(long)&((struct stringpool_t *)0)->stringpool_str796, - (int)(long)&((struct stringpool_t *)0)->stringpool_str680, - (int)(long)&((struct stringpool_t *)0)->stringpool_str430, - (int)(long)&((struct stringpool_t *)0)->stringpool_str448, - (int)(long)&((struct stringpool_t *)0)->stringpool_str311, - (int)(long)&((struct stringpool_t *)0)->stringpool_str391, - (int)(long)&((struct stringpool_t *)0)->stringpool_str446, - (int)(long)&((struct stringpool_t *)0)->stringpool_str312, - (int)(long)&((struct stringpool_t *)0)->stringpool_str286, - (int)(long)&((struct stringpool_t *)0)->stringpool_str121, - (int)(long)&((struct stringpool_t *)0)->stringpool_str176, - (int)(long)&((struct stringpool_t *)0)->stringpool_str375, - (int)(long)&((struct stringpool_t *)0)->stringpool_str337, - (int)(long)&((struct stringpool_t *)0)->stringpool_str282, - (int)(long)&((struct stringpool_t *)0)->stringpool_str242, - (int)(long)&((struct stringpool_t *)0)->stringpool_str206, - (int)(long)&((struct stringpool_t *)0)->stringpool_str211, - (int)(long)&((struct stringpool_t *)0)->stringpool_str536, - (int)(long)&((struct stringpool_t *)0)->stringpool_str651, - (int)(long)&((struct stringpool_t *)0)->stringpool_str683, - (int)(long)&((struct stringpool_t *)0)->stringpool_str613, - (int)(long)&((struct stringpool_t *)0)->stringpool_str329, - (int)(long)&((struct stringpool_t *)0)->stringpool_str426, - (int)(long)&((struct stringpool_t *)0)->stringpool_str89, - (int)(long)&((struct stringpool_t *)0)->stringpool_str344, - (int)(long)&((struct stringpool_t *)0)->stringpool_str479, - (int)(long)&((struct stringpool_t *)0)->stringpool_str548, - (int)(long)&((struct stringpool_t *)0)->stringpool_str209, - (int)(long)&((struct stringpool_t *)0)->stringpool_str661, - (int)(long)&((struct stringpool_t *)0)->stringpool_str608, - (int)(long)&((struct stringpool_t *)0)->stringpool_str634, - (int)(long)&((struct stringpool_t *)0)->stringpool_str610, - (int)(long)&((struct stringpool_t *)0)->stringpool_str72, - (int)(long)&((struct stringpool_t *)0)->stringpool_str388, - (int)(long)&((struct stringpool_t *)0)->stringpool_str153, - (int)(long)&((struct stringpool_t *)0)->stringpool_str443, - (int)(long)&((struct stringpool_t *)0)->stringpool_str254, - (int)(long)&((struct stringpool_t *)0)->stringpool_str281, - (int)(long)&((struct stringpool_t *)0)->stringpool_str78, - (int)(long)&((struct stringpool_t *)0)->stringpool_str437, - (int)(long)&((struct stringpool_t *)0)->stringpool_str210, - (int)(long)&((struct stringpool_t *)0)->stringpool_str252, - (int)(long)&((struct stringpool_t *)0)->stringpool_str710, - (int)(long)&((struct stringpool_t *)0)->stringpool_str692, - (int)(long)&((struct stringpool_t *)0)->stringpool_str700, - (int)(long)&((struct stringpool_t *)0)->stringpool_str495, - (int)(long)&((struct stringpool_t *)0)->stringpool_str243, - (int)(long)&((struct stringpool_t *)0)->stringpool_str106, - (int)(long)&((struct stringpool_t *)0)->stringpool_str869, - (int)(long)&((struct stringpool_t *)0)->stringpool_str425, diff --git a/jni/parted/libiconv/lib/canonical_aix.h b/jni/parted/libiconv/lib/canonical_aix.h deleted file mode 100755 index 6149bc1..0000000 --- a/jni/parted/libiconv/lib/canonical_aix.h +++ /dev/null @@ -1,9 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_1, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_2, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_3, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_4, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_5, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_6, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_10, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_14, diff --git a/jni/parted/libiconv/lib/canonical_aix_sysaix.h b/jni/parted/libiconv/lib/canonical_aix_sysaix.h deleted file mode 100755 index 8b58d1f..0000000 --- a/jni/parted/libiconv/lib/canonical_aix_sysaix.h +++ /dev/null @@ -1,9 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_2, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_4, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_6, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_8, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_10, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_12, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_16, - (int)(long)&((struct stringpool2_t *)0)->stringpool_aix_20, diff --git a/jni/parted/libiconv/lib/canonical_dos.h b/jni/parted/libiconv/lib/canonical_dos.h deleted file mode 100755 index aa82651..0000000 --- a/jni/parted/libiconv/lib/canonical_dos.h +++ /dev/null @@ -1,15 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_4, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_5, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_8, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_12, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_13, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_17, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_21, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_22, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_26, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_31, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_35, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_38, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_42, - (int)(long)&((struct stringpool2_t *)0)->stringpool_dos_47, diff --git a/jni/parted/libiconv/lib/canonical_extra.h b/jni/parted/libiconv/lib/canonical_extra.h deleted file mode 100755 index 29678a0..0000000 --- a/jni/parted/libiconv/lib/canonical_extra.h +++ /dev/null @@ -1,7 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_2, - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_4, - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_6, - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_7, - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_9, - (int)(long)&((struct stringpool2_t *)0)->stringpool_extra_11, diff --git a/jni/parted/libiconv/lib/canonical_local.h b/jni/parted/libiconv/lib/canonical_local.h deleted file mode 100755 index 7018202..0000000 --- a/jni/parted/libiconv/lib/canonical_local.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str193, - (int)(long)&((struct stringpool_t *)0)->stringpool_str496, diff --git a/jni/parted/libiconv/lib/canonical_local_sysaix.h b/jni/parted/libiconv/lib/canonical_local_sysaix.h deleted file mode 100755 index f578791..0000000 --- a/jni/parted/libiconv/lib/canonical_local_sysaix.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str15, - (int)(long)&((struct stringpool_t *)0)->stringpool_str484, diff --git a/jni/parted/libiconv/lib/canonical_local_syshpux.h b/jni/parted/libiconv/lib/canonical_local_syshpux.h deleted file mode 100755 index 47d6dcf..0000000 --- a/jni/parted/libiconv/lib/canonical_local_syshpux.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str171, - (int)(long)&((struct stringpool_t *)0)->stringpool_str723, diff --git a/jni/parted/libiconv/lib/canonical_local_sysosf1.h b/jni/parted/libiconv/lib/canonical_local_sysosf1.h deleted file mode 100755 index 216b7fc..0000000 --- a/jni/parted/libiconv/lib/canonical_local_sysosf1.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str193, - (int)(long)&((struct stringpool_t *)0)->stringpool_str457, diff --git a/jni/parted/libiconv/lib/canonical_local_syssolaris.h b/jni/parted/libiconv/lib/canonical_local_syssolaris.h deleted file mode 100755 index 895c7ee..0000000 --- a/jni/parted/libiconv/lib/canonical_local_syssolaris.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str112, - (int)(long)&((struct stringpool_t *)0)->stringpool_str491, diff --git a/jni/parted/libiconv/lib/canonical_osf1.h b/jni/parted/libiconv/lib/canonical_osf1.h deleted file mode 100755 index 0e134ac..0000000 --- a/jni/parted/libiconv/lib/canonical_osf1.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_1, diff --git a/jni/parted/libiconv/lib/canonical_osf1_sysosf1.h b/jni/parted/libiconv/lib/canonical_osf1_sysosf1.h deleted file mode 100755 index 15c2769..0000000 --- a/jni/parted/libiconv/lib/canonical_osf1_sysosf1.h +++ /dev/null @@ -1,2 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_osf1_2, diff --git a/jni/parted/libiconv/lib/canonical_sysaix.h b/jni/parted/libiconv/lib/canonical_sysaix.h deleted file mode 100755 index a8013a2..0000000 --- a/jni/parted/libiconv/lib/canonical_sysaix.h +++ /dev/null @@ -1,111 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str391, - (int)(long)&((struct stringpool_t *)0)->stringpool_str282, - (int)(long)&((struct stringpool_t *)0)->stringpool_str145, - (int)(long)&((struct stringpool_t *)0)->stringpool_str452, - (int)(long)&((struct stringpool_t *)0)->stringpool_str267, - (int)(long)&((struct stringpool_t *)0)->stringpool_str131, - (int)(long)&((struct stringpool_t *)0)->stringpool_str445, - (int)(long)&((struct stringpool_t *)0)->stringpool_str260, - (int)(long)&((struct stringpool_t *)0)->stringpool_str255, - (int)(long)&((struct stringpool_t *)0)->stringpool_str573, - (int)(long)&((struct stringpool_t *)0)->stringpool_str388, - (int)(long)&((struct stringpool_t *)0)->stringpool_str303, - (int)(long)&((struct stringpool_t *)0)->stringpool_str610, - (int)(long)&((struct stringpool_t *)0)->stringpool_str425, - (int)(long)&((struct stringpool_t *)0)->stringpool_str618, - (int)(long)&((struct stringpool_t *)0)->stringpool_str418, - (int)(long)&((struct stringpool_t *)0)->stringpool_str469, - (int)(long)&((struct stringpool_t *)0)->stringpool_str411, - (int)(long)&((struct stringpool_t *)0)->stringpool_str462, - (int)(long)&((struct stringpool_t *)0)->stringpool_str5, - (int)(long)&((struct stringpool_t *)0)->stringpool_str457, - (int)(long)&((struct stringpool_t *)0)->stringpool_str155, - (int)(long)&((struct stringpool_t *)0)->stringpool_str183, - (int)(long)&((struct stringpool_t *)0)->stringpool_str207, - (int)(long)&((struct stringpool_t *)0)->stringpool_str169, - (int)(long)&((struct stringpool_t *)0)->stringpool_str177, - (int)(long)&((struct stringpool_t *)0)->stringpool_str161, - (int)(long)&((struct stringpool_t *)0)->stringpool_str527, - (int)(long)&((struct stringpool_t *)0)->stringpool_str191, - (int)(long)&((struct stringpool_t *)0)->stringpool_str151, - (int)(long)&((struct stringpool_t *)0)->stringpool_str242, - (int)(long)&((struct stringpool_t *)0)->stringpool_str158, - (int)(long)&((struct stringpool_t *)0)->stringpool_str210, - (int)(long)&((struct stringpool_t *)0)->stringpool_str172, - (int)(long)&((struct stringpool_t *)0)->stringpool_str180, - (int)(long)&((struct stringpool_t *)0)->stringpool_str164, - (int)(long)&((struct stringpool_t *)0)->stringpool_str313, - (int)(long)&((struct stringpool_t *)0)->stringpool_str507, - (int)(long)&((struct stringpool_t *)0)->stringpool_str508, - (int)(long)&((struct stringpool_t *)0)->stringpool_str127, - (int)(long)&((struct stringpool_t *)0)->stringpool_str43, - (int)(long)&((struct stringpool_t *)0)->stringpool_str71, - (int)(long)&((struct stringpool_t *)0)->stringpool_str95, - (int)(long)&((struct stringpool_t *)0)->stringpool_str57, - (int)(long)&((struct stringpool_t *)0)->stringpool_str65, - (int)(long)&((struct stringpool_t *)0)->stringpool_str49, - (int)(long)&((struct stringpool_t *)0)->stringpool_str415, - (int)(long)&((struct stringpool_t *)0)->stringpool_str79, - (int)(long)&((struct stringpool_t *)0)->stringpool_str128, - (int)(long)&((struct stringpool_t *)0)->stringpool_str64, - (int)(long)&((struct stringpool_t *)0)->stringpool_str42, - (int)(long)&((struct stringpool_t *)0)->stringpool_str44, - (int)(long)&((struct stringpool_t *)0)->stringpool_str437, - (int)(long)&((struct stringpool_t *)0)->stringpool_str557, - (int)(long)&((struct stringpool_t *)0)->stringpool_str429, - (int)(long)&((struct stringpool_t *)0)->stringpool_str451, - (int)(long)&((struct stringpool_t *)0)->stringpool_str542, - (int)(long)&((struct stringpool_t *)0)->stringpool_str426, - (int)(long)&((struct stringpool_t *)0)->stringpool_str744, - (int)(long)&((struct stringpool_t *)0)->stringpool_str809, - (int)(long)&((struct stringpool_t *)0)->stringpool_str815, - (int)(long)&((struct stringpool_t *)0)->stringpool_str958, - (int)(long)&((struct stringpool_t *)0)->stringpool_str518, - (int)(long)&((struct stringpool_t *)0)->stringpool_str560, - (int)(long)&((struct stringpool_t *)0)->stringpool_str309, - (int)(long)&((struct stringpool_t *)0)->stringpool_str647, - (int)(long)&((struct stringpool_t *)0)->stringpool_str453, - (int)(long)&((struct stringpool_t *)0)->stringpool_str270, - (int)(long)&((struct stringpool_t *)0)->stringpool_str315, - (int)(long)&((struct stringpool_t *)0)->stringpool_str549, - (int)(long)&((struct stringpool_t *)0)->stringpool_str90, - (int)(long)&((struct stringpool_t *)0)->stringpool_str101, - (int)(long)&((struct stringpool_t *)0)->stringpool_str305, - (int)(long)&((struct stringpool_t *)0)->stringpool_str96, - (int)(long)&((struct stringpool_t *)0)->stringpool_str245, - (int)(long)&((struct stringpool_t *)0)->stringpool_str233, - (int)(long)&((struct stringpool_t *)0)->stringpool_str342, - (int)(long)&((struct stringpool_t *)0)->stringpool_str187, - (int)(long)&((struct stringpool_t *)0)->stringpool_str490, - (int)(long)&((struct stringpool_t *)0)->stringpool_str725, - (int)(long)&((struct stringpool_t *)0)->stringpool_str761, - (int)(long)&((struct stringpool_t *)0)->stringpool_str711, - (int)(long)&((struct stringpool_t *)0)->stringpool_str226, - (int)(long)&((struct stringpool_t *)0)->stringpool_str246, - (int)(long)&((struct stringpool_t *)0)->stringpool_str219, - (int)(long)&((struct stringpool_t *)0)->stringpool_str276, - (int)(long)&((struct stringpool_t *)0)->stringpool_str553, - (int)(long)&((struct stringpool_t *)0)->stringpool_str853, - (int)(long)&((struct stringpool_t *)0)->stringpool_str67, - (int)(long)&((struct stringpool_t *)0)->stringpool_str671, - (int)(long)&((struct stringpool_t *)0)->stringpool_str623, - (int)(long)&((struct stringpool_t *)0)->stringpool_str637, - (int)(long)&((struct stringpool_t *)0)->stringpool_str633, - (int)(long)&((struct stringpool_t *)0)->stringpool_str81, - (int)(long)&((struct stringpool_t *)0)->stringpool_str466, - (int)(long)&((struct stringpool_t *)0)->stringpool_str45, - (int)(long)&((struct stringpool_t *)0)->stringpool_str254, - (int)(long)&((struct stringpool_t *)0)->stringpool_str199, - (int)(long)&((struct stringpool_t *)0)->stringpool_str318, - (int)(long)&((struct stringpool_t *)0)->stringpool_str48, - (int)(long)&((struct stringpool_t *)0)->stringpool_str569, - (int)(long)&((struct stringpool_t *)0)->stringpool_str286, - (int)(long)&((struct stringpool_t *)0)->stringpool_str108, - (int)(long)&((struct stringpool_t *)0)->stringpool_str719, - (int)(long)&((struct stringpool_t *)0)->stringpool_str721, - (int)(long)&((struct stringpool_t *)0)->stringpool_str728, - (int)(long)&((struct stringpool_t *)0)->stringpool_str555, - (int)(long)&((struct stringpool_t *)0)->stringpool_str272, - (int)(long)&((struct stringpool_t *)0)->stringpool_str16, - (int)(long)&((struct stringpool_t *)0)->stringpool_str814, - (int)(long)&((struct stringpool_t *)0)->stringpool_str390, diff --git a/jni/parted/libiconv/lib/canonical_syshpux.h b/jni/parted/libiconv/lib/canonical_syshpux.h deleted file mode 100755 index d6c1ac8..0000000 --- a/jni/parted/libiconv/lib/canonical_syshpux.h +++ /dev/null @@ -1,111 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str396, - (int)(long)&((struct stringpool_t *)0)->stringpool_str355, - (int)(long)&((struct stringpool_t *)0)->stringpool_str293, - (int)(long)&((struct stringpool_t *)0)->stringpool_str499, - (int)(long)&((struct stringpool_t *)0)->stringpool_str345, - (int)(long)&((struct stringpool_t *)0)->stringpool_str267, - (int)(long)&((struct stringpool_t *)0)->stringpool_str486, - (int)(long)&((struct stringpool_t *)0)->stringpool_str332, - (int)(long)&((struct stringpool_t *)0)->stringpool_str322, - (int)(long)&((struct stringpool_t *)0)->stringpool_str553, - (int)(long)&((struct stringpool_t *)0)->stringpool_str399, - (int)(long)&((struct stringpool_t *)0)->stringpool_str430, - (int)(long)&((struct stringpool_t *)0)->stringpool_str636, - (int)(long)&((struct stringpool_t *)0)->stringpool_str482, - (int)(long)&((struct stringpool_t *)0)->stringpool_str495, - (int)(long)&((struct stringpool_t *)0)->stringpool_str503, - (int)(long)&((struct stringpool_t *)0)->stringpool_str500, - (int)(long)&((struct stringpool_t *)0)->stringpool_str490, - (int)(long)&((struct stringpool_t *)0)->stringpool_str487, - (int)(long)&((struct stringpool_t *)0)->stringpool_str110, - (int)(long)&((struct stringpool_t *)0)->stringpool_str639, - (int)(long)&((struct stringpool_t *)0)->stringpool_str114, - (int)(long)&((struct stringpool_t *)0)->stringpool_str178, - (int)(long)&((struct stringpool_t *)0)->stringpool_str230, - (int)(long)&((struct stringpool_t *)0)->stringpool_str152, - (int)(long)&((struct stringpool_t *)0)->stringpool_str142, - (int)(long)&((struct stringpool_t *)0)->stringpool_str128, - (int)(long)&((struct stringpool_t *)0)->stringpool_str306, - (int)(long)&((struct stringpool_t *)0)->stringpool_str166, - (int)(long)&((struct stringpool_t *)0)->stringpool_str112, - (int)(long)&((struct stringpool_t *)0)->stringpool_str223, - (int)(long)&((struct stringpool_t *)0)->stringpool_str119, - (int)(long)&((struct stringpool_t *)0)->stringpool_str235, - (int)(long)&((struct stringpool_t *)0)->stringpool_str157, - (int)(long)&((struct stringpool_t *)0)->stringpool_str147, - (int)(long)&((struct stringpool_t *)0)->stringpool_str133, - (int)(long)&((struct stringpool_t *)0)->stringpool_str100, - (int)(long)&((struct stringpool_t *)0)->stringpool_str516, - (int)(long)&((struct stringpool_t *)0)->stringpool_str519, - (int)(long)&((struct stringpool_t *)0)->stringpool_str277, - (int)(long)&((struct stringpool_t *)0)->stringpool_str173, - (int)(long)&((struct stringpool_t *)0)->stringpool_str237, - (int)(long)&((struct stringpool_t *)0)->stringpool_str289, - (int)(long)&((struct stringpool_t *)0)->stringpool_str211, - (int)(long)&((struct stringpool_t *)0)->stringpool_str201, - (int)(long)&((struct stringpool_t *)0)->stringpool_str187, - (int)(long)&((struct stringpool_t *)0)->stringpool_str365, - (int)(long)&((struct stringpool_t *)0)->stringpool_str225, - (int)(long)&((struct stringpool_t *)0)->stringpool_str266, - (int)(long)&((struct stringpool_t *)0)->stringpool_str219, - (int)(long)&((struct stringpool_t *)0)->stringpool_str169, - (int)(long)&((struct stringpool_t *)0)->stringpool_str185, - (int)(long)&((struct stringpool_t *)0)->stringpool_str515, - (int)(long)&((struct stringpool_t *)0)->stringpool_str731, - (int)(long)&((struct stringpool_t *)0)->stringpool_str501, - (int)(long)&((struct stringpool_t *)0)->stringpool_str696, - (int)(long)&((struct stringpool_t *)0)->stringpool_str626, - (int)(long)&((struct stringpool_t *)0)->stringpool_str610, - (int)(long)&((struct stringpool_t *)0)->stringpool_str680, - (int)(long)&((struct stringpool_t *)0)->stringpool_str518, - (int)(long)&((struct stringpool_t *)0)->stringpool_str1033, - (int)(long)&((struct stringpool_t *)0)->stringpool_str986, - (int)(long)&((struct stringpool_t *)0)->stringpool_str760, - (int)(long)&((struct stringpool_t *)0)->stringpool_str655, - (int)(long)&((struct stringpool_t *)0)->stringpool_str479, - (int)(long)&((struct stringpool_t *)0)->stringpool_str584, - (int)(long)&((struct stringpool_t *)0)->stringpool_str393, - (int)(long)&((struct stringpool_t *)0)->stringpool_str436, - (int)(long)&((struct stringpool_t *)0)->stringpool_str273, - (int)(long)&((struct stringpool_t *)0)->stringpool_str418, - (int)(long)&((struct stringpool_t *)0)->stringpool_str76, - (int)(long)&((struct stringpool_t *)0)->stringpool_str151, - (int)(long)&((struct stringpool_t *)0)->stringpool_str305, - (int)(long)&((struct stringpool_t *)0)->stringpool_str301, - (int)(long)&((struct stringpool_t *)0)->stringpool_str333, - (int)(long)&((struct stringpool_t *)0)->stringpool_str282, - (int)(long)&((struct stringpool_t *)0)->stringpool_str256, - (int)(long)&((struct stringpool_t *)0)->stringpool_str337, - (int)(long)&((struct stringpool_t *)0)->stringpool_str653, - (int)(long)&((struct stringpool_t *)0)->stringpool_str738, - (int)(long)&((struct stringpool_t *)0)->stringpool_str790, - (int)(long)&((struct stringpool_t *)0)->stringpool_str750, - (int)(long)&((struct stringpool_t *)0)->stringpool_str302, - (int)(long)&((struct stringpool_t *)0)->stringpool_str373, - (int)(long)&((struct stringpool_t *)0)->stringpool_str81, - (int)(long)&((struct stringpool_t *)0)->stringpool_str260, - (int)(long)&((struct stringpool_t *)0)->stringpool_str525, - (int)(long)&((struct stringpool_t *)0)->stringpool_str644, - (int)(long)&((struct stringpool_t *)0)->stringpool_str243, - (int)(long)&((struct stringpool_t *)0)->stringpool_str571, - (int)(long)&((struct stringpool_t *)0)->stringpool_str574, - (int)(long)&((struct stringpool_t *)0)->stringpool_str606, - (int)(long)&((struct stringpool_t *)0)->stringpool_str575, - (int)(long)&((struct stringpool_t *)0)->stringpool_str281, - (int)(long)&((struct stringpool_t *)0)->stringpool_str191, - (int)(long)&((struct stringpool_t *)0)->stringpool_str193, - (int)(long)&((struct stringpool_t *)0)->stringpool_str349, - (int)(long)&((struct stringpool_t *)0)->stringpool_str327, - (int)(long)&((struct stringpool_t *)0)->stringpool_str474, - (int)(long)&((struct stringpool_t *)0)->stringpool_str176, - (int)(long)&((struct stringpool_t *)0)->stringpool_str621, - (int)(long)&((struct stringpool_t *)0)->stringpool_str288, - (int)(long)&((struct stringpool_t *)0)->stringpool_str239, - (int)(long)&((struct stringpool_t *)0)->stringpool_str734, - (int)(long)&((struct stringpool_t *)0)->stringpool_str735, - (int)(long)&((struct stringpool_t *)0)->stringpool_str754, - (int)(long)&((struct stringpool_t *)0)->stringpool_str615, - (int)(long)&((struct stringpool_t *)0)->stringpool_str203, - (int)(long)&((struct stringpool_t *)0)->stringpool_str138, - (int)(long)&((struct stringpool_t *)0)->stringpool_str951, - (int)(long)&((struct stringpool_t *)0)->stringpool_str249, diff --git a/jni/parted/libiconv/lib/canonical_sysosf1.h b/jni/parted/libiconv/lib/canonical_sysosf1.h deleted file mode 100755 index f6b4ddc..0000000 --- a/jni/parted/libiconv/lib/canonical_sysosf1.h +++ /dev/null @@ -1,111 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str453, - (int)(long)&((struct stringpool_t *)0)->stringpool_str308, - (int)(long)&((struct stringpool_t *)0)->stringpool_str319, - (int)(long)&((struct stringpool_t *)0)->stringpool_str586, - (int)(long)&((struct stringpool_t *)0)->stringpool_str346, - (int)(long)&((struct stringpool_t *)0)->stringpool_str283, - (int)(long)&((struct stringpool_t *)0)->stringpool_str568, - (int)(long)&((struct stringpool_t *)0)->stringpool_str328, - (int)(long)&((struct stringpool_t *)0)->stringpool_str280, - (int)(long)&((struct stringpool_t *)0)->stringpool_str575, - (int)(long)&((struct stringpool_t *)0)->stringpool_str335, - (int)(long)&((struct stringpool_t *)0)->stringpool_str431, - (int)(long)&((struct stringpool_t *)0)->stringpool_str698, - (int)(long)&((struct stringpool_t *)0)->stringpool_str458, - (int)(long)&((struct stringpool_t *)0)->stringpool_str608, - (int)(long)&((struct stringpool_t *)0)->stringpool_str381, - (int)(long)&((struct stringpool_t *)0)->stringpool_str911, - (int)(long)&((struct stringpool_t *)0)->stringpool_str363, - (int)(long)&((struct stringpool_t *)0)->stringpool_str893, - (int)(long)&((struct stringpool_t *)0)->stringpool_str64, - (int)(long)&((struct stringpool_t *)0)->stringpool_str664, - (int)(long)&((struct stringpool_t *)0)->stringpool_str134, - (int)(long)&((struct stringpool_t *)0)->stringpool_str186, - (int)(long)&((struct stringpool_t *)0)->stringpool_str324, - (int)(long)&((struct stringpool_t *)0)->stringpool_str150, - (int)(long)&((struct stringpool_t *)0)->stringpool_str154, - (int)(long)&((struct stringpool_t *)0)->stringpool_str130, - (int)(long)&((struct stringpool_t *)0)->stringpool_str466, - (int)(long)&((struct stringpool_t *)0)->stringpool_str166, - (int)(long)&((struct stringpool_t *)0)->stringpool_str170, - (int)(long)&((struct stringpool_t *)0)->stringpool_str322, - (int)(long)&((struct stringpool_t *)0)->stringpool_str142, - (int)(long)&((struct stringpool_t *)0)->stringpool_str332, - (int)(long)&((struct stringpool_t *)0)->stringpool_str158, - (int)(long)&((struct stringpool_t *)0)->stringpool_str162, - (int)(long)&((struct stringpool_t *)0)->stringpool_str138, - (int)(long)&((struct stringpool_t *)0)->stringpool_str203, - (int)(long)&((struct stringpool_t *)0)->stringpool_str663, - (int)(long)&((struct stringpool_t *)0)->stringpool_str669, - (int)(long)&((struct stringpool_t *)0)->stringpool_str268, - (int)(long)&((struct stringpool_t *)0)->stringpool_str88, - (int)(long)&((struct stringpool_t *)0)->stringpool_str140, - (int)(long)&((struct stringpool_t *)0)->stringpool_str278, - (int)(long)&((struct stringpool_t *)0)->stringpool_str104, - (int)(long)&((struct stringpool_t *)0)->stringpool_str108, - (int)(long)&((struct stringpool_t *)0)->stringpool_str84, - (int)(long)&((struct stringpool_t *)0)->stringpool_str420, - (int)(long)&((struct stringpool_t *)0)->stringpool_str120, - (int)(long)&((struct stringpool_t *)0)->stringpool_str250, - (int)(long)&((struct stringpool_t *)0)->stringpool_str110, - (int)(long)&((struct stringpool_t *)0)->stringpool_str54, - (int)(long)&((struct stringpool_t *)0)->stringpool_str147, - (int)(long)&((struct stringpool_t *)0)->stringpool_str476, - (int)(long)&((struct stringpool_t *)0)->stringpool_str463, - (int)(long)&((struct stringpool_t *)0)->stringpool_str430, - (int)(long)&((struct stringpool_t *)0)->stringpool_str562, - (int)(long)&((struct stringpool_t *)0)->stringpool_str813, - (int)(long)&((struct stringpool_t *)0)->stringpool_str225, - (int)(long)&((struct stringpool_t *)0)->stringpool_str777, - (int)(long)&((struct stringpool_t *)0)->stringpool_str541, - (int)(long)&((struct stringpool_t *)0)->stringpool_str648, - (int)(long)&((struct stringpool_t *)0)->stringpool_str848, - (int)(long)&((struct stringpool_t *)0)->stringpool_str769, - (int)(long)&((struct stringpool_t *)0)->stringpool_str389, - (int)(long)&((struct stringpool_t *)0)->stringpool_str407, - (int)(long)&((struct stringpool_t *)0)->stringpool_str561, - (int)(long)&((struct stringpool_t *)0)->stringpool_str391, - (int)(long)&((struct stringpool_t *)0)->stringpool_str455, - (int)(long)&((struct stringpool_t *)0)->stringpool_str396, - (int)(long)&((struct stringpool_t *)0)->stringpool_str253, - (int)(long)&((struct stringpool_t *)0)->stringpool_str173, - (int)(long)&((struct stringpool_t *)0)->stringpool_str176, - (int)(long)&((struct stringpool_t *)0)->stringpool_str375, - (int)(long)&((struct stringpool_t *)0)->stringpool_str337, - (int)(long)&((struct stringpool_t *)0)->stringpool_str282, - (int)(long)&((struct stringpool_t *)0)->stringpool_str242, - (int)(long)&((struct stringpool_t *)0)->stringpool_str228, - (int)(long)&((struct stringpool_t *)0)->stringpool_str233, - (int)(long)&((struct stringpool_t *)0)->stringpool_str367, - (int)(long)&((struct stringpool_t *)0)->stringpool_str628, - (int)(long)&((struct stringpool_t *)0)->stringpool_str660, - (int)(long)&((struct stringpool_t *)0)->stringpool_str590, - (int)(long)&((struct stringpool_t *)0)->stringpool_str345, - (int)(long)&((struct stringpool_t *)0)->stringpool_str442, - (int)(long)&((struct stringpool_t *)0)->stringpool_str89, - (int)(long)&((struct stringpool_t *)0)->stringpool_str311, - (int)(long)&((struct stringpool_t *)0)->stringpool_str414, - (int)(long)&((struct stringpool_t *)0)->stringpool_str237, - (int)(long)&((struct stringpool_t *)0)->stringpool_str209, - (int)(long)&((struct stringpool_t *)0)->stringpool_str596, - (int)(long)&((struct stringpool_t *)0)->stringpool_str491, - (int)(long)&((struct stringpool_t *)0)->stringpool_str517, - (int)(long)&((struct stringpool_t *)0)->stringpool_str493, - (int)(long)&((struct stringpool_t *)0)->stringpool_str72, - (int)(long)&((struct stringpool_t *)0)->stringpool_str338, - (int)(long)&((struct stringpool_t *)0)->stringpool_str153, - (int)(long)&((struct stringpool_t *)0)->stringpool_str459, - (int)(long)&((struct stringpool_t *)0)->stringpool_str254, - (int)(long)&((struct stringpool_t *)0)->stringpool_str281, - (int)(long)&((struct stringpool_t *)0)->stringpool_str49, - (int)(long)&((struct stringpool_t *)0)->stringpool_str441, - (int)(long)&((struct stringpool_t *)0)->stringpool_str315, - (int)(long)&((struct stringpool_t *)0)->stringpool_str252, - (int)(long)&((struct stringpool_t *)0)->stringpool_str846, - (int)(long)&((struct stringpool_t *)0)->stringpool_str828, - (int)(long)&((struct stringpool_t *)0)->stringpool_str836, - (int)(long)&((struct stringpool_t *)0)->stringpool_str526, - (int)(long)&((struct stringpool_t *)0)->stringpool_str210, - (int)(long)&((struct stringpool_t *)0)->stringpool_str106, - (int)(long)&((struct stringpool_t *)0)->stringpool_str837, - (int)(long)&((struct stringpool_t *)0)->stringpool_str392, diff --git a/jni/parted/libiconv/lib/canonical_syssolaris.h b/jni/parted/libiconv/lib/canonical_syssolaris.h deleted file mode 100755 index 1d96fe5..0000000 --- a/jni/parted/libiconv/lib/canonical_syssolaris.h +++ /dev/null @@ -1,111 +0,0 @@ - (int)(long)&((struct stringpool_t *)0)->stringpool_str239, - (int)(long)&((struct stringpool_t *)0)->stringpool_str275, - (int)(long)&((struct stringpool_t *)0)->stringpool_str218, - (int)(long)&((struct stringpool_t *)0)->stringpool_str532, - (int)(long)&((struct stringpool_t *)0)->stringpool_str517, - (int)(long)&((struct stringpool_t *)0)->stringpool_str264, - (int)(long)&((struct stringpool_t *)0)->stringpool_str555, - (int)(long)&((struct stringpool_t *)0)->stringpool_str540, - (int)(long)&((struct stringpool_t *)0)->stringpool_str272, - (int)(long)&((struct stringpool_t *)0)->stringpool_str591, - (int)(long)&((struct stringpool_t *)0)->stringpool_str576, - (int)(long)&((struct stringpool_t *)0)->stringpool_str365, - (int)(long)&((struct stringpool_t *)0)->stringpool_str679, - (int)(long)&((struct stringpool_t *)0)->stringpool_str664, - (int)(long)&((struct stringpool_t *)0)->stringpool_str603, - (int)(long)&((struct stringpool_t *)0)->stringpool_str530, - (int)(long)&((struct stringpool_t *)0)->stringpool_str797, - (int)(long)&((struct stringpool_t *)0)->stringpool_str553, - (int)(long)&((struct stringpool_t *)0)->stringpool_str820, - (int)(long)&((struct stringpool_t *)0)->stringpool_str19, - (int)(long)&((struct stringpool_t *)0)->stringpool_str330, - (int)(long)&((struct stringpool_t *)0)->stringpool_str61, - (int)(long)&((struct stringpool_t *)0)->stringpool_str73, - (int)(long)&((struct stringpool_t *)0)->stringpool_str227, - (int)(long)&((struct stringpool_t *)0)->stringpool_str119, - (int)(long)&((struct stringpool_t *)0)->stringpool_str65, - (int)(long)&((struct stringpool_t *)0)->stringpool_str63, - (int)(long)&((struct stringpool_t *)0)->stringpool_str397, - (int)(long)&((struct stringpool_t *)0)->stringpool_str69, - (int)(long)&((struct stringpool_t *)0)->stringpool_str71, - (int)(long)&((struct stringpool_t *)0)->stringpool_str128, - (int)(long)&((struct stringpool_t *)0)->stringpool_str64, - (int)(long)&((struct stringpool_t *)0)->stringpool_str230, - (int)(long)&((struct stringpool_t *)0)->stringpool_str122, - (int)(long)&((struct stringpool_t *)0)->stringpool_str68, - (int)(long)&((struct stringpool_t *)0)->stringpool_str66, - (int)(long)&((struct stringpool_t *)0)->stringpool_str207, - (int)(long)&((struct stringpool_t *)0)->stringpool_str373, - (int)(long)&((struct stringpool_t *)0)->stringpool_str414, - (int)(long)&((struct stringpool_t *)0)->stringpool_str90, - (int)(long)&((struct stringpool_t *)0)->stringpool_str26, - (int)(long)&((struct stringpool_t *)0)->stringpool_str38, - (int)(long)&((struct stringpool_t *)0)->stringpool_str192, - (int)(long)&((struct stringpool_t *)0)->stringpool_str84, - (int)(long)&((struct stringpool_t *)0)->stringpool_str30, - (int)(long)&((struct stringpool_t *)0)->stringpool_str28, - (int)(long)&((struct stringpool_t *)0)->stringpool_str362, - (int)(long)&((struct stringpool_t *)0)->stringpool_str34, - (int)(long)&((struct stringpool_t *)0)->stringpool_str85, - (int)(long)&((struct stringpool_t *)0)->stringpool_str32, - (int)(long)&((struct stringpool_t *)0)->stringpool_str22, - (int)(long)&((struct stringpool_t *)0)->stringpool_str101, - (int)(long)&((struct stringpool_t *)0)->stringpool_str372, - (int)(long)&((struct stringpool_t *)0)->stringpool_str644, - (int)(long)&((struct stringpool_t *)0)->stringpool_str494, - (int)(long)&((struct stringpool_t *)0)->stringpool_str290, - (int)(long)&((struct stringpool_t *)0)->stringpool_str424, - (int)(long)&((struct stringpool_t *)0)->stringpool_str509, - (int)(long)&((struct stringpool_t *)0)->stringpool_str609, - (int)(long)&((struct stringpool_t *)0)->stringpool_str653, - (int)(long)&((struct stringpool_t *)0)->stringpool_str751, - (int)(long)&((struct stringpool_t *)0)->stringpool_str956, - (int)(long)&((struct stringpool_t *)0)->stringpool_str416, - (int)(long)&((struct stringpool_t *)0)->stringpool_str328, - (int)(long)&((struct stringpool_t *)0)->stringpool_str364, - (int)(long)&((struct stringpool_t *)0)->stringpool_str678, - (int)(long)&((struct stringpool_t *)0)->stringpool_str270, - (int)(long)&((struct stringpool_t *)0)->stringpool_str329, - (int)(long)&((struct stringpool_t *)0)->stringpool_str558, - (int)(long)&((struct stringpool_t *)0)->stringpool_str183, - (int)(long)&((struct stringpool_t *)0)->stringpool_str212, - (int)(long)&((struct stringpool_t *)0)->stringpool_str125, - (int)(long)&((struct stringpool_t *)0)->stringpool_str570, - (int)(long)&((struct stringpool_t *)0)->stringpool_str267, - (int)(long)&((struct stringpool_t *)0)->stringpool_str188, - (int)(long)&((struct stringpool_t *)0)->stringpool_str245, - (int)(long)&((struct stringpool_t *)0)->stringpool_str184, - (int)(long)&((struct stringpool_t *)0)->stringpool_str146, - (int)(long)&((struct stringpool_t *)0)->stringpool_str400, - (int)(long)&((struct stringpool_t *)0)->stringpool_str593, - (int)(long)&((struct stringpool_t *)0)->stringpool_str601, - (int)(long)&((struct stringpool_t *)0)->stringpool_str573, - (int)(long)&((struct stringpool_t *)0)->stringpool_str295, - (int)(long)&((struct stringpool_t *)0)->stringpool_str377, - (int)(long)&((struct stringpool_t *)0)->stringpool_str89, - (int)(long)&((struct stringpool_t *)0)->stringpool_str240, - (int)(long)&((struct stringpool_t *)0)->stringpool_str542, - (int)(long)&((struct stringpool_t *)0)->stringpool_str608, - (int)(long)&((struct stringpool_t *)0)->stringpool_str115, - (int)(long)&((struct stringpool_t *)0)->stringpool_str539, - (int)(long)&((struct stringpool_t *)0)->stringpool_str404, - (int)(long)&((struct stringpool_t *)0)->stringpool_str410, - (int)(long)&((struct stringpool_t *)0)->stringpool_str467, - (int)(long)&((struct stringpool_t *)0)->stringpool_str106, - (int)(long)&((struct stringpool_t *)0)->stringpool_str307, - (int)(long)&((struct stringpool_t *)0)->stringpool_str105, - (int)(long)&((struct stringpool_t *)0)->stringpool_str300, - (int)(long)&((struct stringpool_t *)0)->stringpool_str103, - (int)(long)&((struct stringpool_t *)0)->stringpool_str131, - (int)(long)&((struct stringpool_t *)0)->stringpool_str124, - (int)(long)&((struct stringpool_t *)0)->stringpool_str448, - (int)(long)&((struct stringpool_t *)0)->stringpool_str274, - (int)(long)&((struct stringpool_t *)0)->stringpool_str86, - (int)(long)&((struct stringpool_t *)0)->stringpool_str841, - (int)(long)&((struct stringpool_t *)0)->stringpool_str836, - (int)(long)&((struct stringpool_t *)0)->stringpool_str865, - (int)(long)&((struct stringpool_t *)0)->stringpool_str701, - (int)(long)&((struct stringpool_t *)0)->stringpool_str279, - (int)(long)&((struct stringpool_t *)0)->stringpool_str59, - (int)(long)&((struct stringpool_t *)0)->stringpool_str645, - (int)(long)&((struct stringpool_t *)0)->stringpool_str276, diff --git a/jni/parted/libiconv/lib/canonical_zos.h b/jni/parted/libiconv/lib/canonical_zos.h deleted file mode 100755 index bb9ff7e..0000000 --- a/jni/parted/libiconv/lib/canonical_zos.h +++ /dev/null @@ -1,53 +0,0 @@ - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_0, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_8, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_12, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_17, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_23, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_28, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_30, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_35, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_40, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_45, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_50, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_55, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_57, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_63, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_67, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_73, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_78, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_82, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_87, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_92, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_99, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_102, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_106, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_110, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_113, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_116, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_119, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_122, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_125, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_128, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_131, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_138, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_145, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_153, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_161, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_168, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_175, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_182, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_189, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_196, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_203, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_206, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_209, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_212, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_215, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_218, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_221, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_224, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_227, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_229, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_232, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_235, - (int)(long)&((struct stringpool2_t *)0)->stringpool_zos_238, diff --git a/jni/parted/libiconv/lib/ces_big5.h b/jni/parted/libiconv/lib/ces_big5.h deleted file mode 100755 index 7a29204..0000000 --- a/jni/parted/libiconv/lib/ces_big5.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * BIG-5 - */ - -static int -ces_big5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) - return big5_mbtowc(conv,pwc,s,2); - else - return RET_ILSEQ; - } - } - return RET_ILSEQ; -} - -static int -ces_big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (BIG5) */ - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ces_gbk.h b/jni/parted/libiconv/lib/ces_gbk.h deleted file mode 100755 index 02e658d..0000000 --- a/jni/parted/libiconv/lib/ces_gbk.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GBK - */ - -static int -ces_gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - - /* Code set 0 (ASCII or GB 1988-89) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (GBK) */ - if (c >= 0x81 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - return gbk_mbtowc(conv,pwc,s,2); - } - return RET_ILSEQ; -} - -static int -ces_gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII or GB 1988-89) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (GBK) */ - ret = gbk_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cjk_variants.h b/jni/parted/libiconv/lib/cjk_variants.h deleted file mode 100755 index 3a30840..0000000 --- a/jni/parted/libiconv/lib/cjk_variants.h +++ /dev/null @@ -1,4240 +0,0 @@ -/* - * Copyright (C) 1999-2001 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CJK variants table - */ - -static const unsigned short cjk_variants[12038] = { - 0x9e44, 0x1e2a, 0x200b, 0xcb87, 0xaf0c, 0x9e0a, 0x9e0b, 0xd42c, - 0x23c1, 0xaf0e, 0x9e04, 0x9e05, 0xa176, 0xd207, 0x2303, 0xa304, - 0x1e12, 0x619c, 0xeb57, 0x9e11, 0x2c02, 0xac08, 0x1e17, 0xa34b, - 0x1e16, 0xa34b, 0x1e20, 0xa775, 0xb96d, 0x23e2, 0x3a37, 0x3b09, - 0xd5c2, 0xb771, 0x4cf8, 0xcd72, 0x1e22, 0xa3be, 0x1e18, 0xa775, - 0x1e24, 0xa169, 0x1e1f, 0xa3be, 0xe149, 0x1e21, 0xa169, 0x23b3, - 0xa6b4, 0x20a1, 0x2e76, 0xcadd, 0xa5aa, 0x00f6, 0x200b, 0xcb87, - 0x3792, 0x3860, 0xb90f, 0xc23f, 0x5c4a, 0x5c50, 0x673b, 0x674a, - 0x68a8, 0xe8ce, 0x9e33, 0x9e32, 0xd1e8, 0x40ba, 0xc232, 0x2a6f, - 0xee97, 0x3319, 0x34e7, 0xd209, 0xa3ca, 0x2208, 0xd2c5, 0x2efc, - 0xdffa, 0x0006, 0x9e94, 0x1e46, 0xe579, 0x1e45, 0xe579, 0x2c1b, - 0x2e7a, 0x2e85, 0x6ebc, 0xeebd, 0xcfa9, 0xc0cf, 0x397d, 0xba02, - 0x1f17, 0x3500, 0x473e, 0xd846, 0xa5ac, 0x564e, 0xd65d, 0x1e58, - 0xb909, 0x1e57, 0xb909, 0x6690, 0x66a0, 0xe6b1, 0xcfd2, 0x60f7, - 0x6109, 0x610a, 0xe115, 0xb6f8, 0x2158, 0xa9cb, 0xdcb7, 0x1e82, - 0xe1e0, 0x1e7e, 0x1e81, 0xbf27, 0x1e79, 0x1e81, 0x2e72, 0xbf27, - 0x6f9c, 0xef9f, 0x1e79, 0x1e7e, 0xbf27, 0x1e71, 0xe1e0, 0x36b8, - 0xc7ad, 0xdc6b, 0xc22d, 0x1e8b, 0xa3d3, 0x1e8a, 0xa3d3, 0xaf0d, - 0x1e8f, 0x1e90, 0xb5bc, 0x1e8e, 0x1e90, 0x35bc, 0xd667, 0x1e8e, - 0x9e8f, 0x1f1d, 0xe6f2, 0x9e44, 0xa6db, 0x2c81, 0x2d57, 0x3b72, - 0xbb73, 0x9e99, 0x9e98, 0x1e9c, 0x9e9e, 0x1e9a, 0x9e9e, 0x3589, - 0x358a, 0x6f4a, 0xef50, 0x1e9a, 0x9e9c, 0xc10f, 0x1ebe, 0xa166, - 0x4522, 0xc523, 0x4546, 0x4552, 0x455d, 0xc55e, 0x9eaf, 0x9eb0, - 0x9eab, 0x9eac, 0xa91c, 0xd9aa, 0xd93b, 0xa6b2, 0x9ebb, 0x9eba, - 0x1ea1, 0xa166, 0xa104, 0xafce, 0x20cd, 0x22a8, 0xa2d5, 0x1ed8, - 0xa0c5, 0xa0d5, 0xdb8e, 0xa0df, 0x21ab, 0x21b0, 0xbc37, 0x2f93, - 0xaf9e, 0x9f5b, 0x1f1e, 0xa098, 0x1f96, 0x2d18, 0xad19, 0x1efa, - 0xa009, 0x9ec5, 0x20ca, 0xa0f2, 0xa40c, 0x9eed, 0xaf74, 0x214f, - 0x6577, 0x6578, 0xe57f, 0xa100, 0xa011, 0x9ede, 0x2047, 0xa3cd, - 0x1fa1, 0xa0f9, 0x1ed3, 0xa009, 0x9fc7, 0x2f6c, 0xb58c, 0x9f4e, - 0x2023, 0x2f77, 0x2fac, 0x4706, 0xeae3, 0x20a0, 0xc26b, 0xae11, - 0x1e51, 0x473e, 0xd846, 0xa12a, 0xa925, 0xb703, 0xa0b4, 0xa005, - 0x1e91, 0x1f20, 0xa0b3, 0x1ed0, 0x2098, 0xce56, 0xa049, 0x1f1d, - 0xa0b3, 0x9fe5, 0x9fd4, 0xa0b7, 0xa000, 0xa02b, 0xa096, 0x207d, - 0xa0de, 0x1f47, 0xcada, 0xa2aa, 0x1f32, 0x1f60, 0xa11e, 0x1f31, - 0x1f60, 0xa11e, 0x9f90, 0xd0c4, 0x9f40, 0x9f3c, 0xb014, 0x9f2b, - 0xae03, 0x9efe, 0x4b28, 0x5eb0, 0x5ec6, 0x6ab5, 0xead4, 0xa360, - 0x6918, 0xe980, 0x1ecf, 0x2f7f, 0xeaf4, 0xa05a, 0x9fab, 0x1f31, - 0x1f32, 0x211e, 0xa9b3, 0xa0ad, 0xa0c9, 0xaf8a, 0x3cd5, 0xc04b, - 0x2002, 0xae76, 0xaf88, 0xa058, 0x29b7, 0xa9ea, 0xb765, 0x6625, - 0x6634, 0x6670, 0xe682, 0xb549, 0x9f35, 0x9ed1, 0x5350, 0xd5a6, - 0x9fe0, 0x1ef7, 0xa0f9, 0x9fb6, 0xa0e5, 0x2075, 0xe049, 0xa074, - 0xa0d1, 0xa108, 0xa115, 0x9f5e, 0xa102, 0x2118, 0xac3d, 0xc7e6, - 0x9fa3, 0xac40, 0xc537, 0x9fe3, 0xccfb, 0x9efc, 0xa101, 0xdf14, - 0xc23c, 0x1f23, 0xb093, 0xa16a, 0xcae2, 0x9fa0, 0xda2b, 0x9fee, - 0x9fc1, 0x9f21, 0xa114, 0xa13c, 0xa006, 0xa137, 0xa008, 0x2039, - 0xa109, 0x1fe2, 0xd129, 0xa036, 0x209a, 0xb548, 0x2079, 0x2099, - 0x20c3, 0xa907, 0x4ca5, 0xeb3b, 0x30de, 0xbb23, 0x9f25, 0x1f75, - 0xae76, 0x207a, 0x24b1, 0xa592, 0x9f1c, 0x9fe9, 0x9feb, 0x1ed3, - 0x9efa, 0xa06c, 0x00f6, 0x1e2a, 0xcb87, 0xd146, 0xa010, 0xa00f, - 0x9eec, 0xae78, 0xa0b9, 0x2fa3, 0xd5c9, 0x1eff, 0xc706, 0xa03c, - 0x22b5, 0xa2cc, 0x9f26, 0xa25a, 0x9ff1, 0x1fed, 0xa109, 0xa0b5, - 0xa024, 0xa0be, 0xd2f1, 0xdcf0, 0x9eee, 0x9f1f, 0x5d0b, 0x5d17, - 0xdd5d, 0x9f83, 0xa0c0, 0x9f5c, 0xafa4, 0xe03c, 0x200a, 0xa0af, - 0x9fa7, 0x1fa6, 0xe049, 0xa078, 0xa077, 0x1ffb, 0x2099, 0x20c3, - 0xa907, 0x2003, 0x24b1, 0xa592, 0xa0c2, 0x1f2a, 0xa0de, 0xa0e8, - 0xa11f, 0x4f75, 0x69e1, 0xea82, 0xafac, 0xb770, 0x9f27, 0x1ed0, - 0x1f1e, 0xce56, 0x1ffb, 0x2079, 0x20c3, 0xa907, 0x1ff2, 0xb548, - 0xafad, 0x1f10, 0xc26b, 0x1e26, 0x2e76, 0xcadd, 0xabb6, 0xa10e, - 0xa13b, 0xa110, 0xa132, 0xa13a, 0x9f63, 0xa06c, 0x1f1d, 0x9f20, - 0x9f1b, 0xa03a, 0x9f24, 0xa01e, 0xa03e, 0xa059, 0xa07b, 0x1ffb, - 0x2079, 0x2099, 0xa907, 0xafb1, 0x9ec5, 0x9f65, 0x9ed9, 0x1ec2, - 0x22a8, 0xa2d5, 0x9fa8, 0x9ec6, 0xb55e, 0xc67b, 0x1f2a, 0xa07d, - 0x9ec9, 0xa0ed, 0x9fa5, 0xa07e, 0xa0f4, 0x3076, 0x30aa, 0xb0e1, - 0xa0e3, 0xe6c7, 0x9ed9, 0xa0e9, 0x1ef7, 0x9fa1, 0x9eea, 0x9fca, - 0x9fac, 0x9ebf, 0x9fa9, 0x1fed, 0xa039, 0xa0a4, 0xa0a7, 0x9fe6, - 0x9faa, 0x1fad, 0xac3d, 0x1f31, 0x1f32, 0x9f60, 0xa07f, 0xa139, - 0x9f18, 0xa0a8, 0x9fea, 0xa127, 0xa0a9, 0xa0a5, 0x9fe8, 0x2150, - 0xa152, 0xcc2a, 0xa1f6, 0x406e, 0xc097, 0x214c, 0xa151, 0x224b, - 0x22ca, 0xac05, 0x214a, 0xa151, 0xa154, 0x1ee7, 0x6577, 0x6578, - 0xe57f, 0x213f, 0xa152, 0x214a, 0xa14c, 0x213f, 0xa150, 0xa14e, - 0xa157, 0xa156, 0x1e68, 0xa9cb, 0xeee8, 0xa160, 0xa15c, 0xb5f7, - 0x1ea1, 0x9ebe, 0xa185, 0x1e21, 0x9e24, 0x9fde, 0xd62d, 0x2929, - 0x6754, 0xe75d, 0x24b2, 0x4b11, 0x65a2, 0x65d7, 0xe5dc, 0xd208, - 0x9e0c, 0x530a, 0xd332, 0x4faa, 0xe90a, 0x4363, 0xc378, 0xa180, - 0xa17e, 0xa6c5, 0xa18b, 0xae3d, 0xa189, 0xa167, 0x2706, 0x270e, - 0xa713, 0xaca1, 0xa184, 0x218c, 0xcb27, 0xa182, 0x218a, 0xcb27, - 0x226e, 0xa3e7, 0xa6e7, 0xa192, 0xd0c4, 0xa190, 0xab82, 0x21a9, - 0xabeb, 0xdecd, 0xdfb2, 0x2b90, 0xab9c, 0xa85a, 0xb700, 0xabc3, - 0x2bbc, 0xabc7, 0xabcc, 0x2199, 0xabeb, 0x2e42, 0xcf83, 0x1ecc, - 0x21b0, 0xbc37, 0x3638, 0xef15, 0xe9ae, 0x1ecc, 0x21ab, 0xbc37, - 0xa1b4, 0x3c96, 0xd85d, 0xbc7a, 0xa1b1, 0xbcc1, 0xbcef, 0xa1cd, - 0xbd0c, 0x21c8, 0xbde8, 0xbd7c, 0xbd82, 0x3053, 0x30bd, 0xbdd2, - 0xbdb8, 0x21d6, 0xbe96, 0xa1c0, 0xbdbc, 0xa1bb, 0xbe1b, 0xbe4a, - 0xc69a, 0xb817, 0x21c6, 0xbe96, 0x21dc, 0xbf9f, 0x21db, 0xbf9f, - 0x4108, 0x4155, 0x4188, 0xc199, 0x2e7e, 0xb73a, 0x21e2, 0xa1e3, - 0x21e1, 0xa1e3, 0x21e1, 0xa1e2, 0xecf3, 0xac45, 0x2904, 0xd655, - 0x21ec, 0x21ee, 0x68a8, 0x68cc, 0xe8ce, 0xece7, 0x21e8, 0x21ee, - 0x68a8, 0x68cc, 0xe8ce, 0x21f4, 0x317f, 0xb191, 0x21e8, 0x21ec, - 0x68a8, 0x68cc, 0xe8ce, 0xa1f1, 0xa1ef, 0x2c32, 0x2c34, 0x2c36, - 0x2c37, 0xeb50, 0xbac8, 0x21ed, 0x317f, 0xb191, 0xa147, 0x2757, - 0x284a, 0xa8a4, 0x2c80, 0xef63, 0x3483, 0xb4ca, 0xa1fe, 0xa1fd, - 0xe47f, 0x2202, 0xe1d6, 0x2200, 0xe1d6, 0xa204, 0xa203, 0x221b, - 0xa275, 0x1e42, 0xd2c5, 0xb81e, 0xd2bb, 0x2283, 0x2290, 0xc53b, - 0xa6ed, 0xb289, 0xa289, 0xa247, 0xa25b, 0x2205, 0x2231, 0x224f, - 0x2259, 0xa275, 0xa22a, 0xa22b, 0x2227, 0x223c, 0xa2ab, 0x2226, - 0x223c, 0xa2ab, 0x624b, 0x6464, 0xe4c7, 0xa220, 0x2225, 0xaf46, - 0x2257, 0x2277, 0x63df, 0xe4f2, 0xa244, 0xe8b3, 0x221b, 0x224f, - 0x2259, 0xa275, 0xa241, 0xd8fd, 0xa24e, 0xa23e, 0x2226, 0x2227, - 0xa2ab, 0xa28a, 0xa23a, 0xa28c, 0xa274, 0xa234, 0x2264, 0xa291, - 0xeb00, 0xa22d, 0xa219, 0x214b, 0x22ca, 0xac05, 0xbe82, 0xbb6c, - 0xa239, 0x221b, 0x2231, 0x2259, 0xa275, 0x226e, 0xa3e7, 0x2263, - 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, 0x61f0, 0xe1fc, 0x222c, - 0x2277, 0x63df, 0xe4f2, 0x221b, 0x2231, 0x224f, 0xa275, 0xa033, - 0xa21a, 0xa265, 0x2251, 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, - 0x61f0, 0xe1fc, 0x2242, 0xa291, 0xa25d, 0x65b9, 0xe609, 0xa287, - 0xa270, 0x218e, 0x2250, 0xa3e7, 0xa269, 0x2251, 0x2263, 0x228d, - 0x228e, 0x2292, 0x2294, 0x61f0, 0xe1fc, 0xb72d, 0xa240, 0x2205, - 0x221b, 0x2231, 0x224f, 0xa259, 0x222c, 0x2257, 0x63df, 0xe4f2, - 0xb22e, 0xa2e6, 0x2212, 0x2290, 0xc53b, 0xcb9a, 0xa267, 0xa218, - 0xa23d, 0xa23f, 0x2251, 0x2263, 0x2271, 0x228e, 0x2292, 0x2294, - 0x61f0, 0xe1fc, 0x2251, 0x2263, 0x2271, 0x228d, 0x2292, 0x2294, - 0x61f0, 0xe1fc, 0x2212, 0x2283, 0xc53b, 0x2242, 0xa264, 0x2251, - 0x2263, 0x2271, 0x228d, 0x228e, 0x2294, 0x61f0, 0xe1fc, 0x2251, - 0x2263, 0x2271, 0x228d, 0x228e, 0x2292, 0x61f0, 0xe1fc, 0x5cad, - 0xdcea, 0x22e7, 0xa2f8, 0xdfa6, 0x4cfc, 0xccff, 0xa2d9, 0xa2f1, - 0x1ec2, 0x20cd, 0xa2d5, 0x9f2e, 0x2226, 0x2227, 0xa23c, 0xa2f5, - 0xa2c1, 0x22b4, 0x22de, 0xb1a5, 0x22b3, 0x22de, 0xb1a5, 0x2026, - 0xa2cc, 0xb548, 0xa2e2, 0xa2b2, 0xb54f, 0x22d1, 0xb555, 0xa2c8, - 0xa2c7, 0x214b, 0x224b, 0xac05, 0x22db, 0x22f2, 0xa2f3, 0x2026, - 0xa2b5, 0x22c5, 0x2f95, 0x2fa0, 0xb555, 0x1ec2, 0x20cd, 0xa2a8, - 0x22d7, 0xb702, 0x22d6, 0xb702, 0xa2a1, 0xa2e9, 0x22cb, 0x22f2, - 0xa2f3, 0xd0dc, 0x22b3, 0x22b4, 0xb1a5, 0xb22e, 0xa2bf, 0xb1c3, - 0xa27f, 0x229d, 0xa2f8, 0xa2da, 0xa2a2, 0x22cb, 0x22db, 0xa2f3, - 0x22cb, 0x22db, 0xa2f2, 0xa2b1, 0x229d, 0xa2e7, 0xa300, 0xa2fb, - 0x1e10, 0xa304, 0x1e10, 0xa303, 0xeead, 0x2fe9, 0x3031, 0xb0a4, - 0xb3ac, 0x5133, 0xd166, 0xa338, 0x37e9, 0xb7fe, 0x2e00, 0xdfca, - 0xa320, 0xa31e, 0xa329, 0xa32d, 0xcbcb, 0x5535, 0xd5cf, 0xa321, - 0xa326, 0xa331, 0x3c47, 0xbed9, 0xa32e, 0x2333, 0x2941, 0xa969, - 0x2332, 0x2941, 0xa969, 0xa31a, 0xa340, 0x3bc9, 0xe1ab, 0xa33a, - 0xe7c6, 0xa352, 0x3607, 0x36fb, 0x6629, 0xe65e, 0xd294, 0x1e16, - 0x9e17, 0xa350, 0x2d0b, 0x53ef, 0xd550, 0x2354, 0x23f6, 0xb5ea, - 0xa34d, 0xa346, 0x384c, 0xb9d5, 0x234f, 0x23f6, 0xb5ea, 0x2358, - 0xa5ae, 0x28f2, 0xdce3, 0x2355, 0xa5ae, 0xb13d, 0xc387, 0x53d4, - 0xd514, 0x9f54, 0xc6e7, 0x2365, 0x2877, 0x3ef7, 0x3f9b, 0x4002, - 0x597f, 0xee75, 0x2364, 0xd97f, 0xd1e5, 0x585b, 0xd85e, 0xadf5, - 0x2918, 0xb23c, 0xae01, 0x237d, 0xc68d, 0xa37b, 0x2dfb, 0xb372, - 0xcf37, 0x3064, 0xdcc9, 0xa374, 0x2373, 0xc68d, 0x2388, 0x23b0, - 0xaee0, 0xb239, 0x2ef0, 0xaef3, 0x23a4, 0x23af, 0x36a6, 0x36c6, - 0x3b74, 0xbb77, 0xc8d4, 0xa382, 0xa3b2, 0x2727, 0xa8d3, 0xa3ad, - 0xa399, 0xc825, 0xef8e, 0xad16, 0x23a0, 0xaec1, 0x28e5, 0x2edb, - 0x613d, 0xe1d0, 0xa38d, 0xa795, 0xaef3, 0xa3a1, 0x2395, 0xaec1, - 0xa39f, 0xaec2, 0xa3b4, 0x2386, 0xb6c6, 0xaec8, 0xaeda, 0x2ecf, - 0xaed0, 0xa38c, 0xaedd, 0x2386, 0x36a6, 0x36c6, 0x3b74, 0xbb77, - 0x2382, 0xaee0, 0xa389, 0x1e25, 0xa6b4, 0xa3a3, 0xbe90, 0xc9c1, - 0xd0b1, 0x60bb, 0x6130, 0xe6a3, 0xa3bb, 0xa3ba, 0x1e1f, 0x9e22, - 0x470c, 0xce23, 0x1e09, 0xaf0e, 0x23c3, 0x23c4, 0xa3c5, 0x23c2, - 0x23c4, 0xa3c5, 0x23c2, 0x23c3, 0xa3c5, 0x23c2, 0x23c3, 0xa3c4, - 0xe749, 0xe746, 0xa3f9, 0xb268, 0x9e41, 0xe6d9, 0x1eee, 0x23db, - 0xc08d, 0xb536, 0xa92c, 0xc2ae, 0x467a, 0x467c, 0x6aea, 0xeaee, - 0x1e8a, 0x9e8b, 0xcdb4, 0x2909, 0xdb8a, 0x354d, 0xb558, 0x23cd, - 0xc08d, 0xac09, 0x4573, 0x4582, 0x4589, 0xc58a, 0x28e1, 0xc77f, - 0x1e1b, 0x3a37, 0x3b09, 0xd5c2, 0x218e, 0x2250, 0xa26e, 0x49d6, - 0x5879, 0xe6bb, 0xa44c, 0x276e, 0x37b1, 0x3aaf, 0x51fa, 0xe8b1, - 0x234f, 0x2354, 0x35ea, 0xd449, 0xd65f, 0x23c8, 0x2606, 0xbb4e, - 0xa630, 0x24a9, 0xa4f6, 0x4c72, 0xefa5, 0x25ab, 0xa644, 0xe5a4, - 0xaf14, 0x1edd, 0xd855, 0xaf8c, 0x26ae, 0xb6cf, 0xa687, 0xa442, - 0xa5ce, 0xb061, 0xa451, 0x252b, 0x2656, 0xda21, 0xa678, 0x5074, - 0xd07d, 0x2518, 0x2553, 0x2554, 0x255f, 0x5aec, 0xe5d9, 0x2434, - 0xa449, 0x2433, 0xa449, 0xa450, 0xd117, 0xa44d, 0xa44a, 0xa415, - 0x3282, 0xc2c2, 0x2433, 0xa434, 0xa43f, 0xa3eb, 0xa43d, 0xa436, - 0xa41e, 0xa638, 0xa6c8, 0xa614, 0xa6a6, 0xa504, 0x24e1, 0x5c9f, - 0xdd20, 0x24bc, 0xa58e, 0xa4fa, 0xa5c6, 0xa5da, 0xda46, 0xe031, - 0xa5dc, 0x2492, 0xda4b, 0xda4d, 0x2611, 0x5656, 0xdb3c, 0xa4e3, - 0x248c, 0x30d2, 0xefa2, 0x248a, 0x30d2, 0xefa2, 0xda60, 0x246a, - 0xda4b, 0xa6a8, 0xa680, 0xa4a4, 0xa65d, 0xa49c, 0x2400, 0xa4f6, - 0xef69, 0x2580, 0xd849, 0x2003, 0x207a, 0xa592, 0x2173, 0xcb11, - 0x618e, 0xee79, 0x2459, 0xa58e, 0xa6a5, 0x65a7, 0xeb28, 0xe7ff, - 0x2516, 0x255e, 0x45d6, 0xc602, 0xa660, 0xa635, 0xa5f6, 0xa666, - 0x2629, 0xdb41, 0xa672, 0xa68c, 0xa665, 0xa5b2, 0x2458, 0x5c9f, - 0xdd20, 0xa485, 0xda36, 0x2560, 0x2586, 0x269e, 0x27d1, 0xb08a, - 0x2400, 0xa4a9, 0xa45a, 0x5a98, 0xdbf1, 0xa457, 0xd123, 0xd39e, - 0xa57a, 0xa523, 0x24d1, 0x255e, 0x45d6, 0xc602, 0x242f, 0x2553, - 0x2554, 0x255f, 0x5aec, 0xe5d9, 0xa61c, 0xa5ca, 0xa62e, 0xa5e9, - 0xa515, 0xa59a, 0xa59e, 0xa41f, 0xdaaf, 0xaff5, 0xa60a, 0xdb2a, - 0xe5ee, 0x242f, 0x2518, 0x2554, 0x255f, 0x5aec, 0xe5d9, 0x242f, - 0x2518, 0x2553, 0x255f, 0x5aec, 0xe5d9, 0xa649, 0xa649, 0x24d1, - 0x2516, 0x45d6, 0xc602, 0x242f, 0x2518, 0x2553, 0x2554, 0x5aec, - 0xe5d9, 0x24f2, 0x2586, 0x269e, 0x27d1, 0xb08a, 0x5854, 0x5858, - 0xe29c, 0xa616, 0xa5c7, 0xa6c0, 0x265b, 0x2699, 0x26d3, 0xef67, - 0xa613, 0x26c9, 0xcf57, 0xa63d, 0xa62f, 0xa510, 0x24af, 0xd849, - 0x6927, 0xe935, 0xdb71, 0x24f2, 0x2560, 0x269e, 0x27d1, 0xb08a, - 0x2459, 0xa4bc, 0x267e, 0xc616, 0x2003, 0x207a, 0xa4b1, 0xa524, - 0x3198, 0x3199, 0xbb56, 0xa527, 0xa5bb, 0x9e27, 0x2403, 0xa644, - 0x9e54, 0x2355, 0xa358, 0x25b7, 0xa674, 0x68df, 0x68e0, 0xe963, - 0xa4df, 0x41df, 0xd425, 0x25af, 0xa674, 0xa5a9, 0xa60d, 0xa6b3, - 0xef45, 0xa45b, 0xa56c, 0xa51d, 0xa417, 0xa45c, 0xa469, 0xe16a, - 0xab60, 0xa637, 0xa522, 0xa6c1, 0xa66f, 0xa4d4, 0xdb30, 0x23f9, - 0xbb4e, 0xa540, 0xa5bd, 0x247c, 0xdb3c, 0xa56f, 0xa455, 0xa567, - 0x2690, 0x2c1d, 0xc51e, 0xa653, 0xa51b, 0xa6b6, 0xa62f, 0x24d7, - 0xdb41, 0xa520, 0x2578, 0xa628, 0xa3fd, 0xa6d1, 0xa4d3, 0xa5e5, - 0xa452, 0xa574, 0xb076, 0xdb50, 0x2403, 0xa5ab, 0xa655, 0x2556, - 0xa557, 0xa668, 0xa618, 0xa645, 0x241f, 0xda21, 0x256e, 0xa699, - 0xa695, 0xa49d, 0xa4d2, 0xdb6b, 0xa4dd, 0xa4d5, 0xa650, 0xdb5f, - 0xa5f3, 0xa4d9, 0x25af, 0xa5b7, 0x585c, 0x585f, 0xe053, 0xa428, - 0xaf53, 0xa591, 0xa49b, 0xa413, 0xa4dc, 0xa694, 0x2617, 0x2c1d, - 0xc51e, 0xa68f, 0xa65c, 0x256e, 0x265b, 0x26d3, 0xef67, 0x24f2, - 0x2560, 0x2586, 0x27d1, 0xb08a, 0xbd4f, 0xa6ca, 0xa6c2, 0xa4bd, - 0xa456, 0xa499, 0xa411, 0x9eb8, 0xa5be, 0x1e25, 0xa3b3, 0xa624, - 0xa6c2, 0xa56d, 0xa5eb, 0x26a3, 0xa6bb, 0xa181, 0xa453, 0x2570, - 0xcf57, 0xa6a2, 0xd2cf, 0xd271, 0xa631, 0x256e, 0x2699, 0xef67, - 0x26f2, 0x26f4, 0xa70d, 0x26de, 0x26ec, 0x2efb, 0x2efd, 0x5ff4, - 0xe025, 0xa6e0, 0x9e96, 0x26d8, 0x26ec, 0x2efb, 0x2efd, 0x5ff4, - 0xe025, 0xe856, 0xa6d9, 0x26e3, 0x2718, 0xccf0, 0x26e2, 0x2718, - 0xccf0, 0x3df5, 0x3e0a, 0xbe15, 0xa18f, 0xa6f1, 0x26d8, 0x26de, - 0x2efb, 0x2efd, 0x5ff4, 0xe025, 0x2213, 0x2712, 0xd597, 0x26f6, - 0x26fb, 0x26fd, 0x2700, 0xa70b, 0xc74f, 0xa6ea, 0x26d7, 0x26f4, - 0xa70d, 0x26fe, 0x2716, 0xa717, 0x26d7, 0x26f2, 0xa70d, 0xa707, - 0x26ef, 0x26fb, 0x26fd, 0x2700, 0xa70b, 0xb5e5, 0x26ef, 0x26f6, - 0x26fd, 0x2700, 0xa70b, 0x26ef, 0x26f6, 0x26fb, 0x2700, 0xa70b, - 0x26f3, 0x2716, 0xa717, 0x26ef, 0x26f6, 0x26fb, 0x26fd, 0xa70b, - 0xa711, 0x2186, 0x270e, 0xa713, 0xa6f5, 0xa70f, 0x26ef, 0x26f6, - 0x26fb, 0x26fd, 0xa700, 0x26d7, 0x26f2, 0xa6f4, 0x2186, 0x2706, - 0xa713, 0xa708, 0xa703, 0x26ed, 0xd597, 0x2186, 0x2706, 0xa70e, - 0x26f3, 0x26fe, 0xa717, 0x26f3, 0x26fe, 0xa716, 0x26e2, 0xa6e3, - 0x383e, 0xbb12, 0xa721, 0xa71f, 0x453a, 0xc53c, 0xd056, 0x238b, - 0xa8d3, 0xb257, 0xb747, 0xc3ea, 0x2754, 0x27ca, 0xadb3, 0xa8d9, - 0x2834, 0xa872, 0x3b7e, 0x3b7f, 0x3b81, 0xbca1, 0xe62f, 0x2c85, - 0xe62a, 0x276f, 0x28ca, 0x28de, 0xe62b, 0xaea7, 0xe62c, 0xa78b, - 0x2730, 0x27ca, 0xadb3, 0x21f7, 0x284a, 0xa8a4, 0xade0, 0xa805, - 0x28b0, 0x28b5, 0x28c7, 0x28dc, 0x4f48, 0xcf4e, 0xa8e2, 0x27bb, - 0xa8e9, 0x2862, 0xe696, 0x28b3, 0xe6ab, 0x289c, 0xc908, 0xa802, - 0xa803, 0xb1bb, 0xa88c, 0x6640, 0xe641, 0xbce5, 0x23f0, 0xd1fa, - 0x274f, 0xe62b, 0xa7a7, 0xa787, 0x1e18, 0x9e20, 0xa7a2, 0xa8a2, - 0xa7c0, 0xa8df, 0xa8e0, 0xa8da, 0xa773, 0xa753, 0x2841, 0xa8d8, - 0xc561, 0xe67b, 0xa39a, 0xa806, 0x282f, 0x2c27, 0xac2d, 0xa79c, - 0xa79b, 0xa8a2, 0xa778, 0xa8be, 0xa770, 0xab88, 0x280a, 0xd056, - 0xa88a, 0xa7e1, 0xa8b6, 0xa8cb, 0xa84f, 0xa816, 0x275d, 0xa8e9, - 0xa782, 0xc86e, 0xe656, 0x2730, 0x2754, 0xadb3, 0x24f2, 0x2560, - 0x2586, 0x269e, 0xb08a, 0xa7d3, 0xa7d2, 0xa852, 0x2864, 0xa8ce, - 0xa81d, 0x28c4, 0xe1ce, 0x2824, 0xe684, 0xa7ad, 0xc897, 0xb267, - 0x2d0e, 0x2d5c, 0xc895, 0xb383, 0xa763, 0xa764, 0xa75a, 0xa796, - 0xd3eb, 0xa7a9, 0xa879, 0x28ae, 0xa8af, 0xa7b4, 0xe67b, 0xa7da, - 0x27de, 0xe684, 0x6636, 0xe68e, 0x279a, 0x2c27, 0xac2d, 0x2895, - 0xe681, 0xb2a5, 0x273a, 0xa872, 0x454c, 0xc54d, 0x2792, 0xa8d8, - 0xa8ea, 0x21f7, 0x2757, 0xa8a4, 0xd314, 0xc57b, 0xa7b2, 0xa851, - 0xa850, 0xa7d8, 0xa896, 0xbd82, 0xa8a7, 0xa1a2, 0xd46c, 0xa86b, - 0xa75e, 0x27d9, 0xa8ce, 0xe663, 0x46d0, 0xee7d, 0xa861, 0x273a, - 0xa834, 0xac18, 0x2364, 0xee75, 0x2811, 0xa8cd, 0x450e, 0x4816, - 0xc8da, 0xc245, 0xa7ab, 0xa767, 0x2830, 0xe681, 0xa854, 0xa89e, - 0x28bb, 0xc246, 0x2760, 0xc908, 0xa897, 0x277a, 0xa7a1, 0x21f7, - 0x2757, 0xa84a, 0xa859, 0x2815, 0xa8af, 0x2815, 0xa8ae, 0x275b, - 0x28b5, 0x28dc, 0x4f48, 0xcf4e, 0x275f, 0xe6ab, 0x275b, 0x28b0, - 0x28dc, 0x4f48, 0xcf4e, 0xa7af, 0xde87, 0xa899, 0xa7a6, 0x27dc, - 0xe1ce, 0xa75b, 0x274f, 0xa8de, 0xa7b1, 0xa8e4, 0xa879, 0x27d9, - 0xa864, 0xc4bd, 0x238b, 0xa727, 0x2792, 0xa841, 0xa739, 0xa786, - 0x275b, 0x28b0, 0x28b5, 0x4f48, 0xcf4e, 0x274f, 0xa8ca, 0xa784, - 0xa785, 0x23e1, 0xc77f, 0xa75c, 0xa8cc, 0x2398, 0x2edb, 0xe13d, - 0x275d, 0xa7bb, 0xa846, 0x28ef, 0xa8f5, 0x28ee, 0xa8f5, 0xd072, - 0xa8f9, 0x2356, 0xdce3, 0x3bbb, 0xbbbc, 0x28ee, 0xa8ef, 0x28f7, - 0xa8fa, 0x28f6, 0xa8fa, 0xa8fc, 0xa8f1, 0x28f6, 0xa8f7, 0x2a7f, - 0xd05f, 0xa8f8, 0x2900, 0xabff, 0x28fd, 0xabff, 0xa90a, 0x21e6, - 0xd655, 0xe64d, 0x1ffb, 0x2079, 0x2099, 0xa0c3, 0x23d8, 0xdb8a, - 0xa902, 0x2fa9, 0x5907, 0xd986, 0xa913, 0xa90f, 0xd641, 0x236f, - 0xb23c, 0xa91b, 0xa91a, 0x9eb1, 0xa920, 0xa91f, 0x2923, 0xb8a6, - 0x2922, 0xb8a6, 0x9f19, 0x2172, 0x6754, 0xe75d, 0xa3cf, 0xbb80, - 0x372c, 0xb94d, 0xbcf0, 0xe82d, 0xbbd4, 0xda87, 0xa93e, 0xa96a, - 0xa939, 0x2332, 0x2333, 0xa969, 0xa950, 0xcad2, 0xb7f0, 0xa96e, - 0xeede, 0xa942, 0x4287, 0xe029, 0x2968, 0x296c, 0xc34e, 0xaf09, - 0xc55a, 0x2967, 0xadb4, 0x2965, 0xadb4, 0x2956, 0x296c, 0xc34e, - 0x2332, 0x2333, 0xa941, 0xa93a, 0x2956, 0x2968, 0xc34e, 0xa94b, - 0x29b3, 0xab2d, 0x29e6, 0xa9e7, 0x299d, 0x2a24, 0x4ca7, 0xccda, - 0x2a66, 0xaa8d, 0xaabd, 0xa9d9, 0x29f8, 0xd505, 0xa9ac, 0xc945, - 0xc385, 0xaab8, 0x2986, 0x2a24, 0x4ca7, 0xccda, 0xaaf5, 0xaad7, - 0x2aaf, 0xab00, 0xa992, 0x1f60, 0x2976, 0xab2d, 0x1f84, 0xa9ea, - 0x2a3f, 0xaa40, 0xaa12, 0xa9ca, 0xa9c9, 0x1e68, 0xa158, 0xa9d7, - 0xaa8e, 0xaa30, 0xa9cd, 0xa98a, 0xd591, 0xaa1f, 0x2978, 0xa9e7, - 0x2978, 0xa9e6, 0x1f84, 0xa9b7, 0xa9ec, 0xa9eb, 0xaae6, 0x298d, - 0xd505, 0xaa63, 0xaa41, 0xaa6d, 0xab08, 0xab0c, 0xab4c, 0xa9c6, - 0x2b22, 0xab43, 0x2a2f, 0xaa31, 0xa9e2, 0x2986, 0x299d, 0x4ca7, - 0xccda, 0xab2a, 0xab09, 0x2a1b, 0xaa31, 0xa9d2, 0x2a1b, 0xaa2f, - 0xaaa7, 0x2afa, 0xaafb, 0x29b8, 0xaa40, 0x29b8, 0x2a3f, 0xaa50, - 0xaa04, 0xaa40, 0xa9fb, 0x2987, 0xaa8d, 0xbdeb, 0xaa05, 0x1e3d, - 0xee97, 0xaaff, 0x2b30, 0x2b46, 0xab7e, 0xab0b, 0xab38, 0x28fb, - 0xd05f, 0x2987, 0xaa66, 0xa9d0, 0xaa32, 0xaabc, 0xab03, 0x29ab, - 0xab00, 0xa99b, 0xaaaa, 0xa988, 0x3127, 0xd06d, 0x2b1d, 0xd885, - 0xab32, 0xab21, 0xab2a, 0xa9aa, 0xa9ee, 0xab19, 0xa9a9, 0x3194, - 0xc644, 0x2a34, 0xaafb, 0x2a34, 0xaafa, 0xaa73, 0x29ab, 0xaaaf, - 0xaaad, 0xaa06, 0xaa2d, 0xaa75, 0xaa07, 0xaaf1, 0x2acb, 0xd885, - 0xaad2, 0x2a18, 0xab43, 0xab37, 0x2a26, 0xaad4, 0x2976, 0xa9b3, - 0x2a74, 0x2b46, 0xab7e, 0xaad0, 0xab24, 0xaa76, 0xb1d2, 0x2a18, - 0xab22, 0x2a74, 0x2b30, 0xab7e, 0xaa08, 0xab53, 0xab52, 0xab6b, - 0xa5e3, 0x2b78, 0x3569, 0x3585, 0x3586, 0xb588, 0xab7f, 0xab59, - 0x2b66, 0x3569, 0x3585, 0x3586, 0xb588, 0xab7d, 0xab7c, 0x2a74, - 0x2b30, 0xab46, 0xab6a, 0x2bcd, 0x2bd5, 0x2bd7, 0x2bdc, 0x2be7, - 0xc52f, 0xa197, 0x4260, 0x5675, 0xd6c7, 0xca79, 0xa7a8, 0xca81, - 0xd089, 0x219d, 0xab9c, 0x219d, 0xab90, 0x2bda, 0x2bf3, 0x2bf6, - 0xc3e4, 0x2b9f, 0xabe6, 0x2b9e, 0xabe6, 0xabf5, 0x2bb7, 0xabe9, - 0xac4e, 0xb1b2, 0xabae, 0xabab, 0x5b8c, 0xe1bc, 0xa0a2, 0x2ba1, - 0xabe9, 0xabc6, 0x21a6, 0xabc7, 0x2bdb, 0xabec, 0x5cd3, 0xdcd4, - 0xe1c7, 0xa1a4, 0xabbb, 0x21a6, 0xabbc, 0x6751, 0xe752, 0x66ba, - 0x674d, 0x674e, 0x674f, 0x6db4, 0x6e16, 0xee64, 0xa1a8, 0x2b81, - 0x2bd5, 0x2bd7, 0x2bdc, 0x2be7, 0xc52f, 0xaebd, 0x2b81, 0x2bcd, - 0x2bd7, 0x2bdc, 0x2be7, 0xc52f, 0x2b81, 0x2bcd, 0x2bd5, 0x2bdc, - 0x2be7, 0xc52f, 0x2b9d, 0x2bf3, 0x2bf6, 0xc3e4, 0x2bbd, 0xabec, - 0x2b81, 0x2bcd, 0x2bd5, 0x2bd7, 0x2be7, 0xc52f, 0xabe2, 0xda67, - 0x4aad, 0xcab6, 0xabdd, 0x2b9e, 0xab9f, 0x2b81, 0x2bcd, 0x2bd5, - 0x2bd7, 0x2bdc, 0xc52f, 0x2ba1, 0xabb7, 0x2199, 0xa1a9, 0x2bbd, - 0xabdb, 0x2b9d, 0x2bda, 0x2bf6, 0xc3e4, 0xaba0, 0x2b9d, 0x2bda, - 0x2bf3, 0xc3e4, 0x2bfe, 0xac0d, 0xac0b, 0xac0e, 0x2bf9, 0xac0d, - 0x28fd, 0xa900, 0x1e13, 0xac08, 0x214b, 0x224b, 0xa2ca, 0xac07, - 0xac06, 0x1e13, 0xac02, 0xa3de, 0xabfb, 0x2bf9, 0xabfe, 0xabfc, - 0x2c13, 0x2c14, 0xc23e, 0x2c12, 0x2c14, 0xc23e, 0x2c12, 0x2c13, - 0xc23e, 0xa875, 0xac1a, 0xac19, 0x1e48, 0x2e85, 0x6ebc, 0xeebd, - 0x2617, 0x2690, 0xc51e, 0xc1ce, 0x2c20, 0x5d7b, 0x6bae, 0x6c7b, - 0xec9c, 0x2c1f, 0x5d7b, 0x6bae, 0x6c7b, 0xec9c, 0x2c23, 0x2c24, - 0xb023, 0xac22, 0x2c22, 0xb023, 0xac26, 0xac25, 0x279a, 0x282f, - 0xac2d, 0xac2b, 0xac29, 0xeb40, 0x279a, 0x282f, 0xac27, 0x21f2, - 0x2c34, 0x2c36, 0x2c37, 0xeb50, 0x21f2, 0x2c32, 0x2c36, 0x2c37, - 0xeb50, 0x21f2, 0x2c32, 0x2c34, 0x2c37, 0xeb50, 0x21f2, 0x2c32, - 0x2c34, 0x2c36, 0xeb50, 0xac4d, 0x1fad, 0x2118, 0xc6e1, 0x1fb7, - 0xddfc, 0xac64, 0xac53, 0xa1e5, 0xac4a, 0xac46, 0x6ce5, 0xee1f, - 0xac38, 0xaba9, 0x2c5b, 0xae48, 0xac43, 0x2c4f, 0xae48, 0xac6c, - 0xac62, 0xac61, 0xac42, 0xac68, 0xac66, 0xac5e, 0xadbc, 0xa1fa, - 0x1e97, 0x2d57, 0x3b72, 0xbb73, 0xdc48, 0x2742, 0xe62a, 0xdc3a, - 0xad87, 0xad17, 0xacf4, 0xad50, 0x2cf6, 0x2d8b, 0x2d8c, 0x2db9, - 0x6666, 0x669d, 0xe6af, 0xa188, 0x2d52, 0x2d53, 0x2dcc, 0x2dd6, - 0x2dd7, 0xc89e, 0xadba, 0xadbd, 0xad87, 0xad2c, 0xadcb, 0xada8, - 0xada7, 0xacdd, 0xacd2, 0xacfd, 0xada2, 0xada0, 0xad22, 0xadd2, - 0xace9, 0xace8, 0xacf0, 0xacef, 0xac98, 0x2d58, 0x2db8, 0xadc6, - 0x2c9b, 0x2d8b, 0x2d8c, 0x2db9, 0x6666, 0x669d, 0xe6af, 0xace1, - 0xad97, 0xad0d, 0xadae, 0xad08, 0xad07, 0x234e, 0xd3ef, 0xad03, - 0x27fc, 0x2d5c, 0xc895, 0xa393, 0xac97, 0x1ed1, 0xad19, 0x1ed1, - 0xad18, 0xace5, 0xacbd, 0x2d83, 0xad84, 0xcbcf, 0xac9a, 0x2ca9, - 0x2d53, 0xc89e, 0x2ca9, 0x2d52, 0xc89e, 0x1e97, 0x2c81, 0x3b72, - 0xbb73, 0x2cf5, 0x2db8, 0xadc6, 0xad94, 0x27fc, 0x2d0e, 0xc895, - 0xad81, 0x3e13, 0xbeaa, 0xad73, 0xad6f, 0xad5d, 0xad2d, 0xad2d, - 0x2c96, 0xacb4, 0x2c9b, 0x2cf6, 0x2d8c, 0x2db9, 0x6666, 0x669d, - 0xe6af, 0x2c9b, 0x2cf6, 0x2d8b, 0x2db9, 0x6666, 0x669d, 0xe6af, - 0xad5a, 0xad02, 0xace4, 0xace3, 0xacc4, 0xacc3, 0xad04, 0xe6df, - 0x2730, 0x2754, 0xa7ca, 0x2965, 0xa967, 0x2cf5, 0x2d58, 0xadc6, - 0x2c9b, 0x2cf6, 0x2d8b, 0x2d8c, 0x6666, 0x669d, 0xe6af, 0xacad, - 0xac7f, 0xacb3, 0x2dd3, 0xadd4, 0x2cf5, 0x2d58, 0xadb8, 0xacbf, - 0x2ca9, 0x2dd6, 0xadd7, 0xace6, 0xadc5, 0xadc5, 0x2ca9, 0x2dcc, - 0xadd7, 0x2ca9, 0x2dcc, 0xadd6, 0xaddd, 0xaddb, 0xa759, 0xade3, - 0xade2, 0xe78f, 0xadf0, 0xadef, 0xa36e, 0xd856, 0xadfd, 0x2377, - 0xb372, 0xadfa, 0x67cd, 0xe7e8, 0x231d, 0xdfca, 0x2370, 0x2e63, - 0xae64, 0x9f48, 0xae25, 0xae2b, 0xcd19, 0xae43, 0xae33, 0x9f16, - 0xd88b, 0xcd48, 0xcc3e, 0xcb92, 0x2e5f, 0xb5d8, 0xae05, 0x2e2f, - 0xae36, 0xae40, 0xae08, 0xd4c6, 0x2e47, 0x2e5a, 0xae6b, 0x2e26, - 0xae36, 0x2f52, 0x3b78, 0xc688, 0xae6c, 0xae10, 0x2e26, 0xae2f, - 0xae58, 0xae57, 0xa183, 0xae27, 0x21aa, 0xcf83, 0xae0f, 0x2e2e, - 0x2e5a, 0xae6b, 0x2c4f, 0xac5b, 0xce28, 0xae3c, 0xae3b, 0x2e2e, - 0x2e47, 0xae6b, 0x2e1c, 0xb5d8, 0xb5d9, 0x2e01, 0xae64, 0x2e01, - 0xae63, 0x2e2e, 0x2e47, 0xae5a, 0xae31, 0x1e7e, 0x2e79, 0xb9a6, - 0xc9ca, 0x1e26, 0x1f75, 0x2002, 0x20a1, 0x2e77, 0xcadd, 0xae76, - 0xa016, 0x2e72, 0xb9a6, 0x9e48, 0xa1e0, 0x2e83, 0x2eb5, 0xaee3, - 0x2ef0, 0xaef3, 0x2e7f, 0xaee3, 0x5358, 0xd38a, 0x1e48, 0x2c1b, - 0x6ebc, 0xeebd, 0xb176, 0xc240, 0xaeec, 0xaee1, 0xaeab, 0x2fdc, - 0xb1c9, 0xaedf, 0xef90, 0x2ec3, 0xaee2, 0xa750, 0xae93, 0x2e7f, - 0x53f4, 0x544a, 0xd4ed, 0xaebb, 0x377e, 0x3780, 0x37a9, 0x37d7, - 0xb8a5, 0xaeb6, 0xaece, 0xabd3, 0xaedf, 0x2395, 0xa3a0, 0xa3a2, - 0x2e9f, 0xaee2, 0xa3a6, 0xaebc, 0x23a9, 0xaed0, 0x23a9, 0xaecf, - 0xa3a8, 0x2398, 0x28e5, 0xe13d, 0xa3ae, 0x2e99, 0xaebf, 0x2382, - 0xa3b0, 0xae91, 0x2e9f, 0xaec3, 0x2e7f, 0xae83, 0xaeea, 0xaee9, - 0xae90, 0x2385, 0x2e81, 0xaef3, 0x2385, 0x239b, 0x2e81, 0xaef0, - 0xdfea, 0x26d8, 0x26de, 0x26ec, 0x2efd, 0x5ff4, 0xe025, 0x1e43, - 0xdffa, 0x26d8, 0x26de, 0x26ec, 0x2efb, 0x5ff4, 0xe025, 0xe58b, - 0x44e3, 0x598d, 0x5fa1, 0x5fa7, 0x5fa8, 0x5fa9, 0xdfaf, 0xc570, - 0xb8c4, 0x330a, 0xb335, 0xa958, 0x9e00, 0x9e8c, 0x1e09, 0xa3c1, - 0x5cae, 0x5cb3, 0xdd30, 0xaf12, 0xaf11, 0xa40a, 0xaf35, 0x2f4c, - 0xc030, 0xcd43, 0xaf33, 0xaf4e, 0xaf2a, 0xaf20, 0xaf3a, 0x2f3e, - 0xaf48, 0xaf37, 0xaf3c, 0xaf3b, 0x2f39, 0xaf48, 0xa22b, 0x2f39, - 0xaf3e, 0xaf25, 0xaf2f, 0xaf51, 0xaf50, 0x2e30, 0x3b78, 0xc688, - 0x2679, 0xc576, 0xaf55, 0x2f54, 0x6304, 0xe332, 0xcbf2, 0x2f5a, - 0xbc47, 0x2f59, 0xbc47, 0x2f5c, 0x2f5d, 0xaf5e, 0x2f5b, 0x2f5d, - 0xaf5e, 0x2f5b, 0x2f5c, 0xaf5e, 0x2f5b, 0x2f5c, 0xaf5d, 0xaf60, - 0x2f5f, 0xd4a6, 0xaf66, 0xaf65, 0xaf72, 0xcdb5, 0xe6d5, 0x1efd, - 0xb58c, 0xaf68, 0x9ee2, 0x1eff, 0x2fac, 0xeae3, 0xafb9, 0x1f5b, - 0xeaf4, 0x2f83, 0xdfec, 0x2fb0, 0x2fb4, 0xafb5, 0xaf80, 0x2f91, - 0x5ff3, 0xe015, 0xc2e5, 0x9f77, 0x9f6a, 0xa40e, 0xe65f, 0x2f84, - 0x5ff3, 0xe015, 0x1ece, 0xaf9e, 0x22d1, 0xafa0, 0x1ece, 0xaf93, - 0x22d1, 0xaf95, 0xc9a6, 0x201f, 0xd5c9, 0xa065, 0x290d, 0xd986, - 0x1eff, 0x208d, 0xaf77, 0xa09c, 0xaf81, 0xa0c4, 0x2fb7, 0x3074, - 0xb0b3, 0x2f81, 0xafb5, 0x2f81, 0xafb4, 0x2fb3, 0x3074, 0xb0b3, - 0xaf7b, 0xafc4, 0xafc3, 0xb1b6, 0x9ec1, 0x31f4, 0xb1fa, 0xda8c, - 0xb07e, 0x2e94, 0xb1c9, 0xb09f, 0xb025, 0xb182, 0x2306, 0x3031, - 0xb0a4, 0xb0b4, 0xa538, 0xb13e, 0x31d0, 0xb1f7, 0xb14b, 0xb16b, - 0xb1ae, 0xb16a, 0xb0b5, 0xb134, 0x9f42, 0xb091, 0xb190, 0xb056, - 0x2c22, 0xac24, 0xafe3, 0xb060, 0x2306, 0x2fe9, 0xb0a4, 0x30e3, - 0x3374, 0x4dcf, 0x4deb, 0xce3d, 0xb1df, 0xb1cc, 0xb052, 0xb200, - 0xb046, 0x21c4, 0xb0bd, 0xb01d, 0xb02a, 0x241d, 0xb08b, 0x2379, - 0xdcc9, 0xd03b, 0xb119, 0x3085, 0xb0a6, 0xb1c7, 0x2fb3, 0x2fb7, - 0xb0b3, 0xb0e0, 0x20eb, 0x2641, 0x30aa, 0xb0e1, 0xb15f, 0xb1e8, - 0xb137, 0xb0fb, 0x30a9, 0xb0f1, 0xb0f2, 0xafd9, 0x30e5, 0xb142, - 0x3111, 0xb139, 0x3071, 0xb0a6, 0x24f2, 0x2560, 0x2586, 0x269e, - 0xa7d1, 0xb061, 0xc302, 0xb016, 0x9fd4, 0x3102, 0xda96, 0xdbef, - 0xafe2, 0xb0ca, 0x2306, 0x2fe9, 0xb031, 0x3071, 0xb085, 0x307c, - 0xb0f1, 0x20eb, 0x3076, 0xb0e1, 0xb164, 0xb1f8, 0xb173, 0xb1ab, - 0x2fb3, 0x2fb7, 0xb074, 0xaff0, 0xb005, 0xe5f7, 0x21c4, 0xb053, - 0x30a2, 0xea5a, 0x248a, 0x248c, 0xefa2, 0x1ffd, 0xbb23, 0xb075, - 0x20eb, 0x3076, 0xb0aa, 0xb03b, 0x307f, 0xb142, 0xb1fc, 0xb158, - 0xb1f2, 0xb18a, 0xb11c, 0x3159, 0xb15a, 0xb19a, 0xb163, 0x307c, - 0xb0a9, 0xb07d, 0xd822, 0xb07b, 0xd90a, 0x3096, 0xda96, 0x4609, - 0xc652, 0x3080, 0xb139, 0xb06a, 0xc231, 0xb0ec, 0xb14d, 0xb181, - 0xb1a4, 0xb192, 0x2abf, 0xd06d, 0xb1fc, 0xb006, 0xb07a, 0x3080, - 0xb111, 0xb14e, 0xa35a, 0xaffe, 0xe858, 0x307f, 0xb0e5, 0xb817, - 0xbbb7, 0xb001, 0xb120, 0x313c, 0x361a, 0xc718, 0x3174, 0xb1fe, - 0xb0e8, 0x30ed, 0xb15a, 0x30ed, 0xb159, 0x3078, 0xb185, 0xb0ef, - 0xb0ab, 0xb004, 0xb002, 0xb196, 0xd651, 0xb0ad, 0xb151, 0xae86, - 0x317d, 0xb21a, 0x317c, 0xb21a, 0xbb32, 0x21ed, 0x21f4, 0xb191, - 0xb121, 0xafe7, 0xb15f, 0xb1a9, 0xb0eb, 0xb01c, 0x21ed, 0x21f4, - 0xb17f, 0xb126, 0x2af6, 0xc644, 0x316d, 0xb197, 0xb196, 0x259c, - 0x3199, 0xbb56, 0x259c, 0x3198, 0xbb56, 0xb0ee, 0xb124, 0x22b3, - 0x22b4, 0xa2de, 0xb187, 0xb0af, 0xb003, 0xabaa, 0xafc6, 0xa766, - 0xa2e4, 0xb073, 0x2e94, 0xafdc, 0xb03f, 0xb1d4, 0x3000, 0xb1f7, - 0xb1e3, 0x2b3e, 0xb1f6, 0xb1cd, 0xb1f5, 0xd499, 0xb03c, 0xb1d1, - 0xb1e7, 0xb1e6, 0xb079, 0xb0e9, 0x2fcf, 0xb1ff, 0xb1dc, 0xb1d2, - 0x3000, 0xb1d0, 0xb0ac, 0xafcf, 0x30e7, 0xb133, 0xbb22, 0xb151, - 0xb1f4, 0xb04b, 0xb207, 0xb206, 0xb214, 0x322f, 0xb232, 0xb20b, - 0xb227, 0x3226, 0xb230, 0x317c, 0xb17d, 0xb21e, 0x5ca1, 0xdd22, - 0xb21b, 0x3218, 0xb230, 0xb217, 0xb22c, 0xb229, 0x2279, 0xa2e0, - 0x320f, 0xb232, 0x3218, 0xb226, 0x320f, 0xb22f, 0x3237, 0xb238, - 0x3236, 0xb238, 0x3236, 0xb237, 0xa384, 0xb23e, 0x236f, 0xa918, - 0xb23b, 0xb24c, 0xb24b, 0xce94, 0x33e0, 0xcd2e, 0x34b2, 0xb4c8, - 0xb2c2, 0xa728, 0x5a17, 0xdbac, 0xb34d, 0xb268, 0xe1e6, 0xa7f7, - 0x23c9, 0xb260, 0x32e1, 0xb4f4, 0xb36b, 0xb383, 0xb3da, 0xb4a6, - 0xb4fe, 0xb5bc, 0x2448, 0xc2c2, 0xa214, 0xb4ab, 0xb2cb, 0xb2d4, - 0xb2d7, 0x32e9, 0xb4c7, 0xb476, 0xb473, 0xb384, 0xb436, 0xdb77, - 0xa831, 0xb4e1, 0x32de, 0x4274, 0xd9dd, 0xb255, 0xb4d4, 0xb49a, - 0xb29b, 0xb2ff, 0x37b4, 0xb7fa, 0xb428, 0xb29c, 0xb2d6, 0xb2d5, - 0xb29d, 0xb2dd, 0xb2dc, 0xb2b5, 0xb4ec, 0x336e, 0xb4da, 0x3269, - 0x3304, 0xb4f4, 0xb50f, 0xb3c0, 0xb4c1, 0xb514, 0xb4f0, 0x34a5, - 0xc67a, 0x329e, 0xb4c7, 0xb2cf, 0xb39b, 0x32e1, 0xb4f4, 0x2f04, - 0xb335, 0x1e3e, 0x34e7, 0xd209, 0xb46f, 0xb523, 0xb397, 0xb4be, - 0xb4bb, 0xb33e, 0xb493, 0xb4cb, 0xb49f, 0xb399, 0xb4e0, 0xb3ee, - 0xb48f, 0x2f04, 0xb30a, 0xb412, 0xdf13, 0xb31f, 0xb3d2, 0x3405, - 0x34b9, 0xb52a, 0x38b1, 0x4975, 0xcd91, 0xb25e, 0xb3d1, 0xd379, - 0xb41c, 0xb488, 0xb40d, 0xb4bf, 0xb3db, 0x3417, 0xb4e3, 0xd20d, - 0xb26a, 0x32e0, 0xb4da, 0x2377, 0xadfb, 0xb03b, 0x3816, 0xb8f2, - 0x27fd, 0xb26b, 0xb2a1, 0xb31c, 0xb323, 0xb302, 0xe1c7, 0xb4d1, - 0xa30a, 0xb3ed, 0xb4c4, 0xb451, 0xb4f2, 0xb4a3, 0xb47b, 0xb414, - 0xb45c, 0xc8b0, 0xb2e3, 0xb34f, 0xb33f, 0xb26c, 0xb362, 0xb24e, - 0xb3b2, 0xb325, 0xd0cc, 0x3416, 0xb447, 0xb52c, 0xb4b3, 0xb519, - 0xb4f1, 0xb45f, 0xce3d, 0x3341, 0x34b9, 0xb52a, 0xb784, 0xb35f, - 0xb337, 0xb3bb, 0x33fa, 0xb447, 0xb363, 0x335c, 0xd490, 0xb2d3, - 0xb498, 0xb528, 0xb2a2, 0x34d5, 0xb51c, 0xb9a8, 0x3444, 0xb51d, - 0x3442, 0xb51d, 0xb504, 0x34fa, 0xd96c, 0x33fa, 0xb416, 0xb4ef, - 0xb524, 0xb3b4, 0xb3bc, 0xb402, 0x4dcf, 0x4deb, 0xce3d, 0xb4f5, - 0xb31a, 0xb2a0, 0xb29f, 0xb3ba, 0x21fb, 0xb4ca, 0xb516, 0xb35e, - 0xb326, 0xb491, 0xb490, 0xb320, 0xb42d, 0xb2c8, 0xb322, 0xb4cd, - 0xb3b8, 0x32e8, 0xc67a, 0xb26f, 0x4d55, 0x4d76, 0xcedd, 0xb29a, - 0x3251, 0xb4c8, 0xb3ff, 0xb506, 0xb4f7, 0xb4fc, 0x3341, 0x3405, - 0xb52a, 0xb51b, 0xb31e, 0xb31d, 0xb361, 0xb2e5, 0xb3b3, 0x329e, - 0xb2e9, 0x3251, 0xb4b2, 0x21fb, 0xb483, 0xb321, 0xb4a1, 0xb3a5, - 0xb2c5, 0x343a, 0xb51c, 0x32e0, 0xb36e, 0xb4fb, 0xb324, 0xb2ac, - 0xb363, 0xb52c, 0x1e3e, 0x3319, 0xd209, 0xb2df, 0xb448, 0xb2e7, - 0xb401, 0xb3b7, 0x3269, 0x32e1, 0xb304, 0xb469, 0x34b7, 0xd96d, - 0xb446, 0xb4de, 0xb4b8, 0xb50a, 0xb270, 0x9e51, 0xb445, 0xb522, - 0xb4b5, 0xb51f, 0xb4fd, 0xb2e2, 0xb522, 0xb2e6, 0xb484, 0xb400, - 0xb4ba, 0x343a, 0xb4d5, 0x3442, 0xb444, 0xb508, 0x3505, 0xb512, - 0xb31b, 0xb44a, 0xb432, 0x3341, 0x3405, 0xb4b9, 0xc234, 0x33fd, - 0xb4e5, 0xb535, 0xb534, 0xa3ce, 0xd003, 0x4b27, 0x4b56, 0x4b5e, - 0xcba3, 0x1ff2, 0x209a, 0xa2b9, 0x9f8e, 0xb575, 0x23d9, 0xb558, - 0xb559, 0xa2c4, 0x22c5, 0xa2d1, 0x5d01, 0xdd25, 0x23d9, 0xb54d, - 0xb54e, 0x3582, 0xbb5b, 0xa0d8, 0x2b66, 0x2b78, 0x3585, 0x3586, - 0xb588, 0xb578, 0xb54c, 0xb5c9, 0xb570, 0x69c6, 0x69c8, 0x6a45, - 0xea71, 0xbb5d, 0x355b, 0xbb5b, 0xbbd9, 0x2b66, 0x2b78, 0x3569, - 0x3586, 0xb588, 0x2b66, 0x2b78, 0x3569, 0x3585, 0xb588, 0x2b66, - 0x2b78, 0x3569, 0x3585, 0xb586, 0x1e9d, 0x358a, 0x6f4a, 0xef50, - 0x1e9d, 0x3589, 0x6f4a, 0xef50, 0x358e, 0xef4b, 0x1efd, 0xaf6c, - 0xd9ba, 0x358b, 0xef4b, 0xb595, 0x359e, 0xd7a4, 0xb593, 0x65d8, - 0x6b25, 0x6b26, 0x6b2a, 0xeb2d, 0x3594, 0xd7a4, 0xe159, 0xb5ac, - 0xb5a9, 0xb5b7, 0xb5b5, 0xb5b2, 0xb5ad, 0x1e8e, 0x1e8f, 0xb275, - 0xb5d2, 0xb577, 0xb5c8, 0x4c31, 0xcc4f, 0x2e1c, 0xae5f, 0x2e61, - 0xb5db, 0xb5d9, 0xc121, 0xa6f8, 0xd20a, 0x234f, 0x2354, 0xa3f6, - 0x35f9, 0xb642, 0x2164, 0x363f, 0xb6e0, 0xb698, 0x35f6, 0xb642, - 0xb680, 0xb625, 0xb664, 0xb63b, 0x2347, 0xb6fb, 0xb626, 0xb719, - 0xb62c, 0xb6c7, 0xb14e, 0xc6a8, 0xb5fe, 0xb60a, 0xb60f, 0xc0a4, - 0xb630, 0xb62f, 0xa1ac, 0xb602, 0x365d, 0xb6f8, 0xb6e8, 0x6855, - 0xe86f, 0x35f7, 0xb6e0, 0x35f6, 0xb5f9, 0xb644, 0xb643, 0xb64b, - 0xb649, 0xb6ec, 0x3681, 0xb6c9, 0xb6c4, 0xb688, 0xb689, 0xb669, - 0x363c, 0xb6f8, 0xb660, 0xb65f, 0xb5ff, 0xb6df, 0xb65a, 0xb69c, - 0x3692, 0xc520, 0xb697, 0xb5fa, 0x3653, 0xb6c9, 0xb6ab, 0x4f6a, - 0xdfa0, 0xb655, 0xb656, 0xb674, 0x4156, 0xc157, 0x367b, 0x5af3, - 0x5c19, 0x65c7, 0xe68c, 0xb5f8, 0xb66e, 0xc545, 0x36ad, 0x36cd, - 0xc6a5, 0x2386, 0x23af, 0xb6c6, 0xb6d6, 0xb6c1, 0xb682, 0x36a4, - 0xc6a5, 0x1e86, 0xc7ad, 0xb6a8, 0xb654, 0x2386, 0x23a4, 0x23af, - 0xb6a6, 0xb619, 0x3653, 0xb681, 0x40a4, 0x4167, 0x41f3, 0xc7be, - 0xb6a4, 0xa411, 0xb6a7, 0xb668, 0x35f7, 0xb63f, 0xb63d, 0xb652, - 0x3d40, 0x4cac, 0x6eaf, 0x6eb4, 0xeeb9, 0xb6f5, 0xb6f3, 0x1e66, - 0x363c, 0xb65d, 0xb6fa, 0xb6f9, 0x2347, 0xb607, 0xb6fe, 0xb6fd, - 0xa1a3, 0x22d6, 0xa2d7, 0x9f1a, 0xd8e8, 0xb717, 0xb716, 0xb60e, - 0xb722, 0xb71f, 0xb71e, 0xb71b, 0xd0e7, 0x2932, 0xb94d, 0xa273, - 0xb72f, 0x372e, 0xd853, 0xc843, 0x3a38, 0xba8f, 0xb736, 0xb735, - 0x21e0, 0xba5f, 0xbbba, 0x594d, 0x66d1, 0xe6dc, 0x3a29, 0xbb0a, - 0xb87f, 0xa72c, 0x3766, 0x3919, 0xba86, 0xe0a8, 0xb9d3, 0xb89d, - 0xb803, 0x9f86, 0xb749, 0xb94a, 0xb9aa, 0x386e, 0xc6c3, 0xa091, - 0x9e1c, 0x2eba, 0x3780, 0x37a9, 0x37d7, 0x38a5, 0xeb06, 0xe5c6, - 0x2eba, 0x377e, 0x37a9, 0x37d7, 0xb8a5, 0xb975, 0x3406, 0xb9cb, - 0xb960, 0x1e2b, 0x3860, 0x390f, 0xb930, 0x5edb, 0x5ef6, 0xdf6d, - 0xd3d3, 0xba05, 0xb85d, 0xba1e, 0xb8d7, 0xbaea, 0xb80c, 0xb898, - 0xb8d6, 0x2eba, 0x377e, 0x3780, 0x37d7, 0xb8a5, 0x39cd, 0x6397, - 0xe453, 0xb953, 0xb89f, 0x23f0, 0x3aaf, 0xd01c, 0x32d0, 0xb7fa, - 0xb827, 0xd235, 0xb822, 0xb959, 0x2eba, 0x377e, 0x3780, 0x37a9, - 0xb8a5, 0xbac3, 0xbab8, 0xb7fb, 0x231b, 0xb7fe, 0xa948, 0x3801, - 0x387a, 0xba6e, 0xb805, 0xb7ff, 0x32d0, 0xb7b4, 0xb7e5, 0xba89, - 0x231b, 0xb7e9, 0xb7f9, 0xb894, 0x37f3, 0x387a, 0xba6e, 0x3764, - 0xbad4, 0x39ae, 0xd363, 0xb7f5, 0xba19, 0x385f, 0xb8e7, 0xbadb, - 0x39de, 0xbaf3, 0xb8df, 0x37a6, 0xbae8, 0x3aaa, 0xbadf, 0x3b04, - 0xbb17, 0xba39, 0x337f, 0xb8f2, 0x21d3, 0xb144, 0xa20a, 0xb7cf, - 0xb7bb, 0x3a43, 0xcb4f, 0x39d8, 0xba23, 0xd988, 0x271d, 0xbb12, - 0xb97f, 0x2353, 0xb9d5, 0xb852, 0xb851, 0xb90e, 0x3a31, 0xbafb, - 0xb7a1, 0x3808, 0xb8e7, 0x1e2b, 0x3792, 0xb90f, 0xba48, 0xb968, - 0xba94, 0xb9bf, 0x39d7, 0xba4b, 0xba3a, 0xba9c, 0xb9f3, 0xba01, - 0xba33, 0x376f, 0xc6c3, 0xba03, 0x37f3, 0x3801, 0xba6e, 0xbf06, - 0xb746, 0x3a11, 0xcc17, 0xb9f1, 0x3973, 0xb9d1, 0x4681, 0xc682, - 0xb800, 0xb7a7, 0xb761, 0xb7ad, 0x2eba, 0x377e, 0x3780, 0x37a9, - 0xb7d7, 0x2922, 0xa923, 0x3346, 0xcd91, 0xbaae, 0xb8f6, 0xb9e4, - 0x391c, 0xbaa2, 0xbb1e, 0xaf03, 0x38cb, 0x3ab1, 0x3ac0, 0xc881, - 0x38ca, 0x3ab1, 0x3ac0, 0xc881, 0xb936, 0xb7a8, 0xb7a3, 0xb80b, - 0xba0a, 0x3808, 0xb85f, 0xca1c, 0x337f, 0xb816, 0xb8be, 0xbac2, - 0xc897, 0xb9e8, 0x1e57, 0x9e58, 0xb858, 0x1e2b, 0x3792, 0xb860, - 0x47f4, 0xc887, 0xb95a, 0xb749, 0x38c0, 0xbaa2, 0xbadd, 0xb9e7, - 0xb9f6, 0xbb0f, 0xba3f, 0xba62, 0xb792, 0xd46e, 0xb8d5, 0xd45a, - 0xb768, 0x2932, 0xb72c, 0xb7ab, 0xba62, 0xb7d5, 0xb918, 0xb78f, - 0xb986, 0xb966, 0xb965, 0xb862, 0xc243, 0xba9d, 0x9e1a, 0x3885, - 0xb9d1, 0xb781, 0xba13, 0x1e50, 0xba02, 0xb842, 0xbb16, 0xb9b2, - 0xb961, 0xbaec, 0xbada, 0x3af8, 0xbb05, 0xc253, 0x2e72, 0xae79, - 0xb43e, 0xb769, 0x3804, 0xd363, 0xb985, 0xba4a, 0xe198, 0xb864, - 0xb9d9, 0x5028, 0xe392, 0xb784, 0xb7aa, 0x3885, 0xb973, 0xb760, - 0x39f9, 0xba70, 0x2353, 0xb84c, 0x3865, 0xba4b, 0x3837, 0xba23, - 0xb9c7, 0xba9f, 0x3abb, 0xce7f, 0xb80a, 0xbab3, 0xbae7, 0xb8bf, - 0xb920, 0xb901, 0xb884, 0xb868, 0xb922, 0xb9d4, 0xb869, 0x1e50, - 0xb97d, 0xb879, 0xb79e, 0xb8e5, 0xbad3, 0x3881, 0xcc17, 0xbac1, - 0xb97c, 0xb807, 0xb7a2, 0x3837, 0xb9d8, 0x3743, 0xbb0a, 0x3a6b, - 0xbace, 0x3aa3, 0xd262, 0x385c, 0xbafb, 0xb86a, 0x1e1b, 0x23e2, - 0x3b09, 0xd5c2, 0x3734, 0xba8f, 0xb811, 0xb866, 0xcf47, 0xb92b, - 0x3830, 0xcb4f, 0xb861, 0xb9b4, 0x3865, 0xb9d7, 0xb73a, 0x392d, - 0xb955, 0x3a2a, 0xbace, 0x37f3, 0x3801, 0xb87a, 0xb9d4, 0xbae5, - 0x3ad3, 0x5263, 0xd26a, 0xbade, 0xbaa9, 0xbafd, 0xb749, 0xb7fd, - 0x3734, 0xba38, 0xcc37, 0xb863, 0x3a98, 0xd617, 0xba97, 0xb867, - 0xb96b, 0xb9da, 0x38c0, 0xb91c, 0xba2f, 0xba81, 0x380e, 0xbadf, - 0xb8bc, 0x23f0, 0xb7b1, 0x38ca, 0x38cb, 0x3ac0, 0xc881, 0xb9df, - 0xb7e0, 0xb9db, 0x38ca, 0x38cb, 0x3ab1, 0xc881, 0xba12, 0xb8f9, - 0xb7dc, 0xa1f3, 0xd030, 0x3a2a, 0xba6b, 0x3a10, 0xba79, 0xb803, - 0xbb11, 0xb988, 0xb809, 0xb91f, 0xba7c, 0x380e, 0xbaaa, 0xba71, - 0xb9e0, 0xb80c, 0xb7a5, 0xb987, 0xb80a, 0xb989, 0xbb1e, 0x385c, - 0xba31, 0xba83, 0x380f, 0xbb17, 0xb989, 0x1e1b, 0x23e2, 0x3a37, - 0xd5c2, 0x3743, 0xba29, 0xb924, 0xbad5, 0x271d, 0xb83e, 0xb984, - 0x380f, 0xbb04, 0x60c1, 0x6b30, 0xeb31, 0x38c2, 0xbafa, 0x4f3a, - 0xcf3c, 0x31fd, 0x3b53, 0x3b61, 0xea69, 0x1ffd, 0x30de, 0xda22, - 0xbb5f, 0xbb50, 0xb17e, 0xbb3e, 0xbb58, 0xe4a6, 0xbb35, 0xdb0c, - 0x23f9, 0xa606, 0xbb27, 0x3b22, 0xbb61, 0x259c, 0x3198, 0xb199, - 0xbb3b, 0x355b, 0xb582, 0xb581, 0xbb24, 0x3b22, 0xbb53, 0x3b68, - 0xbb69, 0x3b65, 0xbb69, 0x3b65, 0xbb68, 0xa24d, 0x3e0b, 0x3f80, - 0xbf81, 0x6f52, 0xef7f, 0x1e97, 0x2c81, 0x2d57, 0xbb73, 0x1e97, - 0x2c81, 0x2d57, 0xbb72, 0x2386, 0x23af, 0xbb77, 0x2386, 0x23af, - 0xbb74, 0x2e30, 0x2f52, 0xc688, 0xbb7a, 0xbb79, 0x3bb1, 0xbbb2, - 0x273d, 0x3b7f, 0x3b81, 0xbca1, 0x273d, 0x3b7e, 0x3b81, 0xbca1, - 0xa92d, 0x273d, 0x3b7e, 0x3b7f, 0xbca1, 0xbba4, 0xbb98, 0xbb9e, - 0xbbae, 0xbb8b, 0xbbab, 0xbb92, 0xbbaf, 0xbb87, 0xbb9a, 0xbb93, - 0xbba1, 0x3b7c, 0xbbb2, 0x3b7c, 0xbbb1, 0xbbc6, 0xb147, 0xb740, - 0x28f3, 0xbbbc, 0x28f3, 0xbbbb, 0xbbc1, 0x3bc0, 0x41ec, 0xdb6d, - 0xdf42, 0xbbb4, 0x233b, 0xe1ab, 0xbbcf, 0xbbce, 0x50b2, 0xd8ac, - 0xa936, 0xc562, 0xbbd8, 0xbbd7, 0xb583, 0xbbee, 0xbc08, 0xc403, - 0xbbdf, 0xbbff, 0xbbf5, 0x4266, 0xc29b, 0xbc0c, 0x3be1, 0xbc0a, - 0xbc08, 0xbc07, 0x3c17, 0x3c23, 0xc081, 0x3c14, 0x3c23, 0xc081, - 0xe6f0, 0xbc2b, 0x3c14, 0x3c17, 0xc081, 0xbc2c, 0xbc22, 0xbc29, - 0xbc33, 0xbc32, 0x3c35, 0xbc3a, 0x3c34, 0xbc3a, 0x1ecc, 0x21ab, - 0xa1b0, 0x3c34, 0xbc35, 0x232f, 0x2f59, 0x2f5a, 0xbed9, 0xbf22, - 0xbcdb, 0x3c5a, 0xbc61, 0x3c59, 0xbc61, 0x3c59, 0xbc5a, 0xbe6f, - 0xbc74, 0xbc73, 0xbd36, 0xa1b3, 0xbef8, 0x3c89, 0xc00b, 0xbc88, - 0xbca1, 0xa1b2, 0xbdfb, 0xbe9d, 0x273d, 0x3b7e, 0x3b7f, 0x3b81, - 0xbc92, 0x3cfd, 0xbfa4, 0xc043, 0xbf1a, 0xc01d, 0xbdea, 0xbec4, - 0xbe22, 0xbf59, 0x3eec, 0xcc04, 0xe63b, 0xbcb2, 0xbcb1, 0xbfd4, - 0xe711, 0xa1b5, 0x1f71, 0xc04b, 0xbc4e, 0xbeaf, 0xbfd8, 0xa76d, - 0xda3b, 0x3d99, 0xbdda, 0xa1ba, 0xa933, 0xbfa9, 0x3edd, 0xc027, - 0xc018, 0xbffc, 0xc009, 0x3e8c, 0x3f51, 0xc67a, 0x3ca2, 0xbfa4, - 0xbd87, 0xbf54, 0xa1bd, 0xc051, 0xbf54, 0xbc79, 0xcaaa, 0xb6f2, - 0xbd79, 0xbde8, 0xbdfa, 0xbf3f, 0xbf86, 0xbe5e, 0xbeae, 0xbfc1, - 0xbe2c, 0xbfae, 0x3e08, 0xbfdf, 0x26a0, 0xc00f, 0xbefb, 0xbe3e, - 0xbef8, 0xbfc3, 0xbf6f, 0xbfdc, 0x3ee8, 0x3ff1, 0xbff5, 0xbfa3, - 0x3f82, 0x3f84, 0xc013, 0xbf94, 0xbd43, 0xa1c2, 0x21c3, 0xa857, - 0xbe7c, 0xbcfe, 0xbe09, 0xbe67, 0x5385, 0xd49e, 0x3cea, 0xbdda, - 0xbfe4, 0x3e0e, 0xc006, 0xbf87, 0xbdf6, 0xbf23, 0xbf7f, 0xbe26, - 0xbeb3, 0xbe19, 0xbecc, 0xbf64, 0x3f97, 0xc900, 0xbf32, 0x3e0b, - 0x3f80, 0x3f81, 0xbfc7, 0xbf04, 0xa1c5, 0xa1c9, 0xbfb1, 0xbe7d, - 0xc5f3, 0xa1c4, 0x3cea, 0xbd99, 0xbe0c, 0x21c0, 0xbd44, 0xbca6, - 0x2a6c, 0xbedb, 0xbe7b, 0x26e6, 0x3e0a, 0xbe15, 0xbd9e, 0xbe05, - 0xbd45, 0xbc97, 0xbdf8, 0xbe34, 0x3d4e, 0xbfdf, 0xbd89, 0x26e6, - 0x3df5, 0xbe15, 0x3b6e, 0x3da9, 0x3f80, 0xbf81, 0xbde5, 0xbf2c, - 0x3d9c, 0xc006, 0xbf38, 0xbfa0, 0x2d60, 0x3eaa, 0x5c3f, 0xdc40, - 0xbf01, 0x26e6, 0x3df5, 0xbe0a, 0xc00b, 0xbef2, 0xbda3, 0xa1cf, - 0xbca8, 0xbda1, 0xbeab, 0xbd4b, 0xbe07, 0x6030, 0xe04a, 0xbd51, - 0xa1d1, 0xbd48, 0xbd8c, 0xbc64, 0xbdf3, 0xbd85, 0xbdc4, 0xc063, - 0x3ebc, 0xbfd5, 0x3ee1, 0xbeff, 0xbfda, 0xa24c, 0xbf70, 0xbffa, - 0xbf0a, 0xbf11, 0x3cfc, 0x3f51, 0xc67a, 0xa3b5, 0x3fdb, 0xd499, - 0x21c6, 0xa1d6, 0xbf91, 0xbc9f, 0x2d60, 0x3e13, 0x5c3f, 0xdc40, - 0xbe29, 0xbd49, 0x3cdd, 0xe061, 0xbda2, 0x4194, 0xe394, 0x3e7f, - 0xbfd5, 0xbca7, 0xc06d, 0xbda4, 0xd365, 0xbf77, 0x232f, 0xbc47, - 0xbefe, 0xbdeb, 0x3cf7, 0xc027, 0xbeef, 0x404e, 0x4054, 0xc067, - 0xc044, 0x3e80, 0xbeff, 0xc005, 0xbffe, 0xbfeb, 0xc064, 0x3d5c, - 0x3ff1, 0xbff5, 0xc058, 0xbfa6, 0x3caa, 0xcc04, 0xbede, 0xbe17, - 0x2364, 0x3f9b, 0xc002, 0x3c7b, 0xbd52, 0xbd50, 0xbeda, 0x3e80, - 0xbee1, 0xbe14, 0xbdaf, 0xb87c, 0xbe87, 0xbe89, 0xc055, 0xbca4, - 0xbc49, 0xbd9f, 0x1e79, 0x1e7e, 0x9e81, 0xc1b3, 0xbe0d, 0xbf44, - 0xbda8, 0xbe10, 0xbd46, 0xe88d, 0xbf31, 0xc04c, 0xc020, 0xc01f, - 0xc032, 0xbff0, 0x3cfc, 0x3e8c, 0xc67a, 0x3d01, 0xbd2f, 0xbca9, - 0x3f5c, 0xbff3, 0x3f5b, 0xbff3, 0xbda6, 0xbd54, 0xbe83, 0xc026, - 0xbed7, 0xbda0, 0x3b6e, 0x3da9, 0x3e0b, 0xbf81, 0x3b6e, 0x3da9, - 0x3e0b, 0xbf80, 0x3d67, 0x3f84, 0xc013, 0x3d67, 0x3f82, 0xc013, - 0xbd47, 0xbd9d, 0xbe9c, 0xbd69, 0xbda7, 0xbfb3, 0x2364, 0x3ef7, - 0xc002, 0xc03e, 0x21db, 0xa1dc, 0xbe11, 0xbd63, 0x3ca2, 0xbcfd, - 0xbeea, 0xbcf6, 0xbd4d, 0xc032, 0xbdc0, 0xbf9a, 0xbd4a, 0xbd53, - 0xbda9, 0x4028, 0xc02c, 0xc015, 0xbcb5, 0x3e7f, 0xbebc, 0xbcde, - 0x3e81, 0xc02f, 0x3e95, 0xd499, 0xbd55, 0x3d4e, 0xbe08, 0xbd9b, - 0xbee5, 0xbf4d, 0x3d5c, 0x3ee8, 0xbff5, 0x3f5b, 0xbf5c, 0x3d5c, - 0x3ee8, 0xbff1, 0x65ca, 0xe614, 0xbe85, 0xbcfa, 0xbee4, 0x2364, - 0x3ef7, 0xbf9b, 0xbee2, 0x3d9c, 0xbe0e, 0xbcfb, 0x3c88, 0xbe16, - 0xbd4f, 0x3d67, 0x3f82, 0xbf84, 0xbfd2, 0xbcf8, 0xbca5, 0xbf47, - 0xbf46, 0xbf74, 0x3cf7, 0xbedd, 0x3fd1, 0xc02c, 0x3fd1, 0xc028, - 0xbfda, 0xaf25, 0x3f4b, 0xbfb0, 0xbf9c, 0xbca3, 0xbee0, 0x1f71, - 0xbcd5, 0xbf45, 0x3edf, 0xc054, 0xc05d, 0xbd12, 0x3edf, 0xc04e, - 0xbf13, 0xbee9, 0xc04f, 0xbe7e, 0xbee6, 0xbedf, 0xbec5, 0x2149, - 0xc097, 0xc1c8, 0x670a, 0x671b, 0xe748, 0x4ac3, 0xcac8, 0x40fe, - 0xdd64, 0x407e, 0xc0d6, 0x407d, 0xc0d6, 0xc1e6, 0xc16c, 0x3c14, - 0x3c17, 0xbc23, 0x4210, 0x6229, 0xe46a, 0x23cd, 0xa3db, 0xc08f, - 0xc08e, 0x2149, 0xc06e, 0xc152, 0xc197, 0x362d, 0x36cc, 0x4167, - 0x41f3, 0xc7be, 0x4832, 0x491f, 0xc92e, 0xc0f1, 0xcf39, 0xeede, - 0x1e3a, 0xc232, 0x4149, 0x632c, 0xe34a, 0xc1be, 0xc20d, 0x41d7, - 0x421b, 0xc224, 0xc0f4, 0xc16c, 0x9e4c, 0x407d, 0xc07e, 0xc1ed, - 0xc159, 0xc169, 0x413c, 0xc1d2, 0x41c1, 0xc217, 0xc1f4, 0xc1d9, - 0xc1fc, 0xc1b1, 0xc0af, 0xc0c3, 0xc1a2, 0x407b, 0xdd64, 0xe2b7, - 0x21de, 0x4155, 0x4188, 0xc199, 0xe2b2, 0x9e9f, 0x4130, 0xc1c4, - 0xc165, 0xc1dc, 0xc1fe, 0x41cc, 0xc1d3, 0xb5e0, 0xc133, 0xc162, - 0x4114, 0xc1c4, 0xc126, 0x40e7, 0xc1d2, 0xe35b, 0x40bc, 0x632c, - 0xe34a, 0xc16e, 0xc09c, 0x21de, 0x4108, 0x4188, 0xc199, 0xb696, - 0xb696, 0xc0df, 0x412d, 0xd315, 0xc115, 0x36cc, 0x40a4, 0x41f3, - 0xc7be, 0xc0e6, 0x4080, 0xc0ca, 0xc151, 0x417e, 0xc185, 0x4174, - 0xc185, 0x4174, 0xc17e, 0x21de, 0x4108, 0x4155, 0xc199, 0xc1fb, - 0xd367, 0x3eb6, 0xe394, 0xc09d, 0x21de, 0x4108, 0x4155, 0xc188, - 0xc0fd, 0xc0ed, 0xe88e, 0xbf2b, 0xc1ba, 0xc1b9, 0xc0bd, 0x40e8, - 0xc217, 0x4114, 0xc130, 0xc06f, 0x411a, 0xc1d3, 0xac1e, 0x48f7, - 0xcca6, 0x40e7, 0xc13c, 0x411a, 0xc1cc, 0xedf0, 0x40c2, 0x421b, - 0xc224, 0xc0eb, 0xc116, 0x25b6, 0xd425, 0xc07f, 0xbbc1, 0xc0db, - 0x36cc, 0x40a4, 0x4167, 0xc7be, 0xc0e9, 0xc18f, 0xc0ec, 0xc118, - 0xd000, 0xc0c1, 0xc089, 0x40e8, 0xc1c1, 0x40c2, 0x41d7, 0xc224, - 0x40c2, 0x41d7, 0xc21b, 0x9e89, 0xb11b, 0x1e3a, 0xc0ba, 0xb52b, - 0xc23a, 0xc237, 0x9fce, 0x2c12, 0x2c13, 0xac14, 0x9e2c, 0xae8a, - 0xb96a, 0xa889, 0xa899, 0xcb3a, 0xc258, 0x4255, 0x4a93, 0x4a97, - 0xcabb, 0xb99c, 0x424e, 0x4a93, 0x4a97, 0xcabb, 0xc24d, 0xc25c, - 0xc25b, 0xab83, 0x3c02, 0xc29b, 0x1f10, 0xa0a0, 0xb2b5, 0xc27d, - 0x42a0, 0xc2a7, 0xc275, 0xc282, 0xc281, 0xa954, 0xc2a2, 0xd366, - 0x3c02, 0xc266, 0x427a, 0xc2a7, 0xc28a, 0x427a, 0xc2a0, 0xc2ad, - 0xc2ac, 0xa3d0, 0xdc7a, 0x5c7b, 0xdc8b, 0xc2c0, 0xc377, 0xc341, - 0xc336, 0xc2b6, 0x2448, 0xb282, 0xc2fd, 0xdc7e, 0xc329, 0xc36e, - 0xc370, 0xdc89, 0xaf87, 0xc368, 0xc2f9, 0xc345, 0xc36a, 0xc319, - 0xc344, 0xc33b, 0x430d, 0xdc8d, 0xc2ed, 0xc2c8, 0xc318, 0xb08d, - 0xc36b, 0xd653, 0xdc8e, 0x42f8, 0xdc8d, 0x431f, 0xc375, 0xc37c, - 0xc2fe, 0xc2f0, 0x430e, 0xc375, 0xc380, 0xc33f, 0xc2cc, 0xdc6c, - 0xdc93, 0xd75f, 0xc37b, 0xdc92, 0xc366, 0xc371, 0xc2b9, 0xc2f2, - 0x4328, 0xd76f, 0xc2b8, 0xc2f1, 0xc2ee, 0xe3e1, 0x2956, 0x2968, - 0xa96c, 0xdc98, 0xee9e, 0xc359, 0xc358, 0x217d, 0xc378, 0xc332, - 0xc2ec, 0xc2ef, 0x4303, 0xc381, 0xc37a, 0xc2dd, 0xc2de, 0xc335, - 0xd3b7, 0x430e, 0xc31f, 0xc2b7, 0x217d, 0xc363, 0xc36d, 0xc32e, - 0xc315, 0xdc9b, 0xc321, 0xc36b, 0x583c, 0xdc9c, 0xa999, 0xa35b, - 0xc4a3, 0xc4b5, 0xc452, 0xc46a, 0x43cf, 0xc474, 0xcfeb, 0xc44b, - 0xc4b0, 0xc3fe, 0xc472, 0xc447, 0xc4bd, 0x4409, 0x4460, 0xc4a2, - 0xc3ce, 0xc3cd, 0x43a8, 0xc474, 0xc43a, 0xc4cf, 0x4434, 0xc439, - 0x2b9d, 0x2bda, 0x2bf3, 0xabf6, 0xa72d, 0xc4ab, 0x448e, 0xc4d4, - 0xc43f, 0xc894, 0xc3b0, 0xbbec, 0xc46f, 0x43cb, 0x4460, 0xc4a2, - 0x4483, 0xc4c8, 0xc4a1, 0xc489, 0x4411, 0xc463, 0x4410, 0xc463, - 0xe6d5, 0x43e1, 0xc439, 0x43e1, 0xc434, 0xc3d0, 0xc4ca, 0xc3f2, - 0xc3b3, 0xc3ae, 0xc39a, 0xc8af, 0x43cb, 0x4409, 0xc4a2, 0x4410, - 0xc411, 0xc476, 0xc4a1, 0xd3b9, 0xc39b, 0xc405, 0xc4cc, 0xc3b1, - 0x43a8, 0xc3cf, 0xc464, 0xc4a6, 0xc4b8, 0x440d, 0xc4c8, 0xc4bf, - 0xc40f, 0x43f1, 0xc4d4, 0x440e, 0xc468, 0x43cb, 0x4409, 0xc460, - 0xc391, 0xc477, 0xc3f0, 0xc3af, 0xc399, 0xc478, 0x28d0, 0xc3ba, - 0xc487, 0x440d, 0xc483, 0xc4da, 0xc43c, 0xc470, 0xc3d1, 0xc4da, - 0x43f1, 0xc48e, 0x44c9, 0xc4d2, 0xaf01, 0xcf38, 0xc515, 0xc50c, - 0x4501, 0xcf3e, 0xc506, 0x44f6, 0xcf3e, 0xc4f7, 0xc4ef, 0x287c, - 0x4816, 0xc8da, 0xc4ee, 0x4f42, 0xcf4c, 0x2617, 0x2690, 0xac1d, - 0xb674, 0x1ea7, 0xc523, 0x1ea7, 0xc522, 0x4a4c, 0x52cf, 0xd607, - 0x2b81, 0x2bcd, 0x2bd5, 0x2bd7, 0x2bdc, 0xabe7, 0xe6fb, 0x9fbd, - 0x2722, 0xc53c, 0x2212, 0x2283, 0x2290, 0x456b, 0xc575, 0x2722, - 0xc53a, 0xc54e, 0xc55d, 0x4559, 0xc571, 0xb6a2, 0x1ea9, 0x4552, - 0x455d, 0xc55e, 0xd015, 0x283a, 0xc54d, 0x283a, 0xc54c, 0xc53d, - 0xc560, 0x1ea9, 0x4546, 0x455d, 0xc55e, 0x4544, 0xc571, 0xa959, - 0x1ea9, 0x4542, 0x4546, 0x4552, 0xc55e, 0x1ea9, 0x4546, 0x4552, - 0xc55d, 0xc551, 0xa793, 0xbbd5, 0xc567, 0xc565, 0xc56a, 0xc568, - 0x453b, 0xc575, 0xaf02, 0x4544, 0xc559, 0x23e0, 0x4582, 0x4589, - 0xc58a, 0xc587, 0x453b, 0xc56b, 0xaf53, 0xc585, 0xa84d, 0x23e0, - 0x4573, 0x4589, 0xc58a, 0x457a, 0xc586, 0xc585, 0xc574, 0x23e0, - 0x4573, 0x4582, 0xc58a, 0x23e0, 0x4573, 0x4582, 0xc589, 0x458f, - 0xde08, 0x458e, 0xde08, 0xc664, 0xc642, 0xc627, 0xc658, 0xc60d, - 0xd0ac, 0xc667, 0xc632, 0xc621, 0xc60b, 0x46b0, 0xe764, 0xc5fe, - 0xc665, 0xc670, 0xc5d9, 0xc662, 0x24d1, 0x2516, 0x255e, 0xc602, - 0xc5c9, 0xc646, 0xc626, 0xc613, 0xc647, 0xd139, 0x45f3, 0xeebb, - 0x3dcb, 0x45f2, 0xeebb, 0xc661, 0xc5fa, 0xc5f9, 0xc5b4, 0x24d1, - 0x2516, 0x255e, 0xc5d6, 0xc649, 0xc62e, 0x3108, 0xc652, 0xc5af, - 0xc5a1, 0xc5ea, 0xa591, 0xc61e, 0xc63b, 0xc617, 0xc5ae, 0xc645, - 0xc5e9, 0xc59f, 0xc65f, 0xc671, 0xc606, 0xc5ad, 0xc63b, 0x4618, - 0xc63a, 0xc66e, 0xc66d, 0xc597, 0x2af6, 0xb194, 0xc624, 0xc5e8, - 0xc5eb, 0xc605, 0x3108, 0xc609, 0x4670, 0xd1c3, 0xc5a0, 0xc669, - 0xc62a, 0xc5f4, 0xc5d2, 0xc66c, 0xc596, 0xc5c7, 0xc5ac, 0xc65e, - 0xc672, 0xc663, 0xc63f, 0xc63e, 0xd1de, 0x45c8, 0x4655, 0xd1c3, - 0xc62b, 0xc66b, 0xc675, 0xc674, 0x23d1, 0x32e8, 0x34a5, 0x3cfc, - 0x3e8c, 0x3f51, 0x467c, 0x6166, 0x6197, 0xe1b1, 0xa0dc, 0x23d1, - 0xc67a, 0x388d, 0xc682, 0x388d, 0xc681, 0xdc8c, 0x2e30, 0x2f52, - 0xbb78, 0xc690, 0x2373, 0xa37d, 0xdccb, 0xc68b, 0xc69a, 0x21d2, - 0xc691, 0xc6a1, 0xc69e, 0x36a4, 0xb6ad, 0xb61f, 0x45b1, 0xe764, - 0xc6ba, 0x46b8, 0xc6b9, 0xef13, 0x46b2, 0xc6b9, 0x46b2, 0xc6b8, - 0xc6b1, 0xef13, 0xc6c8, 0x376f, 0xb86e, 0xc6cd, 0xc6c1, 0x4f3d, - 0x6262, 0xe4b5, 0xc897, 0xc6c7, 0xc6de, 0x2869, 0xee7d, 0x46e3, - 0xdb7c, 0x5462, 0xd4cb, 0xc6dc, 0xc6e4, 0xcc20, 0xc6d7, 0xc6cf, - 0xac3d, 0x46d1, 0xdb7c, 0xc6d8, 0xa362, 0x5361, 0xd62f, 0x1eff, - 0xa023, 0xc742, 0x23bf, 0xce23, 0xc798, 0x5996, 0xd9c6, 0xb14e, - 0xc71f, 0xc71e, 0xc726, 0xc725, 0xc72f, 0xc7d3, 0x472b, 0xc787, - 0xc760, 0x1e51, 0x1f17, 0xd846, 0xd457, 0xc75c, 0xc709, 0xa6f0, - 0xc75e, 0xc7bc, 0xc741, 0xc750, 0xc737, 0xc765, 0xc764, 0xd9a9, - 0x23e1, 0xa8e1, 0xc7c1, 0xc7b6, 0xc72f, 0xc79e, 0xcff3, 0xc70d, - 0xc792, 0xc7aa, 0xc7d2, 0xc7da, 0xc7a0, 0x1e86, 0xb6b8, 0xc7d9, - 0xc786, 0xc751, 0x36cc, 0x40a4, 0x4167, 0xc1f3, 0xc785, 0xd499, - 0xc7a2, 0xc72c, 0xc7b0, 0xc7a9, 0xcb36, 0x47e7, 0xda20, 0x9faf, - 0x47e4, 0xda20, 0xc7ef, 0xc7eb, 0x3917, 0x4887, 0xc8f8, 0xc8ef, - 0xc92c, 0x483f, 0x4926, 0x6271, 0x62db, 0xe45b, 0xc8ad, 0xc8bc, - 0xc8c7, 0xc88e, 0x287c, 0x450e, 0xc8da, 0xc868, 0xc86f, 0xc8b8, - 0xa38e, 0xc8aa, 0xc8d6, 0x40ae, 0x491f, 0xc92e, 0xc92a, 0xc931, - 0xc92b, 0x47ff, 0x4926, 0x6271, 0x62db, 0xe45b, 0xc90e, 0xc85c, - 0xb731, 0xc8a9, 0xc864, 0xc8fd, 0xc8d1, 0xc904, 0xc841, 0xc856, - 0xc817, 0xc912, 0x27c6, 0x48ba, 0xc8bb, 0xc81a, 0xc8e0, 0x6e78, - 0x6e7b, 0xee7c, 0x38ca, 0x38cb, 0x3ab1, 0xbac0, 0x3917, 0xc7f4, - 0xc919, 0xc815, 0xc3f7, 0x27fc, 0x2d0e, 0xad5c, 0x27e6, 0x3900, - 0xc6cc, 0xc8e7, 0xc8e3, 0x2ca9, 0x2d52, 0xad53, 0xe7a8, 0xc855, - 0xc827, 0xc800, 0xc459, 0x33bd, 0xde2b, 0x6e78, 0xee7c, 0xc81c, - 0x486e, 0xc8bb, 0x486e, 0xc8ba, 0xc801, 0xc920, 0xc812, 0xc859, - 0xe695, 0xa387, 0xc82c, 0x287c, 0x450e, 0xc816, 0xc875, 0xc89c, - 0xc89b, 0xc7f6, 0xc1d0, 0xc7f4, 0xeec4, 0xc857, 0xbda7, 0xc85a, - 0x6669, 0x667a, 0xe6aa, 0x2760, 0xa89c, 0xc840, 0xc86a, 0xc88d, - 0x40ae, 0x4832, 0xc92e, 0xc8c1, 0x47ff, 0x483f, 0x6271, 0x62db, - 0xe45b, 0xc83a, 0xc83e, 0xc7fe, 0x40ae, 0x4832, 0xc91f, 0xc83b, - 0xc93b, 0xc93a, 0xc9ae, 0xc9b4, 0xc9a9, 0xc9a1, 0xa996, 0xc995, - 0xc9d8, 0xc9b0, 0xc98e, 0xb346, 0xc9b1, 0xc98d, 0xc984, 0xca1f, - 0xc97f, 0xc9aa, 0xc978, 0xc96f, 0xc94e, 0xc943, 0xafa1, 0xc940, - 0xc985, 0xc93c, 0xc962, 0xc977, 0xc93f, 0xe6e2, 0xc9c3, 0xa3b6, - 0xc9bf, 0xca08, 0x527a, 0x52b8, 0x541f, 0x54fa, 0xd5dd, 0xcc7c, - 0xae74, 0x49cc, 0x4a50, 0x67a6, 0x67a7, 0xef9d, 0x49cb, 0x4a50, - 0xef9d, 0xca2e, 0xd018, 0x4a09, 0xccb3, 0xcc83, 0xa3ea, 0xe8eb, - 0xc955, 0xca4d, 0x4a31, 0xca6a, 0xca2d, 0xca62, 0xca60, 0x4a3e, - 0x4a3f, 0x55c1, 0xd5f3, 0xca0e, 0x4a5e, 0xca6d, 0xc9c6, 0x49d4, - 0xccb3, 0xca05, 0x4cba, 0xd5ad, 0x4a3a, 0xca49, 0xb8f1, 0xc980, - 0xca4c, 0xc9f8, 0xc9cd, 0x49f0, 0xca6a, 0xca3b, 0x4a4f, 0xca69, - 0x4a1a, 0xca49, 0xca32, 0x4a01, 0x4a3f, 0x55c1, 0xd5f3, 0x4a01, - 0x4a3e, 0x55c1, 0xd5f3, 0x4cd3, 0xdc37, 0xca57, 0x4c87, 0xcce0, - 0x4a1a, 0xca3a, 0x4526, 0x4a23, 0x52cf, 0xd607, 0xc9ef, 0x6834, - 0xe896, 0x4a33, 0xca69, 0x49cb, 0x49cc, 0xef9d, 0xca61, 0xca42, - 0x4a06, 0xca6d, 0xc9fe, 0xca51, 0xc9fd, 0xca70, 0x6839, 0x683a, - 0x683d, 0xe893, 0x4a33, 0xca4f, 0x49f0, 0xca31, 0xd3b7, 0x4a06, - 0xca5e, 0xca63, 0x4aae, 0xcac6, 0xab86, 0xe631, 0xab8a, 0xcaca, - 0xcab3, 0xcac5, 0xcab5, 0x4aaf, 0xcab0, 0x424e, 0x4255, 0x4a97, - 0xcabb, 0x424e, 0x4255, 0x4a93, 0xcabb, 0xcac4, 0xcaa9, 0xcaba, - 0xcac7, 0xca9d, 0xbd3c, 0xde30, 0x2be0, 0xcab6, 0x4a77, 0xcac6, - 0x4a91, 0xcab0, 0x4a91, 0xcaaf, 0xca8a, 0xca8e, 0x2be0, 0xcaad, - 0xcaa5, 0x424e, 0x4255, 0x4a93, 0xca97, 0x4076, 0xcac8, 0xca9c, - 0xca8d, 0x4a77, 0xcaae, 0xcaa6, 0x4076, 0xcac3, 0xca83, 0xa947, - 0x4aea, 0xdc4e, 0x9f2b, 0x6f8d, 0xef92, 0x1e26, 0x20a1, 0xae76, - 0x4af6, 0xcaf8, 0x9fdf, 0x5abc, 0xdc0a, 0x4ad6, 0xdc4e, 0x4ade, - 0xcaf8, 0x4ade, 0xcaf6, 0xcbea, 0xcbe4, 0x4b4d, 0xcbb0, 0x2173, - 0xa4b2, 0xcb46, 0xcb67, 0xcb8d, 0x218a, 0x218c, 0x3547, 0x4b56, - 0x4b5e, 0xcba3, 0x9f53, 0x4bc4, 0xd303, 0xc7e2, 0x424b, 0xcb8b, - 0x4bed, 0xcc60, 0xcc69, 0xcbb2, 0xcb14, 0xd9d4, 0x4b0b, 0xcbb0, - 0x3830, 0xba43, 0xcb7a, 0xcbc9, 0x3547, 0x4b27, 0x4b5e, 0xcba3, - 0xcc06, 0xcb82, 0xcbf3, 0xcbe9, 0xcc39, 0xcb8f, 0x3547, 0x4b27, - 0x4b56, 0xcba3, 0xcb15, 0xcbe0, 0xcc4c, 0xcb50, 0xcbd4, 0x4c3d, - 0x4c56, 0xcc64, 0xcbe0, 0xcc21, 0xcb59, 0xcbe6, 0x00f6, 0x1e2a, - 0xa00b, 0xcb3a, 0xcb1f, 0xcb5d, 0xae1a, 0xcc59, 0xa284, 0x3547, - 0x4b27, 0x4b56, 0xcb5e, 0x4c00, 0xd536, 0xcbcb, 0xcc5c, 0xcc6e, - 0xcc1e, 0xcc2b, 0xcbdb, 0x4b0b, 0xcb4d, 0xcb45, 0xd282, 0x4b35, - 0xd303, 0xd483, 0xcb51, 0x2327, 0xcba7, 0xad4c, 0xcc23, 0xcc0d, - 0xcb7c, 0xcc46, 0xcbac, 0x4b71, 0xcb7f, 0xcc12, 0xcb03, 0xcb86, - 0x4b5b, 0x4c01, 0xcc6d, 0xcafe, 0x4b3c, 0xcc60, 0xcc43, 0xcc5b, - 0xcc6c, 0xaf57, 0xcb5a, 0x4ba6, 0xd536, 0x4be9, 0xcc6d, 0x3caa, - 0xbeec, 0xcb58, 0xcbd3, 0x4c14, 0xd4d1, 0xcbe1, 0x4c11, 0xd4d1, - 0xcc6a, 0x3881, 0xba11, 0xcc2b, 0xcbaa, 0xc6d9, 0xcb80, 0xcbd1, - 0xa142, 0x4bab, 0xcc18, 0x35d7, 0xcc4f, 0xba90, 0xcb5c, 0xcb7e, - 0xae18, 0x4c52, 0xcc55, 0xcc5f, 0xcbee, 0xcbd7, 0xcb79, 0x35d7, - 0xcc31, 0xcc58, 0xcc40, 0x55ae, 0xd5ea, 0xcc40, 0x4b7e, 0xcc64, - 0x4c50, 0xd5e4, 0xcb93, 0xcbef, 0xcba8, 0xcc41, 0x4b3c, 0xcbed, - 0x4b7e, 0xcc56, 0xcb3e, 0xcc16, 0xcbf1, 0x4be9, 0xcc01, 0xcba9, - 0x2401, 0xefa5, 0xccf4, 0xe85e, 0xc9c8, 0xc9d5, 0x4a45, 0xcce0, - 0xccb9, 0xeea4, 0xeecf, 0x5083, 0xd085, 0xccf6, 0xccf2, 0xccb5, - 0x1ffc, 0xeb3b, 0xc1d0, 0x2986, 0x299d, 0x2a24, 0xccda, 0xccde, - 0x36f2, 0x6eaf, 0x6eb4, 0xeeb9, 0xcce7, 0x49d4, 0xca09, 0xcca4, - 0xcc8b, 0xca17, 0xccc9, 0xccdd, 0x6762, 0x6eaa, 0x6eab, 0x6eb5, - 0xeeba, 0xe931, 0xccbd, 0xe92c, 0x4a40, 0xdc37, 0xe93b, 0x2986, - 0x299d, 0x2a24, 0xcca7, 0xccc1, 0xccaa, 0x4a45, 0xcc87, 0xe94e, - 0xccae, 0x26e2, 0xa6e3, 0xcc9d, 0xcc74, 0xcc9c, 0x1e1d, 0x4cf9, - 0x4d72, 0xce9f, 0x4cf8, 0xce9f, 0xccfe, 0x1fc2, 0x4e18, 0x4e4b, - 0xce6b, 0x229f, 0xccff, 0x4cfa, 0xcea0, 0x229f, 0xccfc, 0xceaa, - 0xcea3, 0xcea6, 0xcea2, 0xcea1, 0xcea5, 0xcea8, 0xceab, 0xceb9, - 0xceb3, 0xcebd, 0xcebe, 0xceaf, 0xceb0, 0xcebc, 0xceb1, 0x4d8b, - 0xceae, 0x2e0b, 0xceb8, 0xcea7, 0xceb7, 0xcead, 0x4d4d, 0xceb4, - 0xceba, 0xcdb7, 0xcd2e, 0xcdca, 0x4da2, 0xcef8, 0x324e, 0xcd25, - 0x4e32, 0x4e8d, 0x4e9d, 0xcf27, 0xcec6, 0xcec2, 0xcec1, 0xcec5, - 0xcebb, 0xcecd, 0xcec0, 0xcecb, 0xced0, 0xcecc, 0xcec8, 0xaf26, - 0xcec4, 0xcd97, 0x4eca, 0xe77d, 0xae15, 0xcea9, 0x4d93, 0xcecf, - 0xcd1d, 0xced7, 0xcec1, 0xced3, 0x34a7, 0x4d76, 0xcedd, 0xce8a, - 0xcdea, 0x4e27, 0xcee6, 0x4ed4, 0xd8b4, 0xcede, 0xcedc, 0xceda, - 0x4dab, 0x4dda, 0x4ebf, 0xcf10, 0xd32f, 0xced9, 0xced2, 0xced6, - 0x4d82, 0xcedf, 0x1e1d, 0xccf8, 0xcedb, 0x4e6a, 0xced8, 0x34a7, - 0x4d55, 0xcedd, 0xce36, 0x4e6d, 0xd812, 0xcee2, 0xced1, 0x4d71, - 0xcedf, 0xcee1, 0xcee0, 0xcee8, 0xcee3, 0xcd18, 0xcee4, 0xcee5, - 0x3346, 0xb8b1, 0x4d4c, 0xcecf, 0xcd45, 0x4e7c, 0xcee7, 0x4e8c, - 0x4eed, 0xdce1, 0xcefc, 0xcf0d, 0x4dd1, 0xceff, 0x4d2c, 0xcef8, - 0xcefb, 0x4d64, 0x4dda, 0x4ebf, 0xcf10, 0xcef6, 0xcef4, 0xcef9, - 0xcefe, 0xceb2, 0xcf51, 0x4e43, 0xcef7, 0x23d5, 0xcf00, 0xaf69, - 0xcd23, 0xceb6, 0xcefa, 0xceee, 0xcefd, 0x4e5b, 0xcef0, 0xceeb, - 0xcef5, 0xcef2, 0xcf01, 0xcd27, 0xceef, 0xcde1, 0x303b, 0x3460, - 0x4deb, 0xce3d, 0xce41, 0x4da0, 0xceff, 0x4dd6, 0xceea, 0xcef1, - 0xce83, 0x4dd2, 0xceea, 0xcf03, 0xcf04, 0xcf02, 0x4d64, 0x4dab, - 0x4ebf, 0xcf10, 0xcef5, 0xcf09, 0xcf0e, 0xcf14, 0x4dcd, 0xcf17, - 0x4e01, 0xcf18, 0xd913, 0xcf0c, 0xcf16, 0xcf13, 0xcd5a, 0x303b, - 0x3460, 0x4dcf, 0xce3d, 0xcf05, 0xceac, 0xcf11, 0xcf08, 0xcec3, - 0xcf0f, 0xcf07, 0xd1f4, 0x4e15, 0xcf0a, 0x4de3, 0xcf18, 0x4e69, - 0xcef3, 0xd426, 0xcf19, 0xcf22, 0xcf12, 0xcec9, 0xcf23, 0x4dfc, - 0xcf0a, 0xcf1e, 0x4cfb, 0x4e4b, 0xce6b, 0xcf1a, 0xcf1c, 0xcf1f, - 0xcf1b, 0x23bf, 0xc70c, 0x4e31, 0xceb5, 0x4d5b, 0xcee6, 0xae4c, - 0xcf1d, 0xcf21, 0xcf29, 0x4e26, 0xceb5, 0x4d2f, 0x4e9d, 0xcf27, - 0xcea4, 0xcf26, 0x4d77, 0xe9bd, 0xcf15, 0xcf25, 0x303b, 0x3403, - 0x3460, 0x4dcf, 0xcdeb, 0xcee9, 0xcdd0, 0x4db3, 0xcef7, 0x4e70, - 0xcf2b, 0xcf2a, 0xce66, 0x4e8e, 0x4e96, 0xcea4, 0x4cfb, 0x4e18, - 0xce6b, 0x4e61, 0xcee3, 0xcf2f, 0xcec7, 0xcf2e, 0x1f1e, 0xa098, - 0xcffb, 0xcf2d, 0xcdbd, 0xced5, 0x4e4d, 0xcee3, 0xcf0b, 0xce82, - 0xce48, 0x4e04, 0xcef3, 0x4d75, 0xced8, 0x4cfb, 0x4e18, 0xce4b, - 0x4d78, 0x5327, 0xd812, 0x4f30, 0xe7c1, 0xcf33, 0x4e45, 0x4f2b, - 0xcf32, 0xcf34, 0xcece, 0x4d99, 0xcee7, 0xcf24, 0xcf31, 0xb9db, - 0xce64, 0xcdd5, 0xe8a3, 0xcf2c, 0x4e98, 0xcf35, 0x4d56, 0xcea9, - 0x4d9a, 0x4eed, 0xdce1, 0xcd2f, 0x4e4a, 0x4e96, 0xcea4, 0x4e92, - 0xcf20, 0x4e8f, 0xcf20, 0xcf28, 0xb24d, 0x4e4a, 0x4e8e, 0xcea4, - 0x4e89, 0xcf35, 0xcf06, 0x4d2f, 0x4e32, 0xcf27, 0x4cf8, 0xccf9, - 0xccfe, 0xcd06, 0xcd05, 0xcd02, 0x4e34, 0x4e4a, 0x4e8e, 0xce96, - 0xcd07, 0xcd04, 0xcd1a, 0xcd08, 0x4d4b, 0xce8a, 0xcd00, 0xcd09, - 0xcdef, 0xcd1c, 0xcd18, 0xcd14, 0xcd15, 0xcd17, 0xcdb1, 0xcd0d, - 0xcd1d, 0x4e26, 0xce31, 0xcdb8, 0xcd1b, 0xcd19, 0xcd0b, 0xcd21, - 0xcd35, 0xcd16, 0xcd10, 0xcd13, 0x4d64, 0x4dab, 0x4dda, 0xcf10, - 0xcd3a, 0x4d32, 0xcd4f, 0xcd31, 0xcdf4, 0xcd44, 0xcd33, 0xcd30, - 0xce54, 0xcd42, 0xce10, 0xcd46, 0xcd3c, 0xcd40, 0xcd39, 0xce79, - 0x4d4c, 0xcd93, 0xcd3f, 0xcd81, 0xcd68, 0xcd50, 0xcd5d, 0x4e5e, - 0xe076, 0xcd70, 0xcd4e, 0x4d75, 0xce6a, 0xcd66, 0xcd62, 0xcd73, - 0xcd61, 0x34a7, 0x4d55, 0xcd76, 0xcd5e, 0x4d71, 0xcd82, 0xcd86, - 0xcd83, 0xcd79, 0x4d89, 0x4e4d, 0xce61, 0xcd8c, 0xcd8f, 0x4d5b, - 0xce27, 0x4d99, 0xce7c, 0xcd88, 0xce3e, 0x4dd2, 0xcdd6, 0xcdbe, - 0x4d9a, 0xce8c, 0xcdba, 0xcdcb, 0xcdbd, 0xcdd4, 0xcdc4, 0x4e04, - 0xce69, 0xcdad, 0x4dbf, 0xcddc, 0xcdac, 0x4db3, 0xce43, 0x4d2c, - 0xcda2, 0xcdaf, 0xcdb9, 0xcda3, 0xcd9c, 0xcdbb, 0xcdb0, 0x4da0, - 0xcdd1, 0xcdb4, 0xcdc7, 0xcdd9, 0xcdd7, 0xcdd8, 0xcdec, 0xce9c, - 0xcdf9, 0xcdf2, 0xcddd, 0x4dfc, 0xce15, 0xce62, 0xcde6, 0xcd9e, - 0xcdde, 0xcdf6, 0x4d64, 0x4dab, 0x4dda, 0xcebf, 0xcdf1, 0xce0b, - 0xcde9, 0xcde0, 0xce37, 0xcde8, 0xcde1, 0x4de3, 0xce01, 0xce09, - 0xce1b, 0xce1f, 0xce1d, 0xce2b, 0xce17, 0xce1e, 0x4e8f, 0xce92, - 0xce2d, 0xce0a, 0xce11, 0xce7d, 0xce39, 0xce35, 0x4d2f, 0x4e32, - 0xce9d, 0xce93, 0xce2e, 0xce46, 0x4e45, 0xce70, 0xce88, 0xce5a, - 0xce55, 0xce52, 0x4e6e, 0xe7c1, 0xce7e, 0xce70, 0xce6f, 0xce73, - 0x4e89, 0xce98, 0x4f3b, 0x4f50, 0xe475, 0xa378, 0xc4e8, 0xc0b0, - 0x3b20, 0xcf3c, 0xcf36, 0x3b20, 0xcf3a, 0x46cb, 0x6262, 0xe4b5, - 0x44f6, 0xc501, 0x4516, 0xcf4c, 0xba3d, 0x275b, 0x28b0, 0x28b5, - 0x28dc, 0xcf4e, 0x4516, 0xcf42, 0x275b, 0x28b0, 0x28b5, 0x28dc, - 0xcf48, 0x4f36, 0xe475, 0x4db2, 0x4f52, 0xcf53, 0x4f51, 0xcf53, - 0x4f51, 0xcf52, 0x2570, 0x26c9, 0xcf85, 0x4f70, 0xcf78, 0xcf77, - 0x3683, 0xdfa0, 0x4f5a, 0xcf78, 0xcf86, 0x208c, 0x69e1, 0xea82, - 0xcf80, 0xcf62, 0x4f5a, 0xcf70, 0xcf76, 0x4f88, 0xd98a, 0x21aa, - 0xae42, 0xcf57, 0xcf74, 0x4f88, 0x5989, 0xd98a, 0x4f81, 0x4f87, - 0x5989, 0xd98a, 0xd288, 0xd288, 0xcf97, 0xcf91, 0xcf90, 0xcf8c, - 0xcfa5, 0xcfa8, 0xcfa4, 0xcfa3, 0xcf9f, 0xcfa1, 0x9e49, 0x217b, - 0xe90a, 0xcfb9, 0x4fb6, 0xd1bb, 0x4fb4, 0xd1bb, 0xcfae, 0x4fc5, - 0xcfe4, 0x4fc4, 0xcfe4, 0xcfe0, 0x9e60, 0xcff9, 0xcffd, 0xcfec, - 0xcfc6, 0x4fc4, 0xcfc5, 0xc3a9, 0xcfda, 0xcffa, 0xc796, 0xcfd8, - 0xcff1, 0x4e59, 0xe8dc, 0xcfd9, 0xc1ff, 0xb537, 0xd008, 0xd007, - 0xd00b, 0xd00a, 0xc54a, 0xc9d0, 0xb7b1, 0xe504, 0xd02e, 0xd5c9, - 0xd02c, 0x39c8, 0xe392, 0xd027, 0xd022, 0xbacc, 0xd073, 0xb065, - 0xd043, 0xdead, 0x504c, 0x5077, 0xdec4, 0xd076, 0xd03c, 0xd07e, - 0x5040, 0x5077, 0xdec4, 0xd079, 0x5068, 0xd06f, 0x2723, 0xa7a9, - 0xe5fb, 0x28fb, 0xaa7f, 0x5066, 0x506a, 0xd070, 0x5061, 0x506a, - 0xd070, 0x5054, 0xd06f, 0xd075, 0x5061, 0x5066, 0xd070, 0xd06f, - 0x2abf, 0xb127, 0xd06f, 0x5054, 0x5068, 0x506b, 0xd06e, 0x5061, - 0x5066, 0xd06a, 0xa8f0, 0xd038, 0x242c, 0xd07d, 0xd069, 0xd042, - 0x5040, 0x504c, 0xdec4, 0xd04d, 0x242c, 0xd074, 0xd04b, 0x4c9b, - 0xd085, 0x4c9b, 0xd083, 0xd088, 0xd087, 0xab8d, 0xd0af, 0x5178, - 0xd193, 0xd135, 0xd19a, 0xd0da, 0xc5a3, 0xeaaf, 0x508e, 0xd0bb, - 0xa3b7, 0x3bd3, 0xd8ac, 0xe91a, 0xd0af, 0xd14e, 0xd16b, 0xd139, - 0x5105, 0x5107, 0xd10b, 0x1f37, 0xa191, 0x51bb, 0xd1bd, 0xb3f9, - 0xd0a7, 0xa2dd, 0x585a, 0xeb0d, 0xb727, 0xd156, 0xd1da, 0x511b, - 0xde01, 0xd1d9, 0xd1a0, 0x5106, 0xd13a, 0x50c1, 0xd10b, 0x5103, - 0xd13a, 0xd0c1, 0xd109, 0xd108, 0x50c1, 0xd105, 0xd1be, 0x51d3, - 0x51df, 0xead2, 0xd1cd, 0x5133, 0xd166, 0xd1bf, 0xd1e0, 0xa43b, - 0x5173, 0xde0b, 0x50eb, 0xde01, 0xa507, 0x9fee, 0xd131, 0xd12b, - 0x2318, 0x5111, 0xd166, 0xd0a1, 0xd161, 0xd1c9, 0x45ee, 0xd0c0, - 0x5103, 0xd106, 0xd157, 0xa00e, 0x51c8, 0xd1d8, 0xe183, 0xd0be, - 0xd0e8, 0xd13e, 0xd195, 0xd1a3, 0xd136, 0x2318, 0x5111, 0xd133, - 0xd0bf, 0xef76, 0xe84b, 0x511a, 0xde0b, 0x50a0, 0xd193, 0xd1a9, - 0xd183, 0xea30, 0xeac8, 0xd190, 0xd17d, 0xd182, 0xd1cf, 0x50a0, - 0xd178, 0xd158, 0xd0a4, 0xd0f6, 0xd15f, 0xecd5, 0xd17b, 0xe94d, - 0x6ac4, 0xead3, 0x4fb4, 0x4fb6, 0x50c6, 0xd1bd, 0x50c6, 0xd1bb, - 0xd10d, 0xd113, 0xd1cb, 0x4655, 0xc670, 0x514a, 0xd1d8, 0xd138, - 0xd1c0, 0xd110, 0x5191, 0xead5, 0x510f, 0xd1df, 0x514a, 0xd1c8, - 0xd0ed, 0xd0ea, 0xd1e2, 0xc66f, 0x510f, 0xd1d3, 0xd114, 0xd1dc, - 0xa367, 0x9e34, 0xd1f0, 0xd1ed, 0xcdfb, 0x23f0, 0xa76e, 0xdf3f, - 0x9e0e, 0xa174, 0x1e3e, 0x3319, 0xb4e7, 0xb5e7, 0x3368, 0xd20e, - 0xd20d, 0xd213, 0xd210, 0x5217, 0x62ea, 0xe4fa, 0x5216, 0x62ea, - 0xe4fa, 0xe928, 0xd264, 0xd239, 0x523b, 0xd26b, 0xd266, 0xd259, - 0xb7c1, 0xd24a, 0xd229, 0x522e, 0xd26b, 0xd236, 0xd231, 0xba2f, - 0x3a79, 0xd26a, 0xd223, 0xd230, 0x3a79, 0xd263, 0x522e, 0xd23b, - 0xd271, 0x26cf, 0xd270, 0x5276, 0x5277, 0x5c53, 0xdc54, 0x5273, - 0x5277, 0x5c53, 0xdc54, 0x5273, 0x5276, 0x5c53, 0xdc54, 0xd279, - 0xd278, 0x49c7, 0x52b8, 0x541f, 0x54fa, 0xd5dd, 0xcbc0, 0x4f8a, - 0xcf8b, 0xd28c, 0xd28b, 0xa349, 0xd58c, 0xd56a, 0xd606, 0xd2b2, - 0xd2b1, 0x49c7, 0x527a, 0x541f, 0x54b7, 0x54fa, 0x5553, 0xd5dd, - 0xa20d, 0xd4ef, 0x1e42, 0xa208, 0xd466, 0xd5f6, 0xd3a7, 0xd407, - 0xd4bc, 0xd2e7, 0x26cc, 0x4526, 0x4a4c, 0x5607, 0xd613, 0xd351, - 0xd2e2, 0xd2e1, 0xd2ce, 0xa040, 0x55b2, 0xd60b, 0xd393, 0xd3f0, - 0x4b35, 0xcbc4, 0x2179, 0xd332, 0xd396, 0xd622, 0xd526, 0xa84b, - 0xc162, 0xd354, 0x4e6d, 0xd812, 0xcd65, 0xd438, 0x2179, 0xd30a, - 0xd34a, 0xd395, 0xd346, 0x1f9f, 0xd5a6, 0xd2d0, 0xd318, 0x2e84, - 0xd38a, 0xd598, 0xd3a2, 0xd558, 0xd4fd, 0xd434, 0xd54e, 0xd588, - 0x5415, 0xd5ba, 0x46ea, 0x5569, 0xd62f, 0x3804, 0xb9ae, 0xd477, - 0xbece, 0xc296, 0xc192, 0xd541, 0xd5ce, 0xd4c0, 0xd52d, 0xd552, - 0xd452, 0xd464, 0x546f, 0x55ac, 0xd5e5, 0xdc46, 0xb357, 0xd510, - 0x3d96, 0xd49e, 0x2e84, 0xd358, 0xd2fa, 0xd347, 0xd30e, 0xa50d, - 0xd35a, 0xd2cb, 0xd40a, 0xd4ee, 0xd494, 0xd435, 0xd3df, 0xd59f, - 0x4372, 0xca6b, 0xd555, 0xc469, 0x6d2c, 0x6daf, 0xee0e, 0x5493, - 0xd4f4, 0xd3be, 0xd3bd, 0xd458, 0xb79c, 0x235c, 0xd514, 0xd3b5, - 0xa807, 0x234e, 0x2d0b, 0xd550, 0xd2fd, 0xd506, 0x2eb5, 0x544a, - 0xd4ed, 0xd445, 0xd2cc, 0xd3b1, 0xd420, 0xd4f1, 0x5360, 0xd5ba, - 0xd600, 0xd63f, 0x49c7, 0x527a, 0x52b8, 0x54fa, 0xd5dd, 0xd40c, - 0x56cd, 0xd7a2, 0x25b6, 0xc1df, 0xce08, 0xd56d, 0xd5a9, 0x9e07, - 0x557f, 0x55fc, 0xd610, 0xd35d, 0xd3b4, 0xd330, 0xd55a, 0xd3f9, - 0xa3f6, 0x2eb5, 0x53f4, 0xd4ed, 0xd36d, 0xc740, 0xd3d1, 0xb939, - 0xd593, 0x46d6, 0xd4cb, 0xd36e, 0xd2c7, 0xd58a, 0xa85f, 0xb934, - 0xd36f, 0xd525, 0xd364, 0xd515, 0xcbc6, 0xd546, 0xd562, 0xd523, - 0xd51e, 0xb41c, 0x53bc, 0xd4f4, 0xd3b3, 0x31de, 0x3e95, 0x3fdb, - 0xc7c7, 0x3d96, 0xd385, 0xaf60, 0xd533, 0xd2b8, 0xd2cd, 0xd36a, - 0xae2d, 0x46d6, 0xd462, 0x4c11, 0xcc14, 0xd5cd, 0xd58a, 0xd63a, - 0xd577, 0xe3a3, 0xea40, 0x2eb5, 0x53f4, 0xd44a, 0xd3b2, 0xd2c1, - 0xd40d, 0x53bc, 0xd493, 0x49c7, 0x527a, 0x52b8, 0x541f, 0xd5dd, - 0xd35c, 0x298d, 0xa9f8, 0xd3f1, 0xd37b, 0xd84a, 0x235c, 0xd3d4, - 0xd482, 0xd48c, 0xd48b, 0xd471, 0xd311, 0xd36b, 0xd5bc, 0xd53b, - 0xd4a8, 0xeebb, 0x2328, 0xd5cf, 0x4ba6, 0xcc00, 0xd594, 0xd61e, - 0xd5fa, 0xd532, 0x55f9, 0xdb6a, 0xd368, 0xd487, 0x554b, 0xd602, - 0x554a, 0xd602, 0xd35e, 0x234e, 0xd3ef, 0xd36c, 0xd2b8, 0xd3b8, - 0xd35b, 0xd43c, 0xd489, 0xd361, 0xd29c, 0xd427, 0xd580, 0xd604, - 0x55f4, 0xd60a, 0xd4e3, 0x5431, 0x55fc, 0xd610, 0xd570, 0xd35f, - 0x546a, 0xd4df, 0xd297, 0xa9dc, 0xd460, 0xd537, 0x26ed, 0xa712, - 0xd359, 0xd3b6, 0x1f9f, 0xd350, 0xd428, 0x55b0, 0xd60d, 0x536f, - 0xd5e5, 0xca17, 0x4c54, 0xd5ea, 0xd5f7, 0x55ab, 0xd60d, 0x52f9, - 0xd60b, 0x5360, 0xd415, 0xd52f, 0x4a01, 0x4a3e, 0x4a3f, 0xd5f3, - 0x1e1b, 0x23e2, 0x3a37, 0xbb09, 0x201f, 0x2fa3, 0xd024, 0xd4dd, - 0xd369, 0x2328, 0xd535, 0xd61a, 0x49c7, 0x527a, 0x52b8, 0x541f, - 0xd4fa, 0x563d, 0xd646, 0xcc58, 0x536f, 0xd5ac, 0x4c54, 0xd5ae, - 0x4a01, 0x4a3e, 0x4a3f, 0xd5c1, 0x5574, 0xd60a, 0xd2c8, 0xd5af, - 0x553c, 0xdb6a, 0xd53a, 0x5431, 0x557f, 0xd610, 0xd41a, 0x554a, - 0xd54b, 0xd572, 0xd2a6, 0x4526, 0x4a4c, 0x52cf, 0xd613, 0x5574, - 0xd5f4, 0x52f9, 0xd5b2, 0x55ab, 0xd5b0, 0x6a65, 0xeaa5, 0x5431, - 0x557f, 0xd5fc, 0x52cf, 0xd607, 0xba97, 0xd5d3, 0xd539, 0xd30f, - 0xa170, 0x46ea, 0xd361, 0xd4e0, 0x55df, 0xd646, 0xd41d, 0xa914, - 0x55df, 0xd63d, 0x1e55, 0xd65d, 0xd65c, 0xb16e, 0xc307, 0x21e6, - 0xa904, 0xa47c, 0x565a, 0xd65b, 0x5657, 0xd65b, 0x5657, 0xd65a, - 0xd64f, 0x1e55, 0xd64e, 0xa3f7, 0xd666, 0xd665, 0x9e8f, 0x567a, - 0xd7f2, 0xd66f, 0xd7e3, 0xd66c, 0xd768, 0x2b83, 0xd6c7, 0xd66b, - 0xd771, 0xe6d6, 0xd766, 0xd806, 0xd755, 0xd7fb, 0xd79e, 0xd801, - 0x57a1, 0xd7c1, 0xd739, 0xd72f, 0x5745, 0x5836, 0xd83a, 0xd788, - 0xd6d4, 0xd814, 0xd6ba, 0xec8d, 0xd706, 0xd6d4, 0xd6a6, 0x2b83, - 0xd675, 0xd831, 0x5424, 0xd7a2, 0x5807, 0xd823, 0xd7f6, 0x5698, - 0x56b4, 0xd716, 0xef03, 0xd83b, 0xd7a7, 0xd7c4, 0xd6fa, 0xd7ef, - 0xd784, 0xd810, 0xd6f1, 0xd715, 0x5c9d, 0xdd1d, 0xd82d, 0xd6ac, - 0xd782, 0xd6fb, 0xd6d4, 0xd778, 0x574b, 0xd81f, 0xd68c, 0xd68b, - 0xeb4e, 0x5695, 0x5836, 0xd83a, 0x577f, 0xd805, 0xd7c8, 0xd7ec, - 0x5721, 0xd81f, 0xd80d, 0xd680, 0xc32c, 0xd815, 0xd67e, 0xd671, - 0xc33f, 0xd67b, 0xd717, 0xd7bb, 0xd811, 0x5747, 0xd805, 0xd7bf, - 0xd70b, 0xd6f3, 0xd696, 0xd78e, 0xd78d, 0xd7fb, 0x5827, 0xd839, - 0xd682, 0xd68a, 0x5424, 0xd6cd, 0x3594, 0xb59e, 0xd6ef, 0xd7ce, - 0xd77c, 0xd780, 0xd68a, 0xd6f0, 0xd7c7, 0xd7c6, 0xd748, 0xd7a8, - 0xd828, 0xd80e, 0xd66e, 0xd749, 0xd6f2, 0xd66b, 0xd6cf, 0xd821, - 0xd80f, 0x5681, 0xd798, 0xd683, 0x5747, 0xd77f, 0xd67f, 0x56ce, - 0xd823, 0xd74e, 0xd7d2, 0xd7f9, 0xd6f4, 0xd77e, 0x4d78, 0x4e6d, - 0xd327, 0xd69d, 0xd761, 0x5721, 0xd74b, 0xd7f8, 0xb0f7, 0x56ce, - 0xd807, 0x5799, 0xd839, 0xd7cf, 0xd702, 0xd6ca, 0x5695, 0x5745, - 0xd83a, 0x5799, 0xd827, 0x5695, 0x5745, 0xd836, 0xd6ee, 0x4383, - 0xdc9c, 0xd844, 0xd842, 0xe1c1, 0x1e51, 0x1f17, 0xc73e, 0x24af, - 0xa580, 0xd511, 0xb72f, 0x2563, 0x5858, 0xe29c, 0xa40c, 0xadf7, - 0x2563, 0x5854, 0xe29c, 0xd0e1, 0x236b, 0xd85e, 0x2675, 0x585f, - 0xe053, 0xa1b2, 0x236b, 0xd85b, 0x2675, 0x585c, 0xe053, 0xd864, - 0xd863, 0xd8dc, 0xe336, 0xd96f, 0xd89e, 0xa3ea, 0xd8b5, 0xd956, - 0x2acb, 0x2b1d, 0xd8ca, 0xd918, 0xae12, 0x596a, 0x67c8, 0xe7e4, - 0xd86e, 0x3bd3, 0xd0b2, 0xd972, 0xeef9, 0xd94f, 0x4d5d, 0xd8e4, - 0xd87d, 0xd8cc, 0xd8dd, 0xd960, 0xd90c, 0xd885, 0xd8b7, 0x58e1, - 0xe1cc, 0xd8e0, 0xd865, 0xd8c5, 0xd8d9, 0x58cf, 0xe1cc, 0xd933, - 0xd95d, 0x58b4, 0xd932, 0xd947, 0x5912, 0xd943, 0xb707, 0xd92b, - 0xd8f5, 0xd8f4, 0xa236, 0xa90d, 0xb0fc, 0xd8c8, 0xd90f, 0xd90e, - 0x58e6, 0xd943, 0xcde5, 0xd886, 0xd938, 0xd94c, 0xd8ed, 0xd8e4, - 0xd8e2, 0xd964, 0xd91b, 0x9eb5, 0x58e6, 0xd912, 0xd8e5, 0xd91d, - 0xb742, 0xd8af, 0xd974, 0xd884, 0xd8e3, 0xd8c6, 0xd934, 0xd89c, - 0xb446, 0xb4f7, 0xd86c, 0xd8ad, 0x5955, 0xd97d, 0xd974, 0x2364, - 0xa365, 0x290d, 0xafa9, 0xe738, 0xb838, 0x4f87, 0x4f88, 0xd98a, - 0x4f81, 0x4f87, 0x4f88, 0xd989, 0xd9c1, 0xaf01, 0xd9c3, 0xd9c4, - 0x599a, 0x59ba, 0xd9c9, 0x5994, 0xd9c5, 0x5993, 0xd9c5, 0x470e, - 0xd9c6, 0xd9c7, 0x5990, 0x59ba, 0xd9c9, 0xd9cb, 0xd9cd, 0xd9ce, - 0x59bd, 0xd9c8, 0xc779, 0x9eb2, 0xd9ca, 0xd9cf, 0xd9b7, 0xd9d0, - 0x59c0, 0xd9c2, 0xd9bc, 0x59b0, 0xd9d1, 0x358d, 0x5990, 0x599a, - 0xd9c9, 0xd9b6, 0x59a7, 0xd9c8, 0xd9cc, 0x59b3, 0xd9c2, 0xd98b, - 0x59b3, 0xd9c0, 0xd98e, 0xd98f, 0x5993, 0xd994, 0x470e, 0xd996, - 0xd998, 0x59a7, 0xd9bd, 0x5990, 0x599a, 0xd9ba, 0xd9ac, 0xd9a1, - 0xd9bf, 0xd9a5, 0xd9a6, 0xd9af, 0xd9b2, 0xd9b7, 0xcb4b, 0x59ef, - 0xd9f6, 0xb2b5, 0xd9f4, 0xd9e7, 0xd9f8, 0xd9e3, 0x59d7, 0xd9f6, - 0xd9de, 0x59d7, 0xd9ef, 0xd9e6, 0x59fd, 0xd9ff, 0x59f9, 0xd9ff, - 0x59f9, 0xd9fd, 0x5a01, 0xdba0, 0x5a00, 0xdba0, 0xdba2, 0xdba3, - 0xdba1, 0xdbaf, 0xdba7, 0xdba8, 0xdba6, 0xdbb1, 0xdbad, 0xdbaa, - 0xdbab, 0x3258, 0xdbac, 0xdbb0, 0xdabe, 0xdbb9, 0xdbb6, 0xdbbc, - 0x47e4, 0xc7e7, 0x241f, 0xa656, 0xbb23, 0xdbc0, 0xdbb7, 0xdbbb, - 0xdbbf, 0x9fe1, 0xdbbe, 0xdbb8, 0x5b6f, 0xdbd1, 0xdbc9, 0x24ec, - 0xdbc3, 0xdbca, 0xbce8, 0x5b49, 0xdbc1, 0xda6c, 0xdbc2, 0x2467, - 0xdbcb, 0x246a, 0xa492, 0xa46d, 0xdbb5, 0xdbc8, 0xdbd2, 0xdbcf, - 0xdbc4, 0xdbd0, 0xdbc7, 0xdbce, 0xdbc5, 0xdbcd, 0xdb8b, 0xa48f, - 0xdbe9, 0xdbe2, 0xdbe3, 0xdbd5, 0xabdf, 0xdbd7, 0xdbe7, 0x5a3d, - 0xdbdf, 0xdbe1, 0xdbe0, 0xdbd8, 0x5b6e, 0xdbdd, 0xdbe5, 0xdbe6, - 0xdbdc, 0xdbd9, 0xdbd6, 0xdbd4, 0xdbdb, 0xdbd3, 0xa938, 0xdb7d, - 0xdb04, 0xafd7, 0xdba4, 0xdbf3, 0xdbf6, 0xdbde, 0x3096, 0xb102, - 0x2500, 0xdbf1, 0xdbee, 0xdbed, 0xdbda, 0xdbeb, 0xdbec, 0xdbef, - 0xdbf0, 0xdbf5, 0xdbf2, 0x5aac, 0xdbf4, 0x5aaa, 0xdbf4, 0x5b80, - 0xdbfb, 0xa531, 0xdc01, 0xdbfe, 0xdc07, 0xdbfd, 0x4ae9, 0xdc0a, - 0xda1a, 0xdc03, 0xdc04, 0xdc06, 0xdc08, 0xdbff, 0xdbf7, 0x5aeb, - 0xdc0f, 0xdbe4, 0xdbf9, 0xdbfc, 0xdc05, 0xdbba, 0xdc02, 0xdc00, - 0xdc0d, 0xdc1e, 0xdc1d, 0x5afc, 0xdc16, 0x5b1a, 0xdc25, 0xdbe8, - 0x5b8d, 0xdc14, 0xdc1b, 0xdc10, 0xdb5c, 0x5acc, 0xdc0f, 0x242f, - 0x2518, 0x2553, 0x2554, 0x255f, 0xe5d9, 0xdc15, 0xdc18, 0xdbb3, - 0x3697, 0xdc19, 0xdc0c, 0x5bbd, 0xe8a8, 0xdbf8, 0xdc1a, 0x5ae0, - 0xdc16, 0xdbfa, 0xdc0b, 0xdc12, 0xdc13, 0xda8a, 0xdbcc, 0xdc0e, - 0xbb4c, 0xdc1c, 0xdc27, 0xdc11, 0xdc21, 0xdc24, 0xdc26, 0x5ae1, - 0xdc25, 0xdbb2, 0xdc22, 0x5b21, 0xdc23, 0x5b20, 0xdc23, 0xdc1f, - 0xa546, 0x5b81, 0xdc2a, 0xdc2c, 0x5b7e, 0xdc2b, 0xa5f9, 0xdbb4, - 0xdc28, 0x247c, 0xa611, 0xdc29, 0x24d7, 0xa629, 0x5a3c, 0xdbc1, - 0xdbb9, 0xdc32, 0xdba5, 0xa642, 0x5b5b, 0xdc2e, 0xdbc6, 0xdc2f, - 0xdc2d, 0x5b56, 0xdc2e, 0x5ae9, 0xdc31, 0xa66a, 0x553c, 0xd5f9, - 0x2661, 0xdc35, 0xbbc1, 0x5a71, 0xdbdd, 0x5a33, 0xdbd1, 0xdbae, - 0xa584, 0x5b93, 0xdba9, 0xdc34, 0xb2a4, 0xdbea, 0x46d1, 0xc6e3, - 0xda89, 0x5b2d, 0xdc2b, 0x5aad, 0xdbfb, 0x5b2b, 0xdc2a, 0x5b9a, - 0xdd5e, 0xdc09, 0x23d8, 0xa909, 0xda5f, 0x2bb4, 0xe1bc, 0x5ae4, - 0xdc14, 0x1ec7, 0x5b90, 0xe6e0, 0x5b8e, 0xe6e0, 0xdc17, 0x5b72, - 0xdba9, 0xdc30, 0xdc36, 0x5b83, 0xdd5e, 0xdc20, 0xdc33, 0x5a00, - 0xda01, 0xda08, 0xda02, 0xda03, 0xda8d, 0xdb4f, 0xda10, 0xda0c, - 0xda0e, 0x5b72, 0xdb93, 0xda15, 0xda16, 0x3258, 0xda17, 0xda13, - 0xdb70, 0xda0a, 0xda18, 0xda12, 0xdb1b, 0xdaf1, 0xdb33, 0xda4e, - 0xda1d, 0xda25, 0xda31, 0x5a1b, 0xdb4c, 0xdad6, 0xda29, 0xda1f, - 0x5af7, 0xe8a8, 0xda2d, 0xda2a, 0xda23, 0x5a3c, 0xdb49, 0xda41, - 0xda36, 0xda55, 0xda5b, 0xdb58, 0xda57, 0xda50, 0xda34, 0xda3a, - 0xda46, 0xdb05, 0xda5e, 0xda58, 0xda54, 0xda56, 0x5a33, 0xdb6f, - 0xda52, 0xda86, 0xda84, 0xda66, 0xda7f, 0xda69, 0xda70, 0xda7c, - 0xdaa0, 0xda85, 0xda75, 0x5a71, 0xdb6e, 0xda95, 0xda6c, 0xda6e, - 0xda6d, 0xda62, 0xda63, 0xdacd, 0xda72, 0xda73, 0xda6b, 0xdae2, - 0xda61, 0xdb78, 0xdaa1, 0xdaa3, 0xda9e, 0xda9a, 0x309e, 0xdaa4, - 0xdaa5, 0x2500, 0xda98, 0xdaa8, 0xda91, 0x5aaa, 0xdaac, 0xdaa6, - 0xda92, 0xdacb, 0xdaf8, 0xdacf, 0xdafe, 0x5aad, 0xdb80, 0xdad1, - 0xdab9, 0xdab2, 0xdac9, 0xdadb, 0xdab0, 0xdad7, 0xdabf, 0xdac2, - 0xdad2, 0xdac4, 0xdab6, 0xdac7, 0xdb85, 0x4ae9, 0xdabc, 0xdb00, - 0xdaf6, 0xdadc, 0xdb0a, 0x5acc, 0xdaeb, 0xdae7, 0xdb14, 0xdb01, - 0xdb02, 0x5ae4, 0xdb8d, 0xdaed, 0x5ae0, 0xdafc, 0xdb92, 0xdaee, - 0x3697, 0xdaf3, 0xdafa, 0xdae6, 0xdb0e, 0xdade, 0xdadd, 0xdb28, - 0xdb9c, 0xdb16, 0xdb1d, 0x5b20, 0xdb21, 0xdb17, 0x5ae1, 0xdb1a, - 0xdb19, 0xdb10, 0xdb39, 0xdb3e, 0x5b2b, 0xdb81, 0x5b2d, 0xdb7e, - 0xdb2c, 0xdb5a, 0x5b56, 0xdb5b, 0xdb59, 0xdb95, 0xdb5c, 0xdb4e, - 0xdb9e, 0xdb74, 0xdb6b, 0xdb96, 0x4a40, 0xccd3, 0xac88, 0x3e13, - 0x3eaa, 0xdc40, 0x3e13, 0x3eaa, 0xdc3f, 0xd373, 0xac82, 0x1e30, - 0x5c50, 0x673b, 0xe74a, 0x4ad6, 0xcaea, 0x1e30, 0x5c4a, 0x673b, - 0xe74a, 0x5273, 0x5276, 0x5277, 0xdc54, 0x5273, 0x5276, 0x5277, - 0xdc53, 0xdc5a, 0xdc58, 0xdc87, 0x9e88, 0xc32a, 0xdc76, 0xdc6e, - 0xc2b2, 0xc2b4, 0xdc94, 0xc2c9, 0xef26, 0xdc64, 0xc2e2, 0xc2b4, - 0xc683, 0x42f8, 0xc30d, 0xc30a, 0xc32f, 0xc32b, 0xdc7c, 0xc34f, - 0xc37e, 0x4383, 0xd83c, 0x56fd, 0xdd1d, 0xdd1e, 0x2458, 0x24e1, - 0xdd20, 0xdd1f, 0x321d, 0xdd22, 0xdd21, 0xdd2b, 0xdd27, 0xdd29, - 0xdd2a, 0xdd2f, 0xdd23, 0x2295, 0x5cea, 0xdd28, 0x2f10, 0x5cb3, - 0xdd30, 0xdd2e, 0xdd33, 0xdd40, 0x2f10, 0x5cae, 0xdd30, 0xdd35, - 0xdd2c, 0x9e70, 0xdd37, 0xdd36, 0xdd39, 0xdd34, 0xdd3b, 0xdd38, - 0xdd3a, 0xdd32, 0xdd42, 0xdd41, 0xdd3f, 0xdd45, 0xdd44, 0xdd3e, - 0x2379, 0xb064, 0xdd3c, 0xc68e, 0x5d13, 0xdd43, 0x5ce4, 0xdd31, - 0xdd48, 0xdd4a, 0x2bbe, 0xdcd4, 0x2bbe, 0xdcd3, 0xdd47, 0xdd4a, - 0xdd52, 0xdd49, 0x5d0a, 0xdd5e, 0xdd50, 0xdd4f, 0xdd54, 0x4d9a, - 0x4e8c, 0xdd53, 0x5d12, 0xdd24, 0x2356, 0xa8f2, 0x5cce, 0xdd31, - 0xdd4b, 0xdd55, 0x2295, 0x5cad, 0xdd28, 0xdd4d, 0xdd26, 0xdd4c, - 0xa046, 0x5d56, 0xe83c, 0xdd57, 0x5d4d, 0xef4e, 0xdd5a, 0xdd59, - 0xdd2d, 0xdd5b, 0xdd5c, 0x3557, 0xdd25, 0xdd3d, 0xdd58, 0xdd5f, - 0xdd60, 0x5cdb, 0xdd5e, 0x2050, 0x5d17, 0xdd5d, 0xdd61, 0xdd62, - 0xdd46, 0x5ce2, 0xdd24, 0x5ccd, 0xdd43, 0xdd51, 0xdd4e, 0x2050, - 0x5d0b, 0xdd5d, 0xdd63, 0xdd43, 0x56fd, 0xdc9d, 0xdc9e, 0xdca0, - 0x2458, 0x24e1, 0xdc9f, 0xdca2, 0x321d, 0xdca1, 0xdcac, 0x5ce2, - 0xdd12, 0x3557, 0xdd01, 0xdcec, 0xdca8, 0x5cad, 0xdcea, 0xdca9, - 0xdcaa, 0xdca7, 0xdcb6, 0xdcfc, 0xdcaf, 0xdcab, 0x2f10, 0x5cae, - 0xdcb3, 0x5cce, 0xdce4, 0xdcc1, 0xdcb0, 0xdcbc, 0xdcb4, 0xdcba, - 0xdcb8, 0xdcbf, 0xdcbb, 0xdcc0, 0xdcbd, 0xdcca, 0xdd04, 0xdcc8, - 0xdcc4, 0xdcb2, 0xdcc3, 0xdcc2, 0x5ccd, 0x5d13, 0xdd1c, 0xdcc7, - 0xdcc5, 0xdd10, 0xdcd5, 0xdcd1, 0xdcda, 0x5cd2, 0xdcd6, 0xdce6, - 0xdced, 0x5ceb, 0x5cf7, 0xef4e, 0xdd16, 0xdcde, 0xdcdc, 0xdd14, - 0xdcd9, 0xdce1, 0xdce0, 0xdce7, 0x5cf4, 0xe83c, 0xdcf5, 0xdd05, - 0xdcfb, 0xdcfa, 0xdcfd, 0xdcfe, 0x2050, 0x5d0b, 0xdd17, 0x5b83, - 0x5b9a, 0x5cdb, 0xdd0a, 0xdd07, 0xdd08, 0xdd0d, 0xdd0f, 0xdd1b, - 0x407b, 0xc0fe, 0xdd6c, 0xdd6a, 0xdd71, 0xdd70, 0xdd99, 0xdd95, - 0x2c1f, 0x2c20, 0x6bae, 0x6c7b, 0xec9c, 0xdfdf, 0xdd82, 0xdd81, - 0xdda8, 0xdda6, 0xdd76, 0xdd75, 0xdd91, 0xdd8b, 0xde7a, 0x5dc3, - 0xde8d, 0xddb2, 0xddb1, 0xde89, 0xde38, 0x5daf, 0xde8d, 0xde4c, - 0xde92, 0xdff9, 0xddfa, 0xde29, 0xde10, 0xde82, 0xde7a, 0xde55, - 0xde9a, 0xdde5, 0xde8b, 0xac40, 0x50eb, 0xd11b, 0x458e, 0xc58f, - 0xde34, 0x511a, 0xd173, 0xde8a, 0xddf5, 0xde64, 0xddf4, 0xde64, - 0xc8b0, 0xde93, 0xde91, 0xcaac, 0xde0a, 0xddbb, 0xde4f, 0x5e79, - 0xdea2, 0xddc4, 0xde44, 0xdea1, 0xde63, 0xddf8, 0xdff9, 0xde52, - 0x5e28, 0xde2a, 0x5e8a, 0xde95, 0x5e4b, 0xdea2, 0x5dac, 0xddf7, - 0xdea5, 0xddf6, 0xde84, 0xde83, 0xa8b8, 0xddb8, 0x5e0c, 0x5e70, - 0xde95, 0x5dfb, 0xe6ae, 0x5daf, 0xddc3, 0xdeaa, 0xde2f, 0xddde, - 0xde2c, 0x5e70, 0xde8a, 0xdeaa, 0xddf9, 0xdea6, 0xde51, 0x5e4b, - 0xde79, 0xde7f, 0xde9c, 0x5e8f, 0xde99, 0xdeb3, 0xd03d, 0xdec0, - 0x1f53, 0x5ec6, 0x6ab5, 0xead4, 0xdeb2, 0xdeb1, 0xdeac, 0xdeaf, - 0x5040, 0x504c, 0xd077, 0x1f53, 0x5eb0, 0x6ab5, 0xead4, 0xdf66, - 0xdf67, 0xdf68, 0xa19b, 0xdf6a, 0xdf69, 0xdf6b, 0x3799, 0x5ef6, - 0xdf6d, 0xdf6f, 0x5f49, 0xdf6c, 0x5f5f, 0xdf70, 0xdf77, 0xdf78, - 0x5f29, 0xdf88, 0xdf71, 0x3799, 0x5edb, 0xdf6d, 0xdf74, 0xdf75, - 0xdf7a, 0xdf72, 0xdf76, 0x5f15, 0xdf7b, 0xdf7c, 0xdf5c, 0xdf83, - 0xdf82, 0xdf81, 0xdf80, 0xdf7d, 0xdf7e, 0x5f1b, 0xdf86, 0xdf36, - 0x5f19, 0xdf84, 0xb33d, 0x1fcc, 0xdf85, 0x5efd, 0xdf7b, 0x5f12, - 0xdf84, 0x5f0c, 0xdf86, 0x5f3a, 0xdf8e, 0xdf89, 0xdf8b, 0xdf8d, - 0xdf57, 0xdf8a, 0xdf87, 0x5ef0, 0xdf88, 0xdf6e, 0xdf8c, 0xdf6f, - 0xdf91, 0xdf8f, 0xdf0f, 0xdf93, 0x5f1c, 0xdf8e, 0xdf90, 0xdf92, - 0xdf97, 0xd206, 0x67b1, 0x67dc, 0xe7ec, 0xbbc2, 0x5f96, 0xe38b, - 0xdf95, 0xdf98, 0x5ee2, 0xdf6c, 0xdf99, 0xdf7f, 0xdf9a, 0xdf21, - 0xdf00, 0x5ee3, 0xdf70, 0xdf94, 0xdf79, 0xdf73, 0xdeca, 0xdecb, - 0xdecc, 0xded2, 0xded1, 0xded4, 0x5ee2, 0xdf49, 0x3799, 0x5edb, - 0xdef6, 0xdf2a, 0x5edf, 0xdf2d, 0x5ee3, 0xdf5f, 0xdef2, 0xdefb, - 0xdf64, 0xdef8, 0xdef9, 0xdefc, 0xdee4, 0xdeeb, 0xdf62, 0xdefa, - 0x5efd, 0xdf15, 0xdefe, 0xdf09, 0xdf0a, 0xdf4e, 0xdf08, 0xdf07, - 0xdf05, 0xdf03, 0x5f12, 0xdf19, 0xdf14, 0x5f0c, 0xdf1b, 0xdf26, - 0x5ef0, 0xdf29, 0xdf1d, 0xdf25, 0xdf1e, 0xdf2c, 0xdf1f, 0x5f1c, - 0xdf3a, 0xdf33, 0xdf3b, 0xdf2f, 0xdf3c, 0xdf38, 0xdf61, 0xdf45, - 0xdf44, 0xdf3e, 0xdf46, 0xdf4d, 0xdf54, 0x5f9e, 0x5fa4, 0xdfad, - 0x5f9d, 0x5fa4, 0xdfad, 0xe5e2, 0x3683, 0xcf6a, 0x2f01, 0x5fa9, - 0xdfaf, 0x5f9d, 0x5f9e, 0xdfad, 0xa29e, 0x2f01, 0xdfa8, 0x2f01, - 0xdfa7, 0x2f01, 0x5fa1, 0xdfaf, 0xdfae, 0x5f9d, 0x5f9e, 0xdfa4, - 0xdfab, 0x2f01, 0x5fa1, 0xdfa9, 0xa19c, 0xdfb6, 0xdfb5, 0x5fba, - 0x6089, 0xe08a, 0x5fb9, 0x6089, 0xe08a, 0xe07c, 0x6039, 0xe054, - 0xe077, 0xdfc3, 0xdfc2, 0xdfe4, 0xe04e, 0xe081, 0x231d, 0xae00, - 0xe04b, 0xe084, 0xe019, 0xe032, 0xe060, 0xe055, 0xe023, 0x5d7f, - 0x6045, 0xe072, 0xdfc6, 0xe008, 0xe087, 0xaef8, 0xaf80, 0xe003, - 0x2f84, 0x2f91, 0xe015, 0x26d8, 0x26de, 0x26ec, 0x2efb, 0x2efd, - 0xe025, 0x5de1, 0xde5f, 0x1e43, 0xaefc, 0xe069, 0xdfef, 0xdfe5, - 0xe078, 0xe05c, 0xe052, 0x6013, 0xe05e, 0x6012, 0xe05e, 0x2f84, - 0x2f91, 0xdff3, 0xdfd9, 0xdfde, 0x26d8, 0x26de, 0x26ec, 0x2efb, - 0x2efd, 0xdff4, 0xe090, 0xa954, 0x3e38, 0xe04a, 0xa468, 0xdfdb, - 0x5fbe, 0xe054, 0xe060, 0xe08f, 0xa06a, 0xe06f, 0x5fdf, 0xe072, - 0x1fa6, 0xa075, 0x3e38, 0xe030, 0xdfd0, 0xdfc7, 0xe00e, 0x2675, - 0x585c, 0xd85f, 0x5fbe, 0xe039, 0xdfdd, 0xe07a, 0xe065, 0xe00a, - 0x6012, 0xe013, 0x5fdc, 0xe03a, 0xbeaf, 0xe059, 0xe002, 0xe041, - 0x5fdf, 0xe045, 0xced5, 0xdfc1, 0xe009, 0xe057, 0xdfbd, 0xdfc8, - 0xdfd8, 0xdfe9, 0x5fb9, 0x5fba, 0xe08a, 0x5fb9, 0x5fba, 0xe089, - 0xe03b, 0xe026, 0xe61d, 0xe127, 0xe13a, 0xe0ab, 0xb751, 0xe0a6, - 0xe114, 0xe0f5, 0xe112, 0xe134, 0x23b8, 0x6130, 0xe6a3, 0xe0cc, - 0x3b1d, 0x6b30, 0xeb31, 0xe0bd, 0x60d2, 0xe0de, 0xe0df, 0xe136, - 0xe12d, 0x60ce, 0xe0de, 0xe106, 0x60ce, 0xe0d2, 0xe0cf, 0xe148, - 0xe116, 0xe0f6, 0xe0ae, 0xe0e8, 0x1e61, 0x6109, 0x610a, 0xe115, - 0xe132, 0xe0d3, 0x1e61, 0x60f7, 0x610a, 0xe115, 0x1e61, 0x60f7, - 0x6109, 0xe115, 0xe0b9, 0xe0ac, 0x1e61, 0x60f7, 0x6109, 0xe10a, - 0xe0e7, 0xe093, 0xe0d1, 0x23b8, 0x60bb, 0xe6a3, 0xe0f8, 0xe0ba, - 0xe0d0, 0xe146, 0xe09d, 0xe147, 0x2398, 0x28e5, 0xaedb, 0xe147, - 0xe137, 0x613c, 0xe142, 0xe0e6, 0x9e23, 0xe194, 0xe189, 0xb59f, - 0x6196, 0xe19e, 0xe18b, 0x467a, 0x6197, 0xe1b1, 0x616c, 0xe1bb, - 0xa5e0, 0x6167, 0xe1bb, 0x61a4, 0xe1ac, 0xe1c5, 0xe1c3, 0x61b8, - 0xe1c0, 0xd14c, 0xe195, 0xe154, 0xe91f, 0xe162, 0x24b8, 0xee79, - 0xe14b, 0xe187, 0x615d, 0xe19e, 0x467a, 0x6166, 0xe1b1, 0xb9bc, - 0x1e11, 0xeb57, 0x615d, 0xe196, 0x6171, 0xe1ac, 0x233b, 0xbbc9, - 0x6171, 0xe1a4, 0x467a, 0x6166, 0xe197, 0x617f, 0xe1c0, 0x6167, - 0xe16c, 0x2bb4, 0xdb8c, 0x617f, 0xe1b8, 0xd845, 0xe17e, 0xe17d, - 0x2bc0, 0xb3a1, 0x61ca, 0xe1cb, 0x61c8, 0xe1cb, 0x61c8, 0xe1ca, - 0x58cf, 0xd8e1, 0x27dc, 0xa8c4, 0xa398, 0x61d2, 0xe485, 0x61d1, - 0xe485, 0x61da, 0x61fb, 0xe486, 0xe487, 0xe48c, 0x2200, 0xa202, - 0xe48a, 0xe489, 0xe48b, 0x61d3, 0xe1fb, 0xe1e1, 0xe488, 0x1e71, - 0x9e82, 0xe1dc, 0x621f, 0xe493, 0xe490, 0xb263, 0xe48f, 0xe492, - 0xe2e9, 0x2251, 0x2263, 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, - 0xe1fc, 0xe497, 0xe48d, 0xe495, 0xe48e, 0x61d3, 0x61da, 0xe486, - 0x2251, 0x2263, 0x2271, 0x228d, 0x228e, 0x2292, 0x2294, 0xe1f0, - 0xe4af, 0xe4ab, 0xe498, 0xe4ad, 0xe4a5, 0x625b, 0xe4c5, 0xe49a, - 0xe4a0, 0xe49d, 0x6264, 0xe4a9, 0xe4a4, 0xe4a3, 0xe491, 0xe49e, - 0xe4ae, 0x629e, 0xe4a7, 0xe1e3, 0xe49f, 0xe499, 0xe4ac, 0xe49b, - 0xe4aa, 0xe3ba, 0x4089, 0xe46a, 0x6438, 0xe4ce, 0x6268, 0xe4cc, - 0xe4c8, 0xe4b6, 0xe4c3, 0xe4b4, 0xe4b9, 0xe4cd, 0xe4b0, 0xe4b8, - 0xe4c0, 0xe4bf, 0xe4be, 0x6295, 0x62e8, 0x6421, 0x6435, 0xe4c1, - 0xe49c, 0xe4bb, 0xe4ca, 0xe4ca, 0xe4c9, 0x2228, 0xe4c7, 0xe4cb, - 0xe4c2, 0xe4b7, 0xe4b3, 0xe4c6, 0x6206, 0xe4c5, 0xe4ba, 0xe348, - 0x46cb, 0x4f3d, 0xe4b5, 0x620e, 0xe4a9, 0xe4b2, 0x622e, 0xe4cc, - 0xe4bc, 0xe4bd, 0x47ff, 0x483f, 0x4926, 0x62db, 0xe45b, 0x6373, - 0x6451, 0x6452, 0xe46c, 0xe4cf, 0xe4f0, 0xe4d2, 0xe4ec, 0xe4ea, - 0xe4f6, 0xe4f3, 0xe4dc, 0xe4da, 0xe4e3, 0xe4e8, 0x6244, 0x62e8, - 0x6421, 0xe435, 0xe4e2, 0xe4ed, 0x6443, 0xe4eb, 0x62bd, 0xe4e6, - 0x2563, 0x5854, 0xd858, 0xe21e, 0xe4d1, 0xe4f7, 0xe4f1, 0xe4df, - 0xe4f5, 0xe4e5, 0xe4d5, 0xe4ef, 0xe4d0, 0x6322, 0xe4b1, 0xe47e, - 0xe4de, 0xc10a, 0x62ed, 0xe510, 0x4107, 0xe500, 0xe508, 0xe511, - 0xe509, 0xe29b, 0xe4dd, 0xe512, 0xe50c, 0xe4a1, 0xe4e4, 0xe4d7, - 0xe50b, 0xe4fb, 0x47ff, 0x483f, 0x4926, 0x6271, 0xe45b, 0xe50a, - 0x646f, 0xe513, 0x6381, 0xe4d8, 0xe504, 0xe503, 0xe514, 0x6244, - 0x6295, 0x6421, 0x6435, 0xe507, 0x61ef, 0xe4d3, 0x5216, 0x5217, - 0xe4fa, 0x62b3, 0xe510, 0xe4d6, 0xe506, 0xe502, 0xe4fd, 0x6444, - 0xe4f8, 0xe50d, 0xe52f, 0xe4a2, 0xe51e, 0x2f55, 0xe332, 0xe516, - 0xe52b, 0xe529, 0x641a, 0xe4d4, 0xe525, 0xe515, 0xe51f, 0xe524, - 0x637f, 0xe531, 0xe4ee, 0xe51b, 0xe52c, 0xe52d, 0xe51c, 0x62ad, - 0xe4b1, 0xe526, 0xe51a, 0xe520, 0xe521, 0x40bc, 0x4149, 0xe34a, - 0xe522, 0xe519, 0x2f55, 0xe304, 0xe530, 0xd868, 0xe486, 0xe4fc, - 0xe3e8, 0xe51d, 0xe528, 0xe52a, 0xe494, 0xe534, 0x6260, 0xe533, - 0x40bc, 0x4149, 0xe32c, 0xe505, 0xe540, 0xe537, 0xe4e1, 0xe496, - 0x4145, 0xe53b, 0xe4ff, 0x6445, 0xe53d, 0xe538, 0xe532, 0xe518, - 0xe539, 0x63d3, 0xe52a, 0xe53e, 0x6274, 0x6451, 0x6452, 0xe46c, - 0xe52e, 0xe536, 0xe517, 0x649f, 0xe53a, 0xe319, 0xe2e3, 0xe541, - 0xe53f, 0xe545, 0xe551, 0xdf44, 0x642e, 0xe570, 0x39c8, 0xd028, - 0x3eb6, 0xc194, 0x63c1, 0xe501, 0xb7aa, 0xe549, 0xe524, 0xe548, - 0x6543, 0xef12, 0xe4a8, 0xd4e5, 0x6402, 0xe54f, 0xe4e0, 0xe4e9, - 0xe53c, 0xe550, 0x63ae, 0xe547, 0x63ad, 0xe547, 0xe552, 0xe54d, - 0xe553, 0xe54c, 0xe228, 0xe54e, 0xe396, 0xe55e, 0xe55f, 0xe4fe, - 0xe546, 0xe559, 0xe560, 0xe55d, 0xe36f, 0xe4ff, 0xe535, 0xe557, - 0xe558, 0xe55b, 0x222c, 0x2257, 0x2277, 0xe4f2, 0x434d, 0xe55c, - 0xe556, 0xe542, 0x63fd, 0xe508, 0xe33e, 0xe55a, 0xe4e7, 0xe564, - 0xe56a, 0x63e5, 0xe508, 0x63a6, 0xe54f, 0xe4d9, 0xe4f4, 0xe563, - 0xe4f9, 0xe566, 0xe561, 0xe50f, 0xe49f, 0xe56b, 0x630f, 0xe4d4, - 0x6481, 0xe562, 0xe568, 0x6244, 0x6295, 0x62e8, 0x6435, 0xe4c1, - 0xe50e, 0xe50f, 0xe544, 0xe54c, 0x638c, 0xe570, 0xe56f, 0xe56d, - 0x6244, 0x6295, 0x62e8, 0x6421, 0xe4c1, 0xe56e, 0x622c, 0xe4ce, - 0xe4db, 0xe571, 0x629a, 0xe4eb, 0x62f3, 0xe4f8, 0xe360, 0xe56c, - 0xe554, 0x6274, 0x6373, 0x6452, 0xe46c, 0x6274, 0x6373, 0x6451, - 0xe46c, 0xb7aa, 0xe572, 0xe527, 0x647d, 0xe4bb, 0x47ff, 0x483f, - 0x4926, 0x6271, 0xe2db, 0x6909, 0xe95f, 0xe574, 0xe4c4, 0xe573, - 0xa228, 0xe565, 0x4089, 0xe229, 0x6274, 0x6373, 0x6451, 0xe452, - 0xe567, 0xe2df, 0xe4a5, 0xe575, 0xe576, 0x4f36, 0xcf50, 0xe54a, - 0xe569, 0xe523, 0x645a, 0xe4bb, 0xe2ae, 0xa1ff, 0x641d, 0xe562, - 0xe54b, 0x61d1, 0xe1d2, 0x61d3, 0x61fb, 0xe337, 0xe1d4, 0xe1dd, - 0xe1d8, 0xe1d7, 0xe1d9, 0xe1d5, 0xe1f7, 0xe1fa, 0xe1e7, 0xe1e4, - 0xe212, 0xe1e9, 0xe1e3, 0xe346, 0xe1f9, 0xe35a, 0xe1f5, 0xe203, - 0xe223, 0xe208, 0xe226, 0xe245, 0xe20d, 0xe214, 0x6221, 0x637e, - 0x6418, 0xe53a, 0xe209, 0xe2c7, 0xe2fc, 0xe211, 0xe210, 0x6205, - 0xe470, 0xbb3d, 0xe21e, 0xe3a2, 0x620e, 0xe264, 0xe227, 0xe201, - 0xe225, 0xe204, 0xe215, 0xe200, 0xe23a, 0x62ad, 0xe322, 0xe266, - 0xe257, 0xe237, 0x46cb, 0x4f3d, 0xe262, 0xe233, 0xe255, 0xe23d, - 0xe238, 0xe25e, 0x6246, 0x645a, 0xe47d, 0xe26c, 0xe26d, 0xe240, - 0xe23f, 0xe23e, 0x6244, 0x6421, 0xe435, 0xe251, 0xe234, 0xe460, - 0x6206, 0xe25b, 0xe25a, 0x2228, 0xe24b, 0xe230, 0xe249, 0x6247, - 0xe248, 0xe24d, 0x622e, 0xe268, 0xe239, 0x622c, 0xe438, 0xe276, - 0xe2ac, 0xe2a0, 0xe27a, 0xe2e9, 0x630f, 0xe41a, 0xe2aa, 0xe2ee, - 0xe2cf, 0xe2e3, 0xe403, 0xe28d, 0xe43a, 0xe285, 0xe2c1, 0xe2b1, - 0xe2a6, 0xe3a7, 0xe358, 0xe296, 0xe291, 0xe2cc, 0xe2a9, 0xe29b, - 0xe3f5, 0xe293, 0xe3a9, 0xe27f, 0x629a, 0xe443, 0xe27b, 0xe298, - 0xe31a, 0xe2ab, 0xe278, 0xe2a5, 0x222c, 0x2257, 0x2277, 0xe3df, - 0xe283, 0xe40b, 0xe2a8, 0xe280, 0xe2a3, 0x62f3, 0xe444, 0xe412, - 0x5216, 0x5217, 0xe2ea, 0xe2d9, 0xe338, 0xe2f1, 0xe3c8, 0x635e, - 0xe3d7, 0xe2b7, 0xe396, 0xe2f0, 0xe2e5, 0x5021, 0xe2e4, 0xe34b, - 0xe2ef, 0xe2e8, 0x62b9, 0x63e5, 0xe3fd, 0xe2bc, 0xe2dd, 0xe2d2, - 0xe2c5, 0xe2f6, 0xe426, 0x6417, 0xe427, 0x62b3, 0xe2ed, 0xe2bb, - 0xe2c3, 0xe2df, 0xe2e6, 0xe312, 0xe306, 0xe37a, 0xe369, 0xe32f, - 0xe328, 0xe31b, 0xe321, 0xe340, 0xe301, 0xe315, 0xe329, 0xe32b, - 0xe32e, 0xe47c, 0x6318, 0xe39a, 0xe310, 0xe326, 0xe455, 0xe341, - 0xe308, 0x6343, 0xe36f, 0xe307, 0xe31f, 0xe320, 0xe375, 0xe2f8, - 0xe333, 0xe319, 0xe365, 0xe348, 0xe347, 0xe3d8, 0xe376, 0xe354, - 0xe364, 0xe36c, 0x637e, 0xe49f, 0xe35b, 0xe3aa, 0xe360, 0xe370, - 0xe384, 0xe34d, 0xe382, 0xe3e4, 0xe3a1, 0xe428, 0xe387, 0xe3cc, - 0x63ad, 0xe3ae, 0xe39b, 0xe398, 0xe477, 0xe482, 0x63b8, 0xe42b, - 0xe3b3, 0xe3bf, 0x63a6, 0xe402, 0xe3ac, 0xe38a, 0xe3b0, 0xe3b5, - 0xe44c, 0xe3e2, 0xe3dc, 0xe3dd, 0xe3cd, 0xe3f0, 0xe3de, 0xe3e1, - 0xe3d1, 0xe3c3, 0xe3c7, 0xe3d0, 0xe414, 0x641d, 0xe481, 0xe410, - 0xe3f7, 0xe465, 0xe413, 0xe46d, 0xe420, 0xe479, 0xe3f9, 0xe419, - 0xe44a, 0xe433, 0xe436, 0xe432, 0x638c, 0xe42e, 0xe43f, 0xe454, - 0xe463, 0xe45e, 0xe471, 0xe472, 0x1ee7, 0x214f, 0x6578, 0xe57f, - 0x1ee7, 0x214f, 0x6577, 0xe57f, 0x1e45, 0x9e46, 0x1ee7, 0x214f, - 0x6577, 0xe578, 0xe5e8, 0xe5e9, 0xe5ea, 0xe5eb, 0x6589, 0xe5ed, - 0xe5ec, 0x6587, 0xe5ed, 0xaf00, 0xe5f6, 0xe5f3, 0x65a0, 0xe5f0, - 0x6592, 0xe5f2, 0x6591, 0xe5f2, 0xe5f4, 0xe5f5, 0xe5f8, 0x65f9, - 0xeb27, 0x658f, 0xe5f0, 0xe602, 0x2173, 0x65d7, 0xe5dc, 0xe601, - 0xa408, 0xe600, 0xa4c4, 0xe5fa, 0xe5fd, 0xe603, 0xe606, 0xe5fe, - 0x65b2, 0xe605, 0x65b1, 0xe605, 0x65c3, 0xe612, 0xe60a, 0x2266, - 0xe609, 0xe60e, 0xe60f, 0xe60d, 0xe608, 0xe60c, 0x65b4, 0xe612, - 0xb77f, 0xb697, 0xe5f1, 0x3ff6, 0xe614, 0xe615, 0xe611, 0xe607, - 0xe617, 0xe618, 0xe5ff, 0xe616, 0xe619, 0xe5ef, 0x2173, 0x65a2, - 0xe5dc, 0x3597, 0x6b25, 0x6b26, 0x6b2a, 0xeb2d, 0x242f, 0x2518, - 0x2553, 0x2554, 0x255f, 0xdaec, 0x2173, 0x65a2, 0xe5d7, 0xe61a, - 0xe613, 0xe610, 0xdf9f, 0xe61b, 0xe5fc, 0xe580, 0xe582, 0xe583, - 0xe586, 0xe588, 0x6587, 0xe589, 0xa54f, 0xe5d6, 0x658f, 0xe5a0, - 0xe5c8, 0x6591, 0xe592, 0xe58e, 0xe593, 0xe594, 0xe58c, 0xb0b6, - 0xe598, 0x6599, 0xeb27, 0xe5a8, 0xd05e, 0xe5e5, 0xe5a9, 0xe5ad, - 0xe5d3, 0xe5a5, 0xe5a3, 0xe5a1, 0xe5ab, 0xeb2e, 0x65b1, 0xe5b2, - 0xe5ac, 0xe5cd, 0xe5be, 0x2266, 0xe5b9, 0xe5b6, 0xeb29, 0xe5bf, - 0xe5bd, 0xe5bb, 0xe5bc, 0xe5e1, 0xe5cc, 0x65b4, 0xe5c3, 0xe5e0, - 0x3ff6, 0xe5ca, 0xe5cb, 0xe5d4, 0xe5d0, 0xe5d2, 0xe5d5, 0x65de, - 0xeb2b, 0xe5e4, 0xe61d, 0x6091, 0xe61c, 0xe68a, 0x1f8c, 0x6634, - 0x6670, 0xe682, 0x6633, 0xe67d, 0xe638, 0x2347, 0xe65e, 0x2742, - 0xac85, 0x274f, 0xa76f, 0xa751, 0xa740, 0xca7d, 0x6626, 0xe67d, - 0x1f8c, 0x6625, 0x6670, 0xe682, 0xe663, 0x2826, 0xe68e, 0xe628, - 0xbcae, 0x2768, 0xe641, 0x2768, 0xe640, 0xe69b, 0xe678, 0xe6b4, - 0xe673, 0xe658, 0xa905, 0x665c, 0x665d, 0xe67f, 0xa7c8, 0xe649, - 0x6655, 0xe67f, 0xe655, 0x2347, 0xe629, 0xaf8f, 0x2866, 0xe635, - 0xe677, 0x2c9b, 0x2cf6, 0x2d8b, 0x2d8c, 0x2db9, 0x669d, 0xe6af, - 0xe695, 0x4906, 0x667a, 0xe6aa, 0x1f8c, 0x6625, 0x6634, 0xe682, - 0xe648, 0xe665, 0xe646, 0x4906, 0x6669, 0xe6aa, 0x2794, 0xa819, - 0x6626, 0xe633, 0x6655, 0xe65c, 0x2830, 0xa895, 0x1f8c, 0x6625, - 0x6634, 0xe670, 0x27de, 0xa824, 0xe61f, 0xb697, 0x2826, 0xe636, - 0xe6a8, 0x1e5a, 0x66a0, 0xe6b1, 0x48d2, 0xe668, 0xa75e, 0xe69f, - 0xe645, 0x2c9b, 0x2cf6, 0x2d8b, 0x2d8c, 0x2db9, 0x6666, 0xe6af, - 0xe699, 0x1e5a, 0x6690, 0xe6b1, 0x23b8, 0x60bb, 0xe130, 0xe68f, - 0x4906, 0x6669, 0xe67a, 0x275f, 0xa8b3, 0xde8b, 0x2c9b, 0x2cf6, - 0x2d8b, 0x2d8c, 0x2db9, 0x6666, 0xe69d, 0x1e5a, 0x6690, 0xe6a0, - 0xea98, 0xe647, 0x66b7, 0xe6b8, 0x66b6, 0xe6b8, 0x66b6, 0xe6b7, - 0x2bc9, 0x674d, 0x674e, 0x674f, 0x6db4, 0x6e16, 0xee64, 0xa3ea, - 0xe6cb, 0xe6e3, 0x6ceb, 0xed08, 0x20f1, 0xecf8, 0xe6bd, 0xe6dd, - 0xe6db, 0x3742, 0xe6dc, 0x2f6b, 0x4431, 0xed70, 0xd67d, 0xa3cc, - 0xee1b, 0x66cf, 0xedb5, 0x3742, 0xe6d1, 0xe6cd, 0x6d8f, 0x6dc4, - 0xee21, 0xadb2, 0x5b8e, 0xdb90, 0xc9bb, 0xe6be, 0xbc1b, 0x9e91, - 0xe742, 0xe717, 0xe741, 0x671a, 0xe727, 0xc535, 0x671a, 0xe727, - 0xe73d, 0xeef4, 0x4075, 0x671b, 0xe748, 0xbcbe, 0xe6f6, 0x66fa, - 0x66fe, 0xe727, 0x4075, 0x670a, 0xe748, 0xe722, 0xe721, 0x66fa, - 0x66fe, 0xe71a, 0xe744, 0xd987, 0x1e30, 0x5c4a, 0x5c50, 0xe74a, - 0xe701, 0xe6f7, 0xe6f3, 0xe72d, 0xa3c7, 0x4075, 0x670a, 0xe71b, - 0xa3c6, 0x1e30, 0x5c4a, 0x5c50, 0xe73b, 0x2bc9, 0x66ba, 0x674e, - 0x674f, 0x6db4, 0x6e16, 0xee64, 0x2bc9, 0x66ba, 0x674d, 0x674f, - 0x6db4, 0x6e16, 0xee64, 0x2bc9, 0x66ba, 0x674d, 0x674e, 0x6db4, - 0x6e16, 0xee64, 0x2bc8, 0xe752, 0x2bc8, 0xe751, 0xe75a, 0x2172, - 0x2929, 0xe75d, 0xe75c, 0xe753, 0xe759, 0x2172, 0x2929, 0xe754, - 0x4cc6, 0x6763, 0x6eaa, 0x6eab, 0x6eb5, 0xeeba, 0xe762, 0x45b1, - 0xc6b0, 0xe768, 0xe82e, 0xe765, 0x676d, 0xe771, 0x676b, 0x6771, - 0xe7e7, 0x676b, 0x676d, 0xe7e7, 0xe7be, 0xcd46, 0x6789, 0xef17, - 0x6780, 0xef17, 0xe7b5, 0xe78d, 0xe78c, 0xade9, 0xe7c3, 0xe7bd, - 0xe7b9, 0x49cb, 0xe7a7, 0x49cb, 0xe7a6, 0xc89f, 0xe7c9, 0x5f41, - 0xe7dc, 0xe7dd, 0xe78b, 0xe79f, 0xe792, 0xe774, 0x4e6e, 0xcf30, - 0xe791, 0xa343, 0x589c, 0xe7e4, 0xe7af, 0xe7e6, 0xe7e7, 0x2dff, - 0xe7e8, 0xe7e9, 0xe7ea, 0x5f41, 0x67b1, 0xe7ec, 0xe7b2, 0xe7eb, - 0x589c, 0xe7c8, 0xe7cb, 0x676d, 0x6771, 0xe7cc, 0x2dff, 0xe7cd, - 0xe7d3, 0xe7d9, 0xe7de, 0x5f41, 0xe7dc, 0xe7ee, 0xe7ed, 0xe7f1, - 0xe7ef, 0x6f4f, 0xef51, 0xe7fb, 0xe7f5, 0xa4cd, 0xe875, 0xe876, - 0xe877, 0xe879, 0xe87a, 0xe878, 0xe87b, 0xe87c, 0xe882, 0xe880, - 0xe883, 0xe884, 0xe87d, 0xe881, 0xe87f, 0xe887, 0xe886, 0x6838, - 0xe888, 0xe88c, 0xe889, 0x6825, 0xe890, 0x6824, 0xe890, 0xe88f, - 0x6830, 0xe88a, 0xa934, 0x6767, 0xe892, 0x682c, 0xe88a, 0xe88b, - 0x4a4e, 0xe896, 0xe894, 0x681a, 0xe888, 0x4a68, 0x683a, 0x683d, - 0xe893, 0x4a68, 0x6839, 0x683d, 0xe893, 0xe891, 0x5cf4, 0xdd56, - 0x4a68, 0x6839, 0x683a, 0xe893, 0xeaed, 0xe897, 0xd16e, 0xe898, - 0xe89d, 0xe89a, 0x6854, 0xe89c, 0xe899, 0xe89b, 0x684f, 0xe89c, - 0x363e, 0xe86f, 0xa6df, 0xb13f, 0xe8a1, 0x685b, 0xe8a0, 0x685a, - 0xe8a0, 0xcc7b, 0xe89f, 0xe8a2, 0xe87e, 0xe8a4, 0xe8a5, 0x363e, - 0xe855, 0xe8a6, 0x6885, 0x6ad7, 0xee15, 0xe89e, 0xe8a7, 0xe801, - 0xe802, 0xe803, 0xe807, 0xe805, 0xe806, 0x6808, 0xeb1a, 0xe80a, - 0xe811, 0xe867, 0xe813, 0xe80e, 0xe812, 0xe80c, 0xe80f, 0xe810, - 0x6871, 0xead7, 0xe818, 0xe817, 0x681a, 0xe838, 0xe821, 0x682c, - 0xe830, 0xe832, 0xe81c, 0xbf41, 0xc1b2, 0xe826, 0x6824, 0xe825, - 0xe83b, 0xe82e, 0x4a68, 0x6839, 0x683a, 0xe83d, 0xe837, 0x4a4e, - 0xe834, 0xe846, 0xe84c, 0xe852, 0xe84e, 0xe853, 0x684f, 0xe854, - 0xe84d, 0xe873, 0xe862, 0x685a, 0xe85b, 0xe859, 0xe865, 0xce87, - 0xe86b, 0xe86c, 0xe870, 0xe874, 0x1e30, 0x21e8, 0x21ec, 0x21ee, - 0x5af7, 0x5bbd, 0x68cc, 0xe8ce, 0xe8d0, 0x68b7, 0x68c6, 0x68c8, - 0xe8d1, 0xe8d2, 0xa3f0, 0xa22e, 0xe8d3, 0x68ae, 0x68c6, 0xe8c8, - 0xe8d4, 0xe8cf, 0xe8d6, 0xe8d5, 0xe8d7, 0x68c4, 0xe8d8, 0x68c3, - 0xe8d8, 0x68ae, 0x68b7, 0x68c7, 0x68c8, 0xe8d9, 0xe8c6, 0x68ae, - 0x68b7, 0x68c6, 0xe8da, 0x21e8, 0x21ec, 0x21ee, 0x68a8, 0xe8ce, - 0x1e30, 0x21e8, 0x21ec, 0x21ee, 0x68a8, 0xe8cc, 0xe8ba, 0xe8ad, - 0xe8ae, 0xe8af, 0xe8b6, 0xe8b8, 0xe8bc, 0xe8bb, 0xe8c0, 0x68c3, - 0xe8c4, 0xe8c6, 0xe8c8, 0xe8de, 0xcffb, 0xe8db, 0x25b0, 0x68e0, - 0xe963, 0x25b0, 0x68df, 0xe963, 0xe910, 0xe965, 0xe964, 0xe966, - 0xe957, 0xe968, 0xe96a, 0x49d7, 0xe96b, 0xe90a, 0xe96c, 0x68f2, - 0xe96e, 0x68f0, 0xe96d, 0xe8ef, 0x68ee, 0xe96e, 0xe974, 0xe99d, - 0xe972, 0xe971, 0xe970, 0xe973, 0xe97a, 0xe978, 0x6920, 0xe97c, - 0x645c, 0x695f, 0xe977, 0x217b, 0x4faa, 0xe8ec, 0xe975, 0xe95c, - 0xe979, 0xe97b, 0xe8e1, 0xe97d, 0x6927, 0xe981, 0xe97f, 0xe982, - 0xe97e, 0x1f59, 0xe980, 0xd0b4, 0xe984, 0xe983, 0xe96f, 0xe18a, - 0x6905, 0xe97c, 0xe985, 0x2582, 0x6912, 0x6935, 0xe981, 0x5218, - 0xe986, 0xccca, 0xccc7, 0xe967, 0xe959, 0x2582, 0xe927, 0xe989, - 0xe987, 0xe967, 0xe98e, 0xccd5, 0xe969, 0xe988, 0xe98f, 0xe98a, - 0xe98c, 0xe98d, 0xe992, 0xe990, 0xe991, 0xe993, 0xe988, 0xe994, - 0xd1b3, 0xcce6, 0xe965, 0xe976, 0xe8e8, 0xe934, 0xe90d, 0xe98b, - 0x645c, 0x6909, 0xe977, 0xe995, 0x25b0, 0x68df, 0xe8e0, 0xe8e3, - 0x68e2, 0xe951, 0xe8e5, 0x6933, 0xe939, 0xe8e9, 0xe93c, 0xe8ea, - 0xe8eb, 0xe8ed, 0xe8ef, 0x68ee, 0xe8f2, 0xe91e, 0xe8fe, 0xe8fd, - 0xe8fc, 0xe8ff, 0xe8f4, 0xe90c, 0xe952, 0x6909, 0xe95f, 0xe904, - 0xe90e, 0xe903, 0xe90f, 0x6905, 0xe920, 0xe911, 0xe916, 0xe913, - 0x1f59, 0xe918, 0x6912, 0xe927, 0xe915, 0xe91c, 0xe91b, 0xe921, - 0xe928, 0xe937, 0x693d, 0xe94b, 0xe936, 0xe93f, 0xe95e, 0xe941, - 0xe943, 0xe93a, 0xe93e, 0xe948, 0xe949, 0xe945, 0xe94a, 0xe94c, - 0xe962, 0xe8f6, 0xe99f, 0xe99e, 0xea6c, 0xea6d, 0xa1af, 0x69c4, - 0xea6e, 0xea5d, 0xea70, 0xea6f, 0xea72, 0xce36, 0x6a62, 0xea74, - 0xea73, 0x69b1, 0xea6e, 0x6a5b, 0xea7f, 0x357a, 0x69c8, 0x6a45, - 0xea71, 0x357a, 0x69c6, 0x6a45, 0xea71, 0xea7b, 0xea7d, 0xea79, - 0xea75, 0xea7e, 0xea80, 0xea78, 0xea76, 0x69de, 0xea7c, 0x69dd, - 0xea7c, 0xea77, 0x208c, 0x4f75, 0xea82, 0xea88, 0xea87, 0xea73, - 0xea83, 0xea86, 0x6a2e, 0xea51, 0xea8e, 0xea8f, 0xea8b, 0xea8d, - 0xea93, 0xea92, 0xea91, 0xea90, 0x6a13, 0x6a57, 0xea8c, 0x6a37, - 0xea9a, 0x6a10, 0x6a57, 0xea8c, 0xea9b, 0xea97, 0xea99, 0xea52, - 0xea9e, 0xea98, 0x69f5, 0x6a51, 0xea9d, 0xd17e, 0xea7a, 0x6a12, - 0xea9a, 0xea9f, 0xea47, 0xeaa1, 0xd4e6, 0xea9c, 0xea96, 0xeaa0, - 0xeaa2, 0x357a, 0x69c6, 0x69c8, 0xea71, 0xea3a, 0xea85, 0xea95, - 0xea81, 0xeaa3, 0x69f5, 0x6a2e, 0xea9d, 0xea28, 0xea84, 0x6a10, - 0x6a13, 0xea8c, 0xb0ca, 0x69c5, 0xea7f, 0xe9b2, 0xeaa4, 0x69bf, - 0xea74, 0xeaa7, 0x560e, 0xeaa5, 0xeaa6, 0xbb22, 0xea8a, 0xea89, - 0xe9ac, 0xe9ad, 0x69b1, 0xe9c4, 0xe9b4, 0xe9b3, 0x357a, 0x69c6, - 0x69c8, 0xea45, 0xe9b9, 0x69c1, 0xe9ee, 0x69bf, 0xea62, 0xe9d4, - 0xe9db, 0xe9df, 0xe9d9, 0xe9d2, 0xea36, 0xe9d0, 0x69dd, 0xe9de, - 0xe9d1, 0xe9d5, 0x69c5, 0xea5b, 0xe9d8, 0xea4d, 0x208c, 0x4f75, - 0xe9e1, 0xe9f0, 0xea55, 0xea4a, 0xe9f1, 0xe9ed, 0xe9e2, 0xea6b, - 0xea6a, 0xea01, 0x6a10, 0x6a13, 0xea57, 0xea02, 0xe9f8, 0xe9ff, - 0xea0f, 0xea0e, 0xea0d, 0xea05, 0xea4c, 0xea42, 0xea19, 0x66b2, - 0xea2d, 0xea24, 0x6a12, 0xea37, 0xea16, 0xea41, 0x6a2e, 0xea51, - 0xea2b, 0xea38, 0xea43, 0xea3e, 0xea44, 0xea4f, 0xea5f, 0x560e, - 0xea65, 0xea66, 0xea64, 0xd0ae, 0x1f53, 0x5eb0, 0x5ec6, 0xead4, - 0xeca0, 0x51b8, 0xead3, 0xeacf, 0xd180, 0xead6, 0xead5, 0xeac5, - 0xd10f, 0x51b8, 0xeac4, 0x1f53, 0x5eb0, 0x5ec6, 0xeab5, 0x51cf, - 0xeacc, 0xeacb, 0x6871, 0x6885, 0xee15, 0xead9, 0xead8, 0x1eff, - 0xaf77, 0xeaf9, 0xeaef, 0x6b02, 0xeb22, 0x23d1, 0xeaee, 0xe83e, - 0x23d1, 0xeaea, 0xeae5, 0x1f5b, 0xaf7f, 0xeae4, 0xa243, 0x6ae9, - 0x6b13, 0xeb22, 0xb77e, 0xd0e1, 0x6b02, 0xeb22, 0xe87b, 0xeb23, - 0x6ae9, 0x6b02, 0xeb13, 0xeb1b, 0x3597, 0x65d8, 0x6b26, 0x6b2a, - 0xeb2d, 0x3597, 0x65d8, 0x6b25, 0x6b2a, 0xeb2d, 0x6599, 0xe5f9, - 0xa4c4, 0xe60b, 0x3597, 0x65d8, 0x6b25, 0x6b26, 0xeb2d, 0xe61a, - 0x3597, 0x65d8, 0x6b25, 0x6b26, 0xeb2a, 0xe604, 0x3b1d, 0x60c1, - 0xeb31, 0x3b1d, 0x60c1, 0xeb30, 0xeb39, 0xeb36, 0x1ffc, 0xcca5, - 0xac2c, 0xeb58, 0xeb4e, 0x573d, 0xeb49, 0x21f2, 0x2c32, 0x2c34, - 0x2c36, 0xac37, 0x1e11, 0xe19c, 0xeb47, 0xec7c, 0xec7d, 0xec7e, - 0xec6e, 0xebbb, 0xec80, 0xeeff, 0xec81, 0x6c78, 0xec88, 0xec24, - 0xec82, 0xec7f, 0xec84, 0xec85, 0xec86, 0x6bdb, 0xecb7, 0xec8c, - 0xec89, 0xec8f, 0xec87, 0xebf9, 0xec90, 0xec8d, 0xec8b, 0xec8a, - 0xec92, 0xec98, 0x6bd7, 0x6c76, 0xec9e, 0xec95, 0xec96, 0x6bb7, - 0xebf7, 0xec94, 0xec9b, 0xec91, 0x2c1f, 0x2c20, 0x5d7b, 0x6c7b, - 0xec9c, 0xec93, 0xecaa, 0x6ba7, 0xebf7, 0xec9d, 0xeb66, 0xebd8, - 0xeca7, 0xeca0, 0x6c00, 0xeca9, 0xeca4, 0x6bcb, 0xeca8, 0xebca, - 0xecac, 0xecbb, 0xecaf, 0xecad, 0x6b9d, 0xec76, 0xebbe, 0x6b89, - 0xecb7, 0xecb4, 0xecb1, 0xecb5, 0xecb2, 0xecb3, 0xecb8, 0xecae, - 0xecb0, 0xecb6, 0xecba, 0xec3a, 0x6ba7, 0x6bb7, 0xecc0, 0xeb8f, - 0xecab, 0xecca, 0x6bc7, 0xeca9, 0xecc8, 0xec97, 0xecc2, 0x6c28, - 0xecbd, 0xecc7, 0x6c0d, 0xecc5, 0x6c0c, 0xecc5, 0xecbe, 0x6c77, - 0xecc4, 0xecc6, 0xecc3, 0x6c2e, 0xecc1, 0xecd2, 0xecd1, 0xeccb, - 0xeca5, 0xeb73, 0x6c5e, 0xeccf, 0x6c08, 0xecce, 0xecd0, 0xeccd, - 0xec1b, 0xeca2, 0x6ccc, 0xef07, 0xecd3, 0xecd8, 0xeca6, 0xeca3, - 0x6bf5, 0xecb9, 0xecd7, 0xecdb, 0xecd4, 0xecc9, 0xecd9, 0xecd5, - 0x6cd6, 0x6f08, 0xef9e, 0xecdf, 0xecdd, 0xecdd, 0xecdc, 0xecde, - 0xec9f, 0xecbc, 0xec25, 0xec8e, 0xec99, 0xece3, 0xece1, 0xece2, - 0xecbf, 0xec9a, 0xeb63, 0xece0, 0x6b9d, 0x6bd7, 0xec9e, 0x6c10, - 0xecc4, 0x6b72, 0xec88, 0xeca1, 0x2c1f, 0x2c20, 0x5d7b, 0x6bae, - 0xec9c, 0xeb5a, 0xeb5b, 0xeb62, 0xeb77, 0xeb68, 0xeb6f, 0xeb74, - 0xeb7a, 0xeb81, 0xeb83, 0xeb8e, 0x6b72, 0xec78, 0xeb8b, 0xeb93, - 0xeb92, 0xeb8a, 0x56ab, 0xeb91, 0xec5f, 0xeb8d, 0xeb90, 0xebad, - 0xeb9a, 0xebb3, 0xebaa, 0xeb9e, 0xeba6, 0xec02, 0xeb9c, 0xec60, - 0xec6d, 0xebab, 0x2c1f, 0x2c20, 0x5d7b, 0x6bae, 0xec7b, 0xebba, - 0x6b9d, 0xec76, 0xec58, 0x6abe, 0xebc1, 0xec7a, 0xec31, 0xec39, - 0xebc9, 0xec23, 0xec37, 0xebc0, 0xebca, 0x6bc7, 0xec00, 0xebb6, - 0xebfd, 0xebd2, 0xebd6, 0xebea, 0xebd5, 0xebeb, 0xebe1, 0xebe4, - 0xebe7, 0xebdd, 0xebe2, 0xebf0, 0x6b89, 0xebdb, 0xebe8, 0xec3a, - 0xebf4, 0xebd4, 0xec5d, 0xec08, 0xec0f, 0xec68, 0xebf7, 0xec1b, - 0xec03, 0xec13, 0x6c10, 0xec77, 0x6c0c, 0xec0d, 0xec12, 0xec09, - 0xec01, 0xec42, 0xebff, 0xec20, 0x6c32, 0xef07, 0xec2d, 0xec28, - 0xec25, 0xec29, 0xec1f, 0xec1c, 0xec33, 0xec3e, 0x51a4, 0xec48, - 0x6c49, 0xef08, 0xec3b, 0xec35, 0xec45, 0xec3c, 0xec56, 0x6c53, - 0xec54, 0xec57, 0xec52, 0xec6f, 0xec64, 0xec67, 0xec63, 0x2c4c, - 0xee1f, 0x21eb, 0xecec, 0xee20, 0x66c1, 0xed08, 0xece7, 0xee24, - 0xa1e4, 0xee23, 0xee22, 0xe6c7, 0xee29, 0xee28, 0x66c1, 0xeceb, - 0x6d76, 0xee26, 0x6dd7, 0xee25, 0xee30, 0xee35, 0xee33, 0x6e1c, - 0xee32, 0xee2e, 0x6d44, 0xee31, 0xee2a, 0xee2f, 0xee2d, 0x53ba, - 0xedaf, 0xee38, 0xee39, 0xedc3, 0xee3b, 0xee3f, 0xedfa, 0xee3d, - 0xee3a, 0xee3c, 0xed1f, 0xee40, 0xee43, 0xee46, 0xee41, 0xedaa, - 0xee48, 0x6d5e, 0xee45, 0x6d5d, 0xee45, 0xee44, 0xee49, 0xee4c, - 0xee4f, 0xee50, 0xee4e, 0xe6d5, 0xee4a, 0x6d09, 0xee26, 0xee53, - 0x6da4, 0xee4d, 0x6dab, 0xee2b, 0xee51, 0xee52, 0x66de, 0x6dc4, - 0xee21, 0xee4b, 0xee59, 0xee55, 0xee57, 0xee56, 0xed7e, 0xee5b, - 0xee5c, 0xed59, 0x6d87, 0xee2b, 0xee27, 0x53ba, 0xed2c, 0xee5f, - 0x2bc9, 0x66ba, 0x674d, 0x674e, 0x674f, 0x6e16, 0xee64, 0xe6db, - 0xee60, 0xee61, 0xee58, 0xee63, 0xee5a, 0xee5a, 0xee62, 0xee5e, - 0xed33, 0x66de, 0x6d8f, 0xee21, 0xedcf, 0xedc9, 0xedc8, 0xee5d, - 0xedc6, 0xee67, 0xee65, 0x6d0e, 0xee25, 0xee37, 0xee68, 0xee36, - 0xee6a, 0xee54, 0xee69, 0xc1d5, 0xee6b, 0x6df4, 0xee47, 0x6df3, - 0xee47, 0xee6c, 0xee70, 0x6d3c, 0xee6d, 0xee34, 0xee0a, 0xee6f, - 0xedff, 0xee71, 0xd3ba, 0xee72, 0x6871, 0x6ad7, 0xee2c, 0x2bc9, - 0x66ba, 0x674d, 0x674e, 0x674f, 0x6db4, 0xee64, 0xee74, 0xee66, - 0x66da, 0xee73, 0xed1d, 0xee42, 0xee3e, 0x2c4c, 0xece5, 0xece9, - 0x66de, 0x6d8f, 0xedc4, 0xecf6, 0xecf4, 0xecf2, 0x6d0e, 0xedd7, - 0x6d09, 0xed76, 0xedac, 0xed07, 0xed06, 0xed23, 0x6d87, 0xedab, - 0xee15, 0xed28, 0xed1e, 0xed26, 0xed12, 0xed1f, 0xed1d, 0xed1b, - 0xedfd, 0xed15, 0xede5, 0xedd9, 0xed2f, 0xed30, 0xed42, 0xed34, - 0xed43, 0xed3f, 0xee1e, 0xed3b, 0xed50, 0xed53, 0xee1d, 0xed51, - 0xed60, 0x6d5d, 0xed5e, 0xed52, 0x6df3, 0xedf4, 0xed5c, 0xed61, - 0xed72, 0xed93, 0xed6a, 0xed7e, 0xed6f, 0xed6c, 0xed6e, 0xed89, - 0xed8a, 0xed77, 0xedeb, 0xed98, 0xeda1, 0xed9a, 0xedbb, 0xed96, - 0x6dbf, 0xedc0, 0xeda5, 0xeda9, 0xedca, 0xedc2, 0xedb2, 0xedb9, - 0xedba, 0xedc1, 0xedbc, 0x2bc9, 0x66ba, 0x674d, 0x674e, 0x674f, - 0x6db4, 0xee16, 0xedd6, 0xee1a, 0xedd3, 0xedda, 0xedef, 0xede6, - 0xedf2, 0xedf8, 0xedfa, 0xee07, 0xedf9, 0xee0c, 0xee0f, 0xee1b, - 0xee18, 0x2364, 0xa877, 0x4877, 0x48b1, 0xee7c, 0x24b8, 0xe18e, - 0xee7e, 0xc877, 0x4877, 0x48b1, 0xee78, 0x2869, 0xc6d0, 0xee7a, - 0xee85, 0xeea4, 0xee83, 0xee8f, 0xee87, 0x1e3d, 0xaa6f, 0xc350, - 0x4c97, 0xee84, 0xeea6, 0xeea5, 0x6eac, 0xeeb8, 0x4cc6, 0x6762, - 0x6eab, 0x6eb5, 0xeeba, 0x4cc6, 0x6762, 0x6eaa, 0x6eb5, 0xeeba, - 0x6ea9, 0xeeb8, 0xa305, 0x36f2, 0x4cac, 0x6eb4, 0xeeb9, 0x36f2, - 0x4cac, 0x6eaf, 0xeeb9, 0x4cc6, 0x6762, 0x6eaa, 0x6eab, 0xeeba, - 0x6ea9, 0xeeac, 0x36f2, 0x4cac, 0x6eaf, 0xeeb4, 0x4cc6, 0x6762, - 0x6eaa, 0x6eab, 0xeeb5, 0x45f2, 0x45f3, 0xd534, 0x1e48, 0x2c1b, - 0x2e85, 0xeebd, 0x1e48, 0x2c1b, 0x2e85, 0xeebc, 0xeec4, 0x48fa, - 0xeec3, 0xeecc, 0xeec9, 0xcc98, 0xeed2, 0xeed1, 0xeed9, 0xeed8, - 0xeef1, 0x294c, 0xc0b9, 0xeef6, 0xeeed, 0xa15a, 0xeef7, 0xeef2, - 0xeee4, 0xeedb, 0xeeea, 0xe709, 0xeee1, 0xeee9, 0xd8ae, 0xeefe, - 0xeefd, 0x6b6d, 0xef0b, 0xef0c, 0xd6d9, 0x6c32, 0xeccc, 0x6c49, - 0x6cd6, 0xef9e, 0xef0d, 0xeeff, 0xef02, 0xef09, 0xef11, 0xef0e, - 0xe3a1, 0x46b7, 0xc6bc, 0xa1ac, 0x6780, 0xe789, 0xef21, 0xef20, - 0xdc82, 0xef39, 0xef34, 0xa5c5, 0x1e9d, 0x3589, 0x358a, 0xef50, - 0x358b, 0xb58e, 0x5cf7, 0xdd4d, 0x67f2, 0xef51, 0x1e9d, 0x3589, - 0x358a, 0xef4a, 0x67f2, 0xef4f, 0x3b6f, 0xef7f, 0xef54, 0x6f53, - 0xef80, 0xef81, 0xef82, 0xef85, 0xef70, 0xef87, 0xef83, 0xef86, - 0x6f62, 0xef84, 0x6f61, 0xef84, 0xa1fa, 0xef88, 0x256e, 0x2699, - 0xa6d3, 0xa4ac, 0x6f71, 0xef8a, 0xef89, 0xef5a, 0xef6a, 0xef8b, - 0xd16d, 0xef8c, 0x3b6f, 0xef52, 0xef54, 0xef55, 0xef57, 0xef5f, - 0x6f61, 0xef62, 0xef59, 0xef60, 0xef5c, 0xef66, 0xef6c, 0xef6a, - 0xef72, 0xef77, 0x4adc, 0x6f92, 0xef99, 0xa390, 0xae9e, 0x4adc, - 0x6f8d, 0xef99, 0xef9a, 0xef9b, 0x6f8d, 0xef92, 0xef94, 0xef95, - 0x1e80, 0xef9f, 0x49cb, 0x49cc, 0xca50, 0x6c49, 0xef08, 0x1e80, - 0xef9c, 0x248a, 0x248c, 0xb0d2, 0x2401, 0xcc72, -}; - -static const short cjk_variants_indx[0x5200] = { - /* 0x4e00 */ - 4, -1, -1, -1, 5, 6, -1, 7, - -1, 8, 10, 11, 12, -1, 13, -1, - 14, 16, 19, 20, -1, -1, 22, 24, - 26, -1, 28, 29, 33, 34, -1, 36, - 38, 40, 42, 44, 45, 47, 49, 52, - -1, -1, 53, 56, 59, -1, -1, -1, - 60, -1, 66, 67, 68, -1, -1, -1, - -1, -1, 69, -1, -1, 71, 73, -1, - -1, 76, 77, 79, 81, 83, 85, -1, - 87, 92, -1, -1, 93, -1, -1, -1, - 94, 96, -1, -1, 100, 101, -1, 103, - 105, -1, 107, -1, -1, -1, -1, -1, - 110, 111, -1, -1, -1, -1, 115, -1, - 116, -1, -1, -1, -1, -1, -1, -1, - 118, 119, -1, -1, -1, -1, -1, -1, - -1, 121, -1, -1, -1, -1, 124, -1, - 128, 130, 133, -1, -1, -1, 135, -1, - 137, 138, 139, 141, 143, -1, 144, 147, - 151, 153, -1, -1, 155, -1, 156, 157, - 161, 162, 163, -1, 165, 167, 171, 173, - -1, 174, -1, -1, -1, -1, -1, 176, - -1, 178, -1, 182, 183, -1, -1, 184, - 185, 186, 187, -1, -1, 188, -1, -1, - 189, -1, 190, 191, -1, -1, 192, 194, - -1, 195, 196, -1, -1, 199, 201, 202, - -1, 203, -1, -1, 204, -1, 207, 209, - 210, 212, -1, 215, -1, -1, -1, -1, - 217, 218, -1, -1, -1, 220, 221, -1, - -1, -1, 222, -1, -1, -1, -1, 223, - -1, -1, 227, -1, 228, 229, 230, -1, - -1, -1, -1, -1, -1, -1, -1, 232, - -1, -1, 234, -1, 236, 237, 239, 240, - /* 0x4f00 */ - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 245, -1, -1, -1, -1, -1, 247, 248, - 251, 252, 253, 254, 255, 256, 259, 262, - 263, 265, -1, 266, 267, 268, 269, 270, - -1, -1, 271, 273, -1, -1, 275, -1, - -1, 276, 279, -1, -1, 282, -1, 283, - -1, -1, -1, -1, 284, -1, -1, -1, - 285, -1, 286, -1, -1, -1, -1, 287, - 288, -1, -1, -1, -1, -1, 289, -1, - -1, -1, -1, 290, 295, -1, -1, -1, - -1, 296, -1, 298, 301, -1, 302, -1, - 303, -1, -1, 307, -1, 308, -1, -1, - -1, -1, 309, -1, -1, -1, -1, -1, - -1, 310, -1, -1, -1, 312, -1, 314, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 315, 316, -1, 318, -1, - -1, -1, -1, -1, 319, -1, 323, -1, - 324, -1, -1, -1, -1, -1, 325, -1, - -1, -1, -1, -1, -1, -1, -1, 326, - 328, 329, -1, 331, -1, 332, 333, 335, - 336, 337, 338, 339, 340, 341, -1, 343, - -1, -1, -1, -1, -1, -1, 344, 345, - -1, -1, -1, -1, -1, 346, -1, -1, - -1, 347, 348, -1, -1, -1, -1, 349, - -1, -1, 350, -1, 351, -1, 352, -1, - -1, -1, -1, -1, 353, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 355, 356, - 357, 358, 359, 360, -1, 361, 362, -1, - 363, 364, 365, 366, -1, 367, 369, -1, - -1, 371, 372, -1, -1, -1, -1, -1, - -1, -1, -1, 374, 378, 380, -1, -1, - /* 0x5000 */ - 382, -1, 383, 385, -1, 388, 389, -1, - 390, 391, 393, 394, -1, -1, 397, 398, - 399, 400, -1, -1, -1, -1, 401, -1, - -1, -1, -1, -1, -1, -1, 402, 403, - -1, -1, -1, 405, 407, -1, 408, -1, - -1, -1, -1, 410, -1, -1, -1, -1, - -1, -1, -1, 411, -1, -1, 412, -1, - -1, 413, 415, -1, 416, -1, 417, -1, - 418, -1, -1, -1, -1, -1, 419, 420, - -1, 421, -1, -1, -1, -1, -1, -1, - 422, -1, -1, -1, -1, -1, -1, -1, - 425, 426, 427, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 428, -1, -1, - -1, -1, 429, -1, 430, -1, -1, -1, - -1, -1, -1, -1, 432, 433, -1, 435, - 436, 437, 441, 444, -1, 445, 447, 448, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 449, 452, -1, -1, - -1, 453, -1, -1, -1, -1, 454, -1, - 455, 458, 462, -1, 464, -1, -1, -1, - 465, 467, 470, -1, 471, 472, -1, 473, - 474, 475, -1, -1, -1, 476, -1, 477, - -1, -1, -1, 478, 480, 481, -1, 482, - -1, 483, -1, -1, -1, -1, 484, -1, - 485, -1, 486, 487, 491, 492, -1, -1, - -1, 493, 494, -1, -1, 495, -1, -1, - -1, 498, -1, -1, -1, 499, -1, -1, - 500, -1, -1, -1, 501, -1, 502, 504, - -1, -1, -1, 505, -1, 506, -1, -1, - 507, 508, -1, 509, -1, 512, -1, -1, - -1, 513, 514, -1, 515, -1, -1, -1, - -1, 516, -1, -1, -1, -1, -1, -1, - /* 0x5100 */ - 518, 519, 520, -1, 521, -1, -1, -1, - 522, 523, -1, -1, -1, -1, 525, -1, - 526, -1, -1, -1, 527, 528, -1, -1, - 529, -1, -1, -1, -1, -1, 531, 534, - -1, -1, -1, -1, -1, -1, -1, 535, - -1, -1, 536, -1, -1, -1, -1, -1, - -1, -1, 537, -1, -1, -1, -1, 538, - -1, 539, 540, 541, 542, -1, -1, 543, - -1, -1, 545, -1, -1, -1, -1, 546, - -1, 547, 549, 551, 554, -1, 556, 557, - 561, 563, 565, -1, 567, -1, 568, 569, - 570, -1, 572, -1, 573, -1, -1, -1, - 574, -1, -1, -1, 575, -1, 576, 578, - -1, 579, 581, -1, -1, -1, -1, -1, - 582, -1, 583, 586, 591, -1, 592, -1, - -1, 593, -1, 595, -1, 597, 599, -1, - 600, 601, 602, 603, 604, 605, 606, -1, - 609, 610, 611, 613, 614, -1, 616, 618, - 619, 620, 621, -1, -1, -1, -1, 622, - -1, 623, -1, 625, 626, 627, -1, -1, - -1, -1, 629, 630, 631, -1, 632, -1, - 634, 635, 637, 639, 642, -1, -1, 644, - 645, 648, 649, 651, 652, 653, -1, -1, - -1, -1, 654, 655, -1, 656, -1, -1, - 657, -1, 659, 660, 661, 664, 665, -1, - 667, 668, -1, -1, -1, 669, -1, 670, - -1, 671, 672, 673, -1, -1, 674, -1, - -1, -1, -1, 676, 678, -1, 680, -1, - 684, 686, 688, 690, 692, 693, 694, -1, - 696, -1, -1, 701, 702, 707, 710, 715, - -1, 716, 717, 722, 723, -1, 726, 727, - -1, -1, 730, 732, -1, 734, 735, 736, - /* 0x5200 */ - 737, -1, 739, 741, 742, 743, -1, -1, - 745, -1, 747, -1, -1, 748, -1, -1, - -1, -1, 749, 752, 753, -1, -1, -1, - 754, 755, 756, 757, -1, -1, -1, -1, - 762, -1, -1, -1, -1, 763, 764, 767, - 770, -1, 773, 774, 776, 780, 781, -1, - -1, 782, -1, -1, 786, -1, 787, -1, - -1, 788, 789, -1, 790, 793, 794, 795, - 796, 797, 798, 800, 801, -1, -1, 802, - -1, -1, -1, 803, 806, 807, 808, 809, - 813, 815, -1, -1, -1, -1, -1, 823, - -1, 827, 831, 832, -1, 833, -1, -1, - -1, -1, -1, 834, 842, 844, 845, 847, - -1, 848, -1, -1, -1, -1, 849, -1, - 852, 853, -1, 861, 862, 863, -1, 868, - -1, 872, -1, -1, -1, -1, -1, 873, - -1, -1, -1, 874, 877, -1, -1, 878, - -1, 879, 880, -1, 881, 882, 890, -1, - 898, 901, 903, -1, 911, 919, -1, -1, - -1, -1, -1, -1, -1, 921, 923, 924, - -1, 926, 927, -1, -1, -1, -1, -1, - 928, -1, 931, 932, -1, -1, -1, -1, - -1, 935, 936, 937, 940, 943, -1, -1, - -1, 945, -1, -1, -1, -1, -1, 946, - -1, 947, -1, -1, 948, 949, -1, 951, - 952, -1, 953, 956, 959, -1, -1, -1, - -1, 961, -1, -1, -1, 965, 968, 970, - -1, 972, 973, 974, -1, 977, 978, -1, - 981, -1, 982, -1, 983, -1, 984, 985, - -1, 987, -1, -1, -1, -1, -1, -1, - -1, 988, 989, 992, -1, 995, -1, -1, - 996, -1, -1, 998, -1, -1, -1, -1, - /* 0x5300 */ - 999, -1, -1, 1000, 1002, 1004, 1005, -1, - -1, -1, 1008, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 1009, -1, 1011, 1012, -1, 1014, 1016, -1, - 1017, 1018, -1, -1, -1, -1, 1019, 1020, - 1021, 1023, -1, -1, -1, 1024, 1025, 1026, - -1, 1028, 1029, 1032, -1, -1, -1, -1, - 1035, -1, 1036, 1037, -1, -1, -1, -1, - 1039, -1, -1, 1040, -1, -1, 1041, 1042, - -1, 1046, -1, 1047, -1, 1049, 1050, 1053, - 1056, -1, 1057, 1058, 1060, 1063, 1065, -1, - 1067, -1, 1069, 1070, 1071, -1, -1, -1, - 1073, -1, 1074, -1, 1075, 1082, -1, 1084, - -1, -1, -1, 1085, -1, -1, 1087, 1088, - 1090, -1, -1, 1091, 1093, -1, -1, 1094, - 1096, 1097, -1, 1099, -1, 1100, -1, -1, - -1, -1, 1102, -1, 1105, 1106, 1108, 1114, - 1115, 1116, -1, 1117, 1119, 1120, 1121, -1, - 1122, -1, -1, 1123, -1, 1124, -1, -1, - 1126, 1130, 1131, 1132, -1, -1, -1, 1133, - 1134, 1136, 1137, 1138, 1139, -1, 1141, -1, - 1142, 1143, -1, -1, -1, 1145, 1146, 1147, - 1152, -1, 1154, 1155, 1157, 1158, 1159, 1160, - 1161, -1, 1164, 1165, -1, -1, 1166, 1168, - -1, 1170, 1172, 1175, 1178, 1181, 1184, 1185, - 1186, 1187, 1188, -1, 1189, 1190, 1193, 1194, - 1195, 1196, -1, 1200, -1, 1202, -1, -1, - 1203, 1205, -1, 1207, -1, -1, 1209, -1, - 1210, 1214, 1216, -1, -1, -1, -1, 1220, - -1, -1, 1223, 1226, -1, -1, -1, -1, - 1227, -1, -1, -1, -1, -1, 1232, 1236, - -1, 1237, -1, -1, -1, 1240, -1, -1, - /* 0x5400 */ - 1241, 1243, -1, 1245, -1, -1, -1, -1, - 1247, -1, 1248, -1, 1249, -1, 1251, -1, - -1, 1252, -1, 1254, -1, 1255, -1, 1256, - -1, -1, -1, -1, -1, 1257, 1258, 1259, - -1, -1, -1, -1, -1, -1, -1, -1, - 1262, -1, -1, -1, 1263, -1, -1, 1265, - -1, -1, -1, 1271, 1273, -1, 1275, -1, - -1, -1, -1, 1276, -1, 1277, -1, 1278, - -1, -1, 1279, -1, -1, -1, -1, -1, - 1280, 1282, 1284, -1, 1285, 1286, -1, -1, - 1287, 1288, 1289, 1290, -1, 1291, 1292, 1293, - 1294, 1297, 1299, 1300, 1301, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1302, - 1303, 1304, 1305, -1, -1, 1307, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1308, -1, -1, -1, - -1, -1, -1, -1, -1, 1311, -1, -1, - -1, -1, 1312, -1, 1315, -1, -1, 1318, - -1, -1, 1319, -1, -1, -1, -1, -1, - -1, 1321, -1, 1322, 1323, 1324, -1, -1, - -1, -1, -1, -1, 1325, -1, -1, -1, - -1, 1326, -1, -1, 1328, -1, -1, 1329, - -1, 1331, 1334, -1, -1, -1, -1, -1, - 1336, -1, -1, -1, 1338, 1340, -1, -1, - -1, -1, -1, -1, 1341, -1, -1, -1, - -1, -1, -1, -1, -1, 1343, -1, -1, - -1, 1344, 1348, 1349, 1350, 1351, -1, 1352, - -1, 1354, -1, -1, 1355, 1356, -1, 1357, - -1, 1358, -1, 1361, -1, -1, -1, -1, - -1, -1, -1, -1, 1362, -1, -1, -1, - -1, -1, 1363, -1, -1, -1, 1368, -1, - -1, -1, 1370, -1, -1, -1, -1, -1, - /* 0x5500 */ - 1371, -1, -1, -1, 1373, -1, -1, 1374, - -1, -1, -1, -1, -1, 1375, -1, -1, - 1376, -1, -1, -1, -1, 1377, 1378, -1, - 1382, -1, -1, 1388, -1, 1389, -1, -1, - 1390, -1, 1391, 1392, 1393, -1, -1, 1394, - -1, -1, -1, 1395, -1, -1, -1, -1, - -1, 1396, -1, -1, -1, -1, -1, -1, - 1397, -1, -1, -1, -1, -1, -1, -1, - 1398, -1, -1, -1, -1, -1, 1399, -1, - -1, -1, -1, -1, -1, -1, -1, 1400, - -1, -1, -1, 1401, 1407, -1, 1413, 1414, - -1, -1, -1, -1, -1, -1, 1415, 1419, - 1425, -1, -1, 1430, -1, -1, -1, 1433, - -1, -1, -1, -1, 1434, 1435, 1436, 1440, - 1441, -1, -1, -1, 1443, -1, -1, -1, - 1444, -1, 1445, -1, -1, -1, -1, -1, - 1446, -1, 1448, -1, 1450, -1, 1451, -1, - -1, -1, -1, -1, -1, -1, 1456, -1, - -1, 1458, 1460, -1, -1, -1, -1, -1, - -1, -1, 1463, -1, 1464, -1, 1467, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1468, 1469, 1470, 1472, -1, 1473, 1475, - 1477, -1, 1480, -1, -1, -1, 1481, 1483, - -1, -1, -1, 1485, -1, 1486, 1487, -1, - -1, -1, -1, -1, -1, 1488, 1489, 1490, - -1, -1, 1491, -1, -1, -1, 1492, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1493, -1, 1494, -1, -1, -1, - 1495, -1, -1, 1496, -1, 1497, -1, -1, - -1, 1498, -1, 1499, -1, -1, -1, -1, - -1, -1, -1, 1500, -1, -1, 1501, -1, - -1, 1502, -1, -1, -1, -1, -1, -1, - /* 0x5600 */ - -1, -1, -1, -1, -1, -1, 1503, -1, - -1, -1, 1505, -1, -1, 1506, -1, -1, - -1, 1507, -1, 1509, 1510, -1, 1511, 1512, - 1515, -1, -1, -1, 1516, -1, -1, -1, - -1, -1, -1, -1, 1517, -1, -1, -1, - 1518, 1519, -1, -1, -1, -1, 1521, 1522, - 1524, 1525, -1, -1, -1, 1526, -1, 1527, - 1528, -1, -1, -1, -1, 1529, -1, -1, - -1, 1530, 1531, -1, 1532, 1534, -1, -1, - -1, 1535, -1, -1, -1, -1, -1, -1, - 1537, -1, -1, 1538, -1, 1539, 1540, -1, - -1, -1, -1, 1542, 1544, 1545, -1, -1, - 1546, 1547, -1, -1, -1, 1548, 1549, -1, - 1550, -1, 1551, -1, -1, -1, -1, 1552, - -1, -1, 1553, -1, 1554, 1556, -1, -1, - 1559, 1560, -1, -1, -1, -1, 1561, -1, - 1562, -1, -1, -1, -1, -1, -1, 1563, - -1, -1, -1, -1, 1564, -1, -1, 1565, - 1566, -1, -1, -1, 1569, 1570, -1, -1, - -1, 1571, -1, -1, -1, -1, 1575, -1, - 1580, -1, 1581, 1582, -1, 1583, 1584, -1, - 1585, -1, -1, -1, -1, -1, 1586, -1, - -1, -1, 1587, 1588, 1589, -1, 1591, -1, - -1, -1, -1, 1592, -1, -1, -1, -1, - 1593, 1594, 1595, -1, -1, 1597, -1, -1, - 1598, 1599, 1601, -1, 1602, -1, -1, 1603, - -1, 1604, -1, 1605, -1, -1, -1, 1608, - 1611, 1617, -1, 1618, -1, -1, 1619, 1625, - 1626, -1, 1627, 1630, -1, -1, 1633, 1636, - -1, -1, 1637, -1, 1638, 1644, -1, 1647, - 1652, 1653, 1654, 1657, 1660, 1663, 1664, -1, - 1669, -1, -1, 1670, -1, 1675, 1680, -1, - /* 0x5700 */ - 1683, -1, -1, 1688, -1, -1, 1689, 1692, - 1693, -1, -1, 1694, -1, 1699, 1702, 1705, - -1, 1706, 1707, 1709, -1, -1, 1712, 1715, - 1718, -1, -1, -1, -1, 1720, -1, 1722, - -1, 1723, 1724, 1726, -1, -1, -1, 1727, - 1729, -1, -1, -1, 1730, 1731, -1, -1, - 1732, -1, -1, -1, -1, -1, -1, -1, - -1, 1735, 1736, -1, -1, 1738, -1, -1, - 1742, -1, 1743, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1745, - 1749, 1750, -1, 1751, 1752, -1, -1, 1755, - -1, 1758, 1759, 1760, 1766, 1767, 1769, 1771, - 1773, -1, -1, 1775, 1776, -1, 1777, 1778, - 1779, -1, -1, -1, -1, 1781, 1782, 1784, - 1786, -1, -1, 1787, -1, 1788, -1, -1, - 1790, -1, 1791, -1, -1, -1, -1, -1, - -1, -1, 1792, -1, 1793, 1794, 1795, 1796, - -1, -1, -1, 1797, -1, -1, -1, -1, - -1, -1, 1798, 1800, 1801, 1802, 1803, -1, - -1, -1, 1804, 1807, 1808, -1, -1, -1, - -1, 1809, 1810, -1, -1, -1, 1811, 1812, - 1813, 1814, -1, 1816, -1, 1817, -1, 1818, - -1, 1819, 1820, -1, 1821, -1, -1, -1, - -1, -1, -1, 1822, -1, -1, -1, -1, - 1824, -1, -1, -1, -1, -1, 1825, -1, - 1826, -1, 1827, -1, -1, -1, -1, -1, - -1, 1830, 1835, 1836, -1, -1, -1, -1, - 1837, 1838, 1840, -1, 1841, -1, 1843, -1, - -1, 1845, -1, -1, -1, -1, 1846, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1847, - -1, -1, -1, -1, 1848, 1851, -1, -1, - /* 0x5800 */ - -1, -1, 1852, 1853, -1, 1854, 1855, 1856, - -1, -1, 1857, -1, -1, -1, -1, -1, - -1, 1858, -1, -1, -1, 1859, 1861, -1, - -1, 1862, -1, -1, -1, 1863, -1, -1, - -1, -1, -1, -1, 1864, -1, 1866, -1, - -1, -1, -1, -1, -1, -1, -1, 1868, - 1871, 1873, -1, -1, 1874, -1, -1, -1, - -1, -1, 1876, -1, -1, -1, -1, -1, - -1, 1878, -1, -1, -1, -1, 1880, -1, - -1, -1, 1881, 1884, -1, 1885, -1, 1886, - 1887, 1888, 1889, -1, 1890, -1, -1, 1891, - -1, 1892, 1893, -1, -1, -1, -1, 1894, - -1, 1895, 1896, -1, 1897, -1, 1899, -1, - -1, 1900, -1, 1902, -1, -1, -1, -1, - -1, -1, 1903, -1, -1, 1905, -1, 1906, - -1, 1908, -1, -1, 1910, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1913, 1914, -1, 1915, -1, -1, -1, - -1, -1, -1, -1, -1, 1916, 1918, 1919, - -1, 1920, -1, -1, 1922, -1, 1924, -1, - -1, -1, 1925, -1, 1927, -1, -1, 1930, - -1, -1, -1, -1, -1, -1, 1931, 1933, - 1935, -1, -1, 1940, -1, 1942, 1947, -1, - 1948, -1, -1, 1949, -1, -1, 1950, -1, - -1, -1, -1, -1, 1951, -1, -1, 1953, - -1, -1, 1954, 1956, 1957, 1958, 1959, -1, - 1961, -1, -1, 1962, -1, -1, -1, -1, - 1964, 1966, 1967, -1, 1968, -1, 1973, 1975, - 1976, 1977, 1979, -1, 1980, 1981, -1, -1, - -1, 1984, 1986, -1, -1, -1, 1987, 1989, - 1991, 1992, 1993, 1995, -1, 1997, 1999, 2001, - 2003, 2004, 2005, 2007, 2009, 2010, -1, -1, - /* 0x5900 */ - 2012, -1, 2014, -1, 2015, 2017, -1, 2018, - -1, 2022, 2024, -1, -1, 2025, -1, 2028, - -1, -1, -1, 2029, 2030, -1, -1, -1, - 2031, -1, 2033, 2034, 2035, -1, -1, 2036, - 2037, -1, 2038, 2040, -1, 2042, -1, -1, - -1, 2043, -1, -1, 2046, 2047, -1, -1, - -1, -1, 2048, 2050, 2051, -1, 2052, -1, - 2053, 2054, 2055, -1, -1, -1, 2056, -1, - -1, 2057, 2060, -1, -1, -1, -1, 2061, - 2062, -1, -1, 2063, 2064, -1, -1, -1, - 2065, -1, -1, -1, 2066, -1, 2068, -1, - 2071, 2072, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2073, -1, 2075, - 2077, 2080, 2083, -1, 2084, -1, 2087, -1, - -1, -1, -1, -1, -1, -1, 2088, -1, - 2090, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2092, 2096, - 2098, -1, 2099, -1, -1, 2100, -1, -1, - -1, -1, 2102, -1, -1, -1, 2103, -1, - -1, 2104, -1, 2105, -1, 2106, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2110, 2111, 2112, 2114, -1, -1, -1, - -1, -1, -1, 2115, -1, -1, -1, 2118, - 2120, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2122, -1, - -1, 2123, 2124, 2125, -1, 2127, -1, -1, - 2128, -1, 2129, -1, -1, -1, -1, 2130, - -1, 2131, -1, -1, 2132, -1, -1, -1, - -1, -1, 2133, -1, -1, -1, 2134, 2136, - -1, -1, 2138, 2140, 2141, -1, 2142, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2143, -1, -1, 2145, -1, -1, -1, -1, - /* 0x5a00 */ - -1, -1, -1, -1, 2146, 2147, 2148, 2149, - 2150, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2151, -1, -1, -1, -1, -1, - 2152, -1, -1, 2154, -1, -1, -1, 2156, - -1, -1, -1, -1, 2157, -1, 2161, -1, - -1, -1, -1, -1, -1, 2162, -1, 2163, - 2165, 2166, 2168, -1, 2169, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2171, - 2173, 2176, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2177, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2178, -1, -1, 2179, -1, - -1, -1, -1, -1, 2181, 2182, -1, 2183, - -1, -1, -1, 2185, 2186, 2189, 2190, -1, - -1, -1, -1, -1, -1, -1, -1, 2191, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2193, 2195, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2196, - -1, -1, 2197, -1, -1, 2198, -1, 2199, - -1, -1, -1, -1, -1, -1, -1, -1, - 2201, -1, -1, -1, 2202, 2203, -1, 2204, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2206, -1, -1, -1, -1, - 2208, -1, 2209, -1, 2210, -1, -1, 2211, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2212, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2213, -1, -1, -1, 2214, 2215, -1, - -1, -1, 2217, 2219, -1, -1, -1, 2221, - /* 0x5b00 */ - 2222, -1, -1, 2224, -1, -1, -1, -1, - 2225, 2226, -1, 2227, 2228, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2229, -1, -1, -1, 2230, -1, -1, - -1, 2232, 2233, -1, 2235, -1, -1, -1, - -1, -1, 2236, -1, -1, 2238, -1, -1, - 2240, -1, 2243, -1, -1, -1, -1, 2244, - 2245, -1, -1, -1, -1, -1, 2246, -1, - -1, -1, -1, 2247, -1, -1, 2249, -1, - -1, -1, -1, -1, 2252, -1, -1, -1, - -1, -1, 2253, 2254, -1, -1, -1, -1, - -1, 2255, -1, -1, -1, -1, -1, -1, - 2256, -1, -1, -1, -1, -1, 2257, -1, - -1, -1, 2262, 2263, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2264, -1, -1, -1, 2269, 2270, 2271, 2274, - -1, 2275, 2281, 2282, -1, -1, 2285, -1, - 2286, -1, 2287, -1, -1, 2288, -1, -1, - 2289, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2291, 2293, 2297, 2299, - 2301, 2302, -1, -1, -1, -1, -1, -1, - -1, 2304, 2305, 2306, -1, -1, 2307, -1, - -1, -1, -1, -1, 2308, -1, 2310, 2311, - -1, -1, -1, 2313, 2314, 2316, 2318, -1, - 2320, -1, -1, 2321, -1, -1, 2322, 2323, - 2325, 2327, -1, -1, 2334, 2335, -1, -1, - -1, -1, -1, 2341, -1, 2342, -1, 2348, - -1, -1, 2354, 2358, 2360, 2366, -1, 2367, - 2368, -1, 2370, -1, -1, -1, 2371, 2373, - -1, 2379, -1, 2381, 2383, -1, -1, -1, - -1, -1, -1, 2385, -1, 2389, 2390, -1, - -1, 2394, -1, 2396, 2397, -1, 2398, 2400, - /* 0x5c00 */ - -1, -1, 2402, -1, -1, 2404, 2407, 2408, - 2409, 2411, -1, 2412, -1, 2413, 2415, -1, - -1, -1, 2416, 2419, 2422, -1, -1, -1, - 2425, 2426, 2427, 2428, -1, 2432, 2435, 2436, - 2441, -1, 2446, 2449, 2450, 2452, 2453, 2454, - -1, 2457, -1, 2458, 2459, 2460, -1, -1, - -1, -1, 2463, -1, 2468, -1, 2473, 2478, - 2483, -1, -1, -1, -1, 2484, -1, -1, - 2487, -1, 2489, 2490, -1, 2491, 2492, -1, - -1, -1, 2493, -1, 2494, 2496, 2497, 2498, - -1, -1, -1, 2500, -1, -1, -1, -1, - -1, -1, -1, 2501, -1, -1, 2503, -1, - -1, 2504, 2505, -1, 2506, -1, 2507, -1, - 2508, -1, -1, -1, 2509, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2510, - 2511, 2512, 2516, -1, -1, 2517, -1, -1, - 2519, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2520, 2521, - 2522, -1, 2523, 2524, -1, -1, -1, -1, - -1, 2531, -1, -1, -1, -1, -1, -1, - -1, 2532, -1, -1, -1, 2538, -1, -1, - -1, -1, -1, 2539, 2540, -1, -1, -1, - -1, -1, -1, -1, -1, 2541, -1, 2542, - -1, -1, -1, 2543, 2544, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2545, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2546, -1, -1, - -1, 2547, -1, 2548, 2549, 2550, 2551, -1, - 2552, 2553, -1, -1, -1, -1, -1, 2554, - 2555, -1, -1, -1, 2556, 2557, 2560, -1, - -1, -1, -1, -1, -1, 2567, -1, -1, - /* 0x5d00 */ - -1, -1, 2568, 2569, 2570, -1, -1, 2571, - 2572, -1, -1, 2573, -1, 2575, 2576, -1, - -1, -1, -1, -1, -1, -1, 2579, 2580, - 2581, 2583, -1, -1, -1, -1, -1, -1, - -1, -1, 2585, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2586, 2587, -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, 2589, -1, -1, -1, - 2590, -1, 2591, 2594, -1, -1, -1, 2597, - 2601, -1, 2604, -1, 2605, 2608, -1, -1, - 2609, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2611, - -1, -1, -1, 2612, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2613, -1, 2614, 2615, -1, -1, 2616, - -1, -1, -1, 2618, 2625, -1, -1, -1, - -1, -1, -1, -1, 2632, -1, -1, 2633, - -1, -1, -1, -1, -1, -1, -1, -1, - 2634, -1, 2635, -1, -1, -1, -1, 2636, - 2637, -1, -1, -1, -1, -1, 2638, -1, - -1, -1, 2639, 2640, 2643, -1, -1, -1, - 2645, 2648, 2655, -1, 2656, 2657, -1, -1, - -1, -1, -1, -1, -1, 2658, 2660, -1, - -1, -1, -1, 2663, 2664, -1, -1, -1, - -1, -1, 2667, 2668, 2669, -1, 2670, 2673, - -1, -1, -1, 2676, -1, 2677, -1, -1, - 2678, -1, 2679, 2680, -1, -1, -1, -1, - -1, 2681, -1, -1, -1, -1, -1, 2682, - 2683, -1, -1, -1, -1, 2684, -1, 2685, - -1, -1, 2686, 2687, -1, 2689, -1, 2690, - /* 0x5e00 */ - 2692, 2694, -1, 2697, -1, 2698, -1, -1, - 2699, -1, -1, 2700, -1, -1, -1, 2701, - 2702, 2703, 2704, -1, -1, 2705, -1, -1, - 2706, -1, 2707, -1, 2708, -1, -1, -1, - -1, -1, -1, -1, -1, 2710, 2711, 2713, - -1, -1, -1, 2714, -1, 2715, 2716, 2719, - 2721, 2724, -1, 2725, -1, -1, 2726, -1, - -1, -1, -1, 2728, 2729, 2730, -1, -1, - 2731, -1, 2732, 2734, -1, -1, -1, 2735, - 2738, -1, -1, -1, 2740, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2741, - 2742, -1, 2743, -1, -1, -1, -1, 2746, - -1, 2748, -1, 2749, 2751, -1, -1, -1, - -1, -1, -1, 2753, 2756, -1, -1, -1, - -1, -1, 2757, -1, 2760, -1, 2761, 2767, - 2768, 2769, 2771, -1, -1, -1, 2772, 2773, - -1, 2776, -1, 2778, 2780, 2782, 2786, -1, - -1, -1, 2787, -1, -1, -1, -1, -1, - 2788, 2789, -1, 2790, 2791, -1, -1, -1, - -1, 2793, -1, -1, -1, -1, 2794, 2795, - -1, -1, -1, -1, -1, -1, -1, 2797, - -1, -1, -1, 2798, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2799, 2803, -1, - -1, -1, 2804, 2809, 2810, 2811, -1, 2812, - -1, 2813, 2815, 2816, -1, -1, -1, -1, - 2818, -1, -1, -1, -1, -1, 2819, 2820, - 2822, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2824, 2825, -1, 2828, -1, 2829, - 2831, 2833, 2834, 2836, -1, -1, -1, -1, - -1, 2838, 2839, -1, 2840, -1, -1, -1, - 2841, -1, -1, 2844, -1, -1, -1, -1, - 2848, -1, -1, 2849, 2855, 2857, -1, -1, - /* 0x5f00 */ - 2863, 2864, 2871, 2872, 2873, -1, -1, -1, - -1, 2875, -1, -1, 2876, 2877, 2878, -1, - 2880, 2883, 2884, -1, 2885, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 2886, -1, -1, -1, -1, 2887, 2889, -1, - -1, -1, 2890, -1, -1, -1, -1, 2891, - -1, -1, -1, 2892, -1, 2893, -1, 2894, - -1, 2895, 2897, 2898, 2899, -1, 2900, -1, - -1, -1, -1, -1, -1, -1, 2902, -1, - 2903, -1, -1, -1, 2905, -1, 2906, -1, - 2907, 2908, 2909, 2912, 2914, 2915, -1, 2918, - -1, 2919, 2921, 2923, 2926, 2929, 2932, 2935, - 2936, -1, -1, -1, -1, 2938, 2939, -1, - 2940, 2941, -1, 2942, 2943, -1, -1, -1, - -1, -1, 2945, -1, 2946, -1, -1, 2947, - -1, -1, -1, 2950, -1, -1, -1, 2951, - 2953, 2955, -1, 2958, 2959, -1, -1, 2962, - 2963, -1, 2964, -1, 2965, -1, -1, 2966, - -1, 2967, -1, 2970, -1, 2972, -1, -1, - -1, -1, -1, -1, -1, -1, 2974, -1, - 2976, 2978, -1, 2979, 2981, -1, -1, -1, - -1, 2982, -1, -1, 2984, 2987, -1, -1, - 2988, 2989, -1, 2990, 2993, 2995, -1, 2997, - -1, 3000, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3001, 3002, -1, 3003, -1, - -1, -1, -1, -1, -1, -1, 3004, 3005, - -1, -1, -1, -1, -1, -1, -1, 3007, - -1, 3008, -1, -1, 3009, -1, -1, -1, - -1, -1, 3011, 3012, -1, -1, -1, 3013, - -1, 3014, -1, -1, -1, -1, -1, -1, - 3017, -1, -1, -1, -1, 3018, -1, -1, - -1, -1, -1, -1, -1, -1, 3019, -1, - /* 0x6000 */ - 3020, 3022, 3023, 3024, 3025, 3026, 3027, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3028, -1, 3029, -1, - -1, -1, -1, -1, 3030, 3031, -1, -1, - -1, -1, -1, 3032, -1, 3034, -1, -1, - -1, -1, 3035, -1, -1, -1, -1, -1, - -1, 3036, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3039, 3044, -1, -1, 3045, - -1, -1, -1, -1, -1, -1, 3046, -1, - -1, -1, -1, 3047, -1, -1, -1, -1, - -1, -1, 3048, 3049, -1, -1, 3051, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3052, 3053, -1, -1, 3055, 3057, -1, -1, - -1, -1, 3058, -1, -1, -1, -1, -1, - -1, 3059, -1, 3061, 3062, 3065, 3066, -1, - 3070, 3071, 3072, 3073, 3074, 3076, 3077, 3078, - 3080, -1, -1, -1, -1, 3082, -1, -1, - -1, -1, 3084, 3089, -1, 3090, -1, -1, - -1, 3091, -1, 3092, -1, -1, 3093, -1, - -1, -1, -1, -1, -1, -1, 3095, 3096, - -1, -1, 3097, -1, 3098, -1, 3101, -1, - -1, 3103, 3105, 3108, 3109, 3110, -1, 3111, - -1, -1, -1, 3112, 3115, 3116, 3117, -1, - -1, -1, -1, -1, -1, 3118, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3120, -1, -1, -1, -1, -1, - -1, -1, 3122, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3125, -1, - 3127, 3128, -1, 3131, -1, 3132, -1, 3134, - 3135, 3136, -1, 3137, 3138, 3139, 3141, 3142, - -1, 3143, 3145, -1, -1, -1, -1, 3146, - -1, -1, -1, 3147, 3148, -1, -1, -1, - /* 0x6100 */ - -1, -1, 3149, -1, -1, -1, -1, -1, - 3151, -1, -1, -1, -1, -1, -1, -1, - -1, 3153, -1, -1, -1, -1, -1, -1, - -1, 3155, -1, 3156, 3157, -1, -1, -1, - 3158, 3159, -1, -1, 3160, -1, 3161, 3162, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3164, 3165, -1, -1, 3166, - -1, 3167, -1, -1, 3169, 3170, 3171, 3172, - -1, -1, 3173, -1, 3175, -1, -1, 3176, - -1, -1, -1, 3177, -1, 3178, 3179, -1, - -1, 3182, -1, -1, -1, -1, -1, -1, - 3184, 3185, 3187, -1, -1, -1, -1, 3189, - -1, -1, -1, 3191, 3192, -1, -1, -1, - -1, -1, 3193, 3194, -1, 3195, 3196, -1, - -1, -1, -1, 3197, 3198, -1, 3199, -1, - -1, -1, -1, -1, 3200, 3202, 3204, 3205, - -1, 3208, 3209, -1, -1, 3210, -1, 3211, - -1, -1, 3212, -1, -1, -1, -1, -1, - 3213, 3214, 3217, -1, 3218, -1, 3220, 3222, - 3223, 3226, 3229, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3230, 3231, -1, -1, - -1, 3234, -1, 3235, -1, -1, 3236, -1, - -1, -1, 3237, -1, -1, -1, 3238, -1, - -1, -1, -1, 3239, -1, -1, -1, -1, - -1, -1, -1, 3240, -1, -1, -1, 3241, - -1, 3242, -1, -1, 3244, 3245, -1, -1, - 3246, 3248, 3249, -1, 3251, -1, -1, -1, - -1, -1, -1, -1, 3252, -1, 3253, 3254, - -1, -1, -1, 3255, -1, -1, 3256, 3257, - 3258, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3259, -1, 3260, 3262, 3263, 3264, - 3266, -1, 3267, -1, 3268, 3270, 3271, 3272, - /* 0x6200 */ - 3273, -1, -1, -1, -1, -1, 3274, 3275, - -1, -1, -1, 3276, -1, -1, -1, 3277, - -1, -1, -1, -1, 3279, -1, -1, 3280, - 3281, -1, 3283, 3285, -1, 3286, 3288, -1, - -1, -1, -1, -1, -1, -1, 3289, 3291, - -1, 3292, -1, -1, 3293, -1, 3294, 3296, - 3298, -1, 3300, -1, -1, -1, 3302, 3304, - 3306, 3308, -1, 3309, 3310, -1, 3312, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3313, 3314, 3315, 3316, -1, - -1, 3318, -1, -1, -1, 3320, -1, 3321, - 3322, -1, -1, -1, -1, -1, 3324, -1, - 3325, -1, -1, 3326, -1, -1, -1, 3327, - 3328, 3330, 3332, 3333, 3334, -1, -1, 3335, - 3336, -1, -1, -1, -1, 3337, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3338, -1, -1, -1, -1, -1, - -1, 3340, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3341, 3342, 3343, 3344, 3345, 3347, - 3348, 3349, 3350, -1, 3351, 3352, -1, -1, - -1, -1, -1, -1, 3353, -1, -1, -1, - -1, -1, -1, -1, -1, 3354, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3357, -1, -1, 3358, -1, -1, - 3359, -1, -1, 3360, -1, -1, -1, 3361, - 3362, -1, -1, 3364, 3365, 3366, 3367, 3368, - -1, -1, -1, -1, 3369, 3370, 3371, 3372, - 3373, 3375, 3378, 3379, -1, 3380, 3381, 3382, - 3383, 3385, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3387, - /* 0x6300 */ - -1, -1, 3388, -1, 3389, -1, -1, -1, - -1, -1, 3391, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3393, 3396, 3397, 3398, 3399, 3400, 3401, - 3402, 3403, 3404, 3405, 3406, 3407, 3408, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3409, -1, 3411, - -1, -1, -1, -1, -1, 3412, 3413, 3414, - -1, 3415, -1, -1, -1, -1, 3418, -1, - -1, -1, -1, -1, -1, 3421, -1, 3422, - -1, -1, -1, -1, -1, -1, -1, 3423, - -1, -1, -1, -1, 3424, -1, 3425, 3426, - -1, 3427, 3428, 3429, -1, -1, -1, -1, - 3431, -1, -1, 3432, -1, -1, 3433, -1, - -1, -1, 3435, -1, 3437, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3438, - -1, -1, -1, 3440, 3442, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3443, - -1, 3444, -1, 3445, -1, -1, -1, -1, - -1, 3446, -1, -1, -1, 3447, -1, -1, - -1, -1, -1, -1, 3448, -1, -1, -1, - -1, -1, 3449, 3450, 3451, -1, -1, 3452, - 3453, -1, 3454, 3455, 3456, 3457, -1, -1, - 3458, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3459, 3460, -1, -1, -1, -1, -1, - -1, -1, 3461, 3462, -1, -1, -1, -1, - 3463, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3464, 3465, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3466, 3467, -1, -1, 3469, -1, 3470, - /* 0x6400 */ - 3471, 3472, 3473, 3474, -1, 3475, 3478, -1, - -1, -1, -1, -1, -1, 3479, -1, -1, - -1, -1, 3480, -1, 3481, -1, 3482, 3484, - -1, -1, -1, -1, 3485, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3487, -1, -1, -1, -1, 3488, -1, -1, - -1, -1, 3489, -1, -1, -1, 3490, -1, - -1, -1, 3491, -1, -1, -1, 3493, -1, - -1, -1, 3494, -1, 3496, 3498, 3499, 3501, - 3503, -1, 3504, -1, -1, -1, -1, -1, - -1, 3505, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3506, -1, -1, 3507, - 3508, -1, -1, -1, -1, -1, -1, -1, - -1, 3511, -1, -1, -1, -1, -1, 3512, - -1, -1, -1, 3513, -1, -1, 3514, -1, - -1, -1, -1, 3515, -1, -1, -1, -1, - -1, -1, -1, 3516, 3518, -1, -1, -1, - 3519, -1, -1, -1, -1, -1, -1, 3520, - 3521, 3522, -1, 3523, -1, -1, -1, -1, - 3524, -1, 3525, -1, -1, -1, -1, 3526, - -1, 3527, -1, 3528, -1, 3529, 3531, 3532, - -1, -1, -1, 3535, -1, -1, -1, -1, - -1, -1, 3536, 3538, -1, 3539, -1, 3540, - 3541, 3542, 3545, 3546, -1, -1, 3547, 3548, - -1, 3549, -1, -1, 3550, -1, -1, 3551, - 3553, -1, 3555, 3557, -1, 3558, -1, -1, - -1, 3559, -1, -1, 3560, 3561, -1, -1, - -1, -1, 3563, -1, -1, -1, 3565, -1, - 3566, 3567, -1, 3568, -1, 3569, -1, 3570, - -1, -1, -1, -1, 3573, -1, -1, 3574, - 3575, 3576, 3577, -1, 3578, 3581, -1, 3582, - -1, -1, 3584, 3585, 3586, 3587, 3588, -1, - /* 0x6500 */ - 3589, -1, -1, -1, 3590, 3591, 3592, -1, - 3593, -1, 3594, -1, -1, -1, -1, 3595, - -1, -1, 3596, -1, 3597, -1, 3598, -1, - -1, 3599, -1, 3600, 3601, 3603, -1, 3605, - -1, -1, 3606, 3608, 3609, -1, -1, -1, - 3610, -1, 3611, 3614, 3615, -1, -1, -1, - -1, -1, -1, -1, 3617, 3618, 3619, 3620, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3621, - 3625, 3628, -1, -1, 3629, 3630, 3632, 3633, - -1, -1, -1, -1, -1, 3634, -1, 3636, - 3638, 3640, -1, 3641, -1, -1, 3643, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3644, -1, -1, -1, -1, -1, -1, - 3649, -1, -1, -1, -1, 3650, -1, 3651, - 3652, -1, 3653, -1, -1, -1, -1, -1, - -1, 3657, 3658, 3660, -1, 3661, 3666, -1, - 3671, 3676, 3680, 3684, 3686, 3688, 3689, -1, - -1, -1, -1, 3691, 3692, 3694, -1, 3695, - -1, -1, -1, -1, -1, -1, 3700, 3702, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3703, -1, -1, 3704, 3705, -1, -1, - -1, -1, 3706, -1, -1, 3707, -1, 3708, - -1, -1, -1, -1, 3709, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3712, 3713, -1, -1, -1, -1, -1, -1, - -1, -1, 3714, -1, -1, -1, -1, 3715, - 3717, 3719, -1, 3721, -1, -1, -1, -1, - 3722, -1, -1, -1, -1, 3723, -1, 3724, - -1, -1, 3725, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3728, 3730, - 3733, 3734, 3736, -1, -1, -1, 3737, 3738, - /* 0x6600 */ - -1, -1, 3739, -1, -1, -1, -1, 3740, - -1, -1, 3742, -1, -1, -1, 3743, 3744, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3745, 3746, -1, -1, -1, -1, 3747, - -1, -1, -1, -1, -1, 3748, 3749, -1, - -1, -1, -1, -1, 3750, 3751, -1, 3752, - 3753, -1, -1, -1, -1, -1, -1, -1, - 3754, -1, -1, 3755, 3756, 3758, 3759, 3761, - -1, -1, 3763, 3765, 3766, -1, -1, -1, - -1, 3767, -1, 3768, -1, -1, -1, -1, - -1, -1, 3769, 3770, 3772, 3773, 3774, -1, - -1, -1, 3775, -1, -1, 3776, -1, 3778, - 3779, -1, -1, -1, 3780, -1, -1, -1, - 3781, 3782, -1, -1, -1, -1, 3783, -1, - -1, -1, -1, -1, 3784, -1, -1, -1, - -1, -1, -1, 3786, -1, -1, -1, -1, - 3787, 3788, 3790, 3791, -1, -1, -1, -1, - 3793, 3794, -1, -1, -1, -1, -1, -1, - -1, -1, 3795, -1, -1, -1, 3796, 3798, - 3803, -1, -1, -1, 3804, -1, -1, -1, - -1, -1, 3805, -1, 3806, -1, 3809, 3812, - 3813, -1, -1, 3814, -1, 3815, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3817, -1, -1, -1, -1, -1, -1, -1, - -1, 3819, -1, -1, 3820, -1, 3821, 3825, - -1, 3826, -1, -1, 3828, 3832, -1, 3833, - -1, -1, -1, -1, -1, -1, 3834, -1, - -1, -1, -1, -1, -1, -1, -1, 3835, - 3836, -1, -1, -1, -1, -1, -1, -1, - 3838, -1, -1, -1, 3839, -1, -1, -1, - -1, -1, 3840, 3845, -1, 3846, -1, -1, - 3847, 3850, 3851, 3852, -1, 3854, 3855, -1, - /* 0x6700 */ - 3856, -1, 3857, 3859, -1, -1, -1, 3860, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3861, 3862, - -1, 3863, -1, 3864, -1, -1, 3865, 3866, - -1, -1, 3867, -1, -1, -1, -1, 3868, - -1, -1, -1, -1, 3869, 3871, 3872, 3873, - -1, 3875, -1, -1, 3876, 3878, 3879, -1, - -1, -1, 3880, -1, -1, -1, -1, -1, - 3882, -1, 3883, 3886, -1, -1, 3888, 3889, - -1, 3890, -1, -1, -1, -1, -1, -1, - -1, 3893, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 3894, 3895, -1, -1, 3896, 3897, 3898, -1, - 3899, 3900, -1, -1, -1, -1, -1, 3901, - 3903, 3904, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3905, 3911, - 3912, 3917, -1, -1, 3918, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3920, - -1, -1, 3921, -1, -1, -1, -1, -1, - -1, 3925, -1, -1, 3928, -1, 3929, -1, - -1, 3930, 3931, 3932, -1, 3933, 3934, 3935, - 3936, 3937, 3942, 3945, -1, 3946, -1, -1, - -1, 3947, -1, -1, 3950, -1, -1, -1, - -1, -1, -1, 3952, -1, -1, -1, -1, - -1, 3953, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3954, - -1, -1, -1, -1, -1, 3955, -1, 3956, - -1, -1, -1, -1, 3961, -1, -1, -1, - 3962, -1, -1, -1, -1, 3963, -1, -1, - -1, 3964, -1, -1, -1, -1, -1, -1, - 3966, -1, -1, 3967, -1, 3970, -1, -1, - -1, 3971, 3972, 3974, -1, 3975, 3976, 3978, - /* 0x6800 */ - 3979, 3980, -1, 3983, 3985, 3987, -1, 3988, - 3989, 3991, 3992, 3994, 3995, -1, 3997, 3999, - -1, 4001, -1, -1, -1, -1, 4002, 4004, - -1, -1, -1, -1, -1, -1, 4006, -1, - -1, -1, 4007, -1, -1, -1, -1, 4008, - -1, -1, -1, -1, -1, -1, -1, -1, - 4009, -1, -1, -1, -1, -1, -1, 4011, - 4013, -1, -1, -1, -1, -1, 4014, -1, - -1, -1, 4016, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4017, -1, -1, -1, - -1, 4019, 4020, -1, -1, -1, -1, -1, - 4021, -1, -1, -1, 4022, 4024, -1, 4025, - 4027, 4030, 4031, 4032, 4033, 4034, 4036, 4037, - 4038, 4039, 4040, -1, -1, -1, 4041, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4043, 4044, -1, 4047, -1, -1, 4048, - -1, 4049, -1, -1, 4051, 4052, -1, -1, - -1, -1, -1, -1, -1, 4054, -1, -1, - -1, -1, -1, -1, 4056, -1, -1, -1, - 4057, -1, -1, -1, -1, 4058, -1, 4059, - -1, -1, -1, -1, -1, 4060, 4065, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4067, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4069, -1, 4070, 4071, - 4072, -1, 4074, -1, 4075, -1, -1, -1, - -1, -1, 4076, 4080, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4084, 4085, 4086, - -1, -1, -1, -1, -1, -1, -1, 4087, - -1, -1, -1, -1, -1, 4088, -1, 4089, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4091, 4092, -1, -1, -1, 4094, -1, - -1, 4095, -1, -1, -1, -1, -1, -1, - /* 0x6900 */ - 4096, 4097, -1, -1, -1, -1, -1, -1, - -1, 4098, -1, -1, -1, -1, 4100, 4101, - -1, -1, -1, -1, -1, -1, -1, 4104, - 4106, 4107, -1, -1, 4108, -1, -1, 4110, - 4111, -1, 4112, -1, 4113, -1, -1, -1, - -1, -1, -1, 4114, -1, 4115, -1, -1, - 4116, -1, -1, -1, 4117, -1, 4118, -1, - -1, 4119, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4120, -1, -1, 4121, -1, -1, - -1, -1, -1, 4123, -1, 4124, -1, -1, - -1, 4125, 4126, -1, -1, -1, -1, -1, - 4127, 4128, -1, -1, -1, 4129, 4130, -1, - 4131, -1, 4132, 4133, -1, 4134, -1, -1, - -1, -1, -1, 4135, -1, 4137, -1, -1, - -1, -1, -1, -1, 4138, 4139, -1, 4141, - -1, -1, -1, -1, 4142, 4143, 4144, 4145, - 4146, 4147, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4149, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4150, -1, - 4152, -1, 4153, -1, -1, -1, 4154, -1, - -1, -1, 4156, -1, 4157, -1, -1, -1, - -1, -1, -1, -1, 4158, -1, -1, 4159, - -1, -1, -1, -1, -1, -1, -1, 4160, - 4161, -1, -1, 4163, -1, 4164, -1, -1, - -1, 4165, -1, 4167, 4168, 4170, -1, 4172, - 4174, 4176, 4177, 4178, -1, -1, 4180, 4181, - 4182, -1, -1, -1, 4183, -1, -1, 4184, - 4185, -1, -1, -1, -1, -1, -1, -1, - -1, 4186, -1, 4187, -1, -1, 4188, -1, - -1, 4189, -1, -1, -1, -1, -1, -1, - /* 0x6a00 */ - -1, 4190, 4191, 4193, -1, 4194, -1, -1, - -1, -1, 4195, -1, -1, -1, -1, -1, - 4196, 4197, 4199, 4200, -1, -1, -1, -1, - -1, 4201, -1, -1, -1, -1, 4202, -1, - -1, -1, -1, 4203, -1, -1, -1, -1, - -1, 4205, 4207, -1, -1, -1, -1, 4209, - -1, 4211, -1, 4213, -1, -1, -1, 4214, - 4218, 4220, 4221, -1, -1, 4222, -1, 4223, - -1, -1, -1, 4224, -1, -1, -1, -1, - 4226, -1, 4227, 4228, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4230, - -1, -1, 4231, -1, -1, -1, -1, -1, - -1, -1, -1, 4233, -1, -1, 4235, -1, - 4238, 4239, -1, -1, -1, -1, -1, -1, - -1, 4240, -1, -1, 4243, -1, -1, -1, - -1, 4244, -1, 4245, -1, -1, 4246, -1, - -1, 4247, -1, -1, -1, -1, -1, 4248, - 4250, -1, -1, -1, 4251, -1, -1, 4252, - 4254, -1, -1, -1, 4255, 4256, -1, 4257, - -1, -1, 4258, 4260, -1, -1, -1, -1, - -1, 4261, 4262, -1, -1, -1, 4264, 4265, - -1, 4267, -1, 4271, -1, -1, -1, -1, - 4272, -1, -1, 4273, -1, -1, -1, -1, - 4274, 4278, 4279, 4280, -1, -1, -1, -1, - 4281, -1, -1, -1, 4282, -1, 4283, -1, - -1, -1, -1, 4285, 4287, 4288, -1, -1, - -1, -1, 4289, 4290, -1, 4291, 4292, 4293, - -1, -1, -1, -1, -1, 4295, -1, 4296, - 4297, -1, 4298, -1, 4299, -1, -1, -1, - -1, -1, -1, 4300, -1, -1, -1, -1, - 4301, -1, 4302, 4303, -1, 4305, -1, -1, - /* 0x6b00 */ - -1, -1, -1, -1, 4306, 4308, -1, -1, - -1, 4309, 4313, -1, -1, -1, -1, 4315, - -1, 4316, 4317, -1, -1, -1, 4319, 4320, - -1, -1, -1, -1, -1, 4322, 4325, -1, - 4327, -1, 4329, 4333, 4336, -1, -1, 4337, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4338, -1, -1, 4339, -1, -1, - -1, -1, -1, 4340, -1, 4341, 4342, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4343, -1, 4344, -1, - 4346, -1, -1, 4347, -1, -1, 4349, -1, - 4352, -1, -1, 4353, -1, 4355, -1, 4356, - -1, 4357, -1, -1, -1, 4359, -1, -1, - 4361, 4363, -1, -1, 4365, -1, 4366, 4369, - -1, -1, 4371, 4375, 4379, -1, -1, 4382, - 4385, 4388, 4389, -1, 4390, -1, 4392, 4396, - 4400, 4401, -1, -1, -1, -1, -1, 4405, - -1, -1, -1, 4406, -1, -1, -1, -1, - -1, -1, 4407, 4408, -1, -1, -1, -1, - 4409, -1, 4410, -1, -1, -1, 4411, -1, - -1, 4412, -1, -1, 4413, -1, -1, -1, - -1, -1, -1, 4414, -1, -1, 4415, 4416, - -1, 4417, 4419, -1, 4421, -1, -1, 4422, - -1, -1, 4423, 4424, 4426, -1, -1, -1, - 4428, 4429, 4432, -1, -1, -1, 4433, -1, - -1, 4434, -1, -1, -1, -1, 4436, 4437, - -1, -1, -1, 4438, 4440, 4441, -1, 4442, - 4443, 4444, -1, -1, -1, -1, -1, 4445, - -1, 4446, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4447, -1, 4448, -1, - -1, -1, -1, -1, -1, 4449, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4450, - /* 0x6c00 */ - -1, -1, 4451, -1, -1, -1, -1, 4453, - 4454, -1, 4456, -1, 4457, -1, -1, -1, - -1, -1, -1, -1, 4458, -1, -1, 4461, - -1, -1, -1, 4464, -1, -1, -1, -1, - -1, -1, 4465, 4466, -1, -1, -1, -1, - -1, 4469, -1, 4470, 4471, -1, -1, -1, - -1, -1, 4472, 4473, 4474, 4476, -1, 4478, - -1, -1, 4481, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4483, - -1, 4487, -1, -1, -1, -1, 4488, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4489, 4491, -1, -1, -1, -1, -1, - -1, 4493, -1, -1, 4495, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4496, 4497, -1, -1, -1, - -1, 4498, 4499, 4500, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 4501, 4503, -1, -1, -1, -1, -1, -1, - -1, -1, 4504, -1, -1, -1, 4505, 4506, - -1, -1, -1, -1, -1, -1, -1, 4507, - -1, 4508, 4513, 4515, 4516, 4517, 4518, 4519, - 4520, 4521, 4522, -1, -1, -1, 4524, -1, - -1, 4525, 4526, -1, -1, 4527, -1, -1, - -1, -1, -1, -1, -1, -1, 4528, -1, - -1, 4529, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4530, -1, -1, - -1, -1, -1, 4532, -1, 4533, 4534, -1, - -1, -1, -1, -1, -1, 4535, -1, -1, - 4536, -1, 4537, -1, -1, -1, -1, 4539, - 4540, -1, -1, -1, -1, -1, 4541, 4542, - 4544, -1, 4545, 4546, 4547, 4550, 4552, -1, - /* 0x6d00 */ - -1, 4553, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4554, -1, -1, -1, - -1, -1, 4555, -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, 4556, - -1, -1, -1, -1, -1, -1, 4557, -1, - -1, -1, -1, -1, 4558, -1, -1, -1, - 4559, -1, -1, 4560, 4561, 4562, 4563, 4564, - 4565, 4566, 4567, 4568, -1, 4569, 4570, 4572, - 4574, 4575, 4576, 4577, 4578, 4579, -1, -1, - -1, -1, -1, -1, 4580, -1, -1, -1, - -1, -1, -1, 4583, -1, -1, -1, 4584, - -1, 4587, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4588, -1, -1, 4589, -1, -1, -1, - -1, -1, 4590, -1, -1, 4592, -1, 4593, - -1, 4594, -1, -1, 4595, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4596, -1, - -1, 4598, -1, 4600, 4601, 4603, 4604, 4605, - 4606, 4607, 4608, 4609, 4610, -1, 4611, 4612, - 4614, 4615, -1, -1, -1, -1, -1, 4619, - -1, -1, -1, -1, -1, -1, -1, -1, - 4620, -1, -1, -1, 4621, -1, -1, -1, - 4622, -1, -1, -1, 4623, -1, -1, -1, - -1, -1, -1, 4624, -1, -1, -1, -1, - -1, -1, 4625, -1, -1, -1, -1, -1, - -1, -1, 4626, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4628, -1, -1, - 4629, -1, 4631, 4632, -1, -1, -1, -1, - -1, -1, -1, 4634, -1, 4635, 4638, -1, - 4639, -1, 4640, 4641, -1, -1, -1, -1, - /* 0x6e00 */ - -1, -1, -1, -1, -1, 4642, -1, 4643, - 4644, 4646, 4647, 4650, 4654, 4655, 4656, -1, - 4658, 4659, -1, 4660, 4664, 4665, 4668, 4669, - -1, 4670, -1, 4671, -1, -1, -1, -1, - -1, -1, 4672, -1, -1, -1, 4673, -1, - -1, 4674, -1, -1, 4675, -1, -1, -1, - -1, -1, -1, -1, 4676, -1, -1, -1, - 4677, -1, -1, -1, -1, -1, 4679, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4680, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4681, -1, - -1, -1, -1, -1, -1, -1, -1, 4682, - -1, -1, -1, -1, -1, -1, -1, 4683, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4684, 4685, 4686, 4687, 4688, - 4690, 4692, 4693, 4694, -1, 4695, -1, 4696, - -1, 4697, -1, -1, 4698, -1, -1, -1, - 4701, -1, -1, -1, -1, 4702, 4704, -1, - -1, -1, -1, -1, 4706, 4707, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4708, 4712, -1, -1, 4713, 4714, - -1, -1, -1, 4716, -1, -1, 4717, -1, - -1, -1, -1, -1, 4719, -1, -1, -1, - -1, -1, -1, -1, 4721, 4722, -1, -1, - -1, -1, -1, -1, 4723, -1, 4724, -1, - -1, -1, -1, -1, -1, -1, -1, 4725, - -1, 4726, 4728, 4729, -1, 4730, 4732, 4733, - 4736, 4737, 4739, -1, 4740, 4741, 4742, -1, - 4743, 4746, 4747, -1, 4748, -1, -1, 4750, - -1, -1, 4751, -1, -1, -1, -1, 4752, - 4755, -1, -1, 4757, -1, -1, 4758, 4759, - /* 0x6f00 */ - -1, 4761, -1, -1, 4762, -1, 4763, -1, - -1, -1, 4764, -1, -1, -1, -1, -1, - -1, 4765, -1, 4766, -1, -1, -1, -1, - -1, -1, 4767, -1, -1, -1, -1, -1, - -1, -1, 4768, 4769, -1, -1, -1, 4770, - -1, -1, -1, 4773, 4774, -1, -1, -1, - -1, 4775, 4776, -1, -1, -1, -1, -1, - 4777, -1, -1, -1, -1, -1, -1, 4778, - -1, 4779, -1, -1, 4780, 4781, 4782, 4783, - -1, -1, -1, 4784, -1, 4785, -1, -1, - -1, 4786, -1, -1, 4789, -1, -1, -1, - -1, 4791, -1, 4792, 4794, -1, -1, -1, - -1, -1, -1, -1, 4796, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4797, - 4798, -1, -1, -1, 4799, -1, -1, 4800, - -1, -1, -1, -1, -1, -1, -1, 4801, - 4802, 4806, 4810, -1, 4813, -1, 4816, 4817, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4818, -1, -1, 4819, -1, -1, 4820, - -1, -1, 4821, 4822, 4825, -1, -1, 4826, - 4828, -1, -1, 4829, 4830, -1, 4832, -1, - -1, 4833, -1, -1, -1, -1, 4834, -1, - 4835, 4836, -1, 4837, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4838, -1, 4839, -1, -1, -1, 4840, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4841, 4843, -1, 4844, 4845, -1, -1, - 4847, -1, 4848, 4850, 4852, -1, -1, 4853, - -1, -1, -1, -1, 4855, -1, -1, -1, - -1, -1, -1, 4856, -1, -1, -1, -1, - 4857, 4858, -1, 4861, -1, 4863, 4866, -1, - -1, -1, 4868, -1, 4869, -1, 4870, -1, - /* 0x7000 */ - -1, -1, 4871, -1, -1, 4874, 4875, -1, - -1, 4877, -1, 4878, -1, -1, -1, 4880, - -1, -1, -1, 4881, -1, 4884, -1, -1, - 4885, -1, -1, -1, -1, 4886, -1, 4887, - 4888, -1, -1, -1, -1, -1, 4889, 4890, - 4892, -1, -1, -1, 4894, -1, -1, 4896, - 4897, -1, 4898, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4900, -1, - -1, -1, -1, 4901, 4902, -1, -1, -1, - -1, -1, -1, 4903, 4905, -1, 4906, 4908, - -1, 4909, -1, -1, 4910, 4912, -1, -1, - 4913, -1, -1, -1, -1, 4914, -1, -1, - -1, -1, -1, 4915, 4916, -1, -1, 4917, - -1, -1, -1, -1, -1, 4918, 4919, 4921, - -1, -1, -1, -1, -1, 4922, 4925, -1, - -1, -1, -1, 4927, -1, 4929, 4931, 4933, - 4934, 4935, -1, -1, -1, -1, -1, -1, - -1, 4938, -1, -1, -1, 4941, 4943, 4944, - -1, -1, -1, -1, -1, -1, -1, 4945, - -1, -1, -1, -1, 4947, 4948, -1, -1, - -1, -1, -1, -1, 4949, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4954, 4957, - 4958, -1, -1, -1, -1, -1, -1, -1, - -1, 4959, 4960, -1, 4962, 4965, -1, -1, - -1, 4966, 4967, 4970, -1, -1, -1, -1, - -1, -1, 4971, -1, -1, -1, -1, 4972, - -1, -1, -1, -1, -1, -1, 4973, -1, - -1, -1, -1, 4975, -1, -1, -1, 4976, - -1, -1, -1, -1, -1, -1, 4977, 4978, - 4980, 4982, -1, 4983, 4984, 4985, -1, -1, - -1, 4986, -1, -1, 4987, -1, -1, -1, - -1, -1, -1, -1, -1, 4988, 4989, -1, - /* 0x7100 */ - -1, -1, -1, -1, -1, -1, -1, 4991, - 4992, -1, 4996, -1, -1, -1, -1, 4997, - -1, -1, -1, -1, 4998, 5000, 5001, -1, - 5002, -1, 5003, -1, -1, -1, -1, -1, - -1, 5005, -1, -1, -1, -1, 5006, -1, - -1, -1, -1, -1, -1, 5007, -1, -1, - 5008, -1, -1, 5010, -1, -1, -1, -1, - -1, -1, -1, -1, 5011, -1, -1, -1, - -1, -1, -1, -1, -1, 5013, -1, -1, - -1, 5014, -1, -1, -1, -1, -1, -1, - -1, 5017, 5018, -1, -1, 5019, 5023, 5024, - -1, 5025, -1, -1, -1, -1, -1, -1, - -1, -1, 5026, -1, -1, 5028, -1, 5029, - -1, 5033, -1, -1, 5034, -1, 5036, -1, - -1, -1, -1, -1, 5037, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5039, -1, - -1, -1, -1, -1, -1, 5041, -1, -1, - 5043, -1, -1, -1, -1, -1, -1, 5047, - -1, -1, 5048, -1, 5049, -1, -1, 5051, - -1, 5052, -1, -1, -1, -1, -1, -1, - -1, -1, 5056, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5057, 5058, 5059, -1, -1, -1, -1, - -1, 5060, 5061, -1, -1, -1, 5062, -1, - -1, 5063, -1, -1, 5065, -1, -1, -1, - 5067, -1, -1, -1, 5068, -1, 5070, -1, - 5071, -1, 5073, 5075, -1, 5077, -1, 5078, - -1, 5081, -1, -1, 5082, -1, -1, 5083, - -1, -1, -1, -1, -1, -1, 5085, -1, - -1, -1, -1, -1, 5086, 5087, -1, -1, - -1, -1, -1, 5088, 5092, -1, -1, -1, - -1, -1, -1, 5093, 5094, -1, 5095, 5096, - /* 0x7200 */ - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5097, -1, -1, - 5098, -1, -1, -1, -1, -1, -1, 5099, - -1, -1, -1, 5101, -1, -1, -1, -1, - -1, -1, -1, -1, 5104, -1, -1, -1, - -1, -1, -1, -1, -1, 5107, -1, -1, - -1, 5108, 5109, -1, 5111, -1, -1, 5112, - -1, -1, 5113, -1, 5114, -1, 5115, 5118, - 5119, -1, -1, 5120, -1, 5121, 5122, -1, - -1, -1, -1, 5123, -1, 5124, 5125, -1, - -1, -1, -1, 5129, -1, 5130, -1, -1, - 5134, -1, -1, 5135, 5136, -1, -1, -1, - 5137, -1, -1, -1, -1, -1, 5138, -1, - -1, -1, -1, 5140, -1, -1, -1, -1, - -1, -1, -1, -1, 5142, 5143, -1, -1, - -1, -1, 5144, -1, -1, 5146, -1, -1, - -1, 5147, 5148, -1, -1, -1, -1, 5149, - -1, -1, 5150, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5151, -1, - -1, -1, -1, 5152, -1, -1, -1, -1, - 5154, -1, 5156, -1, -1, -1, -1, 5157, - -1, -1, -1, -1, 5159, 5160, 5161, -1, - -1, -1, 5162, -1, 5163, -1, 5165, 5166, - 5167, 5168, -1, -1, -1, -1, -1, -1, - 5169, -1, 5170, -1, -1, -1, -1, -1, - 5172, 5173, -1, -1, 5174, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5175, 5176, -1, - -1, -1, 5177, -1, -1, 5178, -1, -1, - -1, -1, -1, -1, 5179, 5180, 5181, 5182, - 5183, 5184, 5185, -1, -1, -1, -1, -1, - 5186, 5188, -1, -1, -1, 5189, 5190, -1, - /* 0x7300 */ - -1, -1, 5191, 5192, -1, -1, -1, 5193, - -1, -1, 5194, -1, -1, 5195, 5197, -1, - -1, -1, -1, -1, -1, 5199, -1, -1, - 5200, 5201, -1, -1, -1, -1, -1, 5202, - -1, 5204, -1, -1, -1, -1, -1, -1, - 5205, 5206, 5207, 5208, 5209, -1, 5210, 5211, - -1, -1, 5212, -1, -1, 5213, 5214, -1, - -1, -1, -1, 5215, -1, -1, -1, 5216, - -1, 5218, -1, -1, 5219, 5220, -1, -1, - -1, -1, -1, -1, -1, 5221, 5222, 5225, - 5226, -1, -1, -1, -1, -1, -1, -1, - 5227, 5228, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5229, -1, -1, 5231, -1, - 5232, -1, 5233, 5234, -1, 5236, 5237, -1, - 5238, 5239, 5240, -1, -1, 5241, -1, 5243, - 5244, -1, 5246, 5247, 5248, -1, 5249, -1, - 5250, 5251, -1, 5252, -1, 5254, -1, 5255, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5256, -1, -1, -1, -1, -1, -1, - -1, 5257, 5258, 5259, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 5260, 5262, -1, -1, -1, -1, 5263, 5264, - 5265, 5266, -1, 5267, -1, -1, -1, -1, - -1, -1, 5268, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5269, -1, 5272, 5273, 5274, - 5276, 5277, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5278, -1, -1, 5280, -1, -1, -1, - -1, -1, 5284, -1, -1, -1, -1, -1, - 5285, 5286, 5288, -1, -1, -1, -1, 5289, - -1, -1, -1, -1, -1, -1, 5290, -1, - /* 0x7400 */ - -1, -1, -1, 5291, -1, 5292, -1, -1, - -1, 5293, -1, -1, -1, 5296, 5298, 5299, - 5300, 5302, -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, 5304, -1, -1, 5305, -1, -1, -1, - -1, 5307, 5309, -1, 5310, -1, -1, 5311, - -1, -1, -1, -1, -1, -1, -1, 5312, - -1, -1, -1, 5313, -1, -1, -1, -1, - -1, -1, 5314, -1, -1, -1, -1, -1, - -1, 5315, -1, -1, -1, -1, -1, -1, - 5316, -1, -1, 5319, 5321, -1, -1, -1, - 5322, 5323, 5324, -1, -1, -1, -1, 5325, - 5326, -1, 5327, -1, 5328, -1, 5330, 5331, - 5332, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5333, -1, -1, -1, 5335, - -1, 5336, -1, -1, -1, -1, 5337, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5339, 5341, 5344, -1, -1, 5345, -1, - -1, -1, -1, 5346, -1, -1, -1, -1, - 5347, -1, -1, -1, -1, 5348, -1, -1, - 5349, -1, -1, -1, -1, 5350, -1, 5352, - -1, -1, -1, -1, -1, -1, -1, -1, - 5353, 5355, 5356, -1, 5357, -1, -1, 5358, - -1, -1, 5359, -1, 5360, -1, -1, -1, - -1, -1, 5362, -1, -1, -1, -1, -1, - -1, -1, -1, 5364, -1, -1, -1, -1, - 5365, -1, -1, -1, -1, -1, 5366, 5367, - -1, -1, -1, -1, -1, -1, 5368, 5370, - -1, -1, -1, -1, -1, -1, -1, -1, - /* 0x7500 */ - -1, 5371, -1, -1, -1, -1, 5373, -1, - -1, -1, -1, -1, 5374, -1, 5375, -1, - -1, -1, -1, -1, -1, 5378, 5379, -1, - -1, -1, -1, -1, -1, -1, 5381, -1, - 5384, -1, 5385, 5387, -1, -1, 5389, -1, - -1, -1, -1, -1, -1, -1, -1, 5392, - -1, -1, -1, -1, -1, 5398, -1, 5399, - -1, -1, 5400, 5402, 5407, 5409, -1, -1, - -1, -1, 5410, -1, 5411, 5413, 5414, -1, - -1, -1, 5418, -1, 5419, 5421, 5423, -1, - -1, 5424, 5425, -1, -1, -1, -1, -1, - -1, 5429, 5431, -1, -1, 5432, 5437, -1, - 5441, 5442, 5443, -1, -1, 5444, -1, 5445, - 5446, -1, 5447, 5448, -1, -1, -1, -1, - 5450, 5451, -1, 5453, 5457, 5458, 5460, -1, - -1, -1, 5461, 5462, -1, -1, -1, -1, - -1, -1, 5463, -1, -1, 5467, 5469, 5470, - -1, 5471, 5475, -1, -1, -1, 5479, 5481, - -1, -1, -1, -1, -1, -1, 5483, 5484, - -1, -1, -1, -1, -1, -1, -1, 5485, - 5486, 5487, -1, 5488, -1, -1, -1, -1, - -1, -1, -1, -1, 5489, 5490, 5491, 5492, - -1, 5493, -1, -1, 5495, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5496, - 5497, 5498, -1, -1, -1, -1, -1, -1, - -1, -1, 5499, -1, -1, -1, 5500, -1, - -1, 5504, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 5505, 5506, 5507, 5508, -1, -1, 5509, -1, - -1, -1, 5510, 5512, 5515, -1, -1, -1, - -1, 5516, 5517, -1, -1, -1, 5518, -1, - /* 0x7600 */ - -1, -1, 5519, -1, -1, 5523, 5524, -1, - -1, 5525, -1, 5527, -1, 5528, -1, -1, - -1, -1, -1, 5529, -1, -1, 5530, 5531, - 5532, -1, -1, -1, -1, -1, 5533, -1, - -1, 5534, -1, -1, 5535, -1, 5536, 5537, - -1, -1, 5538, 5539, -1, -1, 5540, -1, - -1, -1, 5541, -1, -1, -1, -1, -1, - -1, -1, 5542, 5543, -1, -1, 5545, 5546, - -1, -1, 5547, -1, 5548, 5550, 5551, 5552, - -1, 5553, -1, -1, -1, -1, -1, -1, - -1, -1, 5554, -1, -1, 5556, -1, -1, - 5558, -1, -1, -1, -1, -1, 5559, 5560, - -1, 5561, 5562, 5563, 5564, 5565, -1, 5566, - -1, 5567, -1, 5568, 5569, 5570, 5571, 5572, - 5573, 5576, 5577, -1, 5578, 5579, -1, -1, - -1, -1, 5580, 5590, 5591, -1, -1, -1, - -1, 5593, 5595, 5597, -1, -1, -1, -1, - 5598, -1, -1, 5601, -1, 5602, 5604, -1, - 5605, 5606, -1, -1, -1, -1, -1, -1, - -1, -1, 5607, -1, -1, -1, 5609, -1, - -1, 5610, -1, -1, -1, 5611, -1, -1, - 5613, -1, -1, -1, -1, -1, -1, -1, - 5614, 5616, 5617, -1, -1, -1, -1, 5619, - 5620, 5622, 5624, -1, 5625, -1, -1, -1, - -1, 5626, -1, 5627, -1, -1, -1, 5629, - 5630, -1, -1, 5631, 5634, 5635, -1, 5636, - 5637, 5639, -1, -1, -1, -1, 5641, 5643, - 5644, 5645, -1, -1, 5646, -1, 5647, -1, - -1, 5648, -1, 5649, 5651, -1, -1, 5652, - -1, -1, 5653, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - /* 0x7700 */ - -1, -1, -1, -1, -1, -1, 5655, -1, - -1, 5657, -1, -1, 5658, 5660, 5661, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 5663, -1, -1, -1, -1, -1, 5664, 5665, - -1, -1, -1, -1, -1, 5666, 5667, -1, - -1, -1, -1, 5668, 5669, -1, -1, 5670, - -1, -1, -1, -1, -1, -1, -1, 5672, - -1, -1, -1, -1, -1, -1, 5673, -1, - 5676, 5677, 5678, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5679, - 5680, 5681, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5682, -1, 5683, -1, - 5684, -1, -1, -1, 5685, 5686, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5687, -1, -1, -1, -1, -1, 5688, - -1, -1, -1, -1, -1, 5690, 5691, 5692, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5693, -1, -1, -1, 5694, -1, - 5695, -1, -1, -1, -1, -1, 5696, -1, - 5697, -1, 5698, -1, -1, -1, -1, -1, - -1, 5699, 5700, -1, -1, 5701, -1, -1, - 5703, -1, -1, -1, -1, -1, 5704, -1, - -1, -1, -1, -1, 5705, -1, 5706, -1, - -1, 5710, -1, -1, -1, -1, -1, 5711, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5712, 5713, -1, -1, -1, -1, - -1, 5714, 5715, -1, -1, -1, -1, -1, - -1, -1, 5716, -1, 5717, -1, 5719, 5720, - -1, -1, -1, 5722, -1, -1, -1, 5723, - -1, -1, -1, -1, 5724, -1, 5727, -1, - -1, -1, -1, -1, -1, -1, 5728, 5729, - /* 0x7800 */ - 5734, 5735, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5736, -1, -1, 5737, 5738, 5741, - -1, -1, 5742, -1, 5743, -1, -1, -1, - -1, -1, -1, -1, -1, 5744, -1, 5745, - -1, -1, -1, -1, 5746, -1, -1, -1, - -1, -1, 5747, -1, -1, -1, -1, -1, - -1, -1, 5750, 5751, -1, -1, 5752, 5753, - 5758, 5759, -1, 5760, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5761, 5762, 5763, - -1, 5764, 5765, -1, 5766, -1, -1, -1, - -1, -1, -1, -1, 5767, -1, -1, -1, - 5768, -1, 5769, -1, -1, -1, 5770, 5773, - -1, -1, -1, -1, -1, 5774, -1, 5775, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5778, -1, -1, -1, -1, -1, 5782, - -1, -1, -1, -1, -1, 5784, 5785, -1, - -1, -1, -1, -1, 5786, 5787, -1, 5790, - -1, -1, -1, 5793, 5794, -1, 5795, 5798, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5799, 5800, -1, -1, 5801, -1, 5802, - 5803, 5805, -1, -1, -1, -1, -1, -1, - 5807, -1, 5808, 5810, 5812, -1, -1, -1, - -1, 5813, -1, -1, -1, -1, -1, 5814, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5815, 5816, -1, 5817, -1, 5818, -1, - -1, -1, 5819, -1, -1, -1, -1, -1, - 5822, -1, -1, 5823, -1, -1, -1, 5824, - -1, -1, -1, -1, -1, -1, -1, 5825, - -1, -1, -1, -1, -1, -1, -1, 5826, - 5827, -1, 5828, -1, -1, 5829, -1, -1, - /* 0x7900 */ - 5830, -1, -1, -1, 5831, -1, 5832, -1, - 5835, -1, -1, -1, -1, -1, 5837, -1, - -1, -1, 5838, -1, -1, -1, -1, -1, - -1, 5839, -1, -1, -1, -1, -1, 5840, - 5843, -1, -1, -1, -1, -1, 5844, -1, - -1, -1, 5849, 5850, 5851, -1, 5852, -1, - -1, 5855, -1, -1, -1, -1, -1, -1, - -1, -1, 5856, 5857, 5858, -1, -1, 5859, - 5860, -1, -1, 5861, -1, 5862, -1, -1, - -1, -1, -1, -1, -1, -1, 5863, -1, - -1, -1, -1, -1, -1, 5864, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5865, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5866, - -1, -1, -1, -1, -1, 5867, -1, 5868, - 5869, -1, -1, -1, -1, -1, -1, 5870, - 5871, -1, -1, -1, 5872, 5873, -1, -1, - -1, -1, -1, -1, -1, 5874, 5875, -1, - -1, -1, -1, -1, -1, 5876, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5877, -1, -1, -1, -1, 5878, -1, - -1, 5879, 5880, -1, -1, -1, 5881, -1, - 5882, 5883, -1, -1, 5884, -1, -1, -1, - -1, -1, -1, 5885, -1, -1, -1, 5886, - -1, 5887, -1, 5888, -1, -1, 5889, 5890, - 5895, -1, 5896, 5897, 5902, 5905, -1, -1, - 5906, -1, -1, -1, 5907, 5909, 5910, 5911, - 5912, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5913, - 5914, -1, -1, -1, -1, -1, -1, -1, - 5916, -1, -1, -1, -1, 5917, 5918, -1, - /* 0x7a00 */ - -1, 5919, -1, -1, -1, 5923, 5924, -1, - 5926, 5927, -1, -1, -1, -1, 5929, -1, - -1, -1, -1, -1, -1, -1, -1, 5930, - -1, -1, 5932, -1, 5934, -1, -1, 5935, - -1, -1, -1, 5936, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5937, 5938, -1, - -1, 5939, 5941, 5942, -1, -1, -1, -1, - -1, -1, 5944, 5946, -1, -1, 5947, 5951, - 5955, -1, 5957, -1, -1, 5958, -1, -1, - -1, 5960, -1, -1, 5962, 5966, 5967, 5969, - 5971, 5974, -1, -1, -1, -1, -1, 5975, - -1, -1, -1, -1, -1, -1, 5976, -1, - 5978, 5979, 5980, 5981, -1, -1, -1, -1, - 5982, 5986, 5988, 5990, -1, 5991, -1, -1, - 5993, -1, -1, -1, -1, -1, -1, 5994, - -1, 5996, -1, -1, -1, 5997, -1, -1, - -1, 5998, -1, 5999, -1, -1, -1, -1, - -1, -1, 6000, -1, -1, 6001, 6002, -1, - -1, 6003, -1, 6005, -1, -1, -1, 6009, - -1, -1, -1, -1, 6013, 6014, -1, -1, - -1, -1, -1, -1, -1, 6015, 6016, -1, - -1, 6017, 6018, -1, 6019, 6020, 6022, 6024, - 6026, -1, -1, 6028, -1, 6029, 6030, -1, - -1, -1, 6032, 6033, -1, -1, -1, -1, - -1, -1, -1, 6037, 6039, 6040, 6041, 6043, - 6044, -1, 6046, -1, -1, -1, -1, -1, - -1, -1, 6047, -1, -1, -1, 6048, -1, - -1, -1, 6050, -1, 6051, 6053, 6056, -1, - -1, -1, 6058, -1, -1, -1, -1, -1, - -1, 6059, 6061, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 6063, -1, - 6065, -1, -1, -1, -1, -1, 6067, -1, - /* 0x7b00 */ - -1, -1, -1, 6068, -1, -1, -1, -1, - -1, -1, -1, 6069, -1, -1, -1, -1, - -1, 6071, -1, -1, 6073, 6074, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 6075, - -1, -1, -1, -1, -1, -1, -1, 6076, - 6082, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 6083, 6085, -1, - -1, -1, 6086, -1, 6088, -1, 6090, -1, - -1, -1, -1, -1, -1, 6091, 6092, -1, - -1, -1, -1, 6093, -1, 6094, -1, 6096, - 6098, 6099, -1, -1, -1, -1, 6100, -1, - 6104, 6105, 6106, 6107, 6108, 6109, 6110, -1, - -1, -1, -1, -1, -1, -1, -1, 6114, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 6115, -1, -1, -1, -1, -1, -1, - -1, 6116, 6117, -1, 6118, -1, 6119, 6122, - 6123, -1, 6124, -1, -1, -1, 6125, 6126, - -1, -1, -1, 6129, -1, 6130, -1, 6131, - -1, -1, 6132, 6133, -1, -1, -1, -1, - -1, -1, 6134, -1, -1, -1, -1, -1, - -1, -1, -1, 6135, -1, -1, 6139, 6141, - 6142, 6143, 6144, 6145, 6146, -1, -1, -1, - 6147, -1, 6149, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 6150, -1, -1, -1, 6151, -1, 6153, -1, - -1, 6154, -1, 6155, -1, -1, -1, 6157, - -1, 6158, -1, 6159, 6160, -1, -1, 6161, - -1, -1, -1, 6162, -1, -1, -1, -1, - 6163, 6165, -1, -1, 6166, -1, 6167, -1, - -1, 6168, 6171, -1, -1, 6172, 6174, 6175, - -1, 6176, 6177, 6178, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - /* 0x7c00 */ - 6179, 6181, -1, -1, 6183, -1, 6185, -1, - -1, -1, -1, -1, -1, 6186, -1, -1, - -1, 6187, 6189, -1, 6190, -1, 6192, 6193, - 6195, -1, -1, -1, -1, -1, 6196, -1, - 6197, 6198, -1, 6199, -1, -1, -1, -1, - -1, -1, 6200, 6201, -1, -1, -1, -1, - -1, 6203, -1, -1, -1, -1, -1, 6205, - -1, 6206, -1, -1, -1, 6207, 6208, -1, - 6209, 6211, -1, 6212, -1, -1, 6213, -1, - -1, -1, -1, -1, 6214, -1, -1, 6215, - 6217, -1, 6218, -1, 6219, 6221, 6222, -1, - 6224, 6226, -1, 6227, 6228, -1, -1, 6229, - 6230, -1, -1, -1, 6232, -1, -1, -1, - -1, 6234, 6235, -1, 6236, 6237, 6239, -1, - -1, -1, 6240, -1, 6242, -1, -1, -1, - -1, -1, -1, 6243, 6244, -1, -1, -1, - -1, -1, -1, 6245, -1, -1, -1, 6246, - -1, -1, -1, 6248, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 6249, - 6250, -1, -1, 6251, 6253, 6254, -1, -1, - -1, -1, -1, -1, 6255, 6256, 6258, 6259, - -1, -1, 6263, -1, 6264, -1, 6268, -1, - -1, -1, -1, 6269, -1, 6271, -1, -1, - -1, 6272, 6273, -1, -1, 6274, -1, -1, - -1, 6275, -1, -1, -1, -1, 6276, 6281, - -1, 6282, 6283, -1, -1, -1, -1, -1, - -1, -1, -1, 6284, -1, 6286, -1, -1, - -1, -1, 6287, -1, -1, 6291, 6292, -1, - 6293, -1, -1, -1, -1, -1, 6295, 6296, - -1, -1, -1, -1, -1, -1, -1, -1, - 6297, -1, 6299, -1, 6300, -1, 6301, -1, - 6302, 6306, 6308, 6309, 6313, -1, 6315, 6317, - /* 0x7d00 */ - 6319, -1, 6320, -1, 6321, 6322, 6323, 6324, - 6325, 6326, -1, 6327, -1, 6328, -1, -1, - 6329, -1, -1, 6330, 6331, 6332, 6333, 6334, - 6335, 6337, 6339, 6340, 6341, 6342, -1, -1, - -1, 6344, -1, 6345, -1, 6346, -1, 6347, - -1, -1, -1, -1, 6348, -1, 6350, 6352, - 6356, 6357, 6358, 6359, -1, 6360, -1, -1, - -1, 6361, 6362, -1, 6363, -1, -1, 6364, - 6365, -1, 6366, 6367, 6368, 6369, 6370, -1, - 6372, -1, -1, 6373, 6374, 6376, 6377, 6378, - 6379, -1, -1, -1, -1, 6380, 6383, -1, - -1, -1, 6384, 6385, -1, 6387, 6389, -1, - -1, 6390, 6391, -1, 6392, 6396, 6397, -1, - 6398, -1, -1, -1, -1, -1, -1, -1, - 6399, 6400, 6402, 6404, -1, 6405, 6407, 6410, - 6411, 6413, -1, -1, -1, -1, -1, -1, - -1, 6414, 6415, 6417, -1, -1, 6418, -1, - 6419, 6420, -1, 6421, 6422, -1, -1, 6423, - -1, 6424, -1, 6426, -1, -1, -1, 6428, - -1, 6429, 6431, -1, 6434, -1, 6435, -1, - 6436, -1, 6438, 6440, -1, -1, -1, -1, - -1, -1, -1, 6441, 6445, 6446, -1, 6447, - 6448, 6449, 6450, 6451, 6453, 6455, -1, 6456, - 6457, 6458, 6459, 6460, -1, 6461, 6463, 6464, - -1, -1, -1, -1, 6465, -1, -1, 6466, - -1, -1, 6467, 6468, -1, 6469, -1, 6470, - 6474, 6475, 6477, -1, 6479, 6480, 6481, 6483, - 6484, 6485, 6486, -1, 6490, 6491, 6492, -1, - 6493, 6494, -1, 6496, -1, 6498, 6499, -1, - 6500, 6501, 6502, 6503, 6507, -1, -1, 6508, - -1, 6509, 6510, -1, 6511, -1, 6512, -1, - -1, 6513, -1, 6514, 6515, -1, -1, -1, - /* 0x7e00 */ - -1, 6517, -1, -1, 6519, -1, -1, -1, - 6521, 6522, 6523, 6524, -1, -1, -1, -1, - 6525, 6526, -1, -1, -1, 6527, -1, 6529, - 6530, -1, -1, 6533, -1, 6534, 6535, 6536, - -1, -1, -1, 6537, -1, -1, 6539, 6541, - 6543, -1, -1, 6544, -1, 6545, 6546, -1, - -1, 6547, 6549, -1, 6552, 6553, 6554, 6556, - -1, 6557, -1, -1, -1, 6558, 6563, -1, - -1, 6564, -1, 6565, -1, 6567, 6569, -1, - 6570, -1, 6571, 6574, -1, 6577, -1, -1, - -1, -1, 6579, -1, 6580, 6581, 6582, -1, - -1, 6584, 6585, 6586, -1, -1, 6587, -1, - -1, 6588, 6590, -1, 6591, -1, 6592, -1, - -1, 6593, 6595, 6597, -1, 6600, 6603, 6605, - 6606, -1, -1, 6609, -1, -1, -1, -1, - -1, 6610, -1, -1, 6611, 6613, 6614, 6615, - -1, -1, 6616, 6617, -1, -1, -1, 6618, - 6619, 6620, 6622, -1, 6624, 6627, 6628, 6631, - -1, -1, 6633, 6635, 6636, -1, 6637, -1, - 6640, -1, -1, -1, 6642, 6643, -1, 6646, - 6648, 6649, 6650, 6651, 6652, 6656, 6657, 6658, - 6659, 6660, 6662, 6663, 6664, 6665, 6666, 6667, - 6668, 6669, 6670, 6671, 6672, 6673, 6675, 6676, - 6677, 6678, 6679, 6680, 6681, 6682, 6683, 6684, - 6688, 6689, 6691, 6692, 6693, 6694, 6695, 6696, - 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, - 6706, 6707, 6708, 6709, 6710, 6711, 6713, 6714, - 6715, 6717, 6718, 6719, 6720, 6721, 6724, 6725, - 6727, 6728, 6729, 6730, 6733, 6734, 6735, 6737, - 6739, 6740, 6741, 6743, -1, 6744, 6746, 6747, - 6748, 6749, 6750, 6751, 6753, 6754, 6756, 6757, - 6759, 6761, 6762, 6763, 6764, 6765, 6766, 6767, - /* 0x7f00 */ - 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, - 6777, 6778, 6779, 6781, 6782, 6783, 6784, 6785, - 6786, 6790, 6791, 6792, 6793, 6794, 6795, 6796, - 6797, 6799, 6800, 6801, 6802, 6803, 6804, 6805, - 6806, 6808, 6809, 6810, 6811, 6812, 6813, 6814, - 6817, 6818, 6819, 6820, 6822, 6823, 6824, 6825, - 6826, 6828, 6829, 6830, 6831, 6832, 6834, 6837, - 6838, 6839, 6840, 6842, 6843, 6845, 6848, -1, - -1, -1, 6850, -1, -1, -1, -1, 6852, - 6853, -1, -1, -1, 6858, -1, 6860, -1, - 6865, 6867, 6870, 6872, -1, -1, -1, 6874, - -1, -1, 6877, -1, -1, -1, -1, -1, - -1, -1, 6879, -1, -1, -1, -1, -1, - -1, -1, 6880, -1, -1, -1, -1, -1, - 6882, -1, -1, -1, 6884, 6885, 6888, 6889, - 6890, -1, -1, -1, -1, -1, -1, -1, - 6892, 6893, -1, 6895, -1, 6897, 6898, 6899, - 6902, -1, 6906, 6907, 6908, -1, -1, -1, - 6909, 6910, -1, -1, -1, -1, -1, 6911, - -1, -1, -1, -1, -1, -1, -1, 6912, - -1, 6913, -1, 6914, 6915, 6916, -1, -1, - 6917, 6918, 6919, -1, -1, -1, 6921, -1, - -1, -1, -1, -1, 6922, -1, 6924, -1, - -1, 6926, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6927, 6929, 6931, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 6932, -1, -1, -1, -1, -1, - 6933, 6934, 6935, -1, -1, -1, -1, -1, - 6936, -1, -1, -1, 6937, -1, -1, -1, - -1, -1, -1, 6939, 6940, -1, -1, -1, - -1, 6941, -1, 6942, -1, -1, -1, -1, - -1, 6943, 6944, 6945, -1, 6947, -1, -1, - /* 0x8000 */ - 6948, -1, -1, 6949, -1, -1, -1, 6950, - 6951, -1, 6952, 6953, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 6954, -1, -1, - 6955, -1, -1, -1, 6956, -1, -1, -1, - -1, 6957, 6958, -1, 6959, -1, -1, 6960, - 6961, -1, -1, -1, 6963, -1, 6964, -1, - 6965, -1, -1, -1, -1, -1, -1, -1, - 6966, -1, -1, 6967, 6968, 6969, -1, -1, - 6970, -1, 6973, 6974, -1, -1, -1, -1, - -1, -1, -1, 6975, 6976, 6979, -1, -1, - -1, -1, -1, -1, 6980, -1, 6982, -1, - -1, -1, -1, -1, -1, -1, 6984, 6985, - -1, 6987, -1, -1, -1, -1, 6990, -1, - 6993, 6995, 6996, 6999, -1, 7000, 7002, 7003, - 7007, -1, 7010, 7011, 7012, 7014, 7015, 7016, - -1, 7019, -1, -1, -1, 7020, 7022, -1, - -1, -1, -1, 7023, -1, 7025, -1, 7027, - 7028, 7029, -1, -1, -1, -1, 7030, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 7031, 7033, -1, -1, 7034, -1, -1, 7035, - -1, -1, -1, -1, 7036, -1, 7037, 7038, - -1, 7040, 7041, -1, 7043, -1, -1, -1, - -1, -1, -1, 7044, -1, -1, 7045, 7046, - 7047, 7048, -1, -1, 7051, -1, 7053, -1, - -1, -1, -1, -1, 7055, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7056, -1, 7057, -1, -1, -1, - -1, 7058, -1, -1, -1, -1, -1, 7060, - 7061, -1, 7062, 7063, -1, 7065, -1, -1, - -1, -1, -1, -1, -1, -1, 7066, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - /* 0x8100 */ - -1, -1, -1, 7067, -1, 7069, 7071, 7073, - 7074, 7075, -1, 7076, -1, 7078, -1, 7079, - 7082, 7083, -1, 7085, 7086, -1, -1, 7087, - -1, -1, 7088, 7090, -1, -1, -1, -1, - -1, -1, -1, 7092, -1, -1, -1, -1, - -1, 7093, -1, 7094, -1, -1, -1, -1, - -1, 7095, -1, 7096, -1, 7099, 7100, -1, - 7101, 7102, 7104, -1, -1, -1, 7106, -1, - -1, -1, -1, -1, -1, -1, 7107, -1, - -1, -1, 7108, -1, 7110, -1, 7111, -1, - -1, -1, -1, -1, -1, -1, 7112, 7113, - 7114, -1, -1, -1, -1, -1, -1, 7115, - -1, 7116, -1, -1, -1, -1, 7117, -1, - -1, -1, -1, 7120, -1, 7121, 7122, -1, - -1, -1, -1, 7123, -1, -1, -1, -1, - 7125, -1, -1, 7127, -1, 7128, 7129, -1, - 7130, -1, 7131, 7132, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 7133, 7134, -1, 7135, -1, 7137, -1, -1, - -1, -1, 7138, -1, -1, -1, -1, -1, - 7139, -1, -1, 7140, 7141, -1, -1, -1, - -1, 7142, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 7143, -1, -1, -1, -1, - 7144, -1, -1, 7146, -1, 7150, 7152, 7153, - 7154, -1, -1, 7155, -1, -1, -1, -1, - 7157, 7159, -1, 7160, -1, 7161, -1, 7162, - -1, -1, -1, 7164, -1, -1, -1, -1, - 7166, 7168, 7169, -1, 7170, -1, 7171, 7172, - 7174, -1, 7175, -1, -1, 7176, -1, -1, - 7177, -1, -1, -1, -1, 7178, -1, -1, - 7179, -1, -1, -1, 7180, -1, -1, -1, - -1, -1, 7181, -1, -1, -1, -1, -1, - /* 0x8200 */ - -1, -1, -1, -1, -1, -1, 7183, 7184, - 7185, 7186, 7189, -1, -1, 7190, 7192, -1, - 7193, -1, -1, 7194, -1, -1, 7195, 7198, - 7201, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 7202, -1, -1, -1, -1, - -1, 7203, -1, -1, -1, -1, 7204, -1, - 7206, 7207, -1, -1, -1, 7208, 7209, -1, - -1, 7210, -1, 7211, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7213, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7214, -1, -1, -1, -1, -1, -1, - -1, -1, 7215, 7216, 7218, -1, 7219, -1, - -1, -1, 7220, 7222, -1, -1, -1, -1, - 7224, 7225, -1, 7227, -1, -1, 7231, 7235, - 7239, 7240, 7241, -1, -1, -1, -1, -1, - -1, -1, 7246, -1, -1, -1, -1, -1, - 7247, -1, -1, 7249, 7250, -1, -1, -1, - -1, -1, -1, -1, 7251, -1, -1, 7252, - -1, -1, -1, -1, 7253, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 7254, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7255, 7256, -1, -1, -1, -1, -1, - 7257, -1, -1, 7264, -1, -1, -1, -1, - -1, 7265, -1, -1, -1, 7266, -1, 7268, - 7269, -1, -1, 7270, 7271, 7272, 7273, 7274, - 7279, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7280, 7281, -1, -1, -1, -1, 7282, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7283, -1, -1, -1, -1, -1, -1, - -1, 7284, 7286, -1, -1, 7287, -1, -1, - /* 0x8300 */ - -1, -1, -1, 7288, -1, -1, -1, -1, - -1, -1, 7290, -1, -1, -1, 7292, 7293, - -1, 7294, -1, -1, 7295, 7296, -1, -1, - 7297, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7298, - -1, -1, -1, -1, -1, -1, -1, 7300, - 7301, -1, 7302, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 7304, 7305, - -1, -1, 7306, -1, -1, -1, -1, -1, - 7307, 7309, -1, -1, 7310, -1, -1, -1, - 7311, 7313, 7314, 7315, 7316, 7317, 7318, 7319, - 7320, 7322, -1, 7325, 7327, 7328, 7329, 7330, - 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7338, - -1, -1, -1, 7341, -1, -1, -1, -1, - -1, 7342, -1, 7343, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 7344, -1, -1, - -1, -1, 7346, -1, -1, -1, -1, -1, - -1, -1, -1, 7348, -1, 7349, 7350, -1, - -1, -1, -1, -1, -1, -1, 7351, -1, - -1, -1, 7352, -1, -1, -1, -1, 7353, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7354, 7355, 7356, 7357, 7358, 7359, 7360, - 7362, 7363, 7364, -1, 7367, 7369, 7370, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7371, -1, 7372, 7373, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7375, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 7376, -1, -1, -1, 7377, - 7380, 7381, -1, -1, 7382, -1, -1, -1, - -1, 7385, -1, -1, -1, -1, -1, -1, - /* 0x8400 */ - -1, -1, -1, -1, -1, -1, -1, 7386, - -1, -1, 7387, -1, 7388, 7389, -1, -1, - -1, -1, -1, -1, -1, 7390, -1, -1, - -1, -1, 7392, -1, -1, 7393, -1, 7394, - 7399, -1, -1, -1, 7400, 7402, 7404, 7405, - 7406, -1, -1, -1, 7407, -1, -1, -1, - -1, 7408, -1, -1, 7411, 7412, -1, -1, - 7413, -1, -1, -1, 7414, -1, -1, -1, - -1, -1, -1, -1, -1, 7415, -1, -1, - -1, 7416, 7417, -1, -1, -1, -1, -1, - -1, -1, 7420, -1, -1, -1, -1, 7421, - 7422, -1, 7423, -1, -1, -1, -1, -1, - 7424, -1, 7425, -1, 7427, -1, 7428, -1, - -1, -1, 7429, -1, 7430, -1, 7431, 7432, - -1, 7433, -1, -1, -1, -1, -1, 7434, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7435, 7436, -1, -1, -1, 7437, - -1, 7438, -1, 7439, 7440, -1, -1, -1, - 7441, -1, -1, 7442, 7444, -1, -1, -1, - -1, 7445, -1, -1, -1, -1, 7449, -1, - -1, -1, -1, -1, -1, -1, 7451, -1, - 7452, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7453, - -1, -1, -1, -1, 7454, -1, -1, -1, - 7455, -1, -1, -1, -1, -1, 7456, -1, - -1, -1, -1, 7457, -1, -1, -1, -1, - -1, 7459, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 7461, -1, 7462, - 7463, -1, -1, 7464, -1, 7465, 7466, -1, - -1, -1, -1, -1, -1, 7467, 7470, 7471, - -1, 7472, -1, -1, 7473, -1, -1, -1, - -1, -1, 7475, -1, -1, 7480, -1, -1, - /* 0x8500 */ - -1, -1, -1, -1, -1, 7481, 7483, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 7484, 7485, -1, -1, 7486, 7488, -1, -1, - -1, -1, -1, -1, -1, -1, 7489, -1, - -1, -1, -1, 7490, -1, 7491, 7492, -1, - -1, -1, -1, -1, -1, 7493, -1, 7494, - -1, -1, 7495, 7496, 7497, 7498, 7500, 7502, - -1, 7503, 7504, 7505, 7506, -1, -1, -1, - -1, 7508, -1, -1, -1, -1, 7509, -1, - -1, -1, 7510, 7512, -1, -1, 7514, -1, - 7515, -1, 7517, 7518, -1, 7519, -1, -1, - 7520, -1, 7521, -1, -1, -1, -1, -1, - -1, -1, 7522, -1, -1, -1, -1, -1, - -1, 7523, 7524, -1, -1, 7525, -1, -1, - 7526, -1, 7527, -1, 7528, -1, -1, 7530, - -1, -1, -1, -1, -1, -1, -1, 7531, - 7534, -1, -1, -1, -1, -1, -1, -1, - 7535, -1, 7536, -1, 7538, -1, -1, -1, - -1, 7539, -1, 7540, 7541, -1, -1, 7542, - 7544, -1, -1, -1, -1, -1, -1, 7545, - -1, -1, -1, -1, -1, -1, 7546, -1, - -1, 7548, -1, 7549, 7551, 7553, 7554, 7556, - 7557, -1, 7559, -1, -1, -1, -1, -1, - -1, -1, 7561, -1, 7563, -1, -1, -1, - -1, 7564, 7568, -1, -1, -1, -1, -1, - -1, 7572, -1, -1, -1, 7575, 7576, 7577, - -1, -1, -1, 7579, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 7580, -1, 7585, - -1, -1, -1, -1, 7587, 7588, -1, -1, - -1, -1, 7590, -1, -1, -1, -1, -1, - -1, -1, -1, 7592, 7596, -1, 7598, 7599, - -1, 7600, 7602, -1, 7603, -1, -1, -1, - /* 0x8600 */ - 7606, -1, 7607, -1, 7609, -1, 7610, 7611, - -1, -1, 7615, 7617, -1, 7619, 7621, -1, - 7623, -1, -1, 7626, -1, -1, -1, 7628, - -1, -1, 7629, -1, -1, -1, 7630, -1, - -1, -1, 7631, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 7632, -1, 7633, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7635, -1, -1, 7636, -1, 7638, - -1, 7639, -1, -1, -1, -1, 7640, -1, - -1, -1, -1, -1, -1, -1, 7642, 7644, - -1, 7645, -1, 7646, -1, 7647, 7649, 7650, - -1, -1, 7652, 7654, 7656, 7657, -1, 7659, - -1, -1, -1, -1, -1, 7660, 7661, 7662, - -1, -1, -1, 7663, 7665, -1, 7666, 7667, - -1, 7668, -1, -1, -1, 7669, -1, -1, - -1, -1, 7671, 7672, -1, 7673, 7674, 7675, - 7676, 7677, 7678, 7679, -1, -1, -1, -1, - -1, -1, 7680, 7682, 7683, -1, -1, -1, - -1, -1, -1, -1, -1, 7684, 7687, -1, - 7688, -1, -1, -1, -1, 7689, -1, -1, - -1, -1, -1, -1, -1, -1, 7690, -1, - -1, -1, -1, 7691, 7692, -1, -1, -1, - -1, -1, -1, -1, 7693, -1, -1, -1, - -1, -1, 7694, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7695, - -1, -1, 7697, -1, -1, 7698, 7700, 7702, - -1, -1, -1, -1, 7703, -1, -1, -1, - -1, 7706, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 7707, 7708, - 7709, 7710, 7711, 7712, 7713, -1, -1, -1, - -1, -1, 7714, 7715, -1, 7716, -1, -1, - /* 0x8700 */ - -1, -1, 7718, -1, -1, -1, 7719, -1, - -1, -1, -1, 7720, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 7721, 7722, 7723, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7724, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7726, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7727, -1, -1, -1, 7728, -1, -1, - -1, -1, -1, -1, -1, 7729, -1, 7732, - 7734, 7735, -1, 7736, -1, -1, 7738, -1, - -1, -1, -1, -1, -1, 7739, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7740, - -1, 7741, -1, -1, -1, -1, 7742, -1, - 7743, -1, -1, -1, -1, -1, -1, 7744, - -1, 7745, -1, -1, -1, -1, -1, -1, - 7746, -1, -1, -1, 7747, -1, 7748, 7749, - 7751, -1, 7752, -1, 7753, -1, -1, -1, - 7754, -1, -1, -1, -1, 7755, 7756, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 7757, 7758, -1, -1, -1, -1, 7760, -1, - -1, 7761, 7762, -1, 7764, -1, -1, 7766, - 7767, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 7768, -1, -1, -1, 7769, - -1, 7770, -1, -1, 7771, -1, 7772, 7773, - 7774, -1, -1, -1, -1, -1, 7775, 7776, - -1, -1, 7777, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 7778, -1, -1, -1, -1, - -1, -1, -1, -1, 7779, -1, -1, 7780, - -1, -1, 7781, -1, -1, -1, 7782, -1, - 7783, 7784, -1, 7785, -1, -1, -1, -1, - /* 0x8800 */ - -1, 7787, -1, -1, -1, 7788, 7790, 7791, - -1, -1, -1, -1, -1, 7793, 7794, 7795, - 7796, 7797, 7798, -1, 7801, 7802, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 7803, - -1, 7805, 7806, 7807, -1, -1, -1, 7809, - 7811, -1, -1, -1, -1, 7812, -1, -1, - -1, 7813, -1, -1, -1, -1, 7814, -1, - -1, 7817, 7819, 7822, 7823, -1, -1, -1, - -1, -1, 7825, -1, 7826, 7827, 7828, -1, - -1, 7831, 7833, -1, -1, -1, -1, -1, - -1, -1, -1, 7834, 7835, 7838, 7839, -1, - 7840, -1, 7843, 7844, 7846, 7849, 7850, 7852, - -1, -1, -1, 7855, 7856, 7857, -1, -1, - 7858, -1, -1, -1, 7859, -1, 7860, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7861, -1, -1, -1, 7862, -1, -1, - -1, -1, -1, -1, 7863, 7864, 7867, -1, - -1, -1, -1, 7868, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 7869, -1, 7872, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 7873, 7875, 7876, 7877, - -1, -1, -1, -1, 7878, 7880, -1, 7881, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 7882, 7883, -1, - 7884, -1, 7885, -1, 7886, -1, -1, 7887, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7889, -1, -1, 7890, 7891, -1, -1, - 7892, 7893, 7895, 7896, 7897, 7899, 7900, -1, - 7902, -1, -1, -1, -1, 7903, -1, -1, - -1, -1, -1, -1, 7904, 7905, -1, -1, - -1, -1, -1, -1, -1, 7906, -1, -1, - /* 0x8900 */ - -1, -1, -1, -1, -1, -1, -1, 7907, - -1, -1, 7908, -1, 7909, -1, 7910, 7911, - -1, -1, 7912, 7914, -1, -1, -1, -1, - 7915, -1, -1, 7916, -1, 7917, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 7918, -1, -1, -1, -1, - -1, -1, 7919, 7920, 7921, -1, -1, -1, - 7922, -1, -1, 7923, -1, -1, -1, -1, - -1, -1, -1, 7924, -1, -1, -1, 7926, - -1, -1, -1, -1, 7927, 7928, -1, 7929, - -1, -1, -1, -1, -1, 7930, 7931, -1, - -1, -1, -1, -1, -1, 7932, -1, -1, - 7933, -1, -1, -1, 7934, -1, -1, -1, - -1, -1, 7935, -1, 7936, 7937, -1, 7938, - -1, -1, 7939, -1, 7940, -1, -1, -1, - -1, -1, -1, -1, -1, 7942, -1, 7943, - -1, -1, -1, -1, -1, -1, 7945, 7947, - 7948, 7949, 7952, 7956, -1, 7957, 7958, 7959, - 7960, -1, -1, 7963, 7965, -1, 7967, -1, - 7969, -1, 7970, -1, -1, -1, -1, -1, - -1, 7973, -1, -1, -1, 7974, 7975, 7976, - -1, 7978, 7979, -1, 7980, -1, -1, 7981, - 7982, -1, 7983, 7984, -1, -1, 7986, 7987, - -1, -1, 7989, -1, 7993, 7994, -1, 7996, - 7997, 7999, 8000, 8002, 8003, 8004, 8006, 8008, - 8009, 8011, 8014, 8015, 8016, 8017, 8018, 8019, - 8020, 8021, -1, -1, 8022, -1, -1, 8023, - -1, -1, -1, -1, -1, 8025, 8026, -1, - -1, -1, -1, 8027, -1, -1, 8028, 8029, - -1, -1, -1, -1, -1, -1, -1, 8030, - -1, -1, -1, -1, 8032, -1, 8033, -1, - 8035, 8036, -1, -1, -1, 8038, -1, 8040, - /* 0x8a00 */ - 8042, 8044, 8046, 8047, -1, -1, -1, -1, - 8048, -1, 8049, -1, 8050, -1, 8051, -1, - 8052, -1, 8053, 8054, -1, 8055, 8056, 8057, - 8059, -1, 8060, 8061, -1, 8062, -1, 8063, - 8064, 8066, 8068, 8069, -1, 8070, -1, -1, - -1, 8071, 8072, 8073, -1, 8074, -1, -1, - -1, 8075, -1, 8076, 8078, -1, 8079, -1, - -1, -1, 8081, 8082, 8083, 8085, -1, -1, - -1, 8086, -1, -1, -1, -1, 8087, -1, - -1, -1, -1, 8089, -1, 8091, 8092, -1, - 8093, -1, 8094, -1, 8095, 8096, 8097, 8098, - 8099, -1, -1, 8100, -1, -1, 8101, 8102, - 8103, 8104, 8105, 8106, -1, -1, 8107, 8108, - -1, 8109, -1, 8110, 8111, 8113, 8114, -1, - 8115, 8116, 8118, 8119, -1, 8120, -1, -1, - -1, -1, -1, -1, 8121, -1, -1, 8122, - -1, -1, -1, -1, 8123, 8124, 8125, 8126, - -1, 8127, 8128, -1, 8129, 8130, -1, -1, - -1, 8131, 8132, -1, -1, 8133, 8134, -1, - 8136, -1, 8138, -1, -1, -1, 8139, -1, - 8140, 8141, -1, 8142, 8143, 8144, 8145, -1, - 8146, -1, 8147, -1, 8149, 8151, -1, 8153, - 8154, -1, 8155, -1, -1, -1, 8156, -1, - -1, 8157, -1, -1, 8158, -1, 8160, 8161, - -1, -1, 8162, -1, 8163, -1, -1, 8164, - -1, 8165, -1, 8166, 8167, 8169, -1, 8170, - -1, 8171, 8172, -1, -1, -1, 8173, 8174, - -1, -1, -1, 8175, 8176, 8177, 8178, -1, - 8179, 8181, 8183, -1, 8184, -1, 8186, 8187, - -1, 8188, -1, 8189, 8191, 8197, 8198, -1, - -1, 8199, -1, 8200, -1, -1, 8202, 8203, - 8205, -1, 8206, -1, 8207, -1, 8209, -1, - /* 0x8b00 */ - 8210, 8211, 8212, -1, 8213, 8214, -1, -1, - -1, -1, 8215, -1, 8216, -1, 8217, -1, - 8218, -1, -1, -1, 8219, -1, 8220, 8221, - -1, 8222, 8223, 8225, -1, 8226, -1, -1, - 8227, 8229, -1, -1, -1, -1, -1, -1, - 8231, -1, 8232, 8233, 8235, 8236, -1, -1, - 8238, -1, -1, 8239, -1, -1, -1, -1, - -1, 8240, -1, -1, 8241, -1, 8243, -1, - -1, 8244, -1, -1, -1, -1, -1, -1, - -1, 8246, -1, -1, 8248, -1, 8249, 8250, - 8251, -1, -1, -1, -1, -1, 8252, -1, - 8254, 8255, 8256, 8257, 8259, -1, -1, 8261, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8262, 8264, -1, 8266, 8267, 8269, - 8271, 8272, 8273, -1, 8275, -1, -1, 8276, - 8277, -1, -1, -1, 8278, 8280, 8281, -1, - 8283, 8285, -1, 8287, -1, 8289, -1, -1, - -1, -1, 8290, 8292, 8293, 8295, 8297, -1, - 8300, -1, 8302, 8303, -1, 8305, 8306, -1, - -1, -1, 8307, -1, 8309, -1, 8310, -1, - 8311, 8313, 8314, 8315, 8316, 8317, 8318, 8319, - 8320, 8321, 8323, 8324, 8325, 8327, 8328, 8329, - 8330, 8331, 8332, 8333, 8334, 8335, 8336, 8337, - 8338, 8339, 8341, 8342, 8343, 8344, 8346, 8347, - 8348, 8349, 8351, 8352, 8353, 8354, 8355, 8356, - 8357, 8358, 8359, 8360, 8361, 8362, 8363, 8364, - 8365, 8366, 8368, 8369, 8370, 8371, 8372, 8373, - 8374, 8375, 8376, 8377, 8378, 8379, 8381, 8382, - 8383, 8384, 8385, 8386, 8387, 8388, 8389, 8390, - 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, - 8400, 8401, 8403, 8404, 8405, 8407, 8408, 8409, - 8410, 8411, 8412, 8413, 8415, 8416, 8417, 8418, - /* 0x8c00 */ - 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, - 8427, 8428, 8429, 8431, 8432, 8433, 8434, 8435, - 8437, 8438, 8439, 8440, 8441, 8443, 8444, 8446, - 8447, 8448, 8450, 8451, 8452, 8453, 8454, 8455, - 8456, 8457, 8458, 8459, 8461, 8462, 8464, 8465, - 8466, 8467, 8468, 8470, 8472, 8473, 8474, 8476, - 8477, 8478, 8479, 8480, 8481, 8482, 8483, 8484, - -1, -1, 8486, -1, -1, -1, -1, 8487, - 8490, -1, -1, -1, -1, -1, 8493, -1, - 8494, -1, 8495, -1, -1, -1, 8499, -1, - 8501, -1, -1, 8505, 8509, -1, -1, -1, - 8513, -1, 8514, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8515, -1, -1, -1, - -1, -1, -1, 8516, 8517, -1, 8518, -1, - -1, -1, -1, -1, -1, -1, 8519, -1, - -1, -1, 8520, 8521, 8522, -1, 8523, -1, - -1, -1, 8524, -1, -1, -1, -1, 8525, - -1, 8526, -1, 8527, 8528, 8529, 8531, -1, - -1, -1, 8532, 8533, 8534, -1, -1, -1, - 8535, -1, -1, 8536, 8537, 8539, 8541, 8542, - 8545, 8546, 8548, -1, -1, -1, -1, 8549, - 8550, 8551, 8552, 8553, 8554, 8555, 8558, 8561, - 8562, -1, 8563, 8564, 8567, -1, 8568, 8569, - 8570, -1, 8571, 8572, 8573, 8574, -1, 8575, - 8576, 8577, 8578, 8579, 8580, 8581, -1, 8582, - 8583, 8584, 8586, 8587, -1, 8588, 8590, -1, - -1, 8592, 8593, 8594, 8596, 8598, 8599, -1, - -1, 8600, 8601, 8602, 8604, -1, 8605, -1, - 8606, 8607, 8610, 8612, 8614, -1, 8616, 8617, - -1, -1, 8618, 8621, 8622, 8623, -1, -1, - 8624, -1, -1, -1, 8625, 8627, -1, 8628, - -1, -1, 8630, 8631, 8632, 8633, 8634, -1, - /* 0x8d00 */ - -1, 8635, -1, -1, 8637, 8638, -1, 8639, - 8640, -1, 8641, 8643, -1, 8646, -1, 8647, - 8648, -1, 8649, 8651, 8653, -1, 8654, 8655, - -1, -1, -1, 8658, 8659, 8660, 8662, 8663, - 8664, 8667, 8668, 8670, 8671, 8673, 8675, 8676, - 8677, 8679, 8680, 8681, 8682, 8683, 8684, 8685, - 8686, 8689, 8691, 8692, 8693, 8694, 8695, 8696, - 8697, 8698, 8699, 8700, 8701, 8702, 8703, 8704, - 8705, 8706, 8707, 8708, 8711, 8712, 8713, 8714, - 8715, 8716, 8717, 8719, 8720, 8721, 8724, 8725, - 8726, 8727, 8728, 8729, 8730, 8731, 8732, 8734, - 8735, 8736, 8737, 8738, 8739, 8740, 8743, 8747, - 8748, 8749, 8750, 8751, 8752, -1, -1, -1, - -1, -1, 8754, -1, 8755, -1, -1, -1, - 8756, 8757, -1, -1, -1, 8758, 8759, -1, - -1, -1, -1, 8760, -1, -1, -1, 8765, - -1, 8766, 8767, -1, -1, -1, -1, -1, - -1, -1, -1, 8768, -1, -1, -1, -1, - -1, 8769, -1, -1, -1, 8770, -1, -1, - -1, 8771, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 8772, -1, - 8773, -1, -1, -1, 8774, -1, -1, 8775, - -1, 8777, 8778, -1, -1, -1, -1, -1, - 8779, -1, -1, 8780, -1, -1, -1, -1, - -1, -1, -1, 8781, 8783, -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, 8784, -1, - -1, 8785, -1, -1, -1, 8786, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8787, 8788, 8789, 8790, - 8791, 8792, 8793, 8794, 8795, -1, -1, -1, - /* 0x8e00 */ - -1, 8796, -1, -1, -1, -1, -1, -1, - 8798, -1, 8800, 8801, 8803, -1, -1, -1, - 8804, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 8805, 8806, 8807, 8808, 8809, -1, -1, 8810, - 8811, -1, -1, -1, 8812, -1, -1, -1, - 8813, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8814, -1, -1, -1, - -1, -1, -1, 8815, 8817, -1, -1, 8818, - -1, 8819, 8820, -1, -1, 8821, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8822, - -1, -1, -1, 8823, 8824, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 8826, -1, -1, -1, -1, -1, -1, -1, - -1, 8828, 8830, -1, -1, -1, -1, 8832, - -1, -1, 8833, 8834, 8835, -1, -1, 8836, - -1, 8837, 8838, 8841, -1, 8843, -1, 8845, - -1, 8846, 8847, 8848, -1, 8849, -1, -1, - -1, 8851, 8852, -1, 8853, -1, -1, -1, - -1, 8854, 8855, -1, -1, 8857, 8858, -1, - -1, -1, 8859, -1, 8861, 8862, -1, 8863, - 8864, 8868, 8869, 8870, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 8871, -1, -1, -1, 8872, -1, 8875, -1, - -1, -1, 8879, 8880, 8881, 8882, -1, -1, - -1, 8883, 8884, -1, 8885, -1, -1, -1, - -1, -1, -1, 8886, -1, -1, -1, 8889, - -1, -1, 8890, 8892, 8894, -1, -1, -1, - -1, -1, -1, 8895, -1, -1, -1, -1, - 8896, -1, 8898, -1, -1, -1, 8899, -1, - 8902, 8903, 8904, 8905, 8906, 8907, 8909, -1, - /* 0x8f00 */ - 8910, -1, -1, 8911, -1, 8912, -1, 8913, - 8914, 8915, 8916, -1, 8917, -1, -1, 8919, - -1, -1, 8920, 8922, 8923, 8925, -1, -1, - -1, 8927, -1, 8929, 8931, 8933, 8934, 8935, - -1, 8936, -1, -1, -1, 8937, 8938, -1, - -1, 8939, 8941, -1, 8942, 8943, -1, 8944, - -1, -1, -1, 8945, -1, -1, 8946, -1, - 8947, -1, 8948, 8950, 8951, -1, 8952, 8953, - -1, 8954, 8957, -1, 8958, 8960, 8961, -1, - -1, 8962, -1, -1, -1, 8964, 8965, -1, - -1, -1, -1, -1, 8966, -1, -1, 8967, - -1, -1, -1, -1, 8968, -1, -1, 8969, - -1, 8971, 8972, -1, 8973, -1, 8974, 8975, - 8976, 8977, 8978, 8979, 8980, 8982, 8985, 8986, - 8988, 8990, 8991, 8992, 8993, 8994, 8995, 8996, - 8997, 8998, 8999, 9000, 9002, 9003, 9004, 9005, - 9006, 9007, 9008, 9009, 9010, 9012, 9013, 9015, - 9016, 9018, 9019, 9020, 9021, 9022, 9023, 9025, - 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, - 9034, 9035, 9036, -1, -1, 9037, 9040, 9043, - 9044, 9046, -1, -1, 9049, -1, 9052, 9053, - 9055, 9057, -1, 9060, -1, 9061, 9064, 9065, - -1, -1, 9068, -1, -1, 9069, 9070, -1, - -1, 9071, 9074, -1, -1, 9077, 9078, -1, - -1, 9080, 9081, 9082, -1, -1, 9083, 9084, - 9085, -1, 9086, -1, -1, -1, -1, -1, - 9088, -1, -1, -1, -1, -1, -1, -1, - 9089, 9090, -1, 9091, 9092, 9093, 9094, 9095, - -1, -1, -1, -1, 9098, 9099, -1, -1, - -1, 9100, 9101, -1, 9102, -1, -1, 9103, - -1, -1, -1, 9104, 9107, -1, -1, -1, - -1, 9113, 9115, -1, -1, -1, -1, -1, - /* 0x9000 */ - -1, -1, 9117, 9118, -1, -1, -1, -1, - 9119, 9120, 9121, -1, -1, -1, 9122, -1, - -1, -1, 9123, 9125, -1, 9127, -1, -1, - -1, 9130, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 9131, -1, 9132, 9138, -1, - -1, 9139, -1, -1, -1, -1, -1, -1, - 9140, 9142, 9143, -1, -1, -1, -1, -1, - -1, 9144, 9146, 9147, 9148, -1, -1, -1, - -1, 9149, -1, -1, -1, 9150, -1, -1, - -1, 9152, 9154, 9156, -1, -1, 9157, -1, - -1, -1, 9158, 9159, 9162, 9164, -1, 9165, - -1, 9166, -1, -1, 9167, -1, 9168, -1, - 9170, 9172, -1, -1, -1, 9173, -1, -1, - -1, 9174, -1, -1, -1, -1, -1, 9175, - -1, -1, 9176, -1, -1, -1, 9178, 9179, - 9180, -1, 9181, -1, 9182, -1, -1, -1, - -1, 9183, -1, -1, 9184, -1, -1, 9185, - -1, 9186, 9189, -1, -1, -1, -1, 9192, - 9193, 9194, -1, 9195, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 9196, -1, -1, - -1, -1, -1, -1, -1, -1, 9197, -1, - 9198, -1, -1, 9199, 9200, -1, 9201, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 9202, 9203, 9204, -1, 9207, -1, -1, - -1, 9208, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 9211, -1, 9212, 9214, - 9215, 9216, 9217, 9219, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 9220, 9222, - -1, -1, -1, -1, -1, -1, 9223, 9224, - 9225, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 9226, 9227, 9228, - 9232, -1, -1, -1, -1, -1, -1, -1, - /* 0x9100 */ - -1, -1, -1, -1, -1, -1, 9233, -1, - -1, 9234, 9238, -1, -1, -1, -1, -1, - -1, -1, 9242, -1, 9243, 9244, 9248, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 9249, - -1, -1, -1, -1, -1, 9250, -1, -1, - 9251, -1, 9254, -1, 9255, -1, 9256, 9257, - -1, -1, 9258, -1, 9259, 9260, -1, -1, - -1, -1, 9263, -1, -1, -1, 9264, 9265, - 9267, 9268, -1, 9269, -1, -1, -1, -1, - -1, -1, -1, -1, 9270, -1, -1, -1, - -1, 9271, -1, -1, -1, 9272, -1, -1, - -1, -1, 9274, -1, -1, -1, 9275, 9278, - -1, -1, 9280, -1, 9281, -1, -1, -1, - -1, 9283, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 9285, 9286, 9287, - -1, -1, -1, 9289, -1, -1, -1, 9290, - -1, 9291, 9292, 9293, -1, -1, 9294, -1, - -1, -1, -1, -1, 9296, 9297, 9298, 9300, - 9303, -1, -1, -1, 9304, -1, 9306, -1, - -1, -1, -1, -1, 9308, -1, -1, -1, - -1, -1, -1, 9310, 9312, -1, -1, -1, - -1, 9314, -1, -1, -1, -1, -1, -1, - 9317, -1, -1, 9319, 9321, -1, -1, -1, - 9323, 9325, -1, 9326, -1, 9327, -1, 9328, - 9330, -1, 9332, 9334, 9336, -1, 9338, -1, - 9340, 9341, 9343, 9345, 9348, 9349, 9350, 9352, - 9353, 9354, 9355, -1, 9357, 9358, -1, -1, - 9359, 9361, -1, 9362, 9364, -1, 9365, 9366, - -1, 9367, -1, -1, -1, -1, -1, 9368, - 9369, -1, -1, -1, -1, 9377, -1, 9378, - -1, 9379, 9380, 9381, 9384, -1, -1, -1, - /* 0x9200 */ - 9392, 9393, -1, 9394, 9395, 9396, 9397, -1, - 9399, 9400, -1, -1, -1, 9401, 9402, -1, - 9404, 9405, 9406, -1, 9407, 9408, -1, -1, - -1, -1, -1, -1, -1, -1, 9409, 9411, - -1, 9412, -1, 9413, -1, 9414, 9415, 9416, - 9417, 9418, -1, -1, 9420, -1, 9422, -1, - 9424, -1, -1, 9425, 9426, -1, -1, 9427, - 9428, 9429, 9430, -1, -1, 9431, 9432, 9433, - 9434, -1, -1, -1, 9435, 9440, 9441, 9442, - 9443, 9444, -1, 9445, -1, 9447, -1, -1, - -1, 9448, -1, -1, -1, 9449, -1, 9450, - -1, -1, 9451, 9452, -1, -1, 9454, -1, - 9455, -1, 9456, -1, 9459, -1, 9461, -1, - 9462, -1, -1, -1, 9464, 9465, -1, -1, - -1, 9466, -1, -1, 9471, -1, 9475, -1, - 9476, -1, 9477, 9478, -1, -1, -1, 9479, - 9480, -1, -1, 9481, -1, 9482, -1, -1, - -1, -1, -1, -1, -1, 9483, -1, -1, - -1, 9484, -1, 9485, -1, 9486, 9490, -1, - 9491, -1, 9492, 9494, 9496, -1, 9499, -1, - 9500, -1, -1, 9501, -1, 9502, 9503, -1, - 9504, 9505, 9506, 9507, 9508, 9509, 9511, -1, - -1, 9512, 9513, 9514, -1, -1, -1, 9516, - -1, 9518, -1, 9519, 9520, 9521, -1, -1, - -1, 9522, -1, 9523, -1, 9524, -1, 9525, - -1, -1, -1, -1, 9526, -1, -1, 9527, - -1, -1, 9528, -1, -1, -1, -1, -1, - -1, 9529, -1, 9530, -1, 9535, -1, 9536, - -1, -1, -1, 9538, 9540, 9541, 9542, -1, - 9543, 9548, 9550, -1, -1, 9553, 9555, 9556, - 9557, 9558, -1, 9559, -1, -1, 9561, -1, - 9562, -1, -1, -1, 9563, -1, -1, -1, - /* 0x9300 */ - -1, 9564, -1, -1, 9565, -1, 9567, 9568, - 9569, -1, -1, -1, -1, -1, -1, 9570, - 9572, -1, 9573, -1, -1, 9574, -1, -1, - 9575, 9576, 9578, 9579, -1, -1, -1, 9580, - 9581, 9582, 9583, -1, -1, -1, 9585, -1, - 9586, 9587, -1, 9588, 9589, -1, 9592, 9593, - -1, -1, 9594, 9596, -1, -1, 9597, 9598, - 9599, -1, -1, -1, -1, -1, 9600, -1, - 9601, 9602, -1, 9603, -1, -1, 9604, 9605, - 9606, -1, 9608, 9611, -1, 9612, -1, -1, - -1, -1, -1, -1, 9613, -1, -1, -1, - 9614, -1, 9615, 9616, -1, -1, 9618, -1, - 9619, -1, -1, -1, 9621, 9622, -1, -1, - -1, 9623, -1, -1, 9624, -1, -1, 9625, - 9627, -1, -1, 9628, -1, 9632, 9633, -1, - -1, -1, 9634, -1, -1, -1, 9635, 9637, - -1, 9638, 9639, -1, 9640, -1, -1, 9641, - -1, -1, 9642, 9643, 9644, -1, -1, -1, - -1, -1, 9646, -1, 9648, -1, 9650, 9652, - 9653, -1, 9654, 9655, -1, -1, -1, -1, - -1, 9656, 9658, 9659, -1, -1, 9660, 9662, - -1, 9663, 9664, -1, 9665, 9666, 9668, -1, - 9670, -1, -1, 9671, -1, 9672, -1, -1, - 9673, -1, 9674, -1, -1, -1, -1, 9675, - -1, 9676, -1, 9677, -1, -1, -1, 9678, - 9679, -1, -1, -1, 9680, 9681, -1, -1, - 9682, 9683, -1, 9684, -1, -1, -1, 9685, - 9686, -1, -1, -1, 9687, 9688, 9689, 9690, - -1, 9694, 9696, -1, 9697, 9698, -1, -1, - 9700, -1, -1, -1, -1, -1, -1, -1, - 9701, -1, -1, -1, -1, 9702, -1, 9703, - -1, 9704, -1, -1, -1, 9705, -1, -1, - /* 0x9400 */ - -1, -1, 9707, 9709, -1, -1, -1, -1, - -1, -1, -1, 9710, -1, -1, -1, -1, - 9711, -1, 9712, 9713, 9714, -1, -1, 9715, - 9716, 9717, 9718, -1, -1, 9720, -1, -1, - 9722, 9723, -1, -1, -1, -1, 9728, 9729, - 9730, -1, -1, 9731, -1, -1, 9732, -1, - -1, -1, 9734, 9735, -1, 9736, 9741, -1, - 9742, -1, 9744, -1, -1, -1, -1, 9745, - -1, -1, -1, 9746, 9748, 9750, -1, -1, - -1, -1, 9751, -1, 9752, -1, -1, -1, - -1, 9753, 9757, 9761, 9762, 9763, -1, -1, - -1, -1, 9764, 9766, 9771, -1, 9773, -1, - 9774, -1, -1, 9775, 9776, 9777, -1, -1, - -1, -1, 9778, -1, 9780, 9784, -1, 9785, - 9786, 9787, 9788, -1, -1, 9789, -1, 9791, - -1, 9792, -1, -1, 9793, 9794, 9796, 9797, - -1, 9798, 9800, -1, -1, 9801, 9803, 9806, - 9807, 9808, 9809, 9810, 9811, 9812, 9813, 9814, - 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, - 9823, 9824, 9825, 9826, 9827, 9828, 9829, 9830, - 9834, 9835, 9836, 9837, 9838, 9839, 9841, 9842, - 9843, 9844, 9846, 9847, 9848, 9849, 9850, 9851, - 9852, 9853, 9855, 9856, 9857, 9858, 9861, 9862, - 9863, 9864, 9865, 9866, 9869, 9870, 9871, 9872, - 9873, 9874, 9877, 9878, 9879, 9880, 9882, 9883, - 9885, 9886, 9887, 9889, 9890, 9892, 9893, 9895, - 9896, 9897, 9898, 9899, 9900, 9902, 9903, 9904, - 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, - 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, - 9921, 9922, 9923, 9924, 9926, 9927, 9928, 9929, - 9930, 9931, 9932, 9936, 9937, 9938, 9939, 9940, - 9941, 9943, 9944, 9947, 9948, 9949, 9950, 9951, - /* 0x9500 */ - 9953, 9954, 9955, 9956, 9957, 9959, 9960, 9961, - 9962, 9965, 9966, 9967, 9968, 9969, 9970, 9971, - 9973, 9975, 9976, 9977, 9978, 9979, 9980, 9981, - 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, - 9990, 9991, 9992, 9993, 9994, 9996, 9997, 9998, - 9999, 10000, 10001, 10003, 10004, 10005, 10006, 10007, - 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, - 10016, 10017, 10018, 10020, 10021, 10022, 10023, 10024, - 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, - 10034, 10035, 10036, 10037, 10038, 10040, 10041, 10042, - 10044, 10045, 10046, 10047, 10048, -1, 10049, 10050, - 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, - 10059, 10060, 10061, 10063, 10064, 10065, 10066, 10067, - 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, - 10076, 10078, 10079, 10080, 10081, 10082, 10083, 10084, - 10088, 10092, -1, -1, -1, -1, -1, 10094, - 10098, -1, 10099, 10100, -1, -1, 10101, 10102, - 10104, 10105, -1, 10107, 10108, -1, 10109, 10110, - -1, 10112, 10114, 10116, 10117, -1, -1, -1, - 10118, 10119, -1, -1, -1, -1, -1, -1, - 10121, 10123, 10124, 10127, 10128, 10129, -1, 10130, - 10131, 10132, -1, 10133, 10134, 10135, -1, -1, - -1, 10136, 10138, -1, 10140, -1, 10142, -1, - -1, 10143, -1, 10145, 10146, 10147, 10148, 10149, - -1, -1, -1, 10150, -1, -1, 10152, 10153, - 10154, -1, 10155, 10157, 10158, 10159, -1, -1, - 10160, -1, 10161, 10162, 10163, 10164, 10165, 10166, - 10169, 10174, -1, -1, 10180, -1, 10183, -1, - 10184, 10185, 10186, -1, 10187, 10188, -1, -1, - 10189, 10190, 10191, 10192, 10193, 10194, 10196, 10197, - 10198, 10200, 10201, 10203, 10204, 10205, 10206, 10207, - 10208, 10209, 10211, 10212, 10213, 10214, 10215, 10216, - /* 0x9600 */ - 10217, 10218, 10219, 10220, 10221, 10222, 10224, 10225, - 10226, 10227, 10229, 10230, 10231, 10232, 10233, 10234, - 10235, 10236, 10237, 10239, 10240, 10242, 10243, 10244, - 10245, 10246, 10247, 10249, 10250, 10251, -1, 10253, - -1, -1, -1, -1, -1, 10254, 10258, -1, - 10260, 10261, 10263, 10265, 10267, -1, -1, 10268, - -1, 10269, -1, 10270, 10272, 10276, 10277, -1, - 10279, -1, -1, 10280, -1, -1, -1, -1, - 10281, 10283, -1, -1, -1, 10285, 10286, 10287, - 10288, 10289, -1, -1, -1, 10290, -1, -1, - -1, -1, -1, -1, -1, 10291, 10294, -1, - 10295, -1, -1, -1, 10296, 10298, 10299, 10301, - -1, -1, -1, 10302, -1, 10304, 10305, -1, - 10312, 10313, -1, -1, -1, -1, -1, -1, - 10316, -1, -1, 10320, -1, -1, -1, 10321, - 10322, -1, 10323, 10326, -1, 10328, -1, 10330, - -1, 10332, 10334, -1, 10338, -1, -1, -1, - -1, -1, 10340, -1, 10341, -1, 10342, 10344, - 10345, -1, -1, -1, -1, 10348, 10350, -1, - -1, 10351, -1, 10352, -1, 10353, -1, 10360, - 10361, -1, -1, 10364, -1, -1, -1, -1, - 10367, -1, 10368, 10371, -1, -1, 10373, 10374, - -1, 10381, 10384, -1, 10385, -1, 10386, 10388, - 10390, -1, 10392, 10399, -1, 10400, 10401, -1, - -1, 10402, -1, -1, -1, -1, -1, 10404, - -1, -1, -1, 10406, -1, 10407, -1, 10408, - -1, 10409, -1, -1, -1, 10411, 10414, -1, - -1, 10415, 10416, 10417, 10419, 10421, 10422, 10425, - 10426, -1, 10428, 10429, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 10430, -1, 10431, 10432, -1, -1, 10433, 10434, - -1, -1, 10435, 10437, -1, -1, 10438, -1, - /* 0x9700 */ - -1, 10440, -1, -1, -1, -1, -1, -1, - -1, 10441, 10442, -1, -1, -1, -1, -1, - -1, 10445, -1, -1, -1, -1, -1, 10446, - -1, -1, 10447, 10450, -1, -1, -1, -1, - -1, 10453, 10454, -1, -1, -1, -1, 10455, - -1, -1, -1, -1, -1, 10458, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 10459, -1, -1, 10460, -1, 10464, -1, -1, - -1, 10465, 10466, -1, 10467, -1, 10468, -1, - 10469, 10472, 10473, -1, -1, 10477, 10484, 10491, - -1, 10498, 10500, 10502, 10503, -1, -1, -1, - -1, 10506, 10507, -1, 10508, 10509, -1, -1, - -1, -1, 10512, 10518, 10519, 10521, -1, 10522, - 10523, -1, -1, 10524, -1, 10526, -1, -1, - -1, 10529, -1, -1, 10532, -1, -1, -1, - -1, -1, -1, -1, -1, 10533, -1, -1, - 10534, -1, -1, -1, -1, -1, -1, -1, - -1, 10536, -1, 10538, 10539, 10540, -1, 10541, - -1, 10542, 10543, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 10544, - -1, -1, -1, -1, -1, -1, 10545, 10547, - 10549, -1, -1, -1, -1, -1, -1, 10550, - -1, 10551, 10553, -1, -1, 10554, -1, -1, - -1, 10555, -1, -1, -1, 10556, 10557, -1, - -1, 10558, -1, 10560, -1, -1, 10561, -1, - 10562, 10564, -1, 10565, 10566, 10567, -1, -1, - -1, -1, -1, 10569, -1, -1, -1, -1, - -1, 10570, -1, -1, 10571, 10574, 10575, -1, - -1, -1, -1, -1, 10576, -1, 10578, 10579, - 10582, 10584, 10585, 10586, 10587, 10589, 10590, 10591, - -1, 10592, 10593, -1, -1, 10595, -1, -1, - -1, -1, -1, 10596, -1, -1, -1, 10597, - /* 0x9800 */ - -1, 10598, 10599, 10600, -1, 10601, 10602, 10603, - 10604, -1, 10605, -1, 10606, -1, 10607, 10608, - 10609, 10610, 10611, 10612, -1, -1, -1, 10613, - 10614, -1, 10615, -1, 10617, -1, -1, -1, - -1, 10618, -1, -1, 10619, 10621, 10623, -1, - -1, -1, -1, -1, 10624, 10626, 10627, -1, - 10629, -1, 10631, -1, 10632, -1, -1, 10634, - 10635, 10637, 10641, 10645, 10646, 10648, 10652, -1, - -1, -1, -1, -1, -1, -1, 10653, -1, - -1, -1, -1, 10654, 10655, 10656, 10657, 10658, - -1, -1, 10660, 10661, 10662, 10664, 10666, -1, - 10667, 10668, 10669, 10671, -1, -1, 10673, -1, - -1, -1, 10674, -1, -1, 10675, -1, 10676, - -1, -1, -1, 10677, 10678, -1, -1, 10679, - 10681, 10682, -1, 10685, 10686, 10687, 10688, 10689, - 10690, 10691, 10692, 10693, 10695, 10696, 10697, 10698, - 10699, 10700, 10701, 10702, 10703, 10704, 10706, 10707, - 10708, 10710, 10711, 10713, 10714, 10715, 10716, 10717, - 10718, 10720, 10721, 10722, 10726, -1, 10727, 10729, - 10730, 10731, 10732, 10733, 10734, 10736, 10737, 10738, - 10739, 10741, 10742, 10743, 10744, 10745, 10746, 10747, - 10748, -1, -1, -1, -1, 10756, 10757, 10761, - -1, 10762, -1, 10763, -1, -1, 10764, 10765, - 10768, -1, 10769, 10770, 10771, -1, -1, -1, - 10772, -1, -1, 10773, 10775, -1, 10777, 10782, - 10783, -1, -1, -1, 10787, -1, 10792, 10798, - 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, - 10807, 10809, 10810, 10811, 10812, -1, 10813, 10814, - 10817, 10820, 10821, 10822, -1, 10823, -1, -1, - 10824, 10825, 10826, 10827, 10829, 10830, 10831, 10833, - 10835, -1, 10836, -1, 10838, -1, 10839, -1, - -1, -1, -1, -1, 10840, 10841, 10842, 10843, - /* 0x9900 */ - -1, -1, -1, 10844, 10845, 10846, -1, -1, - -1, 10848, 10851, -1, 10854, 10855, 10856, 10857, - 10858, 10859, 10860, 10862, -1, 10863, 10864, -1, - 10865, -1, 10867, 10868, 10869, -1, 10870, 10871, - 10872, 10874, -1, -1, -1, -1, -1, 10875, - 10879, -1, -1, -1, 10881, -1, -1, -1, - -1, 10882, -1, 10883, 10884, 10885, 10887, 10888, - -1, 10889, 10890, 10891, 10892, 10893, 10894, 10895, - -1, 10896, -1, 10897, -1, 10898, -1, -1, - 10899, 10900, 10901, 10902, 10903, 10904, 10905, -1, - -1, 10906, 10907, -1, -1, -1, -1, 10908, - -1, 10909, -1, -1, 10910, -1, 10911, 10912, - -1, -1, 10915, 10916, 10919, 10920, 10922, 10923, - 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10933, - 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, - 10943, 10944, 10945, 10946, 10947, 10949, 10950, 10951, - 10952, 10954, 10956, 10957, 10958, 10959, 10960, 10961, - 10962, 10964, 10965, 10966, 10967, 10968, 10969, 10970, - 10971, 10972, 10973, 10974, 10975, 10976, -1, -1, - -1, -1, -1, -1, -1, 10977, 10978, 10979, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 10980, 10981, 10982, -1, - -1, 10983, 10985, 10986, 10987, -1, -1, -1, - -1, 10988, -1, -1, -1, 10989, -1, 10990, - -1, 10992, -1, -1, 10993, 10995, 10997, -1, - 11001, -1, -1, -1, -1, -1, -1, -1, - 11005, 11006, 11007, -1, 11008, 11009, -1, -1, - 11010, 11011, -1, 11012, -1, 11013, 11015, 11017, - -1, 11018, 11021, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 11022, 11023, -1, - 11024, 11025, -1, -1, -1, 11026, -1, -1, - 11028, -1, -1, -1, -1, -1, -1, 11029, - /* 0x9a00 */ - -1, 11030, 11031, -1, -1, 11032, -1, -1, - -1, -1, -1, -1, -1, 11033, 11034, 11035, - 11036, -1, 11039, 11041, -1, -1, 11044, -1, - -1, 11045, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 11046, -1, -1, -1, - 11047, -1, -1, 11048, -1, 11049, 11050, -1, - 11053, -1, -1, -1, -1, -1, 11054, 11055, - 11057, -1, 11058, -1, -1, -1, 11059, -1, - 11060, 11061, 11062, 11063, 11064, 11065, -1, 11069, - -1, -1, 11070, -1, 11071, 11072, -1, 11073, - -1, 11074, 11077, -1, -1, 11078, -1, 11079, - -1, -1, 11082, 11083, -1, 11085, -1, 11086, - -1, -1, 11087, -1, 11089, 11090, 11092, -1, - -1, 11093, 11094, 11095, 11096, 11097, 11098, 11100, - 11101, 11102, 11106, 11107, 11109, 11111, 11112, 11113, - 11114, 11115, 11116, 11117, 11118, 11120, 11121, 11122, - 11124, 11125, 11126, 11129, 11130, 11131, 11132, 11133, - 11134, 11135, 11136, 11137, 11138, 11141, 11142, 11143, - 11144, 11145, 11146, 11147, -1, 11148, 11149, 11150, - 11151, 11153, 11154, 11156, 11157, 11158, 11160, 11161, - 11162, 11163, 11164, 11165, 11166, 11167, 11169, 11170, - -1, -1, -1, -1, -1, -1, -1, 11171, - -1, -1, -1, -1, -1, 11172, -1, -1, - -1, -1, -1, -1, -1, -1, 11176, -1, - -1, -1, -1, -1, 11177, 11179, -1, -1, - 11180, -1, -1, 11181, 11182, -1, -1, 11183, - -1, -1, 11184, 11185, 11187, 11191, 11193, 11194, - 11197, 11198, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 11199, 11201, 11202, -1, -1, - -1, 11203, 11205, -1, -1, 11207, 11208, 11210, - -1, -1, -1, -1, 11211, -1, -1, -1, - -1, 11213, -1, -1, -1, -1, -1, -1, - /* 0x9b00 */ - 11214, -1, 11215, -1, -1, -1, 11218, -1, - -1, -1, -1, -1, -1, 11219, -1, -1, - -1, -1, -1, 11220, -1, -1, -1, -1, - -1, -1, 11222, 11223, -1, -1, -1, -1, - -1, -1, 11224, 11227, -1, 11228, 11233, 11238, - 11240, 11241, 11242, 11247, -1, 11248, 11253, -1, - 11254, 11257, -1, -1, -1, -1, 11260, -1, - -1, 11261, -1, 11262, -1, -1, -1, -1, - 11264, -1, -1, -1, -1, -1, -1, 11265, - -1, 11266, -1, -1, -1, -1, 11267, -1, - 11269, -1, -1, -1, -1, -1, -1, 11274, - 11276, -1, 11277, 11278, -1, -1, -1, -1, - -1, -1, 11279, 11280, -1, -1, 11281, -1, - 11282, -1, -1, -1, -1, 11283, -1, 11284, - -1, -1, 11285, 11287, 11288, -1, -1, 11289, - -1, -1, 11290, -1, -1, -1, -1, -1, - -1, 11291, -1, 11292, -1, -1, -1, -1, - -1, 11293, 11295, 11296, -1, 11297, 11298, 11299, - 11300, 11301, 11302, 11303, -1, -1, -1, -1, - -1, -1, 11304, -1, 11305, 11306, 11309, -1, - -1, -1, -1, -1, -1, -1, 11310, 11311, - -1, -1, 11313, 11314, -1, 11315, 11316, -1, - -1, -1, -1, 11321, -1, -1, 11322, 11323, - -1, -1, 11325, 11326, -1, -1, 11327, -1, - 11328, 11329, -1, -1, -1, -1, -1, 11330, - -1, 11332, 11333, 11335, -1, -1, -1, -1, - -1, -1, 11336, -1, 11337, 11338, 11339, 11340, - 11342, -1, -1, 11343, -1, 11345, -1, -1, - -1, 11346, 11347, -1, 11348, -1, -1, 11349, - 11350, -1, 11351, 11352, -1, -1, -1, -1, - 11353, -1, -1, -1, 11354, 11355, -1, 11356, - -1, 11359, -1, -1, -1, 11360, -1, 11361, - /* 0x9c00 */ - 11362, 11364, 11365, 11366, -1, -1, -1, -1, - 11367, 11369, -1, -1, 11370, 11372, -1, 11374, - 11375, -1, 11377, 11378, -1, -1, -1, -1, - -1, -1, -1, 11379, 11381, -1, -1, 11382, - 11383, -1, -1, 11384, 11385, 11386, -1, -1, - 11388, 11390, -1, -1, -1, 11391, 11392, -1, - -1, 11393, 11394, 11396, -1, 11397, -1, 11398, - -1, 11399, 11400, 11402, 11403, -1, 11404, -1, - -1, -1, 11405, -1, -1, 11406, -1, -1, - 11407, 11408, -1, -1, -1, -1, -1, -1, - -1, -1, 11411, 11412, 11413, -1, 11414, 11415, - 11416, -1, -1, -1, -1, 11417, 11418, 11419, - 11420, -1, -1, 11421, 11422, -1, -1, 11423, - 11424, -1, -1, -1, -1, 11425, 11426, 11427, - -1, -1, -1, -1, -1, -1, 11428, 11431, - 11433, -1, 11435, 11436, 11441, 11442, 11443, 11444, - 11445, 11446, 11447, -1, 11448, 11449, 11450, 11451, - 11452, 11454, 11455, 11456, 11457, 11458, 11460, 11461, - 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, - 11470, 11471, 11472, 11473, 11474, 11479, 11480, 11482, - 11483, 11485, 11486, 11487, 11488, 11489, 11490, 11491, - 11492, 11493, 11495, 11496, 11497, 11498, 11499, 11500, - 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, - 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, - 11518, 11519, 11520, 11521, 11522, 11524, 11526, 11527, - 11528, 11529, 11530, 11531, 11532, 11534, 11535, 11536, - 11537, 11538, 11539, 11540, 11541, 11542, 11544, 11546, - 11547, 11548, -1, 11549, 11550, 11551, 11553, 11554, - 11555, 11556, 11557, 11558, -1, 11559, -1, 11561, - -1, 11563, -1, 11564, 11566, -1, -1, -1, - -1, -1, 11567, 11568, 11569, -1, 11570, -1, - 11571, -1, -1, -1, -1, -1, -1, -1, - /* 0x9d00 */ - -1, -1, -1, -1, -1, -1, 11572, 11573, - 11574, 11576, -1, -1, -1, -1, 11578, -1, - -1, -1, 11580, -1, -1, 11581, -1, -1, - -1, -1, -1, 11582, -1, 11583, 11585, 11586, - -1, -1, -1, 11588, -1, -1, 11589, -1, - 11590, -1, -1, -1, 11591, -1, -1, 11593, - 11594, -1, -1, 11595, 11596, -1, -1, -1, - -1, -1, -1, 11597, 11598, -1, -1, 11599, - -1, -1, 11600, 11601, 11602, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 11603, 11604, 11605, 11606, -1, -1, -1, -1, - -1, 11607, -1, -1, 11608, 11609, 11611, -1, - 11613, 11614, -1, -1, -1, -1, -1, -1, - -1, -1, 11615, -1, 11616, -1, 11617, 11618, - 11619, -1, 11620, -1, -1, -1, 11621, 11623, - -1, -1, -1, -1, -1, -1, 11624, -1, - -1, -1, -1, -1, -1, -1, -1, 11626, - -1, 11628, 11629, -1, -1, -1, -1, 11630, - -1, -1, -1, 11633, -1, -1, 11634, -1, - 11635, -1, 11636, -1, -1, -1, -1, -1, - -1, 11637, -1, -1, 11638, 11639, -1, -1, - -1, 11640, 11641, 11642, 11644, -1, -1, 11645, - -1, -1, 11647, -1, 11648, 11655, -1, -1, - -1, 11656, 11657, 11658, 11659, -1, -1, 11660, - 11661, 11662, 11663, 11664, 11665, -1, 11668, -1, - 11669, 11670, 11671, -1, -1, -1, -1, 11672, - -1, -1, -1, 11673, -1, -1, 11674, 11675, - -1, 11677, 11678, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 11679, 11680, -1, - -1, -1, -1, 11681, -1, -1, -1, 11682, - 11683, -1, 11684, 11685, 11687, -1, -1, -1, - 11689, 11690, 11691, -1, -1, 11693, -1, 11694, - /* 0x9e00 */ - -1, -1, -1, -1, -1, -1, -1, 11695, - -1, -1, 11696, -1, 11697, -1, 11698, 11699, - -1, -1, -1, -1, -1, 11700, 11703, -1, - 11710, -1, 11711, 11712, 11714, 11715, 11716, 11717, - 11719, 11720, 11723, 11724, 11725, 11726, 11728, 11730, - 11731, 11732, 11733, 11734, 11736, 11737, 11738, 11739, - 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, - 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, - 11756, 11757, 11758, 11759, 11760, 11761, 11763, 11764, - 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, - 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, - 11782, 11783, 11784, 11786, 11787, 11788, 11789, 11790, - 11791, 11792, 11793, 11794, 11795, 11802, 11803, 11804, - 11805, 11806, 11807, 11808, 11809, 11810, -1, 11811, - 11812, 11813, 11814, 11815, 11816, 11817, -1, -1, - 11819, 11822, 11824, 11825, 11826, 11829, 11831, -1, - -1, -1, -1, 11832, 11833, 11834, -1, 11835, - -1, -1, -1, -1, -1, -1, -1, 11836, - -1, -1, -1, -1, -1, -1, -1, 11837, - -1, -1, -1, -1, -1, -1, 11839, -1, - -1, -1, -1, -1, 11840, 11842, 11843, -1, - -1, 11844, 11846, 11851, 11856, 11858, -1, 11859, - -1, -1, -1, -1, 11863, 11867, -1, -1, - 11872, 11874, 11878, 11883, 11886, 11890, -1, -1, - -1, -1, -1, 11894, 11895, -1, -1, -1, - -1, 11897, -1, -1, 11898, -1, -1, 11899, - -1, 11900, 11901, -1, -1, -1, -1, -1, - 11902, 11903, -1, 11904, -1, -1, 11905, -1, - -1, 11907, -1, -1, 11908, -1, -1, -1, - 11909, 11910, 11911, -1, -1, 11912, -1, -1, - -1, 11913, 11914, -1, 11915, -1, 11916, 11917, - -1, 11918, -1, -1, -1, 11919, 11920, 11921, - /* 0x9f00 */ - -1, -1, 11923, 11924, -1, -1, -1, 11925, - 11927, 11930, -1, 11931, 11932, 11933, 11934, -1, - -1, 11935, 11936, 11937, -1, 11939, -1, 11940, - -1, -1, -1, -1, -1, -1, -1, -1, - 11942, 11943, -1, -1, -1, -1, 11944, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 11945, -1, -1, -1, - -1, 11946, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 11947, -1, -1, - -1, -1, 11948, 11952, -1, -1, 11954, 11956, - 11958, 11962, 11964, 11966, 11967, 11969, -1, 11970, - -1, 11971, 11972, -1, 11973, -1, -1, 11974, - 11975, 11976, 11978, 11980, -1, -1, 11981, 11982, - -1, 11985, 11986, -1, 11988, -1, -1, -1, - 11989, 11990, 11991, -1, -1, -1, 11992, 11993, - -1, -1, -1, -1, -1, -1, -1, 11994, - 11996, 11997, 11998, 11999, 12000, 12002, 12003, 12004, - 12005, 12006, 12007, 12008, 12009, 12010, 12013, -1, - 12014, -1, 12015, -1, 12018, 12019, -1, -1, - -1, 12020, 12022, 12023, 12024, 12026, 12029, 12031, - -1, -1, 12033, -1, -1, 12036, -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, -}; - diff --git a/jni/parted/libiconv/lib/cns11643.h b/jni/parted/libiconv/lib/cns11643.h deleted file mode 100755 index 044bf9d..0000000 --- a/jni/parted/libiconv/lib/cns11643.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 1999-2001 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 - */ - -/* ISO-2022-CN and EUC-TW use CNS 11643-1992 planes 1 to 7. We also - * have a table for the older plane 15. We use a trick to keep the - * Unicode -> CNS 11643 table as small as possible (see cns11643_inv.h). - */ - -#include "cns11643_1.h" -#include "cns11643_2.h" -#include "cns11643_3.h" -#include "cns11643_4.h" -#include "cns11643_5.h" -#include "cns11643_6.h" -#include "cns11643_7.h" -#include "cns11643_15.h" -#include "cns11643_inv.h" - -/* Returns the plane number (1,...,7,15) in r[0], the two bytes in r[1],r[2]. */ -#define cns11643_wctomb cns11643_inv_wctomb diff --git a/jni/parted/libiconv/lib/cns11643_1.h b/jni/parted/libiconv/lib/cns11643_1.h deleted file mode 100755 index a6673ef..0000000 --- a/jni/parted/libiconv/lib/cns11643_1.h +++ /dev/null @@ -1,892 +0,0 @@ -/* - * Copyright (C) 1999-2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 1 - */ - -static const unsigned short cns11643_1_2uni_page21[500] = { - /* 0x21 */ - 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x30fb, 0xff1b, 0xff1a, - 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, - 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe31, 0x2014, 0xfe32, - 0x2013, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff08, 0xff09, 0xfe35, - 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, - 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, - 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, - 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, - 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, - 0x301e, 0x2032, 0x2035, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, - 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, - 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, - /* 0x22 */ - 0x32a3, 0x2105, 0x203e, 0xfffd, 0xff3f, 0xfffd, 0xfe49, 0xfe4a, - 0xfe4d, 0xfe4e, 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, - 0xff0d, 0x00d7, 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, - 0x2266, 0x2267, 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, - 0xfe64, 0xfe66, 0xfe65, 0x223c, 0x2229, 0x222a, 0x22a5, 0x2220, - 0x221f, 0x22bf, 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, - 0x2640, 0x2642, 0x2641, 0x2609, 0x2191, 0x2193, 0x2192, 0x2190, - 0x2196, 0x2197, 0x2199, 0x2198, 0x2016, 0xff5c, 0xff0f, 0xff3c, - 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, 0xff05, - 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, 0x339c, - 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, 0x00b0, - 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, - /* 0x23 */ - 0x55e7, 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, - 0x2586, 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, - 0x258a, 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, - 0x2500, 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, - 0x256e, 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, - 0x25e3, 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x24 */ - 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, - 0xff18, 0xff19, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, - 0x2166, 0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, - 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0xfffd, 0x5344, 0xfffd, - 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, 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, 0x0391, 0x0392, 0x0393, 0x0394, - 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, - /* 0x25 */ - 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, - 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, - 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, - 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, - 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, - 0x3107, 0x3108, 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, - 0x310f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, - 0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, - 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, - 0x3127, 0x3128, 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x26 */ - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, - 0x247a, 0x247b, 0x247c, 0x247d, 0x2170, 0x2171, 0x2172, 0x2173, - 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, -}; -static const unsigned short cns11643_1_2uni_page42[34] = { - /* 0x42 */ - 0x2400, 0x2401, 0x2402, 0x2403, 0x2404, 0x2405, 0x2406, 0x2407, - 0x2408, 0x2409, 0x240a, 0x240b, 0x240c, 0x240d, 0x240e, 0x240f, - 0x2410, 0x2411, 0x2412, 0x2413, 0x2414, 0x2415, 0x2416, 0x2417, - 0x2418, 0x2419, 0x241a, 0x241b, 0x241c, 0x241d, 0x241e, 0x241f, - 0x2421, 0x20ac, -}; -static const unsigned short cns11643_1_2uni_page44[5401] = { - /* 0x44 */ - 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c, - 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b, - 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a, - 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e, - 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f, - 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8, - 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2, - 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x4e11, - 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88, - 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3, - 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141, - 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, - /* 0x45 */ - 0x5206, 0x5207, 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, - 0x5348, 0x5347, 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, - 0x58ec, 0x5929, 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, - 0x5c3a, 0x5c6f, 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, - 0x6208, 0x6236, 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, - 0x65b9, 0x65e5, 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, - 0x6bcb, 0x6bd4, 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, - 0x723b, 0x7247, 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, 0x4e16, - 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, 0x4ee5, - 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, 0x4ed9, - 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, 0x51fa, - 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, - /* 0x46 */ - 0x5317, 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, - 0x536e, 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, - 0x53e8, 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, - 0x53f1, 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, - 0x592e, 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, - 0x5de7, 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, - 0x5f17, 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, - 0x65e6, 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, - 0x6c11, 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, - 0x7389, 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, - 0x7531, 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, - 0x77db, 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, - /* 0x47 */ - 0x7acb, 0x4e1e, 0x4e1f, 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, - 0x4ea6, 0x4ea5, 0x4eff, 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, - 0x4f10, 0x4f11, 0x4f0f, 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, - 0x4efd, 0x4f01, 0x4f0b, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168, - 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216, - 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f, - 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d, - 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd, - 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919, - 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979, - 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89, - 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, - /* 0x48 */ - 0x5e74, 0x5f0f, 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, - 0x6210, 0x6263, 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, - 0x65ed, 0x66f2, 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, - 0x6b21, 0x6b64, 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, - 0x6c60, 0x6c50, 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, - 0x725f, 0x725d, 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, - 0x7fbd, 0x8001, 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, - 0x808b, 0x808c, 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, - 0x821f, 0x826e, 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, - 0x897f, 0x9621, 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, - 0x4f5e, 0x4f34, 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, - 0x4f3a, 0x4f38, 0x4f43, 0x4f54, 0x4f3c, 0x4f46, - /* 0x49 */ - 0x4f63, 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, - 0x4f48, 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, - 0x5225, 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, - 0x52ac, 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, - 0x5426, 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, - 0x541b, 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, - 0x5436, 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, - 0x56ea, 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, - 0x5747, 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, - 0x599d, 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, - 0x59a4, 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, - 0x5b8c, 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, - /* 0x4a */ - 0x5c3f, 0x5c3e, 0x5c90, 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, - 0x5e8f, 0x5e87, 0x5e8a, 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, - 0x5f77, 0x5f79, 0x5fd8, 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, - 0x5ff8, 0x5fea, 0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, - 0x6276, 0x6289, 0x626d, 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, - 0x6292, 0x626f, 0x6298, 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, - 0x6539, 0x653b, 0x6538, 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, - 0x6750, 0x6751, 0x675c, 0x6756, 0x675e, 0x6749, 0x6746, 0x6760, - 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81, - 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70, - 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e, - 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, - /* 0x4b */ - 0x6c82, 0x7076, 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, - 0x72c4, 0x72c2, 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, - 0x76ef, 0x77e3, 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, - 0x8096, 0x8093, 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, - 0x8292, 0x828b, 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, - 0x8c55, 0x8c9d, 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, - 0x8fb0, 0x8fc2, 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, - 0x90aa, 0x90a6, 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, - 0x9631, 0x962a, 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, - 0x4e9e, 0x4eab, 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, - 0x4f6c, 0x4f9b, 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, - 0x4f69, 0x4f7b, 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, - /* 0x4c */ - 0x4f7a, 0x5154, 0x5152, 0x5155, 0x5169, 0x5177, 0x5176, 0x5178, - 0x51bd, 0x51fd, 0x523b, 0x5238, 0x5237, 0x523a, 0x5230, 0x522e, - 0x5236, 0x5241, 0x52be, 0x52bb, 0x5352, 0x5354, 0x5353, 0x5351, - 0x5366, 0x5377, 0x5378, 0x5379, 0x53d6, 0x53d4, 0x53d7, 0x5473, - 0x5475, 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, - 0x5492, 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, - 0x5462, 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, - 0x576a, 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, - 0x5947, 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, - 0x59ae, 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, - 0x59af, 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, - 0x5b9a, 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, - /* 0x4d */ - 0x5c48, 0x5c45, 0x5c46, 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, - 0x5cb1, 0x5cb3, 0x5e18, 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, - 0x5e78, 0x5e9a, 0x5e97, 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, - 0x5f27, 0x5f29, 0x5f80, 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, - 0x5ffd, 0x5ff5, 0x5fff, 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, - 0x602a, 0x6015, 0x6021, 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, - 0x6215, 0x623f, 0x623e, 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, - 0x62bf, 0x62c2, 0x62b9, 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, - 0x62cb, 0x62c8, 0x62a8, 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, - 0x62cd, 0x62b5, 0x62da, 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, - 0x62ac, 0x62ce, 0x653e, 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, - 0x660c, 0x6606, 0x6602, 0x660e, 0x6600, 0x660f, - /* 0x4e */ - 0x6615, 0x660a, 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, - 0x6771, 0x679c, 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, - 0x6770, 0x677f, 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, - 0x677c, 0x676a, 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, - 0x6c1b, 0x6ce3, 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, - 0x6cbd, 0x6cbe, 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, - 0x6cc4, 0x6cb9, 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, - 0x6cbb, 0x6ce1, 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, - 0x6ce0, 0x7095, 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, - 0x7238, 0x7248, 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, - 0x72d0, 0x73a9, 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, - 0x7599, 0x759a, 0x7684, 0x76c2, 0x76f2, 0x76f4, - /* 0x4f */ - 0x77e5, 0x77fd, 0x793e, 0x7940, 0x7941, 0x79c9, 0x79c8, 0x7a7a, - 0x7a79, 0x7afa, 0x7cfe, 0x7f54, 0x7f8c, 0x7f8b, 0x8005, 0x80ba, - 0x80a5, 0x80a2, 0x80b1, 0x80a1, 0x80ab, 0x80a9, 0x80b4, 0x80aa, - 0x80af, 0x81e5, 0x81fe, 0x820d, 0x82b3, 0x829d, 0x8299, 0x82ad, - 0x82bd, 0x829f, 0x82b9, 0x82b1, 0x82ac, 0x82a5, 0x82af, 0x82b8, - 0x82a3, 0x82b0, 0x82be, 0x82b7, 0x864e, 0x8671, 0x521d, 0x8868, - 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1, 0x90b5, 0x90b8, 0x90b1, 0x90b6, - 0x91c7, 0x91d1, 0x9577, 0x9580, 0x961c, 0x9640, 0x963f, 0x963b, - 0x9644, 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, - 0x4eae, 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, - 0x4fdd, 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, - 0x4fd0, 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, - /* 0x50 */ - 0x4fb7, 0x5157, 0x5192, 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, - 0x524d, 0x524c, 0x524b, 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, - 0x530d, 0x5357, 0x537b, 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, - 0x54ce, 0x54c9, 0x54b8, 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, - 0x54aa, 0x54c1, 0x54c4, 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, - 0x54a9, 0x54a7, 0x54bf, 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, - 0x57a2, 0x57ce, 0x57ae, 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, - 0x5950, 0x59dc, 0x59d8, 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, - 0x59ea, 0x59da, 0x59e6, 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, - 0x5ba4, 0x5ba2, 0x5ba5, 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, - 0x5cd9, 0x5cd2, 0x5df7, 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, - 0x5ea6, 0x5efa, 0x5f08, 0x5f2d, 0x5f65, 0x5f88, - /* 0x51 */ - 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c, 0x5f89, 0x6012, 0x601d, - 0x6020, 0x6025, 0x600e, 0x6028, 0x604d, 0x6070, 0x6068, 0x6062, - 0x6046, 0x6043, 0x606c, 0x606b, 0x606a, 0x6064, 0x6241, 0x62dc, - 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301, 0x62ee, 0x62fd, 0x6307, - 0x62f1, 0x62f7, 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, - 0x653f, 0x6545, 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, - 0x6627, 0x662f, 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, - 0x67d3, 0x67f1, 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, - 0x67e9, 0x67ef, 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, - 0x67cf, 0x67de, 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, - 0x6b6a, 0x6b83, 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, - 0x6d0b, 0x6d32, 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, - /* 0x52 */ - 0x6d31, 0x6d1e, 0x6d17, 0x6d3b, 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, - 0x6cf5, 0x6d39, 0x6d27, 0x6d38, 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, - 0x6d2b, 0x70ab, 0x70ba, 0x70b3, 0x70ac, 0x70af, 0x70ad, 0x70b8, - 0x70ae, 0x70a4, 0x7230, 0x7272, 0x726f, 0x7274, 0x72e9, 0x72e0, - 0x72e1, 0x73b7, 0x73ca, 0x73bb, 0x73b2, 0x73cd, 0x73c0, 0x73b3, - 0x751a, 0x752d, 0x754f, 0x754c, 0x754e, 0x754b, 0x75ab, 0x75a4, - 0x75a5, 0x75a2, 0x75a3, 0x7678, 0x7686, 0x7687, 0x7688, 0x76c8, - 0x76c6, 0x76c3, 0x76c5, 0x7701, 0x76f9, 0x76f8, 0x7709, 0x770b, - 0x76fe, 0x76fc, 0x7707, 0x77dc, 0x7802, 0x7814, 0x780c, 0x780d, - 0x7946, 0x7949, 0x7948, 0x7947, 0x79b9, 0x79ba, 0x79d1, 0x79d2, - 0x79cb, 0x7a7f, 0x7a81, 0x7aff, 0x7afd, 0x7c7d, 0x7d02, 0x7d05, - 0x7d00, 0x7d09, 0x7d07, 0x7d04, 0x7d06, 0x7f38, - /* 0x53 */ - 0x7f8e, 0x7fbf, 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, - 0x80da, 0x80c3, 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, - 0x80e4, 0x80dd, 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, - 0x82db, 0x82e6, 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, - 0x82f1, 0x8301, 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, - 0x82ef, 0x8306, 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, - 0x8981, 0x89d4, 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, - 0x8d73, 0x8db4, 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, - 0x8fe5, 0x8fed, 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, - 0x90c3, 0x914b, 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, - 0x964d, 0x9762, 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, - 0x98db, 0x98df, 0x9996, 0x9999, 0x4e58, 0x4eb3, - /* 0x54 */ - 0x500c, 0x500d, 0x5023, 0x4fef, 0x5026, 0x5025, 0x4ff8, 0x5029, - 0x5016, 0x5006, 0x503c, 0x501f, 0x501a, 0x5012, 0x5011, 0x4ffa, - 0x5000, 0x5014, 0x5028, 0x4ff1, 0x5021, 0x500b, 0x5019, 0x5018, - 0x4ff3, 0x4fee, 0x502d, 0x502a, 0x4ffe, 0x502b, 0x5009, 0x517c, - 0x51a4, 0x51a5, 0x51a2, 0x51cd, 0x51cc, 0x51c6, 0x51cb, 0x5256, - 0x525c, 0x5254, 0x525b, 0x525d, 0x532a, 0x537f, 0x539f, 0x539d, - 0x53df, 0x54e8, 0x5510, 0x5501, 0x5537, 0x54fc, 0x54e5, 0x54f2, - 0x5506, 0x54fa, 0x5514, 0x54e9, 0x54ed, 0x54e1, 0x5509, 0x54ee, - 0x54ea, 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, - 0x57c2, 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, - 0x595a, 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, - 0x5a20, 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, - /* 0x55 */ - 0x5b6b, 0x5c58, 0x5bb0, 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, - 0x5bb9, 0x5bb8, 0x5c04, 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, - 0x5cfb, 0x5cea, 0x5ce8, 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, - 0x5e2d, 0x5e2b, 0x5eab, 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, - 0x5f90, 0x6059, 0x6063, 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, - 0x606f, 0x6084, 0x609f, 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, - 0x6096, 0x6247, 0x62f3, 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, - 0x6355, 0x6342, 0x6346, 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, - 0x632a, 0x632b, 0x6328, 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, - 0x65c1, 0x65c5, 0x6642, 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, - 0x6645, 0x6641, 0x66f8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, - 0x6848, 0x6846, 0x6853, 0x6839, 0x6842, 0x6854, - /* 0x56 */ - 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851, 0x683d, 0x67f4, 0x6850, - 0x6840, 0x683c, 0x6843, 0x682a, 0x6845, 0x6813, 0x6818, 0x6841, - 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27, 0x6c28, 0x6c26, 0x6c24, - 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87, 0x6d66, 0x6d78, 0x6d77, - 0x6d59, 0x6d93, 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, - 0x6d8c, 0x6d8a, 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, - 0x70e4, 0x70d9, 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, - 0x72fd, 0x72f8, 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, - 0x73ea, 0x73de, 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, - 0x75c5, 0x75c7, 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, - 0x75b8, 0x768b, 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, - 0x7720, 0x7728, 0x77e9, 0x7830, 0x7827, 0x7838, - /* 0x57 */ - 0x781d, 0x7834, 0x7837, 0x7825, 0x782d, 0x7820, 0x781f, 0x7832, - 0x7955, 0x7950, 0x7960, 0x795f, 0x7956, 0x795e, 0x795d, 0x7957, - 0x795a, 0x79e4, 0x79e3, 0x79e7, 0x79df, 0x79e6, 0x79e9, 0x79d8, - 0x7a84, 0x7a88, 0x7ad9, 0x7b06, 0x7b11, 0x7c89, 0x7d21, 0x7d17, - 0x7d0b, 0x7d0a, 0x7d20, 0x7d22, 0x7d14, 0x7d10, 0x7d15, 0x7d1a, - 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b, 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, - 0x7fc1, 0x8006, 0x8004, 0x8018, 0x8015, 0x8019, 0x8017, 0x803d, - 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105, 0x80ed, 0x80f4, 0x8106, - 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a, 0x80fc, 0x80ef, 0x81ed, - 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b, 0x8228, 0x822c, 0x82bb, - 0x832b, 0x8352, 0x8354, 0x834a, 0x8338, 0x8350, 0x8349, 0x8335, - 0x8334, 0x834f, 0x8332, 0x8339, 0x8336, 0x8317, - /* 0x58 */ - 0x8340, 0x8331, 0x8328, 0x8343, 0x8654, 0x868a, 0x86aa, 0x8693, - 0x86a4, 0x86a9, 0x868c, 0x86a3, 0x869c, 0x8870, 0x8877, 0x8881, - 0x8882, 0x887d, 0x8879, 0x8a18, 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, - 0x8a0a, 0x8a17, 0x8a13, 0x8a16, 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, - 0x8c79, 0x8ca1, 0x8ca2, 0x8d77, 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, - 0x8fb1, 0x9001, 0x9006, 0x8ff7, 0x9000, 0x8ffa, 0x8ff4, 0x9003, - 0x8ffd, 0x9005, 0x8ff8, 0x9095, 0x90e1, 0x90dd, 0x90e2, 0x9152, - 0x914d, 0x914c, 0x91d8, 0x91dd, 0x91d7, 0x91dc, 0x91d9, 0x9583, - 0x9662, 0x9663, 0x9661, 0x965b, 0x965d, 0x9664, 0x9658, 0x965e, - 0x96bb, 0x98e2, 0x99ac, 0x9aa8, 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, - 0x4e7e, 0x507a, 0x507d, 0x505c, 0x5047, 0x5043, 0x504c, 0x505a, - 0x5049, 0x5065, 0x5076, 0x504e, 0x5055, 0x5075, - /* 0x59 */ - 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d, 0x515c, 0x5195, - 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8, 0x52d5, 0x5310, - 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3, 0x66fc, 0x5546, - 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543, 0x554a, 0x5531, - 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538, 0x552e, 0x555c, - 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708, 0x570b, 0x5709, - 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4, 0x57fa, 0x5802, - 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36, 0x5a41, 0x5a49, - 0x5a66, 0x5a6a, 0x5a40, 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, - 0x5b70, 0x5bc7, 0x5bc5, 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, - 0x5c08, 0x5c07, 0x5c60, 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, - 0x5d1b, 0x5d16, 0x5d22, 0x5d11, 0x5d29, 0x5d14, - /* 0x5a */ - 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, 0x5e38, 0x5e36, 0x5e33, - 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, 0x5ebe, 0x5f35, 0x5f37, - 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, 0x5f99, 0x5f9e, 0x5f98, - 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, 0x6089, 0x60a0, 0x60a8, - 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x60c5, 0x60bb, 0x60b5, 0x60dc, - 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df, 0x60b8, 0x60da, 0x60c7, - 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7, 0x6372, 0x6396, 0x63a2, - 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa, 0x6371, 0x63a9, 0x6389, - 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384, 0x6388, 0x6399, 0x63a1, - 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b, 0x6369, 0x6368, 0x637a, - 0x655d, 0x6556, 0x6551, 0x6559, 0x6557, 0x555f, 0x654f, 0x6558, - 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac, 0x65cf, - /* 0x5b */ - 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668, 0x6666, - 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2, 0x6893, - 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0, 0x6883, - 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8, 0x689f, - 0x68a1, 0x6882, 0x6b32, 0x6bba, 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, - 0x6dbc, 0x6df3, 0x6dd9, 0x6db2, 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, - 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, 0x6daf, 0x6dd1, 0x6dae, 0x6dde, - 0x6df9, 0x6db8, 0x6df7, 0x6df5, 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, - 0x6dda, 0x6deb, 0x6dd8, 0x6dea, 0x6df1, 0x6dee, 0x6de8, 0x6dc6, - 0x6dc4, 0x6daa, 0x6dec, 0x6dbf, 0x6de6, 0x70f9, 0x7109, 0x710a, - 0x70fd, 0x70ef, 0x723d, 0x727d, 0x7281, 0x731c, 0x731b, 0x7316, - 0x7313, 0x7319, 0x7387, 0x7405, 0x740a, 0x7403, - /* 0x5c */ - 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x74f7, 0x751c, 0x7522, - 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4, 0x75d5, 0x75b5, - 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db, 0x7737, 0x773e, - 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843, 0x784e, 0x7965, - 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20, 0x7b28, 0x7b1b, - 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92, 0x7c97, 0x7c95, - 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c, 0x7d40, 0x7d30, - 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31, 0x7f3d, 0x7f9e, - 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a, 0x8046, 0x812f, - 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124, 0x8202, 0x8235, - 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398, 0x8378, 0x83a2, - 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393, - /* 0x5d */ - 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, 0x8386, 0x83a7, 0x8655, - 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, 0x86b5, 0x86c6, 0x86cb, - 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, 0x8888, 0x88ab, 0x8892, - 0x8896, 0x888d, 0x888b, 0x8993, 0x898f, 0x8a2a, 0x8a1d, 0x8a23, - 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, 0x8a22, 0x8c49, 0x8c5a, - 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, 0x8ca7, 0x8d67, 0x8d66, - 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, 0x900d, 0x901a, 0x9017, - 0x9023, 0x901f, 0x901d, 0x9010, 0x9015, 0x901e, 0x9020, 0x900f, - 0x9022, 0x9016, 0x901b, 0x9014, 0x90e8, 0x90ed, 0x90fd, 0x9157, - 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7, 0x91ed, 0x91e9, 0x9589, - 0x966a, 0x9675, 0x9673, 0x9678, 0x9670, 0x9674, 0x9676, 0x9677, - 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0, 0x7adf, - /* 0x5e */ - 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5, 0x9ebb, - 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096, 0x5098, - 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269, 0x52de, - 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7, 0x557c, - 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594, 0x5587, - 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2, 0x559a, - 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599, 0x570d, - 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821, 0x581d, - 0x5820, 0x58f9, 0x58fa, 0x5960, 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, - 0x5a9b, 0x5aa7, 0x5b73, 0x5b71, 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, - 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, 0x5d50, 0x5d34, 0x5d47, 0x5dfd, - 0x5e45, 0x5e3d, 0x5e40, 0x5e43, 0x5e7e, 0x5eca, - /* 0x5f */ - 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, 0x5faa, 0x5fa8, - 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, 0x6123, 0x60fa, - 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, 0x610e, 0x60f6, - 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, 0x638c, 0x63cf, - 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x63d2, 0x63e3, 0x63d0, - 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4, 0x63ea, 0x63db, - 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562, 0x6563, 0x6591, - 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676, 0x666f, 0x6691, - 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f, 0x671d, 0x68fa, - 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df, 0x68f5, 0x68ee, - 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb, 0x68cd, 0x690d, - 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb, - /* 0x60 */ - 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e, - 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67, - 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24, - 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a, - 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, 0x6e89, 0x6e19, 0x6e4e, - 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, 0x7119, 0x711a, 0x7126, - 0x7130, 0x7121, 0x7136, 0x716e, 0x711c, 0x724c, 0x7284, 0x7280, - 0x7336, 0x7325, 0x7334, 0x7329, 0x743a, 0x742a, 0x7433, 0x7422, - 0x7425, 0x7435, 0x7436, 0x7434, 0x742f, 0x741b, 0x7426, 0x7428, - 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, 0x75db, 0x75e3, 0x75d9, - 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, 0x7696, 0x7693, 0x76b4, - 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, 0x786f, - /* 0x61 */ - 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x7a97, 0x7a96, - 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52, 0x7b54, - 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e, 0x7d50, - 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66, 0x7d62, - 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052, 0x8085, - 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146, 0x813e, - 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403, 0x83f8, - 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1, 0x83f4, - 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2, 0x83ca, - 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df, 0x865b, - 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0, 0x86de, - 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, - /* 0x62 */ - 0x8a3b, 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, 0x8a54, 0x8a5b, - 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, 0x8c61, 0x8c82, - 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, 0x8cc0, 0x8cb4, - 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, 0x8d81, 0x8dce, - 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, 0x8dc6, 0x8efb, - 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, 0x9038, 0x9032, - 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, 0x9165, 0x91cf, - 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, 0x9210, 0x9207, - 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x9593, 0x9592, 0x958e, - 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686, 0x968d, 0x9672, - 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7, 0x96ef, 0x96f2, - 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea, - /* 0x63 */ - 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd, - 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be, - 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d, - 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8, - 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4, - 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712, - 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b, - 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1, - 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, 0x5ab3, 0x5ac2, 0x5ab2, - 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, 0x5ec8, 0x5f12, 0x5f59, - 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, 0x611f, 0x60f3, 0x611b, - 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, 0x6144, - /* 0x64 */ - 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, 0x6221, - 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, 0x642c, - 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, 0x6406, - 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, 0x6696, - 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x695a, 0x6977, - 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968, 0x696b, - 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b, 0x6b47, - 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf, 0x6ed3, - 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5, 0x6e98, - 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4, 0x6ed4, - 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164, 0x7149, - 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, - /* 0x65 */ - 0x715e, 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, - 0x733f, 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, - 0x743f, 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, - 0x7601, 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, - 0x76df, 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, 0x7779, 0x776a, - 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, 0x788e, 0x78b0, - 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, 0x7893, 0x787f, - 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, 0x7a1a, 0x7a20, - 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, 0x7bc0, 0x7b60, - 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, 0x7d79, 0x7d91, - 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, 0x7f72, 0x7fa9, - 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084, - /* 0x66 */ - 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x8179, - 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431, - 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435, - 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f, - 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702, - 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc, - 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3, - 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c, - 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c, - 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca, - 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1, - 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, - /* 0x67 */ - 0x8de4, 0x8de6, 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, 0x8f9f, - 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, 0x9055, - 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, 0x9041, - 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, 0x9257, - 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, 0x9251, - 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, 0x9598, - 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, 0x96f7, - 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, 0x9811, - 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x98fd, 0x98fe, - 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e, 0x9f13, - 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da, 0x50d5, - 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, - /* 0x68 */ - 0x51f3, 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, - 0x5617, 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, - 0x5616, 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, - 0x587e, 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, - 0x5925, 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, - 0x5ad7, 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, - 0x5be5, 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, - 0x5d84, 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, - 0x5ed6, 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, 0x613f, 0x614b, - 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, 0x6175, 0x622a, - 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, 0x647a, 0x6451, - 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1, - /* 0x69 */ - 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995, - 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab, - 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3, - 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4, - 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x6eff, - 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b, - 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7, - 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292, - 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d, - 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1, - 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7, - 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, - /* 0x6a */ - 0x7a2e, 0x7a31, 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, - 0x7b8b, 0x7b75, 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, - 0x7b84, 0x7cb9, 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, - 0x7dbe, 0x7da0, 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, - 0x7dbf, 0x7db5, 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, 0x7f70, - 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, 0x8180, - 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, 0x8207, - 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, 0x8499, - 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, 0x8490, - 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, 0x8725, - 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, 0x88f4, - 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, - /* 0x6b */ - 0x8aa6, 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, - 0x8aaa, 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, - 0x8c8d, 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, - 0x8dfc, 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, - 0x905c, 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, - 0x9118, 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x92ac, - 0x9280, 0x9285, 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, - 0x927c, 0x9291, 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, - 0x9699, 0x969c, 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, - 0x97f6, 0x9817, 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, - 0x9909, 0x99c1, 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, - 0x9cf6, 0x9cf3, 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, - /* 0x6c */ - 0x5100, 0x50fb, 0x50f5, 0x50f9, 0x5102, 0x5108, 0x5109, 0x5105, - 0x51dc, 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, - 0x562e, 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, - 0x564e, 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, - 0x589e, 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, - 0x5afb, 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, - 0x5beb, 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, - 0x5ee2, 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, - 0x5fb7, 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, - 0x617c, 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, - 0x61ac, 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, - 0x6479, 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, - /* 0x6d */ - 0x64a5, 0x6493, 0x6495, 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, - 0x649a, 0x64ac, 0x6499, 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, - 0x66ae, 0x66ab, 0x66b4, 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, - 0x6a1e, 0x6a19, 0x69fd, 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, - 0x6a05, 0x69ed, 0x6a11, 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, - 0x6f3f, 0x6f7c, 0x6f84, 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, - 0x6f5b, 0x6f78, 0x6f6e, 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, - 0x6f58, 0x6ed5, 0x6f6f, 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, - 0x71a8, 0x7256, 0x729b, 0x734e, 0x7357, 0x7469, 0x748b, 0x7483, - 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626, - 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c, - 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, - /* 0x6e */ - 0x78be, 0x78d5, 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, - 0x7a37, 0x7a3b, 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, - 0x7bc6, 0x7bc7, 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, - 0x7def, 0x7dfb, 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, - 0x7dde, 0x7de9, 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, - 0x7faf, 0x7fe9, 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, - 0x8198, 0x8517, 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, - 0x8511, 0x8523, 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, - 0x8782, 0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, - 0x8757, 0x874c, 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, - 0x8913, 0x8915, 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, - 0x8acb, 0x8af8, 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, - /* 0x6f */ - 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6, 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, - 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6, 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, - 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1, 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, - 0x8e10, 0x8e1d, 0x8e22, 0x8e0f, 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, - 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f, 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, - 0x8f1e, 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, - 0x912d, 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, - 0x92bb, 0x92b7, 0x92ea, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2, - 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707, - 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c, - 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df, - 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, - /* 0x70 */ - 0x9aee, 0x9aef, 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, - 0x9d09, 0x9d03, 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, - 0x5118, 0x5114, 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, - 0x5293, 0x52f3, 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, - 0x566a, 0x5668, 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, - 0x58c1, 0x58be, 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, - 0x5bf0, 0x5c0e, 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, - 0x61b6, 0x61be, 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, - 0x64bb, 0x64bc, 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, - 0x64d2, 0x64d4, 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, - 0x66c7, 0x66b8, 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, - 0x6a39, 0x6a44, 0x6a62, 0x6a61, 0x6a4b, 0x6a47, - /* 0x71 */ - 0x6a35, 0x6a5f, 0x6a48, 0x6b59, 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, - 0x6fa1, 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, - 0x6fb6, 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, - 0x71c8, 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, - 0x7368, 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, - 0x750d, 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, - 0x779f, 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, - 0x7a4e, 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, - 0x7be4, 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, - 0x7e11, 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, - 0x7f79, 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, - 0x81a8, 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, - /* 0x72 */ - 0x8559, 0x8548, 0x8568, 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, - 0x855e, 0x8783, 0x879f, 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, - 0x8932, 0x8925, 0x892b, 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, - 0x8aeb, 0x8af1, 0x8b00, 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, - 0x8b02, 0x8af7, 0x8aed, 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, - 0x8c93, 0x8cf4, 0x8e44, 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, - 0x8f3b, 0x8f2f, 0x8f38, 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, - 0x9078, 0x9072, 0x907c, 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, - 0x92f8, 0x9333, 0x932f, 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a, - 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7, - 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713, - 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, - /* 0x73 */ - 0x9838, 0x983b, 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, - 0x991e, 0x991b, 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, - 0x9abc, 0x9afb, 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, - 0x9d28, 0x9d12, 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, - 0x511f, 0x5121, 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, - 0x5687, 0x568f, 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, - 0x5b24, 0x5b7a, 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, - 0x5e6b, 0x5f4c, 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, - 0x6232, 0x6234, 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, - 0x64ec, 0x64f1, 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, - 0x6a80, 0x6a94, 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, - 0x6a97, 0x6a90, 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, - /* 0x74 */ - 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf, 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, - 0x6fef, 0x6f80, 0x6fec, 0x6fe1, 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, - 0x71e7, 0x71df, 0x71ee, 0x71e6, 0x71e5, 0x71ed, 0x71ec, 0x71f4, - 0x71e0, 0x7235, 0x7246, 0x7370, 0x7372, 0x74a9, 0x74b0, 0x74a6, - 0x74a8, 0x7646, 0x7642, 0x764c, 0x76ea, 0x77b3, 0x77aa, 0x77b0, - 0x77ac, 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, - 0x7901, 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, - 0x7bf7, 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, - 0x7cd9, 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, - 0x7e2b, 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, - 0x7e35, 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, - 0x8070, 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, - /* 0x75 */ - 0x81c2, 0x81c0, 0x81bf, 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, - 0x8271, 0x85aa, 0x8584, 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, - 0x859b, 0x8587, 0x85a8, 0x858a, 0x85a6, 0x8667, 0x87c0, 0x87d1, - 0x87b3, 0x87d2, 0x87c6, 0x87ab, 0x87bb, 0x87ba, 0x87c8, 0x87cb, - 0x893b, 0x8936, 0x8944, 0x8938, 0x893d, 0x89ac, 0x8b0e, 0x8b17, - 0x8b19, 0x8b1b, 0x8b0a, 0x8b20, 0x8b1d, 0x8b04, 0x8b10, 0x8c41, - 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd, 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, - 0x8e49, 0x8e4b, 0x8e48, 0x8e4a, 0x8f44, 0x8f3e, 0x8f42, 0x8f45, - 0x8f3f, 0x907f, 0x907d, 0x9084, 0x9081, 0x9082, 0x9080, 0x9139, - 0x91a3, 0x919e, 0x919c, 0x934d, 0x9382, 0x9328, 0x9375, 0x934a, - 0x9365, 0x934b, 0x9318, 0x937e, 0x936c, 0x935b, 0x9370, 0x935a, - 0x9354, 0x95ca, 0x95cb, 0x95cc, 0x95c8, 0x95c6, - /* 0x76 */ - 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0, 0x97d3, 0x9846, - 0x98b6, 0x9935, 0x9a01, 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, - 0x9d3b, 0x9d3f, 0x9e8b, 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, - 0x9f3e, 0x9f4b, 0x53e2, 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, - 0x5f5e, 0x61e3, 0x6233, 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, - 0x64fb, 0x64f7, 0x65b7, 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, - 0x6abb, 0x6ab8, 0x6ac2, 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, - 0x7009, 0x700b, 0x6ffe, 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, - 0x71fc, 0x71fe, 0x71f8, 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, - 0x7656, 0x7658, 0x7652, 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, - 0x79ae, 0x7a61, 0x7a62, 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, - 0x7c2a, 0x7c1e, 0x7c23, 0x7c21, 0x7ce7, 0x7e54, - /* 0x77 */ - 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52, 0x7e59, 0x7f48, 0x7ff9, - 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf, 0x820a, 0x85cf, 0x85a9, - 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba, 0x85b9, 0x87ef, 0x87ec, - 0x87f2, 0x87e0, 0x8986, 0x89b2, 0x89f4, 0x8b28, 0x8b39, 0x8b2c, - 0x8b2b, 0x8c50, 0x8d05, 0x8e59, 0x8e63, 0x8e66, 0x8e64, 0x8e5f, - 0x8e55, 0x8ec0, 0x8f49, 0x8f4d, 0x9087, 0x9083, 0x9088, 0x91ab, - 0x91ac, 0x91d0, 0x9394, 0x938a, 0x9396, 0x93a2, 0x93b3, 0x93ae, - 0x93ac, 0x93b0, 0x9398, 0x939a, 0x9397, 0x95d4, 0x95d6, 0x95d0, - 0x95d5, 0x96e2, 0x96dc, 0x96d9, 0x96db, 0x96de, 0x9724, 0x97a3, - 0x97a6, 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, - 0x98ba, 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, - 0x9b03, 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, - /* 0x78 */ - 0x9bc9, 0x9bfd, 0x9bc8, 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, - 0x9f15, 0x9f2c, 0x5133, 0x56a5, 0x56a8, 0x58de, 0x58df, 0x58e2, - 0x5bf5, 0x9f90, 0x5eec, 0x61f2, 0x61f7, 0x61f6, 0x61f5, 0x6500, - 0x650f, 0x66e0, 0x66dd, 0x6ae5, 0x6add, 0x6ada, 0x6ad3, 0x701b, - 0x701f, 0x7028, 0x701a, 0x701d, 0x7015, 0x7018, 0x7206, 0x720d, - 0x7258, 0x72a2, 0x7378, 0x737a, 0x74bd, 0x74ca, 0x74e3, 0x7587, - 0x7586, 0x765f, 0x7661, 0x77c7, 0x7919, 0x79b1, 0x7a6b, 0x7a69, - 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d, 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, - 0x7e79, 0x7e69, 0x7e6a, 0x7e73, 0x7f85, 0x7fb6, 0x7fb9, 0x7fb8, - 0x81d8, 0x85e9, 0x85dd, 0x85ea, 0x85d5, 0x85e4, 0x85e5, 0x85f7, - 0x87fb, 0x8805, 0x880d, 0x87f9, 0x87fe, 0x8960, 0x895f, 0x8956, - 0x895e, 0x8b41, 0x8b5c, 0x8b58, 0x8b49, 0x8b5a, - /* 0x79 */ - 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a, 0x8e7c, 0x8e72, - 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54, 0x8f4e, 0x8fad, - 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1, 0x93df, 0x93c3, - 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd, 0x93d8, 0x93e4, - 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a, 0x9727, 0x9761, - 0x97dc, 0x97fb, 0x985e, 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, - 0x9a16, 0x9a19, 0x9b0d, 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, - 0x9d61, 0x9d72, 0x9d6a, 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, - 0x52f8, 0x56b7, 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, - 0x5b7d, 0x5bf6, 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, - 0x66e6, 0x6727, 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, - 0x74cf, 0x7662, 0x7665, 0x7926, 0x792a, 0x792c, - /* 0x7a */ - 0x792b, 0x7ac7, 0x7af6, 0x7c4c, 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, - 0x8fae, 0x7e7d, 0x7e7c, 0x7e82, 0x7f4c, 0x8000, 0x81da, 0x8266, - 0x85fb, 0x85f9, 0x8611, 0x85fa, 0x8606, 0x860b, 0x8607, 0x860a, - 0x8814, 0x8815, 0x8964, 0x89ba, 0x89f8, 0x8b70, 0x8b6c, 0x8b66, - 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f, 0x8d0d, 0x8e89, 0x8e81, 0x8e85, - 0x8e82, 0x91b4, 0x91cb, 0x9418, 0x9403, 0x93fd, 0x95e1, 0x9730, - 0x98c4, 0x9952, 0x9951, 0x99a8, 0x9a2b, 0x9a30, 0x9a37, 0x9a35, - 0x9c13, 0x9c0d, 0x9e79, 0x9eb5, 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, - 0x9f61, 0x5137, 0x5138, 0x56c1, 0x56c0, 0x56c2, 0x5914, 0x5c6c, - 0x5dcd, 0x61fc, 0x61fe, 0x651d, 0x651c, 0x6595, 0x66e9, 0x6afb, - 0x6b04, 0x6afa, 0x6bb2, 0x704c, 0x721b, 0x72a7, 0x74d6, 0x74d4, - 0x7669, 0x77d3, 0x7c50, 0x7e8f, 0x7e8c, 0x7fbc, - /* 0x7b */ - 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821, 0x881f, 0x896a, - 0x896c, 0x89bd, 0x8b74, 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, - 0x8e8b, 0x8f5f, 0x8faf, 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, - 0x9438, 0x9432, 0x942b, 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, - 0x9867, 0x9865, 0x9957, 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, - 0x9b54, 0x9b51, 0x9c2d, 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, - 0x9e9d, 0x9eef, 0x9f19, 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, - 0x56c8, 0x56ca, 0x56c9, 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, - 0x6524, 0x6b0a, 0x6b61, 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, - 0x766e, 0x766c, 0x79b3, 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, - 0x8972, 0x896f, 0x89fc, 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, - 0x8f61, 0x9148, 0x9444, 0x9451, 0x9452, 0x973d, - /* 0x7c */ - 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955, 0x9a55, 0x9a4d, 0x9ad2, - 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b, 0x9dd3, 0x9dd7, 0x9f34, - 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6, 0x6200, 0x6523, 0x652b, - 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca, 0x7c64, 0x7c63, 0x7c65, - 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638, 0x863f, 0x8831, 0x8b8a, - 0x9090, 0x908f, 0x9463, 0x9460, 0x9464, 0x9768, 0x986f, 0x995c, - 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4, 0x9ad1, 0x9c54, 0x9c57, - 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1, 0x58e9, 0x652c, 0x705e, - 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88, 0x8836, 0x8839, 0x8862, - 0x8b93, 0x8b92, 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, - 0x9748, 0x9744, 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, - 0x9df9, 0x9dfa, 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, - /* 0x7d */ - 0x9f72, 0x5ef3, 0x6b16, 0x7063, 0x7c6c, 0x7c6e, 0x883b, 0x89c0, - 0x8ea1, 0x91c1, 0x9472, 0x9470, 0x9871, 0x995e, 0x9ad6, 0x9b23, - 0x9ecc, 0x7064, 0x77da, 0x8b9a, 0x9477, 0x97c9, 0x9a62, 0x9a65, - 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, 0x947d, 0x947e, 0x947c, 0x9c77, - 0x9c78, 0x9ef7, 0x8c54, 0x947f, 0x9e1a, 0x7228, 0x9a6a, 0x9b31, - 0x9e1b, 0x9e1e, 0x7c72, -}; - -static int -cns11643_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x27) || (c1 == 0x42) || (c1 >= 0x44 && c1 <= 0x7d)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 3102) { - if (i < 500) - wc = cns11643_1_2uni_page21[i]; - else if (i == 571) - wc = 0x4ea0; - else if (i == 578) - wc = 0x51ab; - else if (i == 583) - wc = 0x52f9; - } else if (i < 3290) { - if (i < 3136) - wc = cns11643_1_2uni_page42[i-3102]; - } else { - if (i < 8691) - wc = cns11643_1_2uni_page44[i-3290]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_15.h b/jni/parted/libiconv/lib/cns11643_15.h deleted file mode 100755 index 672406b..0000000 --- a/jni/parted/libiconv/lib/cns11643_15.h +++ /dev/null @@ -1,1082 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 15 - */ - -static const unsigned short cns11643_15_2uni_page21[7169] = { - /* 0x21 */ - 0x5302, 0x538c, 0x53d4, 0x54a5, 0x5392, 0x5393, 0x53d8, 0x53d9, - 0x54a7, 0x592b, 0x592c, 0x592d, 0x5930, 0x592e, 0x59ab, 0x1a01, - 0x5c2d, 0x5c6d, 0xfa34, 0x5d0f, 0x52fd, 0x5e9d, 0x64a2, 0x68d4, - 0x6e56, 0x6ec3, 0x7314, 0x52fd, 0x9a1a, 0x530f, 0x5310, 0x539a, - 0x539b, 0x52fd, 0x54ac, 0x0036, 0x5397, 0x5846, 0x0e4f, 0x5876, - 0x5877, 0x58ae, 0x593a, 0x597d, 0x6ec5, 0x5ea8, 0x52fd, 0x1afa, - 0x6541, 0x6542, 0x68d8, 0x68d9, 0x69aa, 0x69ab, 0x6c42, 0x6c41, - 0x5099, 0x6ec6, 0x52fd, 0x7035, 0x7036, 0x7037, 0xfa83, 0xb64d, - 0x52fd, 0x74b5, 0x7617, 0x7782, 0x86b6, 0x2d49, 0x8f72, 0x985c, - 0x98a8, 0x45b7, 0x68e3, 0x0006, 0x52fd, 0x53e6, 0x5444, 0x5445, - 0x1729, 0x003e, 0x54c4, 0x54c5, 0x54c6, 0x54c7, 0x54c8, 0x54c9, - 0x54ca, 0x54d4, 0x587d, 0xb572, 0x58b2, 0x58b4, - /* 0x22 */ - 0x5982, 0x59c7, 0x59c8, 0x52fd, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, - 0xfa24, 0x5bd3, 0x5447, 0x1a4e, 0x5d3d, 0x5de2, 0x5eb8, 0x5eb9, - 0x5ec2, 0x5eba, 0x5ec6, 0x5ebb, 0x64ad, 0x654c, 0x654d, 0x52fd, - 0x69b2, 0x69b3, 0x69b4, 0x69b5, 0x6cc3, 0x6cc4, 0x6cc5, 0x6cc6, - 0x6cc7, 0x52fd, 0x6ece, 0x6f30, 0x7047, 0x7048, 0x2281, 0x735c, - 0x52fd, 0x735f, 0x7618, 0x7619, 0x767e, 0x2410, 0x78b0, 0x7d75, - 0x2568, 0x7d76, 0x8341, 0x8442, 0x52fd, 0x86bd, 0x2842, 0x2840, - 0x18ea, 0x8e1e, 0x8e1f, 0x8f87, 0x2d62, 0x8f78, 0x9488, 0x9489, - 0x948a, 0x9917, 0x9915, 0x52fd, 0x52fd, 0x3291, 0xa3e5, 0xa909, - 0xaa3b, 0xaa4f, 0x52fd, 0xb92e, 0xb92f, 0xbdff, 0xbdfd, 0xbdfe, - 0x45bb, 0x45bc, 0x52fd, 0x5323, 0x53ea, 0x542a, 0x5449, 0x544a, - 0x544b, 0x54df, 0x54e0, 0x54e1, 0x54e2, 0x58c1, - /* 0x23 */ - 0x54e3, 0x54e4, 0x54e5, 0x58c0, 0x54e6, 0x54f7, 0x52fd, 0x54e7, - 0x54e8, 0x54e9, 0x54ea, 0x54eb, 0x580e, 0x5880, 0x5881, 0x58ba, - 0x58bb, 0x58bc, 0x58bd, 0x593f, 0x5940, 0x5988, 0xfa1f, 0x5b46, - 0x52fd, 0x5b47, 0x5b48, 0x5c36, 0x5c72, 0x5c96, 0x5d47, 0x5de7, - 0x5e34, 0x5e35, 0x5e36, 0x5e37, 0x5ee3, 0x5ee4, 0x5ee5, 0x5eeb, - 0x0175, 0x5ee6, 0x5ee7, 0x5ee8, 0x52fd, 0x52fd, 0x64b9, 0x1de8, - 0x64ba, 0x1e5b, 0x6563, 0x6564, 0x52fd, 0x6565, 0x52fd, 0x6566, - 0x657c, 0x6567, 0xfa5a, 0x6859, 0x68e9, 0x68ea, 0x68eb, 0x68ec, - 0x68ed, 0x68ee, 0x68ef, 0x69bf, 0x69cb, 0x69c3, 0x69d5, 0x69c4, - 0x69c5, 0x69d3, 0x69c6, 0x69c7, 0x69c8, 0x69c9, 0x69ca, 0x6c4a, - 0x52fd, 0x6cd1, 0x6e61, 0x6f37, 0x52fd, 0x7064, 0x7066, 0x2299, - 0x7067, 0x7068, 0x7069, 0x2297, 0x7073, 0x706a, - /* 0x24 */ - 0x706b, 0x2862, 0x52fd, 0x7372, 0x043c, 0x74b9, 0x761c, 0x7636, - 0x76bc, 0x76be, 0x76bf, 0x76c0, 0x7787, 0x78dc, 0x78dd, 0x78f5, - 0x78de, 0x78df, 0xfa9e, 0x78e0, 0x78e1, 0x78e2, 0x7d2c, 0x7d2d, - 0x25a4, 0x7da9, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0, 0x7da1, - 0x7da2, 0x52fd, 0x7da3, 0x7da4, 0x7da7, 0x8342, 0x8393, 0x8451, - 0x52fd, 0x8452, 0x8444, 0x8453, 0x8622, 0x86c6, 0x86c7, 0x86c9, - 0xfadd, 0x86ca, 0x2866, 0x86c8, 0x8e24, 0x8e25, 0x8e26, 0x52fd, - 0x8e27, 0x8e28, 0x52fd, 0x8f58, 0xfafb, 0x8fa7, 0x8f88, 0x8f89, - 0x8fa5, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x2da3, - 0x8f79, 0x52fd, 0x9494, 0x9495, 0x9496, 0x09a5, 0x52fd, 0x9497, - 0x307f, 0x9498, 0x984e, 0x984f, 0x9919, 0x52fd, 0x9a41, 0xfb2a, - 0x9bf7, 0x9f04, 0x9f19, 0x9f17, 0xa340, 0xa3ec, - /* 0x25 */ - 0xa71b, 0xa71c, 0x36f6, 0xa90e, 0xaa52, 0xadd8, 0xb126, 0xb574, - 0x52fd, 0xb575, 0xbcc6, 0xbe0b, 0xbe0c, 0xbe0d, 0xbe0e, 0xbe0f, - 0xbe10, 0x45c8, 0xd759, 0xd75a, 0xd983, 0xd984, 0xd985, 0x52fd, - 0x4af5, 0xe120, 0xe121, 0xe122, 0xe123, 0xe124, 0xe129, 0x53f4, - 0x52fd, 0x688f, 0x5451, 0x17ab, 0x5517, 0x5518, 0x555b, 0x5519, - 0x551a, 0x0053, 0x551b, 0x551c, 0x551d, 0x551e, 0x551f, 0x5520, - 0x5521, 0x578b, 0x5788, 0x222d, 0x5885, 0xb587, 0x58c7, 0x594c, - 0x594d, 0x59fc, 0x59fd, 0x59fe, 0x59ff, 0x52fd, 0x52fd, 0x5b56, - 0x5b57, 0x5b58, 0x5b59, 0x5bdc, 0x5bdd, 0x5c73, 0x5c9d, 0x5ca1, - 0x5c9e, 0x5c9f, 0x5ca0, 0x5ce6, 0x5d51, 0x5d52, 0x5e3d, 0x5f22, - 0x1b9c, 0x5f23, 0x5f24, 0x5f25, 0x5f26, 0x5f27, 0x5f28, 0x5f29, - 0x5f2a, 0x5f2b, 0x52fd, 0x5f40, 0x5f2c, 0x5f2d, - /* 0x26 */ - 0x5f2e, 0x5f2f, 0x5f30, 0x64d0, 0x65a8, 0x6594, 0x6595, 0x6596, - 0x6597, 0x6598, 0x659c, 0x659b, 0x52fd, 0x65a1, 0x65a0, 0x6599, - 0x659a, 0x65a7, 0x1e88, 0x6864, 0x52fd, 0x6900, 0x6901, 0x52fd, - 0x52fd, 0x69e5, 0x69e9, 0x69fb, 0x69fc, 0x69ea, 0x69eb, 0x69ec, - 0x69ed, 0x69ee, 0x69ef, 0x69fa, 0x69f0, 0x69f1, 0x69f2, 0x69f3, - 0x69f4, 0x6c52, 0x6c53, 0x6c54, 0x6c55, 0x6c58, 0x6c56, 0x52fd, - 0x6cdd, 0x6cde, 0x6ce3, 0x6cdf, 0x6ce0, 0x6e22, 0x6e23, 0x6e68, - 0x6edf, 0x00ac, 0x6f44, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098, - 0x7099, 0xfa79, 0x709a, 0x709b, 0x709d, 0x709e, 0x709f, 0x70a0, - 0x72f3, 0x72f2, 0x731f, 0x7388, 0x748f, 0x7490, 0x52fd, 0x74fd, - 0x74fe, 0x74ff, 0x7500, 0x7501, 0x791a, 0x52fd, 0x78e3, 0x78e4, - 0x78e5, 0x78e6, 0x78e7, 0x78eb, 0x78e8, 0x78e9, - /* 0x27 */ - 0x78ea, 0x791d, 0x7ca4, 0x7ca3, 0x7dd4, 0x7dc6, 0x7dc7, 0x7dc8, - 0x7dc9, 0x7dca, 0x7dcb, 0x7dcc, 0x7dcd, 0x05de, 0x7dce, 0x25c3, - 0x81b8, 0x81b9, 0x81ba, 0x836e, 0x83db, 0x83dc, 0x8468, 0x8469, - 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x2719, 0x8624, 0x8625, - 0x52fd, 0x8700, 0x86e5, 0x86f9, 0x86e7, 0x86e8, 0x86e9, 0x86fe, - 0x86ea, 0x86eb, 0x86ec, 0x0749, 0x86ed, 0x28a1, 0x86ee, 0x28a6, - 0x86ef, 0x52fd, 0x8717, 0x86f0, 0x86f1, 0x8b94, 0x8c5b, 0x8c5c, - 0x8c5d, 0x8e2f, 0x0891, 0x8e30, 0x8e31, 0x8e32, 0x8e33, 0x8fcc, - 0x8fcd, 0x8fce, 0x8fae, 0x8faf, 0x8fb0, 0x08d3, 0x8fcf, 0x8fd0, - 0x8fd1, 0x8fd2, 0x8fd3, 0x52fd, 0x8fd4, 0x09a9, 0x94a6, 0x94a7, - 0x94a8, 0x94b0, 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x97fb, - 0x97fc, 0x52fd, 0x992d, 0x992e, 0x9950, 0x992f, - /* 0x28 */ - 0x9930, 0x9a65, 0x9be6, 0x9c0c, 0x9c02, 0x9c03, 0x9c04, 0x9c05, - 0x9c06, 0x52fd, 0x9ec0, 0x9f24, 0x9f25, 0xa016, 0xa032, 0xa720, - 0xa721, 0xa722, 0xa723, 0x36fe, 0xa725, 0xa919, 0xa924, 0xa91a, - 0xa91b, 0xa91c, 0xa91d, 0xfb52, 0xa91e, 0xaa5a, 0xaa5b, 0xaa5c, - 0xaa5d, 0xaa5e, 0xac31, 0x52fd, 0xb129, 0x52fd, 0xb288, 0xb289, - 0xb589, 0x3d57, 0xb656, 0xb7d1, 0xb7e6, 0xb832, 0xb833, 0xb952, - 0xb953, 0x0ed5, 0xb954, 0xb955, 0x52fd, 0x52fd, 0xbe29, 0xbe2a, - 0xbe2b, 0xbe2c, 0xbe2d, 0xfb92, 0xbe2e, 0xbe2f, 0xbe30, 0xbe31, - 0xbe32, 0xbe33, 0x3ec5, 0xbe34, 0xc49b, 0xc523, 0xc524, 0x52fd, - 0xc525, 0xc527, 0xc916, 0xcfa0, 0xd76f, 0x45df, 0xd770, 0xd771, - 0x45dc, 0x138c, 0xd772, 0xd773, 0xd774, 0xd99c, 0xd9aa, 0xd99d, - 0xd99e, 0x0c99, 0xd9ab, 0xd99f, 0xe135, 0xe138, - /* 0x29 */ - 0xf68d, 0x5335, 0x5336, 0xadee, 0x53b4, 0xf9c9, 0x5432, 0x5455, - 0x5544, 0x5545, 0x5546, 0x5547, 0x17e4, 0x5548, 0x5549, 0x52fd, - 0x554a, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5550, 0x5551, - 0xb599, 0x58d1, 0x52fd, 0x58d2, 0x58d3, 0x58d4, 0x58d5, 0x5a21, - 0x5a22, 0x5a23, 0x5b68, 0x5b69, 0x5b6a, 0x5be2, 0x5c45, 0x5cec, - 0x5ced, 0x5cee, 0x5cef, 0x52fd, 0x5d62, 0x5d63, 0x5df4, 0x536f, - 0x5e44, 0x5e45, 0x5f79, 0x1c1b, 0x5f7a, 0x5f7b, 0x5f7c, 0x5f7d, - 0x5f7e, 0x5f7f, 0x5f80, 0x0188, 0x52fd, 0x5f81, 0x5f82, 0x5f83, - 0x5f84, 0x5f85, 0x5f86, 0x5f87, 0x5f8f, 0x5f88, 0x5f89, 0x65c5, - 0x65c6, 0x1eaa, 0x65c7, 0x65c8, 0x65c9, 0x65ca, 0x65cb, 0x65cc, - 0x1eab, 0x65cd, 0x65ce, 0x65e3, 0x65cf, 0x65d0, 0x65d1, 0x65d2, - 0x65d3, 0x65c4, 0x65d4, 0x65d5, 0x65d6, 0x6820, - /* 0x2a */ - 0x6821, 0x691a, 0x6912, 0x6914, 0x6915, 0x6916, 0x6919, 0x6917, - 0x6918, 0x02c9, 0xfa61, 0x52fd, 0x6a12, 0x6a13, 0x6a14, 0x6a15, - 0x6a16, 0x6a17, 0x6a18, 0x6a19, 0x6c61, 0x6c62, 0x6c63, 0x6cf5, - 0x21a9, 0x6cf6, 0x6cf7, 0x6cf8, 0x6e29, 0x0517, 0x6f5d, 0x6f57, - 0x6f58, 0x6f59, 0x6f5a, 0x6f5b, 0x70bb, 0x70d1, 0x70bc, 0x70bd, - 0xbbdf, 0x70d0, 0x70be, 0x70bf, 0x70c0, 0x70c1, 0x70c2, 0x70c3, - 0x70c4, 0xbe6c, 0x73a1, 0x73a2, 0x73a3, 0x7493, 0x750d, 0x750f, - 0x750e, 0x7510, 0x7511, 0x7512, 0xfa95, 0x77e5, 0x792f, 0x52fd, - 0x7957, 0x7930, 0x7968, 0x792b, 0x7931, 0x7958, 0xfaa2, 0x7932, - 0x7959, 0x52fd, 0x795a, 0x7933, 0x795b, 0x795c, 0x795d, 0x791e, - 0x7cae, 0x7caf, 0x7d3b, 0x7d3c, 0x7d3d, 0x7e07, 0x7e08, 0x7e09, - 0x7e0a, 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, - /* 0x2b */ - 0x7e10, 0x7e22, 0x7e11, 0x7e12, 0x7e13, 0x7e14, 0x7e15, 0x7e16, - 0x7e17, 0x7e18, 0xfab8, 0x52fd, 0x8346, 0x8347, 0x8348, 0x83e1, - 0x8481, 0x8483, 0x5f75, 0x52fd, 0x8485, 0x8486, 0x862a, 0xfad1, - 0x862b, 0x866b, 0x8718, 0x8719, 0x871a, 0x52fd, 0x871b, 0x871c, - 0x871d, 0x871e, 0x871f, 0x8720, 0x8721, 0x8722, 0x8723, 0x2911, - 0x8724, 0x8725, 0x8726, 0x8727, 0x8728, 0x8729, 0x872a, 0x8cef, - 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, - 0x8e51, 0x8e52, 0x8e53, 0x8e54, 0x8e5a, 0x8e55, 0x8f5f, 0x9002, - 0x9003, 0x9004, 0x9005, 0x8fd5, 0x9006, 0x9007, 0x8fd6, 0x9008, - 0x9009, 0x900a, 0x900b, 0x8fd7, 0x900c, 0x900d, 0x94c8, 0x94c9, - 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, 0x94d1, - 0x94d2, 0x3451, 0x94d3, 0x94d4, 0x94d5, 0x94d6, - /* 0x2c */ - 0x94d7, 0x94e2, 0x94d8, 0x9804, 0x9805, 0x9806, 0x52fd, 0x9943, - 0x9944, 0x9a84, 0x9a8f, 0x9a85, 0x9a86, 0x9c2f, 0x9c1a, 0x9c1b, - 0x9c1c, 0x0abd, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, - 0xfb2c, 0x9c23, 0x9c24, 0x9c0e, 0x9c25, 0x9c2b, 0x9c2c, 0x9c0b, - 0x9dee, 0x52fd, 0x9ec3, 0x9ed8, 0x9ed9, 0x9f38, 0x9f39, 0x9f3a, - 0x9f3b, 0x3453, 0x9f3c, 0x9f3d, 0x9f3e, 0x9f3f, 0x9f40, 0xa048, - 0xa04c, 0xa228, 0xa251, 0xa252, 0xa34c, 0xa423, 0xfb45, 0xa424, - 0xa731, 0xa732, 0xa733, 0x3718, 0xa734, 0xa735, 0xa736, 0xa740, - 0xa737, 0x52fd, 0xa738, 0xa73d, 0xa938, 0xa939, 0xa93a, 0xa93b, - 0xa93c, 0xa94c, 0xaa73, 0xaa74, 0x0d33, 0xaa75, 0xaa76, 0xaa79, - 0xac41, 0xac42, 0xac43, 0xad5b, 0x52fd, 0x39d7, 0x8ba6, 0xad5c, - 0xade5, 0xade6, 0xade7, 0xade8, 0xaded, 0xb130, - /* 0x2d */ - 0x3b7e, 0xb131, 0xb294, 0xb651, 0xb6fd, 0xb6fe, 0xb7e9, 0x52fd, - 0xb9b3, 0xb984, 0xb994, 0x52fd, 0xb99c, 0x52fd, 0xb985, 0xbc00, - 0xbc37, 0xbc57, 0xbe54, 0xbe68, 0xbe55, 0xbe5c, 0xbe56, 0xbe57, - 0xbe58, 0xbe59, 0xbe5a, 0xbe5b, 0xc534, 0x407e, 0xc535, 0x52fd, - 0xc539, 0xc536, 0xc537, 0xc538, 0xc8e5, 0xc959, 0x52fd, 0xc93a, - 0xc93b, 0xd028, 0xd189, 0x52fd, 0xd18a, 0xd18b, 0xd18c, 0xd18d, - 0xd2bc, 0xd5a3, 0x1344, 0xd5a4, 0xd793, 0xd794, 0xd795, 0xd796, - 0xd797, 0xd9b9, 0xe14f, 0xe150, 0xe151, 0xe376, 0x52fd, 0x53fb, - 0x5383, 0x5438, 0x545d, 0x5571, 0x52fd, 0x5577, 0x5578, 0xfa07, - 0x55c3, 0x5579, 0x557a, 0x557b, 0x557c, 0x5572, 0x557d, 0x55a0, - 0x557e, 0x557f, 0x5580, 0x5581, 0x5582, 0x5583, 0x559e, 0x5584, - 0x5585, 0x5586, 0x5587, 0x5588, 0x5793, 0x5794, - /* 0x2e */ - 0x5795, 0x57ef, 0x57f0, 0x52fd, 0x588d, 0x588f, 0x5890, 0x5891, - 0x5892, 0x58de, 0x58e1, 0x5953, 0x1966, 0x5a4a, 0x5a4b, 0x5a4c, - 0x5a51, 0x5a4d, 0x5a48, 0x5b74, 0x5b75, 0x5c20, 0x5c21, 0x5ca5, - 0x5ca6, 0x5d73, 0x5d74, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5fdb, - 0x5fdc, 0x1c20, 0x5fdd, 0x5fde, 0x5fff, 0x52fd, 0x52fd, 0x5fdf, - 0x5fe0, 0x1c21, 0x5fe1, 0x5fe2, 0x5fe3, 0x5fe4, 0x5fe5, 0x5fe6, - 0x5fe7, 0x5fe8, 0x5fe9, 0x5fea, 0x6607, 0x6608, 0x6609, 0x660a, - 0x660b, 0x660c, 0x660d, 0x1ed7, 0x661a, 0x660e, 0x660f, 0x6610, - 0x661c, 0x6827, 0x6866, 0x6898, 0x6899, 0x6933, 0x6924, 0x6925, - 0x6926, 0x52fd, 0x02e1, 0x6a3e, 0xfa64, 0x6a3f, 0x6a57, 0x6a40, - 0x6a41, 0x6a58, 0x6a42, 0x6a43, 0x6a44, 0x6a45, 0x6a46, 0x02e2, - 0x6a47, 0x6c6b, 0x6c6c, 0x6d10, 0x6d11, 0x21be, - /* 0x2f */ - 0x6e75, 0x6eef, 0x6f6a, 0x6f6b, 0x52fd, 0x6f6c, 0x6f6d, 0x6f6e, - 0x70ef, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5, 0x70ff, - 0x70f6, 0x7102, 0x70f7, 0x7322, 0x73c4, 0x73c3, 0x7528, 0x047c, - 0x7620, 0x7625, 0x7622, 0x7623, 0x76eb, 0x04e3, 0x77f9, 0x77fa, - 0x7999, 0x799a, 0x799b, 0x7963, 0x52fd, 0x795e, 0x795f, 0x7960, - 0x799c, 0x7961, 0x799d, 0x7e54, 0x7e55, 0x7e56, 0x7e57, 0x7e58, - 0x7e59, 0x7e5a, 0x7e19, 0x7e6a, 0x7e5b, 0x7e5c, 0x7e5d, 0x7e66, - 0x52fd, 0x7e5e, 0x7e5f, 0x7e1a, 0x7e60, 0x7e61, 0x52fd, 0x7e62, - 0x7e1b, 0x7e63, 0xb710, 0xb711, 0x834c, 0x839b, 0x83eb, 0x83ec, - 0x83ed, 0x83ee, 0x84a3, 0x84a8, 0x84a6, 0x06ec, 0x862f, 0x8630, - 0x8631, 0x8632, 0x8633, 0x874f, 0x8751, 0x8752, 0x877d, 0x8753, - 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, - /* 0x30 */ - 0x875a, 0x875b, 0x875c, 0x2957, 0x875d, 0x875e, 0x875f, 0x876f, - 0x8760, 0x8761, 0x8762, 0x8763, 0x8772, 0x8764, 0x52fd, 0x876e, - 0x8bb5, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, - 0x8e6c, 0x900e, 0x9043, 0x52fd, 0x900f, 0x9044, 0x9045, 0x9046, - 0x9047, 0x9048, 0x9049, 0x9010, 0x904a, 0x904b, 0x904c, 0x904d, - 0x08df, 0x904e, 0x904f, 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, - 0x9055, 0x9056, 0x9057, 0x9058, 0x9059, 0x905a, 0x901d, 0x905b, - 0x905c, 0x905d, 0xfb06, 0x52fd, 0x94fe, 0x94ff, 0x9500, 0x9501, - 0x9502, 0x9503, 0x9504, 0x9505, 0x9506, 0x9507, 0x9518, 0x9508, - 0x9509, 0x94f3, 0x950a, 0x950b, 0x951b, 0x950c, 0x950d, 0x950e, - 0x950f, 0x9510, 0x980f, 0x9861, 0x9879, 0x9ac1, 0x9aac, 0x9aad, - 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, - /* 0x31 */ - 0x9c49, 0x9c64, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x0ac7, 0xfb2d, - 0x9e39, 0x9f57, 0x9f58, 0x9f59, 0x9f5f, 0x9f5a, 0xa06a, 0xa22b, - 0xa25d, 0xa25e, 0xa25f, 0x52fd, 0xa260, 0xa261, 0xa358, 0xa359, - 0xa44a, 0xa44b, 0xa44c, 0xa44d, 0xa44e, 0xa757, 0xa6b3, 0xa6b4, - 0xa76e, 0xa75b, 0xa75c, 0x52fd, 0xa75d, 0xa75e, 0x52fd, 0xa76c, - 0xa93d, 0xa954, 0xa93e, 0xa955, 0xa956, 0xa93f, 0xa957, 0xa958, - 0xa959, 0xa95a, 0xa95b, 0xa95c, 0xaa88, 0xaa89, 0x52fd, 0xac58, - 0xac59, 0xac5a, 0x52fd, 0xad67, 0xad68, 0xad69, 0xad6a, 0x52fd, - 0xad6b, 0xad6c, 0xadfe, 0xadff, 0xae00, 0xae01, 0xae02, 0xae03, - 0xae04, 0xae05, 0xb139, 0xb13a, 0xb13b, 0xb13c, 0x52fd, 0x52fd, - 0xb2b2, 0xb2b3, 0xb2b4, 0xb2b5, 0xb2b6, 0xb2b7, 0xb2b8, 0x3d3c, - 0xb5a2, 0xb661, 0xb662, 0xb714, 0x52fd, 0xb7eb, - /* 0x32 */ - 0xb842, 0xb848, 0x52fd, 0xb843, 0xb84e, 0xb844, 0xb845, 0xb9b4, - 0xb9b5, 0x52fd, 0x52fd, 0x52fd, 0xb9b6, 0x52fd, 0xbbe1, 0xbc05, - 0x52fd, 0x3e73, 0xbe9a, 0x52fd, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, - 0xbe9f, 0xfb9a, 0xbea0, 0xbea1, 0xbea2, 0xbeb5, 0xbea3, 0xbea4, - 0x52fd, 0xbea5, 0xbea6, 0xbea7, 0xbea8, 0xbeaf, 0xbea9, 0xbeaa, - 0xbeab, 0xbeac, 0xbead, 0xbeb3, 0x52fd, 0xc4a0, 0xc556, 0xc934, - 0x1127, 0xc93c, 0xcb0c, 0x52fd, 0xcf3e, 0xcfa3, 0xd030, 0xd031, - 0xd197, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xd5b2, 0xd5ab, 0xd5ac, - 0xd9fc, 0xd9e8, 0xd9e9, 0xd9ea, 0xdaf1, 0xdc3f, 0xdfce, 0xe16d, - 0xe16e, 0xe16f, 0xe170, 0xe171, 0xe172, 0xe173, 0x4bbe, 0xe378, - 0xeb3a, 0x5467, 0x27fa, 0x5464, 0x5465, 0x5607, 0x55c4, 0x55c5, - 0x55c6, 0x55c7, 0x55c8, 0x55c9, 0x55e5, 0x55ca, - /* 0x33 */ - 0x55cb, 0x52fd, 0x55cc, 0x55cd, 0x55ce, 0x55cf, 0x55d0, 0x5797, - 0x579a, 0x579b, 0x58ea, 0x58ec, 0x58ed, 0x58f7, 0x58ee, 0x58ef, - 0x595b, 0x595c, 0x595d, 0x5a6d, 0x5a6e, 0x52fd, 0x5a6f, 0x5b81, - 0x5b82, 0x5c4f, 0x5cad, 0xda0a, 0x5d7e, 0x5e69, 0x6054, 0x6055, - 0x6056, 0x6057, 0x01ab, 0x6058, 0x6059, 0x605a, 0x605b, 0x605c, - 0x605d, 0x52fd, 0x52fd, 0x605e, 0x605f, 0x663b, 0x6636, 0x663c, - 0x663d, 0x663e, 0x663f, 0x6640, 0x6641, 0x6642, 0x024b, 0x6643, - 0x6644, 0x6645, 0x6637, 0x52fd, 0x52fd, 0x6646, 0x6647, 0x6648, - 0x6649, 0x682d, 0x68a5, 0x693d, 0x693f, 0x6c6e, 0x6ae7, 0x6a75, - 0x6a76, 0x6a77, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, 0x6a7c, 0x6a8e, - 0x6a7d, 0x6a7e, 0x2072, 0x6a7f, 0x6a80, 0x6a81, 0x6a82, 0x6a83, - 0x6a84, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, - /* 0x34 */ - 0x6a8a, 0x6a8b, 0x6a8c, 0x6c6f, 0x6c70, 0x6c71, 0x6c72, 0x6d2a, - 0x6d2b, 0x6d2c, 0x6d2d, 0x6d2e, 0x6d2f, 0x6d30, 0x6d31, 0x6e83, - 0x6f84, 0x6f85, 0x6f93, 0x52fd, 0x6f86, 0x6f87, 0x6f88, 0x6f89, - 0x6f8a, 0x6f8b, 0x7136, 0x7138, 0x7139, 0x713a, 0x03e2, 0x713b, - 0x713c, 0x713d, 0x713e, 0x713f, 0x52fd, 0x7140, 0x7141, 0x7142, - 0x73de, 0x73df, 0x73e0, 0x73e1, 0x754a, 0x754b, 0x754c, 0x754d, - 0x754e, 0x754f, 0x7550, 0x7627, 0x76f9, 0x76fa, 0x76fb, 0x7798, - 0x7799, 0x779a, 0x52fd, 0x781e, 0x799e, 0x79f7, 0x799f, 0x79a0, - 0x79f0, 0x79f8, 0x79f9, 0x79a1, 0x79a2, 0x79a3, 0x79a4, 0x79a5, - 0x79fa, 0x79fb, 0x79fc, 0x79fd, 0x79fe, 0x7a1f, 0x79ff, 0x7a00, - 0x7a8c, 0x7a01, 0x7cc2, 0x7cc3, 0x52fd, 0x7cd3, 0x7d4e, 0x7eaf, - 0x7eb0, 0x7eb1, 0x7eb2, 0x7eb3, 0x7ec6, 0x7eb4, - /* 0x35 */ - 0x52fd, 0x7eb5, 0x7eb6, 0x7eb7, 0x7eb8, 0x7eb9, 0x7eba, 0x7ebb, - 0x7ebc, 0x7ebd, 0x7ebe, 0x7ebf, 0x7ec1, 0x7ec0, 0x7ec2, 0x7ec3, - 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x835a, 0x8350, 0x8351, - 0x8378, 0x83f8, 0x83f9, 0x84c6, 0x84cb, 0x84cc, 0x84cd, 0x84ce, - 0x84cf, 0x84d0, 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x52fd, - 0x8637, 0x8638, 0x8673, 0x8790, 0x8791, 0x87bf, 0x8792, 0x8793, - 0x8794, 0x8795, 0x8796, 0x8797, 0x8798, 0x8799, 0x29bd, 0x879a, - 0x879b, 0x879c, 0x879d, 0x879e, 0x879f, 0x87a0, 0x87a1, 0x87a2, - 0x87a3, 0x87a4, 0x87a5, 0x52fd, 0x87a6, 0x87a7, 0x8bbf, 0x8bc0, - 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, 0x8c75, 0x8d43, - 0x8d12, 0x8d9f, 0x8d91, 0xfaf6, 0x8d92, 0x8d93, 0x8d94, 0x8e7e, - 0x8e7f, 0x8e80, 0x8e81, 0x8e82, 0x8f4c, 0x8f63, - /* 0x36 */ - 0x90c0, 0x90c1, 0x90c2, 0x953a, 0x90c3, 0x90c4, 0x90c5, 0x90c6, - 0x2e15, 0x90c7, 0x52fd, 0x90c8, 0x9073, 0x90c9, 0x90ca, 0x90cb, - 0x90cc, 0x90cd, 0x090e, 0x52fd, 0x52fd, 0x90ce, 0x90cf, 0x90d0, - 0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x953b, 0x953c, 0x953d, - 0x953e, 0x52fd, 0x953f, 0x9540, 0x9541, 0x9542, 0x9543, 0x09c1, - 0x9544, 0x9545, 0x9559, 0x9546, 0x9547, 0x9548, 0x52fd, 0x9549, - 0x9813, 0x9882, 0x9883, 0x9966, 0x9967, 0x9c65, 0x3313, 0x9c66, - 0x0ad9, 0x9c75, 0x9c74, 0x9c67, 0x9c6d, 0x9c76, 0x9c68, 0x9c69, - 0x9c6a, 0x9c6b, 0x9c4f, 0x9c6c, 0x9df8, 0x9e45, 0x33f8, 0x9e46, - 0x9ee4, 0x9f85, 0x9f6f, 0x9f70, 0xa082, 0xa083, 0xa084, 0xa08b, - 0xa22d, 0xa268, 0xa269, 0xa277, 0xa264, 0xa26a, 0x52fd, 0xa2f2, - 0xa2e2, 0xa363, 0xa364, 0xa365, 0xa366, 0x3a3d, - /* 0x37 */ - 0xa367, 0xa368, 0x35d8, 0x52fd, 0xa472, 0xa47d, 0xa669, 0xa784, - 0xa786, 0xa787, 0xa788, 0xa79e, 0x52fd, 0xa789, 0xa78a, 0xa796, - 0xa78b, 0xa78c, 0xa78d, 0xa979, 0xa983, 0xa97a, 0xa95d, 0xa97b, - 0x52fd, 0xaa9f, 0x0d48, 0xaaa0, 0xaaa1, 0xaaa2, 0x38fc, 0xac6a, - 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xad78, 0x52fd, 0xad79, 0xad7c, - 0xae21, 0xae22, 0xae23, 0xae24, 0x3a39, 0xae25, 0xae26, 0xb151, - 0xb152, 0xb156, 0x52fd, 0x3c4b, 0xb2e1, 0x52fd, 0x52fd, 0xb2d6, - 0xb2d7, 0xb2d8, 0xb2d9, 0xb5b5, 0xb66c, 0xb66f, 0xb670, 0xb7bc, - 0xb7bd, 0xb7ed, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb986, 0xb987, - 0xb9ed, 0x52fd, 0xb9ee, 0x52fd, 0xbc0e, 0xbc0f, 0x52fd, 0xbd2d, - 0xbd2a, 0xbd2e, 0xbdcc, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0x3fb9, - 0xbefd, 0xbf1b, 0xbefe, 0xbeff, 0xbf00, 0xbf01, - /* 0x38 */ - 0xbf02, 0xbf03, 0xbf21, 0xbf04, 0xbf05, 0xbf06, 0xbf07, 0xbf08, - 0xbf09, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, 0xbf0f, 0xbf10, - 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xc57b, 0xc57c, 0xc57d, - 0xc57e, 0x40cf, 0xc57f, 0xc580, 0xc566, 0xc581, 0xc582, 0xc583, - 0xc8b2, 0x52fd, 0xc97f, 0xc972, 0xc95a, 0xcaeb, 0xcb15, 0x52fd, - 0xcb16, 0xfbca, 0xcb17, 0x52fd, 0xcbc5, 0xcbc6, 0xcbc7, 0xcc88, - 0xcc89, 0x52fd, 0xcc8a, 0xcc8b, 0xcc8c, 0xcc8d, 0xcedf, 0x52fd, - 0xd03b, 0xd03c, 0xd03d, 0xd03e, 0xd03f, 0xd040, 0xd041, 0xd042, - 0xd15c, 0xd1af, 0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1b5, 0xd1ad, - 0xd1ae, 0xd2e2, 0xd524, 0x44ae, 0xd5c4, 0x52fd, 0xd7ea, 0xd7d3, - 0xd7d4, 0xd7d5, 0xd986, 0x52fd, 0xd987, 0xd9fd, 0xdb05, 0xdc49, - 0xdf5f, 0xdfd3, 0xdfd5, 0xe18a, 0xe18b, 0xe18c, - /* 0x39 */ - 0xe18d, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, 0xe193, 0xe37d, - 0xe37e, 0x4beb, 0x52fd, 0x52fd, 0xe4ec, 0xe55b, 0xef87, 0xef86, - 0x52fd, 0x5346, 0x5347, 0x5402, 0x546d, 0x546e, 0x546f, 0x560d, - 0x560e, 0x560f, 0x5610, 0x5611, 0x5612, 0x5613, 0x5614, 0x579f, - 0x57a0, 0x57a1, 0x57a3, 0x5821, 0x5822, 0x867c, 0x5895, 0x5896, - 0x5961, 0x5967, 0x5a91, 0x5a92, 0x5a93, 0x5a94, 0x5b8a, 0x5b8b, - 0x5bf7, 0x5c24, 0x5cb0, 0x5cb1, 0x5d8e, 0x5e04, 0x5e6a, 0x5e6b, - 0x5e6c, 0x5e6d, 0x60e8, 0x610c, 0x60e9, 0x60ea, 0x610d, 0x52fd, - 0x60eb, 0x60ec, 0x60ed, 0x60ee, 0x60ef, 0x60f0, 0x60f1, 0x60f2, - 0x6116, 0x60f3, 0x6104, 0x611d, 0x60f4, 0x60f5, 0x60f6, 0x60f7, - 0x1cb0, 0x6502, 0x6503, 0x6504, 0x669a, 0x667c, 0x66c5, 0x667d, - 0x667e, 0x667f, 0x6680, 0x6681, 0x1f40, 0x1f42, - /* 0x3a */ - 0x6682, 0x6683, 0x6684, 0x6685, 0x6686, 0x6687, 0x68ae, 0x694d, - 0x6ab0, 0x6adc, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba, 0x6abb, - 0x6adb, 0x6abc, 0x6abd, 0x6abe, 0x52fd, 0x6abf, 0x6ac0, 0x6ac1, - 0x6ac2, 0x6ac3, 0x6ace, 0x0301, 0x6ad9, 0x6ac4, 0x6ac5, 0x6ada, - 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca, 0x6c7e, 0x6c7b, 0x6d4e, - 0x6d4f, 0x6d50, 0x6d51, 0x6d52, 0x6d53, 0x6d54, 0x6d55, 0x6e8f, - 0x6efc, 0x6fa6, 0x6fa7, 0x6fa8, 0x7023, 0x718b, 0x52fd, 0x718c, - 0x718d, 0x718e, 0x718f, 0x71a4, 0x5899, 0x7324, 0x7346, 0x7347, - 0x7348, 0x73fd, 0x73fe, 0x52fd, 0x756e, 0x757c, 0x756f, 0x7570, - 0x7571, 0x7572, 0x7629, 0x762a, 0x765f, 0x77a2, 0x7830, 0x782b, - 0x7a61, 0x7a02, 0x7a03, 0x7a04, 0x7a05, 0x7a06, 0x7a07, 0x52fd, - 0x7a08, 0x7a09, 0x7a62, 0x7a0a, 0x7a0b, 0x7a0c, - /* 0x3b */ - 0x7a0d, 0x7a0e, 0x7a63, 0x7a27, 0x7a0f, 0x52fd, 0x7a1b, 0x7a64, - 0x7a10, 0x7a11, 0x7a81, 0x7a12, 0x7a65, 0x7a13, 0x7cce, 0x7f29, - 0x7ec4, 0x7f2a, 0x52fd, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2e, 0x7f2f, - 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f34, 0x52fd, 0x7f35, 0x7f36, - 0x7ee3, 0x7f37, 0x7f38, 0x7f39, 0x7f3a, 0x7f3b, 0x7f4d, 0x7f3c, - 0x7f3d, 0x7f3e, 0x52fd, 0x81d0, 0x81d1, 0x8355, 0x8402, 0x8404, - 0x84fc, 0x8507, 0x84fd, 0x84fe, 0x52fd, 0x84ff, 0x8500, 0x8508, - 0x8501, 0x8502, 0x8535, 0x8503, 0x8504, 0x52fd, 0x863b, 0x8689, - 0x8681, 0x8682, 0xba33, 0x87eb, 0x87ec, 0x52fd, 0x87ed, 0x87ee, - 0x87ef, 0x52fd, 0x87f0, 0x87f1, 0x87f2, 0x2a2b, 0x87f3, 0x2a16, - 0x87f4, 0x87f5, 0x534b, 0x87f6, 0x87f7, 0x87f8, 0x87f9, 0x87fa, - 0x87fb, 0x87fc, 0x87fd, 0x87fe, 0x87ff, 0x8800, - /* 0x3c */ - 0x2a1b, 0x8801, 0x8802, 0x8803, 0x8804, 0x8805, 0x8806, 0x8807, - 0x2a27, 0x8808, 0x8809, 0x880a, 0x880b, 0x880c, 0x880d, 0x8bd7, - 0x8bd8, 0x8d29, 0x8d9c, 0x8df8, 0x8e98, 0x8ea4, 0x8e99, 0x8e9a, - 0x8e9b, 0x8e97, 0x8e9c, 0x2cf5, 0x8e9d, 0x52fd, 0x8e9e, 0x8e9f, - 0x8f65, 0x90d6, 0x0920, 0x9132, 0x9133, 0x9134, 0x2e82, 0x9135, - 0x9136, 0x9137, 0x90d7, 0x52fd, 0x90d8, 0x9138, 0x9139, 0x913a, - 0x913b, 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x90d9, 0x9141, - 0x9142, 0x0921, 0x9143, 0x9144, 0x2e7a, 0x957c, 0x957d, 0x957e, - 0x957f, 0x9580, 0x9581, 0x9582, 0x52fd, 0x9583, 0x9584, 0x9585, - 0x9586, 0x95a5, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b, 0x958c, - 0x958d, 0x958e, 0x52fd, 0x52fd, 0x958f, 0x52fd, 0x9590, 0x9591, - 0x9592, 0x9593, 0x9594, 0x9595, 0x52fd, 0x3129, - /* 0x3d */ - 0x9596, 0x9856, 0x9857, 0x98e1, 0x990e, 0x990f, 0x997a, 0x997b, - 0x998b, 0x9af2, 0x9af3, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, - 0x9cad, 0x9c98, 0x9cab, 0x9c7b, 0x9c99, 0x9c9a, 0x9c9b, 0x9c85, - 0x9c9c, 0x9c9d, 0x0ada, 0x52fd, 0x9cac, 0x9c79, 0x9c9e, 0x9ca4, - 0x9dfd, 0x9eeb, 0x9eea, 0x9f8f, 0x9f90, 0x9f86, 0x9f87, 0x9f88, - 0xa0ac, 0xa0ad, 0xa2ec, 0xa373, 0xa374, 0x52fd, 0xa4aa, 0xa4ab, - 0xa4ac, 0xa6d1, 0xa6d7, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa98e, - 0xa98f, 0xa990, 0xa97c, 0xa991, 0xa992, 0xa993, 0xa994, 0xfb54, - 0xa99a, 0xa995, 0xa996, 0xa997, 0xaabd, 0xaac7, 0xaabe, 0x52fd, - 0xaabf, 0x52fd, 0xac93, 0x6d5e, 0xad86, 0xad87, 0xad88, 0xad89, - 0xae41, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae4a, 0xae47, - 0xae48, 0xae49, 0xb16b, 0xb166, 0x52fd, 0xb167, - /* 0x3e */ - 0x3bab, 0xb168, 0x3bac, 0x52fd, 0xb2fd, 0xb2fe, 0xb2ff, 0xb300, - 0xb301, 0xb302, 0xb303, 0xb304, 0xb305, 0xb306, 0xb533, 0xb5c2, - 0xb5d0, 0xfb74, 0xb695, 0xb696, 0xb735, 0xb736, 0xb867, 0xb868, - 0xb869, 0xb86a, 0xb872, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, - 0xba22, 0x52fd, 0x52fd, 0xba23, 0xba41, 0xba24, 0xba25, 0xba26, - 0xba27, 0xba28, 0xba29, 0xb9b7, 0x52fd, 0x52fd, 0x52fd, 0xbcda, - 0xbdcf, 0xbdda, 0xbf89, 0xbfb7, 0xbf8a, 0xbf8b, 0xc05e, 0xbf8c, - 0x52fd, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, - 0xbf94, 0xbfb6, 0xbf95, 0xbf96, 0xbf97, 0x3ff7, 0x52fd, 0xbf98, - 0xbf99, 0xbf9a, 0x0fea, 0x52fd, 0xbf9b, 0xbfbd, 0xbf9c, 0xbf9d, - 0xbf9e, 0xbf9f, 0xbfc0, 0xbfa0, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, - 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, - /* 0x3f */ - 0x52fd, 0xc4b4, 0xc4b5, 0xc4b6, 0xc5b9, 0xc5ba, 0xc5bb, 0xc591, - 0xc5bc, 0xc8ee, 0xc8ef, 0xc996, 0xc997, 0xc973, 0xc998, 0xc999, - 0xcaed, 0xcaee, 0xcbde, 0xccb0, 0xccb1, 0xccb2, 0xccb3, 0xccb4, - 0xccb5, 0xccb6, 0xfbce, 0xccb7, 0xcee3, 0xcfb9, 0xd055, 0xd07e, - 0xd056, 0xd057, 0xd058, 0xd059, 0xd05a, 0x52fd, 0xd1c4, 0xd1c5, - 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ee, 0xd1cf, 0xd1ca, 0xd1cb, - 0xd1cc, 0xd309, 0xfbda, 0xd303, 0xd52f, 0xd530, 0xd531, 0xd532, - 0xd80e, 0xd80f, 0xd810, 0xd811, 0xd812, 0x52fd, 0xd813, 0xd814, - 0xd815, 0xd7ff, 0xda1f, 0xda20, 0xda21, 0xda2d, 0x52fd, 0xdb1b, - 0xdb1c, 0xdb1d, 0xdb1e, 0xdc53, 0xdc54, 0xdc55, 0xdc56, 0xdc64, - 0xdc59, 0xdc57, 0x52fd, 0xdc58, 0xdf6b, 0x1489, 0x52fd, 0xdfe7, - 0xdfe8, 0xdfe9, 0xdfea, 0xdfeb, 0xdfec, 0x4a96, - /* 0x40 */ - 0xdfed, 0xe1b1, 0xe1b4, 0x52fd, 0xe38a, 0xe38d, 0xe38c, 0xe4f2, - 0xe4f3, 0x52fd, 0x7408, 0xe717, 0x15b2, 0xe89f, 0xe9a0, 0x52fd, - 0xeb6d, 0x837d, 0xf290, 0xf8c4, 0x534c, 0x5474, 0x5475, 0x5476, - 0x5649, 0x564a, 0x564b, 0x564c, 0x564d, 0x564e, 0x564f, 0x5650, - 0x5651, 0x5652, 0x5653, 0x5654, 0x5655, 0x5656, 0x57a4, 0x57a9, - 0x582a, 0x582b, 0x5ab3, 0x5ac1, 0x5b98, 0x5bfb, 0x5bfc, 0x5cbc, - 0x5d96, 0x5e0a, 0x52fd, 0x61a2, 0x52fd, 0x6181, 0x6182, 0x6183, - 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618b, - 0x618c, 0x1cf1, 0x618d, 0x61d1, 0x6514, 0x66c9, 0x66ca, 0x66cb, - 0xedfd, 0x66cc, 0x66cd, 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, - 0x66d3, 0x66d4, 0x66d5, 0x6871, 0x534d, 0x6962, 0x6b0e, 0x6afe, - 0x6aff, 0x6b00, 0x52fd, 0x6b01, 0x6b02, 0x6b03, - /* 0x41 */ - 0x6b15, 0x6b04, 0x6b05, 0x52fd, 0x6c87, 0x6c89, 0x6d6e, 0x6d6f, - 0x6d70, 0x6d71, 0xfa6e, 0x6d72, 0x6d73, 0x6d74, 0x6e9d, 0x6fb8, - 0x6fb9, 0x6fba, 0x71c2, 0x71c3, 0x71d5, 0x71c4, 0x71c0, 0x71c5, - 0x71c6, 0x758a, 0x758b, 0x758c, 0x7664, 0xae8c, 0x2441, 0x770d, - 0x77a8, 0x783b, 0x783c, 0x783d, 0x783e, 0x783f, 0x7840, 0x7a66, - 0x7acb, 0x7ab7, 0x7ab8, 0x7ab9, 0x7aba, 0x7a67, 0x7abb, 0x7a68, - 0x7a69, 0x7a6a, 0x7abc, 0x52fd, 0x7cdb, 0x7f81, 0x7f82, 0x7f83, - 0x7f84, 0x7f85, 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0xfabf, 0x7f8a, - 0x7f8b, 0x52fd, 0x7f8c, 0x7f8d, 0x7f8e, 0x7f8f, 0x7f90, 0x7fa1, - 0x7f91, 0x81d6, 0x829f, 0x8358, 0x8385, 0x840b, 0x840c, 0x8537, - 0x8538, 0xface, 0x8539, 0x853a, 0x853b, 0x853c, 0x853d, 0x853e, - 0x8540, 0x8541, 0x8542, 0x52fd, 0x8543, 0x868a, - /* 0x42 */ - 0x868b, 0x8890, 0x8859, 0x885b, 0x885c, 0x885d, 0x885e, 0x2a8a, - 0x885f, 0x8860, 0x8861, 0x8862, 0x8863, 0x8864, 0x8893, 0x8865, - 0x8866, 0x8867, 0x8868, 0x8869, 0x886a, 0x886b, 0x8895, 0x886c, - 0x886d, 0x886e, 0x886f, 0x2a8c, 0x8870, 0x8871, 0x8872, 0x8873, - 0x8874, 0x8875, 0x8876, 0x8877, 0x8878, 0x8879, 0x2a80, 0x887a, - 0x2a7f, 0x887b, 0x88a9, 0x887c, 0x8bf1, 0x8beb, 0x8c8a, 0x8d3d, - 0x8da6, 0x8da7, 0x8eba, 0x52fd, 0x8ebb, 0x8ebc, 0x8ebd, 0x9191, - 0x9192, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x90da, 0x9198, - 0x9199, 0x919a, 0x52fd, 0x52fd, 0x919b, 0x919c, 0x919d, 0x919e, - 0x919f, 0x91a0, 0x91bf, 0x91a1, 0x91a2, 0x91a3, 0x91a4, 0x91a5, - 0x91a6, 0x91a7, 0x915b, 0xfb0d, 0x91a8, 0x95cb, 0x52fd, 0x09da, - 0x95cc, 0x964f, 0x95cd, 0x95ce, 0x95cf, 0x964e, - /* 0x43 */ - 0x95d0, 0x95d1, 0x95d2, 0x52fd, 0x95d3, 0x95d4, 0x95d5, 0x95d6, - 0x95d7, 0x95d8, 0x95d9, 0x95fa, 0x95da, 0x95db, 0xfb1c, 0x95dc, - 0x52fd, 0x52fd, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, - 0x95e3, 0x95e4, 0x95e5, 0x09db, 0x95e6, 0x95e7, 0x988e, 0x9998, - 0x9999, 0x52fd, 0x9b0a, 0x52fd, 0x9b26, 0x9b27, 0x9cbd, 0x9cdf, - 0x0ae2, 0x9cbe, 0x9cde, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, 0x9c9f, - 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x0ae3, 0x9cc8, 0x9cc9, - 0x9ce3, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, - 0x9cd1, 0x9cd2, 0x9cd3, 0xfb2f, 0x9cd4, 0x9e04, 0x9e65, 0x9eee, - 0x9fa0, 0x9fa1, 0xa0dd, 0xa0de, 0xa283, 0xa2fa, 0xa37f, 0xa380, - 0xa4e8, 0xa4e9, 0xa4ea, 0x88a6, 0xa6e1, 0x52fd, 0xa7db, 0xa7dc, - 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, 0xa7e2, - /* 0x44 */ - 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0x379c, 0xa7e7, 0xa9b0, 0xa998, - 0xa9b1, 0xa999, 0xa9b2, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, - 0xa9b8, 0xa9b9, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, - 0xaae8, 0xaae9, 0xacad, 0xaccf, 0xacae, 0xacaf, 0xacb0, 0xacb1, - 0xad92, 0xad93, 0xad94, 0xae79, 0x3a7b, 0xae7a, 0xae7b, 0xae7c, - 0xae7d, 0xae7e, 0xae7f, 0xae80, 0xae81, 0xae82, 0xae83, 0xae84, - 0xb197, 0xb184, 0xb185, 0xb189, 0xb186, 0xb187, 0xb32c, 0xb32d, - 0xb32e, 0xb32f, 0xb330, 0xb331, 0xb332, 0xb333, 0xb334, 0xb335, - 0xb336, 0xb337, 0xb5d2, 0xb744, 0xb800, 0xb883, 0xb884, 0xfb86, - 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0x52fd, 0xba7f, 0xba87, - 0xba80, 0xbd43, 0xc034, 0x1249, 0xc035, 0xc036, 0xc037, 0xc038, - 0xc039, 0xc03a, 0xc03b, 0xc03c, 0xc03d, 0xc03e, - /* 0x45 */ - 0xc03f, 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, - 0xc047, 0xc048, 0xc049, 0xc04a, 0x52fd, 0xc04b, 0xc04c, 0xc04d, - 0xc04e, 0xc5e7, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ec, 0xc5ed, - 0xc5ee, 0xc8f7, 0xc99a, 0xc9cd, 0xfbc8, 0xc9a3, 0xc9ce, 0xcb31, - 0xcb32, 0xcb33, 0xcce4, 0x52fd, 0xcce5, 0xcce6, 0xcfc8, 0xd074, - 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, 0xd07a, 0xd161, 0xd1df, - 0xd1e0, 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0x12f3, - 0xd331, 0xd53d, 0xd53e, 0xd53f, 0xd5f4, 0xd5f5, 0xd5f6, 0x52fd, - 0xd717, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, - 0xd848, 0xd849, 0xd84a, 0xd84b, 0x46d2, 0xd9ba, 0xda44, 0xdc2a, - 0xdc6d, 0x4774, 0xfbe7, 0xdc7e, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71, - 0xdc76, 0xdf79, 0x4aa0, 0x52fd, 0xe004, 0xdff8, - /* 0x46 */ - 0xe005, 0xe1da, 0xe1db, 0xe1dc, 0xe1dd, 0xe1de, 0xe1df, 0xe1e0, - 0xe1e1, 0xe3c5, 0xe39a, 0xe39b, 0xe39c, 0xe4d8, 0xe4d9, 0xe4da, - 0xe56e, 0x1557, 0xe76b, 0xd083, 0x52fd, 0xe9d6, 0xe9bd, 0x52fd, - 0x852e, 0xedfc, 0xf053, 0xf0b7, 0xf58c, 0xf68e, 0xf5ff, 0x5376, - 0x5406, 0x547e, 0x5684, 0x5685, 0x5686, 0x5687, 0x5688, 0x56a7, - 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x568e, 0x568f, 0x56a3, - 0x5690, 0x5691, 0x5692, 0x5693, 0x56ac, 0x5694, 0x5695, 0x5696, - 0x57aa, 0x57ab, 0x589e, 0x18a9, 0x5908, 0x5909, 0x5968, 0x5969, - 0x596a, 0x599a, 0x5ad9, 0x5ada, 0x5adb, 0x5ba8, 0x5c01, 0x5c28, - 0x5c77, 0x5cbd, 0x5cbe, 0x6260, 0x5da0, 0x5da2, 0x5e0f, 0x5e85, - 0x61fe, 0x61ff, 0x6200, 0x6201, 0x6216, 0x6202, 0x6203, 0x6204, - 0x6205, 0x6206, 0x6207, 0x6208, 0x6222, 0x6209, - /* 0x47 */ - 0x620a, 0x620b, 0x620c, 0x6214, 0x6229, 0x616e, 0x620d, 0x620e, - 0x620f, 0x6210, 0x6211, 0x6212, 0x6213, 0x651b, 0x651c, 0x651d, - 0x6713, 0x66ff, 0x6700, 0x6701, 0x6702, 0x6703, 0x6704, 0x670a, - 0x6705, 0x6706, 0x6707, 0x6708, 0x683a, 0x6873, 0x696f, 0x6970, - 0x6971, 0x5352, 0x52fd, 0x6d9a, 0x6b60, 0xfa69, 0x6b2b, 0x6b24, - 0x6b2c, 0x6b2d, 0x6b2e, 0x6b2f, 0x6b30, 0x6b31, 0x6b32, 0x6b33, - 0x6b34, 0x6b35, 0x6b45, 0x6b36, 0x6c92, 0x6c93, 0x6d88, 0x6d89, - 0x6d8a, 0x6d8b, 0x6e3f, 0x52fd, 0x6fca, 0x71f6, 0x71f7, 0x71f8, - 0x71f9, 0x742b, 0x52fd, 0x74a4, 0x74ce, 0x52fd, 0x759e, 0x759f, - 0x75a0, 0x75a1, 0x75a2, 0x75a3, 0x75a4, 0x75a5, 0x75a6, 0x7718, - 0x7860, 0x7861, 0x7862, 0x7863, 0x7864, 0x7abd, 0x7abe, 0x7b0b, - 0x7abf, 0x7ac0, 0x52fd, 0x7b0c, 0x7a8d, 0x7b0d, - /* 0x48 */ - 0x7b0e, 0x7b5e, 0x7b0f, 0x7b10, 0x7ac1, 0x7b11, 0x52fd, 0x7ac2, - 0x7cea, 0x7ceb, 0x7fe3, 0x7fe4, 0x7fe5, 0x7fe6, 0x7fe7, 0x7f92, - 0x804a, 0x52fd, 0x7fe8, 0x7fe9, 0x7fea, 0x8001, 0x7feb, 0x7fec, - 0x7fef, 0x7fed, 0x7fee, 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, - 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffe, 0x7ffa, 0x7ffb, - 0x7ffc, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x890b, - 0x890d, 0x07bc, 0x890e, 0x890f, 0x07a4, 0x8914, 0x88d4, 0x88d5, - 0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, - 0x88de, 0x88df, 0x88e0, 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, - 0x88e6, 0x88e7, 0x88e8, 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x89ec, - 0x88ed, 0x88ee, 0x88ef, 0x8900, 0x88f0, 0x8c04, 0x52fd, 0x8c05, - 0xfaf3, 0x8db5, 0xfaf9, 0x8ed6, 0x8ed7, 0x8ed8, - /* 0x49 */ - 0x8ed9, 0x91a9, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, - 0x9206, 0x923f, 0x9207, 0x9208, 0x9209, 0x920a, 0x91b6, 0x920b, - 0x920c, 0x52fd, 0x52fd, 0x920d, 0x52fd, 0x920e, 0x920f, 0x9210, - 0x9211, 0x9212, 0x9235, 0x9213, 0x9214, 0x91aa, 0x52fd, 0x92c1, - 0x9215, 0x9216, 0x9217, 0x961e, 0x961f, 0x9620, 0x9621, 0x52fd, - 0x9622, 0x9623, 0x3195, 0x9624, 0x9625, 0x9626, 0x9627, 0x9628, - 0x9629, 0x962a, 0x962b, 0x9607, 0x962c, 0x962d, 0x962e, 0x09e8, - 0x52fd, 0x962f, 0x9630, 0x9648, 0x9631, 0x9632, 0x3198, 0x9633, - 0x52fd, 0x9634, 0x9635, 0x9636, 0x9859, 0x9891, 0x98e7, 0x99b8, - 0x99b9, 0x99ba, 0x99bb, 0x99c8, 0x9b4d, 0x9b89, 0x9b50, 0x9b28, - 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x3378, 0x9d00, 0x9d01, - 0x9d02, 0x9ce4, 0x9ce5, 0x9d03, 0x9d04, 0x9d05, - /* 0x4a */ - 0x9d06, 0x9d07, 0x9d13, 0x9d08, 0x9d09, 0x9ce6, 0x9d0a, 0x9d0b, - 0x9d0c, 0x9e0b, 0x9ef4, 0x9f0a, 0x9fb1, 0xa11d, 0xfb3b, 0xa28b, - 0xa28c, 0xa28f, 0xa28d, 0xa28e, 0xa306, 0xa386, 0xa522, 0xa523, - 0xa524, 0xa525, 0xa526, 0xa527, 0xa528, 0xa6f1, 0x37b9, 0xa823, - 0xa812, 0x52fd, 0xa813, 0xa814, 0xa815, 0xa816, 0xa817, 0xa818, - 0xa819, 0xa84b, 0xa81a, 0xa81b, 0xa81c, 0x52fd, 0xa81d, 0xa81e, - 0xa81f, 0xa820, 0xa9ca, 0x75ac, 0xa9cb, 0xa9cc, 0xa9cd, 0xa9ce, - 0x52fd, 0xa9cf, 0xab10, 0xab11, 0xab12, 0xab13, 0xab14, 0xab0f, - 0xab15, 0xab16, 0xab17, 0x3933, 0xab18, 0xacc6, 0xad9f, 0xada0, - 0xada4, 0xada1, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, - 0xaed0, 0xaec6, 0xaebb, 0xaebc, 0xaebd, 0xaebe, 0xaebf, 0xaec0, - 0xaec1, 0xaec2, 0xfb60, 0xb1a7, 0xb1a8, 0xb1a9, - /* 0x4b */ - 0xb1aa, 0xb1ab, 0xb1ac, 0xb1bc, 0xb1ad, 0xb1ae, 0x3bc0, 0xb1af, - 0xb1b0, 0xb1b1, 0x3bc1, 0xb1b4, 0xb1b2, 0xb366, 0xb367, 0xb368, - 0xb369, 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0x52fd, - 0xb53e, 0xb53f, 0xb540, 0xb5e8, 0xb752, 0xb753, 0xb754, 0xb755, - 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, - 0x52fd, 0xb899, 0xb89a, 0xb89b, 0xbab7, 0xbab8, 0xbab9, 0x52fd, - 0xbaba, 0xbabb, 0xbabd, 0x52fd, 0xbabc, 0xfb88, 0xfb87, 0xbbeb, - 0xbbec, 0xbc16, 0xbc44, 0xbce3, 0xbd58, 0xbd53, 0xbd54, 0xbde0, - 0xc0b1, 0xc0b2, 0xc0b3, 0xc0ea, 0x52fd, 0xc0b4, 0xc0f0, 0xc0b5, - 0xc0b6, 0xc0b7, 0xc0b8, 0xc0b9, 0xc0ba, 0xc0bb, 0xc0bc, 0xc0bd, - 0xc0be, 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c2, 0xc0c3, 0x52fd, 0xc0c4, - 0xc0c5, 0xc0c6, 0xc0fc, 0xc0c7, 0xc0c8, 0xc0c9, - /* 0x4c */ - 0xc0ca, 0xc0cb, 0xc0cc, 0xc184, 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d0, - 0xc0d1, 0xc0d2, 0xc4ca, 0xc4cb, 0xc636, 0xc637, 0xc69f, 0xc638, - 0xc639, 0xc63a, 0x4144, 0xc9be, 0xc9f0, 0xc9bf, 0xc9c0, 0xcaf7, - 0xcaf8, 0xcafa, 0xcb43, 0xcb44, 0xcd0f, 0xcd10, 0xcd11, 0xcd12, - 0x43ad, 0xcd13, 0xcd14, 0xcd15, 0xcd16, 0x52fd, 0x52fd, 0xcfd3, - 0xcfd7, 0x52fd, 0xd0b0, 0xd098, 0xd090, 0xd091, 0xd092, 0xd097, - 0xd093, 0xd164, 0xd201, 0xd202, 0xd203, 0xd204, 0xd205, 0xd206, - 0xd207, 0xd35a, 0xd35b, 0xd54e, 0xd54f, 0xd550, 0xd619, 0xd61a, - 0xd61b, 0x52fd, 0xd61c, 0x52fd, 0xd719, 0xd71a, 0x1386, 0xdc8a, - 0xd86e, 0xd86f, 0x4664, 0xd870, 0xd871, 0xd872, 0xd873, 0xd874, - 0xd875, 0xd876, 0xdb3a, 0xdb3b, 0xdb3c, 0xdb5a, 0xdb3d, 0xdb42, - 0xdc8b, 0xdca0, 0xdc8c, 0xdc8d, 0xdc8e, 0xdcab, - /* 0x4d */ - 0xdc8f, 0x4777, 0xdc90, 0xdc91, 0xdc92, 0xdcaa, 0x47af, 0xdc93, - 0xdc94, 0xdc9e, 0xdca8, 0x52fd, 0x52fd, 0xe200, 0xe201, 0xe202, - 0xe203, 0xe204, 0xe205, 0xe2c4, 0xe2c5, 0x52fd, 0xe3ae, 0xe3b2, - 0x52fd, 0x52fd, 0xe4f7, 0xe513, 0xe69e, 0xe785, 0xa680, 0xe7c8, - 0xeb41, 0xeb81, 0xeb82, 0xeb83, 0xeb84, 0xedc4, 0xedc5, 0xedc6, - 0xef95, 0xef96, 0xef97, 0xf058, 0xf059, 0x52fd, 0xf2a9, 0xf2aa, - 0xf2ab, 0xf58e, 0xf603, 0xf6b3, 0x5e82, 0x5353, 0x5483, 0x5484, - 0x5485, 0x56cc, 0x56cd, 0x56ce, 0x56cf, 0x56d0, 0x52fd, 0x56d1, - 0x56d2, 0x56da, 0x57b3, 0x57b4, 0x52fd, 0x5913, 0x590e, 0x596b, - 0x5c03, 0x5c61, 0x5cc1, 0x5cc2, 0x5db5, 0x5440, 0x6298, 0x6299, - 0x629a, 0x629b, 0x629c, 0x629d, 0x629e, 0x629f, 0x62ee, 0x62a0, - 0x62a1, 0x6286, 0x6525, 0x6734, 0x6735, 0x6751, - /* 0x4e */ - 0x672d, 0x9662, 0x6754, 0x6752, 0x026d, 0x6736, 0x6737, 0x6738, - 0x6739, 0x673a, 0x673b, 0x6768, 0x673c, 0x026e, 0x6877, 0x8596, - 0x697e, 0x697f, 0x6b69, 0x6b6a, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, - 0x6b6f, 0x6b5d, 0x6b70, 0x6b85, 0x6b71, 0x6b72, 0x6b73, 0x6b74, - 0x6b75, 0x6b76, 0x6b84, 0x6b77, 0x6b83, 0x6c9a, 0x6da7, 0x6da8, - 0x6da9, 0x6daa, 0x6dab, 0x6dac, 0x6db7, 0x6dad, 0x6dae, 0x52fd, - 0x6e45, 0x6fd3, 0x6fd4, 0x6fd5, 0x6fd6, 0x6fd7, 0x7226, 0x7227, - 0x7228, 0x52fd, 0x7229, 0x722a, 0x7305, 0x2364, 0x74d0, 0x75b7, - 0x52fd, 0x75b8, 0x75b9, 0x7722, 0x7723, 0x7873, 0x7874, 0x7b8f, - 0x7b12, 0x7b13, 0x7b14, 0x7b15, 0x7b16, 0x7b17, 0x7b18, 0x7b61, - 0x7b66, 0x7b67, 0x7b19, 0x7b68, 0x7b1a, 0x7b69, 0x7d04, 0x7d05, - 0x52fd, 0x7d06, 0x7cfd, 0x8050, 0x8051, 0x8052, - /* 0x4f */ - 0x8053, 0x8054, 0x8055, 0x8063, 0xfac4, 0x8056, 0x8057, 0x8058, - 0x8059, 0x805a, 0x805b, 0x52fd, 0x805c, 0x805d, 0x805e, 0x805f, - 0x82d7, 0x52fd, 0x8360, 0x8361, 0x8417, 0x8439, 0x858f, 0x85c8, - 0x8590, 0x8591, 0x8698, 0x8699, 0x8944, 0x8945, 0x8946, 0x8959, - 0x89ee, 0x2b2b, 0x8947, 0x8948, 0x52fd, 0x8949, 0x894a, 0x894b, - 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8952, 0x8953, - 0x8954, 0x8955, 0x8956, 0x8c15, 0x8c9a, 0x8d58, 0x8dfc, 0x8dfd, - 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x52fd, - 0x931f, 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, - 0xfb11, 0x9294, 0x9295, 0x91ca, 0x9218, 0x52fd, 0x9296, 0x9297, - 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f, - 0x2f46, 0x52fd, 0x92a0, 0x92a1, 0x2f9a, 0x92b7, - /* 0x50 */ - 0x52fd, 0x9696, 0x9668, 0x9669, 0x968c, 0x966a, 0x966b, 0x966c, - 0x966d, 0x966e, 0x966f, 0x967f, 0x9684, 0x9670, 0x9671, 0x9685, - 0x9672, 0x9673, 0x9674, 0x9675, 0x9676, 0x52fd, 0x9677, 0x9678, - 0x9679, 0x967a, 0x967b, 0x967c, 0xfb1e, 0x9894, 0x99d5, 0x9b29, - 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d3e, 0x9d31, - 0x9d32, 0x9d33, 0x9d34, 0x9d35, 0x9e11, 0x0b53, 0x9fc0, 0xa142, - 0xa143, 0xa144, 0xa145, 0xa146, 0xa38c, 0xa38d, 0xa38e, 0xa38f, - 0xa390, 0xa391, 0xa563, 0xa564, 0xa565, 0x52fd, 0xfb4a, 0x52fd, - 0xa6f6, 0xa836, 0xa837, 0xa82c, 0xa838, 0xa839, 0x52fd, 0xa83a, - 0xa9e3, 0xa9e2, 0xa9f5, 0xab47, 0x52fd, 0xab48, 0xab49, 0xab4a, - 0xab4b, 0xab4c, 0xada8, 0xada9, 0xadaa, 0x52fd, 0xaf0b, 0xaf06, - 0xaf73, 0xaf0c, 0xaf0d, 0xaf0e, 0xaf0f, 0xaf10, - /* 0x51 */ - 0x52fd, 0xaf11, 0xfb62, 0xaf12, 0xaf14, 0xaf15, 0xaf16, 0x52fd, - 0xaf13, 0xaf17, 0xb1d9, 0xb1da, 0xb1db, 0x52fd, 0xb1dc, 0xb3a6, - 0xb3a7, 0xb3a8, 0xb3a9, 0xb3aa, 0xb3ab, 0x52fd, 0xfb6d, 0xb3ac, - 0xb3ad, 0xb3ae, 0x52fd, 0x52fd, 0xb3af, 0xb3b0, 0xb3b1, 0xb544, - 0xb545, 0xb5f7, 0xb5f8, 0xb76b, 0xb76c, 0xb761, 0xb812, 0xb8af, - 0xb8b0, 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b4, 0xb8b5, 0xb8b6, 0xb922, - 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0x0f3d, 0xbbed, 0xbc1b, 0xbc47, - 0xbce8, 0xbdd0, 0xbde7, 0xbde8, 0xbde9, 0xc14e, 0xc14f, 0xc150, - 0xc172, 0xc151, 0xc152, 0xfba7, 0x1026, 0xc153, 0xc154, 0xc155, - 0xc156, 0xc157, 0xc177, 0xc158, 0xc159, 0xc15a, 0xc15b, 0xc15c, - 0xc16e, 0xc15d, 0x1027, 0x52fd, 0xc15e, 0x1028, 0xc15f, 0x52fd, - 0xc4d7, 0xc689, 0xc68a, 0x52fd, 0xfbbe, 0xc68b, - /* 0x52 */ - 0xc68c, 0xc68d, 0xc68e, 0xfbbc, 0xc68f, 0x52fd, 0xc69a, 0xc690, - 0xc691, 0xc692, 0xc693, 0xca12, 0xc9f1, 0x52fd, 0xcafe, 0xcafb, - 0xcb57, 0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0x52fd, 0xcd4d, 0xcd59, - 0xcd4e, 0xcd4f, 0xcef4, 0xcf65, 0xd0a6, 0xd0a7, 0xd0a8, 0xd222, - 0xd223, 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd558, 0x52fd, 0xd559, - 0xd63b, 0xd63c, 0xd63d, 0xd63e, 0xd748, 0xd894, 0xd895, 0xd896, - 0xd897, 0xd898, 0xda7d, 0xd9fe, 0xda7e, 0xda7f, 0x52fd, 0xdb5b, - 0xdb5c, 0xdce4, 0xdcc1, 0xdcfd, 0xdcc2, 0xdcd6, 0xdcc3, 0xdcc4, - 0x52fd, 0xdcdc, 0xdcc5, 0xdcc6, 0xdcc7, 0xdce1, 0xdcc8, 0xdcc9, - 0xdcca, 0xdccb, 0x47f2, 0xdccc, 0xdccd, 0xe035, 0xe036, 0xe047, - 0xe037, 0xe21b, 0xe21c, 0xe21d, 0xe21e, 0xe21f, 0xe220, 0xe27b, - 0xe27a, 0xe2fe, 0xe3c6, 0xe3c7, 0xe3c8, 0xe3c9, - /* 0x53 */ - 0xe3ca, 0x52fd, 0xe7a0, 0xe7a1, 0xe8cc, 0xe8cd, 0xe9f1, 0xe9d7, - 0xeb42, 0xeb46, 0xeba3, 0xeba5, 0xeba6, 0xedcb, 0xedcc, 0xee26, - 0xee27, 0xee28, 0xee29, 0xefae, 0xefaf, 0xefb0, 0xf073, 0x52fd, - 0xf07c, 0xf074, 0x52fd, 0xf280, 0xf075, 0x4c79, 0x52fd, 0xf2cf, - 0x52fd, 0xf68f, 0x5970, 0x5385, 0x5697, 0x56f6, 0x56f7, 0x56f8, - 0x56fa, 0x56fb, 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x5834, 0x5835, - 0x58a2, 0x5914, 0x5911, 0x596e, 0x596f, 0x5b08, 0x5bb8, 0x5d09, - 0x5dbd, 0x5dbe, 0x5e88, 0x62fe, 0x1d7a, 0x62ff, 0x6300, 0x6301, - 0x6302, 0x6303, 0x6304, 0x6305, 0x6306, 0x52fd, 0x6307, 0x6308, - 0x6309, 0x630a, 0x630b, 0x630c, 0x630d, 0x630e, 0x630f, 0x52fd, - 0x52fd, 0x52fd, 0x652c, 0x676b, 0x52fd, 0x676c, 0x6787, 0x676d, - 0x6878, 0x698b, 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, - /* 0x54 */ - 0x6bbe, 0x6ba8, 0x6ba9, 0x6baa, 0x6b8d, 0x6bab, 0x6bac, 0x6bbf, - 0x52fd, 0x032c, 0x6bad, 0x6bae, 0x6ca4, 0x6ca5, 0x6dc7, 0x6dc8, - 0x6dc9, 0xd0bc, 0x6dca, 0x6dcb, 0x6dcc, 0x6dcd, 0x6dce, 0x6f19, - 0x6fe6, 0x724c, 0x724d, 0x724e, 0x7306, 0x52fd, 0x75cd, 0x75ce, - 0x75cf, 0x75d0, 0x245c, 0x7881, 0x7882, 0x5833, 0x7b6a, 0x7b6b, - 0x7bb2, 0x7b6c, 0x7b6d, 0x7bcc, 0x7bae, 0x7bb3, 0x7b91, 0x52fd, - 0x7b6e, 0x7bb4, 0x7b6f, 0x80c9, 0x80a7, 0x80a8, 0x80a9, 0x80aa, - 0x80ab, 0x80ac, 0x80ad, 0x80ae, 0x80af, 0x80b0, 0x8060, 0x80b1, - 0x81e1, 0x82e3, 0x82f6, 0x26d9, 0x85af, 0x85b0, 0x85b1, 0x85ba, - 0x85b2, 0x85b3, 0x864c, 0x52fd, 0x86a0, 0x86a1, 0x89b0, 0x89b1, - 0x89b2, 0x89b3, 0x89b4, 0xfaeb, 0x89b5, 0x89b6, 0x89b7, 0x89b8, - 0x89b9, 0x89ba, 0x2b72, 0x89bb, 0x89bc, 0x89bd, - /* 0x55 */ - 0x89be, 0x89bf, 0x89df, 0x89c0, 0x89c1, 0x89c2, 0x89c3, 0x89c4, - 0x2b78, 0x52fd, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, - 0x8a3c, 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, - 0x2c5a, 0x8c1d, 0x8c1e, 0x8d64, 0x8d65, 0x8dc5, 0x8dc6, 0x8dc7, - 0x8dff, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x92f5, 0x935c, 0x92f6, - 0x92f7, 0x92b0, 0x92f8, 0x92f9, 0x935d, 0x9350, 0x92fa, 0x92fb, - 0x92a2, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0xfb13, 0x9300, 0xfb1f, - 0x96c1, 0x96c2, 0x96c3, 0x96c4, 0x96c5, 0x96c6, 0x96c7, 0x96c8, - 0x96c9, 0x96ca, 0x96cb, 0xe3ef, 0x96d7, 0x96cc, 0x96cd, 0x96ce, - 0x9722, 0x96cf, 0x96d0, 0x52fd, 0x96d1, 0x96d2, 0x96e9, 0x96d3, - 0x96d4, 0x96d5, 0x9838, 0x633b, 0x9b7d, 0x586f, 0x9ba1, 0x9d53, - 0x9d54, 0x0afb, 0x9d55, 0x9d3c, 0x9d56, 0x52fd, - /* 0x56 */ - 0x9d66, 0x0afc, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, 0x9d5b, 0x9d67, - 0x9d5c, 0x52fd, 0x52fd, 0x9d6a, 0x9d5d, 0x9d3d, 0x9d5e, 0x9d65, - 0x9fe1, 0x9fcd, 0xf311, 0xa16f, 0xa170, 0xa31a, 0xa39a, 0xa39b, - 0xa39c, 0xa39e, 0xa39f, 0xfb3f, 0xa58e, 0x52fd, 0xa6fd, 0x52fd, - 0xa85e, 0xa85f, 0xa860, 0xa865, 0xa867, 0xa868, 0xa869, 0x52fd, - 0xa86a, 0xa88f, 0xa86b, 0xa86c, 0xa86d, 0xa9f7, 0xa9f8, 0xa9f9, - 0xa9e4, 0xa9fa, 0xabb1, 0xab75, 0xab76, 0xacff, 0xad00, 0xad01, - 0xad02, 0xad03, 0xadae, 0xadad, 0xaf51, 0xaf52, 0x52fd, 0xaf53, - 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, 0xaf5a, 0xaf5b, - 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xaf62, 0xaf63, - 0xaf64, 0xaf4c, 0xaf66, 0xb1f1, 0xb1f2, 0xb3f2, 0xb3f3, 0xb3f4, - 0xb3f5, 0xb3f6, 0xb3f7, 0xb3f8, 0xb3f9, 0xb3fa, - /* 0x57 */ - 0xb54c, 0xb54b, 0xb61b, 0xb6ce, 0xb6b3, 0xb77f, 0xfb79, 0xfb7c, - 0xb81a, 0xb8c4, 0xb8c5, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0x52fd, - 0xbb19, 0xbb1c, 0xbb1a, 0xbc4c, 0xbc8e, 0xbd7e, 0xc1eb, 0xc1ec, - 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f0, 0xc1f1, 0xc1d8, 0xc1d9, 0xc1da, - 0xc1db, 0xc1f2, 0xc1f3, 0xc1f4, 0xc207, 0x52fd, 0xfbac, 0x52fd, - 0xc1f5, 0xc215, 0x52fd, 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, 0xc1fa, - 0xc1fb, 0xc1fc, 0xc1fd, 0xc1fe, 0xc2a7, 0xc1ff, 0xc200, 0xc201, - 0xc202, 0xc203, 0xc204, 0xc205, 0xc4e9, 0xc4ea, 0xc4eb, 0xc6de, - 0xc6df, 0x52fd, 0xc6e0, 0xc6e1, 0xc6e2, 0xc6e3, 0xca3e, 0xca3f, - 0xca40, 0xca41, 0xcb71, 0xcb72, 0xcb73, 0xcd88, 0xcd89, 0xcd8a, - 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92, - 0x52fd, 0xcff1, 0xd0be, 0xd0bf, 0xd0c0, 0xd0c1, - /* 0x58 */ - 0xd0c2, 0xd0c3, 0xd16e, 0xd237, 0xd257, 0xd238, 0xd239, 0xd23a, - 0xd23b, 0xd23c, 0xd23d, 0xd23e, 0xd227, 0xd23f, 0x52fd, 0x52fd, - 0xd3c0, 0xd3c1, 0x44be, 0xd567, 0x52fd, 0xd568, 0xd658, 0xd665, - 0xd659, 0xd65a, 0xd724, 0xd8cd, 0xd8ce, 0xd8cf, 0xd8d2, 0xda9f, - 0xda22, 0xdb7d, 0xdb7e, 0xdcff, 0xdd25, 0xdd00, 0xdd01, 0x483b, - 0xdd02, 0xdd03, 0xdd04, 0x5128, 0xdd05, 0xdd06, 0xdd07, 0xdd16, - 0xdd08, 0xdd17, 0xdd09, 0xdd0a, 0x4840, 0xdd0b, 0xdd0c, 0xdd29, - 0x483a, 0xdd0d, 0x52fd, 0xdd0e, 0xdd10, 0xdd11, 0xdd1d, 0xdd12, - 0xdd13, 0x52fd, 0xdd14, 0xdd15, 0xdf8d, 0xe054, 0xe055, 0xe056, - 0xe233, 0xe234, 0xe235, 0xe236, 0xe2fa, 0xe3e3, 0xe3e6, 0xe3ed, - 0xe3e7, 0xe3e8, 0xe3e9, 0xe3ea, 0xe3eb, 0xe527, 0xe520, 0xfbf8, - 0xe72a, 0xe7c9, 0x52fd, 0xe7ca, 0xe7cb, 0xe7d9, - /* 0x59 */ - 0xe7cc, 0xe7cd, 0xe7ce, 0x52fd, 0xe8e1, 0xea1b, 0xea1c, 0xea1d, - 0xea1e, 0xeb47, 0xebd1, 0xebc9, 0xedd0, 0xedd1, 0xee3f, 0xee40, - 0xee41, 0xfc09, 0xee42, 0xefc4, 0xf09b, 0xf092, 0xf093, 0x4c96, - 0xf094, 0xf095, 0x52fd, 0x52fd, 0xf2f3, 0xf2f4, 0xf2f5, 0xf2f6, - 0xf560, 0xf59e, 0xf5a0, 0xf5a1, 0xf61c, 0xf69f, 0x5356, 0x5712, - 0x571f, 0x5715, 0x5716, 0x5717, 0xfa0c, 0x5718, 0x57c2, 0x57c3, - 0x57c4, 0x58a1, 0x591b, 0x591c, 0x5971, 0x5b13, 0x5e17, 0x5e8f, - 0x635f, 0x6360, 0x63ac, 0x52fd, 0x52fd, 0x6361, 0x6362, 0x6363, - 0x6364, 0x6365, 0x52fd, 0x6799, 0x679a, 0x679b, 0x679c, 0x679d, - 0x679e, 0x679f, 0x67a0, 0x6bda, 0x6bdb, 0x6bdc, 0x6bdd, 0x6bde, - 0x6bdf, 0x6dd5, 0x6dd6, 0x6dd7, 0x6dd8, 0x6de0, 0x6eb4, 0x52fd, - 0x726e, 0x726f, 0x7270, 0x7463, 0x52fd, 0x75d5, - /* 0x5a */ - 0x75d6, 0x75d7, 0x75d8, 0x7730, 0x7bb5, 0x7bb6, 0x7bc1, 0x7bf7, - 0x05a0, 0x7bcb, 0x7be8, 0x52fd, 0x7be9, 0x7bb7, 0x7d15, 0x80e6, - 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80eb, 0xfaca, 0x830b, 0x830c, - 0x8364, 0x85d4, 0x85d5, 0x85d6, 0x85d8, 0x86a5, 0x535b, 0x8a0f, - 0x8a10, 0x52fd, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15, 0x8a16, - 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a2f, 0x8a1b, 0x8a1c, 0x8a3f, - 0x8a1d, 0x8a1e, 0x8a2c, 0x8a1f, 0x8c24, 0x8ca4, 0x8ca5, 0xb551, - 0x8dfe, 0x8f11, 0x8f12, 0x8f13, 0x8f54, 0x935e, 0x9321, 0x933f, - 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9320, 0x9345, 0x52fd, - 0x9346, 0x93b0, 0x9347, 0x9357, 0x9301, 0x93b1, 0x935a, 0x9348, - 0x9704, 0x9705, 0x31f5, 0x974f, 0x9750, 0x9706, 0x9707, 0x9708, - 0x9709, 0x970a, 0x970b, 0x970c, 0x970d, 0x970e, - /* 0x5b */ - 0x970f, 0x9710, 0x9711, 0x9833, 0x9834, 0x9835, 0x98fc, 0x98fd, - 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x0b01, 0x9d7b, 0x9d7c, 0x9d7d, - 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x9d82, 0x9ef9, 0x9fda, 0xa1a1, - 0x52fd, 0x52fd, 0xa3ad, 0xa3ae, 0x52fd, 0xa5c8, 0xa5c9, 0xa5ca, - 0xa882, 0xa883, 0xa884, 0xa885, 0xa886, 0xa887, 0xa888, 0xa889, - 0xa88a, 0x52fd, 0xaa07, 0xaa08, 0xaa01, 0xaa09, 0xaa02, 0xaa0a, - 0xaa0b, 0xaa0c, 0xaba7, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, - 0x3950, 0xab9d, 0xad1a, 0xadb2, 0xafb0, 0xafb1, 0x3b14, 0xafb2, - 0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafc0, 0xafb7, 0xafb8, 0xafb9, - 0xafba, 0xb01d, 0xb20c, 0xb20d, 0xb20e, 0xb235, 0xb20f, 0xb210, - 0xb211, 0xb212, 0xb422, 0xb423, 0xb424, 0x52fd, 0xb425, 0xb426, - 0xb427, 0xb428, 0xb429, 0xb42a, 0xb42b, 0xb42c, - /* 0x5c */ - 0xb42d, 0xb42e, 0xb552, 0xb553, 0xb619, 0xb6bf, 0xb78b, 0xb78c, - 0xb823, 0xb824, 0xb8f1, 0xb8d8, 0xfb7f, 0xbb4e, 0xbb4f, 0xbb55, - 0xbb50, 0xbb51, 0xbb52, 0xbb53, 0xbb02, 0xbb54, 0xbbf1, 0xbc24, - 0xbdd1, 0xc27c, 0xc27d, 0xc27e, 0xc27f, 0xc280, 0xc29f, 0xc281, - 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc29b, - 0xc289, 0xc28a, 0xc28b, 0xc28c, 0x52fd, 0xc2a1, 0xc28d, 0xc28e, - 0xc4f3, 0xc4f4, 0xc4f5, 0xc724, 0xc725, 0xc726, 0xc727, 0xc728, - 0xc729, 0xc72a, 0x52fd, 0xc72b, 0xc8cd, 0xc901, 0x788d, 0xca70, - 0xcb80, 0xcb81, 0xcdc0, 0xcdc1, 0xcdc2, 0xcdc3, 0xcdc4, 0xcdc5, - 0xcdc6, 0xcdc7, 0xcdc8, 0xcffe, 0x52fd, 0xd0d9, 0xd0dc, 0xd0da, - 0xd175, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd3ec, 0x131a, - 0xd3f3, 0xd572, 0xd573, 0xd682, 0xd683, 0xd72a, - /* 0x5d */ - 0xd72b, 0xd72c, 0xd72d, 0xd8f6, 0xd900, 0xd8f7, 0xd8f8, 0xd8f9, - 0x52fd, 0xdb94, 0xdb95, 0xdb96, 0xdc1b, 0xdd86, 0xdd4c, 0xdd4d, - 0xdd83, 0x52fd, 0xdd82, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, 0xdd81, - 0x4887, 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0x52fd, 0xdd56, 0xdd57, - 0x4885, 0xdd58, 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, - 0xdd61, 0xdd7c, 0xdd62, 0x143c, 0x52fd, 0xdd63, 0xdd64, 0xe073, - 0xe245, 0xe246, 0xe247, 0xe24c, 0xe312, 0x52fd, 0xe313, 0xe439, - 0xe403, 0xe40d, 0xe530, 0xe5d5, 0xe6c0, 0xe7f2, 0xe7f3, 0xe7f4, - 0xe7f5, 0xe7f6, 0xe7f7, 0xe8fa, 0xe8fb, 0xea45, 0xea46, 0xeb49, - 0xebe7, 0xebe8, 0xedd8, 0xedd9, 0xee55, 0xee56, 0xee57, 0xefda, - 0xefdb, 0xefdc, 0xf0b8, 0xf0b9, 0xf0ba, 0x4cb1, 0xf0bb, 0xf289, - 0xf0bc, 0xf330, 0xf331, 0xf332, 0xf333, 0x52fd, - /* 0x5e */ - 0xf334, 0xf335, 0xf336, 0x4e47, 0xf337, 0xf5b2, 0xf690, 0xf626, - 0xf6a2, 0xf738, 0x52fd, 0x572e, 0x52fd, 0x572f, 0x5730, 0x572a, - 0x572b, 0x57c9, 0x5837, 0x5920, 0x5972, 0x5b1f, 0x5c65, 0x5cca, - 0x5dc0, 0x5dc1, 0x5dc2, 0x63b7, 0x63b8, 0x63b9, 0x63ba, 0x63bb, - 0x52fd, 0x52fd, 0x63bc, 0x63bd, 0x63be, 0x63f2, 0x67b5, 0x67b7, - 0x67b8, 0x63df, 0x67b9, 0x67d5, 0x67ba, 0x67bb, 0x684a, 0x6bf2, - 0x6bf3, 0x6bf4, 0x6bfa, 0x6bf5, 0x6c02, 0x6de2, 0x6de3, 0x728e, - 0x728b, 0x75e4, 0x75eb, 0x75e5, 0x7735, 0x7893, 0x7bea, 0x7beb, - 0x52fd, 0x7bec, 0x7bed, 0x7c17, 0x7bee, 0x7bef, 0x7bf0, 0x810e, - 0x810f, 0x8110, 0x8119, 0x8118, 0x8111, 0x8112, 0x8113, 0xfac7, - 0x8114, 0x8115, 0x066b, 0x8116, 0x8365, 0x85ea, 0x85eb, 0x85ec, - 0x85ed, 0x52fd, 0x85ee, 0x86ac, 0x8ac2, 0x8a69, - /* 0x5f */ - 0x8a81, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, - 0x07f4, 0x8a71, 0x8a72, 0x8a73, 0x8a8c, 0x8a74, 0x8a75, 0x8a76, - 0x8f24, 0x8f2a, 0x938e, 0x93af, 0x938f, 0x9390, 0x9391, 0x52fd, - 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, - 0x939a, 0x939b, 0x939c, 0x9739, 0x973b, 0x973a, 0x973c, 0x973d, - 0x973e, 0x973f, 0x9770, 0x9740, 0x9741, 0x9bc0, 0x9bc1, 0x9da4, - 0x9d97, 0x9da5, 0x9d98, 0x9d99, 0x9d9a, 0x52fd, 0x9d9b, 0x9da6, - 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0xddce, 0x9dc8, 0x9da0, 0x9e19, - 0x9f0d, 0xa3bf, 0xa5e9, 0xa5ea, 0xa8a2, 0xa8a3, 0xa8a4, 0xa8a5, - 0xa8a6, 0xaa15, 0xaa17, 0xabbf, 0xabc0, 0xabc1, 0xabc2, 0xabc3, - 0xabc4, 0xabc5, 0x6c0d, 0xad23, 0xadbe, 0xb003, 0xb004, 0xb005, - 0xb006, 0xb007, 0xb008, 0xb009, 0xb00a, 0xb00b, - /* 0x60 */ - 0xb00c, 0xb020, 0xb00d, 0xb00e, 0xb00f, 0x52fd, 0xb226, 0xb227, - 0xb228, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xb461, 0xb462, 0xb463, - 0xb464, 0xb465, 0xb557, 0xb6cf, 0xb6d0, 0xb799, 0xb79a, 0xb8ea, - 0xb8eb, 0xb8ec, 0xbb7e, 0xbb7f, 0xbb80, 0x52fd, 0x52fd, 0xbb81, - 0xbb82, 0xbbf3, 0xbc25, 0xbc9f, 0xbca0, 0xbcf3, 0xbd00, 0xc2eb, - 0xc2ec, 0xc2ed, 0xc2ee, 0xc2ef, 0x52fd, 0x105c, 0xc2f0, 0xc2f1, - 0xc2f2, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f9, 0xc2fa, 0xc2fb, 0xc2fc, - 0xc2fd, 0xc2fe, 0xc2ff, 0xc300, 0xfbae, 0xc301, 0xc302, 0xc503, - 0xc786, 0xc779, 0x52fd, 0xc77a, 0xc77b, 0xc77c, 0xc784, 0xc77d, - 0xc77e, 0xc77f, 0xca86, 0xca87, 0xcb00, 0xcb01, 0xcb88, 0xcb89, - 0xcb8a, 0xcdf5, 0x52fd, 0xce25, 0xcdf6, 0xd0eb, 0xd0ec, 0xd0ed, - 0xd0ee, 0x1287, 0xd0ef, 0xd0f0, 0xd26c, 0xd421, - /* 0x61 */ - 0xd422, 0xd423, 0xd424, 0xd425, 0xd426, 0xd57b, 0xd57c, 0xd691, - 0xd692, 0xd693, 0xd90e, 0xd90f, 0xd910, 0xdbb3, 0xdc36, 0xddc6, - 0xdda1, 0xdda2, 0x48b9, 0xdda3, 0xddcc, 0xdda4, 0xdda5, 0xdda6, - 0xddcb, 0xdda7, 0x52fd, 0xdda8, 0xdda9, 0xddaa, 0x52fd, 0xddab, - 0xddac, 0xddad, 0x48bf, 0xddae, 0xddaf, 0xddb0, 0xe08c, 0xe08d, - 0xe08e, 0xfbf1, 0xe092, 0xe08f, 0xe252, 0xe253, 0xe254, 0xe255, - 0xe429, 0x52fd, 0xe5f3, 0xe5f4, 0xe80d, 0xe80e, 0xe80f, 0xe810, - 0xe914, 0xea71, 0xea72, 0xec0f, 0xec04, 0xec06, 0x52fd, 0xec07, - 0xeddc, 0xeddd, 0xee6d, 0xee79, 0xee6e, 0x52fd, 0xefec, 0xf0dd, - 0xf0de, 0xf0df, 0xf0e0, 0xf0e1, 0xf0e2, 0xf0e3, 0xf0e4, 0xf13a, - 0xf0e5, 0x4ccf, 0xf0e6, 0xf36b, 0xf36c, 0x974e, 0x4e64, 0xf5bd, - 0xf5be, 0xf5bf, 0xf634, 0x4fbf, 0xf812, 0x5740, - /* 0x62 */ - 0x5741, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406, 0x67d7, 0x67cc, - 0x6998, 0x6c06, 0x6c07, 0x6caf, 0x6cb0, 0x6dea, 0x6df2, 0x72a2, - 0x72a3, 0x72a4, 0x7476, 0x75f5, 0x75f6, 0x75f7, 0x52fd, 0x7c3b, - 0x7c25, 0x7c3a, 0x7c3c, 0x7c3d, 0x7c3e, 0x8137, 0x8138, 0x8139, - 0x813a, 0x813b, 0x813c, 0x813d, 0x813e, 0x813f, 0x814b, 0x52fd, - 0x8140, 0x8322, 0x8367, 0x83d3, 0x85fa, 0x52fd, 0x8abc, 0x52fd, - 0x52fd, 0x8aa5, 0x0807, 0x8ab6, 0x52fd, 0x8aa6, 0x8abb, 0x8aa7, - 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8abf, 0x8aad, 0x8aae, - 0x8aaf, 0x8c2e, 0x8e00, 0x939d, 0x939e, 0x93cb, 0x93cc, 0x93cd, - 0x93ce, 0x93cf, 0x52fd, 0x939f, 0x93d0, 0x93d1, 0x93d2, 0x93d3, - 0x93d4, 0x52fd, 0x52fd, 0x975d, 0x975e, 0x975f, 0x9760, 0x0b05, - 0x9dba, 0x9dbc, 0x0b06, 0x9db5, 0x9dbd, 0x9db6, - /* 0x63 */ - 0x9db7, 0x9db8, 0x9da8, 0xfb32, 0x9efe, 0x9efc, 0xa1e1, 0xa3c4, - 0xa3c5, 0xa614, 0xa8ae, 0xa8af, 0xa8b0, 0xa8b1, 0xa8b9, 0xabe7, - 0xb046, 0x52fd, 0xb047, 0xb048, 0xb049, 0xb01e, 0xb01f, 0xb04a, - 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0x52fd, 0xb246, 0xb24b, 0xb490, - 0xb491, 0x52fd, 0xb492, 0xb493, 0xb494, 0xb55b, 0xb8f2, 0xb8f8, - 0xb8f9, 0xbb94, 0xbba4, 0xbb97, 0xbb98, 0xbc29, 0xbcae, 0xbdaf, - 0xc359, 0xc35a, 0x52fd, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, - 0xc360, 0xc361, 0xc2aa, 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, - 0xc367, 0xc368, 0xc369, 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, - 0xc36f, 0x52fd, 0xc7b2, 0xc7b3, 0xc7b4, 0x10f9, 0xc7b5, 0xc7b6, - 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xca88, 0x42b8, 0xce19, - 0xce1a, 0xce1b, 0xcf16, 0xd10c, 0xd10d, 0xd10e, - /* 0x64 */ - 0xd10f, 0x52fd, 0xd283, 0xd284, 0xd285, 0xd583, 0xd584, 0xd6b0, - 0x52fd, 0xd926, 0xd927, 0xd936, 0xd928, 0xd929, 0x52fd, 0x52fd, - 0xdde7, 0xdde8, 0xdde9, 0x1453, 0xddea, 0xddeb, 0x52fd, 0xddec, - 0xdded, 0xddee, 0xddef, 0xddf0, 0xddf1, 0xde0c, 0xddf2, 0xddf3, - 0xddf4, 0xddf5, 0xddf6, 0xddf7, 0xddf8, 0xe0a3, 0xe0a4, 0xe0a5, - 0xe0a6, 0xe0a7, 0x52fd, 0xe25c, 0x52fd, 0xe44b, 0xe4e1, 0xe615, - 0x52fd, 0xe616, 0xe617, 0xe82c, 0xe82d, 0xe922, 0xe923, 0xea96, - 0xea97, 0x52fd, 0xec2e, 0xec30, 0xec31, 0x52fd, 0xeddf, 0xee8b, - 0xee8c, 0x52fd, 0xee8d, 0xeffc, 0xeffd, 0xeffe, 0xefff, 0xf117, - 0xf12d, 0xf118, 0x4cf3, 0xf119, 0x52fd, 0xf112, 0xf11a, 0xf11b, - 0xf11c, 0x1669, 0x52fd, 0xf397, 0x16e5, 0xf398, 0xf399, 0x52fd, - 0xf6c4, 0x574f, 0x57cd, 0x5dc7, 0x641c, 0x641d, - /* 0x65 */ - 0x641e, 0x67e7, 0x67e9, 0x67ea, 0x67eb, 0x6c15, 0x6ff1, 0x6ff2, - 0x72b6, 0x78a0, 0x7c4a, 0x7d20, 0x8160, 0x8161, 0x8141, 0x8162, - 0x8603, 0x8604, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, 0x52fd, - 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x0812, 0x8ae3, 0x52fd, - 0x8f31, 0x9405, 0x9406, 0x9407, 0x9772, 0x978a, 0x978b, 0x9788, - 0x52fd, 0x978c, 0x978d, 0x978e, 0x978f, 0x9790, 0x9842, 0x9843, - 0x52fd, 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0xa3cb, 0xa622, 0x52fd, - 0x52fd, 0xa8c3, 0xa8c4, 0xa8c5, 0xa8c6, 0xaa1e, 0xaa25, 0xabf3, - 0xabf4, 0x52fd, 0xabf5, 0xad38, 0xad48, 0xadca, 0x3b4f, 0xb07a, - 0xb07b, 0xb255, 0xb256, 0xb4b1, 0xb4b2, 0xb4b3, 0x52fd, 0xb4b4, - 0xb4b5, 0xb7a4, 0xb900, 0xb901, 0xb902, 0xbbac, 0x52fd, 0xbcb3, - 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, 0xc3ba, 0xc3bb, - /* 0x66 */ - 0xc3bc, 0xc3bd, 0xc3be, 0xc3bf, 0xc3c0, 0xc3c1, 0xc3c2, 0xc3c3, - 0xc3c4, 0xc3c5, 0xc3c6, 0xc3c7, 0xc7e3, 0xc7e4, 0xc7e5, 0xc7e6, - 0xc7e7, 0x52fd, 0xcab5, 0xcaa1, 0xcb95, 0xce3b, 0xce3c, 0xce3d, - 0xce3e, 0xcf14, 0xd120, 0xd121, 0xd122, 0xd123, 0xd124, 0xd296, - 0xd297, 0xd298, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd58f, - 0xd590, 0xd6bc, 0xd73b, 0xd93d, 0x52fd, 0xdbdf, 0xdc1e, 0xde23, - 0xde24, 0xde49, 0xde25, 0xde26, 0xde27, 0xde28, 0x4925, 0xde29, - 0xde2a, 0xde2e, 0xde2f, 0xde4e, 0xde30, 0xfbeb, 0xde31, 0xde32, - 0xde33, 0xde34, 0xde35, 0xde36, 0x52fd, 0xde37, 0xde50, 0xde38, - 0x52fd, 0xde39, 0xde3a, 0xde3b, 0xde3c, 0xde3d, 0xde3e, 0xe0b8, - 0xe0b9, 0xe262, 0xe263, 0xe341, 0xe46d, 0x52fd, 0xe652, 0xe637, - 0xe6db, 0xe83f, 0xe934, 0xeb5b, 0xec46, 0xec5a, - /* 0x67 */ - 0xec5b, 0xede1, 0xede2, 0xede3, 0xede4, 0xeea7, 0xeea8, 0xeea9, - 0xf00f, 0xf02b, 0xf156, 0xf157, 0xf158, 0xf15e, 0xf159, 0xf15a, - 0xf15b, 0xf15c, 0x52fd, 0xf168, 0x52fd, 0xf42c, 0xf3e2, 0xf3f3, - 0xf5d2, 0xf656, 0xf6ce, 0xf761, 0xf99b, 0xf9b4, 0x575c, 0xfa10, - 0x57d2, 0x5871, 0x5973, 0x5b2c, 0x5e94, 0x52fd, 0x643f, 0x6440, - 0x67f9, 0x67fa, 0x67fd, 0x67fb, 0x6c1c, 0x6c1d, 0x6dff, 0x6e00, - 0x6ff7, 0x9ffe, 0x52fd, 0x77b6, 0x7c54, 0x8177, 0x8179, 0x817a, - 0x817b, 0x8369, 0x8b02, 0x8b03, 0x8b04, 0x8b05, 0x8b06, 0x8b07, - 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b35, 0x52fd, 0x8f39, 0x941e, - 0x941f, 0x9420, 0x9421, 0x52fd, 0x9422, 0x9423, 0x9424, 0x942c, - 0x97b3, 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x9dd0, 0x9ffa, 0xa207, - 0xa2bd, 0xa3d7, 0xa3d2, 0xa8db, 0xa8d6, 0x575d, - /* 0x68 */ - 0xad43, 0xadcf, 0xb0a3, 0xb0a4, 0xb0a5, 0xb0a6, 0xb0a7, 0xb0a8, - 0xb0a9, 0xb25d, 0xb25e, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb906, - 0xb907, 0x52fd, 0xbbc5, 0xbbf5, 0xbcb4, 0xbcb8, 0xbcb5, 0xc3fd, - 0x1077, 0xc3fe, 0xc3ff, 0xc400, 0xc401, 0xc402, 0xc403, 0xc409, - 0xc404, 0xc405, 0xc406, 0xc407, 0xc811, 0xc812, 0xc813, 0xc814, - 0xc815, 0x4277, 0xcb98, 0xcb99, 0xd13c, 0xd12d, 0xd12e, 0x52fd, - 0xd4bb, 0xd4bc, 0x1378, 0xd73d, 0xd947, 0xd948, 0xd949, 0xd94a, - 0xdae1, 0xdae7, 0xdbeb, 0xdc20, 0xdc38, 0xde62, 0xde67, 0xde68, - 0xde69, 0xde6a, 0xde6b, 0xde6d, 0xde6e, 0xde6f, 0xde70, 0xde71, - 0xde72, 0xde8f, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, 0xe0c9, - 0xe0ca, 0x4ae6, 0xe0cb, 0xe0cc, 0xe0cd, 0xe351, 0x52fd, 0x52fd, - 0xe545, 0xe859, 0xe85a, 0xe85b, 0xe940, 0xeacf, - /* 0x69 */ - 0xeb5e, 0xec7b, 0xed93, 0xeebc, 0xf016, 0xf030, 0x52fd, 0xf18d, - 0xf18e, 0x4d2f, 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193, 0xf194, - 0xf195, 0xf196, 0xf423, 0xf414, 0xf5db, 0xf70a, 0xf8ce, 0x5766, - 0x5768, 0x5767, 0x57d3, 0x6463, 0x6804, 0x699e, 0x6c26, 0x6c2a, - 0x7c6c, 0x7c64, 0x818f, 0x8190, 0x8334, 0x860e, 0x8b25, 0x8b26, - 0x8b27, 0x52fd, 0x8b28, 0x2c0c, 0x52fd, 0x8b29, 0x8b2a, 0x8b2b, - 0x8b2c, 0x8f3e, 0x9442, 0x9443, 0x9433, 0x97c1, 0x97c2, 0x97c3, - 0x9dd6, 0x9dd7, 0xa8e1, 0xa8e2, 0xaa2b, 0xadd1, 0xb0cc, 0xb0cd, - 0xb0ce, 0xb0cf, 0xb4de, 0xb4df, 0xb4e0, 0xb4e1, 0xbbf6, 0xc42c, - 0x52fd, 0xc454, 0xc42d, 0xc42e, 0xc841, 0xc842, 0xcac7, 0xcba0, - 0xcba1, 0xce70, 0xce71, 0xce72, 0x52fd, 0xd134, 0xd135, 0xd136, - 0xd2a6, 0xd4cc, 0x52fd, 0xd599, 0xdbf4, 0xde9b, - /* 0x6a */ - 0xde9e, 0xde9f, 0xdea0, 0xdea1, 0xdea2, 0xdea3, 0xdea4, 0xdea5, - 0xdea6, 0xdea7, 0xdea8, 0xe0db, 0xe0dc, 0xe0dd, 0xe0d7, 0xe0de, - 0xe0df, 0xe359, 0xe746, 0xe865, 0xe949, 0x52fd, 0xeadd, 0xec95, - 0xec96, 0xec97, 0xeed4, 0xeed6, 0xf026, 0x4d47, 0x1688, 0xf1c8, - 0xf1c5, 0xf1c6, 0xf1c7, 0xf451, 0xf452, 0xf453, 0xf454, 0xf455, - 0xf5de, 0x52fd, 0x576d, 0x57d5, 0x6472, 0x74ae, 0x760f, 0x7c6b, - 0x7c6d, 0x7c6e, 0x7c78, 0x8198, 0x8199, 0x819a, 0x8b44, 0x8b5c, - 0x8b45, 0x8e01, 0x9458, 0x9459, 0x945a, 0x52fd, 0x97d9, 0x97d6, - 0x9dda, 0x9ddf, 0x9ddb, 0xa003, 0xa8ef, 0x3836, 0xaa33, 0xadd2, - 0xb0e1, 0xb26f, 0xb564, 0xb90e, 0xc450, 0xc451, 0xc452, 0xc856, - 0xc857, 0xc858, 0x52fd, 0xce81, 0xce82, 0xcf1d, 0xcf1e, 0xd143, - 0xd2aa, 0xdbfd, 0x52fd, 0xdec6, 0xdec7, 0xded9, - /* 0x6b */ - 0xded7, 0x52fd, 0xdec8, 0xdec9, 0xdeca, 0xdecb, 0xdeda, 0x52fd, - 0xdecc, 0xdecd, 0xdece, 0xdecf, 0xded0, 0xded1, 0xdebc, 0xe0e1, - 0xe0e2, 0xe0e3, 0xe4a9, 0xe54e, 0xe877, 0x52fd, 0x52fd, 0xecac, - 0xecad, 0xedb6, 0xeee5, 0xf1f8, 0xf1ea, 0xf28d, 0xf1eb, 0xf495, - 0x576e, 0x57d8, 0x6483, 0x69a3, 0x6c30, 0x6e0f, 0x7c79, 0x7c7a, - 0x81a7, 0x81a8, 0x81a9, 0x81aa, 0x8619, 0x8b50, 0x8b51, 0x8b52, - 0x2c15, 0x8b68, 0x8b53, 0x8b54, 0x9be2, 0x9ddc, 0xac15, 0xac16, - 0xad4f, 0xb0f5, 0xb0f6, 0xb0f7, 0xb4f4, 0xb7cc, 0xb90f, 0xc466, - 0xc467, 0x52fd, 0xc468, 0xcba4, 0xce8b, 0xce8c, 0xd4fa, 0xdee6, - 0xdeed, 0xdeee, 0xdeef, 0xdef0, 0xdefe, 0xe0e7, 0xe0e8, 0xe4b3, - 0xe4e4, 0xe883, 0xedec, 0x52fd, 0xf216, 0x52fd, 0x52fd, 0xf217, - 0xf4c3, 0xf4ac, 0xf5ed, 0x52fd, 0x52fd, 0xf8b4, - /* 0x6c */ - 0x52fd, 0x648a, 0x648b, 0x6c34, 0x6e14, 0x72df, 0x77bb, 0x7c7f, - 0x7c81, 0x81ad, 0x81ae, 0x8b62, 0x8b6e, 0x52fd, 0x946e, 0x52fd, - 0x9a17, 0x9de6, 0x9f10, 0xac19, 0x52fd, 0xb910, 0xbdf2, 0xc476, - 0xc477, 0xce95, 0xce96, 0xdf00, 0xdf01, 0xdf31, 0xfbed, 0xdf1c, - 0xe36d, 0xeef4, 0xeef5, 0xf03d, 0xf232, 0xf233, 0xf5f4, 0x52fd, - 0x5773, 0x6c37, 0x52fd, 0x8b71, 0xb10f, 0x52fd, 0xb10e, 0xb911, - 0xc485, 0xdf14, 0xdf15, 0xdf16, 0xdf17, 0xdf18, 0xdf19, 0xdf1a, - 0xe4c3, 0xf242, 0xf243, 0xf244, 0xf248, 0xf4fb, 0x69a5, 0x6cb8, - 0x81b2, 0x833d, 0x8b72, 0x97e7, 0x97e8, 0xa659, 0xaa3a, 0xb114, - 0xb4ff, 0xbcc0, 0xc48d, 0x1084, 0xc48e, 0x52fd, 0xdf22, 0x52fd, - 0x52fd, 0xef04, 0xef29, 0xf251, 0xf266, 0xf50e, 0xfc13, 0x52fd, - 0x649b, 0x649c, 0x7616, 0x7c86, 0x7c87, 0x52fd, - /* 0x6d */ - 0xdf2c, 0xdf30, 0xdf28, 0xe95f, 0x52fd, 0x947e, 0xb119, 0xd50a, - 0xdf36, 0xe0fc, 0xf26d, 0xf26e, 0xf9c6, 0x1ab5, 0x8b7b, 0xb506, - 0xc89f, 0xf532, 0xd50d, 0x7c8b, 0xdf3b, 0x52fd, 0xf53d, 0xdf3c, - 0xdf3d, -}; - -static const ucs4_t cns11643_15_2uni_upages[253] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04300, 0x04400, - 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04c00, 0x04f00, - 0x05100, 0x05200, 0x05300, 0x05400, 0x05500, 0x05600, 0x05700, 0x05800, - 0x05a00, 0x05b00, 0x05c00, 0x05e00, 0x05f00, 0x06200, 0x06500, 0x06600, - 0x06700, 0x06800, 0x06900, 0x06a00, 0x06b00, 0x06c00, 0x06e00, 0x06f00, - 0x07000, 0x07100, 0x07300, 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, - 0x07900, 0x07a00, 0x07b00, 0x07c00, 0x07d00, 0x07f00, 0x08200, 0x08300, - 0x08600, 0x08700, 0x08900, 0x08a00, 0x08e00, 0x08f00, 0x09000, 0x09200, - 0x09300, 0x09400, 0x09500, 0x09600, 0x09b00, 0x09c00, 0x09d00, 0x09e00, - 0x09f00, 0x0fa00, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, - 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, - 0x20d00, 0x20e00, 0x20f00, 0x21000, 0x21100, 0x21200, 0x21300, 0x21400, - 0x21500, 0x21600, 0x21700, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, - 0x21d00, 0x21e00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, 0x22400, - 0x22500, 0x22600, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, - 0x22d00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23400, - 0x23500, 0x23600, 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, - 0x23d00, 0x23e00, 0x23f00, 0x24000, 0x24100, 0x24200, 0x24300, 0x24400, - 0x24500, 0x24600, 0x24700, 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, - 0x24d00, 0x24e00, 0x24f00, 0x25000, 0x25100, 0x25200, 0x25300, 0x25400, - 0x25500, 0x25600, 0x25700, 0x25800, 0x25900, 0x25a00, 0x25b00, 0x25c00, - 0x25d00, 0x25e00, 0x25f00, 0x26000, 0x26100, 0x26200, 0x26300, 0x26400, - 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, 0x26a00, 0x26b00, 0x26c00, - 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, 0x27200, 0x27300, 0x27400, - 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, 0x27c00, - 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, 0x28200, 0x28300, 0x28400, - 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, 0x28a00, 0x28b00, 0x28c00, - 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, 0x29200, 0x29300, 0x29400, - 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, 0x29a00, 0x29b00, 0x29c00, - 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a200, 0x2a300, 0x2a400, - 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, -}; - -static int -cns11643_15_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x6d)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 7169) - swc = cns11643_15_2uni_page21[i], - wc = cns11643_15_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_2.h b/jni/parted/libiconv/lib/cns11643_2.h deleted file mode 100755 index 535051a..0000000 --- a/jni/parted/libiconv/lib/cns11643_2.h +++ /dev/null @@ -1,1111 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 2 - */ - -static const unsigned short cns11643_2_2uni_page21[7650] = { - /* 0x21 */ - 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47, - 0x4e8d, 0x56d7, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, 0x4e2e, - 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, 0x53b9, - 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, 0x6bcc, - 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, 0x4ee1, - 0x4edd, 0x4eda, 0x520c, 0x5209, 0x531c, 0x534c, 0x5722, 0x5723, - 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73, - 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x6c36, - 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a, - 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00, - 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04, - 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5210, 0x52a6, - /* 0x22 */ - 0x5322, 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, - 0x572a, 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, - 0x5977, 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, - 0x5c7e, 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, - 0x5fd4, 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, - 0x6259, 0x6260, 0x625a, 0x6265, 0x6537, 0x65ef, 0x65ee, 0x673e, - 0x6739, 0x6738, 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, - 0x6c46, 0x6c52, 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, 0x6c4c, - 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, 0x7a75, - 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, 0x897e, - 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, 0x9620, - 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, - /* 0x23 */ - 0x4f64, 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, - 0x4f33, 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, - 0x52ad, 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, - 0x5437, 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, - 0x543d, 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, - 0x56e5, 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, - 0x5940, 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, - 0x598f, 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, - 0x5c8f, 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, - 0x5c95, 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, - 0x5e8d, 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, - 0x5fed, 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, - /* 0x24 */ - 0x5fe3, 0x5ffa, 0x5fef, 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, - 0x6283, 0x628c, 0x628e, 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, - 0x627a, 0x6270, 0x6281, 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, - 0x65f0, 0x65f4, 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, 0x6759, - 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, 0x6bd0, - 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, 0x6c8f, - 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, 0x6c9c, - 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, 0x7263, - 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, 0x7395, - 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, 0x7595, - 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, 0x809c, - 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, - /* 0x25 */ - 0x828a, 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, - 0x90a5, 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, - 0x4e33, 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, - 0x4f74, 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, - 0x4f79, 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, - 0x4f82, 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, - 0x5232, 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, - 0x5392, 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, - 0x546b, 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, - 0x546f, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, - 0x56f9, 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, - 0x5780, 0x5775, 0x577b, 0x5773, 0x5774, 0x5762, - /* 0x26 */ - 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce, - 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1, - 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93, - 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf, - 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7, - 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19, - 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d, - 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x6034, - 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d, - 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214, - 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca, - 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, - /* 0x27 */ - 0x62b8, 0x653d, 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, - 0x6608, 0x65fb, 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, - 0x6610, 0x66f6, 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, - 0x677b, 0x6798, 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, - 0x679f, 0x6791, 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, - 0x6794, 0x6b25, 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, - 0x6ceb, 0x6cee, 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, - 0x6cd0, 0x6cc2, 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, 0x6cd2, - 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, 0x6d30, - 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, 0x7094, - 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, 0x7082, - 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, - /* 0x28 */ - 0x72c9, 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, - 0x73a1, 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, - 0x74e8, 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, - 0x76f1, 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, - 0x77f7, 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, - 0x7cfd, 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, - 0x8220, 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, - 0x82a7, 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, - 0x82a9, 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, - 0x866d, 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, - 0x8fd5, 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, - 0x963d, 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, - /* 0x29 */ - 0x4fd3, 0x4fb2, 0x4fc9, 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, - 0x4fbb, 0x4fb3, 0x4fdb, 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, - 0x4fec, 0x5244, 0x5249, 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, - 0x5396, 0x5399, 0x5398, 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf, - 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6, - 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0, - 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b, - 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4, - 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd, - 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db, - 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8, - 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, - /* 0x2a */ - 0x5cdb, 0x5cde, 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, - 0x5cd4, 0x5ccf, 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, - 0x5e21, 0x5e22, 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, - 0x5e9b, 0x5ea3, 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, - 0x6039, 0x6054, 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, - 0x605b, 0x604c, 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, - 0x6066, 0x606e, 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, - 0x630e, 0x6303, 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, - 0x6300, 0x6313, 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, - 0x6543, 0x65aa, 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, - 0x6626, 0x6622, 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, - 0x662e, 0x670f, 0x6710, 0x67c1, 0x67f2, 0x67c8, - /* 0x2b */ - 0x67ba, 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, - 0x67eb, 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, - 0x67ee, 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, - 0x67fc, 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, - 0x67c9, 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, - 0x6bb6, 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, - 0x6d2d, 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, - 0x6d04, 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, - 0x6d01, 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, - 0x6d2c, 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, - 0x70b1, 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, - 0x724a, 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, - /* 0x2c */ - 0x72e4, 0x72e8, 0x72eb, 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, - 0x73cc, 0x73c2, 0x73c8, 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, - 0x73eb, 0x73bf, 0x73c7, 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, - 0x74ec, 0x74ee, 0x752e, 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, - 0x76c4, 0x7708, 0x7703, 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, - 0x76fa, 0x77e7, 0x77e8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, - 0x780f, 0x780e, 0x7809, 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, - 0x7945, 0x7944, 0x79d5, 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80, - 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f, - 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d, - 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7, - 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, - /* 0x2d */ - 0x80e3, 0x80d9, 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, - 0x80e6, 0x80cd, 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, - 0x8307, 0x82e8, 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, - 0x82ec, 0x82e1, 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, - 0x82ea, 0x82e4, 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, - 0x867c, 0x8673, 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, - 0x8a04, 0x8a07, 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, - 0x90bd, 0x90bf, 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, - 0x91d4, 0x91d3, 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, - 0x501e, 0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, - 0x4ff4, 0x5033, 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, - 0x5020, 0x5027, 0x5035, 0x502f, 0x5031, 0x500e, - /* 0x2e */ - 0x515a, 0x5194, 0x5193, 0x51ca, 0x51c4, 0x51c5, 0x51c8, 0x51ce, - 0x5261, 0x525a, 0x5252, 0x525e, 0x525f, 0x5255, 0x5262, 0x52cd, - 0x530e, 0x539e, 0x5526, 0x54e2, 0x5517, 0x5512, 0x54e7, 0x54f3, - 0x54e4, 0x551a, 0x54ff, 0x5504, 0x5508, 0x54eb, 0x5511, 0x5505, - 0x54f1, 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, - 0x550b, 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, - 0x57c6, 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, - 0x57b9, 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, - 0x5a15, 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, - 0x5bad, 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, - 0x5cf1, 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, - 0x5eaa, 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, - /* 0x2f */ - 0x605a, 0x6067, 0x6041, 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, - 0x609d, 0x6083, 0x6095, 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, - 0x6219, 0x6246, 0x62f2, 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, - 0x6336, 0x6343, 0x63e4, 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, - 0x6341, 0x6334, 0x6358, 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, - 0x635a, 0x6351, 0x6338, 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, - 0x65c6, 0x65c3, 0x65c4, 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, - 0x6712, 0x6713, 0x681f, 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, - 0x684b, 0x684f, 0x6816, 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, - 0x682f, 0x684e, 0x6844, 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, - 0x6828, 0x682e, 0x684d, 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, - 0x6b2d, 0x6b31, 0x6b34, 0x6b6d, 0x8082, 0x6b88, - /* 0x30 */ - 0x6be6, 0x6be4, 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, - 0x6d63, 0x6d64, 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, - 0x6d6d, 0x6d6f, 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, - 0x6d67, 0x6d60, 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, - 0x6d2f, 0x6d68, 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, - 0x6d7b, 0x6d7d, 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, - 0x70cb, 0x7f39, 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, - 0x70cd, 0x70c5, 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, - 0x7278, 0x7277, 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, - 0x72f3, 0x72fb, 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, - 0x73e7, 0x73e3, 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, - 0x73da, 0x73d7, 0x73d8, 0x73e8, 0x74de, 0x74df, - /* 0x31 */ - 0x74f4, 0x74f5, 0x7521, 0x755b, 0x755f, 0x75b0, 0x75c1, 0x75bb, - 0x75c4, 0x75c0, 0x75bf, 0x75b6, 0x75ba, 0x768a, 0x76c9, 0x771d, - 0x771b, 0x7710, 0x7713, 0x7712, 0x7723, 0x7711, 0x7715, 0x7719, - 0x771a, 0x7722, 0x7727, 0x7823, 0x782c, 0x7822, 0x7835, 0x782f, - 0x7828, 0x782e, 0x782b, 0x7821, 0x7829, 0x7833, 0x782a, 0x7831, - 0x7954, 0x795b, 0x794f, 0x795c, 0x7953, 0x7952, 0x7951, 0x79eb, - 0x79ec, 0x79e0, 0x79ee, 0x79ed, 0x79ea, 0x79dc, 0x79de, 0x79dd, - 0x7a86, 0x7a89, 0x7a85, 0x7a8b, 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, - 0x7b10, 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, - 0x7b09, 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, - 0x7c85, 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, - 0x7d1f, 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, - /* 0x32 */ - 0x7f5e, 0x7f60, 0x7f5d, 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, - 0x7fc0, 0x8016, 0x803e, 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, - 0x8101, 0x80fb, 0x8100, 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, - 0x8344, 0x8319, 0x8351, 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, - 0x831c, 0x8322, 0x8342, 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, - 0x834d, 0x8316, 0x8324, 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, - 0x8345, 0x834c, 0x8353, 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, - 0x8653, 0x8652, 0x86a2, 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, - 0x8687, 0x8697, 0x8686, 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, - 0x86a1, 0x86a7, 0x8695, 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, - 0x8843, 0x8844, 0x886d, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, - 0x887f, 0x886f, 0x8883, 0x887e, 0x8874, 0x887c, - /* 0x33 */ - 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4, 0x8ca3, 0x8d76, 0x8d78, - 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3, 0x8ffe, 0x8ff5, 0x9002, - 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6, 0x90d6, 0x90e0, 0x90d9, - 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8, 0x90db, 0x90d7, 0x90dc, - 0x90e4, 0x9150, 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, - 0x965f, 0x96bc, 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, - 0x5061, 0x505e, 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, - 0x504d, 0x5041, 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, - 0x5069, 0x506b, 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, - 0x5057, 0x5051, 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, - 0x52d3, 0x532d, 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, - 0x5534, 0x552a, 0x5551, 0x5562, 0x5536, 0x5535, - /* 0x34 */ - 0x5530, 0x5552, 0x5545, 0x550c, 0x5532, 0x5565, 0x554e, 0x5539, - 0x5548, 0x552d, 0x553b, 0x5540, 0x554b, 0x570a, 0x5707, 0x57fb, - 0x5814, 0x57e2, 0x57f6, 0x57dc, 0x57f4, 0x5800, 0x57ed, 0x57fd, - 0x5808, 0x57f8, 0x580b, 0x57f3, 0x57cf, 0x5807, 0x57ee, 0x57e3, - 0x57f2, 0x57e5, 0x57ec, 0x57e1, 0x580e, 0x57fc, 0x5810, 0x57e7, - 0x5801, 0x580c, 0x57f1, 0x57e9, 0x57f0, 0x580d, 0x5804, 0x595c, - 0x5a60, 0x5a58, 0x5a55, 0x5a67, 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, - 0x5a50, 0x5a5f, 0x5a65, 0x5a6c, 0x5a53, 0x5a64, 0x5a57, 0x5a43, - 0x5a5d, 0x5a52, 0x5a44, 0x5a5b, 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, - 0x5a39, 0x5a4c, 0x5a70, 0x5a69, 0x5a47, 0x5a51, 0x5a56, 0x5a42, - 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1, 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, - 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c, 0x5d28, 0x5d0d, - /* 0x35 */ - 0x5d26, 0x5d25, 0x5d0f, 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, - 0x5e3e, 0x5e34, 0x5eb1, 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, - 0x5f38, 0x5f9b, 0x5f96, 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, - 0x60b0, 0x60ba, 0x60d3, 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, - 0x60c8, 0x60b1, 0x60db, 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, - 0x60c0, 0x6332, 0x6365, 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, - 0x63ad, 0x639d, 0x6397, 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, - 0x636e, 0x63af, 0x6375, 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, - 0x633b, 0x639f, 0x6378, 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, - 0x6553, 0x65cd, 0x6665, 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, - 0x6718, 0x6879, 0x6887, 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, - 0x68ab, 0x6956, 0x686f, 0x68a3, 0x68ac, 0x68a9, - /* 0x36 */ - 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877, 0x6892, 0x687c, 0x686b, - 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e, 0x689b, 0x6896, 0x688b, - 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b, 0x6891, 0x688c, 0x688a, - 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38, 0x6b91, 0x6b8f, 0x6b8d, - 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab, 0x6db4, 0x6db3, 0x6e74, - 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6, 0x6dd4, 0x6e00, 0x6dc8, - 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5, 0x6ddc, 0x6ddd, 0x6ddb, - 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0, 0x6dba, 0x6dd5, 0x6dc2, - 0x6dcf, 0x6dc9, 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, - 0x6de3, 0x6dbb, 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, - 0x70f0, 0x7104, 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, - 0x7100, 0x70f8, 0x70f6, 0x710b, 0x7102, 0x710e, - /* 0x37 */ - 0x727e, 0x727b, 0x727c, 0x727f, 0x731d, 0x7317, 0x7307, 0x7311, - 0x7318, 0x730a, 0x7308, 0x72ff, 0x730f, 0x731e, 0x7388, 0x73f6, - 0x73f8, 0x73f5, 0x7404, 0x7401, 0x73fd, 0x7407, 0x7400, 0x73fa, - 0x73fc, 0x73ff, 0x740c, 0x740b, 0x73f4, 0x7408, 0x7564, 0x7563, - 0x75ce, 0x75d2, 0x75cf, 0x75cb, 0x75cc, 0x75d1, 0x75d0, 0x768f, - 0x7689, 0x76d3, 0x7739, 0x772f, 0x772d, 0x7731, 0x7732, 0x7734, - 0x7733, 0x773d, 0x7725, 0x773b, 0x7735, 0x7848, 0x7852, 0x7849, - 0x784d, 0x784a, 0x784c, 0x7826, 0x7845, 0x7850, 0x7964, 0x7967, - 0x7969, 0x796a, 0x7963, 0x796b, 0x7961, 0x79bb, 0x79fa, 0x79f8, - 0x79f6, 0x79f7, 0x7a8f, 0x7a94, 0x7a90, 0x7b35, 0x7b3b, 0x7b34, - 0x7b25, 0x7b30, 0x7b22, 0x7b24, 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, - 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f, 0x7b32, 0x7b38, - /* 0x38 */ - 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3, 0x7d35, 0x7d3d, - 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29, 0x7d41, 0x7d47, - 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63, 0x7f95, 0x7f9c, - 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0, 0x7fd1, 0x7fc7, - 0x7fcf, 0x7fc9, 0x801f, 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, - 0x8118, 0x8125, 0x8119, 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, - 0x8121, 0x8115, 0x8127, 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, - 0x823a, 0x8234, 0x8232, 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, - 0x837a, 0x8373, 0x83a4, 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, - 0x8375, 0x8394, 0x83a9, 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, - 0x83aa, 0x838b, 0x837e, 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, - 0x837f, 0x83a6, 0x8387, 0x83ae, 0x8376, 0x8659, - /* 0x39 */ - 0x8656, 0x86bf, 0x86b7, 0x86c2, 0x86c1, 0x86c5, 0x86ba, 0x86b0, - 0x86c8, 0x86b9, 0x86b3, 0x86b8, 0x86cc, 0x86b4, 0x86bb, 0x86bc, - 0x86c3, 0x86bd, 0x86be, 0x8852, 0x8889, 0x8895, 0x88a8, 0x88a2, - 0x88aa, 0x889a, 0x8891, 0x88a1, 0x889f, 0x8898, 0x88a7, 0x8899, - 0x889b, 0x8897, 0x88a4, 0x88ac, 0x888c, 0x8893, 0x888e, 0x8982, - 0x89d6, 0x89d9, 0x89d5, 0x8a30, 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, - 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d, 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, - 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf, 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, - 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1, 0x9024, 0x900b, 0x9011, 0x901c, - 0x900c, 0x9021, 0x90ef, 0x90ea, 0x90f0, 0x90f4, 0x90f2, 0x90f3, - 0x90d4, 0x90eb, 0x90ec, 0x90e9, 0x9156, 0x9158, 0x915a, 0x9153, - 0x9155, 0x91ec, 0x91f4, 0x91f1, 0x91f3, 0x91f8, - /* 0x3a */ - 0x91e4, 0x91f9, 0x91ea, 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, - 0x9586, 0x9588, 0x967c, 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, - 0x976a, 0x9804, 0x98e5, 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, - 0x508b, 0x50a3, 0x5083, 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, - 0x5092, 0x5082, 0x5087, 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, - 0x53a7, 0x5591, 0x55a8, 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, - 0x5593, 0x5588, 0x558f, 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, - 0x557d, 0x558c, 0x55a6, 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, - 0x5829, 0x5837, 0x5819, 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, - 0x5848, 0x5825, 0x581c, 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, - 0x5839, 0x5838, 0x582d, 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, - 0x5a9f, 0x5a7a, 0x5aa2, 0x5a9e, 0x5a78, 0x5aa6, - /* 0x3b */ - 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae, 0x5a37, 0x5a84, 0x5a8a, - 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b, 0x5a7d, 0x5a8c, 0x5a9c, - 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd, 0x5bcb, 0x5bd4, 0x5bd1, - 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37, 0x5d43, 0x5d6b, 0x5d41, - 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e, 0x5d55, 0x5d33, 0x5d3a, - 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42, 0x5d39, 0x5d49, 0x5d38, - 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45, 0x5e44, 0x5e41, 0x5f58, - 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9, 0x60cc, 0x60e2, 0x60ce, - 0x60c4, 0x6114, 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, - 0x60f8, 0x60fc, 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, - 0x60ff, 0x6104, 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, - 0x63e5, 0x63e8, 0x63ef, 0x63c3, 0x649d, 0x63f3, - /* 0x3c */ - 0x63ca, 0x63e0, 0x63f6, 0x63d5, 0x63f2, 0x63f5, 0x6461, 0x63df, - 0x63be, 0x63dd, 0x63dc, 0x63c4, 0x63d8, 0x63d3, 0x63c2, 0x63c7, - 0x63cc, 0x63cb, 0x63c8, 0x63f0, 0x63d7, 0x63d9, 0x6532, 0x6567, - 0x656a, 0x6564, 0x655c, 0x6568, 0x6565, 0x658c, 0x659d, 0x659e, - 0x65ae, 0x65d0, 0x65d2, 0x667c, 0x666c, 0x667b, 0x6680, 0x6671, - 0x6679, 0x666a, 0x6672, 0x6701, 0x690c, 0x68d3, 0x6904, 0x68dc, - 0x692a, 0x68ec, 0x68ea, 0x68f1, 0x690f, 0x68d6, 0x68f7, 0x68eb, - 0x68e4, 0x68f6, 0x6913, 0x6910, 0x68f3, 0x68e1, 0x6907, 0x68cc, - 0x6908, 0x6970, 0x68b4, 0x6911, 0x68ef, 0x68c6, 0x6914, 0x68f8, - 0x68d0, 0x68fd, 0x68fc, 0x68e8, 0x690b, 0x690a, 0x6917, 0x68ce, - 0x68c8, 0x68dd, 0x68de, 0x68e6, 0x68f4, 0x68d1, 0x6906, 0x68d4, - 0x68e9, 0x6915, 0x6925, 0x68c7, 0x6b39, 0x6b3b, - /* 0x3d */ - 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95, 0x6bbd, 0x6bf0, - 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47, 0x6e1f, 0x6e49, - 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b, 0x6e3f, 0x6e41, - 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40, 0x6e51, 0x6e3b, - 0x6e03, 0x6e2e, 0x6e5e, 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, - 0x6e60, 0x6e71, 0x6e6b, 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, - 0x6e27, 0x6e78, 0x6e64, 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, - 0x6e35, 0x6e36, 0x6e5a, 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, - 0x7131, 0x7123, 0x7125, 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, - 0x711b, 0x724b, 0x725a, 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, - 0x7312, 0x730b, 0x7330, 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, - 0x732d, 0x7326, 0x7323, 0x7335, 0x730c, 0x742e, - /* 0x3e */ - 0x742c, 0x7430, 0x742b, 0x7416, 0x741a, 0x7421, 0x742d, 0x7431, - 0x7424, 0x7423, 0x741d, 0x7429, 0x7420, 0x7432, 0x74fb, 0x752f, - 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1, 0x75e6, 0x75dd, 0x75df, - 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da, 0x7746, 0x7747, 0x7744, - 0x774d, 0x7745, 0x774a, 0x774e, 0x774b, 0x774c, 0x77de, 0x77ec, - 0x7860, 0x7864, 0x7865, 0x785c, 0x786d, 0x7871, 0x786a, 0x786e, - 0x7870, 0x7869, 0x7868, 0x785e, 0x7862, 0x7974, 0x7973, 0x7972, - 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c, 0x7a04, 0x7a99, 0x7ae6, - 0x7ae4, 0x7b4a, 0x7b47, 0x7b44, 0x7b48, 0x7b4c, 0x7b4e, 0x7b40, - 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8, 0x7ca1, 0x7d58, 0x7d6f, - 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a, 0x7d4f, 0x7d6d, 0x7d5c, - 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51, 0x7d5f, - /* 0x3f */ - 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, - 0x7fd7, 0x8051, 0x804f, 0x8050, 0x80fe, 0x80d4, 0x8143, 0x814a, - 0x8152, 0x814f, 0x8147, 0x813d, 0x814d, 0x813a, 0x81e6, 0x81ee, - 0x81f7, 0x81f8, 0x81f9, 0x8204, 0x823c, 0x823d, 0x823f, 0x8275, - 0x833b, 0x83cf, 0x83f9, 0x8423, 0x83c0, 0x83e8, 0x8412, 0x83e7, - 0x83e4, 0x83fc, 0x83f6, 0x8410, 0x83c6, 0x83c8, 0x83eb, 0x83e3, - 0x83bf, 0x8401, 0x83dd, 0x83e5, 0x83d8, 0x83ff, 0x83e1, 0x83cb, - 0x83ce, 0x83d6, 0x83f5, 0x83c9, 0x8409, 0x840f, 0x83de, 0x8411, - 0x8406, 0x83c2, 0x83f3, 0x83d5, 0x83fa, 0x83c7, 0x83d1, 0x83ea, - 0x8413, 0x839a, 0x83c3, 0x83ec, 0x83ee, 0x83c4, 0x83fb, 0x83d7, - 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8, 0x86e2, 0x86e6, 0x86d3, - 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb, 0x86dc, - /* 0x40 */ - 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856, 0x8855, - 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6, 0x88bc, - 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998, 0x8997, - 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59, 0x8a40, - 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51, 0x8a4a, - 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe, 0x8cb0, - 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3, 0x8dcd, - 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8, 0x8dd7, - 0x8dc5, 0x8eef, 0x8ef7, 0x8efa, 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, - 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, - 0x8ee9, 0x902d, 0x9034, 0x902f, 0x9106, 0x912c, 0x9104, 0x90ff, - 0x90fc, 0x9108, 0x90f9, 0x90fb, 0x9101, 0x9100, - /* 0x41 */ - 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, 0x9162, 0x9160, - 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, 0x920f, 0x920c, - 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, 0x9227, 0x9202, - 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, 0x957b, 0x958d, - 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x9689, 0x9683, 0x9680, - 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c, 0x9770, 0x976e, - 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83, 0x4e84, 0x4eb6, - 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca, 0x50b4, 0x50c8, - 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb, 0x50c9, 0x50b6, - 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c, 0x55c3, 0x55db, - 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0, 0x55d4, 0x55c4, - 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5, - /* 0x42 */ - 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714, - 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855, - 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871, - 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5, - 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, 0x5ab7, 0x5ac0, 0x5aca, - 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, 0x5bd6, 0x5bd8, 0x5bd9, - 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, 0x5d65, 0x5d72, 0x5d6c, - 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, 0x5e4f, 0x5e4e, 0x5e4a, - 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, 0x5ecb, 0x5ec7, 0x5f40, - 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, 0x612b, 0x6145, 0x6136, - 0x6132, 0x612e, 0x6146, 0x612f, 0x614f, 0x6129, 0x6140, 0x6220, - 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, 0x63f1, - /* 0x43 */ - 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x6433, 0x6443, - 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423, 0x640c, - 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a, 0x641a, - 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e, 0x6421, - 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695, 0x6690, - 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966, 0x695f, - 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a, 0x6939, - 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935, 0x696c, - 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969, 0x6940, - 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c, 0x693b, - 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952, 0x692f, - 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, - /* 0x44 */ - 0x6b48, 0x6b41, 0x6b9b, 0x6bfb, 0x6bfc, 0x6bf9, 0x6bf7, 0x6bf8, - 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, 0x6e9f, 0x6e93, 0x6e94, - 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, 0x6ebd, 0x6ec1, 0x6e9e, - 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, 0x6ecf, 0x6eb2, 0x6ebe, - 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, 0x6e8e, 0x6e8d, 0x6ea4, - 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, 0x6e97, 0x6eae, 0x6ea3, - 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, 0x7141, 0x715d, 0x7162, - 0x7172, 0x7178, 0x716a, 0x7161, 0x7142, 0x7158, 0x7143, 0x714b, - 0x7170, 0x715f, 0x7150, 0x7153, 0x7144, 0x714d, 0x715a, 0x724f, - 0x728d, 0x728c, 0x7291, 0x7290, 0x728e, 0x733c, 0x7342, 0x733b, - 0x733a, 0x7340, 0x734a, 0x7349, 0x7444, 0x744a, 0x744b, 0x7452, - 0x7451, 0x7457, 0x7440, 0x744f, 0x7450, 0x744e, - /* 0x45 */ - 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe, 0x74fd, - 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603, 0x75f7, - 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6, 0x75ed, - 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f, 0x7760, - 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759, 0x776d, - 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895, 0x7885, - 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896, 0x787b, - 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19, 0x7a12, - 0x7a17, 0x7a15, 0x7a22, 0x7a13, 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, - 0x7a9e, 0x7aeb, 0x7b66, 0x7b64, 0x7b6d, 0x7b74, 0x7b69, 0x7b72, - 0x7b65, 0x7b73, 0x7b71, 0x7b70, 0x7b61, 0x7b78, 0x7b76, 0x7b63, - 0x7cb2, 0x7cb4, 0x7caf, 0x7d88, 0x7d86, 0x7d80, - /* 0x46 */ - 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, 0x7d83, 0x7d7c, - 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, 0x7f6b, 0x7f67, - 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, 0x7fdc, 0x8021, - 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, 0x8162, 0x8172, - 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x8144, 0x8161, 0x821d, - 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1, 0x843f, 0x8456, - 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451, 0x8440, 0x8486, - 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459, 0x8474, 0x8473, - 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434, 0x847a, 0x8443, - 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b, 0x842f, 0x8442, - 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c, 0x8452, 0x846f, - 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433, - /* 0x47 */ - 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450, - 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d, - 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6, - 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0, - 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, 0x89e1, 0x89e0, 0x89e2, - 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, 0x8a61, 0x8a3f, 0x8a77, - 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, 0x8a74, 0x8a7a, 0x8c3c, - 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, 0x8c86, 0x8c84, 0x8c85, - 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, 0x8d8e, 0x8d8f, 0x8d8d, - 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, 0x8de0, 0x8dec, 0x8df1, - 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, 0x8de7, 0x8df2, 0x8deb, - 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, 0x8f05, - /* 0x48 */ - 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x9044, 0x9049, - 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114, 0x910b, - 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a, 0x9266, - 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246, 0x926d, - 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261, 0x9270, - 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253, 0x924c, - 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692, 0x9693, - 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5, 0x9773, - 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac, 0x98f6, - 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab, 0x9b5b, - 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4, 0x50d7, - 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, - /* 0x49 */ - 0x50d3, 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, 0x51d8, 0x5280, - 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, 0x5615, 0x560c, - 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, 0x5602, 0x55fa, - 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, 0x5890, 0x5898, - 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, 0x5887, 0x5891, - 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, 0x588f, 0x58fe, - 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, 0x5ada, 0x5aed, - 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, 0x5ade, 0x5add, - 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x5be3, 0x5c63, 0x5d82, - 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77, 0x5d8a, 0x5d89, - 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f, 0x5e58, 0x5e59, - 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc, - /* 0x4a */ - 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6, - 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153, - 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165, - 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b, - 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d, - 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b, - 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459, - 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705, - 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, 0x69a0, 0x69ce, 0x6996, - 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, 0x698e, 0x69a7, 0x698d, - 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, 0x69bd, 0x69a4, 0x69d4, - 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, 0x6993, - /* 0x4b */ - 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, 0x69b5, - 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, 0x6ba0, - 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, 0x6f25, - 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, 0x6f1a, - 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x6f36, 0x6f73, - 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35, 0x6eeb, - 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39, 0x6f1c, - 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21, 0x7187, - 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b, 0x7186, - 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293, 0x7343, - 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475, 0x7472, - 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, - /* 0x4c */ - 0x7590, 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, - 0x76b8, 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, - 0x777e, 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, - 0x78ab, 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, - 0x798a, 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, 0x7997, 0x7988, - 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, 0x7a28, 0x7a26, - 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, 0x7b8a, 0x7b91, - 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, 0x7b85, 0x7b98, - 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, 0x7cbc, 0x7cba, - 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, 0x7dc0, 0x7dc5, - 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, 0x7daf, 0x7db9, - 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9, - /* 0x4d */ - 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x8024, - 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c, - 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce, - 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd, - 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2, - 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6, - 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db, - 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740, - 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741, - 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712, - 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724, - 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, - /* 0x4e */ - 0x88f2, 0x88fa, 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, 0x88f0, - 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, 0x89eb, - 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, 0x8c3d, - 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, 0x8e02, - 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, 0x8e05, - 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, 0x9123, - 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, 0x9121, - 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, 0x9276, - 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x92a6, 0x929a, - 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e, 0x9282, - 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286, 0x928c, - 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, - /* 0x4f */ - 0x928b, 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, - 0x977e, 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, - 0x97ce, 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, - 0x999d, 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, - 0x99c7, 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, - 0x9b5f, 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, - 0x50f8, 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, - 0x510a, 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, - 0x5635, 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, 0x565a, 0x5640, - 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, 0x563a, 0x571a, - 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, 0x58ac, 0x58a5, - 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7, - /* 0x50 */ - 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05, - 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93, - 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d, - 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2, - 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x619b, - 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d, - 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485, - 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f, - 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2, - 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af, - 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4, - 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, - /* 0x51 */ - 0x69fe, 0x6a27, 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, - 0x6a08, 0x69e6, 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, - 0x6a18, 0x6a25, 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, - 0x6b51, 0x6ba5, 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, - 0x6c02, 0x6f41, 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, 0x6f8d, - 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, 0x6f76, - 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, 0x6f94, - 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, 0x6f90, - 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, 0x6f6a, - 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, 0x71a9, - 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, 0x719c, - 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, - /* 0x52 */ - 0x735e, 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, - 0x7362, 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, - 0x7488, 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, - 0x7619, 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, - 0x769d, 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, - 0x78bb, 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, - 0x78c4, 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, - 0x6b76, 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, - 0x7bac, 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, - 0x7ccc, 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, - 0x7e03, 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, - 0x7f76, 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, - /* 0x53 */ - 0x7fea, 0x7fec, 0x7fe6, 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f, - 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253, - 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500, - 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c, - 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2, - 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9, - 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e, - 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9, - 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x8756, - 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b, - 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750, - 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, - /* 0x54 */ - 0x876e, 0x875c, 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, - 0x8769, 0x885a, 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, - 0x8919, 0x8906, 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, - 0x89a3, 0x89ed, 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, - 0x8ad1, 0x8ad4, 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, - 0x8ad8, 0x8ac3, 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, - 0x8ce5, 0x8cdf, 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, - 0x8d9c, 0x8da1, 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, - 0x8e15, 0x8e1b, 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, 0x8e14, - 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, 0x8f24, - 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, 0x9070, - 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, - /* 0x55 */ - 0x912a, 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, - 0x9182, 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, - 0x92b6, 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, - 0x92cc, 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, - 0x92cd, 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, - 0x92b5, 0x92e1, 0x9325, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, - 0x95ae, 0x95b0, 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, - 0x975a, 0x978a, 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, - 0x9826, 0x9829, 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, - 0x98fa, 0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, - 0x99cf, 0x99d3, 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, - 0x99d7, 0x99cc, 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, - /* 0x56 */ - 0x9af2, 0x9af1, 0x9b46, 0x9b43, 0x9b67, 0x9b74, 0x9b71, 0x9b66, - 0x9b76, 0x9b75, 0x9b70, 0x9b68, 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, - 0x9cfd, 0x9cff, 0x9cf7, 0x9d07, 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, - 0x9d05, 0x9d04, 0x9e83, 0x9ed3, 0x9f0f, 0x9f10, 0x511c, 0x5113, - 0x5117, 0x511a, 0x5111, 0x51de, 0x5334, 0x53e1, 0x5670, 0x5660, - 0x566e, 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, - 0x571c, 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, - 0x58bc, 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, - 0x5b10, 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, - 0x5db1, 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, - 0x5db2, 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, - 0x5ee9, 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, - /* 0x57 */ - 0x5fbc, 0x5fbb, 0x619d, 0x61a8, 0x6196, 0x61c5, 0x61b4, 0x61c6, - 0x61c1, 0x61cc, 0x61ba, 0x61bf, 0x61b8, 0x618c, 0x64d7, 0x64d6, - 0x64d0, 0x64cf, 0x64c9, 0x64bd, 0x6489, 0x64c3, 0x64db, 0x64f3, - 0x64d9, 0x6533, 0x657f, 0x657c, 0x65a2, 0x66c8, 0x66be, 0x66c0, - 0x66ca, 0x66cb, 0x66cf, 0x66bd, 0x66bb, 0x66ba, 0x66cc, 0x6723, - 0x6a34, 0x6a66, 0x6a49, 0x6a67, 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, - 0x6a6d, 0x6a76, 0x6a5b, 0x6a51, 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, - 0x6a41, 0x6a6a, 0x6a64, 0x6a50, 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, - 0x6a60, 0x6a3c, 0x6a5e, 0x6a56, 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, - 0x6b55, 0x6b54, 0x6b56, 0x6ba7, 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, - 0x6c04, 0x6c03, 0x6c06, 0x6fad, 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, - 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4, 0x6fbd, 0x6f9e, - /* 0x58 */ - 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba, 0x6fac, 0x6faa, - 0x6fcf, 0x6fbf, 0x6fb8, 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, - 0x6fb2, 0x6fb0, 0x71c5, 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, - 0x71c1, 0x71cb, 0x71d4, 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, - 0x71bc, 0x71c6, 0x71da, 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, - 0x7367, 0x736c, 0x7365, 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, - 0x7494, 0x7492, 0x7495, 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, - 0x7631, 0x763d, 0x7633, 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, - 0x76e6, 0x779a, 0x779d, 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, - 0x7795, 0x7799, 0x7797, 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, - 0x78e3, 0x78db, 0x78e1, 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, - 0x7a44, 0x7a48, 0x7a47, 0x7ab6, 0x7ab8, 0x7ab5, - /* 0x59 */ - 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7, 0x7bdd, 0x7bd5, 0x7be5, - 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea, 0x7be2, 0x7bdc, 0x7beb, - 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7, 0x7cd0, 0x7cd1, 0x7e12, - 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20, 0x7e13, 0x7e0e, 0x7e1c, - 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f, 0x7e16, 0x7e0d, 0x7e14, - 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c, 0x7f7a, 0x7fb1, 0x7fef, - 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6, 0x81ae, 0x81b9, 0x81b5, - 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2, 0x81b7, 0x81a7, 0x81f2, - 0x8255, 0x8256, 0x8257, 0x8556, 0x8545, 0x856b, 0x854d, 0x8553, - 0x8561, 0x8558, 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, - 0x8551, 0x8547, 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, - 0x8575, 0x8555, 0x8567, 0x8560, 0x858c, 0x8566, - /* 0x5a */ - 0x855d, 0x8554, 0x8565, 0x856c, 0x8663, 0x8665, 0x8664, 0x87a4, - 0x879b, 0x878f, 0x8797, 0x8793, 0x8792, 0x8788, 0x8781, 0x8796, - 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, 0x8790, 0x8791, 0x879d, - 0x8784, 0x8794, 0x879c, 0x879a, 0x8789, 0x891e, 0x8926, 0x8930, - 0x892d, 0x892e, 0x8927, 0x8931, 0x8922, 0x8929, 0x8923, 0x892f, - 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x8ae2, 0x8af2, 0x8af4, 0x8af5, - 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0, 0x8ac8, 0x8ade, 0x8ae1, - 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91, 0x8c92, 0x8c90, 0x8cf5, - 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c, 0x8d6e, 0x8da5, 0x8da7, - 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45, 0x8e36, 0x8e3c, 0x8e3d, - 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36, 0x8f2e, 0x8f35, 0x8f32, - 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079, 0x907b, - /* 0x5b */ - 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190, 0x9191, - 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306, 0x930f, - 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301, 0x9346, - 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9313, 0x92f9, - 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329, 0x9339, 0x9335, - 0x932a, 0x9314, 0x930c, 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, - 0x9316, 0x95bc, 0x95cd, 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, - 0x95b5, 0x95bd, 0x96a9, 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, - 0x9797, 0x9794, 0x97f0, 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, - 0x991f, 0x9927, 0x9929, 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, - 0x99f0, 0x99e3, 0x99ea, 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, - 0x9abb, 0x9af6, 0x9afa, 0x9af9, 0x9af7, 0x9b33, - /* 0x5c */ - 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, 0x9b7b, 0x9b82, 0x9b93, - 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x9b7d, 0x9b88, 0x9d25, 0x9d17, - 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d, 0x9d18, 0x9d22, 0x9d10, - 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87, 0x9eae, 0x9ead, 0x9ed5, - 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126, 0x5125, 0x5122, 0x5124, - 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c, 0x568d, 0x5686, 0x5684, - 0x5683, 0x567e, 0x5682, 0x567f, 0x5681, 0x58d6, 0x58d4, 0x58cf, - 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23, 0x5b2c, 0x5b27, 0x5b26, - 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2, 0x5db7, 0x5e6c, 0x5e6a, - 0x5fbe, 0x61c3, 0x61b5, 0x61bc, 0x61e7, 0x61e0, 0x61e5, 0x61e4, - 0x61e8, 0x61de, 0x64ef, 0x64e9, 0x64e3, 0x64eb, 0x64e4, 0x64e8, - 0x6581, 0x6580, 0x65b6, 0x65da, 0x66d2, 0x6a8d, - /* 0x5d */ - 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b, 0x6aa1, 0x6a9e, - 0x6a87, 0x6a93, 0x6a8e, 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, - 0x6a7f, 0x6aa6, 0x6a9a, 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, - 0x6c09, 0x6fcc, 0x6fa9, 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, - 0x6fe7, 0x6fe6, 0x6fde, 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, - 0x71f1, 0x71e8, 0x71f2, 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, - 0x736f, 0x7497, 0x74b2, 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, - 0x74a5, 0x74af, 0x7510, 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, - 0x7648, 0x7649, 0x7647, 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, - 0x77b7, 0x77b6, 0x77b4, 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, - 0x7902, 0x78fb, 0x78fc, 0x78ff, 0x78f2, 0x7905, 0x78f9, 0x78fe, - 0x7904, 0x79ab, 0x79a8, 0x7a5c, 0x7a5b, 0x7a56, - /* 0x5e */ - 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1, 0x7c05, 0x7c0f, - 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4, 0x7c0b, 0x7bf3, - 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd, 0x7c06, 0x7bf0, - 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c, 0x7e42, 0x7e33, - 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47, 0x7e29, 0x7e4c, - 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45, 0x7f7f, 0x7f7e, - 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4, 0x81cc, 0x81ca, - 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a, 0x825c, 0x8583, - 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b, 0x85a3, 0x857b, - 0x85a4, 0x859a, 0x859e, 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, - 0x8578, 0x8557, 0x858e, 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, - 0x8581, 0x85a2, 0x8582, 0x8588, 0x8585, 0x8579, - /* 0x5f */ - 0x8576, 0x8598, 0x8590, 0x859f, 0x8668, 0x87be, 0x87aa, 0x87ad, - 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, 0x87bc, 0x87ae, 0x87c9, - 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, 0x87c4, 0x87ca, 0x87b4, - 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, 0x87b2, 0x8935, 0x8933, - 0x893c, 0x893e, 0x8941, 0x8952, 0x8937, 0x8942, 0x89ad, 0x89af, - 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x8b18, 0x8b16, 0x8b11, 0x8b05, - 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15, 0x8b07, 0x8b0d, 0x8b08, - 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f, 0x8c70, 0x8c72, 0x8c71, - 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f, 0x8e4e, 0x8e4d, 0x8e53, - 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40, 0x9085, 0x907e, 0x9138, - 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f, 0x91a1, 0x919d, 0x91a0, - 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356, 0x9347, - /* 0x60 */ - 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351, 0x9360, - 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355, 0x9352, - 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363, 0x9367, - 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3, 0x95c5, 0x95b7, - 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718, 0x971d, 0x9719, - 0x979a, 0x97a1, 0x979c, 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, - 0x9841, 0x9844, 0x984a, 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, - 0x992c, 0x992a, 0x9933, 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, - 0x9998, 0x99a3, 0x99a1, 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, - 0x99f8, 0x99f6, 0x99fb, 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, - 0x9afe, 0x9afd, 0x9b01, 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, - 0x9b9b, 0x9ba6, 0x9ba1, 0x9ba5, 0x9ba4, 0x9b86, - /* 0x61 */ - 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, 0x9d67, 0x9d36, 0x9d2e, - 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x9d45, 0x9d42, 0x9d43, 0x9d3e, - 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d, 0x9e8a, 0x9e89, 0x9e8d, - 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff, 0x9f24, 0x9f23, 0x9f22, - 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e, 0x5698, 0x569c, 0x5697, - 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c, 0x5c69, 0x5c6a, 0x5dc0, - 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed, 0x61ee, 0x61f1, 0x61ea, - 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff, 0x6504, 0x64fd, 0x64f8, - 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db, 0x66da, 0x66db, 0x66d8, - 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6, 0x6aba, 0x6ab6, 0x6ab7, - 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9, 0x6c0b, 0x7007, 0x700c, - 0x700d, 0x7001, 0x7005, 0x7014, 0x700e, 0x6fff, - /* 0x62 */ - 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201, 0x71ff, - 0x71f9, 0x7203, 0x71fd, 0x7376, 0x74b8, 0x74c0, 0x74b5, 0x74c1, - 0x74be, 0x74b6, 0x74bb, 0x74c2, 0x7514, 0x7513, 0x765c, 0x7664, - 0x7659, 0x7650, 0x7653, 0x7657, 0x765a, 0x76a6, 0x76bd, 0x76ec, - 0x77c2, 0x77ba, 0x790c, 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, - 0x7911, 0x79ad, 0x79ac, 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, - 0x7c1f, 0x7c2d, 0x7c1d, 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, - 0x7e5c, 0x7e50, 0x7e56, 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, - 0x7e60, 0x7e57, 0x7e53, 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, - 0x81d1, 0x81d2, 0x81d0, 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, - 0x85c3, 0x85c2, 0x85b3, 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, - 0x85cb, 0x85ce, 0x85c8, 0x85c5, 0x85b1, 0x85b6, - /* 0x63 */ - 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be, 0x8669, 0x87e7, 0x87e6, - 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5, 0x87df, 0x87f3, 0x87e4, - 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8, 0x87e3, 0x87d7, 0x87d9, - 0x8801, 0x87f4, 0x87e8, 0x87dd, 0x8953, 0x894b, 0x894f, 0x894c, - 0x8946, 0x8950, 0x8951, 0x8949, 0x8b2a, 0x8b27, 0x8b23, 0x8b33, - 0x8b30, 0x8b35, 0x8b47, 0x8b2f, 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, - 0x8b37, 0x8b26, 0x8b36, 0x8b2e, 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, - 0x8c42, 0x8c75, 0x8c99, 0x8c98, 0x8c97, 0x8cfe, 0x8d04, 0x8d02, - 0x8d00, 0x8e5c, 0x8e62, 0x8e60, 0x8e57, 0x8e56, 0x8e5e, 0x8e65, - 0x8e67, 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, - 0x8f47, 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, - 0x91a5, 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, - /* 0x64 */ - 0x9392, 0x93b7, 0x939b, 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, - 0x939e, 0x93a6, 0x9395, 0x9388, 0x9399, 0x939f, 0x9380, 0x938d, - 0x93b1, 0x9391, 0x93b2, 0x93a4, 0x93a8, 0x93b4, 0x93a3, 0x95d2, - 0x95d3, 0x95d1, 0x96b3, 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, - 0x96dd, 0x9723, 0x9722, 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, - 0x97a4, 0x97aa, 0x97a2, 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, - 0x97fa, 0x9850, 0x9851, 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, - 0x9a0f, 0x9a0b, 0x9a09, 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, - 0x9a07, 0x9a06, 0x9ac0, 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, - 0x9b35, 0x9b4a, 0x9b4c, 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, - 0x9bc1, 0x9bb5, 0x9bb8, 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, - 0x9d5c, 0x9d53, 0x9d4f, 0x9d4a, 0x9d5b, 0x9d4b, - /* 0x65 */ - 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52, 0x9d54, 0x9d5f, 0x9d58, - 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01, 0x9f00, 0x9f16, 0x9f25, - 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c, 0x9f55, 0x5134, 0x5135, - 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad, 0x56a6, 0x56a7, 0x56aa, - 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912, 0x5b3d, 0x5b3e, 0x5b3f, - 0x5dc3, 0x5e70, 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, - 0x650c, 0x650e, 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, - 0x6acc, 0x6ad1, 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, - 0x6acf, 0x6acd, 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, - 0x7020, 0x7016, 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, - 0x7024, 0x701c, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, - 0x72a6, 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, - /* 0x66 */ - 0x74b7, 0x74c3, 0x7516, 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, - 0x791d, 0x791b, 0x7921, 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, - 0x7a68, 0x7c33, 0x7c3c, 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, - 0x7e76, 0x7e75, 0x7e78, 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, - 0x7e74, 0x7e68, 0x7f4b, 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, - 0x7ffe, 0x8078, 0x81d7, 0x81d5, 0x820b, 0x8264, 0x8261, 0x8263, - 0x85eb, 0x85f1, 0x85ed, 0x85d9, 0x85e1, 0x85e8, 0x85da, 0x85d7, - 0x85ec, 0x85f2, 0x85f8, 0x85d8, 0x85df, 0x85e3, 0x85dc, 0x85d1, - 0x85f0, 0x85e6, 0x85ef, 0x85de, 0x85e2, 0x8800, 0x87fa, 0x8803, - 0x87f6, 0x87f7, 0x8809, 0x880c, 0x880b, 0x8806, 0x87fc, 0x8808, - 0x87ff, 0x880a, 0x8802, 0x8962, 0x895a, 0x895b, 0x8957, 0x8961, - 0x895c, 0x8958, 0x895d, 0x8959, 0x8988, 0x89b7, - /* 0x67 */ - 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40, 0x8b53, 0x8b56, - 0x8b54, 0x8b4b, 0x8b55, 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, - 0x8c77, 0x8c76, 0x8c9a, 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, - 0x8dad, 0x8dab, 0x8e6d, 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, - 0x8ec2, 0x8f52, 0x8f51, 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, - 0x913f, 0x91b0, 0x91ad, 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, - 0x93d0, 0x93f9, 0x93ec, 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, - 0x93d4, 0x93ee, 0x93e3, 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, - 0x93a5, 0x93e7, 0x957d, 0x95da, 0x95db, 0x96e1, 0x9729, 0x972b, - 0x972c, 0x9728, 0x9726, 0x97b3, 0x97b7, 0x97b6, 0x97dd, 0x97de, - 0x97df, 0x985c, 0x9859, 0x985d, 0x9857, 0x98bf, 0x98bd, 0x98bb, - 0x98be, 0x9948, 0x9947, 0x9943, 0x99a6, 0x99a7, - /* 0x68 */ - 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b, 0x9a22, 0x9a20, - 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2, 0x9b0b, 0x9b0a, - 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0, 0x9bde, 0x9be4, - 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec, 0x9bdc, 0x9bd9, - 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81, 0x9d8a, 0x9d84, - 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b, 0x9d8c, 0x9d7d, - 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85, 0x9d73, 0x9d7b, - 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68, 0x9e94, 0x9e91, - 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d, 0x9f56, 0x9f57, - 0x9f58, 0x5337, 0x56b2, 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, - 0x5dc7, 0x5eee, 0x5eef, 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, - 0x6515, 0x6513, 0x65df, 0x66e8, 0x66e3, 0x66e4, - /* 0x69 */ - 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, 0x6af1, 0x6aee, 0x6aef, - 0x703c, 0x7035, 0x702f, 0x7037, 0x7034, 0x7031, 0x7042, 0x7038, - 0x703f, 0x703a, 0x7039, 0x702a, 0x7040, 0x703b, 0x7033, 0x7041, - 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, 0x76ab, 0x76aa, - 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, 0x77f2, 0x7925, - 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x79b2, 0x7a6e, 0x7a6c, - 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47, 0x7c45, 0x7cee, - 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff, 0x8079, 0x81db, - 0x81d9, 0x8268, 0x8269, 0x8622, 0x85ff, 0x8601, 0x85fe, 0x861b, - 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605, 0x860c, 0x85fd, 0x8819, - 0x8810, 0x8811, 0x8817, 0x8813, 0x8816, 0x8963, 0x8966, 0x89b9, - 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68, 0x8b63, - /* 0x6a */ - 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84, 0x8f59, - 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143, 0x9141, - 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb, 0x9420, - 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419, 0x940d, - 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412, 0x93fa, - 0x9409, 0x93f8, 0x943c, 0x940a, 0x93ff, 0x93fc, 0x940c, 0x93f6, - 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, 0x972e, 0x972f, 0x97b9, - 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, 0x9863, 0x985f, 0x98c1, - 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, 0x994b, 0x9953, 0x9a32, - 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, 0x9a29, 0x9a2e, 0x9a38, - 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, 0x9b12, 0x9b11, 0x9c0b, - 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, 0x9c40, - /* 0x6b */ - 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, 0x9d99, - 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x9da0, 0x9d94, - 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8, 0x9d9e, - 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99, 0x9e9b, - 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e, 0x9f5b, - 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139, 0x5298, - 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb, 0x5dcf, - 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8, 0x6b00, - 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046, 0x721d, - 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d, 0x7931, - 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88, 0x7e8b, - 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, - /* 0x6c */ - 0x8618, 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, - 0x862e, 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, 0x8829, 0x881d, - 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, 0x896d, 0x8969, - 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, 0x8b7a, 0x8b7b, - 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, 0x8f5b, 0x8f5d, - 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, 0x9436, 0x9429, - 0x943d, 0x9430, 0x9439, 0x942a, 0x9437, 0x942c, 0x9440, 0x9431, - 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, 0x97bf, 0x97e1, 0x9864, - 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, 0x9a39, 0x9a3d, 0x9a46, - 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x9a3f, 0x9acd, 0x9b15, 0x9b17, - 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b, 0x9c1d, 0x9c1c, 0x9c2c, - 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21, 0x9db7, - /* 0x6d */ - 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe, 0x9dc5, - 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac, 0x9dc8, - 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a, 0x9e9c, - 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31, 0x9f4e, - 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb, 0x5971, - 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520, 0x6526, - 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056, 0x7057, - 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5, 0x74d9, - 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71, 0x7c57, - 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, - 0x7f87, 0x81de, 0x826b, 0x8634, 0x8635, 0x8633, 0x862c, 0x8632, - 0x8636, 0x882c, 0x8828, 0x8826, 0x882a, 0x8825, - /* 0x6e */ - 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, 0x8b82, 0x8b86, - 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, 0x8e92, 0x8e90, - 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, 0x9450, 0x944a, - 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, 0x9446, 0x973f, - 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, 0x9a4e, 0x9a53, - 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x9a49, 0x9a52, 0x9a50, - 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55, 0x9c46, 0x9c48, - 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c, 0x9c37, 0x9c34, - 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde, 0x9dda, 0x9dcb, - 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9, 0x9dd8, 0x9dd6, - 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35, 0x9f33, 0x9f32, - 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299, - /* 0x6f */ - 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201, - 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12, - 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383, - 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640, - 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e, - 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, 0x8b8c, 0x8b8e, 0x8b8b, - 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, 0x8f63, 0x91bc, 0x9462, - 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, 0x97c5, 0x9800, 0x9a56, - 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, 0x9c58, 0x9c50, 0x9c4a, - 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, 0x9c4e, 0x9dfb, 0x9df7, - 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, 0x9df6, 0x9de1, 0x9dee, - 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, 0x9df4, - /* 0x70 */ - 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, 0x9f06, - 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x9f71, 0x9f70, - 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d, 0x66ed, - 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223, 0x74db, - 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97, 0x7f89, - 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94, 0x8b95, - 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2, 0x946b, - 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7, 0x97e5, - 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62, 0x9c5e, - 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05, 0x9e00, - 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e, 0x9f46, - 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, - /* 0x71 */ - 0x6b18, 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, - 0x77d9, 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, 0x7e98, 0x7e9b, - 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, 0x8979, 0x897a, - 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, 0x8ea4, 0x8ea3, - 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, 0x9872, 0x995f, - 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, 0x9e0f, 0x9e12, - 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, 0x9f7b, 0x9f7a, - 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, 0x8ea6, 0x91c3, - 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9b2e, 0x9c74, 0x9c73, - 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x9fa4, 0x7068, - 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e, 0x8c9c, - 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, - /* 0x72 */ - 0x9961, 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, - 0x9f48, 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, - 0x9481, 0x9a69, 0x9a68, 0x9e19, 0x864b, 0x8b9f, 0x9483, 0x9c79, - 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a, 0x7229, - 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, -}; - -static int -cns11643_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x72)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - { - if (i < 7650) - wc = cns11643_2_2uni_page21[i]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_3.h b/jni/parted/libiconv/lib/cns11643_3.h deleted file mode 100755 index 79d9dbd..0000000 --- a/jni/parted/libiconv/lib/cns11643_3.h +++ /dev/null @@ -1,973 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 3 - */ - -static const unsigned short cns11643_3_2uni_page21[6148] = { - /* 0x21 */ - 0x1a28, 0x1a36, 0x1a3f, 0x1a85, 0x1a05, 0x1a04, 0x1d82, 0x1d96, - 0x1f38, 0x1f69, 0x1fb6, 0x1a2a, 0x1a87, 0x1a49, 0x1de2, 0x1a46, - 0x1a8f, 0x1abc, 0x1abe, 0x1d66, 0x1de3, 0x1e04, 0x1e9c, 0x1f44, - 0x2502, 0x250a, 0x2780, 0x29db, 0x2a7a, 0x2a7f, 0x2af4, 0x2b50, - 0x2b51, 0x2b61, 0x621d, 0x6d0b, 0x1a63, 0x1a62, 0x1aa3, 0x1d85, - 0x1ac5, 0x1acf, 0x1ace, 0x1acc, 0x1d84, 0x1d86, 0x8517, 0x00c5, - 0x1de4, 0x1e05, 0x1e9e, 0x1e9d, 0x1efd, 0x1f00, 0x1f3a, 0x0139, - 0x1f46, 0x1f5d, 0x1f86, 0x1fb7, 0x0155, 0x1fcc, 0x015b, 0x1fce, - 0x2321, 0x03a2, 0x2a00, 0x2b0c, 0x2e37, 0x2e38, 0x3134, 0x3135, - 0x31e0, 0x0a26, 0x3f8d, 0x1a97, 0x1ae0, 0x0032, 0x6ea9, 0x1ae7, - 0x0033, 0x1ae6, 0x0034, 0x02a2, 0x0031, 0x00b0, 0x22d8, 0x1d8b, - 0x1d8c, 0x1d99, 0x1de5, 0x8550, 0x1e0b, 0x00dc, - /* 0x22 */ - 0x021e, 0x1f04, 0x1f03, 0x1f07, 0x852a, 0x1f1e, 0x1f5f, 0x1f6d, - 0x1f89, 0x1fba, 0x1fd0, 0x0165, 0x1ff6, 0x1ff7, 0x1ff9, 0x0164, - 0x1ff4, 0x021d, 0x0226, 0x2324, 0x2504, 0x2518, 0x2532, 0x2530, - 0x2534, 0x028e, 0x2575, 0x034a, 0x2782, 0x27f9, 0x2814, 0x038b, - 0x03a6, 0x03a4, 0x03a5, 0x03a7, 0x042f, 0x0432, 0x2a81, 0x2a83, - 0x2b0d, 0x2b52, 0x04d4, 0x2bca, 0x2bc7, 0x2e39, 0x05c5, 0x2e4f, - 0x31e7, 0x332f, 0x377a, 0x3839, 0x08ba, 0x08b9, 0x3837, 0x3844, - 0x3845, 0x3f8c, 0x4192, 0x4276, 0x5c93, 0x5c92, 0x14b3, 0x15ba, - 0x1a21, 0x1a20, 0x1a22, 0x1a68, 0x1a89, 0x1a98, 0x1af9, 0x1aef, - 0x003b, 0x003c, 0x1af8, 0x1b06, 0x1b03, 0x1afc, 0x1aee, 0x1b16, - 0x0039, 0x1b28, 0x1b1c, 0x1b07, 0x1b1a, 0x1afa, 0x1b17, 0x1d4a, - 0x00b2, 0x1d72, 0x8515, 0x1db4, 0x1db3, 0x1db2, - /* 0x23 */ - 0x00c7, 0x1de8, 0x002b, 0x1e14, 0x1e0f, 0x1e15, 0x1e18, 0x1ea8, - 0x852c, 0x1f4b, 0x1f4f, 0x013b, 0x1f50, 0x0144, 0x1f8b, 0x0142, - 0x1fbe, 0x015c, 0x1fd2, 0x2016, 0x1fff, 0x0167, 0x2000, 0x0166, - 0x2005, 0x2013, 0x2015, 0x853b, 0x021f, 0x22e3, 0x2335, 0x2336, - 0x2331, 0x2332, 0x24ee, 0x2505, 0x1a54, 0x028f, 0x2536, 0x0290, - 0x02a8, 0x02a4, 0x257a, 0x02a3, 0x2586, 0x033d, 0x034c, 0x2786, - 0x2b53, 0x2818, 0x038c, 0x283d, 0x2878, 0x03a8, 0x03ad, 0x03af, - 0x7746, 0x2880, 0x0429, 0x2a08, 0x0436, 0x0471, 0x0470, 0x046f, - 0x2af5, 0x2b0e, 0x04a9, 0x04aa, 0x04fb, 0x2bd3, 0x2bda, 0x04fc, - 0x2bdb, 0x05ae, 0x2e0f, 0x2e5d, 0x2e5f, 0x2e67, 0x2e57, 0x6b50, - 0x06c3, 0x31eb, 0x31ea, 0x0730, 0x3337, 0x0741, 0x3332, 0x3336, - 0x3722, 0x37ce, 0x088c, 0x3858, 0x3851, 0x3877, - /* 0x24 */ - 0x383c, 0x08bb, 0x385a, 0x7c86, 0x3853, 0x3c6f, 0x3c72, 0x3c6e, - 0x8535, 0x09a1, 0x3c73, 0x3eb1, 0x3eb2, 0x0aa8, 0x3f8f, 0x0aaa, - 0x0aab, 0x0c96, 0x453c, 0x0dc2, 0x4c8d, 0x4c8e, 0x1093, 0x4e7b, - 0x1094, 0x5971, 0x5bb9, 0x5c96, 0x5c9a, 0x15bb, 0x1a24, 0x1a71, - 0x851b, 0x1a9c, 0x1b45, 0x1b4a, 0x1b39, 0x1b37, 0x0043, 0x1b32, - 0x1b42, 0x0042, 0x1b44, 0x1b4b, 0x0044, 0x1b40, 0x1b35, 0x1b31, - 0x1d51, 0x850e, 0x1d50, 0x1d4e, 0x00b3, 0x00b7, 0x1d9d, 0x00c8, - 0x1db5, 0x1db8, 0x1dec, 0x1e23, 0x1e27, 0x1e26, 0x1e1f, 0x1e2b, - 0x1e20, 0x1eb4, 0x1eb3, 0x0118, 0x1f25, 0x1f3b, 0x1f74, 0x0147, - 0x0146, 0x0145, 0x016b, 0x0169, 0x204d, 0x0172, 0x0171, 0x203a, - 0x016c, 0x016f, 0x2044, 0x204c, 0x2023, 0x201a, 0x2032, 0x204b, - 0x2021, 0x0173, 0x2034, 0x2049, 0x2050, 0x2022, - /* 0x25 */ - 0x203f, 0x2051, 0x205a, 0x202f, 0x0176, 0x22e9, 0x22f2, 0x22f3, - 0x22ef, 0x22ed, 0x22ec, 0x22e6, 0x2348, 0x0227, 0x2344, 0x233f, - 0x233c, 0x2353, 0x2356, 0x0230, 0x235f, 0x2343, 0x2358, 0x2357, - 0x0229, 0x022a, 0x022f, 0x2346, 0x022c, 0x233d, 0x022d, 0x2342, - 0x2354, 0x2355, 0x24f1, 0x24f2, 0x24f0, 0x250b, 0x6aa6, 0x22f1, - 0x253d, 0x0293, 0x2594, 0x258c, 0x02ad, 0x259c, 0x02ac, 0x02ab, - 0x259f, 0x02a9, 0x259b, 0x02ae, 0x2589, 0x259a, 0x02aa, 0x3188, - 0x034e, 0x278d, 0x0350, 0x27fe, 0x27ff, 0x27fd, 0x282b, 0x03b2, - 0x2884, 0x288e, 0x289c, 0x03b5, 0x03b6, 0x2885, 0x29f5, 0x2a09, - 0x0439, 0x043b, 0x2a0b, 0x0472, 0x2a92, 0x2a90, 0x2b03, 0x04ac, - 0x2b1e, 0x2b63, 0x0508, 0x2be7, 0x2bfe, 0x2be6, 0x2bdc, 0x2bce, - 0x0503, 0x2bfc, 0x2bdf, 0x2bec, 0x2bf6, 0x79d7, - /* 0x26 */ - 0x2bf2, 0x2bf0, 0x2bf9, 0x050b, 0x2e13, 0x05af, 0x85b2, 0x2e3b, - 0x2e3c, 0x2e82, 0x05ce, 0x05cb, 0x05cc, 0x2e78, 0x2e8b, 0x05cd, - 0x2e9e, 0x2ea5, 0x2e9b, 0x2e9c, 0x2e99, 0x2e8d, 0x2e85, 0x2e9d, - 0x2e75, 0x0680, 0x06af, 0x06d3, 0x31f6, 0x06d5, 0x06d4, 0x06d7, - 0x32f5, 0x335b, 0x0742, 0x3354, 0x3352, 0x0744, 0x3358, 0x3344, - 0x334a, 0x3361, 0x08c6, 0x387f, 0x3891, 0x389e, 0x08c0, 0x386e, - 0x387c, 0x389f, 0x3875, 0x08be, 0x3856, 0x38a2, 0x3879, 0x08ca, - 0x38a1, 0x08c4, 0x38aa, 0x38a0, 0x08c2, 0x3c79, 0x3c77, 0x3c7e, - 0x09a4, 0x3c75, 0x3c7b, 0x3e64, 0x0a29, 0x3ebb, 0x3ebc, 0x3ec7, - 0x3eb9, 0x3ebe, 0x3eb6, 0x0a60, 0x0a5e, 0x3f98, 0x0aad, 0x0aae, - 0x0aac, 0x0b57, 0x4193, 0x4280, 0x0bdd, 0x4283, 0x42c0, 0x42c1, - 0x0c0e, 0x0c97, 0x43f4, 0x43f5, 0x0d27, 0x46cc, - /* 0x27 */ - 0x46cd, 0x48fa, 0x4c9f, 0x4c91, 0x4c97, 0x4c94, 0x1095, 0x4e86, - 0x4e8c, 0x868f, 0x4e95, 0x1098, 0x526c, 0x119d, 0x5bb5, 0x5bbe, - 0x5bc7, 0x148a, 0x5bc1, 0x5ca9, 0x5ca4, 0x14b5, 0x14b6, 0x14b7, - 0x5ca8, 0x6227, 0x6226, 0x622b, 0x6233, 0x6234, 0x6229, 0x1a3d, - 0x0028, 0x1a9d, 0x1b93, 0x1b8a, 0x004d, 0x0049, 0x1b6d, 0x1b8e, - 0x1ba0, 0x1ba2, 0x1ba1, 0x1b9f, 0x1ba3, 0x6f09, 0x1b72, 0x0051, - 0x1b8c, 0x1d56, 0x850f, 0x8511, 0x1d90, 0x00cb, 0x00ca, 0x00cc, - 0x1ded, 0x1dfe, 0x1e2f, 0x71ec, 0x1e3c, 0x1e34, 0x1e39, 0x1eb9, - 0x1eb5, 0x1ebf, 0x1f55, 0x013d, 0x1f76, 0x1f7a, 0x1f93, 0x0148, - 0x1fc1, 0x1fc2, 0x1fd5, 0x2085, 0x0178, 0x205f, 0x2093, 0x2089, - 0x2079, 0x6afe, 0x208f, 0x2069, 0x206d, 0x017a, 0x2094, 0x206a, - 0x208a, 0x0177, 0x22fd, 0x22fb, 0x22f8, 0x0221, - /* 0x28 */ - 0x22fc, 0x22f6, 0x2365, 0x2381, 0x2363, 0x2367, 0x0231, 0x236e, - 0x2378, 0x237f, 0x0233, 0x0234, 0x24f3, 0x254b, 0x254c, 0x02c1, - 0x02b0, 0x02b4, 0x25ad, 0x02b8, 0x25c4, 0x02bc, 0x25c2, 0x25b0, - 0x02bf, 0x02b5, 0x02b1, 0x02bd, 0x25bf, 0x02bb, 0x25c9, 0x25b8, - 0x25ac, 0x02b3, 0x02b6, 0x02ba, 0x25b7, 0x25d7, 0x02b7, 0x2760, - 0x0340, 0x2796, 0x279e, 0x2794, 0x279f, 0x279d, 0x0352, 0x2800, - 0x2819, 0x0390, 0x0391, 0x2849, 0x284a, 0x03be, 0x28bb, 0x28c1, - 0x03c0, 0x03c1, 0x03b9, 0x28b9, 0x289e, 0x28b4, 0x28ba, 0x29f6, - 0x2a13, 0x2a12, 0x2a77, 0x0479, 0x2a98, 0x047b, 0x2a99, 0x2a9d, - 0x2af8, 0x04a0, 0x2af9, 0x0029, 0x2b06, 0x2b21, 0x04ae, 0x2b25, - 0x2b55, 0x04cd, 0x04cb, 0x04d9, 0x2b84, 0x2b83, 0x2c30, 0x2c07, - 0x050c, 0x2c36, 0x0501, 0x0505, 0x0502, 0x2be9, - /* 0x29 */ - 0x2c3d, 0x2c08, 0x0513, 0x0511, 0x2eba, 0x2eb2, 0x05e4, 0x2eb7, - 0x2ee4, 0x2ea7, 0x05da, 0x05d5, 0x05d3, 0x2ed5, 0x2ee1, 0x2edd, - 0x2ea6, 0x2ec1, 0x2ec5, 0x2ec0, 0x2edf, 0x2ee0, 0x2ede, 0x05d6, - 0x3189, 0x06b4, 0x31a6, 0x31ba, 0x06d9, 0x31ff, 0x06d8, 0x3217, - 0x3218, 0x3201, 0x31fe, 0x0733, 0x330c, 0x0748, 0x336b, 0x3396, - 0x3382, 0x338a, 0x0747, 0x33a3, 0x074b, 0x33a2, 0x338f, 0x074a, - 0x33f9, 0x3380, 0x3726, 0x3727, 0x3768, 0x3769, 0x085a, 0x3781, - 0x37b4, 0x37d1, 0x088e, 0x08b4, 0x381c, 0x08cd, 0x08cc, 0x08cf, - 0x08cb, 0x08ce, 0x3897, 0x386c, 0x38df, 0x08d2, 0x38ea, 0x08d1, - 0x38e4, 0x38d8, 0x38b2, 0x38ce, 0x38c8, 0x09a6, 0x3c8b, 0x3c88, - 0x3c90, 0x3c8f, 0x09aa, 0x3c87, 0x3c89, 0x3c8d, 0x3c81, 0x09a8, - 0x3c8c, 0x0a13, 0x0a1a, 0x3e40, 0x0a1d, 0x0a1e, - /* 0x2a */ - 0x3e65, 0x3e66, 0x3e68, 0x0a65, 0x0a66, 0x3ecd, 0x3ed3, 0x3edb, - 0x0a64, 0x3ecf, 0x3fa7, 0x3fa3, 0x3f9e, 0x0ab0, 0x3faf, 0x0ab3, - 0x0ab5, 0x3faa, 0x3f9c, 0x0b19, 0x4142, 0x4144, 0x413b, 0x4141, - 0x783f, 0x419b, 0x419e, 0x0b75, 0x45c4, 0x45c3, 0x45c6, 0x0d2b, - 0x0d2c, 0x45c7, 0x0d2d, 0x45ca, 0x802e, 0x0dc3, 0x46cf, 0x4876, - 0x4874, 0x48ff, 0x48fc, 0x00ba, 0x0f50, 0x4b59, 0x4ca8, 0x0fd3, - 0x0fd0, 0x4cb0, 0x0fdc, 0x4cb3, 0x0fd2, 0x4ca4, 0x4cb6, 0x4ca7, - 0x4cac, 0x0fdb, 0x4ca6, 0x1f67, 0x4e0e, 0x4ec4, 0x4f3e, 0x4e9c, - 0x10a5, 0x109f, 0x109a, 0x109c, 0x10a2, 0x4eaa, 0x109b, 0x4ec9, - 0x10a3, 0x109d, 0x4ea6, 0x4eb2, 0x1188, 0x121a, 0x148d, 0x5bcc, - 0x5bd9, 0x5bca, 0x5bd8, 0x5bcf, 0x5cb7, 0x14b8, 0x5cad, 0x5cb9, - 0x6237, 0x15c3, 0x6241, 0x623e, 0x62b6, 0x6351, - /* 0x2b */ - 0x6363, 0x1a57, 0x1a79, 0x1ab2, 0x1ab0, 0x1aaf, 0x1ab1, 0x1bd2, - 0x1bd5, 0x005d, 0x1bbe, 0x1bb8, 0x1bb0, 0x1bb1, 0x1bc8, 0x005a, - 0x0057, 0x1bc6, 0x1bcc, 0x1be5, 0x1be3, 0x1bb4, 0x1d6a, 0x00b8, - 0x1d9f, 0x00c2, 0x1dc1, 0x00cf, 0x1dc2, 0x1dc3, 0x1e45, 0x1e48, - 0x00e7, 0x00e9, 0x1e4f, 0x1052, 0x00e8, 0x1ec5, 0x1eca, 0x1ec4, - 0x1f27, 0x1f58, 0x1f7d, 0x014a, 0x1fdd, 0x1fdc, 0x1fda, 0x1fd9, - 0x20b9, 0x0180, 0x20d0, 0x20b4, 0x20ca, 0x0187, 0x20a3, 0x20da, - 0x20a4, 0x0184, 0x20b2, 0x209e, 0x209f, 0x20b5, 0x0182, 0x0181, - 0x20cd, 0x0183, 0x20cc, 0x0222, 0x2300, 0x23ac, 0x2391, 0x238e, - 0x238d, 0x2392, 0x23a1, 0x2390, 0x23a6, 0x23a8, 0x023b, 0x239c, - 0x2396, 0x23a7, 0x023a, 0x0238, 0x0239, 0x0236, 0x24f5, 0x0285, - 0x2509, 0x2508, 0x0854, 0x2552, 0x029a, 0x02c4, - /* 0x2c */ - 0x25df, 0x02c5, 0x25eb, 0x25ef, 0x25f0, 0x25d5, 0x260d, 0x2604, - 0x25f9, 0x2602, 0x25f8, 0x25e2, 0x25d9, 0x25e7, 0x276a, 0x0354, - 0x0355, 0x27ab, 0x0356, 0x281b, 0x282f, 0x0396, 0x323c, 0x0395, - 0x0394, 0x03c4, 0x28d1, 0x28dc, 0x28e6, 0x28e1, 0x28cd, 0x857a, - 0x28e2, 0x28dd, 0x28e5, 0x29fb, 0x29fa, 0x2a1e, 0x0444, 0x2aa1, - 0x047d, 0x047e, 0x2afc, 0x2afb, 0x2b2f, 0x04b2, 0x04b6, 0x2b66, - 0x8599, 0x04dc, 0x04df, 0x2c5c, 0x0528, 0x2c4e, 0x2c51, 0x0519, - 0x0510, 0x2c23, 0x2c31, 0x2c7c, 0x2c52, 0x052c, 0x2c60, 0x2c4a, - 0x2c61, 0x051b, 0x2e18, 0x05c2, 0x05ef, 0x05e3, 0x05e5, 0x05ea, - 0x05e6, 0x05ee, 0x2f1f, 0x2f17, 0x2eea, 0x2f21, 0x2f04, 0x2f05, - 0x05e8, 0x3131, 0x3144, 0x3140, 0x0685, 0x3142, 0x31be, 0x06e0, - 0x3229, 0x321b, 0x06dd, 0x3223, 0x322c, 0x321a, - /* 0x2d */ - 0x3230, 0x323b, 0x321e, 0x3237, 0x3238, 0x06e1, 0x330e, 0x0751, - 0x0755, 0x33e8, 0x33d6, 0x0752, 0x33c7, 0x33bc, 0x3452, 0x33bf, - 0x33d5, 0x33fe, 0x4f63, 0x33fb, 0x85df, 0x33b1, 0x3401, 0x3405, - 0x3400, 0x33d7, 0x0c9e, 0x372a, 0x376b, 0x0852, 0x085e, 0x0860, - 0x085f, 0x37e1, 0x0892, 0x08d6, 0x3923, 0x38ff, 0x3914, 0x3905, - 0x3913, 0x3906, 0x3921, 0x08de, 0x3915, 0x38af, 0x38f4, 0x3902, - 0x3945, 0x85fe, 0x3926, 0x08d9, 0x3944, 0x08dd, 0x3924, 0x3ca5, - 0x09ac, 0x3ca3, 0x09b0, 0x3ca2, 0x3cbb, 0x3ca0, 0x3caa, 0x09af, - 0x09ae, 0x3ca8, 0x3cb6, 0x3cb2, 0x3ca7, 0x09ad, 0x09ab, 0x3cb9, - 0x3e2e, 0x0a16, 0x3e3c, 0x0a30, 0x3e6d, 0x0a33, 0x0a31, 0x3ee7, - 0x3eed, 0x0a6e, 0x3eec, 0x3ee5, 0x3ee2, 0x0ab1, 0x3fc4, 0x3fbd, - 0x3fcf, 0x3fc9, 0x3fc1, 0x3fd0, 0x0ab7, 0x3fce, - /* 0x2e */ - 0x40ed, 0x40eb, 0x0b1a, 0x40ef, 0x4149, 0x4150, 0x4146, 0x414a, - 0x0b59, 0x414d, 0x41a6, 0x0b7a, 0x0b78, 0x0b7b, 0x41a8, 0x0bde, - 0x0bec, 0x42c7, 0x42ff, 0x0c1e, 0x42fd, 0x43e6, 0x440a, 0x0c9b, - 0x4404, 0x440b, 0x4407, 0x0c9d, 0x4415, 0x4408, 0x0cfd, 0x45d3, - 0x45d4, 0x45d0, 0x45d7, 0x467c, 0x0d94, 0x0d93, 0x467d, 0x4683, - 0x4682, 0x0dc6, 0x46d4, 0x46d5, 0x46d3, 0x46d0, 0x46d2, 0x46fe, - 0x46fc, 0x4877, 0x487c, 0x487b, 0x0eb8, 0x866a, 0x0eb7, 0x0eb9, - 0x0f53, 0x7f33, 0x0f52, 0x0f51, 0x4b8f, 0x4cd3, 0x0fe3, 0x4ccb, - 0x4cd2, 0x0fe2, 0x4d09, 0x4ce2, 0x4cdf, 0x4cc6, 0x1063, 0x4e24, - 0x4ef7, 0x4ed8, 0x4edd, 0x10aa, 0x10a6, 0x4ef8, 0x4efc, 0x10a8, - 0x10a9, 0x4ee9, 0x10ab, 0x4eee, 0x10ac, 0x4ed0, 0x4f0e, 0x4ee2, - 0x4f0b, 0x4efd, 0x1d79, 0x5276, 0x119e, 0x5278, - /* 0x2f */ - 0x119f, 0x11a0, 0x5275, 0x527d, 0x120f, 0x5442, 0x5466, 0x121c, - 0x558c, 0x5605, 0x12ae, 0x5606, 0x12b0, 0x589f, 0x13d4, 0x5bf1, - 0x5be7, 0x5be9, 0x5bef, 0x5cc2, 0x5cbc, 0x14bb, 0x5cc6, 0x5cc0, - 0x14c1, 0x14c2, 0x5ccd, 0x5cc9, 0x14be, 0x5cc4, 0x14e5, 0x6181, - 0x15c6, 0x68ec, 0x1c32, 0x1bf9, 0x1c1d, 0x1bff, 0x1c04, 0x1bf0, - 0x1c03, 0x122e, 0x1c02, 0x1bfc, 0x1bf2, 0x1c24, 0x1c08, 0x1c36, - 0x1c2e, 0x0065, 0x1c10, 0x1c38, 0x1c39, 0x1bfd, 0x1c56, 0x1bfb, - 0x1da3, 0x1da6, 0x1da1, 0x00d1, 0x00d0, 0x1dc7, 0x1dc9, 0x1e60, - 0x1e64, 0x1e59, 0x1e65, 0x1e67, 0x1e57, 0x1e63, 0x00ee, 0x1e53, - 0x00ef, 0x1ecf, 0x011e, 0x1ece, 0x1ed0, 0x1ed1, 0x1ecc, 0x014b, - 0x014d, 0x0156, 0x210d, 0x20f4, 0x0192, 0x2113, 0x20ef, 0x20f5, - 0x20f9, 0x2102, 0x2100, 0x0193, 0x0190, 0x2118, - /* 0x30 */ - 0x20f0, 0x20f6, 0x8541, 0x0197, 0x2119, 0x0223, 0x2305, 0x23c9, - 0x023f, 0x23b7, 0x23cd, 0x0243, 0x0242, 0x0244, 0x23be, 0x23bb, - 0x0245, 0x23db, 0x23c8, 0x23c4, 0x23c5, 0x23d1, 0x23ca, 0x23c0, - 0x02d9, 0x02de, 0x2621, 0x262a, 0x02cf, 0x261d, 0x02cd, 0x260b, - 0x02dd, 0x02ce, 0x02d3, 0x02d6, 0x2622, 0x02dc, 0x02d1, 0x2624, - 0x02d0, 0x2614, 0x2631, 0x02d5, 0x262f, 0x261a, 0x2612, 0x02d4, - 0x02db, 0x2626, 0x762e, 0x0343, 0x27bc, 0x27bb, 0x27b7, 0x2805, - 0x2806, 0x2852, 0x2853, 0x03cd, 0x03d1, 0x28fa, 0x28eb, 0x03ca, - 0x28f3, 0x28f5, 0x28e9, 0x28ef, 0x03d4, 0x2a2a, 0x2a30, 0x2a2e, - 0x2a2c, 0x2a2f, 0x2aaf, 0x2aa9, 0x0486, 0x2afd, 0x2b32, 0x2b8e, - 0x2b93, 0x2b8f, 0x2c4f, 0x2c99, 0x0533, 0x2c7e, 0x0537, 0x2c74, - 0x2c4b, 0x2c73, 0x2c75, 0x052a, 0x051f, 0x2c56, - /* 0x31 */ - 0x2ca9, 0x2c8b, 0x2ca6, 0x0539, 0x2c93, 0x2cae, 0x2c9e, 0x2ca7, - 0x2e45, 0x05f2, 0x05f8, 0x2f2e, 0x05f7, 0x2f52, 0x2f30, 0x2f5b, - 0x05f4, 0x2f19, 0x2f1b, 0x05f1, 0x2f31, 0x2f5d, 0x2f37, 0x2f35, - 0x2f53, 0x05f5, 0x2f5c, 0x2f3f, 0x314b, 0x0687, 0x0f69, 0x318b, - 0x06b6, 0x319a, 0x3250, 0x3246, 0x324e, 0x3240, 0x06e9, 0x324b, - 0x3248, 0x06eb, 0x3260, 0x3244, 0x324d, 0x0734, 0x3437, 0x3424, - 0x0762, 0x075c, 0x341b, 0x3436, 0x0760, 0x342c, 0x3419, 0x3456, - 0x3447, 0x343e, 0x341e, 0x85e1, 0x3415, 0x3422, 0x3427, 0x3459, - 0x3458, 0x3455, 0x3430, 0x3423, 0x372e, 0x372b, 0x3730, 0x376c, - 0x0861, 0x378b, 0x087f, 0x37e9, 0x37ea, 0x37e5, 0x396b, 0x08e5, - 0x08e6, 0x3973, 0x3957, 0x08e9, 0x08f3, 0x395d, 0x3956, 0x398f, - 0x395b, 0x391c, 0x399a, 0x399b, 0x3999, 0x08ee, - /* 0x32 */ - 0x3981, 0x3971, 0x08ed, 0x08ec, 0x3972, 0x395c, 0x3996, 0x3cc4, - 0x3cdb, 0x3ccc, 0x3cd0, 0x3ce3, 0x3cdf, 0x09b3, 0x3cd6, 0x3cee, - 0x3cd5, 0x09b5, 0x0a27, 0x0a35, 0x0a36, 0x3e7a, 0x0a71, 0x3ef5, - 0x3f02, 0x0ab8, 0x0ac2, 0x3fe2, 0x3fec, 0x3fd5, 0x3ff9, 0x3fdf, - 0x3fe6, 0x0ac8, 0x0ac0, 0x0ac1, 0x0ac4, 0x3fe4, 0x3fe1, 0x40f3, - 0x0b1f, 0x0b1c, 0x0b1d, 0x0b4d, 0x4156, 0x4155, 0x4158, 0x4157, - 0x415e, 0x41c3, 0x0b87, 0x0b82, 0x41b4, 0x0b7d, 0x41b1, 0x0bdf, - 0x0c00, 0x42cb, 0x42cc, 0x432a, 0x0c20, 0x4316, 0x430f, 0x0c22, - 0x0c24, 0x433f, 0x432b, 0x430e, 0x4324, 0x0c21, 0x4321, 0x4318, - 0x43dd, 0x0ca4, 0x0ca5, 0x4424, 0x4436, 0x0d01, 0x4558, 0x4559, - 0x0d03, 0x4562, 0x45da, 0x45d9, 0x0d37, 0x45e1, 0x45e5, 0x45e8, - 0x45db, 0x0d38, 0x45e2, 0x45f0, 0x0d99, 0x0d98, - /* 0x33 */ - 0x0d97, 0x0dc9, 0x46da, 0x46dd, 0x0dc7, 0x46db, 0x46dc, 0x0dd9, - 0x0ddb, 0x470d, 0x470b, 0x4714, 0x488e, 0x4886, 0x0e7b, 0x4887, - 0x4883, 0x488b, 0x0e7c, 0x0ebd, 0x0ebc, 0x0ec3, 0x4924, 0x0ec1, - 0x0ebf, 0x0ec4, 0x4925, 0x4b62, 0x4b93, 0x4b99, 0x4b97, 0x0f7e, - 0x0f7f, 0x4bc4, 0x4bc6, 0x4c0a, 0x0fb4, 0x0fb3, 0x4c40, 0x4c3c, - 0x4c3b, 0x4cf6, 0x4cff, 0x4cee, 0x4d04, 0x4d03, 0x4d07, 0x8683, - 0x0fe6, 0x4cf7, 0x1059, 0x105a, 0x4e2d, 0x1064, 0x4e27, 0x4e29, - 0x4f1f, 0x4f57, 0x10b4, 0x10b9, 0x10b7, 0x10b5, 0x4f21, 0x10c1, - 0x10b1, 0x4f18, 0x4f58, 0x10b3, 0x10ba, 0x118c, 0x118b, 0x118d, - 0x5284, 0x529f, 0x529b, 0x5289, 0x52a6, 0x5292, 0x528f, 0x52a0, - 0x544f, 0x5478, 0x547a, 0x546e, 0x547b, 0x5484, 0x5473, 0x1278, - 0x1277, 0x560d, 0x560b, 0x5619, 0x12b2, 0x13d6, - /* 0x34 */ - 0x5ad0, 0x1445, 0x1492, 0x1495, 0x5bf9, 0x5c09, 0x5c08, 0x14c6, - 0x5cde, 0x5d51, 0x14e7, 0x14e8, 0x5ddb, 0x5ddf, 0x5dde, 0x5dd6, - 0x5de0, 0x6185, 0x6260, 0x6259, 0x15cb, 0x6256, 0x15cd, 0x15f1, - 0x62bd, 0x1722, 0x0021, 0x1c42, 0x1c59, 0x006f, 0x1c44, 0x1c66, - 0x1c52, 0x1c54, 0x1c71, 0x1c50, 0x1c7b, 0x1c7c, 0x1c58, 0x0070, - 0x0064, 0x1c79, 0x1c6c, 0x1c78, 0x1da8, 0x1dd1, 0x1dcf, 0x1e68, - 0x1e76, 0x1ed4, 0x012d, 0x1fa0, 0x1fc4, 0x0158, 0x2158, 0x214c, - 0x2168, 0x01a6, 0x2149, 0x01a4, 0x019f, 0x215d, 0x2129, 0x73ae, - 0x2154, 0x2153, 0x01a3, 0x215a, 0x01a0, 0x213a, 0x213f, 0x212b, - 0x23ea, 0x024a, 0x23ef, 0x0247, 0x0248, 0x23dd, 0x23fe, 0x8555, - 0x23de, 0x23e6, 0x0249, 0x23e8, 0x23ff, 0x2403, 0x24f7, 0x34a6, - 0x251f, 0x029e, 0x255b, 0x255d, 0x255e, 0x7537, - /* 0x35 */ - 0x02e8, 0x262b, 0x02ec, 0x263b, 0x02ed, 0x02e6, 0x2661, 0x263a, - 0x266e, 0x264b, 0x266b, 0x02eb, 0x02e7, 0x2645, 0x264e, 0x2668, - 0x263d, 0x2671, 0x263f, 0x266f, 0x2675, 0x02e9, 0x2673, 0x262c, - 0x2659, 0x2654, 0x264f, 0x2663, 0x035c, 0x035d, 0x27c8, 0x0360, - 0x27c3, 0x035b, 0x285b, 0x2861, 0x0399, 0x2921, 0x290a, 0x2909, - 0x03d8, 0x292c, 0x2908, 0x03da, 0x03dd, 0x292a, 0x2915, 0x03e0, - 0x2910, 0x2913, 0x03e5, 0x292f, 0x2918, 0x03d7, 0x29e3, 0x2a39, - 0x2a35, 0x2a3a, 0x2a32, 0x044e, 0x048c, 0x0488, 0x858d, 0x2abb, - 0x2aba, 0x2b34, 0x2b39, 0x04ce, 0x859c, 0x04e5, 0x04e6, 0x2c98, - 0x0532, 0x2cd0, 0x0540, 0x0547, 0x054c, 0x2cd7, 0x2caa, 0x0535, - 0x2ca1, 0x2ca4, 0x0530, 0x2cee, 0x0543, 0x2ce7, 0x054d, 0x2ce8, - 0x2cde, 0x05b7, 0x05f3, 0x2f7e, 0x2f8b, 0x0602, - /* 0x36 */ - 0x060b, 0x2f79, 0x2f86, 0x2f93, 0x0604, 0x2f73, 0x2f6a, 0x85ba, - 0x2f6c, 0x0608, 0x2f7f, 0x05fc, 0x2fb2, 0x2fba, 0x05ff, 0x0600, - 0x2f66, 0x2f74, 0x068b, 0x315a, 0x068d, 0x314e, 0x314d, 0x318d, - 0x318e, 0x31ad, 0x06ca, 0x31c7, 0x31ca, 0x06cb, 0x31c9, 0x85cb, - 0x31e3, 0x3257, 0x06f3, 0x3263, 0x3267, 0x331a, 0x3319, 0x3316, - 0x0736, 0x076a, 0x349e, 0x34b6, 0x3498, 0x3473, 0x076b, 0x349a, - 0x348e, 0x34b7, 0x34db, 0x34a5, 0x346c, 0x34c1, 0x3484, 0x0771, - 0x0768, 0x3495, 0x347a, 0x3499, 0x0772, 0x34b8, 0x34b9, 0x3470, - 0x082e, 0x3735, 0x0862, 0x3790, 0x37bb, 0x37ed, 0x0898, 0x08b5, - 0x08eb, 0x39c1, 0x39c3, 0x39ce, 0x08fb, 0x08f8, 0x39ad, 0x3a04, - 0x08f5, 0x39b9, 0x0908, 0x39e7, 0x8607, 0x3a08, 0x3a06, 0x090a, - 0x3a0a, 0x39b0, 0x0906, 0x39f8, 0x3a0c, 0x08fd, - /* 0x37 */ - 0x39b1, 0x08fa, 0x3a02, 0x3a07, 0x3a09, 0x3a01, 0x3a17, 0x39ff, - 0x3a12, 0x09ba, 0x09b9, 0x3d03, 0x3d07, 0x3d01, 0x3cf5, 0x3cf1, - 0x3d08, 0x3cf2, 0x3d0f, 0x09bb, 0x3cfe, 0x0a18, 0x0a40, 0x0a3d, - 0x3f1a, 0x3f10, 0x3f0e, 0x4002, 0x3ff3, 0x0acd, 0x0ac9, 0x3ffb, - 0x0acb, 0x0aca, 0x0ace, 0x411b, 0x4123, 0x4161, 0x4168, 0x0b5e, - 0x4167, 0x41d3, 0x0b91, 0x0b8c, 0x4290, 0x0be1, 0x0c02, 0x42d5, - 0x42d7, 0x42d6, 0x4330, 0x0c2b, 0x4326, 0x0c2a, 0x4340, 0x0a14, - 0x431e, 0x0cad, 0x0ca3, 0x0cab, 0x4447, 0x0caf, 0x444b, 0x4451, - 0x444f, 0x4442, 0x4446, 0x0d04, 0x456e, 0x456c, 0x45f2, 0x0d44, - 0x45f1, 0x45f5, 0x45f3, 0x45f9, 0x0d3d, 0x0d47, 0x0d9c, 0x469a, - 0x4693, 0x4691, 0x46e1, 0x0de0, 0x0de4, 0x4721, 0x471c, 0x4716, - 0x4717, 0x4736, 0x471f, 0x0e80, 0x4893, 0x4899, - /* 0x38 */ - 0x489a, 0x489c, 0x0eca, 0x4949, 0x0ed4, 0x4934, 0x4937, 0x0ed2, - 0x492d, 0x0ecb, 0x494c, 0x0ece, 0x0ed3, 0x4948, 0x0f44, 0x0f48, - 0x4b3b, 0x0f45, 0x0f81, 0x0f86, 0x0f85, 0x4c08, 0x4c1a, 0x0fa3, - 0x4c1d, 0x0fb5, 0x4c49, 0x4c45, 0x4c44, 0x489b, 0x0ffa, 0x0ff9, - 0x4d2a, 0x4d2e, 0x0ffb, 0x0ff2, 0x4d31, 0x0fef, 0x4d1a, 0x4d34, - 0x4d17, 0x105b, 0x1066, 0x10ce, 0x4f1d, 0x4f71, 0x4f84, 0x4f80, - 0x4f72, 0x4fa1, 0x01b4, 0x4f79, 0x4f91, 0x10c8, 0x4f9f, 0x4fad, - 0x10d1, 0x10c5, 0x4f23, 0x10d2, 0x4f85, 0x4f9c, 0x4fb7, 0x5258, - 0x525a, 0x118f, 0x5257, 0x52b2, 0x11a7, 0x52ae, 0x11a5, 0x11a4, - 0x1211, 0x5445, 0x549c, 0x5494, 0x54a3, 0x548f, 0x54a5, 0x54a9, - 0x54a6, 0x548a, 0x54a0, 0x5490, 0x5592, 0x5591, 0x5594, 0x12b5, - 0x5626, 0x5632, 0x5628, 0x12b4, 0x12bd, 0x561c, - /* 0x39 */ - 0x12bb, 0x562b, 0x5620, 0x12b9, 0x5629, 0x12c2, 0x12be, 0x12ba, - 0x5621, 0x583a, 0x06b7, 0x585b, 0x5858, 0x587c, 0x1358, 0x58a6, - 0x58ae, 0x58ad, 0x5965, 0x139b, 0x597e, 0x139c, 0x597c, 0x597f, - 0x597a, 0x59bd, 0x13da, 0x13de, 0x59c0, 0x59bb, 0x5aad, 0x5aaf, - 0x5ad6, 0x144d, 0x1446, 0x1447, 0x144b, 0x144c, 0x5ad9, 0x1448, - 0x1499, 0x5c12, 0x5c0e, 0x5c25, 0x149b, 0x5c13, 0x5cee, 0x14ce, - 0x5cab, 0x5cf7, 0x14eb, 0x5d59, 0x5d54, 0x5df2, 0x5df0, 0x5de5, - 0x5df6, 0x151c, 0x158c, 0x6187, 0x15d1, 0x625a, 0x15d6, 0x15d3, - 0x626e, 0x15d4, 0x15d0, 0x15d5, 0x6279, 0x160b, 0x64e1, 0x64e6, - 0x17c6, 0x6ac4, 0x6ad2, 0x1a80, 0x0024, 0x1a81, 0x1c8f, 0x1c97, - 0x1c88, 0x1c89, 0x0074, 0x007a, 0x1c81, 0x1d60, 0x7064, 0x00c3, - 0x2a42, 0x1dd3, 0x00d4, 0x00d5, 0x1dd2, 0x1dd6, - /* 0x3a */ - 0x1e73, 0x00fb, 0x1e70, 0x00f7, 0x0132, 0x8533, 0x1fa8, 0x1fa6, - 0x1fc5, 0x2197, 0x21de, 0x01ba, 0x01bf, 0x2196, 0x21b4, 0x01c7, - 0x2185, 0x01b7, 0x219b, 0x21a0, 0x01b9, 0x2159, 0x01c3, 0x2186, - 0x01bd, 0x01d0, 0x21af, 0x217a, 0x01c1, 0x01be, 0x01cd, 0x219e, - 0x01cb, 0x21a9, 0x230f, 0x230e, 0x241a, 0x024f, 0x241f, 0x0253, - 0x243c, 0x2418, 0x243e, 0x2426, 0x0255, 0x243a, 0x7464, 0x2422, - 0x0251, 0x24fb, 0x2563, 0x2564, 0x029f, 0x26a8, 0x26a3, 0x2682, - 0x2688, 0x26a1, 0x2685, 0x2698, 0x02fe, 0x2699, 0x02fb, 0x2689, - 0x2681, 0x2696, 0x2680, 0x02f1, 0x02f5, 0x2691, 0x02ef, 0x0304, - 0x0303, 0x02f4, 0x26cf, 0x02f3, 0x0302, 0x02f7, 0x02fa, 0x02fd, - 0x02ee, 0x2687, 0x26a0, 0x02f0, 0x2679, 0x02f2, 0x2686, 0x26ab, - 0x26aa, 0x26a4, 0x268d, 0x267e, 0x0344, 0x27d5, - /* 0x3b */ - 0x0362, 0x0377, 0x09c9, 0x281e, 0x285f, 0x285e, 0x2944, 0x293e, - 0x03e8, 0x2948, 0x291c, 0x03ef, 0x295b, 0x294d, 0x03e6, 0x03ed, - 0x2957, 0x03e7, 0x2953, 0x294f, 0x03eb, 0x293b, 0x2946, 0x042d, - 0x0455, 0x2a46, 0x2a47, 0x0453, 0x2a48, 0x2ac0, 0x2abd, 0x2abf, - 0x0490, 0x2b11, 0x04be, 0x2b3e, 0x2b3b, 0x04bd, 0x2b3a, 0x04cf, - 0x04d0, 0x04ec, 0x2ba7, 0x054b, 0x2cea, 0x0548, 0x2d07, 0x2d22, - 0x2d0c, 0x0555, 0x0551, 0x2cb3, 0x2cd6, 0x2cd2, 0x054e, 0x2ce3, - 0x2ce5, 0x2ce9, 0x056b, 0x055e, 0x2d11, 0x2cfd, 0x0560, 0x0567, - 0x2d1e, 0x2d20, 0x2d21, 0x2e1e, 0x05b8, 0x2fe2, 0x2fde, 0x2fe6, - 0x0614, 0x060f, 0x0607, 0x0613, 0x2ff8, 0x0617, 0x2ffe, 0x2fc1, - 0x2fbf, 0x2ff7, 0x2fd1, 0x315f, 0x3160, 0x3161, 0x069a, 0x06b8, - 0x31d1, 0x06f7, 0x06f8, 0x327d, 0x326b, 0x327f, - /* 0x3c */ - 0x06fd, 0x06f5, 0x3273, 0x3281, 0x326d, 0x3269, 0x06fa, 0x0738, - 0x331e, 0x34ed, 0x0787, 0x0780, 0x0788, 0x0779, 0x3503, 0x077c, - 0x34fe, 0x34e5, 0x351e, 0x3502, 0x0783, 0x0785, 0x3509, 0x34ca, - 0x3500, 0x85e5, 0x3501, 0x3518, 0x34e2, 0x34cf, 0x077b, 0x352e, - 0x34c5, 0x34ff, 0x0786, 0x351c, 0x34c3, 0x0834, 0x376f, 0x0855, - 0x376e, 0x0868, 0x37be, 0x089c, 0x37f4, 0x382d, 0x08fc, 0x39b6, - 0x3a75, 0x3a1e, 0x091a, 0x3a18, 0x0917, 0x3a48, 0x091b, 0x3a4f, - 0x0913, 0x3a42, 0x3a6a, 0x3a70, 0x39fe, 0x0905, 0x0907, 0x3a6d, - 0x091c, 0x3a7b, 0x3a7e, 0x3a59, 0x0911, 0x3a57, 0x0916, 0x3a80, - 0x3a50, 0x0915, 0x3a29, 0x3a76, 0x3a2a, 0x3a4c, 0x3d2a, 0x09cb, - 0x3d35, 0x3d2c, 0x3d37, 0x3d1d, 0x09c5, 0x09c2, 0x3d38, 0x09cd, - 0x3d34, 0x3d2b, 0x3d33, 0x3d27, 0x3d24, 0x09ca, - /* 0x3d */ - 0x3d2d, 0x3e32, 0x3e83, 0x3e82, 0x3e87, 0x3f06, 0x3f24, 0x3f38, - 0x3f2a, 0x3f2c, 0x3f2b, 0x0a83, 0x3f2f, 0x3f28, 0x4017, 0x0ad6, - 0x0ad5, 0x4019, 0x4038, 0x0ad1, 0x401f, 0x4014, 0x403c, 0x3ff7, - 0x401c, 0x4015, 0x4018, 0x4039, 0x40f9, 0x4124, 0x8634, 0x0b52, - 0x0b5f, 0x416e, 0x416d, 0x4171, 0x418e, 0x0b95, 0x41e5, 0x0b9d, - 0x0b98, 0x0b9e, 0x0b96, 0x4294, 0x42b3, 0x0c03, 0x42d9, 0x0c2f, - 0x4348, 0x4349, 0x4343, 0x0c31, 0x0c33, 0x4342, 0x43df, 0x0cb4, - 0x4463, 0x4476, 0x0cb0, 0x445f, 0x4466, 0x4566, 0x4571, 0x0d08, - 0x0d07, 0x4576, 0x4584, 0x4575, 0x45ff, 0x4607, 0x0d4e, 0x460e, - 0x4609, 0x0d50, 0x0d52, 0x0da1, 0x0da3, 0x0da5, 0x0dcc, 0x46e7, - 0x46e2, 0x4755, 0x0def, 0x0dea, 0x4743, 0x4757, 0x476c, 0x4742, - 0x4753, 0x0ded, 0x4741, 0x0e85, 0x0e84, 0x48a7, - /* 0x3e */ - 0x48a0, 0x48a6, 0x48a4, 0x4974, 0x0edb, 0x4959, 0x0ed9, 0x4960, - 0x4957, 0x496c, 0x497e, 0x4964, 0x0ed7, 0x495a, 0x495d, 0x0eda, - 0x0ede, 0x0ed8, 0x4976, 0x494d, 0x4975, 0x0ed5, 0x4bd3, 0x4bd6, - 0x0f9c, 0x0f9d, 0x4c60, 0x4c4e, 0x4d45, 0x4d3b, 0x0ffe, 0x4d48, - 0x4d42, 0x4d49, 0x4d40, 0x4d14, 0x4d41, 0x1007, 0x4def, 0x4df6, - 0x4e03, 0x106a, 0x4fed, 0x10e7, 0x4fda, 0x5018, 0x4fd2, 0x5008, - 0x10e2, 0x5000, 0x10df, 0x10e1, 0x10e5, 0x5017, 0x4f46, 0x5014, - 0x4fd3, 0x5005, 0x501f, 0x5002, 0x5016, 0x4fcd, 0x4fe6, 0x1191, - 0x525d, 0x52d5, 0x52e1, 0x11b4, 0x11b0, 0x11b5, 0x11ae, 0x52ee, - 0x5447, 0x5446, 0x122d, 0x122c, 0x54bb, 0x122b, 0x54bf, 0x54b4, - 0x1229, 0x54b5, 0x127f, 0x559a, 0x5643, 0x12c9, 0x12cb, 0x565a, - 0x12c5, 0x12c6, 0x12ca, 0x5635, 0x5638, 0x5642, - /* 0x3f */ - 0x5649, 0x565d, 0x564b, 0x563d, 0x12d2, 0x12d0, 0x132d, 0x1335, - 0x5860, 0x585e, 0x587f, 0x587e, 0x5883, 0x136c, 0x58b1, 0x5987, - 0x139d, 0x13a0, 0x5988, 0x5983, 0x13a2, 0x139f, 0x5986, 0x598b, - 0x5982, 0x59ca, 0x59d2, 0x13eb, 0x13e2, 0x59d4, 0x59c9, 0x5ab0, - 0x1436, 0x1432, 0x1450, 0x5af2, 0x5ae4, 0x5af3, 0x5aea, 0x144f, - 0x5afd, 0x1452, 0x5b9d, 0x5c2b, 0x5c2a, 0x149e, 0x5c28, 0x5c29, - 0x5c2c, 0x14a0, 0x149c, 0x5c3a, 0x5c30, 0x5c37, 0x5c3b, 0x14d1, - 0x5d0a, 0x14ef, 0x14f0, 0x14f1, 0x5dfe, 0x5e20, 0x151d, 0x5e0b, - 0x151f, 0x5e18, 0x5e22, 0x151e, 0x5e1b, 0x5e08, 0x1520, 0x5e0e, - 0x5e13, 0x158e, 0x1591, 0x6195, 0x83dd, 0x1590, 0x15d7, 0x628c, - 0x627b, 0x627f, 0x6281, 0x15d9, 0x6282, 0x15f4, 0x15f6, 0x0160, - 0x15f5, 0x15f3, 0x62ee, 0x62ed, 0x160c, 0x62ec, - /* 0x40 */ - 0x635f, 0x636f, 0x1651, 0x636d, 0x16a6, 0x16a7, 0x16a8, 0x1727, - 0x1724, 0x1725, 0x64f0, 0x172a, 0x1774, 0x17c7, 0x66a9, 0x17e7, - 0x17ed, 0x66e0, 0x1ab7, 0x002e, 0x007b, 0x1ccc, 0x1cbc, 0x007c, - 0x1caa, 0x1cb9, 0x007d, 0x1cab, 0x1cc3, 0x1ccd, 0x1d7e, 0x1e7e, - 0x1e79, 0x00fd, 0x8523, 0x1ee1, 0x1ee0, 0x1ee7, 0x1f80, 0x1fab, - 0x1faa, 0x1fa9, 0x1fe0, 0x21ea, 0x01da, 0x21d7, 0x01d6, 0x01db, - 0x21c1, 0x2315, 0x025b, 0x246c, 0x025c, 0x245c, 0x2450, 0x2461, - 0x246a, 0x2469, 0x2456, 0x2460, 0x2466, 0x245f, 0x2523, 0x2566, - 0x2568, 0x0306, 0x030b, 0x26ce, 0x030d, 0x26c5, 0x26c3, 0x030a, - 0x0313, 0x26d0, 0x0310, 0x0312, 0x0309, 0x0308, 0x0311, 0x030f, - 0x2774, 0x2776, 0x27dc, 0x27d7, 0x27da, 0x27db, 0x0367, 0x2820, - 0x296d, 0x2966, 0x03f6, 0x2964, 0x296e, 0x857e, - /* 0x41 */ - 0x2960, 0x2b42, 0x2b5a, 0x2b6e, 0x0564, 0x056c, 0x2d30, 0x2d3a, - 0x2d2a, 0x2d43, 0x2d19, 0x2d31, 0x056d, 0x2d3d, 0x057a, 0x0575, - 0x060d, 0x3008, 0x3032, 0x3038, 0x061e, 0x3031, 0x061b, 0x3019, - 0x062a, 0x3011, 0x061f, 0x0622, 0x3029, 0x301d, 0x0625, 0x0627, - 0x0629, 0x303c, 0x0624, 0x3046, 0x3047, 0x0628, 0x0626, 0x303a, - 0x3007, 0x0623, 0x316b, 0x069f, 0x3170, 0x316d, 0x06b1, 0x31e4, - 0x3293, 0x0703, 0x0707, 0x070c, 0x0706, 0x328f, 0x0704, 0x0709, - 0x3292, 0x0705, 0x328e, 0x0708, 0x3546, 0x0796, 0x079c, 0x079f, - 0x079b, 0x0798, 0x0799, 0x0794, 0x3531, 0x078d, 0x07a3, 0x353e, - 0x0793, 0x357c, 0x3543, 0x0792, 0x3573, 0x85e8, 0x3555, 0x078e, - 0x078c, 0x3585, 0x354d, 0x3550, 0x3547, 0x3567, 0x3536, 0x3564, - 0x3561, 0x079a, 0x357d, 0x3744, 0x3740, 0x3771, - /* 0x42 */ - 0x3773, 0x379c, 0x086a, 0x086d, 0x0884, 0x37c1, 0x08a0, 0x37fa, - 0x3831, 0x3832, 0x091d, 0x0926, 0x3ab8, 0x3aa8, 0x0933, 0x3a91, - 0x3abb, 0x0938, 0x3a9a, 0x0930, 0x0928, 0x3aa9, 0x0927, 0x092a, - 0x3ab5, 0x3a6c, 0x3ae8, 0x0931, 0x3add, 0x3ada, 0x3ae6, 0x3aac, - 0x0934, 0x092e, 0x093b, 0x3ad9, 0x3ae3, 0x3ae9, 0x3adb, 0x0929, - 0x3d6f, 0x09d2, 0x09d8, 0x3d48, 0x09cf, 0x3d4a, 0x3d6b, 0x09d9, - 0x3d4f, 0x3d57, 0x3d74, 0x09ce, 0x09d3, 0x09d0, 0x3d45, 0x3d51, - 0x3d6d, 0x07a1, 0x3e51, 0x3e50, 0x3e4e, 0x0a47, 0x3f41, 0x0a8b, - 0x3f2e, 0x3f46, 0x0ad4, 0x4027, 0x0ade, 0x4048, 0x4053, 0x403d, - 0x0adf, 0x405d, 0x4056, 0x0ad7, 0x401e, 0x4047, 0x4043, 0x4058, - 0x4049, 0x0ae1, 0x404c, 0x4045, 0x403e, 0x0b2f, 0x4101, 0x411e, - 0x0b62, 0x0b63, 0x417a, 0x41ee, 0x4202, 0x4297, - /* 0x43 */ - 0x4298, 0x0be2, 0x0c04, 0x0c43, 0x435d, 0x4364, 0x4353, 0x4358, - 0x4482, 0x4490, 0x448a, 0x0cbe, 0x447a, 0x447d, 0x0cba, 0x448b, - 0x4478, 0x0cbc, 0x864e, 0x448d, 0x4488, 0x4492, 0x4481, 0x457e, - 0x4583, 0x0d0d, 0x0d0e, 0x0d11, 0x4580, 0x0d0f, 0x0d12, 0x0d55, - 0x460f, 0x0d59, 0x0d5b, 0x461d, 0x0d57, 0x46a1, 0x46a4, 0x0dce, - 0x46e9, 0x46ea, 0x0dfe, 0x4762, 0x476b, 0x0dfc, 0x475e, 0x0df5, - 0x4779, 0x0df9, 0x0dfa, 0x476f, 0x4768, 0x0e88, 0x0e89, 0x48ae, - 0x0e8a, 0x0e87, 0x0e8b, 0x48b0, 0x0ee6, 0x4990, 0x0eed, 0x498a, - 0x0ee5, 0x498b, 0x4999, 0x4995, 0x0ee0, 0x4987, 0x4978, 0x4997, - 0x4989, 0x4998, 0x0ee1, 0x0f5b, 0x0f5c, 0x4ba3, 0x0f8f, 0x0f8b, - 0x0f8d, 0x4bdd, 0x4c57, 0x0fb9, 0x4d63, 0x4d6a, 0x4d6c, 0x100f, - 0x1019, 0x1013, 0x4d5d, 0x4d75, 0x1018, 0x4d5f, - /* 0x44 */ - 0x1016, 0x4d7d, 0x4d6d, 0x1053, 0x868d, 0x4e41, 0x504f, 0x5084, - 0x10f6, 0x507f, 0x10f5, 0x5048, 0x502a, 0x507b, 0x5072, 0x5064, - 0x502e, 0x505c, 0x5053, 0x10f7, 0x5041, 0x50c8, 0x10f0, 0x5062, - 0x5080, 0x503e, 0x5083, 0x5071, 0x10f9, 0x504a, 0x5055, 0x5058, - 0x1192, 0x1195, 0x1196, 0x52fc, 0x52fd, 0x5315, 0x11b9, 0x5316, - 0x52ff, 0x11bd, 0x11b8, 0x1212, 0x5458, 0x54cf, 0x54e0, 0x1280, - 0x1281, 0x129a, 0x1298, 0x55e7, 0x566a, 0x5680, 0x12d4, 0x566f, - 0x5665, 0x12da, 0x5678, 0x567d, 0x5688, 0x12d6, 0x12db, 0x5664, - 0x567e, 0x12dc, 0x5667, 0x5863, 0x5888, 0x1371, 0x58cd, 0x1372, - 0x58c9, 0x13a8, 0x59ed, 0x13f0, 0x86db, 0x13f1, 0x13fd, 0x1438, - 0x1437, 0x1439, 0x5ab1, 0x1455, 0x1453, 0x5b04, 0x5b9e, 0x5ba0, - 0x5c43, 0x5c46, 0x5c48, 0x5c45, 0x5c40, 0x5c4c, - /* 0x45 */ - 0x14d5, 0x14bd, 0x5d0c, 0x5d13, 0x5d15, 0x14f5, 0x5d6b, 0x5d67, - 0x5e5d, 0x5e55, 0x5e35, 0x1521, 0x5e59, 0x5e2f, 0x5e3c, 0x5e8f, - 0x5e5c, 0x5e6a, 0x5e62, 0x5e5f, 0x5e6b, 0x5e6e, 0x5e3b, 0x5e44, - 0x5e41, 0x619a, 0x1592, 0x6199, 0x15de, 0x15db, 0x15da, 0x628f, - 0x15df, 0x6296, 0x15f9, 0x15f8, 0x15fa, 0x62f4, 0x62fc, 0x160e, - 0x6355, 0x1643, 0x6379, 0x1656, 0x1653, 0x169e, 0x63ee, 0x63f5, - 0x16a9, 0x640b, 0x16fa, 0x64f3, 0x1731, 0x1730, 0x64f7, 0x64ff, - 0x64f5, 0x1732, 0x64ec, 0x64f1, 0x1729, 0x172e, 0x659a, 0x1776, - 0x66e2, 0x673d, 0x675d, 0x68e8, 0x18a5, 0x68eb, 0x68ef, 0x68ee, - 0x6a81, 0x6b14, 0x1cd0, 0x1cd9, 0x1cdc, 0x1cd8, 0x008c, 0x1ce1, - 0x1ceb, 0x008b, 0x0089, 0x1cf4, 0x1ce2, 0x1cde, 0x008d, 0x0086, - 0x00d7, 0x1df4, 0x0104, 0x0107, 0x0103, 0x1eed, - /* 0x46 */ - 0x1eea, 0x0122, 0x1f32, 0x0151, 0x1fae, 0x1fb0, 0x0161, 0x21fb, - 0x2203, 0x220b, 0x01e9, 0x2207, 0x01e5, 0x21f8, 0x01e4, 0x2228, - 0x221e, 0x01e3, 0x2218, 0x2211, 0x2251, 0x2205, 0x2317, 0x2492, - 0x0265, 0x248c, 0x0263, 0x2478, 0x2484, 0x2473, 0x24ad, 0x2497, - 0x2495, 0x2477, 0x2472, 0x2496, 0x248d, 0x2510, 0x028c, 0x256c, - 0x031a, 0x26e7, 0x0315, 0x26e4, 0x0320, 0x0321, 0x26ef, 0x2226, - 0x031c, 0x031b, 0x26f0, 0x297b, 0x03fe, 0x2983, 0x0404, 0x0401, - 0x298b, 0x298c, 0x0400, 0x2978, 0x2a52, 0x046d, 0x0493, 0x2ad0, - 0x2acf, 0x04a1, 0x2bb3, 0x2bb4, 0x0576, 0x0579, 0x0572, 0x2d7b, - 0x0583, 0x2d6f, 0x2d81, 0x2d3c, 0x2d42, 0x2d38, 0x2d33, 0x85a6, - 0x2d60, 0x2d69, 0x2d7d, 0x2d86, 0x2e2c, 0x2e28, 0x0638, 0x304c, - 0x0630, 0x3057, 0x307c, 0x0634, 0x063a, 0x3055, - /* 0x47 */ - 0x3062, 0x3071, 0x306a, 0x3056, 0x303b, 0x3081, 0x0635, 0x304f, - 0x307e, 0x3064, 0x063f, 0x0640, 0x0632, 0x0631, 0x0636, 0x3171, - 0x7aba, 0x070f, 0x32a5, 0x329a, 0x329c, 0x0710, 0x32a6, 0x070d, - 0x32a4, 0x358f, 0x35c5, 0x35c8, 0x3592, 0x35b2, 0x07a9, 0x07b4, - 0x07ac, 0x35e3, 0x35c0, 0x35d6, 0x35d1, 0x359f, 0x35a2, 0x35d2, - 0x07b8, 0x07ae, 0x7bf3, 0x35e1, 0x35d5, 0x359d, 0x07b3, 0x07ba, - 0x3598, 0x083f, 0x3774, 0x37a1, 0x093c, 0x3af0, 0x3af3, 0x0942, - 0x0940, 0x3b1b, 0x3b0c, 0x3b1d, 0x3b34, 0x3b28, 0x3b17, 0x093e, - 0x3b44, 0x3b42, 0x3b04, 0x3b11, 0x3afa, 0x3b4a, 0x3d91, 0x3d8e, - 0x09e1, 0x3d8b, 0x3d8d, 0x3d7f, 0x3d8c, 0x3d7e, 0x3d7c, 0x3d83, - 0x09e6, 0x3d88, 0x09e0, 0x0a15, 0x3e94, 0x0a93, 0x3f55, 0x3f53, - 0x3f4f, 0x3f54, 0x406c, 0x4065, 0x4066, 0x4061, - /* 0x48 */ - 0x406b, 0x4068, 0x4076, 0x0ae7, 0x4060, 0x7e0f, 0x4074, 0x4106, - 0x420e, 0x0bad, 0x4207, 0x0bae, 0x0be3, 0x42b9, 0x0bf5, 0x42b7, - 0x42e2, 0x0c06, 0x4374, 0x4377, 0x4376, 0x4375, 0x0c4f, 0x4378, - 0x4371, 0x0c54, 0x437a, 0x3d5b, 0x437b, 0x44a6, 0x44ae, 0x44b8, - 0x0ccb, 0x0ce3, 0x0cc9, 0x44b1, 0x44af, 0x0d13, 0x4589, 0x4587, - 0x0d15, 0x0d61, 0x4629, 0x0d66, 0x462a, 0x0d64, 0x462d, 0x462c, - 0x0d60, 0x4632, 0x0d63, 0x46ec, 0x46f0, 0x4781, 0x479e, 0x4783, - 0x0e0a, 0x4792, 0x0e04, 0x47a3, 0x479f, 0x4793, 0x0e07, 0x4786, - 0x48b8, 0x48b7, 0x0e8d, 0x0e8f, 0x0e90, 0x0e92, 0x0eec, 0x49c8, - 0x49b6, 0x866c, 0x49d1, 0x0ee7, 0x49a8, 0x49ab, 0x0ef2, 0x49b3, - 0x49cd, 0x0eee, 0x49cf, 0x49a4, 0x0eef, 0x0f4c, 0x4b41, 0x4b6f, - 0x4b71, 0x0f5e, 0x0f5f, 0x0f76, 0x0f74, 0x0f72, - /* 0x49 */ - 0x0f90, 0x4c23, 0x4c5b, 0x0fbe, 0x4c61, 0x4c5f, 0x4d81, 0x1026, - 0x1025, 0x4d84, 0x4e13, 0x1074, 0x4e4a, 0x4e4c, 0x10fd, 0x1105, - 0x1101, 0x50bd, 0x5095, 0x1109, 0x5092, 0x50c3, 0x110c, 0x5096, - 0x50a5, 0x50b5, 0x50b3, 0x50a3, 0x50e4, 0x50d8, 0x50d5, 0x110d, - 0x50b7, 0x50ad, 0x50da, 0x5093, 0x5336, 0x11c0, 0x11c5, 0x11c9, - 0x533d, 0x532b, 0x5347, 0x5339, 0x11d5, 0x5345, 0x531d, 0x1241, - 0x54ff, 0x54ea, 0x1233, 0x54f5, 0x123a, 0x5500, 0x54ed, 0x5503, - 0x54e9, 0x1240, 0x1242, 0x55ea, 0x12e8, 0x569b, 0x568e, 0x56a2, - 0x12e4, 0x569c, 0x5694, 0x5690, 0x56a9, 0x56ac, 0x12e7, 0x569f, - 0x12e6, 0x12e1, 0x569d, 0x1339, 0x5867, 0x135c, 0x1375, 0x58d0, - 0x58d6, 0x58d4, 0x5998, 0x599a, 0x5997, 0x13ae, 0x13b0, 0x13fa, - 0x5a0b, 0x5a08, 0x5a01, 0x5ab4, 0x5ab3, 0x145b, - /* 0x4a */ - 0x5ba1, 0x5ba2, 0x14a5, 0x5c5a, 0x14a2, 0x5c61, 0x5c5f, 0x14db, - 0x14da, 0x5d25, 0x5d7b, 0x5d76, 0x5d7c, 0x1524, 0x5e89, 0x5ef6, - 0x5eb1, 0x5ead, 0x5e92, 0x5e81, 0x5e84, 0x1526, 0x5eae, 0x5e90, - 0x5e9e, 0x1598, 0x1596, 0x159a, 0x61a2, 0x61a7, 0x1597, 0x15e1, - 0x15e0, 0x15e3, 0x15e2, 0x62a0, 0x629d, 0x629f, 0x62d0, 0x15fb, - 0x62d1, 0x1612, 0x1614, 0x6359, 0x1645, 0x6364, 0x165c, 0x165d, - 0x16b8, 0x6419, 0x16ba, 0x6414, 0x6415, 0x641a, 0x1703, 0x1735, - 0x1736, 0x1739, 0x6506, 0x172d, 0x64f8, 0x6501, 0x177a, 0x65be, - 0x65bc, 0x65b7, 0x65b6, 0x65c0, 0x1778, 0x65b8, 0x177b, 0x177c, - 0x177e, 0x65c4, 0x177d, 0x65bf, 0x17c9, 0x66da, 0x66e4, 0x66e9, - 0x66e8, 0x66ea, 0x66e5, 0x17f3, 0x6726, 0x181a, 0x1819, 0x6740, - 0x181f, 0x18a6, 0x18a7, 0x18a8, 0x18ab, 0x18a9, - /* 0x4b */ - 0x192e, 0x6abd, 0x195e, 0x0095, 0x0093, 0x0092, 0x1d0e, 0x0096, - 0x1cf7, 0x0097, 0x1cfc, 0x1d0d, 0x1d01, 0x1dda, 0x1dd9, 0x1ddb, - 0x1e86, 0x1e8e, 0x1eee, 0x1f33, 0x1fb1, 0x01f5, 0x2247, 0x222d, - 0x2254, 0x01ea, 0x224b, 0x2252, 0x2231, 0x2244, 0x2256, 0x2250, - 0x222b, 0x01f3, 0x224d, 0x2237, 0x224f, 0x24a2, 0x24b7, 0x0269, - 0x24b2, 0x026b, 0x24aa, 0x24b5, 0x24b0, 0x026c, 0x24b4, 0x24a4, - 0x24a7, 0x0268, 0x2526, 0x26fe, 0x0328, 0x2704, 0x0326, 0x26fc, - 0x0325, 0x2706, 0x270a, 0x26fa, 0x270d, 0x2700, 0x270e, 0x036b, - 0x040f, 0x0408, 0x2991, 0x040c, 0x298f, 0x2990, 0x2998, 0x29a4, - 0x299b, 0x29a3, 0x2996, 0x29e4, 0x2a5a, 0x0460, 0x0462, 0x2a5e, - 0x0498, 0x2bb8, 0x2d57, 0x2d5c, 0x2da6, 0x2d95, 0x2d88, 0x058a, - 0x2da3, 0x2d8f, 0x0584, 0x2d64, 0x057f, 0x2d59, - /* 0x4c */ - 0x2d78, 0x0582, 0x2d85, 0x2d87, 0x2d9e, 0x0596, 0x0589, 0x2d98, - 0x2d9c, 0x058d, 0x05bc, 0x2e2f, 0x3080, 0x309b, 0x308e, 0x308d, - 0x3094, 0x30c6, 0x0644, 0x30a8, 0x3083, 0x063c, 0x30b9, 0x3086, - 0x30b4, 0x30af, 0x3091, 0x064e, 0x30aa, 0x30a1, 0x30a7, 0x32b6, - 0x32b3, 0x0714, 0x32bc, 0x32ac, 0x0715, 0x32ad, 0x360e, 0x07ce, - 0x361c, 0x361a, 0x07e0, 0x07c2, 0x360b, 0x07bf, 0x35ef, 0x360c, - 0x35f0, 0x3622, 0x07c4, 0x35d8, 0x07cf, 0x3612, 0x35fa, 0x07c8, - 0x362a, 0x07cc, 0x3610, 0x07cd, 0x07c7, 0x3629, 0x35f9, 0x35ea, - 0x362c, 0x3624, 0x18b7, 0x35e9, 0x3752, 0x374f, 0x3753, 0x0843, - 0x08b6, 0x3b10, 0x3b65, 0x3b75, 0x0951, 0x094a, 0x094d, 0x0956, - 0x3bd0, 0x0953, 0x3b5c, 0x3b3d, 0x3b71, 0x0959, 0x3b91, 0x3b0b, - 0x3b79, 0x3b81, 0x3b8f, 0x094e, 0x3b59, 0x3b74, - /* 0x4d */ - 0x09ee, 0x3dae, 0x09ec, 0x3da3, 0x3dad, 0x09eb, 0x09ef, 0x3dab, - 0x3da6, 0x3da2, 0x09ed, 0x1ef2, 0x3e57, 0x3e55, 0x3e99, 0x3f4b, - 0x407a, 0x0af2, 0x0aef, 0x0af1, 0x408c, 0x4084, 0x0aed, 0x0af0, - 0x4082, 0x4093, 0x407b, 0x0aee, 0x4109, 0x181b, 0x0b50, 0x0b66, - 0x0284, 0x0bb8, 0x0bf6, 0x438a, 0x0c57, 0x4390, 0x0c5e, 0x44c6, - 0x44d3, 0x44c0, 0x44d2, 0x44c7, 0x44c2, 0x0d19, 0x459f, 0x459d, - 0x459e, 0x0d70, 0x4641, 0x0d6e, 0x4638, 0x463a, 0x4642, 0x0d72, - 0x0d76, 0x463e, 0x46b0, 0x47ae, 0x47b3, 0x0e12, 0x0e1f, 0x47bf, - 0x0e11, 0x0e16, 0x47cd, 0x0e19, 0x47b2, 0x0e24, 0x0e14, 0x0e25, - 0x0e95, 0x0e96, 0x0e93, 0x0e94, 0x48c4, 0x48cd, 0x48c2, 0x48c6, - 0x48c3, 0x48c9, 0x48c7, 0x0ea0, 0x49f8, 0x0efb, 0x49ed, 0x49e2, - 0x0efc, 0x0f00, 0x0ef8, 0x49dc, 0x4a02, 0x4a01, - /* 0x4e */ - 0x0ef9, 0x49d6, 0x0f04, 0x49e4, 0x49fe, 0x0f03, 0x4a00, 0x49fc, - 0x49fd, 0x0ef3, 0x49f5, 0x49ff, 0x0efa, 0x49eb, 0x49e5, 0x4b78, - 0x4bae, 0x4be7, 0x0fbf, 0x4c65, 0x4c6a, 0x4c66, 0x4c68, 0x4c6b, - 0x4d94, 0x4da1, 0x4d92, 0x4d96, 0x4d93, 0x1079, 0x1110, 0x5101, - 0x1114, 0x50f8, 0x110e, 0x50f5, 0x111a, 0x5104, 0x1119, 0x1121, - 0x1123, 0x111f, 0x511b, 0x5103, 0x5133, 0x5134, 0x50ed, 0x1125, - 0x112b, 0x5135, 0x1116, 0x5105, 0x1122, 0x111b, 0x11ce, 0x11cf, - 0x537d, 0x11cb, 0x11d1, 0x11cc, 0x5371, 0x1217, 0x545c, 0x54e6, - 0x550f, 0x551b, 0x1251, 0x55a9, 0x55a5, 0x55ee, 0x56b1, 0x12ed, - 0x56cc, 0x56ce, 0x12f4, 0x56b7, 0x12f1, 0x56b5, 0x56e9, 0x56b4, - 0x12f8, 0x56b3, 0x56c1, 0x56af, 0x56ca, 0x56d0, 0x132f, 0x135e, - 0x135d, 0x588e, 0x1376, 0x1377, 0x58e9, 0x58db, - /* 0x4f */ - 0x137e, 0x58eb, 0x59a4, 0x13b6, 0x59a2, 0x599d, 0x13b3, 0x13fc, - 0x1403, 0x1400, 0x5a2a, 0x5a28, 0x140a, 0x1402, 0x5ab8, 0x5ab6, - 0x5ab9, 0x5ab7, 0x5b22, 0x5b2b, 0x5b27, 0x5b19, 0x5ba4, 0x1487, - 0x5bb3, 0x14a6, 0x5c71, 0x5c6a, 0x14a9, 0x14de, 0x5d88, 0x5d8c, - 0x5ebf, 0x5eb8, 0x5ebe, 0x5edc, 0x5ee5, 0x152e, 0x152d, 0x5ed4, - 0x5ed6, 0x1530, 0x5eda, 0x5eed, 0x5ef3, 0x5edb, 0x152b, 0x5eb9, - 0x5ee2, 0x5eeb, 0x61af, 0x159e, 0x61b2, 0x61b3, 0x159f, 0x15e5, - 0x15e4, 0x62a3, 0x62a5, 0x15fd, 0x15fc, 0x1617, 0x1619, 0x630a, - 0x1618, 0x6387, 0x6389, 0x638c, 0x63ef, 0x642a, 0x6422, 0x16bf, - 0x641f, 0x173c, 0x6519, 0x176b, 0x65ca, 0x65da, 0x1783, 0x1781, - 0x1780, 0x65de, 0x65c8, 0x65e0, 0x17ca, 0x66b6, 0x66b5, 0x17ce, - 0x66f4, 0x17f6, 0x676b, 0x6769, 0x6772, 0x6763, - /* 0x50 */ - 0x1839, 0x690d, 0x18ae, 0x6901, 0x690c, 0x18b5, 0x68f8, 0x18b3, - 0x18b4, 0x68fe, 0x6902, 0x6a84, 0x1922, 0x6aab, 0x6aaa, 0x1d1d, - 0x1d16, 0x0099, 0x1d2b, 0x1d1e, 0x1d1b, 0x1e90, 0x1e94, 0x1f14, - 0x7289, 0x0202, 0x2267, 0x0201, 0x227b, 0x02a1, 0x225f, 0x2261, - 0x01fd, 0x0273, 0x0274, 0x0270, 0x0276, 0x0275, 0x0272, 0x24c3, - 0x24ca, 0x24bb, 0x24c0, 0x24c4, 0x2501, 0x271f, 0x2718, 0x2711, - 0x2715, 0x0329, 0x2712, 0x271c, 0x032a, 0x2722, 0x2779, 0x29a6, - 0x0416, 0x29b3, 0x29ab, 0x2aea, 0x0499, 0x2b5b, 0x04d3, 0x04f5, - 0x2db7, 0x2dce, 0x2db9, 0x2dbd, 0x2dcf, 0x2dc0, 0x2d99, 0x2d97, - 0x0594, 0x2dbb, 0x2dd0, 0x2dc4, 0x2e31, 0x0656, 0x30d3, 0x30c0, - 0x0659, 0x0658, 0x0655, 0x0652, 0x30dc, 0x30d1, 0x30c8, 0x0657, - 0x30d5, 0x32c3, 0x071b, 0x071c, 0x32bf, 0x32c5, - /* 0x51 */ - 0x0719, 0x32cd, 0x32c1, 0x3306, 0x073f, 0x3324, 0x3663, 0x3642, - 0x3652, 0x07db, 0x3643, 0x3633, 0x07e2, 0x366c, 0x3657, 0x07d7, - 0x364c, 0x366e, 0x07de, 0x07e5, 0x07e4, 0x07e6, 0x07d6, 0x3637, - 0x07df, 0x3671, 0x364a, 0x3636, 0x07dc, 0x3653, 0x07da, 0x3645, - 0x3670, 0x07d3, 0x07d0, 0x365c, 0x3758, 0x3757, 0x0886, 0x0887, - 0x08ad, 0x08b7, 0x0958, 0x096a, 0x3bbb, 0x0962, 0x0961, 0x3bbe, - 0x0969, 0x096c, 0x0965, 0x3bb5, 0x3bd3, 0x3b9f, 0x0966, 0x3bb7, - 0x3bf5, 0x3db7, 0x09f5, 0x3dbb, 0x09f4, 0x3dd1, 0x09f7, 0x3dba, - 0x09f8, 0x3db6, 0x3dcc, 0x09fb, 0x09fc, 0x3dd3, 0x409b, 0x0af5, - 0x0af8, 0x4096, 0x40a2, 0x409d, 0x410a, 0x410e, 0x0b3c, 0x4181, - 0x422c, 0x4237, 0x4236, 0x423b, 0x0bc5, 0x42a1, 0x0c62, 0x0c63, - 0x4398, 0x0c67, 0x4396, 0x0c66, 0x0cd9, 0x0cdb, - /* 0x52 */ - 0x44d6, 0x44eb, 0x0cd8, 0x44dc, 0x0d1b, 0x45a5, 0x45a9, 0x6434, - 0x4653, 0x4645, 0x0d79, 0x464f, 0x0d7d, 0x46bd, 0x46bb, 0x46f1, - 0x0e2c, 0x0e37, 0x47ec, 0x47ed, 0x0e30, 0x0e9a, 0x48d3, 0x1600, - 0x48e1, 0x0f05, 0x4a19, 0x0f07, 0x0f09, 0x0f0a, 0x4a27, 0x4a26, - 0x0f79, 0x0fc2, 0x4c6e, 0x4daf, 0x1038, 0x1037, 0x4dad, 0x1021, - 0x4daa, 0x4e18, 0x105e, 0x113d, 0x1137, 0x1140, 0x516f, 0x514c, - 0x111d, 0x5142, 0x1133, 0x515c, 0x5170, 0x515f, 0x1135, 0x515a, - 0x514b, 0x513f, 0x538a, 0x11d8, 0x538b, 0x53a1, 0x538e, 0x11dc, - 0x11de, 0x5399, 0x545e, 0x545f, 0x5524, 0x55a7, 0x56ea, 0x56fd, - 0x56f9, 0x56e3, 0x56e5, 0x12fa, 0x12fb, 0x56ec, 0x133d, 0x133b, - 0x133f, 0x135f, 0x58f2, 0x137f, 0x58ef, 0x1384, 0x59a6, 0x13bc, - 0x1414, 0x140f, 0x5a3b, 0x5a43, 0x140e, 0x5a32, - /* 0x53 */ - 0x5b31, 0x5b30, 0x1460, 0x5b2d, 0x5b3c, 0x5ba7, 0x5ba5, 0x14ab, - 0x14ac, 0x14aa, 0x5d37, 0x5d95, 0x5d8e, 0x1504, 0x5d96, 0x1508, - 0x5f45, 0x5f0a, 0x1533, 0x1534, 0x5efd, 0x5f17, 0x5f1c, 0x5f07, - 0x5f31, 0x5f32, 0x5f2c, 0x5f30, 0x5f03, 0x5f05, 0x15a2, 0x61c2, - 0x15a4, 0x61b8, 0x15a5, 0x61c1, 0x15a7, 0x15a6, 0x15e7, 0x62ab, - 0x62b7, 0x15ff, 0x15fe, 0x6315, 0x6314, 0x161d, 0x161c, 0x630c, - 0x6317, 0x1667, 0x6393, 0x1694, 0x63d2, 0x16c5, 0x16c8, 0x6436, - 0x6431, 0x6433, 0x643c, 0x642e, 0x643a, 0x16c9, 0x643d, 0x16c7, - 0x64b5, 0x6522, 0x6523, 0x6520, 0x651c, 0x651d, 0x176c, 0x65a0, - 0x178a, 0x65ef, 0x65e8, 0x65eb, 0x1788, 0x1787, 0x1786, 0x65e1, - 0x65e6, 0x17cf, 0x17d0, 0x66f8, 0x66f5, 0x181c, 0x1823, 0x6783, - 0x6794, 0x6784, 0x1849, 0x678b, 0x678f, 0x1843, - /* 0x54 */ - 0x678c, 0x1848, 0x6789, 0x1847, 0x678e, 0x1846, 0x183f, 0x1844, - 0x6924, 0x690f, 0x18be, 0x6913, 0x690a, 0x18c2, 0x18ba, 0x18bc, - 0x18c6, 0x692a, 0x691a, 0x18c8, 0x6927, 0x6916, 0x6921, 0x1923, - 0x6a85, 0x6aac, 0x6ac6, 0x6ac5, 0x6ad7, 0x6b53, 0x009d, 0x1d28, - 0x1d27, 0x1ddf, 0x0124, 0x1f35, 0x1fb3, 0x0207, 0x228a, 0x227d, - 0x2289, 0x0279, 0x24cd, 0x24d0, 0x0278, 0x272b, 0x2733, 0x2729, - 0x2735, 0x2731, 0x2737, 0x2836, 0x29be, 0x0419, 0x29b9, 0x041c, - 0x29bb, 0x0418, 0x2de2, 0x2ddb, 0x2ddd, 0x2ddc, 0x2dda, 0x85af, - 0x2dd9, 0x05bd, 0x065d, 0x30df, 0x065a, 0x065e, 0x30e1, 0x065c, - 0x30ee, 0x065b, 0x31b5, 0x32d4, 0x32d5, 0x0721, 0x32d0, 0x32d1, - 0x32ce, 0x32d7, 0x0720, 0x0732, 0x367d, 0x368a, 0x07f2, 0x36a7, - 0x07f5, 0x3699, 0x3682, 0x3688, 0x07ee, 0x07ec, - /* 0x55 */ - 0x3686, 0x07ea, 0x3698, 0x369d, 0x07ed, 0x07f3, 0x368f, 0x07f6, - 0x36aa, 0x0848, 0x375d, 0x0849, 0x380a, 0x0975, 0x3bd7, 0x3bd6, - 0x3be5, 0x096f, 0x097b, 0x0973, 0x3bd9, 0x3bda, 0x3bea, 0x0970, - 0x3bf6, 0x7d39, 0x0978, 0x3de3, 0x09fe, 0x3de9, 0x0a00, 0x3deb, - 0x3def, 0x3df3, 0x3dea, 0x0a01, 0x8621, 0x0a55, 0x0a56, 0x0a9d, - 0x3f71, 0x0af9, 0x40ae, 0x0aff, 0x40b3, 0x0afd, 0x40ac, 0x0b43, - 0x0b41, 0x4183, 0x4245, 0x424e, 0x4244, 0x42a3, 0x42a5, 0x43a6, - 0x43a4, 0x0c6f, 0x43a9, 0x43af, 0x0c8a, 0x0ce5, 0x0ce6, 0x44f0, - 0x44f8, 0x44f1, 0x0d7f, 0x4649, 0x0db5, 0x0db6, 0x0dbb, 0x46c2, - 0x46f2, 0x46f3, 0x47fa, 0x0e40, 0x47f6, 0x47fc, 0x4818, 0x4808, - 0x4812, 0x0e9d, 0x0e9c, 0x48db, 0x48da, 0x0f0f, 0x0f11, 0x0f0d, - 0x4a2c, 0x4a4d, 0x0f14, 0x0f13, 0x4b46, 0x4bf6, - /* 0x56 */ - 0x4c2b, 0x4c74, 0x4db8, 0x4dc8, 0x1082, 0x1083, 0x114d, 0x5192, - 0x5193, 0x114f, 0x517f, 0x51ab, 0x5197, 0x114c, 0x1151, 0x51ac, - 0x11ee, 0x11e8, 0x18cb, 0x53ce, 0x11eb, 0x53cd, 0x11e2, 0x11e6, - 0x53c1, 0x53b1, 0x53c7, 0x11ec, 0x5540, 0x1259, 0x553f, 0x5539, - 0x125d, 0x5543, 0x1257, 0x125b, 0x1256, 0x55ab, 0x12fe, 0x571f, - 0x5709, 0x570c, 0x1300, 0x1301, 0x5840, 0x1342, 0x5896, 0x1360, - 0x58f6, 0x58f7, 0x141d, 0x5a46, 0x5a4f, 0x143e, 0x1469, 0x1465, - 0x5b3d, 0x5b41, 0x5f66, 0x5f78, 0x5f5d, 0x5f69, 0x5f74, 0x5f7d, - 0x5f6e, 0x5f72, 0x5f73, 0x5f62, 0x5f48, 0x5f53, 0x5f5f, 0x5f68, - 0x1538, 0x5f7f, 0x5f6b, 0x15ae, 0x61c4, 0x15ad, 0x62af, 0x62ad, - 0x62b2, 0x1602, 0x161f, 0x631a, 0x631b, 0x1622, 0x1620, 0x86f5, - 0x166c, 0x639b, 0x639f, 0x1668, 0x166d, 0x166e, - /* 0x57 */ - 0x16a0, 0x16ce, 0x16d0, 0x16d1, 0x16cb, 0x6440, 0x16d2, 0x6447, - 0x16d3, 0x64b7, 0x1720, 0x174e, 0x174b, 0x1772, 0x1770, 0x65a2, - 0x1792, 0x178f, 0x6600, 0x65f3, 0x1790, 0x8437, 0x65f5, 0x17d9, - 0x17d5, 0x66bd, 0x6700, 0x6702, 0x17fa, 0x6734, 0x6749, 0x679f, - 0x184b, 0x67a3, 0x67cd, 0x6799, 0x679d, 0x18d0, 0x18ce, 0x6939, - 0x18cf, 0x6944, 0x18c4, 0x18cc, 0x6935, 0x18d2, 0x1935, 0x6aaf, - 0x0a03, 0x1d2f, 0x009e, 0x00af, 0x6b8e, 0x020c, 0x229f, 0x229b, - 0x229e, 0x2296, 0x2294, 0x22a0, 0x027c, 0x273b, 0x0330, 0x0331, - 0x273a, 0x29c1, 0x2b4d, 0x2b5d, 0x2df3, 0x05a1, 0x059e, 0x0668, - 0x0661, 0x30f6, 0x30e5, 0x30ea, 0x30e7, 0x3105, 0x0665, 0x30f9, - 0x0666, 0x066a, 0x06ab, 0x36ab, 0x36ed, 0x36b2, 0x36b0, 0x36b5, - 0x36be, 0x36c1, 0x36c8, 0x07f9, 0x36c0, 0x36bc, - /* 0x58 */ - 0x36b1, 0x36c4, 0x36bf, 0x0858, 0x088a, 0x3c08, 0x3c03, 0x3bfd, - 0x3c10, 0x3c02, 0x3c13, 0x0a04, 0x3dfa, 0x3e00, 0x40b9, 0x40bc, - 0x0b02, 0x425b, 0x4251, 0x424f, 0x42eb, 0x43b8, 0x0c79, 0x43b9, - 0x43c1, 0x43c0, 0x43be, 0x450b, 0x0ceb, 0x4507, 0x450a, 0x4508, - 0x0ce9, 0x450d, 0x4506, 0x4515, 0x45af, 0x0d20, 0x0d21, 0x0d81, - 0x46f5, 0x0e4d, 0x0e59, 0x482e, 0x0e58, 0x481b, 0x81d1, 0x481a, - 0x4824, 0x0ea5, 0x0ea9, 0x48e6, 0x48e3, 0x0f1a, 0x0f19, 0x4a5d, - 0x4a4f, 0x4a66, 0x4a5b, 0x4b47, 0x4bb4, 0x0f96, 0x0f98, 0x0f97, - 0x4bfa, 0x4c2e, 0x82df, 0x0fc8, 0x4dce, 0x1043, 0x1045, 0x4e19, - 0x1152, 0x1157, 0x51cc, 0x51b2, 0x1155, 0x51bb, 0x51c1, 0x1156, - 0x1158, 0x11f2, 0x53e9, 0x53ee, 0x53f0, 0x53d6, 0x540e, 0x53da, - 0x5548, 0x554a, 0x554e, 0x554d, 0x55b1, 0x55b0, - /* 0x59 */ - 0x55b3, 0x1307, 0x5738, 0x5732, 0x1308, 0x572d, 0x130a, 0x5734, - 0x0f1b, 0x5729, 0x5874, 0x1361, 0x1362, 0x5903, 0x13c2, 0x13c6, - 0x59a9, 0x5a58, 0x141e, 0x1425, 0x5abf, 0x5ac1, 0x5b4a, 0x5bac, - 0x14b0, 0x5c89, 0x5d3d, 0x5d3c, 0x5da9, 0x5fa0, 0x153d, 0x5f90, - 0x153e, 0x5f93, 0x5f8b, 0x5fad, 0x5fbb, 0x5fb8, 0x1546, 0x1545, - 0x5f9c, 0x61d8, 0x61d7, 0x1603, 0x1626, 0x1627, 0x635d, 0x63a9, - 0x63da, 0x1698, 0x16ad, 0x16d5, 0x16da, 0x6454, 0x16d9, 0x6455, - 0x644b, 0x16dd, 0x643f, 0x64b9, 0x1715, 0x1716, 0x1717, 0x1721, - 0x6538, 0x6536, 0x6540, 0x174c, 0x653b, 0x6539, 0x65a4, 0x1796, - 0x1798, 0x6608, 0x660c, 0x179b, 0x6610, 0x17ff, 0x6707, 0x1825, - 0x67d2, 0x184f, 0x67c2, 0x67bb, 0x67cc, 0x67cb, 0x1856, 0x1854, - 0x694d, 0x6963, 0x694e, 0x18d8, 0x6950, 0x6955, - /* 0x5a */ - 0x18d7, 0x695e, 0x1926, 0x6a90, 0x6ab2, 0x6ab1, 0x1938, 0x6aca, - 0x6b02, 0x6b27, 0x6b26, 0x198a, 0x22af, 0x24e0, 0x24dc, 0x0334, - 0x2739, 0x0335, 0x856a, 0x277c, 0x27f3, 0x8570, 0x03a1, 0x286b, - 0x29c4, 0x310b, 0x3108, 0x310a, 0x066c, 0x066d, 0x31dc, 0x0729, - 0x072a, 0x32e1, 0x32df, 0x36ce, 0x36d4, 0x36e3, 0x36d7, 0x36e2, - 0x0800, 0x0808, 0x0806, 0x0805, 0x36d8, 0x36d5, 0x36d2, 0x08b1, - 0x0988, 0x3c1e, 0x3c2c, 0x3c25, 0x3bf3, 0x3e04, 0x3e08, 0x3e15, - 0x0a09, 0x40c4, 0x40c9, 0x40c7, 0x40c8, 0x42a9, 0x43c6, 0x43c5, - 0x4518, 0x451a, 0x4520, 0x0d22, 0x4666, 0x4664, 0x466a, 0x0dd5, - 0x0e61, 0x0e5d, 0x0e62, 0x0e4f, 0x0e60, 0x4835, 0x4834, 0x0eaa, - 0x0f22, 0x4a6c, 0x0f21, 0x4a6e, 0x4a71, 0x1046, 0x4dd4, 0x4dd6, - 0x4e1a, 0x4e62, 0x4e65, 0x4e76, 0x51db, 0x51d6, - /* 0x5b */ - 0x1162, 0x51e7, 0x1160, 0x1164, 0x51f4, 0x86b6, 0x53fd, 0x53d5, - 0x5407, 0x11f6, 0x540f, 0x53f8, 0x86c1, 0x1219, 0x5587, 0x1291, - 0x55b5, 0x55f5, 0x130d, 0x573f, 0x5743, 0x574c, 0x1365, 0x590b, - 0x5a6b, 0x5a68, 0x5a70, 0x5a75, 0x5a77, 0x143f, 0x5ac3, 0x154b, - 0x5fe9, 0x5fea, 0x5fcb, 0x5fc5, 0x5fc6, 0x1548, 0x5fed, 0x5fd3, - 0x1552, 0x5fe5, 0x154a, 0x1551, 0x5fdb, 0x5feb, 0x5fe0, 0x5fc1, - 0x1550, 0x154c, 0x61dd, 0x15ee, 0x1604, 0x1606, 0x162d, 0x162e, - 0x162f, 0x167b, 0x1678, 0x1677, 0x63b2, 0x63b4, 0x63b1, 0x63b5, - 0x63f2, 0x16a2, 0x16a1, 0x16e3, 0x6456, 0x171a, 0x1719, 0x1757, - 0x6544, 0x179e, 0x6626, 0x661f, 0x6618, 0x6621, 0x6617, 0x17dd, - 0x6709, 0x1805, 0x1828, 0x67c5, 0x67df, 0x1860, 0x67e3, 0x1866, - 0x67e9, 0x67ee, 0x1867, 0x1868, 0x6966, 0x697a, - /* 0x5c */ - 0x18de, 0x696e, 0x6991, 0x6983, 0x6976, 0x697e, 0x696d, 0x18e1, - 0x6a95, 0x6ae3, 0x1969, 0x1977, 0x6b03, 0x6b04, 0x8719, 0x6b17, - 0x00a6, 0x1d36, 0x00a5, 0x1f36, 0x0214, 0x2742, 0x0336, 0x0338, - 0x2744, 0x2746, 0x277e, 0x29ca, 0x29c8, 0x29cc, 0x2af0, 0x0670, - 0x3185, 0x32e5, 0x32e7, 0x072b, 0x0811, 0x080a, 0x36f4, 0x080d, - 0x36e9, 0x0816, 0x0810, 0x0809, 0x080e, 0x087a, 0x3c3d, 0x098c, - 0x3c36, 0x0991, 0x3e16, 0x0a0a, 0x3e12, 0x3e0f, 0x3e17, 0x3e11, - 0x3e0b, 0x0a08, 0x0a0b, 0x40cd, 0x40d0, 0x40cc, 0x40ce, 0x40d1, - 0x0b07, 0x4189, 0x0cf2, 0x466f, 0x484b, 0x4844, 0x4855, 0x0eae, - 0x0f24, 0x0f26, 0x0f27, 0x4a7f, 0x5771, 0x0f99, 0x4c2f, 0x4c7a, - 0x4c7b, 0x4c7c, 0x115f, 0x116a, 0x1171, 0x51fc, 0x5210, 0x5202, - 0x116c, 0x116f, 0x51ee, 0x5203, 0x1168, 0x520d, - /* 0x5d */ - 0x5213, 0x5208, 0x520f, 0x5418, 0x5412, 0x1201, 0x1268, 0x5567, - 0x5565, 0x55bb, 0x5769, 0x5762, 0x1313, 0x576e, 0x1316, 0x5761, - 0x1318, 0x5764, 0x574d, 0x5851, 0x1389, 0x13c8, 0x5a83, 0x5ac6, - 0x1484, 0x601f, 0x1554, 0x6004, 0x6017, 0x6008, 0x6005, 0x1556, - 0x5ff3, 0x601e, 0x6002, 0x601a, 0x601b, 0x6027, 0x601c, 0x155a, - 0x62b5, 0x1605, 0x1607, 0x6333, 0x1631, 0x6334, 0x6331, 0x63b8, - 0x63ba, 0x16a3, 0x63fc, 0x16eb, 0x171c, 0x64c3, 0x175a, 0x654d, - 0x175b, 0x662f, 0x17a6, 0x17aa, 0x17a5, 0x66c9, 0x17e1, 0x66c8, - 0x66c4, 0x672a, 0x6738, 0x6750, 0x182a, 0x680a, 0x67fb, 0x6804, - 0x67fc, 0x67fe, 0x1872, 0x186f, 0x1873, 0x6802, 0x67f6, 0x681b, - 0x67f9, 0x6815, 0x6810, 0x67ff, 0x6800, 0x680c, 0x186b, 0x18e6, - 0x6995, 0x69a5, 0x18e9, 0x18ec, 0x18e8, 0x18f0, - /* 0x5e */ - 0x6a98, 0x6ac1, 0x198c, 0x6b5a, 0x1d64, 0x22bb, 0x0215, 0x24e6, - 0x2749, 0x27f7, 0x0371, 0x0426, 0x29d0, 0x04c6, 0x2bc2, 0x05a8, - 0x3111, 0x0673, 0x36ff, 0x36fe, 0x36fd, 0x0815, 0x3701, 0x0998, - 0x0997, 0x3c4b, 0x3c4d, 0x3c47, 0x40d3, 0x4268, 0x4267, 0x0bd7, - 0x0c80, 0x43d1, 0x4530, 0x4532, 0x452e, 0x0d88, 0x6b9d, 0x46c9, - 0x46c8, 0x0e69, 0x4856, 0x4851, 0x0e6b, 0x0f29, 0x0f28, 0x4a85, - 0x4a89, 0x4a8e, 0x4a84, 0x105f, 0x4e6a, 0x522b, 0x522f, 0x5228, - 0x1174, 0x5216, 0x5215, 0x521d, 0x541a, 0x1202, 0x126a, 0x1294, - 0x55bc, 0x5775, 0x577c, 0x138a, 0x5911, 0x5912, 0x5b5c, 0x5dbb, - 0x1564, 0x5ff4, 0x155e, 0x1561, 0x602d, 0x1565, 0x1566, 0x62e4, - 0x6337, 0x6336, 0x6367, 0x63be, 0x63bd, 0x63e2, 0x6468, 0x6466, - 0x64c8, 0x64ca, 0x64c7, 0x64dc, 0x175f, 0x654f, - /* 0x5f */ - 0x65a9, 0x663c, 0x17af, 0x663b, 0x66ce, 0x180d, 0x6714, 0x6753, - 0x187c, 0x682e, 0x187a, 0x681f, 0x1876, 0x1879, 0x187d, 0x1877, - 0x69b0, 0x69bd, 0x18f6, 0x18f1, 0x69ae, 0x69c4, 0x6a7b, 0x0c0b, - 0x1929, 0x6a9e, 0x196f, 0x6b05, 0x199a, 0x6b69, 0x6ba1, 0x22c7, - 0x231d, 0x274a, 0x29d3, 0x0469, 0x2b72, 0x2e02, 0x05ab, 0x2e35, - 0x3127, 0x311e, 0x311f, 0x072c, 0x072d, 0x3707, 0x3706, 0x0817, - 0x099a, 0x3c54, 0x3e1c, 0x3e20, 0x46f8, 0x0e6e, 0x485d, 0x4858, - 0x0f2c, 0x4a92, 0x4b4e, 0x0fca, 0x1178, 0x1206, 0x5427, 0x1207, - 0x5781, 0x5783, 0x1320, 0x5844, 0x1353, 0x13ce, 0x147a, 0x1479, - 0x6042, 0x604d, 0x6054, 0x604e, 0x156b, 0x6043, 0x1567, 0x156d, - 0x633c, 0x6340, 0x63c0, 0x1685, 0x16b0, 0x16f3, 0x1763, 0x655a, - 0x6651, 0x17b6, 0x66dd, 0x1882, 0x187f, 0x6838, - /* 0x60 */ - 0x1886, 0x6845, 0x683a, 0x1884, 0x6835, 0x18fc, 0x18fd, 0x18fa, - 0x6af1, 0x1987, 0x6b93, 0x1e9a, 0x021a, 0x0219, 0x5241, 0x29d7, - 0x0675, 0x3128, 0x081a, 0x081b, 0x0819, 0x3c53, 0x3c59, 0x099c, - 0x3e21, 0x0a10, 0x426f, 0x4537, 0x45b5, 0x4862, 0x485e, 0x48f5, - 0x117b, 0x117c, 0x523d, 0x1208, 0x542d, 0x5589, 0x578d, 0x5787, - 0x5790, 0x591a, 0x5a99, 0x1441, 0x14e3, 0x1572, 0x605f, 0x1573, - 0x1568, 0x6056, 0x6061, 0x605b, 0x605a, 0x605c, 0x6065, 0x1635, - 0x6341, 0x1688, 0x169d, 0x646e, 0x646c, 0x646d, 0x0e75, 0x65aa, - 0x665c, 0x6658, 0x66de, 0x188f, 0x684f, 0x6851, 0x188e, 0x6853, - 0x1905, 0x1904, 0x18ff, 0x69fc, 0x6b39, 0x199e, 0x1d3e, 0x0154, - 0x22d2, 0x0281, 0x274f, 0x3714, 0x0cfa, 0x4672, 0x4673, 0x0f32, - 0x1270, 0x126e, 0x5791, 0x86d6, 0x147c, 0x5dbf, - /* 0x61 */ - 0x1575, 0x606c, 0x1574, 0x1577, 0x62e6, 0x6345, 0x1637, 0x63c8, - 0x63e4, 0x655d, 0x17ba, 0x6721, 0x1811, 0x672c, 0x6757, 0x1892, - 0x1899, 0x685d, 0x6861, 0x6865, 0x6a08, 0x190a, 0x192a, 0x192b, - 0x1944, 0x1979, 0x6b45, 0x00aa, 0x0348, 0x2e05, 0x32ef, 0x371b, - 0x371d, 0x3e25, 0x3e24, 0x486d, 0x0eb4, 0x5242, 0x5249, 0x120d, - 0x5578, 0x558a, 0x5797, 0x1354, 0x589b, 0x591c, 0x1430, 0x5aa2, - 0x1609, 0x1638, 0x1636, 0x168b, 0x16f7, 0x1766, 0x17bd, 0x181e, - 0x686c, 0x1896, 0x686f, 0x190d, 0x6a0e, 0x1973, 0x6b08, 0x6b1d, - 0x6ba3, 0x033b, 0x033c, 0x2b60, 0x371c, 0x09a0, 0x0cfb, 0x6cfd, - 0x48f3, 0x1181, 0x579b, 0x5aa7, 0x5dc4, 0x1578, 0x607a, 0x168d, - 0x1773, 0x6661, 0x6663, 0x66d7, 0x6876, 0x19a6, 0x6ba5, 0x05ad, - 0x3c67, 0x0a11, 0x3eab, 0x524a, 0x557d, 0x579d, - /* 0x62 */ - 0x5853, 0x5b65, 0x607b, 0x1639, 0x64cd, 0x64dd, 0x17bf, 0x6730, - 0x6a16, 0x190f, 0x19a7, 0x19b5, 0x0bdc, 0x1431, 0x62e7, 0x6a18, - 0x6aa2, 0x19a8, 0x6b7c, 0x0d25, 0x4a9e, 0x6084, 0x17c1, 0x6a1c, - 0x0d90, 0x4871, 0x63ca, 0x1296, 0x147f, 0x1910, 0x6aa3, 0x160a, - 0x687b, 0x6b97, 0x1912, 0x163a, 0x6350, 0x163b, -}; -static const unsigned short cns11643_3_2uni_page64[292] = { - /* 0x64 */ - 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, - 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, - 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, - 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, - 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x6cfd, 0x1b66, - 0x1b68, 0x1be7, 0x1c3f, 0x6cfd, 0x1ca6, 0x1d0f, 0x1e3e, 0x1f24, - 0x1f65, 0x1f9b, 0x1d7f, 0x20cb, 0x2173, 0x2171, 0x216b, 0x21f4, - 0x2222, 0x2220, 0x2292, 0x22ba, 0x2291, 0x22b0, 0x2359, 0x238a, - 0x240f, 0x2412, 0x2413, 0x2447, 0x249b, 0x2500, 0x254d, 0x26d1, - 0x26d3, 0x2767, 0x2857, 0x2877, 0x28d5, 0x2975, 0x298e, 0x29a5, - 0x29b6, 0x29bf, 0x2a65, 0x2acd, 0x2aed, 0x2b94, 0x2b9a, 0x2bba, - 0x2d25, 0x2d50, 0x2ea3, 0x2f60, 0x2f64, 0x2fb6, - /* 0x65 */ - 0x3003, 0x30b6, 0x311a, 0x4625, 0x2821, 0x32e2, 0x3302, 0x33a4, - 0x33ac, 0x3410, 0x3406, 0x345e, 0x345a, 0x352c, 0x3529, 0x362d, - 0x3677, 0x367a, 0x36ca, 0x36e6, 0x36f5, 0x370d, 0x370e, 0x37dc, - 0x37dd, 0x37f6, 0x381e, 0x3863, 0x39a5, 0x3a0f, 0x3a8a, 0x3a84, - 0x3a8b, 0x3a7c, 0x3b4c, 0x3b48, 0x3b49, 0x3b9d, 0x3b99, 0x3bf8, - 0x3c2e, 0x3c2d, 0x3c5c, 0x45cc, 0x3cbf, 0x3cea, 0x3ce5, 0x3d11, - 0x3d12, 0x3d3f, 0x3d39, 0x3d3b, 0x3d3d, 0x3d77, 0x3d75, 0x3d76, - 0x3d71, 0x3d96, 0x3d93, 0x3db4, 0x3ddd, 0x3dde, 0x3e0e, 0x2511, - 0x3e18, 0x3f47, 0x3f48, 0x3fef, 0x4012, 0x403b, 0x40a4, 0x408d, - 0x40b4, 0x4273, 0x4277, 0x42bc, 0x4419, 0x441b, 0x443d, 0x4453, - 0x4454, 0x4458, 0x44b7, 0x44d8, 0x44ee, 0x4522, 0x454d, 0x4586, - 0x4599, 0x45a3, 0x45bc, 0x46a7, 0x4737, 0x4759, - /* 0x66 */ - 0x47d0, 0x482f, 0x4832, 0x4842, 0x484e, 0x4868, 0x48a9, 0x48ed, - 0x49d0, 0x4a07, 0x49d3, 0x4a64, 0x4b40, 0x6cfd, 0x4c41, 0x4c63, - 0x4cbb, 0x3311, 0x3325, 0x4e48, 0x4f10, 0x4f62, 0x4f12, 0x5021, - 0x501e, 0x50e2, 0x50de, 0x50e1, 0x5173, 0x51d4, 0x51f5, 0x5237, - 0x5245, 0x5272, 0x534a, 0x53a9, 0x53a5, 0x53f5, 0x5434, 0x5450, - 0x5487, 0x5554, 0x5584, 0x5703, 0x5852, 0x58d8, 0x590c, 0x5918, - 0x59b0, 0x5abc, 0x5ad5, 0x5baa, 0x5c9c, 0x6cfd, 0x5d5c, 0x5e2b, - 0x5e21, 0x5e73, 0x5ef4, 0x5ef5, 0x5f3f, 0x5f42, 0x5f86, 0x5fbe, - 0x5fbc, 0x5fbd, 0x5ff1, 0x5ff2, 0x5fef, 0x6022, 0x6023, 0x6024, - 0x6067, 0x6066, 0x6197, 0x61ce, 0x61e7, 0x633b, 0x634d, 0x64e4, - 0x6542, 0x671d, 0x6798, 0x6cfd, 0x6949, 0x3049, 0x2a71, 0x2a85, - 0x2dd3, 0x650e, 0x4c02, 0x441e, 0x6cfd, 0x6cfd, - /* 0x67 */ - 0x2128, 0x2172, 0x21ba, 0x21f0, 0x21ee, 0x22b8, 0x22b9, 0x22c4, - 0x4c53, 0x5eb0, -}; - -static const ucs4_t cns11643_3_2uni_upages[136] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, - 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, - 0x04c00, 0x04d00, 0x04e00, 0x04f00, 0x05000, 0x05100, 0x05200, 0x05300, - 0x05400, 0x05500, 0x05600, 0x05700, 0x05800, 0x05900, 0x05a00, 0x05b00, - 0x05c00, 0x05d00, 0x05e00, 0x05f00, 0x06000, 0x06100, 0x06200, 0x06300, - 0x06400, 0x06500, 0x06600, 0x06700, 0x06800, 0x06900, 0x06a00, 0x06b00, - 0x06c00, 0x06d00, 0x06e00, 0x06f00, 0x07000, 0x07100, 0x07200, 0x07300, - 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, 0x07900, 0x07a00, 0x07b00, - 0x07c00, 0x07d00, 0x07e00, 0x07f00, 0x08000, 0x08100, 0x08200, 0x08300, - 0x08400, 0x08500, 0x08600, 0x08700, 0x08800, 0x08900, 0x08a00, 0x08b00, - 0x08c00, 0x08d00, 0x08e00, 0x08f00, 0x09000, 0x09100, 0x09200, 0x09300, - 0x09400, 0x09500, 0x09600, 0x09700, 0x09800, 0x09900, 0x09a00, 0x09b00, - 0x09c00, 0x09d00, 0x09e00, 0x09f00, 0x0ff00, 0x20000, 0x20100, 0x20200, - 0x20500, 0x20600, 0x20b00, 0x20d00, 0x21300, 0x21600, 0x21700, 0x21d00, - 0x22300, 0x22500, 0x23000, 0x23500, 0x23c00, 0x24000, 0x24a00, 0x25100, - 0x25900, 0x25c00, 0x26500, 0x28c00, 0x29900, 0x2f800, 0x2f900, 0x2fa00, -}; - -static int -cns11643_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x62) || (c1 >= 0x64 && c1 <= 0x67)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - ucs4_t wc = 0xfffd; - unsigned short swc; - if (i < 6298) { - if (i < 6148) - swc = cns11643_3_2uni_page21[i], - wc = cns11643_3_2uni_upages[swc>>8] | (swc & 0xff); - } else { - if (i < 6590) - swc = cns11643_3_2uni_page64[i-6298], - wc = cns11643_3_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_4.h b/jni/parted/libiconv/lib/cns11643_4.h deleted file mode 100755 index 5aa04a0..0000000 --- a/jni/parted/libiconv/lib/cns11643_4.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 4 - */ - -/* - * The table has been split into two parts. Each part's entries fit it 16 bits. - * But the combined table would need 17 bits per entry. - */ -#include "cns11643_4a.h" -#include "cns11643_4b.h" - -static int -cns11643_4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x6e)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 2914) - swc = cns11643_4a_2uni_page21[i], - wc = cns11643_4a_2uni_upages[swc>>8] | (swc & 0xff); - else if (i < 7298) - swc = cns11643_4b_2uni_page40[i-2914], - wc = cns11643_4b_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} diff --git a/jni/parted/libiconv/lib/cns11643_4a.h b/jni/parted/libiconv/lib/cns11643_4a.h deleted file mode 100755 index 779685c..0000000 --- a/jni/parted/libiconv/lib/cns11643_4a.h +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Copyright (C) 1999-2002 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 4 part a - */ - -static const unsigned short cns11643_4a_2uni_page21[2914] = { - /* 0x21 */ - 0x5a86, 0x1840, 0x1841, 0x185a, 0x75e8, 0x1802, 0x1829, 0x5b0e, - 0x6027, 0x1c02, 0x013e, 0x27dc, 0x5f3c, 0x6075, 0xd128, 0x1d42, - 0x1d6a, 0x2552, 0x6f3c, 0xd175, 0xd178, 0x29c4, 0x2c4c, 0x39ad, - 0x1812, 0x182f, 0x1896, 0x18d0, 0x1b42, 0x1b83, 0xd119, 0x60a5, - 0x60aa, 0x630f, 0x640e, 0x1d83, 0x1db8, 0x659c, 0x659b, 0x6a3c, - 0x2328, 0x71c2, 0x2623, 0x2801, 0x2900, 0x87b4, 0x08b8, 0x376c, - 0x392b, 0x1b88, 0x4879, 0x51b6, 0x1817, 0x5a65, 0x000c, 0x5bb2, - 0x0030, 0x18e2, 0x18db, 0x5e77, 0x5f42, 0x1bad, 0x6033, 0x1bf7, - 0x00da, 0x60af, 0x6236, 0x0113, 0x1d1b, 0x1d88, 0x1d87, 0x6522, - 0x1dcf, 0x1dfd, 0x0163, 0x1de7, 0x20dc, 0x69a3, 0x20d9, 0x2125, - 0x2127, 0x2333, 0x2613, 0x7225, 0x7224, 0x2675, 0x7652, 0x7789, - 0x7abf, 0x05c4, 0x05c3, 0x2ff1, 0x87b5, 0xa24c, - /* 0x22 */ - 0x4552, 0xc714, 0xc712, 0x0001, 0x5aa3, 0x5aa2, 0x1851, 0x186a, - 0x5bb6, 0x190c, 0x5bb5, 0x5bb4, 0x18fe, 0x191b, 0x5bc2, 0x5bb8, - 0x003a, 0x5e79, 0x00ab, 0x1b73, 0x5f08, 0x1b8e, 0x5f7a, 0x5fb6, - 0x60bd, 0x60b7, 0x60bc, 0x00dd, 0x60c4, 0x60c9, 0x1ca5, 0x0115, - 0x1ca7, 0x1ca4, 0x6330, 0x6383, 0x6385, 0x6412, 0x6434, 0x1dbd, - 0x64e4, 0x64de, 0x652a, 0x1e02, 0x65af, 0x65b4, 0x65b3, 0x65b1, - 0x212b, 0x231b, 0x2335, 0x6cde, 0x02a7, 0x02a5, 0x6db8, 0x6db0, - 0x02a6, 0x6fc2, 0x59fd, 0x2617, 0x037c, 0x722a, 0x2670, 0x267d, - 0x03a9, 0x75e9, 0x27e9, 0x7657, 0x0434, 0x0435, 0x77b6, 0x77d7, - 0x77de, 0x04a8, 0x2919, 0x291c, 0x2975, 0x7ac2, 0x7bab, 0x04ff, - 0x29c8, 0x7e8f, 0x05c7, 0x05c6, 0x05c8, 0x7f6d, 0x82b5, 0x06d0, - 0x06d1, 0x87c0, 0x87bf, 0x0859, 0x8bb9, 0x8d1c, - /* 0x23 */ - 0x3412, 0x08bd, 0x8e80, 0x9184, 0x9185, 0x0a28, 0x39b3, 0x9524, - 0x0aa9, 0x3a90, 0x3c36, 0xaa4c, 0x0fcc, 0xb1f6, 0x4881, 0x51b8, - 0xc370, 0x14b4, 0xc375, 0xc717, 0x1823, 0x0016, 0x002c, 0x5bf1, - 0x192e, 0x5bda, 0x1b4f, 0x5fb9, 0x1bba, 0x00df, 0x00e0, 0x1c22, - 0x60ce, 0x60d2, 0x60d0, 0x0117, 0x6243, 0x1caf, 0x1cb0, 0x1cb1, - 0x624d, 0x6334, 0x012f, 0x63d9, 0x1d64, 0x6418, 0x1dd3, 0x6538, - 0x016a, 0x65d7, 0x0170, 0x016d, 0x65dc, 0x65cb, 0x65d6, 0x65d8, - 0x016e, 0x65d1, 0xd13e, 0xd13c, 0x65d2, 0x022b, 0x0228, 0x6a59, - 0x59fd, 0x233f, 0x6ce5, 0x6ce6, 0x0292, 0x6ce8, 0x238b, 0x6dbd, - 0x2391, 0x2395, 0x6dbe, 0x6f49, 0x033f, 0x6fcd, 0x258a, 0x034f, - 0x0374, 0x715e, 0x71d0, 0x037d, 0x7306, 0x03b7, 0x03a3, 0x03b0, - 0x03b1, 0x2687, 0x03ab, 0x737c, 0x7371, 0x75ef, - /* 0x24 */ - 0x043a, 0x0437, 0x280d, 0x0438, 0x0440, 0x778d, 0x77b7, 0x288e, - 0x049f, 0x7933, 0x797f, 0x297a, 0x7bf2, 0x0504, 0x0509, 0x0506, - 0x04fd, 0x050a, 0x0507, 0x7f2a, 0x7f8b, 0x05ca, 0x7f83, 0x7f8a, - 0x2c90, 0x05c9, 0x7f8e, 0x2c9a, 0x82b6, 0x2e3c, 0x2e3a, 0x067f, - 0x2e98, 0x84d8, 0x06d2, 0x8556, 0x87d2, 0x3065, 0xd1db, 0x0743, - 0x87c2, 0x8a87, 0x8a81, 0x8bc2, 0x8bbc, 0x8d23, 0x08c1, 0x8e93, - 0x08c5, 0x09a3, 0x918d, 0x918e, 0x0a2a, 0x0a5f, 0x953b, 0x954d, - 0x0a5d, 0x9534, 0x9531, 0x96f2, 0x96f0, 0x0b17, 0x9a15, 0x9b28, - 0x0b71, 0x0b72, 0x9c25, 0x9de7, 0x0c0f, 0x9de9, 0xa017, 0x40c2, - 0x0d91, 0xa96c, 0xa980, 0xaa4b, 0x0fb2, 0x0fcf, 0x0fce, 0x469e, - 0xafde, 0xaffb, 0x47eb, 0xb051, 0x4889, 0x1096, 0xb201, 0xb202, - 0x4896, 0xb205, 0x4887, 0xb203, 0x1097, 0xc151, - /* 0x25 */ - 0x51c0, 0x148b, 0x51c3, 0xc153, 0xc37a, 0xc378, 0xc376, 0xc379, - 0xc38f, 0xc37c, 0x5578, 0xc71b, 0xc71c, 0x5625, 0x8f92, 0x1875, - 0x1874, 0x5b2e, 0x5b2c, 0x002d, 0x5c0c, 0x1999, 0x5c0b, 0x0050, - 0x004b, 0x5c05, 0x004f, 0x004c, 0xd105, 0x1971, 0x1b53, 0x1bbf, - 0x5fc2, 0x5fc3, 0x1bc0, 0x6048, 0x1bee, 0x6046, 0x00e4, 0x00e3, - 0x60ea, 0x00e1, 0x60eb, 0x00e2, 0x60ee, 0x1c3d, 0x0119, 0x1cbd, - 0x1d0c, 0x62d8, 0x9a1e, 0x63df, 0x63de, 0x0141, 0x4537, 0x644f, - 0x1dc0, 0x015e, 0x660d, 0x6608, 0x0179, 0x6609, 0x1e6e, 0x1e83, - 0x6612, 0x6665, 0x1e5e, 0x1e5d, 0x217e, 0x2179, 0x6a89, 0x217a, - 0x216c, 0x6a84, 0x6a9e, 0x6a8b, 0x0232, 0x2187, 0x6c62, 0x231d, - 0x0294, 0x2346, 0x0297, 0x6cf9, 0x2343, 0x6cf7, 0x0296, 0x0298, - 0x6d06, 0x6ddd, 0x02b2, 0x6dd9, 0x6ddf, 0x6de2, - /* 0x26 */ - 0x02b9, 0x2561, 0x2566, 0x5af1, 0x2590, 0x0375, 0x037f, 0x037e, - 0x2629, 0x038f, 0x723f, 0x723e, 0x730b, 0x03bd, 0x26b2, 0x7383, - 0x03bb, 0x03bc, 0x7386, 0x26c0, 0x767c, 0x043d, 0x043e, 0x0474, - 0x77f7, 0x047a, 0x0476, 0x0478, 0x0475, 0x77fb, 0x793b, 0x04af, - 0x04b0, 0x04c7, 0x04cc, 0x7bf9, 0x7bca, 0x0516, 0x7bff, 0x0512, - 0x051d, 0x7c09, 0x7c03, 0x0515, 0x050f, 0x0514, 0x2a1f, 0x29e2, - 0x7c10, 0x7e9a, 0x7e9f, 0x05b0, 0x05bf, 0x05c0, 0x7f87, 0x05d2, - 0x05d9, 0x82b7, 0x067a, 0x8308, 0x82f9, 0x0681, 0x0682, 0x82f4, - 0x2f16, 0x2ef9, 0x06da, 0xad57, 0x3088, 0x87d6, 0x309b, 0xd1de, - 0x306e, 0x309e, 0x87d4, 0x0822, 0x081f, 0x8a90, 0x8a8d, 0x0821, - 0x3324, 0x8b60, 0x8bce, 0x8bcf, 0x085c, 0x337d, 0x8bd1, 0x087d, - 0x088d, 0x088f, 0x34e6, 0x8eca, 0x34cb, 0x08d0, - /* 0x27 */ - 0x8eb7, 0x08d8, 0x8eb2, 0x8ebb, 0x8eb9, 0x34b5, 0x09a7, 0x919e, - 0x3797, 0x91b2, 0x379b, 0x0a12, 0x936f, 0x93ac, 0x0a2f, 0x9423, - 0x396b, 0x0a2e, 0x0a2c, 0x0a5c, 0x956c, 0x39d5, 0x9532, 0x955e, - 0x0a62, 0x0a67, 0x0ab4, 0x96fb, 0x9929, 0x99bd, 0x9a1f, 0x3c43, - 0x7941, 0x9a1d, 0x3c9c, 0x9b31, 0x9b2f, 0x0bea, 0x9d43, 0x0bfb, - 0x9d41, 0x0c14, 0x9df5, 0x0c13, 0x0c12, 0x0c10, 0x0c11, 0x9df2, - 0x0c86, 0x3ee4, 0x0c98, 0xa01e, 0xa254, 0x0d2a, 0xa256, 0xa329, - 0xa327, 0xa328, 0x41ce, 0x0eb5, 0xa979, 0xa97e, 0xabb6, 0xabb7, - 0x4613, 0x0fd6, 0x0fd8, 0x46b7, 0x0fd9, 0x0fd4, 0x0fd7, 0xd281, - 0x46b9, 0x59fd, 0xad4d, 0x47e4, 0x47fd, 0x480f, 0x1060, 0xb109, - 0xb108, 0x109e, 0x10a1, 0xb21e, 0xb21a, 0xb223, 0xb215, 0xb219, - 0xb216, 0x48bf, 0x48ca, 0xb214, 0xb218, 0x48c1, - /* 0x28 */ - 0x10a0, 0xb51f, 0xb6dd, 0xb6df, 0xc169, 0x51d0, 0x59fd, 0xc16c, - 0x14b9, 0xc393, 0x52ae, 0xc395, 0xc394, 0xc391, 0xc397, 0xc730, - 0x15c1, 0x15c2, 0x5638, 0xd318, 0x001c, 0x5c31, 0x005e, 0x19bc, - 0x0059, 0x005c, 0x5c36, 0x005f, 0x19e9, 0x19bd, 0x19e2, 0x1b58, - 0x5fc9, 0x5fca, 0x00ce, 0x6118, 0x6112, 0x6119, 0x6110, 0x6116, - 0x1cc6, 0x625f, 0x1cc8, 0x62df, 0x6317, 0x1d28, 0x633c, 0x1d29, - 0x63ea, 0x63e9, 0x641c, 0x6458, 0x6464, 0x64f3, 0x015f, 0x6697, - 0x0185, 0x665a, 0x6659, 0x0186, 0x668e, 0x21b4, 0x6abc, 0x21a9, - 0x0287, 0x6d0d, 0x6cfc, 0x6d0c, 0x6e07, 0x6e0a, 0x02ca, 0x6e02, - 0x02c3, 0x6e26, 0x6e08, 0x6e1d, 0x02c2, 0x2568, 0x6f4e, 0x0341, - 0x6fed, 0x6fee, 0x6fef, 0x0380, 0x0381, 0x7250, 0x724c, 0x0393, - 0x0392, 0x724f, 0x03c5, 0x73d4, 0x59fd, 0x73b0, - /* 0x29 */ - 0x0446, 0x0441, 0x0445, 0x0442, 0x043f, 0x76a5, 0x7809, 0x0482, - 0x0481, 0x047f, 0x04a5, 0x292b, 0x04b3, 0x04b5, 0x79f3, 0x79d7, - 0x298d, 0x04da, 0x7adc, 0x04db, 0x050d, 0x2a18, 0x050e, 0x7c0b, - 0x051e, 0x0525, 0x0526, 0x051c, 0x0521, 0x2a57, 0x2a48, 0x0527, - 0x051a, 0x7c3a, 0x7c0d, 0x7c11, 0x2a38, 0x7c20, 0x7c01, 0x0524, - 0x7c37, 0xd1a3, 0x2a71, 0x7eaa, 0x05c1, 0x05e1, 0x7fe7, 0x7fe8, - 0x2d12, 0x05eb, 0x7ff5, 0x05e2, 0x05d7, 0x05e9, 0x8035, 0x7fe6, - 0x2d0a, 0x7ff8, 0x2d23, 0x7ff1, 0x0684, 0x8314, 0x8315, 0x8309, - 0x06b5, 0x06bc, 0x06dc, 0x06de, 0x06df, 0x857b, 0x2f2a, 0x857e, - 0x8766, 0x8767, 0x880a, 0x0754, 0x30e0, 0x30be, 0x0753, 0x0824, - 0x0825, 0x3329, 0x0828, 0x0827, 0x8a9c, 0x8b62, 0x8be1, 0x8bde, - 0x8bdf, 0x8be9, 0x088b, 0x8ee4, 0x8ef7, 0x08dc, - /* 0x2a */ - 0x3543, 0x8eea, 0x8ef6, 0x8f12, 0xd201, 0x37a6, 0x09b2, 0x37c0, - 0x91d9, 0x392f, 0x935f, 0x0a1b, 0x9373, 0x0a32, 0x3971, 0x943f, - 0x9578, 0x0a6b, 0x957d, 0x0a6c, 0x0a6d, 0x9712, 0x0ab9, 0x0aba, - 0x0b09, 0x0b0a, 0x992f, 0x3bea, 0x0b1b, 0x9930, 0x99db, 0x3c20, - 0x0b58, 0x9a29, 0x0b5a, 0xd236, 0x9b40, 0x0b77, 0x9b3d, 0x9b3e, - 0x0b79, 0x3ca9, 0x9b38, 0x3d85, 0x9c48, 0x0beb, 0x9cd0, 0x0bfd, - 0x0bfc, 0x3e06, 0x0c15, 0x0c18, 0x3df6, 0x0c16, 0x0c17, 0x0c19, - 0x3e00, 0x0c1b, 0x9e0e, 0x9e09, 0x3e02, 0x9e07, 0x0c87, 0x9f5f, - 0x9f60, 0x0c9c, 0xa02a, 0x0c9a, 0xa029, 0x0cff, 0x0cfe, 0xa14d, - 0x0d31, 0x0d2e, 0x0d30, 0x0d32, 0xa26c, 0x59fd, 0x0d2f, 0xa267, - 0x0d95, 0x0d96, 0xa339, 0xa334, 0xa459, 0x0dc5, 0x0e7a, 0xa923, - 0x0f42, 0xa982, 0x0f54, 0xa983, 0xa9a8, 0xaa55, - /* 0x2b */ - 0xaaf9, 0xaaf8, 0xaafc, 0xaafa, 0x4609, 0xd27a, 0x0f9f, 0x0fa0, - 0x0fa2, 0x0fe0, 0xad74, 0x0fe1, 0xad6b, 0xad71, 0x0fdf, 0xad76, - 0xb10e, 0x1062, 0x1061, 0xb110, 0xb10f, 0x10a7, 0xb238, 0xb239, - 0xb23a, 0x48da, 0xb237, 0xb23e, 0x490a, 0x1189, 0xb49c, 0xb52a, - 0xb53a, 0xb52b, 0xb528, 0xb6aa, 0xb70f, 0x121d, 0xb710, 0xb8e6, - 0x132a, 0xbd25, 0xbe8e, 0x13d3, 0x1442, 0x1443, 0xc18b, 0x1491, - 0xc18c, 0xc19a, 0x1490, 0x14bf, 0xc3b3, 0x14bc, 0xc3b2, 0x14c0, - 0x15c7, 0x15c5, 0x5655, 0xc744, 0x5652, 0x1835, 0x5b58, 0x5ca7, - 0x1a34, 0x1a01, 0x5c63, 0x1a0a, 0x0066, 0x5c6a, 0x5c65, 0x5c6b, - 0x00ad, 0x5eed, 0x5fd9, 0x613b, 0x6132, 0x1c58, 0x6135, 0x6131, - 0x613e, 0x6143, 0x6136, 0x626d, 0x011d, 0x62e4, 0x0131, 0x1d2b, - 0x63f4, 0x014c, 0x6469, 0x646b, 0x0195, 0x0191, - /* 0x2c */ - 0x0194, 0x66bf, 0x66c3, 0x66ae, 0x018f, 0x1eec, 0x66b1, 0x1f15, - 0x1efe, 0x66bb, 0x66af, 0x66b0, 0x1ee3, 0x1f16, 0x0240, 0x6aef, - 0x0241, 0x6aed, 0x21d3, 0x6af0, 0x6c93, 0x6d34, 0x6d2b, 0x2359, - 0x2427, 0x02d8, 0x02d2, 0x02da, 0x2428, 0x2410, 0x02d7, 0x240e, - 0x0342, 0x0357, 0x7004, 0x7003, 0x7002, 0x25af, 0x7005, 0x25ba, - 0x25b1, 0x7000, 0x7174, 0x0378, 0x0382, 0x0397, 0x7265, 0x7263, - 0x03c9, 0x73d7, 0x03c8, 0x03d6, 0x03cc, 0x73e8, 0x03d0, 0x73db, - 0x73d8, 0x03ce, 0x03c7, 0x26fc, 0x7409, 0x03cf, 0x03cb, 0x26f2, - 0x26fe, 0x73e5, 0x73e7, 0x27f8, 0x763f, 0x0447, 0x76c0, 0x0448, - 0x76b9, 0x76ba, 0x0483, 0x0485, 0x0484, 0x7820, 0x794f, 0x292c, - 0x04b8, 0x04bc, 0x7a91, 0x7a90, 0x7aee, 0x7af3, 0x7aec, 0x7af1, - 0x7aeb, 0x7af2, 0x7af4, 0x7aed, 0x7c41, 0x7c48, - /* 0x2d */ - 0x7c45, 0x0531, 0x0534, 0x0536, 0x2a82, 0x7c7f, 0x7c8b, 0x0523, - 0x7c3b, 0x7c4e, 0x053a, 0x2a91, 0x2a8f, 0x7c7c, 0x05b4, 0x05b5, - 0x05ed, 0x05ec, 0x05d8, 0x7ff0, 0x8036, 0x803f, 0x8043, 0x8031, - 0x8034, 0x8046, 0x05f6, 0x05e7, 0x802f, 0x82c3, 0x067c, 0x067b, - 0x8336, 0x0688, 0x2e47, 0x2e4c, 0x8321, 0xd1c8, 0x2e8a, 0x8473, - 0x06be, 0x84e6, 0x06e7, 0x06e5, 0x06ee, 0x30e1, 0x314a, 0x883f, - 0x0759, 0x075e, 0x886b, 0x075a, 0x313f, 0x0761, 0x0758, 0x075b, - 0x30bd, 0x8871, 0x075f, 0xd1e2, 0x082a, 0x082d, 0x8ab0, 0x0823, - 0x082b, 0x082c, 0x8bf3, 0x087e, 0xd1f5, 0x0893, 0x0899, 0x8d61, - 0x8d5f, 0x08b3, 0x08e7, 0x08ea, 0x8f28, 0x8f1e, 0x8f29, 0xd202, - 0x8eeb, 0x8f66, 0x09b4, 0x91f6, 0x37c9, 0x0a17, 0x9360, 0x9377, - 0x93bb, 0x0a21, 0x93bc, 0x0a38, 0x0a37, 0x0a74, - /* 0x2e */ - 0x0a73, 0x0a75, 0x95a2, 0x95b2, 0x959e, 0x0a76, 0x0a78, 0x973a, - 0x9738, 0x3aba, 0x0b0c, 0x0b20, 0x0b1e, 0x9a4d, 0x0b5b, 0x9a5e, - 0x0b5c, 0x9b17, 0x0b83, 0x3cc6, 0x0b80, 0x0b81, 0x0b7e, 0x0b88, - 0x0b85, 0x0b89, 0x0b7f, 0x0b8e, 0x9b64, 0x9b67, 0x0b84, 0x3cb7, - 0x3d8c, 0x9c59, 0x3d8d, 0x9cda, 0x0bee, 0x0bed, 0x0bfe, 0x9d51, - 0x0bff, 0x9d55, 0x9e3b, 0x9e34, 0x0c23, 0x9e37, 0x3e17, 0x9e31, - 0x3e1c, 0x0c1f, 0x9e3f, 0x9e59, 0x3e14, 0x9f61, 0x0c8f, 0x0c90, - 0xa058, 0xa062, 0xa050, 0x0ca0, 0xa051, 0x0ca6, 0x0c9f, 0xa046, - 0x0ca7, 0x0ca1, 0xa12d, 0x0d02, 0x0d36, 0xa348, 0xa351, 0xa34a, - 0xa34f, 0xa350, 0xa349, 0xa463, 0x0dc8, 0xa466, 0xa460, 0x0dd8, - 0x420c, 0x0ddd, 0x0ddc, 0xa4f1, 0x0dd7, 0xa507, 0x0dda, 0x0eba, - 0xa79b, 0xa7a3, 0xa79d, 0x0ebe, 0x0ec2, 0x0ebb, - /* 0x2f */ - 0x0ec0, 0xa7a9, 0xa7a7, 0xa7a4, 0x4423, 0xa7ba, 0x77c1, 0xa926, - 0x0f43, 0x0f55, 0xa994, 0xa993, 0x0f57, 0x0f68, 0x4598, 0x4590, - 0xab07, 0xab0d, 0xab02, 0xab0c, 0xab09, 0xab08, 0xab13, 0x0fa1, - 0xabd2, 0x463a, 0xac3e, 0xac3c, 0xad67, 0xad9e, 0x0fea, 0xadad, - 0x0fe7, 0xadd9, 0xad42, 0xada3, 0xada0, 0x0fe8, 0x0fe9, 0xad7c, - 0xb004, 0x1054, 0xb058, 0xb060, 0xb0c9, 0xb0c8, 0x4826, 0x1065, - 0xb11c, 0xb11a, 0x108a, 0xb274, 0x10b0, 0xb26e, 0xb26f, 0xb279, - 0x10bc, 0x492e, 0xb277, 0x4955, 0x491a, 0x10b8, 0x493d, 0xb27c, - 0x10b2, 0xb270, 0x4930, 0x10bd, 0xb27a, 0xb282, 0x118a, 0x4b51, - 0x11a1, 0xb544, 0x11a2, 0xb543, 0x4b88, 0xb545, 0x1215, 0xb725, - 0xb71f, 0x1220, 0x1273, 0xb8e8, 0x4d8e, 0x4d8d, 0xb909, 0xb9b7, - 0xb9b9, 0xba64, 0xba63, 0x4e09, 0x4e14, 0x12b1, - /* 0x30 */ - 0xba62, 0xba65, 0x132b, 0xbbac, 0x1345, 0xbd2a, 0x1397, 0x1398, - 0xbe96, 0x13d5, 0xbfc2, 0xd2de, 0x1493, 0x1496, 0x5207, 0x1494, - 0xc1aa, 0xc1b0, 0x14c7, 0x14c5, 0xc3d4, 0xc3cd, 0xc3d6, 0x14c4, - 0xc4f0, 0x5579, 0x5584, 0x15ce, 0x15ca, 0x15cc, 0x5657, 0x15c9, - 0x56ba, 0x59fd, 0xd04b, 0x5b62, 0x006e, 0x5cb7, 0x1a67, 0x5cac, - 0x5cab, 0x0071, 0x5cc1, 0x00bb, 0x00d3, 0x5fe8, 0x6169, 0x615d, - 0x615f, 0x00f3, 0x00ed, 0x00f5, 0x6164, 0x6162, 0x00f1, 0x00f2, - 0x00f6, 0x0120, 0x62f9, 0x0128, 0x62ee, 0x1d18, 0x1d2c, 0x1d59, - 0x63ab, 0x63ac, 0x63aa, 0x1d68, 0x1d7e, 0x6486, 0x647a, 0x1da1, - 0x6728, 0x01a1, 0x1f5b, 0x01aa, 0x01a9, 0x6731, 0x01b5, 0x01a5, - 0x01a8, 0x1f42, 0x01a7, 0x1f47, 0x672d, 0xd143, 0x1f3d, 0x672b, - 0x6732, 0x1f60, 0x21eb, 0x6b29, 0x6b26, 0x6b53, - /* 0x31 */ - 0x024d, 0x6b33, 0x6b34, 0x6c9d, 0x029c, 0x235f, 0x6d41, 0x02ea, - 0x02e5, 0x6e91, 0x6e69, 0x256f, 0x7022, 0x035e, 0x7034, 0xd16d, - 0x712e, 0x0386, 0x0384, 0x71f4, 0x265a, 0x7428, 0x03d9, 0x741c, - 0x03de, 0x7411, 0x7424, 0x7415, 0x03db, 0x7416, 0x7454, 0x7423, - 0x75ff, 0x0431, 0x76cf, 0x76d0, 0x044b, 0x76ce, 0x0449, 0x044a, - 0x044c, 0x77c7, 0x785c, 0x048a, 0x7836, 0x0489, 0x048b, 0x7843, - 0x04bb, 0x29a2, 0x299d, 0x04e4, 0x7b2a, 0x7b01, 0x29a3, 0x7b0b, - 0x7b0f, 0x053b, 0x052e, 0x053e, 0x0546, 0x0553, 0x7cdf, 0x0544, - 0x7cd2, 0x053f, 0x0542, 0x054f, 0x7ccd, 0x0552, 0x054a, 0x2ac2, - 0x7cdb, 0x055a, 0x2aa5, 0x0549, 0x7ccf, 0x2c1c, 0x7ec0, 0x2c1d, - 0x0603, 0x8081, 0x8082, 0x808a, 0x80a8, 0x808c, 0x2d95, 0x2d9a, - 0x0601, 0x0606, 0x05fb, 0x05f9, 0x808e, 0x0605, - /* 0x32 */ - 0x05fa, 0x808b, 0x2da6, 0x8096, 0x05fe, 0x80cc, 0x067d, 0x068c, - 0x834f, 0x834a, 0x2e50, 0x068e, 0x834b, 0x833d, 0x2e52, 0x8344, - 0x8349, 0x849e, 0x84f3, 0x2ec8, 0x84f5, 0x06f0, 0x06f2, 0x85b3, - 0x2f58, 0x06f1, 0x06e6, 0x85e5, 0x85b6, 0xd1d8, 0x3188, 0x8886, - 0x076f, 0x076d, 0x0769, 0x88b6, 0x8885, 0x076e, 0x88ab, 0x082f, - 0x0830, 0x0863, 0x8c0d, 0x8c8b, 0x8c8c, 0x33b8, 0x0880, 0x33b9, - 0x089a, 0x0894, 0x0896, 0x0895, 0x0897, 0x8d72, 0x08f4, 0x08fe, - 0x8f8f, 0x0901, 0x8f79, 0x0902, 0x8f77, 0x08f9, 0x8f90, 0x8f88, - 0x8f80, 0x8f9e, 0x08f6, 0x08f7, 0x8f82, 0x8f34, 0x8f89, 0x08ff, - 0x8f85, 0x8f7e, 0x8f7a, 0x8fa6, 0x360b, 0x8fb5, 0x91f4, 0x09bf, - 0x09bc, 0x3805, 0x9229, 0x9226, 0x922a, 0x09be, 0x09c0, 0x937e, - 0x0a3b, 0x0a39, 0x945b, 0x9461, 0x9460, 0x0a3c, - /* 0x33 */ - 0x959b, 0x3a14, 0x3a04, 0x95c3, 0x0a7d, 0x95cd, 0x0a7f, 0x0a7a, - 0x0a7c, 0x3a05, 0x0a7e, 0x3a15, 0x3a0d, 0x0a80, 0x0abf, 0x0ac3, - 0x9754, 0x9759, 0x0acc, 0x0b0e, 0x0b0d, 0x98f5, 0x0b26, 0x0b24, - 0x0b25, 0x0b23, 0x0b21, 0x0b29, 0x9a69, 0x9a65, 0x0b8f, 0x0b8d, - 0x9b7c, 0x0b8b, 0x0b92, 0x9b80, 0x0b90, 0x9c65, 0x0bef, 0x0bf0, - 0x9cdf, 0x9d60, 0x0c01, 0x9d5e, 0x0c2e, 0x0c2d, 0x3e2e, 0x0c28, - 0x0c29, 0x0c2c, 0x9e8f, 0x9e61, 0x9e5a, 0x3e41, 0x0c88, 0x9f67, - 0x0c92, 0x0c91, 0x3eea, 0x9fbb, 0x3f44, 0x0ca9, 0x0cac, 0x0cae, - 0x0caa, 0x0d06, 0x0d05, 0x0d4a, 0x0d3e, 0x0d3c, 0x0d3b, 0xa29b, - 0x0d42, 0x0d41, 0x0d43, 0xa2a9, 0x0d45, 0xa366, 0x0d9a, 0x0d9b, - 0x0d9f, 0x0d9e, 0xa472, 0xa476, 0xa514, 0x0dde, 0x0de2, 0x0de6, - 0xa50f, 0x4229, 0x0de3, 0x4227, 0x0ddf, 0xa641, - /* 0x34 */ - 0xa646, 0x439d, 0xa64b, 0xa643, 0x0e7e, 0x0ec9, 0x0ecc, 0xa7c6, - 0x0ed1, 0xa7c7, 0x0ed0, 0xa7ce, 0x0ecf, 0x0ec8, 0xa7c9, 0x0ecd, - 0xa7cb, 0xa7c5, 0x0f49, 0x0f47, 0x0f58, 0x0f6b, 0x0f6c, 0x0f6a, - 0xaa69, 0x0f80, 0x0f82, 0x0f84, 0x45c8, 0x0f83, 0xab1e, 0xabba, - 0x0fb6, 0xac52, 0xac51, 0xac53, 0xad9f, 0xaddb, 0x4726, 0x0ff1, - 0xade3, 0x0ff6, 0x0ff3, 0x0ff0, 0x471c, 0xadd7, 0xade9, 0x4728, - 0x0ff5, 0x0ff4, 0x0ff7, 0xadde, 0xaddc, 0xb03c, 0xd28b, 0x1055, - 0xb122, 0xb132, 0xb123, 0x108b, 0x10cb, 0x10c2, 0xb2d4, 0xb2c8, - 0xb2bc, 0x10ca, 0x10cc, 0xb2cd, 0x10c7, 0x10c9, 0x4970, 0xb2be, - 0x10c6, 0xb340, 0xb2d6, 0x10c3, 0x4982, 0xb2bd, 0x49ac, 0xb2ba, - 0x10c4, 0xb2c0, 0xd29b, 0xd29d, 0xb2c1, 0xb4a6, 0xb4a5, 0xb4a8, - 0x11a9, 0x4bad, 0x11a8, 0x11a6, 0xb55f, 0xb570, - /* 0x35 */ - 0xb56a, 0xb565, 0xb567, 0xb56f, 0xb587, 0x4bca, 0x4c51, 0xb73d, - 0xb743, 0x1222, 0xb740, 0x1226, 0x1224, 0x1225, 0x4c9d, 0x122a, - 0x1274, 0xb918, 0x1279, 0x4d90, 0x127a, 0xb919, 0xb9c1, 0x4dd8, - 0x4dd7, 0x1297, 0xb9bc, 0xb9c8, 0x4e2e, 0xba71, 0x12bc, 0xba6e, - 0x12b3, 0xba78, 0x12bf, 0x12b7, 0xd2cd, 0xba7a, 0xbbb1, 0xbbaf, - 0xbbb0, 0x1334, 0x1346, 0x1348, 0x4f59, 0xbca8, 0xbca6, 0x1356, - 0x1367, 0xbd48, 0xbd45, 0x1368, 0x1399, 0x139a, 0xbea0, 0xbea4, - 0x13d8, 0xbfd4, 0x13db, 0x13dc, 0x13dd, 0x13d7, 0xbfd2, 0xc022, - 0x1449, 0x144a, 0x50da, 0xc0b7, 0xc0cc, 0x5233, 0xc1e6, 0x5218, - 0x149a, 0xc1c8, 0x14cd, 0x14ca, 0xc3f4, 0x14cb, 0xc3ed, 0x14cf, - 0xc37e, 0xd2e3, 0x14cc, 0x14ea, 0x14ed, 0xc4f9, 0xc4fd, 0x14e9, - 0xc507, 0x151a, 0x53ef, 0x158d, 0x15d2, 0xc778, - /* 0x36 */ - 0xc77a, 0xc779, 0xc88a, 0x15f2, 0xc97b, 0xcad5, 0xcae9, 0x163d, - 0xcaeb, 0x163e, 0x16f8, 0x1723, 0x58d9, 0x18b4, 0x5b6c, 0x1aa0, - 0x1a90, 0x0075, 0x1a86, 0x1a84, 0x5cfa, 0x1a8a, 0x0076, 0x0073, - 0x1a9f, 0x1aa1, 0x5d18, 0x1a93, 0x00bd, 0x5ff6, 0x1bd5, 0x618a, - 0x6189, 0x00f9, 0x617f, 0x6188, 0x00fa, 0x6183, 0x6184, 0x6198, - 0x6163, 0x6187, 0x0121, 0xd127, 0x0129, 0x62f5, 0x6350, 0x0138, - 0x014e, 0x6487, 0x648a, 0x6565, 0x67b7, 0x67c1, 0x67c7, 0x01c8, - 0x01bc, 0x67c5, 0x67cb, 0x1f90, 0x67d1, 0x01bb, 0x01c2, 0x01c0, - 0x67b8, 0x67ca, 0x01ca, 0x67de, 0x01c9, 0x67ce, 0x01b8, 0x2110, - 0x2217, 0x6b68, 0x024e, 0x6b6b, 0x2244, 0x0250, 0x222b, 0x6b6a, - 0x2245, 0x6b66, 0x6b77, 0x6b96, 0x6b6e, 0xd156, 0x028a, 0x6d57, - 0x2365, 0x6d56, 0x6e9c, 0x6e9e, 0x02fc, 0x02f9, - /* 0x37 */ - 0x6ea1, 0x0363, 0x7042, 0x25cf, 0x7046, 0x703e, 0x7133, 0x0387, - 0x0388, 0x71fa, 0x039a, 0x7297, 0x729b, 0x72aa, 0x2756, 0x7473, - 0x747c, 0x03e9, 0x7486, 0x03ea, 0x2754, 0x0450, 0x76f3, 0x76f0, - 0x0456, 0x0452, 0x044f, 0x0454, 0x0451, 0x76ec, 0x78af, 0x048e, - 0x048f, 0x7864, 0x7868, 0x795a, 0x293d, 0x7b1f, 0x7b25, 0x04ed, - 0x04eb, 0x29a4, 0x7cc6, 0x7cd6, 0x7cc3, 0x0562, 0x7d2c, 0x055d, - 0x7d2e, 0x7d5e, 0x7d33, 0x0561, 0x0565, 0x055c, 0x7d2d, 0x7d46, - 0x055f, 0x7cc1, 0x7d3a, 0x7ecc, 0x809d, 0x8083, 0x80f6, 0x2dec, - 0x0616, 0x060a, 0x80f8, 0x060e, 0x0612, 0x80fe, 0x80f3, 0x0611, - 0x80eb, 0x80fa, 0x0610, 0x8107, 0x80fc, 0x0609, 0x2dfa, 0x0615, - 0x2dd4, 0x8372, 0x8373, 0x8374, 0x0691, 0x0695, 0x0693, 0x0692, - 0x068f, 0x835f, 0x8360, 0x84aa, 0x8534, 0x06f6, - /* 0x38 */ - 0x85b4, 0x06fb, 0x85f0, 0x2f75, 0x06f9, 0x860d, 0x85f3, 0x860f, - 0x301c, 0x077d, 0x88c9, 0x077a, 0x077f, 0x88c5, 0x0778, 0x88d7, - 0x88cc, 0x31d9, 0x88e7, 0x0770, 0x0782, 0x88c1, 0x0784, 0x88e8, - 0x0833, 0x8acb, 0x0832, 0x0836, 0x8ac8, 0x8b7a, 0x0856, 0x8b79, - 0x8b7e, 0x0867, 0x8c1b, 0x0865, 0x0864, 0x0866, 0x8c1f, 0x8c19, - 0x0881, 0x0882, 0x0883, 0x089e, 0x8d89, 0x33f1, 0x089d, 0x8d8b, - 0x090f, 0x0912, 0x9009, 0x8ffe, 0x9000, 0x0910, 0x0918, 0x900b, - 0x0914, 0x0919, 0x3637, 0x59fd, 0x904a, 0x367d, 0x3686, 0x09c8, - 0x09c4, 0x09c6, 0x9279, 0x09c7, 0x09c3, 0x926c, 0x9299, 0xd21b, - 0x9262, 0x9314, 0x0a19, 0x0a1c, 0x93c8, 0x93d7, 0x940c, 0x0a41, - 0x9470, 0x0a42, 0x0a43, 0x9471, 0x95df, 0x95e4, 0x0a82, 0x95e7, - 0x0a81, 0x0a94, 0x0a84, 0x9790, 0x0ad2, 0x0b0f, - /* 0x39 */ - 0x0b22, 0x994c, 0x0b27, 0x0b2a, 0x3bfa, 0x0b28, 0x994f, 0x0b60, - 0x9a7d, 0x9a7e, 0x9a7c, 0x3c72, 0x9a8d, 0x9b19, 0x0b9b, 0x0b9c, - 0x9bc0, 0x0b93, 0x0b94, 0x3cdc, 0x0ba0, 0x0b99, 0x9bb6, 0x0ba1, - 0x9ba8, 0x0bf1, 0x9ceb, 0x9ce7, 0x9d6f, 0x9ec7, 0x0c36, 0x9e9f, - 0x0c37, 0x0c3f, 0x0c3c, 0x9ec4, 0x0c34, 0x0c39, 0x0c3b, 0x0c35, - 0x0c30, 0x0c32, 0x0c38, 0x0c3e, 0x0c3a, 0x9e9b, 0x9e97, 0x9ec5, - 0x9f6b, 0x9fce, 0x0cb6, 0x3f67, 0xa0b1, 0xa0ae, 0xa0b0, 0x0cb3, - 0x0d09, 0x4077, 0xa23e, 0xa2b5, 0xa2ba, 0x0d4c, 0xa2b2, 0xa2b4, - 0x0d53, 0x0d4d, 0x0d51, 0x0d4f, 0x419b, 0xa377, 0x0da2, 0xa386, - 0xa37b, 0x0dcd, 0xa47e, 0xa52e, 0x0de7, 0xa52f, 0x0df0, 0xa537, - 0x0de9, 0x0dec, 0xa532, 0x0de8, 0x0dee, 0x0e02, 0xa536, 0xa539, - 0xa535, 0xa65c, 0x0e82, 0x0e83, 0x0e86, 0xa67b, - /* 0x3a */ - 0xa661, 0xa7ee, 0xa7eb, 0xa7ef, 0xa820, 0x442a, 0x4465, 0x0f4a, - 0xa930, 0x0f5a, 0x4564, 0xa9be, 0x0f6e, 0xaa67, 0xaa7c, 0x0f70, - 0x0f6f, 0xab24, 0x0f8a, 0x0f87, 0x0f88, 0xab29, 0xabef, 0x4620, - 0x0fb7, 0x0ffd, 0x4720, 0xae0d, 0x1005, 0x473c, 0x1008, 0x1003, - 0x1002, 0x1004, 0x0739, 0x1009, 0x0fff, 0xae64, 0x473f, 0xae15, - 0x0ffc, 0x1001, 0x100a, 0x47f0, 0x47f5, 0x106b, 0x106c, 0xb135, - 0xb136, 0xb134, 0xb137, 0xb347, 0xb32b, 0x10de, 0xb341, 0xb343, - 0x10db, 0xb342, 0x10dd, 0x10e3, 0xb332, 0x10e0, 0x10d9, 0x10d8, - 0x10e4, 0xb344, 0xb34a, 0x10da, 0x10ef, 0xd2a0, 0x4a15, 0x49be, - 0xb354, 0xb36e, 0xb352, 0x10d7, 0x11b3, 0x11bb, 0x4be5, 0x11b2, - 0x4bd2, 0x11ad, 0xb592, 0x11af, 0xd2b8, 0x4be0, 0xb5bf, 0x1216, - 0x1228, 0x1223, 0x4cb3, 0xb741, 0xb769, 0xb765, - /* 0x3b */ - 0x1275, 0x127e, 0x127c, 0xb922, 0xb91d, 0xb9d2, 0xb9da, 0xb9db, - 0x12ce, 0x12cd, 0x12cf, 0x4e53, 0xbaa4, 0xba9e, 0x4e37, 0x4e47, - 0x4e5c, 0xba9d, 0x12c4, 0x12cc, 0x12c8, 0x12c7, 0xbaad, 0xbaa6, - 0xbaa7, 0xbbb3, 0xbbe0, 0xbc35, 0xbc37, 0x135a, 0x136a, 0xbd4a, - 0x136b, 0x136d, 0x136f, 0xbe5e, 0x139e, 0xbec0, 0x13a4, 0x13a3, - 0x13e4, 0x13e8, 0x13e9, 0x13e0, 0x13e3, 0xbff9, 0x13ea, 0x13e1, - 0x13ed, 0x1434, 0x1435, 0x1451, 0x50f0, 0xc1f0, 0x149d, 0xc1f3, - 0xc21b, 0xc1f2, 0xc1fb, 0xc41c, 0xc413, 0x14d0, 0xc40f, 0x14ee, - 0xc516, 0xc511, 0xc512, 0x14f2, 0xc50e, 0x541d, 0x1588, 0xc667, - 0xc6f2, 0xc6da, 0x158f, 0xc6dc, 0x15d8, 0xc894, 0xc89b, 0xc892, - 0xc89a, 0xc988, 0xc986, 0x163f, 0xcaef, 0x1652, 0x576b, 0xcb5e, - 0x1650, 0xcc58, 0x16b1, 0xcc56, 0xcc54, 0x16f9, - /* 0x3c */ - 0xcd9b, 0xce96, 0xcea4, 0x1726, 0x1728, 0xce9a, 0xcf12, 0x0080, - 0x1ac0, 0x0081, 0x5d6b, 0x007e, 0x007f, 0x5d37, 0x5d3c, 0xd10a, - 0x5ef7, 0x00be, 0x5f66, 0x00d6, 0x61a9, 0x61ae, 0x61ad, 0x61c8, - 0x61a5, 0x61b0, 0x6295, 0x1ce5, 0x6325, 0x0134, 0x6499, 0x1daf, - 0x6574, 0x6570, 0x656f, 0x6841, 0x6854, 0x01d5, 0x01d8, 0x6840, - 0x6838, 0x01d4, 0x1fd8, 0x01d9, 0x6852, 0x683a, 0x6857, 0xd14a, - 0x6859, 0x2111, 0x2267, 0x6bb4, 0x6bc0, 0x025d, 0x2243, 0x025e, - 0x0259, 0x6b75, 0x025a, 0x02a0, 0x6d60, 0x6d47, 0x0305, 0x6ef0, - 0x0307, 0x6eef, 0x030e, 0x030c, 0x6eec, 0x6f83, 0x0345, 0x6f84, - 0x6f8f, 0x0364, 0x7061, 0x0365, 0x7069, 0x25dd, 0x0366, 0x7062, - 0x0389, 0x03ec, 0x03f1, 0x2770, 0x276a, 0x03f0, 0x03f8, 0x2774, - 0x275f, 0x74ae, 0x2761, 0x2773, 0x74b2, 0x03f2, - /* 0x3d */ - 0x03f4, 0x770b, 0x0458, 0x7710, 0x770d, 0x045a, 0x0459, 0x0457, - 0x045b, 0x2850, 0x787f, 0x7881, 0x04a6, 0x04c2, 0x04c1, 0x293f, - 0x7a0b, 0x7b4e, 0x04ef, 0x29b0, 0x7dea, 0x7d45, 0x0568, 0x2b35, - 0x2b2d, 0x0573, 0x056e, 0x0574, 0x2b02, 0x0566, 0x7d28, 0x7d5d, - 0x7edc, 0x05b9, 0x2c26, 0x7ed4, 0x060c, 0x8164, 0x8168, 0x0620, - 0x8162, 0x061d, 0x8161, 0x061c, 0x8166, 0x0621, 0x061a, 0x0619, - 0x80f2, 0x8169, 0x8167, 0x067e, 0x839a, 0x839b, 0x8385, 0x839c, - 0x069d, 0x83a4, 0x069e, 0x069c, 0x2e6e, 0x8399, 0x8386, 0x8390, - 0x8481, 0x84ae, 0x2eb1, 0x2ed4, 0x06cd, 0x8538, 0x070b, 0x070a, - 0x2f85, 0x893b, 0x078f, 0x3272, 0x0795, 0x0790, 0x0791, 0x894c, - 0x323a, 0x07b9, 0x8947, 0x8935, 0x0797, 0x079e, 0x8933, 0x078b, - 0x8982, 0x8940, 0x083b, 0x083a, 0x083c, 0x083d, - /* 0x3e */ - 0x0839, 0x083e, 0x086b, 0x086c, 0x8c36, 0x8d0e, 0x08a2, 0x08a1, - 0x089f, 0x8dad, 0x8daa, 0x9017, 0x092d, 0x9067, 0x0936, 0x092b, - 0x9072, 0x0937, 0xd20a, 0x9061, 0x90b0, 0x36ad, 0x0925, 0x092f, - 0x092c, 0x906e, 0x9064, 0x0932, 0x908c, 0x9066, 0x3695, 0x906b, - 0x905f, 0x9074, 0x9065, 0x92bb, 0x92be, 0x09d5, 0x92b9, 0x09d4, - 0x09d6, 0x92ef, 0x09d1, 0x3943, 0x93da, 0x0a46, 0x398f, 0x9490, - 0x95e9, 0x0a8c, 0x0a8a, 0x0a88, 0x9611, 0x960d, 0x95ed, 0x9621, - 0x0add, 0x9781, 0x97b1, 0x9901, 0x0b2d, 0x995e, 0x9962, 0x0b2e, - 0x0b2c, 0x0b2b, 0x0b30, 0x995b, 0x0b4e, 0x9a96, 0x9a93, 0x0b64, - 0x0b61, 0x9a92, 0x3c75, 0xd239, 0x0b70, 0x0ba6, 0x0ba4, 0x9bc4, - 0x9bc7, 0x9bc3, 0x0ba8, 0x0ba2, 0x9bc8, 0x0ba7, 0x3cec, 0x0ba5, - 0x9bca, 0x0ba9, 0x9bc5, 0x9bcf, 0x9bdc, 0x9c7c, - /* 0x3f */ - 0x9d01, 0x0c3d, 0x9ed3, 0x9edc, 0x0c44, 0x0c45, 0x0c46, 0x9ed4, - 0x3e57, 0x9ecc, 0x0c47, 0x0c48, 0x0c42, 0x9ed6, 0x9edb, 0x0c41, - 0x9ed5, 0x9fd9, 0x0c94, 0x9fdd, 0x9fdc, 0x9fe0, 0xa0cc, 0x0cc0, - 0x0cb8, 0x0cc1, 0x0cc2, 0x0cbb, 0x0cbd, 0x0cbf, 0x0cb9, 0x0cb7, - 0xa0d2, 0x0cc7, 0xa0d3, 0x0d0c, 0x0d0b, 0x407b, 0x0d10, 0xa18d, - 0x0d5d, 0x4121, 0x0d5a, 0x0d58, 0x0d56, 0xa2d8, 0x0d54, 0x4116, - 0xa2bc, 0x0da8, 0x0da7, 0x0dcf, 0x0dd0, 0xa48a, 0x41e8, 0xa48b, - 0xa48d, 0x0dd1, 0x0deb, 0xa553, 0x0dfb, 0x426a, 0xa559, 0x0dfd, - 0x0df8, 0x0df7, 0x0e00, 0xa556, 0xa557, 0x0df6, 0x425f, 0xa673, - 0xa81b, 0x0edf, 0xa821, 0xa816, 0xa818, 0x0ee2, 0x0ee4, 0xa844, - 0x4482, 0xa826, 0x0ee3, 0xa936, 0x0f59, 0x0f71, 0x0f8e, 0x0f8c, - 0xab3a, 0x0fa4, 0xabf4, 0x4655, 0x1014, 0xae62, -}; - -static const ucs4_t cns11643_4a_2uni_upages[212] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, - 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, - 0x04e00, 0x04f00, 0x05000, 0x05100, 0x05200, 0x05300, 0x05400, 0x05500, - 0x05600, 0x05700, 0x05800, 0x05900, 0x05a00, 0x05b00, 0x05c00, 0x05d00, - 0x05e00, 0x05f00, 0x06000, 0x06100, 0x06200, 0x06300, 0x06500, 0x06600, - 0x06700, 0x06800, 0x06900, 0x06b00, 0x06c00, 0x06d00, 0x06e00, 0x07000, - 0x07100, 0x07200, 0x07300, 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, - 0x07900, 0x07a00, 0x07b00, 0x07c00, 0x07d00, 0x07f00, 0x08000, 0x08100, - 0x08200, 0x08300, 0x08400, 0x08600, 0x08800, 0x08900, 0x08a00, 0x08c00, - 0x08e00, 0x08f00, 0x09000, 0x09100, 0x09200, 0x09500, 0x09600, 0x09700, - 0x09a00, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, 0x20500, - 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, 0x20d00, - 0x20e00, 0x21100, 0x21200, 0x21300, 0x21500, 0x21600, 0x21700, 0x21900, - 0x21a00, 0x21b00, 0x21c00, 0x21d00, 0x21e00, 0x21f00, 0x22000, 0x22100, - 0x22200, 0x22300, 0x22400, 0x22500, 0x22600, 0x22700, 0x22900, 0x22a00, - 0x22b00, 0x22c00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, - 0x23400, 0x23500, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, 0x23d00, - 0x23e00, 0x24100, 0x24200, 0x24500, 0x24600, 0x24700, 0x24800, 0x24900, - 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24f00, 0x25000, 0x25100, 0x25300, - 0x25400, 0x25600, 0x25700, 0x25900, 0x25a00, 0x25b00, 0x25e00, 0x25f00, - 0x26000, 0x26200, 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, - 0x26900, 0x26a00, 0x26b00, 0x26c00, 0x27100, 0x27200, 0x27500, 0x27600, - 0x27700, 0x27800, 0x27900, 0x27b00, 0x27c00, 0x27d00, 0x27e00, 0x27f00, - 0x28200, 0x28400, 0x28500, 0x28600, 0x28700, 0x28800, 0x28c00, 0x28e00, - 0x28f00, 0x29000, 0x29100, 0x29200, 0x29400, 0x29500, 0x29600, 0x29a00, - 0x29d00, 0x2f800, 0x2f900, 0x2fa00, -}; - diff --git a/jni/parted/libiconv/lib/cns11643_4b.h b/jni/parted/libiconv/lib/cns11643_4b.h deleted file mode 100755 index b209091..0000000 --- a/jni/parted/libiconv/lib/cns11643_4b.h +++ /dev/null @@ -1,667 +0,0 @@ -/* - * Copyright (C) 1999-2002 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 4 part b - */ - -static const unsigned short cns11643_4b_2uni_page40[4384] = { - /* 0x40 */ - 0xb65b, 0xb66a, 0x1011, 0xb668, 0x101b, 0x1012, 0x100e, 0x1015, - 0x3f68, 0x1010, 0xb681, 0x1017, 0x4046, 0x4043, 0x1070, 0x10ed, - 0xbae7, 0x10ee, 0xbae6, 0xbad1, 0xbb11, 0x4181, 0xbad0, 0xbad9, - 0xbb0a, 0x10f4, 0xbada, 0xbadd, 0xbac8, 0xbae2, 0xbae9, 0xbacb, - 0x417c, 0xbacc, 0xbac1, 0x416a, 0xbade, 0x4188, 0x10f2, 0x10f8, - 0x10f3, 0xbb51, 0xbb12, 0x10fa, 0xbae0, 0xbb2b, 0xf6b4, 0xc0d8, - 0xc0d1, 0x4410, 0xc0d2, 0xc0cd, 0x441f, 0x11b6, 0x11b7, 0xc13d, - 0x440f, 0xc0ca, 0x11ba, 0xc0cb, 0x11bc, 0xc0d7, 0xc3f4, 0x123b, - 0x45d3, 0x122f, 0xc487, 0xc48b, 0xc483, 0x1237, 0x1299, 0xc7c5, - 0xc7d2, 0xc7c6, 0xc7d3, 0x12d9, 0x12d8, 0x12d7, 0xc7f0, 0xc7cd, - 0xc7cc, 0xc7dc, 0xc7d6, 0x1336, 0xc9e6, 0xca41, 0xca3f, 0x4987, - 0xcac5, 0xcac0, 0xcac6, 0xcabe, 0xcabf, 0x49c6, - /* 0x41 */ - 0x1370, 0xcb63, 0xccd3, 0xccda, 0xccd5, 0x13a5, 0x13a6, 0x13a9, - 0x13ee, 0x1454, 0xd0ee, 0x1457, 0xd0fc, 0xd214, 0x14a1, 0xd323, - 0xd322, 0xd330, 0xd4b5, 0x14d3, 0xd538, 0x14d4, 0xd53f, 0x14d7, - 0x4dcc, 0x4e6d, 0x4e70, 0x14f7, 0x14f6, 0x14f9, 0x14f8, 0x4f58, - 0x4f42, 0x4f68, 0x4f69, 0xd768, 0xd767, 0x4f43, 0xd765, 0x4f47, - 0x158a, 0xda75, 0xdaf7, 0xdaf3, 0xdaf6, 0x1594, 0xdb00, 0x1593, - 0xdaff, 0xdaf5, 0x529d, 0x15dd, 0x15dc, 0x15f7, 0x53cf, 0xde92, - 0xe006, 0x1642, 0xe007, 0xe06b, 0x1654, 0xe06c, 0x1655, 0xe193, - 0x168f, 0xe194, 0x54f4, 0x16b4, 0x16b3, 0xe262, 0xe263, 0x5509, - 0xe25f, 0xe264, 0xe25b, 0xe259, 0x16fb, 0x16fd, 0xe3a4, 0xe3ac, - 0x55ab, 0x16fc, 0xe4b5, 0x172c, 0x172f, 0xe4ae, 0x172b, 0xe4c5, - 0x1733, 0x1734, 0x55fb, 0xe63b, 0x57ac, 0x57ae, - /* 0x42 */ - 0x57aa, 0x17e8, 0xe8bf, 0xea2b, 0xea84, 0xea80, 0xeb4d, 0xeb4f, - 0x585c, 0xeb4c, 0xed92, 0x195d, 0x1ad2, 0x0085, 0x0088, 0x5fae, - 0x5f79, 0x008e, 0x0084, 0x5f71, 0x1adf, 0x5fb3, 0x0083, 0x5f2c, - 0x5f77, 0x612f, 0x63c3, 0x0102, 0x63cd, 0x0106, 0x0105, 0x63c9, - 0x00fe, 0x0101, 0x0100, 0x63ce, 0x64a5, 0x64a0, 0x64fe, 0x6559, - 0x669a, 0x01e7, 0x1e19, 0x68e4, 0x68d7, 0x68dc, 0x01e6, 0x68e7, - 0x01ed, 0x01e2, 0x01eb, 0x68e5, 0x01e8, 0x01ec, 0x1e0a, 0x0224, - 0x1f9a, 0x6e14, 0x0262, 0x6df1, 0x0261, 0x0260, 0x0264, 0x028b, - 0x6fb6, 0x706e, 0x706c, 0x7081, 0x7142, 0x0319, 0x0316, 0x0318, - 0x0322, 0x711a, 0x031d, 0x0317, 0x031e, 0x7127, 0x7125, 0x7117, - 0x711c, 0x713d, 0x7120, 0x0369, 0x036a, 0x7381, 0x036c, 0x037a, - 0x038a, 0x7509, 0x75c6, 0x75c4, 0x039c, 0x75c5, - /* 0x43 */ - 0x03fd, 0x03f9, 0x76ef, 0x03ff, 0x76df, 0x76de, 0x76ee, 0x76f5, - 0x76ec, 0x03fc, 0x76dd, 0x2385, 0x03fb, 0x0402, 0x045f, 0x2456, - 0x045e, 0x045d, 0x045c, 0x7822, 0x2451, 0x0492, 0x7997, 0x7995, - 0x0494, 0x0495, 0x04d1, 0x7ba9, 0x04f1, 0x7c53, 0x25b1, 0x7c56, - 0x7c55, 0x0577, 0x056f, 0x7de3, 0x7de2, 0x0587, 0x057d, 0x057c, - 0x057e, 0x0585, 0x058b, 0x0586, 0x0580, 0x5dfd, 0x7da9, 0x0578, - 0xf5ab, 0x7e33, 0x7e0a, 0x05ba, 0x8059, 0x0633, 0x81bc, 0x062d, - 0x81c4, 0x81c7, 0x81c6, 0x0637, 0x275a, 0x2763, 0x81b8, 0x81da, - 0x062e, 0x81b7, 0x81c0, 0x063d, 0x81cd, 0x06a0, 0x84bc, 0x84ab, - 0x06a3, 0x8586, 0x299b, 0x875a, 0x29a3, 0x070e, 0x299e, 0x8843, - 0x07b6, 0x89ac, 0x07ab, 0x07ad, 0x07a6, 0x89be, 0x2ab8, 0x07aa, - 0x2aba, 0x07b1, 0x89ab, 0x07a8, 0x07af, 0x07b0, - /* 0x44 */ - 0x07a7, 0x07b2, 0x079d, 0x07a5, 0x07b5, 0x743e, 0x2ac7, 0x2ad7, - 0x8cf9, 0x0841, 0x8cf3, 0x8cf7, 0x2c70, 0x8e45, 0x8e48, 0x0872, - 0x2c9d, 0x086f, 0x0871, 0x8e44, 0x0885, 0x8eaf, 0x8eb1, 0x08a4, - 0x08a5, 0x08a6, 0x8fcf, 0x08a8, 0x8fcb, 0x8fcd, 0x08a3, 0x9050, - 0x91ec, 0x921a, 0x2d16, 0x2d24, 0x91d8, 0x0943, 0x91d0, 0x91d1, - 0x093d, 0x0945, 0x917b, 0x91d2, 0x0944, 0x91d4, 0x91e7, 0x91df, - 0x91de, 0x2d45, 0x91d9, 0x91cf, 0x950d, 0x09e3, 0x2f79, 0x5dfd, - 0x09df, 0x09e4, 0x2f7a, 0x09e5, 0x9538, 0x3054, 0x0a22, 0x0a4a, - 0x98a9, 0x0a49, 0x0a44, 0x0a4b, 0x0a87, 0x0a89, 0x0a92, 0x0a91, - 0x0a90, 0x0a8e, 0x993e, 0x9946, 0x9aed, 0xf630, 0x0b12, 0x0b10, - 0x0b11, 0x9c6c, 0x0b32, 0x0b34, 0x0b37, 0x0b33, 0x0b36, 0x0b35, - 0x0b65, 0x9dac, 0x337c, 0x337b, 0x9ec9, 0x3412, - /* 0x45 */ - 0x0bb0, 0x9f12, 0x0baf, 0x0baa, 0x9efd, 0x9f01, 0x9f11, 0x0bab, - 0x9f89, 0x9f05, 0x9efe, 0x9f0b, 0x9f20, 0x9f04, 0xa088, 0x0bf3, - 0xa102, 0x0bf4, 0xa103, 0x34b6, 0x34e0, 0x0c08, 0x0c4e, 0x0c55, - 0x0c4b, 0xa229, 0xa23b, 0x0c4d, 0x3573, 0xa206, 0x0c52, 0x3572, - 0x0c4c, 0x3570, 0x0c50, 0x0c53, 0xa203, 0x0c51, 0xa378, 0xa379, - 0xa37d, 0x0c89, 0xa37f, 0x0c95, 0x0ccc, 0x0cc8, 0x0cce, 0xa432, - 0x0cca, 0xa400, 0x369d, 0xa422, 0x0ccd, 0xa5a9, 0x0d5c, 0x0d67, - 0x0d69, 0x0d65, 0x0d62, 0xa704, 0x3827, 0x3835, 0xf659, 0x0daa, - 0xa8b8, 0xa99b, 0x0dd2, 0x39a2, 0x0e03, 0x0e0c, 0xaa92, 0x0e09, - 0x0e06, 0x0e05, 0x3989, 0xaa8f, 0x0e0b, 0x0e08, 0xaa98, 0x39a5, - 0xaaae, 0x0e8e, 0xad9d, 0x3ab6, 0x0ee8, 0xaf49, 0xaf50, 0xaf46, - 0x0eea, 0xaf4e, 0x3ba5, 0x3bc3, 0xaf55, 0x0ee9, - /* 0x46 */ - 0x0eeb, 0xaf64, 0x0ef0, 0xb138, 0x0f4b, 0x3dab, 0x0f73, 0x0f75, - 0x0f92, 0x0f91, 0x0f93, 0x3e25, 0x0fa7, 0x0fa6, 0x0fa8, 0x0faa, - 0xb3fe, 0x0fa9, 0x3e59, 0x0fbb, 0x0fbc, 0x0fba, 0x0fbd, 0x1027, - 0x3f85, 0xb6a6, 0x1024, 0x101e, 0x101f, 0x101d, 0x1020, 0x1023, - 0x1029, 0x1022, 0xb69c, 0xb699, 0x101c, 0x3f8e, 0x1028, 0xb6b5, - 0xb6a3, 0xb6a0, 0xb6a7, 0xb69b, 0xb8df, 0xb8e1, 0x1071, 0x1073, - 0x1072, 0xb94d, 0x1102, 0xbbf3, 0xbb6f, 0xbb69, 0x10fe, 0x41be, - 0xbb6b, 0xbb78, 0xbb87, 0x1108, 0xbb85, 0xbb82, 0xbb90, 0x1107, - 0x1104, 0xbb80, 0xbb67, 0x1100, 0x10fc, 0xbb61, 0x1144, 0xbb93, - 0x10f1, 0xbbf2, 0xbb86, 0x41a6, 0x1106, 0xbfcd, 0xbfc4, 0x11c6, - 0x11c3, 0x11c1, 0x11c2, 0xc10f, 0x11c4, 0x11c7, 0xc10d, 0x11bf, - 0x11d2, 0xc173, 0x11ca, 0xf6ba, 0xc10a, 0x442f, - /* 0x47 */ - 0xc108, 0xc113, 0x1213, 0xc3f8, 0x1230, 0x123e, 0x1239, 0xc4ab, - 0xc4a8, 0x123c, 0x123f, 0xc4a5, 0x1234, 0x123d, 0xc4c3, 0xc4a4, - 0x1238, 0xc4d4, 0xc4ba, 0xc5f1, 0x46a0, 0x1282, 0xc63f, 0x1283, - 0xc6ea, 0x129b, 0xc7f7, 0x12e0, 0x12dd, 0xc7fa, 0xc7f5, 0x12de, - 0xc7fe, 0x12e3, 0x12e5, 0xc800, 0x4797, 0x12e2, 0xc802, 0xc7fb, - 0xc807, 0x12df, 0xc81a, 0x132e, 0xc9b8, 0x1337, 0x1338, 0xc9e9, - 0xc9eb, 0xca50, 0xca4f, 0x498b, 0xcb86, 0x0162, 0xcb8e, 0x1394, - 0x1393, 0x13ab, 0x13ad, 0xccf0, 0xccfb, 0x13f5, 0x13f7, 0xce42, - 0x13f6, 0x13f8, 0xce85, 0x13fb, 0x13f9, 0x1458, 0x145a, 0xd105, - 0x1459, 0x4c0f, 0x1485, 0x14a4, 0x14d8, 0x14d9, 0xd54b, 0x14dd, - 0x14c8, 0xd563, 0x14fa, 0x14fb, 0x4f75, 0x1527, 0x4f9f, 0x152a, - 0x1525, 0xd799, 0x1528, 0xda81, 0xdb17, 0xdb10, - /* 0x48 */ - 0xdb12, 0x52a6, 0x1595, 0x539a, 0xdcfa, 0xdcf3, 0xdcf2, 0xdcf5, - 0xdcf6, 0xddbb, 0xddc2, 0xdea7, 0x160f, 0x1611, 0xdea8, 0xdea3, - 0x1610, 0xdeaa, 0x1615, 0x1613, 0x5457, 0xdfdc, 0x1647, 0x1646, - 0xe00f, 0x1659, 0x165b, 0xe079, 0x165e, 0xe07f, 0xe085, 0x165a, - 0x1691, 0x1692, 0x1690, 0x1693, 0xe21b, 0x54f7, 0x16be, 0xe277, - 0xe276, 0xe298, 0x16bc, 0x16bb, 0x16b7, 0x16b9, 0xe27a, 0x1701, - 0x16fe, 0xe3bc, 0xe3ba, 0x1702, 0xe3b6, 0x16ff, 0x55b0, 0xe3b4, - 0x1700, 0xe4cf, 0x1737, 0x173a, 0x176f, 0x1777, 0x1779, 0x56c6, - 0xe67b, 0x17c8, 0xe81c, 0xe821, 0xe81d, 0xe8c0, 0x17f2, 0xe8ff, - 0x17f1, 0x17f0, 0x5862, 0xeb56, 0x1834, 0xeda1, 0xeda2, 0xeda6, - 0xf056, 0xf057, 0x192c, 0x192d, 0xf101, 0xf1ed, 0xf71c, 0xf3f2, - 0x1afa, 0x5fb8, 0x0091, 0x5fc0, 0x0094, 0x5fb7, - /* 0x49 */ - 0x5fe1, 0x00c4, 0x010a, 0x63e8, 0x1c85, 0x64b2, 0x0152, 0x66ae, - 0x0159, 0x026f, 0x697e, 0x01f2, 0x01f4, 0x1e43, 0x6976, 0x01f1, - 0x1e3c, 0x6996, 0x026a, 0x6e20, 0x6e21, 0x6e23, 0x6e29, 0x7077, - 0x7151, 0x0324, 0x7156, 0x0323, 0x7188, 0x7159, 0x7155, 0x0327, - 0x7297, 0x7298, 0x036d, 0x21ed, 0x036e, 0x036f, 0x73a1, 0x73a3, - 0x2235, 0x039f, 0x040a, 0x0406, 0x040e, 0x770a, 0x040d, 0x0405, - 0x773d, 0x770c, 0x040b, 0x0410, 0x042e, 0x783d, 0x7839, 0x79b0, - 0x79b2, 0x79ae, 0x0496, 0x0497, 0x04c4, 0x2547, 0x04c5, 0x7b20, - 0x04d2, 0x7c6e, 0x7c6d, 0x7c6a, 0x0581, 0x7e32, 0x058e, 0x0590, - 0x058f, 0x7e39, 0x0591, 0x0595, 0x0593, 0x7da3, 0x266d, 0x7e7f, - 0x7e35, 0x7e3d, 0x7ff4, 0x7ff5, 0x063b, 0x0648, 0x8248, 0x8228, - 0x0646, 0x0647, 0x8227, 0x8232, 0x822c, 0x064c, - /* 0x4a */ - 0x822e, 0x064a, 0x0650, 0x0643, 0x8223, 0x8231, 0xf5c5, 0x0649, - 0x06a6, 0x06a5, 0x06a4, 0x84c9, 0x8589, 0x06b9, 0x85bb, 0x06ce, - 0x06cf, 0x0713, 0x8897, 0x8893, 0x8a28, 0x07c6, 0x07c5, 0x07ca, - 0x07d9, 0x07c1, 0x8a18, 0x8a3b, 0x2af5, 0x8a27, 0x8a24, 0x8a1b, - 0x8a31, 0x07cb, 0x8a26, 0x8aa3, 0x8a3f, 0x8a22, 0x8a19, 0x2b03, - 0x8a41, 0x8a2b, 0x2b65, 0x0842, 0x8d0c, 0x2c75, 0x0874, 0x0873, - 0x8e4e, 0x8eb9, 0x8efa, 0x8fe9, 0x8fe8, 0x8fe4, 0x2d8a, 0x2d56, - 0x0952, 0x925f, 0x925d, 0x9252, 0x0950, 0x9274, 0x094b, 0x9246, - 0x094c, 0x096d, 0x92aa, 0x2d98, 0x924a, 0x9259, 0x924b, 0x094f, - 0x2d68, 0x09f0, 0x9550, 0x3034, 0x3045, 0x0a4d, 0x0a4c, 0x98d0, - 0x0a4f, 0x0a4e, 0x0a50, 0x98cc, 0x315c, 0x0a96, 0x3156, 0x9964, - 0x9965, 0x0a97, 0x0a95, 0x0a98, 0x995c, 0x9b15, - /* 0x4b */ - 0x0aec, 0x0aeb, 0x0b13, 0x0b14, 0x0b38, 0x0b3a, 0x0b39, 0x9c79, - 0x0b68, 0x0b67, 0x9dc5, 0x9db8, 0x9f2c, 0x0bbe, 0x0bbc, 0x9f37, - 0x9f35, 0x9f31, 0x0bbb, 0x9f2f, 0x0bba, 0x9f2b, 0x0bb9, 0x0bb7, - 0x9f2d, 0x9f2a, 0x0bc1, 0xa095, 0x0bf7, 0xa23e, 0x0c60, 0xa247, - 0xa245, 0x0c59, 0x0c5c, 0x0c5a, 0x0c58, 0xa252, 0x0c5b, 0xa270, - 0xa250, 0xa258, 0xa251, 0xa23d, 0x0c5d, 0xa241, 0xa20c, 0xa23c, - 0xa386, 0xa383, 0xa389, 0xa3f3, 0x0cd4, 0x0cd3, 0x36bf, 0x0cd2, - 0x36bd, 0xa42d, 0x0cd7, 0x0cd1, 0x36e4, 0x0cd5, 0xa5c5, 0xf655, - 0x0d6d, 0x0d6f, 0x3834, 0x0d75, 0x0d6c, 0x0d74, 0xa743, 0x0d73, - 0xa737, 0xa745, 0x3836, 0x0dac, 0xa8e5, 0xa9a6, 0xaadb, 0x0e10, - 0xaada, 0xaae6, 0x39ba, 0x39bc, 0x0e0f, 0x39c8, 0x0e23, 0x39c3, - 0x0e1d, 0x39b6, 0x0e0e, 0xaaf8, 0xaae9, 0x0e15, - /* 0x4c */ - 0x39c2, 0x0e13, 0xaae8, 0xaaf6, 0x0e1b, 0x39c5, 0x0e22, 0x0e26, - 0xaae7, 0x39bd, 0x39b0, 0x0e21, 0x0e1c, 0x0e17, 0xaad5, 0x0e1a, - 0x39bb, 0xadd3, 0xadc7, 0xadd1, 0x0e99, 0xadc3, 0x0e97, 0xaf80, - 0xaf98, 0x0efd, 0xaf84, 0x0ef6, 0x0efe, 0x0ef5, 0x0eff, 0x0ef7, - 0xaf97, 0xaf83, 0xaf81, 0x0f01, 0x3c04, 0xaf8c, 0xb142, 0xb2ab, - 0x0f77, 0xb2a3, 0xb2a6, 0xb35c, 0xb369, 0xb367, 0x0fab, 0xb48b, - 0xb4a8, 0x0fc0, 0xb6d8, 0x1031, 0x102e, 0xf689, 0xb6dc, 0x102c, - 0xb6e0, 0xb6e5, 0x1032, 0x102f, 0x102b, 0x102d, 0x1033, 0xb818, - 0xb819, 0x3ff1, 0x1057, 0x105c, 0x107b, 0xb95f, 0xb95e, 0x107a, - 0xbc02, 0x4222, 0x1113, 0x111e, 0x1117, 0x1120, 0x112a, 0x1111, - 0x1115, 0x110f, 0x1118, 0x4238, 0xbc12, 0xbc36, 0x112c, 0x4232, - 0xf6a8, 0x4210, 0xbc23, 0xbc03, 0x111c, 0xbc00, - /* 0x4d */ - 0x1129, 0xbc46, 0xbc61, 0x1112, 0x424f, 0x1197, 0xc184, 0x4472, - 0xc16b, 0xc162, 0xc156, 0xc16a, 0xc152, 0xc155, 0x11d4, 0x11d0, - 0x447c, 0xc161, 0xf6bb, 0xc158, 0xc177, 0x11d3, 0x1214, 0xc4d7, - 0x1246, 0x1245, 0xc4de, 0x1243, 0xc4df, 0x460d, 0x1244, 0x1248, - 0xc4d1, 0x1247, 0xc4e2, 0xc4e1, 0xc4dd, 0x4608, 0x1249, 0x1285, - 0xc64b, 0x1284, 0xc64e, 0x129d, 0xc6fc, 0x129e, 0x12a0, 0xc6fa, - 0x129c, 0xc6fb, 0x129f, 0xc6fe, 0x12f7, 0x12ea, 0xc831, 0x12ef, - 0x12e9, 0x12f3, 0x12f0, 0x12eb, 0xc838, 0x12ec, 0x12f2, 0x12f5, - 0x12ee, 0xc83a, 0xc9bb, 0x133a, 0x134b, 0xca59, 0x134a, 0x134c, - 0xcadb, 0xcadf, 0xcae2, 0x1379, 0x137b, 0x1378, 0xcb9e, 0xcba1, - 0x13b5, 0xcd10, 0x13b4, 0x13b7, 0x4a9e, 0x1409, 0x13fe, 0x1408, - 0x1407, 0xce76, 0xce7f, 0xce7d, 0x1406, 0x1404, - /* 0x4e */ - 0x1405, 0x13ff, 0x140b, 0xce82, 0xd057, 0x143b, 0x145d, 0x145c, - 0x145f, 0x145e, 0x4c28, 0xd12e, 0x4c21, 0x1483, 0xd38b, 0xd38d, - 0x14a7, 0x4d66, 0x4d6c, 0xd390, 0x14a8, 0xd4ec, 0xd56f, 0xd56b, - 0xd571, 0xd578, 0x4df6, 0x14e0, 0x14df, 0x14fe, 0x14fc, 0x14ff, - 0x14fd, 0xd7ad, 0x152c, 0x4fec, 0x4fba, 0x4fe3, 0x4fbd, 0x159d, - 0xdb2f, 0x52b4, 0xdd78, 0x1640, 0xdff8, 0xe019, 0x165f, 0xe09b, - 0xe094, 0xe097, 0xe099, 0xe1a6, 0xe1a4, 0xe1a7, 0x54d1, 0xe295, - 0x16c0, 0x5523, 0xe290, 0x16c1, 0x16c6, 0xe29b, 0xe3c4, 0x1704, - 0x1705, 0xe3c6, 0x560b, 0x173e, 0x173d, 0x1740, 0x173f, 0xe4e3, - 0x1742, 0xe4df, 0xe4dd, 0xe4e7, 0x1784, 0x1782, 0x177f, 0x1785, - 0xe82d, 0xe82c, 0x17cc, 0x57b2, 0x17cb, 0x17cd, 0xe834, 0xe838, - 0x57db, 0xe91d, 0x17f5, 0xe91a, 0xe91b, 0xe914, - /* 0x4f */ - 0x57f0, 0xe917, 0xea21, 0x1820, 0x1821, 0xeaaa, 0xeaa1, 0x1837, - 0x183e, 0x5873, 0x183d, 0x586e, 0xeb63, 0xeb79, 0xeb60, 0x5865, - 0xeb62, 0x183c, 0xeb61, 0x1838, 0x586a, 0xeb70, 0x586d, 0xeb6a, - 0x183b, 0xedc8, 0x18b0, 0xedc5, 0xedbe, 0xedc2, 0x18ad, 0x18b2, - 0x18b8, 0x5a0b, 0xedc7, 0x18af, 0xedb0, 0xedca, 0x191a, 0x5b76, - 0x1920, 0x1921, 0x1930, 0x5ba8, 0x192f, 0xf10d, 0xf107, 0xf196, - 0xf1ef, 0x195f, 0x1960, 0xf21e, 0xf21d, 0x5c11, 0xf390, 0x5feb, - 0x008a, 0x1b19, 0x009c, 0x5fee, 0x009a, 0x5fef, 0x5fec, 0x63fa, - 0x010c, 0x010b, 0x010d, 0x1c92, 0x6504, 0x69d3, 0x01fe, 0x69d1, - 0x69fa, 0x01ff, 0x01fb, 0x01fc, 0x0209, 0x69c8, 0x0200, 0x69d5, - 0x1e75, 0x69cd, 0x69d2, 0x69fb, 0x6c2a, 0x6e88, 0x6e61, 0x0271, - 0x6e63, 0x6e62, 0x206f, 0x5e57, 0x71c8, 0x7198, - /* 0x50 */ - 0x032b, 0x73c1, 0x773f, 0x7741, 0x0414, 0x0411, 0x0412, 0x7852, - 0x0463, 0x785e, 0x046e, 0x049a, 0x79c7, 0x049b, 0x7a70, 0x7b27, - 0x04c8, 0x7b71, 0x7bb0, 0x04f6, 0x7e42, 0x7e43, 0x26a5, 0x058c, - 0x0597, 0x05a2, 0x26a0, 0x7e57, 0x7e9d, 0x8289, 0x828d, 0x828b, - 0x8280, 0x8292, 0x828a, 0x82c8, 0x0654, 0x828f, 0x8293, 0x8291, - 0x06a8, 0x84f2, 0x84de, 0x06a9, 0x85c8, 0x28b4, 0x28d8, 0x29c2, - 0x0718, 0x0717, 0x071d, 0x87a7, 0x87a1, 0x0731, 0x8a8c, 0x8a7f, - 0x07d8, 0x07d5, 0x8a7b, 0x8a95, 0x8a99, 0x07e1, 0x8a8e, 0x07d4, - 0x8ada, 0x8a8a, 0x8a9c, 0x07e3, 0x8a7e, 0x0844, 0x0845, 0x8d1a, - 0x8e55, 0x0876, 0x0875, 0x8e60, 0x2ca8, 0x0888, 0x08aa, 0x8ffb, - 0x08ab, 0x08ac, 0x8ffd, 0x0957, 0x2d83, 0x0960, 0x095d, 0x096b, - 0x92d0, 0x0963, 0x0967, 0x92c5, 0x095e, 0x92d2, - /* 0x51 */ - 0x9311, 0x2dc5, 0x2fcd, 0x09f9, 0x09f3, 0x95ad, 0x95a4, 0x95a9, - 0x95b0, 0x959d, 0x09f6, 0x9798, 0x309c, 0x0a51, 0x0a53, 0x0a52, - 0x9992, 0x0a9b, 0x998a, 0x0a9c, 0x998d, 0x9996, 0x0af7, 0x3299, - 0x328f, 0x3291, 0x9b45, 0x9b4b, 0x9c0f, 0x9c16, 0x0b3b, 0x9c8a, - 0x0b3e, 0x0b3d, 0x9dc9, 0x0b69, 0x9dc8, 0x9dca, 0x9f64, 0x0bc3, - 0x0bc4, 0x0bc7, 0x9f5d, 0x9f63, 0x3439, 0x0bc6, 0x342e, 0x0bc8, - 0x9f88, 0xa03a, 0xa039, 0x349f, 0x34a0, 0x0be6, 0x0bf8, 0xa117, - 0xa193, 0x0c07, 0xa195, 0x0c64, 0x0c68, 0xa276, 0x3594, 0x0c65, - 0x35ae, 0xa280, 0xa27b, 0x0c69, 0xa248, 0xa2a8, 0xa288, 0xa38b, - 0xa38a, 0xa38c, 0xa3fc, 0x0cda, 0x0ce0, 0x36e6, 0xa458, 0x0cde, - 0xa451, 0xa455, 0xa453, 0x0d1c, 0x0d1d, 0x0d1a, 0xa5dc, 0x0d7b, - 0x0d7a, 0x0d7c, 0xa75c, 0x0d78, 0x0d77, 0xa765, - /* 0x52 */ - 0xf65a, 0x0db1, 0xa8ee, 0x0db2, 0x0db0, 0xa8f0, 0x38bc, 0xa8f2, - 0x0e36, 0xab35, 0x0e2e, 0xab22, 0x39d6, 0xab20, 0x0e34, 0xab2d, - 0xab28, 0xab26, 0xab3c, 0x0e2a, 0xab38, 0x0e33, 0x0e2d, 0x0e2f, - 0x0e31, 0x0e2b, 0x0e32, 0xab2a, 0x0e35, 0xab1a, 0xab30, 0xaae3, - 0xab19, 0xade9, 0xade7, 0x3acf, 0xafd6, 0xafc4, 0x0f08, 0xaf87, - 0x0f06, 0xafc7, 0xafd9, 0x3c18, 0xafdf, 0x0f4d, 0x0f61, 0xb20a, - 0xb201, 0xb2b1, 0x0f78, 0xb2c1, 0x0f94, 0x0f95, 0xb376, 0xb40d, - 0xb40e, 0x0fc1, 0x0fc3, 0x3e6d, 0xb707, 0x1039, 0xb709, 0xb716, - 0x103a, 0x103b, 0x1035, 0x1036, 0xb70e, 0x103c, 0x3f90, 0xb706, - 0xb81e, 0xb84a, 0x1058, 0x107c, 0x107d, 0x108d, 0x108c, 0xbca6, - 0xbc91, 0x113b, 0x113f, 0xbcb8, 0xbc96, 0x1132, 0x112d, 0xbcc5, - 0x112f, 0x1139, 0x112e, 0x113a, 0xbd0a, 0x1136, - /* 0x53 */ - 0x1131, 0x113e, 0x1138, 0x4252, 0x1134, 0xbcb2, 0x1141, 0xbcb7, - 0xbcb4, 0xbc89, 0xbc8d, 0x1130, 0xbc87, 0xbcc2, 0xbc9c, 0xbc92, - 0x1143, 0xbcca, 0x4250, 0xbc8a, 0xbfe0, 0x1198, 0xbfe6, 0xbfe5, - 0x44a0, 0xc1a5, 0xc1b3, 0x4486, 0x11da, 0x11d7, 0xc1b5, 0xc1af, - 0x4495, 0xc1b0, 0xc1cc, 0x448c, 0xc1a2, 0xc1be, 0xc1c6, 0xc1ac, - 0xc1ae, 0x1218, 0x4560, 0xf6c3, 0xc508, 0xc505, 0x1252, 0x4628, - 0xc4fe, 0x124e, 0x4620, 0xc500, 0x124f, 0x1250, 0xc664, 0xc668, - 0x46a8, 0x1286, 0x1287, 0x1289, 0xc66a, 0xc669, 0xc70d, 0xc712, - 0x12a2, 0x12a3, 0xc70f, 0x12a1, 0xc867, 0xc879, 0xc872, 0xc866, - 0xc87c, 0x12f9, 0x12fd, 0xc868, 0xc885, 0xc876, 0xc874, 0xc871, - 0xc864, 0x133e, 0x133c, 0xc9f8, 0x134d, 0xca6c, 0x134e, 0xcaeb, - 0x1381, 0x1383, 0x1382, 0xcbb8, 0x1380, 0x1388, - /* 0x54 */ - 0xcd2d, 0xcd2e, 0xcd28, 0xcd29, 0xcd31, 0x13b9, 0xcd2f, 0xcd2a, - 0x4b3a, 0xcea4, 0xceb7, 0xcebf, 0x1411, 0x140d, 0x1410, 0x1413, - 0xd063, 0x143c, 0x1462, 0x1463, 0xd167, 0xd3be, 0xf6e0, 0xd595, - 0xd59c, 0x1503, 0x1506, 0x1502, 0x1501, 0xd671, 0xd672, 0x1505, - 0xd66f, 0x4e94, 0x5011, 0xd7f1, 0x5037, 0x1536, 0xd7e8, 0x1535, - 0x5043, 0xf6ea, 0x15a1, 0x15a3, 0xdb49, 0xdb64, 0x15a0, 0xdb48, - 0x15ea, 0x53a6, 0x15e8, 0xdd2c, 0xdde1, 0xddef, 0xdec0, 0x1621, - 0x161b, 0xded7, 0xded4, 0x1649, 0x1648, 0xe0ad, 0x5495, 0x1662, - 0x1661, 0x1664, 0x1660, 0x1663, 0xe0ae, 0xe0ac, 0x5496, 0x1666, - 0x16ac, 0x16ab, 0xe227, 0xe2ae, 0x16c3, 0xe2b0, 0x16c4, 0x5525, - 0xe2c0, 0xe2c4, 0x1708, 0x1709, 0x170a, 0x1706, 0x1707, 0x1741, - 0xe507, 0x1745, 0xe4fd, 0x1743, 0x1744, 0x5626, - /* 0x55 */ - 0x5634, 0x1747, 0xf704, 0xe61b, 0xe61c, 0x1771, 0xe6b2, 0xe6b4, - 0xe6b7, 0xe6b1, 0xe6b3, 0xe6ae, 0x178b, 0x17d4, 0x17d3, 0x17d1, - 0x57ba, 0x17d2, 0xe83f, 0xe936, 0x17f7, 0x17f8, 0xe931, 0xe93b, - 0xe935, 0xe93a, 0xe937, 0xea22, 0xea36, 0xea32, 0x1822, 0xeac0, - 0x1845, 0x1841, 0x5881, 0x1840, 0x588a, 0xeb85, 0x587f, 0x1842, - 0xeb89, 0x18c1, 0x18c5, 0xede1, 0x18bb, 0x18b9, 0x18bd, 0x18c9, - 0xee0a, 0x5a11, 0xee09, 0x18bf, 0x18c7, 0xede8, 0x18c3, 0x1924, - 0x1931, 0x1933, 0xf118, 0x1932, 0x1934, 0x1952, 0x1961, 0x5bd9, - 0x197a, 0x1982, 0x5c3c, 0xf3c5, 0x1b23, 0x600d, 0x600c, 0x6021, - 0x1b2c, 0x6216, 0x640e, 0x010f, 0x1c95, 0x6417, 0x0123, 0x0125, - 0x6a48, 0x0206, 0x0208, 0x1e88, 0x6a55, 0x6a49, 0x6a4c, 0x1e8b, - 0x6a4f, 0x6a3d, 0x027a, 0x0277, 0x6e8a, 0x6ea8, - /* 0x56 */ - 0x708a, 0x032e, 0x71cb, 0x032f, 0x71d5, 0x78d4, 0x041b, 0x0413, - 0x775c, 0x7775, 0x0466, 0x7861, 0x0465, 0x7096, 0x04f7, 0x7c8a, - 0x7ed0, 0x26e1, 0x26d7, 0x7e49, 0x7ecf, 0x059c, 0x82d6, 0x827f, - 0x0653, 0x82d2, 0x82cf, 0x8506, 0x8509, 0x06ba, 0x28a3, 0x0722, - 0x29d3, 0x8b06, 0x8af1, 0x8b04, 0x2b8b, 0x8afa, 0x8af4, 0x07eb, - 0x07dd, 0x8af9, 0x07ef, 0x8a8b, 0x8b03, 0x0847, 0x0846, 0x8da2, - 0x0878, 0x2cac, 0x0889, 0x900c, 0x900b, 0x0968, 0x0976, 0x0974, - 0x0979, 0x9324, 0x097a, 0x0977, 0xf614, 0x0971, 0x9325, 0x0972, - 0x95f6, 0x09ff, 0x95fb, 0x0a05, 0x9732, 0x97fb, 0x0a54, 0x98f2, - 0x98f3, 0x0a9e, 0x0a9f, 0x3174, 0x999c, 0x9b72, 0x0afa, 0x9b74, - 0x0b44, 0x0b3f, 0x0b40, 0x9c86, 0x0b42, 0x9c8e, 0x9c90, 0x0b51, - 0x9ccd, 0x9cf7, 0x9dd6, 0x9f84, 0x9f95, 0x9f8a, - /* 0x57 */ - 0x3440, 0x0bca, 0x9f97, 0x3441, 0x0bce, 0x0bc9, 0xa0a0, 0xa0a1, - 0xa122, 0xa1a6, 0xa1a4, 0x0c09, 0x34e8, 0x0c6c, 0x0c6e, 0x0c70, - 0x0c6d, 0x0c6b, 0x0c71, 0x0c72, 0xa2af, 0xa2b0, 0xa2bd, 0x0c8c, - 0x0ce4, 0xa476, 0x0ce1, 0xa47b, 0xa479, 0x36f6, 0x0ce7, 0x3700, - 0x0ce2, 0x0d1f, 0xa5ee, 0xa5f1, 0x0d7e, 0xa794, 0x0d80, 0x3859, - 0x3855, 0xa791, 0x0db9, 0x0db7, 0x0db8, 0xa910, 0x0dba, 0x38f4, - 0xa9af, 0x0dd3, 0x0e3f, 0x3a04, 0x0e45, 0x0e41, 0x3a15, 0x0e42, - 0x0e43, 0x0e3b, 0x0e38, 0xab7b, 0xab77, 0x0e3a, 0x39f5, 0xab80, - 0xabc6, 0x0e3c, 0xab7c, 0xab90, 0x0e3e, 0xaba3, 0xab7d, 0xabbd, - 0x0e9e, 0x0e9f, 0x0ea1, 0xae13, 0x0e9b, 0x0f12, 0xb011, 0xb044, - 0xb00d, 0x0f18, 0x0f0c, 0xb214, 0x0f62, 0xb2b8, 0x0f7a, 0xb2b7, - 0xb383, 0x0fae, 0x0faf, 0xb414, 0x0fad, 0xb41c, - /* 0x58 */ - 0x0fc4, 0x0fc7, 0x0fc6, 0x0fc5, 0xb4d4, 0xb4d5, 0x3fc1, 0x1040, - 0xb743, 0xb742, 0x103f, 0x1041, 0xf68a, 0xb741, 0xb84e, 0x107f, - 0xb987, 0x1086, 0x1081, 0x1080, 0x108e, 0x114a, 0xbd39, 0x1147, - 0xbd8f, 0xbd2a, 0x114b, 0x1146, 0x114e, 0x427d, 0xbd2b, 0x42a5, - 0xbd50, 0x1148, 0xbd6e, 0x1145, 0xbd3b, 0xbd53, 0xbd5f, 0xbd2f, - 0xbd30, 0xbd38, 0xbd4c, 0xbff1, 0x11db, 0x11e7, 0x11e4, 0xc207, - 0xc216, 0x11e1, 0xc214, 0x11e9, 0xc1fb, 0x11e5, 0x11e0, 0x11e3, - 0xc1f8, 0xc210, 0xc21d, 0xc1ff, 0xc20b, 0xc204, 0x11ea, 0xc1fe, - 0xc3ff, 0x463a, 0x1254, 0x1258, 0x125c, 0xc523, 0x1255, 0x128b, - 0x128c, 0x12a6, 0x12a5, 0xc72a, 0xc8a0, 0xc898, 0xc89c, 0x12ff, - 0xc89e, 0xc8a6, 0xc8b5, 0xc8b0, 0x1330, 0x1340, 0x1341, 0xcaf9, - 0xcaf5, 0x1386, 0xcbd2, 0x13bf, 0x13bd, 0xcd50, - /* 0x59 */ - 0xcd4e, 0xcd4b, 0xcd52, 0xcd4d, 0x13be, 0x1419, 0xcee4, 0x141c, - 0xceda, 0x141b, 0x1417, 0x1418, 0x4b51, 0xcedf, 0xcee8, 0x143d, - 0x146a, 0x1466, 0xd170, 0xd172, 0x1467, 0xd177, 0x1468, 0x14ad, - 0x14ae, 0xd3e6, 0xd5aa, 0x14d6, 0x1509, 0xd68c, 0x4e98, 0xd689, - 0x150c, 0x150a, 0xd832, 0x153b, 0x153a, 0x5084, 0x5081, 0xd87a, - 0x506f, 0xda9e, 0xdaa0, 0xdb70, 0x15af, 0x15aa, 0x15ab, 0xdb6e, - 0xdb66, 0x15b1, 0xdb65, 0x15ac, 0x15ec, 0xdd7f, 0xdde0, 0x1601, - 0xddff, 0xdef6, 0xdef7, 0xdef5, 0x1623, 0xdefc, 0x1624, 0x161e, - 0xdef9, 0x164a, 0x1665, 0x166a, 0xe0ca, 0xe0c3, 0xe0c6, 0x1669, - 0xe1b8, 0xe1bd, 0x1695, 0xe1bc, 0xe205, 0xe2e0, 0xe2e9, 0x5542, - 0xe2df, 0xe2ec, 0x16cc, 0xe2e5, 0xe2de, 0xf700, 0x16cf, 0xe2f0, - 0xe2e3, 0x170f, 0xe3ec, 0x170e, 0x170b, 0x1710, - /* 0x5a */ - 0x170d, 0x170c, 0xe3f2, 0xe3ef, 0xe3e9, 0xe4fb, 0x1746, 0x1748, - 0x5637, 0x1749, 0xe537, 0xe6de, 0x1791, 0x178e, 0xe6da, 0x17d8, - 0x17d6, 0xe84b, 0x17da, 0xe849, 0x17d7, 0xe8d5, 0x57ff, 0x17f9, - 0xe952, 0xe947, 0x17fc, 0xe948, 0xeacc, 0xead0, 0x58a9, 0x184a, - 0x58a7, 0x184e, 0x58b3, 0x58ac, 0x58b0, 0xeb86, 0xeba7, 0xeba3, - 0x589c, 0xebb6, 0xebad, 0xee13, 0x5a3c, 0x5a1c, 0x5a3a, 0x18d3, - 0x18cd, 0x18d1, 0xee17, 0xee22, 0x5a32, 0x5a34, 0xee49, 0xee26, - 0xf70c, 0xee3c, 0xee28, 0xf0a8, 0x5bc7, 0xf1fb, 0x1962, 0xf232, - 0xf2d6, 0xf348, 0x1983, 0x5c3f, 0xf3c6, 0x1992, 0x009f, 0x00a0, - 0x6025, 0x6026, 0x6024, 0x6033, 0x6170, 0x0127, 0x6790, 0x020b, - 0x6a95, 0x6aa1, 0x6a92, 0x6a8f, 0x6a9f, 0x6a96, 0x6a98, 0x6a9d, - 0x6aa0, 0x028d, 0x7097, 0x71eb, 0x0370, 0x7787, - /* 0x5b */ - 0x24eb, 0x7b32, 0x059a, 0x059f, 0x059d, 0x7ed8, 0x7efb, 0x7f06, - 0x059b, 0x7ed1, 0x26d5, 0xf5b0, 0x0660, 0x0664, 0x0669, 0x0663, - 0x0667, 0x0662, 0x82f6, 0x8304, 0x82fe, 0x2802, 0x82ff, 0x82f7, - 0x8518, 0x06ac, 0x8514, 0x85cd, 0x8620, 0x87de, 0x0726, 0x0723, - 0x0725, 0x8b45, 0x8b53, 0x07f8, 0x8b4b, 0x8b55, 0x8b41, 0x07f7, - 0x07fb, 0x07fa, 0x8b5c, 0x8b54, 0x8e71, 0x8ed0, 0x08b0, 0x08af, - 0x9053, 0x9329, 0x937e, 0x097e, 0x9379, 0x097d, 0x0980, 0x9370, - 0x936a, 0x097f, 0x0986, 0x9385, 0x9364, 0x2e12, 0x9378, 0x0981, - 0x9632, 0x9627, 0x962f, 0x0a24, 0x0a58, 0x0a57, 0x0aa0, 0x99ba, - 0x0afe, 0x9b71, 0x9b8c, 0x0b15, 0x9c1a, 0x0b47, 0x0b46, 0x9c98, - 0x9de4, 0x0b6b, 0x0b6c, 0x3385, 0x3454, 0x9fc2, 0x0bcc, 0x9fba, - 0x3455, 0x9fc8, 0x0bcb, 0x34a7, 0x34a8, 0x0bf9, - /* 0x5c */ - 0xa1b9, 0xa1b8, 0xa1a5, 0xa2e2, 0x0c78, 0x0c7a, 0x0c75, 0xa2d9, - 0x0c76, 0x0c77, 0xa2ac, 0xa2dd, 0x0cea, 0x0cee, 0x0ced, 0xa49d, - 0x0cec, 0x370f, 0xa611, 0xa603, 0x0d84, 0x0d85, 0x0d83, 0xa7ee, - 0x0dbc, 0x0dbd, 0x0dd4, 0xaba4, 0xabd8, 0xabdd, 0xabde, 0x0e55, - 0xabe7, 0x0e50, 0x0e4c, 0x0e48, 0xabd4, 0x0e53, 0xabce, 0x0e57, - 0x0e54, 0x0e4e, 0x0e4a, 0x0e51, 0xabf1, 0xabd3, 0x0e49, 0x0e4b, - 0x0e63, 0xabca, 0xabe9, 0x0ea7, 0x0ea6, 0x0ea4, 0xae1a, 0xae41, - 0xf668, 0x3ae4, 0x3ae5, 0xb03d, 0xb040, 0x3c65, 0x3c4e, 0x0f17, - 0xb043, 0x0f16, 0xb03f, 0xb03c, 0x0f63, 0xb221, 0xb220, 0x3d82, - 0xb2c6, 0x0f7b, 0x0f7c, 0xb2d1, 0xb2ca, 0xb38e, 0xb391, 0x0fb0, - 0x3e2d, 0xb4e3, 0xb788, 0x1042, 0xb770, 0x1044, 0xb89d, 0xb99d, - 0xb991, 0xb998, 0xb999, 0x1088, 0x108f, 0x1153, - /* 0x5d */ - 0x115b, 0xbdbf, 0x1159, 0xbdae, 0xbdb1, 0xbdcc, 0xbe04, 0x42ca, - 0xbe16, 0xbdcd, 0x1154, 0x42bc, 0xbde0, 0xbdcb, 0xbdd4, 0xbdc9, - 0xbfff, 0x1199, 0xbffd, 0xc257, 0xc252, 0xc250, 0xc245, 0xc24d, - 0x11f1, 0xc253, 0x11ef, 0xc282, 0xc244, 0xc3ce, 0xc3cf, 0xc3d2, - 0xc402, 0xc54f, 0xc558, 0x1262, 0xc543, 0x1263, 0xc552, 0x1260, - 0x1261, 0x125f, 0xc549, 0xc553, 0xc54d, 0x128d, 0xc684, 0x128e, - 0xc683, 0xc732, 0xc8e2, 0x1309, 0xc8e4, 0xc8d3, 0x1305, 0xc8d5, - 0xc8dd, 0x1303, 0x1306, 0xc8ec, 0xc8e6, 0xc8d2, 0xc8fa, 0xc8da, - 0x1331, 0xca06, 0xca04, 0x134f, 0xca7b, 0xcb04, 0xcb02, 0x1366, - 0x49ff, 0x13c4, 0xcd60, 0x13c3, 0x13c1, 0x13c5, 0xcf07, 0xcf05, - 0xcf0c, 0x1421, 0xcf5a, 0x141f, 0x1422, 0xcf1a, 0x1427, 0x1420, - 0xd18a, 0x146d, 0x146c, 0x146b, 0x146f, 0x1470, - /* 0x5e */ - 0xd18c, 0xd409, 0xd6a6, 0x4ea6, 0xd6ac, 0xd6a9, 0x1542, 0xd88b, - 0x50b6, 0xd88c, 0x1544, 0x1540, 0xd888, 0xd889, 0x153f, 0xd893, - 0x50ab, 0x158b, 0xdb83, 0xdd4f, 0x1625, 0x1628, 0xdf20, 0x5421, - 0xe036, 0xe0e2, 0x1675, 0x1672, 0xe0ee, 0x166f, 0xe0e7, 0xe0e9, - 0x1676, 0x1671, 0x54a7, 0xe0df, 0x1697, 0xe1c7, 0x16d7, 0xe309, - 0x16d6, 0xe301, 0x16d8, 0x16dc, 0x16db, 0x16d4, 0x553e, 0x1713, - 0x1711, 0x1714, 0xe405, 0xe40c, 0xe578, 0xe55d, 0x1751, 0x1750, - 0x1753, 0x1754, 0x1752, 0xe55e, 0xe560, 0xe567, 0x176d, 0xf705, - 0xe6f4, 0x1795, 0x1799, 0xe6f1, 0x179a, 0xe6fa, 0x1793, 0x1797, - 0xe6f8, 0xe6f9, 0xe709, 0xe6fd, 0xe6f7, 0x17dc, 0xe859, 0x17fd, - 0xe960, 0xe968, 0x17fe, 0x1800, 0x1802, 0x1801, 0x1803, 0xe96a, - 0xea14, 0xea3e, 0xeae4, 0x1827, 0x1826, 0x1824, - /* 0x5f */ - 0x184c, 0x58bc, 0x1850, 0x1855, 0x1853, 0x58b7, 0x1852, 0xebd2, - 0x1857, 0x58be, 0x1858, 0x18d6, 0xee58, 0xee50, 0x18d4, 0xee5c, - 0x18da, 0x18d9, 0xcf19, 0x5a62, 0x18d5, 0x18e4, 0xf70e, 0x18dc, - 0x191b, 0x5b8f, 0x1937, 0x1936, 0x194b, 0x5bcb, 0x1966, 0x1976, - 0xf2df, 0x197e, 0x197d, 0x197f, 0x1984, 0x198b, 0xf3d9, 0x1994, - 0x00a1, 0x0111, 0x6566, 0x0210, 0x1ea9, 0x6ae1, 0x6aef, 0x6ae8, - 0x6c33, 0x2013, 0x71fe, 0x0332, 0x21f4, 0x73ef, 0x73ec, 0x75ec, - 0x779c, 0x0420, 0x7799, 0x7870, 0x786e, 0x049d, 0x7b41, 0x26ec, - 0x26ef, 0x7f02, 0x7f01, 0x05a5, 0x801b, 0x8323, 0x8325, 0x8324, - 0x8326, 0x8333, 0x832f, 0x858f, 0x8856, 0x0802, 0x07fe, 0x0801, - 0x2bd6, 0x0803, 0x07ff, 0x8b99, 0x0804, 0xf5ed, 0x084a, 0x8ed9, - 0x0987, 0x93b7, 0x0984, 0x93b6, 0x0985, 0x3009, - /* 0x60 */ - 0x9654, 0x9657, 0x967a, 0x0a59, 0x3179, 0x9b8e, 0x32c6, 0x9b90, - 0x9bb9, 0x0b04, 0x0b49, 0x0b48, 0x9def, 0x0b6d, 0x0bd2, 0x0bd3, - 0x9fe2, 0x0bd1, 0x9fd6, 0x9fd8, 0x9fda, 0x9fde, 0x0be7, 0x0c0a, - 0x35c3, 0xa308, 0xa304, 0xa30a, 0xa30b, 0xa302, 0x0cf0, 0xa4aa, - 0xa4c1, 0x371f, 0xa7d7, 0xa7d9, 0x3865, 0xa7de, 0xa7da, 0x0dbe, - 0x0dbf, 0xa92a, 0x38c6, 0x3a3a, 0xac31, 0x3a36, 0xac2b, 0xac2c, - 0xac29, 0xac2e, 0x0e5e, 0xac27, 0xac28, 0x0e5b, 0xac5f, 0xac30, - 0xac24, 0x3aeb, 0x0eab, 0xae3a, 0x0eac, 0xae39, 0xae40, 0xb080, - 0xb084, 0x0f1f, 0x0f1d, 0xb075, 0xb076, 0x0f1c, 0xb07c, 0x0f1e, - 0xb078, 0xb09b, 0xb07e, 0xb15a, 0x0f64, 0xb22c, 0x3d84, 0xb39c, - 0xb747, 0xb78a, 0x1048, 0x1047, 0xb827, 0xbe4a, 0x115e, 0x1161, - 0xbe27, 0x42e0, 0x42f3, 0xbe2e, 0xbe26, 0xc008, - /* 0x61 */ - 0x11f7, 0xc2bd, 0xc296, 0x11f4, 0x11f8, 0x451e, 0xc2be, 0xc28e, - 0xc574, 0x1264, 0xc580, 0x1292, 0x128f, 0x1290, 0x46b4, 0x1293, - 0x12a8, 0xc73c, 0xc73d, 0x12a9, 0xc73a, 0xc742, 0x46f9, 0xc924, - 0xc906, 0x4844, 0x130e, 0xc915, 0x130f, 0xc902, 0xc90c, 0x130b, - 0xc908, 0xc90a, 0xc905, 0xc91c, 0x1310, 0x1351, 0xca82, 0x1350, - 0xca86, 0x1363, 0xcc03, 0xcd7b, 0x13c7, 0xcd7a, 0x4b71, 0x1424, - 0x1426, 0x4b6e, 0xcf80, 0x4b79, 0xcf58, 0x4bc4, 0x1474, 0x1473, - 0x1472, 0xd1aa, 0xd1ab, 0xd236, 0xd24a, 0x14b1, 0x4d8c, 0xd5d6, - 0x150e, 0x1511, 0x1510, 0x150f, 0x1512, 0x1549, 0x50c9, 0x154f, - 0x154d, 0xd903, 0xd8cf, 0x1555, 0xdb9f, 0xdba2, 0xde2a, 0xde2f, - 0xdf44, 0xdf40, 0x162c, 0x162b, 0xe111, 0xe10f, 0x1679, 0xe10d, - 0xe107, 0xe103, 0x167a, 0x54b0, 0x1699, 0x169a, - /* 0x62 */ - 0xe235, 0x16ae, 0x16af, 0xe304, 0x16e4, 0x16e1, 0x16de, 0x16e6, - 0x16df, 0xe326, 0x16e7, 0x16e2, 0x16e0, 0xe31e, 0x16e5, 0x555a, - 0xe40e, 0x1718, 0xe41d, 0xe41e, 0xe41f, 0x1756, 0xe588, 0x5646, - 0xe58d, 0xe591, 0xe580, 0x176e, 0xe654, 0xe655, 0x179d, 0x17a0, - 0x179c, 0xe725, 0xe71a, 0x17a1, 0x17a2, 0x179f, 0x17df, 0x17de, - 0x57c3, 0x17ea, 0xe988, 0x1806, 0xe97a, 0x1804, 0x580f, 0xe980, - 0xeb1e, 0xebfc, 0xec25, 0x185f, 0x58f4, 0x58fa, 0x185c, 0xec0b, - 0x185e, 0xec06, 0xec04, 0x58dd, 0x1859, 0xebf9, 0xec00, 0x1864, - 0x185d, 0x1862, 0xec02, 0x1865, 0xec07, 0x58ed, 0x185b, 0x58ef, - 0xeeb5, 0x18dd, 0xee87, 0x18df, 0xee93, 0xf70f, 0x18e2, 0xeebe, - 0xf066, 0x1927, 0xf0c7, 0xf0cf, 0x5b96, 0x193a, 0x193c, 0xf13d, - 0x1939, 0xf13c, 0xf147, 0x193d, 0x193b, 0x5bb3, - /* 0x63 */ - 0x194c, 0xf1c3, 0x1968, 0x5be2, 0xf31b, 0x1980, 0x1985, 0xf3c9, - 0x1995, 0xf3dd, 0x1996, 0xf493, 0x5c8f, 0x603d, 0x00a4, 0x0112, - 0x1eb1, 0x0225, 0x6ee6, 0x2141, 0x0337, 0x73f7, 0x77b0, 0x77ae, - 0x5dfd, 0x0468, 0x0467, 0x049e, 0x7c9f, 0x7c9e, 0x7f30, 0x05aa, - 0x7f4f, 0x05a9, 0x05a4, 0x7f27, 0x7f51, 0x0671, 0x066f, 0x8351, - 0x8354, 0x8356, 0x8527, 0x06ad, 0x8524, 0x2bf6, 0x080c, 0x2bf2, - 0x080b, 0x8bec, 0x8bc4, 0x080f, 0x0879, 0x93f8, 0x93f6, 0x93f7, - 0x93ed, 0x098d, 0x098f, 0x93f4, 0x93ef, 0x098e, 0x0a0c, 0x967f, - 0x96a2, 0x967e, 0x0aa6, 0x99c5, 0x0aa3, 0x0aa4, 0x0aa5, 0x3388, - 0x0b6e, 0x9ff1, 0x9ff2, 0x0bfa, 0xa12f, 0x0c7c, 0x0c7e, 0x0c7b, - 0x0c7d, 0xa323, 0xa329, 0x0c8d, 0x0cf4, 0x0cf3, 0xa61b, 0xa7eb, - 0x0d89, 0xa7ea, 0xa933, 0x0dc0, 0xac63, 0x0e65, - /* 0x64 */ - 0xac92, 0xac65, 0x0ead, 0x0f25, 0xb0a0, 0xf670, 0xb15e, 0x0fc9, - 0xb7aa, 0x104a, 0xb7a9, 0x4067, 0x1089, 0xbe9c, 0x1166, 0x1170, - 0xbe92, 0x116d, 0x1169, 0x1167, 0xbe86, 0x1172, 0x430e, 0x116e, - 0xbe83, 0x119c, 0x11fc, 0x11fd, 0x1204, 0x11ff, 0xf6c2, 0x11fe, - 0x1200, 0xc2ce, 0x1266, 0x1269, 0xc593, 0x12aa, 0x12ab, 0x1317, - 0xc92e, 0xc927, 0xc928, 0x1315, 0x485e, 0x1312, 0x4a0e, 0xcc18, - 0xcc16, 0xcd8d, 0x13ca, 0xcd8e, 0x13c9, 0x13cb, 0xcd90, 0xcd8f, - 0xcf81, 0x1429, 0x1428, 0xcf8a, 0xcf8c, 0xd08d, 0x1440, 0x1475, - 0x1476, 0xd1b2, 0x1488, 0xd5d9, 0x4eb6, 0x1557, 0x5101, 0xd90d, - 0x155f, 0xd913, 0x511d, 0x1558, 0x155b, 0xd91b, 0x512f, 0xdbac, - 0x15b3, 0xdbb3, 0x15ef, 0xdf5e, 0x1630, 0xdf60, 0xdf68, 0xdf63, - 0xdf69, 0xdf67, 0x1641, 0x164b, 0xe128, 0x167d, - /* 0x65 */ - 0xe12e, 0xe130, 0x167c, 0xe126, 0xe131, 0xe141, 0x54e0, 0xe1da, - 0x54db, 0xf6fa, 0xe20b, 0x5561, 0xe334, 0xe333, 0x16e8, 0x16ea, - 0x16e9, 0xe339, 0xe33b, 0xe340, 0xe430, 0x171b, 0xe432, 0xe437, - 0x1755, 0x564a, 0x1759, 0x1758, 0xe581, 0xe59f, 0xe5a7, 0x17a4, - 0x17a3, 0xe744, 0xe747, 0xe748, 0xe73d, 0x5733, 0x17a7, 0xe749, - 0x17e0, 0xe880, 0xe9a0, 0xe99d, 0x1808, 0x180a, 0x1809, 0xe99c, - 0xea47, 0xeb07, 0x1871, 0x590f, 0x186c, 0xec49, 0x5911, 0xec44, - 0x5903, 0x5901, 0x186e, 0xecdf, 0x5916, 0xec4c, 0x5dfd, 0xec4f, - 0x18e0, 0x18ee, 0xeec1, 0x18eb, 0xeeb9, 0xeecb, 0xeecf, 0xeec4, - 0x5a93, 0x18ea, 0x18ef, 0x18e7, 0xeeca, 0xeec3, 0xf0d0, 0xf151, - 0x1948, 0x1949, 0xf1a8, 0xf1c7, 0xf1c6, 0x194d, 0xf1ca, 0xf202, - 0x1955, 0xf25d, 0xf25a, 0x196a, 0x196c, 0xf259, - /* 0x66 */ - 0x196b, 0xf2cc, 0xf31c, 0xf3cc, 0x1998, 0x1999, 0x1997, 0xf3e8, - 0xf3ec, 0xf3ea, 0xf4ad, 0xf4b0, 0x605f, 0x6058, 0x6057, 0x1d5b, - 0x6793, 0x0216, 0x6b3b, 0x1ebf, 0x6b34, 0x6ef2, 0x0339, 0x73fd, - 0x751d, 0x0425, 0x23ce, 0x7a04, 0x7b48, 0x7f58, 0x834f, 0x0674, - 0x836e, 0x8372, 0x06ae, 0x852e, 0x8bfc, 0x8bf4, 0x9036, 0x940e, - 0x0992, 0x0994, 0x9414, 0x0995, 0x9419, 0x0a0d, 0x96a6, 0x0a25, - 0x9bc9, 0x9bc0, 0x9bcc, 0x9c1b, 0x9caa, 0x9ca8, 0xa003, 0x0bd5, - 0x0bd6, 0x34ac, 0x0be8, 0xa135, 0x0c7f, 0x35d2, 0x0cf5, 0x0cf6, - 0x0cf7, 0xa4d9, 0x0d24, 0x0d8d, 0x0d8a, 0xa93f, 0xa93d, 0x0e6c, - 0x0e66, 0x0e6a, 0xac8b, 0x0e67, 0x0e6d, 0x0e68, 0x3a52, 0xac68, - 0xac8a, 0xae58, 0xae57, 0xb0ce, 0xb0bc, 0xb0c0, 0xb0c1, 0xb0bf, - 0xb0ab, 0xb15f, 0x0f65, 0xb3a6, 0x0f9a, 0xb429, - /* 0x67 */ - 0x0fb1, 0x104b, 0x104d, 0x104c, 0x104e, 0xb7b8, 0x1173, 0x1175, - 0xbedd, 0xbed6, 0xf6b1, 0xbed5, 0xbee7, 0xbed8, 0xc2ec, 0x1203, - 0xc300, 0xc307, 0xc2fd, 0xc2f1, 0xc2ff, 0xc5aa, 0xc5b0, 0xc948, - 0x131e, 0xc953, 0x4873, 0xc94d, 0x1319, 0x131c, 0x131a, 0x131d, - 0x4876, 0xc943, 0xc950, 0x1343, 0x1352, 0xca8c, 0xcc27, 0x1395, - 0xcd99, 0x13cc, 0xcfb1, 0x142b, 0xcfb0, 0xcfaa, 0xcfac, 0x142a, - 0x4bc7, 0x1477, 0xd1c8, 0xd1ca, 0xd442, 0xd5e0, 0xd6e7, 0xd6e8, - 0xd6e6, 0x1513, 0x1514, 0x5134, 0xd95b, 0xd956, 0x155d, 0xd95a, - 0x1560, 0x513e, 0x1562, 0xdab8, 0xdbc5, 0x15b2, 0x15f0, 0xde48, - 0xdf7d, 0xdf7c, 0xdf81, 0xdf82, 0xdf62, 0x164c, 0xe145, 0x1682, - 0x54bc, 0x1681, 0x169b, 0xe1e3, 0x16a4, 0x16ee, 0x16ec, 0xe350, - 0x16ed, 0xe34f, 0x16f0, 0x16ef, 0xe439, 0x171d, - /* 0x68 */ - 0xe43a, 0x1760, 0x175e, 0x175d, 0xe5c1, 0xe74e, 0xe76e, 0x17b1, - 0x17ab, 0x17ac, 0x17ad, 0xe771, 0x17ae, 0xe88c, 0xe889, 0x17e2, - 0xe8e5, 0xe9b3, 0xe9b6, 0xe9b4, 0xea4d, 0x5839, 0xeb13, 0xec78, - 0x592a, 0x187b, 0x5926, 0x1878, 0x1875, 0x5927, 0xec72, 0x18f2, - 0x18f4, 0x18f3, 0x5ac0, 0x5ac9, 0xf075, 0xf0da, 0xf0d7, 0x193f, - 0x193e, 0x1940, 0x194e, 0x1957, 0x1959, 0x1958, 0xf716, 0xf269, - 0xf267, 0x196e, 0xf266, 0xf26f, 0xf271, 0x5bec, 0xf2cf, 0xf323, - 0x1981, 0x1986, 0xf3a5, 0x198f, 0xf3fe, 0xf3fb, 0xf3fd, 0x5c68, - 0x199b, 0x19b1, 0x19b3, 0x6b6d, 0x033a, 0x7405, 0x7520, 0x0427, - 0x77c8, 0x77c9, 0x046a, 0x05ac, 0x8627, 0x0818, 0x8c1e, 0x8d36, - 0x084c, 0x943d, 0x0996, 0x99d7, 0x0b4a, 0x9cad, 0x9e00, 0x0c81, - 0xa33a, 0x0c83, 0x0cf9, 0x0cf8, 0xa626, 0x0d8e, - /* 0x69 */ - 0x0d8f, 0x0dc1, 0xacb7, 0xacb6, 0xacc0, 0x0e70, 0xac9b, 0x0e71, - 0xb0d8, 0x0f2a, 0x0f2d, 0x0f7d, 0x3e32, 0x3e31, 0xb7c0, 0x104f, - 0xb7bf, 0xb9bf, 0x1090, 0xbf20, 0xbed0, 0xbf0e, 0x1179, 0xbf1d, - 0xbf1e, 0xbf15, 0xbf14, 0xc31e, 0xc32c, 0x1205, 0xc5b9, 0xc5b8, - 0xc5b6, 0xc69e, 0xc69c, 0xc74d, 0x46fd, 0xc96e, 0xc960, 0x1321, - 0xc964, 0xc962, 0xb0e5, 0x1332, 0xcda3, 0x13cd, 0x13cf, 0xd1d2, - 0xd1d5, 0x4d8e, 0x1516, 0x1515, 0x15b5, 0x1608, 0xde55, 0x1632, - 0xdf93, 0x1633, 0x1634, 0x163c, 0xe156, 0x54c2, 0xe1e9, 0x169c, - 0xe245, 0x16f4, 0x16f2, 0xe47c, 0x1762, 0xe5d3, 0x1761, 0x1764, - 0x17b5, 0x574b, 0x17b4, 0xe78e, 0xe897, 0x17e3, 0xe89b, 0xe899, - 0x581c, 0x180e, 0xe9cf, 0x581b, 0xea59, 0x182c, 0x182b, 0xeb20, - 0xeb23, 0xeb2a, 0x1885, 0x1881, 0x187e, 0x1883, - /* 0x6a */ - 0x1880, 0xecb0, 0x5942, 0xef2f, 0x5ad4, 0x18fb, 0x18f7, 0xef32, - 0xef43, 0xef3f, 0xef39, 0x18f8, 0xef30, 0xf0dd, 0xf1da, 0xf1db, - 0x195a, 0xf284, 0xf27f, 0xf272, 0xf280, 0xf2ee, 0x1978, 0xf32a, - 0xf322, 0xf371, 0xf3cd, 0x199d, 0x199c, 0xf40f, 0xf418, 0x606a, - 0x00a9, 0x00bf, 0x1ed0, 0x1ecf, 0x740c, 0x23da, 0x7ca6, 0x0677, - 0x0676, 0x8537, 0x06bb, 0x29ea, 0x8ee2, 0x099b, 0x96bc, 0x0a0f, - 0x0a5b, 0x9bd5, 0x0b4c, 0x0b6f, 0x0bd9, 0xa012, 0x0c82, 0xa34b, - 0xa341, 0xa3a1, 0xa4ec, 0x0e74, 0x0e72, 0xacd4, 0xacd8, 0xacd9, - 0x0e73, 0xacda, 0xae6c, 0xae6d, 0x0eb1, 0x0f2e, 0xb0e7, 0xb0eb, - 0xb0ec, 0xb162, 0x0f4e, 0xb42b, 0xb50d, 0xb7cd, 0xb9c3, 0xbf3f, - 0xbf3c, 0xbf3e, 0xbf3d, 0xbf3a, 0xbf38, 0xc344, 0xc345, 0x120b, - 0xc348, 0xc350, 0x126c, 0x4889, 0xc978, 0xc979, - /* 0x6b */ - 0x138b, 0xcc3e, 0x13d0, 0x142d, 0xd454, 0x14e4, 0x1571, 0xd9b9, - 0x5158, 0x156f, 0xde5f, 0x1687, 0x16a5, 0xe372, 0xe375, 0x171e, - 0x1765, 0x17b9, 0x17b7, 0x17b8, 0x17e4, 0xe8a3, 0xe8a5, 0xe9dc, - 0xe9dd, 0xea5a, 0x188c, 0x1889, 0x188a, 0xecdb, 0xecdc, 0x188b, - 0xefab, 0xef84, 0xef76, 0x1901, 0x18fe, 0x5ae7, 0x1903, 0x1906, - 0xef83, 0x5aea, 0x5af1, 0xf07f, 0x191d, 0x1943, 0xf173, 0xf1ad, - 0xf1b0, 0x194f, 0xf20f, 0xf20c, 0x195b, 0x1970, 0xf379, 0x1988, - 0xf377, 0xf37a, 0x1989, 0x5c44, 0xf432, 0xf427, 0xf42a, 0xf42c, - 0x5c6d, 0xf428, 0xf429, 0xf438, 0x642f, 0x6b7b, 0x740d, 0x23d9, - 0x77d6, 0x77d5, 0x83a1, 0x8c4c, 0x099e, 0x099f, 0x0aa7, 0x0b4b, - 0x0bdb, 0x0bda, 0xa0c0, 0x35d6, 0x0c8e, 0x0e76, 0xacf4, 0x0f30, - 0x0f2f, 0xb0f0, 0x0f66, 0xb23f, 0x117e, 0xc35d, - /* 0x6c */ - 0xc372, 0xc362, 0x453a, 0xc366, 0x4675, 0x126f, 0xc988, 0x13d1, - 0x142f, 0xcfe8, 0xcfe4, 0x14b2, 0x1518, 0x1517, 0xd6ff, 0x1576, - 0xdfaf, 0xdfae, 0x164f, 0x1689, 0xe1f2, 0xe248, 0xe381, 0xe37e, - 0x16f5, 0x171f, 0xe452, 0xe5ef, 0x575d, 0x17e5, 0xe8ad, 0xe9e6, - 0x1810, 0xe9ed, 0x180f, 0xe9e9, 0xea61, 0xea60, 0xeb33, 0x182f, - 0x1830, 0x5964, 0xed0b, 0xed08, 0x1893, 0x1894, 0xed07, 0x1907, - 0x1909, 0x1908, 0xefca, 0x190b, 0xefc6, 0x5b0a, 0xf084, 0xf0eb, - 0xf17d, 0x1950, 0x1971, 0xf29b, 0xf2a2, 0xf2a1, 0xf2a0, 0xf29c, - 0x197b, 0x197c, 0xf380, 0x5c73, 0xf440, 0x19a1, 0xf439, 0xf43c, - 0x19a0, 0x19a2, 0x64ca, 0x021b, 0x6b89, 0x0282, 0x853c, 0x8d40, - 0x9463, 0x9469, 0x0be9, 0xa353, 0x0c84, 0x35e1, 0xa817, 0xa81a, - 0xad00, 0x0eb3, 0x0f34, 0x0f33, 0x1180, 0xc36f, - /* 0x6d */ - 0xc6ab, 0x12ad, 0xc991, 0x1344, 0x1355, 0xcdb1, 0x13d2, 0xcfef, - 0xdbf1, 0xdbf2, 0xdfb7, 0xdfb5, 0x168a, 0xe386, 0xe45a, 0x1767, - 0xe7c6, 0xe7cb, 0x17e6, 0xe8b2, 0x1813, 0xe9f3, 0x582d, 0xed27, - 0x1897, 0x5b0c, 0xefd5, 0xefd8, 0x190c, 0xefec, 0xf087, 0xf0f2, - 0x1946, 0x195c, 0x1974, 0x1972, 0xf2ad, 0xf2b0, 0xf2fd, 0x5c1f, - 0xf387, 0xf44a, 0x19a4, 0x19a3, 0xf44e, 0xf449, 0xf451, 0xf44d, - 0x19b4, 0x6072, 0x0136, 0x7416, 0x8c6d, 0x8d41, 0x08b2, 0x9471, - 0x9474, 0x0b16, 0x3a70, 0x0e77, 0xae7c, 0x117f, 0xbf8a, 0xc756, - 0x147d, 0x5179, 0xd9fa, 0x544a, 0x168c, 0xe45b, 0x1768, 0x17be, - 0x1815, 0xeff5, 0xeff0, 0xf0f3, 0xf17f, 0xf213, 0x1975, 0x19a5, - 0x7419, 0x7f85, 0x83b0, 0x9477, 0xa4ff, 0x0e78, 0x0f35, 0x3c9d, - 0x1182, 0xbf87, 0x1183, 0xbf8b, 0x1271, 0xc99e, - /* 0x6e */ - 0x147e, 0x168e, 0xe38f, 0x5660, 0x1769, 0xe639, 0xe7d4, 0xe8f1, - 0xea02, 0xea6b, 0xeb40, 0x189a, 0x189b, 0xf010, 0xf2be, 0xf2b9, - 0x1990, 0xf464, 0x5c9e, 0x9be9, 0xbf90, 0x1186, 0x1185, 0xc01c, - 0x120e, 0xc392, 0xc6ae, 0xc9a3, 0x1519, 0xdfc9, 0x17c0, 0xe7d8, - 0xeb44, 0xf024, 0x5bf8, 0x5c3a, 0x5c7d, 0xf470, 0xf4d3, 0x0c0d, - 0x1816, 0xf2c3, 0x19a9, 0x19aa, 0x0c85, 0xad21, 0xb9ca, 0xc39c, - 0xea73, 0xf186, 0xf3c1, 0xea09, 0x5c96, 0xf4d5, 0x17c2, 0x1831, - 0x1911, 0x19ab, 0x189c, 0xdfd4, -}; - -static const ucs4_t cns11643_4b_2uni_upages[248] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, - 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, - 0x04c00, 0x04d00, 0x05000, 0x05100, 0x05200, 0x05300, 0x05600, 0x05800, - 0x05900, 0x05b00, 0x05c00, 0x05d00, 0x05e00, 0x05f00, 0x06100, 0x06400, - 0x06500, 0x06600, 0x06900, 0x06a00, 0x06b00, 0x06f00, 0x07000, 0x07100, - 0x07200, 0x07300, 0x07400, 0x07500, 0x07600, 0x07700, 0x07800, 0x07900, - 0x07a00, 0x07b00, 0x07c00, 0x07d00, 0x07e00, 0x07f00, 0x08000, 0x08100, - 0x08200, 0x08400, 0x08500, 0x08600, 0x08700, 0x08800, 0x08900, 0x08a00, - 0x08b00, 0x08c00, 0x08d00, 0x08e00, 0x08f00, 0x09000, 0x09100, 0x09200, - 0x09300, 0x09400, 0x09500, 0x09600, 0x09700, 0x09800, 0x09900, 0x09a00, - 0x09b00, 0x09c00, 0x09d00, 0x09e00, 0x09f00, 0x0ff00, 0x20000, 0x20300, - 0x20400, 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, - 0x20e00, 0x20f00, 0x21000, 0x21100, 0x21200, 0x21300, 0x21400, 0x21500, - 0x21600, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, 0x21e00, 0x21f00, - 0x22100, 0x22200, 0x22300, 0x22400, 0x22500, 0x22700, 0x22800, 0x22900, - 0x22a00, 0x22c00, 0x22d00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, - 0x23300, 0x23500, 0x23600, 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, - 0x23c00, 0x23e00, 0x23f00, 0x24000, 0x24100, 0x24300, 0x24400, 0x24500, - 0x24600, 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, - 0x24f00, 0x25000, 0x25200, 0x25300, 0x25500, 0x25600, 0x25700, 0x25800, - 0x25900, 0x25a00, 0x25b00, 0x25c00, 0x25d00, 0x25e00, 0x25f00, 0x26000, - 0x26100, 0x26200, 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, - 0x26900, 0x26a00, 0x26c00, 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, - 0x27200, 0x27300, 0x27400, 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, - 0x27a00, 0x27b00, 0x27c00, 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, - 0x28200, 0x28300, 0x28400, 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, - 0x28a00, 0x28b00, 0x28c00, 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, - 0x29200, 0x29300, 0x29400, 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, - 0x29a00, 0x29b00, 0x29c00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, - 0x2a200, 0x2a300, 0x2a400, 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, -}; - diff --git a/jni/parted/libiconv/lib/cns11643_5.h b/jni/parted/libiconv/lib/cns11643_5.h deleted file mode 100755 index 7002dfa..0000000 --- a/jni/parted/libiconv/lib/cns11643_5.h +++ /dev/null @@ -1,1277 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 5 - */ - -static const unsigned short cns11643_5_2uni_page21[8603] = { - /* 0x21 */ - 0x3bd1, 0x3bcb, 0x3bc9, 0x3c0c, 0x3b00, 0x3b87, 0x3c0d, 0x3c0f, - 0xe21d, 0x5e98, 0x3bd2, 0x3c11, 0x3b7e, 0x45d3, 0x5052, 0x57fe, - 0x60a9, 0x7442, 0x3b09, 0x3bd6, 0x3fdd, 0x3fdc, 0x4002, 0x4073, - 0x4176, 0x41a7, 0x41a8, 0x4333, 0x43cc, 0x450d, 0x452c, 0x461b, - 0x015a, 0x461d, 0x4699, 0x4d3e, 0x582d, 0x582f, 0x5e99, 0x6eb3, - 0x74b6, 0x761b, 0x7fef, 0x83e9, 0x3b14, 0x3b94, 0x3be1, 0x4006, - 0x404a, 0x4044, 0x4131, 0x417a, 0x41ad, 0x41ae, 0x41b1, 0x4338, - 0x4337, 0x447d, 0x447e, 0x452d, 0x4532, 0x4623, 0x4626, 0xe23a, - 0x46a0, 0x51a8, 0x543f, 0x54bc, 0x56c4, 0x583b, 0x5b19, 0x5b18, - 0x5cb3, 0x5eaa, 0x5fbe, 0x60ac, 0x6525, 0x6566, 0x656b, 0x7443, - 0x74b5, 0x75ec, 0x7776, 0x08bc, 0x8114, 0x50dc, 0x821c, 0x821d, - 0x9fd0, 0xa112, 0xa5f3, 0xc169, 0x15b9, 0xc911, - /* 0x22 */ - 0xc915, 0xc910, 0xc913, 0x3ba4, 0x3ba5, 0x3cd0, 0x3cba, 0x3ccb, - 0x407b, 0x4186, 0x41bb, 0x41ba, 0x41c3, 0x41b9, 0x41c0, 0x00de, - 0x4339, 0x433b, 0x4341, 0x43d1, 0x43cf, 0x43d2, 0x442e, 0x446e, - 0x448c, 0x4488, 0x4535, 0x0143, 0x453a, 0x453b, 0x4538, 0x4539, - 0x462e, 0x462c, 0x46c8, 0x46b5, 0x46ad, 0x46b0, 0x46ab, 0x4cb3, - 0x4ca9, 0x51bb, 0x51b9, 0x565a, 0x56cd, 0x572b, 0x5805, 0x03ac, - 0x03aa, 0x5851, 0x584b, 0x5aea, 0x5aed, 0x5b36, 0x5b62, 0x5b56, - 0x5b55, 0x5b64, 0x5b58, 0x1c07, 0x5cda, 0x5cd8, 0x5ead, 0x5eab, - 0x5fc0, 0x5fc3, 0x60b3, 0x60b7, 0x60ba, 0x1dcb, 0x04fe, 0x60c7, - 0x60b5, 0x648e, 0x6573, 0x656c, 0x6574, 0xe2b4, 0x6572, 0x6571, - 0x6582, 0x6570, 0x6c3f, 0x6eba, 0x6eb8, 0x74b7, 0x8223, 0x8221, - 0x822b, 0x8226, 0x8222, 0x8825, 0x8be4, 0x8f15, - /* 0x23 */ - 0x9fe4, 0xa133, 0xa12a, 0xa132, 0xa129, 0xa5fb, 0xb45b, 0xb45c, - 0xb728, 0xc16f, 0xc16d, 0xc16b, 0xc16e, 0xc916, 0x3b22, 0x3c16, - 0x3c48, 0x3cd8, 0x3d00, 0x0041, 0x3f80, 0x3fe4, 0x00b4, 0x3fe7, - 0x400c, 0x4053, 0x40b7, 0x45e8, 0x41d1, 0x41e5, 0x41d8, 0x41d6, - 0x41da, 0x41d9, 0x41d5, 0x41e6, 0x41d4, 0x41d3, 0x4344, 0x43d6, - 0x43d7, 0x4413, 0x3afd, 0x4470, 0x4492, 0x44db, 0x44da, 0x4541, - 0x4543, 0x4633, 0x46f6, 0x46d4, 0x46dd, 0x46d0, 0x4704, 0x46d9, - 0x46db, 0x4705, 0x46d3, 0x46e1, 0x4d80, 0x4d77, 0x4d81, 0x4d82, - 0x4d83, 0xe25c, 0x5061, 0x5060, 0x51d8, 0x51d6, 0x51d7, 0x8105, - 0x544d, 0x5448, 0x56d6, 0x56cf, 0x56d9, 0x56d8, 0x573d, 0x03b3, - 0x5854, 0x585b, 0x585c, 0x03b4, 0x5859, 0x5858, 0x585a, 0x5855, - 0x5856, 0x5882, 0x5af0, 0x5b1c, 0x5b6a, 0x5b69, - /* 0x24 */ - 0x5b71, 0x5b67, 0x5b6c, 0x5b6e, 0x5b79, 0x5c8b, 0x5cb8, 0x5ce7, - 0x5ce8, 0x5ce4, 0x5ce6, 0x5ce5, 0x5cf0, 0x5e83, 0x5eb7, 0x5ebb, - 0x5eb9, 0x5ec5, 0x5f53, 0x5fc4, 0x5fc6, 0x5fcb, 0x60c8, 0xe29f, - 0x60c9, 0x60db, 0x6494, 0x6595, 0x6588, 0x658d, 0x69ec, 0x69ee, - 0x69f1, 0x6c2e, 0x6c49, 0x6e5f, 0x6ed1, 0x6ecb, 0x7385, 0x081d, - 0x744a, 0x7447, 0x744b, 0x74bb, 0x74c4, 0x087c, 0x7602, 0x7782, - 0x7791, 0x778f, 0x7792, 0x7c8f, 0x7c91, 0x7cb4, 0x7c92, 0x7ff4, - 0x80aa, 0x8235, 0x8237, 0x823d, 0x823c, 0x822f, 0x8230, 0x83f8, - 0x83ef, 0x8626, 0x0b55, 0x8826, 0x8827, 0x8a41, 0x8ac6, 0x8ac7, - 0x8beb, 0x8be8, 0x8bea, 0x8f1a, 0x8f19, 0x0d26, 0x9423, 0x9424, - 0x9925, 0xa135, 0xa134, 0xa507, 0xad1d, 0xb2e1, 0xb6ab, 0xbf60, - 0xc177, 0xc17d, 0x15bc, 0xc91e, 0xc91a, 0xc91d, - /* 0x25 */ - 0x3b6b, 0x3c2d, 0x3c4c, 0x3d2a, 0x004a, 0x3d15, 0x3d2c, 0x3d06, - 0x3d08, 0x3d0a, 0x004e, 0x4056, 0x4084, 0x00c9, 0x40c6, 0x41f5, - 0x4209, 0x41f8, 0x41e8, 0x41fb, 0x41e9, 0x41f6, 0x1ab7, 0x1ab8, - 0x4352, 0x1ab6, 0x1aba, 0x4354, 0x4351, 0x4439, 0x443a, 0x4498, - 0x454e, 0x017b, 0x4736, 0x470c, 0x4710, 0x4732, 0x4711, 0x4718, - 0x471c, 0x471a, 0x4719, 0x470b, 0x470f, 0x471d, 0x4721, 0x4713, - 0x471b, 0x4715, 0x0220, 0x4cd1, 0x4cc8, 0x4d8d, 0x4db5, 0x0289, - 0x0295, 0x50f8, 0x51e0, 0x51e1, 0x02be, 0x51de, 0x51fe, 0x51dc, - 0x5201, 0x51fd, 0x5200, 0x54d7, 0x54d6, 0x54d9, 0x5665, 0x56d2, - 0x56dc, 0x56e1, 0x56de, 0x5742, 0x574b, 0x03c3, 0x588e, 0x5891, - 0x588b, 0x5890, 0x5888, 0x5889, 0x5884, 0x58aa, 0x5b8d, 0x5b8f, - 0x5b7d, 0x5b7f, 0x5b7b, 0x5b80, 0x5b7e, 0x5b83, - /* 0x26 */ - 0x5b81, 0x5b86, 0x5b8a, 0x5cbd, 0x5cbe, 0x0477, 0x5cf4, 0x5cf3, - 0x5d02, 0x5cf6, 0x5cf5, 0x5cf2, 0x5d04, 0x5e3d, 0x5ec6, 0x5f89, - 0x5fd4, 0x5fd6, 0x5fd2, 0x60fa, 0x6106, 0x610c, 0x610a, 0x610f, - 0x652f, 0x05d4, 0x65b7, 0x65be, 0x65bc, 0x65e2, 0x6a06, 0x69f7, - 0x6a07, 0x69f6, 0x7635, 0x6c5f, 0x6c65, 0x6c64, 0x6c61, 0x6c5a, - 0x6c5d, 0xe2d7, 0x6ed7, 0x6ed5, 0x6ede, 0x6ee1, 0x6ee0, 0x6ed9, - 0x074c, 0x6eda, 0x6edf, 0x6ef6, 0x6f03, 0x0820, 0x7393, 0x738b, - 0x7391, 0x7392, 0x738a, 0x7389, 0x738f, 0x7456, 0x7459, 0x74ca, - 0x74cc, 0x085b, 0x74d0, 0x74cd, 0x74d6, 0x74cb, 0x7583, 0x7582, - 0x7606, 0x762a, 0x762c, 0x762b, 0x7629, 0x77bd, 0x77b3, 0x77be, - 0x77c0, 0x77b5, 0x77b6, 0x7c9d, 0x7c9f, 0x8120, 0x0a2d, 0x811e, - 0x811c, 0x8132, 0x811f, 0x812b, 0x8121, 0x8126, - /* 0x27 */ - 0x8124, 0x811d, 0x8127, 0x825b, 0x8259, 0x8280, 0x8255, 0x8250, - 0x825a, 0x8256, 0x8263, 0x8252, 0x8258, 0x0a63, 0x8239, 0x83f9, - 0x8628, 0x0b18, 0x86bc, 0x86d6, 0x8705, 0x8720, 0x0b74, 0x8833, - 0x8a46, 0x8a42, 0x8a43, 0x8a47, 0x8acb, 0x8b42, 0x8b45, 0x8bfd, - 0x8bf4, 0x8bf9, 0x8bfa, 0x8e5e, 0x8f1d, 0x0d28, 0x9258, 0x9255, - 0x9557, 0x9558, 0x95d9, 0x95dc, 0x95db, 0x9927, 0x9a85, 0x9a87, - 0x9a8a, 0x9d8b, 0x9e4f, 0xa030, 0xa02f, 0xa168, 0xa149, 0x0fda, - 0xa148, 0xa13f, 0xa14b, 0xa15c, 0xa146, 0xa140, 0xa50d, 0xa61b, - 0xa61d, 0xa617, 0x10a4, 0xa622, 0xb0a7, 0xb108, 0xb306, 0xbf7d, - 0x148e, 0xbf63, 0xbf64, 0xbf7f, 0xbf6b, 0xbf7c, 0xbf68, 0xbf65, - 0xbf6a, 0xc198, 0xc199, 0xc1ae, 0xc92b, 0xc92d, 0xc931, 0xc92e, - 0xc92f, 0x3b6d, 0x3c31, 0x3d2d, 0x3d39, 0x3d38, - /* 0x28 */ - 0x005b, 0x3d3a, 0x3d35, 0x3d62, 0x3fea, 0x3feb, 0x4015, 0x40cc, - 0x40c8, 0x40cd, 0x40db, 0x40cb, 0x4211, 0x4226, 0x4362, 0x435e, - 0x4361, 0x4441, 0x443f, 0x4475, 0x7465, 0x4649, 0x44eb, 0x451a, - 0x4557, 0x476b, 0x47a9, 0x4754, 0x4762, 0x47aa, 0x4758, 0x4772, - 0x4763, 0x4773, 0x478b, 0x478c, 0x475c, 0x4751, 0x4716, 0x4760, - 0x4761, 0x475e, 0x475d, 0x4764, 0x4753, 0x475f, 0x475b, 0x476e, - 0x4755, 0x4752, 0x4768, 0x4cd2, 0x4cd6, 0x4cd3, 0x4db8, 0x4dbb, - 0x4deb, 0x4de8, 0x4db6, 0x4dea, 0x4de7, 0x4de9, 0x5091, 0x5110, - 0x510e, 0x510f, 0x520b, 0x5203, 0x522b, 0x5209, 0x5228, 0x522c, - 0x5225, 0x5227, 0x520f, 0x54e9, 0x54ec, 0x0353, 0x5627, 0x5673, - 0x56e2, 0x56e6, 0xe276, 0x5761, 0x5751, 0x5812, 0x580e, 0x58ad, - 0x58af, 0x58b1, 0x58d3, 0x5b94, 0x5b92, 0x5b90, - /* 0x29 */ - 0x5b9d, 0x5b93, 0x5b95, 0x5b98, 0x5b97, 0x0480, 0xe28a, 0x5d07, - 0x5d0b, 0x5d08, 0x5ed9, 0x5ed5, 0x5fd7, 0x5fdf, 0x04dd, 0x5fde, - 0x5fe3, 0x5fe2, 0x04de, 0x6147, 0x0522, 0x613d, 0x6138, 0x6544, - 0x653a, 0x65b8, 0x662a, 0x6600, 0x65f3, 0x65f2, 0x65eb, 0x65fa, - 0x65ed, 0x65ec, 0x65ff, 0x65fb, 0x1f06, 0x664e, 0x65ef, 0x65f7, - 0x6a10, 0x6a11, 0x6a0c, 0x6a0b, 0x6bdd, 0x6c30, 0x06db, 0x6c7a, - 0x6c77, 0x6e28, 0x6e27, 0x6e65, 0x6f0e, 0x6f0b, 0x6f41, 0x6f13, - 0x6f0f, 0x6f12, 0x6f30, 0x73a0, 0x73a3, 0x739e, 0x7397, 0x73a1, - 0x739d, 0x739b, 0x7463, 0x74e3, 0x74e4, 0x74e6, 0x74e7, 0x74dd, - 0x2185, 0x74ec, 0x74e5, 0x74f1, 0x763b, 0x7639, 0x763a, 0x763c, - 0x763d, 0x7647, 0x763f, 0x7644, 0x7748, 0x7749, 0x7760, 0x77e3, - 0x77e9, 0x77f0, 0x08da, 0x08db, 0x77f2, 0x77ed, - /* 0x2a */ - 0x77ec, 0x77e6, 0x7816, 0x08d7, 0x7cbc, 0x7cbe, 0x7cc0, 0x7ce0, - 0x8000, 0x8002, 0x7ffe, 0x805e, 0x80b3, 0x80b7, 0x813a, 0x8139, - 0x813e, 0x8138, 0x813d, 0x814f, 0x826e, 0x825f, 0x8281, 0x8282, - 0x8271, 0x827b, 0x8279, 0x8277, 0x8273, 0x826f, 0x8297, 0x827e, - 0x83fc, 0x8411, 0x8432, 0x8431, 0x8410, 0x85ec, 0x85eb, 0x862c, - 0x862d, 0x86da, 0x872e, 0x872c, 0x872a, 0x8733, 0x874b, 0x8818, - 0x8842, 0x883b, 0x883f, 0x8841, 0x8843, 0x883c, 0x8a4c, 0x8a4a, - 0x8a49, 0x8a56, 0x8acf, 0x8b47, 0x8b48, 0x8b46, 0x8c1b, 0x8c11, - 0x8c14, 0x8c1d, 0x8c17, 0x8c1e, 0x8c0b, 0x8c1c, 0x8c12, 0x8c16, - 0x8c0d, 0x8c15, 0x8c13, 0x8c18, 0x0c1a, 0x8eac, 0x8f44, 0x8f2c, - 0x8f45, 0x9266, 0x926e, 0x9265, 0x9268, 0x9284, 0x9438, 0x943b, - 0x943a, 0x943f, 0x95df, 0x95dd, 0x95de, 0x95e2, - /* 0x2b */ - 0x0dd6, 0x992c, 0x992f, 0x9a8f, 0x9a90, 0x9a8c, 0x9a93, 0x9d25, - 0x9d88, 0x9da7, 0x9ef7, 0x9fbb, 0xa038, 0xa039, 0xa037, 0xa114, - 0xa16e, 0xa17b, 0x0fde, 0xa16c, 0xa17f, 0xa178, 0xa17a, 0xa16f, - 0x0fe5, 0xa3fe, 0xa648, 0xa64b, 0xa641, 0xa649, 0xa63b, 0xad2d, - 0xb0e3, 0xb11a, 0xb10d, 0xb113, 0xb111, 0xb11c, 0x1272, 0xb3b5, - 0x12af, 0xb729, 0xb7a1, 0xb824, 0xbabb, 0xbda1, 0xbf83, 0xbf8d, - 0xbf87, 0xbf85, 0xbf8a, 0xbfa3, 0xbf89, 0xbf84, 0xbfa2, 0xc1b1, - 0xc1b0, 0xc1af, 0xc1b6, 0xc1c9, 0xc1ca, 0xc1c8, 0xc1b4, 0xc759, - 0xc7c9, 0xc941, 0xc94c, 0x15c4, 0xc945, 0xc95a, 0x3bb9, 0x3d94, - 0x3d6e, 0x3da2, 0x3d67, 0x0063, 0x3da3, 0x3d76, 0x3d6c, 0x3d64, - 0x3da5, 0x3d30, 0x3da6, 0x3d69, 0x3da4, 0x3f90, 0x405f, 0x4060, - 0x40da, 0x40d8, 0x40dd, 0x00ec, 0x4259, 0x425b, - /* 0x2c */ - 0x425a, 0x4239, 0x4234, 0x4244, 0x4233, 0x423c, 0x4258, 0x426a, - 0x436f, 0x4372, 0x4370, 0x4371, 0x436e, 0x43f0, 0x43eb, 0x4449, - 0x444c, 0x44f5, 0x4520, 0x456a, 0x4572, 0x464b, 0x465d, 0x4750, - 0x47f9, 0x47fa, 0x47fb, 0x4823, 0x47b7, 0x4822, 0x47b5, 0x47c4, - 0x47b4, 0x47ef, 0x0198, 0x47cd, 0x47f0, 0x47b8, 0x47cb, 0x47f1, - 0x47ba, 0x4803, 0x47f8, 0x47b6, 0x47bc, 0x47b3, 0x4821, 0x47f7, - 0x47c2, 0x47be, 0x47c9, 0x47bd, 0x47ce, 0x47b9, 0x47c7, 0x47ca, - 0x47cc, 0x4826, 0x4ce4, 0x4ce0, 0x4cf0, 0x4dec, 0x4e24, 0x4e18, - 0x4e2f, 0x4e25, 0x5028, 0x5022, 0x506a, 0x3c57, 0x5094, 0x5092, - 0x509c, 0x5122, 0x5130, 0x511d, 0x5123, 0x5235, 0x5233, 0x522f, - 0x524d, 0x5231, 0x525b, 0x525a, 0x5232, 0x525c, 0x5259, 0x525d, - 0x5469, 0x546d, 0x5d32, 0x0358, 0x550a, 0x5520, - /* 0x2d */ - 0x551f, 0x550d, 0x56e8, 0x56ec, 0x5777, 0x5770, 0x5771, 0x58f8, - 0x58d6, 0x58d9, 0x58de, 0x58d5, 0x58e1, 0x03d3, 0x58e2, 0x58dd, - 0x58e0, 0x590e, 0x5908, 0x58dc, 0x590a, 0x590c, 0x5bb4, 0x5bb1, - 0x5bb6, 0x5bbc, 0x5d1d, 0x5d24, 0x5d19, 0x5d1b, 0x5d22, 0x5d1a, - 0x5d1c, 0x5d21, 0x5ee6, 0x5ee4, 0x5ee7, 0x5eea, 0x04e2, 0xe29b, - 0x5ff0, 0x5ff5, 0x5fef, 0x6142, 0x616e, 0x613c, 0x6197, 0x618c, - 0x6181, 0x6171, 0x61ce, 0x61ba, 0x617a, 0x617e, 0x0554, 0x6172, - 0x61bb, 0x052f, 0x6173, 0x6182, 0x05b6, 0x64ba, 0x64b8, 0x654b, - 0x6548, 0x662b, 0x65f4, 0x662c, 0x6642, 0x6648, 0x6644, 0x6645, - 0x663c, 0x6637, 0x6633, 0x6641, 0x6632, 0x6687, 0x6a27, 0x6a23, - 0x6a2d, 0x6a1f, 0x6a2c, 0x6a28, 0x6b75, 0x6b74, 0x6be7, 0x6c32, - 0x6c31, 0x6c99, 0x6c96, 0x6c98, 0x6c9d, 0x6c92, - /* 0x2e */ - 0x6c94, 0x6c95, 0x6c97, 0xa1b9, 0x0735, 0x6f11, 0x6f3b, 0x6f79, - 0x6f42, 0x6f43, 0x075d, 0x6f78, 0x73ac, 0x0829, 0x73b1, 0x73b4, - 0x73b3, 0x73af, 0x73aa, 0x73b2, 0x7468, 0x74f2, 0x74fe, 0x74f8, - 0x74f9, 0x74ff, 0x74f5, 0x74f7, 0x74fd, 0x7500, 0x7588, 0x766e, - 0x765d, 0x7663, 0x7660, 0x7761, 0x7837, 0x7871, 0x7823, 0x7822, - 0x781f, 0x7825, 0x7cfd, 0x7d11, 0x7d23, 0x7cf0, 0x7cef, 0x800e, - 0x800c, 0x80ba, 0x0a1f, 0x8152, 0x8155, 0x8153, 0x8154, 0x8151, - 0x8158, 0x82b0, 0x829f, 0x0a72, 0x82a1, 0x829a, 0x82be, 0x82a0, - 0x8437, 0x0b0b, 0x85f1, 0x85f2, 0x8634, 0x8637, 0x8635, 0x5e8c, - 0x86df, 0x874c, 0x874e, 0x8764, 0x8763, 0x8736, 0x8858, 0x8868, - 0x885b, 0x885f, 0x8859, 0x8865, 0x8860, 0x885e, 0x8ad5, 0x8ad6, - 0x8b4e, 0x8b52, 0x8c35, 0x8c39, 0x8c58, 0x8c41, - /* 0x2f */ - 0x8c57, 0x8c38, 0x8c3d, 0x8c32, 0x8c44, 0xe344, 0x8e63, 0x8e62, - 0x8eb8, 0x8eb0, 0x8eb1, 0x8f4d, 0x8f63, 0x8f70, 0x8f4b, 0x8f4f, - 0x8f4e, 0x8f53, 0x8f47, 0x0ca2, 0x8f54, 0x8f52, 0x8f59, 0x8f7e, - 0x912b, 0x912e, 0x927f, 0x927e, 0x9281, 0x9283, 0x9447, 0x9454, - 0x944d, 0x944c, 0x944b, 0x9457, 0x9565, 0x9564, 0x9561, 0x9562, - 0x95f0, 0x95f3, 0x95f9, 0x95f4, 0x95f5, 0x95ef, 0x95f8, 0x95fc, - 0x95f7, 0x95fd, 0x9617, 0x9934, 0x9936, 0x9938, 0x9aaf, 0x9aae, - 0x9aac, 0x9aa2, 0x9d28, 0x69c2, 0x9d9c, 0x9db3, 0x9d90, 0x9f06, - 0x9f04, 0x9f0b, 0x9f05, 0xa040, 0xa04f, 0xa1ab, 0xa19d, 0xa1b8, - 0xa1b2, 0xa1d2, 0xa1cf, 0xa1a2, 0x0fec, 0xa1a5, 0xa1a9, 0xa1a7, - 0xa1d0, 0xa402, 0xa4cf, 0xa4d0, 0xa516, 0xa519, 0xa675, 0xa671, - 0xa691, 0xa672, 0xa68e, 0xa66d, 0xa688, 0xa673, - /* 0x30 */ - 0x10bb, 0xa681, 0xa676, 0xa67b, 0xa67f, 0xa690, 0xa678, 0xad4b, - 0xad48, 0xad5b, 0xad51, 0xad3d, 0xad40, 0xad46, 0xad4d, 0xad3b, - 0xad4a, 0xad41, 0xad3e, 0xad4e, 0xb0ac, 0xb0e6, 0xb0e9, 0xb129, - 0x1221, 0xb133, 0xb12e, 0xb11e, 0x121f, 0xe3c5, 0xb122, 0xb127, - 0xb2e7, 0xb30b, 0xb466, 0xb6ad, 0xb6ae, 0x3038, 0xb72b, 0xb72a, - 0xb82c, 0xb82d, 0x1391, 0x1396, 0xb98f, 0xb993, 0xbac6, 0xbac5, - 0xbd15, 0xbd13, 0xbdb1, 0xbda9, 0x31ce, 0xbfa8, 0xbfab, 0xbfbe, - 0xbfac, 0xbfa9, 0xbfa6, 0xbfc1, 0xc1cc, 0xc1d1, 0xc1d3, 0xc1e4, - 0xc1cb, 0xc1e1, 0xc1d2, 0xc1e3, 0xc1cf, 0xc1d0, 0xc1e5, 0xc20e, - 0xc7cc, 0xc7ca, 0xc7cb, 0xc95c, 0xc961, 0xc95d, 0xc959, 0xcb77, - 0xd184, 0x3b41, 0x3bfd, 0x3c1a, 0x3c63, 0x3db6, 0x3db2, 0x3de9, - 0x3de7, 0x3dd6, 0x3e30, 0x3dec, 0x3ddd, 0x3de8, - /* 0x31 */ - 0x3db0, 0x3db5, 0x3de1, 0x3f98, 0x3f99, 0x00bc, 0x4093, 0x40e5, - 0x00d8, 0x4260, 0x425e, 0x00f4, 0x437b, 0x43f1, 0x43f3, 0x457f, - 0xe238, 0x4657, 0x4658, 0x4839, 0x48a7, 0x4835, 0x4860, 0x4851, - 0x4862, 0x4842, 0x483c, 0x4843, 0x48ab, 0x48a9, 0x48b4, 0x4879, - 0x486a, 0x483b, 0x48aa, 0x4833, 0x4837, 0x4827, 0x48a8, 0x4870, - 0x482f, 0x4836, 0x48b5, 0x4830, 0x483a, 0x4838, 0x48b1, 0x48ac, - 0x482e, 0x4875, 0x48b0, 0x4cf7, 0x4d00, 0x4cf1, 0x4cf3, 0x4e60, - 0x4e61, 0x4e32, 0x4e2d, 0x4e4a, 0x4e2a, 0x5067, 0x50a2, 0x50a3, - 0x509e, 0x50a4, 0x5144, 0x5132, 0x529b, 0x5298, 0x5299, 0x529a, - 0x5266, 0x5262, 0x526b, 0x8062, 0x5267, 0x553b, 0x5523, 0x5529, - 0x567e, 0x56f3, 0x0385, 0x56f5, 0x0383, 0x5780, 0x577e, 0x577c, - 0x577f, 0x577d, 0x5781, 0x5925, 0x5929, 0x5917, - /* 0x32 */ - 0x5963, 0x5967, 0x5965, 0x592a, 0x5968, 0x5926, 0x5964, 0x591b, - 0x5962, 0x5969, 0x5afe, 0x5b44, 0x5b42, 0x5bb7, 0x5bd2, 0x5bd4, - 0x5bd7, 0x5bdc, 0x5bd1, 0x5bd5, 0x5bcd, 0x5bd8, 0x5c9a, 0x5d42, - 0x5d35, 0x5d58, 0x5d34, 0x5d3c, 0x5d3b, 0x5d3e, 0x5d3d, 0x5d5a, - 0x5d41, 0x5d38, 0x5d45, 0x5d33, 0x5e26, 0x04ba, 0x5ef7, 0x5eef, - 0x5ef0, 0x5eee, 0x5f9d, 0x6006, 0x6011, 0x6008, 0x6002, 0x600a, - 0x6007, 0x6191, 0x618e, 0x6185, 0x61e8, 0x6217, 0x61d4, 0x0569, - 0x61c4, 0x61d5, 0x0545, 0x61d8, 0x6180, 0x61de, 0x6242, 0x64c7, - 0x64bf, 0x668d, 0x6689, 0x6690, 0x669a, 0x66c8, 0x6692, 0x66a1, - 0x6684, 0x6a57, 0x6a47, 0x6a77, 0x6a3a, 0x6a50, 0x6a42, 0x6a43, - 0x6aa3, 0x6b77, 0x6cb2, 0x6ce2, 0x6cbd, 0x6e74, 0x6f82, 0x6fb8, - 0x076c, 0x6fba, 0x6fb9, 0x6fbb, 0x6f87, 0xe2e4, - /* 0x33 */ - 0x6f83, 0x6fb7, 0x3b43, 0x73ce, 0x73ba, 0x7473, 0x7509, 0x750a, - 0x750b, 0x7507, 0x7505, 0x750e, 0x7597, 0x7677, 0x767b, 0x767a, - 0x7674, 0x7679, 0x7886, 0x78f5, 0x78a5, 0x789d, 0x78be, 0x7896, - 0x78e1, 0x78a4, 0x78a1, 0x78f6, 0x0904, 0x788d, 0x788b, 0x7878, - 0x7898, 0x790a, 0x7d5d, 0x7d27, 0x7d5f, 0x80c0, 0x80c1, 0x816d, - 0x815e, 0x818a, 0x8162, 0x8164, 0x0a3a, 0x82c0, 0x82ca, 0x82d1, - 0x0a79, 0x82c7, 0x82ce, 0x2309, 0x82c5, 0x8436, 0x8457, 0x8477, - 0x85f6, 0x85f7, 0x8655, 0x8644, 0x863e, 0x8642, 0x8652, 0x86e1, - 0x8708, 0x8768, 0x8767, 0x0b5d, 0xe337, 0x887e, 0x8893, 0x8879, - 0x8881, 0x887d, 0x887b, 0x8894, 0x0b8a, 0x8a66, 0x8ad9, 0x8ae0, - 0xe33e, 0x8b5f, 0x8c5f, 0x8c5e, 0x8c68, 0x0c27, 0x8c88, 0x8c6a, - 0x8c6c, 0x8c66, 0x8c67, 0x8c89, 0x8c60, 0x8c85, - /* 0x34 */ - 0x3e2a, 0x8e68, 0x8eb9, 0x8eba, 0x8ebe, 0x8f6f, 0x8f80, 0x8f74, - 0x8f81, 0x8f7a, 0x8f9c, 0x8f73, 0x8f82, 0x8f7f, 0x8fa7, 0x8f79, - 0x8f78, 0x8f7d, 0x8fa8, 0x8f7c, 0x9168, 0x914e, 0x929e, 0x0d46, - 0x0d40, 0x9298, 0x0d3f, 0x9285, 0x929c, 0x92c5, 0x929a, 0x9468, - 0x9465, 0x9467, 0x9461, 0x9460, 0x0d9d, 0x0dcb, 0x957b, 0x0de1, - 0x9619, 0x960e, 0x9631, 0x9612, 0x9610, 0x9615, 0x963f, 0x961d, - 0x961e, 0x994d, 0x9948, 0x9945, 0x9942, 0x9949, 0x994a, 0x9947, - 0x0e7f, 0x994c, 0x9acd, 0x9ad5, 0x9ac4, 0x9aca, 0x9ac3, 0x0f46, - 0x9d29, 0x9db4, 0x9e6d, 0x9e66, 0x9e6a, 0x9f15, 0x9fd3, 0x9fec, - 0xa055, 0x101a, 0xa1d6, 0xa1d8, 0xa251, 0xa1e0, 0xa203, 0xa204, - 0xa1da, 0xa1ea, 0xa202, 0xa1d3, 0xa1e4, 0xa1e5, 0xa43b, 0xa466, - 0xa52c, 0xa521, 0xa526, 0xa5d4, 0xa5d5, 0xa5d9, - /* 0x35 */ - 0xa6d5, 0xa6eb, 0xa6c5, 0x10d3, 0xa727, 0xa6f0, 0xa6b9, 0xa718, - 0xa6ee, 0x10d0, 0xa6b7, 0xa6bb, 0xa6ef, 0xa6b8, 0xa6df, 0xa6da, - 0xa6e3, 0xa6c9, 0xa6ec, 0xaca4, 0x118e, 0xaca3, 0xad5e, 0xad61, - 0xad62, 0xad63, 0xad8e, 0xad69, 0xad6b, 0xad85, 0xad8d, 0xad64, - 0xad6d, 0xb14c, 0xb149, 0xb147, 0xb148, 0xb142, 0xb145, 0xb15b, - 0xb15d, 0xb146, 0xb313, 0xb31a, 0xb30e, 0xb30f, 0xb31b, 0xb312, - 0xb3c3, 0xb3be, 0xb3bd, 0xb479, 0xb47c, 0x12c3, 0x12b6, 0xb480, - 0xb475, 0xb49b, 0x2f2f, 0xb474, 0x12c0, 0x12b8, 0x5b41, 0x5f94, - 0xb730, 0xb7a7, 0xb7a5, 0xb7a4, 0xb83a, 0xb95b, 0xb99f, 0xb9a8, - 0xb9b3, 0xb9a1, 0xb9a7, 0xb9b2, 0xb99d, 0xb9a3, 0xb9a2, 0xbaef, - 0xbad9, 0x13d9, 0xbad5, 0xbadd, 0xbada, 0xbaee, 0xbad7, 0xbd1a, - 0xbd19, 0xbd18, 0xbdb3, 0xbdbf, 0xbdbb, 0xbdc0, - /* 0x36 */ - 0xbdb9, 0xbdb8, 0xbdd5, 0xbf11, 0xbf10, 0xbfc3, 0xbfc2, 0xbfe9, - 0xbfcd, 0xbfe5, 0xbfca, 0xbfc7, 0xbfe8, 0xc1f1, 0xc20c, 0xc1ef, - 0xc1ee, 0xc1f3, 0xc20d, 0xc1f6, 0xc1f0, 0x14ec, 0xc2f5, 0xc2f4, - 0xc2f8, 0xc2fe, 0xc411, 0xc422, 0xc442, 0xc75c, 0xc75a, 0xc75d, - 0xc7d1, 0xc7d0, 0xc975, 0xc97b, 0xca89, 0xcf4d, 0xd189, 0xd192, - 0xd18c, 0xd188, 0xd367, 0xd368, 0x3e21, 0x3df2, 0x3e09, 0x3df8, - 0x3df0, 0x3df3, 0x3df5, 0x3dfb, 0x3df7, 0x3def, 0x3e0b, 0x3fa2, - 0x40f5, 0x40f3, 0x40f4, 0x40f2, 0x4198, 0x4268, 0x4280, 0x4285, - 0x428e, 0x428f, 0x3df4, 0x4286, 0x42a4, 0x4386, 0x4389, 0x4387, - 0x4385, 0x1adc, 0x4388, 0x45ff, 0x4666, 0x01cc, 0x48c3, 0x01a2, - 0x48c4, 0x493b, 0x48e7, 0x48f8, 0x48fb, 0x01b6, 0x48be, 0x48c6, - 0x01c5, 0x01c6, 0x48fc, 0x48c0, 0x4933, 0x48c9, - /* 0x37 */ - 0x48fe, 0x48da, 0x48cc, 0x48bb, 0x48fd, 0x48df, 0x48cd, 0x48c2, - 0x48c8, 0x4932, 0x492d, 0x48d2, 0x4931, 0x48d3, 0x492e, 0x48cf, - 0x4cff, 0x4d09, 0x4cfc, 0x4e72, 0x4eaa, 0x4eab, 0x4ea7, 0x4e7b, - 0x4e76, 0x4ea8, 0x4eac, 0x0283, 0x1b21, 0x50aa, 0x4503, 0x50ac, - 0x50ad, 0x50ab, 0x5150, 0x5158, 0x52dd, 0x02f8, 0x52ae, 0x52a2, - 0x52ab, 0x52e3, 0x52af, 0x52e0, 0x52e4, 0x02f6, 0x52a7, 0x52aa, - 0x52e2, 0x52e1, 0x52df, 0x52ad, 0x52e5, 0x52d1, 0x52ac, 0x52d5, - 0x52a3, 0x529f, 0x5479, 0x5476, 0x5543, 0x553d, 0x5547, 0x5544, - 0x553f, 0x555b, 0x567f, 0x579a, 0x579c, 0x039b, 0x581e, 0x5988, - 0x596a, 0x5976, 0x5972, 0x5970, 0x597e, 0x596c, 0x596f, 0x5975, - 0x5977, 0x5978, 0x598a, 0x5979, 0x5994, 0x5b01, 0x5c05, 0x5bf1, - 0x5bee, 0x5bef, 0x5c04, 0x1c3f, 0x5bfa, 0x5c07, - /* 0x38 */ - 0x5bf4, 0x5bf5, 0x5c9c, 0x5d6d, 0x5d69, 0x5d66, 0x5d62, 0x5d46, - 0x048d, 0x5d65, 0x5d5d, 0x5d5e, 0x5d5f, 0x5e8e, 0x5f02, 0x5f06, - 0x5f04, 0x5f03, 0x5f62, 0x6027, 0x6021, 0x6020, 0x6024, 0x6029, - 0x6031, 0x6023, 0x6022, 0x61dc, 0x624d, 0x61e5, 0x61d3, 0x61ee, - 0x61e6, 0x0556, 0x6236, 0x6240, 0x633f, 0x623d, 0x6244, 0x055b, - 0x625f, 0x6229, 0x6249, 0x628a, 0x622a, 0x6287, 0x624c, 0x6231, - 0x6248, 0x622b, 0x623b, 0x6241, 0x61c9, 0x6234, 0x6253, 0x6235, - 0x6247, 0x6238, 0x64d1, 0x64d2, 0x6551, 0x6555, 0x6552, 0x6553, - 0x668f, 0x66f4, 0x6747, 0x670d, 0x671c, 0x66fb, 0x6719, 0x66f7, - 0x66f9, 0x66f5, 0x66e9, 0x670a, 0x66ee, 0x670b, 0x66fd, 0x6706, - 0x6702, 0x6716, 0x6718, 0x66f0, 0x69d4, 0x6a66, 0x6a6a, 0x6a75, - 0x6a76, 0x6a80, 0x6a6d, 0x0696, 0x6a69, 0x6a67, - /* 0x39 */ - 0x6a68, 0x6a5d, 0x6ba4, 0x6bfe, 0x6bfd, 0x6cec, 0x6ce9, 0x6d21, - 0x6ceb, 0x6ce7, 0x6cf2, 0x6d20, 0x6e7a, 0x702d, 0x702e, 0x6fca, - 0x702f, 0x6fc8, 0x077e, 0x6fcb, 0x6fc3, 0x6f84, 0x6fd2, 0x6fc6, - 0x0781, 0x6fcf, 0x6fd5, 0x6fd4, 0x6fdd, 0x702b, 0x70a3, 0x6fdb, - 0x702c, 0x7013, 0x0835, 0x73d1, 0x73cc, 0x73d5, 0x73c9, 0x73cf, - 0x73d2, 0x747b, 0x747c, 0x7523, 0x751d, 0x751c, 0x751e, 0x7522, - 0x7524, 0x7520, 0x7518, 0x7521, 0x7688, 0x768a, 0x7694, 0x768f, - 0x768e, 0x7690, 0x089b, 0x76a7, 0x7764, 0x0900, 0x7918, 0x7914, - 0x791d, 0x7905, 0x78ff, 0x791b, 0x791a, 0x7919, 0x7903, 0x790e, - 0x7947, 0x7904, 0x795a, 0x7907, 0x7920, 0x7d6a, 0x7d66, 0x7d7a, - 0x7d65, 0x7daf, 0x80cd, 0x80cf, 0x80d1, 0x80ce, 0x815f, 0x8177, - 0x8174, 0x8188, 0x8175, 0x8189, 0x8172, 0x82c6, - /* 0x3a */ - 0x82ea, 0x82e0, 0x8307, 0x82e6, 0x82e5, 0x82dd, 0x82e3, 0x82da, - 0x84ae, 0x847e, 0x847d, 0x847f, 0x0ad3, 0x84d9, 0x85fa, 0x85fb, - 0x864d, 0x8654, 0x8651, 0x8650, 0x8898, 0x8895, 0x889d, 0x88c1, - 0x889a, 0x889b, 0x0b9f, 0x889c, 0x88d7, 0x88a4, 0x8896, 0x88a0, - 0x8a31, 0x8ae9, 0x8b6e, 0x8c9a, 0x8ca5, 0x8c94, 0x8ca6, 0x8c99, - 0x8c8b, 0x8c98, 0x8c91, 0x8c8c, 0x8ca1, 0x8ca3, 0x8cc6, 0x8e6f, - 0x8e6d, 0x8e6a, 0x8e6c, 0x8e71, 0x8e6e, 0x8edf, 0x8fac, 0x8faa, - 0x0cb1, 0x8fb5, 0x8fad, 0x8fb2, 0x8fb3, 0x8fab, 0x8fb6, 0x8fc7, - 0x8fc6, 0x916c, 0x9170, 0x92b3, 0x0d4b, 0x948c, 0x9481, 0x9483, - 0x947d, 0x9485, 0x9490, 0x94a2, 0x948d, 0x948f, 0x947e, 0x948a, - 0x947f, 0x9476, 0x9487, 0x9478, 0x9580, 0x9582, 0x9581, 0x9583, - 0x965a, 0x9634, 0x962c, 0x962a, 0x9640, 0x962d, - /* 0x3b */ - 0x9633, 0x962b, 0x964b, 0x283f, 0x963c, 0x995a, 0x9977, 0x9960, - 0x9afa, 0x9af9, 0x9afc, 0x0ed6, 0x9af5, 0x9ae8, 0x9b09, 0x9ae7, - 0x9ae6, 0x9ae9, 0x9d32, 0x9d2c, 0x9dbd, 0x9dbc, 0x9e7a, 0x9e7e, - 0x9e79, 0x0f89, 0x9f23, 0x9f30, 0x9f28, 0x9fd4, 0xa5ce, 0x9ff1, - 0x9ff0, 0xa060, 0xa065, 0xa1a8, 0xa20a, 0xa21b, 0xa212, 0xa207, - 0xa24f, 0xa20e, 0xa252, 0xa216, 0x1000, 0xa253, 0xa254, 0xe384, - 0xa256, 0xa46d, 0xa472, 0xa52f, 0xa72a, 0x10dc, 0xa763, 0xa784, - 0xa7af, 0xa745, 0xa770, 0xa756, 0xa716, 0xa73d, 0xa738, 0xa76f, - 0xa777, 0xa72e, 0xa731, 0xa74c, 0xa75f, 0xa775, 0xa739, 0xa73a, - 0xa72c, 0xa72d, 0xa73f, 0xa72f, 0xa730, 0xa73e, 0x2ad0, 0x1190, - 0xacb2, 0xadb7, 0xad8f, 0x11b1, 0xad96, 0xad9e, 0xad97, 0xad95, - 0xada5, 0xad98, 0x2be7, 0xada3, 0xad9a, 0xadad, - /* 0x3c */ - 0xada6, 0xadb6, 0xad99, 0xadaf, 0xadac, 0x11aa, 0xad9f, 0xad94, - 0xb0eb, 0xb16f, 0xb16d, 0xb17e, 0xb16c, 0xb161, 0xb163, 0xb16b, - 0xb15e, 0xb13e, 0xb164, 0xb1ad, 0x127d, 0xb320, 0xb3d1, 0xb3d5, - 0xb4ae, 0xb4af, 0xb49f, 0xb4a8, 0xb4ca, 0xb6e1, 0xb739, 0xb738, - 0xb73b, 0xb7ad, 0xb7b5, 0xb7af, 0xb7b1, 0xb7ae, 0xb7b4, 0xb7b0, - 0xb84b, 0xb851, 0xb84c, 0x1369, 0xb860, 0xb9be, 0xb9b9, 0xb9b7, - 0xb9b6, 0x13a1, 0xb9bd, 0xb9b8, 0xb9c1, 0xbaf7, 0xbaf3, 0xbaf4, - 0xbafb, 0xbafd, 0xbaf5, 0x13e7, 0xbafa, 0xbb14, 0x13ec, 0xbaf2, - 0xbafc, 0xbb00, 0x13df, 0xbd2b, 0xbd29, 0xbd2e, 0x1433, 0xbdd7, - 0xbddb, 0xbdd9, 0xbdd8, 0xbde6, 0xbdd6, 0xbdd1, 0xbde7, 0xbdd0, - 0xbddc, 0xbfed, 0xc01a, 0xc019, 0xc016, 0xbfec, 0xbfef, 0xbfee, - 0xbff4, 0xc02f, 0xc230, 0xc219, 0xc218, 0xc211, - /* 0x3d */ - 0xc216, 0xc212, 0xc210, 0xc214, 0xc30c, 0xc30d, 0xc410, 0xc429, - 0xc428, 0xc765, 0xc766, 0xc7de, 0xc7df, 0xc7e0, 0xc7d9, 0xc7db, - 0xc7d8, 0xc7e3, 0xc7d7, 0xc9a6, 0xc9a7, 0xc9bf, 0xc9a8, 0xc99f, - 0xc9a1, 0xc9a2, 0xc9ad, 0xc9a3, 0xc9a0, 0xcb83, 0xcb85, 0xcb82, - 0xcb84, 0xccee, 0xcd5d, 0xce92, 0xcf55, 0xcf53, 0xe3fc, 0xcf51, - 0xcf52, 0xcf50, 0xd09d, 0xd187, 0xd197, 0xd19b, 0xd19d, 0xd369, - 0xd511, 0x17ee, 0xd77a, 0x1832, 0x6d44, 0x3bc6, 0x3e40, 0x3e2e, - 0x3e68, 0x3e2d, 0x3e34, 0x3e32, 0x3e69, 0x3e31, 0x3e6a, 0x3e3e, - 0x3e6f, 0x3e75, 0x3ff6, 0x4020, 0x4028, 0x4067, 0x40fb, 0x40fe, - 0x40fc, 0x40fd, 0x40ff, 0x40fa, 0x42ac, 0x42af, 0x42b1, 0x00fc, - 0x42bf, 0x42be, 0x42a7, 0x42aa, 0x4394, 0x4393, 0x4399, 0x012a, - 0x43fa, 0x4456, 0x4522, 0x4591, 0x4592, 0x4608, - /* 0x3e */ - 0x4606, 0x48d6, 0x4937, 0x494b, 0x49ce, 0x49d0, 0x4939, 0x4964, - 0x49cf, 0x4946, 0x4966, 0x4956, 0x4943, 0x494a, 0x4958, 0x4965, - 0x495a, 0x495b, 0x4955, 0x4950, 0x494c, 0x49cd, 0x4951, 0x4947, - 0x01d3, 0x4953, 0x4962, 0x49cc, 0x01d7, 0x497f, 0x494d, 0x4d0a, - 0x4d0c, 0x4d0f, 0x4ebb, 0x4eb9, 0x4eeb, 0x4eae, 0x4ec1, 0x4eea, - 0x4ebe, 0x4ebf, 0x4eba, 0x4eb7, 0x4eb3, 0x4ee9, 0x506e, 0x50af, - 0x50b3, 0x50b2, 0x5168, 0x5169, 0x516a, 0x52de, 0x52eb, 0x5311, - 0x52ed, 0x52e9, 0x52f7, 0x52f4, 0x52ea, 0x5312, 0x52e8, 0x5313, - 0x548e, 0x5486, 0x5563, 0x5565, 0x5699, 0x57c2, 0x57ae, 0x57b0, - 0x57ad, 0x59b4, 0x59d1, 0x59ad, 0x03f3, 0x59bd, 0x59b7, 0x59ab, - 0x59af, 0x59c1, 0x59b5, 0x5c0f, 0x5c0e, 0x5c1c, 0x5c13, 0x5c0a, - 0x5c1e, 0x5c14, 0x5c1a, 0x5ccb, 0x5d87, 0x5d93, - /* 0x3f */ - 0x0491, 0x5d84, 0x5d85, 0x5d92, 0x5d80, 0x5e2b, 0x5e63, 0x5f0a, - 0x04c0, 0x5f66, 0x6034, 0x6033, 0x604d, 0x6289, 0x6257, 0x1e17, - 0x624a, 0x0563, 0x6239, 0x623f, 0x6290, 0x628f, 0x62b2, 0x629f, - 0x6295, 0x62a1, 0x629c, 0x628e, 0x62a0, 0x62ae, 0x6296, 0x62ca, - 0x62ac, 0x0570, 0x62a6, 0x6297, 0x6293, 0x3eb6, 0x64d6, 0x64e0, - 0x64d8, 0x6556, 0x676e, 0x677e, 0x6774, 0x6777, 0x6780, 0x677a, - 0x676b, 0x675f, 0x6776, 0x67b0, 0x6763, 0x6a92, 0x6a82, 0x6a9d, - 0x6a94, 0x6a83, 0x6a8b, 0x6a84, 0x6b57, 0x6b84, 0x6bb5, 0x6c09, - 0x6ce6, 0x0702, 0x6d25, 0x6d51, 0x6e3e, 0xe2da, 0x6e85, 0x703f, - 0x7042, 0x7038, 0x703a, 0x704e, 0x7045, 0x7039, 0x7037, 0x7044, - 0xe2e7, 0x70a4, 0x703d, 0x7041, 0x73df, 0x73de, 0x73ca, 0x73e9, - 0x73e2, 0x73e0, 0x7489, 0x7487, 0x7532, 0x7533, - /* 0x40 */ - 0x75ac, 0x75f9, 0x760d, 0x76b9, 0x795e, 0x796a, 0x0935, 0x7981, - 0x7969, 0x79ac, 0x7980, 0x7975, 0x7971, 0x7976, 0x796f, 0x7db6, - 0x7e03, 0x7dbf, 0x7e01, 0x7db2, 0x7dc4, 0x80db, 0x80dc, 0x80d8, - 0xd172, 0x81b5, 0x81a8, 0x818f, 0x819e, 0x818e, 0x82de, 0x82e2, - 0x8320, 0x831d, 0x831a, 0x8319, 0x832b, 0x8318, 0x8310, 0x830e, - 0x8324, 0x831f, 0x8313, 0x8335, 0x8483, 0x0ae0, 0x84d7, 0x8602, - 0x8603, 0x865c, 0x865f, 0x86c7, 0x879a, 0x8797, 0x87a3, 0x88f7, - 0x88c6, 0x88cc, 0x88d6, 0x88cd, 0x88f9, 0x88d9, 0x88d8, 0x0b9a, - 0x88d1, 0x88ce, 0x88d5, 0x0ba3, 0x88d4, 0x88f8, 0x8a7a, 0x8a79, - 0x8a7f, 0x8af3, 0x8af5, 0x8af6, 0x8af4, 0x8af7, 0x0c05, 0x8b79, - 0x8c9c, 0x8cdf, 0x8cf5, 0x8cff, 0x8cd1, 0x8cda, 0x8ccf, 0x8ccd, - 0x8cde, 0x8cd8, 0x75ad, 0x8ce0, 0x8cfe, 0x8c9e, - /* 0x41 */ - 0x8e75, 0x8e73, 0x8e72, 0x8ed8, 0x8fd0, 0x8fd6, 0x8fd7, 0x8fca, - 0x8fcd, 0x918a, 0x9189, 0x918b, 0x92d3, 0x92da, 0x92ce, 0x92d2, - 0x0d5e, 0x92d4, 0x92d7, 0x92d5, 0x92fb, 0x92cd, 0x92fa, 0x92d6, - 0x0da6, 0x949b, 0x949e, 0x949d, 0x94a4, 0x949f, 0x94a5, 0x94a8, - 0x958f, 0x958c, 0x9595, 0x9660, 0x9655, 0x965c, 0x966f, 0x9651, - 0x9661, 0x96a7, 0x965e, 0x9662, 0x9654, 0x966e, 0x9652, 0x9658, - 0x966d, 0x965f, 0x966c, 0x9650, 0x965d, 0x968e, 0x9972, 0x9978, - 0x9975, 0x9976, 0x997c, 0x997e, 0x997d, 0x9b15, 0x9b14, 0x9b1d, - 0x9b1c, 0x9b23, 0x9b57, 0x9dc8, 0x0f5d, 0x9dc9, 0x9dc5, 0x9e87, - 0x9e8a, 0x9e94, 0x9f39, 0x9f40, 0x9f3e, 0x9f38, 0x9fd6, 0x0fb8, - 0xa077, 0xa078, 0xa07d, 0xa1dd, 0xa25e, 0xa277, 0xa2d4, 0xa266, - 0xa25f, 0xa273, 0xa272, 0xa297, 0xa25a, 0xa296, - /* 0x42 */ - 0xa25d, 0xa265, 0xa270, 0xa275, 0xa274, 0xa25c, 0xa260, 0x1034, - 0xa26d, 0xa441, 0xa53c, 0xa53e, 0x106f, 0xa549, 0xa6e4, 0xa80c, - 0xa815, 0xa80e, 0xa7d4, 0xa7c7, 0xa814, 0xa7db, 0xa85f, 0xa7ed, - 0xa809, 0xa7cf, 0xa7ff, 0xa81a, 0xa7f5, 0xa7ee, 0xa7e5, 0xa80d, - 0xa7df, 0xa7ec, 0xa7d7, 0xa82c, 0xa7cd, 0xa7e3, 0xa800, 0xa7eb, - 0xa7fd, 0xa80f, 0xa82d, 0xa850, 0xa7fe, 0xa7c4, 0xa7e1, 0xa7f9, - 0xacbb, 0xacbc, 0x1194, 0x1193, 0xacba, 0xadd0, 0xadd6, 0xadce, - 0xade1, 0xadd5, 0xadcf, 0xadd3, 0x2c14, 0xadd4, 0xb0b5, 0xb190, - 0xb1a1, 0xb181, 0xb185, 0xb16e, 0xb188, 0xb182, 0xb186, 0xb18f, - 0xb189, 0xb180, 0xb184, 0x2dd1, 0xb329, 0xb32b, 0xb32a, 0xb330, - 0xb3e2, 0xb3e3, 0xb3e1, 0xb4d5, 0xb4c4, 0xb4c9, 0xb4e0, 0xb4df, - 0xb4cb, 0xb4dd, 0xb4e8, 0xb4d4, 0xb51c, 0xb6b5, - /* 0x43 */ - 0xb6b6, 0xb6e5, 0xb745, 0xb749, 0xb740, 0xb746, 0xb744, 0xb74a, - 0xb7c9, 0xb7c4, 0xb7c2, 0xb868, 0x30cb, 0xb882, 0xb86b, 0xb867, - 0xb86c, 0xb86d, 0xb871, 0x1392, 0xb9d7, 0xb9d2, 0xb9d9, 0x13aa, - 0xb9bc, 0xb9dd, 0xb9d6, 0x13a7, 0xb9d8, 0xbb20, 0xbb16, 0xbb18, - 0xbb15, 0xbb19, 0xbb27, 0xbb50, 0xbb1d, 0xbb2c, 0xbb1c, 0xbb29, - 0xbb2b, 0xbb24, 0x13ef, 0xbb28, 0xbd39, 0xbdf2, 0xbdf0, 0x31ed, - 0xbded, 0xbdef, 0xbdea, 0xbe01, 0xbfbc, 0xc05c, 0xc05b, 0xc05a, - 0xc026, 0xc243, 0xc233, 0xc23a, 0xc237, 0xc236, 0xc23c, 0xc234, - 0xc24a, 0xc23b, 0xc235, 0xc23d, 0xc240, 0xc23e, 0xc217, 0xc326, - 0xc324, 0xc310, 0xc336, 0xc325, 0x1522, 0xc466, 0xc77f, 0xc77a, - 0xc7fb, 0xc7fd, 0xc7fc, 0xc7fa, 0xc9d6, 0xc9d2, 0xc9c8, 0xc9c2, - 0xc9c7, 0xc9cd, 0xc9c1, 0xc9c6, 0xc9cc, 0xcaa1, - /* 0x44 */ - 0xcb95, 0xcb94, 0xcb97, 0xcb96, 0xcb93, 0xcba1, 0xcd09, 0xcd08, - 0xcd67, 0xcd65, 0xcd62, 0xcd61, 0xce97, 0xcf01, 0xcf19, 0xcf18, - 0xcf5c, 0xcf67, 0xcf6c, 0x16b5, 0xe3fd, 0xcf66, 0xcf61, 0xcf6e, - 0xcf5d, 0xcf5a, 0xd0a2, 0xd0a9, 0xd0a5, 0xd0a6, 0xd0b2, 0xd0a3, - 0xd1ac, 0xd1aa, 0xd1af, 0xd1ab, 0xd1b1, 0xd1c6, 0xd1ad, 0xd1b9, - 0xd370, 0x1775, 0xd70c, 0xd781, 0xd783, 0xd77e, 0xd851, 0xda99, - 0xda94, 0xda95, 0xddfe, 0xdf18, 0x3c05, 0x3e72, 0x0082, 0x3e99, - 0x3fad, 0x4106, 0x42c2, 0x42cb, 0x42d5, 0x42d2, 0x42cc, 0x42d7, - 0x42c5, 0x42ca, 0x1aec, 0x43a2, 0x43a3, 0x43a1, 0x1ae8, 0x43a6, - 0x43a4, 0x43ff, 0x4400, 0x0135, 0x4506, 0x4525, 0x459f, 0x467f, - 0x49ea, 0x49eb, 0x49de, 0x4a18, 0x49e0, 0x49e8, 0x49df, 0x49f1, - 0x49ec, 0x4a1a, 0x49e6, 0x49e1, 0x4a5d, 0x3b77, - /* 0x45 */ - 0x4a1e, 0x01f0, 0x4a80, 0x4d17, 0x4f1d, 0x4ef7, 0x4eef, 0x4eee, - 0x4eed, 0x4ef5, 0x4f1e, 0x50bd, 0x92ff, 0x50be, 0x516d, 0x5176, - 0x534c, 0x5319, 0x5348, 0x531e, 0x534a, 0x5349, 0x5326, 0x5495, - 0x5585, 0x557e, 0x5597, 0x557d, 0x5642, 0x569e, 0x570c, 0x570b, - 0x570e, 0x57cf, 0x59d8, 0x59e0, 0x59e8, 0x59e9, 0x59e2, 0x59e1, - 0x59da, 0x59e3, 0x59d9, 0x59f0, 0x59e7, 0x59e4, 0x5c23, 0x5c31, - 0x5c33, 0x5c0c, 0xa4e0, 0x5c26, 0x5c24, 0x5c32, 0x5c27, 0x5c21, - 0x5c30, 0x5ca2, 0x5ccc, 0x5d96, 0xe28f, 0x5d98, 0x5d9c, 0x5d9b, - 0x5e6b, 0x5f12, 0x5f14, 0x605a, 0x6054, 0x6051, 0x605e, 0x6058, - 0x04f0, 0x6059, 0x629a, 0x62f2, 0x62ad, 0x6320, 0x62f1, 0x62f0, - 0x62f3, 0x62f4, 0x62e9, 0x62fe, 0x632e, 0x62e8, 0x62e7, 0x62ff, - 0x62f5, 0x64e5, 0x64e7, 0x64e6, 0x64e9, 0x6558, - /* 0x46 */ - 0x676c, 0x67d9, 0x063e, 0x67cb, 0x0639, 0x67be, 0x67b5, 0x67d1, - 0x67c2, 0x67b6, 0x67d3, 0xe2c2, 0x69da, 0x06a2, 0x6aae, 0x06a1, - 0x6aac, 0x6aa9, 0x6aba, 0x6aa7, 0x6ab3, 0x6abd, 0x6ab1, 0x6c0e, - 0x6c11, 0x6c0f, 0x6d52, 0x6d6a, 0x6d54, 0x6d55, 0x6d53, 0x6d57, - 0xe2d0, 0x6d5b, 0x6d58, 0x6d59, 0x073b, 0x70b8, 0x70b5, 0x70bf, - 0x70c1, 0x70bb, 0x07b7, 0x70c3, 0x70ad, 0x70a8, 0x70ae, 0x70aa, - 0x70d0, 0x70b1, 0x70bc, 0x70b7, 0x70b0, 0x70fa, 0x70fb, 0x70b9, - 0x7407, 0x73fc, 0x73ff, 0x73f2, 0x73f8, 0x73f4, 0x0857, 0x0870, - 0x75ae, 0x760f, 0x7610, 0xd5c1, 0x76c7, 0x76c6, 0x76ce, 0x08a7, - 0x76dc, 0x79d5, 0x79d3, 0x7a20, 0x79e2, 0x79f1, 0x79db, 0x79ea, - 0x79eb, 0x79e1, 0x79ff, 0x79d6, 0x79e0, 0x79d7, 0x79e5, 0x0954, - 0x7e1b, 0x7e10, 0x7e0f, 0x7e0e, 0x7e39, 0x7e0a, - /* 0x47 */ - 0x7e14, 0x7e0c, 0x8023, 0x805a, 0x80e2, 0x8193, 0x81b0, 0x81ab, - 0x81bd, 0x81b1, 0x818d, 0x81ad, 0x81aa, 0x81ac, 0x81bc, 0x81c9, - 0x8347, 0x8362, 0x8340, 0x8344, 0x833f, 0x8343, 0x833d, 0x8360, - 0x835f, 0x833a, 0x8342, 0x835e, 0x835d, 0x84bc, 0x84e0, 0x84ee, - 0x84eb, 0x850d, 0x8609, 0x860c, 0x8669, 0x8674, 0x8667, 0x0b31, - 0x2427, 0x87ad, 0x88ff, 0x8916, 0x8908, 0x8909, 0x8900, 0x88fc, - 0x8913, 0x8914, 0x890a, 0xd33e, 0x8929, 0x8917, 0x893b, 0x88fb, - 0x0bbf, 0x890e, 0x0be4, 0x8b08, 0x8d1b, 0x8d1a, 0x8d19, 0x8d02, - 0x0c4a, 0x8d17, 0x8d07, 0x8d13, 0x8d09, 0x8d0a, 0x8d12, 0x8daa, - 0x8d38, 0x8e7b, 0x8e7c, 0x8e7a, 0x8eea, 0x8eeb, 0x8eef, 0x8ef0, - 0x9009, 0x9002, 0x9001, 0x902b, 0x9007, 0x0ccf, 0x9028, 0x8ffb, - 0x902a, 0x8ffe, 0x9004, 0x9029, 0x900a, 0x268c, - /* 0x48 */ - 0x91c2, 0x2691, 0x91a6, 0x0d14, 0x6ac6, 0x5707, 0x930a, 0x92fd, - 0x9306, 0x930d, 0x9309, 0x930b, 0x9300, 0x9305, 0x933d, 0x94d5, - 0x94bf, 0x94ba, 0x94c7, 0x9598, 0x959a, 0x0e0d, 0x96a4, 0x969c, - 0x969d, 0x96a2, 0x9696, 0x9695, 0x96a5, 0x96aa, 0x96ad, 0x969a, - 0x96a3, 0x9697, 0x9690, 0x96af, 0x968d, 0x0e01, 0x96a8, 0x96ee, - 0x99a3, 0x9999, 0x99a1, 0x999c, 0x99a4, 0x99cb, 0x9b56, 0x9b48, - 0x9b59, 0x9b4a, 0x9b5c, 0x0ef1, 0x9b4f, 0x9b4d, 0x9b5d, 0x9d3a, - 0x9de3, 0x9de1, 0x9dde, 0x9e97, 0x9e9a, 0x9f48, 0x9f4a, 0x9f4c, - 0x9f4e, 0x9f4f, 0x9f4b, 0x9f4d, 0x9f47, 0x9f51, 0x9fda, 0x9ff9, - 0x9ffc, 0x9ffb, 0x9ffd, 0x9ff8, 0x9ffa, 0xa08a, 0xa08e, 0xa088, - 0xa089, 0xa08d, 0xa090, 0xe37e, 0xa21c, 0xa2ab, 0xa2a4, 0xa2a8, - 0xa2ad, 0xa29f, 0xa29a, 0xa2b0, 0xa2a5, 0xa2d5, - /* 0x49 */ - 0xa2a2, 0xa2b2, 0xa29d, 0xa2a1, 0xa415, 0xa442, 0xa473, 0xa484, - 0xa4dd, 0xa55c, 0xa54c, 0x1076, 0xa54b, 0xa767, 0xa8a8, 0xa87f, - 0xa88d, 0xa88b, 0xa8f7, 0xa8a9, 0xa8f4, 0xa89a, 0xa88c, 0xa895, - 0xa87e, 0xa877, 0x110a, 0x1103, 0xa871, 0xa8fd, 0xa888, 0xa899, - 0xa86d, 0xa8d4, 0xa891, 0xa87d, 0xa863, 0xa875, 0xa8f9, 0xa88e, - 0xa874, 0xa8d9, 0xa866, 0xa8fa, 0xa8f5, 0x2b60, 0xacc1, 0xacc9, - 0xae03, 0xae2c, 0xae34, 0xae17, 0xae09, 0xae04, 0xae06, 0xae1a, - 0xae0e, 0xae27, 0xae05, 0xae07, 0xae19, 0xae14, 0xae0c, 0xae1d, - 0xae22, 0xae23, 0xb0bb, 0xb0bc, 0xb0ba, 0xb1a9, 0xb1b5, 0xb1ac, - 0xb1aa, 0xb1af, 0xb1b7, 0x1235, 0x1236, 0xb33d, 0xb345, 0xb348, - 0xb33c, 0xb33e, 0xb3ec, 0xb3ed, 0xb3e9, 0xb50a, 0xb50b, 0xb4f8, - 0xb504, 0xb4f6, 0xb4f9, 0xb753, 0xb752, 0xb760, - /* 0x4a */ - 0xb763, 0xb7ce, 0xb7cd, 0xb7d0, 0xb7cc, 0xb887, 0xb88d, 0xb89d, - 0x1373, 0xb963, 0xb9f4, 0xb9f1, 0xb9ff, 0xb9f5, 0xb9fc, 0xb9f2, - 0xb9f6, 0x13b1, 0xb9fa, 0x13af, 0xbb2e, 0xbb45, 0xbb43, 0xbb51, - 0xbb4c, 0xbb73, 0xbb47, 0xbb4b, 0xbb4f, 0x13f4, 0xbb44, 0xbb4d, - 0xbb4e, 0xbb4a, 0xbb41, 0xbb52, 0xbb9f, 0xbb54, 0xbb59, 0xbba2, - 0xbd4b, 0xbd48, 0xbe0d, 0xbe1f, 0xbe08, 0xbe0e, 0xbe1d, 0xbe04, - 0xbf18, 0xbf1b, 0xc066, 0xc062, 0xc083, 0xc067, 0xc262, 0xc24f, - 0xc24e, 0xc267, 0xc253, 0xc24d, 0xc24c, 0xc268, 0xc251, 0x14dc, - 0xc258, 0xc25b, 0xc250, 0xc26a, 0xc339, 0xc338, 0xc482, 0xc484, - 0xc486, 0xc780, 0xc786, 0xc825, 0xc811, 0x1599, 0xc80e, 0xc815, - 0xc80f, 0xc818, 0xc80d, 0xc813, 0xc816, 0xc819, 0xca08, 0xc9f7, - 0xc9fb, 0xc9fc, 0xcab4, 0xcabe, 0xcac1, 0xcba6, - /* 0x4b */ - 0xcba5, 0xcba2, 0xcba4, 0xcd12, 0xcd0e, 0xcd7a, 0xcd78, 0xcd7d, - 0xcd7e, 0xcd81, 0xcd83, 0xcd80, 0xcd82, 0xce9b, 0xce99, 0xce9c, - 0xce9a, 0xcea1, 0xcf1a, 0xcf1c, 0xcf8a, 0xcf79, 0xcf73, 0xcf75, - 0xcf7c, 0xcf78, 0xcf60, 0xcf83, 0xcf70, 0x16b6, 0x16bd, 0xcf87, - 0xcf84, 0xcf7b, 0xcf7e, 0xcf74, 0xd0b9, 0xd0b8, 0xd0b7, 0xd0b5, - 0xd1cc, 0xd1ce, 0xd1d1, 0x3504, 0xd1cb, 0x359b, 0xd37e, 0xd37a, - 0xd377, 0xd38c, 0xd3e1, 0xd520, 0xd51e, 0xd5c2, 0xd60f, 0xd600, - 0x17f4, 0xd610, 0xd70d, 0xd70e, 0xd78e, 0xd78d, 0xd78a, 0xd78b, - 0xd78c, 0xd78f, 0xd857, 0x1835, 0xd855, 0xd85b, 0xdaac, 0xdaa7, - 0xdaa0, 0xda9e, 0x18aa, 0xdd8d, 0x191f, 0xde93, 0xde94, 0xde92, - 0x3c81, 0x3ed6, 0x3ec3, 0x3ee4, 0x3ee2, 0x3f09, 0x3ebf, 0x3ec8, - 0x3ec7, 0x3fb5, 0x3fb2, 0x410c, 0x410b, 0x410a, - /* 0x4c */ - 0x4105, 0x42d3, 0x42e6, 0x42e9, 0x42f0, 0x42ea, 0x42e7, 0x43b1, - 0x43b3, 0x43b4, 0x43b0, 0x445c, 0x445d, 0x445e, 0x44c0, 0x45af, - 0x0150, 0x4686, 0x4683, 0x4684, 0x4a5c, 0x4a70, 0x4a8c, 0x4a7b, - 0x4a66, 0x4a79, 0x4a63, 0x4ac5, 0x4a6b, 0x4a6d, 0x4a72, 0x4a69, - 0x4a75, 0x4a89, 0x4ac6, 0x4aa5, 0x3ee7, 0x4a6a, 0x4a97, 0x4f5a, - 0x4f5c, 0x4f59, 0x4f24, 0x4f25, 0x4f30, 0x4f58, 0x4f31, 0x5076, - 0x50c1, 0x5185, 0x517d, 0x5365, 0x5387, 0x5352, 0x5354, 0x538a, - 0x5350, 0x5386, 0x534f, 0x5368, 0x549d, 0x55a0, 0x55ba, 0x55bd, - 0x55b8, 0x56a6, 0x037b, 0x57de, 0x57d8, 0x57d1, 0x5a13, 0x0409, - 0x5a0e, 0x5a1b, 0x5a3a, 0x0407, 0x5a1c, 0x5a12, 0x5a16, 0x5a1a, - 0x4f48, 0x5c4b, 0x5c37, 0x5c36, 0x5c38, 0x5c3a, 0x5c49, 0x5c3c, - 0x5c4a, 0x5db1, 0x5dc2, 0x5db5, 0x5dc4, 0x5db6, - /* 0x4d */ - 0x5f1e, 0x5f1f, 0x5faf, 0x606b, 0x606f, 0x6292, 0x62e4, 0x632c, - 0x62ef, 0x1e84, 0x634f, 0x6352, 0x6350, 0x633a, 0x6337, 0x6347, - 0x6364, 0x6340, 0x633c, 0x6345, 0x6341, 0x64f3, 0x05bb, 0x67c1, - 0x67b4, 0x064b, 0x682a, 0x6822, 0x6829, 0x064d, 0x683e, 0x683c, - 0x6830, 0x6ac7, 0x6ad5, 0x6ad6, 0x6ad3, 0x6ace, 0x6ac8, 0x6b5c, - 0x6b5f, 0x6b62, 0x06c2, 0x6bbd, 0x6bbf, 0x6d5c, 0x6db6, 0x071a, - 0x6d9d, 0x6d7f, 0x0712, 0x6d94, 0x6d81, 0x6e47, 0x6e46, 0x073c, - 0x6e94, 0x7175, 0x711a, 0x712a, 0x7132, 0x7117, 0x7123, 0x7174, - 0x07c3, 0x7176, 0x712e, 0x7125, 0x7120, 0x7171, 0x7116, 0x7170, - 0x712c, 0x712f, 0x711f, 0x7164, 0x07c0, 0x7408, 0x7414, 0x740a, - 0x740b, 0x754f, 0x7559, 0x7554, 0x7551, 0x75b6, 0x76ec, 0x76ed, - 0x76ea, 0x79ee, 0x7a5a, 0x7a73, 0x7a65, 0x7a61, - /* 0x4e */ - 0x7a55, 0x7a6b, 0x7a64, 0x7a5b, 0x7a4c, 0x7a6f, 0x7a84, 0x7a70, - 0x7e5d, 0x7e57, 0x7e66, 0x7e53, 0x7e98, 0x7e97, 0x8028, 0x80eb, - 0x80ea, 0x80e8, 0x80ec, 0x80ef, 0x81d1, 0x81ca, 0x229f, 0x81cf, - 0x81cd, 0x81ce, 0x8370, 0x8367, 0x8373, 0x836d, 0x8376, 0x8379, - 0x836a, 0x838b, 0x8372, 0x8371, 0x836e, 0x837a, 0x8516, 0x8539, - 0x853b, 0x8610, 0x8696, 0x867b, 0x867c, 0x867d, 0x87be, 0x895c, - 0x8938, 0x8939, 0x892e, 0x8934, 0x8932, 0x895b, 0x8933, 0x893c, - 0x0be5, 0x8b0e, 0x8b0f, 0x8b10, 0x8b87, 0x8d5b, 0x8d53, 0x0c5f, - 0x8d5c, 0x8d3f, 0x8d59, 0x8d4a, 0x8d44, 0x8d4c, 0x8d40, 0x8d5f, - 0x8d5e, 0x8d4e, 0x8d54, 0x8d43, 0x8d87, 0x8e82, 0x8e85, 0x9031, - 0x9047, 0x902e, 0x902f, 0x9048, 0x9034, 0x0d18, 0x409f, 0x9332, - 0x9336, 0x9333, 0x9331, 0x9340, 0x9341, 0x94dd, - /* 0x4f */ - 0x94d2, 0x94d9, 0x0dad, 0x94df, 0x94db, 0x94d8, 0x94d3, 0x94de, - 0x94e0, 0x94d4, 0x94d7, 0x94da, 0x95a7, 0x96fe, 0x96dd, 0x9740, - 0x96e2, 0x0e1e, 0x96d6, 0x96de, 0x96ef, 0x0e27, 0x96eb, 0x96ea, - 0x96e4, 0x96d1, 0x0e18, 0x96ec, 0x96fa, 0x96d9, 0x96f3, 0x96e1, - 0x96dc, 0x96e5, 0x96df, 0x96d4, 0x0e20, 0x9705, 0x99d6, 0x99d5, - 0x99d0, 0x99c8, 0x99c4, 0x99c9, 0x99cd, 0x99d2, 0x99cc, 0x99ca, - 0x9ba0, 0x9b92, 0x0ef4, 0x0f02, 0x9b8b, 0x9ba1, 0x9b95, 0x9b88, - 0x9b86, 0x9b8d, 0x9b85, 0x9b91, 0x9b89, 0x9ba2, 0x9df0, 0x9df3, - 0x9df4, 0x9def, 0x9e06, 0x9ea2, 0x9f5e, 0x9f63, 0x9f60, 0x9f5b, - 0x9f7b, 0x9f58, 0x9f59, 0x9f5d, 0xa005, 0xa006, 0xa002, 0xa003, - 0xa004, 0xa0a2, 0xa0a7, 0xa0a6, 0xa0a4, 0xa0ac, 0xa0a9, 0xa2e7, - 0xa301, 0xa2df, 0xa2d9, 0xa2e3, 0xa30f, 0xa41a, - /* 0x50 */ - 0xa445, 0xa448, 0xa47b, 0xa485, 0xa486, 0xa4fe, 0xa4ff, 0xa564, - 0xa571, 0xa572, 0xa561, 0xa562, 0xa56c, 0xa560, 0xa55d, 0xa563, - 0xa567, 0xa901, 0xa92a, 0xa930, 0xa906, 0xa97d, 0xa922, 0xa9b9, - 0xa90a, 0xa910, 0xa88f, 0xa980, 0xa913, 0xa92e, 0xa918, 0xa917, - 0xa91a, 0xa914, 0xa947, 0xa963, 0xa938, 0x1124, 0xa97f, 0xa921, - 0xa937, 0xa931, 0xa91b, 0xa9a5, 0xaa6c, 0xacd3, 0xae88, 0xae6e, - 0xae5c, 0xae74, 0xae54, 0xae83, 0x2c70, 0xae65, 0xae60, 0xae70, - 0xae6f, 0xae6d, 0xae72, 0xae6c, 0xae76, 0xae75, 0xae59, 0xaec7, - 0xb0c1, 0xb0f9, 0xb1e3, 0xb1e7, 0xb1d6, 0xb1cf, 0xb1da, 0xb1e9, - 0xb1d2, 0xb355, 0xb34f, 0xb34d, 0xb351, 0xb356, 0xb3f9, 0xb3f8, - 0xb406, 0xb403, 0xb409, 0xb3f7, 0xb3f5, 0xb547, 0xb545, 0xb53e, - 0xb546, 0xb529, 0xb534, 0xb53f, 0xb544, 0xb535, - /* 0x51 */ - 0xb55a, 0xb52a, 0xb533, 0xb537, 0xb543, 0xb539, 0xb530, 0xb55d, - 0xb532, 0xb527, 0xb6bd, 0xb6ba, 0xb6bc, 0xb6f1, 0xb6f0, 0xb761, - 0xb75c, 0xb758, 0xb75d, 0xb7da, 0xb7d9, 0xb7dd, 0xb7dc, 0xb7de, - 0x137d, 0xb8a0, 0xb8a2, 0xba0f, 0xba13, 0xba12, 0xba11, 0xba14, - 0xba19, 0xba0e, 0xba17, 0xba21, 0xba20, 0xba16, 0xbb78, 0x3137, - 0xbb87, 0xbb79, 0xbb80, 0xbb77, 0xbb81, 0xbb46, 0xbb7a, 0xbb9c, - 0xbb83, 0xbb84, 0xbbad, 0xbb9d, 0xbb9e, 0xbd55, 0xbe36, 0xbe2b, - 0xbe27, 0xbe46, 0xbe2c, 0xbe45, 0xbe33, 0xbe2d, 0xbe34, 0xbe22, - 0x1464, 0xbf1f, 0xc0b3, 0xc08c, 0xc08f, 0xc0af, 0xc0ad, 0xc08e, - 0xc0ac, 0xc0b0, 0xc0b1, 0xc0ae, 0xc099, 0xc1eb, 0xc274, 0xc275, - 0xc28e, 0xc26d, 0xc270, 0xc28c, 0xc34f, 0xc351, 0xc358, 0xc34c, - 0xc34e, 0xc415, 0xc4be, 0xc4db, 0xc4b3, 0xc4ae, - /* 0x52 */ - 0xc787, 0xc78a, 0xc788, 0xc78b, 0xc78c, 0xc844, 0xc82d, 0xc82a, - 0xc831, 0xc82c, 0xc845, 0xc830, 0xc829, 0xc846, 0xc9f4, 0xca14, - 0xca10, 0xca0f, 0xca12, 0xca0b, 0xca0c, 0xca0a, 0xca13, 0xca0e, - 0xcad9, 0xcad0, 0x3403, 0xcbc1, 0xcbbf, 0xcbbd, 0xcbbc, 0xcbba, - 0xcbbb, 0xcbd1, 0xcbbe, 0xcbd0, 0xcbb9, 0xcd1a, 0xcd1c, 0xcd1b, - 0xcd91, 0xcd96, 0xcd9f, 0xcd9c, 0xcd9a, 0xcd9d, 0xcead, 0xcea5, - 0xceae, 0xcf03, 0xcf26, 0xcf20, 0xcf23, 0xcf24, 0xcf21, 0xcf28, - 0xcf25, 0xcf1e, 0xcf94, 0xcf93, 0xcf8f, 0xcf9a, 0xcfad, 0x16c2, - 0xd0ca, 0xd0c5, 0xd1bb, 0xd1e1, 0xd1ea, 0xd1e4, 0xd1ed, 0xd1e6, - 0xd1e0, 0xd1e8, 0xd1e5, 0xd31a, 0xd394, 0xd396, 0xd39e, 0xd395, - 0xd3a1, 0xd38e, 0xd39b, 0xd392, 0xd397, 0xd399, 0xd393, 0xd532, - 0xd52f, 0xd52e, 0xd533, 0xd61c, 0xd61e, 0xd611, - /* 0x53 */ - 0xd620, 0xd61f, 0xd619, 0xd616, 0xd7ac, 0xd7b9, 0xd7b3, 0xd7a6, - 0xd7a2, 0xd7a9, 0xd7a7, 0xd86c, 0xd86d, 0xd869, 0xd880, 0xd866, - 0xd865, 0xd871, 0xd86b, 0xdabd, 0xdac1, 0xdad3, 0xdab6, 0x18ac, - 0xdab9, 0xdad4, 0xdab7, 0xdadb, 0xdab8, 0xdac0, 0xdabc, 0xdad5, - 0xdabf, 0xdac3, 0xdac9, 0xdd58, 0xdd90, 0xdd95, 0xdd97, 0xde09, - 0xde08, 0xde06, 0xde05, 0xde10, 0xde97, 0xde95, 0xdeee, 0xdf1f, - 0xe41a, 0x564b, 0x3c8e, 0x3ee8, 0x3ef0, 0x3ef4, 0x3f06, 0x3eed, - 0x009b, 0x3ee9, 0x3f00, 0x3fb8, 0x406d, 0x4304, 0x4301, 0x4303, - 0x4302, 0x1af6, 0x0126, 0x4462, 0x45ba, 0x4613, 0x4ade, 0x4ad7, - 0x4ae4, 0x4ace, 0x4ae3, 0x4add, 0x4b3a, 0x4adb, 0x4ad6, 0x4ae0, - 0x4ad4, 0x4acb, 0x4ae1, 0x4ac9, 0x4adf, 0x4b3c, 0x4afc, 0x4acf, - 0x4f79, 0x4f76, 0x4f78, 0x5187, 0x539c, 0x53b1, - /* 0x54 */ - 0x53c1, 0x539a, 0x5392, 0x0daf, 0x53c2, 0x5396, 0x53c0, 0x5391, - 0x5395, 0x54a2, 0x55c3, 0x55c0, 0x55c2, 0x468a, 0x56b0, 0x5716, - 0x5a46, 0x5a4a, 0x5a3e, 0x5a45, 0x5a42, 0x0415, 0x5a5b, 0x5a44, - 0x5b04, 0x7b22, 0x5c55, 0x5c57, 0x5c51, 0x5c4e, 0x5c5a, 0x5dc6, - 0x5dc3, 0x049c, 0x5dc5, 0x5dcc, 0x5e71, 0x5f26, 0x5fb2, 0x607a, - 0x6084, 0x607b, 0x6374, 0x638c, 0x6351, 0x6348, 0x638d, 0x6392, - 0x6398, 0x6393, 0x63b0, 0x634e, 0x6396, 0x6397, 0x639c, 0x63ca, - 0x6833, 0x6883, 0x6884, 0x689a, 0x688c, 0x20cc, 0x6899, 0x69e0, - 0x6ae4, 0x6af8, 0x6aed, 0x6af3, 0x6af4, 0x6af5, 0x6afd, 0x6c19, - 0x6d9e, 0x6dc4, 0x6d9f, 0x6e9b, 0x6e9f, 0x6e9a, 0x71aa, 0x719d, - 0x7192, 0x71a2, 0x71af, 0x71eb, 0x71a0, 0x71a1, 0x7194, 0x7198, - 0x718f, 0x7187, 0x7184, 0x71a9, 0x717c, 0x7418, - /* 0x55 */ - 0x755f, 0x7562, 0x7561, 0x75c0, 0x7615, 0x76fc, 0x76f9, 0x7ac8, - 0x7ac9, 0x7ade, 0x7aca, 0x7ae2, 0x0964, 0x096e, 0x7b04, 0x7acc, - 0x7add, 0x7ae4, 0x7ad3, 0x7ac7, 0x7ac6, 0x095f, 0x7b37, 0x7ed8, - 0x7eee, 0x7eb2, 0x7ea3, 0x7eb3, 0x7eed, 0x7ef8, 0x8031, 0x805b, - 0x8066, 0x8069, 0x8096, 0x809b, 0x80f7, 0x80f3, 0x80f4, 0x80f5, - 0x81e2, 0x81e7, 0x81e5, 0x81e9, 0x81e6, 0x81e3, 0x8374, 0x837f, - 0x838f, 0x8390, 0x8397, 0x83a3, 0x838e, 0x8398, 0x838c, 0x8542, - 0x8544, 0x8569, 0x8543, 0x8568, 0x0af6, 0x868d, 0x8688, 0x868b, - 0x8689, 0x87cc, 0x881f, 0x8980, 0x895e, 0x8967, 0x8968, 0x8965, - 0x254a, 0x8974, 0x8969, 0x8961, 0x8962, 0x896c, 0x8993, 0x8986, - 0x8a9d, 0x8a9b, 0x8b1b, 0x8b16, 0x8b19, 0x8b14, 0x8b18, 0x8b15, - 0x8b99, 0x8b98, 0x8d5d, 0x8d89, 0x8d7a, 0x8d7d, - /* 0x56 */ - 0x8d4b, 0x0c73, 0x8d78, 0x8d7f, 0x8d77, 0x8d7e, 0x8d79, 0x8dab, - 0x8d7c, 0x8d74, 0x8d75, 0x8da7, 0x8e8d, 0x904e, 0x9066, 0x9061, - 0x904d, 0x904f, 0x0cdd, 0x9054, 0x907c, 0x91da, 0x91de, 0x91d8, - 0x91dd, 0x91df, 0x9366, 0x9362, 0x935f, 0x9364, 0x9363, 0x9360, - 0x9388, 0x936a, 0x9367, 0x9387, 0x933f, 0x936c, 0x936e, 0x93ad, - 0x94f1, 0x94f4, 0x94f6, 0x94f5, 0x94f8, 0x94fb, 0x94ec, 0x94ef, - 0x94ed, 0x27b9, 0x94f7, 0x94f9, 0x94fd, 0x95b1, 0x9736, 0x971b, - 0x9732, 0x9742, 0x974d, 0x971f, 0x9721, 0x971c, 0x9731, 0x972e, - 0x9747, 0x973b, 0x9741, 0x9718, 0x9739, 0x971d, 0x9727, 0x9723, - 0x28d7, 0x99ee, 0x99e8, 0x99e5, 0x99ef, 0x99e4, 0x99ec, 0x99f0, - 0x9bd7, 0x9bd8, 0x9bd4, 0x9bca, 0x9bd2, 0x9bcb, 0x9bd3, 0x9be6, - 0x9be2, 0x9d49, 0x9d48, 0x9dff, 0x9e09, 0x9eb0, - /* 0x57 */ - 0x9eaf, 0x9f7c, 0x9f78, 0x9f7a, 0x9f72, 0x9f79, 0x9f7e, 0xa00c, - 0xa00b, 0xa0cd, 0xa0be, 0xa0bc, 0xa0bf, 0xa0c0, 0xa0bd, 0xa338, - 0xa308, 0xa305, 0xa33b, 0xa310, 0xa30c, 0xa30d, 0xa304, 0xa33a, - 0xa313, 0xa337, 0xa339, 0xa41f, 0xa44b, 0xa4ee, 0xa575, 0xa578, - 0xa57c, 0xa574, 0xa576, 0xa5ea, 0xa5eb, 0xa8fb, 0xa919, 0xa9a7, - 0xa98c, 0xa9dc, 0xa998, 0xa9be, 0xa99e, 0xaa0f, 0xa99f, 0xa9dd, - 0xa993, 0xa9bb, 0xa9b6, 0xa990, 0xa9a1, 0xa9bd, 0xa9de, 0xa93a, - 0xaa22, 0xa997, 0xa994, 0xa9c3, 0xa98e, 0xa9a8, 0xa999, 0xa9ad, - 0xa99b, 0xa9a2, 0xaa21, 0xa9ac, 0xaa0e, 0xaa31, 0xace1, 0xacde, - 0xacdf, 0xacdc, 0xacdd, 0xacec, 0xace7, 0xae69, 0xaeb8, 0xaea1, - 0xaea8, 0xaeba, 0xaec2, 0xaea6, 0xaea4, 0xaea3, 0xaeab, 0xaebc, - 0xaeb7, 0xaebf, 0xaead, 0xaeb1, 0xaeca, 0xaec4, - /* 0x58 */ - 0xaeb9, 0xb0c8, 0xb0c6, 0xb0c7, 0xb20a, 0xb20d, 0xb1fb, 0xb203, - 0xb202, 0xb1fc, 0xb1f9, 0xb1f8, 0xb36e, 0xb363, 0xb362, 0xb361, - 0xb36b, 0x1288, 0xb36f, 0xb366, 0xb36c, 0xb40e, 0xb415, 0xb416, - 0xb410, 0xb417, 0xb411, 0xb56e, 0xb56c, 0xb587, 0xb583, 0xb563, - 0xb5dc, 0xb6c0, 0xb6f7, 0xb6fa, 0xb770, 0xb76a, 0xb768, 0xb769, - 0xb784, 0xb7ec, 0xb7e7, 0xb7ee, 0xb8ba, 0xb8b2, 0xb8b5, 0xb8cb, - 0x430b, 0xb8d0, 0xb96d, 0xb96c, 0x13bb, 0xba45, 0xba46, 0xba34, - 0xba2c, 0xba35, 0xba44, 0x13ba, 0xba76, 0xbbb1, 0xbbaa, 0xbba1, - 0xbbb2, 0x1412, 0xbba6, 0xbbb5, 0xbbb4, 0xbbb8, 0xbbaf, 0xbbb0, - 0xbba3, 0xbd62, 0xbd64, 0xbe56, 0xbe51, 0xbe4f, 0xbe68, 0xbe4c, - 0xbe50, 0x1461, 0xbe48, 0xbe4a, 0xbf21, 0xc0e3, 0xc0b9, 0xc0de, - 0xc0b7, 0xc0e1, 0xc0b6, 0xc0b5, 0xc0df, 0x14e1, - /* 0x59 */ - 0xc297, 0xc29a, 0xc29b, 0xc298, 0xc292, 0xc293, 0xc2d7, 0xc273, - 0xc36b, 0xc374, 0xc378, 0xc36d, 0xc418, 0xc4e9, 0xc4f5, 0xc4ea, - 0xc52e, 0xc4e7, 0xc4fe, 0xc4e5, 0xc536, 0xc4f0, 0xc4e6, 0xc52c, - 0xc789, 0xc795, 0xc793, 0xc84d, 0xc84a, 0xc84f, 0xc850, 0xc84b, - 0xca2a, 0xca2b, 0xca2f, 0xca2e, 0xca7c, 0xcaed, 0xcae2, 0xcbe0, - 0xcbdc, 0xcbda, 0xcbd6, 0xcbf4, 0xcbd9, 0xcbd5, 0xcd22, 0xcd21, - 0xcd24, 0xcd25, 0xcd26, 0xcd23, 0xcdaa, 0xcdaf, 0xcdb0, 0xcdab, - 0xceaf, 0xceb7, 0xceb5, 0xceb2, 0xceb3, 0xcf2b, 0xcfd8, 0xcfc2, - 0xcfaf, 0xcfbc, 0xcfb8, 0xcfbe, 0xcfb7, 0xcfb4, 0xcfbf, 0xcfb3, - 0xcfb1, 0xcfbb, 0xcfbd, 0xcfd6, 0xcfdd, 0xd0d8, 0xd0d3, 0xd0d5, - 0xd0e3, 0xd0e2, 0xd0d9, 0xd0de, 0xd0df, 0xd0da, 0xd0d4, 0xd1f3, - 0xd1e2, 0xd20d, 0xd201, 0xd205, 0xd21a, 0xd203, - /* 0x5a */ - 0xd21f, 0xd216, 0xd1fa, 0xd1fc, 0xd20a, 0x359f, 0xd3bc, 0xd3ca, - 0xd3b6, 0xd3c7, 0xd3bf, 0x1789, 0xd3b9, 0x178c, 0xd3b0, 0xd3b8, - 0xd3bd, 0xd391, 0xd3bb, 0xd3be, 0xd53e, 0xd53d, 0xd638, 0xd63d, - 0xd639, 0xd633, 0xd733, 0xd7bb, 0xd7c6, 0xd7c5, 0xd7c7, 0xd7cb, - 0xd7a8, 0xd7c8, 0xd7be, 0xd7c1, 0xd7bd, 0xd882, 0xd89e, 0xd881, - 0xd884, 0x368d, 0xd896, 0xd88e, 0xd888, 0xd887, 0xdae0, 0xdb0d, - 0xdadf, 0xdae4, 0xdae2, 0xdadd, 0xdaec, 0xdade, 0xdae7, 0xdaea, - 0xdae3, 0xdd5c, 0x3977, 0xdd5d, 0xdd9c, 0xde1d, 0xde9d, 0xde9e, - 0xde9b, 0xdeb5, 0xdeb9, 0xdeb6, 0xdef3, 0xdef2, 0xdef4, 0xdf26, - 0xdf27, 0xdf25, 0xe006, 0xe00b, 0xe03a, 0xe03c, 0x3f0a, 0x3f0b, - 0x3fbf, 0x3ffd, 0x4118, 0xccdf, 0x8e90, 0x419e, 0x42fc, 0x4310, - 0x430f, 0x430d, 0x43b9, 0x43b7, 0x43ba, 0x440a, - /* 0x5b */ - 0x4b41, 0x4b8b, 0x4b46, 0x4b53, 0x4be2, 0x4b3f, 0x4a7c, 0x4b4b, - 0x4b4e, 0x4b8a, 0x4b47, 0x4f93, 0xb8ce, 0x4f8c, 0x4faf, 0x4fc9, - 0x50c6, 0x50c8, 0x5191, 0x53cf, 0x53d4, 0x53ce, 0x55dd, 0x55d4, - 0x5a49, 0x5a63, 0x5a5d, 0x041a, 0x5a67, 0x5abb, 0x5a60, 0x5a80, - 0x5c5f, 0x5c60, 0x5dda, 0x5dd2, 0x5ddd, 0x608e, 0x6088, 0x606c, - 0x639e, 0x63c9, 0x63a4, 0x0598, 0x63d9, 0x63d2, 0x63da, 0x63dd, - 0x63ce, 0x63fc, 0x6514, 0x6560, 0x68d7, 0x68cb, 0x68cd, 0x68d5, - 0x69e7, 0x6b00, 0x6b0a, 0x6b0f, 0x6b02, 0x6b01, 0x6c1d, 0x6dca, - 0x6dcb, 0x6dcd, 0x6e4f, 0x6e9c, 0x7180, 0x720d, 0x7202, 0x07f1, - 0x7207, 0x71f7, 0x71f8, 0x71fd, 0x7224, 0x71fb, 0x7239, 0x723a, - 0x7422, 0x21a9, 0x756a, 0x756d, 0x7574, 0x770e, 0x7adf, 0x7b2b, - 0x7ae3, 0x7b26, 0x7b2a, 0x7b23, 0x7b35, 0x7b4a, - /* 0x5c */ - 0x7efd, 0x7f00, 0x7f1e, 0x7eff, 0x809e, 0x80fa, 0x81f1, 0x8395, - 0x83a8, 0x83a6, 0x856e, 0x8583, 0x856d, 0x868f, 0x0b6a, 0x87df, - 0x87d5, 0x87e0, 0x87d3, 0x87d8, 0x898c, 0x254b, 0x8994, 0x8996, - 0x8985, 0x898f, 0x89a9, 0x898e, 0x8990, 0x89b8, 0x89c3, 0x89bb, - 0x8aa5, 0x8aa2, 0x25a2, 0x8aa3, 0x8bb5, 0x8bac, 0x8ba8, 0x8dad, - 0x8db8, 0x8db4, 0x8dae, 0x8db6, 0x1085, 0x8dc1, 0x8dbf, 0x8e92, - 0x8f00, 0x8f01, 0x9075, 0x9072, 0x9078, 0x9070, 0x907e, 0x907d, - 0x907f, 0x91ef, 0x936d, 0x938e, 0x938f, 0x938a, 0x938d, 0x9395, - 0x938b, 0x938c, 0x93b0, 0x9393, 0x94fc, 0x9515, 0x950e, 0x9518, - 0x9511, 0x950d, 0x95bb, 0x95b3, 0x0e39, 0x97a1, 0x979a, 0x9784, - 0x97a0, 0x9786, 0x979d, 0x97aa, 0x9778, 0x978d, 0x978a, 0x97a6, - 0x977a, 0x9797, 0x9788, 0x978e, 0x0e3d, 0x0e44, - /* 0x5d */ - 0x9776, 0x9781, 0x9785, 0x9775, 0x97a8, 0x978f, 0x9791, 0x97a2, - 0x979c, 0x9789, 0x977f, 0x9796, 0x9779, 0x979f, 0x97a7, 0x0e46, - 0x9787, 0x979b, 0x97a5, 0x978b, 0x97c9, 0x99ff, 0x9a03, 0x9a00, - 0x9a02, 0x9a04, 0x9a05, 0x99e6, 0x9a1f, 0x9c14, 0x0f0e, 0x9c0c, - 0x9c0f, 0x9c19, 0x9c0b, 0x9c13, 0x9bd5, 0x0f10, 0x9c1c, 0x9d50, - 0x9d4e, 0x9e12, 0x9eb9, 0x9f85, 0x9f88, 0x9f90, 0xa013, 0xa0d0, - 0xa0d1, 0xa0d2, 0xa0d7, 0xa0d6, 0xa0e5, 0xa346, 0xa36b, 0xa345, - 0xa33f, 0xa33e, 0x103e, 0xa36a, 0xa368, 0xa34c, 0xa423, 0xa422, - 0xa497, 0xa491, 0x95b5, 0xa498, 0xa49c, 0xa589, 0x1084, 0xa58b, - 0xa58a, 0xa58d, 0xa58e, 0xa588, 0xaa4e, 0xaa44, 0xaa37, 0xaa75, - 0xaa54, 0xaa76, 0xaa34, 0xaa6b, 0xaa32, 0xaa57, 0xaa52, 0xaa45, - 0x1149, 0xa9b1, 0xaa4b, 0xaa47, 0xaa33, 0xaa40, - /* 0x5e */ - 0xaa3c, 0xaa43, 0xaa4f, 0xaa55, 0xaa41, 0xaab2, 0xaac0, 0xaf34, - 0xaef9, 0xaf19, 0xaf0d, 0xaefa, 0xaf1e, 0xaf1f, 0xaf0e, 0xaf40, - 0xaf08, 0x11df, 0xaf13, 0xaf4c, 0x11f0, 0xb0cc, 0xb0cb, 0xb224, - 0xb225, 0xb23d, 0xb220, 0xb227, 0xb226, 0xb21d, 0xb21e, 0xb232, - 0xb26c, 0xb259, 0x128a, 0xb37a, 0xb379, 0xb41b, 0xb42e, 0xb423, - 0xb420, 0xb41f, 0xb5b6, 0xb5b9, 0xb5a1, 0xb5a3, 0xb5a8, 0xb5af, - 0xb59a, 0xb599, 0xb5a2, 0xb59d, 0x1302, 0xb5ab, 0xb6c9, 0xb6fe, - 0xb700, 0xb6fc, 0xb707, 0xb775, 0xb772, 0xb773, 0xb774, 0xb7fa, - 0xb7fc, 0xb7f8, 0xb7f6, 0xb7fb, 0xb8cd, 0xb8d1, 0xb8cf, 0xb974, - 0xb972, 0xb973, 0xba54, 0xba51, 0x13c0, 0xba53, 0xba49, 0xba4c, - 0xba4a, 0xba4f, 0xba56, 0xbc00, 0xbbd5, 0xbbd7, 0xbbff, 0xbbd9, - 0xbbe3, 0xbbd3, 0x1415, 0xbbd8, 0xbbd4, 0xbbde, - /* 0x5f */ - 0xbd71, 0xbe74, 0xbe88, 0xbe7f, 0xbe6b, 0xbe87, 0xbe79, 0xbe78, - 0xbe89, 0xbe80, 0xbe76, 0xbf29, 0xbf28, 0xbf2f, 0xc0e5, 0xc104, - 0xc103, 0xc0f0, 0xc0e8, 0xc0ea, 0xc0f1, 0xc101, 0xc102, 0xc2a9, - 0xc2ab, 0xc2b7, 0xc2b6, 0x14e2, 0xc3a0, 0xc38e, 0xc386, 0xc387, - 0xc385, 0xc38b, 0xc388, 0xc390, 0xc41a, 0xc434, 0xc537, 0xc52f, - 0xc530, 0xc539, 0xc534, 0xc533, 0xc585, 0xc584, 0xc53a, 0xc79f, - 0xc869, 0xc86c, 0xc86a, 0xc867, 0xc86b, 0xca3f, 0xca40, 0xcb0b, - 0xcbd2, 0xcbf8, 0xcc01, 0xcbfa, 0xcc16, 0xe3f6, 0xcd2c, 0xcd2d, - 0xcd2f, 0xcd2e, 0xcdc1, 0xcdf5, 0xcdc4, 0xcdde, 0xcdcc, 0xcdd2, - 0xcdc2, 0xcdcd, 0xcdcf, 0xcddd, 0xcdc8, 0xceba, 0xcebe, 0xcebf, - 0xcf2e, 0xcf30, 0xcfe7, 0xcfee, 0xcfe8, 0xcfe6, 0xcfe2, 0xcfe4, - 0xcffb, 0xcffc, 0xcfea, 0xd0ed, 0xd0f6, 0xd0f3, - /* 0x60 */ - 0xd0f4, 0xd0f1, 0xd0f7, 0xd0f5, 0xd0ea, 0xd0eb, 0xd200, 0xd22c, - 0xd212, 0xd23d, 0xd233, 0x174d, 0xd230, 0xd240, 0xd231, 0xd257, - 0x174a, 0xd235, 0xd232, 0xd22d, 0xd236, 0xd238, 0xd262, 0xd25f, - 0xd28a, 0xd3d6, 0xd3d8, 0xd3dd, 0xd3e4, 0xd3e3, 0xd54d, 0xd5d7, - 0xd64a, 0xd64c, 0xd650, 0xd64b, 0xd64e, 0xd64f, 0xd739, 0xd7d2, - 0xd7cd, 0xd7d3, 0xd7e1, 0xd7ce, 0xd7d5, 0xd7dd, 0xd7d4, 0xd7cf, - 0xd8cb, 0xd8a6, 0xd8c2, 0xd8a5, 0xd8a9, 0xd8a2, 0xd8a4, 0xd8b0, - 0xd8cc, 0xd8af, 0xd8bf, 0xdb24, 0xdb1a, 0xdb14, 0xdb3a, 0xdb20, - 0xdb1b, 0xdb21, 0xdb25, 0xdb1e, 0xdb3f, 0xdb40, 0xdb18, 0xdb2c, - 0xdb15, 0xdb2d, 0xdb1f, 0xdb29, 0xdb4b, 0xddb3, 0xdda5, 0xdda7, - 0xddab, 0xdda6, 0xddaa, 0xde22, 0xde23, 0xdea1, 0xdea3, 0xdea0, - 0xdebd, 0xdeba, 0xdefa, 0xdef8, 0xdefc, 0xdef6, - /* 0x61 */ - 0xdf34, 0xdf43, 0x1963, 0xdfd4, 0xe00d, 0xe043, 0xe041, 0xe03d, - 0xe040, 0xe03e, 0xe03f, 0xe046, 0x1993, 0xe0d4, 0x3f35, 0x3f36, - 0x3f32, 0x3f3a, 0x3fc8, 0x4036, 0x411e, 0x411d, 0x411f, 0x431c, - 0x431d, 0x4320, 0x010e, 0x43c0, 0x4b9a, 0x4b93, 0x4bdd, 0x020a, - 0x4ba3, 0x4ba9, 0x4b9c, 0x4b9b, 0x020d, 0x4b97, 0x4fb1, 0x4fca, - 0x4fb3, 0x4fcd, 0x53ea, 0x53ee, 0x53ef, 0x55df, 0x5650, 0x56bb, - 0x5a88, 0x5a89, 0x5a8c, 0x5a85, 0x5a5e, 0x5a94, 0x5a95, 0x5c6b, - 0x5c6a, 0x5c69, 0x5de3, 0x5df1, 0x5f37, 0x5f33, 0x6091, 0x608f, - 0x6097, 0x63d4, 0x63de, 0x63d3, 0x63e0, 0x6443, 0x640b, 0x63ff, - 0x6404, 0x6407, 0x68f9, 0x68fa, 0x68fb, 0x68f8, 0x6b12, 0x6b10, - 0x6c1f, 0x6ddf, 0x6de3, 0x6e52, 0x6ea9, 0x7265, 0x7287, 0x7242, - 0x7252, 0x724c, 0x719f, 0x7201, 0x7248, 0x724f, - /* 0x62 */ - 0x727e, 0x724d, 0x7258, 0x7247, 0x725e, 0x7249, 0x724e, 0x725d, - 0x725a, 0x7286, 0x7251, 0x7429, 0x74a6, 0x74a7, 0x7570, 0x756f, - 0x75d3, 0x75d2, 0x7728, 0x771b, 0x771a, 0x771c, 0x7721, 0x7b32, - 0x7b66, 0x7b7d, 0x7b73, 0x7b7f, 0x7b65, 0x7b80, 0x7b61, 0x7b75, - 0x7b6e, 0x7b67, 0x7b71, 0x7b6c, 0x7b63, 0x7b62, 0x7b83, 0x7bb2, - 0x7b81, 0x7b6f, 0x7b6b, 0x7b82, 0x7b8a, 0x7f29, 0x7f30, 0x7f31, - 0x8097, 0x8100, 0x80ff, 0x83b6, 0x83b5, 0x83c3, 0x858d, 0x8618, - 0x869c, 0x869a, 0x8699, 0x89b7, 0x89c4, 0x89c6, 0x89c7, 0x89bc, - 0x89c0, 0x89c5, 0x89cd, 0x89c1, 0x89be, 0x8aa7, 0x8ab8, 0x8b23, - 0x0c74, 0x8de8, 0x8dde, 0x8de3, 0x8def, 0x8ddc, 0x8de4, 0x8de1, - 0x8de5, 0x8e95, 0x8e94, 0x8e93, 0x8e8e, 0x9098, 0x909c, 0x9099, - 0x90a0, 0x909e, 0x9204, 0x93d3, 0x93b4, 0x93bb, - /* 0x63 */ - 0x93b7, 0x93b8, 0x93bd, 0x93b6, 0x93b9, 0x93b5, 0x9522, 0x9521, - 0x95c3, 0x95bc, 0x97ff, 0x97e5, 0x97f7, 0x97d2, 0x9800, 0x97db, - 0x97f0, 0x97e2, 0x97cd, 0x0e56, 0x97e1, 0x97f2, 0x97dc, 0x97cc, - 0x97d6, 0x97f3, 0x97fa, 0x97f6, 0x97ec, 0x97ea, 0x97e3, 0x97d0, - 0x0e5a, 0x9795, 0x97d5, 0x97f4, 0x97cb, 0x97da, 0x97c8, 0x97df, - 0x97f5, 0x97cf, 0x97c7, 0x97d7, 0x9a24, 0x0ea3, 0x9a1c, 0x9a21, - 0x9a1e, 0x9a18, 0x9a1b, 0x0ea8, 0x9c46, 0x9c4b, 0x9c48, 0x9c47, - 0x9c67, 0x9c54, 0x9e15, 0x9e22, 0x9ec5, 0x9e29, 0x9ec7, 0x9f8d, - 0xa01b, 0xa020, 0xa0e2, 0xa0e7, 0xa0e8, 0xa0e1, 0xa372, 0xa37b, - 0xa374, 0xa371, 0xa379, 0xa375, 0xa390, 0xa377, 0xa37d, 0xa44f, - 0xa450, 0xa4a3, 0xa4a2, 0xa4f4, 0xa594, 0xa59a, 0xa59b, 0xa5a7, - 0xa597, 0xa595, 0xa592, 0xa59c, 0xa596, 0xaab6, - /* 0x64 */ - 0xaab8, 0xaab0, 0xab18, 0xaac5, 0xaab5, 0xaac2, 0xab06, 0xab19, - 0xaab9, 0xab15, 0xaad6, 0xaaac, 0x113c, 0xaac6, 0xaab3, 0xaac3, - 0xaaca, 0xaacf, 0xaabd, 0xaace, 0xab14, 0xaaba, 0xab1a, 0xaac1, - 0xaabb, 0x119b, 0x119a, 0xad01, 0xacfc, 0xaf5a, 0xaf54, 0xaf61, - 0xaf5c, 0xaf55, 0xaf4a, 0xaf4b, 0xaf51, 0xaf69, 0xaf6b, 0x2cf1, - 0xaf66, 0xaf58, 0xaf5d, 0xaf67, 0xaf56, 0xaf88, 0xaf64, 0xaf4e, - 0xb257, 0xb25a, 0xb251, 0xb24a, 0xb24b, 0x125e, 0xb247, 0xb26f, - 0xb26a, 0xb26b, 0xb246, 0xb26d, 0xb254, 0xb26e, 0xb24c, 0xb378, - 0xb386, 0xb382, 0x12a7, 0xb5e1, 0xb5e5, 0xb5db, 0xb5de, 0xb5d7, - 0xb703, 0xb77c, 0xb77e, 0xb805, 0xb807, 0xb8e6, 0xb8e1, 0xb8fb, - 0xb8e5, 0xb8e7, 0xb8df, 0xb8ff, 0xb976, 0xba63, 0xba66, 0xba65, - 0xba5e, 0xba64, 0xba6b, 0xba5f, 0xba67, 0xba68, - /* 0x65 */ - 0xbc08, 0xbc09, 0xbc17, 0xbc15, 0xbc1b, 0xbc0b, 0xbc28, 0xbc0e, - 0xbc18, 0xbc53, 0xbc45, 0xbc0d, 0xbc0a, 0xbc13, 0xbc4a, 0xbd79, - 0xbea1, 0xbe8d, 0xbea2, 0xbe90, 0x146e, 0xbf31, 0xbf30, 0xc11f, - 0xc119, 0xc10c, 0xc11e, 0xc11d, 0xc107, 0xc266, 0xc2c5, 0xc2ba, - 0xc2bd, 0xc2c2, 0xc2c3, 0xc2bf, 0x150d, 0xc3a1, 0xc3a2, 0xc3a8, - 0xc3a3, 0xc3aa, 0xc3af, 0xc3b9, 0xc437, 0xc58f, 0x1543, 0xc58e, - 0xc587, 0xc58a, 0xc592, 0xc597, 0xc59f, 0xc605, 0xc7a9, 0xc7a7, - 0xc88a, 0xc882, 0xc885, 0xc88b, 0xc889, 0xc881, 0xc880, 0xc887, - 0xc886, 0xca4d, 0xcb1c, 0xcb1f, 0xcc21, 0xcc1d, 0xcc22, 0xcbfe, - 0xcc1b, 0xcc3a, 0xcc37, 0xcc17, 0xcc38, 0xcc26, 0xcc18, 0xcd34, - 0xcd35, 0xcd32, 0x1673, 0xcde1, 0xcdfd, 0xcde3, 0xcde8, 0xcdf9, - 0xcdff, 0xcdfe, 0x1674, 0xcde0, 0xce00, 0x1670, - /* 0x66 */ - 0xcdec, 0xcde4, 0xcdef, 0xcdfa, 0xceca, 0xcf31, 0xcf32, 0xcf34, - 0xcf41, 0xd000, 0xd006, 0xd008, 0xd005, 0xd003, 0xd00b, 0xd002, - 0xd00a, 0xd0f0, 0xd113, 0xd10a, 0xd10f, 0xd111, 0xd108, 0xd10b, - 0xd112, 0xd10d, 0xd25b, 0xd263, 0xd261, 0xd268, 0xd25a, 0xd34e, - 0xd34d, 0xd350, 0xd3fc, 0xd412, 0xd3f5, 0xd41e, 0xd3f0, 0xd3f3, - 0xd3f2, 0xd401, 0xd3ef, 0xd3ee, 0xd416, 0xd3f6, 0xd3fb, 0xd41c, - 0x17db, 0xd55d, 0xd560, 0xd566, 0xd55f, 0xd561, 0xd55b, 0xd562, - 0xd557, 0xd669, 0xd66b, 0xd661, 0xd677, 0xd65f, 0xd663, 0xd662, - 0xd665, 0xd7ef, 0xd7e2, 0xd800, 0xd7e8, 0xd7f2, 0xd7e7, 0x1829, - 0xd7e5, 0xd8d5, 0xd8d0, 0xd8da, 0xd8d3, 0x1851, 0xd8d9, 0xd8cf, - 0xd8d6, 0xd8d8, 0xd8f5, 0xd8ce, 0xd8d7, 0xd8f4, 0xd8cd, 0xd901, - 0x36ba, 0xdb52, 0xdb55, 0xdb5a, 0xdb4d, 0xdb54, - /* 0x67 */ - 0xdb53, 0xdb5e, 0xdb67, 0xdb65, 0xdb4e, 0x18db, 0xdb4f, 0xdb61, - 0xdb6e, 0xdb51, 0xdb5b, 0xdd63, 0xddb7, 0xddb6, 0xddc3, 0xddbb, - 0xddb5, 0xde2e, 0xde30, 0xde33, 0xde31, 0xdea4, 0xdec1, 0xdebb, - 0xdebe, 0xdf00, 0xdeff, 0xdf40, 0x1965, 0xdf3f, 0xdf44, 0x1964, - 0x1967, 0xdfdb, 0xe00f, 0xe011, 0xe04e, 0xe04d, 0xe04b, 0xe04c, - 0xe095, 0x3f3b, 0x3f45, 0x3f44, 0x3f3e, 0x3f3c, 0x3f3f, 0x3fcc, - 0x3fce, 0x4122, 0x4123, 0x419f, 0x43c5, 0x43c4, 0x4be9, 0x4b99, - 0x0211, 0x4be6, 0x4be7, 0x4bf7, 0x4fd2, 0x0333, 0x53fd, 0x540c, - 0x540b, 0x57ed, 0x0421, 0x0422, 0x5a9b, 0x5b0a, 0x5c6f, 0x5c75, - 0x5df2, 0x5df8, 0x5f3e, 0x6424, 0x640e, 0x6416, 0x6418, 0x6410, - 0x6431, 0x6444, 0x05a6, 0x6429, 0x642f, 0x644b, 0x6436, 0x05a3, - 0x6934, 0x6900, 0x692b, 0x6b20, 0x6b21, 0x6b1e, - /* 0x68 */ - 0x6b1d, 0x6df5, 0x6df2, 0x6df6, 0x7290, 0x729d, 0x729c, 0x7292, - 0x7294, 0x72d1, 0x7293, 0x72b7, 0x7297, 0x72b0, 0x729f, 0x72c9, - 0x742d, 0x742c, 0x7577, 0x772c, 0x7bc0, 0x7bb9, 0x7f53, 0x8040, - 0x8202, 0x81fb, 0x0aa1, 0x858b, 0x85ae, 0x85ab, 0x86a1, 0xddcd, - 0x87ea, 0x89dd, 0x89dc, 0x89d9, 0x8aab, 0x8aac, 0x8aad, 0x8ab2, - 0x8b2c, 0x8b2b, 0x8bc2, 0x8e00, 0x8e0d, 0x8e06, 0x8dff, 0x8e03, - 0x8e01, 0x8e10, 0x8e0f, 0x8e05, 0x8e98, 0x8e97, 0x8e96, 0x8e99, - 0x90ac, 0x90ab, 0x9212, 0x93d8, 0x93df, 0x93d6, 0x952d, 0x9532, - 0x983f, 0x982f, 0x9826, 0x983a, 0x9839, 0x0e5f, 0x983b, 0x9835, - 0x982a, 0x9821, 0x9838, 0x9837, 0x9834, 0x0e5c, 0x9822, 0x9836, - 0x9844, 0x9a45, 0x9a3b, 0x9a36, 0x9a42, 0x9c7a, 0x9c86, 0x9c8b, - 0x9c7f, 0x9c81, 0x9e2a, 0x9ed5, 0x9f9f, 0x9f9d, - /* 0x69 */ - 0xa026, 0xa0f4, 0xa0f5, 0xa315, 0xa38e, 0xa38f, 0xa426, 0xa4a7, - 0xa4af, 0xa5ad, 0xa5ac, 0xa5ab, 0xa5aa, 0xab2f, 0xab21, 0xab23, - 0xaba3, 0xab49, 0xab3a, 0xab48, 0xab2d, 0xab25, 0xab29, 0xab32, - 0xab34, 0xab24, 0xab2c, 0xab4b, 0xab3b, 0xab20, 0xab28, 0xaf98, - 0x11f5, 0xaf97, 0x2d04, 0xaf9d, 0xafa8, 0xb0d5, 0xb277, 0xb278, - 0xb272, 0xb273, 0xb302, 0xb43b, 0xb5fe, 0xb60b, 0xb5ff, 0xb607, - 0x1311, 0x130c, 0xb630, 0xb6cd, 0xb6cf, 0xb710, 0xb70a, 0xb783, - 0xb815, 0xb80e, 0xb80c, 0xb902, 0xb8fe, 0xb905, 0xb915, 0xb908, - 0xba7f, 0xba77, 0xba7c, 0xba82, 0xba7e, 0xba78, 0xba7d, 0xba79, - 0xba81, 0xbc4b, 0xbc63, 0xbc64, 0xbc56, 0xbc54, 0xbc4e, 0xbc10, - 0xbc4f, 0xbc57, 0xbc5e, 0xbc51, 0xbc6a, 0xbc69, 0xbead, 0xbea4, - 0xbeac, 0xbea9, 0xbeae, 0x3f4c, 0xc150, 0xc135, - /* 0x6a */ - 0xc132, 0xc2d8, 0xc2d1, 0xc2cf, 0xc2be, 0xc3d5, 0xc3c1, 0xc3c6, - 0xc3c3, 0xc3c2, 0xc3c0, 0xc3c5, 0xc3c7, 0xc3bf, 0xc3c4, 0xc3d4, - 0xc590, 0xc5d2, 0x154e, 0xc5d4, 0xc7af, 0xc7ae, 0xc7b2, 0xc7ad, - 0xc89c, 0xc8a0, 0xc8b6, 0xca3d, 0xca56, 0xca82, 0xcb28, 0xcb2b, - 0xcc3c, 0xcc3e, 0xcc3f, 0xcc42, 0xcc3d, 0xcc41, 0xcc3b, 0xcc49, - 0xcc43, 0xcd39, 0xcd38, 0xce22, 0xce08, 0xce0c, 0xce06, 0xce13, - 0xce04, 0xce20, 0xce1d, 0xce05, 0xce0a, 0xced6, 0xced7, 0xcf36, - 0xcf37, 0xd023, 0xd022, 0xd020, 0xd01a, 0xd01d, 0xd11c, 0xd120, - 0xd177, 0xd27f, 0xd28b, 0xd27d, 0xd299, 0xd284, 0xd289, 0xd285, - 0xd283, 0xd286, 0xd29e, 0xd353, 0xd417, 0x1794, 0xd419, 0xd420, - 0xd41f, 0xd423, 0xd418, 0xd421, 0xd429, 0xd424, 0xd426, 0xd55e, - 0xd56f, 0xd56e, 0xd574, 0xd572, 0xd573, 0xd67d, - /* 0x6b */ - 0xd67e, 0xd685, 0xd67f, 0xd684, 0xd744, 0xd7f5, 0xd7f8, 0xd803, - 0xd7f6, 0xd928, 0x1863, 0xd939, 0xd8fb, 0xd90e, 0xd8fd, 0xd91f, - 0x1861, 0xd903, 0x36d8, 0xd910, 0x185a, 0xd90d, 0xd927, 0xd941, - 0xdb72, 0xdb78, 0xdb80, 0x18e3, 0xdb85, 0xdb7b, 0x387c, 0xdb7d, - 0xdb91, 0xdb88, 0xdbaa, 0xdb8d, 0xdb89, 0xdb95, 0xdb9b, 0xdb8c, - 0xdb9e, 0xdb7c, 0xdb86, 0xdb84, 0xdd68, 0xddc5, 0xddc4, 0xddc9, - 0xddc6, 0xde42, 0xde45, 0xde41, 0xde44, 0xdea6, 0xdec2, 0xdf42, - 0xdf49, 0xdf48, 0xdf4a, 0xdf4c, 0xdf4b, 0xe017, 0xe018, 0xe015, - 0xe052, 0xe054, 0xe053, 0xe09a, 0xe09b, 0xe0dc, 0xe0e4, 0xe191, - 0x19af, 0xe1ba, 0x3f51, 0x3f5b, 0x3fcf, 0x6e05, 0x4c13, 0x4c15, - 0x4c14, 0x4c23, 0x0213, 0x4c11, 0x4c12, 0x0280, 0x4ff0, 0x519b, - 0x5412, 0x5416, 0x5417, 0x54b5, 0x57f4, 0x5ab1, - /* 0x6c */ - 0x5c79, 0x5dff, 0x5dfc, 0x5dfb, 0x5f3f, 0x5f44, 0x609d, 0x6432, - 0x644c, 0x642b, 0x645a, 0x651f, 0x6901, 0x692d, 0x6927, 0x6959, - 0x695a, 0x694d, 0x6958, 0x6b23, 0x6b25, 0x6b2b, 0x6dff, 0x6eae, - 0x72cb, 0x72ca, 0x72d0, 0x72ce, 0x72cc, 0x72d8, 0x72c6, 0x72d2, - 0x72cf, 0x72c8, 0x7617, 0x19b0, 0x7bc4, 0xcd40, 0x7be9, 0x7bf2, - 0x7bfc, 0x7bea, 0x7beb, 0x7bfd, 0x7f78, 0x7f77, 0x7f73, 0x7f9e, - 0x7f79, 0x80a2, 0x8103, 0x8204, 0x8205, 0x83ce, 0x85bf, 0x89f6, - 0x89f7, 0x8b31, 0x8b30, 0x8bc9, 0x8bc7, 0x8e1c, 0x8e28, 0x8e1a, - 0x8e1e, 0x8e1b, 0x8e1f, 0x90bf, 0x90bb, 0x90bc, 0x90c0, 0x921a, - 0x93ef, 0x93ec, 0x93e9, 0x93f0, 0x93fe, 0x9534, 0x986a, 0x9895, - 0x986c, 0x9872, 0x9867, 0x9860, 0x986b, 0x985e, 0x986f, 0x9866, - 0x2946, 0x9862, 0x985d, 0x985c, 0xe365, 0x9a50, - /* 0x6d */ - 0x9c9f, 0x0f23, 0x9c9e, 0x9ca6, 0x9e35, 0x9e38, 0x9e36, 0x9e3a, - 0x9edc, 0xa37c, 0xa3ab, 0x1049, 0xa3a8, 0xa3a7, 0xa42b, 0xa42c, - 0xa428, 0x442b, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4f8, 0xa5b1, 0xa5f0, - 0xa5ef, 0xaba8, 0xab8b, 0xab94, 0xab9e, 0xab8f, 0xab88, 0xab7e, - 0xab81, 0xab30, 0xab9b, 0xab82, 0xab90, 0xab85, 0xab7f, 0xaba9, - 0xabde, 0xad0d, 0x11fa, 0xafcf, 0xafcb, 0xafd8, 0xafdd, 0xafd3, - 0xafd0, 0xafd5, 0xafd6, 0xb0d6, 0xb292, 0xb295, 0xe0cb, 0xb28d, - 0xb29b, 0xb29d, 0xb28f, 0xb29e, 0xb2a6, 0xb396, 0xb392, 0xb616, - 0xb62a, 0xb629, 0xb62c, 0xb715, 0xb712, 0xb711, 0xb713, 0xb788, - 0xb78b, 0xb78a, 0xb787, 0xb817, 0xb816, 0xb81a, 0xb919, 0xb917, - 0xba91, 0xba94, 0xbc8b, 0xbc90, 0xbc8f, 0xbc86, 0xbc83, 0xbc8e, - 0xbc87, 0xbca8, 0xbc85, 0xbca6, 0xbc82, 0xbca7, - /* 0x6e */ - 0xbeb9, 0xbeb7, 0xbeb4, 0xbeb6, 0xbeb3, 0xbec6, 0xc13c, 0xc140, - 0xc138, 0xc291, 0xc2a6, 0xc2da, 0xc3da, 0xc3d8, 0xc3d9, 0xc3db, - 0xc3d7, 0xc616, 0xc612, 0xc61f, 0x1559, 0xc614, 0xc61a, 0xc610, - 0xc7b3, 0xc8ae, 0xc8c1, 0xc8b0, 0xc8af, 0xc8b1, 0xc8ad, 0xc8b2, - 0xc8c4, 0xcb3c, 0xcb3f, 0xcc61, 0xcc66, 0xcd3c, 0xcd3b, 0xce2c, - 0x167e, 0xce2a, 0xce3e, 0xce2f, 0xce32, 0xce27, 0xce29, 0xce40, - 0xcedf, 0xcede, 0xcf3c, 0xcf3b, 0xcf3e, 0xd021, 0xd046, 0xd03c, - 0xd036, 0xd038, 0xd035, 0xd131, 0xd136, 0xd12d, 0xd133, 0xd12f, - 0xd12e, 0xd135, 0xd2ac, 0xd2a9, 0xd2a6, 0x17a8, 0xd44c, 0xd443, - 0xd441, 0xd44f, 0xd442, 0xd451, 0x17a9, 0xd440, 0xd450, 0xd445, - 0xd44a, 0xd44b, 0xd583, 0xd582, 0xd581, 0xd5e0, 0xd698, 0xd69f, - 0xd69b, 0xd69a, 0xd699, 0xd696, 0xd6ae, 0xd69e, - /* 0x6f */ - 0xd809, 0xd80d, 0xd94e, 0xd94a, 0xd94d, 0xd940, 0xd93e, 0xd948, - 0xd942, 0xd962, 0xd945, 0xd951, 0xdbc6, 0xdbd0, 0xdbc0, 0xdbb7, - 0xdbc2, 0xdbbc, 0xdbc5, 0xdbdc, 0xdbdb, 0xdbd2, 0xdbc7, 0xdbb6, - 0xdbc9, 0xdbcc, 0xdbd1, 0xdbcd, 0xdbda, 0xdbba, 0xdbd3, 0xdbce, - 0xdbf6, 0xdbbd, 0xdbdd, 0xdbc8, 0xdc0d, 0xdc35, 0xdd71, 0xdd6e, - 0xdd6f, 0xddd6, 0xde4c, 0xde4f, 0xde54, 0xde53, 0xdec9, 0xdec8, - 0xdf03, 0x1954, 0xdf04, 0x1956, 0xdf57, 0xdf52, 0xdf53, 0x196d, - 0xdf56, 0xdf5c, 0xdf55, 0xe064, 0xe05d, 0xe05e, 0xe0a2, 0xe0a3, - 0x198e, 0xe0e7, 0xe0e6, 0xe198, 0xe1ac, 0xe1af, 0xe1ae, 0x3f59, - 0x40a9, 0x432a, 0x43c7, 0x4c41, 0x4c37, 0x4c35, 0x4c33, 0x4c39, - 0x4c32, 0x4fff, 0x5001, 0x4ff8, 0x541b, 0x5419, 0x56bf, 0x5abc, - 0x5abe, 0x5abd, 0x5c7d, 0x5f46, 0x5f47, 0x60a4, - /* 0x70 */ - 0x6521, 0x6562, 0x6986, 0x0672, 0x6b2f, 0x6b31, 0x0814, 0x72f8, - 0x72f5, 0x72f9, 0x72f2, 0x72fa, 0x72f3, 0x7314, 0x72fd, 0x730f, - 0x730e, 0x7301, 0x7437, 0x7435, 0x7434, 0x7431, 0x757a, 0x757b, - 0x7737, 0x7c2b, 0x7bfb, 0x7c16, 0x7c13, 0x0993, 0x7c11, 0x7c0f, - 0x7c1b, 0x7c38, 0x7fa4, 0x8209, 0x8207, 0x820b, 0x83d3, 0x83d1, - 0x83d8, 0x861d, 0x86a9, 0x86d0, 0xad15, 0x8a02, 0x8a05, 0x8a01, - 0x8a00, 0x8e2e, 0x8e30, 0x8e2f, 0x8e31, 0x90d2, 0x90d3, 0x9402, - 0x9540, 0x9542, 0x953b, 0x95ce, 0x9898, 0x988f, 0x9894, 0x9891, - 0x0e6f, 0x98ba, 0x9890, 0x9886, 0x989a, 0x988c, 0x9893, 0x9887, - 0x9888, 0x9897, 0x988d, 0x989c, 0x98bd, 0x9a3c, 0x9a59, 0x0eb0, - 0x9cd1, 0x9cbb, 0x9cbe, 0x9d5d, 0x9ee2, 0xa105, 0xa3ba, 0x012e, - 0xa3f4, 0xa4b2, 0xa4f9, 0xa5b7, 0xa5b6, 0xab89, - /* 0x71 */ - 0xabf9, 0xabd9, 0xabe8, 0xabd4, 0xabdb, 0xabe2, 0xabdf, 0xabd1, - 0xabe9, 0xabea, 0xad13, 0xad11, 0xaffa, 0xaff8, 0xaff4, 0xaffb, - 0xb00e, 0xb002, 0xb00f, 0xb290, 0xb2ad, 0xb2a9, 0xb448, 0xb65a, - 0xb64f, 0xb64e, 0xb655, 0xb654, 0xb64a, 0xb6d5, 0xb718, 0xb78d, - 0xb81d, 0xb819, 0xb926, 0xb928, 0xb92b, 0xb97d, 0xbaa0, 0xba9a, - 0xba9b, 0xbcb5, 0xbcad, 0xbcb2, 0xbd94, 0xbec9, 0xc14e, 0xc14f, - 0xc144, 0xc152, 0xc3e9, 0xc439, 0x1569, 0x337e, 0xc8c7, 0xc8d3, - 0xc8c6, 0xc8c3, 0x15b4, 0xc8d2, 0xca66, 0xcc7f, 0xcc80, 0xcc84, - 0xcc85, 0xcce3, 0x164d, 0xcd41, 0xcd44, 0xcd43, 0xce4e, 0xce4f, - 0x1683, 0xce49, 0xce4a, 0xce4b, 0xce43, 0xcee0, 0xcee5, 0xcee1, - 0xcee6, 0xcee2, 0xcf0c, 0xcf40, 0xd049, 0xd04a, 0xd054, 0xd04c, - 0xd055, 0xd056, 0xd13b, 0xd13d, 0xd2a4, 0xd2a8, - /* 0x72 */ - 0xd2c3, 0xd2bf, 0xd2c8, 0xd2c2, 0xd2ca, 0xd2cc, 0xd2c9, 0xd2be, - 0xd2cd, 0xd2c7, 0xd2c5, 0xd35d, 0x17b0, 0xd46c, 0xd46b, 0xd470, - 0xd46d, 0xd46f, 0xd489, 0xd484, 0xd58d, 0xd58a, 0xd58e, 0xd591, - 0xd6b5, 0xd6b1, 0xd6af, 0xd6b9, 0xd6b7, 0xd6b0, 0x180c, 0xd717, - 0x1818, 0xd74f, 0xd819, 0xd810, 0xd818, 0xd811, 0xd81c, 0xd812, - 0xd976, 0xd971, 0x3720, 0xd97a, 0xd97f, 0x3722, 0xd973, 0xd9ab, - 0x371e, 0xd977, 0xd974, 0xd97e, 0xd99b, 0xd984, 0xd97c, 0xdc29, - 0xdc2b, 0xdc0e, 0xdc00, 0xdc0b, 0xdbfe, 0xdbfa, 0xdc17, 0xdbff, - 0xdc0c, 0xdc0f, 0x18f5, 0xdc02, 0xdc01, 0xdbfc, 0xdc49, 0xdc06, - 0xdc12, 0xdc13, 0xdd78, 0xde5b, 0xde62, 0xde5f, 0xde5d, 0xdeab, - 0xded5, 0xded4, 0xded3, 0xdf07, 0xdf6c, 0xdf70, 0xdf6e, 0xdf68, - 0xdf6d, 0xdf77, 0xdf6a, 0xdfce, 0xdfec, 0xe069, - /* 0x73 */ - 0xe068, 0xe0a6, 0xe0a9, 0xe0aa, 0xe100, 0xe10d, 0xe0f8, 0xe0fc, - 0xe10a, 0xe0f7, 0xe101, 0xe1b6, 0xe1bb, 0xe1b7, 0xe1b9, 0xe1ca, - 0x3f69, 0x4125, 0x4c59, 0x5007, 0x5009, 0x5422, 0x5607, 0x5604, - 0x6e0f, 0x57f8, 0x5ac7, 0x5ad1, 0x5c7e, 0x5e08, 0x5f4a, 0xe298, - 0x5fb9, 0x6988, 0x6991, 0x6984, 0x6973, 0x6989, 0x6985, 0x6b33, - 0x6e13, 0x731d, 0x731f, 0x731c, 0x7320, 0x731a, 0x731b, 0x7439, - 0x74af, 0x75e5, 0x773c, 0x7c37, 0x7c3a, 0x7fbb, 0x0a0e, 0x8210, - 0x820d, 0x86af, 0x8711, 0x0bd8, 0x8a0d, 0x8a0c, 0x8a0b, 0x8bd4, - 0x8e3d, 0x8e3e, 0x8e3b, 0x8e43, 0x8e40, 0x8e46, 0x8f11, 0x90dd, - 0x90df, 0x90ea, 0x924a, 0x9406, 0x98c1, 0x98b9, 0x98c6, 0x98b8, - 0x98bb, 0x98c8, 0x98c5, 0x98bf, 0x98c7, 0x98c4, 0x9a65, 0x9a67, - 0x9cd7, 0x9cdb, 0x9cd4, 0x9cd6, 0x9ee8, 0xa10a, - /* 0x74 */ - 0xa5bd, 0xa5be, 0xac1a, 0xac0d, 0xac0f, 0xac1b, 0xac10, 0xac11, - 0xac13, 0xad18, 0xb020, 0xb01f, 0xb023, 0xb01d, 0xb037, 0xb025, - 0xb024, 0xb02a, 0xb027, 0xb033, 0xb028, 0xb034, 0xb2ba, 0x2e70, - 0xb39d, 0xb44c, 0xb65c, 0xb66a, 0xb65d, 0xb665, 0xb663, 0xb65e, - 0xb719, 0xb797, 0xb93f, 0xb933, 0xb932, 0xbaa1, 0xbaa5, 0xbaa4, - 0xbaa2, 0xbcc1, 0x142c, 0xbcc7, 0xbcc4, 0xbcc6, 0xbcc5, 0xbcd4, - 0xbcca, 0xc153, 0xc3f1, 0xc421, 0x156e, 0xc6b7, 0xc692, 0xc8d4, - 0xca44, 0xcc98, 0xcc9b, 0xcc91, 0xcc95, 0xcc9a, 0xcc92, 0xce53, - 0xce57, 0x1686, 0xce5c, 0xce5d, 0xce64, 0xceea, 0xceed, 0xcf42, - 0xcf43, 0xd064, 0xd061, 0xd060, 0xd17d, 0xd2d4, 0xd2d5, 0xd2d9, - 0xd487, 0xd499, 0xd48c, 0xd48a, 0xd48f, 0x17b3, 0xd48b, 0xd482, - 0xd49b, 0x17eb, 0xd6c8, 0xd6c4, 0xd6cc, 0xd6c7, - /* 0x75 */ - 0xd6c3, 0xd6c6, 0xd6cb, 0xd6ca, 0xd6c9, 0xd6cd, 0xd753, 0xd821, - 0xd829, 0xd81d, 0xd824, 0xd828, 0x3743, 0xd9b1, 0xd9b2, 0xd9b5, - 0xd9d6, 0xd9af, 0xd9ca, 0xd9b8, 0xe412, 0xe411, 0xdc45, 0xdc47, - 0xdc34, 0xdc6e, 0xdc42, 0xdc31, 0xdc2e, 0xdc56, 0xdc38, 0xdc37, - 0xdc4b, 0xdc2d, 0xdc33, 0xdc36, 0x38e0, 0xdc48, 0xdddc, 0x1942, - 0xde66, 0xde6d, 0xde63, 0xde64, 0x1941, 0xde67, 0xded9, 0xdf0b, - 0xdf7e, 0xdf8b, 0xe026, 0xe02c, 0xe029, 0xe06f, 0xe06b, 0xe06d, - 0xe06e, 0xe11c, 0xe111, 0xe110, 0xe124, 0xe112, 0xe115, 0xe117, - 0x19ac, 0x3f6f, 0x40ab, 0x432e, 0x43c9, 0x4696, 0x4c85, 0x51a0, - 0x542b, 0x5e0d, 0x6b36, 0x3afd, 0x072f, 0x072e, 0x6eb1, 0x734a, - 0x7337, 0x733c, 0x7338, 0x733a, 0x733e, 0x7349, 0x084d, 0x087b, - 0x7580, 0x757f, 0x75e3, 0x773f, 0x7c52, 0x7c4e, - /* 0x76 */ - 0x7c4a, 0x7c4b, 0x7fd5, 0x85d8, 0x8620, 0x86b3, 0x86b1, 0x86b0, - 0x8a17, 0x8bd9, 0x8e49, 0x8f13, 0x90ed, 0x90eb, 0x90ee, 0x940a, - 0x940b, 0x954a, 0x98d5, 0x98d7, 0x98de, 0x98dc, 0x98ee, 0x9a70, - 0x0eb2, 0x9cd9, 0x9ed7, 0xa3cb, 0xa3c7, 0xa4fc, 0xac3b, 0xac39, - 0xac4b, 0xac43, 0xac40, 0xac46, 0xb04d, 0xb043, 0xb047, 0xb04b, - 0xb055, 0xb052, 0xb65f, 0x1322, 0xb67c, 0xb67b, 0xbaa8, 0xbaa9, - 0xbcde, 0xbcd7, 0xbcdd, 0xbcd6, 0xbcd8, 0xbd9b, 0xbee0, 0xbee8, - 0xbee6, 0xc3f8, 0xc3fb, 0xc6bb, 0x3259, 0xc6b8, 0x1570, 0xc7c1, - 0xc7c0, 0xcca4, 0xccab, 0xcd4d, 0xce65, 0xce67, 0xce6a, 0xce66, - 0xce69, 0xd073, 0xd080, 0xd06f, 0xd071, 0xd2e4, 0xd2e6, 0xd2e7, - 0xd4a0, 0xd4a4, 0xd5a2, 0xd5a7, 0xd5a4, 0xd6de, 0xd6db, 0xd758, - 0xd75c, 0xd82f, 0xd82e, 0xd9dd, 0xd9e4, 0xd9d8, - /* 0x77 */ - 0xd9e7, 0xd9da, 0xd975, 0x1895, 0xdc79, 0xdc80, 0xdc7f, 0xdc7c, - 0xdc75, 0xdc7b, 0xdc82, 0x1900, 0xdc89, 0xdc74, 0xdc7d, 0xdc7a, - 0xdc86, 0xdca8, 0xdc72, 0x1902, 0xdc8b, 0xdc91, 0xdcb3, 0xdc81, - 0xdd82, 0xdde1, 0xdde3, 0xdde2, 0xde76, 0xde74, 0xde72, 0xde75, - 0xdf0e, 0xdf0d, 0xdf94, 0xdf92, 0xdf93, 0xdf91, 0xdf8f, 0xdf95, - 0xdfd0, 0xdff7, 0xe076, 0xe0af, 0x199f, 0xe126, 0xe125, 0xe12d, - 0xe1a0, 0xe1c3, 0x3fd7, 0x45cc, 0x4c79, 0x4c7a, 0x5015, 0x5adb, - 0x5c85, 0x6470, 0x647b, 0x69a5, 0x699f, 0x6e17, 0x6eb2, 0x7339, - 0x7340, 0x734e, 0x743e, 0x75e8, 0x75e7, 0x7c66, 0x7c61, 0x7fda, - 0x8214, 0x83df, 0x8a18, 0x8b39, 0x8b3a, 0x9230, 0x9232, 0x940e, - 0x954c, 0x98e8, 0x98f1, 0x98eb, 0x98ec, 0x9a74, 0x9a73, 0x9cf1, - 0x9e42, 0x9e3e, 0x9e41, 0xa02c, 0xa3d2, 0xa4bb, - /* 0x78 */ - 0xac58, 0xac57, 0xac56, 0xac5a, 0x117d, 0xb061, 0xb068, 0xb065, - 0xb05f, 0xb064, 0xb05e, 0xb05b, 0xb067, 0xb2c3, 0xb3a2, 0xb453, - 0xb67d, 0xb720, 0xbaae, 0xbaaf, 0xbab0, 0xbce7, 0xbce6, 0xbce9, - 0xbef1, 0xbeeb, 0xbeea, 0xbee9, 0xc163, 0xc402, 0xc3fe, 0xc6de, - 0xc7c2, 0xc8e6, 0xca5d, 0xccad, 0xce75, 0xce72, 0xce77, 0x16f6, - 0xd151, 0xd2e8, 0xd2ed, 0xd2ee, 0xd4b9, 0xd4a1, 0xd4b6, 0xd5ae, - 0xd6e8, 0x1812, 0xd71e, 0xd831, 0xd832, 0x1891, 0xda0e, 0xda12, - 0xda09, 0xda05, 0x1890, 0xda03, 0xda1f, 0xda0d, 0xda0c, 0xda04, - 0xda0a, 0xdcc2, 0xdcbf, 0xdcc9, 0xdcb2, 0xdcc1, 0xdcaf, 0xdcb4, - 0xdcb0, 0xdcb6, 0xdcb7, 0xdcbb, 0xdcb1, 0xddf0, 0xde78, 0xde7a, - 0xde79, 0xdee4, 0xdee6, 0xdf9f, 0xdf9d, 0xdf98, 0xdf99, 0xdff9, - 0xe030, 0xe082, 0xe081, 0xe0b3, 0xe07f, 0xe13a, - /* 0x79 */ - 0xe13e, 0xe148, 0x4c86, 0x5436, 0x5613, 0x5722, 0x5add, 0x60a7, - 0x647d, 0x0679, 0x6e1c, 0x7365, 0x7360, 0x7367, 0x084e, 0x761a, - 0x85e3, 0x9234, 0x9418, 0x9552, 0x98fc, 0x9a79, 0x9a78, 0x9a76, - 0x9cfa, 0x9cf8, 0xa02d, 0xa3d6, 0xa4bd, 0xa4bf, 0xa4be, 0xac44, - 0xac70, 0xac62, 0xac6e, 0xb06e, 0xb07c, 0xb074, 0xb078, 0xb070, - 0xb079, 0xb071, 0xb2cc, 0xb3a7, 0xb3a6, 0xb693, 0xb721, 0xb79c, - 0xbd9d, 0xbef4, 0xbef3, 0xc8f0, 0xccb8, 0xccb6, 0xccbd, 0xce73, - 0xce82, 0xd087, 0xd156, 0xd159, 0xd2f6, 0xd4c9, 0xd4c5, 0xd4c7, - 0xd4ca, 0xd4c2, 0xd4c4, 0xd6f2, 0xd6f0, 0xd83b, 0xd83a, 0xda26, - 0xda28, 0xda34, 0xda2d, 0xdcd7, 0xdcd2, 0xdcd6, 0xdcdc, 0xdcd3, - 0xdcd1, 0xdd86, 0x191e, 0xddef, 0xddee, 0xdee8, 0xdfac, 0xdfa9, - 0xdfaa, 0xdfab, 0xdffb, 0xe033, 0xe088, 0xe0b6, - /* 0x7a */ - 0xe0b7, 0xe0d0, 0xe0cf, 0xe14f, 0xe159, 0xe14c, 0x5618, 0x5ae0, - 0x7369, 0x7c73, 0x7c72, 0x85e8, 0x90fb, 0x941c, 0x9909, 0x990a, - 0x9908, 0x9a7d, 0x9a7f, 0x9d67, 0xac7a, 0xac7b, 0xb2d1, 0xe3cb, - 0xb69d, 0xb79d, 0xbcfc, 0xbcfb, 0xbcfd, 0xbef5, 0xbef6, 0xc70f, - 0xc71d, 0xccc7, 0xccc1, 0xccbf, 0xcd54, 0xce7f, 0xcef5, 0xd08a, - 0xd08c, 0xd15c, 0xd365, 0xd4cf, 0xd4d0, 0xd5b8, 0xd6fa, 0xd766, - 0xda40, 0xda41, 0x3772, 0xdcf7, 0xdcf3, 0xdcef, 0xdcf4, 0xdced, - 0xdcf2, 0xdcf1, 0xdcf9, 0xdfb4, 0xdffc, 0xe0bc, 0xe15e, 0xe15b, - 0xe15f, 0xe15d, 0xe1cf, 0xe1ce, 0x543a, 0x5ae1, 0x5e15, 0x5e14, - 0x7c78, 0x7c79, 0x7fe6, 0x86b8, 0x8a22, 0x90fe, 0xa3db, 0xa506, - 0xa5c8, 0xac89, 0xb086, 0xb3ad, 0xb699, 0xb6d8, 0xb723, 0xb823, - 0xbab5, 0xbef9, 0xc407, 0xc71e, 0xc8fb, 0xca72, - /* 0x7b */ - 0xca73, 0xce87, 0xcf49, 0xd15d, 0xd2f8, 0xd703, 0xda4e, 0xda4d, - 0xda50, 0xda55, 0xdd09, 0xdd07, 0xdd0c, 0xdd03, 0xdd06, 0xdd0b, - 0xdd0a, 0xdd89, 0xdfbb, 0xdfff, 0xe036, 0xe08b, 0xe166, 0xe169, - 0xe167, 0xe1c2, 0xe1d2, 0x5ae2, 0x0428, 0x6488, 0x6e5b, 0x7376, - 0x7c7d, 0x80a6, 0x8e5a, 0x9917, 0xa3dc, 0xac8f, 0xb094, 0xb095, - 0xbab6, 0xbd04, 0xc2ee, 0xce8a, 0xcef9, 0xd707, 0xd71f, 0xd72a, - 0xd845, 0xda5c, 0xda5b, 0xda61, 0xda5d, 0xdd18, 0xdd1f, 0xde83, - 0xdf16, 0xdf14, 0xdfbf, 0xdfc0, 0xe173, 0xe1c0, 0x5017, 0x6489, - 0x941e, 0x941f, 0x9554, 0x9918, 0x9d05, 0xac95, 0xb098, 0xb09b, - 0xb459, 0xbd08, 0xbf01, 0xccce, 0xcefa, 0xd5be, 0xd847, 0xda6a, - 0xda69, 0xda68, 0xda67, 0xdd25, 0xdd28, 0xdfc4, 0xe037, 0xe08d, - 0xe08c, 0x1991, 0xe320, 0x9922, 0x9a82, 0xb2d9, - /* 0x7c */ - 0xc738, 0xcefb, 0xd4e1, 0xd772, 0xd848, 0xda6c, 0xda70, 0xdd31, - 0xdd30, 0xe179, 0x9923, 0xa3f8, 0xd774, 0xda73, 0xdd34, 0xde87, - 0xdeb2, 0xe0c2, 0xe17d, 0x5ae5, 0xce8c, 0xda77, 0xda75, 0xdd38, - 0xdd3a, 0xe183, 0xe181, 0x7c80, 0xac99, 0x1187, 0xcf4a, 0xd84a, - 0xdd3c, 0xe1c8, 0x9104, 0xb3af, 0xe189, 0xddfa, 0xd161, 0xdd3f, - 0xac93, 0xdfc9, 0xb2de, 0xce91, 0xe18e, 0xe18d, 0xac98, 0xa4c5, - 0xe1a5, -}; - -static const ucs4_t cns11643_5_2uni_upages[229] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, - 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, - 0x04c00, 0x04d00, 0x05200, 0x05900, 0x05e00, 0x05f00, 0x06100, 0x06300, - 0x06400, 0x06b00, 0x07200, 0x07300, 0x07500, 0x07600, 0x07900, 0x07a00, - 0x07b00, 0x07c00, 0x08300, 0x08600, 0x08700, 0x08800, 0x08900, 0x08a00, - 0x08c00, 0x08e00, 0x09400, 0x09500, 0x09700, 0x09900, 0x09b00, 0x09c00, - 0x09d00, 0x09e00, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, - 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, - 0x20d00, 0x20e00, 0x20f00, 0x21000, 0x21100, 0x21200, 0x21300, 0x21400, - 0x21500, 0x21600, 0x21700, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, - 0x21d00, 0x21e00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, 0x22400, - 0x22500, 0x22600, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, - 0x22d00, 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23400, - 0x23500, 0x23600, 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, - 0x23d00, 0x23e00, 0x23f00, 0x24000, 0x24100, 0x24200, 0x24300, 0x24400, - 0x24500, 0x24600, 0x24700, 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, - 0x24d00, 0x24e00, 0x24f00, 0x25000, 0x25100, 0x25200, 0x25300, 0x25400, - 0x25500, 0x25600, 0x25700, 0x25800, 0x25900, 0x25a00, 0x25b00, 0x25c00, - 0x25d00, 0x25e00, 0x25f00, 0x26000, 0x26100, 0x26200, 0x26300, 0x26400, - 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, 0x26a00, 0x26b00, 0x26c00, - 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, 0x27200, 0x27300, 0x27400, - 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, 0x27c00, - 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, 0x28200, 0x28300, 0x28400, - 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, 0x28a00, 0x28b00, 0x28c00, - 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, 0x29200, 0x29300, 0x29400, - 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, 0x29a00, 0x29b00, 0x29c00, - 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a200, 0x2a300, 0x2a400, - 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, -}; - -static int -cns11643_5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x7c)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 8603) - swc = cns11643_5_2uni_page21[i], - wc = cns11643_5_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_6.h b/jni/parted/libiconv/lib/cns11643_6.h deleted file mode 100755 index acfafaf..0000000 --- a/jni/parted/libiconv/lib/cns11643_6.h +++ /dev/null @@ -1,967 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 6 - */ - -static const unsigned short cns11643_6_2uni_page21[6388] = { - /* 0x21 */ - 0xc902, 0x3362, 0x0005, 0x3388, 0x33d0, 0x33cf, 0x341e, 0x341f, - 0x3420, 0x3c0e, 0x3c2c, 0x3361, 0x3304, 0x3305, 0x3303, 0x0004, - 0xc901, 0x337d, 0x338d, 0x34a3, 0x34a4, 0x37db, 0x3800, 0xc91e, - 0x39a3, 0x3b32, 0x013f, 0x3dd4, 0x3dd5, 0x4e23, 0x552c, 0x557a, - 0x3803, 0x3307, 0x3308, 0x338f, 0x339c, 0x33d5, 0x3412, 0x3413, - 0x3414, 0x3421, 0x34a8, 0x34a6, 0x3776, 0x3801, 0x383d, 0xc914, - 0x383e, 0x3929, 0x3977, 0x3978, 0x39a6, 0x39a9, 0x39ac, 0x3b34, - 0x3804, 0x3c7b, 0x3d10, 0x392f, 0x3dd7, 0x3e1c, 0x3e1f, 0x3e1a, - 0xc936, 0x3e1e, 0x3e9e, 0x3e9a, 0x43a0, 0x43a1, 0x47d2, 0x47d3, - 0x4bb9, 0x4d1d, 0x4d55, 0x4eff, 0x51e7, 0x042a, 0x5211, 0x5213, - 0x5212, 0x53af, 0x53b1, 0xc990, 0x552d, 0x557b, 0x559d, 0x559a, - 0x04a7, 0x559f, 0x55a0, 0x559c, 0x56bd, 0x04fa, - /* 0x22 */ - 0x57aa, 0x626c, 0x6291, 0x6d74, 0x756a, 0xca29, 0x8605, 0x8f6b, - 0x8f6a, 0x33e0, 0x3312, 0x0000, 0x337f, 0x33a0, 0x3399, 0x3395, - 0x339e, 0x33df, 0x33de, 0x34af, 0x34ad, 0x34b0, 0x37df, 0x3843, - 0x3841, 0x3848, 0x3875, 0xc91a, 0x3932, 0x397b, 0x3979, 0x39b3, - 0x00db, 0x3ea7, 0x39b2, 0x39b0, 0x39b4, 0xc929, 0x3bcd, 0x3bce, - 0xc92b, 0x3c10, 0x3c80, 0x3cd3, 0x3d30, 0x3398, 0x3d2f, 0x3d31, - 0x3dda, 0x3dd9, 0x3e27, 0x3e28, 0x3e21, 0x3e25, 0x3ea6, 0x3ea2, - 0x3ea1, 0x3ea4, 0xc939, 0x3eaa, 0x3ea5, 0x3ea3, 0x3364, 0x443f, - 0x4444, 0x471b, 0x4753, 0x4784, 0x4786, 0x47d5, 0xc960, 0x4b3e, - 0x4b40, 0x4dca, 0x4dc9, 0x4e26, 0x4f00, 0x4f31, 0x4f3c, 0x4f30, - 0x4f33, 0x4f32, 0x4f38, 0x5234, 0x5253, 0x5254, 0x53b4, 0x53b2, - 0x552f, 0x55a5, 0x55a7, 0x55a4, 0x55a8, 0x55a9, - /* 0x23 */ - 0x55a2, 0x55a3, 0x55a6, 0x5681, 0x5680, 0x57ad, 0x5c24, 0x5c65, - 0x5c68, 0x5c69, 0x633c, 0x633b, 0x655d, 0x6a44, 0x7182, 0x74f1, - 0x756b, 0x771b, 0x78eb, 0x7bba, 0x7bd3, 0x7d13, 0x8922, 0x97f4, - 0xab0f, 0xab10, 0x3807, 0xc10b, 0xc10a, 0x3319, 0x331a, 0x3318, - 0x3366, 0x3382, 0x33a8, 0x33e5, 0x33e7, 0x33e4, 0x3415, 0x3423, - 0x3424, 0x3443, 0x34c3, 0x34bc, 0x34bb, 0x0038, 0x34b7, 0x34b9, - 0x34cf, 0xc90d, 0x377a, 0x377b, 0x37e1, 0x37e0, 0x3809, 0x384d, - 0xc916, 0x384b, 0x3879, 0x38b1, 0x3936, 0x3935, 0x3937, 0x3938, - 0x397f, 0x3980, 0x3981, 0x9653, 0x397e, 0x39cd, 0x39bf, 0x39be, - 0x39c2, 0x39b8, 0x39c1, 0x2030, 0x3c31, 0x3c2f, 0x3c6f, 0x3c82, - 0x013a, 0x3c87, 0x3c86, 0x3c8d, 0x3c94, 0x3cd7, 0x3cd4, 0x3cd8, - 0x3d16, 0x3d14, 0x3d2e, 0x3d36, 0x3d37, 0x51ee, - /* 0x24 */ - 0x3de0, 0x3de5, 0x3ddf, 0x3e2b, 0x3e29, 0x3e2d, 0x3e2f, 0x3eb7, - 0x3ec9, 0x3ec1, 0x3eca, 0x3eb2, 0x3eac, 0x3eae, 0x43b2, 0x43a8, - 0x43b0, 0x43a7, 0xc951, 0x4452, 0x444a, 0x4756, 0x4755, 0x475f, - 0x475e, 0x4788, 0xc95d, 0x47dd, 0x47e2, 0x47e1, 0x47df, 0x47e0, - 0x48af, 0x48b1, 0x48ba, 0x4b45, 0x4b43, 0x4bbd, 0x4bc8, 0xc96c, - 0x4bbe, 0x4bbf, 0xc974, 0x4d59, 0x4e29, 0x4e2c, 0x4e2f, 0x4e2d, - 0x4e2e, 0x4f04, 0x4f02, 0x4f01, 0x4f40, 0x4f4a, 0x4f3f, 0x4f4f, - 0x4f41, 0x4f4e, 0x51eb, 0x51ec, 0x33ac, 0x525b, 0x5263, 0x525a, - 0x5259, 0x53dc, 0x53db, 0x53d9, 0x53e0, 0x53dd, 0x3320, 0x55b0, - 0x55b1, 0x55b2, 0x55b6, 0x5651, 0x5652, 0x5650, 0x5684, 0x04c9, - 0x5683, 0x57c3, 0x57b8, 0x57b9, 0x57b2, 0x5b90, 0x5c26, 0x5c29, - 0x5c6e, 0x6340, 0x633e, 0x6341, 0x655e, 0x65bb, - /* 0x25 */ - 0x65bc, 0x65b9, 0xc9ef, 0x6980, 0x084f, 0x6a45, 0x6aba, 0x6abd, - 0x6d56, 0x6d55, 0x6d75, 0x6d77, 0x6d81, 0xc9fa, 0x6d83, 0x6d8b, - 0x6d84, 0x7186, 0x7183, 0x718b, 0x756d, 0x7616, 0x7728, 0x78ea, - 0x7bd4, 0x7c03, 0x7d15, 0x7f3d, 0x7f3e, 0x8416, 0xca4c, 0x8606, - 0x874d, 0x8f22, 0x8f73, 0x8f6d, 0x8f6e, 0x91b1, 0x384e, 0x932d, - 0x0fcd, 0x95f9, 0x9652, 0x9800, 0x97fc, 0x97fa, 0x1092, 0x97f7, - 0x97f8, 0xca90, 0xcac4, 0xa627, 0xab11, 0x33ae, 0xad50, 0xad4f, - 0xad4d, 0xaf71, 0xcae2, 0xaf72, 0xb518, 0x3d44, 0x3321, 0x3367, - 0x33af, 0x33b0, 0x3329, 0x3417, 0x3422, 0xc903, 0x3325, 0x3428, - 0x34ff, 0x34d9, 0x34db, 0x34de, 0x34f2, 0x34fe, 0x34f4, 0x34dd, - 0x0045, 0xc904, 0x3501, 0x34dc, 0x377d, 0x3781, 0x377e, 0x377f, - 0x37e5, 0x380f, 0x00b5, 0x380a, 0x00b6, 0x380b, - /* 0x26 */ - 0x3851, 0x3852, 0x3850, 0x38b8, 0x393d, 0x393e, 0x393c, 0x3987, - 0x39d7, 0x39db, 0x39cf, 0x39e0, 0x3b4c, 0x3b42, 0x3bd4, 0x3c11, - 0x3c14, 0x3c15, 0x3c12, 0x3c33, 0x3c35, 0x0137, 0x3c71, 0x0130, - 0x3c91, 0x3c93, 0x3c95, 0x3cdc, 0x3d42, 0x3d40, 0x83a6, 0x3de6, - 0x448f, 0x3e32, 0xc937, 0x3e31, 0x3ef5, 0x3ecd, 0x3ede, 0x3ed5, - 0x3eda, 0x3eee, 0x3eec, 0x3ecf, 0x3ece, 0xc93d, 0x3ecc, 0x3ef3, - 0x43c1, 0x43c4, 0x43c6, 0x43b4, 0x43c3, 0x43b8, 0x43bb, 0x43b7, - 0x43bc, 0x43bf, 0x43c7, 0x43be, 0x4460, 0x445d, 0x4476, 0x446c, - 0x4475, 0x445b, 0x4471, 0x4473, 0x4461, 0x445a, 0x4462, 0x4472, - 0x445f, 0x4458, 0x471e, 0x4758, 0x478b, 0x478a, 0x47f4, 0x47f0, - 0x48d2, 0x48cd, 0x48ce, 0x48bc, 0x48d0, 0x4b46, 0x4b47, 0x033e, - 0x034d, 0x0351, 0x4bce, 0x4bcf, 0x4bcc, 0x4bcb, - /* 0x27 */ - 0xc972, 0x4d60, 0x4d5f, 0x4d5d, 0x4dd4, 0x4e3a, 0x4e38, 0x4e3c, - 0x4e36, 0x4f08, 0x4f7e, 0x4f5e, 0x4f6e, 0x4f53, 0x4f70, 0x4f57, - 0x4f5d, 0x4f63, 0x4f7a, 0x4f79, 0x4f93, 0xc981, 0x521d, 0x5268, - 0x5273, 0x5274, 0x5266, 0x526f, 0x5275, 0x527a, 0x5270, 0x526d, - 0x5265, 0x538a, 0x53ed, 0x53e9, 0x53e3, 0x53ef, 0x0473, 0x53ea, - 0x5531, 0xc991, 0x5538, 0x9820, 0x5535, 0x553a, 0x5581, 0x5580, - 0x55b8, 0x55c1, 0x55ba, 0x5688, 0x56cf, 0x56ca, 0x56c7, 0x56c5, - 0x56c8, 0x56d0, 0x56c9, 0x57bb, 0x57b6, 0x57bd, 0xc99d, 0x57b4, - 0x57c1, 0x57d1, 0x57d2, 0x57cc, 0x57d4, 0x57cb, 0x57ce, 0x57d5, - 0x57d8, 0x5b95, 0x5b93, 0x5b99, 0x5b96, 0x05be, 0x5c89, 0x5c94, - 0x5c91, 0x5c8f, 0x5c84, 0x5c97, 0x5c86, 0x5c85, 0x5c8c, 0x60f2, - 0x60ed, 0x60ef, 0x62d9, 0x6346, 0x6347, 0x634b, - /* 0x28 */ - 0x6350, 0x634a, 0x634e, 0x634c, 0x6348, 0x6563, 0x6561, 0x6562, - 0x6560, 0x65c3, 0x65c5, 0x65c1, 0x65d0, 0xc9dc, 0x6982, 0x081e, - 0x6986, 0x6984, 0x6a4c, 0x6a48, 0x6ab8, 0x6abf, 0x6ac1, 0x6ac6, - 0x6ac5, 0x6ac7, 0x6ac0, 0x6ac3, 0x6bed, 0x6c03, 0x6c22, 0x6c21, - 0x6d9f, 0x6d90, 0x6d9e, 0x08c8, 0x6da0, 0x6d94, 0x6d95, 0x6da1, - 0x08c3, 0x08c7, 0x719a, 0x7190, 0x74f2, 0x74f3, 0x756e, 0x75ab, - 0x75a9, 0x761a, 0x7618, 0x761b, 0x7760, 0x774c, 0x7742, 0x7733, - 0x773f, 0x773e, 0x7738, 0x7743, 0x7746, 0x7736, 0x78ee, 0x78f5, - 0x78f4, 0x0b56, 0x7c1b, 0x0140, 0x7d2b, 0x7d29, 0x7d2a, 0x7d2e, - 0x803f, 0x80e6, 0x83a7, 0x83a8, 0x8418, 0x8608, 0x8750, 0x8753, - 0x8a56, 0x8a55, 0x8f6f, 0x8f7f, 0x91b3, 0x933a, 0x9338, 0x9337, - 0x9336, 0x3854, 0xca80, 0x95dd, 0x95fc, 0x95fa, - /* 0x29 */ - 0x9633, 0x9804, 0x9807, 0x9808, 0x9806, 0x9809, 0xca91, 0xca93, - 0x9d1e, 0xcad2, 0xad0b, 0xad43, 0xad52, 0xad58, 0xad5e, 0xaf68, - 0xaf8d, 0xaf82, 0xaf7b, 0xb358, 0x15bd, 0xc900, 0x332c, 0x332e, - 0x480b, 0x332d, 0x3369, 0x33b2, 0x33b6, 0x33a9, 0x33ed, 0x3419, - 0x344f, 0x3516, 0x3503, 0x350e, 0x3504, 0x3507, 0x3510, 0x3527, - 0x3528, 0x350d, 0x3529, 0x350f, 0x3522, 0x3511, 0x3785, 0x3784, - 0x3783, 0x378a, 0x3786, 0x3810, 0x3858, 0x385a, 0x3a0c, 0x38c4, - 0x38c5, 0x3947, 0x3949, 0x394a, 0x394b, 0x53bb, 0x398d, 0x398b, - 0x3a07, 0x3a06, 0xc920, 0x39ef, 0x39f0, 0x39ed, 0x39f9, 0x3a02, - 0x39e7, 0x39f4, 0x39f7, 0x39f1, 0x3b53, 0x3b55, 0x011a, 0x3bda, - 0x3bd9, 0x012c, 0x3c38, 0x3c99, 0x3ca2, 0x3c9c, 0x3c9a, 0x3c9b, - 0x3ce5, 0x3ce3, 0x3ce1, 0x3ce0, 0x3ce2, 0x3ce4, - /* 0x2a */ - 0x32fd, 0x3ce8, 0xc92f, 0x3d13, 0x3d56, 0x3d4b, 0x3d4a, 0x3d4d, - 0x3d4c, 0x0149, 0x3dea, 0x3de9, 0x3deb, 0x3dec, 0x3e3a, 0x3e3c, - 0x3e39, 0x3e3b, 0x3f14, 0x3f0e, 0x3f35, 0x3f0a, 0x3f3f, 0x3f38, - 0x017c, 0x3f4e, 0x3f17, 0xc93f, 0x3f1e, 0x43b6, 0x43ce, 0x43ca, - 0x43cb, 0x43cc, 0x43c9, 0x44b4, 0x44ac, 0x4488, 0x4486, 0x448c, - 0x4493, 0x448a, 0x44a4, 0x4487, 0x44a5, 0x44a6, 0x4485, 0x44a3, - 0x448e, 0x471f, 0x4763, 0x478d, 0x47fa, 0x47fb, 0x4809, 0x47fe, - 0x47ff, 0x4802, 0x4804, 0x47fd, 0x4805, 0x48f9, 0x48f7, 0x48db, - 0x48da, 0x4b51, 0x4b50, 0x4b57, 0x4be2, 0x4bd8, 0x4bda, 0x4bdc, - 0x4d20, 0x4d1f, 0x4d69, 0x4ddd, 0x4e40, 0x4e41, 0x4e43, 0x4f0d, - 0x4f0c, 0x4f87, 0x4fa9, 0x4f92, 0x4f85, 0x03bf, 0x4f8c, 0x4fa2, - 0x4f8f, 0x4f8a, 0x03ba, 0x4f8d, 0x51f1, 0x5237, - /* 0x2b */ - 0x528b, 0x5287, 0x5282, 0x538e, 0x53bc, 0x53f8, 0x53fa, 0x53eb, - 0x53f9, 0x53fc, 0x5405, 0x551b, 0x551d, 0x551e, 0xc992, 0x553c, - 0x553e, 0x5584, 0x55c8, 0x55c9, 0x55d3, 0x55c7, 0x55d2, 0x5655, - 0xc996, 0x568c, 0x568a, 0x56d5, 0x56d3, 0x04d8, 0x56d8, 0x57d0, - 0x57ee, 0x57f1, 0x57fb, 0x57d3, 0x57ec, 0x57cd, 0x5815, 0x5826, - 0x580e, 0x5827, 0x582a, 0x5800, 0x5804, 0x5828, 0x5808, 0x5814, - 0x5b9b, 0x05b2, 0x5ba1, 0x5b9d, 0x5ba0, 0x5b9e, 0x5ba2, 0x5b9c, - 0x5c32, 0x5c34, 0x5c93, 0x5c96, 0x5c90, 0x5cb4, 0x5cb5, 0xc9b6, - 0x5cb6, 0x5cc2, 0xc9b5, 0x5cba, 0x5c92, 0x60fb, 0x6105, 0x60f3, - 0x60fe, 0x60fd, 0x755d, 0x60fa, 0x6243, 0x6295, 0x6294, 0x06c4, - 0x636f, 0x6373, 0x635c, 0x635b, 0x6366, 0x6374, 0x6363, 0x6367, - 0x6360, 0x6362, 0x6371, 0x6372, 0x635e, 0x6523, - /* 0x2c */ - 0x6526, 0x6564, 0xc9d6, 0x65f2, 0x6601, 0x65dd, 0x65dc, 0x65db, - 0x65f3, 0x65fd, 0x65d8, 0x65f8, 0x65fb, 0x6983, 0x698c, 0x698e, - 0x6a49, 0x6a54, 0x6a52, 0x6a4e, 0x6a58, 0x6a51, 0x6a55, 0x6a53, - 0x6a57, 0x6a50, 0x6a4f, 0x6a4d, 0x6ad2, 0x6ad3, 0x6ac9, 0x6ad4, - 0x6bef, 0xc9f8, 0x33b1, 0x6c05, 0x6c04, 0x6c2e, 0x6c2d, 0x6d45, - 0x6d5b, 0x6d5a, 0x6d59, 0x6d9d, 0x6d8e, 0x6dbc, 0x6ddd, 0x6dba, - 0xc9fd, 0x6dd8, 0x6dcb, 0x6dd9, 0x6dda, 0x6dc4, 0x6db8, 0x6dbf, - 0x6ddb, 0x6dc1, 0xc9fc, 0x6dc5, 0xca19, 0x71b1, 0x71af, 0xca18, - 0x74f7, 0x74f6, 0x74f8, 0x7550, 0x7551, 0x7571, 0x7570, 0x75b0, - 0x75af, 0x75ae, 0x75ad, 0x7625, 0x762c, 0x7622, 0x7633, 0x7634, - 0x0a2b, 0x773a, 0x7740, 0x7768, 0x0a61, 0x7764, 0x775c, 0x7757, - 0x7753, 0x774f, 0x7751, 0x7754, 0x7766, 0x23dd, - /* 0x2d */ - 0x0ab2, 0x790d, 0x7908, 0xca2b, 0x78fa, 0x7aea, 0x7b2a, 0x7bbb, - 0x7bd5, 0x7bd7, 0x4fa4, 0x33f0, 0x33b5, 0x7c06, 0x7c28, 0x7c22, - 0x7c21, 0x5656, 0x7c23, 0x43cd, 0x7d30, 0x7d34, 0x7fc9, 0x7fca, - 0x7fc8, 0xca3d, 0x8044, 0x80f3, 0xca41, 0x80f8, 0x80fc, 0x80f6, - 0x80fb, 0x80f7, 0x8100, 0x8102, 0xca40, 0xca4d, 0x8424, 0x860d, - 0x0d29, 0x8762, 0x8930, 0x892b, 0x892a, 0x0d92, 0x892d, 0x8ada, - 0x8c28, 0x8d86, 0x8f77, 0x8f7c, 0x9050, 0x904e, 0x90f2, 0x91b2, - 0x91ce, 0x91cf, 0x91e5, 0x6607, 0x9235, 0x9231, 0x9313, 0x932b, - 0x932c, 0x9345, 0x9360, 0x9341, 0x9358, 0x9347, 0x935b, 0x9350, - 0xca82, 0x935f, 0x934a, 0x9356, 0x9343, 0x9344, 0x9351, 0x95fd, - 0x9634, 0x9635, 0x9654, 0x9655, 0x970c, 0x970b, 0x970a, 0x97f9, - 0x9835, 0x9824, 0x9813, 0x981c, 0x9869, 0x9825, - /* 0x2e */ - 0x9821, 0xca95, 0xca96, 0xca98, 0x9d20, 0x9fa9, 0x9fa8, 0x9fde, - 0xa009, 0xa00a, 0xa00b, 0xa1e3, 0xa207, 0xa2b2, 0xa2b3, 0xa35d, - 0xa858, 0xa886, 0xa887, 0xa9b9, 0xa9b8, 0xad0c, 0xad44, 0xad66, - 0xad80, 0xad75, 0xad6d, 0xad7e, 0xad67, 0xad81, 0xad77, 0xafa8, - 0xafa2, 0xafa5, 0xaf9b, 0xb357, 0xb50f, 0xb532, 0xb52c, 0xb533, - 0xb8e7, 0x336e, 0x33b7, 0x33f6, 0x33f2, 0x33f3, 0x3817, 0x3430, - 0x3454, 0x3453, 0x3552, 0x353d, 0x353c, 0x3534, 0x3533, 0x3554, - 0x352f, 0x0058, 0x3555, 0x353f, 0x3537, 0x3556, 0x3561, 0x3558, - 0xc906, 0x353b, 0x3532, 0x352e, 0x353e, 0x333b, 0x378c, 0x378d, - 0x3813, 0x3816, 0x3812, 0x385b, 0x388a, 0x38d7, 0x38ce, 0x3950, - 0x3951, 0x394f, 0x398e, 0x398f, 0x39f2, 0xc921, 0x3a28, 0x3a1a, - 0x3a25, 0x3a1d, 0x3a14, 0x3a20, 0x3a1f, 0x3a1b, - /* 0x2f */ - 0x3a17, 0x3a15, 0x3a1c, 0x3a13, 0xc925, 0x3b60, 0x011c, 0x3b66, - 0x3be3, 0x3bde, 0x3be0, 0x3be1, 0x3c1a, 0x3c1b, 0x3c18, 0x3c1c, - 0x3c19, 0x3c42, 0x3c40, 0x3c3e, 0x3c44, 0x3c74, 0x3c43, 0xc92d, - 0x3cf2, 0x3d1b, 0x3d19, 0x3d1e, 0xc930, 0x3d5e, 0x3d66, 0x3d5d, - 0x3d5a, 0x3d5f, 0x3d60, 0x3d5b, 0x3d5c, 0x3d59, 0x3df0, 0x3df1, - 0x3e43, 0x3e40, 0x3e42, 0x3e41, 0x3e3f, 0x3f57, 0x3f69, 0x3f6f, - 0x3fab, 0x3f71, 0x3f93, 0x3f56, 0x3f90, 0x3f6d, 0x3f6c, 0x3f70, - 0x3f66, 0x3f67, 0x43d7, 0x43b5, 0x43db, 0x43d8, 0x43d5, 0x43d4, - 0x44ba, 0x44b7, 0x44be, 0x44b9, 0x0237, 0x44e0, 0x44dd, 0x44de, - 0x7918, 0x44d8, 0x44bd, 0x44db, 0x471d, 0x4725, 0x4921, 0x490c, - 0x4929, 0x492d, 0x491b, 0x490e, 0x491f, 0x4904, 0x491c, 0x4905, - 0x4906, 0x4920, 0x490d, 0x492a, 0x4923, 0x4911, - /* 0x30 */ - 0x4b5c, 0x4b66, 0x4b5b, 0x4b4f, 0x4b5e, 0x4b5d, 0x4bf1, 0x4bea, - 0x4bf4, 0x4beb, 0x4bf0, 0x4bfa, 0x4bfb, 0x4d28, 0x4d2c, 0x4d6b, - 0x4d2a, 0x4d6a, 0x4d6f, 0x4ddb, 0x4de0, 0x7fd1, 0x4de3, 0x4de5, - 0x4de7, 0x4e4d, 0x4e55, 0x4e54, 0x4e53, 0x4e52, 0x4e4e, 0x4e60, - 0x53c0, 0x4f0f, 0x4f11, 0x4f13, 0x4fc6, 0x4fb3, 0x4fc7, 0x4fd2, - 0x4fb8, 0x4fac, 0x4fae, 0x4fcf, 0x4fc5, 0xc97b, 0x4fcc, 0x4fab, - 0x4fc9, 0x4fb9, 0x51fb, 0x51f8, 0x51f7, 0x51f9, 0x5220, 0x523b, - 0x5239, 0x529e, 0x529a, 0x52aa, 0x52ab, 0x52af, 0x5296, 0x52a9, - 0x52a6, 0x5291, 0x0443, 0x52ae, 0x529f, 0x52ac, 0x52a0, 0x5392, - 0x5391, 0x53bf, 0x5417, 0x540a, 0x540c, 0x554a, 0x5546, 0x5534, - 0x5545, 0x5543, 0x5544, 0xc993, 0x5587, 0x5586, 0x558a, 0x55da, - 0x55d8, 0x04b4, 0x3818, 0x3434, 0x55d6, 0x55d4, - /* 0x31 */ - 0x5654, 0x5659, 0x565a, 0x5657, 0x04e0, 0x56dd, 0x56e9, 0x56e0, - 0x5805, 0x5812, 0x5813, 0x5807, 0x5816, 0x5823, 0x5802, 0xc9a1, - 0x584a, 0x5836, 0x5840, 0x5856, 0x5843, 0xc9a0, 0x584b, 0x5846, - 0x583e, 0x5849, 0x5ba7, 0x5bb6, 0x5ba6, 0x5ba8, 0x5bac, 0x5ba9, - 0x5bab, 0x5c38, 0x5c37, 0x5c39, 0x5c41, 0x5c3e, 0x5cc0, 0x5cbb, - 0x5cbf, 0x5cbd, 0x5cfe, 0x5d1e, 0x5cee, 0x5cfc, 0xc9b7, 0x5cf9, - 0x5d06, 0x5ce4, 0x5ce9, 0x5ce5, 0x5d03, 0x5cfd, 0x5d49, 0x60be, - 0x610a, 0x8626, 0x6118, 0x610d, 0x610f, 0x610e, 0x6120, 0x6271, - 0x6299, 0x62e2, 0x62df, 0x62de, 0x6378, 0x6379, 0x06e4, 0x637c, - 0x637d, 0x6384, 0x638b, 0x638a, 0xc9d2, 0x6389, 0x652c, 0x6529, - 0x656c, 0x2104, 0x6609, 0x6608, 0x660c, 0x660d, 0x6610, 0x0826, - 0x699f, 0x6998, 0x69a2, 0x699a, 0x6ad5, 0x6ae2, - /* 0x32 */ - 0x6af0, 0x6aea, 0x6aeb, 0x6aed, 0x6ae8, 0x6ae0, 0x6b85, 0x6b86, - 0x6bf0, 0x5046, 0x6c45, 0x6c38, 0x6c3e, 0x6c42, 0x6c40, 0x6d47, - 0x6d5c, 0x6d5e, 0x6db4, 0x6dc2, 0x6e14, 0x6de5, 0x6e15, 0x6e11, - 0xc9ff, 0x6dee, 0x6de7, 0x6df5, 0x6df4, 0x6de8, 0x6e01, 0x6def, - 0x6df1, 0xca00, 0x71db, 0x71bf, 0x71da, 0x71c7, 0x71dd, 0xca1a, - 0x71eb, 0x71e1, 0x71c1, 0x71bd, 0x7507, 0x74fd, 0x7501, 0x750a, - 0x7503, 0x7572, 0x7574, 0x7575, 0x75b2, 0x75b1, 0x75b4, 0x764c, - 0x7642, 0x7640, 0x7649, 0x763c, 0x764d, 0x764a, 0x763b, 0x7761, - 0x7774, 0xca26, 0x777f, 0x777a, 0x7788, 0x777c, 0x0a6f, 0x7770, - 0x790f, 0x7928, 0x7913, 0x792a, 0x7aed, 0x7aef, 0x7b2e, 0x7bc1, - 0x7bdd, 0x3e47, 0x7c2d, 0x7c2b, 0x7c35, 0x7c2f, 0x7c31, 0x7c34, - 0xca35, 0x7c30, 0x7d3a, 0x7d39, 0x7d37, 0x7d4b, - /* 0x33 */ - 0x7d54, 0x7d4d, 0x7d51, 0x7d47, 0x7f27, 0x7f50, 0x7f4d, 0x7f4e, - 0x7f54, 0x7fd2, 0x7fce, 0x804b, 0x8049, 0x8105, 0x810f, 0x8119, - 0xca43, 0x8106, 0x810c, 0x8129, 0x8104, 0x8108, 0x8125, 0x0c1c, - 0x8103, 0x8127, 0x8110, 0x810a, 0xca42, 0x985d, 0x83aa, 0x83ab, - 0x83a9, 0x8441, 0x843a, 0x843c, 0x842b, 0x8449, 0x8615, 0x0d00, - 0x8616, 0xca53, 0x8631, 0x6d4a, 0x873c, 0x877c, 0x876d, 0x876a, - 0x8763, 0x876b, 0x877b, 0x8764, 0x877a, 0x8769, 0x876f, 0x8937, - 0x8935, 0x893c, 0x8936, 0x893d, 0x893e, 0x8ae1, 0x8ae0, 0x8c2d, - 0x8c2b, 0x8d8d, 0x8d92, 0x0eb6, 0x8d8e, 0xca6b, 0x8d91, 0x8d96, - 0x8f7b, 0x8f78, 0x8f81, 0x8f96, 0x8fa3, 0x8f95, 0x8f97, 0x9054, - 0x9052, 0x90f5, 0x9100, 0x90fb, 0x90f4, 0x90f6, 0x91e8, 0x91ea, - 0x933e, 0x933d, 0x933b, 0x9380, 0x0fe4, 0x9388, - /* 0x34 */ - 0x9381, 0x9382, 0x93ce, 0x9383, 0x9377, 0x9379, 0x9373, 0x936d, - 0x9370, 0x938d, 0x9375, 0x938c, 0x936a, 0x9391, 0x9389, 0x938e, - 0x44dc, 0x95ff, 0x9659, 0x96c7, 0x9712, 0x9714, 0x9713, 0x97cb, - 0x9842, 0x10ad, 0x983d, 0x2aff, 0x9840, 0x9844, 0x9862, 0x9843, - 0x983f, 0x9845, 0x983c, 0xca97, 0x9846, 0x9847, 0xcab3, 0x9c9e, - 0x9c9d, 0x9d2c, 0x9d29, 0x9d2f, 0x9d2e, 0x9d30, 0x9fe1, 0x9fe2, - 0xa00e, 0xa019, 0xa012, 0xa2b4, 0xa5da, 0xa726, 0xa859, 0xa85a, - 0xa888, 0xa9c0, 0xa9ba, 0xaba0, 0xcadd, 0xaba2, 0xad86, 0x2fec, - 0xad9d, 0xad88, 0xad8f, 0xad8e, 0xad9b, 0xafc1, 0xafc3, 0xafc4, - 0xaf96, 0xafc7, 0xafc6, 0xafbf, 0x14c3, 0xb20f, 0xb555, 0xb542, - 0xb546, 0xb54b, 0xb543, 0xb553, 0xb548, 0xb549, 0xb54a, 0xb54e, - 0x7bde, 0x3991, 0xbb4b, 0xbd80, 0xbd81, 0xbd83, - /* 0x35 */ - 0x358a, 0xbd82, 0x5542, 0x3c22, 0x3370, 0x3371, 0x33bc, 0x4f18, - 0x33be, 0x33ba, 0x33f8, 0x3437, 0x3435, 0x3dfc, 0x3456, 0x3459, - 0x345e, 0x356d, 0x3591, 0x3592, 0x3568, 0x3566, 0x3573, 0x0067, - 0x3596, 0x358b, 0x358c, 0x3796, 0x37ee, 0x381c, 0x381a, 0x3819, - 0x381b, 0x385d, 0x385e, 0xc918, 0x38dc, 0x38e2, 0x3952, 0x3992, - 0x3a30, 0x3a52, 0x3a42, 0x3a41, 0x3a45, 0x3a37, 0x3a40, 0x3a3f, - 0x3a3d, 0x3a38, 0x3a3a, 0x3a49, 0x3b6b, 0x3b78, 0x3b79, 0xc926, - 0x3b6c, 0x3be9, 0x3be6, 0x3be5, 0x3bea, 0x3be7, 0x3be8, 0x3c1f, - 0x3c4b, 0x3c4a, 0x3c53, 0x3c76, 0x3ca3, 0x3ca4, 0x3cf6, 0x3cf3, - 0x3cf9, 0x3cf7, 0x3cfc, 0x3d1d, 0x3d6d, 0x3d71, 0x3d6c, 0x3d6e, - 0x3d70, 0x3d6f, 0x3d67, 0x3d68, 0x3dfa, 0x3df9, 0x3e4e, 0x19de, - 0x3e4d, 0x3e4f, 0x3e4a, 0x3e4c, 0x0196, 0xc942, - /* 0x36 */ - 0x3fee, 0x3fb2, 0x3fc0, 0x3fc1, 0x3ff4, 0x3fc8, 0x3fc5, 0x3fc6, - 0x3fad, 0x43e2, 0x43ea, 0x43e3, 0x43e1, 0x44f7, 0x4501, 0x4512, - 0x44f6, 0x44f1, 0x451f, 0x44ee, 0xc952, 0x44f3, 0x4515, 0x4516, - 0x4517, 0x44f8, 0x4519, 0x44f2, 0x44f4, 0x44f5, 0x4513, 0x4506, - 0x4726, 0x4724, 0x475a, 0x60c8, 0x4797, 0x4795, 0x479a, 0x481f, - 0x3dfb, 0x4829, 0x4820, 0xc962, 0xc963, 0x494c, 0x4930, 0x4938, - 0x493d, 0x4951, 0x494f, 0x494a, 0x4934, 0x4936, 0x1b30, 0x4b6a, - 0x4b68, 0x4c1c, 0x4c0e, 0x4c1e, 0x0359, 0x4c09, 0x4c08, 0x4c13, - 0x4c01, 0x4c0f, 0x4c14, 0x4c06, 0x4c07, 0x1cb2, 0xc973, 0x0376, - 0x4d79, 0x4dea, 0x4ded, 0x4de9, 0x4dee, 0x4e68, 0x4e64, 0x4e67, - 0x4e72, 0x4e62, 0x4e74, 0x4e79, 0x4f19, 0x4f17, 0x4f15, 0x4f16, - 0x4fe6, 0x8fa4, 0x4fee, 0x03d2, 0x4fdf, 0x4fe4, - /* 0x37 */ - 0x4fda, 0x4fea, 0x4fed, 0x4fe3, 0x4fe9, 0x51fd, 0x3957, 0x5221, - 0x52c6, 0x52b8, 0x52cb, 0xc985, 0x52bd, 0x52b5, 0x52bb, 0x52bf, - 0x52be, 0x52b2, 0x52c1, 0x52c2, 0x5399, 0x53c6, 0x542c, 0x542d, - 0x5425, 0x541e, 0x541f, 0x5423, 0x5550, 0x554e, 0x554d, 0x5552, - 0x55e9, 0x55ec, 0x55e8, 0x5658, 0x565c, 0x565b, 0x568f, 0x6a72, - 0x56f6, 0x5700, 0x56fc, 0x56f8, 0x56ea, 0x56fe, 0x56f7, 0x56fd, - 0x5870, 0x5862, 0x5844, 0x0520, 0x584d, 0x584c, 0x583f, 0x5866, - 0x5835, 0x0529, 0x5834, 0x588d, 0x5884, 0x0538, 0x5886, 0x5889, - 0x5887, 0x5883, 0x5875, 0x5879, 0x58af, 0x58b0, 0x5bb7, 0x5bbb, - 0x5bb9, 0x5c46, 0x5c47, 0x5c45, 0x5cea, 0x5cf6, 0x5d68, 0x5d39, - 0xc9b9, 0x5d3d, 0x5d3b, 0x5d4d, 0x5d30, 0x5d4a, 0x5d3e, 0x5d40, - 0x5d4c, 0x5d47, 0x5d38, 0x5d52, 0x5d3a, 0x5d53, - /* 0x38 */ - 0x60c4, 0x60c1, 0x611c, 0x611d, 0x612a, 0x611e, 0x612f, 0x6122, - 0x612e, 0x6125, 0x0689, 0x06b0, 0x624a, 0x624b, 0x6276, 0x06bf, - 0x62e8, 0x62ef, 0x62e9, 0x06c5, 0x62ea, 0xc9cc, 0x06ea, 0x639b, - 0x639e, 0x6393, 0x63a7, 0x639c, 0x63a0, 0x639a, 0x63ab, 0x63be, - 0x63a9, 0x652d, 0x656e, 0x6644, 0x663d, 0x663a, 0x6668, 0x663c, - 0x666a, 0xc9e0, 0x6638, 0x6665, 0x6639, 0x666d, 0x6636, 0xc9e3, - 0x663e, 0x667e, 0x6637, 0x6999, 0x69a9, 0x69ad, 0x69a7, 0x69a8, - 0x6a66, 0x6a69, 0x6a6d, 0x6a67, 0x6a6b, 0x6a6a, 0x6aee, 0x6b01, - 0x6b03, 0x6af4, 0x6afb, 0x0837, 0x6af6, 0x6afc, 0x6bf4, 0x6c08, - 0x6c0a, 0x6c09, 0x6c6d, 0x6c62, 0x6c41, 0x6c5e, 0x6c5c, 0x6df3, - 0x6e26, 0x08e4, 0x6e39, 0xca04, 0x6e6c, 0x6e2b, 0x6e2e, 0x6e3b, - 0x6e5e, 0x6efb, 0x6e27, 0x6e24, 0x6e69, 0x6e30, - /* 0x39 */ - 0xca05, 0x6e62, 0x6e38, 0x6e35, 0x6e2a, 0x6e2c, 0x6e68, 0x6e31, - 0x6e2f, 0x6e2d, 0x6e3a, 0x6e36, 0xca03, 0x6e21, 0x6e3c, 0x6e20, - 0x6e64, 0x6e3e, 0x08e8, 0x71f7, 0x7212, 0x71f1, 0x71f5, 0x7222, - 0x71f2, 0x71df, 0x7215, 0x7216, 0x757a, 0x7576, 0x75be, 0x0a20, - 0x75bd, 0x7609, 0x7608, 0x7657, 0x77a3, 0x77bf, 0x77b8, 0x77af, - 0x779c, 0x77a5, 0x7772, 0x7775, 0x779d, 0x7799, 0x77b9, 0x794e, - 0x7939, 0x793b, 0x7935, 0x793c, 0x7955, 0x7af0, 0x7af3, 0x7af4, - 0x7b3b, 0x7b3c, 0x7b3a, 0x7b36, 0x7c07, 0x3feb, 0x7c55, 0x7c50, - 0x7c4f, 0x7c52, 0x7c56, 0x33bd, 0x7c32, 0x7d63, 0x7d6b, 0x7d66, - 0x7d57, 0x7d5d, 0x0b86, 0x7d6d, 0x7d61, 0x7d69, 0x7d5a, 0x7d5c, - 0x7d62, 0x7f2a, 0x7f29, 0x7f58, 0x7f5a, 0x7fd7, 0x7fdb, 0x7fdc, - 0x7fdd, 0x7fd8, 0x8054, 0x805b, 0x805c, 0x8053, - /* 0x3a */ - 0x804f, 0x8056, 0x8050, 0x805a, 0x806b, 0x8136, 0x8153, 0x813a, - 0x813c, 0x813e, 0x8149, 0x8140, 0xca46, 0xca47, 0x8364, 0x8365, - 0x83b5, 0x83b6, 0x83b2, 0x8448, 0x844a, 0x8472, 0x8469, 0x845a, - 0x844c, 0x862c, 0x8630, 0x864b, 0x8649, 0x8642, 0x8644, 0x864a, - 0x864f, 0x8792, 0xca57, 0x8797, 0x8780, 0x8782, 0x8786, 0x8953, - 0x895e, 0x8952, 0x895b, 0x894e, 0x8a6d, 0x8a6e, 0x8afa, 0x8af6, - 0x8afb, 0x8c33, 0x8c3d, 0x8c37, 0x8c3e, 0x8c35, 0x8d9a, 0x8dab, - 0x8da6, 0x8db0, 0x8d99, 0x8da0, 0x8d9e, 0x8da8, 0x8da1, 0x8daa, - 0x8dad, 0x8dbb, 0x8d9c, 0x8da5, 0x33b3, 0x8f27, 0x8f8d, 0x8f8e, - 0x8f8f, 0x8f92, 0x0f56, 0x8f91, 0x8fad, 0x9057, 0x9058, 0x905e, - 0x905d, 0x905c, 0x905b, 0x0f67, 0x910a, 0x9103, 0x910e, 0x91b8, - 0x924d, 0x923f, 0x9247, 0x924b, 0x924a, 0x923d, - /* 0x3b */ - 0x2838, 0x9241, 0x924c, 0x2881, 0x9362, 0x9369, 0x9361, 0x0fd1, - 0x93aa, 0x93a6, 0x93ac, 0x93bd, 0x93bb, 0x93a4, 0x93ba, 0x939a, - 0x0feb, 0x93a1, 0x93c1, 0x95e0, 0x960a, 0x9603, 0x9606, 0x9639, - 0x963a, 0x9636, 0x965b, 0x965f, 0x965e, 0x9667, 0x9661, 0x9662, - 0x965d, 0x96ca, 0x96cc, 0x96ce, 0x9718, 0x971d, 0x971f, 0x9720, - 0x9717, 0x9715, 0x981f, 0x9827, 0x9826, 0x5010, 0x988b, 0x98ae, - 0x988a, 0xca99, 0x9892, 0x9889, 0x9887, 0x10b6, 0x988f, 0x9884, - 0x9883, 0x988c, 0x9893, 0x988d, 0x9898, 0x987d, 0x987e, 0x98d2, - 0x9880, 0x9899, 0x9cac, 0x9d50, 0x9d55, 0x9d42, 0x9d3f, 0x9d3c, - 0x11a3, 0x9d4c, 0x9d49, 0x9d57, 0x9d58, 0x9d4f, 0x9d5c, 0x9d47, - 0xcab7, 0x9fab, 0x1210, 0x9faf, 0x9fad, 0x9fe8, 0x9fe7, 0xa030, - 0xa026, 0xa02f, 0xa028, 0xa02b, 0xa01d, 0xa02d, - /* 0x3c */ - 0xa020, 0xa02a, 0xa02c, 0xa035, 0xa021, 0xa023, 0xa024, 0xa036, - 0xa037, 0xa1e9, 0xa2ba, 0xa2b8, 0xcacc, 0xa36d, 0xa36a, 0xa368, - 0xa369, 0xa36b, 0xa361, 0xa5dc, 0xa5db, 0xa62d, 0xa62c, 0xa6a2, - 0xa72b, 0xa732, 0xcad7, 0xa894, 0xa892, 0xa890, 0xa9c9, 0xa9c4, - 0xa9c1, 0xa9c3, 0xa9cd, 0xab14, 0xaba7, 0xabaf, 0xabaa, 0xad0d, - 0xad54, 0xad5b, 0xad61, 0xadae, 0xadb3, 0xadc0, 0xadc4, 0xadbf, - 0xadcb, 0xadad, 0xada7, 0xada4, 0xadbd, 0xadaf, 0xadb2, 0xada5, - 0xafe7, 0xafe0, 0xafce, 0xafde, 0xafd5, 0xafdf, 0xafd9, 0xb0f2, - 0xb223, 0xb240, 0x151b, 0xb23e, 0x1587, 0xb3cf, 0x3e54, 0xb55b, - 0xb558, 0xb562, 0xb55f, 0xb567, 0xb563, 0xb55e, 0xb560, 0xb685, - 0xb686, 0xb687, 0xb8e8, 0xb8e6, 0xbd71, 0xbd85, 0xcb02, 0xbd86, - 0xbe10, 0x3cf8, 0x33bf, 0x3e61, 0x33fe, 0x33fc, - /* 0x3d */ - 0x3439, 0x3461, 0x3460, 0x35e2, 0x35ea, 0x35e3, 0x35b4, 0x35ae, - 0x35be, 0x35b8, 0x35a8, 0x35aa, 0x35a9, 0x35b3, 0x35d5, 0x35ad, - 0x35b9, 0x35bb, 0x35b1, 0x35c2, 0xc908, 0x35eb, 0x35ba, 0x35d2, - 0x35d4, 0x37f1, 0x381d, 0xc912, 0x3862, 0x388c, 0x38e6, 0x38e7, - 0x395a, 0x3958, 0x3959, 0x3996, 0x3997, 0x3a61, 0x3a67, 0x3a71, - 0x3a65, 0x3a7d, 0x3a7e, 0x3b7d, 0x3b84, 0x3b7c, 0x3b7e, 0x3b7f, - 0x3b80, 0x3bef, 0x3bf4, 0x3c1e, 0x3c4e, 0x3cfb, 0x3cfa, 0x3cfd, - 0xc931, 0xc932, 0x3d79, 0x3d7c, 0x3d7d, 0x3d84, 0x3d7b, 0x3d78, - 0x0157, 0x3e5e, 0x3e5a, 0x3e5c, 0x3e59, 0x3e55, 0x3e63, 0x3e56, - 0x3e5f, 0x3e60, 0x3e5b, 0x404a, 0x4065, 0x40b3, 0x402c, 0x4077, - 0x403d, 0x4052, 0x4061, 0x402a, 0x403e, 0x4034, 0x4029, 0x40b2, - 0x40ad, 0x4040, 0x4053, 0xc944, 0x403f, 0x4041, - /* 0x3e */ - 0x4072, 0x43f6, 0x43f5, 0x43f4, 0x43f2, 0x43f9, 0x4527, 0x4554, - 0x4555, 0x452e, 0xc954, 0xc953, 0x452c, 0x4538, 0x4539, 0x4531, - 0x454f, 0x4573, 0x4530, 0x452b, 0x4551, 0x472c, 0x475b, 0x475c, - 0x4768, 0x476c, 0x476b, 0x4769, 0x479f, 0x4838, 0x483c, 0x483a, - 0x4835, 0x029d, 0x4839, 0x4836, 0x483b, 0x4960, 0x4961, 0x4963, - 0x4964, 0x4994, 0x4993, 0x495e, 0x4968, 0x496a, 0x4965, 0xc966, - 0x4990, 0x495f, 0x4972, 0xc965, 0x4c3c, 0x4c27, 0x4c24, 0x4c26, - 0x4c25, 0x035f, 0x4c28, 0x4c36, 0x4d31, 0x4d30, 0x4d34, 0x4d81, - 0x4d7d, 0x4d82, 0x4d80, 0x0379, 0x35d3, 0x4df2, 0x4e66, 0x4e8c, - 0x4e7b, 0x4e83, 0x0398, 0x4e8e, 0x4e7a, 0x4e92, 0x4e91, 0x4e82, - 0x4f1b, 0x4f1c, 0x5027, 0x5021, 0x03dc, 0x1d2b, 0x5043, 0x03df, - 0x5018, 0x507b, 0x501a, 0x504b, 0x504a, 0x504d, - /* 0x3f */ - 0x504f, 0x5019, 0x5035, 0x5013, 0x5052, 0x5014, 0x501e, 0x502c, - 0x5020, 0x5022, 0x5012, 0x501f, 0x5200, 0x5223, 0x5240, 0x5243, - 0x52e4, 0x52db, 0x52ea, 0x52dd, 0x52cc, 0x52d9, 0x52e8, 0x52f6, - 0x52e3, 0x52d3, 0x52da, 0x52d6, 0x52e7, 0x543a, 0x543f, 0x5440, - 0x5448, 0x5459, 0x5437, 0x5444, 0xc98c, 0xc98b, 0x5455, 0x5439, - 0x5554, 0x5555, 0x5556, 0x5557, 0x5558, 0x5559, 0x558d, 0x55f2, - 0x55f8, 0x55f5, 0x55f6, 0x55fc, 0x55fe, 0x55f1, 0x55fd, 0x565e, - 0x5696, 0x5697, 0x569c, 0x569b, 0x5695, 0xc99a, 0x571a, 0x5709, - 0x5704, 0x570e, 0x571c, 0x5718, 0x570d, 0x5710, 0x570c, 0x5703, - 0x587b, 0x58a6, 0x5877, 0x5888, 0x5874, 0x58da, 0x5876, 0x5878, - 0x588a, 0x588f, 0x587d, 0x5890, 0x58ed, 0x58d9, 0x58d0, 0x591a, - 0x58d7, 0x58e2, 0x58e1, 0x58c5, 0x58e0, 0x58ca, - /* 0x40 */ - 0x5925, 0x58cc, 0xc9b3, 0x5bc6, 0x5bc1, 0x5c4d, 0x5d4b, 0x5d64, - 0x5d95, 0x5d99, 0xc9bc, 0x5d94, 0x5da2, 0x5dae, 0x5d9e, 0x5da7, - 0x5d86, 0x05fd, 0x5da4, 0x5d91, 0x5d93, 0xc9bb, 0x5d88, 0x60cd, - 0x60ca, 0x613f, 0x6140, 0x6146, 0x6141, 0x6145, 0x6158, 0x613b, - 0x6148, 0x624e, 0x6252, 0x624f, 0x627b, 0x627a, 0x62a0, 0x629f, - 0x62fb, 0x62f7, 0x63b8, 0x63b9, 0x63bb, 0x63b7, 0x06f4, 0x63ba, - 0x06ef, 0x63da, 0x63b5, 0x63bf, 0x63bc, 0x63c0, 0xc9d3, 0xc9d9, - 0x6575, 0x6579, 0x6576, 0x6635, 0x6640, 0x66c0, 0x6681, 0x66ad, - 0x66af, 0x66ac, 0x668f, 0x66a8, 0x66aa, 0x66a9, 0x6688, 0x667f, - 0x6680, 0x66bc, 0x69ae, 0x69bb, 0x69bd, 0x0831, 0x6a78, 0x6a74, - 0x6b0c, 0x6b11, 0x6b08, 0x6b06, 0x6b10, 0x6b8f, 0x6b90, 0x6b8d, - 0x6b8e, 0x6b96, 0x6b95, 0x6c0b, 0x6c0c, 0x6c7c, - /* 0x41 */ - 0x6c73, 0x6c75, 0x6c76, 0x6c7d, 0x6c78, 0x6c71, 0x6d4b, 0x6d4e, - 0x6e33, 0x6e32, 0x0903, 0x6e91, 0x6ee7, 0x6ee9, 0x6ea2, 0x6e94, - 0x6e87, 0x6ea3, 0x6edd, 0x6e7b, 0x6e83, 0x6e81, 0x6edf, 0x6e7c, - 0x6ee4, 0x6ee2, 0x6e93, 0x6e7d, 0x6ebf, 0x6e9b, 0x6e8e, 0x6e9f, - 0x0909, 0x6e8c, 0x6e7f, 0x6e9c, 0x6e84, 0x6e42, 0x6ee6, 0x7251, - 0x724a, 0x7264, 0x7225, 0x722f, 0x722e, 0x722b, 0x7228, 0x7232, - 0x722d, 0x7231, 0x7239, 0x722c, 0x7261, 0x7511, 0x7510, 0x7512, - 0x7553, 0x7555, 0x757b, 0x7581, 0x757d, 0x757c, 0x75c2, 0x75c5, - 0xca22, 0x75c4, 0xca23, 0x766b, 0x7668, 0x0a3e, 0x765c, 0x765d, - 0x766a, 0xca24, 0x7c76, 0x7776, 0x0a77, 0x77c4, 0x77cb, 0x77c8, - 0x77d4, 0x77d5, 0x77c9, 0x77d7, 0x0a7b, 0x7978, 0x795a, 0x795b, - 0x795c, 0x7956, 0x7958, 0x7971, 0x96d4, 0x7b40, - /* 0x42 */ - 0xca33, 0x7b3f, 0x7b43, 0x7b41, 0x7be2, 0x7be0, 0x7be3, 0x7c66, - 0x7c73, 0x7c6c, 0x7c71, 0x7c6a, 0x7c6d, 0x7c6e, 0x7c6b, 0x7d8c, - 0x7d77, 0xca3a, 0x7d7f, 0x7d89, 0x7d7a, 0x7d85, 0x7d78, 0x7d8a, - 0x7d86, 0x7f2c, 0x7f67, 0x7f5b, 0x7fe5, 0x7fe1, 0x8061, 0x8069, - 0x806a, 0x8165, 0x816d, 0x8163, 0x8186, 0x815c, 0x8162, 0xca48, - 0x8179, 0x8169, 0x8170, 0x8176, 0x815d, 0x8187, 0x816e, 0x8171, - 0x817c, 0x8173, 0x815b, 0x816b, 0x83bf, 0x83c1, 0x83bd, 0x83c9, - 0x83bc, 0x83c2, 0x83c0, 0x8492, 0x84a9, 0x848f, 0x8476, 0x847b, - 0x8475, 0x84a4, 0x8664, 0x873d, 0x87af, 0x0d3a, 0xca58, 0x879d, - 0x8799, 0x87b1, 0x8963, 0x8962, 0x8964, 0x8969, 0x0da0, 0x8a75, - 0x8a73, 0x8a71, 0x8a74, 0x8b0c, 0x8b16, 0x0de5, 0x8b11, 0x8b1f, - 0x8b1a, 0x8b0d, 0x8b1b, 0x8b13, 0x8c4e, 0x8c55, - /* 0x43 */ - 0x8c50, 0x0e7d, 0x8dd2, 0x8dd3, 0x8dd1, 0x8df1, 0x8ddc, 0x8dc8, - 0x8dcc, 0x8dd0, 0x8dcf, 0x8ddf, 0x8f2b, 0x8f2e, 0x8f2d, 0x8f9d, - 0x8f9e, 0x8f9f, 0x8fa9, 0x8fa0, 0x8f98, 0x8fa1, 0x8fab, 0x8faf, - 0x906e, 0x905f, 0x905a, 0x0f6d, 0x9065, 0x9068, 0x9072, 0x9117, - 0x9116, 0x9118, 0x9119, 0x911a, 0x9122, 0x911b, 0x911c, 0x91be, - 0x91ee, 0x925a, 0x9250, 0x9258, 0x9254, 0x9257, 0x9256, 0x9315, - 0x939b, 0x9393, 0x9392, 0x9372, 0x9398, 0x9399, 0x93df, 0x0ff8, - 0x93d5, 0x2958, 0x93d4, 0x93f3, 0x93f4, 0x93e7, 0x93e1, 0x93e6, - 0x93eb, 0x93ec, 0x35db, 0x1050, 0x960d, 0x960c, 0x4d2f, 0x9668, - 0x9665, 0x966b, 0x9669, 0x96d1, 0x96d3, 0x9727, 0x9728, 0x1068, - 0x1067, 0x9724, 0x97d7, 0x98ca, 0x98c7, 0xca9e, 0x98d8, 0x98e1, - 0x98c6, 0x98f8, 0x98c3, 0x98f4, 0x9917, 0x98ea, - /* 0x44 */ - 0x98cb, 0x9886, 0x98c4, 0x98d9, 0x9919, 0x98c2, 0x98e2, 0x10cf, - 0x98de, 0x98ed, 0xca9c, 0x10cd, 0x991d, 0x98dd, 0x98db, 0x98e8, - 0x98e9, 0x98bf, 0x98e0, 0x98d1, 0x98dc, 0x98ce, 0x991e, 0x98cc, - 0x98f2, 0x98f3, 0xca9f, 0xcaa2, 0xcaa3, 0xcaa1, 0x9cab, 0x9caa, - 0x9ca7, 0x9ca9, 0x9d88, 0x9d75, 0x9d60, 0x9d6c, 0x9d73, 0x11ab, - 0x9d6e, 0x9d74, 0x9d76, 0x9d68, 0x9d77, 0x9d86, 0x9fea, 0xa051, - 0xa050, 0xa058, 0xa04d, 0xa04f, 0xa04e, 0xa05c, 0xa052, 0xa044, - 0xa04a, 0xa04b, 0xa1ea, 0xa210, 0xa211, 0xa2cd, 0xa2bf, 0xa2c4, - 0xa2d0, 0xa2ce, 0xa2c0, 0xa2c2, 0xa2cf, 0xa2c9, 0xa2bb, 0xa397, - 0xa392, 0xa36f, 0xa37e, 0xa39a, 0x12c1, 0xa386, 0xa373, 0x2d24, - 0xa377, 0xa38f, 0xa370, 0xa381, 0xa382, 0xa399, 0xa37d, 0xa37f, - 0xa37b, 0xa387, 0xa5b2, 0xa62f, 0xa634, 0xa62e, - /* 0x45 */ - 0xa632, 0x1347, 0xa6aa, 0x1357, 0xa6a9, 0xa738, 0xa736, 0xa737, - 0xa747, 0xa733, 0xa739, 0xa735, 0xa744, 0xa8a5, 0xa8a6, 0xa89e, - 0xa9e3, 0xa9df, 0xa9d3, 0xa9f1, 0xa9e4, 0xa9e0, 0xa9d6, 0x2ec3, - 0xa9e6, 0xa9d8, 0xa9de, 0xa9db, 0xa9dc, 0xab1b, 0xab1f, 0xab1d, - 0xab1c, 0xab1e, 0xab20, 0xab21, 0x144e, 0xabb6, 0xabbc, 0xabc6, - 0xabc7, 0xabba, 0xabbe, 0xabbd, 0xabb5, 0xabb4, 0xad0f, 0xad62, - 0xadeb, 0xadd9, 0xade4, 0xadd7, 0xadd8, 0xadd6, 0xadce, 0xaddd, - 0xade7, 0xadd2, 0xadc5, 0xadc9, 0xaddb, 0xaf92, 0xaf8a, 0xaf8b, - 0xaf89, 0xb008, 0xb003, 0xb006, 0xb005, 0xaff5, 0xb00b, 0xaffb, - 0xb0fc, 0xb101, 0xb102, 0xb0fa, 0xb108, 0xb0f7, 0xb100, 0xb0ff, - 0xb106, 0xb0f6, 0xb0fb, 0xb10a, 0xb225, 0xb243, 0xb244, 0xb364, - 0xb362, 0xb35e, 0xb35b, 0xb3d6, 0x3372, 0x33c2, - /* 0x46 */ - 0xb577, 0xb582, 0xb57c, 0xb57d, 0xb586, 0xb581, 0xb584, 0xb576, - 0xb583, 0xb57f, 0xb57e, 0xb688, 0xb68d, 0xb68b, 0xb691, 0xb68f, - 0xb77c, 0xb779, 0xb77a, 0xb8ea, 0xbb4c, 0xbc99, 0x35d1, 0xbd8b, - 0xbd8d, 0xbd8a, 0xbd8e, 0xbe11, 0x5456, 0xcb15, 0x3374, 0x33c3, - 0x33c4, 0x341b, 0x345f, 0x346a, 0x3469, 0x346b, 0x360c, 0x35f6, - 0x35ed, 0x3629, 0x35fe, 0x35f1, 0x3617, 0x35ff, 0x35ee, 0x35fd, - 0x361c, 0x35fc, 0x3600, 0x3620, 0x0077, 0x35f9, 0x3667, 0x3608, - 0x379e, 0x37f3, 0x3825, 0x3827, 0x381f, 0x3865, 0x3863, 0x3894, - 0x3897, 0x38f1, 0x395f, 0x3962, 0x18f2, 0x3960, 0xc922, 0x3a8c, - 0x3a82, 0x3a90, 0x3a8b, 0x3a8d, 0x3a81, 0x3a9d, 0x3b8e, 0x3b8f, - 0x3b92, 0x3c23, 0x3c52, 0xc92e, 0x3d00, 0x3d01, 0x3d02, 0x3d1f, - 0x3d8c, 0x3d89, 0x3d8b, 0x3d88, 0x3d8d, 0x3d8f, - /* 0x47 */ - 0x9085, 0x3e00, 0x3e05, 0x3e01, 0x3e68, 0x3e6e, 0x3e67, 0x3e75, - 0x1ab6, 0xc945, 0x40d7, 0xc946, 0x3348, 0x40d4, 0x40d8, 0xc947, - 0xc948, 0x40ba, 0xc949, 0x40db, 0x40bf, 0x4135, 0x40bc, 0x40d9, - 0x01c4, 0x40dd, 0x4100, 0x40d5, 0x4130, 0x40bd, 0x40dc, 0x43fd, - 0x43fe, 0x4407, 0x7517, 0x456f, 0x4569, 0x4570, 0x4567, 0x45a9, - 0x4595, 0x4590, 0x456c, 0x4597, 0x4571, 0x0252, 0x4574, 0x456d, - 0x458e, 0x472f, 0xc61b, 0x47a9, 0x484e, 0xc95f, 0x485a, 0x4848, - 0x4855, 0x484c, 0x4849, 0x484f, 0x484a, 0x49d6, 0x49a0, 0x49a9, - 0xc967, 0x499d, 0x49d4, 0x49a4, 0x49a8, 0x49a6, 0x49e6, 0x4b7d, - 0x4b77, 0x4b7a, 0x4c41, 0x4c49, 0x4c59, 0x4c45, 0x4c48, 0x4c40, - 0x4d8e, 0x4d95, 0x4d90, 0x4df7, 0x4df8, 0x4df6, 0x4dfb, 0x4e9e, - 0x4e9d, 0x4e99, 0xc977, 0x4ea3, 0x4ea9, 0x4e98, - /* 0x48 */ - 0x4ea0, 0x4e96, 0x4e94, 0x4e95, 0x4e9f, 0x4ea1, 0x4f21, 0x4f1d, - 0x4f1f, 0x506d, 0xc97c, 0x509a, 0x5092, 0x507a, 0x507d, 0x50a1, - 0x509d, 0x5099, 0x506b, 0x506e, 0xc97d, 0x5245, 0xc984, 0x52fb, - 0x52eb, 0x52f2, 0x52f9, 0xc986, 0x52f8, 0x52ed, 0x5301, 0x52f7, - 0x5306, 0x539b, 0x53ca, 0x046b, 0x1ec3, 0x546b, 0x546c, 0x5474, - 0x5467, 0x545b, 0x5460, 0x5476, 0x5463, 0x5461, 0x5528, 0x555b, - 0x555e, 0x5560, 0x555d, 0x555c, 0x55f4, 0x5600, 0x5608, 0x5607, - 0x5601, 0x5605, 0x5664, 0x5663, 0x569e, 0x56a0, 0x56a1, 0x569f, - 0x5726, 0x572d, 0x5728, 0x571d, 0x58ec, 0x58e3, 0x58eb, 0x5916, - 0x58c8, 0x931b, 0x58e9, 0x58e4, 0x5924, 0x58d1, 0x0541, 0x58dd, - 0x58c2, 0x58cb, 0x58c7, 0x58e7, 0x0550, 0x58ea, 0x594b, 0xc9a5, - 0x5960, 0x597d, 0x593e, 0xc9a4, 0x5952, 0x594e, - /* 0x49 */ - 0x593c, 0x5932, 0x5930, 0x5923, 0x5bca, 0x5bcb, 0x5bc9, 0x5bc8, - 0x5bcd, 0x5d98, 0x5da0, 0x5d9f, 0x5d9c, 0x5da3, 0x5d97, 0xc9be, - 0x5df1, 0x5e09, 0x5e03, 0x5dea, 0x5e45, 0x5ded, 0x5e05, 0x5e1a, - 0x5e15, 0x5e01, 0x5dec, 0x5e0e, 0x5e17, 0x5e42, 0x5e12, 0x5e10, - 0x5def, 0x5dff, 0x5e00, 0x5e0c, 0x5e0f, 0x5e04, 0x5e08, 0x5e14, - 0x5e43, 0xc9bd, 0x5e1b, 0x5e11, 0x5e13, 0x60cf, 0x60ce, 0x616f, - 0x616e, 0x617a, 0x6170, 0x6164, 0x615e, 0x616c, 0xc9c9, 0x615b, - 0x6161, 0x6165, 0x627f, 0x6280, 0x627c, 0x62a7, 0x62a6, 0x62a1, - 0x06c0, 0x62a8, 0x62a3, 0x62a2, 0x62ad, 0x62a5, 0x6301, 0x62ff, - 0x62fc, 0x6300, 0x6335, 0x63ee, 0x63ef, 0x63f6, 0x63e8, 0x63ea, - 0x63e3, 0x641f, 0x06fc, 0x63e4, 0x63fa, 0x63f1, 0x63fb, 0xc9d4, - 0x653d, 0x653c, 0x0079, 0x6578, 0x6577, 0x100b, - /* 0x4a */ - 0x66d1, 0x66c7, 0x66df, 0x66d0, 0x66e0, 0x66d6, 0x66d8, 0x6716, - 0x670e, 0x66d9, 0x670f, 0x6711, 0x66cd, 0x6689, 0x66ce, 0x6714, - 0x66da, 0x6712, 0x66d3, 0x66c2, 0x66e1, 0x66e9, 0x66ea, 0x66de, - 0x6715, 0x69d9, 0x69d6, 0x69cd, 0x69d0, 0x69d3, 0xc9f0, 0x6a82, - 0x6a85, 0x6a7f, 0x6a7d, 0x6a81, 0x6a83, 0x6a84, 0xada0, 0x6b28, - 0x6b0f, 0x6b17, 0x6b1a, 0x6b25, 0xc9f7, 0x6b9b, 0x6b99, 0x6c92, - 0x6c8c, 0x6c95, 0x6c8d, 0x6ca3, 0x6c93, 0x6c91, 0x6edb, 0x6e99, - 0x6e9a, 0x6f08, 0x6f4c, 0x6f0d, 0x6f01, 0x6f4e, 0x6f02, 0x6f4d, - 0x6f21, 0x6efc, 0xca09, 0x6e8a, 0xca08, 0x6e95, 0x6f11, 0x6f12, - 0x6f46, 0x6f1c, 0x6f49, 0x6f0c, 0x091e, 0x6f13, 0x6f16, 0x6efd, - 0x6f0f, 0x6f1f, 0x7230, 0x726e, 0x726b, 0x729b, 0x727b, 0x7263, - 0x7297, 0x726d, 0x729c, 0x7298, 0x726f, 0x7267, - /* 0x4b */ - 0x7269, 0x7515, 0x7563, 0x7586, 0x758a, 0x7587, 0x7588, 0x7585, - 0x7589, 0x75ca, 0x75c7, 0x75cb, 0x75cc, 0x75c9, 0x760d, 0x7683, - 0x7684, 0x7678, 0x7682, 0x7673, 0x7679, 0x768c, 0x77d0, 0x77cf, - 0x77d2, 0x77d9, 0x77cc, 0x77eb, 0x77fd, 0x77ec, 0x77e8, 0x77f8, - 0x77fa, 0xca27, 0x0a85, 0x77e1, 0x77fb, 0x78e7, 0xca2e, 0x79a5, - 0x7991, 0x79a6, 0x797c, 0x7992, 0x79a2, 0x79a0, 0x7afc, 0x7afe, - 0x7b57, 0x7b53, 0x7b58, 0x7be7, 0x7c8e, 0xca38, 0x7c83, 0x7c8b, - 0x7c84, 0x0b97, 0x7da2, 0x7db7, 0x7da9, 0x7da5, 0x7d9f, 0x7daa, - 0x7d97, 0x7da1, 0x7d9e, 0x7dab, 0x7d99, 0x7da3, 0x7f30, 0x7f32, - 0x7f2f, 0x7f70, 0x7f6c, 0x7f6f, 0x7fe8, 0x7fee, 0x7fea, 0x806d, - 0x8076, 0x8070, 0x8071, 0x806c, 0x81eb, 0x81b5, 0x8196, 0x8190, - 0x818d, 0xca49, 0x81a2, 0x81b0, 0x8192, 0x81a0, - /* 0x4c */ - 0x8193, 0x81c3, 0x818e, 0x81b6, 0x819d, 0x8195, 0x81b3, 0x81a4, - 0x8370, 0x83d4, 0x0c93, 0x83cf, 0x3470, 0x8494, 0x2561, 0x84c0, - 0x84b4, 0x84c1, 0x0cb2, 0x84bd, 0x84af, 0x8677, 0x8678, 0x866b, - 0x866d, 0x866e, 0x8672, 0x866f, 0x8671, 0x62ab, 0x868c, 0x873f, - 0x87b6, 0x87b7, 0x2606, 0x87bb, 0x87b8, 0x3a9c, 0x87b9, 0x2601, - 0x898b, 0x897a, 0x8984, 0x8988, 0x8991, 0x8979, 0x898e, 0x8980, - 0x8982, 0x897c, 0x0da4, 0x8a84, 0x8a7f, 0x0df2, 0x8b3b, 0x8b71, - 0x8b3d, 0x8b30, 0x0df1, 0x8b3e, 0x8b38, 0x8c5e, 0x8c64, 0x0e81, - 0x8c5d, 0x8c6d, 0x8c4f, 0x8c62, 0x8c5f, 0x8dec, 0x8df2, 0x8df4, - 0x8df7, 0x8df6, 0x8e07, 0x8ded, 0x8dea, 0x8df0, 0x8df8, 0x8df3, - 0x0edc, 0xca72, 0x8f31, 0x8f2f, 0x8fb6, 0x8fae, 0x8faa, 0x8fbf, - 0x8fcc, 0x8fc7, 0x9983, 0x9080, 0x907b, 0x907f, - /* 0x4d */ - 0x907d, 0x9083, 0xca78, 0x9146, 0x912d, 0x9125, 0x9126, 0x912c, - 0x9137, 0x9131, 0x9133, 0x9132, 0x9127, 0x912a, 0x912e, 0x912f, - 0x91c0, 0x9271, 0x9261, 0x9262, 0x9266, 0x9318, 0x93c5, 0x93c3, - 0x93c4, 0x93c2, 0x93ae, 0x9410, 0x9408, 0x941f, 0x943a, 0x943b, - 0x9436, 0x940c, 0x9406, 0x942a, 0x9457, 0x9450, 0x9420, 0xca85, - 0x942c, 0x9421, 0x940b, 0x9419, 0x9435, 0x9418, 0x940f, 0x9413, - 0x9455, 0x9439, 0x941a, 0x100c, 0x9417, 0x95e4, 0x95e9, 0x758b, - 0x9610, 0x9612, 0x963f, 0x966e, 0x7518, 0xca8c, 0x96d6, 0x96d5, - 0x96d7, 0x3e02, 0x106d, 0x9731, 0x9730, 0x973a, 0x9885, 0x986b, - 0x9948, 0x994b, 0x9937, 0x997b, 0x996c, 0x9985, 0x9965, 0x9936, - 0x9986, 0x9934, 0x9968, 0x995a, 0x9958, 0x9972, 0x996a, 0x98d3, - 0x993c, 0x9933, 0x993b, 0x994d, 0x994f, 0x997c, - /* 0x4e */ - 0x99b0, 0x995b, 0x9955, 0x9964, 0x996b, 0x9953, 0x10e6, 0x9957, - 0x995e, 0x996d, 0x9935, 0x9969, 0x9959, 0x9966, 0x9950, 0x9951, - 0x995c, 0x9a5d, 0x9987, 0x9978, 0x9949, 0x994e, 0x98f1, 0x9973, - 0x9988, 0x98cf, 0xcaa4, 0x9cb1, 0x9cb3, 0x9d9c, 0x9da4, 0x9d90, - 0x9db8, 0x9da0, 0x9d9d, 0x9da8, 0x9da9, 0xcab9, 0x9db1, 0x9d93, - 0x9d9b, 0x9da2, 0x9da1, 0x9db0, 0x9da7, 0x9fb3, 0x2b49, 0x9fb4, - 0x9ff1, 0x9fed, 0x9fec, 0xa068, 0xa075, 0xa06a, 0xa062, 0xa067, - 0xa060, 0xa077, 0xa05f, 0xa079, 0xa223, 0xa221, 0xa21c, 0x2c99, - 0xa21f, 0xa21e, 0xa2d6, 0xa2d3, 0xa2d9, 0xa2d7, 0xa2d4, 0xa2dc, - 0xa2d8, 0xa3a3, 0x12d1, 0xa3be, 0xa3a9, 0xa3a1, 0xa3a0, 0xa3ab, - 0xa3a2, 0xa3ba, 0xa3c2, 0xa39c, 0xa3bb, 0xa3aa, 0xa3ac, 0xa3a5, - 0xa3c1, 0x132c, 0xa5e2, 0xa636, 0xa63d, 0xa63a, - /* 0x4f */ - 0x5661, 0xa648, 0xa63c, 0xa6b7, 0xa6ac, 0xa6b3, 0xa6b6, 0xa6b2, - 0x136e, 0xa75d, 0xa749, 0xa74e, 0xa74f, 0xa74d, 0xa75c, 0xa85d, - 0xa8bb, 0xa8ce, 0xa8bf, 0xa8ba, 0xa8c3, 0x13e5, 0xaa06, 0xa9f8, - 0xa9fe, 0xaa13, 0xa9f6, 0x13e6, 0xab34, 0xab2d, 0xab2a, 0xab35, - 0xab2c, 0xabd4, 0xabda, 0xabd3, 0xabd2, 0xabce, 0xabcf, 0x149f, - 0xadfd, 0xae0b, 0xadfe, 0xadf8, 0xadf7, 0xae17, 0xadfa, 0xadf9, - 0xae00, 0xadf5, 0xadf1, 0xae03, 0xae05, 0xae1c, 0xafac, 0xaf9a, - 0xafad, 0xafa0, 0xb01b, 0xb025, 0xb024, 0xb026, 0xb027, 0xb028, - 0xb02a, 0xb01a, 0xb02e, 0xb015, 0xb115, 0xb114, 0xb117, 0xb118, - 0xb10f, 0xb113, 0xb10b, 0xb122, 0x457a, 0xb226, 0x301f, 0xb251, - 0xb24d, 0xb24e, 0xb24a, 0xb24b, 0xb24c, 0xb250, 0xb262, 0xb24f, - 0xb252, 0xb368, 0xb369, 0xb3e5, 0xb3f0, 0xb3e1, - /* 0x50 */ - 0xb3e2, 0xcaf2, 0xb5a5, 0xb5a9, 0xb5a4, 0xb5af, 0xb5ac, 0xb5ae, - 0xb5aa, 0xb695, 0xb699, 0xb693, 0xb69d, 0xb698, 0xb69c, 0xb697, - 0x160d, 0xb789, 0xb787, 0xb8d7, 0xb8ed, 0xb8f1, 0xb8f0, 0xb905, - 0xb903, 0xb904, 0xb95f, 0xbb57, 0xbc9c, 0xbca1, 0xbc9a, 0xbd8f, - 0xbd93, 0xbd9e, 0xbda3, 0xbd98, 0xbd99, 0xbd95, 0xbe6e, 0xbe6a, - 0xbff4, 0xbff7, 0xc179, 0xc38f, 0xc391, 0xc40b, 0xc802, 0x3384, - 0x3404, 0x3480, 0x362f, 0x363f, 0x363b, 0x3662, 0x3644, 0x3633, - 0x365f, 0x362b, 0xc909, 0x3639, 0x3636, 0x3648, 0x3635, 0x366c, - 0x3658, 0x363a, 0x37a8, 0x37f4, 0x3829, 0x389a, 0x3900, 0x3abb, - 0x3abd, 0x3ab7, 0x3ab2, 0x00f8, 0x3aa8, 0x3aab, 0x3aa6, 0x3abc, - 0x3b97, 0x3b96, 0x3bf8, 0x1913, 0x3c51, 0x0133, 0x3cb5, 0x3cb4, - 0x3cb6, 0x013c, 0x3cb7, 0x3d05, 0x3d23, 0x3d95, - /* 0x51 */ - 0x3d98, 0x014f, 0x3d94, 0x3d93, 0x3e07, 0x3e73, 0x3e71, 0x3e72, - 0x3e78, 0x415f, 0x416a, 0x4167, 0x416b, 0x4169, 0x418e, 0x4149, - 0x4180, 0x01dc, 0x4144, 0x418f, 0x4145, 0xc94c, 0x414f, 0x4163, - 0x4136, 0x4148, 0x415c, 0x4193, 0x4161, 0x4160, 0x414e, 0x415e, - 0x413f, 0x41a4, 0x1ae0, 0x4168, 0x440b, 0x4411, 0x440d, 0x440e, - 0x45c2, 0xc957, 0x45b0, 0x45c3, 0x45c8, 0x4565, 0x45d7, 0x45bd, - 0x45b8, 0x45b6, 0x45c7, 0x45bc, 0x45b1, 0x45af, 0xc95b, 0x4735, - 0x4730, 0x475d, 0x3e76, 0x476f, 0x47b0, 0xc95e, 0x47b4, 0x485c, - 0x485d, 0x4a08, 0x49ee, 0x4a0b, 0x49f2, 0x49fd, 0x49f1, 0x4a10, - 0xc968, 0x4a14, 0x4b8b, 0x4b8c, 0x4b85, 0x4c7a, 0x4c6c, 0x4c60, - 0x4c67, 0x4c66, 0x4c6a, 0x4c5f, 0x4c6d, 0x4c68, 0x4c64, 0x4d3a, - 0x4d3b, 0x4d39, 0x4e02, 0x4e04, 0x4e03, 0x4eb4, - /* 0x52 */ - 0x4eb3, 0x4ebb, 0x4eac, 0x4eb6, 0x4eb1, 0x4eaf, 0x4eb5, 0x4ebe, - 0x4eb2, 0x4f24, 0x50b6, 0x50b9, 0x50ac, 0x50b0, 0x50d7, 0x50bb, - 0x50fe, 0x50cb, 0xc97f, 0x03f5, 0x50b3, 0x50be, 0x50cd, 0x50bc, - 0x50ba, 0x50c7, 0x5316, 0x531b, 0x5317, 0x5315, 0x539f, 0xc98e, - 0x5482, 0x5483, 0x548e, 0x546a, 0x5489, 0x5494, 0x5486, 0x5490, - 0x5562, 0x5590, 0x560c, 0x560f, 0x04c3, 0x56a5, 0x56a7, 0x56a6, - 0x56a4, 0x5735, 0x5738, 0x5736, 0x5743, 0x5747, 0x5737, 0x5943, - 0x59a2, 0x5951, 0x5972, 0x596d, 0x592f, 0x5954, 0x596e, 0x5955, - 0x5937, 0x594f, 0x5950, 0x1f39, 0x599e, 0xc9a8, 0x59b3, 0x59a7, - 0x0571, 0x59f9, 0x5991, 0xc9a7, 0x59b6, 0x59dd, 0x5999, 0x5bdf, - 0x5bd5, 0x77f5, 0x5e28, 0x5e40, 0x5e71, 0x5e98, 0x5e95, 0x5e65, - 0x5e78, 0x5e7f, 0x5e60, 0x5e7c, 0x5e96, 0x5e6a, - /* 0x53 */ - 0x5e79, 0x5e73, 0x5e72, 0x5e7b, 0x5e70, 0x60d5, 0x60d7, 0x618f, - 0x6189, 0x619e, 0x6187, 0x61a0, 0x618d, 0x6188, 0x617f, 0x618c, - 0x6193, 0x6259, 0xbcb0, 0x62b1, 0x81f4, 0x62af, 0x62b2, 0x6308, - 0x630a, 0x6336, 0x6337, 0xc9cf, 0x0701, 0x6436, 0x6429, 0x644a, - 0x6426, 0x6428, 0x6424, 0x642a, 0x6448, 0x6544, 0x6584, 0x658c, - 0x66c4, 0x66dc, 0x6787, 0x6753, 0x677f, 0x6731, 0x6751, 0x674b, - 0x6752, 0x6780, 0x67a5, 0x6781, 0x6743, 0x6734, 0x6736, 0x6732, - 0x6748, 0x6749, 0x673c, 0x674d, 0x674a, 0xc9e6, 0x678a, 0x6746, - 0x673e, 0x6783, 0x6750, 0x67b4, 0x69f0, 0x69e4, 0x69e3, 0x69e5, - 0x69e6, 0x69e7, 0x69e1, 0x69ef, 0x69e8, 0x69dd, 0x6a03, 0x6a88, - 0x6b26, 0x6b16, 0x6b3b, 0x6b2f, 0x6b39, 0x6b34, 0xc9f4, 0x6b35, - 0x6b31, 0x6b38, 0x3e81, 0x6baa, 0x6ba3, 0x6ba4, - /* 0x54 */ - 0x6ba0, 0x6ba1, 0x6ba9, 0x6ba5, 0x6caf, 0x6cb1, 0x6cab, 0x6cae, - 0x6cb0, 0x6cb3, 0x6cac, 0x6ca9, 0x6cb2, 0x6ca8, 0x6cb4, 0x6cc2, - 0x6d4f, 0x6d66, 0x6f1e, 0x6f15, 0x6f10, 0x6f7f, 0x6f7e, 0x6f60, - 0x6fcc, 0x6fb2, 0x6f62, 0x6f8d, 0x6f8e, 0x6f77, 0x6f7c, 0x6f8f, - 0x6f5d, 0x6f6d, 0x6f63, 0x6faf, 0x6f90, 0x6f7d, 0x6f7a, 0x6f06, - 0xca0b, 0x6f68, 0x6fb4, 0x6f78, 0x6fb1, 0x22d7, 0xca0c, 0x0941, - 0x72e8, 0x72e9, 0x72c0, 0x09d7, 0x72ea, 0x72b7, 0x72ba, 0x72b5, - 0xca1d, 0x72b4, 0x72bc, 0x72c6, 0x72b8, 0x72bd, 0x72c2, 0x734d, - 0x72f0, 0x72c7, 0x72c1, 0x72c3, 0x72f1, 0x72ec, 0x09e2, 0x751c, - 0x7520, 0x7558, 0x7565, 0x7564, 0x758c, 0x758d, 0x75d9, 0x75e0, - 0x7610, 0x7694, 0x7692, 0x7696, 0x7695, 0x76bf, 0x76a0, 0x0a45, - 0x77f4, 0x77f6, 0x77dc, 0x243d, 0x7816, 0x7815, - /* 0x55 */ - 0x781c, 0x780f, 0x782c, 0x7814, 0x7825, 0x7817, 0x7812, 0x781e, - 0x7980, 0x79a8, 0x79af, 0x79d6, 0x79e2, 0x79b4, 0x79b3, 0x79b0, - 0x79b2, 0x79a1, 0x7b60, 0x7b66, 0x7b61, 0x7b4e, 0x7b5d, 0x7b63, - 0x7be6, 0x7bef, 0x7bec, 0x7c98, 0x7ca7, 0x7c94, 0x7c95, 0x7c91, - 0x7c9d, 0x7c99, 0x7c9b, 0x7c9c, 0x7d1d, 0x7d1c, 0x7dd0, 0x7de0, - 0x7dcb, 0x7ddb, 0x7dda, 0x7dc2, 0x7dd3, 0x7de5, 0x7f7d, 0x7f7b, - 0x7fff, 0x0bf2, 0x7ff9, 0x8077, 0x807c, 0x8078, 0x807b, 0x807a, - 0x81d2, 0x81cb, 0x81c9, 0x81ce, 0x81e4, 0x81ca, 0x81d0, 0x61a5, - 0x0c49, 0x81d9, 0x81ee, 0x81dd, 0x8200, 0x81e1, 0x83de, 0x83e2, - 0x83da, 0x84ce, 0xca4f, 0x84cf, 0x84da, 0x84d1, 0x84d4, 0x84ed, - 0x84cb, 0x84d5, 0x84f1, 0x869c, 0x8688, 0x8741, 0x87d0, 0x87f7, - 0x87cf, 0x87d1, 0x87db, 0x87de, 0x87f8, 0x87dc, - /* 0x56 */ - 0x87d9, 0x89a0, 0x89b2, 0x89a1, 0x89aa, 0x89a9, 0x0da9, 0x89a6, - 0x899c, 0x89b5, 0x89a7, 0x8a8e, 0x8a90, 0x8a91, 0x8b85, 0x8b5b, - 0x8b70, 0x8b64, 0x8b67, 0x8b63, 0x8b77, 0x8b68, 0x8b65, 0x8b6a, - 0x8b78, 0x8b66, 0x8c88, 0x8c9e, 0x8c74, 0x8c7a, 0x8c79, 0x8c8b, - 0x8c7f, 0x8e13, 0x8e1e, 0x8e17, 0x8e1a, 0x8e22, 0x8e43, 0x8e19, - 0x8e1f, 0x8e27, 0x8e12, 0x8e24, 0x8e25, 0x365e, 0x8f35, 0x8f34, - 0x8fd1, 0x8fc4, 0x8fca, 0x8fc6, 0x8fcb, 0x8fcd, 0x8fe2, 0x9089, - 0x908b, 0x9086, 0x9088, 0x908d, 0x913b, 0x913c, 0x913d, 0x91f5, - 0x9279, 0x9275, 0x9282, 0x927f, 0x9285, 0x9276, 0x927c, 0x927e, - 0x927b, 0x9280, 0x927a, 0x5748, 0x0fcb, 0x931d, 0x93f6, 0x93f7, - 0x93f9, 0x9463, 0x946c, 0x946e, 0x9414, 0x100d, 0x9467, 0x946f, - 0x9469, 0x9476, 0x9495, 0x9471, 0x9461, 0x9478, - /* 0x57 */ - 0x946b, 0x9485, 0x9484, 0x9614, 0x9676, 0x89b6, 0x9675, 0x9674, - 0x96e2, 0x973f, 0x9744, 0x973d, 0x9747, 0x9748, 0x97db, 0x97dc, - 0x97dd, 0x98e5, 0x98e6, 0x99c2, 0x9a2e, 0x9a1d, 0x99f8, 0x99f0, - 0x99f6, 0x99c5, 0x99c6, 0x99fc, 0x9a52, 0x9a2f, 0x9a10, 0x99f3, - 0x99d2, 0x99ea, 0x99dc, 0x9a1b, 0x99fb, 0x99c3, 0x9a16, 0x9a07, - 0x99c9, 0x99d8, 0x9a30, 0x9a13, 0x9a31, 0x99fa, 0x99f2, 0x9ae3, - 0x99d5, 0x9a01, 0x99f1, 0x9a1c, 0x99d6, 0x9a08, 0x9a0b, 0x9a17, - 0x9a20, 0x99ca, 0x9a32, 0x9a05, 0x99e4, 0x99ce, 0x9a33, 0x9a02, - 0x9a19, 0x9a1e, 0x99d3, 0x99f7, 0x99e8, 0x9a1f, 0x99f4, 0x9ad8, - 0x9cbf, 0x9cbe, 0x9cbd, 0x9ddc, 0x9ddd, 0x9dab, 0x9dc9, 0x9dc8, - 0x9ddf, 0x9dd9, 0x9ddb, 0x9dcc, 0x9de0, 0x9def, 0x9df3, 0x9dae, - 0x9e01, 0x9fb7, 0x9fb9, 0x9fb6, 0x9fb8, 0x9ff6, - /* 0x58 */ - 0x9ff3, 0x9ff5, 0x9ff2, 0xa091, 0xa09d, 0xa09b, 0xa092, 0xa08d, - 0xa09e, 0xa08c, 0x1231, 0xcac7, 0xa095, 0xcac6, 0xa08a, 0xa08e, - 0xa09c, 0xa1ef, 0xa22d, 0xa252, 0xa235, 0xa228, 0xa22e, 0xa2e5, - 0xa3ea, 0xa3f1, 0xa3eb, 0xa3d8, 0xa3d0, 0xa3f3, 0xa3db, 0xa3ce, - 0x12d5, 0xa3da, 0xa3d7, 0xa3e1, 0xa3f2, 0xa3c8, 0xa3d9, 0xa3de, - 0xa3d1, 0xa3e7, 0xa3cf, 0xa5b7, 0xa647, 0xa642, 0xa643, 0xcad3, - 0xa6c3, 0xa6c1, 0xa6c7, 0xa764, 0xa76a, 0xa766, 0xa750, 0xa76e, - 0xa765, 0x69ec, 0xa77f, 0xcad5, 0xa79a, 0xa769, 0xa772, 0xa76f, - 0xa77d, 0xa770, 0xa860, 0xa8c2, 0xa8e7, 0xa8d1, 0xa8eb, 0xa8d4, - 0xa8dc, 0xa8db, 0xaa37, 0xaa25, 0xaa1f, 0xaa1e, 0xaa21, 0xaa1b, - 0xaa17, 0xaa22, 0xaa2a, 0xaa1a, 0xaa2d, 0xaa23, 0xaa26, 0xaa36, - 0xa9ff, 0xab3a, 0xab40, 0xab42, 0xab38, 0xab3b, - /* 0x59 */ - 0xab3c, 0xab43, 0xabe8, 0x1456, 0xabf9, 0xabeb, 0xabf1, 0xabe9, - 0xabec, 0xad15, 0xad47, 0xad46, 0xad45, 0xae24, 0xae56, 0xae21, - 0xae27, 0xae4d, 0xae31, 0xae1e, 0xae2c, 0xae4f, 0xae2b, 0xae53, - 0xae51, 0xae54, 0xae29, 0xae50, 0xae1f, 0xae32, 0xae2a, 0xae1d, - 0xae28, 0xae2e, 0xae2d, 0xafbc, 0xafbb, 0xafbd, 0xcae4, 0xb047, - 0xb041, 0xcae5, 0xb049, 0x14f4, 0xb12e, 0xb127, 0xb26a, 0xb27b, - 0xb273, 0xb275, 0xb269, 0xb279, 0xb272, 0xb376, 0xb377, 0xb374, - 0xb373, 0xb402, 0xb3fe, 0xb401, 0xb3f9, 0xb3f4, 0xb5d3, 0xb5d5, - 0xb5d8, 0xb5c3, 0xb5ca, 0xb5d0, 0xb5cb, 0xb5ce, 0xb5c5, 0xb5e6, - 0xb5c4, 0xb5c0, 0xb5d4, 0xb5e8, 0xb676, 0xb6a2, 0xb6ae, 0xb6a8, - 0xb6a3, 0xb6a7, 0xb696, 0xb6a9, 0xb6a5, 0xb6af, 0xb6a4, 0xb6ab, - 0xb6aa, 0xb6a6, 0xb6a0, 0xb798, 0xb8db, 0xb8f6, - /* 0x5a */ - 0xb8f5, 0xb90c, 0xb90a, 0x3175, 0xb968, 0xb963, 0xb966, 0x1658, - 0xb964, 0xb96a, 0xb969, 0xba95, 0xbb02, 0xbb6a, 0xbb5e, 0xbb68, - 0xbb69, 0xbb65, 0xcafe, 0xbca7, 0xbcae, 0xbca8, 0xbcb3, 0xbd9c, - 0xbda9, 0xbdb6, 0xbdb3, 0xbdb2, 0xcb03, 0xbdb8, 0xbdc0, 0xbdbf, - 0xbdba, 0xbda8, 0xbe3c, 0xbe72, 0xbe71, 0xbe75, 0xbe73, 0xbf17, - 0xbf15, 0xbf16, 0xbf1b, 0xbffa, 0xbff9, 0xc12c, 0xc185, 0xc182, - 0xc17f, 0xc17d, 0xc188, 0x72f3, 0xc24e, 0xc250, 0xc393, 0xc397, - 0xc398, 0xc39b, 0xc39c, 0xc396, 0xc58b, 0xc5fd, 0xc5fc, 0xcb17, - 0x6a8b, 0x3408, 0x3407, 0x3673, 0x36a2, 0x36af, 0x3682, 0x367b, - 0x3674, 0x36b0, 0x3676, 0x36b9, 0x369e, 0x36b1, 0x36a1, 0x36b2, - 0x366e, 0xc90b, 0x0087, 0x3678, 0x367a, 0x3683, 0x369a, 0x37f8, - 0x3831, 0x3869, 0x3868, 0x389c, 0x3904, 0x3999, - /* 0x5b */ - 0x3ac7, 0x3ac6, 0x3adc, 0x3ac4, 0x3ad8, 0x3ad4, 0x3adf, 0x3ad1, - 0x3ad0, 0x3ad6, 0x3acf, 0x3bad, 0x3baf, 0x3ba7, 0x3bfd, 0x3c5b, - 0x3c5a, 0x3d07, 0x3d9d, 0x3d9b, 0x3dab, 0x3da4, 0x3d9c, 0x3d9e, - 0x3da5, 0x3daa, 0x3da6, 0x3e0e, 0x3e7e, 0x3e7c, 0x41ee, 0x41d5, - 0x41e9, 0x4142, 0x41e2, 0x4223, 0x41d9, 0x41d4, 0x41e3, 0x4215, - 0x41ef, 0x41f0, 0x41d6, 0x41dd, 0x41f6, 0x421c, 0x41d8, 0x41db, - 0x41da, 0x41ed, 0x4611, 0x4415, 0x4418, 0x441a, 0x441f, 0x4416, - 0xc94d, 0x4419, 0xc94b, 0x45f0, 0x4609, 0x461b, 0xa5e7, 0x45f6, - 0x45f4, 0x45b5, 0x4610, 0x45f2, 0x4615, 0x45f3, 0x45f8, 0x4739, - 0x473b, 0x4736, 0x460e, 0x4772, 0x4774, 0x47b9, 0x47b7, 0x47b8, - 0x4872, 0x486b, 0x4a1d, 0x4a37, 0x4a22, 0x4a43, 0x4a4d, 0x4a38, - 0x4a5b, 0x4a79, 0x4a1b, 0x49f3, 0x4b91, 0x4c7b, - /* 0x5c */ - 0x4c94, 0xc96f, 0x4c96, 0x4c7f, 0x4c8f, 0x4c84, 0x4c7c, 0x4c8e, - 0x4c90, 0x4c98, 0x4c83, 0x4c80, 0x4c93, 0x4c82, 0x32fd, 0x4d3d, - 0x4d41, 0x4da1, 0x4d9f, 0x4e0a, 0x4e0d, 0x4ec8, 0x4ec9, 0x4ec7, - 0x4ecd, 0x4f25, 0x50b1, 0x50dc, 0xc980, 0x50e5, 0x50f4, 0x50bf, - 0x50db, 0x50ea, 0x50f2, 0x03fa, 0x50f1, 0x50ed, 0x50e6, 0x5202, - 0xc982, 0x5325, 0x5318, 0x531f, 0x5320, 0x53cf, 0x549d, 0x5499, - 0x54a8, 0x5568, 0x5566, 0x5567, 0x5591, 0x5613, 0x5615, 0x561d, - 0x5616, 0x5619, 0x566b, 0x5668, 0x566a, 0x566d, 0x5669, 0x56aa, - 0x5757, 0x5752, 0x5750, 0x575f, 0x5767, 0x574f, 0x04f2, 0x575b, - 0x575c, 0x575d, 0x5a1f, 0x599d, 0x59b1, 0x59b0, 0x5994, 0x59c3, - 0x59af, 0x59a8, 0x59dc, 0x5998, 0x59c4, 0x59a4, 0x59ab, 0x59aa, - 0x59a5, 0x5a21, 0x59eb, 0x59e6, 0x59f7, 0x59f8, - /* 0x5d */ - 0x59fc, 0x59fa, 0x59e0, 0xc9aa, 0x59f6, 0xc9a9, 0x59e1, 0x5bec, - 0x5be2, 0x5be4, 0x5bf9, 0x5e6f, 0x6b4c, 0x5ebb, 0x5ee1, 0x5f00, - 0x5ed8, 0x062f, 0x5ed6, 0x5ee2, 0x5ec3, 0x5eb3, 0x5ed2, 0xc9c1, - 0x5ece, 0x5ed0, 0x5ed5, 0x5eb9, 0x5eba, 0x5ecf, 0x5ebd, 0x60db, - 0x61aa, 0x61ad, 0x61b8, 0x61b6, 0x61b5, 0x61af, 0x61b4, 0x61b7, - 0x61a8, 0x61b9, 0x61be, 0x6282, 0x62bc, 0x62b8, 0x62b6, 0x62b9, - 0x06c1, 0x6310, 0x6427, 0x6469, 0x6470, 0x6456, 0x646b, 0x647a, - 0x646c, 0x646d, 0xc9d5, 0x94c1, 0x658d, 0x6590, 0x67b6, 0x6810, - 0x6812, 0x67ba, 0x67bd, 0x6805, 0x67c2, 0x6807, 0x67f5, 0xc9e9, - 0x67af, 0x67f4, 0x67f7, 0x67f8, 0x6811, 0x69f6, 0x69f5, 0x69fb, - 0x6a01, 0x6a00, 0x6a02, 0x69fe, 0x69fa, 0x69fd, 0x0840, 0x6b37, - 0x6b49, 0x6b4b, 0x6b46, 0x6b47, 0x6bb3, 0x6bb2, - /* 0x5e */ - 0x6bb0, 0x6bb7, 0x6c11, 0x6ccc, 0x6cdf, 0x6cd3, 0x6cd5, 0x6cdb, - 0x6cc5, 0x6cc8, 0x6cc9, 0x6ce2, 0x6cca, 0x6cd1, 0x6cd2, 0x6cdd, - 0x6f6c, 0x6f73, 0x7021, 0x6ff0, 0x701f, 0x703b, 0x7022, 0x7023, - 0x6fe8, 0x6fdd, 0x093f, 0x701b, 0x6fed, 0xca0e, 0x6ff2, 0x0946, - 0x6fdc, 0x6fe9, 0x701d, 0x6fda, 0x6fe6, 0x7313, 0x7315, 0x7316, - 0x733c, 0x730b, 0x731c, 0x733a, 0x733d, 0x739a, 0x731d, 0x7309, - 0x7308, 0x733b, 0x7522, 0x7526, 0x7525, 0x7524, 0x369b, 0x758f, - 0x7590, 0x75e6, 0x75e3, 0x75e5, 0x7611, 0xca25, 0x76ae, 0x76be, - 0x76b4, 0x76b3, 0x76af, 0x7691, 0x76c2, 0x76b6, 0x76b2, 0x7857, - 0x783b, 0x7858, 0x7851, 0x7841, 0x7839, 0x0a8f, 0x7859, 0x7845, - 0x7861, 0x78e8, 0x79fa, 0x79ea, 0x79ef, 0x79f2, 0x79f0, 0x7b08, - 0x7b70, 0x7b6a, 0x7b73, 0x7b68, 0x7bc8, 0x7bf2, - /* 0x5f */ - 0x3e7b, 0x7cae, 0x7cab, 0x7cb5, 0x7caf, 0x7cb2, 0x7cb6, 0x7cb0, - 0x7d1e, 0x7e03, 0x7e06, 0x7e1f, 0x0bac, 0x7e0f, 0x7e02, 0x7e19, - 0x7e18, 0x7e22, 0x7e15, 0x7e07, 0x7e0d, 0x7e24, 0x7e0c, 0x7e1e, - 0x7f89, 0x7f8a, 0x800a, 0x800b, 0x8007, 0x8004, 0x8009, 0x8084, - 0x8083, 0x8218, 0x8214, 0x8205, 0x8216, 0x820e, 0x8211, 0x8208, - 0x820b, 0x8215, 0x8085, 0x8237, 0x822a, 0x820d, 0x820f, 0x837e, - 0x8376, 0x8377, 0x83ec, 0x84fc, 0x8508, 0x84ff, 0x8503, 0x8510, - 0x8505, 0x8506, 0x84fa, 0x86c7, 0x86c0, 0x86c3, 0x86a7, 0x86a8, - 0x86ab, 0x86c1, 0x86aa, 0x86c8, 0x8743, 0x8802, 0x880e, 0x8801, - 0x87fe, 0x8803, 0x0d68, 0x8822, 0x8821, 0x8807, 0x8808, 0x880c, - 0x89ca, 0x89bc, 0x89be, 0x89bd, 0xca5c, 0x89bb, 0x89b9, 0x0dab, - 0x89c5, 0x8a99, 0x8b6b, 0x8b93, 0x8b94, 0x8ba9, - /* 0x60 */ - 0x8ba0, 0x8ba6, 0xca61, 0x8bab, 0x8b9e, 0x8b9b, 0x8b91, 0x8b99, - 0x8cb6, 0x8cb8, 0x8c9a, 0x0e91, 0x8c98, 0x8c9b, 0x8cb3, 0x8ca2, - 0x54aa, 0x8ca0, 0x8c9f, 0x8e5b, 0x8e70, 0x8e54, 0x8e71, 0x8e65, - 0x8e51, 0x8e9d, 0x8e61, 0x8e5a, 0x8e74, 0x8e4c, 0x8e4b, 0x8e5e, - 0x8e58, 0x8e53, 0x8e52, 0x8f3b, 0x8f39, 0x8fd6, 0x8fe7, 0x8fd7, - 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fe0, 0x8fe4, 0x8fdd, - 0x8ff5, 0x8ff1, 0x9098, 0x909d, 0x9099, 0x9150, 0x9149, 0x27e4, - 0x9162, 0x91d7, 0x9201, 0x91f7, 0xca7d, 0x928c, 0x929c, 0x2888, - 0x931f, 0x931e, 0x943d, 0x943f, 0x9411, 0x9459, 0x943e, 0x9458, - 0x9500, 0x949e, 0x94b6, 0x94aa, 0x94af, 0x94ac, 0x1030, 0x94c0, - 0x94a9, 0x3e10, 0x95ee, 0x9677, 0x9679, 0x967a, 0x967d, 0x967f, - 0x9683, 0x9678, 0x967e, 0x96e4, 0x96e6, 0x96e5, - /* 0x61 */ - 0x105d, 0x974e, 0x9759, 0x1075, 0xca8e, 0x974f, 0x974a, 0x97e3, - 0x97de, 0x97e2, 0x9974, 0x99ac, 0x9961, 0x9962, 0x9976, 0x997a, - 0x9979, 0x9960, 0x9a64, 0x9b81, 0x9adf, 0x9a84, 0x9a8a, 0x9a92, - 0x9a79, 0x9ade, 0x9a98, 0x9a6c, 0x9ae1, 0xcaa5, 0x9a7c, 0x9a72, - 0x9a81, 0x9ae0, 0x9a65, 0x10ff, 0x9a6a, 0x9a97, 0x9aaa, 0x9ad3, - 0x9aab, 0x9a6e, 0x9aac, 0x9a76, 0x9a7b, 0x9aad, 0xcaa6, 0x9a94, - 0x9ad7, 0x9a70, 0x9ad5, 0x9af1, 0x9a7a, 0x9a68, 0x9a96, 0x110b, - 0x9a73, 0x9aae, 0x9add, 0x9ada, 0x9aaf, 0x9ab0, 0x9adb, 0x9a62, - 0x9af8, 0x9cc2, 0x9cc7, 0x9cc8, 0x9cc5, 0x9cc3, 0x9cc6, 0x9dde, - 0x11c8, 0x9e11, 0x9e15, 0x9e28, 0x9e21, 0x9e2d, 0x9e51, 0x9e2b, - 0x9e16, 0x9e24, 0x9e35, 0x9e1f, 0x9e12, 0x9e10, 0x9e80, 0x9e3b, - 0x9e29, 0x9e2a, 0x9e1b, 0x9e18, 0x9e20, 0x9e3f, - /* 0x62 */ - 0x9e1c, 0x9e26, 0x9e0b, 0x9fbe, 0x9fc4, 0x9fbd, 0x9ffa, 0x9ffb, - 0xa0b1, 0xa0b2, 0xa0b0, 0xa0b9, 0xa0a6, 0xa0bd, 0xa0b6, 0xa0b8, - 0xa0b4, 0xa0b3, 0xa0a7, 0xa0ae, 0xa0bc, 0xa1f2, 0xa1f3, 0xa1f4, - 0xa23b, 0xa240, 0xa246, 0xa2f0, 0xa2ee, 0xa2e8, 0xa2f1, 0xa2eb, - 0xa2ef, 0xa3fc, 0xa420, 0xa409, 0xa406, 0xa403, 0xcacf, 0xa419, - 0xa424, 0xa41b, 0xa41d, 0xa3fd, 0xa41e, 0xa3f4, 0xa401, 0xa408, - 0xa405, 0xa423, 0xa3ff, 0xa5ea, 0xa64d, 0xa64e, 0xa656, 0xa657, - 0xa651, 0xa655, 0xa654, 0xa6cb, 0xa6d4, 0xa6d1, 0xa6cf, 0xa6d2, - 0xa6ca, 0xa6d6, 0xa78b, 0xa788, 0xa785, 0xa789, 0x4c9b, 0xa7bb, - 0xa78c, 0x1374, 0xa799, 0xa78a, 0xa8ec, 0xa8ef, 0xa8f9, 0xa909, - 0xa8f8, 0xa8f3, 0xa900, 0xa91d, 0x13ac, 0xa8fd, 0xaa48, 0xaa5c, - 0xaa55, 0xaa5e, 0xaa49, 0xaa63, 0xaa60, 0xaa53, - /* 0x63 */ - 0xaa62, 0xaa40, 0xab49, 0xab4a, 0xab4c, 0xab4d, 0xac0a, 0xac06, - 0xac2f, 0xac21, 0xac07, 0xac09, 0xac02, 0xac16, 0xac03, 0xac0b, - 0xac0f, 0xae60, 0xae68, 0xae5e, 0xae5d, 0xae63, 0xae5f, 0xae64, - 0xae78, 0xae61, 0xae69, 0xae65, 0xafda, 0xafe6, 0xafdb, 0xafdc, - 0xb039, 0xb057, 0xb055, 0xb065, 0xb061, 0xb054, 0xb145, 0xb141, - 0xb13e, 0xb137, 0xb212, 0xb213, 0xb22c, 0xb296, 0xcae9, 0xb29c, - 0xb29d, 0xb285, 0xcae8, 0xb29f, 0xb2a3, 0xb382, 0xb383, 0xcaee, - 0xb41d, 0xb414, 0xb41f, 0xb420, 0xb547, 0xb580, 0xb5c9, 0xb5f9, - 0xb606, 0xb5f0, 0xb5f8, 0xb5ef, 0xb5fd, 0xb5f1, 0xb5fe, 0xb6b8, - 0xb6c0, 0xb6c3, 0xb6b5, 0xb6b6, 0xb6c9, 0xcaf3, 0xb6bd, 0xb6ba, - 0xb6bf, 0xb6b3, 0xb6c6, 0xb6b2, 0xb6bc, 0xb6b7, 0xb6b9, 0xb6c8, - 0xb7b5, 0xb7b3, 0x1616, 0xb7ac, 0xb7a9, 0xb7ad, - /* 0x64 */ - 0xb911, 0xb90d, 0xb916, 0xb989, 0xb97c, 0xb98b, 0xb97b, 0xb988, - 0xb984, 0xba9d, 0xba98, 0xbb88, 0xbb86, 0xbb82, 0xbb8b, 0xcaff, - 0xbb71, 0xbb72, 0xbb81, 0xbb8c, 0xbb80, 0xbb89, 0xbcbb, 0xbcc1, - 0xbcbe, 0xcb01, 0xbcbd, 0xbdc1, 0xbdb4, 0xbdb7, 0xbdc8, 0x173b, - 0xbdd3, 0xbdd0, 0xbdb0, 0xbdca, 0xbdcd, 0xbe15, 0xbe19, 0xbe17, - 0xbe3f, 0xbe40, 0xbe44, 0xbe7c, 0xbe78, 0xbe79, 0xbe88, 0xcb06, - 0xbe89, 0xbe7d, 0xbf23, 0xbf24, 0xbf26, 0xbf22, 0xbf27, 0xbf1f, - 0xbfc9, 0xbfc3, 0xc00a, 0xc00b, 0xc004, 0x17ef, 0xc003, 0xc001, - 0xc009, 0xc10f, 0xc12e, 0xc12d, 0xc191, 0xc199, 0xc19e, 0xc190, - 0xc194, 0xc19d, 0xc198, 0xc19b, 0xc19c, 0xc19a, 0xc254, 0xc39d, - 0xc39f, 0xc3a3, 0xc3a4, 0xc3a5, 0xc602, 0xc717, 0xc71b, 0xc719, - 0xc7d1, 0x4737, -}; - -static const ucs4_t cns11643_6_2uni_upages[204] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, - 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, - 0x05100, 0x05300, 0x05500, 0x05a00, 0x05b00, 0x05d00, 0x05e00, 0x06100, - 0x06500, 0x06800, 0x06e00, 0x07200, 0x07300, 0x07800, 0x07a00, 0x07f00, - 0x08000, 0x08100, 0x08200, 0x08800, 0x08900, 0x08a00, 0x08d00, 0x08f00, - 0x09200, 0x09700, 0x0ff00, 0x20000, 0x20100, 0x20200, 0x20300, 0x20400, - 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20c00, - 0x20d00, 0x20e00, 0x20f00, 0x21100, 0x21200, 0x21300, 0x21400, 0x21500, - 0x21600, 0x21700, 0x21800, 0x21900, 0x21a00, 0x21b00, 0x21c00, 0x21d00, - 0x21e00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, 0x22400, 0x22500, - 0x22600, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, 0x22d00, - 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23400, 0x23500, - 0x23600, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, 0x23d00, 0x23e00, - 0x23f00, 0x24100, 0x24200, 0x24300, 0x24400, 0x24500, 0x24600, 0x24700, - 0x24800, 0x24900, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x24f00, - 0x25000, 0x25100, 0x25200, 0x25300, 0x25400, 0x25500, 0x25600, 0x25700, - 0x25800, 0x25900, 0x25a00, 0x25b00, 0x25e00, 0x25f00, 0x26000, 0x26200, - 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, 0x26a00, - 0x26b00, 0x26c00, 0x26d00, 0x26e00, 0x27100, 0x27200, 0x27300, 0x27500, - 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, 0x27c00, 0x27d00, - 0x27e00, 0x27f00, 0x28000, 0x28200, 0x28300, 0x28400, 0x28500, 0x28600, - 0x28700, 0x28800, 0x28900, 0x28c00, 0x28d00, 0x28e00, 0x28f00, 0x29000, - 0x29100, 0x29200, 0x29300, 0x29400, 0x29500, 0x29600, 0x29800, 0x29a00, - 0x29b00, 0x29c00, 0x29d00, 0x29f00, 0x2a000, 0x2a200, 0x2a300, 0x2a400, - 0x2a500, 0x2f800, 0x2f900, 0x2fa00, -}; - -static int -cns11643_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x64)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 6388) - swc = cns11643_6_2uni_page21[i], - wc = cns11643_6_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_7.h b/jni/parted/libiconv/lib/cns11643_7.h deleted file mode 100755 index 2d23fda..0000000 --- a/jni/parted/libiconv/lib/cns11643_7.h +++ /dev/null @@ -1,987 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 plane 7 - */ - -static const unsigned short cns11643_7_2uni_page21[6539] = { - /* 0x21 */ - 0x2b55, 0x2c82, 0x2c89, 0x2c87, 0x2dbe, 0x2dbd, 0x2dca, 0x2dd4, - 0x2dbc, 0x2dc4, 0x2dc1, 0x2dc2, 0x2dd7, 0x2d70, 0x2dba, 0x2de3, - 0x2dbb, 0x2eb1, 0x2eb6, 0x2eb0, 0x2f6c, 0x300d, 0x3007, 0x31f1, - 0x31f5, 0x31ed, 0x31ef, 0x31eb, 0x31ec, 0x31ee, 0x3207, 0x33c4, - 0x3408, 0x34b3, 0x34ad, 0x34b0, 0x3511, 0x2c8a, 0x3683, 0x367a, - 0x3682, 0x3668, 0x3671, 0x36b0, 0x36af, 0x01f6, 0x366c, 0x366f, - 0x3662, 0x3665, 0x3681, 0x367f, 0x3664, 0x3673, 0x366e, 0x3667, - 0x3674, 0x367d, 0x3678, 0x3685, 0x36aa, 0x3688, 0x36a6, 0xc34e, - 0x368a, 0x3684, 0x1a55, 0x3924, 0x3922, 0x3923, 0x3a32, 0x3a5b, - 0x3a4f, 0x0267, 0x3a26, 0x3a3e, 0x3a42, 0x3a47, 0x3a22, 0x309b, - 0x3a4a, 0x3a1f, 0x3a49, 0x3a2b, 0x3a33, 0xc358, 0x3a2a, 0x3a28, - 0x3b3d, 0x3b3c, 0x3bbf, 0x3c79, 0x3c80, 0x3c7c, - /* 0x22 */ - 0x3c7a, 0x3c78, 0x3d82, 0x3d5c, 0x3d5a, 0x3d4b, 0x3d7c, 0x3d7f, - 0x3d1f, 0x3d89, 0x3d8b, 0x3d57, 0x3d7e, 0x3d7d, 0x3d53, 0x3f9f, - 0x3fbc, 0x3fa5, 0x3f86, 0x3fdc, 0x3fa4, 0x3fb6, 0x3fa2, 0x3fb4, - 0x4048, 0x4046, 0x40a7, 0x4114, 0x4112, 0x4111, 0x41e1, 0x41d0, - 0x4226, 0x4228, 0x4229, 0x432f, 0x430d, 0x4325, 0x4314, 0x433c, - 0x430b, 0x4311, 0x4330, 0x4318, 0x4319, 0x4336, 0x4317, 0x4310, - 0x4315, 0x4403, 0x4429, 0x444c, 0x453f, 0x453e, 0x4534, 0x4542, - 0x4535, 0x31f3, 0x45cd, 0x45d1, 0x45d2, 0x46ad, 0x46ba, 0x46c1, - 0x46bb, 0x46b4, 0x46bc, 0x476c, 0x4792, 0x4821, 0x4824, 0x5f19, - 0x48ad, 0x48ae, 0x48ab, 0x48ac, 0x4970, 0x4976, 0x4971, 0x4977, - 0x1c7f, 0x4aec, 0x4b1c, 0x4afb, 0x4aee, 0x4be2, 0x4afd, 0x4b1e, - 0x4b3b, 0x4b4a, 0xc3ae, 0x0592, 0x4b7d, 0x4b56, - /* 0x23 */ - 0x4b44, 0x4b4b, 0x4cfa, 0x4ce8, 0x4cf8, 0x4cff, 0x4cf7, 0x4cf6, - 0x4cfe, 0x4d07, 0x4d5d, 0x4ed4, 0xc3c3, 0x4ec8, 0x4ec5, 0xc3c0, - 0x4ec9, 0x4f4d, 0x4f20, 0x4f36, 0x4f35, 0x4f88, 0x4f25, 0x4f21, - 0x4f26, 0x0645, 0x4f3f, 0x4f3b, 0x4f24, 0x4f43, 0x4f4e, 0x4f4f, - 0x4f44, 0x4f40, 0x4f41, 0x4f39, 0x4f2b, 0x50dd, 0x50de, 0x51cd, - 0x51cb, 0x51db, 0x51d8, 0x51d9, 0x51d2, 0x51ca, 0x51d1, 0x51d4, - 0x51f9, 0x51d0, 0x525e, 0x525d, 0x528a, 0x5314, 0x5483, 0x5484, - 0x549b, 0x5482, 0x547d, 0x547c, 0x5499, 0x547e, 0x549a, 0x5495, - 0x547b, 0x5486, 0x5548, 0x5592, 0x56b2, 0x5742, 0x5772, 0x5715, - 0x5730, 0x5743, 0x575b, 0x571d, 0x5773, 0x572d, 0x07c9, 0x5721, - 0x571c, 0xc3ea, 0x5729, 0x571e, 0x5733, 0x5a10, 0x5a0e, 0xc3f1, - 0x5a0d, 0x5a11, 0x5a12, 0x5a17, 0x5a09, 0x5a0f, - /* 0x24 */ - 0x5a98, 0x5a94, 0x5a96, 0x5a99, 0x5a95, 0x5a97, 0x5b50, 0x5b52, - 0x5b4d, 0x5b57, 0x5b53, 0x5b56, 0x5bb8, 0x5c12, 0x5cf1, 0x5cf0, - 0x5cee, 0x5cef, 0x5ce5, 0x5ceb, 0x5ce7, 0x5cf2, 0x5ce6, 0x5cf7, - 0x5d09, 0x5d6b, 0x5d6a, 0x5e79, 0x5ecd, 0x5eef, 0x5ee4, 0x5ee3, - 0x5f6c, 0x5f67, 0x5f62, 0x5f58, 0x5f69, 0x5fab, 0x5f57, 0x5fad, - 0x5f54, 0x5fae, 0x5f76, 0x5f49, 0x5f45, 0x5f4f, 0xc40f, 0x5f50, - 0x5f7d, 0x5f44, 0x5f66, 0x5f48, 0x5fa3, 0x5f51, 0x5f53, 0xc410, - 0x5f60, 0x5f47, 0x5f5e, 0x5f85, 0x5fac, 0x5f6d, 0x5f75, 0x5fa8, - 0x0955, 0x5f43, 0x5f4e, 0x5f5c, 0x5f56, 0x5f6e, 0x5f63, 0x5f6a, - 0x6256, 0x6212, 0x625c, 0x6258, 0x6255, 0x627e, 0x62a8, 0x6211, - 0x6259, 0x625a, 0x6267, 0x6254, 0x625b, 0x62f0, 0x6429, 0x642c, - 0x642a, 0x6427, 0x6467, 0x6468, 0x6493, 0x6495, - /* 0x25 */ - 0x649a, 0x64ee, 0x64f1, 0x64ed, 0x64e9, 0x65cb, 0x65df, 0x65db, - 0x673c, 0x674e, 0x676c, 0x677b, 0x677c, 0x6783, 0x676b, 0x6766, - 0x6763, 0x67a0, 0x6785, 0x6768, 0x67a2, 0x68ec, 0x0ae8, 0x68e7, - 0x6910, 0x6918, 0x693a, 0x691a, 0x6938, 0x6941, 0x691b, 0x6914, - 0x691c, 0x691d, 0x6a12, 0x6a0d, 0x6a07, 0x6a7e, 0x6a7f, 0x34b9, - 0x6a80, 0x6a7a, 0x6af3, 0x6bb9, 0x6bbb, 0x6bba, 0x6bbd, 0x6bb7, - 0x6bbf, 0x6c21, 0x6d3a, 0x6d3d, 0x6d36, 0x6d49, 0x6d81, 0x0bb6, - 0x6d3f, 0x6d4d, 0x6d3e, 0x0bbd, 0x6d30, 0x6d4f, 0x6e37, 0x6e98, - 0x6e99, 0x6f11, 0x6f0d, 0x6f88, 0x6f8a, 0x701c, 0x7055, 0x7056, - 0x7062, 0x7057, 0x7042, 0x7010, 0x704d, 0x705a, 0x7066, 0x7046, - 0x4b7e, 0x704f, 0x80f9, 0x7187, 0x7184, 0x71f4, 0x71f5, 0x71f2, - 0x71f7, 0x7345, 0xc450, 0x7349, 0x7335, 0x72fd, - /* 0x26 */ - 0x7330, 0x7343, 0x7346, 0x0cd6, 0x7333, 0x74c6, 0xc456, 0x74d4, - 0x8dd8, 0x74e0, 0x36a7, 0x7544, 0x2d98, 0x7654, 0x763e, 0x7635, - 0x763a, 0x0d71, 0x7634, 0x7639, 0x7646, 0x765a, 0x765b, 0x763c, - 0x77dc, 0x77d6, 0x77d0, 0xc45e, 0x78ac, 0xc45d, 0x78a5, 0x79f4, - 0x7a24, 0x79e0, 0x79fd, 0x79f2, 0x79fc, 0x7a02, 0x79f1, 0x79ff, - 0x79d2, 0x79d8, 0x79d3, 0x79f9, 0xc463, 0x79ed, 0x79f7, 0x79f0, - 0x79d7, 0x7a09, 0x79f5, 0x7cc2, 0x7cc5, 0x7ccf, 0x0e98, 0x7cc1, - 0x7cc6, 0x7cd4, 0x7cce, 0x7e9b, 0x7e99, 0x7e8f, 0x7eb7, 0x7e82, - 0x7e93, 0x7eb4, 0x7ec1, 0x7e90, 0x7e9a, 0x7e94, 0x7e9c, 0x7eb5, - 0xc46f, 0xc46e, 0x7e9f, 0x7e8e, 0x7e9e, 0x803c, 0x8047, 0x8041, - 0x80eb, 0x80ec, 0x80ed, 0x80ee, 0x80df, 0x80f2, 0x810d, 0x810e, - 0x2c86, 0x81a9, 0x81a4, 0x81a5, 0x825f, 0x825a, - /* 0x27 */ - 0x8266, 0x8268, 0x826a, 0x8264, 0x8265, 0x82c1, 0x82d8, 0xc47b, - 0x82d9, 0x8309, 0x83aa, 0x83a3, 0x83b9, 0x77e2, 0x83a5, 0x83ab, - 0x8420, 0x8589, 0x858b, 0x85db, 0x85e4, 0x85ef, 0x85e2, 0x85e9, - 0x85f0, 0x85f3, 0x85dd, 0x861e, 0x871d, 0x8746, 0x877c, 0x8780, - 0x8781, 0x8782, 0x8787, 0x8788, 0x878a, 0x878c, 0x87e7, 0x87eb, - 0x87ea, 0x8868, 0x886b, 0x8869, 0x8866, 0x886a, 0x8865, 0x88e5, - 0x88e4, 0x88e6, 0x8918, 0x8a24, 0x8a48, 0x8a2f, 0x8a7e, 0x8989, - 0x8a1e, 0x8a49, 0x8a26, 0x8a09, 0x8a34, 0x8a2d, 0x8a4a, 0x8a15, - 0xc4a9, 0x8a33, 0x8a28, 0x8a27, 0x8a20, 0x8a2b, 0x8a29, 0x8a6a, - 0x8a0b, 0x8a0e, 0x8a1c, 0x89ff, 0xc4aa, 0x8a35, 0x8a11, 0x8a4b, - 0x8a4c, 0x8a1f, 0x8a0f, 0x8a39, 0x8a68, 0x8a1d, 0x8a08, 0x8a0c, - 0x8a0d, 0x8a62, 0x8aaf, 0x8a32, 0x8a2c, 0x8a64, - /* 0x28 */ - 0x8a04, 0x8a16, 0x8a4d, 0x8a07, 0x8aae, 0x8dd4, 0x8dd1, 0x8dd5, - 0x8dd0, 0x8f71, 0x8f5d, 0x8f5b, 0x8f7a, 0xc4bd, 0x8f7f, 0x8f79, - 0x8f67, 0x8f9e, 0x8f94, 0x8f64, 0x8f5e, 0x8f81, 0x8f5a, 0x8f57, - 0x8f7c, 0x8f98, 0x8f66, 0x8f7e, 0x8f82, 0x8f68, 0x8f5f, 0x8f63, - 0x8f97, 0x11cd, 0x8f53, 0x8f7b, 0x8f7d, 0x8f78, 0x9006, 0x91c0, - 0x91c2, 0x91c3, 0x92dc, 0x92e6, 0x92ec, 0x92f2, 0x92e8, 0x92eb, - 0x92ea, 0x92e5, 0x92e0, 0x92d0, 0x92d8, 0x92d5, 0x92d3, 0x92e4, - 0x92f3, 0x92db, 0x932f, 0x93f9, 0x945d, 0x945b, 0x944c, 0x9458, - 0x9460, 0x9453, 0x9450, 0x9507, 0x9508, 0x94f4, 0x94f6, 0x9504, - 0x94fd, 0x9505, 0x9628, 0x9656, 0x9642, 0x965c, 0x963d, 0x962f, - 0x962b, 0x9658, 0x9661, 0x962c, 0x9651, 0x9650, 0x963c, 0x9636, - 0x12f6, 0x9660, 0x965b, 0x962e, 0x9640, 0x965f, - /* 0x29 */ - 0x9626, 0x962d, 0x965e, 0x963b, 0x97ef, 0x97f3, 0x97ee, 0x97ed, - 0x985a, 0x9862, 0x985b, 0x985f, 0x985e, 0x9864, 0x98e0, 0x98e1, - 0x98e5, 0x99a5, 0x999b, 0x999f, 0x999c, 0x137a, 0x99aa, 0x99a4, - 0x99a3, 0x9a67, 0x9b26, 0x9b1a, 0x13b8, 0x9b1c, 0x9b15, 0x9b1b, - 0x9b18, 0x9b1e, 0x9b25, 0xc4dc, 0x9c7b, 0x9c75, 0x9c93, 0x9c8f, - 0x9c7c, 0x9c9b, 0x9c88, 0x9c91, 0x9c7e, 0x1401, 0x9c86, 0x9e5b, - 0x9e54, 0x9f35, 0x9f40, 0x9f37, 0x9f29, 0x9f26, 0x9f23, 0x9f30, - 0x9f20, 0x9f28, 0x9f32, 0x9f2a, 0x9f31, 0x9f24, 0x9f41, 0x9f42, - 0x9f43, 0x9f25, 0x9f38, 0xa01c, 0xa01d, 0xa01e, 0xa0f6, 0xa1a5, - 0xa189, 0xa19d, 0xa18a, 0xa187, 0xa1ab, 0xa186, 0xa19e, 0xa193, - 0xa1a1, 0xa188, 0xa1a3, 0xa19f, 0xa1a0, 0xa2ff, 0xa300, 0xa302, - 0xa2f8, 0xa2f7, 0xa301, 0xa387, 0xa389, 0xa376, - /* 0x2a */ - 0xa36e, 0xa377, 0xa382, 0xa385, 0xa383, 0xa384, 0xa457, 0xa44b, - 0xa456, 0xa45d, 0xa460, 0xa44d, 0xa455, 0xa454, 0xa453, 0xa450, - 0xa463, 0xa462, 0xa517, 0xa516, 0xa52d, 0xa5d9, 0xa5bf, 0x152f, - 0xa5b2, 0xa5ac, 0xa5b0, 0xa5cf, 0xa5b8, 0x1531, 0xa5d3, 0xa5b1, - 0xa5af, 0xa5ce, 0xa5b4, 0xa5b7, 0xa5d5, 0x159c, 0xa938, 0xa928, - 0xa93f, 0xa940, 0xa941, 0xa933, 0xa92b, 0xa92e, 0xab11, 0xab18, - 0xab17, 0xab19, 0xab16, 0x15e6, 0xab0d, 0xab26, 0xab79, 0xabd8, - 0xabf3, 0xabd7, 0xabcc, 0xabcf, 0xabcb, 0xabd1, 0xabce, 0xabd4, - 0xabd5, 0xabd3, 0xabd6, 0xabcd, 0xabda, 0xabd2, 0xabde, 0xaccc, - 0xacb8, 0xacb7, 0xacc2, 0xacc3, 0xadfa, 0xadf9, 0xae1f, 0xae1d, - 0x6282, 0xaea6, 0xae90, 0xae9e, 0xae98, 0xae93, 0xae92, 0xaea5, - 0xae95, 0xafa9, 0xafa8, 0xafaa, 0xafab, 0xafac, - /* 0x2b */ - 0xb01f, 0xb022, 0xb0aa, 0xb096, 0xb091, 0xb0ab, 0xb0a2, 0xb0a4, - 0xb09d, 0xb097, 0xb07d, 0xb09f, 0xb09c, 0xb099, 0xb0a6, 0xb092, - 0xb0a7, 0xb1c9, 0xb1c8, 0xb1c7, 0xb1cb, 0xb274, 0xb2c9, 0x1738, - 0xb2d2, 0xb2db, 0xb2eb, 0xb2e9, 0xb2ef, 0xb2ee, 0xb2f9, 0xb2de, - 0xb416, 0xb445, 0xb47f, 0xb498, 0xb49f, 0xb486, 0xb490, 0xb49a, - 0xb49d, 0xb48d, 0xb49c, 0xb4a0, 0xb4a7, 0xb48f, 0xb641, 0xb635, - 0xb637, 0xb630, 0xb63a, 0xb636, 0xc508, 0xb6ca, 0xb712, 0xb715, - 0xb722, 0xb713, 0xb718, 0xb721, 0xb810, 0xb820, 0xb82f, 0xb8a5, - 0xb8a3, 0xb8b6, 0xb8ab, 0xb968, 0xb967, 0xb96f, 0xb977, 0xb964, - 0xb978, 0x183a, 0xb976, 0xb96e, 0x18b1, 0xbbd0, 0xbbb3, 0xbbcb, - 0xbbd6, 0xbbb1, 0xbbb4, 0xbbd7, 0xbbc6, 0xbbba, 0xbbd1, 0xbbd2, - 0xbbb5, 0xbbc4, 0xbbcc, 0xbbbb, 0xbbb2, 0xbe5b, - /* 0x2c */ - 0xbe5a, 0xbe59, 0xbe99, 0xbe94, 0xbe96, 0xbe93, 0xbe91, 0xbe8f, - 0xbe98, 0xbf0c, 0xbf0a, 0xbf0e, 0xbf12, 0xbf11, 0xbf0b, 0xbf9a, - 0x1947, 0xbfb4, 0x1951, 0xc01c, 0xc020, 0xc021, 0xc0d3, 0xc0d2, - 0xc138, 0x2afd, 0x6bcf, 0x2c1d, 0x2c92, 0x2c8f, 0x2c8c, 0x2dea, - 0x2eb9, 0x2f6e, 0x2fa0, 0xaddd, 0x3012, 0x3017, 0x306d, 0x3205, - 0x31fb, 0x31fd, 0x3206, 0x3200, 0x31ff, 0x31fe, 0x32b6, 0x3305, - 0x3307, 0x34bc, 0x34bb, 0x358b, 0x3587, 0x97fb, 0x36e7, 0x36e6, - 0x36e2, 0xa1d3, 0x36d9, 0x36ca, 0x3712, 0x3710, 0x36dc, 0x36d0, - 0x368b, 0x3713, 0x4d10, 0x36da, 0xc34f, 0x36fd, 0x36e5, 0x36cc, - 0x3739, 0x36c7, 0x36d8, 0x3a60, 0x3a64, 0x3a86, 0x3a5e, 0x3a66, - 0x3a5f, 0x3a77, 0x3a82, 0x3a96, 0x3b3e, 0x3b79, 0x3b7a, 0x3c88, - 0x3c89, 0x3c8c, 0x62e0, 0x3c7b, 0x3c86, 0x3d94, - /* 0x2d */ - 0x3d97, 0x3db7, 0x3db5, 0x3db8, 0x3d93, 0x3db2, 0x3db4, 0x3d99, - 0x3dc3, 0x3d9d, 0x3d9b, 0x3da3, 0x0347, 0x3e9f, 0x3e9e, 0x3ea3, - 0x3ea0, 0x3ea1, 0x3fc5, 0x3fc6, 0x3fbe, 0x3fc4, 0x3fbf, 0x404c, - 0x404a, 0x40b1, 0x4115, 0x4117, 0x4110, 0x4118, 0x41e0, 0x41df, - 0x4227, 0x4343, 0x4348, 0x431d, 0x4350, 0x4358, 0x4347, 0x4354, - 0x4353, 0x4340, 0x4355, 0x0417, 0x435a, 0x4870, 0x455b, 0x454d, - 0x4556, 0x454f, 0xc387, 0x4559, 0xc388, 0x4554, 0x4553, 0x4550, - 0x46b3, 0x476e, 0x04a3, 0x476f, 0x4793, 0x4829, 0x4825, 0x4828, - 0x486f, 0x54b8, 0xc397, 0x48b3, 0x4979, 0x497e, 0x497c, 0x4983, - 0xc3ac, 0x4b00, 0x4b34, 0x4b65, 0x4b36, 0x4ba7, 0x4b59, 0x4b58, - 0x4b31, 0x4b62, 0x4b38, 0x4b73, 0x4b3e, 0x4b55, 0x4b54, 0x4b95, - 0xc3ad, 0x4ba5, 0x4b94, 0x4b9a, 0x4b9b, 0x4b99, - /* 0x2e */ - 0x4b9f, 0x4b53, 0x4d12, 0x4d0a, 0x4d09, 0x4d0c, 0x4d0b, 0x4d0e, - 0x4d0d, 0x4d08, 0x4f38, 0x4f3a, 0x4f37, 0x4f3d, 0x4f2d, 0x4f82, - 0x4f95, 0x4f87, 0x4f9d, 0x4fb5, 0x4f81, 0x4fc7, 0x4f9b, 0x4f98, - 0x4f94, 0x4f86, 0x4f90, 0x4f34, 0x4f8e, 0x4f85, 0x4fa6, 0x4f96, - 0x51ea, 0x51df, 0x54bd, 0x51f7, 0x51eb, 0x51e0, 0x51e8, 0x51e1, - 0x51e9, 0x51ee, 0x51e5, 0x51ec, 0x5263, 0x52c6, 0x52c2, 0x52c1, - 0x52c0, 0x52c3, 0x5318, 0x54ae, 0x54a3, 0x54c5, 0x54a0, 0x54b4, - 0x54a5, 0x071e, 0x54a4, 0x54a8, 0x54a6, 0x57a8, 0x578d, 0x5782, - 0x579e, 0x5789, 0x5783, 0x5791, 0x57a6, 0x579a, 0x5790, 0x5785, - 0x577d, 0xc3ec, 0x579b, 0x57a5, 0x57f0, 0x5796, 0x5788, 0x57d6, - 0x57d8, 0x5786, 0x57a4, 0x5797, 0x5a1c, 0x5a19, 0x5a9e, 0x5a9f, - 0x5a9d, 0x5a9c, 0x5b5d, 0x5b5e, 0x5b73, 0x5b63, - /* 0x2f */ - 0x5bbe, 0x5bc1, 0x5bbc, 0x5bbf, 0x5bbb, 0x5bbd, 0x5c13, 0x5c14, - 0x5cf8, 0x5cfa, 0x5d06, 0x5cfe, 0x5d51, 0x600b, 0x5ff1, 0x5fa9, - 0x5fd5, 0x5fdc, 0x5fcb, 0x5ff2, 0x605f, 0x5fdb, 0x5fd6, 0x5fd9, - 0x5fd1, 0x5fcf, 0x5fd8, 0x5fe0, 0x5fd4, 0x5ff3, 0x6005, 0x5fce, - 0x5ff4, 0xc412, 0x5fda, 0x600e, 0x6006, 0x5fd7, 0x5fcd, 0x6007, - 0x5fe1, 0x6008, 0x62be, 0x62ef, 0x62d9, 0x62da, 0x1fd7, 0x62a0, - 0x62df, 0x629e, 0x62bf, 0x62af, 0x62a7, 0x62aa, 0x62f4, 0x62ae, - 0x62b5, 0x62b8, 0x62db, 0x62c0, 0x62b7, 0x62a2, 0x62dd, 0x62a1, - 0x62a5, 0x62b4, 0x62a6, 0x62ab, 0x62ac, 0x629f, 0x62b1, 0x62fc, - 0x642e, 0x6430, 0x6499, 0x64f8, 0x64f6, 0x65f4, 0x65eb, 0x65e1, - 0x65e4, 0x6775, 0x6769, 0x0a9a, 0x6799, 0x679e, 0x6794, 0x6793, - 0x6791, 0x6919, 0x6917, 0x6949, 0x6947, 0x6948, - /* 0x30 */ - 0x6952, 0x6940, 0x6963, 0x6946, 0x695f, 0x6a0e, 0x6a85, 0x6a87, - 0x6acb, 0x6acc, 0x6ac9, 0x6bcb, 0x41e7, 0x6c20, 0x6d5f, 0x6d60, - 0x6d6a, 0x6d76, 0x6d73, 0x6d71, 0x6d66, 0x0bc2, 0x6d6b, 0x6d79, - 0x6d7b, 0x6e3c, 0x6e9e, 0x6e9c, 0x6f1c, 0x6f1e, 0x6f21, 0x6f96, - 0x6fa1, 0x6fb6, 0x6fa0, 0x6f94, 0x6f97, 0x7081, 0x7086, 0x70c0, - 0x708a, 0xc44b, 0x7085, 0x7095, 0x7049, 0x7082, 0x7084, 0x4b78, - 0x7090, 0x70b1, 0x71fe, 0x71fb, 0x7350, 0x7356, 0x735a, 0x734c, - 0x0cdc, 0x7357, 0x74e1, 0x74d9, 0x74db, 0x74f4, 0x7545, 0x7547, - 0x7674, 0x766b, 0x7668, 0x7669, 0x7679, 0xc45b, 0x7680, 0x7681, - 0x7661, 0x7670, 0x766f, 0x7673, 0x765d, 0x77fa, 0x0db3, 0x77f3, - 0x780a, 0x7817, 0xc45f, 0x78b0, 0x7a3e, 0x7a46, 0x7a4f, 0x7a44, - 0x7a69, 0x7a33, 0x7a2f, 0x7a4e, 0x7a3a, 0x7a2b, - /* 0x31 */ - 0x7aa9, 0x7a50, 0x7a45, 0x7a37, 0x7a25, 0x7a2c, 0x7a3f, 0x7a34, - 0x7a29, 0x7a1e, 0x7a3d, 0x7ced, 0xc466, 0x7cf3, 0x7cea, 0x7ceb, - 0x7ecc, 0x7ece, 0x7ed0, 0x7ee3, 0x7ee0, 0x7ed1, 0x7edc, 0x7edd, - 0x7ef0, 0x7edb, 0x7ee5, 0x7ef1, 0x7ec9, 0x7ee8, 0x7ee7, 0x7ec8, - 0x7ede, 0x7ecd, 0x7ec5, 0x7ec6, 0x7ee4, 0x7ec3, 0x80fb, 0x80fc, - 0x80fe, 0x8103, 0x8100, 0x80fd, 0x8105, 0x8113, 0x81a7, 0x81b4, - 0x8270, 0x8274, 0x8271, 0x8275, 0x827d, 0x8273, 0x82c4, 0x82c3, - 0x82de, 0x82dd, 0x8311, 0x830f, 0x8310, 0x83c3, 0x83c2, 0x83ca, - 0x83c1, 0x8423, 0x85b1, 0x8624, 0x8611, 0x8625, 0x860a, 0x861f, - 0x8620, 0x8614, 0x8628, 0x8603, 0x8612, 0x860b, 0x8617, 0x4d11, - 0x8749, 0x8789, 0x8790, 0x878f, 0x8796, 0x8795, 0x8793, 0x87ed, - 0x87f0, 0x62de, 0x8885, 0x8877, 0x887a, 0x8884, - /* 0x32 */ - 0x8879, 0x887d, 0x887b, 0x88ed, 0x88ec, 0x89f6, 0x899b, 0x8a9d, - 0x8b11, 0x8ac4, 0x8ac8, 0x8adf, 0x8abf, 0x8ab3, 0x8aba, 0x8b10, - 0x8b06, 0x8a88, 0x8a9a, 0x8ae0, 0x8acc, 0x8ab5, 0x8ae1, 0x8abc, - 0x8ac6, 0x8b0b, 0x8aa4, 0x8a95, 0x8aa3, 0x8ae2, 0x8acd, 0x8ae3, - 0x8aab, 0x8acb, 0x8a8f, 0xc4ab, 0x8aa9, 0x8b24, 0x8ae4, 0x8b12, - 0x8ae5, 0x8b67, 0x8aaa, 0x8aa0, 0x8ae6, 0x8ac1, 0x8ae7, 0x8b0d, - 0x8a86, 0x8ab0, 0x8a8b, 0x8ae8, 0x8ac9, 0x8b19, 0x8ac0, 0x8b0c, - 0x8ae9, 0x8aea, 0x8ded, 0x8de3, 0x8de4, 0x8de8, 0x8dd2, 0x8de2, - 0x2466, 0x8fcf, 0x8fd1, 0x8fc3, 0x8fc9, 0x8fea, 0x8fb4, 0x8fdc, - 0x8fbd, 0x8fe6, 0x8fc8, 0x8fec, 0x8fb2, 0x8fa9, 0x8fd3, 0x8fc0, - 0x8fe9, 0x8fd5, 0x11d9, 0x8fc5, 0x11dd, 0x8fcb, 0x8fd0, 0x8fd2, - 0x8fe4, 0x8fe8, 0x8fcd, 0x8fb6, 0x8faa, 0x8fd4, - /* 0x33 */ - 0xa049, 0x8fc1, 0x8fdd, 0x8fce, 0x91c9, 0x91ca, 0x92fd, 0x92d9, - 0x92ff, 0x9304, 0x92fa, 0x9306, 0x9315, 0x9311, 0x9307, 0x930b, - 0x93fc, 0x93fd, 0x946d, 0x9465, 0x9514, 0x9513, 0x950c, 0x950b, - 0x9518, 0x9522, 0x967d, 0x966f, 0x9675, 0x967b, 0x9680, 0x967f, - 0x9696, 0x966d, 0x966b, 0x9686, 0x9673, 0x9662, 0x9677, 0x9681, - 0x9669, 0x9682, 0x9697, 0x9684, 0x12fc, 0x9678, 0xc4d0, 0x967a, - 0x966a, 0x9665, 0x967e, 0x9694, 0x97c2, 0x97c1, 0x97f9, 0x9871, - 0x986b, 0x986d, 0x986f, 0x986e, 0x98f2, 0x98e8, 0x98ef, 0x98e9, - 0x98ea, 0x98ed, 0x98f3, 0x98e6, 0x99c9, 0x99b4, 0x99b3, 0x99b9, - 0x99ca, 0x99b1, 0x99b6, 0x99c7, 0x99c4, 0x99b7, 0x9a6f, 0x9b33, - 0x9b32, 0x9b1f, 0xc4d9, 0x9b2b, 0x9b30, 0x9b36, 0x9b42, 0x9b41, - 0xc4d8, 0x9ca5, 0x9cab, 0x9ca9, 0x9cb3, 0x9ca7, - /* 0x34 */ - 0x9ca0, 0x9cd2, 0x9ca8, 0x9cb6, 0x9cac, 0x9cae, 0x9ce6, 0x9e65, - 0x9f47, 0x9f63, 0x9f4d, 0x9f5f, 0x9f4b, 0x9f60, 0x9f49, 0x9f53, - 0xc4df, 0x263a, 0x9f57, 0x9f4e, 0x9f52, 0x9f54, 0xa020, 0xa022, - 0xa1c1, 0xa1d7, 0xa1d5, 0xa1c4, 0xa1d0, 0xa1bb, 0xa1e2, 0xa1cb, - 0xa1b8, 0xa1bf, 0xa1d8, 0xa1c0, 0xa1ba, 0xa1b4, 0xa1bc, 0xa1d4, - 0xa1ed, 0xa1c2, 0xa1d9, 0xa1cc, 0xa32f, 0xa323, 0xa396, 0xa38d, - 0xa39e, 0xa399, 0xa483, 0x1507, 0xa46a, 0xa469, 0xa475, 0xa46c, - 0xa480, 0xa46e, 0xa481, 0xa477, 0xa476, 0xa473, 0xa470, 0xa484, - 0xa519, 0xa5f2, 0x273d, 0xa5ec, 0xa5eb, 0xa5f6, 0xa5ef, 0xa5f4, - 0xa5ee, 0xa5f3, 0xa5ed, 0xa89b, 0xa898, 0xa894, 0x3a7a, 0xa89a, - 0xc4f0, 0xa94c, 0x15a8, 0xa957, 0xa951, 0xa962, 0xa952, 0xa95c, - 0xa953, 0xc4ef, 0xaa85, 0xab2d, 0xab3e, 0xab30, - /* 0x35 */ - 0xab7d, 0xabe6, 0xabf6, 0xabe4, 0xabe9, 0xabec, 0xabf2, 0xabe8, - 0xabe3, 0xabeb, 0xabf0, 0xabea, 0xabe7, 0xabfd, 0xabe5, 0xabee, - 0xabf5, 0xabf9, 0xabf1, 0xabf4, 0xc4f4, 0xac11, 0xacde, 0xacd8, - 0xacdd, 0xacdb, 0xacd3, 0xace1, 0xadde, 0xadfc, 0xae28, 0xaeb7, - 0xaeb8, 0xaec7, 0xaeb2, 0xaea9, 0xaeb9, 0xaebc, 0xaeb3, 0xaed1, - 0xafb0, 0xafb1, 0xafb6, 0xb004, 0xb02c, 0xb0c1, 0xb09e, 0xb0ba, - 0x16ca, 0xb0d1, 0xb0d3, 0xb0d4, 0xb0d5, 0xb0c5, 0xb0b6, 0xb0b2, - 0xb0b5, 0xb0c3, 0xb0b9, 0xb0c6, 0xb1d6, 0xb1e0, 0xb1db, 0xb1d7, - 0xb1dd, 0xb315, 0xb30c, 0xb30f, 0xb30e, 0xb2fe, 0xb304, 0xb30b, - 0xb302, 0xb2ff, 0xb308, 0xb310, 0xb317, 0xb313, 0xb306, 0xb309, - 0xb424, 0xb426, 0xb425, 0xb448, 0xb4b5, 0xb4d2, 0xb4d5, 0xb4c4, - 0xb4af, 0xb4ad, 0xb4c1, 0xb4c0, 0xb4cc, 0xb4cd, - /* 0x36 */ - 0xb4c3, 0xb4c8, 0xb4c5, 0xb4ba, 0xb4d0, 0xb4c2, 0xb4ce, 0x178d, - 0xb643, 0xb642, 0xb640, 0xb631, 0xb6cf, 0xb6ce, 0xb730, 0xb734, - 0xb732, 0xb743, 0xb73c, 0xb811, 0xb835, 0xb834, 0xb837, 0xb831, - 0xb8bf, 0xb8bc, 0xb8c2, 0xb8c9, 0xb983, 0xb98b, 0xb9a0, 0xb98d, - 0xb98c, 0xb99a, 0xb98a, 0xb991, 0xbbf1, 0xbc0f, 0xbc01, 0xbc07, - 0xbc0c, 0x18c0, 0xbbdc, 0xbbee, 0xbbf7, 0xbbf2, 0xbbf8, 0xbbeb, - 0x18ca, 0xbbe6, 0xbbed, 0xbbe9, 0xbc08, 0xbc00, 0xbbe5, 0xbbfc, - 0xbe61, 0xbe5e, 0xbe5f, 0x1925, 0xbe9b, 0xbf16, 0xbf15, 0xbf20, - 0xbf14, 0xbf1a, 0xbf17, 0xbf9c, 0x194a, 0xbff1, 0x1953, 0xbff0, - 0xc028, 0xc024, 0xc02a, 0xc02b, 0xc0d5, 0xc104, 0xc105, 0xc191, - 0xc192, 0xc2a6, 0x2c09, 0x2e22, 0x2e1a, 0x2e0e, 0x2e1b, 0x2e08, - 0x6fb3, 0xc31c, 0x309d, 0x3212, 0x321e, 0x32bb, - /* 0x37 */ - 0x32bf, 0x32bc, 0x3308, 0x3309, 0x3363, 0x33c8, 0x5828, 0x358e, - 0x358d, 0x3743, 0x374d, 0x376d, 0x3742, 0x3752, 0x3751, 0x3769, - 0x3750, 0x3756, 0x376c, 0x3744, 0x3745, 0x376b, 0x0205, 0x3768, - 0x3757, 0x392e, 0x3931, 0x392d, 0x3a8b, 0x3ab2, 0x3a8d, 0x3aa3, - 0x3aa4, 0x3a90, 0x3a89, 0x3a8e, 0x3a92, 0x3b7b, 0x3c90, 0x3c8f, - 0x3de9, 0x3dcd, 0x3dc5, 0x3dd0, 0x3dc9, 0x3dd1, 0x3dc7, 0x3dd2, - 0x3d5f, 0x3de1, 0x3dcc, 0x3dc6, 0x3de4, 0x3ea9, 0x3fd3, 0x3fda, - 0x3fd2, 0x3fdb, 0x404d, 0x404e, 0x411c, 0x41e8, 0x436c, 0x435f, - 0x4366, 0x4364, 0x4378, 0x4365, 0x436d, 0x4361, 0x437a, 0x4407, - 0x4566, 0x4568, 0x4562, 0x46d3, 0x46d4, 0x46d1, 0x46dc, 0x4773, - 0x4772, 0x482d, 0x482c, 0x482f, 0x4872, 0x48b4, 0x4989, 0x4bcd, - 0x4ba6, 0x4ba2, 0x4ba0, 0x4b46, 0x4ba1, 0x8657, - /* 0x38 */ - 0x4ba3, 0x4bb1, 0x4bdb, 0x4bf6, 0x4bdc, 0x4bd6, 0x4d13, 0x4f9c, - 0x4f97, 0x4fd8, 0x4fe4, 0x4fd4, 0x4fe5, 0x4fdb, 0x4fd0, 0x4fda, - 0x4fcc, 0x4fdc, 0x4fed, 0x4fd3, 0x4fd1, 0x4fce, 0x4fd9, 0x4fdd, - 0xc3c6, 0x50e6, 0x50e5, 0x50e9, 0x51ff, 0x51fe, 0x520e, 0x528c, - 0x52ca, 0x52cb, 0x531a, 0x54d7, 0x54cf, 0x54d0, 0x54c9, 0x54cc, - 0x54d3, 0x55a4, 0x55a3, 0x5781, 0x5826, 0x57f3, 0x5827, 0x57f2, - 0x57ff, 0x57f5, 0x57fc, 0x580e, 0x07f0, 0x57f6, 0x5800, 0x5823, - 0x5805, 0x5825, 0x5808, 0x5850, 0x5a25, 0x5a20, 0x5a23, 0x5a21, - 0x5aa1, 0x5b69, 0x5b6c, 0x5b68, 0x5b6b, 0x5bcc, 0x5bcd, 0x5d10, - 0x5d0d, 0x5d0a, 0x5d16, 0x5d14, 0x5d52, 0x6028, 0x602e, 0x602c, - 0x604d, 0x6049, 0x6031, 0x6030, 0x6033, 0x602d, 0x6036, 0x603e, - 0x602f, 0x6027, 0x6034, 0x604c, 0x62fe, 0x6312, - /* 0x39 */ - 0x631f, 0x6317, 0x62f5, 0x6315, 0x62f7, 0x0a02, 0x437d, 0x62fa, - 0x62f9, 0x634b, 0x649c, 0x649d, 0x0a23, 0x65f0, 0x65f6, 0x65ef, - 0x679d, 0x679a, 0x67a7, 0x67af, 0x67aa, 0x6964, 0x6986, 0x6975, - 0x6970, 0x6984, 0x696b, 0x6985, 0x696c, 0x6a17, 0x6a94, 0x6a93, - 0x6bd2, 0x6bd7, 0x6bd4, 0x6da6, 0x6da7, 0x6d9c, 0x6d8b, 0x6d8d, - 0x6d98, 0x6db9, 0x6d9b, 0x6d9d, 0x6d99, 0x6da8, 0x6d91, 0x6d87, - 0x6d9a, 0x6ea6, 0x6f1f, 0x6fa7, 0x6fb1, 0x6fb2, 0x6fb7, 0x70d0, - 0x70b3, 0x70b5, 0x70c4, 0x70c3, 0x70bc, 0x70b2, 0x70ba, 0x70bb, - 0x70c2, 0x70cd, 0x70be, 0x70b7, 0x718f, 0x7203, 0x7204, 0x7371, - 0x7377, 0x7374, 0x738b, 0x737a, 0xc451, 0x738c, 0x7373, 0x74ff, - 0x74fb, 0x74fd, 0x74f0, 0x74f3, 0x74fc, 0x74f2, 0x7692, 0x769e, - 0x76ae, 0x7696, 0x7814, 0x7812, 0x7813, 0x7816, - /* 0x3a */ - 0x780f, 0x78b6, 0x78bd, 0x7a8c, 0x7aae, 0x7aac, 0x7aab, 0x7a99, - 0x7a92, 0x7abb, 0x7a9e, 0x7a7e, 0x7aaf, 0x7abc, 0x7a98, 0x7d01, - 0x7d09, 0x7d06, 0xc467, 0x7d07, 0x7d08, 0x7ecf, 0x7f0e, 0x7f32, - 0x0f15, 0x7f12, 0x7f16, 0x7f17, 0x7f1b, 0x7f15, 0x7f31, 0x7f18, - 0x7f1a, 0x7f10, 0x7f0a, 0x7f09, 0x804f, 0xc473, 0x810f, 0x8110, - 0xc475, 0x8128, 0x8111, 0x8116, 0x8117, 0x8102, 0x81bb, 0x81ba, - 0x81c3, 0x81bc, 0x828a, 0x8284, 0x8286, 0x82e0, 0x8317, 0x8318, - 0x831e, 0x8315, 0x83d3, 0x83da, 0x83d9, 0x85e6, 0x85f4, 0x85e1, - 0x8669, 0x8640, 0x8658, 0x866c, 0x864d, 0x8721, 0x8799, 0x87f1, - 0x5f68, 0x8886, 0x8b5b, 0x8b5c, 0x8b77, 0x8b2c, 0xc4ad, 0x8b58, - 0x8b64, 0x8b61, 0x8b48, 0x8b97, 0x8b59, 0x8b29, 0x8b62, 0x8b2e, - 0x8b68, 0x8b90, 0x8b3a, 0x8b3d, 0x8b5e, 0x8b46, - /* 0x3b */ - 0x8b69, 0x8b65, 0x8b3e, 0x8b49, 0x8b56, 0x8be1, 0x8b78, 0x8b79, - 0x8b66, 0x8b4a, 0x8b35, 0x8b7a, 0x8b92, 0x8b60, 0x8b36, 0x8b51, - 0x8b42, 0x115d, 0x8b3f, 0x8b7b, 0x8b5d, 0x8b94, 0x8b6a, 0xc4b5, - 0x8df2, 0x8fbb, 0x901b, 0x901a, 0x9033, 0x9017, 0x900a, 0x9015, - 0x9012, 0x9001, 0x902d, 0x8ffd, 0x9023, 0x9005, 0x9011, 0x9000, - 0x901c, 0x9035, 0x902e, 0x9036, 0x34bf, 0x902f, 0x900c, 0x9009, - 0x9031, 0x8ffc, 0x900f, 0x9018, 0x9002, 0x9200, 0x931f, 0x9337, - 0x125a, 0x9338, 0x932b, 0x932e, 0x9321, 0x9330, 0x9329, 0x9331, - 0xc4c9, 0x9301, 0x932c, 0x9322, 0x93ff, 0x9477, 0x9467, 0x947f, - 0x947d, 0x947b, 0x947e, 0x951e, 0x951c, 0x9521, 0x9526, 0x9527, - 0x9529, 0x952c, 0x951d, 0x952b, 0x96bf, 0x96a4, 0x96aa, 0x96ae, - 0x969f, 0x96d0, 0x96b1, 0x96ad, 0x969b, 0x96b2, - /* 0x3c */ - 0x96a9, 0x96b3, 0x96b4, 0x96ba, 0x96a5, 0x96b7, 0x96ac, 0x96cb, - 0x96cf, 0x97c6, 0x9801, 0x97ff, 0x97fd, 0x9877, 0x9878, 0x9876, - 0x98f7, 0x99cc, 0x1385, 0x99d4, 0x99d7, 0x99d5, 0x99d6, 0x99d3, - 0x9b5d, 0x9b55, 0x9ce0, 0x9d48, 0x9cee, 0x9cdb, 0x9ce7, 0x9cd6, - 0x9ce5, 0x9ce1, 0x9cdd, 0x9ce2, 0x9e70, 0x9e66, 0x9e6f, 0x9e6e, - 0x9f81, 0x9f69, 0x9f6e, 0x9f6d, 0x9f6c, 0x9f84, 0x9f85, 0x9f71, - 0x9f73, 0x9f6a, 0x9f6f, 0x9f7b, 0xa16a, 0xa17c, 0xa17d, 0xa181, - 0xa1fa, 0xa205, 0xa1eb, 0xa1fb, 0xa1e9, 0xa1ef, 0xa1fc, 0xa1e7, - 0xc4e1, 0xa1ee, 0xa1fd, 0xa332, 0xa3a7, 0xa3b5, 0xa3b1, 0xa3b9, - 0xa3a8, 0xa3b3, 0xc4e6, 0xa48a, 0xa491, 0xa48d, 0xa499, 0x150b, - 0xa49a, 0xa49b, 0xa492, 0xa48f, 0xa4ab, 0x6bdb, 0x1539, 0xa675, - 0xa631, 0xa638, 0x1537, 0xa635, 0xa669, 0xa63b, - /* 0x3d */ - 0xa63d, 0xa66c, 0xa679, 0xa63c, 0xa63e, 0xa897, 0xa8a5, 0xa8a2, - 0xa89d, 0xa8a1, 0xa968, 0xa96f, 0xa96d, 0xa972, 0xa975, 0xa977, - 0xa979, 0xaab5, 0xaaea, 0xaaab, 0xab43, 0xab41, 0xab42, 0xac09, - 0xac08, 0xac06, 0xac01, 0xac03, 0xac00, 0xac04, 0xac0a, 0xac0e, - 0xac0d, 0xac07, 0xac0f, 0xac14, 0xac02, 0xac15, 0xac0c, 0xac10, - 0xac05, 0xacfd, 0xacff, 0xad04, 0xad00, 0xad09, 0xae2b, 0xc4f7, - 0xae31, 0xaedb, 0xaec5, 0xaed3, 0xaece, 0x166b, 0xaec9, 0xaebf, - 0xaecb, 0xaec0, 0xaed0, 0xaed4, 0xafc1, 0xafb9, 0xafbb, 0xafc3, - 0xafc9, 0xb007, 0xb02d, 0xb0f8, 0xb0e1, 0xb0fa, 0xb0ef, 0xb0fd, - 0x16cd, 0xb0eb, 0xb0f1, 0xb0ed, 0xb0fe, 0xb1f8, 0xb203, 0xb1ee, - 0xb1e8, 0xb201, 0xb2ec, 0xb322, 0xb314, 0xb334, 0xb32f, 0xb339, - 0xb341, 0xb33c, 0xb349, 0xb358, 0xb33a, 0xb342, - /* 0x3e */ - 0xb33f, 0xb422, 0xb423, 0xb44a, 0xb4dc, 0xb4d9, 0xb4db, 0xb4e2, - 0xc507, 0xb4df, 0xb4e0, 0xb4d7, 0xb64f, 0xb646, 0xb653, 0xb655, - 0xb64e, 0xb64a, 0xb64c, 0xb663, 0xb751, 0xb753, 0xb758, 0xb74d, - 0xb75a, 0xb749, 0xb75d, 0xb812, 0xb83c, 0xb8d1, 0xb8df, 0xb8d6, - 0xb8d8, 0xb8e0, 0xb8d9, 0xb9b1, 0xb9ac, 0xb9aa, 0xb9ee, 0xb9bd, - 0x184d, 0xb9c3, 0xb9a8, 0xb9ae, 0xb9ab, 0xbc1d, 0xbc27, 0xbc38, - 0xbc12, 0xbc48, 0xbc2b, 0xbc16, 0xbc19, 0xbc3d, 0xbc23, 0xbc2a, - 0xbe64, 0xbead, 0xbeac, 0xc514, 0xbeb1, 0xbeaf, 0xbf2c, 0xbf24, - 0xbf25, 0xbf28, 0xbff9, 0xbff7, 0xbffd, 0xbffe, 0xc039, 0xc033, - 0xc0d7, 0xc0d8, 0xc0e4, 0x3aa1, 0xc10e, 0xc13b, 0xc144, 0xc142, - 0xc194, 0xc193, 0xc1d5, 0xc2a7, 0x2e31, 0x2e23, 0x2e28, 0x2e27, - 0x2ec6, 0x2fa3, 0x3021, 0x321b, 0x0110, 0x32c1, - /* 0x3f */ - 0x32c3, 0x332a, 0x3369, 0x3427, 0x37b6, 0x37a7, 0x37a4, 0x37a6, - 0x3790, 0x379e, 0x3794, 0x37a8, 0x37a5, 0x37a2, 0x3791, 0x027b, - 0x3abc, 0x3abd, 0x3ab4, 0x3ab0, 0x3ae4, 0x3b45, 0x3b4b, 0x3b7e, - 0x3b7f, 0x3b7d, 0x3bc3, 0x3dfc, 0x3df7, 0x3df0, 0x3ded, 0x3df1, - 0x3df8, 0x3fe9, 0x41eb, 0x041d, 0x4390, 0x438d, 0x4386, 0x4391, - 0x438a, 0x4408, 0x4450, 0x46ea, 0x46e6, 0x46e2, 0x46e7, 0x46ed, - 0x46e1, 0x4834, 0x4876, 0x4875, 0x4873, 0x48b5, 0x4990, 0x4992, - 0x4be1, 0x4bdf, 0x4bd5, 0x4bf2, 0x4bfe, 0x4c13, 0x4c2e, 0x4d19, - 0x5008, 0x1df5, 0x5005, 0x5009, 0x5006, 0x5003, 0x4ffd, 0x4ffc, - 0x5002, 0x5042, 0x521a, 0x5211, 0x5215, 0x5216, 0x52cc, 0x52cf, - 0x52d0, 0x5322, 0x531e, 0x5321, 0x54e5, 0x0727, 0x5554, 0x54ef, - 0x5553, 0x5551, 0x55ad, 0x5867, 0x5868, 0x58a4, - /* 0x40 */ - 0x5877, 0x5889, 0x5844, 0x588b, 0x5879, 0x585b, 0x5843, 0x5857, - 0x584a, 0x587c, 0x5846, 0x587b, 0x5856, 0x5aa8, 0x5b76, 0x5b72, - 0x5bd6, 0x5bd8, 0x5bd1, 0x5d22, 0x5d20, 0x5d23, 0x5d1e, 0x5d6e, - 0x60a3, 0x6077, 0x60a6, 0x606d, 0x60a2, 0x607c, 0x6084, 0x6068, - 0x6074, 0x6086, 0x60a5, 0x607b, 0x607a, 0x6069, 0x6072, 0x6076, - 0x634a, 0x6337, 0x632a, 0x632d, 0x6346, 0x6328, 0x6326, 0x6342, - 0x632c, 0x6338, 0x632b, 0x6333, 0x6345, 0x6439, 0x65f9, 0x65fa, - 0x67b8, 0x67b7, 0x67bb, 0x67b9, 0x67b4, 0x696f, 0x6987, 0x698f, - 0x69a2, 0x69a3, 0xc431, 0x6a9b, 0x6a9d, 0x6ace, 0x0bcf, 0x6dbd, - 0x6dbf, 0x6d92, 0x0bcd, 0x6def, 0x6dc9, 0x6ea4, 0x6ea8, 0x6eaa, - 0x6f28, 0x6f24, 0x6f25, 0x6f26, 0x6fa9, 0x6fba, 0x6fbe, 0x6fbc, - 0x6fc0, 0x70f0, 0x70df, 0x70e0, 0x70ed, 0x70db, - /* 0x41 */ - 0x70fb, 0x70b9, 0x70da, 0x70eb, 0x70ec, 0x739a, 0x739f, 0x739b, - 0x7397, 0x73a1, 0x750f, 0x7505, 0x7548, 0x0d82, 0x76bc, 0x76ba, - 0x78bf, 0x7b01, 0x7ae8, 0x7aef, 0x7ae4, 0x7ae6, 0x7b02, 0x7aeb, - 0x7ae0, 0x7aed, 0x7ad9, 0xc464, 0x7b14, 0x7aee, 0x0e52, 0x7b13, - 0x7af9, 0x7af8, 0x7d25, 0xc469, 0x7d19, 0x7d20, 0x7d43, 0x7d3f, - 0x7f45, 0x7f4c, 0x7f49, 0x7f4f, 0x7f41, 0x7f3e, 0x7f4d, 0x7f52, - 0x7f4a, 0x7f4e, 0x7f73, 0x7f42, 0x7f51, 0x7f55, 0x7f50, 0x7f6c, - 0x2afd, 0x7f6a, 0x7f53, 0x7f68, 0x8055, 0x8056, 0x811c, 0x811d, - 0x2280, 0x811e, 0x8123, 0x811f, 0x81e1, 0x81cd, 0x81cb, 0x81cc, - 0x81c8, 0x81c9, 0x829b, 0x8294, 0x8292, 0x8296, 0x8293, 0x8295, - 0x828f, 0x831d, 0x8322, 0x8321, 0x83e9, 0x83ef, 0x83e0, 0x83e6, - 0x83e4, 0x8629, 0x862c, 0x8676, 0x8683, 0x8678, - /* 0x42 */ - 0x863c, 0x6343, 0x867a, 0x1051, 0x86f2, 0x879e, 0x879b, 0x879a, - 0x87f6, 0x87f5, 0x88a5, 0x8893, 0x88a4, 0x8a82, 0x8ac7, 0x8bb7, - 0x8c1d, 0x8be2, 0x8bd7, 0x8be3, 0x8be4, 0x8bbc, 0x8bd3, 0x115a, - 0x8b5a, 0x8bd2, 0x8b2d, 0xc4af, 0x8bc4, 0x8bd0, 0x8be5, 0x8c05, - 0x8c07, 0x8be6, 0x8c1b, 0x8be7, 0x8bd8, 0x8bbe, 0x8c17, 0x8bb4, - 0x8bd9, 0x8be8, 0x8bad, 0x8baf, 0x8bc8, 0x8be9, 0x8bea, 0x8dfe, - 0x8dfb, 0x8e00, 0x9072, 0x9070, 0x9046, 0x9059, 0x905e, 0x9048, - 0x904f, 0x9071, 0x9060, 0x905f, 0x906e, 0x9073, 0xc4c0, 0xc4bf, - 0x9047, 0x906d, 0x906f, 0x9081, 0x906c, 0x9078, 0x9083, 0x9049, - 0x9068, 0x9074, 0x9063, 0x906a, 0x8685, 0x9065, 0x9062, 0x90c8, - 0x91d0, 0x91d4, 0x91d1, 0x9203, 0x9342, 0x9363, 0x9356, 0x935b, - 0x9355, 0x9350, 0x932d, 0x9344, 0x9348, 0x9345, - /* 0x43 */ - 0x9382, 0x1265, 0x9362, 0x9485, 0x948d, 0x9536, 0x952f, 0x9531, - 0x9537, 0x96a7, 0x96d9, 0x96f0, 0x96f2, 0x96fd, 0x96e8, 0x96eb, - 0x96ee, 0x96e0, 0x96e9, 0x96ed, 0x96d6, 0x96f8, 0x96d4, 0x96df, - 0x96e7, 0x96d8, 0x96e3, 0x96ef, 0x970f, 0x97ca, 0x3b46, 0x9805, - 0x980c, 0x980d, 0x987f, 0x9880, 0x9881, 0x9901, 0x9903, 0x99f2, - 0x99e2, 0x99e3, 0x99de, 0x99e9, 0x99e8, 0x99e0, 0x9a01, 0x99f5, - 0x99e4, 0x2501, 0x9a77, 0x9b74, 0x9b6f, 0x9b62, 0x9b61, 0x9b6d, - 0x9b73, 0x9b6a, 0x9b69, 0x9d12, 0x9d2d, 0x9d14, 0x9d0f, 0x9d29, - 0x9d16, 0x9d03, 0x9d46, 0x9d5c, 0x9d11, 0x9d06, 0x9cdc, 0x9d2b, - 0x9d2a, 0x9d2c, 0x9d27, 0x9e7a, 0x9f9c, 0x9f99, 0x9f95, 0x9f8b, - 0x9f98, 0x9f96, 0xa032, 0xa1a4, 0xa1aa, 0xa21b, 0x14af, 0xa20d, - 0xa21c, 0xa20a, 0xa220, 0xa208, 0xa21a, 0xa213, - /* 0x44 */ - 0xa211, 0xa35d, 0xa35f, 0xa35e, 0xa360, 0xa3bb, 0xa3bc, 0xa3c1, - 0xa3c0, 0xa3c8, 0xa3ce, 0xa4a7, 0xa4b2, 0xa4b6, 0xa4a5, 0xa4ba, - 0xa4b5, 0xa4ad, 0xa4a4, 0xa4d3, 0xa4b0, 0xa4b1, 0xa51d, 0xa68d, - 0x1541, 0xa691, 0xa6b6, 0xa6b7, 0xa6bd, 0xa6bc, 0xa696, 0xa694, - 0xa6a0, 0xa8a8, 0xa8a6, 0xa984, 0xa996, 0xa988, 0xa99a, 0xaad1, - 0xaacf, 0xab50, 0xab51, 0xab4e, 0xab80, 0xab81, 0xac1b, 0xac17, - 0xac20, 0xac19, 0xac1a, 0xac21, 0xac1e, 0xac18, 0xac1d, 0x1629, - 0xad2d, 0xad24, 0xad27, 0xad2e, 0xad25, 0xad1c, 0xad19, 0x162a, - 0xad23, 0xad1f, 0xad1a, 0xad2b, 0xad1e, 0xade0, 0xae33, 0xaee6, - 0xaefc, 0xaee5, 0xaef8, 0xaef6, 0xaeea, 0xaef2, 0xaeed, 0xaeeb, - 0xaef0, 0xaef1, 0xafc6, 0xafc8, 0xafce, 0xafc5, 0x1696, 0xafcb, - 0xb113, 0xb114, 0xb107, 0xb10c, 0xb21a, 0x1712, - /* 0x45 */ - 0xb217, 0xb206, 0xb216, 0xb207, 0xb210, 0xb209, 0xb219, 0xb215, - 0xb36e, 0xb33b, 0xb33e, 0xb36c, 0xb365, 0xb364, 0xb359, 0xb37c, - 0xb370, 0xb379, 0xb42c, 0xb452, 0xb451, 0xb44c, 0xb500, 0xb510, - 0xb513, 0xb4ff, 0xb4fe, 0xb4ed, 0xb65a, 0xb658, 0xb65c, 0xb6da, - 0xb778, 0xb75e, 0xb767, 0xb764, 0xb813, 0xb823, 0xb841, 0xb83f, - 0xb840, 0xb8ed, 0xb8e3, 0xb8ea, 0xb8f0, 0xb8e6, 0xb8e9, 0xb8f1, - 0xb8ee, 0xb9d4, 0xb9d1, 0xb9dc, 0xb9ec, 0xbc69, 0xbc6d, 0xbc57, - 0xbc66, 0xbcf9, 0xbc4a, 0xbc60, 0xbc56, 0xbc59, 0xbc4c, 0xbc6a, - 0xbc62, 0xbc63, 0xbc70, 0xbc5f, 0xc50d, 0xbc64, 0xbc5d, 0xbc68, - 0xbc9f, 0xbeba, 0xbeb8, 0xbebc, 0xbeb9, 0xbeb4, 0xbf3b, 0xbf2d, - 0xbf38, 0xbf2f, 0xbf32, 0xc041, 0xc0cb, 0xc0de, 0xc0dd, 0xc0da, - 0xc0dc, 0xc110, 0xc14f, 0xc149, 0xc198, 0xc196, - /* 0x46 */ - 0xc197, 0xc1c7, 0x2c9c, 0xc1da, 0xc1d8, 0xc2a8, 0x2c0a, 0x2c9d, - 0x2ecb, 0x2f38, 0x2f39, 0x2fa6, 0x3223, 0x3222, 0x3221, 0x33ce, - 0x3592, 0x3591, 0x37ec, 0x37e0, 0x37ed, 0x3808, 0x37e5, 0x37ee, - 0x37e4, 0x37eb, 0x37e3, 0x37ea, 0x380a, 0xc359, 0x3ad1, 0x3ae3, - 0x3ad4, 0x3ad0, 0x3ad9, 0x027e, 0x1be1, 0x3ada, 0x3ad3, 0x3b4c, - 0x3b4d, 0x3b7c, 0x3b80, 0x3bcc, 0x3dff, 0x3e08, 0xc108, 0x3e01, - 0xc36b, 0x3e00, 0x3fed, 0x3ff3, 0x3fee, 0x3ff1, 0x3ff0, 0x3fde, - 0x4051, 0x4382, 0x43a9, 0x4398, 0x439d, 0x439a, 0x439e, 0x439f, - 0x43a6, 0x43a7, 0x4409, 0x442f, 0x4571, 0x456d, 0x4572, 0x46ef, - 0x46f0, 0x483b, 0x4839, 0x483c, 0x4838, 0x6afd, 0x483a, 0x4878, - 0x4879, 0x4877, 0x4998, 0x499c, 0x4999, 0x499a, 0x4c11, 0x4c0a, - 0x4bfd, 0x4c0f, 0x4c19, 0x4c03, 0x4c15, 0x4c0c, - /* 0x47 */ - 0x4c09, 0x4c12, 0x4c34, 0x4c2a, 0x4c08, 0x4c2d, 0x4c28, 0xc3b1, - 0x4c2c, 0x4c26, 0x4c33, 0x05a7, 0x4d1a, 0x4d1e, 0x5007, 0x502c, - 0x5032, 0x5028, 0x5031, 0x5029, 0x5030, 0x502a, 0x5044, 0x502e, - 0x52d1, 0x5324, 0x54f7, 0x54f4, 0x54f3, 0x54f8, 0x58b5, 0x5896, - 0x5898, 0x5895, 0x5891, 0x58b2, 0x589e, 0x5859, 0x58a3, 0x589a, - 0x589b, 0x0f20, 0x7f83, 0x5bda, 0x5bdf, 0x5c16, 0x5d1f, 0x5d2d, - 0x5d2e, 0x5d2b, 0x60b8, 0x60bb, 0x60bf, 0x60ba, 0x60d5, 0x60e3, - 0x60c1, 0x60be, 0x60bd, 0x60b4, 0x60c2, 0x60a1, 0x6087, 0x60d7, - 0x60ca, 0x60b5, 0x60da, 0x60d9, 0x60b3, 0x60d8, 0x6367, 0x6371, - 0x6362, 0x635c, 0x6368, 0x6352, 0x6356, 0x3809, 0x2e42, 0x64a0, - 0x6600, 0x65fe, 0x65ff, 0x67cb, 0xc428, 0x67ca, 0x67a9, 0x67c8, - 0x69b4, 0x69ac, 0x69aa, 0x69a9, 0x6b0e, 0x6be9, - /* 0x48 */ - 0x6bed, 0x6bf2, 0x6beb, 0x6bee, 0x6de8, 0x6ddb, 0x6dd7, 0x6de3, - 0x6de5, 0x6dee, 0x6dd5, 0x6eb3, 0x6f2d, 0x6fc1, 0x6fc3, 0x710c, - 0x710e, 0x7107, 0x7117, 0x7109, 0x7116, 0x719a, 0x719c, 0x73b4, - 0x73b7, 0x73b3, 0x3b4e, 0x7513, 0x7514, 0x76e6, 0x76dc, 0x76e8, - 0x76e5, 0x782e, 0x782c, 0x782b, 0x78cd, 0x7b3d, 0x7b32, 0x7b2d, - 0x7b45, 0x7b3e, 0x7b50, 0x7b25, 0x7b53, 0x7b23, 0x7d37, 0x7d38, - 0x7d47, 0x7d3d, 0x7d3e, 0x7d49, 0x7d4a, 0x7d1d, 0x21e9, 0x7fa5, - 0x7f8c, 0x7f8d, 0x7f89, 0x7f96, 0x7f85, 0x7f8f, 0x7f77, 0x7f8e, - 0x7f82, 0x7f8a, 0x7f88, 0x7f7b, 0x7f97, 0x7f7d, 0x7f79, 0x8059, - 0x8124, 0x812d, 0x812e, 0x812b, 0xc476, 0x81da, 0x81d8, 0x81d6, - 0x8287, 0x82a0, 0x8328, 0x8325, 0x831f, 0x83f3, 0x83f7, 0x83f6, - 0x862b, 0x865b, 0x8648, 0x23cb, 0x865c, 0x866d, - /* 0x49 */ - 0x869d, 0x8699, 0x868c, 0x8691, 0x869b, 0x869a, 0x869c, 0x8695, - 0x868d, 0x8696, 0x86a5, 0x872a, 0x87a1, 0x87a4, 0x87ad, 0x88a9, - 0x88ae, 0x88b0, 0x8c0d, 0x8b63, 0x8b71, 0x8c51, 0x8c54, 0x8c2a, - 0x8c44, 0x8c55, 0x8c99, 0x8c39, 0x8c3f, 0x8c3e, 0x8c4f, 0x8c4d, - 0x8c35, 0x8c40, 0x8c31, 0x8bd5, 0x8c2b, 0x8c33, 0x8c41, 0x8c56, - 0x8c4c, 0x8c46, 0x8c3c, 0x8c45, 0x8c43, 0x8c3d, 0x8c70, 0x8c57, - 0x8c38, 0x8c58, 0x1165, 0x8c37, 0x8e07, 0x8e06, 0x8e09, 0x90ab, - 0x9090, 0x9093, 0x90bc, 0x90a9, 0x909e, 0x90bf, 0x90aa, 0x9091, - 0x90a4, 0x909a, 0x90a7, 0x90a1, 0x909c, 0x90a2, 0x909b, 0x909f, - 0x9094, 0x908f, 0x8ef0, 0x9092, 0x9095, 0x90a5, 0x90a6, 0x9204, - 0x939c, 0x9379, 0x937a, 0x937e, 0x937b, 0x9371, 0x9381, 0x937f, - 0x937c, 0x937d, 0x9375, 0x9376, 0x948e, 0x948f, - /* 0x4a */ - 0x953e, 0x953f, 0x9540, 0x9541, 0x1304, 0x970d, 0x9717, 0x9710, - 0x970e, 0x96ea, 0x971d, 0x9703, 0x9722, 0x9704, 0x9700, 0x9720, - 0x9721, 0x9723, 0x9713, 0x9709, 0x9711, 0x97cb, 0x97ce, 0x97d0, - 0x97cc, 0x97d4, 0x3adb, 0x9809, 0x980b, 0x9885, 0x9906, 0x990d, - 0x1364, 0x9914, 0x990f, 0x9a09, 0x9a14, 0x9a0b, 0x99fc, 0x9a04, - 0x9a0a, 0x9a00, 0x99fd, 0x9a07, 0x9a06, 0x9a11, 0x9a79, 0x9a78, - 0x9b88, 0x9b80, 0x9b8b, 0x9d59, 0x9d61, 0x9d75, 0x1423, 0x9d55, - 0x9d5b, 0x9d5f, 0x9d52, 0x9d62, 0x9d72, 0x9d5d, 0x9d68, 0x9d71, - 0x9d65, 0x9d66, 0x9d67, 0x9d76, 0x9d4c, 0x9d60, 0x9d74, 0x9d50, - 0x9e8a, 0x9e81, 0x9e86, 0x9e7f, 0x9e80, 0x9fa5, 0x9fa7, 0x9fa8, - 0x9fa6, 0x9faf, 0x7f95, 0x9fb1, 0xa035, 0xa039, 0xa1c3, 0xa230, - 0xa22a, 0xa22b, 0xa22d, 0xa22e, 0xa22c, 0xa223, - /* 0x4b */ - 0xa221, 0xa222, 0xa36c, 0xa381, 0xa38f, 0xa380, 0xa3d0, 0xa3cd, - 0xa3d5, 0xa3d4, 0xa4d1, 0xa4be, 0xa4cb, 0xa4ce, 0xa4bd, 0xa4d0, - 0xa704, 0xa6d5, 0xa6d0, 0xa6d3, 0xa6fb, 0xa6d8, 0xa6d1, 0xa6fd, - 0xa6d9, 0xa6d6, 0xa6e6, 0xa6f9, 0xa9a1, 0xa99d, 0xa99e, 0x28d9, - 0xaaff, 0xab5f, 0xab57, 0xab60, 0xab59, 0xac2c, 0xac25, 0xac27, - 0xac30, 0xac24, 0xac26, 0xac2d, 0xac2e, 0xac29, 0xac31, 0xad45, - 0xad47, 0xad52, 0xad4a, 0xad50, 0xad46, 0xad4f, 0xad4e, 0xad53, - 0xaf21, 0xaf09, 0xaf1a, 0xaf1b, 0x7115, 0xaf10, 0xc4f9, 0xaf14, - 0xaf0e, 0xaf12, 0xaf0b, 0xafcf, 0xafd2, 0xafd0, 0xafd4, 0xafd3, - 0xafd1, 0x3518, 0xc4fb, 0xb009, 0xb11c, 0xb127, 0xb125, 0xb11b, - 0xb129, 0xb11f, 0xb130, 0xb124, 0xb128, 0xb119, 0xb12f, 0xb224, - 0xb221, 0xb225, 0xb226, 0xb227, 0xb276, 0xb366, - /* 0x4c */ - 0xb375, 0xb369, 0xb37e, 0xb38f, 0xb374, 0x8e10, 0xb3ad, 0xb42b, - 0xb42a, 0xb458, 0xb522, 0xb51d, 0xb52b, 0xb52c, 0xb52d, 0xb533, - 0xb51b, 0xb527, 0xb52a, 0xb528, 0xb53b, 0xb67e, 0xb671, 0xb679, - 0xb678, 0xb670, 0xb66d, 0xb67d, 0xb675, 0xb676, 0xb6de, 0xb766, - 0xb783, 0xb787, 0xb77b, 0xb789, 0xb786, 0xb782, 0xb77c, 0xb781, - 0xb843, 0xb845, 0xb8f7, 0xb8f9, 0xb8fa, 0xba05, 0xb9fe, 0xba0f, - 0xb9ff, 0xb9fa, 0xba09, 0xba20, 0xba0c, 0xba3c, 0xba22, 0xb9f8, - 0xba0a, 0xba08, 0xb9f7, 0xbc8e, 0xbc77, 0xbc8b, 0xbcb4, 0xbc8a, - 0xbc9a, 0xbc79, 0xbc83, 0xbc7f, 0xbca1, 0xbc8f, 0xbca3, 0xbc81, - 0xbc94, 0xbc7e, 0xbc82, 0xbc90, 0xbca5, 0xbcad, 0xbc9d, 0xbe67, - 0xbe69, 0xbecb, 0xbec8, 0xbed1, 0xbf40, 0xbf4b, 0xbf49, 0xbf46, - 0xbf3e, 0xbf43, 0xbf3f, 0xbfa5, 0xbfa7, 0xc04e, - /* 0x4d */ - 0xc04d, 0x499b, 0xc0e5, 0xc0e1, 0xc0e2, 0xc116, 0xc114, 0xc51b, - 0xc159, 0xc151, 0xc15f, 0xc14a, 0xc157, 0xc158, 0xc1ca, 0xc1db, - 0xc1de, 0xc1e0, 0xc1e1, 0xc1df, 0xc1e2, 0xc1e3, 0xc292, 0xc2bf, - 0xc2be, 0x2c0b, 0x2e52, 0x2e4e, 0x00b9, 0xc313, 0x2fa7, 0x3226, - 0x3227, 0x32c6, 0x330b, 0x336a, 0x3378, 0x381a, 0x3816, 0x3819, - 0x3817, 0x381b, 0x3818, 0x3820, 0x3937, 0x3aec, 0x3b81, 0xae3d, - 0x3e0f, 0x3ead, 0x3ffb, 0x4052, 0x43af, 0x43b7, 0x43b2, 0x4578, - 0x45ac, 0x4700, 0x46fe, 0x4702, 0x46fd, 0x4703, 0x4840, 0x4843, - 0x4842, 0x48b7, 0x49a2, 0x4c00, 0x4c35, 0x4c41, 0x4c05, 0x2e53, - 0x4c50, 0x4c4e, 0x4c53, 0x5053, 0x5050, 0x5057, 0x505f, 0x5055, - 0x50ea, 0x5226, 0xb430, 0x522a, 0x5228, 0x522c, 0x522d, 0x52d4, - 0x5507, 0x5558, 0x5559, 0x58c5, 0x58cd, 0x58c7, - /* 0x4e */ - 0x58e8, 0x084b, 0x5a32, 0xc297, 0x5bde, 0x5d32, 0x34c8, 0xc415, - 0x60f1, 0x60f0, 0x60ec, 0x6109, 0x60f9, 0x60f5, 0x60fe, 0x6374, - 0x6381, 0x637c, 0x6375, 0x6389, 0x6382, 0x6397, 0x6386, 0x637d, - 0x6393, 0x639c, 0x6376, 0x6380, 0x6445, 0x30a1, 0x6603, 0x67c9, - 0x67cd, 0x67d0, 0x69ad, 0x69c5, 0x6aa2, 0x6bec, 0x6bf6, 0x6bf3, - 0x6df3, 0x6dfa, 0x6df9, 0x6df5, 0x6df4, 0x6df8, 0x6eb6, 0x6eb4, - 0x6f32, 0x6fcd, 0x6fc8, 0x6fce, 0x6fca, 0x712a, 0x7121, 0x711d, - 0x73bd, 0x73be, 0x73c2, 0x0cf1, 0x73c9, 0x751f, 0x76f1, 0x76ed, - 0x76f2, 0x76e0, 0x76f7, 0x7830, 0x7837, 0x7831, 0x7836, 0x78c8, - 0x7b6d, 0x7b69, 0x7b7d, 0x7b61, 0x7b70, 0x7b71, 0x7b73, 0x7b76, - 0x7b75, 0x7b78, 0x7b79, 0x7b64, 0x7b6e, 0x7d51, 0x7d4f, 0x7d22, - 0x7faf, 0x7faa, 0x7fa3, 0x7f9d, 0x7f9c, 0x7fa1, - /* 0x4f */ - 0x7fb6, 0x7fac, 0x7fa2, 0x7fa7, 0x7fb0, 0x7fa9, 0x7fc3, 0x8131, - 0x8132, 0x8133, 0x8134, 0x8137, 0x813c, 0x81d9, 0x81dd, 0x81de, - 0x81df, 0x81e0, 0x82a5, 0x82aa, 0x82a2, 0x82a3, 0x8404, 0x8403, - 0x83fe, 0x8428, 0x86af, 0x86ad, 0x86a6, 0x87ac, 0x87a5, 0x87b0, - 0x87b1, 0x8801, 0x88b2, 0x88d2, 0x88f1, 0x8bd1, 0x8c47, 0x8cc9, - 0x8ca7, 0x8cc8, 0x8c95, 0x8c8e, 0x8c91, 0x8c7d, 0x8cee, 0x8c8d, - 0x8c8c, 0x8cb0, 0x8c96, 0x8c42, 0x8c7c, 0x8cb1, 0x8cb2, 0x8c84, - 0x8c9d, 0x8ca1, 0x8c98, 0x8cb3, 0x8c22, 0x8c7b, 0x8c8a, 0x8cce, - 0x8c80, 0x8c97, 0x8cb4, 0x8cb5, 0x8c9a, 0x8c9f, 0x8c93, 0x8e12, - 0x8e0b, 0x8e0e, 0x90a3, 0x90cc, 0x90dc, 0x90e1, 0x90de, 0x90d2, - 0x90db, 0x90d9, 0x90d7, 0x90d4, 0x90c9, 0x90eb, 0x90da, 0x90d1, - 0x9104, 0x90ca, 0x90e2, 0x91d7, 0x938c, 0x9399, - /* 0x50 */ - 0x93a2, 0x9396, 0x9394, 0x939f, 0x1267, 0x938e, 0x9403, 0x9494, - 0x9493, 0x9544, 0x972f, 0x9735, 0x972b, 0x9732, 0x972d, 0x9736, - 0x1314, 0x9731, 0x9712, 0x9733, 0x971f, 0x9734, 0x9740, 0x973f, - 0x9741, 0x97d3, 0x9889, 0x9918, 0x9910, 0x9a1a, 0x9a25, 0x9a1e, - 0x9b92, 0x9b95, 0x9b93, 0x9d84, 0x9d9a, 0x9d89, 0x9d8d, 0x9d88, - 0x9d91, 0x9d9b, 0x9d9c, 0xb148, 0x9e8e, 0x9e92, 0x9fc5, 0x9fc1, - 0x9fb8, 0x9fbe, 0x9fb5, 0x9fc7, 0xa03c, 0x1489, 0xa1ec, 0xa23f, - 0xa239, 0xa237, 0xa3a1, 0xa394, 0xa3a0, 0xa3de, 0xa3db, 0xa3df, - 0xa3dc, 0xa4d6, 0xa4dc, 0xa4dd, 0xa4e0, 0xa4e3, 0xa4e1, 0xa718, - 0xa719, 0xa753, 0xc4ec, 0xa744, 0xa70e, 0xa70f, 0xa747, 0xa717, - 0xa71d, 0xa711, 0xa8b4, 0xa8b6, 0xa9b7, 0xa9be, 0xa9c2, 0xa9b4, - 0xab31, 0xab15, 0xab83, 0xac3b, 0xac36, 0xac42, - /* 0x51 */ - 0xac50, 0xac40, 0xac34, 0xac38, 0xac3d, 0xac3e, 0xac35, 0xac3a, - 0xac46, 0xac37, 0xac39, 0xac45, 0xad77, 0xad5d, 0xad6a, 0xad76, - 0xad6b, 0xad6c, 0xad65, 0xad64, 0xad71, 0xad5f, 0xad72, 0xadfe, - 0xadff, 0xae3e, 0xaf2b, 0xaf36, 0xaf2d, 0xaf39, 0xaf3f, 0xaf3b, - 0xaf33, 0xaf42, 0xaf3a, 0xafd5, 0xafd8, 0xafd9, 0xb00d, 0xb00a, - 0xb039, 0xb03a, 0xb13d, 0xb145, 0xb13a, 0xb137, 0xb13e, 0xb142, - 0xb387, 0xb38c, 0xb382, 0xb36b, 0xb3a0, 0xb39a, 0xb390, 0xb38e, - 0xb3a1, 0xb3bd, 0xb3b2, 0xb3b5, 0xb3b7, 0xb3aa, 0xb3a2, 0xb3a5, - 0xb3ae, 0xb3ab, 0xb3bc, 0xb432, 0xb45a, 0xb564, 0xb55c, 0xb54d, - 0xb53f, 0xb53e, 0xb552, 0xb558, 0xb557, 0xb55e, 0xb553, 0xb554, - 0xb556, 0xab65, 0xb684, 0xb685, 0xb686, 0xb797, 0xb7a1, 0xb7a2, - 0x180b, 0xc50a, 0xb7a3, 0xb7a6, 0x1817, 0xb815, - /* 0x52 */ - 0xb824, 0xb84a, 0xb849, 0xb848, 0xb84b, 0xb90e, 0xb562, 0xb90b, - 0xb90a, 0xb908, 0xb906, 0xba43, 0xba47, 0xba3f, 0xba46, 0xba50, - 0x186d, 0xba4b, 0x1870, 0xba52, 0xbcd7, 0xbcbf, 0xbcd8, 0xbce0, - 0xbce7, 0xbcb8, 0xbcd5, 0xbcef, 0xbce6, 0xbce4, 0xbcd4, 0xbcd6, - 0xbcea, 0x18ed, 0xbcbb, 0xbce9, 0xc510, 0xbe6d, 0xbe70, 0xbe73, - 0xbe72, 0xbed4, 0xbece, 0xbed5, 0xbf5a, 0xbf58, 0xbf52, 0xbf50, - 0xbf55, 0xbf4e, 0xbf4d, 0xbfcb, 0xbfcc, 0xbfcd, 0xbfd1, 0xc058, - 0xc063, 0xc05e, 0xc054, 0xc05b, 0xc0e9, 0xc0e7, 0xc0e8, 0xc11d, - 0xc167, 0xc15a, 0xc15c, 0xc15b, 0xc161, 0xc1a1, 0x198d, 0xc1a4, - 0xc1e9, 0xc1ef, 0xc1e5, 0xc1f5, 0xc1eb, 0xc1ed, 0xc296, 0xc295, - 0xc2b3, 0xc2b5, 0xc2b1, 0x00a7, 0x2e4d, 0x3024, 0x322b, 0x33cf, - 0x34c9, 0x3836, 0x3831, 0x3854, 0x383a, 0x3838, - /* 0x53 */ - 0x3939, 0x3938, 0x3af4, 0x3af3, 0x3af6, 0x3afc, 0x3af5, 0x3af1, - 0x3c9c, 0x3e18, 0x3e1a, 0x3ffc, 0x3ffe, 0x4003, 0x4053, 0x422b, - 0x43c6, 0x43c1, 0x457b, 0x4706, 0x4849, 0x48b8, 0x49a3, 0x4c52, - 0x4c4d, 0x4c5f, 0x4c5e, 0x4c61, 0x4d23, 0x508c, 0x506f, 0x5075, - 0x5074, 0x5071, 0x5070, 0x506c, 0x5326, 0x5508, 0x1e07, 0x58f0, - 0x58ef, 0x58fb, 0x5910, 0x590c, 0x58f6, 0x58fe, 0x5b7c, 0x5be1, - 0x5d38, 0x5d6f, 0x6118, 0x6115, 0x611c, 0x6110, 0x6135, 0xc417, - 0x6117, 0x611d, 0x6126, 0x6128, 0x6129, 0x612a, 0x611a, 0xc416, - 0x4707, 0x63ab, 0x63ac, 0x63a1, 0x63ae, 0x63a3, 0x63a7, 0x6448, - 0x6504, 0x65fd, 0x0a5a, 0x6608, 0x67d2, 0x69c6, 0x69be, 0x6a1c, - 0x6aa6, 0x6aa7, 0x6aab, 0x6b00, 0x6bfb, 0x6bfc, 0x6bf9, 0x6c01, - 0x6e06, 0x6e04, 0xc43c, 0x6f34, 0x7136, 0x7132, - /* 0x54 */ - 0x7142, 0x712d, 0x7135, 0x73d8, 0x7523, 0x7520, 0x7701, 0x7700, - 0x7703, 0xc2bc, 0x783c, 0x7841, 0x7835, 0x78c9, 0x7b8e, 0x7b9e, - 0x7b99, 0x7bb4, 0x7baa, 0x7b9f, 0x7b96, 0x7b9d, 0x7bc3, 0x7b74, - 0x7bab, 0x0eaf, 0x7d63, 0x7d5b, 0x7d5a, 0x7fc5, 0x7fc4, 0x7fcf, - 0x7fc8, 0x7fa4, 0x7fbd, 0x7fd3, 0x8060, 0x813b, 0x81e3, 0x81e7, - 0x82a8, 0x82ac, 0x82a9, 0x832a, 0x8408, 0x8409, 0x86b9, 0x88c1, - 0x88c2, 0x88b8, 0x8ce1, 0x8ceb, 0x8ce5, 0x8cfa, 0x8ce4, 0x8d0b, - 0x8cd7, 0x8cef, 0x8ce0, 0x8cec, 0x8cfb, 0xc4b0, 0x8cd3, 0x8ce6, - 0x8cfc, 0x8ce3, 0x8ccf, 0x8cda, 0x8cdc, 0x8cd2, 0x8ca4, 0x116b, - 0x8e17, 0x8e16, 0x90f2, 0x90fc, 0x9118, 0x90f6, 0x90fe, 0x90f3, - 0x90f7, 0x9101, 0x90f9, 0x9106, 0x90f5, 0x9110, 0x90df, 0x9103, - 0x9108, 0x91d8, 0x9205, 0x9397, 0x93b3, 0x93ae, - /* 0x55 */ - 0x93af, 0x93a7, 0x93b1, 0x93a8, 0x93ac, 0x93ab, 0x9404, 0x949a, - 0x954a, 0x9742, 0x9758, 0x974b, 0x9745, 0x9749, 0x974c, 0x9759, - 0x9756, 0x131b, 0x9746, 0x9744, 0x975b, 0x9769, 0x988e, 0x988f, - 0x991e, 0x86bc, 0x9a2f, 0x9b9e, 0x9b9d, 0x9b9f, 0x9b9c, 0x9db4, - 0x9dae, 0x9dab, 0x9db3, 0x9daf, 0x9dc2, 0x9e93, 0x9e95, 0x9e96, - 0x9e97, 0x9fcf, 0x9fce, 0x9fcb, 0xa04b, 0xa246, 0xa243, 0xa245, - 0xa251, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b8, 0xa3e2, 0xa3e3, 0xa3e6, - 0xa4ed, 0xa4ea, 0xa53a, 0xa759, 0xa784, 0xa75f, 0xa77c, 0xa75c, - 0xa758, 0xa755, 0xa75d, 0xa77e, 0xa780, 0xa783, 0xa757, 0x1563, - 0xa75e, 0xa8ba, 0xa9d5, 0xab58, 0xab68, 0xab67, 0xac4a, 0xac4c, - 0xac52, 0xac49, 0xac4e, 0xac47, 0xac4d, 0xac4b, 0xac4f, 0xad7e, - 0xad87, 0xad83, 0xad89, 0x69ca, 0xad86, 0xad88, - /* 0x56 */ - 0xae47, 0xae42, 0xae49, 0xae48, 0x1680, 0x1684, 0x167f, 0xaf44, - 0xaf51, 0xaf46, 0xaf47, 0xafe4, 0xb00f, 0xb03f, 0xb14b, 0xb157, - 0xb152, 0x16f1, 0xb151, 0xb158, 0xb15e, 0xb153, 0xb15d, 0xb14d, - 0xb23c, 0xb23f, 0xb246, 0xb23e, 0xb244, 0xb245, 0xb241, 0xb238, - 0xb242, 0xb243, 0xb27a, 0xb3a3, 0xb3ba, 0xb3c0, 0xb3c4, 0xb3c6, - 0xb3cb, 0xb461, 0xb57a, 0xb573, 0xb572, 0xb574, 0xb580, 0xb581, - 0x2947, 0xb695, 0xb68f, 0xb690, 0xb692, 0xb694, 0xb68b, 0xb6e6, - 0xb7b2, 0xb7b8, 0xb7bd, 0xb7be, 0xb7ce, 0xb7ba, 0xb816, 0xb826, - 0xb825, 0xb84c, 0xb850, 0xb84e, 0xb851, 0xb852, 0xb914, 0xb915, - 0xb91b, 0xba82, 0xba99, 0xba9a, 0xba7d, 0xba85, 0xba86, 0xba9c, - 0xba79, 0xba7b, 0xba80, 0xba83, 0xba81, 0xbd1e, 0xbd1b, 0xbd2a, - 0xbcfb, 0xbd05, 0xbd20, 0xbd11, 0xbd04, 0xbcfd, - /* 0x57 */ - 0xbd03, 0xbd10, 0xbd18, 0xbd0a, 0xbd4e, 0xbd09, 0xbd07, 0xbd1c, - 0x191c, 0xbe77, 0xbe76, 0xbed8, 0xbed9, 0xbf61, 0xbf5c, 0xbf5e, - 0xbf60, 0xbfaa, 0xbfd6, 0xbfd8, 0xc009, 0xc008, 0xc06b, 0xc065, - 0xc073, 0xc074, 0xc0ed, 0xc124, 0xc125, 0xc16a, 0xc1a7, 0xc1a8, - 0xc20b, 0xc1fa, 0xc1f9, 0xc1ff, 0xc204, 0xc1f6, 0xc205, 0xc299, - 0xc2ab, 0xc2bd, 0xc2b8, 0x00a8, 0x2e64, 0x2e5a, 0x2f72, 0x337a, - 0x3595, 0x385f, 0x3861, 0x385e, 0x385a, 0x385c, 0x385d, 0x386e, - 0x3857, 0x3858, 0x3b02, 0x3b0b, 0x3b08, 0x3b51, 0x3e25, 0x3e28, - 0x3e23, 0x3e21, 0x3e24, 0x3e29, 0x4006, 0x400a, 0x43ca, 0x43cc, - 0x43cb, 0x43cf, 0x457f, 0x457c, 0x45d6, 0x4709, 0x470b, 0x4776, - 0x487d, 0x49a5, 0x4c5b, 0x4c5c, 0x4c5d, 0x4c65, 0x506d, 0x5082, - 0x5083, 0x5087, 0x5095, 0x508a, 0x52d6, 0x5328, - /* 0x58 */ - 0x550d, 0x592e, 0xc3ee, 0x592d, 0x5921, 0x5919, 0x5a3b, 0x5a3c, - 0x5a3a, 0x5b7e, 0x5d3b, 0x6147, 0x6139, 0x6134, 0x6136, 0x6146, - 0x613b, 0x6141, 0x6145, 0x63c0, 0x63c4, 0x63ba, 0x63bd, 0x63be, - 0x64a3, 0x660c, 0x67d9, 0x69cd, 0x6aae, 0x6bff, 0x6c24, 0x6ebb, - 0x6ebc, 0x6f36, 0x6fd5, 0x6fd3, 0x6fd6, 0x713c, 0x713f, 0x73de, - 0x73e3, 0x7527, 0x7529, 0x0d8b, 0x7705, 0x7707, 0x770c, 0x78d0, - 0x7bbe, 0x7bbc, 0x7bd0, 0x7bc2, 0x7bb5, 0x7bc9, 0x7d66, 0x0f2b, - 0x7fd5, 0x7fe2, 0x7fdc, 0x7fe3, 0x7fda, 0x7fc2, 0x7fe8, 0x81e9, - 0x82af, 0x82ad, 0x82ae, 0x840b, 0x86c1, 0x87b6, 0x87b9, 0x88c0, - 0x8ca5, 0x8d28, 0x8d22, 0x8d29, 0x8d18, 0x8d1f, 0x8d1c, 0x8d12, - 0x8d2a, 0x117a, 0x8d21, 0x8d2b, 0x8d17, 0x8cf0, 0x8d16, 0x8d23, - 0x912b, 0x9126, 0x913d, 0x9122, 0x913a, 0x9131, - /* 0x59 */ - 0x9132, 0x9154, 0x9121, 0x9135, 0x1209, 0x912e, 0x9130, 0x912f, - 0x9136, 0x91da, 0x91d9, 0x93bb, 0x93bc, 0x93b7, 0x93c2, 0x93bd, - 0x93b2, 0x126d, 0x7144, 0x7bd1, 0x9752, 0x976b, 0x9767, 0x131f, - 0x9761, 0x976c, 0x9751, 0x9774, 0x9777, 0x976f, 0x976d, 0x9768, - 0xc4d1, 0x9784, 0x9890, 0x9892, 0x9893, 0x991f, 0x9a31, 0x9a38, - 0x9a39, 0x9a37, 0x9bab, 0x9dc3, 0x9dc8, 0x9dcb, 0x9dcf, 0x9e98, - 0x9fd4, 0x9fd3, 0x9fd8, 0x9fd9, 0x9fdd, 0x9fd1, 0x9fd6, 0xa03e, - 0xa258, 0xa257, 0xa255, 0xa3c4, 0xa3e4, 0xa4ee, 0xa4ef, 0xa4f3, - 0xa4f2, 0xa4f0, 0xa7ab, 0xa79a, 0xa7af, 0xa797, 0x156a, 0x156c, - 0xa7bf, 0xa794, 0xa793, 0xa8be, 0xa8bb, 0xa8bc, 0xa9d9, 0xab6c, - 0xac53, 0xac54, 0xac5b, 0xac58, 0xac56, 0xac57, 0xad9f, 0xad94, - 0xad96, 0xad97, 0xae4a, 0xae4b, 0xaf55, 0xaf5a, - /* 0x5a */ - 0xaf5e, 0xaf5f, 0xaf59, 0xaf5b, 0xaf58, 0xaf54, 0xafe8, 0xafeb, - 0xafec, 0xb013, 0xb166, 0xb16b, 0xb162, 0xb169, 0xb163, 0xb15f, - 0xb14e, 0xb248, 0xb24a, 0xb3e3, 0xb3db, 0xb3d8, 0xb3d6, 0xb586, - 0xb590, 0xb591, 0xb588, 0xb594, 0xb583, 0x17b2, 0xb59c, 0xb58d, - 0xb585, 0xb698, 0xb69a, 0xb69c, 0xb6e7, 0xb7c5, 0xb7d0, 0xb7d1, - 0xb819, 0xb827, 0x181d, 0xb854, 0xb92d, 0xb922, 0x182d, 0xb91f, - 0xbabd, 0xbaae, 0xbabb, 0xbaad, 0xbabc, 0xbab9, 0xbab4, 0xbacb, - 0xbab7, 0xbab3, 0xbaba, 0xbab6, 0xbacd, 0xbabe, 0xbac9, 0xc50b, - 0xbd5f, 0xbd3b, 0xbd61, 0xbd5c, 0xbd8a, 0xbd5a, 0xbd4d, 0xbd46, - 0xbd44, 0xbd3d, 0xbd40, 0xbd3c, 0xbd8c, 0xbd41, 0xbd4c, 0xbd3e, - 0xbd4a, 0xbe7c, 0xbe7a, 0xbf65, 0xbf6e, 0xbf69, 0xbf6a, 0xbf6f, - 0xbf6c, 0xbf70, 0xbf68, 0xbf6b, 0x1945, 0xbfac, - /* 0x5b */ - 0xbfde, 0xbfdd, 0xbfdc, 0x63c5, 0xc08c, 0xc083, 0xc082, 0xc088, - 0xc085, 0xc081, 0xc0f5, 0xc0ef, 0xc0f4, 0xc0f2, 0xc0f6, 0xc0f3, - 0xc0f0, 0xc0f1, 0xc12b, 0xc127, 0xc128, 0xc16c, 0xc1ae, 0xc20e, - 0xc21b, 0xc216, 0xc21f, 0xc222, 0xc220, 0xc221, 0xc214, 0xc213, - 0xc29d, 0xc29c, 0xc29e, 0xc29f, 0x2e6b, 0x32c8, 0x3878, 0x3876, - 0x3870, 0x3871, 0x3b0a, 0x3e2c, 0x4711, 0x487e, 0x4c57, 0x4c66, - 0x4c69, 0x4c67, 0x4c68, 0x4c71, 0x4c6f, 0xbfae, 0x508b, 0x5096, - 0x5235, 0x523a, 0x526b, 0x5516, 0x5943, 0x5946, 0x593f, 0x593b, - 0x593d, 0x5ab1, 0x5ab2, 0x5be4, 0x5d40, 0x615d, 0x6151, 0x614d, - 0x614c, 0x615b, 0x63d4, 0x63d2, 0x63ca, 0x63c8, 0x63d0, 0x63c9, - 0x6449, 0x64a4, 0x6612, 0x660f, 0x6611, 0x67db, 0x67dd, 0x67dc, - 0x69d4, 0x6a21, 0x6ab2, 0x6c04, 0x6c02, 0x6e11, - /* 0x5c */ - 0x6e16, 0x6e10, 0x6ebe, 0x8e1a, 0x714c, 0x714a, 0x73f2, 0x73f1, - 0x752a, 0x752c, 0x752f, 0x7531, 0x7711, 0x7712, 0x784b, 0x7bdb, - 0x7bd6, 0x7bdd, 0x7be2, 0x7be4, 0x7be0, 0x7bdf, 0x7be3, 0x7d6e, - 0x7d71, 0x7fe9, 0x7fea, 0x8063, 0x81eb, 0x81ea, 0x86bd, 0x86bb, - 0x86c6, 0x86cc, 0x86c8, 0x63cf, 0x86c9, 0x86ca, 0x86cf, 0x86d0, - 0x87ba, 0x87fb, 0x8803, 0x88c4, 0x8d49, 0x8d53, 0x8d36, 0x8d4a, - 0x8d41, 0x8d4e, 0x8d19, 0x8d4d, 0x8d45, 0x8d4c, 0x8d47, 0x8d48, - 0x8d4f, 0x8d37, 0x8d42, 0x914a, 0x9146, 0x120a, 0x9149, 0x914f, - 0x9151, 0x914c, 0x120c, 0x9206, 0x9551, 0x977a, 0x9783, 0x977e, - 0x977f, 0x9780, 0x6ab5, 0x9891, 0x9894, 0x9895, 0x9921, 0x9920, - 0x9a3d, 0x9a40, 0x9a46, 0x9a84, 0x9bac, 0x9bad, 0x142e, 0x9dda, - 0x9dd9, 0x9fe2, 0x9fe1, 0x9fe3, 0x9fe4, 0x9fde, - /* 0x5d */ - 0x9fdf, 0xa241, 0xa259, 0xa25c, 0xa25a, 0xa3e8, 0xa4f6, 0xa4fc, - 0xa4f7, 0xa4fa, 0xa4f9, 0xa7c4, 0xa7be, 0xa7d2, 0xa7bd, 0xa795, - 0xa7d4, 0xa9e4, 0xac61, 0xac62, 0xac63, 0xac64, 0xac60, 0xac5c, - 0xac5d, 0xac5e, 0xada5, 0xada6, 0xae4c, 0xaf68, 0xaf6e, 0xaf71, - 0xaf6b, 0xaf6f, 0xafee, 0xaff1, 0xaff0, 0xafef, 0xb015, 0xb014, - 0xab6e, 0xb047, 0xb17c, 0xb17a, 0xb174, 0xb176, 0xb16e, 0xb178, - 0xb16d, 0xb16c, 0xb24e, 0xb3d7, 0xb3ea, 0xb3e5, 0xb464, 0xb5b3, - 0xb5a3, 0xb5a5, 0xb5a7, 0xb5a2, 0xb59f, 0xb5a6, 0xb59e, 0xb5a8, - 0xb6a9, 0xb6a6, 0xb6aa, 0xb6ab, 0xb6a0, 0xb6a1, 0xb6a8, 0xb6e8, - 0xb6e9, 0xb6ea, 0xb7e4, 0xb7df, 0xb7e0, 0xb828, 0xb85d, 0xb85b, - 0xb856, 0xb857, 0xb85f, 0xb862, 0xbae1, 0xbae3, 0xbade, 0xbad9, - 0xbae8, 0xbaf2, 0xbaf6, 0xbae6, 0xbaf4, 0xbaf5, - /* 0x5e */ - 0xbae5, 0xbae2, 0x188d, 0xbd96, 0xbdaa, 0xbd97, 0xbd70, 0xbda1, - 0xbd9d, 0xbda9, 0xbd6f, 0xbd7e, 0xbd94, 0xbd9a, 0xbd73, 0xbd87, - 0xbd71, 0xbd77, 0xbd88, 0xbd8d, 0xbd85, 0xbd78, 0xbdad, 0xbe80, - 0xbe81, 0xbee5, 0xbee7, 0xbf7c, 0xbfaf, 0xbfe1, 0xc096, 0xc0a3, - 0xc090, 0xc0f8, 0xc12e, 0xc175, 0xc17e, 0xc17d, 0xc17b, 0xc178, - 0xc1b0, 0xc234, 0xc236, 0xc230, 0xc51d, 0xc22e, 0xc237, 0x34ce, - 0x3597, 0x3598, 0x387c, 0x387e, 0x387d, 0x387f, 0x3b0f, 0x3ca4, - 0x3e31, 0x3e2e, 0x3e2f, 0x3e32, 0x422c, 0x43d4, 0x43dc, 0x43d8, - 0x440e, 0x4583, 0x4584, 0x4712, 0x4c72, 0x4c7c, 0x4c7e, 0x50a6, - 0x50a0, 0x509e, 0x50a2, 0x532a, 0x5518, 0x594d, 0x5958, 0x595b, - 0x7714, 0xc3f2, 0x5be6, 0x6164, 0x6168, 0x6160, 0x6162, 0x63d7, - 0x644b, 0x67e0, 0x6a22, 0x6c05, 0x6e19, 0x6e1a, - /* 0x5f */ - 0x6ec3, 0x6fd8, 0x6fdc, 0x714f, 0x73f7, 0x73f4, 0x73f8, 0x7713, - 0x7850, 0x7bf0, 0x7be9, 0x7bef, 0x7bed, 0x7bea, 0x7bf8, 0x7c05, - 0x7bf2, 0x7d72, 0x0f31, 0x7ff9, 0x7ff3, 0x7ff6, 0x7ff2, 0x7ff7, - 0x8066, 0x8065, 0x8140, 0xc477, 0x86d1, 0x86d3, 0x8804, 0x8d59, - 0x8d60, 0x8d5b, 0x8d5d, 0x8d5e, 0x8d69, 0x8d5c, 0x8d61, 0x8d6a, - 0x8d5f, 0x914e, 0x915c, 0x9160, 0x9163, 0x91db, 0x93ca, 0x93c9, - 0x93c8, 0x94a5, 0x94a3, 0x978e, 0x9787, 0x9789, 0x9785, 0x9786, - 0x978f, 0x978a, 0x9790, 0x9898, 0x989b, 0x9a47, 0x9a49, 0x9a48, - 0x9de5, 0x9dea, 0x9ded, 0x9ff0, 0x9fef, 0x9ff2, 0x9fec, 0xa040, - 0xa260, 0xa25f, 0xa3eb, 0xa3ec, 0xa500, 0xa501, 0xa7e2, 0xa7df, - 0xa7e0, 0xa7e1, 0xa7e3, 0xa8c3, 0xa9eb, 0xa9ea, 0xab61, 0xab71, - 0xac6b, 0xac68, 0xac69, 0xac67, 0xadb0, 0xadb1, - /* 0x60 */ - 0xadb2, 0xae51, 0xaf74, 0xb17f, 0xb184, 0xb253, 0xb254, 0xb3f0, - 0xb3f4, 0xb3f1, 0xb437, 0xb5bf, 0x17bc, 0x17bb, 0xb5bd, 0xb5be, - 0xb5b7, 0xb5c0, 0xb5ba, 0xb5b8, 0xb5bc, 0xb5bb, 0xb6eb, 0xb7e7, - 0xb81d, 0xb81c, 0xb863, 0x484b, 0xb938, 0xb936, 0xb934, 0xb937, - 0xbb06, 0xbb1c, 0xbb02, 0xbb1d, 0xbb1e, 0xbae0, 0xbb11, 0xbb18, - 0xbb21, 0xbb20, 0xbb10, 0xbdbd, 0xbdae, 0xbdb5, 0xbdb8, 0xbdb9, - 0xbdbe, 0xbdc4, 0xbdbc, 0xbdba, 0xbe83, 0xbeea, 0xbeec, 0xbf7e, - 0xbf7b, 0xbfe5, 0xc0a7, 0xc09e, 0xc09a, 0xc12f, 0xc131, 0xc183, - 0xc1b5, 0xc246, 0xc241, 0xc243, 0xc23d, 0xc242, 0xc23b, 0xc247, - 0x336b, 0x33d0, 0x388e, 0x4011, 0xc371, 0xc389, 0x484c, 0x532b, - 0x594f, 0x595e, 0x5963, 0x596b, 0x5a3f, 0x5be9, 0x616d, 0x616b, - 0x616a, 0xbb2a, 0x63e0, 0x63dd, 0x63e1, 0x63de, - /* 0x61 */ - 0x63dc, 0x644d, 0x6616, 0x67e3, 0x69e5, 0x69e4, 0x6e1d, 0x754b, - 0xc2c1, 0x784e, 0x78d6, 0x7bfd, 0x7c07, 0x7bfe, 0x7c03, 0x7c0b, - 0x7bff, 0x7d7a, 0x7d77, 0x7ffb, 0x8143, 0x81ed, 0x87bc, 0x63df, - 0x8805, 0x88c6, 0x88c5, 0x8d74, 0x8d73, 0x8d72, 0x8d78, 0x9173, - 0x917a, 0x6e1c, 0x9176, 0x9175, 0x9177, 0x93cf, 0x93ce, 0x93cd, - 0x94a8, 0x9798, 0x9792, 0x9794, 0x989a, 0x9bb4, 0x9deb, 0x9df4, - 0x9df3, 0x9dee, 0x9df2, 0x9df0, 0xa264, 0xa805, 0xa7fb, 0xa7fc, - 0xa9f3, 0xac6c, 0xadba, 0xaf79, 0xaf7e, 0xaf78, 0xaff4, 0xb016, - 0xb257, 0xb5c8, 0xb5c3, 0xb5ce, 0xb6b3, 0xb6ed, 0xb6ee, 0xb7f1, - 0xb7f8, 0x1814, 0xb864, 0xb865, 0xbb35, 0xbb29, 0xbb2c, 0xbb31, - 0xbb2b, 0xbb2e, 0xbb25, 0xbdda, 0xbde0, 0xbdd4, 0xbde1, 0xbddd, - 0xbfe7, 0xc012, 0xc0ae, 0xc0af, 0xc186, 0xc185, - /* 0x62 */ - 0xc1d1, 0xc258, 0xc23f, 0xc252, 0xc24b, 0xc253, 0xc250, 0xc256, - 0xc257, 0xc2cd, 0xc2cb, 0x3231, 0x3230, 0x33d1, 0x021c, 0x3892, - 0x3890, 0x388f, 0x3893, 0x3891, 0x0372, 0x4713, 0x487f, 0x50ac, - 0x6170, 0x63e5, 0x6a23, 0x6a24, 0x6c08, 0x6c07, 0x6e1f, 0x6e20, - 0x6e21, 0x6fe1, 0x7154, 0x7157, 0x7155, 0x73fa, 0x7538, 0x8d86, - 0x7537, 0x7853, 0x7d7e, 0x7d7b, 0xc471, 0x7ffd, 0x7ffc, 0x8146, - 0x8732, 0x88c7, 0x8d71, 0x8d83, 0x8d6f, 0x8d7e, 0x8d7d, 0x8d81, - 0x8d7c, 0x918a, 0x917e, 0x9180, 0x917d, 0x917f, 0x9182, 0x93d4, - 0x93d0, 0x93d2, 0x9555, 0x979b, 0x979a, 0x9a4e, 0x9df1, 0x9ff8, - 0x9ffd, 0xa25e, 0xa266, 0xa505, 0xa80a, 0xa80b, 0xa80e, 0xa80d, - 0xa811, 0xa809, 0xa810, 0xa80c, 0xa812, 0xa8c4, 0xa9f7, 0xa9f8, - 0xab6a, 0xab6b, 0xadc0, 0xadc2, 0xaf85, 0xaf80, - /* 0x63 */ - 0xaf84, 0xaf81, 0xadc4, 0xb18b, 0xb18d, 0xb18e, 0xb6b7, 0xb6b9, - 0xb6ef, 0xb7fb, 0xb7ff, 0xb867, 0xb868, 0xb869, 0xb93f, 0xbb3c, - 0xbb4c, 0xbb3d, 0xbb3e, 0xbb3f, 0xbb3b, 0xbdff, 0x190e, 0xbdf6, - 0xbdee, 0xbdfc, 0xbdf8, 0xbe01, 0xbdfa, 0xbe88, 0xbf80, 0xc011, - 0xc0fe, 0xc100, 0xc135, 0x6f3c, 0xc1bd, 0xc1bb, 0xc25c, 0xc25a, - 0xc2d1, 0xc2d0, 0x340b, 0x5973, 0x3e39, 0x401a, 0x43e3, 0x4587, - 0x4777, 0x4778, 0x50b1, 0x596a, 0x5974, 0x5beb, 0x617b, 0x64a5, - 0x67e4, 0x6c0b, 0x6c0e, 0x6c0c, 0x7539, 0x7c10, 0x7c11, 0x7c16, - 0x7d81, 0x7d80, 0x7ffe, 0x8001, 0x8000, 0x8147, 0x81ef, 0x8d88, - 0x918b, 0x918d, 0x9187, 0x9185, 0x918f, 0x9184, 0x9188, 0x918e, - 0x918c, 0x93d7, 0x93d6, 0x979f, 0x4588, 0x9e03, 0x9ffe, 0xa3ef, - 0xa509, 0xa508, 0xa820, 0xa824, 0xa81f, 0xac70, - /* 0x64 */ - 0xae56, 0xaff7, 0xaff8, 0xaff6, 0xb190, 0xb25e, 0xb3f7, 0xb5d6, - 0xb5d5, 0xb6bb, 0xb6f0, 0xb801, 0xb86c, 0xb941, 0xb942, 0xbb4f, - 0xbb53, 0xbb58, 0xbe12, 0xbe04, 0xbe13, 0xbe05, 0xbe0d, 0xbf82, - 0xbf81, 0xc0b5, 0xc0ba, 0xc1be, 0xc265, 0xc263, 0xc26e, 0xc26a, - 0xc26c, 0xc2c4, 0x336c, 0x97a5, 0x4012, 0x484d, 0x551f, 0x5977, - 0x5978, 0x5d44, 0x617c, 0x63eb, 0x63ea, 0x63ec, 0x64a7, 0x6619, - 0x6e23, 0x2074, 0x7401, 0x7c1c, 0x8003, 0x8148, 0x86da, 0x8d91, - 0x8d92, 0x9196, 0x9197, 0x9191, 0x9193, 0x93d8, 0x93d5, 0x9557, - 0x9558, 0x97a2, 0x9e05, 0x9ffa, 0xa50c, 0xa50a, 0xa82e, 0xa829, - 0xa82f, 0xa8c5, 0xac72, 0xadc8, 0xae5a, 0xae59, 0xaf89, 0xaf88, - 0xb5db, 0xb5d9, 0xb5da, 0xb6bc, 0x17ec, 0xb806, 0xb805, 0xb86f, - 0xb86d, 0xb870, 0xbb60, 0xbb5e, 0xbb63, 0xbb5a, - /* 0x65 */ - 0xbb5f, 0xbe19, 0xbe1d, 0xbe1b, 0xbe22, 0xbe1c, 0xbe1e, 0xbef7, - 0xbf84, 0xc015, 0xc0b8, 0xc0c1, 0xc101, 0xc10a, 0xc1d2, 0xc275, - 0xc274, 0xc272, 0x34d0, 0x401b, 0x4410, 0x4779, 0x63ed, 0x6ab9, - 0x6e24, 0x6ec5, 0x7403, 0x814a, 0x86f7, 0x87c1, 0x87c2, 0x8d94, - 0x9199, 0x919a, 0x955a, 0x97a8, 0x9825, 0x989e, 0xa041, 0xa832, - 0xa833, 0xadcb, 0xadca, 0xadcc, 0xb193, 0xb5e0, 0xb871, 0xbb6b, - 0xbe2b, 0xbe29, 0xbe1a, 0xbe26, 0xbe27, 0xbe2a, 0xbef8, 0x6f3d, - 0xc276, 0x3b18, 0x597a, 0x617f, 0x0e79, 0x81f0, 0x8d9a, 0x8d96, - 0x919e, 0x919d, 0x91dc, 0x93da, 0x9e0b, 0xa002, 0xa042, 0xa267, - 0xaf8b, 0xb5e2, 0xbb71, 0xbe2f, 0xbe2e, 0xc0c6, 0xc18e, 0xc27b, - 0xc277, 0xc278, 0xc27c, 0x597c, 0x8007, 0x8d97, 0x97d9, 0xa50d, - 0xa50e, 0xb5e3, 0xb5e4, 0xb6f3, 0xb875, 0xbe37, - /* 0x66 */ - 0xbe35, 0xc18f, 0xc280, 0xc27f, 0xc2d4, 0x50b4, 0xbfec, 0xab75, - 0x6c10, 0x8069, 0x91a4, 0x93db, 0xadd1, 0xaf8d, 0xbb76, 0xbe39, - 0xc284, 0xc282, 0x34d2, 0x63ee, 0x6c11, 0x7d84, 0xab74, 0xaf8f, - 0xaf8e, 0xbe3b, 0x32cb, 0xc288, 0xc286, 0x555c, 0x71a4, 0xac75, - 0xc28b, 0x3b19, 0x989f, 0xb5e5, 0xbe40, 0x6c12, 0xbefb, 0xc28c, - 0x71a5, 0xb877, 0xb878, 0xc2d6, 0x93df, 0xadd2, 0x3b1a, 0x97a9, - 0xadd3, 0xc0ca, 0x87c4, 0x94b1, 0xb264, -}; - -static const ucs4_t cns11643_7_2uni_upages[198] = { - 0x03400, 0x03500, 0x03600, 0x03700, 0x03800, 0x03900, 0x03a00, 0x03b00, - 0x03c00, 0x03d00, 0x03e00, 0x03f00, 0x04000, 0x04100, 0x04200, 0x04300, - 0x04400, 0x04500, 0x04600, 0x04700, 0x04800, 0x04900, 0x04a00, 0x04b00, - 0x04c00, 0x04d00, 0x05600, 0x05800, 0x06100, 0x06400, 0x06700, 0x07100, - 0x07600, 0x07c00, 0x07f00, 0x08100, 0x08600, 0x08d00, 0x08f00, 0x09300, - 0x09500, 0x09a00, 0x0ff00, 0x20000, 0x20100, 0x20300, 0x20400, 0x20500, - 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20f00, 0x21000, - 0x21100, 0x21200, 0x21400, 0x21500, 0x21600, 0x21800, 0x21900, 0x21a00, - 0x21b00, 0x21c00, 0x21d00, 0x21f00, 0x22000, 0x22100, 0x22200, 0x22300, - 0x22400, 0x22500, 0x22700, 0x22800, 0x22900, 0x22a00, 0x22c00, 0x22d00, - 0x22e00, 0x22f00, 0x23000, 0x23100, 0x23200, 0x23300, 0x23500, 0x23600, - 0x23700, 0x23800, 0x23900, 0x23a00, 0x23b00, 0x23c00, 0x23e00, 0x23f00, - 0x24000, 0x24100, 0x24300, 0x24400, 0x24500, 0x24600, 0x24700, 0x24800, - 0x24900, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x24f00, 0x25000, - 0x25200, 0x25300, 0x25400, 0x25500, 0x25600, 0x25700, 0x25800, 0x25900, - 0x25a00, 0x25b00, 0x25c00, 0x25d00, 0x25e00, 0x25f00, 0x26000, 0x26100, - 0x26200, 0x26300, 0x26400, 0x26500, 0x26600, 0x26700, 0x26800, 0x26900, - 0x26a00, 0x26d00, 0x26e00, 0x26f00, 0x27000, 0x27100, 0x27200, 0x27300, - 0x27400, 0x27500, 0x27600, 0x27700, 0x27800, 0x27900, 0x27a00, 0x27b00, - 0x27c00, 0x27d00, 0x27e00, 0x27f00, 0x28000, 0x28100, 0x28200, 0x28300, - 0x28400, 0x28500, 0x28600, 0x28700, 0x28800, 0x28900, 0x28a00, 0x28b00, - 0x28c00, 0x28d00, 0x28e00, 0x28f00, 0x29000, 0x29100, 0x29200, 0x29300, - 0x29400, 0x29500, 0x29600, 0x29700, 0x29800, 0x29900, 0x29a00, 0x29b00, - 0x29c00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a200, 0x2a300, - 0x2a400, 0x2a500, 0x2a600, 0x2f800, 0x2f900, 0x2fa00, -}; - -static int -cns11643_7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x66)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 6539) - swc = cns11643_7_2uni_page21[i], - wc = cns11643_7_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/cns11643_inv.h b/jni/parted/libiconv/lib/cns11643_inv.h deleted file mode 100755 index 665d30e..0000000 --- a/jni/parted/libiconv/lib/cns11643_inv.h +++ /dev/null @@ -1,15411 +0,0 @@ -/* - * Copyright (C) 1999-2005, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CNS 11643-1992 planes 1-7, CNS 11643-1986 plane 15 - */ - -static const unsigned char cns11643_inv_2charset[3*55442] = { - 0x1,0x21,0x70, 0x1,0x22,0x78, 0x1,0x22,0x34, 0x1,0x21,0x31, - 0x1,0x22,0x32, 0x1,0x22,0x33, 0x1,0x25,0x6f, 0x1,0x25,0x6d, - 0x1,0x25,0x6e, 0x1,0x25,0x70, 0x1,0x25,0x6c, 0x1,0x24,0x75, - 0x1,0x24,0x76, 0x1,0x24,0x77, 0x1,0x24,0x78, 0x1,0x24,0x79, - 0x1,0x24,0x7a, 0x1,0x24,0x7b, 0x1,0x24,0x7c, 0x1,0x24,0x7d, - 0x1,0x24,0x7e, 0x1,0x25,0x21, 0x1,0x25,0x22, 0x1,0x25,0x23, - 0x1,0x25,0x24, 0x1,0x25,0x25, 0x1,0x25,0x26, 0x1,0x25,0x27, - 0x1,0x25,0x28, 0x1,0x25,0x29, 0x1,0x25,0x2a, 0x1,0x25,0x2b, - 0x1,0x25,0x2c, 0x1,0x25,0x2d, 0x1,0x25,0x2e, 0x1,0x25,0x2f, - 0x1,0x25,0x30, 0x1,0x25,0x31, 0x1,0x25,0x32, 0x1,0x25,0x33, - 0x1,0x25,0x34, 0x1,0x25,0x35, 0x1,0x25,0x36, 0x1,0x25,0x37, - 0x1,0x25,0x38, 0x1,0x25,0x39, 0x1,0x25,0x3a, 0x1,0x25,0x3b, - 0x1,0x25,0x3c, 0x1,0x25,0x3d, 0x1,0x25,0x3e, 0x1,0x25,0x3f, - 0x1,0x25,0x40, 0x1,0x25,0x41, 0x1,0x25,0x42, 0x1,0x25,0x43, - 0x1,0x25,0x44, 0x1,0x25,0x45, 0x1,0x25,0x46, 0x1,0x21,0x39, - 0x1,0x21,0x37, 0x1,0x22,0x5d, 0x1,0x21,0x64, 0x1,0x21,0x65, - 0x1,0x21,0x66, 0x1,0x21,0x67, 0x1,0x21,0x2d, 0x1,0x21,0x2c, - 0x1,0x21,0x6a, 0x1,0x21,0x6b, 0x1,0x21,0x6f, 0x1,0x22,0x23, - 0x1,0x42,0x42, 0x1,0x22,0x6a, 0x1,0x22,0x22, 0x1,0x22,0x6b, - 0x1,0x24,0x2b, 0x1,0x24,0x2c, 0x1,0x24,0x2d, 0x1,0x24,0x2e, - 0x1,0x24,0x2f, 0x1,0x24,0x30, 0x1,0x24,0x31, 0x1,0x24,0x32, - 0x1,0x24,0x33, 0x1,0x24,0x34, 0x1,0x26,0x35, 0x1,0x26,0x36, - 0x1,0x26,0x37, 0x1,0x26,0x38, 0x1,0x26,0x39, 0x1,0x26,0x3a, - 0x1,0x26,0x3b, 0x1,0x26,0x3c, 0x1,0x26,0x3d, 0x1,0x26,0x3e, - 0x1,0x22,0x58, 0x1,0x22,0x55, 0x1,0x22,0x57, 0x1,0x22,0x56, - 0x1,0x22,0x59, 0x1,0x22,0x5a, 0x1,0x22,0x5c, 0x1,0x22,0x5b, - 0x1,0x22,0x61, 0x1,0x22,0x35, 0x1,0x22,0x3c, 0x1,0x22,0x49, - 0x1,0x22,0x48, 0x1,0x22,0x45, 0x1,0x22,0x46, 0x1,0x22,0x4d, - 0x1,0x22,0x4e, 0x1,0x22,0x50, 0x1,0x22,0x4f, 0x1,0x22,0x44, - 0x1,0x22,0x3d, 0x1,0x22,0x3b, 0x1,0x22,0x3e, 0x1,0x22,0x39, - 0x1,0x22,0x3a, 0x1,0x22,0x47, 0x1,0x22,0x4a, 0x1,0x42,0x21, - 0x1,0x42,0x22, 0x1,0x42,0x23, 0x1,0x42,0x24, 0x1,0x42,0x25, - 0x1,0x42,0x26, 0x1,0x42,0x27, 0x1,0x42,0x28, 0x1,0x42,0x29, - 0x1,0x42,0x2a, 0x1,0x42,0x2b, 0x1,0x42,0x2c, 0x1,0x42,0x2d, - 0x1,0x42,0x2e, 0x1,0x42,0x2f, 0x1,0x42,0x30, 0x1,0x42,0x31, - 0x1,0x42,0x32, 0x1,0x42,0x33, 0x1,0x42,0x34, 0x1,0x42,0x35, - 0x1,0x42,0x36, 0x1,0x42,0x37, 0x1,0x42,0x38, 0x1,0x42,0x39, - 0x1,0x42,0x3a, 0x1,0x42,0x3b, 0x1,0x42,0x3c, 0x1,0x42,0x3d, - 0x1,0x42,0x3e, 0x1,0x42,0x3f, 0x1,0x42,0x40, 0x1,0x42,0x41, - 0x1,0x26,0x21, 0x1,0x26,0x22, 0x1,0x26,0x23, 0x1,0x26,0x24, - 0x1,0x26,0x25, 0x1,0x26,0x26, 0x1,0x26,0x27, 0x1,0x26,0x28, - 0x1,0x26,0x29, 0x1,0x26,0x2a, 0x1,0x26,0x2b, 0x1,0x26,0x2c, - 0x1,0x26,0x2d, 0x1,0x26,0x2e, 0x1,0x26,0x2f, 0x1,0x26,0x30, - 0x1,0x26,0x31, 0x1,0x26,0x32, 0x1,0x26,0x33, 0x1,0x26,0x34, - 0x1,0x23,0x39, 0x1,0x23,0x3a, 0x1,0x23,0x3c, 0x1,0x23,0x3d, - 0x1,0x23,0x3e, 0x1,0x23,0x3f, 0x1,0x23,0x37, 0x1,0x23,0x36, - 0x1,0x23,0x35, 0x1,0x23,0x34, 0x1,0x23,0x33, 0x1,0x23,0x44, - 0x1,0x23,0x45, 0x1,0x23,0x47, 0x1,0x23,0x46, 0x1,0x23,0x40, - 0x1,0x23,0x41, 0x1,0x23,0x43, 0x1,0x23,0x42, 0x1,0x23,0x4c, - 0x1,0x23,0x4d, 0x1,0x23,0x4e, 0x1,0x23,0x24, 0x1,0x23,0x25, - 0x1,0x23,0x26, 0x1,0x23,0x27, 0x1,0x23,0x28, 0x1,0x23,0x29, - 0x1,0x23,0x2a, 0x1,0x23,0x2b, 0x1,0x23,0x32, 0x1,0x23,0x31, - 0x1,0x23,0x30, 0x1,0x23,0x2f, 0x1,0x23,0x2e, 0x1,0x23,0x2d, - 0x1,0x23,0x2c, 0x1,0x23,0x38, 0x1,0x23,0x3b, 0x1,0x21,0x7c, - 0x1,0x21,0x7b, 0x1,0x21,0x75, 0x1,0x21,0x74, 0x1,0x21,0x7e, - 0x1,0x21,0x7d, 0x1,0x21,0x7a, 0x1,0x21,0x79, 0x1,0x21,0x72, - 0x1,0x21,0x76, 0x1,0x21,0x73, 0x1,0x23,0x48, 0x1,0x23,0x49, - 0x1,0x23,0x4b, 0x1,0x23,0x4a, 0x1,0x21,0x78, 0x1,0x21,0x77, - 0x1,0x22,0x54, 0x1,0x22,0x51, 0x1,0x22,0x53, 0x1,0x22,0x52, - 0x1,0x21,0x21, 0x1,0x21,0x23, 0x1,0x21,0x24, 0x1,0x21,0x71, - 0x1,0x21,0x52, 0x1,0x21,0x53, 0x1,0x21,0x4e, 0x1,0x21,0x4f, - 0x1,0x21,0x56, 0x1,0x21,0x57, 0x1,0x21,0x5a, 0x1,0x21,0x5b, - 0x1,0x21,0x4a, 0x1,0x21,0x4b, 0x1,0x22,0x65, 0x1,0x21,0x46, - 0x1,0x21,0x47, 0x1,0x21,0x68, 0x1,0x21,0x69, 0x1,0x24,0x35, - 0x1,0x24,0x36, 0x1,0x24,0x37, 0x1,0x24,0x38, 0x1,0x24,0x39, - 0x1,0x24,0x3a, 0x1,0x24,0x3b, 0x1,0x24,0x3c, 0x1,0x24,0x3d, - 0x1,0x21,0x26, 0x1,0x25,0x47, 0x1,0x25,0x48, 0x1,0x25,0x49, - 0x1,0x25,0x4a, 0x1,0x25,0x4b, 0x1,0x25,0x4c, 0x1,0x25,0x4d, - 0x1,0x25,0x4e, 0x1,0x25,0x4f, 0x1,0x25,0x50, 0x1,0x25,0x51, - 0x1,0x25,0x52, 0x1,0x25,0x53, 0x1,0x25,0x54, 0x1,0x25,0x55, - 0x1,0x25,0x56, 0x1,0x25,0x57, 0x1,0x25,0x58, 0x1,0x25,0x59, - 0x1,0x25,0x5a, 0x1,0x25,0x5b, 0x1,0x25,0x5c, 0x1,0x25,0x5d, - 0x1,0x25,0x5e, 0x1,0x25,0x5f, 0x1,0x25,0x60, 0x1,0x25,0x61, - 0x1,0x25,0x62, 0x1,0x25,0x63, 0x1,0x25,0x64, 0x1,0x25,0x65, - 0x1,0x25,0x66, 0x1,0x25,0x67, 0x1,0x25,0x68, 0x1,0x25,0x69, - 0x1,0x25,0x6a, 0x1,0x25,0x6b, 0x1,0x22,0x21, 0x1,0x22,0x75, - 0x1,0x22,0x76, 0x1,0x22,0x70, 0x1,0x22,0x71, 0x1,0x22,0x72, - 0x1,0x22,0x74, 0x1,0x22,0x77, 0x1,0x22,0x73, 0x1,0x22,0x4c, - 0x1,0x22,0x4b, 0x1,0x22,0x6f, 0x6,0x22,0x2c, 0x4,0x22,0x24, - 0x6,0x21,0x30, 0x6,0x21,0x23, 0xf,0x21,0x6c, 0x4,0x21,0x57, - 0x4,0x23,0x36, 0x4,0x28,0x35, 0x3,0x34,0x3b, 0x3,0x39,0x6d, - 0x3,0x27,0x41, 0x3,0x28,0x6c, 0x3,0x23,0x23, 0x4,0x23,0x37, - 0x4,0x25,0x34, 0x3,0x40,0x34, 0x4,0x21,0x59, 0x3,0x21,0x75, - 0x3,0x21,0x6e, 0x3,0x21,0x71, 0x3,0x21,0x73, 0xf,0x21,0x44, - 0x6,0x23,0x4e, 0x3,0x22,0x71, 0x4,0x22,0x31, 0x3,0x22,0x69, - 0x3,0x22,0x6a, 0xf,0x21,0x72, 0x5,0x23,0x34, 0x3,0x24,0x4a, - 0x3,0x24,0x47, 0x3,0x24,0x4d, 0x6,0x25,0x71, 0x3,0x27,0x46, - 0x5,0x25,0x25, 0x4,0x25,0x39, 0x4,0x25,0x3c, 0x3,0x27,0x45, - 0x5,0x25,0x2b, 0x4,0x25,0x3b, 0x4,0x25,0x38, 0x3,0x27,0x50, - 0xf,0x25,0x4a, 0x3,0x2b,0x31, 0x6,0x2e,0x5a, 0x4,0x28,0x39, - 0x3,0x2b,0x30, 0x5,0x28,0x21, 0x4,0x28,0x3a, 0x3,0x2b,0x2a, - 0x4,0x28,0x37, 0x4,0x28,0x3c, 0x5,0x2b,0x6c, 0x3,0x34,0x49, - 0x3,0x2f,0x52, 0x4,0x2b,0x65, 0x6,0x35,0x38, 0x4,0x30,0x45, - 0x3,0x34,0x3e, 0x3,0x34,0x48, 0x4,0x30,0x4a, 0x4,0x36,0x38, - 0x3,0x39,0x73, 0x4,0x36,0x32, 0x4,0x36,0x37, 0x6,0x46,0x55, - 0x6,0x49,0x7b, 0x3,0x39,0x74, 0x3,0x40,0x35, 0x3,0x40,0x38, - 0x3,0x40,0x3b, 0x4,0x3c,0x2c, 0x4,0x3c,0x2d, 0x4,0x3c,0x28, - 0x4,0x3c,0x2a, 0x5,0x44,0x57, 0x4,0x42,0x37, 0x4,0x42,0x33, - 0x4,0x42,0x2e, 0x3,0x45,0x78, 0x6,0x5a,0x73, 0x4,0x42,0x2f, - 0x3,0x45,0x73, 0x4,0x4f,0x59, 0x3,0x45,0x72, 0x3,0x45,0x6f, - 0x3,0x45,0x77, 0x4,0x42,0x32, 0x4,0x48,0x7b, 0x3,0x4b,0x26, - 0x3,0x4b,0x25, 0x4,0x48,0x7d, 0x3,0x4b,0x24, 0x3,0x4b,0x28, - 0x3,0x4b,0x2a, 0x3,0x50,0x32, 0x4,0x4f,0x5d, 0x5,0x53,0x59, - 0x4,0x4f,0x5b, 0x3,0x54,0x3f, 0x3,0x57,0x53, 0x4,0x5a,0x67, - 0x4,0x5a,0x68, 0x4,0x5f,0x49, 0x4,0x63,0x2f, 0x3,0x5c,0x33, - 0x3,0x5c,0x31, 0x7,0x52,0x74, 0x7,0x57,0x4c, 0x4,0x6a,0x41, - 0x3,0x61,0x3c, 0x4,0x22,0x33, 0xf,0x26,0x5a, 0x4,0x2b,0x69, - 0x3,0x57,0x54, 0x3,0x21,0x76, 0x3,0x22,0x79, 0x3,0x24,0x55, - 0x5,0x23,0x37, 0x6,0x25,0x7b, 0x6,0x25,0x7d, 0x3,0x24,0x56, - 0x3,0x2b,0x38, 0x7,0x4d,0x3d, 0x3,0x2a,0x4c, 0x4,0x30,0x4c, - 0x5,0x31,0x26, 0x4,0x36,0x3d, 0x4,0x3c,0x32, 0x4,0x6a,0x42, - 0x3,0x2b,0x3a, 0x3,0x39,0x78, 0x4,0x49,0x22, 0x3,0x21,0x50, - 0x3,0x23,0x21, 0x3,0x24,0x58, 0x5,0x25,0x2e, 0x3,0x27,0x57, - 0x3,0x27,0x56, 0x3,0x27,0x58, 0x4,0x28,0x43, 0x3,0x2b,0x3c, - 0x3,0x2f,0x5d, 0x3,0x2f,0x5c, 0x4,0x30,0x4d, 0x3,0x39,0x7b, - 0x3,0x39,0x7c, 0x4,0x3c,0x34, 0x3,0x45,0x79, 0x5,0x31,0x29, - 0x4,0x21,0x61, 0x6,0x22,0x41, 0x3,0x21,0x7e, 0x4,0x22,0x3c, - 0x5,0x22,0x30, 0x4,0x23,0x3e, 0x4,0x23,0x3f, 0x4,0x25,0x4a, - 0x4,0x25,0x4c, 0x4,0x25,0x48, 0x4,0x25,0x47, 0x3,0x2b,0x41, - 0x3,0x2b,0x45, 0x3,0x2b,0x42, 0x5,0x2b,0x7c, 0x4,0x30,0x53, - 0x3,0x2f,0x67, 0x3,0x2f,0x69, 0x4,0x30,0x57, 0x4,0x30,0x58, - 0x4,0x30,0x52, 0x5,0x31,0x2c, 0x4,0x30,0x54, 0x4,0x30,0x59, - 0x3,0x3a,0x24, 0x6,0x50,0x6c, 0x4,0x36,0x42, 0x4,0x36,0x45, - 0x3,0x3a,0x22, 0x5,0x3d,0x70, 0x3,0x40,0x42, 0x4,0x42,0x41, - 0x4,0x42,0x43, 0x4,0x42,0x42, 0x4,0x42,0x3c, 0x3,0x45,0x7d, - 0x3,0x45,0x7b, 0x4,0x42,0x3f, 0x4,0x42,0x3e, 0x3,0x45,0x7c, - 0x4,0x49,0x23, 0x4,0x4f,0x62, 0x4,0x4f,0x61, 0x4,0x4f,0x63, - 0x5,0x61,0x3b, 0x4,0x55,0x6c, 0x7,0x3e,0x7d, 0x4,0x5f,0x4a, - 0x4,0x63,0x30, 0x4,0x21,0x64, 0x4,0x22,0x40, 0x4,0x23,0x44, - 0x3,0x24,0x64, 0x4,0x25,0x4f, 0x6,0x29,0x6f, 0x6,0x2f,0x27, - 0x4,0x2b,0x75, 0x3,0x2f,0x6b, 0x4,0x30,0x5a, 0x4,0x36,0x4b, - 0x3,0x46,0x22, 0x4,0x55,0x6f, 0x3,0x54,0x43, 0x4,0x55,0x70, - 0x5,0x53,0x63, 0x4,0x5a,0x6e, 0x4,0x30,0x5c, 0x4,0x36,0x4d, - 0x5,0x3d,0x78, 0x6,0x29,0x72, 0x3,0x34,0x53, 0x5,0x70,0x78, - 0x4,0x23,0x4b, 0x6,0x26,0x38, 0x4,0x2b,0x77, 0x3,0x3a,0x25, - 0x6,0x50,0x76, 0x4,0x3c,0x3e, 0x5,0x44,0x6c, 0x4,0x6d,0x53, - 0x6,0x26,0x36, 0x4,0x36,0x50, 0x3,0x21,0x58, 0x6,0x23,0x71, - 0x3,0x23,0x2c, 0x6,0x50,0x7a, 0x3,0x27,0x64, 0x4,0x21,0x2b, - 0x6,0x21,0x3b, 0x6,0x28,0x64, 0x4,0x25,0x56, 0x3,0x23,0x30, - 0x5,0x22,0x3c, 0x3,0x23,0x2e, 0x3,0x24,0x6a, 0x3,0x24,0x69, - 0x3,0x24,0x68, 0x3,0x27,0x68, 0x6,0x2a,0x2a, 0x3,0x2b,0x4c, - 0x3,0x2f,0x70, 0x4,0x2b,0x7a, 0x3,0x2f,0x71, 0x4,0x36,0x51, - 0x6,0x51,0x22, 0x5,0x4c,0x31, 0x3,0x46,0x24, 0x4,0x49,0x27, - 0x3,0x60,0x70, 0x3,0x21,0x5d, 0x3,0x2f,0x72, 0x6,0x3d,0x61, - 0x3,0x34,0x56, 0x4,0x49,0x29, 0x5,0x21,0x41, 0x3,0x21,0x5f, - 0x3,0x23,0x32, 0x4,0x25,0x5a, 0x4,0x28,0x57, 0x3,0x3f,0x78, - 0x3,0x46,0x27, 0x4,0x47,0x56, 0x4,0x21,0x6b, 0x3,0x22,0x30, - 0x3,0x22,0x2c, 0x3,0x23,0x38, 0x3,0x23,0x36, 0x3,0x24,0x6c, - 0x4,0x23,0x51, 0x3,0x24,0x6b, 0x3,0x24,0x71, 0x4,0x23,0x54, - 0x4,0x23,0x59, 0x3,0x24,0x72, 0x4,0x23,0x53, 0x3,0x24,0x6f, - 0x3,0x24,0x6e, 0x3,0x24,0x7a, 0xf,0x23,0x49, 0x3,0x25,0x25, - 0x3,0x27,0x7a, 0x3,0x27,0x6d, 0x4,0x25,0x5d, 0x3,0x27,0x76, - 0x5,0x25,0x42, 0x6,0x2a,0x39, 0x3,0x2b,0x52, 0x3,0x2b,0x60, - 0x3,0x2b,0x5f, 0x3,0x2b,0x62, 0x3,0x2b,0x5a, 0x4,0x28,0x59, - 0x4,0x28,0x5c, 0x3,0x2b,0x56, 0xf,0x29,0x5c, 0x4,0x2c,0x25, - 0x3,0x2f,0x7d, 0x4,0x2b,0x7e, 0x3,0x2f,0x75, 0x3,0x2f,0x7c, - 0x4,0x2c,0x21, 0x4,0x2b,0x7d, 0x6,0x35,0x7d, 0x3,0x30,0x24, - 0x5,0x2c,0x43, 0x3,0x34,0x5d, 0x3,0x34,0x65, 0x4,0x30,0x6a, - 0x5,0x36,0x70, 0x3,0x34,0x63, 0x3,0x34,0x5c, 0x4,0x30,0x70, - 0x3,0x34,0x5a, 0x4,0x30,0x73, 0x4,0x30,0x71, 0x4,0x30,0x6d, - 0x4,0x30,0x6c, 0xf,0x33,0x43, 0x3,0x38,0x53, 0x4,0x30,0x6f, - 0x5,0x36,0x76, 0x3,0x3a,0x32, 0x4,0x36,0x67, 0x3,0x3a,0x35, - 0x3,0x3a,0x2c, 0x4,0x36,0x5e, 0x4,0x36,0x59, 0x3,0x3a,0x39, - 0x3,0x3a,0x3e, 0x3,0x3a,0x2d, 0x4,0x36,0x60, 0x3,0x3a,0x3d, - 0x4,0x36,0x5f, 0x3,0x3a,0x37, 0x6,0x47,0x39, 0x5,0x36,0x79, - 0x5,0x36,0x7a, 0x3,0x3a,0x30, 0x4,0x36,0x58, 0x4,0x36,0x65, - 0x4,0x36,0x63, 0x3,0x3a,0x41, 0x5,0x36,0x6e, 0x3,0x3a,0x3f, - 0x3,0x3a,0x3a, 0x5,0x3e,0x39, 0x4,0x3c,0x4a, 0x4,0x3c,0x46, - 0x3,0x40,0x4f, 0x5,0x3e,0x3d, 0x4,0x3c,0x47, 0x4,0x3c,0x4c, - 0x3,0x40,0x4d, 0x3,0x40,0x50, 0x6,0x51,0x32, 0x4,0x42,0x52, - 0x3,0x46,0x32, 0x3,0x46,0x2f, 0x3,0x46,0x2d, 0x4,0x42,0x4f, - 0x4,0x42,0x4a, 0x4,0x42,0x55, 0x3,0x46,0x2b, 0x3,0x4b,0x3a, - 0x4,0x42,0x53, 0x4,0x42,0x56, 0x4,0x42,0x51, 0x5,0x45,0x22, - 0x4,0x49,0x30, 0x4,0x49,0x2c, 0x3,0x4b,0x42, 0x4,0x49,0x2d, - 0x3,0x4b,0x36, 0x7,0x21,0x4e, 0x4,0x4f,0x6b, 0x4,0x4f,0x6c, - 0x3,0x50,0x41, 0x4,0x4f,0x67, 0x4,0x4f,0x6a, 0x4,0x4f,0x6f, - 0x3,0x50,0x3c, 0x3,0x50,0x3a, 0x7,0x37,0x37, 0x4,0x55,0x72, - 0x3,0x54,0x46, 0x4,0x55,0x73, 0x4,0x4f,0x6d, 0x5,0x61,0x40, - 0x4,0x5a,0x70, 0x3,0x57,0x56, 0x5,0x61,0x45, 0x4,0x5f,0x4c, - 0x5,0x67,0x59, 0x5,0x6b,0x73, 0x3,0x5c,0x35, 0x3,0x5e,0x27, - 0x4,0x66,0x32, 0x3,0x60,0x2e, 0x3,0x60,0x2d, 0x4,0x6c,0x6c, - 0x7,0x62,0x2f, 0x3,0x22,0x32, 0x3,0x22,0x21, 0x3,0x23,0x3d, - 0x5,0x25,0x53, 0x3,0x27,0x7e, 0x3,0x2b,0x64, 0x3,0x30,0x26, - 0x4,0x42,0x58, 0x4,0x63,0x32, 0x3,0x22,0x33, 0x3,0x25,0x2e, - 0x4,0x23,0x5f, 0x3,0x25,0x39, 0x3,0x25,0x3a, 0x4,0x23,0x5e, - 0x3,0x25,0x3d, 0x3,0x25,0x3f, 0x3,0x25,0x3b, 0x3,0x25,0x34, - 0x3,0x28,0x27, 0x4,0x25,0x6d, 0x3,0x28,0x2b, 0x3,0x28,0x2c, - 0x3,0x2b,0x76, 0x6,0x2f,0x65, 0x3,0x2b,0x74, 0x3,0x2b,0x75, - 0x3,0x2b,0x73, 0x3,0x2b,0x6f, 0x3,0x30,0x29, 0x4,0x2c,0x2f, - 0x4,0x2c,0x31, 0x3,0x30,0x2d, 0x3,0x30,0x2c, 0x3,0x30,0x2e, - 0x3,0x30,0x31, 0x3,0x34,0x6c, 0x3,0x34,0x6d, 0x3,0x34,0x73, - 0x3,0x34,0x6a, 0xf,0x33,0x57, 0x4,0x31,0x21, 0x4,0x36,0x6b, - 0x3,0x3a,0x46, 0x4,0x36,0x6e, 0x3,0x3a,0x51, 0x6,0x47,0x4e, - 0x3,0x3a,0x48, 0x3,0x3a,0x4d, 0x4,0x3c,0x59, 0x4,0x3c,0x5b, - 0x3,0x40,0x53, 0x3,0x40,0x55, 0x4,0x3c,0x56, 0x4,0x3c,0x58, - 0x4,0x42,0x5e, 0x4,0x42,0x5d, 0x4,0x42,0x5b, 0x3,0x46,0x3b, - 0x4,0x42,0x5f, 0x3,0x46,0x39, 0x7,0x21,0x6a, 0x3,0x4b,0x52, - 0x3,0x4b,0x48, 0x4,0x49,0x33, 0x3,0x4b,0x4a, 0x3,0x4b,0x4e, - 0xf,0x4e,0x25, 0xf,0x4e,0x2e, 0x4,0x49,0x2a, 0x3,0x50,0x44, - 0x4,0x4f,0x78, 0x3,0x50,0x47, 0x3,0x50,0x42, 0x3,0x50,0x43, - 0x3,0x50,0x46, 0x3,0x50,0x45, 0x4,0x55,0x7c, 0x3,0x54,0x4d, - 0x3,0x54,0x4a, 0x4,0x55,0x7b, 0x7,0x3f,0x30, 0x3,0x57,0x5d, - 0x7,0x46,0x44, 0x5,0x6b,0x76, 0x3,0x60,0x72, 0x4,0x6c,0x6e, - 0x5,0x37,0x3c, 0x3,0x4d,0x41, 0x3,0x2b,0x78, 0x4,0x28,0x61, - 0x5,0x25,0x58, 0x4,0x36,0x77, 0x4,0x42,0x60, 0x3,0x46,0x47, - 0x4,0x5a,0x7a, 0x3,0x22,0x3a, 0x3,0x23,0x46, 0x3,0x23,0x48, - 0x4,0x23,0x65, 0x3,0x25,0x4a, 0x4,0x25,0x71, 0x5,0x25,0x59, - 0x4,0x25,0x77, 0x4,0x25,0x73, 0x4,0x25,0x78, 0x3,0x2b,0x7d, - 0x4,0x31,0x25, 0x6,0x3e,0x42, 0x3,0x34,0x7a, 0x3,0x3a,0x55, - 0x4,0x3c,0x5c, 0x3,0x50,0x3e, 0x3,0x21,0x74, 0x3,0x23,0x4c, - 0x3,0x23,0x4a, 0x4,0x22,0x56, 0x4,0x22,0x59, 0x4,0x22,0x55, - 0x3,0x23,0x49, 0x3,0x25,0x52, 0x3,0x25,0x57, 0x3,0x25,0x50, - 0x3,0x25,0x4f, 0x3,0x25,0x4d, 0x3,0x25,0x54, 0x3,0x28,0x31, - 0x3,0x28,0x3b, 0x4,0x25,0x7b, 0x3,0x28,0x42, 0x3,0x28,0x32, - 0x3,0x28,0x3a, 0x3,0x28,0x43, 0x3,0x28,0x47, 0x3,0x28,0x34, - 0x4,0x26,0x21, 0x3,0x28,0x44, 0x3,0x28,0x3e, 0x3,0x28,0x36, - 0x3,0x28,0x3c, 0x5,0x25,0x5d, 0x3,0x28,0x39, 0x3,0x28,0x30, - 0x4,0x28,0x6d, 0x4,0x28,0x69, 0x3,0x2b,0x7e, 0x3,0x2c,0x22, - 0xf,0x2a,0x2a, 0x4,0x28,0x67, 0x3,0x30,0x3f, 0x3,0x30,0x42, - 0x3,0x30,0x3d, 0x3,0x30,0x49, 0x3,0x30,0x47, 0x4,0x2c,0x3b, - 0x3,0x30,0x43, 0x3,0x30,0x50, 0x3,0x30,0x4c, 0x3,0x30,0x44, - 0x4,0x2c,0x3f, 0x4,0x2c,0x3a, 0x3,0x30,0x39, 0x4,0x2c,0x3c, - 0x3,0x30,0x51, 0x3,0x30,0x46, 0x3,0x30,0x41, 0x3,0x30,0x3a, - 0xf,0x2e,0x6b, 0xf,0x2e,0x78, 0x4,0x31,0x29, 0x3,0x35,0x26, - 0x3,0x35,0x2d, 0x3,0x35,0x21, 0x3,0x35,0x36, 0x4,0x31,0x28, - 0x3,0x35,0x2c, 0x3,0x35,0x23, 0x3,0x35,0x25, 0x3,0x3a,0x71, - 0x3,0x3a,0x67, 0x3,0x3a,0x74, 0x3,0x3a,0x64, 0x3,0x3a,0x76, - 0x3,0x3a,0x6c, 0x3,0x3a,0x6a, 0x3,0x3a,0x65, 0x5,0x37,0x4e, - 0x3,0x3a,0x6e, 0x5,0x37,0x46, 0x4,0x36,0x7e, 0x3,0x3a,0x6f, - 0x3,0x3a,0x5f, 0x4,0x36,0x7d, 0x3,0x3a,0x70, 0x3,0x3a,0x5d, - 0xf,0x3a,0x3c, 0x3,0x3a,0x6d, 0x3,0x3a,0x69, 0x3,0x3a,0x68, - 0x4,0x3c,0x5f, 0x3,0x40,0x62, 0x4,0x3c,0x61, 0x3,0x40,0x6e, - 0x3,0x40,0x6d, 0x3,0x40,0x68, 0x3,0x40,0x63, 0x4,0x3c,0x64, - 0x3,0x40,0x65, 0x4,0x3c,0x63, 0x3,0x40,0x70, 0x3,0x40,0x6b, - 0x3,0x40,0x6f, 0x3,0x40,0x6c, 0x3,0x40,0x69, 0x3,0x46,0x4b, - 0x4,0x42,0x67, 0x4,0x42,0x6c, 0x4,0x42,0x68, 0x4,0x42,0x66, - 0x3,0x46,0x49, 0x3,0x46,0x52, 0x3,0x46,0x51, 0x4,0x42,0x6b, - 0x4,0x42,0x6d, 0x3,0x46,0x4d, 0x3,0x46,0x4e, 0x4,0x42,0x69, - 0x4,0x49,0x3c, 0x4,0x49,0x3a, 0x3,0x4b,0x59, 0x3,0x4b,0x57, - 0x4,0x49,0x40, 0x3,0x4b,0x55, 0x3,0x50,0x52, 0x3,0x50,0x55, - 0x4,0x50,0x21, 0xf,0x54,0x2a, 0x4,0x56,0x22, 0x4,0x56,0x24, - 0x3,0x57,0x5f, 0x3,0x57,0x60, 0x4,0x5f,0x54, 0x5,0x67,0x5e, - 0x3,0x5a,0x30, 0x3,0x5a,0x32, 0x3,0x5c,0x37, 0x4,0x63,0x35, - 0x3,0x5c,0x38, 0x4,0x66,0x37, 0x4,0x68,0x65, 0x3,0x61,0x62, - 0x3,0x61,0x63, 0x3,0x23,0x4e, 0x6,0x26,0x78, 0x4,0x23,0x6d, - 0x3,0x28,0x49, 0x4,0x28,0x70, 0x4,0x2c,0x41, 0x3,0x30,0x54, - 0x3,0x3a,0x7d, 0x4,0x3c,0x67, 0x7,0x2d,0x2d, 0x3,0x61,0x3d, - 0x3,0x22,0x3c, 0x3,0x23,0x4f, 0x6,0x26,0x79, 0x3,0x25,0x59, - 0x4,0x23,0x70, 0x3,0x25,0x5b, 0x6,0x26,0x7a, 0x3,0x28,0x4f, - 0x5,0x28,0x6e, 0x3,0x2c,0x30, 0x3,0x2c,0x31, 0x3,0x2c,0x33, - 0x4,0x2c,0x42, 0x5,0x2c,0x7c, 0x6,0x36,0x5d, 0x3,0x35,0x42, - 0x3,0x35,0x3d, 0x3,0x35,0x3e, 0x4,0x31,0x2e, 0x6,0x3e,0x5a, - 0x3,0x35,0x40, 0x3,0x3b,0x21, 0x4,0x37,0x22, 0x4,0x3c,0x6a, - 0x4,0x3c,0x6c, 0x4,0x3c,0x6f, 0x3,0x40,0x77, 0x4,0x42,0x74, - 0x4,0x42,0x75, 0x3,0x4b,0x60, 0x4,0x42,0x77, 0x4,0x49,0x43, - 0x4,0x49,0x45, 0x4,0x49,0x46, 0x4,0x5a,0x7d, 0x3,0x5e,0x2b, - 0x7,0x62,0x35, 0x4,0x23,0x71, 0x4,0x26,0x26, 0x6,0x36,0x68, - 0x3,0x3b,0x22, 0x4,0x2c,0x4c, 0x6,0x3e,0x64, 0x4,0x42,0x78, - 0x5,0x4c,0x63, 0x4,0x22,0x5d, 0x4,0x23,0x74, 0x4,0x26,0x28, - 0x4,0x26,0x27, 0x4,0x28,0x74, 0x4,0x28,0x75, 0x4,0x2c,0x4d, - 0x5,0x31,0x75, 0x4,0x31,0x33, 0x5,0x31,0x73, 0x4,0x31,0x32, - 0x4,0x37,0x28, 0x4,0x37,0x29, 0x4,0x3c,0x71, 0x4,0x42,0x79, - 0x3,0x22,0x40, 0x3,0x23,0x53, 0x4,0x26,0x2a, 0x3,0x28,0x52, - 0x3,0x28,0x53, 0x4,0x28,0x79, 0x4,0x28,0x78, 0x3,0x2c,0x39, - 0x3,0x2c,0x38, 0x3,0x2c,0x36, 0x4,0x2c,0x4e, 0x6,0x3e,0x6b, - 0x3,0x35,0x45, 0x4,0x37,0x2b, 0x5,0x37,0x66, 0x4,0x42,0x7d, - 0x4,0x49,0x4a, 0x3,0x5a,0x37, 0x3,0x21,0x62, 0x4,0x23,0x77, - 0x3,0x22,0x42, 0x3,0x22,0x43, 0x3,0x22,0x41, 0x3,0x22,0x44, - 0x3,0x23,0x56, 0x4,0x22,0x61, 0x5,0x22,0x51, 0x4,0x23,0x7b, - 0x5,0x22,0x50, 0x3,0x23,0x57, 0x3,0x23,0x58, 0x4,0x23,0x78, - 0x4,0x23,0x79, 0x3,0x25,0x60, 0x5,0x23,0x70, 0x5,0x23,0x74, - 0x3,0x25,0x64, 0x3,0x25,0x65, 0x4,0x23,0x76, 0x3,0x28,0x5b, - 0x6,0x2a,0x7b, 0x4,0x26,0x31, 0x4,0x26,0x32, 0x4,0x26,0x2e, - 0x3,0x28,0x56, 0x6,0x2a,0x76, 0x3,0x28,0x59, 0x3,0x28,0x5a, - 0x5,0x25,0x6e, 0x3,0x2c,0x3a, 0x4,0x28,0x7b, 0x4,0x2c,0x5b, - 0x4,0x2c,0x53, 0x4,0x2c,0x51, 0x3,0x30,0x60, 0x4,0x2c,0x5f, - 0x4,0x2c,0x55, 0x3,0x30,0x5c, 0x4,0x2c,0x5a, 0x4,0x2c,0x5e, - 0x4,0x2c,0x57, 0x3,0x30,0x5d, 0x6,0x36,0x7c, 0x5,0x2d,0x2e, - 0x3,0x30,0x65, 0x4,0x2c,0x54, 0x3,0x35,0x56, 0x3,0x35,0x49, - 0x4,0x31,0x37, 0x3,0x35,0x4c, 0x4,0x31,0x3d, 0x6,0x3e,0x75, - 0x3,0x35,0x4d, 0x4,0x31,0x39, 0x6,0x3e,0x78, 0x3,0x35,0x50, - 0xf,0x34,0x3f, 0x3,0x35,0x53, 0x3,0x3b,0x2f, 0x3,0x3b,0x32, - 0x3,0x3b,0x29, 0x4,0x37,0x32, 0x4,0x37,0x34, 0x3,0x3b,0x35, - 0x4,0x3c,0x72, 0x3,0x3b,0x30, 0x3,0x3b,0x2c, 0x4,0x3c,0x76, - 0x4,0x3c,0x73, 0x4,0x3c,0x7e, 0x5,0x3e,0x6d, 0x4,0x3d,0x21, - 0x6,0x52,0x34, 0x3,0x40,0x7b, 0x4,0x3c,0x77, 0x4,0x43,0x22, - 0x6,0x5c,0x44, 0x4,0x43,0x2d, 0x4,0x43,0x2a, 0x4,0x43,0x21, - 0x3,0x46,0x55, 0x4,0x43,0x24, 0x3,0x46,0x5b, 0x3,0x46,0x58, - 0x4,0x43,0x2e, 0x3,0x46,0x57, 0x4,0x49,0x50, 0x4,0x49,0x4c, - 0x5,0x4c,0x6c, 0x3,0x4b,0x62, 0x5,0x4c,0x68, 0x4,0x49,0x4b, - 0x4,0x49,0x53, 0x3,0x4b,0x64, 0x4,0x49,0x4f, 0x4,0x49,0x4d, - 0x3,0x4b,0x61, 0x4,0x49,0x54, 0x4,0x50,0x26, 0x4,0x50,0x27, - 0x4,0x56,0x28, 0x4,0x50,0x25, 0x5,0x54,0x36, 0x3,0x50,0x59, - 0x7,0x2d,0x4c, 0x3,0x54,0x5a, 0x3,0x54,0x56, 0x5,0x5b,0x3c, - 0x4,0x56,0x27, 0x3,0x54,0x58, 0x7,0x3f,0x44, 0x4,0x5f,0x5a, - 0x5,0x67,0x63, 0x5,0x67,0x64, 0x4,0x66,0x3a, 0x3,0x5e,0x2c, - 0x4,0x68,0x68, 0x5,0x7b,0x3d, 0x3,0x23,0x5b, 0x6,0x21,0x6e, - 0x3,0x3b,0x38, 0x4,0x49,0x55, 0x3,0x22,0x45, 0x4,0x31,0x42, - 0x3,0x22,0x46, 0x4,0x22,0x65, 0x4,0x22,0x66, 0x3,0x23,0x5d, - 0x4,0x24,0x22, 0x4,0x24,0x24, 0x3,0x25,0x69, 0x4,0x24,0x21, - 0x3,0x25,0x6a, 0xf,0x24,0x25, 0x4,0x26,0x36, 0x4,0x26,0x37, - 0x4,0x29,0x25, 0x4,0x24,0x25, 0x4,0x29,0x22, 0x4,0x29,0x24, - 0x6,0x30,0x63, 0x3,0x2c,0x47, 0x4,0x29,0x23, 0x4,0x29,0x21, - 0x4,0x2c,0x66, 0x4,0x2c,0x68, 0x4,0x31,0x47, 0x4,0x31,0x48, - 0x4,0x31,0x45, 0x4,0x31,0x49, 0x3,0x35,0x5c, 0x4,0x37,0x3b, - 0x4,0x37,0x36, 0x4,0x37,0x3d, 0x4,0x37,0x3a, 0x3,0x3b,0x3c, - 0x4,0x37,0x3c, 0x3,0x3b,0x39, 0x4,0x37,0x39, 0x4,0x3d,0x28, - 0x4,0x3d,0x23, 0x4,0x3d,0x27, 0x4,0x3d,0x26, 0x4,0x3d,0x29, - 0x4,0x43,0x33, 0x4,0x43,0x32, 0x4,0x43,0x31, 0x4,0x43,0x2f, - 0x3,0x4b,0x6e, 0x3,0x4b,0x6f, 0x4,0x50,0x29, 0x4,0x56,0x2d, - 0x4,0x56,0x2b, 0x4,0x63,0x3b, 0x4,0x63,0x3a, 0x3,0x5f,0x44, - 0x4,0x68,0x6b, 0x6,0x48,0x44, 0x3,0x46,0x5e, 0x4,0x50,0x2b, - 0x3,0x23,0x60, 0x3,0x23,0x5f, 0x3,0x23,0x5e, 0x3,0x25,0x6c, - 0x6,0x27,0x47, 0x4,0x26,0x38, 0x4,0x26,0x3d, 0x4,0x26,0x3b, - 0x5,0x26,0x26, 0x4,0x26,0x3c, 0x3,0x28,0x64, 0x4,0x26,0x3a, - 0x3,0x28,0x66, 0xf,0x2f,0x38, 0x3,0x2c,0x49, 0x3,0x2c,0x4a, - 0x4,0x29,0x2a, 0x5,0x29,0x26, 0x4,0x29,0x29, 0x4,0x29,0x28, - 0x4,0x2c,0x6b, 0x4,0x2c,0x6d, 0x4,0x2c,0x6c, 0x3,0x30,0x6d, - 0x3,0x35,0x5e, 0x4,0x31,0x4e, 0x4,0x31,0x4c, 0x4,0x31,0x4f, - 0x3,0x35,0x5d, 0x5,0x38,0x29, 0x4,0x37,0x40, 0x4,0x37,0x41, - 0x3,0x3b,0x41, 0x5,0x3f,0x21, 0x4,0x43,0x36, 0x3,0x46,0x5f, - 0x4,0x43,0x39, 0x4,0x43,0x3a, 0x4,0x49,0x5b, 0x4,0x49,0x5c, - 0x3,0x4b,0x71, 0x3,0x50,0x5d, 0x4,0x50,0x2c, 0x4,0x50,0x2e, - 0x5,0x54,0x42, 0x4,0x5f,0x5e, 0x4,0x63,0x3c, 0x4,0x24,0x29, - 0x3,0x28,0x6a, 0x3,0x46,0x62, 0x7,0x2d,0x5b, 0x4,0x29,0x2b, - 0x4,0x3d,0x2d, 0x6,0x21,0x79, 0x4,0x22,0x6a, 0x3,0x23,0x63, - 0x3,0x23,0x64, 0x3,0x25,0x70, 0x3,0x28,0x6f, 0x4,0x26,0x40, - 0x4,0x26,0x41, 0x3,0x2c,0x4e, 0x4,0x29,0x2d, 0x6,0x30,0x7a, - 0x4,0x29,0x2e, 0x3,0x2c,0x4f, 0x4,0x2c,0x71, 0x5,0x32,0x46, - 0x4,0x31,0x51, 0x4,0x2c,0x72, 0x3,0x3b,0x46, 0x3,0x3b,0x43, - 0x5,0x3f,0x29, 0x4,0x3d,0x2f, 0x4,0x3d,0x2e, 0x6,0x52,0x4d, - 0x4,0x49,0x5d, 0x4,0x49,0x5f, 0x3,0x5e,0x2e, 0x4,0x26,0x42, - 0x4,0x50,0x31, 0x6,0x24,0x70, 0x3,0x28,0x73, 0x4,0x26,0x43, - 0x3,0x28,0x72, 0x3,0x35,0x64, 0x3,0x3b,0x48, 0x3,0x3b,0x49, - 0x4,0x43,0x3b, 0x4,0x49,0x61, 0x3,0x50,0x5f, 0x3,0x22,0x4b, - 0x6,0x2b,0x3e, 0x3,0x28,0x74, 0x4,0x29,0x32, 0x4,0x29,0x34, - 0x3,0x2c,0x52, 0x5,0x29,0x2f, 0x5,0x29,0x33, 0x3,0x2c,0x53, - 0x6,0x31,0x25, 0x5,0x2d,0x47, 0xf,0x2f,0x3e, 0x4,0x31,0x54, - 0x3,0x35,0x66, 0x3,0x35,0x67, 0x4,0x37,0x49, 0x3,0x3b,0x4a, - 0x4,0x37,0x48, 0x4,0x3d,0x33, 0x5,0x45,0x69, 0x4,0x43,0x3d, - 0x6,0x5c,0x67, 0x3,0x50,0x60, 0x4,0x50,0x34, 0x4,0x56,0x2f, - 0x6,0x21,0x7e, 0x3,0x23,0x65, 0x3,0x23,0x68, 0x4,0x24,0x31, - 0x5,0x22,0x67, 0x4,0x22,0x70, 0x3,0x28,0x7b, 0x3,0x28,0x7d, - 0x3,0x25,0x79, 0x4,0x24,0x2e, 0x3,0x28,0x7c, 0x4,0x24,0x30, - 0x4,0x24,0x33, 0x3,0x25,0x73, 0x4,0x24,0x2f, 0x4,0x24,0x32, - 0x3,0x26,0x24, 0x3,0x28,0x79, 0x4,0x29,0x35, 0x4,0x29,0x37, - 0x4,0x26,0x4d, 0x3,0x2c,0x59, 0x3,0x29,0x24, 0x4,0x26,0x48, - 0x3,0x29,0x23, 0x4,0x26,0x4e, 0x4,0x26,0x4c, 0x4,0x26,0x46, - 0xf,0x2a,0x3e, 0x3,0x2c,0x58, 0x4,0x29,0x41, 0x3,0x2c,0x62, - 0x4,0x29,0x3c, 0x4,0x26,0x49, 0x4,0x29,0x39, 0x3,0x30,0x7d, - 0x6,0x37,0x54, 0x4,0x29,0x3d, 0x5,0x29,0x35, 0x4,0x2d,0x28, - 0x4,0x29,0x48, 0x4,0x29,0x3a, 0x4,0x29,0x3b, 0x4,0x29,0x40, - 0x3,0x2c,0x55, 0x6,0x37,0x5a, 0x3,0x30,0x7c, 0x3,0x2c,0x5e, - 0x4,0x31,0x5b, 0x5,0x2d,0x5a, 0x3,0x35,0x73, 0x4,0x2d,0x22, - 0x3,0x35,0x69, 0x3,0x30,0x75, 0x4,0x2d,0x23, 0x3,0x35,0x70, - 0x4,0x2d,0x24, 0x3,0x30,0x77, 0x6,0x37,0x5e, 0x3,0x31,0x24, - 0x4,0x2d,0x2b, 0x4,0x31,0x5a, 0x4,0x31,0x5c, 0x4,0x31,0x62, - 0x3,0x35,0x6b, 0x6,0x48,0x6f, 0x4,0x31,0x63, 0x3,0x35,0x75, - 0x4,0x31,0x60, 0x5,0x32,0x5b, 0x4,0x31,0x5d, 0x3,0x35,0x6c, - 0x3,0x3b,0x4e, 0x4,0x31,0x6c, 0x4,0x31,0x67, 0x3,0x3b,0x4c, - 0x3,0x35,0x6d, 0x3,0x35,0x77, 0x3,0x3b,0x57, 0x4,0x31,0x64, - 0x6,0x48,0x75, 0x3,0x3b,0x53, 0x4,0x31,0x66, 0x4,0x31,0x5e, - 0x5,0x2d,0x57, 0x3,0x3b,0x52, 0x5,0x38,0x42, 0x4,0x31,0x6a, - 0x5,0x38,0x48, 0x4,0x37,0x56, 0x4,0x37,0x50, 0x3,0x3b,0x5c, - 0x4,0x37,0x59, 0x3,0x3b,0x5f, 0x4,0x37,0x54, 0x4,0x37,0x4e, - 0x5,0x3f,0x32, 0x3,0x41,0x25, 0x4,0x37,0x55, 0x4,0x3d,0x3e, - 0x3,0x3b,0x60, 0x4,0x3d,0x37, 0x5,0x32,0x58, 0x3,0x3b,0x5b, - 0x3,0x41,0x26, 0x3,0x41,0x2d, 0x4,0x3d,0x3b, 0x4,0x43,0x43, - 0x5,0x3f,0x42, 0x6,0x52,0x69, 0x3,0x46,0x67, 0x4,0x3d,0x3a, - 0x4,0x3d,0x3c, 0x3,0x41,0x30, 0x3,0x46,0x65, 0x4,0x43,0x42, - 0x4,0x43,0x50, 0x3,0x46,0x66, 0x3,0x41,0x2f, 0x4,0x43,0x48, - 0x4,0x43,0x47, 0x4,0x43,0x49, 0x3,0x4b,0x7d, 0x4,0x43,0x4d, - 0x4,0x49,0x65, 0x3,0x4c,0x22, 0x3,0x46,0x69, 0x3,0x4b,0x7b, - 0x4,0x43,0x4a, 0x4,0x43,0x4c, 0x4,0x43,0x46, 0x3,0x4c,0x27, - 0x3,0x4b,0x78, 0x4,0x43,0x4b, 0x4,0x50,0x38, 0x3,0x4c,0x2a, - 0x4,0x49,0x67, 0x4,0x49,0x69, 0x4,0x49,0x68, 0x4,0x49,0x6b, - 0x7,0x22,0x7c, 0x4,0x49,0x6d, 0x3,0x50,0x69, 0x4,0x49,0x6c, - 0x3,0x4c,0x26, 0x4,0x50,0x39, 0x5,0x5b,0x4c, 0x4,0x5b,0x23, - 0x4,0x5b,0x29, 0x4,0x56,0x36, 0x4,0x5b,0x25, 0x3,0x57,0x67, - 0x4,0x5b,0x24, 0xf,0x5a,0x29, 0x3,0x57,0x66, 0x4,0x50,0x3a, - 0x5,0x67,0x78, 0x4,0x63,0x43, 0x4,0x5f,0x64, 0x5,0x67,0x73, - 0x7,0x47,0x2c, 0x3,0x5e,0x30, 0x4,0x63,0x42, 0x4,0x63,0x40, - 0x3,0x5f,0x47, 0x4,0x68,0x6c, 0x3,0x61,0x78, 0x3,0x23,0x6a, - 0x3,0x26,0x26, 0x4,0x26,0x54, 0x6,0x2b,0x52, 0x4,0x2d,0x2f, - 0x4,0x2d,0x30, 0x5,0x2d,0x5d, 0x3,0x35,0x7a, 0x3,0x3b,0x65, - 0x4,0x3d,0x42, 0x4,0x43,0x54, 0x5,0x4d,0x37, 0x3,0x4c,0x2b, - 0x3,0x54,0x62, 0x6,0x27,0x6e, 0x4,0x26,0x55, 0x4,0x26,0x56, - 0x4,0x29,0x4d, 0x3,0x2c,0x64, 0x4,0x21,0x7b, 0x4,0x21,0x7a, - 0x3,0x22,0x4f, 0x4,0x22,0x74, 0x4,0x22,0x73, 0x4,0x22,0x75, - 0x4,0x24,0x3a, 0x4,0x24,0x36, 0x3,0x26,0x2c, 0x3,0x26,0x2d, - 0x3,0x26,0x30, 0x3,0x26,0x2b, 0x4,0x26,0x58, 0x3,0x29,0x2d, - 0x5,0x26,0x3a, 0x3,0x29,0x2c, 0x3,0x29,0x38, 0x4,0x29,0x55, - 0x4,0x2d,0x33, 0x4,0x26,0x59, 0x3,0x29,0x2b, 0xf,0x27,0x2e, - 0x4,0x29,0x4e, 0x4,0x29,0x54, 0x3,0x2c,0x66, 0x3,0x29,0x27, - 0x3,0x2c,0x67, 0x3,0x2c,0x69, 0x4,0x2d,0x3c, 0x3,0x2c,0x71, - 0x4,0x29,0x56, 0x3,0x2c,0x68, 0x4,0x29,0x52, 0x4,0x2d,0x32, - 0x4,0x2d,0x31, 0x3,0x2c,0x6a, 0x3,0x2c,0x65, 0x3,0x31,0x34, - 0x3,0x31,0x2a, 0x3,0x35,0x7b, 0x3,0x31,0x31, 0x3,0x31,0x3a, - 0x4,0x2d,0x3b, 0x3,0x31,0x2d, 0x3,0x31,0x2b, 0x4,0x31,0x7c, - 0x4,0x32,0x21, 0x4,0x31,0x7b, 0x3,0x36,0x2c, 0x6,0x40,0x32, - 0x4,0x32,0x25, 0x3,0x36,0x2f, 0x3,0x36,0x30, 0x4,0x31,0x79, - 0x3,0x35,0x7e, 0x4,0x31,0x71, 0x3,0x36,0x25, 0x4,0x31,0x7e, - 0x4,0x31,0x7a, 0x3,0x3b,0x6b, 0x3,0x36,0x2a, 0x4,0x37,0x6e, - 0x4,0x37,0x62, 0x3,0x36,0x21, 0x4,0x3d,0x45, 0x3,0x41,0x31, - 0x4,0x37,0x64, 0x3,0x3b,0x6a, 0x4,0x37,0x6b, 0x4,0x37,0x68, - 0x4,0x37,0x65, 0x3,0x3b,0x6c, 0x3,0x3b,0x69, 0x4,0x37,0x70, - 0x4,0x37,0x61, 0x3,0x3b,0x6e, 0x4,0x3d,0x50, 0x4,0x3d,0x4f, - 0x3,0x41,0x37, 0x4,0x3d,0x4c, 0x4,0x3d,0x4a, 0x3,0x41,0x35, - 0x3,0x41,0x3b, 0x4,0x3d,0x48, 0x4,0x3d,0x4e, 0x3,0x41,0x3c, - 0x3,0x41,0x4a, 0x3,0x41,0x43, 0x3,0x41,0x3f, 0x3,0x41,0x47, - 0x3,0x41,0x40, 0x3,0x41,0x46, 0x3,0x41,0x41, 0x3,0x41,0x39, - 0x4,0x43,0x58, 0x4,0x43,0x61, 0x6,0x5d,0x32, 0x3,0x46,0x79, - 0x3,0x47,0x2e, 0x3,0x47,0x2d, 0x4,0x43,0x56, 0x3,0x46,0x7c, - 0x3,0x47,0x27, 0x3,0x47,0x2f, 0x4,0x43,0x5c, 0x3,0x46,0x77, - 0x5,0x46,0x25, 0x3,0x46,0x7d, 0x4,0x49,0x75, 0x3,0x4c,0x36, - 0x4,0x43,0x64, 0x5,0x46,0x23, 0x3,0x47,0x2b, 0x3,0x47,0x2c, - 0x4,0x4a,0x24, 0x3,0x4c,0x33, 0x7,0x23,0x3a, 0x4,0x49,0x79, - 0x4,0x49,0x7a, 0x4,0x49,0x76, 0x4,0x4a,0x28, 0x4,0x4a,0x22, - 0x5,0x4d,0x3a, 0x4,0x49,0x7e, 0x5,0x4d,0x3e, 0x3,0x4c,0x3c, - 0x4,0x4a,0x23, 0x3,0x50,0x74, 0x4,0x56,0x39, 0x4,0x50,0x45, - 0x3,0x50,0x73, 0x3,0x50,0x6e, 0x3,0x50,0x78, 0x3,0x50,0x72, - 0x3,0x50,0x71, 0x3,0x54,0x65, 0x3,0x54,0x6a, 0x3,0x54,0x68, - 0x3,0x54,0x63, 0x3,0x54,0x66, 0x4,0x5b,0x2d, 0x3,0x57,0x69, - 0x4,0x5b,0x32, 0x4,0x5b,0x30, 0x4,0x5b,0x2e, 0x3,0x57,0x6f, - 0x3,0x57,0x71, 0x4,0x5b,0x31, 0x3,0x57,0x68, 0x4,0x5b,0x2f, - 0x3,0x57,0x72, 0xf,0x5e,0x73, 0x3,0x5a,0x3d, 0x3,0x5a,0x3e, - 0x4,0x63,0x47, 0x3,0x5c,0x40, 0x4,0x63,0x46, 0x5,0x70,0x24, - 0x3,0x5e,0x32, 0x4,0x66,0x40, 0x3,0x60,0x31, 0x4,0x6a,0x49, - 0x4,0x6a,0x48, 0x5,0x79,0x2a, 0x4,0x26,0x5b, 0x4,0x2d,0x40, - 0x4,0x2d,0x3f, 0x4,0x32,0x27, 0x4,0x3d,0x54, 0x4,0x24,0x40, - 0x3,0x26,0x3a, 0x4,0x26,0x5e, 0x4,0x26,0x5f, 0x4,0x29,0x5d, - 0x3,0x2c,0x75, 0x3,0x31,0x3e, 0x4,0x2d,0x42, 0x6,0x38,0x2b, - 0x3,0x36,0x33, 0x4,0x32,0x28, 0x3,0x36,0x35, 0x4,0x32,0x2c, - 0x4,0x37,0x79, 0x4,0x37,0x75, 0x4,0x37,0x78, 0x4,0x37,0x77, - 0x4,0x37,0x76, 0x5,0x38,0x7c, 0x3,0x3b,0x77, 0x4,0x3d,0x5c, - 0x4,0x3d,0x59, 0x4,0x3d,0x5b, 0x3,0x41,0x4c, 0x4,0x43,0x66, - 0x5,0x46,0x30, 0x5,0x46,0x2e, 0x4,0x43,0x69, 0x4,0x4a,0x2b, - 0x4,0x4a,0x2a, 0x4,0x4a,0x29, 0x4,0x50,0x49, 0x4,0x50,0x4c, - 0x3,0x57,0x73, 0x4,0x5b,0x3a, 0x4,0x63,0x4c, 0x4,0x66,0x43, - 0x3,0x26,0x3b, 0x6,0x38,0x2c, 0x3,0x41,0x4f, 0x3,0x29,0x3a, - 0x4,0x29,0x61, 0x3,0x31,0x41, 0x3,0x39,0x2b, 0x3,0x3b,0x78, - 0x4,0x4a,0x2e, 0x4,0x56,0x3e, 0x4,0x6a,0x4b, 0x4,0x29,0x62, - 0x4,0x2d,0x49, 0x6,0x38,0x30, 0x6,0x49,0x61, 0x6,0x5d,0x51, - 0x5,0x4d,0x4b, 0x3,0x23,0x71, 0x6,0x2b,0x70, 0x6,0x38,0x34, - 0x3,0x36,0x3b, 0x3,0x36,0x3e, 0x4,0x3d,0x65, 0x4,0x4a,0x30, - 0x4,0x4a,0x31, 0x4,0x22,0x78, 0x4,0x22,0x79, 0x4,0x24,0x43, - 0x3,0x26,0x3c, 0x3,0x26,0x3f, 0x3,0x26,0x3e, 0x3,0x26,0x40, - 0x3,0x29,0x3f, 0x3,0x29,0x3d, 0x4,0x26,0x63, 0x5,0x29,0x4f, - 0x4,0x29,0x63, 0x3,0x2c,0x7b, 0x4,0x29,0x64, 0x4,0x29,0x65, - 0x3,0x2c,0x78, 0x3,0x2d,0x26, 0x6,0x31,0x67, 0x4,0x2d,0x4c, - 0x4,0x32,0x3b, 0x4,0x2d,0x4b, 0x3,0x31,0x47, 0x6,0x38,0x37, - 0x3,0x31,0x4a, 0xf,0x2f,0x6e, 0x4,0x2d,0x4d, 0x6,0x40,0x51, - 0x4,0x32,0x36, 0x4,0x32,0x3a, 0x4,0x32,0x37, 0x3,0x36,0x43, - 0x6,0x40,0x4f, 0x3,0x3c,0x22, 0x4,0x37,0x7e, 0x3,0x3b,0x7a, - 0x3,0x3b,0x7b, 0x4,0x38,0x25, 0x3,0x3c,0x27, 0x4,0x38,0x22, - 0x6,0x49,0x73, 0x3,0x3c,0x21, 0x6,0x53,0x3d, 0x5,0x3f,0x62, - 0x3,0x41,0x52, 0x3,0x41,0x57, 0x3,0x41,0x5a, 0x3,0x41,0x55, - 0x3,0x41,0x53, 0x3,0x41,0x5c, 0x3,0x41,0x58, 0x4,0x3d,0x68, - 0x4,0x3d,0x67, 0x3,0x41,0x54, 0x3,0x47,0x38, 0x4,0x43,0x6e, - 0x3,0x47,0x32, 0x3,0x47,0x36, 0x5,0x4d,0x53, 0x4,0x4a,0x32, - 0x3,0x4c,0x42, 0x3,0x4c,0x45, 0x4,0x50,0x52, 0x4,0x50,0x51, - 0x3,0x51,0x21, 0x5,0x4d,0x50, 0x3,0x50,0x7b, 0x3,0x50,0x7c, - 0x4,0x50,0x53, 0x7,0x2e,0x5a, 0x3,0x54,0x73, 0x3,0x54,0x6e, - 0x4,0x56,0x40, 0x4,0x5b,0x40, 0x4,0x5b,0x41, 0x4,0x5b,0x3f, - 0x7,0x3f,0x76, 0x3,0x5a,0x40, 0x3,0x5a,0x41, 0x3,0x5c,0x44, - 0x3,0x5f,0x4c, 0x3,0x5f,0x4d, 0x5,0x75,0x6e, 0x5,0x75,0x6d, - 0x3,0x23,0x74, 0x4,0x50,0x56, 0x3,0x54,0x74, 0x3,0x29,0x44, - 0x3,0x31,0x4e, 0x5,0x2e,0x25, 0x3,0x36,0x49, 0x3,0x3c,0x28, - 0x4,0x3a,0x43, 0x5,0x46,0x45, 0x5,0x4d,0x58, 0x3,0x51,0x25, - 0x3,0x23,0x76, 0x3,0x26,0x43, 0x4,0x24,0x48, 0x3,0x26,0x46, - 0x3,0x29,0x4b, 0x3,0x29,0x46, 0xf,0x27,0x4c, 0x3,0x29,0x50, - 0x3,0x29,0x4d, 0x5,0x26,0x51, 0x3,0x2d,0x28, 0x3,0x2d,0x2c, - 0x4,0x29,0x6f, 0x4,0x29,0x6c, 0x3,0x2d,0x29, 0x4,0x2d,0x57, - 0x4,0x2d,0x51, 0x4,0x2d,0x54, 0x4,0x2d,0x58, 0x3,0x31,0x52, - 0x5,0x2e,0x2b, 0x4,0x2d,0x52, 0x4,0x2d,0x5b, 0x3,0x31,0x55, - 0x4,0x2d,0x56, 0x3,0x31,0x51, 0x3,0x36,0x59, 0x4,0x32,0x43, - 0x3,0x36,0x4a, 0x3,0x36,0x4f, 0x5,0x32,0x79, 0x4,0x32,0x42, - 0x4,0x32,0x46, 0x4,0x32,0x41, 0x4,0x38,0x34, 0x3,0x36,0x58, - 0x3,0x36,0x5d, 0x4,0x38,0x2f, 0x3,0x3c,0x2e, 0x4,0x38,0x2c, - 0x3,0x3c,0x3f, 0x3,0x3c,0x30, 0x4,0x38,0x2a, 0x5,0x39,0x33, - 0x4,0x38,0x2d, 0x3,0x3c,0x2c, 0x5,0x39,0x39, 0x4,0x38,0x35, - 0x3,0x3c,0x35, 0x4,0x38,0x37, 0x3,0x3c,0x36, 0x3,0x3c,0x43, - 0x3,0x3c,0x2b, 0x3,0x3c,0x2d, 0x4,0x3d,0x78, 0x3,0x41,0x71, - 0x3,0x41,0x66, 0x3,0x41,0x70, 0x4,0x3d,0x6b, 0x4,0x3d,0x6e, - 0x4,0x3d,0x6f, 0x3,0x41,0x6c, 0x3,0x41,0x69, 0x3,0x41,0x64, - 0x4,0x3d,0x6d, 0x3,0x41,0x5e, 0x4,0x3d,0x75, 0x3,0x41,0x62, - 0x3,0x41,0x63, 0x3,0x41,0x7a, 0x3,0x41,0x61, 0x3,0x41,0x5f, - 0x4,0x44,0x23, 0x4,0x3d,0x76, 0x3,0x41,0x60, 0x3,0x42,0x5a, - 0x3,0x41,0x67, 0xf,0x48,0x55, 0x4,0x44,0x24, 0x4,0x43,0x75, - 0x4,0x44,0x21, 0x4,0x43,0x7c, 0x3,0x47,0x3f, 0x4,0x43,0x78, - 0x4,0x43,0x73, 0x3,0x47,0x41, 0x4,0x43,0x74, 0x3,0x47,0x4a, - 0x4,0x43,0x7d, 0x4,0x43,0x7e, 0x4,0x43,0x7a, 0x4,0x44,0x22, - 0x3,0x47,0x4f, 0x3,0x47,0x40, 0x4,0x44,0x25, 0x4,0x43,0x71, - 0x5,0x46,0x4b, 0x3,0x47,0x49, 0x4,0x3d,0x72, 0x3,0x47,0x50, - 0xf,0x48,0x52, 0x3,0x4c,0x4e, 0x5,0x4d,0x6d, 0x4,0x4a,0x3a, - 0x3,0x4c,0x4c, 0x5,0x4d,0x61, 0x3,0x4c,0x53, 0x4,0x4a,0x37, - 0x4,0x4a,0x36, 0x3,0x4c,0x5d, 0x3,0x4c,0x58, 0x7,0x23,0x6f, - 0x4,0x4a,0x38, 0x4,0x4a,0x42, 0x3,0x4c,0x5a, 0x3,0x4c,0x5c, - 0x3,0x4c,0x48, 0x3,0x4c,0x55, 0x3,0x51,0x43, 0x3,0x51,0x42, - 0x4,0x50,0x60, 0x4,0x50,0x5a, 0x3,0x51,0x37, 0x3,0x51,0x30, - 0x4,0x50,0x59, 0x4,0x4a,0x39, 0x3,0x51,0x3f, 0x3,0x51,0x2a, - 0x3,0x51,0x3d, 0x4,0x56,0x49, 0x3,0x51,0x33, 0x3,0x51,0x39, - 0x3,0x4c,0x4b, 0x4,0x50,0x5e, 0x3,0x51,0x2d, 0x4,0x50,0x64, - 0x3,0x51,0x35, 0x3,0x51,0x34, 0x3,0x51,0x36, 0x3,0x55,0x22, - 0x4,0x56,0x48, 0x3,0x54,0x7e, 0x3,0x55,0x25, 0x3,0x54,0x7d, - 0x4,0x56,0x4b, 0x7,0x38,0x55, 0x5,0x5b,0x68, 0x3,0x54,0x77, - 0x3,0x55,0x26, 0xf,0x5f,0x29, 0x3,0x54,0x79, 0x3,0x55,0x28, - 0x4,0x5b,0x48, 0x4,0x5b,0x44, 0x3,0x57,0x7c, 0x4,0x5b,0x4a, - 0x4,0x5b,0x49, 0x4,0x5f,0x6f, 0x4,0x5f,0x73, 0x3,0x5a,0x49, - 0x4,0x5f,0x70, 0x4,0x5f,0x6e, 0x4,0x5f,0x72, 0x4,0x5f,0x75, - 0x3,0x5a,0x4c, 0x3,0x5a,0x4b, 0xf,0x62,0x53, 0x3,0x5a,0x4a, - 0x3,0x5c,0x4c, 0x3,0x5c,0x46, 0x4,0x63,0x51, 0x4,0x63,0x4f, - 0x3,0x5c,0x48, 0x3,0x5c,0x4d, 0x4,0x63,0x54, 0x3,0x5c,0x4b, - 0x3,0x5c,0x45, 0xf,0x65,0x3e, 0x5,0x70,0x27, 0x3,0x5e,0x36, - 0x3,0x5c,0x4a, 0x3,0x5f,0x50, 0x4,0x68,0x6e, 0x3,0x60,0x35, - 0x3,0x60,0x33, 0x3,0x60,0x34, 0x5,0x24,0x48, 0x6,0x28,0x30, - 0x4,0x26,0x6d, 0x5,0x26,0x56, 0x4,0x26,0x70, 0x4,0x26,0x6c, - 0x4,0x2d,0x60, 0x4,0x29,0x70, 0x4,0x29,0x71, 0x6,0x31,0x78, - 0x4,0x29,0x74, 0x4,0x29,0x73, 0x5,0x2e,0x2e, 0x4,0x2d,0x5d, - 0x4,0x2d,0x61, 0x4,0x2d,0x62, 0x4,0x2d,0x5e, 0x3,0x36,0x61, - 0x4,0x32,0x48, 0x4,0x32,0x49, 0x6,0x40,0x6e, 0x4,0x38,0x3b, - 0x4,0x38,0x39, 0x3,0x3c,0x46, 0x5,0x39,0x43, 0x4,0x38,0x3c, - 0x6,0x38,0x64, 0x4,0x3e,0x21, 0x4,0x3d,0x7c, 0x4,0x3d,0x7b, - 0x4,0x3d,0x7d, 0x4,0x3d,0x7e, 0x4,0x3e,0x22, 0x3,0x47,0x52, - 0x6,0x5d,0x77, 0x4,0x44,0x2a, 0x4,0x4a,0x4c, 0x3,0x4c,0x68, - 0x4,0x50,0x66, 0x4,0x50,0x67, 0x4,0x56,0x4f, 0x4,0x56,0x4e, - 0x3,0x55,0x2a, 0x3,0x55,0x2c, 0x4,0x5f,0x77, 0x7,0x4e,0x22, - 0x4,0x68,0x71, 0x5,0x75,0x77, 0x5,0x79,0x2f, 0x6,0x25,0x25, - 0x3,0x2d,0x3e, 0x3,0x2b,0x7b, 0x3,0x3c,0x48, 0x4,0x38,0x3f, - 0x5,0x46,0x5f, 0x3,0x58,0x24, 0x4,0x22,0x7c, 0x3,0x29,0x57, - 0x5,0x26,0x62, 0x4,0x26,0x75, 0x3,0x2d,0x3f, 0x3,0x2d,0x41, - 0x3,0x2d,0x40, 0x3,0x31,0x69, 0x3,0x36,0x63, 0x4,0x32,0x4a, - 0x4,0x38,0x45, 0x4,0x38,0x44, 0x4,0x38,0x46, 0x4,0x38,0x42, - 0x3,0x3c,0x4a, 0x3,0x42,0x23, 0x4,0x3e,0x23, 0x4,0x3e,0x24, - 0x3,0x42,0x24, 0x4,0x44,0x32, 0x5,0x46,0x60, 0x4,0x44,0x33, - 0x4,0x44,0x30, 0x4,0x4a,0x50, 0x4,0x4a,0x4f, 0x4,0x50,0x6b, - 0x4,0x50,0x6a, 0x4,0x56,0x51, 0x4,0x63,0x55, 0x3,0x5c,0x4e, - 0x5,0x75,0x78, 0x5,0x24,0x4e, 0x4,0x26,0x78, 0x4,0x2d,0x64, - 0x3,0x31,0x6b, 0x4,0x32,0x4f, 0x4,0x38,0x49, 0x4,0x38,0x4a, - 0x4,0x38,0x4b, 0x3,0x42,0x25, 0x4,0x44,0x35, 0x3,0x51,0x47, - 0x3,0x51,0x48, 0x4,0x50,0x6e, 0x4,0x56,0x53, 0x3,0x58,0x25, - 0x4,0x29,0x7b, 0x3,0x23,0x7b, 0x4,0x26,0x79, 0x3,0x29,0x5b, - 0x4,0x26,0x7a, 0xf,0x27,0x5b, 0x3,0x2d,0x43, 0x4,0x2d,0x66, - 0x4,0x32,0x52, 0x4,0x32,0x54, 0x4,0x32,0x53, 0x4,0x32,0x55, - 0x3,0x36,0x67, 0x4,0x2d,0x67, 0x4,0x32,0x51, 0x5,0x39,0x5b, - 0x3,0x3c,0x4c, 0x4,0x38,0x4f, 0x4,0x38,0x4c, 0x4,0x3e,0x29, - 0x3,0x42,0x27, 0x4,0x3e,0x28, 0x4,0x3e,0x27, 0x4,0x44,0x3f, - 0x4,0x44,0x38, 0x4,0x44,0x39, 0x4,0x44,0x3a, 0x5,0x46,0x68, - 0x4,0x44,0x3c, 0x4,0x50,0x6f, 0x4,0x50,0x71, 0x4,0x50,0x72, - 0x3,0x51,0x49, 0x4,0x5b,0x50, 0x4,0x5b,0x4f, 0x3,0x5a,0x50, - 0x4,0x6d,0x57, 0x4,0x2d,0x6a, 0x3,0x29,0x5c, 0x3,0x36,0x68, - 0x3,0x4c,0x69, 0x3,0x51,0x4a, 0x4,0x21,0x4f, 0x3,0x22,0x56, - 0x3,0x22,0x55, 0x3,0x24,0x22, 0x5,0x21,0x74, 0x4,0x23,0x22, - 0x3,0x26,0x54, 0x3,0x26,0x4f, 0x4,0x24,0x4f, 0x3,0x26,0x5d, - 0x6,0x28,0x49, 0x3,0x26,0x5a, 0x4,0x24,0x51, 0x3,0x26,0x4b, - 0x6,0x28,0x4a, 0x6,0x28,0x44, 0x3,0x26,0x58, 0x3,0x29,0x61, - 0x3,0x29,0x5f, 0x3,0x29,0x5e, 0x3,0x29,0x62, 0x3,0x29,0x60, - 0x4,0x26,0x7e, 0x3,0x29,0x68, 0x3,0x29,0x66, 0xf,0x27,0x66, - 0x3,0x2d,0x44, 0x5,0x2a,0x24, 0x4,0x27,0x22, 0x3,0x2d,0x54, - 0x5,0x29,0x7b, 0x5,0x29,0x7c, 0x4,0x29,0x7e, 0x3,0x2d,0x56, - 0x3,0x2d,0x4c, 0xf,0x30,0x49, 0x6,0x38,0x72, 0x3,0x31,0x70, - 0x3,0x31,0x71, 0x4,0x2d,0x6b, 0x6,0x39,0x33, 0x3,0x31,0x74, - 0x4,0x2d,0x6c, 0x3,0x36,0x69, 0x3,0x32,0x24, 0x3,0x32,0x23, - 0x3,0x31,0x7e, 0x3,0x31,0x75, 0x4,0x32,0x57, 0x3,0x36,0x71, - 0x4,0x32,0x63, 0x4,0x32,0x64, 0x3,0x36,0x6e, 0x4,0x32,0x5e, - 0x3,0x37,0x22, 0x3,0x36,0x6d, 0x3,0x3c,0x4f, 0x3,0x36,0x7e, - 0x4,0x32,0x58, 0x4,0x32,0x68, 0x5,0x39,0x5e, 0x4,0x32,0x5a, - 0x4,0x32,0x5c, 0x6,0x41,0x2b, 0x5,0x33,0x3d, 0x3,0x3c,0x5e, - 0x3,0x36,0x7b, 0x3,0x3c,0x5f, 0x3,0x36,0x73, 0x6,0x41,0x41, - 0x3,0x36,0x78, 0xf,0x36,0x33, 0x4,0x38,0x51, 0x4,0x38,0x56, - 0x3,0x3c,0x65, 0x4,0x38,0x52, 0x3,0x3c,0x59, 0x4,0x38,0x59, - 0x3,0x3c,0x6a, 0x3,0x3c,0x67, 0x3,0x3c,0x55, 0x4,0x38,0x57, - 0x4,0x38,0x5a, 0x3,0x3c,0x53, 0x3,0x3c,0x57, 0x3,0x3c,0x61, - 0x3,0x42,0x2b, 0x6,0x4a,0x6d, 0xf,0x3c,0x43, 0xf,0x3c,0x5a, - 0x4,0x3e,0x37, 0x3,0x42,0x2c, 0x3,0x42,0x37, 0x3,0x42,0x35, - 0x3,0x42,0x48, 0x3,0x42,0x38, 0x4,0x3e,0x30, 0x4,0x3e,0x39, - 0x4,0x3e,0x2d, 0x3,0x42,0x42, 0x4,0x3e,0x38, 0x3,0x42,0x34, - 0x3,0x42,0x3c, 0x4,0x3e,0x3c, 0x3,0x42,0x2f, 0x3,0x42,0x41, - 0x5,0x40,0x27, 0x4,0x3e,0x2f, 0x4,0x3e,0x32, 0x3,0x42,0x32, - 0x3,0x42,0x43, 0x3,0x47,0x55, 0x4,0x44,0x49, 0x3,0x47,0x60, - 0x6,0x5e,0x3b, 0x3,0x47,0x59, 0x6,0x54,0x50, 0x3,0x47,0x58, - 0x4,0x44,0x46, 0x4,0x44,0x4d, 0x4,0x44,0x4a, 0x6,0x5e,0x40, - 0x3,0x4c,0x6e, 0x4,0x4a,0x5f, 0x4,0x4a,0x61, 0x3,0x4c,0x6f, - 0x3,0x4c,0x7c, 0x4,0x4a,0x68, 0x4,0x4a,0x5d, 0x3,0x4c,0x6d, - 0x4,0x4a,0x59, 0x3,0x4c,0x72, 0x5,0x46,0x78, 0x7,0x24,0x61, - 0x3,0x4c,0x70, 0x4,0x50,0x74, 0x3,0x51,0x4b, 0x3,0x4c,0x76, - 0x4,0x50,0x77, 0x4,0x50,0x7d, 0x5,0x55,0x36, 0x4,0x50,0x76, - 0x3,0x51,0x4f, 0x3,0x51,0x4e, 0x4,0x50,0x7a, 0x5,0x55,0x2d, - 0x3,0x51,0x53, 0x3,0x51,0x57, 0x4,0x50,0x7b, 0x4,0x56,0x56, - 0x3,0x51,0x51, 0x3,0x51,0x4c, 0x4,0x50,0x78, 0x3,0x51,0x52, - 0x4,0x4a,0x62, 0x5,0x55,0x2e, 0x3,0x55,0x32, 0x3,0x55,0x38, - 0x4,0x56,0x5e, 0x4,0x56,0x60, 0x3,0x55,0x34, 0x4,0x56,0x58, - 0x3,0x55,0x2e, 0x4,0x56,0x57, 0x4,0x56,0x5c, 0x3,0x55,0x3b, - 0x4,0x56,0x59, 0x4,0x56,0x5b, 0x3,0x55,0x33, 0x4,0x5b,0x56, - 0x4,0x5b,0x54, 0x4,0x5b,0x5a, 0x4,0x5b,0x57, 0x4,0x5b,0x60, - 0x4,0x5f,0x7b, 0x4,0x5f,0x7d, 0x4,0x5b,0x5b, 0x4,0x5f,0x79, - 0x3,0x5a,0x51, 0x3,0x5c,0x50, 0x4,0x63,0x5a, 0x4,0x63,0x5e, - 0x4,0x63,0x5b, 0x3,0x5c,0x52, 0x4,0x66,0x49, 0x5,0x70,0x3e, - 0x4,0x66,0x4a, 0x4,0x66,0x4c, 0x4,0x68,0x73, 0x3,0x5e,0x39, - 0x3,0x5e,0x38, 0x3,0x5f,0x51, 0x4,0x6a,0x4e, 0x3,0x60,0x38, - 0x4,0x6b,0x6d, 0x4,0x6b,0x6e, 0x3,0x61,0x66, 0x3,0x24,0x2a, - 0x4,0x24,0x52, 0x3,0x26,0x61, 0xf,0x24,0x6e, 0x3,0x29,0x6e, - 0x4,0x27,0x27, 0x3,0x29,0x78, 0xf,0x27,0x6e, 0x3,0x29,0x73, - 0x3,0x2d,0x67, 0x3,0x2d,0x59, 0x3,0x2d,0x66, 0x3,0x2d,0x61, - 0x3,0x2d,0x60, 0x3,0x2d,0x5b, 0x4,0x2a,0x27, 0x3,0x32,0x2e, - 0x4,0x2d,0x73, 0x3,0x32,0x32, 0x3,0x37,0x2b, 0x3,0x37,0x2a, - 0x3,0x37,0x34, 0x4,0x32,0x71, 0x4,0x32,0x76, 0x4,0x32,0x70, - 0x4,0x32,0x77, 0xf,0x36,0x48, 0x3,0x3c,0x76, 0x4,0x38,0x65, - 0x4,0x38,0x61, 0x3,0x3c,0x75, 0x4,0x38,0x62, 0x4,0x38,0x64, - 0x4,0x38,0x60, 0x3,0x3b,0x23, 0x3,0x3c,0x7e, 0x3,0x3c,0x70, - 0x3,0x3c,0x78, 0x3,0x42,0x54, 0x3,0x42,0x4d, 0x3,0x42,0x56, - 0x4,0x3e,0x4b, 0x3,0x42,0x4a, 0x3,0x42,0x55, 0x4,0x3e,0x48, - 0x4,0x3e,0x46, 0x4,0x3e,0x49, 0x6,0x54,0x54, 0x3,0x42,0x4b, - 0x3,0x42,0x50, 0xf,0x42,0x78, 0xf,0x43,0x3c, 0x4,0x44,0x59, - 0x3,0x47,0x73, 0x3,0x47,0x69, 0x6,0x54,0x67, 0x4,0x44,0x56, - 0x4,0x44,0x5a, 0x4,0x44,0x5c, 0x3,0x47,0x71, 0xf,0x49,0x58, - 0x3,0x4d,0x26, 0x3,0x4d,0x23, 0x3,0x4d,0x2b, 0x3,0x4d,0x21, - 0x3,0x4d,0x27, 0x4,0x4a,0x6a, 0x4,0x51,0x25, 0x3,0x51,0x5d, - 0x3,0x51,0x5b, 0x4,0x51,0x2b, 0x3,0x51,0x5f, 0x3,0x51,0x61, - 0x4,0x51,0x24, 0x3,0x51,0x64, 0x3,0x51,0x65, 0x3,0x55,0x3d, - 0x4,0x56,0x62, 0x3,0x55,0x3f, 0x3,0x55,0x44, 0x7,0x39,0x26, - 0x3,0x57,0x51, 0x3,0x58,0x2c, 0x4,0x56,0x64, 0x3,0x5c,0x5a, - 0x3,0x5a,0x59, 0x3,0x5c,0x54, 0x3,0x5c,0x5b, 0x4,0x63,0x5f, - 0x4,0x66,0x4e, 0x5,0x73,0x57, 0x4,0x6a,0x50, 0x3,0x60,0x3a, - 0x3,0x61,0x7a, 0x4,0x27,0x2c, 0x3,0x29,0x7a, 0x3,0x37,0x58, - 0x3,0x47,0x74, 0x3,0x2d,0x6a, 0x4,0x2d,0x76, 0x3,0x37,0x36, - 0x4,0x38,0x6b, 0x3,0x29,0x7b, 0x4,0x2a,0x2c, 0x4,0x38,0x6c, - 0x3,0x29,0x7d, 0x3,0x29,0x7e, 0x5,0x2e,0x53, 0x6,0x39,0x40, - 0x4,0x2d,0x7a, 0x4,0x44,0x5f, 0x7,0x39,0x2d, 0x4,0x5b,0x64, - 0x4,0x66,0x50, 0x3,0x21,0x6a, 0x3,0x32,0x33, 0x4,0x23,0x26, - 0x3,0x26,0x65, 0x4,0x24,0x55, 0x6,0x2c,0x71, 0x4,0x27,0x33, - 0x5,0x26,0x77, 0x4,0x27,0x32, 0x4,0x27,0x2f, 0x3,0x2d,0x6c, - 0x3,0x2d,0x6f, 0x4,0x2a,0x2e, 0x3,0x2d,0x6e, 0x3,0x32,0x34, - 0x3,0x32,0x35, 0x4,0x2d,0x7d, 0x4,0x2d,0x7c, 0x4,0x32,0x7a, - 0x5,0x33,0x4d, 0x4,0x32,0x79, 0x4,0x32,0x7e, 0x3,0x37,0x38, - 0x6,0x41,0x66, 0x3,0x37,0x37, 0x4,0x38,0x70, 0x4,0x38,0x72, - 0x4,0x38,0x73, 0x4,0x44,0x63, 0x6,0x54,0x78, 0x4,0x3e,0x4e, - 0x3,0x42,0x5e, 0x4,0x44,0x62, 0x4,0x44,0x60, 0x4,0x44,0x64, - 0x4,0x4a,0x6f, 0x4,0x4a,0x6e, 0x4,0x4a,0x72, 0x4,0x4a,0x71, - 0x4,0x4a,0x73, 0x4,0x51,0x2e, 0x4,0x51,0x30, 0x4,0x51,0x2f, - 0x4,0x56,0x67, 0x3,0x55,0x46, 0x3,0x55,0x47, 0x4,0x5b,0x66, - 0x4,0x5b,0x65, 0x4,0x60,0x24, 0x7,0x53,0x6b, 0x4,0x6a,0x51, - 0x4,0x27,0x34, 0x4,0x24,0x59, 0x3,0x26,0x6d, 0x4,0x24,0x56, - 0x3,0x26,0x6c, 0x6,0x2c,0x75, 0x4,0x27,0x39, 0x5,0x27,0x2e, - 0x3,0x2a,0x29, 0x3,0x2a,0x24, 0x3,0x2a,0x25, 0x4,0x27,0x3a, - 0x4,0x2a,0x32, 0x4,0x2a,0x34, 0x4,0x2a,0x35, 0x3,0x2d,0x72, - 0x6,0x32,0x67, 0x3,0x32,0x37, 0x5,0x2e,0x5c, 0x4,0x2e,0x21, - 0x4,0x2d,0x7e, 0x4,0x2e,0x22, 0x4,0x2e,0x26, 0x6,0x41,0x6d, - 0x4,0x2e,0x27, 0x5,0x33,0x51, 0x4,0x33,0x28, 0x6,0x41,0x75, - 0x4,0x33,0x29, 0x4,0x33,0x25, 0x4,0x33,0x2b, 0x4,0x33,0x27, - 0x4,0x33,0x2e, 0x4,0x38,0x79, 0x4,0x38,0x77, 0x3,0x3d,0x2c, - 0x4,0x38,0x7b, 0x6,0x4b,0x43, 0x4,0x44,0x65, 0x4,0x3e,0x54, - 0x4,0x44,0x66, 0x4,0x3e,0x53, 0x3,0x42,0x60, 0x4,0x3e,0x52, - 0x4,0x44,0x6a, 0x6,0x5e,0x6e, 0x4,0x44,0x69, 0x4,0x44,0x68, - 0x4,0x44,0x67, 0x3,0x47,0x76, 0x4,0x38,0x7a, 0x4,0x4a,0x7b, - 0x4,0x4a,0x76, 0x4,0x4a,0x7a, 0x4,0x4a,0x7c, 0x7,0x2f,0x74, - 0x4,0x51,0x32, 0x4,0x51,0x34, 0x3,0x55,0x48, 0x4,0x56,0x6a, - 0x4,0x56,0x6b, 0x4,0x5b,0x67, 0x5,0x68,0x3b, 0x4,0x63,0x65, - 0x4,0x63,0x66, 0x4,0x63,0x67, 0x4,0x63,0x63, 0x4,0x6b,0x6f, - 0x3,0x24,0x2e, 0x4,0x23,0x29, 0x3,0x24,0x30, 0x3,0x24,0x31, - 0x3,0x26,0x71, 0x3,0x26,0x6f, 0x3,0x26,0x70, 0x3,0x2a,0x2e, - 0x3,0x2d,0x76, 0x6,0x2d,0x21, 0x3,0x2a,0x30, 0x4,0x27,0x3b, - 0x3,0x2a,0x31, 0x3,0x2d,0x7d, 0x3,0x32,0x3a, 0x4,0x2a,0x37, - 0x4,0x2a,0x38, 0xf,0x2c,0x32, 0x4,0x33,0x2f, 0x3,0x32,0x43, - 0x3,0x32,0x44, 0x3,0x32,0x3b, 0x4,0x33,0x30, 0x3,0x32,0x45, - 0xf,0x31,0x27, 0x3,0x32,0x42, 0x3,0x37,0x3f, 0x3,0x37,0x42, - 0x3,0x37,0x41, 0x4,0x33,0x33, 0x3,0x37,0x3e, 0x3,0x37,0x43, - 0x3,0x3d,0x34, 0x4,0x38,0x7d, 0x5,0x3a,0x2d, 0x3,0x42,0x63, - 0x3,0x3d,0x31, 0x3,0x3d,0x30, 0x3,0x42,0x6c, 0xf,0x36,0x59, - 0xf,0x3d,0x3b, 0x4,0x3e,0x59, 0x3,0x42,0x65, 0x3,0x42,0x69, - 0x5,0x40,0x4e, 0x3,0x42,0x72, 0xf,0x43,0x49, 0xf,0x43,0x56, - 0x3,0x48,0x24, 0x7,0x25,0x37, 0x4,0x4b,0x22, 0x4,0x4b,0x21, - 0x3,0x4d,0x37, 0x3,0x4d,0x3c, 0x3,0x4d,0x33, 0x3,0x4d,0x38, - 0x3,0x4d,0x34, 0x3,0x4d,0x32, 0x3,0x51,0x68, 0x5,0x55,0x5d, - 0x4,0x51,0x37, 0x3,0x51,0x69, 0x3,0x55,0x4a, 0x4,0x56,0x6f, - 0xf,0x55,0x7a, 0xf,0x56,0x22, 0x3,0x55,0x4e, 0x4,0x5b,0x69, - 0x3,0x55,0x4c, 0xf,0x5b,0x2d, 0x3,0x58,0x31, 0x4,0x60,0x2a, - 0xf,0x62,0x78, 0xf,0x62,0x7b, 0x3,0x5c,0x61, 0x4,0x2a,0x39, - 0x4,0x2a,0x3a, 0x5,0x2e,0x62, 0x4,0x2e,0x2b, 0x4,0x33,0x35, - 0x4,0x33,0x34, 0x4,0x38,0x7e, 0x4,0x44,0x70, 0x4,0x44,0x71, - 0x4,0x44,0x6f, 0x4,0x4b,0x23, 0x4,0x4b,0x24, 0x4,0x5b,0x6c, - 0x4,0x6d,0x5a, 0x4,0x24,0x5e, 0x5,0x27,0x32, 0x3,0x2a,0x34, - 0x3,0x2e,0x23, 0x4,0x2a,0x3d, 0x3,0x32,0x4a, 0x3,0x32,0x4b, - 0x4,0x2e,0x2d, 0x3,0x32,0x49, 0x4,0x2e,0x2c, 0x4,0x33,0x3b, - 0x4,0x39,0x21, 0x4,0x33,0x3a, 0x4,0x33,0x38, 0x4,0x33,0x39, - 0x4,0x33,0x37, 0x4,0x39,0x23, 0x4,0x39,0x26, 0x4,0x33,0x3c, - 0x4,0x39,0x24, 0x4,0x3e,0x62, 0x4,0x3e,0x61, 0x4,0x3e,0x5d, - 0x4,0x3e,0x60, 0x3,0x42,0x76, 0x4,0x3e,0x63, 0x5,0x47,0x48, - 0x4,0x44,0x73, 0x4,0x44,0x76, 0x4,0x44,0x74, 0x4,0x44,0x78, - 0x4,0x44,0x77, 0x4,0x44,0x75, 0x4,0x4b,0x25, 0x4,0x4b,0x27, - 0x4,0x4b,0x26, 0x4,0x51,0x3f, 0x3,0x51,0x6f, 0x4,0x51,0x42, - 0x4,0x51,0x41, 0x4,0x56,0x72, 0x4,0x56,0x73, 0x3,0x55,0x51, - 0x4,0x56,0x75, 0x3,0x55,0x50, 0x4,0x56,0x71, 0x4,0x5b,0x6f, - 0x4,0x5b,0x6e, 0x4,0x60,0x2c, 0x4,0x60,0x2b, 0x4,0x68,0x75, - 0x4,0x6b,0x70, 0x4,0x6a,0x53, 0x3,0x32,0x4c, 0x4,0x3e,0x65, - 0x3,0x4d,0x3f, 0x4,0x56,0x78, 0x3,0x3d,0x40, 0xf,0x50,0x4e, - 0x5,0x24,0x63, 0x6,0x28,0x62, 0x3,0x26,0x72, 0x4,0x2a,0x41, - 0x3,0x2e,0x29, 0x4,0x2a,0x43, 0x4,0x2e,0x2f, 0x4,0x2e,0x31, - 0x5,0x33,0x64, 0x3,0x37,0x48, 0x3,0x3d,0x41, 0x4,0x39,0x28, - 0x4,0x3e,0x69, 0x3,0x42,0x79, 0x3,0x42,0x7a, 0x4,0x3e,0x68, - 0x4,0x44,0x79, 0x3,0x4d,0x40, 0x4,0x4b,0x2a, 0x4,0x4b,0x29, - 0x4,0x51,0x44, 0x5,0x5c,0x2f, 0x4,0x5b,0x72, 0x4,0x5b,0x73, - 0x4,0x60,0x2e, 0x4,0x63,0x69, 0x4,0x6a,0x54, 0x4,0x3e,0x6d, - 0x4,0x24,0x61, 0x4,0x24,0x62, 0x5,0x27,0x37, 0x3,0x2a,0x3c, - 0x4,0x2a,0x46, 0x3,0x2e,0x2d, 0x4,0x2a,0x49, 0x3,0x2e,0x2c, - 0x3,0x2e,0x2e, 0x3,0x32,0x56, 0x4,0x2e,0x37, 0x4,0x2e,0x3b, - 0x4,0x2e,0x35, 0x4,0x2e,0x36, 0x3,0x32,0x54, 0x4,0x2e,0x33, - 0x4,0x2e,0x3f, 0x4,0x2e,0x39, 0x6,0x39,0x6b, 0x3,0x32,0x53, - 0x4,0x2e,0x38, 0x4,0x2e,0x3a, 0x5,0x33,0x6d, 0x4,0x33,0x42, - 0x3,0x37,0x4c, 0x4,0x33,0x40, 0x4,0x2e,0x3c, 0x4,0x33,0x3f, - 0x4,0x33,0x45, 0x3,0x37,0x4b, 0x4,0x33,0x43, 0x4,0x39,0x32, - 0x4,0x39,0x33, 0x3,0x3d,0x46, 0x3,0x3d,0x4b, 0x6,0x4b,0x5a, - 0x3,0x3d,0x49, 0x4,0x39,0x36, 0x5,0x40,0x60, 0x4,0x39,0x2f, - 0x4,0x39,0x30, 0x3,0x3d,0x48, 0x3,0x3d,0x4a, 0x5,0x3a,0x3b, - 0x4,0x39,0x35, 0x4,0x39,0x38, 0x4,0x3e,0x74, 0x5,0x40,0x64, - 0x4,0x3e,0x6f, 0x4,0x3e,0x78, 0x4,0x3e,0x6e, 0x4,0x3e,0x76, - 0x4,0x3e,0x73, 0x4,0x3e,0x7a, 0x4,0x45,0x24, 0x4,0x45,0x28, - 0x6,0x5f,0x2d, 0x3,0x48,0x2a, 0x3,0x48,0x2c, 0x4,0x45,0x23, - 0x4,0x45,0x21, 0x7,0x25,0x58, 0x4,0x4b,0x38, 0x3,0x4d,0x42, - 0x4,0x4b,0x37, 0x4,0x4b,0x35, 0x4,0x4b,0x33, 0x4,0x4b,0x2f, - 0x7,0x25,0x5c, 0x4,0x4b,0x2e, 0x5,0x47,0x59, 0x4,0x4b,0x3b, - 0x7,0x30,0x36, 0x4,0x51,0x48, 0x4,0x51,0x49, 0x3,0x51,0x75, - 0x4,0x51,0x4e, 0x4,0x51,0x4a, 0x4,0x51,0x50, 0x4,0x57,0x26, - 0x4,0x57,0x22, 0x4,0x5b,0x7b, 0x4,0x5b,0x77, 0x7,0x40,0x6b, - 0x4,0x57,0x25, 0x7,0x40,0x67, 0x4,0x60,0x32, 0x4,0x60,0x2f, - 0x4,0x60,0x30, 0x4,0x66,0x58, 0x4,0x66,0x59, 0x3,0x5e,0x40, - 0x5,0x73,0x5c, 0x4,0x6a,0x55, 0x4,0x6b,0x72, 0x4,0x6b,0x71, - 0x3,0x62,0x2d, 0x3,0x26,0x75, 0x3,0x2e,0x30, 0x3,0x32,0x58, - 0x3,0x37,0x4e, 0x3,0x43,0x22, 0x3,0x48,0x2d, 0x5,0x47,0x5b, - 0x5,0x4e,0x59, 0x4,0x51,0x56, 0x4,0x60,0x37, 0x4,0x66,0x5b, - 0x4,0x6c,0x73, 0x4,0x27,0x46, 0x4,0x2a,0x4e, 0x3,0x2e,0x31, - 0x4,0x2e,0x46, 0x4,0x2e,0x45, 0x4,0x33,0x47, 0x4,0x33,0x48, - 0x4,0x39,0x3a, 0x6,0x55,0x52, 0x4,0x45,0x30, 0x4,0x45,0x32, - 0x3,0x48,0x2f, 0x3,0x4d,0x43, 0x4,0x4b,0x3d, 0x4,0x51,0x57, - 0x4,0x5b,0x7e, 0x4,0x63,0x6c, 0x4,0x27,0x48, 0x4,0x2a,0x51, - 0x4,0x2a,0x50, 0x4,0x2e,0x47, 0x4,0x2e,0x49, 0x3,0x32,0x59, - 0x4,0x33,0x4b, 0x3,0x37,0x4f, 0x3,0x3d,0x4e, 0x3,0x43,0x23, - 0x5,0x40,0x6f, 0x3,0x48,0x32, 0x4,0x51,0x5a, 0x4,0x45,0x36, - 0x4,0x57,0x2c, 0x4,0x60,0x38, 0x3,0x5f,0x38, 0x4,0x6e,0x48, - 0x3,0x26,0x79, 0x4,0x24,0x65, 0x4,0x27,0x4e, 0x4,0x27,0x4f, - 0x4,0x27,0x4d, 0x4,0x27,0x4c, 0x4,0x27,0x4a, 0x4,0x2a,0x53, - 0x4,0x2a,0x56, 0x4,0x2a,0x57, 0x4,0x2a,0x54, 0x4,0x2a,0x58, - 0x5,0x2a,0x6d, 0x4,0x2a,0x5a, 0x6,0x33,0x38, 0x3,0x2e,0x34, - 0x4,0x2e,0x52, 0x3,0x32,0x5d, 0x3,0x32,0x66, 0x3,0x32,0x60, - 0x4,0x2e,0x4d, 0x3,0x32,0x61, 0x5,0x33,0x76, 0x4,0x33,0x50, - 0x4,0x33,0x51, 0x3,0x37,0x56, 0x3,0x37,0x54, 0x4,0x33,0x52, - 0x4,0x33,0x4e, 0x4,0x33,0x4d, 0x3,0x3d,0x50, 0x4,0x39,0x49, - 0x3,0x3d,0x54, 0x4,0x39,0x4a, 0x3,0x3d,0x55, 0x4,0x39,0x45, - 0x4,0x39,0x48, 0x4,0x39,0x3f, 0x4,0x39,0x41, 0x4,0x39,0x4b, - 0x4,0x39,0x46, 0x4,0x39,0x4d, 0x4,0x39,0x47, 0x4,0x39,0x43, - 0x4,0x3f,0x22, 0x4,0x39,0x4c, 0x4,0x39,0x42, 0x4,0x3f,0x30, - 0x4,0x3f,0x2d, 0x3,0x43,0x24, 0x4,0x3f,0x25, 0x4,0x3f,0x26, - 0x4,0x3f,0x27, 0x4,0x3f,0x2b, 0x4,0x3f,0x2c, 0x6,0x55,0x61, - 0x5,0x47,0x61, 0x4,0x45,0x39, 0x4,0x45,0x41, 0x4,0x45,0x3c, - 0x4,0x45,0x37, 0x3,0x48,0x37, 0x4,0x45,0x43, 0x4,0x45,0x46, - 0x4,0x45,0x3f, 0x4,0x45,0x44, 0x3,0x48,0x3a, 0x4,0x45,0x38, - 0x3,0x4d,0x45, 0x4,0x4b,0x45, 0x4,0x4b,0x42, 0x4,0x4b,0x44, - 0x4,0x4b,0x47, 0x4,0x4b,0x43, 0x4,0x4b,0x4d, 0x3,0x4d,0x47, - 0x5,0x4e,0x60, 0x4,0x4b,0x3f, 0x3,0x51,0x77, 0x3,0x51,0x78, - 0x4,0x51,0x5c, 0x4,0x51,0x60, 0x3,0x51,0x7c, 0x3,0x51,0x7a, - 0x4,0x51,0x5d, 0x4,0x51,0x64, 0x4,0x57,0x32, 0x4,0x57,0x2e, - 0x4,0x57,0x31, 0x4,0x57,0x2f, 0x3,0x55,0x5a, 0x4,0x57,0x30, - 0x4,0x57,0x33, 0x4,0x57,0x34, 0x5,0x56,0x22, 0x5,0x62,0x69, - 0x4,0x5c,0x27, 0x4,0x5c,0x29, 0x4,0x5c,0x2a, 0x4,0x5c,0x25, - 0x3,0x58,0x37, 0x4,0x5c,0x26, 0x4,0x63,0x70, 0x4,0x63,0x6e, - 0x4,0x63,0x71, 0x4,0x63,0x6f, 0x4,0x66,0x5d, 0x3,0x5e,0x41, - 0x4,0x68,0x78, 0x4,0x6a,0x57, 0x4,0x68,0x7a, 0x4,0x6c,0x75, - 0x4,0x6e,0x4d, 0x4,0x27,0x51, 0x4,0x2a,0x5f, 0x4,0x33,0x57, - 0x4,0x45,0x4a, 0x3,0x55,0x5d, 0x4,0x57,0x38, 0x4,0x63,0x74, - 0x4,0x6b,0x75, 0x4,0x2e,0x57, 0x4,0x2e,0x58, 0x4,0x33,0x5a, - 0x4,0x33,0x59, 0x6,0x4c,0x2b, 0x4,0x3f,0x33, 0x4,0x45,0x4c, - 0x3,0x24,0x32, 0x3,0x26,0x7a, 0x4,0x27,0x53, 0xf,0x28,0x7a, - 0x4,0x2a,0x64, 0x3,0x2e,0x38, 0x4,0x2a,0x62, 0x3,0x2e,0x3c, - 0x3,0x2d,0x3b, 0x4,0x2e,0x5f, 0x4,0x2e,0x5c, 0x4,0x2e,0x62, - 0x5,0x2f,0x34, 0x3,0x37,0x5b, 0x3,0x32,0x6a, 0x3,0x32,0x6b, - 0x4,0x2e,0x5e, 0x4,0x2e,0x61, 0x4,0x33,0x5e, 0x4,0x33,0x61, - 0x3,0x37,0x5c, 0x4,0x33,0x5f, 0x3,0x37,0x5a, 0x4,0x33,0x60, - 0x3,0x37,0x5e, 0x3,0x3d,0x5b, 0x5,0x3a,0x59, 0x6,0x4c,0x33, - 0x4,0x39,0x58, 0x3,0x3d,0x58, 0x4,0x39,0x53, 0x4,0x3f,0x40, - 0x4,0x3f,0x39, 0x4,0x3f,0x3f, 0x3,0x43,0x2f, 0x4,0x3f,0x3c, - 0x3,0x43,0x32, 0x4,0x3f,0x3d, 0x3,0x43,0x2c, 0x4,0x3f,0x3e, - 0x4,0x3f,0x38, 0x4,0x3f,0x3a, 0x4,0x3f,0x3b, 0x4,0x3f,0x42, - 0x4,0x45,0x4e, 0x3,0x48,0x43, 0x4,0x45,0x51, 0x3,0x48,0x41, - 0x4,0x45,0x4d, 0x4,0x45,0x55, 0x4,0x45,0x4f, 0x5,0x47,0x76, - 0x4,0x4b,0x5c, 0x4,0x4b,0x58, 0x4,0x4b,0x56, 0x4,0x4b,0x55, - 0x4,0x4b,0x5e, 0x7,0x26,0x24, 0x4,0x4b,0x5b, 0x3,0x52,0x23, - 0x3,0x51,0x7d, 0x4,0x51,0x6c, 0x3,0x51,0x7e, 0x7,0x30,0x59, - 0x5,0x56,0x33, 0x4,0x51,0x70, 0x4,0x51,0x6d, 0x4,0x57,0x3b, - 0x4,0x57,0x41, 0x3,0x48,0x42, 0x4,0x57,0x39, 0x3,0x55,0x5e, - 0x3,0x55,0x5f, 0x4,0x57,0x3f, 0x3,0x58,0x41, 0x4,0x5c,0x2d, - 0x3,0x58,0x3d, 0x4,0x5c,0x31, 0x4,0x5c,0x2f, 0x4,0x5c,0x2e, - 0x4,0x60,0x3f, 0x7,0x4e,0x5c, 0x3,0x5c,0x63, 0x4,0x63,0x76, - 0x4,0x63,0x75, 0x4,0x66,0x5f, 0x4,0x66,0x60, 0x4,0x66,0x61, - 0x4,0x68,0x7c, 0x4,0x68,0x7b, 0x3,0x60,0x75, 0x3,0x61,0x67, - 0x3,0x2e,0x3f, 0x4,0x2a,0x67, 0x4,0x2a,0x66, 0x6,0x33,0x48, - 0x3,0x32,0x6e, 0x4,0x2e,0x64, 0x3,0x32,0x71, 0x3,0x37,0x64, - 0x4,0x33,0x63, 0x4,0x33,0x62, 0x3,0x3d,0x61, 0x3,0x3d,0x60, - 0x4,0x39,0x59, 0x4,0x3f,0x45, 0x4,0x3f,0x44, 0x3,0x43,0x3a, - 0x3,0x43,0x3b, 0x3,0x43,0x3e, 0x4,0x3f,0x47, 0x3,0x43,0x3c, - 0x3,0x43,0x3f, 0x3,0x48,0x46, 0x5,0x48,0x24, 0x3,0x48,0x49, - 0x5,0x4e,0x76, 0x3,0x4d,0x4e, 0x4,0x51,0x76, 0x3,0x52,0x25, - 0x4,0x51,0x74, 0x4,0x51,0x75, 0x4,0x57,0x42, 0x3,0x58,0x46, - 0x3,0x58,0x47, 0x3,0x5a,0x64, 0x4,0x66,0x63, 0x3,0x62,0x34, - 0x5,0x24,0x6e, 0x3,0x26,0x7d, 0x5,0x27,0x46, 0x6,0x2d,0x49, - 0x4,0x27,0x56, 0x3,0x2a,0x40, 0x3,0x2a,0x41, 0x3,0x2a,0x43, - 0x4,0x2a,0x6a, 0x4,0x2a,0x6f, 0x4,0x2a,0x6b, 0x4,0x2a,0x69, - 0x4,0x2a,0x6c, 0xf,0x2c,0x6d, 0x4,0x2e,0x65, 0x3,0x32,0x75, - 0x3,0x32,0x7a, 0x6,0x42,0x66, 0x4,0x33,0x67, 0x4,0x33,0x66, - 0x3,0x37,0x6d, 0x4,0x33,0x65, 0x5,0x34,0x3b, 0x5,0x34,0x39, - 0x4,0x33,0x6a, 0x4,0x33,0x69, 0x4,0x33,0x6b, 0x3,0x37,0x68, - 0x4,0x33,0x6d, 0x5,0x34,0x38, 0x3,0x37,0x6e, 0xf,0x37,0x3b, - 0x4,0x33,0x64, 0x5,0x3a,0x65, 0x4,0x39,0x5e, 0x4,0x39,0x62, - 0x3,0x3d,0x67, 0x4,0x39,0x64, 0x3,0x3d,0x6a, 0x4,0x39,0x63, - 0x3,0x3d,0x6b, 0x4,0x39,0x61, 0x4,0x3f,0x4f, 0x3,0x43,0x40, - 0x4,0x3f,0x4d, 0x3,0x43,0x45, 0x4,0x3f,0x4c, 0x3,0x43,0x42, - 0x4,0x3f,0x4b, 0x3,0x43,0x43, 0x4,0x45,0x57, 0x4,0x3f,0x49, - 0x5,0x41,0x31, 0x3,0x48,0x51, 0x3,0x48,0x4a, 0x4,0x45,0x5b, - 0x3,0x48,0x53, 0x3,0x48,0x4e, 0x4,0x45,0x5a, 0x3,0x48,0x4c, - 0x4,0x45,0x58, 0x6,0x5f,0x6b, 0x4,0x45,0x59, 0x4,0x4b,0x65, - 0x4,0x4b,0x61, 0x3,0x4d,0x54, 0x4,0x4b,0x62, 0x3,0x4d,0x52, - 0x7,0x26,0x32, 0x3,0x4d,0x58, 0x4,0x4b,0x68, 0x4,0x4b,0x66, - 0x4,0x4b,0x64, 0x3,0x4d,0x59, 0x4,0x51,0x7d, 0x4,0x51,0x7c, - 0x3,0x52,0x2b, 0x4,0x51,0x79, 0x4,0x51,0x78, 0x4,0x51,0x7a, - 0x3,0x52,0x2d, 0x4,0x57,0x45, 0x3,0x55,0x63, 0x4,0x57,0x47, - 0x3,0x58,0x48, 0x7,0x41,0x2e, 0x4,0x5c,0x37, 0x4,0x5c,0x35, - 0x4,0x5c,0x36, 0x3,0x5e,0x46, 0x4,0x63,0x79, 0x4,0x66,0x65, - 0x7,0x58,0x4c, 0x4,0x66,0x64, 0x4,0x68,0x7e, 0x4,0x69,0x21, - 0x3,0x62,0x39, 0x4,0x24,0x69, 0x6,0x2d,0x4e, 0x3,0x2e,0x46, - 0x3,0x2e,0x45, 0x4,0x2a,0x71, 0x4,0x2a,0x72, 0x3,0x33,0x21, - 0x3,0x32,0x7e, 0x3,0x32,0x7d, 0x4,0x33,0x6f, 0x4,0x33,0x70, - 0x3,0x37,0x6f, 0x5,0x34,0x45, 0x4,0x33,0x72, 0x4,0x33,0x71, - 0x6,0x42,0x6f, 0x3,0x3d,0x6c, 0x4,0x39,0x67, 0x3,0x3d,0x6d, - 0x6,0x4c,0x53, 0x3,0x3d,0x6e, 0x5,0x41,0x39, 0x4,0x3f,0x53, - 0x4,0x3f,0x52, 0x6,0x56,0x27, 0x4,0x45,0x60, 0x6,0x5f,0x78, - 0x4,0x4b,0x6c, 0x5,0x4f,0x23, 0x5,0x54,0x24, 0x4,0x52,0x25, - 0x4,0x52,0x22, 0x4,0x52,0x24, 0x7,0x30,0x6f, 0x3,0x55,0x65, - 0x3,0x55,0x66, 0x4,0x57,0x4c, 0x4,0x57,0x4d, 0x4,0x57,0x4b, - 0x4,0x57,0x4f, 0x3,0x55,0x67, 0x4,0x5c,0x39, 0x4,0x5c,0x3a, - 0x4,0x60,0x48, 0x4,0x60,0x49, 0x4,0x63,0x7c, 0x4,0x69,0x22, - 0x3,0x24,0x34, 0x3,0x2a,0x46, 0x4,0x2a,0x76, 0x3,0x2e,0x4a, - 0x3,0x33,0x25, 0x4,0x2e,0x6d, 0x3,0x33,0x22, 0x5,0x34,0x46, - 0x3,0x3d,0x6f, 0x4,0x39,0x6a, 0x3,0x43,0x48, 0x4,0x3f,0x54, - 0x4,0x3f,0x55, 0x4,0x3f,0x5a, 0x4,0x45,0x63, 0x4,0x57,0x52, - 0x4,0x5c,0x3b, 0x3,0x5a,0x68, 0x5,0x2b,0x21, 0x4,0x2e,0x75, - 0x4,0x2e,0x70, 0x3,0x33,0x28, 0x4,0x2e,0x77, 0x3,0x33,0x29, - 0x4,0x2e,0x73, 0x4,0x2e,0x72, 0x4,0x33,0x76, 0x4,0x33,0x7d, - 0x3,0x37,0x74, 0x5,0x34,0x48, 0x4,0x33,0x77, 0x4,0x33,0x7b, - 0x3,0x37,0x75, 0x6,0x42,0x76, 0x4,0x33,0x78, 0x4,0x39,0x6d, - 0x4,0x39,0x74, 0x4,0x39,0x71, 0x3,0x3d,0x74, 0x4,0x3f,0x5b, - 0x4,0x39,0x72, 0x3,0x3d,0x7a, 0x4,0x39,0x75, 0x3,0x3d,0x73, - 0x4,0x39,0x6f, 0x6,0x4c,0x5b, 0x6,0x4c,0x56, 0x3,0x43,0x50, - 0x4,0x3f,0x66, 0x4,0x3f,0x62, 0x4,0x3f,0x61, 0x3,0x43,0x52, - 0x3,0x43,0x53, 0x4,0x3f,0x5d, 0x3,0x43,0x4e, 0x4,0x3f,0x60, - 0x3,0x43,0x4b, 0x4,0x3f,0x63, 0x5,0x48,0x46, 0x4,0x39,0x76, - 0x4,0x45,0x65, 0x3,0x48,0x5b, 0x4,0x45,0x6a, 0x4,0x45,0x69, - 0x3,0x48,0x5f, 0x4,0x45,0x6e, 0x4,0x45,0x68, 0x3,0x48,0x59, - 0x4,0x45,0x6d, 0x4,0x45,0x66, 0x5,0x48,0x36, 0x4,0x4b,0x7b, - 0x4,0x4b,0x75, 0x4,0x4b,0x70, 0x3,0x4d,0x61, 0x3,0x4d,0x5e, - 0x4,0x4c,0x22, 0x3,0x4d,0x67, 0x4,0x4b,0x7e, 0x3,0x4d,0x62, - 0x4,0x4c,0x2e, 0x5,0x4f,0x3b, 0x3,0x4d,0x64, 0x4,0x4c,0x30, - 0x4,0x4c,0x25, 0x4,0x4c,0x2d, 0x4,0x4b,0x79, 0x5,0x4f,0x32, - 0x3,0x4d,0x5f, 0x5,0x4f,0x45, 0x4,0x4c,0x2c, 0x4,0x4c,0x27, - 0x4,0x4b,0x77, 0x3,0x4d,0x66, 0x3,0x4d,0x68, 0x4,0x4c,0x28, - 0x5,0x4f,0x36, 0x4,0x52,0x34, 0x4,0x52,0x3a, 0x3,0x52,0x31, - 0x4,0x52,0x37, 0x4,0x52,0x2b, 0x4,0x52,0x38, 0x3,0x52,0x35, - 0x4,0x52,0x39, 0x4,0x52,0x3b, 0x4,0x52,0x36, 0x4,0x52,0x2f, - 0x4,0x52,0x3d, 0x4,0x52,0x29, 0x3,0x52,0x32, 0x4,0x57,0x5b, - 0x5,0x5c,0x6d, 0x4,0x57,0x5e, 0x4,0x57,0x5a, 0x4,0x57,0x62, - 0x5,0x5c,0x7d, 0x4,0x57,0x65, 0x4,0x57,0x53, 0x3,0x55,0x6c, - 0x4,0x57,0x56, 0x4,0x57,0x58, 0x4,0x57,0x59, 0x5,0x5c,0x7e, - 0x4,0x57,0x55, 0x5,0x5d,0x30, 0x4,0x5c,0x44, 0x4,0x5c,0x4f, - 0x4,0x5c,0x4b, 0x4,0x5c,0x50, 0x4,0x5c,0x43, 0x3,0x58,0x4a, - 0x4,0x5c,0x4a, 0x3,0x5a,0x6c, 0x4,0x5c,0x42, 0x4,0x5c,0x4c, - 0x7,0x41,0x3f, 0x4,0x5c,0x46, 0x4,0x5c,0x49, 0x4,0x5c,0x40, - 0x5,0x63,0x34, 0x4,0x5c,0x48, 0x3,0x58,0x4d, 0x3,0x58,0x4b, - 0x5,0x63,0x41, 0x4,0x60,0x56, 0x5,0x68,0x6e, 0x3,0x5a,0x6a, - 0x4,0x60,0x53, 0x5,0x68,0x66, 0x3,0x5a,0x6d, 0x3,0x5a,0x69, - 0x3,0x5a,0x6b, 0x4,0x5c,0x51, 0x4,0x63,0x7e, 0x4,0x66,0x69, - 0x4,0x66,0x6c, 0x4,0x66,0x6e, 0x3,0x5e,0x4a, 0x4,0x66,0x6a, - 0x3,0x5e,0x4d, 0x4,0x66,0x68, 0x4,0x66,0x6d, 0x3,0x5f,0x56, - 0x5,0x70,0x61, 0x4,0x69,0x26, 0x4,0x69,0x28, 0x4,0x6a,0x5d, - 0x4,0x6a,0x61, 0x4,0x6a,0x5c, 0x3,0x60,0x5f, 0x4,0x6b,0x76, - 0x4,0x6d,0x5c, 0x4,0x6d,0x76, 0x7,0x65,0x5d, 0x4,0x2a,0x77, - 0x3,0x33,0x2f, 0x3,0x33,0x33, 0x6,0x43,0x22, 0x4,0x34,0x25, - 0x5,0x34,0x59, 0x3,0x37,0x7c, 0x6,0x4c,0x60, 0x4,0x39,0x7b, - 0x4,0x39,0x7c, 0x3,0x3d,0x7d, 0x3,0x3d,0x7c, 0x4,0x39,0x7d, - 0x3,0x43,0x5a, 0x3,0x43,0x56, 0x3,0x43,0x57, 0x3,0x43,0x59, - 0x3,0x43,0x5b, 0x3,0x48,0x63, 0x4,0x45,0x72, 0x3,0x48,0x64, - 0x3,0x48,0x65, 0x6,0x60,0x2c, 0x3,0x48,0x66, 0x3,0x4d,0x6b, - 0x3,0x4d,0x6c, 0x3,0x4d,0x69, 0x3,0x4d,0x6a, 0x4,0x4c,0x37, - 0x7,0x26,0x57, 0x4,0x4c,0x35, 0x3,0x52,0x36, 0x4,0x57,0x6d, - 0x3,0x55,0x73, 0x3,0x55,0x72, 0x4,0x57,0x69, 0x4,0x57,0x6a, - 0x3,0x4d,0x74, 0x4,0x57,0x6b, 0x5,0x63,0x4e, 0x4,0x5c,0x56, - 0x3,0x58,0x52, 0x4,0x5c,0x55, 0x4,0x5c,0x54, 0x5,0x63,0x54, - 0x3,0x58,0x53, 0x3,0x5a,0x70, 0x4,0x60,0x5b, 0x4,0x60,0x5d, - 0x4,0x64,0x23, 0x3,0x5c,0x68, 0x7,0x54,0x3a, 0x5,0x70,0x70, - 0x4,0x6a,0x65, 0x5,0x76,0x39, 0x4,0x6c,0x7a, 0x3,0x61,0x45, - 0x4,0x27,0x5c, 0x6,0x33,0x64, 0x3,0x2e,0x57, 0x3,0x2e,0x55, - 0x3,0x2e,0x58, 0x4,0x2e,0x78, 0x4,0x2e,0x7e, 0x3,0x33,0x35, - 0x3,0x33,0x34, 0x4,0x2e,0x7c, 0x3,0x33,0x39, 0x4,0x2f,0x21, - 0x3,0x33,0x38, 0x4,0x2e,0x7d, 0x3,0x33,0x36, 0x3,0x33,0x3a, - 0x4,0x34,0x2e, 0x4,0x34,0x26, 0x3,0x38,0x23, 0x3,0x38,0x2a, - 0x4,0x34,0x27, 0x4,0x34,0x30, 0x3,0x38,0x2c, 0x4,0x34,0x2d, - 0x4,0x34,0x2b, 0x4,0x34,0x29, 0x3,0x38,0x28, 0x3,0x38,0x2d, - 0x3,0x38,0x25, 0x3,0x3e,0x36, 0x5,0x3b,0x2c, 0x3,0x3e,0x2d, - 0x3,0x3e,0x32, 0x3,0x3e,0x27, 0x3,0x3e,0x30, 0x3,0x3e,0x25, - 0x6,0x4c,0x71, 0x3,0x3e,0x31, 0x4,0x3f,0x6a, 0x3,0x43,0x65, - 0x3,0x43,0x6b, 0x4,0x3f,0x6e, 0x4,0x3f,0x73, 0x4,0x3f,0x6f, - 0x3,0x43,0x61, 0x3,0x43,0x5d, 0x3,0x48,0x6c, 0x4,0x45,0x75, - 0x4,0x45,0x7e, 0x4,0x45,0x79, 0x4,0x46,0x21, 0x3,0x48,0x67, - 0x3,0x43,0x5f, 0x3,0x48,0x72, 0x3,0x48,0x75, 0x4,0x46,0x23, - 0x5,0x48,0x54, 0x3,0x48,0x6f, 0x3,0x4e,0x2a, 0x5,0x4f,0x53, - 0x4,0x4c,0x3e, 0x4,0x4c,0x3c, 0x4,0x4c,0x40, 0x3,0x4d,0x7b, - 0x3,0x4e,0x21, 0x3,0x4e,0x2d, 0x3,0x4d,0x76, 0x3,0x4d,0x79, - 0x4,0x4c,0x3a, 0x4,0x4c,0x3d, 0x4,0x4c,0x3f, 0x3,0x4d,0x7a, - 0x4,0x4c,0x44, 0x5,0x4f,0x54, 0x3,0x4e,0x26, 0x3,0x4e,0x23, - 0x3,0x52,0x3a, 0x4,0x52,0x49, 0x3,0x52,0x3c, 0x4,0x52,0x47, - 0x3,0x52,0x3d, 0x3,0x52,0x3e, 0x4,0x57,0x73, 0x3,0x55,0x78, - 0x5,0x5d,0x3f, 0x3,0x55,0x76, 0x5,0x5d,0x46, 0x3,0x55,0x77, - 0x4,0x57,0x6e, 0x3,0x55,0x7c, 0x3,0x55,0x7b, 0x7,0x3a,0x39, - 0x4,0x5c,0x62, 0x4,0x5c,0x60, 0x4,0x57,0x72, 0x3,0x58,0x57, - 0x3,0x58,0x56, 0x3,0x59,0x29, 0x4,0x60,0x66, 0x4,0x60,0x63, - 0x4,0x60,0x68, 0x4,0x60,0x62, 0x7,0x47,0x4a, 0x3,0x5a,0x73, - 0x3,0x5a,0x71, 0x5,0x6d,0x22, 0x3,0x5c,0x69, 0x4,0x64,0x24, - 0x3,0x5c,0x6a, 0x3,0x5c,0x6b, 0x3,0x5e,0x4f, 0x3,0x5e,0x4e, - 0x4,0x69,0x2a, 0x7,0x58,0x58, 0x3,0x5f,0x59, 0x4,0x69,0x2b, - 0x4,0x6a,0x66, 0x4,0x6b,0x79, 0x4,0x6b,0x78, 0x7,0x5f,0x33, - 0x3,0x60,0x78, 0x4,0x6c,0x7c, 0x4,0x6c,0x7b, 0x4,0x6d,0x77, - 0x4,0x2a,0x79, 0x4,0x2f,0x29, 0x3,0x38,0x2f, 0x3,0x38,0x32, - 0x5,0x34,0x60, 0x4,0x34,0x34, 0x3,0x38,0x30, 0x4,0x34,0x33, - 0x4,0x3a,0x28, 0x4,0x46,0x25, 0x3,0x48,0x76, 0x4,0x52,0x4e, - 0x4,0x6a,0x6b, 0xf,0x21,0x47, 0x3,0x2a,0x4d, 0x3,0x2e,0x5c, - 0x3,0x2e,0x5b, 0x3,0x2e,0x59, 0x4,0x2a,0x7b, 0x4,0x2f,0x2a, - 0x6,0x3a,0x6b, 0x4,0x2f,0x2d, 0x4,0x34,0x35, 0x4,0x3f,0x75, - 0x4,0x3a,0x2a, 0x3,0x43,0x6c, 0x3,0x43,0x6d, 0x5,0x41,0x65, - 0x3,0x48,0x7a, 0x3,0x48,0x7b, 0x4,0x52,0x4f, 0x4,0x57,0x75, - 0x4,0x5c,0x65, 0x4,0x60,0x6d, 0x4,0x66,0x7b, 0x4,0x6b,0x7b, - 0x6,0x3a,0x74, 0x4,0x2f,0x2e, 0x3,0x31,0x3f, 0x4,0x34,0x38, - 0x4,0x34,0x36, 0x4,0x34,0x37, 0x6,0x43,0x3c, 0x4,0x3a,0x2d, - 0x4,0x3a,0x31, 0x4,0x3a,0x30, 0x4,0x3f,0x76, 0x3,0x48,0x7e, - 0x4,0x46,0x27, 0x3,0x48,0x7d, 0x4,0x46,0x28, 0x3,0x48,0x7c, - 0x4,0x4c,0x49, 0x4,0x52,0x53, 0x3,0x52,0x41, 0x4,0x57,0x77, - 0x4,0x5c,0x6a, 0x4,0x5c,0x6b, 0x4,0x69,0x2c, 0x3,0x33,0x40, - 0x3,0x33,0x41, 0x4,0x34,0x3a, 0x3,0x38,0x33, 0x4,0x34,0x3b, - 0x4,0x34,0x3e, 0x4,0x34,0x3c, 0x3,0x38,0x35, 0x3,0x38,0x34, - 0x4,0x3a,0x34, 0x4,0x3a,0x35, 0x5,0x3b,0x3a, 0x4,0x3a,0x33, - 0x3,0x43,0x70, 0x4,0x3f,0x78, 0x3,0x43,0x71, 0x4,0x3f,0x77, - 0x3,0x43,0x6f, 0x3,0x49,0x21, 0x4,0x46,0x2a, 0x4,0x46,0x29, - 0x4,0x46,0x2b, 0x4,0x52,0x55, 0x4,0x52,0x56, 0x3,0x58,0x5e, - 0x3,0x58,0x60, 0x3,0x58,0x5f, 0x3,0x5c,0x6e, 0x4,0x66,0x7d, - 0x3,0x3e,0x39, 0x3,0x3e,0x3a, 0x4,0x2b,0x27, 0x4,0x2b,0x28, - 0x4,0x2f,0x38, 0x4,0x2b,0x29, 0x3,0x38,0x38, 0x4,0x3f,0x7a, - 0x4,0x46,0x2e, 0x4,0x46,0x2d, 0x4,0x46,0x2f, 0x4,0x46,0x32, - 0x4,0x46,0x30, 0x4,0x4c,0x4f, 0x4,0x57,0x7d, 0x4,0x57,0x7a, - 0x4,0x57,0x7b, 0x4,0x5c,0x70, 0x4,0x67,0x21, 0x4,0x24,0x6d, - 0x3,0x33,0x46, 0x3,0x33,0x45, 0x3,0x38,0x3a, 0x4,0x34,0x41, - 0x4,0x3a,0x39, 0x5,0x41,0x70, 0x3,0x43,0x74, 0x4,0x46,0x36, - 0x4,0x46,0x34, 0x4,0x46,0x35, 0x4,0x46,0x37, 0x3,0x49,0x24, - 0x3,0x4e,0x33, 0x4,0x4c,0x52, 0x4,0x52,0x5a, 0x3,0x52,0x42, - 0x4,0x52,0x5b, 0x4,0x58,0x21, 0x4,0x58,0x24, 0x4,0x58,0x23, - 0x4,0x58,0x22, 0x3,0x58,0x64, 0x4,0x64,0x28, 0x3,0x5f,0x5c, - 0x6,0x56,0x6d, 0x4,0x23,0x2d, 0x6,0x25,0x49, 0x4,0x24,0x6f, - 0x4,0x24,0x6e, 0x3,0x2a,0x51, 0x6,0x3b,0x28, 0x3,0x2a,0x55, - 0x3,0x2a,0x50, 0x4,0x27,0x66, 0xf,0x28,0x52, 0x4,0x27,0x62, - 0x4,0x27,0x67, 0x4,0x27,0x63, 0x4,0x27,0x65, 0x5,0x27,0x58, - 0x3,0x2a,0x5a, 0x3,0x2a,0x53, 0x5,0x2b,0x33, 0x4,0x2b,0x2f, - 0x4,0x2b,0x2a, 0x4,0x2b,0x2c, 0x3,0x2e,0x62, 0x3,0x2e,0x5f, - 0x6,0x33,0x7d, 0x5,0x2b,0x39, 0x3,0x33,0x51, 0x4,0x2f,0x41, - 0x4,0x2f,0x46, 0x4,0x2f,0x47, 0x4,0x2f,0x3f, 0x6,0x3b,0x31, - 0x5,0x2f,0x6d, 0x3,0x38,0x46, 0x4,0x34,0x4c, 0x4,0x34,0x48, - 0x3,0x38,0x44, 0x4,0x34,0x4b, 0x4,0x34,0x52, 0x4,0x34,0x51, - 0x4,0x34,0x4a, 0x4,0x34,0x53, 0x6,0x43,0x58, 0x3,0x38,0x40, - 0x3,0x38,0x3f, 0x3,0x38,0x43, 0x4,0x3a,0x49, 0x4,0x3a,0x3a, - 0x3,0x3e,0x3f, 0x4,0x3a,0x45, 0x5,0x3b,0x4d, 0x4,0x3a,0x4a, - 0x4,0x3a,0x41, 0x4,0x3a,0x40, 0x4,0x3a,0x42, 0x4,0x3a,0x3d, - 0x3,0x3e,0x46, 0x4,0x3a,0x3f, 0x4,0x3a,0x44, 0x4,0x3a,0x4b, - 0x6,0x49,0x7e, 0x6,0x4d,0x54, 0x6,0x56,0x76, 0x4,0x40,0x27, - 0x3,0x43,0x78, 0x4,0x40,0x2a, 0x4,0x40,0x23, 0x4,0x40,0x26, - 0x3,0x43,0x7a, 0x4,0x3f,0x7d, 0x4,0x40,0x28, 0x3,0x44,0x21, - 0x4,0x40,0x2c, 0x3,0x43,0x7d, 0x3,0x43,0x79, 0x5,0x34,0x6a, - 0x4,0x40,0x25, 0x4,0x46,0x45, 0x4,0x46,0x3e, 0x4,0x46,0x3c, - 0x4,0x46,0x3d, 0x4,0x46,0x3f, 0x3,0x52,0x48, 0x4,0x46,0x42, - 0x4,0x46,0x40, 0x4,0x46,0x3b, 0x3,0x49,0x29, 0x3,0x49,0x28, - 0x4,0x46,0x38, 0x4,0x46,0x47, 0x4,0x46,0x41, 0x4,0x4c,0x5d, - 0x4,0x4c,0x58, 0x4,0x4c,0x5e, 0x4,0x4c,0x55, 0x4,0x4c,0x5c, - 0x6,0x60,0x6f, 0x4,0x4c,0x54, 0x4,0x4c,0x5b, 0x4,0x4c,0x5f, - 0x5,0x42,0x28, 0x4,0x52,0x63, 0x4,0x52,0x64, 0x3,0x52,0x46, - 0x3,0x52,0x45, 0x4,0x52,0x5e, 0x4,0x52,0x61, 0x4,0x52,0x62, - 0x4,0x52,0x66, 0xf,0x51,0x55, 0x5,0x5d,0x5b, 0x4,0x58,0x2b, - 0x4,0x58,0x28, 0x4,0x58,0x2c, 0x4,0x5c,0x74, 0x3,0x58,0x66, - 0x4,0x5c,0x76, 0x3,0x58,0x67, 0x3,0x5a,0x76, 0x4,0x60,0x74, - 0x4,0x60,0x73, 0x5,0x6d,0x2c, 0x4,0x64,0x2a, 0x4,0x67,0x22, - 0x4,0x67,0x24, 0x4,0x67,0x23, 0x4,0x67,0x25, 0x4,0x69,0x30, - 0x6,0x43,0x64, 0x7,0x42,0x24, 0x3,0x2b,0x44, 0x3,0x44,0x24, - 0x4,0x2f,0x4a, 0x4,0x34,0x58, 0x4,0x4c,0x63, 0x4,0x52,0x6b, - 0x3,0x33,0x53, 0x3,0x33,0x54, 0x3,0x38,0x4a, 0x4,0x4c,0x64, - 0x6,0x61,0x21, 0x3,0x52,0x4b, 0x3,0x5e,0x54, 0x4,0x27,0x6f, - 0x4,0x2b,0x33, 0x4,0x2b,0x32, 0x3,0x2e,0x67, 0x3,0x33,0x56, - 0x4,0x2f,0x50, 0x3,0x38,0x4b, 0x6,0x43,0x71, 0x6,0x43,0x70, - 0x3,0x3e,0x4a, 0x4,0x3a,0x4e, 0x4,0x3a,0x4f, 0x6,0x4d,0x63, - 0x5,0x42,0x2d, 0x4,0x40,0x2f, 0x4,0x46,0x4f, 0x4,0x46,0x51, - 0x4,0x46,0x50, 0x3,0x49,0x2c, 0x6,0x61,0x24, 0x5,0x49,0x2c, - 0x3,0x4e,0x3e, 0x4,0x4c,0x68, 0x4,0x4c,0x65, 0x4,0x52,0x6c, - 0x4,0x52,0x6d, 0x4,0x58,0x30, 0x4,0x58,0x34, 0x4,0x58,0x33, - 0x3,0x56,0x25, 0x3,0x56,0x26, 0x5,0x5d,0x67, 0x5,0x5c,0x4d, - 0x4,0x58,0x32, 0x4,0x5c,0x7c, 0x4,0x64,0x2d, 0x4,0x2f,0x53, - 0x4,0x34,0x5c, 0x4,0x52,0x6f, 0x4,0x52,0x6e, 0x4,0x58,0x35, - 0x4,0x5c,0x7d, 0x4,0x69,0x33, 0x6,0x25,0x4f, 0x3,0x24,0x37, - 0x3,0x24,0x39, 0x3,0x27,0x27, 0x4,0x24,0x76, 0x4,0x24,0x7d, - 0x3,0x27,0x2c, 0x3,0x2a,0x63, 0x3,0x2a,0x67, 0x3,0x2a,0x64, - 0x3,0x2a,0x6a, 0x4,0x27,0x72, 0x3,0x2a,0x62, 0x4,0x28,0x21, - 0x4,0x27,0x73, 0x3,0x2a,0x65, 0x3,0x2a,0x69, 0x5,0x27,0x63, - 0x3,0x2a,0x61, 0x3,0x2e,0x6d, 0x4,0x2b,0x36, 0x3,0x2e,0x70, - 0x3,0x2e,0x71, 0x3,0x2e,0x6c, 0x3,0x2e,0x73, 0x3,0x2e,0x75, - 0x6,0x34,0x3a, 0x4,0x2f,0x55, 0x3,0x33,0x61, 0x4,0x2f,0x61, - 0x3,0x33,0x64, 0x3,0x33,0x5b, 0x3,0x33,0x5e, 0x6,0x3b,0x56, - 0x3,0x33,0x5d, 0x4,0x2f,0x5e, 0x3,0x33,0x5c, 0x3,0x33,0x65, - 0x5,0x30,0x21, 0x4,0x2f,0x59, 0x4,0x2f,0x64, 0x3,0x33,0x60, - 0x4,0x34,0x5e, 0x4,0x34,0x6c, 0x4,0x34,0x71, 0x3,0x38,0x5a, - 0x4,0x34,0x69, 0x4,0x34,0x65, 0x3,0x38,0x56, 0x4,0x34,0x66, - 0x4,0x34,0x62, 0x4,0x34,0x5d, 0x4,0x34,0x63, 0x6,0x44,0x2c, - 0x3,0x38,0x4c, 0x6,0x44,0x28, 0x5,0x35,0x2a, 0x3,0x38,0x59, - 0x3,0x38,0x5c, 0x5,0x35,0x24, 0x4,0x3a,0x6c, 0x4,0x3a,0x60, - 0x4,0x3a,0x5f, 0x4,0x3a,0x64, 0x4,0x3a,0x59, 0x5,0x3b,0x56, - 0x4,0x3a,0x5b, 0x4,0x3a,0x56, 0x3,0x3e,0x53, 0x4,0x3a,0x5e, - 0x3,0x3e,0x54, 0x3,0x3e,0x51, 0x4,0x3a,0x5c, 0x4,0x3a,0x61, - 0x3,0x3e,0x55, 0x6,0x4e,0x27, 0x3,0x3e,0x4c, 0xf,0x3e,0x6b, - 0x4,0x40,0x30, 0x4,0x40,0x32, 0x4,0x3a,0x65, 0x3,0x44,0x37, - 0x4,0x46,0x69, 0x4,0x40,0x47, 0x4,0x40,0x49, 0x4,0x40,0x3a, - 0x3,0x44,0x2b, 0x3,0x44,0x29, 0x3,0x44,0x34, 0x4,0x40,0x48, - 0x3,0x44,0x3d, 0x4,0x40,0x4c, 0x4,0x46,0x65, 0x3,0x49,0x2f, - 0x4,0x46,0x57, 0x6,0x61,0x44, 0x4,0x46,0x64, 0x3,0x49,0x31, - 0x4,0x46,0x53, 0x5,0x49,0x3c, 0x4,0x46,0x61, 0x3,0x49,0x30, - 0x4,0x46,0x6d, 0x4,0x46,0x60, 0x4,0x46,0x5c, 0x3,0x49,0x34, - 0x5,0x49,0x3b, 0x6,0x61,0x58, 0x3,0x49,0x37, 0x3,0x49,0x40, - 0x3,0x4e,0x43, 0x4,0x4c,0x72, 0x3,0x4e,0x3f, 0x4,0x4c,0x70, - 0x4,0x4d,0x24, 0x4,0x4c,0x6b, 0x3,0x4e,0x41, 0x4,0x4c,0x71, - 0x3,0x4e,0x53, 0x4,0x4c,0x6d, 0x4,0x4c,0x73, 0x3,0x4e,0x47, - 0x3,0x4e,0x45, 0x3,0x4e,0x56, 0x4,0x4c,0x7d, 0x3,0x52,0x51, - 0x4,0x4c,0x6c, 0x3,0x4e,0x4a, 0x4,0x4c,0x6e, 0x3,0x4e,0x48, - 0x3,0x4e,0x55, 0x3,0x4e,0x49, 0x5,0x50,0x46, 0x3,0x4e,0x50, - 0xf,0x51,0x65, 0xf,0x51,0x73, 0xf,0x51,0x76, 0x4,0x4d,0x21, - 0x4,0x4c,0x6f, 0x3,0x4e,0x51, 0x4,0x4c,0x77, 0x4,0x52,0x77, - 0x4,0x52,0x7b, 0x4,0x52,0x79, 0x4,0x53,0x2c, 0x4,0x53,0x21, - 0x4,0x52,0x76, 0x3,0x52,0x53, 0x4,0x53,0x25, 0x3,0x52,0x57, - 0x4,0x52,0x7e, 0x3,0x52,0x4d, 0x4,0x53,0x23, 0x4,0x52,0x7a, - 0x4,0x52,0x7c, 0x4,0x52,0x72, 0x5,0x64,0x2d, 0x3,0x52,0x4c, - 0x4,0x53,0x22, 0x4,0x52,0x73, 0x3,0x52,0x4e, 0x4,0x53,0x27, - 0x4,0x53,0x31, 0x4,0x46,0x67, 0x4,0x58,0x44, 0x4,0x58,0x3c, - 0x4,0x58,0x38, 0x4,0x58,0x42, 0x5,0x5d,0x79, 0x4,0x58,0x36, - 0x4,0x58,0x3b, 0x3,0x56,0x2e, 0x3,0x56,0x27, 0x4,0x58,0x3d, - 0x3,0x56,0x2a, 0x3,0x56,0x2f, 0x3,0x58,0x69, 0x4,0x5c,0x7e, - 0x4,0x5d,0x2b, 0x3,0x58,0x6d, 0x3,0x58,0x70, 0x3,0x58,0x6a, - 0x3,0x58,0x71, 0x4,0x5d,0x23, 0x7,0x42,0x38, 0x4,0x5d,0x21, - 0xf,0x60,0x4e, 0x7,0x3b,0x32, 0x4,0x60,0x77, 0x3,0x5c,0x73, - 0x3,0x5b,0x23, 0x4,0x60,0x78, 0x3,0x5b,0x21, 0x3,0x5b,0x24, - 0x7,0x49,0x53, 0x4,0x64,0x2f, 0x4,0x64,0x34, 0x3,0x5c,0x7d, - 0x4,0x64,0x33, 0x3,0x5c,0x74, 0x7,0x54,0x68, 0x3,0x5c,0x79, - 0x4,0x64,0x32, 0x4,0x64,0x38, 0x3,0x5c,0x7a, 0x4,0x64,0x30, - 0x3,0x5c,0x75, 0x4,0x64,0x36, 0x4,0x67,0x27, 0x3,0x5e,0x59, - 0x4,0x67,0x28, 0xf,0x68,0x39, 0x3,0x5f,0x5d, 0x4,0x69,0x37, - 0x7,0x58,0x72, 0x3,0x60,0x41, 0x3,0x60,0x42, 0x5,0x78,0x25, - 0x4,0x6b,0x7d, 0x4,0x6d,0x5e, 0x4,0x6c,0x7d, 0x3,0x61,0x6a, - 0x4,0x6d,0x79, 0x4,0x6d,0x7b, 0xf,0x6c,0x6c, 0x4,0x6e,0x37, - 0x4,0x6e,0x36, 0x5,0x7c,0x3e, 0x3,0x2a,0x6d, 0x4,0x2b,0x3e, - 0x4,0x2f,0x67, 0x3,0x33,0x67, 0x3,0x33,0x66, 0x3,0x33,0x68, - 0x5,0x35,0x35, 0x3,0x38,0x62, 0x5,0x3b,0x70, 0x3,0x3e,0x60, - 0x3,0x44,0x41, 0x5,0x42,0x54, 0x5,0x42,0x53, 0x3,0x44,0x42, - 0x3,0x44,0x43, 0x4,0x4d,0x26, 0x4,0x53,0x36, 0x4,0x5d,0x32, - 0x5,0x64,0x3b, 0x5,0x64,0x3a, 0x4,0x64,0x3a, 0x3,0x27,0x2e, - 0x3,0x2e,0x7d, 0x3,0x2f,0x21, 0x3,0x2f,0x22, 0x4,0x2f,0x69, - 0x4,0x2f,0x6b, 0x6,0x3b,0x69, 0x3,0x38,0x68, 0x3,0x38,0x67, - 0x4,0x34,0x7c, 0x3,0x38,0x65, 0x4,0x34,0x7b, 0x4,0x34,0x79, - 0x5,0x3c,0x26, 0x6,0x44,0x48, 0x4,0x3a,0x72, 0x3,0x3e,0x67, - 0x4,0x3a,0x74, 0x3,0x3e,0x65, 0x5,0x3b,0x74, 0x4,0x3a,0x70, - 0x4,0x3a,0x6d, 0x3,0x3e,0x64, 0x3,0x3e,0x66, 0x4,0x40,0x56, - 0x4,0x40,0x57, 0x3,0x44,0x4b, 0x3,0x44,0x47, 0x4,0x40,0x5b, - 0x4,0x3a,0x6e, 0x4,0x40,0x5d, 0x3,0x44,0x4a, 0x4,0x46,0x78, - 0x3,0x49,0x46, 0x4,0x46,0x72, 0x4,0x46,0x73, 0x4,0x46,0x71, - 0x4,0x46,0x75, 0x3,0x49,0x47, 0x4,0x46,0x70, 0x4,0x46,0x76, - 0x6,0x61,0x69, 0x3,0x49,0x48, 0x4,0x46,0x7b, 0x3,0x4e,0x5a, - 0x3,0x4e,0x5c, 0x7,0x28,0x42, 0x3,0x4e,0x57, 0x3,0x4e,0x58, - 0x4,0x4d,0x30, 0x3,0x4e,0x5b, 0x4,0x46,0x79, 0x4,0x4d,0x36, - 0x4,0x4d,0x2f, 0x3,0x49,0x4d, 0x4,0x53,0x3e, 0x3,0x52,0x5c, - 0x7,0x32,0x73, 0x4,0x53,0x3d, 0x4,0x58,0x4d, 0x3,0x52,0x60, - 0x7,0x32,0x75, 0x3,0x52,0x61, 0x5,0x5e,0x32, 0x4,0x58,0x57, - 0x4,0x58,0x52, 0x3,0x56,0x37, 0x4,0x58,0x58, 0x4,0x58,0x4f, - 0x4,0x58,0x56, 0x3,0x56,0x38, 0x4,0x58,0x4e, 0x3,0x56,0x32, - 0x4,0x58,0x54, 0x4,0x58,0x5f, 0x3,0x56,0x35, 0x3,0x56,0x3c, - 0x3,0x56,0x31, 0x4,0x5d,0x3b, 0x5,0x5e,0x35, 0x4,0x5d,0x39, - 0x3,0x58,0x72, 0x4,0x61,0x24, 0x5,0x69,0x41, 0x3,0x5b,0x2a, - 0x4,0x61,0x21, 0x4,0x61,0x25, 0xf,0x63,0x6e, 0x5,0x6d,0x4b, - 0x4,0x64,0x3b, 0x4,0x64,0x3c, 0x4,0x64,0x40, 0x4,0x64,0x3e, - 0x4,0x64,0x41, 0x3,0x5d,0x26, 0x3,0x5e,0x5e, 0x4,0x67,0x30, - 0x4,0x64,0x3d, 0x4,0x69,0x3e, 0x3,0x5f,0x5e, 0x3,0x5f,0x60, - 0x3,0x60,0x44, 0x7,0x59,0x25, 0x7,0x5c,0x5e, 0x4,0x6a,0x78, - 0x7,0x5c,0x63, 0x3,0x61,0x48, 0x4,0x6e,0x39, 0x3,0x2f,0x25, - 0x6,0x3b,0x73, 0x3,0x38,0x69, 0x3,0x44,0x4c, 0x4,0x47,0x23, - 0x4,0x4d,0x37, 0x4,0x2f,0x6f, 0x4,0x3a,0x78, 0x3,0x4e,0x5e, - 0x4,0x53,0x4a, 0x3,0x5b,0x2e, 0x3,0x2a,0x6e, 0x3,0x2f,0x28, - 0x4,0x2b,0x46, 0x5,0x30,0x3d, 0x4,0x2f,0x72, 0x5,0x30,0x39, - 0x4,0x35,0x2a, 0x4,0x3a,0x7a, 0x4,0x35,0x2d, 0x4,0x35,0x2e, - 0x4,0x35,0x2c, 0xf,0x32,0x51, 0x4,0x3a,0x79, 0x3,0x3e,0x71, - 0x4,0x35,0x30, 0x3,0x3e,0x6e, 0x3,0x3e,0x6c, 0x3,0x3e,0x6b, - 0x3,0x2f,0x4a, 0x4,0x40,0x62, 0x4,0x47,0x25, 0x6,0x58,0x2b, - 0x3,0x49,0x53, 0x4,0x47,0x2d, 0x5,0x49,0x6c, 0x5,0x49,0x6d, - 0x4,0x40,0x66, 0x4,0x47,0x31, 0x4,0x47,0x27, 0x3,0x49,0x55, - 0x4,0x40,0x60, 0x4,0x47,0x2a, 0x4,0x47,0x2e, 0x4,0x47,0x26, - 0x4,0x47,0x2b, 0x3,0x49,0x5a, 0x3,0x49,0x50, 0x3,0x49,0x5b, - 0x4,0x4d,0x3c, 0x4,0x4d,0x3f, 0x4,0x4d,0x3a, 0x4,0x4d,0x39, - 0x4,0x4d,0x42, 0x4,0x4d,0x40, 0x4,0x4d,0x47, 0x4,0x53,0x52, - 0x4,0x53,0x55, 0x4,0x53,0x56, 0x3,0x4e,0x63, 0x4,0x53,0x4f, - 0x4,0x58,0x63, 0x4,0x58,0x67, 0x3,0x56,0x45, 0x3,0x56,0x43, - 0x4,0x58,0x64, 0x3,0x56,0x3e, 0x7,0x3b,0x59, 0x3,0x56,0x44, - 0x4,0x58,0x65, 0x3,0x56,0x41, 0x5,0x64,0x56, 0x4,0x5d,0x4a, - 0x4,0x5d,0x48, 0x4,0x5d,0x49, 0x4,0x5d,0x44, 0x4,0x5d,0x46, - 0x4,0x61,0x2a, 0x7,0x43,0x22, 0x4,0x64,0x43, 0x7,0x50,0x25, - 0x3,0x5d,0x27, 0x4,0x64,0x44, 0x3,0x5e,0x5f, 0x4,0x6a,0x7b, - 0x7,0x59,0x32, 0x3,0x60,0x7a, 0x4,0x6c,0x26, 0x3,0x60,0x79, - 0x4,0x6d,0x7d, 0x5,0x2b,0x47, 0x4,0x2f,0x73, 0x4,0x35,0x31, - 0x4,0x3b,0x21, 0x3,0x33,0x79, 0x3,0x33,0x78, 0x4,0x35,0x33, - 0x4,0x35,0x35, 0x4,0x3b,0x23, 0x5,0x3c,0x35, 0x4,0x3b,0x22, - 0x3,0x3e,0x73, 0x3,0x44,0x50, 0x3,0x44,0x51, 0x4,0x47,0x36, - 0x4,0x47,0x38, 0x4,0x4d,0x4a, 0x4,0x4d,0x48, 0x4,0x53,0x5a, - 0x4,0x53,0x5b, 0x5,0x58,0x32, 0x4,0x53,0x5c, 0x5,0x5e,0x43, - 0x4,0x58,0x68, 0x4,0x58,0x69, 0x4,0x5d,0x4e, 0x4,0x5d,0x50, - 0x4,0x61,0x2d, 0x4,0x61,0x2e, 0x3,0x5b,0x30, 0x4,0x61,0x2c, - 0x4,0x61,0x30, 0x3,0x5e,0x60, 0x3,0x62,0x3c, 0x4,0x35,0x3a, - 0x3,0x44,0x53, 0x4,0x40,0x67, 0x3,0x44,0x52, 0x4,0x47,0x3a, - 0x4,0x4d,0x51, 0x4,0x4d,0x4c, 0x4,0x4d,0x4e, 0x4,0x4d,0x53, - 0x4,0x4d,0x4f, 0x4,0x53,0x64, 0x4,0x53,0x61, 0x4,0x53,0x62, - 0x4,0x58,0x6b, 0x4,0x58,0x6a, 0x5,0x64,0x63, 0x4,0x61,0x31, - 0x4,0x61,0x34, 0x4,0x64,0x46, 0x4,0x64,0x47, 0x4,0x6d,0x22, - 0x3,0x2f,0x2b, 0x5,0x2b,0x49, 0x3,0x2f,0x2d, 0x4,0x2f,0x7e, - 0x3,0x33,0x7d, 0x4,0x35,0x41, 0x3,0x38,0x7c, 0x3,0x38,0x78, - 0x5,0x35,0x57, 0x4,0x35,0x44, 0x5,0x35,0x5e, 0x3,0x39,0x24, - 0x3,0x39,0x28, 0x3,0x39,0x21, 0x4,0x35,0x3f, 0x3,0x38,0x7d, - 0x3,0x39,0x27, 0x4,0x35,0x43, 0x5,0x35,0x5d, 0x6,0x44,0x6d, - 0x3,0x39,0x26, 0x5,0x35,0x56, 0x4,0x3b,0x33, 0x3,0x3e,0x79, - 0x3,0x3e,0x7a, 0x4,0x3b,0x36, 0x4,0x3b,0x35, 0x3,0x3e,0x76, - 0x3,0x3e,0x7b, 0x3,0x3e,0x77, 0x4,0x3b,0x34, 0x4,0x3b,0x2a, - 0x4,0x3b,0x29, 0x4,0x3b,0x2b, 0x3,0x3f,0x26, 0x6,0x4e,0x6b, - 0x3,0x3f,0x25, 0x3,0x44,0x57, 0x6,0x58,0x41, 0x3,0x44,0x5e, - 0x4,0x40,0x6e, 0x4,0x40,0x6d, 0x4,0x40,0x6c, 0x3,0x44,0x5a, - 0x3,0x44,0x5f, 0x3,0x44,0x62, 0x4,0x47,0x3d, 0x4,0x47,0x40, - 0x4,0x47,0x4a, 0x4,0x47,0x3c, 0x3,0x49,0x6a, 0x4,0x47,0x46, - 0x4,0x47,0x42, 0x3,0x49,0x61, 0x4,0x47,0x43, 0x3,0x49,0x69, - 0x3,0x49,0x67, 0x3,0x49,0x5d, 0x4,0x4d,0x59, 0x4,0x4d,0x56, - 0x4,0x4d,0x5c, 0x4,0x4d,0x5e, 0x3,0x4e,0x68, 0x4,0x4d,0x61, - 0x4,0x4d,0x58, 0x4,0x4d,0x5b, 0x3,0x4e,0x6d, 0x4,0x4d,0x5f, - 0x4,0x4d,0x5a, 0x3,0x4e,0x6b, 0x4,0x4d,0x60, 0x7,0x28,0x79, - 0x4,0x4d,0x55, 0x3,0x4e,0x71, 0x4,0x53,0x6a, 0x3,0x52,0x6c, - 0x3,0x52,0x6d, 0x7,0x33,0x4d, 0x4,0x53,0x6b, 0x3,0x56,0x47, - 0x4,0x58,0x70, 0x3,0x56,0x4b, 0x3,0x56,0x4c, 0x5,0x5e,0x55, - 0x4,0x5d,0x5a, 0x7,0x4a,0x25, 0x4,0x5d,0x57, 0x4,0x5d,0x5b, - 0x3,0x59,0x22, 0x3,0x59,0x25, 0x4,0x5d,0x54, 0x3,0x59,0x27, - 0x4,0x61,0x40, 0x5,0x69,0x52, 0x3,0x5b,0x33, 0x4,0x61,0x3b, - 0x4,0x61,0x3d, 0x4,0x61,0x45, 0x5,0x69,0x51, 0x4,0x64,0x4e, - 0x3,0x5d,0x2d, 0x7,0x50,0x31, 0x4,0x64,0x4c, 0x3,0x5d,0x2f, - 0x4,0x64,0x48, 0x3,0x5d,0x31, 0x4,0x67,0x3d, 0x4,0x67,0x3f, - 0x7,0x55,0x32, 0x4,0x67,0x3e, 0x4,0x67,0x40, 0x4,0x67,0x39, - 0x7,0x59,0x38, 0x3,0x5f,0x63, 0x4,0x69,0x48, 0x5,0x76,0x4c, - 0x4,0x2b,0x49, 0x4,0x30,0x23, 0x6,0x4e,0x7a, 0x3,0x3f,0x27, - 0x4,0x47,0x4c, 0x3,0x4e,0x77, 0x4,0x58,0x75, 0x4,0x5d,0x61, - 0x4,0x69,0x4c, 0x4,0x35,0x4a, 0x3,0x3f,0x28, 0x4,0x40,0x74, - 0x4,0x47,0x4e, 0x4,0x47,0x4f, 0x3,0x49,0x6c, 0x4,0x4d,0x64, - 0x3,0x52,0x70, 0x4,0x53,0x73, 0x3,0x52,0x6f, 0x4,0x53,0x72, - 0x3,0x52,0x71, 0x4,0x58,0x76, 0x4,0x58,0x77, 0x3,0x56,0x4e, - 0x4,0x67,0x44, 0x4,0x6d,0x24, 0x4,0x30,0x25, 0x4,0x35,0x4b, - 0x6,0x45,0x22, 0x4,0x35,0x4c, 0xf,0x44,0x74, 0x4,0x4d,0x67, - 0x4,0x4d,0x65, 0x4,0x4d,0x68, 0x4,0x53,0x75, 0x4,0x53,0x77, - 0x4,0x5d,0x64, 0x4,0x61,0x48, 0x4,0x61,0x46, 0x4,0x67,0x45, - 0x3,0x5f,0x65, 0x3,0x61,0x4c, 0x4,0x6d,0x25, 0x4,0x35,0x50, - 0x6,0x45,0x24, 0x3,0x39,0x2f, 0x4,0x3b,0x3e, 0x3,0x49,0x6e, - 0x3,0x4e,0x79, 0x3,0x4e,0x78, 0x3,0x52,0x72, 0x3,0x56,0x50, - 0x3,0x59,0x2c, 0x3,0x59,0x2d, 0x4,0x61,0x4a, 0x7,0x4a,0x41, - 0x3,0x5b,0x37, 0x4,0x5d,0x68, 0x4,0x35,0x51, 0x4,0x35,0x54, - 0x5,0x3c,0x4c, 0x4,0x3b,0x3f, 0x4,0x3b,0x41, 0x3,0x3f,0x2e, - 0x4,0x3b,0x42, 0x6,0x4f,0x29, 0x4,0x3b,0x43, 0x4,0x41,0x21, - 0x3,0x44,0x66, 0x3,0x44,0x68, 0x5,0x4a,0x29, 0x6,0x62,0x6a, - 0x3,0x49,0x6f, 0x3,0x4e,0x7b, 0x3,0x4e,0x7c, 0x4,0x4d,0x6e, - 0x4,0x4d,0x6c, 0x7,0x29,0x36, 0x4,0x4d,0x6d, 0x5,0x51,0x39, - 0x3,0x4f,0x21, 0x3,0x52,0x74, 0x4,0x53,0x7d, 0x4,0x53,0x79, - 0x4,0x53,0x7b, 0x4,0x53,0x7a, 0x3,0x52,0x76, 0x7,0x3c,0x33, - 0x4,0x58,0x7a, 0xf,0x60,0x7a, 0x4,0x53,0x7e, 0x3,0x5d,0x35, - 0x3,0x5e,0x64, 0x4,0x6b,0x21, 0x5,0x30,0x4b, 0x5,0x43,0x34, - 0x4,0x47,0x59, 0x4,0x47,0x58, 0x4,0x67,0x48, 0x5,0x30,0x4c, - 0x4,0x30,0x27, 0x4,0x30,0x28, 0x4,0x35,0x55, 0x4,0x35,0x56, - 0x3,0x39,0x34, 0x3,0x39,0x36, 0x3,0x3f,0x31, 0x4,0x3b,0x45, - 0x3,0x3f,0x36, 0x3,0x3f,0x32, 0x5,0x3c,0x52, 0x3,0x3f,0x35, - 0x4,0x3b,0x48, 0x4,0x3b,0x47, 0x4,0x41,0x26, 0x4,0x41,0x27, - 0x5,0x43,0x3c, 0x3,0x44,0x6a, 0x4,0x41,0x28, 0x5,0x43,0x38, - 0x4,0x47,0x5a, 0x6,0x62,0x75, 0x4,0x47,0x5b, 0x3,0x49,0x76, - 0x5,0x4a,0x34, 0x3,0x49,0x77, 0x5,0x4a,0x32, 0x3,0x4f,0x27, - 0x4,0x4d,0x73, 0x4,0x4d,0x71, 0x3,0x4f,0x24, 0x4,0x4d,0x74, - 0x7,0x29,0x3d, 0x4,0x54,0x26, 0x5,0x58,0x5c, 0x5,0x58,0x55, - 0x3,0x52,0x78, 0x4,0x58,0x7d, 0x4,0x59,0x25, 0x4,0x58,0x7c, - 0x5,0x5e,0x6d, 0x4,0x5d,0x6d, 0x3,0x59,0x2f, 0x4,0x5d,0x6c, - 0x4,0x5d,0x6a, 0x4,0x5d,0x6e, 0x3,0x59,0x30, 0x4,0x61,0x4d, - 0x3,0x5d,0x36, 0x4,0x64,0x55, 0x4,0x64,0x53, 0x4,0x64,0x56, - 0x4,0x67,0x4a, 0x4,0x69,0x4e, 0x3,0x5f,0x66, 0x4,0x69,0x4f, - 0x4,0x6b,0x23, 0x4,0x6c,0x28, 0x4,0x6d,0x27, 0x4,0x2b,0x4c, - 0x3,0x2f,0x2f, 0x4,0x30,0x2a, 0x3,0x33,0x7e, 0x4,0x35,0x5e, - 0x4,0x35,0x59, 0x5,0x35,0x72, 0x3,0x39,0x3b, 0x4,0x35,0x5b, - 0x4,0x35,0x5c, 0x4,0x35,0x5d, 0x3,0x39,0x3c, 0x5,0x3c,0x63, - 0x4,0x3b,0x4c, 0x4,0x3b,0x50, 0x3,0x3f,0x3d, 0x4,0x3b,0x4d, - 0x4,0x3b,0x49, 0x6,0x4f,0x36, 0x6,0x4f,0x3c, 0x5,0x3c,0x5c, - 0x4,0x3b,0x4a, 0x4,0x3b,0x4b, 0x4,0x3b,0x4f, 0x3,0x3f,0x3c, - 0x5,0x3c,0x5f, 0x4,0x3b,0x51, 0x4,0x41,0x29, 0x5,0x43,0x4b, - 0x3,0x44,0x6c, 0x3,0x44,0x6e, 0xf,0x45,0x58, 0x5,0x4a,0x3e, - 0x4,0x47,0x5e, 0x4,0x47,0x61, 0x4,0x47,0x5f, 0x4,0x47,0x62, - 0x4,0x47,0x65, 0x3,0x49,0x78, 0x4,0x47,0x64, 0x3,0x4f,0x28, - 0x3,0x44,0x6f, 0x4,0x4d,0x77, 0x4,0x4e,0x22, 0x3,0x4f,0x2a, - 0x7,0x29,0x4e, 0x3,0x4f,0x2e, 0x3,0x4f,0x29, 0x4,0x4d,0x7e, - 0x4,0x4e,0x21, 0x4,0x4d,0x7d, 0x4,0x4d,0x79, 0x4,0x4d,0x78, - 0x4,0x4d,0x76, 0x3,0x4f,0x2d, 0x4,0x4e,0x23, 0x4,0x54,0x2e, - 0x3,0x52,0x7d, 0x3,0x52,0x7a, 0x4,0x54,0x2f, 0x4,0x54,0x2d, - 0x5,0x58,0x62, 0x4,0x54,0x30, 0x3,0x52,0x79, 0x5,0x5e,0x7b, - 0x4,0x59,0x2b, 0x4,0x59,0x2c, 0x4,0x59,0x26, 0xf,0x5c,0x78, - 0x4,0x59,0x2a, 0x4,0x59,0x28, 0x3,0x56,0x53, 0x3,0x59,0x33, - 0x4,0x5d,0x74, 0x4,0x5d,0x78, 0x4,0x5d,0x72, 0x4,0x5d,0x75, - 0x7,0x4a,0x57, 0x4,0x61,0x50, 0x3,0x59,0x34, 0x4,0x61,0x51, - 0x4,0x5d,0x77, 0x4,0x64,0x5b, 0x4,0x64,0x5a, 0x4,0x67,0x50, - 0x4,0x67,0x4c, 0x5,0x74,0x4b, 0x4,0x6b,0x24, 0x7,0x5c,0x77, - 0x4,0x6c,0x29, 0x3,0x61,0x4f, 0x3,0x62,0x2e, 0x3,0x3f,0x42, - 0x5,0x3c,0x67, 0x4,0x3b,0x52, 0x4,0x3b,0x53, 0x3,0x3f,0x41, - 0x3,0x44,0x71, 0x3,0x44,0x70, 0x3,0x44,0x72, 0x4,0x4e,0x26, - 0x4,0x54,0x32, 0x4,0x59,0x30, 0x3,0x56,0x56, 0x3,0x5b,0x3e, - 0x4,0x64,0x5f, 0x3,0x60,0x4c, 0x4,0x2b,0x4d, 0x4,0x2b,0x4e, - 0xf,0x2d,0x53, 0x3,0x34,0x22, 0x3,0x39,0x43, 0x3,0x39,0x44, - 0x3,0x39,0x48, 0x4,0x35,0x61, 0x4,0x35,0x62, 0x3,0x39,0x45, - 0x3,0x39,0x46, 0x3,0x39,0x42, 0x6,0x45,0x45, 0x3,0x3f,0x48, - 0x3,0x3f,0x43, 0x4,0x3b,0x54, 0x3,0x3f,0x4a, 0x3,0x44,0x75, - 0x4,0x41,0x2a, 0x3,0x44,0x74, 0x6,0x59,0x24, 0x4,0x41,0x2c, - 0x4,0x47,0x66, 0x4,0x47,0x69, 0x4,0x47,0x67, 0x3,0x49,0x7e, - 0x4,0x4e,0x28, 0x4,0x4e,0x27, 0x4,0x4e,0x2a, 0x4,0x4e,0x29, - 0x3,0x53,0x23, 0x5,0x58,0x72, 0x4,0x54,0x33, 0x4,0x54,0x34, - 0x5,0x51,0x61, 0x3,0x56,0x58, 0x4,0x59,0x32, 0x4,0x59,0x35, - 0x4,0x59,0x37, 0x3,0x56,0x57, 0x4,0x59,0x31, 0x4,0x5d,0x7c, - 0x4,0x5d,0x7b, 0x4,0x5d,0x7a, 0x5,0x65,0x35, 0x4,0x5d,0x7d, - 0x4,0x5d,0x7e, 0x4,0x61,0x59, 0x4,0x61,0x58, 0x4,0x61,0x57, - 0x4,0x64,0x60, 0x4,0x64,0x61, 0x4,0x67,0x52, 0xf,0x68,0x53, - 0x3,0x5f,0x68, 0x3,0x5f,0x67, 0x3,0x60,0x7d, 0x4,0x6d,0x61, - 0x4,0x6e,0x21, 0x3,0x62,0x3d, 0x4,0x4e,0x2e, 0x3,0x5d,0x39, - 0x4,0x47,0x6b, 0xf,0x4c,0x67, 0x3,0x4f,0x38, 0x4,0x64,0x63, - 0x7,0x50,0x56, 0x3,0x27,0x32, 0x4,0x25,0x22, 0xf,0x28,0x72, - 0x3,0x2a,0x6f, 0x5,0x27,0x69, 0x4,0x2b,0x53, 0x4,0x2b,0x50, - 0x3,0x34,0x23, 0x4,0x30,0x2d, 0x4,0x30,0x30, 0x3,0x34,0x24, - 0x4,0x30,0x2e, 0x3,0x39,0x49, 0x4,0x35,0x69, 0x3,0x39,0x4d, - 0x3,0x3f,0x53, 0x4,0x3b,0x57, 0x3,0x3f,0x4e, 0x6,0x4f,0x48, - 0x3,0x3f,0x52, 0x4,0x41,0x2f, 0x3,0x4a,0x25, 0x4,0x47,0x6c, - 0x3,0x4a,0x23, 0x3,0x4f,0x3a, 0x4,0x4e,0x31, 0x4,0x4e,0x35, - 0x3,0x4f,0x3d, 0x3,0x53,0x2a, 0x3,0x53,0x28, 0x3,0x53,0x29, - 0x4,0x59,0x38, 0x4,0x59,0x39, 0x7,0x43,0x77, 0x3,0x59,0x39, - 0x4,0x61,0x5e, 0x4,0x6c,0x2c, 0x3,0x22,0x5f, 0x4,0x23,0x32, - 0x3,0x27,0x36, 0x3,0x27,0x37, 0x3,0x27,0x38, 0x3,0x2a,0x76, - 0x4,0x28,0x29, 0x3,0x2f,0x36, 0x4,0x2b,0x56, 0x3,0x45,0x22, - 0x3,0x2f,0x3d, 0x4,0x2b,0x54, 0x4,0x2b,0x58, 0x3,0x2f,0x39, - 0x3,0x2f,0x3a, 0x6,0x34,0x6d, 0x4,0x30,0x38, 0x4,0x30,0x34, - 0x3,0x34,0x28, 0x4,0x30,0x33, 0x4,0x47,0x71, 0x4,0x35,0x6c, - 0x4,0x35,0x6e, 0x4,0x35,0x73, 0x4,0x35,0x6b, 0x3,0x39,0x50, - 0x4,0x35,0x70, 0x4,0x3b,0x5e, 0x3,0x3f,0x58, 0x4,0x41,0x34, - 0x4,0x41,0x36, 0x3,0x45,0x21, 0x4,0x59,0x3c, 0x4,0x41,0x38, - 0x4,0x47,0x6d, 0x4,0x47,0x6e, 0x3,0x4a,0x29, 0x3,0x4a,0x28, - 0x5,0x4a,0x60, 0x4,0x47,0x70, 0x3,0x4f,0x3e, 0x4,0x4e,0x3d, - 0x4,0x4e,0x3c, 0x5,0x58,0x7e, 0x5,0x5f,0x3c, 0x3,0x60,0x4d, - 0x4,0x6b,0x26, 0x3,0x2f,0x3f, 0x3,0x34,0x2b, 0x3,0x34,0x2c, - 0x4,0x35,0x78, 0x4,0x35,0x74, 0x3,0x39,0x53, 0x5,0x36,0x36, - 0x4,0x35,0x75, 0x4,0x3b,0x60, 0x3,0x3f,0x5a, 0x3,0x3f,0x5b, - 0x3,0x3f,0x5c, 0x4,0x3b,0x64, 0x6,0x59,0x4c, 0x3,0x45,0x26, - 0x4,0x41,0x3d, 0x4,0x41,0x3c, 0x4,0x41,0x3f, 0x4,0x41,0x3e, - 0x4,0x47,0x73, 0x4,0x47,0x74, 0x4,0x4e,0x3f, 0x4,0x4e,0x41, - 0x4,0x4e,0x3e, 0x4,0x4e,0x40, 0x4,0x54,0x3d, 0x4,0x54,0x3c, - 0x4,0x54,0x3a, 0x3,0x53,0x2e, 0x4,0x54,0x40, 0x4,0x54,0x3b, - 0x7,0x34,0x54, 0x3,0x53,0x30, 0x4,0x59,0x3d, 0x4,0x59,0x42, - 0x7,0x3c,0x70, 0x4,0x59,0x41, 0x5,0x65,0x45, 0x4,0x61,0x61, - 0x4,0x61,0x64, 0x4,0x61,0x63, 0x4,0x61,0x62, 0x4,0x61,0x65, - 0x4,0x67,0x5a, 0x4,0x67,0x5b, 0x4,0x69,0x54, 0x4,0x69,0x53, - 0x4,0x6c,0x2e, 0x4,0x6c,0x2d, 0x4,0x6e,0x3d, 0x4,0x35,0x7a, - 0x6,0x3c,0x63, 0x3,0x39,0x5a, 0x3,0x3f,0x5f, 0x3,0x3f,0x64, - 0x3,0x3f,0x61, 0x3,0x3f,0x67, 0x3,0x45,0x2c, 0x5,0x43,0x6d, - 0x3,0x4a,0x2e, 0x4,0x47,0x79, 0x3,0x4a,0x36, 0x4,0x47,0x76, - 0x4,0x47,0x7b, 0x4,0x47,0x78, 0x3,0x4f,0x4f, 0x4,0x4e,0x43, - 0x3,0x4f,0x47, 0x3,0x4f,0x46, 0x7,0x2a,0x38, 0x3,0x4f,0x4a, - 0x7,0x2a,0x3e, 0x3,0x53,0x33, 0x3,0x53,0x34, 0x4,0x54,0x48, - 0x4,0x54,0x46, 0x7,0x3c,0x7b, 0x3,0x56,0x69, 0x7,0x3c,0x77, - 0x4,0x59,0x45, 0x4,0x59,0x44, 0xf,0x5d,0x4c, 0x3,0x59,0x3f, - 0x3,0x59,0x41, 0x4,0x5e,0x2f, 0x4,0x5e,0x2c, 0x7,0x44,0x39, - 0x4,0x5e,0x27, 0x5,0x65,0x4f, 0x4,0x5e,0x2b, 0x3,0x59,0x48, - 0x3,0x59,0x47, 0x3,0x5b,0x46, 0x4,0x61,0x66, 0x3,0x5b,0x4b, - 0x3,0x5b,0x40, 0x3,0x5b,0x52, 0x4,0x61,0x69, 0x5,0x6a,0x33, - 0x4,0x61,0x68, 0x3,0x5b,0x51, 0x3,0x5b,0x4c, 0x3,0x5b,0x49, - 0xf,0x64,0x34, 0x3,0x5d,0x3b, 0x4,0x61,0x6c, 0x3,0x5d,0x40, - 0x4,0x64,0x66, 0x4,0x64,0x6c, 0x5,0x6e,0x35, 0x3,0x5d,0x48, - 0x4,0x64,0x6d, 0x4,0x67,0x5f, 0x3,0x5e,0x6b, 0x4,0x64,0x69, - 0x4,0x67,0x61, 0x3,0x5e,0x6c, 0x4,0x67,0x63, 0x7,0x55,0x68, - 0x3,0x5e,0x69, 0x3,0x5e,0x6e, 0x3,0x5e,0x6f, 0x3,0x5f,0x6f, - 0x3,0x60,0x51, 0x5,0x71,0x55, 0x7,0x59,0x67, 0x3,0x5f,0x6d, - 0x7,0x59,0x68, 0x3,0x5f,0x70, 0x5,0x74,0x55, 0x4,0x6b,0x2a, - 0x5,0x76,0x5f, 0x4,0x6b,0x27, 0x3,0x60,0x4e, 0x3,0x60,0x50, - 0x3,0x61,0x23, 0x3,0x61,0x21, 0x4,0x6c,0x30, 0x3,0x61,0x24, - 0x3,0x61,0x6e, 0x6,0x3c,0x65, 0x4,0x3b,0x67, 0xf,0x3f,0x76, - 0x4,0x41,0x49, 0x4,0x5e,0x32, 0x3,0x39,0x5b, 0x4,0x35,0x7c, - 0x3,0x3f,0x6a, 0x4,0x3b,0x6b, 0x3,0x3f,0x6e, 0x3,0x3f,0x6b, - 0x3,0x45,0x3b, 0x4,0x41,0x50, 0x4,0x41,0x4e, 0x4,0x48,0x23, - 0x3,0x4a,0x3b, 0x3,0x4a,0x3f, 0x3,0x4a,0x3a, 0x5,0x4a,0x6e, - 0x3,0x4a,0x3c, 0x7,0x2a,0x46, 0x4,0x4e,0x48, 0x3,0x4f,0x54, - 0x3,0x4f,0x57, 0x4,0x54,0x4f, 0x4,0x54,0x4b, 0x3,0x53,0x3f, - 0x4,0x54,0x4c, 0x3,0x53,0x41, 0x3,0x53,0x43, 0x3,0x53,0x46, - 0x3,0x53,0x45, 0x7,0x34,0x73, 0x4,0x59,0x4e, 0x4,0x59,0x4f, - 0x4,0x59,0x54, 0x3,0x56,0x6e, 0x3,0x56,0x6c, 0x4,0x59,0x4d, - 0x4,0x59,0x52, 0x4,0x67,0x66, 0x4,0x64,0x71, 0x5,0x71,0x5b, - 0x4,0x69,0x55, 0x5,0x21,0x7d, 0x3,0x22,0x60, 0x3,0x24,0x3e, - 0x5,0x24,0x7b, 0x6,0x29,0x35, 0x4,0x28,0x31, 0x4,0x28,0x32, - 0x3,0x2a,0x7a, 0x5,0x2b,0x64, 0x4,0x2b,0x5a, 0x3,0x2f,0x41, - 0x4,0x2b,0x59, 0x4,0x30,0x40, 0x4,0x30,0x3d, 0x3,0x34,0x35, - 0x4,0x30,0x3e, 0x3,0x34,0x37, 0x4,0x30,0x3c, 0x3,0x39,0x63, - 0x3,0x39,0x5d, 0x4,0x35,0x7d, 0x3,0x39,0x60, 0x3,0x39,0x62, - 0x3,0x39,0x64, 0x3,0x39,0x5f, 0x3,0x3f,0x6f, 0x4,0x3b,0x6d, - 0x3,0x3f,0x74, 0x3,0x45,0x3f, 0x3,0x45,0x3e, 0x4,0x41,0x55, - 0x4,0x41,0x54, 0x3,0x45,0x3d, 0x3,0x45,0x41, 0x3,0x4a,0x41, - 0x3,0x4a,0x40, 0x3,0x4a,0x43, 0x3,0x4a,0x42, 0x3,0x4f,0x59, - 0x3,0x4f,0x58, 0x7,0x2a,0x54, 0x3,0x53,0x47, 0x4,0x54,0x53, - 0x4,0x54,0x51, 0x4,0x59,0x55, 0x3,0x5b,0x54, 0x4,0x64,0x73, - 0x4,0x67,0x67, 0x3,0x34,0x38, 0x4,0x36,0x24, 0x3,0x3f,0x7a, - 0x3,0x3f,0x76, 0x3,0x3f,0x79, 0x3,0x3f,0x77, 0x4,0x41,0x56, - 0x3,0x45,0x44, 0x3,0x45,0x43, 0x3,0x45,0x45, 0x3,0x4a,0x48, - 0x3,0x4f,0x5d, 0x3,0x4f,0x5c, 0x3,0x53,0x4b, 0x3,0x53,0x4a, - 0x3,0x52,0x38, 0x4,0x59,0x58, 0x3,0x56,0x72, 0x3,0x59,0x4c, - 0x3,0x5b,0x55, 0x3,0x5d,0x4a, 0x3,0x5b,0x56, 0x3,0x5d,0x4b, - 0x4,0x69,0x56, 0x3,0x61,0x51, 0x3,0x62,0x40, 0x3,0x39,0x66, - 0x3,0x3f,0x7d, 0x6,0x50,0x31, 0x3,0x45,0x48, 0x4,0x48,0x2d, - 0x4,0x48,0x31, 0x4,0x48,0x2e, 0x3,0x4a,0x4a, 0x4,0x48,0x34, - 0x3,0x4a,0x4b, 0x4,0x48,0x33, 0x6,0x63,0x7b, 0x3,0x4f,0x5e, - 0x3,0x4f,0x61, 0x3,0x4f,0x5f, 0x4,0x54,0x59, 0x3,0x53,0x4f, - 0x3,0x53,0x4e, 0x4,0x59,0x60, 0x3,0x56,0x73, 0x3,0x56,0x77, - 0x4,0x54,0x58, 0x3,0x56,0x76, 0x4,0x59,0x5d, 0x4,0x59,0x5f, - 0x4,0x5e,0x35, 0x3,0x59,0x4d, 0x3,0x59,0x4e, 0x4,0x5e,0x36, - 0x7,0x44,0x58, 0x7,0x44,0x60, 0x4,0x61,0x74, 0x4,0x61,0x73, - 0x3,0x5b,0x57, 0x3,0x5b,0x58, 0x3,0x5b,0x59, 0x4,0x64,0x75, - 0x3,0x5d,0x4d, 0x4,0x69,0x58, 0x4,0x69,0x5a, 0x4,0x69,0x5b, - 0x3,0x60,0x58, 0x3,0x61,0x53, 0x3,0x61,0x27, 0x3,0x61,0x52, - 0x3,0x62,0x24, 0x3,0x62,0x44, 0x3,0x62,0x46, 0x4,0x69,0x5c, - 0x4,0x36,0x28, 0x4,0x36,0x2a, 0x4,0x3b,0x74, 0x4,0x4e,0x4c, - 0x4,0x64,0x7b, 0x4,0x41,0x5a, 0x3,0x45,0x4a, 0x3,0x4a,0x4d, - 0x4,0x48,0x38, 0x4,0x48,0x37, 0x4,0x54,0x5d, 0x4,0x54,0x5c, - 0x4,0x59,0x62, 0x4,0x64,0x7c, 0x4,0x67,0x6e, 0x5,0x71,0x63, - 0x4,0x6c,0x33, 0x4,0x3b,0x79, 0x3,0x40,0x23, 0x4,0x3b,0x76, - 0x3,0x45,0x4d, 0x4,0x41,0x5d, 0x4,0x41,0x5f, 0x3,0x45,0x4c, - 0xf,0x46,0x32, 0x6,0x5a,0x28, 0x4,0x48,0x3a, 0x4,0x48,0x40, - 0x4,0x48,0x3b, 0x3,0x4a,0x4f, 0x3,0x4a,0x50, 0x4,0x48,0x3d, - 0x4,0x4e,0x4f, 0x4,0x54,0x63, 0x4,0x54,0x61, 0x4,0x54,0x60, - 0x4,0x54,0x64, 0x4,0x54,0x62, 0x4,0x59,0x63, 0x4,0x54,0x68, - 0x3,0x53,0x52, 0x3,0x56,0x7c, 0x4,0x59,0x68, 0x4,0x59,0x64, - 0x7,0x3d,0x56, 0x3,0x56,0x79, 0x3,0x56,0x7d, 0x3,0x56,0x7e, - 0x4,0x5e,0x3e, 0x5,0x65,0x7e, 0x4,0x5e,0x42, 0x4,0x5e,0x3c, - 0x5,0x65,0x73, 0x5,0x65,0x7b, 0x4,0x5e,0x3b, 0x4,0x5e,0x41, - 0x3,0x5b,0x5c, 0x3,0x5b,0x5b, 0x4,0x61,0x77, 0x4,0x61,0x7b, - 0x3,0x5b,0x5a, 0x4,0x65,0x23, 0x4,0x64,0x7e, 0x5,0x6e,0x49, - 0x7,0x56,0x27, 0x7,0x56,0x25, 0x4,0x67,0x72, 0x4,0x67,0x70, - 0x5,0x71,0x69, 0x7,0x56,0x26, 0x3,0x5f,0x74, 0x5,0x74,0x62, - 0x4,0x6b,0x2c, 0x3,0x60,0x5a, 0x4,0x6c,0x34, 0x4,0x6d,0x2d, - 0x3,0x61,0x54, 0x4,0x6d,0x65, 0x3,0x61,0x70, 0x4,0x6e,0x22, - 0x4,0x41,0x61, 0x4,0x48,0x43, 0x4,0x48,0x41, 0x4,0x48,0x42, - 0x4,0x48,0x44, 0x3,0x53,0x54, 0x4,0x59,0x6b, 0x7,0x44,0x77, - 0x4,0x5e,0x45, 0x3,0x59,0x52, 0x4,0x61,0x7d, 0x4,0x61,0x7e, - 0x4,0x67,0x73, 0x4,0x69,0x60, 0x3,0x60,0x5b, 0x3,0x45,0x4e, - 0x3,0x57,0x21, 0x3,0x5b,0x63, 0x3,0x5b,0x62, 0x3,0x5d,0x52, - 0x4,0x67,0x75, 0x4,0x6b,0x2d, 0x3,0x40,0x25, 0x3,0x40,0x26, - 0x3,0x40,0x27, 0x3,0x45,0x51, 0x4,0x54,0x6a, 0x4,0x54,0x69, - 0x3,0x59,0x53, 0x4,0x62,0x22, 0x4,0x62,0x23, 0x3,0x5f,0x75, - 0x4,0x3b,0x7b, 0xf,0x40,0x2d, 0x4,0x41,0x65, 0x4,0x41,0x64, - 0x5,0x44,0x34, 0x5,0x4b,0x3e, 0x4,0x48,0x4d, 0x3,0x4a,0x51, - 0x4,0x48,0x4e, 0x3,0x4a,0x53, 0x4,0x48,0x4c, 0x4,0x48,0x4b, - 0x5,0x4b,0x3f, 0x4,0x48,0x47, 0x3,0x4f,0x68, 0x4,0x4e,0x59, - 0x4,0x4e,0x5c, 0x5,0x52,0x60, 0x4,0x54,0x6d, 0x4,0x54,0x6f, - 0x3,0x53,0x56, 0x4,0x4e,0x5d, 0x3,0x53,0x60, 0x3,0x53,0x57, - 0x3,0x53,0x5e, 0x7,0x35,0x51, 0x3,0x57,0x25, 0x4,0x59,0x73, - 0x7,0x3d,0x69, 0x3,0x57,0x22, 0x4,0x59,0x77, 0x3,0x57,0x23, - 0x3,0x57,0x24, 0x3,0x57,0x27, 0x3,0x57,0x29, 0x4,0x5e,0x4e, - 0x3,0x59,0x54, 0x4,0x5e,0x49, 0x4,0x5e,0x47, 0x4,0x5e,0x4b, - 0x3,0x59,0x57, 0x3,0x59,0x55, 0x4,0x5e,0x4d, 0x4,0x5e,0x4c, - 0x3,0x59,0x5a, 0x4,0x62,0x27, 0x4,0x62,0x29, 0x4,0x62,0x2d, - 0x4,0x62,0x26, 0x4,0x62,0x2c, 0x3,0x5b,0x64, 0x4,0x62,0x25, - 0x4,0x62,0x2f, 0x4,0x62,0x28, 0x4,0x62,0x2b, 0x4,0x65,0x2f, - 0x4,0x65,0x31, 0x4,0x65,0x30, 0x3,0x5d,0x54, 0x4,0x67,0x77, - 0x4,0x67,0x79, 0x4,0x67,0x76, 0x4,0x67,0x7c, 0x4,0x67,0x7b, - 0x7,0x56,0x32, 0x4,0x69,0x63, 0x3,0x5f,0x76, 0x4,0x69,0x62, - 0x4,0x6c,0x39, 0x5,0x78,0x48, 0x3,0x61,0x55, 0x4,0x36,0x2b, - 0x4,0x3b,0x7e, 0x3,0x45,0x53, 0x4,0x41,0x6d, 0x4,0x41,0x72, - 0x4,0x41,0x6e, 0x4,0x48,0x51, 0x4,0x48,0x56, 0x4,0x48,0x59, - 0x4,0x48,0x50, 0x4,0x48,0x54, 0x3,0x4a,0x57, 0x4,0x4e,0x60, - 0x4,0x4e,0x61, 0x4,0x54,0x76, 0x4,0x54,0x77, 0x4,0x54,0x73, - 0x4,0x54,0x74, 0x4,0x54,0x75, 0x4,0x59,0x7d, 0x4,0x5a,0x22, - 0x4,0x5a,0x21, 0x4,0x59,0x7c, 0x4,0x59,0x7a, 0x4,0x59,0x7e, - 0x4,0x5e,0x51, 0x7,0x44,0x7e, 0x4,0x5e,0x50, 0x4,0x5e,0x52, - 0x3,0x59,0x5d, 0x3,0x59,0x5e, 0x3,0x59,0x5f, 0x4,0x62,0x32, - 0x3,0x5b,0x67, 0x3,0x5b,0x66, 0x4,0x65,0x36, 0x3,0x5d,0x55, - 0x4,0x67,0x7e, 0x4,0x6b,0x30, 0x4,0x6c,0x3a, 0x3,0x57,0x2b, - 0x3,0x59,0x60, 0x3,0x34,0x3a, 0x4,0x36,0x2c, 0x3,0x40,0x29, - 0x3,0x40,0x2a, 0x4,0x3c,0x24, 0x3,0x40,0x28, 0x4,0x3c,0x25, - 0x3,0x45,0x5d, 0x3,0x40,0x2c, 0x4,0x41,0x77, 0x4,0x41,0x74, - 0x3,0x4a,0x5c, 0x3,0x45,0x5e, 0x4,0x41,0x75, 0x3,0x45,0x56, - 0x3,0x45,0x55, 0x3,0x45,0x5a, 0x4,0x41,0x79, 0x4,0x41,0x7a, - 0x3,0x4a,0x58, 0x3,0x4a,0x59, 0x4,0x48,0x5b, 0x7,0x2b,0x38, - 0x3,0x4a,0x5a, 0x4,0x48,0x5c, 0x6,0x64,0x40, 0x3,0x4f,0x6a, - 0x4,0x4e,0x65, 0x4,0x4e,0x64, 0x4,0x4e,0x67, 0x4,0x4e,0x66, - 0x4,0x54,0x78, 0x4,0x4e,0x69, 0x4,0x54,0x7c, 0x4,0x54,0x7d, - 0x4,0x54,0x7a, 0x4,0x5a,0x27, 0x4,0x55,0x22, 0x4,0x5a,0x28, - 0x4,0x5a,0x2a, 0x5,0x60,0x31, 0x3,0x57,0x2d, 0x3,0x59,0x64, - 0x5,0x60,0x2c, 0x3,0x57,0x2c, 0x4,0x5e,0x58, 0x4,0x5e,0x57, - 0x4,0x5e,0x5b, 0x4,0x5e,0x59, 0x4,0x5e,0x5a, 0x4,0x65,0x39, - 0x4,0x62,0x36, 0x3,0x5b,0x68, 0x4,0x65,0x3c, 0x4,0x65,0x3b, - 0x3,0x5d,0x57, 0x3,0x5d,0x59, 0x4,0x68,0x24, 0x4,0x68,0x23, - 0x3,0x5e,0x7d, 0x4,0x68,0x22, 0x4,0x69,0x67, 0x4,0x69,0x65, - 0x3,0x5f,0x77, 0x4,0x69,0x68, 0x4,0x6b,0x31, 0x3,0x61,0x56, - 0x4,0x6d,0x30, 0x4,0x6d,0x67, 0x4,0x6e,0x25, 0x3,0x4f,0x6c, - 0x3,0x53,0x67, 0x4,0x5e,0x5f, 0x4,0x62,0x3c, 0x4,0x48,0x5d, - 0x3,0x57,0x2f, 0x4,0x55,0x26, 0x3,0x57,0x2e, 0x3,0x61,0x71, - 0x3,0x40,0x2d, 0x5,0x44,0x4a, 0x3,0x45,0x60, 0x4,0x48,0x5e, - 0x3,0x4a,0x65, 0x4,0x48,0x5f, 0x3,0x4a,0x5f, 0x3,0x4a,0x67, - 0x3,0x4a,0x68, 0x3,0x4a,0x6b, 0x3,0x4a,0x69, 0x4,0x4e,0x6f, - 0x3,0x4f,0x71, 0x3,0x4f,0x70, 0x4,0x4e,0x6e, 0x3,0x4f,0x6f, - 0x4,0x4e,0x6d, 0x4,0x4e,0x70, 0x3,0x53,0x6f, 0x3,0x53,0x6e, - 0x3,0x53,0x6d, 0x5,0x5a,0x2c, 0x3,0x53,0x69, 0x4,0x55,0x2d, - 0x5,0x5a,0x2e, 0x7,0x36,0x28, 0x4,0x5a,0x2e, 0x3,0x57,0x32, - 0x3,0x57,0x35, 0x4,0x5a,0x2d, 0x3,0x57,0x31, 0x4,0x5e,0x67, - 0x5,0x6a,0x6e, 0x4,0x5e,0x62, 0x3,0x59,0x68, 0x4,0x5e,0x68, - 0x3,0x59,0x69, 0x4,0x5e,0x63, 0x4,0x5e,0x65, 0x3,0x59,0x6c, - 0x4,0x62,0x41, 0x4,0x62,0x3f, 0x3,0x5b,0x6a, 0x4,0x62,0x46, - 0x4,0x62,0x40, 0x4,0x62,0x44, 0x4,0x62,0x45, 0x4,0x65,0x41, - 0x4,0x65,0x40, 0x3,0x5d,0x5d, 0x3,0x5d,0x5b, 0x4,0x65,0x47, - 0x5,0x6e,0x66, 0x5,0x6e,0x6d, 0x3,0x5d,0x5c, 0x4,0x68,0x29, - 0x4,0x68,0x2a, 0x4,0x68,0x2b, 0x4,0x68,0x2d, 0x3,0x5f,0x23, - 0x5,0x72,0x2d, 0x4,0x68,0x28, 0x7,0x5a,0x3e, 0x5,0x74,0x76, - 0x4,0x69,0x6b, 0x4,0x69,0x69, 0x3,0x5f,0x7a, 0x4,0x6b,0x33, - 0x4,0x6b,0x34, 0x4,0x6b,0x32, 0x3,0x61,0x2b, 0x7,0x60,0x2e, - 0x7,0x60,0x2d, 0x3,0x61,0x57, 0x4,0x6d,0x68, 0x3,0x62,0x27, - 0x4,0x6e,0x3f, 0x3,0x62,0x37, 0x4,0x6e,0x57, 0x3,0x39,0x69, - 0x3,0x40,0x2e, 0x4,0x48,0x62, 0x3,0x4a,0x6d, 0x3,0x4f,0x75, - 0x4,0x4e,0x75, 0x4,0x4e,0x73, 0x4,0x4e,0x76, 0x3,0x4f,0x78, - 0x3,0x53,0x72, 0x3,0x53,0x73, 0x4,0x55,0x30, 0x4,0x55,0x32, - 0x4,0x55,0x2f, 0x4,0x55,0x2e, 0x3,0x57,0x39, 0x4,0x5a,0x31, - 0x4,0x5a,0x35, 0x4,0x5a,0x30, 0x3,0x57,0x38, 0x4,0x5a,0x33, - 0x5,0x66,0x51, 0x4,0x5e,0x6e, 0x3,0x5b,0x70, 0x4,0x62,0x48, - 0x4,0x62,0x47, 0x4,0x65,0x49, 0x3,0x5d,0x5f, 0x4,0x68,0x30, - 0x4,0x69,0x6e, 0x4,0x6b,0x35, 0x4,0x6c,0x3e, 0x4,0x6d,0x33, - 0x3,0x40,0x30, 0x4,0x42,0x22, 0x4,0x62,0x4a, 0x5,0x74,0x7a, - 0x7,0x64,0x75, 0x3,0x40,0x31, 0x5,0x3d,0x52, 0x6,0x64,0x5e, - 0x4,0x48,0x6a, 0x4,0x48,0x69, 0x4,0x48,0x67, 0x3,0x4a,0x74, - 0x5,0x4b,0x59, 0x4,0x4e,0x7b, 0x3,0x4f,0x7a, 0x4,0x55,0x35, - 0x4,0x55,0x36, 0x4,0x5a,0x38, 0x3,0x57,0x3d, 0x4,0x5a,0x3b, - 0x4,0x5e,0x70, 0x4,0x5e,0x73, 0x3,0x59,0x6e, 0x4,0x5e,0x74, - 0x4,0x5e,0x76, 0x4,0x5e,0x75, 0x4,0x5e,0x77, 0x4,0x62,0x4e, - 0x3,0x5b,0x72, 0x4,0x62,0x4c, 0x4,0x65,0x4d, 0x4,0x65,0x4f, - 0x4,0x65,0x4e, 0x7,0x51,0x79, 0x5,0x72,0x3f, 0x3,0x5f,0x26, - 0x4,0x69,0x72, 0x4,0x6c,0x43, 0x4,0x6c,0x41, 0x3,0x61,0x2d, - 0x5,0x78,0x52, 0x4,0x6d,0x35, 0x7,0x61,0x6a, 0x4,0x6d,0x69, - 0x4,0x6e,0x49, 0x7,0x51,0x7d, 0x5,0x72,0x41, 0x3,0x4a,0x77, - 0x3,0x4a,0x76, 0x3,0x4d,0x3e, 0x3,0x53,0x76, 0x7,0x5a,0x4b, - 0x3,0x61,0x58, 0x3,0x4a,0x79, 0x4,0x4f,0x24, 0x4,0x4f,0x25, - 0x4,0x55,0x3f, 0x3,0x53,0x77, 0x4,0x5e,0x7e, 0x3,0x59,0x70, - 0x4,0x5e,0x7d, 0x4,0x5e,0x7c, 0x3,0x5b,0x73, 0x5,0x66,0x68, - 0x3,0x5d,0x65, 0x4,0x69,0x77, 0x4,0x69,0x76, 0x7,0x5a,0x4f, - 0x4,0x6c,0x48, 0x4,0x6c,0x49, 0x4,0x6e,0x58, 0x5,0x3d,0x54, - 0x4,0x48,0x6d, 0x5,0x4b,0x64, 0x4,0x4f,0x28, 0x4,0x4f,0x34, - 0x3,0x50,0x21, 0x7,0x2b,0x6a, 0x4,0x4f,0x39, 0x4,0x4f,0x32, - 0x4,0x4f,0x2b, 0x4,0x4f,0x29, 0x3,0x54,0x27, 0x4,0x55,0x44, - 0x4,0x55,0x42, 0x4,0x55,0x48, 0x3,0x53,0x7e, 0x3,0x54,0x28, - 0x4,0x55,0x41, 0x3,0x54,0x26, 0x3,0x54,0x24, 0x3,0x54,0x22, - 0x3,0x53,0x7b, 0x4,0x5a,0x40, 0x3,0x57,0x41, 0x4,0x5f,0x21, - 0x7,0x3e,0x49, 0x4,0x5a,0x42, 0x3,0x59,0x72, 0x4,0x5f,0x23, - 0x5,0x66,0x6e, 0x4,0x5f,0x27, 0x4,0x5f,0x25, 0x3,0x59,0x78, - 0x4,0x5f,0x24, 0x3,0x59,0x77, 0x4,0x5f,0x29, 0x4,0x5f,0x2b, - 0x4,0x62,0x5d, 0x5,0x6b,0x35, 0x4,0x62,0x67, 0x4,0x62,0x57, - 0x4,0x62,0x61, 0x4,0x62,0x59, 0x4,0x62,0x54, 0x3,0x5b,0x76, - 0x5,0x6b,0x31, 0x4,0x62,0x62, 0x5,0x6b,0x2b, 0x4,0x62,0x60, - 0x4,0x62,0x64, 0x3,0x5b,0x78, 0x3,0x5b,0x7b, 0x3,0x5b,0x7c, - 0xf,0x64,0x72, 0x3,0x5d,0x77, 0x4,0x65,0x55, 0x7,0x52,0x31, - 0x4,0x65,0x5b, 0x3,0x5d,0x6c, 0x7,0x52,0x33, 0x4,0x65,0x53, - 0x3,0x5d,0x6b, 0x3,0x5d,0x6d, 0x4,0x68,0x3d, 0x3,0x5f,0x2d, - 0x3,0x5f,0x30, 0x4,0x68,0x3c, 0x3,0x5f,0x2e, 0x3,0x5f,0x2b, - 0x4,0x68,0x3a, 0x3,0x5f,0x29, 0x3,0x5f,0x2f, 0x4,0x69,0x7d, - 0x3,0x5f,0x7d, 0x4,0x6a,0x21, 0x4,0x69,0x7c, 0x3,0x5f,0x7c, - 0x4,0x69,0x7e, 0x3,0x60,0x24, 0x4,0x69,0x7b, 0x3,0x60,0x21, - 0xf,0x6a,0x3f, 0x4,0x6b,0x3c, 0x4,0x6b,0x3d, 0x4,0x6b,0x40, - 0x4,0x6b,0x3b, 0x7,0x5e,0x23, 0x3,0x60,0x67, 0x3,0x60,0x64, - 0x5,0x78,0x5b, 0x5,0x78,0x56, 0x3,0x61,0x30, 0x4,0x6c,0x4d, - 0x4,0x6c,0x4e, 0x5,0x77,0x24, 0x3,0x61,0x5a, 0x4,0x6d,0x39, - 0x3,0x61,0x31, 0x4,0x6e,0x2c, 0x4,0x6e,0x2d, 0x4,0x6e,0x5b, - 0x3,0x45,0x65, 0x3,0x4a,0x7a, 0x3,0x4a,0x7b, 0x3,0x4a,0x7c, - 0x3,0x4a,0x7e, 0x5,0x4b,0x6b, 0x3,0x4a,0x7d, 0x5,0x53,0x38, - 0x4,0x4f,0x3f, 0x3,0x50,0x23, 0x4,0x4f,0x44, 0x4,0x4f,0x3b, - 0x7,0x2b,0x6d, 0x4,0x4f,0x40, 0x3,0x50,0x28, 0x3,0x50,0x29, - 0x3,0x50,0x26, 0x3,0x4c,0x63, 0x4,0x4f,0x41, 0x4,0x55,0x4e, - 0x3,0x54,0x2f, 0x4,0x55,0x4d, 0x3,0x54,0x30, 0x4,0x55,0x4f, - 0x3,0x54,0x2b, 0x4,0x55,0x54, 0x7,0x36,0x4a, 0x4,0x55,0x4a, - 0x3,0x54,0x2e, 0x4,0x55,0x57, 0x3,0x57,0x4b, 0x4,0x55,0x4b, - 0x3,0x54,0x31, 0x4,0x55,0x55, 0x3,0x54,0x34, 0x4,0x55,0x50, - 0x7,0x36,0x51, 0x3,0x56,0x33, 0x3,0x57,0x4c, 0x4,0x5a,0x51, - 0x3,0x57,0x47, 0x3,0x57,0x49, 0x3,0x57,0x46, 0x4,0x5a,0x52, - 0x3,0x57,0x4e, 0x4,0x5a,0x50, 0x4,0x5f,0x2f, 0x4,0x5f,0x35, - 0x4,0x5f,0x2c, 0x3,0x5a,0x21, 0x3,0x59,0x7c, 0x4,0x5f,0x32, - 0x4,0x5f,0x31, 0x5,0x67,0x26, 0x4,0x5f,0x38, 0x4,0x62,0x6a, - 0x3,0x5c,0x21, 0x4,0x62,0x6c, 0x4,0x65,0x61, 0x3,0x5c,0x28, - 0x4,0x62,0x6f, 0x5,0x6b,0x3c, 0x4,0x5f,0x36, 0xf,0x64,0x75, - 0x3,0x5d,0x78, 0x4,0x65,0x6c, 0x3,0x5d,0x7d, 0x3,0x5d,0x7b, - 0x4,0x65,0x6a, 0x4,0x65,0x64, 0x3,0x5d,0x7c, 0x7,0x52,0x42, - 0x4,0x65,0x62, 0x4,0x65,0x6b, 0x3,0x5d,0x7e, 0x3,0x5f,0x34, - 0x4,0x68,0x40, 0x4,0x68,0x42, 0x4,0x68,0x41, 0x5,0x72,0x63, - 0x3,0x5f,0x33, 0x4,0x6a,0x27, 0x4,0x6a,0x2c, 0x3,0x60,0x28, - 0x4,0x6a,0x26, 0x3,0x60,0x26, 0x3,0x60,0x27, 0x4,0x6b,0x45, - 0x3,0x60,0x6b, 0x5,0x77,0x2c, 0x4,0x6b,0x44, 0x5,0x77,0x34, - 0x4,0x6b,0x47, 0x3,0x60,0x6a, 0x3,0x60,0x69, 0x4,0x6b,0x48, - 0x4,0x6c,0x50, 0x4,0x6c,0x52, 0x4,0x6c,0x51, 0x3,0x61,0x36, - 0x4,0x6c,0x54, 0x4,0x6d,0x3d, 0x3,0x61,0x5c, 0x7,0x63,0x37, - 0x3,0x62,0x2a, 0x3,0x62,0x3e, 0x4,0x6e,0x59, 0x3,0x62,0x43, - 0x4,0x4f,0x47, 0x4,0x5f,0x39, 0x7,0x57,0x29, 0x4,0x6b,0x4d, - 0x5,0x79,0x73, 0x5,0x4b,0x6d, 0x4,0x4f,0x49, 0x4,0x4f,0x4a, - 0x3,0x50,0x2d, 0x3,0x54,0x38, 0x4,0x55,0x58, 0x7,0x36,0x5c, - 0x3,0x5a,0x23, 0x4,0x62,0x72, 0x3,0x5f,0x39, 0x3,0x61,0x37, - 0x3,0x61,0x38, 0x4,0x48,0x73, 0x4,0x48,0x74, 0x3,0x4b,0x21, - 0x4,0x4f,0x4d, 0x4,0x4f,0x4b, 0x4,0x55,0x59, 0x4,0x55,0x5c, - 0x4,0x55,0x5a, 0x4,0x55,0x5d, 0x3,0x57,0x4f, 0x4,0x5f,0x3c, - 0x4,0x5f,0x3b, 0x3,0x5a,0x27, 0x4,0x62,0x79, 0x4,0x62,0x76, - 0x4,0x62,0x7d, 0x4,0x62,0x77, 0x4,0x62,0x7c, 0x4,0x68,0x49, - 0x4,0x68,0x48, 0x4,0x68,0x4a, 0x5,0x75,0x4d, 0x5,0x75,0x48, - 0x4,0x6b,0x4e, 0x3,0x61,0x39, 0x7,0x5a,0x7d, 0x4,0x6d,0x41, - 0x7,0x2c,0x31, 0x4,0x65,0x71, 0x4,0x65,0x72, 0x7,0x36,0x65, - 0x4,0x5f,0x3d, 0x4,0x63,0x21, 0x4,0x65,0x76, 0x4,0x68,0x4b, - 0x4,0x6b,0x52, 0x4,0x6c,0x5a, 0x7,0x2c,0x33, 0x4,0x55,0x5e, - 0x7,0x36,0x67, 0x5,0x6f,0x52, 0x4,0x65,0x79, 0x5,0x6f,0x54, - 0x4,0x68,0x4c, 0x4,0x68,0x4e, 0x4,0x68,0x4d, 0x4,0x6a,0x31, - 0x4,0x6b,0x55, 0x4,0x6d,0x42, 0x4,0x42,0x2c, 0x3,0x4b,0x23, - 0x4,0x4f,0x52, 0x4,0x4f,0x53, 0x4,0x55,0x5f, 0x4,0x5a,0x5f, - 0x5,0x61,0x23, 0x5,0x67,0x40, 0x5,0x67,0x3d, 0x4,0x5f,0x3f, - 0x5,0x67,0x41, 0x4,0x63,0x23, 0x3,0x5c,0x2b, 0x4,0x65,0x7c, - 0x4,0x66,0x21, 0x4,0x65,0x7d, 0x5,0x6f,0x58, 0x4,0x68,0x52, - 0x3,0x5f,0x3b, 0x4,0x6b,0x56, 0x4,0x6c,0x5b, 0x4,0x6d,0x44, - 0x3,0x61,0x5e, 0x4,0x6d,0x43, 0x4,0x6d,0x6f, 0x4,0x5f,0x40, - 0x3,0x5c,0x2c, 0x4,0x6a,0x37, 0x3,0x61,0x3a, 0x4,0x55,0x61, - 0x4,0x6c,0x61, 0x4,0x6c,0x62, 0x4,0x5f,0x43, 0x4,0x5f,0x42, - 0x4,0x5f,0x44, 0x4,0x63,0x26, 0x4,0x68,0x59, 0x4,0x55,0x62, - 0x4,0x5a,0x63, 0x4,0x5f,0x45, 0x4,0x63,0x27, 0x4,0x68,0x5a, - 0x3,0x60,0x2a, 0x4,0x6b,0x58, 0x4,0x6b,0x5b, 0x3,0x5a,0x2c, - 0x4,0x5f,0x46, 0x3,0x5e,0x23, 0x7,0x52,0x67, 0x5,0x6f,0x61, - 0x4,0x68,0x5c, 0x4,0x6e,0x31, 0x5,0x7b,0x7a, 0x4,0x5a,0x66, - 0x5,0x61,0x2d, 0x4,0x5f,0x48, 0x4,0x63,0x29, 0x4,0x63,0x2b, - 0x4,0x66,0x27, 0x4,0x66,0x25, 0x4,0x66,0x26, 0x3,0x5f,0x3d, - 0x4,0x68,0x61, 0x4,0x6a,0x3d, 0x4,0x6a,0x3c, 0x3,0x60,0x6e, - 0x5,0x77,0x4d, 0x4,0x6c,0x69, 0x4,0x6c,0x66, 0x4,0x6c,0x6a, - 0x4,0x6d,0x4c, 0x4,0x6d,0x4b, 0x4,0x6d,0x70, 0x3,0x61,0x76, - 0x3,0x62,0x2b, 0x3,0x62,0x32, 0x4,0x6e,0x4b, 0x4,0x6e,0x4c, - 0x4,0x6e,0x5a, 0x5,0x75,0x61, 0x5,0x6b,0x69, 0x5,0x6c,0x44, - 0x4,0x68,0x62, 0x4,0x68,0x63, 0x4,0x6d,0x51, 0x3,0x62,0x2c, - 0x1,0x44,0x21, 0x1,0x44,0x23, 0x4,0x21,0x26, 0x1,0x44,0x24, - 0x3,0x21,0x26, 0x3,0x21,0x25, 0x2,0x21,0x26, 0x1,0x44,0x37, - 0x1,0x44,0x35, 0x1,0x44,0x38, 0x1,0x44,0x36, 0x2,0x21,0x27, - 0x1,0x44,0x62, 0x2,0x21,0x2f, 0x2,0x21,0x2d, 0x1,0x44,0x61, - 0x1,0x44,0x60, 0x4,0x21,0x39, 0x1,0x45,0x62, 0x1,0x45,0x61, - 0x1,0x45,0x60, 0x4,0x21,0x55, 0x1,0x45,0x63, 0x1,0x45,0x5f, - 0x1,0x47,0x22, 0x1,0x47,0x23, 0x3,0x22,0x62, 0x3,0x22,0x61, - 0x3,0x22,0x63, 0x4,0x23,0x35, 0x3,0x24,0x3f, 0x1,0x4b,0x64, - 0x3,0x21,0x21, 0x4,0x21,0x27, 0x3,0x21,0x2c, 0x1,0x44,0x39, - 0x1,0x44,0x63, 0x2,0x21,0x30, 0x4,0x21,0x3a, 0x1,0x44,0x64, - 0x2,0x21,0x43, 0x1,0x48,0x6b, 0x2,0x25,0x31, 0x4,0x2b,0x5e, - 0x3,0x21,0x22, 0x1,0x44,0x3a, 0x1,0x44,0x65, 0x1,0x45,0x64, - 0x2,0x21,0x44, 0x3,0x27,0x40, 0x3,0x21,0x23, 0x4,0x21,0x22, - 0x4,0x21,0x23, 0x2,0x21,0x21, 0x1,0x44,0x25, 0x1,0x44,0x3c, - 0x3,0x21,0x30, 0x2,0x21,0x28, 0x1,0x44,0x3d, 0x3,0x21,0x2e, - 0x1,0x44,0x66, 0x1,0x45,0x65, 0x1,0x45,0x67, 0x1,0x45,0x66, - 0x4,0x22,0x27, 0x1,0x47,0x24, 0x1,0x47,0x25, 0x3,0x23,0x45, - 0x1,0x4b,0x65, 0x3,0x2b,0x22, 0x1,0x53,0x7d, 0x1,0x44,0x22, - 0x4,0x21,0x24, 0x2,0x21,0x22, 0x1,0x44,0x26, 0x1,0x44,0x3f, - 0x1,0x44,0x3e, 0x3,0x21,0x46, 0x3,0x21,0x45, 0x3,0x22,0x64, - 0x1,0x47,0x26, 0x4,0x22,0x28, 0x3,0x24,0x40, 0x1,0x4b,0x66, - 0x4,0x25,0x31, 0x4,0x25,0x30, 0x3,0x2b,0x23, 0x1,0x58,0x71, - 0x2,0x33,0x4e, 0x3,0x39,0x6c, 0x3,0x39,0x6e, 0x1,0x63,0x2a, - 0x2,0x41,0x56, 0x2,0x41,0x57, 0x3,0x21,0x24, 0x1,0x44,0x27, - 0x3,0x21,0x2d, 0x1,0x44,0x68, 0x3,0x22,0x65, 0x1,0x4b,0x67, - 0x1,0x44,0x28, 0x2,0x21,0x29, 0x1,0x44,0x40, 0x3,0x21,0x31, - 0x1,0x44,0x69, 0x1,0x44,0x6b, 0x2,0x21,0x31, 0x1,0x44,0x6c, - 0x1,0x44,0x6a, 0x4,0x21,0x3b, 0x3,0x21,0x6c, 0x3,0x22,0x66, - 0x1,0x47,0x27, 0x1,0x4b,0x68, 0x3,0x24,0x42, 0x3,0x27,0x42, - 0x1,0x4b,0x69, 0x1,0x4f,0x67, 0x1,0x27,0x28, 0x1,0x44,0x41, - 0x1,0x44,0x6d, 0x3,0x21,0x47, 0x1,0x47,0x28, 0x1,0x47,0x2a, - 0x1,0x47,0x29, 0x1,0x48,0x6c, 0x1,0x4b,0x6a, 0x1,0x4b,0x6b, - 0x1,0x4f,0x68, 0x1,0x4f,0x69, 0x3,0x2b,0x26, 0x3,0x2b,0x25, - 0x3,0x2b,0x27, 0x3,0x2b,0x24, 0x1,0x53,0x7e, 0x4,0x36,0x2e, - 0x2,0x41,0x58, 0x3,0x40,0x33, 0x2,0x6d,0x44, 0x1,0x44,0x29, - 0x3,0x21,0x32, 0x3,0x21,0x33, 0x1,0x44,0x6f, 0x1,0x44,0x6e, - 0x2,0x21,0x32, 0x1,0x44,0x70, 0x1,0x44,0x76, 0x3,0x21,0x49, - 0x1,0x44,0x71, 0x1,0x44,0x72, 0x2,0x21,0x34, 0x2,0x21,0x33, - 0x1,0x44,0x74, 0x1,0x44,0x75, 0x3,0x21,0x4c, 0x1,0x44,0x73, - 0x3,0x21,0x4b, 0x3,0x21,0x4a, 0x4,0x21,0x3c, 0x1,0x45,0x6a, - 0x1,0x45,0x6b, 0x1,0x45,0x6c, 0x1,0x45,0x6d, 0x1,0x45,0x69, - 0x1,0x45,0x70, 0x2,0x21,0x4a, 0x4,0x21,0x5b, 0x2,0x21,0x46, - 0x2,0x21,0x49, 0x1,0x45,0x71, 0x1,0x46,0x23, 0x3,0x21,0x6d, - 0x2,0x21,0x48, 0x4,0x21,0x5a, 0x1,0x45,0x6e, 0x1,0x45,0x6f, - 0x1,0x45,0x68, 0x3,0x21,0x72, 0x3,0x21,0x70, 0x2,0x21,0x45, - 0x2,0x21,0x47, 0x3,0x22,0x6f, 0x3,0x22,0x68, 0x1,0x47,0x37, - 0x2,0x21,0x6f, 0x1,0x47,0x34, 0x1,0x47,0x38, 0x2,0x21,0x79, - 0x2,0x21,0x6d, 0x1,0x47,0x35, 0x2,0x21,0x71, 0x3,0x22,0x6b, - 0x3,0x22,0x67, 0x3,0x22,0x76, 0x1,0x47,0x36, 0x3,0x22,0x6e, - 0x1,0x47,0x39, 0x4,0x22,0x2d, 0x1,0x47,0x2b, 0x2,0x21,0x70, - 0x1,0x47,0x3a, 0x2,0x21,0x74, 0x3,0x22,0x6d, 0x2,0x21,0x78, - 0x2,0x21,0x75, 0x3,0x22,0x6c, 0x3,0x22,0x74, 0x2,0x21,0x72, - 0x1,0x47,0x2c, 0x1,0x47,0x2e, 0x1,0x47,0x3b, 0x4,0x22,0x2a, - 0x1,0x47,0x30, 0x2,0x21,0x6a, 0x1,0x47,0x33, 0x1,0x47,0x31, - 0x1,0x47,0x32, 0x2,0x21,0x7a, 0x2,0x21,0x77, 0x2,0x21,0x6e, - 0x1,0x47,0x2f, 0x3,0x22,0x70, 0x3,0x22,0x77, 0x2,0x21,0x6b, - 0x1,0x47,0x2d, 0x3,0x22,0x75, 0x4,0x22,0x2e, 0x3,0x22,0x73, - 0x2,0x21,0x73, 0x2,0x21,0x76, 0x3,0x22,0x72, 0xf,0x21,0x71, - 0x2,0x21,0x6c, 0x2,0x23,0x28, 0x4,0x23,0x39, 0x1,0x49,0x24, - 0x1,0x48,0x75, 0x3,0x24,0x50, 0x3,0x24,0x48, 0x2,0x23,0x29, - 0x1,0x48,0x72, 0x3,0x24,0x4f, 0x1,0x49,0x26, 0x3,0x24,0x46, - 0x1,0x48,0x7a, 0x3,0x24,0x45, 0x1,0x48,0x79, 0x2,0x22,0x7b, - 0x1,0x48,0x7d, 0x1,0x48,0x78, 0x2,0x23,0x22, 0x2,0x23,0x2a, - 0x3,0x24,0x4e, 0x2,0x23,0x26, 0x3,0x24,0x49, 0x1,0x48,0x7b, - 0x3,0x24,0x4b, 0x3,0x24,0x43, 0x1,0x48,0x7e, 0x1,0x48,0x6f, - 0x1,0x49,0x29, 0x2,0x22,0x7d, 0x3,0x24,0x44, 0x3,0x24,0x4c, - 0x2,0x25,0x3d, 0x1,0x48,0x6d, 0x1,0x49,0x25, 0x1,0x48,0x6e, - 0x1,0x48,0x76, 0x1,0x48,0x77, 0x2,0x23,0x24, 0x2,0x22,0x7e, - 0x1,0x48,0x7c, 0x1,0x48,0x74, 0x2,0x22,0x7a, 0x1,0x48,0x70, - 0x2,0x23,0x27, 0x1,0x49,0x27, 0x1,0x49,0x2a, 0x1,0x48,0x73, - 0x1,0x49,0x22, 0x1,0x49,0x28, 0x1,0x48,0x71, 0x2,0x23,0x25, - 0x1,0x49,0x23, 0x2,0x23,0x2b, 0x2,0x22,0x7c, 0x1,0x49,0x21, - 0x2,0x23,0x21, 0x3,0x64,0x48, 0x2,0x23,0x23, 0x3,0x64,0x49, - 0x1,0x4b,0x79, 0x2,0x25,0x3f, 0x2,0x25,0x4b, 0x1,0x4b,0x71, - 0x3,0x27,0x47, 0x2,0x25,0x4c, 0x1,0x4b,0x6c, 0x1,0x4b,0x76, - 0x4,0x25,0x3e, 0x3,0x27,0x4f, 0x1,0x4b,0x6f, 0x2,0x25,0x39, - 0x1,0x4b,0x77, 0x2,0x25,0x38, 0x2,0x25,0x3c, 0x2,0x25,0x43, - 0x2,0x25,0x41, 0x1,0x4c,0x21, 0x1,0x4b,0x7a, 0x2,0x25,0x33, - 0x2,0x25,0x35, 0x1,0x4b,0x7c, 0x1,0x4b,0x70, 0x2,0x25,0x36, - 0x2,0x25,0x42, 0x2,0x25,0x49, 0x1,0x4b,0x75, 0x2,0x25,0x3b, - 0x2,0x25,0x34, 0x1,0x4b,0x74, 0x2,0x25,0x37, 0x1,0x4b,0x78, - 0x2,0x25,0x3a, 0x3,0x27,0x44, 0x1,0x4b,0x73, 0x3,0x27,0x51, - 0x1,0x4b,0x6e, 0x3,0x27,0x48, 0x1,0x4b,0x7d, 0x2,0x25,0x44, - 0x1,0x4b,0x7e, 0x2,0x25,0x48, 0x3,0x27,0x43, 0x2,0x25,0x46, - 0x2,0x25,0x4a, 0x1,0x4b,0x7b, 0x2,0x25,0x3e, 0x2,0x25,0x32, - 0x4,0x25,0x36, 0x2,0x25,0x40, 0x1,0x4b,0x72, 0x2,0x25,0x45, - 0x1,0x4b,0x6d, 0x2,0x25,0x47, 0x3,0x27,0x4c, 0x3,0x27,0x49, - 0x3,0x27,0x4b, 0x3,0x27,0x4a, 0x3,0x27,0x4d, 0xf,0x25,0x44, - 0x1,0x4f,0x78, 0x1,0x4f,0x6c, 0x3,0x2b,0x2d, 0x3,0x2b,0x2e, - 0x2,0x29,0x22, 0x2,0x29,0x2a, 0x3,0x2b,0x36, 0x1,0x4f,0x6b, - 0x1,0x4f,0x73, 0x1,0x50,0x21, 0x3,0x2b,0x2c, 0x2,0x29,0x30, - 0x2,0x29,0x2e, 0x2,0x29,0x29, 0x4,0x28,0x38, 0x4,0x28,0x3e, - 0x3,0x2b,0x2b, 0x1,0x4f,0x6d, 0x2,0x29,0x2f, 0x2,0x29,0x25, - 0x1,0x4f,0x7b, 0x1,0x4f,0x72, 0x1,0x4f,0x7a, 0x2,0x28,0x7e, - 0x3,0x2b,0x32, 0x2,0x29,0x2c, 0x3,0x2b,0x2f, 0x2,0x29,0x23, - 0x1,0x4f,0x76, 0x2,0x29,0x24, 0x3,0x2b,0x33, 0x2,0x28,0x7d, - 0x1,0x4f,0x7d, 0x1,0x4f,0x70, 0x1,0x4f,0x79, 0x1,0x4f,0x6f, - 0x3,0x2b,0x28, 0x2,0x29,0x21, 0x2,0x29,0x26, 0x3,0x2b,0x29, - 0x2,0x29,0x2d, 0x1,0x4f,0x77, 0x1,0x4f,0x74, 0x2,0x29,0x28, - 0x1,0x4f,0x7c, 0x2,0x29,0x2b, 0x2,0x29,0x27, 0x1,0x4f,0x71, - 0x1,0x4f,0x7e, 0x1,0x4f,0x75, 0x1,0x4f,0x6e, 0x1,0x4f,0x6a, - 0x4,0x28,0x3f, 0x3,0x2b,0x35, 0xf,0x29,0x2d, 0x3,0x2b,0x34, - 0x3,0x64,0x4a, 0x4,0x28,0x3d, 0x2,0x29,0x31, 0x1,0x54,0x3a, - 0x1,0x54,0x24, 0x3,0x2f,0x48, 0x1,0x54,0x34, 0x3,0x2f,0x4d, - 0x1,0x54,0x39, 0x2,0x2d,0x71, 0x2,0x2d,0x70, 0x2,0x2d,0x75, - 0x2,0x2d,0x76, 0x1,0x54,0x27, 0x3,0x2f,0x44, 0x1,0x54,0x30, - 0x3,0x2f,0x58, 0x3,0x2f,0x4c, 0x3,0x2f,0x56, 0x1,0x54,0x3d, - 0x3,0x2f,0x46, 0x1,0x54,0x31, 0x4,0x2b,0x62, 0x3,0x2f,0x4b, - 0x3,0x2f,0x49, 0x3,0x2f,0x47, 0x2,0x2d,0x6a, 0x1,0x54,0x2a, - 0x2,0x2d,0x6b, 0x3,0x2f,0x4f, 0x1,0x54,0x3f, 0x4,0x2b,0x64, - 0x1,0x54,0x36, 0x1,0x54,0x21, 0x1,0x54,0x22, 0x2,0x2d,0x7e, - 0x1,0x59,0x24, 0x3,0x2f,0x53, 0x1,0x54,0x2f, 0x1,0x54,0x2e, - 0x2,0x2d,0x6c, 0x1,0x54,0x32, 0x2,0x33,0x5e, 0x1,0x54,0x29, - 0x2,0x2d,0x77, 0x1,0x54,0x38, 0x1,0x54,0x37, 0x1,0x54,0x2d, - 0x2,0x2d,0x6f, 0x2,0x2d,0x78, 0x3,0x2f,0x45, 0x2,0x2d,0x69, - 0x1,0x54,0x2c, 0x2,0x2d,0x79, 0x1,0x54,0x35, 0x2,0x2d,0x6d, - 0x1,0x54,0x23, 0x3,0x2f,0x4e, 0x1,0x54,0x26, 0x1,0x54,0x25, - 0x2,0x2d,0x7a, 0x1,0x54,0x33, 0x1,0x54,0x28, 0x1,0x54,0x3c, - 0x1,0x54,0x3e, 0x2,0x2d,0x74, 0x1,0x54,0x3b, 0x3,0x2f,0x51, - 0x2,0x2d,0x7c, 0x2,0x2d,0x6e, 0x2,0x2d,0x7d, 0x3,0x2f,0x43, - 0x2,0x2d,0x72, 0x4,0x2b,0x61, 0x2,0x2d,0x7b, 0x3,0x2f,0x50, - 0x2,0x2d,0x73, 0x3,0x2f,0x54, 0x3,0x2f,0x55, 0x1,0x54,0x2b, - 0x3,0x64,0x4b, 0x2,0x33,0x66, 0x2,0x33,0x5a, 0x3,0x34,0x3c, - 0x1,0x58,0x76, 0x3,0x34,0x3f, 0x2,0x33,0x5f, 0x2,0x33,0x65, - 0x1,0x58,0x75, 0x2,0x33,0x58, 0x1,0x58,0x79, 0x2,0x33,0x5c, - 0x2,0x33,0x55, 0x1,0x58,0x77, 0x2,0x33,0x59, 0x1,0x58,0x7c, - 0x1,0x59,0x23, 0x3,0x34,0x44, 0x2,0x33,0x6a, 0x3,0x34,0x41, - 0x2,0x33,0x54, 0x3,0x34,0x42, 0x1,0x58,0x7d, 0x3,0x2f,0x57, - 0x2,0x33,0x69, 0x3,0x34,0x47, 0x3,0x34,0x3d, 0x1,0x58,0x78, - 0x2,0x33,0x5b, 0x1,0x58,0x74, 0x2,0x33,0x56, 0x2,0x33,0x52, - 0x2,0x33,0x60, 0x2,0x33,0x53, 0x2,0x33,0x51, 0x2,0x33,0x5d, - 0x2,0x33,0x63, 0x2,0x33,0x64, 0x1,0x58,0x7a, 0x3,0x34,0x40, - 0x4,0x30,0x47, 0x2,0x3a,0x3f, 0x2,0x33,0x61, 0x2,0x33,0x50, - 0x2,0x33,0x62, 0x3,0x34,0x4b, 0x1,0x59,0x26, 0x2,0x33,0x67, - 0x1,0x59,0x25, 0x2,0x33,0x4f, 0x3,0x34,0x43, 0x2,0x33,0x57, - 0x2,0x33,0x68, 0x1,0x59,0x21, 0x1,0x58,0x7e, 0x1,0x58,0x7b, - 0x1,0x59,0x22, 0x3,0x34,0x4c, 0x3,0x34,0x4a, 0x1,0x58,0x72, - 0x3,0x34,0x45, 0x3,0x34,0x46, 0x1,0x58,0x73, 0x1,0x5e,0x2e, - 0x3,0x39,0x75, 0x2,0x3a,0x42, 0x2,0x3a,0x3b, 0x4,0x36,0x34, - 0x1,0x5e,0x2b, 0x4,0x36,0x33, 0x2,0x3a,0x43, 0x3,0x39,0x71, - 0x3,0x39,0x72, 0x4,0x36,0x36, 0x2,0x3a,0x39, 0x2,0x3a,0x3c, - 0x1,0x5e,0x2a, 0x2,0x3a,0x3d, 0x3,0x39,0x6f, 0x4,0x36,0x31, - 0x1,0x5e,0x2d, 0x2,0x3a,0x41, 0x4,0x36,0x3c, 0x2,0x3a,0x37, - 0x2,0x3a,0x36, 0x1,0x5e,0x2f, 0x3,0x39,0x70, 0x1,0x5e,0x30, - 0x1,0x5e,0x2c, 0x1,0x5e,0x31, 0x2,0x3a,0x35, 0x2,0x3a,0x40, - 0x2,0x3a,0x3e, 0x2,0x3a,0x38, 0x4,0x36,0x39, 0x4,0x36,0x30, - 0x4,0x36,0x3a, 0x1,0x5e,0x29, 0x2,0x3a,0x3a, 0x3,0x64,0x4d, - 0x3,0x40,0x39, 0x3,0x40,0x3c, 0x1,0x63,0x31, 0x1,0x63,0x2b, - 0x2,0x41,0x5c, 0x1,0x63,0x34, 0x2,0x41,0x62, 0x2,0x41,0x65, - 0x1,0x63,0x2d, 0x1,0x63,0x2e, 0x2,0x41,0x5f, 0x1,0x63,0x2c, - 0x2,0x41,0x68, 0x1,0x63,0x32, 0x2,0x41,0x69, 0x3,0x40,0x3a, - 0x2,0x41,0x64, 0x1,0x63,0x33, 0x3,0x40,0x37, 0x2,0x41,0x59, - 0x1,0x63,0x30, 0x2,0x41,0x5a, 0x4,0x3c,0x29, 0x2,0x41,0x63, - 0x2,0x41,0x61, 0x3,0x40,0x3d, 0x2,0x41,0x5d, 0x1,0x63,0x2f, - 0x2,0x41,0x5b, 0x1,0x63,0x35, 0x2,0x41,0x60, 0x2,0x41,0x67, - 0x2,0x41,0x5e, 0x2,0x41,0x66, 0x3,0x40,0x36, 0x3,0x40,0x3e, - 0x1,0x67,0x7c, 0x1,0x67,0x79, 0x3,0x45,0x6b, 0x1,0x67,0x7a, - 0x4,0x42,0x2d, 0x2,0x49,0x21, 0x2,0x48,0x77, 0x1,0x67,0x78, - 0x1,0x67,0x75, 0x2,0x48,0x78, 0x3,0x45,0x6e, 0x3,0x45,0x6c, - 0x1,0x67,0x77, 0x2,0x48,0x7b, 0x3,0x45,0x6d, 0x2,0x48,0x7d, - 0x3,0x45,0x76, 0x4,0x42,0x35, 0x2,0x49,0x26, 0x3,0x45,0x70, - 0x3,0x45,0x75, 0x2,0x49,0x25, 0x2,0x48,0x7e, 0x1,0x67,0x74, - 0x2,0x48,0x76, 0x1,0x67,0x72, 0x2,0x48,0x79, 0x1,0x67,0x7d, - 0x2,0x48,0x7c, 0x3,0x45,0x71, 0x2,0x49,0x22, 0x1,0x67,0x76, - 0x1,0x67,0x73, 0x2,0x49,0x24, 0x2,0x49,0x23, 0x1,0x67,0x7b, - 0x2,0x48,0x7a, 0x3,0x45,0x74, 0x1,0x6c,0x23, 0x2,0x4f,0x54, - 0x3,0x4b,0x29, 0x2,0x4f,0x51, 0x1,0x6c,0x24, 0x4,0x48,0x79, - 0x1,0x6c,0x22, 0x3,0x4b,0x2b, 0x2,0x4f,0x58, 0x2,0x4f,0x55, - 0x2,0x4f,0x4e, 0x1,0x6c,0x21, 0x3,0x4b,0x2d, 0x1,0x6c,0x25, - 0x2,0x4f,0x4f, 0x1,0x6b,0x7e, 0x1,0x6c,0x28, 0x2,0x4f,0x52, - 0x2,0x4f,0x53, 0x1,0x6c,0x26, 0x1,0x6c,0x27, 0x2,0x4f,0x59, - 0x2,0x4f,0x56, 0x2,0x4f,0x57, 0x3,0x4b,0x2c, 0x3,0x4b,0x27, - 0x3,0x64,0x4e, 0x1,0x70,0x33, 0x2,0x56,0x43, 0x1,0x70,0x30, - 0x2,0x56,0x40, 0x1,0x70,0x32, 0x1,0x70,0x34, 0x3,0x50,0x31, - 0x2,0x56,0x41, 0x1,0x70,0x31, 0x4,0x4f,0x5a, 0x2,0x56,0x42, - 0x3,0x50,0x35, 0x2,0x56,0x3f, 0x3,0x50,0x30, 0x3,0x50,0x34, - 0x1,0x73,0x41, 0x2,0x5c,0x49, 0x1,0x73,0x42, 0x2,0x5c,0x47, - 0x4,0x55,0x65, 0x2,0x5c,0x48, 0x2,0x5c,0x46, 0x2,0x5c,0x45, - 0x3,0x54,0x41, 0x3,0x54,0x40, 0x2,0x5c,0x4a, 0x1,0x73,0x40, - 0x3,0x50,0x33, 0x4,0x55,0x69, 0x2,0x61,0x44, 0x2,0x61,0x45, - 0x3,0x57,0x52, 0x2,0x4f,0x50, 0x2,0x61,0x43, 0x1,0x73,0x43, - 0x1,0x78,0x2b, 0x2,0x65,0x37, 0x2,0x65,0x38, 0x3,0x5c,0x32, - 0x1,0x7a,0x62, 0x1,0x7a,0x63, 0x2,0x6b,0x4f, 0x2,0x6b,0x4e, - 0x1,0x7b,0x58, 0x1,0x7b,0x57, 0x2,0x6e,0x7d, 0x3,0x60,0x6f, - 0x1,0x44,0x2a, 0x1,0x44,0x42, 0x1,0x44,0x78, 0x4,0x21,0x3d, - 0x1,0x44,0x77, 0x1,0x45,0x73, 0x1,0x45,0x72, 0x1,0x47,0x3e, - 0x1,0x47,0x3d, 0x1,0x47,0x3f, 0x1,0x47,0x3c, 0x3,0x22,0x78, - 0x1,0x49,0x2c, 0x1,0x49,0x2b, 0x1,0x49,0x2d, 0x3,0x24,0x54, - 0x4,0x23,0x3b, 0x3,0x24,0x53, 0x3,0x24,0x51, 0x1,0x4c,0x23, - 0x4,0x25,0x3f, 0x1,0x4c,0x22, 0x1,0x4c,0x24, 0x3,0x27,0x52, - 0x1,0x50,0x22, 0x4,0x28,0x40, 0x1,0x22,0x79, 0x2,0x2e,0x21, - 0x1,0x22,0x7a, 0x1,0x59,0x27, 0x1,0x22,0x7c, 0x1,0x22,0x7b, - 0x2,0x3a,0x44, 0x3,0x39,0x76, 0x1,0x22,0x7d, 0x1,0x67,0x7e, - 0x1,0x22,0x7e, 0x3,0x5e,0x25, 0x1,0x44,0x2b, 0x3,0x21,0x34, - 0x1,0x44,0x79, 0x1,0x47,0x40, 0x1,0x4c,0x25, 0x3,0x2b,0x37, - 0x1,0x44,0x2c, 0x1,0x44,0x7c, 0x1,0x44,0x7a, 0x1,0x44,0x7b, - 0x1,0x47,0x41, 0x3,0x22,0x7a, 0x4,0x22,0x34, 0x1,0x49,0x2e, - 0x1,0x4c,0x27, 0x1,0x4c,0x26, 0x1,0x4c,0x28, 0x3,0x2e,0x7b, - 0x1,0x54,0x40, 0x3,0x40,0x3f, 0x3,0x64,0x53, 0x1,0x70,0x35, - 0x3,0x21,0x27, 0x4,0x21,0x3e, 0x3,0x21,0x4d, 0x3,0x21,0x48, - 0x3,0x21,0x4e, 0x2,0x21,0x2e, 0x4,0x21,0x52, 0x1,0x45,0x74, - 0x1,0x45,0x75, 0x3,0x21,0x78, 0x3,0x21,0x79, 0x1,0x47,0x42, - 0x4,0x22,0x36, 0x2,0x23,0x2c, 0x3,0x27,0x55, 0x1,0x50,0x24, - 0x1,0x50,0x23, 0x2,0x2e,0x23, 0x2,0x2e,0x22, 0x1,0x59,0x28, - 0x3,0x21,0x28, 0x1,0x44,0x7d, 0x2,0x21,0x35, 0x3,0x21,0x7a, - 0x3,0x24,0x57, 0x2,0x25,0x4d, 0x3,0x2b,0x39, 0x1,0x50,0x25, - 0x3,0x2f,0x5b, 0x1,0x54,0x43, 0x3,0x2f,0x59, 0x1,0x54,0x41, - 0x1,0x54,0x42, 0x3,0x2f,0x5a, 0x3,0x34,0x4d, 0xf,0x46,0x5c, - 0x1,0x70,0x36, 0x1,0x27,0x2f, 0x1,0x45,0x76, 0x4,0x21,0x5e, - 0x1,0x47,0x43, 0x2,0x21,0x7b, 0x3,0x22,0x7e, 0x3,0x22,0x7d, - 0x3,0x22,0x7c, 0x3,0x24,0x59, 0x1,0x49,0x2f, 0x1,0x49,0x30, - 0x3,0x24,0x5a, 0x2,0x23,0x2d, 0x4,0x23,0x3d, 0x2,0x25,0x4e, - 0x1,0x4c,0x29, 0x2,0x25,0x4f, 0x4,0x25,0x40, 0x4,0x25,0x43, - 0x3,0x2b,0x3b, 0x3,0x2b,0x3d, 0x3,0x2b,0x3e, 0x2,0x2e,0x25, - 0x2,0x2e,0x26, 0x1,0x54,0x46, 0x3,0x2f,0x5e, 0x2,0x2e,0x27, - 0x3,0x2f,0x5f, 0x2,0x2e,0x24, 0x1,0x54,0x47, 0x1,0x54,0x45, - 0x1,0x54,0x44, 0x2,0x2e,0x28, 0x3,0x34,0x4f, 0x2,0x33,0x6b, - 0x3,0x34,0x4e, 0x3,0x39,0x7d, 0x3,0x39,0x7a, 0x2,0x3a,0x45, - 0x4,0x36,0x3f, 0x3,0x39,0x7e, 0x2,0x41,0x6a, 0x2,0x49,0x27, - 0x3,0x4b,0x2f, 0x3,0x4b,0x2e, 0x3,0x4b,0x30, 0x1,0x6c,0x29, - 0x1,0x70,0x37, 0x2,0x56,0x44, 0x3,0x54,0x42, 0x1,0x44,0x2d, - 0x1,0x44,0x3b, 0x3,0x21,0x2f, 0x3,0x21,0x35, 0x3,0x21,0x51, - 0x3,0x21,0x7b, 0x3,0x23,0x22, 0xf,0x22,0x59, 0x3,0x24,0x5b, - 0x3,0x27,0x59, 0x4,0x25,0x45, 0x1,0x59,0x29, 0x1,0x5e,0x33, - 0x6,0x46,0x65, 0x1,0x68,0x21, 0x3,0x45,0x7a, 0x2,0x21,0x23, - 0x1,0x44,0x7e, 0x4,0x21,0x60, 0x1,0x45,0x79, 0x1,0x45,0x77, - 0x1,0x45,0x78, 0x1,0x4c,0x2a, 0x3,0x27,0x5a, 0x1,0x44,0x2e, - 0x1,0x44,0x2f, 0x4,0x21,0x2a, 0x1,0x44,0x43, 0x3,0x21,0x36, - 0x3,0x21,0x52, 0x1,0x45,0x21, 0x1,0x45,0x22, 0x1,0x45,0x23, - 0x2,0x21,0x4c, 0x1,0x45,0x7a, 0x3,0x21,0x7d, 0x2,0x21,0x4b, - 0x1,0x47,0x47, 0x3,0x23,0x25, 0x2,0x21,0x7d, 0x1,0x47,0x45, - 0x1,0x47,0x46, 0x2,0x21,0x7c, 0x3,0x23,0x24, 0x3,0x23,0x26, - 0x1,0x47,0x48, 0x1,0x47,0x44, 0x3,0x23,0x27, 0x2,0x23,0x2e, - 0x1,0x4f,0x4f, 0x2,0x23,0x2f, 0x3,0x24,0x5f, 0x3,0x24,0x61, - 0x2,0x23,0x30, 0x4,0x23,0x40, 0x3,0x24,0x5c, 0x1,0x49,0x32, - 0x1,0x49,0x31, 0x3,0x24,0x5e, 0x3,0x24,0x5d, 0x1,0x49,0x35, - 0x1,0x49,0x33, 0x1,0x49,0x34, 0x3,0x24,0x60, 0x1,0x4c,0x30, - 0x3,0x27,0x5b, 0x1,0x4c,0x2f, 0x2,0x25,0x54, 0x2,0x25,0x51, - 0x2,0x25,0x52, 0x3,0x27,0x5e, 0x2,0x25,0x50, 0x1,0x4c,0x31, - 0x1,0x4c,0x2d, 0x1,0x4c,0x2c, 0x3,0x27,0x5f, 0x1,0x4c,0x2e, - 0x1,0x4c,0x2b, 0x3,0x27,0x5d, 0x4,0x25,0x4e, 0x3,0x64,0x4f, - 0x1,0x4c,0x32, 0x1,0x50,0x27, 0x2,0x29,0x32, 0x3,0x2b,0x3f, - 0x2,0x25,0x53, 0x1,0x50,0x2c, 0x3,0x2b,0x40, 0x2,0x29,0x33, - 0x1,0x50,0x28, 0x1,0x50,0x2b, 0x1,0x50,0x2a, 0x1,0x50,0x29, - 0x1,0x50,0x26, 0x3,0x2b,0x43, 0x2,0x2e,0x2b, 0x3,0x2f,0x68, - 0x1,0x54,0x4a, 0x2,0x2e,0x2e, 0x1,0x54,0x48, 0x3,0x2f,0x65, - 0x4,0x2b,0x6e, 0x3,0x2f,0x62, 0x2,0x2e,0x2a, 0x1,0x54,0x4b, - 0x1,0x54,0x49, 0x1,0x54,0x4c, 0x2,0x2e,0x2c, 0x2,0x2e,0x2d, - 0x3,0x2f,0x60, 0x2,0x2e,0x29, 0x2,0x2e,0x2f, 0x3,0x2f,0x66, - 0x3,0x2f,0x61, 0x3,0x2f,0x63, 0xf,0x2e,0x2d, 0x3,0x2f,0x64, - 0x3,0x34,0x50, 0x1,0x5e,0x37, 0x1,0x59,0x2a, 0x2,0x33,0x6c, - 0x2,0x33,0x6e, 0x2,0x33,0x6d, 0x2,0x33,0x6f, 0x1,0x59,0x2b, - 0x3,0x3a,0x23, 0x1,0x5e,0x34, 0x3,0x3a,0x21, 0x1,0x5e,0x35, - 0x1,0x5e,0x36, 0x3,0x34,0x51, 0x1,0x63,0x37, 0x2,0x41,0x6c, - 0x3,0x40,0x41, 0x2,0x41,0x6b, 0x2,0x41,0x6d, 0x2,0x41,0x6e, - 0x1,0x63,0x38, 0x3,0x40,0x40, 0x1,0x63,0x36, 0x2,0x49,0x28, - 0x2,0x49,0x29, 0x1,0x68,0x23, 0x1,0x68,0x22, 0x2,0x4c,0x61, - 0x4,0x49,0x25, 0x3,0x4b,0x31, 0x1,0x6c,0x2a, 0x1,0x6c,0x2b, - 0x1,0x6c,0x2c, 0x1,0x6c,0x2e, 0x2,0x4f,0x5a, 0x2,0x4f,0x5b, - 0x1,0x6c,0x2d, 0x3,0x4b,0x32, 0x3,0x50,0x36, 0x1,0x70,0x38, - 0x4,0x4f,0x64, 0x1,0x70,0x39, 0x3,0x50,0x37, 0x4,0x55,0x6d, - 0x2,0x65,0x39, 0x2,0x6b,0x51, 0x2,0x6b,0x50, 0x2,0x6e,0x7e, - 0x3,0x60,0x2c, 0x1,0x44,0x30, 0x3,0x21,0x37, 0x3,0x21,0x54, - 0x3,0x21,0x53, 0x1,0x45,0x7c, 0x1,0x45,0x7b, 0x1,0x47,0x49, - 0x4,0x22,0x42, 0x4,0x22,0x3f, 0x2,0x21,0x7e, 0x4,0x22,0x41, - 0x3,0x23,0x28, 0x1,0x49,0x37, 0x1,0x49,0x38, 0x1,0x49,0x36, - 0x1,0x49,0x39, 0x2,0x23,0x31, 0x2,0x23,0x32, 0x4,0x23,0x46, - 0x4,0x23,0x47, 0x4,0x23,0x48, 0x3,0x24,0x63, 0x3,0x24,0x62, - 0x3,0x27,0x61, 0x5,0x25,0x3a, 0x5,0x25,0x37, 0x5,0x25,0x38, - 0x3,0x27,0x60, 0x5,0x25,0x3b, 0x1,0x4c,0x34, 0x2,0x25,0x55, - 0x4,0x25,0x50, 0x1,0x4c,0x33, 0x3,0x27,0x62, 0x2,0x29,0x34, - 0x1,0x50,0x30, 0x2,0x29,0x35, 0x1,0x50,0x2f, 0x3,0x2b,0x48, - 0x3,0x2b,0x46, 0x4,0x28,0x49, 0x1,0x50,0x2d, 0x4,0x28,0x4b, - 0x1,0x50,0x2e, 0x3,0x2b,0x47, 0x3,0x2f,0x6f, 0x2,0x2e,0x30, - 0x3,0x2f,0x6c, 0x3,0x2f,0x6a, 0x3,0x2f,0x6d, 0x3,0x2f,0x6e, - 0x1,0x59,0x2c, 0x2,0x33,0x71, 0x3,0x34,0x52, 0x1,0x59,0x2f, - 0x2,0x33,0x70, 0x1,0x5b,0x2b, 0x1,0x59,0x2e, 0x1,0x59,0x2d, - 0x1,0x5e,0x3a, 0x5,0x36,0x6a, 0x1,0x5e,0x39, 0x1,0x5e,0x38, - 0x1,0x63,0x39, 0x3,0x40,0x45, 0x3,0x40,0x44, 0x1,0x63,0x3c, - 0x1,0x63,0x3d, 0x1,0x63,0x3b, 0x4,0x3c,0x3c, 0x1,0x63,0x3a, - 0x3,0x40,0x46, 0x5,0x44,0x67, 0x2,0x49,0x2a, 0x3,0x46,0x21, - 0x2,0x49,0x2b, 0x5,0x44,0x63, 0x3,0x45,0x7e, 0x3,0x4b,0x33, - 0x2,0x4f,0x5d, 0x1,0x6c,0x2f, 0x2,0x4f,0x5c, 0x3,0x4d,0x2c, - 0x1,0x70,0x3a, 0x2,0x5c,0x4b, 0x1,0x73,0x44, 0x5,0x53,0x62, - 0x2,0x65,0x3a, 0x1,0x79,0x61, 0x1,0x27,0x34, 0x1,0x44,0x44, - 0x1,0x45,0x24, 0x2,0x21,0x36, 0x3,0x21,0x55, 0x1,0x45,0x25, - 0x1,0x45,0x26, 0x3,0x21,0x56, 0xf,0x21,0x30, 0x3,0x22,0x23, - 0x3,0x22,0x22, 0x1,0x45,0x7d, 0x1,0x45,0x7e, 0x3,0x22,0x24, - 0x1,0x47,0x4a, 0x2,0x23,0x33, 0x2,0x25,0x56, 0x2,0x25,0x57, - 0x4,0x25,0x51, 0x1,0x50,0x31, 0x2,0x2e,0x31, 0x1,0x59,0x31, - 0x1,0x59,0x30, 0x2,0x3a,0x47, 0x2,0x3a,0x46, 0x6,0x50,0x74, - 0x3,0x50,0x38, 0x1,0x44,0x31, 0x1,0x45,0x27, 0x1,0x46,0x21, - 0x4,0x30,0x5e, 0x1,0x59,0x32, 0x2,0x21,0x24, 0x4,0x21,0x65, - 0x2,0x21,0x4d, 0x1,0x46,0x22, 0x3,0x22,0x26, 0x2,0x22,0x22, - 0x1,0x47,0x4c, 0x1,0x47,0x4b, 0x2,0x22,0x21, 0x1,0x49,0x3a, - 0x3,0x64,0x50, 0x3,0x24,0x65, 0x3,0x2b,0x49, 0x4,0x28,0x4e, - 0x4,0x28,0x50, 0x1,0x54,0x4d, 0x4,0x2b,0x78, 0x4,0x30,0x5f, - 0x2,0x33,0x72, 0x1,0x63,0x3e, 0x2,0x49,0x2c, 0x1,0x68,0x24, - 0x3,0x46,0x23, 0x3,0x4b,0x34, 0x2,0x56,0x45, 0x3,0x54,0x44, - 0x3,0x5c,0x34, 0x2,0x68,0x6a, 0x3,0x21,0x29, 0x1,0x45,0x28, - 0x3,0x21,0x57, 0x3,0x24,0x66, 0x2,0x25,0x58, 0x2,0x29,0x36, - 0x1,0x59,0x35, 0x1,0x59,0x33, 0x1,0x59,0x34, 0x1,0x44,0x32, - 0x4,0x21,0x30, 0x1,0x44,0x45, 0x1,0x24,0x3f, 0x1,0x45,0x2b, - 0x3,0x21,0x59, 0x1,0x45,0x2a, 0x1,0x45,0x29, 0x1,0x46,0x25, - 0x1,0x46,0x24, 0x3,0x23,0x2a, 0x2,0x21,0x4e, 0x2,0x22,0x23, - 0xf,0x22,0x2c, 0x3,0x23,0x2b, 0x3,0x23,0x2d, 0x1,0x4c,0x38, - 0x1,0x4c,0x35, 0x1,0x4c,0x37, 0x1,0x4c,0x36, 0x3,0x27,0x63, - 0x1,0x50,0x32, 0x3,0x2b,0x4a, 0x4,0x30,0x60, 0x1,0x5e,0x3b, - 0x4,0x66,0x30, 0x1,0x44,0x33, 0x3,0x21,0x5a, 0x1,0x45,0x2c, - 0x3,0x22,0x27, 0x1,0x46,0x27, 0x1,0x46,0x26, 0x2,0x23,0x34, - 0x4,0x23,0x4d, 0x3,0x64,0x51, 0x1,0x4c,0x39, 0x3,0x2a,0x5c, - 0x4,0x30,0x64, 0x3,0x21,0x2a, 0x4,0x21,0x31, 0x2,0x21,0x37, - 0x3,0x22,0x28, 0x1,0x46,0x29, 0x1,0x46,0x28, 0x1,0x47,0x4d, - 0x1,0x47,0x4e, 0x2,0x23,0x35, 0x1,0x49,0x3b, 0x3,0x24,0x67, - 0x1,0x49,0x3c, 0x3,0x27,0x65, 0x1,0x4c,0x3a, 0x1,0x4c,0x3b, - 0x1,0x4c,0x3c, 0x3,0x27,0x66, 0x1,0x50,0x33, 0x2,0x29,0x37, - 0x3,0x2b,0x4b, 0x4,0x30,0x65, 0x1,0x54,0x4e, 0x3,0x40,0x47, - 0x2,0x21,0x25, 0x4,0x21,0x44, 0x1,0x45,0x2d, 0x3,0x21,0x5b, - 0x4,0x21,0x67, 0x4,0x21,0x66, 0x3,0x22,0x29, 0x2,0x22,0x24, - 0x3,0x23,0x2f, 0x2,0x23,0x36, 0x2,0x23,0x37, 0x2,0x25,0x59, - 0x3,0x27,0x67, 0x2,0x25,0x5a, 0x2,0x29,0x39, 0x2,0x29,0x38, - 0x2,0x29,0x3b, 0x2,0x29,0x3a, 0x1,0x50,0x34, 0x3,0x64,0x52, - 0x2,0x33,0x73, 0x1,0x54,0x50, 0x2,0x2e,0x32, 0x1,0x54,0x4f, - 0x3,0x34,0x54, 0x4,0x30,0x68, 0x2,0x3a,0x48, 0x1,0x5e,0x3c, - 0x3,0x3a,0x28, 0x2,0x3a,0x49, 0x3,0x3a,0x27, 0x3,0x40,0x4a, - 0x3,0x40,0x49, 0x3,0x40,0x48, 0x2,0x49,0x2d, 0x1,0x68,0x25, - 0x3,0x46,0x25, 0x4,0x3c,0x40, 0x3,0x46,0x26, 0x3,0x4b,0x35, - 0x1,0x6c,0x30, 0x3,0x54,0x45, 0x2,0x65,0x3b, 0xf,0x6d,0x2e, - 0x3,0x21,0x2b, 0x3,0x21,0x5c, 0x4,0x21,0x45, 0x2,0x21,0x38, - 0x3,0x22,0x2a, 0x1,0x46,0x2a, 0x4,0x22,0x48, 0x3,0x23,0x31, - 0x4,0x25,0x59, 0x3,0x27,0x69, 0x3,0x27,0x6a, 0x1,0x59,0x36, - 0x3,0x34,0x55, 0x3,0x3a,0x29, 0x1,0x44,0x34, 0x1,0x44,0x46, - 0x1,0x45,0x2f, 0x1,0x45,0x2e, 0x3,0x21,0x5e, 0x1,0x45,0x30, - 0x3,0x21,0x60, 0x4,0x21,0x69, 0x3,0x22,0x2b, 0x3,0x23,0x33, - 0x4,0x23,0x4f, 0x1,0x4c,0x3e, 0x3,0x27,0x6b, 0x1,0x4c,0x3d, - 0x1,0x4c,0x3f, 0x3,0x2b,0x50, 0x3,0x2b,0x4f, 0x1,0x50,0x35, - 0x3,0x2b,0x4e, 0x3,0x2b,0x4d, 0x6,0x35,0x78, 0x1,0x54,0x51, - 0x3,0x40,0x4b, 0x2,0x56,0x46, 0x1,0x76,0x3b, 0x1,0x44,0x47, - 0x1,0x46,0x2c, 0x1,0x46,0x3b, 0x1,0x46,0x36, 0x4,0x21,0x6c, - 0x1,0x46,0x31, 0x1,0x46,0x30, 0x1,0x46,0x37, 0x1,0x46,0x35, - 0x1,0x46,0x2e, 0x1,0x46,0x3c, 0x1,0x46,0x2f, 0x1,0x46,0x2b, - 0x1,0x46,0x3a, 0x1,0x46,0x39, 0x1,0x46,0x38, 0x1,0x46,0x2d, - 0x3,0x22,0x31, 0x1,0x46,0x34, 0x3,0x22,0x2d, 0x3,0x22,0x2e, - 0x1,0x46,0x33, 0x3,0x22,0x2f, 0xf,0x21,0x50, 0x1,0x46,0x3d, - 0x1,0x46,0x32, 0x4,0x21,0x6a, 0x3,0x23,0x35, 0x3,0x23,0x37, - 0x1,0x47,0x54, 0x4,0x22,0x4c, 0x1,0x47,0x5a, 0x1,0x47,0x56, - 0x3,0x23,0x39, 0x1,0x47,0x5c, 0x2,0x22,0x25, 0x1,0x47,0x59, - 0x1,0x47,0x4f, 0x1,0x47,0x52, 0x1,0x47,0x55, 0x1,0x47,0x51, - 0x1,0x47,0x58, 0x1,0x47,0x5b, 0x1,0x47,0x50, 0x1,0x47,0x53, - 0x1,0x47,0x57, 0x1,0x47,0x5d, 0x3,0x23,0x3a, 0x3,0x23,0x3b, - 0x3,0x23,0x34, 0x2,0x23,0x40, 0x2,0x23,0x3d, 0x3,0x24,0x76, - 0x1,0x49,0x49, 0x2,0x23,0x3e, 0x1,0x49,0x3d, 0x1,0x49,0x3f, - 0x1,0x49,0x57, 0x1,0x49,0x52, 0x3,0x24,0x79, 0x3,0x24,0x7e, - 0x3,0x24,0x75, 0x2,0x23,0x45, 0x2,0x23,0x3f, 0x1,0x49,0x41, - 0x1,0x49,0x43, 0x2,0x23,0x44, 0x1,0x49,0x4a, 0x2,0x23,0x3a, - 0x1,0x49,0x56, 0x1,0x49,0x58, 0x1,0x49,0x3e, 0x1,0x49,0x4f, - 0x3,0x25,0x24, 0x2,0x23,0x38, 0x1,0x49,0x55, 0x3,0x24,0x77, - 0x1,0x49,0x46, 0x3,0x24,0x7b, 0x1,0x49,0x50, 0x1,0x49,0x51, - 0x2,0x23,0x39, 0x1,0x49,0x4e, 0x1,0x49,0x4c, 0x3,0x24,0x70, - 0x1,0x49,0x4d, 0x1,0x49,0x53, 0x2,0x23,0x41, 0x1,0x49,0x40, - 0x3,0x25,0x21, 0x1,0x49,0x54, 0x2,0x23,0x43, 0x1,0x49,0x48, - 0x1,0x49,0x45, 0x3,0x24,0x73, 0x2,0x23,0x3c, 0x1,0x49,0x44, - 0x2,0x23,0x46, 0x1,0x49,0x47, 0x3,0x24,0x7c, 0x1,0x49,0x4b, - 0x3,0x24,0x78, 0x3,0x24,0x74, 0x3,0x24,0x6d, 0x1,0x49,0x42, - 0x2,0x23,0x42, 0x3,0x24,0x7d, 0x3,0x25,0x22, 0x2,0x23,0x3b, - 0x3,0x25,0x23, 0x4,0x25,0x64, 0x4,0x25,0x63, 0x3,0x27,0x6e, - 0x2,0x25,0x6b, 0x2,0x25,0x6a, 0x1,0x4c,0x51, 0x2,0x25,0x6d, - 0x2,0x25,0x6f, 0x2,0x25,0x64, 0x2,0x25,0x67, 0x2,0x25,0x6e, - 0x1,0x4c,0x52, 0x3,0x27,0x74, 0x3,0x27,0x78, 0x2,0x25,0x61, - 0x2,0x25,0x65, 0x3,0x27,0x75, 0x4,0x25,0x5f, 0x2,0x25,0x69, - 0x2,0x29,0x4a, 0x1,0x4c,0x4d, 0x2,0x29,0x4e, 0x1,0x4c,0x40, - 0x2,0x25,0x66, 0x1,0x4c,0x41, 0x1,0x4c,0x4e, 0x1,0x4c,0x47, - 0x1,0x4c,0x43, 0x3,0x27,0x71, 0x2,0x25,0x62, 0x1,0x4c,0x46, - 0x1,0x4c,0x4b, 0x1,0x4c,0x54, 0x2,0x25,0x63, 0x2,0x25,0x5c, - 0x1,0x4c,0x45, 0x2,0x25,0x5d, 0x2,0x25,0x5f, 0x4,0x25,0x60, - 0x1,0x4c,0x48, 0x3,0x27,0x6c, 0x1,0x4c,0x4a, 0x2,0x25,0x5b, - 0x2,0x25,0x60, 0x3,0x27,0x70, 0x3,0x27,0x79, 0x1,0x4c,0x53, - 0x1,0x4c,0x4f, 0x2,0x25,0x68, 0x1,0x4c,0x55, 0x3,0x27,0x73, - 0x1,0x4c,0x4c, 0x2,0x25,0x5e, 0x1,0x4c,0x49, 0x3,0x27,0x6f, - 0x3,0x27,0x77, 0x1,0x4c,0x44, 0x1,0x4c,0x42, 0x2,0x25,0x6c, - 0x1,0x4c,0x50, 0xf,0x25,0x71, 0x3,0x2b,0x5c, 0x3,0x2b,0x5d, - 0x2,0x29,0x49, 0x2,0x29,0x3d, 0x2,0x29,0x4c, 0x3,0x2b,0x57, - 0x3,0x2b,0x59, 0x2,0x29,0x3f, 0x1,0x50,0x3c, 0x1,0x50,0x4a, - 0x1,0x50,0x38, 0x1,0x50,0x49, 0x1,0x50,0x41, 0x1,0x50,0x46, - 0x1,0x50,0x36, 0x2,0x29,0x3e, 0x2,0x29,0x44, 0x1,0x50,0x45, - 0x2,0x29,0x50, 0x1,0x50,0x47, 0x3,0x2b,0x5b, 0x1,0x50,0x3d, - 0x3,0x2b,0x54, 0x3,0x2b,0x5e, 0x2,0x29,0x46, 0x2,0x29,0x43, - 0x1,0x50,0x3b, 0x3,0x2b,0x51, 0x2,0x29,0x3c, 0x1,0x50,0x48, - 0x2,0x29,0x4b, 0x1,0x50,0x40, 0x2,0x29,0x4d, 0x1,0x50,0x4b, - 0x1,0x50,0x37, 0x1,0x50,0x42, 0x1,0x50,0x3f, 0x2,0x29,0x41, - 0x1,0x50,0x43, 0x2,0x29,0x47, 0x2,0x29,0x48, 0x1,0x50,0x3e, - 0x1,0x50,0x44, 0x1,0x50,0x3a, 0x3,0x2b,0x55, 0x3,0x64,0x54, - 0x3,0x2b,0x63, 0x3,0x2b,0x61, 0x1,0x50,0x39, 0x2,0x29,0x40, - 0x3,0x2b,0x53, 0x2,0x29,0x45, 0x3,0x2b,0x58, 0x2,0x29,0x4f, - 0x2,0x2e,0x46, 0x1,0x54,0x5e, 0x2,0x2e,0x34, 0x4,0x2c,0x2d, - 0x2,0x2e,0x39, 0x1,0x54,0x57, 0x1,0x54,0x62, 0x2,0x2e,0x37, - 0x1,0x54,0x52, 0x1,0x54,0x5c, 0x1,0x54,0x61, 0x2,0x2e,0x3e, - 0x4,0x2c,0x26, 0x1,0x54,0x5d, 0x1,0x54,0x60, 0x3,0x2f,0x77, - 0x3,0x30,0x21, 0x2,0x2e,0x41, 0x1,0x54,0x58, 0x2,0x2e,0x38, - 0x3,0x2f,0x74, 0x3,0x2f,0x78, 0x3,0x30,0x22, 0x2,0x2e,0x44, - 0x2,0x2e,0x45, 0x3,0x2f,0x79, 0x1,0x54,0x5a, 0x2,0x2e,0x43, - 0x1,0x54,0x56, 0x1,0x54,0x65, 0x4,0x2c,0x29, 0x2,0x2e,0x3b, - 0x3,0x2f,0x7b, 0x1,0x54,0x54, 0x3,0x2f,0x7a, 0x2,0x2e,0x48, - 0x2,0x2e,0x3c, 0x2,0x2e,0x40, 0x1,0x54,0x59, 0x1,0x54,0x64, - 0x2,0x2e,0x3d, 0x1,0x54,0x5f, 0x2,0x2e,0x42, 0x2,0x2e,0x49, - 0x2,0x34,0x24, 0x3,0x2f,0x73, 0x2,0x2e,0x47, 0x1,0x54,0x66, - 0x1,0x54,0x53, 0x2,0x2e,0x3f, 0x2,0x2e,0x36, 0x3,0x2f,0x76, - 0x1,0x54,0x5b, 0x4,0x2c,0x28, 0x4,0x2c,0x2e, 0x2,0x2e,0x35, - 0x3,0x2f,0x7e, 0x3,0x30,0x25, 0x2,0x2e,0x3a, 0xf,0x29,0x54, - 0xf,0x2e,0x42, 0xf,0x2e,0x4a, 0x2,0x2e,0x33, 0x1,0x54,0x63, - 0x3,0x67,0x21, 0x3,0x34,0x5f, 0x2,0x33,0x7a, 0x3,0x34,0x68, - 0x1,0x59,0x49, 0x2,0x34,0x2a, 0x1,0x59,0x47, 0x1,0x59,0x44, - 0x2,0x34,0x21, 0x1,0x59,0x40, 0x2,0x34,0x25, 0x1,0x59,0x4b, - 0x2,0x33,0x79, 0x2,0x33,0x7e, 0x2,0x33,0x7d, 0x1,0x54,0x55, - 0x1,0x59,0x46, 0x2,0x34,0x28, 0x3,0x34,0x66, 0x2,0x34,0x2b, - 0x2,0x33,0x76, 0x4,0x30,0x77, 0x1,0x5e,0x4e, 0x3,0x34,0x67, - 0x2,0x34,0x2c, 0x1,0x59,0x4c, 0x4,0x30,0x72, 0x1,0x59,0x3e, - 0x1,0x59,0x3b, 0x2,0x34,0x23, 0x1,0x59,0x38, 0x4,0x30,0x74, - 0x2,0x34,0x29, 0x3,0x34,0x5b, 0x1,0x59,0x3f, 0x2,0x34,0x2d, - 0x3,0x34,0x58, 0x2,0x33,0x77, 0x2,0x34,0x27, 0x1,0x59,0x42, - 0x2,0x33,0x78, 0x2,0x33,0x7b, 0x2,0x34,0x22, 0x3,0x34,0x62, - 0x3,0x34,0x61, 0x1,0x59,0x43, 0x1,0x59,0x41, 0x1,0x59,0x4d, - 0x3,0x34,0x57, 0x3,0x3a,0x36, 0x3,0x34,0x64, 0x4,0x30,0x6b, - 0x1,0x59,0x48, 0x3,0x34,0x5e, 0x1,0x59,0x3c, 0x1,0x5a,0x76, - 0x4,0x30,0x7a, 0x1,0x59,0x3d, 0x2,0x33,0x7c, 0x1,0x59,0x4a, - 0x1,0x59,0x45, 0x2,0x34,0x26, 0x1,0x59,0x3a, 0x3,0x34,0x59, - 0x1,0x59,0x39, 0x3,0x64,0x57, 0x3,0x64,0x56, 0x3,0x67,0x22, - 0x3,0x64,0x55, 0x2,0x33,0x74, 0x2,0x33,0x75, 0x2,0x3a,0x4e, - 0x3,0x3a,0x3c, 0x1,0x5e,0x3d, 0x1,0x5e,0x40, 0x2,0x3a,0x59, - 0x1,0x5e,0x54, 0x2,0x3a,0x5c, 0x1,0x5e,0x3e, 0x2,0x3a,0x55, - 0x1,0x5e,0x44, 0x1,0x5e,0x4a, 0x1,0x61,0x43, 0x3,0x3a,0x31, - 0x3,0x3a,0x38, 0x1,0x5e,0x48, 0x2,0x3a,0x52, 0x1,0x5e,0x55, - 0x1,0x5e,0x41, 0x1,0x5e,0x49, 0x2,0x3a,0x5a, 0x2,0x41,0x7c, - 0x2,0x3a,0x5f, 0x2,0x3a,0x53, 0x4,0x36,0x5c, 0x2,0x3a,0x4a, - 0x2,0x3a,0x57, 0x2,0x3a,0x51, 0x1,0x5e,0x47, 0x2,0x3a,0x5d, - 0x3,0x3a,0x2e, 0x3,0x3a,0x2a, 0x1,0x5e,0x43, 0x1,0x5e,0x57, - 0x1,0x5e,0x50, 0x3,0x3a,0x33, 0x1,0x5e,0x45, 0x1,0x5e,0x42, - 0x3,0x3a,0x40, 0x1,0x5e,0x4d, 0x3,0x3a,0x34, 0x2,0x3a,0x5e, - 0x2,0x3a,0x50, 0x2,0x3a,0x56, 0x2,0x3a,0x58, 0x2,0x3a,0x4c, - 0x2,0x3a,0x5b, 0x1,0x5e,0x3f, 0x2,0x3a,0x4b, 0x3,0x3a,0x42, - 0x1,0x5e,0x46, 0x1,0x5e,0x56, 0x1,0x5e,0x52, 0x2,0x3a,0x4d, - 0x1,0x5e,0x4c, 0x3,0x3a,0x3b, 0xf,0x39,0x71, 0x1,0x5e,0x53, - 0x1,0x5e,0x4f, 0x1,0x5e,0x4b, 0x3,0x3a,0x2f, 0x2,0x3a,0x54, - 0x6,0x47,0x29, 0x3,0x67,0x23, 0x1,0x5e,0x51, 0x2,0x41,0x7a, - 0x2,0x41,0x76, 0x3,0x40,0x51, 0x2,0x42,0x27, 0x2,0x41,0x6f, - 0x2,0x41,0x78, 0x1,0x63,0x4c, 0x1,0x63,0x4d, 0x1,0x63,0x45, - 0x2,0x42,0x23, 0x1,0x63,0x4f, 0x2,0x41,0x74, 0x2,0x41,0x73, - 0x2,0x41,0x71, 0x2,0x42,0x25, 0x1,0x63,0x43, 0x2,0x41,0x7d, - 0x2,0x41,0x72, 0x1,0x63,0x46, 0x2,0x41,0x7b, 0x1,0x63,0x41, - 0x2,0x41,0x77, 0x2,0x41,0x7e, 0x2,0x42,0x22, 0x3,0x40,0x4e, - 0x4,0x3c,0x4b, 0x2,0x42,0x26, 0x1,0x63,0x4a, 0x2,0x41,0x70, - 0x1,0x63,0x44, 0x2,0x41,0x75, 0x3,0x3a,0x2b, 0x1,0x63,0x3f, - 0x6,0x51,0x43, 0x1,0x63,0x4b, 0x2,0x42,0x21, 0x1,0x63,0x47, - 0x1,0x63,0x48, 0x1,0x63,0x4e, 0x1,0x63,0x42, 0x1,0x23,0x21, - 0x1,0x63,0x40, 0x2,0x41,0x79, 0x3,0x40,0x4c, 0x3,0x67,0x25, - 0x1,0x63,0x49, 0x3,0x67,0x24, 0xf,0x40,0x62, 0x2,0x42,0x24, - 0x3,0x64,0x58, 0x1,0x68,0x35, 0x1,0x68,0x30, 0x3,0x46,0x2e, - 0x2,0x49,0x3c, 0x2,0x49,0x38, 0x3,0x46,0x28, 0x2,0x49,0x32, - 0x1,0x68,0x2a, 0x1,0x68,0x26, 0x2,0x49,0x3b, 0x1,0x68,0x27, - 0x2,0x49,0x35, 0x2,0x49,0x37, 0x3,0x46,0x29, 0x2,0x49,0x3a, - 0x3,0x46,0x36, 0x1,0x68,0x2c, 0x3,0x46,0x2c, 0x1,0x68,0x33, - 0x1,0x68,0x2d, 0x4,0x42,0x57, 0x3,0x46,0x2a, 0x2,0x49,0x30, - 0x1,0x68,0x2e, 0x1,0x68,0x2f, 0x2,0x49,0x33, 0x1,0x68,0x34, - 0x3,0x46,0x34, 0x2,0x49,0x31, 0x2,0x49,0x36, 0x1,0x68,0x2b, - 0x2,0x49,0x2f, 0x1,0x68,0x31, 0x1,0x68,0x29, 0x3,0x46,0x33, - 0x4,0x42,0x4b, 0x1,0x68,0x28, 0x2,0x49,0x34, 0x2,0x49,0x39, - 0x3,0x46,0x31, 0x1,0x68,0x32, 0x3,0x64,0x5a, 0x3,0x64,0x59, - 0x3,0x46,0x50, 0x2,0x49,0x2e, 0x3,0x46,0x30, 0x1,0x6c,0x37, - 0x2,0x4f,0x6e, 0x3,0x4b,0x41, 0x2,0x4f,0x6b, 0x3,0x4b,0x38, - 0x1,0x6c,0x31, 0x1,0x6c,0x3d, 0x1,0x6c,0x3e, 0x3,0x4b,0x3d, - 0x1,0x6c,0x34, 0x2,0x4f,0x69, 0x1,0x6c,0x36, 0x2,0x4f,0x61, - 0x1,0x6c,0x3c, 0x3,0x4b,0x44, 0x2,0x4f,0x6d, 0x1,0x6c,0x33, - 0x2,0x4f,0x6f, 0x1,0x6c,0x32, 0x4,0x49,0x31, 0x2,0x4f,0x6a, - 0x2,0x4f,0x6c, 0x1,0x6c,0x35, 0x2,0x4f,0x68, 0x2,0x4f,0x62, - 0x2,0x4f,0x5f, 0x4,0x49,0x2e, 0x3,0x4b,0x3e, 0x2,0x3a,0x4f, - 0x2,0x4f,0x65, 0x3,0x4b,0x37, 0x2,0x4f,0x5e, 0x2,0x4f,0x64, - 0x2,0x4f,0x63, 0x3,0x4b,0x3b, 0x2,0x4f,0x60, 0x3,0x4b,0x43, - 0x1,0x6c,0x39, 0x3,0x4b,0x45, 0x3,0x4b,0x40, 0x3,0x46,0x35, - 0x3,0x4b,0x3c, 0x1,0x6c,0x38, 0x3,0x4b,0x39, 0x7,0x21,0x63, - 0x3,0x4b,0x3f, 0x1,0x6c,0x3a, 0x2,0x4f,0x66, 0x1,0x70,0x3b, - 0x2,0x4f,0x67, 0x2,0x56,0x4f, 0x3,0x50,0x3f, 0x2,0x56,0x48, - 0x3,0x50,0x40, 0x1,0x70,0x47, 0x2,0x56,0x4c, 0x1,0x70,0x3f, - 0x1,0x70,0x43, 0x2,0x56,0x4b, 0x3,0x50,0x3b, 0x1,0x70,0x42, - 0x1,0x70,0x3e, 0x1,0x70,0x41, 0x1,0x70,0x3c, 0x1,0x70,0x46, - 0x2,0x56,0x4d, 0x2,0x56,0x49, 0x1,0x70,0x45, 0x2,0x56,0x47, - 0x1,0x70,0x44, 0x2,0x56,0x4e, 0x2,0x56,0x4a, 0x1,0x6c,0x3b, - 0x4,0x4f,0x71, 0x1,0x70,0x48, 0x2,0x56,0x50, 0x1,0x70,0x40, - 0x1,0x70,0x3d, 0xf,0x53,0x5d, 0x3,0x50,0x3d, 0x3,0x54,0x48, - 0x2,0x5c,0x52, 0x2,0x5c,0x54, 0x1,0x73,0x46, 0x2,0x5c,0x55, - 0x2,0x5c,0x53, 0x2,0x5c,0x51, 0x2,0x5c,0x50, 0x1,0x73,0x48, - 0x2,0x5c,0x4f, 0x1,0x73,0x49, 0x4,0x55,0x74, 0x3,0x54,0x49, - 0x3,0x54,0x47, 0x4,0x55,0x78, 0x2,0x5c,0x4d, 0x2,0x5c,0x4e, - 0x1,0x73,0x45, 0x1,0x73,0x4a, 0x1,0x73,0x47, 0x3,0x64,0x5d, - 0x3,0x64,0x5b, 0x2,0x5c,0x4c, 0x3,0x57,0x5b, 0x1,0x76,0x3c, - 0x3,0x57,0x5a, 0x2,0x61,0x48, 0x2,0x61,0x46, 0x2,0x61,0x4b, - 0x2,0x61,0x49, 0x3,0x57,0x58, 0x2,0x61,0x47, 0x2,0x61,0x4a, - 0x3,0x57,0x59, 0x3,0x57,0x57, 0x3,0x57,0x5c, 0x1,0x78,0x2c, - 0x2,0x65,0x3e, 0x2,0x65,0x3f, 0x1,0x78,0x2d, 0x4,0x5f,0x4d, - 0x2,0x65,0x40, 0x2,0x65,0x3c, 0x2,0x65,0x41, 0x2,0x65,0x3d, - 0x1,0x76,0x3d, 0x3,0x5a,0x2d, 0x3,0x64,0x5e, 0x4,0x63,0x31, - 0x2,0x68,0x6b, 0x2,0x68,0x6d, 0x1,0x79,0x64, 0x2,0x68,0x6c, - 0x1,0x79,0x63, 0x1,0x79,0x62, 0x3,0x67,0x26, 0x3,0x67,0x27, - 0x3,0x64,0x5c, 0x3,0x5e,0x26, 0x1,0x79,0x65, 0x2,0x6b,0x53, - 0x2,0x6b,0x54, 0x4,0x66,0x34, 0x1,0x7a,0x65, 0x1,0x7a,0x64, - 0x1,0x7a,0x66, 0x2,0x6b,0x52, 0x3,0x67,0x28, 0x2,0x6d,0x46, - 0x2,0x6d,0x45, 0x3,0x5f,0x40, 0x1,0x7b,0x59, 0x1,0x7b,0x5b, - 0x1,0x7b,0x5a, 0x2,0x6d,0x47, 0x1,0x7c,0x34, 0x2,0x70,0x34, - 0x4,0x6a,0x44, 0x4,0x6a,0x43, 0x1,0x7c,0x5d, 0x3,0x60,0x71, - 0x2,0x70,0x33, 0x2,0x70,0x7c, 0x2,0x21,0x2a, 0x3,0x21,0x77, - 0x4,0x21,0x6f, 0x1,0x46,0x3f, 0x1,0x46,0x3e, 0x4,0x21,0x6d, - 0x1,0x47,0x60, 0x1,0x47,0x5f, 0x2,0x22,0x27, 0x1,0x47,0x5e, - 0x2,0x22,0x26, 0x3,0x23,0x3e, 0x1,0x49,0x5b, 0x2,0x23,0x49, - 0x3,0x25,0x2c, 0x2,0x23,0x48, 0xf,0x23,0x50, 0x3,0x25,0x26, - 0x1,0x49,0x59, 0x1,0x49,0x5c, 0x3,0x25,0x2b, 0x3,0x25,0x2a, - 0x2,0x23,0x47, 0x3,0x25,0x29, 0x1,0x49,0x5a, 0x3,0x25,0x48, - 0x3,0x25,0x27, 0x3,0x25,0x28, 0x3,0x28,0x22, 0x2,0x25,0x70, - 0x3,0x27,0x7d, 0x2,0x25,0x71, 0x1,0x4c,0x56, 0x3,0x27,0x7c, - 0x3,0x28,0x21, 0x3,0x27,0x7b, 0x1,0x50,0x4c, 0x3,0x2b,0x65, - 0x2,0x2e,0x4a, 0x2,0x2e,0x4b, 0x1,0x54,0x67, 0x1,0x54,0x68, - 0x3,0x30,0x27, 0x2,0x34,0x2f, 0x1,0x59,0x4e, 0x1,0x59,0x50, - 0x2,0x34,0x2e, 0x1,0x59,0x4f, 0x2,0x3a,0x60, 0x1,0x5e,0x58, - 0x3,0x3a,0x44, 0x3,0x3a,0x43, 0x4,0x36,0x68, 0x4,0x3c,0x52, - 0x1,0x63,0x50, 0x1,0x63,0x51, 0x2,0x42,0x28, 0x3,0x40,0x52, - 0x1,0x68,0x37, 0x3,0x46,0x37, 0x1,0x68,0x36, 0x2,0x4f,0x70, - 0x2,0x56,0x52, 0x2,0x56,0x51, 0x3,0x5f,0x41, 0x2,0x71,0x5a, - 0x1,0x44,0x48, 0x2,0x21,0x39, 0x3,0x21,0x61, 0x2,0x21,0x4f, - 0x2,0x21,0x50, 0x3,0x22,0x34, 0x4,0x21,0x70, 0x4,0x21,0x71, - 0x1,0x47,0x63, 0x1,0x47,0x67, 0x2,0x22,0x29, 0x4,0x22,0x51, - 0x1,0x47,0x65, 0x1,0x47,0x64, 0x2,0x22,0x28, 0x1,0x47,0x66, - 0x1,0x47,0x62, 0x3,0x23,0x41, 0x3,0x23,0x42, 0x1,0x47,0x61, - 0x2,0x22,0x2a, 0x3,0x23,0x3f, 0x3,0x23,0x40, 0x1,0x49,0x66, - 0x3,0x25,0x31, 0x3,0x25,0x3e, 0x1,0x49,0x63, 0x3,0x25,0x30, - 0x1,0x49,0x5f, 0x2,0x23,0x4a, 0x3,0x25,0x40, 0x3,0x25,0x36, - 0x3,0x25,0x2f, 0x2,0x23,0x4b, 0x3,0x25,0x3c, 0x1,0x49,0x61, - 0x3,0x25,0x2d, 0x2,0x23,0x4d, 0x1,0x49,0x5d, 0x2,0x23,0x4e, - 0x2,0x23,0x4c, 0x1,0x49,0x60, 0x1,0x49,0x62, 0x1,0x49,0x65, - 0x1,0x49,0x64, 0x1,0x49,0x5e, 0x2,0x23,0x4f, 0x3,0x25,0x32, - 0x3,0x25,0x41, 0x3,0x25,0x42, 0x3,0x25,0x33, 0x3,0x25,0x38, - 0x3,0x25,0x37, 0x3,0x64,0x5f, 0xf,0x23,0x52, 0x3,0x25,0x35, - 0x1,0x4c,0x5b, 0x2,0x25,0x7e, 0x3,0x28,0x25, 0x1,0x4c,0x5d, - 0x3,0x28,0x23, 0x1,0x4c,0x5c, 0x3,0x28,0x26, 0x2,0x26,0x21, - 0x1,0x4c,0x5a, 0x1,0x4c,0x59, 0x2,0x25,0x75, 0x4,0x25,0x69, - 0x2,0x25,0x74, 0x3,0x28,0x28, 0x2,0x25,0x72, 0x2,0x25,0x77, - 0x2,0x25,0x76, 0x2,0x25,0x73, 0x2,0x25,0x7c, 0x2,0x25,0x7d, - 0x2,0x25,0x7a, 0x2,0x25,0x78, 0x1,0x4c,0x58, 0x3,0x28,0x29, - 0x4,0x25,0x66, 0x4,0x25,0x68, 0x2,0x25,0x7b, 0x1,0x4c,0x5e, - 0x2,0x26,0x22, 0x4,0x25,0x65, 0x3,0x28,0x2a, 0x2,0x25,0x79, - 0x3,0x28,0x24, 0x1,0x50,0x4d, 0x1,0x4c,0x57, 0x4,0x25,0x6e, - 0xf,0x26,0x33, 0x3,0x64,0x60, 0x1,0x50,0x4e, 0x2,0x29,0x55, - 0x3,0x2b,0x69, 0x3,0x2b,0x68, 0x2,0x29,0x5b, 0x3,0x2b,0x6c, - 0x3,0x2b,0x67, 0x3,0x2b,0x6a, 0x1,0x50,0x54, 0x2,0x29,0x59, - 0x2,0x29,0x5f, 0x3,0x2b,0x71, 0x2,0x29,0x56, 0x2,0x29,0x5a, - 0x2,0x29,0x5c, 0x2,0x29,0x5e, 0x2,0x29,0x58, 0x3,0x2b,0x70, - 0x2,0x29,0x57, 0x2,0x29,0x52, 0x2,0x29,0x53, 0x1,0x50,0x4f, - 0x3,0x2b,0x6b, 0x1,0x50,0x51, 0x1,0x50,0x50, 0x2,0x29,0x54, - 0x2,0x29,0x5d, 0x3,0x2b,0x6d, 0x3,0x2b,0x72, 0x3,0x2b,0x6e, - 0x4,0x28,0x60, 0xf,0x29,0x6a, 0xf,0x29,0x71, 0x3,0x2b,0x66, - 0x1,0x50,0x53, 0x4,0x28,0x5e, 0x2,0x29,0x51, 0x2,0x2e,0x55, - 0x3,0x30,0x2a, 0x2,0x2e,0x54, 0x2,0x2e,0x59, 0x2,0x2e,0x50, - 0x3,0x30,0x30, 0x2,0x2e,0x53, 0x2,0x2e,0x52, 0x3,0x30,0x2f, - 0x2,0x2e,0x56, 0x3,0x30,0x38, 0x2,0x2e,0x5a, 0x1,0x54,0x69, - 0x1,0x54,0x6c, 0x3,0x30,0x34, 0x3,0x30,0x35, 0x2,0x2e,0x51, - 0x2,0x2e,0x57, 0x3,0x30,0x33, 0x3,0x30,0x28, 0x3,0x30,0x37, - 0x1,0x54,0x6b, 0x2,0x2e,0x4c, 0x3,0x30,0x2b, 0x1,0x50,0x52, - 0x2,0x34,0x3d, 0x2,0x2e,0x58, 0x3,0x30,0x36, 0x2,0x2e,0x4f, - 0x4,0x2c,0x33, 0x1,0x54,0x6a, 0x2,0x2e,0x4e, 0xf,0x2e,0x5c, - 0x3,0x30,0x32, 0x2,0x34,0x34, 0x3,0x34,0x6e, 0x3,0x34,0x71, - 0x1,0x59,0x51, 0x1,0x59,0x55, 0x2,0x34,0x44, 0x2,0x34,0x32, - 0x2,0x34,0x40, 0x1,0x59,0x56, 0x2,0x34,0x42, 0x3,0x34,0x72, - 0x2,0x34,0x48, 0x3,0x34,0x74, 0x2,0x34,0x4c, 0x3,0x34,0x69, - 0x4,0x30,0x7b, 0x2,0x34,0x43, 0x2,0x34,0x37, 0x2,0x34,0x3f, - 0x3,0x34,0x6b, 0x2,0x34,0x4d, 0x2,0x34,0x4b, 0x2,0x34,0x41, - 0x2,0x34,0x3c, 0x2,0x34,0x35, 0x2,0x3a,0x68, 0x2,0x34,0x33, - 0x1,0x59,0x5a, 0x2,0x34,0x3a, 0x1,0x59,0x5b, 0x1,0x59,0x57, - 0x2,0x34,0x30, 0x2,0x34,0x46, 0x2,0x34,0x38, 0x3,0x34,0x6f, - 0x3,0x34,0x75, 0x2,0x34,0x36, 0x2,0x34,0x49, 0x1,0x59,0x58, - 0x3,0x34,0x76, 0x2,0x34,0x4f, 0x1,0x59,0x52, 0x1,0x59,0x54, - 0x2,0x34,0x3e, 0x2,0x34,0x39, 0x1,0x54,0x6d, 0x1,0x59,0x53, - 0x2,0x34,0x3b, 0x2,0x34,0x4a, 0x2,0x34,0x4e, 0x2,0x34,0x45, - 0x3,0x64,0x61, 0x2,0x34,0x47, 0x3,0x64,0x62, 0x3,0x64,0x63, - 0x2,0x34,0x31, 0x4,0x36,0x69, 0x3,0x3a,0x4a, 0x2,0x3a,0x63, - 0x3,0x3a,0x45, 0x2,0x3a,0x6c, 0x2,0x3a,0x6b, 0x1,0x5e,0x60, - 0x2,0x3a,0x64, 0x3,0x3a,0x47, 0x1,0x5e,0x61, 0x1,0x5e,0x5f, - 0x3,0x3a,0x50, 0x2,0x3a,0x66, 0x1,0x5e,0x5c, 0x2,0x3a,0x6a, - 0x3,0x3a,0x4c, 0x2,0x3a,0x65, 0x2,0x3a,0x67, 0x2,0x3a,0x61, - 0x1,0x5e,0x5a, 0x4,0x36,0x6f, 0x2,0x3a,0x74, 0x2,0x3a,0x73, - 0x2,0x3a,0x70, 0x1,0x5e,0x59, 0x1,0x5e,0x5d, 0x1,0x5e,0x5e, - 0x2,0x2e,0x4d, 0x2,0x3a,0x6d, 0x1,0x5e,0x5b, 0x1,0x59,0x59, - 0x2,0x3a,0x6f, 0x2,0x3a,0x62, 0x2,0x3a,0x72, 0x2,0x3a,0x71, - 0x3,0x3a,0x4e, 0x2,0x3a,0x75, 0x3,0x3a,0x49, 0x2,0x42,0x36, - 0x3,0x3a,0x4b, 0x2,0x3a,0x6e, 0xf,0x39,0x7d, 0xf,0x39,0x7e, - 0x4,0x3c,0x57, 0x4,0x36,0x6d, 0x4,0x36,0x71, 0x3,0x64,0x64, - 0x2,0x3a,0x69, 0x2,0x42,0x2e, 0x1,0x63,0x5b, 0x1,0x63,0x5e, - 0x1,0x63,0x59, 0x2,0x42,0x2d, 0x2,0x42,0x31, 0x2,0x42,0x2c, - 0x3,0x40,0x57, 0x1,0x63,0x53, 0x1,0x63,0x5d, 0x2,0x42,0x29, - 0x1,0x63,0x57, 0x2,0x42,0x30, 0x3,0x40,0x5b, 0x1,0x63,0x55, - 0x1,0x63,0x54, 0x2,0x42,0x33, 0x1,0x63,0x56, 0x2,0x42,0x35, - 0x3,0x40,0x56, 0x2,0x42,0x32, 0x1,0x63,0x52, 0x3,0x40,0x5e, - 0x3,0x40,0x5c, 0x3,0x40,0x58, 0x1,0x63,0x5c, 0x2,0x42,0x37, - 0x2,0x42,0x2b, 0x2,0x42,0x34, 0x3,0x40,0x5d, 0x4,0x3c,0x53, - 0x2,0x42,0x2a, 0x3,0x40,0x5a, 0x3,0x40,0x59, 0x1,0x63,0x58, - 0x3,0x40,0x54, 0x1,0x63,0x5a, 0x2,0x42,0x2f, 0x2,0x42,0x38, - 0x3,0x46,0x43, 0x3,0x46,0x3e, 0x2,0x49,0x44, 0x1,0x68,0x38, - 0x2,0x49,0x4a, 0x3,0x46,0x42, 0x3,0x46,0x3c, 0x1,0x68,0x3d, - 0x2,0x49,0x46, 0x2,0x49,0x4d, 0x2,0x49,0x3e, 0x1,0x68,0x3f, - 0x1,0x68,0x39, 0x2,0x49,0x43, 0x1,0x6c,0x3f, 0x2,0x49,0x42, - 0x2,0x49,0x4b, 0x1,0x68,0x3a, 0x3,0x46,0x3d, 0x1,0x68,0x3e, - 0x2,0x49,0x41, 0x2,0x49,0x47, 0x2,0x49,0x4c, 0x2,0x49,0x3d, - 0x1,0x68,0x3c, 0x2,0x49,0x45, 0x3,0x46,0x3a, 0x3,0x46,0x45, - 0x2,0x49,0x49, 0x2,0x49,0x4f, 0x2,0x49,0x3f, 0x2,0x49,0x48, - 0x3,0x46,0x38, 0x1,0x68,0x3b, 0x2,0x49,0x4e, 0x3,0x46,0x41, - 0x3,0x46,0x44, 0x3,0x46,0x40, 0x2,0x49,0x40, 0x4,0x42,0x59, - 0x3,0x64,0x65, 0x1,0x6c,0x43, 0x2,0x4f,0x72, 0x1,0x6c,0x41, - 0x1,0x6c,0x40, 0x2,0x4f,0x74, 0x2,0x4f,0x79, 0x3,0x4b,0x46, - 0x2,0x4f,0x75, 0x3,0x4b,0x50, 0x2,0x4f,0x78, 0x1,0x6c,0x46, - 0x3,0x4b,0x51, 0x1,0x70,0x2e, 0x1,0x6c,0x45, 0x3,0x4b,0x4b, - 0x2,0x4f,0x71, 0x2,0x4f,0x77, 0x3,0x46,0x3f, 0x1,0x6c,0x44, - 0x2,0x4f,0x76, 0x3,0x4b,0x4d, 0x2,0x4f,0x73, 0x3,0x4b,0x49, - 0x1,0x6c,0x42, 0x3,0x4b,0x4f, 0x3,0x4b,0x4c, 0x3,0x4b,0x47, - 0x2,0x56,0x57, 0x3,0x50,0x4a, 0x2,0x56,0x59, 0x2,0x56,0x54, - 0x1,0x70,0x4a, 0x2,0x56,0x56, 0x3,0x50,0x4b, 0x1,0x70,0x49, - 0x2,0x56,0x58, 0x3,0x50,0x48, 0x3,0x50,0x4c, 0x1,0x70,0x4c, - 0x2,0x56,0x5a, 0x1,0x70,0x4b, 0x2,0x56,0x53, 0x2,0x56,0x55, - 0x3,0x50,0x49, 0x3,0x54,0x4b, 0x1,0x73,0x4e, 0x2,0x5c,0x58, - 0x3,0x54,0x4c, 0x1,0x73,0x4d, 0x2,0x5c,0x59, 0x1,0x73,0x4c, - 0x2,0x5c,0x57, 0x1,0x73,0x4b, 0x2,0x5c,0x56, 0x1,0x76,0x3f, - 0x1,0x76,0x3e, 0x2,0x65,0x42, 0x2,0x65,0x44, 0x3,0x5a,0x2f, - 0x2,0x65,0x43, 0x1,0x78,0x2e, 0x1,0x78,0x2f, 0x3,0x5a,0x2e, - 0x7,0x46,0x45, 0x1,0x78,0x30, 0x2,0x68,0x6e, 0x1,0x79,0x66, - 0x3,0x5e,0x28, 0x2,0x6f,0x22, 0x2,0x6f,0x21, 0x1,0x7c,0x5e, - 0x1,0x44,0x49, 0x1,0x45,0x31, 0x3,0x23,0x43, 0x1,0x49,0x67, - 0x3,0x25,0x45, 0x3,0x25,0x43, 0x3,0x25,0x44, 0x3,0x28,0x2d, - 0x2,0x29,0x60, 0x3,0x2b,0x77, 0x3,0x34,0x77, 0x1,0x5e,0x62, - 0x1,0x5e,0x63, 0x3,0x3a,0x52, 0x2,0x42,0x39, 0x1,0x68,0x40, - 0x2,0x49,0x50, 0x2,0x4f,0x7a, 0x3,0x64,0x66, 0x3,0x50,0x4d, - 0x3,0x21,0x39, 0x2,0x21,0x3a, 0x3,0x22,0x35, 0x3,0x23,0x44, - 0x2,0x23,0x50, 0x3,0x2b,0x7a, 0x3,0x2b,0x79, 0x3,0x21,0x3a, - 0x3,0x25,0x46, 0x2,0x26,0x23, 0x2,0x29,0x61, 0x2,0x2e,0x5b, - 0x1,0x54,0x6e, 0x3,0x46,0x46, 0x3,0x65,0x60, 0x2,0x65,0x45, - 0x4,0x5f,0x52, 0x1,0x7a,0x67, 0x1,0x44,0x4a, 0x1,0x46,0x40, - 0x2,0x21,0x51, 0x3,0x22,0x36, 0x1,0x47,0x68, 0x1,0x47,0x69, - 0x4,0x22,0x52, 0x1,0x4c,0x5f, 0x4,0x25,0x70, 0x3,0x34,0x79, - 0x1,0x59,0x5c, 0x5,0x37,0x3d, 0x1,0x68,0x42, 0x3,0x40,0x5f, - 0x1,0x68,0x43, 0x1,0x68,0x41, 0x3,0x4b,0x53, 0x1,0x44,0x4b, - 0x4,0x21,0x49, 0x1,0x45,0x32, 0x1,0x45,0x34, 0x1,0x45,0x33, - 0x2,0x21,0x3b, 0x1,0x45,0x35, 0x1,0x46,0x41, 0x2,0x21,0x52, - 0x3,0x22,0x38, 0x1,0x46,0x42, 0x3,0x22,0x37, 0x4,0x21,0x72, - 0x3,0x22,0x39, 0x4,0x22,0x53, 0x3,0x23,0x47, 0x1,0x47,0x6a, - 0x1,0x47,0x6b, 0x2,0x22,0x2b, 0x3,0x25,0x49, 0x1,0x49,0x68, - 0x4,0x23,0x62, 0x2,0x23,0x51, 0x4,0x25,0x75, 0x1,0x4c,0x63, - 0x2,0x26,0x24, 0x4,0x25,0x72, 0x1,0x4c,0x61, 0x1,0x4c,0x62, - 0x1,0x4c,0x60, 0x2,0x2e,0x5c, 0x3,0x28,0x2e, 0x3,0x28,0x2f, - 0x3,0x64,0x67, 0x1,0x50,0x58, 0x1,0x50,0x57, 0x1,0x50,0x59, - 0x1,0x50,0x56, 0x3,0x2b,0x7c, 0x2,0x29,0x62, 0x1,0x4c,0x64, - 0x1,0x50,0x55, 0x1,0x54,0x6f, 0x1,0x54,0x70, 0x4,0x2c,0x38, - 0x1,0x54,0x71, 0x3,0x34,0x7b, 0x2,0x34,0x50, 0x3,0x34,0x7c, - 0x3,0x34,0x7d, 0x4,0x31,0x26, 0x1,0x5e,0x64, 0x2,0x3a,0x76, - 0x1,0x59,0x5d, 0x3,0x3a,0x53, 0x3,0x3a,0x54, 0x4,0x36,0x79, - 0x3,0x40,0x60, 0x1,0x63,0x5f, 0x3,0x40,0x61, 0x1,0x68,0x45, - 0x1,0x68,0x44, 0x2,0x49,0x51, 0x3,0x46,0x48, 0x1,0x6c,0x47, - 0x1,0x70,0x4d, 0x4,0x4f,0x7b, 0x2,0x61,0x4c, 0x2,0x6d,0x48, - 0x2,0x6f,0x23, 0x1,0x44,0x4c, 0x1,0x46,0x43, 0x3,0x22,0x3b, - 0x1,0x46,0x44, 0x2,0x22,0x31, 0x1,0x47,0x6d, 0x1,0x47,0x70, - 0x3,0x23,0x4b, 0x2,0x22,0x2f, 0x2,0x22,0x2d, 0x1,0x47,0x6f, - 0x2,0x22,0x30, 0x2,0x22,0x32, 0x2,0x22,0x2c, 0x1,0x47,0x72, - 0x1,0x47,0x71, 0x1,0x47,0x6e, 0x1,0x47,0x6c, 0x2,0x22,0x2e, - 0x3,0x23,0x4d, 0x3,0x25,0x55, 0x1,0x49,0x73, 0x4,0x23,0x67, - 0x3,0x25,0x4c, 0x1,0x49,0x70, 0x2,0x23,0x56, 0x2,0x23,0x59, - 0x2,0x23,0x58, 0x4,0x23,0x69, 0x1,0x49,0x6a, 0x1,0x49,0x72, - 0x3,0x25,0x4b, 0x4,0x23,0x6a, 0x1,0x49,0x6f, 0x2,0x23,0x55, - 0x2,0x23,0x53, 0x1,0x49,0x6e, 0x3,0x25,0x56, 0x3,0x25,0x53, - 0x3,0x25,0x4e, 0x1,0x49,0x69, 0x1,0x49,0x6c, 0x3,0x25,0x51, - 0x2,0x23,0x54, 0x2,0x23,0x5b, 0x2,0x23,0x57, 0x1,0x49,0x6d, - 0x1,0x49,0x71, 0x1,0x49,0x74, 0x2,0x23,0x52, 0x2,0x23,0x5a, - 0x1,0x49,0x6b, 0x3,0x28,0x41, 0x3,0x28,0x33, 0x1,0x4c,0x69, - 0x1,0x4c,0x71, 0x3,0x28,0x38, 0x2,0x26,0x30, 0x2,0x26,0x29, - 0x1,0x4c,0x72, 0x2,0x26,0x34, 0x2,0x26,0x25, 0x2,0x26,0x2c, - 0x3,0x28,0x45, 0x3,0x28,0x40, 0x1,0x4c,0x68, 0x2,0x26,0x26, - 0x1,0x4c,0x66, 0x2,0x26,0x2d, 0x2,0x26,0x31, 0x1,0x4c,0x65, - 0x3,0x28,0x3d, 0x2,0x26,0x32, 0x2,0x26,0x2b, 0x3,0x28,0x37, - 0x2,0x26,0x2e, 0x3,0x28,0x35, 0x1,0x4c,0x74, 0x1,0x4c,0x6b, - 0x2,0x26,0x35, 0x2,0x26,0x33, 0x3,0x28,0x3f, 0x1,0x4c,0x70, - 0x1,0x4c,0x6e, 0x2,0x26,0x2a, 0x1,0x4c,0x6d, 0x2,0x26,0x28, - 0x2,0x26,0x27, 0x1,0x4c,0x6c, 0x1,0x4c,0x6a, 0x1,0x4c,0x73, - 0x1,0x4c,0x6f, 0x1,0x4c,0x67, 0x3,0x2c,0x26, 0x2,0x26,0x2f, - 0x3,0x28,0x46, 0x1,0x50,0x5b, 0x3,0x2c,0x2d, 0x1,0x50,0x62, - 0x2,0x29,0x70, 0x1,0x50,0x5a, 0x2,0x29,0x68, 0x2,0x29,0x64, - 0x3,0x2c,0x21, 0x2,0x29,0x74, 0x2,0x29,0x63, 0x3,0x2c,0x2c, - 0x1,0x50,0x5d, 0x2,0x29,0x6d, 0x1,0x50,0x60, 0x1,0x50,0x63, - 0x3,0x2c,0x2e, 0x1,0x50,0x5e, 0x2,0x29,0x71, 0x1,0x50,0x61, - 0x3,0x2c,0x23, 0x1,0x54,0x78, 0x2,0x29,0x77, 0x2,0x29,0x65, - 0x3,0x2c,0x24, 0x3,0x2c,0x25, 0x2,0x29,0x67, 0x2,0x29,0x6e, - 0x2,0x29,0x72, 0x2,0x29,0x76, 0x2,0x29,0x73, 0x2,0x29,0x6c, - 0x2,0x29,0x6f, 0x3,0x2c,0x2b, 0x3,0x2c,0x29, 0x2,0x29,0x69, - 0x1,0x50,0x65, 0x2,0x29,0x6b, 0x2,0x29,0x6a, 0x2,0x29,0x75, - 0x1,0x50,0x5c, 0x2,0x29,0x66, 0x1,0x50,0x64, 0x3,0x2c,0x2a, - 0x1,0x50,0x5f, 0x3,0x2c,0x28, 0x1,0x54,0x7e, 0x2,0x2e,0x64, - 0x3,0x30,0x40, 0x1,0x54,0x7d, 0x3,0x2c,0x27, 0x4,0x2c,0x40, - 0x2,0x2e,0x62, 0x4,0x2c,0x3e, 0x1,0x54,0x72, 0x3,0x30,0x4f, - 0x1,0x54,0x77, 0x3,0x30,0x4a, 0x2,0x2e,0x61, 0x2,0x2e,0x5e, - 0x2,0x2e,0x63, 0x1,0x54,0x73, 0x2,0x2e,0x5d, 0x3,0x30,0x4e, - 0x1,0x54,0x76, 0x1,0x54,0x74, 0x3,0x30,0x3e, 0x2,0x2e,0x65, - 0x1,0x54,0x75, 0x1,0x54,0x79, 0x3,0x30,0x3b, 0x3,0x30,0x45, - 0x1,0x54,0x7a, 0x3,0x30,0x48, 0x1,0x54,0x7c, 0x3,0x30,0x52, - 0x4,0x2c,0x39, 0x4,0x2c,0x3d, 0x1,0x54,0x7b, 0x3,0x30,0x3c, - 0x3,0x35,0x22, 0x3,0x35,0x38, 0x2,0x2e,0x5f, 0x2,0x2e,0x60, - 0x3,0x30,0x4d, 0x6,0x36,0x57, 0x3,0x30,0x4b, 0x2,0x2e,0x66, - 0x2,0x34,0x57, 0x1,0x59,0x5e, 0x2,0x3b,0x26, 0x2,0x34,0x56, - 0x2,0x34,0x69, 0x3,0x35,0x28, 0x3,0x35,0x24, 0x1,0x59,0x64, - 0x3,0x35,0x31, 0x2,0x34,0x67, 0x3,0x35,0x33, 0x1,0x59,0x63, - 0x1,0x59,0x5f, 0x2,0x34,0x70, 0x2,0x34,0x60, 0x2,0x34,0x63, - 0x3,0x35,0x2e, 0x1,0x59,0x67, 0x2,0x34,0x6d, 0x2,0x34,0x65, - 0x1,0x59,0x60, 0x1,0x59,0x68, 0x3,0x35,0x2a, 0x2,0x34,0x6a, - 0x2,0x34,0x68, 0x3,0x35,0x2f, 0x3,0x35,0x3b, 0x2,0x34,0x59, - 0x2,0x34,0x6e, 0x2,0x34,0x62, 0x2,0x34,0x5d, 0x3,0x35,0x3a, - 0x2,0x34,0x53, 0x2,0x34,0x6f, 0x2,0x34,0x5f, 0x2,0x34,0x52, - 0x3,0x35,0x39, 0x1,0x59,0x66, 0x2,0x34,0x64, 0x2,0x34,0x71, - 0x2,0x34,0x61, 0x2,0x34,0x55, 0x2,0x34,0x5a, 0x2,0x34,0x51, - 0x3,0x35,0x27, 0x1,0x59,0x65, 0x3,0x35,0x3c, 0x2,0x34,0x5e, - 0x2,0x34,0x5b, 0x1,0x59,0x61, 0x2,0x34,0x54, 0x3,0x35,0x30, - 0x2,0x34,0x6c, 0x1,0x59,0x62, 0x3,0x35,0x2b, 0x2,0x34,0x5c, - 0x2,0x34,0x58, 0x3,0x35,0x29, 0x3,0x35,0x34, 0x2,0x34,0x6b, - 0x3,0x35,0x32, 0xf,0x33,0x73, 0x3,0x35,0x37, 0x3,0x35,0x35, - 0x1,0x5e,0x65, 0x2,0x3a,0x7d, 0x3,0x3a,0x75, 0x2,0x3a,0x7a, - 0x2,0x3b,0x2d, 0x2,0x3b,0x21, 0x2,0x3b,0x2e, 0x3,0x3a,0x7c, - 0x1,0x5e,0x67, 0x3,0x3a,0x63, 0x3,0x3a,0x61, 0x3,0x3a,0x58, - 0x2,0x3b,0x2a, 0x2,0x3b,0x27, 0x3,0x3a,0x5b, 0x3,0x3a,0x77, - 0x3,0x3a,0x72, 0x3,0x3a,0x59, 0x3,0x3a,0x60, 0x2,0x3b,0x28, - 0x2,0x3b,0x2b, 0x2,0x3b,0x2f, 0x3,0x3a,0x7b, 0x2,0x34,0x66, - 0x2,0x3b,0x31, 0x2,0x42,0x4d, 0x3,0x3a,0x66, 0x1,0x5e,0x68, - 0x2,0x3b,0x32, 0x2,0x3a,0x78, 0x2,0x3b,0x24, 0x3,0x3a,0x62, - 0x2,0x3b,0x29, 0x3,0x3a,0x5c, 0x3,0x3a,0x5e, 0x1,0x5e,0x66, - 0x1,0x5e,0x69, 0x2,0x3b,0x30, 0x2,0x3b,0x33, 0x2,0x3a,0x7c, - 0x2,0x3a,0x79, 0x3,0x3a,0x73, 0x3,0x3a,0x5a, 0x2,0x3a,0x7b, - 0x3,0x3a,0x57, 0x3,0x3a,0x7a, 0x2,0x3b,0x22, 0x2,0x3a,0x7e, - 0x1,0x5e,0x6a, 0x3,0x3a,0x56, 0x2,0x3b,0x2c, 0x3,0x3a,0x79, - 0x3,0x3a,0x78, 0x2,0x3b,0x23, 0x2,0x3b,0x25, 0x2,0x3a,0x77, - 0x2,0x42,0x41, 0x2,0x42,0x3f, 0x1,0x63,0x68, 0x1,0x63,0x66, - 0x2,0x42,0x49, 0x2,0x42,0x40, 0x2,0x42,0x4a, 0x2,0x42,0x46, - 0x2,0x42,0x3e, 0x2,0x42,0x4c, 0x2,0x42,0x3d, 0x2,0x42,0x44, - 0x1,0x63,0x65, 0x1,0x63,0x64, 0x1,0x63,0x63, 0x2,0x42,0x42, - 0x2,0x42,0x47, 0x1,0x63,0x60, 0x1,0x63,0x67, 0x3,0x40,0x67, - 0x2,0x42,0x3b, 0x3,0x40,0x66, 0x2,0x42,0x45, 0x2,0x42,0x3a, - 0x2,0x42,0x43, 0x1,0x63,0x61, 0x2,0x42,0x48, 0x2,0x42,0x3c, - 0x1,0x63,0x62, 0x2,0x42,0x4b, 0x3,0x40,0x64, 0x3,0x3a,0x6b, - 0x3,0x40,0x6a, 0x3,0x64,0x68, 0x3,0x64,0x69, 0x2,0x49,0x55, - 0x1,0x68,0x4a, 0x1,0x68,0x49, 0x1,0x68,0x4b, 0x2,0x49,0x61, - 0x2,0x49,0x57, 0x2,0x49,0x5d, 0x2,0x49,0x52, 0x2,0x49,0x60, - 0x2,0x49,0x5f, 0x2,0x49,0x63, 0x2,0x49,0x5c, 0x1,0x68,0x46, - 0x2,0x49,0x5b, 0x1,0x68,0x4c, 0x3,0x46,0x4c, 0x2,0x49,0x54, - 0x1,0x68,0x47, 0x3,0x46,0x4a, 0x2,0x49,0x62, 0x1,0x68,0x48, - 0x2,0x49,0x56, 0x2,0x49,0x59, 0x2,0x49,0x5e, 0x2,0x49,0x58, - 0x2,0x49,0x53, 0x3,0x46,0x4f, 0x3,0x46,0x53, 0x2,0x49,0x5a, - 0x2,0x4f,0x7c, 0x1,0x6c,0x4b, 0x2,0x50,0x21, 0x2,0x4f,0x7e, - 0x2,0x50,0x23, 0x2,0x50,0x25, 0x3,0x4b,0x5c, 0x1,0x6c,0x49, - 0x3,0x4b,0x58, 0x2,0x4f,0x7d, 0x3,0x4b,0x54, 0x2,0x4f,0x7b, - 0x3,0x4b,0x5e, 0x2,0x50,0x26, 0x2,0x50,0x24, 0x2,0x50,0x22, - 0x3,0x4b,0x56, 0x2,0x50,0x28, 0x3,0x4b,0x5a, 0x2,0x50,0x27, - 0x1,0x6c,0x4d, 0x1,0x6c,0x48, 0x3,0x4b,0x5b, 0x1,0x6c,0x4a, - 0x1,0x6c,0x4c, 0x3,0x4b,0x5d, 0x3,0x4b,0x5f, 0x2,0x50,0x29, - 0x2,0x56,0x61, 0x3,0x50,0x50, 0x3,0x50,0x53, 0x2,0x56,0x60, - 0x2,0x56,0x5f, 0x3,0x50,0x51, 0x2,0x56,0x62, 0x2,0x56,0x5b, - 0x3,0x50,0x4f, 0x2,0x56,0x5c, 0x2,0x56,0x64, 0x2,0x56,0x5d, - 0x3,0x50,0x54, 0x1,0x70,0x4e, 0x2,0x56,0x66, 0x3,0x50,0x4e, - 0x2,0x56,0x65, 0x2,0x56,0x5e, 0x3,0x50,0x56, 0x2,0x5c,0x5d, - 0x1,0x73,0x51, 0x2,0x5c,0x5b, 0x2,0x5c,0x60, 0x2,0x5c,0x5f, - 0x2,0x56,0x63, 0x3,0x54,0x50, 0x1,0x73,0x50, 0x3,0x54,0x4e, - 0x2,0x5c,0x5e, 0x2,0x5c,0x5a, 0x2,0x5c,0x62, 0x2,0x5c,0x61, - 0x1,0x73,0x4f, 0x3,0x54,0x52, 0x2,0x5c,0x5c, 0x3,0x54,0x4f, - 0x1,0x70,0x4f, 0x3,0x54,0x51, 0x3,0x54,0x53, 0x1,0x76,0x40, - 0x3,0x5a,0x31, 0x3,0x57,0x61, 0x3,0x57,0x5e, 0x2,0x61,0x4d, - 0x2,0x65,0x46, 0x2,0x65,0x47, 0x2,0x65,0x48, 0x1,0x79,0x67, - 0x4,0x63,0x34, 0x3,0x5c,0x36, 0x1,0x79,0x68, 0x3,0x5c,0x39, - 0x2,0x68,0x6f, 0x3,0x5c,0x3a, 0x2,0x6b,0x56, 0x2,0x6b,0x55, - 0x3,0x5e,0x29, 0x3,0x5f,0x42, 0x2,0x6d,0x49, 0x2,0x6d,0x4a, - 0x2,0x6f,0x24, 0x2,0x70,0x35, 0x3,0x60,0x73, 0x1,0x44,0x4d, - 0x1,0x44,0x4e, 0x4,0x21,0x32, 0x1,0x44,0x4f, 0x1,0x45,0x36, - 0x1,0x46,0x45, 0x2,0x22,0x33, 0x1,0x47,0x73, 0x1,0x47,0x74, - 0x1,0x49,0x77, 0x1,0x49,0x78, 0x1,0x49,0x76, 0x1,0x49,0x75, - 0x1,0x4c,0x75, 0x3,0x28,0x48, 0x4,0x26,0x22, 0x2,0x26,0x36, - 0x1,0x4c,0x77, 0x1,0x4c,0x76, 0x2,0x26,0x37, 0x4,0x26,0x23, - 0x3,0x64,0x6a, 0x4,0x28,0x6e, 0x1,0x50,0x66, 0x3,0x2c,0x2f, - 0x1,0x55,0x21, 0x2,0x2e,0x67, 0x2,0x34,0x73, 0x4,0x31,0x2c, - 0x1,0x59,0x69, 0x1,0x5e,0x6c, 0x2,0x34,0x72, 0x1,0x5e,0x6b, - 0x3,0x40,0x71, 0x1,0x68,0x4d, 0x3,0x40,0x72, 0x2,0x49,0x64, - 0x1,0x70,0x50, 0x3,0x50,0x57, 0x1,0x73,0x52, 0x2,0x5c,0x63, - 0x3,0x5a,0x34, 0x1,0x79,0x69, 0x3,0x5c,0x3b, 0x1,0x7b,0x5c, - 0x3,0x21,0x3b, 0x2,0x21,0x53, 0x3,0x22,0x3d, 0x1,0x46,0x46, - 0x2,0x21,0x54, 0x1,0x47,0x77, 0x3,0x23,0x50, 0x1,0x47,0x75, - 0x1,0x47,0x76, 0x1,0x47,0x78, 0x4,0x23,0x6f, 0x1,0x49,0x7a, - 0x1,0x49,0x79, 0x3,0x25,0x5a, 0x2,0x23,0x5c, 0x1,0x49,0x7b, - 0x4,0x26,0x25, 0x2,0x23,0x5d, 0x2,0x26,0x38, 0x3,0x28,0x4c, - 0x2,0x26,0x39, 0x3,0x28,0x4a, 0x1,0x4c,0x78, 0x1,0x4c,0x7a, - 0x1,0x4c,0x7c, 0x1,0x4c,0x79, 0x1,0x4c,0x7d, 0x1,0x4c,0x7b, - 0x3,0x28,0x4e, 0x3,0x28,0x4b, 0x3,0x28,0x4d, 0x1,0x50,0x6a, - 0x1,0x50,0x67, 0x1,0x50,0x69, 0x1,0x50,0x6b, 0x1,0x50,0x68, - 0x2,0x2e,0x68, 0x2,0x29,0x78, 0xf,0x2a,0x39, 0x3,0x2c,0x32, - 0x2,0x2e,0x6a, 0x2,0x2e,0x69, 0x1,0x55,0x27, 0x4,0x2c,0x46, - 0x1,0x55,0x23, 0x4,0x2c,0x49, 0x6,0x36,0x66, 0x1,0x55,0x24, - 0x1,0x55,0x26, 0x1,0x55,0x28, 0x1,0x55,0x25, 0x3,0x30,0x57, - 0x1,0x55,0x2a, 0x1,0x55,0x29, 0x4,0x2c,0x48, 0x3,0x30,0x56, - 0x3,0x30,0x55, 0xf,0x2e,0x7e, 0x1,0x59,0x6e, 0x2,0x34,0x75, - 0x2,0x34,0x74, 0x1,0x59,0x6d, 0x3,0x35,0x41, 0x1,0x59,0x6c, - 0x1,0x59,0x6b, 0x1,0x59,0x6f, 0x1,0x59,0x6a, 0x3,0x35,0x3f, - 0x2,0x3b,0x39, 0x2,0x3b,0x36, 0x1,0x5e,0x6e, 0x2,0x3b,0x35, - 0x2,0x3b,0x3a, 0x4,0x37,0x24, 0x1,0x5e,0x70, 0x2,0x3b,0x38, - 0x1,0x5e,0x6d, 0x1,0x5e,0x6f, 0x2,0x3b,0x37, 0x3,0x3a,0x7e, - 0x2,0x42,0x4e, 0x3,0x40,0x74, 0x2,0x42,0x4f, 0x2,0x42,0x50, - 0x3,0x40,0x75, 0x3,0x40,0x76, 0x3,0x40,0x73, 0x4,0x3c,0x6e, - 0x1,0x68,0x4e, 0x1,0x68,0x56, 0x2,0x49,0x65, 0x1,0x68,0x50, - 0x1,0x68,0x54, 0x2,0x49,0x66, 0x1,0x68,0x55, 0x1,0x68,0x51, - 0x1,0x68,0x52, 0x1,0x68,0x4f, 0x1,0x68,0x53, 0x1,0x6c,0x50, - 0x2,0x3b,0x34, 0x1,0x6c,0x51, 0x1,0x6c,0x4f, 0x4,0x49,0x44, - 0x1,0x6c,0x4e, 0x2,0x56,0x67, 0x1,0x70,0x51, 0x2,0x5c,0x64, - 0x2,0x5c,0x65, 0x3,0x5a,0x35, 0x4,0x5f,0x55, 0x1,0x78,0x31, - 0x1,0x79,0x6a, 0x3,0x5e,0x2a, 0x1,0x44,0x50, 0x3,0x22,0x3e, - 0x1,0x47,0x79, 0x3,0x25,0x5e, 0x3,0x25,0x5c, 0x3,0x25,0x5d, - 0x3,0x28,0x50, 0x1,0x50,0x6c, 0x2,0x2e,0x6b, 0x1,0x55,0x2b, - 0x3,0x30,0x58, 0x3,0x30,0x59, 0x1,0x59,0x72, 0x1,0x59,0x71, - 0x1,0x59,0x70, 0x1,0x5e,0x71, 0x1,0x5e,0x72, 0x2,0x3b,0x3b, - 0x1,0x68,0x57, 0x1,0x70,0x52, 0x1,0x44,0x51, 0x2,0x21,0x3c, - 0x1,0x45,0x37, 0x2,0x21,0x55, 0x4,0x21,0x73, 0x3,0x22,0x3f, - 0x2,0x22,0x34, 0x1,0x47,0x7a, 0x4,0x22,0x5c, 0x3,0x23,0x52, - 0x3,0x28,0x51, 0x1,0x4c,0x7e, 0x3,0x2c,0x34, 0x3,0x3b,0x24, - 0x2,0x42,0x51, 0x3,0x40,0x78, 0x3,0x65,0x25, 0x1,0x44,0x52, - 0x4,0x21,0x4b, 0x1,0x45,0x38, 0x2,0x22,0x35, 0x2,0x23,0x5e, - 0x4,0x26,0x29, 0x2,0x23,0x5f, 0x3,0x25,0x5f, 0x1,0x49,0x7c, - 0xf,0x25,0x54, 0x3,0x2c,0x35, 0x2,0x3b,0x3c, 0x1,0x5e,0x73, - 0x2,0x42,0x52, 0x4,0x49,0x49, 0x3,0x54,0x54, 0x1,0x73,0x53, - 0x1,0x44,0x53, 0x1,0x44,0x67, 0x1,0x45,0x39, 0x2,0x21,0x56, - 0x1,0x46,0x47, 0x3,0x23,0x54, 0x1,0x4a,0x22, 0x1,0x4a,0x21, - 0x1,0x49,0x7d, 0x1,0x49,0x7e, 0x2,0x26,0x3a, 0x1,0x4d,0x22, - 0x1,0x4d,0x23, 0x2,0x26,0x3b, 0x1,0x4d,0x21, 0x3,0x28,0x54, - 0x3,0x28,0x55, 0x1,0x50,0x70, 0x2,0x29,0x79, 0x1,0x50,0x6f, - 0x1,0x50,0x6d, 0x1,0x50,0x6e, 0x1,0x55,0x2e, 0x1,0x55,0x2c, - 0x3,0x30,0x5a, 0x3,0x30,0x5b, 0x2,0x2e,0x6d, 0x1,0x55,0x2d, - 0x2,0x2e,0x6c, 0x3,0x64,0x6b, 0x1,0x55,0x22, 0x2,0x34,0x76, - 0x4,0x31,0x35, 0x3,0x35,0x43, 0x1,0x59,0x74, 0x1,0x59,0x75, - 0x3,0x3b,0x26, 0x3,0x3b,0x25, 0x1,0x59,0x73, 0x3,0x35,0x44, - 0x1,0x68,0x58, 0x2,0x49,0x67, 0x1,0x6c,0x52, 0x1,0x6c,0x53, - 0x2,0x50,0x2a, 0x1,0x73,0x54, 0x2,0x61,0x4e, 0x2,0x61,0x4f, - 0x3,0x5a,0x38, 0x1,0x7a,0x68, 0x2,0x70,0x36, 0x2,0x21,0x2b, - 0x1,0x45,0x3a, 0x4,0x22,0x5f, 0x1,0x44,0x54, 0x2,0x21,0x58, - 0x2,0x21,0x57, 0x4,0x21,0x76, 0x3,0x64,0x6c, 0x3,0x23,0x55, - 0x1,0x47,0x7b, 0x2,0x22,0x37, 0x2,0x22,0x38, 0x2,0x22,0x36, - 0x4,0x22,0x60, 0x2,0x22,0x39, 0x3,0x23,0x5a, 0xf,0x22,0x47, - 0x3,0x25,0x61, 0x3,0x25,0x66, 0x2,0x23,0x67, 0x4,0x23,0x7a, - 0x2,0x23,0x62, 0x2,0x23,0x64, 0x2,0x23,0x66, 0x2,0x23,0x63, - 0x1,0x4a,0x26, 0x2,0x23,0x60, 0x3,0x25,0x62, 0x2,0x23,0x61, - 0x1,0x4a,0x23, 0x1,0x4a,0x24, 0x2,0x23,0x65, 0x2,0x23,0x68, - 0x1,0x4a,0x25, 0x2,0x23,0x69, 0xf,0x23,0x7c, 0xf,0x23,0x78, - 0x3,0x25,0x63, 0x2,0x26,0x49, 0x3,0x28,0x5d, 0x2,0x26,0x43, - 0x2,0x26,0x3e, 0x1,0x4d,0x25, 0x2,0x26,0x46, 0x2,0x26,0x44, - 0x2,0x26,0x3d, 0x2,0x26,0x4a, 0x2,0x26,0x4d, 0x2,0x26,0x48, - 0x2,0x26,0x41, 0x1,0x4d,0x27, 0x2,0x26,0x47, 0x1,0x4d,0x28, - 0x2,0x26,0x42, 0x2,0x26,0x45, 0x2,0x26,0x3c, 0x2,0x26,0x40, - 0x2,0x26,0x4c, 0x1,0x4d,0x29, 0x4,0x26,0x2f, 0x1,0x4d,0x2a, - 0x3,0x28,0x5e, 0x2,0x26,0x3f, 0x2,0x26,0x4b, 0x1,0x4d,0x24, - 0x1,0x4d,0x26, 0x3,0x28,0x5c, 0x3,0x28,0x5f, 0x3,0x28,0x57, - 0x4,0x26,0x34, 0x3,0x28,0x58, 0x2,0x2a,0x2c, 0x2,0x2a,0x25, - 0x2,0x2a,0x2b, 0x2,0x2a,0x24, 0x2,0x2a,0x26, 0x2,0x29,0x7e, - 0x2,0x29,0x7c, 0x3,0x2c,0x3f, 0x2,0x2a,0x2d, 0x2,0x2a,0x2a, - 0x2,0x29,0x7a, 0x3,0x2c,0x3b, 0x1,0x50,0x72, 0x2,0x2a,0x28, - 0x2,0x2a,0x29, 0x3,0x64,0x6d, 0x2,0x2a,0x27, 0x2,0x29,0x7d, - 0x2,0x29,0x7b, 0x1,0x50,0x71, 0x2,0x2a,0x23, 0x2,0x2a,0x21, - 0x3,0x2c,0x3c, 0x3,0x2c,0x42, 0x2,0x2a,0x22, 0x2,0x2a,0x2e, - 0x3,0x2c,0x3e, 0x3,0x2c,0x41, 0x3,0x2c,0x43, 0x3,0x2c,0x3d, - 0x1,0x55,0x33, 0x3,0x30,0x63, 0x1,0x55,0x32, 0x3,0x30,0x5f, - 0x2,0x2e,0x6e, 0x1,0x55,0x2f, 0x2,0x2e,0x70, 0x3,0x30,0x64, - 0x1,0x55,0x34, 0x2,0x2e,0x71, 0x4,0x2c,0x60, 0x3,0x30,0x61, - 0x1,0x55,0x37, 0x3,0x30,0x62, 0x1,0x55,0x35, 0x2,0x2e,0x72, - 0x2,0x2a,0x2f, 0x2,0x2e,0x74, 0x3,0x30,0x5e, 0x1,0x55,0x31, - 0x4,0x2c,0x5c, 0x1,0x55,0x30, 0x4,0x2c,0x61, 0x2,0x2e,0x6f, - 0x2,0x2e,0x73, 0x1,0x55,0x36, 0x1,0x59,0x77, 0x1,0x59,0x76, - 0x3,0x35,0x4b, 0x3,0x35,0x48, 0x3,0x35,0x47, 0x2,0x34,0x78, - 0x2,0x34,0x7c, 0x2,0x34,0x7e, 0x1,0x59,0x78, 0x2,0x35,0x23, - 0x3,0x35,0x51, 0x1,0x59,0x7c, 0x2,0x35,0x25, 0x3,0x35,0x52, - 0x1,0x59,0x7e, 0x3,0x35,0x4f, 0x1,0x59,0x7a, 0x1,0x5a,0x24, - 0x3,0x35,0x55, 0x1,0x5a,0x21, 0x2,0x34,0x7a, 0x1,0x59,0x79, - 0x3,0x3b,0x2b, 0x2,0x34,0x79, 0x2,0x34,0x77, 0x2,0x35,0x27, - 0x2,0x34,0x7b, 0x3,0x35,0x46, 0x1,0x59,0x7b, 0x2,0x35,0x26, - 0x1,0x5a,0x22, 0x2,0x35,0x22, 0x2,0x35,0x21, 0x1,0x5a,0x23, - 0x2,0x34,0x7d, 0x1,0x59,0x7d, 0x3,0x35,0x4e, 0x6,0x3e,0x76, - 0x3,0x35,0x4a, 0x2,0x35,0x28, 0x3,0x35,0x54, 0x2,0x35,0x24, - 0x2,0x3b,0x4b, 0x2,0x3b,0x52, 0x2,0x3b,0x47, 0x1,0x5e,0x76, - 0x2,0x3b,0x43, 0x2,0x3b,0x53, 0x2,0x3b,0x3d, 0x2,0x3b,0x50, - 0x2,0x3b,0x4e, 0x2,0x3b,0x48, 0x3,0x3b,0x36, 0x2,0x3b,0x51, - 0x2,0x3b,0x4a, 0x3,0x3b,0x28, 0x2,0x3b,0x42, 0x2,0x3b,0x54, - 0x2,0x3b,0x40, 0x2,0x3b,0x4d, 0x2,0x3b,0x3e, 0x3,0x3b,0x27, - 0x2,0x3b,0x55, 0x3,0x3b,0x37, 0x1,0x5e,0x77, 0x3,0x3b,0x2a, - 0x2,0x3b,0x4f, 0x2,0x42,0x55, 0x2,0x3b,0x41, 0x1,0x5e,0x74, - 0x3,0x3b,0x2e, 0x2,0x3b,0x45, 0x3,0x3b,0x34, 0x1,0x5e,0x75, - 0x2,0x3b,0x44, 0x2,0x3b,0x49, 0x3,0x3b,0x33, 0x4,0x37,0x35, - 0x2,0x3b,0x46, 0x4,0x37,0x2f, 0x3,0x3b,0x31, 0x2,0x3b,0x4c, - 0x3,0x3b,0x2d, 0x2,0x42,0x59, 0x4,0x3c,0x79, 0x3,0x41,0x21, - 0x4,0x3c,0x7b, 0x2,0x42,0x5c, 0x2,0x42,0x54, 0x3,0x40,0x7c, - 0x2,0x42,0x56, 0x3,0x40,0x7a, 0x2,0x42,0x5b, 0x2,0x42,0x5a, - 0x1,0x63,0x69, 0x4,0x3c,0x75, 0x2,0x3b,0x3f, 0x2,0x42,0x58, - 0x3,0x40,0x79, 0x3,0x40,0x7d, 0x1,0x63,0x6a, 0x4,0x3c,0x74, - 0x2,0x42,0x53, 0x2,0x42,0x57, 0x4,0x3c,0x7c, 0x4,0x3c,0x78, - 0x3,0x64,0x6e, 0x2,0x49,0x6e, 0x3,0x46,0x5c, 0x2,0x49,0x75, - 0x2,0x49,0x6c, 0x3,0x46,0x54, 0x2,0x49,0x73, 0x2,0x49,0x6a, - 0x2,0x49,0x72, 0x2,0x49,0x76, 0x2,0x49,0x69, 0x2,0x49,0x6d, - 0x2,0x49,0x68, 0x3,0x46,0x56, 0x1,0x68,0x59, 0x4,0x43,0x2c, - 0x2,0x49,0x6b, 0x1,0x68,0x5a, 0x2,0x49,0x71, 0x2,0x49,0x70, - 0x2,0x49,0x6f, 0x3,0x46,0x59, 0x3,0x46,0x5a, 0x2,0x49,0x74, - 0x3,0x64,0x6f, 0x3,0x4b,0x65, 0x3,0x4b,0x66, 0x3,0x4b,0x63, - 0x2,0x50,0x2e, 0x2,0x50,0x30, 0x1,0x6c,0x55, 0x2,0x50,0x31, - 0x3,0x4b,0x6b, 0x2,0x50,0x2c, 0x3,0x4b,0x67, 0x2,0x50,0x2b, - 0x2,0x50,0x35, 0x3,0x4b,0x69, 0x2,0x50,0x33, 0x1,0x6c,0x54, - 0x2,0x50,0x36, 0x2,0x50,0x2d, 0x2,0x50,0x32, 0x2,0x50,0x34, - 0x2,0x50,0x2f, 0x3,0x4b,0x6a, 0x3,0x4b,0x68, 0x3,0x64,0x70, - 0x3,0x50,0x58, 0x2,0x56,0x6b, 0x2,0x56,0x70, 0x2,0x56,0x6a, - 0x2,0x56,0x6f, 0x3,0x50,0x5b, 0x2,0x56,0x68, 0x2,0x56,0x72, - 0x2,0x56,0x6e, 0x2,0x56,0x73, 0x2,0x56,0x6d, 0x2,0x56,0x69, - 0x2,0x56,0x71, 0x3,0x50,0x5a, 0x2,0x56,0x74, 0x2,0x56,0x6c, - 0x3,0x64,0x71, 0x2,0x5c,0x66, 0x1,0x73,0x58, 0x3,0x54,0x57, - 0x1,0x73,0x56, 0x3,0x54,0x59, 0x1,0x73,0x55, 0x1,0x73,0x57, - 0x3,0x54,0x55, 0x3,0x64,0x72, 0x2,0x61,0x50, 0x3,0x57,0x62, - 0x2,0x64,0x3e, 0x2,0x65,0x49, 0x3,0x5a,0x39, 0x2,0x68,0x70, - 0x2,0x68,0x71, 0x3,0x5c,0x3d, 0x1,0x79,0x6b, 0x3,0x5c,0x3c, - 0x2,0x6b,0x57, 0x3,0x5c,0x3e, 0x1,0x7a,0x69, 0x4,0x66,0x3b, - 0x2,0x6b,0x58, 0x3,0x5e,0x2d, 0x2,0x6d,0x4c, 0x1,0x7b,0x5e, - 0x3,0x5f,0x43, 0x1,0x7b,0x5d, 0x2,0x6d,0x4b, 0x1,0x7c,0x35, - 0x3,0x60,0x30, 0x2,0x6f,0x25, 0x4,0x6b,0x68, 0x4,0x6a,0x46, - 0x3,0x21,0x3c, 0x4,0x21,0x2c, 0x1,0x44,0x55, 0x1,0x47,0x7c, - 0x2,0x22,0x3a, 0x2,0x23,0x6a, 0x1,0x4b,0x56, 0x1,0x5a,0x25, - 0x3,0x35,0x57, 0x3,0x4b,0x6c, 0x1,0x44,0x56, 0x1,0x46,0x4a, - 0x1,0x46,0x49, 0x1,0x46,0x48, 0x4,0x22,0x63, 0x1,0x4a,0x27, - 0x1,0x55,0x38, 0x2,0x42,0x5d, 0x1,0x44,0x57, 0x1,0x44,0x58, - 0x1,0x44,0x59, 0x1,0x45,0x3b, 0x3,0x25,0x67, 0x3,0x28,0x60, - 0x1,0x50,0x73, 0x4,0x2c,0x64, 0x2,0x2a,0x30, 0x3,0x2c,0x45, - 0x3,0x2c,0x44, 0x1,0x5e,0x78, 0x1,0x44,0x5a, 0x2,0x21,0x3d, - 0x3,0x21,0x63, 0x4,0x21,0x4c, 0x1,0x46,0x4b, 0x1,0x46,0x4c, - 0x2,0x21,0x59, 0x1,0x47,0x7d, 0x5,0x22,0x5c, 0x3,0x23,0x5c, - 0x3,0x25,0x68, 0x2,0x23,0x6b, 0x3,0x25,0x6b, 0x1,0x4a,0x28, - 0x4,0x24,0x23, 0x2,0x23,0x6c, 0x1,0x4d,0x30, 0x3,0x28,0x62, - 0x3,0x28,0x61, 0x2,0x26,0x4f, 0x1,0x4d,0x2e, 0x1,0x4d,0x2d, - 0x2,0x26,0x4e, 0x1,0x4d,0x2b, 0x2,0x26,0x50, 0x1,0x4d,0x2c, - 0x1,0x4d,0x2f, 0x1,0x50,0x74, 0x3,0x2c,0x46, 0x1,0x50,0x76, - 0x2,0x2a,0x34, 0x2,0x2a,0x31, 0x2,0x2a,0x32, 0x2,0x2a,0x33, - 0x2,0x2a,0x35, 0x1,0x50,0x75, 0x2,0x2e,0x76, 0x2,0x2e,0x75, - 0x3,0x30,0x66, 0x1,0x55,0x3a, 0x3,0x30,0x69, 0x1,0x55,0x39, - 0x3,0x30,0x68, 0x3,0x30,0x6a, 0x3,0x30,0x67, 0x3,0x35,0x5b, - 0x1,0x5a,0x28, 0x2,0x35,0x2a, 0x3,0x35,0x59, 0x1,0x5a,0x27, - 0x1,0x5a,0x29, 0x1,0x5a,0x26, 0x3,0x35,0x58, 0x3,0x35,0x5a, - 0x1,0x5e,0x7a, 0x2,0x35,0x29, 0x5,0x37,0x7c, 0x1,0x5e,0x7b, - 0x2,0x3b,0x57, 0x3,0x39,0x79, 0x1,0x5e,0x7c, 0x2,0x3b,0x56, - 0x1,0x5e,0x79, 0x3,0x3b,0x3a, 0x3,0x3b,0x3b, 0x3,0x3b,0x3d, - 0x2,0x42,0x60, 0x2,0x42,0x62, 0x1,0x63,0x6b, 0x2,0x42,0x61, - 0x2,0x42,0x5f, 0x2,0x42,0x5e, 0x4,0x3d,0x2a, 0x4,0x43,0x35, - 0x3,0x46,0x5d, 0x2,0x49,0x79, 0x1,0x68,0x5f, 0x1,0x68,0x5d, - 0x4,0x43,0x30, 0x1,0x68,0x5e, 0x2,0x49,0x77, 0x2,0x49,0x78, - 0x3,0x4b,0x6d, 0x1,0x68,0x5b, 0x2,0x50,0x3a, 0x2,0x50,0x38, - 0x3,0x4b,0x70, 0x1,0x6c,0x57, 0x2,0x50,0x39, 0x1,0x6c,0x58, - 0x1,0x6c,0x56, 0x1,0x68,0x5c, 0xf,0x4e,0x5e, 0x3,0x64,0x73, - 0x2,0x56,0x77, 0x2,0x56,0x75, 0x2,0x56,0x76, 0x2,0x50,0x37, - 0x2,0x5c,0x68, 0x1,0x73,0x59, 0x2,0x5c,0x67, 0x2,0x61,0x51, - 0x2,0x61,0x52, 0x2,0x56,0x78, 0x2,0x65,0x4a, 0x3,0x66,0x77, - 0x1,0x44,0x5b, 0x1,0x46,0x4d, 0x1,0x48,0x21, 0x2,0x22,0x3b, - 0x1,0x47,0x7e, 0x3,0x28,0x63, 0x1,0x4d,0x31, 0x1,0x63,0x6c, - 0x3,0x21,0x3d, 0x1,0x45,0x3c, 0x1,0x46,0x4e, 0x1,0x50,0x77, - 0x1,0x5e,0x7d, 0x3,0x21,0x3e, 0x2,0x21,0x5a, 0x3,0x22,0x47, - 0x2,0x21,0x5b, 0x3,0x22,0x48, 0x2,0x22,0x3c, 0x3,0x66,0x78, - 0x1,0x4a,0x2a, 0x2,0x23,0x70, 0x2,0x23,0x6e, 0x1,0x4a,0x2b, - 0x2,0x23,0x6d, 0x2,0x23,0x6f, 0x2,0x23,0x71, 0x4,0x24,0x28, - 0x1,0x4a,0x29, 0x3,0x25,0x6e, 0x3,0x25,0x6d, 0x1,0x4d,0x35, - 0x1,0x4d,0x36, 0x1,0x4d,0x33, 0x3,0x28,0x65, 0x3,0x28,0x67, - 0x1,0x4d,0x32, 0x2,0x2a,0x39, 0x1,0x4d,0x34, 0x3,0x28,0x68, - 0x1,0x50,0x78, 0x3,0x2c,0x48, 0x2,0x2a,0x38, 0x2,0x2a,0x3a, - 0x2,0x2a,0x37, 0x2,0x2a,0x3b, 0x1,0x50,0x79, 0x1,0x55,0x3d, - 0x2,0x2e,0x77, 0x3,0x30,0x6c, 0x2,0x2e,0x79, 0x1,0x55,0x3b, - 0x2,0x2e,0x7a, 0x1,0x55,0x3c, 0x2,0x2e,0x78, 0x3,0x30,0x6b, - 0x2,0x2a,0x36, 0x2,0x35,0x2b, 0x2,0x35,0x2e, 0x2,0x35,0x2f, - 0x2,0x35,0x2c, 0x1,0x5a,0x2d, 0x1,0x5a,0x2c, 0x1,0x5a,0x2a, - 0x1,0x5a,0x2b, 0x2,0x35,0x2d, 0x3,0x35,0x61, 0x3,0x35,0x60, - 0x3,0x3b,0x3f, 0x1,0x5a,0x2e, 0x3,0x3b,0x40, 0x3,0x3b,0x3e, - 0x1,0x5f,0x21, 0x1,0x5f,0x22, 0x6,0x48,0x45, 0x1,0x5f,0x23, - 0x2,0x42,0x63, 0x2,0x42,0x65, 0x2,0x42,0x67, 0x1,0x63,0x6e, - 0x1,0x63,0x6d, 0x1,0x5e,0x7e, 0x2,0x42,0x66, 0x2,0x42,0x64, - 0x3,0x64,0x74, 0x2,0x49,0x7d, 0x3,0x46,0x61, 0x3,0x46,0x60, - 0x2,0x49,0x7b, 0x2,0x4a,0x23, 0x1,0x68,0x60, 0x2,0x4a,0x24, - 0x2,0x4a,0x21, 0x1,0x68,0x61, 0x2,0x49,0x7c, 0x2,0x49,0x7a, - 0x2,0x4a,0x22, 0x1,0x6c,0x5a, 0x2,0x50,0x3c, 0x2,0x49,0x7e, - 0x1,0x6c,0x5c, 0x2,0x50,0x3d, 0x1,0x6c,0x5b, 0x1,0x6c,0x5e, - 0x2,0x50,0x3e, 0x1,0x6c,0x59, 0x1,0x6c,0x5d, 0x2,0x56,0x7d, - 0x2,0x56,0x7b, 0x2,0x56,0x7a, 0x2,0x56,0x7c, 0x2,0x56,0x79, - 0x3,0x50,0x5c, 0x4,0x5b,0x21, 0x1,0x78,0x33, 0x3,0x64,0x75, - 0x2,0x68,0x72, 0x2,0x68,0x73, 0x3,0x5c,0x3f, 0x2,0x6b,0x59, - 0x2,0x6d,0x4d, 0x1,0x7d,0x22, 0x3,0x21,0x3f, 0x3,0x23,0x61, - 0x1,0x4d,0x37, 0x1,0x4a,0x2c, 0x3,0x28,0x69, 0x3,0x28,0x6b, - 0x1,0x50,0x7a, 0x3,0x2c,0x4c, 0x3,0x2c,0x4b, 0x3,0x30,0x6e, - 0x1,0x44,0x5c, 0x1,0x45,0x3d, 0x4,0x21,0x4d, 0x1,0x46,0x4f, - 0x2,0x22,0x3d, 0x3,0x25,0x6f, 0x1,0x4a,0x2d, 0x2,0x23,0x72, - 0x3,0x28,0x6d, 0x2,0x2a,0x3c, 0x1,0x50,0x7b, 0x1,0x68,0x62, - 0x1,0x44,0x5d, 0x3,0x21,0x64, 0x3,0x22,0x49, 0x3,0x23,0x62, - 0x1,0x48,0x22, 0xf,0x22,0x4e, 0x3,0x3b,0x42, 0x1,0x63,0x6f, - 0x1,0x44,0x5e, 0x1,0x45,0x3e, 0x1,0x45,0x3f, 0x1,0x46,0x51, - 0x1,0x46,0x50, 0x4,0x22,0x6b, 0x2,0x22,0x3e, 0x1,0x48,0x23, - 0x4,0x22,0x6c, 0x2,0x23,0x73, 0x3,0x25,0x71, 0x1,0x4a,0x2e, - 0x3,0x28,0x6e, 0x2,0x26,0x52, 0x2,0x26,0x53, 0x2,0x26,0x54, - 0x3,0x28,0x70, 0x1,0x4d,0x38, 0x1,0x4d,0x39, 0x2,0x26,0x51, - 0x1,0x4d,0x3a, 0x4,0x29,0x2c, 0x4,0x2c,0x70, 0x1,0x50,0x7c, - 0x2,0x2a,0x3d, 0x3,0x2c,0x4d, 0x2,0x2e,0x7c, 0x1,0x55,0x3e, - 0x3,0x30,0x6f, 0x2,0x2e,0x7b, 0x3,0x35,0x62, 0x1,0x5a,0x2f, - 0x2,0x35,0x30, 0x1,0x5a,0x30, 0x2,0x35,0x31, 0x3,0x35,0x63, - 0x3,0x3b,0x47, 0x3,0x3b,0x45, 0x1,0x5f,0x24, 0x4,0x37,0x45, - 0x3,0x3b,0x44, 0x4,0x3d,0x30, 0x2,0x42,0x68, 0xf,0x41,0x3f, - 0x3,0x41,0x22, 0x2,0x4a,0x26, 0x2,0x4a,0x25, 0x1,0x68,0x63, - 0x4,0x49,0x5e, 0x1,0x6c,0x5f, 0x2,0x50,0x3f, 0x1,0x70,0x53, - 0x2,0x56,0x7e, 0x1,0x73,0x5a, 0x3,0x57,0x63, 0x1,0x7b,0x5f, - 0x2,0x6f,0x27, 0x3,0x21,0x40, 0x3,0x21,0x41, 0x3,0x22,0x4a, - 0x3,0x23,0x51, 0x2,0x26,0x55, 0x3,0x28,0x71, 0x2,0x2a,0x3e, - 0x1,0x5a,0x31, 0x2,0x3b,0x58, 0x1,0x63,0x70, 0x3,0x41,0x23, - 0x3,0x50,0x5e, 0xf,0x54,0x43, 0x3,0x57,0x64, 0x1,0x76,0x41, - 0x3,0x61,0x64, 0x3,0x21,0x42, 0x1,0x4a,0x30, 0x3,0x25,0x72, - 0x1,0x4a,0x2f, 0x1,0x50,0x7d, 0x3,0x2c,0x50, 0x2,0x2e,0x7d, - 0x1,0x5a,0x33, 0x1,0x5d,0x29, 0x1,0x5a,0x34, 0x1,0x5a,0x32, - 0x1,0x5f,0x25, 0x3,0x41,0x24, 0x2,0x4a,0x27, 0x1,0x68,0x64, - 0x1,0x6c,0x60, 0x3,0x5f,0x45, 0x2,0x21,0x2c, 0x2,0x22,0x3f, - 0x4,0x22,0x6d, 0x2,0x23,0x75, 0x1,0x4a,0x31, 0x2,0x23,0x74, - 0x1,0x4a,0x32, 0x4,0x24,0x2c, 0x1,0x4d,0x3e, 0x2,0x26,0x58, - 0x2,0x26,0x57, 0x1,0x4d,0x3d, 0x1,0x4d,0x3b, 0x1,0x4d,0x3c, - 0x2,0x26,0x56, 0x3,0x28,0x76, 0x3,0x28,0x75, 0x1,0x51,0x21, - 0x2,0x2a,0x3f, 0x1,0x51,0x24, 0x1,0x50,0x7e, 0x1,0x51,0x26, - 0x1,0x51,0x22, 0x1,0x51,0x23, 0x1,0x51,0x25, 0x4,0x29,0x31, - 0x3,0x30,0x70, 0x3,0x30,0x72, 0x1,0x55,0x41, 0x1,0x55,0x40, - 0x1,0x55,0x3f, 0x3,0x30,0x71, 0x3,0x64,0x76, 0x2,0x35,0x33, - 0x1,0x5a,0x35, 0x1,0x5a,0x38, 0x1,0x5a,0x36, 0x3,0x64,0x77, - 0x2,0x35,0x32, 0x1,0x5a,0x3b, 0x4,0x31,0x53, 0x1,0x5a,0x37, - 0x2,0x35,0x34, 0x1,0x5a,0x3a, 0x1,0x5a,0x39, 0x4,0x31,0x52, - 0x4,0x31,0x57, 0x4,0x37,0x4a, 0x2,0x3b,0x5a, 0x2,0x3b,0x59, - 0x3,0x3b,0x4b, 0x1,0x5f,0x28, 0x1,0x5f,0x26, 0x1,0x5f,0x27, - 0x2,0x3b,0x5b, 0x1,0x63,0x71, 0x2,0x42,0x6a, 0x1,0x63,0x72, - 0x2,0x42,0x69, 0x4,0x3d,0x34, 0x4,0x43,0x3f, 0x2,0x50,0x40, - 0x3,0x46,0x63, 0x3,0x46,0x64, 0x1,0x6c,0x62, 0x2,0x4a,0x28, - 0x1,0x6c,0x61, 0x3,0x4b,0x72, 0x1,0x68,0x65, 0x3,0x64,0x78, - 0x2,0x57,0x22, 0x2,0x57,0x21, 0x1,0x73,0x5b, 0x2,0x5c,0x69, - 0x2,0x65,0x4b, 0x2,0x68,0x74, 0x2,0x68,0x75, 0x3,0x5e,0x2f, - 0x1,0x45,0x40, 0x4,0x21,0x36, 0x1,0x46,0x52, 0x3,0x22,0x4d, - 0x4,0x22,0x71, 0x2,0x21,0x5c, 0x3,0x22,0x4c, 0x5,0x22,0x66, - 0x1,0x4a,0x34, 0x1,0x4a,0x36, 0x3,0x25,0x78, 0x2,0x22,0x42, - 0x2,0x23,0x78, 0x2,0x23,0x77, 0x2,0x23,0x76, 0x3,0x23,0x66, - 0x2,0x22,0x41, 0x2,0x22,0x40, 0x1,0x48,0x25, 0x1,0x4a,0x35, - 0x1,0x4a,0x33, 0x1,0x48,0x24, 0x3,0x23,0x67, 0x3,0x23,0x69, - 0x3,0x25,0x77, 0x1,0x4d,0x3f, 0x2,0x26,0x59, 0x3,0x25,0x7b, - 0x1,0x4d,0x40, 0x2,0x23,0x7d, 0x4,0x26,0x50, 0x2,0x24,0x21, - 0x2,0x23,0x7e, 0x2,0x26,0x5a, 0x3,0x25,0x76, 0x3,0x25,0x74, - 0x2,0x23,0x7a, 0x3,0x28,0x7e, 0x1,0x4a,0x3a, 0x1,0x4a,0x38, - 0x3,0x25,0x7c, 0x2,0x23,0x79, 0x2,0x23,0x7b, 0x2,0x24,0x23, - 0x3,0x26,0x22, 0x1,0x4a,0x37, 0x3,0x26,0x21, 0x2,0x23,0x7c, - 0x2,0x24,0x27, 0x1,0x4d,0x42, 0x3,0x25,0x7d, 0x2,0x24,0x24, - 0x1,0x4a,0x39, 0x3,0x26,0x23, 0x2,0x24,0x22, 0x2,0x24,0x25, - 0x3,0x25,0x7a, 0x1,0x4d,0x41, 0x3,0x25,0x75, 0x1,0x4d,0x43, - 0x2,0x24,0x26, 0x3,0x28,0x78, 0x3,0x29,0x22, 0x2,0x26,0x6e, - 0x2,0x26,0x61, 0x2,0x26,0x5f, 0x2,0x26,0x6d, 0x2,0x26,0x68, - 0x1,0x51,0x2b, 0x1,0x4d,0x44, 0x2,0x26,0x69, 0x2,0x26,0x6c, - 0x1,0x51,0x27, 0x2,0x26,0x6b, 0x1,0x4d,0x45, 0x1,0x4d,0x4a, - 0x1,0x4d,0x48, 0x2,0x26,0x62, 0x4,0x29,0x36, 0x2,0x26,0x5d, - 0x2,0x26,0x64, 0x1,0x4d,0x4f, 0x2,0x26,0x6f, 0x1,0x51,0x28, - 0x2,0x26,0x65, 0x4,0x26,0x4f, 0x1,0x51,0x29, 0x1,0x4d,0x4b, - 0x2,0x26,0x67, 0x3,0x2c,0x5a, 0x2,0x2a,0x4e, 0x1,0x51,0x2a, - 0x2,0x26,0x5c, 0x1,0x4d,0x4c, 0x1,0x51,0x2c, 0x1,0x4d,0x4d, - 0x1,0x4d,0x49, 0x1,0x4d,0x4e, 0x2,0x26,0x66, 0x2,0x26,0x5b, - 0x2,0x26,0x6a, 0x1,0x4d,0x46, 0x3,0x28,0x77, 0x3,0x2c,0x5b, - 0x2,0x26,0x5e, 0x2,0x26,0x63, 0x2,0x26,0x60, 0x1,0x4d,0x47, - 0x3,0x28,0x7a, 0x2,0x2a,0x40, 0x4,0x29,0x45, 0x2,0x2a,0x41, - 0x3,0x29,0x21, 0x2,0x2a,0x4b, 0x2,0x2f,0x23, 0x2,0x2a,0x4c, - 0x1,0x51,0x32, 0x2,0x2a,0x4f, 0x2,0x2a,0x45, 0x1,0x51,0x31, - 0x2,0x2a,0x47, 0x4,0x29,0x3f, 0x2,0x2a,0x48, 0x3,0x2c,0x60, - 0x3,0x30,0x79, 0x2,0x2a,0x4a, 0x1,0x51,0x2d, 0x3,0x2c,0x56, - 0x3,0x30,0x73, 0x1,0x55,0x45, 0x3,0x2c,0x57, 0x3,0x2c,0x5d, - 0x2,0x2a,0x46, 0x2,0x2a,0x42, 0x1,0x55,0x46, 0x3,0x30,0x7e, - 0x4,0x29,0x3e, 0x2,0x2a,0x50, 0x1,0x55,0x42, 0x2,0x2f,0x21, - 0x2,0x2a,0x49, 0x3,0x2c,0x54, 0x2,0x2e,0x7e, 0x2,0x2a,0x44, - 0x2,0x2a,0x4d, 0x3,0x2c,0x5f, 0x3,0x2c,0x61, 0x1,0x51,0x30, - 0x1,0x55,0x43, 0x1,0x51,0x36, 0x1,0x55,0x44, 0x2,0x2a,0x51, - 0x2,0x2f,0x22, 0x1,0x51,0x2f, 0x1,0x55,0x48, 0x1,0x51,0x35, - 0x1,0x51,0x34, 0x1,0x51,0x33, 0x1,0x55,0x47, 0x2,0x2a,0x52, - 0x1,0x55,0x49, 0x1,0x51,0x2e, 0x4,0x29,0x4b, 0x2,0x2a,0x43, - 0x3,0x30,0x7a, 0x3,0x30,0x78, 0x3,0x30,0x7b, 0x3,0x2c,0x5c, - 0x3,0x30,0x76, 0x1,0x5a,0x3c, 0x2,0x2f,0x26, 0x2,0x2f,0x28, - 0x4,0x2d,0x25, 0x2,0x2f,0x2a, 0x1,0x55,0x4a, 0x1,0x55,0x50, - 0x2,0x35,0x37, 0x2,0x2f,0x2e, 0x2,0x2f,0x25, 0x1,0x5a,0x3e, - 0x2,0x35,0x35, 0x3,0x31,0x22, 0x1,0x55,0x4f, 0x1,0x55,0x4d, - 0x2,0x2f,0x30, 0x4,0x2d,0x2d, 0x2,0x35,0x36, 0x4,0x2d,0x2c, - 0x2,0x2f,0x27, 0x3,0x31,0x25, 0x1,0x55,0x4e, 0x2,0x2f,0x2b, - 0x1,0x55,0x51, 0x2,0x2f,0x2d, 0x3,0x35,0x68, 0x3,0x30,0x74, - 0x1,0x55,0x4c, 0x2,0x2f,0x2c, 0x2,0x2f,0x2f, 0x2,0x2f,0x29, - 0x3,0x31,0x27, 0x1,0x55,0x4b, 0x1,0x5a,0x3f, 0x3,0x35,0x71, - 0x2,0x2f,0x24, 0x1,0x5a,0x3d, 0x3,0x35,0x72, 0x4,0x31,0x6b, - 0x3,0x31,0x23, 0x3,0x31,0x28, 0x1,0x5a,0x40, 0x3,0x31,0x21, - 0x3,0x35,0x6f, 0x3,0x31,0x26, 0x2,0x35,0x39, 0x2,0x35,0x42, - 0x1,0x5f,0x2b, 0x3,0x3b,0x54, 0x1,0x5a,0x42, 0x1,0x5a,0x47, - 0x1,0x5f,0x2c, 0x2,0x35,0x44, 0x1,0x5a,0x4e, 0x2,0x3b,0x5d, - 0x2,0x35,0x3a, 0x1,0x5a,0x46, 0x1,0x5a,0x49, 0x1,0x5a,0x44, - 0x2,0x35,0x38, 0x2,0x35,0x46, 0x2,0x35,0x49, 0x2,0x3b,0x6c, - 0x4,0x31,0x68, 0x2,0x35,0x47, 0x2,0x3b,0x61, 0x1,0x5a,0x45, - 0x1,0x5a,0x4c, 0x1,0x5a,0x50, 0x2,0x35,0x41, 0x2,0x3b,0x5c, - 0x2,0x35,0x45, 0x1,0x5a,0x41, 0x2,0x3b,0x5e, 0x2,0x35,0x48, - 0x2,0x3b,0x60, 0x2,0x35,0x3d, 0x3,0x35,0x6a, 0x1,0x5f,0x29, - 0x3,0x3b,0x56, 0x2,0x35,0x3b, 0x2,0x35,0x3c, 0x1,0x5a,0x4b, - 0x3,0x3b,0x55, 0x3,0x35,0x6e, 0x1,0x5a,0x4a, 0x2,0x35,0x3f, - 0x1,0x5a,0x4f, 0x2,0x35,0x43, 0x1,0x5a,0x48, 0x2,0x35,0x40, - 0x3,0x35,0x79, 0x1,0x5a,0x4d, 0x1,0x5f,0x2d, 0x1,0x5f,0x2a, - 0x2,0x3b,0x5f, 0x3,0x3b,0x58, 0x2,0x35,0x3e, 0x3,0x3b,0x59, - 0x1,0x5a,0x43, 0x3,0x35,0x76, 0x3,0x35,0x78, 0x3,0x3b,0x5a, - 0x3,0x3b,0x4d, 0x3,0x35,0x74, 0x1,0x5f,0x32, 0x1,0x5f,0x36, - 0x2,0x3b,0x63, 0x1,0x63,0x77, 0x1,0x5f,0x34, 0x2,0x3b,0x67, - 0x1,0x5f,0x38, 0x2,0x42,0x6b, 0x2,0x3b,0x69, 0x1,0x63,0x79, - 0x1,0x5f,0x30, 0x1,0x5f,0x33, 0x2,0x3b,0x6a, 0x3,0x3b,0x5e, - 0x2,0x3b,0x6b, 0x2,0x3b,0x71, 0x1,0x5f,0x3a, 0x1,0x63,0x7a, - 0x4,0x3d,0x3d, 0x2,0x3b,0x6d, 0x2,0x3b,0x72, 0x2,0x3b,0x66, - 0x1,0x64,0x26, 0x3,0x3b,0x4f, 0x1,0x63,0x7b, 0x1,0x5f,0x39, - 0x2,0x3b,0x64, 0x2,0x3b,0x73, 0x3,0x3b,0x51, 0x1,0x64,0x25, - 0x1,0x5f,0x37, 0x1,0x63,0x74, 0x2,0x3b,0x70, 0x3,0x3b,0x5d, - 0x1,0x5f,0x3b, 0x2,0x3b,0x68, 0x2,0x3b,0x62, 0x1,0x5f,0x31, - 0x2,0x3b,0x65, 0x5,0x3f,0x30, 0x2,0x3b,0x6e, 0x3,0x41,0x2b, - 0x1,0x63,0x73, 0x1,0x63,0x78, 0x1,0x5f,0x2e, 0x2,0x3b,0x6f, - 0x3,0x3b,0x61, 0x1,0x63,0x76, 0x3,0x3b,0x62, 0x3,0x3b,0x63, - 0x3,0x3b,0x50, 0x1,0x5f,0x2f, 0x3,0x64,0x79, 0x1,0x64,0x24, - 0x2,0x4a,0x2a, 0x2,0x42,0x76, 0x3,0x41,0x29, 0x2,0x42,0x6e, - 0x2,0x4a,0x29, 0x4,0x3d,0x39, 0x2,0x42,0x72, 0x2,0x42,0x74, - 0x3,0x41,0x27, 0x3,0x41,0x2c, 0x2,0x42,0x71, 0x3,0x46,0x6f, - 0x1,0x64,0x23, 0x4,0x3d,0x38, 0x2,0x42,0x70, 0x1,0x64,0x27, - 0x3,0x46,0x6e, 0x6,0x52,0x64, 0x3,0x41,0x28, 0x2,0x4a,0x39, - 0x3,0x46,0x6c, 0x3,0x41,0x2e, 0x1,0x64,0x22, 0x1,0x68,0x67, - 0x2,0x42,0x77, 0x2,0x4a,0x2b, 0x3,0x46,0x6d, 0x3,0x41,0x2a, - 0x1,0x63,0x7e, 0x2,0x42,0x6f, 0x2,0x42,0x73, 0x1,0x68,0x66, - 0x1,0x63,0x75, 0x2,0x42,0x6c, 0x2,0x42,0x6d, 0x1,0x68,0x68, - 0x1,0x63,0x7d, 0x1,0x64,0x21, 0x1,0x63,0x7c, 0x2,0x42,0x75, - 0x3,0x64,0x7a, 0x2,0x4a,0x2f, 0x2,0x4a,0x30, 0x2,0x4a,0x35, - 0x1,0x6c,0x67, 0x2,0x4a,0x3c, 0x3,0x4b,0x73, 0x1,0x68,0x6e, - 0x3,0x4b,0x7e, 0x1,0x68,0x6d, 0x2,0x4a,0x37, 0x3,0x4b,0x74, - 0x1,0x6c,0x66, 0x2,0x4a,0x2c, 0x1,0x68,0x6c, 0x3,0x46,0x71, - 0x2,0x4a,0x3b, 0x1,0x68,0x6a, 0x1,0x68,0x6b, 0x3,0x4b,0x7c, - 0x2,0x4a,0x38, 0x2,0x50,0x51, 0x1,0x6c,0x64, 0x1,0x5f,0x35, - 0x3,0x46,0x72, 0x2,0x4a,0x3a, 0x1,0x6c,0x6b, 0x2,0x4a,0x32, - 0x4,0x49,0x6f, 0x1,0x6c,0x65, 0x3,0x46,0x6a, 0x1,0x6c,0x6a, - 0x2,0x4a,0x2d, 0x2,0x4a,0x31, 0x2,0x4a,0x2e, 0x2,0x4a,0x34, - 0x1,0x68,0x6f, 0x1,0x6c,0x63, 0x1,0x68,0x69, 0x3,0x4c,0x21, - 0x2,0x50,0x43, 0x2,0x4a,0x36, 0x3,0x46,0x68, 0x1,0x6c,0x69, - 0x3,0x46,0x73, 0x1,0x6c,0x6c, 0x7,0x22,0x71, 0x2,0x4a,0x33, - 0x3,0x46,0x6b, 0x1,0x6c,0x68, 0x2,0x50,0x42, 0x5,0x4d,0x2a, - 0x3,0x4c,0x23, 0x3,0x46,0x74, 0x3,0x4c,0x24, 0x3,0x4b,0x77, - 0x2,0x50,0x47, 0x1,0x70,0x57, 0x2,0x50,0x41, 0x2,0x57,0x2e, - 0x2,0x50,0x50, 0x1,0x6c,0x70, 0x3,0x4b,0x7a, 0x1,0x6c,0x6e, - 0x1,0x70,0x55, 0x2,0x50,0x4d, 0x2,0x50,0x49, 0x1,0x6c,0x74, - 0x3,0x4b,0x76, 0x2,0x57,0x25, 0x3,0x50,0x68, 0x3,0x4c,0x28, - 0x3,0x50,0x67, 0x1,0x6c,0x72, 0x2,0x50,0x48, 0x3,0x4c,0x29, - 0x2,0x57,0x23, 0x3,0x4c,0x25, 0x2,0x50,0x4c, 0x4,0x50,0x3b, - 0x2,0x50,0x4f, 0x2,0x50,0x46, 0x3,0x4b,0x79, 0x1,0x6c,0x73, - 0x4,0x50,0x37, 0x3,0x4b,0x75, 0x1,0x6c,0x6d, 0x2,0x57,0x24, - 0x1,0x70,0x56, 0x2,0x50,0x4e, 0x1,0x6c,0x6f, 0x1,0x6c,0x71, - 0x2,0x50,0x4b, 0x1,0x6c,0x75, 0x2,0x50,0x4a, 0x2,0x50,0x45, - 0x2,0x50,0x44, 0x1,0x70,0x54, 0x2,0x50,0x52, 0x2,0x57,0x27, - 0x2,0x5c,0x6b, 0x1,0x70,0x59, 0x3,0x50,0x61, 0x2,0x57,0x2d, - 0x3,0x50,0x63, 0x2,0x57,0x2b, 0x3,0x50,0x6a, 0x2,0x5c,0x6c, - 0x3,0x50,0x64, 0x1,0x70,0x5a, 0x2,0x57,0x2c, 0x3,0x50,0x66, - 0x2,0x57,0x29, 0x1,0x73,0x5d, 0x2,0x5c,0x6a, 0x3,0x50,0x6c, - 0x2,0x57,0x26, 0x2,0x57,0x28, 0x1,0x73,0x5e, 0x1,0x70,0x5c, - 0x1,0x73,0x5c, 0x1,0x70,0x5b, 0x1,0x73,0x60, 0x2,0x57,0x2a, - 0x1,0x70,0x58, 0x3,0x50,0x62, 0x3,0x50,0x65, 0x3,0x50,0x6b, - 0x3,0x66,0x79, 0x4,0x5b,0x2b, 0x2,0x61,0x5b, 0x4,0x56,0x33, - 0x2,0x61,0x53, 0x3,0x54,0x61, 0x3,0x54,0x5f, 0x3,0x54,0x5c, - 0x3,0x54,0x5e, 0x3,0x54,0x5d, 0x2,0x5c,0x72, 0x2,0x61,0x54, - 0x2,0x5c,0x6e, 0x4,0x56,0x32, 0x3,0x54,0x5b, 0x1,0x76,0x42, - 0x2,0x5c,0x70, 0x2,0x5c,0x6f, 0x1,0x73,0x5f, 0x2,0x5c,0x6d, - 0x2,0x5c,0x71, 0x2,0x61,0x5c, 0x2,0x61,0x58, 0x2,0x61,0x5a, - 0x4,0x5f,0x60, 0x2,0x61,0x55, 0x2,0x61,0x56, 0x4,0x5f,0x61, - 0x2,0x61,0x59, 0x2,0x61,0x57, 0x1,0x78,0x34, 0x3,0x57,0x65, - 0x1,0x78,0x37, 0x1,0x78,0x36, 0x1,0x78,0x35, 0x1,0x79,0x6c, - 0x2,0x68,0x76, 0x1,0x79,0x6d, 0x2,0x65,0x4c, 0x1,0x7a,0x6a, - 0x2,0x6b,0x5a, 0x1,0x7a,0x6b, 0x1,0x7b,0x60, 0x1,0x7c,0x36, - 0x2,0x6f,0x28, 0x3,0x5f,0x46, 0x2,0x6f,0x29, 0x2,0x6f,0x2a, - 0x3,0x61,0x3e, 0x2,0x72,0x2a, 0x1,0x45,0x41, 0x2,0x21,0x5d, - 0x1,0x46,0x53, 0x1,0x48,0x27, 0x1,0x48,0x28, 0x1,0x48,0x26, - 0x3,0x23,0x6b, 0x1,0x48,0x29, 0x1,0x4a,0x3c, 0x1,0x4a,0x3b, - 0x3,0x26,0x25, 0x2,0x26,0x70, 0x1,0x4d,0x51, 0x1,0x4d,0x50, - 0x3,0x2c,0x63, 0x2,0x2f,0x31, 0x1,0x5a,0x51, 0x1,0x5a,0x52, - 0x4,0x31,0x6e, 0x4,0x31,0x70, 0x3,0x3b,0x64, 0x1,0x5f,0x3c, - 0x2,0x42,0x78, 0x1,0x64,0x28, 0x1,0x64,0x29, 0x2,0x42,0x7a, - 0x2,0x42,0x7c, 0x2,0x42,0x7b, 0x4,0x3d,0x43, 0x2,0x4a,0x3e, - 0x3,0x46,0x76, 0x2,0x4a,0x3d, 0x1,0x68,0x70, 0x2,0x4a,0x3f, - 0x3,0x46,0x75, 0x2,0x50,0x53, 0x1,0x6c,0x76, 0x3,0x4c,0x2c, - 0x1,0x70,0x5d, 0x3,0x50,0x6d, 0x1,0x73,0x61, 0x1,0x76,0x43, - 0x1,0x73,0x62, 0x3,0x5f,0x48, 0x1,0x45,0x42, 0x3,0x21,0x65, - 0x3,0x21,0x66, 0x3,0x22,0x4e, 0x2,0x24,0x28, 0x3,0x26,0x28, - 0x3,0x26,0x29, 0x2,0x26,0x71, 0x1,0x4d,0x53, 0x1,0x4d,0x52, - 0x1,0x4d,0x54, 0x1,0x51,0x37, 0x2,0x2a,0x53, 0x2,0x2a,0x54, - 0x3,0x31,0x29, 0x2,0x2f,0x32, 0x1,0x55,0x52, 0x1,0x5a,0x53, - 0x1,0x5f,0x3d, 0x2,0x3b,0x74, 0x1,0x45,0x43, 0x4,0x21,0x37, - 0x1,0x44,0x5f, 0x1,0x45,0x44, 0x3,0x22,0x50, 0x2,0x21,0x5e, - 0x1,0x46,0x57, 0x1,0x46,0x56, 0x1,0x46,0x54, 0x1,0x46,0x55, - 0x3,0x23,0x6f, 0x1,0x48,0x2c, 0x2,0x22,0x49, 0x2,0x22,0x4b, - 0x1,0x48,0x2b, 0x2,0x22,0x43, 0x3,0x23,0x6c, 0x2,0x22,0x44, - 0x3,0x23,0x6d, 0x2,0x22,0x4a, 0x2,0x22,0x46, 0x2,0x22,0x48, - 0x1,0x48,0x2a, 0x2,0x22,0x45, 0x2,0x22,0x4c, 0x2,0x22,0x47, - 0x3,0x23,0x6e, 0xf,0x22,0x51, 0x1,0x4a,0x43, 0x1,0x4a,0x4c, - 0x1,0x4a,0x4a, 0x2,0x24,0x32, 0x2,0x24,0x2f, 0x2,0x24,0x37, - 0x1,0x4a,0x48, 0x2,0x24,0x38, 0x3,0x26,0x39, 0x1,0x4a,0x41, - 0x2,0x24,0x35, 0x3,0x26,0x2e, 0x1,0x4a,0x47, 0x2,0x24,0x31, - 0x2,0x24,0x30, 0x1,0x4a,0x45, 0x2,0x24,0x36, 0x1,0x4a,0x46, - 0x1,0x4d,0x55, 0x1,0x4a,0x40, 0x2,0x24,0x33, 0x3,0x26,0x2a, - 0x2,0x24,0x29, 0x1,0x4a,0x3d, 0x3,0x26,0x37, 0x1,0x4a,0x50, - 0x2,0x24,0x2e, 0x2,0x24,0x34, 0x1,0x4a,0x42, 0x1,0x4a,0x44, - 0x3,0x26,0x2f, 0x2,0x24,0x2a, 0x3,0x26,0x36, 0x2,0x24,0x2b, - 0x2,0x24,0x2c, 0x4,0x24,0x39, 0x1,0x4a,0x4f, 0x1,0x4a,0x49, - 0x1,0x4a,0x4e, 0x2,0x24,0x2d, 0x1,0x4a,0x4d, 0x1,0x4a,0x3f, - 0x1,0x4a,0x3e, 0x1,0x4a,0x4b, 0x3,0x26,0x35, 0x4,0x24,0x3c, - 0x3,0x26,0x33, 0x3,0x26,0x34, 0x3,0x26,0x38, 0x3,0x26,0x31, - 0x3,0x64,0x7b, 0xf,0x24,0x39, 0x3,0x26,0x32, 0x3,0x29,0x31, - 0x3,0x29,0x2a, 0x1,0x4d,0x63, 0x2,0x26,0x7d, 0x2,0x26,0x76, - 0x1,0x4d,0x5e, 0x1,0x4d,0x71, 0x2,0x26,0x72, 0x2,0x26,0x79, - 0x2,0x26,0x7b, 0x2,0x26,0x7e, 0x1,0x4d,0x6c, 0x3,0x29,0x26, - 0x2,0x26,0x7a, 0x2,0x26,0x73, 0x1,0x4d,0x6a, 0x2,0x26,0x77, - 0x3,0x29,0x28, 0x2,0x27,0x21, 0x1,0x4d,0x5b, 0x3,0x29,0x25, - 0x2,0x26,0x7c, 0x1,0x4d,0x65, 0x1,0x4d,0x64, 0x2,0x26,0x75, - 0x1,0x4d,0x59, 0x3,0x29,0x34, 0x3,0x29,0x32, 0x1,0x4d,0x5a, - 0xf,0x27,0x30, 0x1,0x4d,0x58, 0x3,0x29,0x33, 0x1,0x4d,0x70, - 0x1,0x4d,0x68, 0x1,0x4d,0x62, 0x1,0x4d,0x56, 0x2,0x26,0x78, - 0x1,0x4d,0x61, 0x1,0x4d,0x57, 0x1,0x4d,0x69, 0x1,0x4d,0x72, - 0x2,0x2a,0x55, 0x1,0x4d,0x66, 0x2,0x26,0x74, 0x1,0x4d,0x5c, - 0x1,0x4d,0x5f, 0x1,0x4d,0x60, 0x3,0x29,0x2e, 0x1,0x4d,0x6e, - 0x1,0x4d,0x6f, 0x1,0x4d,0x6d, 0x1,0x4d,0x67, 0x1,0x4d,0x6b, - 0x1,0x4d,0x5d, 0x1,0x51,0x38, 0x3,0x29,0x30, 0x3,0x29,0x37, - 0x3,0x29,0x35, 0x3,0x29,0x36, 0x3,0x29,0x2f, 0x3,0x29,0x29, - 0x3,0x2c,0x6d, 0x2,0x2a,0x5b, 0x1,0x51,0x44, 0x1,0x51,0x3c, - 0x1,0x51,0x3e, 0x1,0x51,0x43, 0x2,0x2a,0x67, 0x1,0x51,0x41, - 0x2,0x2f,0x33, 0x1,0x55,0x53, 0x1,0x51,0x46, 0x2,0x2a,0x58, - 0x2,0x2a,0x60, 0x1,0x51,0x42, 0x2,0x2a,0x5f, 0x2,0x2a,0x5c, - 0x2,0x2a,0x64, 0x2,0x2a,0x66, 0x1,0x51,0x3b, 0x1,0x51,0x3f, - 0x1,0x51,0x45, 0x1,0x55,0x55, 0x2,0x2a,0x61, 0x1,0x51,0x3d, - 0x1,0x51,0x48, 0x2,0x2a,0x5a, 0x3,0x2c,0x6f, 0x3,0x2c,0x70, - 0x5,0x29,0x45, 0x1,0x51,0x40, 0x1,0x55,0x54, 0x1,0x51,0x3a, - 0x4,0x29,0x59, 0x2,0x2a,0x57, 0x2,0x2a,0x5e, 0x2,0x2a,0x56, - 0x2,0x2a,0x59, 0x2,0x2a,0x5d, 0x2,0x2f,0x34, 0x1,0x51,0x47, - 0x4,0x29,0x51, 0x2,0x2a,0x62, 0x2,0x2a,0x63, 0x2,0x2a,0x65, - 0x1,0x51,0x39, 0x3,0x2c,0x6c, 0x3,0x31,0x32, 0x3,0x31,0x33, - 0x3,0x2c,0x6b, 0x3,0x2c,0x6e, 0x4,0x29,0x5b, 0x1,0x55,0x63, - 0x2,0x2f,0x40, 0x1,0x55,0x61, 0x1,0x55,0x62, 0x2,0x2f,0x36, - 0x2,0x2f,0x46, 0x3,0x31,0x2c, 0x1,0x55,0x58, 0x3,0x31,0x2f, - 0x3,0x31,0x35, 0x2,0x35,0x4a, 0x2,0x2f,0x48, 0x2,0x2f,0x42, - 0x3,0x31,0x38, 0x2,0x2f,0x39, 0x3,0x31,0x37, 0x2,0x2f,0x4b, - 0x2,0x2f,0x3c, 0x1,0x55,0x5e, 0x2,0x35,0x61, 0x2,0x2f,0x3f, - 0x1,0x55,0x60, 0x1,0x55,0x57, 0x3,0x31,0x3c, 0x2,0x2f,0x4d, - 0x2,0x2f,0x41, 0x1,0x55,0x5a, 0x2,0x2f,0x3a, 0x2,0x2f,0x37, - 0x2,0x2f,0x38, 0x1,0x55,0x5b, 0x2,0x2f,0x47, 0x2,0x2f,0x4e, - 0x1,0x55,0x5d, 0x2,0x2f,0x3e, 0x2,0x2f,0x3d, 0x1,0x55,0x65, - 0x1,0x55,0x64, 0x1,0x55,0x56, 0x1,0x55,0x5c, 0x1,0x55,0x5f, - 0x2,0x2f,0x4a, 0x3,0x31,0x2e, 0x3,0x31,0x39, 0x2,0x2f,0x44, - 0x1,0x55,0x59, 0x2,0x2f,0x35, 0x2,0x2f,0x4c, 0x2,0x2f,0x43, - 0x2,0x2f,0x45, 0x2,0x2f,0x49, 0x3,0x31,0x30, 0x3,0x31,0x3b, - 0x3,0x31,0x36, 0x3,0x64,0x7c, 0x3,0x64,0x7d, 0x2,0x35,0x4b, - 0x3,0x36,0x31, 0x1,0x5a,0x5b, 0x1,0x5a,0x6f, 0x1,0x5a,0x6e, - 0x3,0x36,0x27, 0x1,0x5a,0x63, 0x3,0x36,0x29, 0x2,0x35,0x5d, - 0x2,0x35,0x59, 0x2,0x35,0x56, 0x2,0x35,0x68, 0x1,0x5a,0x5e, - 0x1,0x5a,0x56, 0x3,0x36,0x26, 0x3,0x36,0x32, 0x2,0x35,0x5b, - 0x1,0x5f,0x4d, 0x1,0x5a,0x5a, 0x2,0x35,0x63, 0x3,0x36,0x22, - 0x1,0x5a,0x70, 0x1,0x5a,0x6d, 0x2,0x35,0x5f, 0x2,0x35,0x4e, - 0x3,0x35,0x7c, 0x3,0x36,0x2b, 0x1,0x5a,0x6c, 0x2,0x35,0x65, - 0x2,0x35,0x4d, 0x1,0x5a,0x61, 0x1,0x5a,0x65, 0x2,0x35,0x64, - 0x3,0x36,0x23, 0x2,0x35,0x57, 0x1,0x5a,0x66, 0x1,0x5a,0x60, - 0x2,0x35,0x4c, 0x3,0x35,0x7d, 0x1,0x5f,0x3f, 0x2,0x35,0x67, - 0x2,0x35,0x55, 0x1,0x5a,0x6b, 0x2,0x35,0x58, 0x2,0x35,0x66, - 0x1,0x5a,0x6a, 0x3,0x36,0x24, 0x2,0x3b,0x75, 0x4,0x31,0x77, - 0x1,0x5a,0x57, 0x2,0x35,0x53, 0x1,0x5a,0x5c, 0x1,0x5a,0x67, - 0x4,0x31,0x78, 0x1,0x5a,0x62, 0x2,0x35,0x5c, 0x2,0x35,0x52, - 0x2,0x35,0x50, 0x2,0x35,0x62, 0x1,0x5a,0x54, 0x1,0x5a,0x68, - 0x1,0x5a,0x58, 0x1,0x5f,0x3e, 0x2,0x35,0x60, 0x1,0x5a,0x59, - 0x4,0x32,0x23, 0x1,0x5a,0x55, 0x1,0x5a,0x64, 0x1,0x5a,0x5f, - 0x1,0x5a,0x5d, 0x2,0x35,0x54, 0x1,0x5a,0x69, 0x2,0x35,0x51, - 0x2,0x35,0x5e, 0x2,0x35,0x5a, 0x2,0x3b,0x77, 0x2,0x3b,0x76, - 0x3,0x36,0x2d, 0x3,0x64,0x7e, 0x3,0x36,0x2e, 0x2,0x35,0x4f, - 0x2,0x3c,0x29, 0x3,0x3b,0x71, 0x1,0x5f,0x41, 0x3,0x3b,0x70, - 0x2,0x3c,0x2f, 0x2,0x3b,0x7c, 0x2,0x3c,0x2c, 0x2,0x42,0x7d, - 0x1,0x5f,0x44, 0x2,0x3c,0x30, 0x2,0x3c,0x33, 0x1,0x5f,0x43, - 0x2,0x3c,0x21, 0x2,0x3c,0x32, 0x2,0x3c,0x31, 0x1,0x5f,0x45, - 0x2,0x3b,0x78, 0x1,0x5f,0x40, 0x1,0x5f,0x48, 0x3,0x3b,0x73, - 0x1,0x5f,0x46, 0x2,0x3c,0x2e, 0x4,0x37,0x71, 0x2,0x3c,0x24, - 0x1,0x5f,0x4a, 0x2,0x3c,0x35, 0x2,0x3c,0x2d, 0x2,0x3c,0x36, - 0x1,0x5f,0x52, 0x1,0x5f,0x50, 0x2,0x3c,0x2b, 0x2,0x3c,0x2a, - 0x3,0x3b,0x67, 0x2,0x3c,0x28, 0x2,0x3c,0x22, 0x1,0x5f,0x49, - 0x3,0x3b,0x66, 0x1,0x5f,0x47, 0x2,0x2f,0x3b, 0x2,0x3b,0x79, - 0x3,0x3b,0x68, 0x2,0x43,0x3d, 0x2,0x3b,0x7a, 0x1,0x5f,0x42, - 0x1,0x5f,0x4f, 0x2,0x43,0x21, 0x4,0x37,0x60, 0x1,0x5f,0x4b, - 0x1,0x5f,0x4c, 0x2,0x3b,0x7b, 0x2,0x3c,0x34, 0x2,0x42,0x7e, - 0x2,0x3c,0x25, 0x2,0x3b,0x7e, 0x1,0x5f,0x4e, 0x2,0x3c,0x26, - 0x2,0x3c,0x23, 0x3,0x3b,0x72, 0x3,0x3b,0x6d, 0x1,0x5f,0x53, - 0x4,0x37,0x6f, 0x3,0x3b,0x6f, 0x3,0x65,0x21, 0x1,0x64,0x38, - 0x3,0x41,0x49, 0x3,0x41,0x32, 0x2,0x43,0x24, 0x2,0x43,0x37, - 0x2,0x43,0x3c, 0x2,0x43,0x30, 0x1,0x64,0x34, 0x2,0x43,0x41, - 0x1,0x64,0x31, 0x2,0x43,0x22, 0x3,0x41,0x3a, 0x2,0x43,0x23, - 0x1,0x64,0x2a, 0x1,0x64,0x33, 0x2,0x43,0x2a, 0x1,0x64,0x36, - 0x1,0x64,0x37, 0x2,0x43,0x2b, 0x3,0x41,0x38, 0x2,0x43,0x38, - 0x2,0x43,0x3e, 0x1,0x64,0x32, 0x3,0x41,0x3e, 0x1,0x64,0x2c, - 0x2,0x43,0x29, 0x2,0x43,0x25, 0x2,0x43,0x40, 0x2,0x43,0x2e, - 0x2,0x43,0x2f, 0x2,0x43,0x26, 0x2,0x43,0x3a, 0x2,0x43,0x31, - 0x2,0x43,0x3b, 0x2,0x43,0x33, 0x3,0x41,0x3d, 0x1,0x64,0x2d, - 0x2,0x4a,0x40, 0x1,0x64,0x30, 0x1,0x64,0x2e, 0x2,0x43,0x3f, - 0x2,0x43,0x36, 0x2,0x43,0x32, 0x3,0x41,0x36, 0x3,0x41,0x33, - 0x2,0x43,0x27, 0x1,0x68,0x7a, 0x2,0x43,0x35, 0x1,0x64,0x35, - 0x2,0x43,0x2d, 0x3,0x41,0x34, 0x2,0x43,0x2c, 0x3,0x41,0x48, - 0x3,0x47,0x25, 0x3,0x41,0x42, 0x1,0x64,0x2f, 0x1,0x64,0x2b, - 0x2,0x4a,0x55, 0x2,0x43,0x39, 0x2,0x43,0x34, 0x2,0x43,0x28, - 0x3,0x41,0x44, 0x3,0x41,0x45, 0x3,0x66,0x76, 0x2,0x4a,0x50, - 0x3,0x46,0x78, 0x2,0x4a,0x41, 0x2,0x4a,0x4c, 0x3,0x47,0x28, - 0x2,0x4a,0x53, 0x1,0x68,0x78, 0x1,0x5f,0x51, 0x2,0x4a,0x51, - 0x1,0x68,0x73, 0x3,0x46,0x7e, 0x3,0x47,0x24, 0x3,0x46,0x7a, - 0x1,0x68,0x72, 0x2,0x4a,0x58, 0x4,0x43,0x5d, 0x2,0x4a,0x42, - 0x2,0x4a,0x4f, 0x2,0x4a,0x43, 0x2,0x4a,0x4e, 0x1,0x68,0x76, - 0x2,0x4a,0x52, 0x2,0x3c,0x27, 0x3,0x47,0x21, 0x4,0x43,0x5e, - 0x3,0x47,0x2a, 0x2,0x4a,0x59, 0x2,0x4a,0x4a, 0x1,0x68,0x79, - 0x2,0x50,0x61, 0x1,0x6c,0x77, 0x3,0x47,0x23, 0x2,0x4a,0x57, - 0x2,0x4a,0x56, 0x1,0x68,0x7b, 0x2,0x50,0x54, 0x1,0x6c,0x78, - 0x2,0x50,0x55, 0x3,0x47,0x22, 0x2,0x4a,0x46, 0x2,0x4a,0x47, - 0x2,0x4a,0x44, 0x2,0x4a,0x49, 0x2,0x4a,0x45, 0x2,0x4a,0x5a, - 0x1,0x68,0x75, 0x1,0x6c,0x79, 0x1,0x68,0x77, 0x1,0x68,0x7c, - 0x3,0x46,0x7b, 0x2,0x4a,0x48, 0x3,0x47,0x29, 0x2,0x4a,0x54, - 0x3,0x4c,0x2d, 0x3,0x47,0x26, 0x2,0x4a,0x4d, 0x3,0x4c,0x35, - 0x2,0x50,0x58, 0x3,0x4c,0x38, 0x1,0x68,0x71, 0x1,0x6c,0x7c, - 0x2,0x57,0x35, 0x2,0x50,0x5d, 0x2,0x50,0x5c, 0x2,0x50,0x5e, - 0x3,0x4c,0x30, 0x3,0x4c,0x2f, 0x2,0x50,0x5b, 0x1,0x6c,0x7d, - 0x3,0x4c,0x3b, 0x1,0x6d,0x25, 0x1,0x6d,0x22, 0x3,0x4c,0x31, - 0x1,0x6d,0x23, 0x2,0x50,0x56, 0x2,0x50,0x59, 0x2,0x50,0x63, - 0x1,0x6d,0x2b, 0x1,0x6d,0x29, 0x3,0x4c,0x2e, 0x2,0x50,0x5a, - 0x2,0x3b,0x7d, 0x1,0x6c,0x7a, 0x2,0x50,0x60, 0x2,0x50,0x57, - 0x3,0x4c,0x3e, 0x1,0x6d,0x2c, 0x2,0x50,0x5f, 0x1,0x68,0x74, - 0x1,0x6d,0x21, 0x2,0x4a,0x4b, 0x3,0x4c,0x3f, 0x3,0x4c,0x34, - 0x1,0x6d,0x24, 0x3,0x4c,0x3d, 0x1,0x6d,0x28, 0x1,0x6d,0x2a, - 0x1,0x6d,0x27, 0x1,0x6d,0x26, 0x3,0x4c,0x3a, 0x1,0x6c,0x7e, - 0x2,0x50,0x62, 0x1,0x6c,0x7b, 0x1,0x6d,0x2d, 0x3,0x4c,0x39, - 0x3,0x65,0x22, 0x3,0x4c,0x37, 0x1,0x70,0x61, 0x1,0x70,0x62, - 0x2,0x57,0x34, 0x1,0x70,0x6b, 0x1,0x70,0x68, 0x3,0x50,0x70, - 0x1,0x70,0x5f, 0x1,0x70,0x66, 0x2,0x57,0x36, 0x1,0x70,0x64, - 0x1,0x70,0x5e, 0x3,0x4c,0x32, 0x1,0x70,0x65, 0x3,0x50,0x77, - 0x2,0x57,0x33, 0x1,0x73,0x64, 0x1,0x70,0x60, 0x5,0x54,0x5e, - 0x1,0x70,0x67, 0x1,0x73,0x63, 0x2,0x57,0x32, 0x2,0x57,0x31, - 0x3,0x50,0x76, 0x1,0x70,0x69, 0x3,0x50,0x6f, 0x1,0x70,0x6a, - 0x3,0x50,0x79, 0x2,0x57,0x30, 0x2,0x57,0x2f, 0x1,0x73,0x65, - 0x2,0x57,0x39, 0x1,0x70,0x63, 0x2,0x57,0x37, 0x3,0x50,0x75, - 0x3,0x54,0x64, 0x1,0x73,0x66, 0x3,0x54,0x67, 0x1,0x73,0x6b, - 0x2,0x5c,0x75, 0x2,0x5c,0x77, 0x3,0x57,0x6b, 0x1,0x73,0x68, - 0x3,0x57,0x6d, 0x2,0x5c,0x78, 0x2,0x5c,0x74, 0x3,0x57,0x6c, - 0x2,0x5c,0x76, 0x1,0x73,0x69, 0x1,0x73,0x6c, 0x3,0x54,0x69, - 0x2,0x5c,0x73, 0x1,0x73,0x67, 0x1,0x73,0x6a, 0x1,0x76,0x45, - 0x2,0x57,0x38, 0x1,0x76,0x44, 0x7,0x3f,0x62, 0x3,0x57,0x6a, - 0x1,0x76,0x4a, 0x2,0x61,0x60, 0x3,0x57,0x70, 0x1,0x76,0x48, - 0x1,0x76,0x49, 0x2,0x61,0x63, 0x2,0x61,0x5f, 0x1,0x76,0x46, - 0x2,0x61,0x5d, 0x1,0x78,0x38, 0x2,0x61,0x61, 0x4,0x5b,0x36, - 0x2,0x61,0x62, 0x2,0x61,0x5e, 0x3,0x57,0x6e, 0x1,0x76,0x47, - 0x2,0x65,0x4d, 0x3,0x5a,0x3b, 0x2,0x65,0x50, 0x3,0x5a,0x3c, - 0x3,0x5a,0x3a, 0x2,0x65,0x51, 0x2,0x65,0x4f, 0x2,0x65,0x52, - 0x1,0x78,0x39, 0x2,0x65,0x4e, 0x3,0x5e,0x31, 0x2,0x68,0x7a, - 0x1,0x79,0x6f, 0x2,0x68,0x79, 0x2,0x68,0x78, 0x2,0x68,0x77, - 0x1,0x79,0x6e, 0x1,0x79,0x70, 0x3,0x65,0x23, 0x2,0x6b,0x5b, - 0x1,0x7a,0x6d, 0x1,0x7a,0x6c, 0x3,0x5f,0x4a, 0x3,0x5f,0x4b, - 0x2,0x6d,0x4f, 0x2,0x6d,0x4e, 0x2,0x6d,0x51, 0x1,0x7c,0x37, - 0x1,0x7b,0x61, 0x2,0x6f,0x2c, 0x2,0x6d,0x50, 0x3,0x5f,0x49, - 0x3,0x60,0x32, 0x2,0x6f,0x2b, 0x1,0x7c,0x39, 0x1,0x7c,0x38, - 0x1,0x7c,0x5f, 0x2,0x70,0x37, 0x2,0x70,0x7d, 0x1,0x45,0x45, - 0x6,0x23,0x6c, 0x3,0x2c,0x72, 0x2,0x3c,0x37, 0x2,0x57,0x3a, - 0x3,0x21,0x67, 0x3,0x21,0x68, 0x1,0x48,0x2d, 0x2,0x22,0x4d, - 0x1,0x4a,0x53, 0x1,0x4a,0x51, 0x4,0x24,0x3f, 0x1,0x4a,0x52, - 0x4,0x24,0x3e, 0x2,0x27,0x22, 0x1,0x4d,0x73, 0x1,0x51,0x49, - 0x3,0x2c,0x74, 0x2,0x2a,0x68, 0x3,0x2c,0x76, 0x2,0x2a,0x69, - 0x3,0x2c,0x73, 0x1,0x51,0x4a, 0x2,0x2f,0x50, 0x4,0x2d,0x43, - 0x1,0x55,0x66, 0x1,0x55,0x67, 0x2,0x2f,0x4f, 0x3,0x31,0x3d, - 0x4,0x2d,0x44, 0x3,0x36,0x37, 0x3,0x36,0x36, 0x1,0x5a,0x77, - 0x4,0x32,0x2b, 0x1,0x5a,0x73, 0x4,0x32,0x2f, 0x2,0x35,0x69, - 0x1,0x5a,0x7a, 0x1,0x5a,0x79, 0x1,0x5a,0x72, 0x1,0x5a,0x75, - 0x1,0x5a,0x78, 0x1,0x5a,0x74, 0x3,0x36,0x34, 0x2,0x3c,0x3b, - 0x1,0x5a,0x71, 0x1,0x5f,0x54, 0x3,0x3b,0x74, 0x3,0x3b,0x75, - 0x3,0x3b,0x76, 0x1,0x5f,0x56, 0x1,0x5f,0x57, 0x2,0x3c,0x3a, - 0x2,0x3c,0x3d, 0x1,0x5f,0x55, 0x2,0x3c,0x38, 0x2,0x3c,0x3c, - 0x2,0x3c,0x39, 0x3,0x41,0x4b, 0x1,0x64,0x39, 0x3,0x41,0x4e, - 0x4,0x3d,0x5d, 0x2,0x43,0x42, 0x3,0x41,0x4d, 0x3,0x47,0x30, - 0x1,0x68,0x7d, 0x2,0x4a,0x5b, 0x1,0x70,0x6c, 0x1,0x6d,0x2e, - 0x2,0x50,0x64, 0x1,0x6d,0x2f, 0x1,0x6d,0x30, 0x2,0x50,0x66, - 0x2,0x50,0x65, 0x2,0x50,0x67, 0x2,0x57,0x3c, 0x2,0x57,0x3b, - 0x2,0x5c,0x7a, 0x2,0x5c,0x79, 0x1,0x73,0x6d, 0x1,0x73,0x6e, - 0x2,0x65,0x53, 0x3,0x5c,0x41, 0x1,0x45,0x46, 0x3,0x25,0x58, - 0x3,0x29,0x39, 0x4,0x2d,0x47, 0x3,0x31,0x40, 0x2,0x3c,0x3e, - 0x3,0x36,0x38, 0x3,0x36,0x39, 0x1,0x5f,0x59, 0x1,0x5f,0x58, - 0x2,0x43,0x43, 0x2,0x61,0x64, 0x1,0x7a,0x6e, 0x2,0x6f,0x2d, - 0x1,0x45,0x47, 0x4,0x24,0x41, 0x1,0x55,0x68, 0x3,0x31,0x42, - 0x1,0x5a,0x7c, 0x1,0x5a,0x7b, 0x2,0x3c,0x3f, 0x2,0x3c,0x40, - 0x1,0x64,0x3a, 0x2,0x4a,0x5c, 0x1,0x68,0x7e, 0x2,0x57,0x3d, - 0x4,0x56,0x3f, 0x1,0x45,0x48, 0x1,0x46,0x58, 0x3,0x29,0x3b, - 0x1,0x4d,0x74, 0x2,0x27,0x23, 0x2,0x2a,0x6a, 0x1,0x51,0x4b, - 0x1,0x5a,0x7d, 0x3,0x36,0x3a, 0x2,0x3c,0x41, 0x1,0x5f,0x5a, - 0x1,0x64,0x3b, 0x4,0x3d,0x63, 0x2,0x50,0x68, 0x2,0x50,0x69, - 0x4,0x50,0x4e, 0x3,0x54,0x6b, 0x2,0x5c,0x7b, 0x1,0x76,0x4b, - 0x2,0x70,0x7e, 0x1,0x45,0x49, 0x3,0x29,0x3c, 0x2,0x27,0x24, - 0x1,0x4d,0x75, 0x1,0x51,0x4c, 0x3,0x2c,0x77, 0x2,0x2a,0x6b, - 0x1,0x55,0x69, 0x2,0x2f,0x54, 0x2,0x2f,0x52, 0x2,0x2f,0x53, - 0x1,0x55,0x6a, 0x2,0x2f,0x51, 0x3,0x36,0x3c, 0x4,0x32,0x34, - 0x3,0x36,0x3f, 0x3,0x36,0x3d, 0x1,0x5b,0x21, 0x1,0x5b,0x22, - 0x2,0x35,0x6a, 0x1,0x5b,0x23, 0x1,0x5a,0x7e, 0x2,0x3c,0x42, - 0x3,0x3b,0x79, 0x2,0x3c,0x43, 0x2,0x43,0x44, 0x4,0x3d,0x64, - 0x1,0x69,0x22, 0x1,0x69,0x21, 0x4,0x50,0x4f, 0xf,0x54,0x64, - 0x2,0x5c,0x7c, 0x2,0x61,0x65, 0x3,0x5a,0x3f, 0x2,0x65,0x55, - 0x2,0x65,0x54, 0x2,0x68,0x7b, 0x3,0x21,0x69, 0x2,0x21,0x3e, - 0x1,0x51,0x4d, 0x3,0x36,0x41, 0x3,0x41,0x50, 0x1,0x45,0x4a, - 0x1,0x46,0x59, 0x3,0x22,0x51, 0x1,0x48,0x2f, 0x1,0x48,0x2e, - 0x3,0x23,0x73, 0x3,0x23,0x72, 0x1,0x48,0x30, 0x1,0x48,0x31, - 0x2,0x22,0x4f, 0x2,0x22,0x4e, 0x2,0x24,0x39, 0x1,0x4a,0x54, - 0x2,0x24,0x3c, 0x2,0x24,0x3b, 0x2,0x24,0x3a, 0x2,0x24,0x3d, - 0x3,0x26,0x3d, 0x4,0x26,0x62, 0x1,0x4d,0x76, 0x2,0x27,0x2a, - 0x2,0x27,0x26, 0x2,0x27,0x2f, 0x3,0x29,0x43, 0x3,0x29,0x3e, - 0x1,0x4d,0x7d, 0x3,0x29,0x42, 0x1,0x4d,0x7b, 0x2,0x27,0x2b, - 0x2,0x27,0x27, 0x2,0x27,0x2e, 0x1,0x4d,0x7a, 0x1,0x4e,0x23, - 0x2,0x27,0x29, 0x2,0x27,0x25, 0x1,0x4e,0x22, 0x2,0x27,0x2c, - 0x1,0x4d,0x79, 0x2,0x27,0x2d, 0x1,0x4d,0x7c, 0x1,0x4d,0x7e, - 0x2,0x27,0x31, 0x2,0x27,0x30, 0x2,0x27,0x28, 0x1,0x4d,0x78, - 0x1,0x4d,0x77, 0x1,0x4e,0x21, 0x4,0x26,0x61, 0x3,0x29,0x40, - 0x3,0x29,0x41, 0xf,0x27,0x3e, 0x3,0x2c,0x7e, 0x3,0x2c,0x7a, - 0x2,0x2a,0x70, 0x2,0x2a,0x76, 0x3,0x2d,0x23, 0x1,0x51,0x53, - 0x1,0x51,0x50, 0x2,0x2a,0x6d, 0x2,0x2a,0x72, 0x3,0x2c,0x7c, - 0x1,0x51,0x56, 0x1,0x51,0x4e, 0x2,0x2a,0x71, 0x1,0x51,0x51, - 0x1,0x51,0x54, 0x3,0x2c,0x79, 0x4,0x29,0x67, 0x2,0x2a,0x74, - 0x3,0x2c,0x7d, 0x1,0x51,0x4f, 0x2,0x2a,0x79, 0x1,0x51,0x52, - 0x3,0x2d,0x21, 0x1,0x51,0x55, 0x2,0x2a,0x6e, 0x2,0x2a,0x73, - 0x2,0x2a,0x77, 0x2,0x2a,0x6f, 0x2,0x2a,0x6c, 0x3,0x2d,0x24, - 0x3,0x2d,0x25, 0x2,0x2a,0x78, 0x2,0x2a,0x75, 0x3,0x2d,0x22, - 0x3,0x2c,0x37, 0x3,0x31,0x46, 0x1,0x55,0x72, 0x1,0x55,0x6b, - 0x1,0x55,0x6e, 0x3,0x31,0x4c, 0x1,0x55,0x71, 0x3,0x31,0x44, - 0x2,0x2f,0x57, 0x3,0x31,0x49, 0x1,0x55,0x6c, 0x2,0x2f,0x55, - 0x3,0x31,0x48, 0x1,0x55,0x70, 0x3,0x31,0x4d, 0x3,0x31,0x45, - 0x1,0x55,0x6d, 0x3,0x31,0x43, 0x2,0x2f,0x58, 0x1,0x55,0x6f, - 0x3,0x36,0x42, 0x4,0x32,0x39, 0x2,0x35,0x6e, 0x1,0x5b,0x25, - 0x2,0x35,0x6d, 0x2,0x35,0x6f, 0x1,0x5b,0x24, 0x1,0x5b,0x29, - 0x2,0x2f,0x56, 0x3,0x31,0x4b, 0x2,0x35,0x6c, 0x2,0x35,0x70, - 0x3,0x36,0x44, 0x1,0x5b,0x26, 0x2,0x35,0x6b, 0x1,0x5b,0x28, - 0x3,0x36,0x45, 0x1,0x5b,0x27, 0x3,0x3c,0x26, 0x2,0x3c,0x4a, - 0x3,0x3b,0x7d, 0x2,0x3c,0x45, 0x3,0x3c,0x25, 0x1,0x5f,0x5b, - 0x1,0x5f,0x5f, 0x1,0x5f,0x5c, 0x2,0x3c,0x48, 0x2,0x3c,0x4b, - 0x3,0x3c,0x23, 0x1,0x5f,0x5d, 0x4,0x38,0x24, 0x1,0x5f,0x5e, - 0x1,0x5f,0x63, 0x2,0x43,0x4d, 0x2,0x3c,0x49, 0x1,0x5f,0x61, - 0x2,0x3c,0x46, 0x2,0x3c,0x44, 0x3,0x3b,0x7c, 0x1,0x5f,0x62, - 0x3,0x3b,0x7e, 0x2,0x3c,0x47, 0x3,0x3c,0x24, 0x1,0x64,0x41, - 0x4,0x3d,0x69, 0x2,0x43,0x45, 0x1,0x64,0x3e, 0x1,0x64,0x3f, - 0x1,0x64,0x3d, 0x2,0x43,0x4a, 0x2,0x43,0x49, 0x2,0x43,0x46, - 0x1,0x64,0x43, 0x3,0x41,0x5b, 0x3,0x41,0x56, 0x2,0x43,0x48, - 0x1,0x5f,0x60, 0x3,0x41,0x59, 0x3,0x41,0x51, 0x2,0x43,0x4c, - 0x2,0x43,0x47, 0x1,0x64,0x40, 0x1,0x64,0x3c, 0x1,0x64,0x42, - 0x2,0x43,0x4b, 0x3,0x47,0x34, 0x4,0x43,0x6b, 0x3,0x47,0x35, - 0x1,0x69,0x25, 0x4,0x43,0x6f, 0x2,0x4a,0x5f, 0x2,0x4a,0x5e, - 0x2,0x4a,0x5d, 0x1,0x69,0x23, 0x4,0x43,0x6d, 0x3,0x47,0x39, - 0x3,0x47,0x33, 0x3,0x47,0x37, 0x1,0x69,0x24, 0x2,0x50,0x6c, - 0x2,0x50,0x6f, 0x1,0x6d,0x32, 0x3,0x4c,0x44, 0x3,0x4c,0x46, - 0x1,0x6d,0x31, 0x2,0x50,0x70, 0x2,0x50,0x6b, 0x1,0x6d,0x34, - 0x2,0x50,0x6d, 0x3,0x4c,0x41, 0x1,0x6d,0x33, 0x2,0x50,0x6a, - 0x3,0x4c,0x40, 0x2,0x50,0x6e, 0x1,0x70,0x72, 0x1,0x70,0x6f, - 0x2,0x57,0x46, 0x2,0x57,0x45, 0x3,0x4c,0x43, 0x2,0x57,0x44, - 0x2,0x57,0x3f, 0x3,0x50,0x7d, 0x2,0x57,0x40, 0x3,0x51,0x23, - 0x4,0x50,0x50, 0x3,0x50,0x7a, 0x1,0x70,0x70, 0x3,0x50,0x7e, - 0x1,0x70,0x6d, 0x1,0x70,0x71, 0x2,0x57,0x3e, 0x1,0x70,0x6e, - 0x2,0x57,0x41, 0x2,0x57,0x42, 0x2,0x57,0x47, 0x3,0x51,0x22, - 0x3,0x54,0x71, 0x2,0x57,0x43, 0x3,0x54,0x6f, 0x3,0x54,0x70, - 0x2,0x5c,0x7d, 0x4,0x56,0x41, 0x3,0x54,0x6c, 0x3,0x54,0x6d, - 0x1,0x73,0x70, 0x3,0x54,0x72, 0x2,0x61,0x68, 0x1,0x73,0x6f, - 0x2,0x61,0x66, 0x2,0x61,0x67, 0x1,0x76,0x4c, 0x1,0x78,0x3b, - 0x2,0x65,0x56, 0x3,0x5a,0x43, 0x1,0x78,0x3a, 0x3,0x5a,0x42, - 0x3,0x65,0x26, 0x2,0x68,0x7d, 0x2,0x68,0x7e, 0x3,0x5c,0x42, - 0x1,0x79,0x71, 0x3,0x5c,0x43, 0x2,0x68,0x7c, 0x1,0x7a,0x6f, - 0x4,0x6a,0x4c, 0x2,0x6f,0x2e, 0x1,0x7c,0x3a, 0x2,0x70,0x38, - 0x2,0x70,0x39, 0x3,0x61,0x3f, 0x1,0x45,0x4b, 0x4,0x21,0x7c, - 0x1,0x48,0x32, 0x1,0x48,0x33, 0x1,0x4a,0x55, 0x3,0x26,0x41, - 0x2,0x27,0x32, 0x1,0x51,0x57, 0x1,0x55,0x73, 0x1,0x5b,0x2a, - 0xf,0x32,0x73, 0x1,0x59,0x37, 0x1,0x5f,0x64, 0x1,0x5f,0x65, - 0x1,0x5e,0x32, 0x2,0x3c,0x4c, 0x3,0x65,0x27, 0x1,0x64,0x44, - 0x2,0x4a,0x61, 0x2,0x4a,0x60, 0x3,0x51,0x24, 0x7,0x53,0x47, - 0x1,0x45,0x4c, 0x1,0x48,0x34, 0x2,0x27,0x33, 0x1,0x4e,0x25, - 0x3,0x29,0x45, 0x1,0x4e,0x24, 0x3,0x2d,0x27, 0x2,0x2a,0x7a, - 0x2,0x2a,0x7b, 0x3,0x66,0x32, 0x2,0x2f,0x59, 0x2,0x2f,0x5a, - 0x1,0x55,0x74, 0x1,0x55,0x75, 0x3,0x36,0x48, 0x1,0x55,0x76, - 0x2,0x35,0x71, 0x3,0x36,0x47, 0x3,0x36,0x46, 0x1,0x5b,0x2c, - 0x4,0x38,0x29, 0x1,0x5f,0x67, 0x3,0x3c,0x29, 0x1,0x5f,0x66, - 0x2,0x43,0x4e, 0x2,0x46,0x41, 0x2,0x4a,0x62, 0x2,0x57,0x48, - 0x3,0x51,0x26, 0x3,0x66,0x33, 0x1,0x76,0x4d, 0x1,0x79,0x72, - 0x1,0x45,0x4d, 0x1,0x46,0x5c, 0x1,0x46,0x5d, 0x1,0x46,0x5b, - 0x1,0x46,0x5e, 0x1,0x46,0x5a, 0x3,0x22,0x52, 0x1,0x48,0x37, - 0x3,0x23,0x77, 0x2,0x22,0x57, 0x1,0x48,0x36, 0x1,0x48,0x38, - 0x3,0x23,0x78, 0x3,0x23,0x75, 0x2,0x22,0x52, 0x2,0x22,0x51, - 0x2,0x22,0x54, 0x2,0x22,0x53, 0x2,0x22,0x56, 0x1,0x48,0x35, - 0x2,0x22,0x50, 0x2,0x22,0x55, 0xf,0x22,0x58, 0xf,0x22,0x57, - 0x3,0x26,0x48, 0x2,0x24,0x3e, 0x1,0x4a,0x5f, 0x2,0x24,0x3f, - 0x2,0x24,0x43, 0x1,0x4a,0x5e, 0x3,0x26,0x49, 0x2,0x24,0x47, - 0x2,0x24,0x42, 0x2,0x24,0x45, 0x1,0x4a,0x57, 0x1,0x4a,0x58, - 0x1,0x4a,0x59, 0x1,0x4a,0x5a, 0x3,0x26,0x45, 0x1,0x4a,0x61, - 0x3,0x26,0x44, 0x2,0x24,0x41, 0x1,0x4a,0x5c, 0x1,0x4a,0x62, - 0x3,0x26,0x47, 0x2,0x24,0x40, 0x2,0x24,0x46, 0x3,0x26,0x42, - 0x1,0x4a,0x5b, 0x2,0x24,0x44, 0x1,0x4a,0x5d, 0x1,0x4a,0x56, - 0x1,0x4a,0x60, 0x3,0x26,0x4a, 0xf,0x24,0x22, 0x4,0x24,0x46, - 0xf,0x24,0x53, 0x1,0x4e,0x3a, 0x3,0x29,0x47, 0x2,0x27,0x35, - 0x1,0x4e,0x26, 0x4,0x26,0x69, 0x1,0x4e,0x30, 0x1,0x4e,0x31, - 0x1,0x4e,0x29, 0x1,0x4e,0x3b, 0x1,0x4e,0x2b, 0x2,0x27,0x3d, - 0x1,0x4e,0x36, 0x2,0x27,0x38, 0x1,0x4e,0x2c, 0x2,0x27,0x47, - 0x2,0x27,0x48, 0x2,0x27,0x40, 0x2,0x27,0x39, 0x1,0x4e,0x39, - 0x2,0x27,0x45, 0x1,0x4e,0x34, 0x1,0x4e,0x32, 0x3,0x29,0x52, - 0x2,0x27,0x46, 0x3,0x29,0x49, 0x2,0x27,0x44, 0x2,0x27,0x3c, - 0x2,0x27,0x34, 0x2,0x27,0x3b, 0x1,0x4e,0x2d, 0x4,0x26,0x65, - 0x1,0x4e,0x33, 0x3,0x29,0x4a, 0x1,0x4e,0x27, 0x2,0x27,0x3f, - 0x2,0x27,0x3e, 0x2,0x27,0x36, 0x3,0x29,0x4f, 0x1,0x4e,0x35, - 0x2,0x27,0x42, 0x2,0x27,0x37, 0x1,0x4e,0x38, 0x2,0x27,0x49, - 0x1,0x4e,0x28, 0x3,0x29,0x48, 0x1,0x4e,0x2f, 0x2,0x27,0x3a, - 0x2,0x27,0x43, 0x1,0x4e,0x37, 0x4,0x26,0x67, 0x1,0x4e,0x2a, - 0x1,0x4e,0x2e, 0x4,0x26,0x6a, 0x2,0x27,0x41, 0xf,0x27,0x4e, - 0x3,0x29,0x4e, 0x3,0x29,0x4c, 0x3,0x65,0x28, 0xf,0x27,0x50, - 0x3,0x65,0x29, 0x2,0x2b,0x3d, 0x1,0x51,0x5f, 0x1,0x51,0x6c, - 0x3,0x2d,0x36, 0x2,0x2b,0x38, 0x2,0x2b,0x2e, 0x1,0x51,0x65, - 0x2,0x2b,0x2c, 0x1,0x51,0x5e, 0x2,0x2b,0x27, 0x1,0x51,0x68, - 0x2,0x2b,0x34, 0x2,0x2b,0x21, 0x2,0x2b,0x23, 0x3,0x2d,0x2e, - 0x4,0x2d,0x59, 0x4,0x29,0x6e, 0x3,0x2d,0x30, 0x2,0x2b,0x26, - 0x2,0x2a,0x7c, 0x2,0x2b,0x33, 0x2,0x2b,0x43, 0x1,0x51,0x63, - 0x2,0x2b,0x28, 0x2,0x2b,0x3a, 0x3,0x2d,0x2d, 0x2,0x2a,0x7e, - 0x2,0x2b,0x41, 0x2,0x2b,0x42, 0x2,0x2b,0x45, 0x2,0x2b,0x3c, - 0x2,0x2b,0x2d, 0x2,0x2b,0x35, 0x1,0x51,0x69, 0x1,0x51,0x5c, - 0x1,0x51,0x64, 0x1,0x51,0x70, 0x1,0x51,0x59, 0x1,0x51,0x5b, - 0x3,0x2d,0x31, 0x3,0x2d,0x2b, 0x3,0x2d,0x3a, 0x2,0x2b,0x25, - 0x1,0x51,0x6d, 0x1,0x51,0x66, 0x2,0x2b,0x3f, 0x2,0x2b,0x22, - 0x1,0x51,0x6f, 0x1,0x51,0x6a, 0x2,0x2b,0x2b, 0x4,0x29,0x6d, - 0x4,0x2d,0x4e, 0x1,0x51,0x6e, 0x2,0x2b,0x32, 0x2,0x2b,0x2a, - 0x1,0x51,0x67, 0x2,0x2b,0x3e, 0x2,0x2b,0x36, 0x3,0x2d,0x2a, - 0x1,0x51,0x61, 0x2,0x2b,0x44, 0x2,0x2b,0x29, 0x1,0x51,0x5d, - 0x2,0x2b,0x3b, 0x2,0x2b,0x31, 0x1,0x51,0x62, 0x2,0x2b,0x37, - 0x1,0x51,0x5a, 0x2,0x2a,0x7d, 0x1,0x51,0x6b, 0x1,0x56,0x27, - 0x1,0x51,0x60, 0x2,0x2b,0x30, 0x2,0x2b,0x2f, 0x2,0x2b,0x24, - 0x3,0x29,0x51, 0x2,0x2b,0x40, 0x3,0x2d,0x34, 0x2,0x2b,0x39, - 0x3,0x2d,0x32, 0x1,0x51,0x58, 0x3,0x2d,0x39, 0x3,0x2d,0x37, - 0x6,0x31,0x72, 0x3,0x2d,0x38, 0x3,0x65,0x2b, 0x3,0x65,0x2a, - 0xf,0x2b,0x48, 0x2,0x2f,0x6e, 0x1,0x56,0x2e, 0x2,0x2f,0x6f, - 0x3,0x31,0x5d, 0x2,0x2f,0x63, 0x1,0x56,0x23, 0x1,0x56,0x2f, - 0x3,0x31,0x57, 0x2,0x2f,0x5c, 0x3,0x31,0x53, 0x2,0x2f,0x65, - 0x2,0x2f,0x6d, 0x3,0x31,0x5b, 0x2,0x2f,0x5b, 0x2,0x2f,0x76, - 0x1,0x55,0x77, 0x3,0x31,0x5e, 0x3,0x31,0x64, 0x3,0x31,0x50, - 0x2,0x2f,0x75, 0x2,0x2f,0x70, 0x3,0x31,0x5f, 0x2,0x2f,0x71, - 0x1,0x56,0x21, 0x1,0x56,0x2c, 0x2,0x2f,0x67, 0x3,0x31,0x56, - 0x2,0x2f,0x68, 0x2,0x2f,0x72, 0x2,0x2f,0x69, 0x3,0x31,0x63, - 0x2,0x2f,0x64, 0x2,0x2f,0x5e, 0x2,0x2f,0x5f, 0x2,0x2f,0x6c, - 0x2,0x2f,0x66, 0x3,0x31,0x54, 0x3,0x31,0x4f, 0x1,0x55,0x78, - 0x1,0x55,0x7c, 0x2,0x2f,0x74, 0x2,0x2f,0x60, 0x1,0x56,0x2a, - 0x1,0x56,0x26, 0x3,0x31,0x5a, 0x4,0x2d,0x55, 0x1,0x56,0x29, - 0x1,0x56,0x30, 0x1,0x55,0x7d, 0x1,0x56,0x2b, 0x2,0x2f,0x6b, - 0x1,0x56,0x2d, 0x1,0x55,0x7a, 0x3,0x31,0x59, 0x1,0x55,0x79, - 0x2,0x2f,0x5d, 0x4,0x2d,0x4f, 0x2,0x2f,0x61, 0x1,0x56,0x24, - 0x2,0x2f,0x73, 0x2,0x2f,0x6a, 0x2,0x2f,0x62, 0x1,0x56,0x28, - 0x1,0x56,0x25, 0x3,0x2d,0x2f, 0x1,0x55,0x7b, 0x1,0x55,0x7e, - 0x3,0x31,0x62, 0x3,0x31,0x58, 0xf,0x30,0x24, 0x3,0x31,0x61, - 0x3,0x31,0x60, 0x3,0x65,0x2d, 0x3,0x65,0x2c, 0x2,0x36,0x28, - 0x3,0x36,0x55, 0x2,0x35,0x76, 0x2,0x35,0x77, 0x2,0x35,0x7b, - 0x3,0x36,0x60, 0x2,0x36,0x2c, 0x2,0x36,0x29, 0x3,0x36,0x4e, - 0x2,0x36,0x22, 0x2,0x36,0x21, 0x1,0x5b,0x33, 0x2,0x36,0x25, - 0x2,0x36,0x34, 0x2,0x35,0x72, 0x3,0x36,0x5b, 0x2,0x36,0x35, - 0x2,0x36,0x27, 0x2,0x36,0x39, 0x2,0x36,0x2d, 0x1,0x5b,0x32, - 0x2,0x36,0x2b, 0x1,0x5b,0x2d, 0x1,0x5b,0x42, 0x1,0x5b,0x38, - 0x3,0x36,0x57, 0x1,0x5b,0x3c, 0x1,0x5b,0x3b, 0x2,0x35,0x73, - 0x4,0x32,0x3f, 0x2,0x36,0x32, 0x2,0x36,0x38, 0x2,0x36,0x30, - 0x2,0x36,0x37, 0x3,0x36,0x51, 0x2,0x36,0x24, 0x2,0x35,0x74, - 0x2,0x36,0x36, 0x2,0x36,0x26, 0x1,0x5b,0x30, 0x1,0x5b,0x3d, - 0x3,0x36,0x5a, 0x2,0x36,0x2f, 0x1,0x5b,0x36, 0x3,0x36,0x4d, - 0x3,0x36,0x5c, 0x3,0x36,0x50, 0x2,0x36,0x2e, 0x2,0x35,0x75, - 0x1,0x5b,0x3e, 0x3,0x36,0x4b, 0x1,0x5b,0x40, 0x2,0x36,0x31, - 0x1,0x5b,0x41, 0x1,0x5b,0x2f, 0x2,0x35,0x7c, 0x2,0x36,0x33, - 0x3,0x36,0x54, 0x3,0x34,0x78, 0x1,0x5b,0x35, 0x1,0x5b,0x3f, - 0x2,0x35,0x7e, 0x2,0x36,0x2a, 0x2,0x35,0x79, 0x2,0x35,0x7d, - 0x1,0x5b,0x3a, 0x2,0x35,0x78, 0x1,0x5b,0x2e, 0x1,0x5b,0x37, - 0x1,0x5b,0x34, 0x2,0x36,0x23, 0x1,0x56,0x22, 0x2,0x3c,0x63, - 0x1,0x5b,0x31, 0x3,0x36,0x4c, 0x3,0x36,0x52, 0x3,0x36,0x5e, - 0x3,0x36,0x5f, 0xf,0x35,0x57, 0x3,0x36,0x56, 0x3,0x3c,0x45, - 0x1,0x5b,0x39, 0x3,0x3c,0x41, 0x2,0x3c,0x66, 0x2,0x3c,0x7c, - 0x2,0x3c,0x71, 0x1,0x5f,0x7b, 0x3,0x3c,0x38, 0x1,0x5f,0x76, - 0x2,0x3c,0x60, 0x1,0x5f,0x77, 0x2,0x3c,0x70, 0x3,0x3c,0x3e, - 0x2,0x3c,0x69, 0x2,0x3c,0x76, 0x1,0x5f,0x73, 0x2,0x3c,0x4e, - 0x2,0x3c,0x78, 0x1,0x5f,0x69, 0x2,0x3c,0x56, 0x1,0x5f,0x6c, - 0x1,0x5f,0x6b, 0x4,0x38,0x32, 0x1,0x5f,0x7c, 0x3,0x36,0x53, - 0x2,0x3c,0x50, 0x2,0x3c,0x72, 0x2,0x3c,0x73, 0x1,0x5f,0x6e, - 0x1,0x5f,0x6a, 0x2,0x3c,0x5e, 0x3,0x3c,0x3d, 0x1,0x5f,0x75, - 0x2,0x3c,0x59, 0x3,0x3c,0x32, 0x2,0x3c,0x74, 0x1,0x5f,0x71, - 0x2,0x3c,0x6c, 0x2,0x3c,0x79, 0x2,0x3c,0x53, 0x2,0x3c,0x58, - 0x2,0x3c,0x52, 0x3,0x3c,0x2a, 0x1,0x5f,0x70, 0x2,0x3c,0x65, - 0x2,0x43,0x64, 0x2,0x3c,0x54, 0x1,0x5f,0x74, 0x2,0x3c,0x5d, - 0x2,0x3c,0x75, 0x1,0x5f,0x6f, 0x2,0x3c,0x5a, 0x2,0x3c,0x57, - 0x2,0x3c,0x68, 0x1,0x5f,0x72, 0x1,0x5f,0x68, 0x1,0x5f,0x7e, - 0x2,0x3c,0x6b, 0x2,0x3c,0x6a, 0x3,0x3c,0x31, 0x3,0x3c,0x42, - 0x3,0x3c,0x39, 0x3,0x3c,0x3b, 0x3,0x3c,0x34, 0x3,0x3c,0x2f, - 0x2,0x3c,0x4f, 0x1,0x5f,0x6d, 0x2,0x3c,0x77, 0x2,0x3c,0x5f, - 0x2,0x3c,0x61, 0x3,0x3c,0x37, 0x2,0x3c,0x6e, 0x2,0x3c,0x6d, - 0x2,0x3c,0x4d, 0x1,0x5f,0x78, 0x1,0x5f,0x7a, 0x2,0x3c,0x55, - 0x2,0x3c,0x5c, 0x2,0x3c,0x64, 0x1,0x5f,0x79, 0x2,0x3c,0x5b, - 0x2,0x3c,0x67, 0x2,0x3c,0x7a, 0xf,0x3b,0x70, 0x2,0x3c,0x6f, - 0x3,0x3c,0x3c, 0xf,0x3c,0x21, 0x3,0x3c,0x44, 0x3,0x3c,0x33, - 0x2,0x3c,0x7b, 0xf,0x3c,0x29, 0x3,0x65,0x2f, 0x2,0x3c,0x51, - 0xf,0x3b,0x6e, 0x3,0x65,0x2e, 0x3,0x3c,0x40, 0x2,0x43,0x78, - 0x1,0x64,0x4c, 0x3,0x41,0x65, 0x2,0x43,0x76, 0x2,0x43,0x61, - 0x2,0x43,0x66, 0x2,0x43,0x5f, 0x3,0x41,0x77, 0x2,0x43,0x72, - 0x2,0x43,0x51, 0x2,0x43,0x58, 0x4,0x3d,0x71, 0x2,0x43,0x70, - 0x2,0x43,0x7a, 0x2,0x43,0x62, 0x3,0x41,0x68, 0x2,0x43,0x55, - 0x2,0x43,0x68, 0x2,0x43,0x6d, 0x2,0x43,0x59, 0x3,0x41,0x6b, - 0x2,0x43,0x6a, 0x2,0x43,0x56, 0x3,0x41,0x5d, 0x3,0x41,0x75, - 0x2,0x43,0x5d, 0x2,0x43,0x5e, 0x1,0x64,0x4e, 0x2,0x43,0x71, - 0x2,0x43,0x6f, 0x3,0x41,0x73, 0x2,0x43,0x52, 0x2,0x43,0x74, - 0x3,0x41,0x74, 0x2,0x43,0x75, 0x2,0x43,0x77, 0x1,0x64,0x52, - 0x1,0x64,0x4a, 0x3,0x41,0x6f, 0x2,0x35,0x7a, 0x2,0x43,0x5a, - 0x2,0x43,0x6c, 0x2,0x43,0x5b, 0x1,0x64,0x47, 0x1,0x64,0x57, - 0x2,0x43,0x73, 0x1,0x64,0x55, 0x1,0x64,0x51, 0x2,0x43,0x50, - 0x1,0x64,0x49, 0x3,0x41,0x79, 0x2,0x43,0x53, 0x1,0x64,0x56, - 0x3,0x41,0x78, 0x2,0x43,0x63, 0x2,0x43,0x4f, 0x3,0x41,0x76, - 0x1,0x64,0x4f, 0x2,0x43,0x67, 0x2,0x43,0x57, 0x1,0x64,0x50, - 0x2,0x43,0x60, 0x1,0x64,0x46, 0x1,0x5f,0x7d, 0x2,0x43,0x69, - 0x2,0x3c,0x62, 0x2,0x43,0x54, 0x4,0x3d,0x6c, 0x3,0x41,0x6d, - 0x2,0x43,0x6e, 0x1,0x64,0x4b, 0x2,0x43,0x6b, 0x1,0x64,0x48, - 0x2,0x43,0x65, 0x1,0x64,0x53, 0x2,0x43,0x5c, 0x2,0x43,0x79, - 0x3,0x41,0x6a, 0x3,0x41,0x7b, 0xf,0x42,0x49, 0xf,0x42,0x47, - 0x1,0x64,0x4d, 0x2,0x45,0x2c, 0x3,0x41,0x72, 0x1,0x64,0x54, - 0xf,0x42,0x28, 0xf,0x42,0x3c, 0x2,0x4a,0x70, 0x2,0x4a,0x6e, - 0x3,0x47,0x3a, 0x2,0x4b,0x26, 0x2,0x4a,0x6c, 0x3,0x47,0x3d, - 0x2,0x4a,0x7e, 0x1,0x64,0x45, 0x1,0x69,0x28, 0x2,0x4a,0x68, - 0x2,0x4b,0x25, 0x3,0x47,0x51, 0x2,0x4a,0x6d, 0x2,0x4a,0x7b, - 0x1,0x69,0x2d, 0x1,0x69,0x26, 0x3,0x47,0x4e, 0x2,0x4b,0x23, - 0x3,0x47,0x46, 0x2,0x4a,0x66, 0x2,0x4b,0x22, 0x3,0x47,0x47, - 0x1,0x69,0x38, 0x2,0x4a,0x77, 0x2,0x4b,0x29, 0x1,0x69,0x36, - 0x2,0x4a,0x6f, 0x1,0x69,0x27, 0x2,0x4a,0x71, 0x2,0x4b,0x21, - 0x1,0x69,0x30, 0x2,0x4a,0x6a, 0x1,0x69,0x34, 0x1,0x69,0x2a, - 0x2,0x4a,0x73, 0x2,0x4a,0x69, 0x2,0x4a,0x63, 0x3,0x47,0x3e, - 0x2,0x4a,0x7d, 0x1,0x69,0x31, 0x2,0x4b,0x28, 0x2,0x4a,0x64, - 0x1,0x69,0x2e, 0x4,0x43,0x77, 0x2,0x4a,0x79, 0x4,0x43,0x79, - 0x1,0x69,0x2f, 0x2,0x4a,0x6b, 0x2,0x4a,0x76, 0x2,0x4a,0x72, - 0x2,0x4a,0x74, 0x3,0x47,0x43, 0x1,0x69,0x29, 0x2,0x4b,0x27, - 0x1,0x69,0x37, 0x2,0x4a,0x75, 0x3,0x47,0x3b, 0x2,0x4b,0x2a, - 0x4,0x44,0x27, 0x3,0x47,0x3c, 0x2,0x4a,0x65, 0x2,0x4a,0x7a, - 0x1,0x69,0x2c, 0x1,0x69,0x35, 0x1,0x69,0x33, 0x2,0x4a,0x67, - 0x2,0x4a,0x7c, 0x1,0x69,0x32, 0x3,0x47,0x45, 0x3,0x47,0x48, - 0x1,0x69,0x2b, 0x2,0x4a,0x78, 0x3,0x47,0x4d, 0x3,0x47,0x44, - 0x4,0x44,0x28, 0x3,0x4c,0x54, 0x2,0x4b,0x24, 0x3,0x47,0x4c, - 0x2,0x50,0x7c, 0x3,0x47,0x42, 0x2,0x50,0x78, 0x2,0x50,0x74, - 0x2,0x51,0x2a, 0x2,0x51,0x27, 0x1,0x6d,0x37, 0x3,0x4c,0x64, - 0x3,0x4c,0x60, 0x2,0x51,0x2e, 0x2,0x50,0x7b, 0x1,0x6d,0x42, - 0x2,0x51,0x24, 0x3,0x4c,0x4f, 0x3,0x4c,0x51, 0x2,0x50,0x77, - 0x2,0x51,0x23, 0x1,0x6d,0x3f, 0x2,0x51,0x37, 0x4,0x4a,0x3d, - 0x2,0x51,0x34, 0x2,0x51,0x26, 0x2,0x50,0x75, 0x3,0x4c,0x5f, - 0x3,0x4c,0x57, 0x2,0x51,0x2b, 0x2,0x51,0x2d, 0x1,0x6d,0x3b, - 0x2,0x51,0x21, 0x2,0x50,0x7a, 0x2,0x50,0x71, 0x1,0x6d,0x38, - 0x1,0x6d,0x40, 0x4,0x4a,0x48, 0x2,0x51,0x30, 0x1,0x6d,0x41, - 0x2,0x50,0x72, 0x2,0x51,0x36, 0x2,0x51,0x29, 0x2,0x51,0x2f, - 0x1,0x6d,0x3e, 0x3,0x4c,0x4d, 0x3,0x4c,0x50, 0x2,0x51,0x2c, - 0x3,0x4c,0x47, 0x2,0x51,0x33, 0x3,0x4c,0x5b, 0x1,0x6d,0x43, - 0x3,0x4c,0x56, 0x1,0x6d,0x3d, 0x2,0x51,0x25, 0x2,0x50,0x76, - 0x2,0x51,0x38, 0x2,0x50,0x73, 0x2,0x51,0x31, 0x1,0x6d,0x3a, - 0x3,0x4c,0x4a, 0x2,0x50,0x7d, 0x3,0x4c,0x49, 0x2,0x50,0x7e, - 0x1,0x6d,0x39, 0x1,0x6d,0x36, 0x2,0x50,0x79, 0x1,0x6d,0x3c, - 0x3,0x4c,0x52, 0x1,0x6d,0x35, 0x3,0x4c,0x62, 0x2,0x51,0x32, - 0x2,0x51,0x35, 0x2,0x51,0x22, 0x2,0x57,0x55, 0x3,0x4c,0x5e, - 0x3,0x4c,0x59, 0xf,0x4f,0x42, 0x3,0x4c,0x61, 0x3,0x65,0x30, - 0x2,0x57,0x4d, 0x3,0x51,0x2c, 0x2,0x57,0x49, 0x1,0x71,0x21, - 0x3,0x51,0x3c, 0x3,0x51,0x38, 0x1,0x70,0x74, 0x1,0x70,0x79, - 0x1,0x70,0x75, 0x2,0x57,0x57, 0x2,0x57,0x62, 0x1,0x70,0x73, - 0x2,0x57,0x4f, 0x2,0x57,0x58, 0x2,0x51,0x28, 0x2,0x57,0x59, - 0x3,0x51,0x28, 0x3,0x51,0x2b, 0x1,0x70,0x7a, 0x3,0x51,0x40, - 0x2,0x57,0x68, 0x1,0x70,0x7e, 0x1,0x71,0x23, 0x2,0x57,0x4b, - 0x3,0x51,0x3b, 0x1,0x70,0x7d, 0x3,0x51,0x31, 0x2,0x57,0x66, - 0x2,0x57,0x67, 0x2,0x57,0x5d, 0x2,0x57,0x5c, 0x2,0x57,0x54, - 0x3,0x51,0x29, 0x3,0x51,0x3e, 0x2,0x57,0x5e, 0x2,0x57,0x65, - 0x2,0x57,0x64, 0x3,0x51,0x2f, 0x1,0x70,0x78, 0x1,0x70,0x76, - 0x2,0x57,0x56, 0x2,0x57,0x53, 0x3,0x51,0x44, 0x2,0x57,0x50, - 0x2,0x57,0x63, 0x1,0x71,0x22, 0x2,0x57,0x61, 0x1,0x70,0x7c, - 0x1,0x70,0x7b, 0x3,0x51,0x27, 0x2,0x57,0x5b, 0x4,0x4a,0x4b, - 0x2,0x57,0x4a, 0x2,0x57,0x4c, 0x2,0x57,0x4e, 0x2,0x57,0x60, - 0x2,0x57,0x5a, 0x1,0x70,0x77, 0x3,0x51,0x2e, 0x2,0x57,0x51, - 0x3,0x51,0x32, 0x2,0x57,0x5f, 0x3,0x51,0x41, 0x3,0x51,0x3a, - 0xf,0x54,0x7b, 0x2,0x57,0x52, 0x3,0x65,0x31, 0xf,0x55,0x29, - 0x3,0x65,0x32, 0x3,0x54,0x75, 0x1,0x73,0x78, 0x2,0x5d,0x31, - 0x1,0x73,0x71, 0x2,0x5d,0x22, 0x3,0x54,0x7b, 0x2,0x5d,0x2d, - 0x1,0x73,0x73, 0x2,0x5d,0x34, 0x3,0x55,0x21, 0x2,0x5d,0x29, - 0x3,0x54,0x7c, 0x2,0x5d,0x24, 0x3,0x54,0x76, 0x4,0x56,0x45, - 0x2,0x5d,0x35, 0x2,0x5c,0x7e, 0x2,0x5d,0x2b, 0x3,0x55,0x27, - 0x1,0x73,0x7a, 0x2,0x5d,0x30, 0x2,0x5d,0x36, 0x2,0x5d,0x2a, - 0x1,0x73,0x72, 0x2,0x5d,0x2c, 0x2,0x5d,0x21, 0x1,0x73,0x79, - 0x3,0x55,0x23, 0x3,0x54,0x7a, 0x2,0x5d,0x33, 0x2,0x5d,0x26, - 0x1,0x73,0x75, 0x3,0x55,0x24, 0x2,0x5d,0x28, 0x2,0x5d,0x25, - 0x1,0x73,0x7b, 0x2,0x5d,0x27, 0x1,0x73,0x74, 0x1,0x73,0x77, - 0x2,0x5d,0x2f, 0x2,0x5d,0x23, 0x2,0x5d,0x32, 0x3,0x54,0x78, - 0x2,0x5d,0x2e, 0x3,0x55,0x29, 0x3,0x57,0x74, 0x1,0x76,0x4f, - 0x2,0x61,0x73, 0x1,0x76,0x54, 0x1,0x76,0x55, 0x3,0x57,0x77, - 0x3,0x58,0x21, 0x3,0x57,0x76, 0x1,0x76,0x4e, 0x2,0x61,0x72, - 0x3,0x57,0x78, 0x2,0x61,0x6f, 0x2,0x61,0x70, 0x1,0x76,0x52, - 0x2,0x61,0x6a, 0x2,0x61,0x6e, 0x1,0x76,0x51, 0x3,0x57,0x7e, - 0x2,0x61,0x6b, 0x3,0x57,0x79, 0x3,0x58,0x23, 0x3,0x57,0x7d, - 0x3,0x57,0x7a, 0x1,0x76,0x53, 0x1,0x76,0x50, 0x3,0x58,0x22, - 0x2,0x61,0x69, 0x2,0x61,0x6d, 0x2,0x61,0x71, 0x3,0x57,0x7b, - 0x3,0x65,0x33, 0x2,0x65,0x5c, 0x2,0x65,0x59, 0x2,0x65,0x62, - 0x3,0x5a,0x44, 0x2,0x65,0x61, 0x2,0x65,0x5f, 0x2,0x65,0x5a, - 0x3,0x5a,0x4f, 0x1,0x78,0x3f, 0x3,0x5a,0x45, 0x3,0x5a,0x4e, - 0x4,0x5f,0x71, 0x3,0x5a,0x47, 0x3,0x5a,0x4d, 0x2,0x65,0x5b, - 0x1,0x78,0x3e, 0x1,0x73,0x76, 0x2,0x65,0x5e, 0x1,0x78,0x3d, - 0x2,0x65,0x63, 0x2,0x65,0x5d, 0x2,0x65,0x58, 0x2,0x61,0x6c, - 0x3,0x5a,0x48, 0x3,0x5a,0x46, 0x1,0x78,0x3c, 0x3,0x65,0x34, - 0x2,0x65,0x57, 0x2,0x69,0x24, 0x3,0x5c,0x49, 0x2,0x69,0x23, - 0x2,0x65,0x60, 0x1,0x79,0x73, 0x3,0x57,0x75, 0x2,0x69,0x27, - 0x2,0x69,0x28, 0x2,0x69,0x22, 0x2,0x69,0x26, 0x4,0x63,0x50, - 0x2,0x69,0x21, 0x3,0x5c,0x47, 0x3,0x65,0x35, 0x4,0x63,0x4e, - 0x2,0x6b,0x5f, 0x2,0x69,0x25, 0x1,0x7a,0x72, 0x1,0x7a,0x70, - 0x2,0x6b,0x5d, 0x3,0x5e,0x35, 0x3,0x5e,0x34, 0x3,0x5e,0x33, - 0x2,0x6b,0x60, 0x3,0x5e,0x37, 0x2,0x6b,0x5c, 0x2,0x6b,0x5e, - 0x1,0x7a,0x71, 0x3,0x5f,0x4f, 0x3,0x5f,0x4e, 0x2,0x6d,0x53, - 0x2,0x6d,0x54, 0x1,0x7b,0x62, 0x2,0x6d,0x52, 0xf,0x69,0x4c, - 0x3,0x65,0x36, 0x3,0x65,0x37, 0x2,0x6f,0x31, 0x1,0x7c,0x3b, - 0x2,0x6f,0x2f, 0x2,0x6f,0x30, 0x2,0x70,0x3a, 0x3,0x60,0x74, - 0xf,0x6b,0x51, 0x1,0x7d,0x23, 0x2,0x71,0x23, 0x2,0x71,0x21, - 0x2,0x71,0x22, 0x2,0x71,0x24, 0x3,0x61,0x40, 0x3,0x61,0x65, - 0x3,0x61,0x41, 0x2,0x72,0x2b, 0x1,0x45,0x4e, 0x1,0x48,0x39, - 0x3,0x23,0x79, 0x1,0x4e,0x3c, 0x4,0x26,0x71, 0x2,0x27,0x4a, - 0x3,0x29,0x53, 0x3,0x29,0x54, 0x2,0x2b,0x46, 0x4,0x29,0x72, - 0x3,0x2d,0x3c, 0x3,0x31,0x66, 0x2,0x2f,0x77, 0x2,0x2f,0x79, - 0x3,0x31,0x65, 0x2,0x2f,0x78, 0x3,0x31,0x67, 0x2,0x2f,0x7a, - 0x1,0x5b,0x43, 0x2,0x36,0x3b, 0x2,0x2f,0x7b, 0x3,0x36,0x62, - 0x2,0x36,0x3a, 0x2,0x36,0x3c, 0x2,0x36,0x3d, 0x2,0x3c,0x7d, - 0x1,0x60,0x22, 0x2,0x3c,0x7e, 0x2,0x3d,0x22, 0x1,0x60,0x23, - 0x1,0x60,0x21, 0x2,0x3d,0x21, 0x3,0x41,0x7d, 0x2,0x44,0x22, - 0x2,0x43,0x7e, 0x2,0x43,0x7d, 0x3,0x41,0x7c, 0x2,0x43,0x7c, - 0x2,0x43,0x7b, 0x1,0x64,0x58, 0x2,0x44,0x21, 0x1,0x69,0x39, - 0x2,0x4b,0x2b, 0x2,0x4b,0x2d, 0x1,0x69,0x3a, 0x2,0x4b,0x2c, - 0x1,0x6d,0x45, 0x3,0x4c,0x66, 0x1,0x6d,0x44, 0x2,0x51,0x39, - 0x3,0x4c,0x65, 0x3,0x4c,0x67, 0x2,0x57,0x6a, 0x2,0x57,0x69, - 0x2,0x57,0x6b, 0x3,0x51,0x46, 0x3,0x51,0x45, 0x1,0x71,0x24, - 0xf,0x55,0x39, 0x2,0x5d,0x37, 0x1,0x73,0x7c, 0x3,0x55,0x2b, - 0x2,0x61,0x74, 0x1,0x76,0x56, 0x2,0x65,0x64, 0x1,0x7b,0x63, - 0x1,0x45,0x4f, 0x1,0x46,0x5f, 0x1,0x48,0x3a, 0x1,0x4a,0x63, - 0x1,0x4e,0x3d, 0x1,0x4e,0x3e, 0x3,0x29,0x55, 0x3,0x29,0x56, - 0x1,0x51,0x71, 0x3,0x2d,0x3d, 0x3,0x31,0x68, 0x2,0x2f,0x7c, - 0x3,0x3c,0x49, 0x3,0x3c,0x47, 0x4,0x44,0x2d, 0x3,0x41,0x7e, - 0x1,0x64,0x59, 0x3,0x42,0x21, 0x3,0x47,0x53, 0x4,0x4a,0x4e, - 0x2,0x52,0x59, 0x1,0x71,0x25, 0x1,0x76,0x57, 0x1,0x45,0x50, - 0x3,0x22,0x53, 0x1,0x48,0x3b, 0x4,0x26,0x76, 0x2,0x27,0x4c, - 0x1,0x4e,0x3f, 0x2,0x27,0x4b, 0x3,0x29,0x58, 0x2,0x2b,0x47, - 0x1,0x51,0x72, 0x2,0x2b,0x48, 0x5,0x29,0x69, 0x1,0x51,0x73, - 0x2,0x2f,0x7e, 0x1,0x56,0x32, 0x1,0x56,0x31, 0x3,0x31,0x6a, - 0x2,0x36,0x42, 0x2,0x36,0x40, 0x2,0x36,0x41, 0x2,0x36,0x3f, - 0x3,0x36,0x64, 0x2,0x36,0x3e, 0x2,0x3d,0x23, 0x2,0x3d,0x26, - 0x1,0x60,0x25, 0x2,0x3d,0x24, 0x1,0x60,0x24, 0x2,0x3d,0x25, - 0x2,0x44,0x23, 0x3,0x42,0x22, 0x4,0x44,0x31, 0x2,0x4b,0x2e, - 0x2,0x4b,0x2f, 0x2,0x4b,0x30, 0x3,0x47,0x54, 0x2,0x51,0x3c, - 0x2,0x51,0x3b, 0x1,0x6d,0x46, 0x2,0x51,0x3a, 0x2,0x51,0x3d, - 0x2,0x57,0x6c, 0x4,0x50,0x6d, 0x5,0x5b,0x72, 0x2,0x57,0x6d, - 0x2,0x57,0x6e, 0x4,0x56,0x52, 0x2,0x5d,0x38, 0x1,0x73,0x7d, - 0x1,0x76,0x58, 0x2,0x65,0x65, 0x1,0x7a,0x73, 0x2,0x21,0x3f, - 0x3,0x29,0x59, 0x1,0x51,0x74, 0x2,0x2b,0x49, 0x1,0x56,0x33, - 0x4,0x32,0x4e, 0x4,0x32,0x50, 0x1,0x5b,0x44, 0x3,0x36,0x65, - 0x1,0x60,0x26, 0x2,0x3d,0x27, 0x3,0x3c,0x4b, 0x1,0x64,0x5b, - 0x1,0x64,0x5a, 0x3,0x42,0x26, 0x2,0x4b,0x31, 0x2,0x4b,0x32, - 0x1,0x6d,0x47, 0x1,0x6d,0x48, 0x2,0x57,0x70, 0x2,0x57,0x6f, - 0x2,0x61,0x75, 0x2,0x6f,0x32, 0x1,0x45,0x51, 0x2,0x21,0x40, - 0x1,0x46,0x60, 0x3,0x23,0x7a, 0x1,0x4a,0x64, 0x2,0x24,0x48, - 0x3,0x29,0x5a, 0x1,0x51,0x75, 0x1,0x64,0x5c, 0x1,0x45,0x52, - 0x2,0x2b,0x4a, 0x1,0x51,0x76, 0x2,0x2b,0x4b, 0x1,0x73,0x7e, - 0x1,0x45,0x53, 0x3,0x65,0x38, 0x3,0x65,0x39, 0x2,0x27,0x4d, - 0x2,0x2b,0x4c, 0x3,0x2d,0x42, 0x2,0x30,0x25, 0x2,0x30,0x24, - 0x2,0x30,0x22, 0x3,0x31,0x6e, 0x2,0x30,0x21, 0x2,0x30,0x26, - 0x2,0x30,0x23, 0x3,0x31,0x6c, 0x3,0x31,0x6d, 0x1,0x5b,0x45, - 0x1,0x5b,0x46, 0x3,0x36,0x66, 0x1,0x60,0x27, 0x2,0x3d,0x28, - 0x4,0x38,0x4e, 0x2,0x3d,0x29, 0x2,0x3d,0x2a, 0x3,0x3c,0x4d, - 0xf,0x3c,0x3c, 0x3,0x65,0x3a, 0x2,0x44,0x27, 0x2,0x44,0x28, - 0x2,0x44,0x26, 0x3,0x42,0x28, 0x2,0x44,0x24, 0x2,0x44,0x25, - 0x1,0x64,0x5d, 0x2,0x4b,0x33, 0x2,0x51,0x40, 0x2,0x51,0x3f, - 0x2,0x51,0x3e, 0x2,0x51,0x41, 0x2,0x57,0x72, 0x2,0x57,0x71, - 0x1,0x71,0x26, 0x2,0x57,0x73, 0x1,0x74,0x21, 0x2,0x5d,0x39, - 0x3,0x55,0x2d, 0x2,0x61,0x76, 0x2,0x65,0x66, 0x2,0x6d,0x55, - 0x1,0x45,0x54, 0x1,0x46,0x62, 0x1,0x46,0x61, 0x4,0x23,0x21, - 0x1,0x4e,0x40, 0x2,0x21,0x41, 0x2,0x21,0x5f, 0x1,0x48,0x3c, - 0x2,0x22,0x58, 0x2,0x24,0x49, 0x2,0x24,0x4a, 0x1,0x4e,0x41, - 0x3,0x29,0x5d, 0x2,0x27,0x4e, 0x3,0x65,0x3b, 0x1,0x51,0x77, - 0x2,0x2b,0x4d, 0x2,0x2b,0x4e, 0x1,0x56,0x34, 0x1,0x56,0x38, - 0x2,0x30,0x27, 0x1,0x56,0x37, 0x1,0x56,0x35, 0x1,0x56,0x36, - 0x2,0x36,0x43, 0x1,0x5b,0x47, 0x1,0x60,0x2a, 0x3,0x3c,0x4e, - 0x1,0x60,0x28, 0x1,0x60,0x29, 0x2,0x3d,0x2b, 0x3,0x42,0x29, - 0x3,0x42,0x2a, 0x1,0x69,0x3b, 0x1,0x45,0x55, 0x2,0x21,0x60, - 0x3,0x22,0x57, 0x1,0x46,0x63, 0x3,0x22,0x54, 0x2,0x21,0x63, - 0x3,0x24,0x21, 0x1,0x46,0x66, 0x2,0x21,0x62, 0x1,0x46,0x65, - 0x1,0x46,0x64, 0x1,0x4a,0x65, 0x2,0x21,0x61, 0x3,0x22,0x58, - 0x3,0x22,0x59, 0x2,0x22,0x59, 0xf,0x21,0x66, 0x2,0x22,0x5d, - 0x2,0x22,0x5f, 0x2,0x22,0x60, 0x1,0x48,0x46, 0x1,0x48,0x47, - 0x2,0x22,0x5c, 0x1,0x48,0x42, 0x3,0x23,0x7d, 0x2,0x22,0x5a, - 0x3,0x24,0x25, 0x2,0x22,0x5e, 0x1,0x48,0x43, 0x3,0x26,0x55, - 0x1,0x48,0x3e, 0x3,0x23,0x7c, 0x1,0x48,0x3f, 0x3,0x24,0x23, - 0x1,0x48,0x45, 0x2,0x22,0x5b, 0x1,0x48,0x3d, 0x1,0x4a,0x66, - 0x1,0x48,0x40, 0x1,0x48,0x41, 0x1,0x48,0x44, 0xf,0x22,0x5d, - 0x3,0x65,0x3c, 0x2,0x24,0x5b, 0x2,0x24,0x59, 0x2,0x24,0x4c, - 0x1,0x4a,0x72, 0x2,0x24,0x53, 0x1,0x4a,0x6d, 0x2,0x24,0x4d, - 0x3,0x29,0x64, 0x2,0x24,0x55, 0x3,0x26,0x50, 0x2,0x24,0x52, - 0x1,0x4a,0x70, 0x2,0x24,0x51, 0x1,0x4a,0x77, 0x2,0x24,0x5a, - 0x1,0x4a,0x79, 0x3,0x26,0x53, 0x1,0x4a,0x7b, 0x3,0x23,0x7e, - 0x2,0x24,0x4b, 0x3,0x26,0x57, 0x1,0x4a,0x6e, 0x2,0x24,0x5c, - 0x3,0x26,0x51, 0x1,0x4a,0x75, 0x1,0x4a,0x78, 0x3,0x26,0x4c, - 0x2,0x27,0x65, 0x1,0x4a,0x68, 0x1,0x4b,0x21, 0x1,0x4a,0x76, - 0x2,0x24,0x4e, 0x1,0x4a,0x6b, 0x1,0x4a,0x7a, 0x2,0x24,0x56, - 0x1,0x4a,0x69, 0x1,0x4a,0x6a, 0x2,0x27,0x63, 0x2,0x24,0x4f, - 0x1,0x4a,0x71, 0x1,0x4a,0x7c, 0x2,0x24,0x5d, 0x2,0x24,0x50, - 0x1,0x4a,0x6f, 0x3,0x26,0x4d, 0x1,0x4a,0x74, 0x2,0x27,0x4f, - 0x1,0x4a,0x7d, 0x2,0x24,0x57, 0x1,0x4a,0x73, 0x3,0x29,0x63, - 0x1,0x4a,0x7e, 0x1,0x4a,0x67, 0x2,0x24,0x54, 0x1,0x4a,0x6c, - 0x2,0x24,0x58, 0x2,0x27,0x64, 0x3,0x26,0x4e, 0x3,0x26,0x52, - 0x3,0x26,0x5c, 0x3,0x26,0x59, 0x3,0x26,0x56, 0xf,0x24,0x68, - 0x3,0x26,0x5b, 0x1,0x4e,0x4d, 0x1,0x4e,0x5d, 0x2,0x27,0x56, - 0x1,0x4e,0x54, 0x3,0x2d,0x4e, 0x2,0x27,0x6b, 0x1,0x4e,0x45, - 0x3,0x29,0x6b, 0x1,0x4e,0x48, 0x2,0x27,0x62, 0x4,0x27,0x26, - 0x2,0x27,0x54, 0x2,0x27,0x58, 0x1,0x4e,0x50, 0x1,0x4e,0x52, - 0x2,0x27,0x5b, 0x1,0x4e,0x59, 0x1,0x4e,0x4b, 0x1,0x4e,0x49, - 0x1,0x4e,0x4a, 0x1,0x4e,0x58, 0x2,0x27,0x67, 0x1,0x4e,0x53, - 0x2,0x27,0x5a, 0x2,0x27,0x5c, 0x1,0x4e,0x51, 0x1,0x4e,0x56, - 0x2,0x27,0x5d, 0x2,0x27,0x6a, 0x3,0x29,0x6d, 0x1,0x51,0x78, - 0x1,0x4e,0x5c, 0x4,0x26,0x7d, 0x1,0x4e,0x46, 0x2,0x27,0x69, - 0x3,0x29,0x6c, 0x2,0x27,0x6d, 0x2,0x27,0x59, 0x2,0x27,0x6f, - 0x2,0x27,0x60, 0x1,0x4e,0x4f, 0x2,0x27,0x55, 0x1,0x4e,0x4e, - 0x1,0x4e,0x60, 0x1,0x4e,0x55, 0x3,0x29,0x6a, 0x2,0x27,0x53, - 0x2,0x2b,0x57, 0x1,0x4e,0x5b, 0x1,0x4e,0x5f, 0x2,0x27,0x61, - 0x2,0x27,0x66, 0x3,0x29,0x65, 0x1,0x4e,0x61, 0x1,0x4e,0x5a, - 0x1,0x4e,0x4c, 0x1,0x4e,0x42, 0x3,0x29,0x69, 0x1,0x4e,0x47, - 0x4,0x26,0x7b, 0x2,0x27,0x57, 0x1,0x4e,0x43, 0x2,0x27,0x6e, - 0x3,0x29,0x67, 0x2,0x27,0x51, 0x2,0x27,0x50, 0x2,0x27,0x5e, - 0x2,0x27,0x52, 0x1,0x4e,0x5e, 0x1,0x56,0x39, 0x1,0x4e,0x57, - 0x2,0x27,0x5f, 0x1,0x4e,0x44, 0x3,0x2d,0x4f, 0x1,0x52,0x29, - 0x2,0x27,0x6c, 0x3,0x2d,0x46, 0x2,0x2b,0x5e, 0x2,0x2b,0x61, - 0x3,0x2d,0x50, 0x2,0x2b,0x64, 0x2,0x2b,0x59, 0x3,0x2d,0x48, - 0x3,0x2d,0x4a, 0x2,0x2b,0x67, 0x2,0x2b,0x6a, 0x2,0x2b,0x6c, - 0x2,0x2b,0x56, 0x1,0x51,0x79, 0x1,0x51,0x7e, 0x2,0x30,0x2c, - 0x1,0x52,0x30, 0x2,0x2b,0x65, 0x2,0x2b,0x6d, 0x2,0x2b,0x5d, - 0x2,0x2b,0x55, 0x3,0x2d,0x49, 0x3,0x2d,0x47, 0x3,0x2d,0x4d, - 0x2,0x30,0x47, 0x1,0x52,0x23, 0x2,0x2b,0x62, 0x2,0x2b,0x5a, - 0x2,0x2b,0x5c, 0x1,0x52,0x28, 0x3,0x31,0x7a, 0x2,0x2b,0x5f, - 0x1,0x52,0x22, 0x2,0x2b,0x52, 0x2,0x2b,0x68, 0x3,0x2d,0x4b, - 0x2,0x2b,0x6b, 0x3,0x2d,0x45, 0x3,0x2d,0x57, 0x1,0x51,0x7d, - 0x3,0x2d,0x53, 0x1,0x52,0x2b, 0x2,0x2b,0x4f, 0x1,0x52,0x2d, - 0x1,0x51,0x7b, 0x1,0x52,0x31, 0x2,0x2b,0x69, 0x2,0x2b,0x51, - 0x1,0x52,0x2e, 0x2,0x30,0x41, 0x2,0x27,0x68, 0x1,0x52,0x21, - 0x1,0x51,0x7a, 0x2,0x2b,0x58, 0x2,0x2b,0x50, 0x1,0x52,0x2f, - 0x1,0x52,0x27, 0x2,0x2b,0x63, 0x1,0x52,0x2c, 0x1,0x52,0x2a, - 0x2,0x2b,0x5b, 0x1,0x52,0x24, 0x2,0x2b,0x53, 0x1,0x52,0x25, - 0x1,0x52,0x26, 0x2,0x2b,0x54, 0x2,0x2b,0x66, 0x1,0x51,0x7c, - 0x2,0x2b,0x60, 0x4,0x2a,0x21, 0x3,0x2d,0x55, 0x3,0x2d,0x51, - 0x3,0x31,0x77, 0x3,0x31,0x73, 0x2,0x30,0x2f, 0x1,0x56,0x41, - 0x1,0x56,0x46, 0x3,0x31,0x79, 0x3,0x32,0x26, 0x3,0x31,0x76, - 0x2,0x30,0x38, 0x2,0x30,0x3e, 0x2,0x30,0x3a, 0x2,0x30,0x2d, - 0x2,0x30,0x30, 0x2,0x30,0x29, 0x2,0x30,0x2a, 0x1,0x56,0x4d, - 0x1,0x56,0x3e, 0x2,0x30,0x39, 0x2,0x30,0x42, 0x1,0x56,0x48, - 0x1,0x56,0x3a, 0x3,0x31,0x6f, 0x1,0x56,0x43, 0x2,0x30,0x31, - 0x1,0x56,0x45, 0x2,0x30,0x32, 0x2,0x30,0x3c, 0x3,0x32,0x22, - 0x3,0x32,0x25, 0x3,0x31,0x72, 0x1,0x56,0x47, 0x2,0x30,0x4b, - 0x2,0x30,0x2b, 0x1,0x56,0x40, 0x1,0x56,0x3f, 0x1,0x56,0x4b, - 0x2,0x30,0x28, 0x2,0x30,0x49, 0x2,0x30,0x3d, 0x2,0x30,0x4a, - 0x2,0x30,0x44, 0x2,0x30,0x36, 0x2,0x30,0x45, 0x3,0x32,0x21, - 0x2,0x30,0x3f, 0x2,0x30,0x48, 0x2,0x30,0x46, 0x1,0x56,0x4c, - 0x2,0x30,0x37, 0x1,0x56,0x3d, 0x1,0x56,0x3c, 0x1,0x56,0x44, - 0x1,0x56,0x4a, 0x2,0x30,0x43, 0x1,0x56,0x49, 0x2,0x30,0x34, - 0x1,0x5b,0x48, 0x3,0x31,0x78, 0x2,0x30,0x4c, 0x2,0x30,0x33, - 0x2,0x30,0x2e, 0x1,0x56,0x42, 0x1,0x56,0x4e, 0x1,0x56,0x3b, - 0x3,0x32,0x27, 0x2,0x30,0x3b, 0x2,0x30,0x40, 0x3,0x31,0x7d, - 0x3,0x31,0x7b, 0x3,0x31,0x7c, 0x3,0x65,0x3d, 0x1,0x5b,0x6a, - 0x2,0x36,0x45, 0x2,0x36,0x49, 0x3,0x36,0x6f, 0x1,0x5b,0x57, - 0x1,0x5b,0x55, 0x3,0x36,0x7a, 0x3,0x37,0x21, 0x1,0x5b,0x4c, - 0x2,0x36,0x47, 0x2,0x36,0x46, 0x1,0x5b,0x60, 0x3,0x3c,0x50, - 0x2,0x36,0x4c, 0x1,0x5b,0x5a, 0x3,0x36,0x72, 0x2,0x36,0x5e, - 0x2,0x36,0x6a, 0x1,0x5b,0x49, 0x2,0x36,0x5b, 0x2,0x36,0x54, - 0x1,0x5b,0x6c, 0x2,0x36,0x44, 0x3,0x36,0x6a, 0x2,0x36,0x60, - 0x3,0x36,0x6b, 0x1,0x5b,0x69, 0x1,0x5b,0x5d, 0x1,0x5b,0x68, - 0x1,0x5b,0x53, 0x2,0x36,0x50, 0x2,0x36,0x62, 0x2,0x36,0x5a, - 0x1,0x5b,0x54, 0x1,0x5b,0x4e, 0x2,0x36,0x68, 0x3,0x36,0x6c, - 0x2,0x36,0x61, 0x2,0x36,0x63, 0x1,0x5b,0x56, 0x1,0x5b,0x5e, - 0x2,0x36,0x65, 0x2,0x36,0x4e, 0x2,0x36,0x5f, 0x2,0x36,0x53, - 0x2,0x36,0x67, 0x1,0x5b,0x63, 0x1,0x5b,0x4b, 0x1,0x5b,0x61, - 0x2,0x36,0x58, 0x2,0x36,0x56, 0x2,0x36,0x57, 0x1,0x5b,0x58, - 0x2,0x36,0x52, 0x2,0x36,0x51, 0x1,0x5b,0x4d, 0x2,0x36,0x4b, - 0x2,0x36,0x69, 0x1,0x5b,0x4f, 0x2,0x36,0x55, 0x1,0x5b,0x6d, - 0x3,0x36,0x74, 0x1,0x5b,0x67, 0x2,0x36,0x4a, 0x1,0x5b,0x64, - 0x1,0x5b,0x62, 0x1,0x5b,0x6b, 0x2,0x36,0x5c, 0x1,0x5b,0x66, - 0x2,0x30,0x35, 0x2,0x36,0x5d, 0x1,0x5b,0x65, 0x2,0x36,0x64, - 0x1,0x5b,0x4a, 0x2,0x36,0x59, 0x1,0x5b,0x5c, 0x2,0x36,0x4d, - 0x1,0x5b,0x5b, 0x3,0x36,0x7c, 0x1,0x5b,0x59, 0x1,0x5b,0x51, - 0x1,0x5b,0x50, 0x2,0x3d,0x2c, 0x2,0x36,0x66, 0x3,0x3c,0x5d, - 0x3,0x37,0x28, 0x2,0x36,0x4f, 0x3,0x37,0x26, 0x3,0x37,0x23, - 0x2,0x3d,0x41, 0x3,0x36,0x70, 0x1,0x5b,0x52, 0x3,0x36,0x77, - 0x3,0x37,0x24, 0x3,0x36,0x76, 0x3,0x37,0x25, 0x3,0x36,0x79, - 0x4,0x32,0x6d, 0x3,0x36,0x7d, 0x3,0x65,0x3e, 0x3,0x37,0x29, - 0xf,0x36,0x29, 0x3,0x37,0x27, 0x3,0x3c,0x54, 0x1,0x60,0x47, - 0x1,0x5b,0x5f, 0x1,0x60,0x35, 0x2,0x3d,0x3b, 0x1,0x60,0x43, - 0x3,0x3c,0x52, 0x2,0x3d,0x2f, 0x1,0x60,0x32, 0x1,0x60,0x2e, - 0x2,0x3d,0x4d, 0x1,0x60,0x34, 0x1,0x60,0x38, 0x1,0x60,0x33, - 0x1,0x60,0x3c, 0x2,0x3d,0x51, 0x2,0x3d,0x48, 0x3,0x3c,0x6b, - 0x3,0x3c,0x6d, 0x2,0x3d,0x36, 0x1,0x60,0x41, 0x1,0x60,0x3b, - 0x2,0x3d,0x42, 0x1,0x60,0x2b, 0x2,0x3d,0x4e, 0x2,0x3d,0x47, - 0x1,0x60,0x2f, 0x2,0x3d,0x3c, 0x1,0x60,0x3e, 0x2,0x3d,0x59, - 0x2,0x3d,0x5a, 0x4,0x38,0x5b, 0x1,0x60,0x2c, 0x2,0x3d,0x4c, - 0x1,0x60,0x40, 0x2,0x3d,0x40, 0x2,0x3d,0x32, 0x2,0x3d,0x33, - 0x1,0x60,0x44, 0x2,0x3d,0x37, 0x2,0x3d,0x3e, 0x2,0x3d,0x38, - 0x3,0x3c,0x5a, 0x1,0x60,0x42, 0x1,0x60,0x4a, 0x2,0x3d,0x34, - 0x2,0x3d,0x2d, 0x2,0x3d,0x2e, 0x3,0x3c,0x56, 0x2,0x3d,0x30, - 0x1,0x60,0x31, 0x2,0x3d,0x3d, 0x3,0x3c,0x6e, 0x1,0x60,0x3f, - 0x1,0x60,0x48, 0x3,0x3c,0x58, 0x3,0x3c,0x69, 0x2,0x3d,0x3f, - 0x2,0x3d,0x57, 0x2,0x3d,0x4f, 0x1,0x60,0x2d, 0x2,0x3d,0x55, - 0x1,0x60,0x39, 0x3,0x3c,0x66, 0x1,0x60,0x37, 0x3,0x3c,0x64, - 0x2,0x3d,0x5b, 0x1,0x60,0x36, 0x2,0x3d,0x45, 0x2,0x3d,0x39, - 0x2,0x3d,0x43, 0x1,0x60,0x4d, 0x2,0x3d,0x49, 0x2,0x3d,0x46, - 0x2,0x3d,0x35, 0x1,0x60,0x49, 0x2,0x3d,0x53, 0x2,0x3d,0x50, - 0x2,0x3d,0x58, 0x1,0x60,0x30, 0x2,0x3d,0x44, 0x1,0x60,0x4c, - 0x3,0x3c,0x5b, 0x2,0x3d,0x4b, 0x3,0x42,0x3a, 0x3,0x3c,0x60, - 0x1,0x60,0x3a, 0x1,0x60,0x3d, 0x3,0x3c,0x5c, 0x2,0x3d,0x4a, - 0x1,0x60,0x4b, 0x2,0x3d,0x3a, 0x2,0x36,0x48, 0x3,0x3c,0x51, - 0x3,0x3c,0x6c, 0x2,0x3d,0x54, 0x2,0x3d,0x52, 0x2,0x3d,0x56, - 0xf,0x3c,0x5d, 0x3,0x3c,0x62, 0x3,0x65,0x42, 0x4,0x38,0x5e, - 0x3,0x3c,0x63, 0x3,0x3c,0x68, 0xf,0x3c,0x47, 0x3,0x65,0x40, - 0x4,0x38,0x5f, 0x2,0x3d,0x31, 0x1,0x60,0x46, 0x3,0x65,0x3f, - 0x3,0x65,0x41, 0x2,0x44,0x47, 0x2,0x44,0x46, 0x2,0x44,0x2c, - 0x1,0x64,0x63, 0x3,0x42,0x30, 0x2,0x44,0x45, 0x2,0x44,0x2f, - 0x2,0x44,0x30, 0x4,0x3e,0x3f, 0x1,0x64,0x6d, 0x2,0x44,0x4e, - 0x1,0x64,0x68, 0x2,0x44,0x44, 0x3,0x42,0x33, 0x2,0x44,0x29, - 0x1,0x64,0x6e, 0x1,0x64,0x64, 0x2,0x44,0x38, 0x2,0x44,0x2e, - 0x2,0x44,0x31, 0x2,0x44,0x49, 0x1,0x64,0x5e, 0x2,0x44,0x50, - 0x2,0x44,0x48, 0x1,0x64,0x67, 0x2,0x44,0x3d, 0x1,0x64,0x72, - 0x3,0x42,0x2e, 0x3,0x42,0x36, 0x1,0x64,0x71, 0x1,0x64,0x6b, - 0x3,0x42,0x40, 0x4,0x3e,0x36, 0x2,0x44,0x4f, 0x1,0x64,0x5f, - 0x2,0x44,0x3b, 0x2,0x44,0x32, 0x2,0x44,0x3f, 0x2,0x44,0x4b, - 0x1,0x64,0x73, 0x3,0x42,0x39, 0x1,0x64,0x61, 0x2,0x44,0x3a, - 0x3,0x42,0x2d, 0x2,0x44,0x33, 0x1,0x64,0x6a, 0x3,0x42,0x31, - 0x1,0x64,0x69, 0x2,0x44,0x36, 0x2,0x44,0x40, 0x2,0x44,0x4a, - 0x2,0x44,0x2d, 0x2,0x44,0x37, 0x1,0x64,0x62, 0x2,0x44,0x41, - 0x1,0x64,0x6f, 0x1,0x64,0x66, 0x2,0x44,0x34, 0x1,0x64,0x65, - 0x2,0x44,0x2b, 0x2,0x44,0x39, 0x2,0x44,0x4d, 0x1,0x60,0x45, - 0x1,0x69,0x57, 0x2,0x44,0x3c, 0x2,0x4b,0x34, 0x2,0x44,0x3e, - 0x2,0x44,0x4c, 0x1,0x64,0x6c, 0x2,0x44,0x35, 0x1,0x64,0x60, - 0x1,0x64,0x70, 0x1,0x6d,0x5a, 0x2,0x44,0x2a, 0x6,0x54,0x4e, - 0x2,0x44,0x43, 0x3,0x42,0x44, 0x3,0x42,0x3e, 0x3,0x42,0x47, - 0x2,0x44,0x42, 0x3,0x42,0x3d, 0x3,0x42,0x45, 0x3,0x42,0x3f, - 0x3,0x42,0x3b, 0x3,0x42,0x46, 0x2,0x4b,0x50, 0x1,0x69,0x54, - 0x2,0x4b,0x45, 0x2,0x4b,0x4a, 0x1,0x69,0x49, 0x3,0x47,0x56, - 0x2,0x4b,0x36, 0x1,0x69,0x56, 0x3,0x47,0x57, 0x1,0x69,0x40, - 0x2,0x4b,0x35, 0x2,0x4b,0x56, 0x1,0x69,0x58, 0x2,0x4b,0x39, - 0x2,0x4b,0x49, 0x3,0x47,0x65, 0x2,0x4b,0x3b, 0x2,0x4b,0x59, - 0x2,0x4b,0x55, 0x1,0x69,0x3e, 0x1,0x69,0x48, 0x2,0x51,0x5b, - 0x1,0x69,0x55, 0x1,0x69,0x46, 0x2,0x4b,0x37, 0x3,0x47,0x63, - 0x2,0x4b,0x54, 0x1,0x69,0x4a, 0x2,0x4b,0x51, 0x2,0x4b,0x5e, - 0x2,0x4b,0x3d, 0x2,0x4b,0x46, 0x3,0x4c,0x78, 0x3,0x47,0x5b, - 0x2,0x4b,0x5c, 0x2,0x4b,0x52, 0x1,0x69,0x45, 0x3,0x4c,0x6a, - 0x3,0x47,0x64, 0x2,0x4b,0x44, 0x1,0x69,0x3f, 0x1,0x69,0x3d, - 0x1,0x69,0x4f, 0x4,0x44,0x43, 0x3,0x47,0x5f, 0x2,0x4b,0x42, - 0x2,0x4b,0x3f, 0x2,0x4b,0x40, 0x3,0x47,0x5a, 0x2,0x4b,0x58, - 0x3,0x47,0x5c, 0x2,0x4b,0x5d, 0x2,0x4b,0x5b, 0x1,0x69,0x43, - 0x2,0x4b,0x5f, 0x1,0x69,0x47, 0x1,0x69,0x4e, 0x4,0x44,0x44, - 0x2,0x4b,0x38, 0x2,0x51,0x43, 0x2,0x4b,0x41, 0x3,0x47,0x5e, - 0x1,0x69,0x41, 0x1,0x69,0x53, 0x1,0x69,0x50, 0x1,0x69,0x44, - 0x2,0x4b,0x4b, 0x2,0x4b,0x3c, 0x1,0x69,0x51, 0x2,0x4b,0x4d, - 0x1,0x69,0x4b, 0x1,0x69,0x4d, 0x1,0x69,0x3c, 0x3,0x47,0x5d, - 0x2,0x4b,0x4f, 0x2,0x4b,0x47, 0x2,0x4b,0x3a, 0x1,0x69,0x4c, - 0x2,0x4b,0x57, 0x2,0x4b,0x5a, 0x2,0x4b,0x43, 0x2,0x4b,0x4e, - 0x3,0x4c,0x74, 0x1,0x69,0x42, 0x1,0x6d,0x49, 0x2,0x4b,0x4c, - 0x2,0x51,0x42, 0x3,0x47,0x62, 0x2,0x4b,0x53, 0x3,0x47,0x61, - 0x4,0x44,0x52, 0xf,0x4f,0x79, 0x3,0x65,0x44, 0x3,0x65,0x45, - 0x3,0x47,0x66, 0x3,0x65,0x43, 0x2,0x4b,0x3e, 0x2,0x51,0x4c, - 0x2,0x51,0x56, 0x1,0x6d,0x4c, 0x2,0x51,0x55, 0x2,0x51,0x61, - 0x1,0x6d,0x4e, 0x2,0x51,0x53, 0x4,0x4a,0x58, 0x2,0x51,0x57, - 0x1,0x6d,0x59, 0x3,0x4c,0x7d, 0x2,0x51,0x4e, 0x1,0x6d,0x51, - 0x3,0x4c,0x73, 0x2,0x51,0x5a, 0x2,0x57,0x7b, 0x1,0x6d,0x5d, - 0x1,0x6d,0x5c, 0x2,0x51,0x5c, 0x2,0x51,0x4b, 0x2,0x51,0x66, - 0x1,0x6d,0x57, 0x3,0x4c,0x6b, 0x1,0x6d,0x4d, 0x2,0x51,0x5f, - 0x4,0x4a,0x69, 0x2,0x51,0x63, 0x2,0x51,0x68, 0x2,0x51,0x5d, - 0x2,0x51,0x51, 0x1,0x6d,0x50, 0x1,0x6d,0x53, 0x1,0x6d,0x5b, - 0x1,0x6d,0x56, 0x3,0x4c,0x75, 0x2,0x51,0x54, 0x2,0x4b,0x48, - 0x3,0x4c,0x7e, 0x3,0x4c,0x6c, 0x2,0x51,0x50, 0x2,0x51,0x67, - 0x1,0x6d,0x52, 0x3,0x4c,0x79, 0x1,0x6d,0x55, 0x2,0x51,0x69, - 0x1,0x6d,0x4a, 0x2,0x51,0x5e, 0x2,0x51,0x44, 0x2,0x51,0x64, - 0x1,0x74,0x2a, 0x3,0x4c,0x7a, 0x2,0x51,0x52, 0x4,0x50,0x75, - 0x1,0x6d,0x4b, 0x2,0x51,0x4d, 0x1,0x6d,0x4f, 0x2,0x51,0x45, - 0x1,0x69,0x52, 0x2,0x51,0x49, 0x4,0x4a,0x57, 0x2,0x51,0x62, - 0x2,0x51,0x4a, 0x2,0x51,0x48, 0x1,0x6d,0x54, 0x3,0x4c,0x7b, - 0x2,0x51,0x60, 0x3,0x4c,0x77, 0x2,0x51,0x47, 0x2,0x51,0x59, - 0x2,0x51,0x58, 0x2,0x51,0x65, 0x2,0x51,0x4f, 0x1,0x6d,0x58, - 0x4,0x4a,0x64, 0x3,0x65,0x47, 0xf,0x4f,0x7d, 0x3,0x65,0x46, - 0x2,0x57,0x7e, 0x3,0x51,0x56, 0x1,0x71,0x33, 0x1,0x71,0x29, - 0x2,0x58,0x2c, 0x2,0x57,0x76, 0x1,0x71,0x2b, 0x2,0x58,0x24, - 0x1,0x71,0x32, 0x1,0x71,0x2d, 0x2,0x58,0x22, 0x2,0x5d,0x3b, - 0x2,0x58,0x28, 0x2,0x58,0x2e, 0x2,0x58,0x27, 0x2,0x57,0x74, - 0x2,0x58,0x25, 0x2,0x58,0x30, 0x2,0x58,0x32, 0x1,0x71,0x28, - 0x2,0x58,0x31, 0x1,0x71,0x2e, 0x1,0x71,0x34, 0x3,0x51,0x54, - 0x1,0x71,0x31, 0x3,0x51,0x58, 0x2,0x58,0x2b, 0x1,0x71,0x30, - 0x2,0x58,0x26, 0x3,0x51,0x4d, 0x2,0x57,0x78, 0x2,0x57,0x7d, - 0x3,0x51,0x50, 0x2,0x58,0x2a, 0x1,0x71,0x2f, 0x1,0x71,0x2c, - 0x1,0x71,0x27, 0x1,0x71,0x2a, 0x2,0x57,0x7c, 0x4,0x51,0x22, - 0x2,0x51,0x46, 0x2,0x57,0x77, 0x2,0x57,0x7a, 0x2,0x58,0x2d, - 0x2,0x58,0x21, 0x2,0x57,0x75, 0x2,0x5d,0x3a, 0x2,0x58,0x2f, - 0x2,0x57,0x79, 0x2,0x58,0x29, 0x3,0x4c,0x71, 0x3,0x51,0x55, - 0x2,0x5d,0x3d, 0x1,0x74,0x2e, 0x3,0x55,0x30, 0x3,0x55,0x2f, - 0x1,0x74,0x22, 0x3,0x55,0x35, 0x3,0x55,0x36, 0x1,0x74,0x26, - 0x2,0x5d,0x3f, 0x2,0x5d,0x45, 0x2,0x5d,0x43, 0x1,0x74,0x24, - 0x1,0x74,0x25, 0x1,0x74,0x2c, 0x2,0x5d,0x46, 0x2,0x5d,0x3e, - 0x1,0x74,0x27, 0x3,0x55,0x31, 0x2,0x5d,0x42, 0x2,0x5d,0x41, - 0x2,0x5d,0x47, 0x1,0x74,0x2d, 0x3,0x55,0x37, 0x1,0x74,0x28, - 0x1,0x74,0x2b, 0x2,0x5d,0x40, 0x1,0x74,0x2f, 0x1,0x74,0x29, - 0x1,0x74,0x30, 0x1,0x74,0x23, 0x2,0x5d,0x44, 0x3,0x5a,0x55, - 0x2,0x5d,0x3c, 0x3,0x51,0x59, 0x3,0x55,0x39, 0x2,0x62,0x25, - 0x3,0x65,0x48, 0x1,0x76,0x5d, 0x2,0x62,0x22, 0x2,0x62,0x24, - 0x3,0x58,0x28, 0x1,0x76,0x5b, 0x2,0x61,0x7e, 0x2,0x62,0x21, - 0x2,0x61,0x7a, 0x3,0x58,0x2a, 0x3,0x58,0x27, 0x2,0x58,0x23, - 0x2,0x61,0x7b, 0x1,0x76,0x5c, 0x2,0x61,0x77, 0x3,0x58,0x26, - 0x1,0x76,0x59, 0x2,0x62,0x26, 0x1,0x76,0x5a, 0x2,0x61,0x78, - 0x2,0x61,0x79, 0x2,0x61,0x7d, 0x1,0x76,0x5f, 0x3,0x58,0x29, - 0x1,0x76,0x5e, 0x4,0x5b,0x5e, 0x3,0x58,0x2b, 0x2,0x61,0x7c, - 0x1,0x78,0x45, 0x2,0x65,0x6a, 0x2,0x65,0x70, 0x1,0x78,0x46, - 0x2,0x65,0x67, 0x1,0x78,0x43, 0x1,0x78,0x40, 0x2,0x65,0x72, - 0x1,0x78,0x44, 0x3,0x5a,0x52, 0x1,0x78,0x41, 0x2,0x65,0x69, - 0x2,0x65,0x6c, 0x2,0x65,0x6d, 0x2,0x65,0x6e, 0x2,0x65,0x71, - 0x3,0x5a,0x54, 0x2,0x62,0x23, 0x2,0x65,0x68, 0x1,0x78,0x42, - 0x2,0x65,0x6f, 0x2,0x69,0x34, 0x2,0x65,0x6b, 0x3,0x5a,0x53, - 0x3,0x65,0x4a, 0x3,0x65,0x49, 0x2,0x69,0x2b, 0x1,0x79,0x75, - 0x2,0x69,0x2e, 0x1,0x79,0x76, 0x2,0x69,0x37, 0x2,0x69,0x2d, - 0x2,0x69,0x2a, 0x3,0x5c,0x51, 0x2,0x69,0x2c, 0x2,0x69,0x30, - 0x2,0x69,0x33, 0x2,0x69,0x32, 0x2,0x69,0x36, 0x2,0x69,0x29, - 0x3,0x5c,0x4f, 0x1,0x79,0x74, 0x2,0x69,0x31, 0x2,0x69,0x35, - 0x2,0x69,0x38, 0x2,0x69,0x2f, 0x2,0x6b,0x61, 0x2,0x6b,0x62, - 0x2,0x6b,0x66, 0x2,0x6b,0x67, 0x3,0x5e,0x3c, 0x2,0x6b,0x64, - 0x2,0x6b,0x65, 0x2,0x6b,0x63, 0x3,0x5e,0x3a, 0x1,0x7a,0x74, - 0x3,0x5e,0x3b, 0x1,0x7b,0x64, 0x2,0x6d,0x59, 0x3,0x60,0x36, - 0x3,0x5f,0x52, 0x2,0x6d,0x56, 0x2,0x6d,0x57, 0x2,0x6d,0x58, - 0x1,0x7b,0x65, 0x3,0x60,0x37, 0x2,0x6f,0x34, 0x2,0x6f,0x33, - 0x3,0x65,0x4b, 0x2,0x70,0x3d, 0x1,0x7c,0x60, 0x2,0x70,0x3b, - 0x2,0x70,0x3e, 0x2,0x70,0x3c, 0x2,0x71,0x25, 0x1,0x7d,0x24, - 0x1,0x7d,0x32, 0x2,0x71,0x71, 0x2,0x71,0x5b, 0x3,0x61,0x79, - 0x2,0x71,0x70, 0x2,0x72,0x3e, 0x2,0x72,0x3f, 0x1,0x45,0x56, - 0x4,0x21,0x50, 0x3,0x24,0x28, 0x3,0x24,0x26, 0x1,0x48,0x48, - 0x2,0x22,0x61, 0x3,0x24,0x27, 0x3,0x24,0x2b, 0x2,0x24,0x5e, - 0x3,0x26,0x62, 0x1,0x4b,0x22, 0x3,0x26,0x5f, 0x1,0x4b,0x25, - 0x3,0x26,0x5e, 0x2,0x24,0x5f, 0x3,0x26,0x63, 0x1,0x4b,0x23, - 0x1,0x4b,0x24, 0x3,0x26,0x60, 0xf,0x24,0x71, 0x3,0x29,0x77, - 0x2,0x27,0x78, 0x2,0x27,0x7a, 0x2,0x27,0x75, 0x2,0x27,0x72, - 0x2,0x27,0x74, 0x3,0x29,0x74, 0x3,0x29,0x70, 0x3,0x29,0x75, - 0x1,0x4e,0x65, 0x3,0x29,0x6f, 0x3,0x29,0x79, 0x3,0x29,0x76, - 0x1,0x4e,0x63, 0x3,0x29,0x72, 0x3,0x29,0x71, 0x2,0x27,0x76, - 0x1,0x4e,0x64, 0x2,0x27,0x73, 0x2,0x27,0x70, 0x1,0x4e,0x62, - 0x2,0x27,0x77, 0x4,0x27,0x29, 0x2,0x27,0x71, 0x1,0x4e,0x66, - 0x2,0x27,0x79, 0x4,0x27,0x2b, 0x2,0x2b,0x6f, 0x3,0x2d,0x5e, - 0x2,0x2b,0x73, 0x3,0x2d,0x5c, 0x3,0x2d,0x5a, 0x1,0x52,0x3a, - 0x3,0x2d,0x58, 0x4,0x2a,0x26, 0x3,0x2d,0x65, 0x3,0x2d,0x62, - 0x2,0x2b,0x76, 0x3,0x2d,0x5f, 0x1,0x52,0x32, 0x1,0x52,0x35, - 0x1,0x52,0x37, 0x1,0x52,0x39, 0x1,0x52,0x36, 0x2,0x2b,0x72, - 0x2,0x2b,0x71, 0x3,0x2d,0x64, 0x1,0x52,0x34, 0x2,0x2b,0x74, - 0x2,0x2b,0x75, 0x3,0x2d,0x63, 0x2,0x2b,0x6e, 0x1,0x52,0x38, - 0x3,0x2d,0x68, 0x1,0x52,0x33, 0x3,0x2d,0x5d, 0x2,0x2b,0x70, - 0x3,0x65,0x4d, 0x4,0x2a,0x28, 0x3,0x32,0x28, 0x2,0x30,0x5a, - 0x2,0x30,0x5b, 0x2,0x30,0x5c, 0x1,0x56,0x53, 0x4,0x2d,0x75, - 0x1,0x56,0x4f, 0x2,0x30,0x51, 0x3,0x32,0x2a, 0x2,0x30,0x59, - 0x2,0x30,0x5e, 0x1,0x56,0x54, 0x3,0x32,0x2b, 0x2,0x30,0x4f, - 0x2,0x30,0x55, 0x2,0x30,0x4e, 0x2,0x30,0x58, 0x3,0x32,0x31, - 0x3,0x32,0x2f, 0x2,0x30,0x54, 0x1,0x56,0x50, 0x1,0x56,0x52, - 0x2,0x30,0x5d, 0x3,0x32,0x29, 0x2,0x30,0x4d, 0x2,0x30,0x50, - 0x2,0x30,0x56, 0x3,0x32,0x2d, 0x2,0x30,0x57, 0x2,0x30,0x5f, - 0x2,0x30,0x53, 0x3,0x32,0x2c, 0x1,0x56,0x51, 0x3,0x65,0x4f, - 0x3,0x65,0x4e, 0x3,0x32,0x30, 0x1,0x5b,0x72, 0x2,0x36,0x71, - 0x3,0x37,0x30, 0x3,0x37,0x32, 0x2,0x36,0x73, 0x2,0x36,0x6f, - 0x3,0x37,0x2f, 0x2,0x36,0x7b, 0x2,0x36,0x6d, 0x2,0x36,0x7a, - 0x1,0x5b,0x6e, 0x2,0x36,0x6b, 0x2,0x3d,0x5f, 0x2,0x36,0x75, - 0x1,0x5b,0x71, 0x3,0x37,0x35, 0x2,0x36,0x76, 0x2,0x36,0x79, - 0x3,0x37,0x2e, 0x2,0x36,0x7d, 0x3,0x37,0x2c, 0x2,0x36,0x72, - 0x4,0x32,0x72, 0x2,0x36,0x77, 0x3,0x37,0x2d, 0x3,0x37,0x31, - 0x1,0x5b,0x6f, 0x1,0x5b,0x70, 0x2,0x36,0x7c, 0x2,0x36,0x70, - 0x2,0x36,0x6c, 0x2,0x36,0x7e, 0x3,0x37,0x33, 0x2,0x36,0x74, - 0x3,0x65,0x50, 0x3,0x65,0x51, 0x2,0x36,0x78, 0x2,0x36,0x6e, - 0x1,0x60,0x4e, 0x1,0x60,0x4f, 0x2,0x3d,0x69, 0x1,0x60,0x55, - 0x3,0x3c,0x74, 0x2,0x3d,0x5d, 0x2,0x3d,0x66, 0x2,0x3d,0x5c, - 0x1,0x60,0x52, 0x2,0x3d,0x64, 0x2,0x3d,0x62, 0x3,0x3c,0x7d, - 0x2,0x3d,0x63, 0x1,0x60,0x50, 0x3,0x3c,0x7c, 0x2,0x3d,0x67, - 0xf,0x3c,0x7e, 0x3,0x3c,0x6f, 0x3,0x3c,0x7a, 0x3,0x3c,0x72, - 0x3,0x3d,0x21, 0x2,0x3d,0x60, 0x2,0x3d,0x5e, 0x1,0x60,0x51, - 0x2,0x3d,0x61, 0x2,0x3d,0x65, 0x3,0x3c,0x7b, 0x3,0x3c,0x79, - 0x3,0x3c,0x71, 0x1,0x60,0x53, 0x3,0x3c,0x73, 0x3,0x3c,0x77, - 0x3,0x65,0x53, 0x2,0x3d,0x68, 0x3,0x65,0x54, 0x3,0x65,0x55, - 0x3,0x65,0x52, 0x2,0x44,0x56, 0x2,0x44,0x5d, 0x2,0x44,0x5f, - 0x2,0x44,0x65, 0x3,0x42,0x57, 0x1,0x65,0x22, 0x2,0x44,0x51, - 0x3,0x42,0x4c, 0x1,0x64,0x78, 0x3,0x42,0x4e, 0x2,0x44,0x60, - 0x1,0x64,0x7d, 0x2,0x44,0x66, 0x1,0x64,0x74, 0x3,0x42,0x51, - 0x2,0x44,0x63, 0x3,0x42,0x58, 0x2,0x44,0x53, 0x2,0x44,0x64, - 0x2,0x44,0x52, 0x1,0x65,0x24, 0x3,0x42,0x52, 0x2,0x44,0x5e, - 0x1,0x64,0x75, 0x2,0x44,0x67, 0x3,0x48,0x3c, 0x1,0x64,0x7a, - 0x2,0x44,0x57, 0x1,0x65,0x21, 0x2,0x44,0x62, 0x2,0x44,0x55, - 0x2,0x44,0x5c, 0x2,0x44,0x58, 0x2,0x44,0x54, 0x1,0x64,0x77, - 0x1,0x64,0x7e, 0x1,0x64,0x7c, 0x1,0x64,0x79, 0x1,0x65,0x23, - 0x1,0x64,0x76, 0x2,0x44,0x5b, 0x3,0x42,0x4f, 0x1,0x64,0x7b, - 0x3,0x42,0x59, 0x1,0x60,0x54, 0x3,0x42,0x49, 0x2,0x44,0x61, - 0x3,0x65,0x59, 0x2,0x44,0x59, 0x3,0x42,0x53, 0x3,0x65,0x57, - 0x3,0x65,0x58, 0x3,0x65,0x56, 0x2,0x44,0x5a, 0x4,0x44,0x57, - 0x4,0x44,0x5b, 0x2,0x4b,0x67, 0x3,0x47,0x6f, 0x1,0x69,0x5b, - 0x3,0x47,0x6e, 0x3,0x47,0x6c, 0x2,0x4b,0x63, 0x2,0x4b,0x69, - 0x2,0x4b,0x65, 0x3,0x47,0x70, 0x1,0x69,0x5d, 0x2,0x4b,0x64, - 0x2,0x4b,0x68, 0x2,0x4b,0x60, 0x3,0x47,0x72, 0x2,0x4b,0x62, - 0x1,0x69,0x5c, 0x3,0x47,0x6a, 0x3,0x47,0x6d, 0x3,0x47,0x6b, - 0x3,0x47,0x68, 0x2,0x4b,0x66, 0x2,0x4b,0x61, 0x3,0x47,0x67, - 0x1,0x69,0x5e, 0x3,0x65,0x5b, 0x1,0x69,0x59, 0xf,0x49,0x4b, - 0x3,0x65,0x5a, 0x2,0x4b,0x6a, 0xf,0x49,0x5f, 0x1,0x69,0x5a, - 0x2,0x51,0x6f, 0x2,0x51,0x6c, 0x2,0x51,0x78, 0x2,0x51,0x72, - 0x2,0x51,0x74, 0x1,0x6d,0x5e, 0x2,0x51,0x6e, 0x2,0x51,0x76, - 0x3,0x4d,0x2a, 0x3,0x4d,0x24, 0x2,0x51,0x75, 0x2,0x51,0x73, - 0x3,0x4d,0x29, 0x2,0x51,0x79, 0x1,0x6d,0x61, 0x2,0x51,0x70, - 0x2,0x51,0x77, 0x3,0x4d,0x28, 0x1,0x6d,0x5f, 0x3,0x4d,0x25, - 0x3,0x4d,0x22, 0x2,0x51,0x6b, 0x2,0x51,0x6d, 0x1,0x6d,0x60, - 0x2,0x51,0x6a, 0x2,0x51,0x7a, 0x3,0x65,0x5c, 0x2,0x51,0x71, - 0x3,0x51,0x62, 0x3,0x51,0x5a, 0x2,0x58,0x36, 0x1,0x71,0x3b, - 0x3,0x51,0x60, 0x3,0x51,0x5c, 0x2,0x58,0x41, 0x2,0x58,0x3f, - 0x1,0x71,0x35, 0x2,0x58,0x35, 0x2,0x58,0x38, 0x2,0x58,0x39, - 0x2,0x58,0x34, 0x1,0x71,0x3f, 0x1,0x71,0x40, 0x2,0x58,0x33, - 0x2,0x58,0x42, 0x2,0x58,0x3d, 0x1,0x71,0x39, 0x1,0x71,0x36, - 0x2,0x58,0x3c, 0x2,0x58,0x3a, 0x3,0x51,0x63, 0x4,0x51,0x23, - 0x1,0x71,0x3c, 0x2,0x58,0x3e, 0x1,0x71,0x37, 0x3,0x51,0x5e, - 0x1,0x71,0x38, 0x3,0x51,0x66, 0x2,0x58,0x3b, 0x1,0x71,0x3a, - 0x2,0x58,0x37, 0x7,0x2f,0x4f, 0x2,0x58,0x40, 0x1,0x71,0x3d, - 0x2,0x58,0x43, 0x2,0x58,0x44, 0x1,0x71,0x3e, 0x3,0x65,0x5d, - 0x3,0x65,0x5e, 0x1,0x74,0x32, 0x1,0x74,0x39, 0x2,0x5d,0x48, - 0x2,0x5d,0x4e, 0x3,0x55,0x3c, 0x2,0x5d,0x4c, 0x1,0x74,0x35, - 0x1,0x74,0x34, 0x1,0x74,0x31, 0x2,0x5d,0x4a, 0x3,0x55,0x3e, - 0x3,0x55,0x43, 0x3,0x55,0x40, 0x1,0x74,0x37, 0x1,0x74,0x36, - 0x1,0x74,0x33, 0x3,0x55,0x41, 0x2,0x5d,0x4d, 0x2,0x5d,0x49, - 0x2,0x5d,0x4b, 0x3,0x55,0x42, 0x1,0x74,0x38, 0xf,0x5a,0x73, - 0x1,0x76,0x63, 0x2,0x62,0x29, 0x3,0x58,0x2d, 0x1,0x76,0x60, - 0x1,0x76,0x61, 0x2,0x62,0x2b, 0x1,0x76,0x62, 0x2,0x62,0x28, - 0x3,0x58,0x2e, 0x2,0x62,0x27, 0x2,0x65,0x76, 0x2,0x62,0x2a, - 0x3,0x5a,0x56, 0x2,0x65,0x77, 0x1,0x78,0x47, 0x2,0x65,0x75, - 0x3,0x5a,0x57, 0x4,0x5f,0x7e, 0x2,0x65,0x74, 0x3,0x5c,0x59, - 0x2,0x65,0x73, 0x1,0x78,0x48, 0x3,0x65,0x5f, 0x3,0x5c,0x56, - 0x1,0x79,0x77, 0x3,0x5c,0x58, 0x3,0x5c,0x55, 0x2,0x69,0x39, - 0x2,0x69,0x3a, 0x3,0x5a,0x58, 0x3,0x5c,0x53, 0x3,0x5c,0x57, - 0x3,0x65,0x61, 0x2,0x6b,0x6a, 0x2,0x6b,0x69, 0x1,0x7a,0x75, - 0x3,0x5f,0x53, 0x2,0x6b,0x68, 0x2,0x6d,0x5a, 0x2,0x6d,0x5b, - 0x3,0x5f,0x54, 0x3,0x60,0x39, 0x2,0x6f,0x35, 0x2,0x70,0x3f, - 0x3,0x61,0x43, 0x3,0x61,0x42, 0x2,0x71,0x26, 0x2,0x72,0x2c, - 0x1,0x7d,0x46, 0x2,0x72,0x40, 0x1,0x45,0x57, 0x4,0x21,0x51, - 0x1,0x4e,0x67, 0x1,0x4e,0x68, 0x3,0x2d,0x69, 0x4,0x2a,0x2a, - 0x1,0x52,0x3b, 0x3,0x3d,0x22, 0x4,0x4a,0x6c, 0x1,0x74,0x3a, - 0x1,0x45,0x58, 0x1,0x4e,0x69, 0x1,0x56,0x55, 0x1,0x65,0x25, - 0x1,0x45,0x59, 0x3,0x2d,0x6b, 0x1,0x5b,0x73, 0x1,0x69,0x5f, - 0x2,0x21,0x42, 0x3,0x29,0x7c, 0x2,0x2b,0x77, 0x2,0x30,0x60, - 0x4,0x3e,0x4c, 0x2,0x4b,0x6b, 0x4,0x4a,0x6d, 0x1,0x74,0x3b, - 0x1,0x45,0x5a, 0x1,0x4e,0x6a, 0x2,0x2b,0x78, 0x2,0x2b,0x79, - 0x2,0x3d,0x6a, 0x1,0x60,0x56, 0x3,0x42,0x5d, 0x2,0x44,0x68, - 0x3,0x42,0x5c, 0x3,0x42,0x5b, 0x1,0x65,0x26, 0x2,0x4b,0x6c, - 0x4,0x44,0x5e, 0x3,0x4d,0x2e, 0x1,0x6d,0x62, 0x3,0x4d,0x2d, - 0x1,0x78,0x49, 0x1,0x45,0x5b, 0x2,0x3d,0x6b, 0x1,0x45,0x5c, - 0x1,0x48,0x4a, 0x2,0x22,0x62, 0x1,0x48,0x49, 0x1,0x4b,0x28, - 0x1,0x4b,0x27, 0x1,0x4b,0x26, 0x2,0x24,0x60, 0x3,0x26,0x64, - 0x3,0x2a,0x21, 0x3,0x2a,0x22, 0x1,0x4e,0x6b, 0x3,0x2a,0x23, - 0x1,0x4e,0x6c, 0x2,0x27,0x7b, 0x4,0x27,0x31, 0x2,0x2b,0x7a, - 0x3,0x2d,0x6d, 0x2,0x2b,0x7d, 0x1,0x52,0x3d, 0x2,0x2b,0x7b, - 0x4,0x2a,0x2f, 0x1,0x52,0x3c, 0x2,0x2b,0x7c, 0x1,0x52,0x3e, - 0x2,0x30,0x63, 0x2,0x30,0x62, 0x2,0x30,0x61, 0x1,0x56,0x56, - 0x3,0x32,0x36, 0x2,0x37,0x22, 0x2,0x37,0x23, 0x1,0x5b,0x74, - 0x2,0x37,0x21, 0x2,0x37,0x24, 0x1,0x60,0x58, 0x1,0x5b,0x75, - 0x3,0x3d,0x24, 0x3,0x3d,0x23, 0x1,0x60,0x57, 0x2,0x3d,0x6f, - 0x2,0x3d,0x6e, 0x3,0x3d,0x25, 0x2,0x3d,0x6c, 0x2,0x3d,0x6d, - 0x2,0x3d,0x70, 0x2,0x44,0x6a, 0x2,0x44,0x69, 0x2,0x44,0x6d, - 0x4,0x3e,0x4f, 0x2,0x44,0x6c, 0x2,0x44,0x6b, 0x1,0x69,0x60, - 0x2,0x4b,0x6f, 0x3,0x47,0x75, 0x2,0x4b,0x6e, 0x1,0x69,0x61, - 0x2,0x4b,0x6d, 0x2,0x51,0x7b, 0x3,0x4d,0x2f, 0x2,0x51,0x7c, - 0x1,0x6d,0x63, 0x4,0x51,0x2d, 0x2,0x58,0x45, 0x2,0x58,0x46, - 0x5,0x4e,0x37, 0x2,0x65,0x7c, 0x1,0x78,0x4a, 0x2,0x65,0x7b, - 0x2,0x65,0x7a, 0x2,0x65,0x78, 0x2,0x65,0x79, 0x1,0x7a,0x76, - 0x2,0x69,0x3b, 0x2,0x6d,0x5c, 0x2,0x71,0x27, 0x3,0x61,0x7b, - 0x1,0x45,0x5d, 0x4,0x21,0x38, 0x2,0x21,0x64, 0x1,0x46,0x67, - 0x2,0x21,0x65, 0x3,0x24,0x2c, 0x3,0x24,0x2d, 0x4,0x23,0x27, - 0x2,0x22,0x63, 0x2,0x22,0x64, 0x3,0x26,0x6b, 0x3,0x26,0x69, - 0x2,0x24,0x66, 0x3,0x26,0x66, 0x3,0x26,0x67, 0x2,0x24,0x62, - 0x3,0x26,0x6a, 0x2,0x24,0x61, 0x1,0x4e,0x6d, 0x2,0x24,0x65, - 0x1,0x4b,0x2a, 0x2,0x24,0x63, 0x1,0x4b,0x29, 0x2,0x24,0x67, - 0x2,0x24,0x64, 0x3,0x26,0x68, 0x2,0x28,0x21, 0x2,0x2b,0x7e, - 0x2,0x27,0x7d, 0x2,0x28,0x26, 0x3,0x2a,0x26, 0x1,0x4e,0x6e, - 0x3,0x2a,0x2a, 0x1,0x4e,0x71, 0x2,0x28,0x27, 0x2,0x28,0x23, - 0x3,0x2a,0x27, 0x2,0x28,0x24, 0x4,0x27,0x36, 0x2,0x27,0x7c, - 0x1,0x4e,0x70, 0x2,0x27,0x7e, 0x1,0x4e,0x6f, 0x2,0x28,0x25, - 0x3,0x2a,0x28, 0x2,0x28,0x22, 0x6,0x2c,0x7e, 0x2,0x2c,0x24, - 0x1,0x52,0x40, 0x1,0x52,0x41, 0x3,0x2d,0x75, 0x2,0x2c,0x27, - 0x2,0x2c,0x21, 0x3,0x2d,0x74, 0x2,0x2c,0x26, 0x3,0x2d,0x70, - 0x2,0x2c,0x22, 0x1,0x52,0x3f, 0x2,0x2c,0x25, 0x2,0x2c,0x23, - 0x3,0x2d,0x73, 0x3,0x2d,0x71, 0x2,0x30,0x69, 0x2,0x30,0x66, - 0x3,0x32,0x38, 0x2,0x30,0x68, 0x1,0x56,0x5b, 0x1,0x56,0x5a, - 0x1,0x56,0x58, 0x2,0x30,0x65, 0x2,0x30,0x6a, 0x1,0x56,0x57, - 0x1,0x56,0x59, 0x2,0x30,0x67, 0x2,0x37,0x2c, 0x2,0x30,0x64, - 0x2,0x30,0x6b, 0x3,0x32,0x39, 0x4,0x33,0x23, 0x4,0x33,0x2a, - 0x3,0x3d,0x26, 0x2,0x37,0x27, 0x2,0x37,0x2b, 0x5,0x33,0x54, - 0x2,0x37,0x2a, 0x2,0x3d,0x72, 0x2,0x3d,0x7d, 0x4,0x33,0x2d, - 0x3,0x37,0x3b, 0x2,0x37,0x2d, 0x3,0x37,0x3a, 0x2,0x37,0x28, - 0x2,0x3d,0x71, 0x1,0x5b,0x79, 0x4,0x33,0x22, 0x4,0x33,0x2c, - 0x1,0x5b,0x78, 0x2,0x37,0x26, 0x2,0x37,0x29, 0x1,0x5b,0x7a, - 0x3,0x37,0x39, 0x1,0x5b,0x77, 0x1,0x5b,0x76, 0x2,0x37,0x25, - 0x2,0x37,0x2e, 0x2,0x3d,0x74, 0x2,0x3d,0x7b, 0x3,0x3d,0x27, - 0x1,0x60,0x5a, 0x2,0x3d,0x7a, 0x2,0x3d,0x77, 0x3,0x3d,0x2e, - 0x1,0x60,0x5c, 0x3,0x3d,0x29, 0x3,0x3d,0x2b, 0x3,0x3d,0x2a, - 0x2,0x3d,0x79, 0x3,0x42,0x61, 0x3,0x3d,0x2d, 0x2,0x3d,0x73, - 0x2,0x3d,0x75, 0x2,0x3d,0x78, 0x2,0x3d,0x76, 0x1,0x60,0x5b, - 0x2,0x3d,0x7c, 0x1,0x60,0x59, 0x1,0x65,0x27, 0x3,0x3d,0x28, - 0x2,0x44,0x71, 0x2,0x44,0x70, 0x2,0x44,0x6e, 0x6,0x54,0x7c, - 0x1,0x65,0x2a, 0x1,0x65,0x29, 0x2,0x44,0x72, 0x3,0x42,0x5f, - 0x2,0x44,0x6f, 0x2,0x4b,0x70, 0x1,0x69,0x62, 0x1,0x65,0x28, - 0x3,0x42,0x62, 0x3,0x65,0x62, 0x3,0x65,0x63, 0x2,0x44,0x74, - 0x2,0x44,0x73, 0x3,0x4d,0x30, 0x2,0x4b,0x73, 0x2,0x4b,0x71, - 0x1,0x6d,0x64, 0x3,0x47,0x79, 0x1,0x69,0x63, 0x2,0x4b,0x72, - 0x2,0x51,0x7e, 0x3,0x47,0x78, 0x3,0x47,0x7a, 0x3,0x47,0x77, - 0x4,0x4a,0x77, 0x1,0x6d,0x65, 0x2,0x51,0x7d, 0x2,0x52,0x28, - 0x2,0x52,0x27, 0x2,0x52,0x25, 0x4,0x4a,0x75, 0x2,0x52,0x24, - 0x2,0x52,0x21, 0x2,0x52,0x22, 0x2,0x52,0x23, 0x2,0x52,0x26, - 0x2,0x52,0x29, 0x2,0x58,0x4b, 0x2,0x58,0x48, 0x2,0x58,0x49, - 0x1,0x71,0x41, 0x2,0x58,0x47, 0x2,0x58,0x4d, 0x2,0x58,0x4c, - 0x2,0x58,0x4a, 0x2,0x5d,0x50, 0x2,0x5d,0x51, 0x1,0x74,0x3c, - 0x3,0x55,0x49, 0x1,0x74,0x3d, 0x2,0x5d,0x4f, 0x4,0x56,0x6c, - 0x1,0x76,0x65, 0x2,0x62,0x2c, 0x1,0x76,0x64, 0x1,0x78,0x4b, - 0x4,0x60,0x25, 0x1,0x78,0x4c, 0x1,0x79,0x78, 0x2,0x69,0x3d, - 0x2,0x69,0x3c, 0x2,0x6b,0x6b, 0x2,0x6d,0x5d, 0x1,0x7b,0x66, - 0x2,0x6f,0x37, 0x2,0x6f,0x36, 0x2,0x6f,0x38, 0x1,0x46,0x68, - 0x2,0x2c,0x28, 0x1,0x56,0x5c, 0x1,0x5b,0x7b, 0x2,0x37,0x2f, - 0x1,0x46,0x69, 0x2,0x21,0x66, 0x1,0x45,0x5e, 0x3,0x22,0x5a, - 0x3,0x21,0x6b, 0x2,0x22,0x65, 0x3,0x24,0x2f, 0x4,0x23,0x2a, - 0xf,0x22,0x66, 0x2,0x24,0x6c, 0x2,0x24,0x6a, 0x2,0x24,0x6b, - 0x2,0x24,0x68, 0x1,0x4b,0x2b, 0x2,0x24,0x69, 0x3,0x26,0x6e, - 0x3,0x2a,0x33, 0x2,0x28,0x2f, 0x3,0x2a,0x2d, 0x1,0x4e,0x74, - 0x2,0x28,0x2d, 0x2,0x28,0x29, 0x2,0x28,0x2c, 0x3,0x2a,0x2c, - 0x2,0x28,0x28, 0x1,0x4e,0x76, 0x2,0x28,0x2b, 0x3,0x2a,0x2b, - 0x1,0x4e,0x73, 0x1,0x4e,0x72, 0x3,0x2a,0x32, 0x1,0x4e,0x75, - 0x2,0x28,0x2e, 0x2,0x28,0x2a, 0x3,0x2a,0x2f, 0x1,0x52,0x45, - 0x1,0x52,0x48, 0x2,0x2c,0x30, 0x2,0x2c,0x2f, 0x2,0x2c,0x2e, - 0x1,0x52,0x42, 0x2,0x2c,0x37, 0x2,0x2c,0x2d, 0x4,0x2e,0x2a, - 0x1,0x52,0x44, 0x2,0x30,0x70, 0x3,0x2d,0x78, 0x2,0x2c,0x34, - 0x2,0x2c,0x32, 0x1,0x52,0x47, 0x3,0x2d,0x7b, 0x2,0x2c,0x2a, - 0x2,0x2c,0x35, 0x3,0x2d,0x77, 0x2,0x2c,0x2c, 0x2,0x2c,0x36, - 0x2,0x2c,0x33, 0x2,0x2c,0x2b, 0x3,0x2d,0x7a, 0x1,0x52,0x43, - 0x2,0x2c,0x38, 0x2,0x2c,0x29, 0x1,0x52,0x46, 0x3,0x2d,0x7e, - 0x3,0x2d,0x79, 0x3,0x2d,0x7c, 0x2,0x30,0x75, 0x2,0x30,0x6c, - 0x2,0x30,0x77, 0x3,0x32,0x3e, 0x2,0x30,0x6f, 0x2,0x30,0x7a, - 0x2,0x30,0x7b, 0x2,0x30,0x6d, 0x2,0x30,0x79, 0x2,0x30,0x76, - 0x2,0x30,0x74, 0x2,0x30,0x78, 0x1,0x56,0x62, 0x3,0x32,0x40, - 0x1,0x56,0x60, 0x3,0x32,0x47, 0x3,0x32,0x3c, 0x2,0x30,0x72, - 0x3,0x32,0x46, 0x2,0x30,0x6e, 0x3,0x32,0x41, 0x2,0x30,0x71, - 0x2,0x30,0x7c, 0x2,0x30,0x73, 0x1,0x56,0x61, 0x2,0x2c,0x31, - 0x3,0x32,0x3d, 0x1,0x56,0x5d, 0x1,0x56,0x5f, 0x3,0x65,0x64, - 0x3,0x37,0x3d, 0x2,0x37,0x3d, 0x2,0x37,0x32, 0x2,0x37,0x30, - 0x3,0x3d,0x38, 0x2,0x37,0x31, 0x3,0x32,0x3f, 0x2,0x37,0x38, - 0x3,0x37,0x40, 0x2,0x37,0x39, 0x2,0x37,0x35, 0x1,0x5c,0x22, - 0x2,0x37,0x3a, 0x2,0x37,0x37, 0x2,0x37,0x34, 0x3,0x37,0x3c, - 0x1,0x5b,0x7e, 0x2,0x37,0x33, 0x1,0x5b,0x7c, 0x1,0x5c,0x21, - 0x2,0x37,0x36, 0x2,0x37,0x3e, 0x1,0x56,0x5e, 0x1,0x5b,0x7d, - 0x2,0x37,0x3c, 0x2,0x37,0x3b, 0x1,0x5c,0x23, 0x3,0x65,0x65, - 0xf,0x36,0x57, 0x3,0x3d,0x36, 0x3,0x3d,0x3a, 0x2,0x3e,0x24, - 0x3,0x3d,0x2f, 0x3,0x3d,0x3b, 0x3,0x3d,0x32, 0x2,0x3e,0x25, - 0x1,0x60,0x66, 0x3,0x3d,0x39, 0x2,0x3e,0x2b, 0x3,0x42,0x6d, - 0x3,0x3d,0x35, 0x2,0x3e,0x2d, 0x2,0x3e,0x26, 0x1,0x60,0x60, - 0x2,0x3e,0x2a, 0x2,0x3e,0x29, 0x1,0x60,0x61, 0x1,0x60,0x67, - 0x3,0x42,0x64, 0x1,0x60,0x68, 0x2,0x3e,0x2c, 0x1,0x60,0x5e, - 0x2,0x3e,0x23, 0x2,0x3e,0x21, 0x2,0x3e,0x27, 0x2,0x3d,0x7e, - 0x1,0x60,0x65, 0x2,0x3e,0x22, 0x2,0x3e,0x28, 0x2,0x3e,0x2e, - 0x1,0x60,0x5f, 0x1,0x60,0x64, 0x1,0x60,0x62, 0x1,0x60,0x63, - 0x3,0x3d,0x33, 0x3,0x3d,0x3c, 0x1,0x60,0x5d, 0x3,0x65,0x66, - 0x3,0x3d,0x37, 0x3,0x42,0x68, 0x3,0x42,0x75, 0x1,0x65,0x31, - 0x2,0x44,0x7b, 0x1,0x65,0x30, 0x2,0x45,0x21, 0x3,0x42,0x6f, - 0x2,0x44,0x75, 0x3,0x42,0x74, 0x2,0x45,0x22, 0x3,0x42,0x6e, - 0x3,0x42,0x66, 0x3,0x42,0x71, 0x2,0x44,0x76, 0x2,0x44,0x77, - 0x3,0x42,0x73, 0x2,0x45,0x23, 0x2,0x44,0x7e, 0x2,0x44,0x7c, - 0x2,0x44,0x7d, 0x2,0x44,0x79, 0x2,0x44,0x78, 0x3,0x42,0x67, - 0x2,0x45,0x24, 0x1,0x65,0x2d, 0x3,0x42,0x6b, 0x2,0x44,0x7a, - 0x3,0x42,0x70, 0x1,0x65,0x32, 0x1,0x65,0x2c, 0x1,0x65,0x33, - 0x1,0x65,0x34, 0x3,0x42,0x6a, 0x1,0x65,0x2f, 0x1,0x65,0x2e, - 0x3,0x48,0x25, 0x3,0x47,0x7e, 0x2,0x4b,0x74, 0x1,0x69,0x65, - 0x1,0x69,0x64, 0x3,0x47,0x7c, 0x3,0x47,0x7d, 0x2,0x4b,0x79, - 0x3,0x48,0x22, 0x1,0x6d,0x66, 0x1,0x69,0x66, 0x3,0x48,0x21, - 0x3,0x47,0x7b, 0x1,0x69,0x68, 0x2,0x4b,0x7a, 0x1,0x65,0x2b, - 0x1,0x69,0x67, 0x2,0x4b,0x76, 0x2,0x4b,0x78, 0x2,0x4b,0x75, - 0x3,0x48,0x27, 0x2,0x4b,0x77, 0x3,0x48,0x23, 0xf,0x49,0x76, - 0x2,0x52,0x33, 0x3,0x4d,0x31, 0x3,0x4d,0x3b, 0x2,0x52,0x32, - 0x2,0x52,0x2f, 0x1,0x6d,0x69, 0x2,0x58,0x4e, 0x1,0x6d,0x6a, - 0x2,0x52,0x2e, 0x3,0x4d,0x39, 0x1,0x6d,0x68, 0x3,0x4d,0x36, - 0x2,0x52,0x30, 0x2,0x52,0x2d, 0x2,0x52,0x2a, 0x2,0x52,0x31, - 0x2,0x52,0x2b, 0x2,0x52,0x2c, 0x1,0x6d,0x67, 0x3,0x4d,0x35, - 0x3,0x65,0x68, 0x4,0x51,0x39, 0x2,0x5d,0x55, 0x4,0x51,0x3a, - 0x2,0x58,0x52, 0x3,0x4d,0x3a, 0x2,0x58,0x51, 0x2,0x58,0x53, - 0x3,0x51,0x6a, 0x2,0x5d,0x52, 0x1,0x71,0x44, 0x4,0x51,0x38, - 0x2,0x58,0x4f, 0x3,0x51,0x67, 0x1,0x71,0x42, 0x3,0x51,0x6c, - 0x1,0x71,0x46, 0x1,0x71,0x45, 0x2,0x58,0x50, 0x2,0x58,0x54, - 0x3,0x51,0x6b, 0x1,0x71,0x43, 0x3,0x65,0x67, 0x2,0x5d,0x59, - 0x1,0x74,0x40, 0x1,0x76,0x66, 0x1,0x74,0x41, 0x1,0x74,0x3e, - 0x2,0x5d,0x56, 0x2,0x5d,0x54, 0x3,0x55,0x4f, 0x2,0x5d,0x57, - 0x3,0x55,0x4b, 0x2,0x5d,0x5a, 0x1,0x74,0x3f, 0x2,0x5d,0x58, - 0x2,0x5d,0x53, 0x3,0x55,0x4d, 0x3,0x65,0x69, 0x2,0x62,0x2f, - 0x2,0x62,0x32, 0x2,0x66,0x21, 0x2,0x62,0x2d, 0x3,0x58,0x2f, - 0x2,0x69,0x3e, 0x2,0x62,0x33, 0x3,0x58,0x30, 0x1,0x78,0x4d, - 0x2,0x62,0x31, 0x1,0x76,0x67, 0x2,0x62,0x2e, 0x2,0x62,0x30, - 0x2,0x62,0x34, 0x2,0x66,0x22, 0x3,0x5a,0x5a, 0x2,0x65,0x7e, - 0x4,0x60,0x27, 0x3,0x5a,0x5c, 0x3,0x5a,0x5d, 0x3,0x5a,0x5b, - 0x1,0x78,0x4e, 0x2,0x65,0x7d, 0x3,0x5c,0x5e, 0x3,0x5c,0x5c, - 0x3,0x5c,0x5f, 0x1,0x79,0x79, 0x3,0x5c,0x5d, 0x3,0x5c,0x60, - 0x3,0x5e,0x3d, 0x1,0x7a,0x78, 0x2,0x6d,0x5f, 0x1,0x7a,0x77, - 0x2,0x6d,0x61, 0x2,0x6d,0x5e, 0x2,0x6d,0x60, 0x1,0x7c,0x3c, - 0x2,0x70,0x40, 0x1,0x46,0x6a, 0x2,0x28,0x30, 0x2,0x30,0x7d, - 0x2,0x30,0x7e, 0x1,0x5c,0x24, 0x2,0x45,0x25, 0x1,0x71,0x47, - 0x1,0x78,0x4f, 0x1,0x7b,0x67, 0x2,0x70,0x41, 0x1,0x46,0x6b, - 0x2,0x28,0x31, 0x1,0x23,0x22, 0x4,0x2a,0x3c, 0x3,0x2e,0x22, - 0x2,0x2c,0x39, 0x3,0x2e,0x21, 0x2,0x2c,0x3a, 0x3,0x2e,0x24, - 0x3,0x32,0x48, 0x2,0x31,0x21, 0x2,0x31,0x22, 0x1,0x5c,0x25, - 0x1,0x5c,0x26, 0xf,0x36,0x67, 0x3,0x3d,0x3d, 0x4,0x39,0x25, - 0x2,0x3e,0x2f, 0x2,0x45,0x28, 0x2,0x45,0x27, 0x2,0x45,0x26, - 0x2,0x4b,0x7b, 0x3,0x42,0x77, 0x2,0x4b,0x7c, 0x2,0x4b,0x7d, - 0x1,0x69,0x69, 0x3,0x48,0x28, 0x2,0x52,0x35, 0x2,0x52,0x34, - 0x3,0x4d,0x3d, 0x3,0x51,0x6d, 0x2,0x58,0x55, 0x1,0x71,0x48, - 0x1,0x71,0x49, 0x3,0x51,0x6e, 0x2,0x5d,0x5e, 0x2,0x5d,0x5b, - 0x2,0x5d,0x5c, 0x2,0x5d,0x5d, 0x2,0x62,0x36, 0x2,0x62,0x35, - 0x1,0x76,0x68, 0x2,0x66,0x23, 0x2,0x6b,0x6c, 0x1,0x46,0x6c, - 0x1,0x52,0x49, 0x3,0x37,0x44, 0x1,0x5c,0x27, 0x2,0x45,0x29, - 0x3,0x42,0x78, 0x1,0x46,0x6d, 0x4,0x2a,0x40, 0x2,0x31,0x23, - 0x1,0x5c,0x28, 0x3,0x37,0x45, 0x3,0x3d,0x3e, 0x1,0x60,0x69, - 0x1,0x60,0x6a, 0x5,0x47,0x49, 0x1,0x46,0x6e, 0x1,0x46,0x6f, - 0x2,0x22,0x66, 0x1,0x4b,0x2d, 0x1,0x4b,0x2c, 0x1,0x52,0x4a, - 0x2,0x2c,0x3b, 0x2,0x3e,0x30, 0x1,0x46,0x70, 0x1,0x46,0x71, - 0x1,0x46,0x72, 0x1,0x46,0x73, 0x4,0x23,0x2b, 0x1,0x4b,0x2e, - 0x1,0x4b,0x2f, 0x2,0x24,0x6e, 0x2,0x24,0x6d, 0x3,0x2a,0x37, - 0x1,0x4e,0x77, 0x2,0x28,0x34, 0x2,0x28,0x32, 0x2,0x28,0x33, - 0x3,0x2a,0x38, 0x3,0x2a,0x35, 0x4,0x27,0x40, 0x3,0x2a,0x36, - 0x3,0x2e,0x27, 0x2,0x2c,0x3c, 0x2,0x2c,0x3d, 0x3,0x2e,0x25, - 0x3,0x2e,0x28, 0x1,0x52,0x4e, 0x1,0x52,0x4c, 0x3,0x2e,0x2a, - 0x1,0x52,0x4d, 0x1,0x52,0x4b, 0x3,0x2e,0x26, 0xf,0x2b,0x7a, - 0xf,0x2c,0x4a, 0x1,0x56,0x63, 0x3,0x32,0x4e, 0x3,0x32,0x4d, - 0x3,0x32,0x50, 0x3,0x32,0x4f, 0x1,0x56,0x67, 0x1,0x56,0x66, - 0x2,0x31,0x24, 0x1,0x56,0x65, 0x1,0x56,0x64, 0x3,0x32,0x51, - 0x2,0x31,0x25, 0x3,0x37,0x46, 0x1,0x5c,0x2b, 0x2,0x37,0x40, - 0x2,0x37,0x3f, 0x1,0x5c,0x29, 0x1,0x5c,0x2a, 0x3,0x37,0x49, - 0x3,0x37,0x47, 0x1,0x60,0x6c, 0x1,0x60,0x6b, 0x2,0x3e,0x32, - 0x3,0x3d,0x43, 0x3,0x3d,0x42, 0x2,0x3e,0x31, 0x1,0x5c,0x2c, - 0x3,0x3d,0x44, 0x4,0x39,0x2c, 0x4,0x3e,0x6b, 0x1,0x65,0x35, - 0x2,0x45,0x2b, 0x1,0x65,0x36, 0x2,0x45,0x2a, 0x3,0x42,0x7b, - 0x4,0x44,0x7c, 0x4,0x44,0x7b, 0x2,0x4b,0x7e, 0x2,0x52,0x36, - 0x1,0x6d,0x6b, 0x2,0x58,0x56, 0x3,0x51,0x70, 0x3,0x55,0x52, - 0x2,0x5d,0x5f, 0x4,0x5b,0x74, 0x1,0x78,0x51, 0x1,0x78,0x50, - 0x4,0x63,0x68, 0x3,0x5c,0x62, 0x1,0x7b,0x68, 0x1,0x46,0x74, - 0x2,0x28,0x35, 0x3,0x3d,0x45, 0x1,0x5c,0x2d, 0x2,0x4c,0x21, - 0x1,0x69,0x6a, 0x3,0x22,0x5b, 0x3,0x26,0x73, 0x2,0x24,0x6f, - 0x2,0x24,0x70, 0x2,0x28,0x36, 0x1,0x4e,0x79, 0x1,0x4e,0x7a, - 0x3,0x2a,0x3a, 0x4,0x27,0x43, 0x1,0x4e,0x78, 0x3,0x2a,0x3b, - 0x1,0x52,0x52, 0x1,0x52,0x53, 0x1,0x52,0x50, 0x1,0x52,0x51, - 0x3,0x2e,0x2b, 0x2,0x2c,0x3e, 0x3,0x2e,0x2f, 0x4,0x2a,0x4a, - 0x2,0x2c,0x3f, 0x1,0x52,0x4f, 0x2,0x31,0x26, 0x3,0x32,0x57, - 0x1,0x56,0x6b, 0x1,0x56,0x6c, 0x3,0x32,0x55, 0x1,0x5c,0x30, - 0x2,0x31,0x2c, 0x4,0x2e,0x40, 0x1,0x56,0x71, 0x1,0x56,0x6f, - 0x2,0x31,0x2d, 0x2,0x31,0x28, 0x1,0x56,0x6e, 0x1,0x56,0x6d, - 0x1,0x56,0x68, 0x2,0x31,0x2b, 0x2,0x31,0x2a, 0x2,0x31,0x27, - 0x1,0x56,0x70, 0x3,0x32,0x52, 0x2,0x31,0x29, 0x1,0x56,0x69, - 0x4,0x2e,0x34, 0x1,0x56,0x6a, 0x1,0x5c,0x31, 0x2,0x37,0x44, - 0x2,0x37,0x45, 0x1,0x5c,0x32, 0x2,0x37,0x41, 0x2,0x37,0x43, - 0x2,0x37,0x47, 0x2,0x37,0x46, 0x2,0x37,0x42, 0x3,0x37,0x4a, - 0x1,0x5c,0x2e, 0x1,0x5c,0x2f, 0x2,0x3e,0x3a, 0x1,0x60,0x71, - 0x1,0x60,0x70, 0x2,0x3e,0x34, 0x1,0x60,0x6e, 0x4,0x39,0x34, - 0x2,0x3e,0x37, 0x1,0x60,0x72, 0x2,0x3e,0x38, 0x1,0x60,0x73, - 0x2,0x3e,0x35, 0x1,0x60,0x6d, 0x1,0x60,0x6f, 0x2,0x3e,0x39, - 0x3,0x3d,0x47, 0x2,0x3e,0x36, 0x2,0x3e,0x33, 0x4,0x3e,0x77, - 0x2,0x45,0x38, 0x3,0x42,0x7c, 0x2,0x45,0x2d, 0x1,0x65,0x38, - 0x1,0x65,0x3b, 0x1,0x65,0x3a, 0x1,0x65,0x3f, 0x1,0x65,0x3e, - 0x2,0x45,0x39, 0x2,0x45,0x37, 0x2,0x45,0x30, 0x2,0x45,0x34, - 0x2,0x45,0x33, 0x1,0x65,0x3c, 0x2,0x45,0x36, 0x2,0x45,0x32, - 0x2,0x45,0x3a, 0x2,0x45,0x31, 0x1,0x65,0x3d, 0x1,0x65,0x37, - 0x1,0x65,0x39, 0x3,0x42,0x7d, 0x2,0x45,0x2f, 0x3,0x48,0x2b, - 0x2,0x4c,0x23, 0x1,0x69,0x6e, 0x2,0x4c,0x27, 0x1,0x69,0x6d, - 0x2,0x4c,0x24, 0x1,0x69,0x6c, 0x3,0x48,0x29, 0x2,0x45,0x2e, - 0x2,0x45,0x35, 0x2,0x4c,0x26, 0x4,0x44,0x7e, 0x1,0x69,0x6f, - 0x2,0x4c,0x28, 0x2,0x4c,0x25, 0x2,0x4c,0x22, 0x2,0x52,0x39, - 0x2,0x52,0x3d, 0x2,0x52,0x3f, 0x2,0x52,0x3b, 0x2,0x52,0x3a, - 0x2,0x52,0x38, 0x1,0x6d,0x6e, 0x1,0x6d,0x6c, 0x1,0x6d,0x71, - 0x1,0x6d,0x72, 0x2,0x52,0x3c, 0x1,0x6d,0x6f, 0x2,0x52,0x37, - 0x1,0x6d,0x70, 0x1,0x69,0x6b, 0x2,0x52,0x3e, 0x1,0x6d,0x6d, - 0x3,0x51,0x71, 0x2,0x58,0x58, 0x4,0x51,0x4f, 0x2,0x58,0x57, - 0x2,0x58,0x5f, 0x2,0x58,0x59, 0x2,0x58,0x5e, 0x2,0x58,0x5b, - 0x1,0x71,0x4a, 0x2,0x58,0x5d, 0x3,0x51,0x73, 0x3,0x51,0x72, - 0x1,0x71,0x4b, 0x4,0x51,0x4d, 0x1,0x71,0x4c, 0x3,0x51,0x74, - 0x2,0x58,0x5c, 0x2,0x58,0x5a, 0x4,0x57,0x21, 0x4,0x57,0x24, - 0x1,0x74,0x43, 0x2,0x5d,0x60, 0x3,0x55,0x55, 0x3,0x55,0x53, - 0x1,0x74,0x42, 0x2,0x5d,0x63, 0x2,0x5d,0x61, 0x2,0x5d,0x62, - 0x5,0x55,0x69, 0x5,0x5c,0x36, 0x1,0x74,0x44, 0x3,0x55,0x54, - 0x3,0x58,0x34, 0x2,0x62,0x3a, 0x3,0x58,0x33, 0x1,0x76,0x6b, - 0x2,0x62,0x3b, 0x4,0x5b,0x75, 0x4,0x5b,0x79, 0x1,0x76,0x69, - 0x2,0x62,0x3c, 0x1,0x76,0x6a, 0x2,0x62,0x39, 0x2,0x62,0x3d, - 0x3,0x58,0x32, 0x2,0x62,0x37, 0x1,0x78,0x52, 0x2,0x66,0x24, - 0x1,0x78,0x53, 0x1,0x79,0x7a, 0x2,0x62,0x38, 0x1,0x79,0x7b, - 0x3,0x5e,0x3f, 0x3,0x5e,0x3e, 0x1,0x7a,0x79, 0x2,0x6b,0x6d, - 0x1,0x7b,0x6a, 0x2,0x6d,0x62, 0x1,0x7b,0x69, 0x3,0x60,0x3b, - 0x2,0x6f,0x39, 0x1,0x7c,0x61, 0x1,0x7c,0x62, 0x3,0x65,0x6a, - 0x7,0x64,0x52, 0x2,0x72,0x3a, 0x3,0x22,0x5c, 0x3,0x65,0x6b, - 0x1,0x52,0x54, 0x2,0x2c,0x40, 0x1,0x60,0x74, 0x1,0x60,0x75, - 0x1,0x46,0x75, 0x1,0x48,0x4b, 0x2,0x22,0x67, 0x3,0x26,0x74, - 0x2,0x24,0x71, 0x1,0x4b,0x30, 0x3,0x26,0x76, 0x1,0x4e,0x7b, - 0x4,0x2a,0x4c, 0x1,0x52,0x55, 0x1,0x52,0x56, 0x1,0x52,0x57, - 0x2,0x37,0x49, 0x2,0x31,0x2e, 0x1,0x56,0x72, 0x4,0x2e,0x41, - 0x4,0x2e,0x43, 0x1,0x5c,0x33, 0x2,0x37,0x48, 0x3,0x37,0x4d, - 0x2,0x3e,0x3c, 0x1,0x60,0x77, 0x3,0x3d,0x4c, 0x2,0x3e,0x3b, - 0x1,0x60,0x76, 0x3,0x42,0x7e, 0x3,0x43,0x21, 0x2,0x45,0x3b, - 0x1,0x6d,0x73, 0x2,0x52,0x43, 0x2,0x52,0x40, 0x2,0x52,0x41, - 0x2,0x52,0x42, 0x4,0x51,0x54, 0x4,0x51,0x55, 0x3,0x51,0x76, - 0x5,0x5c,0x43, 0x3,0x55,0x56, 0x2,0x5d,0x64, 0x3,0x55,0x57, - 0x2,0x62,0x3e, 0x4,0x5b,0x7c, 0x4,0x5b,0x7d, 0x3,0x5a,0x5e, - 0x2,0x69,0x40, 0x2,0x69,0x3f, 0x4,0x66,0x5a, 0x2,0x6d,0x63, - 0x1,0x46,0x76, 0x2,0x28,0x37, 0x1,0x56,0x73, 0x3,0x3d,0x4d, - 0x1,0x60,0x78, 0x2,0x45,0x3c, 0x4,0x45,0x34, 0x3,0x48,0x30, - 0x2,0x4c,0x29, 0x3,0x48,0x2e, 0x1,0x6d,0x74, 0x2,0x58,0x60, - 0x3,0x65,0x6c, 0x2,0x62,0x3f, 0x2,0x69,0x41, 0x1,0x46,0x77, - 0x3,0x26,0x77, 0x3,0x26,0x78, 0x1,0x4e,0x7c, 0x1,0x52,0x5a, - 0x2,0x2c,0x41, 0x1,0x52,0x5b, 0x1,0x52,0x59, 0x3,0x2e,0x32, - 0x1,0x52,0x58, 0x2,0x31,0x2f, 0x1,0x56,0x74, 0x3,0x32,0x5a, - 0x3,0x32,0x5b, 0x1,0x56,0x75, 0x1,0x56,0x76, 0x1,0x5c,0x35, - 0x2,0x37,0x4a, 0x1,0x5c,0x34, 0x3,0x37,0x50, 0x3,0x37,0x52, - 0x3,0x37,0x51, 0xf,0x37,0x23, 0x3,0x3d,0x4f, 0x2,0x3e,0x3d, - 0x1,0x5c,0x36, 0x1,0x60,0x79, 0x2,0x45,0x3d, 0x1,0x65,0x40, - 0x1,0x65,0x41, 0x4,0x45,0x35, 0x1,0x69,0x70, 0x3,0x48,0x31, - 0x1,0x69,0x71, 0x1,0x6d,0x75, 0x1,0x71,0x4e, 0x2,0x58,0x61, - 0x1,0x71,0x4d, 0x4,0x57,0x2d, 0x2,0x5d,0x65, 0x1,0x74,0x45, - 0x3,0x58,0x35, 0x2,0x62,0x40, 0x2,0x69,0x42, 0x1,0x46,0x78, - 0x1,0x4b,0x31, 0x2,0x28,0x3a, 0x2,0x28,0x39, 0x1,0x4e,0x7d, - 0x2,0x28,0x38, 0x1,0x4e,0x7e, 0x2,0x28,0x3b, 0x4,0x2a,0x55, - 0x2,0x2c,0x47, 0x1,0x52,0x5e, 0x1,0x52,0x5d, 0x2,0x2c,0x49, - 0x2,0x2c,0x48, 0x1,0x52,0x62, 0x3,0x2e,0x35, 0x1,0x52,0x61, - 0x3,0x2e,0x33, 0x4,0x2a,0x59, 0x1,0x52,0x5c, 0x4,0x2a,0x5d, - 0x2,0x2c,0x43, 0x2,0x2c,0x44, 0x2,0x2c,0x45, 0x4,0x2a,0x52, - 0x1,0x52,0x63, 0x2,0x2c,0x42, 0x1,0x52,0x5f, 0x2,0x2c,0x46, - 0x1,0x52,0x60, 0x3,0x32,0x64, 0x3,0x32,0x5f, 0x2,0x31,0x32, - 0x2,0x31,0x36, 0x2,0x31,0x34, 0x2,0x31,0x33, 0x4,0x2e,0x55, - 0x2,0x31,0x37, 0x3,0x32,0x5e, 0x4,0x2e,0x4f, 0x3,0x32,0x68, - 0x2,0x31,0x38, 0x2,0x31,0x39, 0x2,0x31,0x31, 0x4,0x2e,0x51, - 0x2,0x31,0x30, 0x3,0x37,0x59, 0x1,0x56,0x78, 0x1,0x56,0x79, - 0x3,0x32,0x67, 0x2,0x31,0x3a, 0x2,0x31,0x35, 0x3,0x32,0x65, - 0x2,0x37,0x53, 0x3,0x37,0x55, 0x2,0x31,0x3b, 0x1,0x56,0x7a, - 0x1,0x56,0x77, 0x3,0x32,0x5c, 0x3,0x32,0x63, 0x2,0x37,0x4d, - 0x4,0x33,0x4f, 0x2,0x37,0x4c, 0x3,0x37,0x53, 0x2,0x37,0x4e, - 0x2,0x37,0x4f, 0x2,0x37,0x51, 0x2,0x37,0x50, 0x2,0x37,0x55, - 0x1,0x5c,0x3a, 0x1,0x5c,0x37, 0x1,0x5c,0x3b, 0x2,0x37,0x4b, - 0x1,0x5c,0x3c, 0x2,0x37,0x54, 0x1,0x5c,0x39, 0x2,0x37,0x52, - 0x1,0x5c,0x38, 0x3,0x32,0x62, 0x3,0x37,0x57, 0x4,0x33,0x56, - 0x3,0x3d,0x56, 0x3,0x3d,0x53, 0x2,0x3e,0x40, 0x2,0x3e,0x42, - 0x2,0x3e,0x3e, 0x2,0x3e,0x3f, 0x3,0x3d,0x51, 0x3,0x3d,0x52, - 0x2,0x3e,0x43, 0x2,0x3e,0x45, 0x2,0x3e,0x46, 0x2,0x3e,0x41, - 0x2,0x3e,0x44, 0x1,0x60,0x7a, 0x2,0x45,0x41, 0x3,0x43,0x27, - 0x2,0x45,0x46, 0x2,0x45,0x3e, 0x2,0x45,0x42, 0x4,0x3f,0x29, - 0x3,0x43,0x28, 0x2,0x45,0x47, 0x2,0x45,0x43, 0x1,0x65,0x42, - 0x1,0x65,0x4a, 0x3,0x43,0x25, 0x1,0x65,0x45, 0x2,0x45,0x3f, - 0x2,0x45,0x40, 0x1,0x69,0x75, 0x1,0x65,0x4d, 0x1,0x65,0x46, - 0x3,0x43,0x26, 0x1,0x65,0x4b, 0x1,0x65,0x44, 0x2,0x45,0x45, - 0x1,0x65,0x4c, 0x2,0x45,0x44, 0x1,0x65,0x48, 0x1,0x65,0x43, - 0x1,0x65,0x49, 0x2,0x45,0x48, 0x2,0x4c,0x2e, 0x2,0x4c,0x30, - 0x4,0x45,0x42, 0x3,0x48,0x39, 0x4,0x45,0x40, 0x4,0x45,0x3d, - 0x3,0x48,0x33, 0x3,0x48,0x36, 0x3,0x48,0x35, 0x3,0x48,0x34, - 0x3,0x48,0x38, 0x1,0x65,0x47, 0x3,0x48,0x3b, 0x3,0x48,0x3d, - 0x2,0x4c,0x2b, 0x1,0x69,0x73, 0x2,0x4c,0x31, 0x1,0x69,0x74, - 0x2,0x4c,0x2f, 0x2,0x4c,0x2a, 0x2,0x4c,0x2d, 0x2,0x4c,0x32, - 0x1,0x69,0x72, 0x2,0x4c,0x2c, 0x1,0x6d,0x77, 0x2,0x52,0x47, - 0x2,0x52,0x46, 0x3,0x4d,0x44, 0x1,0x6d,0x7a, 0x1,0x6d,0x78, - 0x2,0x52,0x44, 0x1,0x6d,0x76, 0x2,0x52,0x45, 0x3,0x4d,0x46, - 0x1,0x6d,0x79, 0x4,0x51,0x5f, 0x2,0x58,0x69, 0x3,0x51,0x7b, - 0x2,0x58,0x6b, 0x3,0x51,0x79, 0x2,0x58,0x6a, 0x2,0x58,0x62, - 0x2,0x58,0x66, 0x2,0x58,0x65, 0x2,0x58,0x63, 0x1,0x71,0x50, - 0x1,0x71,0x51, 0x1,0x71,0x4f, 0x2,0x58,0x64, 0x2,0x58,0x67, - 0x2,0x58,0x68, 0x3,0x55,0x59, 0x1,0x71,0x52, 0x3,0x55,0x58, - 0x1,0x74,0x4a, 0x2,0x5d,0x6d, 0x3,0x55,0x5b, 0x1,0x74,0x47, - 0x2,0x5d,0x67, 0x1,0x74,0x49, 0x1,0x74,0x4b, 0x4,0x51,0x61, - 0x3,0x55,0x5c, 0x1,0x74,0x48, 0x2,0x5d,0x6c, 0x2,0x5d,0x68, - 0x1,0x74,0x46, 0x2,0x5d,0x6b, 0x2,0x5d,0x66, 0x2,0x5d,0x6a, - 0x2,0x5d,0x69, 0x3,0x58,0x36, 0x3,0x58,0x38, 0x2,0x62,0x42, - 0x1,0x76,0x6e, 0x1,0x76,0x6f, 0x1,0x76,0x6c, 0x3,0x58,0x3b, - 0x1,0x76,0x6d, 0x3,0x58,0x3a, 0x3,0x58,0x39, 0x2,0x62,0x41, - 0x4,0x60,0x39, 0x2,0x66,0x27, 0x3,0x5a,0x60, 0x3,0x5a,0x5f, - 0x1,0x78,0x54, 0x2,0x66,0x25, 0x2,0x66,0x26, 0x2,0x69,0x43, - 0x2,0x69,0x46, 0x2,0x69,0x44, 0x2,0x69,0x45, 0x2,0x6b,0x6e, - 0x3,0x5e,0x42, 0x4,0x66,0x5e, 0x1,0x7a,0x7a, 0x2,0x6f,0x3a, - 0x2,0x70,0x42, 0x4,0x6b,0x74, 0x1,0x7c,0x63, 0x2,0x71,0x28, - 0x2,0x71,0x29, 0x1,0x7d,0x33, 0x1,0x46,0x79, 0x1,0x52,0x64, - 0x3,0x32,0x69, 0x2,0x3e,0x47, 0x3,0x3d,0x57, 0x2,0x45,0x49, - 0x4,0x6c,0x76, 0x1,0x46,0x7a, 0x1,0x4b,0x32, 0x4,0x27,0x52, - 0x1,0x4f,0x21, 0x3,0x2e,0x36, 0x2,0x2c,0x4a, 0x2,0x2c,0x4b, - 0x1,0x56,0x7b, 0x4,0x33,0x5b, 0x2,0x3e,0x48, 0x1,0x60,0x7b, - 0x1,0x65,0x4e, 0x1,0x74,0x4c, 0x2,0x5d,0x6e, 0x2,0x66,0x28, - 0x2,0x69,0x47, 0x1,0x46,0x7b, 0x3,0x26,0x7b, 0x3,0x26,0x7c, - 0xf,0x25,0x23, 0x2,0x28,0x41, 0x2,0x28,0x3c, 0x2,0x28,0x3e, - 0x2,0x28,0x40, 0x2,0x28,0x3f, 0x2,0x28,0x3d, 0x1,0x4f,0x22, - 0xf,0x28,0x34, 0x1,0x52,0x65, 0x2,0x2c,0x54, 0x3,0x2e,0x39, - 0x2,0x2c,0x4f, 0x2,0x2c,0x4c, 0x3,0x2e,0x3b, 0x3,0x2e,0x3e, - 0x2,0x2c,0x53, 0x3,0x2e,0x37, 0x3,0x2e,0x3a, 0x1,0x52,0x67, - 0x1,0x52,0x68, 0x2,0x2c,0x52, 0x2,0x2c,0x51, 0x2,0x2c,0x50, - 0x2,0x2c,0x4d, 0x2,0x2c,0x4e, 0x2,0x2c,0x55, 0x1,0x52,0x66, - 0x3,0x2e,0x3d, 0xf,0x2c,0x5c, 0x3,0x65,0x6d, 0x3,0x65,0x6e, - 0x1,0x57,0x21, 0x3,0x66,0x7c, 0x1,0x57,0x27, 0x1,0x57,0x26, - 0x2,0x31,0x44, 0x2,0x31,0x3e, 0x2,0x31,0x3c, 0x3,0x32,0x6c, - 0x1,0x57,0x24, 0x2,0x37,0x5c, 0x1,0x56,0x7d, 0x2,0x31,0x41, - 0x2,0x31,0x45, 0x2,0x31,0x47, 0x2,0x31,0x43, 0x2,0x31,0x3d, - 0x1,0x57,0x25, 0x2,0x31,0x42, 0x2,0x31,0x40, 0x1,0x56,0x7c, - 0x2,0x31,0x48, 0x1,0x57,0x28, 0x2,0x31,0x46, 0x1,0x57,0x22, - 0x2,0x31,0x3f, 0x3,0x32,0x6d, 0x1,0x57,0x23, 0x1,0x56,0x7e, - 0x3,0x65,0x6f, 0x3,0x37,0x62, 0x1,0x5c,0x3e, 0x4,0x33,0x5d, - 0x2,0x37,0x5d, 0x3,0x37,0x63, 0x3,0x37,0x5d, 0x2,0x37,0x56, - 0x2,0x37,0x58, 0x2,0x37,0x5a, 0x3,0x37,0x5f, 0x2,0x37,0x5b, - 0x2,0x37,0x59, 0x1,0x5c,0x3f, 0x3,0x37,0x61, 0x2,0x37,0x5e, - 0x3,0x37,0x60, 0x2,0x37,0x57, 0x3,0x65,0x70, 0x3,0x65,0x71, - 0x3,0x65,0x72, 0x2,0x3e,0x4c, 0x1,0x60,0x7c, 0x2,0x3e,0x54, - 0x3,0x3d,0x5c, 0x2,0x3e,0x49, 0x6,0x4c,0x2f, 0x2,0x3e,0x55, - 0x3,0x3d,0x59, 0x2,0x3e,0x4a, 0x2,0x3e,0x4b, 0x3,0x3d,0x5d, - 0x4,0x39,0x54, 0x2,0x3e,0x53, 0x2,0x3e,0x52, 0x2,0x3e,0x4f, - 0x1,0x5c,0x3d, 0x1,0x60,0x7d, 0x2,0x3e,0x4d, 0x2,0x3e,0x50, - 0x1,0x60,0x7e, 0x2,0x3e,0x51, 0x2,0x3e,0x4e, 0x3,0x3d,0x5a, - 0x3,0x43,0x31, 0x2,0x45,0x54, 0x3,0x43,0x2d, 0x2,0x45,0x58, - 0x1,0x65,0x55, 0x3,0x43,0x2e, 0x2,0x4c,0x38, 0x1,0x65,0x58, - 0x2,0x45,0x56, 0x3,0x43,0x37, 0x3,0x43,0x29, 0x2,0x45,0x53, - 0x2,0x45,0x4e, 0x2,0x45,0x50, 0x2,0x45,0x51, 0x2,0x45,0x4a, - 0x3,0x43,0x35, 0x1,0x65,0x54, 0x3,0x43,0x2b, 0x3,0x43,0x30, - 0x1,0x65,0x53, 0x3,0x43,0x34, 0x1,0x65,0x4f, 0x2,0x45,0x4d, - 0x3,0x43,0x2a, 0x1,0x65,0x56, 0x3,0x43,0x36, 0x1,0x65,0x57, - 0x2,0x45,0x4c, 0x2,0x45,0x4f, 0x2,0x45,0x57, 0x1,0x65,0x51, - 0x1,0x65,0x52, 0x2,0x45,0x55, 0x2,0x45,0x4b, 0xf,0x44,0x25, - 0x4,0x45,0x53, 0x2,0x4c,0x3a, 0x1,0x69,0x77, 0x2,0x4c,0x3c, - 0x2,0x45,0x52, 0x2,0x4c,0x3e, 0x1,0x69,0x7b, 0x2,0x4c,0x3f, - 0x2,0x4c,0x3b, 0x3,0x48,0x3e, 0x1,0x69,0x78, 0x2,0x4c,0x37, - 0x1,0x69,0x7a, 0x2,0x4c,0x34, 0x2,0x4c,0x39, 0x2,0x4c,0x3d, - 0x2,0x4c,0x36, 0x3,0x48,0x3f, 0x3,0x48,0x45, 0x1,0x65,0x50, - 0x3,0x48,0x44, 0x2,0x4c,0x33, 0x1,0x69,0x79, 0x2,0x4c,0x35, - 0x3,0x65,0x73, 0x3,0x48,0x40, 0xf,0x4a,0x3f, 0x1,0x6d,0x7d, - 0x2,0x52,0x49, 0x1,0x6e,0x23, 0x4,0x4b,0x59, 0x1,0x6e,0x21, - 0x4,0x4b,0x57, 0x3,0x4d,0x4a, 0x1,0x69,0x76, 0x3,0x4d,0x4d, - 0x2,0x52,0x50, 0x2,0x52,0x51, 0x1,0x6d,0x7c, 0x3,0x4d,0x48, - 0x3,0x4d,0x4c, 0x2,0x52,0x4f, 0x2,0x52,0x52, 0x1,0x6d,0x7e, - 0x1,0x6d,0x7b, 0x2,0x52,0x4b, 0x2,0x52,0x48, 0x2,0x52,0x4d, - 0x2,0x52,0x4a, 0x1,0x6e,0x24, 0x2,0x52,0x4c, 0x3,0x4d,0x4b, - 0x3,0x4d,0x49, 0x2,0x52,0x4e, 0x1,0x6e,0x22, 0x3,0x52,0x21, - 0x3,0x65,0x74, 0x1,0x71,0x54, 0x2,0x58,0x72, 0x3,0x52,0x24, - 0x2,0x58,0x6c, 0x2,0x58,0x70, 0x2,0x58,0x76, 0x2,0x58,0x77, - 0x2,0x58,0x73, 0x2,0x58,0x74, 0x2,0x58,0x71, 0x4,0x4b,0x5d, - 0x2,0x58,0x6e, 0x4,0x51,0x6e, 0x1,0x71,0x56, 0x1,0x71,0x53, - 0x2,0x58,0x6d, 0x2,0x58,0x6f, 0x3,0x52,0x22, 0x1,0x71,0x55, - 0x2,0x58,0x75, 0x3,0x65,0x75, 0x1,0x74,0x50, 0x3,0x55,0x60, - 0x3,0x55,0x62, 0x2,0x5d,0x75, 0x2,0x5d,0x6f, 0x1,0x74,0x4f, - 0x4,0x57,0x3e, 0x1,0x74,0x4d, 0x3,0x55,0x61, 0x2,0x5d,0x77, - 0x1,0x74,0x4e, 0x2,0x5d,0x72, 0x2,0x5d,0x73, 0x2,0x5d,0x70, - 0x2,0x5d,0x78, 0x2,0x5d,0x74, 0x4,0x57,0x40, 0x1,0x74,0x51, - 0x2,0x5d,0x71, 0x2,0x5d,0x79, 0x2,0x5d,0x76, 0x3,0x58,0x43, - 0x3,0x58,0x3e, 0x3,0x58,0x40, 0x2,0x62,0x46, 0x3,0x58,0x3f, - 0x3,0x58,0x3c, 0x2,0x62,0x43, 0x3,0x58,0x42, 0x1,0x76,0x70, - 0x4,0x5c,0x32, 0x2,0x62,0x47, 0x2,0x62,0x49, 0x2,0x62,0x48, - 0x2,0x62,0x44, 0x2,0x62,0x45, 0x3,0x58,0x44, 0x2,0x66,0x2d, - 0x3,0x5a,0x61, 0x1,0x78,0x55, 0x3,0x5a,0x62, 0x2,0x66,0x2a, - 0x2,0x66,0x2c, 0x2,0x66,0x29, 0x2,0x66,0x2e, 0x4,0x60,0x42, - 0x3,0x5a,0x63, 0x2,0x66,0x2b, 0x3,0x65,0x76, 0x2,0x69,0x49, - 0x2,0x69,0x4c, 0x2,0x69,0x48, 0x1,0x79,0x7c, 0x2,0x69,0x4a, - 0x2,0x69,0x4b, 0x2,0x69,0x4d, 0x1,0x79,0x7d, 0x1,0x7a,0x21, - 0x1,0x79,0x7e, 0x2,0x6b,0x6f, 0x3,0x5e,0x45, 0x2,0x6b,0x71, - 0x3,0x5e,0x43, 0x2,0x6b,0x70, 0x3,0x5e,0x44, 0x2,0x6d,0x64, - 0xf,0x6a,0x66, 0x3,0x60,0x3c, 0x2,0x70,0x43, 0x2,0x71,0x2a, - 0x1,0x46,0x7c, 0x3,0x24,0x33, 0x2,0x24,0x72, 0x1,0x4f,0x23, - 0x2,0x28,0x43, 0x1,0x4f,0x24, 0x1,0x4f,0x25, 0x2,0x28,0x42, - 0x2,0x2c,0x5a, 0x2,0x2c,0x59, 0x1,0x52,0x69, 0x1,0x52,0x6c, - 0x1,0x52,0x6b, 0x1,0x52,0x6a, 0x2,0x2c,0x56, 0x2,0x2c,0x58, - 0x2,0x2c,0x57, 0x3,0x65,0x77, 0x2,0x31,0x4b, 0x1,0x57,0x2a, - 0x2,0x31,0x4f, 0x2,0x31,0x4e, 0x2,0x31,0x4d, 0x2,0x31,0x49, - 0x1,0x57,0x29, 0x1,0x57,0x2d, 0x1,0x57,0x30, 0x3,0x32,0x6f, - 0x3,0x32,0x70, 0x1,0x57,0x31, 0x2,0x31,0x4a, 0x2,0x31,0x4c, - 0x1,0x57,0x2f, 0x1,0x57,0x2e, 0x1,0x57,0x2c, 0x1,0x57,0x2b, - 0x2,0x37,0x65, 0x3,0x32,0x72, 0x2,0x37,0x63, 0x2,0x37,0x5f, - 0x1,0x5c,0x40, 0x3,0x3d,0x5e, 0x2,0x37,0x60, 0x1,0x5c,0x41, - 0x2,0x37,0x61, 0x2,0x37,0x62, 0x2,0x37,0x64, 0x3,0x37,0x66, - 0x1,0x5c,0x42, 0x3,0x37,0x65, 0x2,0x3e,0x59, 0x3,0x3d,0x5f, - 0x2,0x3e,0x58, 0x2,0x3e,0x57, 0x2,0x3e,0x56, 0x3,0x3d,0x64, - 0x3,0x3d,0x62, 0x4,0x39,0x5a, 0x2,0x45,0x5c, 0x1,0x65,0x59, - 0x4,0x3f,0x46, 0x2,0x45,0x59, 0x2,0x45,0x5b, 0x3,0x43,0x38, - 0x1,0x65,0x5a, 0x3,0x43,0x3d, 0x1,0x65,0x5b, 0x2,0x45,0x5a, - 0x3,0x43,0x39, 0x3,0x3d,0x63, 0x3,0x65,0x78, 0x3,0x48,0x48, - 0x2,0x4c,0x48, 0x3,0x48,0x47, 0x2,0x4c,0x41, 0x2,0x4c,0x42, - 0x5,0x47,0x7e, 0x1,0x69,0x7e, 0x1,0x69,0x7c, 0x1,0x69,0x7d, - 0x2,0x4c,0x4a, 0x5,0x48,0x22, 0x2,0x4c,0x49, 0x2,0x4c,0x46, - 0x2,0x4c,0x45, 0x2,0x4c,0x44, 0x2,0x4c,0x43, 0x2,0x4c,0x47, - 0x2,0x4c,0x40, 0x3,0x65,0x79, 0x2,0x52,0x53, 0x2,0x52,0x58, - 0x2,0x52,0x56, 0x3,0x4d,0x50, 0x3,0x4d,0x51, 0x3,0x4d,0x4f, - 0x2,0x52,0x55, 0x2,0x52,0x54, 0x2,0x52,0x57, 0x3,0x65,0x7a, - 0x2,0x58,0x78, 0x3,0x52,0x26, 0x1,0x71,0x57, 0x1,0x74,0x52, - 0x2,0x5d,0x7b, 0x3,0x52,0x27, 0x1,0x74,0x53, 0x2,0x5d,0x7a, - 0x2,0x62,0x4b, 0x2,0x62,0x4a, 0x1,0x76,0x71, 0x3,0x58,0x45, - 0x2,0x66,0x2f, 0x1,0x78,0x56, 0x2,0x69,0x4e, 0x1,0x7b,0x6b, - 0x2,0x6d,0x65, 0x3,0x60,0x3d, 0x2,0x70,0x45, 0x2,0x70,0x44, - 0x2,0x21,0x67, 0x1,0x52,0x6d, 0x1,0x52,0x6e, 0x2,0x37,0x66, - 0x3,0x65,0x7b, 0x1,0x65,0x5d, 0x1,0x46,0x7d, 0x1,0x4b,0x35, - 0x1,0x4b,0x34, 0x1,0x4b,0x33, 0x4,0x24,0x68, 0x3,0x2a,0x3e, - 0x3,0x2a,0x3d, 0x2,0x28,0x44, 0x3,0x2a,0x3f, 0x3,0x2a,0x42, - 0x1,0x4f,0x27, 0x1,0x4f,0x26, 0x3,0x2a,0x44, 0x1,0x52,0x71, - 0x3,0x65,0x4c, 0x2,0x2c,0x5c, 0x2,0x2c,0x5f, 0x2,0x2c,0x5d, - 0x3,0x2e,0x42, 0x1,0x52,0x6f, 0x1,0x52,0x70, 0x3,0x2e,0x40, - 0x3,0x2e,0x41, 0x2,0x2c,0x5b, 0x2,0x2c,0x5e, 0x3,0x2e,0x43, - 0x1,0x57,0x38, 0x3,0x32,0x74, 0x3,0x32,0x73, 0x3,0x32,0x79, - 0x2,0x31,0x56, 0x2,0x31,0x58, 0x2,0x31,0x57, 0x1,0x57,0x35, - 0x2,0x31,0x52, 0x3,0x32,0x76, 0x3,0x32,0x7b, 0x1,0x57,0x33, - 0x1,0x57,0x32, 0x3,0x32,0x77, 0x1,0x57,0x36, 0x1,0x57,0x34, - 0x3,0x32,0x78, 0x1,0x57,0x37, 0x2,0x31,0x55, 0x2,0x31,0x50, - 0x2,0x31,0x51, 0x2,0x31,0x54, 0x2,0x31,0x53, 0x3,0x32,0x7c, - 0x3,0x37,0x69, 0x3,0x37,0x67, 0x3,0x37,0x6b, 0x3,0x37,0x6a, - 0x2,0x37,0x69, 0x2,0x37,0x6a, 0x2,0x37,0x68, 0x3,0x37,0x6c, - 0x2,0x37,0x67, 0x1,0x5c,0x43, 0xf,0x37,0x3f, 0x3,0x3d,0x65, - 0x1,0x61,0x25, 0x6,0x4c,0x48, 0x2,0x3e,0x5a, 0x2,0x3e,0x5c, - 0x2,0x3e,0x5e, 0x1,0x61,0x24, 0x6,0x4c,0x43, 0x3,0x3d,0x66, - 0x1,0x61,0x22, 0x3,0x3d,0x69, 0x2,0x3e,0x5b, 0x1,0x61,0x23, - 0x2,0x3e,0x5d, 0x1,0x61,0x21, 0x3,0x3d,0x68, 0x3,0x43,0x41, - 0x2,0x45,0x66, 0x2,0x45,0x5d, 0x2,0x45,0x60, 0x2,0x45,0x64, - 0x1,0x65,0x61, 0x2,0x45,0x62, 0x4,0x3f,0x50, 0x2,0x45,0x61, - 0x2,0x45,0x5e, 0x2,0x45,0x5f, 0x1,0x65,0x5f, 0x2,0x45,0x65, - 0x1,0x65,0x5e, 0x3,0x43,0x44, 0x1,0x65,0x63, 0x1,0x65,0x62, - 0x1,0x65,0x60, 0x4,0x3f,0x4a, 0x2,0x45,0x63, 0x3,0x65,0x24, - 0x2,0x4c,0x50, 0x4,0x45,0x5d, 0x2,0x4c,0x4f, 0x3,0x48,0x4b, - 0x3,0x48,0x4d, 0x2,0x4c,0x4b, 0x3,0x48,0x50, 0x3,0x48,0x4f, - 0x1,0x6a,0x21, 0x2,0x4c,0x4e, 0x2,0x4c,0x4d, 0x1,0x6a,0x22, - 0x3,0x48,0x52, 0xf,0x4a,0x64, 0x4,0x4b,0x63, 0x4,0x45,0x5e, - 0x4,0x4b,0x6b, 0x1,0x6e,0x29, 0x3,0x4d,0x55, 0x2,0x52,0x5a, - 0x3,0x4d,0x56, 0x1,0x6e,0x2a, 0x1,0x6e,0x26, 0x1,0x6e,0x28, - 0x3,0x4d,0x5a, 0x1,0x6e,0x25, 0x1,0x6e,0x27, 0x3,0x4d,0x53, - 0x3,0x4d,0x57, 0x2,0x58,0x79, 0x3,0x52,0x2a, 0x1,0x71,0x5a, - 0x2,0x58,0x7b, 0x2,0x58,0x7a, 0x3,0x55,0x64, 0x2,0x4c,0x4c, - 0x1,0x71,0x5c, 0x1,0x71,0x5b, 0x1,0x71,0x58, 0x1,0x71,0x59, - 0x3,0x52,0x2c, 0xf,0x5b,0x59, 0x3,0x52,0x29, 0x2,0x5e,0x22, - 0x4,0x57,0x49, 0x2,0x5d,0x7e, 0x1,0x74,0x54, 0x2,0x5e,0x21, - 0x4,0x57,0x48, 0x2,0x5e,0x23, 0x2,0x5d,0x7d, 0x2,0x5d,0x7c, - 0x2,0x62,0x4c, 0x1,0x76,0x74, 0x1,0x76,0x72, 0x1,0x76,0x73, - 0x3,0x5a,0x66, 0x4,0x60,0x45, 0x3,0x5a,0x65, 0x2,0x66,0x30, - 0x2,0x66,0x31, 0x1,0x78,0x58, 0x3,0x5a,0x67, 0x1,0x78,0x57, - 0x2,0x69,0x50, 0x2,0x69,0x51, 0x2,0x69,0x4f, 0x3,0x5c,0x64, - 0x2,0x6d,0x66, 0x2,0x6d,0x67, 0x3,0x60,0x76, 0x3,0x60,0x77, - 0x1,0x46,0x7e, 0x2,0x22,0x68, 0x1,0x4b,0x36, 0x2,0x28,0x45, - 0x1,0x4f,0x29, 0x1,0x4f,0x28, 0x2,0x28,0x46, 0x3,0x2e,0x44, - 0x3,0x2e,0x47, 0x2,0x2c,0x61, 0x1,0x52,0x72, 0x2,0x2c,0x60, - 0x1,0x52,0x73, 0x3,0x2e,0x49, 0x3,0x2e,0x48, 0x1,0x57,0x39, - 0x2,0x31,0x5b, 0x2,0x31,0x59, 0x2,0x31,0x5f, 0x1,0x57,0x3a, - 0x2,0x31,0x5a, 0x2,0x31,0x5e, 0x2,0x31,0x5c, 0x2,0x31,0x5d, - 0x2,0x37,0x6b, 0x2,0x37,0x6d, 0x3,0x37,0x72, 0x1,0x5c,0x44, - 0x3,0x37,0x71, 0x2,0x37,0x6c, 0x1,0x5c,0x45, 0x1,0x61,0x28, - 0x1,0x61,0x27, 0x1,0x61,0x26, 0x2,0x3e,0x5f, 0x3,0x37,0x70, - 0x4,0x39,0x65, 0x2,0x45,0x69, 0x1,0x65,0x64, 0x1,0x65,0x65, - 0x3,0x43,0x46, 0x2,0x45,0x68, 0x2,0x45,0x67, 0x3,0x43,0x47, - 0x3,0x65,0x7c, 0x2,0x4c,0x51, 0x1,0x6a,0x24, 0x1,0x6a,0x23, - 0x2,0x4c,0x52, 0x2,0x4c,0x53, 0x1,0x6e,0x2c, 0x1,0x6e,0x2b, - 0x3,0x4d,0x5b, 0x2,0x59,0x21, 0x2,0x52,0x5b, 0x2,0x52,0x5d, - 0x2,0x52,0x5c, 0x2,0x58,0x7e, 0x2,0x58,0x7c, 0x2,0x59,0x22, - 0x2,0x58,0x7d, 0x5,0x56,0x52, 0x1,0x71,0x5d, 0x3,0x52,0x2f, - 0x4,0x52,0x27, 0x3,0x52,0x2e, 0x2,0x5e,0x24, 0x1,0x74,0x55, - 0x2,0x5e,0x25, 0x2,0x5e,0x26, 0x3,0x55,0x68, 0x1,0x76,0x75, - 0x1,0x76,0x76, 0x4,0x60,0x4b, 0x1,0x7a,0x22, 0x3,0x5e,0x49, - 0x3,0x5e,0x48, 0x1,0x7c,0x3d, 0x1,0x47,0x21, 0x3,0x26,0x7e, - 0x3,0x27,0x21, 0x4,0x27,0x5b, 0x3,0x2a,0x47, 0x3,0x2e,0x4e, - 0x2,0x2c,0x62, 0x3,0x2e,0x4f, 0x3,0x2e,0x4d, 0x3,0x2e,0x4b, - 0x3,0x2e,0x4c, 0xf,0x2c,0x76, 0x2,0x31,0x60, 0x1,0x57,0x3b, - 0x3,0x33,0x23, 0x3,0x33,0x26, 0x3,0x33,0x27, 0x3,0x33,0x24, - 0x1,0x5d,0x7e, 0x1,0x5d,0x7d, 0x3,0x37,0x73, 0x3,0x3d,0x71, - 0x1,0x61,0x2a, 0x2,0x3e,0x61, 0x1,0x61,0x29, 0x2,0x3e,0x60, - 0x3,0x3d,0x70, 0x4,0x3f,0x57, 0x3,0x43,0x49, 0x3,0x43,0x4a, - 0x2,0x45,0x6a, 0x3,0x48,0x54, 0x1,0x6a,0x25, 0x2,0x4c,0x54, - 0x1,0x6a,0x26, 0x3,0x48,0x55, 0x3,0x52,0x30, 0x3,0x55,0x69, - 0x3,0x55,0x6a, 0x4,0x57,0x50, 0x3,0x58,0x49, 0x1,0x7a,0x23, - 0x2,0x69,0x52, 0x3,0x5f,0x55, 0x1,0x48,0x4c, 0x1,0x4f,0x2a, - 0x2,0x28,0x47, 0x3,0x2e,0x51, 0x1,0x52,0x75, 0x3,0x2e,0x50, - 0x1,0x52,0x74, 0x2,0x2c,0x63, 0x2,0x2c,0x64, 0x2,0x31,0x62, - 0x2,0x31,0x64, 0x1,0x57,0x3c, 0x2,0x31,0x66, 0x2,0x31,0x69, - 0x2,0x31,0x67, 0x3,0x33,0x2b, 0x4,0x2e,0x71, 0x3,0x33,0x2a, - 0x2,0x31,0x68, 0x2,0x31,0x65, 0x2,0x31,0x61, 0x1,0x57,0x3d, - 0x2,0x31,0x6a, 0x2,0x31,0x63, 0x3,0x33,0x2c, 0x3,0x37,0x78, - 0x3,0x37,0x79, 0x2,0x37,0x76, 0x1,0x5c,0x4b, 0x2,0x38,0x21, - 0x1,0x5c,0x48, 0x3,0x37,0x77, 0x2,0x37,0x78, 0x1,0x5c,0x4c, - 0x3,0x37,0x7b, 0x1,0x5c,0x46, 0x3,0x37,0x76, 0x2,0x37,0x73, - 0x2,0x38,0x22, 0x2,0x37,0x74, 0x2,0x37,0x71, 0x1,0x5c,0x4a, - 0x4,0x33,0x7c, 0x1,0x5c,0x47, 0x4,0x33,0x7a, 0x2,0x37,0x77, - 0x2,0x37,0x7a, 0x1,0x5c,0x49, 0x2,0x37,0x7b, 0x1,0x5c,0x4d, - 0x2,0x37,0x7c, 0x2,0x37,0x72, 0x2,0x37,0x79, 0x2,0x37,0x7d, - 0x2,0x37,0x75, 0x2,0x37,0x70, 0x2,0x37,0x6e, 0x3,0x37,0x7a, - 0x3,0x65,0x7d, 0x2,0x37,0x7e, 0xf,0x37,0x4d, 0x2,0x37,0x6f, - 0xf,0x36,0x7e, 0x5,0x3b,0x24, 0x2,0x3e,0x68, 0x3,0x3d,0x7b, - 0x3,0x3d,0x78, 0x3,0x3d,0x75, 0x2,0x3e,0x64, 0x2,0x3e,0x6a, - 0x1,0x61,0x2d, 0x2,0x3e,0x63, 0x2,0x3e,0x65, 0x1,0x61,0x2b, - 0x2,0x3e,0x62, 0x1,0x61,0x32, 0x2,0x3e,0x66, 0x1,0x61,0x31, - 0x2,0x3e,0x67, 0x1,0x61,0x33, 0x1,0x61,0x2e, 0x1,0x61,0x34, - 0x1,0x61,0x2f, 0x3,0x3d,0x79, 0x1,0x61,0x30, 0x3,0x3d,0x72, - 0x1,0x61,0x2c, 0x3,0x3d,0x76, 0x2,0x3e,0x69, 0x3,0x65,0x7e, - 0x3,0x43,0x4f, 0x4,0x3f,0x67, 0x1,0x65,0x68, 0x2,0x45,0x75, - 0x3,0x43,0x4c, 0x2,0x45,0x78, 0x2,0x45,0x6c, 0x2,0x45,0x71, - 0x2,0x45,0x6b, 0x1,0x65,0x6a, 0x3,0x43,0x55, 0x2,0x45,0x6f, - 0x4,0x3f,0x5e, 0x3,0x43,0x4d, 0x3,0x3d,0x77, 0x2,0x45,0x6d, - 0x1,0x65,0x69, 0x3,0x43,0x54, 0x2,0x45,0x74, 0x2,0x45,0x73, - 0x2,0x45,0x70, 0x2,0x45,0x72, 0x2,0x45,0x6e, 0x1,0x6a,0x2a, - 0x2,0x45,0x77, 0x1,0x65,0x66, 0x2,0x45,0x76, 0x3,0x43,0x51, - 0xf,0x44,0x45, 0x3,0x48,0x56, 0x2,0x4c,0x64, 0x3,0x48,0x58, - 0x1,0x6a,0x31, 0x2,0x4c,0x5f, 0x3,0x48,0x60, 0x1,0x6a,0x30, - 0x2,0x4c,0x55, 0x4,0x45,0x6b, 0x2,0x4c,0x57, 0x1,0x6a,0x29, - 0x2,0x4c,0x5c, 0x2,0x4c,0x5b, 0x2,0x4c,0x5e, 0x1,0x6a,0x2e, - 0x2,0x4c,0x59, 0x2,0x4c,0x58, 0x3,0x48,0x5a, 0x3,0x48,0x5e, - 0x1,0x6a,0x2d, 0x1,0x6a,0x28, 0x2,0x4c,0x5a, 0x1,0x6a,0x2b, - 0x2,0x4c,0x60, 0x2,0x4c,0x62, 0x2,0x4c,0x5d, 0x2,0x4c,0x56, - 0x1,0x6a,0x2c, 0x3,0x48,0x57, 0x3,0x48,0x5d, 0x1,0x6e,0x34, - 0x1,0x6a,0x27, 0x4,0x45,0x64, 0x3,0x48,0x5c, 0x2,0x4c,0x63, - 0x4,0x45,0x70, 0x2,0x52,0x61, 0x1,0x6e,0x2d, 0x3,0x4d,0x5c, - 0x2,0x52,0x63, 0x4,0x4c,0x2b, 0x1,0x6e,0x2e, 0x3,0x4d,0x65, - 0x3,0x4d,0x5d, 0x1,0x6e,0x30, 0x2,0x52,0x66, 0x4,0x4b,0x7a, - 0x2,0x52,0x5e, 0x1,0x6a,0x2f, 0x2,0x52,0x64, 0x4,0x4b,0x73, - 0x4,0x4c,0x31, 0x4,0x4b,0x74, 0x4,0x4c,0x2a, 0x2,0x52,0x60, - 0x3,0x4d,0x60, 0x1,0x65,0x67, 0x1,0x6e,0x33, 0x4,0x4c,0x21, - 0x4,0x4b,0x78, 0x1,0x6e,0x2f, 0x4,0x4c,0x26, 0x1,0x6e,0x31, - 0x1,0x6e,0x32, 0x4,0x4b,0x76, 0x1,0x71,0x60, 0x2,0x52,0x65, - 0x2,0x52,0x5f, 0x1,0x6e,0x35, 0x3,0x4d,0x63, 0x2,0x52,0x62, - 0x3,0x66,0x21, 0x2,0x59,0x2c, 0x2,0x59,0x27, 0x4,0x52,0x2d, - 0x5,0x56,0x69, 0x2,0x59,0x31, 0x1,0x71,0x5e, 0x2,0x59,0x29, - 0x1,0x71,0x62, 0x2,0x59,0x2f, 0x2,0x59,0x26, 0x2,0x59,0x23, - 0x2,0x59,0x32, 0x1,0x74,0x5b, 0x1,0x71,0x63, 0x2,0x59,0x2e, - 0x2,0x59,0x24, 0x1,0x71,0x61, 0x2,0x59,0x28, 0x1,0x71,0x65, - 0x2,0x59,0x25, 0x2,0x59,0x2a, 0x1,0x71,0x64, 0x2,0x59,0x2d, - 0x2,0x59,0x30, 0x3,0x52,0x33, 0x3,0x52,0x34, 0x2,0x5e,0x38, - 0x2,0x5e,0x39, 0x2,0x5e,0x29, 0x2,0x5e,0x30, 0x2,0x5e,0x2e, - 0x4,0x57,0x5f, 0x3,0x55,0x6d, 0x1,0x74,0x59, 0x2,0x5e,0x35, - 0x2,0x59,0x2b, 0x3,0x55,0x6b, 0x2,0x5e,0x2c, 0x3,0x55,0x6e, - 0x2,0x5e,0x36, 0x1,0x74,0x58, 0x2,0x5e,0x2b, 0x2,0x5e,0x2a, - 0x2,0x5e,0x34, 0x2,0x5e,0x31, 0x2,0x5e,0x33, 0x4,0x57,0x54, - 0x2,0x5e,0x27, 0x2,0x5e,0x37, 0x1,0x74,0x56, 0x3,0x55,0x70, - 0x2,0x5e,0x32, 0x2,0x5e,0x3b, 0x2,0x5e,0x2f, 0x1,0x74,0x5a, - 0x1,0x74,0x57, 0x2,0x5e,0x2d, 0x2,0x5e,0x28, 0x2,0x5e,0x3a, - 0x1,0x71,0x5f, 0x3,0x55,0x71, 0xf,0x5b,0x5f, 0x4,0x57,0x57, - 0x3,0x55,0x6f, 0x2,0x62,0x4f, 0x3,0x58,0x50, 0x3,0x58,0x4e, - 0x2,0x62,0x4d, 0x2,0x62,0x53, 0x1,0x76,0x7a, 0x2,0x62,0x51, - 0x2,0x62,0x50, 0x1,0x76,0x7c, 0x2,0x62,0x56, 0x1,0x76,0x7b, - 0x3,0x58,0x51, 0x2,0x62,0x57, 0x2,0x62,0x54, 0x1,0x76,0x78, - 0x2,0x62,0x55, 0x2,0x62,0x4e, 0x1,0x76,0x79, 0x1,0x76,0x77, - 0x2,0x66,0x35, 0x2,0x62,0x52, 0x3,0x58,0x4c, 0x3,0x66,0x22, - 0x2,0x62,0x58, 0x3,0x66,0x23, 0x2,0x66,0x32, 0x3,0x5a,0x6f, - 0x3,0x5a,0x6e, 0x4,0x60,0x4e, 0x1,0x78,0x5d, 0x1,0x78,0x5b, - 0x2,0x66,0x34, 0x4,0x60,0x4c, 0x2,0x66,0x36, 0x2,0x66,0x33, - 0x1,0x78,0x5c, 0x1,0x78,0x59, 0x1,0x78,0x5a, 0x1,0x78,0x5e, - 0x3,0x66,0x24, 0x1,0x7a,0x25, 0x3,0x5c,0x66, 0x2,0x69,0x57, - 0x5,0x6c,0x79, 0x2,0x69,0x56, 0x2,0x69,0x54, 0x2,0x69,0x53, - 0x2,0x69,0x55, 0x3,0x5c,0x65, 0x1,0x7a,0x24, 0x1,0x7a,0x26, - 0x3,0x66,0x25, 0xf,0x65,0x67, 0x1,0x7a,0x7b, 0x3,0x5e,0x4c, - 0x4,0x66,0x6f, 0x2,0x6b,0x73, 0x2,0x6b,0x72, 0x3,0x5c,0x67, - 0x3,0x5e,0x4b, 0x2,0x6d,0x68, 0x3,0x5f,0x58, 0x2,0x6d,0x6a, - 0x2,0x6d,0x6c, 0x2,0x6d,0x6b, 0x2,0x6d,0x69, 0x3,0x5f,0x57, - 0x3,0x60,0x3f, 0x1,0x7b,0x6d, 0x1,0x7b,0x6c, 0x3,0x60,0x3e, - 0x1,0x7c,0x3f, 0x1,0x7c,0x3e, 0x1,0x7c,0x40, 0x2,0x6f,0x3c, - 0x2,0x6f,0x3b, 0x3,0x66,0x26, 0x2,0x71,0x2b, 0x2,0x70,0x46, - 0x2,0x71,0x2c, 0x1,0x7d,0x25, 0x3,0x61,0x44, 0x1,0x7d,0x26, - 0x2,0x71,0x5c, 0x4,0x6d,0x5b, 0x3,0x62,0x3a, 0x1,0x7d,0x4b, - 0x1,0x48,0x4d, 0x3,0x2a,0x49, 0x2,0x28,0x48, 0x3,0x2a,0x48, - 0x3,0x2e,0x52, 0x2,0x2c,0x66, 0x2,0x2c,0x67, 0x2,0x2c,0x65, - 0x3,0x2e,0x54, 0x3,0x2e,0x53, 0x1,0x52,0x76, 0xf,0x2d,0x21, - 0x2,0x2c,0x68, 0x2,0x2c,0x69, 0x2,0x2c,0x6a, 0x3,0x33,0x31, - 0x2,0x31,0x6b, 0x2,0x31,0x71, 0x3,0x33,0x2e, 0x3,0x33,0x30, - 0x2,0x31,0x6f, 0x1,0x57,0x3e, 0x2,0x31,0x6d, 0x3,0x33,0x32, - 0x2,0x31,0x6e, 0x2,0x31,0x70, 0x3,0x33,0x2d, 0x2,0x31,0x6c, - 0x1,0x5c,0x4e, 0x3,0x37,0x7d, 0x2,0x38,0x23, 0x1,0x5c,0x50, - 0x2,0x38,0x25, 0x1,0x5c,0x4f, 0x2,0x38,0x24, 0x3,0x37,0x7e, - 0x3,0x38,0x21, 0x3,0x38,0x3e, 0x3,0x38,0x22, 0x4,0x34,0x22, - 0x2,0x3e,0x6c, 0x1,0x61,0x35, 0x3,0x3e,0x21, 0x2,0x3e,0x6e, - 0x2,0x3e,0x6b, 0x2,0x38,0x26, 0x3,0x3e,0x23, 0x1,0x61,0x36, - 0x3,0x3e,0x22, 0x3,0x3d,0x7e, 0x2,0x3e,0x6d, 0x3,0x66,0x27, - 0xf,0x3e,0x21, 0xf,0x3e,0x23, 0x3,0x43,0x58, 0x2,0x45,0x7b, - 0x3,0x43,0x5c, 0x1,0x65,0x6b, 0x2,0x45,0x79, 0x1,0x65,0x6c, - 0x2,0x45,0x7a, 0x1,0x65,0x6d, 0x4,0x45,0x74, 0x3,0x48,0x62, - 0x3,0x48,0x61, 0x1,0x6a,0x32, 0x2,0x4c,0x68, 0x2,0x4c,0x65, - 0x2,0x4c,0x67, 0x1,0x6a,0x33, 0x1,0x6a,0x34, 0x2,0x4c,0x66, - 0xf,0x4b,0x27, 0xf,0x4b,0x2b, 0x3,0x4d,0x6f, 0x3,0x4d,0x71, - 0x3,0x4d,0x6d, 0x2,0x52,0x67, 0x3,0x4d,0x70, 0x3,0x4d,0x73, - 0x2,0x52,0x68, 0x3,0x4d,0x72, 0x1,0x6e,0x36, 0x2,0x52,0x6a, - 0x2,0x52,0x69, 0x3,0x4d,0x6e, 0x1,0x23,0x23, 0x4,0x52,0x44, - 0x2,0x59,0x36, 0x2,0x59,0x37, 0x2,0x59,0x33, 0x3,0x52,0x37, - 0x2,0x59,0x34, 0x1,0x71,0x66, 0x1,0x71,0x67, 0x2,0x59,0x35, - 0x1,0x74,0x61, 0x3,0x55,0x75, 0x3,0x55,0x74, 0x1,0x74,0x5d, - 0x1,0x74,0x62, 0x1,0x74,0x5e, 0x1,0x74,0x60, 0x1,0x74,0x5c, - 0x3,0x52,0x39, 0x1,0x74,0x5f, 0x3,0x58,0x55, 0x4,0x5c,0x5a, - 0x4,0x5c,0x5b, 0x3,0x58,0x54, 0x1,0x76,0x7d, 0x2,0x5e,0x3c, - 0x7,0x48,0x57, 0x2,0x66,0x38, 0x4,0x60,0x5a, 0x2,0x66,0x37, - 0x3,0x66,0x28, 0x2,0x69,0x58, 0x1,0x7a,0x27, 0x1,0x7a,0x28, - 0x2,0x6d,0x6e, 0x2,0x6b,0x74, 0x3,0x61,0x69, 0x2,0x6d,0x6d, - 0x3,0x60,0x40, 0x2,0x71,0x2d, 0x2,0x71,0x72, 0x1,0x48,0x4e, - 0x3,0x27,0x22, 0x1,0x4b,0x37, 0x3,0x2a,0x4b, 0x2,0x28,0x49, - 0x1,0x4f,0x2b, 0x3,0x2a,0x4a, 0x1,0x52,0x79, 0x2,0x2c,0x6d, - 0x1,0x52,0x77, 0x2,0x2c,0x6b, 0x1,0x52,0x7c, 0x1,0x52,0x78, - 0x1,0x52,0x7d, 0x1,0x52,0x7b, 0x2,0x2c,0x6c, 0x1,0x52,0x7a, - 0x1,0x57,0x42, 0x1,0x57,0x41, 0x2,0x31,0x7c, 0x1,0x57,0x4a, - 0x2,0x31,0x75, 0x2,0x31,0x7b, 0x1,0x57,0x46, 0x2,0x31,0x74, - 0x2,0x31,0x7a, 0x2,0x31,0x78, 0x1,0x57,0x45, 0x1,0x57,0x47, - 0x2,0x31,0x77, 0x1,0x57,0x40, 0x2,0x31,0x76, 0x1,0x57,0x4b, - 0x1,0x57,0x48, 0x1,0x57,0x4c, 0x1,0x57,0x49, 0x2,0x31,0x73, - 0x2,0x31,0x72, 0x2,0x31,0x79, 0x1,0x57,0x43, 0x1,0x57,0x3f, - 0x1,0x57,0x44, 0x4,0x2f,0x25, 0x3,0x33,0x37, 0x3,0x33,0x3b, - 0x2,0x38,0x35, 0x2,0x38,0x2e, 0x4,0x3a,0x26, 0x1,0x61,0x3b, - 0x2,0x38,0x2d, 0x3,0x38,0x29, 0x1,0x5c,0x54, 0x1,0x5c,0x5b, - 0x1,0x5c,0x58, 0x1,0x5c,0x5e, 0x1,0x5c,0x5d, 0x1,0x5c,0x59, - 0x3,0x38,0x26, 0x2,0x38,0x27, 0x2,0x38,0x2a, 0x3,0x38,0x27, - 0x2,0x38,0x29, 0x1,0x5c,0x55, 0x2,0x38,0x2b, 0x2,0x38,0x34, - 0x1,0x5c,0x56, 0x2,0x38,0x28, 0x2,0x38,0x31, 0x2,0x38,0x32, - 0x1,0x5c,0x57, 0x2,0x38,0x2f, 0x1,0x5c,0x5c, 0x1,0x5c,0x52, - 0x1,0x5c,0x5a, 0x2,0x38,0x2c, 0x1,0x5c,0x51, 0x2,0x38,0x30, - 0x3,0x38,0x2e, 0x3,0x38,0x24, 0x2,0x38,0x33, 0xf,0x37,0x54, - 0x3,0x38,0x2b, 0x3,0x3e,0x34, 0x2,0x3f,0x21, 0x2,0x3e,0x76, - 0x1,0x61,0x38, 0x2,0x3e,0x7d, 0x2,0x3e,0x7a, 0x2,0x3e,0x72, - 0x2,0x3e,0x7b, 0x1,0x61,0x3a, 0x2,0x3e,0x73, 0x3,0x3e,0x29, - 0x2,0x3e,0x6f, 0x3,0x3e,0x26, 0x3,0x3e,0x2e, 0x1,0x65,0x73, - 0x2,0x3e,0x78, 0x3,0x3e,0x2f, 0x1,0x61,0x37, 0x2,0x3e,0x7e, - 0x3,0x3e,0x28, 0x1,0x61,0x3e, 0x1,0x61,0x40, 0x2,0x3e,0x71, - 0x3,0x3e,0x2c, 0x4,0x3a,0x27, 0x1,0x61,0x3f, 0x2,0x3e,0x74, - 0x1,0x61,0x39, 0x2,0x3e,0x7c, 0x2,0x3e,0x75, 0x2,0x3e,0x79, - 0x3,0x3e,0x2a, 0x2,0x3e,0x77, 0x1,0x61,0x3c, 0x2,0x3e,0x70, - 0x1,0x61,0x41, 0x1,0x5c,0x53, 0x1,0x61,0x3d, 0x1,0x61,0x42, - 0x3,0x3e,0x24, 0x3,0x3e,0x35, 0x3,0x3e,0x33, 0x3,0x43,0x67, - 0x1,0x65,0x6f, 0x2,0x46,0x24, 0x2,0x46,0x26, 0x2,0x46,0x28, - 0x2,0x46,0x2c, 0x3,0x3e,0x2b, 0x2,0x46,0x22, 0x2,0x45,0x7e, - 0x1,0x65,0x71, 0x4,0x3f,0x71, 0x2,0x46,0x27, 0x2,0x46,0x2b, - 0x2,0x46,0x23, 0x2,0x45,0x7d, 0x3,0x43,0x66, 0x2,0x45,0x7c, - 0x3,0x43,0x69, 0x3,0x43,0x60, 0x3,0x43,0x62, 0x2,0x46,0x29, - 0x2,0x46,0x21, 0x2,0x46,0x25, 0x1,0x65,0x72, 0x3,0x43,0x5e, - 0x1,0x65,0x70, 0x2,0x46,0x2d, 0x1,0x65,0x6e, 0x2,0x46,0x2a, - 0x3,0x43,0x64, 0x2,0x4c,0x79, 0x3,0x43,0x68, 0x3,0x43,0x6a, - 0x3,0x43,0x63, 0x1,0x6a,0x37, 0x2,0x4c,0x71, 0x1,0x6e,0x43, - 0x2,0x4c,0x7b, 0x1,0x6a,0x3a, 0x2,0x4d,0x21, 0x1,0x6a,0x40, - 0x2,0x4c,0x6c, 0x3,0x48,0x74, 0x4,0x45,0x7b, 0x2,0x4c,0x7c, - 0x2,0x4c,0x69, 0x3,0x48,0x6d, 0x2,0x4c,0x7e, 0x2,0x4c,0x6d, - 0x3,0x48,0x6e, 0x1,0x6a,0x47, 0x1,0x6a,0x44, 0x2,0x4c,0x7d, - 0x2,0x4c,0x77, 0x1,0x6a,0x36, 0x1,0x6a,0x3e, 0x1,0x6a,0x3d, - 0x3,0x48,0x70, 0x1,0x6a,0x3c, 0x1,0x6a,0x42, 0x3,0x48,0x69, - 0x2,0x4c,0x6a, 0x1,0x6a,0x43, 0x2,0x4c,0x78, 0x1,0x6a,0x3f, - 0x1,0x6a,0x35, 0x2,0x4c,0x7a, 0x1,0x6a,0x38, 0x1,0x6a,0x39, - 0x1,0x6a,0x41, 0x2,0x4c,0x6f, 0x2,0x4c,0x6e, 0x2,0x4c,0x6b, - 0x4,0x45,0x7c, 0x2,0x4c,0x73, 0x2,0x4c,0x70, 0x2,0x4c,0x74, - 0x1,0x6a,0x46, 0x3,0x48,0x68, 0x2,0x4d,0x22, 0x1,0x6a,0x3b, - 0x2,0x4c,0x75, 0x2,0x4c,0x76, 0x3,0x48,0x71, 0x2,0x4c,0x72, - 0x3,0x48,0x73, 0x3,0x66,0x29, 0x3,0x48,0x6b, 0x1,0x6a,0x45, - 0x3,0x66,0x2b, 0x3,0x4e,0x22, 0x2,0x52,0x6f, 0x1,0x6e,0x3b, - 0x1,0x6e,0x44, 0x1,0x6e,0x40, 0x2,0x52,0x6c, 0x3,0x4d,0x7c, - 0x1,0x6e,0x3d, 0x1,0x6e,0x41, 0x2,0x52,0x78, 0x1,0x6e,0x37, - 0x2,0x52,0x70, 0x3,0x4d,0x78, 0x1,0x6e,0x3f, 0x3,0x4e,0x24, - 0x3,0x4e,0x2f, 0x2,0x52,0x73, 0x2,0x52,0x6e, 0x1,0x6e,0x3e, - 0x1,0x6e,0x42, 0x2,0x52,0x6d, 0x3,0x4e,0x2e, 0x1,0x6e,0x3c, - 0x3,0x4d,0x77, 0x2,0x52,0x77, 0x1,0x6e,0x39, 0x2,0x52,0x76, - 0x2,0x52,0x75, 0x1,0x6e,0x45, 0x2,0x50,0x3b, 0x1,0x6e,0x38, - 0x3,0x4e,0x2b, 0x2,0x52,0x74, 0x2,0x52,0x6b, 0x3,0x4d,0x75, - 0x1,0x6e,0x46, 0x2,0x52,0x72, 0x1,0x6e,0x3a, 0x3,0x4e,0x28, - 0x3,0x4e,0x29, 0x3,0x4e,0x25, 0x3,0x4e,0x2c, 0x3,0x4e,0x27, - 0x3,0x4d,0x7e, 0x3,0x4d,0x7d, 0x2,0x52,0x71, 0x4,0x4c,0x45, - 0x3,0x66,0x2a, 0x1,0x71,0x6a, 0x1,0x71,0x6f, 0x1,0x71,0x68, - 0x2,0x59,0x44, 0x2,0x59,0x3b, 0x2,0x59,0x47, 0x2,0x59,0x3f, - 0x2,0x59,0x45, 0x1,0x71,0x70, 0x1,0x71,0x69, 0x2,0x59,0x38, - 0x2,0x59,0x3e, 0x2,0x59,0x48, 0x2,0x59,0x41, 0x2,0x59,0x46, - 0x2,0x59,0x3a, 0x4,0x52,0x4c, 0x3,0x52,0x3b, 0x2,0x59,0x42, - 0x1,0x71,0x6b, 0x2,0x59,0x40, 0x1,0x71,0x6e, 0x1,0x71,0x6d, - 0x2,0x59,0x3c, 0x2,0x59,0x3d, 0x2,0x59,0x39, 0x2,0x59,0x43, - 0x1,0x71,0x6c, 0x2,0x59,0x4a, 0x2,0x59,0x49, 0x3,0x52,0x40, - 0x3,0x52,0x3f, 0x2,0x5e,0x47, 0x2,0x5e,0x43, 0x1,0x74,0x69, - 0x3,0x55,0x79, 0x2,0x5e,0x3d, 0x1,0x74,0x63, 0x1,0x74,0x73, - 0x2,0x5e,0x49, 0x1,0x74,0x6b, 0x1,0x74,0x67, 0x2,0x5e,0x40, - 0x1,0x74,0x6e, 0x1,0x74,0x71, 0x2,0x5e,0x4b, 0x1,0x74,0x66, - 0x2,0x5e,0x42, 0x1,0x74,0x6f, 0x2,0x5e,0x4d, 0x2,0x5e,0x4a, - 0x2,0x5e,0x3e, 0x1,0x74,0x6a, 0x1,0x74,0x64, 0x1,0x74,0x72, - 0x2,0x5e,0x45, 0x1,0x74,0x6d, 0x2,0x5e,0x3f, 0x1,0x74,0x68, - 0x2,0x5e,0x4c, 0x1,0x74,0x6c, 0x1,0x74,0x65, 0x2,0x5e,0x46, - 0x1,0x74,0x70, 0x2,0x5e,0x44, 0x2,0x5e,0x48, 0x3,0x55,0x7a, - 0x4,0x5c,0x5f, 0x3,0x58,0x59, 0x2,0x62,0x5a, 0x2,0x62,0x60, - 0x1,0x77,0x25, 0x2,0x62,0x63, 0x1,0x76,0x7e, 0x1,0x77,0x21, - 0x2,0x62,0x5b, 0x2,0x62,0x62, 0x2,0x62,0x5d, 0x1,0x77,0x26, - 0x1,0x77,0x23, 0x3,0x58,0x5b, 0x2,0x62,0x59, 0x3,0x58,0x58, - 0x1,0x77,0x22, 0x2,0x62,0x5f, 0x2,0x62,0x61, 0x1,0x77,0x24, - 0x2,0x62,0x5e, 0x2,0x62,0x5c, 0x3,0x66,0x2c, 0x4,0x5c,0x5e, - 0x3,0x58,0x5a, 0x2,0x66,0x42, 0x1,0x78,0x62, 0x1,0x78,0x63, - 0x1,0x78,0x5f, 0x3,0x5a,0x72, 0x1,0x78,0x60, 0x3,0x5a,0x74, - 0x2,0x66,0x3e, 0x2,0x66,0x3c, 0x3,0x5a,0x75, 0x2,0x66,0x40, - 0x1,0x78,0x64, 0x2,0x66,0x41, 0x2,0x66,0x3a, 0x2,0x66,0x39, - 0x2,0x66,0x3d, 0x2,0x66,0x3b, 0x1,0x78,0x61, 0x2,0x66,0x3f, - 0x2,0x69,0x59, 0x1,0x7a,0x2b, 0x1,0x7a,0x2a, 0x2,0x69,0x5a, - 0x3,0x5c,0x6c, 0x2,0x69,0x5c, 0x2,0x69,0x5b, 0x1,0x7a,0x2c, - 0x3,0x5e,0x53, 0x3,0x5e,0x50, 0x2,0x6b,0x79, 0x2,0x6b,0x76, - 0x2,0x6b,0x77, 0x3,0x5e,0x51, 0x2,0x6b,0x75, 0x2,0x6b,0x78, - 0x1,0x7a,0x7d, 0x2,0x6b,0x7a, 0x3,0x5e,0x52, 0x1,0x7a,0x7c, - 0x2,0x6d,0x6f, 0x3,0x5f,0x5a, 0x1,0x7c,0x41, 0x1,0x7c,0x43, - 0x2,0x6f,0x3d, 0x1,0x7c,0x42, 0x2,0x70,0x47, 0x2,0x71,0x2f, - 0x2,0x71,0x31, 0x2,0x71,0x2e, 0x2,0x71,0x30, 0x1,0x7d,0x39, - 0x4,0x6d,0x78, 0x3,0x62,0x35, 0x1,0x48,0x4f, 0x4,0x25,0x57, - 0x1,0x52,0x7e, 0x2,0x30,0x52, 0x1,0x57,0x4d, 0x3,0x38,0x31, - 0xf,0x31,0x78, 0x1,0x5c,0x5f, 0x2,0x3f,0x22, 0x2,0x3f,0x23, - 0x3,0x66,0x2d, 0x3,0x48,0x77, 0x2,0x59,0x4b, 0x1,0x74,0x74, - 0x2,0x5e,0x4e, 0x3,0x55,0x7d, 0x3,0x58,0x5c, 0x1,0x77,0x27, - 0x2,0x66,0x44, 0x2,0x66,0x43, 0x1,0x7a,0x2d, 0x2,0x6b,0x7b, - 0x3,0x5f,0x5b, 0x2,0x6d,0x70, 0x1,0x7c,0x64, 0x2,0x22,0x69, - 0x4,0x22,0x21, 0x1,0x4f,0x2c, 0x1,0x4b,0x38, 0xf,0x28,0x4a, - 0x2,0x2c,0x6e, 0x3,0x2a,0x4e, 0x2,0x32,0x24, 0x2,0x31,0x7d, - 0x2,0x32,0x23, 0x2,0x32,0x21, 0x1,0x57,0x4e, 0x2,0x32,0x22, - 0x2,0x31,0x7e, 0x3,0x33,0x3c, 0x2,0x38,0x36, 0x4,0x3a,0x2b, - 0x2,0x3f,0x24, 0x2,0x3f,0x25, 0x2,0x46,0x30, 0x2,0x46,0x31, - 0x1,0x65,0x75, 0x1,0x65,0x76, 0x2,0x46,0x2f, 0x2,0x46,0x32, - 0x2,0x46,0x2e, 0x1,0x65,0x74, 0x3,0x48,0x78, 0x1,0x6a,0x48, - 0x3,0x48,0x79, 0x1,0x65,0x77, 0x2,0x4d,0x23, 0x1,0x6e,0x47, - 0x2,0x52,0x79, 0x1,0x6e,0x48, 0x3,0x4e,0x30, 0x1,0x71,0x71, - 0x2,0x59,0x4e, 0x2,0x59,0x4c, 0x2,0x59,0x4d, 0x2,0x5e,0x51, - 0x2,0x5e,0x50, 0x2,0x5e,0x4f, 0x7,0x41,0x61, 0x4,0x5c,0x68, - 0x2,0x66,0x45, 0x4,0x60,0x6f, 0x1,0x78,0x65, 0x2,0x66,0x46, - 0x2,0x6d,0x71, 0x1,0x7c,0x65, 0x2,0x70,0x48, 0x1,0x48,0x50, - 0x1,0x4f,0x2e, 0x1,0x4f,0x2d, 0x2,0x2c,0x70, 0x1,0x53,0x21, - 0x3,0x2e,0x5d, 0x4,0x2f,0x30, 0x2,0x2c,0x6f, 0x2,0x32,0x26, - 0x3,0x33,0x3d, 0x1,0x57,0x4f, 0x2,0x38,0x37, 0x2,0x32,0x25, - 0x3,0x33,0x3f, 0x4,0x2f,0x2f, 0x3,0x33,0x3e, 0x1,0x5c,0x61, - 0x2,0x38,0x3a, 0x2,0x38,0x38, 0x2,0x38,0x39, 0x1,0x5c,0x60, - 0x2,0x3f,0x27, 0x2,0x3f,0x28, 0x2,0x3f,0x26, 0x3,0x43,0x6e, - 0x1,0x65,0x7a, 0x2,0x46,0x34, 0x2,0x46,0x33, 0x2,0x46,0x35, - 0x1,0x65,0x79, 0x1,0x65,0x78, 0x4,0x46,0x26, 0x2,0x52,0x7a, - 0x2,0x52,0x7c, 0x3,0x4e,0x31, 0x1,0x6e,0x49, 0x2,0x52,0x7b, - 0x2,0x59,0x4f, 0x1,0x71,0x72, 0x2,0x62,0x65, 0x3,0x58,0x5d, - 0x2,0x62,0x64, 0x1,0x78,0x66, 0x2,0x66,0x47, 0x1,0x78,0x68, - 0x1,0x78,0x67, 0x2,0x69,0x5d, 0x2,0x6b,0x7c, 0x1,0x7a,0x7e, - 0x1,0x48,0x51, 0x2,0x2c,0x71, 0x1,0x53,0x22, 0x2,0x32,0x29, - 0x1,0x57,0x51, 0x2,0x32,0x28, 0x2,0x32,0x27, 0x3,0x33,0x42, - 0x1,0x57,0x50, 0x3,0x33,0x43, 0x2,0x38,0x40, 0x4,0x34,0x3d, - 0x2,0x38,0x42, 0x2,0x38,0x3b, 0x2,0x38,0x3c, 0x1,0x5c,0x62, - 0x2,0x38,0x3d, 0x1,0x5c,0x63, 0x2,0x38,0x41, 0x2,0x38,0x3e, - 0x2,0x38,0x3f, 0x1,0x5c,0x64, 0x3,0x3e,0x37, 0x1,0x61,0x44, - 0x1,0x61,0x45, 0x3,0x3e,0x38, 0x2,0x3f,0x29, 0x2,0x46,0x36, - 0x2,0x46,0x37, 0x3,0x43,0x72, 0x2,0x4d,0x27, 0x1,0x6a,0x4b, - 0x1,0x6a,0x49, 0x1,0x6a,0x4a, 0x2,0x4d,0x24, 0x2,0x4d,0x25, - 0x6,0x60,0x58, 0x2,0x4d,0x26, 0x2,0x53,0x23, 0x3,0x4e,0x32, - 0x2,0x53,0x24, 0x1,0x6e,0x4a, 0x2,0x53,0x21, 0x2,0x52,0x7e, - 0x2,0x53,0x22, 0x2,0x52,0x7d, 0x1,0x71,0x75, 0x2,0x59,0x50, - 0x1,0x71,0x73, 0x1,0x71,0x74, 0x2,0x5e,0x53, 0x1,0x74,0x75, - 0x2,0x5e,0x52, 0x2,0x61,0x34, 0x3,0x55,0x7e, 0x2,0x62,0x66, - 0x2,0x62,0x67, 0x1,0x77,0x28, 0x3,0x58,0x61, 0x1,0x77,0x29, - 0x1,0x74,0x76, 0x2,0x66,0x48, 0x2,0x66,0x49, 0x2,0x69,0x5e, - 0x1,0x7a,0x2e, 0x1,0x48,0x52, 0x3,0x66,0x7b, 0x1,0x48,0x53, - 0x1,0x57,0x53, 0x1,0x4f,0x2f, 0x1,0x57,0x52, 0x2,0x2c,0x72, - 0x3,0x38,0x36, 0x4,0x2b,0x25, 0x3,0x33,0x44, 0x1,0x61,0x46, - 0x1,0x48,0x54, 0x1,0x53,0x24, 0x2,0x2c,0x73, 0x2,0x2c,0x74, - 0x1,0x53,0x23, 0x1,0x53,0x25, 0x1,0x48,0x55, 0x4,0x27,0x61, - 0x2,0x2c,0x75, 0x1,0x57,0x55, 0x2,0x32,0x2a, 0x1,0x57,0x57, - 0x1,0x57,0x54, 0x1,0x57,0x56, 0x3,0x38,0x37, 0x2,0x38,0x45, - 0x1,0x5c,0x65, 0x3,0x38,0x39, 0x2,0x38,0x44, 0x2,0x38,0x43, - 0x4,0x3a,0x38, 0x2,0x46,0x38, 0x3,0x49,0x22, 0x2,0x4d,0x28, - 0x4,0x46,0x2c, 0x1,0x6e,0x4b, 0x1,0x71,0x76, 0x2,0x59,0x52, - 0x2,0x59,0x51, 0x3,0x56,0x21, 0x2,0x5e,0x54, 0x4,0x5c,0x71, - 0x3,0x58,0x62, 0x3,0x5c,0x6f, 0x2,0x6b,0x7d, 0x4,0x69,0x2e, - 0x4,0x69,0x2d, 0x1,0x48,0x56, 0x2,0x24,0x73, 0x2,0x28,0x4a, - 0x1,0x53,0x26, 0x2,0x2c,0x76, 0x6,0x3b,0x21, 0x2,0x32,0x2c, - 0x4,0x2f,0x3a, 0x3,0x33,0x49, 0x3,0x33,0x48, 0x1,0x57,0x58, - 0x2,0x32,0x2b, 0x1,0x57,0x59, 0x3,0x33,0x47, 0x3,0x66,0x2f, - 0x2,0x38,0x47, 0x3,0x38,0x3d, 0x3,0x38,0x3c, 0x1,0x5c,0x67, - 0x2,0x38,0x46, 0x2,0x38,0x48, 0x3,0x38,0x3b, 0x1,0x5c,0x66, - 0x3,0x3e,0x3c, 0x2,0x3f,0x2b, 0x2,0x3f,0x2c, 0x2,0x3f,0x2a, - 0x1,0x61,0x47, 0x3,0x67,0x29, 0x4,0x3f,0x7c, 0x1,0x65,0x7b, - 0x3,0x43,0x73, 0x1,0x65,0x7c, 0x4,0x46,0x33, 0x1,0x6a,0x4d, - 0x3,0x49,0x23, 0x2,0x4d,0x2a, 0x2,0x4d,0x29, 0x1,0x6a,0x4c, - 0x3,0x49,0x26, 0x3,0x3e,0x3b, 0x3,0x49,0x25, 0x3,0x66,0x30, - 0x2,0x53,0x25, 0x3,0x4e,0x34, 0x3,0x4e,0x36, 0x2,0x53,0x26, - 0x3,0x4e,0x37, 0x3,0x4e,0x35, 0x3,0x4e,0x38, 0x2,0x59,0x53, - 0x4,0x52,0x5c, 0x3,0x52,0x43, 0x1,0x74,0x7a, 0x1,0x74,0x79, - 0x1,0x74,0x77, 0x1,0x74,0x78, 0x1,0x74,0x7b, 0x3,0x56,0x22, - 0x2,0x62,0x68, 0x1,0x77,0x2b, 0x1,0x77,0x2a, 0x2,0x66,0x4a, - 0x2,0x69,0x5f, 0x3,0x5c,0x70, 0x3,0x5c,0x71, 0x3,0x5c,0x72, - 0x1,0x7b,0x6f, 0x1,0x7b,0x6e, 0x1,0x48,0x57, 0x6,0x3b,0x24, - 0x2,0x2f,0x7d, 0x1,0x65,0x7e, 0x1,0x61,0x48, 0x1,0x65,0x7d, - 0x1,0x6a,0x4e, 0x6,0x60,0x60, 0x1,0x48,0x58, 0x2,0x21,0x68, - 0x1,0x48,0x59, 0x1,0x48,0x5a, 0x3,0x24,0x35, 0x3,0x24,0x36, - 0x2,0x28,0x4b, 0x2,0x24,0x76, 0x3,0x27,0x24, 0x2,0x24,0x77, - 0x1,0x4b,0x3a, 0x3,0x27,0x26, 0x2,0x24,0x74, 0x1,0x4b,0x39, - 0x3,0x27,0x25, 0x1,0x4b,0x3c, 0x2,0x24,0x75, 0x1,0x4b,0x3e, - 0x1,0x4b,0x3d, 0x2,0x24,0x78, 0x1,0x4b,0x3b, 0x4,0x24,0x70, - 0x3,0x27,0x23, 0x1,0x4f,0x34, 0x1,0x4f,0x32, 0x2,0x28,0x4d, - 0x3,0x2a,0x56, 0x1,0x4f,0x31, 0x3,0x2a,0x5b, 0x3,0x2a,0x58, - 0x3,0x2a,0x4f, 0x1,0x4f,0x36, 0x1,0x4f,0x38, 0x1,0x4f,0x35, - 0x3,0x2a,0x59, 0x2,0x28,0x50, 0x2,0x28,0x4c, 0x1,0x4f,0x39, - 0x3,0x2a,0x52, 0x1,0x4f,0x33, 0x1,0x4b,0x3f, 0x3,0x2a,0x54, - 0x1,0x4f,0x37, 0x2,0x28,0x4f, 0x3,0x2a,0x57, 0x4,0x27,0x64, - 0x2,0x28,0x4e, 0x4,0x27,0x69, 0x1,0x4f,0x30, 0x3,0x66,0x31, - 0x2,0x2c,0x7c, 0x1,0x53,0x2a, 0x1,0x53,0x2b, 0x2,0x2c,0x7e, - 0x3,0x2e,0x66, 0x2,0x2c,0x78, 0x2,0x2c,0x7b, 0x2,0x2d,0x26, - 0x2,0x2d,0x24, 0x3,0x2e,0x60, 0x1,0x53,0x2c, 0x2,0x2d,0x2a, - 0x1,0x53,0x2f, 0x2,0x2d,0x27, 0x2,0x2c,0x7d, 0x2,0x2c,0x7a, - 0x3,0x2e,0x61, 0x3,0x2e,0x5e, 0x2,0x3f,0x2e, 0x2,0x2d,0x25, - 0x1,0x53,0x27, 0x2,0x2d,0x28, 0x2,0x2c,0x77, 0x2,0x2d,0x22, - 0x1,0x53,0x29, 0x1,0x53,0x2e, 0x2,0x2d,0x23, 0x1,0x53,0x32, - 0x1,0x53,0x30, 0x3,0x2e,0x65, 0x2,0x2c,0x79, 0x1,0x53,0x2d, - 0x3,0x2e,0x64, 0x2,0x2d,0x21, 0x1,0x53,0x31, 0x1,0x53,0x28, - 0x2,0x2d,0x29, 0x1,0x57,0x5e, 0x3,0x33,0x4c, 0x1,0x57,0x67, - 0x1,0x57,0x5c, 0x1,0x57,0x5a, 0x2,0x32,0x2e, 0x1,0x57,0x62, - 0x1,0x57,0x5f, 0x2,0x32,0x30, 0x3,0x33,0x4a, 0x3,0x33,0x52, - 0x1,0x57,0x61, 0x2,0x32,0x2f, 0x2,0x32,0x2d, 0x2,0x32,0x32, - 0x1,0x57,0x66, 0x1,0x57,0x64, 0x2,0x3f,0x2d, 0x3,0x33,0x4b, - 0x2,0x32,0x33, 0x2,0x32,0x31, 0x1,0x57,0x5b, 0x3,0x33,0x4e, - 0x3,0x33,0x4d, 0x1,0x57,0x5d, 0x1,0x57,0x60, 0x3,0x33,0x4f, - 0x1,0x57,0x63, 0x3,0x2e,0x63, 0x1,0x57,0x65, 0x3,0x3e,0x44, - 0x2,0x38,0x52, 0x1,0x5c,0x69, 0x3,0x38,0x49, 0x2,0x38,0x49, - 0x2,0x38,0x4b, 0x3,0x38,0x47, 0x2,0x38,0x4c, 0x4,0x34,0x4d, - 0x2,0x38,0x54, 0x2,0x38,0x50, 0x2,0x38,0x4e, 0x4,0x3a,0x3b, - 0x2,0x38,0x51, 0x2,0x38,0x55, 0x1,0x5c,0x6a, 0x1,0x5c,0x6e, - 0x2,0x38,0x4a, 0x4,0x34,0x47, 0x2,0x38,0x53, 0x4,0x34,0x50, - 0x1,0x5c,0x6c, 0x3,0x38,0x41, 0x1,0x5c,0x6b, 0x2,0x38,0x4f, - 0x2,0x38,0x4d, 0x3,0x38,0x42, 0x1,0x5c,0x68, 0x1,0x5c,0x6d, - 0x3,0x38,0x45, 0x3,0x38,0x48, 0x1,0x61,0x4e, 0x2,0x3f,0x36, - 0x3,0x3e,0x3e, 0x4,0x3a,0x3e, 0x2,0x3f,0x34, 0x1,0x61,0x50, - 0x4,0x3a,0x47, 0x3,0x3e,0x43, 0x3,0x3e,0x45, 0x3,0x3e,0x41, - 0x2,0x3f,0x2f, 0x2,0x46,0x46, 0x3,0x3e,0x3d, 0x1,0x61,0x4f, - 0x2,0x3f,0x33, 0x3,0x3e,0x40, 0x3,0x3e,0x42, 0x2,0x3f,0x30, - 0x1,0x61,0x4b, 0x1,0x61,0x51, 0x2,0x3f,0x35, 0x1,0x61,0x4d, - 0x2,0x3f,0x32, 0x1,0x6a,0x4f, 0x1,0x61,0x4c, 0x2,0x3f,0x31, - 0x1,0x61,0x52, 0x1,0x61,0x4a, 0x1,0x61,0x49, 0x6,0x43,0x5a, - 0x2,0x46,0x3e, 0x2,0x46,0x3c, 0x3,0x43,0x7b, 0x2,0x46,0x42, - 0x3,0x43,0x7e, 0x2,0x46,0x3a, 0x2,0x46,0x47, 0x2,0x46,0x3f, - 0x3,0x43,0x75, 0x2,0x46,0x39, 0x1,0x66,0x24, 0x1,0x66,0x2a, - 0x2,0x46,0x44, 0x4,0x40,0x29, 0x2,0x46,0x3d, 0x3,0x43,0x76, - 0x1,0x66,0x27, 0x3,0x43,0x77, 0x3,0x44,0x23, 0x1,0x66,0x25, - 0x2,0x46,0x45, 0x1,0x66,0x22, 0x1,0x66,0x21, 0x2,0x46,0x40, - 0x1,0x66,0x26, 0x1,0x61,0x53, 0x3,0x43,0x7c, 0x2,0x46,0x43, - 0x2,0x46,0x3b, 0x1,0x66,0x23, 0x1,0x66,0x28, 0x1,0x66,0x29, - 0x3,0x44,0x22, 0x1,0x6a,0x54, 0x1,0x6a,0x50, 0x3,0x49,0x27, - 0x1,0x6a,0x55, 0x2,0x4d,0x2d, 0x3,0x49,0x2a, 0x4,0x46,0x39, - 0x2,0x4d,0x2c, 0x2,0x4d,0x2e, 0x1,0x6a,0x52, 0x2,0x4d,0x2b, - 0x1,0x6a,0x53, 0x2,0x4d,0x31, 0x2,0x4d,0x30, 0x2,0x4d,0x2f, - 0x4,0x46,0x46, 0x1,0x6a,0x51, 0x4,0x52,0x67, 0x3,0x4e,0x3b, - 0x3,0x4e,0x3d, 0x3,0x4e,0x39, 0x2,0x53,0x2a, 0x3,0x4e,0x3c, - 0x2,0x53,0x2d, 0x1,0x6e,0x51, 0x2,0x53,0x2c, 0x1,0x6e,0x50, - 0x1,0x6e,0x4c, 0x1,0x6e,0x4d, 0x1,0x6e,0x4e, 0x2,0x53,0x29, - 0x2,0x53,0x28, 0x1,0x6e,0x4f, 0x3,0x4e,0x3a, 0x2,0x53,0x2b, - 0x2,0x53,0x27, 0x2,0x59,0x55, 0x2,0x59,0x5f, 0x1,0x71,0x79, - 0x1,0x71,0x78, 0x3,0x52,0x49, 0x2,0x59,0x59, 0x2,0x59,0x5b, - 0x3,0x52,0x47, 0x2,0x59,0x56, 0x3,0x52,0x44, 0x2,0x59,0x5a, - 0x2,0x59,0x54, 0x2,0x59,0x5d, 0x1,0x71,0x77, 0x2,0x59,0x5c, - 0x2,0x59,0x58, 0x2,0x59,0x5e, 0x3,0x56,0x23, 0x2,0x59,0x57, - 0x1,0x74,0x7e, 0x2,0x5e,0x55, 0x2,0x5e,0x5b, 0x1,0x75,0x24, - 0x1,0x75,0x26, 0x1,0x75,0x23, 0x1,0x75,0x22, 0x4,0x58,0x27, - 0x1,0x75,0x21, 0x1,0x74,0x7d, 0x2,0x5e,0x56, 0x2,0x5e,0x59, - 0x1,0x74,0x7c, 0x2,0x5e,0x5a, 0x3,0x56,0x24, 0x1,0x75,0x25, - 0x2,0x5e,0x58, 0x7,0x48,0x7c, 0x2,0x5e,0x57, 0x1,0x77,0x2c, - 0x3,0x58,0x65, 0x1,0x77,0x2d, 0x2,0x62,0x6b, 0x2,0x62,0x69, - 0x2,0x62,0x6a, 0x3,0x5a,0x77, 0x2,0x66,0x4c, 0x3,0x5a,0x78, - 0x2,0x66,0x4b, 0x1,0x78,0x69, 0x2,0x69,0x61, 0x1,0x7a,0x2f, - 0x2,0x69,0x60, 0x2,0x6b,0x7e, 0x2,0x6d,0x72, 0x1,0x7b,0x70, - 0x2,0x71,0x32, 0x2,0x71,0x33, 0x1,0x7c,0x44, 0x1,0x48,0x5b, - 0x4,0x27,0x6c, 0x1,0x4f,0x3a, 0x2,0x3f,0x37, 0x1,0x6a,0x56, - 0x1,0x75,0x27, 0x2,0x5e,0x5c, 0x1,0x48,0x5c, 0x4,0x24,0x73, - 0x1,0x57,0x69, 0x1,0x57,0x68, 0x2,0x3f,0x38, 0x3,0x3e,0x47, - 0x4,0x3a,0x4c, 0x4,0x4c,0x62, 0x2,0x59,0x60, 0x1,0x48,0x5d, - 0x1,0x53,0x33, 0x4,0x3a,0x4d, 0x3,0x3e,0x48, 0x2,0x3f,0x39, - 0x2,0x3f,0x3a, 0x2,0x3f,0x3b, 0x1,0x6a,0x57, 0x1,0x71,0x7a, - 0x1,0x48,0x5e, 0x4,0x27,0x6d, 0x1,0x4f,0x3b, 0x2,0x2d,0x2b, - 0x1,0x57,0x6a, 0x2,0x32,0x34, 0x1,0x5c,0x6f, 0x3,0x3e,0x49, - 0x2,0x3f,0x3c, 0x1,0x66,0x2b, 0x1,0x6a,0x58, 0x1,0x71,0x7b, - 0x1,0x75,0x28, 0x1,0x77,0x2e, 0x2,0x66,0x4d, 0x1,0x48,0x5f, - 0x1,0x4f,0x3c, 0x3,0x2a,0x5d, 0x4,0x27,0x6e, 0x1,0x57,0x6b, - 0x2,0x38,0x56, 0x1,0x61,0x54, 0x3,0x49,0x2b, 0x1,0x6a,0x59, - 0x2,0x4d,0x32, 0x2,0x53,0x2e, 0x3,0x52,0x4a, 0x3,0x58,0x68, - 0x3,0x5a,0x79, 0x1,0x48,0x60, 0x1,0x61,0x55, 0x2,0x46,0x48, - 0x1,0x6a,0x5a, 0x1,0x48,0x61, 0x2,0x28,0x51, 0x2,0x2d,0x2c, - 0x1,0x53,0x34, 0x3,0x2e,0x68, 0x2,0x32,0x36, 0x4,0x2f,0x4f, - 0x3,0x33,0x57, 0x1,0x57,0x6e, 0x3,0x33,0x58, 0x1,0x57,0x6c, - 0x1,0x57,0x6d, 0x1,0x57,0x6f, 0x3,0x33,0x55, 0x2,0x32,0x35, - 0x2,0x38,0x5b, 0x2,0x38,0x58, 0x2,0x38,0x5a, 0x1,0x5c,0x70, - 0x1,0x5c,0x72, 0x1,0x5c,0x71, 0x2,0x38,0x57, 0x1,0x5c,0x73, - 0x2,0x38,0x59, 0x2,0x3f,0x3d, 0x2,0x3f,0x3e, 0x2,0x3f,0x3f, - 0x2,0x46,0x4b, 0x3,0x44,0x26, 0x2,0x46,0x4c, 0x4,0x40,0x2e, - 0x2,0x46,0x4a, 0x2,0x46,0x4d, 0x4,0x40,0x2d, 0x1,0x66,0x2c, - 0x3,0x66,0x34, 0x2,0x46,0x49, 0x3,0x49,0x2d, 0x1,0x6a,0x5b, - 0x3,0x49,0x2e, 0x2,0x53,0x33, 0x2,0x53,0x2f, 0x2,0x53,0x32, - 0x2,0x53,0x34, 0x2,0x53,0x31, 0x2,0x53,0x30, 0x2,0x59,0x61, - 0x2,0x59,0x62, 0x2,0x59,0x63, 0x1,0x71,0x7c, 0x1,0x71,0x7d, - 0x2,0x5e,0x5e, 0x2,0x5e,0x5d, 0x2,0x5e,0x5f, 0x2,0x62,0x6d, - 0x2,0x62,0x6c, 0x2,0x66,0x4f, 0x3,0x5a,0x7a, 0x2,0x66,0x50, - 0x2,0x66,0x4e, 0x3,0x5a,0x7b, 0x1,0x7a,0x30, 0x4,0x64,0x2c, - 0x2,0x69,0x62, 0x2,0x69,0x63, 0x3,0x5e,0x55, 0x2,0x6d,0x73, - 0x2,0x6f,0x3e, 0x2,0x70,0x49, 0x1,0x48,0x62, 0x1,0x4b,0x40, - 0x1,0x75,0x29, 0x1,0x48,0x63, 0xf,0x32,0x32, 0x2,0x38,0x5c, - 0x2,0x3f,0x40, 0x3,0x5a,0x7c, 0x1,0x7c,0x6c, 0x2,0x22,0x6a, - 0x4,0x21,0x53, 0x3,0x24,0x38, 0x2,0x22,0x6b, 0x2,0x22,0x6d, - 0x1,0x48,0x64, 0x2,0x22,0x6e, 0x2,0x22,0x6c, 0x4,0x23,0x2f, - 0x2,0x25,0x22, 0x2,0x25,0x23, 0x2,0x24,0x7b, 0x3,0x27,0x28, - 0x4,0x24,0x7b, 0x4,0x24,0x75, 0x2,0x25,0x21, 0x1,0x4b,0x42, - 0x3,0x27,0x29, 0x1,0x4b,0x43, 0x2,0x24,0x7c, 0x2,0x24,0x7a, - 0x2,0x24,0x79, 0x2,0x24,0x7d, 0x1,0x4b,0x41, 0x2,0x24,0x7e, - 0x2,0x2d,0x2d, 0x3,0x27,0x2b, 0x4,0x24,0x79, 0x2,0x28,0x56, - 0x1,0x4f,0x3f, 0x2,0x28,0x55, 0x2,0x28,0x57, 0x3,0x2a,0x60, - 0x1,0x4f,0x3e, 0x2,0x28,0x5c, 0x1,0x4f,0x42, 0x2,0x28,0x52, - 0x2,0x28,0x60, 0x2,0x28,0x66, 0x1,0x4f,0x49, 0x2,0x28,0x63, - 0x1,0x4f,0x46, 0x3,0x2a,0x6b, 0x2,0x28,0x59, 0x2,0x28,0x5f, - 0x2,0x28,0x61, 0x3,0x2a,0x66, 0x2,0x28,0x54, 0x1,0x4f,0x45, - 0x1,0x4f,0x40, 0x2,0x28,0x5a, 0x1,0x4f,0x47, 0x1,0x4f,0x4a, - 0x1,0x4f,0x44, 0x3,0x2a,0x6c, 0x1,0x4f,0x3d, 0x2,0x28,0x5e, - 0x2,0x28,0x58, 0x2,0x28,0x65, 0x1,0x4f,0x4c, 0x1,0x4f,0x48, - 0x1,0x4f,0x43, 0x2,0x28,0x5d, 0x1,0x57,0x70, 0x2,0x28,0x5b, - 0x1,0x4f,0x41, 0x1,0x4f,0x4b, 0x4,0x27,0x7a, 0x2,0x28,0x53, - 0x4,0x27,0x7e, 0x2,0x28,0x62, 0x2,0x28,0x64, 0x3,0x2a,0x5e, - 0xf,0x28,0x63, 0x3,0x2a,0x68, 0x4,0x27,0x7b, 0x3,0x2e,0x76, - 0x1,0x53,0x45, 0x1,0x53,0x3f, 0x1,0x53,0x47, 0x1,0x53,0x44, - 0x2,0x2d,0x34, 0x2,0x2d,0x37, 0x1,0x53,0x40, 0x3,0x2e,0x6a, - 0x2,0x2d,0x2e, 0x4,0x2b,0x3a, 0x1,0x53,0x39, 0x1,0x53,0x43, - 0x3,0x2e,0x6b, 0x1,0x53,0x46, 0x1,0x53,0x48, 0x2,0x2d,0x43, - 0x2,0x2d,0x3a, 0x3,0x2e,0x78, 0x1,0x53,0x38, 0x2,0x2d,0x42, - 0x1,0x53,0x3c, 0x1,0x53,0x3a, 0x1,0x53,0x35, 0x2,0x2d,0x32, - 0x3,0x2e,0x72, 0x2,0x2d,0x41, 0x2,0x2d,0x36, 0x2,0x2d,0x39, - 0x2,0x2d,0x46, 0x3,0x2e,0x74, 0x1,0x53,0x49, 0x2,0x2d,0x40, - 0x1,0x53,0x41, 0x2,0x2d,0x3b, 0x2,0x2d,0x45, 0x2,0x2d,0x38, - 0x2,0x2d,0x3c, 0x2,0x2d,0x3f, 0x3,0x2e,0x69, 0x3,0x2e,0x6e, - 0x2,0x2d,0x30, 0x2,0x2d,0x44, 0x2,0x2d,0x3e, 0x3,0x2e,0x6f, - 0x3,0x2e,0x7a, 0x2,0x2d,0x2f, 0x6,0x34,0x3c, 0x2,0x2d,0x33, - 0x1,0x53,0x42, 0x1,0x53,0x3d, 0x1,0x53,0x36, 0x1,0x53,0x3b, - 0x1,0x53,0x37, 0x1,0x53,0x4a, 0x2,0x2d,0x31, 0x2,0x32,0x47, - 0x1,0x53,0x3e, 0x4,0x2b,0x3d, 0x3,0x2e,0x79, 0x2,0x2d,0x3d, - 0x2,0x29,0x42, 0x3,0x2e,0x77, 0x3,0x66,0x35, 0x3,0x66,0x37, - 0x2,0x32,0x4a, 0x1,0x57,0x7e, 0x3,0x33,0x62, 0x2,0x32,0x3a, - 0x4,0x2f,0x5d, 0x2,0x32,0x45, 0x2,0x32,0x41, 0x3,0x38,0x4d, - 0x2,0x32,0x54, 0x3,0x33,0x59, 0x2,0x32,0x4c, 0x3,0x33,0x5f, - 0x2,0x32,0x42, 0x3,0x38,0x5b, 0x2,0x32,0x4b, 0x2,0x32,0x3c, - 0x2,0x32,0x40, 0x2,0x32,0x57, 0x1,0x58,0x23, 0x2,0x32,0x4f, - 0x2,0x32,0x46, 0x1,0x57,0x71, 0x2,0x32,0x55, 0x2,0x32,0x38, - 0x4,0x2f,0x5a, 0x2,0x32,0x4e, 0x4,0x2f,0x63, 0x1,0x58,0x22, - 0x1,0x57,0x7b, 0x2,0x32,0x37, 0x1,0x57,0x79, 0x1,0x57,0x78, - 0x1,0x57,0x7d, 0x2,0x32,0x4d, 0x1,0x57,0x75, 0x1,0x57,0x7c, - 0x2,0x2d,0x35, 0x2,0x3f,0x41, 0x2,0x32,0x48, 0x4,0x2f,0x5f, - 0x3,0x2a,0x5f, 0x2,0x32,0x3e, 0x1,0x58,0x21, 0x2,0x32,0x3f, - 0x2,0x32,0x43, 0x1,0x58,0x24, 0x2,0x32,0x39, 0x2,0x32,0x51, - 0x3,0x3e,0x57, 0x2,0x32,0x50, 0x2,0x32,0x58, 0x1,0x57,0x77, - 0x1,0x57,0x74, 0x2,0x32,0x56, 0x2,0x32,0x52, 0x2,0x32,0x49, - 0x2,0x32,0x44, 0x1,0x57,0x7a, 0x1,0x57,0x76, 0x2,0x32,0x3b, - 0x1,0x57,0x72, 0x2,0x32,0x53, 0x1,0x57,0x73, 0x4,0x2f,0x5c, - 0x2,0x32,0x3d, 0x3,0x33,0x5a, 0x3,0x33,0x63, 0x3,0x66,0x36, - 0x3,0x2d,0x33, 0x4,0x34,0x67, 0x3,0x38,0x4e, 0x3,0x38,0x51, - 0x2,0x38,0x62, 0x2,0x38,0x64, 0x2,0x38,0x69, 0x2,0x38,0x7d, - 0x1,0x5d,0x23, 0x1,0x5c,0x77, 0x3,0x38,0x54, 0x2,0x38,0x61, - 0x1,0x5d,0x24, 0x1,0x5d,0x25, 0x2,0x38,0x6c, 0x2,0x38,0x73, - 0x2,0x38,0x79, 0x3,0x38,0x50, 0x2,0x38,0x66, 0x4,0x34,0x6d, - 0x2,0x38,0x6d, 0x3,0x38,0x4f, 0x3,0x38,0x5d, 0x1,0x5d,0x26, - 0x2,0x38,0x7b, 0x2,0x38,0x76, 0x1,0x5d,0x21, 0x1,0x5c,0x7d, - 0x2,0x38,0x72, 0x2,0x38,0x6e, 0x2,0x38,0x60, 0x1,0x5c,0x74, - 0x2,0x38,0x65, 0x2,0x38,0x5d, 0x3,0x38,0x55, 0x1,0x5c,0x7c, - 0x1,0x5c,0x7e, 0x2,0x38,0x6a, 0x2,0x38,0x67, 0x1,0x5c,0x79, - 0x2,0x38,0x77, 0x1,0x5c,0x76, 0x2,0x38,0x68, 0x2,0x3f,0x6a, - 0x2,0x38,0x70, 0x3,0x38,0x5e, 0x2,0x38,0x6f, 0x1,0x5c,0x75, - 0x3,0x38,0x57, 0x1,0x5d,0x22, 0x3,0x38,0x52, 0x1,0x5c,0x78, - 0x2,0x38,0x5e, 0x2,0x38,0x63, 0x2,0x38,0x74, 0x2,0x38,0x7a, - 0x1,0x5d,0x27, 0x2,0x38,0x5f, 0x2,0x38,0x6b, 0x2,0x38,0x71, - 0x1,0x5c,0x7b, 0x4,0x34,0x6f, 0x3,0x38,0x58, 0x2,0x38,0x7c, - 0x2,0x38,0x75, 0x2,0x38,0x78, 0x3,0x38,0x5f, 0xf,0x37,0x78, - 0x1,0x5c,0x7a, 0x4,0x3a,0x68, 0x2,0x3f,0x51, 0x2,0x3f,0x45, - 0x1,0x61,0x5d, 0x2,0x3f,0x62, 0x2,0x3f,0x6b, 0x2,0x3f,0x6e, - 0x1,0x61,0x5b, 0x2,0x3f,0x4d, 0x2,0x3f,0x66, 0x2,0x3f,0x4e, - 0x2,0x3f,0x5c, 0x1,0x61,0x68, 0x2,0x3f,0x58, 0x1,0x61,0x65, - 0x3,0x3e,0x5e, 0x2,0x3f,0x59, 0x2,0x3f,0x42, 0x5,0x3b,0x6f, - 0x2,0x3f,0x67, 0x3,0x3e,0x4f, 0x3,0x3e,0x59, 0x1,0x61,0x6e, - 0x2,0x3f,0x64, 0x2,0x3f,0x5a, 0x2,0x3f,0x70, 0x2,0x3f,0x55, - 0x2,0x46,0x6d, 0x3,0x3e,0x4d, 0x2,0x3f,0x73, 0x1,0x61,0x6c, - 0x2,0x3f,0x53, 0x2,0x3f,0x5f, 0x1,0x61,0x6f, 0x1,0x61,0x5a, - 0x2,0x3f,0x57, 0x2,0x3f,0x71, 0x2,0x3f,0x50, 0x2,0x3f,0x49, - 0x2,0x3f,0x54, 0x3,0x3e,0x5f, 0x2,0x3f,0x48, 0x2,0x3f,0x46, - 0x1,0x61,0x56, 0x2,0x3f,0x68, 0x2,0x3f,0x4f, 0x2,0x3f,0x6c, - 0x3,0x3e,0x4b, 0x2,0x3f,0x6d, 0x1,0x61,0x5e, 0x1,0x61,0x63, - 0x1,0x61,0x5f, 0x1,0x61,0x67, 0x2,0x3f,0x63, 0x1,0x61,0x60, - 0x2,0x3f,0x5b, 0x2,0x3f,0x4b, 0xf,0x3e,0x66, 0x1,0x61,0x58, - 0x2,0x3f,0x43, 0x2,0x3f,0x65, 0x2,0x3f,0x6f, 0x2,0x3f,0x4a, - 0x1,0x61,0x66, 0x2,0x3f,0x74, 0x2,0x3f,0x56, 0x3,0x3e,0x52, - 0x2,0x3f,0x52, 0x3,0x3e,0x5c, 0x1,0x61,0x57, 0x1,0x61,0x6b, - 0x3,0x3e,0x5a, 0x2,0x3f,0x61, 0x1,0x61,0x6d, 0x3,0x3e,0x50, - 0x2,0x3f,0x5d, 0x1,0x61,0x62, 0x1,0x61,0x5c, 0x1,0x61,0x64, - 0x1,0x61,0x59, 0x1,0x61,0x6a, 0x2,0x3f,0x5e, 0x2,0x3f,0x4c, - 0x2,0x3f,0x60, 0x2,0x3f,0x47, 0x2,0x3f,0x69, 0x3,0x3e,0x58, - 0x4,0x3a,0x67, 0x3,0x3e,0x5d, 0x3,0x3e,0x56, 0x3,0x3e,0x4e, - 0x2,0x3f,0x72, 0x3,0x66,0x39, 0x3,0x3e,0x5b, 0x3,0x66,0x38, - 0x2,0x3f,0x44, 0x2,0x46,0x6c, 0x3,0x44,0x2d, 0x2,0x47,0x24, - 0x1,0x65,0x5c, 0x2,0x46,0x71, 0x3,0x44,0x31, 0x2,0x46,0x6f, - 0x2,0x46,0x5a, 0x1,0x66,0x30, 0x2,0x46,0x6a, 0x2,0x46,0x7e, - 0x2,0x46,0x66, 0x1,0x66,0x38, 0x2,0x46,0x7d, 0x2,0x46,0x64, - 0x1,0x61,0x69, 0x2,0x46,0x74, 0x2,0x46,0x65, 0x2,0x46,0x7b, - 0x1,0x66,0x37, 0x1,0x66,0x2f, 0x3,0x44,0x3a, 0x2,0x46,0x4f, - 0x2,0x46,0x57, 0x3,0x44,0x35, 0x2,0x46,0x70, 0x2,0x46,0x68, - 0x2,0x47,0x23, 0x2,0x46,0x6b, 0x1,0x66,0x3d, 0x2,0x46,0x7c, - 0x3,0x44,0x2c, 0x1,0x66,0x34, 0x3,0x44,0x3e, 0x2,0x46,0x6e, - 0x2,0x46,0x76, 0x2,0x46,0x5b, 0x2,0x46,0x75, 0x3,0x44,0x27, - 0x2,0x47,0x28, 0x2,0x46,0x56, 0x2,0x46,0x77, 0x3,0x44,0x33, - 0x2,0x47,0x26, 0x3,0x44,0x3f, 0x2,0x46,0x50, 0x1,0x61,0x61, - 0x3,0x44,0x40, 0x2,0x46,0x5e, 0x2,0x46,0x5d, 0x1,0x66,0x36, - 0x3,0x44,0x32, 0x2,0x46,0x61, 0x2,0x46,0x63, 0x2,0x46,0x72, - 0x2,0x47,0x25, 0x1,0x66,0x39, 0x3,0x44,0x38, 0x1,0x66,0x3a, - 0x3,0x44,0x30, 0x2,0x46,0x55, 0x1,0x66,0x32, 0x2,0x46,0x59, - 0x2,0x47,0x21, 0x1,0x66,0x3b, 0x4,0x40,0x44, 0x1,0x66,0x33, - 0x1,0x66,0x35, 0x1,0x66,0x3c, 0x2,0x47,0x27, 0x2,0x46,0x78, - 0x2,0x46,0x73, 0x3,0x44,0x3c, 0x3,0x44,0x2f, 0x2,0x46,0x60, - 0x2,0x46,0x5f, 0x1,0x66,0x31, 0x2,0x46,0x51, 0x1,0x66,0x2e, - 0x2,0x46,0x69, 0x2,0x46,0x52, 0x2,0x46,0x67, 0x3,0x44,0x2e, - 0x4,0x40,0x41, 0x2,0x46,0x5c, 0x2,0x47,0x22, 0x3,0x44,0x2a, - 0x3,0x44,0x39, 0x4,0x40,0x36, 0x1,0x66,0x2d, 0x3,0x44,0x3b, - 0x3,0x44,0x28, 0x2,0x46,0x58, 0x4,0x40,0x46, 0x2,0x46,0x54, - 0x2,0x46,0x7a, 0x2,0x46,0x53, 0x1,0x6a,0x68, 0x2,0x4d,0x5a, - 0x3,0x49,0x35, 0x3,0x49,0x44, 0x2,0x4d,0x49, 0x3,0x49,0x33, - 0x3,0x49,0x38, 0x2,0x4d,0x33, 0x2,0x4d,0x51, 0x1,0x6a,0x60, - 0x2,0x4d,0x42, 0x2,0x4d,0x4c, 0x1,0x6a,0x63, 0x2,0x4d,0x45, - 0x1,0x6a,0x61, 0x2,0x4d,0x36, 0x2,0x4d,0x54, 0x2,0x4d,0x35, - 0x2,0x4d,0x48, 0x3,0x49,0x3c, 0x2,0x4d,0x34, 0x3,0x49,0x39, - 0x4,0x46,0x6c, 0x2,0x4d,0x46, 0x2,0x4d,0x4f, 0x2,0x4d,0x4d, - 0x2,0x4d,0x41, 0x2,0x4d,0x3c, 0x2,0x4d,0x3a, 0x3,0x49,0x42, - 0x2,0x4d,0x3b, 0x2,0x4d,0x4e, 0x2,0x4d,0x59, 0x2,0x4d,0x43, - 0x1,0x6a,0x62, 0x3,0x49,0x3b, 0x2,0x4d,0x3e, 0x3,0x49,0x3a, - 0x2,0x4d,0x52, 0x3,0x49,0x41, 0x1,0x6a,0x65, 0x2,0x4d,0x3d, - 0x2,0x4d,0x37, 0x2,0x4d,0x47, 0x1,0x6a,0x69, 0x3,0x49,0x32, - 0x4,0x46,0x58, 0x1,0x6a,0x5d, 0x1,0x6a,0x66, 0x2,0x4d,0x3f, - 0x2,0x4d,0x39, 0x3,0x49,0x36, 0x1,0x6a,0x5f, 0x2,0x46,0x79, - 0x1,0x6a,0x5e, 0x2,0x4d,0x4a, 0x3,0x44,0x36, 0x1,0x6a,0x5c, - 0x1,0x6a,0x6b, 0x1,0x6a,0x64, 0x2,0x4d,0x4b, 0x2,0x4d,0x40, - 0x2,0x4d,0x38, 0x2,0x4d,0x53, 0x2,0x4d,0x44, 0x1,0x6a,0x6a, - 0x2,0x4d,0x57, 0x1,0x6a,0x67, 0x2,0x4d,0x56, 0x3,0x49,0x3f, - 0x2,0x4d,0x50, 0x2,0x4d,0x55, 0x3,0x49,0x3e, 0x3,0x49,0x43, - 0x2,0x4d,0x58, 0x3,0x66,0x3b, 0x3,0x66,0x3c, 0x3,0x66,0x3a, - 0x3,0x49,0x3d, 0x2,0x53,0x5c, 0x2,0x53,0x5d, 0x2,0x53,0x50, - 0x2,0x53,0x4f, 0x2,0x53,0x4b, 0x1,0x6e,0x5d, 0x3,0x4e,0x4f, - 0x1,0x6e,0x55, 0x2,0x53,0x5f, 0x2,0x53,0x5e, 0x2,0x46,0x4e, - 0x2,0x53,0x48, 0x2,0x53,0x4c, 0x2,0x53,0x46, 0x3,0x4e,0x44, - 0x2,0x53,0x59, 0x2,0x53,0x4a, 0x3,0x4e,0x42, 0x2,0x53,0x60, - 0x2,0x53,0x43, 0x2,0x53,0x41, 0x2,0x53,0x4d, 0x2,0x53,0x57, - 0x2,0x53,0x52, 0x1,0x6e,0x5f, 0x2,0x53,0x38, 0x3,0x4e,0x40, - 0x2,0x53,0x56, 0x3,0x4e,0x4c, 0x3,0x4e,0x46, 0x3,0x4e,0x54, - 0x1,0x6e,0x60, 0x2,0x46,0x62, 0x2,0x53,0x44, 0x2,0x53,0x3b, - 0x2,0x53,0x3e, 0x2,0x53,0x64, 0x2,0x53,0x45, 0x2,0x53,0x3c, - 0x2,0x53,0x3a, 0x2,0x53,0x37, 0x4,0x4c,0x7a, 0x1,0x6e,0x59, - 0x2,0x53,0x4e, 0x1,0x6e,0x58, 0x1,0x6e,0x5c, 0x2,0x53,0x49, - 0x2,0x53,0x51, 0x1,0x6e,0x52, 0x2,0x53,0x61, 0x2,0x53,0x65, - 0x1,0x6e,0x54, 0x3,0x4e,0x4b, 0x2,0x53,0x40, 0x2,0x53,0x54, - 0x2,0x53,0x58, 0x2,0x53,0x3d, 0x2,0x53,0x62, 0x1,0x6e,0x5b, - 0x4,0x4c,0x6a, 0x1,0x6e,0x5a, 0x2,0x53,0x35, 0x1,0x6e,0x5e, - 0x2,0x53,0x5b, 0x2,0x53,0x3f, 0x2,0x53,0x53, 0x2,0x53,0x39, - 0x2,0x53,0x47, 0x2,0x53,0x42, 0x1,0x6e,0x56, 0x1,0x6e,0x57, - 0x2,0x53,0x55, 0x2,0x53,0x66, 0x2,0x53,0x63, 0x2,0x53,0x5a, - 0x4,0x4c,0x78, 0x3,0x4e,0x4d, 0x3,0x4e,0x4e, 0x3,0x4e,0x52, - 0x4,0x4c,0x74, 0x2,0x53,0x36, 0x1,0x6e,0x53, 0x2,0x59,0x74, - 0x3,0x52,0x5a, 0x2,0x59,0x6b, 0x2,0x59,0x6e, 0x3,0x52,0x52, - 0x1,0x72,0x25, 0x2,0x59,0x70, 0x2,0x59,0x65, 0x2,0x59,0x6c, - 0x2,0x59,0x72, 0x1,0x72,0x22, 0x1,0x72,0x26, 0x1,0x71,0x7e, - 0x3,0x52,0x59, 0x3,0x52,0x50, 0x2,0x59,0x67, 0x2,0x59,0x77, - 0x4,0x4d,0x25, 0x4,0x53,0x33, 0x2,0x59,0x71, 0x4,0x53,0x24, - 0x2,0x59,0x68, 0x2,0x5a,0x22, 0x2,0x59,0x7a, 0x2,0x59,0x64, - 0x2,0x5e,0x72, 0x2,0x59,0x6a, 0x1,0x72,0x21, 0x3,0x52,0x58, - 0x2,0x59,0x75, 0x3,0x52,0x54, 0x2,0x5a,0x21, 0x1,0x72,0x29, - 0x3,0x52,0x56, 0x2,0x59,0x7c, 0x2,0x59,0x69, 0x2,0x59,0x6f, - 0x2,0x59,0x73, 0x2,0x59,0x6d, 0x2,0x5a,0x23, 0x2,0x59,0x7e, - 0x2,0x59,0x7b, 0x1,0x72,0x23, 0x1,0x72,0x24, 0x1,0x72,0x28, - 0x2,0x59,0x66, 0x2,0x5a,0x24, 0x1,0x72,0x27, 0x2,0x59,0x78, - 0x3,0x52,0x4f, 0x3,0x52,0x55, 0x2,0x59,0x76, 0x3,0x66,0x3d, - 0x2,0x59,0x79, 0x2,0x5f,0x21, 0x2,0x5e,0x6c, 0x2,0x5e,0x71, - 0x2,0x5e,0x7e, 0x2,0x5e,0x70, 0x2,0x5e,0x68, 0x2,0x5e,0x6d, - 0x4,0x58,0x3e, 0x1,0x75,0x2c, 0x3,0x56,0x2b, 0x2,0x5e,0x61, - 0x2,0x5e,0x79, 0x2,0x5e,0x7b, 0x2,0x5e,0x60, 0x1,0x75,0x2b, - 0x2,0x5e,0x7d, 0x2,0x5e,0x75, 0x1,0x75,0x32, 0x2,0x5e,0x7c, - 0x2,0x5e,0x6e, 0x1,0x75,0x34, 0x2,0x5e,0x66, 0x2,0x59,0x7d, - 0x2,0x5e,0x76, 0x2,0x5e,0x73, 0x2,0x5e,0x62, 0x2,0x5f,0x23, - 0x1,0x75,0x2e, 0x3,0x56,0x28, 0x3,0x56,0x29, 0x1,0x75,0x2f, - 0x2,0x5e,0x64, 0x2,0x5e,0x74, 0x3,0x56,0x2d, 0x2,0x5f,0x22, - 0x2,0x5e,0x77, 0x2,0x5e,0x6a, 0x1,0x75,0x31, 0x1,0x75,0x2d, - 0x2,0x5e,0x78, 0x2,0x5e,0x6b, 0x2,0x5f,0x24, 0x2,0x5e,0x65, - 0x2,0x5e,0x6f, 0x2,0x5e,0x7a, 0x2,0x5e,0x67, 0x2,0x5e,0x69, - 0x4,0x58,0x40, 0x1,0x75,0x35, 0x2,0x5e,0x63, 0x1,0x75,0x33, - 0x1,0x77,0x30, 0x1,0x75,0x2a, 0x3,0x56,0x2c, 0x3,0x56,0x30, - 0x1,0x75,0x30, 0x1,0x77,0x34, 0x2,0x62,0x7d, 0x3,0x58,0x6c, - 0x2,0x62,0x73, 0x2,0x62,0x6e, 0x2,0x62,0x74, 0x2,0x62,0x7e, - 0x2,0x63,0x24, 0x2,0x63,0x23, 0x1,0x77,0x36, 0x1,0x77,0x35, - 0x3,0x58,0x6e, 0x4,0x5d,0x2c, 0x2,0x62,0x75, 0x2,0x63,0x25, - 0x2,0x62,0x78, 0x2,0x62,0x70, 0x3,0x58,0x6f, 0x2,0x62,0x72, - 0x2,0x62,0x71, 0x2,0x62,0x77, 0x2,0x62,0x7c, 0x2,0x62,0x6f, - 0x2,0x62,0x76, 0x2,0x62,0x7b, 0x1,0x77,0x33, 0x4,0x5d,0x28, - 0x2,0x62,0x79, 0x3,0x58,0x6b, 0x1,0x77,0x31, 0x2,0x62,0x7a, - 0x1,0x77,0x2f, 0x1,0x77,0x32, 0x2,0x66,0x60, 0x2,0x63,0x21, - 0x3,0x66,0x3e, 0x1,0x78,0x6d, 0x3,0x5a,0x7e, 0x2,0x66,0x58, - 0x2,0x66,0x5c, 0x2,0x66,0x54, 0x2,0x66,0x57, 0x3,0x5a,0x7d, - 0x2,0x66,0x5f, 0x1,0x78,0x6b, 0x2,0x66,0x64, 0x2,0x66,0x5d, - 0x4,0x60,0x7a, 0x2,0x66,0x55, 0x2,0x66,0x65, 0x2,0x66,0x5e, - 0x1,0x78,0x6e, 0x1,0x78,0x6f, 0x2,0x66,0x62, 0x3,0x5b,0x22, - 0x2,0x66,0x56, 0x1,0x78,0x6a, 0x1,0x78,0x6c, 0x2,0x66,0x51, - 0x2,0x66,0x59, 0x2,0x66,0x53, 0x3,0x5c,0x7b, 0x2,0x66,0x63, - 0x2,0x66,0x61, 0x2,0x66,0x52, 0x2,0x66,0x5a, 0x4,0x60,0x7b, - 0x3,0x5b,0x25, 0x3,0x66,0x3f, 0x2,0x69,0x6a, 0x1,0x78,0x70, - 0x2,0x66,0x5b, 0x1,0x7a,0x32, 0x1,0x7a,0x34, 0x1,0x7a,0x31, - 0x3,0x5c,0x76, 0x2,0x69,0x6f, 0x2,0x69,0x67, 0x2,0x69,0x65, - 0x2,0x69,0x69, 0x2,0x69,0x66, 0x3,0x5c,0x78, 0x3,0x5c,0x7c, - 0x2,0x69,0x6b, 0x2,0x69,0x6d, 0x1,0x7a,0x35, 0x1,0x7a,0x37, - 0x3,0x5d,0x22, 0x2,0x69,0x6c, 0x1,0x7a,0x38, 0x1,0x7a,0x36, - 0x2,0x69,0x6e, 0x3,0x5c,0x7e, 0x4,0x64,0x37, 0x3,0x5d,0x23, - 0x3,0x5c,0x77, 0x1,0x7a,0x33, 0x3,0x5d,0x21, 0x3,0x5e,0x5b, - 0x3,0x5e,0x5a, 0x1,0x7b,0x21, 0x2,0x6c,0x21, 0x2,0x6c,0x27, - 0x1,0x7b,0x23, 0x2,0x69,0x68, 0x2,0x6c,0x26, 0x3,0x5e,0x5c, - 0x2,0x6c,0x2d, 0x2,0x6c,0x24, 0x2,0x6c,0x2b, 0x2,0x6c,0x2a, - 0x2,0x69,0x64, 0x2,0x6c,0x25, 0x2,0x63,0x22, 0x2,0x6c,0x2e, - 0x2,0x6c,0x23, 0x2,0x6c,0x28, 0x3,0x5e,0x58, 0x2,0x6c,0x2c, - 0x2,0x6c,0x22, 0x3,0x5e,0x56, 0x2,0x6d,0x77, 0x1,0x7b,0x22, - 0x2,0x6c,0x29, 0x3,0x5e,0x57, 0x2,0x6f,0x43, 0x2,0x6d,0x78, - 0x2,0x6d,0x76, 0x2,0x6d,0x74, 0x2,0x6d,0x75, 0x2,0x6d,0x79, - 0x3,0x66,0x40, 0x1,0x7c,0x45, 0x2,0x6f,0x41, 0x2,0x6f,0x3f, - 0x2,0x6f,0x44, 0x2,0x6f,0x42, 0x3,0x60,0x43, 0x2,0x6f,0x45, - 0x1,0x7c,0x46, 0x2,0x6f,0x40, 0x3,0x60,0x2f, 0x3,0x61,0x46, - 0x2,0x70,0x4a, 0x3,0x66,0x41, 0x2,0x71,0x34, 0x2,0x71,0x35, - 0x2,0x71,0x36, 0x3,0x61,0x47, 0x3,0x61,0x7c, 0x2,0x72,0x35, - 0x2,0x72,0x2d, 0x2,0x22,0x6f, 0x1,0x4f,0x4d, 0x1,0x53,0x4b, - 0x4,0x2f,0x68, 0x2,0x32,0x5a, 0x2,0x32,0x59, 0x1,0x58,0x25, - 0x1,0x5d,0x28, 0x2,0x39,0x21, 0x3,0x38,0x63, 0x3,0x38,0x60, - 0x2,0x38,0x7e, 0x3,0x38,0x61, 0x1,0x61,0x70, 0x1,0x66,0x3f, - 0x3,0x3e,0x61, 0x1,0x66,0x3e, 0x1,0x66,0x40, 0x5,0x49,0x4e, - 0x2,0x4d,0x5b, 0x2,0x53,0x67, 0x2,0x5a,0x25, 0x2,0x5a,0x27, - 0x2,0x5a,0x26, 0x7,0x32,0x61, 0x1,0x75,0x36, 0x2,0x5f,0x25, - 0x2,0x63,0x26, 0x2,0x71,0x73, 0x1,0x48,0x65, 0x3,0x27,0x2d, - 0x2,0x28,0x69, 0x2,0x28,0x6a, 0x2,0x28,0x68, 0x2,0x28,0x67, - 0x1,0x4f,0x4e, 0x3,0x66,0x42, 0x2,0x2d,0x4a, 0x2,0x2d,0x48, - 0x3,0x2f,0x23, 0x3,0x2e,0x7c, 0x2,0x2d,0x47, 0x3,0x2e,0x7e, - 0x1,0x53,0x4c, 0x1,0x53,0x4e, 0x1,0x53,0x4d, 0x2,0x2d,0x49, - 0x3,0x2f,0x24, 0xf,0x2d,0x3e, 0x3,0x33,0x69, 0x2,0x32,0x66, - 0x2,0x32,0x63, 0x2,0x32,0x61, 0x4,0x2f,0x6d, 0x3,0x33,0x6c, - 0x1,0x58,0x26, 0x2,0x32,0x64, 0x1,0x58,0x2b, 0x2,0x32,0x5e, - 0x2,0x32,0x6d, 0x3,0x33,0x6f, 0x2,0x32,0x6f, 0x2,0x32,0x5f, - 0x3,0x33,0x6e, 0x1,0x58,0x28, 0x2,0x32,0x70, 0x2,0x32,0x6b, - 0x2,0x32,0x5d, 0x2,0x32,0x62, 0x2,0x32,0x6c, 0x2,0x32,0x68, - 0x2,0x32,0x65, 0x3,0x33,0x6b, 0x1,0x58,0x2d, 0x2,0x32,0x6e, - 0x2,0x32,0x60, 0x3,0x33,0x6a, 0x3,0x33,0x70, 0x2,0x32,0x69, - 0x2,0x32,0x5b, 0x1,0x58,0x2c, 0x1,0x58,0x29, 0x2,0x32,0x67, - 0x3,0x33,0x6d, 0x2,0x32,0x6a, 0x2,0x32,0x5c, 0x1,0x58,0x2a, - 0x1,0x58,0x27, 0x4,0x34,0x7a, 0x3,0x38,0x66, 0x1,0x5d,0x32, - 0x2,0x39,0x28, 0x1,0x5d,0x31, 0x3,0x38,0x64, 0x2,0x39,0x2b, - 0x2,0x39,0x2e, 0x1,0x5d,0x2e, 0x1,0x5d,0x2c, 0x2,0x39,0x23, - 0x2,0x39,0x2c, 0x2,0x39,0x2a, 0x2,0x39,0x27, 0x2,0x39,0x2f, - 0x2,0x39,0x30, 0x2,0x39,0x32, 0x2,0x39,0x33, 0x2,0x39,0x22, - 0x1,0x5d,0x2b, 0x2,0x39,0x25, 0x2,0x39,0x24, 0x2,0x39,0x31, - 0x1,0x5d,0x2d, 0x2,0x39,0x26, 0x1,0x5d,0x2f, 0x1,0x5d,0x2a, - 0x2,0x39,0x29, 0x1,0x5d,0x33, 0x4,0x35,0x26, 0x1,0x5d,0x30, - 0x2,0x39,0x2d, 0xf,0x38,0x3a, 0x1,0x61,0x77, 0x2,0x40,0x25, - 0x4,0x3a,0x71, 0x2,0x3f,0x78, 0x1,0x61,0x74, 0x3,0x3e,0x62, - 0x2,0x47,0x2e, 0x2,0x40,0x23, 0x2,0x3f,0x75, 0x1,0x61,0x72, - 0x2,0x3f,0x7a, 0x1,0x61,0x75, 0x2,0x3f,0x7e, 0x2,0x3f,0x7c, - 0x1,0x61,0x78, 0x1,0x61,0x71, 0x4,0x3a,0x76, 0x3,0x3e,0x63, - 0x2,0x3f,0x76, 0x2,0x3f,0x79, 0x1,0x61,0x76, 0x4,0x3a,0x6f, - 0x2,0x3f,0x77, 0x5,0x3b,0x7b, 0x2,0x40,0x24, 0x2,0x40,0x22, - 0x2,0x3f,0x7b, 0x2,0x3f,0x7d, 0x2,0x40,0x21, 0x1,0x61,0x73, - 0x3,0x3e,0x68, 0x2,0x47,0x2f, 0x2,0x47,0x35, 0x2,0x47,0x2b, - 0x2,0x47,0x31, 0x1,0x66,0x41, 0x2,0x47,0x2d, 0x1,0x66,0x47, - 0x3,0x44,0x44, 0x3,0x44,0x45, 0x1,0x66,0x46, 0x3,0x44,0x49, - 0x1,0x66,0x45, 0x2,0x47,0x34, 0x1,0x66,0x48, 0x1,0x66,0x49, - 0x2,0x47,0x2a, 0x2,0x47,0x37, 0x1,0x66,0x4a, 0x1,0x66,0x44, - 0x1,0x66,0x43, 0x2,0x47,0x33, 0x1,0x66,0x4b, 0x2,0x47,0x29, - 0x2,0x47,0x2c, 0x2,0x47,0x36, 0x2,0x47,0x32, 0x4,0x40,0x59, - 0x4,0x40,0x52, 0x2,0x4d,0x7b, 0x2,0x4d,0x70, 0x1,0x66,0x42, - 0x5,0x42,0x5d, 0x3,0x44,0x46, 0x3,0x44,0x48, 0x1,0x6a,0x72, - 0x2,0x4d,0x64, 0x2,0x4d,0x79, 0x2,0x4d,0x65, 0x1,0x6a,0x6d, - 0x3,0x49,0x4f, 0x2,0x4d,0x62, 0x4,0x40,0x55, 0x2,0x4d,0x6b, - 0x2,0x4d,0x63, 0x1,0x6a,0x6f, 0x2,0x4d,0x5d, 0x2,0x4d,0x78, - 0x1,0x6a,0x70, 0x2,0x4d,0x75, 0x2,0x4d,0x76, 0x2,0x4d,0x5e, - 0x1,0x6a,0x75, 0x2,0x4d,0x6d, 0x3,0x49,0x4a, 0x2,0x4d,0x67, - 0x2,0x4d,0x6e, 0x2,0x4d,0x61, 0x4,0x46,0x7e, 0x2,0x4d,0x7a, - 0x2,0x4d,0x72, 0x2,0x4d,0x6c, 0x2,0x4d,0x5c, 0x1,0x6a,0x71, - 0x2,0x4d,0x73, 0x3,0x49,0x45, 0x1,0x6a,0x74, 0x2,0x4d,0x77, - 0x3,0x49,0x4c, 0x2,0x4d,0x71, 0x1,0x6a,0x6e, 0x2,0x4d,0x6f, - 0x3,0x49,0x49, 0x2,0x4d,0x69, 0x1,0x6a,0x6c, 0x2,0x4d,0x60, - 0x2,0x4d,0x68, 0x2,0x4d,0x74, 0x2,0x4d,0x66, 0xf,0x4c,0x33, - 0x3,0x49,0x4e, 0x2,0x4d,0x6a, 0x3,0x49,0x4b, 0x3,0x66,0x43, - 0x1,0x6e,0x6a, 0x2,0x47,0x30, 0x2,0x53,0x79, 0x2,0x54,0x24, - 0x2,0x53,0x78, 0x2,0x53,0x74, 0x2,0x53,0x71, 0x1,0x6e,0x6b, - 0x2,0x53,0x6f, 0x1,0x6a,0x73, 0x2,0x53,0x68, 0x1,0x6e,0x69, - 0x2,0x53,0x6e, 0x1,0x6e,0x68, 0x2,0x53,0x73, 0x2,0x53,0x70, - 0x2,0x54,0x22, 0x2,0x53,0x7b, 0x2,0x53,0x75, 0x2,0x53,0x7a, - 0x1,0x6e,0x64, 0x2,0x53,0x72, 0x2,0x54,0x27, 0x2,0x53,0x69, - 0x2,0x53,0x6a, 0x2,0x54,0x23, 0x1,0x6e,0x65, 0x2,0x54,0x28, - 0x1,0x6e,0x67, 0x2,0x54,0x29, 0x2,0x53,0x77, 0x2,0x4d,0x5f, - 0x2,0x53,0x7d, 0x2,0x53,0x76, 0x2,0x54,0x21, 0x2,0x53,0x7c, - 0x5,0x50,0x55, 0x3,0x4e,0x5d, 0x4,0x4d,0x28, 0x2,0x53,0x6d, - 0x1,0x6e,0x62, 0x2,0x54,0x26, 0x1,0x6e,0x63, 0x2,0x53,0x6b, - 0x1,0x6e,0x66, 0x2,0x5a,0x32, 0x2,0x53,0x7e, 0x2,0x54,0x25, - 0x4,0x4d,0x31, 0x3,0x4e,0x59, 0x2,0x5a,0x2f, 0x1,0x6e,0x61, - 0x1,0x72,0x2a, 0x2,0x5a,0x39, 0x2,0x5a,0x35, 0x4,0x53,0x3c, - 0x2,0x5a,0x33, 0x2,0x5a,0x2e, 0x2,0x5a,0x3d, 0x3,0x52,0x5b, - 0x3,0x52,0x5d, 0x4,0x53,0x44, 0x1,0x72,0x2e, 0x3,0x52,0x5f, - 0x2,0x5a,0x2a, 0x2,0x5a,0x36, 0x2,0x5a,0x37, 0x2,0x5a,0x2d, - 0x2,0x5a,0x2c, 0x2,0x5a,0x3a, 0x4,0x53,0x41, 0x2,0x5a,0x30, - 0x2,0x5a,0x2b, 0x2,0x5a,0x31, 0x3,0x52,0x62, 0x2,0x5a,0x3c, - 0x2,0x5a,0x29, 0x2,0x5a,0x3b, 0x2,0x5a,0x38, 0x1,0x72,0x2c, - 0x1,0x72,0x2b, 0x4,0x53,0x39, 0x3,0x52,0x5e, 0x1,0x72,0x2d, - 0x2,0x5a,0x34, 0x2,0x5a,0x28, 0x3,0x66,0x45, 0x3,0x66,0x44, - 0x2,0x5f,0x27, 0x1,0x75,0x3c, 0x2,0x5f,0x2b, 0x2,0x5f,0x28, - 0x2,0x5f,0x2f, 0x2,0x5f,0x35, 0x2,0x5f,0x2a, 0x3,0x56,0x3a, - 0x2,0x5f,0x3e, 0x1,0x75,0x39, 0x2,0x5f,0x38, 0x2,0x5f,0x2d, - 0x2,0x5f,0x39, 0x2,0x5f,0x34, 0x2,0x5f,0x3b, 0x2,0x5f,0x2c, - 0x1,0x75,0x3e, 0x1,0x75,0x3d, 0x2,0x5f,0x2e, 0x2,0x5f,0x3c, - 0x2,0x5f,0x26, 0x2,0x5f,0x3a, 0x1,0x75,0x37, 0x3,0x56,0x39, - 0x2,0x5f,0x32, 0x2,0x5f,0x31, 0x2,0x5f,0x36, 0x2,0x5f,0x29, - 0x1,0x75,0x3b, 0x3,0x56,0x3b, 0x1,0x75,0x3f, 0x2,0x5f,0x30, - 0x2,0x5f,0x37, 0x1,0x75,0x40, 0x2,0x5f,0x33, 0x3,0x56,0x36, - 0x3,0x56,0x34, 0x1,0x75,0x38, 0x1,0x75,0x3a, 0x2,0x63,0x33, - 0x2,0x63,0x31, 0x3,0x5b,0x28, 0x3,0x58,0x76, 0x2,0x63,0x37, - 0x2,0x63,0x35, 0x2,0x63,0x38, 0x3,0x58,0x78, 0x2,0x63,0x2a, - 0x2,0x63,0x32, 0x2,0x63,0x3c, 0x2,0x5f,0x3d, 0x2,0x63,0x2e, - 0x1,0x77,0x3a, 0x2,0x53,0x6c, 0x2,0x63,0x29, 0x2,0x63,0x36, - 0x2,0x63,0x30, 0x2,0x63,0x2d, 0x2,0x63,0x28, 0x2,0x63,0x27, - 0x2,0x63,0x3b, 0x3,0x58,0x73, 0x2,0x63,0x2c, 0x2,0x63,0x2b, - 0x1,0x77,0x38, 0x2,0x63,0x34, 0x3,0x58,0x74, 0x1,0x77,0x37, - 0x3,0x58,0x75, 0x5,0x64,0x48, 0x1,0x77,0x39, 0x2,0x63,0x2f, - 0x2,0x63,0x3a, 0x3,0x66,0x46, 0x2,0x66,0x69, 0x2,0x66,0x6a, - 0x3,0x5b,0x2c, 0x1,0x78,0x74, 0x2,0x66,0x67, 0x1,0x78,0x71, - 0x2,0x66,0x6f, 0x3,0x5b,0x27, 0x1,0x78,0x75, 0x2,0x66,0x71, - 0x2,0x66,0x66, 0x2,0x63,0x39, 0x2,0x66,0x73, 0x2,0x66,0x68, - 0x5,0x69,0x43, 0x1,0x78,0x72, 0x2,0x66,0x6e, 0x3,0x5b,0x29, - 0x2,0x66,0x70, 0x2,0x66,0x6b, 0x2,0x66,0x72, 0x2,0x66,0x6d, - 0x2,0x66,0x6c, 0x1,0x78,0x73, 0x3,0x58,0x77, 0x3,0x5b,0x2b, - 0x2,0x69,0x71, 0x2,0x69,0x72, 0x3,0x5d,0x25, 0x2,0x69,0x74, - 0x1,0x7a,0x39, 0x1,0x7a,0x3a, 0x2,0x69,0x75, 0x2,0x69,0x73, - 0x3,0x5d,0x24, 0x2,0x69,0x70, 0x3,0x5e,0x5d, 0x2,0x6c,0x31, - 0x2,0x6c,0x34, 0x2,0x6c,0x30, 0x4,0x61,0x26, 0x1,0x7b,0x27, - 0x2,0x6c,0x32, 0x1,0x7b,0x26, 0x1,0x7b,0x25, 0x1,0x7b,0x24, - 0x2,0x6c,0x33, 0x2,0x6d,0x7e, 0x2,0x6d,0x7c, 0x3,0x5f,0x5f, - 0x2,0x6d,0x7b, 0x2,0x6c,0x2f, 0x2,0x6d,0x7d, 0x2,0x6c,0x35, - 0x2,0x6d,0x7a, 0x3,0x60,0x45, 0x2,0x6f,0x48, 0x2,0x6f,0x26, - 0x2,0x6f,0x46, 0x1,0x7c,0x47, 0x2,0x6f,0x47, 0x2,0x6f,0x49, - 0x3,0x66,0x47, 0x2,0x70,0x4d, 0x1,0x7c,0x66, 0x2,0x70,0x4c, - 0x2,0x70,0x4b, 0x1,0x7c,0x67, 0x4,0x6c,0x23, 0x1,0x7d,0x27, - 0x2,0x71,0x5d, 0x2,0x71,0x75, 0x2,0x71,0x74, 0x2,0x71,0x76, - 0x1,0x48,0x66, 0x2,0x2d,0x4b, 0x3,0x2f,0x26, 0x2,0x32,0x71, - 0x2,0x32,0x72, 0x3,0x38,0x6a, 0x3,0x3e,0x6a, 0x3,0x3e,0x69, - 0x2,0x40,0x26, 0x6,0x4e,0x4f, 0x2,0x6c,0x36, 0x2,0x70,0x4e, - 0x1,0x48,0x67, 0x1,0x53,0x4f, 0x2,0x2d,0x4c, 0x3,0x33,0x71, - 0x3,0x66,0x48, 0x4,0x35,0x27, 0x2,0x39,0x34, 0x1,0x5d,0x34, - 0x2,0x40,0x28, 0x2,0x40,0x27, 0x1,0x61,0x79, 0x3,0x44,0x4d, - 0x1,0x66,0x4c, 0x2,0x54,0x2a, 0x1,0x6e,0x6c, 0x3,0x4e,0x5f, - 0x1,0x6e,0x6d, 0x3,0x52,0x63, 0x3,0x52,0x64, 0x4,0x53,0x4b, - 0x1,0x72,0x2f, 0x1,0x7c,0x68, 0x1,0x48,0x68, 0x3,0x2f,0x27, - 0x2,0x2d,0x4d, 0x1,0x4f,0x50, 0x2,0x2d,0x4f, 0x2,0x2d,0x4e, - 0x1,0x53,0x50, 0x2,0x32,0x73, 0x3,0x33,0x74, 0x2,0x32,0x7a, - 0x1,0x58,0x2e, 0x2,0x32,0x78, 0x2,0x32,0x76, 0x3,0x33,0x77, - 0x2,0x32,0x7d, 0x2,0x32,0x74, 0x2,0x32,0x75, 0x1,0x58,0x2f, - 0x3,0x33,0x72, 0x1,0x58,0x33, 0x3,0x33,0x73, 0x3,0x33,0x75, - 0x2,0x32,0x7e, 0x1,0x58,0x32, 0x2,0x32,0x7c, 0x2,0x32,0x79, - 0x2,0x32,0x77, 0x1,0x58,0x30, 0x1,0x58,0x31, 0x2,0x32,0x7b, - 0x3,0x33,0x76, 0x3,0x66,0x49, 0x1,0x5d,0x36, 0x2,0x39,0x35, - 0x3,0x38,0x72, 0x1,0x5d,0x3b, 0x2,0x39,0x45, 0x1,0x5d,0x3a, - 0x2,0x39,0x47, 0x3,0x38,0x6e, 0x3,0x38,0x74, 0x2,0x39,0x3b, - 0x1,0x5d,0x38, 0x2,0x39,0x46, 0x3,0x38,0x6c, 0x2,0x39,0x36, - 0x1,0x5d,0x39, 0x2,0x39,0x42, 0x2,0x39,0x3e, 0x2,0x39,0x40, - 0x2,0x39,0x3a, 0x2,0x39,0x41, 0x3,0x38,0x6b, 0x4,0x35,0x2f, - 0x1,0x5d,0x35, 0x2,0x39,0x3d, 0x3,0x38,0x73, 0x2,0x39,0x3c, - 0x2,0x39,0x38, 0x3,0x38,0x6d, 0x2,0x39,0x43, 0x3,0x38,0x6f, - 0x3,0x38,0x71, 0x2,0x39,0x3f, 0x2,0x39,0x37, 0x3,0x38,0x70, - 0x2,0x39,0x39, 0x1,0x5d,0x37, 0x2,0x39,0x44, 0x1,0x61,0x7c, - 0x2,0x40,0x33, 0x4,0x3a,0x7b, 0x3,0x3e,0x70, 0x3,0x3e,0x72, - 0x2,0x40,0x2f, 0x2,0x40,0x31, 0x2,0x40,0x2c, 0x2,0x40,0x2b, - 0x2,0x40,0x29, 0x3,0x3e,0x6d, 0x2,0x40,0x30, 0x2,0x40,0x32, - 0x2,0x40,0x2e, 0x3,0x3e,0x6f, 0x2,0x40,0x2d, 0x1,0x61,0x7a, - 0x1,0x61,0x7b, 0x2,0x40,0x35, 0x1,0x66,0x54, 0x2,0x47,0x39, - 0x2,0x47,0x3f, 0x2,0x47,0x3a, 0x2,0x47,0x3b, 0x3,0x44,0x4e, - 0x2,0x47,0x40, 0x5,0x42,0x6c, 0x1,0x66,0x56, 0x4,0x40,0x61, - 0x1,0x66,0x4e, 0x1,0x66,0x55, 0x2,0x47,0x38, 0x2,0x40,0x2a, - 0x1,0x66,0x51, 0x1,0x66,0x4f, 0x2,0x47,0x3e, 0x2,0x47,0x3d, - 0x1,0x66,0x50, 0x1,0x66,0x52, 0x2,0x47,0x3c, 0x1,0x66,0x4d, - 0x3,0x44,0x4f, 0x1,0x66,0x53, 0x3,0x4e,0x60, 0x2,0x4d,0x7d, - 0x1,0x6a,0x7c, 0x3,0x49,0x59, 0x3,0x49,0x52, 0x2,0x4e,0x2a, - 0x2,0x4e,0x29, 0x3,0x49,0x57, 0x2,0x4e,0x24, 0x1,0x6a,0x7e, - 0x2,0x4e,0x28, 0x2,0x4d,0x7e, 0x2,0x4e,0x21, 0x1,0x6a,0x76, - 0x1,0x6a,0x78, 0x3,0x49,0x54, 0x2,0x4e,0x26, 0x2,0x4d,0x7c, - 0x1,0x6a,0x7a, 0x1,0x6a,0x79, 0x2,0x4e,0x22, 0x2,0x4e,0x27, - 0x2,0x4e,0x25, 0x1,0x6a,0x7b, 0x2,0x4e,0x23, 0x3,0x49,0x51, - 0x3,0x49,0x56, 0x2,0x40,0x34, 0x1,0x6a,0x77, 0x3,0x49,0x58, - 0x2,0x54,0x2b, 0x2,0x54,0x32, 0x1,0x6e,0x6f, 0x4,0x4d,0x46, - 0x2,0x54,0x36, 0x1,0x6e,0x73, 0x2,0x54,0x2e, 0x2,0x54,0x2c, - 0x4,0x4d,0x3e, 0x2,0x54,0x35, 0x3,0x4e,0x61, 0x1,0x6e,0x6e, - 0x2,0x54,0x34, 0x1,0x6e,0x70, 0x1,0x6e,0x71, 0x2,0x54,0x2d, - 0x1,0x6e,0x72, 0x2,0x54,0x33, 0x2,0x54,0x2f, 0x2,0x54,0x30, - 0x2,0x54,0x31, 0x1,0x6a,0x7d, 0x3,0x4e,0x62, 0x2,0x5a,0x3e, - 0x2,0x5a,0x4a, 0x4,0x53,0x53, 0x1,0x72,0x34, 0x2,0x5a,0x45, - 0x2,0x5a,0x47, 0x3,0x52,0x65, 0x1,0x72,0x32, 0x2,0x5a,0x3f, - 0x2,0x5a,0x43, 0x4,0x53,0x50, 0x2,0x5a,0x46, 0x1,0x72,0x30, - 0x1,0x72,0x33, 0x2,0x5a,0x49, 0x2,0x5a,0x41, 0x2,0x5a,0x42, - 0x2,0x5a,0x48, 0x2,0x5a,0x40, 0x2,0x5a,0x44, 0x1,0x72,0x31, - 0x2,0x5f,0x40, 0x2,0x5f,0x3f, 0x1,0x75,0x42, 0x2,0x5f,0x45, - 0x1,0x75,0x44, 0x3,0x56,0x40, 0x4,0x58,0x62, 0x1,0x75,0x41, - 0x2,0x5f,0x41, 0x1,0x75,0x45, 0x2,0x5f,0x42, 0x3,0x56,0x3f, - 0x3,0x56,0x3d, 0x2,0x5f,0x43, 0x2,0x5f,0x46, 0x3,0x56,0x42, - 0x1,0x75,0x43, 0x2,0x63,0x41, 0x3,0x58,0x79, 0x2,0x63,0x44, - 0x3,0x58,0x7a, 0x2,0x63,0x3e, 0x2,0x63,0x40, 0x3,0x58,0x7c, - 0x3,0x58,0x7b, 0x2,0x63,0x3f, 0x2,0x63,0x42, 0x2,0x63,0x43, - 0x2,0x5f,0x44, 0x2,0x63,0x3d, 0x3,0x66,0x4a, 0x1,0x78,0x78, - 0x2,0x66,0x77, 0x2,0x66,0x7a, 0x2,0x66,0x7c, 0x2,0x66,0x75, - 0x2,0x66,0x76, 0x2,0x66,0x79, 0x2,0x66,0x7b, 0x1,0x78,0x79, - 0x1,0x78,0x77, 0x1,0x78,0x76, 0x2,0x66,0x78, 0x2,0x66,0x74, - 0x2,0x69,0x76, 0x1,0x7a,0x3b, 0x3,0x5d,0x29, 0x2,0x69,0x77, - 0x3,0x5d,0x28, 0x2,0x6c,0x38, 0x1,0x7b,0x28, 0x2,0x6c,0x3a, - 0x1,0x7b,0x29, 0x2,0x6c,0x37, 0x2,0x6c,0x39, 0x1,0x7b,0x72, - 0x5,0x74,0x38, 0x2,0x6e,0x21, 0x1,0x7b,0x71, 0x2,0x6f,0x4c, - 0x2,0x6f,0x4b, 0x4,0x6c,0x25, 0x2,0x6f,0x4a, 0xf,0x68,0x4a, - 0x3,0x61,0x49, 0x2,0x71,0x37, 0x2,0x71,0x38, 0x2,0x71,0x3a, - 0x2,0x71,0x39, 0x3,0x61,0x7d, 0x2,0x22,0x70, 0x1,0x48,0x69, - 0x1,0x53,0x51, 0x2,0x39,0x48, 0x1,0x61,0x7d, 0x3,0x66,0x4b, - 0x2,0x47,0x41, 0x1,0x77,0x3b, 0x3,0x5b,0x2f, 0x2,0x66,0x7d, - 0x3,0x60,0x46, 0x3,0x61,0x4a, 0x1,0x4b,0x44, 0x3,0x2f,0x29, - 0x4,0x2f,0x76, 0x4,0x2f,0x75, 0x1,0x5d,0x3d, 0x4,0x35,0x34, - 0x3,0x38,0x76, 0x3,0x38,0x75, 0x1,0x5d,0x3c, 0x3,0x38,0x77, - 0x2,0x40,0x36, 0x1,0x61,0x7e, 0x2,0x40,0x38, 0x2,0x40,0x37, - 0x6,0x4e,0x60, 0x3,0x3e,0x74, 0x2,0x47,0x42, 0x1,0x66,0x57, - 0x2,0x4e,0x2b, 0x2,0x4e,0x2e, 0x2,0x4e,0x2d, 0x4,0x47,0x35, - 0x2,0x4e,0x2c, 0x2,0x54,0x37, 0x2,0x54,0x39, 0x2,0x54,0x38, - 0x3,0x4e,0x65, 0x1,0x72,0x36, 0x3,0x52,0x66, 0x4,0x53,0x59, - 0x3,0x4e,0x64, 0x1,0x72,0x35, 0x3,0x56,0x46, 0x1,0x75,0x46, - 0x2,0x5f,0x47, 0x2,0x5f,0x49, 0x2,0x5f,0x48, 0x3,0x58,0x7e, - 0x3,0x58,0x7d, 0x1,0x77,0x3c, 0x3,0x59,0x21, 0x4,0x61,0x2f, - 0x3,0x5b,0x31, 0x2,0x67,0x21, 0x2,0x66,0x7e, 0xf,0x63,0x77, - 0x2,0x69,0x78, 0x1,0x7a,0x3c, 0x3,0x5d,0x2a, 0x3,0x5e,0x61, - 0x1,0x7b,0x2a, 0x2,0x6e,0x23, 0x2,0x6e,0x22, 0x1,0x7d,0x28, - 0x1,0x4b,0x45, 0x2,0x2d,0x50, 0x1,0x53,0x52, 0x2,0x39,0x4b, - 0x2,0x39,0x49, 0x4,0x35,0x39, 0x4,0x35,0x38, 0x2,0x39,0x4a, - 0x2,0x40,0x3a, 0x2,0x40,0x3b, 0x2,0x47,0x49, 0x2,0x40,0x39, - 0x2,0x47,0x43, 0x2,0x47,0x47, 0x2,0x47,0x46, 0x2,0x47,0x48, - 0x1,0x66,0x58, 0x2,0x47,0x45, 0x2,0x47,0x44, 0x2,0x47,0x4a, - 0x3,0x44,0x54, 0x2,0x4e,0x31, 0x2,0x4e,0x2f, 0x3,0x49,0x5c, - 0x2,0x4e,0x30, 0x2,0x54,0x3c, 0x2,0x54,0x3a, 0x3,0x4e,0x66, - 0x2,0x54,0x3b, 0x2,0x5a,0x4b, 0x2,0x5f,0x4a, 0x2,0x5f,0x4b, - 0x1,0x77,0x3d, 0x3,0x5b,0x32, 0x2,0x67,0x22, 0x2,0x69,0x79, - 0x1,0x7a,0x3d, 0x4,0x61,0x37, 0x2,0x6c,0x3b, 0x2,0x6e,0x24, - 0x1,0x7b,0x73, 0x4,0x69,0x45, 0x2,0x6f,0x4d, 0x2,0x71,0x3b, - 0x1,0x4b,0x46, 0x1,0x53,0x54, 0x1,0x53,0x55, 0x2,0x2d,0x51, - 0x3,0x2f,0x2a, 0x3,0x2f,0x2c, 0x2,0x2d,0x52, 0x1,0x53,0x53, - 0x4,0x2f,0x7c, 0x1,0x58,0x39, 0x3,0x33,0x7b, 0x1,0x58,0x37, - 0x3,0x33,0x7a, 0x1,0x58,0x36, 0x1,0x58,0x3d, 0x1,0x58,0x35, - 0x1,0x58,0x3e, 0x2,0x33,0x21, 0x1,0x58,0x3b, 0x4,0x2f,0x7d, - 0x1,0x58,0x38, 0x1,0x58,0x3c, 0x1,0x58,0x3a, 0x1,0x58,0x34, - 0x3,0x33,0x7c, 0x1,0x5d,0x45, 0x3,0x38,0x7e, 0x1,0x5d,0x3f, - 0x2,0x39,0x4f, 0x1,0x5d,0x44, 0x3,0x39,0x23, 0x3,0x39,0x29, - 0x1,0x5d,0x46, 0x1,0x5d,0x40, 0x6,0x44,0x70, 0x1,0x5d,0x41, - 0x3,0x38,0x79, 0x2,0x39,0x4d, 0x3,0x38,0x7b, 0x3,0x39,0x25, - 0x1,0x5d,0x3e, 0x3,0x39,0x22, 0x2,0x39,0x4e, 0x1,0x5d,0x43, - 0x4,0x35,0x3d, 0x5,0x35,0x5b, 0x2,0x39,0x4c, 0x1,0x5d,0x42, - 0x3,0x38,0x7a, 0x1,0x62,0x2b, 0x3,0x3e,0x7c, 0x1,0x62,0x2d, - 0x4,0x3b,0x2f, 0x3,0x3e,0x7d, 0x2,0x40,0x3e, 0x1,0x62,0x2c, - 0x1,0x62,0x21, 0x1,0x62,0x25, 0x3,0x3f,0x24, 0x1,0x66,0x6b, - 0x2,0x47,0x4f, 0x2,0x40,0x40, 0x1,0x62,0x26, 0x3,0x3e,0x7e, - 0x3,0x3e,0x75, 0x2,0x40,0x43, 0x2,0x40,0x44, 0x1,0x62,0x2a, - 0x4,0x3b,0x30, 0x2,0x40,0x46, 0x3,0x3f,0x21, 0x2,0x40,0x48, - 0x3,0x3f,0x23, 0x2,0x40,0x49, 0x2,0x40,0x3d, 0x2,0x40,0x3c, - 0x2,0x40,0x4a, 0x1,0x62,0x29, 0x2,0x40,0x47, 0x2,0x40,0x45, - 0x4,0x3b,0x2c, 0x1,0x62,0x27, 0x1,0x62,0x23, 0x1,0x62,0x2e, - 0x2,0x40,0x41, 0x2,0x40,0x42, 0x2,0x40,0x3f, 0x3,0x3e,0x78, - 0x1,0x62,0x28, 0x4,0x3b,0x31, 0x3,0x3f,0x22, 0x1,0x62,0x24, - 0x1,0x62,0x22, 0x2,0x47,0x4e, 0x1,0x66,0x66, 0x1,0x66,0x61, - 0x3,0x44,0x60, 0x3,0x44,0x59, 0x1,0x66,0x5c, 0x3,0x44,0x63, - 0x1,0x66,0x6c, 0x1,0x66,0x5d, 0x3,0x44,0x55, 0x1,0x66,0x59, - 0x1,0x66,0x68, 0x1,0x66,0x65, 0x1,0x66,0x67, 0x3,0x44,0x58, - 0x1,0x66,0x5e, 0x1,0x66,0x63, 0x1,0x66,0x5a, 0x1,0x66,0x5b, - 0x2,0x47,0x56, 0x2,0x47,0x53, 0x2,0x47,0x4b, 0x2,0x47,0x50, - 0x3,0x44,0x5b, 0x1,0x66,0x69, 0x2,0x47,0x57, 0x1,0x66,0x6a, - 0x1,0x66,0x60, 0x3,0x44,0x5c, 0x3,0x44,0x61, 0x2,0x47,0x4d, - 0x3,0x44,0x56, 0x2,0x47,0x55, 0x2,0x47,0x51, 0x2,0x47,0x54, - 0x2,0x47,0x52, 0x1,0x66,0x64, 0x2,0x47,0x4c, 0x1,0x66,0x5f, - 0x3,0x44,0x5d, 0x2,0x4e,0x34, 0x1,0x6b,0x22, 0x1,0x6b,0x25, - 0x3,0x49,0x5f, 0x2,0x4e,0x36, 0x3,0x49,0x64, 0x1,0x6b,0x2d, - 0x2,0x4e,0x35, 0x1,0x6b,0x27, 0x3,0x49,0x63, 0x1,0x6e,0x78, - 0x2,0x4e,0x37, 0x4,0x47,0x45, 0x1,0x6b,0x2c, 0x2,0x4e,0x33, - 0x1,0x6b,0x2e, 0x3,0x49,0x5e, 0x3,0x49,0x62, 0x3,0x49,0x6b, - 0x1,0x6b,0x23, 0x3,0x49,0x68, 0x1,0x66,0x62, 0x1,0x6b,0x26, - 0x3,0x49,0x60, 0x1,0x6b,0x24, 0x1,0x6b,0x28, 0x1,0x6b,0x2a, - 0x1,0x6b,0x21, 0x1,0x6b,0x2f, 0x1,0x6b,0x2b, 0x3,0x49,0x65, - 0x1,0x6b,0x29, 0x2,0x4e,0x32, 0x3,0x49,0x66, 0xf,0x4c,0x41, - 0x3,0x4e,0x74, 0x1,0x6f,0x21, 0x3,0x4e,0x67, 0x1,0x6e,0x7b, - 0x3,0x4e,0x72, 0x3,0x4e,0x70, 0x3,0x4e,0x6e, 0x1,0x6f,0x24, - 0x3,0x4e,0x6c, 0x2,0x54,0x3f, 0x1,0x6f,0x25, 0x2,0x54,0x4b, - 0x2,0x54,0x44, 0x1,0x6e,0x74, 0x2,0x54,0x4c, 0x2,0x54,0x46, - 0x1,0x6e,0x7e, 0x2,0x54,0x47, 0x3,0x4e,0x73, 0x1,0x6e,0x7d, - 0x2,0x54,0x4a, 0x1,0x6e,0x77, 0x2,0x54,0x48, 0x2,0x54,0x3e, - 0x1,0x6e,0x76, 0x2,0x5a,0x56, 0x1,0x6e,0x7c, 0x3,0x4e,0x75, - 0x1,0x6e,0x79, 0x3,0x4e,0x69, 0x1,0x6f,0x23, 0x3,0x4e,0x6a, - 0x2,0x54,0x3d, 0x3,0x4e,0x76, 0x2,0x54,0x41, 0x1,0x6e,0x75, - 0x2,0x54,0x40, 0x2,0x54,0x42, 0x2,0x54,0x43, 0x1,0x6f,0x22, - 0x2,0x54,0x45, 0x2,0x54,0x49, 0x2,0x54,0x4d, 0x1,0x6f,0x26, - 0x1,0x72,0x3c, 0x2,0x5a,0x51, 0x2,0x5a,0x57, 0x2,0x5a,0x54, - 0x2,0x5a,0x4c, 0x2,0x5a,0x58, 0x2,0x5a,0x4d, 0x3,0x52,0x6a, - 0x2,0x5a,0x53, 0x3,0x52,0x6b, 0x1,0x72,0x37, 0x1,0x72,0x3d, - 0x2,0x5a,0x59, 0x3,0x4e,0x6f, 0x3,0x52,0x67, 0x1,0x72,0x39, - 0x3,0x52,0x6e, 0x1,0x72,0x43, 0x1,0x72,0x3e, 0x2,0x5a,0x5b, - 0x2,0x5a,0x55, 0x1,0x72,0x3a, 0x2,0x5a,0x4e, 0x1,0x72,0x44, - 0x2,0x5a,0x4f, 0x2,0x5a,0x50, 0x1,0x72,0x45, 0x1,0x72,0x42, - 0x1,0x6e,0x7a, 0x3,0x52,0x69, 0x1,0x72,0x38, 0x2,0x5a,0x5c, - 0x1,0x72,0x46, 0x3,0x52,0x68, 0x1,0x72,0x3f, 0x2,0x5a,0x5a, - 0x1,0x72,0x3b, 0x1,0x72,0x40, 0x1,0x72,0x41, 0x3,0x66,0x4c, - 0x1,0x75,0x4e, 0x2,0x5f,0x50, 0x2,0x5f,0x59, 0x2,0x5f,0x56, - 0x2,0x5f,0x58, 0x3,0x56,0x49, 0x1,0x75,0x4b, 0x2,0x5f,0x51, - 0x3,0x56,0x4a, 0x2,0x5f,0x57, 0x1,0x75,0x47, 0x2,0x5f,0x53, - 0x1,0x75,0x4f, 0x2,0x5f,0x4f, 0x2,0x5f,0x54, 0x2,0x5f,0x5b, - 0x2,0x5a,0x52, 0x2,0x5f,0x55, 0x2,0x5f,0x4e, 0x1,0x75,0x48, - 0x2,0x5f,0x4d, 0x1,0x75,0x49, 0x2,0x5f,0x5c, 0x1,0x75,0x4a, - 0x2,0x5f,0x5a, 0x1,0x75,0x4d, 0x2,0x5f,0x4c, 0x3,0x56,0x48, - 0x1,0x75,0x4c, 0x2,0x5f,0x52, 0x2,0x63,0x47, 0x2,0x63,0x55, - 0x2,0x63,0x50, 0x2,0x63,0x52, 0x2,0x63,0x46, 0x1,0x77,0x3e, - 0x3,0x59,0x2a, 0x2,0x63,0x45, 0x1,0x77,0x41, 0x1,0x77,0x40, - 0x3,0x59,0x26, 0x2,0x63,0x54, 0x2,0x63,0x4c, 0x2,0x63,0x49, - 0x2,0x63,0x4f, 0x3,0x59,0x24, 0x2,0x63,0x48, 0x3,0x59,0x28, - 0x2,0x63,0x4a, 0x2,0x63,0x53, 0x2,0x63,0x51, 0x3,0x59,0x23, - 0x1,0x77,0x3f, 0x2,0x63,0x58, 0x2,0x63,0x56, 0x2,0x63,0x4d, - 0x2,0x63,0x57, 0x2,0x63,0x4e, 0x3,0x5b,0x34, 0x2,0x67,0x26, - 0x1,0x78,0x7a, 0x2,0x67,0x2d, 0x3,0x5b,0x35, 0x4,0x61,0x3a, - 0x2,0x6c,0x3e, 0x1,0x79,0x23, 0x2,0x63,0x4b, 0x2,0x67,0x24, - 0x1,0x78,0x7d, 0x2,0x67,0x25, 0x2,0x67,0x2a, 0x3,0x5b,0x36, - 0x3,0x5d,0x33, 0x1,0x79,0x21, 0x1,0x79,0x22, 0x2,0x67,0x23, - 0x2,0x67,0x2c, 0x2,0x67,0x2e, 0x2,0x67,0x27, 0x2,0x67,0x29, - 0x2,0x67,0x2b, 0x2,0x67,0x28, 0x2,0x67,0x2f, 0x1,0x78,0x7c, - 0x1,0x79,0x24, 0x1,0x78,0x7e, 0x1,0x78,0x7b, 0x2,0x69,0x7c, - 0x4,0x64,0x4d, 0x1,0x7a,0x42, 0x2,0x69,0x7a, 0x3,0x5d,0x30, - 0x3,0x5d,0x2c, 0x2,0x69,0x7e, 0x3,0x5d,0x32, 0x2,0x6a,0x21, - 0x1,0x7a,0x40, 0x2,0x6a,0x22, 0x2,0x69,0x7d, 0x3,0x5d,0x2b, - 0x2,0x69,0x7b, 0x1,0x7a,0x43, 0x1,0x7a,0x3f, 0x2,0x6a,0x23, - 0x3,0x5d,0x2e, 0x1,0x7a,0x41, 0x1,0x7a,0x3e, 0x3,0x5c,0x6d, - 0x4,0x67,0x3b, 0x1,0x7b,0x2b, 0x3,0x5e,0x62, 0x4,0x67,0x41, - 0x1,0x7b,0x2c, 0x2,0x6c,0x3d, 0x2,0x6c,0x3c, 0x2,0x6c,0x3f, - 0x2,0x6c,0x40, 0x3,0x5e,0x63, 0x1,0x7b,0x2d, 0x2,0x6e,0x25, - 0x2,0x6e,0x2a, 0x1,0x7b,0x74, 0x3,0x5f,0x61, 0x2,0x6e,0x27, - 0x3,0x5f,0x62, 0x2,0x6e,0x26, 0x2,0x6e,0x29, 0x2,0x6e,0x28, - 0x3,0x60,0x48, 0x2,0x6f,0x51, 0x4,0x6a,0x7c, 0x1,0x7c,0x48, - 0x2,0x6f,0x50, 0x2,0x6f,0x4e, 0x3,0x60,0x47, 0x2,0x6f,0x4f, - 0x3,0x60,0x49, 0x3,0x60,0x7b, 0x1,0x7c,0x6a, 0x1,0x7c,0x69, - 0x2,0x70,0x4f, 0x2,0x70,0x50, 0x1,0x7c,0x6b, 0x3,0x61,0x4b, - 0x2,0x71,0x3c, 0x2,0x71,0x3d, 0x1,0x7d,0x34, 0x3,0x61,0x6b, - 0x1,0x7d,0x3a, 0x3,0x61,0x7e, 0x2,0x71,0x77, 0x2,0x72,0x36, - 0x1,0x4b,0x47, 0x5,0x30,0x46, 0x2,0x39,0x50, 0x3,0x39,0x2a, - 0x2,0x39,0x51, 0x2,0x47,0x58, 0x2,0x4e,0x38, 0x2,0x54,0x4e, - 0x1,0x75,0x51, 0x3,0x56,0x4d, 0x1,0x75,0x50, 0x2,0x63,0x59, - 0x2,0x67,0x30, 0x3,0x5f,0x64, 0x2,0x6f,0x52, 0x1,0x4b,0x48, - 0x2,0x33,0x22, 0x1,0x58,0x3f, 0x1,0x5d,0x47, 0x2,0x47,0x5a, - 0x2,0x47,0x59, 0x1,0x6f,0x27, 0x2,0x54,0x4f, 0x1,0x6f,0x28, - 0x2,0x5f,0x5d, 0x1,0x77,0x42, 0x3,0x5d,0x34, 0x3,0x66,0x4d, - 0x3,0x62,0x21, 0x1,0x7d,0x43, 0x1,0x4b,0x49, 0x2,0x28,0x6b, - 0x2,0x33,0x23, 0x3,0x39,0x2d, 0x4,0x35,0x4d, 0x1,0x5d,0x48, - 0x3,0x39,0x2c, 0x2,0x39,0x52, 0x2,0x39,0x53, 0x3,0x3f,0x2a, - 0x2,0x40,0x4b, 0x3,0x3f,0x29, 0x1,0x62,0x2f, 0x1,0x66,0x6d, - 0x3,0x44,0x64, 0x2,0x47,0x5c, 0x2,0x47,0x5b, 0x2,0x47,0x5d, - 0x3,0x49,0x6d, 0x2,0x4e,0x39, 0x2,0x4e,0x3a, 0x1,0x6b,0x30, - 0x1,0x72,0x47, 0x1,0x6f,0x29, 0x1,0x72,0x48, 0x2,0x5f,0x61, - 0x2,0x5f,0x5e, 0x2,0x5f,0x60, 0x2,0x5f,0x5f, 0x1,0x75,0x52, - 0x3,0x59,0x2b, 0x2,0x63,0x5a, 0x2,0x67,0x32, 0x2,0x67,0x31, - 0x2,0x25,0x24, 0x1,0x58,0x41, 0x1,0x58,0x40, 0x2,0x33,0x24, - 0x3,0x39,0x2e, 0x2,0x39,0x54, 0x3,0x3f,0x2c, 0x3,0x3f,0x2b, - 0x2,0x40,0x4d, 0x2,0x40,0x4c, 0x1,0x62,0x30, 0x3,0x3f,0x2d, - 0x2,0x47,0x5f, 0x2,0x47,0x60, 0x2,0x47,0x5e, 0x4,0x40,0x78, - 0x3,0x44,0x65, 0x1,0x66,0x6f, 0x1,0x66,0x6e, 0x4,0x47,0x54, - 0x1,0x6b,0x32, 0x1,0x6b,0x31, 0x3,0x4e,0x7a, 0x2,0x54,0x50, - 0x2,0x5a,0x5f, 0x2,0x5a,0x5d, 0x2,0x5a,0x5e, 0x1,0x72,0x49, - 0x2,0x5f,0x63, 0x2,0x5f,0x62, 0x3,0x56,0x4f, 0x2,0x63,0x5d, - 0x2,0x63,0x5c, 0x2,0x63,0x5b, 0x2,0x67,0x33, 0x3,0x61,0x4d, - 0x2,0x71,0x78, 0x1,0x4b,0x4a, 0x1,0x53,0x56, 0x3,0x2f,0x2e, - 0x1,0x53,0x57, 0x1,0x58,0x42, 0x1,0x58,0x43, 0x2,0x33,0x26, - 0x2,0x33,0x25, 0x2,0x39,0x55, 0x3,0x39,0x30, 0x1,0x5d,0x4e, - 0x1,0x5d,0x4c, 0x1,0x5d,0x49, 0x1,0x5d,0x4d, 0x1,0x5d,0x4b, - 0x1,0x5d,0x4a, 0x3,0x39,0x32, 0x3,0x39,0x31, 0x1,0x62,0x31, - 0x2,0x40,0x50, 0x3,0x3f,0x2f, 0x1,0x66,0x74, 0x1,0x62,0x33, - 0x1,0x62,0x38, 0x2,0x40,0x52, 0x1,0x62,0x3a, 0x1,0x62,0x39, - 0x1,0x62,0x3c, 0x2,0x40,0x51, 0x2,0x40,0x4e, 0x1,0x62,0x36, - 0x1,0x62,0x32, 0x1,0x62,0x34, 0x2,0x40,0x4f, 0x1,0x62,0x3b, - 0x1,0x62,0x37, 0x1,0x62,0x35, 0x1,0x66,0x76, 0x1,0x66,0x75, - 0x1,0x66,0x73, 0x1,0x66,0x77, 0x4,0x40,0x7e, 0x1,0x66,0x71, - 0x1,0x66,0x72, 0x3,0x44,0x69, 0x1,0x66,0x70, 0x5,0x43,0x2d, - 0x2,0x47,0x61, 0x3,0x44,0x67, 0x2,0x4e,0x3c, 0x3,0x49,0x70, - 0x1,0x6b,0x34, 0x1,0x6b,0x35, 0x1,0x6b,0x33, 0x3,0x49,0x72, - 0x2,0x4e,0x3b, 0x3,0x49,0x71, 0x2,0x4e,0x3d, 0x3,0x66,0x4e, - 0x2,0x54,0x53, 0x2,0x54,0x55, 0x3,0x4e,0x7e, 0x1,0x6f,0x32, - 0x2,0x54,0x56, 0x1,0x6f,0x2b, 0x2,0x54,0x52, 0x1,0x6f,0x2a, - 0x1,0x6f,0x34, 0x1,0x6f,0x30, 0x1,0x6f,0x31, 0x1,0x6f,0x2d, - 0x2,0x54,0x51, 0x1,0x6f,0x2c, 0x2,0x54,0x57, 0x2,0x54,0x54, - 0x3,0x4e,0x7d, 0x1,0x6f,0x33, 0x3,0x4f,0x22, 0x1,0x6f,0x2e, - 0x1,0x6f,0x2f, 0x2,0x5a,0x61, 0x3,0x52,0x75, 0x2,0x5a,0x63, - 0x2,0x5a,0x62, 0x3,0x52,0x73, 0x2,0x5a,0x64, 0x1,0x72,0x4a, - 0x2,0x5a,0x60, 0x3,0x56,0x51, 0x3,0x56,0x52, 0x1,0x75,0x56, - 0x2,0x5f,0x64, 0x1,0x75,0x53, 0x1,0x75,0x57, 0x1,0x75,0x55, - 0x1,0x75,0x54, 0x2,0x63,0x5e, 0x4,0x5d,0x69, 0x2,0x63,0x61, - 0x7,0x43,0x52, 0x2,0x63,0x60, 0x3,0x59,0x2e, 0x2,0x63,0x5f, - 0x1,0x77,0x43, 0x2,0x67,0x34, 0x2,0x67,0x35, 0x1,0x79,0x25, - 0x2,0x67,0x36, 0x1,0x79,0x26, 0x3,0x5b,0x38, 0x3,0x66,0x4f, - 0x1,0x7a,0x45, 0x4,0x64,0x4f, 0x1,0x7a,0x44, 0x2,0x6c,0x41, - 0x3,0x5e,0x65, 0x3,0x5e,0x66, 0x1,0x7b,0x2e, 0x2,0x6c,0x42, - 0x2,0x6e,0x2b, 0x1,0x7b,0x75, 0x1,0x7b,0x76, 0x3,0x66,0x50, - 0x2,0x6f,0x53, 0x3,0x60,0x4a, 0x1,0x7c,0x6d, 0x3,0x61,0x4e, - 0x1,0x4b,0x4b, 0x3,0x39,0x33, 0x1,0x5d,0x50, 0x1,0x5d,0x4f, - 0x2,0x47,0x62, 0x2,0x47,0x63, 0x1,0x6b,0x36, 0x2,0x5a,0x65, - 0x1,0x6f,0x35, 0x2,0x5a,0x66, 0x2,0x5f,0x65, 0x1,0x4b,0x4c, - 0x3,0x24,0x3a, 0x2,0x2d,0x53, 0x1,0x53,0x59, 0x1,0x53,0x58, - 0x2,0x33,0x27, 0x1,0x58,0x44, 0x2,0x33,0x28, 0x2,0x39,0x58, - 0x3,0x39,0x39, 0x2,0x39,0x57, 0x3,0x39,0x37, 0x2,0x39,0x56, - 0x3,0x39,0x35, 0x3,0x39,0x38, 0x2,0x40,0x54, 0x1,0x62,0x3f, - 0x3,0x3f,0x39, 0x3,0x3f,0x34, 0x2,0x40,0x53, 0x1,0x62,0x3e, - 0x3,0x3f,0x37, 0x3,0x3f,0x30, 0x3,0x3f,0x33, 0x2,0x40,0x55, - 0x1,0x62,0x3d, 0x3,0x3f,0x38, 0x2,0x47,0x65, 0x2,0x47,0x68, - 0x2,0x47,0x66, 0x2,0x47,0x67, 0x2,0x47,0x6b, 0x2,0x47,0x64, - 0x2,0x47,0x6c, 0x2,0x47,0x69, 0x2,0x47,0x6a, 0x1,0x6b,0x38, - 0x2,0x4e,0x3e, 0x3,0x49,0x75, 0x3,0x49,0x73, 0x1,0x6b,0x37, - 0x3,0x49,0x74, 0x2,0x54,0x5b, 0x2,0x54,0x59, 0x3,0x4f,0x26, - 0x4,0x4d,0x75, 0x1,0x6f,0x36, 0x2,0x54,0x58, 0x2,0x54,0x5a, - 0x3,0x4f,0x25, 0x1,0x6f,0x37, 0x3,0x4f,0x23, 0x2,0x5a,0x67, - 0x3,0x52,0x77, 0x2,0x5a,0x68, 0x1,0x75,0x58, 0x3,0x59,0x31, - 0x2,0x67,0x38, 0x2,0x67,0x3a, 0x2,0x67,0x37, 0x2,0x67,0x39, - 0x2,0x6a,0x24, 0x2,0x6c,0x43, 0x3,0x66,0x51, 0x2,0x71,0x5e, - 0x1,0x4b,0x4d, 0x1,0x53,0x5a, 0x2,0x33,0x29, 0x2,0x33,0x2b, - 0x2,0x33,0x2a, 0x2,0x39,0x5b, 0x1,0x5d,0x52, 0x3,0x39,0x3e, - 0x2,0x39,0x59, 0x3,0x39,0x3a, 0x1,0x5d,0x51, 0x2,0x39,0x5c, - 0x3,0x39,0x3d, 0x2,0x39,0x5d, 0x2,0x39,0x5a, 0x6,0x45,0x38, - 0x2,0x40,0x61, 0x1,0x62,0x47, 0x2,0x40,0x59, 0x2,0x40,0x5f, - 0x3,0x3f,0x3f, 0x3,0x3f,0x3a, 0x1,0x62,0x42, 0x1,0x62,0x45, - 0x2,0x40,0x58, 0x1,0x62,0x40, 0x2,0x40,0x5c, 0x2,0x47,0x72, - 0x1,0x62,0x44, 0x3,0x3f,0x3b, 0x2,0x40,0x57, 0x3,0x3f,0x3e, - 0x2,0x40,0x5d, 0x2,0x40,0x5a, 0x2,0x40,0x60, 0x2,0x40,0x56, - 0x2,0x40,0x5e, 0x1,0x62,0x43, 0x1,0x62,0x46, 0x2,0x40,0x5b, - 0x1,0x62,0x41, 0x1,0x66,0x79, 0x2,0x47,0x6e, 0x1,0x66,0x78, - 0x2,0x47,0x75, 0x2,0x47,0x74, 0x1,0x67,0x21, 0x1,0x67,0x22, - 0x2,0x47,0x76, 0x1,0x66,0x7a, 0x2,0x47,0x73, 0x1,0x66,0x7e, - 0x2,0x47,0x78, 0x2,0x47,0x6f, 0x3,0x44,0x6b, 0x2,0x47,0x71, - 0x1,0x66,0x7b, 0x2,0x47,0x6d, 0x2,0x47,0x70, 0x2,0x47,0x77, - 0x1,0x66,0x7c, 0x2,0x47,0x79, 0x1,0x66,0x7d, 0x1,0x6b,0x39, - 0x2,0x4e,0x43, 0x2,0x4e,0x49, 0x2,0x4e,0x41, 0x2,0x4e,0x4a, - 0x3,0x49,0x7b, 0x2,0x4e,0x40, 0x2,0x4e,0x45, 0x2,0x4e,0x4b, - 0x2,0x4e,0x48, 0x2,0x4e,0x47, 0x2,0x4e,0x46, 0x3,0x49,0x7a, - 0x2,0x4e,0x3f, 0x2,0x4e,0x44, 0x3,0x49,0x79, 0x2,0x4e,0x42, - 0x1,0x6f,0x3c, 0x1,0x6f,0x39, 0x2,0x54,0x64, 0x2,0x54,0x69, - 0x2,0x54,0x6b, 0x2,0x54,0x68, 0x2,0x54,0x61, 0x2,0x54,0x63, - 0x2,0x54,0x6d, 0x2,0x54,0x6a, 0x2,0x54,0x65, 0x2,0x54,0x6e, - 0x2,0x54,0x62, 0x2,0x54,0x6c, 0x1,0x6f,0x3a, 0x1,0x6f,0x40, - 0x1,0x6f,0x3e, 0x2,0x54,0x5c, 0x1,0x6f,0x3f, 0x1,0x6f,0x3b, - 0x2,0x54,0x5d, 0x2,0x54,0x5f, 0x2,0x54,0x5e, 0x2,0x54,0x66, - 0x2,0x54,0x67, 0x3,0x4f,0x2c, 0x1,0x6f,0x3d, 0x3,0x4f,0x2b, - 0x1,0x6f,0x38, 0x2,0x54,0x60, 0x2,0x5a,0x72, 0x1,0x72,0x4c, - 0x3,0x52,0x7e, 0x2,0x5a,0x69, 0x1,0x72,0x4d, 0x1,0x72,0x50, - 0x2,0x5a,0x6e, 0x5,0x51,0x48, 0x2,0x5a,0x6b, 0x1,0x72,0x4f, - 0x4,0x54,0x29, 0x3,0x52,0x7b, 0x2,0x5a,0x6f, 0x2,0x5a,0x70, - 0x2,0x5a,0x6a, 0x2,0x5a,0x73, 0x2,0x5a,0x6c, 0x2,0x5a,0x71, - 0x1,0x72,0x4e, 0x3,0x52,0x7c, 0x1,0x72,0x4b, 0x2,0x5a,0x6d, - 0x3,0x56,0x54, 0x2,0x5f,0x6b, 0x1,0x75,0x5b, 0x1,0x75,0x59, - 0x1,0x75,0x5c, 0x1,0x75,0x5a, 0x2,0x5f,0x6a, 0x2,0x5f,0x67, - 0x2,0x5f,0x66, 0x3,0x56,0x55, 0x2,0x5f,0x69, 0x4,0x59,0x2d, - 0x2,0x5f,0x68, 0x2,0x63,0x6f, 0x1,0x77,0x49, 0x2,0x63,0x66, - 0x2,0x63,0x65, 0x3,0x59,0x32, 0x1,0x77,0x44, 0x2,0x63,0x6b, - 0x2,0x63,0x6a, 0x2,0x63,0x62, 0x2,0x63,0x6d, 0x2,0x63,0x67, - 0x1,0x77,0x48, 0x2,0x63,0x64, 0x2,0x63,0x6c, 0x2,0x63,0x63, - 0x1,0x77,0x45, 0x1,0x77,0x47, 0x2,0x63,0x68, 0x1,0x77,0x46, - 0x2,0x63,0x69, 0x3,0x5b,0x3a, 0x2,0x63,0x6e, 0x2,0x67,0x3e, - 0x3,0x5b,0x39, 0x1,0x79,0x2b, 0x2,0x67,0x3b, 0x4,0x61,0x52, - 0x2,0x67,0x3f, 0x3,0x5b,0x3b, 0x4,0x61,0x4f, 0x1,0x79,0x28, - 0x2,0x67,0x3d, 0x1,0x79,0x2d, 0x3,0x5b,0x3c, 0x1,0x79,0x2a, - 0x3,0x5b,0x3d, 0x2,0x67,0x3c, 0x4,0x61,0x54, 0x1,0x79,0x2c, - 0x2,0x67,0x40, 0x1,0x79,0x27, 0x1,0x7a,0x47, 0x1,0x7a,0x49, - 0x3,0x5d,0x37, 0x2,0x6a,0x27, 0x1,0x7a,0x48, 0x2,0x6a,0x25, - 0x1,0x79,0x29, 0x2,0x6a,0x26, 0x1,0x7a,0x46, 0x1,0x7b,0x2f, - 0x1,0x7b,0x31, 0x2,0x6c,0x45, 0x1,0x7b,0x30, 0x2,0x6c,0x44, - 0x2,0x6e,0x30, 0x1,0x7b,0x77, 0x2,0x6e,0x2f, 0x1,0x7b,0x78, - 0x2,0x6e,0x2d, 0x2,0x6e,0x2c, 0x2,0x6e,0x31, 0x2,0x6e,0x32, - 0x2,0x6f,0x54, 0x3,0x60,0x4b, 0x2,0x6e,0x2e, 0x2,0x70,0x54, - 0x2,0x70,0x51, 0x2,0x70,0x52, 0x2,0x70,0x53, 0x1,0x7d,0x29, - 0x3,0x61,0x50, 0x2,0x71,0x40, 0x2,0x71,0x3f, 0x2,0x71,0x3e, - 0x2,0x71,0x5f, 0x3,0x61,0x6c, 0x2,0x72,0x2e, 0x2,0x71,0x79, - 0x1,0x7d,0x3b, 0x1,0x4b,0x4e, 0x1,0x58,0x45, 0x3,0x39,0x3f, - 0xf,0x38,0x6c, 0x3,0x39,0x40, 0x3,0x3f,0x40, 0x3,0x44,0x73, - 0x1,0x67,0x23, 0x3,0x49,0x7d, 0x3,0x49,0x7c, 0x3,0x4f,0x30, - 0x3,0x4f,0x32, 0x3,0x4f,0x2f, 0x3,0x4f,0x31, 0x1,0x6f,0x41, - 0x3,0x66,0x52, 0x2,0x5a,0x74, 0xf,0x58,0x33, 0x3,0x59,0x35, - 0x1,0x77,0x4a, 0x3,0x59,0x36, 0x2,0x67,0x41, 0x3,0x5b,0x3f, - 0x4,0x61,0x56, 0x3,0x5d,0x38, 0x4,0x67,0x51, 0x2,0x71,0x7a, - 0x1,0x4b,0x4f, 0x1,0x4f,0x51, 0x1,0x53,0x5c, 0x1,0x53,0x5b, - 0x5,0x30,0x55, 0x1,0x58,0x48, 0x3,0x34,0x21, 0x2,0x33,0x2c, - 0x1,0x58,0x46, 0x2,0x33,0x2d, 0x1,0x58,0x47, 0x3,0x66,0x53, - 0x3,0x39,0x41, 0x2,0x39,0x62, 0x2,0x39,0x5e, 0x3,0x39,0x47, - 0x4,0x35,0x63, 0x1,0x5d,0x53, 0x2,0x39,0x61, 0x2,0x39,0x60, - 0x2,0x39,0x5f, 0x1,0x5d,0x54, 0x2,0x39,0x63, 0x2,0x39,0x64, - 0x3,0x3f,0x45, 0x2,0x40,0x68, 0x2,0x40,0x66, 0x2,0x40,0x6a, - 0x2,0x40,0x6b, 0x2,0x40,0x71, 0x3,0x3f,0x47, 0x2,0x40,0x6d, - 0x2,0x40,0x6f, 0x5,0x43,0x50, 0x2,0x40,0x67, 0x2,0x40,0x62, - 0x4,0x3b,0x55, 0x2,0x40,0x6e, 0x3,0x3f,0x44, 0x3,0x3f,0x46, - 0x2,0x40,0x70, 0x2,0x40,0x69, 0x2,0x40,0x6c, 0x2,0x40,0x63, - 0x1,0x62,0x49, 0x2,0x40,0x65, 0x2,0x40,0x64, 0x1,0x62,0x48, - 0x1,0x62,0x4a, 0x3,0x3f,0x49, 0x1,0x67,0x26, 0x2,0x47,0x7b, - 0x2,0x47,0x7d, 0x2,0x47,0x7c, 0x2,0x48,0x23, 0x1,0x67,0x24, - 0x3,0x44,0x76, 0x2,0x47,0x7e, 0x2,0x47,0x7a, 0x2,0x48,0x21, - 0x2,0x48,0x22, 0x1,0x67,0x25, 0x1,0x67,0x27, 0x2,0x48,0x24, - 0x2,0x4e,0x4f, 0x2,0x4e,0x4e, 0x4,0x47,0x6a, 0x2,0x4e,0x4c, - 0x2,0x4e,0x4d, 0x1,0x6b,0x3b, 0x1,0x6b,0x3d, 0x1,0x6b,0x3a, - 0x1,0x6b,0x3c, 0x2,0x54,0x75, 0x2,0x54,0x76, 0x2,0x54,0x71, - 0x3,0x4f,0x36, 0x2,0x54,0x72, 0x1,0x6f,0x43, 0x1,0x6f,0x48, - 0x1,0x6f,0x42, 0x1,0x6f,0x49, 0x1,0x6f,0x44, 0x2,0x54,0x73, - 0x4,0x4e,0x2d, 0x3,0x4f,0x33, 0x2,0x54,0x74, 0x2,0x54,0x70, - 0x1,0x6f,0x4a, 0x1,0x6f,0x46, 0x3,0x4f,0x35, 0x4,0x4e,0x2b, - 0x1,0x6f,0x45, 0x1,0x6f,0x47, 0x3,0x4f,0x34, 0x2,0x54,0x6f, - 0x3,0x53,0x24, 0x2,0x5a,0x76, 0x1,0x72,0x52, 0x3,0x53,0x22, - 0x3,0x53,0x21, 0x2,0x5a,0x78, 0x1,0x72,0x54, 0x2,0x5a,0x7b, - 0x2,0x5a,0x77, 0x2,0x5a,0x75, 0x2,0x5a,0x7a, 0x1,0x72,0x53, - 0x2,0x5a,0x79, 0x7,0x34,0x32, 0x1,0x72,0x51, 0x3,0x53,0x25, - 0x3,0x56,0x59, 0x1,0x75,0x5e, 0x1,0x75,0x61, 0x2,0x5f,0x6d, - 0x3,0x56,0x5a, 0x1,0x75,0x5f, 0x2,0x5f,0x6c, 0x1,0x75,0x5d, - 0x1,0x75,0x60, 0x2,0x63,0x70, 0x2,0x63,0x71, 0x2,0x63,0x72, - 0x1,0x77,0x4b, 0x3,0x59,0x37, 0x2,0x63,0x73, 0x1,0x77,0x4c, - 0x1,0x79,0x2f, 0x2,0x67,0x44, 0x2,0x67,0x45, 0x2,0x67,0x43, - 0x2,0x67,0x42, 0x2,0x67,0x46, 0x1,0x79,0x2e, 0x2,0x6a,0x2b, - 0x2,0x6a,0x29, 0x2,0x6a,0x2a, 0x2,0x6a,0x2c, 0x2,0x6a,0x28, - 0x2,0x6a,0x2d, 0x2,0x6c,0x47, 0x3,0x5e,0x67, 0x2,0x6c,0x48, - 0x2,0x6c,0x46, 0x1,0x7b,0x32, 0x2,0x6e,0x33, 0x1,0x7b,0x79, - 0x2,0x6e,0x34, 0x2,0x6f,0x56, 0x2,0x6f,0x55, 0x3,0x62,0x22, - 0x1,0x4b,0x50, 0x1,0x62,0x4b, 0x3,0x3f,0x4b, 0x3,0x44,0x77, - 0x1,0x67,0x28, 0x3,0x44,0x78, 0x3,0x4a,0x21, 0x3,0x4a,0x22, - 0x1,0x6b,0x3e, 0x3,0x4f,0x37, 0x3,0x53,0x27, 0x1,0x72,0x56, - 0x3,0x53,0x26, 0x1,0x72,0x55, 0x3,0x66,0x54, 0x3,0x59,0x38, - 0x1,0x79,0x30, 0x1,0x7a,0x29, 0x1,0x7b,0x33, 0x1,0x4b,0x51, - 0x1,0x58,0x49, 0x1,0x67,0x29, 0x3,0x4f,0x39, 0x2,0x67,0x47, - 0x3,0x27,0x2f, 0x4,0x21,0x54, 0xf,0x21,0x6a, 0x4,0x23,0x30, - 0x3,0x24,0x3b, 0xf,0x22,0x71, 0xf,0x22,0x72, 0x3,0x27,0x30, - 0x2,0x25,0x26, 0x4,0x25,0x21, 0x3,0x27,0x33, 0x1,0x4b,0x52, - 0x4,0x25,0x23, 0x1,0x4b,0x55, 0x1,0x4b,0x54, 0x1,0x4b,0x53, - 0x3,0x27,0x31, 0xf,0x25,0x32, 0x2,0x25,0x25, 0x3,0x2a,0x72, - 0x2,0x28,0x6d, 0x3,0x2a,0x70, 0x2,0x28,0x6f, 0x1,0x4f,0x52, - 0x3,0x2a,0x74, 0x4,0x28,0x26, 0x1,0x4f,0x54, 0x2,0x28,0x6c, - 0x2,0x28,0x6e, 0x1,0x4f,0x53, 0x2,0x28,0x71, 0x2,0x28,0x70, - 0x2,0x28,0x72, 0x3,0x2a,0x73, 0x3,0x2a,0x71, 0xf,0x28,0x71, - 0xf,0x28,0x6e, 0x2,0x2d,0x57, 0x2,0x2d,0x55, 0x1,0x53,0x5f, - 0x2,0x2d,0x54, 0x1,0x53,0x64, 0x1,0x53,0x61, 0x1,0x53,0x5e, - 0x3,0x2f,0x31, 0x1,0x53,0x65, 0x3,0x2f,0x32, 0x1,0x53,0x60, - 0x1,0x53,0x63, 0x6,0x34,0x60, 0x1,0x53,0x62, 0x2,0x2d,0x56, - 0x3,0x2f,0x33, 0x1,0x53,0x5d, 0x3,0x2f,0x30, 0x1,0x58,0x4f, - 0x2,0x33,0x2f, 0x2,0x33,0x35, 0x1,0x58,0x4c, 0x1,0x58,0x53, - 0x3,0x34,0x25, 0x1,0x58,0x4e, 0x2,0x33,0x32, 0x2,0x33,0x34, - 0x1,0x58,0x51, 0x2,0x33,0x2e, 0x2,0x33,0x31, 0x1,0x58,0x4d, - 0x1,0x58,0x4a, 0x2,0x33,0x30, 0x1,0x58,0x50, 0x2,0x33,0x33, - 0x1,0x58,0x52, 0x1,0x58,0x4b, 0x4,0x30,0x2f, 0x3,0x34,0x27, - 0x3,0x34,0x26, 0x2,0x39,0x66, 0x2,0x39,0x69, 0x1,0x5d,0x56, - 0x3,0x39,0x4b, 0x1,0x5d,0x60, 0x1,0x5d,0x5c, 0x2,0x39,0x67, - 0x3,0x39,0x4a, 0x3,0x39,0x4e, 0x1,0x5d,0x64, 0x1,0x5d,0x5d, - 0x1,0x5d,0x62, 0x1,0x5d,0x58, 0x4,0x35,0x68, 0x1,0x5d,0x55, - 0x1,0x5d,0x57, 0x1,0x5d,0x63, 0x2,0x39,0x68, 0x1,0x5d,0x5b, - 0x1,0x5d,0x5e, 0x1,0x5d,0x5a, 0x1,0x5d,0x5f, 0x2,0x39,0x6a, - 0x1,0x5d,0x61, 0x1,0x5d,0x59, 0x2,0x39,0x65, 0x3,0x39,0x4c, - 0x3,0x3f,0x4f, 0x3,0x3f,0x50, 0x3,0x3f,0x4d, 0x3,0x3f,0x4c, - 0x3,0x3f,0x51, 0x2,0x40,0x72, 0x1,0x62,0x4c, 0x2,0x40,0x74, - 0x3,0x3f,0x55, 0x1,0x62,0x4e, 0x1,0x62,0x50, 0x4,0x35,0x66, - 0x2,0x40,0x73, 0x1,0x62,0x4d, 0x1,0x62,0x51, 0x3,0x3f,0x56, - 0x1,0x62,0x4f, 0x3,0x3f,0x54, 0x3,0x3f,0x57, 0x1,0x67,0x2f, - 0x2,0x48,0x29, 0x1,0x67,0x37, 0x2,0x48,0x26, 0x3,0x44,0x7d, - 0x1,0x67,0x38, 0x1,0x67,0x2d, 0x3,0x44,0x79, 0x2,0x48,0x27, - 0x3,0x44,0x7c, 0x3,0x44,0x7a, 0x1,0x67,0x32, 0x3,0x44,0x7b, - 0x2,0x48,0x28, 0x1,0x67,0x2b, 0x1,0x67,0x2a, 0x3,0x44,0x7e, - 0x1,0x67,0x35, 0x1,0x67,0x34, 0x1,0x67,0x33, 0x1,0x67,0x31, - 0x1,0x67,0x36, 0x2,0x48,0x25, 0x1,0x67,0x2c, 0x1,0x67,0x2e, - 0x1,0x67,0x30, 0x1,0x6b,0x40, 0x1,0x6b,0x43, 0x3,0x4a,0x24, - 0x1,0x6b,0x47, 0x1,0x6b,0x41, 0x1,0x6b,0x46, 0x1,0x6b,0x44, - 0x3,0x4a,0x27, 0x1,0x6b,0x3f, 0x3,0x4a,0x26, 0x1,0x6b,0x45, - 0x1,0x6b,0x42, 0xf,0x4c,0x6b, 0x4,0x4e,0x32, 0x2,0x54,0x7a, - 0x1,0x6f,0x4d, 0x1,0x6f,0x4b, 0x3,0x4f,0x3c, 0x2,0x54,0x7b, - 0x4,0x4e,0x33, 0x1,0x6f,0x4e, 0x1,0x6f,0x4c, 0x2,0x54,0x79, - 0x2,0x54,0x78, 0x3,0x4f,0x3b, 0x1,0x72,0x5a, 0x2,0x54,0x77, - 0x1,0x72,0x58, 0x1,0x72,0x57, 0x2,0x5a,0x7c, 0x1,0x6f,0x4f, - 0x1,0x72,0x59, 0x2,0x5a,0x7d, 0x1,0x72,0x5c, 0x2,0x5a,0x7e, - 0x1,0x72,0x5b, 0x1,0x75,0x63, 0x2,0x5f,0x6f, 0x1,0x75,0x62, - 0x1,0x75,0x67, 0x1,0x75,0x65, 0x1,0x75,0x66, 0x1,0x77,0x4e, - 0x1,0x75,0x64, 0x2,0x5f,0x6e, 0x2,0x5b,0x21, 0x1,0x77,0x4d, - 0x1,0x77,0x4f, 0x3,0x59,0x3a, 0x1,0x79,0x31, 0x1,0x79,0x32, - 0x4,0x61,0x5f, 0x2,0x6a,0x2e, 0x4,0x69,0x52, 0x1,0x7c,0x4a, - 0x1,0x7c,0x49, 0x1,0x4b,0x57, 0x3,0x22,0x5e, 0x3,0x22,0x5d, - 0x2,0x22,0x75, 0x1,0x58,0x54, 0x3,0x24,0x3c, 0x2,0x22,0x72, - 0x2,0x22,0x73, 0x2,0x22,0x71, 0x3,0x24,0x3d, 0x2,0x22,0x74, - 0x3,0x66,0x55, 0x2,0x25,0x2a, 0x2,0x25,0x27, 0x2,0x25,0x2c, - 0x2,0x25,0x28, 0x1,0x4b,0x58, 0x1,0x4b,0x5b, 0x3,0x27,0x35, - 0x2,0x25,0x29, 0x1,0x4b,0x5a, 0x2,0x25,0x2b, 0x3,0x27,0x39, - 0x3,0x27,0x34, 0x1,0x4b,0x59, 0x3,0x39,0x51, 0x3,0x2a,0x77, - 0x4,0x28,0x2b, 0x2,0x28,0x75, 0x2,0x28,0x77, 0x1,0x4f,0x57, - 0x2,0x28,0x73, 0x2,0x28,0x76, 0x2,0x28,0x74, 0x1,0x4f,0x55, - 0x1,0x4f,0x58, 0x3,0x2a,0x75, 0x1,0x4f,0x56, 0x3,0x2a,0x78, - 0x3,0x2f,0x35, 0x2,0x2d,0x59, 0x2,0x2d,0x5d, 0x2,0x2d,0x5a, - 0x3,0x2f,0x38, 0x1,0x53,0x68, 0x3,0x2f,0x34, 0x1,0x53,0x69, - 0x3,0x2f,0x3e, 0x2,0x2d,0x5c, 0x3,0x2f,0x37, 0x2,0x2d,0x5e, - 0x2,0x2d,0x60, 0x3,0x2f,0x3c, 0x1,0x53,0x66, 0x2,0x2d,0x5f, - 0x4,0x41,0x39, 0x3,0x2f,0x3b, 0x1,0x53,0x67, 0xf,0x45,0x6d, - 0x2,0x39,0x71, 0x2,0x2d,0x5b, 0x2,0x33,0x36, 0x2,0x33,0x3f, - 0x2,0x33,0x3d, 0x2,0x33,0x38, 0x2,0x33,0x39, 0x2,0x33,0x3e, - 0x2,0x33,0x40, 0x1,0x58,0x56, 0x3,0x34,0x29, 0x2,0x33,0x3b, - 0x2,0x33,0x37, 0x1,0x58,0x55, 0x1,0x58,0x57, 0x2,0x33,0x3a, - 0x2,0x33,0x41, 0x2,0x33,0x3c, 0x1,0x5d,0x65, 0x2,0x39,0x74, - 0x2,0x39,0x6c, 0x2,0x39,0x72, 0x2,0x39,0x73, 0x1,0x5d,0x66, - 0x3,0x39,0x4f, 0x2,0x39,0x6b, 0x2,0x39,0x6d, 0x2,0x2d,0x58, - 0x2,0x39,0x6f, 0x2,0x39,0x70, 0x2,0x39,0x6e, 0x1,0x62,0x53, - 0x4,0x4e,0x3b, 0x3,0x39,0x52, 0x2,0x40,0x7b, 0x2,0x5b,0x22, - 0x2,0x40,0x7c, 0x2,0x40,0x79, 0x1,0x5d,0x67, 0x1,0x62,0x55, - 0x2,0x40,0x78, 0x2,0x40,0x7e, 0x2,0x40,0x7d, 0x1,0x62,0x52, - 0x2,0x41,0x23, 0x2,0x40,0x77, 0x2,0x41,0x22, 0x2,0x40,0x75, - 0x2,0x41,0x21, 0x2,0x40,0x7a, 0x1,0x62,0x54, 0x3,0x3f,0x59, - 0x2,0x48,0x30, 0x3,0x45,0x23, 0x2,0x48,0x2b, 0x2,0x48,0x31, - 0x2,0x48,0x2c, 0x2,0x48,0x2a, 0x2,0x48,0x2d, 0x1,0x67,0x39, - 0x3,0x45,0x24, 0x2,0x48,0x2f, 0x3,0x45,0x25, 0x2,0x48,0x2e, - 0x1,0x67,0x3a, 0x1,0x6b,0x49, 0x1,0x6b,0x48, 0x2,0x4e,0x56, - 0x2,0x4e,0x59, 0x2,0x4e,0x51, 0x2,0x4e,0x55, 0x1,0x6b,0x4a, - 0x2,0x4e,0x54, 0x2,0x4e,0x52, 0x2,0x4e,0x58, 0x2,0x4e,0x53, - 0x2,0x4e,0x50, 0x2,0x4e,0x57, 0x3,0x4a,0x2a, 0x2,0x55,0x23, - 0x1,0x6f,0x52, 0x2,0x63,0x74, 0x2,0x54,0x7e, 0x2,0x55,0x21, - 0x2,0x54,0x7d, 0x2,0x40,0x76, 0x1,0x6f,0x51, 0x2,0x55,0x24, - 0x2,0x54,0x7c, 0x1,0x6f,0x50, 0x1,0x6f,0x53, 0x2,0x55,0x22, - 0x2,0x5b,0x23, 0x1,0x72,0x5d, 0x2,0x5b,0x24, 0x2,0x5b,0x25, - 0x3,0x53,0x2b, 0x2,0x5f,0x70, 0x1,0x75,0x68, 0x2,0x63,0x75, - 0x2,0x63,0x76, 0x3,0x59,0x3c, 0x3,0x59,0x3b, 0x2,0x63,0x77, - 0x2,0x67,0x49, 0x2,0x67,0x48, 0x2,0x6a,0x30, 0x2,0x6a,0x2f, - 0x2,0x6c,0x4a, 0x2,0x6c,0x4b, 0x2,0x6c,0x49, 0x2,0x6e,0x35, - 0x1,0x7b,0x7a, 0x1,0x4b,0x5c, 0x1,0x53,0x6b, 0x1,0x53,0x6a, - 0x1,0x58,0x5a, 0x1,0x58,0x59, 0x2,0x33,0x43, 0x2,0x33,0x44, - 0x2,0x33,0x42, 0x3,0x34,0x2a, 0x1,0x58,0x58, 0x2,0x39,0x78, - 0x3,0x39,0x55, 0x2,0x39,0x79, 0x2,0x39,0x75, 0x1,0x5d,0x68, - 0x2,0x39,0x76, 0x3,0x39,0x54, 0x2,0x39,0x77, 0x3,0x66,0x57, - 0x2,0x41,0x26, 0x2,0x41,0x28, 0x2,0x41,0x24, 0x2,0x41,0x27, - 0x1,0x62,0x56, 0x2,0x41,0x25, 0x1,0x62,0x57, 0x3,0x45,0x28, - 0x2,0x42,0x79, 0x1,0x67,0x3d, 0x1,0x67,0x3c, 0x3,0x45,0x27, - 0x1,0x67,0x3b, 0x4,0x41,0x3a, 0x2,0x48,0x32, 0x2,0x48,0x33, - 0x4,0x41,0x3b, 0x2,0x4e,0x5b, 0x2,0x4e,0x5d, 0x1,0x6b,0x4e, - 0x1,0x6b,0x4b, 0x3,0x4a,0x2c, 0x1,0x6b,0x4d, 0x1,0x6b,0x4c, - 0x2,0x4e,0x5c, 0x2,0x4e,0x5a, 0x3,0x4a,0x2b, 0x3,0x4a,0x2d, - 0x2,0x55,0x2b, 0x2,0x55,0x28, 0x2,0x55,0x29, 0x1,0x6f,0x57, - 0x2,0x55,0x2a, 0x2,0x55,0x25, 0x2,0x55,0x26, 0x1,0x6f,0x54, - 0x3,0x4f,0x3f, 0x1,0x6f,0x55, 0x2,0x55,0x27, 0x1,0x6f,0x56, - 0x3,0x4f,0x40, 0x2,0x5b,0x29, 0x3,0x53,0x2d, 0x2,0x5b,0x2a, - 0x2,0x5b,0x27, 0x2,0x5b,0x28, 0x1,0x72,0x5e, 0x2,0x5b,0x26, - 0x4,0x54,0x42, 0x3,0x53,0x2c, 0x3,0x53,0x2f, 0x4,0x59,0x3f, - 0x2,0x5f,0x74, 0x2,0x5f,0x71, 0x2,0x5f,0x73, 0x1,0x75,0x6b, - 0x2,0x5f,0x77, 0x1,0x75,0x6a, 0x2,0x5f,0x75, 0x2,0x5f,0x78, - 0x2,0x5f,0x76, 0x2,0x5f,0x72, 0x1,0x75,0x69, 0x2,0x63,0x79, - 0x4,0x5e,0x24, 0x2,0x63,0x7a, 0x2,0x63,0x78, 0x3,0x59,0x3d, - 0x2,0x63,0x7c, 0x1,0x77,0x50, 0x1,0x77,0x51, 0x2,0x67,0x4b, - 0x1,0x79,0x34, 0x2,0x63,0x7b, 0x2,0x67,0x4a, 0x1,0x79,0x33, - 0x2,0x6a,0x33, 0x2,0x6a,0x34, 0x1,0x7a,0x4a, 0x2,0x6a,0x32, - 0x4,0x64,0x65, 0x2,0x6a,0x31, 0x2,0x6c,0x4c, 0x1,0x7b,0x34, - 0x3,0x5e,0x68, 0x2,0x6f,0x57, 0x2,0x70,0x56, 0x2,0x70,0x55, - 0x3,0x60,0x7e, 0x1,0x7c,0x6e, 0x1,0x7d,0x2a, 0x2,0x70,0x57, - 0x2,0x71,0x60, 0x3,0x61,0x6d, 0x1,0x7d,0x3c, 0x1,0x4b,0x5d, - 0x1,0x4f,0x59, 0x1,0x67,0x3e, 0x1,0x7a,0x4b, 0x1,0x4b,0x5e, - 0x1,0x53,0x6c, 0x1,0x5d,0x69, 0x1,0x62,0x58, 0x1,0x77,0x52, - 0x1,0x4f,0x5a, 0x2,0x2d,0x62, 0x2,0x2d,0x61, 0x2,0x33,0x45, - 0x3,0x34,0x30, 0x1,0x58,0x5d, 0x1,0x58,0x5b, 0x1,0x58,0x5f, - 0x2,0x33,0x47, 0x3,0x34,0x2d, 0x1,0x58,0x5e, 0x1,0x58,0x5c, - 0x3,0x34,0x2f, 0x3,0x34,0x2e, 0x3,0x34,0x31, 0x2,0x33,0x46, - 0x1,0x5d,0x6c, 0x2,0x3a,0x21, 0x3,0x39,0x58, 0x1,0x5d,0x6b, - 0x1,0x5d,0x6d, 0x2,0x3a,0x26, 0x1,0x5d,0x6f, 0x2,0x3a,0x23, - 0x2,0x3a,0x24, 0x2,0x39,0x7a, 0x1,0x5d,0x6e, 0x2,0x3a,0x27, - 0x4,0x35,0x7b, 0x3,0x39,0x57, 0x2,0x39,0x7c, 0x3,0x39,0x56, - 0x2,0x39,0x7d, 0x2,0x39,0x7b, 0x1,0x5d,0x6a, 0x3,0x39,0x59, - 0x2,0x3a,0x25, 0x2,0x39,0x7e, 0x2,0x3a,0x22, 0x2,0x41,0x34, - 0x3,0x3f,0x5d, 0x2,0x41,0x33, 0x2,0x41,0x31, 0x2,0x41,0x29, - 0x2,0x41,0x38, 0x2,0x41,0x2c, 0x2,0x41,0x36, 0x2,0x41,0x3d, - 0x2,0x41,0x35, 0x1,0x62,0x60, 0x3,0x3f,0x66, 0x1,0x62,0x5c, - 0x2,0x41,0x2a, 0x3,0x3f,0x60, 0x2,0x41,0x30, 0x1,0x62,0x5e, - 0x3,0x3f,0x68, 0x2,0x41,0x2f, 0x1,0x62,0x5f, 0x1,0x62,0x61, - 0x2,0x41,0x32, 0x3,0x3f,0x69, 0x1,0x62,0x59, 0x1,0x62,0x5a, - 0x2,0x41,0x3e, 0x2,0x41,0x3c, 0x3,0x3f,0x62, 0x2,0x41,0x3b, - 0x2,0x41,0x2d, 0x3,0x3f,0x65, 0x2,0x41,0x39, 0x4,0x3b,0x66, - 0x1,0x62,0x5d, 0x6,0x4f,0x6f, 0x3,0x3f,0x5e, 0x3,0x66,0x59, - 0x3,0x3f,0x63, 0x1,0x62,0x5b, 0x2,0x41,0x3a, 0x2,0x41,0x2b, - 0x2,0x41,0x2e, 0x2,0x41,0x37, 0x3,0x66,0x58, 0x2,0x4f,0x22, - 0x2,0x48,0x3d, 0x3,0x45,0x2e, 0x2,0x48,0x36, 0x2,0x48,0x49, - 0x2,0x48,0x52, 0x2,0x48,0x39, 0x1,0x67,0x49, 0x3,0x45,0x2b, - 0x2,0x48,0x46, 0x1,0x67,0x3f, 0x1,0x67,0x41, 0x1,0x67,0x4d, - 0x2,0x48,0x37, 0x3,0x45,0x37, 0x3,0x45,0x2f, 0x1,0x67,0x42, - 0x1,0x67,0x44, 0x1,0x67,0x4e, 0x1,0x67,0x43, 0x3,0x45,0x39, - 0x4,0x41,0x41, 0x4,0x41,0x46, 0x3,0x45,0x38, 0x1,0x67,0x4c, - 0x2,0x48,0x3f, 0x4,0x41,0x48, 0x2,0x48,0x34, 0x1,0x67,0x4a, - 0x2,0x48,0x3e, 0x1,0x67,0x46, 0x2,0x48,0x50, 0x1,0x67,0x4b, - 0x2,0x48,0x4e, 0x2,0x48,0x42, 0x2,0x48,0x4c, 0x1,0x67,0x48, - 0x2,0x48,0x35, 0x2,0x48,0x4f, 0x2,0x48,0x4a, 0x3,0x45,0x2a, - 0x2,0x48,0x51, 0x1,0x67,0x40, 0x4,0x41,0x40, 0x3,0x45,0x2d, - 0x1,0x67,0x4f, 0x1,0x67,0x45, 0x3,0x45,0x31, 0x3,0x45,0x29, - 0x2,0x48,0x3b, 0x3,0x45,0x34, 0x2,0x48,0x43, 0x2,0x48,0x47, - 0x3,0x45,0x33, 0x2,0x48,0x4b, 0x1,0x67,0x47, 0x2,0x48,0x3a, - 0x2,0x48,0x38, 0x2,0x48,0x44, 0x4,0x41,0x42, 0x4,0x41,0x43, - 0x3,0x45,0x32, 0x3,0x45,0x35, 0x2,0x48,0x41, 0x2,0x48,0x40, - 0x3,0x45,0x36, 0x2,0x48,0x45, 0x2,0x48,0x48, 0x2,0x48,0x4d, - 0x3,0x66,0x5a, 0xf,0x45,0x72, 0x4,0x47,0x75, 0x2,0x4e,0x60, - 0xf,0x4d,0x22, 0x1,0x6b,0x4f, 0x2,0x4e,0x6a, 0x2,0x4e,0x62, - 0x1,0x6b,0x55, 0x1,0x6b,0x59, 0x2,0x4e,0x73, 0x2,0x4e,0x7b, - 0x2,0x4e,0x6c, 0x1,0x6b,0x51, 0x3,0x4a,0x34, 0x2,0x4e,0x70, - 0x2,0x48,0x3c, 0x3,0x4a,0x35, 0x1,0x6b,0x52, 0x2,0x4e,0x77, - 0x2,0x4e,0x7c, 0x2,0x4e,0x74, 0x3,0x4a,0x2f, 0x2,0x4e,0x76, - 0x2,0x4f,0x21, 0x2,0x4e,0x78, 0x2,0x4e,0x66, 0x2,0x4e,0x6f, - 0x3,0x45,0x30, 0x3,0x4a,0x38, 0x1,0x6b,0x5a, 0x3,0x4a,0x33, - 0x1,0x6b,0x56, 0x2,0x4e,0x64, 0x2,0x4e,0x71, 0x1,0x6b,0x54, - 0x2,0x4e,0x6b, 0x1,0x6b,0x53, 0x2,0x4e,0x79, 0x2,0x4e,0x68, - 0x2,0x4e,0x61, 0x1,0x6b,0x57, 0x2,0x4e,0x7e, 0x3,0x4a,0x39, - 0x4,0x47,0x77, 0x2,0x4e,0x63, 0x2,0x4e,0x75, 0x2,0x4e,0x72, - 0x2,0x4e,0x6d, 0x2,0x4e,0x5f, 0x2,0x4e,0x5e, 0x2,0x4e,0x67, - 0x2,0x4e,0x7a, 0x1,0x6b,0x58, 0x2,0x4e,0x7d, 0x2,0x4e,0x65, - 0x2,0x4e,0x69, 0x1,0x6b,0x50, 0x3,0x4a,0x32, 0x3,0x4a,0x37, - 0xf,0x4d,0x27, 0x3,0x67,0x2a, 0x3,0x4a,0x31, 0x1,0x6f,0x63, - 0x1,0x6f,0x5e, 0x2,0x55,0x4d, 0x2,0x55,0x49, 0x2,0x55,0x31, - 0x1,0x6f,0x5a, 0x3,0x4f,0x42, 0x3,0x4f,0x50, 0x4,0x4e,0x45, - 0x1,0x6f,0x59, 0x1,0x6f,0x5f, 0x4,0x4e,0x47, 0x3,0x4f,0x43, - 0x3,0x4f,0x41, 0x2,0x55,0x2f, 0x1,0x6f,0x5d, 0x2,0x55,0x3b, - 0x2,0x55,0x2d, 0x2,0x55,0x2e, 0x1,0x6f,0x58, 0x2,0x55,0x4c, - 0x1,0x6f,0x61, 0x2,0x55,0x3e, 0x2,0x55,0x43, 0x2,0x55,0x3d, - 0x2,0x5b,0x3c, 0x2,0x55,0x39, 0x2,0x55,0x41, 0x2,0x55,0x3f, - 0x2,0x55,0x32, 0x2,0x55,0x2c, 0x2,0x55,0x47, 0x1,0x6f,0x60, - 0x2,0x55,0x48, 0x3,0x4f,0x48, 0x2,0x55,0x42, 0x3,0x4f,0x49, - 0x2,0x55,0x37, 0x2,0x55,0x35, 0x2,0x55,0x30, 0x3,0x4f,0x4b, - 0x3,0x4f,0x4e, 0x3,0x4f,0x44, 0x2,0x55,0x38, 0x2,0x55,0x45, - 0x2,0x55,0x34, 0x2,0x55,0x44, 0x2,0x55,0x4a, 0x3,0x4f,0x51, - 0x4,0x4e,0x46, 0x1,0x6f,0x5c, 0x3,0x4f,0x45, 0x2,0x55,0x40, - 0x2,0x55,0x46, 0x2,0x55,0x3c, 0x2,0x55,0x36, 0x1,0x6f,0x5b, - 0x3,0x4f,0x52, 0x4,0x4e,0x44, 0x3,0x4f,0x4c, 0x2,0x4e,0x6e, - 0x2,0x55,0x3a, 0x1,0x6f,0x62, 0x2,0x55,0x33, 0xf,0x52,0x6b, - 0x3,0x4f,0x4d, 0x3,0x66,0x5b, 0x3,0x66,0x5c, 0x3,0x4a,0x30, - 0x2,0x5b,0x41, 0x1,0x72,0x61, 0x2,0x5b,0x40, 0x2,0x5b,0x3e, - 0x2,0x5b,0x50, 0x1,0x72,0x65, 0x3,0x53,0x35, 0x2,0x5b,0x4d, - 0x2,0x5b,0x45, 0x2,0x5b,0x4f, 0x2,0x5b,0x37, 0x2,0x5b,0x43, - 0x3,0x53,0x3d, 0x1,0x72,0x67, 0x3,0x53,0x3e, 0x2,0x5b,0x2f, - 0x3,0x53,0x38, 0x2,0x5b,0x2d, 0x2,0x5b,0x4e, 0x3,0x53,0x32, - 0x2,0x5b,0x4c, 0x2,0x5b,0x4b, 0x2,0x5b,0x3b, 0x2,0x5b,0x3a, - 0x2,0x5b,0x30, 0x1,0x72,0x69, 0x4,0x54,0x43, 0x2,0x5b,0x36, - 0x2,0x5b,0x3f, 0x2,0x5b,0x4a, 0x1,0x72,0x6c, 0x2,0x5b,0x51, - 0x3,0x53,0x36, 0x1,0x75,0x73, 0x1,0x72,0x6e, 0x1,0x72,0x68, - 0x2,0x5b,0x34, 0x3,0x53,0x37, 0x2,0x5b,0x3d, 0x2,0x5b,0x2c, - 0x2,0x5b,0x2e, 0x1,0x72,0x5f, 0x1,0x72,0x6b, 0x1,0x72,0x64, - 0x2,0x5b,0x35, 0x2,0x5b,0x44, 0x2,0x55,0x4b, 0x1,0x72,0x6a, - 0x2,0x5b,0x2b, 0x1,0x75,0x6e, 0x2,0x5b,0x46, 0x2,0x5b,0x49, - 0x1,0x72,0x66, 0x3,0x53,0x3b, 0x2,0x5b,0x39, 0x1,0x72,0x6d, - 0x1,0x72,0x63, 0x3,0x53,0x3c, 0x3,0x53,0x39, 0x3,0x53,0x3a, - 0x1,0x72,0x62, 0x2,0x5b,0x42, 0x2,0x5b,0x48, 0x1,0x72,0x60, - 0x4,0x54,0x45, 0x2,0x5b,0x32, 0x2,0x5b,0x47, 0xf,0x58,0x59, - 0xf,0x58,0x48, 0x2,0x5b,0x33, 0x7,0x34,0x63, 0x3,0x66,0x5d, - 0xf,0x58,0x55, 0x3,0x66,0x5e, 0x4,0x54,0x49, 0x3,0x53,0x31, - 0x2,0x5b,0x38, 0x2,0x5f,0x7e, 0x3,0x56,0x65, 0x2,0x60,0x25, - 0x1,0x75,0x70, 0x1,0x75,0x72, 0x2,0x60,0x2b, 0x1,0x75,0x6c, - 0x2,0x60,0x39, 0x2,0x60,0x31, 0x2,0x60,0x26, 0x2,0x60,0x27, - 0x2,0x60,0x30, 0x3,0x56,0x66, 0x1,0x75,0x79, 0x2,0x60,0x2f, - 0x2,0x5f,0x7d, 0x2,0x60,0x2e, 0x2,0x60,0x22, 0x2,0x60,0x3a, - 0x1,0x75,0x78, 0x1,0x75,0x76, 0x2,0x60,0x23, 0x3,0x56,0x5d, - 0x2,0x60,0x36, 0x3,0x56,0x67, 0x2,0x60,0x28, 0x2,0x60,0x35, - 0x3,0x56,0x64, 0x2,0x60,0x37, 0x2,0x5f,0x7c, 0x1,0x75,0x71, - 0x3,0x56,0x5b, 0x2,0x60,0x38, 0x3,0x56,0x68, 0x3,0x56,0x5e, - 0x2,0x60,0x2c, 0x3,0x56,0x6b, 0x1,0x75,0x75, 0x2,0x60,0x29, - 0x3,0x56,0x61, 0x4,0x59,0x49, 0x1,0x75,0x77, 0x2,0x60,0x32, - 0x3,0x56,0x62, 0x3,0x56,0x63, 0x3,0x56,0x5f, 0x1,0x75,0x6f, - 0x2,0x60,0x24, 0x2,0x60,0x33, 0x3,0x56,0x5c, 0x2,0x60,0x2d, - 0x2,0x5b,0x31, 0x2,0x60,0x34, 0x2,0x60,0x21, 0x3,0x56,0x60, - 0x1,0x75,0x74, 0x3,0x56,0x6a, 0x2,0x64,0x2f, 0x4,0x59,0x47, - 0x1,0x75,0x6d, 0x2,0x5f,0x7a, 0x4,0x59,0x46, 0xf,0x5d,0x41, - 0x3,0x66,0x5f, 0xf,0x5d,0x39, 0x2,0x64,0x2c, 0x2,0x64,0x25, - 0x1,0x77,0x54, 0x3,0x59,0x43, 0x2,0x63,0x7e, 0x2,0x64,0x30, - 0x2,0x64,0x27, 0x2,0x60,0x2a, 0x3,0x59,0x40, 0x2,0x64,0x32, - 0x2,0x64,0x21, 0x3,0x59,0x42, 0x1,0x77,0x53, 0x2,0x64,0x2b, - 0x1,0x77,0x55, 0x1,0x77,0x5d, 0x1,0x77,0x5b, 0x2,0x64,0x2d, - 0x1,0x77,0x5c, 0x2,0x64,0x23, 0x3,0x59,0x49, 0x2,0x64,0x24, - 0x2,0x64,0x29, 0x2,0x64,0x2e, 0x3,0x59,0x3e, 0x2,0x5f,0x79, - 0x1,0x77,0x56, 0x2,0x64,0x37, 0x2,0x64,0x34, 0x2,0x67,0x61, - 0x2,0x64,0x2a, 0x2,0x64,0x26, 0x2,0x64,0x35, 0x2,0x67,0x56, - 0x2,0x64,0x28, 0x4,0x5e,0x31, 0x1,0x77,0x59, 0x3,0x59,0x44, - 0x1,0x77,0x58, 0x2,0x5f,0x7b, 0x1,0x77,0x5a, 0x2,0x64,0x31, - 0x2,0x64,0x33, 0x1,0x77,0x57, 0x2,0x64,0x36, 0x2,0x63,0x7d, - 0x4,0x5e,0x29, 0x2,0x64,0x22, 0x3,0x59,0x46, 0xf,0x61,0x33, - 0x3,0x59,0x45, 0x3,0x66,0x61, 0x3,0x66,0x62, 0x3,0x66,0x60, - 0xf,0x61,0x43, 0x2,0x67,0x5f, 0x3,0x5b,0x50, 0x2,0x67,0x4f, - 0x1,0x79,0x38, 0x2,0x67,0x5d, 0x3,0x5b,0x44, 0x3,0x5b,0x45, - 0x2,0x67,0x4d, 0x1,0x79,0x39, 0x4,0x61,0x67, 0x2,0x67,0x58, - 0x3,0x5b,0x43, 0x2,0x67,0x54, 0x1,0x79,0x3e, 0x2,0x67,0x5e, - 0x2,0x67,0x4e, 0x2,0x67,0x51, 0x1,0x79,0x36, 0x2,0x67,0x60, - 0x3,0x5b,0x48, 0x2,0x67,0x59, 0x2,0x67,0x5c, 0x1,0x79,0x3c, - 0x1,0x79,0x41, 0x1,0x79,0x3f, 0x2,0x67,0x55, 0x2,0x67,0x50, - 0x3,0x5b,0x4d, 0x1,0x79,0x3a, 0x1,0x79,0x3b, 0x2,0x67,0x4c, - 0x1,0x79,0x37, 0x3,0x5b,0x4f, 0x1,0x79,0x35, 0x1,0x79,0x3d, - 0x2,0x67,0x5b, 0x1,0x79,0x40, 0x3,0x5b,0x4a, 0x2,0x67,0x57, - 0x2,0x67,0x62, 0x1,0x79,0x42, 0x3,0x5b,0x41, 0x3,0x5b,0x42, - 0x3,0x5b,0x4e, 0x2,0x67,0x53, 0x3,0x5b,0x47, 0x2,0x67,0x5a, - 0x3,0x66,0x65, 0x3,0x66,0x63, 0x3,0x66,0x64, 0x3,0x5d,0x41, - 0x3,0x5e,0x6a, 0x2,0x6a,0x41, 0x2,0x6a,0x50, 0x2,0x6a,0x43, - 0x2,0x6a,0x4a, 0x2,0x67,0x52, 0x2,0x6a,0x48, 0x2,0x6a,0x37, - 0x2,0x6a,0x4e, 0x1,0x7a,0x4e, 0x2,0x6a,0x3b, 0x2,0x6a,0x4d, - 0x2,0x6a,0x42, 0x4,0x64,0x67, 0x3,0x5d,0x43, 0x1,0x7a,0x4d, - 0x3,0x5d,0x3c, 0x3,0x5d,0x3f, 0x2,0x6a,0x52, 0x2,0x6a,0x44, - 0x3,0x5d,0x3e, 0x2,0x6a,0x49, 0x2,0x6a,0x4c, 0x2,0x6a,0x35, - 0x2,0x6a,0x4f, 0x2,0x6a,0x40, 0x2,0x6a,0x45, 0x2,0x6a,0x39, - 0x2,0x6a,0x3d, 0x2,0x6a,0x51, 0x2,0x6a,0x47, 0x2,0x6a,0x36, - 0x2,0x6a,0x3a, 0x2,0x6a,0x3c, 0x2,0x6a,0x46, 0x3,0x5d,0x3d, - 0x1,0x7a,0x4c, 0x2,0x6a,0x3f, 0x3,0x5d,0x44, 0x3,0x5d,0x45, - 0x3,0x5d,0x47, 0x4,0x64,0x6b, 0x3,0x5d,0x42, 0x3,0x5d,0x3a, - 0x2,0x6a,0x38, 0x3,0x66,0x66, 0x3,0x66,0x67, 0x3,0x66,0x68, - 0xf,0x66,0x57, 0x3,0x5d,0x46, 0x2,0x6a,0x3e, 0x2,0x6c,0x50, - 0x2,0x6c,0x54, 0x1,0x7b,0x3b, 0x2,0x6c,0x56, 0x3,0x5e,0x6d, - 0x1,0x7b,0x35, 0x4,0x64,0x6f, 0x2,0x6c,0x52, 0x2,0x6c,0x58, - 0x1,0x7b,0x3a, 0x1,0x7b,0x36, 0x4,0x67,0x5c, 0x1,0x7b,0x37, - 0x2,0x6c,0x4f, 0x2,0x6c,0x55, 0x1,0x7b,0x39, 0x2,0x6c,0x53, - 0x1,0x7b,0x38, 0x2,0x6c,0x4e, 0x2,0x6a,0x4b, 0x2,0x6c,0x51, - 0x4,0x67,0x62, 0x2,0x6c,0x4d, 0x2,0x6c,0x57, 0x3,0x5f,0x69, - 0x3,0x5f,0x6e, 0x1,0x7b,0x7b, 0x2,0x6e,0x3c, 0x2,0x6e,0x3f, - 0x2,0x6e,0x3b, 0x2,0x6e,0x3d, 0x2,0x6e,0x3e, 0x2,0x6e,0x38, - 0x2,0x6e,0x39, 0x2,0x6e,0x36, 0x3,0x5f,0x6a, 0x3,0x5f,0x6c, - 0x2,0x6e,0x3a, 0x2,0x6e,0x37, 0x1,0x7b,0x7c, 0x1,0x7b,0x7d, - 0x3,0x5f,0x6b, 0x2,0x6f,0x59, 0x3,0x60,0x52, 0x2,0x6f,0x5b, - 0x4,0x6b,0x29, 0x5,0x76,0x5d, 0x3,0x60,0x55, 0x3,0x60,0x54, - 0x3,0x60,0x56, 0x2,0x6f,0x5a, 0x2,0x6f,0x5c, 0x3,0x60,0x4f, - 0x1,0x7c,0x4c, 0x3,0x60,0x53, 0x2,0x6f,0x58, 0x1,0x7c,0x4b, - 0x1,0x7c,0x4d, 0x3,0x60,0x57, 0x3,0x66,0x6a, 0x3,0x66,0x69, - 0x2,0x70,0x59, 0x2,0x70,0x5a, 0x1,0x7c,0x6f, 0x2,0x70,0x58, - 0x3,0x61,0x22, 0x2,0x71,0x42, 0x2,0x71,0x41, 0x2,0x71,0x43, - 0x1,0x7d,0x2c, 0x2,0x71,0x44, 0x1,0x7d,0x2b, 0x2,0x71,0x45, - 0x2,0x71,0x61, 0x2,0x71,0x64, 0x2,0x71,0x63, 0x1,0x7d,0x35, - 0x2,0x71,0x62, 0x4,0x6d,0x62, 0x3,0x61,0x6f, 0x3,0x62,0x23, - 0x1,0x7d,0x3f, 0x1,0x7d,0x3d, 0x1,0x7d,0x3e, 0x1,0x7d,0x44, - 0x2,0x72,0x30, 0x2,0x72,0x31, 0x2,0x72,0x2f, 0x2,0x72,0x37, - 0x3,0x62,0x36, 0x1,0x4f,0x5b, 0x4,0x25,0x2b, 0x4,0x30,0x3a, - 0x2,0x3a,0x28, 0x2,0x41,0x3f, 0x2,0x55,0x4e, 0x2,0x67,0x63, - 0x5,0x71,0x56, 0x1,0x4f,0x5c, 0x3,0x2f,0x40, 0x1,0x53,0x6d, - 0x1,0x58,0x60, 0x4,0x30,0x3b, 0x3,0x34,0x32, 0x2,0x3a,0x29, - 0x3,0x39,0x5c, 0x2,0x3a,0x2a, 0x1,0x5d,0x70, 0x1,0x62,0x64, - 0x2,0x41,0x41, 0x2,0x41,0x40, 0x1,0x62,0x68, 0x1,0x62,0x63, - 0x2,0x41,0x42, 0x1,0x62,0x65, 0x1,0x62,0x67, 0x1,0x62,0x66, - 0x1,0x62,0x62, 0x3,0x3f,0x6c, 0xf,0x3f,0x7e, 0x3,0x66,0x6b, - 0x1,0x67,0x50, 0x3,0x45,0x3c, 0x3,0x45,0x3a, 0x2,0x48,0x56, - 0x2,0x48,0x54, 0x4,0x41,0x53, 0x2,0x48,0x55, 0x2,0x48,0x53, - 0xf,0x45,0x7b, 0x1,0x6b,0x5b, 0x3,0x4a,0x3d, 0x1,0x6b,0x5e, - 0x1,0x6b,0x60, 0x1,0x6b,0x5f, 0x4,0x48,0x22, 0x3,0x4a,0x3e, - 0x1,0x6b,0x5c, 0x1,0x6b,0x5d, 0x2,0x55,0x50, 0x2,0x55,0x4f, - 0x1,0x6f,0x64, 0x2,0x55,0x51, 0x3,0x4f,0x53, 0x2,0x55,0x52, - 0x1,0x6f,0x65, 0x3,0x4f,0x55, 0x3,0x4f,0x56, 0x4,0x4e,0x4a, - 0x2,0x5b,0x59, 0x2,0x5b,0x57, 0x2,0x60,0x40, 0x3,0x53,0x42, - 0x2,0x5b,0x55, 0x2,0x5b,0x56, 0x1,0x72,0x6f, 0x2,0x5b,0x52, - 0x2,0x5b,0x5a, 0x2,0x5b,0x54, 0x2,0x5b,0x58, 0x2,0x60,0x3c, - 0x3,0x53,0x44, 0x3,0x53,0x40, 0x2,0x60,0x3e, 0x3,0x56,0x6d, - 0x2,0x60,0x3f, 0x1,0x75,0x7e, 0x2,0x60,0x3b, 0x1,0x75,0x7d, - 0x2,0x60,0x3d, 0x1,0x75,0x7a, 0x1,0x75,0x7b, 0x1,0x75,0x7c, - 0x2,0x5b,0x53, 0x3,0x66,0x6c, 0x1,0x77,0x60, 0x2,0x64,0x3a, - 0x2,0x64,0x38, 0x2,0x64,0x39, 0x1,0x77,0x5e, 0x1,0x77,0x61, - 0x1,0x77,0x5f, 0x3,0x59,0x4b, 0x3,0x59,0x4a, 0x7,0x4b,0x40, - 0x2,0x67,0x64, 0x2,0x67,0x65, 0x1,0x79,0x43, 0x3,0x5b,0x53, - 0x2,0x6a,0x53, 0x2,0x6a,0x55, 0x2,0x6a,0x54, 0x1,0x7a,0x4f, - 0x1,0x7b,0x3c, 0x2,0x6c,0x5b, 0x2,0x6c,0x5a, 0x2,0x6c,0x59, - 0xf,0x68,0x72, 0x3,0x66,0x6d, 0xf,0x25,0x39, 0x1,0x4f,0x5d, - 0x3,0x21,0x43, 0x2,0x21,0x69, 0x2,0x22,0x78, 0x1,0x48,0x6a, - 0x2,0x22,0x76, 0x2,0x22,0x79, 0x2,0x22,0x77, 0x4,0x25,0x2e, - 0x3,0x27,0x3b, 0x3,0x27,0x3a, 0x2,0x25,0x2e, 0x3,0x27,0x3f, - 0x1,0x4b,0x62, 0x3,0x27,0x3c, 0x1,0x4b,0x63, 0x2,0x25,0x30, - 0x1,0x4b,0x60, 0x2,0x25,0x2f, 0x2,0x25,0x2d, 0x1,0x4b,0x61, - 0x1,0x4b,0x5f, 0x3,0x27,0x3d, 0x3,0x27,0x3e, 0x3,0x2a,0x79, - 0x4,0x28,0x33, 0x2,0x28,0x78, 0x2,0x28,0x7b, 0x1,0x4f,0x60, - 0x2,0x28,0x7a, 0x2,0x28,0x79, 0x3,0x2a,0x7c, 0x1,0x4f,0x5f, - 0x1,0x4f,0x5e, 0x3,0x2a,0x7b, 0x1,0x4f,0x62, 0x2,0x28,0x7c, - 0x1,0x4f,0x61, 0x2,0x2d,0x67, 0x1,0x53,0x6f, 0x1,0x53,0x70, - 0x1,0x53,0x71, 0x2,0x2d,0x68, 0x2,0x2d,0x64, 0x1,0x53,0x6e, - 0x2,0x2d,0x65, 0x4,0x2b,0x5d, 0x2,0x2d,0x66, 0x2,0x2d,0x63, - 0x4,0x2b,0x5b, 0x3,0x34,0x36, 0x4,0x30,0x3f, 0x1,0x58,0x67, - 0x3,0x34,0x34, 0x3,0x39,0x5e, 0x1,0x58,0x64, 0x2,0x33,0x48, - 0x1,0x58,0x65, 0x1,0x58,0x68, 0x2,0x33,0x49, 0x3,0x34,0x33, - 0x1,0x58,0x63, 0x1,0x58,0x61, 0x1,0x58,0x62, 0x1,0x58,0x66, - 0x1,0x5d,0x71, 0x2,0x3a,0x2d, 0x1,0x5d,0x79, 0x2,0x3a,0x2c, - 0x3,0x39,0x61, 0x2,0x3a,0x2f, 0x1,0x5d,0x75, 0x2,0x3a,0x2e, - 0x1,0x62,0x70, 0x1,0x5d,0x73, 0x1,0x5d,0x76, 0x1,0x5d,0x72, - 0x1,0x5d,0x77, 0x1,0x5d,0x78, 0x1,0x5d,0x74, 0x3,0x39,0x65, - 0x3,0x3f,0x71, 0x2,0x3a,0x2b, 0x1,0x62,0x6c, 0x2,0x41,0x44, - 0x3,0x3f,0x72, 0x2,0x41,0x48, 0x3,0x3f,0x73, 0x3,0x3f,0x75, - 0x2,0x41,0x47, 0x1,0x62,0x71, 0x1,0x62,0x6d, 0x1,0x62,0x6e, - 0x2,0x41,0x43, 0x2,0x41,0x45, 0x2,0x41,0x46, 0x1,0x62,0x69, - 0x1,0x62,0x6b, 0x3,0x3f,0x70, 0x1,0x62,0x6f, 0x1,0x62,0x6a, - 0x3,0x45,0x40, 0x2,0x48,0x59, 0x2,0x48,0x57, 0x2,0x48,0x58, - 0x1,0x67,0x52, 0x1,0x67,0x53, 0x3,0x45,0x42, 0x2,0x48,0x5a, - 0x1,0x67,0x51, 0x1,0x6b,0x61, 0x4,0x48,0x24, 0x1,0x6b,0x63, - 0x1,0x6b,0x62, 0x3,0x4a,0x45, 0x2,0x4f,0x23, 0x3,0x4a,0x46, - 0x3,0x4a,0x44, 0x2,0x4f,0x24, 0x2,0x55,0x54, 0x3,0x4f,0x5a, - 0x2,0x55,0x53, 0x3,0x4f,0x5b, 0x4,0x54,0x52, 0x1,0x72,0x70, - 0x1,0x72,0x71, 0x2,0x5b,0x5b, 0x1,0x72,0x72, 0x3,0x53,0x48, - 0x2,0x60,0x43, 0x3,0x56,0x70, 0x2,0x60,0x41, 0x3,0x56,0x6f, - 0x2,0x60,0x42, 0x1,0x76,0x21, 0x3,0x56,0x71, 0x2,0x64,0x3b, - 0x1,0x79,0x44, 0x3,0x5d,0x49, 0x3,0x2a,0x7d, 0x3,0x53,0x49, - 0x1,0x76,0x22, 0x1,0x4f,0x63, 0x4,0x30,0x41, 0x1,0x58,0x69, - 0x2,0x33,0x4a, 0x3,0x34,0x39, 0xf,0x32,0x6f, 0x2,0x3a,0x30, - 0x1,0x5d,0x7a, 0x1,0x62,0x72, 0x2,0x41,0x49, 0x2,0x41,0x4b, - 0x1,0x62,0x74, 0x1,0x62,0x73, 0x1,0x62,0x75, 0x1,0x62,0x76, - 0x2,0x41,0x4a, 0x1,0x67,0x56, 0x1,0x67,0x57, 0x1,0x67,0x55, - 0x1,0x6b,0x64, 0x1,0x67,0x54, 0x2,0x48,0x5b, 0x4,0x41,0x57, - 0x3,0x4a,0x47, 0x3,0x4a,0x49, 0x1,0x6b,0x65, 0x2,0x55,0x55, - 0x2,0x5b,0x5c, 0x1,0x72,0x73, 0x1,0x76,0x23, 0x2,0x64,0x3c, - 0x2,0x64,0x40, 0x1,0x77,0x64, 0x2,0x64,0x3d, 0x1,0x77,0x65, - 0x1,0x77,0x63, 0x2,0x64,0x41, 0x1,0x77,0x66, 0x2,0x64,0x3f, - 0x2,0x67,0x66, 0x1,0x77,0x62, 0x1,0x79,0x45, 0x3,0x5e,0x70, - 0x2,0x70,0x5b, 0x3,0x61,0x25, 0x3,0x62,0x2f, 0x1,0x4f,0x64, - 0x1,0x5d,0x7c, 0x1,0x5d,0x7b, 0xf,0x39,0x2a, 0x3,0x3f,0x7e, - 0x3,0x3f,0x7c, 0x3,0x3f,0x7b, 0x1,0x62,0x77, 0x2,0x41,0x4d, - 0x2,0x41,0x4c, 0x1,0x62,0x78, 0x3,0x45,0x46, 0x2,0x48,0x5f, - 0x1,0x67,0x5b, 0x1,0x67,0x58, 0x2,0x48,0x5e, 0x1,0x67,0x5a, - 0x2,0x48,0x5c, 0x1,0x67,0x59, 0x3,0x45,0x47, 0x2,0x48,0x5d, - 0x2,0x4f,0x25, 0x1,0x6b,0x66, 0x2,0x55,0x58, 0x5,0x52,0x3b, - 0x1,0x6f,0x66, 0x2,0x55,0x56, 0x1,0x6f,0x67, 0x1,0x6f,0x68, - 0x2,0x55,0x57, 0x1,0x6f,0x69, 0x3,0x4f,0x60, 0x2,0x5b,0x5d, - 0x3,0x53,0x50, 0x1,0x72,0x77, 0x1,0x72,0x74, 0x1,0x72,0x79, - 0x2,0x5b,0x5f, 0x1,0x72,0x75, 0x2,0x5b,0x5e, 0x1,0x72,0x78, - 0x3,0x53,0x4d, 0x3,0x53,0x4c, 0x1,0x72,0x76, 0x3,0x53,0x51, - 0x2,0x60,0x46, 0x2,0x60,0x48, 0x3,0x56,0x74, 0x3,0x56,0x75, - 0x1,0x76,0x24, 0x2,0x60,0x47, 0x1,0x76,0x25, 0x2,0x60,0x45, - 0x2,0x60,0x44, 0x4,0x5e,0x38, 0x2,0x64,0x43, 0x2,0x64,0x42, - 0x1,0x77,0x67, 0x2,0x64,0x44, 0x2,0x67,0x6b, 0x1,0x79,0x47, - 0x2,0x67,0x6a, 0x2,0x67,0x67, 0x1,0x79,0x46, 0x2,0x67,0x68, - 0x2,0x67,0x69, 0x2,0x6a,0x56, 0x2,0x6a,0x57, 0x1,0x7a,0x50, - 0x3,0x5d,0x4f, 0x1,0x7b,0x3f, 0x3,0x5d,0x4c, 0x3,0x5d,0x4e, - 0x2,0x6c,0x5c, 0x3,0x5e,0x72, 0x3,0x5e,0x71, 0x1,0x7b,0x3d, - 0x1,0x7b,0x3e, 0x2,0x6c,0x5d, 0x3,0x66,0x6e, 0x3,0x5f,0x71, - 0x1,0x7b,0x7e, 0x1,0x7c,0x21, 0x2,0x6e,0x40, 0x3,0x5f,0x72, - 0x3,0x60,0x59, 0x1,0x7c,0x70, 0x2,0x70,0x5d, 0x1,0x7c,0x72, - 0x3,0x61,0x26, 0x2,0x70,0x5c, 0x2,0x70,0x5e, 0x1,0x7c,0x71, - 0x2,0x71,0x46, 0x4,0x6d,0x64, 0x2,0x71,0x7b, 0x3,0x66,0x6f, - 0x3,0x62,0x45, 0x3,0x2a,0x7e, 0x1,0x4f,0x65, 0x3,0x45,0x49, - 0x1,0x67,0x5c, 0x4,0x48,0x35, 0x2,0x4f,0x26, 0x3,0x4a,0x4c, - 0x2,0x55,0x59, 0x1,0x72,0x7a, 0x1,0x72,0x7b, 0x3,0x59,0x4f, - 0x1,0x4f,0x66, 0x3,0x40,0x21, 0x1,0x6f,0x6a, 0x1,0x79,0x48, - 0x1,0x53,0x72, 0x3,0x2b,0x21, 0x3,0x4a,0x4e, 0x1,0x72,0x7c, - 0x3,0x5e,0x73, 0x1,0x7c,0x4e, 0x1,0x53,0x73, 0x2,0x3a,0x31, - 0x4,0x3b,0x77, 0x2,0x41,0x4e, 0x3,0x40,0x24, 0x2,0x41,0x50, - 0x3,0x40,0x22, 0x2,0x41,0x4f, 0x2,0x48,0x63, 0x2,0x48,0x60, - 0x1,0x67,0x5d, 0x6,0x5a,0x24, 0x1,0x67,0x5e, 0x2,0x48,0x61, - 0x2,0x48,0x62, 0x3,0x45,0x4b, 0x2,0x4f,0x28, 0x2,0x4f,0x2d, - 0x1,0x6b,0x67, 0x2,0x4f,0x27, 0x2,0x4f,0x29, 0x2,0x4f,0x30, - 0x2,0x4f,0x2b, 0x2,0x4f,0x2f, 0x2,0x4f,0x2c, 0x2,0x4f,0x2a, - 0x2,0x4f,0x2e, 0x1,0x6b,0x68, 0x3,0x4f,0x62, 0x2,0x55,0x5c, - 0x3,0x4f,0x63, 0x2,0x55,0x5a, 0x1,0x6f,0x6c, 0x3,0x4f,0x64, - 0x1,0x6f,0x6b, 0x2,0x55,0x5b, 0x1,0x6f,0x6d, 0x3,0x53,0x53, - 0x2,0x5b,0x62, 0x4,0x54,0x5f, 0x4,0x54,0x67, 0x2,0x5b,0x61, - 0x1,0x72,0x7d, 0x2,0x5b,0x60, 0x2,0x60,0x49, 0x3,0x56,0x7a, - 0x2,0x60,0x4b, 0x2,0x60,0x4d, 0x2,0x60,0x4c, 0x3,0x56,0x7b, - 0x1,0x76,0x26, 0x2,0x60,0x4a, 0x2,0x64,0x4b, 0x1,0x77,0x68, - 0x2,0x64,0x49, 0x2,0x64,0x4c, 0x1,0x77,0x69, 0x4,0x5e,0x43, - 0x2,0x64,0x47, 0x3,0x59,0x50, 0x2,0x64,0x4a, 0x2,0x64,0x48, - 0x2,0x64,0x45, 0x1,0x77,0x6a, 0x2,0x64,0x46, 0x4,0x61,0x7c, - 0x3,0x5b,0x5f, 0x3,0x5b,0x5d, 0x2,0x67,0x6c, 0x3,0x5b,0x5e, - 0x3,0x5b,0x60, 0x2,0x67,0x6e, 0x2,0x67,0x6d, 0x3,0x5d,0x50, - 0x2,0x6a,0x58, 0x3,0x5d,0x51, 0x2,0x6a,0x59, 0x4,0x67,0x71, - 0x3,0x5e,0x75, 0x3,0x5e,0x74, 0x2,0x6c,0x5e, 0x3,0x5f,0x73, - 0x1,0x7c,0x23, 0x4,0x69,0x5e, 0x1,0x7c,0x22, 0x2,0x6f,0x5d, - 0x2,0x6f,0x5e, 0x1,0x7c,0x73, 0x2,0x70,0x5f, 0x3,0x61,0x28, - 0x1,0x7d,0x36, 0x3,0x62,0x3b, 0x1,0x53,0x74, 0x1,0x62,0x79, - 0x2,0x4f,0x32, 0x2,0x4f,0x31, 0x2,0x55,0x5e, 0x2,0x55,0x5d, - 0x4,0x4e,0x57, 0x3,0x53,0x55, 0x1,0x76,0x27, 0x2,0x60,0x4f, - 0x2,0x60,0x4e, 0x2,0x64,0x4f, 0x2,0x64,0x4d, 0x2,0x64,0x50, - 0x2,0x64,0x4e, 0x3,0x59,0x51, 0x4,0x65,0x29, 0x1,0x79,0x49, - 0x2,0x67,0x6f, 0x2,0x67,0x70, 0x2,0x67,0x71, 0x4,0x65,0x27, - 0x2,0x6c,0x5f, 0x3,0x5e,0x76, 0x2,0x6e,0x41, 0x3,0x61,0x29, - 0x2,0x70,0x60, 0x1,0x53,0x75, 0x3,0x45,0x4f, 0x3,0x4f,0x65, - 0x2,0x5b,0x63, 0x2,0x60,0x50, 0x3,0x5b,0x61, 0x1,0x53,0x76, - 0x4,0x41,0x63, 0x3,0x45,0x50, 0x1,0x6b,0x69, 0x4,0x48,0x46, - 0x2,0x5b,0x64, 0x1,0x77,0x6b, 0x2,0x64,0x51, 0x1,0x79,0x4a, - 0x3,0x5d,0x53, 0x2,0x6a,0x5a, 0x2,0x6a,0x5b, 0x1,0x7b,0x40, - 0x2,0x6f,0x5f, 0x1,0x53,0x77, 0x1,0x5e,0x21, 0x1,0x5e,0x22, - 0x2,0x3a,0x32, 0x1,0x62,0x7a, 0x1,0x62,0x7b, 0x2,0x41,0x51, - 0x1,0x62,0x7c, 0x4,0x41,0x68, 0x1,0x67,0x62, 0x3,0x45,0x52, - 0x1,0x67,0x64, 0x2,0x48,0x65, 0x2,0x48,0x66, 0x2,0x48,0x64, - 0x1,0x67,0x5f, 0x1,0x67,0x60, 0x1,0x67,0x63, 0x1,0x67,0x61, - 0x3,0x4a,0x54, 0x3,0x4a,0x55, 0x2,0x4f,0x33, 0x1,0x6b,0x6a, - 0x1,0x6b,0x6b, 0x3,0x4a,0x52, 0x3,0x4a,0x56, 0x2,0x55,0x65, - 0x1,0x6f,0x70, 0x2,0x55,0x60, 0x2,0x55,0x5f, 0x3,0x4f,0x69, - 0x2,0x55,0x64, 0x1,0x6f,0x6e, 0x3,0x4f,0x67, 0x4,0x4e,0x5a, - 0x1,0x73,0x26, 0x4,0x54,0x70, 0x2,0x55,0x61, 0x2,0x55,0x66, - 0x2,0x55,0x63, 0x2,0x55,0x62, 0x3,0x4f,0x66, 0x1,0x6f,0x6f, - 0x1,0x73,0x24, 0x3,0x53,0x5c, 0x2,0x5b,0x66, 0x1,0x72,0x7e, - 0x3,0x53,0x59, 0x2,0x5b,0x67, 0x3,0x53,0x5a, 0x3,0x52,0x28, - 0x2,0x5b,0x65, 0x3,0x53,0x58, 0x1,0x73,0x23, 0x1,0x73,0x21, - 0x1,0x73,0x25, 0x3,0x53,0x5d, 0x1,0x73,0x22, 0x3,0x53,0x5b, - 0x3,0x53,0x5f, 0x4,0x5e,0x4f, 0x3,0x59,0x5b, 0x3,0x57,0x26, - 0x2,0x60,0x51, 0x4,0x59,0x70, 0x2,0x60,0x56, 0x2,0x60,0x52, - 0x2,0x60,0x55, 0x1,0x76,0x28, 0x3,0x57,0x28, 0x2,0x5e,0x41, - 0x2,0x60,0x54, 0x2,0x60,0x53, 0x3,0x59,0x59, 0x1,0x77,0x6e, - 0x1,0x77,0x6c, 0x1,0x77,0x6f, 0x1,0x77,0x6d, 0x2,0x64,0x52, - 0x2,0x64,0x53, 0x2,0x64,0x54, 0x1,0x77,0x70, 0x3,0x59,0x56, - 0x3,0x59,0x58, 0x3,0x5b,0x65, 0x2,0x67,0x75, 0x1,0x79,0x4c, - 0x2,0x67,0x73, 0x4,0x62,0x30, 0x1,0x79,0x4d, 0x2,0x67,0x72, - 0x2,0x67,0x74, 0x1,0x79,0x4b, 0x2,0x6a,0x5f, 0x2,0x6a,0x5c, - 0x4,0x65,0x2c, 0x2,0x6a,0x5d, 0x2,0x6a,0x5e, 0x2,0x6c,0x60, - 0x1,0x7b,0x42, 0x3,0x5e,0x78, 0x1,0x7b,0x41, 0x3,0x5e,0x77, - 0x2,0x6e,0x43, 0x2,0x6e,0x42, 0x1,0x7c,0x24, 0x3,0x60,0x5d, - 0x3,0x60,0x5e, 0x3,0x60,0x5c, 0x1,0x7c,0x4f, 0x1,0x7c,0x74, - 0x1,0x7d,0x2d, 0x2,0x71,0x47, 0x2,0x71,0x7c, 0x2,0x71,0x7d, - 0x1,0x53,0x78, 0x2,0x41,0x52, 0x4,0x41,0x71, 0x2,0x48,0x67, - 0x2,0x4f,0x34, 0x2,0x4f,0x35, 0x1,0x6b,0x6c, 0x4,0x48,0x57, - 0x1,0x6b,0x6d, 0x2,0x55,0x67, 0x1,0x6f,0x71, 0x3,0x53,0x61, - 0x1,0x76,0x29, 0x3,0x57,0x2a, 0x2,0x64,0x55, 0x3,0x59,0x5c, - 0x1,0x77,0x71, 0x2,0x67,0x78, 0x1,0x79,0x4e, 0x2,0x67,0x77, - 0x2,0x67,0x79, 0x2,0x67,0x76, 0x2,0x6c,0x63, 0x2,0x6a,0x60, - 0x2,0x6a,0x61, 0x3,0x5d,0x56, 0x1,0x7a,0x51, 0x2,0x6c,0x62, - 0x3,0x5e,0x7b, 0x3,0x5e,0x79, 0x2,0x6c,0x61, 0x3,0x5e,0x7a, - 0x2,0x6e,0x44, 0x2,0x71,0x7e, 0x3,0x62,0x25, 0x1,0x53,0x79, - 0x3,0x5e,0x7c, 0x3,0x62,0x26, 0x1,0x53,0x7a, 0x3,0x39,0x67, - 0x1,0x58,0x6a, 0x2,0x33,0x4b, 0x3,0x66,0x70, 0x2,0x3a,0x33, - 0x3,0x39,0x68, 0x1,0x62,0x7d, 0x1,0x63,0x22, 0x1,0x62,0x7e, - 0x2,0x41,0x53, 0x3,0x45,0x5b, 0x1,0x63,0x24, 0x1,0x63,0x21, - 0x3,0x40,0x2b, 0x3,0x45,0x5c, 0x1,0x63,0x23, 0x3,0x45,0x54, - 0x1,0x67,0x66, 0x3,0x45,0x59, 0x2,0x48,0x68, 0x3,0x45,0x57, - 0x3,0x4a,0x5d, 0x2,0x48,0x69, 0x2,0x55,0x69, 0x4,0x41,0x7b, - 0x1,0x67,0x65, 0x1,0x67,0x67, 0x1,0x67,0x68, 0x3,0x45,0x58, - 0x2,0x4f,0x37, 0x3,0x4a,0x5e, 0x2,0x4f,0x36, 0x1,0x6b,0x6e, - 0x5,0x4b,0x4c, 0x1,0x6b,0x6f, 0x3,0x4a,0x5b, 0x2,0x4f,0x38, - 0x2,0x55,0x68, 0x1,0x6b,0x71, 0x1,0x6f,0x72, 0x4,0x4e,0x63, - 0x1,0x6b,0x70, 0x3,0x66,0x7a, 0x1,0x73,0x27, 0x2,0x55,0x6a, - 0x1,0x6f,0x74, 0x1,0x6f,0x73, 0x2,0x55,0x6b, 0x2,0x55,0x6e, - 0x2,0x55,0x6c, 0x2,0x55,0x6d, 0x1,0x6f,0x75, 0x3,0x4f,0x6b, - 0x1,0x73,0x2c, 0x1,0x73,0x2a, 0x3,0x53,0x65, 0x3,0x53,0x66, - 0x1,0x73,0x29, 0x2,0x5b,0x69, 0x3,0x53,0x64, 0x1,0x73,0x2b, - 0x3,0x53,0x62, 0x3,0x53,0x63, 0x2,0x5b,0x68, 0x2,0x60,0x57, - 0x4,0x54,0x7e, 0x2,0x5b,0x6a, 0x1,0x73,0x28, 0x2,0x5b,0x6b, - 0x2,0x60,0x5a, 0x2,0x60,0x58, 0x2,0x60,0x59, 0x2,0x60,0x5e, - 0x1,0x77,0x75, 0x2,0x60,0x5d, 0x2,0x60,0x60, 0x2,0x60,0x5f, - 0x2,0x60,0x5c, 0x2,0x60,0x5b, 0x4,0x55,0x21, 0x1,0x76,0x2a, - 0x3,0x59,0x62, 0x4,0x5a,0x29, 0x3,0x59,0x61, 0x3,0x59,0x66, - 0x2,0x64,0x58, 0x3,0x59,0x65, 0x2,0x64,0x57, 0x1,0x77,0x74, - 0x1,0x77,0x72, 0x1,0x77,0x73, 0x3,0x59,0x63, 0x2,0x64,0x56, - 0x3,0x66,0x71, 0x2,0x67,0x7c, 0x3,0x5b,0x69, 0x1,0x79,0x4f, - 0x4,0x62,0x38, 0x2,0x67,0x7b, 0x2,0x67,0x7a, 0x1,0x79,0x50, - 0x4,0x65,0x3a, 0x2,0x6a,0x66, 0x2,0x6a,0x65, 0x3,0x5d,0x58, - 0x2,0x6a,0x63, 0x3,0x5e,0x7e, 0x2,0x6a,0x62, 0x1,0x7a,0x53, - 0x1,0x7a,0x52, 0x2,0x6a,0x67, 0x2,0x6e,0x45, 0x1,0x7c,0x25, - 0x2,0x6c,0x65, 0x1,0x7b,0x43, 0x2,0x6c,0x64, 0x2,0x6a,0x64, - 0x3,0x5f,0x78, 0x2,0x6e,0x46, 0x1,0x7c,0x50, 0x3,0x61,0x2a, - 0x1,0x7d,0x2e, 0x2,0x71,0x48, 0x4,0x6e,0x24, 0x2,0x72,0x21, - 0x1,0x53,0x7b, 0x2,0x3a,0x34, 0x2,0x60,0x61, 0x1,0x53,0x7c, - 0x3,0x45,0x5f, 0x5,0x4b,0x4e, 0x2,0x4f,0x3a, 0x2,0x4f,0x39, - 0x2,0x5b,0x6c, 0x5,0x5a,0x26, 0x3,0x53,0x68, 0x2,0x60,0x63, - 0x3,0x57,0x30, 0x2,0x60,0x62, 0x3,0x59,0x67, 0x1,0x77,0x76, - 0x2,0x67,0x7d, 0x2,0x67,0x7e, 0x1,0x7a,0x54, 0x3,0x5f,0x21, - 0x3,0x60,0x60, 0x2,0x72,0x22, 0x1,0x58,0x6b, 0x1,0x63,0x26, - 0x1,0x63,0x25, 0x2,0x48,0x6a, 0x2,0x48,0x6c, 0x1,0x67,0x6a, - 0x2,0x48,0x6b, 0x1,0x67,0x69, 0x1,0x67,0x6b, 0x2,0x48,0x6d, - 0x3,0x4a,0x63, 0x3,0x4a,0x62, 0x3,0x4a,0x66, 0x2,0x4f,0x3c, - 0x2,0x4f,0x3e, 0x2,0x4f,0x3d, 0x3,0x4a,0x61, 0x2,0x4f,0x40, - 0x3,0x4a,0x60, 0x3,0x4a,0x6c, 0x3,0x4a,0x64, 0x1,0x6b,0x72, - 0x2,0x4f,0x3f, 0x2,0x4f,0x3b, 0x3,0x4a,0x6a, 0x4,0x48,0x60, - 0x2,0x4f,0x41, 0x3,0x4f,0x73, 0x2,0x55,0x75, 0x3,0x4f,0x6d, - 0x2,0x55,0x78, 0x2,0x55,0x7a, 0x2,0x55,0x70, 0x2,0x55,0x74, - 0x2,0x55,0x71, 0x1,0x6f,0x77, 0x1,0x6f,0x7a, 0x1,0x6f,0x7c, - 0x2,0x55,0x72, 0x2,0x55,0x73, 0x1,0x6f,0x7b, 0x2,0x55,0x76, - 0x2,0x55,0x79, 0x2,0x55,0x77, 0x1,0x6f,0x7d, 0x3,0x4f,0x6e, - 0x1,0x6f,0x79, 0x2,0x55,0x6f, 0x1,0x6f,0x76, 0x3,0x4f,0x72, - 0x1,0x6f,0x78, 0x3,0x4f,0x74, 0x3,0x53,0x70, 0x1,0x73,0x2e, - 0x2,0x5b,0x72, 0x2,0x5b,0x70, 0x2,0x5b,0x6f, 0x3,0x53,0x71, - 0x2,0x5b,0x75, 0x3,0x53,0x6b, 0x2,0x5b,0x74, 0x2,0x5b,0x73, - 0x3,0x53,0x6c, 0x2,0x5b,0x6e, 0x1,0x73,0x2d, 0x2,0x5b,0x6d, - 0x3,0x53,0x6a, 0x2,0x5b,0x71, 0x1,0x73,0x2f, 0x3,0x57,0x34, - 0x2,0x60,0x66, 0x3,0x57,0x37, 0x2,0x60,0x6a, 0x2,0x60,0x67, - 0x2,0x60,0x69, 0x2,0x60,0x68, 0x2,0x60,0x65, 0x2,0x60,0x6b, - 0x2,0x60,0x6e, 0x2,0x60,0x6c, 0x2,0x60,0x6d, 0x1,0x76,0x2c, - 0x3,0x57,0x33, 0x1,0x76,0x2b, 0x2,0x60,0x64, 0x2,0x60,0x6f, - 0x2,0x64,0x5d, 0x2,0x64,0x60, 0x2,0x64,0x62, 0x2,0x64,0x61, - 0x3,0x59,0x6a, 0x2,0x64,0x5b, 0x2,0x64,0x5f, 0x2,0x64,0x5a, - 0x3,0x59,0x6b, 0x2,0x64,0x5c, 0x1,0x77,0x77, 0x2,0x64,0x59, - 0x3,0x59,0x6d, 0x2,0x64,0x5e, 0x2,0x68,0x2d, 0x2,0x68,0x22, - 0x1,0x79,0x51, 0x3,0x5b,0x6f, 0x3,0x5b,0x6d, 0x1,0x79,0x52, - 0x2,0x68,0x21, 0x2,0x68,0x26, 0x2,0x68,0x2c, 0x2,0x68,0x24, - 0x2,0x68,0x2b, 0x3,0x5b,0x6c, 0x2,0x68,0x28, 0x3,0x5b,0x6e, - 0x2,0x68,0x27, 0x2,0x68,0x2a, 0x2,0x68,0x25, 0x2,0x68,0x23, - 0x3,0x5b,0x6b, 0x2,0x68,0x29, 0x2,0x6a,0x6e, 0x2,0x6a,0x6c, - 0x1,0x7a,0x55, 0x2,0x6a,0x6b, 0x2,0x6a,0x71, 0x2,0x6a,0x6f, - 0x3,0x5d,0x5a, 0x1,0x7a,0x56, 0x2,0x6a,0x6a, 0x2,0x6a,0x68, - 0x4,0x65,0x46, 0x2,0x6a,0x69, 0x1,0x7a,0x58, 0x2,0x6a,0x6d, - 0x1,0x7a,0x57, 0x2,0x6a,0x70, 0x2,0x6c,0x66, 0x2,0x6c,0x6c, - 0x3,0x5f,0x24, 0x3,0x5f,0x22, 0x2,0x6c,0x67, 0x1,0x7b,0x47, - 0x2,0x6c,0x6d, 0x1,0x7b,0x46, 0x2,0x6c,0x6b, 0x2,0x6c,0x6a, - 0x1,0x7b,0x45, 0x2,0x6c,0x69, 0x1,0x7b,0x44, 0x2,0x6c,0x68, - 0x7,0x56,0x51, 0x2,0x6e,0x4c, 0x2,0x6e,0x4e, 0x2,0x6e,0x4d, - 0x4,0x69,0x6a, 0x2,0x6e,0x4a, 0x1,0x7c,0x27, 0x2,0x6e,0x47, - 0x2,0x6e,0x4b, 0x2,0x6e,0x50, 0x3,0x5f,0x79, 0x2,0x6e,0x4f, - 0x2,0x6e,0x48, 0x2,0x6e,0x49, 0x1,0x7c,0x26, 0x2,0x6f,0x60, - 0x1,0x7c,0x53, 0x3,0x60,0x62, 0x2,0x6f,0x61, 0x1,0x7c,0x51, - 0x1,0x7c,0x52, 0x3,0x60,0x61, 0x4,0x6c,0x3d, 0x2,0x70,0x61, - 0x1,0x7c,0x75, 0x2,0x71,0x65, 0x3,0x61,0x72, 0x1,0x7d,0x37, - 0x3,0x61,0x73, 0x2,0x72,0x23, 0x1,0x7d,0x38, 0x2,0x72,0x24, - 0x2,0x72,0x25, 0x2,0x72,0x33, 0x2,0x72,0x32, 0x1,0x7d,0x47, - 0x2,0x72,0x3b, 0x1,0x58,0x6c, 0x3,0x40,0x2f, 0x4,0x42,0x21, - 0x2,0x48,0x6f, 0x4,0x41,0x7d, 0x2,0x48,0x6e, 0x4,0x41,0x7e, - 0x1,0x6b,0x73, 0x1,0x6b,0x74, 0x2,0x4f,0x42, 0x4,0x4e,0x74, - 0x2,0x55,0x7b, 0x2,0x5b,0x78, 0x3,0x4f,0x77, 0x3,0x4f,0x76, - 0x1,0x6f,0x7e, 0x1,0x73,0x30, 0x2,0x5b,0x76, 0x4,0x55,0x31, - 0x2,0x5b,0x79, 0x1,0x73,0x31, 0x3,0x57,0x3a, 0x2,0x60,0x70, - 0x2,0x5b,0x77, 0x2,0x64,0x63, 0x1,0x77,0x78, 0x2,0x68,0x2e, - 0x4,0x62,0x49, 0x3,0x5d,0x61, 0x2,0x6a,0x74, 0x2,0x6a,0x72, - 0x3,0x5d,0x60, 0x3,0x5d,0x5e, 0x2,0x6a,0x73, 0x2,0x6c,0x6e, - 0x3,0x5f,0x25, 0x1,0x7b,0x48, 0x2,0x6e,0x51, 0x1,0x7c,0x56, - 0x1,0x7c,0x28, 0x1,0x7c,0x54, 0x1,0x7c,0x55, 0x2,0x70,0x62, - 0x1,0x7d,0x2f, 0x3,0x61,0x74, 0x1,0x58,0x6d, 0x4,0x36,0x2d, - 0x3,0x4a,0x6e, 0x4,0x4e,0x79, 0x2,0x64,0x64, 0x3,0x5f,0x7b, - 0x3,0x60,0x63, 0x2,0x33,0x4c, 0x3,0x40,0x32, 0x1,0x67,0x6c, - 0x3,0x45,0x61, 0x2,0x4f,0x43, 0x3,0x4a,0x6f, 0x3,0x4a,0x73, - 0x1,0x6b,0x75, 0x2,0x4f,0x44, 0x3,0x4a,0x71, 0x3,0x4a,0x70, - 0x3,0x4a,0x72, 0x2,0x55,0x7d, 0x2,0x55,0x7c, 0x1,0x73,0x33, - 0x1,0x70,0x21, 0x1,0x70,0x22, 0x4,0x4f,0x21, 0x2,0x56,0x22, - 0x2,0x56,0x21, 0x2,0x55,0x7e, 0x3,0x4f,0x79, 0x3,0x53,0x75, - 0x2,0x5b,0x7a, 0x2,0x5b,0x7d, 0x3,0x53,0x74, 0x2,0x5b,0x7c, - 0x2,0x5b,0x7b, 0x1,0x73,0x32, 0x2,0x60,0x74, 0x2,0x60,0x72, - 0x2,0x60,0x71, 0x4,0x5a,0x37, 0x3,0x57,0x3b, 0x2,0x60,0x73, - 0x3,0x57,0x3c, 0x1,0x77,0x79, 0x2,0x64,0x66, 0x2,0x64,0x67, - 0x1,0x77,0x7a, 0x3,0x59,0x6f, 0x2,0x64,0x65, 0x3,0x5b,0x71, - 0x2,0x68,0x30, 0x2,0x68,0x2f, 0x2,0x68,0x32, 0x1,0x79,0x53, - 0x2,0x68,0x31, 0x4,0x62,0x4f, 0x2,0x6a,0x75, 0x2,0x6a,0x77, - 0x2,0x6a,0x76, 0x3,0x5f,0x27, 0x2,0x6c,0x6f, 0x2,0x6c,0x72, - 0x2,0x6c,0x70, 0x2,0x6c,0x71, 0x2,0x6e,0x52, 0x1,0x7c,0x29, - 0x4,0x69,0x74, 0x4,0x69,0x71, 0x3,0x66,0x72, 0x2,0x6f,0x62, - 0x2,0x6f,0x63, 0x2,0x6f,0x64, 0x3,0x61,0x2c, 0x1,0x7c,0x76, - 0x1,0x7d,0x30, 0x2,0x72,0x26, 0x1,0x58,0x6e, 0x3,0x4a,0x75, - 0x1,0x70,0x23, 0x1,0x73,0x34, 0x2,0x64,0x68, 0x3,0x5d,0x62, - 0x2,0x6e,0x53, 0x3,0x61,0x2e, 0x4,0x6d,0x37, 0x2,0x71,0x66, - 0x2,0x33,0x4d, 0x3,0x62,0x28, 0x1,0x7d,0x48, 0x1,0x58,0x6f, - 0x2,0x5b,0x7e, 0x3,0x57,0x3e, 0x2,0x64,0x69, 0x2,0x68,0x33, - 0x3,0x5d,0x63, 0x4,0x68,0x36, 0x2,0x6c,0x73, 0x2,0x6e,0x54, - 0x1,0x58,0x70, 0x3,0x45,0x62, 0x2,0x4f,0x45, 0x2,0x4f,0x46, - 0x3,0x4a,0x78, 0x1,0x6b,0x76, 0x1,0x6b,0x77, 0x2,0x56,0x24, - 0x1,0x70,0x25, 0x1,0x70,0x24, 0x2,0x56,0x23, 0x2,0x60,0x75, - 0x3,0x57,0x3f, 0x2,0x64,0x6a, 0x2,0x64,0x6c, 0x2,0x64,0x6b, - 0x1,0x77,0x7d, 0x1,0x77,0x7c, 0x1,0x77,0x7b, 0x3,0x5d,0x64, - 0x1,0x7b,0x4a, 0x2,0x6c,0x74, 0x3,0x5f,0x28, 0x1,0x7b,0x49, - 0x2,0x6e,0x56, 0x2,0x6e,0x55, 0x3,0x61,0x2f, 0x1,0x7c,0x77, - 0x2,0x70,0x63, 0x1,0x5e,0x23, 0x2,0x48,0x70, 0x4,0x42,0x29, - 0x3,0x45,0x63, 0x2,0x4f,0x49, 0x2,0x4f,0x47, 0x2,0x4f,0x48, - 0x4,0x48,0x6b, 0x3,0x4f,0x7e, 0x2,0x56,0x2d, 0x4,0x4f,0x30, - 0x2,0x56,0x28, 0x2,0x56,0x25, 0x2,0x56,0x2c, 0x3,0x4f,0x7c, - 0x4,0x4f,0x35, 0x3,0x4f,0x7b, 0x2,0x56,0x2e, 0x4,0x4f,0x37, - 0x4,0x4f,0x2c, 0x1,0x70,0x27, 0x2,0x56,0x2b, 0x2,0x56,0x27, - 0x3,0x4f,0x7d, 0x4,0x4f,0x2a, 0x2,0x56,0x26, 0x2,0x56,0x2a, - 0x2,0x56,0x29, 0x1,0x70,0x26, 0xf,0x53,0x3e, 0x2,0x5c,0x2b, - 0x2,0x5c,0x26, 0x2,0x5c,0x24, 0x2,0x5c,0x2d, 0x2,0x5c,0x25, - 0x4,0x55,0x47, 0x2,0x5c,0x21, 0x4,0x55,0x43, 0x2,0x5c,0x27, - 0x3,0x53,0x78, 0x3,0x53,0x7a, 0x2,0x5c,0x22, 0x2,0x60,0x7e, - 0x2,0x5c,0x23, 0x2,0x5c,0x2e, 0x3,0x54,0x23, 0x4,0x55,0x45, - 0x3,0x53,0x7c, 0x3,0x54,0x21, 0x5,0x5a,0x4a, 0x3,0x54,0x25, - 0x3,0x53,0x7d, 0x2,0x5c,0x2a, 0x1,0x73,0x35, 0x2,0x5c,0x29, - 0x2,0x5c,0x28, 0x3,0x53,0x79, 0x2,0x5c,0x2c, 0xf,0x59,0x38, - 0x3,0x66,0x73, 0x3,0x57,0x44, 0x2,0x60,0x76, 0x2,0x60,0x79, - 0x4,0x5a,0x49, 0x3,0x57,0x45, 0x2,0x60,0x78, 0x3,0x57,0x40, - 0x2,0x61,0x22, 0x2,0x60,0x7b, 0x2,0x61,0x21, 0x3,0x57,0x42, - 0x2,0x60,0x7d, 0x2,0x60,0x7c, 0x2,0x60,0x7a, 0x4,0x5a,0x41, - 0x2,0x60,0x77, 0x4,0x5a,0x3f, 0x1,0x76,0x2f, 0x1,0x76,0x2e, - 0x4,0x5a,0x44, 0x1,0x76,0x30, 0x1,0x76,0x2d, 0x2,0x61,0x23, - 0x4,0x5a,0x45, 0xf,0x5d,0x76, 0x4,0x5a,0x43, 0x2,0x64,0x72, - 0x2,0x64,0x75, 0x4,0x5f,0x26, 0x2,0x64,0x73, 0x2,0x64,0x77, - 0x5,0x66,0x79, 0x3,0x59,0x74, 0x4,0x5f,0x22, 0x2,0x64,0x78, - 0x4,0x5f,0x2a, 0x2,0x64,0x70, 0x1,0x78,0x24, 0x2,0x64,0x71, - 0x3,0x59,0x73, 0x2,0x64,0x6f, 0x2,0x64,0x76, 0x3,0x5b,0x74, - 0x2,0x64,0x6e, 0x2,0x64,0x6d, 0x1,0x78,0x23, 0x1,0x78,0x21, - 0x1,0x77,0x7e, 0x3,0x59,0x76, 0x3,0x59,0x75, 0x3,0x57,0x43, - 0xf,0x61,0x72, 0x3,0x59,0x71, 0x2,0x64,0x74, 0x2,0x68,0x3c, - 0x2,0x68,0x42, 0x1,0x79,0x56, 0x2,0x68,0x3d, 0x5,0x6b,0x33, - 0x2,0x68,0x40, 0x2,0x68,0x44, 0x1,0x79,0x57, 0x2,0x68,0x3f, - 0x4,0x62,0x5c, 0x2,0x68,0x37, 0x3,0x5b,0x75, 0x2,0x68,0x36, - 0x2,0x68,0x43, 0x2,0x68,0x3a, 0x3,0x5b,0x77, 0x2,0x68,0x38, - 0x2,0x68,0x41, 0x2,0x68,0x39, 0x1,0x79,0x55, 0x1,0x79,0x54, - 0x3,0x5b,0x79, 0x2,0x68,0x34, 0x2,0x68,0x35, 0x2,0x68,0x3e, - 0x4,0x62,0x66, 0x3,0x5b,0x7a, 0x4,0x62,0x68, 0x2,0x68,0x3b, - 0xf,0x64,0x6b, 0x4,0x62,0x55, 0x3,0x5d,0x6f, 0x2,0x6a,0x7a, - 0x2,0x6a,0x7d, 0x3,0x5d,0x71, 0x4,0x62,0x56, 0x3,0x5d,0x67, - 0x3,0x5d,0x69, 0x1,0x78,0x22, 0x3,0x5d,0x6a, 0x3,0x5d,0x74, - 0x3,0x5d,0x75, 0x4,0x65,0x5a, 0x3,0x5d,0x6e, 0x4,0x65,0x59, - 0x3,0x5d,0x68, 0x2,0x6a,0x7b, 0x2,0x6b,0x23, 0x2,0x6b,0x21, - 0x2,0x6a,0x79, 0x2,0x6b,0x26, 0x3,0x5d,0x66, 0x2,0x6a,0x78, - 0x3,0x5d,0x76, 0x1,0x7a,0x5a, 0x2,0x6b,0x22, 0x4,0x65,0x54, - 0x3,0x5d,0x73, 0x4,0x65,0x57, 0x2,0x6a,0x7c, 0x1,0x7a,0x59, - 0x2,0x6b,0x25, 0x3,0x5d,0x72, 0x4,0x65,0x5d, 0x2,0x6b,0x24, - 0x3,0x5d,0x70, 0x2,0x6c,0x77, 0x2,0x6c,0x76, 0x5,0x72,0x51, - 0x3,0x5f,0x2c, 0x5,0x72,0x4b, 0x2,0x6c,0x7d, 0x5,0x72,0x4e, - 0x2,0x6c,0x79, 0x2,0x6c,0x7c, 0x1,0x7b,0x4c, 0x4,0x68,0x3b, - 0x4,0x68,0x3e, 0x2,0x6c,0x7a, 0x2,0x6c,0x7b, 0x4,0x68,0x39, - 0x2,0x6c,0x75, 0x2,0x6c,0x78, 0x1,0x7b,0x4b, 0x3,0x5f,0x2a, - 0xf,0x69,0x2a, 0x1,0x7c,0x2b, 0x2,0x6e,0x61, 0x2,0x6e,0x5c, - 0x2,0x6e,0x60, 0x3,0x60,0x25, 0x2,0x6e,0x63, 0x2,0x6e,0x5f, - 0x3,0x5f,0x7e, 0x2,0x6e,0x5b, 0x3,0x60,0x23, 0x1,0x7c,0x2d, - 0x2,0x6e,0x5e, 0x2,0x6e,0x62, 0x1,0x7c,0x2c, 0x2,0x6e,0x59, - 0x2,0x6a,0x7e, 0x2,0x6e,0x5d, 0x4,0x6a,0x23, 0x5,0x75,0x2d, - 0x2,0x6e,0x5a, 0x3,0x60,0x22, 0x2,0x6e,0x57, 0xf,0x6a,0x3e, - 0x2,0x6e,0x58, 0x1,0x7c,0x2a, 0x2,0x6f,0x68, 0x2,0x6f,0x6a, - 0x2,0x6f,0x6d, 0x2,0x6f,0x69, 0x2,0x6f,0x6e, 0x3,0x60,0x65, - 0x2,0x6f,0x67, 0x3,0x60,0x66, 0x2,0x6f,0x65, 0x3,0x60,0x68, - 0x1,0x7c,0x57, 0x2,0x6f,0x6b, 0x1,0x7c,0x59, 0x1,0x7c,0x58, - 0x2,0x6f,0x66, 0x2,0x6f,0x6c, 0x3,0x61,0x32, 0x2,0x70,0x68, - 0x1,0x7c,0x78, 0x2,0x70,0x69, 0x3,0x61,0x33, 0x2,0x70,0x67, - 0x2,0x70,0x64, 0x4,0x6c,0x4a, 0x3,0x61,0x34, 0x2,0x70,0x66, - 0x2,0x70,0x65, 0x2,0x71,0x49, 0x3,0x61,0x59, 0x2,0x71,0x4b, - 0x2,0x71,0x4a, 0x3,0x61,0x5b, 0x2,0x71,0x69, 0x5,0x7a,0x53, - 0x2,0x71,0x68, 0x2,0x71,0x67, 0x2,0x71,0x6a, 0x3,0x61,0x75, - 0x1,0x7d,0x40, 0x1,0x7d,0x41, 0x2,0x72,0x38, 0x2,0x72,0x3c, - 0x3,0x62,0x41, 0x1,0x5e,0x24, 0x2,0x41,0x54, 0x2,0x48,0x73, - 0x3,0x45,0x64, 0x1,0x67,0x6d, 0x2,0x48,0x71, 0x3,0x45,0x66, - 0x3,0x2f,0x42, 0x2,0x48,0x72, 0x3,0x45,0x68, 0x3,0x45,0x67, - 0x2,0x4f,0x4a, 0x2,0x4f,0x4b, 0x1,0x6b,0x7a, 0x1,0x6b,0x78, - 0x2,0x4f,0x4c, 0x1,0x6b,0x79, 0x2,0x56,0x33, 0x3,0x50,0x27, - 0x2,0x56,0x36, 0x2,0x56,0x30, 0x2,0x56,0x37, 0x2,0x56,0x2f, - 0x2,0x56,0x31, 0x3,0x50,0x2a, 0x2,0x56,0x32, 0x2,0x56,0x35, - 0x3,0x50,0x24, 0x3,0x50,0x2b, 0x1,0x70,0x2a, 0x2,0x56,0x3a, - 0x2,0x56,0x39, 0x1,0x70,0x28, 0x2,0x56,0x34, 0x2,0x56,0x38, - 0x1,0x70,0x29, 0x3,0x54,0x2d, 0x4,0x4f,0x42, 0x3,0x50,0x25, - 0x3,0x50,0x22, 0x3,0x54,0x2a, 0x2,0x5c,0x38, 0x4,0x55,0x52, - 0x1,0x73,0x3a, 0x3,0x54,0x2c, 0x2,0x5c,0x33, 0x1,0x73,0x36, - 0x3,0x54,0x36, 0x2,0x5c,0x30, 0x2,0x5c,0x36, 0x2,0x5c,0x39, - 0x3,0x54,0x33, 0x1,0x73,0x3b, 0x4,0x5a,0x4e, 0x2,0x5c,0x35, - 0x2,0x5c,0x32, 0x2,0x5c,0x3a, 0x2,0x5c,0x31, 0x3,0x54,0x37, - 0x2,0x5c,0x37, 0x1,0x73,0x37, 0x3,0x54,0x29, 0x2,0x5c,0x2f, - 0x1,0x73,0x38, 0x3,0x54,0x35, 0x1,0x73,0x39, 0x2,0x5c,0x34, - 0x3,0x54,0x32, 0x2,0x61,0x35, 0x2,0x61,0x28, 0x2,0x61,0x29, - 0x2,0x61,0x2c, 0x2,0x61,0x2a, 0x4,0x5a,0x55, 0x2,0x61,0x24, - 0x4,0x5a,0x56, 0x3,0x57,0x4d, 0x2,0x61,0x27, 0x2,0x61,0x31, - 0x2,0x61,0x2b, 0x3,0x57,0x48, 0x4,0x5a,0x4f, 0x1,0x76,0x31, - 0x4,0x5a,0x4d, 0x2,0x61,0x33, 0x2,0x61,0x30, 0x1,0x76,0x32, - 0x2,0x61,0x32, 0x2,0x61,0x25, 0x2,0x61,0x2e, 0x2,0x61,0x2f, - 0x3,0x57,0x4a, 0x2,0x61,0x2d, 0xf,0x5e,0x24, 0x3,0x66,0x75, - 0x2,0x64,0x7c, 0x2,0x64,0x7e, 0x2,0x65,0x23, 0x3,0x59,0x79, - 0x3,0x59,0x7b, 0x2,0x64,0x7b, 0x3,0x59,0x7d, 0x1,0x78,0x25, - 0x2,0x65,0x25, 0x2,0x64,0x7a, 0x2,0x65,0x26, 0x3,0x59,0x7e, - 0x2,0x65,0x22, 0x2,0x65,0x24, 0x2,0x65,0x28, 0x2,0x65,0x21, - 0x2,0x65,0x29, 0x2,0x64,0x7d, 0x2,0x64,0x79, 0x1,0x78,0x26, - 0x3,0x5a,0x22, 0x2,0x65,0x27, 0x1,0x78,0x27, 0x1,0x79,0x59, - 0x4,0x5f,0x34, 0x3,0x59,0x7a, 0xf,0x61,0x77, 0x3,0x5b,0x7d, - 0x2,0x61,0x26, 0x2,0x68,0x5e, 0x2,0x68,0x55, 0x1,0x79,0x5b, - 0x2,0x68,0x51, 0x1,0x79,0x5c, 0x3,0x5c,0x27, 0x3,0x5c,0x22, - 0x2,0x68,0x5a, 0x2,0x68,0x54, 0x2,0x68,0x4a, 0x1,0x79,0x5a, - 0x2,0x68,0x57, 0x2,0x68,0x52, 0x2,0x68,0x53, 0x3,0x5c,0x25, - 0x2,0x68,0x45, 0x2,0x68,0x4c, 0x2,0x68,0x5b, 0x3,0x5b,0x7e, - 0x2,0x68,0x58, 0x5,0x6b,0x3f, 0x2,0x68,0x50, 0x3,0x5c,0x26, - 0x2,0x68,0x5c, 0x2,0x68,0x4b, 0x2,0x68,0x46, 0x2,0x68,0x59, - 0x3,0x5c,0x24, 0x2,0x68,0x48, 0x2,0x68,0x56, 0x2,0x68,0x4d, - 0x2,0x68,0x5d, 0x2,0x68,0x49, 0x1,0x79,0x58, 0x2,0x68,0x47, - 0x2,0x68,0x4e, 0x2,0x68,0x4f, 0x2,0x6b,0x2d, 0x3,0x5c,0x23, - 0x2,0x6b,0x2b, 0x4,0x65,0x69, 0x2,0x6b,0x30, 0x3,0x5d,0x79, - 0x2,0x6b,0x3c, 0x2,0x6b,0x33, 0x2,0x6b,0x2c, 0x2,0x6b,0x28, - 0x2,0x6b,0x35, 0x2,0x6b,0x2e, 0x2,0x6b,0x31, 0x2,0x6b,0x2a, - 0x2,0x6b,0x38, 0x2,0x6b,0x27, 0x2,0x6b,0x2f, 0x2,0x6b,0x34, - 0x2,0x6b,0x36, 0x2,0x6b,0x39, 0x2,0x6b,0x29, 0x3,0x5d,0x7a, - 0x2,0x6b,0x3d, 0x2,0x6b,0x3e, 0x2,0x6b,0x37, 0x2,0x6b,0x3b, - 0x2,0x6b,0x32, 0x2,0x6d,0x2f, 0x2,0x6d,0x32, 0x3,0x5f,0x35, - 0x1,0x7b,0x4d, 0x3,0x5f,0x31, 0x2,0x6d,0x31, 0x2,0x6d,0x36, - 0x2,0x6d,0x34, 0x1,0x7b,0x4e, 0x2,0x6d,0x2b, 0x2,0x6d,0x21, - 0x2,0x6c,0x7e, 0x1,0x7b,0x50, 0x2,0x6d,0x2d, 0x2,0x6d,0x2e, - 0x2,0x6d,0x2a, 0x2,0x6d,0x22, 0x3,0x5f,0x32, 0x2,0x6d,0x27, - 0x2,0x6b,0x3a, 0x4,0x68,0x43, 0x2,0x6d,0x23, 0x1,0x7b,0x4f, - 0x2,0x6d,0x29, 0x3,0x5f,0x36, 0x2,0x6d,0x28, 0x2,0x6d,0x24, - 0x2,0x6d,0x30, 0x4,0x68,0x44, 0x2,0x6d,0x25, 0x2,0x6e,0x68, - 0x2,0x6d,0x33, 0x2,0x6d,0x35, 0x2,0x6d,0x2c, 0x2,0x6d,0x26, - 0x2,0x6e,0x69, 0x2,0x6e,0x6b, 0x2,0x6e,0x65, 0x1,0x7c,0x2e, - 0x4,0x6a,0x25, 0x2,0x6e,0x72, 0x2,0x6e,0x70, 0x1,0x7c,0x2f, - 0x2,0x6e,0x6f, 0x2,0x6e,0x6e, 0x2,0x6e,0x67, 0x2,0x6e,0x64, - 0x2,0x6e,0x6a, 0x2,0x6e,0x73, 0x2,0x6e,0x66, 0x2,0x6e,0x6c, - 0x5,0x75,0x45, 0x2,0x6f,0x77, 0x2,0x6f,0x7c, 0x2,0x6f,0x72, - 0x2,0x6f,0x75, 0x1,0x7c,0x5a, 0x2,0x6f,0x79, 0x4,0x6b,0x46, - 0x2,0x70,0x22, 0x2,0x6e,0x6d, 0x4,0x6b,0x4a, 0x2,0x6f,0x73, - 0x2,0x6f,0x7d, 0x2,0x70,0x23, 0x2,0x6f,0x78, 0x2,0x6f,0x71, - 0x2,0x6f,0x7b, 0x4,0x6b,0x4b, 0x2,0x6f,0x7a, 0x2,0x70,0x21, - 0x2,0x6f,0x7e, 0x2,0x6e,0x71, 0x2,0x6f,0x76, 0x2,0x6f,0x70, - 0x2,0x6f,0x74, 0x1,0x7c,0x79, 0x1,0x7c,0x7a, 0x2,0x6f,0x6f, - 0x3,0x60,0x6c, 0x2,0x70,0x74, 0x2,0x70,0x6b, 0x2,0x70,0x73, - 0x2,0x70,0x70, 0x2,0x70,0x71, 0x2,0x70,0x6a, 0x2,0x70,0x6d, - 0x2,0x70,0x75, 0x2,0x70,0x6f, 0x2,0x70,0x6e, 0x2,0x70,0x6c, - 0x3,0x61,0x35, 0x2,0x70,0x72, 0x4,0x6c,0x56, 0x2,0x71,0x4c, - 0x4,0x6d,0x3a, 0x2,0x71,0x4d, 0x3,0x61,0x5d, 0x2,0x71,0x4f, - 0x2,0x71,0x4e, 0x2,0x71,0x51, 0x2,0x71,0x50, 0x2,0x71,0x6c, - 0x2,0x71,0x6b, 0x2,0x72,0x27, 0x3,0x62,0x29, 0x2,0x72,0x28, - 0x3,0x62,0x30, 0x2,0x72,0x34, 0x1,0x7d,0x45, 0x1,0x7d,0x49, - 0x3,0x62,0x38, 0x2,0x72,0x3d, 0x1,0x7d,0x4a, 0x1,0x5e,0x25, - 0x4,0x4f,0x48, 0x5,0x5a,0x5b, 0x1,0x7a,0x5b, 0x2,0x6d,0x37, - 0x3,0x5f,0x37, 0x1,0x7c,0x7b, 0x1,0x7c,0x7c, 0x1,0x5e,0x26, - 0x2,0x48,0x74, 0x3,0x45,0x69, 0x1,0x67,0x6e, 0x2,0x56,0x3b, - 0x3,0x50,0x2c, 0x3,0x54,0x39, 0x2,0x5c,0x3c, 0x2,0x5c,0x3d, - 0x2,0x5c,0x3b, 0x2,0x61,0x37, 0x2,0x61,0x36, 0x1,0x76,0x33, - 0x2,0x65,0x2b, 0x2,0x61,0x38, 0x2,0x65,0x2a, 0x4,0x5f,0x3a, - 0x3,0x5a,0x24, 0x2,0x68,0x60, 0x1,0x79,0x5d, 0x1,0x79,0x5f, - 0x2,0x68,0x5f, 0x3,0x5c,0x29, 0x4,0x62,0x75, 0x1,0x79,0x5e, - 0x3,0x5e,0x21, 0x2,0x6b,0x3f, 0x2,0x6b,0x41, 0x2,0x6b,0x40, - 0x2,0x6d,0x38, 0x1,0x7b,0x51, 0x3,0x5f,0x3a, 0x1,0x7c,0x5b, - 0x2,0x70,0x76, 0x2,0x71,0x52, 0x3,0x62,0x31, 0x3,0x62,0x3f, - 0x2,0x72,0x41, 0x1,0x5e,0x27, 0x3,0x25,0x47, 0x2,0x4f,0x4d, - 0x4,0x4f,0x4c, 0x1,0x70,0x2b, 0x3,0x50,0x2f, 0x3,0x50,0x2e, - 0x3,0x54,0x3a, 0x2,0x5c,0x3f, 0x2,0x5c,0x3e, 0x3,0x57,0x50, - 0x2,0x61,0x39, 0x3,0x5a,0x26, 0x3,0x5a,0x25, 0x4,0x62,0x7e, - 0x1,0x79,0x60, 0x1,0x7a,0x5c, 0x2,0x6e,0x74, 0x2,0x72,0x39, - 0x1,0x5e,0x28, 0x1,0x6b,0x7b, 0x3,0x4b,0x22, 0x1,0x70,0x2c, - 0xf,0x61,0x7c, 0x2,0x68,0x61, 0x3,0x5e,0x22, 0x2,0x70,0x24, - 0x1,0x63,0x27, 0x3,0x39,0x6a, 0x3,0x54,0x3c, 0x3,0x54,0x3b, - 0x4,0x5a,0x5d, 0x2,0x61,0x3a, 0x3,0x5a,0x28, 0x4,0x5f,0x3e, - 0x1,0x7d,0x31, 0x1,0x63,0x28, 0x1,0x70,0x2d, 0x1,0x76,0x34, - 0x2,0x70,0x25, 0x1,0x63,0x29, 0x3,0x39,0x6b, 0x2,0x56,0x3c, - 0x1,0x73,0x3d, 0x2,0x5c,0x40, 0x2,0x5c,0x41, 0x3,0x54,0x3d, - 0x1,0x73,0x3c, 0x4,0x55,0x60, 0x2,0x61,0x3b, 0x1,0x76,0x38, - 0x1,0x76,0x36, 0x1,0x76,0x37, 0x1,0x76,0x35, 0x2,0x65,0x2c, - 0x1,0x78,0x28, 0x4,0x63,0x24, 0x3,0x5c,0x2a, 0x2,0x6b,0x43, - 0x2,0x6b,0x42, 0x2,0x6b,0x45, 0x2,0x6b,0x44, 0x1,0x7a,0x5d, - 0x2,0x6d,0x39, 0x4,0x68,0x56, 0x2,0x6d,0x3b, 0x2,0x6d,0x3a, - 0x1,0x7b,0x52, 0x2,0x6e,0x75, 0x3,0x60,0x29, 0x2,0x70,0x26, - 0x2,0x70,0x27, 0x1,0x7c,0x5c, 0x2,0x71,0x53, 0x2,0x71,0x6d, - 0x1,0x7d,0x42, 0x4,0x6e,0x43, 0x2,0x41,0x55, 0x2,0x5c,0x42, - 0x2,0x61,0x3c, 0x2,0x68,0x62, 0x2,0x48,0x75, 0x3,0x27,0x72, - 0x2,0x61,0x3d, 0x2,0x65,0x2e, 0x2,0x65,0x2d, 0x3,0x5a,0x29, - 0x3,0x5c,0x2d, 0x3,0x5c,0x2e, 0x3,0x5f,0x3c, 0x2,0x70,0x28, - 0x1,0x7c,0x7d, 0x3,0x61,0x5f, 0x2,0x71,0x54, 0x2,0x71,0x6e, - 0x1,0x67,0x6f, 0x2,0x56,0x3d, 0x2,0x56,0x3e, 0x4,0x4f,0x56, - 0x2,0x5c,0x43, 0x1,0x67,0x70, 0x3,0x45,0x6a, 0x1,0x78,0x29, - 0x2,0x65,0x2f, 0x3,0x5c,0x30, 0x2,0x6d,0x3d, 0x1,0x7b,0x53, - 0x2,0x6d,0x3e, 0x2,0x6d,0x3c, 0x2,0x70,0x29, 0x3,0x61,0x60, - 0x2,0x70,0x77, 0x4,0x6d,0x48, 0x1,0x67,0x71, 0x2,0x61,0x40, - 0x2,0x61,0x3f, 0x2,0x61,0x3e, 0x2,0x65,0x30, 0x3,0x5a,0x2b, - 0x3,0x5a,0x2a, 0x2,0x65,0x34, 0x2,0x65,0x33, 0x2,0x65,0x32, - 0x2,0x65,0x31, 0x1,0x78,0x2a, 0x2,0x68,0x63, 0x2,0x6b,0x47, - 0x1,0x7a,0x5e, 0x2,0x6b,0x46, 0x2,0x6d,0x3f, 0x2,0x6e,0x78, - 0x2,0x6e,0x77, 0x1,0x7c,0x30, 0x2,0x6e,0x76, 0x2,0x70,0x2c, - 0x2,0x70,0x2b, 0x2,0x70,0x2a, 0x3,0x60,0x6d, 0x4,0x6e,0x44, - 0x1,0x6b,0x7c, 0x4,0x55,0x63, 0x2,0x5c,0x44, 0x1,0x76,0x39, - 0x4,0x5a,0x64, 0x2,0x68,0x64, 0x2,0x68,0x65, 0x2,0x6e,0x79, - 0x2,0x70,0x2d, 0x4,0x6b,0x5c, 0x3,0x61,0x3b, 0x2,0x70,0x78, - 0x2,0x71,0x55, 0x2,0x72,0x29, 0x2,0x72,0x43, 0x1,0x6b,0x7d, - 0x1,0x76,0x3a, 0x2,0x65,0x35, 0x2,0x68,0x66, 0x2,0x6d,0x40, - 0x2,0x70,0x2e, 0x3,0x23,0x70, 0x1,0x70,0x2f, 0x3,0x54,0x3e, - 0x2,0x61,0x41, 0x2,0x65,0x36, 0x2,0x68,0x67, 0x2,0x68,0x68, - 0x2,0x68,0x69, 0x2,0x6b,0x4c, 0x3,0x5e,0x24, 0x2,0x6b,0x48, - 0x1,0x7b,0x54, 0x2,0x6b,0x4b, 0x2,0x6b,0x4a, 0x1,0x7a,0x5f, - 0x2,0x6b,0x49, 0x1,0x7a,0x61, 0x1,0x7a,0x60, 0x2,0x6d,0x42, - 0x2,0x6d,0x41, 0x1,0x7b,0x55, 0x1,0x7b,0x56, 0x4,0x68,0x60, - 0x3,0x5f,0x3e, 0x1,0x7c,0x32, 0x2,0x6e,0x7a, 0x1,0x7c,0x31, - 0x4,0x6b,0x61, 0x2,0x70,0x31, 0x2,0x70,0x32, 0x2,0x70,0x30, - 0x2,0x70,0x2f, 0x1,0x7d,0x21, 0x4,0x6c,0x64, 0x2,0x70,0x79, - 0x2,0x70,0x7a, 0x2,0x70,0x7b, 0x1,0x7c,0x7e, 0x2,0x71,0x56, - 0x2,0x71,0x59, 0x2,0x71,0x58, 0x2,0x71,0x57, 0x3,0x62,0x33, - 0x4,0x6e,0x45, 0x2,0x72,0x42, 0x1,0x73,0x3e, 0x3,0x57,0x55, - 0x4,0x63,0x2d, 0x1,0x78,0x32, 0x2,0x6b,0x4d, 0x2,0x6d,0x43, - 0x3,0x60,0x2b, 0x1,0x7c,0x33, 0x2,0x6e,0x7b, 0x4,0x6e,0x55, - 0x3,0x62,0x42, 0x2,0x72,0x44, 0xf,0x21,0x59, 0x1,0x73,0x3f, - 0x3,0x5e,0x47, 0x4,0x6e,0x33, 0x2,0x61,0x42, 0x3,0x5f,0x3f, - 0x2,0x6e,0x7c, 0x3,0x61,0x61, 0x2,0x71,0x6f, 0x3,0x61,0x77, - 0xf,0x58,0x4c, 0x1,0x21,0x2b, 0x1,0x21,0x36, 0x1,0x21,0x38, - 0x1,0x21,0x40, 0x1,0x21,0x41, 0x1,0x21,0x44, 0x1,0x21,0x45, - 0x1,0x21,0x48, 0x1,0x21,0x49, 0x1,0x21,0x4c, 0x1,0x21,0x4d, - 0x1,0x21,0x50, 0x1,0x21,0x51, 0x1,0x21,0x54, 0x1,0x21,0x55, - 0x1,0x21,0x58, 0x1,0x21,0x59, 0x1,0x21,0x5c, 0x1,0x21,0x5d, - 0x1,0x22,0x27, 0x1,0x22,0x28, 0x1,0x22,0x2b, 0x1,0x22,0x2c, - 0x1,0x22,0x29, 0x1,0x22,0x2a, 0x1,0x21,0x2e, 0x1,0x21,0x2f, - 0x1,0x21,0x30, 0x1,0x21,0x32, 0x1,0x21,0x33, 0x1,0x21,0x34, - 0x1,0x21,0x35, 0x1,0x21,0x5e, 0x1,0x21,0x5f, 0x1,0x21,0x60, - 0x1,0x21,0x61, 0x1,0x21,0x62, 0x1,0x21,0x63, 0x1,0x22,0x2d, - 0x1,0x22,0x2e, 0x1,0x22,0x2f, 0x1,0x22,0x3f, 0x1,0x22,0x40, - 0x1,0x22,0x41, 0x1,0x22,0x43, 0x1,0x22,0x42, 0x1,0x22,0x62, - 0x1,0x22,0x6c, 0x1,0x22,0x6d, 0x1,0x22,0x6e, 0x1,0x21,0x2a, - 0x1,0x21,0x6c, 0x1,0x22,0x63, 0x1,0x22,0x68, 0x1,0x21,0x6d, - 0x1,0x21,0x3e, 0x1,0x21,0x3f, 0x1,0x21,0x6e, 0x1,0x22,0x30, - 0x1,0x21,0x22, 0x1,0x22,0x31, 0x1,0x21,0x25, 0x1,0x22,0x5f, - 0x1,0x24,0x21, 0x1,0x24,0x22, 0x1,0x24,0x23, 0x1,0x24,0x24, - 0x1,0x24,0x25, 0x1,0x24,0x26, 0x1,0x24,0x27, 0x1,0x24,0x28, - 0x1,0x24,0x29, 0x1,0x24,0x2a, 0x1,0x21,0x28, 0x1,0x21,0x27, - 0x1,0x22,0x36, 0x1,0x22,0x38, 0x1,0x22,0x37, 0x1,0x21,0x29, - 0x1,0x22,0x69, 0x1,0x24,0x41, 0x1,0x24,0x42, 0x1,0x24,0x43, - 0x1,0x24,0x44, 0x1,0x24,0x45, 0x1,0x24,0x46, 0x1,0x24,0x47, - 0x1,0x24,0x48, 0x1,0x24,0x49, 0x1,0x24,0x4a, 0x1,0x24,0x4b, - 0x1,0x24,0x4c, 0x1,0x24,0x4d, 0x1,0x24,0x4e, 0x1,0x24,0x4f, - 0x1,0x24,0x50, 0x1,0x24,0x51, 0x1,0x24,0x52, 0x1,0x24,0x53, - 0x1,0x24,0x54, 0x1,0x24,0x55, 0x1,0x24,0x56, 0x1,0x24,0x57, - 0x1,0x24,0x58, 0x1,0x24,0x59, 0x1,0x24,0x5a, 0x1,0x22,0x60, - 0x1,0x22,0x25, 0x1,0x24,0x5b, 0x1,0x24,0x5c, 0x1,0x24,0x5d, - 0x1,0x24,0x5e, 0x1,0x24,0x5f, 0x1,0x24,0x60, 0x1,0x24,0x61, - 0x1,0x24,0x62, 0x1,0x24,0x63, 0x1,0x24,0x64, 0x1,0x24,0x65, - 0x1,0x24,0x66, 0x1,0x24,0x67, 0x1,0x24,0x68, 0x1,0x24,0x69, - 0x1,0x24,0x6a, 0x1,0x24,0x6b, 0x1,0x24,0x6c, 0x1,0x24,0x6d, - 0x1,0x24,0x6e, 0x1,0x24,0x6f, 0x1,0x24,0x70, 0x1,0x24,0x71, - 0x1,0x24,0x72, 0x1,0x24,0x73, 0x1,0x24,0x74, 0x1,0x21,0x42, - 0x1,0x22,0x5e, 0x1,0x21,0x43, 0x1,0x22,0x66, 0x1,0x22,0x67, - 0x1,0x22,0x64, 0x5,0x21,0x25, 0xf,0x21,0x21, 0x6,0x21,0x2f, - 0x6,0x21,0x2d, 0x6,0x21,0x2e, 0x6,0x21,0x42, 0x6,0x21,0x43, - 0x5,0x21,0x33, 0x3,0x21,0x44, 0xf,0x21,0x3e, 0xf,0x21,0x3f, - 0x6,0x22,0x2b, 0x5,0x21,0x4d, 0x6,0x23,0x40, 0x6,0x23,0x3e, - 0x6,0x23,0x3f, 0x6,0x24,0x67, 0x6,0x25,0x5f, 0x5,0x23,0x2f, - 0xf,0x22,0x74, 0x6,0x25,0x67, 0x6,0x25,0x63, 0x6,0x29,0x37, - 0x6,0x29,0x3a, 0x6,0x29,0x38, 0xf,0x29,0x22, 0xf,0x29,0x23, - 0x6,0x2e,0x66, 0x5,0x30,0x72, 0x5,0x33,0x23, 0xf,0x39,0x32, - 0xf,0x39,0x33, 0x6,0x47,0x2d, 0xf,0x3b,0x73, 0xf,0x40,0x35, - 0xf,0x40,0x75, 0xf,0x47,0x42, 0xf,0x4d,0x56, 0x7,0x21,0x21, - 0xf,0x59,0x47, 0x4,0x4f,0x7c, 0xf,0x5a,0x3f, 0x6,0x21,0x2c, - 0x6,0x21,0x22, 0x6,0x22,0x5f, 0x4,0x21,0x56, 0x6,0x23,0x41, - 0x6,0x25,0x60, 0x6,0x29,0x3b, 0x5,0x25,0x21, 0x5,0x27,0x7a, - 0x6,0x2e,0x4a, 0xf,0x29,0x50, 0x6,0x35,0x25, 0x6,0x35,0x26, - 0x6,0x45,0x7d, 0x6,0x46,0x3f, 0xf,0x46,0x40, 0x5,0x44,0x7e, - 0x6,0x21,0x32, 0x5,0x21,0x2d, 0x6,0x22,0x2d, 0x6,0x23,0x42, - 0xf,0x2d,0x61, 0x6,0x50,0x50, 0xf,0x53,0x44, 0x4,0x21,0x21, - 0x5,0x21,0x26, 0x6,0x21,0x24, 0xf,0x21,0x22, 0x6,0x21,0x33, - 0x6,0x21,0x44, 0xf,0x21,0x25, 0xf,0x21,0x26, 0x5,0x21,0x4e, - 0x6,0x22,0x30, 0xf,0x21,0x45, 0x6,0x22,0x4e, 0x6,0x22,0x2f, - 0xf,0x21,0x40, 0xf,0x21,0x41, 0x6,0x21,0x45, 0x6,0x22,0x31, - 0x6,0x22,0x2e, 0x4,0x22,0x26, 0x4,0x22,0x25, 0x5,0x22,0x24, - 0x5,0x22,0x25, 0x6,0x23,0x43, 0x6,0x29,0x3e, 0x6,0x24,0x5d, - 0x6,0x25,0x56, 0x6,0x25,0x61, 0x6,0x25,0x62, 0x6,0x2c,0x43, - 0x6,0x29,0x3c, 0x6,0x3a,0x65, 0xf,0x29,0x25, 0x6,0x2d,0x2d, - 0x6,0x29,0x3d, 0x6,0x2e,0x4b, 0x5,0x2b,0x67, 0x6,0x35,0x2a, - 0x6,0x35,0x27, 0x6,0x39,0x64, 0x6,0x35,0x29, 0x6,0x3c,0x7b, - 0x6,0x45,0x7e, 0x6,0x46,0x40, 0x6,0x46,0x41, 0x5,0x3d,0x56, - 0x5,0x21,0x23, 0x5,0x21,0x22, 0x6,0x21,0x26, 0x6,0x21,0x25, - 0x5,0x21,0x21, 0x5,0x21,0x2b, 0xf,0x21,0x23, 0x6,0x21,0x46, - 0x5,0x21,0x34, 0xf,0x21,0x27, 0xf,0x21,0x28, 0x6,0x22,0x33, - 0x6,0x22,0x32, 0x6,0x22,0x2a, 0x5,0x21,0x4f, 0x6,0x23,0x46, - 0x6,0x23,0x44, 0xf,0x21,0x6e, 0x6,0x23,0x45, 0xf,0x22,0x75, - 0x6,0x29,0x3f, 0x6,0x2d,0x2c, 0x4,0x26,0x24, 0x6,0x2e,0x4d, - 0x6,0x2e,0x4e, 0xf,0x25,0x40, 0x6,0x2e,0x4c, 0x6,0x35,0x2b, - 0xf,0x2d,0x60, 0x6,0x3c,0x7e, 0x5,0x30,0x73, 0x6,0x3c,0x7d, - 0xf,0x39,0x34, 0x6,0x50,0x51, 0x5,0x44,0x55, 0xf,0x46,0x41, - 0x6,0x5a,0x63, 0x6,0x5a,0x62, 0x7,0x36,0x73, 0x7,0x46,0x27, - 0x7,0x4d,0x3a, 0x5,0x21,0x24, 0x5,0x21,0x27, 0x4,0x21,0x28, - 0x5,0x21,0x28, 0x5,0x21,0x2c, 0x6,0x21,0x47, 0x6,0x21,0x48, - 0x6,0x21,0x49, 0x6,0x23,0x47, 0x5,0x23,0x30, 0x6,0x25,0x64, - 0x6,0x29,0x40, 0x5,0x30,0x74, 0x6,0x46,0x42, 0x7,0x2c,0x3c, - 0x6,0x21,0x27, 0x6,0x21,0x28, 0x6,0x21,0x29, 0x6,0x21,0x4a, - 0x6,0x25,0x65, 0x6,0x23,0x48, 0x6,0x23,0x49, 0x6,0x25,0x68, - 0xf,0x22,0x76, 0x4,0x25,0x33, 0x5,0x25,0x22, 0x4,0x25,0x32, - 0x6,0x2e,0x50, 0x5,0x27,0x7b, 0xf,0x29,0x27, 0x6,0x30,0x7c, - 0x6,0x35,0x2d, 0x6,0x35,0x2c, 0xf,0x2d,0x62, 0x6,0x3d,0x21, - 0xf,0x4d,0x6e, 0x6,0x23,0x4a, 0xf,0x21,0x6f, 0xf,0x21,0x70, - 0xf,0x22,0x2b, 0x5,0x23,0x31, 0xf,0x22,0x77, 0xf,0x22,0x78, - 0xf,0x22,0x79, 0x5,0x25,0x23, 0x6,0x29,0x41, 0xf,0x25,0x43, - 0x6,0x2e,0x52, 0x6,0x2e,0x51, 0xf,0x29,0x28, 0x6,0x35,0x2f, - 0x5,0x2c,0x66, 0x4,0x2b,0x5f, 0x6,0x35,0x30, 0xf,0x2d,0x63, - 0x6,0x35,0x31, 0x6,0x46,0x43, 0x6,0x3d,0x23, 0x6,0x3d,0x22, - 0x4,0x30,0x44, 0x5,0x30,0x75, 0xf,0x32,0x74, 0xf,0x32,0x75, - 0xf,0x32,0x72, 0x6,0x46,0x45, 0x6,0x46,0x44, 0x6,0x46,0x46, - 0x4,0x36,0x2f, 0xf,0x39,0x35, 0xf,0x39,0x36, 0xf,0x39,0x37, - 0x6,0x4c,0x2d, 0xf,0x40,0x36, 0xf,0x40,0x37, 0xf,0x40,0x38, - 0xf,0x46,0x42, 0x6,0x50,0x52, 0x5,0x4b,0x71, 0x7,0x21,0x22, - 0xf,0x4d,0x57, 0xf,0x4d,0x58, 0xf,0x4d,0x59, 0x7,0x26,0x79, - 0x7,0x21,0x24, 0x7,0x21,0x23, 0x7,0x21,0x46, 0x7,0x2c,0x3f, - 0x5,0x53,0x53, 0x7,0x2c,0x3e, 0x7,0x2c,0x3d, 0x7,0x46,0x23, - 0x7,0x46,0x28, 0x6,0x21,0x34, 0x6,0x21,0x35, 0xf,0x21,0x24, - 0x6,0x21,0x4c, 0xf,0x21,0x29, 0x6,0x21,0x4b, 0x3,0x21,0x6f, - 0xf,0x21,0x43, 0x6,0x22,0x35, 0x6,0x22,0x34, 0x6,0x22,0x36, - 0x4,0x21,0x58, 0x4,0x22,0x2c, 0x4,0x22,0x2b, 0x4,0x22,0x29, - 0x6,0x23,0x4f, 0x4,0x22,0x30, 0x6,0x23,0x50, 0x5,0x22,0x27, - 0x6,0x23,0x4d, 0x6,0x23,0x4c, 0x4,0x22,0x2f, 0x6,0x23,0x4b, - 0xf,0x21,0x73, 0xf,0x21,0x74, 0xf,0x21,0x75, 0xf,0x21,0x76, - 0xf,0x21,0x77, 0xf,0x21,0x78, 0xf,0x21,0x79, 0x5,0x22,0x28, - 0x6,0x23,0x51, 0x5,0x22,0x26, 0xf,0x21,0x7a, 0x5,0x23,0x32, - 0x6,0x25,0x6a, 0x4,0x23,0x3a, 0x6,0x25,0x6b, 0x6,0x25,0x74, - 0x6,0x25,0x70, 0x6,0x25,0x6c, 0xf,0x22,0x7a, 0xf,0x22,0x7b, - 0xf,0x22,0x7c, 0xf,0x22,0x7d, 0xf,0x23,0x21, 0xf,0x23,0x22, - 0xf,0x23,0x23, 0xf,0x23,0x25, 0xf,0x23,0x28, 0xf,0x23,0x29, - 0xf,0x23,0x2a, 0xf,0x23,0x2b, 0xf,0x23,0x2c, 0x4,0x23,0x38, - 0x6,0x25,0x6d, 0x6,0x25,0x6f, 0xf,0x23,0x26, 0x6,0x25,0x6e, - 0x6,0x25,0x69, 0x5,0x23,0x33, 0x6,0x25,0x73, 0x6,0x29,0x43, - 0x6,0x29,0x45, 0x4,0x25,0x3a, 0x5,0x25,0x28, 0x6,0x29,0x46, - 0x5,0x25,0x29, 0x3,0x27,0x4e, 0x5,0x25,0x2a, 0x4,0x25,0x37, - 0x4,0x25,0x35, 0x6,0x29,0x4a, 0x6,0x29,0x44, 0x6,0x29,0x4c, - 0x6,0x29,0x47, 0x6,0x29,0x4e, 0x5,0x25,0x26, 0x6,0x29,0x42, - 0xf,0x25,0x45, 0xf,0x25,0x46, 0xf,0x25,0x48, 0xf,0x25,0x49, - 0xf,0x25,0x4b, 0xf,0x25,0x4c, 0xf,0x25,0x4d, 0xf,0x25,0x4e, - 0xf,0x25,0x4f, 0xf,0x25,0x50, 0xf,0x25,0x51, 0x6,0x29,0x4d, - 0x6,0x29,0x48, 0x6,0x29,0x49, 0x6,0x29,0x4b, 0x5,0x25,0x24, - 0x5,0x25,0x27, 0x5,0x27,0x7c, 0x6,0x2e,0x64, 0x6,0x2e,0x59, - 0x5,0x2b,0x72, 0x4,0x28,0x36, 0x6,0x2e,0x63, 0x6,0x2e,0x57, - 0x6,0x2e,0x56, 0x5,0x28,0x23, 0x4,0x28,0x3b, 0x6,0x2e,0x5d, - 0x5,0x27,0x7e, 0x5,0x27,0x7d, 0x5,0x28,0x22, 0x6,0x2e,0x62, - 0x6,0x2e,0x55, 0x6,0x2e,0x54, 0x6,0x2e,0x65, 0x6,0x2e,0x5c, - 0xf,0x29,0x29, 0xf,0x29,0x2a, 0xf,0x29,0x2b, 0xf,0x29,0x2c, - 0xf,0x29,0x2e, 0xf,0x29,0x2f, 0xf,0x29,0x31, 0xf,0x29,0x32, - 0xf,0x29,0x33, 0xf,0x29,0x34, 0xf,0x29,0x35, 0xf,0x29,0x36, - 0xf,0x29,0x37, 0xf,0x29,0x38, 0x6,0x2e,0x53, 0x6,0x2e,0x58, - 0x6,0x2e,0x5b, 0x6,0x2e,0x5e, 0x6,0x2e,0x60, 0xf,0x25,0x47, - 0x6,0x2e,0x5f, 0x5,0x28,0x24, 0x4,0x2b,0x63, 0x5,0x2b,0x70, - 0x4,0x2b,0x67, 0x6,0x35,0x36, 0x5,0x2b,0x6b, 0x6,0x35,0x35, - 0x5,0x2b,0x74, 0x4,0x2b,0x66, 0x4,0x2b,0x68, 0x5,0x2b,0x6f, - 0x6,0x35,0x32, 0x5,0x2b,0x69, 0xf,0x2d,0x64, 0xf,0x2d,0x6e, - 0x6,0x35,0x37, 0x5,0x2b,0x6e, 0xf,0x2d,0x66, 0xf,0x2d,0x67, - 0xf,0x2d,0x6a, 0xf,0x2d,0x6b, 0xf,0x2d,0x6c, 0xf,0x2d,0x6d, - 0xf,0x2d,0x6f, 0xf,0x2d,0x71, 0xf,0x2d,0x72, 0xf,0x2d,0x73, - 0xf,0x2d,0x74, 0xf,0x2d,0x75, 0xf,0x2d,0x76, 0xf,0x2d,0x78, - 0xf,0x2d,0x79, 0xf,0x2d,0x7a, 0xf,0x2d,0x7b, 0xf,0x2d,0x7c, - 0x6,0x35,0x21, 0x6,0x35,0x3a, 0x6,0x35,0x3b, 0x6,0x35,0x33, - 0x6,0x35,0x34, 0x5,0x2b,0x68, 0x6,0x35,0x39, 0xf,0x2d,0x77, - 0xf,0x2d,0x70, 0x5,0x2b,0x6a, 0x5,0x2b,0x6d, 0x5,0x2b,0x75, - 0x5,0x2b,0x71, 0x5,0x2b,0x73, 0x4,0x2b,0x60, 0x6,0x3d,0x2b, - 0x6,0x3d,0x2d, 0x6,0x3d,0x2c, 0x4,0x30,0x49, 0x4,0x30,0x48, - 0x6,0x3d,0x30, 0x6,0x3d,0x28, 0x5,0x31,0x21, 0x6,0x3d,0x33, - 0x5,0x30,0x77, 0x6,0x3d,0x2e, 0x6,0x3d,0x27, 0x5,0x31,0x22, - 0x5,0x30,0x76, 0x4,0x30,0x46, 0x6,0x3d,0x2a, 0x6,0x3d,0x31, - 0x6,0x3d,0x37, 0x6,0x3d,0x32, 0x6,0x3d,0x29, 0x4,0x30,0x4b, - 0x6,0x3d,0x34, 0xf,0x2d,0x69, 0xf,0x32,0x77, 0xf,0x32,0x78, - 0xf,0x32,0x79, 0xf,0x32,0x7a, 0xf,0x32,0x7b, 0xf,0x32,0x7c, - 0xf,0x32,0x7e, 0xf,0x33,0x21, 0xf,0x33,0x23, 0xf,0x33,0x24, - 0xf,0x33,0x25, 0xf,0x33,0x26, 0xf,0x33,0x27, 0x6,0x46,0x37, - 0x6,0x3d,0x38, 0x6,0x3e,0x65, 0x6,0x3d,0x39, 0x6,0x3d,0x2f, - 0x5,0x30,0x7a, 0x6,0x43,0x63, 0x5,0x30,0x7d, 0x5,0x31,0x23, - 0x6,0x3d,0x24, 0x6,0x3d,0x26, 0xf,0x32,0x7d, 0x5,0x30,0x79, - 0x5,0x30,0x7e, 0x5,0x30,0x78, 0x6,0x3d,0x25, 0x6,0x3d,0x36, - 0x5,0x30,0x7c, 0x6,0x46,0x49, 0x6,0x46,0x4f, 0x5,0x36,0x56, - 0x5,0x36,0x51, 0x6,0x46,0x4c, 0x5,0x36,0x4e, 0x5,0x36,0x52, - 0x5,0x36,0x63, 0x5,0x36,0x53, 0x6,0x46,0x48, 0x5,0x36,0x55, - 0x5,0x36,0x50, 0x6,0x46,0x56, 0x4,0x36,0x35, 0x5,0x36,0x54, - 0x6,0x46,0x52, 0x6,0x46,0x50, 0x6,0x46,0x4b, 0x6,0x46,0x4e, - 0x6,0x46,0x53, 0xf,0x32,0x76, 0x6,0x46,0x58, 0x5,0x36,0x4f, - 0x5,0x36,0x57, 0x6,0x46,0x47, 0xf,0x39,0x38, 0xf,0x39,0x39, - 0xf,0x39,0x3a, 0xf,0x39,0x3b, 0xf,0x39,0x3c, 0xf,0x39,0x3d, - 0xf,0x39,0x3e, 0xf,0x39,0x3f, 0x6,0x46,0x4d, 0x4,0x36,0x3b, - 0x6,0x46,0x51, 0x6,0x46,0x54, 0x5,0x36,0x4d, 0x6,0x46,0x4a, - 0x5,0x34,0x21, 0x6,0x50,0x5a, 0x4,0x42,0x38, 0x5,0x3d,0x5a, - 0x5,0x3d,0x58, 0x6,0x50,0x53, 0x5,0x30,0x7b, 0x5,0x3d,0x5e, - 0x5,0x3d,0x5c, 0x6,0x50,0x58, 0x5,0x3d,0x5b, 0x6,0x50,0x5f, - 0x6,0x50,0x5d, 0x4,0x3c,0x2e, 0x6,0x50,0x5c, 0x6,0x50,0x62, - 0x6,0x50,0x55, 0x4,0x3c,0x2f, 0x5,0x3d,0x60, 0x6,0x50,0x54, - 0x5,0x3d,0x57, 0x6,0x50,0x57, 0x6,0x50,0x5e, 0xf,0x40,0x39, - 0xf,0x40,0x3a, 0xf,0x40,0x3b, 0xf,0x40,0x3c, 0xf,0x40,0x3d, - 0xf,0x40,0x3e, 0xf,0x40,0x3f, 0xf,0x40,0x40, 0xf,0x40,0x41, - 0xf,0x40,0x42, 0xf,0x40,0x43, 0xf,0x40,0x44, 0xf,0x40,0x45, - 0xf,0x40,0x46, 0x6,0x50,0x61, 0x6,0x56,0x4e, 0x6,0x50,0x59, - 0x6,0x50,0x56, 0x6,0x46,0x57, 0x5,0x3d,0x59, 0x5,0x3d,0x5d, - 0x5,0x3d,0x5f, 0x4,0x3c,0x2b, 0x6,0x50,0x60, 0x6,0x5a,0x71, - 0x5,0x3d,0x61, 0x7,0x21,0x2e, 0x4,0x42,0x34, 0x5,0x44,0x56, - 0x6,0x5a,0x64, 0x6,0x5a,0x69, 0x5,0x3d,0x62, 0x6,0x5a,0x6b, - 0x4,0x42,0x39, 0x6,0x5a,0x74, 0x4,0x42,0x31, 0x6,0x5a,0x75, - 0x6,0x5a,0x68, 0x6,0x5a,0x67, 0x6,0x5a,0x76, 0xf,0x46,0x43, - 0xf,0x46,0x44, 0xf,0x46,0x45, 0xf,0x46,0x46, 0xf,0x46,0x47, - 0xf,0x46,0x49, 0xf,0x46,0x4a, 0xf,0x46,0x4b, 0xf,0x46,0x4c, - 0xf,0x46,0x4d, 0xf,0x46,0x4e, 0xf,0x46,0x4f, 0xf,0x46,0x51, - 0xf,0x46,0x52, 0xf,0x46,0x53, 0xf,0x46,0x54, 0xf,0x46,0x56, - 0xf,0x46,0x57, 0xf,0x46,0x58, 0xf,0x53,0x45, 0x7,0x26,0x2d, - 0x5,0x44,0x58, 0x6,0x5a,0x77, 0x6,0x5e,0x57, 0x6,0x5a,0x6d, - 0x6,0x5a,0x6f, 0x6,0x5a,0x65, 0xf,0x46,0x50, 0xf,0x46,0x48, - 0xf,0x46,0x55, 0x4,0x42,0x30, 0x6,0x5a,0x66, 0x6,0x5a,0x6a, - 0x6,0x5a,0x6e, 0x6,0x5a,0x70, 0x4,0x42,0x36, 0x5,0x3f,0x46, - 0x4,0x48,0x7e, 0x4,0x48,0x7a, 0x6,0x5a,0x6c, 0x7,0x21,0x2f, - 0x7,0x21,0x31, 0x7,0x21,0x29, 0x7,0x21,0x26, 0x7,0x21,0x25, - 0x5,0x4b,0x77, 0x4,0x48,0x7c, 0x7,0x21,0x2b, 0x7,0x21,0x2c, - 0x5,0x4b,0x73, 0x7,0x21,0x2a, 0x5,0x4b,0x79, 0x5,0x4b,0x78, - 0x7,0x21,0x27, 0xf,0x4d,0x5a, 0xf,0x4d,0x5b, 0xf,0x4d,0x5c, - 0xf,0x4d,0x5d, 0xf,0x4d,0x5e, 0xf,0x4d,0x60, 0xf,0x4d,0x61, - 0x7,0x21,0x28, 0x5,0x4b,0x72, 0x7,0x21,0x2d, 0xf,0x4d,0x62, - 0x4,0x49,0x21, 0x5,0x4b,0x75, 0x7,0x21,0x30, 0x5,0x4b,0x74, - 0x5,0x4c,0x45, 0x5,0x53,0x54, 0x5,0x53,0x5a, 0x7,0x2c,0x40, - 0x4,0x4f,0x58, 0x4,0x4f,0x5f, 0x5,0x53,0x58, 0x4,0x4f,0x5c, - 0x4,0x4f,0x5e, 0x5,0x53,0x55, 0x5,0x53,0x56, 0xf,0x53,0x46, - 0xf,0x53,0x47, 0xf,0x53,0x48, 0xf,0x53,0x49, 0xf,0x53,0x4a, - 0x5,0x53,0x5b, 0x5,0x53,0x57, 0x7,0x36,0x78, 0x5,0x4b,0x76, - 0x5,0x5a,0x6f, 0x5,0x5a,0x70, 0x4,0x55,0x67, 0x4,0x55,0x66, - 0x7,0x36,0x76, 0xf,0x59,0x48, 0xf,0x59,0x4a, 0xf,0x59,0x4b, - 0xf,0x59,0x4c, 0xf,0x59,0x4e, 0x7,0x36,0x75, 0x7,0x36,0x77, - 0xf,0x59,0x49, 0x4,0x55,0x68, 0x7,0x36,0x74, 0x7,0x3e,0x76, - 0x4,0x5a,0x6b, 0x4,0x5a,0x69, 0x4,0x5a,0x6a, 0x7,0x3e,0x78, - 0x7,0x3e,0x77, 0xf,0x5e,0x30, 0xf,0x5e,0x31, 0xf,0x5e,0x2c, - 0xf,0x5e,0x2e, 0xf,0x5e,0x2f, 0x7,0x3e,0x75, 0x5,0x61,0x31, - 0x4,0x5a,0x6c, 0x5,0x61,0x2f, 0x5,0x61,0x30, 0x5,0x61,0x32, - 0x5,0x67,0x4a, 0x5,0x67,0x4e, 0x4,0x63,0x2e, 0x5,0x67,0x4d, - 0x5,0x67,0x4f, 0xf,0x61,0x7e, 0xf,0x62,0x21, 0x7,0x47,0x6f, - 0x5,0x67,0x4c, 0x5,0x67,0x4b, 0x5,0x69,0x7c, 0x7,0x52,0x75, - 0x7,0x4d,0x3c, 0xf,0x64,0x7a, 0x5,0x6b,0x6b, 0x7,0x4d,0x3b, - 0x7,0x4d,0x68, 0x4,0x66,0x2f, 0x4,0x66,0x2e, 0x5,0x6f,0x68, - 0x7,0x57,0x4e, 0x5,0x6b,0x6c, 0xf,0x67,0x3f, 0xf,0x67,0x7e, - 0x4,0x66,0x2d, 0x7,0x57,0x4d, 0xf,0x69,0x38, 0xf,0x69,0x3a, - 0xf,0x69,0x39, 0x5,0x73,0x31, 0x4,0x6a,0x40, 0x7,0x5b,0x45, - 0xf,0x6a,0x4b, 0xf,0x6b,0x41, 0x5,0x75,0x62, 0x4,0x6d,0x52, - 0xf,0x6c,0x49, 0x6,0x21,0x4d, 0x4,0x21,0x5c, 0x4,0x22,0x32, - 0x6,0x23,0x53, 0x6,0x23,0x54, 0x6,0x25,0x75, 0x6,0x25,0x77, - 0x6,0x25,0x78, 0x5,0x23,0x35, 0x6,0x25,0x76, 0x6,0x29,0x51, - 0x6,0x29,0x50, 0x6,0x29,0x4f, 0x6,0x29,0x53, 0xf,0x25,0x53, - 0x6,0x29,0x52, 0xf,0x25,0x52, 0x6,0x2e,0x67, 0x6,0x2e,0x68, - 0x5,0x2b,0x76, 0xf,0x2d,0x7d, 0xf,0x2d,0x7e, 0xf,0x2e,0x21, - 0x6,0x35,0x3c, 0xf,0x33,0x28, 0x5,0x31,0x24, 0x5,0x31,0x25, - 0xf,0x33,0x29, 0xf,0x33,0x2a, 0x6,0x46,0x59, 0xf,0x39,0x40, - 0xf,0x39,0x41, 0xf,0x39,0x42, 0x5,0x36,0x58, 0xf,0x39,0x43, - 0xf,0x40,0x47, 0x6,0x50,0x63, 0xf,0x40,0x48, 0xf,0x46,0x59, - 0xf,0x46,0x5a, 0x5,0x44,0x59, 0x7,0x21,0x34, 0x7,0x21,0x32, - 0x5,0x4b,0x7b, 0xf,0x4d,0x63, 0xf,0x4d,0x64, 0x5,0x4b,0x7a, - 0x7,0x21,0x33, 0x5,0x53,0x5c, 0x7,0x2c,0x41, 0xf,0x53,0x4b, - 0xf,0x53,0x4c, 0xf,0x53,0x4d, 0xf,0x53,0x4e, 0x5,0x5a,0x71, - 0xf,0x59,0x4f, 0xf,0x59,0x50, 0xf,0x59,0x51, 0x7,0x3e,0x79, - 0x5,0x61,0x33, 0xf,0x5e,0x32, 0x7,0x46,0x29, 0x5,0x67,0x50, - 0xf,0x64,0x7b, 0x5,0x67,0x51, 0x5,0x6b,0x6d, 0xf,0x67,0x41, - 0xf,0x69,0x3b, 0xf,0x6a,0x4c, 0x5,0x77,0x53, 0xf,0x6b,0x42, - 0x6,0x21,0x36, 0x5,0x21,0x36, 0x5,0x21,0x35, 0x6,0x22,0x37, - 0x6,0x23,0x56, 0x6,0x23,0x55, 0x5,0x23,0x36, 0x6,0x25,0x79, - 0x5,0x23,0x38, 0x5,0x28,0x25, 0x5,0x28,0x26, 0x4,0x2b,0x6a, - 0x6,0x35,0x3d, 0xf,0x2e,0x22, 0xf,0x2e,0x23, 0x6,0x3d,0x3a, - 0x6,0x46,0x5a, 0x6,0x50,0x64, 0x5,0x3d,0x63, 0x4,0x3c,0x31, - 0x6,0x5a,0x78, 0x5,0x5a,0x72, 0x6,0x21,0x37, 0x6,0x21,0x4e, - 0x5,0x21,0x37, 0x6,0x21,0x41, 0x6,0x21,0x59, 0x5,0x21,0x50, - 0x6,0x23,0x3b, 0x4,0x22,0x35, 0x6,0x23,0x57, 0x6,0x25,0x7c, - 0x6,0x25,0x7e, 0x5,0x23,0x39, 0xf,0x23,0x2d, 0x6,0x25,0x7a, - 0x6,0x29,0x54, 0x6,0x2e,0x6b, 0x6,0x2e,0x69, 0x5,0x28,0x27, - 0x6,0x2e,0x6a, 0x6,0x2e,0x4f, 0x6,0x30,0x7b, 0x6,0x35,0x40, - 0x6,0x35,0x3f, 0x6,0x35,0x41, 0x6,0x35,0x3e, 0x6,0x3d,0x3b, - 0x6,0x46,0x5d, 0x5,0x3d,0x64, 0xf,0x39,0x44, 0xf,0x39,0x45, - 0x6,0x46,0x5b, 0x6,0x46,0x5c, 0x5,0x3d,0x65, 0x6,0x50,0x65, - 0xf,0x40,0x49, 0xf,0x40,0x4a, 0x4,0x42,0x3a, 0x6,0x5a,0x79, - 0xf,0x54,0x46, 0xf,0x53,0x4f, 0xf,0x53,0x50, 0x5,0x61,0x34, - 0xf,0x5e,0x33, 0x7,0x46,0x2a, 0x7,0x46,0x2b, 0x4,0x21,0x2d, - 0x6,0x21,0x4f, 0x6,0x21,0x51, 0x6,0x22,0x39, 0x4,0x21,0x5d, - 0x6,0x22,0x38, 0x5,0x21,0x52, 0xf,0x21,0x46, 0x6,0x22,0x3a, - 0x5,0x21,0x51, 0x6,0x23,0x5a, 0x6,0x23,0x58, 0x6,0x25,0x47, - 0x6,0x26,0x23, 0x6,0x26,0x21, 0x6,0x26,0x22, 0x5,0x23,0x3a, - 0x6,0x28,0x7a, 0x5,0x25,0x2c, 0x6,0x29,0x55, 0x6,0x29,0x56, - 0x6,0x2e,0x6c, 0x6,0x35,0x42, 0x6,0x35,0x43, 0x5,0x2b,0x77, - 0x5,0x2b,0x78, 0x6,0x3d,0x3d, 0x6,0x46,0x5f, 0x3,0x39,0x77, - 0x6,0x46,0x5e, 0x4,0x3c,0x33, 0x5,0x3d,0x66, 0x6,0x5a,0x7b, - 0x6,0x5a,0x7a, 0x7,0x21,0x35, 0x5,0x53,0x5d, 0x7,0x2c,0x42, - 0xf,0x55,0x76, 0x4,0x5a,0x6d, 0xf,0x67,0x42, 0x7,0x57,0x4f, - 0x5,0x21,0x38, 0x6,0x22,0x3b, 0xf,0x21,0x48, 0xf,0x21,0x49, - 0x6,0x23,0x5b, 0x4,0x22,0x37, 0x5,0x22,0x29, 0xf,0x21,0x7b, - 0xf,0x23,0x2e, 0xf,0x23,0x2f, 0x5,0x25,0x2d, 0xf,0x25,0x55, - 0x6,0x2e,0x6d, 0x6,0x3d,0x3e, 0xf,0x2e,0x25, 0xf,0x2e,0x26, - 0xf,0x2e,0x27, 0xf,0x2e,0x28, 0xf,0x2e,0x29, 0x5,0x31,0x27, - 0x6,0x46,0x60, 0xf,0x39,0x47, 0xf,0x39,0x48, 0x6,0x46,0x61, - 0xf,0x3a,0x5d, 0x6,0x50,0x66, 0x6,0x5a,0x7c, 0xf,0x46,0x5b, - 0x5,0x4e,0x77, 0x7,0x2c,0x43, 0xf,0x59,0x52, 0xf,0x53,0x51, - 0x7,0x3e,0x7a, 0x7,0x46,0x2c, 0x7,0x4d,0x3f, 0x5,0x6f,0x69, - 0x5,0x75,0x63, 0xf,0x21,0x4a, 0x6,0x23,0x5c, 0xf,0x21,0x7d, - 0xf,0x21,0x7e, 0x4,0x22,0x38, 0x5,0x23,0x3b, 0x6,0x26,0x24, - 0x4,0x23,0x3c, 0xf,0x23,0x30, 0xf,0x23,0x31, 0xf,0x23,0x32, - 0xf,0x23,0x33, 0xf,0x23,0x24, 0xf,0x22,0x7e, 0x4,0x25,0x41, - 0x4,0x25,0x42, 0x6,0x29,0x58, 0x6,0x29,0x59, 0x5,0x25,0x2f, - 0xf,0x25,0x57, 0x5,0x28,0x29, 0x4,0x28,0x41, 0x4,0x28,0x42, - 0x5,0x28,0x2c, 0x5,0x28,0x28, 0x5,0x28,0x2a, 0x6,0x2e,0x6f, - 0xf,0x29,0x3a, 0xf,0x29,0x3c, 0xf,0x29,0x3d, 0xf,0x29,0x3e, - 0xf,0x29,0x3f, 0x6,0x2e,0x6e, 0x5,0x2b,0x7a, 0x4,0x2b,0x6b, - 0x5,0x2b,0x79, 0x5,0x28,0x2b, 0x6,0x35,0x45, 0x5,0x2b,0x7b, - 0xf,0x2e,0x2a, 0xf,0x2e,0x2b, 0x6,0x35,0x46, 0x5,0x31,0x28, - 0x6,0x3d,0x3f, 0x6,0x3d,0x40, 0x4,0x30,0x4e, 0xf,0x33,0x2b, - 0xf,0x33,0x2c, 0xf,0x33,0x2d, 0xf,0x33,0x2f, 0xf,0x33,0x30, - 0x6,0x46,0x62, 0x5,0x36,0x5c, 0x5,0x36,0x5a, 0x5,0x36,0x5b, - 0x5,0x36,0x59, 0x4,0x36,0x3e, 0xf,0x33,0x2e, 0x5,0x3d,0x6c, - 0x5,0x3d,0x67, 0x5,0x3d,0x69, 0x5,0x3d,0x6a, 0x5,0x3d,0x68, - 0x5,0x3d,0x6b, 0x6,0x50,0x67, 0x6,0x5a,0x7d, 0x5,0x4c,0x21, - 0x5,0x44,0x5a, 0x7,0x21,0x37, 0xf,0x46,0x5d, 0xf,0x46,0x5e, - 0x5,0x4b,0x7e, 0x5,0x4b,0x7d, 0x5,0x4b,0x7c, 0x7,0x21,0x36, - 0xf,0x4d,0x67, 0xf,0x53,0x53, 0x7,0x2c,0x45, 0xf,0x4d,0x66, - 0xf,0x53,0x52, 0x4,0x55,0x6a, 0x7,0x2c,0x46, 0x5,0x5a,0x73, - 0xf,0x59,0x53, 0xf,0x59,0x54, 0x5,0x61,0x36, 0x5,0x61,0x35, - 0x5,0x61,0x37, 0xf,0x5e,0x34, 0x7,0x3e,0x7b, 0x5,0x67,0x52, - 0x5,0x67,0x53, 0x7,0x52,0x76, 0x5,0x73,0x32, 0x4,0x21,0x29, - 0x6,0x21,0x52, 0xf,0x21,0x2a, 0xf,0x21,0x2b, 0xf,0x21,0x2c, - 0xf,0x21,0x2e, 0x6,0x21,0x5c, 0xf,0x21,0x2d, 0x5,0x21,0x53, - 0x6,0x22,0x3d, 0x4,0x21,0x5f, 0x6,0x23,0x5e, 0x6,0x23,0x5d, - 0x6,0x23,0x5f, 0x6,0x23,0x60, 0xf,0x21,0x4b, 0x6,0x26,0x27, - 0x6,0x26,0x25, 0x6,0x26,0x26, 0xf,0x23,0x34, 0xf,0x23,0x35, - 0x4,0x25,0x46, 0x6,0x29,0x5a, 0x4,0x25,0x44, 0x6,0x29,0x5b, - 0x6,0x29,0x5c, 0x6,0x29,0x5d, 0xf,0x25,0x58, 0xf,0x25,0x59, - 0x6,0x2e,0x72, 0x6,0x2e,0x70, 0x6,0x2e,0x71, 0x6,0x35,0x47, - 0xf,0x2e,0x2c, 0x6,0x37,0x27, 0x6,0x3d,0x42, 0x6,0x3d,0x43, - 0x6,0x3d,0x41, 0xf,0x33,0x31, 0xf,0x33,0x32, 0xf,0x33,0x33, - 0x6,0x46,0x63, 0x6,0x46,0x66, 0xf,0x39,0x49, 0x6,0x46,0x64, - 0xf,0x39,0x4a, 0xf,0x46,0x5f, 0xf,0x46,0x60, 0xf,0x46,0x61, - 0xf,0x4d,0x68, 0x7,0x2c,0x47, 0xf,0x53,0x54, 0xf,0x53,0x55, - 0xf,0x53,0x43, 0xf,0x59,0x55, 0xf,0x5e,0x35, 0xf,0x67,0x43, - 0x4,0x21,0x2e, 0x5,0x21,0x39, 0x6,0x21,0x53, 0x6,0x21,0x54, - 0x6,0x22,0x3f, 0x5,0x21,0x54, 0x6,0x22,0x3e, 0xf,0x21,0x4c, - 0x6,0x23,0x65, 0x6,0x23,0x61, 0x6,0x23,0x62, 0x6,0x23,0x63, - 0xf,0x22,0x21, 0x5,0x22,0x2a, 0x6,0x26,0x28, 0xf,0x23,0x36, - 0x6,0x29,0x60, 0x6,0x29,0x5f, 0x6,0x2e,0x73, 0x6,0x2e,0x74, - 0x6,0x34,0x7a, 0x6,0x35,0x48, 0x6,0x3d,0x44, 0x6,0x3d,0x45, - 0x5,0x36,0x5d, 0x6,0x5a,0x7e, 0xf,0x46,0x62, 0x7,0x21,0x70, - 0x7,0x36,0x7b, 0x5,0x5a,0x76, 0x5,0x67,0x54, 0x7,0x4e,0x3e, - 0x6,0x21,0x39, 0x4,0x21,0x40, 0x6,0x21,0x55, 0x5,0x21,0x3a, - 0x5,0x21,0x3b, 0x6,0x21,0x56, 0x4,0x21,0x41, 0xf,0x21,0x2f, - 0x6,0x21,0x57, 0x5,0x21,0x55, 0x5,0x21,0x56, 0x4,0x21,0x62, - 0x6,0x22,0x44, 0x5,0x21,0x57, 0x6,0x22,0x43, 0x6,0x22,0x40, - 0x6,0x22,0x45, 0x4,0x22,0x3a, 0x6,0x23,0x6a, 0x5,0x22,0x2e, - 0x5,0x22,0x2c, 0x5,0x22,0x2b, 0x4,0x22,0x3b, 0x4,0x22,0x39, - 0x6,0x23,0x68, 0x6,0x23,0x67, 0x5,0x22,0x2f, 0x6,0x23,0x6b, - 0x6,0x23,0x69, 0x5,0x22,0x2d, 0x4,0x22,0x3d, 0xf,0x22,0x22, - 0xf,0x22,0x23, 0x4,0x22,0x3e, 0x6,0x23,0x66, 0x4,0x23,0x41, - 0x6,0x26,0x2b, 0x4,0x23,0x43, 0x5,0x23,0x3d, 0x4,0x23,0x42, - 0x5,0x23,0x46, 0x5,0x23,0x45, 0x5,0x23,0x43, 0x5,0x23,0x40, - 0x6,0x26,0x29, 0x5,0x23,0x3f, 0x5,0x23,0x42, 0x5,0x23,0x41, - 0x6,0x26,0x2a, 0x6,0x26,0x2c, 0x5,0x23,0x3e, 0x5,0x23,0x44, - 0x6,0x29,0x69, 0x5,0x25,0x33, 0x5,0x25,0x35, 0x4,0x25,0x49, - 0x4,0x25,0x4b, 0x3,0x27,0x5c, 0x6,0x29,0x66, 0x4,0x25,0x4d, - 0x6,0x29,0x64, 0x6,0x29,0x65, 0x6,0x29,0x6c, 0x6,0x2e,0x75, - 0x6,0x29,0x6a, 0x5,0x25,0x30, 0x5,0x25,0x36, 0x6,0x29,0x6b, - 0x5,0x25,0x32, 0x6,0x29,0x67, 0x5,0x25,0x34, 0xf,0x25,0x5a, - 0xf,0x25,0x5b, 0xf,0x25,0x5c, 0xf,0x25,0x5d, 0x6,0x29,0x68, - 0x6,0x29,0x62, 0x6,0x29,0x61, 0x5,0x25,0x31, 0x6,0x29,0x57, - 0x4,0x28,0x47, 0x5,0x28,0x2d, 0x4,0x28,0x45, 0x6,0x2f,0x24, - 0x6,0x2e,0x7b, 0x6,0x2f,0x22, 0x4,0x28,0x48, 0x6,0x2f,0x21, - 0x4,0x28,0x44, 0x4,0x28,0x46, 0x6,0x2e,0x78, 0x6,0x2e,0x7e, - 0x6,0x2f,0x23, 0x6,0x2e,0x7a, 0x6,0x2e,0x7d, 0x6,0x2e,0x7c, - 0xf,0x29,0x40, 0xf,0x29,0x41, 0xf,0x29,0x42, 0x6,0x2e,0x79, - 0x5,0x28,0x2e, 0x6,0x2e,0x77, 0x6,0x35,0x49, 0x4,0x2b,0x70, - 0x4,0x2b,0x6d, 0x5,0x2c,0x25, 0x5,0x2c,0x23, 0x4,0x2b,0x6f, - 0x4,0x2b,0x73, 0x6,0x35,0x4e, 0x6,0x35,0x52, 0x5,0x2c,0x22, - 0x6,0x35,0x53, 0x4,0x2b,0x6c, 0x5,0x2c,0x26, 0x6,0x35,0x51, - 0x4,0x2b,0x71, 0x6,0x35,0x50, 0x6,0x35,0x4f, 0x6,0x35,0x4c, - 0x6,0x35,0x4b, 0x4,0x2b,0x72, 0x5,0x2c,0x24, 0x6,0x35,0x4d, - 0xf,0x2e,0x33, 0x6,0x35,0x54, 0xf,0x2e,0x2e, 0xf,0x2e,0x2f, - 0xf,0x2e,0x30, 0xf,0x2e,0x32, 0xf,0x2e,0x31, 0x6,0x35,0x4a, - 0x5,0x2c,0x27, 0x5,0x2b,0x7d, 0x5,0x2c,0x21, 0x5,0x2b,0x7e, - 0x4,0x30,0x50, 0x5,0x31,0x2b, 0x4,0x30,0x51, 0x5,0x31,0x2a, - 0x6,0x3d,0x46, 0x4,0x30,0x56, 0x4,0x36,0x49, 0x4,0x30,0x55, - 0x6,0x3d,0x49, 0x6,0x3d,0x47, 0x5,0x36,0x5e, 0x4,0x30,0x4f, - 0x5,0x2c,0x28, 0xf,0x33,0x34, 0xf,0x33,0x35, 0xf,0x33,0x37, - 0x6,0x3d,0x48, 0x6,0x3d,0x4a, 0x6,0x3d,0x4b, 0x4,0x36,0x43, - 0x5,0x36,0x5f, 0x6,0x46,0x6d, 0x6,0x46,0x69, 0x4,0x36,0x46, - 0x4,0x36,0x47, 0x5,0x36,0x60, 0x5,0x36,0x64, 0x4,0x36,0x4a, - 0x4,0x36,0x44, 0x4,0x36,0x41, 0x4,0x36,0x40, 0x6,0x46,0x6b, - 0x6,0x46,0x68, 0x6,0x46,0x6c, 0x5,0x36,0x61, 0x5,0x36,0x62, - 0x6,0x46,0x6a, 0xf,0x39,0x4b, 0xf,0x39,0x4c, 0xf,0x39,0x4d, - 0xf,0x39,0x4e, 0x4,0x36,0x48, 0x6,0x4c,0x46, 0x6,0x46,0x6e, - 0x5,0x36,0x65, 0x4,0x3c,0x39, 0x6,0x50,0x6f, 0x5,0x3d,0x73, - 0x6,0x50,0x6d, 0x4,0x3c,0x35, 0x5,0x3d,0x74, 0x6,0x50,0x6e, - 0x5,0x3d,0x6d, 0x4,0x3c,0x37, 0x4,0x3c,0x36, 0x5,0x3d,0x6e, - 0x4,0x3c,0x3a, 0x5,0x3d,0x6f, 0x6,0x50,0x6b, 0xf,0x40,0x4b, - 0x6,0x50,0x6a, 0x6,0x50,0x68, 0x6,0x50,0x70, 0x6,0x50,0x69, - 0x5,0x3d,0x72, 0x5,0x3d,0x71, 0xf,0x40,0x4c, 0x5,0x44,0x5b, - 0x4,0x42,0x3b, 0x6,0x5b,0x24, 0x5,0x44,0x61, 0x6,0x5b,0x22, - 0x6,0x5b,0x21, 0x4,0x3c,0x38, 0x4,0x42,0x40, 0x5,0x44,0x62, - 0x5,0x44,0x5c, 0x5,0x44,0x5f, 0x4,0x42,0x3d, 0x4,0x42,0x44, - 0x6,0x5b,0x2b, 0x6,0x5b,0x29, 0x6,0x5b,0x28, 0x5,0x44,0x5e, - 0x5,0x4c,0x22, 0x6,0x5b,0x26, 0x5,0x44,0x5d, 0x6,0x5b,0x2a, - 0x5,0x44,0x60, 0x6,0x5b,0x25, 0xf,0x46,0x63, 0xf,0x46,0x64, - 0xf,0x46,0x65, 0x6,0x5b,0x23, 0x6,0x5b,0x27, 0x5,0x4c,0x23, - 0x5,0x4c,0x27, 0x4,0x49,0x24, 0x5,0x4c,0x24, 0x5,0x4c,0x26, - 0x7,0x21,0x3c, 0x7,0x21,0x3d, 0x7,0x21,0x3a, 0x7,0x21,0x3e, - 0x7,0x21,0x3b, 0x5,0x4c,0x25, 0x7,0x21,0x38, 0x7,0x22,0x5a, - 0x7,0x21,0x39, 0x4,0x4f,0x60, 0x7,0x2c,0x49, 0x5,0x5a,0x77, - 0x7,0x2c,0x4a, 0x7,0x2c,0x4e, 0x7,0x2c,0x4d, 0x7,0x2c,0x4c, - 0x5,0x53,0x5f, 0x5,0x53,0x61, 0x5,0x53,0x60, 0x5,0x53,0x5e, - 0x7,0x2c,0x48, 0x7,0x2c,0x4b, 0x7,0x21,0x3f, 0xf,0x53,0x56, - 0x5,0x58,0x51, 0x5,0x5a,0x7a, 0x4,0x55,0x6b, 0x5,0x5a,0x79, - 0x5,0x5a,0x78, 0x7,0x36,0x7c, 0xf,0x59,0x56, 0x4,0x55,0x6e, - 0x7,0x3e,0x7c, 0x5,0x61,0x38, 0x5,0x61,0x39, 0x7,0x36,0x7d, - 0xf,0x5e,0x36, 0x5,0x61,0x3a, 0x7,0x46,0x2f, 0x7,0x46,0x2e, - 0x7,0x46,0x2d, 0x7,0x4d,0x40, 0x7,0x4d,0x41, 0x5,0x6f,0x6a, - 0x7,0x52,0x77, 0xf,0x67,0x44, 0x5,0x75,0x64, 0x4,0x6b,0x65, - 0x7,0x62,0x2d, 0x7,0x62,0x2c, 0x6,0x21,0x3a, 0x5,0x21,0x3c, - 0x6,0x21,0x58, 0x4,0x21,0x63, 0x5,0x21,0x59, 0x5,0x21,0x58, - 0x5,0x22,0x31, 0x5,0x22,0x32, 0xf,0x22,0x25, 0xf,0x22,0x26, - 0xf,0x22,0x27, 0xf,0x22,0x28, 0x5,0x22,0x33, 0x6,0x26,0x2e, - 0x4,0x23,0x45, 0x5,0x23,0x47, 0xf,0x23,0x38, 0xf,0x23,0x3a, - 0xf,0x23,0x3b, 0x6,0x26,0x2d, 0x4,0x23,0x49, 0x5,0x25,0x3d, - 0x5,0x25,0x39, 0x6,0x29,0x6d, 0x5,0x25,0x3c, 0x6,0x29,0x6e, - 0xf,0x25,0x60, 0xf,0x25,0x61, 0xf,0x25,0x62, 0xf,0x25,0x63, - 0x5,0x28,0x30, 0x4,0x28,0x4a, 0x6,0x2f,0x26, 0x5,0x28,0x31, - 0x5,0x28,0x2f, 0x6,0x2f,0x28, 0xf,0x29,0x43, 0xf,0x29,0x44, - 0xf,0x29,0x45, 0x6,0x35,0x55, 0x6,0x35,0x59, 0x4,0x2b,0x74, - 0x5,0x2c,0x2d, 0x5,0x2c,0x29, 0x5,0x2c,0x2b, 0x5,0x2c,0x2c, - 0x5,0x2c,0x2a, 0xf,0x2e,0x34, 0xf,0x2e,0x35, 0x6,0x35,0x56, - 0x6,0x35,0x57, 0x5,0x31,0x2d, 0x6,0x3d,0x4e, 0x6,0x3d,0x4c, - 0x6,0x3d,0x4f, 0x6,0x3d,0x50, 0x6,0x3d,0x51, 0xf,0x33,0x38, - 0xf,0x33,0x39, 0x6,0x3d,0x4d, 0x5,0x36,0x69, 0x5,0x36,0x66, - 0x5,0x36,0x68, 0x5,0x36,0x6b, 0x5,0x36,0x67, 0xf,0x39,0x4f, - 0xf,0x39,0x50, 0x6,0x46,0x6f, 0x6,0x46,0x70, 0x6,0x46,0x71, - 0x5,0x3d,0x76, 0x5,0x3d,0x75, 0x4,0x3c,0x3b, 0x6,0x50,0x72, - 0x6,0x50,0x71, 0xf,0x40,0x4d, 0x5,0x3d,0x77, 0x4,0x42,0x46, - 0x5,0x44,0x66, 0x5,0x44,0x64, 0x5,0x44,0x65, 0x5,0x44,0x69, - 0x4,0x42,0x45, 0x5,0x44,0x68, 0x6,0x5b,0x2e, 0xf,0x46,0x66, - 0x6,0x5b,0x2c, 0x6,0x5b,0x2d, 0x5,0x4c,0x2b, 0x5,0x4c,0x28, - 0x4,0x49,0x26, 0x5,0x4c,0x29, 0x5,0x4c,0x2a, 0x7,0x2c,0x4f, - 0x5,0x5a,0x7c, 0xf,0x53,0x57, 0x5,0x5a,0x7b, 0x5,0x5a,0x7d, - 0x7,0x36,0x7e, 0x7,0x37,0x22, 0x7,0x37,0x21, 0x5,0x61,0x3c, - 0x7,0x3e,0x7e, 0x7,0x3f,0x21, 0x5,0x67,0x56, 0x5,0x67,0x55, - 0x7,0x4d,0x42, 0x5,0x6f,0x6b, 0x7,0x5b,0x46, 0x5,0x75,0x65, - 0x4,0x6c,0x6b, 0x7,0x66,0x3b, 0x5,0x21,0x3d, 0x6,0x22,0x47, - 0x6,0x22,0x48, 0x5,0x22,0x35, 0x5,0x22,0x34, 0x5,0x22,0x36, - 0xf,0x22,0x2a, 0x6,0x26,0x2f, 0x5,0x23,0x48, 0x5,0x23,0x49, - 0x4,0x25,0x52, 0x6,0x29,0x71, 0x6,0x29,0x70, 0xf,0x25,0x64, - 0xf,0x25,0x65, 0x6,0x2f,0x2a, 0x4,0x28,0x4c, 0x6,0x2f,0x2b, - 0x6,0x2f,0x2c, 0xf,0x29,0x46, 0x6,0x2f,0x29, 0x4,0x2b,0x76, - 0x6,0x35,0x5c, 0x6,0x35,0x5b, 0x6,0x35,0x5e, 0x6,0x35,0x5f, - 0x6,0x35,0x5a, 0x6,0x35,0x5d, 0x5,0x2c,0x2f, 0x4,0x30,0x5d, - 0x6,0x3d,0x52, 0x5,0x2c,0x2e, 0x5,0x31,0x2e, 0x5,0x31,0x2f, - 0x6,0x3d,0x53, 0x4,0x36,0x4e, 0xf,0x39,0x51, 0x6,0x50,0x73, - 0x4,0x30,0x5b, 0x5,0x3d,0x79, 0xf,0x40,0x4e, 0xf,0x40,0x4f, - 0x6,0x5b,0x2f, 0x4,0x42,0x47, 0x5,0x44,0x6a, 0x5,0x44,0x6b, - 0xf,0x46,0x67, 0xf,0x4d,0x69, 0x4,0x4f,0x65, 0x7,0x2c,0x50, - 0x7,0x2c,0x51, 0x7,0x37,0x23, 0x7,0x37,0x24, 0x5,0x5a,0x7e, - 0x7,0x4d,0x43, 0x6,0x21,0x2a, 0x4,0x21,0x42, 0x6,0x22,0x4a, - 0x6,0x26,0x30, 0x6,0x26,0x33, 0x5,0x23,0x4a, 0x6,0x26,0x31, - 0x6,0x26,0x32, 0x4,0x28,0x4d, 0x6,0x2f,0x2f, 0x6,0x2f,0x31, - 0x6,0x2f,0x2d, 0x6,0x2f,0x2e, 0x6,0x2f,0x30, 0x6,0x3d,0x54, - 0x6,0x35,0x60, 0xf,0x2e,0x36, 0xf,0x2e,0x37, 0x6,0x35,0x24, - 0x6,0x46,0x72, 0xf,0x39,0x52, 0x4,0x3c,0x3d, 0xf,0x46,0x68, - 0x7,0x3f,0x22, 0x5,0x6d,0x32, 0x6,0x21,0x2b, 0xf,0x21,0x31, - 0x5,0x22,0x37, 0x6,0x23,0x6e, 0x4,0x22,0x43, 0x6,0x23,0x6d, - 0x6,0x26,0x34, 0x4,0x23,0x4a, 0x6,0x26,0x35, 0xf,0x23,0x3c, - 0x6,0x29,0x73, 0x5,0x25,0x3e, 0x5,0x25,0x3f, 0x4,0x28,0x4f, - 0x6,0x2f,0x34, 0x5,0x28,0x33, 0x6,0x2f,0x33, 0x5,0x28,0x32, - 0x6,0x2f,0x32, 0x6,0x2f,0x37, 0x6,0x2f,0x35, 0xf,0x29,0x47, - 0x5,0x2c,0x30, 0x6,0x35,0x62, 0x6,0x35,0x61, 0x5,0x2c,0x31, - 0x6,0x3d,0x55, 0xf,0x33,0x3a, 0x4,0x36,0x4f, 0x6,0x50,0x75, - 0x6,0x46,0x73, 0x6,0x35,0x63, 0x5,0x3d,0x7a, 0x4,0x42,0x48, - 0x6,0x5b,0x31, 0x6,0x5b,0x30, 0x5,0x4c,0x2c, 0x5,0x4c,0x2d, - 0x5,0x4c,0x2e, 0xf,0x4d,0x6a, 0x5,0x53,0x64, 0x7,0x37,0x25, - 0xf,0x5e,0x37, 0x4,0x5f,0x4b, 0x7,0x3f,0x23, 0x7,0x4d,0x44, - 0x7,0x60,0x69, 0x7,0x64,0x43, 0xf,0x21,0x32, 0x5,0x22,0x38, - 0x6,0x23,0x6f, 0x5,0x23,0x4c, 0x6,0x26,0x37, 0xf,0x23,0x3d, - 0xf,0x25,0x66, 0x6,0x2f,0x36, 0x5,0x28,0x34, 0x6,0x35,0x64, - 0xf,0x46,0x69, 0x7,0x4d,0x45, 0x7,0x57,0x50, 0x6,0x21,0x5a, - 0x5,0x21,0x5a, 0x5,0x21,0x5b, 0x6,0x22,0x4b, 0x6,0x23,0x70, - 0x4,0x22,0x44, 0x4,0x22,0x45, 0x6,0x23,0x73, 0x6,0x23,0x72, - 0x5,0x22,0x3a, 0x5,0x22,0x39, 0x6,0x23,0x74, 0x6,0x26,0x39, - 0x5,0x23,0x4d, 0x6,0x26,0x3a, 0x6,0x23,0x75, 0x6,0x26,0x3b, - 0xf,0x23,0x3e, 0x5,0x25,0x40, 0x6,0x29,0x74, 0x6,0x29,0x77, - 0x6,0x29,0x78, 0x6,0x29,0x76, 0xf,0x25,0x67, 0xf,0x25,0x69, - 0xf,0x25,0x6a, 0xf,0x25,0x6b, 0xf,0x25,0x68, 0x6,0x29,0x75, - 0x6,0x35,0x65, 0x6,0x35,0x66, 0xf,0x2e,0x38, 0xf,0x2e,0x39, - 0x4,0x30,0x63, 0x4,0x30,0x61, 0x4,0x30,0x62, 0xf,0x33,0x3b, - 0xf,0x39,0x53, 0xf,0x39,0x54, 0x6,0x50,0x78, 0x6,0x50,0x77, - 0x6,0x50,0x79, 0x6,0x50,0x7b, 0xf,0x40,0x50, 0xf,0x46,0x6a, - 0xf,0x46,0x6b, 0x5,0x4c,0x2f, 0xf,0x4d,0x6b, 0xf,0x4d,0x6c, - 0x7,0x21,0x40, 0x7,0x37,0x26, 0xf,0x5e,0x38, 0x7,0x46,0x30, - 0x7,0x52,0x78, 0x7,0x60,0x6a, 0x7,0x62,0x2e, 0x6,0x22,0x4c, - 0x6,0x23,0x77, 0x6,0x23,0x76, 0x6,0x23,0x78, 0x4,0x23,0x4c, - 0x5,0x23,0x4f, 0x5,0x23,0x4e, 0x6,0x26,0x3c, 0x4,0x25,0x55, - 0x4,0x25,0x54, 0x6,0x29,0x7c, 0x6,0x29,0x7b, 0x6,0x29,0x7d, - 0x6,0x29,0x7a, 0x6,0x29,0x7e, 0x6,0x29,0x79, 0xf,0x25,0x6c, - 0x6,0x2a,0x22, 0x4,0x28,0x52, 0x4,0x28,0x51, 0x5,0x28,0x37, - 0xf,0x29,0x48, 0xf,0x29,0x49, 0xf,0x29,0x4a, 0xf,0x29,0x4b, - 0x6,0x2f,0x39, 0x6,0x35,0x68, 0x4,0x2b,0x79, 0x5,0x2c,0x32, - 0x6,0x35,0x67, 0x6,0x35,0x6a, 0x6,0x3c,0x7a, 0x6,0x35,0x69, - 0x6,0x3d,0x57, 0x6,0x3d,0x56, 0x6,0x35,0x6b, 0x6,0x3d,0x58, - 0x6,0x46,0x75, 0x6,0x46,0x76, 0x6,0x46,0x77, 0x5,0x37,0x3f, - 0x6,0x50,0x7c, 0x5,0x44,0x6d, 0x6,0x5b,0x32, 0x7,0x21,0x41, - 0xf,0x53,0x58, 0x7,0x63,0x4b, 0x5,0x21,0x3e, 0x4,0x21,0x43, - 0xf,0x21,0x34, 0x6,0x21,0x5b, 0x4,0x22,0x46, 0x6,0x2a,0x24, - 0x6,0x23,0x7a, 0x6,0x23,0x79, 0x4,0x23,0x4e, 0x6,0x2f,0x3b, - 0x5,0x28,0x38, 0x6,0x2f,0x3a, 0x4,0x28,0x53, 0x6,0x35,0x6c, - 0x6,0x2f,0x3c, 0x6,0x46,0x78, 0x5,0x2c,0x33, 0x5,0x3d,0x7b, - 0x6,0x50,0x7d, 0x5,0x44,0x6e, 0x7,0x3f,0x24, 0x5,0x21,0x3f, - 0x5,0x21,0x5c, 0x6,0x23,0x7b, 0x6,0x22,0x4f, 0x6,0x22,0x4d, - 0x6,0x22,0x50, 0x5,0x21,0x5d, 0x4,0x22,0x47, 0x5,0x22,0x3b, - 0x6,0x23,0x7c, 0x6,0x23,0x7d, 0x5,0x22,0x3f, 0x5,0x22,0x40, - 0x5,0x22,0x3d, 0x5,0x22,0x3e, 0xf,0x22,0x2d, 0x6,0x26,0x3e, - 0x5,0x23,0x50, 0x6,0x26,0x3d, 0x5,0x23,0x51, 0x6,0x25,0x5e, - 0xf,0x23,0x3f, 0x6,0x2a,0x27, 0x6,0x2a,0x26, 0x6,0x2a,0x29, - 0x6,0x2a,0x28, 0x5,0x25,0x41, 0x4,0x25,0x58, 0xf,0x25,0x6d, - 0xf,0x25,0x6e, 0x6,0x2a,0x25, 0x5,0x28,0x39, 0x4,0x28,0x54, - 0x6,0x2f,0x46, 0x6,0x2f,0x41, 0x6,0x2f,0x44, 0x6,0x2f,0x45, - 0x6,0x2f,0x40, 0x6,0x2f,0x3e, 0x6,0x2f,0x42, 0x6,0x2f,0x43, - 0xf,0x29,0x4d, 0xf,0x29,0x4e, 0x4,0x28,0x55, 0x6,0x2f,0x3f, - 0x6,0x35,0x73, 0x6,0x35,0x74, 0x4,0x2b,0x7b, 0x5,0x2c,0x34, - 0x4,0x2b,0x7c, 0x6,0x35,0x6f, 0x6,0x35,0x6d, 0x6,0x35,0x70, - 0x6,0x35,0x72, 0x6,0x35,0x71, 0x6,0x35,0x6e, 0x5,0x2c,0x35, - 0xf,0x2e,0x3a, 0xf,0x2e,0x3b, 0x6,0x3d,0x60, 0x6,0x3d,0x5b, - 0x4,0x30,0x67, 0x6,0x3d,0x5f, 0x6,0x3d,0x5c, 0x6,0x3d,0x5d, - 0xf,0x33,0x3d, 0x5,0x31,0x30, 0x6,0x3d,0x5e, 0x4,0x30,0x66, - 0x4,0x36,0x52, 0x6,0x46,0x7c, 0x6,0x46,0x7a, 0x4,0x36,0x53, - 0x6,0x46,0x7b, 0x6,0x46,0x79, 0x6,0x46,0x7d, 0xf,0x39,0x55, - 0x6,0x46,0x7e, 0x5,0x3d,0x7c, 0x5,0x3d,0x7d, 0x6,0x51,0x24, - 0x6,0x51,0x23, 0x6,0x50,0x7e, 0xf,0x40,0x51, 0x6,0x51,0x21, - 0x4,0x3c,0x3f, 0x4,0x42,0x49, 0x6,0x5b,0x34, 0x6,0x5b,0x37, - 0x6,0x5b,0x33, 0x6,0x5b,0x38, 0x5,0x44,0x6f, 0xf,0x46,0x6d, - 0xf,0x46,0x6e, 0x6,0x5b,0x36, 0x6,0x5b,0x39, 0x6,0x5b,0x3b, - 0x6,0x5b,0x3a, 0x6,0x5b,0x35, 0x7,0x21,0x43, 0x4,0x49,0x28, - 0x5,0x4c,0x30, 0x7,0x21,0x44, 0x7,0x21,0x42, 0xf,0x4d,0x6d, - 0x7,0x25,0x48, 0x5,0x53,0x65, 0x7,0x2c,0x53, 0x7,0x2c,0x52, - 0xf,0x53,0x59, 0xf,0x53,0x5a, 0x7,0x3b,0x4d, 0xf,0x5e,0x39, - 0xf,0x5e,0x3a, 0xf,0x5e,0x3b, 0xf,0x64,0x7c, 0x7,0x4e,0x27, - 0x7,0x52,0x79, 0x5,0x77,0x54, 0x7,0x5e,0x50, 0x7,0x65,0x33, - 0x7,0x66,0x33, 0x5,0x21,0x2e, 0x6,0x21,0x3c, 0x6,0x21,0x3d, - 0x6,0x21,0x5d, 0x6,0x22,0x52, 0x6,0x22,0x51, 0x4,0x22,0x4a, - 0x6,0x24,0x23, 0x6,0x24,0x21, 0xf,0x22,0x2e, 0x4,0x22,0x49, - 0x6,0x24,0x22, 0x6,0x26,0x40, 0xf,0x23,0x40, 0x5,0x23,0x3c, - 0x6,0x2a,0x2c, 0x6,0x2a,0x2b, 0x6,0x2a,0x2d, 0x6,0x2a,0x2e, - 0x6,0x2f,0x47, 0x6,0x2f,0x48, 0x4,0x28,0x56, 0xf,0x29,0x4f, - 0x6,0x35,0x76, 0x6,0x35,0x75, 0x6,0x36,0x49, 0x6,0x35,0x2e, - 0x5,0x36,0x6c, 0x6,0x47,0x22, 0x6,0x47,0x24, 0x6,0x4d,0x62, - 0xf,0x39,0x56, 0x6,0x47,0x23, 0x5,0x3e,0x21, 0x6,0x51,0x25, - 0x5,0x3d,0x7e, 0xf,0x40,0x52, 0x6,0x5b,0x3c, 0xf,0x46,0x6f, - 0x6,0x60,0x72, 0x7,0x21,0x45, 0x5,0x53,0x66, 0xf,0x59,0x57, - 0x7,0x4b,0x6a, 0x6,0x21,0x60, 0x5,0x21,0x40, 0x6,0x21,0x5e, - 0x5,0x21,0x42, 0x6,0x21,0x62, 0x6,0x21,0x5f, 0x6,0x22,0x55, - 0x4,0x21,0x68, 0x5,0x21,0x5e, 0x6,0x22,0x56, 0x5,0x21,0x5f, - 0x6,0x22,0x53, 0x6,0x22,0x54, 0x6,0x24,0x25, 0x4,0x22,0x4b, - 0x6,0x24,0x24, 0x5,0x22,0x42, 0x6,0x24,0x26, 0x5,0x22,0x41, - 0x6,0x24,0x27, 0x6,0x26,0x44, 0x6,0x26,0x42, 0x5,0x23,0x52, - 0xf,0x23,0x41, 0xf,0x23,0x42, 0xf,0x23,0x43, 0xf,0x23,0x44, - 0x4,0x23,0x50, 0x6,0x2a,0x31, 0x6,0x2a,0x2f, 0x6,0x2a,0x32, - 0x6,0x2a,0x30, 0xf,0x25,0x6f, 0x6,0x2f,0x4d, 0x6,0x2f,0x4a, - 0x6,0x2f,0x4c, 0x6,0x2f,0x4b, 0x6,0x2f,0x49, 0xf,0x29,0x51, - 0xf,0x29,0x52, 0x6,0x32,0x72, 0x5,0x28,0x36, 0x6,0x35,0x7b, - 0x5,0x2c,0x36, 0x6,0x35,0x7c, 0x6,0x35,0x79, 0x6,0x35,0x77, - 0x6,0x35,0x7a, 0xf,0x2e,0x3c, 0xf,0x2e,0x3d, 0xf,0x2e,0x3e, - 0xf,0x2e,0x3f, 0x6,0x3c,0x67, 0x6,0x3d,0x66, 0x6,0x3d,0x68, - 0x5,0x31,0x32, 0x5,0x31,0x33, 0x6,0x3d,0x65, 0x6,0x3d,0x63, - 0x6,0x3d,0x6b, 0x6,0x3d,0x64, 0x5,0x2c,0x37, 0x6,0x3d,0x62, - 0x6,0x3d,0x69, 0x6,0x3d,0x6a, 0x6,0x3c,0x7c, 0x6,0x3d,0x67, - 0x4,0x36,0x54, 0x5,0x36,0x6d, 0x6,0x47,0x27, 0x6,0x47,0x25, - 0xf,0x33,0x3e, 0xf,0x39,0x57, 0xf,0x39,0x58, 0xf,0x39,0x59, - 0xf,0x39,0x5a, 0x6,0x47,0x26, 0x4,0x3c,0x43, 0x4,0x3c,0x42, - 0x6,0x51,0x27, 0x6,0x51,0x28, 0x6,0x51,0x26, 0x4,0x3c,0x41, - 0x6,0x47,0x28, 0x6,0x51,0x5b, 0x6,0x51,0x29, 0x6,0x5f,0x21, - 0x6,0x5b,0x3e, 0x6,0x5b,0x3d, 0x5,0x44,0x70, 0x6,0x53,0x7b, - 0xf,0x4d,0x55, 0x5,0x4c,0x33, 0x5,0x4c,0x34, 0xf,0x46,0x70, - 0x5,0x4c,0x32, 0x7,0x2c,0x55, 0xf,0x53,0x5b, 0x3,0x50,0x39, - 0x5,0x54,0x2e, 0x7,0x2c,0x54, 0x7,0x37,0x29, 0x7,0x37,0x28, - 0xf,0x59,0x58, 0x4,0x5a,0x6f, 0x7,0x46,0x32, 0x7,0x46,0x31, - 0x4,0x66,0x31, 0xf,0x67,0x45, 0x7,0x57,0x51, 0x5,0x75,0x66, - 0x7,0x5e,0x51, 0x7,0x5e,0x52, 0x5,0x21,0x43, 0x6,0x21,0x64, - 0x4,0x21,0x47, 0x4,0x21,0x46, 0xf,0x21,0x36, 0x6,0x21,0x63, - 0x5,0x21,0x61, 0x6,0x22,0x59, 0x6,0x22,0x58, 0x6,0x22,0x5e, - 0x6,0x22,0x5a, 0x6,0x22,0x5d, 0x6,0x22,0x57, 0x6,0x22,0x42, - 0xf,0x21,0x4e, 0x6,0x22,0x5c, 0x5,0x22,0x47, 0x6,0x24,0x2d, - 0x5,0x22,0x45, 0x6,0x24,0x2e, 0x4,0x22,0x4d, 0x5,0x22,0x46, - 0x4,0x22,0x50, 0x6,0x24,0x2c, 0x4,0x22,0x4f, 0x4,0x22,0x4e, - 0x5,0x22,0x44, 0x6,0x24,0x28, 0xf,0x22,0x2f, 0xf,0x22,0x30, - 0xf,0x22,0x32, 0xf,0x22,0x34, 0x6,0x24,0x2a, 0xf,0x22,0x31, - 0xf,0x22,0x33, 0x5,0x22,0x43, 0x6,0x24,0x29, 0x6,0x24,0x2b, - 0x4,0x23,0x56, 0x6,0x26,0x4f, 0x6,0x26,0x46, 0x6,0x26,0x4d, - 0x6,0x26,0x4c, 0x5,0x23,0x56, 0x4,0x23,0x5a, 0x4,0x23,0x5d, - 0x5,0x23,0x5b, 0x5,0x23,0x54, 0x6,0x26,0x48, 0x4,0x23,0x57, - 0x4,0x23,0x52, 0x4,0x23,0x58, 0x5,0x23,0x58, 0x6,0x26,0x49, - 0x5,0x23,0x59, 0x4,0x23,0x55, 0x5,0x23,0x55, 0x6,0x26,0x47, - 0x5,0x23,0x5c, 0xf,0x23,0x45, 0xf,0x23,0x46, 0xf,0x23,0x47, - 0xf,0x23,0x4a, 0xf,0x23,0x4b, 0xf,0x23,0x4c, 0xf,0x23,0x48, - 0x6,0x26,0x4b, 0x6,0x26,0x4a, 0x6,0x26,0x50, 0x6,0x26,0x45, - 0x5,0x23,0x53, 0x5,0x23,0x57, 0x5,0x23,0x5a, 0x4,0x25,0x5c, - 0x4,0x25,0x5e, 0x6,0x2a,0x36, 0x5,0x25,0x4c, 0x5,0x25,0x44, - 0x4,0x25,0x5b, 0x6,0x2a,0x34, 0x5,0x25,0x4d, 0x5,0x25,0x45, - 0x5,0x25,0x47, 0x4,0x25,0x61, 0x5,0x25,0x50, 0x6,0x2a,0x33, - 0x5,0x25,0x52, 0x5,0x28,0x47, 0x6,0x2a,0x3b, 0x5,0x25,0x48, - 0x5,0x25,0x4b, 0x5,0x25,0x4a, 0x5,0x25,0x51, 0x5,0x25,0x49, - 0x5,0x25,0x4e, 0x6,0x2a,0x3d, 0x5,0x25,0x4f, 0xf,0x25,0x70, - 0xf,0x25,0x72, 0xf,0x25,0x73, 0xf,0x25,0x74, 0xf,0x25,0x75, - 0xf,0x25,0x76, 0xf,0x25,0x77, 0xf,0x25,0x78, 0xf,0x25,0x79, - 0xf,0x25,0x7a, 0xf,0x25,0x7d, 0xf,0x25,0x7e, 0xf,0x26,0x21, - 0xf,0x26,0x22, 0xf,0x26,0x23, 0x5,0x25,0x46, 0x6,0x2a,0x35, - 0x5,0x25,0x43, 0x6,0x2a,0x38, 0x6,0x2a,0x37, 0xf,0x25,0x7c, - 0x6,0x2a,0x3a, 0x5,0x2c,0x38, 0x5,0x28,0x46, 0x5,0x28,0x52, - 0x5,0x28,0x4d, 0x5,0x28,0x3c, 0x5,0x28,0x51, 0x6,0x2f,0x54, - 0x6,0x2f,0x4e, 0x5,0x28,0x3f, 0x4,0x28,0x5b, 0x4,0x28,0x5a, - 0x5,0x28,0x4f, 0x5,0x28,0x45, 0x5,0x28,0x4b, 0x5,0x28,0x4a, - 0x5,0x28,0x4e, 0x5,0x28,0x48, 0x5,0x28,0x49, 0x5,0x28,0x3d, - 0x5,0x28,0x41, 0x5,0x28,0x4c, 0x4,0x25,0x62, 0x6,0x2f,0x59, - 0x6,0x2f,0x5a, 0x5,0x28,0x53, 0x6,0x2f,0x4f, 0x5,0x28,0x3a, - 0x6,0x2f,0x57, 0x6,0x2f,0x56, 0x5,0x28,0x50, 0x6,0x2f,0x50, - 0x6,0x2f,0x58, 0x6,0x2f,0x52, 0x5,0x28,0x40, 0x5,0x28,0x42, - 0xf,0x2b,0x33, 0xf,0x29,0x53, 0xf,0x29,0x55, 0xf,0x29,0x56, - 0xf,0x29,0x57, 0xf,0x29,0x58, 0xf,0x29,0x59, 0xf,0x29,0x5a, - 0xf,0x29,0x5b, 0xf,0x29,0x5e, 0xf,0x29,0x5f, 0xf,0x29,0x60, - 0xf,0x29,0x61, 0xf,0x29,0x62, 0xf,0x29,0x63, 0xf,0x29,0x64, - 0xf,0x29,0x66, 0xf,0x29,0x67, 0x5,0x28,0x43, 0x5,0x28,0x44, - 0x4,0x28,0x5d, 0xf,0x29,0x65, 0x6,0x2f,0x55, 0x6,0x2f,0x53, - 0x4,0x28,0x58, 0x5,0x28,0x3b, 0x5,0x28,0x3e, 0x6,0x2f,0x51, - 0x6,0x36,0x29, 0x4,0x2c,0x24, 0x4,0x2c,0x2b, 0x4,0x2c,0x2c, - 0x4,0x2c,0x27, 0x6,0x36,0x22, 0x5,0x2c,0x4e, 0x5,0x2c,0x41, - 0x5,0x2c,0x3f, 0x5,0x2c,0x4c, 0x5,0x2c,0x3d, 0x5,0x2c,0x46, - 0x5,0x2c,0x56, 0x5,0x2c,0x49, 0x4,0x2c,0x2a, 0x5,0x2c,0x4d, - 0x5,0x2c,0x54, 0x5,0x2c,0x52, 0x4,0x2c,0x22, 0x6,0x36,0x23, - 0x6,0x36,0x24, 0x5,0x2c,0x51, 0x4,0x2c,0x23, 0x5,0x2c,0x40, - 0x6,0x36,0x27, 0x6,0x36,0x28, 0x5,0x2c,0x57, 0x6,0x36,0x26, - 0x5,0x2c,0x53, 0x5,0x2c,0x58, 0x5,0x2c,0x47, 0x5,0x2c,0x59, - 0x5,0x2c,0x44, 0x5,0x2c,0x55, 0xf,0x2e,0x40, 0xf,0x2e,0x41, - 0xf,0x2e,0x43, 0xf,0x2e,0x44, 0xf,0x2e,0x48, 0xf,0x2e,0x49, - 0xf,0x2e,0x4b, 0xf,0x2e,0x4c, 0xf,0x2e,0x4d, 0xf,0x2e,0x4e, - 0xf,0x2e,0x4f, 0xf,0x2e,0x50, 0xf,0x2e,0x51, 0xf,0x2e,0x52, - 0xf,0x2e,0x53, 0xf,0x2e,0x54, 0x6,0x39,0x5e, 0x6,0x36,0x21, - 0x5,0x2c,0x42, 0x5,0x2c,0x45, 0x5,0x2c,0x48, 0x6,0x36,0x25, - 0x5,0x2c,0x50, 0x5,0x2c,0x4b, 0x5,0x2c,0x39, 0x5,0x2c,0x3a, - 0x5,0x2c,0x3b, 0xf,0x2e,0x45, 0x5,0x2c,0x4a, 0x5,0x2c,0x4f, - 0x5,0x2c,0x3e, 0x5,0x2c,0x3c, 0x5,0x2c,0x5a, 0x5,0x31,0x46, - 0x4,0x30,0x69, 0x6,0x3d,0x77, 0x6,0x3d,0x74, 0x4,0x30,0x78, - 0x6,0x3d,0x6f, 0x4,0x30,0x75, 0x5,0x31,0x51, 0x5,0x31,0x49, - 0x5,0x31,0x4c, 0x4,0x30,0x6e, 0x4,0x30,0x79, 0x5,0x31,0x44, - 0x6,0x3d,0x76, 0x5,0x31,0x36, 0x5,0x31,0x4a, 0x5,0x31,0x45, - 0x5,0x31,0x4e, 0x5,0x31,0x34, 0x5,0x31,0x4d, 0x5,0x31,0x42, - 0x5,0x31,0x3b, 0x6,0x3d,0x71, 0x6,0x3d,0x75, 0x6,0x3d,0x7d, - 0x6,0x3d,0x7a, 0x6,0x3d,0x7e, 0x5,0x31,0x3a, 0x5,0x31,0x3c, - 0x6,0x3d,0x6c, 0x5,0x31,0x38, 0x6,0x3d,0x72, 0x6,0x3d,0x7b, - 0xf,0x33,0x3f, 0xf,0x33,0x40, 0xf,0x33,0x41, 0xf,0x33,0x42, - 0xf,0x33,0x44, 0xf,0x33,0x45, 0xf,0x33,0x46, 0xf,0x33,0x47, - 0xf,0x33,0x48, 0xf,0x33,0x49, 0xf,0x33,0x4c, 0xf,0x33,0x4d, - 0x5,0x31,0x37, 0x6,0x3d,0x73, 0x5,0x31,0x39, 0x6,0x3d,0x6d, - 0x5,0x31,0x41, 0x5,0x31,0x48, 0x6,0x3e,0x21, 0x5,0x31,0x52, - 0x6,0x3d,0x70, 0x5,0x31,0x40, 0x5,0x31,0x35, 0x5,0x31,0x47, - 0x5,0x31,0x3e, 0x5,0x31,0x43, 0x5,0x31,0x3d, 0x5,0x31,0x50, - 0x6,0x3d,0x79, 0x3,0x34,0x60, 0x5,0x31,0x53, 0x5,0x31,0x4f, - 0x6,0x3d,0x78, 0x6,0x3d,0x6e, 0x5,0x31,0x3f, 0x5,0x31,0x4b, - 0x4,0x36,0x55, 0x4,0x36,0x61, 0x6,0x47,0x32, 0x5,0x37,0x24, - 0x6,0x47,0x37, 0x6,0x47,0x3e, 0x5,0x36,0x77, 0x6,0x47,0x35, - 0x5,0x36,0x7c, 0x4,0x36,0x56, 0x5,0x37,0x28, 0x5,0x36,0x6f, - 0x5,0x36,0x71, 0x4,0x36,0x5a, 0x5,0x36,0x78, 0x4,0x36,0x57, - 0x5,0x37,0x29, 0x5,0x36,0x7e, 0x4,0x36,0x62, 0x4,0x36,0x5b, - 0x5,0x37,0x23, 0x5,0x37,0x27, 0x4,0x36,0x66, 0x5,0x37,0x30, - 0x4,0x36,0x5d, 0x5,0x37,0x2c, 0x5,0x37,0x2e, 0x6,0x47,0x2e, - 0x6,0x47,0x3c, 0x5,0x3e,0x22, 0x6,0x47,0x2b, 0x6,0x47,0x2f, - 0x6,0x47,0x38, 0x5,0x37,0x22, 0x6,0x47,0x34, 0x6,0x47,0x3f, - 0x6,0x47,0x3a, 0x4,0x36,0x64, 0x5,0x37,0x26, 0x5,0x36,0x73, - 0xf,0x39,0x5b, 0xf,0x39,0x5d, 0xf,0x39,0x5e, 0xf,0x39,0x61, - 0xf,0x39,0x62, 0xf,0x39,0x63, 0xf,0x39,0x64, 0xf,0x39,0x65, - 0xf,0x39,0x66, 0xf,0x39,0x67, 0xf,0x39,0x68, 0xf,0x39,0x6a, - 0xf,0x39,0x6d, 0xf,0x39,0x6e, 0xf,0x39,0x6f, 0xf,0x39,0x70, - 0x5,0x36,0x74, 0x5,0x36,0x75, 0x5,0x36,0x7b, 0x5,0x37,0x25, - 0x5,0x37,0x21, 0x6,0x47,0x3b, 0xf,0x39,0x6b, 0xf,0x39,0x5c, - 0xf,0x39,0x5f, 0xf,0x39,0x69, 0xf,0x39,0x6c, 0x5,0x37,0x2b, - 0x5,0x37,0x2f, 0x6,0x47,0x3d, 0x5,0x37,0x2d, 0x5,0x37,0x2a, - 0x5,0x36,0x7d, 0x6,0x47,0x36, 0x6,0x51,0x39, 0x5,0x3e,0x23, - 0x4,0x3c,0x49, 0x5,0x3e,0x27, 0x4,0x3c,0x4e, 0x5,0x36,0x72, - 0x6,0x51,0x41, 0x4,0x3c,0x48, 0x4,0x3c,0x44, 0x6,0x5b,0x42, - 0x5,0x3e,0x2d, 0x6,0x51,0x33, 0x6,0x51,0x35, 0x5,0x3e,0x2a, - 0x5,0x3e,0x38, 0x6,0x51,0x3a, 0x6,0x51,0x30, 0x5,0x3e,0x2e, - 0x5,0x3e,0x24, 0x5,0x3e,0x35, 0x5,0x3e,0x3f, 0x6,0x51,0x3f, - 0x6,0x51,0x37, 0x5,0x3e,0x34, 0x5,0x3e,0x37, 0x4,0x3c,0x4d, - 0x5,0x3e,0x3a, 0x4,0x3c,0x45, 0x5,0x3e,0x33, 0x5,0x3e,0x2c, - 0x4,0x3c,0x4f, 0x5,0x3e,0x2f, 0x4,0x3c,0x51, 0x5,0x3e,0x31, - 0x5,0x3e,0x32, 0x6,0x51,0x3b, 0x6,0x51,0x40, 0x6,0x51,0x2a, - 0x6,0x51,0x3e, 0x6,0x51,0x3d, 0x5,0x3e,0x3b, 0x6,0x51,0x38, - 0x5,0x3e,0x28, 0x5,0x3e,0x30, 0x5,0x3e,0x2b, 0x6,0x51,0x2c, - 0x6,0x51,0x44, 0x6,0x51,0x2e, 0x6,0x51,0x2b, 0x6,0x51,0x2d, - 0xf,0x47,0x26, 0x5,0x3e,0x3e, 0x6,0x51,0x31, 0xf,0x40,0x56, - 0xf,0x40,0x57, 0xf,0x40,0x58, 0xf,0x40,0x59, 0xf,0x40,0x5a, - 0xf,0x40,0x5b, 0xf,0x40,0x5c, 0xf,0x40,0x5d, 0xf,0x40,0x5e, - 0xf,0x40,0x5f, 0xf,0x40,0x60, 0xf,0x40,0x61, 0xf,0x40,0x63, - 0x6,0x51,0x2f, 0x6,0x51,0x34, 0x6,0x51,0x3c, 0xf,0x40,0x54, - 0x6,0x51,0x42, 0x5,0x3e,0x3c, 0x5,0x3e,0x36, 0x5,0x3e,0x25, - 0x5,0x3e,0x29, 0x5,0x3e,0x26, 0xf,0x40,0x64, 0x6,0x5b,0x46, - 0x6,0x5b,0x40, 0x6,0x5b,0x4b, 0x4,0x42,0x4d, 0x6,0x5b,0x4f, - 0x6,0x5b,0x45, 0x6,0x5b,0x51, 0x6,0x5b,0x50, 0x4,0x42,0x4e, - 0x6,0x5b,0x4c, 0x5,0x44,0x73, 0x5,0x44,0x77, 0x5,0x44,0x75, - 0x5,0x44,0x7c, 0x6,0x5b,0x43, 0x6,0x5b,0x47, 0x4,0x42,0x4c, - 0x4,0x42,0x54, 0x5,0x44,0x7b, 0x4,0x42,0x50, 0x5,0x44,0x76, - 0x6,0x5b,0x41, 0x5,0x44,0x71, 0x5,0x44,0x72, 0x5,0x44,0x79, - 0x6,0x5b,0x52, 0x6,0x5b,0x3f, 0x6,0x5b,0x49, 0x6,0x5b,0x4a, - 0x5,0x44,0x78, 0x6,0x5b,0x4d, 0xf,0x46,0x71, 0xf,0x46,0x72, - 0xf,0x46,0x73, 0xf,0x46,0x74, 0xf,0x46,0x76, 0xf,0x46,0x77, - 0xf,0x46,0x78, 0xf,0x46,0x79, 0xf,0x46,0x7a, 0xf,0x46,0x7b, - 0xf,0x46,0x7c, 0xf,0x46,0x7e, 0xf,0x47,0x21, 0xf,0x47,0x22, - 0xf,0x47,0x23, 0xf,0x47,0x27, 0xf,0x47,0x28, 0xf,0x47,0x29, - 0xf,0x47,0x2a, 0xf,0x47,0x2b, 0xf,0x47,0x2c, 0xf,0x47,0x2d, - 0xf,0x47,0x24, 0x6,0x5b,0x48, 0xf,0x46,0x75, 0x5,0x44,0x74, - 0x5,0x44,0x7a, 0x6,0x5b,0x4e, 0x5,0x45,0x21, 0xf,0x46,0x7d, - 0x6,0x5b,0x44, 0xf,0x47,0x25, 0x5,0x4c,0x35, 0x5,0x44,0x7d, - 0xf,0x46,0x6c, 0x7,0x21,0x51, 0x5,0x4c,0x3b, 0x7,0x21,0x55, - 0x7,0x21,0x52, 0x5,0x4c,0x39, 0x7,0x21,0x58, 0x7,0x21,0x4a, - 0x5,0x4c,0x40, 0x5,0x4c,0x46, 0x5,0x4c,0x3d, 0x7,0x21,0x4f, - 0x5,0x4c,0x3e, 0x7,0x21,0x57, 0x7,0x21,0x50, 0x5,0x4c,0x36, - 0x7,0x21,0x4b, 0x5,0x4c,0x3f, 0x7,0x21,0x56, 0x7,0x21,0x59, - 0x5,0x4c,0x41, 0x4,0x49,0x2f, 0x7,0x21,0x5b, 0x5,0x4c,0x3a, - 0x7,0x21,0x48, 0x5,0x4c,0x38, 0x5,0x5b,0x27, 0x7,0x21,0x5a, - 0x4,0x49,0x2b, 0x7,0x21,0x54, 0x5,0x45,0x23, 0x7,0x21,0x53, - 0x7,0x21,0x49, 0x7,0x21,0x47, 0x7,0x21,0x62, 0x7,0x21,0x5c, - 0xf,0x4d,0x7a, 0x7,0x21,0x5e, 0x5,0x4c,0x42, 0x7,0x21,0x61, - 0x7,0x2c,0x61, 0x5,0x4c,0x37, 0x4,0x49,0x32, 0x5,0x4c,0x47, - 0xf,0x4d,0x6f, 0xf,0x4d,0x70, 0xf,0x4d,0x71, 0xf,0x4d,0x72, - 0xf,0x4d,0x73, 0xf,0x4d,0x74, 0xf,0x4d,0x75, 0xf,0x4d,0x76, - 0xf,0x4d,0x78, 0xf,0x4d,0x79, 0x5,0x4c,0x44, 0x7,0x21,0x5f, - 0x7,0x26,0x2b, 0x7,0x21,0x5d, 0x7,0x21,0x4d, 0x7,0x21,0x4c, - 0x5,0x4c,0x3c, 0x5,0x4c,0x43, 0x7,0x2c,0x6a, 0x4,0x4f,0x6e, - 0x5,0x53,0x74, 0x7,0x2c,0x5c, 0x5,0x53,0x72, 0x7,0x2c,0x68, - 0x4,0x4f,0x72, 0x5,0x53,0x6a, 0x5,0x53,0x78, 0x7,0x2c,0x60, - 0x4,0x4f,0x68, 0x4,0x4f,0x73, 0x4,0x4f,0x66, 0x5,0x53,0x71, - 0x4,0x4f,0x70, 0x5,0x53,0x6f, 0x5,0x53,0x68, 0x7,0x2c,0x6b, - 0x7,0x2c,0x5b, 0x7,0x2c,0x64, 0x5,0x53,0x6e, 0x7,0x2c,0x5f, - 0x5,0x53,0x6c, 0x5,0x53,0x67, 0x5,0x53,0x75, 0x5,0x53,0x70, - 0x5,0x53,0x73, 0x7,0x2c,0x59, 0x5,0x53,0x6b, 0x5,0x53,0x69, - 0x7,0x2c,0x67, 0x7,0x2c,0x58, 0x7,0x2c,0x57, 0xf,0x4d,0x77, - 0x4,0x4f,0x69, 0x4,0x4f,0x74, 0x5,0x53,0x77, 0x7,0x2c,0x66, - 0xf,0x53,0x5c, 0xf,0x53,0x5e, 0xf,0x53,0x5f, 0xf,0x53,0x60, - 0xf,0x53,0x61, 0xf,0x53,0x62, 0xf,0x53,0x63, 0xf,0x53,0x64, - 0xf,0x53,0x65, 0xf,0x53,0x67, 0xf,0x53,0x68, 0xf,0x53,0x69, - 0xf,0x53,0x6a, 0xf,0x53,0x6b, 0xf,0x53,0x6c, 0xf,0x53,0x6d, - 0xf,0x53,0x6e, 0xf,0x53,0x6f, 0x7,0x2c,0x5e, 0x7,0x2c,0x5d, - 0x7,0x2c,0x62, 0x7,0x2c,0x69, 0x5,0x53,0x6d, 0xf,0x55,0x74, - 0x5,0x53,0x76, 0x4,0x55,0x7a, 0x5,0x5b,0x26, 0x5,0x5b,0x21, - 0x7,0x37,0x2d, 0x7,0x37,0x2a, 0x7,0x37,0x34, 0x7,0x37,0x35, - 0x5,0x5b,0x23, 0x5,0x5b,0x2b, 0x4,0x55,0x71, 0x4,0x55,0x76, - 0x5,0x5b,0x28, 0x4,0x55,0x77, 0x7,0x37,0x2b, 0x5,0x5b,0x29, - 0x4,0x55,0x79, 0x7,0x37,0x31, 0x7,0x37,0x2f, 0x7,0x37,0x2e, - 0x5,0x5b,0x24, 0x4,0x55,0x75, 0x7,0x37,0x32, 0x7,0x37,0x39, - 0xf,0x59,0x59, 0xf,0x59,0x5a, 0xf,0x59,0x5e, 0xf,0x59,0x5f, - 0xf,0x59,0x60, 0xf,0x59,0x61, 0xf,0x59,0x62, 0x7,0x37,0x38, - 0x7,0x37,0x30, 0x7,0x37,0x36, 0x7,0x37,0x33, 0x7,0x37,0x2c, - 0x5,0x5b,0x2a, 0x5,0x5b,0x22, 0x4,0x5a,0x74, 0x7,0x3f,0x29, - 0x7,0x3f,0x2f, 0x4,0x5a,0x73, 0x5,0x61,0x3e, 0x7,0x3f,0x2b, - 0x4,0x5a,0x71, 0x4,0x5a,0x76, 0x5,0x61,0x46, 0x4,0x5a,0x77, - 0x5,0x67,0x58, 0x5,0x61,0x3d, 0x5,0x61,0x44, 0x5,0x61,0x43, - 0x4,0x5a,0x78, 0x7,0x3f,0x2a, 0x4,0x5a,0x75, 0x4,0x5a,0x79, - 0x4,0x5a,0x72, 0x7,0x3f,0x2e, 0x5,0x61,0x41, 0x7,0x3f,0x27, - 0x7,0x3f,0x2d, 0x7,0x3f,0x28, 0x7,0x3f,0x26, 0x7,0x3f,0x2c, - 0x5,0x61,0x42, 0xf,0x59,0x5b, 0x7,0x3f,0x25, 0xf,0x5e,0x3c, - 0xf,0x5e,0x3d, 0xf,0x5e,0x3e, 0xf,0x5e,0x3f, 0xf,0x5e,0x40, - 0xf,0x5e,0x43, 0xf,0x5e,0x44, 0xf,0x5e,0x45, 0x5,0x61,0x3f, - 0xf,0x5e,0x4a, 0x7,0x46,0x34, 0x4,0x5f,0x4e, 0x5,0x5b,0x25, - 0x7,0x46,0x3b, 0x7,0x46,0x39, 0x7,0x46,0x37, 0x5,0x67,0x5a, - 0x5,0x67,0x5b, 0x4,0x5f,0x50, 0x5,0x67,0x57, 0x7,0x46,0x3c, - 0x7,0x46,0x3a, 0x7,0x46,0x33, 0x7,0x46,0x35, 0x7,0x46,0x38, - 0x4,0x5f,0x4f, 0xf,0x5e,0x46, 0x5,0x67,0x5c, 0xf,0x62,0x22, - 0xf,0x62,0x23, 0xf,0x62,0x24, 0xf,0x62,0x25, 0xf,0x62,0x26, - 0x7,0x46,0x36, 0x7,0x47,0x6e, 0x7,0x46,0x3d, 0x5,0x6b,0x74, - 0x5,0x6b,0x75, 0x5,0x6b,0x6f, 0x5,0x6b,0x71, 0x5,0x6b,0x70, - 0x7,0x4d,0x47, 0x7,0x4d,0x49, 0x7,0x4d,0x4b, 0x7,0x4d,0x48, - 0x7,0x4d,0x46, 0x7,0x4d,0x4a, 0xf,0x64,0x7d, 0xf,0x64,0x7e, - 0xf,0x65,0x21, 0x7,0x4d,0x4c, 0x5,0x6b,0x72, 0x7,0x52,0x7b, - 0x5,0x6f,0x71, 0x5,0x6f,0x6f, 0x4,0x66,0x35, 0x5,0x6f,0x6e, - 0x7,0x52,0x7a, 0x5,0x6f,0x6d, 0x7,0x52,0x7e, 0x5,0x6f,0x70, - 0x7,0x52,0x7d, 0x4,0x66,0x33, 0xf,0x67,0x47, 0xf,0x67,0x48, - 0x5,0x6f,0x6c, 0x7,0x52,0x7c, 0x7,0x57,0x59, 0x7,0x57,0x5a, - 0x5,0x73,0x33, 0x7,0x57,0x55, 0x7,0x57,0x56, 0x7,0x57,0x57, - 0x7,0x57,0x54, 0x7,0x57,0x52, 0x7,0x57,0x53, 0xf,0x69,0x3c, - 0x4,0x68,0x64, 0x7,0x57,0x58, 0x7,0x5b,0x49, 0x7,0x5b,0x4a, - 0xf,0x6a,0x4d, 0x7,0x5b,0x48, 0x7,0x5b,0x47, 0x5,0x77,0x55, - 0x5,0x77,0x56, 0x4,0x6b,0x66, 0x7,0x5e,0x53, 0x7,0x5e,0x55, - 0x7,0x5e,0x54, 0x7,0x5e,0x56, 0xf,0x6b,0x43, 0x5,0x75,0x67, - 0x5,0x79,0x23, 0x4,0x6c,0x6d, 0xf,0x6c,0x22, 0xf,0x6c,0x23, - 0x7,0x60,0x6b, 0x7,0x62,0x32, 0x7,0x62,0x31, 0x7,0x62,0x34, - 0x7,0x62,0x30, 0x7,0x62,0x33, 0xf,0x6c,0x79, 0xf,0x6c,0x7a, - 0x6,0x21,0x65, 0x6,0x21,0x66, 0xf,0x21,0x37, 0x4,0x21,0x6e, - 0x6,0x24,0x32, 0x6,0x24,0x30, 0x5,0x22,0x49, 0xf,0x22,0x35, - 0x6,0x24,0x31, 0x6,0x24,0x2f, 0x5,0x22,0x48, 0x6,0x26,0x54, - 0x6,0x2f,0x5c, 0x6,0x2a,0x3e, 0x6,0x26,0x58, 0x6,0x26,0x56, - 0xf,0x23,0x4f, 0xf,0x23,0x51, 0x6,0x26,0x57, 0x6,0x26,0x59, - 0x6,0x26,0x5c, 0x6,0x26,0x5a, 0x6,0x26,0x51, 0x6,0x26,0x55, - 0x6,0x26,0x52, 0x6,0x26,0x53, 0x6,0x26,0x5b, 0x5,0x25,0x55, - 0x6,0x2a,0x43, 0x6,0x2a,0x40, 0x6,0x2a,0x41, 0x6,0x2a,0x42, - 0x6,0x2d,0x34, 0x6,0x2a,0x3f, 0xf,0x26,0x24, 0x5,0x25,0x54, - 0x5,0x28,0x54, 0x5,0x28,0x56, 0x6,0x2f,0x60, 0x6,0x2f,0x5f, - 0x5,0x28,0x55, 0x6,0x2f,0x5b, 0x6,0x2f,0x5e, 0x6,0x2f,0x5d, - 0x5,0x2c,0x5c, 0x6,0x36,0x2d, 0x6,0x36,0x2a, 0x6,0x36,0x2c, - 0x5,0x2c,0x5b, 0x6,0x36,0x2b, 0x5,0x2c,0x5d, 0x5,0x31,0x56, - 0x6,0x3e,0x25, 0x5,0x31,0x57, 0x6,0x3e,0x24, 0x6,0x3e,0x23, - 0x6,0x3e,0x22, 0x5,0x31,0x54, 0x6,0x3e,0x26, 0x5,0x37,0x33, - 0x6,0x47,0x40, 0x6,0x47,0x41, 0x5,0x37,0x31, 0x5,0x31,0x55, - 0xf,0x39,0x72, 0xf,0x39,0x73, 0xf,0x39,0x74, 0x6,0x47,0x42, - 0x5,0x37,0x32, 0x5,0x3e,0x40, 0x6,0x51,0x45, 0x5,0x3e,0x41, - 0x6,0x51,0x47, 0x6,0x51,0x48, 0x5,0x3e,0x42, 0x6,0x51,0x46, - 0xf,0x40,0x65, 0x6,0x5b,0x54, 0x6,0x5b,0x58, 0x5,0x45,0x24, - 0x6,0x5b,0x55, 0x6,0x5b,0x5a, 0x6,0x5b,0x56, 0xf,0x47,0x2e, - 0xf,0x47,0x2f, 0xf,0x47,0x30, 0x6,0x5b,0x57, 0x7,0x21,0x65, - 0x7,0x21,0x66, 0x7,0x21,0x64, 0xf,0x4d,0x7b, 0x4,0x4f,0x75, - 0xf,0x53,0x73, 0x7,0x37,0x3c, 0x7,0x37,0x3a, 0x7,0x37,0x3b, - 0x4,0x5f,0x51, 0x7,0x4d,0x4d, 0x7,0x53,0x22, 0x7,0x53,0x21, - 0x4,0x21,0x48, 0x5,0x21,0x44, 0x6,0x22,0x60, 0xf,0x21,0x51, - 0xf,0x21,0x52, 0x6,0x22,0x61, 0x6,0x24,0x35, 0xf,0x22,0x36, - 0xf,0x22,0x37, 0x6,0x24,0x34, 0x6,0x26,0x6a, 0x4,0x23,0x60, - 0x6,0x26,0x66, 0x6,0x26,0x62, 0x6,0x26,0x5e, 0x6,0x26,0x69, - 0x6,0x26,0x5d, 0x6,0x26,0x65, 0x6,0x26,0x67, 0xf,0x23,0x53, - 0xf,0x23,0x54, 0xf,0x23,0x56, 0xf,0x23,0x58, 0xf,0x23,0x5a, - 0x6,0x26,0x60, 0x6,0x26,0x63, 0x6,0x26,0x68, 0x6,0x26,0x64, - 0x6,0x26,0x61, 0x6,0x26,0x5f, 0x5,0x23,0x5e, 0xf,0x23,0x59, - 0x5,0x23,0x5d, 0x5,0x23,0x5f, 0x5,0x23,0x60, 0x5,0x23,0x61, - 0x4,0x25,0x6a, 0x6,0x2a,0x4f, 0x6,0x2a,0x47, 0x6,0x2a,0x4c, - 0x6,0x2a,0x46, 0x4,0x25,0x67, 0x6,0x2a,0x4a, 0x4,0x25,0x6c, - 0x6,0x2a,0x48, 0x5,0x25,0x56, 0x6,0x2a,0x51, 0x6,0x26,0x41, - 0x6,0x2a,0x49, 0xf,0x26,0x26, 0xf,0x26,0x27, 0xf,0x26,0x28, - 0xf,0x26,0x29, 0xf,0x26,0x2a, 0xf,0x26,0x30, 0xf,0x26,0x31, - 0xf,0x26,0x2c, 0xf,0x26,0x2b, 0x4,0x25,0x6b, 0xf,0x26,0x2f, - 0xf,0x26,0x2e, 0x6,0x2a,0x50, 0x6,0x2a,0x4b, 0x6,0x2a,0x4d, - 0x6,0x2a,0x4e, 0xf,0x26,0x32, 0xf,0x26,0x25, 0x6,0x2a,0x45, - 0x6,0x2a,0x44, 0x5,0x25,0x57, 0x5,0x28,0x5b, 0x6,0x2f,0x62, - 0x5,0x28,0x57, 0x6,0x2f,0x64, 0x6,0x2f,0x61, 0x5,0x28,0x58, - 0x4,0x28,0x5f, 0x6,0x2f,0x6b, 0x6,0x2f,0x63, 0xf,0x29,0x7a, - 0xf,0x29,0x68, 0xf,0x29,0x69, 0xf,0x29,0x6b, 0xf,0x29,0x6c, - 0xf,0x29,0x6d, 0xf,0x29,0x6e, 0xf,0x29,0x6f, 0xf,0x29,0x70, - 0xf,0x29,0x72, 0xf,0x29,0x73, 0xf,0x29,0x75, 0xf,0x29,0x76, - 0xf,0x29,0x77, 0xf,0x29,0x78, 0xf,0x29,0x79, 0xf,0x29,0x7b, - 0xf,0x29,0x7c, 0xf,0x29,0x7d, 0x6,0x2f,0x6a, 0x6,0x2f,0x6c, - 0x6,0x34,0x31, 0x6,0x2f,0x67, 0x6,0x2f,0x68, 0x6,0x2f,0x66, - 0xf,0x29,0x74, 0x5,0x28,0x5d, 0x5,0x28,0x5a, 0x5,0x28,0x5e, - 0x5,0x28,0x5c, 0x5,0x28,0x59, 0x5,0x2c,0x5e, 0x4,0x2c,0x32, - 0x6,0x36,0x34, 0x4,0x2c,0x30, 0x4,0x2c,0x34, 0x6,0x36,0x32, - 0x6,0x36,0x3c, 0x6,0x36,0x36, 0x6,0x36,0x3d, 0x6,0x36,0x3e, - 0x6,0x36,0x31, 0x6,0x36,0x2e, 0x6,0x36,0x3a, 0x6,0x36,0x2f, - 0x6,0x36,0x40, 0xf,0x2e,0x55, 0xf,0x2e,0x56, 0xf,0x2e,0x57, - 0xf,0x2e,0x58, 0xf,0x2e,0x59, 0xf,0x2e,0x5a, 0xf,0x2e,0x5b, - 0xf,0x2e,0x5e, 0xf,0x2e,0x5f, 0xf,0x2e,0x60, 0x6,0x36,0x30, - 0x6,0x36,0x3f, 0x6,0x36,0x37, 0x6,0x36,0x38, 0x6,0x36,0x39, - 0x5,0x2c,0x60, 0x6,0x36,0x3b, 0xf,0x2e,0x5d, 0xf,0x2e,0x61, - 0x6,0x36,0x33, 0x5,0x2c,0x5f, 0x5,0x2c,0x62, 0x4,0x30,0x7d, - 0x6,0x3e,0x27, 0x4,0x30,0x7c, 0x5,0x31,0x5d, 0x6,0x3e,0x34, - 0x6,0x3e,0x2d, 0x5,0x31,0x5b, 0x6,0x3e,0x2a, 0x5,0x2c,0x61, - 0x6,0x3e,0x33, 0x6,0x3e,0x30, 0x5,0x31,0x5a, 0x4,0x31,0x22, - 0x4,0x31,0x23, 0xf,0x33,0x4f, 0xf,0x33,0x5b, 0x6,0x3e,0x2e, - 0x6,0x3e,0x2f, 0xf,0x33,0x4e, 0xf,0x33,0x50, 0xf,0x33,0x51, - 0xf,0x33,0x52, 0xf,0x33,0x53, 0xf,0x33,0x54, 0xf,0x33,0x55, - 0xf,0x33,0x56, 0xf,0x33,0x58, 0xf,0x33,0x59, 0xf,0x33,0x5a, - 0xf,0x33,0x5e, 0xf,0x33,0x5f, 0xf,0x33,0x60, 0xf,0x33,0x61, - 0x5,0x31,0x5c, 0x6,0x3e,0x31, 0x6,0x3e,0x35, 0x4,0x30,0x7e, - 0x6,0x3e,0x28, 0x6,0x3e,0x29, 0x5,0x31,0x58, 0x5,0x31,0x59, - 0x3,0x3a,0x4f, 0x6,0x51,0x4e, 0x4,0x36,0x72, 0x6,0x47,0x47, - 0x4,0x36,0x6a, 0x6,0x47,0x45, 0x4,0x36,0x70, 0x4,0x36,0x6c, - 0x6,0x47,0x4b, 0x6,0x47,0x50, 0x4,0x36,0x75, 0x6,0x47,0x44, - 0x6,0x47,0x46, 0x6,0x47,0x4d, 0x5,0x37,0x34, 0x6,0x3e,0x32, - 0x6,0x47,0x4f, 0x4,0x3c,0x5a, 0x5,0x37,0x39, 0x4,0x36,0x73, - 0x6,0x4f,0x6d, 0x5,0x37,0x38, 0xf,0x39,0x76, 0xf,0x39,0x78, - 0xf,0x39,0x79, 0xf,0x39,0x7a, 0xf,0x39,0x7b, 0xf,0x39,0x7c, - 0xf,0x3a,0x21, 0xf,0x3a,0x22, 0xf,0x3a,0x23, 0xf,0x3a,0x24, - 0xf,0x3a,0x25, 0xf,0x3a,0x26, 0x6,0x47,0x51, 0x6,0x47,0x4a, - 0x6,0x47,0x49, 0x4,0x36,0x74, 0x6,0x47,0x4c, 0xf,0x39,0x75, - 0x5,0x37,0x37, 0x5,0x37,0x3a, 0x6,0x47,0x48, 0x5,0x37,0x35, - 0x5,0x37,0x36, 0x5,0x37,0x3b, 0x5,0x3e,0x46, 0x6,0x51,0x56, - 0x6,0x51,0x4b, 0x6,0x51,0x55, 0x5,0x3e,0x4d, 0x4,0x3c,0x54, - 0x6,0x5b,0x62, 0x6,0x51,0x52, 0x5,0x3e,0x4c, 0x6,0x51,0x51, - 0x5,0x3e,0x44, 0x5,0x3e,0x4b, 0x5,0x3e,0x43, 0x6,0x51,0x54, - 0x6,0x51,0x50, 0x5,0x3e,0x49, 0x5,0x3e,0x4a, 0x4,0x3c,0x55, - 0x5,0x3e,0x47, 0x6,0x51,0x49, 0x6,0x51,0x4c, 0xf,0x39,0x77, - 0x6,0x51,0x53, 0x6,0x51,0x4d, 0xf,0x40,0x66, 0xf,0x40,0x67, - 0xf,0x40,0x68, 0xf,0x40,0x6a, 0xf,0x40,0x6b, 0xf,0x40,0x6c, - 0xf,0x40,0x6d, 0xf,0x40,0x6e, 0xf,0x40,0x6f, 0xf,0x40,0x70, - 0xf,0x40,0x71, 0xf,0x40,0x72, 0xf,0x40,0x73, 0x6,0x51,0x4f, - 0x5,0x3e,0x4e, 0x5,0x3e,0x48, 0x5,0x3e,0x45, 0x5,0x45,0x29, - 0x5,0x45,0x28, 0x5,0x45,0x27, 0x6,0x5b,0x5c, 0x4,0x42,0x5c, - 0x6,0x5b,0x64, 0x6,0x5b,0x66, 0x6,0x5b,0x61, 0x5,0x45,0x2a, - 0x6,0x5b,0x60, 0x5,0x45,0x26, 0x6,0x5b,0x67, 0xf,0x47,0x32, - 0xf,0x47,0x33, 0xf,0x47,0x34, 0xf,0x47,0x35, 0xf,0x47,0x36, - 0xf,0x47,0x37, 0xf,0x47,0x39, 0xf,0x47,0x3a, 0xf,0x47,0x3b, - 0xf,0x47,0x3c, 0x6,0x5b,0x5d, 0xf,0x47,0x38, 0x6,0x5b,0x6b, - 0x6,0x5b,0x63, 0x6,0x5b,0x53, 0xf,0x47,0x31, 0x4,0x42,0x5a, - 0x6,0x5b,0x65, 0x6,0x5b,0x5e, 0x5,0x45,0x25, 0x5,0x45,0x2b, - 0x7,0x21,0x72, 0x4,0x49,0x34, 0x4,0x49,0x35, 0x7,0x21,0x6f, - 0x4,0x49,0x36, 0x5,0x4c,0x4b, 0x5,0x4c,0x4c, 0x7,0x21,0x6b, - 0x7,0x21,0x78, 0x4,0x49,0x37, 0x7,0x21,0x77, 0x7,0x21,0x74, - 0xf,0x4e,0x21, 0x5,0x4c,0x4d, 0x5,0x4c,0x4f, 0x7,0x21,0x67, - 0x7,0x21,0x75, 0xf,0x4d,0x7c, 0xf,0x4d,0x7d, 0xf,0x4e,0x26, - 0xf,0x4e,0x27, 0xf,0x4e,0x28, 0xf,0x4e,0x29, 0xf,0x4e,0x2a, - 0xf,0x4e,0x2b, 0xf,0x4e,0x2d, 0x7,0x21,0x6c, 0x7,0x21,0x6d, - 0x7,0x21,0x6e, 0x5,0x4c,0x71, 0x7,0x21,0x73, 0x7,0x21,0x71, - 0x7,0x21,0x69, 0xf,0x4d,0x7e, 0xf,0x4e,0x24, 0xf,0x4e,0x23, - 0x5,0x4c,0x4e, 0x5,0x4c,0x4a, 0x5,0x4c,0x48, 0x7,0x21,0x68, - 0x5,0x4c,0x49, 0x7,0x2c,0x6f, 0x7,0x2c,0x71, 0x7,0x2c,0x6c, - 0x4,0x4f,0x77, 0x4,0x4f,0x7a, 0x4,0x4f,0x79, 0x7,0x2c,0x6d, - 0x7,0x2c,0x70, 0xf,0x4e,0x2c, 0xf,0x53,0x74, 0xf,0x53,0x76, - 0xf,0x53,0x78, 0x5,0x53,0x7a, 0x7,0x2c,0x72, 0x5,0x53,0x7b, - 0x5,0x53,0x79, 0x7,0x34,0x6f, 0x7,0x2c,0x73, 0x7,0x2c,0x6e, - 0xf,0x53,0x77, 0x4,0x4f,0x76, 0x7,0x37,0x43, 0x4,0x55,0x7d, - 0x7,0x37,0x3d, 0x5,0x5b,0x2e, 0x7,0x37,0x3f, 0x7,0x37,0x44, - 0x7,0x37,0x42, 0x7,0x37,0x45, 0x5,0x5b,0x2c, 0x7,0x2c,0x74, - 0xf,0x59,0x64, 0xf,0x59,0x65, 0xf,0x59,0x66, 0xf,0x59,0x67, - 0xf,0x59,0x68, 0xf,0x59,0x69, 0xf,0x59,0x6a, 0xf,0x59,0x6b, - 0x7,0x3e,0x6c, 0x7,0x37,0x40, 0x7,0x37,0x41, 0x4,0x55,0x7e, - 0x5,0x5b,0x2f, 0x7,0x3f,0x34, 0x5,0x61,0x47, 0x7,0x37,0x3e, - 0x5,0x61,0x49, 0x7,0x3f,0x33, 0xf,0x5e,0x47, 0xf,0x5e,0x48, - 0xf,0x5e,0x49, 0xf,0x5e,0x4b, 0xf,0x5e,0x4d, 0xf,0x5e,0x4e, - 0x7,0x3f,0x31, 0x7,0x3f,0x32, 0x5,0x5b,0x30, 0x5,0x61,0x48, - 0xf,0x62,0x28, 0x5,0x61,0x4a, 0x7,0x46,0x42, 0x7,0x46,0x3f, - 0x5,0x67,0x5d, 0x7,0x46,0x47, 0x7,0x46,0x41, 0xf,0x5e,0x4c, - 0xf,0x62,0x27, 0x7,0x46,0x43, 0x7,0x46,0x46, 0x7,0x4a,0x3b, - 0x7,0x46,0x40, 0x7,0x3f,0x35, 0x4,0x63,0x33, 0xf,0x65,0x22, - 0xf,0x65,0x23, 0xf,0x65,0x24, 0xf,0x65,0x25, 0x7,0x4d,0x4e, - 0x5,0x6b,0x77, 0x7,0x53,0x28, 0x4,0x66,0x36, 0x7,0x53,0x24, - 0x7,0x53,0x23, 0x7,0x53,0x27, 0x7,0x53,0x25, 0x5,0x6f,0x74, - 0xf,0x67,0x49, 0xf,0x67,0x4a, 0xf,0x67,0x4c, 0x7,0x53,0x26, - 0xf,0x67,0x4b, 0x5,0x6f,0x72, 0x5,0x6f,0x73, 0x7,0x57,0x5b, - 0xf,0x69,0x3d, 0x5,0x73,0x34, 0x7,0x57,0x5d, 0x5,0x73,0x35, - 0x7,0x5b,0x4b, 0x7,0x57,0x5c, 0x7,0x5e,0x57, 0x5,0x77,0x57, - 0x5,0x7b,0x5f, 0x7,0x65,0x5a, 0x7,0x66,0x42, 0x7,0x66,0x4f, - 0x6,0x22,0x62, 0x6,0x2f,0x6d, 0x6,0x26,0x6b, 0x6,0x2a,0x52, - 0xf,0x29,0x7e, 0xf,0x2a,0x21, 0x5,0x2c,0x64, 0x6,0x36,0x42, - 0x6,0x2f,0x6e, 0x6,0x36,0x41, 0xf,0x2e,0x62, 0x5,0x2c,0x63, - 0x6,0x3e,0x36, 0xf,0x33,0x62, 0x6,0x47,0x52, 0x6,0x51,0x59, - 0x6,0x51,0x58, 0x6,0x5b,0x6a, 0x6,0x64,0x7a, 0x6,0x5b,0x68, - 0xf,0x47,0x3d, 0x6,0x5b,0x69, 0x7,0x21,0x7a, 0x7,0x21,0x79, - 0x7,0x2c,0x75, 0x7,0x3f,0x36, 0x7,0x43,0x3f, 0xf,0x5e,0x4f, - 0x7,0x3f,0x37, 0x7,0x46,0x48, 0x7,0x46,0x49, 0x7,0x48,0x3b, - 0x7,0x57,0x5e, 0x5,0x21,0x2f, 0x6,0x22,0x63, 0x6,0x24,0x37, - 0x6,0x24,0x36, 0x6,0x26,0x6c, 0xf,0x23,0x5c, 0x6,0x36,0x43, - 0x6,0x3e,0x37, 0x6,0x3e,0x38, 0x6,0x51,0x5a, 0x6,0x24,0x39, - 0x6,0x24,0x38, 0x5,0x23,0x64, 0x5,0x23,0x63, 0x4,0x25,0x6f, - 0x6,0x2a,0x53, 0xf,0x26,0x34, 0xf,0x2e,0x63, 0x5,0x31,0x5e, - 0x6,0x3e,0x39, 0x6,0x3e,0x3c, 0x5,0x2c,0x65, 0x6,0x3e,0x3b, - 0x6,0x3e,0x3a, 0x5,0x3e,0x4f, 0x6,0x51,0x5c, 0xf,0x40,0x74, - 0x6,0x5b,0x6c, 0xf,0x47,0x3e, 0x6,0x5b,0x6d, 0x5,0x4c,0x50, - 0xf,0x4e,0x2f, 0xf,0x53,0x79, 0x7,0x2c,0x76, 0x7,0x2c,0x77, - 0x7,0x37,0x46, 0x7,0x46,0x4a, 0x7,0x3f,0x3a, 0x7,0x3f,0x38, - 0x7,0x3f,0x39, 0x7,0x46,0x4b, 0x7,0x4d,0x4f, 0x6,0x22,0x64, - 0x6,0x22,0x65, 0x6,0x24,0x3a, 0x6,0x26,0x6e, 0x6,0x26,0x6d, - 0x6,0x2a,0x54, 0xf,0x25,0x42, 0x5,0x28,0x5f, 0x5,0x2c,0x68, - 0x4,0x2c,0x35, 0x5,0x2c,0x67, 0x6,0x36,0x46, 0x6,0x36,0x45, - 0xf,0x2e,0x64, 0xf,0x2e,0x65, 0x6,0x36,0x47, 0x5,0x2c,0x69, - 0x4,0x31,0x24, 0x5,0x31,0x61, 0x6,0x3e,0x3d, 0x5,0x31,0x5f, - 0x5,0x31,0x60, 0x5,0x31,0x62, 0xf,0x33,0x63, 0x6,0x47,0x54, - 0x5,0x37,0x3e, 0x5,0x37,0x42, 0x5,0x37,0x40, 0x5,0x37,0x41, - 0xf,0x3a,0x27, 0x5,0x3e,0x50, 0x6,0x51,0x5d, 0x5,0x3e,0x52, - 0x5,0x3e,0x51, 0x6,0x51,0x5f, 0x4,0x42,0x61, 0x6,0x5b,0x6f, - 0x6,0x5b,0x70, 0x6,0x5b,0x6e, 0x5,0x45,0x2c, 0x5,0x45,0x2e, - 0x7,0x21,0x7b, 0x5,0x4c,0x51, 0x7,0x3f,0x3b, 0x5,0x5b,0x31, - 0x5,0x5b,0x32, 0x7,0x46,0x4c, 0x6,0x21,0x67, 0x6,0x21,0x68, - 0xf,0x21,0x38, 0x6,0x22,0x66, 0xf,0x21,0x53, 0xf,0x21,0x54, - 0x5,0x21,0x76, 0x6,0x24,0x3c, 0x4,0x22,0x54, 0x6,0x24,0x3f, - 0x6,0x24,0x40, 0x6,0x24,0x3e, 0x6,0x24,0x3d, 0xf,0x21,0x6b, - 0x4,0x23,0x63, 0x4,0x23,0x64, 0x4,0x23,0x66, 0xf,0x23,0x5d, - 0xf,0x23,0x5e, 0xf,0x23,0x5f, 0xf,0x23,0x60, 0xf,0x23,0x61, - 0xf,0x23,0x62, 0xf,0x23,0x63, 0x6,0x26,0x70, 0x6,0x26,0x6f, - 0x4,0x25,0x76, 0x5,0x25,0x5a, 0x4,0x25,0x74, 0x6,0x2a,0x55, - 0x6,0x2a,0x56, 0x4,0x28,0x63, 0x6,0x2a,0x5c, 0x6,0x2a,0x58, - 0x6,0x2a,0x59, 0xf,0x26,0x36, 0xf,0x26,0x37, 0x6,0x2a,0x5a, - 0x6,0x2a,0x5b, 0x6,0x2a,0x5d, 0x4,0x25,0x79, 0x6,0x2a,0x57, - 0x6,0x29,0x39, 0x4,0x28,0x64, 0x4,0x28,0x62, 0x5,0x28,0x61, - 0x5,0x28,0x62, 0x5,0x28,0x60, 0xf,0x2a,0x23, 0xf,0x2a,0x24, - 0xf,0x2a,0x25, 0xf,0x2a,0x26, 0xf,0x2a,0x28, 0xf,0x2a,0x29, - 0xf,0x2a,0x27, 0xf,0x2a,0x22, 0x5,0x2c,0x6c, 0x6,0x36,0x48, - 0x6,0x36,0x4b, 0x5,0x2c,0x6a, 0x5,0x2c,0x6d, 0xf,0x2e,0x67, - 0xf,0x2e,0x68, 0xf,0x2e,0x69, 0x6,0x36,0x4a, 0x4,0x2c,0x37, - 0x5,0x2c,0x6b, 0x5,0x31,0x64, 0xf,0x2e,0x66, 0x4,0x2c,0x36, - 0x6,0x3e,0x41, 0x6,0x3e,0x44, 0x3,0x34,0x7e, 0x6,0x3e,0x3e, - 0x6,0x3e,0x43, 0x6,0x3e,0x40, 0x6,0x3e,0x45, 0x6,0x3e,0x3f, - 0xf,0x33,0x64, 0xf,0x33,0x65, 0x4,0x31,0x27, 0x5,0x31,0x63, - 0x4,0x3c,0x5e, 0x6,0x47,0x58, 0x6,0x47,0x5b, 0x6,0x47,0x5d, - 0x6,0x47,0x5a, 0xf,0x3a,0x28, 0x6,0x47,0x55, 0x6,0x47,0x5c, - 0x5,0x37,0x43, 0x6,0x47,0x59, 0x4,0x36,0x7a, 0x4,0x36,0x78, - 0x5,0x37,0x44, 0x6,0x47,0x57, 0x6,0x51,0x60, 0x6,0x51,0x61, - 0x4,0x3c,0x5d, 0xf,0x40,0x76, 0x5,0x3e,0x53, 0x5,0x3e,0x54, - 0x5,0x3e,0x55, 0x6,0x5b,0x72, 0x4,0x42,0x63, 0x5,0x45,0x2f, - 0x4,0x42,0x62, 0xf,0x47,0x3f, 0xf,0x47,0x40, 0xf,0x47,0x41, - 0x6,0x5b,0x71, 0x5,0x45,0x30, 0x4,0x49,0x38, 0x7,0x22,0x22, - 0x7,0x21,0x7c, 0x7,0x22,0x21, 0x7,0x2c,0x7c, 0x7,0x21,0x7e, - 0x5,0x4c,0x53, 0xf,0x4e,0x31, 0xf,0x4e,0x32, 0x7,0x21,0x7d, - 0x4,0x42,0x64, 0x5,0x4c,0x52, 0x7,0x2c,0x7d, 0x5,0x53,0x7c, - 0x7,0x2c,0x78, 0x7,0x2c,0x79, 0x4,0x56,0x21, 0xf,0x53,0x7a, - 0x7,0x2c,0x7a, 0x7,0x37,0x48, 0x7,0x37,0x47, 0x5,0x5b,0x33, - 0x4,0x56,0x2e, 0x4,0x5a,0x7b, 0xf,0x62,0x29, 0x5,0x6b,0x78, - 0x7,0x53,0x29, 0xf,0x69,0x3e, 0x5,0x75,0x68, 0xf,0x6b,0x44, - 0x7,0x5e,0x58, 0xf,0x6c,0x5f, 0x5,0x21,0x62, 0xf,0x21,0x55, - 0xf,0x21,0x56, 0x6,0x24,0x41, 0x4,0x22,0x58, 0x6,0x24,0x42, - 0xf,0x22,0x39, 0xf,0x22,0x3a, 0xf,0x22,0x3b, 0xf,0x22,0x3c, - 0x4,0x22,0x57, 0x5,0x22,0x4b, 0x6,0x24,0x43, 0x5,0x22,0x4a, - 0x6,0x26,0x74, 0x4,0x23,0x68, 0x4,0x23,0x6b, 0xf,0x23,0x64, - 0xf,0x23,0x66, 0xf,0x23,0x68, 0xf,0x23,0x69, 0xf,0x23,0x6b, - 0xf,0x23,0x6c, 0xf,0x23,0x6d, 0xf,0x23,0x6e, 0xf,0x23,0x6f, - 0xf,0x23,0x65, 0x6,0x26,0x72, 0x6,0x26,0x73, 0x6,0x26,0x75, - 0x6,0x26,0x71, 0xf,0x23,0x6a, 0xf,0x23,0x67, 0x5,0x23,0x66, - 0x5,0x23,0x67, 0x5,0x23,0x65, 0x4,0x25,0x7c, 0x6,0x2a,0x61, - 0x6,0x2a,0x60, 0x5,0x25,0x60, 0x4,0x25,0x7a, 0x5,0x25,0x5e, - 0x4,0x25,0x7d, 0x5,0x25,0x5b, 0x5,0x25,0x5c, 0x4,0x25,0x7e, - 0xf,0x26,0x3a, 0xf,0x26,0x3b, 0xf,0x26,0x3e, 0xf,0x26,0x3f, - 0xf,0x26,0x40, 0xf,0x26,0x41, 0xf,0x26,0x42, 0xf,0x26,0x43, - 0xf,0x26,0x45, 0xf,0x26,0x46, 0xf,0x26,0x47, 0xf,0x26,0x48, - 0xf,0x26,0x49, 0x6,0x2a,0x5f, 0x6,0x2a,0x5e, 0xf,0x26,0x44, - 0xf,0x26,0x3c, 0xf,0x26,0x3d, 0x5,0x25,0x62, 0x5,0x25,0x5f, - 0x5,0x25,0x63, 0x5,0x25,0x61, 0x4,0x28,0x68, 0x5,0x28,0x64, - 0x6,0x2f,0x76, 0x6,0x2f,0x78, 0x6,0x2f,0x79, 0x4,0x28,0x65, - 0x4,0x28,0x6b, 0x5,0x28,0x66, 0x4,0x28,0x66, 0x5,0x28,0x63, - 0x6,0x2f,0x70, 0x6,0x2f,0x7b, 0x6,0x2f,0x74, 0x5,0x28,0x6b, - 0x6,0x2f,0x7e, 0xf,0x2a,0x2d, 0xf,0x2a,0x2e, 0xf,0x2a,0x2f, - 0xf,0x2a,0x30, 0xf,0x2a,0x31, 0xf,0x2a,0x32, 0xf,0x2a,0x33, - 0xf,0x2a,0x34, 0x6,0x2f,0x73, 0x6,0x2f,0x77, 0x4,0x28,0x6c, - 0x6,0x2f,0x75, 0x6,0x2f,0x7a, 0x6,0x2f,0x6f, 0x6,0x2f,0x7d, - 0x5,0x28,0x69, 0x4,0x28,0x6a, 0x5,0x28,0x6a, 0x5,0x28,0x67, - 0x6,0x2f,0x71, 0x6,0x2f,0x7c, 0x5,0x28,0x65, 0x5,0x28,0x68, - 0x6,0x2f,0x72, 0x3,0x30,0x53, 0x5,0x2c,0x70, 0x6,0x36,0x4f, - 0x5,0x2c,0x72, 0x5,0x2c,0x75, 0x5,0x2c,0x6f, 0x6,0x36,0x55, - 0x5,0x2c,0x6e, 0x6,0x36,0x56, 0x6,0x36,0x50, 0x6,0x36,0x51, - 0xf,0x2e,0x6c, 0xf,0x2e,0x6e, 0xf,0x2e,0x70, 0xf,0x2e,0x71, - 0xf,0x2e,0x73, 0xf,0x2e,0x74, 0xf,0x2e,0x75, 0xf,0x2e,0x76, - 0xf,0x2e,0x77, 0xf,0x2e,0x79, 0x6,0x36,0x54, 0x6,0x36,0x4e, - 0x5,0x2c,0x71, 0x6,0x36,0x53, 0x6,0x36,0x52, 0xf,0x2e,0x6f, - 0xf,0x2e,0x72, 0x5,0x2c,0x77, 0x5,0x2c,0x74, 0x5,0x2c,0x73, - 0x5,0x2c,0x76, 0x5,0x2c,0x78, 0x6,0x3e,0x4c, 0x6,0x3e,0x52, - 0x6,0x3e,0x46, 0x6,0x3e,0x47, 0x5,0x31,0x6a, 0x6,0x3e,0x48, - 0x6,0x3e,0x49, 0x6,0x3e,0x4f, 0x5,0x31,0x69, 0x5,0x31,0x6d, - 0x6,0x3e,0x4d, 0x4,0x31,0x2b, 0x6,0x3e,0x4e, 0x5,0x31,0x6b, - 0x6,0x3e,0x53, 0xf,0x33,0x68, 0xf,0x33,0x69, 0xf,0x33,0x6a, - 0xf,0x33,0x6b, 0xf,0x33,0x6c, 0xf,0x33,0x6d, 0xf,0x33,0x6e, - 0xf,0x33,0x6f, 0xf,0x33,0x71, 0xf,0x33,0x72, 0xf,0x33,0x74, - 0xf,0x33,0x75, 0xf,0x33,0x76, 0xf,0x33,0x77, 0xf,0x33,0x78, - 0xf,0x33,0x79, 0xf,0x33,0x7a, 0xf,0x33,0x7b, 0xf,0x33,0x7c, - 0xf,0x33,0x7d, 0xf,0x33,0x7e, 0xf,0x34,0x21, 0xf,0x34,0x22, - 0xf,0x34,0x23, 0xf,0x33,0x70, 0x6,0x3e,0x51, 0x4,0x31,0x2a, - 0x6,0x3e,0x4b, 0x6,0x3e,0x4a, 0x5,0x31,0x66, 0x5,0x31,0x67, - 0x5,0x31,0x68, 0x5,0x31,0x65, 0x4,0x36,0x7b, 0x6,0x47,0x62, - 0x4,0x36,0x7c, 0x5,0x37,0x5a, 0x6,0x47,0x5f, 0x4,0x37,0x21, - 0x5,0x37,0x48, 0x5,0x37,0x59, 0x6,0x47,0x64, 0x6,0x47,0x66, - 0x5,0x37,0x4f, 0x6,0x47,0x65, 0x6,0x47,0x60, 0x5,0x37,0x50, - 0x5,0x37,0x49, 0x5,0x37,0x57, 0x5,0x37,0x54, 0x5,0x37,0x47, - 0x5,0x37,0x4b, 0xf,0x3a,0x29, 0xf,0x3a,0x2b, 0xf,0x3a,0x2c, - 0xf,0x3a,0x2d, 0xf,0x3a,0x2e, 0xf,0x3a,0x2f, 0xf,0x3a,0x30, - 0xf,0x3a,0x32, 0xf,0x3a,0x33, 0xf,0x3a,0x34, 0xf,0x3a,0x36, - 0xf,0x3a,0x37, 0xf,0x3a,0x38, 0xf,0x3a,0x39, 0xf,0x3a,0x3a, - 0xf,0x3a,0x3e, 0xf,0x3a,0x3f, 0xf,0x3a,0x41, 0xf,0x3a,0x42, - 0xf,0x3a,0x43, 0xf,0x3a,0x44, 0xf,0x3a,0x45, 0xf,0x3a,0x3b, - 0x5,0x37,0x56, 0x6,0x47,0x63, 0x5,0x37,0x58, 0x6,0x47,0x5e, - 0xf,0x3a,0x3d, 0xf,0x3a,0x40, 0xf,0x3a,0x31, 0xf,0x3a,0x2a, - 0x5,0x37,0x45, 0x5,0x3e,0x56, 0x5,0x37,0x53, 0x5,0x37,0x4c, - 0x5,0x37,0x52, 0x5,0x37,0x51, 0x5,0x37,0x4a, 0x5,0x37,0x4d, - 0x5,0x37,0x55, 0x6,0x47,0x67, 0xf,0x33,0x67, 0x5,0x3e,0x5f, - 0x5,0x3e,0x5a, 0x5,0x3e,0x5d, 0x5,0x3e,0x57, 0x4,0x3c,0x65, - 0x5,0x3e,0x59, 0x6,0x51,0x63, 0x4,0x3c,0x62, 0x4,0x3c,0x60, - 0x6,0x51,0x67, 0x6,0x51,0x65, 0x6,0x5b,0x7c, 0x5,0x3e,0x5c, - 0x5,0x3e,0x5b, 0x6,0x51,0x66, 0xf,0x40,0x78, 0xf,0x40,0x79, - 0xf,0x40,0x7a, 0xf,0x40,0x7c, 0xf,0x40,0x7d, 0xf,0x40,0x7e, - 0xf,0x41,0x22, 0xf,0x41,0x23, 0x6,0x51,0x62, 0x6,0x51,0x64, - 0xf,0x40,0x77, 0x6,0x51,0x68, 0x5,0x3e,0x58, 0x5,0x3e,0x5e, - 0x5,0x3e,0x60, 0x6,0x51,0x6a, 0xf,0x41,0x21, 0x4,0x42,0x70, - 0x5,0x45,0x32, 0x4,0x42,0x6a, 0x6,0x5b,0x7b, 0x4,0x42,0x71, - 0x6,0x5b,0x73, 0x5,0x45,0x34, 0x7,0x22,0x29, 0x4,0x42,0x73, - 0x6,0x5b,0x75, 0xf,0x47,0x48, 0x4,0x42,0x6f, 0x5,0x45,0x37, - 0x4,0x42,0x6e, 0xf,0x47,0x47, 0xf,0x47,0x49, 0xf,0x47,0x4a, - 0xf,0x47,0x4b, 0xf,0x47,0x4c, 0xf,0x47,0x4d, 0xf,0x47,0x4e, - 0xf,0x47,0x4f, 0xf,0x47,0x50, 0xf,0x47,0x51, 0xf,0x47,0x52, - 0xf,0x47,0x54, 0x6,0x5b,0x74, 0x6,0x5b,0x78, 0x4,0x42,0x72, - 0x4,0x42,0x65, 0x6,0x5b,0x76, 0xf,0x47,0x53, 0x5,0x45,0x33, - 0x5,0x45,0x36, 0x5,0x45,0x35, 0x7,0x22,0x26, 0x5,0x45,0x31, - 0x6,0x5b,0x77, 0x5,0x4c,0x5b, 0x5,0x4c,0x59, 0x4,0x49,0x39, - 0x5,0x4c,0x56, 0x7,0x22,0x2f, 0x5,0x4c,0x57, 0x4,0x49,0x3f, - 0x4,0x49,0x3b, 0x7,0x22,0x2c, 0x4,0x49,0x3e, 0x7,0x22,0x25, - 0x6,0x5b,0x79, 0x7,0x22,0x24, 0xf,0x4e,0x3a, 0x7,0x37,0x51, - 0xf,0x47,0x45, 0x5,0x4c,0x54, 0x5,0x4c,0x5c, 0xf,0x4e,0x33, - 0xf,0x4e,0x34, 0xf,0x4e,0x35, 0xf,0x4e,0x36, 0xf,0x4e,0x37, - 0xf,0x4e,0x38, 0xf,0x4e,0x39, 0xf,0x4e,0x3b, 0xf,0x4e,0x3d, - 0xf,0x4e,0x3e, 0xf,0x4e,0x3f, 0xf,0x4e,0x40, 0xf,0x4e,0x41, - 0xf,0x4e,0x42, 0xf,0x4e,0x44, 0x6,0x5b,0x7a, 0x7,0x22,0x27, - 0x7,0x22,0x2e, 0x7,0x22,0x2d, 0x7,0x22,0x28, 0x7,0x22,0x23, - 0xf,0x4e,0x45, 0xf,0x4e,0x43, 0xf,0x4e,0x3c, 0x5,0x4c,0x5a, - 0x5,0x4c,0x55, 0x4,0x49,0x3d, 0x7,0x22,0x2a, 0x5,0x4c,0x58, - 0x7,0x22,0x2b, 0xf,0x54,0x25, 0x5,0x54,0x28, 0x5,0x54,0x23, - 0x7,0x2d,0x25, 0x7,0x2c,0x7e, 0x5,0x54,0x29, 0x5,0x54,0x26, - 0x7,0x2d,0x21, 0x4,0x4f,0x7e, 0x7,0x2d,0x28, 0x5,0x54,0x22, - 0x7,0x2d,0x2b, 0x5,0x53,0x7d, 0x7,0x2d,0x2a, 0x7,0x2d,0x2c, - 0xf,0x53,0x7b, 0xf,0x53,0x7c, 0xf,0x53,0x7d, 0xf,0x53,0x7e, - 0xf,0x54,0x22, 0xf,0x54,0x23, 0xf,0x54,0x24, 0xf,0x54,0x26, - 0xf,0x54,0x27, 0xf,0x54,0x2b, 0xf,0x54,0x2c, 0x5,0x53,0x7e, - 0x7,0x2d,0x26, 0x7,0x2d,0x27, 0x7,0x2d,0x23, 0x7,0x2d,0x22, - 0x7,0x2d,0x24, 0xf,0x54,0x21, 0xf,0x54,0x28, 0x5,0x54,0x27, - 0x5,0x54,0x21, 0x5,0x54,0x25, 0x7,0x2d,0x29, 0x7,0x37,0x4b, - 0x7,0x37,0x54, 0x7,0x37,0x4f, 0x4,0x4f,0x7d, 0x7,0x37,0x4d, - 0x4,0x56,0x23, 0x7,0x37,0x53, 0x7,0x37,0x4a, 0x5,0x5b,0x36, - 0x5,0x5b,0x34, 0x7,0x37,0x4c, 0x7,0x37,0x4e, 0x7,0x37,0x50, - 0x5,0x5b,0x35, 0x4,0x56,0x25, 0xf,0x59,0x6c, 0xf,0x59,0x6d, - 0xf,0x59,0x6e, 0xf,0x59,0x6f, 0xf,0x59,0x70, 0xf,0x59,0x71, - 0x7,0x37,0x52, 0x7,0x37,0x55, 0x7,0x37,0x49, 0x5,0x61,0x4b, - 0x4,0x5a,0x7c, 0x7,0x3f,0x3f, 0x5,0x61,0x4c, 0x5,0x61,0x4d, - 0x7,0x3f,0x3e, 0x7,0x3f,0x40, 0xf,0x5e,0x50, 0xf,0x5e,0x51, - 0xf,0x5e,0x52, 0xf,0x5e,0x54, 0x7,0x3f,0x3d, 0x7,0x3f,0x41, - 0xf,0x5e,0x53, 0x7,0x3f,0x3c, 0x5,0x67,0x5f, 0x4,0x5f,0x53, - 0x7,0x46,0x4d, 0x7,0x46,0x52, 0x7,0x46,0x50, 0xf,0x5e,0x55, - 0xf,0x62,0x2a, 0xf,0x62,0x2b, 0x7,0x46,0x4e, 0x5,0x67,0x61, - 0x5,0x67,0x60, 0xf,0x5f,0x73, 0x7,0x4d,0x51, 0x5,0x6b,0x79, - 0xf,0x65,0x26, 0x5,0x6b,0x7a, 0x5,0x6b,0x7b, 0x7,0x53,0x2a, - 0x5,0x6f,0x76, 0x7,0x53,0x2b, 0x5,0x6f,0x75, 0xf,0x67,0x4d, - 0xf,0x67,0x4e, 0x7,0x57,0x62, 0x5,0x73,0x36, 0x7,0x57,0x61, - 0x7,0x57,0x63, 0x7,0x57,0x5f, 0xf,0x69,0x3f, 0x7,0x57,0x60, - 0x7,0x57,0x64, 0xf,0x69,0x40, 0x5,0x75,0x69, 0x7,0x5b,0x4c, - 0x7,0x5e,0x5a, 0x7,0x5e,0x5b, 0xf,0x6b,0x45, 0x7,0x5e,0x59, - 0x7,0x5e,0x5c, 0xf,0x6c,0x24, 0x5,0x79,0x24, 0xf,0x6c,0x4a, - 0x7,0x63,0x4d, 0x5,0x7a,0x65, 0x4,0x21,0x33, 0x6,0x22,0x68, - 0x5,0x21,0x63, 0x6,0x22,0x69, 0xf,0x21,0x58, 0xf,0x21,0x57, - 0x6,0x24,0x45, 0x6,0x24,0x44, 0x6,0x26,0x76, 0x6,0x26,0x77, - 0x5,0x23,0x6a, 0x4,0x23,0x6c, 0xf,0x23,0x70, 0x5,0x23,0x69, - 0x4,0x28,0x6f, 0x6,0x30,0x24, 0x6,0x2a,0x63, 0x6,0x2a,0x62, - 0xf,0x26,0x4a, 0xf,0x26,0x4b, 0xf,0x26,0x4c, 0xf,0x26,0x4d, - 0xf,0x26,0x4f, 0x6,0x2a,0x64, 0xf,0x26,0x4e, 0x6,0x30,0x23, - 0x6,0x30,0x21, 0x6,0x30,0x26, 0x6,0x30,0x25, 0xf,0x2a,0x35, - 0xf,0x2a,0x36, 0xf,0x2a,0x37, 0x6,0x30,0x22, 0x6,0x36,0x59, - 0x5,0x2c,0x79, 0x6,0x36,0x58, 0xf,0x2e,0x7a, 0xf,0x2e,0x7b, - 0x5,0x2c,0x7a, 0xf,0x33,0x66, 0xf,0x34,0x24, 0xf,0x34,0x25, - 0xf,0x34,0x26, 0xf,0x34,0x27, 0x5,0x37,0x5c, 0x6,0x47,0x69, - 0x5,0x37,0x5b, 0x6,0x47,0x6a, 0xf,0x3a,0x47, 0x6,0x47,0x68, - 0xf,0x3a,0x46, 0x4,0x3c,0x66, 0x4,0x3c,0x68, 0x6,0x51,0x6d, - 0x5,0x3e,0x62, 0xf,0x41,0x25, 0xf,0x41,0x26, 0x6,0x51,0x6b, - 0x6,0x51,0x6c, 0x5,0x3e,0x61, 0x4,0x3c,0x69, 0x6,0x5b,0x7d, - 0xf,0x47,0x55, 0xf,0x47,0x56, 0x5,0x45,0x38, 0x4,0x49,0x41, - 0x4,0x49,0x42, 0xf,0x4e,0x46, 0x5,0x4c,0x5d, 0x7,0x2d,0x2f, - 0x7,0x2d,0x2e, 0x7,0x2d,0x31, 0x7,0x2d,0x32, 0x5,0x54,0x2a, - 0x7,0x2d,0x30, 0xf,0x54,0x2d, 0xf,0x54,0x2e, 0x7,0x37,0x56, - 0x7,0x4d,0x52, 0xf,0x62,0x2c, 0xf,0x62,0x2d, 0x5,0x6b,0x7c, - 0xf,0x6c,0x60, 0x6,0x21,0x69, 0x5,0x21,0x64, 0x6,0x24,0x46, - 0x6,0x24,0x49, 0x6,0x24,0x4a, 0x4,0x22,0x5a, 0xf,0x22,0x3d, - 0xf,0x22,0x3e, 0xf,0x22,0x3f, 0xf,0x22,0x40, 0xf,0x22,0x41, - 0x6,0x24,0x47, 0x6,0x26,0x7e, 0x6,0x26,0x7d, 0x4,0x23,0x6e, - 0x6,0x26,0x7b, 0x6,0x26,0x7c, 0xf,0x23,0x72, 0x5,0x25,0x65, - 0x5,0x25,0x64, 0x6,0x2a,0x66, 0x5,0x25,0x66, 0x6,0x2a,0x67, - 0x6,0x2a,0x68, 0xf,0x26,0x51, 0xf,0x26,0x52, 0xf,0x26,0x54, - 0xf,0x26,0x55, 0x6,0x2a,0x65, 0xf,0x26,0x53, 0x5,0x28,0x6c, - 0x6,0x30,0x28, 0x6,0x30,0x2a, 0x5,0x28,0x6d, 0x4,0x28,0x71, - 0x4,0x28,0x72, 0x4,0x28,0x73, 0x6,0x30,0x2b, 0x6,0x30,0x27, - 0x6,0x30,0x29, 0xf,0x2a,0x38, 0xf,0x2a,0x3a, 0xf,0x2a,0x3b, - 0xf,0x2a,0x3c, 0x6,0x30,0x2c, 0x6,0x30,0x2d, 0x4,0x2c,0x4a, - 0x6,0x36,0x61, 0x4,0x2c,0x45, 0x4,0x2c,0x44, 0x4,0x2c,0x43, - 0x4,0x2c,0x47, 0x6,0x36,0x64, 0x6,0x36,0x65, 0x6,0x36,0x5f, - 0x6,0x36,0x5e, 0x5,0x2c,0x7d, 0x5,0x2d,0x22, 0x6,0x36,0x5b, - 0x6,0x36,0x62, 0xf,0x2e,0x7c, 0xf,0x2e,0x7d, 0x6,0x36,0x60, - 0x6,0x36,0x63, 0x6,0x36,0x5a, 0x6,0x36,0x5c, 0x5,0x2d,0x21, - 0x5,0x2c,0x7e, 0x4,0x31,0x2d, 0x5,0x31,0x6f, 0x6,0x3e,0x57, - 0x6,0x3e,0x59, 0x6,0x3e,0x58, 0x6,0x3e,0x56, 0x6,0x3e,0x5b, - 0x5,0x31,0x70, 0xf,0x34,0x28, 0xf,0x34,0x29, 0xf,0x34,0x2a, - 0xf,0x34,0x2b, 0xf,0x34,0x2c, 0xf,0x34,0x2d, 0xf,0x34,0x2e, - 0xf,0x34,0x2f, 0x4,0x31,0x2f, 0x6,0x3e,0x5c, 0x5,0x31,0x6e, - 0x6,0x3e,0x55, 0x5,0x37,0x5e, 0x4,0x37,0x26, 0x5,0x37,0x61, - 0x6,0x47,0x70, 0x6,0x47,0x6b, 0x4,0x37,0x23, 0x5,0x37,0x5d, - 0x5,0x37,0x60, 0x6,0x47,0x6e, 0x4,0x37,0x25, 0x5,0x37,0x5f, - 0x6,0x47,0x6f, 0x6,0x47,0x6c, 0xf,0x3a,0x48, 0xf,0x3a,0x49, - 0xf,0x3a,0x4a, 0xf,0x3a,0x4b, 0xf,0x3a,0x4c, 0xf,0x3a,0x4d, - 0xf,0x3a,0x4e, 0xf,0x3a,0x4f, 0x6,0x47,0x6d, 0x5,0x37,0x62, - 0xf,0x3d,0x6c, 0x6,0x51,0x74, 0x6,0x51,0x70, 0x4,0x3c,0x6b, - 0x4,0x3c,0x70, 0x5,0x3e,0x63, 0x6,0x51,0x77, 0x5,0x3e,0x64, - 0x6,0x51,0x72, 0x6,0x51,0x71, 0x6,0x51,0x76, 0x4,0x3c,0x6d, - 0x6,0x51,0x73, 0x6,0x51,0x6f, 0x6,0x51,0x75, 0xf,0x41,0x27, - 0xf,0x41,0x28, 0xf,0x41,0x29, 0xf,0x41,0x2a, 0xf,0x41,0x2c, - 0xf,0x41,0x2d, 0xf,0x41,0x2e, 0x6,0x51,0x6e, 0x6,0x5b,0x7e, - 0x6,0x5c,0x27, 0x5,0x45,0x3c, 0x5,0x45,0x3a, 0x6,0x5c,0x24, - 0x6,0x5c,0x2c, 0x4,0x42,0x76, 0x6,0x5c,0x2e, 0x6,0x5c,0x2b, - 0x6,0x5c,0x26, 0x5,0x45,0x39, 0x7,0x22,0x33, 0xf,0x47,0x57, - 0xf,0x47,0x58, 0xf,0x47,0x59, 0xf,0x47,0x5a, 0x6,0x5c,0x28, - 0x6,0x5c,0x25, 0x6,0x5c,0x29, 0x6,0x5c,0x2d, 0x6,0x5c,0x21, - 0x6,0x5c,0x23, 0x5,0x45,0x3b, 0x6,0x5c,0x2a, 0xf,0x47,0x44, - 0x6,0x62,0x67, 0x7,0x22,0x30, 0x5,0x4c,0x5e, 0x4,0x49,0x47, - 0x7,0x22,0x37, 0x4,0x49,0x48, 0x7,0x22,0x35, 0x7,0x22,0x32, - 0xf,0x4e,0x47, 0xf,0x4e,0x48, 0xf,0x4e,0x49, 0xf,0x4e,0x4a, - 0xf,0x4e,0x4b, 0xf,0x4e,0x4c, 0xf,0x4e,0x4e, 0xf,0x4e,0x4f, - 0x7,0x22,0x38, 0x7,0x22,0x36, 0xf,0x4e,0x4d, 0x5,0x4c,0x61, - 0x5,0x4c,0x5f, 0x7,0x22,0x31, 0x5,0x4c,0x60, 0x7,0x2d,0x35, - 0x7,0x2d,0x37, 0x5,0x54,0x2c, 0x4,0x50,0x22, 0x5,0x54,0x2d, - 0x5,0x54,0x2b, 0x7,0x2d,0x36, 0x7,0x2d,0x33, 0x7,0x2d,0x34, - 0xf,0x54,0x2f, 0xf,0x54,0x30, 0xf,0x54,0x31, 0xf,0x54,0x33, - 0xf,0x54,0x34, 0xf,0x54,0x35, 0xf,0x54,0x36, 0xf,0x54,0x37, - 0x7,0x37,0x59, 0x7,0x37,0x57, 0x5,0x5b,0x38, 0xf,0x59,0x72, - 0xf,0x59,0x73, 0xf,0x59,0x74, 0xf,0x59,0x75, 0x7,0x37,0x58, - 0x7,0x37,0x5a, 0x7,0x22,0x34, 0x5,0x5b,0x37, 0x7,0x46,0x58, - 0x5,0x61,0x4e, 0xf,0x59,0x76, 0xf,0x5e,0x56, 0xf,0x5e,0x57, - 0x7,0x3f,0x42, 0xf,0x62,0x2e, 0x4,0x5f,0x57, 0x7,0x46,0x53, - 0x7,0x46,0x55, 0x4,0x5f,0x56, 0x7,0x46,0x57, 0x7,0x46,0x56, - 0xf,0x62,0x2f, 0x7,0x46,0x54, 0x4,0x63,0x36, 0x7,0x4d,0x53, - 0x7,0x53,0x2c, 0x4,0x66,0x38, 0x7,0x53,0x2d, 0xf,0x67,0x4f, - 0xf,0x67,0x50, 0x7,0x53,0x2e, 0x5,0x73,0x38, 0x4,0x68,0x66, - 0x7,0x57,0x65, 0x5,0x73,0x37, 0x7,0x57,0x66, 0x4,0x6a,0x45, - 0x4,0x6b,0x67, 0xf,0x6b,0x46, 0x7,0x60,0x6c, 0x7,0x64,0x45, - 0x5,0x79,0x25, 0xf,0x6c,0x25, 0x4,0x6d,0x54, 0x5,0x7a,0x27, - 0x4,0x6d,0x71, 0x7,0x63,0x4e, 0x7,0x65,0x34, 0x6,0x21,0x6a, - 0x6,0x2a,0x6a, 0x6,0x2a,0x69, 0xf,0x26,0x56, 0xf,0x26,0x57, - 0x5,0x28,0x6f, 0x6,0x30,0x2e, 0xf,0x2a,0x3d, 0x6,0x30,0x31, - 0x6,0x30,0x2f, 0x4,0x31,0x31, 0x6,0x43,0x67, 0x6,0x3e,0x5e, - 0x6,0x3e,0x5d, 0x4,0x37,0x27, 0x6,0x3e,0x5f, 0x6,0x51,0x7a, - 0x6,0x51,0x78, 0x6,0x51,0x79, 0x6,0x5c,0x30, 0x4,0x44,0x26, - 0xf,0x47,0x5b, 0x6,0x5c,0x31, 0x5,0x45,0x3d, 0xf,0x4e,0x51, - 0x7,0x22,0x3a, 0x7,0x22,0x39, 0x7,0x2d,0x39, 0x5,0x53,0x52, - 0x7,0x2d,0x38, 0x7,0x37,0x5b, 0x7,0x37,0x5c, 0x5,0x61,0x4f, - 0x7,0x46,0x59, 0x7,0x4d,0x54, 0x7,0x53,0x2f, 0x6,0x21,0x6b, - 0xf,0x21,0x39, 0x6,0x24,0x4c, 0x5,0x22,0x4c, 0x6,0x27,0x24, - 0x4,0x23,0x72, 0x6,0x27,0x23, 0x6,0x27,0x22, 0xf,0x23,0x73, - 0x5,0x25,0x67, 0xf,0x26,0x58, 0x6,0x2a,0x6b, 0x6,0x30,0x32, - 0x6,0x30,0x30, 0x6,0x30,0x33, 0x5,0x28,0x70, 0x4,0x2c,0x4b, - 0xf,0x2f,0x21, 0x6,0x36,0x69, 0x6,0x3e,0x61, 0x5,0x31,0x71, - 0x5,0x37,0x63, 0x6,0x3e,0x63, 0x6,0x3e,0x60, 0x6,0x3e,0x62, - 0xf,0x34,0x30, 0x6,0x47,0x71, 0xf,0x3a,0x50, 0x6,0x47,0x73, - 0x6,0x47,0x72, 0x5,0x3e,0x65, 0xf,0x41,0x2f, 0x5,0x45,0x3e, - 0x6,0x5c,0x33, 0x6,0x5c,0x32, 0x5,0x4c,0x62, 0x7,0x22,0x3b, - 0x5,0x54,0x2f, 0x7,0x2d,0x3a, 0xf,0x59,0x77, 0x5,0x61,0x50, - 0x5,0x6f,0x77, 0x4,0x21,0x4a, 0xf,0x21,0x3a, 0x5,0x21,0x65, - 0xf,0x21,0x4d, 0xf,0x21,0x5a, 0x6,0x22,0x6b, 0x6,0x22,0x6a, - 0x5,0x22,0x4d, 0xf,0x22,0x43, 0x5,0x23,0x6c, 0x4,0x23,0x73, - 0x5,0x25,0x68, 0x6,0x27,0x25, 0x5,0x23,0x6b, 0x5,0x23,0x6e, - 0x5,0x23,0x6d, 0x6,0x30,0x34, 0x5,0x25,0x69, 0x6,0x2a,0x6c, - 0x5,0x25,0x6b, 0xf,0x26,0x59, 0x6,0x30,0x35, 0x5,0x25,0x6a, - 0x5,0x28,0x71, 0x6,0x30,0x37, 0x6,0x30,0x38, 0x5,0x28,0x72, - 0x6,0x30,0x39, 0x5,0x2d,0x23, 0x6,0x36,0x6c, 0x6,0x36,0x6a, - 0x5,0x2d,0x24, 0x6,0x36,0x6b, 0x6,0x36,0x6d, 0xf,0x2f,0x22, - 0x6,0x3e,0x66, 0x5,0x31,0x72, 0x4,0x31,0x34, 0x5,0x31,0x74, - 0x6,0x47,0x76, 0x6,0x47,0x74, 0x6,0x47,0x75, 0x4,0x37,0x2a, - 0x6,0x47,0x77, 0xf,0x3a,0x51, 0x6,0x51,0x7b, 0x6,0x51,0x7d, - 0x6,0x51,0x7c, 0x5,0x48,0x26, 0x4,0x42,0x7a, 0x6,0x5c,0x34, - 0x5,0x45,0x40, 0x5,0x45,0x3f, 0x6,0x5c,0x35, 0x5,0x45,0x41, - 0x7,0x2d,0x3d, 0x7,0x22,0x3e, 0x7,0x22,0x3d, 0x7,0x22,0x3c, - 0x7,0x2d,0x3b, 0x5,0x54,0x30, 0x7,0x2d,0x3c, 0x7,0x2d,0x3e, - 0xf,0x54,0x38, 0x7,0x37,0x5d, 0x4,0x66,0x39, 0x4,0x68,0x67, - 0x5,0x79,0x26, 0x6,0x21,0x3e, 0x4,0x21,0x75, 0x4,0x21,0x74, - 0x6,0x22,0x6c, 0x6,0x24,0x4d, 0x4,0x22,0x5e, 0x5,0x22,0x4e, - 0x6,0x24,0x4e, 0x6,0x24,0x50, 0x6,0x24,0x51, 0x6,0x24,0x4f, - 0xf,0x22,0x44, 0x6,0x27,0x29, 0xf,0x23,0x74, 0x6,0x27,0x27, - 0x6,0x27,0x26, 0x6,0x27,0x28, 0x5,0x23,0x6f, 0x4,0x26,0x2c, - 0x4,0x26,0x2b, 0x6,0x2a,0x6d, 0x6,0x2a,0x6e, 0x5,0x25,0x6c, - 0x6,0x2a,0x6f, 0xf,0x26,0x5b, 0x5,0x25,0x6d, 0x4,0x28,0x77, - 0x6,0x30,0x3a, 0x6,0x30,0x3f, 0x4,0x28,0x7a, 0x4,0x28,0x76, - 0x5,0x28,0x75, 0x6,0x30,0x3e, 0x6,0x30,0x3d, 0x6,0x30,0x3c, - 0x6,0x30,0x3b, 0xf,0x2a,0x40, 0xf,0x2a,0x41, 0xf,0x2a,0x42, - 0xf,0x2a,0x43, 0xf,0x2a,0x44, 0xf,0x2a,0x3f, 0x6,0x30,0x40, - 0x5,0x28,0x74, 0x6,0x36,0x72, 0x4,0x2c,0x50, 0x6,0x36,0x6f, - 0x4,0x2c,0x4f, 0x6,0x3e,0x67, 0x6,0x36,0x70, 0x6,0x36,0x6e, - 0xf,0x2f,0x23, 0xf,0x2f,0x24, 0xf,0x2f,0x26, 0xf,0x2f,0x27, - 0xf,0x2f,0x28, 0x5,0x2d,0x26, 0x5,0x2d,0x27, 0x6,0x36,0x71, - 0x6,0x36,0x73, 0x5,0x2d,0x25, 0x6,0x36,0x74, 0x6,0x3e,0x6d, - 0x6,0x3e,0x69, 0x5,0x31,0x78, 0x5,0x31,0x7a, 0x5,0x31,0x77, - 0x5,0x31,0x79, 0x5,0x31,0x76, 0x5,0x31,0x7b, 0x6,0x3e,0x70, - 0x6,0x3e,0x6a, 0xf,0x34,0x31, 0xf,0x34,0x32, 0xf,0x34,0x35, - 0xf,0x34,0x36, 0xf,0x34,0x37, 0xf,0x34,0x38, 0xf,0x34,0x39, - 0xf,0x34,0x3a, 0x6,0x3e,0x68, 0x6,0x3e,0x6c, 0x6,0x3e,0x6f, - 0x6,0x3e,0x6e, 0xf,0x34,0x33, 0x6,0x48,0x23, 0x6,0x48,0x24, - 0x6,0x48,0x22, 0x4,0x37,0x2c, 0x6,0x47,0x7e, 0x6,0x47,0x7a, - 0x5,0x37,0x64, 0x4,0x37,0x2d, 0x5,0x37,0x65, 0x6,0x47,0x79, - 0x6,0x47,0x78, 0x6,0x48,0x25, 0x6,0x48,0x21, 0x6,0x48,0x26, - 0x6,0x47,0x7c, 0xf,0x3a,0x52, 0xf,0x3a,0x53, 0xf,0x3a,0x54, - 0x6,0x47,0x7d, 0x4,0x37,0x2e, 0x6,0x52,0x23, 0x5,0x3e,0x69, - 0x5,0x3e,0x67, 0x6,0x52,0x26, 0x5,0x3e,0x68, 0x6,0x52,0x25, - 0x6,0x52,0x29, 0x6,0x52,0x21, 0x6,0x51,0x7e, 0x6,0x52,0x27, - 0x6,0x52,0x24, 0xf,0x41,0x30, 0xf,0x41,0x31, 0xf,0x41,0x32, - 0x6,0x52,0x22, 0x6,0x52,0x28, 0x5,0x3e,0x66, 0x4,0x42,0x7c, - 0x4,0x42,0x7e, 0x4,0x42,0x7b, 0x6,0x5c,0x38, 0x6,0x5c,0x36, - 0x6,0x5c,0x37, 0xf,0x47,0x5d, 0x6,0x5c,0x39, 0x5,0x45,0x42, - 0x7,0x22,0x40, 0x5,0x4c,0x66, 0xf,0x4e,0x52, 0xf,0x4e,0x53, - 0xf,0x4e,0x54, 0xf,0x4e,0x55, 0xf,0x4e,0x56, 0x5,0x4c,0x65, - 0x5,0x4c,0x64, 0x7,0x2d,0x40, 0x7,0x2d,0x3f, 0x7,0x22,0x3f, - 0xf,0x54,0x39, 0x7,0x30,0x2d, 0x7,0x37,0x5e, 0x7,0x3f,0x43, - 0x4,0x5f,0x58, 0x5,0x67,0x62, 0xf,0x65,0x27, 0xf,0x65,0x28, - 0x5,0x6b,0x7d, 0xf,0x67,0x51, 0x5,0x73,0x3a, 0x5,0x21,0x30, - 0x6,0x21,0x6c, 0x6,0x22,0x6d, 0x6,0x24,0x54, 0x6,0x24,0x53, - 0x6,0x24,0x52, 0x5,0x22,0x4f, 0x4,0x23,0x75, 0x6,0x27,0x2a, - 0x4,0x26,0x2d, 0x6,0x2a,0x71, 0x6,0x2a,0x70, 0x5,0x28,0x77, - 0x6,0x30,0x42, 0x6,0x30,0x43, 0x5,0x28,0x76, 0x6,0x30,0x44, - 0x6,0x36,0x77, 0x6,0x36,0x78, 0x6,0x36,0x76, 0x6,0x35,0x28, - 0x6,0x36,0x75, 0x6,0x3e,0x71, 0x6,0x3e,0x72, 0x6,0x48,0x28, - 0x5,0x37,0x67, 0x6,0x48,0x29, 0x6,0x48,0x27, 0xf,0x3a,0x55, - 0x6,0x52,0x2a, 0x6,0x5c,0x3a, 0x7,0x22,0x41, 0x7,0x2d,0x41, - 0x7,0x22,0x42, 0x7,0x22,0x43, 0x7,0x53,0x30, 0x7,0x5e,0x5d, - 0x5,0x21,0x45, 0x5,0x21,0x46, 0x6,0x22,0x70, 0x6,0x22,0x6e, - 0x6,0x22,0x72, 0x6,0x22,0x71, 0xf,0x21,0x5c, 0xf,0x21,0x5d, - 0xf,0x21,0x5e, 0x6,0x22,0x73, 0x5,0x21,0x66, 0x6,0x22,0x6f, - 0x6,0x24,0x57, 0x6,0x24,0x55, 0x6,0x24,0x59, 0x3,0x23,0x59, - 0xf,0x22,0x45, 0xf,0x22,0x46, 0x6,0x24,0x56, 0x5,0x22,0x53, - 0x6,0x24,0x5a, 0x6,0x24,0x58, 0x5,0x22,0x52, 0x6,0x27,0x2e, - 0x5,0x23,0x71, 0x5,0x23,0x78, 0x5,0x23,0x79, 0x6,0x27,0x30, - 0x5,0x23,0x76, 0x5,0x23,0x75, 0x5,0x23,0x77, 0x5,0x23,0x72, - 0x5,0x23,0x73, 0x6,0x27,0x31, 0x6,0x27,0x2c, 0x6,0x27,0x32, - 0xf,0x23,0x76, 0xf,0x23,0x77, 0xf,0x23,0x79, 0xf,0x23,0x7a, - 0xf,0x23,0x7b, 0xf,0x23,0x7e, 0xf,0x24,0x21, 0x6,0x27,0x2d, - 0x6,0x27,0x2f, 0x4,0x23,0x7d, 0xf,0x23,0x7d, 0x6,0x27,0x34, - 0x6,0x27,0x33, 0x4,0x23,0x7c, 0x6,0x27,0x2b, 0x5,0x23,0x7a, - 0x4,0x26,0x30, 0x5,0x25,0x75, 0x6,0x2a,0x75, 0x4,0x26,0x33, - 0x6,0x2a,0x72, 0x5,0x25,0x73, 0x5,0x25,0x74, 0x6,0x2a,0x7a, - 0x5,0x25,0x71, 0x6,0x2a,0x77, 0x6,0x2a,0x7c, 0x5,0x25,0x6f, - 0x6,0x2a,0x79, 0x5,0x25,0x72, 0x5,0x25,0x70, 0x6,0x2a,0x74, - 0x6,0x27,0x35, 0xf,0x26,0x5c, 0xf,0x26,0x5d, 0xf,0x26,0x5e, - 0xf,0x26,0x5f, 0xf,0x26,0x60, 0xf,0x26,0x61, 0xf,0x26,0x63, - 0xf,0x26,0x64, 0xf,0x26,0x65, 0xf,0x26,0x66, 0xf,0x26,0x67, - 0xf,0x26,0x68, 0x6,0x2a,0x78, 0x6,0x2d,0x2b, 0x6,0x2a,0x73, - 0x5,0x25,0x76, 0x6,0x30,0x50, 0x6,0x30,0x4a, 0x5,0x28,0x78, - 0x6,0x30,0x4b, 0x5,0x28,0x79, 0x4,0x28,0x7e, 0x5,0x28,0x7a, - 0x6,0x30,0x46, 0x6,0x30,0x49, 0x6,0x30,0x52, 0xf,0x2a,0x45, - 0xf,0x2a,0x47, 0xf,0x2a,0x48, 0xf,0x2a,0x4b, 0xf,0x2a,0x4c, - 0xf,0x2a,0x4d, 0xf,0x2a,0x4e, 0xf,0x2a,0x4f, 0xf,0x2a,0x50, - 0xf,0x2a,0x51, 0x6,0x30,0x4d, 0x6,0x30,0x45, 0x6,0x30,0x47, - 0x6,0x30,0x51, 0x6,0x30,0x4f, 0x6,0x30,0x4c, 0xf,0x2a,0x4a, - 0xf,0x2a,0x46, 0x6,0x30,0x48, 0x5,0x28,0x7b, 0x4,0x28,0x7c, - 0x5,0x2d,0x2c, 0x5,0x2d,0x29, 0x4,0x2c,0x52, 0x4,0x2c,0x59, - 0x5,0x2d,0x2a, 0x6,0x37,0x21, 0x4,0x2c,0x58, 0x5,0x2d,0x34, - 0x5,0x2d,0x30, 0x5,0x2d,0x2b, 0x6,0x36,0x7d, 0x5,0x2d,0x31, - 0x5,0x2d,0x2d, 0x5,0x2d,0x2f, 0x6,0x37,0x24, 0x6,0x36,0x7e, - 0x4,0x2c,0x62, 0x6,0x36,0x79, 0x4,0x2c,0x63, 0x4,0x2c,0x56, - 0x6,0x37,0x25, 0x6,0x37,0x22, 0x6,0x37,0x23, 0x6,0x36,0x7b, - 0xf,0x2f,0x29, 0xf,0x2f,0x2a, 0xf,0x2f,0x2b, 0xf,0x2f,0x2c, - 0xf,0x2f,0x2d, 0xf,0x2f,0x2e, 0xf,0x2f,0x2f, 0xf,0x2f,0x31, - 0xf,0x2f,0x33, 0x5,0x2d,0x28, 0xf,0x2f,0x30, 0xf,0x2f,0x32, - 0x5,0x2d,0x33, 0x4,0x2c,0x5d, 0x5,0x2d,0x35, 0x5,0x2d,0x36, - 0x5,0x2d,0x32, 0x6,0x3b,0x4e, 0x4,0x31,0x3a, 0x6,0x3f,0x2b, - 0x6,0x3f,0x24, 0x6,0x3f,0x26, 0x4,0x31,0x3c, 0x4,0x31,0x3e, - 0x5,0x31,0x7e, 0x6,0x3e,0x79, 0x6,0x3f,0x22, 0x6,0x3e,0x7b, - 0x5,0x32,0x28, 0x4,0x31,0x38, 0x6,0x3f,0x27, 0x6,0x3f,0x2c, - 0x6,0x3f,0x29, 0x6,0x3e,0x74, 0x6,0x3f,0x2a, 0x4,0x31,0x40, - 0x4,0x31,0x3b, 0x5,0x31,0x7c, 0x5,0x32,0x26, 0x6,0x3e,0x73, - 0x4,0x31,0x36, 0x5,0x31,0x7d, 0x5,0x32,0x24, 0x6,0x3f,0x28, - 0x6,0x3f,0x23, 0xf,0x34,0x3b, 0xf,0x34,0x3c, 0xf,0x34,0x3d, - 0xf,0x34,0x3e, 0xf,0x34,0x40, 0xf,0x34,0x41, 0xf,0x34,0x42, - 0xf,0x34,0x43, 0xf,0x34,0x44, 0xf,0x34,0x46, 0xf,0x34,0x47, - 0xf,0x34,0x48, 0x6,0x3e,0x77, 0x6,0x32,0x2a, 0x6,0x3e,0x7d, - 0x6,0x3e,0x7c, 0x6,0x3e,0x7e, 0x6,0x3f,0x21, 0x6,0x3f,0x25, - 0x4,0x31,0x3f, 0x5,0x32,0x29, 0x5,0x32,0x21, 0x5,0x32,0x27, - 0x5,0x32,0x23, 0x5,0x32,0x22, 0x5,0x32,0x25, 0x5,0x32,0x2a, - 0x5,0x37,0x69, 0x6,0x48,0x33, 0x5,0x37,0x6e, 0x6,0x48,0x2a, - 0x6,0x48,0x34, 0x5,0x37,0x6f, 0x5,0x37,0x6c, 0x5,0x37,0x6b, - 0x4,0x37,0x30, 0x5,0x37,0x70, 0x5,0x37,0x6a, 0x5,0x37,0x71, - 0x5,0x37,0x72, 0x5,0x37,0x74, 0x6,0x48,0x2e, 0x6,0x3e,0x7a, - 0x4,0x37,0x31, 0x6,0x48,0x2f, 0x5,0x37,0x6d, 0x4,0x37,0x33, - 0x5,0x37,0x68, 0x5,0x37,0x73, 0xf,0x3a,0x56, 0xf,0x3a,0x58, - 0xf,0x3a,0x59, 0xf,0x3a,0x5a, 0xf,0x3a,0x5b, 0x6,0x48,0x2d, - 0x5,0x37,0x75, 0x6,0x48,0x32, 0x6,0x48,0x2c, 0x6,0x48,0x31, - 0x6,0x48,0x30, 0xf,0x3a,0x5c, 0x5,0x3e,0x70, 0x6,0x52,0x2d, - 0x5,0x3e,0x6c, 0x4,0x3c,0x7a, 0x5,0x3e,0x71, 0x6,0x52,0x2e, - 0x6,0x5c,0x3b, 0x4,0x3c,0x7d, 0x6,0x52,0x35, 0x5,0x3e,0x6a, - 0x5,0x3e,0x73, 0x6,0x52,0x2b, 0x5,0x3e,0x6f, 0x6,0x52,0x2c, - 0x6,0x52,0x39, 0x6,0x52,0x30, 0x6,0x52,0x38, 0x5,0x3e,0x6e, - 0x6,0x52,0x36, 0x6,0x5c,0x40, 0xf,0x41,0x37, 0x5,0x3e,0x72, - 0xf,0x41,0x33, 0xf,0x41,0x34, 0xf,0x41,0x36, 0xf,0x41,0x38, - 0xf,0x41,0x39, 0x6,0x52,0x3a, 0x6,0x52,0x32, 0x6,0x52,0x37, - 0x5,0x3e,0x6b, 0xf,0x41,0x35, 0x6,0x52,0x2f, 0x5,0x45,0x43, - 0x5,0x45,0x4b, 0x5,0x45,0x49, 0x6,0x5c,0x41, 0x6,0x5c,0x3c, - 0x4,0x43,0x2b, 0x4,0x43,0x26, 0x4,0x43,0x25, 0x5,0x45,0x44, - 0x5,0x45,0x48, 0x5,0x45,0x47, 0x5,0x45,0x4a, 0x5,0x45,0x4e, - 0x6,0x5c,0x3e, 0x6,0x5c,0x47, 0x5,0x45,0x4d, 0x5,0x45,0x45, - 0x5,0x45,0x46, 0x6,0x5c,0x42, 0x4,0x43,0x29, 0x6,0x5c,0x46, - 0x4,0x43,0x27, 0x4,0x43,0x23, 0x5,0x45,0x4c, 0x6,0x5c,0x45, - 0x6,0x5c,0x43, 0x6,0x5c,0x3f, 0x4,0x43,0x28, 0xf,0x47,0x5e, - 0xf,0x47,0x5f, 0xf,0x47,0x60, 0xf,0x47,0x61, 0x6,0x52,0x31, - 0x4,0x49,0x4e, 0x7,0x22,0x49, 0x4,0x49,0x52, 0x7,0x22,0x45, - 0x5,0x4c,0x69, 0x7,0x22,0x50, 0x7,0x22,0x4a, 0x5,0x4c,0x6e, - 0x5,0x4c,0x67, 0x7,0x22,0x47, 0x7,0x22,0x51, 0x5,0x4c,0x6f, - 0x7,0x22,0x4f, 0x7,0x22,0x4c, 0x7,0x22,0x4d, 0x5,0x4c,0x70, - 0x5,0x4c,0x6a, 0x5,0x4c,0x6d, 0x7,0x2d,0x44, 0x7,0x22,0x46, - 0xf,0x4e,0x57, 0xf,0x4e,0x58, 0xf,0x4e,0x59, 0xf,0x4e,0x5b, - 0xf,0x4e,0x5c, 0x7,0x22,0x44, 0x7,0x22,0x4b, 0x7,0x22,0x4e, - 0x5,0x4c,0x6b, 0x7,0x22,0x48, 0x4,0x49,0x51, 0x5,0x54,0x33, - 0x4,0x50,0x23, 0x7,0x2d,0x4a, 0x4,0x50,0x24, 0x5,0x54,0x35, - 0x7,0x2d,0x42, 0x5,0x54,0x38, 0x5,0x54,0x34, 0x5,0x54,0x31, - 0x7,0x2d,0x47, 0x7,0x2d,0x43, 0x5,0x5b,0x39, 0x5,0x54,0x32, - 0xf,0x54,0x3a, 0xf,0x54,0x3b, 0xf,0x54,0x3c, 0x7,0x2d,0x45, - 0x7,0x2d,0x49, 0x7,0x2d,0x48, 0x7,0x2d,0x4b, 0x7,0x2d,0x46, - 0x7,0x2d,0x4d, 0x5,0x54,0x37, 0x4,0x56,0x29, 0x5,0x5b,0x3b, - 0x5,0x61,0x55, 0x7,0x37,0x60, 0x5,0x5b,0x3f, 0x7,0x37,0x66, - 0x5,0x5b,0x3a, 0x7,0x37,0x62, 0x7,0x37,0x64, 0x7,0x37,0x61, - 0x5,0x5b,0x3d, 0x7,0x37,0x5f, 0x7,0x37,0x65, 0xf,0x59,0x79, - 0xf,0x59,0x7a, 0xf,0x59,0x7b, 0x4,0x56,0x2a, 0x7,0x37,0x63, - 0x7,0x37,0x67, 0x7,0x39,0x27, 0x5,0x5b,0x40, 0x7,0x46,0x5a, - 0x5,0x61,0x54, 0x7,0x3f,0x47, 0x4,0x5a,0x7e, 0x5,0x61,0x51, - 0x5,0x61,0x52, 0x7,0x3f,0x49, 0xf,0x5e,0x59, 0x5,0x61,0x53, - 0x7,0x3f,0x46, 0xf,0x5e,0x58, 0x7,0x3f,0x45, 0x7,0x3f,0x48, - 0x5,0x61,0x56, 0x5,0x61,0x57, 0x7,0x46,0x5c, 0x4,0x5f,0x5b, - 0x7,0x46,0x5e, 0x5,0x67,0x65, 0x4,0x5f,0x59, 0x7,0x46,0x5d, - 0x7,0x46,0x5f, 0x7,0x46,0x60, 0xf,0x62,0x30, 0xf,0x62,0x31, - 0xf,0x62,0x32, 0x7,0x46,0x61, 0x7,0x46,0x62, 0x7,0x46,0x5b, - 0x4,0x63,0x38, 0x7,0x4d,0x55, 0x4,0x63,0x37, 0x5,0x6b,0x7e, - 0x7,0x4d,0x57, 0xf,0x65,0x29, 0x7,0x4d,0x56, 0x5,0x5b,0x3e, - 0x5,0x6f,0x78, 0x5,0x6f,0x7a, 0x5,0x6f,0x79, 0x7,0x53,0x32, - 0x7,0x53,0x31, 0x5,0x73,0x3b, 0x4,0x68,0x69, 0x4,0x68,0x6a, - 0x7,0x57,0x67, 0x7,0x57,0x69, 0x7,0x57,0x68, 0x7,0x57,0x6a, - 0x5,0x73,0x3c, 0x7,0x5e,0x5e, 0x4,0x6b,0x6a, 0x4,0x6b,0x69, - 0x7,0x5e,0x60, 0x5,0x77,0x58, 0x7,0x5e,0x5f, 0x5,0x79,0x27, - 0xf,0x6c,0x26, 0x5,0x7a,0x28, 0x5,0x7a,0x66, 0x5,0x7b,0x3c, - 0x7,0x63,0x4f, 0x5,0x7c,0x34, 0x6,0x21,0x6d, 0x4,0x21,0x25, - 0x4,0x22,0x62, 0x5,0x22,0x54, 0x6,0x24,0x5b, 0x6,0x24,0x5c, - 0x5,0x22,0x55, 0x6,0x23,0x7e, 0x4,0x23,0x7e, 0x5,0x23,0x7b, - 0x6,0x2a,0x7d, 0xf,0x26,0x6a, 0xf,0x26,0x69, 0x6,0x30,0x55, - 0x6,0x30,0x54, 0x6,0x30,0x56, 0x6,0x30,0x53, 0x6,0x37,0x26, - 0x5,0x32,0x2b, 0x4,0x31,0x41, 0x6,0x3f,0x2d, 0x5,0x37,0x76, - 0x6,0x5c,0x48, 0x7,0x22,0x52, 0x5,0x54,0x39, 0xf,0x4e,0x5d, - 0xf,0x54,0x3d, 0x7,0x37,0x68, 0x7,0x3f,0x4a, 0x7,0x46,0x63, - 0x5,0x67,0x66, 0x7,0x5e,0x61, 0x7,0x65,0x35, 0x6,0x21,0x6f, - 0x6,0x21,0x71, 0x6,0x21,0x70, 0xf,0x21,0x3b, 0x5,0x21,0x68, - 0x5,0x21,0x67, 0x5,0x23,0x7c, 0x6,0x27,0x37, 0xf,0x26,0x6b, - 0x6,0x30,0x57, 0x6,0x37,0x28, 0xf,0x2f,0x34, 0x6,0x3f,0x2e, - 0xf,0x3a,0x5e, 0x7,0x22,0x53, 0x7,0x46,0x64, 0x6,0x22,0x74, - 0x5,0x22,0x56, 0x6,0x2a,0x7e, 0x6,0x30,0x59, 0x6,0x30,0x58, - 0x4,0x2c,0x65, 0x6,0x3f,0x2f, 0x5,0x35,0x5f, 0x5,0x32,0x2d, - 0x6,0x3f,0x30, 0x5,0x32,0x2c, 0x6,0x48,0x36, 0xf,0x3a,0x5f, - 0xf,0x3a,0x60, 0xf,0x3a,0x61, 0x7,0x22,0x54, 0x7,0x3f,0x4b, - 0x4,0x21,0x77, 0x6,0x22,0x75, 0x6,0x22,0x76, 0x5,0x22,0x59, - 0x5,0x22,0x58, 0x4,0x22,0x64, 0x5,0x22,0x5b, 0x6,0x24,0x61, - 0x6,0x24,0x60, 0x6,0x24,0x5e, 0xf,0x22,0x48, 0xf,0x22,0x4a, - 0x5,0x22,0x57, 0x6,0x24,0x5f, 0x5,0x22,0x5a, 0x6,0x27,0x41, - 0x6,0x27,0x3b, 0x5,0x24,0x22, 0x6,0x27,0x38, 0x5,0x23,0x7e, - 0x5,0x23,0x7d, 0x5,0x24,0x23, 0x6,0x27,0x40, 0x5,0x24,0x24, - 0x6,0x27,0x3c, 0x6,0x27,0x3f, 0x5,0x24,0x21, 0xf,0x24,0x24, - 0x6,0x27,0x39, 0x6,0x27,0x3a, 0x6,0x27,0x3d, 0x5,0x24,0x25, - 0x6,0x27,0x3e, 0x5,0x25,0x7b, 0x4,0x26,0x35, 0x5,0x25,0x79, - 0x5,0x25,0x7d, 0x5,0x25,0x7a, 0x5,0x25,0x7c, 0x5,0x26,0x21, - 0x6,0x2b,0x23, 0x5,0x25,0x7e, 0x5,0x26,0x22, 0x6,0x2b,0x22, - 0xf,0x26,0x6c, 0x5,0x26,0x23, 0x6,0x2b,0x21, 0x5,0x25,0x77, - 0x5,0x25,0x78, 0x5,0x28,0x7e, 0x6,0x30,0x62, 0x5,0x28,0x7d, - 0x5,0x29,0x22, 0x5,0x28,0x7c, 0x5,0x29,0x23, 0x6,0x30,0x5f, - 0x5,0x29,0x25, 0x5,0x29,0x24, 0x6,0x30,0x5b, 0x5,0x29,0x21, - 0x6,0x30,0x5a, 0x6,0x30,0x65, 0x6,0x30,0x67, 0xf,0x2a,0x53, - 0xf,0x2a,0x54, 0xf,0x2a,0x55, 0x4,0x29,0x26, 0x6,0x30,0x61, - 0x6,0x30,0x60, 0x6,0x30,0x5c, 0x6,0x30,0x5d, 0x6,0x30,0x66, - 0x6,0x30,0x64, 0x6,0x30,0x5e, 0x5,0x2d,0x38, 0x6,0x37,0x32, - 0x5,0x2d,0x37, 0x6,0x37,0x2e, 0x5,0x2d,0x39, 0x5,0x32,0x2e, - 0x6,0x37,0x2a, 0x4,0x2c,0x69, 0x4,0x2c,0x6a, 0x6,0x37,0x2f, - 0x5,0x2d,0x3a, 0x6,0x37,0x2d, 0x6,0x37,0x31, 0x6,0x37,0x30, - 0x4,0x2c,0x67, 0x6,0x37,0x33, 0x6,0x37,0x34, 0xf,0x2f,0x36, - 0xf,0x2f,0x35, 0x6,0x37,0x29, 0x6,0x37,0x2b, 0x6,0x3f,0x35, - 0x5,0x32,0x35, 0x4,0x31,0x46, 0x4,0x31,0x43, 0x4,0x31,0x44, - 0x5,0x32,0x33, 0x5,0x32,0x2f, 0x6,0x3f,0x3a, 0x5,0x32,0x30, - 0x5,0x32,0x34, 0x6,0x3f,0x3c, 0x5,0x32,0x31, 0x5,0x32,0x36, - 0x6,0x3f,0x36, 0x6,0x3f,0x3b, 0x6,0x3f,0x32, 0x5,0x32,0x32, - 0x6,0x3f,0x34, 0xf,0x34,0x49, 0xf,0x34,0x4a, 0xf,0x34,0x4b, - 0xf,0x34,0x4c, 0x6,0x3f,0x39, 0x6,0x3f,0x31, 0x6,0x3f,0x3d, - 0x6,0x3f,0x37, 0x6,0x3f,0x33, 0x6,0x48,0x39, 0x4,0x37,0x3e, - 0x6,0x48,0x3e, 0x5,0x37,0x79, 0x5,0x37,0x7a, 0x4,0x37,0x38, - 0x5,0x37,0x78, 0x6,0x48,0x3a, 0x4,0x37,0x37, 0x5,0x38,0x21, - 0x5,0x38,0x22, 0x6,0x3f,0x38, 0x6,0x48,0x40, 0x6,0x48,0x3d, - 0x6,0x48,0x3b, 0x5,0x37,0x7d, 0x6,0x48,0x38, 0xf,0x3a,0x62, - 0xf,0x3a,0x63, 0x6,0x48,0x3f, 0x5,0x37,0x7b, 0x5,0x37,0x77, - 0x6,0x48,0x41, 0x5,0x37,0x7e, 0xf,0x40,0x2b, 0x5,0x3e,0x78, - 0x4,0x3d,0x22, 0x5,0x45,0x52, 0x4,0x3d,0x25, 0x5,0x3e,0x75, - 0x5,0x3e,0x74, 0x4,0x3d,0x24, 0x5,0x3e,0x77, 0x5,0x3e,0x7a, - 0x6,0x52,0x3e, 0x6,0x52,0x3b, 0x6,0x52,0x3d, 0x6,0x5c,0x4b, - 0x5,0x3e,0x7b, 0x6,0x52,0x3c, 0x5,0x3e,0x76, 0x5,0x3e,0x79, - 0x6,0x5c,0x4c, 0x6,0x5c,0x4d, 0x5,0x45,0x58, 0x4,0x43,0x34, - 0x5,0x45,0x4f, 0x5,0x45,0x55, 0x6,0x5c,0x4a, 0x5,0x45,0x54, - 0x5,0x45,0x57, 0xf,0x47,0x62, 0x5,0x45,0x59, 0x5,0x45,0x50, - 0x5,0x45,0x56, 0x5,0x45,0x51, 0x7,0x22,0x57, 0x7,0x22,0x59, - 0x5,0x4c,0x74, 0x5,0x4c,0x73, 0x5,0x4c,0x75, 0x4,0x49,0x57, - 0x5,0x4c,0x76, 0x5,0x4c,0x78, 0x4,0x49,0x56, 0x7,0x22,0x56, - 0x7,0x22,0x55, 0x7,0x22,0x58, 0x5,0x4c,0x77, 0x5,0x4c,0x79, - 0x5,0x4c,0x72, 0x7,0x2d,0x50, 0x5,0x54,0x3e, 0x7,0x2d,0x52, - 0x7,0x2d,0x58, 0x5,0x54,0x3d, 0x4,0x50,0x28, 0x7,0x2d,0x57, - 0x7,0x2d,0x56, 0x5,0x54,0x3b, 0x7,0x2d,0x51, 0x5,0x54,0x3c, - 0x7,0x2d,0x54, 0x5,0x54,0x3f, 0x7,0x2d,0x4f, 0x4,0x50,0x2a, - 0x5,0x5b,0x41, 0x5,0x5b,0x42, 0x4,0x56,0x2c, 0x7,0x37,0x6b, - 0xf,0x59,0x7c, 0x7,0x37,0x69, 0x7,0x37,0x6a, 0x5,0x61,0x5a, - 0x5,0x61,0x59, 0x5,0x61,0x58, 0x7,0x46,0x66, 0x4,0x5f,0x5d, - 0x5,0x67,0x67, 0x4,0x5f,0x5c, 0x7,0x46,0x65, 0x7,0x46,0x67, - 0x5,0x67,0x68, 0xf,0x62,0x33, 0x7,0x4d,0x58, 0x5,0x6c,0x21, - 0x7,0x53,0x33, 0x7,0x57,0x6c, 0x5,0x6f,0x7b, 0x5,0x73,0x3d, - 0x7,0x57,0x6b, 0x7,0x5e,0x62, 0x7,0x5e,0x63, 0x5,0x77,0x59, - 0x7,0x63,0x50, 0x7,0x63,0x75, 0x4,0x21,0x78, 0x6,0x27,0x42, - 0x5,0x24,0x26, 0x4,0x24,0x26, 0x6,0x2b,0x24, 0xf,0x26,0x6d, - 0xf,0x26,0x6e, 0x6,0x30,0x69, 0x6,0x30,0x68, 0xf,0x2a,0x56, - 0x6,0x37,0x35, 0x5,0x32,0x37, 0x6,0x48,0x42, 0x5,0x38,0x23, - 0x6,0x52,0x3f, 0x5,0x45,0x5a, 0xf,0x47,0x64, 0x7,0x4d,0x59, - 0xf,0x6a,0x4e, 0x6,0x21,0x72, 0x6,0x21,0x73, 0x6,0x22,0x78, - 0x5,0x21,0x69, 0x6,0x22,0x77, 0xf,0x21,0x62, 0x4,0x22,0x67, - 0x4,0x24,0x27, 0x5,0x24,0x27, 0xf,0x24,0x26, 0x6,0x29,0x5e, - 0x6,0x2b,0x25, 0x5,0x26,0x24, 0x5,0x26,0x25, 0x6,0x30,0x6a, - 0x6,0x30,0x41, 0x4,0x2f,0x27, 0x6,0x37,0x36, 0x4,0x31,0x4a, - 0x6,0x48,0x43, 0x5,0x3e,0x7c, 0x5,0x45,0x5b, 0x7,0x22,0x5b, - 0xf,0x47,0x65, 0x6,0x5c,0x4e, 0xf,0x4e,0x5f, 0x7,0x22,0x5c, - 0x7,0x22,0x5d, 0x4,0x56,0x26, 0x7,0x57,0x6d, 0x4,0x22,0x68, - 0x5,0x22,0x5e, 0x6,0x24,0x64, 0x5,0x22,0x5d, 0x6,0x24,0x63, - 0x6,0x24,0x62, 0x6,0x24,0x66, 0x4,0x22,0x69, 0x6,0x24,0x65, - 0x6,0x27,0x45, 0x5,0x24,0x2a, 0x5,0x24,0x2c, 0x5,0x24,0x2b, - 0x5,0x24,0x28, 0x5,0x24,0x29, 0x6,0x27,0x44, 0x6,0x27,0x48, - 0x6,0x2b,0x28, 0x6,0x27,0x43, 0x6,0x27,0x46, 0x5,0x24,0x2d, - 0x5,0x26,0x2c, 0x5,0x26,0x28, 0x5,0x26,0x27, 0x5,0x26,0x2b, - 0x5,0x26,0x2a, 0x4,0x26,0x39, 0x6,0x2b,0x26, 0x6,0x2b,0x29, - 0x6,0x2b,0x27, 0x4,0x26,0x3e, 0x6,0x2b,0x2a, 0xf,0x26,0x70, - 0xf,0x26,0x71, 0xf,0x26,0x72, 0xf,0x26,0x73, 0xf,0x26,0x74, - 0x5,0x26,0x29, 0x5,0x26,0x2d, 0x6,0x2b,0x2b, 0x5,0x29,0x28, - 0x5,0x29,0x2a, 0x4,0x29,0x27, 0x6,0x30,0x6c, 0x5,0x29,0x29, - 0x6,0x30,0x6d, 0xf,0x2a,0x57, 0xf,0x2a,0x59, 0xf,0x2a,0x58, - 0xf,0x2a,0x5a, 0xf,0x2a,0x5b, 0xf,0x2a,0x5c, 0x6,0x30,0x6b, - 0x5,0x2d,0x3d, 0x5,0x2d,0x40, 0x5,0x2d,0x3e, 0x5,0x2d,0x41, - 0x5,0x2d,0x3b, 0x6,0x37,0x3a, 0x6,0x37,0x3b, 0x4,0x2c,0x6e, - 0x5,0x2d,0x42, 0x5,0x2d,0x3f, 0x6,0x37,0x3c, 0x5,0x2d,0x3c, - 0x6,0x37,0x39, 0xf,0x2f,0x37, 0x6,0x37,0x37, 0x6,0x37,0x38, - 0x5,0x2c,0x7b, 0x5,0x32,0x44, 0x5,0x32,0x3b, 0x5,0x32,0x39, - 0x4,0x31,0x4d, 0x6,0x3f,0x43, 0x5,0x32,0x42, 0x6,0x3f,0x48, - 0x6,0x3f,0x3e, 0x5,0x32,0x3d, 0x5,0x32,0x3c, 0x5,0x32,0x3f, - 0x5,0x32,0x3e, 0x6,0x3f,0x3f, 0x6,0x3f,0x40, 0x5,0x32,0x41, - 0x5,0x32,0x38, 0x4,0x31,0x50, 0x6,0x3f,0x44, 0x5,0x32,0x43, - 0x5,0x38,0x28, 0x6,0x3f,0x41, 0xf,0x34,0x4d, 0xf,0x34,0x4e, - 0xf,0x34,0x4f, 0xf,0x34,0x50, 0xf,0x34,0x51, 0xf,0x34,0x52, - 0xf,0x34,0x53, 0x6,0x3f,0x47, 0x6,0x46,0x3d, 0x5,0x32,0x3a, - 0x6,0x3f,0x42, 0x5,0x32,0x40, 0x6,0x48,0x4a, 0x4,0x31,0x4b, - 0x5,0x38,0x2b, 0x5,0x38,0x2c, 0x5,0x38,0x2d, 0x6,0x48,0x4b, - 0x6,0x48,0x4e, 0x5,0x38,0x27, 0x6,0x48,0x4d, 0x4,0x37,0x42, - 0x5,0x38,0x2a, 0x5,0x38,0x26, 0x6,0x48,0x49, 0x4,0x37,0x43, - 0x5,0x38,0x25, 0x6,0x52,0x44, 0x6,0x48,0x46, 0x6,0x48,0x47, - 0x5,0x38,0x24, 0xf,0x3a,0x65, 0xf,0x3a,0x67, 0xf,0x3a,0x68, - 0xf,0x3a,0x69, 0xf,0x3a,0x6a, 0x6,0x48,0x48, 0x6,0x48,0x4c, - 0xf,0x3a,0x66, 0x4,0x3d,0x2b, 0x5,0x3f,0x25, 0x4,0x3d,0x2c, - 0x6,0x52,0x41, 0x6,0x52,0x42, 0x5,0x3f,0x22, 0x5,0x3f,0x23, - 0x6,0x52,0x47, 0x5,0x3e,0x7d, 0x6,0x52,0x45, 0xf,0x41,0x3a, - 0xf,0x41,0x3b, 0xf,0x41,0x3c, 0x6,0x52,0x43, 0x6,0x52,0x48, - 0x5,0x3f,0x24, 0x5,0x3e,0x7e, 0x6,0x52,0x46, 0x4,0x43,0x38, - 0x5,0x45,0x5c, 0x4,0x43,0x37, 0x5,0x45,0x5e, 0x6,0x5c,0x50, - 0x5,0x45,0x60, 0x5,0x45,0x5f, 0x6,0x5c,0x4f, 0xf,0x47,0x67, - 0xf,0x47,0x68, 0xf,0x47,0x69, 0xf,0x47,0x6a, 0xf,0x47,0x6b, - 0xf,0x47,0x6c, 0xf,0x47,0x6d, 0xf,0x47,0x6e, 0xf,0x47,0x6f, - 0x6,0x5c,0x51, 0x6,0x60,0x31, 0xf,0x4a,0x54, 0x7,0x22,0x5e, - 0x4,0x49,0x5a, 0x4,0x37,0x3f, 0x4,0x49,0x58, 0x5,0x4c,0x7a, - 0x4,0x49,0x59, 0x7,0x2d,0x59, 0x7,0x22,0x62, 0x5,0x4c,0x7c, - 0x5,0x4c,0x7e, 0xf,0x4e,0x60, 0xf,0x4e,0x62, 0xf,0x4e,0x63, - 0x7,0x22,0x5f, 0x7,0x22,0x61, 0x7,0x22,0x63, 0x7,0x22,0x60, - 0x5,0x4c,0x7b, 0x5,0x54,0x41, 0x5,0x4c,0x7d, 0x5,0x54,0x43, - 0x5,0x54,0x40, 0x4,0x50,0x2d, 0x5,0x54,0x44, 0xf,0x54,0x3f, - 0xf,0x54,0x40, 0xf,0x54,0x41, 0xf,0x54,0x42, 0x7,0x37,0x6e, - 0x5,0x5b,0x44, 0x7,0x37,0x6c, 0x7,0x37,0x6d, 0xf,0x59,0x7e, - 0xf,0x5a,0x21, 0xf,0x5a,0x22, 0xf,0x5a,0x23, 0x5,0x5b,0x43, - 0x7,0x37,0x6f, 0x5,0x5b,0x45, 0x7,0x3f,0x51, 0x7,0x3f,0x4e, - 0x5,0x61,0x5b, 0xf,0x5e,0x5a, 0xf,0x5e,0x5c, 0x7,0x3f,0x4d, - 0x7,0x3f,0x4f, 0x7,0x3f,0x4c, 0xf,0x5e,0x5b, 0x7,0x3f,0x50, - 0x7,0x46,0x68, 0x7,0x46,0x69, 0x5,0x61,0x5c, 0x5,0x67,0x69, - 0xf,0x62,0x34, 0xf,0x62,0x35, 0xf,0x62,0x36, 0x5,0x67,0x6a, - 0x5,0x6c,0x24, 0x5,0x6c,0x23, 0x7,0x4d,0x5d, 0x7,0x4d,0x5b, - 0x5,0x6c,0x22, 0x7,0x4d,0x5a, 0x7,0x4d,0x5c, 0x7,0x4d,0x5e, - 0x4,0x66,0x3c, 0x7,0x53,0x34, 0x7,0x53,0x61, 0x5,0x73,0x3e, - 0x7,0x57,0x6e, 0x7,0x57,0x6f, 0x5,0x75,0x6a, 0xf,0x6a,0x4f, - 0x7,0x5b,0x4d, 0x7,0x5e,0x64, 0x7,0x62,0x36, 0x5,0x7a,0x68, - 0x5,0x7a,0x67, 0xf,0x6c,0x7b, 0xf,0x21,0x63, 0xf,0x22,0x4b, - 0xf,0x22,0x4c, 0x6,0x2b,0x2c, 0xf,0x24,0x27, 0x6,0x2b,0x2d, - 0x6,0x2b,0x2e, 0xf,0x2f,0x39, 0xf,0x2f,0x3b, 0xf,0x2f,0x3c, - 0xf,0x2f,0x3a, 0x5,0x32,0x45, 0xf,0x34,0x54, 0x6,0x48,0x4f, - 0xf,0x3a,0x6b, 0xf,0x3a,0x6c, 0x5,0x3f,0x26, 0x6,0x21,0x3f, - 0x6,0x21,0x75, 0x6,0x22,0x79, 0x6,0x27,0x49, 0x4,0x24,0x2a, - 0x6,0x30,0x70, 0x6,0x27,0x4d, 0xf,0x24,0x28, 0x6,0x27,0x4b, - 0x6,0x27,0x4e, 0x4,0x26,0x3f, 0x6,0x2b,0x30, 0x5,0x26,0x2e, - 0x6,0x2b,0x31, 0x3,0x2a,0x39, 0x4,0x27,0x41, 0x6,0x35,0x23, - 0x6,0x30,0x72, 0x6,0x30,0x73, 0x6,0x30,0x71, 0x6,0x30,0x6f, - 0x6,0x30,0x6e, 0x6,0x37,0x3f, 0x6,0x37,0x3e, 0x4,0x2c,0x6f, - 0x6,0x37,0x3d, 0x6,0x37,0x40, 0x6,0x3f,0x49, 0x6,0x3f,0x4a, - 0x6,0x3f,0x4b, 0x6,0x3f,0x4c, 0x6,0x3f,0x4d, 0x6,0x3f,0x4e, - 0x4,0x37,0x44, 0x6,0x48,0x50, 0x6,0x48,0x54, 0x6,0x48,0x53, - 0x6,0x48,0x51, 0xf,0x3a,0x6d, 0x6,0x48,0x52, 0x6,0x52,0x49, - 0x5,0x3f,0x27, 0xf,0x41,0x3d, 0x6,0x5c,0x53, 0x6,0x5c,0x54, - 0x6,0x5c,0x52, 0x5,0x45,0x61, 0x7,0x22,0x64, 0x7,0x2d,0x5a, - 0x7,0x2d,0x5c, 0x4,0x50,0x2f, 0x5,0x54,0x45, 0x7,0x37,0x71, - 0x7,0x37,0x70, 0x7,0x57,0x70, 0x7,0x63,0x51, 0x7,0x63,0x52, - 0x7,0x65,0x36, 0x6,0x21,0x40, 0x6,0x21,0x76, 0xf,0x22,0x4d, - 0x4,0x24,0x2b, 0x6,0x27,0x50, 0x6,0x27,0x4f, 0x5,0x24,0x2e, - 0x6,0x2b,0x32, 0x6,0x30,0x76, 0x6,0x30,0x75, 0x6,0x30,0x77, - 0x5,0x2e,0x68, 0x6,0x3f,0x4f, 0x5,0x38,0x2e, 0x6,0x52,0x4a, - 0x6,0x5c,0x55, 0x7,0x22,0x65, 0x7,0x2d,0x5d, 0x5,0x21,0x2a, - 0x5,0x21,0x47, 0x6,0x21,0x78, 0x6,0x21,0x7c, 0x6,0x21,0x77, - 0x6,0x21,0x7a, 0x6,0x21,0x7b, 0x6,0x23,0x21, 0x6,0x23,0x22, - 0x6,0x22,0x7c, 0x6,0x22,0x7a, 0x6,0x23,0x23, 0x6,0x22,0x7b, - 0x6,0x22,0x7d, 0x6,0x22,0x7e, 0x5,0x21,0x6a, 0x5,0x22,0x60, - 0x5,0x22,0x5f, 0x6,0x24,0x68, 0x6,0x24,0x69, 0x6,0x24,0x6a, - 0x6,0x24,0x6b, 0x5,0x24,0x2f, 0x6,0x27,0x51, 0x5,0x24,0x31, - 0x6,0x27,0x53, 0x5,0x24,0x30, 0xf,0x24,0x29, 0xf,0x24,0x2a, - 0xf,0x24,0x2b, 0xf,0x24,0x2c, 0x6,0x27,0x52, 0x5,0x24,0x32, - 0x5,0x26,0x2f, 0x6,0x2b,0x36, 0x6,0x2b,0x33, 0x6,0x2b,0x34, - 0x6,0x2b,0x37, 0x6,0x2b,0x35, 0x6,0x30,0x7e, 0x5,0x29,0x2c, - 0x6,0x30,0x7d, 0x4,0x29,0x30, 0x6,0x30,0x79, 0x5,0x29,0x2b, - 0x6,0x30,0x78, 0x5,0x2d,0x44, 0x5,0x2d,0x43, 0x5,0x2d,0x45, - 0x6,0x37,0x43, 0x6,0x37,0x41, 0x5,0x2d,0x46, 0xf,0x2f,0x3d, - 0x6,0x37,0x42, 0x5,0x32,0x4a, 0x5,0x32,0x48, 0x5,0x32,0x49, - 0x6,0x3f,0x56, 0x6,0x3f,0x50, 0x4,0x29,0x2f, 0x6,0x48,0x55, - 0x6,0x3f,0x52, 0x6,0x3f,0x53, 0x5,0x32,0x47, 0x6,0x3f,0x51, - 0xf,0x34,0x55, 0xf,0x34,0x56, 0xf,0x34,0x57, 0x6,0x3f,0x54, - 0x6,0x3f,0x57, 0x6,0x3f,0x55, 0x6,0x48,0x56, 0x6,0x48,0x59, - 0x5,0x38,0x2f, 0x5,0x38,0x32, 0x5,0x38,0x31, 0x6,0x48,0x5a, - 0x5,0x38,0x30, 0x6,0x48,0x58, 0x6,0x48,0x57, 0x5,0x3f,0x28, - 0x4,0x3d,0x31, 0x6,0x52,0x4b, 0xf,0x41,0x40, 0x6,0x52,0x4c, - 0x5,0x45,0x62, 0x6,0x5c,0x56, 0x5,0x45,0x63, 0x6,0x5c,0x57, - 0x6,0x5c,0x59, 0xf,0x47,0x70, 0x6,0x5c,0x5a, 0x6,0x5c,0x58, - 0x5,0x4d,0x21, 0x5,0x4d,0x22, 0x4,0x49,0x60, 0x7,0x22,0x66, - 0xf,0x4e,0x64, 0xf,0x4e,0x65, 0x7,0x22,0x67, 0x7,0x2d,0x5f, - 0x5,0x54,0x46, 0x4,0x50,0x30, 0x7,0x2d,0x60, 0x7,0x2d,0x5e, - 0x7,0x37,0x73, 0x7,0x37,0x72, 0x7,0x37,0x74, 0xf,0x5a,0x24, - 0x4,0x5b,0x22, 0x5,0x61,0x5e, 0x7,0x3f,0x52, 0xf,0x5e,0x5d, - 0x5,0x61,0x5d, 0x7,0x46,0x6d, 0x7,0x46,0x6b, 0x7,0x46,0x6f, - 0x7,0x46,0x6a, 0x7,0x46,0x6c, 0x5,0x67,0x6b, 0x5,0x6c,0x25, - 0x7,0x4d,0x5f, 0x4,0x5f,0x5f, 0x7,0x4d,0x61, 0x7,0x4d,0x60, - 0x5,0x6c,0x26, 0x5,0x6f,0x7c, 0x5,0x6f,0x7d, 0x4,0x66,0x3d, - 0x7,0x53,0x35, 0x5,0x73,0x3f, 0x7,0x60,0x3c, 0x7,0x60,0x6f, - 0x7,0x64,0x46, 0x6,0x24,0x6e, 0x6,0x24,0x6c, 0x6,0x24,0x6d, - 0x5,0x24,0x33, 0x6,0x31,0x21, 0x6,0x2b,0x38, 0x6,0x2d,0x32, - 0x6,0x31,0x24, 0x6,0x37,0x44, 0x6,0x31,0x22, 0x6,0x31,0x23, - 0x6,0x37,0x46, 0x6,0x37,0x45, 0x6,0x3f,0x58, 0x6,0x4f,0x21, - 0x5,0x38,0x33, 0x6,0x48,0x5c, 0x6,0x48,0x5b, 0x5,0x3f,0x2a, - 0x6,0x5c,0x5c, 0x6,0x5c,0x5f, 0x6,0x5c,0x5d, 0x6,0x5c,0x5b, - 0x6,0x5c,0x5e, 0x7,0x2d,0x61, 0x7,0x2d,0x4e, 0x4,0x50,0x32, - 0x7,0x37,0x75, 0x7,0x3f,0x55, 0x7,0x3f,0x54, 0x7,0x3f,0x53, - 0x7,0x46,0x72, 0x7,0x46,0x70, 0x7,0x46,0x71, 0x7,0x57,0x71, - 0x7,0x5b,0x4e, 0x7,0x62,0x37, 0x6,0x23,0x25, 0x6,0x23,0x24, - 0xf,0x21,0x64, 0x6,0x24,0x71, 0x6,0x24,0x6f, 0xf,0x24,0x2d, - 0x6,0x27,0x54, 0x5,0x26,0x30, 0x6,0x2b,0x3b, 0x6,0x2b,0x3a, - 0x6,0x37,0x47, 0x4,0x2c,0x74, 0x4,0x2c,0x73, 0x5,0x35,0x60, - 0x6,0x3f,0x5d, 0x6,0x3f,0x59, 0x6,0x3f,0x5a, 0xf,0x34,0x58, - 0xf,0x34,0x59, 0xf,0x34,0x5a, 0x6,0x3f,0x5c, 0x6,0x3f,0x5b, - 0x5,0x32,0x4b, 0x6,0x48,0x5d, 0x6,0x48,0x60, 0x6,0x48,0x5e, - 0x6,0x48,0x5f, 0xf,0x3a,0x6e, 0x6,0x52,0x51, 0x6,0x52,0x4e, - 0x6,0x52,0x50, 0x6,0x52,0x4f, 0xf,0x41,0x41, 0x4,0x43,0x3c, - 0x6,0x5c,0x60, 0x7,0x22,0x6b, 0x7,0x22,0x6c, 0x7,0x22,0x69, - 0x7,0x22,0x6a, 0x5,0x4d,0x23, 0x4,0x50,0x33, 0x5,0x54,0x47, - 0x7,0x2d,0x64, 0x7,0x37,0x76, 0x7,0x3f,0x56, 0xf,0x67,0x54, - 0x7,0x4d,0x62, 0x7,0x53,0x36, 0x5,0x73,0x41, 0xf,0x6c,0x27, - 0x6,0x21,0x7d, 0x5,0x21,0x6b, 0x4,0x21,0x79, 0x5,0x22,0x61, - 0x4,0x22,0x6e, 0x5,0x22,0x62, 0x5,0x24,0x34, 0x6,0x27,0x58, - 0x5,0x24,0x35, 0x6,0x27,0x57, 0x6,0x27,0x59, 0x6,0x27,0x5b, - 0x6,0x27,0x56, 0x5,0x24,0x36, 0x6,0x27,0x55, 0x6,0x27,0x5a, - 0x5,0x26,0x33, 0x6,0x2b,0x3d, 0x5,0x26,0x31, 0x6,0x2b,0x3c, - 0x5,0x26,0x32, 0x5,0x29,0x2d, 0x6,0x2b,0x3f, 0x4,0x29,0x33, - 0x6,0x31,0x26, 0x5,0x29,0x30, 0x5,0x29,0x2e, 0x6,0x31,0x28, - 0x5,0x29,0x32, 0x5,0x29,0x31, 0xf,0x2a,0x5e, 0x6,0x31,0x27, - 0x6,0x37,0x4d, 0x4,0x2c,0x79, 0x4,0x2c,0x77, 0x4,0x2c,0x7c, - 0x4,0x2c,0x75, 0x5,0x2d,0x4b, 0x5,0x2d,0x49, 0x4,0x2c,0x78, - 0x4,0x2c,0x7a, 0x4,0x2c,0x76, 0x4,0x2c,0x7b, 0x5,0x2d,0x4a, - 0x6,0x37,0x49, 0x6,0x37,0x4f, 0x6,0x37,0x4c, 0xf,0x2f,0x3f, - 0xf,0x2f,0x40, 0x6,0x37,0x4b, 0x6,0x37,0x50, 0x6,0x37,0x4e, - 0x6,0x37,0x4a, 0x4,0x31,0x56, 0x5,0x32,0x4f, 0x6,0x3f,0x68, - 0x6,0x3f,0x61, 0x5,0x32,0x4c, 0x5,0x32,0x51, 0x5,0x32,0x4e, - 0x6,0x3f,0x60, 0x5,0x32,0x50, 0x4,0x31,0x58, 0x6,0x3f,0x67, - 0x6,0x3f,0x65, 0x6,0x3f,0x62, 0x4,0x31,0x59, 0x6,0x3f,0x66, - 0x5,0x32,0x4d, 0x6,0x3f,0x64, 0x6,0x3f,0x5f, 0x6,0x3f,0x63, - 0x6,0x48,0x64, 0xf,0x34,0x5c, 0x4,0x37,0x46, 0x5,0x38,0x36, - 0x5,0x38,0x35, 0x5,0x38,0x3b, 0x5,0x38,0x3a, 0x5,0x38,0x37, - 0x4,0x37,0x47, 0x6,0x48,0x61, 0x5,0x38,0x34, 0x6,0x48,0x63, - 0x5,0x38,0x38, 0x4,0x31,0x55, 0xf,0x3a,0x70, 0x6,0x48,0x62, - 0xf,0x3a,0x6f, 0x5,0x38,0x39, 0x5,0x3f,0x2c, 0x5,0x3f,0x2b, - 0x6,0x52,0x52, 0x6,0x52,0x54, 0x6,0x52,0x57, 0x6,0x52,0x53, - 0xf,0x41,0x42, 0xf,0x41,0x43, 0xf,0x41,0x44, 0xf,0x41,0x45, - 0xf,0x41,0x46, 0xf,0x41,0x47, 0x6,0x52,0x55, 0x6,0x52,0x56, - 0x6,0x56,0x6c, 0x5,0x3f,0x2d, 0x4,0x3d,0x32, 0x6,0x5c,0x66, - 0x6,0x5c,0x63, 0x5,0x45,0x66, 0x6,0x5c,0x62, 0x4,0x43,0x3e, - 0x5,0x45,0x65, 0x4,0x43,0x41, 0x4,0x43,0x40, 0x6,0x5c,0x61, - 0x5,0x45,0x68, 0x5,0x45,0x6a, 0x5,0x45,0x64, 0x6,0x5c,0x68, - 0x6,0x5c,0x69, 0x6,0x5c,0x6a, 0x5,0x45,0x67, 0x6,0x5c,0x64, - 0xf,0x47,0x71, 0xf,0x47,0x72, 0xf,0x47,0x73, 0xf,0x47,0x74, - 0xf,0x47,0x75, 0x6,0x5c,0x65, 0x4,0x49,0x64, 0x5,0x4d,0x24, - 0x5,0x5b,0x48, 0x4,0x49,0x63, 0x4,0x49,0x62, 0x5,0x4d,0x25, - 0x7,0x22,0x6d, 0x7,0x22,0x6f, 0xf,0x4e,0x66, 0xf,0x4e,0x67, - 0x7,0x22,0x6e, 0x7,0x22,0x70, 0x7,0x2d,0x65, 0x5,0x54,0x48, - 0x5,0x54,0x4a, 0x7,0x2d,0x67, 0x7,0x2d,0x66, 0xf,0x54,0x44, - 0xf,0x54,0x45, 0x7,0x2d,0x68, 0x5,0x54,0x49, 0x5,0x5b,0x47, - 0x7,0x37,0x77, 0x4,0x56,0x30, 0xf,0x5c,0x5f, 0x5,0x5b,0x46, - 0x5,0x61,0x60, 0x7,0x3f,0x57, 0x5,0x61,0x5f, 0x7,0x3f,0x58, - 0xf,0x5e,0x5e, 0x5,0x61,0x61, 0x7,0x46,0x73, 0x7,0x46,0x75, - 0x7,0x46,0x76, 0x7,0x4d,0x22, 0x7,0x46,0x74, 0x5,0x6c,0x27, - 0x4,0x63,0x3e, 0x4,0x63,0x3d, 0xf,0x65,0x2a, 0x7,0x4d,0x63, - 0x7,0x53,0x37, 0x5,0x6f,0x7e, 0x7,0x57,0x72, 0x4,0x6a,0x47, - 0x5,0x79,0x28, 0x5,0x21,0x31, 0x6,0x22,0x21, 0x4,0x22,0x6f, - 0x5,0x21,0x6c, 0x6,0x23,0x26, 0xf,0x22,0x4f, 0x6,0x24,0x75, - 0x5,0x22,0x63, 0x6,0x27,0x60, 0x5,0x22,0x69, 0x6,0x27,0x5d, - 0x5,0x22,0x64, 0x6,0x24,0x73, 0x6,0x24,0x74, 0x5,0x22,0x65, - 0x6,0x27,0x5c, 0x6,0x27,0x5e, 0x6,0x27,0x61, 0x6,0x24,0x72, - 0x5,0x22,0x68, 0x5,0x24,0x37, 0x5,0x24,0x39, 0x4,0x26,0x45, - 0x6,0x27,0x66, 0x6,0x27,0x64, 0x6,0x2b,0x46, 0x6,0x27,0x67, - 0x6,0x2b,0x40, 0x6,0x27,0x62, 0x6,0x27,0x63, 0x6,0x2b,0x44, - 0x6,0x27,0x65, 0x6,0x27,0x68, 0x3,0x25,0x7e, 0x6,0x27,0x69, - 0x5,0x24,0x3a, 0xf,0x24,0x2e, 0xf,0x24,0x2f, 0xf,0x24,0x31, - 0xf,0x24,0x32, 0xf,0x24,0x34, 0xf,0x24,0x35, 0xf,0x24,0x36, - 0xf,0x26,0x77, 0xf,0x26,0x78, 0xf,0x26,0x79, 0xf,0x26,0x7a, - 0xf,0x26,0x7b, 0xf,0x26,0x7d, 0xf,0x26,0x7e, 0xf,0x27,0x21, - 0xf,0x26,0x7c, 0x6,0x2b,0x45, 0x6,0x2b,0x41, 0x6,0x2b,0x42, - 0x4,0x24,0x2d, 0xf,0x24,0x30, 0x4,0x26,0x44, 0x5,0x26,0x34, - 0x6,0x2b,0x43, 0x4,0x26,0x47, 0x6,0x2b,0x4c, 0x4,0x29,0x47, - 0x6,0x31,0x2f, 0x4,0x26,0x4b, 0x6,0x2b,0x4d, 0x6,0x31,0x29, - 0x5,0x26,0x35, 0x6,0x31,0x2c, 0x6,0x2b,0x4f, 0x4,0x26,0x4a, - 0x5,0x26,0x37, 0x4,0x29,0x38, 0x5,0x26,0x36, 0x4,0x29,0x43, - 0x6,0x2b,0x49, 0x5,0x26,0x38, 0x4,0x26,0x51, 0x4,0x29,0x44, - 0x6,0x31,0x2a, 0x6,0x31,0x2b, 0x6,0x2b,0x50, 0x6,0x2b,0x47, - 0x6,0x31,0x2d, 0xf,0x26,0x75, 0xf,0x27,0x22, 0xf,0x2a,0x70, - 0x4,0x29,0x46, 0x6,0x31,0x2e, 0x6,0x2b,0x48, 0x6,0x2b,0x4a, - 0x6,0x2b,0x4e, 0x6,0x2b,0x4b, 0xf,0x2a,0x64, 0xf,0x2a,0x5f, - 0xf,0x2a,0x62, 0xf,0x2a,0x65, 0xf,0x2a,0x68, 0xf,0x2a,0x6c, - 0x6,0x37,0x5b, 0x6,0x37,0x59, 0x6,0x31,0x32, 0x4,0x29,0x49, - 0x5,0x29,0x37, 0x4,0x29,0x42, 0x4,0x2d,0x29, 0x5,0x2d,0x4e, - 0x5,0x29,0x36, 0x6,0x31,0x39, 0x6,0x37,0x57, 0x6,0x31,0x33, - 0x4,0x2c,0x7d, 0x5,0x2d,0x4c, 0x6,0x31,0x35, 0x6,0x37,0x53, - 0x4,0x2d,0x21, 0x6,0x31,0x38, 0x5,0x29,0x34, 0x4,0x2c,0x7e, - 0x6,0x31,0x3a, 0x6,0x31,0x31, 0x6,0x31,0x37, 0x6,0x37,0x56, - 0x6,0x37,0x55, 0x4,0x2d,0x2a, 0x6,0x31,0x34, 0xf,0x2a,0x61, - 0xf,0x2a,0x66, 0xf,0x2a,0x69, 0xf,0x2a,0x6b, 0xf,0x2a,0x6d, - 0xf,0x2a,0x6e, 0xf,0x2a,0x6f, 0xf,0x2f,0x46, 0xf,0x2f,0x47, - 0xf,0x2f,0x48, 0xf,0x2f,0x4a, 0x6,0x37,0x52, 0xf,0x2f,0x44, - 0x6,0x37,0x58, 0xf,0x2a,0x63, 0x5,0x2d,0x4d, 0x6,0x37,0x51, - 0x5,0x2d,0x52, 0x5,0x2d,0x58, 0x5,0x2d,0x5b, 0x6,0x3f,0x6d, - 0x6,0x37,0x63, 0x6,0x3f,0x6f, 0x6,0x3f,0x6b, 0x6,0x3f,0x70, - 0x6,0x37,0x64, 0x5,0x2d,0x55, 0x6,0x3f,0x69, 0x4,0x2d,0x2e, - 0x6,0x3f,0x73, 0x5,0x2d,0x56, 0x4,0x2d,0x26, 0x5,0x32,0x5d, - 0x5,0x2d,0x51, 0x5,0x2d,0x5c, 0x6,0x37,0x62, 0x6,0x37,0x5d, - 0x5,0x32,0x54, 0x6,0x37,0x5f, 0x6,0x37,0x61, 0x6,0x3f,0x6c, - 0x6,0x37,0x60, 0x6,0x3f,0x71, 0x4,0x2d,0x27, 0x5,0x2d,0x50, - 0x6,0x37,0x5c, 0x5,0x32,0x53, 0x6,0x3f,0x72, 0x6,0x3f,0x74, - 0x5,0x32,0x52, 0x5,0x2d,0x4f, 0xf,0x2f,0x41, 0xf,0x2f,0x42, - 0xf,0x2f,0x43, 0xf,0x2f,0x49, 0xf,0x2f,0x4b, 0xf,0x34,0x5d, - 0xf,0x34,0x5f, 0xf,0x34,0x60, 0xf,0x34,0x64, 0xf,0x34,0x65, - 0xf,0x34,0x66, 0xf,0x34,0x67, 0xf,0x34,0x68, 0x6,0x3f,0x6a, - 0x6,0x37,0x65, 0x6,0x37,0x66, 0x5,0x2d,0x54, 0x5,0x2d,0x59, - 0x4,0x37,0x5a, 0x6,0x48,0x71, 0x4,0x37,0x4d, 0x5,0x32,0x59, - 0x6,0x3f,0x7c, 0x4,0x37,0x4b, 0x6,0x48,0x73, 0x6,0x48,0x69, - 0x5,0x38,0x55, 0x6,0x3f,0x7e, 0x6,0x48,0x72, 0x6,0x40,0x22, - 0x4,0x31,0x65, 0x5,0x2d,0x53, 0x4,0x31,0x6d, 0x6,0x3f,0x77, - 0x6,0x48,0x6e, 0x4,0x31,0x61, 0x5,0x38,0x3f, 0x5,0x32,0x57, - 0x5,0x32,0x5a, 0x4,0x37,0x4c, 0x6,0x3f,0x79, 0x5,0x32,0x5c, - 0x6,0x3f,0x76, 0x6,0x3f,0x6e, 0x4,0x31,0x69, 0x5,0x38,0x3c, - 0x6,0x48,0x70, 0x5,0x32,0x5e, 0x4,0x31,0x5f, 0x6,0x3f,0x7d, - 0x6,0x3f,0x7b, 0x6,0x3f,0x7a, 0x6,0x48,0x66, 0x6,0x48,0x6c, - 0x5,0x38,0x3e, 0x5,0x38,0x41, 0x6,0x48,0x74, 0x5,0x32,0x55, - 0x6,0x48,0x6b, 0x6,0x48,0x76, 0x6,0x48,0x67, 0x6,0x48,0x65, - 0x6,0x3f,0x75, 0x5,0x38,0x40, 0xf,0x34,0x61, 0xf,0x34,0x5e, - 0xf,0x34,0x62, 0xf,0x34,0x63, 0xf,0x34,0x69, 0xf,0x34,0x6a, - 0xf,0x34,0x6b, 0xf,0x34,0x6c, 0xf,0x34,0x6d, 0xf,0x34,0x6f, - 0xf,0x34,0x70, 0xf,0x34,0x72, 0xf,0x3a,0x72, 0xf,0x3a,0x73, - 0xf,0x3a,0x74, 0xf,0x3a,0x75, 0xf,0x3a,0x76, 0xf,0x3a,0x77, - 0xf,0x3a,0x79, 0xf,0x3a,0x7a, 0xf,0x3a,0x7c, 0xf,0x3a,0x7d, - 0xf,0x3a,0x7e, 0xf,0x3b,0x21, 0xf,0x3b,0x22, 0xf,0x3b,0x25, - 0xf,0x3b,0x29, 0xf,0x3b,0x2a, 0xf,0x3b,0x2c, 0xf,0x3b,0x2e, - 0x6,0x48,0x68, 0x5,0x32,0x56, 0x6,0x3f,0x78, 0xf,0x3b,0x27, - 0xf,0x34,0x6e, 0x6,0x49,0x24, 0x6,0x48,0x6d, 0x6,0x40,0x21, - 0xf,0x3b,0x24, 0x4,0x3d,0x3f, 0x5,0x38,0x4a, 0x5,0x38,0x4d, - 0x5,0x38,0x52, 0x4,0x37,0x4f, 0x4,0x37,0x57, 0x4,0x37,0x51, - 0x6,0x52,0x5d, 0x6,0x49,0x23, 0x5,0x38,0x50, 0x6,0x49,0x22, - 0x4,0x37,0x53, 0x5,0x38,0x56, 0x5,0x38,0x58, 0x5,0x38,0x43, - 0x6,0x52,0x61, 0x5,0x38,0x5a, 0x5,0x3f,0x33, 0x4,0x37,0x5b, - 0x5,0x38,0x53, 0x6,0x49,0x21, 0x5,0x38,0x46, 0x6,0x48,0x7b, - 0x5,0x3f,0x34, 0x5,0x38,0x44, 0x5,0x38,0x54, 0x5,0x32,0x5f, - 0x6,0x52,0x58, 0x5,0x38,0x47, 0x4,0x3d,0x36, 0x4,0x37,0x58, - 0x5,0x38,0x59, 0x5,0x38,0x51, 0x5,0x38,0x4b, 0x5,0x3f,0x31, - 0x6,0x48,0x77, 0x5,0x38,0x4f, 0x5,0x38,0x3d, 0x6,0x48,0x7e, - 0x6,0x52,0x62, 0x6,0x52,0x63, 0x6,0x52,0x5a, 0x6,0x48,0x7d, - 0x5,0x38,0x57, 0x6,0x52,0x5e, 0x6,0x52,0x60, 0x5,0x3f,0x2f, - 0x4,0x3d,0x40, 0x4,0x37,0x52, 0x5,0x38,0x49, 0x6,0x48,0x79, - 0xf,0x3a,0x71, 0xf,0x3a,0x7b, 0xf,0x3b,0x23, 0xf,0x3b,0x28, - 0xf,0x3b,0x2d, 0xf,0x41,0x48, 0xf,0x41,0x4e, 0xf,0x41,0x50, - 0xf,0x41,0x51, 0xf,0x41,0x52, 0x6,0x52,0x5c, 0x6,0x52,0x5f, - 0x6,0x52,0x5b, 0x6,0x48,0x7a, 0xf,0x3b,0x2b, 0x5,0x38,0x4e, - 0x5,0x3f,0x2e, 0x5,0x38,0x4c, 0xf,0x34,0x71, 0xf,0x47,0x7d, - 0x5,0x3f,0x3c, 0x5,0x3f,0x36, 0x5,0x3f,0x35, 0x6,0x52,0x6b, - 0x5,0x4d,0x26, 0x5,0x3f,0x45, 0x6,0x5c,0x6f, 0x5,0x3f,0x39, - 0x5,0x3f,0x3f, 0x5,0x3f,0x44, 0x6,0x5c,0x74, 0x6,0x52,0x6f, - 0x5,0x45,0x6b, 0x5,0x3f,0x3b, 0x6,0x5c,0x6c, 0x6,0x52,0x65, - 0x5,0x3f,0x38, 0x5,0x3f,0x3d, 0x5,0x3f,0x3a, 0x6,0x52,0x59, - 0x4,0x49,0x6e, 0x6,0x5c,0x76, 0x6,0x5c,0x79, 0x5,0x3f,0x43, - 0x6,0x52,0x68, 0x6,0x5c,0x72, 0x4,0x43,0x4f, 0x6,0x5c,0x78, - 0x6,0x5c,0x77, 0x5,0x3f,0x41, 0x5,0x45,0x6d, 0x5,0x3f,0x3e, - 0x6,0x5c,0x71, 0x6,0x5c,0x6e, 0x6,0x5c,0x6d, 0x5,0x3f,0x37, - 0x6,0x52,0x67, 0x6,0x52,0x6d, 0xf,0x41,0x4a, 0xf,0x41,0x4b, - 0xf,0x41,0x4c, 0xf,0x41,0x4d, 0xf,0x41,0x4f, 0xf,0x41,0x53, - 0xf,0x47,0x76, 0xf,0x47,0x77, 0xf,0x47,0x79, 0xf,0x47,0x7a, - 0xf,0x48,0x25, 0xf,0x48,0x28, 0x6,0x5c,0x70, 0x6,0x5c,0x75, - 0x5,0x3f,0x40, 0xf,0x41,0x49, 0x6,0x5c,0x73, 0x6,0x52,0x6e, - 0x6,0x5d,0x23, 0x6,0x5d,0x27, 0x4,0x43,0x45, 0x4,0x43,0x44, - 0x5,0x4d,0x27, 0x6,0x5c,0x7c, 0x5,0x45,0x77, 0x5,0x45,0x76, - 0x5,0x45,0x73, 0x4,0x3d,0x35, 0x6,0x5c,0x7b, 0x7,0x22,0x72, - 0x7,0x22,0x75, 0x5,0x4d,0x29, 0x5,0x45,0x70, 0x5,0x45,0x6f, - 0x5,0x45,0x6c, 0x5,0x45,0x71, 0x5,0x45,0x72, 0x5,0x45,0x79, - 0x6,0x5d,0x25, 0x6,0x5c,0x7d, 0x6,0x5c,0x7e, 0x6,0x52,0x6a, - 0x6,0x5d,0x22, 0x7,0x22,0x74, 0x6,0x5d,0x21, 0x7,0x22,0x77, - 0x5,0x45,0x74, 0x5,0x45,0x78, 0x7,0x2d,0x6a, 0x4,0x43,0x53, - 0xf,0x47,0x78, 0xf,0x47,0x7c, 0xf,0x47,0x7e, 0xf,0x48,0x21, - 0xf,0x48,0x23, 0xf,0x48,0x24, 0xf,0x48,0x26, 0xf,0x4e,0x69, - 0xf,0x4e,0x6a, 0xf,0x4e,0x6b, 0xf,0x4e,0x6c, 0xf,0x4e,0x6d, - 0xf,0x4e,0x6e, 0xf,0x4e,0x6f, 0xf,0x4e,0x73, 0xf,0x4e,0x75, - 0x7,0x22,0x73, 0x7,0x22,0x78, 0x6,0x5c,0x6b, 0x5,0x45,0x6e, - 0x6,0x5c,0x7a, 0x5,0x4d,0x28, 0x5,0x45,0x75, 0x7,0x2d,0x71, - 0x4,0x49,0x66, 0x4,0x43,0x52, 0x7,0x2d,0x6b, 0x4,0x49,0x71, - 0x7,0x2d,0x6d, 0x5,0x4d,0x2f, 0x7,0x2d,0x73, 0x4,0x49,0x6a, - 0x5,0x4d,0x2e, 0x7,0x22,0x79, 0x5,0x4d,0x33, 0x4,0x49,0x72, - 0x7,0x2d,0x75, 0x5,0x38,0x45, 0x5,0x4d,0x32, 0x5,0x4d,0x35, - 0x4,0x50,0x35, 0x4,0x50,0x36, 0x7,0x23,0x21, 0x5,0x4d,0x34, - 0x7,0x37,0x7c, 0x5,0x4d,0x30, 0x5,0x54,0x4e, 0x4,0x56,0x34, - 0x7,0x22,0x7a, 0x7,0x23,0x22, 0x5,0x54,0x54, 0x5,0x4d,0x2b, - 0x5,0x4d,0x2d, 0x5,0x54,0x4d, 0x5,0x4d,0x2c, 0x7,0x2e,0x22, - 0x7,0x2d,0x77, 0x7,0x2d,0x76, 0x7,0x22,0x7e, 0x4,0x50,0x3c, - 0x7,0x2d,0x70, 0x7,0x2d,0x6f, 0xf,0x48,0x22, 0xf,0x4e,0x70, - 0x7,0x2d,0x72, 0x5,0x4d,0x31, 0x7,0x2d,0x6c, 0xf,0x4e,0x71, - 0xf,0x4e,0x72, 0xf,0x4e,0x74, 0xf,0x4e,0x76, 0xf,0x54,0x47, - 0xf,0x54,0x48, 0xf,0x54,0x4a, 0xf,0x54,0x4b, 0xf,0x54,0x51, - 0xf,0x54,0x53, 0x7,0x2d,0x74, 0x5,0x54,0x4b, 0x7,0x30,0x50, - 0x7,0x22,0x7d, 0x7,0x25,0x71, 0x4,0x49,0x70, 0x5,0x54,0x4c, - 0x5,0x54,0x4f, 0xf,0x4e,0x68, 0xf,0x54,0x4f, 0x5,0x54,0x50, - 0x5,0x54,0x52, 0x7,0x2d,0x7b, 0x7,0x2d,0x78, 0x5,0x54,0x55, - 0x5,0x54,0x56, 0x5,0x54,0x51, 0x7,0x2d,0x7e, 0x7,0x2d,0x7c, - 0x7,0x2d,0x7d, 0x5,0x54,0x57, 0x4,0x50,0x3d, 0x5,0x5b,0x49, - 0x7,0x2e,0x21, 0x7,0x37,0x7b, 0x7,0x37,0x7d, 0x7,0x37,0x7a, - 0x7,0x38,0x21, 0x5,0x5b,0x4b, 0x7,0x2d,0x7a, 0x7,0x37,0x79, - 0x7,0x2d,0x6e, 0xf,0x54,0x4d, 0x5,0x54,0x53, 0x7,0x38,0x22, - 0xf,0x54,0x49, 0xf,0x54,0x4e, 0xf,0x54,0x52, 0xf,0x5a,0x25, - 0xf,0x5a,0x26, 0xf,0x5a,0x2e, 0xf,0x5a,0x27, 0x5,0x5b,0x4a, - 0x5,0x54,0x58, 0xf,0x5a,0x2a, 0xf,0x54,0x4c, 0x7,0x37,0x78, - 0x5,0x5b,0x51, 0x4,0x56,0x35, 0x4,0x56,0x31, 0x4,0x5b,0x2a, - 0x5,0x5b,0x4e, 0x5,0x61,0x64, 0x5,0x61,0x62, 0x7,0x3f,0x5b, - 0x7,0x38,0x26, 0x4,0x5b,0x26, 0x5,0x5b,0x4d, 0x5,0x5b,0x4f, - 0x7,0x38,0x23, 0x7,0x38,0x25, 0x5,0x5b,0x50, 0x5,0x61,0x63, - 0x7,0x3f,0x5a, 0x5,0x61,0x65, 0x7,0x3f,0x59, 0x7,0x22,0x76, - 0xf,0x5a,0x2b, 0xf,0x5a,0x2d, 0xf,0x5e,0x5f, 0xf,0x5e,0x60, - 0xf,0x5e,0x62, 0xf,0x5e,0x63, 0xf,0x5e,0x65, 0xf,0x5e,0x66, - 0xf,0x5e,0x67, 0x7,0x3f,0x5c, 0x7,0x38,0x24, 0xf,0x5a,0x28, - 0x4,0x5b,0x27, 0x5,0x5b,0x52, 0x7,0x46,0x79, 0x7,0x3f,0x5d, - 0x5,0x61,0x68, 0x7,0x4d,0x64, 0x4,0x5f,0x63, 0x4,0x5f,0x62, - 0x7,0x46,0x7c, 0x5,0x61,0x69, 0x7,0x4d,0x67, 0x4,0x5b,0x28, - 0x5,0x61,0x6a, 0x7,0x47,0x25, 0x7,0x47,0x21, 0x7,0x46,0x78, - 0x5,0x61,0x67, 0x7,0x46,0x7e, 0x5,0x67,0x6d, 0x7,0x46,0x7a, - 0x5,0x67,0x70, 0x7,0x46,0x77, 0x7,0x47,0x22, 0x7,0x3f,0x5e, - 0x7,0x46,0x7d, 0x5,0x67,0x6e, 0xf,0x5e,0x64, 0x5,0x67,0x6f, - 0x7,0x46,0x7b, 0x5,0x67,0x6c, 0xf,0x62,0x39, 0x7,0x47,0x2a, - 0x4,0x63,0x44, 0x7,0x47,0x27, 0x5,0x67,0x74, 0x7,0x47,0x24, - 0x5,0x6c,0x2a, 0x7,0x47,0x29, 0x7,0x47,0x26, 0x7,0x3f,0x5f, - 0x5,0x67,0x75, 0x4,0x63,0x3f, 0x5,0x67,0x71, 0x5,0x6c,0x28, - 0x7,0x47,0x2b, 0x7,0x47,0x23, 0x7,0x4d,0x65, 0x5,0x67,0x77, - 0xf,0x62,0x3a, 0xf,0x62,0x38, 0xf,0x62,0x3b, 0xf,0x62,0x3c, - 0xf,0x62,0x3d, 0x7,0x4d,0x66, 0x5,0x61,0x66, 0x5,0x67,0x72, - 0xf,0x65,0x2b, 0x5,0x67,0x76, 0x5,0x6c,0x29, 0x7,0x53,0x39, - 0x7,0x4d,0x6a, 0x4,0x63,0x41, 0x7,0x4d,0x69, 0x4,0x63,0x45, - 0x7,0x53,0x38, 0x7,0x4d,0x6b, 0xf,0x67,0x55, 0x7,0x5b,0x4f, - 0x4,0x66,0x3e, 0x5,0x6c,0x2b, 0x7,0x57,0x73, 0x7,0x57,0x74, - 0x7,0x57,0x75, 0x7,0x53,0x3b, 0x7,0x53,0x3a, 0x7,0x53,0x3c, - 0xf,0x69,0x42, 0x7,0x57,0x76, 0x7,0x5b,0x50, 0x7,0x5b,0x52, - 0x7,0x5b,0x53, 0x7,0x5b,0x51, 0xf,0x6a,0x50, 0xf,0x69,0x41, - 0xf,0x6a,0x51, 0xf,0x6a,0x52, 0x7,0x5b,0x55, 0x5,0x77,0x5a, - 0x7,0x5b,0x54, 0x7,0x5e,0x65, 0xf,0x6a,0x53, 0xf,0x6b,0x47, - 0xf,0x6b,0x48, 0x5,0x77,0x5b, 0x7,0x5e,0x66, 0x5,0x79,0x29, - 0x7,0x5e,0x67, 0xf,0x6c,0x28, 0xf,0x6c,0x29, 0x4,0x6d,0x72, - 0xf,0x6c,0x7c, 0xf,0x6c,0x7d, 0x5,0x7b,0x3e, 0x5,0x7b,0x60, - 0xf,0x6d,0x34, 0x5,0x22,0x6a, 0x4,0x22,0x72, 0x6,0x24,0x76, - 0x6,0x27,0x6b, 0x5,0x24,0x3b, 0x6,0x27,0x6a, 0x6,0x27,0x6d, - 0x6,0x27,0x6c, 0x4,0x26,0x52, 0x6,0x2b,0x51, 0x6,0x2b,0x58, - 0x6,0x2b,0x54, 0x6,0x2b,0x56, 0x4,0x26,0x53, 0x6,0x2b,0x55, - 0x6,0x2b,0x53, 0x6,0x2b,0x57, 0xf,0x27,0x24, 0xf,0x27,0x23, - 0x6,0x31,0x3d, 0x6,0x31,0x3b, 0x6,0x31,0x3e, 0x6,0x31,0x40, - 0x4,0x29,0x4c, 0x6,0x31,0x41, 0x6,0x31,0x3f, 0xf,0x2a,0x71, - 0xf,0x2a,0x72, 0x6,0x31,0x3c, 0x6,0x37,0x67, 0x5,0x2d,0x5f, - 0x6,0x37,0x69, 0x5,0x2d,0x5e, 0x6,0x37,0x68, 0x5,0x32,0x61, - 0x4,0x31,0x6f, 0x6,0x40,0x25, 0xf,0x34,0x73, 0xf,0x34,0x74, - 0x6,0x40,0x24, 0x5,0x32,0x60, 0x6,0x49,0x28, 0x6,0x49,0x27, - 0x6,0x49,0x25, 0x6,0x49,0x26, 0x4,0x37,0x5c, 0x6,0x49,0x29, - 0xf,0x3b,0x2f, 0x5,0x38,0x5b, 0x5,0x38,0x5c, 0xf,0x34,0x76, - 0x4,0x3d,0x44, 0x6,0x52,0x71, 0x5,0x3f,0x47, 0x5,0x3f,0x49, - 0xf,0x41,0x55, 0x4,0x3d,0x41, 0x6,0x52,0x70, 0x5,0x3f,0x48, - 0x6,0x5d,0x29, 0x6,0x5d,0x2a, 0x5,0x45,0x7a, 0x5,0x45,0x7c, - 0x5,0x45,0x7b, 0x7,0x23,0x24, 0x5,0x45,0x7d, 0xf,0x48,0x29, - 0xf,0x48,0x2a, 0x6,0x5d,0x28, 0x5,0x4d,0x36, 0x4,0x49,0x73, - 0x4,0x49,0x74, 0x7,0x23,0x28, 0x7,0x23,0x27, 0x7,0x23,0x25, - 0x6,0x5d,0x2b, 0x7,0x23,0x23, 0xf,0x4e,0x7b, 0x7,0x23,0x29, - 0x7,0x23,0x26, 0xf,0x4e,0x77, 0xf,0x4e,0x78, 0xf,0x4e,0x7a, - 0x7,0x23,0x2a, 0x7,0x2e,0x2a, 0x7,0x2e,0x25, 0x7,0x2e,0x24, - 0x7,0x2e,0x27, 0x7,0x2e,0x26, 0x7,0x2e,0x29, 0x7,0x2e,0x28, - 0x7,0x2c,0x63, 0x7,0x31,0x70, 0x7,0x2e,0x23, 0x7,0x38,0x27, - 0x5,0x5b,0x53, 0xf,0x5a,0x2f, 0x7,0x3f,0x60, 0x7,0x47,0x2d, - 0x4,0x5f,0x65, 0x7,0x47,0x2e, 0x5,0x6c,0x2c, 0xf,0x65,0x2c, - 0x5,0x70,0x21, 0x7,0x53,0x3d, 0x6,0x23,0x27, 0x5,0x21,0x6d, - 0x6,0x24,0x77, 0x6,0x24,0x78, 0x4,0x24,0x34, 0xf,0x24,0x37, - 0xf,0x24,0x38, 0x5,0x26,0x39, 0x6,0x2b,0x59, 0x6,0x2b,0x5a, - 0x6,0x31,0x43, 0x6,0x31,0x42, 0x6,0x31,0x44, 0x5,0x29,0x39, - 0xf,0x2a,0x73, 0xf,0x2a,0x74, 0xf,0x2a,0x75, 0x6,0x31,0x46, - 0x6,0x31,0x45, 0x5,0x29,0x38, 0x6,0x37,0x6c, 0x6,0x37,0x6a, - 0x6,0x37,0x6b, 0x5,0x2d,0x61, 0x5,0x2d,0x60, 0x6,0x40,0x26, - 0xf,0x34,0x77, 0x5,0x38,0x5d, 0x5,0x38,0x5f, 0x5,0x38,0x60, - 0x5,0x38,0x5e, 0x5,0x3f,0x4a, 0x5,0x45,0x7e, 0x4,0x43,0x55, - 0x7,0x23,0x2b, 0x5,0x5b,0x54, 0x5,0x70,0x22, 0x6,0x23,0x28, - 0x5,0x21,0x6e, 0x6,0x23,0x29, 0x6,0x23,0x2a, 0x5,0x21,0x6f, - 0x5,0x22,0x6c, 0x4,0x22,0x76, 0x6,0x24,0x79, 0x5,0x22,0x72, - 0x5,0x22,0x70, 0x5,0x22,0x6f, 0x5,0x22,0x6b, 0x5,0x22,0x6d, - 0xf,0x22,0x50, 0xf,0x22,0x52, 0x5,0x22,0x71, 0x4,0x24,0x37, - 0x6,0x27,0x73, 0x6,0x27,0x76, 0x6,0x27,0x75, 0x4,0x26,0x57, - 0x5,0x24,0x3d, 0x6,0x27,0x6f, 0x4,0x24,0x38, 0x4,0x24,0x35, - 0x6,0x27,0x77, 0x5,0x24,0x3e, 0x4,0x24,0x3b, 0x6,0x27,0x72, - 0x6,0x2b,0x5d, 0x6,0x27,0x71, 0x6,0x2b,0x65, 0x6,0x2b,0x5b, - 0x6,0x27,0x70, 0x5,0x24,0x3c, 0x6,0x2b,0x5c, 0x6,0x27,0x74, - 0xf,0x24,0x3b, 0xf,0x24,0x3c, 0xf,0x24,0x3d, 0xf,0x24,0x3e, - 0xf,0x24,0x3f, 0xf,0x24,0x40, 0xf,0x24,0x41, 0xf,0x24,0x43, - 0xf,0x24,0x44, 0xf,0x24,0x45, 0xf,0x24,0x3a, 0x6,0x2b,0x5e, - 0x6,0x2b,0x5f, 0x6,0x2b,0x61, 0x5,0x26,0x3b, 0x5,0x29,0x3a, - 0x6,0x2b,0x64, 0x6,0x31,0x48, 0x5,0x26,0x3d, 0x6,0x31,0x4a, - 0x5,0x26,0x3c, 0x6,0x31,0x49, 0x6,0x31,0x47, 0x6,0x2b,0x62, - 0xf,0x27,0x26, 0xf,0x27,0x27, 0xf,0x27,0x28, 0xf,0x27,0x29, - 0xf,0x27,0x2a, 0xf,0x27,0x2b, 0xf,0x27,0x2c, 0xf,0x27,0x2d, - 0xf,0x27,0x2f, 0xf,0x27,0x25, 0x5,0x26,0x3e, 0x6,0x31,0x52, - 0x6,0x31,0x54, 0x4,0x29,0x58, 0x4,0x29,0x4f, 0x4,0x29,0x50, - 0x6,0x31,0x53, 0x6,0x37,0x6d, 0x5,0x29,0x3f, 0x5,0x29,0x42, - 0x5,0x29,0x41, 0x6,0x31,0x4d, 0x5,0x29,0x47, 0x4,0x2d,0x34, - 0x4,0x29,0x5c, 0x5,0x29,0x3e, 0x5,0x29,0x3d, 0x5,0x2d,0x63, - 0x4,0x29,0x53, 0x6,0x37,0x6e, 0x5,0x29,0x48, 0x4,0x29,0x5a, - 0x6,0x31,0x50, 0x5,0x29,0x40, 0x5,0x29,0x44, 0x6,0x31,0x4e, - 0x6,0x31,0x56, 0x6,0x31,0x4b, 0x5,0x29,0x43, 0x5,0x29,0x3c, - 0x6,0x31,0x55, 0x6,0x31,0x51, 0xf,0x2a,0x76, 0xf,0x2a,0x77, - 0xf,0x2a,0x78, 0xf,0x2a,0x79, 0xf,0x2a,0x7a, 0xf,0x2a,0x7b, - 0xf,0x2a,0x7c, 0xf,0x2a,0x7d, 0xf,0x2a,0x7e, 0xf,0x2b,0x21, - 0xf,0x2b,0x23, 0xf,0x2b,0x24, 0xf,0x2b,0x25, 0xf,0x2b,0x26, - 0xf,0x2b,0x27, 0xf,0x2b,0x28, 0xf,0x2b,0x29, 0xf,0x2b,0x2a, - 0xf,0x2f,0x53, 0xf,0x2f,0x5c, 0xf,0x2f,0x61, 0x6,0x31,0x4c, - 0xf,0x2b,0x22, 0x5,0x29,0x3b, 0x5,0x2d,0x62, 0x5,0x2d,0x64, - 0x4,0x2d,0x3d, 0x6,0x37,0x75, 0x4,0x2d,0x38, 0x5,0x2d,0x6d, - 0x5,0x2d,0x6b, 0x4,0x2d,0x39, 0x4,0x29,0x57, 0x4,0x2d,0x35, - 0x5,0x2d,0x6a, 0x6,0x37,0x7b, 0x6,0x37,0x70, 0x6,0x37,0x7d, - 0x6,0x37,0x73, 0x5,0x2d,0x69, 0x6,0x37,0x72, 0x6,0x37,0x77, - 0x4,0x2d,0x36, 0x6,0x37,0x78, 0x5,0x2d,0x6c, 0x5,0x2d,0x65, - 0x4,0x2d,0x37, 0x5,0x2d,0x67, 0x5,0x2d,0x68, 0x4,0x2d,0x3a, - 0x6,0x37,0x7a, 0x5,0x2d,0x66, 0x6,0x31,0x57, 0x6,0x37,0x76, - 0x6,0x40,0x27, 0x6,0x37,0x79, 0x6,0x37,0x74, 0x5,0x29,0x46, - 0x6,0x37,0x7c, 0x6,0x37,0x7e, 0xf,0x2f,0x4c, 0xf,0x2f,0x4d, - 0xf,0x2f,0x4e, 0xf,0x2f,0x4f, 0xf,0x2f,0x50, 0xf,0x2f,0x51, - 0xf,0x2f,0x52, 0xf,0x2f,0x55, 0xf,0x2f,0x56, 0xf,0x2f,0x57, - 0xf,0x2f,0x5a, 0xf,0x2f,0x5b, 0xf,0x2f,0x5d, 0xf,0x2f,0x5e, - 0xf,0x2f,0x60, 0xf,0x2f,0x62, 0x6,0x40,0x28, 0xf,0x2f,0x58, - 0x6,0x37,0x6f, 0xf,0x2f,0x54, 0x4,0x31,0x72, 0x4,0x31,0x73, - 0x4,0x37,0x5e, 0x5,0x32,0x69, 0x6,0x40,0x31, 0x5,0x2d,0x6e, - 0x6,0x40,0x37, 0x5,0x32,0x63, 0x4,0x31,0x74, 0x4,0x32,0x22, - 0x4,0x31,0x76, 0x5,0x32,0x62, 0x4,0x31,0x7d, 0x5,0x38,0x61, - 0x5,0x32,0x64, 0x6,0x40,0x34, 0x5,0x32,0x67, 0x6,0x40,0x35, - 0x6,0x40,0x2c, 0x6,0x40,0x29, 0x4,0x32,0x24, 0x6,0x49,0x2f, - 0x6,0x49,0x2a, 0x6,0x40,0x2a, 0x5,0x32,0x65, 0x6,0x49,0x2d, - 0x4,0x37,0x5d, 0x6,0x40,0x2f, 0x6,0x49,0x2c, 0x6,0x49,0x2b, - 0x5,0x32,0x68, 0x6,0x40,0x2d, 0x6,0x49,0x2e, 0x6,0x40,0x33, - 0x6,0x40,0x30, 0x4,0x31,0x75, 0x6,0x40,0x2e, 0xf,0x34,0x78, - 0xf,0x34,0x79, 0xf,0x34,0x7a, 0xf,0x34,0x7b, 0xf,0x34,0x7c, - 0xf,0x34,0x7e, 0xf,0x35,0x22, 0xf,0x35,0x23, 0xf,0x35,0x24, - 0xf,0x35,0x25, 0xf,0x35,0x26, 0xf,0x35,0x27, 0xf,0x35,0x28, - 0xf,0x35,0x29, 0xf,0x35,0x2a, 0xf,0x35,0x2b, 0xf,0x35,0x2c, - 0xf,0x35,0x2e, 0xf,0x35,0x2d, 0xf,0x35,0x2f, 0xf,0x35,0x30, - 0xf,0x3b,0x31, 0xf,0x34,0x7d, 0x5,0x32,0x66, 0x4,0x32,0x26, - 0xf,0x3b,0x41, 0x5,0x38,0x6b, 0x6,0x49,0x34, 0x4,0x37,0x69, - 0x6,0x49,0x3b, 0x6,0x49,0x36, 0x5,0x38,0x6d, 0x6,0x49,0x41, - 0x5,0x38,0x74, 0x6,0x49,0x31, 0x4,0x3d,0x51, 0x4,0x37,0x67, - 0x5,0x38,0x62, 0x5,0x38,0x6a, 0x4,0x37,0x5f, 0x5,0x38,0x68, - 0x4,0x37,0x63, 0x5,0x38,0x69, 0x4,0x37,0x6a, 0x5,0x38,0x66, - 0x4,0x37,0x6d, 0x5,0x38,0x6f, 0x4,0x37,0x66, 0x6,0x49,0x42, - 0x6,0x49,0x43, 0x6,0x49,0x3a, 0x5,0x38,0x71, 0x6,0x49,0x33, - 0x6,0x49,0x46, 0x6,0x49,0x37, 0x5,0x38,0x70, 0x4,0x37,0x6c, - 0x6,0x49,0x47, 0x6,0x49,0x32, 0x5,0x38,0x6c, 0x5,0x38,0x6e, - 0x6,0x49,0x44, 0x5,0x38,0x64, 0x6,0x49,0x3c, 0x6,0x49,0x45, - 0x6,0x49,0x40, 0x6,0x49,0x4c, 0x6,0x49,0x3f, 0x6,0x49,0x4d, - 0x6,0x49,0x48, 0x6,0x49,0x39, 0x5,0x38,0x72, 0x6,0x49,0x3d, - 0x5,0x38,0x73, 0x5,0x38,0x67, 0x6,0x49,0x38, 0x6,0x49,0x4b, - 0x5,0x38,0x65, 0x6,0x52,0x73, 0xf,0x3b,0x30, 0xf,0x3b,0x32, - 0xf,0x3b,0x34, 0xf,0x3b,0x35, 0xf,0x3b,0x36, 0xf,0x3b,0x37, - 0xf,0x3b,0x38, 0xf,0x3b,0x39, 0xf,0x3b,0x3a, 0xf,0x3b,0x3b, - 0xf,0x3b,0x3c, 0xf,0x3b,0x3d, 0xf,0x3b,0x3f, 0xf,0x3b,0x40, - 0xf,0x3b,0x42, 0xf,0x3b,0x43, 0xf,0x3b,0x44, 0xf,0x3b,0x45, - 0xf,0x3b,0x46, 0xf,0x3b,0x48, 0xf,0x3b,0x49, 0xf,0x3b,0x4a, - 0x6,0x52,0x74, 0x6,0x49,0x3e, 0x6,0x49,0x49, 0x6,0x49,0x35, - 0x5,0x38,0x63, 0xf,0x3b,0x47, 0x5,0x3f,0x52, 0x6,0x52,0x7b, - 0x4,0x3d,0x4b, 0x4,0x3d,0x49, 0x5,0x3f,0x55, 0x4,0x3d,0x46, - 0x6,0x52,0x78, 0x4,0x3d,0x4d, 0x4,0x3d,0x53, 0x4,0x3d,0x47, - 0x4,0x3d,0x52, 0x6,0x52,0x7e, 0x5,0x3f,0x51, 0x5,0x46,0x21, - 0x5,0x3f,0x4b, 0x6,0x5d,0x2c, 0x6,0x53,0x25, 0x6,0x52,0x75, - 0x6,0x53,0x23, 0x6,0x53,0x22, 0x5,0x3f,0x4d, 0x5,0x3f,0x53, - 0x5,0x3f,0x4e, 0x6,0x52,0x79, 0x6,0x53,0x21, 0x5,0x3f,0x50, - 0x6,0x53,0x24, 0x6,0x52,0x7c, 0x5,0x3f,0x4c, 0x6,0x52,0x7a, - 0x5,0x3f,0x4f, 0xf,0x41,0x56, 0xf,0x41,0x57, 0xf,0x41,0x58, - 0xf,0x41,0x59, 0xf,0x41,0x5a, 0xf,0x41,0x5b, 0xf,0x41,0x5c, - 0xf,0x41,0x5d, 0xf,0x41,0x5e, 0xf,0x41,0x60, 0xf,0x41,0x61, - 0xf,0x41,0x63, 0xf,0x41,0x64, 0xf,0x41,0x65, 0xf,0x41,0x66, - 0xf,0x41,0x67, 0xf,0x41,0x69, 0xf,0x48,0x30, 0x6,0x52,0x77, - 0x6,0x52,0x7d, 0x6,0x52,0x76, 0xf,0x41,0x68, 0x5,0x3f,0x54, - 0x6,0x5d,0x36, 0x5,0x4d,0x39, 0x5,0x46,0x27, 0x5,0x46,0x2a, - 0x4,0x43,0x62, 0x4,0x43,0x5f, 0x6,0x5d,0x3c, 0x6,0x5d,0x3d, - 0x6,0x5d,0x2e, 0x4,0x43,0x57, 0x6,0x5d,0x3f, 0x5,0x46,0x26, - 0x4,0x43,0x63, 0x5,0x4d,0x38, 0x5,0x46,0x29, 0x6,0x5d,0x35, - 0x4,0x43,0x59, 0x7,0x23,0x2f, 0x4,0x43,0x5b, 0x4,0x43,0x5a, - 0x7,0x23,0x2e, 0x7,0x23,0x31, 0x5,0x46,0x24, 0x4,0x43,0x65, - 0x6,0x5d,0x39, 0x6,0x5d,0x3e, 0x6,0x5d,0x3a, 0x5,0x46,0x28, - 0x6,0x5d,0x37, 0x5,0x46,0x2b, 0x7,0x23,0x2c, 0x6,0x5d,0x3b, - 0x6,0x5d,0x33, 0x6,0x5d,0x31, 0x5,0x46,0x22, 0x4,0x43,0x60, - 0x6,0x5d,0x2f, 0x6,0x5d,0x34, 0xf,0x48,0x2b, 0xf,0x48,0x2c, - 0xf,0x48,0x2d, 0xf,0x48,0x2e, 0xf,0x48,0x2f, 0xf,0x48,0x33, - 0xf,0x48,0x34, 0xf,0x48,0x35, 0xf,0x48,0x37, 0xf,0x48,0x38, - 0xf,0x48,0x3a, 0xf,0x48,0x3b, 0xf,0x48,0x39, 0xf,0x48,0x3c, - 0xf,0x48,0x3d, 0xf,0x48,0x3e, 0xf,0x48,0x3f, 0xf,0x48,0x40, - 0xf,0x48,0x41, 0xf,0x48,0x42, 0xf,0x48,0x43, 0xf,0x48,0x44, - 0xf,0x48,0x45, 0xf,0x48,0x47, 0xf,0x48,0x48, 0xf,0x48,0x49, - 0xf,0x48,0x46, 0x6,0x5d,0x30, 0xf,0x48,0x36, 0x7,0x23,0x33, - 0x7,0x23,0x38, 0x5,0x4d,0x3c, 0x4,0x4a,0x25, 0x7,0x23,0x3d, - 0x7,0x23,0x37, 0x7,0x23,0x39, 0x4,0x49,0x7b, 0x4,0x49,0x78, - 0x5,0x4d,0x3d, 0x5,0x4d,0x3b, 0x7,0x23,0x45, 0x4,0x49,0x7d, - 0x7,0x2e,0x2f, 0x4,0x4a,0x21, 0x5,0x4d,0x41, 0x4,0x4a,0x26, - 0x4,0x49,0x7c, 0x5,0x54,0x59, 0x7,0x2e,0x3c, 0x7,0x23,0x35, - 0x7,0x23,0x34, 0x7,0x2e,0x2d, 0x7,0x2e,0x2b, 0x7,0x23,0x44, - 0x7,0x2e,0x2c, 0x7,0x23,0x3c, 0x5,0x4d,0x40, 0x7,0x2e,0x2e, - 0x5,0x4d,0x3f, 0x7,0x23,0x3b, 0x7,0x23,0x42, 0x7,0x23,0x43, - 0x7,0x23,0x3e, 0x7,0x23,0x41, 0x4,0x49,0x77, 0xf,0x48,0x31, - 0x7,0x23,0x32, 0x7,0x23,0x3f, 0x7,0x23,0x40, 0xf,0x4e,0x7c, - 0xf,0x4e,0x7d, 0xf,0x4e,0x7e, 0xf,0x4f,0x21, 0xf,0x4f,0x22, - 0xf,0x4f,0x23, 0xf,0x4f,0x26, 0xf,0x4f,0x27, 0xf,0x4f,0x28, - 0xf,0x4f,0x29, 0xf,0x4f,0x2a, 0xf,0x4f,0x2b, 0xf,0x4f,0x2d, - 0xf,0x4f,0x2e, 0xf,0x4f,0x2f, 0xf,0x4f,0x30, 0xf,0x54,0x5f, - 0xf,0x4f,0x24, 0x4,0x56,0x38, 0x4,0x50,0x41, 0x7,0x2e,0x35, - 0x7,0x2e,0x30, 0x5,0x54,0x5a, 0x5,0x54,0x5b, 0x7,0x2e,0x3e, - 0x7,0x2e,0x3a, 0x7,0x2e,0x32, 0x7,0x23,0x36, 0x4,0x50,0x3e, - 0x4,0x50,0x43, 0x4,0x50,0x40, 0x5,0x54,0x5d, 0x4,0x50,0x3f, - 0x7,0x2e,0x3d, 0x4,0x50,0x46, 0x7,0x2e,0x3b, 0x4,0x50,0x48, - 0x4,0x50,0x42, 0x4,0x50,0x47, 0x7,0x2e,0x39, 0x7,0x2e,0x31, - 0x7,0x2e,0x40, 0x7,0x38,0x29, 0x7,0x2e,0x38, 0x5,0x54,0x5f, - 0x5,0x54,0x5c, 0x7,0x2e,0x37, 0x7,0x38,0x28, 0x7,0x2e,0x33, - 0x7,0x2e,0x3f, 0xf,0x54,0x55, 0xf,0x54,0x56, 0xf,0x54,0x57, - 0xf,0x54,0x58, 0xf,0x54,0x59, 0xf,0x54,0x5a, 0xf,0x54,0x5b, - 0xf,0x54,0x5c, 0xf,0x54,0x5d, 0xf,0x54,0x5e, 0xf,0x54,0x60, - 0x7,0x2e,0x34, 0x7,0x2e,0x36, 0x4,0x50,0x44, 0xf,0x54,0x54, - 0x5,0x5b,0x56, 0x7,0x38,0x31, 0x5,0x5b,0x57, 0x7,0x38,0x36, - 0x4,0x56,0x3b, 0x7,0x38,0x2f, 0x7,0x38,0x35, 0x4,0x56,0x3a, - 0x7,0x38,0x34, 0x7,0x38,0x2c, 0x5,0x5b,0x58, 0x4,0x56,0x37, - 0x5,0x5b,0x55, 0x7,0x38,0x2a, 0x7,0x38,0x37, 0x7,0x38,0x30, - 0x7,0x38,0x2e, 0x7,0x38,0x32, 0x7,0x38,0x38, 0x7,0x38,0x2b, - 0x7,0x38,0x2d, 0xf,0x5a,0x30, 0xf,0x5a,0x31, 0xf,0x5a,0x32, - 0xf,0x5a,0x33, 0xf,0x5a,0x34, 0xf,0x5a,0x35, 0x7,0x38,0x33, - 0x4,0x5b,0x33, 0x4,0x5b,0x38, 0x5,0x61,0x6e, 0x5,0x61,0x6b, - 0x5,0x61,0x6c, 0x5,0x61,0x6d, 0x7,0x3f,0x68, 0x7,0x3f,0x67, - 0x4,0x5b,0x35, 0x4,0x5b,0x37, 0x5,0x67,0x7a, 0x5,0x6c,0x2d, - 0x7,0x3f,0x69, 0x7,0x3f,0x66, 0x4,0x5b,0x34, 0x7,0x3f,0x63, - 0x7,0x3f,0x65, 0x7,0x47,0x2f, 0x7,0x3f,0x61, 0x7,0x3f,0x64, - 0xf,0x5e,0x68, 0xf,0x5e,0x69, 0xf,0x5e,0x6a, 0xf,0x5e,0x6d, - 0xf,0x5e,0x6e, 0xf,0x5e,0x6f, 0xf,0x5e,0x71, 0xf,0x5e,0x72, - 0xf,0x5e,0x74, 0xf,0x5e,0x6c, 0xf,0x5e,0x6b, 0x4,0x5f,0x66, - 0x4,0x5f,0x68, 0x4,0x5f,0x67, 0x4,0x5f,0x69, 0x5,0x6c,0x2f, - 0x7,0x47,0x32, 0x7,0x47,0x34, 0x7,0x47,0x36, 0x5,0x67,0x7b, - 0x7,0x47,0x30, 0x5,0x6c,0x2e, 0x7,0x47,0x38, 0x4,0x5f,0x6b, - 0x7,0x47,0x35, 0x7,0x47,0x33, 0x7,0x47,0x31, 0x4,0x5f,0x6a, - 0x5,0x67,0x79, 0xf,0x62,0x3e, 0xf,0x62,0x3f, 0xf,0x62,0x40, - 0xf,0x62,0x41, 0xf,0x62,0x42, 0xf,0x62,0x43, 0xf,0x62,0x44, - 0xf,0x62,0x45, 0xf,0x62,0x46, 0xf,0x62,0x49, 0xf,0x65,0x2f, - 0x7,0x3f,0x6a, 0x7,0x47,0x37, 0xf,0x62,0x47, 0x5,0x6c,0x32, - 0x4,0x66,0x3f, 0x7,0x4d,0x6d, 0x4,0x63,0x48, 0x7,0x4d,0x6c, - 0x4,0x63,0x49, 0x7,0x4d,0x70, 0x4,0x63,0x4a, 0x7,0x4d,0x6e, - 0x5,0x6c,0x33, 0x5,0x6c,0x30, 0x5,0x6c,0x31, 0x7,0x4d,0x6f, - 0xf,0x65,0x2d, 0xf,0x65,0x2e, 0xf,0x65,0x30, 0x7,0x53,0x44, - 0x7,0x57,0x77, 0x4,0x66,0x41, 0x7,0x53,0x3f, 0x7,0x53,0x43, - 0x7,0x53,0x42, 0x4,0x66,0x42, 0x5,0x73,0x45, 0x7,0x53,0x41, - 0x7,0x53,0x40, 0xf,0x67,0x56, 0xf,0x67,0x57, 0xf,0x67,0x58, - 0xf,0x67,0x59, 0x7,0x57,0x78, 0x7,0x57,0x79, 0x5,0x73,0x44, - 0x5,0x73,0x47, 0x5,0x70,0x23, 0x7,0x57,0x7a, 0x5,0x73,0x42, - 0x5,0x73,0x46, 0x7,0x57,0x7c, 0x7,0x5b,0x57, 0x7,0x53,0x3e, - 0xf,0x69,0x43, 0xf,0x69,0x44, 0x5,0x73,0x43, 0x7,0x57,0x7b, - 0x7,0x5b,0x58, 0xf,0x6a,0x54, 0xf,0x6a,0x55, 0xf,0x6a,0x56, - 0x7,0x5e,0x6a, 0x5,0x77,0x5d, 0x7,0x5e,0x69, 0x4,0x6b,0x6b, - 0x7,0x5e,0x6b, 0x5,0x77,0x5c, 0x7,0x5e,0x68, 0xf,0x6b,0x49, - 0xf,0x6b,0x4a, 0xf,0x6b,0x4b, 0xf,0x6b,0x4c, 0x7,0x62,0x38, - 0xf,0x6c,0x2a, 0xf,0x6c,0x2b, 0x4,0x6d,0x73, 0x7,0x63,0x53, - 0xf,0x6c,0x61, 0x7,0x66,0x26, 0x4,0x22,0x77, 0x4,0x24,0x3d, - 0x4,0x26,0x5a, 0xf,0x27,0x31, 0xf,0x27,0x32, 0xf,0x27,0x33, - 0x6,0x31,0x58, 0x6,0x38,0x22, 0x5,0x2f,0x5c, 0x4,0x2d,0x3e, - 0x6,0x38,0x21, 0x6,0x36,0x44, 0x6,0x40,0x39, 0x6,0x40,0x38, - 0x6,0x49,0x4f, 0x6,0x49,0x4e, 0xf,0x3b,0x4c, 0xf,0x3b,0x4d, - 0x5,0x38,0x75, 0x6,0x53,0x26, 0xf,0x41,0x6a, 0x6,0x53,0x27, - 0x5,0x46,0x2d, 0x6,0x5d,0x40, 0x7,0x23,0x46, 0x7,0x23,0x47, - 0x5,0x54,0x60, 0xf,0x54,0x61, 0x7,0x38,0x3b, 0x7,0x38,0x3a, - 0x5,0x5b,0x59, 0x7,0x38,0x3c, 0x7,0x4d,0x71, 0x5,0x24,0x3f, - 0x6,0x27,0x79, 0x5,0x24,0x40, 0x6,0x27,0x7a, 0x5,0x24,0x41, - 0x6,0x27,0x78, 0x6,0x2b,0x68, 0x4,0x26,0x60, 0x5,0x26,0x42, - 0x5,0x26,0x40, 0x4,0x26,0x5d, 0x6,0x2b,0x6c, 0x6,0x2b,0x66, - 0x6,0x2b,0x6a, 0x6,0x2b,0x69, 0x6,0x2b,0x67, 0x5,0x26,0x3f, - 0x5,0x26,0x41, 0x4,0x26,0x5c, 0x4,0x29,0x60, 0x6,0x31,0x59, - 0x5,0x29,0x4c, 0x5,0x29,0x4b, 0x6,0x31,0x5c, 0x6,0x31,0x5e, - 0x6,0x31,0x5d, 0x5,0x29,0x49, 0x5,0x29,0x4a, 0x4,0x29,0x5e, - 0x4,0x29,0x5f, 0x6,0x31,0x5b, 0x6,0x38,0x23, 0x6,0x38,0x24, - 0x6,0x38,0x26, 0x5,0x2d,0x72, 0x6,0x31,0x5f, 0x4,0x2d,0x45, - 0x6,0x38,0x28, 0x5,0x2d,0x70, 0x6,0x38,0x2a, 0x5,0x2d,0x6f, - 0x5,0x2d,0x74, 0x6,0x38,0x25, 0x5,0x2d,0x73, 0x5,0x2d,0x71, - 0x6,0x38,0x29, 0x6,0x38,0x27, 0x4,0x2d,0x41, 0x5,0x32,0x6d, - 0x6,0x40,0x40, 0x4,0x32,0x2e, 0x6,0x40,0x3a, 0x6,0x40,0x3b, - 0x6,0x40,0x3d, 0x5,0x32,0x6f, 0x5,0x32,0x70, 0x4,0x32,0x30, - 0x6,0x40,0x3e, 0x6,0x40,0x3c, 0x5,0x32,0x6b, 0x6,0x40,0x41, - 0x4,0x32,0x31, 0x4,0x32,0x2a, 0x4,0x32,0x2d, 0x4,0x32,0x29, - 0x5,0x32,0x6e, 0xf,0x35,0x31, 0xf,0x35,0x32, 0xf,0x35,0x33, - 0xf,0x35,0x34, 0xf,0x35,0x35, 0x5,0x32,0x6a, 0x6,0x40,0x3f, - 0x6,0x49,0x58, 0x5,0x39,0x22, 0x6,0x49,0x55, 0x4,0x37,0x7a, - 0x4,0x37,0x7b, 0x6,0x49,0x59, 0x6,0x49,0x54, 0x6,0x49,0x5a, - 0x5,0x38,0x76, 0x5,0x38,0x7e, 0x5,0x39,0x21, 0x5,0x38,0x7d, - 0x5,0x38,0x77, 0x6,0x49,0x56, 0x5,0x38,0x7b, 0x6,0x49,0x51, - 0x6,0x49,0x50, 0x6,0x49,0x53, 0x4,0x37,0x72, 0x4,0x37,0x73, - 0x4,0x37,0x74, 0x5,0x38,0x78, 0x5,0x38,0x79, 0x5,0x32,0x6c, - 0x6,0x49,0x52, 0x6,0x53,0x2f, 0x5,0x38,0x7a, 0x5,0x3f,0x57, - 0x5,0x3f,0x5a, 0x5,0x3f,0x5c, 0x4,0x3d,0x57, 0x4,0x3d,0x5f, - 0x6,0x53,0x2b, 0x6,0x53,0x2e, 0x6,0x53,0x29, 0x5,0x3f,0x5b, - 0x6,0x53,0x30, 0x6,0x53,0x2d, 0x6,0x53,0x28, 0x4,0x3d,0x60, - 0x5,0x3f,0x56, 0x6,0x53,0x31, 0x5,0x3f,0x59, 0x4,0x3d,0x5e, - 0x4,0x3d,0x55, 0x4,0x3d,0x56, 0x4,0x3d,0x58, 0x5,0x3f,0x58, - 0x6,0x53,0x2a, 0xf,0x41,0x6b, 0x6,0x53,0x2c, 0x5,0x32,0x71, - 0x4,0x3d,0x5a, 0x6,0x55,0x60, 0x5,0x46,0x34, 0x6,0x5d,0x49, - 0x5,0x46,0x32, 0x6,0x5d,0x41, 0x4,0x43,0x68, 0x5,0x46,0x31, - 0x6,0x5d,0x42, 0x5,0x46,0x2f, 0x6,0x5d,0x46, 0x5,0x46,0x37, - 0x5,0x46,0x35, 0x6,0x5d,0x47, 0x6,0x5d,0x45, 0x6,0x5d,0x44, - 0x6,0x5d,0x48, 0x6,0x5d,0x43, 0x6,0x5d,0x4a, 0x5,0x46,0x33, - 0x4,0x43,0x67, 0x5,0x46,0x36, 0x6,0x5d,0x4b, 0x5,0x48,0x25, - 0x5,0x4d,0x42, 0x5,0x4d,0x47, 0x4,0x4a,0x2c, 0x7,0x23,0x4e, - 0x7,0x23,0x49, 0x7,0x23,0x48, 0x5,0x4d,0x46, 0x7,0x23,0x52, - 0x7,0x23,0x4f, 0x7,0x23,0x4d, 0x5,0x4d,0x45, 0x7,0x23,0x50, - 0x5,0x4d,0x43, 0x5,0x4d,0x44, 0xf,0x4f,0x31, 0x7,0x23,0x4b, - 0x7,0x23,0x4c, 0x7,0x23,0x4a, 0x4,0x50,0x4b, 0x7,0x2e,0x42, - 0x7,0x2e,0x46, 0x7,0x2e,0x48, 0xf,0x54,0x62, 0x5,0x54,0x61, - 0x7,0x2e,0x4b, 0x7,0x2e,0x47, 0x7,0x2e,0x49, 0x7,0x2e,0x41, - 0x7,0x2e,0x45, 0x7,0x2e,0x4c, 0x5,0x54,0x63, 0x7,0x2e,0x4a, - 0x4,0x50,0x4a, 0x5,0x54,0x64, 0x5,0x54,0x65, 0x5,0x54,0x66, - 0xf,0x54,0x63, 0x7,0x2e,0x44, 0x5,0x54,0x62, 0x7,0x23,0x51, - 0x5,0x54,0x67, 0x7,0x38,0x3e, 0x7,0x38,0x3d, 0x5,0x5b,0x5a, - 0x5,0x5b,0x5e, 0x5,0x5b,0x5d, 0x4,0x56,0x3c, 0x4,0x56,0x3d, - 0x5,0x5b,0x5b, 0xf,0x5a,0x37, 0xf,0x5a,0x38, 0x7,0x38,0x3f, - 0x5,0x5b,0x5c, 0x5,0x61,0x70, 0x7,0x3f,0x6c, 0x5,0x61,0x6f, - 0x4,0x5b,0x3b, 0x7,0x3f,0x6d, 0x7,0x3f,0x6e, 0x4,0x5b,0x39, - 0x7,0x3f,0x6b, 0x5,0x68,0x21, 0x5,0x67,0x7e, 0x5,0x67,0x7c, - 0x5,0x67,0x7d, 0xf,0x62,0x4a, 0x5,0x6c,0x34, 0x4,0x63,0x4d, - 0x5,0x6c,0x35, 0x7,0x4d,0x72, 0x4,0x63,0x4b, 0x7,0x4d,0x75, - 0x7,0x4d,0x74, 0x5,0x6c,0x36, 0x7,0x4d,0x76, 0x7,0x4d,0x77, - 0x4,0x66,0x44, 0x5,0x70,0x25, 0x5,0x70,0x26, 0x5,0x73,0x48, - 0xf,0x69,0x45, 0x7,0x5b,0x59, 0x5,0x75,0x6b, 0x4,0x6a,0x4a, - 0x7,0x5b,0x5a, 0x4,0x6c,0x6f, 0xf,0x6c,0x62, 0xf,0x22,0x53, - 0xf,0x24,0x46, 0x6,0x2b,0x6d, 0xf,0x2b,0x2d, 0xf,0x2b,0x2e, - 0xf,0x2b,0x2f, 0x6,0x38,0x2d, 0x6,0x38,0x2e, 0xf,0x2f,0x65, - 0x6,0x40,0x42, 0x6,0x40,0x44, 0xf,0x35,0x37, 0xf,0x35,0x38, - 0x6,0x40,0x43, 0xf,0x3b,0x4e, 0x5,0x3f,0x5d, 0xf,0x41,0x6c, - 0x6,0x53,0x32, 0xf,0x35,0x36, 0x5,0x4d,0x48, 0x7,0x23,0x54, - 0x7,0x23,0x53, 0x5,0x4d,0x49, 0xf,0x4f,0x33, 0xf,0x4f,0x34, - 0x5,0x4d,0x4a, 0x7,0x2e,0x4d, 0xf,0x5a,0x39, 0xf,0x5e,0x75, - 0xf,0x62,0x4b, 0xf,0x67,0x5a, 0x7,0x5b,0x5b, 0x6,0x22,0x22, - 0xf,0x27,0x34, 0x6,0x31,0x60, 0x4,0x2d,0x48, 0x5,0x2d,0x76, - 0x5,0x2d,0x75, 0x6,0x38,0x2f, 0x5,0x32,0x72, 0xf,0x35,0x39, - 0x6,0x40,0x46, 0x6,0x40,0x45, 0x6,0x49,0x5d, 0xf,0x40,0x32, - 0x6,0x49,0x5b, 0x6,0x49,0x5c, 0x4,0x3d,0x61, 0x6,0x5d,0x4c, - 0x5,0x3f,0x5e, 0xf,0x41,0x6d, 0x4,0x43,0x6a, 0x4,0x4a,0x2d, - 0x7,0x23,0x55, 0x7,0x38,0x40, 0x4,0x5f,0x6c, 0x6,0x22,0x23, - 0xf,0x24,0x47, 0x6,0x2b,0x6f, 0x6,0x2b,0x6e, 0x6,0x31,0x61, - 0xf,0x2f,0x66, 0x4,0x32,0x32, 0x6,0x40,0x48, 0x6,0x40,0x47, - 0x6,0x49,0x60, 0x6,0x49,0x64, 0x6,0x49,0x63, 0x5,0x39,0x23, - 0x6,0x49,0x66, 0x6,0x49,0x5f, 0x6,0x49,0x5e, 0x6,0x49,0x62, - 0x4,0x37,0x7c, 0x6,0x4c,0x3e, 0x6,0x49,0x65, 0x4,0x3d,0x62, - 0x6,0x53,0x36, 0x6,0x53,0x34, 0x6,0x53,0x37, 0x5,0x3f,0x5f, - 0x6,0x5d,0x4f, 0x6,0x5d,0x4e, 0x6,0x5d,0x50, 0x3,0x47,0x31, - 0x4,0x4a,0x2f, 0x6,0x5d,0x4d, 0x5,0x4d,0x4c, 0x5,0x4d,0x4d, - 0x7,0x2e,0x51, 0x7,0x2e,0x50, 0x7,0x2e,0x4f, 0x7,0x2e,0x52, - 0x7,0x2e,0x4e, 0x4,0x50,0x4d, 0x7,0x38,0x41, 0x7,0x38,0x42, - 0x7,0x3f,0x6f, 0x4,0x5b,0x3c, 0x7,0x3f,0x70, 0x7,0x3f,0x71, - 0x7,0x47,0x39, 0xf,0x62,0x4c, 0x7,0x4d,0x78, 0x7,0x57,0x7d, - 0x4,0x24,0x42, 0x6,0x27,0x7b, 0xf,0x27,0x35, 0xf,0x27,0x36, - 0x5,0x29,0x4d, 0x6,0x31,0x64, 0x6,0x31,0x63, 0xf,0x2b,0x30, - 0x6,0x31,0x62, 0x4,0x2d,0x4a, 0x5,0x2d,0x77, 0x6,0x38,0x31, - 0x6,0x38,0x33, 0x6,0x38,0x35, 0xf,0x2f,0x67, 0xf,0x2f,0x68, - 0xf,0x2f,0x69, 0xf,0x2f,0x6a, 0x6,0x38,0x32, 0x4,0x32,0x33, - 0x4,0x32,0x35, 0x6,0x40,0x4a, 0xf,0x35,0x3a, 0xf,0x35,0x3b, - 0x6,0x40,0x49, 0x6,0x49,0x69, 0x5,0x39,0x25, 0x5,0x39,0x24, - 0x6,0x49,0x68, 0x6,0x49,0x6a, 0x6,0x49,0x67, 0xf,0x3b,0x4f, - 0xf,0x3b,0x50, 0x6,0x53,0x38, 0x5,0x3f,0x60, 0x6,0x53,0x39, - 0xf,0x41,0x6e, 0xf,0x41,0x6f, 0x5,0x46,0x38, 0x5,0x46,0x3a, - 0x6,0x5d,0x52, 0x5,0x46,0x39, 0x7,0x23,0x56, 0xf,0x4f,0x35, - 0x7,0x2e,0x53, 0x5,0x54,0x68, 0x7,0x38,0x43, 0x5,0x5b,0x5f, - 0x7,0x3f,0x73, 0x5,0x61,0x71, 0x4,0x5b,0x3d, 0x7,0x3f,0x74, - 0x7,0x3f,0x72, 0x7,0x47,0x3a, 0x7,0x53,0x45, 0x4,0x68,0x6d, - 0x7,0x57,0x7e, 0x7,0x5e,0x6c, 0x7,0x60,0x70, 0x5,0x24,0x42, - 0x5,0x29,0x4e, 0x5,0x2d,0x79, 0x5,0x2d,0x78, 0x4,0x37,0x7d, - 0x6,0x49,0x6b, 0x6,0x53,0x3a, 0x6,0x53,0x3b, 0x4,0x3d,0x66, - 0xf,0x4f,0x36, 0x6,0x23,0x2c, 0x6,0x23,0x2b, 0x6,0x24,0x7b, - 0x5,0x22,0x73, 0x6,0x24,0x7a, 0x6,0x24,0x7c, 0xf,0x22,0x54, - 0xf,0x24,0x4b, 0x6,0x27,0x7c, 0x6,0x27,0x7d, 0x6,0x28,0x25, - 0x5,0x24,0x43, 0x6,0x28,0x22, 0x6,0x27,0x7e, 0x6,0x28,0x24, - 0x6,0x28,0x23, 0x6,0x28,0x21, 0xf,0x24,0x48, 0xf,0x24,0x4a, - 0xf,0x24,0x4c, 0x4,0x24,0x44, 0x5,0x26,0x48, 0x6,0x2b,0x74, - 0x6,0x2b,0x73, 0x5,0x26,0x49, 0x6,0x2b,0x7d, 0x5,0x26,0x44, - 0x6,0x2b,0x79, 0x5,0x26,0x47, 0x6,0x2b,0x7a, 0x6,0x2b,0x77, - 0x5,0x26,0x46, 0x5,0x26,0x45, 0x6,0x2b,0x75, 0x6,0x2b,0x78, - 0xf,0x27,0x37, 0xf,0x27,0x38, 0xf,0x27,0x39, 0xf,0x27,0x3a, - 0xf,0x27,0x3b, 0xf,0x27,0x3c, 0xf,0x27,0x3d, 0x6,0x2b,0x71, - 0x6,0x2b,0x7b, 0x6,0x2b,0x7c, 0x6,0x2b,0x72, 0x6,0x2b,0x76, - 0x5,0x29,0x51, 0x6,0x31,0x65, 0x6,0x31,0x66, 0x5,0x29,0x50, - 0x4,0x29,0x66, 0x6,0x31,0x68, 0x6,0x31,0x69, 0x4,0x29,0x68, - 0xf,0x2b,0x31, 0xf,0x2b,0x32, 0x6,0x31,0x6a, 0xf,0x2b,0x35, - 0xf,0x2b,0x36, 0x6,0x31,0x6e, 0x6,0x31,0x6c, 0x6,0x31,0x6b, - 0x5,0x2d,0x7e, 0x6,0x38,0x3a, 0x5,0x2e,0x21, 0x5,0x2e,0x22, - 0x5,0x2d,0x7b, 0x5,0x2e,0x23, 0x5,0x2d,0x7c, 0x5,0x2d,0x7a, - 0x6,0x38,0x3e, 0x6,0x38,0x38, 0x6,0x38,0x3c, 0x5,0x2d,0x7d, - 0x6,0x38,0x39, 0x6,0x38,0x3d, 0xf,0x2f,0x6b, 0xf,0x2f,0x6d, - 0x6,0x38,0x3b, 0xf,0x2f,0x6c, 0x6,0x38,0x41, 0x6,0x38,0x3f, - 0x5,0x32,0x73, 0x4,0x32,0x38, 0x4,0x38,0x21, 0x6,0x40,0x53, - 0x4,0x32,0x3d, 0x6,0x40,0x4e, 0x6,0x40,0x4b, 0x6,0x40,0x4c, - 0x6,0x40,0x50, 0x6,0x40,0x4d, 0x6,0x40,0x55, 0x5,0x32,0x75, - 0x6,0x38,0x40, 0x6,0x40,0x54, 0x6,0x40,0x56, 0xf,0x35,0x3c, - 0xf,0x35,0x3d, 0xf,0x35,0x3e, 0xf,0x35,0x3f, 0xf,0x35,0x40, - 0xf,0x35,0x41, 0xf,0x35,0x42, 0xf,0x35,0x43, 0xf,0x35,0x44, - 0xf,0x35,0x45, 0xf,0x35,0x46, 0xf,0x35,0x47, 0x6,0x40,0x52, - 0x5,0x32,0x74, 0x6,0x49,0x71, 0x6,0x49,0x74, 0x4,0x32,0x3c, - 0x5,0x3f,0x61, 0x5,0x39,0x2a, 0x6,0x49,0x6f, 0x5,0x39,0x27, - 0x6,0x49,0x70, 0x5,0x39,0x29, 0x5,0x39,0x26, 0x6,0x49,0x6c, - 0x6,0x49,0x6d, 0x4,0x38,0x23, 0x6,0x49,0x76, 0x5,0x39,0x2b, - 0x4,0x38,0x27, 0x6,0x49,0x6e, 0x6,0x49,0x75, 0x6,0x49,0x77, - 0xf,0x3b,0x51, 0xf,0x3b,0x53, 0xf,0x3b,0x54, 0xf,0x3b,0x56, - 0xf,0x3b,0x57, 0xf,0x3b,0x59, 0xf,0x3b,0x5a, 0xf,0x3b,0x5c, - 0xf,0x3b,0x5d, 0xf,0x3b,0x52, 0xf,0x3b,0x58, 0x4,0x38,0x26, - 0x4,0x38,0x28, 0x6,0x49,0x72, 0x5,0x39,0x2c, 0x5,0x39,0x28, - 0x6,0x53,0x43, 0x5,0x3f,0x63, 0x6,0x53,0x41, 0x6,0x5d,0x53, - 0x6,0x53,0x42, 0x6,0x53,0x3f, 0x6,0x53,0x44, 0xf,0x46,0x39, - 0xf,0x3b,0x5b, 0x6,0x53,0x3e, 0xf,0x41,0x70, 0xf,0x41,0x71, - 0xf,0x41,0x73, 0xf,0x41,0x74, 0xf,0x41,0x75, 0xf,0x41,0x76, - 0xf,0x41,0x77, 0xf,0x41,0x78, 0xf,0x41,0x79, 0xf,0x41,0x7a, - 0xf,0x41,0x7b, 0xf,0x41,0x7d, 0x5,0x3d,0x55, 0x6,0x53,0x45, - 0x6,0x53,0x40, 0x5,0x3f,0x64, 0x5,0x46,0x3b, 0x5,0x46,0x3f, - 0x5,0x46,0x3d, 0x5,0x46,0x3e, 0x6,0x5d,0x56, 0x5,0x46,0x40, - 0x5,0x46,0x43, 0x5,0x46,0x44, 0x4,0x43,0x6c, 0x5,0x46,0x42, - 0x5,0x4d,0x4e, 0xf,0x48,0x4a, 0xf,0x48,0x4b, 0xf,0x48,0x4c, - 0xf,0x48,0x4d, 0xf,0x48,0x4e, 0xf,0x48,0x4f, 0x6,0x5d,0x54, - 0x5,0x46,0x3c, 0x6,0x5d,0x57, 0x6,0x5d,0x59, 0x6,0x5d,0x5a, - 0x6,0x5d,0x55, 0x6,0x5d,0x58, 0x7,0x23,0x61, 0x7,0x23,0x5c, - 0x7,0x23,0x5b, 0x7,0x23,0x5e, 0x5,0x4d,0x52, 0x5,0x4d,0x55, - 0x7,0x23,0x5a, 0x7,0x23,0x57, 0x7,0x23,0x58, 0x7,0x23,0x62, - 0xf,0x4f,0x37, 0xf,0x4f,0x39, 0xf,0x4f,0x3a, 0x5,0x4d,0x54, - 0x7,0x23,0x60, 0xf,0x4e,0x30, 0x7,0x23,0x5d, 0x7,0x23,0x5f, - 0x7,0x23,0x59, 0x5,0x4d,0x51, 0x5,0x54,0x69, 0x5,0x54,0x6b, - 0x7,0x2e,0x57, 0x4,0x50,0x55, 0x7,0x2e,0x55, 0x7,0x2e,0x5b, - 0x7,0x2e,0x59, 0x7,0x2e,0x5d, 0x4,0x50,0x54, 0x7,0x2e,0x5c, - 0x7,0x2e,0x54, 0xf,0x54,0x65, 0xf,0x54,0x66, 0xf,0x54,0x67, - 0xf,0x54,0x69, 0xf,0x54,0x6a, 0x7,0x2e,0x58, 0x5,0x4d,0x4f, - 0x7,0x2d,0x62, 0xf,0x54,0x68, 0x7,0x2e,0x43, 0x5,0x54,0x6a, - 0x7,0x2e,0x56, 0xf,0x4f,0x38, 0x7,0x38,0x47, 0x5,0x5b,0x60, - 0x5,0x5b,0x61, 0x7,0x38,0x48, 0x5,0x5b,0x62, 0x7,0x38,0x45, - 0x7,0x38,0x46, 0x7,0x38,0x49, 0xf,0x5a,0x3a, 0xf,0x5a,0x3b, - 0xf,0x5a,0x3c, 0x7,0x38,0x44, 0xf,0x5a,0x3d, 0x4,0x5b,0x3e, - 0x5,0x61,0x72, 0x5,0x61,0x73, 0x7,0x3f,0x75, 0xf,0x5e,0x76, - 0xf,0x5e,0x77, 0xf,0x5e,0x78, 0xf,0x5e,0x79, 0xf,0x5e,0x7b, - 0x7,0x3f,0x78, 0x5,0x68,0x23, 0x7,0x47,0x3d, 0x7,0x47,0x3c, - 0x5,0x68,0x22, 0x5,0x68,0x24, 0x7,0x47,0x3b, 0x7,0x47,0x3e, - 0xf,0x62,0x4d, 0x5,0x6c,0x37, 0xf,0x65,0x31, 0xf,0x65,0x32, - 0x5,0x6b,0x6e, 0x7,0x4d,0x79, 0x7,0x53,0x46, 0x7,0x58,0x21, - 0xf,0x69,0x46, 0x5,0x73,0x39, 0x5,0x73,0x49, 0x7,0x5b,0x5c, - 0x5,0x77,0x5e, 0x7,0x5e,0x6d, 0xf,0x6b,0x4d, 0x5,0x79,0x2b, - 0x7,0x64,0x47, 0xf,0x24,0x4d, 0x6,0x2b,0x7e, 0xf,0x27,0x3f, - 0xf,0x27,0x40, 0x6,0x2c,0x21, 0x5,0x29,0x53, 0x5,0x29,0x52, - 0x6,0x31,0x70, 0xf,0x2b,0x37, 0xf,0x2b,0x39, 0x6,0x31,0x6f, - 0x6,0x38,0x42, 0xf,0x2f,0x6f, 0xf,0x2f,0x70, 0xf,0x2f,0x71, - 0xf,0x2f,0x72, 0xf,0x2f,0x73, 0xf,0x35,0x49, 0xf,0x35,0x4a, - 0xf,0x3b,0x5f, 0x6,0x49,0x7a, 0x6,0x49,0x79, 0x5,0x3f,0x65, - 0x4,0x43,0x70, 0x6,0x53,0x46, 0x5,0x4d,0x57, 0x5,0x4d,0x56, - 0x7,0x23,0x63, 0xf,0x54,0x6b, 0x5,0x5b,0x63, 0x7,0x3f,0x7a, - 0x5,0x61,0x74, 0x7,0x3f,0x79, 0x7,0x3f,0x77, 0x4,0x5f,0x6d, - 0x7,0x4d,0x7a, 0x7,0x4d,0x7b, 0x5,0x7b,0x3f, 0x7,0x66,0x3e, - 0x6,0x23,0x2d, 0x6,0x24,0x7d, 0x5,0x24,0x44, 0x6,0x28,0x29, - 0x6,0x28,0x27, 0x6,0x28,0x28, 0x6,0x28,0x26, 0x6,0x2c,0x22, - 0x5,0x29,0x54, 0x4,0x29,0x69, 0x4,0x29,0x6a, 0xf,0x2b,0x3a, - 0x6,0x31,0x71, 0x6,0x38,0x43, 0xf,0x35,0x4b, 0x5,0x32,0x76, - 0x6,0x40,0x59, 0x6,0x40,0x5b, 0x6,0x49,0x7d, 0x6,0x49,0x7c, - 0x6,0x40,0x5a, 0x5,0x39,0x2d, 0xf,0x39,0x46, 0xf,0x3b,0x61, - 0xf,0x3b,0x62, 0x6,0x53,0x47, 0x5,0x3f,0x67, 0xf,0x3b,0x60, - 0xf,0x41,0x7e, 0xf,0x42,0x21, 0x6,0x53,0x48, 0x6,0x5d,0x5d, - 0x6,0x5d,0x5e, 0x7,0x23,0x64, 0x4,0x4a,0x34, 0x5,0x4d,0x59, - 0x4,0x4a,0x33, 0xf,0x4f,0x3b, 0xf,0x4f,0x3c, 0x5,0x54,0x6e, - 0x5,0x54,0x6c, 0x5,0x5b,0x64, 0x5,0x54,0x6d, 0xf,0x54,0x6d, - 0xf,0x54,0x6e, 0x7,0x38,0x4b, 0x7,0x38,0x4a, 0xf,0x5a,0x3e, - 0x5,0x61,0x75, 0xf,0x5e,0x7c, 0x7,0x3f,0x7b, 0x5,0x6c,0x38, - 0x5,0x75,0x6f, 0x5,0x77,0x5f, 0x5,0x21,0x48, 0x4,0x21,0x4e, - 0x4,0x21,0x7d, 0xf,0x21,0x65, 0x5,0x22,0x75, 0x6,0x25,0x22, - 0x5,0x22,0x74, 0x6,0x24,0x7e, 0x6,0x25,0x21, 0xf,0x22,0x56, - 0x4,0x22,0x7b, 0x4,0x22,0x7a, 0x6,0x28,0x2c, 0x4,0x24,0x49, - 0x6,0x28,0x2a, 0x6,0x28,0x2b, 0xf,0x24,0x4e, 0xf,0x24,0x4f, - 0xf,0x24,0x54, 0xf,0x24,0x50, 0xf,0x24,0x52, 0x5,0x24,0x46, - 0x6,0x28,0x2d, 0x5,0x24,0x45, 0x4,0x24,0x45, 0x4,0x26,0x6b, - 0x5,0x26,0x4c, 0x4,0x26,0x66, 0x5,0x26,0x4b, 0x6,0x2c,0x2b, - 0x5,0x26,0x50, 0x5,0x26,0x52, 0x6,0x2c,0x28, 0x6,0x2c,0x27, - 0x6,0x2c,0x26, 0x5,0x26,0x4d, 0x5,0x26,0x53, 0x5,0x26,0x4f, - 0x5,0x26,0x4e, 0xf,0x27,0x43, 0xf,0x27,0x45, 0xf,0x27,0x46, - 0xf,0x27,0x47, 0xf,0x27,0x49, 0xf,0x27,0x4a, 0xf,0x27,0x4b, - 0xf,0x27,0x4d, 0xf,0x27,0x4f, 0xf,0x27,0x51, 0xf,0x27,0x54, - 0xf,0x27,0x55, 0x6,0x2c,0x24, 0x6,0x2c,0x29, 0x5,0x26,0x54, - 0x6,0x2c,0x2c, 0xf,0x27,0x44, 0x6,0x2c,0x2d, 0x6,0x2c,0x2a, - 0xf,0x27,0x48, 0xf,0x27,0x42, 0x6,0x2c,0x25, 0x5,0x26,0x55, - 0x6,0x2d,0x5c, 0x6,0x31,0x74, 0x6,0x31,0x73, 0x4,0x29,0x6b, - 0x5,0x29,0x56, 0x6,0x31,0x75, 0x6,0x31,0x76, 0x5,0x29,0x55, - 0x5,0x29,0x59, 0x6,0x31,0x77, 0x5,0x2e,0x26, 0x5,0x29,0x5a, - 0x5,0x29,0x58, 0xf,0x27,0x53, 0xf,0x2b,0x3b, 0xf,0x2b,0x3c, - 0xf,0x2b,0x3d, 0xf,0x2b,0x3f, 0xf,0x2b,0x40, 0xf,0x2b,0x41, - 0xf,0x2b,0x42, 0xf,0x2b,0x43, 0xf,0x2b,0x44, 0xf,0x2b,0x45, - 0xf,0x2b,0x46, 0xf,0x2b,0x47, 0xf,0x2b,0x49, 0xf,0x2b,0x4a, - 0xf,0x2b,0x4b, 0xf,0x2b,0x4c, 0xf,0x2b,0x4d, 0xf,0x2b,0x4e, - 0xf,0x2b,0x4f, 0x5,0x29,0x5b, 0x6,0x40,0x5c, 0x6,0x38,0x4f, - 0x6,0x38,0x53, 0x6,0x38,0x4b, 0x6,0x38,0x4d, 0x6,0x38,0x46, - 0x5,0x2e,0x27, 0x6,0x38,0x48, 0x6,0x38,0x45, 0x6,0x38,0x51, - 0x4,0x2d,0x50, 0x6,0x40,0x5d, 0x5,0x29,0x57, 0x5,0x2e,0x29, - 0x5,0x2e,0x2a, 0x6,0x38,0x44, 0xf,0x2f,0x74, 0xf,0x2f,0x75, - 0xf,0x2f,0x76, 0xf,0x2f,0x78, 0xf,0x2f,0x79, 0xf,0x2f,0x7a, - 0xf,0x2f,0x7b, 0xf,0x2f,0x7c, 0xf,0x2f,0x7d, 0xf,0x2f,0x7e, - 0xf,0x30,0x21, 0xf,0x30,0x22, 0xf,0x30,0x23, 0xf,0x30,0x25, - 0xf,0x30,0x26, 0xf,0x30,0x27, 0xf,0x30,0x29, 0xf,0x30,0x2a, - 0xf,0x30,0x2b, 0xf,0x30,0x2c, 0xf,0x30,0x2e, 0x6,0x38,0x4c, - 0x6,0x38,0x47, 0x6,0x38,0x49, 0x4,0x2d,0x53, 0x6,0x38,0x4e, - 0xf,0x30,0x30, 0xf,0x30,0x28, 0x4,0x2d,0x5a, 0xf,0x30,0x2d, - 0x5,0x2e,0x2c, 0x5,0x2e,0x28, 0xf,0x2f,0x77, 0x6,0x38,0x52, - 0x6,0x40,0x68, 0x6,0x40,0x69, 0x6,0x40,0x5f, 0x5,0x32,0x77, - 0x5,0x33,0x21, 0x5,0x39,0x36, 0x4,0x32,0x45, 0x4,0x32,0x40, - 0x5,0x32,0x7d, 0x6,0x40,0x67, 0x6,0x4a,0x2e, 0x6,0x40,0x63, - 0xf,0x35,0x4c, 0xf,0x35,0x4d, 0xf,0x35,0x4f, 0xf,0x35,0x50, - 0xf,0x35,0x51, 0xf,0x35,0x52, 0xf,0x35,0x53, 0xf,0x35,0x54, - 0xf,0x35,0x55, 0xf,0x35,0x56, 0xf,0x35,0x58, 0xf,0x35,0x59, - 0xf,0x35,0x5a, 0xf,0x35,0x5b, 0xf,0x35,0x5c, 0xf,0x35,0x5d, - 0xf,0x35,0x5e, 0xf,0x35,0x5f, 0xf,0x35,0x60, 0xf,0x35,0x61, - 0xf,0x35,0x62, 0xf,0x35,0x63, 0xf,0x35,0x65, 0xf,0x35,0x66, - 0x6,0x40,0x64, 0x6,0x40,0x66, 0x6,0x40,0x65, 0x4,0x32,0x47, - 0x6,0x40,0x62, 0x6,0x40,0x60, 0x6,0x40,0x61, 0x4,0x32,0x44, - 0x5,0x33,0x22, 0x5,0x32,0x78, 0x5,0x32,0x7b, 0x5,0x32,0x7a, - 0x5,0x32,0x7c, 0x6,0x40,0x6a, 0xf,0x35,0x4e, 0x6,0x40,0x5e, - 0x4,0x38,0x36, 0x6,0x4a,0x34, 0x5,0x39,0x35, 0x6,0x53,0x49, - 0x4,0x38,0x2e, 0x5,0x39,0x38, 0x6,0x4a,0x22, 0x5,0x39,0x32, - 0x4,0x38,0x2b, 0x5,0x39,0x30, 0x5,0x39,0x34, 0x4,0x38,0x31, - 0x6,0x4a,0x2d, 0x6,0x4a,0x2f, 0x5,0x39,0x3a, 0x6,0x4a,0x24, - 0x6,0x4a,0x21, 0x5,0x39,0x37, 0x6,0x4a,0x33, 0x5,0x39,0x3c, - 0x5,0x39,0x3b, 0x6,0x4a,0x26, 0x4,0x38,0x30, 0x6,0x4a,0x27, - 0x6,0x4a,0x2a, 0x6,0x4a,0x31, 0x5,0x39,0x40, 0x6,0x53,0x4a, - 0x5,0x39,0x3d, 0x6,0x4a,0x38, 0x6,0x4a,0x23, 0x6,0x4a,0x25, - 0x6,0x4a,0x35, 0x4,0x38,0x33, 0x4,0x38,0x38, 0x6,0x4a,0x36, - 0x6,0x4a,0x37, 0xf,0x3b,0x64, 0xf,0x3b,0x65, 0xf,0x3b,0x67, - 0xf,0x3b,0x68, 0xf,0x3b,0x69, 0xf,0x3b,0x6b, 0xf,0x3b,0x6c, - 0xf,0x3b,0x6d, 0xf,0x3b,0x6f, 0xf,0x3b,0x71, 0xf,0x3b,0x72, - 0xf,0x3b,0x74, 0xf,0x3b,0x75, 0xf,0x3b,0x76, 0xf,0x3b,0x77, - 0xf,0x3b,0x78, 0xf,0x3b,0x79, 0xf,0x3b,0x7a, 0xf,0x3b,0x7b, - 0xf,0x3b,0x7c, 0xf,0x3b,0x7d, 0xf,0x3b,0x7e, 0xf,0x3c,0x22, - 0xf,0x3c,0x23, 0xf,0x3c,0x24, 0xf,0x3c,0x25, 0xf,0x3c,0x26, - 0xf,0x3c,0x27, 0xf,0x3c,0x28, 0xf,0x3c,0x2a, 0xf,0x3c,0x2b, - 0xf,0x3c,0x2c, 0xf,0x3c,0x2d, 0xf,0x3c,0x2e, 0xf,0x3c,0x2f, - 0x6,0x4a,0x29, 0x6,0x4a,0x2b, 0x6,0x4a,0x2c, 0x6,0x4a,0x32, - 0x5,0x39,0x42, 0x6,0x4a,0x30, 0x6,0x4a,0x39, 0x6,0x4a,0x28, - 0x5,0x39,0x3e, 0x5,0x39,0x41, 0x5,0x39,0x2e, 0x5,0x39,0x2f, - 0x5,0x39,0x31, 0x6,0x53,0x4e, 0x6,0x53,0x58, 0x4,0x3d,0x77, - 0x6,0x53,0x56, 0x4,0x3d,0x74, 0x6,0x53,0x57, 0x5,0x3f,0x6f, - 0x5,0x3f,0x6a, 0x5,0x3f,0x6e, 0x5,0x3f,0x6b, 0x4,0x3d,0x6a, - 0x6,0x53,0x5b, 0x5,0x3f,0x73, 0x6,0x53,0x61, 0x5,0x3f,0x68, - 0x4,0x3d,0x7a, 0x5,0x3f,0x74, 0x5,0x3f,0x69, 0x6,0x53,0x55, - 0x5,0x3f,0x70, 0x5,0x3f,0x6d, 0x6,0x53,0x60, 0x4,0x3d,0x73, - 0x6,0x53,0x59, 0x6,0x53,0x5a, 0x6,0x53,0x5d, 0x6,0x53,0x50, - 0x4,0x3d,0x70, 0x6,0x53,0x5c, 0x5,0x3f,0x6c, 0x6,0x53,0x63, - 0x6,0x53,0x4f, 0x6,0x53,0x51, 0x6,0x53,0x4c, 0xf,0x42,0x23, - 0xf,0x42,0x24, 0xf,0x42,0x25, 0xf,0x42,0x26, 0xf,0x42,0x27, - 0xf,0x42,0x29, 0xf,0x42,0x2a, 0xf,0x42,0x2b, 0xf,0x42,0x2c, - 0xf,0x42,0x2d, 0xf,0x42,0x2e, 0xf,0x42,0x30, 0xf,0x42,0x31, - 0xf,0x42,0x32, 0xf,0x42,0x33, 0xf,0x42,0x34, 0xf,0x42,0x35, - 0xf,0x42,0x36, 0xf,0x42,0x38, 0xf,0x42,0x39, 0xf,0x42,0x3a, - 0xf,0x42,0x3b, 0xf,0x42,0x3d, 0xf,0x42,0x3e, 0xf,0x42,0x3f, - 0xf,0x42,0x40, 0xf,0x42,0x41, 0xf,0x42,0x42, 0xf,0x42,0x43, - 0xf,0x42,0x44, 0xf,0x42,0x45, 0xf,0x42,0x46, 0xf,0x42,0x48, - 0xf,0x42,0x4a, 0xf,0x42,0x4c, 0x6,0x53,0x4d, 0x6,0x53,0x52, - 0x6,0x53,0x54, 0x4,0x3d,0x79, 0x6,0x53,0x62, 0x6,0x53,0x4b, - 0x6,0x53,0x5f, 0xf,0x42,0x22, 0xf,0x42,0x2f, 0xf,0x42,0x37, - 0x5,0x39,0x3f, 0x5,0x3f,0x72, 0x6,0x53,0x53, 0xf,0x43,0x74, - 0x5,0x46,0x4e, 0xf,0x42,0x4b, 0x5,0x46,0x50, 0x4,0x43,0x7b, - 0x4,0x43,0x72, 0x5,0x46,0x4d, 0x5,0x46,0x4f, 0x6,0x5d,0x69, - 0x5,0x46,0x55, 0x5,0x46,0x52, 0x7,0x23,0x65, 0x6,0x53,0x64, - 0x5,0x46,0x47, 0x6,0x5d,0x5f, 0x5,0x46,0x54, 0x5,0x46,0x46, - 0x5,0x46,0x58, 0x6,0x5d,0x62, 0x5,0x46,0x4a, 0x5,0x46,0x53, - 0x6,0x5d,0x63, 0x4,0x43,0x76, 0x5,0x46,0x48, 0x5,0x46,0x49, - 0x6,0x5d,0x65, 0x5,0x46,0x4c, 0x5,0x46,0x51, 0xf,0x48,0x57, - 0xf,0x48,0x58, 0xf,0x48,0x59, 0xf,0x48,0x5a, 0xf,0x48,0x5b, - 0xf,0x48,0x5c, 0xf,0x48,0x5d, 0xf,0x48,0x5e, 0xf,0x48,0x5f, - 0xf,0x48,0x60, 0xf,0x48,0x61, 0xf,0x48,0x62, 0xf,0x48,0x63, - 0xf,0x48,0x64, 0xf,0x48,0x65, 0xf,0x48,0x66, 0xf,0x48,0x67, - 0xf,0x48,0x68, 0xf,0x48,0x69, 0xf,0x48,0x6a, 0xf,0x48,0x6b, - 0xf,0x48,0x6c, 0xf,0x48,0x6d, 0xf,0x48,0x6e, 0xf,0x48,0x6f, - 0xf,0x48,0x71, 0xf,0x48,0x72, 0xf,0x48,0x73, 0xf,0x48,0x75, - 0x3,0x47,0x4b, 0x6,0x5d,0x6a, 0x6,0x5d,0x67, 0x6,0x5d,0x6b, - 0x6,0x5d,0x6c, 0x5,0x46,0x56, 0x5,0x46,0x57, 0xf,0x48,0x74, - 0x6,0x5d,0x64, 0x6,0x5d,0x66, 0xf,0x48,0x50, 0xf,0x48,0x51, - 0xf,0x48,0x53, 0xf,0x48,0x54, 0x6,0x5d,0x60, 0x6,0x5d,0x6d, - 0x6,0x5d,0x61, 0xf,0x48,0x56, 0x7,0x23,0x68, 0x5,0x4d,0x67, - 0x5,0x4d,0x5e, 0x4,0x4a,0x3b, 0x4,0x4a,0x47, 0x5,0x4d,0x5b, - 0x4,0x4a,0x40, 0x7,0x23,0x71, 0x7,0x23,0x6c, 0x7,0x23,0x74, - 0x5,0x4d,0x6b, 0x5,0x4d,0x65, 0x7,0x23,0x70, 0x4,0x4a,0x46, - 0x5,0x4d,0x5f, 0x4,0x4a,0x3f, 0x5,0x4d,0x64, 0x4,0x4a,0x43, - 0x4,0x4a,0x3e, 0x4,0x4a,0x35, 0x7,0x23,0x73, 0x5,0x4d,0x5c, - 0x4,0x4a,0x4a, 0x5,0x4d,0x69, 0x7,0x23,0x6e, 0x5,0x4d,0x63, - 0x5,0x4d,0x6a, 0x7,0x23,0x69, 0x4,0x4a,0x41, 0x5,0x4d,0x5d, - 0x7,0x23,0x75, 0x4,0x4a,0x3c, 0x4,0x4a,0x45, 0x4,0x4a,0x49, - 0x7,0x23,0x66, 0x7,0x23,0x6a, 0xf,0x4f,0x3d, 0xf,0x4f,0x3e, - 0xf,0x4f,0x3f, 0xf,0x4f,0x43, 0xf,0x4f,0x44, 0xf,0x4f,0x46, - 0xf,0x4f,0x47, 0xf,0x4f,0x48, 0xf,0x4f,0x49, 0xf,0x4f,0x4a, - 0xf,0x4f,0x4b, 0xf,0x4f,0x4c, 0xf,0x4f,0x4d, 0xf,0x4f,0x4e, - 0xf,0x4f,0x4f, 0xf,0x4f,0x50, 0xf,0x4f,0x51, 0xf,0x4f,0x52, - 0xf,0x4f,0x53, 0xf,0x4f,0x40, 0x7,0x23,0x6b, 0x5,0x4d,0x6c, - 0x5,0x4d,0x68, 0x5,0x4d,0x66, 0x7,0x23,0x67, 0x7,0x23,0x6d, - 0x5,0x4d,0x60, 0x5,0x4d,0x5a, 0x5,0x4d,0x62, 0x4,0x50,0x5b, - 0x5,0x54,0x7d, 0x7,0x2e,0x69, 0x4,0x50,0x65, 0x4,0x50,0x58, - 0x5,0x5b,0x65, 0x7,0x38,0x4c, 0x7,0x2e,0x60, 0x7,0x2e,0x63, - 0x5,0x54,0x7b, 0x7,0x2e,0x68, 0x7,0x2e,0x72, 0x5,0x54,0x7a, - 0x7,0x2e,0x6f, 0x7,0x2e,0x62, 0x4,0x50,0x62, 0x4,0x56,0x4c, - 0x4,0x50,0x57, 0x7,0x2e,0x5f, 0x4,0x50,0x5f, 0x5,0x54,0x79, - 0x7,0x2e,0x67, 0x7,0x2e,0x64, 0x5,0x54,0x71, 0x5,0x54,0x77, - 0x4,0x50,0x5c, 0x7,0x2e,0x6e, 0x7,0x2e,0x74, 0x5,0x54,0x78, - 0x4,0x50,0x5d, 0x7,0x2e,0x66, 0x7,0x2e,0x6b, 0x4,0x50,0x63, - 0x5,0x54,0x70, 0x7,0x2e,0x61, 0x5,0x61,0x7b, 0x5,0x54,0x75, - 0x5,0x54,0x76, 0x5,0x54,0x72, 0x4,0x4a,0x44, 0x7,0x2e,0x73, - 0x7,0x2e,0x6c, 0x7,0x2e,0x65, 0x7,0x2e,0x5e, 0x5,0x54,0x7c, - 0x5,0x54,0x6f, 0x5,0x54,0x73, 0xf,0x54,0x6f, 0xf,0x54,0x70, - 0xf,0x54,0x71, 0xf,0x54,0x72, 0xf,0x54,0x73, 0xf,0x54,0x75, - 0xf,0x54,0x76, 0xf,0x54,0x77, 0xf,0x54,0x78, 0xf,0x54,0x79, - 0xf,0x54,0x7a, 0xf,0x54,0x7c, 0xf,0x54,0x7d, 0xf,0x54,0x7e, - 0xf,0x55,0x21, 0xf,0x55,0x22, 0xf,0x55,0x24, 0xf,0x55,0x25, - 0xf,0x55,0x26, 0xf,0x55,0x27, 0xf,0x55,0x28, 0xf,0x55,0x2b, - 0xf,0x55,0x2c, 0xf,0x55,0x2d, 0xf,0x55,0x2e, 0xf,0x55,0x2f, - 0xf,0x55,0x30, 0xf,0x55,0x32, 0xf,0x55,0x33, 0xf,0x55,0x34, - 0xf,0x55,0x35, 0xf,0x55,0x36, 0xf,0x55,0x37, 0xf,0x55,0x38, - 0x7,0x2e,0x70, 0x7,0x2e,0x71, 0x4,0x50,0x61, 0xf,0x55,0x23, - 0x5,0x54,0x74, 0xf,0x48,0x70, 0xf,0x4f,0x41, 0x7,0x2e,0x6d, - 0x4,0x56,0x43, 0x7,0x38,0x50, 0x7,0x38,0x4e, 0x4,0x56,0x47, - 0x7,0x38,0x52, 0x7,0x38,0x56, 0x5,0x5b,0x6a, 0x5,0x5b,0x6b, - 0x4,0x56,0x4a, 0x4,0x56,0x46, 0x5,0x5b,0x6e, 0x7,0x38,0x53, - 0x5,0x5b,0x6c, 0x7,0x38,0x51, 0x7,0x38,0x57, 0x5,0x61,0x7c, - 0x5,0x5b,0x67, 0x4,0x56,0x4d, 0x4,0x56,0x44, 0x7,0x38,0x59, - 0x4,0x56,0x42, 0x5,0x5b,0x69, 0x7,0x38,0x5b, 0x5,0x5b,0x66, - 0x7,0x38,0x54, 0xf,0x5a,0x40, 0xf,0x5a,0x41, 0xf,0x5a,0x43, - 0xf,0x5a,0x44, 0xf,0x5a,0x45, 0xf,0x5a,0x46, 0xf,0x5a,0x47, - 0xf,0x5a,0x48, 0xf,0x5a,0x49, 0xf,0x5a,0x4a, 0xf,0x5a,0x4b, - 0xf,0x5a,0x4c, 0xf,0x5a,0x4e, 0xf,0x5a,0x4f, 0xf,0x5a,0x51, - 0xf,0x5a,0x52, 0xf,0x5a,0x54, 0x7,0x38,0x58, 0x5,0x5b,0x6d, - 0x7,0x38,0x5a, 0x7,0x38,0x4d, 0x7,0x38,0x4f, 0x7,0x37,0x27, - 0xf,0x5a,0x53, 0xf,0x5a,0x4d, 0x5,0x5b,0x6f, 0x5,0x5b,0x70, - 0xf,0x55,0x31, 0xf,0x5a,0x50, 0x4,0x5b,0x47, 0x5,0x61,0x78, - 0x7,0x40,0x27, 0x7,0x40,0x23, 0x4,0x5b,0x42, 0x7,0x40,0x2b, - 0x5,0x62,0x24, 0x5,0x61,0x7d, 0x5,0x62,0x26, 0x7,0x40,0x29, - 0x4,0x5b,0x45, 0x5,0x61,0x7a, 0x5,0x62,0x22, 0x5,0x62,0x27, - 0x5,0x61,0x7e, 0x7,0x38,0x5c, 0x5,0x62,0x2b, 0x5,0x61,0x79, - 0x4,0x5b,0x43, 0x4,0x5b,0x4c, 0x4,0x5b,0x46, 0x7,0x40,0x2d, - 0x7,0x40,0x28, 0x5,0x62,0x23, 0x7,0x47,0x46, 0x5,0x62,0x29, - 0x7,0x40,0x26, 0x4,0x5b,0x4b, 0x5,0x62,0x28, 0x5,0x62,0x25, - 0x5,0x61,0x76, 0x7,0x3f,0x7c, 0x7,0x3f,0x7d, 0xf,0x5e,0x7e, - 0xf,0x5f,0x22, 0xf,0x5f,0x23, 0xf,0x5f,0x24, 0xf,0x5f,0x25, - 0xf,0x5f,0x26, 0xf,0x5f,0x27, 0xf,0x5f,0x28, 0xf,0x5f,0x2a, - 0xf,0x5f,0x2b, 0xf,0x5f,0x2c, 0xf,0x5f,0x2e, 0xf,0x5f,0x2f, - 0xf,0x5f,0x30, 0x7,0x40,0x21, 0x7,0x40,0x25, 0x7,0x40,0x2c, - 0x7,0x40,0x2a, 0x5,0x62,0x21, 0xf,0x5f,0x21, 0x5,0x62,0x2a, - 0x5,0x61,0x77, 0x7,0x40,0x22, 0x7,0x40,0x24, 0xf,0x5f,0x2d, - 0x5,0x68,0x25, 0x7,0x47,0x43, 0x5,0x68,0x28, 0x5,0x68,0x2b, - 0x5,0x68,0x29, 0x7,0x47,0x42, 0x7,0x47,0x40, 0x5,0x68,0x2d, - 0x7,0x47,0x41, 0x4,0x5f,0x74, 0x7,0x47,0x48, 0x7,0x47,0x49, - 0x5,0x68,0x27, 0x5,0x68,0x26, 0x7,0x47,0x45, 0x5,0x68,0x2f, - 0x7,0x47,0x47, 0x7,0x3f,0x7e, 0xf,0x62,0x52, 0xf,0x62,0x56, - 0xf,0x62,0x58, 0xf,0x62,0x59, 0xf,0x62,0x5a, 0xf,0x62,0x5b, - 0xf,0x62,0x5c, 0xf,0x62,0x5d, 0xf,0x62,0x5f, 0xf,0x62,0x60, - 0xf,0x62,0x61, 0x5,0x68,0x2e, 0x7,0x47,0x44, 0x7,0x47,0x3f, - 0xf,0x62,0x54, 0x5,0x68,0x2c, 0xf,0x62,0x57, 0xf,0x62,0x4f, - 0xf,0x62,0x5e, 0xf,0x5e,0x7d, 0x4,0x63,0x53, 0x7,0x4d,0x7c, - 0x5,0x6c,0x3f, 0x7,0x4d,0x7e, 0x5,0x6c,0x42, 0x5,0x68,0x30, - 0x5,0x6c,0x3a, 0x5,0x6c,0x39, 0x5,0x6c,0x3d, 0x7,0x4d,0x7d, - 0x5,0x6c,0x3c, 0x5,0x6c,0x41, 0x5,0x6c,0x3b, 0x5,0x68,0x2a, - 0x5,0x6c,0x40, 0x5,0x6c,0x3e, 0xf,0x65,0x33, 0xf,0x65,0x34, - 0xf,0x65,0x35, 0xf,0x65,0x36, 0xf,0x65,0x37, 0xf,0x65,0x39, - 0xf,0x65,0x3a, 0xf,0x65,0x3b, 0xf,0x65,0x3c, 0xf,0x65,0x3d, - 0xf,0x65,0x3f, 0x7,0x4e,0x21, 0x4,0x63,0x52, 0x7,0x53,0x49, - 0x7,0x53,0x48, 0x5,0x70,0x2b, 0x5,0x70,0x2d, 0x4,0x66,0x46, - 0x5,0x70,0x29, 0x7,0x53,0x4d, 0x5,0x70,0x28, 0x5,0x70,0x2a, - 0x5,0x70,0x2c, 0x7,0x53,0x4a, 0x4,0x66,0x45, 0x5,0x70,0x2f, - 0x7,0x53,0x4e, 0x5,0x70,0x32, 0xf,0x67,0x5b, 0xf,0x67,0x5c, - 0xf,0x67,0x5d, 0xf,0x67,0x5e, 0xf,0x67,0x5f, 0xf,0x67,0x60, - 0xf,0x67,0x61, 0xf,0x67,0x62, 0xf,0x67,0x63, 0xf,0x67,0x64, - 0x7,0x53,0x4c, 0x5,0x70,0x31, 0x5,0x70,0x30, 0x7,0x53,0x4b, - 0x5,0x70,0x2e, 0x7,0x58,0x26, 0x5,0x73,0x4e, 0x5,0x73,0x4f, - 0x5,0x73,0x4c, 0x5,0x73,0x4a, 0x4,0x68,0x6f, 0x5,0x73,0x4b, - 0x5,0x73,0x4d, 0x7,0x58,0x25, 0xf,0x69,0x47, 0xf,0x69,0x48, - 0xf,0x69,0x49, 0xf,0x69,0x4b, 0xf,0x69,0x4e, 0xf,0x69,0x4f, - 0xf,0x69,0x50, 0xf,0x69,0x51, 0x7,0x58,0x24, 0x7,0x58,0x22, - 0xf,0x67,0x65, 0x5,0x75,0x71, 0x5,0x75,0x73, 0x5,0x77,0x60, - 0x5,0x75,0x74, 0x7,0x5b,0x60, 0x5,0x75,0x72, 0x7,0x5b,0x61, - 0x5,0x75,0x75, 0x7,0x5b,0x5f, 0x5,0x77,0x61, 0x7,0x5b,0x5d, - 0xf,0x6a,0x57, 0xf,0x6a,0x59, 0x7,0x5b,0x5e, 0x5,0x75,0x76, - 0x5,0x75,0x70, 0x4,0x6b,0x6c, 0x7,0x5e,0x6e, 0x5,0x77,0x62, - 0x7,0x60,0x71, 0xf,0x6b,0x4e, 0xf,0x6b,0x4f, 0xf,0x6b,0x50, - 0xf,0x6b,0x53, 0xf,0x6b,0x54, 0x7,0x5e,0x6f, 0x7,0x5e,0x70, - 0xf,0x6a,0x58, 0x7,0x60,0x72, 0x5,0x79,0x2d, 0xf,0x6c,0x2c, - 0x7,0x60,0x73, 0x5,0x79,0x2c, 0x5,0x79,0x2e, 0xf,0x6b,0x52, - 0x5,0x7a,0x29, 0x7,0x63,0x54, 0x7,0x60,0x74, 0x4,0x6d,0x55, - 0xf,0x6c,0x2d, 0xf,0x6c,0x4c, 0xf,0x6c,0x63, 0x7,0x63,0x4c, - 0x7,0x63,0x55, 0x5,0x7b,0x40, 0x7,0x64,0x48, 0x7,0x64,0x49, - 0x7,0x65,0x5b, 0xf,0x6d,0x2f, 0x7,0x65,0x74, 0x6,0x25,0x24, - 0x4,0x24,0x4b, 0x6,0x28,0x2f, 0x6,0x2c,0x2e, 0x6,0x28,0x32, - 0x5,0x24,0x47, 0x6,0x28,0x31, 0x4,0x24,0x4a, 0x5,0x26,0x5c, - 0x5,0x26,0x5b, 0x5,0x26,0x58, 0x6,0x2c,0x2f, 0x4,0x26,0x6f, - 0x6,0x2c,0x30, 0x5,0x26,0x5d, 0x4,0x26,0x6e, 0x5,0x26,0x59, - 0x5,0x26,0x5a, 0x5,0x26,0x57, 0xf,0x27,0x56, 0x5,0x29,0x5f, - 0x6,0x31,0x7a, 0x6,0x38,0x54, 0x6,0x31,0x7c, 0x5,0x29,0x62, - 0x4,0x29,0x75, 0x5,0x29,0x61, 0x5,0x29,0x5e, 0x6,0x31,0x79, - 0x5,0x29,0x5c, 0x5,0x29,0x60, 0x6,0x31,0x7b, 0x5,0x29,0x5d, - 0xf,0x2c,0x77, 0x6,0x38,0x57, 0x6,0x38,0x58, 0x6,0x38,0x55, - 0x5,0x2e,0x33, 0x5,0x2e,0x2d, 0x6,0x38,0x56, 0x6,0x40,0x6b, - 0x5,0x2e,0x32, 0x4,0x2d,0x5f, 0x5,0x2e,0x2f, 0x5,0x2e,0x34, - 0x5,0x2e,0x31, 0x5,0x2e,0x30, 0xf,0x30,0x31, 0x5,0x33,0x25, - 0x6,0x40,0x6c, 0x6,0x40,0x6d, 0xf,0x35,0x67, 0xf,0x35,0x68, - 0xf,0x35,0x69, 0xf,0x35,0x6a, 0xf,0x35,0x6b, 0xf,0x35,0x6c, - 0xf,0x35,0x6d, 0xf,0x35,0x6e, 0x4,0x38,0x3d, 0x5,0x39,0x47, - 0x5,0x3f,0x77, 0x4,0x38,0x3a, 0x5,0x39,0x45, 0x6,0x4a,0x3c, - 0x5,0x33,0x24, 0x5,0x39,0x48, 0x6,0x4a,0x3d, 0x5,0x39,0x44, - 0x5,0x39,0x49, 0x6,0x4a,0x3e, 0x5,0x39,0x46, 0x6,0x4a,0x3b, - 0xf,0x3c,0x30, 0xf,0x3c,0x31, 0x6,0x4a,0x3a, 0x6,0x53,0x6e, - 0x5,0x3f,0x76, 0x5,0x3f,0x75, 0x5,0x3f,0x7a, 0x6,0x53,0x6b, - 0x5,0x3f,0x79, 0x6,0x53,0x67, 0x6,0x53,0x66, 0x6,0x53,0x68, - 0x6,0x53,0x69, 0x6,0x53,0x6a, 0x6,0x53,0x6d, 0x5,0x3f,0x78, - 0xf,0x42,0x4e, 0x6,0x58,0x5a, 0x6,0x53,0x6c, 0x6,0x53,0x65, - 0xf,0x42,0x4d, 0x5,0x46,0x5c, 0x4,0x44,0x2b, 0x5,0x46,0x5e, - 0x6,0x5d,0x6f, 0x6,0x5d,0x6e, 0x4,0x44,0x2c, 0x5,0x46,0x5d, - 0x4,0x44,0x29, 0x6,0x5d,0x75, 0x6,0x5d,0x70, 0x5,0x46,0x5a, - 0x6,0x5d,0x76, 0x6,0x5d,0x74, 0x5,0x46,0x5b, 0x6,0x5d,0x72, - 0x6,0x5d,0x71, 0x6,0x5d,0x73, 0x6,0x53,0x6f, 0xf,0x48,0x76, - 0xf,0x48,0x78, 0x5,0x46,0x59, 0x5,0x4d,0x6e, 0x7,0x23,0x7d, - 0x5,0x4d,0x70, 0x5,0x4d,0x71, 0x4,0x4a,0x4d, 0x7,0x23,0x79, - 0x7,0x23,0x77, 0x7,0x23,0x7e, 0x7,0x23,0x76, 0x7,0x23,0x7a, - 0x7,0x23,0x7b, 0x5,0x4d,0x6f, 0xf,0x4f,0x54, 0x7,0x23,0x7c, - 0x5,0x54,0x7e, 0x7,0x2e,0x76, 0x4,0x50,0x68, 0x7,0x2e,0x75, - 0xf,0x55,0x3a, 0xf,0x55,0x3b, 0x7,0x38,0x5e, 0x7,0x38,0x60, - 0x5,0x5b,0x71, 0x7,0x38,0x5f, 0xf,0x5a,0x55, 0x7,0x38,0x5d, - 0x5,0x62,0x2c, 0x5,0x68,0x32, 0x5,0x68,0x31, 0xf,0x62,0x62, - 0x5,0x70,0x36, 0x7,0x4e,0x23, 0x5,0x70,0x35, 0x5,0x70,0x34, - 0x4,0x68,0x70, 0x5,0x70,0x33, 0x5,0x73,0x50, 0x7,0x58,0x29, - 0x7,0x58,0x27, 0x7,0x58,0x28, 0x5,0x77,0x63, 0x7,0x60,0x75, - 0x4,0x6c,0x70, 0x4,0x6d,0x56, 0x5,0x21,0x32, 0x5,0x21,0x70, - 0x6,0x23,0x2e, 0x6,0x25,0x26, 0x5,0x24,0x4a, 0x6,0x28,0x34, - 0x6,0x2c,0x31, 0x5,0x24,0x49, 0x5,0x24,0x4b, 0x6,0x28,0x33, - 0x6,0x2c,0x3c, 0x6,0x2c,0x34, 0x6,0x2c,0x3b, 0x6,0x2c,0x3a, - 0x6,0x2c,0x36, 0x6,0x2c,0x33, 0x6,0x2c,0x38, 0x6,0x2c,0x32, - 0x6,0x2c,0x37, 0x5,0x26,0x5e, 0x6,0x2c,0x39, 0x6,0x2c,0x35, - 0x5,0x26,0x5f, 0xf,0x27,0x57, 0xf,0x27,0x58, 0xf,0x27,0x59, - 0x4,0x26,0x72, 0x4,0x29,0x76, 0x5,0x29,0x63, 0x5,0x28,0x35, - 0x6,0x38,0x59, 0x6,0x38,0x5c, 0x5,0x2e,0x35, 0x6,0x38,0x5a, - 0x6,0x38,0x5e, 0x6,0x38,0x5d, 0x6,0x38,0x5b, 0x6,0x37,0x48, - 0x5,0x33,0x26, 0x6,0x40,0x70, 0xf,0x35,0x6f, 0x6,0x40,0x6f, - 0x4,0x38,0x40, 0x4,0x38,0x3e, 0x5,0x39,0x4a, 0x5,0x39,0x4b, - 0x6,0x4a,0x43, 0x4,0x38,0x41, 0x6,0x4a,0x42, 0x6,0x4a,0x44, - 0x6,0x4a,0x40, 0x6,0x4a,0x45, 0x6,0x4a,0x46, 0x6,0x4a,0x41, - 0x5,0x3f,0x7c, 0x6,0x53,0x70, 0x5,0x3f,0x7b, 0xf,0x42,0x4f, - 0x6,0x5a,0x61, 0x7,0x24,0x22, 0x7,0x24,0x25, 0x7,0x24,0x23, - 0x7,0x24,0x26, 0x7,0x24,0x21, 0x7,0x24,0x24, 0xf,0x4f,0x55, - 0x7,0x2e,0x7a, 0x7,0x2e,0x79, 0x7,0x2e,0x77, 0x7,0x2e,0x78, - 0x7,0x38,0x61, 0x4,0x56,0x50, 0xf,0x5a,0x56, 0xf,0x5a,0x57, - 0x5,0x62,0x2d, 0x5,0x62,0x2e, 0x7,0x40,0x2e, 0x5,0x73,0x51, - 0x7,0x5b,0x62, 0x7,0x5b,0x63, 0x5,0x21,0x71, 0x5,0x21,0x49, - 0x5,0x22,0x76, 0x6,0x28,0x35, 0x4,0x22,0x7d, 0x6,0x25,0x27, - 0x5,0x24,0x4c, 0x4,0x24,0x4d, 0x6,0x25,0x28, 0x6,0x28,0x36, - 0x6,0x28,0x3b, 0x6,0x28,0x37, 0x4,0x24,0x4c, 0x6,0x28,0x3c, - 0x5,0x24,0x4d, 0x6,0x28,0x39, 0x6,0x28,0x38, 0x6,0x28,0x3a, - 0x6,0x2c,0x3f, 0x5,0x26,0x60, 0x5,0x26,0x66, 0x5,0x26,0x61, - 0x5,0x26,0x64, 0x4,0x26,0x73, 0x4,0x26,0x74, 0x5,0x26,0x63, - 0x4,0x26,0x77, 0x6,0x2c,0x3d, 0x6,0x2c,0x3e, 0x6,0x2c,0x40, - 0x6,0x31,0x7d, 0x5,0x26,0x65, 0x5,0x29,0x68, 0x4,0x29,0x78, - 0x4,0x29,0x79, 0x6,0x32,0x26, 0x4,0x29,0x77, 0x6,0x31,0x7e, - 0x5,0x29,0x64, 0x5,0x29,0x65, 0x5,0x29,0x6b, 0x5,0x29,0x66, - 0x5,0x29,0x67, 0x6,0x32,0x25, 0x4,0x29,0x7a, 0x6,0x32,0x22, - 0x6,0x32,0x23, 0x5,0x29,0x6a, 0x6,0x32,0x24, 0x6,0x38,0x5f, - 0xf,0x2b,0x50, 0x6,0x32,0x21, 0x5,0x29,0x6c, 0x5,0x2e,0x36, - 0x4,0x2d,0x63, 0x6,0x38,0x62, 0x5,0x2e,0x3b, 0x6,0x38,0x65, - 0x5,0x2e,0x3c, 0x5,0x2e,0x38, 0x5,0x2e,0x39, 0x6,0x38,0x63, - 0x6,0x38,0x66, 0x5,0x2e,0x3d, 0x5,0x2e,0x37, 0x5,0x2e,0x3a, - 0x5,0x2e,0x3e, 0x6,0x38,0x60, 0x6,0x38,0x61, 0x5,0x33,0x2b, - 0x6,0x40,0x74, 0x5,0x33,0x2a, 0x6,0x40,0x73, 0x5,0x33,0x27, - 0x5,0x33,0x28, 0x5,0x33,0x29, 0x6,0x40,0x71, 0x4,0x32,0x4b, - 0x5,0x33,0x2c, 0x6,0x4a,0x49, 0x6,0x40,0x75, 0x6,0x40,0x72, - 0xf,0x35,0x71, 0x6,0x53,0x72, 0x6,0x4a,0x4a, 0x5,0x39,0x53, - 0x4,0x38,0x48, 0x6,0x4a,0x4b, 0x4,0x38,0x43, 0x5,0x39,0x4e, - 0x5,0x39,0x4d, 0x5,0x39,0x4f, 0x4,0x38,0x47, 0x5,0x39,0x52, - 0x5,0x39,0x54, 0x5,0x39,0x50, 0x5,0x39,0x4c, 0x5,0x39,0x51, - 0x6,0x4a,0x4c, 0x6,0x53,0x71, 0x6,0x4a,0x48, 0xf,0x3c,0x32, - 0x6,0x53,0x74, 0x6,0x53,0x79, 0x5,0x3f,0x7d, 0x5,0x3f,0x7e, - 0x6,0x53,0x76, 0x6,0x53,0x78, 0x4,0x3e,0x25, 0x6,0x5d,0x78, - 0x6,0x53,0x7a, 0x6,0x53,0x75, 0x6,0x53,0x73, 0xf,0x42,0x50, - 0xf,0x35,0x70, 0x4,0x44,0x34, 0x4,0x44,0x2e, 0x6,0x5d,0x7b, - 0x6,0x5d,0x7c, 0x4,0x44,0x2f, 0x6,0x5d,0x79, 0x6,0x5d,0x7a, - 0x6,0x5d,0x2d, 0x7,0x24,0x29, 0x4,0x4a,0x51, 0x5,0x4d,0x72, - 0x7,0x24,0x27, 0x5,0x4d,0x75, 0x7,0x24,0x28, 0x7,0x24,0x2b, - 0x5,0x4d,0x74, 0x4,0x50,0x69, 0x7,0x24,0x2c, 0x7,0x24,0x2a, - 0xf,0x4f,0x56, 0x5,0x4d,0x73, 0x7,0x2e,0x7b, 0x7,0x2e,0x7c, - 0x5,0x55,0x21, 0x4,0x50,0x6c, 0x5,0x55,0x23, 0x5,0x55,0x22, - 0x7,0x2e,0x7e, 0xf,0x55,0x3c, 0xf,0x55,0x3d, 0x7,0x38,0x64, - 0x7,0x38,0x62, 0x5,0x5b,0x73, 0x7,0x38,0x65, 0x7,0x38,0x63, - 0x5,0x5b,0x74, 0x5,0x62,0x30, 0x5,0x62,0x2f, 0x4,0x5b,0x4d, - 0x7,0x40,0x30, 0x7,0x2e,0x7d, 0x5,0x5b,0x75, 0x7,0x40,0x2f, - 0x5,0x68,0x33, 0x5,0x70,0x37, 0x5,0x70,0x38, 0x7,0x53,0x4f, - 0x7,0x58,0x2a, 0x5,0x75,0x7a, 0x5,0x75,0x79, 0x5,0x26,0x68, - 0x5,0x26,0x67, 0x6,0x32,0x27, 0x6,0x32,0x28, 0x5,0x2e,0x3f, - 0x4,0x32,0x4c, 0x4,0x32,0x4d, 0x6,0x40,0x78, 0x6,0x40,0x79, - 0x6,0x40,0x76, 0x6,0x40,0x77, 0xf,0x35,0x73, 0xf,0x35,0x75, - 0xf,0x35,0x76, 0xf,0x35,0x77, 0x6,0x40,0x7b, 0x6,0x40,0x7a, - 0x5,0x33,0x2d, 0x6,0x4a,0x4f, 0x6,0x4a,0x4e, 0xf,0x3c,0x33, - 0xf,0x35,0x72, 0x6,0x54,0x21, 0x6,0x54,0x22, 0x6,0x53,0x7d, - 0x6,0x53,0x7e, 0x6,0x54,0x24, 0xf,0x42,0x51, 0xf,0x42,0x52, - 0x6,0x54,0x23, 0x6,0x53,0x7c, 0x5,0x40,0x21, 0x5,0x40,0x7b, - 0x5,0x46,0x61, 0x4,0x44,0x36, 0x6,0x5e,0x21, 0x4,0x44,0x37, - 0x6,0x5d,0x7e, 0x6,0x5d,0x7d, 0xf,0x48,0x7a, 0x5,0x4d,0x76, - 0x6,0x5e,0x22, 0x7,0x24,0x2d, 0x4,0x4a,0x52, 0x7,0x2f,0x25, - 0x7,0x2f,0x23, 0x7,0x2f,0x26, 0x7,0x2f,0x21, 0x7,0x2f,0x24, - 0x5,0x55,0x24, 0x7,0x2f,0x22, 0xf,0x55,0x3e, 0xf,0x55,0x3f, - 0xf,0x55,0x40, 0x7,0x38,0x66, 0x7,0x38,0x67, 0x4,0x5b,0x4e, - 0x7,0x40,0x33, 0x5,0x62,0x32, 0x5,0x62,0x31, 0x7,0x40,0x31, - 0x7,0x40,0x32, 0x4,0x5f,0x78, 0x7,0x47,0x4c, 0x7,0x4e,0x25, - 0x7,0x47,0x4d, 0x7,0x53,0x50, 0x4,0x6a,0x4d, 0x5,0x75,0x7b, - 0x7,0x5b,0x64, 0x5,0x73,0x52, 0x7,0x5e,0x73, 0x5,0x77,0x65, - 0x5,0x77,0x64, 0x7,0x60,0x76, 0x7,0x63,0x56, 0x5,0x21,0x72, - 0x6,0x28,0x3d, 0x6,0x2c,0x41, 0x6,0x32,0x29, 0x6,0x38,0x67, - 0xf,0x3c,0x34, 0x5,0x40,0x22, 0x4,0x4a,0x53, 0xf,0x4f,0x57, - 0xf,0x4f,0x58, 0xf,0x5a,0x59, 0xf,0x55,0x41, 0xf,0x62,0x63, - 0xf,0x6a,0x5a, 0x5,0x24,0x4f, 0x6,0x28,0x3e, 0x6,0x2c,0x45, - 0x6,0x2c,0x44, 0x5,0x26,0x69, 0x6,0x38,0x68, 0x6,0x38,0x6a, - 0x6,0x38,0x69, 0x6,0x40,0x7c, 0x6,0x40,0x7d, 0x5,0x40,0x23, - 0x4,0x3e,0x26, 0x5,0x46,0x62, 0x5,0x46,0x63, 0x6,0x5e,0x23, - 0x7,0x24,0x2e, 0x7,0x2f,0x27, 0x7,0x2f,0x28, 0x5,0x55,0x25, - 0x7,0x47,0x4e, 0x5,0x6c,0x43, 0x5,0x79,0x30, 0x5,0x21,0x4a, - 0x4,0x22,0x7e, 0xf,0x22,0x5a, 0xf,0x22,0x5b, 0x6,0x28,0x40, - 0x6,0x28,0x3f, 0x4,0x24,0x4e, 0xf,0x24,0x55, 0xf,0x24,0x56, - 0xf,0x24,0x57, 0xf,0x24,0x59, 0xf,0x24,0x5a, 0x5,0x26,0x6d, - 0x5,0x26,0x6a, 0x5,0x26,0x6c, 0x5,0x26,0x6b, 0x6,0x2c,0x47, - 0x6,0x2c,0x46, 0xf,0x27,0x5a, 0xf,0x27,0x5c, 0xf,0x27,0x5d, - 0xf,0x27,0x5e, 0xf,0x27,0x5f, 0x5,0x26,0x43, 0x6,0x32,0x2c, - 0x5,0x29,0x6e, 0x5,0x29,0x6f, 0x5,0x29,0x6d, 0x5,0x29,0x70, - 0x5,0x29,0x71, 0x6,0x32,0x2d, 0x5,0x29,0x73, 0x6,0x32,0x2f, - 0x6,0x38,0x6d, 0x6,0x32,0x2e, 0x5,0x29,0x74, 0x6,0x32,0x2b, - 0x5,0x29,0x72, 0xf,0x2b,0x51, 0xf,0x2b,0x52, 0xf,0x2b,0x53, - 0xf,0x2b,0x54, 0xf,0x2b,0x55, 0xf,0x2b,0x56, 0xf,0x2b,0x57, - 0xf,0x2b,0x58, 0xf,0x2b,0x59, 0xf,0x2b,0x5a, 0xf,0x2b,0x5b, - 0xf,0x2b,0x5c, 0xf,0x2b,0x5e, 0xf,0x2b,0x5d, 0x6,0x38,0x6f, - 0x5,0x2e,0x41, 0x6,0x38,0x6e, 0x4,0x2d,0x69, 0x5,0x2e,0x43, - 0x4,0x2d,0x68, 0x6,0x38,0x6c, 0x5,0x2e,0x42, 0xf,0x30,0x32, - 0xf,0x30,0x33, 0xf,0x30,0x34, 0xf,0x30,0x35, 0xf,0x30,0x36, - 0xf,0x30,0x37, 0xf,0x30,0x38, 0xf,0x30,0x39, 0x6,0x38,0x6b, - 0x5,0x2e,0x40, 0x6,0x41,0x26, 0x4,0x32,0x56, 0x6,0x41,0x21, - 0x5,0x33,0x31, 0x6,0x41,0x22, 0x6,0x41,0x23, 0x5,0x33,0x2e, - 0x6,0x41,0x25, 0x5,0x33,0x32, 0x5,0x33,0x30, 0x5,0x33,0x2f, - 0x6,0x40,0x7e, 0x6,0x41,0x24, 0xf,0x35,0x78, 0xf,0x35,0x79, - 0xf,0x35,0x7a, 0xf,0x35,0x7b, 0xf,0x35,0x7c, 0x5,0x39,0x55, - 0x4,0x38,0x4d, 0x5,0x39,0x56, 0x4,0x38,0x50, 0x6,0x4a,0x51, - 0x6,0x4a,0x53, 0x5,0x39,0x59, 0x5,0x39,0x58, 0x5,0x39,0x5a, - 0x6,0x4a,0x56, 0x6,0x4a,0x50, 0x6,0x4a,0x55, 0x5,0x39,0x57, - 0x6,0x4a,0x52, 0xf,0x3c,0x3a, 0xf,0x3c,0x35, 0xf,0x3c,0x37, - 0xf,0x3c,0x38, 0xf,0x3c,0x39, 0xf,0x3c,0x3b, 0xf,0x3c,0x3d, - 0xf,0x3c,0x3f, 0xf,0x3c,0x40, 0x6,0x4a,0x54, 0xf,0x3c,0x36, - 0x5,0x39,0x5c, 0x6,0x54,0x2e, 0x6,0x54,0x2c, 0x4,0x3e,0x2b, - 0x6,0x54,0x27, 0x6,0x54,0x2b, 0x4,0x3e,0x2a, 0x6,0x54,0x28, - 0x6,0x54,0x25, 0x6,0x54,0x29, 0x6,0x54,0x26, 0x6,0x54,0x2d, - 0x6,0x54,0x2a, 0x6,0x54,0x2f, 0x5,0x40,0x24, 0xf,0x42,0x53, - 0xf,0x42,0x55, 0xf,0x42,0x56, 0xf,0x42,0x57, 0x6,0x54,0x30, - 0x6,0x5e,0x29, 0x5,0x46,0x66, 0x5,0x46,0x65, 0x6,0x5e,0x2a, - 0x6,0x5e,0x2b, 0x6,0x5e,0x2d, 0x4,0x44,0x3d, 0x6,0x5e,0x24, - 0x4,0x44,0x3e, 0x5,0x46,0x67, 0x4,0x44,0x3b, 0x6,0x5e,0x2e, - 0x6,0x5e,0x2f, 0x6,0x5e,0x26, 0x6,0x5e,0x27, 0xf,0x48,0x7c, - 0xf,0x48,0x7d, 0xf,0x48,0x7e, 0xf,0x49,0x21, 0x6,0x5e,0x28, - 0x5,0x46,0x69, 0x6,0x5e,0x30, 0x6,0x5e,0x25, 0x6,0x5e,0x2c, - 0x4,0x4a,0x56, 0x7,0x24,0x33, 0x7,0x24,0x37, 0x7,0x24,0x35, - 0x4,0x4a,0x55, 0x4,0x4a,0x54, 0x5,0x4d,0x79, 0x7,0x24,0x34, - 0x5,0x4d,0x77, 0x5,0x4d,0x78, 0x7,0x24,0x31, 0x7,0x24,0x32, - 0x7,0x24,0x30, 0x7,0x24,0x2f, 0x7,0x24,0x36, 0x7,0x24,0x38, - 0x7,0x2f,0x29, 0x5,0x55,0x27, 0x7,0x2f,0x2a, 0x4,0x50,0x70, - 0x5,0x55,0x26, 0x4,0x50,0x73, 0x7,0x2f,0x2c, 0xf,0x55,0x42, - 0xf,0x55,0x43, 0xf,0x55,0x44, 0xf,0x55,0x45, 0x7,0x2f,0x2b, - 0x7,0x24,0x39, 0x7,0x38,0x6a, 0x4,0x56,0x55, 0x4,0x56,0x54, - 0x7,0x38,0x69, 0x5,0x5b,0x76, 0x7,0x38,0x68, 0xf,0x5a,0x5a, - 0xf,0x5a,0x5b, 0xf,0x5a,0x5c, 0x7,0x38,0x6c, 0x7,0x38,0x6b, - 0x5,0x62,0x35, 0x5,0x62,0x34, 0x5,0x62,0x36, 0x7,0x40,0x37, - 0x7,0x47,0x4f, 0x7,0x40,0x35, 0x5,0x62,0x37, 0x7,0x40,0x34, - 0x7,0x40,0x36, 0xf,0x5f,0x31, 0x5,0x62,0x33, 0xf,0x5f,0x32, - 0x7,0x47,0x52, 0x5,0x68,0x34, 0x7,0x47,0x50, 0x7,0x47,0x51, - 0xf,0x65,0x41, 0x7,0x4e,0x26, 0x4,0x66,0x47, 0x5,0x70,0x39, - 0x7,0x53,0x51, 0xf,0x67,0x67, 0x7,0x58,0x2b, 0x5,0x73,0x53, - 0xf,0x69,0x52, 0x5,0x75,0x7c, 0x7,0x5b,0x65, 0x7,0x64,0x4a, - 0x6,0x2c,0x48, 0x6,0x32,0x30, 0x5,0x29,0x75, 0x5,0x29,0x76, - 0x6,0x33,0x4c, 0x6,0x41,0x27, 0xf,0x35,0x7d, 0x6,0x41,0x28, - 0x6,0x54,0x31, 0x4,0x44,0x40, 0x7,0x2f,0x2d, 0x7,0x38,0x6d, - 0x4,0x5b,0x51, 0xf,0x5a,0x5d, 0x6,0x25,0x2a, 0x6,0x25,0x29, - 0xf,0x24,0x5c, 0x6,0x2c,0x4b, 0x6,0x2c,0x4a, 0x6,0x2c,0x49, - 0x6,0x32,0x31, 0x6,0x32,0x32, 0xf,0x2b,0x5f, 0x5,0x29,0x77, - 0x5,0x2e,0x44, 0xf,0x35,0x7e, 0x5,0x39,0x5d, 0xf,0x3c,0x41, - 0x6,0x54,0x32, 0x7,0x24,0x3b, 0x7,0x24,0x3a, 0x7,0x40,0x38, - 0x7,0x53,0x52, 0xf,0x21,0x67, 0x6,0x22,0x24, 0x6,0x25,0x2b, - 0x5,0x21,0x73, 0x6,0x25,0x2c, 0xf,0x22,0x5e, 0xf,0x24,0x69, - 0x4,0x23,0x23, 0x6,0x25,0x2d, 0x5,0x24,0x50, 0x6,0x25,0x2f, - 0x6,0x25,0x31, 0x3,0x24,0x24, 0xf,0x22,0x5c, 0xf,0x24,0x5f, - 0xf,0x24,0x60, 0x6,0x25,0x30, 0x6,0x2c,0x4d, 0x5,0x24,0x52, - 0x6,0x28,0x42, 0x5,0x24,0x51, 0x5,0x24,0x53, 0x4,0x24,0x50, - 0x6,0x28,0x46, 0x6,0x28,0x47, 0x6,0x2c,0x4c, 0x6,0x28,0x43, - 0x6,0x28,0x41, 0x6,0x28,0x45, 0x6,0x28,0x48, 0xf,0x24,0x61, - 0xf,0x24,0x5e, 0xf,0x24,0x62, 0xf,0x24,0x63, 0xf,0x24,0x64, - 0xf,0x24,0x65, 0xf,0x24,0x66, 0xf,0x24,0x67, 0xf,0x27,0x63, - 0xf,0x27,0x64, 0xf,0x27,0x65, 0x4,0x27,0x23, 0x5,0x26,0x6f, - 0x6,0x32,0x33, 0x5,0x26,0x72, 0x5,0x26,0x73, 0x4,0x27,0x21, - 0x6,0x2c,0x57, 0x4,0x27,0x25, 0x6,0x2c,0x50, 0x4,0x27,0x24, - 0x6,0x2c,0x4e, 0x5,0x26,0x6e, 0x5,0x26,0x70, 0x6,0x2c,0x58, - 0x5,0x26,0x71, 0x6,0x2c,0x5a, 0x6,0x32,0x34, 0x6,0x2c,0x56, - 0x6,0x2c,0x5c, 0x4,0x26,0x7c, 0x6,0x2c,0x53, 0xf,0x27,0x60, - 0xf,0x27,0x61, 0xf,0x27,0x62, 0xf,0x27,0x67, 0xf,0x27,0x68, - 0xf,0x27,0x69, 0xf,0x27,0x6a, 0xf,0x27,0x6b, 0xf,0x27,0x6d, - 0xf,0x2b,0x64, 0xf,0x2b,0x67, 0xf,0x2b,0x6c, 0x6,0x2c,0x52, - 0x6,0x2c,0x54, 0x6,0x2c,0x55, 0x6,0x2c,0x59, 0x6,0x2c,0x4f, - 0x5,0x29,0x78, 0x4,0x29,0x7c, 0x6,0x32,0x36, 0x5,0x2a,0x22, - 0x6,0x32,0x3b, 0x6,0x32,0x3e, 0x5,0x29,0x79, 0x4,0x2a,0x22, - 0x4,0x2d,0x71, 0x5,0x2a,0x21, 0x5,0x29,0x7e, 0x6,0x32,0x3a, - 0x6,0x32,0x40, 0x5,0x29,0x7a, 0x6,0x32,0x41, 0x5,0x29,0x7d, - 0x6,0x38,0x70, 0x6,0x32,0x3d, 0x6,0x32,0x3c, 0x4,0x2a,0x23, - 0x4,0x29,0x7d, 0x6,0x32,0x3f, 0xf,0x2b,0x60, 0xf,0x2b,0x61, - 0xf,0x2b,0x62, 0xf,0x2b,0x63, 0xf,0x2b,0x65, 0xf,0x2b,0x66, - 0xf,0x2b,0x68, 0xf,0x2b,0x69, 0xf,0x2b,0x6a, 0xf,0x2b,0x6b, - 0xf,0x2b,0x6d, 0xf,0x2b,0x6e, 0xf,0x30,0x3a, 0xf,0x30,0x3d, - 0xf,0x30,0x44, 0x6,0x32,0x38, 0x4,0x2a,0x24, 0x6,0x32,0x35, - 0x6,0x32,0x37, 0x5,0x2a,0x23, 0xf,0x30,0x57, 0x4,0x2d,0x6e, - 0x5,0x2e,0x49, 0x6,0x39,0x30, 0x6,0x39,0x2e, 0x5,0x2e,0x48, - 0x5,0x2e,0x47, 0x6,0x38,0x7c, 0x5,0x2e,0x4a, 0x6,0x38,0x71, - 0x6,0x38,0x7b, 0x4,0x2d,0x6d, 0x4,0x2d,0x6f, 0x6,0x39,0x25, - 0x6,0x38,0x76, 0x6,0x39,0x26, 0x6,0x39,0x2a, 0x6,0x38,0x77, - 0x6,0x39,0x29, 0x6,0x38,0x7e, 0x6,0x39,0x28, 0x6,0x41,0x2a, - 0x6,0x41,0x29, 0x4,0x32,0x66, 0x6,0x39,0x24, 0x6,0x39,0x2c, - 0x5,0x2e,0x45, 0x6,0x39,0x23, 0x6,0x38,0x73, 0x6,0x39,0x2b, - 0x6,0x38,0x78, 0x6,0x39,0x2f, 0x6,0x39,0x32, 0x6,0x41,0x46, - 0xf,0x30,0x3b, 0xf,0x30,0x3e, 0xf,0x30,0x3f, 0xf,0x30,0x40, - 0xf,0x30,0x41, 0xf,0x30,0x42, 0xf,0x30,0x43, 0xf,0x30,0x45, - 0xf,0x30,0x46, 0xf,0x30,0x47, 0xf,0x30,0x48, 0xf,0x30,0x4a, - 0xf,0x30,0x4b, 0xf,0x30,0x4c, 0xf,0x30,0x4d, 0xf,0x30,0x4e, - 0xf,0x30,0x4f, 0xf,0x30,0x50, 0xf,0x30,0x51, 0xf,0x30,0x52, - 0xf,0x30,0x53, 0xf,0x30,0x54, 0xf,0x30,0x55, 0xf,0x30,0x56, - 0xf,0x30,0x58, 0xf,0x30,0x59, 0xf,0x30,0x5a, 0x6,0x38,0x79, - 0x6,0x39,0x22, 0x6,0x39,0x31, 0x4,0x2d,0x72, 0x6,0x39,0x27, - 0x6,0x38,0x7d, 0x6,0x38,0x75, 0x5,0x2e,0x46, 0xf,0x36,0x2d, - 0x4,0x32,0x5d, 0x5,0x33,0x40, 0x4,0x32,0x5b, 0x4,0x32,0x6b, - 0x6,0x41,0x34, 0x6,0x41,0x38, 0x6,0x41,0x3c, 0x4,0x32,0x6a, - 0x6,0x41,0x43, 0x4,0x32,0x61, 0x6,0x41,0x36, 0x4,0x32,0x65, - 0x6,0x41,0x35, 0x6,0x41,0x45, 0x4,0x32,0x69, 0x5,0x33,0x33, - 0x6,0x41,0x31, 0x4,0x32,0x60, 0x4,0x32,0x67, 0x6,0x4a,0x64, - 0x5,0x33,0x3f, 0x6,0x41,0x42, 0x5,0x33,0x3e, 0x6,0x41,0x3f, - 0x4,0x32,0x59, 0x4,0x32,0x5f, 0x6,0x41,0x2c, 0x4,0x25,0x2f, - 0x6,0x41,0x3b, 0x6,0x41,0x30, 0x6,0x4a,0x66, 0x5,0x33,0x38, - 0x5,0x33,0x41, 0x6,0x4a,0x58, 0x6,0x4a,0x59, 0x6,0x41,0x3e, - 0x6,0x41,0x44, 0x5,0x33,0x36, 0x4,0x32,0x62, 0x6,0x41,0x40, - 0x5,0x33,0x3b, 0x6,0x41,0x2f, 0x6,0x41,0x32, 0x5,0x33,0x3a, - 0x5,0x33,0x35, 0x4,0x32,0x6c, 0x4,0x32,0x6e, 0x5,0x33,0x37, - 0x6,0x41,0x3d, 0xf,0x36,0x21, 0xf,0x36,0x22, 0xf,0x36,0x23, - 0xf,0x36,0x25, 0xf,0x36,0x26, 0xf,0x36,0x27, 0xf,0x36,0x28, - 0xf,0x36,0x2a, 0xf,0x36,0x2c, 0xf,0x36,0x2e, 0xf,0x36,0x2f, - 0xf,0x36,0x30, 0xf,0x36,0x31, 0xf,0x36,0x32, 0xf,0x36,0x36, - 0xf,0x36,0x37, 0xf,0x36,0x38, 0xf,0x36,0x39, 0xf,0x36,0x3a, - 0xf,0x36,0x3b, 0xf,0x36,0x3c, 0xf,0x36,0x3d, 0xf,0x3c,0x42, - 0xf,0x3c,0x4b, 0xf,0x3c,0x4d, 0xf,0x3c,0x57, 0xf,0x42,0x5f, - 0x6,0x4a,0x57, 0x6,0x41,0x33, 0x6,0x41,0x37, 0x5,0x33,0x39, - 0x6,0x41,0x3a, 0x6,0x41,0x39, 0x6,0x41,0x47, 0x6,0x41,0x2d, - 0x6,0x41,0x2e, 0x5,0x33,0x34, 0x5,0x33,0x3c, 0x6,0x38,0x7a, - 0x6,0x4a,0x62, 0x6,0x4a,0x70, 0x4,0x38,0x54, 0x5,0x39,0x63, - 0x4,0x38,0x55, 0x6,0x4a,0x5d, 0x6,0x4a,0x5f, 0x5,0x39,0x67, - 0x5,0x39,0x6a, 0x5,0x39,0x62, 0x6,0x54,0x48, 0x5,0x39,0x6c, - 0x6,0x4a,0x5a, 0x4,0x38,0x53, 0x5,0x33,0x42, 0x4,0x38,0x58, - 0x6,0x4a,0x6c, 0x6,0x4a,0x5c, 0x5,0x39,0x68, 0x6,0x4a,0x71, - 0x6,0x54,0x35, 0x6,0x4a,0x67, 0x6,0x4a,0x68, 0x6,0x4a,0x6e, - 0x5,0x39,0x60, 0x6,0x54,0x34, 0x6,0x4a,0x6f, 0x4,0x3e,0x2c, - 0x5,0x39,0x5f, 0x5,0x39,0x66, 0x5,0x39,0x65, 0x5,0x39,0x64, - 0x6,0x4a,0x6a, 0x5,0x39,0x61, 0x6,0x54,0x33, 0x6,0x4a,0x72, - 0x5,0x39,0x6d, 0x6,0x4a,0x61, 0xf,0x3c,0x44, 0xf,0x3c,0x45, - 0xf,0x3c,0x46, 0xf,0x3c,0x48, 0xf,0x3c,0x49, 0xf,0x3c,0x4a, - 0xf,0x3c,0x4e, 0xf,0x3c,0x4f, 0xf,0x3c,0x50, 0xf,0x3c,0x51, - 0xf,0x3c,0x52, 0xf,0x3c,0x53, 0xf,0x3c,0x54, 0xf,0x3c,0x55, - 0xf,0x3c,0x56, 0xf,0x3c,0x58, 0xf,0x3c,0x59, 0xf,0x3c,0x5b, - 0xf,0x3c,0x5c, 0x6,0x4a,0x69, 0x5,0x39,0x69, 0x6,0x4a,0x6b, - 0x4,0x38,0x5d, 0x6,0x4a,0x5b, 0x6,0x4a,0x60, 0x6,0x4a,0x5e, - 0x5,0x39,0x6b, 0xf,0x42,0x73, 0x6,0x54,0x41, 0x5,0x40,0x25, - 0x4,0x3e,0x41, 0x6,0x54,0x38, 0x4,0x3e,0x34, 0x6,0x54,0x3b, - 0x6,0x54,0x43, 0x4,0x3e,0x3b, 0x4,0x3e,0x43, 0x4,0x3e,0x3e, - 0x4,0x3e,0x2e, 0x6,0x54,0x4a, 0x5,0x40,0x29, 0x5,0x40,0x26, - 0x4,0x3e,0x40, 0x6,0x5e,0x31, 0x6,0x54,0x42, 0x4,0x3e,0x3a, - 0x5,0x40,0x2f, 0x5,0x40,0x2d, 0x4,0x3e,0x31, 0x6,0x5e,0x32, - 0x4,0x3e,0x42, 0x5,0x40,0x2c, 0x5,0x40,0x2e, 0x6,0x54,0x3e, - 0x6,0x54,0x4c, 0x7,0x24,0x3c, 0x6,0x54,0x47, 0x4,0x44,0x4b, - 0x6,0x54,0x3f, 0x6,0x54,0x46, 0x6,0x54,0x37, 0x6,0x54,0x36, - 0x5,0x40,0x2b, 0x5,0x40,0x28, 0x4,0x3e,0x3d, 0x6,0x54,0x3c, - 0x6,0x54,0x3d, 0x6,0x54,0x40, 0x6,0x54,0x45, 0xf,0x42,0x58, - 0xf,0x42,0x59, 0xf,0x42,0x5a, 0xf,0x42,0x5b, 0xf,0x42,0x5c, - 0xf,0x42,0x5d, 0xf,0x42,0x5e, 0xf,0x42,0x60, 0xf,0x42,0x61, - 0xf,0x42,0x62, 0xf,0x42,0x65, 0xf,0x42,0x66, 0xf,0x42,0x67, - 0xf,0x42,0x68, 0xf,0x42,0x69, 0xf,0x42,0x6a, 0xf,0x42,0x6c, - 0xf,0x42,0x6d, 0xf,0x42,0x6e, 0xf,0x42,0x6f, 0xf,0x42,0x70, - 0xf,0x42,0x71, 0xf,0x42,0x72, 0xf,0x42,0x75, 0xf,0x49,0x22, - 0xf,0x49,0x3e, 0x5,0x40,0x2a, 0x6,0x54,0x44, 0x4,0x3e,0x35, - 0x6,0x54,0x4d, 0x6,0x54,0x3a, 0x6,0x54,0x4b, 0xf,0x49,0x2f, - 0xf,0x42,0x6b, 0xf,0x4f,0x6c, 0x6,0x54,0x39, 0x7,0x24,0x3d, - 0x4,0x44,0x54, 0x4,0x44,0x47, 0x4,0x44,0x48, 0x4,0x44,0x4c, - 0x5,0x46,0x6b, 0x4,0x44,0x4e, 0x5,0x46,0x6a, 0x5,0x46,0x74, - 0x5,0x46,0x76, 0x4,0x44,0x45, 0x4,0x44,0x53, 0x6,0x5e,0x44, - 0x5,0x46,0x6f, 0x6,0x5e,0x41, 0x6,0x5e,0x3a, 0x4,0x44,0x51, - 0x4,0x44,0x50, 0x5,0x46,0x75, 0x5,0x46,0x72, 0x5,0x46,0x6d, - 0x7,0x24,0x40, 0x7,0x24,0x3f, 0x5,0x46,0x77, 0x6,0x5e,0x45, - 0x4,0x44,0x4f, 0x6,0x5e,0x39, 0x6,0x5e,0x42, 0x5,0x46,0x70, - 0x5,0x46,0x71, 0x4,0x44,0x41, 0x6,0x5e,0x3d, 0x5,0x4d,0x7a, - 0x7,0x24,0x3e, 0x6,0x5e,0x34, 0x5,0x46,0x6e, 0x6,0x5e,0x3f, - 0x5,0x46,0x73, 0xf,0x49,0x23, 0xf,0x49,0x24, 0xf,0x49,0x25, - 0xf,0x49,0x26, 0xf,0x49,0x27, 0xf,0x49,0x28, 0xf,0x49,0x29, - 0xf,0x49,0x2b, 0xf,0x49,0x2c, 0xf,0x49,0x2d, 0xf,0x49,0x2e, - 0xf,0x49,0x30, 0xf,0x49,0x31, 0xf,0x49,0x34, 0xf,0x49,0x36, - 0xf,0x49,0x37, 0xf,0x49,0x38, 0xf,0x49,0x39, 0xf,0x49,0x3a, - 0xf,0x49,0x3c, 0xf,0x49,0x3d, 0xf,0x49,0x41, 0xf,0x49,0x42, - 0xf,0x49,0x43, 0xf,0x4f,0x6d, 0x7,0x22,0x68, 0x4,0x44,0x42, - 0x6,0x5e,0x3c, 0x6,0x5e,0x43, 0x6,0x5e,0x35, 0x5,0x46,0x6c, - 0x6,0x5e,0x33, 0x6,0x5e,0x37, 0x6,0x5e,0x38, 0xf,0x49,0x3b, - 0x6,0x5e,0x36, 0xf,0x49,0x2a, 0x7,0x24,0x62, 0x7,0x24,0x52, - 0x7,0x24,0x4d, 0x4,0x4a,0x60, 0x7,0x24,0x5a, 0x7,0x24,0x54, - 0x7,0x24,0x4c, 0x4,0x4a,0x65, 0x4,0x4a,0x67, 0x5,0x4e,0x25, - 0x7,0x24,0x63, 0x7,0x24,0x4e, 0x7,0x24,0x50, 0x7,0x24,0x56, - 0x4,0x4a,0x5c, 0x7,0x24,0x57, 0x7,0x24,0x49, 0x5,0x4e,0x21, - 0x7,0x24,0x65, 0x7,0x24,0x47, 0x7,0x24,0x44, 0x4,0x4a,0x66, - 0x5,0x4d,0x7b, 0x5,0x4e,0x24, 0x7,0x24,0x64, 0x4,0x4a,0x5b, - 0x7,0x24,0x5b, 0x4,0x4a,0x5a, 0x7,0x24,0x59, 0x5,0x4d,0x7e, - 0x7,0x24,0x43, 0x7,0x24,0x67, 0x5,0x4e,0x23, 0x5,0x4d,0x7d, - 0x7,0x24,0x53, 0x7,0x24,0x42, 0x7,0x3a,0x69, 0x7,0x24,0x45, - 0x7,0x24,0x68, 0x5,0x4e,0x22, 0x7,0x24,0x41, 0x7,0x24,0x5e, - 0x7,0x24,0x66, 0x5,0x4e,0x26, 0x5,0x4e,0x28, 0x5,0x4d,0x7c, - 0x4,0x4a,0x5e, 0x7,0x24,0x5f, 0x7,0x24,0x4b, 0x7,0x24,0x51, - 0x5,0x4e,0x27, 0x7,0x24,0x5c, 0xf,0x4f,0x59, 0xf,0x4f,0x5a, - 0xf,0x4f,0x5b, 0xf,0x4f,0x5c, 0xf,0x4f,0x5d, 0xf,0x4f,0x5e, - 0xf,0x4f,0x5f, 0xf,0x4f,0x62, 0xf,0x4f,0x63, 0xf,0x4f,0x64, - 0xf,0x4f,0x65, 0xf,0x4f,0x66, 0xf,0x4f,0x67, 0xf,0x4f,0x68, - 0xf,0x4f,0x6a, 0xf,0x4f,0x6b, 0xf,0x4f,0x6f, 0xf,0x4f,0x70, - 0xf,0x4f,0x71, 0xf,0x4f,0x72, 0xf,0x4f,0x73, 0xf,0x4f,0x74, - 0xf,0x4f,0x75, 0xf,0x4f,0x76, 0xf,0x4f,0x77, 0xf,0x4f,0x78, - 0xf,0x4f,0x7b, 0xf,0x4f,0x7c, 0xf,0x55,0x51, 0x7,0x24,0x55, - 0x7,0x24,0x60, 0x7,0x2f,0x30, 0x4,0x4a,0x63, 0x7,0x24,0x46, - 0x7,0x24,0x5d, 0x7,0x24,0x48, 0x7,0x24,0x4a, 0xf,0x55,0x4a, - 0xf,0x4f,0x7e, 0xf,0x49,0x40, 0x4,0x50,0x7c, 0x5,0x55,0x35, - 0x5,0x55,0x34, 0x5,0x55,0x28, 0x5,0x55,0x29, 0x5,0x55,0x2b, - 0x7,0x2f,0x33, 0x5,0x55,0x30, 0x7,0x2f,0x47, 0x7,0x2f,0x40, - 0x7,0x2f,0x3a, 0x4,0x50,0x79, 0x7,0x2f,0x39, 0x4,0x50,0x7e, - 0x5,0x55,0x33, 0x7,0x2f,0x3d, 0x7,0x2f,0x31, 0x7,0x2f,0x37, - 0x7,0x2f,0x46, 0x7,0x2f,0x3b, 0x7,0x2f,0x38, 0x7,0x2f,0x43, - 0x7,0x2f,0x36, 0x7,0x2f,0x32, 0x5,0x55,0x31, 0x5,0x55,0x2a, - 0x5,0x5b,0x77, 0x7,0x2f,0x3c, 0x7,0x2f,0x49, 0x5,0x55,0x2c, - 0x5,0x5b,0x79, 0x5,0x55,0x32, 0x7,0x2f,0x2f, 0x7,0x2f,0x34, - 0x7,0x2f,0x3e, 0x7,0x2f,0x41, 0xf,0x55,0x46, 0xf,0x55,0x48, - 0xf,0x55,0x49, 0xf,0x55,0x4b, 0xf,0x55,0x4c, 0xf,0x55,0x4f, - 0xf,0x55,0x50, 0xf,0x55,0x52, 0xf,0x55,0x53, 0xf,0x55,0x54, - 0xf,0x55,0x55, 0xf,0x55,0x57, 0xf,0x5a,0x6d, 0x5,0x55,0x2f, - 0x7,0x2f,0x3f, 0x7,0x2f,0x45, 0x7,0x2f,0x48, 0x7,0x2f,0x4a, - 0x7,0x2f,0x2e, 0x7,0x2f,0x44, 0x4,0x51,0x21, 0xf,0x4f,0x61, - 0xf,0x5a,0x66, 0xf,0x5a,0x5f, 0x5,0x54,0x3a, 0x5,0x5b,0x7c, - 0x4,0x56,0x5a, 0x4,0x56,0x5f, 0x5,0x5b,0x7a, 0x7,0x38,0x7a, - 0x7,0x38,0x6e, 0x4,0x5b,0x52, 0x5,0x5b,0x7b, 0x5,0x5b,0x78, - 0x7,0x38,0x70, 0x7,0x38,0x76, 0x7,0x38,0x6f, 0x7,0x38,0x79, - 0x7,0x38,0x74, 0x7,0x38,0x73, 0x5,0x62,0x38, 0x7,0x38,0x75, - 0x7,0x38,0x7b, 0x5,0x5b,0x7d, 0x7,0x38,0x77, 0x5,0x55,0x37, - 0x3,0x55,0x3a, 0x7,0x38,0x78, 0xf,0x5a,0x60, 0xf,0x5a,0x61, - 0xf,0x5a,0x62, 0xf,0x5a,0x63, 0xf,0x5a,0x64, 0xf,0x5a,0x65, - 0xf,0x5a,0x67, 0xf,0x5a,0x69, 0xf,0x5a,0x6b, 0xf,0x5a,0x70, - 0x7,0x38,0x72, 0x5,0x5b,0x7e, 0x7,0x38,0x7c, 0x7,0x38,0x71, - 0xf,0x55,0x4e, 0xf,0x5a,0x6c, 0xf,0x5a,0x6f, 0xf,0x55,0x47, - 0xf,0x55,0x4d, 0xf,0x5a,0x5e, 0x7,0x2f,0x35, 0x5,0x62,0x3f, - 0x5,0x62,0x46, 0x5,0x62,0x45, 0x4,0x5b,0x5d, 0x5,0x62,0x3d, - 0x5,0x62,0x39, 0x5,0x62,0x42, 0x7,0x40,0x40, 0x7,0x40,0x46, - 0x4,0x5b,0x59, 0x5,0x62,0x4b, 0x5,0x62,0x44, 0x7,0x40,0x3c, - 0x5,0x62,0x41, 0x5,0x62,0x4a, 0x4,0x5b,0x58, 0x5,0x62,0x43, - 0x7,0x40,0x47, 0x5,0x62,0x3b, 0x7,0x40,0x41, 0x5,0x62,0x40, - 0x7,0x40,0x48, 0x7,0x40,0x3a, 0x4,0x5b,0x5f, 0x4,0x5b,0x55, - 0x7,0x40,0x45, 0x7,0x40,0x44, 0x7,0x40,0x3e, 0x5,0x62,0x3a, - 0x4,0x5b,0x53, 0x5,0x62,0x3c, 0x5,0x62,0x3e, 0x5,0x62,0x49, - 0x5,0x62,0x4c, 0x5,0x62,0x47, 0x7,0x40,0x3f, 0x4,0x5b,0x5c, - 0x7,0x40,0x42, 0x7,0x47,0x5f, 0x5,0x62,0x4d, 0xf,0x5f,0x33, - 0xf,0x5f,0x35, 0xf,0x5f,0x36, 0xf,0x5f,0x37, 0xf,0x5f,0x39, - 0xf,0x5f,0x3a, 0xf,0x5f,0x3b, 0xf,0x5f,0x3c, 0xf,0x5f,0x3d, - 0xf,0x5f,0x3e, 0xf,0x5f,0x3f, 0xf,0x5f,0x40, 0xf,0x5f,0x41, - 0xf,0x5f,0x42, 0xf,0x5f,0x43, 0xf,0x62,0x64, 0xf,0x62,0x65, - 0xf,0x62,0x6c, 0x7,0x47,0x5e, 0x7,0x40,0x3d, 0x7,0x40,0x39, - 0x7,0x40,0x43, 0x7,0x40,0x3b, 0xf,0x5f,0x34, 0xf,0x5a,0x6a, - 0xf,0x5a,0x6e, 0x5,0x62,0x48, 0x7,0x47,0x65, 0x7,0x47,0x5c, - 0x7,0x47,0x62, 0x4,0x5f,0x7c, 0x4,0x5f,0x7a, 0x7,0x47,0x53, - 0x5,0x68,0x36, 0x7,0x47,0x56, 0x7,0x47,0x54, 0x7,0x47,0x5b, - 0x7,0x47,0x5a, 0x7,0x47,0x55, 0x5,0x68,0x35, 0x7,0x47,0x59, - 0x7,0x47,0x5d, 0x5,0x6c,0x45, 0x7,0x47,0x61, 0xf,0x62,0x66, - 0xf,0x62,0x67, 0xf,0x62,0x68, 0xf,0x62,0x69, 0xf,0x62,0x6a, - 0xf,0x62,0x6d, 0xf,0x62,0x6e, 0xf,0x62,0x6f, 0xf,0x62,0x70, - 0xf,0x62,0x71, 0x7,0x47,0x57, 0x7,0x47,0x60, 0x7,0x47,0x66, - 0x7,0x47,0x64, 0x7,0x47,0x63, 0x7,0x47,0x58, 0x5,0x6c,0x47, - 0x5,0x6c,0x4a, 0x5,0x6c,0x4b, 0x7,0x4e,0x2b, 0x4,0x63,0x59, - 0x4,0x63,0x5d, 0x7,0x4e,0x2a, 0x7,0x4e,0x29, 0x5,0x6c,0x48, - 0x4,0x63,0x5c, 0x7,0x4e,0x2e, 0x4,0x63,0x57, 0x4,0x63,0x58, - 0x4,0x63,0x56, 0x7,0x4e,0x2d, 0x5,0x70,0x3b, 0x5,0x6c,0x49, - 0x5,0x6c,0x4c, 0x7,0x4e,0x2f, 0xf,0x65,0x42, 0xf,0x65,0x43, - 0xf,0x65,0x44, 0x7,0x4e,0x2c, 0x4,0x66,0x48, 0x5,0x70,0x40, - 0x7,0x53,0x56, 0x5,0x70,0x3f, 0x5,0x70,0x3d, 0x4,0x66,0x4b, - 0x7,0x53,0x54, 0x5,0x70,0x3c, 0x7,0x53,0x59, 0x7,0x53,0x53, - 0x4,0x66,0x4d, 0x7,0x53,0x5f, 0x5,0x70,0x41, 0x7,0x53,0x55, - 0x7,0x53,0x5a, 0xf,0x67,0x68, 0xf,0x67,0x69, 0xf,0x67,0x6a, - 0xf,0x67,0x6b, 0xf,0x67,0x6d, 0xf,0x67,0x6e, 0xf,0x67,0x6f, - 0x7,0x53,0x5b, 0x7,0x53,0x5c, 0x7,0x53,0x5d, 0x7,0x53,0x5e, - 0x5,0x70,0x3a, 0xf,0x67,0x70, 0xf,0x69,0x55, 0x7,0x58,0x2e, - 0x7,0x53,0x57, 0x7,0x58,0x2f, 0x5,0x73,0x54, 0x5,0x70,0x42, - 0x7,0x58,0x2d, 0x5,0x73,0x55, 0x7,0x58,0x31, 0x4,0x68,0x72, - 0x7,0x58,0x32, 0xf,0x69,0x53, 0xf,0x69,0x54, 0x7,0x58,0x33, - 0x7,0x58,0x30, 0x7,0x58,0x2c, 0x5,0x76,0x21, 0x5,0x76,0x22, - 0x7,0x5b,0x69, 0x7,0x5b,0x68, 0x5,0x75,0x7e, 0x7,0x5b,0x67, - 0x5,0x75,0x7d, 0xf,0x6a,0x5b, 0xf,0x6a,0x5c, 0xf,0x6a,0x5d, - 0x7,0x5b,0x6a, 0x7,0x5b,0x66, 0x7,0x5e,0x76, 0x5,0x77,0x67, - 0x7,0x5e,0x77, 0x4,0x6c,0x71, 0x7,0x5e,0x74, 0x5,0x77,0x66, - 0x7,0x5e,0x75, 0x4,0x6c,0x72, 0x7,0x60,0x79, 0x7,0x60,0x78, - 0x7,0x60,0x77, 0xf,0x6c,0x2f, 0x7,0x62,0x39, 0x4,0x6d,0x58, - 0x5,0x7a,0x2b, 0x5,0x7a,0x2a, 0x4,0x6d,0x59, 0x4,0x6d,0x74, - 0x5,0x7a,0x69, 0x5,0x7a,0x6a, 0x7,0x63,0x57, 0x7,0x64,0x4b, - 0x5,0x7b,0x41, 0xf,0x6d,0x26, 0x7,0x65,0x5c, 0x5,0x7c,0x3c, - 0x6,0x23,0x2f, 0x6,0x25,0x33, 0x4,0x23,0x24, 0x4,0x23,0x25, - 0x6,0x25,0x32, 0xf,0x22,0x5f, 0xf,0x22,0x60, 0xf,0x22,0x61, - 0x6,0x25,0x34, 0x4,0x24,0x53, 0x4,0x24,0x54, 0x5,0x24,0x54, - 0x6,0x28,0x4c, 0x5,0x24,0x55, 0x5,0x24,0x57, 0xf,0x24,0x6b, - 0xf,0x24,0x6c, 0xf,0x24,0x6d, 0xf,0x24,0x70, 0xf,0x24,0x72, - 0x6,0x28,0x4b, 0x5,0x26,0x74, 0x4,0x27,0x28, 0x5,0x26,0x75, - 0xf,0x27,0x6f, 0xf,0x27,0x70, 0xf,0x27,0x71, 0xf,0x27,0x73, - 0xf,0x27,0x74, 0xf,0x27,0x75, 0xf,0x27,0x76, 0xf,0x27,0x77, - 0x6,0x2c,0x5f, 0xf,0x27,0x72, 0x6,0x2c,0x5e, 0x4,0x27,0x2a, - 0x5,0x24,0x56, 0x5,0x2a,0x25, 0x6,0x32,0x4c, 0x5,0x2a,0x26, - 0x6,0x32,0x44, 0x5,0x2a,0x27, 0x6,0x32,0x4b, 0x6,0x32,0x46, - 0xf,0x2b,0x6f, 0xf,0x2b,0x70, 0xf,0x2b,0x71, 0xf,0x2b,0x72, - 0xf,0x2b,0x73, 0xf,0x2b,0x74, 0xf,0x2b,0x75, 0xf,0x2b,0x76, - 0xf,0x2b,0x77, 0xf,0x2b,0x78, 0xf,0x2b,0x79, 0xf,0x2b,0x7b, - 0xf,0x2b,0x7c, 0xf,0x2b,0x7d, 0xf,0x2b,0x7e, 0xf,0x2c,0x21, - 0xf,0x2c,0x23, 0x4,0x2a,0x29, 0x6,0x32,0x45, 0x6,0x32,0x43, - 0x6,0x32,0x47, 0x6,0x39,0x3a, 0x5,0x2a,0x28, 0x6,0x32,0x4a, - 0xf,0x2c,0x22, 0x6,0x32,0x49, 0x5,0x2e,0x4f, 0x5,0x2e,0x4e, - 0x6,0x39,0x36, 0x6,0x39,0x39, 0xf,0x30,0x6a, 0x4,0x32,0x6f, - 0x6,0x39,0x37, 0x4,0x2d,0x74, 0x6,0x39,0x34, 0x5,0x2e,0x4b, - 0xf,0x30,0x5d, 0xf,0x30,0x5e, 0xf,0x30,0x5f, 0xf,0x30,0x60, - 0xf,0x30,0x61, 0xf,0x30,0x62, 0xf,0x30,0x63, 0xf,0x30,0x64, - 0xf,0x30,0x65, 0xf,0x30,0x66, 0xf,0x30,0x68, 0xf,0x30,0x69, - 0xf,0x30,0x6b, 0xf,0x30,0x6c, 0xf,0x30,0x6e, 0xf,0x30,0x6f, - 0xf,0x30,0x70, 0xf,0x30,0x71, 0xf,0x30,0x72, 0x5,0x2e,0x4c, - 0x6,0x39,0x35, 0x6,0x39,0x3b, 0x6,0x39,0x3c, 0xf,0x30,0x67, - 0xf,0x30,0x6d, 0x6,0x39,0x38, 0x5,0x2e,0x4d, 0x6,0x41,0x4b, - 0x4,0x32,0x74, 0x5,0x33,0x44, 0x6,0x41,0x4f, 0x4,0x32,0x73, - 0x4,0x32,0x75, 0x6,0x41,0x4e, 0x6,0x41,0x54, 0x6,0x41,0x51, - 0x6,0x41,0x4d, 0x6,0x41,0x4c, 0x6,0x4a,0x73, 0x6,0x41,0x52, - 0x6,0x41,0x50, 0x6,0x41,0x53, 0xf,0x36,0x24, 0xf,0x36,0x3e, - 0xf,0x36,0x3f, 0xf,0x36,0x40, 0xf,0x36,0x41, 0xf,0x36,0x43, - 0xf,0x36,0x44, 0xf,0x36,0x45, 0xf,0x36,0x46, 0xf,0x36,0x47, - 0xf,0x36,0x49, 0xf,0x36,0x4a, 0xf,0x36,0x4c, 0xf,0x36,0x4d, - 0xf,0x36,0x4e, 0xf,0x36,0x50, 0x6,0x41,0x49, 0x6,0x41,0x48, - 0xf,0x36,0x4b, 0x5,0x33,0x43, 0x5,0x33,0x45, 0x6,0x41,0x55, - 0x4,0x38,0x69, 0x6,0x4a,0x78, 0x6,0x41,0x4a, 0x5,0x39,0x71, - 0x5,0x39,0x6f, 0x6,0x4a,0x7e, 0x6,0x4b,0x21, 0x5,0x39,0x6e, - 0x6,0x4a,0x75, 0x4,0x38,0x66, 0x6,0x4a,0x7a, 0x6,0x4a,0x74, - 0x6,0x4a,0x7d, 0x4,0x38,0x63, 0x5,0x39,0x70, 0x6,0x4a,0x77, - 0xf,0x3c,0x5e, 0xf,0x3c,0x5f, 0xf,0x3c,0x60, 0xf,0x3c,0x61, - 0xf,0x3c,0x62, 0xf,0x3c,0x63, 0xf,0x3c,0x64, 0xf,0x3c,0x66, - 0xf,0x3c,0x67, 0xf,0x3c,0x68, 0xf,0x3c,0x69, 0xf,0x3c,0x6b, - 0xf,0x3c,0x6c, 0xf,0x3c,0x6d, 0xf,0x3c,0x6e, 0xf,0x3c,0x6f, - 0xf,0x3c,0x70, 0xf,0x3c,0x71, 0xf,0x3c,0x72, 0xf,0x3c,0x75, - 0xf,0x3c,0x77, 0xf,0x3c,0x78, 0xf,0x3c,0x79, 0xf,0x3c,0x7a, - 0xf,0x3c,0x7b, 0xf,0x3c,0x7c, 0xf,0x3d,0x21, 0x6,0x4a,0x79, - 0x6,0x4a,0x7c, 0x4,0x38,0x67, 0x6,0x4a,0x76, 0x6,0x4a,0x7b, - 0xf,0x3c,0x6a, 0x5,0x39,0x72, 0x5,0x40,0x34, 0x6,0x54,0x5a, - 0x6,0x54,0x58, 0x5,0x40,0x30, 0x6,0x54,0x56, 0x6,0x54,0x5d, - 0x4,0x3e,0x47, 0x6,0x54,0x57, 0x4,0x3e,0x44, 0x6,0x54,0x5b, - 0x6,0x54,0x5e, 0x4,0x3e,0x45, 0x5,0x40,0x32, 0x6,0x54,0x53, - 0x6,0x54,0x63, 0x6,0x54,0x5f, 0x6,0x54,0x64, 0x5,0x40,0x35, - 0x6,0x54,0x5c, 0x6,0x54,0x62, 0xf,0x42,0x76, 0xf,0x42,0x79, - 0xf,0x42,0x7b, 0xf,0x42,0x7c, 0xf,0x42,0x7d, 0xf,0x43,0x21, - 0xf,0x43,0x22, 0xf,0x43,0x23, 0xf,0x43,0x25, 0xf,0x43,0x26, - 0xf,0x43,0x27, 0xf,0x43,0x28, 0xf,0x43,0x29, 0xf,0x43,0x2a, - 0xf,0x43,0x2b, 0xf,0x43,0x2d, 0xf,0x43,0x2e, 0xf,0x43,0x30, - 0xf,0x43,0x33, 0xf,0x43,0x34, 0xf,0x43,0x35, 0xf,0x43,0x36, - 0xf,0x43,0x37, 0xf,0x43,0x38, 0xf,0x43,0x39, 0xf,0x43,0x3a, - 0xf,0x43,0x3b, 0xf,0x43,0x3d, 0xf,0x43,0x3e, 0x6,0x54,0x51, - 0x6,0x54,0x52, 0x6,0x54,0x55, 0x6,0x54,0x66, 0x4,0x3e,0x4a, - 0x6,0x54,0x61, 0x6,0x54,0x65, 0x6,0x5a,0x54, 0xf,0x43,0x2c, - 0x5,0x40,0x33, 0x5,0x40,0x31, 0xf,0x49,0x54, 0x6,0x5e,0x51, - 0x6,0x5e,0x50, 0x5,0x46,0x7e, 0x6,0x5e,0x4a, 0x5,0x47,0x22, - 0x4,0x44,0x55, 0x5,0x46,0x7c, 0x5,0x46,0x7b, 0x5,0x46,0x7a, - 0x7,0x24,0x70, 0x7,0x24,0x6a, 0x6,0x5e,0x46, 0x5,0x47,0x21, - 0x6,0x5e,0x47, 0x6,0x5e,0x48, 0x5,0x46,0x79, 0x6,0x5e,0x4b, - 0x6,0x5e,0x4f, 0xf,0x49,0x44, 0xf,0x49,0x45, 0xf,0x49,0x46, - 0xf,0x49,0x47, 0xf,0x49,0x49, 0xf,0x49,0x4a, 0xf,0x49,0x4c, - 0xf,0x49,0x4d, 0xf,0x49,0x4e, 0xf,0x49,0x4f, 0xf,0x49,0x50, - 0xf,0x49,0x51, 0xf,0x49,0x52, 0xf,0x49,0x53, 0xf,0x49,0x55, - 0xf,0x49,0x56, 0xf,0x49,0x57, 0xf,0x49,0x5a, 0xf,0x49,0x5b, - 0xf,0x49,0x5d, 0xf,0x49,0x5e, 0xf,0x49,0x60, 0xf,0x49,0x62, - 0xf,0x49,0x63, 0xf,0x49,0x64, 0x4,0x44,0x5d, 0x5,0x46,0x7d, - 0x6,0x5e,0x4c, 0x6,0x5e,0x52, 0x6,0x5e,0x49, 0x6,0x5e,0x4d, - 0xf,0x49,0x5c, 0x6,0x54,0x60, 0xf,0x42,0x7e, 0xf,0x42,0x7a, - 0x4,0x4a,0x6b, 0x5,0x4e,0x2c, 0x7,0x24,0x74, 0x7,0x24,0x6d, - 0x7,0x24,0x69, 0x5,0x4e,0x2a, 0x7,0x24,0x6c, 0x7,0x24,0x71, - 0x7,0x24,0x72, 0x7,0x24,0x75, 0x7,0x24,0x6b, 0x5,0x4e,0x29, - 0xf,0x4e,0x22, 0x5,0x4e,0x2b, 0x7,0x24,0x73, 0xf,0x50,0x23, - 0xf,0x50,0x24, 0xf,0x50,0x26, 0xf,0x50,0x27, 0xf,0x50,0x28, - 0xf,0x50,0x29, 0xf,0x50,0x2a, 0xf,0x50,0x2b, 0xf,0x50,0x2e, - 0xf,0x50,0x2f, 0xf,0x50,0x31, 0xf,0x50,0x32, 0xf,0x50,0x33, - 0xf,0x50,0x34, 0xf,0x50,0x35, 0xf,0x50,0x37, 0xf,0x50,0x38, - 0xf,0x50,0x39, 0xf,0x50,0x3a, 0xf,0x50,0x3b, 0xf,0x50,0x3c, - 0x7,0x24,0x6e, 0xf,0x50,0x2c, 0x7,0x2a,0x71, 0xf,0x50,0x2d, - 0xf,0x50,0x30, 0xf,0x50,0x25, 0xf,0x50,0x22, 0x5,0x4e,0x2e, - 0x5,0x4e,0x2d, 0x6,0x5e,0x4e, 0x4,0x51,0x2a, 0x7,0x2f,0x52, - 0x7,0x2f,0x66, 0x7,0x2f,0x50, 0x7,0x2f,0x60, 0x7,0x2f,0x5e, - 0x5,0x55,0x3b, 0x4,0x51,0x27, 0x7,0x2f,0x61, 0x7,0x2f,0x63, - 0x7,0x2f,0x55, 0x7,0x24,0x6f, 0x4,0x51,0x28, 0x7,0x2f,0x56, - 0x7,0x2f,0x64, 0x7,0x2f,0x65, 0x4,0x51,0x26, 0x7,0x2f,0x58, - 0x7,0x2f,0x54, 0x4,0x51,0x29, 0x7,0x2f,0x67, 0x5,0x55,0x3a, - 0x5,0x55,0x3c, 0x7,0x2f,0x62, 0x7,0x2f,0x59, 0x7,0x2f,0x5d, - 0x7,0x2f,0x5a, 0x7,0x2f,0x4b, 0x7,0x2f,0x53, 0x7,0x2f,0x5c, - 0xf,0x55,0x59, 0xf,0x55,0x5a, 0xf,0x55,0x5b, 0xf,0x55,0x5c, - 0xf,0x55,0x5d, 0xf,0x55,0x5e, 0xf,0x55,0x5f, 0xf,0x55,0x60, - 0xf,0x55,0x61, 0xf,0x55,0x62, 0xf,0x55,0x63, 0xf,0x55,0x66, - 0xf,0x55,0x67, 0xf,0x55,0x68, 0xf,0x55,0x6a, 0xf,0x55,0x6b, - 0xf,0x55,0x6d, 0xf,0x55,0x6e, 0xf,0x55,0x70, 0xf,0x55,0x71, - 0xf,0x55,0x72, 0xf,0x55,0x65, 0x5,0x55,0x38, 0x7,0x2f,0x4d, - 0x7,0x2f,0x4e, 0x7,0x2f,0x5b, 0x7,0x2f,0x5f, 0x7,0x31,0x7a, - 0x7,0x2f,0x51, 0x7,0x2c,0x7b, 0xf,0x55,0x6f, 0x5,0x55,0x3d, - 0x5,0x55,0x39, 0x7,0x2f,0x4c, 0x7,0x24,0x76, 0x7,0x2f,0x57, - 0x7,0x39,0x23, 0x4,0x56,0x61, 0x7,0x39,0x25, 0x5,0x55,0x3e, - 0x7,0x39,0x29, 0x7,0x39,0x28, 0x4,0x56,0x63, 0x7,0x2f,0x68, - 0x5,0x5c,0x21, 0x7,0x38,0x7d, 0x5,0x5c,0x24, 0x5,0x5c,0x22, - 0xf,0x5a,0x71, 0xf,0x5a,0x72, 0xf,0x5a,0x76, 0xf,0x5a,0x77, - 0xf,0x5a,0x78, 0xf,0x5a,0x79, 0xf,0x5a,0x7a, 0xf,0x5a,0x7b, - 0xf,0x5a,0x7c, 0xf,0x5a,0x7d, 0xf,0x5a,0x7e, 0xf,0x5b,0x21, - 0xf,0x5b,0x22, 0xf,0x5b,0x23, 0x7,0x38,0x7e, 0x7,0x39,0x24, - 0x7,0x39,0x22, 0x5,0x5c,0x23, 0x7,0x39,0x21, 0xf,0x55,0x69, - 0x7,0x40,0x4f, 0x4,0x5b,0x62, 0x7,0x40,0x4e, 0x5,0x62,0x4e, - 0x7,0x40,0x4b, 0x7,0x40,0x53, 0x7,0x40,0x51, 0x7,0x40,0x4c, - 0x4,0x5b,0x63, 0x5,0x62,0x4f, 0x5,0x62,0x50, 0x4,0x5b,0x61, - 0x7,0x40,0x54, 0x7,0x40,0x4a, 0x7,0x40,0x52, 0xf,0x5f,0x44, - 0xf,0x5f,0x46, 0xf,0x5f,0x45, 0xf,0x5f,0x47, 0xf,0x5f,0x48, - 0xf,0x5f,0x49, 0xf,0x5f,0x4a, 0xf,0x5f,0x4c, 0xf,0x5f,0x4d, - 0x7,0x40,0x50, 0x7,0x42,0x22, 0x7,0x40,0x55, 0x7,0x40,0x4d, - 0x7,0x40,0x49, 0x7,0x39,0x2a, 0xf,0x61,0x76, 0xf,0x5a,0x74, - 0xf,0x5a,0x75, 0x7,0x47,0x6c, 0x5,0x68,0x37, 0x4,0x60,0x21, - 0x7,0x47,0x6d, 0x4,0x60,0x22, 0x7,0x47,0x6a, 0xf,0x62,0x74, - 0xf,0x62,0x75, 0xf,0x62,0x76, 0xf,0x62,0x77, 0x7,0x47,0x69, - 0x7,0x47,0x67, 0x7,0x47,0x6b, 0xf,0x5f,0x4b, 0x7,0x47,0x68, - 0xf,0x65,0x45, 0x5,0x6c,0x4f, 0x7,0x4e,0x30, 0x7,0x4e,0x33, - 0x7,0x4e,0x3b, 0x5,0x6c,0x4e, 0x5,0x6c,0x4d, 0x5,0x6c,0x51, - 0x4,0x60,0x23, 0x7,0x4e,0x32, 0x7,0x4e,0x38, 0x4,0x63,0x62, - 0x4,0x63,0x60, 0x7,0x4e,0x3c, 0x7,0x4e,0x31, 0x7,0x4e,0x35, - 0x7,0x4e,0x37, 0xf,0x65,0x48, 0x7,0x4e,0x34, 0xf,0x65,0x46, - 0xf,0x65,0x47, 0xf,0x65,0x4a, 0xf,0x65,0x4b, 0xf,0x65,0x4c, - 0xf,0x65,0x4d, 0xf,0x65,0x4e, 0x7,0x4e,0x39, 0x7,0x4e,0x36, - 0x7,0x4e,0x3a, 0x5,0x6c,0x50, 0x7,0x53,0x64, 0x4,0x63,0x61, - 0x7,0x53,0x66, 0x5,0x70,0x43, 0x4,0x66,0x4f, 0x7,0x53,0x67, - 0x7,0x53,0x62, 0x7,0x53,0x63, 0x7,0x53,0x65, 0xf,0x67,0x71, - 0xf,0x67,0x72, 0xf,0x67,0x73, 0xf,0x67,0x74, 0xf,0x67,0x75, - 0x7,0x58,0x36, 0x5,0x73,0x56, 0x4,0x6a,0x4f, 0x7,0x58,0x37, - 0x7,0x58,0x38, 0x7,0x58,0x34, 0xf,0x69,0x56, 0xf,0x69,0x57, - 0xf,0x69,0x58, 0x7,0x58,0x35, 0x7,0x5b,0x24, 0x7,0x5b,0x6e, - 0x7,0x5b,0x70, 0x7,0x5b,0x6d, 0x7,0x5c,0x44, 0x7,0x5b,0x6f, - 0x7,0x5b,0x6c, 0x7,0x5b,0x6b, 0x5,0x76,0x23, 0xf,0x6a,0x60, - 0x7,0x5e,0x78, 0xf,0x6a,0x5f, 0x5,0x77,0x68, 0x7,0x61,0x21, - 0x7,0x60,0x7c, 0x7,0x60,0x7e, 0x7,0x61,0x38, 0x7,0x60,0x7b, - 0x7,0x60,0x7d, 0x7,0x62,0x3a, 0x5,0x7a,0x6b, 0xf,0x6c,0x64, - 0xf,0x6c,0x65, 0x7,0x64,0x4d, 0x7,0x64,0x4c, 0x7,0x64,0x4e, - 0x7,0x65,0x37, 0x7,0x66,0x34, 0x5,0x21,0x4b, 0x6,0x23,0x30, - 0x6,0x28,0x4d, 0x6,0x28,0x4e, 0x5,0x24,0x58, 0x6,0x2c,0x62, - 0x6,0x2c,0x61, 0x6,0x2c,0x63, 0xf,0x27,0x78, 0xf,0x27,0x79, - 0x6,0x32,0x4e, 0x5,0x2a,0x2b, 0x5,0x2a,0x29, 0x6,0x32,0x4f, - 0x5,0x2a,0x2a, 0x6,0x32,0x51, 0xf,0x2c,0x24, 0xf,0x2c,0x25, - 0xf,0x2c,0x26, 0x6,0x32,0x4d, 0x6,0x32,0x50, 0x5,0x2e,0x51, - 0x5,0x2e,0x50, 0xf,0x30,0x73, 0x6,0x41,0x57, 0x6,0x41,0x56, - 0x6,0x41,0x58, 0xf,0x36,0x51, 0x4,0x38,0x6a, 0x6,0x4b,0x22, - 0x6,0x47,0x43, 0x6,0x4d,0x5d, 0x6,0x54,0x68, 0x6,0x54,0x69, - 0x6,0x5e,0x53, 0x5,0x47,0x23, 0x6,0x5e,0x56, 0x6,0x5e,0x55, - 0x6,0x5e,0x54, 0x7,0x24,0x7a, 0x5,0x4e,0x2f, 0x7,0x24,0x77, - 0x7,0x24,0x79, 0x7,0x24,0x78, 0x7,0x2f,0x69, 0x7,0x2f,0x6a, - 0x5,0x55,0x3f, 0x4,0x56,0x65, 0xf,0x5b,0x24, 0xf,0x5b,0x25, - 0xf,0x5b,0x26, 0xf,0x55,0x73, 0x7,0x40,0x56, 0x5,0x68,0x38, - 0xf,0x65,0x4f, 0xf,0x65,0x50, 0x7,0x4e,0x3d, 0x7,0x53,0x68, - 0x7,0x5b,0x71, 0x7,0x5e,0x79, 0x7,0x61,0x22, 0xf,0x24,0x73, - 0xf,0x24,0x74, 0x6,0x2c,0x64, 0x6,0x2c,0x65, 0x6,0x41,0x59, - 0x6,0x41,0x5a, 0xf,0x3d,0x22, 0xf,0x3d,0x23, 0x6,0x54,0x6a, - 0xf,0x49,0x65, 0x5,0x47,0x24, 0x5,0x55,0x40, 0xf,0x21,0x68, - 0x6,0x2b,0x6b, 0x5,0x2a,0x2c, 0x4,0x2a,0x2b, 0x4,0x2d,0x77, - 0xf,0x30,0x74, 0x5,0x31,0x6c, 0x6,0x4b,0x23, 0x6,0x54,0x6c, - 0x6,0x54,0x6b, 0x5,0x55,0x41, 0x7,0x24,0x7b, 0x7,0x24,0x7c, - 0x5,0x55,0x42, 0x6,0x22,0x25, 0x6,0x23,0x31, 0x6,0x25,0x35, - 0x6,0x28,0x4f, 0x4,0x27,0x2d, 0x6,0x2c,0x67, 0x6,0x2c,0x66, - 0x6,0x32,0x52, 0x4,0x2a,0x2d, 0x6,0x32,0x53, 0x6,0x32,0x54, - 0x6,0x39,0x3e, 0x4,0x2d,0x78, 0xf,0x30,0x75, 0x6,0x39,0x3d, - 0x6,0x41,0x5b, 0x6,0x41,0x5e, 0x6,0x41,0x5d, 0x4,0x32,0x78, - 0x6,0x41,0x5c, 0xf,0x36,0x52, 0xf,0x36,0x53, 0x6,0x4b,0x28, - 0x6,0x4b,0x24, 0x6,0x4b,0x26, 0x6,0x4b,0x27, 0x6,0x4b,0x29, - 0x6,0x4b,0x25, 0x6,0x4d,0x58, 0x6,0x54,0x6d, 0x6,0x54,0x6e, - 0xf,0x43,0x3f, 0x6,0x5e,0x58, 0x6,0x5e,0x59, 0xf,0x49,0x66, - 0x7,0x24,0x7d, 0xf,0x50,0x3e, 0x7,0x24,0x7e, 0x5,0x55,0x43, - 0x5,0x62,0x51, 0x4,0x51,0x2c, 0x7,0x2f,0x6b, 0x7,0x25,0x21, - 0x5,0x55,0x44, 0x7,0x39,0x2b, 0x7,0x39,0x2c, 0x5,0x5c,0x25, - 0x7,0x47,0x70, 0x5,0x6c,0x52, 0x7,0x58,0x39, 0x7,0x5b,0x72, - 0x7,0x63,0x58, 0x5,0x7b,0x42, 0x7,0x64,0x4f, 0xf,0x21,0x69, - 0x6,0x28,0x51, 0x5,0x24,0x59, 0x6,0x28,0x50, 0x4,0x27,0x2e, - 0x6,0x2c,0x6b, 0x6,0x2c,0x6a, 0x6,0x2c,0x69, 0x6,0x2c,0x68, - 0x6,0x32,0x56, 0x6,0x32,0x55, 0x5,0x2a,0x2d, 0x6,0x32,0x57, - 0x5,0x2a,0x2e, 0x5,0x2e,0x52, 0x4,0x2d,0x79, 0x4,0x2d,0x7b, - 0x6,0x39,0x41, 0x6,0x39,0x3f, 0x5,0x33,0x46, 0x5,0x33,0x47, - 0x6,0x41,0x5f, 0x6,0x41,0x62, 0x6,0x41,0x60, 0x6,0x4b,0x2b, - 0x4,0x38,0x6d, 0x6,0x4b,0x2e, 0x6,0x4b,0x2a, 0x6,0x4b,0x2c, - 0x6,0x4b,0x2d, 0x5,0x39,0x73, 0x5,0x39,0x76, 0x5,0x39,0x74, - 0x5,0x39,0x75, 0x4,0x38,0x6e, 0x5,0x40,0x38, 0x6,0x54,0x6f, - 0x4,0x3e,0x4d, 0x5,0x40,0x36, 0x5,0x40,0x37, 0x6,0x54,0x70, - 0xf,0x3d,0x24, 0x5,0x47,0x25, 0x6,0x5e,0x5b, 0x6,0x5e,0x5c, - 0x6,0x5e,0x5a, 0xf,0x49,0x67, 0x5,0x4e,0x32, 0x7,0x25,0x25, - 0x5,0x4e,0x31, 0x5,0x4e,0x30, 0x5,0x4e,0x33, 0x7,0x25,0x24, - 0x7,0x25,0x22, 0x5,0x4e,0x34, 0x7,0x25,0x23, 0x5,0x55,0x46, - 0x5,0x55,0x47, 0x5,0x55,0x48, 0x7,0x2f,0x6d, 0x5,0x55,0x45, - 0x7,0x2f,0x6c, 0x5,0x5c,0x26, 0x4,0x56,0x66, 0xf,0x5b,0x27, - 0xf,0x5b,0x28, 0x5,0x62,0x53, 0x5,0x62,0x52, 0x5,0x6c,0x53, - 0x7,0x53,0x69, 0x5,0x23,0x68, 0x6,0x39,0x43, 0x6,0x39,0x42, - 0x4,0x38,0x6f, 0x6,0x4b,0x2f, 0xf,0x3d,0x25, 0xf,0x3d,0x26, - 0x6,0x54,0x71, 0x6,0x5e,0x5d, 0x5,0x21,0x75, 0xf,0x22,0x63, - 0x6,0x25,0x36, 0xf,0x22,0x62, 0x6,0x28,0x53, 0xf,0x24,0x75, - 0x6,0x28,0x52, 0x6,0x28,0x54, 0x5,0x26,0x79, 0x5,0x27,0x22, - 0x5,0x26,0x78, 0x5,0x26,0x7b, 0x5,0x26,0x76, 0x5,0x26,0x7d, - 0x6,0x2c,0x6e, 0x4,0x27,0x30, 0x5,0x27,0x21, 0x6,0x2c,0x6c, - 0x5,0x26,0x7e, 0x5,0x27,0x23, 0x5,0x26,0x7c, 0x6,0x2c,0x6d, - 0xf,0x27,0x7b, 0xf,0x27,0x7c, 0xf,0x27,0x7e, 0xf,0x28,0x21, - 0x5,0x26,0x7a, 0x6,0x2c,0x6f, 0x6,0x2c,0x70, 0x5,0x2a,0x32, - 0x5,0x2a,0x30, 0x5,0x2a,0x2f, 0x6,0x32,0x5f, 0x6,0x32,0x5c, - 0x5,0x2a,0x33, 0x5,0x2a,0x31, 0x4,0x2a,0x30, 0x6,0x32,0x5a, - 0x6,0x32,0x59, 0xf,0x2c,0x28, 0xf,0x2c,0x29, 0x6,0x32,0x5b, - 0x6,0x32,0x5e, 0x6,0x32,0x58, 0x6,0x32,0x5d, 0x5,0x2a,0x34, - 0xf,0x27,0x7d, 0x5,0x2e,0x58, 0x5,0x2e,0x54, 0x5,0x2e,0x56, - 0x5,0x2e,0x57, 0x5,0x2e,0x55, 0x6,0x39,0x44, 0x5,0x2e,0x59, - 0x4,0x32,0x7b, 0x6,0x41,0x67, 0x6,0x41,0x68, 0x5,0x33,0x49, - 0x5,0x39,0x77, 0x4,0x32,0x7d, 0x4,0x32,0x7c, 0x5,0x33,0x4b, - 0x5,0x33,0x4c, 0xf,0x36,0x54, 0xf,0x36,0x55, 0x6,0x41,0x65, - 0x6,0x41,0x69, 0x6,0x41,0x64, 0x5,0x33,0x48, 0x4,0x38,0x71, - 0x4,0x38,0x74, 0x5,0x39,0x7d, 0x6,0x4b,0x34, 0x5,0x39,0x79, - 0x5,0x39,0x7b, 0x5,0x39,0x78, 0x6,0x4b,0x32, 0x6,0x4b,0x35, - 0xf,0x3d,0x27, 0xf,0x3d,0x28, 0x6,0x4b,0x33, 0x6,0x4b,0x30, - 0x6,0x4b,0x31, 0x5,0x39,0x7a, 0x5,0x39,0x7c, 0x5,0x33,0x4a, - 0xf,0x3d,0x29, 0x6,0x4b,0x36, 0x5,0x47,0x2b, 0x5,0x40,0x3e, - 0x5,0x40,0x3c, 0x4,0x3e,0x50, 0x6,0x5e,0x64, 0x6,0x54,0x73, - 0x5,0x47,0x26, 0x6,0x54,0x72, 0x6,0x54,0x75, 0x6,0x54,0x74, - 0xf,0x43,0x40, 0xf,0x43,0x41, 0x5,0x40,0x3d, 0x6,0x54,0x77, - 0x5,0x40,0x3b, 0x4,0x44,0x61, 0x5,0x47,0x2d, 0x5,0x47,0x28, - 0x5,0x47,0x2e, 0x5,0x47,0x2c, 0x6,0x5e,0x5f, 0x6,0x5e,0x63, - 0x5,0x47,0x27, 0x5,0x47,0x2a, 0x6,0x5e,0x67, 0x6,0x5e,0x62, - 0x6,0x5e,0x61, 0x5,0x40,0x3a, 0x6,0x5e,0x66, 0xf,0x49,0x68, - 0xf,0x49,0x69, 0xf,0x49,0x6a, 0xf,0x49,0x6b, 0x5,0x47,0x2f, - 0x5,0x47,0x29, 0x6,0x5e,0x60, 0x6,0x54,0x76, 0x6,0x5e,0x65, - 0xf,0x49,0x6c, 0x5,0x47,0x30, 0x5,0x4e,0x36, 0x7,0x25,0x26, - 0x4,0x4a,0x74, 0x5,0x4e,0x39, 0x5,0x4e,0x3a, 0x5,0x4e,0x38, - 0x4,0x4a,0x70, 0x5,0x4e,0x35, 0xf,0x50,0x3f, 0x7,0x25,0x28, - 0x7,0x25,0x27, 0x7,0x2f,0x70, 0x5,0x55,0x49, 0x5,0x55,0x4e, - 0x7,0x2f,0x71, 0x5,0x55,0x4b, 0x5,0x55,0x4d, 0x5,0x55,0x4a, - 0x5,0x55,0x4c, 0x7,0x2f,0x6f, 0x7,0x39,0x30, 0x7,0x39,0x2e, - 0x5,0x5c,0x27, 0x4,0x56,0x68, 0x4,0x56,0x69, 0x7,0x2f,0x6e, - 0x7,0x39,0x2f, 0x7,0x40,0x57, 0x7,0x40,0x58, 0x5,0x68,0x3a, - 0x7,0x53,0x6a, 0x7,0x47,0x72, 0x7,0x47,0x73, 0x7,0x47,0x71, - 0x5,0x68,0x39, 0x7,0x4e,0x3f, 0x5,0x6c,0x54, 0x5,0x6c,0x55, - 0x5,0x70,0x45, 0x7,0x53,0x6c, 0x5,0x70,0x44, 0x5,0x70,0x46, - 0x7,0x58,0x3a, 0x5,0x73,0x59, 0x7,0x5b,0x74, 0x5,0x73,0x58, - 0x7,0x5b,0x75, 0x7,0x5b,0x73, 0x5,0x77,0x69, 0x7,0x61,0x23, - 0xf,0x6c,0x31, 0x7,0x64,0x50, 0xf,0x21,0x3d, 0x6,0x23,0x32, - 0x5,0x21,0x77, 0x5,0x21,0x78, 0x5,0x22,0x78, 0x5,0x22,0x7b, - 0x5,0x22,0x77, 0x4,0x23,0x28, 0x5,0x22,0x7a, 0x6,0x25,0x37, - 0x5,0x22,0x79, 0x5,0x24,0x5e, 0x5,0x24,0x5f, 0x4,0x24,0x5b, - 0x4,0x27,0x37, 0x6,0x28,0x58, 0x4,0x24,0x5a, 0x5,0x24,0x5a, - 0x6,0x28,0x5e, 0x5,0x24,0x5b, 0x6,0x28,0x5b, 0x5,0x27,0x2f, - 0x6,0x2c,0x72, 0x4,0x24,0x57, 0x5,0x24,0x5d, 0x5,0x24,0x5c, - 0x6,0x28,0x5a, 0x6,0x28,0x59, 0x6,0x2c,0x73, 0xf,0x24,0x77, - 0x6,0x28,0x57, 0x6,0x28,0x5c, 0x6,0x28,0x5d, 0x6,0x28,0x56, - 0x4,0x24,0x58, 0x6,0x2c,0x7a, 0x5,0x27,0x28, 0x6,0x2c,0x7b, - 0x5,0x27,0x2c, 0x6,0x2c,0x79, 0x6,0x2c,0x7c, 0x5,0x27,0x27, - 0x5,0x27,0x2a, 0x6,0x2c,0x78, 0x5,0x27,0x2d, 0x5,0x27,0x25, - 0x5,0x27,0x29, 0x5,0x27,0x24, 0x6,0x2c,0x77, 0x4,0x27,0x38, - 0x5,0x2a,0x36, 0x6,0x28,0x55, 0x6,0x32,0x60, 0x5,0x27,0x2b, - 0x6,0x2c,0x76, 0xf,0x28,0x22, 0x6,0x2c,0x7d, 0x6,0x2c,0x74, - 0x4,0x27,0x35, 0x5,0x2a,0x35, 0x5,0x2a,0x3e, 0x6,0x32,0x68, - 0x5,0x2a,0x39, 0x6,0x39,0x4b, 0x5,0x2a,0x3d, 0x6,0x32,0x61, - 0x6,0x39,0x4c, 0x6,0x41,0x6c, 0x5,0x2a,0x3c, 0x4,0x2a,0x31, - 0x5,0x2a,0x3b, 0x6,0x32,0x64, 0x5,0x2a,0x3a, 0x6,0x32,0x66, - 0x4,0x2a,0x33, 0x5,0x2a,0x40, 0x6,0x32,0x63, 0x5,0x27,0x26, - 0x5,0x2a,0x37, 0x5,0x2a,0x38, 0xf,0x2c,0x2a, 0xf,0x2c,0x2c, - 0xf,0x2c,0x2d, 0x6,0x32,0x65, 0xf,0x2c,0x2b, 0x5,0x2a,0x3f, - 0x6,0x39,0x4e, 0x5,0x2e,0x5e, 0x4,0x33,0x21, 0x6,0x39,0x49, - 0x6,0x39,0x4d, 0x4,0x2e,0x25, 0x5,0x2e,0x5b, 0x5,0x2e,0x60, - 0x5,0x2e,0x5d, 0x4,0x2e,0x23, 0x6,0x39,0x45, 0x6,0x39,0x4a, - 0xf,0x30,0x77, 0xf,0x30,0x78, 0x6,0x39,0x48, 0x5,0x2e,0x5a, - 0x4,0x2e,0x24, 0x6,0x39,0x47, 0x6,0x39,0x4f, 0x5,0x2e,0x5f, - 0x6,0x39,0x46, 0x5,0x33,0x4e, 0xf,0x30,0x76, 0x4,0x33,0x24, - 0x6,0x41,0x6e, 0x5,0x33,0x55, 0x5,0x39,0x7e, 0x5,0x33,0x52, - 0x6,0x41,0x70, 0x6,0x41,0x73, 0x5,0x33,0x4f, 0x6,0x41,0x6f, - 0x6,0x4b,0x3b, 0x4,0x33,0x26, 0x5,0x33,0x53, 0x6,0x4b,0x38, - 0x6,0x4b,0x37, 0x5,0x33,0x50, 0x6,0x4b,0x39, 0x6,0x41,0x71, - 0x6,0x41,0x72, 0x6,0x41,0x74, 0x6,0x4b,0x3a, 0x5,0x3a,0x28, - 0x6,0x54,0x7b, 0x5,0x3a,0x26, 0x5,0x40,0x3f, 0x4,0x38,0x75, - 0x5,0x3a,0x22, 0x6,0x4b,0x44, 0x5,0x40,0x40, 0x5,0x3a,0x27, - 0x4,0x38,0x76, 0x5,0x3a,0x25, 0x5,0x3a,0x24, 0x4,0x38,0x78, - 0x6,0x4b,0x3f, 0x4,0x3e,0x51, 0x5,0x3a,0x21, 0x6,0x4b,0x3c, - 0x6,0x4b,0x3e, 0x4,0x3e,0x57, 0xf,0x3d,0x2a, 0xf,0x3d,0x2b, - 0x6,0x54,0x79, 0x6,0x52,0x72, 0x6,0x54,0x7a, 0x6,0x4b,0x40, - 0x6,0x4b,0x41, 0x6,0x4b,0x45, 0x6,0x4b,0x3d, 0x5,0x3a,0x23, - 0xf,0x43,0x43, 0x4,0x3e,0x56, 0x5,0x40,0x48, 0x6,0x55,0x22, - 0x5,0x40,0x47, 0x4,0x3e,0x55, 0x6,0x55,0x27, 0x5,0x40,0x4b, - 0x6,0x55,0x24, 0x6,0x54,0x7e, 0x6,0x54,0x7d, 0x6,0x55,0x26, - 0x5,0x40,0x46, 0x5,0x40,0x44, 0x5,0x40,0x43, 0x6,0x55,0x21, - 0x5,0x40,0x42, 0x6,0x55,0x28, 0x5,0x40,0x4a, 0x5,0x40,0x41, - 0x4,0x3e,0x58, 0x5,0x40,0x49, 0x6,0x55,0x25, 0xf,0x43,0x45, - 0xf,0x43,0x46, 0xf,0x49,0x70, 0xf,0x50,0x40, 0x5,0x40,0x45, - 0x6,0x55,0x23, 0x5,0x40,0x4c, 0x6,0x5e,0x6d, 0x5,0x47,0x3a, - 0x6,0x5e,0x69, 0x7,0x25,0x29, 0x5,0x47,0x37, 0x4,0x44,0x6b, - 0x5,0x47,0x35, 0x5,0x47,0x33, 0x6,0x5e,0x6c, 0x5,0x47,0x3b, - 0x5,0x47,0x36, 0x5,0x47,0x34, 0x6,0x5e,0x70, 0x4,0x44,0x6c, - 0x5,0x47,0x31, 0xf,0x49,0x6d, 0x7,0x25,0x2a, 0xf,0x49,0x6f, - 0x6,0x5e,0x6b, 0x6,0x5e,0x68, 0x6,0x5e,0x6a, 0x6,0x5e,0x6f, - 0x4,0x4a,0x7d, 0x5,0x47,0x3d, 0x5,0x47,0x3c, 0x5,0x47,0x39, - 0x5,0x47,0x38, 0x6,0x5e,0x71, 0x5,0x47,0x32, 0x7,0x25,0x31, - 0x4,0x4a,0x78, 0x4,0x4a,0x79, 0x7,0x25,0x30, 0x5,0x4e,0x3c, - 0x7,0x25,0x34, 0x7,0x2f,0x73, 0x5,0x4e,0x41, 0x7,0x25,0x2f, - 0x7,0x25,0x2b, 0x5,0x4e,0x3e, 0x5,0x4e,0x45, 0x5,0x4e,0x3b, - 0x5,0x4e,0x44, 0x5,0x4e,0x43, 0x5,0x4e,0x3d, 0x5,0x55,0x4f, - 0x7,0x2f,0x72, 0x5,0x4e,0x3f, 0x5,0x4e,0x40, 0x5,0x4e,0x46, - 0x7,0x25,0x2c, 0x7,0x25,0x2d, 0xf,0x55,0x75, 0x5,0x55,0x50, - 0x7,0x25,0x2e, 0x7,0x25,0x33, 0xf,0x49,0x6e, 0x4,0x51,0x33, - 0x5,0x4e,0x42, 0x5,0x55,0x57, 0x4,0x51,0x35, 0x5,0x55,0x55, - 0x5,0x55,0x51, 0x5,0x55,0x52, 0x7,0x2f,0x79, 0x4,0x51,0x31, - 0x7,0x2f,0x78, 0x7,0x2f,0x77, 0x5,0x5c,0x28, 0x4,0x51,0x36, - 0x5,0x55,0x53, 0x5,0x55,0x56, 0x7,0x2f,0x75, 0x7,0x39,0x32, - 0x4,0x56,0x6d, 0x7,0x39,0x31, 0x7,0x2f,0x76, 0x7,0x25,0x32, - 0xf,0x55,0x77, 0x7,0x25,0x35, 0x5,0x55,0x54, 0x5,0x5c,0x2a, - 0x7,0x39,0x33, 0x5,0x5c,0x29, 0x7,0x47,0x77, 0x7,0x39,0x35, - 0x7,0x39,0x34, 0xf,0x5b,0x29, 0xf,0x5b,0x2a, 0xf,0x5b,0x2b, - 0xf,0x5b,0x2c, 0x7,0x40,0x5d, 0x5,0x62,0x55, 0x5,0x62,0x54, - 0x7,0x40,0x5a, 0x7,0x40,0x59, 0x7,0x40,0x5c, 0x4,0x5b,0x68, - 0x7,0x40,0x5b, 0xf,0x5f,0x4e, 0xf,0x5f,0x4f, 0x5,0x62,0x56, - 0x4,0x63,0x64, 0x7,0x47,0x78, 0x7,0x4e,0x40, 0x7,0x47,0x76, - 0x7,0x47,0x74, 0x7,0x4e,0x41, 0x5,0x6c,0x56, 0x7,0x4e,0x42, - 0x5,0x70,0x48, 0x7,0x53,0x6d, 0x5,0x70,0x47, 0x4,0x68,0x74, - 0x5,0x70,0x49, 0x7,0x58,0x3b, 0x7,0x5b,0x76, 0x7,0x5b,0x78, - 0x7,0x5b,0x77, 0x5,0x77,0x6a, 0x7,0x5e,0x7a, 0xf,0x6b,0x55, - 0x7,0x61,0x24, 0x7,0x63,0x59, 0xf,0x28,0x23, 0x6,0x4b,0x46, - 0x6,0x5e,0x72, 0x5,0x21,0x4c, 0x6,0x25,0x38, 0x6,0x23,0x33, - 0x6,0x28,0x5f, 0x5,0x24,0x61, 0x4,0x24,0x5d, 0x4,0x24,0x5c, - 0x6,0x28,0x61, 0x6,0x28,0x60, 0xf,0x24,0x79, 0x5,0x24,0x60, - 0x5,0x27,0x30, 0x6,0x2d,0x25, 0x4,0x27,0x3c, 0x5,0x2a,0x41, - 0xf,0x28,0x25, 0xf,0x28,0x26, 0xf,0x28,0x27, 0xf,0x28,0x28, - 0xf,0x28,0x29, 0x6,0x2d,0x23, 0xf,0x2c,0x40, 0xf,0x28,0x24, - 0x6,0x2d,0x22, 0xf,0x2c,0x3c, 0x6,0x32,0x69, 0x5,0x2a,0x45, - 0x5,0x2a,0x42, 0x4,0x2a,0x36, 0x6,0x32,0x6b, 0x6,0x2f,0x69, - 0xf,0x2c,0x2f, 0xf,0x2c,0x30, 0xf,0x2c,0x31, 0xf,0x2c,0x33, - 0xf,0x2c,0x34, 0xf,0x2c,0x35, 0xf,0x2c,0x36, 0xf,0x2c,0x37, - 0xf,0x2c,0x38, 0xf,0x2c,0x3a, 0xf,0x2c,0x3b, 0xf,0x2c,0x3d, - 0x6,0x32,0x6a, 0x6,0x32,0x6c, 0xf,0x2c,0x3e, 0xf,0x2c,0x3f, - 0xf,0x2c,0x2e, 0x5,0x2a,0x44, 0x5,0x2a,0x43, 0x6,0x39,0x53, - 0x5,0x33,0x56, 0x5,0x2e,0x61, 0x4,0x2e,0x29, 0x6,0x39,0x51, - 0x4,0x2e,0x28, 0x6,0x39,0x52, 0x6,0x39,0x54, 0xf,0x30,0x79, - 0xf,0x30,0x7a, 0xf,0x30,0x7b, 0xf,0x30,0x7c, 0xf,0x30,0x7d, - 0xf,0x30,0x7e, 0xf,0x31,0x21, 0xf,0x31,0x23, 0xf,0x31,0x24, - 0xf,0x31,0x25, 0xf,0x31,0x26, 0x6,0x39,0x50, 0xf,0x36,0x63, - 0x4,0x33,0x31, 0x6,0x39,0x55, 0x6,0x41,0x7a, 0x5,0x33,0x57, - 0x6,0x41,0x7b, 0x4,0x33,0x32, 0x6,0x41,0x77, 0x6,0x41,0x78, - 0x6,0x41,0x79, 0xf,0x31,0x22, 0xf,0x36,0x56, 0xf,0x36,0x58, - 0xf,0x36,0x5c, 0xf,0x36,0x5f, 0xf,0x36,0x60, 0xf,0x36,0x61, - 0xf,0x36,0x62, 0xf,0x36,0x64, 0xf,0x36,0x5d, 0x6,0x41,0x7c, - 0xf,0x36,0x5b, 0xf,0x36,0x5a, 0xf,0x36,0x5e, 0x5,0x33,0x58, - 0x6,0x41,0x76, 0xf,0x3d,0x3e, 0xf,0x3d,0x34, 0x6,0x4b,0x4b, - 0x5,0x3a,0x2b, 0x5,0x3a,0x2a, 0x5,0x3a,0x2c, 0x6,0x55,0x29, - 0x4,0x3e,0x5a, 0x5,0x40,0x4d, 0xf,0x3d,0x38, 0x4,0x38,0x7c, - 0x6,0x4b,0x49, 0x6,0x4b,0x4c, 0xf,0x3d,0x2c, 0xf,0x3d,0x2d, - 0xf,0x3d,0x2e, 0xf,0x3d,0x2f, 0xf,0x3d,0x30, 0xf,0x3d,0x32, - 0xf,0x3d,0x35, 0xf,0x3d,0x36, 0xf,0x3d,0x37, 0xf,0x3d,0x39, - 0xf,0x3d,0x3a, 0xf,0x3d,0x3f, 0xf,0x43,0x50, 0x6,0x4b,0x4e, - 0x6,0x55,0x32, 0x6,0x4b,0x4d, 0xf,0x3d,0x40, 0x6,0x4b,0x48, - 0x6,0x4b,0x4a, 0x6,0x55,0x2a, 0xf,0x3d,0x33, 0xf,0x3d,0x3d, - 0xf,0x3d,0x31, 0x5,0x3a,0x29, 0x6,0x55,0x2b, 0x6,0x55,0x30, - 0x4,0x3e,0x5b, 0x6,0x55,0x31, 0x6,0x55,0x2f, 0x6,0x55,0x2e, - 0x5,0x47,0x3e, 0xf,0x43,0x47, 0xf,0x43,0x4a, 0xf,0x43,0x4c, - 0xf,0x43,0x4d, 0xf,0x43,0x4e, 0xf,0x43,0x4f, 0xf,0x43,0x51, - 0xf,0x43,0x52, 0xf,0x43,0x53, 0xf,0x43,0x54, 0xf,0x43,0x55, - 0xf,0x43,0x57, 0xf,0x43,0x58, 0xf,0x43,0x5a, 0xf,0x43,0x5b, - 0xf,0x43,0x5c, 0xf,0x43,0x5d, 0xf,0x43,0x5e, 0xf,0x43,0x5f, - 0xf,0x43,0x60, 0xf,0x43,0x61, 0xf,0x43,0x62, 0xf,0x43,0x63, - 0xf,0x43,0x65, 0x6,0x55,0x2c, 0x5,0x40,0x4f, 0x5,0x3a,0x2e, - 0xf,0x43,0x4b, 0xf,0x43,0x48, 0x5,0x47,0x3f, 0x6,0x55,0x2d, - 0xf,0x43,0x59, 0xf,0x49,0x7a, 0xf,0x49,0x7b, 0xf,0x4a,0x26, - 0x7,0x25,0x38, 0x6,0x5e,0x74, 0x5,0x47,0x41, 0x7,0x25,0x36, - 0x4,0x44,0x6d, 0x5,0x47,0x40, 0x6,0x5e,0x75, 0x6,0x5e,0x77, - 0x6,0x5e,0x76, 0x6,0x5e,0x73, 0xf,0x49,0x71, 0xf,0x49,0x72, - 0xf,0x49,0x73, 0xf,0x49,0x74, 0xf,0x49,0x75, 0xf,0x49,0x77, - 0xf,0x49,0x78, 0xf,0x49,0x79, 0xf,0x49,0x7c, 0xf,0x49,0x7d, - 0xf,0x49,0x7e, 0xf,0x4a,0x21, 0xf,0x4a,0x22, 0xf,0x4a,0x24, - 0xf,0x4a,0x25, 0xf,0x4a,0x27, 0xf,0x4a,0x28, 0xf,0x4a,0x29, - 0x5,0x47,0x42, 0x3,0x48,0x26, 0x7,0x25,0x39, 0xf,0x4a,0x23, - 0x7,0x25,0x40, 0x4,0x4a,0x7e, 0x5,0x4e,0x47, 0x7,0x2f,0x7b, - 0x7,0x25,0x3a, 0x7,0x2f,0x7a, 0x7,0x25,0x3c, 0x7,0x25,0x3f, - 0x7,0x25,0x41, 0x7,0x25,0x42, 0xf,0x50,0x41, 0xf,0x50,0x42, - 0xf,0x50,0x43, 0xf,0x50,0x44, 0xf,0x50,0x45, 0xf,0x50,0x46, - 0xf,0x50,0x48, 0xf,0x50,0x49, 0xf,0x50,0x4a, 0xf,0x50,0x4b, - 0xf,0x50,0x4c, 0x7,0x25,0x3d, 0x5,0x4e,0x48, 0x7,0x25,0x3b, - 0x5,0x4e,0x49, 0xf,0x55,0x7c, 0xf,0x56,0x2e, 0xf,0x50,0x47, - 0x7,0x30,0x22, 0x7,0x25,0x3e, 0x5,0x55,0x58, 0x5,0x55,0x5b, - 0x5,0x55,0x59, 0x4,0x51,0x3b, 0x7,0x30,0x24, 0x7,0x2f,0x7d, - 0x7,0x2f,0x7e, 0x7,0x2f,0x7c, 0x4,0x51,0x3c, 0x7,0x30,0x21, - 0xf,0x55,0x78, 0xf,0x55,0x79, 0xf,0x55,0x7b, 0xf,0x55,0x7d, - 0xf,0x56,0x23, 0xf,0x56,0x24, 0xf,0x56,0x25, 0xf,0x56,0x26, - 0xf,0x56,0x27, 0xf,0x56,0x29, 0xf,0x56,0x2d, 0xf,0x56,0x2f, - 0x7,0x30,0x25, 0x7,0x30,0x23, 0x7,0x39,0x36, 0xf,0x56,0x30, - 0xf,0x56,0x21, 0xf,0x56,0x28, 0x5,0x55,0x5c, 0x5,0x55,0x5a, - 0xf,0x56,0x2c, 0x7,0x39,0x3b, 0x7,0x39,0x3d, 0x5,0x5c,0x2d, - 0x5,0x5c,0x2b, 0x7,0x40,0x5e, 0x7,0x39,0x39, 0x4,0x5b,0x6a, - 0x4,0x56,0x6e, 0x4,0x56,0x70, 0x7,0x39,0x38, 0xf,0x5b,0x2e, - 0xf,0x5b,0x2f, 0xf,0x5b,0x30, 0xf,0x5b,0x31, 0xf,0x5b,0x32, - 0xf,0x5b,0x33, 0xf,0x5b,0x34, 0xf,0x5b,0x35, 0x5,0x5c,0x2c, - 0x7,0x39,0x3a, 0x7,0x39,0x3c, 0x7,0x39,0x37, 0x7,0x40,0x5f, - 0x5,0x68,0x3c, 0x4,0x5b,0x6b, 0x5,0x62,0x57, 0x4,0x60,0x26, - 0x7,0x40,0x60, 0x4,0x60,0x28, 0xf,0x5f,0x51, 0xf,0x5f,0x53, - 0xf,0x5f,0x54, 0xf,0x5f,0x55, 0xf,0x5f,0x57, 0xf,0x5f,0x59, - 0xf,0x5f,0x5a, 0xf,0x5f,0x5b, 0xf,0x5f,0x5c, 0xf,0x5f,0x5f, - 0x7,0x40,0x61, 0x7,0x40,0x62, 0xf,0x5f,0x50, 0xf,0x5f,0x52, - 0xf,0x5f,0x58, 0xf,0x63,0x23, 0x7,0x47,0x7c, 0x7,0x47,0x7b, - 0x5,0x68,0x3e, 0x7,0x47,0x7a, 0x7,0x4e,0x43, 0x5,0x68,0x3d, - 0x7,0x47,0x79, 0xf,0x62,0x7c, 0xf,0x62,0x7e, 0xf,0x63,0x21, - 0xf,0x63,0x22, 0x4,0x60,0x29, 0xf,0x62,0x79, 0xf,0x62,0x7a, - 0xf,0x62,0x7d, 0x7,0x53,0x6f, 0x5,0x6c,0x57, 0x4,0x66,0x52, - 0xf,0x65,0x52, 0xf,0x65,0x53, 0xf,0x65,0x54, 0xf,0x65,0x55, - 0x7,0x4e,0x44, 0x7,0x53,0x6e, 0xf,0x5f,0x5e, 0x4,0x66,0x51, - 0x7,0x55,0x7c, 0x4,0x66,0x53, 0x7,0x58,0x3c, 0xf,0x67,0x76, - 0x7,0x5b,0x79, 0x4,0x6a,0x52, 0xf,0x69,0x59, 0xf,0x69,0x5a, - 0x5,0x76,0x24, 0xf,0x6a,0x61, 0xf,0x6a,0x63, 0xf,0x6b,0x56, - 0xf,0x6a,0x62, 0x5,0x79,0x31, 0x7,0x61,0x26, 0x7,0x61,0x25, - 0xf,0x6c,0x32, 0x5,0x7a,0x2c, 0x4,0x6e,0x34, 0x6,0x2d,0x26, - 0x5,0x2a,0x47, 0x5,0x2a,0x46, 0x6,0x32,0x6d, 0xf,0x2c,0x41, - 0x6,0x32,0x6e, 0x6,0x39,0x56, 0x5,0x2e,0x63, 0x5,0x2e,0x64, - 0x6,0x39,0x57, 0x6,0x39,0x58, 0x4,0x33,0x36, 0x5,0x33,0x59, - 0x5,0x33,0x5a, 0xf,0x36,0x65, 0x5,0x3a,0x2f, 0x5,0x3a,0x30, - 0x6,0x4b,0x4f, 0xf,0x3d,0x41, 0x6,0x4b,0x50, 0x4,0x3e,0x5c, - 0x5,0x40,0x50, 0x5,0x40,0x51, 0xf,0x43,0x66, 0x7,0x25,0x45, - 0x6,0x5e,0x78, 0x5,0x47,0x43, 0xf,0x4a,0x2a, 0x5,0x47,0x44, - 0x7,0x25,0x44, 0x7,0x30,0x26, 0x4,0x51,0x3d, 0x5,0x4e,0x4a, - 0xf,0x50,0x4d, 0x7,0x25,0x43, 0x4,0x51,0x3e, 0x7,0x39,0x3e, - 0x5,0x62,0x58, 0xf,0x5f,0x60, 0x4,0x5b,0x6d, 0x4,0x66,0x54, - 0x7,0x53,0x70, 0x5,0x70,0x4a, 0x5,0x76,0x25, 0x7,0x5b,0x7a, - 0x7,0x5e,0x7b, 0x7,0x62,0x3b, 0x7,0x62,0x3c, 0x5,0x24,0x62, - 0x5,0x27,0x31, 0x4,0x27,0x3d, 0x6,0x2d,0x27, 0x5,0x2a,0x48, - 0x5,0x2a,0x49, 0x6,0x32,0x6f, 0x4,0x2a,0x3b, 0x4,0x2a,0x3e, - 0x5,0x2e,0x65, 0x5,0x2e,0x67, 0x6,0x39,0x5c, 0x5,0x2e,0x66, - 0xf,0x31,0x29, 0x6,0x39,0x5b, 0x6,0x39,0x59, 0x6,0x39,0x5a, - 0x5,0x33,0x5d, 0x6,0x42,0x22, 0x6,0x41,0x7e, 0x6,0x42,0x24, - 0x5,0x33,0x5e, 0x6,0x42,0x23, 0x5,0x33,0x5c, 0xf,0x36,0x66, - 0xf,0x36,0x68, 0x4,0x39,0x22, 0x5,0x3a,0x31, 0x6,0x55,0x36, - 0x4,0x39,0x27, 0x5,0x3a,0x34, 0x5,0x3a,0x33, 0x5,0x33,0x5f, - 0x6,0x4b,0x52, 0x5,0x3a,0x32, 0x5,0x33,0x5b, 0x6,0x4b,0x51, - 0x6,0x4b,0x53, 0x4,0x3e,0x64, 0x5,0x40,0x52, 0x6,0x55,0x37, - 0x4,0x3e,0x5e, 0x5,0x40,0x53, 0x6,0x55,0x33, 0x6,0x55,0x35, - 0x4,0x3e,0x5f, 0x6,0x55,0x38, 0xf,0x43,0x67, 0x6,0x55,0x34, - 0x5,0x47,0x47, 0x6,0x5e,0x7c, 0x5,0x47,0x45, 0x6,0x5e,0x7a, - 0x4,0x44,0x72, 0x6,0x5e,0x79, 0x6,0x5e,0x7b, 0x5,0x47,0x46, - 0x4,0x4b,0x28, 0x7,0x25,0x4a, 0x5,0x4e,0x4c, 0x5,0x4e,0x4d, - 0x5,0x4e,0x4e, 0x7,0x25,0x46, 0x7,0x25,0x47, 0x7,0x25,0x49, - 0x7,0x30,0x27, 0x4,0x56,0x74, 0x7,0x30,0x28, 0x5,0x55,0x5f, - 0x5,0x55,0x61, 0x4,0x51,0x40, 0x5,0x55,0x60, 0x5,0x55,0x5e, - 0x4,0x56,0x76, 0x5,0x5c,0x2e, 0x4,0x56,0x77, 0x7,0x39,0x40, - 0x7,0x39,0x3f, 0x5,0x4e,0x4b, 0x4,0x5b,0x70, 0x5,0x62,0x5b, - 0x5,0x62,0x5a, 0x7,0x40,0x64, 0x5,0x62,0x59, 0x7,0x40,0x65, - 0x5,0x68,0x3f, 0x7,0x4e,0x45, 0x7,0x53,0x71, 0x7,0x53,0x72, - 0x4,0x66,0x56, 0x5,0x70,0x4b, 0x4,0x66,0x55, 0x7,0x53,0x73, - 0x4,0x68,0x76, 0x7,0x58,0x3d, 0x5,0x73,0x5a, 0x5,0x76,0x28, - 0x5,0x76,0x27, 0x7,0x5b,0x7b, 0x5,0x76,0x26, 0x7,0x5c,0x6b, - 0x5,0x7a,0x6c, 0x7,0x65,0x38, 0x6,0x23,0x34, 0x6,0x2d,0x28, - 0x5,0x27,0x33, 0x4,0x27,0x3e, 0xf,0x28,0x2b, 0x6,0x32,0x70, - 0xf,0x2c,0x43, 0x5,0x40,0x54, 0x6,0x5e,0x7d, 0x7,0x30,0x2b, - 0x7,0x30,0x29, 0x7,0x30,0x2a, 0x4,0x56,0x79, 0x7,0x40,0x66, - 0x5,0x70,0x4c, 0x6,0x23,0x35, 0x6,0x25,0x39, 0x6,0x2d,0x29, - 0x5,0x27,0x34, 0x6,0x2d,0x2a, 0xf,0x2c,0x44, 0xf,0x2c,0x45, - 0x5,0x2a,0x4a, 0x4,0x2a,0x3f, 0x6,0x32,0x71, 0x6,0x34,0x79, - 0x5,0x2e,0x69, 0x6,0x42,0x26, 0x5,0x33,0x60, 0x6,0x42,0x25, - 0x6,0x42,0x27, 0xf,0x36,0x69, 0x6,0x55,0x39, 0x6,0x4b,0x54, - 0xf,0x3d,0x43, 0xf,0x3d,0x42, 0x6,0x55,0x3b, 0xf,0x43,0x68, - 0x6,0x55,0x3a, 0x6,0x5e,0x7e, 0x7,0x25,0x4b, 0xf,0x4a,0x2b, - 0x4,0x56,0x7a, 0xf,0x5b,0x36, 0xf,0x63,0x26, 0x7,0x46,0x6e, - 0xf,0x63,0x25, 0x7,0x53,0x74, 0x6,0x25,0x3a, 0xf,0x24,0x7a, - 0x5,0x27,0x35, 0x6,0x2d,0x2e, 0x6,0x39,0x5d, 0x5,0x33,0x61, - 0xf,0x4a,0x2c, 0xf,0x5f,0x61, 0x7,0x47,0x7d, 0xf,0x6c,0x33, - 0x5,0x73,0x5b, 0x4,0x24,0x5f, 0xf,0x24,0x7c, 0xf,0x24,0x7b, - 0x6,0x28,0x63, 0x4,0x27,0x42, 0x4,0x25,0x53, 0x4,0x27,0x3f, - 0x5,0x27,0x36, 0x6,0x2d,0x31, 0x6,0x2d,0x30, 0x6,0x2d,0x33, - 0xf,0x28,0x2c, 0xf,0x28,0x2d, 0x6,0x2d,0x2f, 0x4,0x2a,0x42, - 0x5,0x2a,0x4d, 0x6,0x32,0x74, 0x5,0x2a,0x4c, 0x6,0x32,0x73, - 0x5,0x2a,0x4b, 0x6,0x32,0x76, 0x6,0x32,0x7a, 0x6,0x32,0x77, - 0x6,0x39,0x65, 0x5,0x2a,0x4e, 0x6,0x32,0x78, 0x6,0x32,0x75, - 0x5,0x2e,0x6e, 0xf,0x2c,0x46, 0xf,0x2c,0x47, 0xf,0x2c,0x48, - 0xf,0x2c,0x49, 0xf,0x2c,0x4b, 0xf,0x2c,0x4c, 0xf,0x2c,0x4d, - 0xf,0x2c,0x4e, 0xf,0x2c,0x4f, 0x5,0x2a,0x4f, 0x5,0x2e,0x6a, - 0x4,0x2e,0x2e, 0x5,0x2e,0x6b, 0x6,0x39,0x61, 0x6,0x39,0x60, - 0x6,0x39,0x62, 0x6,0x39,0x5f, 0x6,0x39,0x63, 0xf,0x31,0x2a, - 0xf,0x31,0x2b, 0xf,0x31,0x2c, 0xf,0x31,0x2e, 0x4,0x2e,0x30, - 0xf,0x31,0x2d, 0x5,0x2e,0x6d, 0x5,0x2e,0x6c, 0x4,0x33,0x3e, - 0x6,0x42,0x28, 0x5,0x33,0x63, 0x5,0x33,0x62, 0x4,0x33,0x3d, - 0x6,0x42,0x2c, 0x6,0x42,0x2f, 0x6,0x42,0x2a, 0x6,0x42,0x2d, - 0x6,0x42,0x2e, 0xf,0x36,0x6b, 0xf,0x36,0x6c, 0x6,0x42,0x2b, - 0x6,0x42,0x29, 0x6,0x41,0x6b, 0x4,0x39,0x2b, 0x4,0x39,0x29, - 0x4,0x39,0x2a, 0x6,0x4b,0x57, 0x6,0x4b,0x59, 0xf,0x36,0x6a, - 0xf,0x3d,0x46, 0xf,0x3d,0x47, 0xf,0x3d,0x48, 0x6,0x4b,0x58, - 0x4,0x39,0x2d, 0x6,0x4b,0x55, 0xf,0x3d,0x44, 0xf,0x3d,0x45, - 0x6,0x55,0x40, 0x4,0x3e,0x6a, 0x4,0x3e,0x67, 0x6,0x55,0x3e, - 0x6,0x55,0x3f, 0x4,0x3e,0x66, 0x5,0x40,0x56, 0x6,0x55,0x3c, - 0x6,0x55,0x42, 0x5,0x40,0x55, 0x6,0x55,0x43, 0x6,0x55,0x44, - 0x6,0x55,0x41, 0xf,0x43,0x69, 0xf,0x43,0x6a, 0x5,0x40,0x57, - 0x6,0x55,0x3d, 0x6,0x5f,0x23, 0x4,0x44,0x7a, 0x5,0x47,0x4a, - 0x6,0x5f,0x22, 0x6,0x5f,0x25, 0x6,0x5f,0x28, 0xf,0x4a,0x2d, - 0x6,0x5f,0x26, 0x6,0x5f,0x24, 0x6,0x5f,0x27, 0x7,0x25,0x50, - 0x4,0x4b,0x2c, 0x7,0x25,0x4c, 0x7,0x25,0x4e, 0x7,0x25,0x4d, - 0x7,0x25,0x4f, 0x5,0x4e,0x4f, 0x7,0x25,0x51, 0xf,0x50,0x4f, - 0x4,0x4b,0x2b, 0x4,0x51,0x45, 0x4,0x51,0x43, 0x4,0x51,0x46, - 0x7,0x30,0x2c, 0x5,0x55,0x62, 0xf,0x56,0x32, 0x7,0x2c,0x3b, - 0x7,0x39,0x41, 0x5,0x5c,0x33, 0x7,0x39,0x43, 0x5,0x5c,0x31, - 0x4,0x56,0x7b, 0x7,0x39,0x42, 0x5,0x5c,0x34, 0xf,0x5b,0x37, - 0x7,0x3c,0x76, 0x5,0x5c,0x30, 0x5,0x5c,0x32, 0xf,0x56,0x31, - 0x4,0x5b,0x71, 0x7,0x47,0x7e, 0x5,0x68,0x41, 0x7,0x48,0x23, - 0x7,0x4e,0x46, 0x7,0x48,0x21, 0x7,0x48,0x24, 0x4,0x60,0x2d, - 0x7,0x48,0x22, 0x7,0x4e,0x48, 0x7,0x4e,0x47, 0x7,0x53,0x77, - 0xf,0x67,0x77, 0x7,0x53,0x75, 0x7,0x53,0x76, 0xf,0x67,0x52, - 0x7,0x58,0x3e, 0x4,0x68,0x77, 0x7,0x53,0x78, 0x7,0x5b,0x7d, - 0xf,0x6a,0x64, 0x7,0x5b,0x7c, 0x7,0x5e,0x7c, 0x7,0x62,0x3e, - 0x7,0x62,0x3d, 0x7,0x63,0x5a, 0x7,0x63,0x5c, 0x7,0x63,0x5b, - 0x7,0x66,0x29, 0x7,0x66,0x35, 0x7,0x66,0x46, 0x6,0x23,0x36, - 0x6,0x25,0x3b, 0xf,0x28,0x2e, 0x4,0x2e,0x32, 0x5,0x2a,0x50, - 0x4,0x39,0x2e, 0x6,0x55,0x46, 0x6,0x55,0x45, 0x6,0x5f,0x29, - 0x5,0x55,0x63, 0x7,0x30,0x2e, 0x7,0x25,0x52, 0x7,0x58,0x3f, - 0x5,0x22,0x7c, 0x5,0x24,0x64, 0x5,0x24,0x65, 0x4,0x24,0x60, - 0x6,0x28,0x66, 0x6,0x28,0x67, 0x6,0x28,0x65, 0x6,0x28,0x68, - 0x4,0x27,0x45, 0x6,0x2d,0x35, 0x4,0x27,0x44, 0xf,0x28,0x2f, - 0x5,0x27,0x38, 0x6,0x2d,0x36, 0x6,0x32,0x7d, 0x4,0x2a,0x4b, - 0x6,0x32,0x7c, 0x6,0x32,0x7b, 0x5,0x2a,0x52, 0x5,0x2a,0x56, - 0x4,0x2a,0x47, 0x4,0x2a,0x48, 0x5,0x2a,0x53, 0x4,0x2a,0x45, - 0x5,0x2a,0x54, 0x5,0x2a,0x51, 0x5,0x2a,0x55, 0x6,0x33,0x24, - 0xf,0x2c,0x50, 0x6,0x32,0x7e, 0xf,0x2c,0x51, 0x6,0x33,0x22, - 0x6,0x33,0x23, 0x6,0x33,0x21, 0x6,0x39,0x69, 0x5,0x2e,0x6f, - 0x5,0x2e,0x73, 0x6,0x39,0x6f, 0x5,0x2e,0x71, 0x6,0x39,0x70, - 0x6,0x39,0x6a, 0x5,0x2e,0x76, 0x5,0x2e,0x72, 0x5,0x2e,0x75, - 0x6,0x39,0x6d, 0x6,0x39,0x71, 0x6,0x39,0x66, 0x4,0x2e,0x3d, - 0x5,0x2e,0x74, 0x6,0x39,0x68, 0x4,0x2e,0x3e, 0x5,0x2e,0x70, - 0x6,0x39,0x6e, 0xf,0x31,0x2f, 0x6,0x39,0x67, 0x6,0x39,0x6c, - 0x6,0x42,0x31, 0x6,0x42,0x37, 0x5,0x33,0x68, 0x6,0x42,0x35, - 0x5,0x33,0x6b, 0x4,0x33,0x41, 0x5,0x33,0x6a, 0x5,0x33,0x66, - 0x6,0x42,0x33, 0x4,0x33,0x44, 0x5,0x33,0x69, 0xf,0x36,0x6d, - 0xf,0x36,0x6e, 0xf,0x36,0x6f, 0x6,0x42,0x36, 0x6,0x42,0x39, - 0x6,0x42,0x34, 0x6,0x42,0x38, 0xf,0x36,0x70, 0x6,0x42,0x30, - 0x5,0x33,0x67, 0x5,0x33,0x6c, 0x5,0x3a,0x36, 0x5,0x3a,0x3f, - 0x6,0x4b,0x61, 0x5,0x3a,0x35, 0x6,0x4b,0x65, 0x5,0x3a,0x39, - 0x5,0x3a,0x3a, 0x5,0x3a,0x3c, 0x5,0x3a,0x37, 0x6,0x4b,0x63, - 0x6,0x4b,0x5f, 0x5,0x3a,0x40, 0x6,0x4b,0x62, 0x6,0x4b,0x5b, - 0x6,0x4b,0x66, 0x5,0x3a,0x3e, 0x6,0x4b,0x5e, 0x4,0x39,0x39, - 0x6,0x4b,0x5d, 0x6,0x4b,0x60, 0x6,0x4b,0x64, 0xf,0x3d,0x49, - 0xf,0x3d,0x4a, 0x4,0x39,0x37, 0x6,0x4b,0x5c, 0x4,0x39,0x31, - 0x5,0x3a,0x38, 0x6,0x55,0x4c, 0x4,0x3e,0x72, 0x4,0x3e,0x70, - 0x4,0x3e,0x7b, 0x5,0x40,0x59, 0x4,0x3e,0x71, 0x4,0x3e,0x75, - 0x4,0x44,0x7d, 0x4,0x3e,0x79, 0x6,0x55,0x49, 0x5,0x40,0x5a, - 0x5,0x40,0x5c, 0x5,0x40,0x62, 0x4,0x3e,0x7c, 0x6,0x55,0x47, - 0x5,0x40,0x61, 0x6,0x55,0x4d, 0x5,0x40,0x65, 0x5,0x40,0x63, - 0x5,0x40,0x5b, 0x5,0x3a,0x3d, 0x5,0x40,0x5f, 0x5,0x40,0x5e, - 0x6,0x55,0x4b, 0x6,0x55,0x4a, 0x4,0x3e,0x7d, 0xf,0x43,0x6b, - 0xf,0x43,0x6c, 0x6,0x55,0x48, 0x6,0x55,0x4e, 0x5,0x40,0x58, - 0x5,0x40,0x66, 0x5,0x40,0x5d, 0x5,0x47,0x58, 0x5,0x47,0x50, - 0x4,0x45,0x25, 0x4,0x45,0x2b, 0x5,0x47,0x4b, 0x5,0x47,0x4f, - 0x4,0x45,0x26, 0x6,0x5f,0x2f, 0x6,0x5f,0x2a, 0x4,0x45,0x2e, - 0x4,0x45,0x2a, 0x6,0x5f,0x2b, 0x6,0x5f,0x34, 0x5,0x47,0x4d, - 0x5,0x47,0x4e, 0x5,0x47,0x53, 0x4,0x45,0x2c, 0x6,0x5f,0x37, - 0x6,0x5f,0x35, 0x5,0x47,0x5a, 0x6,0x5f,0x2e, 0x4,0x45,0x27, - 0x4,0x45,0x22, 0x5,0x47,0x51, 0x5,0x47,0x52, 0x6,0x5f,0x33, - 0x5,0x47,0x4c, 0x5,0x47,0x56, 0x6,0x5f,0x31, 0x6,0x5f,0x30, - 0xf,0x4a,0x2e, 0x6,0x5f,0x38, 0x6,0x5f,0x2c, 0x4,0x45,0x2d, - 0x6,0x5f,0x32, 0x6,0x5f,0x36, 0x5,0x47,0x55, 0x4,0x4b,0x3a, - 0x4,0x4b,0x36, 0x4,0x4b,0x2d, 0x4,0x4b,0x39, 0x5,0x4e,0x53, - 0x4,0x4b,0x34, 0x7,0x25,0x5d, 0x4,0x4b,0x32, 0x5,0x4e,0x55, - 0x5,0x4e,0x57, 0x5,0x4e,0x54, 0x4,0x4b,0x31, 0x7,0x25,0x55, - 0x4,0x4b,0x30, 0x5,0x4e,0x51, 0x5,0x4e,0x52, 0x7,0x25,0x53, - 0x5,0x47,0x57, 0x5,0x4e,0x58, 0x7,0x25,0x54, 0x7,0x25,0x5b, - 0x7,0x25,0x59, 0xf,0x50,0x50, 0xf,0x50,0x51, 0xf,0x50,0x52, - 0xf,0x50,0x53, 0xf,0x50,0x54, 0x7,0x25,0x56, 0x7,0x25,0x5a, - 0x7,0x25,0x5e, 0x5,0x4e,0x56, 0x5,0x4e,0x50, 0x4,0x51,0x4b, - 0x5,0x55,0x65, 0x7,0x30,0x2f, 0x7,0x30,0x30, 0x5,0x55,0x6c, - 0x5,0x55,0x6d, 0x4,0x51,0x4c, 0x4,0x51,0x47, 0x5,0x55,0x68, - 0x7,0x30,0x35, 0x5,0x55,0x66, 0x5,0x55,0x67, 0x5,0x55,0x6b, - 0x7,0x30,0x31, 0x7,0x30,0x37, 0x5,0x55,0x6e, 0xf,0x56,0x34, - 0xf,0x56,0x35, 0x7,0x30,0x34, 0x7,0x30,0x33, 0x5,0x55,0x6a, - 0x7,0x30,0x32, 0x7,0x30,0x38, 0x7,0x30,0x39, 0x5,0x55,0x64, - 0x7,0x25,0x57, 0x4,0x56,0x7c, 0x5,0x5c,0x39, 0x5,0x55,0x70, - 0x7,0x39,0x50, 0x4,0x51,0x51, 0x4,0x45,0x29, 0x4,0x56,0x7e, - 0x7,0x39,0x47, 0x5,0x5c,0x35, 0x7,0x39,0x48, 0x5,0x5c,0x3c, - 0x5,0x5c,0x3a, 0x5,0x5c,0x3d, 0x7,0x39,0x4f, 0x7,0x40,0x6a, - 0x5,0x55,0x6f, 0x5,0x5c,0x37, 0x4,0x56,0x7d, 0x5,0x5c,0x38, - 0x4,0x57,0x23, 0x7,0x39,0x49, 0x7,0x39,0x4d, 0x7,0x39,0x51, - 0x7,0x39,0x4b, 0x7,0x39,0x46, 0x7,0x39,0x4c, 0xf,0x5b,0x38, - 0x7,0x39,0x44, 0x7,0x39,0x45, 0x7,0x39,0x4e, 0x5,0x5c,0x3b, - 0x5,0x62,0x5c, 0x5,0x5c,0x3e, 0x7,0x39,0x4a, 0x4,0x5b,0x78, - 0x5,0x5c,0x40, 0x5,0x62,0x60, 0x7,0x40,0x68, 0x5,0x62,0x65, - 0x7,0x40,0x69, 0x5,0x62,0x61, 0x5,0x62,0x64, 0x4,0x5b,0x76, - 0x5,0x5c,0x3f, 0x5,0x62,0x5d, 0x5,0x62,0x62, 0x5,0x62,0x5e, - 0x5,0x62,0x5f, 0x4,0x5b,0x7a, 0x7,0x40,0x6d, 0x5,0x62,0x63, - 0x7,0x48,0x2b, 0x4,0x60,0x33, 0x7,0x48,0x27, 0x4,0x60,0x34, - 0x5,0x68,0x44, 0x4,0x60,0x35, 0x7,0x48,0x26, 0x5,0x68,0x43, - 0x5,0x68,0x42, 0x4,0x60,0x36, 0xf,0x63,0x27, 0x4,0x60,0x31, - 0x7,0x48,0x28, 0x7,0x48,0x29, 0x7,0x48,0x25, 0x7,0x48,0x2a, - 0x7,0x40,0x6c, 0x4,0x63,0x6a, 0x4,0x63,0x6b, 0x7,0x4e,0x49, - 0x7,0x4e,0x4d, 0x7,0x4e,0x4c, 0x5,0x6c,0x58, 0x5,0x6c,0x59, - 0x7,0x4e,0x4e, 0x7,0x4e,0x4b, 0x7,0x4e,0x4a, 0x5,0x70,0x51, - 0x5,0x70,0x50, 0x5,0x70,0x4e, 0x4,0x66,0x57, 0x7,0x53,0x7a, - 0x5,0x70,0x4f, 0x7,0x53,0x79, 0xf,0x67,0x78, 0x5,0x73,0x5f, - 0x5,0x73,0x5e, 0x5,0x73,0x5d, 0x7,0x5c,0x22, 0x7,0x5b,0x7e, - 0x4,0x6a,0x56, 0x7,0x5c,0x21, 0x5,0x76,0x29, 0x5,0x77,0x6b, - 0x7,0x5e,0x7d, 0x7,0x5e,0x7e, 0x7,0x61,0x42, 0x7,0x61,0x27, - 0x7,0x62,0x3f, 0x7,0x62,0x40, 0x7,0x62,0x41, 0x5,0x7a,0x6d, - 0x7,0x64,0x51, 0x7,0x65,0x39, 0x4,0x24,0x63, 0x6,0x33,0x25, - 0xf,0x2c,0x52, 0x6,0x39,0x73, 0x6,0x39,0x72, 0xf,0x31,0x30, - 0x6,0x42,0x3a, 0xf,0x36,0x71, 0x6,0x4b,0x69, 0x6,0x4b,0x67, - 0x5,0x3a,0x41, 0x6,0x4b,0x68, 0x7,0x25,0x5f, 0x4,0x51,0x53, - 0x4,0x51,0x52, 0x7,0x30,0x3a, 0x6,0x25,0x3c, 0x6,0x25,0x3d, - 0x5,0x24,0x66, 0x5,0x27,0x3a, 0x5,0x27,0x3b, 0x5,0x27,0x39, - 0x5,0x27,0x3c, 0x4,0x2a,0x4d, 0x5,0x2a,0x59, 0x5,0x2a,0x58, - 0x5,0x2a,0x57, 0x6,0x33,0x27, 0x6,0x33,0x28, 0x6,0x33,0x26, - 0xf,0x2c,0x53, 0xf,0x2c,0x54, 0x6,0x33,0x29, 0x5,0x2a,0x5a, - 0x6,0x39,0x74, 0x4,0x2e,0x42, 0x6,0x39,0x75, 0x6,0x42,0x3c, - 0xf,0x31,0x31, 0xf,0x31,0x32, 0xf,0x31,0x33, 0xf,0x31,0x35, - 0xf,0x31,0x36, 0xf,0x36,0x75, 0x4,0x33,0x46, 0x5,0x33,0x6e, - 0x6,0x42,0x3b, 0xf,0x36,0x72, 0xf,0x36,0x73, 0xf,0x36,0x76, - 0x6,0x4b,0x6b, 0x6,0x4b,0x6c, 0x6,0x4b,0x6a, 0xf,0x36,0x74, - 0x5,0x40,0x68, 0x5,0x40,0x67, 0x6,0x55,0x50, 0x4,0x3e,0x7e, - 0x6,0x55,0x4f, 0x5,0x40,0x69, 0xf,0x43,0x6d, 0x4,0x45,0x2f, - 0x6,0x5f,0x39, 0x6,0x5f,0x3a, 0xf,0x4a,0x30, 0xf,0x4a,0x31, - 0xf,0x4a,0x33, 0xf,0x4a,0x34, 0xf,0x4a,0x32, 0x4,0x4b,0x3c, - 0x7,0x25,0x60, 0x7,0x25,0x61, 0x5,0x55,0x72, 0x7,0x30,0x3c, - 0x5,0x55,0x71, 0x7,0x30,0x3b, 0x4,0x57,0x27, 0x4,0x57,0x28, - 0x5,0x5c,0x42, 0x5,0x5c,0x44, 0x7,0x40,0x6e, 0x5,0x5c,0x41, - 0x7,0x39,0x52, 0x5,0x62,0x66, 0x7,0x40,0x6f, 0x7,0x40,0x70, - 0x5,0x68,0x45, 0x5,0x68,0x46, 0x5,0x68,0x47, 0x5,0x68,0x48, - 0x7,0x48,0x2c, 0x7,0x4e,0x50, 0x7,0x4e,0x4f, 0x5,0x62,0x67, - 0x7,0x58,0x40, 0x7,0x58,0x41, 0xf,0x67,0x79, 0x7,0x5c,0x23, - 0x4,0x6b,0x73, 0x7,0x5f,0x21, 0x7,0x65,0x3a, 0x5,0x24,0x67, - 0x5,0x24,0x68, 0x6,0x2d,0x39, 0x6,0x2d,0x37, 0x6,0x2d,0x38, - 0x5,0x27,0x3d, 0x6,0x33,0x2b, 0x5,0x2a,0x5b, 0x4,0x2a,0x4f, - 0x6,0x30,0x36, 0x6,0x33,0x2a, 0x5,0x2e,0x77, 0x5,0x2e,0x78, - 0x6,0x39,0x76, 0x6,0x39,0x7a, 0x5,0x33,0x6f, 0x4,0x2e,0x44, - 0x6,0x39,0x77, 0x6,0x39,0x78, 0x6,0x39,0x79, 0x4,0x33,0x49, - 0x5,0x33,0x70, 0x6,0x42,0x3e, 0xf,0x36,0x79, 0x6,0x42,0x3d, - 0x4,0x39,0x3c, 0x6,0x4b,0x6d, 0x5,0x3a,0x42, 0x6,0x4b,0x6f, - 0x4,0x39,0x3b, 0xf,0x3d,0x4b, 0x6,0x4b,0x6e, 0xf,0x36,0x78, - 0x5,0x40,0x6a, 0x5,0x40,0x6d, 0x5,0x40,0x6b, 0x5,0x40,0x6c, - 0x5,0x40,0x6e, 0x6,0x55,0x53, 0xf,0x43,0x6e, 0x6,0x55,0x51, - 0x4,0x3f,0x21, 0x4,0x45,0x31, 0x4,0x45,0x33, 0x6,0x5f,0x3e, - 0xf,0x4a,0x35, 0x6,0x5f,0x3d, 0x5,0x47,0x5c, 0x6,0x5f,0x3f, - 0x6,0x5f,0x3b, 0x6,0x5f,0x3c, 0x7,0x25,0x63, 0x5,0x4e,0x5a, - 0x5,0x4e,0x5b, 0x5,0x4e,0x5c, 0x7,0x25,0x62, 0x5,0x55,0x76, - 0x5,0x55,0x78, 0x5,0x55,0x74, 0x4,0x51,0x58, 0x5,0x55,0x77, - 0x5,0x55,0x75, 0xf,0x56,0x36, 0x5,0x55,0x73, 0x7,0x30,0x3d, - 0x7,0x30,0x3e, 0x7,0x39,0x53, 0x7,0x30,0x3f, 0x4,0x57,0x29, - 0x5,0x62,0x68, 0x7,0x40,0x72, 0x7,0x40,0x73, 0x7,0x40,0x74, - 0x7,0x40,0x71, 0x5,0x68,0x4a, 0x5,0x68,0x49, 0x7,0x48,0x2d, - 0x4,0x63,0x6d, 0x5,0x6c,0x5b, 0x5,0x6c,0x5a, 0x7,0x4e,0x51, - 0x7,0x53,0x7c, 0x4,0x66,0x5c, 0x7,0x58,0x42, 0x5,0x77,0x6c, - 0x5,0x77,0x6d, 0x7,0x63,0x44, 0x7,0x65,0x58, 0x6,0x28,0x69, - 0xf,0x24,0x7d, 0x4,0x27,0x49, 0x5,0x27,0x3e, 0x4,0x27,0x47, - 0x6,0x2d,0x3b, 0x5,0x27,0x3f, 0x5,0x2a,0x5e, 0x5,0x2a,0x5c, - 0x5,0x2a,0x5d, 0x6,0x33,0x2d, 0x6,0x33,0x2c, 0xf,0x2c,0x55, - 0x5,0x2e,0x79, 0x6,0x3a,0x21, 0x6,0x3a,0x23, 0x4,0x2e,0x48, - 0x5,0x2e,0x7a, 0x6,0x39,0x7e, 0x6,0x39,0x7b, 0x4,0x2e,0x4a, - 0x6,0x3a,0x22, 0xf,0x31,0x37, 0xf,0x31,0x38, 0x6,0x3a,0x24, - 0x6,0x39,0x7c, 0x6,0x39,0x7d, 0x4,0x33,0x4c, 0x5,0x33,0x72, - 0x4,0x33,0x4a, 0x6,0x42,0x3f, 0xf,0x36,0x7a, 0xf,0x36,0x7b, - 0xf,0x36,0x7c, 0xf,0x36,0x7d, 0xf,0x37,0x21, 0xf,0x37,0x22, - 0x6,0x42,0x40, 0x6,0x42,0x41, 0x6,0x3a,0x25, 0x6,0x4b,0x74, - 0x6,0x4b,0x70, 0x5,0x3a,0x43, 0x4,0x39,0x3d, 0x6,0x4b,0x72, - 0x6,0x4b,0x73, 0xf,0x3d,0x4c, 0xf,0x3d,0x4d, 0x6,0x4b,0x71, - 0x6,0x55,0x54, 0x6,0x55,0x56, 0x5,0x40,0x70, 0x6,0x55,0x58, - 0x6,0x55,0x57, 0x6,0x55,0x55, 0xf,0x43,0x6f, 0xf,0x43,0x70, - 0x6,0x5f,0x41, 0x6,0x5f,0x40, 0x6,0x5f,0x4b, 0xf,0x4a,0x36, - 0x5,0x4e,0x5d, 0x7,0x25,0x64, 0x7,0x25,0x65, 0xf,0x50,0x55, - 0xf,0x50,0x56, 0xf,0x50,0x57, 0xf,0x50,0x58, 0xf,0x50,0x59, - 0xf,0x50,0x5a, 0x4,0x51,0x59, 0x7,0x30,0x44, 0x4,0x51,0x5b, - 0x7,0x30,0x40, 0x7,0x30,0x45, 0x5,0x55,0x7a, 0x5,0x55,0x79, - 0xf,0x56,0x37, 0xf,0x56,0x38, 0xf,0x56,0x39, 0xf,0x56,0x3a, - 0xf,0x56,0x3b, 0x7,0x30,0x43, 0x7,0x30,0x41, 0x4,0x57,0x2b, - 0x4,0x5c,0x23, 0x4,0x57,0x2a, 0x7,0x39,0x54, 0x5,0x5c,0x47, - 0x7,0x40,0x75, 0x5,0x5c,0x46, 0xf,0x5b,0x3b, 0xf,0x5b,0x3c, - 0x7,0x39,0x55, 0x7,0x39,0x56, 0x7,0x36,0x79, 0x5,0x5c,0x45, - 0x7,0x30,0x42, 0x7,0x39,0x57, 0x4,0x5c,0x22, 0x4,0x5c,0x21, - 0x7,0x40,0x76, 0x7,0x40,0x78, 0x7,0x40,0x77, 0xf,0x5f,0x62, - 0x7,0x40,0x79, 0x7,0x48,0x2e, 0x5,0x68,0x4b, 0x7,0x48,0x2f, - 0xf,0x63,0x28, 0xf,0x63,0x29, 0x5,0x6c,0x5d, 0x7,0x4e,0x53, - 0x5,0x6c,0x5c, 0x7,0x4e,0x55, 0xf,0x65,0x56, 0x7,0x4e,0x52, - 0x7,0x4e,0x54, 0xf,0x67,0x7b, 0x7,0x58,0x44, 0x5,0x73,0x60, - 0x7,0x58,0x43, 0x7,0x58,0x45, 0xf,0x67,0x7a, 0x7,0x5f,0x22, - 0x5,0x76,0x2a, 0x7,0x5f,0x23, 0x7,0x62,0x42, 0x5,0x22,0x7d, - 0xf,0x22,0x67, 0x6,0x28,0x6a, 0x4,0x24,0x64, 0x5,0x24,0x6a, - 0x4,0x24,0x66, 0x5,0x24,0x6b, 0x5,0x24,0x69, 0xf,0x24,0x7e, - 0x4,0x27,0x50, 0x6,0x2d,0x3c, 0x5,0x27,0x41, 0x4,0x27,0x4b, - 0x6,0x2d,0x40, 0x6,0x2d,0x42, 0x6,0x2d,0x3e, 0x5,0x27,0x42, - 0x5,0x27,0x43, 0x6,0x2d,0x41, 0x6,0x2d,0x3f, 0x5,0x27,0x40, - 0x6,0x2d,0x43, 0x6,0x2d,0x44, 0x6,0x33,0x39, 0x6,0x33,0x35, - 0x6,0x33,0x2e, 0x6,0x33,0x32, 0x4,0x2a,0x5e, 0x6,0x33,0x36, - 0x4,0x2a,0x5c, 0x6,0x33,0x3c, 0x5,0x2a,0x65, 0x6,0x33,0x33, - 0x5,0x2a,0x69, 0x4,0x2a,0x5b, 0x6,0x33,0x2f, 0x6,0x33,0x3b, - 0x5,0x2a,0x60, 0x5,0x2a,0x67, 0x5,0x2a,0x6b, 0x5,0x2a,0x61, - 0x5,0x2a,0x6a, 0x5,0x2a,0x68, 0x5,0x2a,0x63, 0x5,0x2a,0x6c, - 0x6,0x33,0x30, 0x5,0x2a,0x5f, 0x5,0x2a,0x66, 0x5,0x2a,0x62, - 0x5,0x2a,0x64, 0xf,0x2c,0x56, 0xf,0x2c,0x58, 0x6,0x33,0x37, - 0x6,0x33,0x3a, 0x6,0x33,0x34, 0x4,0x2e,0x50, 0x5,0x2f,0x24, - 0x3,0x2e,0x5a, 0x4,0x2e,0x4c, 0x5,0x2e,0x7b, 0x6,0x3a,0x26, - 0x4,0x2e,0x4e, 0x5,0x2f,0x22, 0x5,0x2e,0x7c, 0x6,0x3a,0x28, - 0x4,0x2e,0x4b, 0x6,0x3a,0x29, 0x5,0x2f,0x23, 0x6,0x3a,0x2a, - 0x4,0x2e,0x53, 0x6,0x3a,0x2c, 0x5,0x2e,0x7e, 0x5,0x2f,0x25, - 0x6,0x3a,0x2b, 0xf,0x31,0x39, 0xf,0x31,0x3a, 0xf,0x31,0x3b, - 0xf,0x31,0x3c, 0xf,0x31,0x3d, 0x6,0x3a,0x27, 0x5,0x2f,0x21, - 0x5,0x2e,0x7d, 0x4,0x2e,0x54, 0x4,0x33,0x55, 0x6,0x42,0x53, - 0x6,0x42,0x46, 0x6,0x42,0x4d, 0x5,0x33,0x74, 0x5,0x33,0x73, - 0x5,0x33,0x7d, 0x4,0x33,0x54, 0x6,0x42,0x47, 0x6,0x42,0x44, - 0x6,0x42,0x42, 0x5,0x33,0x7a, 0x5,0x33,0x7b, 0x5,0x33,0x75, - 0x6,0x42,0x4a, 0x5,0x33,0x78, 0x6,0x42,0x54, 0x5,0x33,0x79, - 0x6,0x42,0x43, 0x6,0x42,0x4f, 0x6,0x42,0x4b, 0x6,0x42,0x50, - 0xf,0x37,0x25, 0x6,0x42,0x52, 0x6,0x42,0x4c, 0x6,0x42,0x49, - 0x6,0x42,0x51, 0xf,0x37,0x26, 0x5,0x33,0x7e, 0x6,0x42,0x45, - 0x6,0x42,0x4e, 0x5,0x33,0x77, 0x5,0x33,0x7c, 0x5,0x3a,0x49, - 0x5,0x3a,0x4c, 0x6,0x4b,0x79, 0x6,0x4c,0x23, 0x4,0x33,0x53, - 0x6,0x4b,0x78, 0x5,0x3a,0x4b, 0x6,0x4b,0x7d, 0x6,0x4c,0x21, - 0x5,0x3a,0x46, 0x6,0x4c,0x26, 0x6,0x4b,0x77, 0x4,0x39,0x4f, - 0x5,0x3a,0x4a, 0x5,0x3a,0x48, 0x5,0x3a,0x44, 0x4,0x39,0x4e, - 0x5,0x40,0x71, 0x6,0x4c,0x25, 0x5,0x40,0x7e, 0x4,0x39,0x40, - 0x6,0x4b,0x7e, 0x5,0x3a,0x4d, 0x6,0x4b,0x7b, 0x5,0x3a,0x4e, - 0x6,0x4c,0x28, 0x5,0x3a,0x45, 0x5,0x3a,0x47, 0xf,0x3d,0x4f, - 0xf,0x3d,0x50, 0xf,0x3d,0x51, 0x6,0x4b,0x7c, 0x6,0x4c,0x27, - 0x6,0x4b,0x76, 0x6,0x4c,0x24, 0x6,0x4c,0x22, 0x4,0x39,0x44, - 0x4,0x39,0x50, 0x5,0x3a,0x4f, 0x4,0x39,0x3e, 0x6,0x55,0x5b, - 0x6,0x55,0x5e, 0x6,0x55,0x5a, 0x4,0x3f,0x2a, 0x5,0x40,0x78, - 0x6,0x55,0x5c, 0x5,0x40,0x77, 0x6,0x55,0x5f, 0x5,0x40,0x75, - 0x6,0x55,0x59, 0x4,0x3f,0x23, 0x4,0x3f,0x28, 0x4,0x3f,0x31, - 0x4,0x3f,0x2e, 0x5,0x40,0x7a, 0x6,0x55,0x62, 0x5,0x40,0x76, - 0x4,0x3f,0x2f, 0x4,0x3f,0x24, 0x6,0x55,0x64, 0x5,0x40,0x79, - 0x5,0x40,0x72, 0x5,0x40,0x7c, 0x6,0x55,0x66, 0x6,0x55,0x5d, - 0xf,0x43,0x71, 0xf,0x43,0x72, 0xf,0x43,0x73, 0x6,0x4b,0x75, - 0x6,0x55,0x63, 0x6,0x53,0x35, 0x5,0x40,0x73, 0x5,0x40,0x7d, - 0x5,0x40,0x74, 0x6,0x55,0x65, 0x5,0x47,0x60, 0x4,0x45,0x45, - 0x6,0x5f,0x44, 0x4,0x45,0x3e, 0x5,0x47,0x63, 0x6,0x5f,0x48, - 0x5,0x47,0x65, 0x5,0x47,0x66, 0x6,0x5f,0x49, 0x4,0x4b,0x4f, - 0x6,0x5f,0x4e, 0x6,0x5f,0x46, 0x6,0x5f,0x4f, 0x7,0x25,0x6c, - 0x6,0x5f,0x47, 0x5,0x47,0x67, 0x5,0x47,0x64, 0x6,0x5f,0x43, - 0x6,0x5f,0x4a, 0x6,0x5f,0x45, 0x5,0x47,0x62, 0x6,0x5f,0x42, - 0x5,0x47,0x5f, 0x5,0x47,0x5e, 0x5,0x47,0x5d, 0x7,0x25,0x66, - 0xf,0x4a,0x37, 0xf,0x4a,0x38, 0xf,0x4a,0x39, 0xf,0x4a,0x3a, - 0xf,0x4a,0x3b, 0xf,0x4a,0x3c, 0xf,0x4a,0x3d, 0x4,0x45,0x3a, - 0x6,0x5f,0x4d, 0x6,0x5f,0x4c, 0x5,0x47,0x69, 0x4,0x45,0x3b, - 0x4,0x4b,0x50, 0x4,0x4b,0x4c, 0x4,0x4b,0x3e, 0x5,0x4e,0x62, - 0x5,0x4e,0x67, 0x4,0x4b,0x4e, 0x7,0x25,0x6b, 0x5,0x4e,0x6c, - 0x5,0x4e,0x65, 0x4,0x4b,0x41, 0x7,0x25,0x70, 0x4,0x4b,0x40, - 0x4,0x51,0x65, 0x7,0x30,0x4d, 0x5,0x4e,0x64, 0x5,0x56,0x21, - 0x5,0x4e,0x66, 0x7,0x25,0x6d, 0x5,0x4e,0x6a, 0x7,0x25,0x72, - 0x4,0x4b,0x49, 0x4,0x4b,0x4b, 0x4,0x4b,0x46, 0x5,0x4e,0x5f, - 0x5,0x4e,0x6b, 0x7,0x25,0x67, 0x7,0x25,0x68, 0x7,0x25,0x6a, - 0x4,0x4b,0x4a, 0x5,0x4e,0x63, 0x7,0x25,0x6e, 0x5,0x4e,0x5e, - 0x5,0x4e,0x61, 0x5,0x55,0x7b, 0x5,0x4e,0x69, 0x5,0x4e,0x68, - 0x7,0x25,0x69, 0xf,0x50,0x5b, 0xf,0x50,0x5c, 0xf,0x50,0x5d, - 0x7,0x25,0x6f, 0x4,0x4b,0x48, 0x5,0x56,0x2a, 0x5,0x56,0x2b, - 0x4,0x51,0x5e, 0x5,0x56,0x25, 0x5,0x56,0x23, 0x5,0x56,0x27, - 0x5,0x55,0x7d, 0x4,0x51,0x63, 0x5,0x56,0x29, 0x5,0x55,0x7e, - 0x5,0x56,0x26, 0x5,0x56,0x24, 0x4,0x51,0x62, 0x7,0x30,0x46, - 0x7,0x30,0x4e, 0x7,0x30,0x4f, 0x7,0x30,0x4b, 0x7,0x30,0x47, - 0x5,0x4e,0x6d, 0x4,0x51,0x67, 0x5,0x55,0x7c, 0x7,0x30,0x49, - 0xf,0x56,0x3d, 0x7,0x30,0x51, 0x7,0x30,0x4c, 0x5,0x56,0x2c, - 0x4,0x51,0x66, 0x5,0x47,0x68, 0x5,0x56,0x28, 0x4,0x5c,0x2b, - 0x5,0x5c,0x48, 0x5,0x5c,0x4b, 0x4,0x57,0x35, 0x4,0x57,0x36, - 0x7,0x30,0x52, 0x7,0x39,0x5e, 0x7,0x39,0x59, 0x5,0x5c,0x4a, - 0x7,0x39,0x5a, 0x5,0x5c,0x4c, 0x7,0x39,0x64, 0x5,0x5c,0x49, - 0x7,0x41,0x22, 0x7,0x39,0x5f, 0x7,0x39,0x60, 0x7,0x39,0x5d, - 0x4,0x57,0x37, 0x7,0x39,0x63, 0x5,0x5c,0x4f, 0x7,0x30,0x48, - 0x5,0x5c,0x4e, 0x7,0x39,0x61, 0x7,0x39,0x5c, 0x7,0x39,0x5b, - 0xf,0x5b,0x3e, 0xf,0x5b,0x3f, 0xf,0x5b,0x40, 0x7,0x39,0x62, - 0x7,0x39,0x58, 0x4,0x5c,0x28, 0x7,0x41,0x23, 0x7,0x40,0x7e, - 0x5,0x62,0x6e, 0x4,0x5c,0x2c, 0x5,0x62,0x6b, 0x7,0x40,0x7b, - 0x7,0x40,0x7c, 0x5,0x62,0x70, 0x4,0x5c,0x24, 0x5,0x62,0x6c, - 0x5,0x62,0x6f, 0x5,0x62,0x71, 0x5,0x62,0x6a, 0xf,0x5f,0x63, - 0xf,0x5f,0x64, 0x7,0x41,0x24, 0x7,0x41,0x25, 0x7,0x40,0x7d, - 0x5,0x62,0x6d, 0x7,0x40,0x7a, 0x7,0x41,0x21, 0x5,0x68,0x4f, - 0x5,0x68,0x4c, 0x5,0x68,0x51, 0x4,0x60,0x3e, 0x5,0x68,0x50, - 0x4,0x60,0x3b, 0x5,0x68,0x54, 0x5,0x68,0x4e, 0x7,0x48,0x32, - 0x4,0x60,0x3a, 0x7,0x48,0x34, 0x4,0x60,0x3c, 0x4,0x60,0x3d, - 0x7,0x48,0x30, 0x5,0x68,0x4d, 0x7,0x48,0x31, 0x5,0x68,0x53, - 0x5,0x68,0x52, 0xf,0x63,0x2a, 0x7,0x4b,0x5d, 0x7,0x48,0x35, - 0x7,0x48,0x33, 0x5,0x6c,0x60, 0x5,0x6c,0x62, 0x5,0x6c,0x5e, - 0x7,0x4e,0x58, 0x5,0x6c,0x61, 0x5,0x6c,0x63, 0x7,0x4e,0x57, - 0xf,0x65,0x57, 0x4,0x63,0x72, 0x5,0x6c,0x5f, 0x4,0x63,0x73, - 0x7,0x4e,0x56, 0x7,0x54,0x22, 0x5,0x70,0x52, 0x5,0x70,0x54, - 0x5,0x70,0x53, 0x5,0x70,0x55, 0x7,0x53,0x7e, 0x7,0x54,0x23, - 0x7,0x53,0x7d, 0x4,0x68,0x79, 0x5,0x73,0x63, 0x7,0x58,0x46, - 0x5,0x73,0x61, 0x5,0x73,0x62, 0x7,0x58,0x47, 0x5,0x73,0x65, - 0x4,0x6a,0x59, 0x7,0x54,0x21, 0x5,0x73,0x64, 0x7,0x59,0x33, - 0x5,0x73,0x66, 0x5,0x76,0x2b, 0x7,0x5c,0x26, 0x4,0x6a,0x58, - 0x7,0x5c,0x25, 0x7,0x5f,0x24, 0x4,0x6c,0x74, 0x7,0x62,0x43, - 0x7,0x62,0x45, 0x7,0x62,0x44, 0xf,0x6c,0x66, 0x5,0x7b,0x43, - 0x5,0x27,0x44, 0x4,0x2a,0x60, 0x4,0x2a,0x61, 0x4,0x2e,0x56, - 0x5,0x2f,0x28, 0x5,0x2f,0x27, 0x6,0x3a,0x2f, 0x6,0x3a,0x30, - 0x4,0x33,0x58, 0x5,0x34,0x22, 0xf,0x37,0x27, 0x5,0x3a,0x52, - 0x4,0x39,0x51, 0x5,0x3a,0x53, 0x5,0x3a,0x51, 0x5,0x3a,0x55, - 0x5,0x3a,0x50, 0x6,0x4c,0x29, 0x5,0x3a,0x54, 0x5,0x41,0x23, - 0x5,0x41,0x22, 0x5,0x41,0x21, 0x6,0x5f,0x51, 0x6,0x5f,0x52, - 0x4,0x45,0x47, 0x4,0x45,0x48, 0x5,0x47,0x6c, 0x5,0x47,0x6a, - 0x5,0x47,0x6b, 0x4,0x45,0x49, 0x6,0x5f,0x50, 0x4,0x45,0x4b, - 0xf,0x4d,0x3f, 0x5,0x4e,0x6e, 0x4,0x4b,0x52, 0x7,0x25,0x75, - 0x5,0x4e,0x6f, 0x4,0x4b,0x51, 0x7,0x25,0x74, 0x4,0x4b,0x53, - 0x4,0x51,0x69, 0x4,0x51,0x68, 0x4,0x51,0x6a, 0x5,0x56,0x2d, - 0x5,0x62,0x75, 0x7,0x39,0x65, 0x5,0x5a,0x75, 0x5,0x5c,0x50, - 0x5,0x62,0x74, 0x5,0x62,0x73, 0x5,0x62,0x72, 0x5,0x68,0x57, - 0x5,0x68,0x56, 0x5,0x68,0x55, 0x5,0x68,0x58, 0x7,0x48,0x36, - 0x7,0x48,0x37, 0x4,0x6a,0x5a, 0x7,0x66,0x3f, 0x7,0x66,0x49, - 0x6,0x26,0x3f, 0x6,0x28,0x6b, 0x6,0x28,0x6c, 0x6,0x33,0x41, - 0x6,0x33,0x3f, 0x6,0x33,0x40, 0x5,0x2a,0x6e, 0x5,0x2f,0x2a, - 0x5,0x2f,0x2b, 0x6,0x3a,0x33, 0xf,0x31,0x3f, 0xf,0x31,0x40, - 0x6,0x3a,0x31, 0x6,0x3a,0x32, 0x5,0x2f,0x29, 0x5,0x34,0x23, - 0x5,0x34,0x24, 0x4,0x33,0x5c, 0x6,0x42,0x59, 0x6,0x42,0x57, - 0x5,0x34,0x25, 0x6,0x42,0x55, 0x6,0x42,0x5b, 0x6,0x42,0x56, - 0x6,0x42,0x5a, 0x6,0x42,0x58, 0x4,0x39,0x52, 0x6,0x4c,0x2c, - 0xf,0x3d,0x52, 0x6,0x4c,0x2a, 0xf,0x3d,0x53, 0x5,0x41,0x24, - 0x4,0x3f,0x32, 0x6,0x55,0x69, 0x4,0x3f,0x35, 0x4,0x3f,0x34, - 0x6,0x55,0x67, 0x5,0x3a,0x56, 0x4,0x3f,0x36, 0xf,0x43,0x75, - 0x6,0x55,0x68, 0x5,0x47,0x6d, 0x5,0x47,0x6e, 0x6,0x5f,0x53, - 0x5,0x47,0x6f, 0x5,0x47,0x70, 0xf,0x4a,0x3e, 0x7,0x25,0x78, - 0x4,0x4b,0x54, 0x7,0x25,0x76, 0x7,0x25,0x77, 0xf,0x50,0x61, - 0x7,0x25,0x79, 0x7,0x30,0x54, 0x4,0x51,0x6b, 0xf,0x56,0x3f, - 0x7,0x30,0x53, 0x5,0x5c,0x51, 0x5,0x5c,0x52, 0x7,0x39,0x66, - 0x7,0x39,0x67, 0x5,0x73,0x67, 0x5,0x76,0x2c, 0x5,0x22,0x7e, - 0x6,0x25,0x3e, 0x4,0x24,0x67, 0x6,0x28,0x6d, 0x5,0x24,0x6d, - 0x5,0x24,0x6c, 0xf,0x25,0x21, 0xf,0x25,0x22, 0x5,0x27,0x45, - 0x4,0x27,0x54, 0xf,0x28,0x30, 0xf,0x28,0x31, 0xf,0x28,0x32, - 0xf,0x28,0x33, 0x6,0x2d,0x47, 0xf,0x28,0x35, 0x4,0x2a,0x65, - 0x4,0x2a,0x63, 0x6,0x33,0x45, 0x5,0x2a,0x70, 0xf,0x2c,0x59, - 0xf,0x2c,0x5a, 0xf,0x2c,0x5b, 0xf,0x2c,0x5d, 0xf,0x2c,0x5e, - 0xf,0x2c,0x5f, 0xf,0x2c,0x61, 0xf,0x2c,0x63, 0x6,0x33,0x43, - 0x6,0x33,0x44, 0xf,0x2c,0x64, 0xf,0x2c,0x60, 0x6,0x33,0x42, - 0x5,0x2a,0x6f, 0x5,0x2a,0x71, 0x4,0x2e,0x60, 0x5,0x2f,0x33, - 0x6,0x3a,0x34, 0x6,0x33,0x46, 0x6,0x3a,0x35, 0x5,0x2f,0x2f, - 0x6,0x3a,0x39, 0x5,0x2f,0x2c, 0x5,0x2f,0x31, 0x5,0x2f,0x30, - 0x4,0x2e,0x5b, 0x4,0x2e,0x5d, 0x5,0x2f,0x36, 0x5,0x2f,0x32, - 0x5,0x2f,0x35, 0xf,0x31,0x3e, 0x4,0x2e,0x59, 0x5,0x2f,0x37, - 0x6,0x3a,0x38, 0xf,0x31,0x42, 0xf,0x31,0x43, 0xf,0x31,0x45, - 0xf,0x31,0x46, 0x4,0x2e,0x5a, 0x5,0x2f,0x2d, 0x6,0x3a,0x37, - 0xf,0x31,0x48, 0xf,0x31,0x41, 0x5,0x34,0x26, 0x5,0x2f,0x2e, - 0x6,0x3a,0x36, 0x5,0x34,0x2c, 0x5,0x34,0x28, 0x6,0x42,0x61, - 0x6,0x42,0x5f, 0x5,0x34,0x31, 0x5,0x34,0x30, 0x5,0x34,0x2a, - 0x6,0x42,0x60, 0x5,0x34,0x34, 0x5,0x34,0x32, 0x5,0x2f,0x38, - 0x5,0x34,0x2e, 0x5,0x34,0x27, 0x5,0x34,0x29, 0x5,0x34,0x2d, - 0xf,0x37,0x28, 0xf,0x37,0x29, 0xf,0x37,0x2a, 0xf,0x37,0x2b, - 0xf,0x37,0x2e, 0xf,0x37,0x2f, 0xf,0x37,0x31, 0xf,0x37,0x32, - 0xf,0x37,0x33, 0x6,0x42,0x5e, 0x6,0x42,0x5c, 0x6,0x4c,0x2e, - 0xf,0x37,0x30, 0x5,0x34,0x2b, 0xf,0x37,0x2c, 0x6,0x42,0x62, - 0x5,0x34,0x2f, 0x5,0x34,0x33, 0x6,0x42,0x5d, 0x5,0x3a,0x58, - 0x5,0x3a,0x5e, 0x5,0x3a,0x57, 0x5,0x3a,0x5b, 0x4,0x39,0x56, - 0x6,0x4c,0x35, 0x4,0x39,0x57, 0x4,0x39,0x55, 0x5,0x3a,0x5c, - 0x5,0x3a,0x5d, 0x6,0x4c,0x31, 0x5,0x3a,0x5a, 0x5,0x3a,0x5f, - 0xf,0x3d,0x54, 0xf,0x3d,0x55, 0xf,0x3d,0x56, 0xf,0x3d,0x57, - 0x6,0x4c,0x34, 0x6,0x4c,0x30, 0x6,0x4c,0x32, 0x5,0x3a,0x61, - 0x5,0x3a,0x60, 0x5,0x41,0x28, 0x6,0x55,0x71, 0x4,0x3f,0x37, - 0x5,0x41,0x29, 0x6,0x55,0x6a, 0x6,0x55,0x6c, 0x5,0x41,0x25, - 0x6,0x55,0x6e, 0x4,0x3f,0x41, 0x4,0x3f,0x43, 0x6,0x55,0x6f, - 0x6,0x55,0x72, 0x5,0x41,0x26, 0x5,0x41,0x27, 0x6,0x55,0x6d, - 0xf,0x43,0x77, 0xf,0x43,0x78, 0xf,0x43,0x79, 0xf,0x43,0x7a, - 0xf,0x43,0x7b, 0xf,0x43,0x7c, 0xf,0x43,0x7d, 0xf,0x43,0x7e, - 0xf,0x44,0x21, 0xf,0x44,0x22, 0xf,0x44,0x23, 0xf,0x44,0x24, - 0xf,0x44,0x26, 0x6,0x55,0x70, 0x6,0x55,0x73, 0x6,0x5f,0x5b, - 0x5,0x47,0x78, 0x6,0x5f,0x54, 0x7,0x25,0x7e, 0x5,0x47,0x7a, - 0x6,0x5f,0x56, 0x4,0x45,0x52, 0x5,0x47,0x73, 0x5,0x47,0x72, - 0x6,0x5f,0x57, 0x5,0x47,0x7b, 0x6,0x5f,0x59, 0x6,0x5f,0x5a, - 0x5,0x47,0x75, 0x6,0x5f,0x55, 0x5,0x47,0x71, 0x5,0x47,0x7d, - 0x6,0x5f,0x58, 0xf,0x4a,0x41, 0xf,0x4a,0x43, 0xf,0x4a,0x44, - 0xf,0x4a,0x45, 0xf,0x4a,0x46, 0xf,0x4a,0x47, 0xf,0x4a,0x48, - 0xf,0x4a,0x49, 0xf,0x4a,0x4b, 0xf,0x4a,0x4c, 0xf,0x4a,0x4d, - 0xf,0x4a,0x4f, 0xf,0x4a,0x50, 0xf,0x4a,0x51, 0xf,0x4a,0x52, - 0x4,0x45,0x54, 0xf,0x4a,0x40, 0x5,0x47,0x77, 0x5,0x47,0x7c, - 0x5,0x47,0x79, 0x5,0x47,0x74, 0xf,0x50,0x64, 0x4,0x4b,0x5a, - 0x5,0x4e,0x72, 0x5,0x4e,0x73, 0x7,0x26,0x21, 0x5,0x4e,0x70, - 0x4,0x45,0x50, 0x7,0x26,0x25, 0x5,0x4e,0x75, 0x7,0x25,0x7d, - 0xf,0x50,0x62, 0xf,0x50,0x63, 0xf,0x50,0x65, 0xf,0x50,0x66, - 0xf,0x50,0x68, 0x7,0x26,0x22, 0x7,0x25,0x7a, 0x7,0x26,0x23, - 0x5,0x4e,0x71, 0x5,0x4e,0x74, 0x7,0x25,0x7c, 0xf,0x4a,0x4a, - 0x7,0x30,0x58, 0x5,0x56,0x31, 0x5,0x56,0x2e, 0x5,0x56,0x32, - 0x7,0x30,0x55, 0x4,0x51,0x71, 0x4,0x51,0x73, 0x5,0x56,0x34, - 0x4,0x51,0x72, 0x7,0x30,0x56, 0x7,0x30,0x5a, 0x4,0x51,0x6f, - 0x7,0x30,0x57, 0xf,0x56,0x41, 0xf,0x56,0x42, 0xf,0x56,0x43, - 0x5,0x56,0x30, 0xf,0x56,0x44, 0x5,0x56,0x2f, 0xf,0x56,0x45, - 0xf,0x56,0x46, 0xf,0x56,0x47, 0xf,0x56,0x49, 0xf,0x56,0x4b, - 0xf,0x56,0x4c, 0xf,0x56,0x4d, 0x5,0x5c,0x56, 0x7,0x39,0x68, - 0x5,0x5c,0x54, 0x7,0x39,0x6f, 0x7,0x39,0x6a, 0x5,0x5c,0x53, - 0x4,0x57,0x3a, 0x7,0x39,0x69, 0x5,0x5c,0x55, 0x4,0x57,0x3d, - 0x7,0x39,0x6c, 0x4,0x57,0x3c, 0x5,0x56,0x35, 0x5,0x5c,0x58, - 0x5,0x5c,0x57, 0x5,0x5c,0x59, 0xf,0x5b,0x41, 0xf,0x5b,0x42, - 0xf,0x5b,0x43, 0xf,0x5b,0x44, 0xf,0x5b,0x45, 0xf,0x5b,0x46, - 0xf,0x5b,0x47, 0xf,0x5b,0x48, 0xf,0x5b,0x49, 0x7,0x39,0x6b, - 0x7,0x39,0x6e, 0xf,0x56,0x4a, 0x7,0x41,0x29, 0x5,0x62,0x76, - 0x5,0x62,0x78, 0x7,0x41,0x26, 0x7,0x41,0x28, 0x5,0x62,0x77, - 0x4,0x5c,0x30, 0x5,0x62,0x7a, 0x7,0x41,0x27, 0x5,0x62,0x79, - 0x7,0x41,0x2a, 0xf,0x5f,0x65, 0xf,0x5f,0x66, 0xf,0x5f,0x67, - 0xf,0x5f,0x68, 0xf,0x5f,0x69, 0x4,0x60,0x40, 0x5,0x68,0x5a, - 0x5,0x68,0x59, 0xf,0x63,0x2b, 0xf,0x63,0x2c, 0xf,0x63,0x2d, - 0xf,0x63,0x2e, 0x7,0x48,0x3a, 0x7,0x48,0x38, 0x7,0x48,0x39, - 0xf,0x63,0x2f, 0x5,0x6c,0x65, 0x5,0x6c,0x66, 0x7,0x4e,0x59, - 0x7,0x4e,0x5a, 0x5,0x6c,0x64, 0x5,0x6c,0x67, 0x4,0x60,0x41, - 0x7,0x4e,0x5b, 0xf,0x65,0x5a, 0xf,0x65,0x5b, 0xf,0x65,0x5c, - 0xf,0x65,0x5d, 0x7,0x4e,0x5d, 0x5,0x70,0x56, 0x5,0x70,0x57, - 0xf,0x67,0x7d, 0x7,0x54,0x24, 0x4,0x66,0x62, 0xf,0x67,0x7c, - 0x5,0x73,0x68, 0x7,0x58,0x48, 0x5,0x73,0x69, 0xf,0x69,0x5b, - 0xf,0x69,0x5c, 0x7,0x58,0x49, 0x5,0x73,0x6a, 0x5,0x76,0x2e, - 0x4,0x6a,0x5b, 0x5,0x76,0x2d, 0x5,0x76,0x2f, 0xf,0x6a,0x65, - 0x7,0x5c,0x28, 0x7,0x5c,0x27, 0x7,0x5f,0x26, 0x7,0x5f,0x25, - 0x7,0x5f,0x27, 0x7,0x62,0x46, 0x5,0x7a,0x2d, 0x5,0x7a,0x6e, - 0x4,0x6d,0x75, 0x7,0x64,0x53, 0x7,0x65,0x3b, 0x5,0x7c,0x43, - 0x6,0x22,0x27, 0x6,0x25,0x40, 0x6,0x28,0x6e, 0xf,0x22,0x68, - 0x6,0x2d,0x48, 0xf,0x25,0x24, 0x6,0x33,0x47, 0x6,0x33,0x49, - 0xf,0x28,0x36, 0xf,0x28,0x38, 0xf,0x28,0x39, 0xf,0x28,0x3a, - 0xf,0x28,0x3b, 0xf,0x28,0x3d, 0xf,0x28,0x37, 0x6,0x31,0x5a, - 0x5,0x2f,0x39, 0x6,0x3a,0x3a, 0x4,0x2e,0x63, 0x5,0x2f,0x3a, - 0x6,0x3a,0x3b, 0x6,0x33,0x4b, 0xf,0x2c,0x65, 0xf,0x2c,0x66, - 0xf,0x2c,0x67, 0xf,0x2c,0x68, 0xf,0x2c,0x69, 0xf,0x31,0x49, - 0xf,0x31,0x4b, 0xf,0x31,0x4e, 0x6,0x3a,0x3e, 0x6,0x3a,0x3f, - 0x6,0x3a,0x3d, 0x6,0x3a,0x40, 0x6,0x3a,0x3c, 0xf,0x2c,0x6a, - 0x4,0x2a,0x68, 0x5,0x34,0x36, 0x6,0x3a,0x41, 0xf,0x31,0x4a, - 0xf,0x31,0x4c, 0xf,0x31,0x4d, 0xf,0x31,0x4f, 0xf,0x31,0x50, - 0xf,0x31,0x51, 0xf,0x31,0x52, 0xf,0x31,0x53, 0xf,0x31,0x54, - 0xf,0x37,0x37, 0x6,0x42,0x63, 0x5,0x34,0x35, 0x6,0x4c,0x38, - 0x5,0x3a,0x62, 0x6,0x4c,0x39, 0x6,0x4c,0x3a, 0x6,0x4c,0x3c, - 0x5,0x3a,0x63, 0x6,0x4c,0x3d, 0x6,0x4c,0x3b, 0x6,0x4c,0x36, - 0x6,0x4c,0x37, 0xf,0x37,0x34, 0xf,0x37,0x36, 0xf,0x37,0x38, - 0xf,0x3d,0x5b, 0xf,0x37,0x35, 0x6,0x55,0x75, 0x5,0x41,0x2b, - 0x5,0x41,0x2a, 0x5,0x41,0x2c, 0x6,0x4c,0x3f, 0x4,0x3f,0x48, - 0xf,0x3d,0x58, 0xf,0x3d,0x59, 0xf,0x3d,0x5a, 0xf,0x3d,0x5c, - 0xf,0x3d,0x5d, 0xf,0x3d,0x5e, 0xf,0x3d,0x5f, 0xf,0x3d,0x62, - 0xf,0x3d,0x63, 0xf,0x3d,0x64, 0xf,0x44,0x28, 0xf,0x44,0x2a, - 0xf,0x3d,0x61, 0x6,0x55,0x74, 0x5,0x48,0x23, 0x6,0x5f,0x5f, - 0x6,0x5f,0x60, 0x4,0x45,0x56, 0x6,0x5f,0x63, 0x6,0x5f,0x61, - 0xf,0x44,0x27, 0xf,0x44,0x29, 0xf,0x44,0x2b, 0xf,0x44,0x2c, - 0xf,0x44,0x2d, 0xf,0x44,0x2e, 0xf,0x44,0x2f, 0xf,0x44,0x30, - 0xf,0x44,0x31, 0xf,0x44,0x32, 0x6,0x5f,0x5d, 0x6,0x5f,0x62, - 0x5,0x48,0x21, 0x6,0x5f,0x5e, 0x4,0x4b,0x5f, 0x7,0x26,0x26, - 0x6,0x5f,0x5c, 0x6,0x5f,0x64, 0xf,0x4a,0x53, 0xf,0x4a,0x55, - 0xf,0x4a,0x56, 0xf,0x4a,0x57, 0xf,0x4a,0x58, 0xf,0x4a,0x5a, - 0x7,0x26,0x28, 0x5,0x56,0x38, 0x7,0x30,0x5c, 0x5,0x56,0x36, - 0x7,0x30,0x5d, 0x4,0x51,0x77, 0x5,0x56,0x39, 0x5,0x56,0x37, - 0x5,0x56,0x3a, 0x7,0x26,0x2a, 0x7,0x30,0x5b, 0xf,0x50,0x6a, - 0xf,0x50,0x69, 0xf,0x56,0x51, 0x4,0x57,0x43, 0x5,0x5c,0x5a, - 0x7,0x39,0x73, 0x4,0x57,0x44, 0x7,0x39,0x76, 0x7,0x39,0x74, - 0x7,0x30,0x5e, 0xf,0x50,0x6b, 0xf,0x56,0x4e, 0xf,0x56,0x4f, - 0xf,0x56,0x50, 0xf,0x56,0x52, 0x7,0x39,0x71, 0x7,0x39,0x75, - 0x7,0x39,0x72, 0x7,0x39,0x70, 0xf,0x5b,0x4d, 0xf,0x5b,0x4f, - 0x4,0x5c,0x34, 0x5,0x62,0x7b, 0x7,0x41,0x2c, 0xf,0x5b,0x4b, - 0xf,0x5b,0x4c, 0xf,0x5b,0x4e, 0xf,0x5b,0x50, 0xf,0x5b,0x51, - 0xf,0x5b,0x52, 0x7,0x41,0x2b, 0x4,0x5c,0x33, 0x5,0x68,0x5b, - 0x7,0x48,0x3c, 0x7,0x48,0x3d, 0xf,0x5f,0x6a, 0xf,0x5f,0x6b, - 0x5,0x6c,0x68, 0x4,0x63,0x77, 0xf,0x65,0x5e, 0x7,0x4e,0x5e, - 0x7,0x54,0x26, 0x7,0x54,0x25, 0xf,0x65,0x5f, 0x4,0x68,0x7d, - 0x7,0x58,0x4a, 0x7,0x58,0x4b, 0x7,0x5c,0x29, 0xf,0x69,0x5d, - 0x7,0x5c,0x2a, 0x7,0x5c,0x2b, 0x5,0x77,0x6e, 0x7,0x5c,0x2c, - 0x5,0x77,0x6f, 0xf,0x6a,0x67, 0x5,0x79,0x32, 0x7,0x62,0x49, - 0x7,0x62,0x47, 0x7,0x63,0x5d, 0xf,0x6c,0x67, 0xf,0x22,0x69, - 0x6,0x33,0x4d, 0x6,0x42,0x64, 0x4,0x39,0x5b, 0x6,0x4c,0x40, - 0x6,0x55,0x76, 0x6,0x5f,0x65, 0x7,0x26,0x2c, 0x7,0x30,0x5f, - 0x7,0x30,0x60, 0x7,0x41,0x2d, 0x5,0x73,0x6b, 0x7,0x61,0x28, - 0x4,0x21,0x7e, 0x6,0x25,0x41, 0xf,0x22,0x6a, 0x6,0x28,0x6f, - 0xf,0x25,0x25, 0x6,0x28,0x70, 0x4,0x27,0x55, 0x5,0x27,0x48, - 0x4,0x27,0x57, 0x5,0x27,0x47, 0xf,0x28,0x3e, 0xf,0x28,0x3f, - 0xf,0x28,0x40, 0xf,0x28,0x41, 0xf,0x28,0x42, 0x6,0x2d,0x4a, - 0x6,0x33,0x51, 0x6,0x33,0x54, 0x5,0x2a,0x74, 0x5,0x2a,0x72, - 0x4,0x2a,0x70, 0x5,0x2a,0x75, 0x6,0x33,0x56, 0x6,0x33,0x50, - 0x6,0x33,0x52, 0x4,0x2a,0x6d, 0x6,0x33,0x4f, 0x5,0x2a,0x73, - 0x6,0x33,0x57, 0xf,0x2c,0x6b, 0xf,0x2c,0x6c, 0xf,0x2c,0x6e, - 0xf,0x2c,0x6f, 0xf,0x2c,0x70, 0x6,0x33,0x55, 0x6,0x33,0x53, - 0x6,0x33,0x4e, 0x5,0x2f,0x3c, 0x5,0x2f,0x3b, 0x6,0x3a,0x45, - 0x5,0x2f,0x3d, 0x6,0x3a,0x46, 0x5,0x2f,0x3e, 0x5,0x2a,0x76, - 0x5,0x34,0x3c, 0x6,0x3a,0x47, 0xf,0x31,0x55, 0xf,0x31,0x56, - 0x6,0x3a,0x42, 0x6,0x3a,0x44, 0x5,0x34,0x3a, 0x6,0x42,0x69, - 0x5,0x34,0x3f, 0x4,0x33,0x68, 0x5,0x34,0x3d, 0x6,0x42,0x68, - 0x5,0x34,0x37, 0xf,0x37,0x3a, 0xf,0x37,0x3c, 0xf,0x37,0x3d, - 0xf,0x37,0x3e, 0x4,0x33,0x6c, 0x6,0x42,0x65, 0x6,0x42,0x6a, - 0x4,0x39,0x5f, 0x5,0x3a,0x64, 0x4,0x39,0x60, 0x4,0x39,0x5c, - 0x6,0x4c,0x41, 0x6,0x4c,0x42, 0x6,0x4c,0x45, 0x6,0x4c,0x47, - 0x4,0x39,0x5d, 0x6,0x4c,0x44, 0x4,0x3f,0x51, 0xf,0x3d,0x65, - 0xf,0x3d,0x67, 0xf,0x3d,0x69, 0x5,0x34,0x3e, 0xf,0x3d,0x66, - 0x5,0x41,0x36, 0x5,0x41,0x2f, 0x6,0x55,0x79, 0x6,0x55,0x77, - 0x6,0x55,0x7a, 0x5,0x41,0x30, 0x5,0x41,0x2d, 0x5,0x41,0x32, - 0x5,0x41,0x34, 0x5,0x41,0x38, 0x5,0x41,0x33, 0x4,0x3f,0x4e, - 0x6,0x56,0x21, 0x5,0x41,0x2e, 0x6,0x55,0x7b, 0x6,0x55,0x7e, - 0x6,0x55,0x7c, 0xf,0x44,0x33, 0xf,0x44,0x34, 0xf,0x44,0x35, - 0xf,0x44,0x36, 0xf,0x44,0x37, 0xf,0x44,0x38, 0xf,0x44,0x39, - 0xf,0x44,0x3a, 0x6,0x55,0x78, 0x6,0x55,0x7d, 0x5,0x41,0x37, - 0x5,0x41,0x35, 0x5,0x48,0x28, 0x6,0x5f,0x69, 0x5,0x45,0x2d, - 0x5,0x48,0x2d, 0x6,0x5f,0x68, 0x6,0x5f,0x66, 0x6,0x5f,0x6a, - 0x4,0x45,0x5c, 0x5,0x48,0x2e, 0x5,0x48,0x29, 0x6,0x5f,0x6e, - 0x6,0x5f,0x6f, 0x5,0x48,0x2b, 0x5,0x48,0x27, 0x5,0x48,0x2c, - 0x6,0x5f,0x70, 0x5,0x48,0x2a, 0x6,0x5f,0x67, 0xf,0x4a,0x60, - 0xf,0x4a,0x5b, 0xf,0x4a,0x5c, 0xf,0x4a,0x5d, 0xf,0x4a,0x5e, - 0xf,0x4a,0x5f, 0xf,0x4a,0x61, 0xf,0x4a,0x62, 0xf,0x4a,0x63, - 0xf,0x4a,0x65, 0x6,0x5f,0x6d, 0x6,0x5f,0x6c, 0x5,0x4e,0x7b, - 0x5,0x4e,0x78, 0x5,0x4e,0x7a, 0x7,0x26,0x33, 0x7,0x26,0x30, - 0x5,0x4e,0x79, 0x4,0x4b,0x69, 0x7,0x26,0x34, 0x7,0x26,0x31, - 0x7,0x26,0x38, 0x5,0x48,0x2f, 0x7,0x26,0x2f, 0x5,0x56,0x45, - 0x5,0x4e,0x7c, 0x5,0x4e,0x7d, 0x4,0x4b,0x67, 0x4,0x4b,0x6a, - 0x7,0x26,0x35, 0xf,0x50,0x6c, 0xf,0x50,0x6e, 0xf,0x50,0x6f, - 0xf,0x50,0x70, 0xf,0x50,0x71, 0xf,0x50,0x72, 0x7,0x26,0x2e, - 0x7,0x26,0x36, 0x7,0x26,0x37, 0x4,0x51,0x7b, 0x7,0x30,0x6d, - 0x5,0x56,0x3d, 0x5,0x56,0x40, 0x7,0x30,0x69, 0x5,0x56,0x3c, - 0x5,0x56,0x3f, 0x5,0x56,0x3e, 0x4,0x51,0x7e, 0x5,0x56,0x3b, - 0x5,0x56,0x43, 0x7,0x30,0x63, 0x7,0x30,0x64, 0x5,0x56,0x42, - 0x7,0x30,0x62, 0x5,0x56,0x46, 0x5,0x5c,0x5b, 0x5,0x56,0x47, - 0x7,0x30,0x6b, 0x7,0x30,0x6a, 0x7,0x30,0x6c, 0x7,0x30,0x61, - 0xf,0x56,0x54, 0xf,0x56,0x55, 0x7,0x30,0x65, 0x7,0x30,0x67, - 0x7,0x30,0x68, 0x5,0x56,0x44, 0x5,0x56,0x41, 0x5,0x5c,0x5e, - 0x5,0x5c,0x61, 0x5,0x5c,0x62, 0x5,0x5c,0x5f, 0x5,0x5c,0x5c, - 0x5,0x5c,0x5d, 0x4,0x57,0x4a, 0x7,0x39,0x77, 0x5,0x5c,0x64, - 0x4,0x57,0x46, 0x5,0x5c,0x60, 0x7,0x39,0x7a, 0xf,0x5b,0x54, - 0xf,0x5b,0x55, 0xf,0x5b,0x56, 0xf,0x5b,0x57, 0xf,0x5b,0x58, - 0xf,0x5b,0x5a, 0x7,0x39,0x78, 0xf,0x5b,0x53, 0x5,0x56,0x48, - 0x7,0x39,0x79, 0x5,0x5c,0x63, 0xf,0x56,0x53, 0x5,0x62,0x7d, - 0x5,0x63,0x26, 0x5,0x63,0x24, 0x5,0x63,0x21, 0x5,0x63,0x22, - 0x5,0x63,0x25, 0x7,0x41,0x30, 0x5,0x62,0x7e, 0x7,0x41,0x2f, - 0x5,0x63,0x23, 0xf,0x5f,0x6c, 0xf,0x5f,0x6d, 0xf,0x5f,0x6e, - 0xf,0x5f,0x6f, 0xf,0x5f,0x70, 0xf,0x5f,0x71, 0xf,0x5f,0x72, - 0x5,0x62,0x7c, 0x5,0x68,0x5e, 0x4,0x60,0x43, 0x5,0x68,0x5c, - 0x4,0x60,0x44, 0x4,0x60,0x47, 0x7,0x48,0x3f, 0x4,0x60,0x46, - 0x5,0x68,0x5d, 0x7,0x4e,0x62, 0x7,0x48,0x41, 0x7,0x48,0x3e, - 0xf,0x63,0x30, 0x7,0x48,0x40, 0x5,0x6c,0x6b, 0x4,0x63,0x7a, - 0x4,0x63,0x78, 0x5,0x6c,0x6a, 0x7,0x4e,0x60, 0x4,0x5c,0x38, - 0x5,0x6c,0x69, 0x5,0x6c,0x6c, 0x7,0x4e,0x5f, 0x7,0x4e,0x61, - 0xf,0x65,0x60, 0xf,0x65,0x61, 0xf,0x65,0x63, 0x7,0x4e,0x63, - 0x5,0x6c,0x6d, 0x7,0x54,0x28, 0x7,0x54,0x27, 0x5,0x70,0x58, - 0x7,0x54,0x29, 0x7,0x58,0x4d, 0x5,0x73,0x6c, 0x7,0x58,0x4e, - 0x5,0x76,0x30, 0x5,0x76,0x31, 0x7,0x58,0x4f, 0x5,0x77,0x70, - 0x7,0x5c,0x2d, 0x7,0x5c,0x2e, 0x7,0x5f,0x28, 0x7,0x5e,0x71, - 0xf,0x6b,0x57, 0xf,0x6b,0x58, 0x4,0x6c,0x77, 0x5,0x79,0x33, - 0xf,0x6c,0x34, 0x4,0x6c,0x78, 0x5,0x7a,0x2e, 0x5,0x7b,0x61, - 0x5,0x7b,0x62, 0x6,0x23,0x37, 0x5,0x24,0x6f, 0x5,0x24,0x70, - 0x4,0x27,0x59, 0x4,0x27,0x5a, 0x4,0x27,0x58, 0x6,0x2d,0x4d, - 0x6,0x2d,0x4c, 0x6,0x2d,0x4f, 0x3,0x2a,0x45, 0x6,0x2d,0x4b, - 0xf,0x28,0x43, 0x4,0x2a,0x74, 0x6,0x33,0x59, 0x6,0x33,0x5b, - 0x6,0x33,0x58, 0x5,0x2a,0x77, 0x4,0x2a,0x73, 0x5,0x2a,0x79, - 0x5,0x2a,0x78, 0x6,0x33,0x5a, 0x6,0x33,0x5c, 0x6,0x33,0x5d, - 0x5,0x2a,0x7a, 0xf,0x2c,0x71, 0xf,0x2c,0x72, 0xf,0x2c,0x73, - 0x5,0x2f,0x3f, 0x4,0x2e,0x66, 0x4,0x2e,0x6b, 0x4,0x2e,0x68, - 0x5,0x2f,0x43, 0x5,0x2f,0x42, 0x5,0x2f,0x41, 0x6,0x3a,0x4c, - 0x4,0x2e,0x69, 0x4,0x2e,0x6a, 0x4,0x2e,0x67, 0x6,0x3a,0x4a, - 0x6,0x3a,0x48, 0x5,0x2f,0x40, 0x5,0x2f,0x44, 0xf,0x31,0x58, - 0xf,0x31,0x59, 0xf,0x31,0x5a, 0x6,0x3a,0x4b, 0x6,0x3a,0x49, - 0x5,0x34,0x44, 0x5,0x34,0x43, 0x6,0x42,0x6c, 0x6,0x42,0x6b, - 0x6,0x42,0x6d, 0x5,0x34,0x41, 0x4,0x33,0x6e, 0x5,0x34,0x42, - 0x5,0x34,0x40, 0x6,0x42,0x6e, 0xf,0x37,0x40, 0xf,0x37,0x41, - 0xf,0x37,0x42, 0xf,0x37,0x43, 0xf,0x37,0x44, 0x5,0x3a,0x72, - 0x4,0x39,0x66, 0x5,0x3a,0x74, 0x6,0x4c,0x4e, 0x6,0x4c,0x4a, - 0x4,0x39,0x69, 0x6,0x4c,0x52, 0x5,0x3a,0x69, 0x5,0x3a,0x6f, - 0x5,0x3a,0x71, 0x6,0x4c,0x50, 0x5,0x3a,0x67, 0x6,0x4c,0x51, - 0x5,0x3a,0x68, 0x6,0x4c,0x4b, 0x5,0x3a,0x6a, 0x4,0x39,0x68, - 0x5,0x3a,0x73, 0x6,0x4c,0x4c, 0x5,0x3a,0x70, 0x6,0x4c,0x49, - 0x5,0x3a,0x66, 0x5,0x3a,0x6d, 0x6,0x4c,0x4f, 0x5,0x3a,0x6e, - 0x5,0x3a,0x6b, 0x6,0x4c,0x4d, 0xf,0x3d,0x6b, 0x5,0x41,0x3a, - 0x6,0x56,0x29, 0x5,0x41,0x3c, 0x5,0x41,0x3b, 0x5,0x41,0x3e, - 0x6,0x56,0x22, 0x6,0x56,0x24, 0x5,0x3a,0x6c, 0x5,0x41,0x3d, - 0x5,0x41,0x3f, 0x6,0x56,0x28, 0x6,0x56,0x2b, 0x5,0x41,0x40, - 0x6,0x56,0x26, 0x6,0x56,0x25, 0xf,0x44,0x3b, 0xf,0x44,0x3d, - 0xf,0x44,0x3e, 0xf,0x44,0x3f, 0xf,0x44,0x40, 0x6,0x56,0x23, - 0x6,0x56,0x2a, 0x6,0x57,0x26, 0x4,0x45,0x61, 0x6,0x5f,0x77, - 0x5,0x48,0x32, 0x6,0x5f,0x76, 0x6,0x5f,0x72, 0x6,0x5f,0x74, - 0x6,0x5f,0x73, 0x5,0x48,0x31, 0x6,0x5f,0x79, 0xf,0x4a,0x66, - 0x5,0x48,0x33, 0x6,0x5f,0x71, 0xf,0x44,0x3c, 0x7,0x26,0x3b, - 0x5,0x4f,0x21, 0x5,0x4f,0x27, 0x5,0x4f,0x2a, 0x5,0x48,0x30, - 0x7,0x26,0x3a, 0x5,0x4f,0x2b, 0x5,0x4f,0x26, 0x5,0x4f,0x22, - 0x5,0x4f,0x2c, 0x5,0x4f,0x25, 0x7,0x26,0x39, 0x5,0x4e,0x7e, - 0x5,0x4f,0x28, 0x5,0x4f,0x24, 0x5,0x4f,0x29, 0x7,0x27,0x2e, - 0x4,0x4b,0x6d, 0x5,0x56,0x4f, 0x5,0x56,0x51, 0x4,0x52,0x23, - 0x5,0x56,0x50, 0x4,0x52,0x26, 0x5,0x56,0x49, 0x4,0x52,0x28, - 0x7,0x30,0x70, 0x5,0x56,0x4a, 0x5,0x56,0x4c, 0x5,0x56,0x4b, - 0x5,0x56,0x53, 0x5,0x56,0x4d, 0x5,0x56,0x54, 0x7,0x30,0x6e, - 0x5,0x56,0x4e, 0x5,0x5c,0x65, 0x5,0x56,0x55, 0xf,0x56,0x56, - 0xf,0x56,0x57, 0xf,0x56,0x58, 0xf,0x56,0x59, 0xf,0x56,0x5a, - 0x7,0x30,0x71, 0x5,0x5c,0x6a, 0x5,0x5c,0x67, 0x7,0x3a,0x21, - 0x4,0x57,0x4e, 0x5,0x5c,0x69, 0x7,0x39,0x7c, 0x7,0x39,0x7d, - 0x7,0x39,0x7b, 0x5,0x5c,0x66, 0x7,0x39,0x7e, 0x7,0x30,0x72, - 0x5,0x5c,0x68, 0xf,0x5b,0x5b, 0x5,0x63,0x28, 0x5,0x63,0x27, - 0xf,0x5f,0x74, 0x4,0x60,0x4a, 0x7,0x48,0x44, 0x7,0x48,0x43, - 0x5,0x68,0x5f, 0x7,0x48,0x42, 0x7,0x4e,0x64, 0x7,0x4e,0x66, - 0x5,0x68,0x60, 0x4,0x63,0x7b, 0x5,0x6c,0x6e, 0x7,0x54,0x2d, - 0x7,0x4e,0x67, 0x7,0x4e,0x65, 0xf,0x65,0x64, 0x5,0x70,0x5b, - 0x7,0x54,0x2b, 0x4,0x66,0x67, 0x4,0x66,0x66, 0x5,0x70,0x59, - 0x7,0x54,0x2c, 0x5,0x70,0x5a, 0xf,0x68,0x21, 0xf,0x65,0x65, - 0x5,0x76,0x32, 0x7,0x5c,0x2f, 0x5,0x77,0x71, 0x7,0x61,0x2a, - 0xf,0x6b,0x59, 0x7,0x5f,0x29, 0x5,0x79,0x34, 0x7,0x62,0x4a, - 0x5,0x7b,0x63, 0x6,0x28,0x72, 0x6,0x28,0x71, 0x5,0x27,0x49, - 0x5,0x27,0x4a, 0x4,0x2a,0x75, 0xf,0x2c,0x74, 0xf,0x2c,0x78, - 0x4,0x2e,0x6f, 0x5,0x2f,0x47, 0x5,0x2f,0x48, 0x4,0x2e,0x6c, - 0x5,0x2f,0x46, 0x5,0x2f,0x45, 0x4,0x2e,0x6e, 0xf,0x31,0x5c, - 0xf,0x31,0x5d, 0xf,0x31,0x5e, 0xf,0x31,0x5f, 0xf,0x31,0x61, - 0xf,0x31,0x62, 0x6,0x3a,0x4d, 0x6,0x3a,0x4e, 0x6,0x42,0x72, - 0x4,0x33,0x73, 0x6,0x42,0x71, 0x6,0x42,0x73, 0x6,0x42,0x70, - 0x4,0x33,0x74, 0xf,0x37,0x45, 0xf,0x37,0x47, 0x5,0x34,0x47, - 0xf,0x37,0x48, 0x4,0x39,0x6b, 0x6,0x4c,0x55, 0x5,0x3a,0x75, - 0x5,0x3a,0x77, 0x5,0x3a,0x76, 0x5,0x3a,0x78, 0x6,0x4c,0x54, - 0xf,0x3d,0x6d, 0xf,0x3d,0x6e, 0xf,0x3d,0x6f, 0xf,0x3d,0x70, - 0x4,0x3f,0x56, 0x4,0x3f,0x58, 0x5,0x41,0x42, 0x4,0x3f,0x59, - 0x6,0x56,0x2c, 0x5,0x41,0x41, 0x6,0x56,0x2d, 0x6,0x56,0x2e, - 0xf,0x44,0x41, 0xf,0x44,0x42, 0xf,0x44,0x43, 0x5,0x41,0x43, - 0x5,0x48,0x34, 0x6,0x5f,0x7a, 0x5,0x48,0x35, 0x4,0x45,0x62, - 0xf,0x4a,0x67, 0xf,0x4a,0x68, 0xf,0x4a,0x6a, 0xf,0x4a,0x69, - 0x7,0x26,0x3f, 0x4,0x4b,0x6e, 0x5,0x4f,0x2d, 0xf,0x50,0x73, - 0xf,0x50,0x74, 0xf,0x50,0x75, 0x7,0x26,0x3d, 0xf,0x56,0x5c, - 0xf,0x56,0x5b, 0x4,0x57,0x51, 0x7,0x30,0x74, 0x5,0x56,0x56, - 0xf,0x5b,0x5c, 0x5,0x5c,0x6c, 0x5,0x5d,0x63, 0x7,0x3a,0x22, - 0x5,0x5c,0x6b, 0x5,0x63,0x2a, 0x7,0x3a,0x23, 0xf,0x5f,0x75, - 0x7,0x41,0x31, 0x5,0x63,0x29, 0x7,0x4e,0x68, 0x7,0x54,0x2e, - 0xf,0x65,0x66, 0x7,0x48,0x45, 0x5,0x70,0x5c, 0xf,0x68,0x22, - 0x7,0x58,0x50, 0xf,0x69,0x5e, 0xf,0x6a,0x68, 0x7,0x61,0x2b, - 0xf,0x25,0x26, 0x5,0x27,0x4b, 0x6,0x2d,0x50, 0x5,0x27,0x4d, - 0x5,0x27,0x4c, 0x5,0x2a,0x7c, 0x5,0x2a,0x7d, 0x5,0x2a,0x7b, - 0x6,0x33,0x5f, 0x6,0x33,0x5e, 0x5,0x2a,0x7e, 0xf,0x2c,0x79, - 0xf,0x2c,0x7a, 0xf,0x2c,0x7b, 0xf,0x2c,0x7c, 0xf,0x2c,0x7d, - 0xf,0x29,0x24, 0x5,0x2f,0x4e, 0x5,0x2f,0x49, 0x4,0x2e,0x74, - 0x5,0x2f,0x4a, 0x5,0x2f,0x4c, 0x5,0x2f,0x4d, 0x6,0x3a,0x50, - 0x5,0x2f,0x51, 0x5,0x2f,0x4f, 0x5,0x2f,0x4b, 0x6,0x3a,0x4f, - 0x6,0x3a,0x51, 0x5,0x2f,0x50, 0x5,0x2f,0x52, 0xf,0x31,0x63, - 0xf,0x31,0x64, 0xf,0x31,0x65, 0xf,0x31,0x66, 0xf,0x31,0x67, - 0xf,0x31,0x68, 0xf,0x31,0x69, 0xf,0x31,0x6a, 0x4,0x2e,0x76, - 0x6,0x42,0x74, 0x6,0x42,0x7a, 0x5,0x34,0x4a, 0x4,0x33,0x79, - 0x5,0x34,0x4d, 0x6,0x42,0x77, 0x5,0x34,0x4c, 0x6,0x42,0x7c, - 0x4,0x33,0x75, 0x5,0x34,0x4e, 0x6,0x42,0x75, 0x5,0x2f,0x53, - 0x5,0x34,0x49, 0x6,0x42,0x79, 0x6,0x42,0x7b, 0x5,0x34,0x50, - 0x5,0x34,0x51, 0x6,0x42,0x78, 0xf,0x37,0x49, 0xf,0x37,0x4a, - 0xf,0x37,0x4b, 0xf,0x37,0x4c, 0xf,0x37,0x4e, 0xf,0x37,0x4f, - 0x5,0x3a,0x7c, 0x5,0x3b,0x22, 0x5,0x3a,0x7b, 0x5,0x3a,0x7e, - 0x4,0x39,0x6c, 0x4,0x39,0x6e, 0x6,0x4c,0x5a, 0x5,0x34,0x4b, - 0x4,0x39,0x73, 0x5,0x3b,0x21, 0x5,0x3a,0x7a, 0x4,0x39,0x79, - 0x4,0x39,0x77, 0x4,0x39,0x70, 0x6,0x4c,0x5d, 0x4,0x39,0x78, - 0x6,0x4c,0x57, 0x5,0x3b,0x25, 0x6,0x4c,0x59, 0x6,0x4c,0x5c, - 0x5,0x34,0x4f, 0x5,0x3a,0x7d, 0xf,0x3d,0x71, 0xf,0x3d,0x72, - 0xf,0x3d,0x73, 0xf,0x3d,0x74, 0xf,0x3d,0x75, 0xf,0x3d,0x76, - 0xf,0x3d,0x78, 0xf,0x3d,0x79, 0xf,0x3d,0x7a, 0xf,0x3d,0x77, - 0x5,0x3b,0x23, 0x5,0x41,0x54, 0x5,0x41,0x48, 0x5,0x41,0x4f, - 0x4,0x3f,0x5c, 0x5,0x41,0x4d, 0x5,0x41,0x45, 0x4,0x3f,0x64, - 0x4,0x3f,0x65, 0x5,0x41,0x50, 0x4,0x3f,0x5f, 0x5,0x3a,0x79, - 0x6,0x56,0x30, 0x5,0x41,0x46, 0x5,0x41,0x55, 0x5,0x41,0x4b, - 0x5,0x41,0x52, 0x5,0x41,0x44, 0x5,0x41,0x49, 0x5,0x41,0x4c, - 0x6,0x56,0x34, 0x6,0x56,0x32, 0x6,0x56,0x37, 0x6,0x56,0x3a, - 0x6,0x56,0x33, 0x6,0x56,0x36, 0x6,0x56,0x38, 0x6,0x5f,0x7b, - 0x5,0x41,0x53, 0x5,0x41,0x51, 0x5,0x41,0x4e, 0x5,0x41,0x47, - 0x6,0x56,0x31, 0x6,0x4c,0x58, 0x6,0x56,0x35, 0x6,0x56,0x39, - 0xf,0x44,0x44, 0xf,0x44,0x46, 0xf,0x44,0x47, 0xf,0x44,0x48, - 0xf,0x44,0x49, 0xf,0x44,0x4a, 0xf,0x44,0x4b, 0xf,0x44,0x4c, - 0xf,0x44,0x4d, 0xf,0x44,0x4e, 0xf,0x44,0x4f, 0xf,0x44,0x50, - 0x6,0x56,0x2f, 0xf,0x41,0x3e, 0x5,0x48,0x45, 0x5,0x41,0x56, - 0x4,0x45,0x6c, 0x5,0x48,0x43, 0x6,0x60,0x27, 0x4,0x45,0x67, - 0x6,0x5f,0x7c, 0x6,0x5f,0x7d, 0x5,0x48,0x3c, 0x5,0x48,0x3b, - 0x5,0x48,0x42, 0x4,0x45,0x6f, 0x6,0x60,0x28, 0x5,0x48,0x40, - 0x6,0x60,0x26, 0x5,0x48,0x38, 0x5,0x48,0x39, 0x6,0x60,0x25, - 0x6,0x60,0x21, 0x5,0x48,0x3a, 0x5,0x48,0x41, 0x5,0x48,0x37, - 0x5,0x48,0x3d, 0x6,0x60,0x22, 0x5,0x41,0x4a, 0x5,0x48,0x47, - 0x6,0x5f,0x7e, 0x5,0x48,0x3e, 0x6,0x60,0x24, 0x5,0x48,0x3f, - 0x4,0x45,0x71, 0x5,0x48,0x44, 0xf,0x4a,0x6b, 0xf,0x4a,0x6c, - 0xf,0x4a,0x6d, 0xf,0x4a,0x6e, 0xf,0x4a,0x6f, 0xf,0x4a,0x70, - 0xf,0x4a,0x73, 0xf,0x4a,0x74, 0xf,0x4a,0x75, 0xf,0x4a,0x76, - 0xf,0x4a,0x77, 0xf,0x4a,0x78, 0xf,0x4a,0x79, 0xf,0x4a,0x7a, - 0xf,0x4a,0x72, 0xf,0x4a,0x71, 0x5,0x4f,0x3a, 0x7,0x26,0x49, - 0x7,0x26,0x4b, 0x5,0x4f,0x44, 0x4,0x4c,0x2f, 0x5,0x4f,0x33, - 0x7,0x26,0x51, 0x7,0x26,0x4a, 0x5,0x4f,0x3e, 0x4,0x4b,0x71, - 0x4,0x4b,0x6f, 0x5,0x4f,0x41, 0x5,0x4f,0x2f, 0x5,0x4f,0x34, - 0x5,0x4f,0x43, 0x7,0x26,0x42, 0x5,0x4f,0x40, 0x5,0x4f,0x31, - 0x4,0x52,0x40, 0x5,0x4f,0x39, 0x5,0x4f,0x42, 0x4,0x4b,0x72, - 0x4,0x4c,0x29, 0x4,0x4c,0x23, 0x4,0x4b,0x7d, 0x5,0x4f,0x38, - 0x5,0x4f,0x37, 0x5,0x4f,0x3c, 0x7,0x26,0x4e, 0x5,0x48,0x48, - 0x5,0x4f,0x35, 0x7,0x26,0x50, 0x7,0x26,0x47, 0x7,0x26,0x44, - 0x5,0x4f,0x3f, 0x7,0x26,0x40, 0x7,0x26,0x53, 0x4,0x4c,0x24, - 0x7,0x26,0x4f, 0x4,0x4b,0x7c, 0x7,0x26,0x4c, 0x5,0x4f,0x3d, - 0x7,0x26,0x45, 0x7,0x26,0x43, 0x5,0x4f,0x2e, 0x7,0x26,0x48, - 0x7,0x26,0x46, 0x5,0x4f,0x46, 0xf,0x50,0x78, 0x7,0x26,0x52, - 0xf,0x50,0x77, 0xf,0x50,0x7a, 0xf,0x50,0x7b, 0xf,0x50,0x7c, - 0xf,0x50,0x7d, 0xf,0x50,0x7e, 0xf,0x51,0x22, 0xf,0x51,0x24, - 0xf,0x51,0x29, 0xf,0x51,0x25, 0xf,0x51,0x26, 0xf,0x51,0x27, - 0xf,0x51,0x2a, 0x5,0x56,0x64, 0x4,0x52,0x41, 0x4,0x52,0x3e, - 0x5,0x56,0x58, 0x5,0x56,0x5e, 0x5,0x56,0x66, 0x7,0x31,0x2a, - 0x5,0x56,0x5c, 0x4,0x52,0x2e, 0x5,0x56,0x5d, 0x4,0x52,0x2c, - 0x5,0x56,0x68, 0x7,0x26,0x41, 0x7,0x31,0x25, 0x4,0x52,0x32, - 0x5,0x56,0x67, 0x4,0x52,0x31, 0x7,0x31,0x29, 0x4,0x52,0x3c, - 0x7,0x30,0x7e, 0x7,0x31,0x26, 0x4,0x52,0x30, 0x5,0x56,0x60, - 0x7,0x30,0x7b, 0x4,0x52,0x3f, 0x5,0x56,0x5f, 0x5,0x56,0x59, - 0x7,0x30,0x7a, 0x7,0x31,0x28, 0x4,0x52,0x2a, 0x5,0x56,0x57, - 0x7,0x31,0x24, 0x4,0x52,0x35, 0x5,0x56,0x65, 0x7,0x30,0x7d, - 0x5,0x56,0x62, 0x4,0x52,0x33, 0x7,0x31,0x2b, 0x7,0x30,0x75, - 0x7,0x31,0x27, 0x5,0x4f,0x30, 0x5,0x56,0x63, 0x5,0x56,0x5a, - 0x7,0x30,0x78, 0x7,0x31,0x23, 0x7,0x30,0x76, 0x5,0x56,0x61, - 0xf,0x56,0x72, 0x5,0x56,0x5b, 0x7,0x30,0x7c, 0x7,0x30,0x77, - 0x7,0x31,0x22, 0xf,0x56,0x5d, 0xf,0x56,0x5e, 0xf,0x56,0x60, - 0xf,0x56,0x61, 0xf,0x56,0x62, 0xf,0x56,0x63, 0xf,0x56,0x64, - 0xf,0x56,0x65, 0xf,0x56,0x66, 0xf,0x56,0x67, 0xf,0x56,0x68, - 0xf,0x56,0x69, 0xf,0x56,0x6a, 0xf,0x56,0x6b, 0xf,0x56,0x6c, - 0xf,0x56,0x6d, 0xf,0x56,0x6e, 0xf,0x56,0x6f, 0xf,0x56,0x70, - 0xf,0x56,0x71, 0xf,0x56,0x73, 0x7,0x30,0x79, 0xf,0x50,0x79, - 0x5,0x5d,0x24, 0x5,0x5d,0x21, 0x4,0x57,0x5d, 0x5,0x5c,0x75, - 0x5,0x5d,0x2d, 0x5,0x5c,0x79, 0x4,0x57,0x5c, 0x4,0x57,0x63, - 0x4,0x57,0x67, 0x7,0x3a,0x2c, 0x5,0x5d,0x2b, 0x4,0x57,0x60, - 0x5,0x5d,0x22, 0x5,0x5c,0x70, 0x5,0x5d,0x23, 0x5,0x5c,0x72, - 0x5,0x5d,0x31, 0x5,0x5c,0x7b, 0x5,0x5d,0x2a, 0x5,0x5c,0x77, - 0x5,0x5d,0x34, 0x7,0x3a,0x24, 0x5,0x5c,0x76, 0x5,0x5c,0x7c, - 0x5,0x5d,0x26, 0x4,0x57,0x64, 0x5,0x5d,0x27, 0x7,0x3a,0x29, - 0x5,0x63,0x42, 0x5,0x5d,0x2c, 0x5,0x5c,0x7a, 0x7,0x3a,0x2f, - 0x7,0x3a,0x28, 0x5,0x5c,0x6f, 0x5,0x5d,0x32, 0x5,0x5d,0x29, - 0x5,0x5c,0x73, 0x7,0x3a,0x2b, 0x5,0x5d,0x2e, 0x5,0x5c,0x71, - 0x5,0x5c,0x6e, 0x5,0x5d,0x28, 0x4,0x57,0x66, 0x4,0x5c,0x3c, - 0x5,0x5d,0x33, 0x5,0x5c,0x78, 0x5,0x5d,0x2f, 0x5,0x5d,0x25, - 0x7,0x31,0x21, 0x5,0x5c,0x74, 0x7,0x3a,0x27, 0x7,0x3a,0x26, - 0x7,0x3a,0x25, 0x7,0x3a,0x2d, 0xf,0x5b,0x5d, 0xf,0x5b,0x5e, - 0xf,0x5b,0x60, 0xf,0x5b,0x61, 0xf,0x5b,0x62, 0xf,0x5b,0x63, - 0xf,0x5b,0x64, 0xf,0x5b,0x66, 0xf,0x5b,0x67, 0xf,0x5b,0x68, - 0xf,0x5b,0x69, 0x7,0x3a,0x2a, 0x7,0x3a,0x2e, 0x4,0x57,0x68, - 0xf,0x5b,0x65, 0x4,0x57,0x61, 0x5,0x63,0x4b, 0x5,0x63,0x47, - 0x5,0x5d,0x35, 0x4,0x5c,0x52, 0x5,0x63,0x45, 0x5,0x63,0x38, - 0x5,0x63,0x33, 0x4,0x5c,0x47, 0x5,0x63,0x4a, 0x5,0x63,0x40, - 0x3,0x58,0x4f, 0x5,0x63,0x2e, 0x4,0x5c,0x4e, 0x4,0x5c,0x45, - 0x5,0x63,0x43, 0x5,0x63,0x39, 0x5,0x63,0x4c, 0x4,0x5c,0x3d, - 0x7,0x41,0x3b, 0x5,0x63,0x46, 0x5,0x63,0x30, 0x5,0x63,0x37, - 0x4,0x5c,0x3e, 0x4,0x5c,0x3f, 0x5,0x63,0x48, 0x7,0x41,0x39, - 0x5,0x63,0x35, 0x5,0x63,0x32, 0x5,0x63,0x3f, 0x7,0x41,0x35, - 0x5,0x63,0x2c, 0x7,0x41,0x36, 0x4,0x5c,0x41, 0x7,0x41,0x33, - 0x4,0x5c,0x53, 0x5,0x63,0x3e, 0x7,0x41,0x38, 0x5,0x63,0x3d, - 0x7,0x41,0x3a, 0x7,0x41,0x3e, 0x7,0x41,0x34, 0x5,0x63,0x31, - 0x4,0x5c,0x4d, 0x5,0x63,0x36, 0x5,0x63,0x3a, 0x5,0x63,0x44, - 0x5,0x63,0x49, 0x5,0x63,0x3c, 0x5,0x63,0x2d, 0x7,0x41,0x42, - 0x7,0x41,0x41, 0x5,0x63,0x3b, 0x5,0x63,0x2b, 0x5,0x63,0x2f, - 0x7,0x41,0x32, 0x7,0x41,0x37, 0xf,0x5f,0x76, 0xf,0x5f,0x77, - 0xf,0x5f,0x78, 0xf,0x5f,0x79, 0xf,0x5f,0x7a, 0xf,0x5f,0x7b, - 0xf,0x5f,0x7c, 0xf,0x5f,0x7d, 0xf,0x5f,0x7e, 0xf,0x60,0x21, - 0xf,0x60,0x23, 0xf,0x60,0x24, 0xf,0x60,0x25, 0x7,0x41,0x40, - 0x7,0x41,0x3d, 0xf,0x5b,0x6a, 0xf,0x63,0x36, 0xf,0x63,0x37, - 0xf,0x60,0x22, 0x5,0x68,0x6a, 0x5,0x68,0x6f, 0x7,0x48,0x4e, - 0x4,0x60,0x59, 0x7,0x48,0x4c, 0x5,0x68,0x63, 0x4,0x60,0x54, - 0x4,0x60,0x55, 0x4,0x60,0x51, 0x5,0x68,0x69, 0x4,0x60,0x4f, - 0x4,0x60,0x50, 0x7,0x48,0x48, 0x4,0x60,0x52, 0x5,0x68,0x62, - 0x4,0x60,0x58, 0x4,0x60,0x4d, 0x7,0x48,0x47, 0x5,0x68,0x6d, - 0x5,0x68,0x68, 0x5,0x68,0x70, 0x5,0x68,0x6c, 0x5,0x68,0x6b, - 0x5,0x68,0x65, 0x5,0x68,0x64, 0x5,0x68,0x67, 0x7,0x48,0x46, - 0x7,0x48,0x4a, 0x5,0x68,0x61, 0x5,0x68,0x71, 0x7,0x48,0x49, - 0xf,0x63,0x31, 0xf,0x63,0x33, 0xf,0x63,0x34, 0xf,0x63,0x35, - 0xf,0x63,0x38, 0xf,0x63,0x39, 0xf,0x63,0x3a, 0xf,0x63,0x3b, - 0xf,0x63,0x3c, 0x7,0x48,0x4b, 0x7,0x48,0x4d, 0x5,0x6c,0x7c, - 0x5,0x6c,0x7b, 0x5,0x6c,0x76, 0x4,0x60,0x57, 0x5,0x6c,0x74, - 0x7,0x4e,0x6c, 0x5,0x6c,0x7a, 0x4,0x63,0x7d, 0x7,0x4e,0x74, - 0x4,0x64,0x22, 0x5,0x6c,0x78, 0x5,0x6c,0x73, 0x4,0x66,0x70, - 0x7,0x4e,0x6a, 0x5,0x6c,0x6f, 0x5,0x6c,0x75, 0x5,0x6c,0x71, - 0x7,0x4e,0x69, 0x7,0x4e,0x75, 0x5,0x6c,0x77, 0x7,0x4e,0x6d, - 0x7,0x4e,0x6e, 0x5,0x6c,0x72, 0x7,0x4e,0x6f, 0x7,0x54,0x38, - 0x7,0x4e,0x71, 0x7,0x4e,0x70, 0x7,0x4e,0x72, 0x7,0x4e,0x73, - 0xf,0x65,0x68, 0xf,0x65,0x69, 0x7,0x4e,0x6b, 0x5,0x70,0x64, - 0x5,0x70,0x68, 0x5,0x70,0x69, 0x4,0x66,0x71, 0x4,0x66,0x6b, - 0x5,0x70,0x66, 0x5,0x70,0x6b, 0x7,0x54,0x2f, 0x5,0x70,0x5e, - 0x5,0x70,0x63, 0x5,0x70,0x60, 0x4,0x64,0x21, 0x5,0x70,0x67, - 0x5,0x70,0x5f, 0x5,0x6c,0x70, 0x7,0x54,0x35, 0x5,0x70,0x6a, - 0x5,0x70,0x5d, 0x7,0x54,0x31, 0x5,0x70,0x65, 0x4,0x69,0x27, - 0x5,0x70,0x6c, 0x7,0x54,0x36, 0x7,0x54,0x30, 0x7,0x54,0x34, - 0xf,0x68,0x23, 0xf,0x68,0x24, 0xf,0x68,0x25, 0xf,0x68,0x26, - 0xf,0x68,0x27, 0xf,0x68,0x28, 0xf,0x68,0x29, 0x7,0x54,0x33, - 0x7,0x54,0x39, 0x7,0x54,0x32, 0x7,0x58,0x55, 0x4,0x69,0x24, - 0x4,0x69,0x23, 0x5,0x73,0x70, 0x5,0x73,0x6e, 0x5,0x70,0x62, - 0x5,0x73,0x71, 0x7,0x58,0x52, 0x5,0x70,0x6d, 0x7,0x58,0x51, - 0x5,0x73,0x74, 0x4,0x69,0x25, 0x5,0x73,0x6d, 0x7,0x58,0x54, - 0x7,0x54,0x37, 0x5,0x73,0x76, 0x5,0x73,0x73, 0x5,0x73,0x6f, - 0x5,0x73,0x75, 0x5,0x73,0x72, 0x7,0x58,0x56, 0xf,0x69,0x5f, - 0xf,0x69,0x60, 0xf,0x69,0x61, 0xf,0x69,0x62, 0x7,0x58,0x53, - 0x7,0x59,0x34, 0x4,0x6a,0x5e, 0x5,0x76,0x33, 0x7,0x5c,0x31, - 0x5,0x76,0x34, 0x4,0x6a,0x5f, 0x4,0x6a,0x60, 0x4,0x6a,0x62, - 0x7,0x5c,0x30, 0x5,0x76,0x36, 0x7,0x5c,0x32, 0x5,0x76,0x35, - 0x7,0x5c,0x36, 0x7,0x5c,0x35, 0xf,0x6a,0x69, 0x7,0x5c,0x33, - 0x7,0x5c,0x37, 0x7,0x5c,0x34, 0x5,0x77,0x72, 0x7,0x5f,0x2b, - 0x7,0x5f,0x2e, 0x5,0x77,0x74, 0x5,0x77,0x75, 0x7,0x5f,0x2d, - 0x5,0x76,0x37, 0x7,0x5f,0x2c, 0x7,0x5f,0x2a, 0x5,0x77,0x73, - 0x7,0x5f,0x31, 0x4,0x6b,0x77, 0xf,0x6b,0x5a, 0xf,0x6b,0x5b, - 0xf,0x6b,0x5c, 0x7,0x5f,0x2f, 0x5,0x79,0x35, 0x7,0x61,0x2c, - 0x7,0x61,0x2e, 0x7,0x61,0x31, 0x4,0x6c,0x79, 0x7,0x61,0x2f, - 0x7,0x5f,0x30, 0x7,0x61,0x2d, 0x5,0x7a,0x31, 0x5,0x7a,0x2f, - 0x5,0x7a,0x30, 0x7,0x61,0x30, 0xf,0x6c,0x4f, 0xf,0x6c,0x4d, - 0x7,0x63,0x5e, 0x7,0x63,0x5f, 0xf,0x6c,0x68, 0x7,0x63,0x60, - 0x5,0x7b,0x44, 0x5,0x7b,0x64, 0xf,0x6d,0x27, 0x7,0x64,0x54, - 0x4,0x6e,0x4e, 0x5,0x7b,0x7c, 0x5,0x7c,0x2b, 0x5,0x24,0x71, - 0xf,0x25,0x27, 0x5,0x27,0x4e, 0x6,0x2d,0x51, 0xf,0x28,0x45, - 0x6,0x33,0x61, 0x5,0x2b,0x22, 0x6,0x33,0x60, 0x5,0x2b,0x23, - 0xf,0x2c,0x7e, 0xf,0x2d,0x22, 0x6,0x3a,0x52, 0x5,0x2f,0x54, - 0x6,0x3a,0x56, 0x5,0x2f,0x55, 0x6,0x3a,0x54, 0x5,0x2f,0x56, - 0xf,0x31,0x6b, 0xf,0x31,0x6c, 0xf,0x31,0x6d, 0xf,0x31,0x6e, - 0x6,0x3a,0x53, 0x6,0x3a,0x55, 0x4,0x33,0x7e, 0x5,0x34,0x55, - 0x4,0x34,0x24, 0x5,0x34,0x54, 0x4,0x34,0x21, 0x5,0x34,0x58, - 0x5,0x34,0x53, 0x5,0x34,0x56, 0x5,0x34,0x57, 0x4,0x34,0x23, - 0x5,0x34,0x5a, 0x5,0x34,0x52, 0x6,0x42,0x7d, 0x6,0x4c,0x63, - 0x6,0x43,0x21, 0xf,0x37,0x50, 0xf,0x37,0x51, 0x6,0x42,0x7e, - 0xf,0x37,0x52, 0x5,0x3b,0x26, 0x4,0x39,0x7a, 0x6,0x4c,0x61, - 0x6,0x4c,0x5e, 0x6,0x4c,0x65, 0x5,0x3b,0x28, 0x4,0x3a,0x21, - 0x6,0x4c,0x64, 0x6,0x4c,0x5f, 0xf,0x3d,0x7c, 0xf,0x3d,0x7e, - 0xf,0x3e,0x22, 0xf,0x3d,0x7b, 0x6,0x4c,0x62, 0x5,0x41,0x57, - 0x4,0x3f,0x68, 0x6,0x56,0x3d, 0x5,0x41,0x59, 0x5,0x41,0x5a, - 0x5,0x3b,0x27, 0x5,0x41,0x58, 0x6,0x56,0x3f, 0x6,0x56,0x3e, - 0x4,0x39,0x7e, 0x5,0x41,0x5b, 0x5,0x41,0x5d, 0x5,0x41,0x5c, - 0x6,0x56,0x41, 0xf,0x44,0x52, 0xf,0x44,0x53, 0xf,0x44,0x55, - 0xf,0x44,0x56, 0x6,0x56,0x3b, 0xf,0x44,0x54, 0x6,0x56,0x40, - 0xf,0x44,0x51, 0x6,0x60,0x2d, 0x5,0x48,0x4a, 0x6,0x60,0x2b, - 0x6,0x60,0x2e, 0x5,0x48,0x4c, 0x4,0x45,0x73, 0x6,0x56,0x3c, - 0x6,0x60,0x33, 0x6,0x60,0x32, 0x5,0x48,0x4b, 0x6,0x60,0x30, - 0x5,0x48,0x49, 0x5,0x48,0x4d, 0xf,0x4a,0x7c, 0xf,0x4a,0x7d, - 0xf,0x4a,0x7e, 0xf,0x4b,0x21, 0xf,0x4b,0x22, 0xf,0x4b,0x23, - 0xf,0x4b,0x25, 0xf,0x4b,0x26, 0xf,0x4b,0x28, 0xf,0x4b,0x29, - 0xf,0x4b,0x2a, 0xf,0x4b,0x2d, 0x6,0x60,0x2f, 0xf,0x4b,0x2c, - 0x6,0x60,0x29, 0x6,0x60,0x2a, 0xf,0x4b,0x24, 0x7,0x26,0x58, - 0x7,0x26,0x54, 0x4,0x4c,0x36, 0x5,0x4f,0x4b, 0x7,0x26,0x55, - 0x7,0x26,0x59, 0x4,0x4c,0x33, 0x5,0x4f,0x4a, 0x5,0x4f,0x4c, - 0x5,0x4f,0x50, 0x5,0x48,0x4e, 0x5,0x4f,0x4f, 0x5,0x4f,0x4d, - 0x7,0x26,0x5b, 0x7,0x26,0x56, 0x5,0x4f,0x49, 0x4,0x4c,0x34, - 0x5,0x4f,0x4e, 0x4,0x4c,0x32, 0x7,0x26,0x5a, 0x5,0x4f,0x48, - 0x5,0x4f,0x47, 0xf,0x51,0x2b, 0xf,0x51,0x2c, 0xf,0x51,0x2d, - 0xf,0x51,0x2f, 0x5,0x56,0x6e, 0x5,0x56,0x6c, 0x5,0x5d,0x3c, - 0x4,0x52,0x43, 0x5,0x56,0x6b, 0x4,0x52,0x42, 0x7,0x31,0x2f, - 0x7,0x31,0x30, 0x5,0x56,0x6f, 0x7,0x31,0x2c, 0x5,0x56,0x6a, - 0x5,0x56,0x6d, 0x5,0x56,0x70, 0xf,0x56,0x74, 0xf,0x56,0x75, - 0x7,0x31,0x2e, 0x5,0x5d,0x36, 0x5,0x5d,0x38, 0x7,0x3a,0x30, - 0x5,0x5d,0x39, 0x5,0x5d,0x37, 0x5,0x5d,0x3a, 0x5,0x5d,0x3b, - 0x7,0x3a,0x32, 0x7,0x3a,0x34, 0x7,0x3a,0x35, 0x7,0x3a,0x31, - 0xf,0x5b,0x6b, 0xf,0x5b,0x6c, 0xf,0x5b,0x6d, 0xf,0x5b,0x6f, - 0xf,0x5b,0x70, 0xf,0x5b,0x71, 0xf,0x5b,0x72, 0x4,0x57,0x6c, - 0x5,0x63,0x52, 0x7,0x41,0x45, 0x4,0x5c,0x57, 0x5,0x63,0x53, - 0x5,0x63,0x4f, 0x7,0x48,0x56, 0x5,0x63,0x51, 0x5,0x5d,0x3d, - 0x7,0x41,0x46, 0x5,0x63,0x50, 0x7,0x4e,0x78, 0x5,0x63,0x4d, - 0x7,0x41,0x43, 0xf,0x60,0x27, 0xf,0x60,0x28, 0xf,0x60,0x29, - 0xf,0x5b,0x6e, 0x5,0x68,0x74, 0x7,0x48,0x4f, 0x7,0x48,0x50, - 0x4,0x60,0x5e, 0x4,0x60,0x5c, 0x5,0x68,0x73, 0x5,0x70,0x6e, - 0x7,0x48,0x52, 0x7,0x48,0x53, 0x7,0x41,0x48, 0x4,0x60,0x5f, - 0x4,0x5c,0x58, 0x5,0x68,0x75, 0x7,0x41,0x47, 0x5,0x68,0x72, - 0xf,0x63,0x3e, 0x7,0x48,0x51, 0x7,0x48,0x54, 0x7,0x48,0x55, - 0xf,0x63,0x3f, 0x7,0x4e,0x77, 0x5,0x6c,0x7e, 0x7,0x4e,0x76, - 0xf,0x65,0x6a, 0xf,0x65,0x6b, 0x4,0x66,0x73, 0x4,0x66,0x72, - 0x5,0x70,0x6f, 0x7,0x54,0x3d, 0x7,0x54,0x3c, 0xf,0x68,0x2a, - 0xf,0x68,0x2b, 0x7,0x54,0x3b, 0x5,0x73,0x77, 0x7,0x58,0x57, - 0x5,0x73,0x78, 0x4,0x6a,0x63, 0x4,0x6a,0x64, 0x7,0x5c,0x38, - 0xf,0x6a,0x6a, 0x5,0x76,0x38, 0x7,0x5c,0x39, 0x7,0x5f,0x32, - 0x5,0x77,0x77, 0x5,0x77,0x76, 0x5,0x79,0x38, 0x7,0x61,0x33, - 0x5,0x79,0x37, 0x5,0x79,0x36, 0x7,0x61,0x32, 0x7,0x62,0x4c, - 0x4,0x6d,0x5d, 0x5,0x7a,0x32, 0x7,0x62,0x4b, 0x5,0x7a,0x33, - 0x7,0x63,0x62, 0x7,0x63,0x61, 0x5,0x7b,0x7d, 0x7,0x66,0x36, - 0x5,0x27,0x4f, 0x6,0x2d,0x52, 0x5,0x27,0x50, 0xf,0x28,0x47, - 0xf,0x28,0x48, 0x5,0x27,0x51, 0x5,0x2b,0x26, 0x6,0x33,0x62, - 0x6,0x33,0x65, 0x5,0x2b,0x24, 0x5,0x2b,0x25, 0x6,0x33,0x67, - 0x6,0x33,0x63, 0x5,0x2b,0x27, 0xf,0x2d,0x23, 0x6,0x33,0x68, - 0x6,0x3a,0x5b, 0x6,0x3a,0x57, 0x4,0x2e,0x79, 0x6,0x3a,0x63, - 0x4,0x2e,0x7b, 0x6,0x3a,0x5d, 0x6,0x3a,0x5c, 0x6,0x3a,0x5f, - 0x5,0x2f,0x5a, 0x4,0x2e,0x7a, 0x4,0x2f,0x24, 0x6,0x3a,0x64, - 0x6,0x3a,0x59, 0x4,0x2f,0x23, 0x6,0x3a,0x5e, 0x4,0x2f,0x22, - 0x6,0x3a,0x60, 0x6,0x3a,0x58, 0x5,0x2f,0x59, 0x6,0x3a,0x61, - 0x5,0x2f,0x58, 0x5,0x2f,0x57, 0x6,0x3a,0x5a, 0xf,0x31,0x71, - 0xf,0x31,0x72, 0xf,0x31,0x73, 0xf,0x31,0x74, 0xf,0x31,0x75, - 0xf,0x31,0x76, 0xf,0x31,0x77, 0x4,0x2f,0x26, 0x6,0x3a,0x62, - 0x5,0x34,0x5f, 0x5,0x34,0x5d, 0x4,0x34,0x32, 0x4,0x34,0x28, - 0x4,0x34,0x2a, 0x6,0x43,0x28, 0x4,0x34,0x2f, 0x5,0x34,0x5e, - 0x4,0x34,0x31, 0x6,0x43,0x29, 0x5,0x34,0x5b, 0x4,0x34,0x2c, - 0x6,0x43,0x2b, 0x6,0x43,0x2a, 0x6,0x43,0x25, 0x6,0x43,0x23, - 0x6,0x43,0x24, 0x5,0x34,0x5c, 0xf,0x37,0x58, 0xf,0x37,0x59, - 0xf,0x37,0x5a, 0xf,0x37,0x5b, 0x6,0x43,0x27, 0x6,0x43,0x2c, - 0xf,0x37,0x55, 0x5,0x3b,0x31, 0x5,0x3b,0x30, 0x5,0x3b,0x2e, - 0x5,0x3b,0x32, 0x6,0x4c,0x6d, 0x4,0x3a,0x23, 0x6,0x4c,0x66, - 0x6,0x4c,0x6c, 0x4,0x3a,0x22, 0x4,0x3a,0x24, 0x6,0x4c,0x6e, - 0x6,0x43,0x26, 0x6,0x4c,0x67, 0x6,0x4c,0x70, 0x6,0x4c,0x68, - 0x5,0x3b,0x2d, 0x6,0x4c,0x6a, 0x6,0x4c,0x69, 0x6,0x4c,0x6f, - 0x5,0x3b,0x2a, 0x5,0x3b,0x29, 0x5,0x3b,0x2b, 0xf,0x3e,0x25, - 0xf,0x3e,0x26, 0xf,0x3e,0x27, 0xf,0x3e,0x28, 0xf,0x3e,0x29, - 0xf,0x3e,0x2a, 0xf,0x3e,0x2b, 0xf,0x3e,0x2c, 0xf,0x3e,0x2d, - 0xf,0x3e,0x2e, 0x6,0x4c,0x6b, 0x5,0x3b,0x2f, 0x6,0x56,0x4b, - 0x6,0x56,0x42, 0x5,0x41,0x5f, 0x5,0x41,0x5e, 0x4,0x3f,0x6c, - 0x6,0x56,0x44, 0x4,0x3f,0x6d, 0x6,0x56,0x48, 0x6,0x56,0x45, - 0x4,0x3f,0x69, 0x5,0x41,0x61, 0x5,0x41,0x60, 0x6,0x56,0x43, - 0x6,0x56,0x49, 0x4,0x3a,0x25, 0x4,0x3f,0x6b, 0x6,0x56,0x46, - 0x5,0x41,0x62, 0x6,0x56,0x4c, 0x6,0x56,0x4d, 0x4,0x3f,0x72, - 0x6,0x56,0x4a, 0xf,0x44,0x57, 0xf,0x44,0x58, 0xf,0x44,0x59, - 0xf,0x44,0x5a, 0xf,0x44,0x5b, 0xf,0x44,0x5c, 0xf,0x44,0x5d, - 0xf,0x44,0x5e, 0xf,0x44,0x5f, 0xf,0x44,0x60, 0xf,0x44,0x61, - 0xf,0x44,0x62, 0x6,0x56,0x47, 0x4,0x3f,0x70, 0x4,0x45,0x78, - 0x5,0x48,0x50, 0x4,0x45,0x76, 0x5,0x48,0x52, 0x6,0x60,0x3f, - 0x6,0x60,0x3e, 0x5,0x48,0x56, 0x4,0x45,0x7a, 0x5,0x48,0x55, - 0x4,0x45,0x77, 0x6,0x60,0x39, 0x6,0x60,0x43, 0x6,0x60,0x42, - 0x6,0x60,0x36, 0x4,0x45,0x7d, 0x5,0x48,0x4f, 0x5,0x41,0x63, - 0x6,0x60,0x41, 0x5,0x48,0x51, 0x6,0x60,0x3c, 0x6,0x60,0x34, - 0x5,0x48,0x53, 0x5,0x48,0x57, 0x6,0x60,0x40, 0x6,0x60,0x3b, - 0x4,0x46,0x22, 0x6,0x60,0x38, 0xf,0x4b,0x2e, 0xf,0x4b,0x2f, - 0xf,0x4b,0x30, 0xf,0x4b,0x31, 0xf,0x4b,0x32, 0xf,0x4b,0x33, - 0xf,0x4b,0x34, 0xf,0x4b,0x35, 0xf,0x4b,0x36, 0xf,0x4b,0x37, - 0x6,0x60,0x35, 0x6,0x60,0x37, 0x6,0x60,0x3d, 0x4,0x4c,0x38, - 0x4,0x4c,0x43, 0x7,0x26,0x60, 0x4,0x4c,0x42, 0x4,0x4c,0x3b, - 0x5,0x4f,0x5b, 0x5,0x4f,0x59, 0x4,0x52,0x48, 0x5,0x4f,0x58, - 0x5,0x4f,0x5d, 0x5,0x4f,0x55, 0x4,0x4c,0x46, 0x5,0x4f,0x5a, - 0x7,0x26,0x6c, 0x7,0x26,0x5e, 0x7,0x26,0x64, 0x5,0x4f,0x5c, - 0x5,0x4f,0x52, 0x7,0x26,0x61, 0x7,0x26,0x66, 0x5,0x4f,0x57, - 0x4,0x4c,0x41, 0x4,0x4c,0x39, 0x7,0x26,0x5d, 0x7,0x26,0x65, - 0x7,0x26,0x5c, 0x7,0x26,0x67, 0x6,0x60,0x3a, 0x7,0x26,0x6d, - 0x7,0x26,0x6b, 0x5,0x4f,0x51, 0x5,0x4f,0x56, 0x5,0x4f,0x5e, - 0xf,0x51,0x30, 0xf,0x51,0x31, 0xf,0x51,0x32, 0xf,0x51,0x33, - 0xf,0x51,0x34, 0xf,0x51,0x35, 0xf,0x51,0x38, 0xf,0x51,0x39, - 0xf,0x51,0x3a, 0xf,0x51,0x3d, 0xf,0x51,0x3e, 0xf,0x51,0x3f, - 0x7,0x26,0x62, 0x7,0x26,0x68, 0x7,0x26,0x5f, 0x7,0x26,0x63, - 0x7,0x31,0x46, 0x4,0x52,0x46, 0x7,0x31,0x43, 0x7,0x31,0x44, - 0x4,0x52,0x4a, 0x7,0x31,0x40, 0x7,0x31,0x3d, 0x5,0x56,0x74, - 0x5,0x56,0x76, 0x7,0x31,0x31, 0x7,0x31,0x42, 0x7,0x31,0x32, - 0x7,0x3a,0x36, 0x7,0x31,0x33, 0x7,0x31,0x36, 0x5,0x56,0x75, - 0x5,0x56,0x77, 0x5,0x56,0x73, 0x5,0x5d,0x45, 0x4,0x52,0x45, - 0x5,0x56,0x71, 0x5,0x56,0x72, 0x4,0x52,0x4b, 0x7,0x31,0x3a, - 0x7,0x31,0x37, 0x7,0x31,0x38, 0x7,0x31,0x41, 0x4,0x52,0x4d, - 0x7,0x31,0x35, 0x5,0x56,0x79, 0x7,0x31,0x34, 0x7,0x31,0x45, - 0x7,0x31,0x3b, 0x5,0x56,0x78, 0x7,0x31,0x3f, 0x7,0x31,0x3e, - 0x7,0x31,0x39, 0x7,0x31,0x3c, 0xf,0x56,0x76, 0xf,0x56,0x77, - 0xf,0x56,0x78, 0xf,0x56,0x79, 0xf,0x56,0x7a, 0xf,0x56,0x7b, - 0xf,0x56,0x7c, 0xf,0x56,0x7d, 0xf,0x56,0x7e, 0x7,0x3a,0x44, - 0x7,0x3a,0x43, 0x5,0x5d,0x43, 0x5,0x5d,0x40, 0x4,0x57,0x71, - 0x7,0x3a,0x37, 0x5,0x5d,0x41, 0x7,0x3a,0x42, 0x4,0x57,0x6f, - 0x7,0x3a,0x3a, 0x5,0x5d,0x44, 0x5,0x5d,0x3e, 0x7,0x3a,0x3e, - 0x7,0x3a,0x3b, 0x7,0x3a,0x3c, 0x7,0x3a,0x40, 0x5,0x5d,0x42, - 0x7,0x3a,0x41, 0x7,0x3a,0x3d, 0x5,0x5d,0x47, 0xf,0x5b,0x73, - 0xf,0x5b,0x74, 0xf,0x5b,0x75, 0xf,0x5b,0x77, 0xf,0x5b,0x78, - 0xf,0x5b,0x79, 0xf,0x5b,0x7a, 0xf,0x5b,0x7b, 0xf,0x5b,0x7c, - 0xf,0x5b,0x7d, 0xf,0x5b,0x7e, 0xf,0x5c,0x21, 0xf,0x5c,0x22, - 0x7,0x3a,0x3f, 0x7,0x3a,0x38, 0x4,0x5c,0x64, 0x4,0x5c,0x5c, - 0x7,0x41,0x4e, 0x4,0x5c,0x63, 0x4,0x5c,0x5d, 0x7,0x41,0x4d, - 0x7,0x41,0x54, 0x4,0x5c,0x61, 0x4,0x57,0x70, 0x7,0x41,0x49, - 0x5,0x63,0x55, 0x5,0x63,0x58, 0x5,0x63,0x57, 0x7,0x41,0x4b, - 0x7,0x41,0x51, 0x5,0x63,0x56, 0x7,0x41,0x4a, 0x7,0x41,0x4f, - 0x7,0x41,0x52, 0x7,0x41,0x4c, 0x7,0x41,0x57, 0x7,0x41,0x55, - 0x7,0x41,0x50, 0x7,0x41,0x5b, 0x5,0x63,0x5a, 0x7,0x41,0x56, - 0xf,0x60,0x2a, 0xf,0x60,0x2b, 0xf,0x60,0x2c, 0xf,0x60,0x2d, - 0xf,0x60,0x2e, 0xf,0x60,0x2f, 0xf,0x60,0x30, 0xf,0x60,0x31, - 0xf,0x60,0x32, 0x5,0x63,0x59, 0x7,0x41,0x5c, 0x7,0x41,0x5a, - 0x7,0x41,0x58, 0x7,0x41,0x53, 0x4,0x60,0x64, 0x4,0x60,0x65, - 0x7,0x48,0x5f, 0x4,0x60,0x69, 0x7,0x48,0x67, 0x5,0x68,0x76, - 0x7,0x48,0x64, 0x4,0x60,0x67, 0x7,0x48,0x66, 0x4,0x60,0x6b, - 0x5,0x68,0x79, 0x4,0x60,0x60, 0x5,0x68,0x7a, 0x7,0x48,0x61, - 0x7,0x47,0x4b, 0x4,0x60,0x61, 0x7,0x48,0x5d, 0x5,0x68,0x77, - 0x7,0x48,0x63, 0x7,0x48,0x5b, 0x7,0x48,0x62, 0x5,0x68,0x78, - 0x7,0x48,0x59, 0x7,0x48,0x5a, 0x7,0x48,0x60, 0x7,0x48,0x5e, - 0xf,0x63,0x40, 0xf,0x63,0x41, 0xf,0x63,0x43, 0xf,0x63,0x44, - 0xf,0x63,0x45, 0x7,0x4a,0x73, 0x7,0x48,0x5c, 0x7,0x48,0x65, - 0x4,0x60,0x6a, 0x7,0x4e,0x7d, 0x7,0x4e,0x7c, 0x5,0x6d,0x23, - 0x5,0x6d,0x21, 0x4,0x64,0x25, 0x7,0x4e,0x7e, 0x7,0x4f,0x23, - 0x7,0x4e,0x7b, 0x7,0x54,0x42, 0x7,0x48,0x58, 0x5,0x6d,0x24, - 0x7,0x4f,0x24, 0x7,0x4f,0x26, 0x7,0x4e,0x7a, 0x4,0x66,0x79, - 0x7,0x4f,0x22, 0x7,0x4e,0x79, 0x7,0x4f,0x25, 0xf,0x65,0x6c, - 0xf,0x65,0x6d, 0xf,0x65,0x6e, 0xf,0x65,0x70, 0xf,0x65,0x71, - 0x7,0x4f,0x21, 0x5,0x70,0x72, 0x4,0x66,0x75, 0x7,0x54,0x43, - 0x5,0x70,0x73, 0x4,0x66,0x78, 0x4,0x66,0x76, 0x4,0x66,0x77, - 0x7,0x58,0x5e, 0x7,0x4f,0x27, 0x7,0x54,0x3f, 0x7,0x54,0x3e, - 0x7,0x54,0x41, 0xf,0x68,0x2c, 0xf,0x68,0x2d, 0xf,0x68,0x2e, - 0xf,0x68,0x2f, 0x4,0x66,0x74, 0x7,0x54,0x40, 0x5,0x70,0x71, - 0x7,0x54,0x44, 0x5,0x73,0x7b, 0x7,0x58,0x59, 0x5,0x73,0x7c, - 0x5,0x73,0x79, 0x4,0x69,0x29, 0x5,0x76,0x3a, 0x7,0x58,0x5d, - 0x5,0x73,0x7a, 0x7,0x58,0x5b, 0xf,0x69,0x63, 0xf,0x69,0x64, - 0xf,0x69,0x65, 0xf,0x69,0x66, 0x7,0x58,0x5a, 0x7,0x58,0x5c, - 0x4,0x69,0x4b, 0x4,0x6a,0x67, 0x7,0x58,0x5f, 0x7,0x5c,0x3a, - 0x7,0x5c,0x3b, 0x4,0x6a,0x68, 0x4,0x6a,0x69, 0x4,0x6b,0x7a, - 0x5,0x77,0x78, 0x7,0x5f,0x37, 0x7,0x5f,0x35, 0xf,0x6b,0x5d, - 0x7,0x5f,0x36, 0x7,0x5f,0x38, 0x5,0x79,0x3a, 0x7,0x5f,0x34, - 0x5,0x79,0x39, 0x7,0x61,0x34, 0x7,0x62,0x4f, 0x7,0x62,0x4e, - 0x7,0x63,0x63, 0xf,0x6c,0x69, 0x7,0x63,0x65, 0x7,0x63,0x64, - 0x7,0x64,0x55, 0x5,0x7b,0x65, 0xf,0x6d,0x30, 0x7,0x65,0x75, - 0x6,0x25,0x42, 0x4,0x2a,0x78, 0x5,0x2b,0x28, 0x4,0x2f,0x28, - 0x6,0x3a,0x66, 0x5,0x2f,0x5b, 0x5,0x34,0x61, 0x6,0x43,0x2d, - 0x5,0x3b,0x34, 0x6,0x43,0x2f, 0x6,0x43,0x2e, 0x6,0x4c,0x74, - 0x4,0x3a,0x29, 0x6,0x4c,0x73, 0x5,0x3b,0x33, 0xf,0x3e,0x2f, - 0x6,0x56,0x50, 0x6,0x56,0x4f, 0x4,0x3f,0x74, 0x4,0x46,0x24, - 0x6,0x60,0x45, 0x5,0x48,0x58, 0x6,0x60,0x44, 0x7,0x26,0x6e, - 0xf,0x4b,0x39, 0xf,0x4b,0x3a, 0xf,0x4b,0x3b, 0x7,0x26,0x70, - 0x4,0x4c,0x47, 0xf,0x51,0x40, 0xf,0x51,0x41, 0x7,0x26,0x6f, - 0x5,0x56,0x7b, 0x5,0x56,0x7a, 0xf,0x57,0x22, 0xf,0x57,0x21, - 0x5,0x5d,0x49, 0x7,0x3a,0x45, 0x5,0x5d,0x48, 0xf,0x5a,0x58, - 0xf,0x5c,0x23, 0xf,0x5c,0x24, 0x7,0x41,0x5d, 0x7,0x41,0x5e, - 0xf,0x60,0x33, 0x7,0x48,0x68, 0x4,0x60,0x6c, 0xf,0x63,0x46, - 0x5,0x70,0x74, 0x4,0x64,0x27, 0x4,0x66,0x7a, 0x7,0x54,0x45, - 0x4,0x6a,0x6a, 0x7,0x5c,0x3c, 0xf,0x6a,0x6b, 0x7,0x5f,0x3a, - 0x7,0x5f,0x39, 0x5,0x7a,0x34, 0x7,0x66,0x2a, 0x6,0x22,0x29, - 0x6,0x22,0x28, 0x4,0x24,0x6a, 0x6,0x25,0x44, 0x6,0x25,0x45, - 0x6,0x28,0x73, 0xf,0x21,0x7c, 0x6,0x25,0x43, 0xf,0x25,0x28, - 0xf,0x25,0x2a, 0x6,0x2d,0x53, 0x6,0x33,0x6a, 0x4,0x27,0x5d, - 0x6,0x33,0x69, 0x6,0x2d,0x54, 0x4,0x27,0x5e, 0x6,0x28,0x74, - 0x4,0x24,0x6b, 0x6,0x33,0x6b, 0x4,0x2a,0x7a, 0x4,0x2a,0x7c, - 0xf,0x25,0x56, 0x5,0x2b,0x29, 0xf,0x28,0x49, 0x5,0x27,0x52, - 0x6,0x3a,0x67, 0x6,0x3a,0x68, 0x6,0x3a,0x69, 0x5,0x2f,0x5f, - 0x6,0x3a,0x6c, 0x6,0x3a,0x6a, 0x4,0x2f,0x2c, 0x4,0x2f,0x2b, - 0x6,0x33,0x6e, 0x6,0x33,0x6c, 0x6,0x33,0x6f, 0x6,0x43,0x35, - 0xf,0x29,0x39, 0x5,0x2f,0x5d, 0x6,0x43,0x30, 0x6,0x43,0x31, - 0x6,0x43,0x32, 0x6,0x43,0x34, 0x6,0x43,0x36, 0xf,0x31,0x79, - 0x6,0x33,0x6d, 0x6,0x36,0x7a, 0x5,0x2b,0x2a, 0x4,0x2a,0x7d, - 0x6,0x43,0x33, 0x6,0x4c,0x77, 0x6,0x43,0x37, 0x6,0x3a,0x6d, - 0x6,0x4c,0x76, 0x6,0x43,0x38, 0x5,0x2f,0x5e, 0x5,0x34,0x62, - 0xf,0x37,0x5c, 0x6,0x4c,0x75, 0x5,0x3b,0x36, 0x5,0x3b,0x35, - 0x4,0x3a,0x2c, 0x6,0x4c,0x78, 0xf,0x3e,0x30, 0x6,0x56,0x52, - 0x5,0x41,0x67, 0x6,0x56,0x54, 0x6,0x4c,0x7a, 0x5,0x41,0x64, - 0x5,0x41,0x66, 0x6,0x56,0x53, 0x6,0x56,0x55, 0x6,0x4c,0x79, - 0x6,0x56,0x56, 0xf,0x3e,0x31, 0x6,0x56,0x51, 0xf,0x44,0x63, - 0x6,0x60,0x46, 0x6,0x60,0x48, 0x6,0x60,0x49, 0x6,0x60,0x4a, - 0x6,0x60,0x4b, 0x6,0x60,0x4c, 0x6,0x60,0x4d, 0x6,0x60,0x50, - 0x5,0x48,0x5b, 0x7,0x26,0x75, 0x6,0x60,0x4e, 0x5,0x48,0x5a, - 0x6,0x56,0x57, 0x5,0x48,0x59, 0x6,0x60,0x4f, 0x6,0x60,0x47, - 0xf,0x4b,0x3c, 0x7,0x26,0x71, 0x7,0x26,0x72, 0x7,0x26,0x73, - 0x7,0x26,0x74, 0x5,0x4f,0x62, 0x5,0x4f,0x5f, 0x6,0x60,0x52, - 0x7,0x26,0x76, 0x5,0x4f,0x60, 0x5,0x4f,0x61, 0x6,0x60,0x51, - 0xf,0x51,0x42, 0xf,0x51,0x43, 0x7,0x25,0x73, 0x7,0x31,0x47, - 0x7,0x31,0x48, 0x7,0x31,0x4c, 0x7,0x31,0x49, 0x5,0x56,0x7c, - 0x7,0x31,0x4b, 0x4,0x52,0x51, 0x7,0x3a,0x4e, 0x7,0x31,0x4a, - 0x7,0x31,0x4d, 0x5,0x4f,0x63, 0x5,0x56,0x7d, 0x4,0x52,0x50, - 0x7,0x26,0x77, 0x7,0x26,0x78, 0x7,0x3a,0x47, 0x7,0x3a,0x48, - 0x7,0x3a,0x4b, 0x5,0x5d,0x4a, 0x7,0x31,0x4e, 0x4,0x57,0x74, - 0x5,0x63,0x5b, 0x7,0x3a,0x4c, 0x7,0x3a,0x4d, 0xf,0x5c,0x25, - 0xf,0x57,0x23, 0x7,0x41,0x5f, 0x7,0x41,0x60, 0x7,0x41,0x62, - 0x7,0x41,0x64, 0x4,0x5c,0x67, 0x4,0x5c,0x66, 0x5,0x63,0x5c, - 0x7,0x41,0x63, 0x7,0x48,0x69, 0x7,0x3a,0x4a, 0x5,0x63,0x5e, - 0x5,0x68,0x7b, 0x7,0x48,0x6c, 0x4,0x60,0x6e, 0x7,0x48,0x6a, - 0x7,0x48,0x6b, 0x7,0x4f,0x28, 0x7,0x4f,0x29, 0x7,0x4f,0x2a, - 0x7,0x4f,0x2b, 0x5,0x6d,0x25, 0x5,0x6d,0x27, 0x7,0x4f,0x2c, - 0x5,0x6d,0x26, 0x5,0x6d,0x28, 0x7,0x54,0x46, 0x7,0x4f,0x2d, - 0x5,0x77,0x7a, 0x4,0x6b,0x7c, 0x7,0x5f,0x3b, 0x5,0x77,0x7b, - 0x5,0x77,0x79, 0x7,0x61,0x35, 0x7,0x62,0x50, 0x7,0x63,0x66, - 0x7,0x64,0x56, 0x7,0x65,0x3c, 0x4,0x24,0x6c, 0x4,0x23,0x2c, - 0xf,0x21,0x60, 0x6,0x2d,0x56, 0x5,0x27,0x53, 0x6,0x2d,0x55, - 0xf,0x2d,0x24, 0x6,0x33,0x71, 0x6,0x33,0x70, 0x4,0x2a,0x7e, - 0xf,0x28,0x4b, 0x6,0x3a,0x6e, 0x6,0x3a,0x6f, 0x6,0x43,0x3b, - 0x6,0x3a,0x73, 0x6,0x3a,0x72, 0x6,0x3a,0x71, 0x6,0x3a,0x70, - 0x6,0x43,0x3a, 0xf,0x31,0x7a, 0xf,0x31,0x7b, 0x6,0x43,0x3d, - 0x5,0x34,0x64, 0x4,0x3a,0x2e, 0x6,0x43,0x3e, 0x4,0x34,0x39, - 0x5,0x34,0x65, 0xf,0x37,0x5d, 0x5,0x34,0x63, 0x6,0x43,0x39, - 0xf,0x37,0x5e, 0xf,0x37,0x5f, 0x6,0x43,0x3f, 0x5,0x3b,0x39, - 0x5,0x3b,0x37, 0x6,0x4c,0x7d, 0x4,0x3a,0x2f, 0x6,0x4d,0x21, - 0x5,0x3b,0x38, 0x6,0x4c,0x7e, 0x6,0x4c,0x7c, 0x6,0x4d,0x22, - 0x6,0x47,0x21, 0x6,0x56,0x5a, 0x5,0x41,0x68, 0x6,0x56,0x5b, - 0x6,0x56,0x58, 0x5,0x41,0x69, 0x6,0x56,0x59, 0x6,0x56,0x5c, - 0x5,0x41,0x6a, 0xf,0x3e,0x33, 0xf,0x3e,0x34, 0x5,0x48,0x5c, - 0x6,0x60,0x53, 0x6,0x60,0x55, 0x5,0x48,0x5d, 0x6,0x60,0x54, - 0x5,0x4f,0x64, 0x4,0x4c,0x4a, 0x7,0x26,0x7b, 0x7,0x26,0x7c, - 0x4,0x4c,0x4b, 0x7,0x31,0x4f, 0x7,0x26,0x7a, 0x4,0x4c,0x48, - 0x5,0x57,0x21, 0x5,0x56,0x7e, 0x4,0x52,0x52, 0xf,0x57,0x25, - 0x7,0x31,0x50, 0x4,0x57,0x78, 0x4,0x57,0x76, 0x5,0x5d,0x4b, - 0x7,0x3a,0x50, 0x7,0x3a,0x4f, 0x7,0x3a,0x52, 0xf,0x5c,0x26, - 0x4,0x52,0x54, 0x7,0x3a,0x51, 0x5,0x63,0x5d, 0x4,0x5c,0x69, - 0x5,0x63,0x5f, 0x7,0x41,0x69, 0x7,0x41,0x6a, 0x4,0x5c,0x6d, - 0x7,0x41,0x67, 0x7,0x41,0x68, 0x7,0x41,0x66, 0xf,0x57,0x24, - 0xf,0x60,0x34, 0xf,0x60,0x35, 0x4,0x5c,0x6c, 0x5,0x68,0x7c, - 0x7,0x48,0x70, 0x5,0x76,0x3b, 0x7,0x48,0x6f, 0x7,0x4f,0x2e, - 0x7,0x48,0x6e, 0x5,0x6d,0x29, 0x7,0x4f,0x2f, 0x7,0x4f,0x30, - 0x7,0x4f,0x31, 0x7,0x4f,0x32, 0x7,0x41,0x65, 0x5,0x70,0x75, - 0x7,0x54,0x47, 0x7,0x54,0x48, 0x5,0x73,0x7d, 0x7,0x58,0x60, - 0x7,0x5c,0x3e, 0x7,0x5c,0x3d, 0x7,0x61,0x36, 0x7,0x63,0x67, - 0x7,0x65,0x5e, 0x6,0x2d,0x57, 0x6,0x33,0x75, 0x6,0x33,0x72, - 0x6,0x33,0x76, 0x5,0x2b,0x2b, 0x4,0x2b,0x22, 0x4,0x2b,0x21, - 0x4,0x2b,0x24, 0x6,0x33,0x74, 0x4,0x2b,0x23, 0xf,0x2d,0x25, - 0xf,0x2d,0x26, 0x6,0x33,0x73, 0x4,0x2f,0x33, 0x6,0x3a,0x76, - 0x5,0x2f,0x61, 0x5,0x2f,0x63, 0x5,0x2f,0x60, 0x4,0x2f,0x31, - 0x4,0x2f,0x36, 0x4,0x2f,0x35, 0x6,0x3a,0x75, 0x5,0x2f,0x62, - 0x4,0x2f,0x34, 0x4,0x2f,0x32, 0x6,0x3a,0x77, 0xf,0x2f,0x63, - 0xf,0x2f,0x64, 0x4,0x2f,0x37, 0xf,0x31,0x7c, 0x5,0x34,0x66, - 0x6,0x43,0x41, 0x6,0x43,0x40, 0x6,0x43,0x42, 0x6,0x43,0x43, - 0x6,0x43,0x44, 0x6,0x43,0x46, 0x6,0x43,0x47, 0x4,0x34,0x3f, - 0x6,0x43,0x45, 0x5,0x3b,0x3b, 0x4,0x3a,0x32, 0x6,0x4d,0x26, - 0x6,0x4d,0x27, 0x6,0x4d,0x2d, 0x5,0x3b,0x3d, 0x4,0x3a,0x36, - 0x6,0x4d,0x2e, 0x6,0x4d,0x28, 0x6,0x4d,0x25, 0x6,0x4d,0x2f, - 0x6,0x4d,0x30, 0x5,0x3b,0x3c, 0x6,0x4d,0x2a, 0x6,0x4d,0x2c, - 0x6,0x4d,0x2b, 0xf,0x3e,0x35, 0xf,0x3e,0x36, 0x6,0x4d,0x29, - 0x5,0x41,0x6e, 0x5,0x41,0x6b, 0x4,0x3f,0x79, 0x6,0x56,0x5d, - 0x6,0x56,0x5e, 0x6,0x56,0x5f, 0x5,0x41,0x6d, 0x5,0x41,0x6c, - 0xf,0x44,0x64, 0x6,0x4d,0x24, 0x5,0x48,0x65, 0x5,0x48,0x5e, - 0x6,0x60,0x57, 0x5,0x48,0x5f, 0x5,0x48,0x63, 0x5,0x48,0x60, - 0x5,0x48,0x64, 0x5,0x48,0x61, 0x5,0x48,0x62, 0x6,0x60,0x56, - 0x5,0x48,0x66, 0xf,0x4b,0x3d, 0xf,0x4b,0x3e, 0xf,0x4b,0x3f, - 0xf,0x4b,0x40, 0x5,0x4f,0x6a, 0x5,0x4f,0x6b, 0x7,0x26,0x7e, - 0x5,0x4f,0x68, 0x4,0x4c,0x4c, 0x5,0x4f,0x6c, 0x5,0x4f,0x65, - 0x7,0x26,0x7d, 0x5,0x4f,0x67, 0xf,0x51,0x46, 0x6,0x60,0x59, - 0x5,0x4f,0x66, 0x7,0x27,0x24, 0x7,0x27,0x25, 0x7,0x27,0x21, - 0x4,0x4c,0x4e, 0x7,0x27,0x22, 0x4,0x4c,0x4d, 0x7,0x27,0x23, - 0xf,0x51,0x44, 0xf,0x51,0x45, 0x7,0x31,0x51, 0x7,0x31,0x53, - 0x5,0x57,0x25, 0x7,0x31,0x56, 0x7,0x31,0x52, 0x7,0x31,0x54, - 0x4,0x52,0x57, 0x5,0x57,0x23, 0x5,0x57,0x26, 0x5,0x57,0x24, - 0x5,0x4f,0x69, 0x5,0x57,0x22, 0x7,0x31,0x55, 0x5,0x57,0x27, - 0xf,0x57,0x26, 0x4,0x57,0x79, 0x7,0x3a,0x54, 0x5,0x5d,0x4c, - 0x7,0x3a,0x55, 0x7,0x48,0x71, 0x5,0x5d,0x4d, 0x7,0x3a,0x53, - 0xf,0x5c,0x27, 0xf,0x5c,0x28, 0x5,0x63,0x60, 0x4,0x5c,0x6e, - 0x7,0x41,0x71, 0x5,0x5d,0x4e, 0x4,0x5c,0x6f, 0x7,0x41,0x6d, - 0x7,0x41,0x6f, 0x7,0x41,0x6c, 0x7,0x41,0x70, 0x7,0x41,0x6e, - 0xf,0x60,0x36, 0xf,0x60,0x37, 0x7,0x41,0x6b, 0x4,0x60,0x70, - 0x5,0x68,0x7e, 0x5,0x68,0x7d, 0x7,0x48,0x72, 0x7,0x4f,0x35, - 0x7,0x4f,0x36, 0xf,0x65,0x72, 0x7,0x4f,0x33, 0x4,0x66,0x7c, - 0x7,0x54,0x49, 0x7,0x54,0x4b, 0x7,0x4f,0x34, 0x7,0x54,0x4a, - 0x7,0x58,0x62, 0x7,0x58,0x63, 0x7,0x58,0x61, 0x6,0x25,0x46, - 0x6,0x2d,0x58, 0x6,0x28,0x75, 0x4,0x27,0x5f, 0x4,0x27,0x60, - 0x6,0x3a,0x78, 0x4,0x34,0x40, 0x5,0x2b,0x2c, 0xf,0x37,0x60, - 0xf,0x37,0x61, 0x6,0x43,0x48, 0x6,0x4d,0x31, 0x7,0x27,0x26, - 0x7,0x31,0x58, 0x7,0x31,0x57, 0xf,0x6b,0x5e, 0x6,0x2d,0x59, - 0x6,0x2d,0x5a, 0x5,0x21,0x79, 0xf,0x28,0x4c, 0x4,0x2f,0x39, - 0x5,0x34,0x67, 0x5,0x3b,0x3e, 0x5,0x41,0x6f, 0x6,0x60,0x5a, - 0x7,0x27,0x27, 0x7,0x27,0x29, 0x5,0x48,0x67, 0x7,0x31,0x5a, - 0x7,0x31,0x59, 0x7,0x3a,0x56, 0x5,0x23,0x21, 0x6,0x2d,0x5b, - 0xf,0x28,0x4d, 0x6,0x33,0x77, 0xf,0x2d,0x27, 0x6,0x33,0x78, - 0xf,0x31,0x7e, 0x5,0x34,0x68, 0xf,0x37,0x62, 0x6,0x43,0x49, - 0x4,0x3a,0x37, 0x5,0x3b,0x41, 0x5,0x3b,0x40, 0x4,0x3f,0x7b, - 0x6,0x56,0x60, 0x6,0x60,0x5c, 0x5,0x48,0x6c, 0x5,0x48,0x68, - 0x5,0x48,0x6d, 0x5,0x48,0x6a, 0x5,0x48,0x69, 0x5,0x48,0x6b, - 0x4,0x46,0x31, 0xf,0x44,0x65, 0x6,0x60,0x5b, 0x5,0x4f,0x6f, - 0x5,0x4f,0x70, 0x5,0x4f,0x71, 0x5,0x4f,0x6d, 0x5,0x4f,0x6e, - 0x7,0x27,0x2a, 0x5,0x57,0x29, 0x5,0x57,0x28, 0x4,0x52,0x58, - 0x4,0x52,0x59, 0x7,0x31,0x5c, 0x7,0x31,0x5d, 0x7,0x31,0x5b, - 0xf,0x51,0x47, 0x5,0x5d,0x4f, 0x4,0x57,0x7c, 0x7,0x3a,0x5a, - 0x7,0x3a,0x57, 0x7,0x3a,0x58, 0xf,0x57,0x29, 0x5,0x63,0x61, - 0x4,0x57,0x7e, 0x7,0x41,0x72, 0x7,0x3a,0x59, 0x7,0x48,0x75, - 0x5,0x63,0x62, 0x7,0x41,0x74, 0x7,0x41,0x73, 0xf,0x5c,0x29, - 0xf,0x5c,0x2a, 0x7,0x48,0x74, 0x5,0x69,0x21, 0x7,0x48,0x73, - 0x4,0x66,0x7e, 0x7,0x54,0x4c, 0x4,0x6a,0x6c, 0x5,0x77,0x7c, - 0x5,0x79,0x3b, 0x5,0x27,0x55, 0x5,0x27,0x54, 0x6,0x2d,0x5e, - 0xf,0x28,0x4e, 0xf,0x28,0x4f, 0x6,0x2d,0x5d, 0x5,0x2b,0x2f, - 0x5,0x2b,0x2d, 0x5,0x2b,0x2e, 0x4,0x2f,0x3c, 0x6,0x3a,0x7e, - 0x4,0x2f,0x3b, 0x6,0x3a,0x7a, 0x5,0x2f,0x64, 0x6,0x3b,0x22, - 0xf,0x32,0x21, 0xf,0x32,0x24, 0xf,0x32,0x26, 0xf,0x32,0x27, - 0x6,0x3a,0x7b, 0xf,0x32,0x22, 0x6,0x3a,0x7d, 0x6,0x3a,0x7c, - 0x6,0x3b,0x23, 0x6,0x3a,0x79, 0xf,0x32,0x25, 0x5,0x2f,0x65, - 0x6,0x43,0x4b, 0x4,0x34,0x43, 0x4,0x34,0x42, 0x4,0x34,0x44, - 0x6,0x43,0x4d, 0x5,0x34,0x69, 0x6,0x43,0x4f, 0x6,0x43,0x4e, - 0x6,0x43,0x4c, 0x6,0x43,0x4a, 0xf,0x37,0x63, 0xf,0x37,0x64, - 0xf,0x37,0x65, 0xf,0x37,0x66, 0x5,0x3b,0x42, 0x6,0x4d,0x33, - 0x6,0x4d,0x34, 0x5,0x3b,0x43, 0x6,0x4d,0x35, 0xf,0x3e,0x37, - 0xf,0x3e,0x38, 0xf,0x3e,0x39, 0xf,0x3e,0x3a, 0xf,0x3e,0x3c, - 0xf,0x3e,0x3d, 0xf,0x3e,0x3e, 0xf,0x3e,0x3f, 0xf,0x3e,0x40, - 0x6,0x4d,0x32, 0xf,0x3e,0x3b, 0x6,0x56,0x62, 0x6,0x56,0x66, - 0x5,0x41,0x71, 0x5,0x41,0x72, 0x6,0x56,0x61, 0x6,0x56,0x6b, - 0x6,0x56,0x69, 0x6,0x56,0x67, 0x5,0x41,0x73, 0x6,0x56,0x68, - 0x6,0x56,0x64, 0x6,0x56,0x6a, 0x6,0x56,0x63, 0xf,0x44,0x66, - 0xf,0x44,0x67, 0x6,0x56,0x65, 0x5,0x48,0x70, 0x5,0x48,0x71, - 0x5,0x48,0x6e, 0x4,0x4c,0x50, 0x6,0x60,0x5e, 0x5,0x48,0x72, - 0x5,0x48,0x6f, 0x5,0x48,0x73, 0xf,0x4b,0x41, 0xf,0x4b,0x42, - 0xf,0x4b,0x43, 0xf,0x4b,0x44, 0xf,0x4b,0x45, 0xf,0x4b,0x46, - 0xf,0x4b,0x47, 0xf,0x4b,0x48, 0xf,0x4b,0x4a, 0xf,0x4b,0x4b, - 0xf,0x4b,0x4c, 0x6,0x60,0x5f, 0x5,0x4f,0x72, 0x7,0x27,0x2c, - 0x5,0x4f,0x75, 0x7,0x27,0x2f, 0x5,0x4f,0x74, 0x5,0x4f,0x73, - 0x4,0x4c,0x51, 0x5,0x4f,0x77, 0x7,0x27,0x2b, 0x7,0x27,0x30, - 0x5,0x4f,0x76, 0xf,0x51,0x48, 0xf,0x51,0x49, 0xf,0x51,0x4a, - 0xf,0x51,0x4b, 0xf,0x51,0x4c, 0xf,0x51,0x4d, 0xf,0x51,0x4e, - 0xf,0x51,0x4f, 0x7,0x27,0x2d, 0x5,0x57,0x2c, 0x5,0x57,0x2f, - 0x5,0x57,0x2b, 0x5,0x57,0x2d, 0x5,0x57,0x2e, 0x7,0x31,0x61, - 0x7,0x31,0x5f, 0x7,0x31,0x5e, 0xf,0x57,0x2a, 0xf,0x57,0x2b, - 0xf,0x57,0x2c, 0xf,0x57,0x2d, 0xf,0x57,0x2e, 0xf,0x57,0x2f, - 0x7,0x31,0x60, 0x5,0x57,0x2a, 0x5,0x5d,0x50, 0x5,0x5d,0x51, - 0x5,0x5d,0x52, 0x7,0x3a,0x5b, 0x4,0x58,0x25, 0x4,0x58,0x26, - 0x5,0x5d,0x54, 0x5,0x5d,0x53, 0xf,0x5c,0x2c, 0x7,0x3a,0x5d, - 0x7,0x3a,0x5c, 0x3,0x58,0x63, 0x7,0x41,0x77, 0x5,0x63,0x66, - 0x5,0x63,0x63, 0x4,0x5c,0x72, 0x7,0x41,0x79, 0x5,0x5d,0x55, - 0x7,0x41,0x78, 0x5,0x63,0x64, 0x5,0x63,0x65, 0x7,0x41,0x75, - 0xf,0x60,0x38, 0xf,0x60,0x39, 0xf,0x60,0x3a, 0x7,0x41,0x76, - 0xf,0x5c,0x2b, 0xf,0x63,0x47, 0x7,0x48,0x76, 0x5,0x69,0x22, - 0x5,0x69,0x23, 0x7,0x48,0x78, 0x7,0x48,0x77, 0xf,0x63,0x48, - 0xf,0x63,0x49, 0x7,0x4f,0x39, 0xf,0x65,0x73, 0xf,0x65,0x74, - 0xf,0x65,0x75, 0x7,0x4f,0x38, 0x7,0x4f,0x37, 0x5,0x70,0x76, - 0xf,0x68,0x30, 0xf,0x68,0x31, 0x7,0x54,0x4d, 0x7,0x54,0x4e, - 0x5,0x73,0x7e, 0x7,0x58,0x64, 0x4,0x6a,0x6d, 0xf,0x6a,0x6c, - 0xf,0x6b,0x5f, 0xf,0x6c,0x36, 0xf,0x6c,0x50, 0x5,0x21,0x7a, - 0x6,0x2d,0x5f, 0x5,0x2b,0x30, 0x6,0x43,0x50, 0x6,0x4d,0x36, - 0x6,0x48,0x6a, 0x6,0x56,0x6e, 0x6,0x60,0x62, 0x6,0x60,0x61, - 0x7,0x27,0x31, 0xf,0x51,0x50, 0x7,0x31,0x62, 0x7,0x4f,0x3a, - 0x5,0x23,0x25, 0x5,0x23,0x23, 0x6,0x2d,0x60, 0x6,0x2d,0x61, - 0x6,0x25,0x48, 0xf,0x22,0x6c, 0xf,0x22,0x6d, 0x5,0x23,0x24, - 0x5,0x23,0x22, 0x5,0x24,0x73, 0x5,0x24,0x72, 0x6,0x28,0x79, - 0x6,0x28,0x78, 0x6,0x28,0x77, 0x6,0x28,0x76, 0x6,0x33,0x7b, - 0x6,0x33,0x7a, 0x6,0x33,0x79, 0x5,0x27,0x5a, 0x5,0x27,0x5e, - 0x6,0x2d,0x64, 0x4,0x2f,0x43, 0x6,0x2d,0x6d, 0x6,0x2d,0x6e, - 0x6,0x2d,0x62, 0x5,0x27,0x5d, 0x6,0x2d,0x66, 0x5,0x27,0x59, - 0x5,0x27,0x57, 0x6,0x2d,0x6b, 0x5,0x27,0x5b, 0x4,0x27,0x6b, - 0x6,0x2d,0x68, 0x6,0x2d,0x6f, 0xf,0x28,0x50, 0xf,0x28,0x51, - 0xf,0x28,0x53, 0xf,0x28,0x54, 0x6,0x2d,0x6c, 0x4,0x26,0x64, - 0x6,0x2d,0x65, 0x6,0x2d,0x67, 0x5,0x27,0x5c, 0x6,0x2d,0x6a, - 0x6,0x2d,0x63, 0x6,0x3b,0x27, 0x6,0x3b,0x25, 0x4,0x2f,0x3d, - 0x5,0x27,0x56, 0x6,0x3b,0x26, 0x6,0x34,0x2d, 0x4,0x2b,0x2d, - 0x5,0x2b,0x34, 0x6,0x34,0x28, 0x5,0x2b,0x31, 0x5,0x2b,0x38, - 0x6,0x34,0x29, 0x4,0x2b,0x2e, 0x6,0x43,0x54, 0x6,0x34,0x27, - 0x4,0x2b,0x2b, 0x6,0x34,0x2b, 0x4,0x2b,0x30, 0x6,0x34,0x25, - 0x5,0x2b,0x36, 0x6,0x34,0x26, 0x5,0x2b,0x37, 0x5,0x2b,0x32, - 0x4,0x2f,0x48, 0x5,0x2b,0x35, 0x6,0x33,0x7c, 0x6,0x34,0x21, - 0x6,0x34,0x22, 0x6,0x34,0x24, 0xf,0x2d,0x2a, 0xf,0x2d,0x2f, - 0xf,0x37,0x67, 0xf,0x37,0x68, 0x6,0x33,0x7e, 0x6,0x34,0x2f, - 0x6,0x34,0x2c, 0x6,0x34,0x2a, 0x6,0x34,0x30, 0x6,0x34,0x2e, - 0x6,0x43,0x53, 0x6,0x43,0x52, 0xf,0x2d,0x2b, 0x6,0x43,0x55, - 0x6,0x43,0x56, 0x6,0x3b,0x30, 0x6,0x43,0x51, 0xf,0x2d,0x2d, - 0x5,0x2f,0x67, 0x4,0x2f,0x3e, 0x4,0x34,0x45, 0x4,0x2f,0x45, - 0x6,0x3b,0x32, 0x5,0x2f,0x6c, 0x4,0x2f,0x44, 0x6,0x3b,0x2e, - 0x5,0x2f,0x6e, 0x6,0x3b,0x2a, 0x5,0x2f,0x70, 0x5,0x3b,0x44, - 0x5,0x2f,0x6f, 0x6,0x3b,0x29, 0x5,0x2f,0x66, 0x6,0x3b,0x2b, - 0x4,0x2f,0x40, 0x6,0x4d,0x3b, 0x5,0x2f,0x69, 0xf,0x2d,0x29, - 0xf,0x32,0x28, 0xf,0x32,0x29, 0xf,0x32,0x2d, 0xf,0x3e,0x4c, - 0x5,0x2f,0x68, 0x5,0x2e,0x24, 0x6,0x3b,0x2f, 0x6,0x3b,0x2d, - 0x6,0x3b,0x2c, 0x6,0x3b,0x33, 0x6,0x4d,0x3a, 0x6,0x4d,0x38, - 0x6,0x4d,0x39, 0x6,0x4d,0x37, 0x6,0x34,0x23, 0x5,0x2f,0x6b, - 0x5,0x2f,0x71, 0x5,0x2f,0x6a, 0x5,0x34,0x74, 0x6,0x43,0x5b, - 0x6,0x43,0x59, 0x5,0x34,0x6b, 0x4,0x34,0x4e, 0x5,0x34,0x6c, - 0x4,0x2f,0x42, 0x5,0x34,0x71, 0x4,0x34,0x46, 0x4,0x34,0x55, - 0x5,0x41,0x74, 0x4,0x34,0x54, 0x6,0x43,0x57, 0x5,0x34,0x6e, - 0x6,0x43,0x5f, 0x4,0x34,0x49, 0x5,0x34,0x75, 0x5,0x34,0x76, - 0x6,0x43,0x60, 0x6,0x43,0x5e, 0x4,0x34,0x4f, 0x5,0x34,0x72, - 0x6,0x43,0x61, 0x6,0x43,0x62, 0xf,0x37,0x69, 0xf,0x37,0x6b, - 0x6,0x43,0x5c, 0x6,0x43,0x5d, 0x6,0x56,0x6f, 0x6,0x56,0x70, - 0x6,0x56,0x71, 0x5,0x34,0x73, 0x5,0x34,0x6f, 0x5,0x34,0x70, - 0x6,0x4d,0x43, 0x5,0x3b,0x48, 0x6,0x4d,0x3d, 0x5,0x3b,0x45, - 0x6,0x4d,0x4b, 0x6,0x4d,0x42, 0x4,0x3a,0x3c, 0x5,0x3b,0x4a, - 0x6,0x4d,0x4f, 0x6,0x4d,0x3c, 0x6,0x60,0x65, 0x5,0x3b,0x47, - 0x6,0x4d,0x50, 0x6,0x56,0x75, 0x4,0x3a,0x48, 0x5,0x3b,0x4c, - 0x6,0x4d,0x55, 0x6,0x4d,0x4e, 0x6,0x4d,0x4c, 0x6,0x4d,0x53, - 0x5,0x3b,0x46, 0x5,0x48,0x75, 0x6,0x4d,0x3e, 0x6,0x4d,0x47, - 0x6,0x4d,0x4a, 0xf,0x3e,0x41, 0xf,0x3e,0x44, 0xf,0x3e,0x46, - 0xf,0x3e,0x47, 0xf,0x3e,0x48, 0xf,0x3e,0x49, 0xf,0x3e,0x4a, - 0xf,0x3e,0x4b, 0x6,0x4d,0x44, 0x6,0x4d,0x49, 0xf,0x3b,0x63, - 0x6,0x4d,0x4d, 0x6,0x4d,0x41, 0x6,0x4d,0x52, 0x6,0x4d,0x3f, - 0x6,0x4d,0x40, 0x6,0x60,0x63, 0x6,0x60,0x67, 0x6,0x60,0x64, - 0xf,0x3e,0x45, 0x5,0x3b,0x49, 0x6,0x4d,0x46, 0x5,0x34,0x6d, - 0x5,0x3b,0x4b, 0x5,0x3b,0x4e, 0x5,0x3b,0x4f, 0x6,0x4d,0x51, - 0x5,0x3b,0x51, 0x6,0x4d,0x45, 0x6,0x60,0x68, 0x6,0x60,0x66, - 0x5,0x41,0x7d, 0x4,0x40,0x21, 0x5,0x42,0x26, 0x5,0x42,0x21, - 0x5,0x41,0x75, 0x5,0x41,0x79, 0x5,0x42,0x27, 0x6,0x56,0x7d, - 0x4,0x3f,0x7e, 0x6,0x56,0x72, 0x4,0x3a,0x46, 0x5,0x42,0x22, - 0x5,0x41,0x78, 0x6,0x56,0x77, 0x4,0x40,0x24, 0x6,0x56,0x79, - 0x4,0x40,0x22, 0x6,0x57,0x21, 0x6,0x56,0x73, 0x5,0x42,0x29, - 0x6,0x56,0x74, 0x6,0x56,0x78, 0x5,0x42,0x23, 0x6,0x56,0x7c, - 0x5,0x41,0x7b, 0x5,0x41,0x7a, 0x5,0x42,0x25, 0x5,0x42,0x24, - 0x6,0x56,0x7a, 0x5,0x41,0x76, 0x6,0x56,0x7e, 0xf,0x44,0x69, - 0xf,0x44,0x6a, 0xf,0x44,0x6b, 0xf,0x44,0x6c, 0xf,0x44,0x6d, - 0xf,0x44,0x6f, 0xf,0x44,0x71, 0x4,0x40,0x2b, 0x6,0x57,0x23, - 0x6,0x57,0x22, 0xf,0x44,0x70, 0x7,0x27,0x32, 0x7,0x27,0x33, - 0x6,0x56,0x7b, 0x5,0x41,0x7e, 0x5,0x41,0x7c, 0x4,0x46,0x44, - 0x5,0x48,0x7b, 0x4,0x46,0x4c, 0x4,0x46,0x43, 0x5,0x49,0x23, - 0x6,0x60,0x6a, 0x5,0x48,0x7a, 0x4,0x46,0x4a, 0x5,0x49,0x24, - 0x5,0x49,0x21, 0x4,0x46,0x49, 0x5,0x48,0x77, 0x5,0x48,0x7d, - 0x4,0x46,0x3a, 0x4,0x46,0x4b, 0x5,0x48,0x78, 0x6,0x60,0x71, - 0x6,0x60,0x6c, 0x5,0x48,0x76, 0x6,0x60,0x6e, 0x5,0x48,0x79, - 0x6,0x60,0x6d, 0x5,0x48,0x7c, 0x7,0x31,0x63, 0x5,0x49,0x22, - 0x4,0x46,0x48, 0x6,0x60,0x6b, 0xf,0x4b,0x4d, 0xf,0x4b,0x4e, - 0xf,0x4b,0x4f, 0xf,0x4b,0x51, 0xf,0x4b,0x52, 0xf,0x4b,0x55, - 0xf,0x4b,0x53, 0x6,0x60,0x70, 0x6,0x5d,0x5c, 0x5,0x41,0x77, - 0x5,0x48,0x7e, 0x4,0x4c,0x53, 0x5,0x4f,0x7b, 0x7,0x27,0x34, - 0x4,0x4c,0x57, 0x7,0x27,0x3b, 0x5,0x4f,0x7a, 0x4,0x4c,0x59, - 0x7,0x3a,0x60, 0x7,0x27,0x37, 0x5,0x4f,0x7c, 0x7,0x27,0x35, - 0x4,0x4c,0x5a, 0x7,0x3a,0x5e, 0x5,0x4f,0x78, 0x7,0x27,0x38, - 0xf,0x51,0x51, 0xf,0x51,0x52, 0xf,0x51,0x53, 0xf,0x51,0x54, - 0x7,0x27,0x36, 0x7,0x27,0x39, 0x7,0x27,0x3a, 0x7,0x3a,0x5f, - 0x6,0x60,0x69, 0x5,0x4f,0x79, 0xf,0x5c,0x35, 0x7,0x31,0x6c, - 0x5,0x57,0x37, 0x5,0x57,0x32, 0x4,0x52,0x68, 0x4,0x52,0x5d, - 0x5,0x57,0x31, 0x4,0x52,0x5f, 0x7,0x31,0x67, 0x7,0x31,0x6e, - 0x5,0x57,0x35, 0x5,0x57,0x36, 0x4,0x52,0x65, 0x5,0x4f,0x7d, - 0x5,0x57,0x34, 0x7,0x31,0x65, 0x7,0x31,0x6d, 0x5,0x57,0x39, - 0x7,0x31,0x6a, 0x5,0x69,0x24, 0x4,0x52,0x60, 0x7,0x31,0x6f, - 0xf,0x57,0x31, 0xf,0x57,0x33, 0xf,0x57,0x32, 0x7,0x27,0x3c, - 0x7,0x31,0x68, 0x7,0x31,0x69, 0x7,0x31,0x64, 0x7,0x31,0x66, - 0x7,0x31,0x6b, 0x7,0x41,0x7a, 0x7,0x48,0x79, 0x7,0x41,0x7b, - 0x5,0x57,0x3a, 0x5,0x57,0x30, 0x5,0x57,0x3b, 0x5,0x57,0x38, - 0x5,0x57,0x33, 0x7,0x42,0x21, 0x5,0x5d,0x5a, 0x5,0x5d,0x59, - 0x7,0x3a,0x62, 0x4,0x58,0x2e, 0x4,0x58,0x2a, 0x4,0x58,0x29, - 0x5,0x5d,0x58, 0x5,0x5d,0x56, 0x4,0x60,0x71, 0x7,0x48,0x7b, - 0x5,0x5d,0x5e, 0x7,0x3a,0x65, 0xf,0x5c,0x2e, 0xf,0x5c,0x2f, - 0xf,0x5c,0x31, 0xf,0x5c,0x32, 0xf,0x5c,0x33, 0xf,0x5c,0x34, - 0xf,0x5c,0x36, 0xf,0x5c,0x30, 0x7,0x37,0x7e, 0x7,0x3a,0x63, - 0x7,0x48,0x7a, 0x7,0x48,0x7d, 0x5,0x5d,0x5d, 0x7,0x3a,0x61, - 0x5,0x5d,0x5c, 0x5,0x5d,0x57, 0x7,0x3a,0x64, 0x7,0x48,0x7e, - 0x4,0x5c,0x75, 0x5,0x63,0x6a, 0x5,0x63,0x67, 0x5,0x63,0x69, - 0x5,0x63,0x6c, 0x7,0x41,0x7c, 0x5,0x63,0x6e, 0x7,0x41,0x7e, - 0x5,0x63,0x6b, 0x7,0x42,0x23, 0x5,0x63,0x68, 0x5,0x6d,0x2a, - 0x5,0x63,0x6f, 0xf,0x60,0x3b, 0xf,0x60,0x3c, 0xf,0x60,0x3d, - 0xf,0x60,0x40, 0xf,0x60,0x41, 0x7,0x41,0x7d, 0x7,0x42,0x6d, - 0x4,0x5c,0x73, 0x4,0x60,0x72, 0x7,0x49,0x23, 0x7,0x49,0x29, - 0x5,0x69,0x25, 0x5,0x69,0x26, 0x5,0x63,0x6d, 0x7,0x49,0x24, - 0xf,0x63,0x4a, 0x7,0x49,0x28, 0x7,0x49,0x2a, 0xf,0x63,0x4c, - 0xf,0x63,0x4d, 0x7,0x49,0x22, 0x7,0x49,0x26, 0x7,0x49,0x25, - 0x7,0x49,0x27, 0x7,0x49,0x21, 0xf,0x63,0x4b, 0x7,0x49,0x2b, - 0x7,0x4f,0x3d, 0x5,0x6d,0x2e, 0x5,0x6d,0x2d, 0x4,0x64,0x2b, - 0x4,0x64,0x29, 0x5,0x6d,0x2b, 0xf,0x65,0x76, 0x7,0x4f,0x3c, - 0x7,0x4f,0x3b, 0x4,0x67,0x26, 0x7,0x54,0x4f, 0x5,0x70,0x77, - 0x7,0x5c,0x40, 0x7,0x55,0x3a, 0x7,0x5c,0x3f, 0x4,0x69,0x31, - 0x4,0x69,0x2f, 0x7,0x58,0x65, 0xf,0x68,0x33, 0x7,0x5c,0x41, - 0x5,0x76,0x3d, 0x7,0x5c,0x43, 0x7,0x5c,0x45, 0x7,0x5c,0x46, - 0x5,0x76,0x3c, 0x7,0x5c,0x42, 0x4,0x6a,0x6e, 0x7,0x5c,0x47, - 0x7,0x5c,0x48, 0x7,0x5f,0x3d, 0x5,0x77,0x7d, 0x7,0x5f,0x3e, - 0x5,0x79,0x3c, 0x7,0x64,0x57, 0x5,0x7a,0x6f, 0x5,0x7b,0x45, - 0x6,0x28,0x7c, 0x4,0x24,0x71, 0xf,0x2a,0x49, 0x6,0x3b,0x34, - 0xf,0x32,0x2f, 0x6,0x4d,0x56, 0x6,0x4d,0x57, 0xf,0x4b,0x58, - 0xf,0x4b,0x59, 0xf,0x51,0x56, 0x6,0x60,0x73, 0xf,0x5c,0x37, - 0x7,0x42,0x25, 0xf,0x60,0x42, 0x5,0x70,0x79, 0xf,0x68,0x34, - 0xf,0x69,0x67, 0x7,0x65,0x3d, 0x5,0x7c,0x2c, 0x6,0x25,0x4a, - 0x6,0x28,0x7e, 0x4,0x24,0x72, 0x6,0x28,0x7d, 0x6,0x2d,0x70, - 0x5,0x2b,0x3a, 0x6,0x34,0x32, 0xf,0x2d,0x30, 0x5,0x2f,0x72, - 0x6,0x3b,0x36, 0x4,0x2f,0x49, 0xf,0x32,0x30, 0x6,0x3b,0x37, - 0x6,0x3b,0x35, 0x6,0x43,0x66, 0x6,0x43,0x65, 0xf,0x37,0x6d, - 0xf,0x37,0x6e, 0x6,0x4d,0x59, 0x6,0x4d,0x5a, 0x6,0x57,0x24, - 0x5,0x49,0x25, 0xf,0x4b,0x5a, 0x4,0x4c,0x60, 0x4,0x4c,0x61, - 0x5,0x4f,0x7e, 0xf,0x51,0x57, 0x7,0x27,0x3d, 0x4,0x52,0x69, - 0x5,0x57,0x3c, 0x7,0x3a,0x66, 0x5,0x5d,0x60, 0x5,0x5d,0x5f, - 0xf,0x5c,0x38, 0xf,0x60,0x43, 0x5,0x69,0x27, 0x4,0x60,0x75, - 0x5,0x6d,0x31, 0xf,0x63,0x4e, 0x7,0x49,0x2c, 0x5,0x6d,0x2f, - 0x5,0x6d,0x30, 0x7,0x62,0x51, 0x6,0x29,0x21, 0x6,0x2d,0x71, - 0x6,0x2d,0x72, 0x6,0x3b,0x3a, 0xf,0x2d,0x31, 0x6,0x3b,0x38, - 0x6,0x3b,0x39, 0x5,0x34,0x77, 0x4,0x34,0x56, 0x6,0x4d,0x5b, - 0x5,0x42,0x2a, 0x5,0x49,0x26, 0xf,0x4b,0x5b, 0x5,0x50,0x21, - 0x7,0x27,0x3e, 0xf,0x51,0x58, 0x5,0x50,0x22, 0x7,0x31,0x71, - 0x4,0x52,0x6a, 0x5,0x57,0x3d, 0xf,0x57,0x34, 0x4,0x58,0x2f, - 0x5,0x63,0x70, 0x5,0x63,0x71, 0x4,0x24,0x74, 0x6,0x25,0x4b, - 0x6,0x23,0x64, 0x6,0x2d,0x73, 0x6,0x2d,0x74, 0xf,0x2d,0x32, - 0x4,0x2f,0x4b, 0x6,0x34,0x33, 0x6,0x3b,0x3b, 0x6,0x3b,0x41, - 0x6,0x3b,0x3d, 0x6,0x3b,0x3c, 0x4,0x2f,0x4c, 0x6,0x3b,0x3f, - 0x6,0x3b,0x40, 0x6,0x43,0x69, 0x5,0x34,0x78, 0x6,0x3b,0x3e, - 0x6,0x43,0x68, 0x6,0x43,0x6b, 0x6,0x43,0x6a, 0x5,0x3b,0x52, - 0x6,0x4d,0x5c, 0x5,0x3b,0x53, 0x5,0x49,0x27, 0x6,0x57,0x28, - 0x6,0x57,0x27, 0x6,0x57,0x25, 0x6,0x60,0x74, 0x6,0x60,0x7a, - 0x6,0x60,0x75, 0x6,0x60,0x76, 0x5,0x50,0x23, 0x7,0x27,0x3f, - 0x6,0x60,0x77, 0x6,0x60,0x7b, 0x6,0x60,0x78, 0x7,0x27,0x40, - 0x7,0x27,0x41, 0x7,0x27,0x42, 0x6,0x60,0x79, 0x5,0x49,0x28, - 0x5,0x50,0x24, 0x5,0x50,0x25, 0x7,0x27,0x43, 0x7,0x27,0x44, - 0x7,0x31,0x72, 0x7,0x27,0x45, 0x7,0x27,0x46, 0xf,0x57,0x35, - 0x7,0x31,0x74, 0x7,0x31,0x73, 0x5,0x5d,0x62, 0x7,0x31,0x77, - 0x7,0x31,0x76, 0x7,0x31,0x75, 0x5,0x5d,0x61, 0x5,0x5d,0x64, - 0x7,0x3a,0x67, 0x7,0x42,0x28, 0x7,0x42,0x27, 0x5,0x5d,0x65, - 0x4,0x5c,0x77, 0x7,0x42,0x26, 0xf,0x60,0x44, 0xf,0x60,0x45, - 0x7,0x49,0x2d, 0x5,0x63,0x73, 0x5,0x63,0x72, 0x7,0x49,0x2e, - 0x7,0x4f,0x3f, 0x5,0x69,0x28, 0x5,0x6d,0x33, 0x5,0x6d,0x34, - 0x5,0x6d,0x35, 0x7,0x4f,0x3e, 0x7,0x49,0x2f, 0xf,0x63,0x4f, - 0x5,0x69,0x29, 0x7,0x4f,0x40, 0x7,0x4f,0x41, 0x5,0x70,0x7a, - 0xf,0x65,0x78, 0xf,0x68,0x35, 0xf,0x68,0x37, 0x7,0x58,0x66, - 0xf,0x68,0x36, 0x7,0x58,0x67, 0x7,0x5c,0x49, 0x5,0x77,0x7e, - 0x7,0x61,0x37, 0x5,0x79,0x3d, 0x5,0x79,0x3f, 0x5,0x79,0x3e, - 0xf,0x6c,0x6a, 0x7,0x65,0x3e, 0x7,0x65,0x3f, 0x7,0x66,0x53, - 0x5,0x7c,0x50, 0xf,0x25,0x2b, 0x6,0x34,0x34, 0x4,0x2f,0x4e, - 0x4,0x2f,0x4d, 0x6,0x3b,0x42, 0x6,0x3b,0x43, 0x6,0x3b,0x44, - 0x5,0x2f,0x73, 0x5,0x2f,0x74, 0x6,0x43,0x6c, 0x6,0x43,0x6d, - 0x6,0x41,0x7d, 0x6,0x4d,0x60, 0x6,0x4d,0x5f, 0x6,0x4d,0x61, - 0xf,0x3e,0x50, 0x5,0x49,0x29, 0x4,0x46,0x4d, 0x5,0x45,0x53, - 0x4,0x46,0x4e, 0x6,0x57,0x29, 0xf,0x4b,0x5c, 0x6,0x60,0x7c, - 0x6,0x60,0x7e, 0x6,0x60,0x7d, 0x7,0x27,0x47, 0xf,0x51,0x59, - 0x7,0x27,0x49, 0x7,0x27,0x48, 0x7,0x31,0x78, 0x5,0x57,0x3e, - 0x7,0x31,0x79, 0x7,0x3a,0x68, 0xf,0x60,0x46, 0x5,0x63,0x74, - 0x7,0x42,0x2a, 0x7,0x42,0x29, 0x5,0x6d,0x36, 0x5,0x70,0x7b, - 0x7,0x5c,0x4a, 0x5,0x76,0x3e, 0x5,0x50,0x26, 0x5,0x50,0x27, - 0xf,0x60,0x47, 0x7,0x4f,0x42, 0x7,0x5c,0x4b, 0x7,0x5f,0x3f, - 0x7,0x61,0x39, 0x5,0x7a,0x70, 0x5,0x24,0x74, 0x4,0x27,0x71, - 0x4,0x27,0x70, 0x6,0x2d,0x77, 0x6,0x2d,0x76, 0x6,0x2d,0x75, - 0x5,0x27,0x5f, 0x4,0x2b,0x31, 0x4,0x2b,0x35, 0x4,0x2b,0x34, - 0x6,0x34,0x35, 0x6,0x34,0x37, 0x6,0x34,0x36, 0x6,0x3b,0x4a, - 0x5,0x2f,0x75, 0x6,0x3b,0x49, 0x6,0x3b,0x45, 0x5,0x2f,0x76, - 0x4,0x2f,0x52, 0x4,0x2f,0x51, 0x6,0x3b,0x46, 0x6,0x3b,0x47, - 0x6,0x3b,0x48, 0x5,0x34,0x7a, 0x4,0x34,0x59, 0x4,0x34,0x5b, - 0x6,0x43,0x72, 0x5,0x34,0x7b, 0x6,0x43,0x6e, 0x6,0x43,0x6f, - 0xf,0x37,0x71, 0x5,0x34,0x79, 0xf,0x37,0x70, 0xf,0x37,0x72, - 0x5,0x3b,0x54, 0x6,0x4d,0x65, 0x6,0x4d,0x64, 0x4,0x34,0x5a, - 0x4,0x3a,0x52, 0x4,0x3a,0x50, 0x4,0x3a,0x51, 0x4,0x3a,0x53, - 0x6,0x4d,0x66, 0x5,0x42,0x2b, 0x6,0x57,0x2c, 0x5,0x42,0x2c, - 0x6,0x57,0x2a, 0xf,0x44,0x72, 0x6,0x57,0x2b, 0x6,0x57,0x2d, - 0x6,0x57,0x2e, 0x5,0x42,0x2e, 0x6,0x61,0x27, 0x5,0x49,0x2d, - 0x5,0x49,0x2b, 0x4,0x46,0x52, 0x6,0x61,0x22, 0x6,0x61,0x26, - 0xf,0x4b,0x5e, 0xf,0x4b,0x5f, 0xf,0x4b,0x5d, 0x6,0x61,0x23, - 0x5,0x49,0x2a, 0x5,0x50,0x2f, 0x4,0x4c,0x67, 0x4,0x4c,0x66, - 0x5,0x50,0x2e, 0x5,0x50,0x2b, 0x5,0x50,0x2c, 0x5,0x50,0x30, - 0x5,0x50,0x28, 0x7,0x27,0x4f, 0x7,0x27,0x4d, 0x5,0x50,0x31, - 0x7,0x27,0x4a, 0x7,0x27,0x4c, 0x7,0x27,0x4e, 0x7,0x27,0x4b, - 0x5,0x50,0x2d, 0x5,0x50,0x29, 0x5,0x50,0x2a, 0x5,0x57,0x42, - 0x5,0x57,0x3f, 0x5,0x57,0x43, 0x7,0x31,0x7c, 0x5,0x57,0x40, - 0x7,0x32,0x21, 0x7,0x31,0x7d, 0x7,0x32,0x23, 0x5,0x57,0x41, - 0x7,0x32,0x22, 0xf,0x57,0x36, 0x7,0x31,0x7e, 0x7,0x31,0x7b, - 0x7,0x3a,0x6a, 0x4,0x58,0x31, 0x5,0x5d,0x6c, 0x5,0x5d,0x66, - 0x5,0x5d,0x69, 0x5,0x5d,0x68, 0x5,0x5d,0x6a, 0x5,0x5d,0x6b, - 0x4,0x5c,0x79, 0x5,0x63,0x7b, 0x7,0x42,0x2c, 0x5,0x63,0x75, - 0x5,0x63,0x7a, 0x5,0x63,0x7d, 0x5,0x63,0x79, 0x4,0x5c,0x7a, - 0x4,0x5c,0x7b, 0x5,0x63,0x76, 0x5,0x63,0x77, 0x5,0x63,0x7c, - 0x4,0x5c,0x78, 0x7,0x42,0x2d, 0x7,0x42,0x2b, 0x5,0x63,0x78, - 0x7,0x49,0x30, 0x5,0x69,0x2d, 0x5,0x69,0x2c, 0x5,0x69,0x2b, - 0x5,0x69,0x2a, 0x7,0x49,0x31, 0xf,0x63,0x50, 0x7,0x49,0x32, - 0x5,0x6d,0x37, 0x7,0x4f,0x43, 0x5,0x70,0x7d, 0x5,0x70,0x7c, - 0x7,0x54,0x52, 0x5,0x74,0x21, 0x5,0x74,0x22, 0x4,0x69,0x32, - 0x7,0x58,0x68, 0x7,0x54,0x50, 0x7,0x54,0x51, 0x4,0x6a,0x6f, - 0x7,0x5c,0x4c, 0x7,0x61,0x3b, 0x7,0x61,0x3a, 0x7,0x62,0x52, - 0x5,0x7a,0x71, 0x4,0x6e,0x4f, 0x6,0x34,0x38, 0xf,0x37,0x73, - 0x5,0x3b,0x3f, 0xf,0x3e,0x51, 0xf,0x51,0x5a, 0xf,0x5c,0x39, - 0x7,0x4f,0x44, 0x5,0x34,0x7c, 0x5,0x34,0x7d, 0x6,0x43,0x73, - 0x5,0x34,0x7e, 0xf,0x3e,0x52, 0x6,0x57,0x2f, 0x6,0x57,0x30, - 0x6,0x57,0x31, 0x6,0x61,0x29, 0xf,0x4b,0x60, 0x6,0x61,0x2a, - 0x6,0x61,0x28, 0x7,0x27,0x51, 0x7,0x27,0x50, 0x7,0x27,0x52, - 0xf,0x51,0x5b, 0xf,0x51,0x5c, 0xf,0x51,0x5d, 0x5,0x57,0x44, - 0x5,0x57,0x45, 0x7,0x32,0x25, 0x7,0x32,0x24, 0x5,0x6d,0x39, - 0x5,0x6d,0x38, 0x7,0x4f,0x45, 0xf,0x6c,0x37, 0x5,0x21,0x7b, - 0x6,0x23,0x38, 0x4,0x23,0x2e, 0x6,0x25,0x50, 0x6,0x25,0x51, - 0x6,0x2d,0x78, 0x6,0x25,0x4e, 0x5,0x23,0x26, 0x6,0x25,0x4d, - 0xf,0x22,0x6f, 0xf,0x22,0x70, 0xf,0x22,0x6e, 0x6,0x25,0x4c, - 0x4,0x24,0x77, 0x4,0x24,0x78, 0x4,0x24,0x7c, 0x6,0x29,0x22, - 0x4,0x24,0x7a, 0x6,0x29,0x25, 0x6,0x29,0x23, 0x6,0x29,0x24, - 0x6,0x29,0x26, 0xf,0x25,0x2c, 0xf,0x25,0x2d, 0xf,0x25,0x2e, - 0xf,0x25,0x2f, 0xf,0x25,0x30, 0xf,0x25,0x31, 0x6,0x2d,0x7b, - 0x4,0x27,0x7c, 0x4,0x27,0x77, 0x4,0x27,0x79, 0x5,0x27,0x62, - 0x4,0x27,0x7d, 0x4,0x27,0x78, 0x4,0x27,0x75, 0x5,0x27,0x60, - 0x6,0x2d,0x7c, 0x5,0x27,0x61, 0x4,0x27,0x74, 0x6,0x3b,0x4b, - 0x6,0x27,0x4c, 0x6,0x2e,0x21, 0x5,0x27,0x64, 0x4,0x27,0x76, - 0x6,0x2d,0x7a, 0x6,0x2d,0x7e, 0x6,0x3b,0x4d, 0x6,0x3b,0x4c, - 0xf,0x28,0x57, 0xf,0x28,0x58, 0xf,0x28,0x59, 0xf,0x28,0x5a, - 0xf,0x28,0x5b, 0xf,0x28,0x5d, 0xf,0x28,0x5e, 0xf,0x28,0x5f, - 0xf,0x28,0x60, 0xf,0x28,0x61, 0xf,0x28,0x62, 0xf,0x28,0x64, - 0x6,0x2d,0x79, 0x4,0x2b,0x3b, 0x4,0x2b,0x37, 0x4,0x2b,0x38, - 0x4,0x2b,0x39, 0x5,0x2b,0x3f, 0x6,0x34,0x43, 0x6,0x34,0x3b, - 0x4,0x2b,0x3c, 0x6,0x34,0x41, 0x6,0x34,0x3d, 0x5,0x2b,0x3d, - 0x6,0x34,0x39, 0x6,0x34,0x40, 0x6,0x34,0x3e, 0x6,0x34,0x42, - 0x6,0x34,0x45, 0x6,0x34,0x46, 0x5,0x2b,0x3b, 0x5,0x2b,0x3e, - 0x5,0x2b,0x3c, 0xf,0x2d,0x33, 0xf,0x2d,0x35, 0xf,0x2d,0x37, - 0xf,0x2d,0x38, 0xf,0x2d,0x39, 0xf,0x2d,0x3a, 0xf,0x2d,0x3b, - 0xf,0x2d,0x3c, 0xf,0x2d,0x36, 0x6,0x33,0x3e, 0x6,0x34,0x3f, - 0xf,0x2d,0x34, 0x6,0x2d,0x7d, 0x6,0x4d,0x68, 0xf,0x2a,0x52, - 0x5,0x2f,0x7c, 0x4,0x2f,0x56, 0x4,0x2f,0x57, 0x4,0x2f,0x62, - 0x5,0x2f,0x78, 0x5,0x2f,0x7a, 0x5,0x2f,0x7e, 0x4,0x2f,0x54, - 0x5,0x2f,0x77, 0x5,0x30,0x23, 0x4,0x2f,0x5b, 0x5,0x30,0x27, - 0x4,0x2f,0x58, 0x4,0x2f,0x65, 0x5,0x30,0x24, 0x4,0x2f,0x60, - 0x6,0x3b,0x5e, 0x6,0x3b,0x5f, 0x5,0x30,0x25, 0x6,0x3b,0x61, - 0x5,0x30,0x22, 0x4,0x2f,0x66, 0x6,0x3b,0x59, 0x6,0x3b,0x58, - 0x6,0x4d,0x67, 0x6,0x44,0x22, 0x6,0x3b,0x55, 0x5,0x2f,0x7d, - 0x6,0x3b,0x54, 0x6,0x3b,0x51, 0x6,0x3b,0x4f, 0x6,0x3b,0x5a, - 0x6,0x3b,0x5c, 0x5,0x2f,0x7b, 0x6,0x3b,0x57, 0x5,0x30,0x26, - 0x5,0x2f,0x79, 0x6,0x3b,0x53, 0x6,0x3b,0x5b, 0x6,0x3b,0x5d, - 0x6,0x3b,0x62, 0xf,0x32,0x33, 0xf,0x32,0x35, 0xf,0x32,0x36, - 0xf,0x32,0x37, 0xf,0x32,0x38, 0xf,0x32,0x39, 0xf,0x32,0x3b, - 0xf,0x32,0x3c, 0xf,0x32,0x3d, 0xf,0x32,0x3f, 0xf,0x32,0x40, - 0xf,0x32,0x42, 0xf,0x32,0x43, 0xf,0x32,0x44, 0xf,0x32,0x45, - 0xf,0x32,0x47, 0xf,0x32,0x48, 0xf,0x32,0x49, 0xf,0x32,0x4a, - 0xf,0x32,0x4b, 0x6,0x3b,0x50, 0xf,0x32,0x46, 0xf,0x32,0x4c, - 0xf,0x32,0x3e, 0x5,0x35,0x2b, 0x5,0x35,0x2e, 0x5,0x35,0x27, - 0x4,0x34,0x70, 0x5,0x35,0x2c, 0x4,0x34,0x61, 0x4,0x34,0x6e, - 0x4,0x34,0x68, 0x6,0x44,0x32, 0x4,0x34,0x72, 0x4,0x34,0x75, - 0x6,0x44,0x26, 0x6,0x43,0x7b, 0x6,0x44,0x23, 0x5,0x35,0x23, - 0x6,0x43,0x79, 0x6,0x43,0x75, 0x4,0x34,0x60, 0x5,0x35,0x32, - 0x6,0x43,0x74, 0x6,0x44,0x21, 0x6,0x44,0x38, 0x4,0x34,0x64, - 0x6,0x44,0x36, 0x6,0x4e,0x3a, 0x6,0x44,0x34, 0x6,0x3b,0x60, - 0x6,0x4d,0x78, 0x4,0x34,0x5f, 0x5,0x35,0x21, 0x4,0x34,0x6b, - 0x6,0x43,0x77, 0x6,0x44,0x24, 0x5,0x35,0x30, 0x6,0x44,0x2f, - 0x6,0x44,0x35, 0x6,0x44,0x2e, 0x6,0x44,0x29, 0x5,0x35,0x2f, - 0x6,0x44,0x33, 0x6,0x43,0x78, 0x6,0x44,0x27, 0x5,0x35,0x31, - 0x5,0x42,0x2f, 0x6,0x57,0x32, 0x6,0x57,0x33, 0x6,0x44,0x30, - 0x6,0x44,0x31, 0x6,0x43,0x7e, 0x5,0x35,0x22, 0x5,0x35,0x33, - 0x6,0x44,0x2a, 0x5,0x35,0x29, 0x5,0x35,0x2d, 0x5,0x35,0x26, - 0x6,0x4e,0x37, 0x6,0x44,0x39, 0x6,0x44,0x3a, 0x6,0x43,0x7c, - 0x6,0x43,0x7a, 0xf,0x37,0x74, 0xf,0x37,0x75, 0xf,0x37,0x76, - 0xf,0x37,0x77, 0xf,0x37,0x79, 0xf,0x37,0x7b, 0xf,0x37,0x7c, - 0xf,0x37,0x7d, 0xf,0x37,0x7e, 0xf,0x38,0x21, 0xf,0x38,0x22, - 0xf,0x38,0x24, 0xf,0x38,0x25, 0xf,0x38,0x26, 0xf,0x38,0x27, - 0xf,0x38,0x28, 0xf,0x38,0x29, 0xf,0x38,0x2a, 0xf,0x38,0x2b, - 0xf,0x38,0x2c, 0xf,0x38,0x2d, 0xf,0x38,0x2e, 0xf,0x38,0x2f, - 0xf,0x38,0x30, 0xf,0x38,0x31, 0xf,0x38,0x32, 0xf,0x38,0x33, - 0xf,0x38,0x34, 0xf,0x38,0x35, 0x5,0x3b,0x5d, 0x6,0x43,0x7d, - 0x5,0x35,0x28, 0x6,0x44,0x25, 0xf,0x37,0x7a, 0x6,0x44,0x2d, - 0x6,0x44,0x37, 0xf,0x38,0x23, 0x5,0x35,0x25, 0x5,0x3b,0x55, - 0x4,0x3a,0x55, 0x5,0x3b,0x69, 0x5,0x3b,0x6a, 0x5,0x3b,0x62, - 0x5,0x3b,0x6c, 0x5,0x3b,0x6d, 0x5,0x3b,0x63, 0x4,0x3a,0x5d, - 0x6,0x4d,0x7a, 0x6,0x4d,0x72, 0x6,0x4e,0x2b, 0x6,0x4d,0x70, - 0x6,0x4d,0x6b, 0x5,0x3b,0x5f, 0x5,0x3b,0x67, 0x5,0x3b,0x68, - 0x6,0x4d,0x7b, 0x6,0x4d,0x79, 0x5,0x3b,0x5e, 0x5,0x3b,0x6e, - 0x5,0x3b,0x6b, 0x4,0x34,0x6a, 0x4,0x3a,0x57, 0x4,0x3a,0x5a, - 0x4,0x3a,0x58, 0x4,0x3a,0x62, 0x5,0x3b,0x5a, 0x4,0x3a,0x54, - 0x6,0x4d,0x69, 0x6,0x4e,0x35, 0x4,0x3a,0x63, 0x6,0x4d,0x6a, - 0x5,0x3b,0x64, 0x6,0x4d,0x7c, 0x6,0x4e,0x36, 0x6,0x4d,0x7d, - 0x6,0x4e,0x2f, 0x6,0x4e,0x30, 0x4,0x3a,0x6b, 0x6,0x4e,0x26, - 0x4,0x3a,0x69, 0x6,0x4e,0x23, 0x5,0x3b,0x5c, 0x6,0x4e,0x28, - 0x6,0x4d,0x75, 0x6,0x4e,0x2d, 0x6,0x4d,0x74, 0x6,0x4e,0x22, - 0x6,0x4e,0x31, 0x6,0x4e,0x29, 0x5,0x3b,0x65, 0x6,0x61,0x32, - 0x6,0x61,0x2d, 0x6,0x61,0x2e, 0x5,0x3b,0x57, 0x6,0x4e,0x24, - 0x6,0x4d,0x6f, 0x6,0x4e,0x2e, 0x5,0x49,0x2e, 0x6,0x4d,0x73, - 0x6,0x4e,0x2c, 0x6,0x4d,0x77, 0x6,0x4e,0x25, 0x6,0x4d,0x6d, - 0x6,0x4e,0x2a, 0x4,0x3a,0x6a, 0x5,0x3b,0x60, 0x5,0x3b,0x5b, - 0x6,0x4d,0x76, 0x6,0x4e,0x38, 0x6,0x61,0x2b, 0x5,0x3b,0x66, - 0x6,0x61,0x2f, 0x5,0x3b,0x61, 0x6,0x4e,0x34, 0x6,0x61,0x31, - 0x6,0x61,0x30, 0x6,0x4d,0x6c, 0x6,0x4d,0x7e, 0x6,0x4c,0x7b, - 0x5,0x3b,0x58, 0x6,0x4d,0x6e, 0x6,0x4d,0x71, 0x6,0x4e,0x33, - 0x6,0x4e,0x39, 0xf,0x3e,0x53, 0xf,0x3e,0x55, 0xf,0x3e,0x56, - 0xf,0x3e,0x58, 0xf,0x3e,0x5a, 0xf,0x3e,0x5b, 0xf,0x3e,0x5c, - 0xf,0x3e,0x5d, 0xf,0x3e,0x5e, 0xf,0x3e,0x5f, 0xf,0x3e,0x60, - 0xf,0x3e,0x61, 0xf,0x3e,0x63, 0xf,0x3e,0x64, 0xf,0x3e,0x65, - 0xf,0x3e,0x68, 0xf,0x3e,0x69, 0xf,0x3e,0x6a, 0xf,0x3e,0x6d, - 0xf,0x3e,0x6f, 0xf,0x3e,0x70, 0xf,0x3e,0x71, 0xf,0x3e,0x72, - 0xf,0x3e,0x74, 0xf,0x3e,0x75, 0xf,0x3e,0x76, 0xf,0x3e,0x77, - 0xf,0x3e,0x78, 0xf,0x3e,0x79, 0xf,0x3e,0x7a, 0xf,0x3e,0x7b, - 0xf,0x3e,0x7c, 0xf,0x3e,0x7d, 0xf,0x3e,0x7e, 0x6,0x61,0x2c, - 0x5,0x3b,0x59, 0x6,0x4e,0x21, 0xf,0x3e,0x62, 0xf,0x3e,0x54, - 0xf,0x3e,0x6e, 0xf,0x3e,0x73, 0x4,0x40,0x43, 0x6,0x57,0x34, - 0x6,0x57,0x46, 0x5,0x42,0x4e, 0x6,0x57,0x3a, 0x6,0x57,0x3b, - 0x5,0x42,0x34, 0x4,0x40,0x3d, 0x6,0x57,0x49, 0x6,0x57,0x5a, - 0x4,0x40,0x40, 0x4,0x40,0x42, 0x5,0x42,0x45, 0x6,0x57,0x5e, - 0x5,0x42,0x3a, 0x4,0x40,0x37, 0x4,0x40,0x34, 0x6,0x57,0x41, - 0x6,0x57,0x63, 0x5,0x42,0x33, 0x6,0x57,0x51, 0x6,0x57,0x55, - 0x5,0x42,0x43, 0x6,0x57,0x4a, 0x4,0x40,0x38, 0x4,0x40,0x3b, - 0x5,0x42,0x36, 0x6,0x57,0x43, 0x4,0x40,0x3c, 0x4,0x40,0x45, - 0x5,0x42,0x41, 0x4,0x40,0x4d, 0x5,0x42,0x4f, 0x4,0x40,0x3e, - 0x5,0x42,0x46, 0x6,0x57,0x5d, 0x5,0x42,0x3f, 0x4,0x40,0x33, - 0x4,0x40,0x31, 0x6,0x57,0x65, 0x4,0x40,0x3f, 0x6,0x57,0x42, - 0x5,0x42,0x48, 0x5,0x42,0x42, 0x5,0x42,0x38, 0x5,0x42,0x3e, - 0x6,0x57,0x38, 0x6,0x57,0x53, 0x6,0x57,0x4f, 0x6,0x57,0x40, - 0x6,0x57,0x67, 0x5,0x42,0x3d, 0x6,0x57,0x39, 0x6,0x57,0x64, - 0x6,0x57,0x37, 0x5,0x42,0x50, 0x6,0x57,0x4e, 0x6,0x57,0x45, - 0x6,0x57,0x3c, 0x5,0x42,0x49, 0x5,0x42,0x4d, 0x5,0x42,0x3b, - 0x5,0x42,0x47, 0x6,0x57,0x52, 0x6,0x57,0x60, 0x6,0x57,0x5c, - 0x6,0x57,0x48, 0x6,0x57,0x56, 0x5,0x42,0x39, 0x4,0x40,0x39, - 0x6,0x57,0x57, 0x5,0x42,0x30, 0x5,0x42,0x40, 0x5,0x42,0x32, - 0x5,0x42,0x4a, 0x6,0x57,0x3f, 0x4,0x40,0x35, 0x4,0x40,0x4b, - 0x6,0x57,0x4c, 0x5,0x42,0x35, 0x5,0x42,0x31, 0x6,0x57,0x47, - 0x6,0x57,0x58, 0x7,0x27,0x53, 0x6,0x57,0x61, 0x5,0x42,0x3c, - 0x6,0x57,0x44, 0x6,0x57,0x54, 0x6,0x57,0x36, 0x6,0x57,0x62, - 0x6,0x57,0x66, 0x6,0x57,0x59, 0x4,0x40,0x4e, 0x5,0x42,0x44, - 0x5,0x42,0x4b, 0x6,0x57,0x35, 0x6,0x57,0x3e, 0x6,0x57,0x4b, - 0x6,0x57,0x4d, 0x6,0x57,0x5b, 0x6,0x57,0x5f, 0xf,0x44,0x73, - 0xf,0x44,0x75, 0xf,0x44,0x76, 0xf,0x44,0x77, 0xf,0x44,0x78, - 0xf,0x44,0x79, 0xf,0x44,0x7a, 0xf,0x44,0x7b, 0xf,0x44,0x7c, - 0xf,0x44,0x7d, 0xf,0x44,0x7e, 0xf,0x45,0x21, 0xf,0x45,0x22, - 0xf,0x45,0x23, 0xf,0x45,0x24, 0xf,0x45,0x25, 0xf,0x45,0x26, - 0xf,0x45,0x27, 0xf,0x45,0x28, 0xf,0x45,0x29, 0xf,0x45,0x2a, - 0xf,0x45,0x2b, 0xf,0x45,0x2c, 0xf,0x45,0x2e, 0xf,0x45,0x2f, - 0xf,0x45,0x30, 0xf,0x45,0x31, 0x5,0x42,0x4c, 0x4,0x40,0x4a, - 0x6,0x57,0x3d, 0x6,0x4e,0x32, 0xf,0x3e,0x57, 0x5,0x42,0x37, - 0x4,0x46,0x66, 0x6,0x61,0x60, 0x5,0x49,0x45, 0x6,0x61,0x33, - 0x6,0x61,0x43, 0x5,0x49,0x4b, 0x4,0x46,0x63, 0x6,0x61,0x56, - 0x4,0x46,0x56, 0x6,0x61,0x45, 0x4,0x46,0x59, 0x6,0x61,0x3c, - 0x5,0x49,0x41, 0x6,0x61,0x4a, 0x4,0x46,0x55, 0x6,0x61,0x52, - 0x5,0x49,0x3d, 0x6,0x61,0x40, 0x6,0x61,0x59, 0x5,0x49,0x49, - 0x5,0x49,0x46, 0x6,0x61,0x4c, 0x5,0x49,0x3a, 0x4,0x46,0x5a, - 0x6,0x61,0x39, 0x6,0x61,0x55, 0x6,0x61,0x4d, 0x6,0x61,0x3f, - 0x5,0x49,0x44, 0x5,0x49,0x39, 0x5,0x49,0x30, 0x4,0x46,0x62, - 0x6,0x61,0x41, 0x4,0x46,0x5e, 0x6,0x61,0x36, 0x4,0x46,0x5d, - 0x4,0x46,0x6b, 0x4,0x46,0x5b, 0x5,0x49,0x3f, 0x7,0x27,0x58, - 0x6,0x61,0x37, 0x5,0x49,0x32, 0x5,0x49,0x37, 0x5,0x49,0x31, - 0x5,0x49,0x48, 0x5,0x50,0x3b, 0x4,0x46,0x5f, 0x5,0x49,0x43, - 0x6,0x61,0x38, 0x4,0x46,0x68, 0x6,0x61,0x50, 0x5,0x49,0x38, - 0x6,0x61,0x57, 0x6,0x61,0x46, 0x6,0x61,0x3b, 0x5,0x49,0x40, - 0x5,0x49,0x36, 0x7,0x32,0x27, 0x5,0x49,0x2f, 0x5,0x49,0x34, - 0x6,0x61,0x47, 0x6,0x61,0x49, 0x6,0x61,0x4b, 0x6,0x61,0x4e, - 0x6,0x61,0x5a, 0x6,0x61,0x5d, 0x6,0x61,0x5e, 0xf,0x4b,0x61, - 0xf,0x4b,0x62, 0xf,0x4b,0x63, 0xf,0x4b,0x66, 0xf,0x4b,0x68, - 0xf,0x4b,0x69, 0xf,0x4b,0x6a, 0xf,0x4b,0x6b, 0xf,0x4b,0x6c, - 0xf,0x4b,0x6d, 0xf,0x4b,0x6e, 0xf,0x4b,0x6f, 0xf,0x4b,0x70, - 0xf,0x4b,0x71, 0xf,0x4b,0x72, 0xf,0x4b,0x73, 0xf,0x4b,0x74, - 0xf,0x4b,0x75, 0xf,0x4b,0x76, 0xf,0x4b,0x78, 0xf,0x4b,0x79, - 0xf,0x4b,0x7a, 0xf,0x4b,0x7c, 0xf,0x4b,0x7d, 0xf,0x4b,0x7e, - 0xf,0x4c,0x21, 0xf,0x4c,0x22, 0xf,0x4c,0x23, 0xf,0x4c,0x25, - 0xf,0x4c,0x26, 0xf,0x4c,0x27, 0xf,0x4c,0x28, 0xf,0x4c,0x29, - 0xf,0x4c,0x2a, 0x6,0x61,0x48, 0x5,0x49,0x42, 0x6,0x61,0x53, - 0x6,0x61,0x51, 0x6,0x57,0x68, 0x5,0x49,0x4a, 0x6,0x61,0x5c, - 0x6,0x61,0x5f, 0x6,0x61,0x5b, 0x6,0x61,0x3a, 0x6,0x61,0x35, - 0x6,0x61,0x42, 0x6,0x61,0x3d, 0x6,0x57,0x50, 0xf,0x4b,0x64, - 0xf,0x4b,0x67, 0x6,0x61,0x54, 0x4,0x46,0x6a, 0x4,0x46,0x54, - 0x5,0x49,0x35, 0x5,0x49,0x4d, 0x7,0x32,0x26, 0x5,0x49,0x33, - 0x6,0x61,0x61, 0x5,0x49,0x47, 0x5,0x49,0x4c, 0x5,0x57,0x46, - 0xf,0x4b,0x7b, 0x5,0x49,0x3e, 0x7,0x27,0x6c, 0x4,0x4c,0x7e, - 0x5,0x50,0x32, 0x4,0x4c,0x69, 0x4,0x4c,0x7c, 0x7,0x28,0x21, - 0x5,0x50,0x35, 0x7,0x28,0x24, 0x7,0x27,0x77, 0x7,0x27,0x5c, - 0x5,0x50,0x39, 0x7,0x27,0x69, 0x7,0x27,0x78, 0x7,0x27,0x79, - 0x7,0x27,0x6a, 0x7,0x27,0x73, 0x5,0x50,0x3a, 0x7,0x27,0x6f, - 0x4,0x4c,0x75, 0x5,0x50,0x3d, 0x5,0x50,0x42, 0x7,0x27,0x60, - 0x7,0x28,0x22, 0x5,0x50,0x40, 0x5,0x50,0x3f, 0x5,0x57,0x47, - 0x5,0x50,0x41, 0x5,0x50,0x4b, 0x7,0x27,0x6b, 0x7,0x27,0x76, - 0x7,0x27,0x59, 0x7,0x27,0x72, 0x7,0x27,0x65, 0x5,0x50,0x48, - 0x5,0x50,0x37, 0x4,0x4c,0x7b, 0x7,0x27,0x54, 0x7,0x27,0x5b, - 0x7,0x27,0x64, 0x7,0x27,0x63, 0x7,0x27,0x67, 0x5,0x50,0x33, - 0x7,0x27,0x66, 0x7,0x27,0x7d, 0x7,0x27,0x5e, 0x5,0x50,0x3e, - 0x7,0x27,0x56, 0x5,0x50,0x34, 0x5,0x50,0x4a, 0x7,0x27,0x7c, - 0x7,0x27,0x62, 0x7,0x27,0x5d, 0x7,0x27,0x6e, 0x4,0x4c,0x76, - 0x5,0x50,0x49, 0x5,0x50,0x45, 0x7,0x27,0x74, 0x5,0x57,0x58, - 0x4,0x4d,0x22, 0x5,0x50,0x43, 0x7,0x27,0x55, 0x7,0x27,0x5a, - 0x7,0x27,0x5f, 0x7,0x27,0x70, 0x7,0x27,0x71, 0x7,0x28,0x23, - 0xf,0x51,0x5e, 0xf,0x51,0x5f, 0xf,0x51,0x60, 0xf,0x51,0x62, - 0xf,0x51,0x63, 0xf,0x51,0x66, 0xf,0x51,0x67, 0xf,0x51,0x68, - 0xf,0x51,0x69, 0xf,0x51,0x6a, 0xf,0x51,0x6c, 0xf,0x51,0x6d, - 0xf,0x51,0x6e, 0xf,0x51,0x6f, 0xf,0x51,0x70, 0xf,0x51,0x72, - 0xf,0x51,0x75, 0xf,0x51,0x77, 0x4,0x4d,0x23, 0x7,0x27,0x7a, - 0x5,0x50,0x44, 0x7,0x27,0x7e, 0x7,0x27,0x75, 0x7,0x27,0x68, - 0xf,0x51,0x71, 0xf,0x51,0x61, 0xf,0x51,0x6b, 0x5,0x50,0x36, - 0x7,0x27,0x57, 0x5,0x50,0x47, 0x5,0x50,0x3c, 0x6,0x61,0x34, - 0x7,0x42,0x2e, 0xf,0x4c,0x24, 0x7,0x32,0x51, 0x4,0x53,0x2d, - 0x7,0x32,0x32, 0x4,0x53,0x2a, 0x4,0x53,0x34, 0x7,0x32,0x53, - 0x5,0x57,0x49, 0x4,0x53,0x2b, 0x5,0x57,0x5d, 0x7,0x32,0x43, - 0x5,0x57,0x54, 0x4,0x52,0x71, 0x4,0x53,0x30, 0x5,0x57,0x51, - 0x5,0x57,0x5b, 0x7,0x32,0x3c, 0x4,0x52,0x75, 0x5,0x57,0x5a, - 0x5,0x57,0x4b, 0x5,0x57,0x5f, 0x7,0x32,0x33, 0x5,0x57,0x61, - 0x4,0x53,0x2f, 0x7,0x32,0x28, 0x5,0x57,0x4d, 0x5,0x57,0x4f, - 0x7,0x32,0x4c, 0x5,0x57,0x55, 0x5,0x57,0x62, 0x7,0x32,0x3d, - 0x7,0x32,0x3b, 0x5,0x50,0x4c, 0x4,0x52,0x70, 0x5,0x57,0x48, - 0x5,0x57,0x5e, 0x7,0x32,0x45, 0x7,0x32,0x4b, 0x7,0x32,0x41, - 0x5,0x57,0x64, 0x5,0x57,0x60, 0x7,0x28,0x25, 0x7,0x27,0x7b, - 0x7,0x32,0x52, 0x5,0x5d,0x7a, 0x4,0x53,0x26, 0x7,0x32,0x2e, - 0x4,0x53,0x29, 0x7,0x32,0x36, 0x5,0x57,0x53, 0x4,0x53,0x28, - 0x4,0x52,0x74, 0x5,0x50,0x38, 0x7,0x32,0x2f, 0x5,0x57,0x52, - 0x7,0x32,0x38, 0x5,0x57,0x56, 0x5,0x57,0x4c, 0x7,0x32,0x2d, - 0x7,0x32,0x57, 0x7,0x32,0x4e, 0x4,0x53,0x2e, 0x5,0x57,0x5c, - 0x7,0x32,0x2a, 0x4,0x52,0x78, 0x7,0x32,0x39, 0x7,0x42,0x2f, - 0x7,0x32,0x2b, 0x7,0x32,0x55, 0x4,0x53,0x32, 0x7,0x32,0x42, - 0x7,0x32,0x35, 0x7,0x32,0x3f, 0xf,0x57,0x3e, 0xf,0x57,0x3f, - 0xf,0x57,0x40, 0xf,0x57,0x41, 0x5,0x57,0x4a, 0x5,0x57,0x50, - 0x5,0x57,0x57, 0x7,0x32,0x2c, 0x7,0x32,0x34, 0x7,0x32,0x37, - 0x7,0x32,0x3e, 0x7,0x32,0x40, 0x7,0x32,0x47, 0x7,0x32,0x49, - 0x7,0x32,0x4d, 0x7,0x32,0x4f, 0x7,0x32,0x54, 0x7,0x32,0x59, - 0x7,0x32,0x5a, 0xf,0x57,0x37, 0xf,0x57,0x38, 0xf,0x57,0x39, - 0xf,0x57,0x3a, 0xf,0x57,0x3b, 0xf,0x57,0x3c, 0xf,0x57,0x3d, - 0xf,0x57,0x42, 0xf,0x57,0x43, 0xf,0x57,0x44, 0xf,0x57,0x49, - 0xf,0x57,0x4c, 0xf,0x57,0x4d, 0xf,0x57,0x4e, 0xf,0x57,0x4f, - 0xf,0x57,0x50, 0xf,0x57,0x51, 0xf,0x57,0x52, 0xf,0x57,0x53, - 0xf,0x57,0x54, 0xf,0x57,0x56, 0xf,0x57,0x57, 0xf,0x57,0x58, - 0xf,0x57,0x59, 0xf,0x57,0x5a, 0xf,0x57,0x5b, 0xf,0x57,0x5c, - 0x7,0x32,0x31, 0xf,0x57,0x45, 0x4,0x52,0x7d, 0x7,0x32,0x3a, - 0x7,0x32,0x58, 0x7,0x32,0x50, 0x5,0x57,0x65, 0x5,0x57,0x4e, - 0x7,0x32,0x30, 0x7,0x32,0x29, 0x7,0x32,0x48, 0xf,0x57,0x4a, - 0x7,0x32,0x56, 0x5,0x57,0x63, 0x5,0x57,0x59, 0x7,0x32,0x46, - 0x7,0x3a,0x76, 0x4,0x58,0x3a, 0x4,0x58,0x3f, 0x7,0x3a,0x6e, - 0x7,0x42,0x3b, 0x7,0x3a,0x78, 0x4,0x58,0x48, 0x4,0x58,0x49, - 0x5,0x57,0x66, 0x5,0x5d,0x75, 0x5,0x5d,0x7d, 0x5,0x5d,0x73, - 0x7,0x3b,0x2b, 0x7,0x3b,0x2f, 0x5,0x5d,0x6f, 0x4,0x58,0x4a, - 0x4,0x58,0x37, 0x7,0x3a,0x7b, 0x4,0x58,0x45, 0x5,0x5e,0x21, - 0x7,0x3a,0x7c, 0x7,0x3b,0x23, 0x7,0x3b,0x33, 0x5,0x5d,0x7e, - 0x5,0x5e,0x25, 0x7,0x3b,0x31, 0x5,0x5e,0x22, 0x5,0x5d,0x6e, - 0x5,0x5d,0x78, 0x7,0x3a,0x7e, 0x5,0x5d,0x7c, 0x7,0x3a,0x73, - 0x7,0x3b,0x24, 0x7,0x3b,0x2a, 0x5,0x5d,0x7b, 0x4,0x58,0x4b, - 0x5,0x5d,0x6d, 0x5,0x5e,0x23, 0x4,0x58,0x41, 0x7,0x3b,0x30, - 0x5,0x5d,0x77, 0x4,0x58,0x46, 0x5,0x5d,0x71, 0x5,0x5e,0x24, - 0x7,0x3b,0x25, 0x5,0x5d,0x76, 0x7,0x3a,0x70, 0x7,0x3a,0x75, - 0x7,0x42,0x39, 0x7,0x3a,0x6b, 0x7,0x3a,0x6c, 0x7,0x3b,0x35, - 0x7,0x3a,0x7d, 0x4,0x58,0x47, 0x7,0x3b,0x2e, 0x7,0x3a,0x72, - 0x7,0x3a,0x77, 0x7,0x49,0x34, 0x7,0x3a,0x71, 0x7,0x3b,0x22, - 0x7,0x3b,0x29, 0x7,0x32,0x4a, 0x7,0x3a,0x79, 0x7,0x3b,0x21, - 0x7,0x3b,0x37, 0x5,0x5d,0x74, 0x5,0x50,0x4d, 0x4,0x58,0x43, - 0x7,0x49,0x35, 0x5,0x5d,0x70, 0x5,0x5d,0x72, 0x7,0x3a,0x6d, - 0x7,0x3b,0x27, 0x7,0x3b,0x28, 0x7,0x3b,0x2c, 0x7,0x3b,0x34, - 0xf,0x5c,0x3a, 0xf,0x5c,0x3b, 0xf,0x5c,0x3c, 0xf,0x5c,0x3d, - 0xf,0x5c,0x3e, 0xf,0x5c,0x40, 0xf,0x5c,0x41, 0xf,0x5c,0x42, - 0xf,0x5c,0x43, 0xf,0x5c,0x44, 0xf,0x5c,0x45, 0xf,0x5c,0x46, - 0xf,0x5c,0x47, 0xf,0x5c,0x49, 0xf,0x5c,0x4a, 0xf,0x5c,0x4b, - 0xf,0x5c,0x4c, 0xf,0x5c,0x4f, 0xf,0x5c,0x50, 0x4,0x58,0x39, - 0x7,0x3a,0x7a, 0x7,0x3b,0x2d, 0x7,0x3b,0x36, 0x7,0x3a,0x74, - 0xf,0x5c,0x48, 0xf,0x5c,0x3f, 0xf,0x5c,0x4e, 0xf,0x57,0x55, - 0xf,0x63,0x5b, 0x5,0x64,0x2c, 0x7,0x42,0x4b, 0x4,0x5d,0x24, - 0x7,0x42,0x4c, 0x5,0x64,0x22, 0x4,0x5d,0x25, 0x5,0x5e,0x26, - 0x5,0x64,0x2f, 0x7,0x42,0x48, 0x5,0x64,0x25, 0x5,0x63,0x7e, - 0x7,0x42,0x30, 0x5,0x64,0x21, 0x5,0x64,0x29, 0x5,0x64,0x36, - 0x5,0x64,0x39, 0x7,0x42,0x36, 0x5,0x64,0x33, 0x7,0x42,0x46, - 0x4,0x5d,0x22, 0x5,0x5e,0x27, 0x5,0x64,0x38, 0x5,0x64,0x26, - 0x5,0x64,0x30, 0x7,0x42,0x3d, 0x5,0x64,0x24, 0x5,0x64,0x2e, - 0x7,0x42,0x4d, 0x4,0x5d,0x30, 0x5,0x64,0x31, 0x4,0x5d,0x2e, - 0x4,0x5d,0x26, 0x4,0x5d,0x2a, 0x5,0x64,0x34, 0x5,0x64,0x32, - 0x7,0x42,0x3e, 0x7,0x4f,0x46, 0x7,0x42,0x3a, 0x7,0x42,0x37, - 0x4,0x5d,0x2f, 0x7,0x49,0x44, 0x5,0x64,0x2b, 0x7,0x42,0x33, - 0x7,0x42,0x45, 0x7,0x42,0x49, 0x4,0x5d,0x2d, 0x7,0x3b,0x26, - 0x7,0x42,0x32, 0x7,0x42,0x34, 0x7,0x42,0x35, 0x7,0x42,0x3f, - 0x7,0x42,0x42, 0x7,0x42,0x44, 0x7,0x42,0x4a, 0x7,0x42,0x4e, - 0x7,0x42,0x4f, 0xf,0x60,0x48, 0xf,0x60,0x49, 0xf,0x60,0x4a, - 0xf,0x60,0x4b, 0xf,0x60,0x4c, 0xf,0x60,0x4f, 0xf,0x60,0x50, - 0xf,0x60,0x51, 0xf,0x60,0x52, 0xf,0x60,0x53, 0xf,0x60,0x54, - 0xf,0x60,0x55, 0xf,0x60,0x56, 0xf,0x60,0x57, 0xf,0x60,0x58, - 0xf,0x60,0x59, 0xf,0x60,0x5a, 0xf,0x60,0x5b, 0xf,0x60,0x5c, - 0xf,0x60,0x5e, 0xf,0x60,0x5f, 0x4,0x5d,0x27, 0x7,0x42,0x40, - 0x5,0x64,0x27, 0x7,0x42,0x41, 0x7,0x49,0x33, 0x5,0x64,0x35, - 0x5,0x64,0x2a, 0x4,0x5d,0x29, 0x7,0x42,0x47, 0x5,0x64,0x23, - 0x5,0x64,0x28, 0x5,0x64,0x37, 0x7,0x42,0x43, 0x7,0x42,0x31, - 0x5,0x69,0x3e, 0x5,0x69,0x2f, 0x7,0x4f,0x5d, 0x5,0x69,0x30, - 0x5,0x69,0x3a, 0x5,0x69,0x36, 0x4,0x60,0x7d, 0x4,0x60,0x79, - 0x5,0x69,0x3f, 0x5,0x69,0x37, 0x7,0x49,0x38, 0x7,0x49,0x45, - 0x5,0x69,0x3b, 0x5,0x69,0x35, 0x4,0x60,0x7c, 0x5,0x69,0x2e, - 0x5,0x6d,0x42, 0x7,0x49,0x43, 0x5,0x69,0x38, 0x7,0x49,0x46, - 0x5,0x69,0x39, 0x7,0x49,0x41, 0x7,0x49,0x54, 0x7,0x49,0x51, - 0x7,0x49,0x3c, 0x5,0x69,0x33, 0x5,0x69,0x3d, 0x7,0x49,0x4b, - 0x7,0x49,0x4e, 0x7,0x49,0x3e, 0x7,0x49,0x3d, 0x7,0x49,0x42, - 0x7,0x49,0x47, 0x7,0x4f,0x54, 0x7,0x49,0x4d, 0x7,0x49,0x39, - 0x7,0x49,0x4c, 0x7,0x49,0x4a, 0x7,0x4f,0x47, 0x5,0x69,0x34, - 0x5,0x69,0x32, 0x4,0x60,0x76, 0x5,0x69,0x3c, 0x7,0x49,0x49, - 0x7,0x49,0x40, 0x7,0x49,0x3f, 0x7,0x49,0x36, 0x7,0x49,0x37, - 0x7,0x49,0x3a, 0x7,0x49,0x48, 0x7,0x49,0x50, 0x7,0x49,0x52, - 0xf,0x63,0x51, 0xf,0x63,0x52, 0xf,0x63,0x54, 0xf,0x63,0x55, - 0xf,0x63,0x56, 0xf,0x63,0x57, 0xf,0x63,0x58, 0xf,0x63,0x59, - 0xf,0x63,0x5a, 0xf,0x63,0x5c, 0xf,0x63,0x5d, 0xf,0x63,0x5e, - 0xf,0x63,0x5f, 0xf,0x63,0x60, 0xf,0x63,0x61, 0xf,0x63,0x62, - 0xf,0x63,0x63, 0xf,0x63,0x64, 0xf,0x63,0x65, 0xf,0x63,0x66, - 0xf,0x63,0x67, 0xf,0x63,0x68, 0xf,0x63,0x69, 0x7,0x49,0x4f, - 0x7,0x4f,0x5e, 0x7,0x4f,0x55, 0x7,0x4f,0x4e, 0x5,0x6d,0x40, - 0x5,0x6d,0x47, 0x7,0x4f,0x61, 0x5,0x6d,0x41, 0x5,0x6d,0x44, - 0x4,0x64,0x39, 0x7,0x4f,0x58, 0x5,0x6d,0x46, 0x4,0x64,0x35, - 0x5,0x6d,0x3f, 0x5,0x70,0x7e, 0x7,0x4f,0x5f, 0x5,0x6d,0x3b, - 0x7,0x4f,0x51, 0x7,0x4f,0x50, 0x7,0x4f,0x4c, 0x5,0x6d,0x3e, - 0x5,0x6d,0x45, 0x7,0x4f,0x4d, 0x4,0x64,0x31, 0x7,0x4f,0x67, - 0x5,0x6d,0x3c, 0x7,0x4f,0x4b, 0x7,0x4f,0x53, 0x7,0x4f,0x62, - 0x7,0x4f,0x5b, 0x7,0x49,0x3b, 0x7,0x4f,0x65, 0x5,0x6d,0x43, - 0x4,0x64,0x2e, 0x7,0x4f,0x59, 0x5,0x6d,0x3d, 0x7,0x4f,0x66, - 0x7,0x4f,0x5a, 0x5,0x69,0x31, 0x7,0x54,0x67, 0x7,0x58,0x69, - 0x7,0x4f,0x49, 0x5,0x6d,0x3a, 0x5,0x6d,0x48, 0x7,0x4f,0x52, - 0x7,0x4f,0x56, 0x7,0x4f,0x57, 0x7,0x4f,0x5c, 0x7,0x4f,0x63, - 0x7,0x4f,0x64, 0xf,0x65,0x79, 0xf,0x65,0x7a, 0xf,0x65,0x7b, - 0xf,0x65,0x7c, 0xf,0x65,0x7d, 0xf,0x65,0x7e, 0xf,0x66,0x21, - 0xf,0x66,0x22, 0xf,0x66,0x23, 0xf,0x66,0x24, 0xf,0x66,0x25, - 0xf,0x66,0x26, 0xf,0x66,0x27, 0xf,0x66,0x28, 0xf,0x66,0x29, - 0xf,0x66,0x2a, 0xf,0x66,0x2b, 0xf,0x66,0x2c, 0x7,0x4f,0x4a, - 0x7,0x4f,0x48, 0x7,0x4f,0x60, 0x7,0x54,0x63, 0x4,0x69,0x35, - 0x5,0x71,0x28, 0x7,0x54,0x66, 0x7,0x54,0x5f, 0x5,0x71,0x24, - 0x4,0x67,0x2c, 0x4,0x67,0x2a, 0x7,0x54,0x59, 0x4,0x67,0x2e, - 0x5,0x71,0x22, 0x7,0x54,0x64, 0x5,0x71,0x25, 0x7,0x54,0x65, - 0x4,0x67,0x29, 0x5,0x6d,0x49, 0x5,0x71,0x27, 0x7,0x54,0x5b, - 0x7,0x54,0x53, 0x5,0x71,0x26, 0x7,0x54,0x62, 0x7,0x54,0x57, - 0x7,0x54,0x55, 0x7,0x54,0x60, 0x4,0x67,0x2d, 0x5,0x71,0x23, - 0x5,0x71,0x29, 0x5,0x71,0x2a, 0x7,0x54,0x54, 0x7,0x54,0x5c, - 0x7,0x4f,0x4f, 0x7,0x54,0x5a, 0x7,0x58,0x76, 0x5,0x71,0x21, - 0x7,0x54,0x56, 0x7,0x54,0x5d, 0x7,0x54,0x61, 0xf,0x68,0x38, - 0xf,0x68,0x3a, 0xf,0x68,0x3b, 0xf,0x68,0x3c, 0xf,0x68,0x3d, - 0xf,0x68,0x3e, 0xf,0x68,0x3f, 0xf,0x68,0x41, 0xf,0x68,0x42, - 0xf,0x68,0x43, 0xf,0x68,0x44, 0xf,0x68,0x40, 0x7,0x54,0x58, - 0x5,0x74,0x24, 0x4,0x69,0x36, 0x5,0x74,0x25, 0x5,0x74,0x27, - 0x5,0x74,0x28, 0x7,0x58,0x70, 0x5,0x74,0x29, 0x4,0x69,0x3b, - 0x4,0x69,0x3a, 0x7,0x58,0x77, 0x7,0x58,0x75, 0x7,0x58,0x6d, - 0x7,0x5c,0x53, 0x5,0x74,0x23, 0x5,0x74,0x26, 0x7,0x58,0x6f, - 0x4,0x69,0x38, 0x4,0x69,0x39, 0x7,0x58,0x6e, 0x4,0x69,0x34, - 0x7,0x58,0x73, 0x7,0x58,0x6b, 0x7,0x58,0x78, 0x7,0x58,0x6a, - 0x7,0x58,0x6c, 0x7,0x58,0x71, 0x7,0x58,0x74, 0xf,0x69,0x68, - 0xf,0x69,0x6b, 0xf,0x69,0x6c, 0x7,0x5c,0x4f, 0x7,0x5c,0x5a, - 0x4,0x6a,0x75, 0x5,0x76,0x40, 0x4,0x6a,0x74, 0x5,0x76,0x3f, - 0x4,0x6a,0x71, 0x4,0x6a,0x73, 0x4,0x6a,0x72, 0x4,0x6a,0x70, - 0x5,0x76,0x43, 0x7,0x5c,0x51, 0x7,0x5c,0x5b, 0x5,0x76,0x42, - 0x5,0x79,0x40, 0x7,0x5c,0x55, 0x5,0x76,0x44, 0x7,0x5c,0x57, - 0x7,0x5c,0x58, 0x7,0x5c,0x4d, 0x7,0x5c,0x50, 0x5,0x76,0x41, - 0x7,0x5c,0x56, 0x7,0x5c,0x54, 0x7,0x5c,0x52, 0x7,0x5c,0x59, - 0xf,0x6a,0x6d, 0xf,0x6a,0x6e, 0xf,0x6a,0x6f, 0x7,0x5c,0x4e, - 0xf,0x69,0x6a, 0x5,0x78,0x23, 0x5,0x78,0x22, 0x5,0x78,0x21, - 0x7,0x5f,0x40, 0x5,0x78,0x24, 0x7,0x5f,0x42, 0x7,0x5f,0x46, - 0x7,0x5f,0x43, 0x7,0x5f,0x44, 0x7,0x5f,0x49, 0x7,0x5f,0x41, - 0x7,0x5f,0x47, 0x5,0x79,0x42, 0xf,0x6b,0x60, 0xf,0x6b,0x61, - 0xf,0x6b,0x63, 0x7,0x5f,0x45, 0x7,0x5f,0x48, 0x5,0x79,0x43, - 0x7,0x62,0x55, 0x5,0x79,0x41, 0x7,0x62,0x53, 0x7,0x61,0x3e, - 0x7,0x61,0x3d, 0x7,0x61,0x3c, 0xf,0x6c,0x38, 0xf,0x6c,0x39, - 0x7,0x61,0x3f, 0x5,0x7a,0x35, 0x5,0x7a,0x36, 0x7,0x62,0x59, - 0x7,0x62,0x57, 0x7,0x62,0x56, 0x7,0x62,0x58, 0x7,0x62,0x54, - 0xf,0x6c,0x51, 0x7,0x62,0x48, 0x4,0x6d,0x7a, 0x7,0x63,0x68, - 0x5,0x7a,0x72, 0x4,0x6d,0x5f, 0x4,0x6d,0x7c, 0xf,0x6c,0x6b, - 0xf,0x6c,0x6d, 0x5,0x7b,0x46, 0x4,0x6e,0x35, 0x7,0x64,0x58, - 0x7,0x64,0x59, 0x5,0x7c,0x49, 0x7,0x65,0x40, 0x5,0x7b,0x66, - 0x7,0x65,0x60, 0x7,0x65,0x76, 0x5,0x7c,0x4f, 0x5,0x7c,0x3d, - 0x7,0x65,0x5f, 0xf,0x28,0x65, 0x4,0x2b,0x3f, 0x6,0x34,0x49, - 0x6,0x34,0x48, 0xf,0x32,0x4e, 0x5,0x35,0x36, 0x5,0x35,0x34, - 0x4,0x34,0x77, 0x4,0x34,0x76, 0x6,0x44,0x41, 0x4,0x34,0x78, - 0x6,0x44,0x42, 0x6,0x44,0x40, 0x6,0x44,0x3f, 0x6,0x3b,0x63, - 0x6,0x4e,0x3c, 0x5,0x3b,0x71, 0x6,0x4e,0x3d, 0xf,0x3f,0x22, - 0xf,0x3f,0x23, 0xf,0x3f,0x24, 0x5,0x42,0x55, 0x5,0x42,0x51, - 0x5,0x42,0x52, 0x6,0x57,0x6b, 0x6,0x57,0x6a, 0x6,0x57,0x69, - 0x5,0x49,0x4f, 0x6,0x61,0x62, 0x6,0x61,0x66, 0x4,0x46,0x6f, - 0x6,0x61,0x65, 0x6,0x61,0x67, 0x6,0x61,0x63, 0x6,0x61,0x64, - 0x5,0x49,0x50, 0xf,0x4c,0x2b, 0xf,0x4c,0x2c, 0x4,0x46,0x6e, - 0x7,0x28,0x29, 0x7,0x28,0x27, 0x7,0x32,0x5f, 0x5,0x50,0x4e, - 0x7,0x28,0x26, 0x7,0x28,0x28, 0xf,0x51,0x79, 0x7,0x26,0x29, - 0x5,0x57,0x6a, 0x5,0x57,0x6b, 0x5,0x57,0x68, 0x5,0x57,0x69, - 0x4,0x53,0x35, 0x5,0x57,0x67, 0x7,0x32,0x60, 0x7,0x32,0x5c, - 0x7,0x32,0x5d, 0x4,0x53,0x38, 0x4,0x53,0x37, 0x5,0x57,0x6d, - 0x7,0x32,0x5e, 0xf,0x57,0x5d, 0xf,0x57,0x5e, 0xf,0x57,0x5f, - 0x5,0x57,0x6c, 0x7,0x32,0x5b, 0x4,0x58,0x4c, 0x7,0x3b,0x39, - 0xf,0x5c,0x51, 0xf,0x5c,0x52, 0xf,0x5c,0x53, 0x7,0x42,0x51, - 0x5,0x64,0x3d, 0x4,0x5d,0x33, 0x7,0x42,0x50, 0x4,0x5d,0x31, - 0x7,0x42,0x52, 0x5,0x64,0x3c, 0xf,0x60,0x60, 0x7,0x49,0x56, - 0x7,0x49,0x55, 0x4,0x60,0x7e, 0x7,0x49,0x57, 0x7,0x4f,0x69, - 0x5,0x6d,0x4a, 0x7,0x4f,0x6a, 0x7,0x4c,0x26, 0x5,0x71,0x2c, - 0x7,0x4f,0x68, 0x5,0x71,0x2b, 0x5,0x70,0x4d, 0x7,0x54,0x6a, - 0x7,0x54,0x69, 0x5,0x74,0x2a, 0x7,0x5c,0x24, 0x4,0x6e,0x38, - 0x5,0x24,0x75, 0x6,0x29,0x29, 0x4,0x28,0x22, 0x6,0x2e,0x25, - 0xf,0x28,0x66, 0xf,0x28,0x67, 0xf,0x28,0x69, 0xf,0x28,0x6a, - 0x4,0x2b,0x43, 0x6,0x34,0x4b, 0x4,0x2b,0x40, 0x4,0x2b,0x42, - 0x6,0x34,0x4a, 0x5,0x2b,0x40, 0x6,0x34,0x4d, 0x6,0x34,0x4c, - 0x6,0x34,0x4e, 0xf,0x2d,0x3d, 0xf,0x2d,0x3f, 0xf,0x2d,0x42, - 0xf,0x2d,0x43, 0xf,0x2d,0x44, 0xf,0x2d,0x41, 0x4,0x2b,0x41, - 0x5,0x30,0x30, 0x6,0x3b,0x68, 0x5,0x30,0x2c, 0x5,0x30,0x33, - 0x6,0x3b,0x67, 0x5,0x30,0x2d, 0x5,0x30,0x32, 0x6,0x3b,0x66, - 0x4,0x2f,0x6c, 0x4,0x2f,0x6a, 0x4,0x2f,0x6e, 0x5,0x30,0x2e, - 0x6,0x3b,0x70, 0x5,0x30,0x29, 0x6,0x3b,0x6b, 0x5,0x30,0x31, - 0x5,0x30,0x28, 0x6,0x3b,0x6a, 0x5,0x30,0x2f, 0x5,0x30,0x34, - 0x6,0x3b,0x6e, 0x6,0x3b,0x64, 0x5,0x30,0x2b, 0x6,0x3b,0x65, - 0xf,0x32,0x4f, 0x6,0x3b,0x6c, 0x6,0x3b,0x6d, 0x5,0x30,0x2a, - 0x6,0x3b,0x6f, 0x5,0x35,0x37, 0x4,0x34,0x7d, 0x6,0x44,0x45, - 0x5,0x35,0x38, 0x5,0x35,0x39, 0x5,0x35,0x3a, 0x5,0x35,0x40, - 0x4,0x35,0x22, 0xf,0x38,0x3d, 0x4,0x35,0x23, 0x6,0x44,0x4c, - 0x5,0x35,0x3c, 0x4,0x35,0x21, 0x5,0x35,0x3d, 0x6,0x44,0x46, - 0x5,0x35,0x41, 0x6,0x44,0x49, 0x4,0x35,0x24, 0x4,0x34,0x7e, - 0x6,0x44,0x47, 0x6,0x44,0x4a, 0x6,0x44,0x44, 0x6,0x44,0x4b, - 0x6,0x44,0x4d, 0xf,0x38,0x36, 0xf,0x38,0x37, 0xf,0x38,0x38, - 0xf,0x38,0x39, 0xf,0x38,0x3b, 0xf,0x38,0x3c, 0xf,0x38,0x3e, - 0xf,0x38,0x3f, 0xf,0x38,0x40, 0x5,0x35,0x3e, 0x6,0x44,0x4e, - 0x4,0x35,0x25, 0x6,0x44,0x43, 0x5,0x35,0x3f, 0x5,0x35,0x3b, - 0x5,0x3b,0x73, 0x6,0x4e,0x40, 0xf,0x3f,0x28, 0x4,0x3a,0x73, - 0x6,0x4e,0x48, 0x5,0x3c,0x28, 0x5,0x3b,0x78, 0x5,0x3b,0x75, - 0x5,0x3b,0x77, 0x5,0x3b,0x7a, 0x5,0x3c,0x23, 0x5,0x3b,0x7d, - 0x6,0x4e,0x49, 0x6,0x4e,0x3e, 0x6,0x4e,0x43, 0x5,0x3b,0x76, - 0x5,0x3c,0x27, 0x6,0x4e,0x42, 0x6,0x4e,0x4b, 0x6,0x4e,0x4a, - 0x5,0x3b,0x7c, 0x6,0x4e,0x3f, 0x5,0x3b,0x79, 0x5,0x3c,0x21, - 0x6,0x4e,0x4d, 0x6,0x4e,0x44, 0x6,0x4e,0x45, 0x6,0x57,0x6e, - 0x5,0x3c,0x25, 0x5,0x3b,0x7e, 0x6,0x57,0x78, 0x5,0x3c,0x24, - 0x6,0x4e,0x4c, 0x6,0x4e,0x47, 0x5,0x3c,0x22, 0x5,0x3b,0x72, - 0x6,0x4e,0x41, 0xf,0x3f,0x25, 0xf,0x3f,0x26, 0xf,0x3f,0x27, - 0xf,0x3f,0x29, 0x4,0x3a,0x77, 0x6,0x57,0x70, 0x6,0x57,0x6f, - 0x4,0x40,0x5a, 0x4,0x40,0x5c, 0x6,0x57,0x74, 0x4,0x40,0x54, - 0x5,0x42,0x58, 0x5,0x42,0x5b, 0x5,0x42,0x56, 0x4,0x40,0x51, - 0x4,0x40,0x53, 0x5,0x42,0x5c, 0x5,0x42,0x5e, 0x5,0x42,0x5a, - 0x5,0x42,0x57, 0x4,0x40,0x5e, 0x4,0x40,0x50, 0x6,0x57,0x72, - 0x6,0x57,0x73, 0x6,0x57,0x6c, 0x6,0x57,0x6d, 0x6,0x61,0x68, - 0x6,0x57,0x71, 0x6,0x57,0x75, 0x5,0x42,0x59, 0xf,0x45,0x32, - 0xf,0x45,0x33, 0xf,0x45,0x34, 0xf,0x45,0x35, 0xf,0x45,0x36, - 0xf,0x45,0x37, 0xf,0x45,0x38, 0xf,0x45,0x39, 0x6,0x57,0x76, - 0x7,0x49,0x6b, 0x6,0x57,0x77, 0x6,0x57,0x79, 0x5,0x49,0x51, - 0x5,0x49,0x56, 0x5,0x49,0x5b, 0x5,0x49,0x57, 0x5,0x49,0x5c, - 0x4,0x47,0x21, 0x5,0x49,0x55, 0x4,0x46,0x7d, 0x6,0x62,0x23, - 0x5,0x49,0x5f, 0x4,0x46,0x77, 0x5,0x49,0x59, 0x4,0x46,0x74, - 0x6,0x61,0x76, 0x6,0x61,0x6a, 0x6,0x61,0x75, 0x4,0x47,0x22, - 0x5,0x49,0x5e, 0x6,0x61,0x6b, 0x6,0x61,0x71, 0x5,0x49,0x54, - 0x6,0x61,0x7c, 0x5,0x49,0x5d, 0x5,0x49,0x58, 0x6,0x61,0x7b, - 0x6,0x62,0x21, 0x5,0x49,0x60, 0x6,0x61,0x74, 0x6,0x61,0x7d, - 0x6,0x61,0x6d, 0x5,0x49,0x61, 0x5,0x49,0x62, 0x6,0x61,0x72, - 0x6,0x62,0x22, 0x5,0x49,0x5a, 0x6,0x61,0x6c, 0x6,0x61,0x79, - 0x6,0x61,0x7a, 0x6,0x61,0x70, 0x5,0x49,0x52, 0x6,0x61,0x6e, - 0x5,0x49,0x53, 0x6,0x61,0x73, 0xf,0x4c,0x2d, 0xf,0x4c,0x2e, - 0xf,0x4c,0x30, 0xf,0x4c,0x31, 0xf,0x4c,0x32, 0x6,0x61,0x78, - 0x4,0x40,0x58, 0x6,0x61,0x7e, 0x6,0x61,0x6f, 0x4,0x4d,0x2d, - 0x7,0x28,0x43, 0x5,0x50,0x53, 0x4,0x4d,0x2e, 0x4,0x4d,0x2b, - 0x7,0x28,0x38, 0x4,0x4d,0x34, 0x5,0x50,0x5f, 0x7,0x28,0x37, - 0x7,0x28,0x2c, 0x5,0x50,0x51, 0x7,0x28,0x2b, 0x7,0x28,0x35, - 0x7,0x28,0x3f, 0x5,0x50,0x57, 0x4,0x4d,0x32, 0x4,0x4d,0x2a, - 0x7,0x28,0x40, 0x7,0x28,0x34, 0x5,0x50,0x56, 0x7,0x28,0x3b, - 0x7,0x28,0x31, 0x7,0x28,0x3e, 0x5,0x57,0x6e, 0x4,0x4d,0x2c, - 0x4,0x4d,0x29, 0x5,0x50,0x5c, 0x5,0x50,0x5a, 0x5,0x50,0x50, - 0x5,0x50,0x59, 0x5,0x50,0x58, 0x7,0x28,0x2a, 0x5,0x50,0x5b, - 0x4,0x46,0x7a, 0x5,0x50,0x52, 0x5,0x50,0x5e, 0x5,0x50,0x5d, - 0x4,0x4d,0x35, 0x7,0x28,0x46, 0x7,0x28,0x30, 0x7,0x28,0x2d, - 0x7,0x28,0x44, 0x7,0x28,0x39, 0x7,0x28,0x45, 0x7,0x28,0x3c, - 0x7,0x28,0x2f, 0x6,0x61,0x77, 0x7,0x28,0x36, 0x7,0x28,0x3d, - 0x5,0x50,0x54, 0x4,0x4d,0x27, 0x5,0x50,0x4f, 0xf,0x51,0x7a, - 0xf,0x51,0x7b, 0xf,0x51,0x7e, 0xf,0x52,0x21, 0xf,0x52,0x22, - 0xf,0x52,0x23, 0xf,0x52,0x25, 0xf,0x52,0x28, 0xf,0x52,0x29, - 0xf,0x52,0x2a, 0xf,0x52,0x2b, 0x7,0x28,0x33, 0x7,0x28,0x41, - 0x7,0x28,0x3a, 0xf,0x52,0x27, 0x7,0x28,0x32, 0xf,0x4c,0x2f, - 0x5,0x57,0x70, 0x4,0x53,0x45, 0x5,0x57,0x76, 0x5,0x57,0x75, - 0x4,0x53,0x3a, 0x5,0x57,0x74, 0x5,0x57,0x71, 0x7,0x32,0x6e, - 0x7,0x32,0x7d, 0x5,0x57,0x77, 0x4,0x53,0x48, 0x5,0x57,0x7b, - 0x4,0x53,0x49, 0x4,0x53,0x40, 0x4,0x53,0x42, 0x5,0x57,0x7c, - 0x7,0x32,0x6d, 0x4,0x53,0x3b, 0x7,0x32,0x67, 0x4,0x53,0x3f, - 0x7,0x32,0x7c, 0x5,0x57,0x79, 0x5,0x57,0x6f, 0x5,0x58,0x21, - 0x5,0x57,0x72, 0x7,0x3b,0x3a, 0x5,0x57,0x78, 0x7,0x32,0x69, - 0x4,0x53,0x46, 0x5,0x57,0x7a, 0x7,0x32,0x70, 0x7,0x33,0x22, - 0x5,0x57,0x73, 0x7,0x32,0x64, 0x5,0x57,0x7e, 0x7,0x32,0x74, - 0x4,0x53,0x47, 0x5,0x50,0x60, 0x7,0x32,0x6b, 0x7,0x32,0x65, - 0x5,0x57,0x7d, 0x7,0x32,0x76, 0x4,0x53,0x43, 0x7,0x32,0x7b, - 0x7,0x33,0x24, 0x7,0x32,0x62, 0x7,0x32,0x77, 0x7,0x32,0x63, - 0x7,0x32,0x78, 0x7,0x32,0x6f, 0x7,0x32,0x7e, 0x7,0x32,0x72, - 0x7,0x32,0x68, 0x7,0x33,0x23, 0xf,0x57,0x60, 0xf,0x57,0x61, - 0xf,0x57,0x63, 0xf,0x57,0x64, 0xf,0x57,0x65, 0xf,0x57,0x66, - 0x7,0x32,0x79, 0x7,0x32,0x6a, 0x7,0x32,0x7a, 0x7,0x32,0x71, - 0x7,0x32,0x66, 0x7,0x32,0x6c, 0x4,0x58,0x59, 0x5,0x5e,0x29, - 0x5,0x5e,0x2c, 0x4,0x58,0x55, 0x7,0x3b,0x52, 0x7,0x3b,0x44, - 0x4,0x58,0x60, 0x4,0x58,0x5c, 0x7,0x3b,0x48, 0x7,0x3b,0x42, - 0x7,0x3b,0x55, 0x4,0x58,0x5e, 0x7,0x3b,0x46, 0x7,0x28,0x47, - 0x4,0x58,0x50, 0x5,0x5e,0x31, 0x7,0x3b,0x50, 0x7,0x3b,0x3f, - 0x4,0x58,0x5d, 0x7,0x3b,0x4f, 0x5,0x5e,0x2b, 0x5,0x5e,0x2f, - 0x7,0x3b,0x53, 0x4,0x58,0x5a, 0x7,0x3b,0x47, 0x7,0x3b,0x41, - 0x5,0x5e,0x33, 0x4,0x58,0x53, 0x7,0x3b,0x40, 0x4,0x58,0x51, - 0x7,0x3b,0x3e, 0x7,0x3b,0x54, 0x5,0x5e,0x2a, 0x7,0x3b,0x3c, - 0x7,0x3b,0x3b, 0x7,0x3b,0x49, 0x4,0x58,0x5b, 0x5,0x5e,0x2d, - 0x5,0x5e,0x2e, 0x7,0x3b,0x45, 0xf,0x5c,0x54, 0xf,0x5c,0x55, - 0xf,0x5c,0x56, 0xf,0x5c,0x57, 0xf,0x5c,0x58, 0xf,0x5c,0x59, - 0xf,0x5c,0x5a, 0xf,0x5c,0x5c, 0x7,0x3b,0x43, 0x7,0x3b,0x4b, - 0x7,0x3b,0x4e, 0x7,0x3b,0x51, 0x7,0x3b,0x3d, 0x5,0x5e,0x28, - 0x7,0x3b,0x4a, 0x7,0x3b,0x4c, 0x5,0x5e,0x30, 0x4,0x5d,0x3d, - 0x4,0x5d,0x37, 0x7,0x42,0x55, 0x7,0x42,0x61, 0x7,0x42,0x58, - 0x7,0x42,0x68, 0x5,0x64,0x43, 0x5,0x64,0x44, 0x5,0x5e,0x34, - 0x4,0x5d,0x38, 0x5,0x64,0x50, 0x7,0x42,0x59, 0x4,0x5d,0x36, - 0x5,0x64,0x45, 0x4,0x5d,0x35, 0x4,0x5d,0x3a, 0x5,0x64,0x3f, - 0x5,0x64,0x42, 0x5,0x64,0x4d, 0x4,0x5d,0x34, 0x5,0x64,0x4a, - 0x7,0x42,0x56, 0x5,0x64,0x3e, 0x5,0x64,0x41, 0x5,0x64,0x4b, - 0x7,0x42,0x57, 0x7,0x42,0x5c, 0x7,0x42,0x5b, 0x5,0x64,0x40, - 0x7,0x42,0x6f, 0x7,0x42,0x6b, 0x5,0x64,0x4f, 0x7,0x42,0x6e, - 0x5,0x64,0x49, 0x5,0x64,0x4c, 0x7,0x42,0x69, 0x5,0x64,0x46, - 0x7,0x42,0x6c, 0x5,0x64,0x47, 0x7,0x42,0x65, 0x7,0x42,0x62, - 0x7,0x42,0x5d, 0x7,0x42,0x63, 0x7,0x42,0x54, 0x7,0x42,0x5a, - 0x7,0x42,0x53, 0x7,0x42,0x5e, 0x7,0x42,0x6a, 0x7,0x42,0x66, - 0xf,0x60,0x62, 0xf,0x60,0x64, 0xf,0x60,0x65, 0xf,0x60,0x66, - 0xf,0x60,0x68, 0xf,0x60,0x69, 0xf,0x60,0x6a, 0x7,0x42,0x64, - 0x4,0x5d,0x3c, 0x7,0x42,0x67, 0xf,0x60,0x67, 0xf,0x60,0x61, - 0x5,0x64,0x4e, 0x4,0x61,0x28, 0x7,0x49,0x6a, 0x7,0x49,0x59, - 0x7,0x49,0x60, 0x7,0x49,0x6c, 0x7,0x49,0x5a, 0x7,0x49,0x69, - 0x7,0x49,0x6d, 0x4,0x61,0x23, 0x5,0x69,0x42, 0x5,0x69,0x40, - 0x7,0x49,0x62, 0x7,0x49,0x67, 0x7,0x49,0x65, 0x5,0x69,0x44, - 0x7,0x49,0x5d, 0x7,0x49,0x68, 0x7,0x49,0x64, 0x7,0x49,0x66, - 0x7,0x4f,0x6b, 0x7,0x49,0x61, 0x7,0x49,0x6e, 0x7,0x49,0x6f, - 0x7,0x49,0x63, 0x5,0x69,0x45, 0x7,0x49,0x5c, 0x7,0x49,0x5f, - 0x7,0x49,0x58, 0xf,0x63,0x6b, 0xf,0x63,0x6c, 0xf,0x63,0x6d, - 0xf,0x63,0x6f, 0xf,0x63,0x70, 0xf,0x63,0x71, 0xf,0x63,0x72, - 0xf,0x63,0x73, 0xf,0x63,0x74, 0xf,0x63,0x75, 0x7,0x49,0x5b, - 0x4,0x61,0x22, 0x4,0x61,0x27, 0x7,0x49,0x5e, 0x7,0x42,0x70, - 0x7,0x4f,0x75, 0x7,0x4f,0x7a, 0x5,0x6d,0x4d, 0x7,0x4f,0x6c, - 0x4,0x64,0x42, 0x5,0x6d,0x4c, 0x5,0x6d,0x51, 0x7,0x4f,0x78, - 0x7,0x4f,0x70, 0x5,0x6d,0x50, 0x7,0x4f,0x74, 0x5,0x6d,0x52, - 0x5,0x6d,0x53, 0x7,0x4f,0x73, 0x5,0x6d,0x4e, 0x7,0x4f,0x72, - 0x7,0x4f,0x77, 0x7,0x4f,0x71, 0x7,0x4f,0x6d, 0x5,0x6d,0x4f, - 0x7,0x4f,0x6f, 0x7,0x54,0x77, 0x7,0x4f,0x6e, 0x7,0x4f,0x7b, - 0xf,0x66,0x2d, 0xf,0x66,0x2e, 0xf,0x66,0x2f, 0xf,0x66,0x30, - 0xf,0x66,0x31, 0x7,0x4f,0x76, 0x4,0x67,0x2f, 0x4,0x67,0x34, - 0x7,0x54,0x6b, 0x7,0x54,0x70, 0x5,0x71,0x2f, 0x7,0x54,0x75, - 0x7,0x54,0x6e, 0x7,0x54,0x71, 0x5,0x71,0x2e, 0x7,0x54,0x73, - 0x5,0x71,0x2d, 0x5,0x71,0x30, 0x7,0x54,0x6c, 0x4,0x67,0x33, - 0x7,0x54,0x6f, 0x4,0x67,0x35, 0x4,0x67,0x31, 0x7,0x54,0x72, - 0x5,0x71,0x32, 0x7,0x54,0x78, 0x7,0x4f,0x79, 0x7,0x54,0x74, - 0x4,0x67,0x32, 0x7,0x54,0x79, 0x5,0x71,0x31, 0x5,0x71,0x33, - 0x7,0x54,0x76, 0xf,0x68,0x45, 0xf,0x68,0x46, 0xf,0x68,0x47, - 0xf,0x68,0x48, 0xf,0x68,0x49, 0x7,0x54,0x6d, 0x5,0x74,0x2e, - 0x4,0x69,0x3c, 0x5,0x74,0x2c, 0x5,0x74,0x2b, 0x7,0x59,0x23, - 0x7,0x58,0x7c, 0x5,0x74,0x2d, 0x5,0x74,0x31, 0x5,0x74,0x30, - 0x7,0x58,0x7a, 0x5,0x74,0x33, 0x5,0x74,0x35, 0x5,0x74,0x32, - 0x7,0x58,0x79, 0x4,0x69,0x3d, 0x7,0x59,0x26, 0x7,0x59,0x28, - 0x7,0x59,0x27, 0x7,0x58,0x7e, 0x7,0x59,0x21, 0x5,0x74,0x34, - 0x5,0x74,0x36, 0x7,0x59,0x24, 0x7,0x59,0x29, 0x5,0x74,0x2f, - 0x7,0x58,0x7d, 0x7,0x58,0x7b, 0xf,0x69,0x6d, 0xf,0x69,0x6e, - 0x5,0x76,0x46, 0x4,0x6a,0x76, 0x4,0x6a,0x77, 0x7,0x5c,0x5d, - 0x5,0x76,0x47, 0x4,0x6a,0x79, 0x7,0x5c,0x5f, 0x7,0x5c,0x5c, - 0x5,0x76,0x48, 0x7,0x5c,0x62, 0x5,0x76,0x45, 0x7,0x5f,0x4a, - 0x7,0x5c,0x60, 0x4,0x6a,0x7a, 0x7,0x5c,0x61, 0x5,0x76,0x4a, - 0x7,0x59,0x22, 0x5,0x76,0x49, 0xf,0x6a,0x70, 0xf,0x6a,0x71, - 0xf,0x6a,0x72, 0x5,0x78,0x2c, 0x7,0x5f,0x4b, 0x4,0x6b,0x7e, - 0x5,0x78,0x2b, 0x5,0x78,0x29, 0x7,0x5f,0x4c, 0x5,0x78,0x26, - 0x4,0x6c,0x22, 0x7,0x5f,0x4d, 0x5,0x78,0x2a, 0x5,0x78,0x28, - 0x4,0x6c,0x24, 0x5,0x78,0x2d, 0x5,0x78,0x27, 0x5,0x79,0x44, - 0x4,0x6c,0x7e, 0x5,0x79,0x48, 0x5,0x79,0x4a, 0x4,0x6c,0x21, - 0x7,0x61,0x40, 0x5,0x79,0x46, 0x7,0x61,0x44, 0x7,0x61,0x43, - 0x7,0x61,0x45, 0x5,0x79,0x47, 0x5,0x79,0x49, 0x7,0x61,0x41, - 0x5,0x79,0x45, 0x7,0x62,0x5d, 0x7,0x62,0x5b, 0x7,0x62,0x5e, - 0x7,0x62,0x5c, 0x7,0x62,0x5f, 0x7,0x63,0x6e, 0x7,0x63,0x6c, - 0x5,0x7a,0x73, 0x7,0x63,0x6b, 0x7,0x63,0x6f, 0x7,0x62,0x5a, - 0x7,0x63,0x69, 0x7,0x63,0x71, 0x7,0x63,0x6a, 0x7,0x63,0x70, - 0x7,0x63,0x6d, 0x7,0x64,0x5c, 0x4,0x6e,0x3a, 0x7,0x64,0x5d, - 0x5,0x7b,0x47, 0x5,0x7b,0x48, 0x7,0x64,0x5a, 0x7,0x64,0x5b, - 0x5,0x7b,0x67, 0x7,0x65,0x41, 0x7,0x65,0x42, 0x5,0x7b,0x68, - 0x4,0x6e,0x50, 0x7,0x65,0x62, 0x7,0x65,0x61, 0xf,0x6d,0x31, - 0x7,0x66,0x2b, 0x5,0x27,0x65, 0x6,0x2e,0x27, 0x6,0x2e,0x26, - 0x4,0x2b,0x44, 0x6,0x3b,0x72, 0x5,0x30,0x35, 0x6,0x3b,0x75, - 0x6,0x3b,0x74, 0xf,0x38,0x41, 0x6,0x4e,0x4e, 0x6,0x4e,0x50, - 0x5,0x42,0x5f, 0x6,0x57,0x7c, 0x6,0x57,0x7a, 0x6,0x57,0x7d, - 0x6,0x57,0x7b, 0x5,0x49,0x65, 0x5,0x49,0x63, 0x5,0x49,0x64, - 0x6,0x62,0x26, 0x6,0x62,0x24, 0x7,0x28,0x48, 0x5,0x50,0x61, - 0x7,0x28,0x49, 0x7,0x28,0x4a, 0x6,0x62,0x25, 0x5,0x58,0x23, - 0x5,0x58,0x24, 0x5,0x58,0x22, 0x7,0x33,0x25, 0x7,0x33,0x26, - 0x5,0x5e,0x37, 0x5,0x5e,0x36, 0xf,0x5c,0x5d, 0x4,0x5d,0x3e, - 0x4,0x5d,0x3f, 0x7,0x42,0x71, 0x7,0x42,0x73, 0x4,0x5d,0x40, - 0x7,0x42,0x72, 0x5,0x69,0x46, 0x5,0x6d,0x54, 0x7,0x4f,0x7c, - 0x7,0x54,0x7a, 0x7,0x59,0x2b, 0x7,0x59,0x2a, 0x7,0x5f,0x4e, - 0x7,0x65,0x63, 0x4,0x28,0x23, 0x6,0x2e,0x28, 0x4,0x28,0x24, - 0x6,0x34,0x4f, 0x6,0x34,0x50, 0x5,0x2b,0x41, 0xf,0x2d,0x45, - 0x5,0x30,0x36, 0x6,0x3b,0x77, 0x6,0x3b,0x76, 0x5,0x30,0x37, - 0x6,0x44,0x4f, 0x5,0x3c,0x29, 0x6,0x4e,0x53, 0x6,0x4e,0x52, - 0xf,0x3f,0x2a, 0xf,0x3f,0x2b, 0x6,0x4e,0x51, 0x6,0x58,0x23, - 0x6,0x58,0x21, 0x4,0x40,0x5f, 0x6,0x58,0x22, 0x6,0x57,0x7e, - 0xf,0x45,0x3a, 0x4,0x47,0x24, 0x5,0x50,0x62, 0x6,0x62,0x27, - 0x6,0x62,0x28, 0x4,0x58,0x61, 0x7,0x3b,0x56, 0xf,0x5c,0x5e, - 0x4,0x5d,0x41, 0x7,0x42,0x74, 0x7,0x49,0x70, 0x7,0x54,0x7b, - 0x7,0x5c,0x64, 0x5,0x27,0x66, 0x6,0x2e,0x29, 0x6,0x2e,0x2a, - 0x6,0x2e,0x2b, 0x5,0x2b,0x43, 0x6,0x34,0x51, 0x4,0x2b,0x45, - 0x4,0x2b,0x47, 0x5,0x2b,0x45, 0x6,0x34,0x53, 0x5,0x2b,0x44, - 0xf,0x28,0x6b, 0x6,0x34,0x52, 0x5,0x2b,0x42, 0x5,0x2b,0x46, - 0x6,0x3b,0x7d, 0x5,0x30,0x3c, 0x4,0x2f,0x71, 0x6,0x3c,0x21, - 0x6,0x3c,0x25, 0x5,0x30,0x3f, 0x6,0x3c,0x26, 0x6,0x3c,0x27, - 0x4,0x2f,0x70, 0x6,0x3b,0x79, 0x5,0x30,0x40, 0x6,0x3b,0x7b, - 0x5,0x30,0x38, 0x6,0x3c,0x22, 0x6,0x3b,0x7c, 0x6,0x3c,0x23, - 0x6,0x3b,0x7e, 0x5,0x30,0x3b, 0x6,0x3b,0x7a, 0x6,0x3b,0x78, - 0x5,0x30,0x3a, 0xf,0x32,0x50, 0x6,0x3c,0x24, 0x6,0x3c,0x28, - 0x6,0x3c,0x29, 0xf,0x2d,0x48, 0xf,0x2d,0x49, 0xf,0x32,0x52, - 0x4,0x35,0x28, 0x5,0x3c,0x32, 0x4,0x35,0x2b, 0x4,0x3a,0x7c, - 0x5,0x35,0x46, 0x4,0x35,0x29, 0x6,0x44,0x58, 0x5,0x35,0x47, - 0x5,0x35,0x4a, 0x5,0x35,0x44, 0x5,0x35,0x45, 0x5,0x35,0x43, - 0x6,0x44,0x59, 0x6,0x44,0x5a, 0x5,0x35,0x42, 0x6,0x44,0x53, - 0x6,0x44,0x55, 0x6,0x44,0x54, 0x6,0x44,0x51, 0x6,0x44,0x50, - 0x6,0x44,0x57, 0x6,0x44,0x52, 0xf,0x2d,0x46, 0xf,0x38,0x45, - 0x5,0x35,0x48, 0x6,0x44,0x56, 0x5,0x35,0x49, 0x5,0x3c,0x31, - 0x6,0x4e,0x5b, 0x6,0x4e,0x59, 0x5,0x3c,0x2e, 0x6,0x4e,0x57, - 0x5,0x3c,0x2f, 0x5,0x3c,0x33, 0x4,0x3a,0x7e, 0x6,0x4e,0x58, - 0x6,0x4e,0x54, 0x4,0x3a,0x7d, 0x6,0x4e,0x56, 0x5,0x3c,0x30, - 0x5,0x3c,0x2d, 0x5,0x3c,0x2b, 0x5,0x42,0x64, 0x5,0x3c,0x2a, - 0xf,0x38,0x44, 0xf,0x3f,0x2e, 0x6,0x4e,0x55, 0x6,0x4e,0x5a, - 0x6,0x4e,0x5c, 0x5,0x3c,0x2c, 0xf,0x38,0x43, 0x5,0x42,0x6a, - 0x5,0x42,0x62, 0x5,0x42,0x66, 0x4,0x40,0x65, 0x5,0x42,0x6b, - 0x5,0x42,0x63, 0x5,0x42,0x67, 0x4,0x40,0x63, 0x5,0x42,0x65, - 0x5,0x42,0x69, 0x6,0x58,0x2f, 0x4,0x40,0x64, 0x6,0x58,0x2a, - 0x6,0x58,0x28, 0x6,0x58,0x30, 0x5,0x42,0x68, 0x5,0x42,0x60, - 0x6,0x58,0x24, 0x6,0x58,0x27, 0x6,0x58,0x2d, 0xf,0x3f,0x2c, - 0xf,0x3f,0x2d, 0xf,0x3f,0x2f, 0xf,0x3f,0x30, 0xf,0x45,0x3b, - 0x6,0x58,0x26, 0x6,0x58,0x31, 0x6,0x58,0x25, 0x6,0x58,0x29, - 0x5,0x42,0x61, 0xf,0x45,0x3e, 0x4,0x47,0x30, 0x4,0x47,0x2c, - 0x6,0x62,0x2d, 0x6,0x62,0x33, 0x4,0x47,0x29, 0x5,0x49,0x66, - 0x5,0x49,0x69, 0x4,0x47,0x28, 0x5,0x49,0x68, 0x5,0x3c,0x34, - 0x6,0x62,0x34, 0x5,0x49,0x6a, 0x6,0x62,0x2b, 0x6,0x62,0x29, - 0x6,0x62,0x2a, 0x6,0x62,0x32, 0x6,0x62,0x31, 0x5,0x49,0x67, - 0x6,0x62,0x2f, 0x5,0x49,0x6b, 0x6,0x62,0x30, 0x6,0x62,0x2c, - 0x4,0x47,0x33, 0x6,0x62,0x35, 0x6,0x62,0x2e, 0xf,0x4c,0x34, - 0xf,0x4c,0x36, 0xf,0x4c,0x37, 0x4,0x47,0x2f, 0xf,0x45,0x3c, - 0xf,0x45,0x3f, 0x5,0x50,0x66, 0x7,0x28,0x54, 0x4,0x4d,0x41, - 0x5,0x50,0x69, 0x7,0x28,0x57, 0x4,0x47,0x32, 0x7,0x28,0x56, - 0x5,0x50,0x65, 0x4,0x4d,0x38, 0x7,0x28,0x55, 0x7,0x33,0x28, - 0x5,0x50,0x67, 0x7,0x28,0x5a, 0x7,0x28,0x4b, 0x4,0x4d,0x45, - 0x4,0x4d,0x3b, 0x4,0x4d,0x3d, 0x7,0x28,0x53, 0x4,0x4d,0x44, - 0x4,0x4d,0x43, 0x5,0x50,0x63, 0x7,0x28,0x58, 0x7,0x28,0x52, - 0x7,0x28,0x4c, 0x5,0x50,0x64, 0x7,0x28,0x4f, 0x5,0x50,0x68, - 0x7,0x28,0x51, 0x7,0x28,0x50, 0x7,0x28,0x4d, 0xf,0x4c,0x35, - 0xf,0x52,0x2d, 0x7,0x28,0x4e, 0x7,0x28,0x59, 0x5,0x58,0x2c, - 0x5,0x58,0x2b, 0x7,0x33,0x2b, 0x5,0x58,0x27, 0x5,0x58,0x2a, - 0x7,0x33,0x27, 0x4,0x53,0x51, 0x7,0x33,0x29, 0x4,0x53,0x54, - 0x7,0x3b,0x62, 0x5,0x58,0x29, 0x5,0x58,0x28, 0x7,0x33,0x2a, - 0x4,0x53,0x4e, 0x7,0x33,0x2c, 0x7,0x33,0x2f, 0x4,0x53,0x4d, - 0x5,0x58,0x25, 0x7,0x33,0x30, 0x5,0x58,0x26, 0x7,0x33,0x2e, - 0xf,0x52,0x2c, 0x7,0x33,0x2d, 0x5,0x5e,0x3e, 0x5,0x5e,0x3f, - 0x7,0x3b,0x57, 0x5,0x5e,0x3b, 0x7,0x3b,0x5d, 0x7,0x3b,0x64, - 0x4,0x58,0x66, 0x5,0x5e,0x38, 0x5,0x5e,0x39, 0x5,0x5e,0x3d, - 0x5,0x5e,0x3c, 0x7,0x3b,0x5f, 0x7,0x3b,0x5b, 0x7,0x3b,0x63, - 0x7,0x42,0x7b, 0x7,0x3b,0x5c, 0x7,0x28,0x5b, 0x7,0x3b,0x5e, - 0x7,0x3b,0x60, 0x5,0x5e,0x40, 0x7,0x3b,0x58, 0x7,0x3b,0x5a, - 0x5,0x5e,0x3a, 0xf,0x57,0x67, 0xf,0x57,0x68, 0xf,0x57,0x69, - 0xf,0x57,0x6a, 0x7,0x42,0x75, 0x4,0x5d,0x45, 0x7,0x42,0x7c, - 0x7,0x42,0x7e, 0x5,0x64,0x5b, 0x5,0x64,0x57, 0x7,0x42,0x7d, - 0x4,0x5d,0x4b, 0x5,0x64,0x54, 0x5,0x64,0x55, 0x5,0x64,0x5f, - 0x4,0x5d,0x4d, 0x4,0x5d,0x42, 0x7,0x42,0x7a, 0x5,0x64,0x53, - 0x4,0x5d,0x47, 0x4,0x5d,0x4c, 0x5,0x64,0x5d, 0x7,0x42,0x79, - 0x7,0x42,0x77, 0x5,0x64,0x51, 0x4,0x5d,0x43, 0x5,0x5e,0x42, - 0x5,0x64,0x52, 0x7,0x42,0x78, 0x7,0x43,0x23, 0x7,0x42,0x76, - 0x5,0x64,0x59, 0x5,0x64,0x5a, 0x5,0x5e,0x41, 0x5,0x64,0x5c, - 0x5,0x64,0x5e, 0x5,0x64,0x58, 0xf,0x5c,0x60, 0x7,0x49,0x76, - 0x5,0x69,0x49, 0x5,0x69,0x4a, 0x4,0x61,0x29, 0x7,0x49,0x7b, - 0x7,0x49,0x7c, 0x5,0x69,0x47, 0x5,0x69,0x48, 0x7,0x49,0x72, - 0x7,0x49,0x73, 0x7,0x49,0x75, 0x7,0x49,0x79, 0x7,0x49,0x7a, - 0x7,0x49,0x74, 0x7,0x49,0x78, 0x4,0x61,0x2b, 0x7,0x49,0x77, - 0x7,0x43,0x21, 0xf,0x60,0x6b, 0xf,0x60,0x6c, 0xf,0x63,0x76, - 0x7,0x4f,0x7d, 0x5,0x6d,0x58, 0x7,0x50,0x26, 0x5,0x6d,0x5b, - 0x5,0x71,0x34, 0x5,0x6d,0x55, 0x4,0x64,0x45, 0x7,0x50,0x23, - 0x5,0x6d,0x56, 0x7,0x50,0x22, 0x7,0x54,0x7c, 0x7,0x4f,0x7e, - 0x5,0x6d,0x59, 0x7,0x49,0x71, 0x5,0x6d,0x5a, 0x5,0x6d,0x5c, - 0x7,0x50,0x24, 0xf,0x66,0x34, 0x7,0x50,0x21, 0x5,0x6d,0x5d, - 0x7,0x55,0x22, 0x7,0x55,0x24, 0x5,0x71,0x36, 0x4,0x67,0x36, - 0x7,0x55,0x26, 0x7,0x55,0x25, 0x5,0x71,0x35, 0x7,0x54,0x7e, - 0x7,0x55,0x21, 0x4,0x67,0x37, 0x7,0x55,0x23, 0x7,0x59,0x31, - 0x7,0x54,0x7d, 0xf,0x66,0x33, 0x4,0x69,0x41, 0x7,0x59,0x2e, - 0x4,0x69,0x40, 0x4,0x69,0x3f, 0x5,0x74,0x37, 0x7,0x59,0x2c, - 0x7,0x59,0x2d, 0x7,0x59,0x30, 0x7,0x59,0x2f, 0x5,0x78,0x2e, - 0xf,0x69,0x6f, 0x7,0x5f,0x51, 0x7,0x5f,0x50, 0x7,0x5f,0x4f, - 0x5,0x79,0x4b, 0x7,0x61,0x48, 0x7,0x61,0x47, 0x7,0x61,0x46, - 0x7,0x62,0x61, 0x5,0x7a,0x37, 0x7,0x62,0x62, 0x7,0x62,0x60, - 0x7,0x64,0x5f, 0x7,0x63,0x73, 0x7,0x63,0x72, 0x7,0x64,0x5e, - 0x5,0x7b,0x7e, 0x7,0x65,0x64, 0x7,0x66,0x2c, 0x5,0x7c,0x4b, - 0x7,0x66,0x4d, 0x5,0x24,0x76, 0x6,0x2e,0x2c, 0x4,0x2b,0x48, - 0x5,0x30,0x41, 0x4,0x2f,0x74, 0x6,0x3c,0x2a, 0x6,0x44,0x5b, - 0xf,0x38,0x46, 0xf,0x3f,0x31, 0xf,0x3f,0x32, 0x6,0x58,0x32, - 0x4,0x47,0x34, 0x6,0x62,0x36, 0x6,0x62,0x37, 0x6,0x62,0x38, - 0xf,0x4c,0x38, 0xf,0x4c,0x39, 0x7,0x28,0x5c, 0xf,0x4c,0x3a, - 0xf,0x52,0x30, 0x7,0x33,0x31, 0x7,0x33,0x32, 0xf,0x52,0x2f, - 0x7,0x3b,0x65, 0xf,0x60,0x6d, 0xf,0x60,0x6e, 0x5,0x69,0x4b, - 0x7,0x50,0x27, 0x7,0x55,0x27, 0x5,0x27,0x67, 0x6,0x2e,0x2d, - 0x4,0x2f,0x77, 0x5,0x30,0x42, 0xf,0x32,0x53, 0x5,0x35,0x4d, - 0x5,0x35,0x4e, 0x6,0x44,0x5c, 0x6,0x44,0x5d, 0x5,0x35,0x50, - 0x5,0x35,0x4b, 0xf,0x38,0x47, 0xf,0x38,0x49, 0xf,0x38,0x4b, - 0x4,0x35,0x32, 0x4,0x35,0x36, 0x5,0x35,0x4c, 0x5,0x35,0x4f, - 0x6,0x4e,0x5f, 0x4,0x3b,0x25, 0x6,0x4e,0x62, 0x6,0x4e,0x61, - 0x5,0x3c,0x36, 0x6,0x4e,0x5e, 0x4,0x3b,0x24, 0x6,0x4e,0x5d, - 0x6,0x58,0x36, 0x5,0x42,0x6d, 0x5,0x42,0x6f, 0x5,0x42,0x6e, - 0x6,0x58,0x33, 0x6,0x58,0x37, 0x5,0x42,0x70, 0xf,0x45,0x40, - 0xf,0x45,0x41, 0xf,0x45,0x42, 0x6,0x58,0x35, 0x6,0x62,0x39, - 0x5,0x49,0x71, 0x5,0x49,0x6e, 0x5,0x49,0x72, 0x4,0x47,0x37, - 0x6,0x62,0x3a, 0xf,0x4c,0x3b, 0xf,0x4c,0x3c, 0x5,0x49,0x6f, - 0x6,0x62,0x3b, 0x5,0x49,0x70, 0x4,0x4d,0x49, 0x7,0x28,0x5f, - 0x5,0x50,0x6c, 0x4,0x4d,0x4b, 0x5,0x50,0x6b, 0x7,0x28,0x63, - 0x5,0x50,0x6d, 0x6,0x58,0x34, 0x7,0x28,0x62, 0x5,0x50,0x6a, - 0x5,0x50,0x6e, 0xf,0x52,0x31, 0x7,0x28,0x60, 0x7,0x28,0x5e, - 0x7,0x28,0x5d, 0x7,0x28,0x61, 0x5,0x58,0x30, 0x5,0x58,0x2f, - 0x5,0x58,0x2e, 0x4,0x53,0x57, 0x7,0x33,0x34, 0x5,0x58,0x34, - 0x7,0x3b,0x67, 0x4,0x53,0x58, 0x4,0x53,0x5e, 0x4,0x53,0x5d, - 0x5,0x58,0x31, 0x5,0x58,0x35, 0x7,0x33,0x33, 0x5,0x58,0x2d, - 0x5,0x58,0x33, 0xf,0x57,0x6b, 0xf,0x57,0x6c, 0xf,0x57,0x6d, - 0x7,0x3b,0x66, 0x5,0x64,0x60, 0x5,0x5e,0x45, 0x5,0x5e,0x44, - 0x7,0x3b,0x6a, 0x7,0x3b,0x69, 0x7,0x3b,0x6b, 0x7,0x3b,0x68, - 0xf,0x5c,0x61, 0xf,0x5c,0x62, 0x5,0x64,0x62, 0x4,0x5d,0x51, - 0x4,0x5d,0x4f, 0x7,0x43,0x24, 0x5,0x64,0x61, 0xf,0x60,0x6f, - 0xf,0x60,0x70, 0xf,0x60,0x71, 0x7,0x43,0x25, 0x7,0x49,0x7d, - 0x7,0x49,0x7e, 0x5,0x6d,0x5f, 0x7,0x50,0x29, 0x7,0x50,0x28, - 0xf,0x66,0x35, 0x5,0x6d,0x5e, 0xf,0x68,0x4b, 0xf,0x68,0x4c, - 0x7,0x55,0x28, 0x4,0x69,0x43, 0x5,0x74,0x39, 0x4,0x69,0x42, - 0xf,0x69,0x70, 0xf,0x69,0x71, 0x5,0x78,0x2f, 0x7,0x5f,0x53, - 0xf,0x6b,0x64, 0x7,0x5f,0x52, 0x5,0x79,0x4d, 0x5,0x79,0x4c, - 0x7,0x61,0x49, 0x4,0x6d,0x21, 0x5,0x7a,0x74, 0x4,0x6e,0x3b, - 0x5,0x7c,0x44, 0x7,0x66,0x54, 0x6,0x2e,0x2e, 0x6,0x2e,0x2f, - 0x6,0x34,0x54, 0x5,0x2b,0x48, 0x4,0x2f,0x78, 0x6,0x3c,0x2c, - 0x4,0x2f,0x79, 0x6,0x3c,0x2b, 0x6,0x44,0x67, 0x4,0x35,0x3b, - 0x5,0x35,0x53, 0x5,0x35,0x52, 0x6,0x44,0x5f, 0x6,0x44,0x63, - 0x4,0x35,0x37, 0x6,0x44,0x64, 0x5,0x35,0x51, 0x6,0x44,0x60, - 0xf,0x38,0x4d, 0xf,0x38,0x4e, 0xf,0x38,0x4f, 0x4,0x35,0x3c, - 0x6,0x44,0x66, 0x6,0x44,0x5e, 0x6,0x44,0x62, 0x6,0x44,0x65, - 0x6,0x44,0x61, 0x5,0x3c,0x37, 0x4,0x3b,0x26, 0x6,0x4e,0x64, - 0x6,0x4e,0x67, 0x5,0x3c,0x38, 0x6,0x4e,0x63, 0x6,0x4e,0x66, - 0x6,0x4e,0x69, 0x6,0x4e,0x65, 0x4,0x3b,0x27, 0x4,0x3b,0x28, - 0x6,0x4e,0x68, 0xf,0x3f,0x33, 0x5,0x42,0x73, 0x5,0x42,0x71, - 0x5,0x42,0x72, 0x6,0x58,0x38, 0x6,0x62,0x3e, 0x5,0x49,0x75, - 0x4,0x47,0x39, 0x6,0x62,0x40, 0x5,0x49,0x73, 0x5,0x49,0x74, - 0x6,0x62,0x3d, 0x6,0x62,0x41, 0x6,0x62,0x3c, 0x6,0x62,0x3f, - 0x7,0x28,0x66, 0x5,0x50,0x75, 0x7,0x28,0x67, 0x5,0x50,0x74, - 0x5,0x50,0x70, 0x5,0x50,0x6f, 0x4,0x4d,0x50, 0x4,0x4d,0x52, - 0x4,0x4d,0x4d, 0x7,0x28,0x69, 0x4,0x4d,0x54, 0x5,0x50,0x72, - 0x7,0x28,0x68, 0x7,0x28,0x6a, 0x5,0x50,0x71, 0x7,0x28,0x64, - 0x7,0x28,0x65, 0x5,0x50,0x73, 0x7,0x33,0x38, 0x7,0x33,0x37, - 0x4,0x53,0x5f, 0x5,0x58,0x36, 0x4,0x53,0x63, 0x5,0x58,0x39, - 0x5,0x58,0x3b, 0x4,0x53,0x60, 0x7,0x33,0x36, 0x7,0x33,0x35, - 0x5,0x58,0x37, 0x5,0x58,0x38, 0x5,0x58,0x3a, 0x7,0x33,0x39, - 0x5,0x5e,0x46, 0x7,0x3b,0x6d, 0x7,0x3b,0x73, 0x7,0x3b,0x6c, - 0x5,0x5e,0x4a, 0x5,0x5e,0x49, 0x7,0x3b,0x6e, 0x7,0x33,0x3a, - 0x5,0x5e,0x48, 0x7,0x3b,0x6f, 0x7,0x3b,0x70, 0x7,0x3b,0x71, - 0x4,0x58,0x6c, 0x7,0x3b,0x74, 0x7,0x3b,0x72, 0x5,0x5e,0x47, - 0x7,0x43,0x27, 0x7,0x43,0x28, 0x4,0x5d,0x52, 0x7,0x43,0x26, - 0x7,0x43,0x29, 0x4,0x61,0x35, 0x5,0x69,0x4c, 0x4,0x61,0x32, - 0x4,0x61,0x33, 0x7,0x4a,0x21, 0x7,0x4a,0x22, 0x7,0x4a,0x23, - 0x7,0x4a,0x24, 0x4,0x61,0x36, 0x7,0x50,0x2a, 0x5,0x71,0x37, - 0x7,0x55,0x29, 0x5,0x74,0x3a, 0x4,0x69,0x44, 0x7,0x5c,0x65, - 0x5,0x78,0x30, 0x7,0x62,0x63, 0x4,0x6d,0x60, 0x7,0x64,0x60, - 0x7,0x64,0x61, 0x5,0x7b,0x69, 0x7,0x65,0x43, 0x5,0x23,0x27, - 0x5,0x23,0x28, 0x6,0x2e,0x30, 0x6,0x3c,0x33, 0x4,0x30,0x21, - 0x4,0x2f,0x7b, 0x4,0x2f,0x7a, 0x4,0x30,0x22, 0x5,0x30,0x43, - 0x6,0x3c,0x30, 0x6,0x3c,0x31, 0x6,0x3c,0x2f, 0x6,0x3c,0x32, - 0x6,0x3c,0x2e, 0x4,0x35,0x40, 0x6,0x44,0x6a, 0x6,0x44,0x73, - 0x4,0x35,0x3e, 0x6,0x44,0x6f, 0x5,0x35,0x5c, 0x5,0x35,0x59, - 0x6,0x44,0x71, 0x4,0x35,0x42, 0x5,0x35,0x54, 0x4,0x35,0x46, - 0x6,0x44,0x79, 0x5,0x35,0x55, 0x6,0x44,0x77, 0x6,0x44,0x6b, - 0x6,0x44,0x78, 0x5,0x35,0x58, 0x6,0x44,0x74, 0x6,0x44,0x75, - 0x6,0x44,0x6e, 0x6,0x44,0x7a, 0xf,0x38,0x50, 0xf,0x38,0x51, - 0xf,0x38,0x53, 0xf,0x38,0x54, 0xf,0x38,0x55, 0xf,0x38,0x56, - 0x6,0x44,0x72, 0x6,0x44,0x69, 0x6,0x44,0x68, 0x6,0x44,0x76, - 0x6,0x44,0x6c, 0x5,0x35,0x5a, 0x6,0x4e,0x74, 0x4,0x3b,0x32, - 0x4,0x3b,0x2e, 0x5,0x3c,0x3b, 0x6,0x4e,0x6f, 0x6,0x4e,0x6e, - 0x6,0x4e,0x71, 0x6,0x4e,0x6a, 0x4,0x3b,0x2d, 0x6,0x4e,0x78, - 0x4,0x3b,0x38, 0x4,0x3b,0x39, 0x5,0x3c,0x3c, 0x6,0x4e,0x6d, - 0x6,0x4e,0x76, 0x6,0x4e,0x70, 0x6,0x4e,0x77, 0x4,0x3b,0x37, - 0x5,0x3c,0x39, 0x5,0x3c,0x3a, 0xf,0x3f,0x34, 0xf,0x3f,0x35, - 0xf,0x3f,0x36, 0xf,0x3f,0x37, 0xf,0x3f,0x38, 0xf,0x3f,0x39, - 0xf,0x3f,0x3a, 0xf,0x3f,0x3c, 0x6,0x4e,0x72, 0x6,0x4e,0x75, - 0x6,0x4e,0x6c, 0x6,0x4e,0x79, 0x6,0x4e,0x73, 0x5,0x42,0x75, - 0x4,0x40,0x68, 0x4,0x40,0x6a, 0x6,0x58,0x46, 0x5,0x42,0x76, - 0x5,0x3c,0x3d, 0x5,0x42,0x79, 0x4,0x40,0x71, 0x4,0x40,0x70, - 0x6,0x58,0x40, 0x6,0x58,0x4b, 0x6,0x58,0x3d, 0x6,0x58,0x49, - 0x4,0x40,0x69, 0x4,0x40,0x6b, 0x5,0x42,0x7c, 0x5,0x42,0x74, - 0x4,0x40,0x73, 0x6,0x58,0x43, 0x6,0x58,0x3c, 0x6,0x58,0x47, - 0x6,0x58,0x42, 0x6,0x58,0x3f, 0x4,0x40,0x72, 0x5,0x42,0x7a, - 0x6,0x58,0x48, 0x5,0x42,0x78, 0x5,0x42,0x77, 0x6,0x58,0x44, - 0xf,0x45,0x43, 0xf,0x45,0x45, 0xf,0x45,0x46, 0x6,0x58,0x4a, - 0x5,0x42,0x7b, 0x6,0x58,0x39, 0x6,0x58,0x3b, 0x4,0x40,0x6f, - 0x6,0x58,0x3a, 0x6,0x58,0x45, 0x6,0x58,0x3e, 0x6,0x62,0x4e, - 0x4,0x47,0x3f, 0x5,0x49,0x7a, 0x4,0x47,0x3b, 0x5,0x49,0x78, - 0x5,0x49,0x7b, 0x4,0x47,0x3e, 0x4,0x47,0x48, 0x6,0x62,0x42, - 0x6,0x62,0x4c, 0x4,0x47,0x41, 0x6,0x62,0x53, 0x4,0x47,0x44, - 0x6,0x62,0x4f, 0x4,0x47,0x47, 0x6,0x62,0x46, 0x5,0x49,0x79, - 0x6,0x62,0x51, 0x6,0x62,0x45, 0x4,0x47,0x49, 0x6,0x62,0x50, - 0x6,0x62,0x44, 0x5,0x49,0x76, 0x5,0x49,0x77, 0xf,0x4c,0x3d, - 0xf,0x4c,0x3e, 0xf,0x4c,0x3f, 0xf,0x4c,0x40, 0xf,0x4c,0x42, - 0xf,0x4c,0x43, 0xf,0x4c,0x44, 0xf,0x4c,0x45, 0x6,0x62,0x48, - 0x4,0x47,0x4b, 0x6,0x62,0x4a, 0x5,0x42,0x7d, 0x6,0x62,0x4b, - 0x6,0x62,0x4d, 0x6,0x62,0x43, 0x6,0x62,0x52, 0x6,0x62,0x49, - 0x7,0x29,0x21, 0x5,0x51,0x2a, 0x7,0x28,0x6b, 0x5,0x50,0x7a, - 0x5,0x51,0x22, 0x7,0x28,0x71, 0x7,0x28,0x74, 0x7,0x29,0x22, - 0x7,0x28,0x7c, 0x7,0x28,0x70, 0x5,0x51,0x27, 0x4,0x4d,0x57, - 0x5,0x51,0x29, 0x5,0x51,0x23, 0x5,0x50,0x7b, 0x5,0x50,0x7e, - 0x7,0x28,0x78, 0x5,0x51,0x24, 0x4,0x4d,0x5d, 0x5,0x51,0x26, - 0x4,0x4d,0x62, 0x7,0x29,0x24, 0x7,0x28,0x77, 0x7,0x28,0x6f, - 0x5,0x50,0x78, 0x5,0x50,0x7c, 0x7,0x28,0x7d, 0x7,0x28,0x6d, - 0x5,0x51,0x25, 0x5,0x50,0x7d, 0x5,0x50,0x77, 0x5,0x50,0x79, - 0x5,0x50,0x76, 0xf,0x52,0x32, 0xf,0x52,0x33, 0xf,0x52,0x34, - 0xf,0x52,0x35, 0xf,0x52,0x37, 0xf,0x52,0x39, 0xf,0x52,0x3a, - 0x7,0x28,0x76, 0x7,0x28,0x75, 0x7,0x28,0x6c, 0x7,0x28,0x72, - 0xf,0x52,0x38, 0x5,0x51,0x21, 0x7,0x28,0x7b, 0x7,0x28,0x6e, - 0x5,0x51,0x28, 0x7,0x29,0x23, 0x7,0x28,0x7e, 0x7,0x28,0x7a, - 0x7,0x28,0x73, 0x7,0x33,0x46, 0x5,0x58,0x40, 0x4,0x53,0x71, - 0x7,0x33,0x52, 0x4,0x53,0x68, 0x4,0x53,0x65, 0x4,0x53,0x6c, - 0x7,0x33,0x49, 0x7,0x33,0x51, 0x7,0x33,0x43, 0x5,0x58,0x3d, - 0x7,0x33,0x42, 0x5,0x58,0x3c, 0x7,0x33,0x3c, 0x4,0x53,0x70, - 0x4,0x53,0x67, 0x7,0x33,0x45, 0x4,0x53,0x6f, 0x7,0x33,0x3d, - 0x4,0x53,0x6e, 0x7,0x33,0x47, 0x7,0x33,0x4e, 0x4,0x53,0x66, - 0x7,0x33,0x50, 0x7,0x33,0x3e, 0x4,0x53,0x69, 0x7,0x33,0x3b, - 0x7,0x33,0x53, 0x7,0x33,0x40, 0x7,0x33,0x3f, 0x7,0x33,0x48, - 0x7,0x33,0x4a, 0x5,0x58,0x3f, 0x7,0x33,0x4c, 0x4,0x53,0x6d, - 0x7,0x33,0x44, 0x5,0x58,0x3e, 0xf,0x57,0x6e, 0xf,0x57,0x6f, - 0xf,0x57,0x70, 0xf,0x57,0x71, 0xf,0x57,0x72, 0xf,0x57,0x73, - 0xf,0x57,0x74, 0xf,0x57,0x75, 0xf,0x57,0x76, 0xf,0x57,0x77, - 0xf,0x57,0x78, 0x7,0x33,0x54, 0x7,0x33,0x41, 0x7,0x33,0x4b, - 0x4,0x58,0x6e, 0x5,0x5e,0x52, 0x5,0x5e,0x51, 0x7,0x3b,0x7d, - 0x4,0x58,0x6f, 0x5,0x5e,0x54, 0x4,0x58,0x71, 0x7,0x3b,0x79, - 0x4,0x58,0x6d, 0x5,0x5e,0x4d, 0x5,0x5e,0x53, 0x5,0x5e,0x4e, - 0x7,0x3b,0x76, 0x7,0x3c,0x25, 0x4,0x58,0x72, 0x7,0x43,0x2a, - 0x5,0x5e,0x4f, 0x7,0x3c,0x21, 0x7,0x3b,0x77, 0x5,0x5e,0x56, - 0x7,0x3c,0x27, 0x7,0x3b,0x7c, 0x7,0x3b,0x78, 0x5,0x5e,0x50, - 0x4,0x58,0x74, 0x7,0x3b,0x7b, 0x7,0x3b,0x7e, 0x7,0x3c,0x22, - 0x7,0x3c,0x23, 0x4,0x58,0x73, 0x5,0x5e,0x4b, 0x7,0x3c,0x26, - 0x5,0x5e,0x4c, 0x7,0x3c,0x24, 0x7,0x3b,0x75, 0xf,0x5c,0x63, - 0xf,0x5c,0x64, 0xf,0x5c,0x65, 0xf,0x5c,0x66, 0xf,0x5c,0x67, - 0xf,0x5c,0x68, 0xf,0x5c,0x69, 0xf,0x5c,0x6a, 0xf,0x5c,0x6b, - 0x7,0x3c,0x28, 0x7,0x3c,0x29, 0x7,0x3b,0x7a, 0x4,0x5d,0x5e, - 0x4,0x5d,0x56, 0x7,0x43,0x37, 0x4,0x5d,0x58, 0x7,0x43,0x35, - 0x5,0x64,0x68, 0x7,0x43,0x3a, 0x7,0x43,0x2b, 0x4,0x5d,0x60, - 0x5,0x64,0x66, 0x5,0x58,0x41, 0x4,0x5d,0x59, 0x5,0x64,0x67, - 0x7,0x43,0x38, 0x7,0x43,0x32, 0x5,0x64,0x64, 0x4,0x5d,0x53, - 0x7,0x43,0x3b, 0x4,0x5d,0x55, 0x5,0x64,0x65, 0x4,0x5d,0x5d, - 0x7,0x43,0x39, 0x7,0x43,0x2f, 0x7,0x43,0x33, 0x7,0x4a,0x2a, - 0x7,0x43,0x30, 0x4,0x5d,0x5c, 0x7,0x43,0x34, 0x7,0x43,0x31, - 0x7,0x43,0x3c, 0x7,0x43,0x2c, 0x7,0x43,0x2d, 0xf,0x60,0x72, - 0xf,0x60,0x75, 0x7,0x43,0x36, 0x4,0x5d,0x5f, 0x7,0x43,0x2e, - 0x5,0x69,0x4d, 0x5,0x69,0x4f, 0x7,0x4a,0x2f, 0x4,0x61,0x3e, - 0x7,0x4a,0x2c, 0x7,0x4a,0x2e, 0x4,0x61,0x43, 0x4,0x61,0x39, - 0x5,0x69,0x50, 0x4,0x61,0x41, 0x7,0x4a,0x34, 0x4,0x61,0x42, - 0x5,0x69,0x4e, 0x4,0x61,0x3f, 0x7,0x4a,0x26, 0x7,0x4a,0x29, - 0x7,0x43,0x3d, 0x7,0x4a,0x28, 0x7,0x4a,0x35, 0x7,0x50,0x33, - 0x7,0x4a,0x33, 0x4,0x61,0x3c, 0x5,0x6d,0x60, 0x7,0x4a,0x27, - 0xf,0x63,0x78, 0xf,0x63,0x79, 0xf,0x63,0x7a, 0x4,0x61,0x44, - 0x7,0x4a,0x2b, 0x7,0x50,0x35, 0x7,0x4a,0x30, 0x7,0x4a,0x31, - 0x7,0x4a,0x2d, 0x7,0x4a,0x32, 0x4,0x61,0x38, 0xf,0x60,0x74, - 0x4,0x64,0x4a, 0x4,0x64,0x4b, 0x5,0x6d,0x62, 0x5,0x6d,0x61, - 0x7,0x50,0x2d, 0x5,0x6d,0x63, 0x7,0x50,0x2f, 0x4,0x64,0x49, - 0x7,0x50,0x2b, 0x5,0x69,0x53, 0x7,0x50,0x32, 0x7,0x50,0x2e, - 0x7,0x50,0x34, 0x7,0x50,0x36, 0x7,0x50,0x2c, 0x7,0x50,0x30, - 0xf,0x66,0x36, 0xf,0x66,0x37, 0xf,0x66,0x38, 0xf,0x66,0x39, - 0x7,0x50,0x38, 0x7,0x50,0x37, 0x7,0x50,0x39, 0x7,0x55,0x2a, - 0x4,0x67,0x42, 0x7,0x55,0x34, 0x7,0x55,0x2d, 0x7,0x55,0x33, - 0x4,0x67,0x38, 0x7,0x55,0x2e, 0x5,0x71,0x3d, 0x7,0x55,0x2c, - 0x7,0x55,0x2f, 0x4,0x67,0x3c, 0x5,0x71,0x3a, 0x5,0x71,0x39, - 0x4,0x67,0x43, 0x7,0x59,0x3b, 0x7,0x59,0x35, 0x4,0x67,0x3a, - 0x5,0x71,0x3c, 0x5,0x71,0x3b, 0x7,0x55,0x31, 0x7,0x55,0x2b, - 0x7,0x55,0x30, 0x5,0x71,0x38, 0x7,0x55,0x35, 0x5,0x74,0x3b, - 0x5,0x74,0x3d, 0x5,0x74,0x40, 0x5,0x76,0x4b, 0x4,0x69,0x47, - 0x7,0x59,0x39, 0x4,0x69,0x4a, 0x5,0x74,0x3f, 0x4,0x69,0x49, - 0x5,0x74,0x3e, 0x7,0x59,0x37, 0x7,0x59,0x40, 0x7,0x55,0x36, - 0x5,0x74,0x3c, 0x7,0x59,0x36, 0x7,0x59,0x3a, 0x7,0x59,0x3f, - 0x4,0x69,0x46, 0x7,0x59,0x3e, 0xf,0x69,0x72, 0xf,0x69,0x73, - 0xf,0x69,0x74, 0x7,0x59,0x3c, 0x7,0x59,0x3d, 0x4,0x6a,0x7d, - 0x4,0x6a,0x7e, 0x7,0x5c,0x66, 0x5,0x76,0x4e, 0x5,0x76,0x4d, - 0x5,0x78,0x31, 0x7,0x5c,0x68, 0x7,0x5c,0x69, 0x7,0x5c,0x6a, - 0xf,0x6a,0x74, 0xf,0x6a,0x75, 0x7,0x5c,0x67, 0x7,0x59,0x42, - 0x7,0x5f,0x57, 0x7,0x5f,0x58, 0x7,0x5f,0x55, 0x4,0x6c,0x27, - 0x7,0x5f,0x56, 0x7,0x5f,0x5a, 0xf,0x6b,0x65, 0xf,0x6b,0x66, - 0x7,0x5f,0x54, 0x7,0x5f,0x59, 0x7,0x5f,0x5b, 0x4,0x6d,0x23, - 0x7,0x61,0x4b, 0x5,0x79,0x4e, 0x7,0x61,0x4c, 0xf,0x6c,0x3a, - 0xf,0x6c,0x3b, 0x7,0x61,0x4a, 0x5,0x7a,0x75, 0x7,0x62,0x65, - 0x7,0x62,0x64, 0x5,0x7a,0x39, 0x4,0x6d,0x7e, 0x7,0x63,0x74, - 0x7,0x64,0x62, 0x4,0x6e,0x3c, 0x7,0x64,0x44, 0x7,0x65,0x44, - 0x7,0x66,0x50, 0x5,0x24,0x77, 0x4,0x30,0x24, 0x5,0x30,0x44, - 0x5,0x30,0x45, 0x4,0x35,0x48, 0x4,0x35,0x49, 0x4,0x35,0x47, - 0x6,0x44,0x7b, 0x4,0x3b,0x3a, 0x5,0x42,0x7e, 0x5,0x43,0x21, - 0x6,0x58,0x4c, 0x4,0x47,0x4d, 0x5,0x51,0x2c, 0x4,0x4d,0x63, - 0x5,0x51,0x2d, 0x5,0x51,0x2b, 0x5,0x58,0x42, 0x7,0x33,0x56, - 0x7,0x33,0x55, 0x7,0x3c,0x2a, 0x5,0x5e,0x57, 0x7,0x43,0x3e, - 0x7,0x4a,0x36, 0x7,0x4a,0x39, 0x5,0x69,0x54, 0x7,0x4a,0x37, - 0x5,0x69,0x55, 0x7,0x4a,0x38, 0x7,0x50,0x3a, 0x7,0x4a,0x3a, - 0x5,0x71,0x3e, 0x5,0x7a,0x76, 0x7,0x65,0x77, 0x6,0x34,0x55, - 0x6,0x3c,0x35, 0x6,0x3c,0x34, 0xf,0x38,0x57, 0x4,0x3b,0x3b, - 0x5,0x3c,0x3e, 0x6,0x4e,0x7b, 0xf,0x3f,0x3d, 0x5,0x43,0x22, - 0x4,0x40,0x75, 0x6,0x5b,0x5f, 0x4,0x47,0x50, 0x6,0x62,0x54, - 0x4,0x47,0x51, 0x7,0x29,0x28, 0x7,0x29,0x27, 0x7,0x29,0x25, - 0x5,0x51,0x2f, 0x5,0x51,0x2e, 0x7,0x29,0x26, 0xf,0x52,0x3b, - 0x5,0x58,0x43, 0x4,0x53,0x74, 0x7,0x33,0x57, 0x5,0x58,0x44, - 0x7,0x2c,0x56, 0x5,0x5e,0x5a, 0x7,0x3c,0x2d, 0x5,0x5e,0x58, - 0x7,0x3c,0x2c, 0x5,0x5e,0x59, 0x7,0x3c,0x2b, 0x5,0x64,0x69, - 0x4,0x5d,0x63, 0x7,0x43,0x40, 0x4,0x5d,0x62, 0x5,0x5e,0x5b, - 0x7,0x4a,0x3c, 0x5,0x69,0x57, 0x7,0x4a,0x3d, 0x7,0x43,0x41, - 0x7,0x43,0x42, 0x5,0x69,0x56, 0x5,0x6d,0x66, 0x5,0x6d,0x65, - 0x5,0x6d,0x67, 0xf,0x66,0x3a, 0x5,0x6d,0x64, 0xf,0x63,0x7b, - 0x5,0x71,0x3f, 0x5,0x74,0x41, 0xf,0x6a,0x76, 0xf,0x6a,0x77, - 0x5,0x78,0x32, 0x5,0x79,0x4f, 0x5,0x7a,0x77, 0x7,0x65,0x45, - 0x6,0x25,0x54, 0x5,0x23,0x29, 0x5,0x2b,0x4a, 0x5,0x30,0x48, - 0x5,0x30,0x47, 0x6,0x3c,0x37, 0x6,0x3c,0x36, 0x6,0x44,0x7e, - 0x6,0x44,0x7c, 0x5,0x35,0x61, 0x6,0x45,0x21, 0x6,0x44,0x7d, - 0x4,0x3b,0x3c, 0x6,0x4e,0x7c, 0x4,0x3b,0x3d, 0x5,0x3c,0x40, - 0x5,0x3c,0x3f, 0x6,0x4e,0x7e, 0x5,0x3c,0x41, 0x6,0x4f,0x23, - 0x6,0x4e,0x7d, 0xf,0x32,0x55, 0x4,0x40,0x77, 0x5,0x43,0x25, - 0x4,0x40,0x76, 0x6,0x58,0x4e, 0x6,0x58,0x4f, 0x5,0x43,0x27, - 0x5,0x43,0x23, 0x5,0x43,0x26, 0x6,0x58,0x4d, 0x6,0x4f,0x22, - 0x5,0x43,0x24, 0x5,0x43,0x28, 0x6,0x62,0x55, 0x6,0x62,0x56, - 0x4,0x47,0x53, 0x4,0x47,0x52, 0x6,0x62,0x59, 0x5,0x49,0x7d, - 0x5,0x49,0x7c, 0x6,0x62,0x5b, 0x6,0x62,0x5a, 0x6,0x62,0x57, - 0x6,0x62,0x58, 0x5,0x51,0x32, 0x4,0x4d,0x66, 0x7,0x29,0x29, - 0x7,0x29,0x2b, 0x5,0x51,0x31, 0x5,0x51,0x33, 0x7,0x29,0x2d, - 0x7,0x29,0x2c, 0x5,0x49,0x7e, 0x5,0x51,0x30, 0x7,0x29,0x2a, - 0x5,0x4a,0x21, 0x7,0x29,0x2e, 0xf,0x52,0x3c, 0x5,0x58,0x47, - 0x5,0x58,0x48, 0x5,0x58,0x46, 0x7,0x33,0x59, 0x4,0x53,0x76, - 0x7,0x33,0x5a, 0x7,0x33,0x5c, 0x7,0x33,0x5b, 0x5,0x58,0x45, - 0x7,0x33,0x58, 0x5,0x5e,0x5d, 0x5,0x5e,0x5e, 0x5,0x5e,0x5f, - 0x5,0x5e,0x5c, 0x7,0x3c,0x30, 0x7,0x3c,0x2e, 0x7,0x3c,0x2f, - 0x4,0x5d,0x65, 0x5,0x64,0x6a, 0x5,0x64,0x6b, 0x7,0x43,0x43, - 0x7,0x43,0x44, 0x7,0x43,0x45, 0x4,0x61,0x47, 0x5,0x69,0x58, - 0x5,0x58,0x49, 0x7,0x4a,0x3e, 0x4,0x61,0x49, 0x5,0x6d,0x6b, - 0x5,0x6d,0x68, 0x7,0x50,0x3b, 0x5,0x6d,0x6a, 0x5,0x6d,0x69, - 0x4,0x67,0x46, 0x5,0x71,0x40, 0x7,0x55,0x37, 0x7,0x55,0x38, - 0x7,0x59,0x43, 0x7,0x5c,0x6c, 0x7,0x59,0x44, 0x7,0x59,0x45, - 0x7,0x5c,0x6d, 0x7,0x5c,0x6e, 0x5,0x74,0x42, 0x7,0x5f,0x5c, - 0x7,0x61,0x4d, 0x7,0x5f,0x5d, 0x5,0x79,0x50, 0x5,0x7a,0x3a, - 0x7,0x65,0x46, 0x7,0x66,0x43, 0xf,0x28,0x6c, 0x5,0x2b,0x4b, - 0x6,0x3c,0x38, 0xf,0x32,0x56, 0x5,0x35,0x64, 0x5,0x35,0x63, - 0x4,0x35,0x4f, 0x5,0x35,0x62, 0x4,0x35,0x4e, 0x6,0x45,0x25, - 0x6,0x45,0x23, 0x6,0x4f,0x25, 0x5,0x3c,0x42, 0x5,0x3c,0x46, - 0x5,0x3c,0x44, 0x5,0x3c,0x48, 0x5,0x3c,0x45, 0x6,0x4f,0x28, - 0x6,0x4f,0x26, 0x5,0x3c,0x47, 0x5,0x3c,0x43, 0x6,0x4f,0x27, - 0x6,0x4f,0x24, 0xf,0x3f,0x3e, 0x4,0x40,0x7c, 0x4,0x40,0x7d, - 0x4,0x40,0x7a, 0x6,0x58,0x52, 0x5,0x43,0x2b, 0x6,0x58,0x51, - 0x5,0x43,0x2a, 0x4,0x40,0x79, 0x4,0x40,0x7b, 0x6,0x58,0x53, - 0xf,0x45,0x47, 0x5,0x43,0x29, 0x6,0x62,0x61, 0x6,0x62,0x5c, - 0x5,0x4a,0x25, 0x5,0x4a,0x23, 0x5,0x4a,0x22, 0x6,0x62,0x5f, - 0x5,0x4a,0x24, 0x6,0x62,0x5e, 0x6,0x62,0x60, 0xf,0x4c,0x48, - 0x6,0x62,0x5d, 0x6,0x62,0x62, 0xf,0x4c,0x49, 0x5,0x51,0x35, - 0x5,0x51,0x34, 0x4,0x4d,0x69, 0x5,0x51,0x37, 0x5,0x51,0x36, - 0x5,0x51,0x38, 0x4,0x4d,0x6a, 0x7,0x29,0x2f, 0x7,0x29,0x30, - 0x4,0x4d,0x6b, 0x7,0x29,0x31, 0x7,0x33,0x64, 0x5,0x58,0x4b, - 0x7,0x33,0x5e, 0x7,0x33,0x60, 0x7,0x33,0x61, 0x4,0x53,0x78, - 0x5,0x58,0x4a, 0x7,0x33,0x62, 0x5,0x58,0x4c, 0x7,0x33,0x5f, - 0xf,0x57,0x7a, 0x7,0x33,0x5d, 0x7,0x33,0x63, 0x4,0x58,0x79, - 0x5,0x5e,0x63, 0x7,0x3c,0x31, 0x5,0x5e,0x62, 0x4,0x58,0x78, - 0x5,0x5e,0x60, 0x5,0x5e,0x64, 0x5,0x5e,0x61, 0xf,0x5c,0x6c, - 0x7,0x43,0x46, 0x4,0x5d,0x67, 0x7,0x43,0x47, 0x4,0x5d,0x66, - 0x5,0x64,0x6c, 0x7,0x4a,0x3f, 0x5,0x64,0x6d, 0x5,0x69,0x5b, - 0x7,0x4a,0x40, 0x5,0x69,0x5a, 0x7,0x4a,0x43, 0x7,0x50,0x3d, - 0x7,0x4a,0x42, 0x5,0x69,0x59, 0x5,0x6d,0x6d, 0x5,0x6d,0x6c, - 0x7,0x50,0x3c, 0x5,0x71,0x42, 0x5,0x6d,0x6e, 0x5,0x71,0x41, - 0x7,0x55,0x39, 0x7,0x59,0x46, 0x7,0x5c,0x70, 0x7,0x5c,0x6f, - 0x5,0x7a,0x78, 0x5,0x2b,0x4c, 0x4,0x2b,0x4a, 0x6,0x34,0x56, - 0xf,0x2d,0x4a, 0x4,0x30,0x26, 0x6,0x3c,0x39, 0x5,0x30,0x49, - 0x5,0x30,0x4a, 0xf,0x32,0x57, 0xf,0x32,0x58, 0x6,0x3c,0x3a, - 0x6,0x45,0x2a, 0x6,0x45,0x2c, 0x6,0x45,0x27, 0x6,0x45,0x28, - 0x6,0x45,0x26, 0x6,0x45,0x2b, 0x5,0x35,0x65, 0xf,0x38,0x59, - 0xf,0x38,0x5a, 0xf,0x38,0x5b, 0xf,0x38,0x5c, 0xf,0x38,0x5d, - 0xf,0x38,0x5e, 0xf,0x38,0x5f, 0xf,0x38,0x60, 0x6,0x45,0x2d, - 0x4,0x35,0x53, 0x6,0x45,0x29, 0x4,0x35,0x52, 0x6,0x4f,0x2b, - 0x4,0x3b,0x40, 0x5,0x3c,0x49, 0x5,0x3c,0x4b, 0x6,0x4f,0x2e, - 0x6,0x4f,0x2c, 0x6,0x4f,0x2d, 0x6,0x58,0x57, 0x5,0x3c,0x4a, - 0xf,0x3f,0x3f, 0xf,0x3f,0x41, 0xf,0x3f,0x42, 0xf,0x3f,0x43, - 0xf,0x3f,0x44, 0xf,0x3f,0x45, 0x6,0x4f,0x2f, 0x6,0x4f,0x2a, - 0x5,0x3c,0x4d, 0x4,0x41,0x22, 0x6,0x58,0x54, 0x6,0x58,0x59, - 0x6,0x58,0x56, 0x5,0x43,0x30, 0x5,0x43,0x2c, 0x6,0x58,0x5e, - 0x6,0x58,0x55, 0x5,0x43,0x2f, 0x5,0x43,0x31, 0x5,0x43,0x32, - 0x6,0x58,0x58, 0x6,0x58,0x60, 0x6,0x58,0x62, 0x5,0x43,0x33, - 0x6,0x58,0x5f, 0xf,0x45,0x48, 0xf,0x45,0x49, 0xf,0x45,0x4a, - 0xf,0x45,0x4b, 0xf,0x45,0x4c, 0xf,0x45,0x4d, 0xf,0x45,0x4e, - 0x6,0x58,0x61, 0xf,0x3f,0x40, 0x6,0x58,0x5b, 0x5,0x43,0x2e, - 0xf,0x46,0x34, 0x6,0x62,0x65, 0x4,0x47,0x55, 0x5,0x4a,0x26, - 0x6,0x62,0x64, 0x6,0x62,0x66, 0x6,0x62,0x6c, 0x6,0x62,0x63, - 0x6,0x62,0x69, 0x5,0x4a,0x27, 0x4,0x47,0x57, 0xf,0x4c,0x4d, - 0xf,0x4c,0x4e, 0xf,0x4c,0x4f, 0xf,0x4c,0x51, 0xf,0x4c,0x50, - 0xf,0x4c,0x4c, 0x6,0x62,0x6b, 0x6,0x58,0x5d, 0x7,0x29,0x33, - 0x7,0x29,0x35, 0x5,0x4a,0x28, 0x4,0x4d,0x6f, 0x7,0x29,0x34, - 0x5,0x51,0x3a, 0x4,0x4d,0x70, 0x5,0x51,0x3b, 0x7,0x29,0x39, - 0x7,0x29,0x38, 0x7,0x29,0x32, 0xf,0x52,0x3d, 0xf,0x52,0x3e, - 0xf,0x52,0x3f, 0x7,0x29,0x37, 0xf,0x4c,0x4b, 0x7,0x33,0x6a, - 0x5,0x58,0x4e, 0x7,0x33,0x67, 0x7,0x33,0x66, 0x5,0x58,0x4f, - 0x7,0x33,0x6b, 0x7,0x33,0x6e, 0x4,0x53,0x7c, 0x7,0x33,0x68, - 0x5,0x58,0x4d, 0x6,0x62,0x68, 0xf,0x54,0x32, 0xf,0x57,0x7b, - 0xf,0x57,0x7c, 0xf,0x57,0x7d, 0xf,0x57,0x7e, 0xf,0x58,0x21, - 0xf,0x58,0x22, 0x7,0x33,0x6d, 0x7,0x33,0x6c, 0x7,0x33,0x65, - 0x7,0x33,0x69, 0x5,0x58,0x50, 0x7,0x3c,0x32, 0x5,0x5e,0x65, - 0x5,0x5b,0x2d, 0x5,0x5e,0x67, 0x5,0x58,0x52, 0x5,0x5e,0x66, - 0x4,0x58,0x7b, 0x7,0x3c,0x38, 0x7,0x3c,0x34, 0x7,0x3c,0x36, - 0x7,0x3c,0x37, 0x7,0x3c,0x35, 0xf,0x5c,0x6e, 0xf,0x5c,0x70, - 0xf,0x5c,0x6f, 0x7,0x43,0x4b, 0x5,0x64,0x73, 0x7,0x43,0x4e, - 0x5,0x64,0x6f, 0x7,0x43,0x49, 0x7,0x43,0x4a, 0x7,0x43,0x51, - 0x5,0x64,0x71, 0x5,0x64,0x6e, 0x5,0x64,0x72, 0x7,0x43,0x4d, - 0x7,0x43,0x4c, 0xf,0x60,0x76, 0xf,0x60,0x77, 0xf,0x60,0x78, - 0xf,0x60,0x79, 0xf,0x60,0x7b, 0xf,0x60,0x7c, 0x7,0x43,0x48, - 0x7,0x43,0x50, 0x5,0x64,0x70, 0x7,0x4a,0x47, 0x7,0x4a,0x4b, - 0x5,0x69,0x5d, 0x5,0x64,0x74, 0x7,0x4a,0x4a, 0x7,0x43,0x4f, - 0x5,0x69,0x5c, 0x4,0x61,0x4b, 0x7,0x4a,0x48, 0x5,0x69,0x5e, - 0x7,0x4a,0x4d, 0x7,0x4a,0x4c, 0x5,0x69,0x60, 0x7,0x4a,0x44, - 0x7,0x4a,0x49, 0x7,0x4a,0x46, 0xf,0x63,0x7c, 0xf,0x63,0x7d, - 0xf,0x63,0x7e, 0xf,0x64,0x21, 0x7,0x4a,0x4e, 0x7,0x4a,0x45, - 0x5,0x69,0x5f, 0x4,0x64,0x51, 0x5,0x6d,0x70, 0x4,0x64,0x50, - 0x5,0x6d,0x6f, 0x7,0x50,0x3e, 0x7,0x50,0x40, 0xf,0x66,0x3b, - 0xf,0x66,0x3c, 0xf,0x66,0x3d, 0xf,0x66,0x3e, 0xf,0x66,0x3f, - 0x7,0x50,0x3f, 0x5,0x71,0x43, 0x4,0x67,0x47, 0x5,0x71,0x44, - 0x5,0x71,0x45, 0xf,0x68,0x4e, 0xf,0x68,0x4f, 0x7,0x55,0x3b, - 0x7,0x59,0x47, 0x5,0x74,0x45, 0x5,0x74,0x44, 0xf,0x69,0x76, - 0xf,0x69,0x77, 0xf,0x69,0x78, 0x7,0x59,0x4a, 0x7,0x59,0x48, - 0x7,0x59,0x49, 0xf,0x68,0x4d, 0x7,0x5c,0x71, 0x4,0x6b,0x22, - 0x5,0x74,0x43, 0x7,0x5c,0x72, 0xf,0x6a,0x78, 0x7,0x5c,0x73, - 0x7,0x5f,0x5e, 0x7,0x5f,0x60, 0x7,0x5f,0x5f, 0x7,0x62,0x66, - 0x6,0x2e,0x31, 0x6,0x34,0x57, 0x6,0x34,0x58, 0x5,0x35,0x66, - 0xf,0x38,0x61, 0x6,0x4f,0x30, 0x4,0x3b,0x44, 0x6,0x58,0x63, - 0xf,0x45,0x4f, 0x5,0x4a,0x2a, 0xf,0x4c,0x52, 0x7,0x29,0x3a, - 0x5,0x58,0x54, 0x5,0x58,0x53, 0xf,0x58,0x23, 0x7,0x33,0x6f, - 0x5,0x5e,0x69, 0x5,0x5e,0x6a, 0x5,0x5e,0x68, 0xf,0x5c,0x71, - 0x5,0x64,0x75, 0x7,0x43,0x53, 0x7,0x4a,0x50, 0x7,0x4a,0x4f, - 0x5,0x71,0x46, 0x7,0x5c,0x74, 0x6,0x2e,0x32, 0x6,0x2e,0x33, - 0x6,0x34,0x59, 0xf,0x2d,0x4b, 0xf,0x2d,0x4d, 0xf,0x2d,0x4e, - 0xf,0x2d,0x4f, 0xf,0x2d,0x50, 0x4,0x2b,0x4b, 0x5,0x30,0x4d, - 0x6,0x3c,0x3e, 0x6,0x3c,0x3d, 0x5,0x30,0x4e, 0x6,0x3c,0x3c, - 0x4,0x30,0x29, 0xf,0x32,0x59, 0xf,0x32,0x5a, 0xf,0x32,0x5b, - 0xf,0x32,0x5c, 0xf,0x32,0x5d, 0x5,0x35,0x6d, 0x6,0x45,0x30, - 0x5,0x35,0x67, 0x4,0x35,0x57, 0x5,0x35,0x6a, 0x5,0x35,0x6f, - 0x5,0x35,0x6e, 0x4,0x35,0x58, 0x6,0x45,0x2e, 0x6,0x45,0x2f, - 0x5,0x35,0x6b, 0x5,0x35,0x68, 0xf,0x38,0x63, 0xf,0x38,0x64, - 0xf,0x38,0x65, 0xf,0x38,0x66, 0xf,0x38,0x68, 0xf,0x38,0x69, - 0xf,0x38,0x62, 0x5,0x35,0x6c, 0x5,0x35,0x69, 0xf,0x38,0x67, - 0x5,0x3c,0x51, 0x5,0x3c,0x50, 0x5,0x3c,0x54, 0x5,0x3c,0x4f, - 0x6,0x4f,0x34, 0x6,0x4f,0x31, 0x5,0x43,0x39, 0x5,0x3c,0x53, - 0x5,0x3c,0x4e, 0x6,0x4f,0x33, 0x4,0x3b,0x46, 0x5,0x3c,0x55, - 0x6,0x58,0x64, 0x6,0x4f,0x35, 0xf,0x3f,0x47, 0xf,0x3f,0x48, - 0xf,0x3f,0x49, 0xf,0x3f,0x4a, 0xf,0x3f,0x4b, 0xf,0x3f,0x4c, - 0xf,0x3f,0x4f, 0xf,0x3f,0x50, 0xf,0x3f,0x51, 0x6,0x4f,0x32, - 0xf,0x3f,0x4e, 0x6,0x58,0x66, 0x5,0x43,0x36, 0x4,0x41,0x23, - 0x6,0x58,0x68, 0x4,0x41,0x25, 0x5,0x43,0x3b, 0x5,0x43,0x35, - 0x5,0x43,0x3d, 0x5,0x43,0x37, 0x4,0x41,0x24, 0x6,0x58,0x6a, - 0x6,0x58,0x69, 0x5,0x43,0x3a, 0xf,0x45,0x50, 0xf,0x45,0x51, - 0xf,0x45,0x52, 0xf,0x45,0x53, 0xf,0x45,0x54, 0xf,0x45,0x55, - 0xf,0x45,0x56, 0xf,0x45,0x57, 0x6,0x58,0x65, 0x6,0x58,0x67, - 0x6,0x62,0x6d, 0xf,0x3f,0x4d, 0x6,0x62,0x6e, 0x4,0x47,0x5c, - 0x5,0x4a,0x2c, 0x5,0x4a,0x30, 0x6,0x62,0x72, 0x5,0x4a,0x2b, - 0x5,0x4a,0x2e, 0x5,0x4a,0x31, 0x6,0x62,0x71, 0x6,0x62,0x6f, - 0x5,0x4a,0x33, 0x4,0x47,0x5d, 0x5,0x4a,0x2f, 0x6,0x62,0x76, - 0x5,0x4a,0x2d, 0x6,0x62,0x73, 0xf,0x4c,0x53, 0xf,0x4c,0x54, - 0xf,0x4c,0x55, 0xf,0x4c,0x56, 0xf,0x4c,0x57, 0xf,0x4c,0x58, - 0xf,0x4c,0x59, 0x6,0x62,0x70, 0x5,0x51,0x42, 0x5,0x51,0x3c, - 0x4,0x4d,0x72, 0x5,0x51,0x3f, 0x5,0x51,0x3e, 0x5,0x51,0x3d, - 0x5,0x51,0x40, 0x7,0x29,0x3f, 0x5,0x51,0x46, 0x5,0x51,0x43, - 0x7,0x29,0x41, 0x5,0x51,0x41, 0x7,0x29,0x3c, 0x7,0x29,0x40, - 0x7,0x29,0x3e, 0x6,0x62,0x74, 0x7,0x29,0x42, 0x7,0x33,0x72, - 0x5,0x51,0x45, 0x5,0x51,0x44, 0xf,0x52,0x40, 0xf,0x52,0x41, - 0x7,0x29,0x43, 0x7,0x29,0x3b, 0xf,0x58,0x2d, 0x4,0x54,0x23, - 0x4,0x54,0x24, 0x4,0x54,0x28, 0x7,0x33,0x74, 0x5,0x58,0x59, - 0x4,0x54,0x21, 0x4,0x54,0x22, 0x4,0x54,0x27, 0x7,0x33,0x75, - 0x4,0x54,0x25, 0x7,0x33,0x71, 0x7,0x33,0x70, 0x5,0x58,0x58, - 0x5,0x58,0x5a, 0x7,0x33,0x76, 0xf,0x58,0x24, 0xf,0x58,0x26, - 0xf,0x58,0x27, 0xf,0x58,0x28, 0xf,0x58,0x29, 0xf,0x58,0x2a, - 0xf,0x58,0x2b, 0xf,0x58,0x2c, 0xf,0x58,0x2e, 0x7,0x33,0x78, - 0x7,0x33,0x77, 0x5,0x58,0x5b, 0x5,0x58,0x56, 0x5,0x58,0x57, - 0x5,0x5e,0x6f, 0x5,0x5e,0x71, 0x4,0x59,0x22, 0x5,0x5e,0x70, - 0x4,0x59,0x24, 0x4,0x59,0x21, 0x5,0x5e,0x72, 0x4,0x58,0x7e, - 0x5,0x5e,0x6c, 0x4,0x59,0x23, 0x5,0x5e,0x6e, 0x5,0x5e,0x6b, - 0x7,0x3c,0x3a, 0x5,0x5e,0x73, 0xf,0x58,0x25, 0xf,0x5c,0x72, - 0xf,0x5c,0x73, 0xf,0x5c,0x74, 0xf,0x5c,0x75, 0xf,0x5c,0x76, - 0x7,0x3c,0x39, 0x5,0x64,0x79, 0x5,0x64,0x7c, 0x4,0x5d,0x6b, - 0x7,0x43,0x57, 0x7,0x43,0x56, 0x5,0x64,0x76, 0x5,0x64,0x7a, - 0x5,0x64,0x78, 0x5,0x64,0x77, 0x5,0x64,0x7d, 0x5,0x64,0x7e, - 0x7,0x43,0x5b, 0x7,0x43,0x5a, 0x5,0x64,0x7b, 0xf,0x60,0x7d, - 0x7,0x43,0x58, 0x7,0x43,0x55, 0x7,0x43,0x59, 0x7,0x43,0x54, - 0x5,0x58,0x5d, 0x5,0x69,0x62, 0x5,0x69,0x66, 0x5,0x69,0x68, - 0x4,0x61,0x4e, 0x4,0x61,0x4c, 0x5,0x69,0x63, 0x5,0x69,0x67, - 0x5,0x69,0x65, 0x5,0x69,0x61, 0x7,0x4a,0x52, 0x5,0x69,0x69, - 0x5,0x69,0x64, 0xf,0x64,0x23, 0xf,0x64,0x24, 0xf,0x64,0x25, - 0x7,0x4a,0x51, 0x7,0x4a,0x53, 0x4,0x64,0x52, 0x4,0x64,0x54, - 0x4,0x64,0x58, 0x4,0x64,0x57, 0x5,0x6d,0x71, 0x7,0x50,0x41, - 0x7,0x50,0x43, 0x5,0x6d,0x72, 0x7,0x50,0x42, 0xf,0x66,0x40, - 0xf,0x66,0x41, 0xf,0x66,0x42, 0x4,0x67,0x49, 0x5,0x71,0x48, - 0x5,0x71,0x49, 0x7,0x55,0x3f, 0x7,0x55,0x3d, 0x7,0x55,0x3c, - 0x7,0x55,0x3e, 0x5,0x71,0x47, 0x5,0x74,0x46, 0x5,0x74,0x49, - 0x4,0x69,0x4d, 0x5,0x74,0x48, 0x5,0x74,0x47, 0xf,0x69,0x79, - 0x5,0x76,0x4f, 0x5,0x76,0x50, 0xf,0x6a,0x79, 0x7,0x59,0x4b, - 0x7,0x5c,0x75, 0x7,0x5c,0x76, 0x5,0x78,0x33, 0x5,0x78,0x34, - 0x5,0x78,0x35, 0x4,0x6d,0x26, 0x7,0x61,0x4e, 0x5,0x7a,0x79, - 0x5,0x7b,0x49, 0x6,0x2e,0x35, 0x6,0x2e,0x34, 0x6,0x34,0x5b, - 0x5,0x2b,0x4d, 0xf,0x2d,0x51, 0x6,0x34,0x5a, 0x6,0x3c,0x41, - 0x4,0x30,0x2b, 0x6,0x3c,0x42, 0x6,0x3c,0x40, 0x5,0x30,0x50, - 0x5,0x30,0x4f, 0x6,0x3c,0x3f, 0x6,0x3c,0x43, 0x4,0x35,0x5f, - 0x6,0x45,0x33, 0x4,0x35,0x5a, 0x5,0x35,0x73, 0x6,0x45,0x37, - 0x5,0x35,0x77, 0x6,0x45,0x3a, 0x5,0x35,0x71, 0x5,0x35,0x75, - 0x6,0x45,0x3c, 0x6,0x45,0x3d, 0x5,0x35,0x74, 0x6,0x45,0x3b, - 0x6,0x45,0x32, 0x6,0x45,0x36, 0xf,0x38,0x6a, 0x6,0x45,0x31, - 0x6,0x45,0x35, 0x6,0x45,0x39, 0x5,0x35,0x76, 0x5,0x35,0x70, - 0x6,0x45,0x34, 0x5,0x3c,0x60, 0x5,0x3c,0x57, 0x5,0x3c,0x58, - 0x5,0x3c,0x5b, 0x6,0x4f,0x3b, 0x5,0x3c,0x56, 0x6,0x4f,0x38, - 0x4,0x3b,0x4e, 0x5,0x3c,0x5d, 0x5,0x3c,0x59, 0x5,0x3c,0x61, - 0x5,0x3c,0x5a, 0x6,0x4f,0x39, 0x6,0x58,0x79, 0x5,0x3c,0x62, - 0xf,0x3f,0x54, 0x6,0x4f,0x37, 0xf,0x3f,0x52, 0x6,0x4f,0x3a, - 0x5,0x3c,0x5e, 0x5,0x43,0x41, 0x5,0x43,0x3f, 0x6,0x58,0x71, - 0x5,0x43,0x40, 0x5,0x43,0x42, 0x6,0x58,0x74, 0x6,0x58,0x70, - 0x5,0x43,0x47, 0x5,0x43,0x45, 0x6,0x58,0x6e, 0x6,0x58,0x6d, - 0x5,0x43,0x3e, 0x6,0x58,0x6f, 0x6,0x58,0x72, 0x6,0x58,0x76, - 0x5,0x43,0x4a, 0x6,0x58,0x6c, 0x6,0x58,0x77, 0x5,0x43,0x43, - 0x5,0x43,0x4c, 0x5,0x43,0x48, 0x6,0x58,0x73, 0x5,0x43,0x49, - 0x5,0x43,0x46, 0x6,0x58,0x75, 0x5,0x4a,0x35, 0xf,0x45,0x59, - 0x6,0x58,0x78, 0x6,0x58,0x6b, 0x6,0x63,0x22, 0x5,0x4a,0x43, - 0x4,0x47,0x60, 0x5,0x4a,0x37, 0x5,0x4a,0x3f, 0x5,0x4a,0x36, - 0x5,0x51,0x4e, 0x5,0x4a,0x3b, 0x6,0x62,0x77, 0x6,0x62,0x7b, - 0x5,0x4a,0x42, 0x5,0x4a,0x3c, 0x5,0x4a,0x39, 0x5,0x4a,0x40, - 0x5,0x4a,0x41, 0x5,0x4a,0x3d, 0x5,0x43,0x44, 0x5,0x4a,0x38, - 0x5,0x4a,0x44, 0x6,0x62,0x7e, 0x5,0x4a,0x46, 0x6,0x62,0x79, - 0x5,0x4a,0x47, 0xf,0x4c,0x5a, 0xf,0x4c,0x5b, 0x6,0x62,0x78, - 0x6,0x62,0x7a, 0x6,0x62,0x7d, 0x6,0x63,0x21, 0x6,0x62,0x7c, - 0x5,0x4a,0x3a, 0x7,0x29,0x46, 0x4,0x4d,0x7a, 0x5,0x51,0x4c, - 0x5,0x51,0x47, 0x5,0x51,0x4a, 0x5,0x51,0x4f, 0x7,0x29,0x45, - 0x7,0x29,0x49, 0x4,0x4d,0x7c, 0x7,0x29,0x4d, 0x4,0x4d,0x7b, - 0x5,0x51,0x4b, 0x5,0x51,0x4d, 0x4,0x4e,0x24, 0x5,0x51,0x51, - 0x5,0x51,0x52, 0x4,0x47,0x63, 0x7,0x29,0x4f, 0x5,0x51,0x49, - 0x7,0x29,0x4b, 0xf,0x52,0x42, 0xf,0x52,0x43, 0xf,0x52,0x44, - 0xf,0x52,0x45, 0x7,0x29,0x48, 0x7,0x29,0x4c, 0x7,0x29,0x47, - 0x7,0x29,0x4a, 0x5,0x51,0x50, 0x5,0x51,0x54, 0x5,0x51,0x55, - 0x5,0x4a,0x45, 0x7,0x34,0x21, 0x5,0x58,0x60, 0x5,0x4a,0x48, - 0x5,0x58,0x69, 0x4,0x54,0x2a, 0x7,0x33,0x7a, 0x5,0x58,0x63, - 0x7,0x33,0x7e, 0x7,0x34,0x23, 0x7,0x33,0x7c, 0x5,0x58,0x5f, - 0x7,0x33,0x7b, 0x7,0x34,0x25, 0x5,0x51,0x53, 0x7,0x34,0x26, - 0x5,0x58,0x67, 0x5,0x58,0x68, 0x5,0x58,0x5e, 0x5,0x58,0x61, - 0x7,0x33,0x7d, 0x5,0x58,0x65, 0x5,0x58,0x64, 0x7,0x34,0x24, - 0x4,0x54,0x2b, 0x5,0x58,0x66, 0x4,0x54,0x2c, 0xf,0x58,0x31, - 0xf,0x58,0x32, 0x7,0x34,0x22, 0x5,0x5e,0x7a, 0x5,0x5e,0x7d, - 0x5,0x5e,0x75, 0x7,0x3c,0x40, 0x5,0x5e,0x76, 0x5,0x5e,0x7c, - 0x5,0x5e,0x78, 0x4,0x59,0x29, 0x7,0x3c,0x3e, 0x7,0x43,0x67, - 0x7,0x3c,0x43, 0x5,0x5e,0x7e, 0x4,0x59,0x2e, 0x7,0x3c,0x3b, - 0x7,0x3c,0x42, 0x7,0x3c,0x44, 0x5,0x5e,0x79, 0x4,0x59,0x27, - 0x7,0x3c,0x41, 0x7,0x34,0x27, 0x7,0x3c,0x3f, 0x4,0x59,0x2f, - 0xf,0x5c,0x77, 0x7,0x3c,0x3d, 0xf,0x5c,0x79, 0x5,0x5e,0x77, - 0x5,0x5e,0x74, 0x7,0x43,0x62, 0x4,0x5d,0x70, 0x7,0x43,0x66, - 0x4,0x5d,0x6f, 0x5,0x65,0x21, 0x5,0x65,0x22, 0x5,0x65,0x2d, - 0x5,0x65,0x26, 0x4,0x5d,0x71, 0x5,0x65,0x2c, 0x5,0x65,0x28, - 0x7,0x43,0x5f, 0x5,0x69,0x70, 0x7,0x43,0x65, 0x7,0x43,0x5c, - 0x5,0x65,0x2e, 0x7,0x43,0x5e, 0x5,0x65,0x24, 0x7,0x43,0x61, - 0x5,0x65,0x23, 0x5,0x65,0x29, 0x4,0x5f,0x33, 0x4,0x5d,0x76, - 0x5,0x65,0x25, 0xf,0x60,0x7e, 0xf,0x61,0x21, 0xf,0x61,0x22, - 0xf,0x61,0x23, 0xf,0x61,0x24, 0xf,0x61,0x25, 0x7,0x43,0x6b, - 0x5,0x65,0x27, 0x7,0x43,0x60, 0x7,0x43,0x69, 0x7,0x43,0x68, - 0x7,0x43,0x6a, 0x7,0x43,0x5d, 0x5,0x65,0x2b, 0x7,0x43,0x63, - 0x7,0x3c,0x3c, 0x5,0x65,0x2f, 0x5,0x69,0x6a, 0x7,0x4a,0x65, - 0x5,0x69,0x6f, 0x5,0x69,0x71, 0x7,0x4a,0x68, 0x5,0x69,0x74, - 0x7,0x4a,0x5b, 0x5,0x65,0x2a, 0x5,0x69,0x6e, 0x7,0x4a,0x58, - 0x5,0x69,0x6d, 0x5,0x69,0x72, 0x4,0x61,0x55, 0x7,0x4a,0x54, - 0x4,0x5d,0x73, 0x7,0x4a,0x59, 0x7,0x43,0x64, 0x7,0x4a,0x5e, - 0x5,0x69,0x73, 0x7,0x4a,0x5a, 0x7,0x4a,0x66, 0x7,0x4a,0x55, - 0x7,0x4a,0x5c, 0x5,0x69,0x6b, 0x5,0x69,0x6c, 0x7,0x4a,0x61, - 0x7,0x4a,0x62, 0x7,0x4a,0x63, 0x7,0x4a,0x5f, 0x5,0x69,0x76, - 0x5,0x69,0x75, 0x7,0x4a,0x60, 0x7,0x4a,0x5d, 0x7,0x4a,0x67, - 0x7,0x4a,0x56, 0x7,0x4a,0x64, 0x4,0x61,0x53, 0x4,0x64,0x59, - 0x5,0x6d,0x7d, 0x5,0x6d,0x77, 0x7,0x50,0x44, 0x5,0x6d,0x7b, - 0x5,0x6d,0x76, 0x5,0x6d,0x79, 0x7,0x50,0x48, 0x7,0x50,0x46, - 0x4,0x64,0x5c, 0x5,0x6d,0x73, 0x4,0x64,0x5d, 0x7,0x50,0x47, - 0x5,0x6d,0x78, 0x5,0x6d,0x75, 0x5,0x6d,0x74, 0x7,0x50,0x49, - 0xf,0x66,0x43, 0xf,0x66,0x44, 0xf,0x66,0x45, 0xf,0x66,0x46, - 0xf,0x66,0x47, 0x7,0x50,0x45, 0x7,0x50,0x4a, 0x7,0x50,0x4b, - 0x5,0x6d,0x7c, 0x5,0x6d,0x7e, 0x5,0x6d,0x7a, 0x4,0x67,0x4e, - 0x7,0x55,0x42, 0x4,0x67,0x4f, 0x5,0x71,0x4b, 0x7,0x55,0x41, - 0x7,0x55,0x44, 0x4,0x67,0x4d, 0x4,0x67,0x4b, 0x5,0x71,0x4c, - 0x7,0x55,0x43, 0x7,0x55,0x40, 0x5,0x71,0x4a, 0xf,0x68,0x51, - 0xf,0x68,0x52, 0x5,0x74,0x4a, 0x7,0x55,0x45, 0x7,0x59,0x4c, - 0x5,0x74,0x4d, 0x5,0x74,0x4f, 0x5,0x74,0x4e, 0x5,0x74,0x4c, - 0x7,0x59,0x4d, 0x5,0x74,0x51, 0x7,0x59,0x4e, 0xf,0x69,0x7a, - 0x7,0x59,0x4f, 0x5,0x74,0x50, 0x5,0x76,0x54, 0x5,0x76,0x52, - 0x5,0x76,0x55, 0x7,0x5c,0x79, 0x7,0x5c,0x78, 0x5,0x76,0x53, - 0x5,0x76,0x51, 0x4,0x6c,0x2b, 0x7,0x5f,0x61, 0x5,0x78,0x37, - 0x5,0x78,0x36, 0x4,0x6c,0x2a, 0x5,0x78,0x38, 0x7,0x5f,0x62, - 0x7,0x61,0x4f, 0x7,0x5f,0x63, 0x7,0x61,0x52, 0x4,0x6d,0x28, - 0x7,0x61,0x54, 0x7,0x62,0x67, 0x7,0x61,0x53, 0x7,0x61,0x51, - 0x7,0x61,0x50, 0xf,0x6b,0x67, 0x5,0x7a,0x3c, 0x5,0x7a,0x3b, - 0x5,0x7a,0x3d, 0x7,0x63,0x76, 0x5,0x7b,0x4a, 0x7,0x64,0x63, - 0x5,0x7b,0x6a, 0xf,0x6d,0x28, 0x7,0x65,0x65, 0xf,0x6d,0x33, - 0x6,0x23,0x39, 0x6,0x23,0x3a, 0x6,0x25,0x55, 0x5,0x30,0x52, - 0x6,0x3c,0x44, 0x5,0x30,0x51, 0x5,0x35,0x7a, 0x5,0x35,0x79, - 0x5,0x35,0x78, 0x6,0x45,0x3e, 0x6,0x45,0x41, 0x6,0x45,0x40, - 0x6,0x45,0x42, 0x6,0x45,0x3f, 0x6,0x45,0x43, 0x6,0x45,0x44, - 0x4,0x35,0x60, 0xf,0x38,0x6b, 0x5,0x3c,0x65, 0x6,0x4f,0x3f, - 0x5,0x3c,0x64, 0x6,0x4f,0x41, 0x6,0x4f,0x3e, 0x5,0x3c,0x66, - 0xf,0x3f,0x55, 0xf,0x3f,0x56, 0xf,0x3f,0x57, 0xf,0x3f,0x58, - 0x6,0x4f,0x3d, 0x6,0x4f,0x40, 0x6,0x58,0x7d, 0x5,0x43,0x4d, - 0x6,0x58,0x7a, 0x6,0x58,0x7e, 0x6,0x59,0x21, 0xf,0x45,0x5a, - 0xf,0x45,0x5b, 0xf,0x45,0x5c, 0x6,0x58,0x7b, 0x6,0x58,0x7c, - 0x6,0x59,0x22, 0x5,0x4a,0x4a, 0x6,0x63,0x23, 0x6,0x63,0x24, - 0x5,0x4a,0x49, 0x6,0x63,0x25, 0x6,0x63,0x26, 0xf,0x4c,0x5c, - 0xf,0x4c,0x5d, 0xf,0x4c,0x5e, 0x7,0x29,0x51, 0x5,0x51,0x56, - 0x4,0x4e,0x25, 0xf,0x52,0x46, 0xf,0x52,0x48, 0x7,0x29,0x50, - 0x5,0x58,0x6a, 0x4,0x54,0x31, 0x5,0x58,0x6b, 0x7,0x34,0x28, - 0x7,0x3c,0x46, 0xf,0x58,0x34, 0xf,0x58,0x36, 0x7,0x3c,0x48, - 0x7,0x3c,0x47, 0x7,0x3c,0x45, 0x5,0x5f,0x21, 0xf,0x5c,0x7a, - 0xf,0x5c,0x7b, 0x5,0x65,0x30, 0x7,0x43,0x6c, 0xf,0x61,0x26, - 0xf,0x61,0x27, 0x7,0x4a,0x6c, 0x7,0x4a,0x6d, 0x7,0x4a,0x6a, - 0xf,0x64,0x26, 0xf,0x64,0x27, 0x7,0x4a,0x6b, 0x7,0x4a,0x69, - 0x4,0x64,0x5e, 0x7,0x50,0x4d, 0xf,0x66,0x48, 0xf,0x66,0x49, - 0x7,0x50,0x4e, 0x7,0x55,0x46, 0x5,0x71,0x4d, 0x7,0x55,0x47, - 0x7,0x55,0x48, 0x7,0x55,0x49, 0x7,0x59,0x50, 0xf,0x69,0x7c, - 0x5,0x76,0x56, 0x5,0x79,0x51, 0x6,0x34,0x5c, 0x5,0x2b,0x4e, - 0x6,0x34,0x5e, 0xf,0x2d,0x52, 0xf,0x2d,0x54, 0x6,0x3c,0x45, - 0x5,0x30,0x54, 0x6,0x3c,0x47, 0xf,0x32,0x5f, 0xf,0x32,0x60, - 0x6,0x3c,0x46, 0x5,0x30,0x53, 0xf,0x32,0x5e, 0x5,0x35,0x7b, - 0x6,0x45,0x4e, 0x6,0x45,0x4d, 0x6,0x45,0x46, 0x4,0x35,0x64, - 0x5,0x36,0x22, 0x5,0x36,0x21, 0x6,0x45,0x4a, 0x5,0x35,0x7d, - 0x6,0x45,0x47, 0x6,0x45,0x4c, 0x6,0x45,0x4b, 0x5,0x35,0x7c, - 0x5,0x35,0x7e, 0xf,0x38,0x6d, 0x6,0x45,0x48, 0x6,0x45,0x49, - 0x4,0x35,0x65, 0x6,0x4f,0x46, 0x6,0x4f,0x47, 0x5,0x3c,0x70, - 0x5,0x3c,0x6e, 0x6,0x4f,0x45, 0x6,0x4f,0x44, 0x6,0x4f,0x42, - 0x5,0x36,0x23, 0x5,0x3c,0x6d, 0x5,0x3c,0x68, 0x5,0x3c,0x6b, - 0x5,0x3c,0x6a, 0x6,0x4f,0x43, 0x5,0x3c,0x69, 0x5,0x3c,0x71, - 0x5,0x3c,0x6c, 0x5,0x3c,0x6f, 0x6,0x59,0x23, 0x6,0x59,0x28, - 0x5,0x43,0x53, 0x6,0x59,0x26, 0x6,0x59,0x29, 0x5,0x43,0x51, - 0x4,0x41,0x2b, 0x5,0x43,0x52, 0x5,0x43,0x4f, 0x6,0x59,0x27, - 0x5,0x43,0x4e, 0xf,0x45,0x5d, 0xf,0x45,0x5e, 0xf,0x45,0x5f, - 0x6,0x59,0x25, 0x4,0x41,0x2d, 0x5,0x43,0x54, 0x6,0x63,0x2d, - 0x6,0x63,0x2f, 0x5,0x4a,0x50, 0x4,0x47,0x68, 0x6,0x63,0x28, - 0x6,0x63,0x2b, 0x5,0x4a,0x4d, 0x6,0x63,0x2c, 0x6,0x63,0x27, - 0x6,0x63,0x30, 0x5,0x4a,0x4b, 0x5,0x4a,0x4e, 0x6,0x63,0x31, - 0x6,0x63,0x2e, 0xf,0x4c,0x5f, 0xf,0x4c,0x60, 0xf,0x4c,0x61, - 0xf,0x4c,0x63, 0x5,0x4a,0x4f, 0x5,0x4a,0x4c, 0x7,0x29,0x59, - 0x6,0x63,0x2a, 0x5,0x51,0x60, 0x7,0x29,0x57, 0x7,0x29,0x5e, - 0x7,0x29,0x62, 0x7,0x29,0x56, 0x5,0x51,0x59, 0x7,0x29,0x5a, - 0x7,0x29,0x55, 0x7,0x29,0x5c, 0x5,0x51,0x58, 0x5,0x51,0x5b, - 0x5,0x51,0x5e, 0x4,0x4e,0x2c, 0x6,0x63,0x29, 0x7,0x29,0x58, - 0x7,0x29,0x5d, 0x7,0x29,0x5b, 0x5,0x51,0x5d, 0x5,0x51,0x5f, - 0x7,0x29,0x52, 0x5,0x51,0x57, 0x7,0x29,0x54, 0x7,0x29,0x63, - 0xf,0x52,0x49, 0xf,0x52,0x4a, 0xf,0x52,0x4b, 0xf,0x52,0x4c, - 0x7,0x29,0x53, 0x7,0x29,0x5f, 0x7,0x29,0x60, 0x7,0x29,0x61, - 0x5,0x51,0x5c, 0x5,0x51,0x5a, 0x7,0x34,0x29, 0x5,0x58,0x73, - 0x7,0x34,0x2f, 0x5,0x58,0x74, 0x7,0x34,0x2d, 0x5,0x58,0x70, - 0x7,0x34,0x2b, 0x7,0x34,0x34, 0x5,0x58,0x6e, 0x5,0x58,0x71, - 0x5,0x58,0x6d, 0x7,0x34,0x35, 0x7,0x34,0x30, 0x7,0x34,0x36, - 0x5,0x58,0x6c, 0x7,0x34,0x33, 0xf,0x58,0x37, 0xf,0x58,0x39, - 0xf,0x58,0x3a, 0x7,0x34,0x2c, 0x7,0x34,0x2e, 0x7,0x34,0x2a, - 0xf,0x58,0x38, 0x4,0x54,0x35, 0x5,0x58,0x6f, 0x7,0x3c,0x4a, - 0x7,0x3c,0x52, 0x5,0x5f,0x25, 0x7,0x3c,0x4d, 0x7,0x3c,0x4c, - 0x7,0x3c,0x4b, 0x7,0x3c,0x53, 0x4,0x59,0x33, 0x7,0x3c,0x50, - 0x4,0x59,0x34, 0x7,0x3c,0x51, 0x5,0x5f,0x22, 0x5,0x5f,0x2b, - 0x4,0x59,0x36, 0x5,0x5f,0x28, 0x5,0x5f,0x27, 0x7,0x3c,0x54, - 0x5,0x5f,0x24, 0x5,0x5f,0x2a, 0x7,0x3c,0x49, 0xf,0x5c,0x7c, - 0xf,0x5c,0x7d, 0x7,0x3c,0x4e, 0x7,0x3c,0x4f, 0x5,0x5f,0x26, - 0x5,0x5f,0x23, 0x5,0x5f,0x29, 0x4,0x5d,0x79, 0x7,0x43,0x70, - 0x4,0x5e,0x21, 0x5,0x65,0x32, 0x5,0x65,0x34, 0xf,0x61,0x28, - 0xf,0x61,0x29, 0xf,0x61,0x2a, 0x7,0x43,0x6f, 0x7,0x43,0x72, - 0x7,0x43,0x71, 0x7,0x43,0x6e, 0x7,0x43,0x6d, 0x5,0x65,0x31, - 0x5,0x65,0x33, 0x5,0x69,0x78, 0x7,0x4a,0x6e, 0x7,0x4a,0x71, - 0x7,0x4a,0x6f, 0x7,0x4a,0x70, 0x5,0x69,0x7a, 0x4,0x61,0x5a, - 0x4,0x61,0x5b, 0x5,0x69,0x79, 0x5,0x69,0x77, 0x5,0x69,0x7b, - 0x7,0x4a,0x72, 0xf,0x64,0x28, 0x7,0x4a,0x74, 0x4,0x64,0x62, - 0x5,0x6e,0x25, 0x5,0x6e,0x23, 0x7,0x50,0x53, 0x5,0x6e,0x24, - 0x5,0x6e,0x22, 0x7,0x50,0x51, 0x5,0x6e,0x21, 0xf,0x66,0x4a, - 0x7,0x50,0x52, 0x7,0x50,0x50, 0x7,0x50,0x4f, 0x5,0x6e,0x26, - 0x7,0x50,0x54, 0x4,0x67,0x53, 0x5,0x71,0x4e, 0x4,0x67,0x54, - 0x7,0x55,0x4c, 0x7,0x55,0x4b, 0x7,0x55,0x4a, 0x7,0x59,0x56, - 0x4,0x69,0x50, 0x7,0x59,0x52, 0x7,0x59,0x51, 0x4,0x69,0x51, - 0x7,0x59,0x57, 0x7,0x59,0x53, 0x7,0x59,0x54, 0x7,0x59,0x55, - 0x7,0x5c,0x7e, 0x7,0x5d,0x21, 0x5,0x76,0x57, 0x7,0x5c,0x7b, - 0x7,0x5c,0x7a, 0x7,0x5c,0x7c, 0x7,0x5c,0x7d, 0x5,0x76,0x59, - 0x5,0x76,0x58, 0x5,0x78,0x3c, 0x5,0x78,0x3b, 0x5,0x78,0x3a, - 0x7,0x5f,0x67, 0x7,0x5f,0x65, 0x7,0x5f,0x64, 0x5,0x78,0x39, - 0x7,0x5f,0x66, 0x5,0x79,0x53, 0x5,0x79,0x52, 0x5,0x7a,0x3e, - 0x5,0x7a,0x3f, 0x7,0x62,0x68, 0x5,0x7a,0x7a, 0x7,0x64,0x64, - 0x7,0x62,0x69, 0x7,0x63,0x77, 0x5,0x7b,0x6b, 0x7,0x65,0x66, - 0x6,0x29,0x2b, 0x6,0x2e,0x36, 0x6,0x3c,0x48, 0x6,0x45,0x4f, - 0x5,0x36,0x25, 0x5,0x36,0x24, 0x4,0x41,0x2e, 0x6,0x59,0x2a, - 0xf,0x45,0x61, 0x5,0x4a,0x51, 0xf,0x4c,0x65, 0xf,0x4c,0x66, - 0x5,0x4a,0x52, 0x7,0x29,0x64, 0x7,0x29,0x65, 0x7,0x29,0x66, - 0x5,0x51,0x62, 0x7,0x34,0x37, 0x5,0x58,0x75, 0x7,0x34,0x38, - 0xf,0x58,0x3b, 0x5,0x5f,0x2d, 0x5,0x5f,0x2c, 0xf,0x5c,0x7e, - 0xf,0x5d,0x21, 0xf,0x5d,0x22, 0xf,0x5d,0x23, 0x5,0x5f,0x2e, - 0x5,0x65,0x37, 0x5,0x65,0x36, 0x7,0x43,0x73, 0x7,0x4a,0x75, - 0x4,0x61,0x5c, 0x7,0x4a,0x76, 0xf,0x66,0x4b, 0x7,0x50,0x55, - 0xf,0x68,0x54, 0x7,0x59,0x58, 0x7,0x5f,0x68, 0x7,0x65,0x47, - 0x7,0x65,0x67, 0x6,0x29,0x2c, 0x6,0x2e,0x37, 0x6,0x59,0x2d, - 0x6,0x59,0x2c, 0x6,0x59,0x2b, 0xf,0x52,0x4d, 0x7,0x33,0x21, - 0x4,0x61,0x5d, 0x7,0x55,0x4d, 0x6,0x25,0x59, 0x6,0x25,0x58, - 0x6,0x25,0x57, 0x4,0x24,0x7e, 0x6,0x29,0x2d, 0x4,0x25,0x24, - 0x6,0x3c,0x49, 0x6,0x29,0x2e, 0xf,0x25,0x33, 0xf,0x25,0x34, - 0x6,0x3c,0x4a, 0x6,0x29,0x2f, 0x5,0x24,0x78, 0x6,0x3c,0x4b, - 0x6,0x45,0x50, 0x5,0x27,0x6a, 0x5,0x27,0x6b, 0x5,0x27,0x70, - 0x6,0x2e,0x38, 0x6,0x2e,0x3d, 0x5,0x27,0x6f, 0x4,0x28,0x25, - 0x5,0x27,0x71, 0x5,0x27,0x6d, 0x4,0x28,0x28, 0x6,0x2e,0x3b, - 0xf,0x28,0x6d, 0xf,0x28,0x6f, 0xf,0x28,0x70, 0xf,0x28,0x73, - 0xf,0x28,0x74, 0xf,0x28,0x75, 0x6,0x2e,0x3a, 0x6,0x2e,0x3f, - 0x5,0x27,0x6e, 0x5,0x27,0x68, 0x6,0x2e,0x3c, 0x5,0x27,0x6c, - 0x6,0x2e,0x39, 0x6,0x2e,0x3e, 0x5,0x2b,0x4f, 0x5,0x2b,0x56, - 0x5,0x2b,0x52, 0x6,0x34,0x5f, 0x5,0x2b,0x51, 0x6,0x34,0x62, - 0x5,0x2b,0x55, 0x5,0x2b,0x53, 0x4,0x2b,0x4f, 0x4,0x2b,0x51, - 0x5,0x2b,0x50, 0x6,0x34,0x64, 0x6,0x34,0x63, 0xf,0x2d,0x55, - 0xf,0x2d,0x56, 0xf,0x2d,0x57, 0xf,0x2d,0x58, 0xf,0x2d,0x59, - 0x4,0x2b,0x52, 0x6,0x34,0x65, 0x6,0x34,0x61, 0x6,0x4a,0x47, - 0x5,0x2b,0x57, 0x5,0x2b,0x54, 0x6,0x3c,0x54, 0x6,0x3c,0x58, - 0x5,0x30,0x5b, 0x6,0x3c,0x53, 0x5,0x30,0x56, 0x5,0x30,0x5a, - 0x4,0x30,0x31, 0x5,0x30,0x57, 0x5,0x30,0x59, 0x6,0x3c,0x52, - 0x6,0x3c,0x4c, 0x6,0x3c,0x56, 0x4,0x30,0x32, 0x6,0x3c,0x57, - 0x6,0x3c,0x4d, 0x5,0x43,0x55, 0x6,0x3c,0x55, 0x5,0x30,0x58, - 0x6,0x3c,0x50, 0x6,0x3c,0x4e, 0x5,0x30,0x5c, 0x5,0x36,0x27, - 0x5,0x36,0x26, 0x6,0x3c,0x4f, 0x6,0x45,0x5b, 0x5,0x36,0x2c, - 0x4,0x35,0x6a, 0x6,0x45,0x5c, 0x5,0x36,0x2b, 0x6,0x3c,0x51, - 0x5,0x36,0x29, 0x6,0x45,0x57, 0x6,0x45,0x5a, 0xf,0x38,0x70, - 0xf,0x38,0x71, 0xf,0x38,0x72, 0x6,0x45,0x56, 0x6,0x45,0x54, - 0x6,0x45,0x55, 0x6,0x45,0x52, 0x6,0x45,0x5d, 0x6,0x45,0x58, - 0x6,0x45,0x53, 0x5,0x36,0x2a, 0x4,0x35,0x67, 0x6,0x45,0x59, - 0x5,0x36,0x2d, 0x5,0x36,0x28, 0xf,0x38,0x6f, 0x6,0x45,0x51, - 0x5,0x3c,0x76, 0x5,0x3c,0x72, 0x5,0x3c,0x78, 0x5,0x3c,0x77, - 0x4,0x3b,0x56, 0x6,0x4f,0x53, 0x4,0x3b,0x5a, 0x4,0x3b,0x58, - 0x5,0x3c,0x79, 0x6,0x4f,0x52, 0x7,0x29,0x67, 0x6,0x4f,0x4d, - 0x6,0x4f,0x4c, 0x6,0x4f,0x50, 0x6,0x4f,0x4f, 0x4,0x3b,0x5b, - 0x6,0x4f,0x49, 0x6,0x4f,0x4b, 0xf,0x3f,0x62, 0x6,0x4f,0x51, - 0x6,0x4f,0x54, 0x6,0x4f,0x55, 0x6,0x4f,0x4a, 0xf,0x3f,0x59, - 0xf,0x3f,0x5a, 0xf,0x3f,0x5b, 0xf,0x3f,0x5c, 0xf,0x3f,0x5d, - 0xf,0x3f,0x5f, 0xf,0x3f,0x60, 0xf,0x3f,0x61, 0x5,0x3c,0x75, - 0x6,0x4f,0x4e, 0x5,0x3c,0x74, 0x5,0x3c,0x73, 0x4,0x3b,0x59, - 0x6,0x4f,0x56, 0x6,0x59,0x40, 0x6,0x59,0x34, 0x6,0x59,0x3d, - 0x6,0x59,0x30, 0x4,0x41,0x31, 0x4,0x41,0x30, 0x6,0x59,0x2e, - 0x5,0x43,0x59, 0x6,0x59,0x31, 0x6,0x59,0x41, 0x6,0x59,0x3b, - 0x6,0x59,0x3f, 0x6,0x59,0x37, 0x6,0x59,0x35, 0x6,0x59,0x43, - 0x6,0x59,0x42, 0x5,0x3c,0x7a, 0x4,0x41,0x32, 0x6,0x59,0x33, - 0x6,0x59,0x3e, 0xf,0x45,0x62, 0xf,0x45,0x63, 0xf,0x45,0x64, - 0xf,0x45,0x65, 0xf,0x45,0x66, 0xf,0x45,0x67, 0xf,0x45,0x68, - 0xf,0x45,0x69, 0xf,0x45,0x6a, 0xf,0x45,0x6b, 0xf,0x45,0x6c, - 0x6,0x59,0x32, 0x6,0x59,0x36, 0x6,0x59,0x3c, 0x6,0x59,0x39, - 0x6,0x59,0x38, 0x6,0x59,0x3a, 0x6,0x59,0x2f, 0x5,0x43,0x58, - 0x5,0x43,0x57, 0x5,0x43,0x56, 0x6,0x63,0x35, 0x6,0x63,0x34, - 0x6,0x63,0x37, 0x6,0x63,0x32, 0x6,0x63,0x3a, 0x5,0x4a,0x54, - 0x6,0x63,0x36, 0x6,0x63,0x38, 0x6,0x63,0x3c, 0x5,0x4a,0x53, - 0x5,0x4a,0x56, 0x6,0x63,0x33, 0x6,0x63,0x3b, 0x7,0x3c,0x55, - 0xf,0x4c,0x69, 0xf,0x4c,0x6a, 0xf,0x4c,0x6c, 0xf,0x4c,0x6d, - 0xf,0x4c,0x6e, 0xf,0x4c,0x6f, 0xf,0x4c,0x70, 0xf,0x4c,0x71, - 0xf,0x4c,0x72, 0x6,0x63,0x39, 0x7,0x3c,0x56, 0x7,0x3c,0x57, - 0x7,0x3c,0x58, 0x5,0x4a,0x55, 0x7,0x29,0x6e, 0x7,0x29,0x6c, - 0x7,0x29,0x72, 0x7,0x29,0x69, 0x7,0x29,0x6b, 0x4,0x4e,0x2f, - 0x5,0x51,0x64, 0x4,0x4e,0x30, 0x5,0x51,0x68, 0x5,0x51,0x65, - 0x4,0x4e,0x34, 0x7,0x29,0x70, 0xf,0x52,0x4e, 0xf,0x52,0x4f, - 0xf,0x52,0x50, 0xf,0x52,0x51, 0xf,0x52,0x52, 0x5,0x51,0x6d, - 0x7,0x29,0x6a, 0x7,0x29,0x6f, 0x7,0x29,0x74, 0x7,0x29,0x75, - 0x7,0x29,0x71, 0x7,0x29,0x73, 0x7,0x43,0x74, 0x7,0x29,0x68, - 0x7,0x43,0x75, 0x7,0x29,0x6d, 0x5,0x51,0x69, 0x5,0x51,0x67, - 0x5,0x51,0x6c, 0x5,0x51,0x66, 0x5,0x51,0x6a, 0x5,0x51,0x6b, - 0x5,0x51,0x63, 0x7,0x34,0x46, 0x5,0x58,0x7c, 0x5,0x58,0x7b, - 0x5,0x58,0x79, 0x7,0x34,0x41, 0x5,0x58,0x77, 0x7,0x34,0x45, - 0x7,0x34,0x3e, 0x7,0x34,0x47, 0x4,0x54,0x36, 0x7,0x34,0x42, - 0x7,0x34,0x44, 0x7,0x34,0x39, 0x7,0x34,0x4a, 0x7,0x4a,0x77, - 0x7,0x34,0x3c, 0x7,0x34,0x40, 0x7,0x34,0x4c, 0xf,0x58,0x3c, - 0xf,0x58,0x3d, 0xf,0x58,0x3e, 0x7,0x34,0x3d, 0xf,0x58,0x3f, - 0x7,0x2c,0x5a, 0x7,0x34,0x48, 0x7,0x34,0x3b, 0x7,0x34,0x3a, - 0x7,0x34,0x43, 0x7,0x34,0x4b, 0x5,0x58,0x78, 0x5,0x58,0x7d, - 0x5,0x58,0x7a, 0x7,0x34,0x3f, 0x5,0x58,0x76, 0x5,0x5f,0x2f, - 0x4,0x59,0x3a, 0x7,0x3c,0x60, 0x5,0x5f,0x33, 0x7,0x3c,0x5d, - 0x5,0x5f,0x34, 0x7,0x3c,0x5b, 0x7,0x50,0x57, 0x7,0x34,0x49, - 0x7,0x3c,0x62, 0x7,0x3c,0x5e, 0x5,0x5f,0x32, 0x5,0x5f,0x35, - 0xf,0x5d,0x24, 0xf,0x5d,0x26, 0xf,0x5d,0x27, 0xf,0x5d,0x28, - 0x7,0x3c,0x59, 0x7,0x3c,0x5c, 0x7,0x3c,0x5f, 0x7,0x3c,0x63, - 0xf,0x5d,0x25, 0x5,0x5f,0x36, 0x5,0x5f,0x37, 0x5,0x5f,0x31, - 0x5,0x5f,0x30, 0x7,0x3c,0x5a, 0x5,0x65,0x3d, 0x7,0x43,0x7c, - 0x4,0x5e,0x22, 0x7,0x43,0x7a, 0x5,0x65,0x3a, 0x7,0x43,0x78, - 0xf,0x61,0x2b, 0xf,0x61,0x2c, 0xf,0x61,0x2d, 0x7,0x44,0x21, - 0x7,0x43,0x7e, 0x5,0x65,0x39, 0x7,0x43,0x7d, 0x7,0x43,0x76, - 0x7,0x43,0x79, 0x5,0x65,0x3c, 0x5,0x65,0x3b, 0x5,0x65,0x38, - 0x7,0x43,0x7b, 0x7,0x4b,0x21, 0x7,0x4b,0x22, 0x7,0x4a,0x7e, - 0xf,0x64,0x2a, 0xf,0x64,0x2b, 0xf,0x64,0x2d, 0xf,0x64,0x2e, - 0x7,0x4a,0x79, 0x7,0x4a,0x7a, 0x7,0x4a,0x7d, 0x7,0x4a,0x7b, - 0x7,0x4a,0x7c, 0x7,0x4a,0x78, 0x5,0x6a,0x21, 0x5,0x69,0x7e, - 0xf,0x64,0x2c, 0x7,0x50,0x5a, 0x5,0x6e,0x29, 0x7,0x50,0x59, - 0x5,0x6e,0x27, 0xf,0x66,0x4c, 0x7,0x50,0x58, 0x5,0x6e,0x28, - 0x7,0x5d,0x22, 0x4,0x67,0x55, 0x7,0x55,0x4f, 0x5,0x71,0x51, - 0x7,0x55,0x50, 0x7,0x55,0x4e, 0xf,0x68,0x55, 0xf,0x68,0x56, - 0xf,0x68,0x57, 0xf,0x68,0x58, 0x5,0x71,0x4f, 0x5,0x71,0x50, - 0x5,0x69,0x7d, 0x7,0x55,0x51, 0x5,0x71,0x52, 0x5,0x74,0x52, - 0x4,0x6b,0x25, 0x7,0x59,0x5b, 0x7,0x59,0x5a, 0x7,0x59,0x59, - 0x7,0x5d,0x23, 0x7,0x5d,0x25, 0x7,0x5d,0x24, 0x7,0x62,0x6a, - 0x7,0x5f,0x6a, 0x7,0x5f,0x69, 0x5,0x78,0x3d, 0x7,0x61,0x55, - 0x7,0x62,0x6b, 0x7,0x65,0x68, 0x6,0x29,0x30, 0x5,0x21,0x7c, - 0x5,0x23,0x2c, 0x5,0x23,0x2b, 0x5,0x23,0x2d, 0x5,0x23,0x2a, - 0x4,0x23,0x31, 0x6,0x25,0x5a, 0x6,0x25,0x5c, 0x4,0x23,0x33, - 0x4,0x25,0x27, 0x5,0x24,0x79, 0x4,0x25,0x26, 0x4,0x25,0x28, - 0x4,0x25,0x25, 0x6,0x29,0x33, 0x4,0x25,0x2a, 0x5,0x24,0x7a, - 0x4,0x35,0x71, 0x6,0x29,0x32, 0xf,0x25,0x35, 0xf,0x25,0x36, - 0xf,0x25,0x37, 0xf,0x38,0x73, 0xf,0x38,0x75, 0x6,0x45,0x61, - 0x6,0x45,0x5f, 0x6,0x45,0x60, 0x6,0x29,0x31, 0x4,0x25,0x29, - 0x4,0x28,0x2e, 0x6,0x45,0x5e, 0x4,0x28,0x2a, 0x4,0x28,0x2d, - 0x4,0x28,0x2c, 0x6,0x34,0x69, 0x4,0x28,0x2f, 0x5,0x27,0x72, - 0x5,0x27,0x73, 0x6,0x4f,0x58, 0x6,0x2e,0x43, 0xf,0x28,0x76, - 0xf,0x28,0x78, 0xf,0x28,0x79, 0xf,0x28,0x7c, 0x6,0x4f,0x5a, - 0x6,0x2e,0x41, 0x6,0x2e,0x42, 0x6,0x2e,0x40, 0xf,0x28,0x77, - 0xf,0x28,0x7b, 0x6,0x4f,0x57, 0x6,0x4f,0x59, 0x5,0x27,0x74, - 0x5,0x2b,0x5a, 0x5,0x2b,0x59, 0x5,0x2b,0x58, 0x4,0x2b,0x57, - 0x4,0x2b,0x55, 0x5,0x2b,0x5f, 0x4,0x41,0x33, 0x5,0x2b,0x5b, - 0xf,0x2d,0x5a, 0xf,0x45,0x6e, 0x6,0x59,0x45, 0x6,0x59,0x44, - 0x6,0x59,0x46, 0x6,0x34,0x6c, 0x6,0x34,0x66, 0x6,0x34,0x67, - 0x6,0x34,0x68, 0x6,0x34,0x6b, 0x6,0x34,0x6a, 0x5,0x2b,0x5e, - 0x5,0x2b,0x5c, 0x5,0x2b,0x5d, 0x5,0x30,0x61, 0x5,0x30,0x5d, - 0x4,0x30,0x36, 0x6,0x3c,0x5b, 0x5,0x30,0x65, 0x5,0x30,0x66, - 0x5,0x30,0x5e, 0x5,0x30,0x63, 0x5,0x30,0x5f, 0x4,0x30,0x35, - 0x6,0x3c,0x5d, 0x4,0x30,0x37, 0x6,0x3c,0x5f, 0x6,0x63,0x3d, - 0x6,0x63,0x3f, 0x6,0x63,0x40, 0x6,0x3c,0x5c, 0x6,0x3c,0x5e, - 0x6,0x3c,0x5a, 0x5,0x30,0x62, 0x5,0x30,0x64, 0x5,0x30,0x60, - 0x5,0x30,0x67, 0x6,0x63,0x3e, 0x6,0x3c,0x59, 0xf,0x32,0x62, - 0xf,0x32,0x63, 0xf,0x32,0x64, 0x5,0x51,0x6e, 0x4,0x4e,0x36, - 0x4,0x35,0x6f, 0x5,0x36,0x31, 0x5,0x36,0x30, 0x5,0x36,0x35, - 0x5,0x36,0x2e, 0x5,0x36,0x32, 0x4,0x35,0x6d, 0x6,0x45,0x66, - 0x5,0x36,0x34, 0x7,0x29,0x7a, 0x7,0x29,0x79, 0x6,0x45,0x68, - 0xf,0x32,0x61, 0xf,0x38,0x76, 0xf,0x52,0x54, 0x7,0x29,0x76, - 0x7,0x29,0x77, 0x7,0x29,0x7b, 0x7,0x29,0x78, 0x6,0x45,0x63, - 0x6,0x45,0x65, 0x6,0x45,0x64, 0x6,0x45,0x62, 0xf,0x33,0x3c, - 0x6,0x45,0x67, 0x5,0x36,0x2f, 0x5,0x36,0x33, 0x5,0x30,0x68, - 0x4,0x3b,0x5f, 0x5,0x3d,0x23, 0x5,0x3c,0x7e, 0x5,0x3d,0x22, - 0x4,0x3b,0x5d, 0x5,0x3d,0x24, 0x6,0x4f,0x64, 0x5,0x3d,0x21, - 0x5,0x43,0x67, 0x5,0x3c,0x7d, 0x5,0x3c,0x7c, 0x6,0x4f,0x62, - 0x6,0x4f,0x5b, 0x4,0x3b,0x5c, 0xf,0x3f,0x63, 0xf,0x3f,0x64, - 0xf,0x3f,0x65, 0xf,0x58,0x41, 0x7,0x34,0x4e, 0x6,0x4f,0x5d, - 0x6,0x4f,0x5c, 0x6,0x4f,0x5e, 0x6,0x4f,0x5f, 0x6,0x4f,0x60, - 0x6,0x4f,0x61, 0xf,0x3f,0x66, 0x6,0x4f,0x63, 0x7,0x34,0x4d, - 0x5,0x3c,0x7b, 0x7,0x3c,0x64, 0x5,0x43,0x5b, 0x5,0x43,0x60, - 0x5,0x43,0x63, 0x5,0x43,0x5e, 0x5,0x43,0x5d, 0x4,0x41,0x35, - 0x6,0x63,0x41, 0x5,0x43,0x5c, 0x5,0x43,0x62, 0x5,0x43,0x5f, - 0x5,0x43,0x64, 0x5,0x43,0x66, 0x4,0x41,0x37, 0x5,0x43,0x65, - 0x6,0x59,0x49, 0x5,0x43,0x5a, 0xf,0x45,0x6f, 0x6,0x59,0x48, - 0x6,0x59,0x4b, 0x5,0x43,0x61, 0x4,0x47,0x6f, 0x5,0x4a,0x5d, - 0x5,0x4a,0x5c, 0x5,0x4a,0x59, 0x5,0x4a,0x58, 0x5,0x4a,0x63, - 0x5,0x4a,0x5f, 0x5,0x4a,0x5b, 0x6,0x63,0x46, 0x6,0x63,0x43, - 0x6,0x63,0x42, 0x5,0x4a,0x61, 0x5,0x4a,0x62, 0x7,0x44,0x22, - 0x7,0x44,0x24, 0x7,0x44,0x23, 0x7,0x44,0x25, 0x6,0x63,0x45, - 0x5,0x4a,0x57, 0x4,0x47,0x72, 0x6,0x63,0x44, 0x5,0x65,0x3e, - 0x5,0x4a,0x5a, 0x5,0x4a,0x5e, 0x5,0x4a,0x64, 0x4,0x4e,0x38, - 0x7,0x4b,0x23, 0x5,0x51,0x72, 0x7,0x2a,0x21, 0x4,0x4e,0x37, - 0x5,0x51,0x73, 0x4,0x4e,0x39, 0x5,0x59,0x28, 0x5,0x51,0x6f, - 0x5,0x51,0x70, 0x7,0x29,0x7e, 0x7,0x2a,0x22, 0x4,0x4e,0x3a, - 0xf,0x52,0x53, 0xf,0x52,0x55, 0xf,0x52,0x56, 0x7,0x4b,0x26, - 0x7,0x4b,0x24, 0x7,0x2a,0x23, 0x7,0x2a,0x25, 0x7,0x2a,0x26, - 0x7,0x2a,0x24, 0x7,0x29,0x7c, 0x7,0x29,0x7d, 0x5,0x51,0x74, - 0x7,0x34,0x50, 0x5,0x51,0x71, 0x7,0x4b,0x25, 0x5,0x6e,0x2a, - 0x5,0x59,0x25, 0x5,0x59,0x26, 0x7,0x50,0x5c, 0x4,0x54,0x38, - 0x7,0x34,0x4f, 0x5,0x59,0x21, 0x5,0x59,0x24, 0x7,0x34,0x52, - 0x5,0x59,0x22, 0x5,0x59,0x23, 0x4,0x54,0x39, 0x7,0x34,0x51, - 0xf,0x58,0x40, 0x7,0x50,0x5d, 0x7,0x50,0x5b, 0x5,0x6e,0x2b, - 0x7,0x3c,0x65, 0x7,0x3c,0x69, 0x5,0x5f,0x38, 0x4,0x59,0x3b, - 0x5,0x5f,0x39, 0x7,0x55,0x52, 0x7,0x55,0x53, 0x7,0x55,0x54, - 0x7,0x3c,0x67, 0x7,0x3c,0x6a, 0x7,0x3c,0x66, 0x5,0x5f,0x3b, - 0x5,0x5f,0x3a, 0x7,0x55,0x55, 0x7,0x3c,0x68, 0x5,0x65,0x40, - 0x7,0x44,0x26, 0x7,0x44,0x27, 0x5,0x65,0x41, 0x5,0x6a,0x25, - 0x5,0x65,0x44, 0x7,0x44,0x29, 0x7,0x44,0x28, 0x5,0x65,0x42, - 0x5,0x65,0x43, 0x7,0x59,0x5c, 0x5,0x65,0x3f, 0x7,0x44,0x2a, - 0x7,0x4b,0x28, 0x7,0x44,0x2b, 0x5,0x6a,0x24, 0x7,0x4b,0x27, - 0x5,0x6a,0x23, 0x7,0x4b,0x2a, 0x7,0x4b,0x29, 0x4,0x61,0x60, - 0x5,0x59,0x27, 0x5,0x6a,0x22, 0x4,0x64,0x64, 0x5,0x6e,0x2c, - 0x7,0x50,0x5f, 0x7,0x50,0x61, 0x7,0x50,0x5e, 0x7,0x50,0x60, - 0x4,0x67,0x56, 0xf,0x68,0x59, 0x7,0x55,0x56, 0x7,0x55,0x57, - 0x7,0x59,0x5d, 0x7,0x55,0x58, 0xf,0x68,0x5a, 0x7,0x5d,0x26, - 0x7,0x5f,0x6b, 0x7,0x5f,0x6c, 0x5,0x7b,0x4b, 0x7,0x63,0x78, - 0x4,0x30,0x39, 0xf,0x32,0x65, 0x6,0x3c,0x60, 0x5,0x36,0x38, - 0x5,0x36,0x37, 0x6,0x45,0x72, 0x6,0x45,0x6e, 0x5,0x36,0x39, - 0x4,0x35,0x76, 0x6,0x45,0x6c, 0x6,0x45,0x73, 0x6,0x45,0x69, - 0x4,0x35,0x77, 0x5,0x36,0x3a, 0x6,0x45,0x70, 0x6,0x45,0x6f, - 0x6,0x45,0x6a, 0x6,0x45,0x6b, 0xf,0x38,0x77, 0x6,0x45,0x71, - 0x4,0x35,0x79, 0x6,0x45,0x6d, 0x6,0x45,0x74, 0x6,0x4f,0x6b, - 0x5,0x3d,0x25, 0x5,0x3d,0x26, 0x4,0x3b,0x65, 0x6,0x4f,0x69, - 0x5,0x43,0x6a, 0x4,0x3b,0x62, 0x4,0x3b,0x63, 0x6,0x4f,0x6a, - 0x6,0x4f,0x66, 0x6,0x4f,0x65, 0x4,0x3b,0x61, 0x6,0x4f,0x67, - 0x6,0x4f,0x68, 0xf,0x3f,0x68, 0xf,0x3f,0x69, 0xf,0x3f,0x6a, - 0xf,0x3f,0x6b, 0x6,0x4f,0x6c, 0x5,0x43,0x69, 0x5,0x43,0x6c, - 0x5,0x43,0x68, 0x6,0x59,0x4e, 0x6,0x59,0x4d, 0x5,0x43,0x6b, - 0x6,0x63,0x4a, 0x5,0x4a,0x66, 0x5,0x4a,0x65, 0xf,0x4c,0x73, - 0xf,0x4c,0x74, 0xf,0x4c,0x75, 0xf,0x4c,0x77, 0x6,0x63,0x49, - 0x6,0x63,0x48, 0xf,0x4c,0x78, 0x6,0x63,0x47, 0x7,0x2a,0x28, - 0x5,0x51,0x78, 0x7,0x2a,0x2c, 0x5,0x51,0x79, 0x5,0x51,0x75, - 0x7,0x2a,0x30, 0x5,0x51,0x76, 0x7,0x2a,0x2f, 0x7,0x2a,0x2e, - 0x7,0x2a,0x2d, 0x7,0x2a,0x29, 0x7,0x2a,0x27, 0x5,0x51,0x77, - 0xf,0x4c,0x76, 0xf,0x52,0x58, 0xf,0x52,0x59, 0x7,0x2a,0x2a, - 0x7,0x2a,0x2b, 0x7,0x2a,0x32, 0x7,0x2a,0x31, 0x7,0x34,0x56, - 0x7,0x34,0x55, 0x5,0x59,0x29, 0x7,0x34,0x58, 0x5,0x59,0x2c, - 0x7,0x34,0x5a, 0x4,0x54,0x41, 0x7,0x34,0x5f, 0x4,0x54,0x3e, - 0x4,0x54,0x3f, 0x7,0x34,0x5e, 0x5,0x59,0x2a, 0x7,0x34,0x57, - 0x7,0x34,0x5d, 0x7,0x34,0x5c, 0x5,0x59,0x2b, 0xf,0x58,0x42, - 0xf,0x58,0x43, 0x7,0x34,0x59, 0x7,0x34,0x5b, 0x7,0x34,0x53, - 0x7,0x34,0x60, 0x5,0x5f,0x41, 0x5,0x5f,0x3f, 0x5,0x5f,0x40, - 0x5,0x5f,0x43, 0x4,0x59,0x40, 0x7,0x3c,0x6c, 0x5,0x5f,0x42, - 0x4,0x59,0x3e, 0x7,0x3c,0x6e, 0x5,0x5f,0x3e, 0x7,0x3c,0x74, - 0x5,0x5f,0x44, 0x7,0x3c,0x6d, 0x7,0x3c,0x73, 0xf,0x5d,0x2a, - 0xf,0x5d,0x2b, 0xf,0x5d,0x2c, 0x7,0x3c,0x6f, 0x7,0x3c,0x71, - 0x7,0x3c,0x72, 0x5,0x5f,0x3d, 0x5,0x65,0x46, 0x5,0x65,0x47, - 0x5,0x65,0x49, 0x7,0x44,0x33, 0x7,0x44,0x2f, 0x4,0x5e,0x23, - 0x7,0x44,0x2c, 0x5,0x65,0x48, 0x4,0x5e,0x26, 0x5,0x65,0x4a, - 0x7,0x3c,0x75, 0x4,0x5e,0x25, 0x7,0x44,0x32, 0x5,0x65,0x4b, - 0x7,0x44,0x35, 0x7,0x44,0x36, 0x7,0x44,0x2d, 0xf,0x61,0x2e, - 0x7,0x44,0x31, 0x7,0x44,0x2e, 0x5,0x65,0x4c, 0x7,0x44,0x30, - 0x7,0x4b,0x2f, 0x7,0x4b,0x2c, 0x5,0x6a,0x2e, 0x5,0x6a,0x2b, - 0x5,0x6a,0x27, 0x5,0x6a,0x2a, 0x5,0x6a,0x29, 0x5,0x6a,0x2f, - 0x5,0x6a,0x2c, 0x5,0x6a,0x28, 0x5,0x6a,0x2d, 0x7,0x4b,0x2d, - 0x7,0x4b,0x2e, 0x7,0x4b,0x30, 0x7,0x4b,0x2b, 0x7,0x44,0x34, - 0x5,0x6a,0x30, 0x5,0x6a,0x26, 0x7,0x50,0x62, 0x5,0x6e,0x31, - 0x5,0x6e,0x2e, 0x5,0x6e,0x2f, 0x5,0x6e,0x2d, 0x5,0x6e,0x30, - 0x7,0x50,0x63, 0x7,0x50,0x64, 0xf,0x66,0x4e, 0x7,0x50,0x65, - 0x7,0x50,0x67, 0x7,0x50,0x66, 0x4,0x67,0x59, 0x4,0x67,0x57, - 0x4,0x67,0x58, 0x5,0x71,0x53, 0x7,0x55,0x5a, 0xf,0x68,0x5b, - 0x7,0x55,0x59, 0x7,0x59,0x5e, 0x7,0x59,0x5f, 0x7,0x59,0x62, - 0x5,0x74,0x53, 0x7,0x59,0x61, 0x7,0x59,0x60, 0xf,0x69,0x7d, - 0x7,0x5d,0x27, 0x7,0x5d,0x29, 0x5,0x76,0x5a, 0x7,0x5d,0x2b, - 0x7,0x5d,0x2a, 0x5,0x76,0x5b, 0x7,0x5d,0x28, 0xf,0x6a,0x7a, - 0x5,0x78,0x3f, 0x4,0x6c,0x2f, 0x7,0x5f,0x6d, 0x7,0x5f,0x6e, - 0x5,0x78,0x3e, 0x7,0x62,0x6c, 0x5,0x7a,0x7b, 0x7,0x63,0x7a, - 0x7,0x63,0x79, 0x7,0x64,0x66, 0x7,0x64,0x65, 0x7,0x65,0x78, - 0x7,0x65,0x79, 0x6,0x34,0x6e, 0x5,0x3d,0x27, 0x5,0x36,0x3b, - 0x6,0x63,0x4b, 0x6,0x63,0x4c, 0x5,0x51,0x7a, 0x7,0x2a,0x34, - 0x7,0x2a,0x33, 0x5,0x59,0x2d, 0x7,0x34,0x61, 0x5,0x5f,0x45, - 0xf,0x5d,0x2d, 0x7,0x44,0x37, 0xf,0x66,0x4f, 0xf,0x68,0x5c, - 0x5,0x74,0x54, 0x5,0x36,0x3c, 0x6,0x3c,0x61, 0x6,0x45,0x75, - 0x6,0x4f,0x6e, 0x5,0x3d,0x29, 0x5,0x3d,0x28, 0xf,0x45,0x70, - 0x6,0x63,0x4d, 0x7,0x2a,0x35, 0x5,0x5f,0x46, 0xf,0x61,0x2f, - 0x5,0x65,0x4d, 0xf,0x68,0x5d, 0x5,0x71,0x54, 0x7,0x55,0x5b, - 0x6,0x3c,0x64, 0xf,0x32,0x66, 0x6,0x3c,0x62, 0x5,0x36,0x3d, - 0x6,0x45,0x76, 0x6,0x45,0x77, 0xf,0x38,0x78, 0x6,0x4f,0x73, - 0x6,0x4f,0x74, 0x6,0x4f,0x75, 0x6,0x4f,0x71, 0x6,0x4f,0x72, - 0x6,0x4f,0x78, 0x6,0x4f,0x76, 0x6,0x4f,0x70, 0x6,0x4f,0x79, - 0xf,0x3f,0x6c, 0xf,0x3f,0x6d, 0xf,0x3f,0x6e, 0xf,0x3f,0x6f, - 0xf,0x3f,0x72, 0xf,0x3f,0x74, 0xf,0x3f,0x71, 0x6,0x4f,0x77, - 0xf,0x3f,0x70, 0x4,0x41,0x47, 0x5,0x43,0x6e, 0x4,0x41,0x45, - 0x4,0x41,0x44, 0x6,0x59,0x53, 0x6,0x59,0x4f, 0xf,0x45,0x71, - 0xf,0x45,0x75, 0xf,0x45,0x76, 0xf,0x45,0x77, 0xf,0x45,0x78, - 0x6,0x59,0x55, 0x6,0x59,0x51, 0x6,0x59,0x52, 0xf,0x45,0x79, - 0x6,0x59,0x54, 0x6,0x59,0x50, 0xf,0x45,0x74, 0x5,0x4a,0x67, - 0x5,0x4a,0x68, 0x6,0x63,0x52, 0x5,0x4a,0x69, 0xf,0x4c,0x68, - 0xf,0x4c,0x79, 0xf,0x4c,0x7b, 0xf,0x4c,0x7c, 0xf,0x4c,0x7d, - 0xf,0x4d,0x21, 0xf,0x4d,0x23, 0xf,0x4d,0x24, 0xf,0x4d,0x25, - 0xf,0x4d,0x28, 0xf,0x4d,0x29, 0x6,0x63,0x4e, 0x4,0x47,0x7a, - 0x6,0x63,0x50, 0x6,0x63,0x51, 0xf,0x4d,0x2a, 0x6,0x63,0x54, - 0xf,0x4c,0x7a, 0x6,0x63,0x55, 0xf,0x4d,0x2b, 0xf,0x4d,0x26, - 0xf,0x4c,0x7e, 0x7,0x2a,0x3a, 0x4,0x4e,0x42, 0x5,0x51,0x7e, - 0x7,0x2a,0x41, 0x7,0x2a,0x3b, 0x7,0x2a,0x40, 0x7,0x2a,0x39, - 0x5,0x51,0x7d, 0x7,0x2a,0x43, 0x7,0x2a,0x44, 0x7,0x2a,0x3d, - 0x5,0x51,0x7b, 0x7,0x2a,0x37, 0xf,0x52,0x5b, 0xf,0x52,0x5d, - 0xf,0x52,0x5f, 0xf,0x52,0x60, 0xf,0x52,0x63, 0xf,0x52,0x64, - 0xf,0x52,0x65, 0xf,0x52,0x67, 0xf,0x52,0x68, 0xf,0x52,0x69, - 0xf,0x52,0x6a, 0xf,0x52,0x6c, 0xf,0x52,0x6d, 0x7,0x2a,0x42, - 0x7,0x2a,0x3c, 0x7,0x2a,0x3f, 0x7,0x2a,0x45, 0xf,0x52,0x5e, - 0x7,0x2a,0x36, 0x5,0x51,0x7c, 0xf,0x52,0x62, 0xf,0x52,0x66, - 0xf,0x52,0x5a, 0x5,0x59,0x34, 0x5,0x59,0x37, 0x5,0x59,0x32, - 0x4,0x54,0x47, 0x5,0x59,0x2e, 0x5,0x59,0x30, 0x7,0x34,0x65, - 0x7,0x34,0x64, 0x7,0x34,0x6b, 0x7,0x34,0x69, 0x7,0x34,0x67, - 0x5,0x59,0x36, 0x4,0x54,0x44, 0x7,0x34,0x62, 0x7,0x34,0x6a, - 0x7,0x34,0x68, 0x5,0x59,0x2f, 0x7,0x34,0x66, 0xf,0x52,0x5c, - 0x5,0x59,0x33, 0xf,0x58,0x44, 0xf,0x58,0x46, 0xf,0x58,0x47, - 0xf,0x58,0x49, 0xf,0x58,0x4a, 0xf,0x58,0x4b, 0xf,0x58,0x4d, - 0xf,0x58,0x4e, 0xf,0x58,0x4f, 0xf,0x58,0x51, 0xf,0x58,0x53, - 0xf,0x58,0x54, 0xf,0x58,0x56, 0xf,0x58,0x57, 0xf,0x58,0x5a, - 0xf,0x58,0x5c, 0xf,0x58,0x5d, 0xf,0x58,0x5e, 0xf,0x58,0x60, - 0xf,0x58,0x61, 0xf,0x58,0x63, 0xf,0x58,0x64, 0xf,0x58,0x50, - 0xf,0x58,0x52, 0xf,0x58,0x5f, 0xf,0x58,0x45, 0xf,0x58,0x58, - 0x5,0x59,0x38, 0x5,0x59,0x31, 0x5,0x5f,0x48, 0x5,0x5f,0x49, - 0x7,0x3c,0x79, 0x4,0x59,0x43, 0x5,0x5f,0x4c, 0x5,0x5f,0x4b, - 0x7,0x3c,0x7c, 0x5,0x59,0x35, 0x5,0x5f,0x47, 0x7,0x3c,0x7a, - 0x5,0x5f,0x4a, 0x5,0x5f,0x4f, 0x7,0x3c,0x7e, 0x7,0x3d,0x24, - 0x7,0x3d,0x21, 0x7,0x3d,0x25, 0xf,0x5d,0x2f, 0xf,0x5d,0x30, - 0xf,0x5d,0x34, 0xf,0x5d,0x35, 0xf,0x5d,0x36, 0xf,0x5d,0x37, - 0xf,0x5d,0x3a, 0xf,0x5d,0x3b, 0xf,0x5d,0x3c, 0xf,0x5d,0x3d, - 0xf,0x5d,0x3f, 0xf,0x5d,0x40, 0xf,0x5d,0x42, 0xf,0x5d,0x43, - 0xf,0x5d,0x44, 0xf,0x5d,0x45, 0xf,0x5d,0x46, 0xf,0x5d,0x47, - 0xf,0x5d,0x48, 0xf,0x5d,0x49, 0xf,0x5d,0x4b, 0xf,0x5d,0x4e, - 0xf,0x5d,0x4f, 0x7,0x3c,0x7d, 0x7,0x3d,0x22, 0x7,0x3c,0x78, - 0x7,0x3d,0x23, 0x4,0x59,0x48, 0xf,0x5d,0x4a, 0xf,0x5d,0x38, - 0xf,0x5d,0x33, 0xf,0x5d,0x31, 0x5,0x5f,0x4e, 0x5,0x5f,0x4d, - 0xf,0x5d,0x2e, 0x5,0x65,0x51, 0x4,0x5e,0x2d, 0x4,0x5e,0x2e, - 0x5,0x65,0x52, 0x4,0x5e,0x28, 0x4,0x5e,0x2a, 0x7,0x44,0x38, - 0x5,0x65,0x50, 0x5,0x65,0x4e, 0x5,0x6a,0x31, 0x7,0x44,0x3a, - 0x5,0x65,0x53, 0x4,0x5e,0x30, 0x7,0x44,0x40, 0x7,0x44,0x3f, - 0x5,0x65,0x54, 0x5,0x65,0x55, 0x7,0x44,0x41, 0xf,0x61,0x31, - 0xf,0x61,0x32, 0xf,0x61,0x34, 0xf,0x61,0x36, 0xf,0x61,0x37, - 0xf,0x61,0x38, 0xf,0x61,0x3a, 0xf,0x61,0x3c, 0xf,0x61,0x3d, - 0xf,0x61,0x3e, 0xf,0x61,0x40, 0xf,0x61,0x41, 0xf,0x61,0x42, - 0xf,0x61,0x44, 0xf,0x61,0x45, 0xf,0x61,0x46, 0x7,0x44,0x3b, - 0x7,0x44,0x3c, 0x7,0x44,0x3e, 0x7,0x44,0x3d, 0xf,0x61,0x30, - 0xf,0x61,0x39, 0xf,0x61,0x35, 0xf,0x5f,0x5d, 0x4,0x61,0x6b, - 0x7,0x4b,0x33, 0x7,0x4b,0x37, 0x5,0x6a,0x32, 0x7,0x4b,0x34, - 0x5,0x6a,0x34, 0x7,0x4b,0x32, 0x7,0x4b,0x3a, 0x7,0x4b,0x36, - 0x7,0x4b,0x39, 0x7,0x4b,0x3b, 0xf,0x64,0x31, 0xf,0x64,0x32, - 0xf,0x64,0x33, 0xf,0x64,0x35, 0xf,0x64,0x36, 0xf,0x64,0x38, - 0xf,0x64,0x39, 0xf,0x64,0x3a, 0xf,0x64,0x3b, 0xf,0x64,0x3c, - 0xf,0x64,0x3d, 0xf,0x64,0x3f, 0xf,0x64,0x40, 0xf,0x64,0x41, - 0xf,0x64,0x42, 0xf,0x64,0x43, 0xf,0x64,0x44, 0xf,0x64,0x45, - 0x7,0x4b,0x3c, 0x7,0x4b,0x35, 0x7,0x4b,0x38, 0x4,0x61,0x6a, - 0x7,0x4b,0x31, 0x5,0x65,0x56, 0xf,0x64,0x3e, 0x4,0x64,0x68, - 0x7,0x50,0x6d, 0x7,0x50,0x6e, 0x5,0x6e,0x38, 0x7,0x50,0x72, - 0x5,0x6e,0x33, 0x4,0x64,0x6a, 0x5,0x6e,0x36, 0x5,0x6e,0x32, - 0x7,0x50,0x70, 0x7,0x50,0x68, 0x7,0x50,0x69, 0x5,0x6e,0x37, - 0x4,0x64,0x6e, 0x7,0x50,0x71, 0x5,0x6e,0x34, 0xf,0x66,0x50, - 0xf,0x66,0x51, 0xf,0x66,0x53, 0xf,0x66,0x54, 0xf,0x66,0x55, - 0xf,0x66,0x56, 0xf,0x66,0x58, 0xf,0x66,0x59, 0xf,0x66,0x5a, - 0xf,0x66,0x5b, 0xf,0x66,0x5d, 0xf,0x66,0x5f, 0xf,0x66,0x60, - 0xf,0x66,0x61, 0xf,0x66,0x62, 0xf,0x66,0x63, 0xf,0x66,0x64, - 0xf,0x66,0x66, 0xf,0x66,0x68, 0xf,0x66,0x6a, 0xf,0x66,0x6b, - 0xf,0x66,0x6c, 0xf,0x66,0x6d, 0xf,0x66,0x6e, 0xf,0x66,0x6f, - 0x7,0x50,0x6c, 0x7,0x50,0x6f, 0xf,0x66,0x52, 0xf,0x66,0x5c, - 0xf,0x66,0x67, 0x7,0x50,0x6a, 0x7,0x55,0x62, 0x4,0x67,0x5e, - 0x7,0x55,0x67, 0x7,0x55,0x61, 0x7,0x55,0x5c, 0x4,0x67,0x60, - 0x4,0x67,0x5d, 0x7,0x55,0x60, 0x7,0x55,0x63, 0x7,0x55,0x69, - 0x7,0x55,0x5e, 0xf,0x68,0x5e, 0xf,0x68,0x5f, 0xf,0x68,0x60, - 0xf,0x68,0x61, 0xf,0x68,0x62, 0xf,0x68,0x63, 0xf,0x68,0x64, - 0xf,0x68,0x65, 0xf,0x68,0x66, 0xf,0x68,0x67, 0xf,0x68,0x68, - 0xf,0x68,0x69, 0xf,0x68,0x6b, 0xf,0x68,0x6c, 0xf,0x68,0x6d, - 0xf,0x68,0x6e, 0xf,0x68,0x6f, 0x7,0x55,0x5f, 0x7,0x55,0x64, - 0x7,0x55,0x65, 0x7,0x55,0x66, 0x7,0x55,0x5d, 0xf,0x68,0x6a, - 0x5,0x74,0x57, 0x7,0x59,0x6b, 0x7,0x59,0x6a, 0x7,0x5d,0x30, - 0x7,0x59,0x66, 0x7,0x59,0x64, 0xf,0x69,0x7e, 0xf,0x6a,0x21, - 0xf,0x6a,0x22, 0xf,0x6a,0x23, 0xf,0x6a,0x24, 0xf,0x6a,0x25, - 0xf,0x6a,0x26, 0xf,0x6a,0x27, 0xf,0x6a,0x28, 0xf,0x6a,0x29, - 0xf,0x6a,0x2a, 0xf,0x6a,0x2b, 0x7,0x59,0x63, 0x7,0x59,0x65, - 0x5,0x74,0x56, 0x5,0x76,0x5e, 0x4,0x6b,0x28, 0x5,0x76,0x5c, - 0xf,0x6b,0x2f, 0x7,0x5d,0x2f, 0x7,0x5d,0x2d, 0x7,0x59,0x69, - 0x7,0x5d,0x2c, 0xf,0x6a,0x7c, 0xf,0x6a,0x7d, 0xf,0x6b,0x23, - 0xf,0x6b,0x24, 0xf,0x6b,0x25, 0xf,0x6b,0x26, 0xf,0x6b,0x29, - 0xf,0x6b,0x2a, 0xf,0x6b,0x2b, 0xf,0x6b,0x2c, 0xf,0x6b,0x2d, - 0xf,0x6b,0x2e, 0x7,0x5d,0x2e, 0x7,0x5d,0x31, 0xf,0x6b,0x21, - 0xf,0x6a,0x7e, 0xf,0x6b,0x27, 0x5,0x78,0x40, 0x7,0x5f,0x70, - 0x7,0x5f,0x71, 0x7,0x5f,0x72, 0x7,0x5f,0x6f, 0x7,0x5f,0x73, - 0xf,0x6b,0x68, 0xf,0x6b,0x69, 0xf,0x6b,0x6a, 0xf,0x6b,0x6b, - 0xf,0x6b,0x6c, 0x4,0x6d,0x63, 0x7,0x61,0x57, 0x7,0x61,0x58, - 0xf,0x6b,0x6d, 0xf,0x6c,0x3c, 0xf,0x6c,0x3d, 0x7,0x61,0x56, - 0x7,0x62,0x72, 0x7,0x62,0x6d, 0x7,0x62,0x6e, 0x7,0x62,0x74, - 0x7,0x62,0x70, 0x7,0x62,0x6f, 0x5,0x7a,0x40, 0x7,0x62,0x73, - 0x7,0x62,0x71, 0x7,0x62,0x75, 0xf,0x6c,0x52, 0xf,0x6c,0x53, - 0xf,0x6c,0x54, 0xf,0x6c,0x55, 0xf,0x6c,0x56, 0xf,0x6c,0x57, - 0xf,0x6c,0x58, 0xf,0x6c,0x40, 0x5,0x7a,0x41, 0x5,0x7a,0x7c, - 0x7,0x63,0x7d, 0x7,0x63,0x7b, 0xf,0x6c,0x6f, 0x7,0x63,0x7c, - 0xf,0x6d,0x23, 0x7,0x64,0x68, 0xf,0x6d,0x21, 0x7,0x64,0x67, - 0x7,0x64,0x69, 0xf,0x6d,0x22, 0xf,0x6c,0x3e, 0x7,0x65,0x48, - 0x7,0x65,0x49, 0xf,0x6d,0x29, 0x5,0x7c,0x21, 0xf,0x6d,0x35, - 0xf,0x6d,0x38, 0xf,0x6d,0x39, 0x6,0x2e,0x44, 0x6,0x29,0x34, - 0x5,0x2b,0x60, 0x5,0x36,0x3f, 0x6,0x45,0x7b, 0x5,0x36,0x3e, - 0x5,0x36,0x40, 0x6,0x45,0x7a, 0xf,0x38,0x79, 0x6,0x45,0x79, - 0x6,0x45,0x78, 0x5,0x3d,0x2a, 0x5,0x3d,0x2b, 0x4,0x3b,0x68, - 0x6,0x4f,0x7a, 0x6,0x4f,0x7b, 0xf,0x3f,0x75, 0x6,0x59,0x59, - 0x6,0x59,0x58, 0x4,0x41,0x4a, 0x6,0x59,0x56, 0x6,0x59,0x57, - 0xf,0x45,0x7a, 0x5,0x43,0x70, 0x5,0x43,0x6f, 0x5,0x4a,0x6a, - 0x4,0x47,0x7c, 0x6,0x63,0x56, 0x6,0x63,0x57, 0x5,0x4a,0x6b, - 0x5,0x52,0x21, 0x5,0x52,0x23, 0x5,0x59,0x39, 0x5,0x52,0x22, - 0x5,0x52,0x24, 0x5,0x52,0x25, 0xf,0x58,0x65, 0x5,0x59,0x3b, - 0x7,0x34,0x6e, 0x5,0x59,0x3a, 0x7,0x3d,0x26, 0x7,0x34,0x6d, - 0x7,0x34,0x70, 0x7,0x34,0x6c, 0x7,0x3d,0x29, 0x4,0x59,0x4a, - 0x5,0x5f,0x50, 0x4,0x59,0x4b, 0x7,0x3d,0x2a, 0x7,0x3d,0x28, - 0x7,0x3d,0x27, 0x7,0x44,0x43, 0x5,0x65,0x58, 0x7,0x44,0x42, - 0x5,0x65,0x57, 0x5,0x6a,0x38, 0x5,0x6a,0x36, 0x5,0x6a,0x35, - 0x5,0x6a,0x37, 0x5,0x6e,0x39, 0x7,0x50,0x73, 0x7,0x50,0x74, - 0x4,0x67,0x64, 0x7,0x55,0x6a, 0x7,0x59,0x6d, 0x7,0x59,0x6e, - 0x7,0x59,0x6c, 0x5,0x76,0x61, 0x5,0x76,0x60, 0x5,0x78,0x41, - 0x7,0x5f,0x74, 0x7,0x62,0x76, 0x7,0x64,0x6a, 0x5,0x2b,0x61, - 0x5,0x30,0x6a, 0x5,0x30,0x6b, 0x5,0x30,0x69, 0xf,0x32,0x67, - 0x6,0x3c,0x66, 0x5,0x36,0x42, 0x5,0x36,0x41, 0xf,0x38,0x7a, - 0xf,0x38,0x7b, 0x6,0x45,0x7c, 0x5,0x3d,0x33, 0x5,0x3d,0x31, - 0x5,0x3d,0x2f, 0x4,0x3b,0x6a, 0x5,0x3d,0x30, 0x4,0x3b,0x6c, - 0x3,0x3f,0x6d, 0x5,0x3d,0x2c, 0x5,0x3d,0x2d, 0x5,0x3d,0x2e, - 0x6,0x4f,0x7e, 0x6,0x50,0x21, 0x5,0x3d,0x32, 0x6,0x4f,0x7c, - 0xf,0x3f,0x78, 0xf,0x3f,0x79, 0xf,0x3f,0x7a, 0xf,0x3f,0x7b, - 0xf,0x3f,0x7c, 0xf,0x3f,0x7d, 0xf,0x40,0x21, 0x6,0x4f,0x7d, - 0x4,0x3b,0x69, 0x4,0x41,0x4c, 0x6,0x59,0x5e, 0x4,0x41,0x52, - 0x4,0x41,0x4d, 0x4,0x41,0x4b, 0xf,0x45,0x7e, 0x6,0x59,0x5d, - 0x5,0x43,0x74, 0x5,0x43,0x71, 0x5,0x43,0x73, 0x5,0x43,0x72, - 0x6,0x59,0x5b, 0x4,0x41,0x51, 0x4,0x41,0x4f, 0x6,0x59,0x5c, - 0x6,0x59,0x5a, 0xf,0x45,0x7d, 0xf,0x46,0x21, 0x5,0x4a,0x73, - 0x5,0x4a,0x6f, 0x5,0x4a,0x71, 0x4,0x47,0x7e, 0x5,0x4a,0x6d, - 0x4,0x48,0x21, 0x5,0x4a,0x74, 0x6,0x63,0x5a, 0x5,0x4a,0x70, - 0x5,0x4a,0x75, 0x4,0x47,0x7d, 0x5,0x4a,0x72, 0x5,0x4a,0x76, - 0x6,0x63,0x59, 0x6,0x63,0x5b, 0x6,0x63,0x5c, 0x5,0x4a,0x6c, - 0x7,0x2a,0x48, 0x5,0x52,0x2d, 0x5,0x52,0x28, 0x7,0x2a,0x4d, - 0x5,0x52,0x2a, 0x5,0x52,0x27, 0x7,0x2a,0x4e, 0x4,0x4e,0x49, - 0x5,0x52,0x2c, 0x5,0x52,0x29, 0x7,0x2a,0x4c, 0xf,0x52,0x6e, - 0xf,0x52,0x6f, 0xf,0x52,0x71, 0x7,0x2a,0x47, 0x7,0x2a,0x49, - 0x7,0x2a,0x4a, 0x7,0x2a,0x4b, 0x5,0x52,0x26, 0x5,0x52,0x2b, - 0x5,0x52,0x2e, 0xf,0x52,0x70, 0x4,0x54,0x50, 0x4,0x54,0x4d, - 0x5,0x59,0x3d, 0x5,0x59,0x40, 0x7,0x34,0x72, 0x5,0x59,0x3c, - 0x5,0x59,0x3e, 0x5,0x59,0x3f, 0x7,0x34,0x75, 0x7,0x34,0x77, - 0x7,0x34,0x79, 0xf,0x58,0x66, 0xf,0x58,0x67, 0xf,0x58,0x68, - 0x7,0x34,0x74, 0x7,0x34,0x78, 0x7,0x34,0x76, 0x4,0x54,0x4e, - 0x4,0x59,0x53, 0x4,0x59,0x51, 0x5,0x5f,0x54, 0x7,0x3d,0x2b, - 0x5,0x5f,0x51, 0x5,0x5f,0x53, 0x5,0x5f,0x55, 0x5,0x5f,0x52, - 0x7,0x3d,0x2d, 0x4,0x59,0x50, 0x7,0x3d,0x2c, 0x4,0x59,0x4c, - 0x7,0x3d,0x2e, 0xf,0x5d,0x50, 0x7,0x3d,0x2f, 0x7,0x3d,0x30, - 0x7,0x3d,0x31, 0x5,0x65,0x5f, 0x5,0x65,0x5e, 0x5,0x65,0x5a, - 0x4,0x5e,0x33, 0x7,0x44,0x44, 0x5,0x65,0x5b, 0x5,0x65,0x61, - 0x5,0x65,0x60, 0x7,0x44,0x46, 0x5,0x65,0x5d, 0x5,0x65,0x59, - 0x5,0x65,0x5c, 0xf,0x61,0x47, 0xf,0x61,0x48, 0xf,0x61,0x49, - 0xf,0x61,0x4c, 0xf,0x61,0x4b, 0x7,0x44,0x45, 0x7,0x44,0x47, - 0x5,0x6a,0x39, 0x7,0x4b,0x3e, 0x7,0x4b,0x3f, 0x4,0x61,0x6d, - 0x5,0x6a,0x3a, 0x7,0x4b,0x3d, 0x4,0x61,0x6e, 0xf,0x64,0x46, - 0xf,0x64,0x47, 0xf,0x64,0x48, 0xf,0x64,0x49, 0xf,0x64,0x4a, - 0x4,0x64,0x70, 0x5,0x6e,0x3f, 0x5,0x6e,0x3a, 0x5,0x6e,0x3d, - 0x5,0x6e,0x3c, 0x5,0x6e,0x3e, 0x5,0x6e,0x40, 0x4,0x64,0x72, - 0x7,0x50,0x78, 0x5,0x6a,0x3b, 0x7,0x50,0x75, 0xf,0x66,0x70, - 0xf,0x66,0x71, 0x7,0x50,0x76, 0x5,0x6e,0x3b, 0x7,0x50,0x77, - 0x5,0x71,0x5a, 0x5,0x6e,0x41, 0x4,0x67,0x65, 0x5,0x71,0x59, - 0x5,0x71,0x57, 0xf,0x68,0x70, 0xf,0x68,0x71, 0xf,0x68,0x73, - 0xf,0x68,0x74, 0xf,0x68,0x75, 0x5,0x71,0x5c, 0x5,0x71,0x58, - 0x5,0x74,0x58, 0x7,0x55,0x6b, 0xf,0x6a,0x2f, 0x7,0x59,0x6f, - 0xf,0x6a,0x2c, 0xf,0x6a,0x2d, 0xf,0x6a,0x2e, 0xf,0x6a,0x30, - 0xf,0x6a,0x31, 0xf,0x6b,0x30, 0xf,0x6b,0x31, 0xf,0x6b,0x32, - 0x7,0x5d,0x32, 0x5,0x78,0x42, 0xf,0x6b,0x6e, 0xf,0x6b,0x6f, - 0x7,0x5f,0x76, 0x7,0x5f,0x75, 0x5,0x79,0x54, 0x4,0x6d,0x29, - 0x4,0x6d,0x2a, 0x7,0x61,0x59, 0x7,0x62,0x77, 0x7,0x62,0x78, - 0x5,0x7a,0x7d, 0xf,0x6d,0x2a, 0x6,0x2e,0x45, 0x5,0x22,0x22, - 0x5,0x21,0x7e, 0x4,0x22,0x23, 0x5,0x22,0x23, 0x4,0x22,0x22, - 0x5,0x22,0x21, 0x5,0x23,0x2e, 0x4,0x23,0x34, 0x6,0x25,0x5d, - 0x5,0x24,0x7d, 0x4,0x25,0x2c, 0x4,0x25,0x2d, 0x5,0x24,0x7e, - 0x5,0x24,0x7c, 0xf,0x25,0x3a, 0xf,0x25,0x3b, 0xf,0x25,0x3c, - 0xf,0x25,0x3d, 0xf,0x25,0x3e, 0xf,0x25,0x3f, 0x5,0x27,0x75, - 0x6,0x2e,0x47, 0x5,0x27,0x76, 0x5,0x27,0x78, 0x5,0x27,0x79, - 0x4,0x28,0x30, 0x5,0x27,0x77, 0x6,0x2e,0x46, 0x6,0x2e,0x48, - 0xf,0x28,0x7d, 0xf,0x28,0x7e, 0x5,0x2b,0x62, 0x6,0x34,0x70, - 0x6,0x34,0x73, 0x4,0x2b,0x5c, 0x5,0x2b,0x65, 0x6,0x34,0x71, - 0x6,0x63,0x5d, 0x6,0x34,0x75, 0x6,0x34,0x76, 0x6,0x34,0x77, - 0x6,0x34,0x72, 0x5,0x2b,0x63, 0x6,0x34,0x78, 0xf,0x2d,0x5b, - 0xf,0x2d,0x5c, 0xf,0x2d,0x5d, 0x6,0x34,0x74, 0x6,0x34,0x6f, - 0x6,0x3c,0x69, 0x5,0x30,0x6f, 0x5,0x2b,0x66, 0x6,0x3c,0x68, - 0x5,0x30,0x6c, 0x5,0x30,0x6e, 0x6,0x3c,0x6e, 0x6,0x3c,0x6b, - 0x6,0x3c,0x6f, 0x5,0x30,0x6d, 0x6,0x3c,0x6a, 0x6,0x3c,0x6d, - 0x6,0x3c,0x6c, 0xf,0x32,0x68, 0xf,0x32,0x69, 0xf,0x32,0x6a, - 0xf,0x32,0x6b, 0xf,0x32,0x6c, 0xf,0x32,0x6d, 0xf,0x32,0x6e, - 0x5,0x36,0x43, 0x6,0x46,0x28, 0x6,0x46,0x21, 0x4,0x35,0x7e, - 0x4,0x36,0x22, 0x4,0x36,0x21, 0x5,0x36,0x44, 0x6,0x46,0x23, - 0x6,0x46,0x24, 0x6,0x46,0x2b, 0x6,0x46,0x2a, 0x6,0x63,0x5e, - 0x6,0x46,0x26, 0x6,0x46,0x22, 0x6,0x46,0x29, 0x6,0x46,0x27, - 0x7,0x34,0x7b, 0x6,0x46,0x25, 0xf,0x38,0x7c, 0xf,0x38,0x7d, - 0xf,0x38,0x7e, 0xf,0x39,0x21, 0xf,0x39,0x22, 0xf,0x39,0x23, - 0xf,0x39,0x24, 0xf,0x39,0x25, 0xf,0x39,0x26, 0xf,0x39,0x27, - 0x5,0x3d,0x38, 0x5,0x3d,0x3d, 0x5,0x3d,0x39, 0x5,0x3d,0x3a, - 0x5,0x3d,0x3c, 0x6,0x50,0x25, 0x6,0x50,0x23, 0x5,0x3d,0x34, - 0x5,0x3d,0x35, 0x5,0x3d,0x37, 0x6,0x50,0x24, 0x6,0x50,0x29, - 0x7,0x3d,0x34, 0x6,0x50,0x27, 0x5,0x3d,0x3b, 0x6,0x50,0x28, - 0x6,0x50,0x26, 0xf,0x40,0x22, 0xf,0x40,0x23, 0x7,0x3d,0x32, - 0x5,0x3d,0x36, 0x6,0x59,0x6a, 0x5,0x43,0x7b, 0x5,0x43,0x78, - 0x6,0x59,0x62, 0x6,0x59,0x69, 0x6,0x59,0x67, 0x5,0x43,0x7c, - 0x5,0x43,0x79, 0x5,0x43,0x77, 0x6,0x63,0x5f, 0x6,0x59,0x63, - 0x6,0x59,0x65, 0x5,0x43,0x7d, 0x5,0x43,0x7a, 0x6,0x59,0x66, - 0x7,0x44,0x49, 0x6,0x59,0x64, 0x7,0x44,0x48, 0x5,0x43,0x76, - 0x6,0x59,0x5f, 0x6,0x59,0x6b, 0x6,0x59,0x60, 0x5,0x43,0x75, - 0x6,0x59,0x61, 0xf,0x46,0x22, 0xf,0x46,0x23, 0xf,0x46,0x24, - 0xf,0x46,0x25, 0xf,0x46,0x26, 0xf,0x46,0x27, 0xf,0x46,0x28, - 0xf,0x46,0x29, 0x6,0x59,0x68, 0x6,0x59,0x6c, 0x7,0x3d,0x33, - 0x6,0x63,0x64, 0x6,0x63,0x62, 0x6,0x63,0x66, 0x4,0x48,0x27, - 0x4,0x48,0x26, 0x5,0x52,0x2f, 0x4,0x48,0x28, 0x4,0x48,0x29, - 0x5,0x4a,0x78, 0x6,0x63,0x63, 0x6,0x63,0x60, 0x4,0x48,0x25, - 0x5,0x4a,0x79, 0x5,0x4a,0x7a, 0x6,0x63,0x65, 0x6,0x63,0x67, - 0x7,0x4b,0x41, 0xf,0x4d,0x2e, 0xf,0x4d,0x2f, 0xf,0x4d,0x30, - 0xf,0x4d,0x31, 0xf,0x4d,0x32, 0xf,0x4d,0x33, 0x6,0x63,0x61, - 0x5,0x4a,0x77, 0x5,0x52,0x36, 0x5,0x52,0x34, 0x5,0x52,0x35, - 0x7,0x2a,0x55, 0x5,0x52,0x38, 0x5,0x52,0x32, 0x5,0x52,0x31, - 0x7,0x2a,0x4f, 0x5,0x52,0x33, 0x5,0x52,0x37, 0x5,0x52,0x30, - 0x7,0x50,0x7a, 0x7,0x2a,0x53, 0x7,0x2a,0x51, 0x7,0x2a,0x50, - 0x7,0x2a,0x52, 0xf,0x52,0x72, 0xf,0x52,0x73, 0xf,0x52,0x74, - 0xf,0x52,0x75, 0xf,0x52,0x76, 0xf,0x52,0x77, 0x7,0x2a,0x56, - 0x5,0x59,0x41, 0x5,0x59,0x42, 0x4,0x54,0x54, 0x7,0x34,0x7c, - 0x5,0x59,0x44, 0x5,0x59,0x43, 0x7,0x34,0x7e, 0x7,0x50,0x79, - 0xf,0x58,0x69, 0xf,0x58,0x6a, 0xf,0x58,0x6b, 0xf,0x58,0x6c, - 0x5,0x6a,0x3c, 0x7,0x34,0x7d, 0x5,0x5f,0x56, 0x5,0x5f,0x57, - 0x7,0x3d,0x36, 0x7,0x3d,0x37, 0x7,0x3d,0x35, 0x5,0x74,0x59, - 0xf,0x5d,0x51, 0xf,0x5d,0x52, 0xf,0x5d,0x53, 0xf,0x5d,0x54, - 0x5,0x65,0x62, 0x7,0x44,0x4c, 0x4,0x5e,0x34, 0x7,0x44,0x4a, - 0x7,0x44,0x4b, 0xf,0x61,0x4d, 0xf,0x61,0x4e, 0xf,0x61,0x4f, - 0xf,0x61,0x50, 0x5,0x6a,0x3d, 0x7,0x4b,0x43, 0x7,0x55,0x6c, - 0x7,0x4b,0x45, 0xf,0x64,0x4c, 0x5,0x78,0x43, 0x7,0x4b,0x42, - 0x7,0x4b,0x44, 0x7,0x5f,0x77, 0xf,0x66,0x72, 0xf,0x66,0x73, - 0x7,0x51,0x72, 0x5,0x71,0x5d, 0x7,0x55,0x6e, 0x7,0x55,0x6d, - 0x7,0x62,0x79, 0x7,0x62,0x7a, 0x7,0x59,0x70, 0x7,0x5d,0x49, - 0x7,0x5f,0x78, 0x5,0x7a,0x7e, 0x5,0x7b,0x21, 0x7,0x66,0x37, - 0x7,0x66,0x28, 0x6,0x59,0x6d, 0x4,0x4e,0x4b, 0x7,0x2a,0x57, - 0xf,0x52,0x79, 0xf,0x52,0x78, 0x5,0x59,0x45, 0x7,0x35,0x21, - 0x4,0x59,0x56, 0x7,0x44,0x4d, 0x7,0x44,0x4e, 0x5,0x6a,0x3e, - 0x7,0x50,0x7b, 0x6,0x3c,0x70, 0x6,0x3c,0x71, 0x6,0x3c,0x72, - 0x6,0x46,0x2c, 0x5,0x36,0x45, 0x4,0x36,0x23, 0x6,0x46,0x2e, - 0x6,0x46,0x2d, 0x6,0x46,0x30, 0x6,0x46,0x2f, 0x4,0x3b,0x70, - 0x6,0x50,0x2c, 0x4,0x3b,0x6e, 0x6,0x50,0x2a, 0x6,0x59,0x73, - 0x6,0x50,0x30, 0x6,0x50,0x2e, 0x6,0x50,0x2b, 0x4,0x3b,0x71, - 0x4,0x3b,0x6f, 0x6,0x50,0x2f, 0x6,0x50,0x2d, 0x6,0x59,0x7b, - 0x5,0x43,0x7e, 0x6,0x59,0x6e, 0x6,0x59,0x71, 0x6,0x59,0x77, - 0x6,0x59,0x75, 0x6,0x59,0x7a, 0x6,0x59,0x72, 0x6,0x59,0x70, - 0x6,0x59,0x74, 0x6,0x59,0x79, 0x6,0x59,0x78, 0x6,0x59,0x6f, - 0x6,0x59,0x76, 0x6,0x63,0x74, 0x6,0x63,0x72, 0x5,0x4a,0x7b, - 0x6,0x63,0x6b, 0x6,0x63,0x6c, 0x6,0x63,0x76, 0x6,0x63,0x68, - 0x6,0x63,0x77, 0x6,0x63,0x70, 0x4,0x48,0x2a, 0x6,0x63,0x75, - 0x6,0x63,0x6f, 0x5,0x4a,0x7c, 0x6,0x63,0x71, 0x6,0x63,0x69, - 0x5,0x4a,0x7d, 0x4,0x48,0x2b, 0x6,0x63,0x6a, 0xf,0x4d,0x34, - 0xf,0x4d,0x35, 0x6,0x63,0x73, 0x6,0x63,0x78, 0x6,0x63,0x6d, - 0x7,0x2a,0x5d, 0x7,0x2a,0x5b, 0x7,0x2a,0x64, 0x7,0x2a,0x5f, - 0x7,0x2a,0x5c, 0x5,0x52,0x3a, 0x7,0x2a,0x5e, 0x7,0x2a,0x66, - 0x7,0x2a,0x62, 0x7,0x2a,0x60, 0x7,0x2a,0x61, 0x7,0x2a,0x63, - 0x7,0x2a,0x5a, 0x7,0x2a,0x58, 0x5,0x52,0x39, 0x7,0x2a,0x65, - 0x7,0x2a,0x67, 0x4,0x59,0x57, 0x4,0x54,0x55, 0x5,0x59,0x47, - 0x7,0x35,0x29, 0x7,0x35,0x24, 0x7,0x35,0x2f, 0x7,0x35,0x22, - 0x7,0x35,0x2d, 0x7,0x35,0x28, 0x7,0x35,0x25, 0x7,0x35,0x2c, - 0x7,0x35,0x2a, 0x7,0x35,0x26, 0x5,0x59,0x46, 0x7,0x35,0x30, - 0x4,0x54,0x56, 0x7,0x35,0x2b, 0x7,0x35,0x33, 0x7,0x35,0x27, - 0x7,0x2a,0x59, 0x7,0x35,0x34, 0x7,0x35,0x31, 0x7,0x35,0x23, - 0x7,0x35,0x32, 0xf,0x58,0x6d, 0x7,0x35,0x2e, 0xf,0x52,0x7a, - 0x4,0x59,0x59, 0x7,0x3d,0x3d, 0x7,0x3d,0x3b, 0x7,0x3d,0x45, - 0x7,0x3d,0x3c, 0x7,0x3d,0x3e, 0x7,0x3d,0x49, 0x7,0x3d,0x3a, - 0x7,0x3d,0x42, 0x7,0x3d,0x39, 0x7,0x3d,0x38, 0x7,0x3d,0x3f, - 0x5,0x5f,0x58, 0x7,0x3d,0x47, 0x7,0x3d,0x41, 0x7,0x3d,0x40, - 0x7,0x3d,0x43, 0x7,0x3d,0x48, 0x7,0x35,0x36, 0xf,0x5d,0x55, - 0xf,0x5d,0x57, 0x7,0x3d,0x44, 0x7,0x3d,0x46, 0x7,0x44,0x50, - 0x7,0x44,0x56, 0x7,0x44,0x52, 0x7,0x44,0x53, 0x7,0x44,0x4f, - 0x5,0x65,0x63, 0x7,0x44,0x57, 0x7,0x44,0x55, 0x5,0x65,0x64, - 0x7,0x44,0x51, 0x7,0x44,0x54, 0x7,0x4b,0x4a, 0x7,0x4b,0x47, - 0x7,0x4b,0x4b, 0x7,0x4b,0x48, 0x5,0x6a,0x3f, 0x7,0x4b,0x4e, - 0x4,0x61,0x6f, 0x5,0x6a,0x40, 0x7,0x4b,0x46, 0x7,0x4b,0x4c, - 0x7,0x4b,0x4d, 0x4,0x61,0x70, 0x7,0x4b,0x49, 0x7,0x4b,0x4f, - 0x7,0x51,0x23, 0x7,0x51,0x27, 0x7,0x50,0x7d, 0x7,0x51,0x2a, - 0x7,0x51,0x24, 0x7,0x51,0x2b, 0x7,0x51,0x28, 0x7,0x50,0x7c, - 0x5,0x6e,0x42, 0x7,0x51,0x25, 0x7,0x51,0x26, 0x5,0x6e,0x43, - 0x7,0x51,0x22, 0xf,0x66,0x74, 0x7,0x50,0x7e, 0x7,0x51,0x2c, - 0x7,0x51,0x29, 0x7,0x55,0x74, 0x4,0x67,0x68, 0x7,0x55,0x72, - 0x7,0x55,0x6f, 0x7,0x55,0x76, 0x7,0x55,0x70, 0x7,0x55,0x75, - 0x7,0x55,0x73, 0x7,0x55,0x77, 0x7,0x51,0x21, 0xf,0x68,0x76, - 0x7,0x55,0x71, 0x7,0x59,0x71, 0x7,0x59,0x72, 0x4,0x69,0x57, - 0x7,0x59,0x75, 0x7,0x59,0x76, 0x7,0x59,0x74, 0xf,0x6a,0x32, - 0x7,0x59,0x73, 0x7,0x5d,0x38, 0x7,0x5d,0x39, 0x7,0x5d,0x3a, - 0x4,0x6b,0x2b, 0x7,0x5d,0x37, 0x7,0x5d,0x33, 0x7,0x5d,0x34, - 0x7,0x5d,0x35, 0x7,0x5d,0x36, 0x7,0x5f,0x7c, 0x7,0x5f,0x7a, - 0x7,0x5f,0x7b, 0x7,0x5f,0x79, 0x7,0x61,0x5a, 0xf,0x6c,0x41, - 0x7,0x63,0x7e, 0x7,0x64,0x6b, 0x7,0x66,0x40, 0xf,0x2d,0x5e, - 0x5,0x30,0x70, 0xf,0x32,0x70, 0x6,0x46,0x32, 0x6,0x46,0x33, - 0x4,0x36,0x25, 0x6,0x46,0x31, 0xf,0x39,0x28, 0xf,0x39,0x29, - 0x5,0x3d,0x40, 0x5,0x3d,0x3e, 0x5,0x3d,0x41, 0x5,0x3d,0x3f, - 0x4,0x3b,0x73, 0x6,0x50,0x33, 0x4,0x3b,0x72, 0x6,0x50,0x32, - 0xf,0x40,0x25, 0xf,0x40,0x27, 0xf,0x40,0x26, 0x4,0x41,0x58, - 0x5,0x44,0x25, 0x5,0x44,0x22, 0x5,0x44,0x21, 0x5,0x44,0x24, - 0x5,0x44,0x23, 0x6,0x59,0x7c, 0xf,0x46,0x2b, 0xf,0x46,0x2c, - 0xf,0x46,0x2d, 0x5,0x44,0x26, 0x5,0x4b,0x22, 0x4,0x48,0x30, - 0x5,0x4b,0x23, 0x5,0x4b,0x21, 0x5,0x4a,0x7e, 0x4,0x48,0x2c, - 0x4,0x48,0x2f, 0x6,0x63,0x7d, 0x4,0x48,0x32, 0x6,0x63,0x7c, - 0x6,0x63,0x7e, 0xf,0x4d,0x37, 0xf,0x4d,0x38, 0x6,0x63,0x7a, - 0x6,0x63,0x79, 0x7,0x2a,0x6a, 0x7,0x2a,0x69, 0x5,0x52,0x45, - 0x5,0x52,0x40, 0x5,0x52,0x41, 0x5,0x52,0x3f, 0x5,0x52,0x3e, - 0x5,0x52,0x43, 0x5,0x52,0x3d, 0x4,0x54,0x57, 0x5,0x52,0x3c, - 0x7,0x2a,0x6b, 0x7,0x2a,0x6c, 0xf,0x46,0x2a, 0xf,0x52,0x7b, - 0xf,0x52,0x7c, 0xf,0x52,0x7d, 0xf,0x52,0x7e, 0xf,0x53,0x21, - 0x7,0x2a,0x68, 0x5,0x52,0x44, 0x5,0x52,0x42, 0x5,0x5f,0x59, - 0x7,0x35,0x3b, 0x4,0x54,0x5b, 0x5,0x59,0x4e, 0x5,0x59,0x4b, - 0x4,0x54,0x5a, 0x7,0x35,0x38, 0x5,0x59,0x4d, 0x5,0x59,0x4a, - 0x7,0x35,0x3a, 0x5,0x59,0x49, 0x7,0x35,0x39, 0x7,0x35,0x37, - 0x5,0x59,0x48, 0x7,0x35,0x3c, 0xf,0x58,0x6e, 0xf,0x58,0x6f, - 0xf,0x58,0x71, 0xf,0x58,0x72, 0xf,0x58,0x73, 0xf,0x58,0x74, - 0xf,0x58,0x75, 0xf,0x58,0x70, 0xf,0x55,0x64, 0x5,0x59,0x4c, - 0x4,0x59,0x5c, 0x4,0x59,0x5a, 0x4,0x59,0x5b, 0x5,0x5f,0x5a, - 0x4,0x59,0x61, 0x5,0x5f,0x5c, 0x4,0x59,0x5e, 0x7,0x3d,0x4a, - 0x5,0x65,0x68, 0x7,0x3d,0x4b, 0x7,0x3d,0x4d, 0x5,0x5f,0x5b, - 0xf,0x5d,0x59, 0x7,0x3d,0x4c, 0x7,0x3d,0x4e, 0xf,0x5d,0x5a, - 0x5,0x5f,0x5d, 0x5,0x65,0x6c, 0x5,0x65,0x6f, 0x7,0x44,0x5f, - 0x7,0x44,0x63, 0x5,0x65,0x69, 0x7,0x44,0x5e, 0x5,0x65,0x66, - 0x7,0x44,0x65, 0x7,0x44,0x62, 0x4,0x5e,0x37, 0x5,0x65,0x65, - 0x5,0x65,0x67, 0x7,0x44,0x61, 0x7,0x44,0x5a, 0x7,0x44,0x5d, - 0x5,0x65,0x6e, 0x7,0x44,0x5b, 0xf,0x61,0x51, 0x7,0x44,0x64, - 0x7,0x44,0x59, 0x7,0x44,0x5c, 0x5,0x65,0x6b, 0x5,0x65,0x6d, - 0xf,0x5d,0x58, 0x5,0x65,0x6a, 0x5,0x6a,0x47, 0x5,0x6a,0x41, - 0x5,0x6a,0x45, 0x5,0x6a,0x42, 0x5,0x6a,0x43, 0x4,0x61,0x72, - 0x5,0x6a,0x46, 0x5,0x6a,0x44, 0x5,0x6a,0x49, 0x4,0x61,0x71, - 0x7,0x4b,0x50, 0x7,0x4b,0x55, 0x7,0x4b,0x51, 0x5,0x6a,0x48, - 0x7,0x4b,0x53, 0xf,0x64,0x4e, 0x7,0x4b,0x57, 0x7,0x4b,0x56, - 0x7,0x4b,0x54, 0x7,0x4b,0x52, 0x7,0x4b,0x58, 0x7,0x51,0x2e, - 0x4,0x64,0x74, 0x7,0x51,0x36, 0x4,0x64,0x76, 0x5,0x6e,0x44, - 0x4,0x67,0x6d, 0x4,0x64,0x78, 0x7,0x51,0x34, 0x7,0x51,0x33, - 0x5,0x6e,0x45, 0x4,0x64,0x7a, 0x4,0x64,0x77, 0x4,0x64,0x79, - 0x7,0x51,0x2f, 0x7,0x51,0x31, 0x7,0x51,0x32, 0xf,0x66,0x75, - 0x7,0x51,0x35, 0x7,0x51,0x37, 0x7,0x51,0x30, 0x7,0x51,0x2d, - 0x4,0x67,0x6a, 0x4,0x67,0x69, 0x7,0x55,0x78, 0x5,0x71,0x5e, - 0x5,0x71,0x5f, 0x4,0x67,0x6b, 0x4,0x67,0x6c, 0x7,0x55,0x7a, - 0x5,0x71,0x60, 0x5,0x71,0x61, 0x7,0x55,0x7d, 0x7,0x55,0x79, - 0x7,0x55,0x7e, 0x7,0x55,0x7b, 0x5,0x74,0x5c, 0x5,0x74,0x5f, - 0x4,0x69,0x59, 0x7,0x59,0x78, 0x5,0x74,0x5d, 0x7,0x59,0x79, - 0x7,0x59,0x7a, 0x5,0x74,0x5a, 0x5,0x74,0x5e, 0x5,0x74,0x5b, - 0x7,0x59,0x77, 0x5,0x76,0x62, 0x7,0x5d,0x3b, 0x7,0x5d,0x3c, - 0xf,0x6b,0x33, 0x5,0x76,0x63, 0x5,0x78,0x44, 0x4,0x6c,0x32, - 0x4,0x6c,0x31, 0x7,0x5f,0x7d, 0x7,0x5f,0x7e, 0x7,0x60,0x21, - 0xf,0x6b,0x70, 0x4,0x6d,0x2c, 0x5,0x79,0x56, 0x4,0x6d,0x2b, - 0x5,0x79,0x55, 0x7,0x61,0x5b, 0x5,0x79,0x57, 0x5,0x7a,0x44, - 0x7,0x62,0x7b, 0x5,0x7a,0x43, 0x7,0x62,0x7c, 0xf,0x6c,0x59, - 0x7,0x63,0x23, 0x5,0x7a,0x42, 0x7,0x64,0x6c, 0x4,0x6e,0x3e, - 0x7,0x65,0x4b, 0x7,0x65,0x4a, 0x7,0x65,0x4c, 0x5,0x7b,0x6c, - 0x7,0x66,0x2d, 0x7,0x66,0x4e, 0x7,0x66,0x51, 0x4,0x6e,0x5c, - 0x4,0x36,0x26, 0x6,0x50,0x34, 0xf,0x46,0x2e, 0xf,0x46,0x2f, - 0xf,0x46,0x30, 0x6,0x59,0x7d, 0x4,0x48,0x36, 0x7,0x2c,0x44, - 0x7,0x35,0x3d, 0x5,0x5a,0x74, 0x7,0x44,0x66, 0xf,0x64,0x4f, - 0x5,0x71,0x62, 0xf,0x6b,0x71, 0x6,0x3c,0x74, 0x6,0x2e,0x49, - 0x6,0x3c,0x73, 0x4,0x36,0x27, 0x6,0x46,0x34, 0x4,0x36,0x29, - 0xf,0x39,0x2d, 0x6,0x50,0x35, 0x5,0x3d,0x42, 0x4,0x3b,0x75, - 0x6,0x50,0x37, 0x6,0x50,0x36, 0xf,0x40,0x28, 0xf,0x40,0x29, - 0x6,0x5a,0x21, 0x6,0x59,0x7e, 0xf,0x4d,0x3b, 0x4,0x4e,0x4d, - 0x7,0x2a,0x6e, 0x7,0x2a,0x6d, 0x7,0x35,0x3e, 0x7,0x51,0x38, - 0x7,0x51,0x39, 0x6,0x50,0x39, 0x6,0x50,0x3a, 0x6,0x50,0x38, - 0x4,0x41,0x59, 0x4,0x41,0x5b, 0x5,0x44,0x28, 0x5,0x44,0x27, - 0x6,0x5a,0x23, 0x6,0x5a,0x22, 0x6,0x64,0x22, 0x5,0x4b,0x25, - 0x4,0x48,0x39, 0x6,0x64,0x21, 0x5,0x4b,0x24, 0xf,0x4d,0x3c, - 0x6,0x64,0x23, 0x4,0x4e,0x4e, 0x5,0x52,0x46, 0x5,0x52,0x48, - 0x5,0x52,0x47, 0x7,0x2a,0x70, 0x7,0x2a,0x6f, 0xf,0x58,0x77, - 0x5,0x59,0x50, 0x5,0x59,0x4f, 0x5,0x59,0x54, 0x5,0x59,0x51, - 0x5,0x59,0x52, 0x5,0x59,0x53, 0xf,0x58,0x76, 0x7,0x35,0x3f, - 0x7,0x3d,0x4f, 0x5,0x5f,0x5f, 0x5,0x5f,0x60, 0x5,0x5f,0x62, - 0x5,0x5f,0x61, 0xf,0x5d,0x5b, 0x7,0x3d,0x51, 0x5,0x65,0x72, - 0x7,0x44,0x67, 0x5,0x65,0x70, 0x5,0x65,0x71, 0x4,0x5e,0x39, - 0x5,0x6a,0x4b, 0x5,0x6a,0x4a, 0x5,0x6e,0x47, 0x5,0x6e,0x46, - 0x7,0x4d,0x50, 0x7,0x51,0x3a, 0x5,0x6c,0x46, 0x5,0x71,0x64, - 0x7,0x56,0x22, 0x5,0x71,0x66, 0x5,0x71,0x65, 0xf,0x68,0x79, - 0x7,0x56,0x21, 0x7,0x56,0x24, 0x7,0x56,0x23, 0x7,0x59,0x7b, - 0x7,0x59,0x7c, 0x7,0x5d,0x3d, 0x5,0x76,0x64, 0xf,0x6b,0x34, - 0x7,0x60,0x22, 0x5,0x7a,0x45, 0x7,0x64,0x21, 0x7,0x64,0x6e, - 0x7,0x64,0x6d, 0xf,0x39,0x2e, 0x5,0x3d,0x43, 0x4,0x3b,0x78, - 0x6,0x50,0x3b, 0x5,0x44,0x2c, 0x5,0x44,0x2b, 0x6,0x5a,0x26, - 0x6,0x5a,0x29, 0x5,0x44,0x2a, 0x6,0x5a,0x27, 0x5,0x44,0x29, - 0x6,0x5a,0x25, 0x6,0x5a,0x2b, 0x6,0x5a,0x2a, 0x4,0x41,0x5c, - 0x4,0x41,0x5e, 0xf,0x46,0x31, 0x5,0x4b,0x27, 0x4,0x48,0x3c, - 0x5,0x4b,0x26, 0x6,0x64,0x27, 0x6,0x64,0x25, 0x5,0x4b,0x28, - 0x5,0x4b,0x29, 0x4,0x48,0x3e, 0x5,0x4b,0x2c, 0x5,0x4b,0x2a, - 0x5,0x4b,0x2d, 0x5,0x4b,0x2b, 0x6,0x64,0x29, 0x4,0x48,0x3f, - 0x6,0x64,0x28, 0x6,0x64,0x24, 0x6,0x64,0x26, 0x7,0x2a,0x73, - 0x5,0x52,0x49, 0x7,0x2a,0x77, 0x7,0x2a,0x76, 0x4,0x4e,0x51, - 0x7,0x2a,0x79, 0x5,0x52,0x4a, 0x4,0x4e,0x52, 0x7,0x2a,0x75, - 0x4,0x4e,0x53, 0x5,0x52,0x4d, 0x4,0x4e,0x50, 0x5,0x52,0x4c, - 0x5,0x52,0x4e, 0x7,0x2a,0x74, 0x5,0x52,0x4b, 0x7,0x2a,0x78, - 0x7,0x2a,0x72, 0x7,0x35,0x44, 0x5,0x59,0x55, 0x5,0x59,0x58, - 0x4,0x54,0x66, 0x4,0x54,0x5e, 0x4,0x54,0x65, 0x5,0x59,0x56, - 0x5,0x59,0x57, 0x7,0x35,0x43, 0x7,0x35,0x47, 0x7,0x35,0x40, - 0x7,0x35,0x41, 0x7,0x35,0x45, 0x7,0x35,0x46, 0x7,0x3d,0x58, - 0x7,0x3d,0x5a, 0x5,0x5f,0x63, 0x5,0x5f,0x69, 0x4,0x59,0x66, - 0x5,0x5f,0x65, 0x7,0x3d,0x53, 0x4,0x59,0x67, 0x7,0x35,0x42, - 0x5,0x5f,0x6d, 0x7,0x3d,0x57, 0x4,0x59,0x65, 0x7,0x3d,0x59, - 0x5,0x5f,0x67, 0x5,0x5f,0x6a, 0x7,0x3d,0x55, 0x5,0x5f,0x6b, - 0x7,0x3d,0x5b, 0x7,0x35,0x48, 0x5,0x5f,0x68, 0x7,0x3d,0x54, - 0x7,0x3d,0x5c, 0xf,0x5d,0x5c, 0x7,0x3d,0x52, 0x5,0x5f,0x6c, - 0x5,0x5f,0x66, 0x4,0x5e,0x44, 0x5,0x65,0x7c, 0x5,0x65,0x74, - 0x4,0x5e,0x3a, 0x5,0x65,0x76, 0x5,0x66,0x22, 0x7,0x44,0x6a, - 0x7,0x44,0x68, 0x4,0x5e,0x3f, 0x5,0x65,0x77, 0x4,0x5e,0x40, - 0x7,0x44,0x6d, 0x7,0x44,0x70, 0x5,0x66,0x21, 0x7,0x44,0x6f, - 0x4,0x5e,0x3d, 0x5,0x66,0x23, 0x7,0x44,0x71, 0x7,0x44,0x72, - 0x7,0x44,0x6e, 0xf,0x61,0x53, 0xf,0x61,0x54, 0x5,0x5f,0x64, - 0x7,0x44,0x6c, 0x7,0x44,0x6b, 0x5,0x65,0x78, 0x5,0x66,0x24, - 0x7,0x44,0x69, 0x5,0x65,0x75, 0x5,0x65,0x7a, 0x5,0x65,0x79, - 0x5,0x65,0x7d, 0x4,0x61,0x7a, 0x5,0x6a,0x51, 0x5,0x6a,0x54, - 0x5,0x6a,0x4f, 0x4,0x61,0x79, 0x5,0x6a,0x4d, 0x7,0x4b,0x5a, - 0x5,0x6a,0x55, 0x7,0x4b,0x63, 0x5,0x6a,0x4e, 0x4,0x61,0x78, - 0x7,0x4b,0x61, 0x4,0x61,0x76, 0x7,0x4b,0x5e, 0x4,0x61,0x75, - 0x7,0x4b,0x62, 0x5,0x6a,0x50, 0x7,0x4b,0x60, 0xf,0x64,0x50, - 0xf,0x64,0x52, 0xf,0x64,0x53, 0x7,0x4b,0x5b, 0x7,0x4b,0x5c, - 0x5,0x6a,0x53, 0x5,0x6a,0x52, 0x7,0x4b,0x59, 0x5,0x6a,0x4c, - 0x4,0x65,0x24, 0x5,0x6e,0x4e, 0x4,0x64,0x7d, 0x5,0x6e,0x4f, - 0x5,0x6e,0x4a, 0x7,0x51,0x3b, 0x5,0x6e,0x48, 0x7,0x51,0x3d, - 0x4,0x65,0x21, 0x5,0x6e,0x4c, 0x4,0x65,0x22, 0x4,0x65,0x25, - 0x5,0x6e,0x4d, 0x7,0x51,0x41, 0x7,0x51,0x3c, 0xf,0x66,0x78, - 0x7,0x51,0x3e, 0x7,0x51,0x43, 0x7,0x51,0x40, 0x5,0x6e,0x4b, - 0x7,0x51,0x3f, 0x5,0x6e,0x50, 0x4,0x65,0x26, 0x7,0x51,0x42, - 0x5,0x71,0x6d, 0x7,0x56,0x28, 0x4,0x67,0x6f, 0x7,0x56,0x2a, - 0x7,0x56,0x2b, 0x5,0x71,0x6a, 0x5,0x71,0x6b, 0x5,0x71,0x6c, - 0x5,0x71,0x67, 0x5,0x71,0x68, 0x7,0x56,0x29, 0xf,0x66,0x77, - 0x5,0x74,0x60, 0x7,0x5a,0x26, 0x7,0x59,0x7d, 0x4,0x69,0x5d, - 0x5,0x74,0x61, 0x7,0x5a,0x25, 0x7,0x5a,0x23, 0x7,0x59,0x7e, - 0x7,0x5a,0x24, 0x5,0x74,0x63, 0x5,0x74,0x64, 0x7,0x5a,0x21, - 0x7,0x5a,0x22, 0x5,0x74,0x65, 0x5,0x76,0x65, 0x5,0x76,0x68, - 0x5,0x76,0x66, 0x7,0x5d,0x3e, 0x5,0x76,0x69, 0x5,0x76,0x67, - 0x7,0x5d,0x41, 0x7,0x5d,0x3f, 0x7,0x5d,0x42, 0x7,0x5d,0x40, - 0x5,0x78,0x46, 0x5,0x79,0x58, 0x7,0x60,0x23, 0x5,0x78,0x45, - 0x5,0x78,0x47, 0x7,0x61,0x5e, 0x7,0x61,0x5c, 0x7,0x61,0x5d, - 0x5,0x7a,0x46, 0x7,0x62,0x7e, 0x7,0x63,0x22, 0x5,0x79,0x59, - 0x7,0x63,0x21, 0x7,0x62,0x7d, 0x5,0x7b,0x22, 0x7,0x64,0x70, - 0x7,0x64,0x6f, 0x5,0x7b,0x4c, 0x7,0x65,0x69, 0x5,0x7c,0x35, - 0x7,0x66,0x2e, 0x7,0x66,0x39, 0x7,0x66,0x38, 0x5,0x7c,0x4c, - 0x5,0x3d,0x44, 0x4,0x41,0x60, 0x4,0x41,0x62, 0x6,0x5a,0x2c, - 0x5,0x44,0x2d, 0x6,0x64,0x2b, 0x5,0x4b,0x2f, 0x5,0x4b,0x31, - 0x5,0x4b,0x2e, 0x5,0x4b,0x30, 0x6,0x64,0x2a, 0xf,0x4d,0x3d, - 0x5,0x4b,0x32, 0x4,0x4e,0x55, 0x5,0x52,0x50, 0x4,0x4e,0x54, - 0x4,0x4e,0x56, 0x7,0x2a,0x7b, 0x7,0x2a,0x7a, 0x7,0x2a,0x7c, - 0x7,0x2a,0x7d, 0x7,0x2a,0x7e, 0x5,0x52,0x4f, 0x5,0x52,0x51, - 0x5,0x59,0x59, 0x7,0x35,0x49, 0x7,0x35,0x4a, 0x5,0x59,0x5c, - 0x5,0x59,0x5d, 0x5,0x59,0x5b, 0x7,0x35,0x4b, 0x5,0x59,0x5a, - 0x4,0x59,0x69, 0x7,0x3d,0x5e, 0x5,0x5f,0x6e, 0x7,0x3d,0x5f, - 0x4,0x59,0x6c, 0x4,0x59,0x6a, 0x5,0x5f,0x6f, 0x5,0x5f,0x70, - 0xf,0x5d,0x5d, 0x7,0x3d,0x5d, 0x7,0x3d,0x60, 0x7,0x44,0x76, - 0x7,0x44,0x73, 0x4,0x5e,0x46, 0x7,0x44,0x74, 0x7,0x3d,0x61, - 0x5,0x66,0x25, 0x7,0x44,0x78, 0x7,0x44,0x75, 0x7,0x4b,0x64, - 0x7,0x4b,0x66, 0x7,0x4b,0x69, 0x7,0x4b,0x65, 0x7,0x4b,0x68, - 0x7,0x4b,0x67, 0x7,0x51,0x44, 0x5,0x6a,0x56, 0x5,0x6a,0x57, - 0x7,0x51,0x45, 0x7,0x51,0x46, 0x4,0x65,0x28, 0xf,0x66,0x79, - 0x5,0x6e,0x52, 0x5,0x6e,0x51, 0x5,0x71,0x6e, 0x5,0x71,0x70, - 0x5,0x71,0x72, 0x4,0x67,0x74, 0x7,0x56,0x2c, 0x5,0x71,0x6f, - 0x5,0x71,0x71, 0x7,0x5a,0x27, 0x4,0x69,0x5f, 0x5,0x74,0x66, - 0x7,0x5a,0x28, 0x7,0x5a,0x29, 0x5,0x74,0x67, 0x7,0x5d,0x43, - 0x7,0x5d,0x46, 0x7,0x5d,0x45, 0x7,0x5d,0x44, 0x4,0x6c,0x35, - 0x7,0x61,0x5f, 0x5,0x7a,0x47, 0x7,0x64,0x24, 0x7,0x64,0x22, - 0x7,0x64,0x23, 0x5,0x7b,0x4d, 0x5,0x7b,0x6d, 0x5,0x7c,0x22, - 0x5,0x44,0x2e, 0x6,0x5a,0x2d, 0x5,0x52,0x52, 0x7,0x35,0x4c, - 0x4,0x59,0x6d, 0x7,0x3d,0x62, 0x7,0x4b,0x6c, 0x7,0x51,0x48, - 0x4,0x65,0x2b, 0x5,0x71,0x73, 0x7,0x51,0x47, 0x7,0x56,0x2d, - 0x7,0x5a,0x2a, 0x7,0x5d,0x48, 0x7,0x5d,0x47, 0x7,0x61,0x60, - 0xf,0x40,0x2c, 0x5,0x44,0x30, 0x5,0x44,0x2f, 0x5,0x4b,0x33, - 0x4,0x48,0x45, 0x5,0x4b,0x34, 0x5,0x52,0x5a, 0x7,0x2b,0x21, - 0x5,0x52,0x54, 0x5,0x52,0x57, 0x7,0x2b,0x22, 0x5,0x52,0x55, - 0x5,0x52,0x56, 0x5,0x52,0x59, 0x5,0x52,0x53, 0x4,0x54,0x6b, - 0x5,0x52,0x58, 0xf,0x58,0x79, 0x5,0x59,0x5e, 0x7,0x35,0x4d, - 0x7,0x3d,0x63, 0x5,0x5f,0x71, 0x5,0x5f,0x72, 0x5,0x66,0x26, - 0x5,0x66,0x27, 0x5,0x66,0x28, 0x4,0x62,0x21, 0x5,0x6a,0x58, - 0x5,0x6a,0x59, 0x7,0x51,0x49, 0x7,0x51,0x4a, 0x5,0x6e,0x54, - 0x5,0x6e,0x53, 0x5,0x6e,0x55, 0x7,0x56,0x2e, 0x5,0x71,0x74, - 0x5,0x66,0x29, 0x5,0x74,0x68, 0x5,0x74,0x69, 0x4,0x69,0x61, - 0xf,0x6a,0x33, 0x7,0x5d,0x4a, 0x4,0x6c,0x36, 0x5,0x7b,0x23, - 0x5,0x7c,0x3f, 0x6,0x34,0x7b, 0x6,0x46,0x35, 0x5,0x36,0x46, - 0x5,0x3d,0x4a, 0x5,0x3d,0x48, 0x5,0x3d,0x49, 0x5,0x3d,0x46, - 0x4,0x3b,0x7d, 0x5,0x3d,0x45, 0x4,0x3b,0x7c, 0x6,0x50,0x3c, - 0x4,0x3b,0x7a, 0x4,0x41,0x6c, 0x5,0x44,0x3a, 0x4,0x41,0x6b, - 0x5,0x44,0x31, 0x5,0x44,0x39, 0x6,0x5a,0x2f, 0x4,0x41,0x69, - 0x5,0x4b,0x3b, 0x5,0x44,0x37, 0x4,0x41,0x66, 0x4,0x41,0x67, - 0x4,0x41,0x6a, 0x6,0x5a,0x32, 0x5,0x44,0x36, 0x5,0x44,0x32, - 0x6,0x5a,0x30, 0x6,0x5a,0x31, 0x6,0x5a,0x2e, 0xf,0x46,0x33, - 0x5,0x44,0x33, 0x5,0x44,0x38, 0x5,0x4b,0x3d, 0x6,0x64,0x31, - 0x6,0x64,0x32, 0x5,0x4b,0x37, 0x5,0x4b,0x44, 0x5,0x4b,0x38, - 0x4,0x48,0x49, 0x4,0x48,0x48, 0x5,0x4b,0x3a, 0x5,0x4b,0x36, - 0x4,0x48,0x4f, 0x5,0x4b,0x42, 0x5,0x4b,0x39, 0x7,0x2b,0x2b, - 0x5,0x4b,0x43, 0x6,0x64,0x35, 0x6,0x64,0x33, 0x6,0x64,0x2e, - 0x5,0x4b,0x3c, 0x5,0x4b,0x41, 0xf,0x4d,0x3e, 0x6,0x64,0x2d, - 0x5,0x4b,0x40, 0x6,0x64,0x2c, 0x6,0x64,0x36, 0x5,0x4b,0x35, - 0x6,0x64,0x2f, 0x6,0x64,0x34, 0x5,0x52,0x5d, 0x4,0x4e,0x5b, - 0x7,0x2b,0x25, 0x7,0x2b,0x30, 0x5,0x52,0x5c, 0x5,0x52,0x5b, - 0x4,0x4e,0x58, 0x7,0x2b,0x24, 0x7,0x2b,0x2a, 0x4,0x48,0x4a, - 0x7,0x2b,0x2e, 0x5,0x52,0x5e, 0x4,0x4e,0x5e, 0x7,0x2b,0x2d, - 0x7,0x2b,0x29, 0x7,0x35,0x4f, 0x7,0x2b,0x2c, 0xf,0x53,0x23, - 0xf,0x53,0x24, 0x7,0x2b,0x27, 0x7,0x2b,0x28, 0x7,0x2b,0x2f, - 0x7,0x2b,0x31, 0x7,0x2b,0x23, 0x7,0x2b,0x26, 0x5,0x52,0x5f, - 0x4,0x54,0x6c, 0x5,0x59,0x61, 0x4,0x54,0x6e, 0x5,0x59,0x69, - 0x7,0x35,0x58, 0x5,0x59,0x68, 0x5,0x59,0x66, 0x7,0x35,0x59, - 0x7,0x35,0x57, 0x5,0x59,0x65, 0x5,0x59,0x63, 0x7,0x35,0x5b, - 0x7,0x35,0x50, 0x5,0x59,0x6a, 0x5,0x59,0x62, 0x5,0x59,0x6b, - 0x5,0x59,0x64, 0x5,0x59,0x67, 0x4,0x54,0x71, 0x7,0x35,0x4e, - 0x5,0x59,0x60, 0x7,0x35,0x5a, 0x4,0x54,0x72, 0x7,0x35,0x56, - 0x7,0x35,0x5c, 0xf,0x4d,0x40, 0xf,0x58,0x7a, 0xf,0x58,0x7c, - 0xf,0x58,0x7d, 0xf,0x59,0x21, 0xf,0x59,0x22, 0xf,0x59,0x23, - 0x7,0x35,0x52, 0x7,0x35,0x53, 0x7,0x35,0x54, 0x7,0x35,0x55, - 0x5,0x59,0x6c, 0x5,0x59,0x5f, 0xf,0x58,0x7e, 0x5,0x59,0x6d, - 0x4,0x59,0x75, 0x4,0x59,0x71, 0x4,0x59,0x6e, 0x7,0x3d,0x65, - 0x5,0x5f,0x77, 0x4,0x59,0x79, 0x5,0x5f,0x78, 0x4,0x59,0x74, - 0x5,0x5f,0x76, 0x5,0x5f,0x73, 0x5,0x5f,0x75, 0x4,0x59,0x6f, - 0x5,0x5f,0x7b, 0x7,0x3d,0x6a, 0x4,0x59,0x72, 0x7,0x3d,0x6c, - 0x5,0x5f,0x74, 0x7,0x3d,0x67, 0x4,0x59,0x78, 0x7,0x3d,0x6b, - 0xf,0x5d,0x5e, 0xf,0x5d,0x5f, 0xf,0x5d,0x60, 0xf,0x5d,0x61, - 0xf,0x5d,0x62, 0xf,0x5d,0x63, 0x7,0x3d,0x64, 0x7,0x3d,0x66, - 0x5,0x5f,0x79, 0x5,0x5f,0x7a, 0x7,0x3d,0x68, 0x7,0x3d,0x6d, - 0x5,0x66,0x2a, 0x4,0x5e,0x4a, 0x5,0x66,0x30, 0x5,0x66,0x2e, - 0x4,0x62,0x24, 0x5,0x66,0x2d, 0x5,0x66,0x2b, 0x7,0x44,0x7b, - 0x5,0x66,0x2c, 0x4,0x5e,0x48, 0x5,0x66,0x31, 0x5,0x66,0x2f, - 0x7,0x44,0x7c, 0xf,0x61,0x55, 0xf,0x61,0x56, 0xf,0x61,0x57, - 0xf,0x61,0x58, 0x7,0x44,0x79, 0x7,0x44,0x7a, 0x7,0x4b,0x76, - 0x5,0x6a,0x5d, 0x7,0x4b,0x70, 0x7,0x4b,0x6d, 0x5,0x6a,0x5e, - 0x4,0x62,0x2e, 0x7,0x4b,0x72, 0x5,0x6a,0x5c, 0x5,0x6e,0x56, - 0x5,0x6a,0x5b, 0x5,0x6a,0x5a, 0x7,0x4b,0x74, 0x7,0x4b,0x6f, - 0x4,0x62,0x2a, 0x7,0x4b,0x6e, 0x7,0x4b,0x75, 0x7,0x4b,0x71, - 0xf,0x64,0x54, 0xf,0x64,0x55, 0x7,0x4b,0x77, 0x7,0x4b,0x73, - 0x4,0x65,0x2e, 0x4,0x65,0x2d, 0x5,0x6e,0x5b, 0x5,0x6e,0x59, - 0x7,0x51,0x4e, 0x5,0x6e,0x5a, 0x4,0x65,0x32, 0x7,0x51,0x4d, - 0x4,0x65,0x33, 0x5,0x6e,0x58, 0x7,0x51,0x4b, 0x7,0x51,0x4f, - 0xf,0x66,0x7a, 0x4,0x65,0x34, 0x7,0x51,0x50, 0x7,0x51,0x4c, - 0x5,0x6e,0x57, 0x7,0x50,0x4c, 0x5,0x71,0x75, 0x5,0x71,0x76, - 0x7,0x56,0x2f, 0x5,0x71,0x78, 0x7,0x56,0x38, 0x7,0x5a,0x31, - 0x4,0x67,0x7a, 0x4,0x67,0x78, 0x7,0x56,0x33, 0x7,0x56,0x31, - 0x7,0x56,0x36, 0x5,0x71,0x77, 0x5,0x71,0x79, 0x5,0x71,0x7a, - 0x7,0x56,0x30, 0x7,0x56,0x34, 0xf,0x68,0x7a, 0xf,0x68,0x7b, - 0xf,0x68,0x7c, 0x7,0x56,0x37, 0x7,0x56,0x35, 0x7,0x5a,0x30, - 0x5,0x74,0x6c, 0x5,0x74,0x6b, 0x7,0x5a,0x2d, 0x7,0x5a,0x2f, - 0x5,0x74,0x6a, 0xf,0x6a,0x34, 0x7,0x5a,0x2b, 0x7,0x5a,0x2e, - 0x7,0x5a,0x2c, 0x7,0x5d,0x52, 0x7,0x5d,0x51, 0x7,0x5d,0x4f, - 0x5,0x76,0x6c, 0x5,0x76,0x6d, 0x4,0x6b,0x2e, 0x5,0x76,0x6a, - 0x7,0x5d,0x4d, 0x4,0x6b,0x2f, 0x7,0x5d,0x4e, 0xf,0x6b,0x35, - 0x7,0x5d,0x50, 0x7,0x5d,0x4c, 0x7,0x5d,0x4b, 0x4,0x6c,0x38, - 0x7,0x60,0x24, 0x5,0x76,0x6b, 0x4,0x6c,0x37, 0xf,0x6b,0x72, - 0x7,0x60,0x25, 0x4,0x6d,0x2e, 0x5,0x79,0x5a, 0x5,0x7a,0x48, - 0x7,0x63,0x24, 0x5,0x7a,0x49, 0x7,0x63,0x25, 0x7,0x63,0x26, - 0x4,0x6e,0x23, 0x7,0x64,0x25, 0x7,0x65,0x4d, 0x6,0x46,0x36, - 0x6,0x50,0x3f, 0x4,0x3c,0x21, 0x6,0x50,0x3d, 0x5,0x3d,0x4b, - 0xf,0x40,0x2e, 0x6,0x50,0x3e, 0x5,0x44,0x3b, 0x5,0x44,0x40, - 0x4,0x41,0x6f, 0x5,0x44,0x3d, 0x5,0x44,0x3e, 0x6,0x5a,0x34, - 0x6,0x5a,0x36, 0x5,0x44,0x3c, 0x4,0x41,0x70, 0x6,0x5a,0x35, - 0x6,0x53,0x33, 0x5,0x44,0x3f, 0x6,0x5a,0x37, 0x4,0x48,0x58, - 0x5,0x4b,0x48, 0x4,0x48,0x55, 0x5,0x4b,0x47, 0x5,0x4b,0x46, - 0x5,0x4b,0x45, 0x4,0x48,0x53, 0x6,0x64,0x37, 0x4,0x48,0x52, - 0x6,0x64,0x3b, 0x6,0x64,0x39, 0x6,0x64,0x38, 0x4,0x4e,0x5f, - 0x5,0x52,0x62, 0x4,0x4e,0x62, 0x7,0x2b,0x34, 0x7,0x2b,0x33, - 0x7,0x2b,0x32, 0x5,0x52,0x61, 0x7,0x2b,0x35, 0xf,0x53,0x25, - 0xf,0x53,0x26, 0x5,0x59,0x6f, 0x5,0x59,0x77, 0x5,0x59,0x70, - 0x7,0x35,0x5d, 0x7,0x35,0x60, 0x5,0x59,0x6e, 0x5,0x59,0x73, - 0x5,0x59,0x76, 0x7,0x35,0x5f, 0x7,0x35,0x61, 0x5,0x59,0x74, - 0x5,0x59,0x75, 0x7,0x35,0x5e, 0xf,0x59,0x25, 0x5,0x59,0x72, - 0x5,0x59,0x71, 0x7,0x3d,0x71, 0x4,0x5a,0x25, 0x5,0x60,0x25, - 0x5,0x60,0x26, 0x4,0x59,0x7b, 0x5,0x5f,0x7c, 0x7,0x3d,0x70, - 0x4,0x5a,0x24, 0x5,0x66,0x32, 0x5,0x60,0x22, 0x4,0x5a,0x23, - 0x5,0x5f,0x7e, 0x5,0x60,0x21, 0x5,0x60,0x24, 0x5,0x5f,0x7d, - 0x5,0x60,0x23, 0x7,0x3d,0x6e, 0xf,0x5d,0x64, 0xf,0x5d,0x65, - 0x7,0x3d,0x72, 0x7,0x3d,0x6f, 0x4,0x5e,0x53, 0x7,0x45,0x22, - 0x7,0x45,0x24, 0x5,0x66,0x37, 0x7,0x45,0x26, 0x5,0x66,0x34, - 0x5,0x66,0x38, 0x4,0x5e,0x54, 0x5,0x66,0x3a, 0x4,0x62,0x31, - 0x5,0x66,0x35, 0x7,0x45,0x25, 0x5,0x66,0x36, 0x5,0x66,0x39, - 0x5,0x66,0x33, 0xf,0x61,0x59, 0x7,0x45,0x28, 0x7,0x45,0x23, - 0x7,0x45,0x21, 0x7,0x45,0x27, 0x7,0x44,0x7d, 0x5,0x6a,0x5f, - 0x4,0x62,0x33, 0x4,0x62,0x34, 0x4,0x62,0x35, 0x5,0x6a,0x60, - 0x7,0x4b,0x79, 0xf,0x64,0x56, 0xf,0x64,0x57, 0x7,0x4b,0x78, - 0x7,0x4b,0x7a, 0x7,0x4b,0x7b, 0x7,0x4b,0x7c, 0x5,0x6e,0x5e, - 0x5,0x6e,0x61, 0x5,0x6e,0x60, 0x4,0x65,0x35, 0x5,0x6e,0x5c, - 0x4,0x65,0x37, 0x5,0x6e,0x5f, 0xf,0x66,0x7b, 0x5,0x6e,0x62, - 0x5,0x6e,0x5d, 0x4,0x65,0x38, 0x7,0x56,0x40, 0x4,0x67,0x7d, - 0x4,0x68,0x21, 0x5,0x71,0x7b, 0x7,0x56,0x39, 0x5,0x71,0x7c, - 0x7,0x56,0x3c, 0x7,0x56,0x3a, 0xf,0x68,0x7d, 0x7,0x56,0x3f, - 0x7,0x56,0x41, 0x7,0x56,0x42, 0x7,0x56,0x3d, 0x7,0x56,0x3e, - 0x7,0x56,0x3b, 0x7,0x5a,0x32, 0xf,0x6a,0x35, 0x7,0x5a,0x33, - 0x7,0x5d,0x53, 0x5,0x78,0x49, 0x4,0x6c,0x3b, 0x7,0x60,0x26, - 0x7,0x60,0x27, 0x5,0x79,0x5b, 0x7,0x61,0x61, 0x5,0x79,0x5c, - 0x4,0x6d,0x2f, 0x4,0x6d,0x66, 0x5,0x7a,0x4a, 0x5,0x7b,0x24, - 0x7,0x64,0x26, 0xf,0x6d,0x24, 0x5,0x7c,0x47, 0x7,0x66,0x55, - 0x6,0x3c,0x75, 0x5,0x40,0x39, 0x7,0x2b,0x36, 0x7,0x4b,0x7d, - 0x5,0x6a,0x61, 0x7,0x56,0x43, 0x4,0x69,0x64, 0x5,0x74,0x6d, - 0x6,0x34,0x7c, 0x6,0x34,0x7d, 0x6,0x35,0x22, 0x6,0x34,0x7e, - 0x5,0x30,0x71, 0x6,0x3c,0x76, 0x6,0x3c,0x78, 0x5,0x3d,0x4c, - 0x5,0x36,0x4a, 0x5,0x36,0x47, 0x6,0x46,0x3a, 0x6,0x46,0x38, - 0x5,0x36,0x49, 0x6,0x46,0x39, 0x6,0x46,0x3b, 0x6,0x50,0x40, - 0x5,0x36,0x48, 0x6,0x50,0x41, 0x6,0x50,0x46, 0x4,0x3c,0x22, - 0x5,0x3d,0x4d, 0x6,0x50,0x44, 0x6,0x50,0x45, 0x4,0x3c,0x26, - 0x5,0x3d,0x4e, 0x6,0x5a,0x38, 0x5,0x3d,0x4f, 0x6,0x50,0x42, - 0xf,0x40,0x2f, 0x6,0x50,0x43, 0x4,0x3c,0x23, 0x6,0x5a,0x42, - 0x6,0x5a,0x39, 0x5,0x44,0x42, 0x5,0x44,0x44, 0x5,0x44,0x41, - 0x5,0x44,0x47, 0x4,0x41,0x76, 0x5,0x44,0x43, 0x6,0x64,0x43, - 0x5,0x44,0x45, 0x6,0x5a,0x3c, 0x6,0x5a,0x3b, 0x6,0x64,0x3d, - 0x4,0x41,0x73, 0x6,0x5a,0x3a, 0x6,0x64,0x3e, 0x6,0x5a,0x3e, - 0x5,0x44,0x48, 0x6,0x5a,0x41, 0x5,0x52,0x63, 0xf,0x46,0x37, - 0x6,0x5a,0x40, 0x6,0x5a,0x3f, 0x6,0x64,0x3c, 0x4,0x41,0x78, - 0x5,0x44,0x46, 0x6,0x64,0x3f, 0x7,0x2b,0x37, 0x6,0x64,0x44, - 0x5,0x4b,0x4d, 0x5,0x4b,0x49, 0x6,0x64,0x45, 0x5,0x4b,0x4a, - 0x4,0x48,0x5a, 0x6,0x64,0x42, 0x5,0x4b,0x4b, 0x7,0x2b,0x39, - 0x6,0x64,0x41, 0xf,0x46,0x36, 0xf,0x53,0x28, 0x7,0x2b,0x3a, - 0x4,0x4e,0x6b, 0x7,0x2b,0x40, 0x4,0x4e,0x6a, 0x5,0x52,0x69, - 0x5,0x52,0x64, 0x5,0x59,0x79, 0x4,0x4e,0x68, 0x5,0x52,0x66, - 0x5,0x52,0x6b, 0x5,0x52,0x68, 0x4,0x4e,0x6c, 0x5,0x52,0x6a, - 0x7,0x2b,0x3c, 0x5,0x52,0x65, 0x7,0x2b,0x3b, 0x7,0x3d,0x73, - 0x5,0x52,0x67, 0x7,0x2b,0x3e, 0x7,0x2b,0x3d, 0xf,0x53,0x27, - 0x5,0x59,0x78, 0x7,0x2b,0x3f, 0x5,0x5a,0x23, 0x4,0x5a,0x26, - 0x5,0x5a,0x24, 0x4,0x54,0x7b, 0x7,0x35,0x66, 0x7,0x35,0x6a, - 0x5,0x60,0x27, 0x5,0x59,0x7b, 0x7,0x35,0x69, 0x5,0x59,0x7e, - 0x7,0x35,0x67, 0x5,0x59,0x7c, 0x7,0x35,0x6f, 0x4,0x54,0x79, - 0x7,0x35,0x6b, 0x7,0x35,0x70, 0x5,0x5a,0x25, 0x7,0x35,0x68, - 0x7,0x35,0x63, 0x5,0x59,0x7a, 0x7,0x35,0x65, 0x7,0x35,0x64, - 0x7,0x35,0x6c, 0x5,0x60,0x29, 0x7,0x35,0x6e, 0x7,0x3d,0x75, - 0x7,0x35,0x62, 0x5,0x5a,0x22, 0x7,0x35,0x6d, 0x5,0x59,0x7d, - 0xf,0x59,0x26, 0xf,0x59,0x27, 0xf,0x59,0x28, 0xf,0x59,0x29, - 0x5,0x5a,0x21, 0x7,0x3d,0x74, 0x5,0x60,0x28, 0x5,0x60,0x34, - 0x7,0x3d,0x77, 0x5,0x60,0x2d, 0x5,0x60,0x2f, 0x5,0x60,0x33, - 0x5,0x60,0x2b, 0x7,0x3d,0x76, 0x5,0x60,0x32, 0x5,0x60,0x35, - 0x4,0x5a,0x2b, 0x5,0x60,0x36, 0x7,0x3d,0x78, 0x7,0x3d,0x7d, - 0x7,0x45,0x2a, 0x7,0x3d,0x7a, 0x5,0x60,0x2a, 0x7,0x45,0x2b, - 0x7,0x3e,0x21, 0x5,0x60,0x2e, 0x7,0x3d,0x79, 0x7,0x3d,0x7e, - 0xf,0x5d,0x66, 0xf,0x5d,0x67, 0x7,0x3d,0x7b, 0x5,0x60,0x30, - 0x7,0x3d,0x7c, 0x7,0x45,0x2f, 0x5,0x66,0x3f, 0x5,0x66,0x3b, - 0x4,0x5e,0x56, 0x4,0x5e,0x5c, 0x5,0x60,0x38, 0x4,0x5e,0x5d, - 0x5,0x66,0x3d, 0x5,0x60,0x37, 0x5,0x66,0x3c, 0x7,0x45,0x2e, - 0x7,0x45,0x2d, 0x7,0x4b,0x7e, 0x4,0x5e,0x5e, 0x5,0x66,0x3e, - 0x7,0x4c,0x22, 0x7,0x51,0x54, 0x7,0x45,0x2c, 0x7,0x45,0x29, - 0x7,0x45,0x31, 0xf,0x61,0x5a, 0xf,0x61,0x5b, 0x7,0x4c,0x25, - 0x7,0x4c,0x21, 0x4,0x5e,0x55, 0x7,0x45,0x32, 0x7,0x45,0x30, - 0x5,0x6a,0x64, 0x7,0x4c,0x23, 0x5,0x6a,0x62, 0x4,0x62,0x3b, - 0x4,0x65,0x3d, 0x7,0x51,0x53, 0x5,0x6a,0x69, 0x5,0x6a,0x66, - 0x5,0x6a,0x68, 0x5,0x6a,0x6a, 0x7,0x51,0x51, 0x4,0x62,0x37, - 0x5,0x6a,0x67, 0x5,0x60,0x39, 0x5,0x6a,0x63, 0x7,0x51,0x52, - 0x4,0x62,0x39, 0x7,0x51,0x58, 0x7,0x4c,0x24, 0x7,0x51,0x57, - 0x4,0x62,0x3a, 0xf,0x64,0x58, 0xf,0x64,0x59, 0x5,0x6a,0x65, - 0x7,0x51,0x56, 0x5,0x6a,0x6b, 0x4,0x65,0x3e, 0x7,0x51,0x55, - 0x7,0x51,0x59, 0x7,0x51,0x5f, 0x7,0x56,0x44, 0x5,0x71,0x7d, - 0x7,0x51,0x60, 0x5,0x6e,0x65, 0x4,0x65,0x3f, 0x5,0x71,0x7e, - 0x5,0x6e,0x64, 0x7,0x51,0x5e, 0x7,0x51,0x62, 0x5,0x6e,0x63, - 0x7,0x4c,0x27, 0x7,0x51,0x61, 0x7,0x51,0x5b, 0x7,0x51,0x5c, - 0x7,0x51,0x5d, 0x7,0x56,0x45, 0x7,0x51,0x63, 0x7,0x51,0x5a, - 0x5,0x72,0x28, 0x5,0x72,0x22, 0x7,0x56,0x46, 0x4,0x68,0x25, - 0x5,0x72,0x24, 0x5,0x72,0x21, 0x7,0x56,0x47, 0x5,0x72,0x2b, - 0x7,0x56,0x48, 0x5,0x72,0x2a, 0x5,0x72,0x23, 0x5,0x72,0x27, - 0x5,0x72,0x25, 0x7,0x56,0x49, 0x5,0x72,0x26, 0x5,0x72,0x29, - 0xf,0x68,0x7e, 0x4,0x69,0x66, 0x5,0x74,0x6e, 0x5,0x74,0x6f, - 0x7,0x5a,0x37, 0x7,0x5d,0x54, 0x7,0x5a,0x36, 0x5,0x74,0x70, - 0x7,0x5a,0x35, 0xf,0x6a,0x37, 0x7,0x5a,0x34, 0x5,0x76,0x6e, - 0x7,0x5d,0x56, 0x5,0x76,0x6f, 0x5,0x76,0x70, 0x5,0x78,0x4a, - 0x7,0x5d,0x55, 0x5,0x78,0x4b, 0x5,0x78,0x4c, 0x4,0x6c,0x3c, - 0x7,0x60,0x28, 0x7,0x60,0x2a, 0x7,0x60,0x29, 0x5,0x79,0x5d, - 0x7,0x64,0x27, 0x5,0x7b,0x25, 0x6,0x3c,0x79, 0x6,0x46,0x3c, - 0x6,0x64,0x46, 0x7,0x2b,0x41, 0x6,0x64,0x48, 0x6,0x64,0x47, - 0x5,0x52,0x6c, 0x4,0x55,0x24, 0x4,0x55,0x25, 0x7,0x3e,0x22, - 0x7,0x3e,0x23, 0x7,0x35,0x71, 0x7,0x35,0x73, 0x7,0x35,0x72, - 0x7,0x4c,0x29, 0x7,0x4c,0x28, 0x7,0x45,0x33, 0x7,0x4d,0x73, - 0x7,0x51,0x64, 0x7,0x60,0x2b, 0x4,0x6e,0x26, 0xf,0x32,0x71, - 0x4,0x41,0x7c, 0x6,0x5a,0x43, 0x5,0x47,0x54, 0x6,0x64,0x49, - 0x6,0x64,0x4a, 0xf,0x4d,0x41, 0xf,0x53,0x29, 0x6,0x64,0x4b, - 0x7,0x2b,0x42, 0xf,0x53,0x2a, 0xf,0x59,0x2a, 0x7,0x35,0x74, - 0xf,0x5d,0x68, 0x7,0x3e,0x24, 0x7,0x45,0x36, 0x5,0x66,0x41, - 0x5,0x66,0x40, 0x5,0x66,0x42, 0x7,0x45,0x35, 0x7,0x45,0x34, - 0x5,0x6a,0x6c, 0x4,0x62,0x3d, 0x4,0x62,0x3e, 0x7,0x4c,0x2a, - 0x7,0x51,0x65, 0xf,0x66,0x7c, 0x5,0x72,0x2c, 0xf,0x69,0x21, - 0x7,0x56,0x4a, 0x7,0x5d,0x57, 0x5,0x7a,0x4b, 0x5,0x36,0x4b, - 0x5,0x36,0x4c, 0x5,0x3d,0x50, 0x6,0x50,0x48, 0xf,0x40,0x31, - 0x6,0x50,0x47, 0x5,0x44,0x49, 0x6,0x5a,0x45, 0x6,0x5a,0x44, - 0x6,0x5a,0x47, 0x6,0x5a,0x46, 0x5,0x4b,0x51, 0x6,0x64,0x4d, - 0x6,0x64,0x4e, 0x5,0x4b,0x50, 0x4,0x48,0x61, 0x6,0x64,0x4c, - 0x6,0x64,0x52, 0x5,0x4b,0x4f, 0x7,0x2b,0x43, 0xf,0x4d,0x42, - 0xf,0x4d,0x43, 0xf,0x4d,0x44, 0xf,0x4d,0x45, 0x7,0x2b,0x46, - 0x6,0x64,0x4f, 0x6,0x64,0x51, 0x5,0x4b,0x52, 0x7,0x2b,0x4a, - 0x5,0x52,0x72, 0x7,0x2b,0x4e, 0x7,0x2b,0x47, 0x5,0x5a,0x32, - 0x5,0x52,0x74, 0x5,0x52,0x77, 0x5,0x52,0x6d, 0x5,0x52,0x70, - 0x5,0x52,0x6e, 0x5,0x52,0x75, 0x7,0x2b,0x44, 0x5,0x52,0x76, - 0x7,0x2b,0x48, 0x5,0x52,0x73, 0x7,0x2b,0x4b, 0x7,0x2b,0x49, - 0x5,0x52,0x6f, 0x7,0x2b,0x45, 0x7,0x2b,0x4c, 0x5,0x52,0x71, - 0xf,0x53,0x2b, 0xf,0x53,0x2c, 0xf,0x53,0x2d, 0x7,0x2b,0x4d, - 0x7,0x35,0x7a, 0x4,0x55,0x2c, 0x7,0x35,0x79, 0x5,0x5a,0x2f, - 0x4,0x55,0x2a, 0x4,0x55,0x27, 0x4,0x55,0x2b, 0x4,0x55,0x28, - 0x7,0x35,0x75, 0x5,0x5a,0x29, 0x4,0x55,0x29, 0x5,0x5a,0x30, - 0x5,0x5a,0x2d, 0x7,0x36,0x24, 0x5,0x5a,0x33, 0x5,0x5a,0x27, - 0x5,0x5a,0x31, 0x5,0x5a,0x34, 0x5,0x5a,0x2b, 0x7,0x35,0x7c, - 0x7,0x35,0x7b, 0x7,0x36,0x26, 0x7,0x36,0x21, 0x7,0x35,0x78, - 0x7,0x36,0x23, 0x5,0x5a,0x2a, 0x7,0x36,0x22, 0xf,0x59,0x2c, - 0x5,0x5a,0x28, 0x7,0x35,0x7d, 0x7,0x35,0x7e, 0x7,0x36,0x27, - 0x7,0x36,0x25, 0xf,0x59,0x2b, 0x7,0x35,0x76, 0x7,0x35,0x77, - 0x5,0x60,0x3a, 0x7,0x3e,0x2c, 0x5,0x60,0x3b, 0x7,0x3e,0x26, - 0x4,0x5a,0x2f, 0x7,0x3e,0x27, 0x7,0x3e,0x25, 0x5,0x60,0x3c, - 0x4,0x5a,0x2c, 0x7,0x3e,0x2a, 0x7,0x3e,0x2b, 0x5,0x4b,0x53, - 0x7,0x3e,0x28, 0x5,0x60,0x3e, 0x5,0x60,0x3d, 0xf,0x5d,0x69, - 0xf,0x5d,0x6a, 0x7,0x45,0x3c, 0x5,0x66,0x4c, 0x5,0x66,0x4b, - 0x5,0x66,0x47, 0x4,0x5e,0x64, 0x5,0x66,0x49, 0x5,0x66,0x48, - 0x4,0x5e,0x61, 0x5,0x66,0x45, 0x5,0x66,0x4e, 0x4,0x5e,0x6d, - 0x4,0x5e,0x69, 0x4,0x5e,0x6a, 0x4,0x5e,0x66, 0x5,0x66,0x4f, - 0x5,0x66,0x43, 0x4,0x5e,0x6c, 0x7,0x45,0x3b, 0x7,0x45,0x3a, - 0x7,0x45,0x37, 0x5,0x66,0x4a, 0xf,0x61,0x5d, 0xf,0x61,0x5e, - 0xf,0x61,0x60, 0x4,0x5e,0x6b, 0xf,0x61,0x5c, 0x7,0x45,0x38, - 0x5,0x66,0x44, 0x7,0x45,0x39, 0x5,0x66,0x4d, 0x5,0x6a,0x6d, - 0x5,0x6a,0x73, 0x5,0x6a,0x6f, 0x4,0x62,0x43, 0x7,0x4c,0x31, - 0x5,0x66,0x50, 0x7,0x4c,0x2c, 0x5,0x66,0x46, 0x5,0x6a,0x71, - 0x5,0x6a,0x70, 0x5,0x6a,0x74, 0x7,0x4c,0x2b, 0x5,0x6a,0x72, - 0x5,0x6a,0x76, 0x4,0x62,0x42, 0x5,0x6a,0x77, 0x7,0x4c,0x32, - 0x7,0x4c,0x34, 0x5,0x6a,0x75, 0x7,0x4c,0x33, 0x7,0x4c,0x2d, - 0x7,0x4c,0x2e, 0x7,0x4c,0x2f, 0xf,0x64,0x5b, 0xf,0x64,0x5c, - 0xf,0x64,0x5d, 0x7,0x4c,0x30, 0x3,0x57,0x36, 0x7,0x4c,0x35, - 0x4,0x65,0x45, 0x7,0x51,0x6a, 0x7,0x51,0x69, 0x5,0x6e,0x6e, - 0x5,0x6e,0x69, 0x5,0x6e,0x6b, 0x5,0x6e,0x68, 0x4,0x65,0x42, - 0x5,0x6e,0x70, 0xf,0x66,0x7d, 0x4,0x65,0x43, 0x4,0x65,0x44, - 0x4,0x65,0x48, 0x5,0x6e,0x71, 0x5,0x6e,0x72, 0x5,0x6e,0x67, - 0x7,0x51,0x68, 0x4,0x68,0x26, 0x5,0x6e,0x6a, 0x5,0x6e,0x6f, - 0x5,0x6e,0x6c, 0x7,0x51,0x6b, 0x7,0x51,0x6f, 0x7,0x51,0x70, - 0x7,0x51,0x71, 0x7,0x51,0x6d, 0x7,0x51,0x6c, 0xf,0x66,0x7e, - 0xf,0x67,0x21, 0x7,0x51,0x67, 0x7,0x51,0x6e, 0x7,0x52,0x27, - 0x7,0x51,0x66, 0x5,0x72,0x2f, 0x5,0x72,0x2e, 0x5,0x72,0x31, - 0x4,0x68,0x27, 0x5,0x72,0x32, 0x5,0x72,0x30, 0x4,0x68,0x2c, - 0x7,0x56,0x4d, 0x7,0x56,0x4c, 0x7,0x56,0x4e, 0x7,0x56,0x4b, - 0xf,0x69,0x22, 0x7,0x56,0x4f, 0x7,0x56,0x50, 0x5,0x74,0x78, - 0x7,0x5a,0x3d, 0x5,0x72,0x34, 0x7,0x5a,0x41, 0x7,0x5a,0x38, - 0x5,0x74,0x71, 0x7,0x5a,0x3b, 0x5,0x72,0x33, 0x5,0x74,0x74, - 0x5,0x74,0x77, 0x5,0x74,0x73, 0x7,0x5a,0x40, 0x4,0x69,0x6c, - 0x5,0x74,0x75, 0x7,0x5a,0x39, 0x7,0x5a,0x3a, 0x7,0x5a,0x3c, - 0xf,0x6a,0x38, 0xf,0x6a,0x39, 0xf,0x6a,0x3a, 0x5,0x74,0x72, - 0x5,0x74,0x79, 0x7,0x5a,0x3f, 0x7,0x5d,0x5f, 0x7,0x5d,0x5d, - 0x5,0x76,0x71, 0x5,0x78,0x4e, 0x7,0x5d,0x5c, 0x7,0x5d,0x59, - 0x5,0x76,0x72, 0x7,0x5d,0x5a, 0x7,0x5d,0x5e, 0x7,0x5d,0x5b, - 0x7,0x5d,0x60, 0xf,0x6b,0x38, 0xf,0x6b,0x39, 0x7,0x5d,0x58, - 0x5,0x78,0x4f, 0x7,0x60,0x31, 0x7,0x60,0x34, 0x5,0x78,0x4d, - 0x7,0x60,0x33, 0x7,0x60,0x36, 0x7,0x60,0x35, 0x7,0x60,0x2f, - 0x7,0x60,0x30, 0x7,0x60,0x2c, 0x7,0x60,0x32, 0x5,0x79,0x62, - 0x7,0x61,0x63, 0x5,0x79,0x63, 0x5,0x79,0x5f, 0x4,0x6d,0x31, - 0x5,0x79,0x60, 0x7,0x61,0x62, 0x5,0x79,0x5e, 0x5,0x79,0x61, - 0x4,0x6d,0x32, 0x7,0x61,0x64, 0x5,0x7a,0x4c, 0x5,0x7a,0x4d, - 0x4,0x6e,0x27, 0x7,0x64,0x29, 0x7,0x64,0x28, 0x4,0x6e,0x40, - 0x7,0x64,0x72, 0x7,0x64,0x73, 0x7,0x64,0x71, 0x7,0x65,0x4e, - 0x5,0x7c,0x23, 0x7,0x65,0x6a, 0x7,0x65,0x7a, 0x7,0x65,0x7b, - 0x7,0x66,0x44, 0x5,0x3d,0x51, 0x4,0x3c,0x27, 0x6,0x5a,0x49, - 0x6,0x5a,0x4a, 0x6,0x5a,0x48, 0x6,0x5a,0x4b, 0x4,0x48,0x63, - 0x4,0x48,0x65, 0x5,0x4b,0x55, 0x6,0x64,0x58, 0x5,0x4b,0x54, - 0x4,0x48,0x64, 0x6,0x64,0x56, 0x6,0x64,0x53, 0x6,0x64,0x54, - 0x6,0x64,0x55, 0x6,0x64,0x57, 0x4,0x4e,0x72, 0x4,0x4e,0x71, - 0x5,0x52,0x7a, 0x5,0x52,0x79, 0x7,0x2b,0x52, 0x7,0x36,0x2c, - 0x5,0x52,0x78, 0x5,0x52,0x7b, 0x4,0x4e,0x77, 0x7,0x2b,0x50, - 0x7,0x2b,0x54, 0x7,0x2b,0x51, 0x4,0x4e,0x78, 0x7,0x2b,0x53, - 0x5,0x5a,0x36, 0x5,0x5a,0x35, 0x4,0x55,0x33, 0x7,0x36,0x2b, - 0x7,0x2b,0x4f, 0x7,0x36,0x2a, 0x7,0x36,0x29, 0x7,0x3e,0x2e, - 0x4,0x5a,0x34, 0x7,0x3e,0x32, 0x4,0x5a,0x32, 0x7,0x3e,0x33, - 0x5,0x60,0x3f, 0x7,0x3e,0x31, 0x7,0x3e,0x2d, 0x7,0x3e,0x2f, - 0x7,0x3e,0x30, 0x5,0x66,0x59, 0x7,0x45,0x3e, 0x4,0x5e,0x6f, - 0x7,0x45,0x3d, 0x5,0x66,0x57, 0x7,0x45,0x3f, 0x5,0x66,0x52, - 0x5,0x6a,0x78, 0x5,0x66,0x55, 0x5,0x66,0x53, 0x5,0x66,0x56, - 0x5,0x66,0x58, 0x7,0x3e,0x34, 0x5,0x66,0x54, 0x7,0x4c,0x3b, - 0x5,0x6a,0x7a, 0x5,0x6a,0x79, 0x7,0x4c,0x3a, 0x7,0x4c,0x37, - 0x5,0x6a,0x7c, 0x5,0x6a,0x7d, 0x5,0x6a,0x7b, 0x7,0x4c,0x3d, - 0x7,0x4c,0x3e, 0x7,0x4c,0x39, 0x7,0x4c,0x38, 0x7,0x4c,0x3c, - 0x7,0x4c,0x36, 0x4,0x65,0x4a, 0x5,0x6e,0x75, 0x5,0x6e,0x74, - 0x5,0x6e,0x73, 0x7,0x51,0x73, 0x7,0x51,0x74, 0x7,0x51,0x75, - 0x4,0x68,0x2f, 0x5,0x72,0x36, 0x7,0x56,0x57, 0x4,0x68,0x2e, - 0x5,0x72,0x35, 0x5,0x72,0x37, 0x7,0x56,0x53, 0x7,0x56,0x54, - 0x5,0x72,0x38, 0x7,0x56,0x55, 0xf,0x69,0x23, 0x7,0x56,0x56, - 0x7,0x56,0x52, 0x4,0x69,0x6d, 0x7,0x5a,0x42, 0x4,0x69,0x70, - 0x7,0x5a,0x43, 0x4,0x69,0x6f, 0x7,0x5a,0x44, 0x7,0x5d,0x65, - 0x7,0x5d,0x66, 0x5,0x76,0x73, 0x4,0x6b,0x36, 0x5,0x76,0x75, - 0x4,0x6b,0x37, 0x7,0x5d,0x62, 0x5,0x76,0x74, 0x7,0x5d,0x67, - 0x7,0x5d,0x61, 0x7,0x5d,0x63, 0x7,0x5d,0x64, 0x4,0x6c,0x3f, - 0x5,0x78,0x50, 0x4,0x6d,0x34, 0x7,0x61,0x65, 0xf,0x6b,0x3a, - 0x7,0x63,0x27, 0x5,0x7a,0x4e, 0x7,0x63,0x28, 0x7,0x64,0x2a, - 0x7,0x64,0x74, 0x5,0x7b,0x6e, 0x4,0x42,0x23, 0x4,0x48,0x66, - 0x5,0x46,0x64, 0x5,0x4b,0x56, 0x6,0x64,0x5a, 0xf,0x4d,0x46, - 0xf,0x4d,0x47, 0xf,0x4d,0x48, 0x6,0x64,0x59, 0x7,0x2b,0x56, - 0xf,0x53,0x2e, 0xf,0x53,0x2f, 0x7,0x36,0x2e, 0x7,0x36,0x2d, - 0xf,0x59,0x2d, 0xf,0x59,0x2e, 0x4,0x5a,0x36, 0x5,0x60,0x40, - 0xf,0x5d,0x6b, 0xf,0x5d,0x6c, 0x7,0x45,0x40, 0xf,0x61,0x61, - 0xf,0x61,0x62, 0x7,0x4c,0x3f, 0xf,0x64,0x5f, 0x5,0x6e,0x76, - 0xf,0x67,0x22, 0xf,0x67,0x23, 0xf,0x67,0x24, 0xf,0x67,0x25, - 0x4,0x68,0x31, 0x7,0x56,0x58, 0x7,0x5a,0x45, 0x7,0x5d,0x68, - 0x7,0x5d,0x69, 0x7,0x5d,0x6a, 0x7,0x60,0x37, 0xf,0x6b,0x73, - 0x7,0x61,0x66, 0x7,0x61,0x67, 0x7,0x63,0x29, 0x7,0x64,0x2b, - 0x4,0x6e,0x28, 0x7,0x65,0x7c, 0x6,0x50,0x49, 0x6,0x50,0x4a, - 0x6,0x5a,0x4d, 0x6,0x5a,0x4c, 0xf,0x46,0x3a, 0xf,0x40,0x69, - 0x4,0x48,0x68, 0x5,0x4b,0x58, 0x6,0x64,0x60, 0x6,0x64,0x5f, - 0x6,0x64,0x5d, 0x6,0x64,0x61, 0x6,0x64,0x5b, 0x6,0x64,0x5c, - 0x5,0x4b,0x57, 0x5,0x4b,0x5a, 0x5,0x52,0x7e, 0x7,0x2b,0x57, - 0x7,0x2b,0x5a, 0x4,0x4e,0x7e, 0x7,0x2b,0x58, 0x5,0x53,0x24, - 0x4,0x4f,0x22, 0x7,0x2b,0x5b, 0x5,0x53,0x23, 0x4,0x4e,0x7c, - 0x4,0x4e,0x7d, 0x5,0x52,0x7c, 0x4,0x4e,0x7a, 0x5,0x52,0x7d, - 0x5,0x53,0x22, 0x5,0x53,0x21, 0x7,0x2b,0x5c, 0x7,0x2b,0x59, - 0xf,0x53,0x30, 0xf,0x53,0x31, 0xf,0x53,0x32, 0xf,0x53,0x33, - 0x7,0x36,0x2f, 0x4,0x55,0x37, 0x7,0x36,0x31, 0x5,0x5a,0x3a, - 0x7,0x36,0x30, 0x4,0x55,0x39, 0x4,0x55,0x34, 0x4,0x55,0x3b, - 0x5,0x5a,0x37, 0x5,0x5a,0x39, 0x4,0x55,0x3a, 0x4,0x55,0x38, - 0x7,0x36,0x33, 0x5,0x5a,0x38, 0xf,0x59,0x2f, 0xf,0x59,0x30, - 0xf,0x59,0x31, 0xf,0x59,0x33, 0x7,0x36,0x32, 0x4,0x5a,0x3a, - 0x4,0x5a,0x3c, 0x7,0x3e,0x3a, 0x5,0x60,0x41, 0x5,0x60,0x44, - 0x5,0x60,0x42, 0x7,0x3e,0x38, 0x5,0x60,0x45, 0x5,0x60,0x46, - 0x5,0x60,0x43, 0x7,0x3e,0x35, 0x4,0x5a,0x39, 0x7,0x3e,0x36, - 0xf,0x5d,0x6d, 0xf,0x5d,0x6e, 0xf,0x5d,0x6f, 0x7,0x3e,0x37, - 0x7,0x3e,0x39, 0x7,0x3e,0x3b, 0x7,0x45,0x42, 0x5,0x66,0x5e, - 0x4,0x5e,0x71, 0x5,0x66,0x5c, 0x5,0x66,0x60, 0x5,0x66,0x5f, - 0x7,0x45,0x44, 0x5,0x66,0x61, 0x7,0x4c,0x40, 0x7,0x45,0x43, - 0x4,0x5e,0x72, 0x5,0x66,0x5a, 0x4,0x5e,0x78, 0x5,0x66,0x5b, - 0xf,0x61,0x63, 0xf,0x61,0x65, 0x5,0x66,0x5d, 0x7,0x45,0x41, - 0xf,0x61,0x64, 0x4,0x62,0x4d, 0x7,0x4c,0x43, 0x7,0x4c,0x47, - 0x5,0x6a,0x7e, 0x5,0x6b,0x21, 0x5,0x6b,0x23, 0x4,0x62,0x50, - 0x7,0x4c,0x48, 0x7,0x4c,0x46, 0x7,0x4c,0x41, 0x5,0x6b,0x24, - 0x5,0x6b,0x22, 0x7,0x4c,0x45, 0x7,0x4c,0x42, 0x4,0x62,0x4b, - 0x7,0x4c,0x44, 0xf,0x64,0x60, 0xf,0x64,0x61, 0xf,0x64,0x63, - 0x5,0x6e,0x7c, 0x7,0x51,0x76, 0x5,0x6e,0x77, 0x5,0x6e,0x7b, - 0x5,0x6e,0x7a, 0x5,0x6e,0x79, 0x4,0x65,0x50, 0x4,0x65,0x4c, - 0x5,0x6e,0x7e, 0x5,0x6e,0x78, 0x4,0x65,0x4b, 0x7,0x51,0x77, - 0x7,0x51,0x78, 0x7,0x51,0x7b, 0x7,0x51,0x7c, 0xf,0x67,0x26, - 0xf,0x67,0x27, 0xf,0x67,0x28, 0x5,0x6e,0x7d, 0x5,0x72,0x3b, - 0x5,0x72,0x3e, 0x5,0x72,0x3a, 0x7,0x56,0x59, 0x4,0x68,0x32, - 0x4,0x68,0x34, 0x5,0x72,0x39, 0x4,0x68,0x33, 0x5,0x72,0x3d, - 0x7,0x56,0x5a, 0x5,0x72,0x3c, 0x7,0x56,0x5e, 0xf,0x69,0x24, - 0x7,0x56,0x5b, 0x7,0x56,0x5c, 0x5,0x75,0x21, 0x5,0x74,0x7c, - 0x7,0x5a,0x46, 0x5,0x75,0x22, 0x5,0x74,0x7e, 0x5,0x74,0x7b, - 0x5,0x75,0x25, 0x5,0x75,0x24, 0x5,0x75,0x23, 0x5,0x74,0x7d, - 0x5,0x75,0x26, 0x7,0x56,0x5d, 0x4,0x69,0x73, 0x7,0x5a,0x47, - 0x7,0x5a,0x48, 0xf,0x6a,0x3b, 0xf,0x6a,0x3c, 0x5,0x76,0x77, - 0x4,0x6b,0x38, 0x4,0x6b,0x39, 0x5,0x76,0x76, 0x7,0x5d,0x6c, - 0x7,0x5d,0x6d, 0x7,0x5d,0x6b, 0xf,0x6b,0x3b, 0x4,0x6c,0x40, - 0x7,0x60,0x38, 0x5,0x78,0x51, 0x4,0x6c,0x44, 0x4,0x6c,0x42, - 0x5,0x79,0x65, 0x7,0x61,0x68, 0x5,0x79,0x64, 0x4,0x6d,0x36, - 0xf,0x6c,0x42, 0xf,0x6c,0x43, 0x7,0x61,0x69, 0x5,0x7a,0x4f, - 0x7,0x63,0x2a, 0x7,0x63,0x2b, 0x7,0x64,0x2c, 0x4,0x6e,0x29, - 0x5,0x7b,0x26, 0xf,0x6c,0x72, 0x7,0x64,0x77, 0x7,0x64,0x76, - 0x5,0x7b,0x4e, 0x4,0x6e,0x54, 0x6,0x23,0x3d, 0x6,0x23,0x3c, - 0x5,0x44,0x4b, 0x5,0x4b,0x5b, 0x5,0x4b,0x5c, 0x6,0x64,0x62, - 0x7,0x2b,0x5d, 0x7,0x36,0x34, 0x7,0x3e,0x3c, 0x7,0x45,0x45, - 0x4,0x5e,0x79, 0x7,0x51,0x7e, 0x7,0x56,0x5f, 0x5,0x72,0x40, - 0x7,0x5a,0x49, 0x7,0x60,0x3a, 0x7,0x60,0x39, 0x5,0x78,0x53, - 0x5,0x7b,0x4f, 0x7,0x2b,0x5e, 0x4,0x4f,0x23, 0x4,0x55,0x3c, - 0x7,0x45,0x46, 0x7,0x52,0x21, 0x7,0x56,0x61, 0x7,0x56,0x60, - 0x7,0x5a,0x4a, 0x7,0x5d,0x6e, 0xf,0x6c,0x73, 0x5,0x7b,0x50, - 0x4,0x42,0x24, 0x6,0x5a,0x4e, 0x6,0x64,0x64, 0x6,0x64,0x63, - 0x7,0x2b,0x5f, 0x7,0x36,0x38, 0x4,0x55,0x3e, 0x5,0x5a,0x3b, - 0x7,0x36,0x36, 0x7,0x36,0x35, 0x4,0x55,0x3d, 0x7,0x36,0x37, - 0x5,0x60,0x47, 0x7,0x3e,0x3d, 0x4,0x5e,0x7a, 0x7,0x45,0x48, - 0x7,0x45,0x49, 0x7,0x45,0x47, 0x7,0x4c,0x49, 0x5,0x6b,0x25, - 0x7,0x4c,0x4a, 0x4,0x65,0x51, 0x7,0x52,0x24, 0x7,0x52,0x23, - 0x7,0x52,0x22, 0x7,0x52,0x25, 0x7,0x56,0x62, 0x4,0x68,0x35, - 0x7,0x56,0x64, 0x5,0x72,0x42, 0x7,0x56,0x63, 0x7,0x56,0x65, - 0x7,0x56,0x66, 0x5,0x75,0x27, 0x7,0x5a,0x4c, 0x7,0x5d,0x71, - 0x7,0x5d,0x72, 0x5,0x76,0x78, 0x4,0x69,0x75, 0x4,0x6b,0x3a, - 0x7,0x5d,0x70, 0x5,0x76,0x79, 0x7,0x5d,0x6f, 0x7,0x5d,0x73, - 0x4,0x6c,0x46, 0x4,0x6c,0x45, 0x7,0x5d,0x74, 0x7,0x60,0x3b, - 0x7,0x61,0x6b, 0x7,0x61,0x6c, 0x5,0x7a,0x50, 0x7,0x63,0x2c, - 0x7,0x63,0x2d, 0x7,0x63,0x2e, 0x4,0x6e,0x2a, 0x7,0x64,0x2d, - 0x7,0x64,0x79, 0x7,0x64,0x78, 0x7,0x64,0x7a, 0x7,0x65,0x4f, - 0x5,0x7c,0x24, 0x4,0x6e,0x51, 0x5,0x7c,0x2d, 0x7,0x65,0x7d, - 0x7,0x66,0x4a, 0x7,0x66,0x4b, 0x6,0x50,0x4b, 0x5,0x3d,0x53, - 0x6,0x5a,0x52, 0x5,0x44,0x4e, 0x6,0x5a,0x51, 0x4,0x42,0x26, - 0x5,0x44,0x4c, 0x6,0x5a,0x50, 0x5,0x44,0x4d, 0x4,0x42,0x25, - 0x6,0x5a,0x4f, 0xf,0x39,0x30, 0xf,0x39,0x2f, 0x6,0x5a,0x53, - 0x5,0x4b,0x5f, 0x5,0x4b,0x60, 0x5,0x4b,0x61, 0x5,0x4b,0x5e, - 0x5,0x4b,0x5d, 0x5,0x4b,0x62, 0x6,0x64,0x68, 0x6,0x64,0x65, - 0x6,0x64,0x69, 0xf,0x4d,0x49, 0xf,0x4d,0x4a, 0xf,0x4d,0x4b, - 0x6,0x64,0x6b, 0x6,0x64,0x66, 0x6,0x64,0x6e, 0x6,0x64,0x6c, - 0x6,0x64,0x6d, 0x6,0x64,0x6a, 0x6,0x64,0x67, 0x4,0x4f,0x27, - 0x5,0x53,0x29, 0x7,0x2b,0x61, 0x7,0x2b,0x60, 0x5,0x53,0x28, - 0x5,0x53,0x2b, 0x5,0x5a,0x41, 0x5,0x53,0x2a, 0x4,0x4f,0x26, - 0x7,0x2b,0x63, 0x5,0x53,0x25, 0xf,0x53,0x34, 0xf,0x53,0x35, - 0xf,0x53,0x36, 0x5,0x53,0x27, 0x7,0x2b,0x62, 0x5,0x53,0x26, - 0x5,0x5a,0x3c, 0x7,0x36,0x3a, 0x5,0x5a,0x45, 0x5,0x5a,0x43, - 0x7,0x36,0x39, 0x4,0x55,0x40, 0x5,0x5a,0x44, 0x7,0x36,0x3b, - 0xf,0x59,0x34, 0x5,0x5a,0x3e, 0x5,0x5a,0x3d, 0x5,0x5a,0x3f, - 0x5,0x5a,0x42, 0x7,0x36,0x3c, 0x5,0x5a,0x40, 0x4,0x5a,0x3d, - 0x5,0x60,0x49, 0x5,0x60,0x4c, 0x5,0x60,0x50, 0x4,0x5a,0x3e, - 0x7,0x3e,0x3e, 0x5,0x60,0x48, 0x5,0x60,0x4a, 0x5,0x60,0x4f, - 0x5,0x60,0x4d, 0x7,0x3e,0x40, 0x7,0x3e,0x41, 0x7,0x3e,0x43, - 0xf,0x5d,0x70, 0xf,0x5d,0x71, 0xf,0x5d,0x72, 0x5,0x60,0x4e, - 0x7,0x3e,0x3f, 0x7,0x3e,0x42, 0x5,0x60,0x4b, 0x5,0x66,0x63, - 0x7,0x45,0x4b, 0x4,0x5e,0x7b, 0x5,0x66,0x69, 0x7,0x45,0x4e, - 0x5,0x66,0x67, 0x5,0x66,0x65, 0x7,0x45,0x4f, 0x7,0x45,0x4c, - 0xf,0x61,0x67, 0x7,0x45,0x4a, 0x7,0x45,0x51, 0x5,0x66,0x62, - 0x7,0x45,0x4d, 0x7,0x45,0x50, 0x5,0x66,0x66, 0x5,0x6b,0x26, - 0x5,0x6b,0x29, 0x7,0x4c,0x4b, 0x5,0x6b,0x27, 0x7,0x4c,0x4c, - 0x7,0x4c,0x4d, 0xf,0x64,0x64, 0xf,0x64,0x65, 0xf,0x64,0x66, - 0xf,0x64,0x67, 0x5,0x66,0x64, 0x5,0x6b,0x28, 0x7,0x52,0x2b, - 0x4,0x65,0x52, 0x7,0x52,0x2a, 0x5,0x6f,0x21, 0x7,0x52,0x29, - 0x7,0x52,0x28, 0x5,0x6f,0x22, 0x7,0x52,0x26, 0xf,0x67,0x29, - 0x5,0x72,0x44, 0x5,0x72,0x46, 0x5,0x72,0x48, 0x4,0x68,0x37, - 0x7,0x56,0x67, 0x7,0x56,0x68, 0xf,0x69,0x25, 0x5,0x72,0x45, - 0x5,0x72,0x43, 0x7,0x56,0x69, 0x5,0x72,0x47, 0x5,0x75,0x2a, - 0x4,0x62,0x51, 0x7,0x5a,0x50, 0x4,0x69,0x78, 0x5,0x75,0x28, - 0x7,0x5a,0x4e, 0x4,0x69,0x79, 0x5,0x75,0x2b, 0xf,0x6a,0x3d, - 0x5,0x75,0x2c, 0x5,0x75,0x29, 0x4,0x69,0x7a, 0xf,0x67,0x2a, - 0x7,0x5a,0x4d, 0x5,0x76,0x7b, 0x5,0x76,0x7a, 0xf,0x69,0x26, - 0x5,0x78,0x54, 0x5,0x78,0x55, 0x4,0x6c,0x47, 0x7,0x60,0x3f, - 0x7,0x60,0x3e, 0x7,0x60,0x40, 0x7,0x60,0x3d, 0x5,0x79,0x67, - 0x5,0x79,0x66, 0xf,0x6c,0x44, 0x7,0x63,0x2f, 0x4,0x6e,0x2b, - 0x7,0x64,0x2e, 0x7,0x64,0x2f, 0x4,0x6e,0x41, 0x5,0x7b,0x51, - 0x5,0x7b,0x6f, 0x5,0x7c,0x25, 0x5,0x7c,0x40, 0x4,0x30,0x43, - 0x4,0x42,0x2a, 0x4,0x42,0x27, 0x6,0x5a,0x55, 0x4,0x42,0x28, - 0x6,0x5a,0x56, 0x5,0x44,0x4f, 0xf,0x46,0x3b, 0x6,0x64,0x6f, - 0x5,0x4b,0x65, 0x4,0x48,0x6c, 0x5,0x4b,0x63, 0xf,0x4d,0x4c, - 0xf,0x4d,0x4d, 0x5,0x4b,0x66, 0x4,0x4f,0x2f, 0x4,0x4f,0x33, - 0x4,0x4f,0x31, 0x4,0x4f,0x2d, 0x7,0x2b,0x68, 0x5,0x53,0x31, - 0x5,0x53,0x30, 0x7,0x2b,0x65, 0x7,0x2b,0x64, 0x5,0x53,0x2e, - 0x4,0x4f,0x38, 0x5,0x53,0x33, 0x5,0x53,0x2c, 0x5,0x53,0x2d, - 0x7,0x2b,0x6c, 0x7,0x2b,0x66, 0x4,0x4f,0x36, 0x5,0x53,0x32, - 0xf,0x53,0x37, 0xf,0x53,0x3a, 0xf,0x53,0x3d, 0x7,0x2b,0x6b, - 0x7,0x2b,0x67, 0x7,0x2b,0x69, 0x4,0x4f,0x2e, 0xf,0x53,0x39, - 0x5,0x53,0x2f, 0x5,0x5a,0x48, 0x5,0x5a,0x46, 0x7,0x36,0x3d, - 0x5,0x5a,0x49, 0x4,0x55,0x46, 0x4,0x5a,0x46, 0x5,0x5a,0x4e, - 0x5,0x5a,0x4d, 0x4,0x55,0x49, 0x7,0x36,0x43, 0x7,0x36,0x3e, - 0x7,0x36,0x41, 0x7,0x36,0x40, 0x5,0x5a,0x4c, 0x7,0x36,0x44, - 0xf,0x59,0x36, 0xf,0x59,0x37, 0xf,0x59,0x39, 0xf,0x59,0x3a, - 0x5,0x5a,0x4b, 0x7,0x36,0x42, 0xf,0x59,0x35, 0x5,0x5a,0x47, - 0x7,0x36,0x3f, 0x5,0x60,0x56, 0x4,0x5a,0x48, 0x5,0x60,0x57, - 0x5,0x60,0x54, 0x5,0x60,0x52, 0x4,0x5a,0x47, 0x7,0x3e,0x4b, - 0x5,0x60,0x55, 0x7,0x3e,0x46, 0x7,0x3e,0x4d, 0x7,0x3e,0x45, - 0x4,0x5a,0x4b, 0x7,0x3e,0x4c, 0x5,0x60,0x5a, 0x5,0x60,0x58, - 0x7,0x3e,0x44, 0x4,0x5a,0x4a, 0xf,0x46,0x3c, 0xf,0x5d,0x73, - 0xf,0x5d,0x74, 0xf,0x5d,0x75, 0xf,0x5d,0x77, 0xf,0x5d,0x79, - 0x7,0x3e,0x48, 0x5,0x60,0x5b, 0x5,0x60,0x53, 0x7,0x3e,0x4a, - 0x5,0x60,0x51, 0x5,0x60,0x59, 0x5,0x66,0x77, 0x5,0x66,0x74, - 0x5,0x66,0x70, 0x5,0x66,0x6b, 0x7,0x45,0x53, 0x4,0x5f,0x28, - 0x5,0x66,0x6d, 0x7,0x45,0x52, 0x5,0x66,0x6a, 0x5,0x66,0x71, - 0x5,0x66,0x75, 0x5,0x66,0x72, 0x5,0x66,0x6f, 0x5,0x66,0x6c, - 0x7,0x45,0x54, 0xf,0x61,0x68, 0xf,0x61,0x69, 0xf,0x61,0x6a, - 0xf,0x61,0x6b, 0xf,0x61,0x6c, 0xf,0x61,0x6d, 0xf,0x61,0x6e, - 0xf,0x61,0x6f, 0xf,0x61,0x71, 0xf,0x61,0x73, 0x7,0x45,0x55, - 0x7,0x3e,0x47, 0x5,0x66,0x76, 0x5,0x66,0x73, 0x7,0x4c,0x5b, - 0x7,0x4c,0x58, 0x4,0x62,0x5e, 0x7,0x4c,0x52, 0x5,0x6b,0x2d, - 0x4,0x62,0x52, 0x5,0x6b,0x2f, 0x7,0x4c,0x4f, 0x7,0x4c,0x51, - 0x4,0x62,0x5f, 0x5,0x66,0x78, 0x4,0x62,0x63, 0x5,0x6b,0x32, - 0x4,0x62,0x5b, 0x7,0x4c,0x4e, 0x4,0x62,0x5a, 0x4,0x62,0x65, - 0x7,0x4c,0x5a, 0x7,0x4c,0x53, 0x7,0x4c,0x59, 0x4,0x62,0x58, - 0x7,0x4c,0x55, 0x5,0x6b,0x36, 0x5,0x6b,0x2e, 0x7,0x4c,0x50, - 0x5,0x6b,0x34, 0xf,0x64,0x6e, 0xf,0x64,0x68, 0xf,0x64,0x6a, - 0xf,0x64,0x6c, 0xf,0x64,0x6f, 0xf,0x64,0x70, 0xf,0x64,0x71, - 0x5,0x6b,0x30, 0x7,0x4c,0x54, 0x7,0x4c,0x57, 0x4,0x62,0x53, - 0x5,0x6b,0x37, 0x5,0x6b,0x2a, 0xf,0x64,0x69, 0x5,0x6b,0x2c, - 0xf,0x61,0x70, 0x7,0x4c,0x56, 0x5,0x6f,0x27, 0x7,0x52,0x2e, - 0x5,0x6f,0x26, 0x5,0x6b,0x38, 0x5,0x6f,0x29, 0x7,0x52,0x2c, - 0x4,0x65,0x58, 0x5,0x6f,0x2b, 0x7,0x52,0x2f, 0x7,0x52,0x2d, - 0x5,0x6f,0x28, 0x4,0x65,0x56, 0x5,0x6f,0x24, 0x7,0x52,0x32, - 0x4,0x65,0x5e, 0x5,0x6f,0x25, 0x5,0x6f,0x23, 0x4,0x65,0x60, - 0x7,0x52,0x30, 0x5,0x6f,0x2c, 0x7,0x52,0x34, 0xf,0x67,0x2b, - 0xf,0x67,0x2c, 0xf,0x67,0x2d, 0xf,0x67,0x2f, 0xf,0x67,0x30, - 0xf,0x67,0x31, 0xf,0x67,0x32, 0xf,0x67,0x2e, 0x5,0x6f,0x2a, - 0xf,0x67,0x34, 0x5,0x72,0x4a, 0x4,0x68,0x3f, 0x5,0x72,0x4f, - 0x5,0x72,0x53, 0x5,0x77,0x23, 0x5,0x72,0x49, 0x5,0x72,0x52, - 0x4,0x68,0x38, 0x7,0x56,0x71, 0x5,0x72,0x4c, 0x7,0x56,0x72, - 0x5,0x72,0x57, 0x7,0x56,0x6d, 0x5,0x72,0x54, 0x5,0x72,0x4d, - 0x7,0x56,0x73, 0x7,0x56,0x75, 0x7,0x56,0x6a, 0x7,0x56,0x74, - 0x5,0x72,0x56, 0x7,0x56,0x6e, 0x7,0x56,0x6f, 0xf,0x69,0x28, - 0xf,0x69,0x29, 0xf,0x69,0x2b, 0xf,0x69,0x2c, 0xf,0x69,0x2d, - 0xf,0x69,0x2e, 0xf,0x69,0x2f, 0xf,0x69,0x30, 0xf,0x69,0x31, - 0xf,0x69,0x32, 0x7,0x56,0x6b, 0x7,0x56,0x6c, 0x5,0x72,0x55, - 0x7,0x56,0x70, 0x5,0x72,0x50, 0x7,0x5a,0x54, 0x7,0x5a,0x52, - 0x5,0x75,0x32, 0x4,0x6a,0x22, 0x5,0x75,0x2e, 0x5,0x75,0x2f, - 0x7,0x5a,0x5a, 0x7,0x5a,0x57, 0x5,0x75,0x30, 0x7,0x5a,0x5c, - 0x7,0x5a,0x59, 0x5,0x75,0x34, 0x7,0x5a,0x56, 0x7,0x5a,0x5b, - 0x7,0x5a,0x53, 0x7,0x5a,0x55, 0x7,0x5a,0x51, 0x7,0x5a,0x5e, - 0xf,0x6a,0x41, 0xf,0x6a,0x42, 0xf,0x6a,0x43, 0xf,0x6a,0x40, - 0x7,0x5a,0x5f, 0x5,0x75,0x33, 0x7,0x5a,0x58, 0x7,0x5a,0x5d, - 0x5,0x75,0x31, 0x5,0x76,0x7e, 0x7,0x5d,0x78, 0x5,0x77,0x22, - 0x4,0x6b,0x3e, 0x4,0x6b,0x3f, 0x5,0x76,0x7c, 0x7,0x5d,0x77, - 0x4,0x65,0x5c, 0x7,0x60,0x46, 0x7,0x5d,0x75, 0x7,0x5e,0x22, - 0x7,0x5d,0x76, 0x5,0x76,0x7d, 0x7,0x5e,0x21, 0x7,0x5d,0x7c, - 0x5,0x77,0x21, 0x7,0x5d,0x79, 0xf,0x6b,0x3d, 0xf,0x6b,0x3f, - 0x7,0x5d,0x7a, 0x7,0x5d,0x7d, 0x7,0x5d,0x7e, 0x7,0x5d,0x7b, - 0xf,0x6b,0x3c, 0x7,0x60,0x43, 0x5,0x78,0x5c, 0x5,0x78,0x60, - 0x5,0x78,0x5a, 0x7,0x60,0x41, 0x4,0x6c,0x4f, 0x4,0x6c,0x4c, - 0x5,0x78,0x59, 0x5,0x78,0x61, 0x4,0x6c,0x4b, 0x5,0x78,0x5f, - 0x5,0x78,0x5e, 0x5,0x78,0x57, 0x7,0x60,0x4b, 0x7,0x60,0x47, - 0x5,0x78,0x58, 0xf,0x6b,0x75, 0xf,0x6b,0x78, 0x7,0x60,0x48, - 0x7,0x60,0x42, 0x7,0x60,0x44, 0x7,0x60,0x45, 0x5,0x78,0x5d, - 0x7,0x60,0x4a, 0x7,0x60,0x49, 0x7,0x61,0x73, 0x5,0x79,0x68, - 0x4,0x6d,0x38, 0x5,0x79,0x69, 0x7,0x61,0x6e, 0x7,0x60,0x7a, - 0x7,0x61,0x71, 0x7,0x61,0x6f, 0x5,0x79,0x6b, 0x7,0x61,0x72, - 0x7,0x61,0x70, 0xf,0x6c,0x45, 0xf,0x6c,0x46, 0x5,0x79,0x6a, - 0x7,0x61,0x6d, 0x7,0x63,0x35, 0x7,0x63,0x30, 0x7,0x63,0x32, - 0x7,0x63,0x33, 0x7,0x63,0x34, 0x5,0x7a,0x51, 0x5,0x7a,0x52, - 0xf,0x6c,0x5a, 0xf,0x6c,0x5b, 0xf,0x6c,0x5c, 0xf,0x6c,0x5d, - 0x7,0x63,0x31, 0x5,0x7b,0x28, 0x5,0x7b,0x27, 0x7,0x64,0x30, - 0x5,0x7b,0x29, 0xf,0x6c,0x74, 0x7,0x64,0x31, 0x5,0x7b,0x2a, - 0x7,0x64,0x32, 0x7,0x64,0x7e, 0x5,0x7b,0x53, 0x5,0x7b,0x52, - 0x5,0x7b,0x55, 0x7,0x64,0x7c, 0x7,0x65,0x21, 0x7,0x64,0x7b, - 0x5,0x7b,0x54, 0x7,0x64,0x7d, 0xf,0x6c,0x75, 0x5,0x7b,0x73, - 0x5,0x7b,0x72, 0x5,0x7b,0x71, 0x5,0x7b,0x70, 0x7,0x65,0x50, - 0x5,0x7c,0x26, 0xf,0x6d,0x2b, 0xf,0x6d,0x2c, 0x5,0x7c,0x27, - 0x7,0x65,0x6b, 0x5,0x7c,0x2e, 0x5,0x7c,0x37, 0x7,0x66,0x2f, - 0x5,0x7c,0x36, 0xf,0x53,0x3c, 0xf,0x5d,0x78, 0xf,0x6b,0x3e, - 0x6,0x50,0x4c, 0xf,0x40,0x33, 0x6,0x50,0x4d, 0x4,0x42,0x2b, - 0x6,0x5a,0x57, 0x5,0x44,0x51, 0x5,0x44,0x52, 0x6,0x5a,0x5c, - 0x6,0x5a,0x58, 0x6,0x5a,0x59, 0x5,0x44,0x50, 0x6,0x5a,0x5a, - 0x6,0x5a,0x5b, 0x6,0x64,0x70, 0x5,0x4b,0x6a, 0x6,0x64,0x71, - 0x5,0x4b,0x69, 0x4,0x48,0x6e, 0x4,0x48,0x6f, 0x6,0x64,0x72, - 0x6,0x64,0x73, 0x6,0x64,0x74, 0x4,0x48,0x70, 0x5,0x4b,0x68, - 0xf,0x4d,0x4f, 0xf,0x4d,0x50, 0xf,0x4d,0x51, 0x5,0x4b,0x67, - 0x4,0x4f,0x45, 0x7,0x2b,0x72, 0x7,0x2b,0x7d, 0x7,0x2b,0x6f, - 0x7,0x2b,0x73, 0x7,0x2b,0x79, 0x5,0x53,0x37, 0x5,0x53,0x3b, - 0x5,0x53,0x3d, 0x5,0x53,0x39, 0x7,0x2b,0x76, 0x7,0x2b,0x7c, - 0x5,0x53,0x3f, 0x5,0x53,0x34, 0x4,0x4f,0x3d, 0x5,0x53,0x41, - 0x5,0x53,0x3e, 0x5,0x53,0x35, 0x4,0x4f,0x3e, 0x5,0x53,0x42, - 0x7,0x2b,0x7a, 0x4,0x4f,0x3c, 0x7,0x2b,0x75, 0x4,0x4f,0x43, - 0x4,0x4f,0x3a, 0x5,0x53,0x43, 0x4,0x4f,0x46, 0x7,0x2b,0x70, - 0x7,0x2b,0x7b, 0xf,0x53,0x40, 0x7,0x2b,0x6e, 0x7,0x2b,0x77, - 0x7,0x2b,0x78, 0x5,0x53,0x36, 0x5,0x53,0x3a, 0x5,0x53,0x40, - 0x7,0x2b,0x71, 0x7,0x2b,0x74, 0x5,0x53,0x3c, 0x7,0x36,0x4b, - 0x5,0x5a,0x54, 0x5,0x5a,0x56, 0x5,0x5a,0x51, 0x5,0x5a,0x4f, - 0x4,0x55,0x4c, 0x5,0x5a,0x53, 0x5,0x5a,0x59, 0x5,0x5a,0x52, - 0x7,0x36,0x57, 0x7,0x36,0x52, 0x5,0x5a,0x57, 0x4,0x55,0x56, - 0x7,0x36,0x54, 0x5,0x5a,0x58, 0x7,0x36,0x50, 0x5,0x5a,0x55, - 0x7,0x36,0x53, 0x7,0x36,0x4c, 0x7,0x36,0x45, 0x7,0x36,0x4e, - 0xf,0x59,0x3d, 0xf,0x59,0x3e, 0xf,0x59,0x3f, 0xf,0x59,0x40, - 0x7,0x36,0x4d, 0x7,0x36,0x4f, 0x7,0x36,0x58, 0x7,0x36,0x56, - 0x7,0x36,0x47, 0x7,0x36,0x48, 0x7,0x36,0x55, 0x4,0x55,0x53, - 0x4,0x55,0x51, 0x6,0x50,0x4e, 0x7,0x36,0x49, 0x5,0x5a,0x50, - 0x7,0x36,0x46, 0xf,0x56,0x33, 0x7,0x3e,0x51, 0x4,0x5a,0x4c, - 0x5,0x60,0x5e, 0x5,0x60,0x69, 0x7,0x3e,0x54, 0x4,0x5a,0x53, - 0x5,0x60,0x67, 0x7,0x3e,0x55, 0x5,0x60,0x5d, 0x5,0x60,0x61, - 0x7,0x3e,0x4e, 0x5,0x60,0x64, 0x5,0x60,0x6b, 0x5,0x60,0x60, - 0x5,0x60,0x62, 0x4,0x5a,0x54, 0x7,0x3e,0x57, 0x5,0x60,0x5c, - 0x5,0x60,0x63, 0x4,0x5a,0x58, 0x7,0x3e,0x4f, 0x4,0x5a,0x5b, - 0x5,0x60,0x6c, 0x7,0x3e,0x58, 0x7,0x3e,0x53, 0x5,0x60,0x68, - 0x5,0x60,0x6a, 0xf,0x5d,0x7a, 0xf,0x5d,0x7b, 0xf,0x5d,0x7c, - 0xf,0x5d,0x7d, 0xf,0x5e,0x21, 0xf,0x5e,0x22, 0xf,0x5e,0x23, - 0xf,0x5e,0x25, 0x7,0x3e,0x50, 0x5,0x60,0x5f, 0x4,0x5a,0x5a, - 0x7,0x3e,0x56, 0x5,0x60,0x65, 0x5,0x60,0x66, 0x7,0x3e,0x52, - 0x4,0x5a,0x57, 0x7,0x45,0x5b, 0x5,0x60,0x6d, 0x7,0x45,0x5f, - 0x5,0x66,0x7d, 0x5,0x67,0x25, 0x5,0x67,0x27, 0x4,0x5f,0x2e, - 0x5,0x67,0x2a, 0x5,0x66,0x7a, 0x5,0x67,0x21, 0x5,0x66,0x7e, - 0x5,0x66,0x7b, 0x7,0x45,0x5d, 0x7,0x45,0x58, 0x4,0x5f,0x2d, - 0x7,0x45,0x5e, 0x5,0x66,0x7c, 0x5,0x67,0x2b, 0x4,0x5f,0x30, - 0x7,0x45,0x67, 0x5,0x67,0x22, 0x7,0x45,0x64, 0x7,0x45,0x5c, - 0x5,0x67,0x28, 0x7,0x45,0x61, 0x7,0x45,0x62, 0x7,0x45,0x66, - 0x5,0x67,0x24, 0x7,0x45,0x59, 0x5,0x67,0x23, 0x7,0x45,0x68, - 0x7,0x45,0x56, 0x7,0x45,0x60, 0xf,0x61,0x74, 0xf,0x61,0x75, - 0x7,0x45,0x57, 0x5,0x67,0x29, 0x7,0x45,0x63, 0x5,0x6b,0x39, - 0x7,0x4c,0x5d, 0x5,0x6b,0x3a, 0x7,0x4c,0x62, 0x5,0x6b,0x3e, - 0x5,0x6b,0x4a, 0x5,0x6b,0x40, 0x7,0x4c,0x6a, 0x7,0x4c,0x64, - 0x5,0x6b,0x3b, 0x7,0x4c,0x68, 0x7,0x4c,0x6b, 0x7,0x4c,0x63, - 0x5,0x6b,0x4c, 0x5,0x6b,0x3d, 0x5,0x6b,0x4b, 0x4,0x62,0x6b, - 0x5,0x6b,0x42, 0x5,0x6b,0x45, 0x7,0x4c,0x60, 0x7,0x4c,0x5e, - 0x5,0x6b,0x48, 0x5,0x6b,0x44, 0x7,0x4c,0x5c, 0x7,0x4c,0x66, - 0x7,0x4c,0x6c, 0x5,0x6b,0x41, 0x4,0x62,0x6d, 0x7,0x4c,0x69, - 0x5,0x6b,0x46, 0xf,0x64,0x74, 0xf,0x64,0x76, 0xf,0x64,0x77, - 0x7,0x4c,0x61, 0x5,0x6b,0x47, 0x7,0x4c,0x6f, 0x5,0x6b,0x49, - 0x7,0x45,0x69, 0x7,0x4c,0x65, 0x7,0x4c,0x67, 0x7,0x4c,0x6d, - 0x5,0x6b,0x43, 0x7,0x4c,0x6e, 0x7,0x4c,0x5f, 0x4,0x62,0x69, - 0x5,0x6f,0x38, 0x5,0x6f,0x30, 0x7,0x52,0x3a, 0x4,0x65,0x65, - 0x5,0x6f,0x3e, 0x7,0x52,0x43, 0x5,0x6f,0x32, 0x5,0x6f,0x42, - 0x4,0x62,0x70, 0x7,0x52,0x36, 0x5,0x6f,0x2f, 0x4,0x65,0x63, - 0x5,0x6f,0x31, 0x4,0x65,0x6e, 0x4,0x65,0x68, 0x5,0x6f,0x33, - 0x5,0x6f,0x2d, 0x5,0x6f,0x37, 0x5,0x6f,0x44, 0x5,0x6f,0x39, - 0x4,0x65,0x6d, 0x4,0x65,0x66, 0x5,0x6f,0x3a, 0x5,0x6f,0x3c, - 0x5,0x6f,0x40, 0x4,0x65,0x67, 0x5,0x6f,0x2e, 0x5,0x6f,0x3b, - 0x5,0x6f,0x36, 0x5,0x6f,0x3f, 0x7,0x52,0x3f, 0x7,0x52,0x3b, - 0x7,0x52,0x40, 0x7,0x52,0x35, 0x7,0x52,0x37, 0x5,0x6f,0x3d, - 0x5,0x6f,0x35, 0x5,0x6f,0x34, 0x5,0x6f,0x43, 0x7,0x52,0x38, - 0xf,0x67,0x37, 0x7,0x52,0x3e, 0x7,0x52,0x3d, 0x7,0x52,0x39, - 0x7,0x52,0x44, 0x7,0x52,0x41, 0x7,0x52,0x3c, 0xf,0x67,0x38, - 0x5,0x6f,0x41, 0x7,0x45,0x5a, 0x5,0x72,0x5e, 0x7,0x56,0x79, - 0x5,0x72,0x66, 0x7,0x56,0x7e, 0x5,0x72,0x5d, 0x5,0x72,0x60, - 0x5,0x72,0x5b, 0x5,0x72,0x65, 0x5,0x72,0x64, 0x7,0x57,0x21, - 0x7,0x56,0x7d, 0x7,0x56,0x7a, 0x5,0x72,0x68, 0x7,0x57,0x27, - 0x7,0x57,0x26, 0x7,0x57,0x24, 0x5,0x72,0x5c, 0x5,0x72,0x61, - 0x5,0x6f,0x45, 0x5,0x72,0x5a, 0x5,0x72,0x62, 0x7,0x57,0x22, - 0x7,0x56,0x7c, 0x5,0x72,0x69, 0x5,0x72,0x6a, 0xf,0x69,0x34, - 0x5,0x72,0x5f, 0x7,0x57,0x23, 0x7,0x56,0x77, 0x7,0x57,0x28, - 0x7,0x56,0x76, 0x7,0x56,0x7b, 0xf,0x69,0x33, 0x5,0x72,0x58, - 0x7,0x56,0x78, 0x5,0x72,0x59, 0xf,0x67,0x36, 0x5,0x75,0x42, - 0x5,0x75,0x3d, 0x4,0x6a,0x24, 0x4,0x6a,0x2d, 0x5,0x75,0x3c, - 0x4,0x6a,0x28, 0x5,0x75,0x43, 0x5,0x75,0x39, 0x5,0x6f,0x46, - 0x5,0x75,0x44, 0x5,0x75,0x40, 0x5,0x75,0x3f, 0x4,0x6a,0x2b, - 0x7,0x5a,0x62, 0x7,0x5a,0x6c, 0x7,0x5a,0x6a, 0x7,0x5a,0x70, - 0x4,0x6a,0x2a, 0x7,0x5a,0x6b, 0x7,0x5a,0x6e, 0x5,0x75,0x3b, - 0x4,0x6a,0x29, 0x7,0x5a,0x69, 0x5,0x75,0x37, 0x7,0x5a,0x68, - 0x5,0x75,0x38, 0x5,0x75,0x46, 0x5,0x72,0x67, 0x7,0x5a,0x71, - 0x5,0x75,0x41, 0x7,0x5a,0x6f, 0x7,0x5a,0x67, 0x7,0x57,0x25, - 0xf,0x6a,0x44, 0xf,0x6a,0x45, 0xf,0x6a,0x46, 0xf,0x6a,0x47, - 0xf,0x6a,0x48, 0x5,0x75,0x3e, 0x7,0x5a,0x66, 0x7,0x5a,0x64, - 0x7,0x5a,0x61, 0x7,0x5a,0x63, 0x5,0x75,0x3a, 0x7,0x5e,0x2b, - 0x7,0x5e,0x27, 0x7,0x5e,0x31, 0x5,0x77,0x33, 0x7,0x5e,0x2f, - 0x5,0x77,0x2e, 0x5,0x77,0x29, 0x4,0x6b,0x43, 0x7,0x5e,0x32, - 0x7,0x5e,0x36, 0x5,0x77,0x25, 0x5,0x77,0x30, 0x5,0x77,0x2a, - 0x5,0x77,0x28, 0x5,0x77,0x2f, 0x7,0x5e,0x2c, 0x5,0x77,0x27, - 0x5,0x77,0x26, 0x5,0x77,0x38, 0x5,0x77,0x2b, 0x4,0x6b,0x49, - 0x4,0x6b,0x42, 0x7,0x5e,0x35, 0x5,0x77,0x31, 0x7,0x5e,0x30, - 0x7,0x5e,0x33, 0x5,0x77,0x2d, 0x7,0x5a,0x65, 0x5,0x77,0x35, - 0x7,0x5a,0x6d, 0x7,0x5e,0x34, 0x5,0x77,0x36, 0x7,0x5e,0x2d, - 0xf,0x6b,0x40, 0x7,0x5e,0x24, 0x7,0x5e,0x26, 0x7,0x5e,0x2e, - 0x7,0x5e,0x29, 0x7,0x5e,0x28, 0x5,0x77,0x32, 0x7,0x5e,0x2a, - 0x7,0x5e,0x25, 0x4,0x6b,0x41, 0xf,0x6b,0x7a, 0x7,0x5e,0x37, - 0x7,0x60,0x4d, 0x5,0x78,0x67, 0x5,0x78,0x69, 0x5,0x78,0x6d, - 0x5,0x78,0x65, 0x5,0x77,0x37, 0x5,0x78,0x68, 0x7,0x60,0x4e, - 0x5,0x78,0x6a, 0x5,0x78,0x6b, 0x7,0x60,0x4f, 0x7,0x60,0x50, - 0x7,0x60,0x54, 0x5,0x78,0x6c, 0x7,0x60,0x53, 0x7,0x60,0x4c, - 0x7,0x60,0x51, 0x5,0x78,0x63, 0x5,0x78,0x66, 0x5,0x78,0x62, - 0xf,0x6b,0x79, 0x7,0x60,0x52, 0x4,0x6c,0x55, 0x5,0x78,0x64, - 0x4,0x6c,0x53, 0x5,0x79,0x71, 0x5,0x79,0x6d, 0x5,0x79,0x70, - 0x7,0x61,0x76, 0x4,0x6d,0x3b, 0x5,0x79,0x6e, 0x5,0x79,0x6c, - 0x4,0x6d,0x3c, 0x7,0x61,0x74, 0x5,0x79,0x6f, 0x7,0x61,0x78, - 0x7,0x61,0x75, 0x7,0x61,0x77, 0x4,0x6d,0x3e, 0x5,0x7a,0x58, - 0x7,0x63,0x39, 0x5,0x7a,0x56, 0x4,0x6d,0x6b, 0x5,0x7a,0x5a, - 0x5,0x7a,0x59, 0x5,0x7a,0x55, 0x5,0x7a,0x57, 0x4,0x6d,0x6a, - 0x7,0x63,0x38, 0x5,0x7a,0x54, 0x7,0x63,0x3b, 0x5,0x7a,0x5b, - 0x7,0x63,0x3d, 0xf,0x6c,0x5e, 0x7,0x63,0x3a, 0x7,0x63,0x36, - 0x7,0x63,0x3c, 0x5,0x7b,0x2e, 0x7,0x64,0x34, 0x7,0x64,0x36, - 0x5,0x7b,0x2f, 0x5,0x7b,0x2c, 0x5,0x7b,0x2b, 0x5,0x7b,0x31, - 0x5,0x7b,0x30, 0x5,0x7b,0x2d, 0x7,0x64,0x37, 0xf,0x6c,0x76, - 0x4,0x6e,0x2e, 0x7,0x64,0x33, 0x7,0x64,0x35, 0x5,0x7b,0x56, - 0x7,0x65,0x22, 0x7,0x65,0x53, 0x7,0x65,0x24, 0x7,0x65,0x26, - 0x7,0x65,0x23, 0x7,0x65,0x27, 0x5,0x7b,0x57, 0x7,0x65,0x25, - 0x4,0x6e,0x42, 0x5,0x7b,0x74, 0x7,0x65,0x54, 0x7,0x65,0x55, - 0x5,0x7b,0x75, 0x7,0x65,0x52, 0x7,0x65,0x56, 0x7,0x65,0x51, - 0x7,0x65,0x6d, 0x7,0x65,0x6c, 0x5,0x7c,0x29, 0x5,0x7c,0x28, - 0xf,0x6d,0x32, 0x5,0x7c,0x2f, 0x7,0x66,0x21, 0x7,0x65,0x7e, - 0x5,0x7c,0x38, 0x7,0x66,0x30, 0x5,0x7c,0x39, 0x7,0x66,0x3a, - 0x5,0x7c,0x41, 0xf,0x6d,0x37, 0x5,0x7c,0x48, 0x7,0x66,0x45, - 0x4,0x48,0x71, 0x4,0x48,0x72, 0x5,0x53,0x44, 0x7,0x2c,0x22, - 0x7,0x2c,0x21, 0x7,0x2b,0x7e, 0x5,0x5a,0x5a, 0x5,0x5a,0x5c, - 0x7,0x36,0x5a, 0x7,0x36,0x5b, 0xf,0x59,0x41, 0x7,0x36,0x59, - 0x5,0x67,0x2c, 0x7,0x3e,0x59, 0x4,0x62,0x71, 0x7,0x4c,0x70, - 0x5,0x6b,0x4d, 0x7,0x4c,0x71, 0x7,0x52,0x46, 0x5,0x6f,0x48, - 0x5,0x6f,0x49, 0x7,0x52,0x47, 0x5,0x6f,0x47, 0x7,0x52,0x49, - 0x7,0x52,0x48, 0x4,0x68,0x45, 0x7,0x57,0x2b, 0x7,0x57,0x2a, - 0x5,0x72,0x6b, 0x7,0x5a,0x73, 0x7,0x5a,0x72, 0x4,0x6b,0x4c, - 0x7,0x5e,0x38, 0x7,0x5e,0x39, 0x5,0x77,0x39, 0x7,0x60,0x55, - 0x4,0x6c,0x57, 0x5,0x79,0x72, 0x4,0x6d,0x3f, 0x7,0x63,0x3e, - 0x5,0x7b,0x32, 0x6,0x5a,0x5d, 0xf,0x46,0x3d, 0x5,0x4b,0x6c, - 0xf,0x4d,0x52, 0x7,0x2c,0x28, 0x5,0x53,0x45, 0x7,0x2c,0x27, - 0x7,0x2c,0x26, 0x7,0x2c,0x24, 0x5,0x53,0x46, 0x7,0x2c,0x25, - 0x5,0x53,0x47, 0x7,0x2c,0x29, 0x7,0x2c,0x23, 0x7,0x36,0x5d, - 0x5,0x5a,0x5d, 0xf,0x59,0x42, 0xf,0x59,0x43, 0xf,0x59,0x44, - 0x5,0x60,0x6f, 0x5,0x60,0x72, 0x5,0x60,0x70, 0x4,0x5a,0x5c, - 0x5,0x60,0x73, 0x5,0x60,0x71, 0x7,0x3e,0x5b, 0x7,0x3e,0x5a, - 0x7,0x3e,0x5e, 0x7,0x3e,0x5d, 0xf,0x5e,0x26, 0x5,0x60,0x6e, - 0x7,0x45,0x6e, 0x5,0x67,0x31, 0x5,0x67,0x2e, 0x5,0x67,0x2d, - 0x7,0x45,0x6b, 0x7,0x45,0x6d, 0x7,0x45,0x6a, 0x5,0x67,0x30, - 0x7,0x45,0x6c, 0xf,0x61,0x78, 0xf,0x61,0x79, 0xf,0x61,0x7a, - 0x5,0x67,0x2f, 0x5,0x6b,0x4f, 0x5,0x6b,0x4e, 0x5,0x6b,0x51, - 0x4,0x62,0x73, 0x7,0x4c,0x73, 0x5,0x6b,0x50, 0x7,0x4c,0x72, - 0x5,0x68,0x40, 0x7,0x52,0x4b, 0x4,0x62,0x74, 0x4,0x65,0x6f, - 0x7,0x4c,0x74, 0xf,0x67,0x39, 0x7,0x52,0x4a, 0x7,0x52,0x4c, - 0x5,0x6f,0x4a, 0x4,0x68,0x47, 0x7,0x57,0x2c, 0x7,0x57,0x2d, - 0x4,0x68,0x46, 0xf,0x69,0x35, 0x5,0x75,0x47, 0x4,0x6a,0x2e, - 0xf,0x6a,0x49, 0x5,0x77,0x3a, 0x5,0x77,0x3c, 0x5,0x77,0x3b, - 0x7,0x5e,0x3a, 0x7,0x5e,0x3b, 0x7,0x60,0x56, 0x4,0x6c,0x58, - 0x7,0x60,0x57, 0xf,0x6b,0x7b, 0x5,0x79,0x75, 0x5,0x79,0x74, - 0x5,0x78,0x6e, 0x4,0x6d,0x40, 0x4,0x6d,0x6c, 0xf,0x6c,0x47, - 0x7,0x65,0x28, 0x7,0x65,0x57, 0x5,0x7c,0x46, 0x7,0x66,0x47, - 0x6,0x5a,0x5f, 0x6,0x5a,0x5e, 0x5,0x44,0x53, 0xf,0x46,0x3f, - 0x4,0x48,0x75, 0x6,0x64,0x75, 0xf,0x4d,0x53, 0x5,0x53,0x4b, - 0x5,0x53,0x4a, 0x4,0x4f,0x4f, 0x5,0x53,0x49, 0x5,0x53,0x48, - 0x7,0x2c,0x2b, 0x7,0x2c,0x2f, 0x7,0x2c,0x2a, 0x4,0x4f,0x4e, - 0x7,0x2c,0x2c, 0x5,0x53,0x4c, 0x7,0x2c,0x2e, 0x7,0x2c,0x2d, - 0x7,0x36,0x61, 0x7,0x36,0x5f, 0x7,0x36,0x5e, 0x7,0x36,0x63, - 0x4,0x55,0x5b, 0x7,0x36,0x62, 0x6,0x47,0x53, 0xf,0x59,0x45, - 0x5,0x5a,0x5e, 0x7,0x36,0x60, 0x5,0x60,0x74, 0x5,0x60,0x75, - 0x7,0x3e,0x60, 0x7,0x3e,0x61, 0xf,0x5e,0x28, 0x7,0x3e,0x62, - 0x7,0x3e,0x5f, 0x7,0x45,0x70, 0x5,0x67,0x32, 0x7,0x45,0x72, - 0x5,0x67,0x33, 0x5,0x67,0x35, 0x7,0x45,0x73, 0x5,0x67,0x34, - 0xf,0x61,0x7b, 0x7,0x45,0x71, 0x7,0x45,0x6f, 0x4,0x62,0x7a, - 0x4,0x62,0x78, 0x7,0x4c,0x79, 0x7,0x4c,0x7b, 0x7,0x4c,0x75, - 0x5,0x6b,0x54, 0x5,0x6b,0x52, 0x7,0x4c,0x7a, 0x5,0x6b,0x55, - 0x5,0x6b,0x53, 0x7,0x4c,0x78, 0x4,0x62,0x7b, 0x7,0x4c,0x77, - 0x7,0x4c,0x76, 0x5,0x6f,0x4b, 0x7,0x52,0x53, 0x7,0x52,0x52, - 0x5,0x6f,0x4c, 0x7,0x52,0x50, 0x4,0x65,0x70, 0x7,0x52,0x4f, - 0x5,0x6f,0x4e, 0x5,0x6f,0x4d, 0x7,0x52,0x51, 0xf,0x67,0x3a, - 0x7,0x52,0x4e, 0x7,0x52,0x4d, 0x5,0x72,0x6c, 0x7,0x57,0x2f, - 0x5,0x72,0x6f, 0x7,0x57,0x30, 0x5,0x72,0x6e, 0x7,0x57,0x31, - 0x7,0x57,0x2e, 0x5,0x72,0x6d, 0x5,0x75,0x4b, 0x5,0x75,0x4c, - 0x7,0x5a,0x74, 0x5,0x75,0x49, 0x5,0x75,0x4e, 0x7,0x5a,0x7b, - 0x7,0x5a,0x76, 0x7,0x5a,0x77, 0x7,0x5a,0x7c, 0x7,0x5a,0x79, - 0x5,0x75,0x4a, 0x7,0x5a,0x75, 0x7,0x5a,0x78, 0x7,0x5a,0x7a, - 0x5,0x77,0x3f, 0x4,0x6b,0x4f, 0x5,0x77,0x3e, 0x5,0x77,0x40, - 0x5,0x77,0x3d, 0x5,0x78,0x6f, 0x5,0x78,0x71, 0x5,0x78,0x70, - 0x7,0x60,0x59, 0x7,0x5e,0x3c, 0x4,0x6c,0x59, 0x7,0x60,0x58, - 0x4,0x6d,0x6d, 0x7,0x63,0x3f, 0x7,0x64,0x39, 0x7,0x64,0x38, - 0x5,0x7b,0x58, 0x7,0x65,0x29, 0x4,0x6e,0x52, 0x5,0x7c,0x30, - 0xf,0x29,0x21, 0xf,0x46,0x3e, 0xf,0x53,0x42, 0xf,0x5e,0x27, - 0x5,0x4b,0x70, 0x5,0x4b,0x6e, 0x5,0x4b,0x6f, 0x5,0x53,0x4e, - 0x4,0x4f,0x50, 0x5,0x53,0x4d, 0x7,0x2c,0x30, 0x5,0x5a,0x61, - 0x7,0x36,0x64, 0x5,0x5a,0x5f, 0x5,0x5a,0x60, 0xf,0x59,0x46, - 0x5,0x60,0x78, 0x5,0x60,0x76, 0xf,0x5e,0x29, 0x5,0x60,0x77, - 0x5,0x67,0x36, 0x7,0x4c,0x7c, 0x5,0x6b,0x56, 0x7,0x4c,0x7d, - 0x4,0x65,0x73, 0x7,0x57,0x32, 0x5,0x72,0x70, 0x7,0x5a,0x7e, - 0x4,0x6b,0x50, 0x7,0x5b,0x56, 0x7,0x5e,0x3d, 0x4,0x6b,0x51, - 0x5,0x7c,0x31, 0xf,0x4d,0x54, 0x7,0x2c,0x32, 0x5,0x5a,0x62, - 0x5,0x5a,0x64, 0x5,0x5a,0x63, 0x5,0x60,0x7a, 0x5,0x67,0x38, - 0x5,0x60,0x79, 0x5,0x67,0x39, 0x5,0x67,0x37, 0x5,0x6b,0x57, - 0x4,0x63,0x22, 0xf,0x64,0x79, 0x4,0x65,0x75, 0x4,0x65,0x74, - 0x5,0x6f,0x50, 0x5,0x6f,0x4f, 0x4,0x65,0x77, 0x7,0x52,0x54, - 0x7,0x52,0x55, 0x7,0x52,0x56, 0xf,0x67,0x3b, 0x7,0x52,0x57, - 0x5,0x72,0x73, 0x5,0x72,0x72, 0x5,0x72,0x71, 0x7,0x57,0x33, - 0x7,0x57,0x34, 0x5,0x75,0x4f, 0x4,0x6a,0x2f, 0x4,0x6a,0x30, - 0x7,0x5b,0x23, 0x7,0x5b,0x22, 0x7,0x5b,0x21, 0x7,0x5e,0x3e, - 0x5,0x78,0x72, 0x7,0x60,0x5a, 0x5,0x78,0x73, 0x7,0x61,0x79, - 0x5,0x79,0x76, 0x7,0x66,0x27, 0x4,0x48,0x76, 0x5,0x53,0x4f, - 0x4,0x4f,0x51, 0x7,0x36,0x68, 0x7,0x36,0x66, 0x5,0x5a,0x66, - 0x5,0x5a,0x65, 0x5,0x5a,0x67, 0x5,0x60,0x7e, 0x7,0x3e,0x64, - 0x5,0x60,0x7c, 0x7,0x3e,0x63, 0x5,0x60,0x7b, 0x4,0x5a,0x5e, - 0x5,0x60,0x7d, 0x7,0x3e,0x65, 0x7,0x3e,0x66, 0x5,0x67,0x3b, - 0x5,0x67,0x3a, 0x4,0x65,0x78, 0x5,0x6f,0x51, 0x5,0x6f,0x53, - 0x5,0x72,0x74, 0x7,0x57,0x36, 0x7,0x57,0x35, 0xf,0x69,0x36, - 0x5,0x75,0x50, 0x4,0x6b,0x54, 0x5,0x77,0x42, 0x5,0x77,0x41, - 0x4,0x6b,0x53, 0x7,0x63,0x40, 0x7,0x61,0x7a, 0x4,0x6d,0x6e, - 0x5,0x7b,0x5a, 0x7,0x65,0x2a, 0x5,0x7b,0x59, 0x6,0x64,0x76, - 0x5,0x44,0x54, 0x6,0x64,0x78, 0x6,0x64,0x77, 0x7,0x2c,0x34, - 0x4,0x4f,0x55, 0x4,0x4f,0x54, 0x5,0x53,0x50, 0x7,0x2c,0x35, - 0x7,0x2c,0x36, 0x7,0x36,0x6a, 0x5,0x5a,0x6a, 0x5,0x5a,0x68, - 0x5,0x5a,0x69, 0x7,0x36,0x69, 0x7,0x36,0x6b, 0x7,0x36,0x6c, - 0x4,0x5a,0x60, 0x7,0x3e,0x68, 0x5,0x61,0x21, 0xf,0x5e,0x2a, - 0x7,0x3e,0x67, 0x5,0x67,0x3e, 0x5,0x67,0x3c, 0x7,0x45,0x74, - 0x5,0x6b,0x58, 0x5,0x61,0x22, 0x5,0x67,0x3f, 0x5,0x6b,0x5a, - 0x5,0x6b,0x59, 0x5,0x6b,0x5b, 0x5,0x6b,0x5d, 0x5,0x6b,0x5c, - 0x7,0x4d,0x21, 0x7,0x4c,0x7e, 0x5,0x6f,0x56, 0x5,0x6f,0x57, - 0x7,0x52,0x5b, 0x5,0x6f,0x5b, 0x5,0x6f,0x59, 0x5,0x6f,0x55, - 0x7,0x52,0x58, 0x4,0x65,0x7e, 0x4,0x65,0x7b, 0x7,0x52,0x5c, - 0x5,0x6f,0x5a, 0x4,0x65,0x7a, 0x7,0x52,0x5a, 0xf,0x67,0x3c, - 0x7,0x52,0x59, 0x7,0x57,0x38, 0x4,0x68,0x53, 0x4,0x68,0x51, - 0x5,0x72,0x78, 0x4,0x68,0x50, 0x5,0x72,0x7b, 0x7,0x57,0x37, - 0x5,0x72,0x75, 0x5,0x72,0x79, 0x5,0x72,0x77, 0x4,0x68,0x54, - 0x5,0x72,0x76, 0x4,0x68,0x55, 0x4,0x6a,0x34, 0x7,0x57,0x39, - 0x7,0x57,0x3a, 0x5,0x72,0x7a, 0x5,0x75,0x51, 0x4,0x6a,0x33, - 0x4,0x6a,0x35, 0x7,0x5b,0x2a, 0x7,0x5b,0x27, 0x7,0x5b,0x26, - 0x4,0x6a,0x32, 0x7,0x5b,0x29, 0x7,0x5b,0x28, 0x5,0x75,0x52, - 0x7,0x5b,0x25, 0x5,0x77,0x47, 0x7,0x5e,0x41, 0x5,0x77,0x46, - 0x5,0x77,0x44, 0x5,0x77,0x45, 0x5,0x77,0x43, 0x5,0x77,0x48, - 0x7,0x5e,0x3f, 0x5,0x78,0x76, 0x5,0x78,0x77, 0x7,0x60,0x5d, - 0x4,0x6c,0x5c, 0x4,0x6c,0x60, 0x5,0x78,0x75, 0x7,0x60,0x5c, - 0x5,0x78,0x74, 0x4,0x6c,0x5f, 0x4,0x6c,0x5e, 0x4,0x6c,0x5d, - 0x7,0x5e,0x40, 0x7,0x60,0x5b, 0x5,0x79,0x78, 0x5,0x79,0x79, - 0x5,0x79,0x7a, 0x5,0x79,0x77, 0x4,0x6d,0x45, 0x7,0x61,0x7b, - 0x7,0x61,0x7c, 0x4,0x6d,0x46, 0x5,0x7a,0x5c, 0x7,0x64,0x3a, - 0x7,0x65,0x2b, 0x4,0x6e,0x30, 0x7,0x64,0x3b, 0x5,0x7b,0x33, - 0x4,0x6e,0x2f, 0x5,0x7b,0x5b, 0x5,0x7b,0x5c, 0x7,0x65,0x2c, - 0x4,0x6e,0x4a, 0x5,0x7b,0x76, 0x7,0x65,0x6e, 0x5,0x7c,0x4a, - 0x7,0x66,0x52, 0x7,0x45,0x75, 0x4,0x66,0x22, 0x5,0x72,0x7c, - 0x4,0x68,0x57, 0x5,0x77,0x49, 0x6,0x64,0x79, 0x7,0x2c,0x38, - 0x7,0x2c,0x37, 0x5,0x61,0x24, 0x7,0x36,0x6d, 0x4,0x5a,0x61, - 0x7,0x3e,0x69, 0x7,0x3e,0x6a, 0x7,0x45,0x78, 0x5,0x67,0x42, - 0x7,0x45,0x79, 0x7,0x45,0x77, 0x7,0x45,0x76, 0x4,0x5f,0x41, - 0x7,0x4d,0x24, 0x7,0x4d,0x25, 0x7,0x3e,0x6b, 0x7,0x4d,0x23, - 0x7,0x52,0x5e, 0x7,0x52,0x5f, 0x7,0x52,0x5d, 0x5,0x72,0x7d, - 0x7,0x57,0x3b, 0x4,0x6a,0x36, 0x7,0x5b,0x2c, 0x7,0x5b,0x31, - 0x7,0x5b,0x32, 0x7,0x5b,0x2e, 0x7,0x5b,0x30, 0x7,0x5b,0x2d, - 0x7,0x5b,0x2b, 0x7,0x5b,0x2f, 0x5,0x77,0x4a, 0x7,0x5e,0x42, - 0x5,0x78,0x78, 0x5,0x79,0x7b, 0x5,0x7a,0x5d, 0x4,0x6d,0x47, - 0x7,0x63,0x41, 0x5,0x7b,0x34, 0x7,0x63,0x42, 0x7,0x65,0x2d, - 0x6,0x50,0x4f, 0x7,0x36,0x6e, 0x7,0x36,0x6f, 0x5,0x5a,0x6b, - 0x7,0x46,0x4f, 0x7,0x65,0x2e, 0x5,0x5a,0x6c, 0x5,0x61,0x25, - 0x7,0x3e,0x6d, 0x5,0x67,0x43, 0x7,0x45,0x7a, 0x5,0x67,0x44, - 0xf,0x61,0x7d, 0x7,0x4d,0x27, 0x5,0x6b,0x60, 0x7,0x4d,0x26, - 0x5,0x6b,0x5e, 0x5,0x6b,0x5f, 0x4,0x63,0x25, 0x4,0x66,0x23, - 0x7,0x52,0x60, 0x4,0x6a,0x39, 0x4,0x68,0x58, 0x7,0x57,0x3c, - 0x7,0x57,0x3d, 0x5,0x75,0x53, 0x7,0x5b,0x34, 0x7,0x5b,0x35, - 0x5,0x75,0x55, 0x4,0x6a,0x38, 0x7,0x5b,0x33, 0x5,0x75,0x54, - 0x7,0x5e,0x43, 0x7,0x60,0x5e, 0x5,0x78,0x79, 0x7,0x60,0x5f, - 0x5,0x79,0x7c, 0x7,0x63,0x43, 0x5,0x7b,0x35, 0x5,0x7b,0x77, - 0x7,0x2c,0x39, 0x5,0x5a,0x6d, 0x7,0x3e,0x6e, 0x5,0x5a,0x6e, - 0x5,0x61,0x28, 0x5,0x61,0x2a, 0x5,0x61,0x2b, 0x5,0x61,0x29, - 0x5,0x61,0x27, 0x7,0x3e,0x70, 0x5,0x61,0x26, 0x7,0x3e,0x6f, - 0x5,0x61,0x2c, 0x4,0x5a,0x62, 0x7,0x45,0x7c, 0x7,0x4d,0x2c, - 0x5,0x67,0x47, 0x5,0x67,0x48, 0x5,0x67,0x46, 0x5,0x67,0x45, - 0x7,0x45,0x7b, 0x7,0x4d,0x2a, 0x5,0x6b,0x61, 0x5,0x6b,0x63, - 0x5,0x6b,0x62, 0x7,0x4d,0x2d, 0x7,0x4d,0x2e, 0x7,0x4d,0x29, - 0x7,0x52,0x62, 0x7,0x52,0x64, 0x7,0x52,0x63, 0x5,0x6f,0x5d, - 0x5,0x6f,0x5e, 0x7,0x4d,0x2b, 0x7,0x52,0x65, 0x5,0x6f,0x5c, - 0x7,0x52,0x61, 0x5,0x73,0x21, 0x5,0x72,0x7e, 0x7,0x57,0x3e, - 0x5,0x75,0x57, 0x7,0x5b,0x36, 0x5,0x75,0x58, 0x5,0x75,0x59, - 0x5,0x75,0x56, 0x4,0x6a,0x3a, 0x7,0x5e,0x44, 0x5,0x77,0x4b, - 0x4,0x6b,0x59, 0x7,0x5e,0x48, 0x4,0x6b,0x57, 0x4,0x6b,0x5a, - 0x7,0x5e,0x47, 0x7,0x5e,0x46, 0x7,0x5e,0x45, 0x5,0x78,0x7d, - 0x4,0x6c,0x63, 0x5,0x78,0x7b, 0x5,0x78,0x7a, 0x7,0x60,0x60, - 0x7,0x61,0x7e, 0x7,0x61,0x7d, 0x4,0x6d,0x49, 0x5,0x79,0x7d, - 0x5,0x7b,0x36, 0x5,0x7b,0x79, 0x5,0x7b,0x78, 0x7,0x65,0x6f, - 0x7,0x66,0x22, 0x4,0x4f,0x57, 0x7,0x36,0x70, 0x7,0x36,0x71, - 0x7,0x3e,0x72, 0x7,0x3e,0x71, 0x5,0x67,0x49, 0x7,0x45,0x7e, - 0x7,0x46,0x21, 0x7,0x45,0x7d, 0x5,0x6b,0x64, 0x5,0x6b,0x65, - 0x7,0x52,0x66, 0x5,0x6f,0x5f, 0x5,0x6f,0x60, 0x7,0x52,0x68, - 0x4,0x68,0x5b, 0x5,0x73,0x22, 0x7,0x57,0x3f, 0x7,0x57,0x40, - 0x5,0x73,0x23, 0x5,0x73,0x24, 0x7,0x5b,0x37, 0x5,0x77,0x4c, - 0x7,0x5e,0x49, 0x5,0x78,0x7c, 0xf,0x6b,0x7e, 0x7,0x60,0x61, - 0x5,0x79,0x7e, 0x5,0x7a,0x21, 0x7,0x63,0x46, 0x5,0x7a,0x5e, - 0x7,0x63,0x45, 0x7,0x64,0x3c, 0x4,0x6e,0x53, 0x5,0x7c,0x32, - 0xf,0x40,0x34, 0x4,0x55,0x64, 0x4,0x5a,0x65, 0x7,0x46,0x22, - 0x4,0x63,0x28, 0x7,0x4d,0x2f, 0x5,0x6d,0x57, 0x4,0x66,0x24, - 0x4,0x6a,0x3b, 0xf,0x69,0x37, 0x5,0x7a,0x23, 0x5,0x7a,0x22, - 0x7,0x62,0x21, 0x7,0x65,0x2f, 0x5,0x61,0x2e, 0x7,0x3e,0x73, - 0x7,0x46,0x25, 0x4,0x5f,0x47, 0x7,0x46,0x24, 0x7,0x4d,0x30, - 0x5,0x6b,0x66, 0x4,0x63,0x2a, 0x7,0x4d,0x31, 0x7,0x4d,0x34, - 0x7,0x4d,0x32, 0x7,0x4d,0x33, 0x7,0x4d,0x35, 0x7,0x4d,0x36, - 0x5,0x6b,0x67, 0x7,0x52,0x6b, 0x5,0x6f,0x63, 0x5,0x6f,0x62, - 0x4,0x66,0x28, 0x7,0x52,0x69, 0x4,0x66,0x2a, 0x7,0x52,0x6d, - 0x4,0x66,0x29, 0x7,0x52,0x6e, 0x7,0x52,0x6a, 0x4,0x48,0x78, - 0x7,0x52,0x6c, 0x7,0x57,0x46, 0x5,0x73,0x2a, 0x5,0x73,0x27, - 0x7,0x57,0x43, 0x7,0x57,0x42, 0x4,0x68,0x5e, 0x5,0x73,0x28, - 0x4,0x68,0x5f, 0x4,0x68,0x5d, 0x7,0x57,0x44, 0x5,0x73,0x25, - 0x5,0x73,0x2b, 0x7,0x57,0x45, 0x7,0x57,0x47, 0x5,0x73,0x29, - 0x7,0x57,0x41, 0x5,0x73,0x26, 0x7,0x5b,0x38, 0x4,0x6a,0x3e, - 0x5,0x75,0x5c, 0x5,0x75,0x5b, 0x5,0x75,0x5e, 0x7,0x5b,0x40, - 0x7,0x5b,0x3f, 0x5,0x75,0x5f, 0x7,0x5b,0x3a, 0x5,0x75,0x60, - 0x4,0x6a,0x3f, 0x7,0x5b,0x39, 0x5,0x75,0x5a, 0x7,0x5b,0x3b, - 0x7,0x5b,0x3d, 0x7,0x5b,0x3e, 0x7,0x5b,0x3c, 0x5,0x75,0x5d, - 0x5,0x77,0x4f, 0x5,0x77,0x4e, 0x4,0x6b,0x5e, 0x4,0x6b,0x62, - 0x4,0x6b,0x63, 0x4,0x6b,0x5f, 0x4,0x6b,0x60, 0x5,0x77,0x50, - 0x7,0x5e,0x4e, 0x7,0x5e,0x4c, 0x4,0x6b,0x5d, 0x7,0x5e,0x4a, - 0x7,0x5e,0x4b, 0x7,0x5e,0x4f, 0x4,0x6b,0x64, 0x4,0x6c,0x67, - 0x5,0x78,0x7e, 0x7,0x60,0x67, 0x4,0x6c,0x68, 0x7,0x60,0x65, - 0x5,0x79,0x21, 0x7,0x62,0x23, 0x4,0x6c,0x65, 0x7,0x60,0x63, - 0x7,0x60,0x66, 0x7,0x60,0x64, 0x7,0x60,0x62, 0x7,0x60,0x68, - 0x5,0x79,0x22, 0x4,0x6d,0x4e, 0x4,0x6d,0x4a, 0x7,0x62,0x25, - 0x5,0x7a,0x26, 0x4,0x6d,0x50, 0x4,0x6d,0x4d, 0x5,0x7a,0x24, - 0x7,0x62,0x27, 0x4,0x6d,0x4f, 0x7,0x62,0x24, 0x7,0x62,0x26, - 0x7,0x62,0x28, 0x7,0x62,0x29, 0x7,0x62,0x22, 0x5,0x7a,0x25, - 0x7,0x63,0x48, 0x5,0x7a,0x60, 0x7,0x63,0x47, 0x5,0x7a,0x62, - 0x5,0x7a,0x5f, 0x5,0x7a,0x61, 0x7,0x64,0x3e, 0x4,0x6e,0x32, - 0x7,0x64,0x3d, 0x5,0x7b,0x37, 0x5,0x7b,0x39, 0x5,0x7b,0x38, - 0x7,0x64,0x40, 0x7,0x64,0x41, 0x7,0x64,0x3f, 0x4,0x6e,0x46, - 0x7,0x65,0x32, 0x5,0x7b,0x5d, 0x7,0x65,0x31, 0x7,0x65,0x30, - 0x7,0x65,0x59, 0x7,0x65,0x71, 0x7,0x65,0x72, 0x5,0x7c,0x2a, - 0x7,0x65,0x70, 0x7,0x65,0x73, 0x5,0x7c,0x33, 0x7,0x66,0x24, - 0x7,0x66,0x23, 0x5,0x7c,0x3b, 0x7,0x66,0x32, 0x5,0x7c,0x3a, - 0x7,0x66,0x31, 0x7,0x66,0x3d, 0x7,0x66,0x3c, 0x5,0x7c,0x45, - 0x7,0x66,0x41, 0x7,0x66,0x48, 0x5,0x7c,0x4e, 0x5,0x7c,0x4d, - 0x5,0x6b,0x68, 0x7,0x4d,0x37, 0x4,0x63,0x2c, 0x7,0x52,0x70, - 0x7,0x52,0x6f, 0x7,0x4e,0x24, 0x5,0x6f,0x64, 0x7,0x57,0x48, - 0xf,0x67,0x3d, 0x7,0x5b,0x42, 0x7,0x5b,0x41, 0x7,0x5b,0x43, - 0x7,0x5b,0x44, 0x5,0x77,0x51, 0x5,0x7c,0x51, 0x7,0x36,0x72, - 0x7,0x3e,0x74, 0x7,0x46,0x26, 0x7,0x57,0x49, 0x5,0x6f,0x65, - 0x4,0x66,0x2b, 0x5,0x6f,0x67, 0x5,0x6f,0x66, 0x4,0x66,0x2c, - 0x7,0x52,0x73, 0x7,0x52,0x71, 0xf,0x67,0x3e, 0x7,0x52,0x72, - 0x5,0x73,0x2c, 0x5,0x73,0x2e, 0x7,0x57,0x4b, 0x5,0x73,0x2f, - 0x5,0x6b,0x6a, 0x5,0x73,0x2d, 0x7,0x54,0x2a, 0x7,0x57,0x4a, - 0x7,0x4d,0x39, 0x7,0x4d,0x38, 0x5,0x7b,0x5e, 0x7,0x61,0x29, - 0x5,0x7b,0x3a, 0x5,0x77,0x52, 0x7,0x64,0x42, 0xf,0x6d,0x2d, - 0x5,0x7c,0x42, 0xf,0x29,0x26, 0x5,0x73,0x30, 0x7,0x62,0x2b, - 0x7,0x62,0x2a, 0x5,0x7a,0x64, 0x5,0x7a,0x63, 0x7,0x63,0x4a, - 0x7,0x63,0x49, 0x5,0x7b,0x3b, 0x4,0x6e,0x47, 0x7,0x66,0x25, - 0x4,0x6e,0x56, 0x7,0x66,0x4c, 0x6,0x29,0x36, 0x6,0x21,0x31, - 0x6,0x21,0x21, 0x6,0x25,0x66, 0x6,0x25,0x72, 0x4,0x25,0x3d, - 0x6,0x2e,0x61, 0xf,0x2d,0x68, 0x6,0x3d,0x35, 0x6,0x50,0x5b, - 0x4,0x3c,0x30, 0x6,0x5a,0x72, 0xf,0x59,0x4d, 0x6,0x23,0x52, - 0x3,0x24,0x52, 0x3,0x27,0x53, 0xf,0x67,0x40, 0x3,0x27,0x54, - 0x6,0x3d,0x3c, 0x7,0x4d,0x3e, 0x6,0x21,0x50, 0x3,0x22,0x7b, - 0x6,0x23,0x59, 0x3,0x21,0x4f, 0x6,0x35,0x44, 0x4,0x21,0x3f, - 0x6,0x22,0x3c, 0x3,0x24,0x41, 0x7,0x36,0x7a, 0x5,0x21,0x29, - 0x6,0x21,0x38, 0xf,0x23,0x37, 0x6,0x29,0x63, 0x6,0x2e,0x76, - 0x6,0x46,0x67, 0x3,0x40,0x43, 0xf,0x22,0x29, 0x6,0x2f,0x25, - 0x6,0x35,0x58, 0x4,0x36,0x4c, 0x4,0x21,0x2f, 0x6,0x22,0x46, - 0x3,0x22,0x25, 0x6,0x22,0x49, 0x3,0x23,0x29, 0x6,0x2f,0x38, - 0x6,0x46,0x74, 0x6,0x2a,0x23, 0x6,0x2f,0x3d, 0x6,0x3d,0x59, - 0x6,0x3d,0x5a, 0x3,0x3a,0x26, 0xf,0x21,0x33, 0x3,0x24,0x29, - 0x6,0x21,0x61, 0x6,0x26,0x43, 0x5,0x31,0x31, 0x6,0x22,0x5b, - 0x5,0x21,0x60, 0x3,0x23,0x3c, 0x4,0x23,0x5c, 0x6,0x26,0x4e, - 0x4,0x23,0x5b, 0x6,0x2a,0x3c, 0x3,0x30,0x23, 0x6,0x35,0x7e, - 0x4,0x30,0x76, 0x6,0x3d,0x7c, 0x6,0x47,0x2a, 0x6,0x47,0x2c, - 0x6,0x47,0x30, 0x6,0x47,0x31, 0x6,0x47,0x33, 0x4,0x3c,0x50, - 0x6,0x5b,0x5b, 0x6,0x51,0x36, 0x6,0x5b,0x59, 0x7,0x21,0x60, - 0x7,0x2c,0x65, 0x3,0x21,0x7c, 0x6,0x24,0x33, 0x6,0x36,0x35, - 0x6,0x3e,0x2c, 0x6,0x3e,0x2b, 0x3,0x34,0x70, 0x4,0x36,0x76, - 0x6,0x51,0x4a, 0x7,0x21,0x76, 0x7,0x46,0x3e, 0xf,0x23,0x5b, - 0x6,0x51,0x57, 0x5,0x23,0x62, 0x6,0x24,0x3b, 0x6,0x51,0x5e, - 0x6,0x47,0x56, 0x6,0x22,0x67, 0xf,0x2a,0x2b, 0x6,0x36,0x4c, - 0x6,0x36,0x4d, 0xf,0x2e,0x6d, 0x6,0x3e,0x54, 0x6,0x3e,0x50, - 0x6,0x47,0x61, 0x6,0x51,0x69, 0xf,0x47,0x46, 0x3,0x5a,0x33, - 0x7,0x46,0x51, 0x6,0x24,0x48, 0x4,0x31,0x30, 0xf,0x41,0x2b, - 0x6,0x5c,0x22, 0x3,0x5a,0x36, 0x7,0x60,0x6d, 0x6,0x27,0x21, - 0x6,0x36,0x67, 0x6,0x24,0x4b, 0x4,0x21,0x34, 0x5,0x28,0x73, - 0x6,0x47,0x7b, 0x4,0x21,0x35, 0xf,0x26,0x62, 0x3,0x2c,0x40, - 0x6,0x30,0x4e, 0x6,0x48,0x2b, 0x6,0x48,0x35, 0x3,0x40,0x7e, - 0x6,0x52,0x33, 0x6,0x5c,0x3d, 0x6,0x27,0x36, 0x6,0x5c,0x49, - 0xf,0x21,0x5f, 0x6,0x48,0x37, 0x6,0x37,0x2c, 0x6,0x48,0x3c, - 0x7,0x2d,0x53, 0x7,0x2d,0x55, 0x7,0x60,0x6e, 0x5,0x29,0x27, - 0x6,0x3f,0x46, 0x6,0x3f,0x45, 0x3,0x35,0x5f, 0x6,0x52,0x40, - 0x5,0x45,0x5d, 0x6,0x21,0x74, 0x6,0x27,0x4a, 0x6,0x2b,0x2f, - 0x6,0x30,0x74, 0xf,0x2a,0x5d, 0x6,0x2b,0x39, 0x7,0x2d,0x63, - 0x5,0x73,0x40, 0x3,0x2c,0x51, 0x6,0x3f,0x5e, 0x5,0x2d,0x48, - 0x3,0x35,0x65, 0x6,0x27,0x5f, 0xf,0x24,0x33, 0x5,0x24,0x38, - 0x6,0x31,0x36, 0x6,0x31,0x30, 0xf,0x2a,0x67, 0x4,0x29,0x4a, - 0x6,0x48,0x7c, 0x6,0x48,0x78, 0x3,0x46,0x70, 0x6,0x52,0x6c, - 0x6,0x52,0x66, 0x6,0x5d,0x26, 0x6,0x5d,0x24, 0x4,0x43,0x51, - 0x7,0x2d,0x69, 0x7,0x2d,0x79, 0x7,0x22,0x7b, 0x3,0x54,0x60, - 0x4,0x5b,0x2c, 0x7,0x47,0x28, 0x3,0x26,0x27, 0x6,0x40,0x23, - 0x5,0x22,0x6e, 0x6,0x2b,0x63, 0x6,0x2b,0x60, 0x6,0x31,0x4f, - 0xf,0x2b,0x2b, 0x6,0x37,0x71, 0x3,0x36,0x28, 0x6,0x40,0x36, - 0x6,0x40,0x2b, 0x6,0x49,0x4a, 0x6,0x49,0x30, 0xf,0x41,0x5f, - 0x7,0x23,0x30, 0x6,0x5d,0x38, 0x5,0x46,0x2c, 0x7,0x23,0x2d, - 0xf,0x4f,0x25, 0x4,0x4a,0x27, 0x7,0x38,0x39, 0xf,0x5e,0x70, - 0x4,0x2d,0x46, 0x6,0x49,0x57, 0xf,0x5a,0x36, 0x3,0x36,0x40, - 0x6,0x38,0x36, 0xf,0x41,0x72, 0x6,0x53,0x3c, 0x5,0x46,0x41, - 0xf,0x2b,0x38, 0x6,0x31,0x6d, 0x6,0x40,0x57, 0x6,0x49,0x78, - 0x6,0x5d,0x5b, 0x6,0x2c,0x23, 0x5,0x26,0x4a, 0x4,0x32,0x3e, - 0x6,0x40,0x58, 0x5,0x3f,0x66, 0x4,0x24,0x47, 0x6,0x28,0x2e, - 0xf,0x24,0x51, 0x4,0x26,0x68, 0x3,0x2d,0x35, 0x6,0x38,0x4a, - 0x3,0x31,0x5c, 0x4,0x2d,0x5c, 0x6,0x38,0x50, 0x5,0x32,0x7e, - 0x3,0x3c,0x3a, 0x6,0x53,0x5e, 0x5,0x3f,0x71, 0x3,0x41,0x6e, - 0x6,0x5d,0x68, 0x7,0x23,0x72, 0xf,0x54,0x74, 0x7,0x2e,0x6a, - 0x4,0x5f,0x76, 0x7,0x58,0x23, 0x6,0x25,0x23, 0x6,0x4a,0x3f, - 0x7,0x23,0x78, 0x7,0x5e,0x72, 0xf,0x48,0x79, 0x6,0x53,0x77, - 0x4,0x2d,0x65, 0xf,0x35,0x74, 0x6,0x4a,0x4d, 0x6,0x2c,0x42, - 0xf,0x48,0x7b, 0x6,0x25,0x2e, 0xf,0x24,0x5d, 0x6,0x2c,0x5b, - 0x6,0x2c,0x51, 0x3,0x2d,0x52, 0x6,0x32,0x39, 0x6,0x32,0x42, - 0x4,0x2a,0x25, 0x4,0x2d,0x70, 0x6,0x39,0x2d, 0x6,0x38,0x74, - 0x6,0x39,0x21, 0xf,0x30,0x5b, 0x3,0x36,0x75, 0x6,0x4a,0x65, - 0x6,0x4a,0x63, 0x4,0x3e,0x33, 0x6,0x54,0x49, 0x6,0x54,0x4f, - 0xf,0x42,0x74, 0x6,0x5e,0x3e, 0x7,0x24,0x4f, 0x7,0x24,0x58, - 0xf,0x4f,0x69, 0x7,0x2f,0x42, 0xf,0x55,0x56, 0x4,0x56,0x5d, - 0x7,0x4e,0x28, 0x7,0x53,0x60, 0x7,0x53,0x58, 0x6,0x2c,0x60, - 0x6,0x2c,0x5d, 0x6,0x32,0x48, 0x4,0x38,0x68, 0xf,0x43,0x2f, - 0x6,0x54,0x59, 0xf,0x50,0x3d, 0xf,0x55,0x58, 0x5,0x7b,0x7b, - 0x3,0x55,0x45, 0x6,0x41,0x61, 0x6,0x41,0x63, 0x6,0x41,0x6a, - 0x6,0x5e,0x5e, 0x6,0x32,0x62, 0x6,0x4b,0x42, 0x7,0x47,0x75, - 0x6,0x22,0x26, 0xf,0x24,0x78, 0x6,0x2d,0x24, 0xf,0x2c,0x39, - 0xf,0x31,0x28, 0x6,0x4b,0x47, 0xf,0x43,0x64, 0x4,0x44,0x6e, - 0x7,0x40,0x63, 0xf,0x63,0x24, 0x6,0x42,0x21, 0x3,0x3d,0x3f, - 0x6,0x32,0x79, 0x4,0x2a,0x44, 0x5,0x33,0x65, 0x6,0x4b,0x56, - 0x4,0x3e,0x6c, 0x6,0x42,0x32, 0xf,0x4a,0x2f, 0x7,0x53,0x7b, - 0x6,0x2d,0x3a, 0x5,0x33,0x71, 0xf,0x56,0x3c, 0x6,0x2d,0x45, - 0x6,0x2d,0x3d, 0x6,0x33,0x3d, 0x6,0x33,0x31, 0x5,0x2f,0x26, - 0xf,0x2c,0x57, 0x6,0x3a,0x2d, 0x6,0x3a,0x2e, 0x6,0x42,0x48, - 0x6,0x4b,0x7a, 0xf,0x50,0x5f, 0x7,0x30,0x4a, 0x6,0x25,0x3f, - 0x6,0x2d,0x46, 0x3,0x43,0x33, 0x6,0x55,0x6b, 0x7,0x25,0x7b, - 0x7,0x39,0x6d, 0xf,0x28,0x3c, 0x6,0x33,0x4a, 0xf,0x3d,0x60, - 0x4,0x4b,0x60, 0x7,0x26,0x27, 0x6,0x3a,0x43, 0x6,0x42,0x67, - 0x4,0x45,0x5f, 0x4,0x52,0x21, 0x7,0x30,0x66, 0x6,0x5f,0x75, - 0x7,0x26,0x3e, 0x7,0x26,0x3c, 0x7,0x30,0x73, 0xf,0x4a,0x7b, - 0x6,0x60,0x23, 0xf,0x51,0x23, 0x7,0x26,0x4d, 0x7,0x41,0x3c, - 0x5,0x6c,0x7d, 0x7,0x31,0x2d, 0x7,0x3a,0x33, 0x4,0x5c,0x59, - 0x7,0x41,0x44, 0x3,0x2e,0x56, 0x6,0x33,0x66, 0x3,0x48,0x6a, - 0xf,0x51,0x37, 0x7,0x26,0x6a, 0x7,0x26,0x69, 0x4,0x64,0x26, - 0x7,0x62,0x4d, 0x6,0x4c,0x72, 0x7,0x3a,0x46, 0xf,0x3e,0x32, - 0x7,0x3a,0x49, 0x7,0x48,0x6d, 0x7,0x5f,0x3c, 0x6,0x4d,0x23, - 0xf,0x57,0x27, 0x4,0x2b,0x26, 0x7,0x27,0x28, 0xf,0x57,0x28, - 0x6,0x60,0x5d, 0x5,0x48,0x74, 0xf,0x5c,0x2d, 0x6,0x28,0x7b, - 0x4,0x27,0x68, 0x6,0x2d,0x69, 0x3,0x33,0x50, 0x5,0x3b,0x50, - 0x6,0x4d,0x48, 0xf,0x44,0x68, 0xf,0x4b,0x57, 0xf,0x4b,0x56, - 0x4,0x4c,0x56, 0x4,0x58,0x2d, 0x4,0x34,0x57, 0x6,0x4d,0x5e, - 0x3,0x44,0x25, 0x6,0x61,0x25, 0x3,0x27,0x2a, 0x6,0x25,0x52, - 0x6,0x29,0x27, 0xf,0x28,0x5c, 0x6,0x29,0x28, 0x6,0x2e,0x22, - 0x6,0x2e,0x23, 0x6,0x34,0x44, 0x6,0x2e,0x24, 0x6,0x3b,0x52, - 0xf,0x32,0x3a, 0x4,0x34,0x73, 0x6,0x44,0x2b, 0x4,0x34,0x74, - 0x6,0x43,0x76, 0x6,0x44,0x3b, 0x4,0x3a,0x66, 0x6,0x44,0x3e, - 0x6,0x44,0x3c, 0x6,0x44,0x3d, 0x6,0x4e,0x3b, 0x6,0x61,0x3e, - 0x6,0x61,0x4f, 0xf,0x51,0x64, 0x4,0x4c,0x79, 0x7,0x27,0x61, - 0x7,0x27,0x6d, 0x7,0x32,0x44, 0xf,0x57,0x47, 0x7,0x3a,0x6f, - 0xf,0x60,0x5d, 0x7,0x42,0x3c, 0x7,0x54,0x5e, 0x4,0x67,0x2b, - 0x6,0x34,0x47, 0x4,0x40,0x4f, 0x7,0x3b,0x38, 0x3,0x5b,0x26, - 0x6,0x3b,0x71, 0x4,0x3a,0x75, 0x6,0x4e,0x46, 0x4,0x46,0x7c, - 0x4,0x4d,0x33, 0xf,0x52,0x24, 0x7,0x28,0x2e, 0xf,0x51,0x7d, - 0x7,0x42,0x60, 0x7,0x42,0x5f, 0x3,0x5b,0x2d, 0x4,0x64,0x3f, - 0x4,0x53,0x4c, 0x6,0x25,0x53, 0x5,0x30,0x3e, 0x6,0x58,0x2e, - 0x6,0x58,0x2c, 0xf,0x45,0x3d, 0x7,0x3b,0x61, 0xf,0x38,0x4a, - 0x5,0x7a,0x38, 0x6,0x3c,0x2d, 0x4,0x35,0x45, 0xf,0x3f,0x3b, - 0x6,0x62,0x47, 0x7,0x33,0x4f, 0x7,0x59,0x41, 0x6,0x29,0x2a, - 0x6,0x58,0x50, 0x6,0x58,0x5c, 0x3,0x60,0x7c, 0x6,0x3c,0x3b, - 0x7,0x33,0x79, 0x7,0x33,0x73, 0xf,0x3f,0x53, 0x3,0x44,0x6d, - 0x7,0x29,0x44, 0x6,0x34,0x5d, 0x4,0x30,0x2c, 0x7,0x34,0x31, - 0x4,0x54,0x37, 0x7,0x3c,0x61, 0x6,0x25,0x5b, 0x4,0x35,0x72, - 0x6,0x59,0x47, 0x6,0x59,0x4a, 0x7,0x3c,0x6b, 0xf,0x45,0x73, - 0x6,0x63,0x53, 0x6,0x63,0x4f, 0x4,0x54,0x4a, 0xf,0x66,0x5e, - 0x7,0x50,0x6b, 0xf,0x6c,0x3f, 0x6,0x63,0x58, 0x7,0x34,0x7a, - 0x7,0x34,0x71, 0xf,0x61,0x4a, 0x6,0x50,0x22, 0x6,0x63,0x6e, - 0x7,0x35,0x35, 0x3,0x56,0x78, 0x5,0x5f,0x5e, 0x7,0x3d,0x50, - 0xf,0x58,0x78, 0x7,0x4b,0x5f, 0x4,0x65,0x2a, 0x7,0x4b,0x6b, - 0x5,0x3d,0x47, 0x5,0x44,0x35, 0x6,0x5a,0x33, 0x6,0x64,0x30, - 0x4,0x59,0x76, 0x6,0x64,0x3a, 0x6,0x3c,0x77, 0x6,0x5a,0x3d, - 0x4,0x55,0x23, 0x4,0x5e,0x60, 0x6,0x64,0x50, 0x7,0x3e,0x29, - 0x7,0x2b,0x55, 0xf,0x59,0x32, 0x7,0x51,0x7a, 0x7,0x5a,0x60, - 0x4,0x5a,0x59, 0x7,0x45,0x65, 0x4,0x5f,0x37, 0x4,0x62,0x6e, - 0x7,0x52,0x45, 0x5,0x75,0x36, 0x5,0x75,0x35, 0xf,0x6c,0x77, - 0x7,0x3e,0x5c, 0x6,0x46,0x3e, 0x4,0x68,0x4f, 0x6,0x5a,0x60, - 0x4,0x28,0x34, 0x3,0x5c,0x2f, 0x5,0x53,0x51, 0x7,0x4d,0x28, - 0x4,0x48,0x77, 0x7,0x5e,0x4d, -}; - -static const Summary16 cns11643_inv_uni2indx_page00[16] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0080 }, { 1, 0x0083 }, - { 4, 0x0000 }, { 4, 0x0080 }, { 5, 0x0000 }, { 5, 0x0080 }, -}; -static const Summary16 cns11643_inv_uni2indx_page02[29] = { - /* 0x0200 */ - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, - { 6, 0x0e80 }, { 10, 0x0200 }, { 11, 0x0000 }, { 11, 0x0000 }, - /* 0x0300 */ - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0xfffe }, { 26, 0x03fb }, { 35, 0xfffe }, - { 50, 0x03fb }, -}; -static const Summary16 cns11643_inv_uni2indx_page20[44] = { - /* 0x2000 */ - { 59, 0x0000 }, { 59, 0x3358 }, { 66, 0x0060 }, { 68, 0x4824 }, - { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, - { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x1000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - /* 0x2100 */ - { 73, 0x0228 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x03ff }, { 86, 0x03ff }, - { 96, 0x0000 }, { 96, 0x03cf }, { 104, 0x0000 }, { 104, 0x0000 }, - { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, - /* 0x2200 */ - { 104, 0x0000 }, { 104, 0xc420 }, { 108, 0x4e01 }, { 113, 0x1030 }, - { 116, 0x0000 }, { 116, 0x0004 }, { 117, 0x00c3 }, { 121, 0x0000 }, - { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0020 }, { 122, 0x8000 }, -}; -static const Summary16 cns11643_inv_uni2indx_page24[37] = { - /* 0x2400 */ - { 123, 0xffff }, { 139, 0xffff }, { 155, 0x0002 }, { 156, 0x0000 }, - { 156, 0x0000 }, { 156, 0x0000 }, { 156, 0x03ff }, { 166, 0x3ff0 }, - { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, - { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, { 176, 0x0000 }, - /* 0x2500 */ - { 176, 0x1005 }, { 179, 0x1111 }, { 183, 0x1010 }, { 185, 0x1010 }, - { 187, 0x0000 }, { 187, 0x4001 }, { 189, 0xe402 }, { 194, 0x000f }, - { 198, 0xfffe }, { 213, 0x0030 }, { 215, 0x0003 }, { 217, 0x300c }, - { 221, 0xc8c0 }, { 226, 0x0000 }, { 226, 0x003c }, { 230, 0x0000 }, - /* 0x2600 */ - { 230, 0x0260 }, { 233, 0x0000 }, { 233, 0x0000 }, { 233, 0x0000 }, - { 233, 0x0007 }, -}; -static const Summary16 cns11643_inv_uni2indx_page30[1787] = { - /* 0x3000 */ - { 236, 0xff0f }, { 248, 0x6037 }, { 255, 0x03fe }, { 264, 0x0000 }, - { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, - { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, - { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0800 }, - /* 0x3100 */ - { 265, 0xffe0 }, { 276, 0xffff }, { 292, 0x03ff }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - /* 0x3200 */ - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0008 }, { 303, 0x0000 }, - { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, - /* 0x3300 */ - { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, - { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, - { 303, 0xc000 }, { 305, 0x7000 }, { 308, 0x0002 }, { 309, 0x0000 }, - { 309, 0x4010 }, { 311, 0x0026 }, { 314, 0x0000 }, { 314, 0x0000 }, - /* 0x3400 */ - { 314, 0x1073 }, { 320, 0x1040 }, { 322, 0x7b12 }, { 330, 0x5f5f }, - { 342, 0xfe3e }, { 354, 0xff8b }, { 366, 0xc0f8 }, { 373, 0xfefb }, - { 387, 0x7fff }, { 402, 0xfefe }, { 416, 0xbff3 }, { 429, 0xfffd }, - { 444, 0xdfbc }, { 456, 0xfdfb }, { 470, 0xf39f }, { 482, 0x7ffe }, - /* 0x3500 */ - { 496, 0xfcff }, { 510, 0x77af }, { 522, 0xf7ff }, { 537, 0xffff }, - { 553, 0xffff }, { 569, 0xdff7 }, { 583, 0xfeff }, { 598, 0x1fef }, - { 610, 0x81ff }, { 620, 0x81ff }, { 630, 0x0fff }, { 642, 0xfff0 }, - { 654, 0x3fff }, { 668, 0x1ff9 }, { 679, 0x3ffc }, { 691, 0xf87f }, - /* 0x3600 */ - { 703, 0x3fe7 }, { 715, 0xfe7b }, { 728, 0xbfff }, { 743, 0x8fdf }, - { 755, 0xefbf }, { 769, 0x7e2f }, { 780, 0xffbf }, { 795, 0x5fff }, - { 809, 0xfebf }, { 823, 0xf5fd }, { 836, 0x7fff }, { 851, 0xffff }, - { 867, 0xe63e }, { 877, 0x7fff }, { 892, 0xffe6 }, { 905, 0x7fff }, - /* 0x3700 */ - { 920, 0xfffe }, { 935, 0x7fef }, { 949, 0xdfff }, { 964, 0xffff }, - { 980, 0xf5bf }, { 993, 0xfbff }, { 1008, 0xfefd }, { 1022, 0xfff7 }, - { 1037, 0x9fff }, { 1051, 0x9fff }, { 1065, 0xbffe }, { 1079, 0xfeff }, - { 1094, 0xffbb }, { 1108, 0xffdf }, { 1123, 0xbfe5 }, { 1135, 0xff7f }, - /* 0x3800 */ - { 1150, 0xfff7 }, { 1165, 0x3fff }, { 1179, 0xe7e7 }, { 1191, 0xfff6 }, - { 1205, 0xdfff }, { 1220, 0xffff }, { 1236, 0xefed }, { 1249, 0xffff }, - { 1265, 0xff7f }, { 1280, 0xffff }, { 1296, 0xd7eb }, { 1308, 0x7d7d }, - { 1320, 0xfbff }, { 1335, 0xff1f }, { 1348, 0xb87d }, { 1358, 0xfce7 }, - /* 0x3900 */ - { 1370, 0xfffe }, { 1385, 0xfeff }, { 1400, 0xd7ff }, { 1414, 0xcfff }, - { 1428, 0xffff }, { 1444, 0xfc7f }, { 1457, 0xfbff }, { 1472, 0xf7ff }, - { 1487, 0xfeff }, { 1502, 0xfdff }, { 1517, 0xffff }, { 1533, 0xfff5 }, - { 1547, 0x7fff }, { 1562, 0x47fc }, { 1572, 0xfffe }, { 1587, 0xfffe }, - /* 0x3a00 */ - { 1602, 0xffff }, { 1618, 0xfeff }, { 1633, 0xe7ff }, { 1647, 0xffff }, - { 1663, 0x7ff9 }, { 1676, 0x7ffd }, { 1690, 0xbfff }, { 1705, 0xfeff }, - { 1720, 0xfbb7 }, { 1733, 0xf46e }, { 1743, 0xfb7f }, { 1757, 0xdff3 }, - { 1770, 0xec3f }, { 1781, 0xffbf }, { 1796, 0xdef3 }, { 1808, 0x3fff }, - /* 0x3b00 */ - { 1822, 0xfffe }, { 1837, 0x7fbd }, { 1850, 0xfeef }, { 1864, 0x9b7f }, - { 1876, 0x1f9e }, { 1886, 0xff3e }, { 1899, 0xff07 }, { 1910, 0xff07 }, - { 1921, 0xf9ff }, { 1935, 0xffff }, { 1951, 0xfffa }, { 1965, 0x97ff }, - { 1978, 0xffff }, { 1994, 0xfff9 }, { 2008, 0xfc7f }, { 2021, 0xcfff }, - /* 0x3c00 */ - { 2035, 0xffff }, { 2051, 0xeff7 }, { 2065, 0xffff }, { 2081, 0xfeff }, - { 2096, 0xffff }, { 2112, 0xdff4 }, { 2124, 0xbdff }, { 2138, 0xff7f }, - { 2153, 0xffff }, { 2169, 0xfffe }, { 2184, 0xbdff }, { 2198, 0x7fff }, - { 2213, 0xfdff }, { 2228, 0xffcf }, { 2242, 0x7ff0 }, { 2253, 0xfff8 }, - /* 0x3d00 */ - { 2266, 0xc7ff }, { 2279, 0x7fff }, { 2294, 0xffe3 }, { 2307, 0xf9ff }, - { 2321, 0xfc7f }, { 2334, 0xe3ff }, { 2347, 0xffff }, { 2363, 0xefff }, - { 2378, 0xf1f3 }, { 2389, 0xddfe }, { 2402, 0xfffb }, { 2417, 0xde3d }, - { 2428, 0xefff }, { 2443, 0x8fff }, { 2456, 0xf97f }, { 2469, 0xdbf9 }, - /* 0x3e00 */ - { 2481, 0xff3f }, { 2495, 0xffff }, { 2511, 0xffff }, { 2527, 0x7fef }, - { 2541, 0xfeff }, { 2556, 0xffff }, { 2572, 0xf8ff }, { 2585, 0xfffe }, - { 2600, 0xdfbf }, { 2614, 0xfdff }, { 2629, 0x7ffb }, { 2643, 0xa7bf }, - { 2655, 0x7f9f }, { 2668, 0xe6fe }, { 2680, 0xf98f }, { 2691, 0xffe7 }, - /* 0x3f00 */ - { 2705, 0xfef6 }, { 2718, 0xffff }, { 2734, 0xffff }, { 2750, 0xffff }, - { 2766, 0x7fdf }, { 2780, 0xffef }, { 2795, 0xffff }, { 2811, 0xefb7 }, - { 2824, 0xffff }, { 2840, 0xffff }, { 2856, 0xffff }, { 2872, 0xffc1 }, - { 2883, 0xfffe }, { 2898, 0xffee }, { 2912, 0xfffe }, { 2927, 0xffff }, - /* 0x4000 */ - { 2943, 0xefff }, { 2958, 0xdfff }, { 2973, 0xff9f }, { 2987, 0xffff }, - { 3003, 0xfffe }, { 3018, 0xffbf }, { 3033, 0xfbfd }, { 3047, 0xffff }, - { 3063, 0xf7ff }, { 3078, 0xffff }, { 3094, 0xfeff }, { 3109, 0xffdf }, - { 3124, 0xff87 }, { 3136, 0x7ffe }, { 3150, 0x7eff }, { 3164, 0xefff }, - /* 0x4100 */ - { 3179, 0xfbff }, { 3194, 0xbf3f }, { 3207, 0xfff7 }, { 3222, 0xfdcf }, - { 3235, 0xfdff }, { 3250, 0x7fff }, { 3265, 0xf3ff }, { 3279, 0xffff }, - { 3295, 0xef3f }, { 3308, 0xffff }, { 3324, 0xbfff }, { 3339, 0xffef }, - { 3354, 0xfbef }, { 3368, 0xffff }, { 3384, 0xffff }, { 3400, 0x7fe7 }, - /* 0x4200 */ - { 3413, 0xffff }, { 3429, 0xffff }, { 3445, 0xfcff }, { 3459, 0xffff }, - { 3475, 0xff7f }, { 3490, 0xffff }, { 3506, 0xffef }, { 3521, 0xffff }, - { 3537, 0xefff }, { 3552, 0xffff }, { 3568, 0xfffb }, { 3583, 0xffff }, - { 3599, 0xff1f }, { 3612, 0xdfff }, { 3627, 0xffff }, { 3643, 0xffff }, - /* 0x4300 */ - { 3659, 0xf7ff }, { 3674, 0xffff }, { 3690, 0xffff }, { 3706, 0x003f }, - { 3712, 0xfffc }, { 3726, 0xffff }, { 3742, 0xfffe }, { 3757, 0xffff }, - { 3773, 0xffff }, { 3789, 0xb7ff }, { 3803, 0xefdf }, { 3817, 0xffff }, - { 3833, 0xffff }, { 3849, 0xdfff }, { 3864, 0x9fff }, { 3878, 0xffff }, - /* 0x4400 */ - { 3894, 0xffbf }, { 3909, 0xffff }, { 3925, 0xfbff }, { 3940, 0xffff }, - { 3956, 0xffff }, { 3972, 0xffbf }, { 3987, 0xbdff }, { 4001, 0xbe7f }, - { 4014, 0xff7f }, { 4029, 0xfdfd }, { 4043, 0x3fff }, { 4057, 0x3fff }, - { 4071, 0xfffe }, { 4086, 0xff8f }, { 4099, 0xe4ff }, { 4111, 0xf7ff }, - /* 0x4500 */ - { 4126, 0xffff }, { 4142, 0xffff }, { 4158, 0xffff }, { 4174, 0xffff }, - { 4190, 0xfffb }, { 4205, 0xfffe }, { 4220, 0xfff7 }, { 4235, 0xffbf }, - { 4250, 0xffff }, { 4266, 0xffff }, { 4282, 0xefff }, { 4297, 0xbfff }, - { 4312, 0xffff }, { 4328, 0xffbf }, { 4343, 0xdfff }, { 4358, 0xf7f7 }, - /* 0x4600 */ - { 4372, 0xffff }, { 4388, 0xb7ff }, { 4402, 0xffff }, { 4418, 0xfffb }, - { 4433, 0xc3ff }, { 4445, 0xfff7 }, { 4460, 0xf7ff }, { 4475, 0xf7bf }, - { 4489, 0xffff }, { 4505, 0xffdf }, { 4520, 0xefef }, { 4534, 0xffff }, - { 4550, 0xffff }, { 4566, 0xfff7 }, { 4581, 0xffff }, { 4597, 0xffff }, - /* 0x4700 */ - { 4613, 0xffff }, { 4629, 0xffff }, { 4645, 0xfc07 }, { 4654, 0xfff7 }, - { 4669, 0xffff }, { 4685, 0xf5ff }, { 4699, 0xffff }, { 4715, 0xefff }, - { 4730, 0x0fff }, { 4742, 0xfffe }, { 4757, 0xffff }, { 4773, 0xfffb }, - { 4788, 0xffff }, { 4804, 0xffff }, { 4820, 0xffff }, { 4836, 0xfffb }, - /* 0x4800 */ - { 4851, 0xefff }, { 4866, 0xffbf }, { 4881, 0xffff }, { 4897, 0xfbff }, - { 4912, 0xffff }, { 4928, 0xffff }, { 4944, 0xffff }, { 4960, 0xf7fd }, - { 4974, 0x7ff8 }, { 4986, 0xfe7f }, { 5000, 0xfff7 }, { 5015, 0xfbff }, - { 5030, 0xfdff }, { 5045, 0xfffb }, { 5060, 0xffbf }, { 5075, 0xfff7 }, - /* 0x4900 */ - { 5090, 0xfffe }, { 5105, 0xffff }, { 5121, 0xfdf7 }, { 5135, 0xfffb }, - { 5150, 0xff7f }, { 5165, 0xefff }, { 5180, 0xffff }, { 5196, 0x01ff }, - { 5205, 0xff80 }, { 5214, 0xf7ff }, { 5229, 0xfdff }, { 5244, 0x3e3e }, - { 5254, 0x7efe }, { 5267, 0xffff }, { 5283, 0xd5ff }, { 5296, 0xffff }, - /* 0x4a00 */ - { 5312, 0xffff }, { 5328, 0xfbff }, { 5343, 0xffff }, { 5359, 0xffff }, - { 5375, 0xbfef }, { 5389, 0xffff }, { 5405, 0xffff }, { 5421, 0xffff }, - { 5437, 0xffff }, { 5453, 0x7fff }, { 5468, 0xfbff }, { 5483, 0xffff }, - { 5499, 0xffff }, { 5515, 0xffff }, { 5531, 0xffff }, { 5547, 0xffff }, - /* 0x4b00 */ - { 5563, 0xffff }, { 5579, 0xffff }, { 5595, 0xffff }, { 5611, 0xffff }, - { 5627, 0x7fff }, { 5642, 0xefff }, { 5657, 0xfbff }, { 5672, 0xffff }, - { 5688, 0xffff }, { 5704, 0xffff }, { 5720, 0xffff }, { 5736, 0xffff }, - { 5752, 0xffc7 }, { 5765, 0xffff }, { 5781, 0xfdff }, { 5796, 0xf7ff }, - /* 0x4c00 */ - { 5811, 0xff7f }, { 5826, 0xffff }, { 5842, 0xbfff }, { 5857, 0xffb7 }, - { 5871, 0xffff }, { 5887, 0xffff }, { 5903, 0xfbff }, { 5918, 0xffef }, - { 5933, 0xff7f }, { 5948, 0x1eff }, { 5960, 0xffe0 }, { 5971, 0xffbf }, - { 5986, 0xffff }, { 6002, 0xffff }, { 6018, 0xffff }, { 6034, 0xfdff }, - /* 0x4d00 */ - { 6049, 0xffff }, { 6065, 0xfc07 }, { 6074, 0xfeff }, { 6089, 0xffff }, - { 6105, 0xffff }, { 6121, 0xffff }, { 6137, 0xffff }, { 6153, 0xffff }, - { 6169, 0xffff }, { 6185, 0xffff }, { 6201, 0x9fff }, { 6215, 0x003b }, - { 6220, 0x0000 }, { 6220, 0x0000 }, { 6220, 0x0000 }, { 6220, 0x0000 }, - /* 0x4e00 */ - { 6220, 0xffbf }, { 6235, 0xc3f7 }, { 6246, 0xef5f }, { 6259, 0xbb6f }, - { 6271, 0xebef }, { 6284, 0xf7de }, { 6297, 0x070c }, { 6302, 0xc23a }, - { 6309, 0xfbff }, { 6324, 0xfbfe }, { 6338, 0xf97f }, { 6351, 0x56df }, - { 6362, 0xffff }, { 6378, 0xfff1 }, { 6391, 0xc3ff }, { 6403, 0xffff }, - /* 0x4f00 */ - { 6419, 0xffff }, { 6435, 0x3fff }, { 6449, 0xf304 }, { 6456, 0xffff }, - { 6472, 0xffff }, { 6488, 0xffff }, { 6504, 0xffdf }, { 6519, 0xffff }, - { 6535, 0xffff }, { 6551, 0xffff }, { 6567, 0xc80f }, { 6574, 0xffff }, - { 6590, 0xffff }, { 6606, 0xffff }, { 6622, 0xd2bf }, { 6633, 0xffff }, - /* 0x5000 */ - { 6649, 0xffff }, { 6665, 0xffff }, { 6681, 0xffff }, { 6697, 0x93ff }, - { 6709, 0xffff }, { 6725, 0xffff }, { 6741, 0xffff }, { 6757, 0x3fff }, - { 6771, 0xffff }, { 6787, 0xffff }, { 6803, 0xfc4f }, { 6814, 0xffff }, - { 6830, 0xffff }, { 6846, 0xffff }, { 6862, 0xffff }, { 6878, 0xfffb }, - /* 0x5100 */ - { 6893, 0xffff }, { 6909, 0xffff }, { 6925, 0xffff }, { 6941, 0xffff }, - { 6957, 0xffff }, { 6973, 0xffff }, { 6989, 0x7fff }, { 7004, 0xd3ee }, - { 7015, 0xfffd }, { 7030, 0xe3ff }, { 7043, 0x3f7f }, { 7056, 0xf7ff }, - { 7071, 0xffff }, { 7087, 0xffff }, { 7103, 0x753f }, { 7114, 0x67ff }, - /* 0x5200 */ - { 7127, 0xdfff }, { 7142, 0xf1ff }, { 7155, 0xcfff }, { 7169, 0x7fff }, - { 7184, 0xfffa }, { 7198, 0xfffc }, { 7212, 0xffff }, { 7228, 0xfffd }, - { 7243, 0x7fff }, { 7258, 0xffff }, { 7274, 0xfff9 }, { 7288, 0xfffb }, - { 7303, 0xf7ff }, { 7318, 0xfbff }, { 7333, 0xffff }, { 7349, 0xffff }, - /* 0x5300 */ - { 7365, 0xfffb }, { 7380, 0xffff }, { 7396, 0xbfbf }, { 7410, 0xffff }, - { 7426, 0xffff }, { 7442, 0xffbf }, { 7457, 0xf7fb }, { 7471, 0xffff }, - { 7487, 0xcfdd }, { 7499, 0xffdc }, { 7512, 0xfff3 }, { 7526, 0x6fff }, - { 7540, 0xff3f }, { 7554, 0xfefd }, { 7568, 0xffff }, { 7584, 0xbfff }, - /* 0x5400 */ - { 7599, 0xffff }, { 7615, 0xff6f }, { 7629, 0xffff }, { 7645, 0xffff }, - { 7661, 0xffff }, { 7677, 0xe413 }, { 7684, 0xffff }, { 7700, 0xffff }, - { 7716, 0xffff }, { 7732, 0xd57f }, { 7744, 0xffff }, { 7760, 0xffff }, - { 7776, 0xffff }, { 7792, 0x4441 }, { 7796, 0xffff }, { 7812, 0xffff }, - /* 0x5500 */ - { 7828, 0xffff }, { 7844, 0x0fff }, { 7856, 0xffc3 }, { 7868, 0xffff }, - { 7884, 0xffff }, { 7900, 0xffff }, { 7916, 0x0d7f }, { 7926, 0xfcee }, - { 7938, 0xffff }, { 7954, 0xffff }, { 7970, 0xffff }, { 7986, 0x8c7f }, - { 7996, 0xffff }, { 8012, 0xffff }, { 8028, 0xc7ff }, { 8041, 0xffd7 }, - /* 0x5600 */ - { 8055, 0xffff }, { 8071, 0xfbff }, { 8086, 0xffc5 }, { 8098, 0xffff }, - { 8114, 0xffff }, { 8130, 0xc7ff }, { 8143, 0xffff }, { 8159, 0xefff }, - { 8174, 0xffff }, { 8190, 0xffff }, { 8206, 0xffe1 }, { 8218, 0xffff }, - { 8234, 0xbfff }, { 8249, 0xff9f }, { 8263, 0xfffb }, { 8278, 0xbfcf }, - /* 0x5700 */ - { 8291, 0xffbf }, { 8306, 0xfdff }, { 8321, 0xffbf }, { 8336, 0xf87f }, - { 8348, 0xffff }, { 8364, 0x8bff }, { 8376, 0xfffe }, { 8391, 0xffff }, - { 8407, 0xfd8f }, { 8419, 0xffff }, { 8435, 0x5fff }, { 8449, 0xfff0 }, - { 8461, 0xffff }, { 8477, 0xf8bf }, { 8489, 0xffff }, { 8505, 0xffff }, - /* 0x5800 */ - { 8521, 0xffff }, { 8537, 0xff9d }, { 8550, 0xffff }, { 8566, 0xffff }, - { 8582, 0xffbd }, { 8596, 0xffff }, { 8612, 0xbfff }, { 8627, 0xfffe }, - { 8642, 0xffff }, { 8658, 0xfdff }, { 8673, 0xffff }, { 8689, 0xfcbf }, - { 8702, 0xe7ff }, { 8716, 0xff7f }, { 8731, 0xdbdf }, { 8744, 0xfebf }, - /* 0x5900 */ - { 8758, 0xff7f }, { 8773, 0xbfff }, { 8788, 0xffff }, { 8804, 0xf1ff }, - { 8817, 0xfff9 }, { 8831, 0xffbf }, { 8846, 0xffff }, { 8862, 0xffff }, - { 8878, 0xfe7f }, { 8892, 0xffff }, { 8908, 0xf1ff }, { 8921, 0xffff }, - { 8937, 0xffff }, { 8953, 0xffff }, { 8969, 0xffff }, { 8985, 0xffff }, - /* 0x5a00 */ - { 9001, 0xfe1f }, { 9013, 0xffff }, { 9029, 0xffff }, { 9045, 0xffeb }, - { 9059, 0xffff }, { 9075, 0xffff }, { 9091, 0xffff }, { 9107, 0xffaf }, - { 9121, 0xffff }, { 9137, 0xffff }, { 9153, 0xdfff }, { 9168, 0xffff }, - { 9184, 0xffff }, { 9200, 0xffeb }, { 9214, 0xffff }, { 9230, 0xfff9 }, - /* 0x5b00 */ - { 9244, 0xffff }, { 9260, 0xffff }, { 9276, 0xffff }, { 9292, 0xffbf }, - { 9307, 0xffff }, { 9323, 0xbdff }, { 9337, 0xdfff }, { 9352, 0xffff }, - { 9368, 0xffff }, { 9384, 0xfffd }, { 9399, 0xfbfc }, { 9412, 0xdfff }, - { 9427, 0xfdff }, { 9442, 0xffff }, { 9458, 0xffff }, { 9474, 0xe7ff }, - /* 0x5c00 */ - { 9488, 0xfffb }, { 9503, 0xcfff }, { 9517, 0xbf3f }, { 9530, 0xffeb }, - { 9544, 0xfff3 }, { 9558, 0xffff }, { 9574, 0xffbf }, { 9589, 0x7fbb }, - { 9602, 0xfff3 }, { 9616, 0xf2bf }, { 9628, 0xffff }, { 9644, 0x0fff }, - { 9656, 0xffc3 }, { 9668, 0xffff }, { 9684, 0xff66 }, { 9696, 0xffff }, - /* 0x5d00 */ - { 9712, 0xffc3 }, { 9724, 0xffff }, { 9740, 0xdfff }, { 9755, 0xffff }, - { 9771, 0xffff }, { 9787, 0xcaff }, { 9799, 0xffff }, { 9815, 0xffbf }, - { 9830, 0xffff }, { 9846, 0xffff }, { 9862, 0xffff }, { 9878, 0xffff }, - { 9894, 0xffdf }, { 9909, 0xffff }, { 9925, 0x4bff }, { 9937, 0xefff }, - /* 0x5e00 */ - { 9952, 0x7fdf }, { 9966, 0xeffe }, { 9980, 0xff3f }, { 9994, 0xe7fd }, - { 10007, 0xfdff }, { 10022, 0xffff }, { 10038, 0xffff }, { 10054, 0xffff }, - { 10070, 0xffbf }, { 10085, 0x3fe5 }, { 10096, 0xffff }, { 10112, 0xefff }, - { 10127, 0xffff }, { 10143, 0xffff }, { 10159, 0xffef }, { 10174, 0xffff }, - /* 0x5f00 */ - { 10190, 0xfdff }, { 10205, 0xffbf }, { 10220, 0xfbfe }, { 10234, 0xffff }, - { 10250, 0xffdf }, { 10265, 0x7fff }, { 10280, 0xfeff }, { 10295, 0xf7ff }, - { 10310, 0xffff }, { 10326, 0xffdf }, { 10341, 0xffff }, { 10357, 0xffff }, - { 10373, 0xffbf }, { 10388, 0xffff }, { 10404, 0xffff }, { 10420, 0xffff }, - /* 0x6000 */ - { 10436, 0xff81 }, { 10446, 0xffff }, { 10462, 0xffff }, { 10478, 0x23ff }, - { 10489, 0xffff }, { 10505, 0xffff }, { 10521, 0xffff }, { 10537, 0xd03f }, - { 10546, 0xffff }, { 10562, 0xffff }, { 10578, 0x47ff }, { 10590, 0xffff }, - { 10606, 0xffff }, { 10622, 0xffff }, { 10638, 0x47ff }, { 10650, 0xffff }, - /* 0x6100 */ - { 10666, 0xffff }, { 10682, 0xffff }, { 10698, 0xffaf }, { 10712, 0xffff }, - { 10728, 0xffff }, { 10744, 0xfffd }, { 10759, 0xffff }, { 10775, 0xffff }, - { 10791, 0xffff }, { 10807, 0xffff }, { 10823, 0xffff }, { 10839, 0xffff }, - { 10855, 0xffff }, { 10871, 0xffe9 }, { 10884, 0xffff }, { 10900, 0xffef }, - /* 0x6200 */ - { 10915, 0xf7bf }, { 10929, 0xff7f }, { 10944, 0xffff }, { 10960, 0xffff }, - { 10976, 0xffef }, { 10991, 0xff9f }, { 11005, 0xe1ff }, { 11017, 0xffff }, - { 11033, 0xffff }, { 11049, 0x7fff }, { 11064, 0xfff8 }, { 11077, 0xffff }, - { 11093, 0xffff }, { 11109, 0xffff }, { 11125, 0xfc13 }, { 11134, 0xffff }, - /* 0x6300 */ - { 11150, 0xffff }, { 11166, 0x8aff }, { 11177, 0xff0a }, { 11187, 0xffff }, - { 11203, 0xffff }, { 11219, 0x3fff }, { 11233, 0xfff1 }, { 11246, 0xffff }, - { 11262, 0xffff }, { 11278, 0xffff }, { 11294, 0xffff }, { 11310, 0xe447 }, - { 11318, 0xffff }, { 11334, 0xffff }, { 11350, 0xffff }, { 11366, 0x47ff }, - /* 0x6400 */ - { 11378, 0xffc8 }, { 11389, 0xffff }, { 11405, 0xffff }, { 11421, 0xffff }, - { 11437, 0xfacb }, { 11448, 0xffff }, { 11464, 0xffff }, { 11480, 0xffff }, - { 11496, 0xffef }, { 11511, 0xffff }, { 11527, 0xffff }, { 11543, 0xfa5f }, - { 11555, 0xffff }, { 11571, 0x9fff }, { 11585, 0xffff }, { 11601, 0xffff }, - /* 0x6500 */ - { 11617, 0xffff }, { 11633, 0xfffb }, { 11648, 0xffff }, { 11664, 0xffff }, - { 11680, 0xffff }, { 11696, 0xf7ff }, { 11711, 0xfdff }, { 11726, 0x9fff }, - { 11740, 0x7fbf }, { 11754, 0xfff7 }, { 11769, 0xfdff }, { 11784, 0xffff }, - { 11800, 0xfffe }, { 11815, 0xffdf }, { 11830, 0xffff }, { 11846, 0xfe7f }, - /* 0x6600 */ - { 11860, 0xffff }, { 11876, 0xffff }, { 11892, 0xffff }, { 11908, 0x1fff }, - { 11921, 0xffff }, { 11937, 0xff87 }, { 11949, 0xffff }, { 11965, 0xffff }, - { 11981, 0xfff3 }, { 11995, 0xffff }, { 12011, 0xff7f }, { 12026, 0xffff }, - { 12042, 0xffff }, { 12058, 0xffff }, { 12074, 0xffff }, { 12090, 0xd7ff }, - /* 0x6700 */ - { 12104, 0xffff }, { 12120, 0xffff }, { 12136, 0xfdff }, { 12151, 0xfffe }, - { 12166, 0xfff5 }, { 12180, 0xffff }, { 12196, 0xfc67 }, { 12207, 0xffff }, - { 12223, 0xffff }, { 12239, 0xffff }, { 12255, 0xd05e }, { 12263, 0xffff }, - { 12279, 0xffff }, { 12295, 0xffff }, { 12311, 0xffff }, { 12327, 0xdfff }, - /* 0x6800 */ - { 12342, 0x0073 }, { 12347, 0xffff }, { 12363, 0xffff }, { 12379, 0xffff }, - { 12395, 0xffff }, { 12411, 0x47ff }, { 12423, 0xf800 }, { 12428, 0xffff }, - { 12444, 0xdfff }, { 12459, 0xffff }, { 12475, 0xffff }, { 12491, 0x23ff }, - { 12502, 0xfffa }, { 12516, 0xffff }, { 12532, 0xffff }, { 12548, 0xffff }, - /* 0x6900 */ - { 12564, 0xffff }, { 12580, 0x59ff }, { 12592, 0xdea0 }, { 12600, 0xffff }, - { 12616, 0xffff }, { 12632, 0xffff }, { 12648, 0xffff }, { 12664, 0xbfff }, - { 12679, 0xf46d }, { 12689, 0xffff }, { 12705, 0xffff }, { 12721, 0xffff }, - { 12737, 0xffff }, { 12753, 0x03ff }, { 12763, 0xfffe }, { 12778, 0xffff }, - /* 0x6a00 */ - { 12794, 0xffff }, { 12810, 0xffff }, { 12826, 0x3fff }, { 12840, 0xfffc }, - { 12854, 0xffff }, { 12870, 0xffff }, { 12886, 0xffff }, { 12902, 0xe5c7 }, - { 12912, 0xffff }, { 12928, 0xffff }, { 12944, 0xfdff }, { 12959, 0xffff }, - { 12975, 0xfdff }, { 12990, 0xffff }, { 13006, 0xffef }, { 13021, 0xff7f }, - /* 0x6b00 */ - { 13036, 0xffdf }, { 13051, 0x7fff }, { 13066, 0xffff }, { 13082, 0xffff }, - { 13098, 0xffff }, { 13114, 0xffff }, { 13130, 0xffff }, { 13146, 0xefff }, - { 13161, 0xff7f }, { 13176, 0xfbf3 }, { 13189, 0xffff }, { 13205, 0xfffd }, - { 13220, 0xfffb }, { 13235, 0x7ddf }, { 13248, 0xbfff }, { 13263, 0xffff }, - /* 0x6c00 */ - { 13279, 0xbf7f }, { 13293, 0xff7f }, { 13308, 0xfdfb }, { 13322, 0xdbdf }, - { 13335, 0xfe7f }, { 13349, 0xffff }, { 13365, 0xffef }, { 13380, 0xffff }, - { 13396, 0xffff }, { 13412, 0xffff }, { 13428, 0xfc0f }, { 13438, 0xffff }, - { 13454, 0xffff }, { 13470, 0xffff }, { 13486, 0xffff }, { 13502, 0x823f }, - /* 0x6d00 */ - { 13510, 0xffff }, { 13526, 0xffff }, { 13542, 0xffff }, { 13558, 0xffff }, - { 13574, 0x003f }, { 13580, 0xffc0 }, { 13590, 0xffff }, { 13606, 0xffff }, - { 13622, 0xffff }, { 13638, 0x0fff }, { 13650, 0xfc20 }, { 13657, 0xffff }, - { 13673, 0xffff }, { 13689, 0xffff }, { 13705, 0xffff }, { 13721, 0xffff }, - /* 0x6e00 */ - { 13737, 0x9fff }, { 13751, 0xffa4 }, { 13762, 0xffff }, { 13778, 0xffff }, - { 13794, 0xffff }, { 13810, 0xffff }, { 13826, 0xffff }, { 13842, 0x7fff }, - { 13857, 0xef55 }, { 13868, 0xffff }, { 13884, 0xffff }, { 13900, 0xffff }, - { 13916, 0xffff }, { 13932, 0x3fff }, { 13946, 0xfb48 }, { 13955, 0xffff }, - /* 0x6f00 */ - { 13971, 0xffff }, { 13987, 0xffff }, { 14003, 0xffff }, { 14019, 0xffff }, - { 14035, 0xd77f }, { 14048, 0xffff }, { 14064, 0xffff }, { 14080, 0xffff }, - { 14096, 0xffff }, { 14112, 0xe7ff }, { 14126, 0xffff }, { 14142, 0xffff }, - { 14158, 0xffff }, { 14174, 0xfff9 }, { 14188, 0xffff }, { 14204, 0xfdff }, - /* 0x7000 */ - { 14219, 0xffff }, { 14235, 0xffff }, { 14251, 0xffff }, { 14267, 0xffff }, - { 14283, 0x3fff }, { 14297, 0xfffe }, { 14312, 0xdfff }, { 14327, 0xffff }, - { 14343, 0xfffe }, { 14358, 0x8fff }, { 14371, 0xffff }, { 14387, 0xcfff }, - { 14401, 0xfff1 }, { 14414, 0xffff }, { 14430, 0xc43f }, { 14439, 0xffff }, - /* 0x7100 */ - { 14455, 0xffff }, { 14471, 0xfe8f }, { 14483, 0xffff }, { 14499, 0xafff }, - { 14513, 0xfffe }, { 14528, 0xffdf }, { 14543, 0xffff }, { 14559, 0xfff7 }, - { 14574, 0xffff }, { 14590, 0xffff }, { 14606, 0xffff }, { 14622, 0xffff }, - { 14638, 0xffff }, { 14654, 0xffff }, { 14670, 0xffff }, { 14686, 0xff3f }, - /* 0x7200 */ - { 14700, 0xffff }, { 14716, 0xffff }, { 14732, 0xffff }, { 14748, 0xff75 }, - { 14761, 0xdfff }, { 14776, 0xefff }, { 14791, 0xffff }, { 14807, 0xffdf }, - { 14822, 0xfbff }, { 14837, 0xffff }, { 14853, 0xfffe }, { 14868, 0xfe7f }, - { 14882, 0xfeff }, { 14897, 0xbfff }, { 14912, 0x3fff }, { 14926, 0xfff8 }, - /* 0x7300 */ - { 14939, 0xfff7 }, { 14954, 0x7fff }, { 14969, 0xfffc }, { 14983, 0xfdff }, - { 14998, 0xffff }, { 15014, 0xffff }, { 15030, 0xdfe7 }, { 15043, 0xffff }, - { 15059, 0xffff }, { 15075, 0xf1ff }, { 15088, 0xbfff }, { 15103, 0xfffc }, - { 15117, 0xffff }, { 15133, 0xfffd }, { 15148, 0xffff }, { 15164, 0xfff8 }, - /* 0x7400 */ - { 15177, 0x3fff }, { 15191, 0xfffc }, { 15205, 0xffff }, { 15221, 0xff7f }, - { 15236, 0xffff }, { 15252, 0xffff }, { 15268, 0xffff }, { 15284, 0xff7f }, - { 15299, 0xbfff }, { 15314, 0xffff }, { 15330, 0xffff }, { 15346, 0xffff }, - { 15362, 0xffff }, { 15378, 0xfffb }, { 15393, 0xff7f }, { 15408, 0xeff8 }, - /* 0x7500 */ - { 15420, 0xffdf }, { 15435, 0xfdff }, { 15450, 0xffff }, { 15466, 0xefcf }, - { 15479, 0xffdf }, { 15494, 0xfffb }, { 15509, 0xfdfe }, { 15523, 0xffe7 }, - { 15537, 0xdffb }, { 15551, 0x7f3f }, { 15564, 0x0ffc }, { 15574, 0xffff }, - { 15590, 0xfcff }, { 15604, 0xffbf }, { 15619, 0xf0ff }, { 15631, 0xffff }, - /* 0x7600 */ - { 15647, 0xff8f }, { 15660, 0xfe7f }, { 15674, 0xf3ff }, { 15688, 0x3fff }, - { 15702, 0xdfff }, { 15717, 0x9fff }, { 15731, 0xf7b7 }, { 15744, 0xfbff }, - { 15759, 0xffff }, { 15775, 0xfffd }, { 15790, 0xffff }, { 15806, 0xfff9 }, - { 15820, 0x7fff }, { 15835, 0xfffc }, { 15849, 0xffff }, { 15865, 0xffff }, - /* 0x7700 */ - { 15881, 0xcfff }, { 15895, 0xffff }, { 15911, 0xefff }, { 15926, 0xffff }, - { 15942, 0xffff }, { 15958, 0xfffc }, { 15972, 0xffff }, { 15988, 0xffff }, - { 16004, 0xffbf }, { 16019, 0xfff3 }, { 16033, 0xffff }, { 16049, 0xffff }, - { 16065, 0xf6ff }, { 16079, 0xffff }, { 16095, 0xf7ff }, { 16110, 0x7fff }, - /* 0x7800 */ - { 16125, 0xfffc }, { 16139, 0xeb3f }, { 16151, 0xffff }, { 16167, 0x21ff }, - { 16177, 0xfffc }, { 16191, 0xf11f }, { 16201, 0xffff }, { 16217, 0xff43 }, - { 16228, 0xffff }, { 16244, 0xf7ff }, { 16259, 0xffff }, { 16275, 0xff9f }, - { 16289, 0xffff }, { 16305, 0xfd7f }, { 16319, 0xffff }, { 16335, 0xffdf }, - /* 0x7900 */ - { 16350, 0xfff7 }, { 16365, 0xffbf }, { 16380, 0xffff }, { 16396, 0xf7e7 }, - { 16409, 0xbff7 }, { 16423, 0xffff }, { 16439, 0x7fff }, { 16454, 0xfeff }, - { 16469, 0xffdf }, { 16484, 0xffff }, { 16500, 0xffff }, { 16516, 0xffff }, - { 16532, 0xffff }, { 16548, 0xffff }, { 16564, 0x7fff }, { 16579, 0x9fef }, - /* 0x7a00 */ - { 16592, 0xffff }, { 16608, 0xffff }, { 16624, 0xffe7 }, { 16638, 0xffff }, - { 16654, 0xfff7 }, { 16669, 0x9ff9 }, { 16681, 0xfff7 }, { 16696, 0xff7f }, - { 16711, 0x9fff }, { 16725, 0xcfff }, { 16739, 0xdf9f }, { 16752, 0xffff }, - { 16768, 0xfff7 }, { 16783, 0xbfbf }, { 16797, 0xffff }, { 16813, 0xffff }, - /* 0x7b00 */ - { 16829, 0xff73 }, { 16842, 0xffdf }, { 16857, 0xffff }, { 16873, 0xabff }, - { 16886, 0xffff }, { 16902, 0xc3ff }, { 16914, 0xffff }, { 16930, 0x0bff }, - { 16941, 0xfffe }, { 16956, 0xfbff }, { 16971, 0xf03f }, { 16981, 0xffff }, - { 16997, 0x7fff }, { 17012, 0xfff1 }, { 17025, 0x3fff }, { 17039, 0xffff }, - /* 0x7c00 */ - { 17055, 0xffff }, { 17071, 0xff37 }, { 17084, 0xffff }, { 17100, 0xfffd }, - { 17115, 0xfffd }, { 17130, 0xffff }, { 17146, 0xfffd }, { 17161, 0xffff }, - { 17177, 0x7ffb }, { 17191, 0xfffe }, { 17206, 0xdbff }, { 17220, 0xffff }, - { 17236, 0xffff }, { 17252, 0xfeff }, { 17267, 0xffff }, { 17283, 0xfdff }, - /* 0x7d00 */ - { 17298, 0xffff }, { 17314, 0xffff }, { 17330, 0xff3f }, { 17344, 0xffff }, - { 17360, 0xffff }, { 17376, 0xffff }, { 17392, 0xffff }, { 17408, 0xff7f }, - { 17423, 0xffff }, { 17439, 0xf3ff }, { 17453, 0xffff }, { 17469, 0xffff }, - { 17485, 0xffff }, { 17501, 0xffcf }, { 17515, 0xffff }, { 17531, 0xffff }, - /* 0x7e00 */ - { 17547, 0xff9f }, { 17561, 0xffff }, { 17577, 0xfeff }, { 17592, 0xffff }, - { 17608, 0xf3ff }, { 17622, 0xffff }, { 17638, 0xff7f }, { 17653, 0xffff }, - { 17669, 0xfff7 }, { 17684, 0x7ffe }, { 17698, 0x0000 }, { 17698, 0x0000 }, - { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0x0000 }, - /* 0x7f00 */ - { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0x0000 }, { 17698, 0xffc0 }, - { 17708, 0xfdfb }, { 17722, 0xfbb7 }, { 17735, 0xffff }, { 17751, 0xffef }, - { 17766, 0xfffd }, { 17781, 0x7fff }, { 17796, 0xfbff }, { 17811, 0xffff }, - { 17827, 0xffff }, { 17843, 0xf8ff }, { 17856, 0xffff }, { 17872, 0xffff }, - /* 0x8000 */ - { 17888, 0xffff }, { 17904, 0xffff }, { 17920, 0xff7b }, { 17934, 0xffff }, - { 17950, 0xc7fb }, { 17962, 0xffef }, { 17977, 0xfdfb }, { 17991, 0xffff }, - { 18007, 0xfff6 }, { 18021, 0xffff }, { 18037, 0xfffe }, { 18052, 0x0fff }, - { 18064, 0xfffc }, { 18078, 0xffff }, { 18094, 0xe07f }, { 18104, 0xffff }, - /* 0x8100 */ - { 18120, 0x07ff }, { 18131, 0xfff0 }, { 18143, 0xffff }, { 18159, 0xfe13 }, - { 18169, 0xffff }, { 18185, 0xf93f }, { 18197, 0xffff }, { 18213, 0xa7ff }, - { 18226, 0xffff }, { 18242, 0xfffd }, { 18257, 0xffcf }, { 18271, 0xffbf }, - { 18286, 0xffff }, { 18302, 0xeff7 }, { 18316, 0xffff }, { 18332, 0xffff }, - /* 0x8200 */ - { 18348, 0xffbf }, { 18363, 0xff7f }, { 18378, 0xbff7 }, { 18392, 0xb7fc }, - { 18404, 0xdfff }, { 18419, 0xdfef }, { 18433, 0xfffe }, { 18448, 0xfbfe }, - { 18462, 0xfefb }, { 18476, 0xff7f }, { 18491, 0xffff }, { 18507, 0xffff }, - { 18523, 0x063f }, { 18531, 0xffff }, { 18547, 0xffff }, { 18563, 0xffff }, - /* 0x8300 */ - { 18579, 0x7fff }, { 18594, 0xffc5 }, { 18606, 0xffff }, { 18622, 0xffff }, - { 18638, 0xffff }, { 18654, 0x01ff }, { 18663, 0x000c }, { 18665, 0xffff }, - { 18681, 0xffff }, { 18697, 0xffff }, { 18713, 0xffff }, { 18729, 0xe281 }, - { 18735, 0xffff }, { 18751, 0xffff }, { 18767, 0xffff }, { 18783, 0xffff }, - /* 0x8400 */ - { 18799, 0xffff }, { 18815, 0xc9ff }, { 18827, 0xfe0a }, { 18836, 0xffff }, - { 18852, 0xffff }, { 18868, 0xffff }, { 18884, 0xffff }, { 18900, 0xffff }, - { 18916, 0xe15f }, { 18926, 0xffff }, { 18942, 0xffff }, { 18958, 0xffff }, - { 18974, 0xffff }, { 18990, 0x4dff }, { 19002, 0xff96 }, { 19014, 0xffff }, - /* 0x8500 */ - { 19030, 0xffff }, { 19046, 0xffff }, { 19062, 0xffff }, { 19078, 0xe93f }, - { 19089, 0xffff }, { 19105, 0xffff }, { 19121, 0xffff }, { 19137, 0xffeb }, - { 19151, 0xffff }, { 19167, 0xffff }, { 19183, 0x9fff }, { 19197, 0xffff }, - { 19213, 0xffff }, { 19229, 0xfff7 }, { 19244, 0xffff }, { 19260, 0xffff }, - /* 0x8600 */ - { 19276, 0xffff }, { 19292, 0xffeb }, { 19306, 0xffff }, { 19322, 0xfffe }, - { 19337, 0x7fef }, { 19351, 0xffff }, { 19367, 0xffff }, { 19383, 0x7fff }, - { 19398, 0xfff0 }, { 19410, 0xffff }, { 19426, 0xe7ff }, { 19440, 0xffff }, - { 19456, 0x9fff }, { 19470, 0xffff }, { 19486, 0x7fff }, { 19501, 0xffe0 }, - /* 0x8700 */ - { 19512, 0xffff }, { 19528, 0xff7f }, { 19543, 0xffff }, { 19559, 0xffff }, - { 19575, 0xf4ff }, { 19588, 0xffff }, { 19604, 0xffff }, { 19620, 0x3fff }, - { 19634, 0xfffe }, { 19649, 0xffff }, { 19665, 0xfe3f }, { 19678, 0xffff }, - { 19694, 0x7fff }, { 19709, 0xfffe }, { 19724, 0xffff }, { 19740, 0xffff }, - /* 0x8800 */ - { 19756, 0xffff }, { 19772, 0xffff }, { 19788, 0xffff }, { 19804, 0xffff }, - { 19820, 0xffff }, { 19836, 0xffef }, { 19851, 0xefcf }, { 19864, 0xffff }, - { 19880, 0xff9f }, { 19894, 0xffff }, { 19910, 0x1fff }, { 19923, 0xfffe }, - { 19938, 0xfe07 }, { 19948, 0xffff }, { 19964, 0xffc3 }, { 19976, 0xffff }, - /* 0x8900 */ - { 19992, 0xffef }, { 20007, 0xcfff }, { 20021, 0xffff }, { 20037, 0xffef }, - { 20052, 0xff5f }, { 20066, 0xffdf }, { 20081, 0xfeff }, { 20096, 0xffff }, - { 20112, 0xfffe }, { 20127, 0xffff }, { 20143, 0xffff }, { 20159, 0xffff }, - { 20175, 0x0001 }, { 20176, 0xbffc }, { 20189, 0x7fff }, { 20204, 0xffff }, - /* 0x8a00 */ - { 20220, 0xfffd }, { 20235, 0xfbff }, { 20250, 0xffff }, { 20266, 0xfff7 }, - { 20281, 0xffff }, { 20297, 0x7fff }, { 20312, 0xffff }, { 20328, 0xffff }, - { 20344, 0xf9ff }, { 20358, 0xffff }, { 20374, 0xbfff }, { 20389, 0xffff }, - { 20405, 0xffff }, { 20421, 0xfbff }, { 20436, 0xffff }, { 20452, 0xffff }, - /* 0x8b00 */ - { 20468, 0xffff }, { 20484, 0xffff }, { 20500, 0xfffd }, { 20515, 0xffff }, - { 20531, 0xffff }, { 20547, 0xf7ff }, { 20562, 0xffff }, { 20578, 0xfffb }, - { 20593, 0x7fff }, { 20608, 0xffff }, { 20624, 0x0000 }, { 20624, 0x0000 }, - { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0x0000 }, - /* 0x8c00 */ - { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0x0000 }, { 20624, 0xff80 }, - { 20633, 0xffff }, { 20649, 0xffff }, { 20665, 0xbfff }, { 20680, 0xffff }, - { 20696, 0xffff }, { 20712, 0xffff }, { 20728, 0xffff }, { 20744, 0xffff }, - { 20760, 0xbfff }, { 20775, 0xffff }, { 20791, 0xffff }, { 20807, 0xffff }, - /* 0x8d00 */ - { 20823, 0xffff }, { 20839, 0x1fff }, { 20852, 0x0000 }, { 20852, 0x0000 }, - { 20852, 0x0000 }, { 20852, 0x0000 }, { 20852, 0xfbf0 }, { 20863, 0xffdf }, - { 20878, 0xffff }, { 20894, 0xffff }, { 20910, 0xffff }, { 20926, 0xfefd }, - { 20940, 0xffef }, { 20955, 0xbfff }, { 20970, 0xffdf }, { 20985, 0xf41f }, - /* 0x8e00 */ - { 20995, 0xafff }, { 21009, 0xffff }, { 21025, 0x4fff }, { 21038, 0xffff }, - { 21054, 0xffff }, { 21070, 0xfffb }, { 21085, 0xffff }, { 21101, 0x1fff }, - { 21114, 0x7ffe }, { 21128, 0xe7ff }, { 21142, 0xffff }, { 21158, 0xf7df }, - { 21172, 0xfedf }, { 21186, 0xffff }, { 21202, 0xfff3 }, { 21216, 0xffff }, - /* 0x8f00 */ - { 21232, 0xefff }, { 21247, 0xffff }, { 21263, 0xffff }, { 21279, 0xffff }, - { 21295, 0xefff }, { 21310, 0xffff }, { 21326, 0x003f }, { 21332, 0x0000 }, - { 21332, 0x0000 }, { 21332, 0xf800 }, { 21337, 0xf5ff }, { 21351, 0xdbff }, - { 21365, 0xffff }, { 21381, 0x93ff }, { 21393, 0xffff }, { 21409, 0xfff3 }, - /* 0x9000 */ - { 21423, 0xfbff }, { 21438, 0xffff }, { 21454, 0xff3f }, { 21468, 0xfdff }, - { 21483, 0xffff }, { 21499, 0xff3f }, { 21513, 0xffdf }, { 21528, 0xffff }, - { 21544, 0xffff }, { 21560, 0xdfff }, { 21575, 0xefff }, { 21590, 0xf3ff }, - { 21604, 0x7fff }, { 21619, 0xfff4 }, { 21632, 0xff3f }, { 21646, 0xfeff }, - /* 0x9100 */ - { 21661, 0xffff }, { 21677, 0xffff }, { 21693, 0xffff }, { 21709, 0xffff }, - { 21725, 0xfffb }, { 21740, 0x97ff }, { 21753, 0xffbf }, { 21768, 0x1ffd }, - { 21780, 0xffff }, { 21796, 0xff7f }, { 21811, 0xffef }, { 21826, 0xfeff }, - { 21841, 0xfaff }, { 21855, 0xfffb }, { 21870, 0xfffd }, { 21885, 0xe3ff }, - /* 0x9200 */ - { 21898, 0xffff }, { 21914, 0xffff }, { 21930, 0xe8ff }, { 21942, 0xffff }, - { 21958, 0xffff }, { 21974, 0xffff }, { 21990, 0xffff }, { 22006, 0xfffd }, - { 22021, 0xffff }, { 22037, 0xffff }, { 22053, 0xffff }, { 22069, 0xffff }, - { 22085, 0xffff }, { 22101, 0xffff }, { 22117, 0xffff }, { 22133, 0xffff }, - /* 0x9300 */ - { 22149, 0xffff }, { 22165, 0xffff }, { 22181, 0xffff }, { 22197, 0xbfff }, - { 22212, 0xffed }, { 22226, 0xffff }, { 22242, 0xffff }, { 22258, 0xffff }, - { 22274, 0xffff }, { 22290, 0xffff }, { 22306, 0xffff }, { 22322, 0xfbff }, - { 22337, 0xffff }, { 22353, 0xffff }, { 22369, 0xffff }, { 22385, 0xfffe }, - /* 0x9400 */ - { 22400, 0xffff }, { 22416, 0xffff }, { 22432, 0xffbd }, { 22446, 0xffff }, - { 22462, 0xfffd }, { 22477, 0xfff7 }, { 22492, 0xffff }, { 22508, 0xffff }, - { 22524, 0x001f }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, - { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, - /* 0x9500 */ - { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, - { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x0000 }, { 22529, 0x7f80 }, - { 22537, 0xfbff }, { 22552, 0xffff }, { 22568, 0xfbff }, { 22583, 0xffff }, - { 22599, 0x7fff }, { 22614, 0xffff }, { 22630, 0x00ff }, { 22638, 0x0020 }, - /* 0x9600 */ - { 22639, 0x0000 }, { 22639, 0x7000 }, { 22642, 0xffff }, { 22658, 0xff9f }, - { 22672, 0xfc1f }, { 22683, 0xffff }, { 22699, 0xfc1f }, { 22710, 0xfbff }, - { 22725, 0xffff }, { 22741, 0xfffe }, { 22756, 0xffff }, { 22772, 0xffff }, - { 22788, 0xffff }, { 22804, 0xffff }, { 22820, 0xfffe }, { 22835, 0xbff7 }, - /* 0x9700 */ - { 22849, 0xfffd }, { 22864, 0xffff }, { 22880, 0xdfff }, { 22895, 0xffff }, - { 22911, 0x2fff }, { 22924, 0xffe7 }, { 22938, 0xffdf }, { 22953, 0xfffd }, - { 22968, 0xffbf }, { 22983, 0xfff8 }, { 22996, 0x7fff }, { 23011, 0xffff }, - { 23027, 0xffff }, { 23043, 0xffff }, { 23059, 0xe03f }, { 23068, 0xffff }, - /* 0x9800 */ - { 23084, 0xffff }, { 23100, 0xffff }, { 23116, 0xefff }, { 23131, 0xffff }, - { 23147, 0xffff }, { 23163, 0xffff }, { 23179, 0xffff }, { 23195, 0x001f }, - { 23200, 0x0000 }, { 23200, 0x0000 }, { 23200, 0xfb00 }, { 23207, 0xffef }, - { 23222, 0x3fdf }, { 23235, 0xb800 }, { 23239, 0xbefe }, { 23252, 0xffff }, - /* 0x9900 */ - { 23268, 0x5fff }, { 23282, 0xffff }, { 23298, 0xffff }, { 23314, 0xffff }, - { 23330, 0xffff }, { 23346, 0xffff }, { 23362, 0x0003 }, { 23364, 0x0000 }, - { 23364, 0x0000 }, { 23364, 0xffc0 }, { 23374, 0xffff }, { 23390, 0xffff }, - { 23406, 0xffdf }, { 23421, 0xffff }, { 23437, 0xffff }, { 23453, 0xfffb }, - /* 0x9a00 */ - { 23468, 0xffff }, { 23484, 0xfff3 }, { 23498, 0xfeff }, { 23513, 0xffff }, - { 23529, 0xffff }, { 23545, 0xffff }, { 23561, 0x0fff }, { 23573, 0x0000 }, - { 23573, 0x0000 }, { 23573, 0x0000 }, { 23573, 0xff00 }, { 23581, 0xffff }, - { 23597, 0xe7df }, { 23610, 0xffff }, { 23626, 0xffff }, { 23642, 0xffff }, - /* 0x9b00 */ - { 23658, 0xffff }, { 23674, 0xfff7 }, { 23689, 0xffff }, { 23705, 0xffbf }, - { 23720, 0xff7f }, { 23735, 0xbfff }, { 23750, 0xffff }, { 23766, 0xfeff }, - { 23781, 0xffff }, { 23797, 0xff7f }, { 23812, 0xffff }, { 23828, 0xffeb }, - { 23842, 0xbfff }, { 23857, 0xfffc }, { 23871, 0xffff }, { 23887, 0xffd9 }, - /* 0x9c00 */ - { 23900, 0xffff }, { 23916, 0xf8ff }, { 23929, 0xffff }, { 23945, 0xfffe }, - { 23960, 0xffff }, { 23976, 0xe3ff }, { 23989, 0xf1ff }, { 24002, 0x0ffe }, - { 24013, 0x0000 }, { 24013, 0x0000 }, { 24013, 0x0000 }, { 24013, 0x0000 }, - { 24013, 0x0000 }, { 24013, 0x0000 }, { 24013, 0xffe0 }, { 24024, 0xfffe }, - /* 0x9d00 */ - { 24039, 0xbfff }, { 24054, 0xffff }, { 24070, 0xe7ff }, { 24084, 0xffff }, - { 24100, 0xfebf }, { 24114, 0xffff }, { 24130, 0xffdf }, { 24145, 0xffff }, - { 24161, 0x1fff }, { 24174, 0xffff }, { 24190, 0xf7ff }, { 24205, 0xffff }, - { 24221, 0xffbf }, { 24236, 0xffff }, { 24252, 0xffff }, { 24268, 0xffff }, - /* 0x9e00 */ - { 24284, 0xffff }, { 24300, 0x7fff }, { 24315, 0x0000 }, { 24315, 0x0000 }, - { 24315, 0x0000 }, { 24315, 0x0000 }, { 24315, 0x0000 }, { 24315, 0xbee0 }, - { 24324, 0xffff }, { 24340, 0xffff }, { 24356, 0xffff }, { 24372, 0xf8ff }, - { 24385, 0xfdff }, { 24400, 0xffff }, { 24416, 0xf9fd }, { 24429, 0xffff }, - /* 0x9f00 */ - { 24445, 0xc7ff }, { 24458, 0xffff }, { 24474, 0xfffd }, { 24489, 0xffff }, - { 24505, 0xffff }, { 24521, 0xfffd }, { 24536, 0xfffb }, { 24551, 0x7fff }, - { 24566, 0xe000 }, { 24569, 0x73ff }, { 24582, 0x003f }, -}; -static const Summary16 cns11643_inv_uni2indx_pagefa[3] = { - /* 0xfa00 */ - { 24588, 0x0000 }, { 24588, 0x0000 }, { 24588, 0x0100 }, -}; -static const Summary16 cns11643_inv_uni2indx_pagefe[31] = { - /* 0xfe00 */ - { 24589, 0x0000 }, { 24589, 0x0000 }, { 24589, 0x0000 }, { 24589, 0xffe7 }, - { 24603, 0x7e1f }, { 24614, 0xfef7 }, { 24628, 0x0f7f }, { 24639, 0x0000 }, - { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, - { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, { 24639, 0x0000 }, - /* 0xff00 */ - { 24639, 0xff7a }, { 24652, 0xffff }, { 24668, 0xffff }, { 24684, 0x97ff }, - { 24697, 0xfffe }, { 24712, 0x3fff }, { 24726, 0x0000 }, { 24726, 0x0000 }, - { 24726, 0x0000 }, { 24726, 0x0000 }, { 24726, 0x0000 }, { 24726, 0x0000 }, - { 24726, 0x0000 }, { 24726, 0x0000 }, { 24726, 0x0023 }, -}; -static const Summary16 cns11643_inv_uni2indx_page200[2670] = { - /* 0x20000 */ - { 24729, 0x8bbd }, { 24739, 0x0715 }, { 24745, 0x722f }, { 24754, 0x0860 }, - { 24757, 0x39ca }, { 24765, 0x08ec }, { 24771, 0xeaf6 }, { 24782, 0xe0d7 }, - { 24791, 0xb1fc }, { 24801, 0x5fbc }, { 24812, 0xd33d }, { 24822, 0xf6ff }, - { 24836, 0x8a5c }, { 24843, 0xc377 }, { 24853, 0x24f3 }, { 24861, 0x795f }, - /* 0x20100 */ - { 24872, 0xfff4 }, { 24885, 0xeefe }, { 24898, 0x751f }, { 24908, 0x03b7 }, - { 24916, 0x9fb9 }, { 24927, 0xe3fa }, { 24938, 0xfebf }, { 24952, 0x4071 }, - { 24957, 0xd6ff }, { 24970, 0x3004 }, { 24973, 0xb3f8 }, { 24983, 0x1ff5 }, - { 24994, 0x8ffc }, { 25005, 0xff11 }, { 25015, 0x0fff }, { 25027, 0xc096 }, - /* 0x20200 */ - { 25033, 0xfffb }, { 25048, 0xffe3 }, { 25061, 0xf787 }, { 25072, 0xffff }, - { 25088, 0xfff0 }, { 25100, 0x0977 }, { 25108, 0x7ffe }, { 25122, 0xffce }, - { 25135, 0x1dff }, { 25147, 0x4056 }, { 25152, 0x7ffd }, { 25166, 0x4fff }, - { 25179, 0xfffe }, { 25194, 0x287f }, { 25203, 0xffae }, { 25216, 0xffff }, - /* 0x20300 */ - { 25232, 0xfb81 }, { 25241, 0x119f }, { 25249, 0xfe03 }, { 25258, 0xdeff }, - { 25272, 0xff11 }, { 25282, 0xc17f }, { 25292, 0xdf84 }, { 25301, 0x0fff }, - { 25313, 0xfffc }, { 25327, 0x4fff }, { 25340, 0xd08e }, { 25347, 0xffcf }, - { 25361, 0xf59f }, { 25373, 0x04d7 }, { 25380, 0xff9e }, { 25393, 0x0dd1 }, - /* 0x20400 */ - { 25400, 0x7f41 }, { 25409, 0x8de4 }, { 25417, 0xcdfe }, { 25429, 0xfc6f }, - { 25441, 0xf037 }, { 25450, 0xbf8e }, { 25461, 0xefd0 }, { 25471, 0xeecc }, - { 25481, 0x3d7b }, { 25492, 0xcff9 }, { 25504, 0x2f1f }, { 25514, 0xbf7f }, - { 25528, 0xfb5c }, { 25539, 0xb9ac }, { 25548, 0xecb3 }, { 25558, 0x21db }, - /* 0x20500 */ - { 25566, 0xdfdf }, { 25580, 0xbfed }, { 25593, 0x8fa7 }, { 25603, 0x73fa }, - { 25614, 0x6d5e }, { 25624, 0xed5f }, { 25636, 0xf3fd }, { 25649, 0x2eef }, - { 25660, 0xb433 }, { 25668, 0xd6ff }, { 25681, 0x4acf }, { 25690, 0x3fd6 }, - { 25701, 0x7fff }, { 25716, 0x7fbe }, { 25729, 0xf5e6 }, { 25740, 0xfcfe }, - /* 0x20600 */ - { 25753, 0x7ff1 }, { 25765, 0xf9de }, { 25777, 0xfabf }, { 25790, 0xf5ef }, - { 25803, 0xbfc1 }, { 25813, 0xbf8f }, { 25825, 0xef87 }, { 25836, 0xefef }, - { 25850, 0xe9c7 }, { 25860, 0xefc6 }, { 25871, 0xffea }, { 25884, 0xff9f }, - { 25898, 0xe39f }, { 25909, 0x0fff }, { 25921, 0xffe1 }, { 25933, 0xfbf7 }, - /* 0x20700 */ - { 25947, 0x12c4 }, { 25952, 0xbfff }, { 25967, 0x016f }, { 25974, 0xffff }, - { 25990, 0x3f3f }, { 26002, 0xef06 }, { 26011, 0xe7bf }, { 26024, 0xe002 }, - { 26028, 0xffff }, { 26044, 0x311f }, { 26052, 0xfff0 }, { 26064, 0xf88f }, - { 26074, 0xfffe }, { 26089, 0x9fff }, { 26103, 0xffc0 }, { 26113, 0xfc2b }, - /* 0x20800 */ - { 26123, 0xe9ff }, { 26136, 0xf88d }, { 26145, 0xdccf }, { 26156, 0xfbdf }, - { 26170, 0x31de }, { 26179, 0xc3fe }, { 26190, 0xff47 }, { 26202, 0xfb37 }, - { 26214, 0xcff7 }, { 26227, 0x03fc }, { 26235, 0xa1ff }, { 26246, 0x9fdf }, - { 26259, 0xfffb }, { 26274, 0xf7de }, { 26287, 0xcfff }, { 26301, 0xffbb }, - /* 0x20900 */ - { 26315, 0xcfbb }, { 26327, 0xdfbf }, { 26341, 0xfd3f }, { 26354, 0xd77b }, - { 26366, 0xde3f }, { 26378, 0x7e4f }, { 26389, 0xfe6e }, { 26401, 0x6dff }, - { 26414, 0x31ed }, { 26423, 0xff7e }, { 26437, 0x3c7f }, { 26448, 0x70f3 }, - { 26457, 0xc517 }, { 26465, 0xdf9b }, { 26477, 0xff7f }, { 26492, 0x3ffc }, - /* 0x20a00 */ - { 26504, 0xebef }, { 26517, 0xff5d }, { 26530, 0xf0ad }, { 26539, 0x2ff7 }, - { 26551, 0xfc9f }, { 26563, 0xffc6 }, { 26575, 0xffdd }, { 26589, 0xff1f }, - { 26602, 0xffd0 }, { 26613, 0xff7e }, { 26627, 0xec75 }, { 26637, 0xfe29 }, - { 26647, 0x5387 }, { 26655, 0xc6bd }, { 26665, 0x1ff5 }, { 26676, 0x9e1b }, - /* 0x20b00 */ - { 26685, 0xc5f7 }, { 26696, 0xfd8b }, { 26707, 0xffee }, { 26721, 0xbffe }, - { 26735, 0xfebf }, { 26749, 0xffff }, { 26765, 0xffeb }, { 26779, 0xd97f }, - { 26791, 0xeffe }, { 26805, 0x7fff }, { 26820, 0xfdff }, { 26835, 0x0fbf }, - { 26846, 0xff46 }, { 26857, 0x7fff }, { 26872, 0x59fa }, { 26882, 0x0068 }, - /* 0x20c00 */ - { 26885, 0xff30 }, { 26895, 0x7fff }, { 26910, 0xfffe }, { 26925, 0x8165 }, - { 26931, 0x4001 }, { 26933, 0xffff }, { 26949, 0xfbff }, { 26964, 0xfe2f }, - { 26976, 0xdbff }, { 26990, 0x0089 }, { 26993, 0xee00 }, { 26999, 0xffff }, - { 27015, 0x7fff }, { 27030, 0xf800 }, { 27035, 0xcfff }, { 27049, 0x8f93 }, - /* 0x20d00 */ - { 27058, 0x0008 }, { 27059, 0x0000 }, { 27059, 0xffce }, { 27072, 0xffff }, - { 27088, 0x040f }, { 27093, 0xfffe }, { 27108, 0x0427 }, { 27113, 0x02a5 }, - { 27118, 0x0000 }, { 27118, 0x0000 }, { 27118, 0x7f80 }, { 27126, 0xfdbf }, - { 27140, 0xffff }, { 27156, 0xfffe }, { 27171, 0xff80 }, { 27180, 0x79ff }, - /* 0x20e00 */ - { 27193, 0x3011 }, { 27197, 0x2040 }, { 27199, 0x6000 }, { 27201, 0x8fef }, - { 27213, 0xffff }, { 27229, 0xdfff }, { 27244, 0x4fff }, { 27257, 0x8000 }, - { 27258, 0xffff }, { 27274, 0x0008 }, { 27275, 0x0014 }, { 27277, 0x0000 }, - { 27277, 0xf000 }, { 27281, 0xfff3 }, { 27295, 0xffff }, { 27311, 0xc043 }, - /* 0x20f00 */ - { 27316, 0xffff }, { 27332, 0x557f }, { 27343, 0x020c }, { 27346, 0x0000 }, - { 27346, 0x0000 }, { 27346, 0x3000 }, { 27348, 0xfffd }, { 27363, 0xff7f }, - { 27378, 0x1f7f }, { 27390, 0xffc0 }, { 27400, 0x84e3 }, { 27407, 0x0001 }, - { 27408, 0xffe0 }, { 27419, 0xffff }, { 27435, 0x40ff }, { 27444, 0xfc00 }, - /* 0x21000 */ - { 27450, 0xffff }, { 27466, 0x000d }, { 27469, 0x0000 }, { 27469, 0xbe00 }, - { 27475, 0xfbfe }, { 27489, 0x80ef }, { 27497, 0x3b3f }, { 27508, 0x0000 }, - { 27508, 0x8c00 }, { 27511, 0xffff }, { 27527, 0x13ff }, { 27538, 0x7fc0 }, - { 27547, 0x0000 }, { 27547, 0xa000 }, { 27549, 0xffff }, { 27565, 0x0084 }, - /* 0x21100 */ - { 27567, 0x077c }, { 27575, 0x7ffe }, { 27589, 0x0009 }, { 27591, 0x8ffe }, - { 27603, 0x0003 }, { 27605, 0xf790 }, { 27614, 0x600a }, { 27618, 0xff47 }, - { 27630, 0xce68 }, { 27638, 0x180f }, { 27644, 0x238f }, { 27652, 0xdffd }, - { 27666, 0x7fda }, { 27678, 0x09ff }, { 27688, 0x041f }, { 27694, 0xf2ff }, - /* 0x21200 */ - { 27707, 0xfe9d }, { 27719, 0xbff2 }, { 27731, 0x743c }, { 27739, 0xd38a }, - { 27747, 0x3416 }, { 27753, 0xaf04 }, { 27760, 0x10ff }, { 27769, 0x10ee }, - { 27776, 0xffff }, { 27792, 0x5ff8 }, { 27803, 0x11fb }, { 27812, 0x7ff0 }, - { 27823, 0xfff0 }, { 27835, 0x797f }, { 27847, 0xff89 }, { 27858, 0x01ff }, - /* 0x21300 */ - { 27867, 0xffc2 }, { 27878, 0x97ed }, { 27889, 0xfef0 }, { 27900, 0xfbdf }, - { 27914, 0x87ff }, { 27926, 0x003a }, { 27930, 0xfff3 }, { 27944, 0xfcff }, - { 27958, 0x40ff }, { 27967, 0x04e1 }, { 27972, 0xdf80 }, { 27980, 0xfffb }, - { 27995, 0xffaf }, { 28009, 0x00bf }, { 28016, 0xee00 }, { 28022, 0x81ff }, - /* 0x21400 */ - { 28032, 0x47ff }, { 28044, 0xe83b }, { 28053, 0x2f7f }, { 28065, 0x5fff }, - { 28079, 0x8784 }, { 28085, 0xdf16 }, { 28095, 0x395f }, { 28105, 0x07c0 }, - { 28110, 0x7fc4 }, { 28120, 0xfe4d }, { 28131, 0x811b }, { 28137, 0x3fbf }, - { 28150, 0x3600 }, { 28154, 0x0ebf }, { 28164, 0x1ed8 }, { 28172, 0xbf7f }, - /* 0x21500 */ - { 28186, 0x8f96 }, { 28195, 0xefa0 }, { 28204, 0xb1f7 }, { 28215, 0x7ee1 }, - { 28225, 0x7c60 }, { 28232, 0xff6e }, { 28245, 0xdfdf }, { 28259, 0xffde }, - { 28273, 0xad53 }, { 28282, 0xf7be }, { 28295, 0xfe3c }, { 28306, 0xe3dd }, - { 28317, 0x114a }, { 28322, 0xf33c }, { 28332, 0xff6f }, { 28346, 0xff91 }, - /* 0x21600 */ - { 28357, 0xfa77 }, { 28369, 0xa7f5 }, { 28380, 0x0a7d }, { 28388, 0xbffd }, - { 28402, 0xf792 }, { 28412, 0x35e1 }, { 28420, 0xff05 }, { 28430, 0xffc7 }, - { 28443, 0x9fe3 }, { 28454, 0x59c3 }, { 28462, 0x8d39 }, { 28470, 0xff3f }, - { 28484, 0x6ff8 }, { 28495, 0xffed }, { 28509, 0xfe27 }, { 28520, 0x7e9f }, - /* 0x21700 */ - { 28532, 0xffff }, { 28548, 0xbbfe }, { 28561, 0xffeb }, { 28575, 0xe17f }, - { 28586, 0xb4ff }, { 28598, 0xff82 }, { 28608, 0x0fff }, { 28620, 0xffe4 }, - { 28632, 0x5fff }, { 28646, 0xff1b }, { 28658, 0xffdf }, { 28673, 0xffc1 }, - { 28684, 0x47ff }, { 28696, 0xfe72 }, { 28707, 0xffff }, { 28723, 0xe09f }, - /* 0x21800 */ - { 28732, 0x493f }, { 28741, 0xfebf }, { 28755, 0xf8f5 }, { 28766, 0x21ff }, - { 28776, 0xbf2c }, { 28786, 0xbeff }, { 28800, 0xff21 }, { 28810, 0xf2ff }, - { 28823, 0x2ffc }, { 28834, 0x3ffe }, { 28847, 0x7ff8 }, { 28859, 0xc1b6 }, - { 28867, 0xfbef }, { 28881, 0xfc37 }, { 28892, 0xee12 }, { 28900, 0xf5bf }, - /* 0x21900 */ - { 28913, 0xb9c7 }, { 28923, 0x3fe4 }, { 28933, 0xdf7e }, { 28946, 0xd6d7 }, - { 28957, 0xe7ef }, { 28970, 0x79ff }, { 28983, 0xff4e }, { 28995, 0x6ec7 }, - { 29005, 0xdaf8 }, { 29015, 0xe5ae }, { 29025, 0xa23f }, { 29034, 0xf321 }, - { 29042, 0xf9fc }, { 29054, 0xf7c2 }, { 29064, 0xfe0d }, { 29074, 0x0df3 }, - /* 0x21a00 */ - { 29083, 0xe7ff }, { 29097, 0xd01b }, { 29104, 0xfffd }, { 29119, 0xf853 }, - { 29128, 0xc3ff }, { 29140, 0xca3f }, { 29150, 0xf7ff }, { 29165, 0xfc1f }, - { 29176, 0xcf7f }, { 29189, 0x8dd9 }, { 29198, 0x7fbf }, { 29212, 0xf5d0 }, - { 29221, 0x7fff }, { 29236, 0xfdfc }, { 29249, 0xf60d }, { 29258, 0xf88f }, - /* 0x21b00 */ - { 29268, 0xb4f9 }, { 29278, 0xaf5e }, { 29289, 0xd78d }, { 29299, 0xee1b }, - { 29309, 0x7d66 }, { 29319, 0xe66f }, { 29330, 0x8f23 }, { 29338, 0xe238 }, - { 29345, 0xc00f }, { 29351, 0xe221 }, { 29357, 0x00c2 }, { 29360, 0x8813 }, - { 29365, 0xe67c }, { 29375, 0xfb55 }, { 29386, 0xf7ef }, { 29400, 0x1dfc }, - /* 0x21c00 */ - { 29410, 0x7e9c }, { 29420, 0x33f7 }, { 29431, 0xfe7d }, { 29444, 0xf5c1 }, - { 29453, 0xf81f }, { 29463, 0x2fbf }, { 29475, 0x7dff }, { 29489, 0xfe97 }, - { 29501, 0x5fff }, { 29515, 0xfffe }, { 29530, 0xf7cb }, { 29542, 0x4f7f }, - { 29554, 0xa7f4 }, { 29564, 0xc1fb }, { 29574, 0x39c3 }, { 29582, 0xc196 }, - /* 0x21d00 */ - { 29589, 0xf977 }, { 29601, 0xfbee }, { 29614, 0xbbfa }, { 29626, 0x99ef }, - { 29637, 0xcdc3 }, { 29646, 0x7ffa }, { 29659, 0x4fd8 }, { 29668, 0x560b }, - { 29675, 0xfffc }, { 29689, 0xefff }, { 29704, 0xfe15 }, { 29714, 0xfb0b }, - { 29724, 0x92ff }, { 29735, 0xffff }, { 29751, 0xe7ff }, { 29765, 0x81ff }, - /* 0x21e00 */ - { 29775, 0x5704 }, { 29781, 0xdfff }, { 29796, 0x17ff }, { 29808, 0xff60 }, - { 29818, 0xac4f }, { 29827, 0x0014 }, { 29829, 0xffbc }, { 29842, 0x7fed }, - { 29855, 0xfd40 }, { 29863, 0x2614 }, { 29868, 0xf812 }, { 29875, 0xfeff }, - { 29890, 0x28ff }, { 29900, 0xffa2 }, { 29911, 0xf7ff }, { 29926, 0x43f7 }, - /* 0x21f00 */ - { 29936, 0x7c00 }, { 29941, 0x3fff }, { 29955, 0x87e0 }, { 29962, 0xf441 }, - { 29969, 0x77ff }, { 29983, 0xfd39 }, { 29994, 0xf0fb }, { 30005, 0x2521 }, - { 30010, 0x7fe5 }, { 30022, 0xff33 }, { 30034, 0xc2dc }, { 30042, 0x78c7 }, - { 30051, 0x9fc2 }, { 30060, 0xb972 }, { 30069, 0xffaf }, { 30083, 0xeb8f }, - /* 0x22000 */ - { 30094, 0x47ff }, { 30106, 0xb31f }, { 30116, 0x821f }, { 30123, 0x8ad0 }, - { 30129, 0x11ff }, { 30139, 0x9ffd }, { 30152, 0xf7fc }, { 30165, 0xfe3f }, - { 30178, 0xadcf }, { 30189, 0xe5ff }, { 30202, 0xde6f }, { 30214, 0xfff6 }, - { 30228, 0xf85f }, { 30239, 0xffff }, { 30255, 0xfd9b }, { 30267, 0x6fff }, - /* 0x22100 */ - { 30281, 0xfdf2 }, { 30293, 0xddf9 }, { 30305, 0x08ff }, { 30314, 0xf7ff }, - { 30329, 0xee04 }, { 30336, 0xceff }, { 30349, 0xef4f }, { 30361, 0xfb67 }, - { 30373, 0xefb8 }, { 30384, 0x9e0f }, { 30393, 0xd014 }, { 30398, 0xfbfe }, - { 30412, 0xfcc3 }, { 30422, 0x7fd7 }, { 30435, 0xaff9 }, { 30447, 0xfffd }, - /* 0x22200 */ - { 30462, 0xffb7 }, { 30476, 0xfe87 }, { 30487, 0x313f }, { 30496, 0xfffc }, - { 30510, 0xfd7f }, { 30524, 0xff61 }, { 30535, 0xffff }, { 30551, 0x9057 }, - { 30558, 0x5eff }, { 30571, 0xfbfd }, { 30585, 0xf57f }, { 30598, 0x1fff }, - { 30611, 0xf0fe }, { 30622, 0x35ff }, { 30634, 0xacfe }, { 30645, 0xf9e7 }, - /* 0x22300 */ - { 30657, 0xabdd }, { 30668, 0x7bfe }, { 30681, 0xbfed }, { 30694, 0xfd7a }, - { 30706, 0xe47e }, { 30716, 0xfff5 }, { 30730, 0xd9dd }, { 30741, 0xcfcf }, - { 30753, 0x74db }, { 30763, 0xb70f }, { 30773, 0x2ffd }, { 30785, 0xdfc7 }, - { 30797, 0x03e3 }, { 30804, 0x07fc }, { 30813, 0xdfd0 }, { 30823, 0x7fff }, - /* 0x22400 */ - { 30838, 0xbdff }, { 30852, 0xe37c }, { 30862, 0xb3ff }, { 30875, 0xdfbd }, - { 30888, 0x3fdf }, { 30901, 0x5fff }, { 30915, 0xaf5e }, { 30926, 0xe3ef }, - { 30938, 0x979f }, { 30949, 0xfff3 }, { 30963, 0xfff7 }, { 30978, 0xebfd }, - { 30991, 0x8ffd }, { 31003, 0xf1fd }, { 31015, 0xfe2d }, { 31026, 0x77ff }, - /* 0x22500 */ - { 31040, 0xffdf }, { 31055, 0xf503 }, { 31063, 0x2fff }, { 31076, 0xf9fb }, - { 31089, 0xe189 }, { 31096, 0xffff }, { 31112, 0xfc9f }, { 31124, 0x5edb }, - { 31135, 0xe71e }, { 31145, 0xff8f }, { 31158, 0x3efd }, { 31170, 0x2ffd }, - { 31182, 0x7f8a }, { 31192, 0xf9bf }, { 31205, 0x5fff }, { 31219, 0x8e26 }, - /* 0x22600 */ - { 31226, 0xffff }, { 31242, 0x647f }, { 31252, 0x8dc9 }, { 31260, 0xfdff }, - { 31275, 0x7fff }, { 31290, 0xffc0 }, { 31300, 0x414f }, { 31307, 0xffff }, - { 31323, 0xffff }, { 31339, 0xfe83 }, { 31349, 0x807f }, { 31357, 0x0c01 }, - { 31360, 0xfffe }, { 31375, 0xffff }, { 31391, 0x7fff }, { 31406, 0xff81 }, - /* 0x22700 */ - { 31416, 0xffff }, { 31432, 0x8ccf }, { 31441, 0xffb8 }, { 31453, 0xffff }, - { 31469, 0xffff }, { 31485, 0xe0bf }, { 31495, 0x67ff }, { 31508, 0x2004 }, - { 31510, 0xf682 }, { 31518, 0xf7ff }, { 31533, 0xffff }, { 31549, 0xffcf }, - { 31563, 0x0c1f }, { 31570, 0x3000 }, { 31572, 0xdfdf }, { 31586, 0xffff }, - /* 0x22800 */ - { 31602, 0xfc01 }, { 31609, 0xd7ff }, { 31623, 0x5003 }, { 31627, 0xfffe }, - { 31642, 0xcfff }, { 31656, 0x43ff }, { 31667, 0xfff6 }, { 31681, 0xe118 }, - { 31687, 0xb000 }, { 31690, 0xfffe }, { 31705, 0x40ff }, { 31714, 0x00ff }, - { 31722, 0xfe02 }, { 31730, 0xff7f }, { 31745, 0xff07 }, { 31756, 0xf8c5 }, - /* 0x22900 */ - { 31765, 0xdfff }, { 31780, 0x03ef }, { 31789, 0xfff0 }, { 31801, 0x7c7f }, - { 31813, 0xfc1a }, { 31822, 0xfd9f }, { 31835, 0xfbf2 }, { 31847, 0xff07 }, - { 31858, 0xcbe2 }, { 31867, 0xfe79 }, { 31879, 0xdfdf }, { 31893, 0x8fc0 }, - { 31900, 0x7fcf }, { 31913, 0x997e }, { 31923, 0x1ff5 }, { 31934, 0xe7f8 }, - /* 0x22a00 */ - { 31945, 0x7ff0 }, { 31956, 0xce3f }, { 31967, 0xb67b }, { 31978, 0x7f94 }, - { 31988, 0x69f2 }, { 31997, 0x236e }, { 32005, 0x7b65 }, { 32015, 0x007f }, - { 32022, 0xfffc }, { 32036, 0xf0ff }, { 32048, 0x029f }, { 32055, 0xfdf0 }, - { 32066, 0x7fc5 }, { 32077, 0x0010 }, { 32078, 0xfff4 }, { 32091, 0xffff }, - /* 0x22b00 */ - { 32107, 0xffc9 }, { 32119, 0x4fff }, { 32132, 0x9c04 }, { 32137, 0xffff }, - { 32153, 0x7fff }, { 32168, 0xfffc }, { 32182, 0x055f }, { 32190, 0x0000 }, - { 32190, 0xffde }, { 32204, 0xf7ff }, { 32219, 0xc19f }, { 32228, 0xffff }, - { 32244, 0x115f }, { 32252, 0x0000 }, { 32252, 0xfe08 }, { 32260, 0xffff }, - /* 0x22c00 */ - { 32276, 0xffff }, { 32292, 0x1fff }, { 32305, 0xff00 }, { 32313, 0x7fff }, - { 32328, 0x20ad }, { 32334, 0x8000 }, { 32335, 0xdfff }, { 32350, 0xdfdf }, - { 32364, 0xffff }, { 32380, 0x0167 }, { 32386, 0x0002 }, { 32387, 0x7ff9 }, - { 32400, 0xebff }, { 32414, 0x077f }, { 32424, 0xfffe }, { 32439, 0x5fff }, - /* 0x22d00 */ - { 32453, 0x0003 }, { 32455, 0x0000 }, { 32455, 0x7fff }, { 32470, 0xffff }, - { 32486, 0xe51b }, { 32495, 0xffff }, { 32511, 0x0009 }, { 32513, 0x8000 }, - { 32514, 0xffff }, { 32530, 0x3fff }, { 32544, 0xffc0 }, { 32554, 0x0023 }, - { 32557, 0xfb80 }, { 32565, 0x3fff }, { 32579, 0x2ff0 }, { 32588, 0xffc0 }, - /* 0x22e00 */ - { 32598, 0xc3ff }, { 32610, 0x037f }, { 32619, 0xfff8 }, { 32632, 0xff9f }, - { 32646, 0xa817 }, { 32653, 0x87fb }, { 32664, 0xf007 }, { 32671, 0x0ebf }, - { 32681, 0x9ffc }, { 32693, 0xc763 }, { 32702, 0x77e7 }, { 32714, 0x47f7 }, - { 32725, 0xe51e }, { 32734, 0x6cf3 }, { 32744, 0xf6e3 }, { 32755, 0x6ede }, - /* 0x22f00 */ - { 32766, 0xffe0 }, { 32777, 0xf133 }, { 32786, 0xf5af }, { 32798, 0xac40 }, - { 32803, 0x8fff }, { 32816, 0xe9bf }, { 32828, 0xf7f3 }, { 32841, 0x84fd }, - { 32850, 0xbbfd }, { 32863, 0xfe1d }, { 32874, 0xffb9 }, { 32887, 0x77fa }, - { 32899, 0x6fc0 }, { 32907, 0xcbff }, { 32920, 0x7f3b }, { 32932, 0xe3fc }, - /* 0x23000 */ - { 32943, 0xde47 }, { 32953, 0x6577 }, { 32963, 0xfdff }, { 32978, 0x34fa }, - { 32987, 0xddce }, { 32998, 0xf7a7 }, { 33010, 0x5abf }, { 33021, 0xbdfa }, - { 33033, 0x9677 }, { 33043, 0xca3a }, { 33051, 0xedff }, { 33065, 0xbf66 }, - { 33076, 0xbd4f }, { 33087, 0xfb5b }, { 33099, 0xffc6 }, { 33111, 0xfba8 }, - /* 0x23100 */ - { 33121, 0xdf17 }, { 33132, 0xe793 }, { 33142, 0x4dd7 }, { 33152, 0xdbf7 }, - { 33165, 0x5fd7 }, { 33177, 0xfc4f }, { 33188, 0xffff }, { 33204, 0x7f9e }, - { 33216, 0x0e7a }, { 33224, 0x7ffc }, { 33237, 0x0bc9 }, { 33244, 0xfffc }, - { 33258, 0xf841 }, { 33265, 0x043f }, { 33272, 0xdffc }, { 33285, 0xfc4f }, - /* 0x23200 */ - { 33296, 0xa19f }, { 33305, 0x8000 }, { 33306, 0x47f3 }, { 33316, 0x7fe0 }, - { 33326, 0x051f }, { 33333, 0x1ffe }, { 33345, 0x3ff8 }, { 33356, 0xfc01 }, - { 33363, 0x805e }, { 33369, 0xee73 }, { 33380, 0xc1fb }, { 33390, 0x255f }, - { 33399, 0xbf30 }, { 33408, 0xc1f9 }, { 33417, 0xfc28 }, { 33425, 0x85fc }, - /* 0x23300 */ - { 33434, 0xe1b8 }, { 33442, 0x93c8 }, { 33449, 0xbffc }, { 33462, 0x798f }, - { 33472, 0x91d8 }, { 33479, 0xfb5e }, { 33491, 0x58ff }, { 33502, 0x17f8 }, - { 33511, 0x3e36 }, { 33520, 0x9f9d }, { 33531, 0x723b }, { 33540, 0xbf7e }, - { 33553, 0x0fef }, { 33564, 0xfff7 }, { 33579, 0xffa3 }, { 33591, 0x6b4f }, - /* 0x23400 */ - { 33601, 0xff8b }, { 33613, 0xff8f }, { 33626, 0x07ff }, { 33637, 0xffe1 }, - { 33649, 0x801f }, { 33655, 0xfffe }, { 33670, 0xed3f }, { 33682, 0xe306 }, - { 33689, 0x83ff }, { 33700, 0xffff }, { 33716, 0xbfff }, { 33731, 0x9fc0 }, - { 33739, 0xffff }, { 33755, 0xffff }, { 33771, 0xff83 }, { 33782, 0xffff }, - /* 0x23500 */ - { 33798, 0xffff }, { 33814, 0x007e }, { 33820, 0xf800 }, { 33825, 0xfffe }, - { 33840, 0x7fff }, { 33855, 0xfa0f }, { 33865, 0xffff }, { 33881, 0x9fff }, - { 33895, 0x048f }, { 33901, 0x0029 }, { 33904, 0xff78 }, { 33916, 0xfff7 }, - { 33931, 0x000e }, { 33934, 0xfff1 }, { 33947, 0xffff }, { 33963, 0x0db9 }, - /* 0x23600 */ - { 33971, 0xe8a1 }, { 33978, 0xfff7 }, { 33993, 0xffff }, { 34009, 0x880f }, - { 34015, 0xfffe }, { 34030, 0x0a7f }, { 34039, 0x0010 }, { 34040, 0xf87f }, - { 34052, 0xffff }, { 34068, 0xfff7 }, { 34083, 0x877f }, { 34094, 0xffff }, - { 34110, 0xffff }, { 34126, 0x8543 }, { 34132, 0x5800 }, { 34135, 0xbfff }, - /* 0x23700 */ - { 34150, 0xe1ff }, { 34162, 0xffff }, { 34178, 0x91f8 }, { 34186, 0x9600 }, - { 34190, 0xfffe }, { 34205, 0x7fff }, { 34220, 0xffa0 }, { 34230, 0x5aff }, - { 34242, 0x1ac2 }, { 34248, 0xffff }, { 34264, 0xfff8 }, { 34277, 0x98e5 }, - { 34285, 0xfff4 }, { 34298, 0xff07 }, { 34309, 0x910f }, { 34316, 0x7f7d }, - /* 0x23800 */ - { 34329, 0xdffe }, { 34343, 0xfe11 }, { 34352, 0x7fe3 }, { 34364, 0xffa0 }, - { 34374, 0xf679 }, { 34385, 0x591f }, { 34394, 0x6fad }, { 34405, 0x1dde }, - { 34415, 0xfeff }, { 34430, 0xff9f }, { 34444, 0xf7cf }, { 34457, 0xac3f }, - { 34467, 0xff7f }, { 34482, 0xe3ef }, { 34494, 0x9bff }, { 34507, 0xffff }, - /* 0x23900 */ - { 34523, 0xffbf }, { 34538, 0x77b7 }, { 34550, 0x723f }, { 34560, 0xdef6 }, - { 34572, 0xffbf }, { 34587, 0x3bff }, { 34600, 0x2fed }, { 34611, 0xff3c }, - { 34623, 0x0fbe }, { 34633, 0xf7f0 }, { 34644, 0x81f6 }, { 34652, 0xbfe6 }, - { 34664, 0xfeff }, { 34679, 0xe07f }, { 34689, 0xffff }, { 34705, 0xfbff }, - /* 0x23a00 */ - { 34720, 0xffeb }, { 34734, 0xffc7 }, { 34747, 0x837f }, { 34757, 0x2bfe }, - { 34768, 0xfbf8 }, { 34780, 0xe3ff }, { 34793, 0xbf3f }, { 34806, 0xdcdf }, - { 34818, 0xf96d }, { 34829, 0x9aff }, { 34841, 0xf6fb }, { 34854, 0xfbef }, - { 34868, 0x30e3 }, { 34875, 0xc74f }, { 34885, 0xbbfe }, { 34898, 0xf711 }, - /* 0x23b00 */ - { 34907, 0xff7f }, { 34922, 0xdcff }, { 34935, 0xfffe }, { 34950, 0xff2f }, - { 34963, 0xfeb7 }, { 34976, 0xf43f }, { 34987, 0x7fef }, { 35001, 0xfffe }, - { 35016, 0xff07 }, { 35027, 0xffbf }, { 35042, 0xff98 }, { 35053, 0x3e1f }, - { 35063, 0xffe4 }, { 35075, 0xbbee }, { 35087, 0xfff4 }, { 35100, 0xff87 }, - /* 0x23c00 */ - { 35112, 0x7e47 }, { 35122, 0xdc5f }, { 35133, 0x7d1f }, { 35144, 0xdbc6 }, - { 35154, 0xdfb1 }, { 35165, 0xdf7f }, { 35179, 0xcc7b }, { 35189, 0x03f4 }, - { 35196, 0xcbdf }, { 35208, 0xe03f }, { 35217, 0xffa3 }, { 35229, 0xfffd }, - { 35244, 0xfc37 }, { 35255, 0x2fff }, { 35268, 0xfff8 }, { 35281, 0x00ff }, - /* 0x23d00 */ - { 35289, 0xfffe }, { 35304, 0xe077 }, { 35313, 0xffff }, { 35329, 0x5fff }, - { 35343, 0xfffc }, { 35357, 0x7fff }, { 35372, 0x1354 }, { 35378, 0xff8a }, - { 35389, 0xffff }, { 35405, 0xff7f }, { 35420, 0x007e }, { 35426, 0xc020 }, - { 35429, 0xffff }, { 35445, 0xafff }, { 35459, 0x02d6 }, { 35465, 0xf860 }, - /* 0x23e00 */ - { 35472, 0xffff }, { 35488, 0xffff }, { 35504, 0x0003 }, { 35506, 0xfffc }, - { 35520, 0x76df }, { 35532, 0xec00 }, { 35537, 0xffff }, { 35553, 0xfffe }, - { 35568, 0xf003 }, { 35574, 0xffff }, { 35590, 0x97ff }, { 35603, 0x8057 }, - { 35609, 0xb400 }, { 35613, 0xffff }, { 35629, 0xffff }, { 35645, 0x8007 }, - /* 0x23f00 */ - { 35649, 0xffff }, { 35665, 0xafff }, { 35679, 0x000f }, { 35683, 0x8820 }, - { 35686, 0xdff8 }, { 35698, 0xffff }, { 35714, 0xffff }, { 35730, 0x2079 }, - { 35736, 0xfff0 }, { 35748, 0xffff }, { 35764, 0x7f0f }, { 35775, 0x0081 }, - { 35777, 0xffe2 }, { 35789, 0xffff }, { 35805, 0x001f }, { 35810, 0xfffe }, - /* 0x24000 */ - { 35825, 0x49f3 }, { 35834, 0x8002 }, { 35836, 0xffff }, { 35852, 0xc2ff }, - { 35863, 0x37ff }, { 35876, 0xf481 }, { 35883, 0xfffe }, { 35898, 0xffff }, - { 35914, 0xc4ff }, { 35925, 0xffff }, { 35941, 0x806e }, { 35947, 0xefff }, - { 35962, 0xfc17 }, { 35972, 0x07bf }, { 35982, 0xbe08 }, { 35989, 0x7bf7 }, - /* 0x24100 */ - { 36002, 0xc2e0 }, { 36008, 0xfffb }, { 36023, 0x1f5f }, { 36034, 0x2ff8 }, - { 36044, 0x7cee }, { 36055, 0x2f06 }, { 36062, 0x6f5f }, { 36074, 0xfb9f }, - { 36087, 0xef7d }, { 36100, 0xe5f7 }, { 36112, 0xbfc0 }, { 36121, 0xf017 }, - { 36129, 0xff83 }, { 36140, 0xafff }, { 36154, 0x8807 }, { 36159, 0xe0ff }, - /* 0x24200 */ - { 36170, 0xffff }, { 36186, 0x0967 }, { 36193, 0xffec }, { 36206, 0xfe07 }, - { 36216, 0x07ff }, { 36227, 0xa202 }, { 36231, 0xfefe }, { 36245, 0xfe00 }, - { 36252, 0xffff }, { 36268, 0x1bff }, { 36280, 0x8020 }, { 36282, 0xfff4 }, - { 36295, 0xf8df }, { 36307, 0xffff }, { 36323, 0x97ff }, { 36336, 0x040b }, - /* 0x24300 */ - { 36340, 0xff8a }, { 36351, 0xf87f }, { 36363, 0xffff }, { 36379, 0x3f7f }, - { 36392, 0xe100 }, { 36396, 0x3ff9 }, { 36408, 0xffc4 }, { 36419, 0xdfff }, - { 36434, 0x1034 }, { 36438, 0xe5c0 }, { 36445, 0xffff }, { 36461, 0xc1bf }, - { 36471, 0xffff }, { 36487, 0xefbf }, { 36501, 0xe201 }, { 36506, 0xfff1 }, - /* 0x24400 */ - { 36519, 0xfff1 }, { 36532, 0xc0a7 }, { 36539, 0xbfc4 }, { 36549, 0xff8f }, - { 36562, 0xcc6f }, { 36572, 0xf0dd }, { 36582, 0x0185 }, { 36586, 0xf7ff }, - { 36601, 0xff47 }, { 36613, 0x5089 }, { 36618, 0x58de }, { 36627, 0x7de8 }, - { 36637, 0x873f }, { 36647, 0xf6f5 }, { 36659, 0xfde3 }, { 36671, 0x79de }, - /* 0x24500 */ - { 36682, 0xd4ff }, { 36694, 0x11bf }, { 36703, 0x57fd }, { 36715, 0x033f }, - { 36723, 0xeb2d }, { 36733, 0xffeb }, { 36747, 0xefff }, { 36762, 0x7eff }, - { 36776, 0xffee }, { 36790, 0x7ffb }, { 36804, 0xfffd }, { 36819, 0x7c9f }, - { 36830, 0xffb7 }, { 36844, 0x1f82 }, { 36851, 0xffef }, { 36866, 0xbdfa }, - /* 0x24600 */ - { 36878, 0xf339 }, { 36888, 0xfff3 }, { 36902, 0xf8ff }, { 36915, 0xff1d }, - { 36927, 0xb61d }, { 36936, 0xf9bf }, { 36949, 0x2dd7 }, { 36959, 0x0fbf }, - { 36970, 0xff1c }, { 36981, 0x437f }, { 36991, 0xff01 }, { 37000, 0xff7f }, - { 37015, 0xff04 }, { 37024, 0x8823 }, { 37029, 0x8afe }, { 37039, 0xee5f }, - /* 0x24700 */ - { 37051, 0xbbbd }, { 37063, 0x3ed7 }, { 37074, 0x895e }, { 37082, 0xffff }, - { 37098, 0xb04f }, { 37106, 0xdfff }, { 37121, 0xd17b }, { 37131, 0xffff }, - { 37147, 0x8177 }, { 37155, 0xfe80 }, { 37163, 0xb02f }, { 37171, 0xc305 }, - { 37177, 0xfffb }, { 37192, 0xf6b7 }, { 37204, 0x3fff }, { 37218, 0x2d7c }, - /* 0x24800 */ - { 37227, 0xe480 }, { 37232, 0xf7ff }, { 37247, 0x1bf3 }, { 37257, 0xfe20 }, - { 37265, 0x60ff }, { 37275, 0xf383 }, { 37284, 0x7fff }, { 37299, 0xbe7f }, - { 37312, 0xfe28 }, { 37321, 0x77ff }, { 37335, 0x87cf }, { 37345, 0x0fff }, - { 37357, 0x6f2b }, { 37367, 0xbb8f }, { 37378, 0xcfdd }, { 37390, 0x1fb5 }, - /* 0x24900 */ - { 37400, 0xf97c }, { 37411, 0xfd0f }, { 37422, 0x9d3f }, { 37433, 0x1fe6 }, - { 37443, 0xfff8 }, { 37456, 0x1ff0 }, { 37465, 0x3ff0 }, { 37475, 0xfbf2 }, - { 37487, 0x002b }, { 37491, 0xffff }, { 37507, 0xf977 }, { 37519, 0xf01f }, - { 37528, 0xffff }, { 37544, 0xc2df }, { 37554, 0xfcfd }, { 37567, 0xfc05 }, - /* 0x24a00 */ - { 37575, 0xbfff }, { 37590, 0x3ff9 }, { 37602, 0xf800 }, { 37607, 0x7f3f }, - { 37620, 0x0bff }, { 37631, 0xfffc }, { 37645, 0xfff8 }, { 37658, 0xf837 }, - { 37668, 0xf8ff }, { 37681, 0xff81 }, { 37691, 0x7f7d }, { 37704, 0xf7f0 }, - { 37715, 0x377f }, { 37727, 0x9df1 }, { 37737, 0xff78 }, { 37749, 0x7dff }, - /* 0x24b00 */ - { 37763, 0xfb9e }, { 37775, 0x3fc7 }, { 37786, 0xf75f }, { 37799, 0xdef1 }, - { 37810, 0xf07f }, { 37821, 0xf9bf }, { 37834, 0x17ef }, { 37845, 0xfe19 }, - { 37855, 0xefe1 }, { 37866, 0x3f59 }, { 37876, 0xefc6 }, { 37887, 0x3f2f }, - { 37898, 0x7b8b }, { 37908, 0xeff9 }, { 37921, 0xdcdf }, { 37933, 0x729c }, - /* 0x24c00 */ - { 37941, 0x65f9 }, { 37951, 0xeaa3 }, { 37960, 0xff3f }, { 37974, 0xff7f }, - { 37989, 0xf801 }, { 37995, 0xc7e5 }, { 38005, 0xfff8 }, { 38018, 0x704b }, - { 38025, 0xe9f8 }, { 38035, 0x3fff }, { 38049, 0xf88b }, { 38058, 0xefe7 }, - { 38071, 0xbf21 }, { 38080, 0x8dfc }, { 38090, 0xfe13 }, { 38100, 0xde4c }, - /* 0x24d00 */ - { 38109, 0x59bf }, { 38120, 0xf3ef }, { 38133, 0xcff3 }, { 38145, 0xff9f }, - { 38159, 0x398f }, { 38168, 0xff92 }, { 38179, 0x2fff }, { 38192, 0xff80 }, - { 38201, 0x1e7f }, { 38212, 0xfff8 }, { 38225, 0x3f3f }, { 38237, 0x00c0 }, - { 38239, 0xffff }, { 38255, 0x7ffb }, { 38269, 0x0021 }, { 38271, 0xfb80 }, - /* 0x24e00 */ - { 38279, 0xffff }, { 38295, 0xe3fe }, { 38307, 0xfe15 }, { 38317, 0xffff }, - { 38333, 0xa27c }, { 38341, 0xf800 }, { 38346, 0x9fff }, { 38360, 0x0a5b }, - { 38367, 0xfff3 }, { 38381, 0x3fff }, { 38395, 0x03c2 }, { 38400, 0xff80 }, - { 38409, 0x23ff }, { 38420, 0x7fe0 }, { 38430, 0xc12e }, { 38437, 0x07fe }, - /* 0x24f00 */ - { 38447, 0x38ff }, { 38458, 0xb7c7 }, { 38469, 0xbfbf }, { 38483, 0x7687 }, - { 38492, 0x77ce }, { 38503, 0xef57 }, { 38515, 0x97f3 }, { 38526, 0xbe81 }, - { 38534, 0xff08 }, { 38543, 0x7b20 }, { 38550, 0x3dff }, { 38563, 0x795c }, - { 38572, 0xcfe9 }, { 38583, 0xbfe7 }, { 38596, 0x5fa7 }, { 38607, 0x86fc }, - /* 0x25000 */ - { 38616, 0xefde }, { 38629, 0xdff3 }, { 38642, 0xb97e }, { 38653, 0xb677 }, - { 38664, 0xdbff }, { 38678, 0xdf7f }, { 38692, 0xfffb }, { 38707, 0x9fdb }, - { 38719, 0xf5f9 }, { 38731, 0xdffb }, { 38745, 0x73f3 }, { 38756, 0xd7ee }, - { 38768, 0x6fbf }, { 38781, 0x13fc }, { 38790, 0x1ff2 }, { 38800, 0x3ffc }, - /* 0x25100 */ - { 38812, 0xfffd }, { 38827, 0x7bff }, { 38841, 0x02b8 }, { 38846, 0xfffe }, - { 38861, 0x7e13 }, { 38870, 0xff88 }, { 38880, 0x7fef }, { 38894, 0x324f }, - { 38902, 0xfbe0 }, { 38912, 0xffff }, { 38928, 0x1c7f }, { 38938, 0x0069 }, - { 38942, 0xfef8 }, { 38954, 0xff7f }, { 38969, 0x4f13 }, { 38977, 0xc030 }, - /* 0x25200 */ - { 38981, 0xffed }, { 38995, 0x1fff }, { 39008, 0x07fc }, { 39017, 0xf980 }, - { 39024, 0xffff }, { 39040, 0xffff }, { 39056, 0x007c }, { 39061, 0xfff1 }, - { 39074, 0x47f7 }, { 39085, 0x0021 }, { 39087, 0xfd80 }, { 39095, 0xffff }, - { 39111, 0x271f }, { 39120, 0xfe01 }, { 39128, 0xbf3f }, { 39141, 0x8801 }, - /* 0x25300 */ - { 39144, 0xffff }, { 39160, 0xfcf1 }, { 39171, 0xe70e }, { 39180, 0xfc67 }, - { 39191, 0x9e5f }, { 39202, 0xc6b8 }, { 39210, 0xffbf }, { 39225, 0xffef }, - { 39240, 0xfefd }, { 39254, 0x17fd }, { 39265, 0x1ff2 }, { 39275, 0xff7f }, - { 39290, 0xc207 }, { 39296, 0xf792 }, { 39306, 0x9c07 }, { 39313, 0x78ff }, - /* 0x25400 */ - { 39325, 0x001b }, { 39329, 0x7fea }, { 39341, 0x1e3f }, { 39351, 0x35fe }, - { 39362, 0xfff3 }, { 39376, 0x7f9f }, { 39389, 0xd20c }, { 39395, 0xff7d }, - { 39409, 0xbfd7 }, { 39422, 0x5054 }, { 39427, 0xff90 }, { 39437, 0x3e7f }, - { 39449, 0xfcc3 }, { 39459, 0xfcff }, { 39473, 0x20ff }, { 39482, 0xfc02 }, - /* 0x25500 */ - { 39489, 0x07ff }, { 39500, 0xfffd }, { 39515, 0xff0d }, { 39526, 0x07ff }, - { 39537, 0xfbe8 }, { 39548, 0xc5fb }, { 39559, 0x3fe3 }, { 39570, 0xffff }, - { 39586, 0x9ffc }, { 39598, 0xff80 }, { 39607, 0xdc7f }, { 39619, 0xfa9b }, - { 39630, 0x027f }, { 39638, 0xeb4c }, { 39647, 0xfc0e }, { 39656, 0xcd96 }, - /* 0x25600 */ - { 39665, 0x637a }, { 39674, 0x7e60 }, { 39682, 0x7850 }, { 39688, 0xff03 }, - { 39698, 0xfe14 }, { 39707, 0x3ff0 }, { 39717, 0xf910 }, { 39724, 0x1f87 }, - { 39733, 0xff08 }, { 39742, 0x17ff }, { 39754, 0x0fc0 }, { 39760, 0x03ff }, - { 39770, 0xfdef }, { 39784, 0xff10 }, { 39793, 0xc01f }, { 39800, 0xbfbf }, - /* 0x25700 */ - { 39814, 0x9fbe }, { 39826, 0xccbe }, { 39836, 0x9ee9 }, { 39846, 0xff9f }, - { 39860, 0xbdba }, { 39871, 0x7d7d }, { 39883, 0xfffc }, { 39897, 0xde78 }, - { 39907, 0x037f }, { 39916, 0xff84 }, { 39926, 0x8207 }, { 39931, 0xfffe }, - { 39946, 0xe0a0 }, { 39951, 0x5fff }, { 39965, 0x03fc }, { 39973, 0xed80 }, - /* 0x25800 */ - { 39980, 0xffff }, { 39996, 0x01ff }, { 40005, 0x0006 }, { 40007, 0xf6fe }, - { 40020, 0x1feb }, { 40031, 0xbc10 }, { 40037, 0xffff }, { 40053, 0x0279 }, - { 40059, 0xfd83 }, { 40069, 0x7f7e }, { 40082, 0x6080 }, { 40085, 0xbff3 }, - { 40098, 0x003f }, { 40104, 0xd7c8 }, { 40113, 0xffe1 }, { 40125, 0x40bf }, - /* 0x25900 */ - { 40133, 0x5cef }, { 40144, 0xd7fe }, { 40157, 0x6f9c }, { 40167, 0xfff3 }, - { 40181, 0xff8e }, { 40193, 0x4f9f }, { 40204, 0x7fff }, { 40219, 0xffc0 }, - { 40229, 0xfdff }, { 40244, 0xf80b }, { 40252, 0xe7f7 }, { 40265, 0xff67 }, - { 40278, 0x84e0 }, { 40283, 0xfffd }, { 40298, 0xf025 }, { 40305, 0xbfff }, - /* 0x25a00 */ - { 40320, 0xe40f }, { 40328, 0x05ff }, { 40338, 0x7c0e }, { 40346, 0xb9ff }, - { 40359, 0xdd0f }, { 40369, 0x1bfd }, { 40380, 0x7fff }, { 40395, 0xdb7e }, - { 40407, 0xffdf }, { 40422, 0x8f3f }, { 40433, 0xf7f3 }, { 40446, 0xf86f }, - { 40457, 0xe708 }, { 40464, 0xff47 }, { 40476, 0xe1e7 }, { 40486, 0xfffb }, - /* 0x25b00 */ - { 40501, 0xf0bf }, { 40512, 0xeeff }, { 40526, 0xfc7e }, { 40538, 0xfbff }, - { 40553, 0x0fff }, { 40565, 0xffff }, { 40581, 0xfdff }, { 40596, 0xff83 }, - { 40607, 0xf03f }, { 40617, 0x7fff }, { 40632, 0xeffd }, { 40646, 0xffe0 }, - { 40657, 0x0047 }, { 40661, 0xffff }, { 40677, 0xffff }, { 40693, 0xf7ff }, - /* 0x25c00 */ - { 40708, 0xfa64 }, { 40717, 0xffff }, { 40733, 0xffff }, { 40749, 0xffff }, - { 40765, 0xf0f7 }, { 40776, 0xffff }, { 40792, 0x025f }, { 40799, 0xffe8 }, - { 40811, 0xfff3 }, { 40825, 0xffe7 }, { 40839, 0xdfff }, { 40854, 0x3fff }, - { 40868, 0xffc1 }, { 40879, 0xffff }, { 40895, 0xffff }, { 40911, 0x87ff }, - /* 0x25d00 */ - { 40923, 0xffff }, { 40939, 0xe018 }, { 40944, 0xffff }, { 40960, 0xeff7 }, - { 40974, 0x7ff0 }, { 40985, 0xf009 }, { 40991, 0xffff }, { 41007, 0x2f7f }, - { 41019, 0xfdc0 }, { 41028, 0xffff }, { 41044, 0x0ff8 }, { 41053, 0xfff0 }, - { 41065, 0xf3ff }, { 41079, 0xfff3 }, { 41093, 0xff1f }, { 41106, 0xf1f7 }, - /* 0x25e00 */ - { 41118, 0xcfa9 }, { 41128, 0x13d3 }, { 41136, 0xbbee }, { 41148, 0x7ffb }, - { 41162, 0xffee }, { 41176, 0xf467 }, { 41186, 0x29d7 }, { 41195, 0xfffc }, - { 41209, 0x0bf0 }, { 41216, 0xff80 }, { 41225, 0xff9f }, { 41239, 0x115f }, - { 41247, 0xfffe }, { 41262, 0x1e7f }, { 41273, 0xfff0 }, { 41285, 0x800f }, - /* 0x25f00 */ - { 41290, 0xf3ff }, { 41304, 0xff0f }, { 41316, 0x01f7 }, { 41324, 0xffe0 }, - { 41335, 0x8eef }, { 41346, 0x6fe3 }, { 41357, 0xf0e8 }, { 41365, 0xffdf }, - { 41380, 0xf7f7 }, { 41394, 0x7e5f }, { 41406, 0xffff }, { 41422, 0x0dfd }, - { 41432, 0xfff8 }, { 41445, 0x93ef }, { 41456, 0xffc2 }, { 41467, 0xf7ff }, - /* 0x26000 */ - { 41482, 0x02ff }, { 41491, 0xfffc }, { 41505, 0xf0ff }, { 41517, 0x00ff }, - { 41525, 0xff58 }, { 41536, 0x7fff }, { 41551, 0xfff2 }, { 41564, 0x0013 }, - { 41567, 0xfbff }, { 41582, 0xffbf }, { 41597, 0xffc7 }, { 41610, 0x00b3 }, - { 41615, 0xfffa }, { 41629, 0xfbff }, { 41644, 0x01fd }, { 41652, 0x07ff }, - /* 0x26100 */ - { 41663, 0xfe00 }, { 41670, 0x1fff }, { 41683, 0x7ffc }, { 41696, 0xf006 }, - { 41702, 0xffff }, { 41718, 0xe03f }, { 41727, 0x15bf }, { 41737, 0xffe8 }, - { 41749, 0xff7f }, { 41764, 0xf8ff }, { 41777, 0x9eff }, { 41790, 0xf87f }, - { 41802, 0xdf3f }, { 41815, 0xdffa }, { 41828, 0x1faf }, { 41839, 0xffdf }, - /* 0x26200 */ - { 41854, 0x00eb }, { 41860, 0x0000 }, { 41860, 0xfbec }, { 41872, 0xdf7f }, - { 41886, 0xdbb7 }, { 41898, 0xeeef }, { 41911, 0xfefd }, { 41925, 0xdbbc }, - { 41936, 0xeb8f }, { 41947, 0xf3ff }, { 41961, 0xef9f }, { 41974, 0xf078 }, - { 41982, 0x3ff4 }, { 41993, 0xffc7 }, { 42006, 0xf99f }, { 42018, 0xfbbf }, - /* 0x26300 */ - { 42032, 0xe66f }, { 42043, 0xfaff }, { 42057, 0x7f1f }, { 42069, 0xddfe }, - { 42082, 0xfdcf }, { 42095, 0xfdf7 }, { 42109, 0xf7e6 }, { 42121, 0xfe05 }, - { 42130, 0x2fe9 }, { 42140, 0x27f0 }, { 42148, 0x8afc }, { 42157, 0x9f9b }, - { 42168, 0xffea }, { 42181, 0xf7e3 }, { 42193, 0xaf8f }, { 42204, 0x7ff5 }, - /* 0x26400 */ - { 42217, 0x7ffd }, { 42231, 0x5ffb }, { 42244, 0xf7fc }, { 42257, 0x7fef }, - { 42271, 0xffd1 }, { 42283, 0xff3f }, { 42297, 0x1fff }, { 42310, 0xff7f }, - { 42325, 0xfdf8 }, { 42337, 0xbe7f }, { 42350, 0xf77d }, { 42363, 0x7dce }, - { 42374, 0xd01b }, { 42381, 0x67df }, { 42393, 0xff71 }, { 42405, 0x7fb3 }, - /* 0x26500 */ - { 42417, 0xfa7f }, { 42430, 0xfdbf }, { 42444, 0xbf7f }, { 42458, 0xf3af }, - { 42470, 0xfdbf }, { 42484, 0x7dff }, { 42498, 0xffe7 }, { 42512, 0xffe6 }, - { 42525, 0x7f3d }, { 42537, 0x1fff }, { 42550, 0x9ffc }, { 42562, 0xf27f }, - { 42574, 0x27ff }, { 42586, 0x87ff }, { 42598, 0x9fff }, { 42612, 0x43fe }, - /* 0x26600 */ - { 42622, 0xefff }, { 42637, 0xe93f }, { 42648, 0xff0d }, { 42659, 0xedfc }, - { 42671, 0x2fff }, { 42684, 0x99ff }, { 42696, 0xff87 }, { 42708, 0x9fff }, - { 42722, 0x73ff }, { 42735, 0xff1e }, { 42747, 0x7fff }, { 42762, 0x2ffc }, - { 42773, 0xc03e }, { 42780, 0xfffd }, { 42795, 0x7efb }, { 42808, 0x02d8 }, - /* 0x26700 */ - { 42813, 0xfddc }, { 42825, 0x9fff }, { 42839, 0x17ff }, { 42851, 0xee68 }, - { 42860, 0x8002 }, { 42862, 0xffff }, { 42878, 0xffff }, { 42894, 0xfdff }, - { 42909, 0x0ab3 }, { 42916, 0xfee0 }, { 42926, 0xbfff }, { 42941, 0x3fe7 }, - { 42953, 0x0003 }, { 42955, 0xbb30 }, { 42963, 0xbeff }, { 42977, 0x0019 }, - /* 0x26800 */ - { 42980, 0xffff }, { 42996, 0xd6ff }, { 43009, 0x1b31 }, { 43016, 0xdf80 }, - { 43024, 0xf1ef }, { 43036, 0x19bf }, { 43046, 0x3f00 }, { 43052, 0xfff7 }, - { 43067, 0xf52f }, { 43078, 0x3ff3 }, { 43090, 0xbff0 }, { 43101, 0xbf00 }, - { 43108, 0xbfe3 }, { 43120, 0xfc4f }, { 43131, 0x7a13 }, { 43139, 0xfffe }, - /* 0x26900 */ - { 43154, 0xf47d }, { 43165, 0xef75 }, { 43177, 0x1ffe }, { 43189, 0x9efc }, - { 43200, 0xdff6 }, { 43213, 0xebbf }, { 43226, 0x6be7 }, { 43237, 0xfffc }, - { 43251, 0xd7ff }, { 43265, 0xffeb }, { 43279, 0xfebf }, { 43293, 0xff7f }, - { 43308, 0xd7f7 }, { 43321, 0xa4fb }, { 43331, 0x6dff }, { 43344, 0xdb7b }, - /* 0x26a00 */ - { 43356, 0xfffb }, { 43371, 0xb7fd }, { 43384, 0xf5df }, { 43397, 0xf4f7 }, - { 43409, 0xff98 }, { 43420, 0xf318 }, { 43428, 0x1fff }, { 43441, 0x7ff6 }, - { 43454, 0x6ff0 }, { 43464, 0x3ffe }, { 43477, 0xfeb0 }, { 43487, 0xe1c7 }, - { 43496, 0xddff }, { 43510, 0x7eb7 }, { 43522, 0xbffd }, { 43536, 0xffdf }, - /* 0x26b00 */ - { 43551, 0xfbff }, { 43566, 0xfff9 }, { 43580, 0xfeff }, { 43595, 0xffbf }, - { 43610, 0x0bff }, { 43621, 0x3ff0 }, { 43631, 0xfb04 }, { 43639, 0xffff }, - { 43655, 0xffff }, { 43671, 0xff0f }, { 43683, 0xffff }, { 43699, 0xffa8 }, - { 43710, 0xffff }, { 43726, 0xff7e }, { 43740, 0xff7f }, { 43755, 0xff1f }, - /* 0x26c00 */ - { 43768, 0xffff }, { 43784, 0x6bff }, { 43797, 0xfc82 }, { 43805, 0xffff }, - { 43821, 0xffbf }, { 43836, 0xdfff }, { 43851, 0xffff }, { 43867, 0x1ffd }, - { 43879, 0xfff8 }, { 43892, 0xffff }, { 43908, 0x97ff }, { 43921, 0x20c1 }, - { 43925, 0xffff }, { 43941, 0xffff }, { 43957, 0x7fff }, { 43972, 0xffff }, - /* 0x26d00 */ - { 43988, 0xffa7 }, { 44001, 0xffff }, { 44017, 0xf801 }, { 44023, 0xffff }, - { 44039, 0x7fff }, { 44054, 0xe007 }, { 44060, 0xfffe }, { 44075, 0xffff }, - { 44091, 0xfff7 }, { 44106, 0x0fff }, { 44118, 0xff00 }, { 44126, 0xffff }, - { 44142, 0xffff }, { 44158, 0xefbf }, { 44172, 0x040b }, { 44176, 0xbfff }, - /* 0x26e00 */ - { 44191, 0xffdf }, { 44206, 0xffff }, { 44222, 0xffdf }, { 44237, 0x07ff }, - { 44248, 0xffc0 }, { 44258, 0xffff }, { 44274, 0x451e }, { 44281, 0xe084 }, - { 44286, 0xffd7 }, { 44300, 0xffff }, { 44316, 0xffff }, { 44332, 0xffff }, - { 44348, 0x3fff }, { 44362, 0xff00 }, { 44370, 0xffff }, { 44386, 0xffff }, - /* 0x26f00 */ - { 44402, 0xfcff }, { 44416, 0x0227 }, { 44421, 0xfe16 }, { 44431, 0xffff }, - { 44447, 0xdfff }, { 44462, 0xffff }, { 44478, 0x5fff }, { 44492, 0xffe2 }, - { 44504, 0xffff }, { 44520, 0x8895 }, { 44526, 0xf482 }, { 44533, 0xffff }, - { 44549, 0xff7f }, { 44564, 0x03ff }, { 44574, 0xffff }, { 44590, 0xfe3f }, - /* 0x27000 */ - { 44603, 0x20f7 }, { 44611, 0x2ff0 }, { 44620, 0xffff }, { 44636, 0xffbf }, - { 44651, 0xbfff }, { 44666, 0xfff2 }, { 44679, 0xffff }, { 44695, 0xf801 }, - { 44701, 0xff7f }, { 44716, 0xffff }, { 44732, 0x03ba }, { 44739, 0xffff }, - { 44755, 0xc3ff }, { 44767, 0xffff }, { 44783, 0xdfff }, { 44798, 0xfe01 }, - /* 0x27100 */ - { 44806, 0xeaff }, { 44819, 0xffff }, { 44835, 0x7f0f }, { 44846, 0xffc0 }, - { 44856, 0xffff }, { 44872, 0xffdf }, { 44887, 0xc7c7 }, { 44897, 0x7ddf }, - { 44910, 0xefea }, { 44922, 0x7fff }, { 44937, 0x1ff9 }, { 44948, 0xfc7e }, - { 44960, 0x2ffe }, { 44972, 0xf1bf }, { 44984, 0x3fff }, { 44998, 0xf83e }, - /* 0x27200 */ - { 45008, 0x6bcb }, { 45018, 0xf5ef }, { 45031, 0xffb9 }, { 45044, 0xfff1 }, - { 45057, 0xffff }, { 45073, 0xd9e3 }, { 45083, 0xffff }, { 45099, 0xf8f9 }, - { 45110, 0xe1ef }, { 45121, 0xffff }, { 45137, 0xfbff }, { 45152, 0x9fc3 }, - { 45162, 0xff00 }, { 45170, 0xfbff }, { 45185, 0xff83 }, { 45196, 0x0009 }, - /* 0x27300 */ - { 45198, 0xfffa }, { 45212, 0xbfff }, { 45227, 0x3fdf }, { 45240, 0xaff0 }, - { 45250, 0x0000 }, { 45250, 0xfffe }, { 45265, 0xffff }, { 45281, 0xffff }, - { 45297, 0xff1f }, { 45310, 0xc59f }, { 45320, 0xff7e }, { 45334, 0xffff }, - { 45350, 0xffff }, { 45366, 0xf03f }, { 45376, 0x175f }, { 45386, 0xff00 }, - /* 0x27400 */ - { 45394, 0xfff7 }, { 45409, 0xffff }, { 45425, 0xeff8 }, { 45437, 0x007a }, - { 45442, 0xfff1 }, { 45455, 0xf7ff }, { 45470, 0xffff }, { 45486, 0xff1f }, - { 45499, 0xc15e }, { 45507, 0xfdff }, { 45522, 0x0ffe }, { 45533, 0xfffc }, - { 45547, 0xdf00 }, { 45554, 0xffff }, { 45570, 0x18fe }, { 45579, 0xfffe }, - /* 0x27500 */ - { 45594, 0xc1df }, { 45604, 0xe13f }, { 45614, 0xddff }, { 45628, 0x24ff }, - { 45638, 0xfffe }, { 45653, 0xf9f7 }, { 45666, 0xc1ff }, { 45677, 0xf7ff }, - { 45692, 0xfdf5 }, { 45705, 0xfffe }, { 45720, 0xbf90 }, { 45729, 0x7ffc }, - { 45742, 0xffdf }, { 45757, 0xfff7 }, { 45772, 0xffee }, { 45786, 0x8ffe }, - /* 0x27600 */ - { 45798, 0xef7f }, { 45812, 0xf64f }, { 45823, 0xffff }, { 45839, 0x7cf9 }, - { 45850, 0xffff }, { 45866, 0xff07 }, { 45877, 0xffbf }, { 45892, 0xc2ac }, - { 45899, 0xffff }, { 45915, 0x7fe7 }, { 45928, 0xfffa }, { 45942, 0xf7ff }, - { 45957, 0xe009 }, { 45962, 0xffff }, { 45978, 0x1fff }, { 45991, 0xff0f }, - /* 0x27700 */ - { 46003, 0x2dff }, { 46015, 0xe026 }, { 46021, 0xfaff }, { 46035, 0xe187 }, - { 46043, 0xbfff }, { 46058, 0x0fff }, { 46070, 0xfc0c }, { 46078, 0xffff }, - { 46094, 0xf1c7 }, { 46104, 0xfafd }, { 46117, 0xffc6 }, { 46129, 0x3fef }, - { 46142, 0xf78c }, { 46152, 0xcff7 }, { 46165, 0xefca }, { 46176, 0xff9e }, - /* 0x27800 */ - { 46189, 0xdadf }, { 46201, 0xffef }, { 46216, 0x6f0f }, { 46226, 0xf82f }, - { 46236, 0xf979 }, { 46247, 0x29ef }, { 46257, 0xffff }, { 46273, 0xef8e }, - { 46284, 0xe77f }, { 46297, 0x777c }, { 46308, 0xe9ff }, { 46321, 0xffbe }, - { 46335, 0xe3ff }, { 46348, 0x5fff }, { 46362, 0xff2e }, { 46374, 0x7ff3 }, - /* 0x27900 */ - { 46387, 0xfbf8 }, { 46399, 0xf9ff }, { 46413, 0xdecf }, { 46425, 0xfcc6 }, - { 46435, 0x3517 }, { 46443, 0x3fea }, { 46454, 0xef7e }, { 46467, 0xffbb }, - { 46481, 0xbfc7 }, { 46493, 0xfe84 }, { 46502, 0xffff }, { 46518, 0x4cff }, - { 46529, 0xff76 }, { 46542, 0xffff }, { 46558, 0x0df3 }, { 46567, 0xffff }, - /* 0x27a00 */ - { 46583, 0x8fff }, { 46596, 0x7e7f }, { 46609, 0xffd9 }, { 46622, 0xffff }, - { 46638, 0xfefd }, { 46652, 0xff43 }, { 46663, 0xffff }, { 46679, 0xfffe }, - { 46694, 0xffff }, { 46710, 0xffd7 }, { 46724, 0xffff }, { 46740, 0x86ff }, - { 46751, 0x89ff }, { 46762, 0xfffd }, { 46777, 0xffff }, { 46793, 0xe565 }, - /* 0x27b00 */ - { 46802, 0xfffd }, { 46817, 0xbeef }, { 46830, 0xffbf }, { 46845, 0xf87f }, - { 46857, 0xff7f }, { 46872, 0xff7f }, { 46887, 0xffbf }, { 46902, 0xff97 }, - { 46915, 0xdfff }, { 46930, 0xef7f }, { 46944, 0xfb2c }, { 46954, 0x3def }, - { 46966, 0xfe47 }, { 46977, 0x9f39 }, { 46987, 0xeeef }, { 47000, 0xff9b }, - /* 0x27c00 */ - { 47013, 0x3efb }, { 47025, 0x637f }, { 47036, 0xffab }, { 47049, 0xfff5 }, - { 47063, 0xe7ff }, { 47077, 0xffff }, { 47093, 0xff3f }, { 47107, 0xd9ff }, - { 47120, 0xffff }, { 47136, 0xfdbf }, { 47150, 0xf7ff }, { 47165, 0xc2ff }, - { 47176, 0xffff }, { 47192, 0xfedf }, { 47206, 0xffe7 }, { 47220, 0x5fee }, - /* 0x27d00 */ - { 47232, 0xf0fe }, { 47243, 0xe7f1 }, { 47254, 0x3d7b }, { 47265, 0xffef }, - { 47280, 0xffb7 }, { 47294, 0x37e3 }, { 47304, 0xfff9 }, { 47318, 0xe7f7 }, - { 47331, 0x7fec }, { 47343, 0xff8f }, { 47356, 0x05ff }, { 47366, 0xdfff }, - { 47381, 0xfe9f }, { 47394, 0xd6ff }, { 47407, 0xfbff }, { 47422, 0xf825 }, - /* 0x27e00 */ - { 47430, 0xffff }, { 47446, 0x47f2 }, { 47455, 0xe9ff }, { 47468, 0xf3fe }, - { 47481, 0x43c9 }, { 47488, 0x7f00 }, { 47495, 0xf09b }, { 47504, 0x23fc }, - { 47513, 0xffd0 }, { 47524, 0xefdd }, { 47537, 0xffff }, { 47553, 0xffec }, - { 47566, 0xdfff }, { 47581, 0xbffe }, { 47595, 0xd8ff }, { 47607, 0xbf7f }, - /* 0x27f00 */ - { 47621, 0xc2ff }, { 47632, 0xffff }, { 47648, 0xffef }, { 47663, 0xffff }, - { 47679, 0xfe76 }, { 47691, 0xffff }, { 47707, 0xbfff }, { 47722, 0xffd8 }, - { 47734, 0xe93f }, { 47745, 0xffff }, { 47761, 0xff7f }, { 47776, 0x1f73 }, - { 47786, 0x227f }, { 47795, 0xfffc }, { 47809, 0xc05d }, { 47816, 0xfffe }, - /* 0x28000 */ - { 47831, 0x0249 }, { 47835, 0xfff8 }, { 47848, 0x7fff }, { 47863, 0x00c2 }, - { 47866, 0xffff }, { 47882, 0x5e3f }, { 47893, 0x000d }, { 47896, 0xffe8 }, - { 47908, 0xf9ff }, { 47922, 0xf80a }, { 47929, 0xffff }, { 47945, 0x81ff }, - { 47955, 0x0003 }, { 47957, 0xfffc }, { 47971, 0x51ff }, { 47982, 0x8008 }, - /* 0x28100 */ - { 47984, 0xffe9 }, { 47997, 0x0fff }, { 48009, 0x3ffe }, { 48022, 0x0000 }, - { 48022, 0xdd60 }, { 48030, 0xffff }, { 48046, 0x07ff }, { 48057, 0x0076 }, - { 48062, 0xffff }, { 48078, 0x1df3 }, { 48088, 0xfdc0 }, { 48097, 0x183f }, - { 48105, 0x9dfe }, { 48117, 0x67d0 }, { 48125, 0xeff0 }, { 48136, 0x3c1f }, - /* 0x28200 */ - { 48145, 0xad38 }, { 48153, 0xff3b }, { 48166, 0xfe17 }, { 48177, 0xff37 }, - { 48190, 0xff0d }, { 48201, 0x0bb1 }, { 48208, 0xc1fc }, { 48217, 0x9e0f }, - { 48226, 0xe45b }, { 48235, 0x2bfd }, { 48246, 0x9e9f }, { 48257, 0xfffe }, - { 48272, 0xd0d1 }, { 48279, 0x1fff }, { 48292, 0xffc0 }, { 48302, 0x1277 }, - /* 0x28300 */ - { 48310, 0xeffe }, { 48324, 0xbe40 }, { 48331, 0xffff }, { 48347, 0x79ff }, - { 48360, 0xffef }, { 48375, 0x87df }, { 48386, 0xffa9 }, { 48398, 0x8bdf }, - { 48409, 0x3fbf }, { 48422, 0x136f }, { 48431, 0xfff6 }, { 48445, 0x53ff }, - { 48457, 0xcfe2 }, { 48467, 0xe37e }, { 48478, 0x9f5f }, { 48490, 0x677f }, - /* 0x28400 */ - { 48502, 0xb806 }, { 48508, 0xffb3 }, { 48521, 0xbf17 }, { 48532, 0x7a67 }, - { 48542, 0xafff }, { 48556, 0x4f1f }, { 48566, 0xbfff }, { 48581, 0xf0bf }, - { 48592, 0xfffb }, { 48607, 0x2cf8 }, { 48615, 0xfffd }, { 48630, 0xf00d }, - { 48637, 0x6fbf }, { 48650, 0x2bfc }, { 48660, 0xfff0 }, { 48672, 0xefff }, - /* 0x28500 */ - { 48687, 0xc829 }, { 48693, 0xfeff }, { 48708, 0xffde }, { 48722, 0x0007 }, - { 48725, 0xaffe }, { 48738, 0xfc5b }, { 48749, 0xc7ff }, { 48762, 0x317f }, - { 48772, 0xffca }, { 48784, 0xe3f9 }, { 48795, 0xfc3b }, { 48806, 0xdffb }, - { 48820, 0xf81f }, { 48830, 0xc3bd }, { 48840, 0xffee }, { 48854, 0x3fc3 }, - /* 0x28600 */ - { 48864, 0xf7bf }, { 48878, 0xfe0b }, { 48888, 0x7fcf }, { 48901, 0xb3e5 }, - { 48911, 0xc7ff }, { 48924, 0xd7bf }, { 48937, 0xebd9 }, { 48948, 0x7fe7 }, - { 48961, 0xaefc }, { 48972, 0xfffe }, { 48987, 0xfd25 }, { 48997, 0xbe7f }, - { 49010, 0xffda }, { 49023, 0xde7f }, { 49036, 0xfffb }, { 49051, 0xf9fb }, - /* 0x28700 */ - { 49064, 0xfd6f }, { 49077, 0x9fff }, { 49091, 0xe5ff }, { 49104, 0xfffd }, - { 49119, 0xfe9b }, { 49131, 0xe9bb }, { 49142, 0xfdef }, { 49156, 0xe1fb }, - { 49167, 0xf2bf }, { 49179, 0xdffe }, { 49193, 0xcfc3 }, { 49203, 0xffeb }, - { 49217, 0xe13f }, { 49227, 0xdff3 }, { 49240, 0xd9df }, { 49252, 0xfff7 }, - /* 0x28800 */ - { 49267, 0xfde7 }, { 49280, 0x79ff }, { 49293, 0x40f4 }, { 49299, 0x7fc0 }, - { 49308, 0xf826 }, { 49316, 0x3dfb }, { 49328, 0xfe0d }, { 49338, 0x61ff }, - { 49349, 0xfffb }, { 49364, 0x0e77 }, { 49373, 0xbfff }, { 49388, 0xe66f }, - { 49399, 0x48ff }, { 49409, 0xbffb }, { 49423, 0xefcb }, { 49435, 0xffdf }, - /* 0x28900 */ - { 49450, 0xf7a7 }, { 49462, 0x6fef }, { 49475, 0x376f }, { 49486, 0xc7d0 }, - { 49494, 0xfe1d }, { 49505, 0x03ff }, { 49515, 0xe7f4 }, { 49526, 0x4a6f }, - { 49535, 0xfc74 }, { 49545, 0xf25f }, { 49556, 0xfd09 }, { 49565, 0xc19f }, - { 49574, 0xfffe }, { 49589, 0x1a68 }, { 49595, 0xfff2 }, { 49608, 0xe07f }, - /* 0x28a00 */ - { 49618, 0x7fff }, { 49633, 0x20ff }, { 49642, 0xd220 }, { 49647, 0x7fff }, - { 49662, 0xf000 }, { 49666, 0xf9ff }, { 49680, 0x121f }, { 49687, 0x1620 }, - { 49691, 0xfffe }, { 49706, 0x80df }, { 49714, 0xffff }, { 49730, 0x30c1 }, - { 49735, 0xd840 }, { 49740, 0x037f }, { 49749, 0xffc0 }, { 49759, 0x2bff }, - /* 0x28b00 */ - { 49771, 0xf038 }, { 49778, 0xafdf }, { 49791, 0xc7f8 }, { 49801, 0x7fff }, - { 49816, 0x4290 }, { 49820, 0xffe9 }, { 49833, 0xef84 }, { 49842, 0x50ff }, - { 49852, 0x8019 }, { 49856, 0xccbc }, { 49865, 0x89ff }, { 49876, 0xfb80 }, - { 49884, 0xffd0 }, { 49895, 0xc697 }, { 49904, 0xe04f }, { 49912, 0x5c01 }, - /* 0x28c00 */ - { 49917, 0xfe23 }, { 49927, 0xf7f7 }, { 49941, 0xd315 }, { 49949, 0x394f }, - { 49958, 0x0000 }, { 49958, 0xff80 }, { 49967, 0x0bf4 }, { 49975, 0x86f8 }, - { 49983, 0x3fcf }, { 49995, 0xedb8 }, { 50005, 0xe3e7 }, { 50016, 0x5d5c }, - { 50025, 0xde3f }, { 50037, 0xffeb }, { 50051, 0x3faf }, { 50063, 0xfffd }, - /* 0x28d00 */ - { 50078, 0xe037 }, { 50086, 0xa3ff }, { 50098, 0xff21 }, { 50108, 0x81eb }, - { 50116, 0xbff3 }, { 50129, 0x10ff }, { 50138, 0xfff4 }, { 50151, 0x02ad }, - { 50157, 0xffff }, { 50173, 0xf444 }, { 50180, 0xf0ff }, { 50192, 0x43df }, - { 50202, 0x3efe }, { 50214, 0xfabc }, { 50225, 0x0dde }, { 50234, 0x198f }, - /* 0x28e00 */ - { 50242, 0x8000 }, { 50243, 0x7dff }, { 50257, 0xfa1f }, { 50268, 0x012f }, - { 50274, 0xdffe }, { 50288, 0xff2b }, { 50300, 0xe08f }, { 50308, 0xffef }, - { 50323, 0xfc7f }, { 50336, 0x800f }, { 50341, 0xffff }, { 50357, 0x8032 }, - { 50361, 0xffff }, { 50377, 0xfd7f }, { 50391, 0x8543 }, { 50397, 0xffff }, - /* 0x28f00 */ - { 50413, 0xfd7f }, { 50427, 0xfbff }, { 50442, 0xfc41 }, { 50450, 0xe07b }, - { 50459, 0xf0ff }, { 50471, 0xb3ff }, { 50484, 0x5def }, { 50496, 0xbf7e }, - { 50509, 0xafef }, { 50522, 0x3ffe }, { 50535, 0xcfff }, { 50549, 0xfffc }, - { 50563, 0xfb7f }, { 50577, 0x47ff }, { 50589, 0xffff }, { 50605, 0xe67f }, - /* 0x29000 */ - { 50617, 0xffff }, { 50633, 0xffbf }, { 50648, 0xfff3 }, { 50662, 0xfff3 }, - { 50676, 0xffe7 }, { 50690, 0xfbff }, { 50705, 0x3b9f }, { 50716, 0x7fe5 }, - { 50728, 0x37fc }, { 50739, 0x1dfc }, { 50749, 0x77fe }, { 50762, 0xffac }, - { 50774, 0x17ef }, { 50785, 0x7fff }, { 50800, 0xafcb }, { 50811, 0xf7f0 }, - /* 0x29100 */ - { 50822, 0x221b }, { 50828, 0xffc0 }, { 50838, 0x6aff }, { 50850, 0xff80 }, - { 50859, 0xceff }, { 50872, 0xe00d }, { 50878, 0x3fff }, { 50892, 0xf0c6 }, - { 50900, 0x03ff }, { 50910, 0x8dfe }, { 50921, 0xea70 }, { 50929, 0xa5ef }, - { 50940, 0x5f9f }, { 50952, 0xffbe }, { 50966, 0xffdb }, { 50980, 0xd7ef }, - /* 0x29200 */ - { 50993, 0xf7f8 }, { 51005, 0xbe4e }, { 51015, 0xf9ff }, { 51029, 0x7b7f }, - { 51042, 0x7fbf }, { 51056, 0xee52 }, { 51065, 0x5ffe }, { 51078, 0xff00 }, - { 51086, 0x0b3f }, { 51095, 0xffff }, { 51111, 0xfe60 }, { 51120, 0x938d }, - { 51128, 0xffff }, { 51144, 0xe83f }, { 51154, 0xffff }, { 51170, 0xf77f }, - /* 0x29300 */ - { 51184, 0xfff9 }, { 51198, 0x2cff }, { 51209, 0xffc7 }, { 51222, 0xcecf }, - { 51233, 0xceff }, { 51246, 0xfffe }, { 51261, 0xcff0 }, { 51271, 0xc3be }, - { 51281, 0xffb7 }, { 51295, 0x7fbe }, { 51308, 0xfff2 }, { 51321, 0xffef }, - { 51336, 0xcfeb }, { 51348, 0xcfff }, { 51362, 0xff7f }, { 51377, 0x0ff7 }, - /* 0x29400 */ - { 51388, 0xbebe }, { 51400, 0xdff8 }, { 51412, 0x7dff }, { 51426, 0xdef7 }, - { 51439, 0x3fef }, { 51452, 0xffff }, { 51468, 0x5fff }, { 51482, 0x7fff }, - { 51497, 0x9fff }, { 51511, 0xffff }, { 51527, 0xecd7 }, { 51538, 0xffff }, - { 51554, 0x7f7f }, { 51568, 0xe37a }, { 51578, 0xffff }, { 51594, 0x7dff }, - /* 0x29500 */ - { 51608, 0xffff }, { 51624, 0xfe19 }, { 51634, 0xb3ff }, { 51647, 0xfff9 }, - { 51661, 0xff65 }, { 51673, 0xefff }, { 51688, 0xfa7f }, { 51701, 0xd5fe }, - { 51713, 0xfcdb }, { 51725, 0xbe09 }, { 51733, 0x53fe }, { 51744, 0x7ffd }, - { 51758, 0x3ff2 }, { 51769, 0xeff8 }, { 51781, 0xff0f }, { 51793, 0x0dff }, - /* 0x29600 */ - { 51804, 0xffea }, { 51817, 0xf6ff }, { 51831, 0xe0ff }, { 51842, 0xffff }, - { 51858, 0x477f }, { 51869, 0xfede }, { 51882, 0x0012 }, { 51884, 0x34d6 }, - { 51892, 0xffff }, { 51908, 0x7fec }, { 51920, 0xff19 }, { 51931, 0xafff }, - { 51945, 0xff63 }, { 51957, 0xe8cf }, { 51967, 0xffff }, { 51983, 0xfe0a }, - /* 0x29700 */ - { 51992, 0xffff }, { 52008, 0xfcfd }, { 52021, 0xb004 }, { 52025, 0xffff }, - { 52041, 0x0267 }, { 52047, 0xef80 }, { 52055, 0x5bff }, { 52068, 0xf337 }, - { 52079, 0xffff }, { 52095, 0xc6c3 }, { 52103, 0x7fff }, { 52118, 0xf4a4 }, - { 52126, 0xbfff }, { 52141, 0x2bf8 }, { 52150, 0xe5f8 }, { 52160, 0x01d3 }, - /* 0x29800 */ - { 52166, 0x0000 }, { 52166, 0x1ee3 }, { 52175, 0x1c7c }, { 52183, 0xde85 }, - { 52192, 0x77f7 }, { 52205, 0x6d3f }, { 52216, 0x67b2 }, { 52225, 0xffaf }, - { 52239, 0xf35e }, { 52250, 0xffff }, { 52266, 0xe0eb }, { 52275, 0xffff }, - { 52291, 0x77bf }, { 52304, 0xffe7 }, { 52318, 0xe19f }, { 52328, 0xffff }, - /* 0x29900 */ - { 52344, 0x82d3 }, { 52351, 0xffcd }, { 52364, 0x7fff }, { 52379, 0xe88b }, - { 52387, 0xffff }, { 52403, 0x5ddf }, { 52415, 0xf814 }, { 52422, 0x0c1f }, - { 52429, 0xffff }, { 52445, 0xdaf3 }, { 52456, 0x31ff }, { 52467, 0xffc8 }, - { 52478, 0xcffd }, { 52491, 0x0f71 }, { 52499, 0x003f }, { 52505, 0x0000 }, - /* 0x29a00 */ - { 52505, 0x0000 }, { 52505, 0xf8e6 }, { 52515, 0xf0df }, { 52526, 0xe5ff }, - { 52539, 0xfe4f }, { 52551, 0xffa8 }, { 52562, 0xe04f }, { 52570, 0x637f }, - { 52581, 0xfe7f }, { 52595, 0x1fbf }, { 52607, 0x6fff }, { 52621, 0xdbcc }, - { 52631, 0xde7f }, { 52644, 0xf7a3 }, { 52655, 0xffff }, { 52671, 0xb69b }, - /* 0x29b00 */ - { 52681, 0x8e1b }, { 52689, 0xffff }, { 52705, 0x03c7 }, { 52712, 0xbfff }, - { 52727, 0xff8f }, { 52740, 0xe5ef }, { 52752, 0x6fff }, { 52766, 0xff80 }, - { 52775, 0x3bff }, { 52788, 0xffc0 }, { 52798, 0xc3cf }, { 52808, 0x77ff }, - { 52822, 0xfff8 }, { 52835, 0xf853 }, { 52844, 0x23f1 }, { 52852, 0x8d3f }, - /* 0x29c00 */ - { 52862, 0xfefe }, { 52876, 0xf2ff }, { 52889, 0xffff }, { 52905, 0xd2fe }, - { 52916, 0xffbb }, { 52930, 0xbfdf }, { 52944, 0xbbff }, { 52958, 0xe7bf }, - { 52971, 0xfdff }, { 52986, 0x7ff3 }, { 52999, 0xdfee }, { 53012, 0xfa49 }, - { 53021, 0xfbf7 }, { 53035, 0xbf7f }, { 53049, 0xf7ff }, { 53064, 0xf7e7 }, - /* 0x29d00 */ - { 53077, 0xefc9 }, { 53088, 0xfb7f }, { 53102, 0xef5f }, { 53115, 0xaddf }, - { 53127, 0xfdb7 }, { 53140, 0x0bfb }, { 53150, 0xffff }, { 53166, 0x13fb }, - { 53176, 0x7fff }, { 53191, 0x4c7e }, { 53200, 0xfffd }, { 53215, 0xbfc3 }, - { 53226, 0xf80c }, { 53233, 0xf7ff }, { 53248, 0x507f }, { 53257, 0xffb0 }, - /* 0x29e00 */ - { 53268, 0xffff }, { 53284, 0x9f85 }, { 53293, 0x21a5 }, { 53299, 0xd600 }, - { 53304, 0xffff }, { 53320, 0x5fc7 }, { 53331, 0x0104 }, { 53333, 0xfffe }, - { 53348, 0xe07f }, { 53358, 0x1e7f }, { 53369, 0xe800 }, { 53373, 0x7fff }, - { 53388, 0x2fe0 }, { 53396, 0xff40 }, { 53405, 0x0dff }, { 53416, 0x0174 }, - /* 0x29f00 */ - { 53421, 0x7ffc }, { 53434, 0xf1c7 }, { 53444, 0x7fe3 }, { 53456, 0xf83e }, - { 53466, 0xf11f }, { 53476, 0xfd2b }, { 53487, 0x7fcb }, { 53499, 0x00eb }, - { 53505, 0xa201 }, { 53509, 0xfbff }, { 53524, 0x1eff }, { 53536, 0xffff }, - { 53552, 0x9fff }, { 53566, 0xf8ff }, { 53579, 0x7fff }, { 53594, 0x11fe }, - /* 0x2a000 */ - { 53603, 0xbf83 }, { 53613, 0xeffe }, { 53627, 0x3fff }, { 53641, 0xb5ff }, - { 53654, 0xff01 }, { 53663, 0xffff }, { 53679, 0x7fff }, { 53694, 0xfb85 }, - { 53704, 0xffff }, { 53720, 0xefbb }, { 53733, 0x242a }, { 53738, 0xfff0 }, - { 53750, 0xffff }, { 53766, 0x3dff }, { 53779, 0x86d5 }, { 53787, 0xfe48 }, - /* 0x2a100 */ - { 53796, 0xfeff }, { 53811, 0x599f }, { 53821, 0xfe09 }, { 53830, 0xfbff }, - { 53845, 0x7fff }, { 53860, 0x947e }, { 53869, 0xc002 }, { 53872, 0xffff }, - { 53888, 0x3fff }, { 53902, 0x24f2 }, { 53909, 0xff02 }, { 53918, 0xffff }, - { 53934, 0x065e }, { 53941, 0x35fe }, { 53952, 0xf003 }, { 53958, 0x9fff }, - /* 0x2a200 */ - { 53972, 0x7efa }, { 53984, 0xff0d }, { 53995, 0xcff4 }, { 54006, 0xbfb7 }, - { 54019, 0x0001 }, { 54020, 0xffc0 }, { 54030, 0xe3db }, { 54041, 0x95ef }, - { 54052, 0xfbdf }, { 54066, 0x5bfb }, { 54078, 0xbde3 }, { 54089, 0xfffe }, - { 54104, 0xebf8 }, { 54115, 0x7ff7 }, { 54129, 0xfcae }, { 54140, 0xfd9d }, - /* 0x2a300 */ - { 54152, 0x7fee }, { 54165, 0x3df7 }, { 54177, 0xf17d }, { 54188, 0xf91f }, - { 54199, 0xfaff }, { 54213, 0xfd7f }, { 54227, 0xffff }, { 54243, 0xff7d }, - { 54257, 0xe0df }, { 54267, 0xfcfd }, { 54280, 0xfdff }, { 54295, 0x6e7d }, - { 54306, 0x7fde }, { 54319, 0x7f7a }, { 54331, 0xf1f2 }, { 54341, 0xffdf }, - /* 0x2a400 */ - { 54356, 0xff9d }, { 54369, 0xfbfe }, { 54383, 0x0df3 }, { 54392, 0x831c }, - { 54398, 0x7f1f }, { 54410, 0x7ffc }, { 54423, 0xffea }, { 54436, 0xc09f }, - { 54444, 0x993f }, { 54454, 0xff7f }, { 54469, 0xfe8f }, { 54481, 0xcf31 }, - { 54490, 0xde5b }, { 54501, 0xfdff }, { 54516, 0xf3b6 }, { 54527, 0xfbff }, - /* 0x2a500 */ - { 54542, 0xed77 }, { 54554, 0x39f7 }, { 54565, 0xdffc }, { 54578, 0xfdeb }, - { 54591, 0xff5f }, { 54605, 0xff9e }, { 54618, 0xff92 }, { 54629, 0xefe2 }, - { 54640, 0xf9ef }, { 54653, 0x0dff }, { 54664, 0xc7fe }, { 54676, 0x78f9 }, - { 54686, 0xfef6 }, { 54699, 0xff37 }, { 54712, 0xbfff }, { 54727, 0xffe4 }, - /* 0x2a600 */ - { 54739, 0xec33 }, { 54748, 0x99ff }, { 54760, 0x77f7 }, { 54773, 0xffd5 }, - { 54786, 0xffcf }, { 54800, 0xffcf }, { 54814, 0x56f8 }, { 54823, 0xbbfd }, - { 54836, 0x7b5f }, { 54848, 0xfbee }, { 54861, 0xf9e1 }, { 54871, 0xfffb }, - { 54886, 0xef5f }, { 54899, 0x007f }, -}; -static const Summary16 cns11643_inv_uni2indx_page2f8[34] = { - /* 0x2f800 */ - { 54906, 0xffff }, { 54922, 0xffff }, { 54938, 0xffff }, { 54954, 0xffff }, - { 54970, 0xfffe }, { 54985, 0xffff }, { 55001, 0xffff }, { 55017, 0xffff }, - { 55033, 0xffff }, { 55049, 0xffef }, { 55064, 0xffff }, { 55080, 0xffff }, - { 55096, 0xdfff }, { 55111, 0xffff }, { 55127, 0xffff }, { 55143, 0xffff }, - /* 0x2f900 */ - { 55159, 0xffff }, { 55175, 0xffff }, { 55191, 0xffff }, { 55207, 0xffff }, - { 55223, 0xffff }, { 55239, 0xffff }, { 55255, 0xffff }, { 55271, 0xffff }, - { 55287, 0xffff }, { 55303, 0xffef }, { 55318, 0xffff }, { 55334, 0xfffb }, - { 55349, 0xffff }, { 55365, 0xffef }, { 55380, 0xffff }, { 55396, 0xffff }, - /* 0x2fa00 */ - { 55412, 0xffff }, { 55428, 0x3fff }, -}; - -static int -cns11643_inv_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0100) - summary = &cns11643_inv_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x0200 && wc < 0x03d0) - summary = &cns11643_inv_uni2indx_page02[(wc>>4)-0x020]; - else if (wc >= 0x2000 && wc < 0x22c0) - summary = &cns11643_inv_uni2indx_page20[(wc>>4)-0x200]; - else if (wc >= 0x2400 && wc < 0x2650) - summary = &cns11643_inv_uni2indx_page24[(wc>>4)-0x240]; - else if (wc >= 0x3000 && wc < 0x9fb0) - summary = &cns11643_inv_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0xfa00 && wc < 0xfa30) - summary = &cns11643_inv_uni2indx_pagefa[(wc>>4)-0xfa0]; - else if (wc >= 0xfe00 && wc < 0xfff0) - summary = &cns11643_inv_uni2indx_pagefe[(wc>>4)-0xfe0]; - else if (wc >= 0x20000 && wc < 0x2a6e0) - summary = &cns11643_inv_uni2indx_page200[(wc>>4)-0x2000]; - else if (wc >= 0x2f800 && wc < 0x2fa20) - summary = &cns11643_inv_uni2indx_page2f8[(wc>>4)-0x2f80]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - used += summary->indx; - r[0] = cns11643_inv_2charset[3*used]; - r[1] = cns11643_inv_2charset[3*used+1]; - r[2] = cns11643_inv_2charset[3*used+2]; - return 3; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/config.h b/jni/parted/libiconv/lib/config.h deleted file mode 100755 index 6d2771b..0000000 --- a/jni/parted/libiconv/lib/config.h +++ /dev/null @@ -1,1545 +0,0 @@ -/* Copyright (C) 1999-2003, 2005, 2007, 2010, 2012 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - - -/* Define to 1 to enable a few rarely used encodings. */ -/* #undef ENABLE_EXTRA */ - -/* Define to 1 if the package shall run at any location in the filesystem. */ -/* #undef ENABLE_RELOCATABLE */ - -/* Define to a type if does not define. */ -/* #undef mbstate_t */ - -/* Define if you have , the iconv_t type, and the - iconv_open, iconv, iconv_close functions. */ -#define HAVE_ICONV 1 -/* Define as const if the declaration of iconv() needs const. */ -#define ICONV_CONST - -/* Define to 1 if you have the getc_unlocked() function. */ -#define HAVE_GETC_UNLOCKED 1 - -/* Define if you have and nl_langinfo(CODESET). */ -#define HAVE_LANGINFO_CODESET 1 - -/* Define if you have the mbrtowc() function. */ -#define HAVE_MBRTOWC 1 - -/* Define to 1 if you have the setlocale() function. */ -#define HAVE_SETLOCALE 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_STDDEF_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#define HAVE_VISIBILITY 1 - -/* Define if you have the wcrtomb() function. */ -#define HAVE_WCRTOMB 1 - -/* Define to 1 if O_NOFOLLOW works. */ -#define HAVE_WORKING_O_NOFOLLOW 1 - -/* Define if the machine's byte ordering is little endian. */ -#define WORDS_LITTLEENDIAN 1 - -/* Define to the value of ${prefix}, as a string. */ -#define INSTALLPREFIX "/usr/local" - -/* Define to '__inline__' or '__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -/* #undef inline */ -#endif - -/* Define to 'int' if does not define. */ -/* #undef mode_t */ - -/* Define as a signed type of the same size as size_t. */ -/* #undef ssize_t */ - -/* Define if building universal (internal helper macro) */ -/* #undef AC_APPLE_UNIVERSAL_BUILD */ - -/* Define to the number of bits in type 'ptrdiff_t'. */ -#define BITSIZEOF_PTRDIFF_T 64 - -/* Define to the number of bits in type 'sig_atomic_t'. */ -#define BITSIZEOF_SIG_ATOMIC_T 32 - -/* Define to the number of bits in type 'size_t'. */ -#define BITSIZEOF_SIZE_T 64 - -/* Define to the number of bits in type 'wchar_t'. */ -#define BITSIZEOF_WCHAR_T 32 - -/* Define to the number of bits in type 'wint_t'. */ -#define BITSIZEOF_WINT_T 32 - -/* Define to 1 if using 'alloca.c'. */ -/* #undef C_ALLOCA */ - -/* Define to 1 if // is a file system root distinct from /. */ -/* #undef DOUBLE_SLASH_IS_DISTINCT_ROOT */ - -/* Define as good substitute value for EILSEQ. */ -/* #undef EILSEQ */ - -/* Define to 1 to enable a few rarely used encodings. */ -/* #undef ENABLE_EXTRA */ - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -/* #undef ENABLE_NLS */ - -/* Define to 1 if the package shall run at any location in the file system. */ -/* #undef ENABLE_RELOCATABLE */ - -/* Define this to 1 if F_DUPFD behavior does not match POSIX */ -/* #undef FCNTL_DUPFD_BUGGY */ - -/* Define to 1 if realpath() can malloc memory, always gives an absolute path, - and handles a trailing slash correctly. */ -/* #undef FUNC_REALPATH_NEARLY_WORKS */ - -/* Define to 1 if realpath() can malloc memory, always gives an absolute path, - and handles leading slashes and a trailing slash correctly. */ -#define FUNC_REALPATH_WORKS 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module canonicalize-lgpl shall be considered present. */ -#define GNULIB_CANONICALIZE_LGPL 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module fscanf shall be considered present. */ -#define GNULIB_FSCANF 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module msvc-nothrow shall be considered present. */ -#define GNULIB_MSVC_NOTHROW 1 - -/* Define to 1 if printf and friends should be labeled with attribute - "__gnu_printf__" instead of "__printf__" */ -/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */ - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module scanf shall be considered present. */ -#define GNULIB_SCANF 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module sigpipe shall be considered present. */ -#define GNULIB_SIGPIPE 1 - -/* Define to 1 if you want the FILE stream functions getc, putc, etc. to use - unlocked I/O if available, throughout the package. Unlocked I/O can improve - performance, sometimes dramatically. But unlocked I/O is safe only in - single-threaded programs, as well as in multithreaded programs for which - you can guarantee that every FILE stream, including stdin, stdout, stderr, - is used only in a single thread. */ -#define GNULIB_STDIO_SINGLE_THREAD 1 - -/* Define to a C preprocessor expression that evaluates to 1 or 0, depending - whether the gnulib module strerror shall be considered present. */ -#define GNULIB_STRERROR 1 - -/* Define to 1 when the gnulib module canonicalize_file_name should be tested. - */ -#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1 - -/* Define to 1 when the gnulib module cloexec should be tested. */ -#define GNULIB_TEST_CLOEXEC 1 - -/* Define to 1 when the gnulib module close should be tested. */ -#define GNULIB_TEST_CLOSE 1 - -/* Define to 1 when the gnulib module dup2 should be tested. */ -#define GNULIB_TEST_DUP2 1 - -/* Define to 1 when the gnulib module environ should be tested. */ -#define GNULIB_TEST_ENVIRON 1 - -/* Define to 1 when the gnulib module fcntl should be tested. */ -#define GNULIB_TEST_FCNTL 1 - -/* Define to 1 when the gnulib module fgetc should be tested. */ -#define GNULIB_TEST_FGETC 1 - -/* Define to 1 when the gnulib module fgets should be tested. */ -#define GNULIB_TEST_FGETS 1 - -/* Define to 1 when the gnulib module fprintf should be tested. */ -#define GNULIB_TEST_FPRINTF 1 - -/* Define to 1 when the gnulib module fputc should be tested. */ -#define GNULIB_TEST_FPUTC 1 - -/* Define to 1 when the gnulib module fputs should be tested. */ -#define GNULIB_TEST_FPUTS 1 - -/* Define to 1 when the gnulib module fread should be tested. */ -#define GNULIB_TEST_FREAD 1 - -/* Define to 1 when the gnulib module free-posix should be tested. */ -#define GNULIB_TEST_FREE_POSIX 1 - -/* Define to 1 when the gnulib module fscanf should be tested. */ -#define GNULIB_TEST_FSCANF 1 - -/* Define to 1 when the gnulib module fstat should be tested. */ -#define GNULIB_TEST_FSTAT 1 - -/* Define to 1 when the gnulib module fwrite should be tested. */ -#define GNULIB_TEST_FWRITE 1 - -/* Define to 1 when the gnulib module getc should be tested. */ -#define GNULIB_TEST_GETC 1 - -/* Define to 1 when the gnulib module getchar should be tested. */ -#define GNULIB_TEST_GETCHAR 1 - -/* Define to 1 when the gnulib module getdtablesize should be tested. */ -#define GNULIB_TEST_GETDTABLESIZE 1 - -/* Define to 1 when the gnulib module malloc-posix should be tested. */ -#define GNULIB_TEST_MALLOC_POSIX 1 - -/* Define to 1 when the gnulib module mempcpy should be tested. */ -#define GNULIB_TEST_MEMPCPY 1 - -/* Define to 1 when the gnulib module open should be tested. */ -#define GNULIB_TEST_OPEN 1 - -/* Define to 1 when the gnulib module printf should be tested. */ -#define GNULIB_TEST_PRINTF 1 - -/* Define to 1 when the gnulib module putc should be tested. */ -#define GNULIB_TEST_PUTC 1 - -/* Define to 1 when the gnulib module putchar should be tested. */ -#define GNULIB_TEST_PUTCHAR 1 - -/* Define to 1 when the gnulib module puts should be tested. */ -#define GNULIB_TEST_PUTS 1 - -/* Define to 1 when the gnulib module raise should be tested. */ -#define GNULIB_TEST_RAISE 1 - -/* Define to 1 when the gnulib module rawmemchr should be tested. */ -#define GNULIB_TEST_RAWMEMCHR 1 - -/* Define to 1 when the gnulib module read should be tested. */ -#define GNULIB_TEST_READ 1 - -/* Define to 1 when the gnulib module readlink should be tested. */ -#define GNULIB_TEST_READLINK 1 - -/* Define to 1 when the gnulib module realloc-posix should be tested. */ -#define GNULIB_TEST_REALLOC_POSIX 1 - -/* Define to 1 when the gnulib module realpath should be tested. */ -#define GNULIB_TEST_REALPATH 1 - -/* Define to 1 when the gnulib module scanf should be tested. */ -#define GNULIB_TEST_SCANF 1 - -/* Define to 1 when the gnulib module sigprocmask should be tested. */ -#define GNULIB_TEST_SIGPROCMASK 1 - -/* Define to 1 when the gnulib module stat should be tested. */ -#define GNULIB_TEST_STAT 1 - -/* Define to 1 when the gnulib module strerror should be tested. */ -#define GNULIB_TEST_STRERROR 1 - -/* Define to 1 when the gnulib module vfprintf should be tested. */ -#define GNULIB_TEST_VFPRINTF 1 - -/* Define to 1 when the gnulib module vprintf should be tested. */ -#define GNULIB_TEST_VPRINTF 1 - -/* Define to 1 if you have 'alloca', as a function or macro. */ -#define HAVE_ALLOCA 1 - -/* Define to 1 if works. */ -#define HAVE_ALLOCA_H 1 - -/* Define to 1 if you have the `canonicalize_file_name' function. */ -/* #undef HAVE_CANONICALIZE_FILE_NAME */ - -/* Define to 1 if you have the Mac OS X function - CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ -/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ - -/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in - the CoreFoundation framework. */ -/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ - -/* Define to 1 if you have the `copy_file_range' function. */ -/* #undef HAVE_COPY_FILE_RANGE */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_CRTDEFS_H */ - -/* Define to 1 if C supports variable-length arrays. */ -#define HAVE_C_VARARRAYS 1 - -/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -/* #undef HAVE_DCGETTEXT */ - -/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_CLEARERR_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `ecvt', and to 0 if you don't. - */ -#define HAVE_DECL_ECVT 0 - -/* Define to 1 if you have the declaration of `execvpe', and to 0 if you - don't. */ -#define HAVE_DECL_EXECVPE 1 - -/* Define to 1 if you have the declaration of `fcloseall', and to 0 if you - don't. */ -#define HAVE_DECL_FCLOSEALL 0 - -/* Define to 1 if you have the declaration of `fcvt', and to 0 if you don't. - */ -#define HAVE_DECL_FCVT 0 - -/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you - don't. */ -#define HAVE_DECL_FEOF_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FERROR_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FFLUSH_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FGETS_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FPUTC_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FPUTS_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FREAD_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FWRITE_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `gcvt', and to 0 if you don't. - */ -#define HAVE_DECL_GCVT 0 - -/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_GETCHAR_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you - don't. */ -#define HAVE_DECL_GETC_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `getdtablesize', and to 0 if you - don't. */ -#define HAVE_DECL_GETDTABLESIZE 0 - -/* Define to 1 if you have the declaration of `program_invocation_name', and - to 0 if you don't. */ -#define HAVE_DECL_PROGRAM_INVOCATION_NAME 0 - -/* Define to 1 if you have the declaration of `program_invocation_short_name', - and to 0 if you don't. */ -#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 0 - -/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_PUTCHAR_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you - don't. */ -#define HAVE_DECL_PUTC_UNLOCKED 1 - -/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. - */ -#define HAVE_DECL_SETENV 1 - -/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you - don't. */ -#define HAVE_DECL_STRERROR_R 1 - -/* Define to 1 if you have the declaration of `wcsdup', and to 0 if you don't. - */ -#define HAVE_DECL_WCSDUP 1 - -/* Define to 1 if you have the declaration of `__argv', and to 0 if you don't. - */ -#define HAVE_DECL___ARGV 0 - -/* Define to 1 if you have the header file. */ -#define HAVE_DLFCN_H 1 - -/* Define if you have the declaration of environ. */ -#define HAVE_ENVIRON_DECL 1 - -/* Define to 1 if you have the `faccessat' function. */ -#define HAVE_FACCESSAT 1 - -/* Define to 1 if you have the `fcntl' function. */ -#define HAVE_FCNTL 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_FEATURES_H 1 - -/* Define if the 'free' function is guaranteed to preserve errno. */ -/* #undef HAVE_FREE_POSIX */ - -/* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if you have the `getc_unlocked' function. */ -#define HAVE_GETC_UNLOCKED 1 - -/* Define to 1 if you have the `getdtablesize' function. */ -/* #undef HAVE_GETDTABLESIZE */ - -/* Define to 1 if you have the `getexecname' function. */ -/* #undef HAVE_GETEXECNAME */ - -/* Define to 1 if you have the `getprogname' function. */ -#define HAVE_GETPROGNAME 1 - -/* Define if the GNU gettext() function is already present or preinstalled. */ -/* #undef HAVE_GETTEXT */ - -/* Define if you have the iconv() function and it works. */ -#define HAVE_ICONV 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define if you have and nl_langinfo(CODESET). */ -#define HAVE_LANGINFO_CODESET 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define to 1 if the system has the type 'long long int'. */ -#define HAVE_LONG_LONG_INT 1 - -/* Define to 1 if you have the `lstat' function. */ -#define HAVE_LSTAT 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_O_DYLD_H */ - -/* Define if malloc, realloc, and calloc set errno on allocation failure. */ -#define HAVE_MALLOC_POSIX 1 - -/* Define to 1 if you have the `mbrtowc' function. */ -#define HAVE_MBRTOWC 1 - -/* Define to 1 if you have the `mbsinit' function. */ -#define HAVE_MBSINIT 1 - -/* Define to 1 if declares mbstate_t. */ -#define HAVE_MBSTATE_T 1 - -/* Define to 1 if you have the `memmove' function. */ -#define HAVE_MEMMOVE 1 - -/* Define to 1 if you have the `mempcpy' function. */ -#define HAVE_MEMPCPY 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_MINIX_CONFIG_H */ - -/* Define to 1 if defines the MIN and MAX macros. */ -/* #undef HAVE_MINMAX_IN_LIMITS_H */ - -/* Define to 1 if defines the MIN and MAX macros. */ -#define HAVE_MINMAX_IN_SYS_PARAM_H 1 - -/* Define to 1 on MSVC platforms that have the "invalid parameter handler" - concept. */ -/* #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER */ - -/* Define to 1 if you have the `raise' function. */ -#define HAVE_RAISE 1 - -/* Define to 1 if you have the `rawmemchr' function. */ -/* #undef HAVE_RAWMEMCHR */ - -/* Define to 1 if you have the `readlink' function. */ -#define HAVE_READLINK 1 - -/* Define to 1 if you have the `readlinkat' function. */ -#define HAVE_READLINKAT 1 - -/* Define to 1 if you have the `realpath' function. */ -#define HAVE_REALPATH 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SDKDDKVER_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SEARCH_H 1 - -/* Define to 1 if you have the `setdtablesize' function. */ -/* #undef HAVE_SETDTABLESIZE */ - -/* Define to 1 if you have the `setenv' function. */ -#define HAVE_SETENV 1 - -/* Define to 1 if you have the `setlocale' function. */ -#define HAVE_SETLOCALE 1 - -/* Define to 1 if 'sig_atomic_t' is a signed integer type. */ -#define HAVE_SIGNED_SIG_ATOMIC_T 1 - -/* Define to 1 if 'wchar_t' is a signed integer type. */ -/* #undef HAVE_SIGNED_WCHAR_T */ - -/* Define to 1 if 'wint_t' is a signed integer type. */ -/* #undef HAVE_SIGNED_WINT_T */ - -/* Define to 1 if the system has the type `sigset_t'. */ -#define HAVE_SIGSET_T 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDIO_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define if you have `strerror_r'. */ -#define HAVE_STRERROR_R 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if `st_atimensec' is a member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIMENSEC */ - -/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC */ - -/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC */ - -/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */ -#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1 - -/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC */ - -/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC */ - -/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */ -/* #undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC */ - -/* Define to 1 if you have the `symlink' function. */ -#define HAVE_SYMLINK 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_BITYPES_H */ - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_SYS_INTTYPES_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_PARAM_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_SOCKET_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the `tsearch' function. */ -#define HAVE_TSEARCH 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 if the system has the type 'unsigned long long int'. */ -#define HAVE_UNSIGNED_LONG_LONG_INT 1 - -/* Define if you have a global __progname variable */ -#define HAVE_VAR___PROGNAME 1 - -/* Define to 1 or 0, depending whether the compiler supports simple visibility - declarations. */ -#define HAVE_VISIBILITY 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_WCHAR_H 1 - -/* Define if you have the 'wchar_t' type. */ -#define HAVE_WCHAR_T 1 - -/* Define to 1 if you have the `wcrtomb' function. */ -#define HAVE_WCRTOMB 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_WINSOCK2_H */ - -/* Define if you have the 'wint_t' type. */ -#define HAVE_WINT_T 1 - -/* Define to 1 if O_NOATIME works. */ -#define HAVE_WORKING_O_NOATIME 1 - -/* Define to 1 if O_NOFOLLOW works. */ -#define HAVE_WORKING_O_NOFOLLOW 1 - -/* Define to 1 if the system has the type `_Bool'. */ -#define HAVE__BOOL 1 - -/* Define to 1 if you have the `_NSGetExecutablePath' function. */ -/* #undef HAVE__NSGETEXECUTABLEPATH */ - -/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ -/* #undef HAVE__SET_INVALID_PARAMETER_HANDLER */ - -/* Define to 1 if the compiler supports __builtin_expect, - and to 2 if does. */ -#define HAVE___BUILTIN_EXPECT 1 -#ifndef HAVE___BUILTIN_EXPECT -# define __builtin_expect(e, c) (e) -#elif HAVE___BUILTIN_EXPECT == 2 -# include -#endif - - -/* Define to 1 if ctype.h defines __header_inline. */ -/* #undef HAVE___HEADER_INLINE */ - -/* Please see the Gnulib manual for how to use these macros. - - Suppress extern inline with HP-UX cc, as it appears to be broken; see - . - - Suppress extern inline with Sun C in standards-conformance mode, as it - mishandles inline functions that call each other. E.g., for 'inline void f - (void) { } inline void g (void) { f (); }', c99 incorrectly complains - 'reference to static identifier "f" in extern inline function'. - This bug was observed with Oracle Developer Studio 12.6 - (Sun C 5.15 SunOS_sparc 2017/05/30). - - Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) - on configurations that mistakenly use 'static inline' to implement - functions or macros in standard C headers like . For example, - if isdigit is mistakenly implemented via a static inline function, - a program containing an extern inline function that calls isdigit - may not work since the C standard prohibits extern inline functions - from calling static functions (ISO C 99 section 6.7.4.(3). - This bug is known to occur on: - - OS X 10.8 and earlier; see: - https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html - - DragonFly; see - http://muscles.dragonflybsd.org/bulk/clang-master-potential/20141111_102002/logs/ah-tty-0.3.12.log - - FreeBSD; see: - https://lists.gnu.org/r/bug-gnulib/2014-07/msg00104.html - - OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and - for clang but remains for g++; see . - Assume DragonFly and FreeBSD will be similar. - - GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. It defines a macro - __GNUC_STDC_INLINE__ to indicate this situation or a macro - __GNUC_GNU_INLINE__ to indicate the opposite situation. - GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline - semantics but warns, unless -fgnu89-inline is used: - warning: C99 inline functions are not supported; using GNU89 - warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute - It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. - */ -#if (((defined __APPLE__ && defined __MACH__) \ - || defined __DragonFly__ || defined __FreeBSD__) \ - && (defined HAVE___HEADER_INLINE \ - ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ - && ! defined __clang__) \ - : ((! defined _DONT_USE_CTYPE_INLINE_ \ - && (defined __GNUC__ || defined __cplusplus)) \ - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - && defined __GNUC__ && ! defined __cplusplus)))) -# define _GL_EXTERN_INLINE_STDHEADER_BUG -#endif -#if ((__GNUC__ \ - ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ - : (199901L <= __STDC_VERSION__ \ - && !defined __HP_cc \ - && !defined __PGI \ - && !(defined __SUNPRO_C && __STDC__))) \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# define _GL_INLINE inline -# define _GL_EXTERN_INLINE extern inline -# define _GL_EXTERN_INLINE_IN_USE -#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ - && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) -# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ - /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ -# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) -# else -# define _GL_INLINE extern inline -# endif -# define _GL_EXTERN_INLINE extern -# define _GL_EXTERN_INLINE_IN_USE -#else -# define _GL_INLINE _GL_UNUSED static -# define _GL_EXTERN_INLINE _GL_UNUSED static -#endif - -/* In GCC 4.6 (inclusive) to 5.1 (exclusive), - suppress bogus "no previous prototype for 'FOO'" - and "no previous declaration for 'FOO'" diagnostics, - when FOO is an inline function in the header; see - and - . */ -#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ -# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ -# define _GL_INLINE_HEADER_CONST_PRAGMA -# else -# define _GL_INLINE_HEADER_CONST_PRAGMA \ - _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") -# endif -# define _GL_INLINE_HEADER_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ - _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ - _GL_INLINE_HEADER_CONST_PRAGMA -# define _GL_INLINE_HEADER_END \ - _Pragma ("GCC diagnostic pop") -#else -# define _GL_INLINE_HEADER_BEGIN -# define _GL_INLINE_HEADER_END -#endif - -/* Define to 1 if the compiler supports the keyword '__inline'. */ -#define HAVE___INLINE 1 - -/* Define as const if the declaration of iconv() needs const. */ -#define ICONV_CONST - -/* Define to the value of ${prefix}, as a string. */ -#define INSTALLPREFIX "/usr/local" - -/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing - slash. */ -#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#define LT_OBJDIR ".libs/" - -/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ -#define MALLOC_0_IS_NONNULL 1 - -/* Use GNU style printf and scanf. */ -#ifndef __USE_MINGW_ANSI_STDIO -# define __USE_MINGW_ANSI_STDIO 1 -#endif - - -/* Define to 1 if open() fails to recognize a trailing slash. */ -/* #undef OPEN_TRAILING_SLASH_BUG */ - -/* Name of package */ -#define PACKAGE "libiconv" - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "libiconv" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libiconv 1.17" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "libiconv" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "1.17" - -/* Define to the type that is the result of default argument promotions of - type mode_t. */ -#define PROMOTED_MODE_T mode_t - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'ptrdiff_t'. */ -#define PTRDIFF_T_SUFFIX l - -/* Define to 1 if readlink fails to recognize a trailing slash. */ -/* #undef READLINK_TRAILING_SLASH_BUG */ - -/* Define to 1 if readlink sets errno instead of truncating a too-long link. - */ -/* #undef READLINK_TRUNCATE_BUG */ - -/* Define to 1 if stat needs help when passed a file name with a trailing - slash */ -/* #undef REPLACE_FUNC_STAT_FILE */ - -/* Define to 1 if strerror(0) does not return a message implying success. */ -/* #undef REPLACE_STRERROR_0 */ - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'sig_atomic_t'. */ -#define SIG_ATOMIC_T_SUFFIX - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'size_t'. */ -#define SIZE_T_SUFFIX ul - -/* 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 */ - -/* Define to 1 if the `S_IS*' macros in do not work properly. */ -/* #undef STAT_MACROS_BROKEN */ - -/* Define to 1 if all of the C90 standard headers exist (not just the ones - required in a freestanding environment). This macro is provided for - backward compatibility; new code need not use it. */ -#define STDC_HEADERS 1 - -/* Define to 1 if strerror_r returns char *. */ -#define STRERROR_R_CHAR_P 1 - -/* Define to 1 if the type of the st_atim member of a struct stat is struct - timespec. */ -#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1 - -/* Define to the prefix of C symbols at the assembler and linker level, either - an underscore or empty. */ -#define USER_LABEL_PREFIX - -/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# define _ALL_SOURCE 1 -#endif -/* Enable general extensions on macOS. */ -#ifndef _DARWIN_C_SOURCE -# define _DARWIN_C_SOURCE 1 -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# define __EXTENSIONS__ 1 -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif -/* Enable X/Open compliant socket functions that do not require linking - with -lxnet on HP-UX 11.11. */ -#ifndef _HPUX_ALT_XOPEN_SOCKET_API -# define _HPUX_ALT_XOPEN_SOCKET_API 1 -#endif -/* Identify the host operating system as Minix. - This macro does not affect the system headers' behavior. - A future release of Autoconf may stop defining this macro. */ -#ifndef _MINIX -/* # undef _MINIX */ -#endif -/* Enable general extensions on NetBSD. - Enable NetBSD compatibility extensions on Minix. */ -#ifndef _NETBSD_SOURCE -# define _NETBSD_SOURCE 1 -#endif -/* Enable OpenBSD compatibility extensions on NetBSD. - Oddly enough, this does nothing on OpenBSD. */ -#ifndef _OPENBSD_SOURCE -# define _OPENBSD_SOURCE 1 -#endif -/* Define to 1 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_SOURCE -/* # undef _POSIX_SOURCE */ -#endif -/* Define to 2 if needed for POSIX-compatible behavior. */ -#ifndef _POSIX_1_SOURCE -/* # undef _POSIX_1_SOURCE */ -#endif -/* Enable POSIX-compatible threading on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# define _POSIX_PTHREAD_SEMANTICS 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ -#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ -# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ -#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ -# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ -#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ -# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ -#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ -# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ -#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ -# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 -#endif -/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ -#ifndef __STDC_WANT_LIB_EXT2__ -# define __STDC_WANT_LIB_EXT2__ 1 -#endif -/* Enable extensions specified by ISO/IEC 24747:2009. */ -#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ -# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# define _TANDEM_SOURCE 1 -#endif -/* Enable X/Open extensions. Define to 500 only if necessary - to make mbstate_t available. */ -#ifndef _XOPEN_SOURCE -/* # undef _XOPEN_SOURCE */ -#endif - - -/* An alias of GNULIB_STDIO_SINGLE_THREAD. */ -#define USE_UNLOCKED_IO GNULIB_STDIO_SINGLE_THREAD - -/* Version number of package */ -#define VERSION "1.17" - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'wchar_t'. */ -#define WCHAR_T_SUFFIX u - -/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type - 'wint_t'. */ -#define WINT_T_SUFFIX u - -/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most - significant byte first (like Motorola and SPARC, unlike Intel). */ -#if defined AC_APPLE_UNIVERSAL_BUILD -# if defined __BIG_ENDIAN__ -# define WORDS_BIGENDIAN 1 -# endif -#else -# ifndef WORDS_BIGENDIAN -/* # undef WORDS_BIGENDIAN */ -# endif -#endif - -/* Define if the machine's byte ordering is little endian. */ -#define WORDS_LITTLEENDIAN 1 - -/* Number of bits in a file offset, on hosts where this is settable. */ -/* #undef _FILE_OFFSET_BITS */ - -/* True if the compiler says it groks GNU C version MAJOR.MINOR. */ -#if defined __GNUC__ && defined __GNUC_MINOR__ -# define _GL_GNUC_PREREQ(major, minor) \ - ((major) < __GNUC__ + ((minor) <= __GNUC_MINOR__)) -#else -# define _GL_GNUC_PREREQ(major, minor) 0 -#endif - - -/* Define to enable the declarations of ISO C 11 types and functions. */ -/* #undef _ISOC11_SOURCE */ - -/* Define for large files, on AIX-style hosts. */ -/* #undef _LARGE_FILES */ - -/* The _Noreturn keyword of C11. */ -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (_GL_GNUC_PREREQ (4, 7) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif _GL_GNUC_PREREQ (2, 8) || defined __clang__ || 0x5110 <= __SUNPRO_C -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif - - -/* Number of bits in a timestamp, on hosts where this is settable. */ -/* #undef _TIME_BITS */ - -/* For standard stat data types on VMS. */ -#define _USE_STD_STAT 1 - -/* For 64-bit time_t on 32-bit mingw. */ -/* #undef __MINGW_USE_VC2005_COMPAT */ - -/* Define to 1 if the system predates C++11. */ -/* #undef __STDC_CONSTANT_MACROS */ - -/* Define to 1 if the system predates C++11. */ -/* #undef __STDC_LIMIT_MACROS */ - -/* Define to 1 if C does not support variable-length arrays, and if the - compiler does not already define this. */ -/* #undef __STDC_NO_VLA__ */ - -/* The _GL_ASYNC_SAFE marker should be attached to functions that are - signal handlers (for signals other than SIGABRT, SIGPIPE) or can be - invoked from such signal handlers. Such functions have some restrictions: - * All functions that it calls should be marked _GL_ASYNC_SAFE as well, - or should be listed as async-signal-safe in POSIX - - section 2.4.3. Note that malloc(), sprintf(), and fwrite(), in - particular, are NOT async-signal-safe. - * All memory locations (variables and struct fields) that these functions - access must be marked 'volatile'. This holds for both read and write - accesses. Otherwise the compiler might optimize away stores to and - reads from such locations that occur in the program, depending on its - data flow analysis. For example, when the program contains a loop - that is intended to inspect a variable set from within a signal handler - while (!signal_occurred) - ; - the compiler is allowed to transform this into an endless loop if the - variable 'signal_occurred' is not declared 'volatile'. - Additionally, recall that: - * A signal handler should not modify errno (except if it is a handler - for a fatal signal and ends by raising the same signal again, thus - provoking the termination of the process). If it invokes a function - that may clobber errno, it needs to save and restore the value of - errno. */ -#define _GL_ASYNC_SAFE - - -/* Attributes. */ -#if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))) -# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__) -#else -# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr -# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2) -# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_cold _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_const _GL_GNUC_PREREQ (2, 95) -# define _GL_ATTR_deprecated _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_diagnose_if 0 -# define _GL_ATTR_error _GL_GNUC_PREREQ (4, 3) -# define _GL_ATTR_externally_visible _GL_GNUC_PREREQ (4, 1) -# define _GL_ATTR_fallthrough _GL_GNUC_PREREQ (7, 0) -# define _GL_ATTR_format _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_leaf _GL_GNUC_PREREQ (4, 6) -# define _GL_ATTR_malloc _GL_GNUC_PREREQ (3, 0) -# ifdef _ICC -# define _GL_ATTR_may_alias 0 -# else -# define _GL_ATTR_may_alias _GL_GNUC_PREREQ (3, 3) -# endif -# define _GL_ATTR_noinline _GL_GNUC_PREREQ (3, 1) -# define _GL_ATTR_nonnull _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_nonstring _GL_GNUC_PREREQ (8, 0) -# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3) -# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96) -# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9) -# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0) -# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7) -# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4) -#endif - -#ifdef __has_c_attribute -# if ((defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) <= 201710 \ - && _GL_GNUC_PREREQ (4, 6)) -# pragma GCC diagnostic ignored "-Wpedantic" -# endif -# define _GL_HAS_C_ATTRIBUTE(attr) __has_c_attribute (__##attr##__) -#else -# define _GL_HAS_C_ATTRIBUTE(attr) 0 -#endif - - -/* _GL_ATTRIBUTE_ALLOC_SIZE ((N)) declares that the Nth argument of the function - is the size of the returned memory block. - _GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied - by the Nth argument of the function is the size of the returned memory block. - */ -/* Applies to: function, pointer to function, function types. */ -#if _GL_HAS_ATTRIBUTE (alloc_size) -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) -#else -# define _GL_ATTRIBUTE_ALLOC_SIZE(args) -#endif - -/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the - function and report an error if it cannot do so. */ -/* Applies to: function. */ -#if _GL_HAS_ATTRIBUTE (always_inline) -# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__)) -#else -# define _GL_ATTRIBUTE_ALWAYS_INLINE -#endif - -/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show - in stack traces when debugging. The compiler should omit the function from - stack traces. */ -/* Applies to: function. */ -#if _GL_HAS_ATTRIBUTE (artificial) -# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__)) -#else -# define _GL_ATTRIBUTE_ARTIFICIAL -#endif - -/* _GL_ATTRIBUTE_COLD declares that the function is rarely executed. */ -/* Applies to: functions. */ -/* Avoid __attribute__ ((cold)) on MinGW; see thread starting at - . - Also, Oracle Studio 12.6 requires 'cold' not '__cold__'. */ -#if _GL_HAS_ATTRIBUTE (cold) && !defined __MINGW32__ -# ifndef __SUNPRO_C -# define _GL_ATTRIBUTE_COLD __attribute__ ((__cold__)) -# else -# define _GL_ATTRIBUTE_COLD __attribute__ ((cold)) -# endif -#else -# define _GL_ATTRIBUTE_COLD -#endif - -/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate - calls to the function with the same arguments. - This attribute is safe for a function that neither depends on nor affects - observable state, and always returns exactly once - e.g., does not loop - forever, and does not call longjmp. - (This attribute is stricter than _GL_ATTRIBUTE_PURE.) */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (const) -# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) -#else -# define _GL_ATTRIBUTE_CONST -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. - _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#if _GL_GNUC_PREREQ (11, 0) -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -#else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -#endif -/* If gnulib's or has already defined this macro, continue - to use this earlier definition, since may not have been included - yet. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) -#endif - -/* _GL_ATTRIBUTE_DEPRECATED: Declares that an entity is deprecated. - The compiler may warn if the entity is used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: namespace, class, template specialization. */ -#if _GL_HAS_C_ATTRIBUTE (deprecated) -# define _GL_ATTRIBUTE_DEPRECATED [[__deprecated__]] -#elif _GL_HAS_ATTRIBUTE (deprecated) -# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__)) -#else -# define _GL_ATTRIBUTE_DEPRECATED -#endif - -/* _GL_ATTRIBUTE_ERROR(msg) requests an error if a function is called and - the function call is not optimized away. - _GL_ATTRIBUTE_WARNING(msg) requests a warning if a function is called and - the function call is not optimized away. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (error) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__error__ (msg))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__warning__ (msg))) -#elif _GL_HAS_ATTRIBUTE (diagnose_if) -# define _GL_ATTRIBUTE_ERROR(msg) __attribute__ ((__diagnose_if__ (1, msg, "error"))) -# define _GL_ATTRIBUTE_WARNING(msg) __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -#else -# define _GL_ATTRIBUTE_ERROR(msg) -# define _GL_ATTRIBUTE_WARNING(msg) -#endif - -/* _GL_ATTRIBUTE_EXTERNALLY_VISIBLE declares that the entity should remain - visible to debuggers etc., even with '-fwhole-program'. */ -/* Applies to: functions, variables. */ -#if _GL_HAS_ATTRIBUTE (externally_visible) -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((externally_visible)) -#else -# define _GL_ATTRIBUTE_EXTERNALLY_VISIBLE -#endif - -/* _GL_ATTRIBUTE_FALLTHROUGH declares that it is not a programming mistake if - the control flow falls through to the immediately following 'case' or - 'default' label. The compiler should not warn in this case. */ -/* Applies to: Empty statement (;), inside a 'switch' statement. */ -/* Always expands to something. */ -#if _GL_HAS_C_ATTRIBUTE (fallthrough) -# define _GL_ATTRIBUTE_FALLTHROUGH [[__fallthrough__]] -#elif _GL_HAS_ATTRIBUTE (fallthrough) -# define _GL_ATTRIBUTE_FALLTHROUGH __attribute__ ((__fallthrough__)) -#else -# define _GL_ATTRIBUTE_FALLTHROUGH ((void) 0) -#endif - -/* _GL_ATTRIBUTE_FORMAT ((ARCHETYPE, STRING-INDEX, FIRST-TO-CHECK)) - declares that the STRING-INDEXth function argument is a format string of - style ARCHETYPE, which is one of: - printf, gnu_printf - scanf, gnu_scanf, - strftime, gnu_strftime, - strfmon, - or the same thing prefixed and suffixed with '__'. - If FIRST-TO-CHECK is not 0, arguments starting at FIRST-TO_CHECK - are suitable for the format string. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (format) -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -#else -# define _GL_ATTRIBUTE_FORMAT(spec) -#endif - -/* _GL_ATTRIBUTE_LEAF declares that if the function is called from some other - compilation unit, it executes code from that unit only by return or by - exception handling. This declaration lets the compiler optimize that unit - more aggressively. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (leaf) -# define _GL_ATTRIBUTE_LEAF __attribute__ ((__leaf__)) -#else -# define _GL_ATTRIBUTE_LEAF -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (malloc) -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -#else -# define _GL_ATTRIBUTE_MALLOC -#endif - -/* _GL_ATTRIBUTE_MAY_ALIAS declares that pointers to the type may point to the - same storage as pointers to other types. Thus this declaration disables - strict aliasing optimization. */ -/* Applies to: types. */ -/* Oracle Studio 12.6 mishandles may_alias despite __has_attribute OK. */ -#if _GL_HAS_ATTRIBUTE (may_alias) && !defined __SUNPRO_C -# define _GL_ATTRIBUTE_MAY_ALIAS __attribute__ ((__may_alias__)) -#else -# define _GL_ATTRIBUTE_MAY_ALIAS -#endif - -/* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if - the entity is not used. The compiler should not warn if the entity is not - used. */ -/* Applies to: - - function, variable, - - struct, union, struct/union member, - - enumeration, enumeration item, - - typedef, - in C++ also: class. */ -/* In C++ and C2x, this is spelled [[__maybe_unused__]]. - GCC's syntax is __attribute__ ((__unused__)). - clang supports both syntaxes. */ -#if _GL_HAS_C_ATTRIBUTE (maybe_unused) -# define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]] -#else -# define _GL_ATTRIBUTE_MAYBE_UNUSED _GL_ATTRIBUTE_UNUSED -#endif -/* Alternative spelling of this macro, for convenience. */ -#define _GL_UNUSED _GL_ATTRIBUTE_MAYBE_UNUSED -/* Earlier spellings of this macro. */ -#define _UNUSED_PARAMETER_ _GL_ATTRIBUTE_MAYBE_UNUSED - -/* _GL_ATTRIBUTE_NODISCARD declares that the caller of the function should not - discard the return value. The compiler may warn if the caller does not use - the return value, unless the caller uses something like ignore_value. */ -/* Applies to: function, enumeration, class. */ -#if _GL_HAS_C_ATTRIBUTE (nodiscard) -# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]] -#elif _GL_HAS_ATTRIBUTE (warn_unused_result) -# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__)) -#else -# define _GL_ATTRIBUTE_NODISCARD -#endif - -/* _GL_ATTRIBUTE_NOINLINE tells that the compiler should not inline the - function. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (noinline) -# define _GL_ATTRIBUTE_NOINLINE __attribute__ ((__noinline__)) -#else -# define _GL_ATTRIBUTE_NOINLINE -#endif - -/* _GL_ATTRIBUTE_NONNULL ((N1, N2,...)) declares that the arguments N1, N2,... - must not be NULL. - _GL_ATTRIBUTE_NONNULL () declares that all pointer arguments must not be - null. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (nonnull) -# define _GL_ATTRIBUTE_NONNULL(args) __attribute__ ((__nonnull__ args)) -#else -# define _GL_ATTRIBUTE_NONNULL(args) -#endif - -/* _GL_ATTRIBUTE_NONSTRING declares that the contents of a character array is - not meant to be NUL-terminated. */ -/* Applies to: struct/union members and variables that are arrays of element - type '[[un]signed] char'. */ -#if _GL_HAS_ATTRIBUTE (nonstring) -# define _GL_ATTRIBUTE_NONSTRING __attribute__ ((__nonstring__)) -#else -# define _GL_ATTRIBUTE_NONSTRING -#endif - -/* There is no _GL_ATTRIBUTE_NORETURN; use _Noreturn instead. */ - -/* _GL_ATTRIBUTE_NOTHROW declares that the function does not throw exceptions. - */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (nothrow) && !defined __cplusplus -# define _GL_ATTRIBUTE_NOTHROW __attribute__ ((__nothrow__)) -#else -# define _GL_ATTRIBUTE_NOTHROW -#endif - -/* _GL_ATTRIBUTE_PACKED declares: - For struct members: The member has the smallest possible alignment. - For struct, union, class: All members have the smallest possible alignment, - minimizing the memory required. */ -/* Applies to: struct members, struct, union, - in C++ also: class. */ -#if _GL_HAS_ATTRIBUTE (packed) -# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__)) -#else -# define _GL_ATTRIBUTE_PACKED -#endif - -/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate - calls to the function with the same arguments if observable state is not - changed between calls. - This attribute is safe for a function that does not affect - observable state, and always returns exactly once. - (This attribute is looser than _GL_ATTRIBUTE_CONST.) */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (pure) -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -#else -# define _GL_ATTRIBUTE_PURE -#endif - -/* _GL_ATTRIBUTE_RETURNS_NONNULL declares that the function's return value is - a non-NULL pointer. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (returns_nonnull) -# define _GL_ATTRIBUTE_RETURNS_NONNULL __attribute__ ((__returns_nonnull__)) -#else -# define _GL_ATTRIBUTE_RETURNS_NONNULL -#endif - -/* _GL_ATTRIBUTE_SENTINEL(pos) declares that the variadic function expects a - trailing NULL argument. - _GL_ATTRIBUTE_SENTINEL () - The last argument is NULL (requires C99). - _GL_ATTRIBUTE_SENTINEL ((N)) - The (N+1)st argument from the end is NULL. */ -/* Applies to: functions. */ -#if _GL_HAS_ATTRIBUTE (sentinel) -# define _GL_ATTRIBUTE_SENTINEL(pos) __attribute__ ((__sentinel__ pos)) -#else -# define _GL_ATTRIBUTE_SENTINEL(pos) -#endif - -/* A helper macro. Don't use it directly. */ -#if _GL_HAS_ATTRIBUTE (unused) -# define _GL_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -#else -# define _GL_ATTRIBUTE_UNUSED -#endif - - -/* _GL_UNUSED_LABEL; declares that it is not a programming mistake if the - immediately preceding label is not used. The compiler should not warn - if the label is not used. */ -/* Applies to: label (both in C and C++). */ -/* Note that g++ < 4.5 does not support the '__attribute__ ((__unused__)) ;' - syntax. But clang does. */ -#if !(defined __cplusplus && !_GL_GNUC_PREREQ (4, 5)) || defined __clang__ -# define _GL_UNUSED_LABEL _GL_ATTRIBUTE_UNUSED -#else -# define _GL_UNUSED_LABEL -#endif - - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports - the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of - earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. - __APPLE__ && __MACH__ test for Mac OS X. - __APPLE_CC__ tests for the Apple compiler and its version. - __STDC_VERSION__ tests for the C99 mode. */ -#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ -# define __GNUC_STDC_INLINE__ 1 -#endif - -/* Define to a type if does not define. */ -/* #undef mbstate_t */ - -/* _GL_CMP (n1, n2) performs a three-valued comparison on n1 vs. n2, where - n1 and n2 are expressions without side effects, that evaluate to real - numbers (excluding NaN). - It returns - 1 if n1 > n2 - 0 if n1 == n2 - -1 if n1 < n2 - The naïve code (n1 > n2 ? 1 : n1 < n2 ? -1 : 0) produces a conditional - jump with nearly all GCC versions up to GCC 10. - This variant (n1 < n2 ? -1 : n1 > n2) produces a conditional with many - GCC versions up to GCC 9. - The better code (n1 > n2) - (n1 < n2) from Hacker's Delight § 2-9 - avoids conditional jumps in all GCC versions >= 3.4. */ -#define _GL_CMP(n1, n2) (((n1) > (n2)) - ((n1) < (n2))) - - -/* Define to `int' if does not define. */ -/* #undef mode_t */ - -/* Define to the type of st_nlink in struct stat, or a supertype. */ -/* #undef nlink_t */ - -/* Define as a signed integer type capable of holding a process identifier. */ -/* #undef pid_t */ - -/* Define to the equivalent of the C99 'restrict' keyword, or to - nothing if this is not supported. Do not define if restrict is - supported only directly. */ -#define restrict __restrict__ -/* Work around a bug in older versions of Sun C++, which did not - #define __restrict__ or support _Restrict or __restrict__ - even though the corresponding Sun C compiler ended up with - "#define restrict _Restrict" or "#define restrict __restrict__" - in the previous line. This workaround can be removed once - we assume Oracle Developer Studio 12.5 (2016) or later. */ -#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__ -# define _Restrict -# define __restrict__ -#endif - -/* Define to `unsigned int' if does not define. */ -/* #undef size_t */ - -/* Define as a signed type of the same size as size_t. */ -/* #undef ssize_t */ - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ - - - /* This definition is a duplicate of the one in unitypes.h. - It is here so that we can cope with an older version of unitypes.h - that does not contain this definition and that is pre-installed among - the public header files. */ - # if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 - # define _UC_RESTRICT __restrict - # elif 199901L <= __STDC_VERSION__ || defined restrict - # define _UC_RESTRICT restrict - # else - # define _UC_RESTRICT - # endif - - - -/* On Windows, variables that may be in a DLL must be marked specially. */ -#if defined _MSC_VER && defined _DLL -# define DLL_VARIABLE __declspec (dllimport) -#else -# define DLL_VARIABLE -#endif - diff --git a/jni/parted/libiconv/lib/converters.h b/jni/parted/libiconv/lib/converters.h deleted file mode 100755 index e2e2227..0000000 --- a/jni/parted/libiconv/lib/converters.h +++ /dev/null @@ -1,359 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2004-2011, 2016, 2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* This file defines all the converters. */ - - -/* Our own notion of wide character, as UCS-4, according to ISO-10646-1. */ -typedef unsigned int ucs4_t; - -/* State used by a conversion. 0 denotes the initial state. */ -typedef unsigned int state_t; - -/* iconv_t is an opaque type. This is the real iconv_t type. */ -typedef struct conv_struct * conv_t; - -/* - * Data type for conversion multibyte -> unicode - */ -struct mbtowc_funcs { - int (*xxx_mbtowc) (conv_t conv, ucs4_t *pwc, unsigned char const *s, size_t n); - /* - * int xxx_mbtowc (conv_t conv, ucs4_t *pwc, unsigned char const *s, size_t n) - * converts the byte sequence starting at s to a wide character. Up to n bytes - * are available at s. n is >= 1. - * Result is number of bytes consumed (if a wide character was read), - * or -1 if invalid, or -2 if n too small, - * or RET_SHIFT_ILSEQ(number of bytes consumed) if invalid input after a shift - * sequence was read, - * or RET_TOOFEW(number of bytes consumed) if only a shift sequence was read. - */ - int (*xxx_flushwc) (conv_t conv, ucs4_t *pwc); - /* - * int xxx_flushwc (conv_t conv, ucs4_t *pwc) - * returns to the initial state and stores the pending wide character, if any. - * Result is 1 (if a wide character was read) or 0 if none was pending. - */ -}; - -/* Return code if invalid input after a shift sequence of n bytes was read. - (xxx_mbtowc) */ -#define RET_SHIFT_ILSEQ(n) (-1-2*(n)) -/* Return code if invalid. (xxx_mbtowc) */ -#define RET_ILSEQ RET_SHIFT_ILSEQ(0) -/* Return code if only a shift sequence of n bytes was read. (xxx_mbtowc) */ -#define RET_TOOFEW(n) (-2-2*(n)) -/* Retrieve the n from the encoded RET_... value. */ -#define DECODE_SHIFT_ILSEQ(r) ((unsigned int)(RET_SHIFT_ILSEQ(0) - (r)) / 2) -#define DECODE_TOOFEW(r) ((unsigned int)(RET_TOOFEW(0) - (r)) / 2) -/* Maximum value of n that may be used as argument to RET_SHIFT_ILSEQ or RET_TOOFEW. */ -#define RET_COUNT_MAX ((INT_MAX / 2) - 1) - -/* - * Data type for conversion unicode -> multibyte - */ -struct wctomb_funcs { - int (*xxx_wctomb) (conv_t conv, unsigned char *r, ucs4_t wc, size_t n); - /* - * int xxx_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) - * converts the wide character wc to the character set xxx, and stores the - * result beginning at r. Up to n bytes may be written at r. n is >= 1. - * Result is number of bytes written, or -1 if invalid, or -2 if n too small. - */ - int (*xxx_reset) (conv_t conv, unsigned char *r, size_t n); - /* - * int xxx_reset (conv_t conv, unsigned char *r, size_t n) - * stores a shift sequences returning to the initial state beginning at r. - * Up to n bytes may be written at r. n is >= 0. - * Result is number of bytes written, or -2 if n too small. - */ -}; - -/* Return code if invalid. (xxx_wctomb) */ -#define RET_ILUNI -1 -/* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ -#define RET_TOOSMALL -2 - -/* - * Contents of a conversion descriptor. - */ -struct conv_struct { - struct loop_funcs lfuncs; - /* Input (conversion multibyte -> unicode) */ - int iindex; - struct mbtowc_funcs ifuncs; - state_t istate; - /* Output (conversion unicode -> multibyte) */ - int oindex; - struct wctomb_funcs ofuncs; - int oflags; - state_t ostate; - /* Operation flags */ - int transliterate; - int discard_ilseq; - #ifndef LIBICONV_PLUG - struct iconv_fallbacks fallbacks; - struct iconv_hooks hooks; - #endif -}; - -/* - * Include all the converters. - */ - -#include "ascii.h" - -/* General multi-byte encodings */ -#include "utf8.h" -#include "ucs2.h" -#include "ucs2be.h" -#include "ucs2le.h" -#include "ucs4.h" -#include "ucs4be.h" -#include "ucs4le.h" -#include "utf16.h" -#include "utf16be.h" -#include "utf16le.h" -#include "utf32.h" -#include "utf32be.h" -#include "utf32le.h" -#include "utf7.h" -#include "ucs2internal.h" -#include "ucs2swapped.h" -#include "ucs4internal.h" -#include "ucs4swapped.h" -#include "c99.h" -#include "java.h" - -/* 8-bit encodings */ -#include "iso8859_1.h" -#include "iso8859_2.h" -#include "iso8859_3.h" -#include "iso8859_4.h" -#include "iso8859_5.h" -#include "iso8859_6.h" -#include "iso8859_7.h" -#include "iso8859_8.h" -#include "iso8859_9.h" -#include "iso8859_10.h" -#include "iso8859_11.h" -#include "iso8859_13.h" -#include "iso8859_14.h" -#include "iso8859_15.h" -#include "iso8859_16.h" -#include "koi8_r.h" -#include "koi8_u.h" -#include "koi8_ru.h" -#include "cp1250.h" -#include "cp1251.h" -#include "cp1252.h" -#include "cp1253.h" -#include "cp1254.h" -#include "cp1255.h" -#include "cp1256.h" -#include "cp1257.h" -#include "cp1258.h" -#include "cp850.h" -#include "cp862.h" -#include "cp866.h" -#include "cp1131.h" -#include "mac_roman.h" -#include "mac_centraleurope.h" -#include "mac_iceland.h" -#include "mac_croatian.h" -#include "mac_romania.h" -#include "mac_cyrillic.h" -#include "mac_ukraine.h" -#include "mac_greek.h" -#include "mac_turkish.h" -#include "mac_hebrew.h" -#include "mac_arabic.h" -#include "mac_thai.h" -#include "hp_roman8.h" -#include "nextstep.h" -#include "armscii_8.h" -#include "georgian_academy.h" -#include "georgian_ps.h" -#include "koi8_t.h" -#include "pt154.h" -#include "rk1048.h" -#include "mulelao.h" -#include "cp1133.h" -#include "tis620.h" -#include "cp874.h" -#include "viscii.h" -#include "tcvn.h" - -/* CJK character sets [CCS = coded character set] [CJKV.INF chapter 3] */ - -typedef struct { - unsigned short indx; /* index into big table */ - unsigned short used; /* bitmask of used entries */ -} Summary16; - -#include "iso646_jp.h" -#include "jisx0201.h" -#include "jisx0208.h" -#include "jisx0212.h" - -#include "iso646_cn.h" -#include "gb2312.h" -#include "isoir165.h" -/*#include "gb12345.h"*/ -#include "gbk.h" -#include "cns11643.h" -#include "big5.h" - -#include "ksc5601.h" -#include "johab_hangul.h" - -/* CJK encodings [CES = character encoding scheme] [CJKV.INF chapter 4] */ - -#include "euc_jp.h" -#include "sjis.h" -#include "cp932.h" -#include "iso2022_jp.h" -#include "iso2022_jp1.h" -#include "iso2022_jp2.h" -#include "iso2022_jpms.h" - -#include "euc_cn.h" -#include "ces_gbk.h" -#include "cp936.h" -#include "gb18030.h" -#include "iso2022_cn.h" -#include "iso2022_cnext.h" -#include "hz.h" -#include "euc_tw.h" -#include "ces_big5.h" -#include "cp950.h" -#include "big5hkscs1999.h" -#include "big5hkscs2001.h" -#include "big5hkscs2004.h" -#include "big5hkscs2008.h" - -#include "euc_kr.h" -#include "cp949.h" -#include "johab.h" -#include "iso2022_kr.h" - -/* Encodings used by system dependent locales. */ - -#ifdef USE_AIX -#include "cp856.h" -#include "cp922.h" -#include "cp943.h" -#include "cp1046.h" -#include "cp1124.h" -#include "cp1129.h" -#include "cp1161.h" -#include "cp1162.h" -#include "cp1163.h" -#endif - -#ifdef USE_OSF1 -#include "dec_kanji.h" -#include "dec_hanyu.h" -#endif - -#ifdef USE_DOS -#include "cp437.h" -#include "cp737.h" -#include "cp775.h" -#include "cp852.h" -#include "cp853.h" -#include "cp855.h" -#include "cp857.h" -#include "cp858.h" -#include "cp860.h" -#include "cp861.h" -#include "cp863.h" -#include "cp864.h" -#include "cp865.h" -#include "cp869.h" -#include "cp1125.h" -#endif - -#ifdef USE_ZOS -#define DEDUPLICATE_TABLES 1 -#include "ebcdic037.h" -#include "ebcdic273.h" -#include "ebcdic277.h" -#include "ebcdic278.h" -#include "ebcdic280.h" -#include "ebcdic282.h" -#include "ebcdic284.h" -#include "ebcdic285.h" -#include "ebcdic297.h" -#include "ebcdic423.h" -#include "ebcdic424.h" -#include "ebcdic425.h" -#include "ebcdic500.h" -#include "ebcdic838.h" -#include "ebcdic870.h" -#include "ebcdic871.h" -#include "ebcdic875.h" -#include "ebcdic880.h" -#include "ebcdic905.h" -#include "ebcdic924.h" -#include "ebcdic1025.h" -#include "ebcdic1026.h" -#include "ebcdic1047.h" -#include "ebcdic1097.h" -#include "ebcdic1112.h" -#include "ebcdic1122.h" -#include "ebcdic1123.h" -#include "ebcdic1130.h" -#include "ebcdic1132.h" -#include "ebcdic1137.h" -#include "ebcdic1140.h" -#include "ebcdic1141.h" -#include "ebcdic1142.h" -#include "ebcdic1143.h" -#include "ebcdic1144.h" -#include "ebcdic1145.h" -#include "ebcdic1146.h" -#include "ebcdic1147.h" -#include "ebcdic1148.h" -#include "ebcdic1149.h" -#include "ebcdic1153.h" -#include "ebcdic1154.h" -#include "ebcdic1155.h" -#include "ebcdic1156.h" -#include "ebcdic1157.h" -#include "ebcdic1158.h" -#include "ebcdic1160.h" -#include "ebcdic1164.h" -#include "ebcdic1165.h" -#include "ebcdic1166.h" -#include "ebcdic4971.h" -#include "ebcdic12712.h" -#include "ebcdic16804.h" -#endif - -#ifdef USE_EXTRA -#include "euc_jisx0213.h" -#include "shift_jisx0213.h" -#include "iso2022_jp3.h" -#include "big5_2003.h" -#include "tds565.h" -#include "atarist.h" -#include "riscos1.h" -#endif - diff --git a/jni/parted/libiconv/lib/cp1046.h b/jni/parted/libiconv/lib/cp1046.h deleted file mode 100755 index 7ea291f..0000000 --- a/jni/parted/libiconv/lib/cp1046.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1046 - */ - -static const unsigned short cp1046_2uni[128] = { - /* 0x80 */ - 0xfe88, 0x00d7, 0x00f7, 0xf8f6, 0xf8f5, 0xf8f4, 0xf8f7, 0xfe71, - 0x0088, 0x25a0, 0x2502, 0x2500, 0x2510, 0x250c, 0x2514, 0x2518, - /* 0x90 */ - 0xfe79, 0xfe7b, 0xfe7d, 0xfe7f, 0xfe77, 0xfe8a, 0xfef0, 0xfef3, - 0xfef2, 0xfece, 0xfecf, 0xfed0, 0xfef6, 0xfef8, 0xfefa, 0xfefc, - /* 0xa0 */ - 0x00a0, 0xf8fa, 0xf8f9, 0xf8f8, 0x00a4, 0xf8fb, 0xfe8b, 0xfe91, - 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0x060c, 0x00ad, 0xfea7, 0xfeb3, - /* 0xb0 */ - 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, - 0x0668, 0x0669, 0xfeb7, 0x061b, 0xfebb, 0xfebf, 0xfeca, 0x061f, - /* 0xc0 */ - 0xfecb, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, - /* 0xd0 */ - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, - 0xfec7, 0x0639, 0x063a, 0xfecc, 0xfe82, 0xfe84, 0xfe8e, 0xfed3, - /* 0xe0 */ - 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, - 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, - /* 0xf0 */ - 0x0650, 0x0651, 0x0652, 0xfed7, 0xfedb, 0xfedf, 0xf8fc, 0xfef5, - 0xfef7, 0xfef9, 0xfefb, 0xfee3, 0xfee7, 0xfeec, 0xfee9, 0xfffd, -}; - -static int -cp1046_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp1046_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1046_page00[112] = { - 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, /* 0xf0-0xf7 */ -}; -static const unsigned char cp1046_page06[104] = { - 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0x00, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */ - 0xb8, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ -}; -static const unsigned char cp1046_page25[32] = { - 0x8b, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x8c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; -static const unsigned char cp1046_pagef8[16] = { - 0x00, 0x00, 0x00, 0x00, 0x85, 0x84, 0x83, 0x86, /* 0xf0-0xf7 */ - 0xa3, 0xa2, 0xa1, 0xa5, 0xf6, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp1046_pagefe[144] = { - 0x00, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, /* 0x70-0x77 */ - 0x00, 0x90, 0x00, 0x91, 0x00, 0x92, 0x00, 0x93, /* 0x78-0x7f */ - 0x00, 0x00, 0xdc, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x80, 0x00, 0x95, 0xa6, 0x00, 0x00, 0xde, 0x00, /* 0x88-0x8f */ - 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0xaa, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0xae, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0xba, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbd, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, /* 0xc0-0xc7 */ - 0x00, 0x00, 0xbe, 0xc0, 0xdb, 0x00, 0x99, 0x9a, /* 0xc8-0xcf */ - 0x9b, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0xf3, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xf5, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0xfc, /* 0xe0-0xe7 */ - 0x00, 0xfe, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x96, 0x00, 0x98, 0x97, 0x00, 0xf7, 0x9c, 0xf8, /* 0xf0-0xf7 */ - 0x9d, 0xf9, 0x9e, 0xfa, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; - -static int -cp1046_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x0088 && wc < 0x00f8) - c = cp1046_page00[wc-0x0088]; - else if (wc >= 0x0608 && wc < 0x0670) - c = cp1046_page06[wc-0x0608]; - else if (wc >= 0x2500 && wc < 0x2520) - c = cp1046_page25[wc-0x2500]; - else if (wc == 0x25a0) - c = 0x89; - else if (wc >= 0xf8f0 && wc < 0xf900) - c = cp1046_pagef8[wc-0xf8f0]; - else if (wc >= 0xfe70 && wc < 0xff00) - c = cp1046_pagefe[wc-0xfe70]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1124.h b/jni/parted/libiconv/lib/cp1124.h deleted file mode 100755 index 80f1432..0000000 --- a/jni/parted/libiconv/lib/cp1124.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1124 - */ - -static const unsigned short cp1124_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0401, 0x0402, 0x0490, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, - /* 0xb0 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0xc0 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xd0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xe0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - /* 0xf0 */ - 0x2116, 0x0451, 0x0452, 0x0491, 0x0454, 0x0455, 0x0456, 0x0457, - 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, -}; - -static int -cp1124_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp1124_2uni[c-0xa0]; - return 1; -} - -static const unsigned char cp1124_page00[16] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char cp1124_page04[152] = { - 0x00, 0xa1, 0xa2, 0x00, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0x00, 0xf1, 0xf2, 0x00, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xa3, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; - -static int -cp1124_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b0) - c = cp1124_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0498) - c = cp1124_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0xf0; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1125.h b/jni/parted/libiconv/lib/cp1125.h deleted file mode 100755 index ddafbf4..0000000 --- a/jni/parted/libiconv/lib/cp1125.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1125 - */ - -static const unsigned short cp1125_2uni[80] = { - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - /* 0xf0 */ - 0x0401, 0x0451, 0x0490, 0x0491, 0x0404, 0x0454, 0x0406, 0x0456, - 0x0407, 0x0457, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, -}; - -static int -cp1125_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else if (c < 0xb0) - *pwc = (ucs4_t) c + 0x0390; - else - *pwc = (ucs4_t) cp1125_2uni[c-0xb0]; - return 1; -} - -static const unsigned char cp1125_page00[24] = { - 0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ -}; -static const unsigned char cp1125_page04[152] = { - 0x00, 0xf0, 0x00, 0x00, 0xf4, 0x00, 0xf6, 0xf8, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0x00, 0xf1, 0x00, 0x00, 0xf5, 0x00, 0xf7, 0xf9, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xf2, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char cp1125_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp1125_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b8) - c = cp1125_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0498) - c = cp1125_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0xfc; - else if (wc == 0x221a) - c = 0xfb; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp1125_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1129.h b/jni/parted/libiconv/lib/cp1129.h deleted file mode 100755 index 54944ea..0000000 --- a/jni/parted/libiconv/lib/cp1129.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1129 - */ - -static const unsigned short cp1129_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x0153, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0178, 0x00b5, 0x00b6, 0x00b7, - 0x0152, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - /* 0xc0 */ - 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, - /* 0xd0 */ - 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff, -}; - -static int -cp1129_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp1129_2uni[c-0xa0]; - return 1; -} - -static const unsigned char cp1129_page00[272] = { - 0x00, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */ - 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0x00, 0xd1, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc3, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xb8, 0xa8, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xd5, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xa8-0xaf */ - 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ -}; -static const unsigned char cp1129_page03[40] = { - 0xcc, 0xec, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; - -static int -cp1129_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a8) { - *r = wc; - return 1; - } - else if (wc >= 0x00a8 && wc < 0x01b8) - c = cp1129_page00[wc-0x00a8]; - else if (wc >= 0x0300 && wc < 0x0328) - c = cp1129_page03[wc-0x0300]; - else if (wc == 0x20ab) - c = 0xfe; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1131.h b/jni/parted/libiconv/lib/cp1131.h deleted file mode 100755 index 4062394..0000000 --- a/jni/parted/libiconv/lib/cp1131.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1131 - */ - -static const unsigned short cp1131_2uni[128] = { - /* 0x80 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0x90 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xa0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - /* 0xf0 */ - 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, - 0x0406, 0x0456, 0x00b7, 0x00a4, 0x0490, 0x0491, 0x2219, 0x00a0, -}; - -static int -cp1131_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp1131_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp1131_page00[24] = { - 0xff, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ -}; -static const unsigned char cp1131_page04[152] = { - 0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0xf8, 0xf4, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0x00, 0xf1, 0x00, 0x00, 0xf3, 0x00, 0xf9, 0xf5, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xfc, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char cp1131_page25[152] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; - -static int -cp1131_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b8) - c = cp1131_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0498) - c = cp1131_page04[wc-0x0400]; - else if (wc == 0x2219) - c = 0xfe; - else if (wc >= 0x2500 && wc < 0x2598) - c = cp1131_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1133.h b/jni/parted/libiconv/lib/cp1133.h deleted file mode 100755 index 5e69f28..0000000 --- a/jni/parted/libiconv/lib/cp1133.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-CP1133 - */ - -static const unsigned short cp1133_2uni_1[64] = { - /* 0xa0 */ - 0x00a0, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0eaa, 0x0e8a, - 0x0e8d, 0x0e94, 0x0e95, 0x0e96, 0x0e97, 0x0e99, 0x0e9a, 0x0e9b, - /* 0xb0 */ - 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, 0x0ea1, 0x0ea2, 0x0ea3, 0x0ea5, - 0x0ea7, 0x0eab, 0x0ead, 0x0eae, 0xfffd, 0xfffd, 0xfffd, 0x0eaf, - /* 0xc0 */ - 0x0eb0, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, 0x0eb8, - 0x0eb9, 0x0ebc, 0x0eb1, 0x0ebb, 0x0ebd, 0xfffd, 0xfffd, 0xfffd, - /* 0xd0 */ - 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0x0ec8, 0x0ec9, 0x0eca, - 0x0ecb, 0x0ecc, 0x0ecd, 0x0ec6, 0xfffd, 0x0edc, 0x0edd, 0x20ad, -}; -static const unsigned short cp1133_2uni_2[16] = { - /* 0xf0 */ - 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7, - 0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x00a2, 0x00ac, 0x00a6, 0xfffd, -}; - -static int -cp1133_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c < 0xe0) { - unsigned short wc = cp1133_2uni_1[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - else if (c < 0xf0) { - } - else { - unsigned short wc = cp1133_2uni_2[c-0xf0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1133_page00[16] = { - 0xa0, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char cp1133_page0e[96] = { - 0x00, 0xa1, 0xa2, 0x00, 0xa3, 0x00, 0x00, 0xa4, /* 0x80-0x87 */ - 0xa5, 0x00, 0xa7, 0x00, 0x00, 0xa8, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0xa9, 0xaa, 0xab, 0xac, /* 0x90-0x97 */ - 0x00, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, /* 0x98-0x9f */ - 0x00, 0xb4, 0xb5, 0xb6, 0x00, 0xb7, 0x00, 0xb8, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xa6, 0xb9, 0x00, 0xba, 0xbb, 0xbf, /* 0xa8-0xaf */ - 0xc0, 0xca, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, /* 0xb0-0xb7 */ - 0xc7, 0xc8, 0x00, 0xcb, 0xc9, 0xcc, 0x00, 0x00, /* 0xb8-0xbf */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xdb, 0x00, /* 0xc0-0xc7 */ - 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x00, 0x00, /* 0xc8-0xcf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */ - 0xf8, 0xf9, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -cp1133_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b0) - c = cp1133_page00[wc-0x00a0]; - else if (wc >= 0x0e80 && wc < 0x0ee0) - c = cp1133_page0e[wc-0x0e80]; - else if (wc == 0x20ad) - c = 0xdf; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1161.h b/jni/parted/libiconv/lib/cp1161.h deleted file mode 100755 index 5016648..0000000 --- a/jni/parted/libiconv/lib/cp1161.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1161 - */ - -static const unsigned short cp1161_2uni[96] = { - /* 0xa0 */ - 0x0e48, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, - 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, - /* 0xb0 */ - 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, - 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, - /* 0xc0 */ - 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, - 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, - /* 0xd0 */ - 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, - 0x0e38, 0x0e39, 0x0e3a, 0x0e49, 0x0e4a, 0x0e4b, 0x20ac, 0x0e3f, - /* 0xe0 */ - 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, - /* 0xf0 */ - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x00a2, 0x00ac, 0x00a6, 0x00a0, -}; - -static int -cp1161_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c < 0xa0) { - } - else { - *pwc = (ucs4_t) cp1161_2uni[c-0xa0]; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char cp1161_page00[16] = { - 0xff, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; - -static int -cp1161_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b0) - c = cp1161_page00[wc-0x00a0]; - else if (wc >= 0x0e48 && wc < 0x0e4c) - c = wc-0x0d60; - else if (wc >= 0x0e00 && wc < 0x0e60) - c = cp874_page0e[wc-0x0e00]; - else if (wc == 0x20ac) - c = 0xde; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1162.h b/jni/parted/libiconv/lib/cp1162.h deleted file mode 100755 index e7c0eb1..0000000 --- a/jni/parted/libiconv/lib/cp1162.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1162 - */ - -static int -cp1162_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp874_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - } - return RET_ILSEQ; -} - -static int -cp1162_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x0080 && wc < 0x00a0 && cp874_2uni[wc-0x0080] == 0xfffd) - c = wc; - else if (wc == 0x00a0) - c = 0xa0; - else if (wc >= 0x0e00 && wc < 0x0e60) - c = cp874_page0e[wc-0x0e00]; - else if (wc >= 0x2010 && wc < 0x2028) - c = cp874_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1163.h b/jni/parted/libiconv/lib/cp1163.h deleted file mode 100755 index 6c56365..0000000 --- a/jni/parted/libiconv/lib/cp1163.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1163 - */ - -static int -cp1163_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else if (c == 0xa4) - *pwc = 0x20ac; - else - *pwc = (ucs4_t) cp1129_2uni[c-0xa0]; - return 1; -} - -static const unsigned char cp1163_page20[8] = { - 0x00, 0x00, 0x00, 0xfe, 0xa4, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; - -static int -cp1163_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0 || (wc < 0x00a8 && wc != 0x00a4) || wc == 0x00d0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a8 && wc < 0x01b8) - c = cp1129_page00[wc-0x00a8]; - else if (wc >= 0x0300 && wc < 0x0328) - c = cp1129_page03[wc-0x0300]; - else if (wc == 0x203e) - c = 0xaf; - else if (wc >= 0x20a8 && wc < 0x20b0) - c = cp1163_page20[wc-0x20a8]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1250.h b/jni/parted/libiconv/lib/cp1250.h deleted file mode 100755 index 3b6f7b1..0000000 --- a/jni/parted/libiconv/lib/cp1250.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1250 - */ - -static const unsigned short cp1250_2uni[128] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, - 0xfffd, 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a, - /* 0xa0 */ - 0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c, - /* 0xc0 */ - 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, - /* 0xd0 */ - 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, - 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, - /* 0xe0 */ - 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, - /* 0xf0 */ - 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, - 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, -}; - -static int -cp1250_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp1250_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1250_page00[224] = { - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0xb8, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */ - 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ - 0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ - 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xc5, 0xe5, 0x00, 0x00, 0xbc, 0xbe, 0x00, /* 0x38-0x3f */ - 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */ - 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */ - 0xd8, 0xf8, 0x8c, 0x9c, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */ - 0x8a, 0x9a, 0xde, 0xfe, 0x8d, 0x9d, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */ - 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x8f, 0x9f, 0xaf, 0xbf, 0x8e, 0x9e, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char cp1250_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp1250_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1250_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = cp1250_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp1250_page02[wc-0x02c0]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1250_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1251.h b/jni/parted/libiconv/lib/cp1251.h deleted file mode 100755 index c7e3a29..0000000 --- a/jni/parted/libiconv/lib/cp1251.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1251 - */ - -static const unsigned short cp1251_2uni[128] = { - /* 0x80 */ - 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, - 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f, - /* 0x90 */ - 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f, - /* 0xa0 */ - 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7, - 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7, - 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457, - /* 0xc0 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0xd0 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xe0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xf0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, -}; - -static int -cp1251_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp1251_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1251_page00[32] = { - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char cp1251_page04[152] = { - 0x00, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, /* 0x00-0x07 */ - 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0x00, 0xa1, 0x8f, /* 0x08-0x0f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ - 0x00, 0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, /* 0x50-0x57 */ - 0xbc, 0x9a, 0x9c, 0x9e, 0x9d, 0x00, 0xa2, 0x9f, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char cp1251_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1251_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = cp1251_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0498) - c = cp1251_page04[wc-0x0400]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1251_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x88; - else if (wc == 0x2116) - c = 0xb9; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1252.h b/jni/parted/libiconv/lib/cp1252.h deleted file mode 100755 index b4c23b7..0000000 --- a/jni/parted/libiconv/lib/cp1252.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1252 - */ - -static const unsigned short cp1252_2uni[32] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0x017d, 0xfffd, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0x017e, 0x0178, -}; - -static int -cp1252_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80 || c >= 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp1252_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1252_page01[72] = { - 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x9f, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x9e, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char cp1252_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp1252_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1252_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = wc; - else if (wc >= 0x0150 && wc < 0x0198) - c = cp1252_page01[wc-0x0150]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp1252_page02[wc-0x02c0]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1252_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1253.h b/jni/parted/libiconv/lib/cp1253.h deleted file mode 100755 index e5b36ca..0000000 --- a/jni/parted/libiconv/lib/cp1253.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1253 - */ - -static const unsigned short cp1253_2uni[128] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xa0 */ - 0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7, - 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, - /* 0xc0 */ - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - /* 0xd0 */ - 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, - 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, - /* 0xe0 */ - 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - /* 0xf0 */ - 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, - 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd, -}; - -static int -cp1253_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp1253_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1253_page00[32] = { - 0xa0, 0x00, 0x00, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char cp1253_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0xb4, 0xa1, 0xa2, 0x00, /* 0x80-0x87 */ - 0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */ - 0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */ -}; -static const unsigned char cp1253_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0xaf, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1253_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = cp1253_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x83; - else if (wc >= 0x0380 && wc < 0x03d0) - c = cp1253_page03[wc-0x0380]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1253_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1254.h b/jni/parted/libiconv/lib/cp1254.h deleted file mode 100755 index 15bbc15..0000000 --- a/jni/parted/libiconv/lib/cp1254.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1254 - */ - -static const unsigned short cp1254_2uni_1[32] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, -}; -static const unsigned short cp1254_2uni_2[16] = { - /* 0xd0 */ - 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, -}; -static const unsigned short cp1254_2uni_3[16] = { - /* 0xf0 */ - 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, -}; - -static int -cp1254_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c < 0xa0) { - unsigned short wc = cp1254_2uni_1[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - else if (c < 0xd0) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c < 0xe0) { - *pwc = (ucs4_t) cp1254_2uni_2[c-0xd0]; - return 1; - } - else if (c < 0xf0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - *pwc = (ucs4_t) cp1254_2uni_3[c-0xf0]; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char cp1254_page00[48] = { - 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ -}; -static const unsigned char cp1254_page01[128] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */ - 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char cp1254_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp1254_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1254_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00d0) - c = wc; - else if (wc >= 0x00d0 && wc < 0x0100) - c = cp1254_page00[wc-0x00d0]; - else if (wc >= 0x0118 && wc < 0x0198) - c = cp1254_page01[wc-0x0118]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp1254_page02[wc-0x02c0]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1254_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1255.h b/jni/parted/libiconv/lib/cp1255.h deleted file mode 100755 index 213daa2..0000000 --- a/jni/parted/libiconv/lib/cp1255.h +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2004, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1255 - */ - -#include "flushwc.h" - -/* Combining characters used in Hebrew encoding CP1255. */ - -/* Relevant combining characters: - 0x05b4, 0x05b7, 0x05b8, 0x05b9, 0x05bc, 0x05bf, 0x05c1, 0x05c2. */ - -/* Composition tables for each of the relevant combining characters. */ -static const struct { unsigned short base; unsigned short composed; } cp1255_comp_table_data[] = { -#define cp1255_comp_table05b4_idx 0 -#define cp1255_comp_table05b4_len 1 - { 0x05D9, 0xFB1D }, -#define cp1255_comp_table05b7_idx (cp1255_comp_table05b4_idx+cp1255_comp_table05b4_len) -#define cp1255_comp_table05b7_len 2 - { 0x05D0, 0xFB2E }, - { 0x05F2, 0xFB1F }, -#define cp1255_comp_table05b8_idx (cp1255_comp_table05b7_idx+cp1255_comp_table05b7_len) -#define cp1255_comp_table05b8_len 1 - { 0x05D0, 0xFB2F }, -#define cp1255_comp_table05b9_idx (cp1255_comp_table05b8_idx+cp1255_comp_table05b8_len) -#define cp1255_comp_table05b9_len 1 - { 0x05D5, 0xFB4B }, -#define cp1255_comp_table05bc_idx (cp1255_comp_table05b9_idx+cp1255_comp_table05b9_len) -#define cp1255_comp_table05bc_len 24 - { 0x05D0, 0xFB30 }, - { 0x05D1, 0xFB31 }, - { 0x05D2, 0xFB32 }, - { 0x05D3, 0xFB33 }, - { 0x05D4, 0xFB34 }, - { 0x05D5, 0xFB35 }, - { 0x05D6, 0xFB36 }, - { 0x05D8, 0xFB38 }, - { 0x05D9, 0xFB39 }, - { 0x05DA, 0xFB3A }, - { 0x05DB, 0xFB3B }, - { 0x05DC, 0xFB3C }, - { 0x05DE, 0xFB3E }, - { 0x05E0, 0xFB40 }, - { 0x05E1, 0xFB41 }, - { 0x05E3, 0xFB43 }, - { 0x05E4, 0xFB44 }, - { 0x05E6, 0xFB46 }, - { 0x05E7, 0xFB47 }, - { 0x05E8, 0xFB48 }, - { 0x05E9, 0xFB49 }, - { 0x05EA, 0xFB4A }, - { 0xFB2A, 0xFB2C }, - { 0xFB2B, 0xFB2D }, -#define cp1255_comp_table05bf_idx (cp1255_comp_table05bc_idx+cp1255_comp_table05bc_len) -#define cp1255_comp_table05bf_len 3 - { 0x05D1, 0xFB4C }, - { 0x05DB, 0xFB4D }, - { 0x05E4, 0xFB4E }, -#define cp1255_comp_table05c1_idx (cp1255_comp_table05bf_idx+cp1255_comp_table05bf_len) -#define cp1255_comp_table05c1_len 2 - { 0x05E9, 0xFB2A }, - { 0xFB49, 0xFB2C }, -#define cp1255_comp_table05c2_idx (cp1255_comp_table05c1_idx+cp1255_comp_table05c1_len) -#define cp1255_comp_table05c2_len 2 - { 0x05E9, 0xFB2B }, - { 0xFB49, 0xFB2D }, -}; -static const struct { unsigned int len; unsigned int idx; } cp1255_comp_table[] = { - { cp1255_comp_table05b4_len, cp1255_comp_table05b4_idx }, - { cp1255_comp_table05b7_len, cp1255_comp_table05b7_idx }, - { cp1255_comp_table05b8_len, cp1255_comp_table05b8_idx }, - { cp1255_comp_table05b9_len, cp1255_comp_table05b9_idx }, - { cp1255_comp_table05bc_len, cp1255_comp_table05bc_idx }, - { cp1255_comp_table05bf_len, cp1255_comp_table05bf_idx }, - { cp1255_comp_table05c1_len, cp1255_comp_table05c1_idx }, - { cp1255_comp_table05c2_len, cp1255_comp_table05c2_idx }, -}; - -/* Decomposition table for the relevant Unicode characters. */ -struct cp1255_decomp { unsigned short composed; unsigned short base; int comb1 : 8; signed int comb2 : 8; }; -static const struct cp1255_decomp cp1255_decomp_table[] = { - { 0xFB1D, 0x05D9, 0, -1 }, - { 0xFB1F, 0x05F2, 1, -1 }, - { 0xFB2A, 0x05E9, 6, -1 }, - { 0xFB2B, 0x05E9, 7, -1 }, - { 0xFB2C, 0x05E9, 4, 6 }, - { 0xFB2D, 0x05E9, 4, 7 }, - { 0xFB2E, 0x05D0, 1, -1 }, - { 0xFB2F, 0x05D0, 2, -1 }, - { 0xFB30, 0x05D0, 4, -1 }, - { 0xFB31, 0x05D1, 4, -1 }, - { 0xFB32, 0x05D2, 4, -1 }, - { 0xFB33, 0x05D3, 4, -1 }, - { 0xFB34, 0x05D4, 4, -1 }, - { 0xFB35, 0x05D5, 4, -1 }, - { 0xFB36, 0x05D6, 4, -1 }, - { 0xFB38, 0x05D8, 4, -1 }, - { 0xFB39, 0x05D9, 4, -1 }, - { 0xFB3A, 0x05DA, 4, -1 }, - { 0xFB3B, 0x05DB, 4, -1 }, - { 0xFB3C, 0x05DC, 4, -1 }, - { 0xFB3E, 0x05DE, 4, -1 }, - { 0xFB40, 0x05E0, 4, -1 }, - { 0xFB41, 0x05E1, 4, -1 }, - { 0xFB43, 0x05E3, 4, -1 }, - { 0xFB44, 0x05E4, 4, -1 }, - { 0xFB46, 0x05E6, 4, -1 }, - { 0xFB47, 0x05E7, 4, -1 }, - { 0xFB48, 0x05E8, 4, -1 }, - { 0xFB49, 0x05E9, 4, -1 }, - { 0xFB4A, 0x05EA, 4, -1 }, - { 0xFB4B, 0x05D5, 3, -1 }, - { 0xFB4C, 0x05D1, 5, -1 }, - { 0xFB4D, 0x05DB, 5, -1 }, - { 0xFB4E, 0x05E4, 5, -1 }, -}; - -static const unsigned char cp1255_comb_table[] = { - 0xc4, 0xc7, 0xc8, 0xc9, 0xcc, 0xcf, 0xd1, 0xd2, -}; - -static const unsigned short cp1255_2uni[128] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0xfffd, 0x2039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xa0 */ - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - /* 0xc0 */ - 0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, - 0x05b8, 0x05b9, 0x05ba, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf, - /* 0xd0 */ - 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3, - 0x05f4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xe0 */ - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - /* 0xf0 */ - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd, -}; - -/* In the CP1255 to Unicode direction, the state contains a buffered - character, or 0 if none. */ - -static int -cp1255_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc; - unsigned short last_wc; - if (c < 0x80) { - wc = c; - } else { - wc = cp1255_2uni[c-0x80]; - if (wc == 0xfffd) - return RET_ILSEQ; - } - last_wc = conv->istate; - if (last_wc) { - if (wc >= 0x05b0 && wc < 0x05c5) { - /* See whether last_wc and wc can be combined. */ - unsigned int k; - unsigned int i1, i2; - switch (wc) { - case 0x05b4: k = 0; break; - case 0x05b7: k = 1; break; - case 0x05b8: k = 2; break; - case 0x05b9: k = 3; break; - case 0x05bc: k = 4; break; - case 0x05bf: k = 5; break; - case 0x05c1: k = 6; break; - case 0x05c2: k = 7; break; - default: goto not_combining; - } - i1 = cp1255_comp_table[k].idx; - i2 = i1 + cp1255_comp_table[k].len-1; - if (last_wc >= cp1255_comp_table_data[i1].base - && last_wc <= cp1255_comp_table_data[i2].base) { - unsigned int i; - for (;;) { - i = (i1+i2)>>1; - if (last_wc == cp1255_comp_table_data[i].base) - break; - if (last_wc < cp1255_comp_table_data[i].base) { - if (i1 == i) - goto not_combining; - i2 = i; - } else { - if (i1 != i) - i1 = i; - else { - i = i2; - if (last_wc == cp1255_comp_table_data[i].base) - break; - goto not_combining; - } - } - } - last_wc = cp1255_comp_table_data[i].composed; - if (last_wc == 0xfb2a || last_wc == 0xfb2b || last_wc == 0xfb49) { - /* Buffer the combined character. */ - conv->istate = last_wc; - return RET_TOOFEW(1); - } else { - /* Output the combined character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 1; - } - } - } - not_combining: - /* Output the buffered character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 0; /* Don't advance the input pointer. */ - } - if ((wc >= 0x05d0 && wc <= 0x05ea && ((0x07db5f7f >> (wc - 0x05d0)) & 1)) - || wc == 0x05f2) { - /* wc is a possible match in cp1255_comp_table_data. Buffer it. */ - conv->istate = wc; - return RET_TOOFEW(1); - } else { - /* Output wc immediately. */ - *pwc = (ucs4_t) wc; - return 1; - } -} - -#define cp1255_flushwc normal_flushwc - -static const unsigned char cp1255_page00[88] = { - 0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */ -}; -static const unsigned char cp1255_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp1255_page05[72] = { - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xb0-0xb7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xb8-0xbf */ - 0xd0, 0xd1, 0xd2, 0xd3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */ - 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ -}; -static const unsigned char cp1255_page20[56] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1255_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00f8) - c = cp1255_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x83; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp1255_page02[wc-0x02c0]; - else if (wc >= 0x05b0 && wc < 0x05f8) - c = cp1255_page05[wc-0x05b0]; - else if (wc >= 0x2008 && wc < 0x2040) - c = cp1255_page20[wc-0x2008]; - else if (wc == 0x20aa) - c = 0xa4; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - /* Try canonical decomposition. */ - { - /* Binary search through cp1255_decomp_table. */ - unsigned int i1 = 0; - unsigned int i2 = sizeof(cp1255_decomp_table)/sizeof(cp1255_decomp_table[0])-1; - if (wc >= cp1255_decomp_table[i1].composed - && wc <= cp1255_decomp_table[i2].composed) { - unsigned int i; - for (;;) { - /* Here i2 - i1 > 0. */ - i = (i1+i2)>>1; - if (wc == cp1255_decomp_table[i].composed) - break; - if (wc < cp1255_decomp_table[i].composed) { - if (i1 == i) - return RET_ILUNI; - /* Here i1 < i < i2. */ - i2 = i; - } else { - /* Here i1 <= i < i2. */ - if (i1 != i) - i1 = i; - else { - /* Here i2 - i1 = 1. */ - i = i2; - if (wc == cp1255_decomp_table[i].composed) - break; - else - return RET_ILUNI; - } - } - } - /* Found a canonical decomposition. */ - wc = cp1255_decomp_table[i].base; - /* wc is one of 0x05d0..0x05d6, 0x05d8..0x05dc, 0x05de, 0x05e0..0x05e1, - 0x05e3..0x05e4, 0x05e6..0x05ea, 0x05f2. */ - c = cp1255_page05[wc-0x05b0]; - if (cp1255_decomp_table[i].comb2 < 0) { - if (n < 2) - return RET_TOOSMALL; - r[0] = c; - r[1] = cp1255_comb_table[cp1255_decomp_table[i].comb1]; - return 2; - } else { - if (n < 3) - return RET_TOOSMALL; - r[0] = c; - r[1] = cp1255_comb_table[cp1255_decomp_table[i].comb1]; - r[2] = cp1255_comb_table[cp1255_decomp_table[i].comb2]; - return 3; - } - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1256.h b/jni/parted/libiconv/lib/cp1256.h deleted file mode 100755 index 51fc13a..0000000 --- a/jni/parted/libiconv/lib/cp1256.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1256 - */ - -static const unsigned short cp1256_2uni[128] = { - /* 0x80 */ - 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, - /* 0x90 */ - 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba, - /* 0xa0 */ - 0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f, - /* 0xc0 */ - 0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, - /* 0xd0 */ - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7, - 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, - /* 0xe0 */ - 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7, - 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2, -}; - -static int -cp1256_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp1256_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp1256_page00[96] = { - 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0xe0, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0x00, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0xf7, /* 0xf0-0xf7 */ - 0x00, 0xf9, 0x00, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp1256_page01[72] = { - 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char cp1256_page06[208] = { - 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, /* 0x30-0x37 */ - 0xd9, 0xda, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, /* 0x40-0x47 */ - 0xe6, 0xec, 0xed, 0xf0, 0xf1, 0xf2, 0xf3, 0xf5, /* 0x48-0x4f */ - 0xf6, 0xf8, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, /* 0x80-0x87 */ - 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xb8-0xbf */ - 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ -}; -static const unsigned char cp1256_page20[56] = { - 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0xfd, 0xfe, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1256_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp1256_page00[wc-0x00a0]; - else if (wc >= 0x0150 && wc < 0x0198) - c = cp1256_page01[wc-0x0150]; - else if (wc == 0x02c6) - c = 0x88; - else if (wc >= 0x0608 && wc < 0x06d8) - c = cp1256_page06[wc-0x0608]; - else if (wc >= 0x2008 && wc < 0x2040) - c = cp1256_page20[wc-0x2008]; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1257.h b/jni/parted/libiconv/lib/cp1257.h deleted file mode 100755 index dc5716e..0000000 --- a/jni/parted/libiconv/lib/cp1257.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1257 - */ - -static const unsigned short cp1257_2uni[128] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0xfffd, 0x201e, 0x2026, 0x2020, 0x2021, - 0xfffd, 0x2030, 0xfffd, 0x2039, 0xfffd, 0x00a8, 0x02c7, 0x00b8, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0x00af, 0x02db, 0xfffd, - /* 0xa0 */ - 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0xfffd, 0x00a6, 0x00a7, - 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, - /* 0xc0 */ - 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, - 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, - /* 0xd0 */ - 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, - 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, - /* 0xe0 */ - 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, - 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, - /* 0xf0 */ - 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, - 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9, -}; - -static int -cp1257_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp1257_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp1257_page00[224] = { - 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0x8d, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x9d, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x8f, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */ - 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */ - 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */ - 0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */ - 0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char cp1257_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0xff, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp1257_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1257_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = cp1257_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp1257_page02[wc-0x02c0]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1257_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp1258.h b/jni/parted/libiconv/lib/cp1258.h deleted file mode 100755 index b56557f..0000000 --- a/jni/parted/libiconv/lib/cp1258.h +++ /dev/null @@ -1,287 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2004, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP1258 - */ - -#include "flushwc.h" -#include "vietcomb.h" - -static const unsigned char cp1258_comb_table[] = { - 0xcc, 0xec, 0xde, 0xd2, 0xf2, -}; - -/* The possible bases in viet_comp_table_data: - 0x0041..0x0045, 0x0047..0x0049, 0x004B..0x0050, 0x0052..0x0057, - 0x0059..0x005A, 0x0061..0x0065, 0x0067..0x0069, 0x006B..0x0070, - 0x0072..0x0077, 0x0079..0x007A, 0x00A5, 0x00A8, 0x00C2, 0x00C5..0x00C7, - 0x00CA, 0x00CF, 0x00D3..0x00D4, 0x00D6, 0x00D8, 0x00DA, 0x00DC, 0x00E2, - 0x00E5..0x00E7, 0x00EA, 0x00EF, 0x00F3..0x00F4, 0x00F6, 0x00F8, 0x00FA, - 0x00FC, 0x0102..0x0103, 0x01A0..0x01A1, 0x01AF..0x01B0. */ -static const unsigned int cp1258_comp_bases[] = { - 0x06fdfbbe, 0x06fdfbbe, 0x00000000, 0x00000120, 0x155884e4, 0x155884e4, - 0x0000000c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00018003 -}; - -static const unsigned short cp1258_2uni[128] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0xfffd, 0x2039, 0x0152, 0xfffd, 0xfffd, 0xfffd, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0xfffd, 0x203a, 0x0153, 0xfffd, 0xfffd, 0x0178, - /* 0xa0 */ - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, - /* 0xc0 */ - 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, - /* 0xd0 */ - 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff, -}; - -/* In the CP1258 to Unicode direction, the state contains a buffered - character, or 0 if none. */ - -static int -cp1258_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc; - unsigned short last_wc; - if (c < 0x80) { - wc = c; - } else { - wc = cp1258_2uni[c-0x80]; - if (wc == 0xfffd) - return RET_ILSEQ; - } - last_wc = conv->istate; - if (last_wc) { - if (wc >= 0x0300 && wc < 0x0340) { - /* See whether last_wc and wc can be combined. */ - unsigned int k; - unsigned int i1, i2; - switch (wc) { - case 0x0300: k = 0; break; - case 0x0301: k = 1; break; - case 0x0303: k = 2; break; - case 0x0309: k = 3; break; - case 0x0323: k = 4; break; - default: abort(); - } - i1 = viet_comp_table[k].idx; - i2 = i1 + viet_comp_table[k].len-1; - if (last_wc >= viet_comp_table_data[i1].base - && last_wc <= viet_comp_table_data[i2].base) { - unsigned int i; - for (;;) { - i = (i1+i2)>>1; - if (last_wc == viet_comp_table_data[i].base) - break; - if (last_wc < viet_comp_table_data[i].base) { - if (i1 == i) - goto not_combining; - i2 = i; - } else { - if (i1 != i) - i1 = i; - else { - i = i2; - if (last_wc == viet_comp_table_data[i].base) - break; - goto not_combining; - } - } - } - last_wc = viet_comp_table_data[i].composed; - /* Output the combined character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 1; - } - } - not_combining: - /* Output the buffered character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 0; /* Don't advance the input pointer. */ - } - if (wc >= 0x0041 && wc <= 0x01b0 - && ((cp1258_comp_bases[(wc - 0x0040) >> 5] >> (wc & 0x1f)) & 1)) { - /* wc is a possible match in viet_comp_table_data. Buffer it. */ - conv->istate = wc; - return RET_TOOFEW(1); - } else { - /* Output wc immediately. */ - *pwc = (ucs4_t) wc; - return 1; - } -} - -#define cp1258_flushwc normal_flushwc - -static const unsigned char cp1258_page00[88] = { - 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0x00, 0xd1, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc3, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ -}; -static const unsigned char cp1258_page01[104] = { - 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xd5, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xa8-0xaf */ - 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ -}; -static const unsigned char cp1258_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp1258_page03[40] = { - 0xcc, 0xec, 0x00, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char cp1258_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -cp1258_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = wc; - else if (wc >= 0x00c0 && wc < 0x0118) - c = cp1258_page00[wc-0x00c0]; - else if (wc >= 0x0150 && wc < 0x01b8) - c = cp1258_page01[wc-0x0150]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp1258_page02[wc-0x02c0]; - else if (wc >= 0x0300 && wc < 0x0328) - c = cp1258_page03[wc-0x0300]; - else if (wc >= 0x0340 && wc < 0x0342) /* deprecated Vietnamese tone marks */ - c = cp1258_page03[wc-0x0340]; - else if (wc >= 0x2010 && wc < 0x2040) - c = cp1258_page20[wc-0x2010]; - else if (wc == 0x20ab) - c = 0xfe; - else if (wc == 0x20ac) - c = 0x80; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - /* Try canonical decomposition. */ - { - /* Binary search through viet_decomp_table. */ - unsigned int i1 = 0; - unsigned int i2 = sizeof(viet_decomp_table)/sizeof(viet_decomp_table[0])-1; - if (wc >= viet_decomp_table[i1].composed - && wc <= viet_decomp_table[i2].composed) { - unsigned int i; - for (;;) { - /* Here i2 - i1 > 0. */ - i = (i1+i2)>>1; - if (wc == viet_decomp_table[i].composed) - break; - if (wc < viet_decomp_table[i].composed) { - if (i1 == i) - return RET_ILUNI; - /* Here i1 < i < i2. */ - i2 = i; - } else { - /* Here i1 <= i < i2. */ - if (i1 != i) - i1 = i; - else { - /* Here i2 - i1 = 1. */ - i = i2; - if (wc == viet_decomp_table[i].composed) - break; - else - return RET_ILUNI; - } - } - } - /* Found a canonical decomposition. */ - wc = viet_decomp_table[i].base; - /* wc is one of 0x0020, 0x0041..0x005a, 0x0061..0x007a, 0x00a5, 0x00a8, - 0x00c2, 0x00c5..0x00c7, 0x00ca, 0x00cf, 0x00d3, 0x00d4, 0x00d6, - 0x00d8, 0x00da, 0x00dc, 0x00e2, 0x00e5..0x00e7, 0x00ea, 0x00ef, - 0x00f3, 0x00f4, 0x00f6, 0x00f8, 0x00fc, 0x0102, 0x0103, 0x01a0, - 0x01a1, 0x01af, 0x01b0. */ - if (wc < 0x0100) - c = wc; - else if (wc < 0x0118) - c = cp1258_page00[wc-0x00c0]; - else - c = cp1258_page01[wc-0x0150]; - if (n < 2) - return RET_TOOSMALL; - r[0] = c; - r[1] = cp1258_comb_table[viet_decomp_table[i].comb1]; - return 2; - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp437.h b/jni/parted/libiconv/lib/cp437.h deleted file mode 100755 index fb1d818..0000000 --- a/jni/parted/libiconv/lib/cp437.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP437 - */ - -static const unsigned short cp437_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp437_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp437_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp437_page00[96] = { - 0xff, 0xad, 0x9b, 0x9c, 0x00, 0x9d, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ - 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0x00, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ - 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ -}; -static const unsigned char cp437_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char cp437_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp437_page23[24] = { - 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char cp437_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp437_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp437_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x9f; - else if (wc >= 0x0390 && wc < 0x03c8) - c = cp437_page03[wc-0x0390]; - else if (wc == 0x207f) - c = 0xfc; - else if (wc == 0x20a7) - c = 0x9e; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp437_page22[wc-0x2218]; - else if (wc >= 0x2310 && wc < 0x2328) - c = cp437_page23[wc-0x2310]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp437_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp50221_0208_ext.h b/jni/parted/libiconv/lib/cp50221_0208_ext.h deleted file mode 100755 index 9519223..0000000 --- a/jni/parted/libiconv/lib/cp50221_0208_ext.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (C) 1999-2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP50221 JISX0208 extensions - */ - -static const unsigned short cp50221_0208_ext_2uni[96] = { - /* 0x00 */ - 0xfffd, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, - 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, - /* 0x10 */ - 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, - 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xfffd, - /* 0x20 */ - 0x3349, 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, - 0x3351, 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, - /* 0x30 */ - 0x339c, 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x337b, - /* 0x40 */ - 0x301e, 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, - 0x32a7, 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, - /* 0x50 */ - 0xfffd, 0xfffd, 0xfffd, 0x222e, 0x2211, 0xfffd, 0xfffd, 0xfffd, - 0x221f, 0x22bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, -}; - -static int -cp50221_0208_ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x60) { - unsigned short wc = cp50221_0208_ext_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp50221_0208_ext_page21[96] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, /* 0x60-0x67 */ - 0x1d, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ -}; -static const unsigned char cp50221_0208_ext_page22[32] = { - 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, /* 0x28-0x2f */ -}; -static const unsigned char cp50221_0208_ext_page24[24] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, /* 0x60-0x67 */ - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, /* 0x68-0x6f */ - 0x11, 0x12, 0x13, 0x14, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ -}; -static const unsigned char cp50221_0208_ext_page30[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x41, /* 0x18-0x1f */ -}; -static const unsigned char cp50221_0208_ext_page32[16] = { - 0x00, 0x4a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char cp50221_0208_ext_page32_1[16] = { - 0x00, 0x00, 0x00, 0x00, 0x45, 0x46, 0x47, 0x48, /* 0xa0-0xa7 */ - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char cp50221_0208_ext_page33[208] = { - 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x22, 0x2c, 0x00, 0x00, 0x2b, 0x25, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x20, 0x2e, 0x00, 0x00, 0x23, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x3f, 0x4f, 0x4e, 0x4d, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x34, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x32, 0x00, /* 0x98-0x9f */ - 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, /* 0xc8-0xcf */ -}; - -static int -cp50221_0208_ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc >= 0x2110 && wc < 0x2170) - c = cp50221_0208_ext_page21[wc-0x2110]; - else if (wc >= 0x2210 && wc < 0x2230) - c = cp50221_0208_ext_page22[wc-0x2210]; - else if (wc == 0x22bf) - c = 0x59; - else if (wc >= 0x2460 && wc < 0x2478) - c = cp50221_0208_ext_page24[wc-0x2460]; - else if (wc >= 0x3018 && wc < 0x3020) - c = cp50221_0208_ext_page30[wc-0x3018]; - else if (wc >= 0x3230 && wc < 0x3240) - c = cp50221_0208_ext_page32[wc-0x3230]; - else if (wc >= 0x32a0 && wc < 0x32b0) - c = cp50221_0208_ext_page32_1[wc-0x32a0]; - else if (wc >= 0x3300 && wc < 0x33d0) - c = cp50221_0208_ext_page33[wc-0x3300]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp50221_0212_ext.h b/jni/parted/libiconv/lib/cp50221_0212_ext.h deleted file mode 100755 index 78d4839..0000000 --- a/jni/parted/libiconv/lib/cp50221_0212_ext.h +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (C) 1999-2011, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP50221 JISX0212 extensions - */ - -static const unsigned short cp50221_0212_ext_2uni[112] = { - /* 0x00 */ - 0xfffd, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, - 0x2177, 0x2178, 0x2179, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x10 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff07, 0xff02, 0xfffd, - 0xfffd, 0xfffd, 0x70bb, 0x4efc, 0x50f4, 0x51ec, 0x5307, 0x5324, - /* 0x20 */ - 0xfa0e, 0x548a, 0x5759, 0xfa0f, 0xfa10, 0x589e, 0x5bec, 0x5cf5, - 0x5d53, 0xfa11, 0x5fb7, 0x6085, 0x6120, 0x654e, 0xfffd, 0x6665, - /* 0x30 */ - 0xfa12, 0xf929, 0x6801, 0xfa13, 0xfa14, 0x6a6b, 0x6ae2, 0x6df8, - 0x6df2, 0x7028, 0xfa15, 0xfa16, 0x7501, 0x7682, 0x769e, 0xfa17, - /* 0x40 */ - 0x7930, 0xfa18, 0xfa19, 0xfa1a, 0xfa1b, 0x7ae7, 0xfa1c, 0xfa1d, - 0x7da0, 0x7dd6, 0xfa1e, 0x8362, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, - /* 0x50 */ - 0x8807, 0xfa22, 0x8b7f, 0x8cf4, 0x8d76, 0xfa23, 0xfa24, 0xfa25, - 0x90de, 0xfa26, 0x9115, 0xfa27, 0xfa28, 0x9592, 0xf9dc, 0xfa29, - /* 0x60 */ - 0x973b, 0xfffd, 0x9751, 0xfa2a, 0xfa2b, 0xfa2c, 0x999e, 0x9ad9, - 0x9b72, 0xfa2d, 0x9ed1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, -}; - -static int -cp50221_0212_ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x70) { - unsigned short wc = cp50221_0212_ext_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - else if (c == 0xa1) { - *pwc = 0x974d; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char cp50221_0212_ext_page21[16] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, /* 0x70-0x77 */ - 0x09, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char cp50221_0212_ext_page53[40] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char cp50221_0212_ext_page6d[16] = { - 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ - 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp50221_0212_ext_page76[32] = { - 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, /* 0x98-0x9f */ -}; -static const unsigned char cp50221_0212_ext_page7d[56] = { - 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, /* 0xd0-0xd7 */ -}; -static const unsigned char cp50221_0212_ext_page97[32] = { - 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ -}; -static const unsigned char cp50221_0212_ext_pagefa[40] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x23, /* 0x08-0x0f */ - 0x24, 0x29, 0x30, 0x33, 0x34, 0x3a, 0x3b, 0x3f, /* 0x10-0x17 */ - 0x41, 0x42, 0x43, 0x44, 0x46, 0x47, 0x4a, 0x4c, /* 0x18-0x1f */ - 0x4e, 0x4f, 0x51, 0x55, 0x56, 0x57, 0x59, 0x5b, /* 0x20-0x27 */ - 0x5c, 0x5f, 0x63, 0x64, 0x65, 0x69, 0x00, 0x00, /* 0x28-0x2f */ -}; -static const unsigned char cp50221_0212_ext_pageff[8] = { - 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x15, /* 0x00-0x07 */ -}; - -static int -cp50221_0212_ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc >= 0x2170 && wc < 0x2180) - c = cp50221_0212_ext_page21[wc-0x2170]; - else if (wc == 0x4efc) - c = 0x1b; - else if (wc == 0x50f4) - c = 0x1c; - else if (wc == 0x51ec) - c = 0x1d; - else if (wc >= 0x5300 && wc < 0x5328) - c = cp50221_0212_ext_page53[wc-0x5300]; - else if (wc == 0x548a) - c = 0x21; - else if (wc == 0x5759) - c = 0x22; - else if (wc == 0x589e) - c = 0x25; - else if (wc == 0x5bec) - c = 0x26; - else if (wc == 0x5cf5) - c = 0x27; - else if (wc == 0x5d53) - c = 0x28; - else if (wc == 0x5fb7) - c = 0x2a; - else if (wc == 0x6085) - c = 0x2b; - else if (wc == 0x6120) - c = 0x2c; - else if (wc == 0x654e) - c = 0x2d; - else if (wc == 0x6665) - c = 0x2f; - else if (wc == 0x6801) - c = 0x32; - else if (wc == 0x6a6b) - c = 0x35; - else if (wc == 0x6ae2) - c = 0x36; - else if (wc >= 0x6df0 && wc < 0x6e00) - c = cp50221_0212_ext_page6d[wc-0x6df0]; - else if (wc == 0x7028) - c = 0x39; - else if (wc == 0x70bb) - c = 0x1a; - else if (wc == 0x7501) - c = 0x3c; - else if (wc >= 0x7680 && wc < 0x76a0) - c = cp50221_0212_ext_page76[wc-0x7680]; - else if (wc == 0x7930) - c = 0x40; - else if (wc == 0x7ae7) - c = 0x45; - else if (wc >= 0x7da0 && wc < 0x7dd8) - c = cp50221_0212_ext_page7d[wc-0x7da0]; - else if (wc == 0x8362) - c = 0x4b; - else if (wc == 0x85b0) - c = 0x4d; - else if (wc == 0x8807) - c = 0x50; - else if (wc == 0x8b7f) - c = 0x52; - else if (wc == 0x8cf4) - c = 0x53; - else if (wc == 0x8d76) - c = 0x54; - else if (wc == 0x90de) - c = 0x58; - else if (wc == 0x9115) - c = 0x5a; - else if (wc == 0x9592) - c = 0x5d; - else if (wc >= 0x9738 && wc < 0x9758) - c = cp50221_0212_ext_page97[wc-0x9738]; - else if (wc == 0x999e) - c = 0x66; - else if (wc == 0x9ad9) - c = 0x67; - else if (wc == 0x9b72) - c = 0x68; - else if (wc == 0x9ed1) - c = 0x6a; - else if (wc == 0xf929) - c = 0x31; - else if (wc == 0xf9dc) - c = 0x5e; - else if (wc >= 0xfa08 && wc < 0xfa30) - c = cp50221_0212_ext_pagefa[wc-0xfa08]; - else if (wc >= 0xff00 && wc < 0xff08) - c = cp50221_0212_ext_pageff[wc-0xff00]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp737.h b/jni/parted/libiconv/lib/cp737.h deleted file mode 100755 index 32ef680..0000000 --- a/jni/parted/libiconv/lib/cp737.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP737 - */ - -static const unsigned short cp737_2uni[128] = { - /* 0x80 */ - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - /* 0x90 */ - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - /* 0xa0 */ - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, - /* 0xf0 */ - 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp737_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp737_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp737_page00[24] = { - 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ -}; -static const unsigned char cp737_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x00, /* 0x80-0x87 */ - 0xeb, 0xec, 0xed, 0x00, 0xee, 0x00, 0xef, 0xf0, /* 0x88-0x8f */ - 0x00, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, /* 0x90-0x97 */ - 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, /* 0x98-0x9f */ - 0x8f, 0x90, 0x00, 0x91, 0x92, 0x93, 0x94, 0x95, /* 0xa0-0xa7 */ - 0x96, 0x97, 0xf4, 0xf5, 0xe1, 0xe2, 0xe3, 0xe5, /* 0xa8-0xaf */ - 0x00, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 0xb0-0xb7 */ - 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0xb8-0xbf */ - 0xa7, 0xa8, 0xaa, 0xa9, 0xab, 0xac, 0xad, 0xae, /* 0xc0-0xc7 */ - 0xaf, 0xe0, 0xe4, 0xe8, 0xe6, 0xe7, 0xe9, 0x00, /* 0xc8-0xcf */ -}; -static const unsigned char cp737_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp737_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp737_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b8) - c = cp737_page00[wc-0x00a0]; - else if (wc == 0x00f7) - c = 0xf6; - else if (wc >= 0x0380 && wc < 0x03d0) - c = cp737_page03[wc-0x0380]; - else if (wc == 0x207f) - c = 0xfc; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp737_page22[wc-0x2218]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp737_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp775.h b/jni/parted/libiconv/lib/cp775.h deleted file mode 100755 index ada10bd..0000000 --- a/jni/parted/libiconv/lib/cp775.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP775 - */ - -static const unsigned short cp775_2uni[128] = { - /* 0x80 */ - 0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107, - 0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a, - 0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4, - /* 0xa0 */ - 0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6, - 0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118, - 0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d, - /* 0xd0 */ - 0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b, - 0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, - 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, - /* 0xf0 */ - 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, - 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp775_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp775_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp775_page00[224] = { - 0xff, 0x00, 0x96, 0x9c, 0x9f, 0x00, 0xa7, 0xf5, /* 0xa0-0xa7 */ - 0x00, 0xa8, 0x00, 0xae, 0xaa, 0xf0, 0xa9, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0xfc, 0x00, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0xfb, 0x00, 0xaf, 0xac, 0xab, 0xf3, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xe0, 0x00, 0xe5, 0x99, 0x9e, /* 0xd0-0xd7 */ - 0x9d, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x84, 0x86, 0x91, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xa2, 0x00, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x9b, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xa0, 0x83, 0x00, 0x00, 0xb5, 0xd0, 0x80, 0x87, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xb6, 0xd1, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0xed, 0x89, 0x00, 0x00, 0xb8, 0xd3, /* 0x10-0x17 */ - 0xb7, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x95, 0x85, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0xa1, 0x8c, 0x00, 0x00, 0xbd, 0xd4, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe9, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0xea, 0xeb, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xad, 0x88, 0xe3, 0xe7, 0xee, 0xec, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0xe2, 0x93, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x8b, /* 0x50-0x57 */ - 0x00, 0x00, 0x97, 0x98, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xbe, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0xc7, 0xd7, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0xc6, 0xd6, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x8d, 0xa5, 0xa3, 0xa4, 0xcf, 0xd8, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char cp775_page20[8] = { - 0x00, 0xef, 0x00, 0x00, 0xf2, 0xa6, 0xf7, 0x00, /* 0x18-0x1f */ -}; -static const unsigned char cp775_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp775_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = cp775_page00[wc-0x00a0]; - else if (wc >= 0x2018 && wc < 0x2020) - c = cp775_page20[wc-0x2018]; - else if (wc == 0x2219) - c = 0xf9; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp775_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp850.h b/jni/parted/libiconv/lib/cp850.h deleted file mode 100755 index 794e72b..0000000 --- a/jni/parted/libiconv/lib/cp850.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP850 - */ - -static const unsigned short cp850_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - /* 0xd0 */ - 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, - /* 0xe0 */ - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, - 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, - /* 0xf0 */ - 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp850_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp850_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp850_page00[96] = { - 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */ - 0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ - 0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* 0xb8-0xbf */ - 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ - 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */ - 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, /* 0xd0-0xd7 */ - 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ - 0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, /* 0xf8-0xff */ -}; -static const unsigned char cp850_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp850_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp850_page00[wc-0x00a0]; - else if (wc == 0x0131) - c = 0xd5; - else if (wc == 0x0192) - c = 0x9f; - else if (wc == 0x2017) - c = 0xf2; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp850_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp852.h b/jni/parted/libiconv/lib/cp852.h deleted file mode 100755 index c6707bd..0000000 --- a/jni/parted/libiconv/lib/cp852.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP852 - */ - -static const unsigned short cp852_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, - 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, - /* 0x90 */ - 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, - 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, - 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, - 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - /* 0xd0 */ - 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, - 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, - /* 0xe0 */ - 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, - 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, - /* 0xf0 */ - 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0, -}; - -static int -cp852_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp852_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp852_page00[224] = { - 0xff, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0xf5, /* 0xa0-0xa7 */ - 0xf9, 0x00, 0x00, 0xae, 0xaa, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0xf7, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0xb5, 0xb6, 0x00, 0x8e, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ - 0x00, 0x90, 0x00, 0xd3, 0x00, 0xd6, 0xd7, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xe0, 0xe2, 0x00, 0x99, 0x9e, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xe9, 0x00, 0x9a, 0xed, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x00, 0xa0, 0x83, 0x00, 0x84, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ - 0x00, 0x82, 0x00, 0x89, 0x00, 0xa1, 0x8c, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xa3, 0x00, 0x81, 0xec, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc6, 0xc7, 0xa4, 0xa5, 0x8f, 0x86, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xac, 0x9f, 0xd2, 0xd4, /* 0x08-0x0f */ - 0xd1, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xa8, 0xa9, 0xb7, 0xd8, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x91, 0x92, 0x00, 0x00, 0x95, 0x96, 0x00, /* 0x38-0x3f */ - 0x00, 0x9d, 0x88, 0xe3, 0xe4, 0x00, 0x00, 0xd5, /* 0x40-0x47 */ - 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x8a, 0x8b, 0x00, 0x00, 0xe8, 0xea, 0x00, 0x00, /* 0x50-0x57 */ - 0xfc, 0xfd, 0x97, 0x98, 0x00, 0x00, 0xb8, 0xad, /* 0x58-0x5f */ - 0xe6, 0xe7, 0xdd, 0xee, 0x9b, 0x9c, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x85, /* 0x68-0x6f */ - 0xeb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x8d, 0xab, 0xbd, 0xbe, 0xa6, 0xa7, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char cp852_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xf4, 0xfa, 0x00, 0xf2, 0x00, 0xf1, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp852_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp852_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = cp852_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = cp852_page02[wc-0x02c0]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp852_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp853.h b/jni/parted/libiconv/lib/cp853.h deleted file mode 100755 index 3af252b..0000000 --- a/jni/parted/libiconv/lib/cp853.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP853 - */ - -static const unsigned short cp853_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x0109, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x0108, - /* 0x90 */ - 0x00c9, 0x010b, 0x010a, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x0130, 0x00d6, 0x00dc, 0x011d, 0x00a3, 0x011c, 0x00d7, 0x0135, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, - 0x0124, 0x0125, 0xfffd, 0x00bd, 0x0134, 0x015f, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x015c, 0x015d, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - /* 0xd0 */ - 0xfffd, 0xfffd, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0xfffd, 0x00cc, 0x2580, - /* 0xe0 */ - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x0120, 0x0121, 0x00b5, 0x0126, - 0x0127, 0x00da, 0x00db, 0x00d9, 0x016c, 0x016d, 0xfffd, 0x00b4, - /* 0xf0 */ - 0x00ad, 0xfffd, 0x2113, 0x0149, 0x02d8, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x02d9, 0xfffd, 0x00b3, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp853_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp853_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp853_page00[96] = { - 0xff, 0x00, 0x00, 0x9c, 0xcf, 0x00, 0x00, 0xf5, /* 0xa0-0xa7 */ - 0xf9, 0x00, 0x00, 0xae, 0x00, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0x00, 0xfd, 0xfc, 0xef, 0xe6, 0x00, 0x00, /* 0xb0-0xb7 */ - 0xf7, 0x00, 0x00, 0xaf, 0x00, 0xab, 0x00, 0x00, /* 0xb8-0xbf */ - 0xb7, 0xb5, 0xb6, 0x00, 0x8e, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ - 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */ - 0x00, 0xa5, 0xe3, 0xe0, 0xe2, 0x00, 0x99, 0x9e, /* 0xd0-0xd7 */ - 0x00, 0xeb, 0xe9, 0xea, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0x00, 0x84, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ - 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp853_page01[120] = { - 0x8f, 0x86, 0x92, 0x91, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9b, 0xa6, 0xa7, /* 0x18-0x1f */ - 0xe4, 0xe5, 0x00, 0x00, 0xa8, 0xa9, 0xe7, 0xe8, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x98, 0xd5, 0x00, 0x00, 0xac, 0x9f, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc7, 0xb8, 0xad, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0xec, 0xed, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char cp853_page02[8] = { - 0xf4, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char cp853_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp853_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp853_page00[wc-0x00a0]; - else if (wc >= 0x0108 && wc < 0x0180) - c = cp853_page01[wc-0x0108]; - else if (wc >= 0x02d8 && wc < 0x02e0) - c = cp853_page02[wc-0x02d8]; - else if (wc == 0x2113) - c = 0xf2; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp853_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp855.h b/jni/parted/libiconv/lib/cp855.h deleted file mode 100755 index 9fc109a..0000000 --- a/jni/parted/libiconv/lib/cp855.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP855 - */ - -static const unsigned short cp855_2uni[128] = { - /* 0x80 */ - 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, - 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, - /* 0x90 */ - 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, - 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, - /* 0xa0 */ - 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, - 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, - 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - /* 0xd0 */ - 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, - 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, - /* 0xe0 */ - 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, - 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, - /* 0xf0 */ - 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, - 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0, -}; - -static int -cp855_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp855_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp855_page00[32] = { - 0xff, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0xae, 0x00, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char cp855_page04[96] = { - 0x00, 0x85, 0x81, 0x83, 0x87, 0x89, 0x8b, 0x8d, /* 0x00-0x07 */ - 0x8f, 0x91, 0x93, 0x95, 0x97, 0x00, 0x99, 0x9b, /* 0x08-0x0f */ - 0xa1, 0xa3, 0xec, 0xad, 0xa7, 0xa9, 0xea, 0xf4, /* 0x10-0x17 */ - 0xb8, 0xbe, 0xc7, 0xd1, 0xd3, 0xd5, 0xd7, 0xdd, /* 0x18-0x1f */ - 0xe2, 0xe4, 0xe6, 0xe8, 0xab, 0xb6, 0xa5, 0xfc, /* 0x20-0x27 */ - 0xf6, 0xfa, 0x9f, 0xf2, 0xee, 0xf8, 0x9d, 0xe0, /* 0x28-0x2f */ - 0xa0, 0xa2, 0xeb, 0xac, 0xa6, 0xa8, 0xe9, 0xf3, /* 0x30-0x37 */ - 0xb7, 0xbd, 0xc6, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, /* 0x38-0x3f */ - 0xe1, 0xe3, 0xe5, 0xe7, 0xaa, 0xb5, 0xa4, 0xfb, /* 0x40-0x47 */ - 0xf5, 0xf9, 0x9e, 0xf1, 0xed, 0xf7, 0x9c, 0xde, /* 0x48-0x4f */ - 0x00, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8a, 0x8c, /* 0x50-0x57 */ - 0x8e, 0x90, 0x92, 0x94, 0x96, 0x00, 0x98, 0x9a, /* 0x58-0x5f */ -}; -static const unsigned char cp855_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp855_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = cp855_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0460) - c = cp855_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0xef; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp855_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp856.h b/jni/parted/libiconv/lib/cp856.h deleted file mode 100755 index 9cce575..0000000 --- a/jni/parted/libiconv/lib/cp856.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP856 - */ - -static const unsigned short cp856_2uni[128] = { - /* 0x80 */ - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - /* 0x90 */ - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0x00a3, 0xfffd, 0x00d7, 0xfffd, - /* 0xa0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0xfffd, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0xfffd, 0xfffd, 0xfffd, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0xfffd, 0xfffd, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - /* 0xd0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0xfffd, 0x2580, - /* 0xe0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00b5, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00af, 0x00b4, - /* 0xf0 */ - 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp856_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp856_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp856_page00[88] = { - 0xff, 0x00, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */ - 0xf9, 0xb8, 0x00, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ - 0xf7, 0xfb, 0x00, 0xaf, 0xac, 0xab, 0xf3, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ -}; -static const unsigned char cp856_page05[32] = { - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0xd0-0xd7 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0xd8-0xdf */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0xe0-0xe7 */ - 0x98, 0x99, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char cp856_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp856_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00f8) - c = cp856_page00[wc-0x00a0]; - else if (wc >= 0x05d0 && wc < 0x05f0) - c = cp856_page05[wc-0x05d0]; - else if (wc == 0x2017) - c = 0xf2; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp856_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp857.h b/jni/parted/libiconv/lib/cp857.h deleted file mode 100755 index 3a191a2..0000000 --- a/jni/parted/libiconv/lib/cp857.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP857 - */ - -static const unsigned short cp857_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, - 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, - 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, - /* 0xd0 */ - 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0xfffd, 0x00cd, 0x00ce, - 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, - /* 0xe0 */ - 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0xfffd, - 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, - /* 0xf0 */ - 0x00ad, 0x00b1, 0xfffd, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, - 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp857_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp857_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp857_page00[96] = { - 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */ - 0xf9, 0xb8, 0xd1, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */ - 0xf7, 0xfb, 0xd0, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* 0xb8-0xbf */ - 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ - 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */ - 0x00, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0xe8, /* 0xd0-0xd7 */ - 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0xec, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ - 0x00, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0xed, /* 0xf8-0xff */ -}; -static const unsigned char cp857_page01[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xa7, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x98, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9f, /* 0x58-0x5f */ -}; -static const unsigned char cp857_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp857_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp857_page00[wc-0x00a0]; - else if (wc >= 0x0118 && wc < 0x0160) - c = cp857_page01[wc-0x0118]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp857_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp858.h b/jni/parted/libiconv/lib/cp858.h deleted file mode 100755 index c7bddb2..0000000 --- a/jni/parted/libiconv/lib/cp858.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP858 - */ - -static int -cp858_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else if (c == 0xd5) - *pwc = 0x20ac; - else - *pwc = (ucs4_t) cp850_2uni[c-0x80]; - return 1; -} - -static int -cp858_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp850_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x9f; - else if (wc == 0x2017) - c = 0xf2; - else if (wc == 0x20ac) - c = 0xd5; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp850_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp860.h b/jni/parted/libiconv/lib/cp860.h deleted file mode 100755 index afa25fb..0000000 --- a/jni/parted/libiconv/lib/cp860.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP860 - */ - -static const unsigned short cp860_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, - 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, - /* 0x90 */ - 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, - 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp860_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp860_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp860_page00[96] = { - 0xff, 0xad, 0x9b, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ - 0x91, 0x86, 0x8f, 0x8e, 0x00, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ - 0x92, 0x90, 0x89, 0x00, 0x98, 0x8b, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0xa5, 0xa9, 0x9f, 0x8c, 0x99, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x9d, 0x96, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0x84, 0x00, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x00, 0x8d, 0xa1, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x94, 0x00, 0xf6, /* 0xf0-0xf7 */ - 0x00, 0x97, 0xa3, 0x00, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp860_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char cp860_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp860_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp860_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp860_page00[wc-0x00a0]; - else if (wc >= 0x0390 && wc < 0x03c8) - c = cp860_page03[wc-0x0390]; - else if (wc == 0x207f) - c = 0xfc; - else if (wc == 0x20a7) - c = 0x9e; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp860_page22[wc-0x2218]; - else if (wc >= 0x2320 && wc < 0x2322) - c = wc-0x222c; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp860_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp861.h b/jni/parted/libiconv/lib/cp861.h deleted file mode 100755 index b131570..0000000 --- a/jni/parted/libiconv/lib/cp861.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP861 - */ - -static const unsigned short cp861_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, - 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp861_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp861_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp861_page00[96] = { - 0xff, 0xad, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ - 0x00, 0xa4, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ - 0x00, 0x90, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, /* 0xc8-0xcf */ - 0x8b, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */ - 0x9d, 0x00, 0xa7, 0x00, 0x9a, 0x97, 0x8d, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0x00, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x00, 0xa1, 0x00, 0x00, /* 0xe8-0xef */ - 0x8c, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x9b, 0x00, 0xa3, 0x96, 0x81, 0x98, 0x95, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp861_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char cp861_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp861_page23[24] = { - 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char cp861_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp861_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp861_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x9f; - else if (wc >= 0x0390 && wc < 0x03c8) - c = cp861_page03[wc-0x0390]; - else if (wc == 0x207f) - c = 0xfc; - else if (wc == 0x20a7) - c = 0x9e; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp861_page22[wc-0x2218]; - else if (wc >= 0x2310 && wc < 0x2328) - c = cp861_page23[wc-0x2310]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp861_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp862.h b/jni/parted/libiconv/lib/cp862.h deleted file mode 100755 index 9aaeca3..0000000 --- a/jni/parted/libiconv/lib/cp862.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP862 - */ - -static const unsigned short cp862_2uni[128] = { - /* 0x80 */ - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - /* 0x90 */ - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp862_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp862_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp862_page00[96] = { - 0xff, 0xad, 0x9b, 0x9c, 0x00, 0x9d, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0x00, 0xa7, 0xaf, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0xa4, 0x00, 0xa2, 0x00, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp862_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char cp862_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp862_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp862_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp862_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x9f; - else if (wc >= 0x0390 && wc < 0x03c8) - c = cp862_page03[wc-0x0390]; - else if (wc >= 0x05d0 && wc < 0x05eb) - c = wc-0x0550; - else if (wc == 0x207f) - c = 0xfc; - else if (wc == 0x20a7) - c = 0x9e; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp862_page22[wc-0x2218]; - else if (wc == 0x2310) - c = 0xa9; - else if (wc >= 0x2320 && wc < 0x2322) - c = wc-0x222c; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp862_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp863.h b/jni/parted/libiconv/lib/cp863.h deleted file mode 100755 index 03f8ac6..0000000 --- a/jni/parted/libiconv/lib/cp863.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP863 - */ - -static const unsigned short cp863_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, - /* 0x90 */ - 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, - 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, - /* 0xa0 */ - 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, - 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp863_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp863_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp863_page00[96] = { - 0xff, 0x00, 0x9b, 0x9c, 0x98, 0x00, 0xa0, 0x8f, /* 0xa0-0xa7 */ - 0xa4, 0x00, 0x00, 0xae, 0xaa, 0x00, 0x00, 0xa7, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0xa6, 0xa1, 0xe6, 0x86, 0xfa, /* 0xb0-0xb7 */ - 0xa5, 0x00, 0x00, 0xaf, 0xac, 0xab, 0xad, 0x00, /* 0xb8-0xbf */ - 0x8e, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xc0-0xc7 */ - 0x91, 0x90, 0x92, 0x94, 0x00, 0x00, 0xa8, 0x95, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x9d, 0x00, 0x9e, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x85, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x00, 0x00, 0x8c, 0x8b, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xa2, 0x93, 0x00, 0x00, 0xf6, /* 0xf0-0xf7 */ - 0x00, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char cp863_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char cp863_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp863_page23[24] = { - 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char cp863_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp863_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp863_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x9f; - else if (wc >= 0x0390 && wc < 0x03c8) - c = cp863_page03[wc-0x0390]; - else if (wc == 0x2017) - c = 0x8d; - else if (wc == 0x207f) - c = 0xfc; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp863_page22[wc-0x2218]; - else if (wc >= 0x2310 && wc < 0x2328) - c = cp863_page23[wc-0x2310]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp863_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp864.h b/jni/parted/libiconv/lib/cp864.h deleted file mode 100755 index c20a855..0000000 --- a/jni/parted/libiconv/lib/cp864.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP864 - */ - -static const unsigned short cp864_2uni_1[16] = { - /* 0x20 */ - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066a, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, -}; -static const unsigned short cp864_2uni_2[128] = { - /* 0x80 */ - 0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c, - 0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518, - /* 0x90 */ - 0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab, - 0x00bb, 0xfef7, 0xfef8, 0xfffd, 0xfffd, 0xfefb, 0xfefc, 0xfffd, - /* 0xa0 */ - 0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0xfffd, 0xfffd, - 0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5, - /* 0xb0 */ - 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, - 0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f, - /* 0xc0 */ - 0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d, - 0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9, - /* 0xd0 */ - 0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1, - 0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9, - /* 0xe0 */ - 0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb, - 0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1, - /* 0xf0 */ - 0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0, - 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0xfffd, -}; - -static int -cp864_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x20) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c < 0x30) { - *pwc = (ucs4_t) cp864_2uni_1[c-0x20]; - return 1; - } - else if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp864_2uni_2[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp864_page00[8] = { - 0x20, 0x21, 0x22, 0x23, 0x24, 0x00, 0x26, 0x27, /* 0x20-0x27 */ -}; -static const unsigned char cp864_page00_1[88] = { - 0xa0, 0x00, 0xc0, 0xa3, 0xa4, 0x00, 0xdb, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x97, 0xdc, 0xa1, 0x00, 0x00, /* 0xa8-0xaf */ - 0x80, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x98, 0x95, 0x94, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, /* 0xf0-0xf7 */ -}; -static const unsigned char cp864_page06[104] = { - 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */ - 0xb8, 0xb9, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ -}; -static const unsigned char cp864_page22[56] = { - 0x00, 0x82, 0x83, 0x00, 0x00, 0x00, 0x91, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ -}; -static const unsigned char cp864_page25[64] = { - 0x85, 0x00, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x8c, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x8f, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char cp864_pagefe[136] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x78-0x7f */ - 0xc1, 0xc2, 0xa2, 0xc3, 0xa5, 0xc4, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0xc6, 0x00, 0xc7, 0xa8, 0xa9, /* 0x88-0x8f */ - 0x00, 0xc8, 0x00, 0xc9, 0x00, 0xaa, 0x00, 0xca, /* 0x90-0x97 */ - 0x00, 0xab, 0x00, 0xcb, 0x00, 0xad, 0x00, 0xcc, /* 0x98-0x9f */ - 0x00, 0xae, 0x00, 0xcd, 0x00, 0xaf, 0x00, 0xce, /* 0xa0-0xa7 */ - 0x00, 0xcf, 0x00, 0xd0, 0x00, 0xd1, 0x00, 0xd2, /* 0xa8-0xaf */ - 0x00, 0xbc, 0x00, 0xd3, 0x00, 0xbd, 0x00, 0xd4, /* 0xb0-0xb7 */ - 0x00, 0xbe, 0x00, 0xd5, 0x00, 0xeb, 0x00, 0xd6, /* 0xb8-0xbf */ - 0x00, 0xd7, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0xdf, 0xc5, 0xd9, 0xec, 0xee, 0xed, 0xda, /* 0xc8-0xcf */ - 0xf7, 0xba, 0x00, 0xe1, 0x00, 0xf8, 0x00, 0xe2, /* 0xd0-0xd7 */ - 0x00, 0xfc, 0x00, 0xe3, 0x00, 0xfb, 0x00, 0xe4, /* 0xd8-0xdf */ - 0x00, 0xef, 0x00, 0xe5, 0x00, 0xf2, 0x00, 0xe6, /* 0xe0-0xe7 */ - 0x00, 0xf3, 0x00, 0xe7, 0xf4, 0xe8, 0x00, 0xe9, /* 0xe8-0xef */ - 0xf5, 0xfd, 0xf6, 0xea, 0x00, 0xf9, 0xfa, 0x99, /* 0xf0-0xf7 */ - 0x9a, 0x00, 0x00, 0x9d, 0x9e, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; - -static int -cp864_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0020) { - *r = wc; - return 1; - } - else if (wc >= 0x0020 && wc < 0x0028) - c = cp864_page00[wc-0x0020]; - else if (wc >= 0x0028 && wc < 0x0080) - c = wc; - else if (wc >= 0x00a0 && wc < 0x00f8) - c = cp864_page00_1[wc-0x00a0]; - else if (wc == 0x03b2) - c = 0x90; - else if (wc == 0x03c6) - c = 0x92; - else if (wc >= 0x0608 && wc < 0x0670) - c = cp864_page06[wc-0x0608]; - else if (wc >= 0x2218 && wc < 0x2250) - c = cp864_page22[wc-0x2218]; - else if (wc >= 0x2500 && wc < 0x2540) - c = cp864_page25[wc-0x2500]; - else if (wc == 0x2592) - c = 0x84; - else if (wc == 0x25a0) - c = 0xfe; - else if (wc >= 0xfe78 && wc < 0xff00) - c = cp864_pagefe[wc-0xfe78]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp865.h b/jni/parted/libiconv/lib/cp865.h deleted file mode 100755 index d0476e1..0000000 --- a/jni/parted/libiconv/lib/cp865.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP865 - */ - -static const unsigned short cp865_2uni[128] = { - /* 0x80 */ - 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, - /* 0x90 */ - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, - /* 0xa0 */ - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, - /* 0xf0 */ - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0, -}; - -static int -cp865_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp865_2uni[c-0x80]; - return 1; -} - -static const unsigned char cp865_page00[96] = { - 0xff, 0xad, 0x00, 0x9c, 0xaf, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xa6, 0xae, 0xaa, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0xfd, 0x00, 0x00, 0xe6, 0x00, 0xfa, /* 0xb0-0xb7 */ - 0x00, 0x00, 0xa7, 0x00, 0xac, 0xab, 0x00, 0xa8, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */ - 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, /* 0xd0-0xd7 */ - 0x9d, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */ - 0x85, 0xa0, 0x83, 0x00, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */ - 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */ - 0x00, 0xa4, 0x95, 0xa2, 0x93, 0x00, 0x94, 0xf6, /* 0xf0-0xf7 */ - 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0x98, /* 0xf8-0xff */ -}; -static const unsigned char cp865_page03[56] = { - 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0xe8, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0xe0, 0x00, 0x00, 0xeb, 0xee, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe3, 0x00, 0x00, 0xe5, 0xe7, 0x00, 0xed, 0x00, /* 0xc0-0xc7 */ -}; -static const unsigned char cp865_page22[80] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xec, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xf7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0xf0, 0x00, 0x00, 0xf3, 0xf2, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char cp865_page23[24] = { - 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0xf4, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char cp865_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp865_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = cp865_page00[wc-0x00a0]; - else if (wc == 0x0192) - c = 0x9f; - else if (wc >= 0x0390 && wc < 0x03c8) - c = cp865_page03[wc-0x0390]; - else if (wc == 0x207f) - c = 0xfc; - else if (wc == 0x20a7) - c = 0x9e; - else if (wc >= 0x2218 && wc < 0x2268) - c = cp865_page22[wc-0x2218]; - else if (wc >= 0x2310 && wc < 0x2328) - c = cp865_page23[wc-0x2310]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp865_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp866.h b/jni/parted/libiconv/lib/cp866.h deleted file mode 100755 index 71548cb..0000000 --- a/jni/parted/libiconv/lib/cp866.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP866 - */ - -static const unsigned short cp866_2uni[80] = { - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, - /* 0xd0 */ - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, - /* 0xe0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - /* 0xf0 */ - 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0, -}; - -static int -cp866_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else if (c < 0xb0) - *pwc = (ucs4_t) c + 0x0390; - else - *pwc = (ucs4_t) cp866_2uni[c-0xb0]; - return 1; -} - -static const unsigned char cp866_page00[24] = { - 0xff, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, /* 0xb0-0xb7 */ -}; -static const unsigned char cp866_page04[96] = { - 0x00, 0xf0, 0x00, 0x00, 0xf2, 0x00, 0x00, 0xf4, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x00, /* 0x08-0x0f */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x30-0x37 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0x00, 0xf1, 0x00, 0x00, 0xf3, 0x00, 0x00, 0xf5, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, /* 0x58-0x5f */ -}; -static const unsigned char cp866_page22[8] = { - 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; -static const unsigned char cp866_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, /* 0x50-0x57 */ - 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, /* 0x58-0x5f */ - 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, /* 0x60-0x67 */ - 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xde, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp866_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b8) - c = cp866_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0460) - c = cp866_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0xfc; - else if (wc >= 0x2218 && wc < 0x2220) - c = cp866_page22[wc-0x2218]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp866_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp869.h b/jni/parted/libiconv/lib/cp869.h deleted file mode 100755 index 4df05a1..0000000 --- a/jni/parted/libiconv/lib/cp869.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP869 - */ - -static const unsigned short cp869_2uni[128] = { - /* 0x80 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0386, 0xfffd, - 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, - /* 0x90 */ - 0x038a, 0x03aa, 0x038c, 0xfffd, 0xfffd, 0x038e, 0x03ab, 0x00a9, - 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, - /* 0xa0 */ - 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, - 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, - /* 0xb0 */ - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, - 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, - /* 0xc0 */ - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, - /* 0xd0 */ - 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, - 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, - /* 0xe0 */ - 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, - 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, - /* 0xf0 */ - 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, - 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0, -}; - -static int -cp869_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp869_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp869_page00[32] = { - 0xff, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x8a, 0xf5, /* 0xa0-0xa7 */ - 0xf9, 0x97, 0x00, 0xae, 0x89, 0xf0, 0x00, 0x00, /* 0xa8-0xaf */ - 0xf8, 0xf1, 0x99, 0x9a, 0x00, 0x00, 0x00, 0x88, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xaf, 0x00, 0xab, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char cp869_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0xef, 0xf7, 0x86, 0x00, /* 0x80-0x87 */ - 0x8d, 0x8f, 0x90, 0x00, 0x92, 0x00, 0x95, 0x98, /* 0x88-0x8f */ - 0xa1, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, /* 0x90-0x97 */ - 0xac, 0xad, 0xb5, 0xb6, 0xb7, 0xb8, 0xbd, 0xbe, /* 0x98-0x9f */ - 0xc6, 0xc7, 0x00, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, /* 0xa0-0xa7 */ - 0xd4, 0xd5, 0x91, 0x96, 0x9b, 0x9d, 0x9e, 0x9f, /* 0xa8-0xaf */ - 0xfc, 0xd6, 0xd7, 0xd8, 0xdd, 0xde, 0xe0, 0xe1, /* 0xb0-0xb7 */ - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, /* 0xb8-0xbf */ - 0xea, 0xeb, 0xed, 0xec, 0xee, 0xf2, 0xf3, 0xf4, /* 0xc0-0xc7 */ - 0xf6, 0xfa, 0xa0, 0xfb, 0xa2, 0xa3, 0xfd, 0x00, /* 0xc8-0xcf */ -}; -static const unsigned char cp869_page20[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, /* 0x10-0x17 */ - 0x8b, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; -static const unsigned char cp869_page25[168] = { - 0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */ - 0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */ - 0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */ - 0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -cp869_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = cp869_page00[wc-0x00a0]; - else if (wc >= 0x0380 && wc < 0x03d0) - c = cp869_page03[wc-0x0380]; - else if (wc >= 0x2010 && wc < 0x2020) - c = cp869_page20[wc-0x2010]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = cp869_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp874.h b/jni/parted/libiconv/lib/cp874.h deleted file mode 100755 index 0655337..0000000 --- a/jni/parted/libiconv/lib/cp874.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP874 - */ - -static const unsigned short cp874_2uni[128] = { - /* 0x80 */ - 0x20ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2026, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x90 */ - 0xfffd, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xa0 */ - 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, - 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, - /* 0xb0 */ - 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, - 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, - /* 0xc0 */ - 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, - 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, - /* 0xd0 */ - 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, - 0x0e38, 0x0e39, 0x0e3a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e3f, - /* 0xe0 */ - 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, - /* 0xf0 */ - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, -}; - -static int -cp874_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = cp874_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char cp874_page0e[96] = { - 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ -}; -static const unsigned char cp874_page20[24] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x00, 0x00, 0x93, 0x94, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ -}; - -static int -cp874_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc == 0x00a0) - c = 0xa0; - else if (wc >= 0x0e00 && wc < 0x0e60) - c = cp874_page0e[wc-0x0e00]; - else if (wc >= 0x2010 && wc < 0x2028) - c = cp874_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x80; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp922.h b/jni/parted/libiconv/lib/cp922.h deleted file mode 100755 index 3f4c143..0000000 --- a/jni/parted/libiconv/lib/cp922.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP922 - */ - -static const unsigned short cp922_2uni_1[16] = { - /* 0xa0 */ - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x203e, -}; -static const unsigned short cp922_2uni_2[16] = { - /* 0xd0 */ - 0x0160, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x017d, 0x00df, -}; -static const unsigned short cp922_2uni_3[16] = { - /* 0xf0 */ - 0x0161, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x017e, 0x00ff, -}; - -static int -cp922_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else if (c < 0xb0) - *pwc = (ucs4_t) cp922_2uni_1[c-0xa0]; - else if (c < 0xd0) - *pwc = (ucs4_t) c; - else if (c < 0xe0) - *pwc = (ucs4_t) cp922_2uni_2[c-0xd0]; - else if (c < 0xf0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) cp922_2uni_3[c-0xf0]; - return 1; -} - -static const unsigned char cp922_page00[88] = { - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */ -}; -static const unsigned char cp922_page01[32] = { - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ -}; - -static int -cp922_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a8) { - *r = wc; - return 1; - } - else if (wc >= 0x00a8 && wc < 0x0100) - c = cp922_page00[wc-0x00a8]; - else if (wc >= 0x0160 && wc < 0x0180) - c = cp922_page01[wc-0x0160]; - else if (wc == 0x203e) - c = 0xaf; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp932.h b/jni/parted/libiconv/lib/cp932.h deleted file mode 100755 index 24c258f..0000000 --- a/jni/parted/libiconv/lib/cp932.h +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP932 - */ - -/* - * Microsoft CP932 is a slightly extended version of SHIFT_JIS. - * The differences between the EASTASIA/JIS/SHIFTJIS.TXT and the - * VENDORS/MICSFT/WINDOWS/CP932.TXT tables found on ftp.unicode.org are - * as follows: - * - * 1. CP932 uses ASCII, not JISX0201 Roman. - * - * 2. Some characters in the JISX0208 range are defined differently: - * - * code SHIFTJIS.TXT CP932.TXT - * 0x815F 0x005C # REVERSE SOLIDUS 0xFF3C # FULLWIDTH REVERSE SOLIDUS - * 0x8160 0x301C # WAVE DASH 0xFF5E # FULLWIDTH TILDE - * 0x8161 0x2016 # DOUBLE VERTICAL LINE 0x2225 # PARALLEL TO - * 0x817C 0x2212 # MINUS SIGN 0xFF0D # FULLWIDTH HYPHEN-MINUS - * 0x8191 0x00A2 # CENT SIGN 0xFFE0 # FULLWIDTH CENT SIGN - * 0x8192 0x00A3 # POUND SIGN 0xFFE1 # FULLWIDTH POUND SIGN - * 0x81CA 0x00AC # NOT SIGN 0xFFE2 # FULLWIDTH NOT SIGN - * - * We don't implement the latter 6 of these changes, only the first one. - * SHIFTJIS.TXT makes more sense. However, as a compromise with user - * expectation, we implement the middle 5 of these changes in the - * Unicode to CP932 direction. We don't implement the last one at all, - * because it would collide with the mapping of 0xFA54. - * - * 3. A few new rows. See cp932ext.h. - * - * Many variants of CP932 (in GNU libc, JDK, OSF/1, Windows-2000, ICU) also - * add: - * - * 4. Private area mappings: - * - * code Unicode - * 0x{F0..F9}{40..7E,80..FC} U+E000..U+E757 - * - * We add them too because, although there are backward compatibility problems - * when a character from a private area is moved to an official Unicode code - * point, they are useful for some people in practice. - */ - -#include "cp932ext.h" - -/* - Conversion between SJIS codes (s1,s2) and JISX0208 codes (c1,c2): - Example. (s1,s2) = 0x8140, (c1,c2) = 0x2121. - 0x81 <= s1 <= 0x9F || 0xE0 <= s1 <= 0xEA, - 0x40 <= s2 <= 0x7E || 0x80 <= s2 <= 0xFC, - 0x21 <= c1 <= 0x74, 0x21 <= c2 <= 0x7E. - Invariant: - 94*2*(s1 < 0xE0 ? s1-0x81 : s1-0xC1) + (s2 < 0x80 ? s2-0x40 : s2-0x41) - = 94*(c1-0x21)+(c2-0x21) - Conversion (s1,s2) -> (c1,c2): - t1 := (s1 < 0xE0 ? s1-0x81 : s1-0xC1) - t2 := (s2 < 0x80 ? s2-0x40 : s2-0x41) - c1 := 2*t1 + (t2 < 0x5E ? 0 : 1) + 0x21 - c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21 - Conversion (c1,c2) -> (s1,s2): - t1 := (c1 - 0x21) >> 1 - t2 := ((c1 - 0x21) & 1) * 0x5E + (c2 - 0x21) - s1 := (t1 < 0x1F ? t1+0x81 : t1+0xC1) - s2 := (t2 < 0x3F ? t2+0x40 : t2+0x41) - */ - -static int -cp932_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - else if (c >= 0xa1 && c <= 0xdf) - return jisx0201_mbtowc(conv,pwc,s,n); - else { - unsigned char s1, s2; - s1 = c; - if ((s1 >= 0x81 && s1 <= 0x9f && s1 != 0x87) || (s1 >= 0xe0 && s1 <= 0xea)) { - if (n < 2) - return RET_TOOFEW(0); - s2 = s[1]; - if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { - unsigned char t1 = (s1 < 0xe0 ? s1-0x81 : s1-0xc1); - unsigned char t2 = (s2 < 0x80 ? s2-0x40 : s2-0x41); - unsigned char buf[2]; - buf[0] = 2*t1 + (t2 < 0x5e ? 0 : 1) + 0x21; - buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21; - return jisx0208_mbtowc(conv,pwc,buf,2); - } - } else if ((s1 == 0x87) || (s1 >= 0xed && s1 <= 0xee) || (s1 >= 0xfa)) { - if (n < 2) - return RET_TOOFEW(0); - return cp932ext_mbtowc(conv,pwc,s,2); - } else if (s1 >= 0xf0 && s1 <= 0xf9) { - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - if (n < 2) - return RET_TOOFEW(0); - s2 = s[1]; - if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { - *pwc = 0xe000 + 188*(s1 - 0xf0) + (s2 < 0x80 ? s2-0x40 : s2-0x41); - return 2; - } - } - return RET_ILSEQ; - } -} - -static int -cp932_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - unsigned char c; - if (ret != 1) abort(); - c = buf[0]; - if (c < 0x80) { - r[0] = c; - return 1; - } - } - - /* Try JIS X 0201-1976 Katakana. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - unsigned char c; - if (ret != 1) abort(); - c = buf[0]; - if (c >= 0xa1 && c <= 0xdf) { - r[0] = c; - return 1; - } - } - - /* Try JIS X 0208-1990. */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - unsigned char c1, c2; - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - c1 = buf[0]; - c2 = buf[1]; - if ((c1 >= 0x21 && c1 <= 0x74) && (c2 >= 0x21 && c2 <= 0x7e)) { - unsigned char t1 = (c1 - 0x21) >> 1; - unsigned char t2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21); - r[0] = (t1 < 0x1f ? t1+0x81 : t1+0xc1); - r[1] = (t2 < 0x3f ? t2+0x40 : t2+0x41); - return 2; - } - } - - /* Try CP932 extensions. */ - ret = cp932ext_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - if (wc >= 0xe000 && wc < 0xe758) { - unsigned char c1, c2; - if (n < 2) - return RET_TOOSMALL; - c1 = (unsigned int) (wc - 0xe000) / 188; - c2 = (unsigned int) (wc - 0xe000) % 188; - r[0] = c1+0xf0; - r[1] = (c2 < 0x3f ? c2+0x40 : c2+0x41); - return 2; - } - - /* Irreversible mappings. */ - if (wc == 0xff5e) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x81; - r[1] = 0x60; - return 2; - } - if (wc == 0x2225) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x81; - r[1] = 0x61; - return 2; - } - if (wc == 0xff0d) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x81; - r[1] = 0x7c; - return 2; - } - if (wc == 0xffe0) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x81; - r[1] = 0x91; - return 2; - } - if (wc == 0xffe1) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x81; - r[1] = 0x92; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp932ext.h b/jni/parted/libiconv/lib/cp932ext.h deleted file mode 100755 index 854572c..0000000 --- a/jni/parted/libiconv/lib/cp932ext.h +++ /dev/null @@ -1,708 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP932 extensions - */ - -static const unsigned short cp932ext_2uni_page87[92] = { - /* 0x87 */ - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, - 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, - 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xfffd, 0x3349, - 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, - 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c, - 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x337b, 0x301d, - 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, 0x32a7, - 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, 0x2252, - 0x2261, 0x222b, 0x222e, 0x2211, 0x221a, 0x22a5, 0x2220, 0x221f, - 0x22bf, 0x2235, 0x2229, 0x222a, -}; -static const unsigned short cp932ext_2uni_pageed[376] = { - /* 0xed */ - 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, - 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, - 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, - 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, - 0x50f4, 0x50d8, 0x514a, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, - 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, - 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, - 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0xfa10, - 0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, - 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, - 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8, - 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d, - 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137, - 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce, - 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624, - 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2, - 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0, - 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2, - 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, - 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, - 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, - 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, - 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, - 0xfa15, 0x71c1, 0x71fe, 0x72b1, - /* 0xee */ - 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, - 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, - 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, - 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, - 0x7930, 0xfa18, 0xfa19, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, - 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, - 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, - 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x856b, - 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, - 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, - 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, - 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, - 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, - 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, - 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, - 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, - 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, - 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, - 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, - 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, - 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, - 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0xfffd, 0xfffd, 0x2170, 0x2171, - 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, - 0xffe2, 0xffe4, 0xff07, 0xff02, -}; -static const unsigned short cp932ext_2uni_pagefa[388] = { - /* 0xfa */ - 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, - 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, - 0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02, - 0x3231, 0x2116, 0x2121, 0x2235, 0x7e8a, 0x891c, 0x9348, 0x9288, - 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, - 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, - 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e, - 0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, 0x5164, - 0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db, - 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e, - 0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac, - 0x57c8, 0x57c7, 0xfa0f, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953, - 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, - 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, - 0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, - 0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, - 0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, - 0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, - 0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, - 0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, - 0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, - 0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, - 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, - 0x6cda, 0x6d04, 0x6d87, 0x6d6f, - /* 0xfb */ - 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, - 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, - 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, - 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x72be, 0x7324, 0xfa16, 0x7377, - 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, - 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, - 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, - 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0xfa1a, - 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, - 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47, - 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448, - 0x84b4, 0x8553, 0x8559, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, - 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, - 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, - 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, - 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, - 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, - 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, - 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, - 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, - 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, - 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, - 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, - 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, - /* 0xfc */ - 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, - 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, -}; - -static int -cp932ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 == 0x87) || (c1 >= 0xed && c1 <= 0xee) || (c1 >= 0xfa && c1 <= 0xfc)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xfd)) { - unsigned int i = 188 * (c1 - (c1 >= 0xe0 ? 0xc1 : 0x81)) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); - unsigned short wc = 0xfffd; - if (i < 8272) { - if (i < 1220) - wc = cp932ext_2uni_page87[i-1128]; - } else if (i < 10716) { - if (i < 8648) - wc = cp932ext_2uni_pageed[i-8272]; - } else { - if (i < 11104) - wc = cp932ext_2uni_pagefa[i-10716]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short cp932ext_2charset[457] = { - 0xfa59, 0xfa5a, 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, - 0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa40, 0xfa41, 0xfa42, 0xfa43, - 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0x8794, 0x8795, - 0x8798, 0x8797, 0x879b, 0x879c, 0x8792, 0x8793, 0xfa5b, 0x8790, - 0x8791, 0x8796, 0x8799, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, - 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, - 0x874d, 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8780, - 0x8781, 0xfa58, 0x878b, 0x878c, 0x8785, 0x8786, 0x8787, 0x8788, - 0x8789, 0x8765, 0x8769, 0x8760, 0x8763, 0x8761, 0x876b, 0x876a, - 0x8764, 0x876c, 0x8766, 0x876e, 0x875f, 0x876d, 0x8762, 0x8767, - 0x8768, 0x877e, 0x878f, 0x878e, 0x878d, 0x8772, 0x8773, 0x876f, - 0x8770, 0x8771, 0x8775, 0x8774, 0x8783, 0xfa68, 0xfa69, 0xfa6a, - 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa70, 0xfa6f, 0xfa72, 0xfa71, - 0xfa61, 0xfa73, 0xfa76, 0xfa77, 0xfa75, 0xfa74, 0xfa7a, 0xfa78, - 0xfa79, 0xfa7b, 0xfa7d, 0xfa7c, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, - 0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfb77, 0xfa87, 0xfa88, 0xfa89, - 0xfa8a, 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa92, 0xfa91, - 0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa9a, 0xfa99, - 0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfaa1, 0xfaa2, 0xfaa3, 0xfaa4, - 0xfaa5, 0xfaa6, 0xfaa7, 0xfaa9, 0xfaaa, 0xfaab, 0xfaac, 0xfaad, - 0xfaae, 0xfaaf, 0xfab2, 0xfab0, 0xfab3, 0xfab4, 0xfab5, 0xfab6, - 0xfab7, 0xfab8, 0xfa67, 0xfab9, 0xfaba, 0xfabb, 0xfabc, 0xfabd, - 0xfabe, 0xfac0, 0xfabf, 0xfac2, 0xfac3, 0xfac1, 0xfac5, 0xfac4, - 0xfac6, 0xfac7, 0xfac8, 0xfac9, 0xfaca, 0xfacb, 0xfacc, 0xfacd, - 0xface, 0xfad1, 0xfacf, 0xfad3, 0xfad4, 0xfad2, 0xfa63, 0xfad0, - 0xfad6, 0xfad7, 0xfad5, 0xfad9, 0xfada, 0xfadb, 0xfadc, 0xfadd, - 0xfade, 0xfa66, 0xfadf, 0xfae1, 0xfae2, 0xfae4, 0xfae5, 0xfae6, - 0xfae3, 0xfa64, 0xfae7, 0xfae9, 0xfaeb, 0xfaec, 0xfaed, 0xfaef, - 0xfaee, 0xfaf0, 0xfaf1, 0xfaf2, 0xfaf3, 0xfaf4, 0xfaf5, 0xfaf6, - 0xfaf8, 0xfaf7, 0xfaf9, 0xfafa, 0xfafc, 0xfafb, 0xfb40, 0xfb41, - 0xfb42, 0xfb44, 0xfb43, 0xfb45, 0xfb48, 0xfb46, 0xfb49, 0xfb47, - 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, - 0xfb52, 0xfa62, 0xfb54, 0xfb53, 0xfb56, 0xfb57, 0xfb55, 0xfb59, - 0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5f, 0xfb60, 0xfb61, 0xfb64, - 0xfb62, 0xfb63, 0xfb66, 0xfb65, 0xfb67, 0xfb69, 0xfb68, 0xfb6a, - 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfaa8, 0xfb6f, 0xfb70, 0xfb73, - 0xfb71, 0xfb72, 0xfb74, 0xfb76, 0xfb78, 0xfb79, 0xfb7a, 0xfb7b, - 0xfb7c, 0xfb81, 0xfb83, 0xfb84, 0xfb85, 0xfb87, 0xfb88, 0xfb8a, - 0xfb8b, 0xfb8d, 0xfb8c, 0xfb8e, 0xfb8f, 0xfa5c, 0xfb90, 0xfb91, - 0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfa60, - 0xfb9a, 0xfb9b, 0xfb9c, 0xfb9e, 0xfba1, 0xfba2, 0xfa5d, 0xfba3, - 0xfba4, 0xfba5, 0xfba6, 0xfba7, 0xfba8, 0xfbaa, 0xfbab, 0xfbac, - 0xfbad, 0xfbae, 0xfbaf, 0xfbb0, 0xfbb2, 0xfbb5, 0xfbb6, 0xfbb8, - 0xfbb9, 0xfbbb, 0xfbba, 0xfbbc, 0xfbbf, 0xfbc0, 0xfbbd, 0xfbbe, - 0xfbc1, 0xfbc3, 0xfbc2, 0xfbca, 0xfbc4, 0xfbc6, 0xfbc5, 0xfbc7, - 0xfbc9, 0xfbc8, 0xfbcb, 0xfbcd, 0xfbce, 0xfa5f, 0xfbcc, 0xfbd2, - 0xfbd6, 0xfbd4, 0xfbd0, 0xfbd1, 0xfbd5, 0xfbcf, 0xfa65, 0xfbd9, - 0xfbdc, 0xfbde, 0xfbdd, 0xfbdb, 0xfbd8, 0xfbd7, 0xfa5e, 0xfbe0, - 0xfbdf, 0xfbe1, 0xfbe2, 0xfbe3, 0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7, - 0xfbe8, 0xfbeb, 0xfbec, 0xfbed, 0xfbee, 0xfbef, 0xfbf0, 0xfbf1, - 0xfbf2, 0xfbf3, 0xfbf4, 0xfbf5, 0xfbf8, 0xfbfa, 0xfbfb, 0xfbfc, - 0xfc40, 0xfc42, 0xfc41, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc48, - 0xfc47, 0xfc4a, 0xfc4b, 0xfae0, 0xfbe9, 0xfa90, 0xfa9b, 0xfa9c, - 0xfab1, 0xfad8, 0xfae8, 0xfaea, 0xfb58, 0xfb5e, 0xfb75, 0xfb7d, - 0xfb7e, 0xfb80, 0xfb82, 0xfb86, 0xfb89, 0xfb92, 0xfb9d, 0xfb9f, - 0xfba0, 0xfba9, 0xfbb1, 0xfbb3, 0xfbb4, 0xfbb7, 0xfbd3, 0xfbda, - 0xfbea, 0xfbf6, 0xfbf7, 0xfbf9, 0xfc49, 0xfa57, 0xfa56, 0xfa54, - 0xfa55, -}; - -static const Summary16 cp932ext_uni2indx_page21[28] = { - /* 0x2100 */ - { 0, 0x0000 }, { 0, 0x0040 }, { 1, 0x0002 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x03ff }, { 12, 0x03ff }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - /* 0x2200 */ - { 22, 0x0000 }, { 22, 0x8402 }, { 25, 0x4e01 }, { 30, 0x0020 }, - { 31, 0x0000 }, { 31, 0x0004 }, { 32, 0x0002 }, { 33, 0x0000 }, - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0020 }, { 34, 0x8000 }, -}; -static const Summary16 cp932ext_uni2indx_page24[8] = { - /* 0x2400 */ - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0xffff }, { 51, 0x000f }, -}; -static const Summary16 cp932ext_uni2indx_page30[2] = { - /* 0x3000 */ - { 55, 0x0000 }, { 55, 0xa000 }, -}; -static const Summary16 cp932ext_uni2indx_page32[29] = { - /* 0x3200 */ - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0206 }, - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x01f0 }, { 65, 0x0000 }, - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, - /* 0x3300 */ - { 65, 0x2008 }, { 67, 0x0110 }, { 69, 0x08cc }, { 74, 0x0840 }, - { 76, 0x2600 }, { 79, 0x0082 }, { 81, 0x0000 }, { 81, 0x7800 }, - { 85, 0xc000 }, { 87, 0x7000 }, { 90, 0x0002 }, { 91, 0x0000 }, - { 91, 0x2010 }, -}; -static const Summary16 cp932ext_uni2indx_page4e[121] = { - /* 0x4e00 */ - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0100 }, { 94, 0x0000 }, - { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, - { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, - { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0002 }, { 95, 0x1000 }, - /* 0x4f00 */ - { 96, 0x0009 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0200 }, - { 99, 0x0000 }, { 99, 0x0040 }, { 100, 0x0000 }, { 100, 0x0000 }, - { 100, 0x0400 }, { 101, 0x0414 }, { 104, 0x0000 }, { 104, 0x0000 }, - { 104, 0x2200 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x8000 }, - /* 0x5000 */ - { 107, 0x0000 }, { 107, 0x4000 }, { 108, 0x0004 }, { 109, 0x0000 }, - { 109, 0x0045 }, { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0001 }, - { 113, 0x0000 }, { 113, 0x0010 }, { 114, 0x0000 }, { 114, 0x0000 }, - { 114, 0x0000 }, { 114, 0x0100 }, { 115, 0x0000 }, { 115, 0x0010 }, - /* 0x5100 */ - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, - { 116, 0x0400 }, { 117, 0x0000 }, { 117, 0x0010 }, { 118, 0x0000 }, - { 118, 0x0000 }, { 118, 0x2000 }, { 119, 0x0000 }, { 119, 0x4000 }, - { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x1000 }, { 121, 0x0000 }, - /* 0x5200 */ - { 121, 0x0000 }, { 121, 0x0020 }, { 122, 0x0000 }, { 122, 0x0000 }, - { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, - { 122, 0x0000 }, { 122, 0x1000 }, { 123, 0x8040 }, { 125, 0x0000 }, - { 125, 0x0001 }, { 126, 0x0800 }, { 127, 0x0000 }, { 127, 0x0000 }, - /* 0x5300 */ - { 127, 0x0081 }, { 129, 0x0000 }, { 129, 0x0010 }, { 130, 0x0000 }, - { 130, 0x0000 }, { 130, 0x0000 }, { 130, 0x0000 }, { 130, 0x0004 }, - { 131, 0x0000 }, { 131, 0x0008 }, { 132, 0x0000 }, { 132, 0x0004 }, - { 133, 0x0000 }, { 133, 0x2000 }, { 134, 0x0000 }, { 134, 0x0000 }, - /* 0x5400 */ - { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, - { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, { 134, 0x0000 }, - { 134, 0x0400 }, { 135, 0x1000 }, { 136, 0x0200 }, { 137, 0x0000 }, - { 137, 0x0000 }, { 137, 0x0000 }, { 137, 0x0000 }, { 137, 0x8000 }, - /* 0x5500 */ - { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, - { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, - { 138, 0x0040 }, -}; -static const Summary16 cp932ext_uni2indx_page57[44] = { - /* 0x5700 */ - { 139, 0x0000 }, { 139, 0x0000 }, { 139, 0x0000 }, { 139, 0x0000 }, - { 139, 0x0000 }, { 139, 0x0200 }, { 140, 0x0020 }, { 141, 0x0000 }, - { 141, 0x0000 }, { 141, 0x0000 }, { 141, 0x1000 }, { 142, 0x0000 }, - { 142, 0x0180 }, { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, - /* 0x5800 */ - { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, - { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, { 144, 0x0000 }, - { 144, 0x0000 }, { 144, 0x4000 }, { 145, 0x0000 }, { 145, 0x0004 }, - { 146, 0x0000 }, { 146, 0x0000 }, { 146, 0x0000 }, { 146, 0x0000 }, - /* 0x5900 */ - { 146, 0x0800 }, { 147, 0x0000 }, { 147, 0x0000 }, { 147, 0x0000 }, - { 147, 0x0000 }, { 147, 0x2808 }, { 150, 0x0008 }, { 151, 0x0000 }, - { 151, 0x0000 }, { 151, 0x0000 }, { 151, 0x0010 }, { 152, 0x0400 }, -}; -static const Summary16 cp932ext_uni2indx_page5b[46] = { - /* 0x5b00 */ - { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, - { 153, 0x0000 }, { 153, 0x0040 }, { 154, 0x0000 }, { 154, 0x0000 }, - { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, - { 154, 0x0001 }, { 155, 0x0100 }, { 156, 0x1000 }, { 157, 0x0000 }, - /* 0x5c00 */ - { 157, 0x0000 }, { 157, 0x4000 }, { 158, 0x0000 }, { 158, 0x0000 }, - { 158, 0x0000 }, { 158, 0x0000 }, { 158, 0x0000 }, { 158, 0x0000 }, - { 158, 0x0000 }, { 158, 0x0000 }, { 158, 0x0040 }, { 159, 0x0400 }, - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0020 }, - /* 0x5d00 */ - { 161, 0x0000 }, { 161, 0x0000 }, { 161, 0x0080 }, { 162, 0x0000 }, - { 162, 0x0004 }, { 163, 0x0008 }, { 164, 0x2000 }, { 165, 0x0000 }, - { 165, 0x0000 }, { 165, 0x0000 }, { 165, 0x0000 }, { 165, 0x0300 }, - { 167, 0x0000 }, { 167, 0x0001 }, -}; -static const Summary16 cp932ext_uni2indx_page5f[458] = { - /* 0x5f00 */ - { 168, 0x0000 }, { 168, 0x0000 }, { 168, 0x0002 }, { 169, 0x0010 }, - { 170, 0x0020 }, { 171, 0x0000 }, { 171, 0x0080 }, { 172, 0x0000 }, - { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0000 }, { 172, 0x0080 }, - { 173, 0x0000 }, { 173, 0x4000 }, { 174, 0x0000 }, { 174, 0x0000 }, - /* 0x6000 */ - { 174, 0x0000 }, { 174, 0x0000 }, { 174, 0x0000 }, { 174, 0x0000 }, - { 174, 0x0000 }, { 174, 0x2000 }, { 175, 0x0000 }, { 175, 0x0000 }, - { 175, 0x0420 }, { 177, 0x0000 }, { 177, 0x0000 }, { 177, 0x0000 }, - { 177, 0x0000 }, { 177, 0x4020 }, { 179, 0x0000 }, { 179, 0x0004 }, - /* 0x6100 */ - { 180, 0x0000 }, { 180, 0x0002 }, { 181, 0x0001 }, { 182, 0x0081 }, - { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x0000 }, - { 184, 0x0000 }, { 184, 0x0100 }, { 185, 0x0000 }, { 185, 0x0000 }, - { 185, 0x0000 }, { 185, 0x0000 }, { 185, 0x0000 }, { 185, 0x0000 }, - /* 0x6200 */ - { 185, 0x0000 }, { 185, 0x0008 }, { 186, 0x0000 }, { 186, 0x0000 }, - { 186, 0x0000 }, { 186, 0x0000 }, { 186, 0x0000 }, { 186, 0x0000 }, - { 186, 0x0000 }, { 186, 0x0000 }, { 186, 0x0040 }, { 187, 0x0000 }, - { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, - /* 0x6300 */ - { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, - { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, - { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, - { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0000 }, { 187, 0x0020 }, - /* 0x6400 */ - { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x0000 }, - { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x0001 }, { 189, 0x0000 }, - { 189, 0x0000 }, { 189, 0x2000 }, { 190, 0x0000 }, { 190, 0x0000 }, - { 190, 0x4000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, - /* 0x6500 */ - { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, - { 191, 0x4000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, - { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, - { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, { 192, 0x0000 }, - /* 0x6600 */ - { 192, 0x0201 }, { 194, 0x4020 }, { 196, 0x4010 }, { 198, 0x0802 }, - { 200, 0x0000 }, { 200, 0x0280 }, { 202, 0x0020 }, { 203, 0x0008 }, - { 204, 0x0000 }, { 204, 0x0200 }, { 205, 0x0001 }, { 206, 0x8004 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0c00 }, - /* 0x6700 */ - { 210, 0x4000 }, { 211, 0x0000 }, { 211, 0x0000 }, { 211, 0x0000 }, - { 211, 0x0000 }, { 211, 0x0000 }, { 211, 0x0040 }, { 212, 0x0000 }, - { 212, 0x0000 }, { 212, 0x0000 }, { 212, 0x0000 }, { 212, 0x0800 }, - { 213, 0x0001 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, - /* 0x6800 */ - { 214, 0x0002 }, { 215, 0x0000 }, { 215, 0x0000 }, { 215, 0x0000 }, - { 215, 0x0010 }, { 216, 0x0004 }, { 217, 0x0000 }, { 217, 0x0000 }, - { 217, 0x0000 }, { 217, 0x0000 }, { 217, 0x0000 }, { 217, 0x0000 }, - { 217, 0x8100 }, { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0000 }, - /* 0x6900 */ - { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0000 }, - { 219, 0x0000 }, { 219, 0x0000 }, { 219, 0x0100 }, { 220, 0x0000 }, - { 220, 0x0000 }, { 220, 0x0100 }, { 221, 0x0000 }, { 221, 0x0000 }, - { 221, 0x0000 }, { 221, 0x0000 }, { 221, 0x0004 }, { 222, 0x0000 }, - /* 0x6a00 */ - { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0001 }, - { 223, 0x0040 }, { 224, 0x0000 }, { 224, 0x0800 }, { 225, 0x4008 }, - { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 }, - { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0014 }, { 229, 0x0000 }, - /* 0x6b00 */ - { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, - { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, - { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x0000 }, - { 229, 0x0000 }, { 229, 0x0040 }, { 230, 0x0000 }, { 230, 0x0000 }, - /* 0x6c00 */ - { 230, 0x0000 }, { 230, 0x0000 }, { 230, 0x0000 }, { 230, 0x8000 }, - { 231, 0x0000 }, { 231, 0x1000 }, { 232, 0x8000 }, { 233, 0x0000 }, - { 233, 0x0040 }, { 234, 0x0000 }, { 234, 0x0000 }, { 234, 0x0000 }, - { 234, 0x0000 }, { 234, 0x0400 }, { 235, 0x0000 }, { 235, 0x0000 }, - /* 0x6d00 */ - { 235, 0x0010 }, { 236, 0x0000 }, { 236, 0x0000 }, { 236, 0x0000 }, - { 236, 0x0000 }, { 236, 0x0000 }, { 236, 0x8000 }, { 237, 0x0000 }, - { 237, 0x0080 }, { 238, 0x0040 }, { 239, 0x1000 }, { 240, 0x0000 }, - { 240, 0x8000 }, { 241, 0x0000 }, { 241, 0x0000 }, { 241, 0x1104 }, - /* 0x6e00 */ - { 244, 0x0000 }, { 244, 0x0000 }, { 244, 0x0080 }, { 245, 0x1200 }, - { 247, 0x0000 }, { 247, 0x1000 }, { 248, 0x0000 }, { 248, 0x0000 }, - { 248, 0x0000 }, { 248, 0x0000 }, { 248, 0x0000 }, { 248, 0x8000 }, - { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, - /* 0x6f00 */ - { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, - { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, { 249, 0x0000 }, - { 249, 0x0100 }, { 250, 0x0000 }, { 250, 0x0000 }, { 250, 0x0020 }, - { 251, 0x0000 }, { 251, 0x0000 }, { 251, 0x0000 }, { 251, 0x0020 }, - /* 0x7000 */ - { 252, 0x00a0 }, { 254, 0x0000 }, { 254, 0x0100 }, { 255, 0x0000 }, - { 255, 0x0000 }, { 255, 0x0000 }, { 255, 0x0000 }, { 255, 0x0000 }, - { 255, 0x0020 }, { 256, 0x0000 }, { 256, 0x0800 }, { 257, 0x0800 }, - { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, - /* 0x7100 */ - { 258, 0x8010 }, { 260, 0x0000 }, { 260, 0x0000 }, { 260, 0x0000 }, - { 260, 0x00c0 }, { 262, 0x1000 }, { 263, 0x0000 }, { 263, 0x0000 }, - { 263, 0x0000 }, { 263, 0x0000 }, { 263, 0x0000 }, { 263, 0x0000 }, - { 263, 0x0002 }, { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x4000 }, - /* 0x7200 */ - { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, - { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, - { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x4002 }, - { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0000 }, - /* 0x7300 */ - { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0010 }, { 268, 0x0000 }, - { 268, 0x0000 }, { 268, 0x0000 }, { 268, 0x0000 }, { 268, 0x0080 }, - { 269, 0x0000 }, { 269, 0x0000 }, { 269, 0x0000 }, { 269, 0x2000 }, - { 270, 0x0200 }, { 271, 0x0044 }, { 273, 0x0008 }, { 274, 0x0020 }, - /* 0x7400 */ - { 275, 0x0080 }, { 276, 0x0000 }, { 276, 0x4640 }, { 280, 0x0000 }, - { 280, 0x0000 }, { 280, 0x0000 }, { 280, 0x0004 }, { 281, 0x0000 }, - { 281, 0x0200 }, { 282, 0x8000 }, { 283, 0x0000 }, { 283, 0x0000 }, - { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, - /* 0x7500 */ - { 283, 0x0002 }, { 284, 0x0000 }, { 284, 0x8000 }, { 285, 0x0000 }, - { 285, 0x0000 }, { 285, 0x0000 }, { 285, 0x8000 }, { 286, 0x0000 }, - { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, - { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, - /* 0x7600 */ - { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, - { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, { 286, 0x0000 }, - { 286, 0x0004 }, { 287, 0x5800 }, { 290, 0x0040 }, { 291, 0x0000 }, - { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, - /* 0x7700 */ - { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, - { 291, 0x0040 }, { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, - { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, - { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0000 }, - /* 0x7800 */ - { 292, 0x0000 }, { 292, 0x0000 }, { 292, 0x0002 }, { 293, 0x0000 }, - { 293, 0x4000 }, { 294, 0x0000 }, { 294, 0x0010 }, { 295, 0x0400 }, - { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, - { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, - /* 0x7900 */ - { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0000 }, { 296, 0x0001 }, - { 297, 0x0000 }, { 297, 0x0000 }, { 297, 0x0000 }, { 297, 0x0000 }, - { 297, 0x0000 }, { 297, 0x0810 }, { 299, 0x0000 }, { 299, 0x0000 }, - { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, - /* 0x7a00 */ - { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, - { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, - { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, { 299, 0x0000 }, - { 299, 0x0000 }, { 299, 0x0002 }, { 300, 0x0880 }, { 302, 0x0000 }, - /* 0x7b00 */ - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0000 }, - { 302, 0x0000 }, { 302, 0x4000 }, -}; -static const Summary16 cp932ext_uni2indx_page7d[43] = { - /* 0x7d00 */ - { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, - { 303, 0x0100 }, { 304, 0x1000 }, { 305, 0x0000 }, { 305, 0x0000 }, - { 305, 0x0000 }, { 305, 0x0000 }, { 305, 0x0001 }, { 306, 0x0080 }, - { 307, 0x0000 }, { 307, 0x0040 }, { 308, 0x0000 }, { 308, 0x0000 }, - /* 0x7e00 */ - { 308, 0x0000 }, { 308, 0x0000 }, { 308, 0x0000 }, { 308, 0x0000 }, - { 308, 0x0000 }, { 308, 0x0004 }, { 309, 0x0000 }, { 309, 0x0000 }, - { 309, 0x0400 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, - { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, - /* 0x7f00 */ - { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, - { 310, 0x0080 }, { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0000 }, - { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0002 }, -}; -static const Summary16 cp932ext_uni2indx_page83[44] = { - /* 0x8300 */ - { 312, 0x0002 }, { 313, 0x0000 }, { 313, 0x0000 }, { 313, 0x0000 }, - { 313, 0x0000 }, { 313, 0x0000 }, { 313, 0x0004 }, { 314, 0x8000 }, - { 315, 0x0000 }, { 315, 0x0000 }, { 315, 0x0000 }, { 315, 0x0000 }, - { 315, 0x0080 }, { 316, 0x0000 }, { 316, 0x0000 }, { 316, 0x0040 }, - /* 0x8400 */ - { 317, 0x0000 }, { 317, 0x0000 }, { 317, 0x0000 }, { 317, 0x0000 }, - { 317, 0x0100 }, { 318, 0x0000 }, { 318, 0x0000 }, { 318, 0x0000 }, - { 318, 0x0000 }, { 318, 0x0000 }, { 318, 0x0000 }, { 318, 0x0010 }, - { 319, 0x0000 }, { 319, 0x1000 }, { 320, 0x0000 }, { 320, 0x0000 }, - /* 0x8500 */ - { 320, 0x0000 }, { 320, 0x0000 }, { 320, 0x0000 }, { 320, 0x0000 }, - { 320, 0x0000 }, { 320, 0x0208 }, { 322, 0x0800 }, { 323, 0x0000 }, - { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0001 }, -}; -static const Summary16 cp932ext_uni2indx_page88[109] = { - /* 0x8800 */ - { 324, 0x0080 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, - { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, - { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, - { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0020 }, - /* 0x8900 */ - { 326, 0x0000 }, { 326, 0x1000 }, { 327, 0x0000 }, { 327, 0x0000 }, - { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, - { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, - { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, { 327, 0x0000 }, - /* 0x8a00 */ - { 327, 0x0000 }, { 327, 0x0004 }, { 328, 0x0000 }, { 328, 0x0080 }, - { 329, 0x0000 }, { 329, 0x0000 }, { 329, 0x0000 }, { 329, 0x0200 }, - { 330, 0x0000 }, { 330, 0x0000 }, { 330, 0x0080 }, { 331, 0x4000 }, - { 332, 0x0000 }, { 332, 0x8000 }, { 333, 0x0000 }, { 333, 0x0040 }, - /* 0x8b00 */ - { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 }, - { 334, 0x0000 }, { 334, 0x0008 }, { 335, 0x0000 }, { 335, 0x8000 }, - { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, - { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, - /* 0x8c00 */ - { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, - { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, - { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, - { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0000 }, { 336, 0x0011 }, - /* 0x8d00 */ - { 338, 0x0000 }, { 338, 0x0004 }, { 339, 0x0000 }, { 339, 0x0000 }, - { 339, 0x0000 }, { 339, 0x0000 }, { 339, 0x0000 }, { 339, 0x0040 }, - { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, - { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, - /* 0x8e00 */ - { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, - { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, - { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, { 340, 0x0000 }, - { 340, 0x8000 }, -}; -static const Summary16 cp932ext_uni2indx_page90[238] = { - /* 0x9000 */ - { 341, 0x0000 }, { 341, 0x0000 }, { 341, 0x0000 }, { 341, 0x0000 }, - { 341, 0x0000 }, { 341, 0x0000 }, { 341, 0x0080 }, { 342, 0x0000 }, - { 342, 0x0000 }, { 342, 0x0000 }, { 342, 0x0000 }, { 342, 0x0000 }, - { 342, 0x0000 }, { 342, 0x4000 }, { 343, 0x0000 }, { 343, 0x0000 }, - /* 0x9100 */ - { 343, 0x0000 }, { 343, 0x0020 }, { 344, 0x0080 }, { 345, 0x0000 }, - { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, - { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, - { 345, 0x0000 }, { 345, 0x4480 }, { 348, 0x6030 }, { 352, 0x0000 }, - /* 0x9200 */ - { 352, 0x0440 }, { 354, 0x0001 }, { 355, 0x0000 }, { 355, 0x1600 }, - { 358, 0x4001 }, { 360, 0x0202 }, { 362, 0x0080 }, { 363, 0x0180 }, - { 365, 0x0100 }, { 366, 0x0000 }, { 366, 0x0080 }, { 367, 0x0000 }, - { 367, 0x0000 }, { 367, 0x02a9 }, { 372, 0x0081 }, { 374, 0x8a00 }, - /* 0x9300 */ - { 377, 0x0004 }, { 378, 0x6000 }, { 380, 0x0022 }, { 382, 0x0000 }, - { 382, 0x0100 }, { 383, 0x0080 }, { 384, 0x0000 }, { 384, 0x0001 }, - { 385, 0x0000 }, { 385, 0x0000 }, { 385, 0x0010 }, { 386, 0x0000 }, - { 386, 0x0040 }, { 387, 0x4000 }, { 388, 0x0000 }, { 388, 0x0100 }, - /* 0x9400 */ - { 389, 0x0000 }, { 389, 0x0000 }, { 389, 0x0000 }, { 389, 0x0002 }, - { 390, 0x0120 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, - { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, - { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, - /* 0x9500 */ - { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, - { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, { 392, 0x0000 }, - { 392, 0x0000 }, { 392, 0x0004 }, { 393, 0x0000 }, { 393, 0x0000 }, - { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, - /* 0x9600 */ - { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, - { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, { 393, 0x0000 }, - { 393, 0x0000 }, { 393, 0x2000 }, { 394, 0x8000 }, { 395, 0x0000 }, - { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0000 }, - /* 0x9700 */ - { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0000 }, { 395, 0x0808 }, - { 397, 0xa008 }, { 400, 0x0022 }, { 402, 0x0000 }, { 402, 0x0000 }, - { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, - { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, - /* 0x9800 */ - { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, - { 402, 0x0000 }, { 402, 0x0080 }, { 403, 0x0020 }, { 404, 0x0000 }, - { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, - { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0000 }, - /* 0x9900 */ - { 404, 0x0000 }, { 404, 0x0000 }, { 404, 0x0080 }, { 405, 0x0000 }, - { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x0000 }, - { 405, 0x0000 }, { 405, 0x4000 }, { 406, 0x0000 }, { 406, 0x0000 }, - { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, - /* 0x9a00 */ - { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, { 406, 0x0000 }, - { 406, 0x4000 }, { 407, 0x0000 }, { 407, 0x0000 }, { 407, 0x0000 }, - { 407, 0x0000 }, { 407, 0x0000 }, { 407, 0x0000 }, { 407, 0x0000 }, - { 407, 0x0000 }, { 407, 0x1200 }, { 409, 0x0000 }, { 409, 0x0000 }, - /* 0x9b00 */ - { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0000 }, - { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0000 }, { 409, 0x0024 }, - { 411, 0x8000 }, { 412, 0x0000 }, { 412, 0x0000 }, { 412, 0x0802 }, - { 414, 0x0000 }, { 414, 0x0000 }, { 414, 0x0000 }, { 414, 0x0000 }, - /* 0x9c00 */ - { 414, 0x0001 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, - { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, - { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, - { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, - /* 0x9d00 */ - { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0000 }, - { 415, 0x0000 }, { 415, 0x0000 }, { 415, 0x0800 }, { 416, 0x0001 }, - { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, - { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, { 417, 0x0000 }, - /* 0x9e00 */ - { 417, 0x0000 }, { 417, 0x0200 }, { 418, 0x0000 }, { 418, 0x0000 }, - { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, - { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, - { 418, 0x0000 }, { 418, 0x0002 }, -}; -static const Summary16 cp932ext_uni2indx_pagef9[19] = { - /* 0xf900 */ - { 419, 0x0000 }, { 419, 0x0000 }, { 419, 0x0200 }, { 420, 0x0000 }, - { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, - { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, { 420, 0x0000 }, - { 420, 0x0000 }, { 420, 0x1000 }, { 421, 0x0000 }, { 421, 0x0000 }, - /* 0xfa00 */ - { 421, 0xc000 }, { 423, 0xffff }, { 439, 0x3fff }, -}; -static const Summary16 cp932ext_uni2indx_pageff[15] = { - /* 0xff00 */ - { 453, 0x0084 }, { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, - { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, - { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0000 }, - { 455, 0x0000 }, { 455, 0x0000 }, { 455, 0x0014 }, -}; - -static int -cp932ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x2100 && wc < 0x22c0) - summary = &cp932ext_uni2indx_page21[(wc>>4)-0x210]; - else if (wc >= 0x2400 && wc < 0x2480) - summary = &cp932ext_uni2indx_page24[(wc>>4)-0x240]; - else if (wc >= 0x3000 && wc < 0x3020) - summary = &cp932ext_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x3200 && wc < 0x33d0) - summary = &cp932ext_uni2indx_page32[(wc>>4)-0x320]; - else if (wc >= 0x4e00 && wc < 0x5590) - summary = &cp932ext_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0x5700 && wc < 0x59c0) - summary = &cp932ext_uni2indx_page57[(wc>>4)-0x570]; - else if (wc >= 0x5b00 && wc < 0x5de0) - summary = &cp932ext_uni2indx_page5b[(wc>>4)-0x5b0]; - else if (wc >= 0x5f00 && wc < 0x7ba0) - summary = &cp932ext_uni2indx_page5f[(wc>>4)-0x5f0]; - else if (wc >= 0x7d00 && wc < 0x7fb0) - summary = &cp932ext_uni2indx_page7d[(wc>>4)-0x7d0]; - else if (wc >= 0x8300 && wc < 0x85c0) - summary = &cp932ext_uni2indx_page83[(wc>>4)-0x830]; - else if (wc >= 0x8800 && wc < 0x8ed0) - summary = &cp932ext_uni2indx_page88[(wc>>4)-0x880]; - else if (wc >= 0x9000 && wc < 0x9ee0) - summary = &cp932ext_uni2indx_page90[(wc>>4)-0x900]; - else if (wc >= 0xf900 && wc < 0xfa30) - summary = &cp932ext_uni2indx_pagef9[(wc>>4)-0xf90]; - else if (wc >= 0xff00 && wc < 0xfff0) - summary = &cp932ext_uni2indx_pageff[(wc>>4)-0xff0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = cp932ext_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/cp936.h b/jni/parted/libiconv/lib/cp936.h deleted file mode 100755 index e99129e..0000000 --- a/jni/parted/libiconv/lib/cp936.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (C) 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP936 - */ - -/* - * The IANA has CP936 as an alias of GBK. But GBK is an official Chinese - * specification, whereas CP936 is de-facto maintained by Microsoft. And, - * of course, Microsoft modified CP936 since 1999. - * - * The differences from GBK are: - * - * 1. A single character: - * - * code CP936.TXT - * 0x80 0x20AC # EURO SIGN - * - * Some variants of CP936 (in JDK, Windows-2000, ICU) also add: - * - * 2. Private area mappings: - * - * code Unicode - * 0x{A1..A2}{40..7E,80..A0} U+E4C6..U+E585 - * 0x{AA..AF,F8..FE}{A1..FE} U+E000..U+E4C5 - * - * We add them too because, although there are backward compatibility problems - * when a character from a private area is moved to an official Unicode code - * point, they are useful for some people in practice. - */ - -static int -cp936_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - /* Try GBK first. */ - { - int ret = ces_gbk_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - } - /* Then handle the additional mappings. */ - { - unsigned char c = *s; - if (c == 0x80) { - *pwc = 0x20ac; - return 1; - } - /* User-defined characters */ - if (c >= 0xa1 && c <= 0xa2) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xa1)) { - *pwc = 0xe4c6 + 96 * (c - 0xa1) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); - return 2; - } - } - } else if ((c >= 0xaa && c < 0xb0) || (c >= 0xf8 && c < 0xff)) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - *pwc = 0xe000 + 94 * (c - (c >= 0xf8 ? 0xf2 : 0xaa)) + (c2 - 0xa1); - return 2; - } - } - } - } - return RET_ILSEQ; -} - -static int -cp936_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - /* Try GBK first. */ - { - int ret = ces_gbk_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - } - /* Then handle the additional mappings. */ - if (wc >= 0xe000 && wc < 0xe586) { - /* User-defined characters */ - if (n < 2) - return RET_TOOFEW(0); - if (wc < 0xe4c6) { - unsigned int i = wc - 0xe000; - unsigned int c1 = i / 94; - unsigned int c2 = i % 94; - r[0] = c1 + (c1 < 6 ? 0xaa : 0xf2); - r[1] = c2 + 0xa1; - return 2; - } else { - unsigned int i = wc - 0xe4c6; - unsigned int c1 = i / 96; - unsigned int c2 = i % 96; - r[0] = c1 + 0xa1; - r[1] = c2 + (c2 < 0x3f ? 0x40 : 0x41); - return 2; - } - } else if (wc == 0x20ac) { - r[0] = 0x80; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp936ext.h b/jni/parted/libiconv/lib/cp936ext.h deleted file mode 100755 index 6e0eae0..0000000 --- a/jni/parted/libiconv/lib/cp936ext.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP936 extensions - */ - -static const unsigned short cp936ext_2uni_pagea6[181-159] = { - /* 0xa6 */ - 0xfe35, - 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, - 0xfe42, 0xfe43, 0xfe44, 0xfffd, 0xfffd, 0xfe3b, 0xfe3c, 0xfe37, - 0xfe38, 0xfe31, 0xfffd, 0xfe33, 0xfe34, -}; -static const unsigned short cp936ext_2uni_pagea8[128-122] = { - /* 0xa8 */ - 0x0251, 0xfffd, 0x0144, 0x0148, 0xfffd, 0x0261, -}; - -static int -cp936ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 == 0xa6) || (c1 == 0xa8)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) { - unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); - unsigned short wc = 0xfffd; - if (i < 7410) { - if (i >= 7189 && i < 7211) - wc = cp936ext_2uni_pagea6[i-7189]; - } else { - if (i >= 7532 && i < 7538) - wc = cp936ext_2uni_pagea8[i-7532]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short cp936ext_page01[16] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0xa8bd, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/ - 0xa8be, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ -}; -static const unsigned short cp936ext_page02[24] = { - 0x0000, 0xa8bb, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ - 0x0000, 0xa8c0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ -}; -static const unsigned short cp936ext_pagefe[24] = { - 0x0000, 0xa6f2, 0x0000, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, /*0x30-0x37*/ - 0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, /*0x38-0x3f*/ - 0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x0000, 0x0000, 0x0000, /*0x40-0x47*/ -}; - -static int -cp936ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - unsigned short c = 0; - if (wc >= 0x0140 && wc < 0x0150) - c = cp936ext_page01[wc-0x0140]; - else if (wc >= 0x0250 && wc < 0x0268) - c = cp936ext_page02[wc-0x0250]; - else if (wc >= 0xfe30 && wc < 0xfe48) - c = cp936ext_pagefe[wc-0xfe30]; - if (c != 0) { - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/cp943.h b/jni/parted/libiconv/lib/cp943.h deleted file mode 100755 index 8fad5b1..0000000 --- a/jni/parted/libiconv/lib/cp943.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 1999-2001 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM CP943 - */ - -/* This is essentially CP932, with many mappings missing in the AIX conversion - table. We just pretend it were the same as CP932. */ - -#define cp943_mbtowc cp932_mbtowc -#define cp943_wctomb cp932_wctomb diff --git a/jni/parted/libiconv/lib/cp949.h b/jni/parted/libiconv/lib/cp949.h deleted file mode 100755 index 685ad74..0000000 --- a/jni/parted/libiconv/lib/cp949.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2007, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP949 is EUC-KR, extended with UHC (Unified Hangul Code). - * - * Some variants of CP949 (in JDK, Windows-2000, ICU) also add: - * - * 2. Private area mappings: - * - * code Unicode - * 0xC9{A1..FE} U+E000..U+E05D - * 0xFE{A1..FE} U+E05E..U+E0BB - * - * We add them too because, although there are backward compatibility problems - * when a character from a private area is moved to an official Unicode code - * point, they are useful for some people in practice. - */ - -#include "uhc_1.h" -#include "uhc_2.h" - -static int -cp949_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* UHC part 1 */ - if (c >= 0x81 && c <= 0xa0) - return uhc_1_mbtowc(conv,pwc,s,n); - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 < 0xa1) - /* UHC part 2 */ - return uhc_2_mbtowc(conv,pwc,s,n); - else if (c2 < 0xff && !(c == 0xa2 && c2 == 0xe8)) { - /* Code set 1 (KS C 5601-1992, now KS X 1001:1998) */ - unsigned char buf[2]; - int ret; - buf[0] = c-0x80; buf[1] = c2-0x80; - ret = ksc5601_mbtowc(conv,pwc,buf,2); - if (ret != RET_ILSEQ) - return ret; - /* User-defined characters */ - if (c == 0xc9) { - *pwc = 0xe000 + (c2 - 0xa1); - return 2; - } - if (c == 0xfe) { - *pwc = 0xe05e + (c2 - 0xa1); - return 2; - } - } - } - } - return RET_ILSEQ; -} - -static int -cp949_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (KS C 5601-1992, now KS X 1001:1998) */ - if (wc != 0x327e) { - ret = ksc5601_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]+0x80; - r[1] = buf[1]+0x80; - return 2; - } - } - - /* UHC */ - if (wc >= 0xac00 && wc < 0xd7a4) { - if (wc < 0xc8a5) - return uhc_1_wctomb(conv,r,wc,n); - else - return uhc_2_wctomb(conv,r,wc,n); - } - - /* User-defined characters */ - if (wc >= 0xe000 && wc < 0xe0bc) { - if (n < 2) - return RET_TOOSMALL; - if (wc < 0xe05e) { - r[0] = 0xc9; - r[1] = wc - 0xe000 + 0xa1; - } else { - r[0] = 0xfe; - r[1] = wc - 0xe05e + 0xa1; - } - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp950.h b/jni/parted/libiconv/lib/cp950.h deleted file mode 100755 index f7452a8..0000000 --- a/jni/parted/libiconv/lib/cp950.h +++ /dev/null @@ -1,283 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP950 - */ - -/* - * Microsoft CP950 is a slightly extended and slightly modified version of - * BIG5. The differences between the EASTASIA/OTHER/BIG5.TXT and - * VENDORS/MICSFT/WINDOWS/CP950.TXT tables found on ftp.unicode.org are - * as follows: - * - * 1. Some characters in the BIG5 range are defined differently: - * - * code BIG5.TXT CP950.TXT - * 0xA145 0x2022 # BULLET 0x2027 # HYPHENATION POINT - * 0xA14E 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA - * 0xFE51 # SMALL IDEOGRAPHIC COMMA - * 0xA15A --- 0x2574 # BOX DRAWINGS LIGHT LEFT - * 0xA1C2 0x203E # OVERLINE 0x00AF # MACRON - * 0xA1C3 --- 0xFFE3 # FULLWIDTH MACRON - * 0xA1C5 --- 0x02CD # MODIFIER LETTER LOW MACRON - * 0xA1E3 0x223C # TILDE OPERATOR 0xFF5E # FULLWIDTH TILDE - * 0xA1F2 0x2641 # EARTH 0x2295 # CIRCLED PLUS - * 0xA1F3 0x2609 # SUN 0x2299 # CIRCLED DOT OPERATOR - * 0xA1FE --- 0xFF0F # FULLWIDTH SOLIDUS - * 0xA240 --- 0xFF3C # FULLWIDTH REVERSE SOLIDUS - * 0xA241 0xFF0F # FULLWIDTH SOLIDUS 0x2215 # DIVISION SLASH - * 0xA242 0xFF3C # FULLWIDTH REVERSE SOLIDUS - * 0xFE68 # SMALL REVERSE SOLIDUS - * 0xA244 0x00A5 # YEN SIGN 0xFFE5 # FULLWIDTH YEN SIGN - * 0xA246 0x00A2 # CENT SIGN 0xFFE0 # FULLWIDTH CENT SIGN - * 0xA247 0x00A3 # POUND SIGN 0xFFE1 # FULLWIDTH POUND SIGN - * 0xA2CC --- 0x5341 - * 0xA2CE --- 0x5345 - * - * 2. A small new row. See cp950ext.h. - * - * 3. CP950.TXT is lacking the range 0xC6A1..0xC7FC (Hiragana, Katakana, - * Cyrillic, circled digits, parenthesized digits). - * - * We implement this omission, because said range is marked "uncertain" - * in the unicode.org BIG5 table. - * - * The table found on Microsoft's website furthermore adds: - * - * 4. A single character: - * - * code CP950.TXT - * 0xA3E1 0x20AC # EURO SIGN - * - * Many variants of BIG5 or CP950 (in JDK, Solaris, OSF/1, Windows-2000, ICU, - * as well as our BIG5-2003 converter) also add: - * - * 5. Private area mappings: - * - * code Unicode - * 0x{81..8D}{40..7E,A1..FE} U+EEB8..U+F6B0 - * 0x{8E..A0}{40..7E,A1..FE} U+E311..U+EEB7 - * 0x{FA..FE}{40..7E,A1..FE} U+E000..U+E310 - * - * We add them too because, although there are backward compatibility problems - * when a character from a private area is moved to an official Unicode code - * point, they are useful for some people in practice. - */ - -static const unsigned short cp950_2uni_pagea1[314] = { - /* 0xa1 */ - 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a, - 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, - 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, - 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, - 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, - 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, - 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, - 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0xfe5b, - 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, - 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, - 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, - 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, - 0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, - 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, - 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, - 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, - 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, - 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, - 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, - 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f, - /* 0xa2 */ - 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, - 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, - 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, - 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, - 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, - 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, - 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, - 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x256e, - 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3, - 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, - 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, - 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, - 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, - 0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 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, 0xff41, - 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, - 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, - 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, -}; - -#include "cp950ext.h" - -static int -cp950_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (BIG5 extended) */ - if (c >= 0x81 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - if (c >= 0xa1) { - if (c < 0xa3) { - unsigned int i = 157 * (c - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - unsigned short wc = cp950_2uni_pagea1[i]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - if (!((c == 0xc6 && c2 >= 0xa1) || c == 0xc7)) { - int ret = big5_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - } - if (c == 0xa3 && c2 == 0xe1) { - *pwc = 0x20ac; - return 2; - } - if (c >= 0xfa) { - /* User-defined characters */ - *pwc = 0xe000 + 157 * (c - 0xfa) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - return 2; - } - } else { - /* 0x81 <= c < 0xa1. */ - /* User-defined characters */ - *pwc = (c >= 0x8e ? 0xdb18 : 0xeeb8) + 157 * (c - 0x81) - + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - return 2; - } - } - } - if (c == 0xf9) { - int ret = cp950ext_mbtowc(conv,pwc,s,2); - if (ret != RET_ILSEQ) - return ret; - } - } - return RET_ILSEQ; -} - -static int -cp950_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (BIG5 extended) */ - switch (wc >> 8) { - case 0x00: - if (wc == 0x00af) { buf[0] = 0xa1; buf[1] = 0xc2; ret = 2; break; } - if (wc == 0x00a2 || wc == 0x00a3 || wc == 0x00a4) - return RET_ILUNI; - break; - case 0x02: - if (wc == 0x02cd) { buf[0] = 0xa1; buf[1] = 0xc5; ret = 2; break; } - break; - case 0x20: - if (wc == 0x2027) { buf[0] = 0xa1; buf[1] = 0x45; ret = 2; break; } - if (wc == 0x20ac) { buf[0] = 0xa3; buf[1] = 0xe1; ret = 2; break; } - if (wc == 0x2022 || wc == 0x203e) - return RET_ILUNI; - break; - case 0x22: - if (wc == 0x2215) { buf[0] = 0xa2; buf[1] = 0x41; ret = 2; break; } - if (wc == 0x2295) { buf[0] = 0xa1; buf[1] = 0xf2; ret = 2; break; } - if (wc == 0x2299) { buf[0] = 0xa1; buf[1] = 0xf3; ret = 2; break; } - if (wc == 0x223c) - return RET_ILUNI; - break; - case 0x25: - if (wc == 0x2574) { buf[0] = 0xa1; buf[1] = 0x5a; ret = 2; break; } - break; - case 0x26: - if (wc == 0x2609 || wc == 0x2641) - return RET_ILUNI; - break; - case 0xe0: case 0xe1: case 0xe2: case 0xe3: case 0xe4: case 0xe5: - case 0xe6: case 0xe7: case 0xe8: case 0xe9: case 0xea: case 0xeb: - case 0xec: case 0xed: case 0xee: case 0xef: case 0xf0: case 0xf1: - case 0xf2: case 0xf3: case 0xf4: case 0xf5: case 0xf6: - { - /* User-defined characters */ - unsigned int i = wc - 0xe000; - if (i < 5809) { - unsigned int c1 = i / 157; - unsigned int c2 = i % 157; - buf[0] = c1 + (c1 < 5 ? 0xfa : c1 < 24 ? 0x89 : 0x69); - buf[1] = c2 + (c2 < 0x3f ? 0x40 : 0x62); - ret = 2; - break; - } - } - break; - case 0xfe: - if (wc == 0xfe51) { buf[0] = 0xa1; buf[1] = 0x4e; ret = 2; break; } - if (wc == 0xfe68) { buf[0] = 0xa2; buf[1] = 0x42; ret = 2; break; } - break; - case 0xff: - if (wc == 0xff0f) { buf[0] = 0xa1; buf[1] = 0xfe; ret = 2; break; } - if (wc == 0xff3c) { buf[0] = 0xa2; buf[1] = 0x40; ret = 2; break; } - if (wc == 0xff5e) { buf[0] = 0xa1; buf[1] = 0xe3; ret = 2; break; } - if (wc == 0xffe0) { buf[0] = 0xa2; buf[1] = 0x46; ret = 2; break; } - if (wc == 0xffe1) { buf[0] = 0xa2; buf[1] = 0x47; ret = 2; break; } - if (wc == 0xffe3) { buf[0] = 0xa1; buf[1] = 0xc3; ret = 2; break; } - if (wc == 0xffe5) { buf[0] = 0xa2; buf[1] = 0x44; ret = 2; break; } - if (wc == 0xff64) - return RET_ILUNI; - break; - } - if (ret == RET_ILUNI) - ret = big5_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (!((buf[0] == 0xc6 && buf[1] >= 0xa1) || buf[0] == 0xc7)) { - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - } - ret = cp950ext_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/cp950ext.h b/jni/parted/libiconv/lib/cp950ext.h deleted file mode 100755 index 142db6b..0000000 --- a/jni/parted/libiconv/lib/cp950ext.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * CP950 extensions - */ - -static const unsigned short cp950ext_2uni_pagef9[157-116] = { - /* 0xf9 */ - 0x7881, 0x92b9, 0x88cf, 0x58bb, - 0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, 0x2560, 0x256c, - 0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, 0x2555, 0x255e, - 0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, 0x2565, 0x2556, - 0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, 0x2551, 0x2550, - 0x256d, 0x256e, 0x2570, 0x256f, 0x2593, -}; - -static int -cp950ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if (c1 == 0xf9) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - unsigned int i = 157 * (c1 - 0xa1) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - unsigned short wc = 0xfffd; - { - if (i >= 13932 && i < 13973) - wc = cp950ext_2uni_pagef9[i-13932]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short cp950ext_2charset[41] = { - 0xf9f9, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, - 0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, - 0xf9e0, 0xf9eb, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, - 0xf9f6, 0xf9e4, 0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd, - 0xf9fc, 0xf9fe, 0xf9d9, 0xf9dc, 0xf9da, 0xf9d6, 0xf9db, 0xf9d8, - 0xf9d7, -}; - -static const Summary16 cp950ext_uni2indx_page25[10] = { - /* 0x2500 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0xffff }, { 16, 0xffff }, { 32, 0x0001 }, - { 33, 0x0000 }, { 33, 0x0008 }, -}; -static const Summary16 cp950ext_uni2indx_page58[12] = { - /* 0x5800 */ - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0800 }, -}; -static const Summary16 cp950ext_uni2indx_page5a[16] = { - /* 0x5a00 */ - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0400 }, -}; -static const Summary16 cp950ext_uni2indx_page60[6] = { - /* 0x6000 */ - { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, - { 36, 0x0000 }, { 36, 0x0004 }, -}; -static const Summary16 cp950ext_uni2indx_page78[9] = { - /* 0x7800 */ - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0002 }, -}; -static const Summary16 cp950ext_uni2indx_page7c[11] = { - /* 0x7c00 */ - { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, - { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, - { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0080 }, -}; -static const Summary16 cp950ext_uni2indx_page88[13] = { - /* 0x8800 */ - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, - { 39, 0x8000 }, -}; -static const Summary16 cp950ext_uni2indx_page92[12] = { - /* 0x9200 */ - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0200 }, -}; - -static int -cp950ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x2500 && wc < 0x25a0) - summary = &cp950ext_uni2indx_page25[(wc>>4)-0x250]; - else if (wc >= 0x5800 && wc < 0x58c0) - summary = &cp950ext_uni2indx_page58[(wc>>4)-0x580]; - else if (wc >= 0x5a00 && wc < 0x5b00) - summary = &cp950ext_uni2indx_page5a[(wc>>4)-0x5a0]; - else if (wc >= 0x6000 && wc < 0x6060) - summary = &cp950ext_uni2indx_page60[(wc>>4)-0x600]; - else if (wc >= 0x7800 && wc < 0x7890) - summary = &cp950ext_uni2indx_page78[(wc>>4)-0x780]; - else if (wc >= 0x7c00 && wc < 0x7cb0) - summary = &cp950ext_uni2indx_page7c[(wc>>4)-0x7c0]; - else if (wc >= 0x8800 && wc < 0x88d0) - summary = &cp950ext_uni2indx_page88[(wc>>4)-0x880]; - else if (wc >= 0x9200 && wc < 0x92c0) - summary = &cp950ext_uni2indx_page92[(wc>>4)-0x920]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = cp950ext_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/dec_hanyu.h b/jni/parted/libiconv/lib/dec_hanyu.h deleted file mode 100755 index 10dd108..0000000 --- a/jni/parted/libiconv/lib/dec_hanyu.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (C) 2001, 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * DEC-HANYU - */ - -static int -dec_hanyu_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (CNS 11643-1992 Plane 1), - Code set 2 (CNS 11643-1992 Plane 2), - Code set 3 (CNS 11643-1992 Plane 3) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c == 0xc2 && c2 == 0xcb) { - if (n < 4) - return RET_TOOFEW(0); - if (s[2] >= 0xa1 && s[2] < 0xff && s[3] >= 0xa1 && s[3] < 0xff) { - unsigned char buf[2]; - int ret; - buf[0] = s[2]-0x80; buf[1] = s[3]-0x80; - ret = cns11643_3_mbtowc(conv,pwc,buf,2); - if (ret != RET_ILSEQ) { - if (ret != 2) abort(); - return 4; - } - } - } else if (c2 >= 0xa1 && c2 < 0xff) { - if (c != 0xc2 || c2 < 0xc2) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2-0x80; - return cns11643_1_mbtowc(conv,pwc,buf,2); - } - } else if (c2 >= 0x21 && c2 < 0x7f) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2; - return cns11643_2_mbtowc(conv,pwc,buf,2); - } - } - } - return RET_ILSEQ; -} - -static int -dec_hanyu_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[3]; - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - ret = cns11643_wctomb(conv,buf,wc,3); - if (ret != RET_ILUNI) { - if (ret != 3) abort(); - - /* Code set 1 (CNS 11643-1992 Plane 1) */ - if (buf[0] == 1 && (buf[1] != 0x42 || buf[2] < 0x42)) { - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[1]+0x80; - r[1] = buf[2]+0x80; - return 2; - } - - /* Code set 2 (CNS 11643-1992 Plane 2) */ - if (buf[0] == 2) { - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[1]+0x80; - r[1] = buf[2]; - return 2; - } - - /* Code set 3 (CNS 11643-1992 Plane 3) */ - if (buf[0] == 3) { - if (n < 4) - return RET_TOOSMALL; - r[0] = 0xc2; - r[1] = 0xcb; - r[2] = buf[1]+0x80; - r[3] = buf[2]+0x80; - return 4; - } - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/dec_kanji.h b/jni/parted/libiconv/lib/dec_kanji.h deleted file mode 100755 index 522b798..0000000 --- a/jni/parted/libiconv/lib/dec_kanji.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * DEC-KANJI - */ - -static int -dec_kanji_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (JIS X 0208) */ - if (c >= 0xa1 && c < 0xf5) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2-0x80; - return jisx0208_mbtowc(conv,pwc,buf,2); - } - } - } - return RET_ILSEQ; -} - -static int -dec_kanji_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (JIS X 0208) */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]+0x80; - r[1] = buf[1]+0x80; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic037.h b/jni/parted/libiconv/lib/ebcdic037.h deleted file mode 100755 index 2de9805..0000000 --- a/jni/parted/libiconv/lib/ebcdic037.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-037 - */ - -static const unsigned short ebcdic037_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic037_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic037_2uni[c]; - return 1; -} - -static const unsigned char ebcdic037_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic037_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic037_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1025.h b/jni/parted/libiconv/lib/ebcdic1025.h deleted file mode 100755 index 28dcb2b..0000000 --- a/jni/parted/libiconv/lib/ebcdic1025.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1025 - */ - -static const unsigned short ebcdic1025_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, - 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, - 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, - 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 0x90 */ - 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xa0 */ - 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 0xb0 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, - /* 0xe0 */ - 0x005c, 0x00a7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, -}; - -static int -ebcdic1025_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1025_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1025_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1025_page04 ebcdic880_page04 -#else /* Unoptimized */ -static const unsigned char ebcdic1025_page04[96] = { - 0x00, 0x63, 0x59, 0x62, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ - 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ - 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ - 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ - 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ - 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ - 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ - 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ - 0x00, 0x44, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ -}; -#endif - -static int -ebcdic1025_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1025_page00[wc]; - else if (wc >= 0x0400 && wc < 0x0460) - c = ebcdic1025_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0x58; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1026.h b/jni/parted/libiconv/lib/ebcdic1026.h deleted file mode 100755 index b4f2dc0..0000000 --- a/jni/parted/libiconv/lib/ebcdic1026.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1026 - */ - -static const unsigned short ebcdic1026_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1026_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1026_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1026_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x8e, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x4a, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7b, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0x7f, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xc0, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xe0, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic1026_page01[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd0, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x5b, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x6a, /* 0x58-0x5f */ -}; - -static int -ebcdic1026_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1026_page00[wc]; - else if (wc >= 0x0118 && wc < 0x0160) - c = ebcdic1026_page01[wc-0x0118]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1047.h b/jni/parted/libiconv/lib/ebcdic1047.h deleted file mode 100755 index 1c9bc95..0000000 --- a/jni/parted/libiconv/lib/ebcdic1047.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1047 - */ - -static const unsigned short ebcdic1047_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00ac, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00dd, 0x00a8, 0x00af, 0x005d, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1047_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1047_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1047_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1047_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1047_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1097.h b/jni/parted/libiconv/lib/ebcdic1097.h deleted file mode 100755 index cb23176..0000000 --- a/jni/parted/libiconv/lib/ebcdic1097.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1097 - */ - -static const unsigned short ebcdic1097_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x060c, 0x064b, 0xfe81, 0xfe82, 0xf8fa, 0xfe8d, - 0xfe8e, 0xf8fb, 0x00a4, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0xfe80, 0xfe83, 0xfe84, 0xf8f9, 0xfe85, 0xfe8b, 0xfe8f, - 0xfe91, 0xfb56, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0xfb58, 0xfe95, 0xfe97, 0xfe99, 0xfe9b, 0xfe9d, - 0xfe9f, 0xfb7a, 0x061b, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0xfb7c, 0xfea1, 0xfea3, 0xfea5, 0xfea7, 0xfea9, 0xfeab, 0xfead, - 0xfeaf, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0xfb8a, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfeb1, 0xfeb3, 0xfeb5, 0xfeb7, - /* 0x90 */ - 0xfeb9, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0xfebb, 0xfebd, 0xfebf, 0xfec1, 0xfec3, 0xfec5, - /* 0xa0 */ - 0xfec7, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0xfec9, 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, - /* 0xb0 */ - 0xfecf, 0xfed0, 0xfed1, 0xfed3, 0xfed5, 0xfed7, 0xfb8e, 0xfedb, - 0xfb92, 0xfb94, 0x005b, 0x005d, 0xfedd, 0xfedf, 0xfee1, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0xfee3, 0xfee5, 0xfee7, 0xfeed, 0xfee9, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0xfeeb, 0xfeec, 0xfba4, 0xfbfc, 0xfbfd, 0xfbfe, - /* 0xe0 */ - 0x005c, 0x061f, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0640, 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x06f5, 0x06f6, 0x06f7, 0x06f8, 0x06f9, 0x009f, -}; - -static int -ebcdic1097_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1097_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1097_page00[216] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0x00, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x8a, 0x5f, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ -}; -static const unsigned char ebcdic1097_page06[72] = { - 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0xe1, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ -}; -static const unsigned char ebcdic1097_page06_1[16] = { - 0xeb, 0xec, 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, /* 0xf0-0xf7 */ - 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic1097_pagef8[8] = { - 0x00, 0x54, 0x46, 0x49, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic1097_pagefb[88] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, /* 0x50-0x57 */ - 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x69, 0x00, 0x70, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xb6, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xb8, 0x00, 0xb9, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; -static const unsigned char ebcdic1097_pagefb_2[8] = { - 0x00, 0x00, 0x00, 0x00, 0xdd, 0xde, 0xdf, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic1097_pagefe[112] = { - 0x51, 0x44, 0x45, 0x52, 0x53, 0x55, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x56, 0x00, 0x47, 0x48, 0x57, /* 0x88-0x8f */ - 0x00, 0x58, 0x00, 0x00, 0x00, 0x63, 0x00, 0x64, /* 0x90-0x97 */ - 0x00, 0x65, 0x00, 0x66, 0x00, 0x67, 0x00, 0x68, /* 0x98-0x9f */ - 0x00, 0x71, 0x00, 0x72, 0x00, 0x73, 0x00, 0x74, /* 0xa0-0xa7 */ - 0x00, 0x75, 0x00, 0x76, 0x00, 0x77, 0x00, 0x78, /* 0xa8-0xaf */ - 0x00, 0x8c, 0x00, 0x8d, 0x00, 0x8e, 0x00, 0x8f, /* 0xb0-0xb7 */ - 0x00, 0x90, 0x00, 0x9a, 0x00, 0x9b, 0x00, 0x9c, /* 0xb8-0xbf */ - 0x00, 0x9d, 0x00, 0x9e, 0x00, 0x9f, 0x00, 0xa0, /* 0xc0-0xc7 */ - 0x00, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, /* 0xc8-0xcf */ - 0xb1, 0xb2, 0x00, 0xb3, 0x00, 0xb4, 0x00, 0xb5, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0xb7, 0x00, 0xbc, 0x00, 0xbd, /* 0xd8-0xdf */ - 0x00, 0xbe, 0x00, 0xcb, 0x00, 0xcc, 0x00, 0xcd, /* 0xe0-0xe7 */ - 0x00, 0xcf, 0x00, 0xda, 0xdb, 0xce, 0x00, 0x00, /* 0xe8-0xef */ -}; - -static int -ebcdic1097_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00d8) - c = ebcdic1097_page00[wc]; - else if (wc >= 0x0608 && wc < 0x0650) - c = ebcdic1097_page06[wc-0x0608]; - else if (wc >= 0x06f0 && wc < 0x0700) - c = ebcdic1097_page06_1[wc-0x06f0]; - else if (wc >= 0xf8f8 && wc < 0xf900) - c = ebcdic1097_pagef8[wc-0xf8f8]; - else if (wc >= 0xfb50 && wc < 0xfba8) - c = ebcdic1097_pagefb[wc-0xfb50]; - else if (wc >= 0xfbf8 && wc < 0xfc00) - c = ebcdic1097_pagefb_2[wc-0xfbf8]; - else if (wc >= 0xfe80 && wc < 0xfef0) - c = ebcdic1097_pagefe[wc-0xfe80]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1112.h b/jni/parted/libiconv/lib/ebcdic1112.h deleted file mode 100755 index 7ee8e4a..0000000 --- a/jni/parted/libiconv/lib/ebcdic1112.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1112 - */ - -static const unsigned short ebcdic1112_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0161, 0x00e4, 0x0105, 0x012f, 0x016b, 0x00e5, - 0x0113, 0x017e, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x0119, 0x0117, 0x010d, 0x0173, 0x201e, 0x201c, - 0x0123, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x0160, 0x00c4, 0x0104, 0x012e, 0x016a, 0x00c5, - 0x0112, 0x017d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x0118, 0x0116, 0x010c, 0x0172, 0x012a, 0x013b, - 0x0122, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0101, 0x017c, 0x0144, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0156, 0x0157, 0x00e6, 0x0137, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x201d, 0x017a, 0x0100, 0x017b, 0x0143, 0x00ae, - /* 0xb0 */ - 0x005e, 0x00a3, 0x012b, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x0179, 0x0136, 0x013c, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x014d, 0x00f6, 0x0146, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x0107, 0x00fc, 0x0142, 0x015b, 0x2019, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x014c, 0x00d6, 0x0145, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x0106, 0x00dc, 0x0141, 0x015a, 0x009f, -}; - -static int -ebcdic1112_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1112_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1112_page00[384] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x4a, 0xb1, 0x9f, 0x00, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0x00, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x00, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x9e, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xee, 0x00, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x43, 0x47, 0x9c, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xce, 0x00, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xac, 0x8c, 0x00, 0x00, 0x64, 0x44, 0xfb, 0xdb, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x68, 0x48, 0x00, 0x00, 0x73, 0x53, /* 0x10-0x17 */ - 0x72, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x78, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x76, 0xb2, 0x00, 0x00, 0x65, 0x45, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x9d, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x77, 0xbe, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xfd, 0xdd, 0xae, 0x8e, 0xed, 0xcd, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0xeb, 0xcb, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x9b, /* 0x50-0x57 */ - 0x00, 0x00, 0xfe, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x75, 0x55, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xbc, 0xab, 0xad, 0x8d, 0x69, 0x49, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char ebcdic1112_page20[8] = { - 0x00, 0xdf, 0x00, 0x00, 0x57, 0xaa, 0x56, 0x00, /* 0x18-0x1f */ -}; - -static int -ebcdic1112_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0180) - c = ebcdic1112_page00[wc]; - else if (wc >= 0x2018 && wc < 0x2020) - c = ebcdic1112_page20[wc-0x2018]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1122.h b/jni/parted/libiconv/lib/ebcdic1122.h deleted file mode 100755 index 2b97ac3..0000000 --- a/jni/parted/libiconv/lib/ebcdic1122.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1122 - */ - -static const unsigned short ebcdic1122_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, - 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, - 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0161, 0x00fd, 0x017e, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, - /* 0xa0 */ - 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0160, 0x00dd, 0x017d, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1122_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1122_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1122_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x5a, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x00, 0xdf, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic1122_page01[32] = { - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x8e, 0x00, /* 0x78-0x7f */ -}; - -static int -ebcdic1122_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1122_page00[wc]; - else if (wc >= 0x0160 && wc < 0x0180) - c = ebcdic1122_page01[wc-0x0160]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1123.h b/jni/parted/libiconv/lib/ebcdic1123.h deleted file mode 100755 index bcd1952..0000000 --- a/jni/parted/libiconv/lib/ebcdic1123.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1123 - */ - -static const unsigned short ebcdic1123_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0452, 0x0491, 0x0451, 0x0454, 0x0455, 0x0456, - 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, - 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0490, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, - 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 0x90 */ - 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xa0 */ - 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 0xb0 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, - /* 0xe0 */ - 0x005c, 0x00a7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, -}; - -static int -ebcdic1123_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1123_2uni[c]; - return 1; -} - -#if DEDUPLICATE_TABLES -#define ebcdic1123_page00 ebcdic1025_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic1123_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#endif -static const unsigned char ebcdic1123_page04[152] = { - 0x00, 0x63, 0x59, 0x00, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ - 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ - 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ - 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ - 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ - 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ - 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ - 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ - 0x00, 0x44, 0x42, 0x00, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x62, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; - -static int -ebcdic1123_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1123_page00[wc]; - else if (wc >= 0x0400 && wc < 0x0498) - c = ebcdic1123_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0x58; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1130.h b/jni/parted/libiconv/lib/ebcdic1130.h deleted file mode 100755 index ad9c8b4..0000000 --- a/jni/parted/libiconv/lib/ebcdic1130.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1130 - */ - -static const unsigned short ebcdic1130_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x0103, 0x00e5, - 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x0303, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x0102, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x20ab, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0111, 0x0309, 0x0300, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x0152, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0110, 0x0323, 0x0301, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x0153, 0x0178, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x01b0, 0x00f3, 0x01a1, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x01af, 0x00d3, 0x01a0, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1130_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1130_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1130_page00[440] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0x00, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x00, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x00, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x00, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x00, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x00, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x9d, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xef, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, /* 0xa8-0xaf */ - 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ -}; -static const unsigned char ebcdic1130_page03[40] = { - 0x8e, 0xae, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; - -static int -ebcdic1130_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x01b8) - c = ebcdic1130_page00[wc]; - else if (wc >= 0x0300 && wc < 0x0328) - c = ebcdic1130_page03[wc-0x0300]; - else if (wc == 0x20ab) - c = 0x78; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1132.h b/jni/parted/libiconv/lib/ebcdic1132.h deleted file mode 100755 index 1a6e91c..0000000 --- a/jni/parted/libiconv/lib/ebcdic1132.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1132 - */ - -static const unsigned short ebcdic1132_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0e81, 0x0e82, 0x0e84, 0x0e87, 0x0e88, 0x0eaa, - 0x0e8a, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0xfffd, 0x0e8d, 0x0e94, 0x0e95, 0x0e96, 0x0e97, 0x0e99, - 0x0e9a, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x0e9b, 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, 0x0ea1, - 0x0ea2, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x20ad, 0xfffd, 0x0ea3, 0x0ea5, 0x0ea7, 0x0eab, 0x0ead, 0x0eae, - 0xfffd, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0xfffd, 0xfffd, 0x0eaf, 0x0eb0, 0x0eb2, 0x0eb3, - /* 0x90 */ - 0xfffd, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, 0x0eb8, 0x0eb9, - /* 0xa0 */ - 0xfffd, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0ebc, 0x0eb1, 0x0ebb, 0x0ebd, 0xfffd, 0xfffd, - /* 0xb0 */ - 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7, - 0x0ed8, 0x0ed9, 0xfffd, 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0xfffd, 0x0ec8, 0x0ec9, 0x0eca, 0x0ecb, 0x0ecc, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0ecd, 0x0ec6, 0xfffd, 0x0edc, 0x0edd, 0xfffd, - /* 0xe0 */ - 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, -}; - -static int -ebcdic1132_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic1132_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -#if DEDUPLICATE_TABLES -#define ebcdic1132_page00 ebcdic838_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic1132_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x49, 0xe0, 0x59, 0x69, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#endif -static const unsigned char ebcdic1132_page0e[96] = { - 0x00, 0x42, 0x43, 0x00, 0x44, 0x00, 0x00, 0x45, /* 0x80-0x87 */ - 0x46, 0x00, 0x48, 0x00, 0x00, 0x52, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x53, 0x54, 0x55, 0x56, /* 0x90-0x97 */ - 0x00, 0x57, 0x58, 0x62, 0x63, 0x64, 0x65, 0x66, /* 0x98-0x9f */ - 0x00, 0x67, 0x68, 0x72, 0x00, 0x73, 0x00, 0x74, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x47, 0x75, 0x00, 0x76, 0x77, 0x8c, /* 0xa8-0xaf */ - 0x8d, 0xab, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, /* 0xb0-0xb7 */ - 0x9e, 0x9f, 0x00, 0xac, 0xaa, 0xad, 0x00, 0x00, /* 0xb8-0xbf */ - 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x00, 0xdb, 0x00, /* 0xc0-0xc7 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0x00, 0x00, /* 0xc8-0xcf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xd0-0xd7 */ - 0xb8, 0xb9, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -ebcdic1132_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1132_page00[wc]; - else if (wc >= 0x0e80 && wc < 0x0ee0) - c = ebcdic1132_page0e[wc-0x0e80]; - else if (wc == 0x20ad) - c = 0x70; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1137.h b/jni/parted/libiconv/lib/ebcdic1137.h deleted file mode 100755 index 19b28a7..0000000 --- a/jni/parted/libiconv/lib/ebcdic1137.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1137 - */ - -static const unsigned short ebcdic1137_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0901, 0x0902, 0x0903, 0x0905, 0x0906, 0x0907, - 0x0908, 0x0909, 0x090a, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x090b, 0x090c, 0x090d, 0x090e, 0x090f, 0x0910, 0x0911, - 0x0912, 0x0913, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0914, 0x0915, 0x0916, 0x0917, 0x0918, 0x0919, - 0x091a, 0x091b, 0x091c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x091d, 0x091e, 0x091f, 0x0920, 0x0921, 0x0922, 0x0923, 0x0924, - 0x0925, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0926, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0927, 0x0928, 0x092a, 0x092b, 0x092c, 0x092d, - /* 0x90 */ - 0x092e, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x092f, 0x0930, 0x0932, 0x0933, 0x0935, 0x0936, - /* 0xa0 */ - 0x200c, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0937, 0x0938, 0x0939, 0x005b, 0x093c, 0x093d, - /* 0xb0 */ - 0x093e, 0x093f, 0x0940, 0x0941, 0x0942, 0x0943, 0x0944, 0x0945, - 0x0946, 0x0947, 0x0948, 0x0949, 0x094a, 0x005d, 0x094b, 0x094c, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x094d, 0x0950, 0x0951, 0x0952, 0xfffd, 0xfffd, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0960, 0x0961, 0x0962, 0x0963, 0x0964, 0x0965, - /* 0xe0 */ - 0x005c, 0x200d, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0966, 0x0967, 0x0968, 0x0969, 0x096a, 0x096b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x096c, 0x096d, 0x096e, 0x096f, 0x0970, 0x009f, -}; - -static int -ebcdic1137_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic1137_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic1137_page00[168] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; -static const unsigned char ebcdic1137_page09[120] = { - 0x00, 0x42, 0x43, 0x44, 0x00, 0x45, 0x46, 0x47, /* 0x00-0x07 */ - 0x48, 0x49, 0x4a, 0x51, 0x52, 0x53, 0x54, 0x55, /* 0x08-0x0f */ - 0x56, 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0x10-0x17 */ - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x70, 0x71, 0x72, /* 0x18-0x1f */ - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x80, 0x8a, /* 0x20-0x27 */ - 0x8b, 0x00, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x9a, /* 0x28-0x2f */ - 0x9b, 0x00, 0x9c, 0x9d, 0x00, 0x9e, 0x9f, 0xaa, /* 0x30-0x37 */ - 0xab, 0xac, 0x00, 0x00, 0xae, 0xaf, 0xb0, 0xb1, /* 0x38-0x3f */ - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* 0x40-0x47 */ - 0xba, 0xbb, 0xbc, 0xbe, 0xbf, 0xca, 0x00, 0x00, /* 0x48-0x4f */ - 0xcb, 0xcc, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, /* 0x60-0x67 */ - 0xec, 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0xfd, /* 0x68-0x6f */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ -}; -static const unsigned char ebcdic1137_page20[8] = { - 0x00, 0x00, 0x00, 0x00, 0xa0, 0xe1, 0x00, 0x00, /* 0x08-0x0f */ -}; - -static int -ebcdic1137_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a8) - c = ebcdic1137_page00[wc]; - else if (wc >= 0x0900 && wc < 0x0978) - c = ebcdic1137_page09[wc-0x0900]; - else if (wc >= 0x2008 && wc < 0x2010) - c = ebcdic1137_page20[wc-0x2008]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1140.h b/jni/parted/libiconv/lib/ebcdic1140.h deleted file mode 100755 index f10c1cf..0000000 --- a/jni/parted/libiconv/lib/ebcdic1140.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1140 - */ - -static const unsigned short ebcdic1140_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1140_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1140_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1140_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0x4a, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1140_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1140_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1141.h b/jni/parted/libiconv/lib/ebcdic1141.h deleted file mode 100755 index 94a1bba..0000000 --- a/jni/parted/libiconv/lib/ebcdic1141.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1141 - */ - -static const unsigned short ebcdic1141_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1141_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1141_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1141_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x63, 0xec, 0xfc, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0xdc, 0x59, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0xcc, 0x7c, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x4a, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xe0, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0x5a, 0xad, 0xae, 0xa1, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0xc0, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xd0, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1141_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1141_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1142.h b/jni/parted/libiconv/lib/ebcdic1142.h deleted file mode 100755 index 4676d66..0000000 --- a/jni/parted/libiconv/lib/ebcdic1142.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1142 - */ - -static const unsigned short ebcdic1142_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, - 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, - 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, - /* 0xa0 */ - 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1142_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1142_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1142_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x4a, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x80, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x9e, 0xe0, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x9c, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x70, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x5b, 0x7b, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x7c, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0xd0, 0xc0, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x6a, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1142_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1142_page00[wc]; - else if (wc == 0x20ac) - c = 0x5a; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1143.h b/jni/parted/libiconv/lib/ebcdic1143.h deleted file mode 100755 index e602466..0000000 --- a/jni/parted/libiconv/lib/ebcdic1143.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1143 - */ - -static const unsigned short ebcdic1143_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, - 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, - 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, - /* 0xa0 */ - 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1143_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1143_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1143_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1143_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1143_page00[wc]; - else if (wc == 0x20ac) - c = 0x5a; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1144.h b/jni/parted/libiconv/lib/ebcdic1144.h deleted file mode 100755 index 5d63eb8..0000000 --- a/jni/parted/libiconv/lib/ebcdic1144.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1144 - */ - -static const unsigned short ebcdic1144_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, - 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, - 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1144_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1144_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1144_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0x51, 0x5f, 0x6d, /* 0x58-0x5f */ - 0xdd, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x44, 0xbb, 0x54, 0x58, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0x7b, 0x00, 0xb2, 0xcd, 0x7c, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0xc0, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ - 0xd0, 0x5a, 0x52, 0x53, 0xa1, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0x6a, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0x79, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1144_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1144_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1145.h b/jni/parted/libiconv/lib/ebcdic1145.h deleted file mode 100755 index 23788d5..0000000 --- a/jni/parted/libiconv/lib/ebcdic1145.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1145 - */ - -static const unsigned short ebcdic1145_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1145_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1145_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1145_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0xbb, 0x7f, 0x69, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0xba, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbd, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x49, 0xb5, /* 0xa0-0xa7 */ - 0xa1, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x7b, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x6a, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1145_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1145_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1146.h b/jni/parted/libiconv/lib/ebcdic1146.h deleted file mode 100755 index 46a60b5..0000000 --- a/jni/parted/libiconv/lib/ebcdic1146.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1146 - */ - -static const unsigned short ebcdic1146_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1146_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1146_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1146_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x4a, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xb1, 0xe0, 0xbb, 0xba, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0x5b, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xa1, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1146_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1146_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1147.h b/jni/parted/libiconv/lib/ebcdic1147.h deleted file mode 100755 index 34e3645..0000000 --- a/jni/parted/libiconv/lib/ebcdic1147.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1147 - */ - -static const unsigned short ebcdic1147_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, - 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1147_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1147_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1147_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x44, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0xb5, 0x5f, 0x6d, /* 0x58-0x5f */ - 0xa0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x51, 0xbb, 0x54, 0xbd, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0x7b, 0x00, 0xb2, 0xdd, 0x5a, /* 0xa0-0xa7 */ - 0xa1, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0x79, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x7c, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ - 0xd0, 0xc0, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0x6a, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1147_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1147_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1148.h b/jni/parted/libiconv/lib/ebcdic1148.h deleted file mode 100755 index fc51e27..0000000 --- a/jni/parted/libiconv/lib/ebcdic1148.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1148 - */ - -static const unsigned short ebcdic1148_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1148_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1148_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1148_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1148_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1148_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1149.h b/jni/parted/libiconv/lib/ebcdic1149.h deleted file mode 100755 index 027844e..0000000 --- a/jni/parted/libiconv/lib/ebcdic1149.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1149 - */ - -static const unsigned short ebcdic1149_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, - /* 0xc0 */ - 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1149_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1149_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1149_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xac, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xae, 0xbe, 0x9e, 0xec, 0x6d, /* 0x58-0x5f */ - 0x8c, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x8e, 0xbb, 0x9c, 0xcc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xe0, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x5a, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x7c, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x5f, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x4a, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0xd0, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x79, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0xc0, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic1149_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1149_page00[wc]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1153.h b/jni/parted/libiconv/lib/ebcdic1153.h deleted file mode 100755 index 590e548..0000000 --- a/jni/parted/libiconv/lib/ebcdic1153.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1153 - */ - -static const unsigned short ebcdic1153_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, - 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, - 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, - 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, - 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x20ac, - /* 0xa0 */ - 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, - /* 0xb0 */ - 0x02d9, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, - 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, -}; - -static int -ebcdic1153_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1153_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1153_page00[384] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x90, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x68, /* 0xc0-0xc7 */ - 0x00, 0x71, 0x00, 0x73, 0x00, 0x75, 0x76, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xfe, 0x00, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ - 0x00, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0x48, /* 0xe0-0xe7 */ - 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x56, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xde, 0x00, 0xdc, 0x8d, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0x66, 0x46, 0xb1, 0xa0, 0x69, 0x49, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x67, 0x47, 0xfa, 0xea, /* 0x08-0x0f */ - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x72, 0x52, 0xda, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x78, 0x58, 0x00, 0x00, 0x77, 0x57, 0x00, /* 0x38-0x3f */ - 0x00, 0xba, 0x9a, 0xbb, 0x9b, 0x00, 0x00, 0xab, /* 0x40-0x47 */ - 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xef, 0xcf, 0x00, 0x00, 0xed, 0xcd, 0x00, 0x00, /* 0x50-0x57 */ - 0xae, 0x8e, 0xaa, 0x8a, 0x00, 0x00, 0xaf, 0x8f, /* 0x58-0x5f */ - 0xbc, 0x9c, 0xb3, 0x44, 0xfd, 0xdd, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, /* 0x68-0x6f */ - 0xfb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xb9, 0xb7, 0xb4, 0xb2, 0xb8, 0xb6, 0x00, /* 0x78-0x7f */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1153_page02 ebcdic870_page02 -#else /* Unoptimized */ -static const unsigned char ebcdic1153_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x80, 0xb0, 0x00, 0x9e, 0x00, 0x64, 0x00, 0x00, /* 0xd8-0xdf */ -}; -#endif - -static int -ebcdic1153_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0180) - c = ebcdic1153_page00[wc]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = ebcdic1153_page02[wc-0x02c0]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1154.h b/jni/parted/libiconv/lib/ebcdic1154.h deleted file mode 100755 index 52095a9..0000000 --- a/jni/parted/libiconv/lib/ebcdic1154.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1154 - */ - -static const unsigned short ebcdic1154_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, - 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, - 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, - 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 0x90 */ - 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xa0 */ - 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 0xb0 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, - /* 0xe0 */ - 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, -}; - -static int -ebcdic1154_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1154_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1154_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1154_page04 ebcdic880_page04 -#else /* Unoptimized */ -static const unsigned char ebcdic1154_page04[96] = { - 0x00, 0x63, 0x59, 0x62, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ - 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ - 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ - 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ - 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ - 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ - 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ - 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ - 0x00, 0x44, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ -}; -#endif - -static int -ebcdic1154_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1154_page00[wc]; - else if (wc >= 0x0400 && wc < 0x0460) - c = ebcdic1154_page04[wc-0x0400]; - else if (wc == 0x20ac) - c = 0xe1; - else if (wc == 0x2116) - c = 0x58; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1155.h b/jni/parted/libiconv/lib/ebcdic1155.h deleted file mode 100755 index 0638a31..0000000 --- a/jni/parted/libiconv/lib/ebcdic1155.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1155 - */ - -static const unsigned short ebcdic1155_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1155_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1155_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1155_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x8e, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x4a, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7b, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0x7f, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xc0, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xe0, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1155_page01 ebcdic1026_page01 -#else /* Unoptimized */ -static const unsigned char ebcdic1155_page01[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd0, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x5b, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x6a, /* 0x58-0x5f */ -}; -#endif - -static int -ebcdic1155_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1155_page00[wc]; - else if (wc >= 0x0118 && wc < 0x0160) - c = ebcdic1155_page01[wc-0x0118]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1156.h b/jni/parted/libiconv/lib/ebcdic1156.h deleted file mode 100755 index 20ca348..0000000 --- a/jni/parted/libiconv/lib/ebcdic1156.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1156 - */ - -static const unsigned short ebcdic1156_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0161, 0x00e4, 0x0105, 0x012f, 0x016b, 0x00e5, - 0x0113, 0x017e, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x0119, 0x0117, 0x010d, 0x0173, 0x201e, 0x201c, - 0x0123, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x0160, 0x00c4, 0x0104, 0x012e, 0x016a, 0x00c5, - 0x0112, 0x017d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x0118, 0x0116, 0x010c, 0x0172, 0x012a, 0x013b, - 0x0122, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0101, 0x017c, 0x0144, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0156, 0x0157, 0x00e6, 0x0137, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x201d, 0x017a, 0x0100, 0x017b, 0x0143, 0x00ae, - /* 0xb0 */ - 0x005e, 0x00a3, 0x012b, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x0179, 0x0136, 0x013c, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x014d, 0x00f6, 0x0146, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x0107, 0x00fc, 0x0142, 0x015b, 0x2019, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x014c, 0x00d6, 0x0145, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x0106, 0x00dc, 0x0141, 0x015a, 0x009f, -}; - -static int -ebcdic1156_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1156_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1156_page00[384] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x4a, 0xb1, 0x00, 0x00, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0x00, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x00, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x9e, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xee, 0x00, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x43, 0x47, 0x9c, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xce, 0x00, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xac, 0x8c, 0x00, 0x00, 0x64, 0x44, 0xfb, 0xdb, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x68, 0x48, 0x00, 0x00, 0x73, 0x53, /* 0x10-0x17 */ - 0x72, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x78, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x76, 0xb2, 0x00, 0x00, 0x65, 0x45, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x9d, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x77, 0xbe, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xfd, 0xdd, 0xae, 0x8e, 0xed, 0xcd, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0xeb, 0xcb, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x9b, /* 0x50-0x57 */ - 0x00, 0x00, 0xfe, 0xde, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x62, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x75, 0x55, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xbc, 0xab, 0xad, 0x8d, 0x69, 0x49, 0x00, /* 0x78-0x7f */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1156_page20 ebcdic1112_page20 -#else /* Unoptimized */ -static const unsigned char ebcdic1156_page20[8] = { - 0x00, 0xdf, 0x00, 0x00, 0x57, 0xaa, 0x56, 0x00, /* 0x18-0x1f */ -}; -#endif - -static int -ebcdic1156_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0180) - c = ebcdic1156_page00[wc]; - else if (wc >= 0x2018 && wc < 0x2020) - c = ebcdic1156_page20[wc-0x2018]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1157.h b/jni/parted/libiconv/lib/ebcdic1157.h deleted file mode 100755 index 3a79ecf..0000000 --- a/jni/parted/libiconv/lib/ebcdic1157.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1157 - */ - -static const unsigned short ebcdic1157_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, - 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x20ac, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, - 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0161, 0x00fd, 0x017e, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, - /* 0xa0 */ - 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0160, 0x00dd, 0x017d, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1157_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1157_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1157_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x00, 0xdf, /* 0xf8-0xff */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1157_page01 ebcdic1122_page01 -#else /* Unoptimized */ -static const unsigned char ebcdic1157_page01[32] = { - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x8e, 0x00, /* 0x78-0x7f */ -}; -#endif - -static int -ebcdic1157_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic1157_page00[wc]; - else if (wc >= 0x0160 && wc < 0x0180) - c = ebcdic1157_page01[wc-0x0160]; - else if (wc == 0x20ac) - c = 0x5a; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1158.h b/jni/parted/libiconv/lib/ebcdic1158.h deleted file mode 100755 index 0d82b2a..0000000 --- a/jni/parted/libiconv/lib/ebcdic1158.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1158 - */ - -static const unsigned short ebcdic1158_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0452, 0x0491, 0x0451, 0x0454, 0x0455, 0x0456, - 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, - 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0490, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, - 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 0x90 */ - 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xa0 */ - 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 0xb0 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, - /* 0xe0 */ - 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, -}; - -static int -ebcdic1158_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1158_2uni[c]; - return 1; -} - -#if DEDUPLICATE_TABLES -#define ebcdic1158_page00 ebcdic1154_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic1158_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#endif -#if DEDUPLICATE_TABLES -#define ebcdic1158_page04 ebcdic1123_page04 -#else /* Unoptimized */ -static const unsigned char ebcdic1158_page04[152] = { - 0x00, 0x63, 0x59, 0x00, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ - 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ - 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ - 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ - 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ - 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ - 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ - 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ - 0x00, 0x44, 0x42, 0x00, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x62, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -#endif - -static int -ebcdic1158_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1158_page00[wc]; - else if (wc >= 0x0400 && wc < 0x0498) - c = ebcdic1158_page04[wc-0x0400]; - else if (wc == 0x20ac) - c = 0xe1; - else if (wc == 0x2116) - c = 0x58; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1160.h b/jni/parted/libiconv/lib/ebcdic1160.h deleted file mode 100755 index 480bd8c..0000000 --- a/jni/parted/libiconv/lib/ebcdic1160.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1160 - */ - -static const unsigned short ebcdic1160_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, - 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, - 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, - 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, - 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, - /* 0x90 */ - 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, - /* 0xa0 */ - 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, - /* 0xb0 */ - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, - /* 0xe0 */ - 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x20ac, 0x009f, -}; - -static int -ebcdic1160_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1160_2uni[c]; - return 1; -} - -#if DEDUPLICATE_TABLES -#define ebcdic1160_page00 ebcdic838_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic1160_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x49, 0xe0, 0x59, 0x69, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#endif -#if DEDUPLICATE_TABLES -#define ebcdic1160_page0e ebcdic838_page0e -#else /* Unoptimized */ -static const unsigned char ebcdic1160_page0e[96] = { - 0x00, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0x00-0x07 */ - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x62, /* 0x08-0x0f */ - 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x72, 0x73, /* 0x10-0x17 */ - 0x74, 0x75, 0x76, 0x77, 0x78, 0x8a, 0x8b, 0x8c, /* 0x18-0x1f */ - 0x8d, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 0x20-0x27 */ - 0x9f, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xba, /* 0x28-0x2f */ - 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xcb, 0xcc, 0xcd, /* 0x30-0x37 */ - 0xce, 0xcf, 0xda, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0x38-0x3f */ - 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, /* 0x40-0x47 */ - 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0x71, 0x80, /* 0x48-0x4f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x50-0x57 */ - 0xb8, 0xb9, 0x90, 0xa0, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ -}; -#endif - -static int -ebcdic1160_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1160_page00[wc]; - else if (wc >= 0x0e00 && wc < 0x0e60) - c = ebcdic1160_page0e[wc-0x0e00]; - else if (wc == 0x20ac) - c = 0xfe; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1164.h b/jni/parted/libiconv/lib/ebcdic1164.h deleted file mode 100755 index d7f38fb..0000000 --- a/jni/parted/libiconv/lib/ebcdic1164.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1164 - */ - -static const unsigned short ebcdic1164_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x0103, 0x00e5, - 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x0303, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x0102, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x20ab, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0111, 0x0309, 0x0300, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x0152, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0110, 0x0323, 0x0301, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x0153, 0x0178, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x01b0, 0x00f3, 0x01a1, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x01af, 0x00d3, 0x01a0, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic1164_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1164_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1164_page00[440] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0x00, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x00, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x00, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x00, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x00, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x00, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0x66, 0x46, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x9d, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xef, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, /* 0xa8-0xaf */ - 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1164_page03 ebcdic1130_page03 -#else /* Unoptimized */ -static const unsigned char ebcdic1164_page03[40] = { - 0x8e, 0xae, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -#endif -static const unsigned char ebcdic1164_page20[8] = { - 0x00, 0x00, 0x00, 0x78, 0x9f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; - -static int -ebcdic1164_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x01b8) - c = ebcdic1164_page00[wc]; - else if (wc >= 0x0300 && wc < 0x0328) - c = ebcdic1164_page03[wc-0x0300]; - else if (wc >= 0x20a8 && wc < 0x20b0) - c = ebcdic1164_page20[wc-0x20a8]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1165.h b/jni/parted/libiconv/lib/ebcdic1165.h deleted file mode 100755 index 79e99b7..0000000 --- a/jni/parted/libiconv/lib/ebcdic1165.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1165 - */ - -static const unsigned short ebcdic1165_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, - 0x00e7, 0x0107, 0x00dd, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, - 0x013a, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, - 0x00c7, 0x0106, 0x00a8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, - 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x20ac, - /* 0xa0 */ - 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x005b, 0x0158, 0x015e, - /* 0xb0 */ - 0x02d9, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, - 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x005d, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, -}; - -static int -ebcdic1165_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1165_2uni[c]; - return 1; -} - -static const unsigned char ebcdic1165_page00[384] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ - 0x6a, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x90, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x68, /* 0xc0-0xc7 */ - 0x00, 0x71, 0x00, 0x73, 0x00, 0x75, 0x76, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xfe, 0x00, 0xfc, 0x4a, 0x00, 0x59, /* 0xd8-0xdf */ - 0x00, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0x48, /* 0xe0-0xe7 */ - 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x56, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xde, 0x00, 0xdc, 0x8d, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0x66, 0x46, 0xb1, 0xa0, 0x69, 0x49, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x67, 0x47, 0xfa, 0xea, /* 0x08-0x0f */ - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x72, 0x52, 0xda, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x78, 0x58, 0x00, 0x00, 0x77, 0x57, 0x00, /* 0x38-0x3f */ - 0x00, 0xba, 0x9a, 0xbb, 0x9b, 0x00, 0x00, 0xab, /* 0x40-0x47 */ - 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xef, 0xcf, 0x00, 0x00, 0xed, 0xcd, 0x00, 0x00, /* 0x50-0x57 */ - 0xae, 0x8e, 0xaa, 0x8a, 0x00, 0x00, 0xaf, 0x8f, /* 0x58-0x5f */ - 0xbc, 0x9c, 0xb3, 0x44, 0xfd, 0xdd, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, /* 0x68-0x6f */ - 0xfb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xb9, 0xb7, 0xb4, 0xb2, 0xb8, 0xb6, 0x00, /* 0x78-0x7f */ -}; -#if DEDUPLICATE_TABLES -#define ebcdic1165_page02 ebcdic870_page02 -#else /* Unoptimized */ -static const unsigned char ebcdic1165_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x80, 0xb0, 0x00, 0x9e, 0x00, 0x64, 0x00, 0x00, /* 0xd8-0xdf */ -}; -#endif - -static int -ebcdic1165_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0180) - c = ebcdic1165_page00[wc]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = ebcdic1165_page02[wc-0x02c0]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic1166.h b/jni/parted/libiconv/lib/ebcdic1166.h deleted file mode 100755 index e7aa22d..0000000 --- a/jni/parted/libiconv/lib/ebcdic1166.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-1166 - */ - -static const unsigned short ebcdic1166_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x04d9, 0x0493, 0x0451, 0x0454, 0x0455, 0x0456, - 0x049b, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x04a3, 0x04e9, 0x04b1, 0x04af, 0x045e, 0x04bb, 0x042a, - 0x2116, 0x04d8, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0492, 0x0401, 0x0404, 0x0405, 0x0406, 0x049a, - 0x0408, 0x04a2, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x04e8, 0x04b0, 0x04ae, 0x00ad, 0x040e, 0x04ba, 0x044e, 0x0430, - 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 0x90 */ - 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xa0 */ - 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 0xb0 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, - /* 0xe0 */ - 0x005c, 0x20ac, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, -}; - -static int -ebcdic1166_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic1166_2uni[c]; - return 1; -} - -#if DEDUPLICATE_TABLES -#define ebcdic1166_page00 ebcdic1154_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic1166_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ -}; -#endif -static const unsigned char ebcdic1166_page04[240] = { - 0x00, 0x63, 0x00, 0x00, 0x64, 0x65, 0x66, 0x00, /* 0x00-0x07 */ - 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, /* 0x08-0x0f */ - 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ - 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ - 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ - 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ - 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ - 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ - 0x00, 0x44, 0x00, 0x00, 0x45, 0x46, 0x47, 0x00, /* 0x50-0x57 */ - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x62, 0x43, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x67, 0x48, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x69, 0x51, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x54, /* 0xa8-0xaf */ - 0x71, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x75, 0x56, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x59, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x70, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; - -static int -ebcdic1166_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic1166_page00[wc]; - else if (wc >= 0x0400 && wc < 0x04f0) - c = ebcdic1166_page04[wc-0x0400]; - else if (wc == 0x20ac) - c = 0xe1; - else if (wc == 0x2116) - c = 0x58; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic12712.h b/jni/parted/libiconv/lib/ebcdic12712.h deleted file mode 100755 index 42d9d33..0000000 --- a/jni/parted/libiconv/lib/ebcdic12712.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-12712 - */ - -static const unsigned short ebcdic12712_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, - 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0xfffd, 0x05ea, 0xfffd, 0xfffd, 0x00a0, 0xfffd, 0xfffd, 0xfffd, - 0x2017, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0xfffd, 0xfffd, 0x20ac, 0x00b8, 0x20aa, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ae, - /* 0xb0 */ - 0x005e, 0x00a3, 0x00a5, 0x2022, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x203e, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x202d, 0x202e, 0x202c, 0xfffd, 0xfffd, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x202a, 0x202b, 0x200e, 0x200f, 0x009f, -}; - -static int -ebcdic12712_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic12712_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -#if DEDUPLICATE_TABLES -#define ebcdic12712_page00 ebcdic424_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic12712_page00[248] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x74, 0x00, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0x00, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xf0-0xf7 */ -}; -#endif -#if DEDUPLICATE_TABLES -#define ebcdic12712_page05 ebcdic424_page05 -#else /* Unoptimized */ -static const unsigned char ebcdic12712_page05[32] = { - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0xd0-0xd7 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0xd8-0xdf */ - 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0xe0-0xe7 */ - 0x68, 0x69, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -#endif -static const unsigned char ebcdic12712_page20[56] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0xfb, 0xfc, 0xdd, 0xdb, 0xdc, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char ebcdic12712_page20_1[8] = { - 0x00, 0x00, 0x9e, 0x00, 0x9c, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; - -static int -ebcdic12712_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00f8) - c = ebcdic12712_page00[wc]; - else if (wc >= 0x05d0 && wc < 0x05f0) - c = ebcdic12712_page05[wc-0x05d0]; - else if (wc >= 0x2008 && wc < 0x2040) - c = ebcdic12712_page20[wc-0x2008]; - else if (wc >= 0x20a8 && wc < 0x20b0) - c = ebcdic12712_page20_1[wc-0x20a8]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic16804.h b/jni/parted/libiconv/lib/ebcdic16804.h deleted file mode 100755 index fd7af59..0000000 --- a/jni/parted/libiconv/lib/ebcdic16804.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-16804 - */ - -static const unsigned short ebcdic16804_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0651, 0xfe7d, 0x0640, 0x200b, 0x0621, 0x0622, - 0xfe82, 0x0623, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0xfe84, 0x0624, 0xfffd, 0xfffd, 0x0626, 0x0627, 0xfe8e, - 0x0628, 0xfe91, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x0629, 0x062a, 0xfe97, 0x062b, 0xfe9b, 0x062c, - 0xfe9f, 0x062d, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0xfea3, 0x062e, 0xfea7, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, - 0xfeb3, 0x060c, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0634, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0xfeb7, 0x0635, 0xfebb, 0x0636, 0xfebf, 0x0637, - /* 0x90 */ - 0x0638, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0639, 0xfeca, 0xfecb, 0xfecc, 0x063a, 0xfece, - /* 0xa0 */ - 0xfecf, 0x00f7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0xfed0, 0x0641, 0xfed3, 0x0642, 0xfed7, 0x0643, - /* 0xb0 */ - 0xfedb, 0x0644, 0xfef5, 0xfef6, 0xfef7, 0xfef8, 0xfffd, 0xfffd, - 0xfefb, 0xfefc, 0xfedf, 0x0645, 0xfee3, 0x0646, 0xfee7, 0x0647, - /* 0xc0 */ - 0x061b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0xfeeb, 0xfffd, 0xfeec, 0xfffd, 0x0648, - /* 0xd0 */ - 0x061f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0649, 0xfef0, 0x064a, 0xfef2, 0xfef3, 0x0660, - /* 0xe0 */ - 0x00d7, 0x2007, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0661, 0x0662, 0xfffd, 0x0663, 0x0664, 0x0665, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x20ac, 0x0666, 0x0667, 0x0668, 0x0669, 0x009f, -}; - -static int -ebcdic16804_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic16804_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic16804_page00[248] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x6d, /* 0x58-0x5f */ - 0x00, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x00, 0x4f, 0x00, 0x00, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x5f, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, /* 0xf0-0xf7 */ -}; -static const unsigned char ebcdic16804_page06[104] = { - 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xd0, /* 0x18-0x1f */ - 0x00, 0x46, 0x47, 0x49, 0x52, 0x00, 0x55, 0x56, /* 0x20-0x27 */ - 0x58, 0x62, 0x63, 0x65, 0x67, 0x69, 0x71, 0x73, /* 0x28-0x2f */ - 0x74, 0x75, 0x76, 0x77, 0x80, 0x8b, 0x8d, 0x8f, /* 0x30-0x37 */ - 0x90, 0x9a, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x44, 0xab, 0xad, 0xaf, 0xb1, 0xbb, 0xbd, 0xbf, /* 0x40-0x47 */ - 0xcf, 0xda, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xdf, 0xea, 0xeb, 0xed, 0xee, 0xef, 0xfb, 0xfc, /* 0x60-0x67 */ - 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ -}; -static const unsigned char ebcdic16804_page20[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ -}; -static const unsigned char ebcdic16804_pagefe[136] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x48, 0x00, 0x51, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, /* 0x88-0x8f */ - 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x68, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x72, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x8a, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x8e, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x9b, 0x9c, 0x9d, 0x00, 0x9f, 0xa0, /* 0xc8-0xcf */ - 0xaa, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xae, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0xba, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0xbe, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0xcb, 0xcd, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0xdb, 0x00, 0xdd, 0xde, 0x00, 0xb2, 0xb3, 0xb4, /* 0xf0-0xf7 */ - 0xb5, 0x00, 0x00, 0xb8, 0xb9, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; - -static int -ebcdic16804_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00f8) - c = ebcdic16804_page00[wc]; - else if (wc >= 0x0608 && wc < 0x0670) - c = ebcdic16804_page06[wc-0x0608]; - else if (wc >= 0x2000 && wc < 0x2010) - c = ebcdic16804_page20[wc-0x2000]; - else if (wc == 0x20ac) - c = 0xfa; - else if (wc >= 0xfe78 && wc < 0xff00) - c = ebcdic16804_pagefe[wc-0xfe78]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic273.h b/jni/parted/libiconv/lib/ebcdic273.h deleted file mode 100755 index 6dc48f4..0000000 --- a/jni/parted/libiconv/lib/ebcdic273.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-273 - */ - -static const unsigned short ebcdic273_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00c4, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x007e, 0x00dc, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x005b, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x00a7, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00df, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00fc, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007d, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00d6, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005c, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x005d, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic273_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic273_2uni[c]; - return 1; -} - -static const unsigned char ebcdic273_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x63, 0xec, 0xfc, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0xdc, 0x59, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xcc, 0x7c, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x4a, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xe0, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0x5a, 0xad, 0xae, 0xa1, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0xc0, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xd0, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic273_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic273_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic277.h b/jni/parted/libiconv/lib/ebcdic277.h deleted file mode 100755 index c21cfe2..0000000 --- a/jni/parted/libiconv/lib/ebcdic277.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-277 - */ - -static const unsigned short ebcdic277_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x007d, - 0x00e7, 0x00f1, 0x0023, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x0024, - 0x00c7, 0x00d1, 0x00f8, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00a6, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x00c6, 0x00d8, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0040, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007b, 0x00b8, 0x005b, 0x005d, - /* 0xa0 */ - 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic277_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic277_2uni[c]; - return 1; -} - -static const unsigned char ebcdic277_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x4a, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x80, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x9e, 0xe0, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x9c, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x5a, 0xb2, 0x70, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x5b, 0x7b, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x7c, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0xd0, 0xc0, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x6a, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic277_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic277_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic278.h b/jni/parted/libiconv/lib/ebcdic278.h deleted file mode 100755 index 37b06d4..0000000 --- a/jni/parted/libiconv/lib/ebcdic278.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-278 - */ - -static const unsigned short ebcdic278_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x007b, 0x00e0, 0x00e1, 0x00e3, 0x007d, - 0x00e7, 0x00f1, 0x00a7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0060, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00a4, 0x00c5, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x0023, 0x00c0, 0x00c1, 0x00c3, 0x0024, - 0x00c7, 0x00d1, 0x00f6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x005c, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00e9, 0x003a, 0x00c4, 0x00d6, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x005d, - /* 0xa0 */ - 0x00b5, 0x00fc, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x005b, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e4, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00a6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e5, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x007e, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00c9, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0040, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic278_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic278_2uni[c]; - return 1; -} - -static const unsigned char ebcdic278_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x63, 0x67, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xec, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xb5, 0x71, 0x9f, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x51, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x43, 0xbb, 0x47, 0xdc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x5a, 0xb2, 0xcc, 0x4a, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x7b, 0x5b, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0xe0, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7c, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0xc0, 0xd0, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x79, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0x6a, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xa1, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic278_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic278_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic280.h b/jni/parted/libiconv/lib/ebcdic280.h deleted file mode 100755 index 2102f15..0000000 --- a/jni/parted/libiconv/lib/ebcdic280.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-280 - */ - -static const unsigned short ebcdic280_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x007b, 0x00e1, 0x00e3, 0x00e5, - 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x005d, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, - 0x007e, 0x00df, 0x00e9, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00f2, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00f9, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00ec, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x0040, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e0, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00a6, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x0060, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic280_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic280_2uni[c]; - return 1; -} - -static const unsigned char ebcdic280_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xb5, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0x51, 0x5f, 0x6d, /* 0x58-0x5f */ - 0xdd, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x44, 0xbb, 0x54, 0x58, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0x7b, 0x9f, 0xb2, 0xcd, 0x7c, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0xc0, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ - 0xd0, 0x5a, 0x52, 0x53, 0xa1, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0x6a, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0x79, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic280_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic280_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic282.h b/jni/parted/libiconv/lib/ebcdic282.h deleted file mode 100755 index 3779bc1..0000000 --- a/jni/parted/libiconv/lib/ebcdic282.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-282 - */ - -static const unsigned short ebcdic282_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x007b, 0x00e5, - 0x007e, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x0023, 0x00c5, - 0x005c, 0x00d1, 0x00f5, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x00c3, 0x00d5, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00e7, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x007d, 0x00d7, - /* 0xc0 */ - 0x00e3, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00a6, - /* 0xd0 */ - 0x00b4, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00c7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x0040, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic282_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic282_2uni[c]; - return 1; -} - -static const unsigned char ebcdic282_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x66, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xef, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0x68, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x46, 0xbb, 0xbe, 0x48, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0xcf, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xd0, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x7b, 0x63, 0x67, 0x9e, 0xe0, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0x7c, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0xc0, 0x43, 0x47, 0x9c, 0xa1, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0x6a, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic282_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic282_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic284.h b/jni/parted/libiconv/lib/ebcdic284.h deleted file mode 100755 index 368a7de..0000000 --- a/jni/parted/libiconv/lib/ebcdic284.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-284 - */ - -static const unsigned short ebcdic284_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00a6, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x0023, 0x00f1, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x00d1, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005e, 0x0021, 0x00af, 0x007e, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic284_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic284_2uni[c]; - return 1; -} - -static const unsigned char ebcdic284_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0xbb, 0x7f, 0x69, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0xba, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbd, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x49, 0xb5, /* 0xa0-0xa7 */ - 0xa1, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x7b, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x6a, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic284_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic284_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic285.h b/jni/parted/libiconv/lib/ebcdic285.h deleted file mode 100755 index feb65a8..0000000 --- a/jni/parted/libiconv/lib/ebcdic285.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-285 - */ - -static const unsigned short ebcdic285_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x0024, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x00a3, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00af, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x005b, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005e, 0x005d, 0x007e, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic285_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic285_2uni[c]; - return 1; -} - -static const unsigned char ebcdic285_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x4a, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xb1, 0xe0, 0xbb, 0xba, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xbc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0x5b, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xa1, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic285_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic285_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic297.h b/jni/parted/libiconv/lib/ebcdic297.h deleted file mode 100755 index 391dff3..0000000 --- a/jni/parted/libiconv/lib/ebcdic297.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-297 - */ - -static const unsigned short ebcdic297_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0040, 0x00e1, 0x00e3, 0x00e5, - 0x005c, 0x00f1, 0x00b0, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x007b, 0x00ea, 0x00eb, 0x007d, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00a7, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00f9, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00b5, 0x003a, 0x00a3, 0x00e0, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x005b, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x0060, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x0023, 0x00a5, 0x00b7, 0x00a9, 0x005d, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x007e, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e9, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e8, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00a6, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00e7, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic297_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic297_2uni[c]; - return 1; -} - -static const unsigned char ebcdic297_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0xb1, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x44, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x90, 0x48, 0xb5, 0x5f, 0x6d, /* 0x58-0x5f */ - 0xa0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x51, 0xbb, 0x54, 0xbd, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0x7b, 0x9f, 0xb2, 0xdd, 0x5a, /* 0xa0-0xa7 */ - 0xa1, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x4a, 0x8f, 0xea, 0xfa, 0xbe, 0x79, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x7c, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xe0, /* 0xe0-0xe7 */ - 0xd0, 0xc0, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0x6a, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic297_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic297_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic423.h b/jni/parted/libiconv/lib/ebcdic423.h deleted file mode 100755 index 6dd6388..0000000 --- a/jni/parted/libiconv/lib/ebcdic423.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-423 - */ - -static const unsigned short ebcdic423_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0xfffd, 0xfffd, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0xfffd, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, - 0x038f, 0x0060, 0x003a, 0x00a3, 0x00a7, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00c4, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, - /* 0x90 */ - 0x00d6, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, - /* 0xa0 */ - 0x00dc, 0x00a8, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, - /* 0xb0 */ - 0xfffd, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - /* 0xc0 */ - 0x00b8, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x03c9, 0x00e2, 0x00e0, 0x00e4, 0x00ea, - /* 0xd0 */ - 0x00b4, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b1, 0x00e9, 0x00e8, 0x00eb, 0x00ee, 0x00ef, - /* 0xe0 */ - 0x00b0, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00bd, 0x00f6, 0x00f4, 0x00fb, 0x00f9, 0x00fc, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00ff, 0x00e7, 0x00c7, 0xfffd, 0xfffd, 0x009f, -}; - -static int -ebcdic423_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic423_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic423_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x00, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0x00, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x00, 0x6a, 0x00, 0x00, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x74, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x7c, /* 0xa0-0xa7 */ - 0xa1, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0xe0, 0xda, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0xc0, 0x00, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xfc, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0xcd, 0x00, 0xcc, 0x00, 0xce, 0x00, 0x00, 0xfb, /* 0xe0-0xe7 */ - 0xdc, 0xdb, 0xcf, 0xdd, 0x00, 0x00, 0xde, 0xdf, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0xeb, 0x00, /* 0xf0-0xf7 */ - 0x00, 0xee, 0x00, 0xed, 0xef, 0x00, 0x00, 0xfa, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic423_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, /* 0x80-0x87 */ - 0x72, 0x73, 0x75, 0x00, 0x76, 0x00, 0x77, 0x78, /* 0x88-0x8f */ - 0x00, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x90-0x97 */ - 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, /* 0x98-0x9f */ - 0x57, 0x58, 0x00, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0xa0-0xa7 */ - 0x66, 0x67, 0x00, 0x00, 0xb1, 0xb2, 0xb3, 0xb5, /* 0xa8-0xaf */ - 0x00, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, /* 0xb0-0xb7 */ - 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, /* 0xb8-0xbf */ - 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, /* 0xc0-0xc7 */ - 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x00, /* 0xc8-0xcf */ -}; - -static int -ebcdic423_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic423_page00[wc]; - else if (wc >= 0x0380 && wc < 0x03d0) - c = ebcdic423_page03[wc-0x0380]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic424.h b/jni/parted/libiconv/lib/ebcdic424.h deleted file mode 100755 index f426e89..0000000 --- a/jni/parted/libiconv/lib/ebcdic424.h +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-424 - */ - -static const unsigned short ebcdic424_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, - 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0xfffd, 0x05ea, 0xfffd, 0xfffd, 0x00a0, 0xfffd, 0xfffd, 0xfffd, - 0x2017, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0xfffd, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0xfffd, 0xfffd, 0xfffd, 0x00b8, 0xfffd, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x00ae, - /* 0xb0 */ - 0x005e, 0x00a3, 0x00a5, 0x2022, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x005b, 0x005d, 0x203e, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x009f, -}; - -static int -ebcdic424_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic424_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic424_page00[248] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x74, 0x00, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x00, 0x8a, 0x5f, 0xca, 0xaf, 0x00, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0x00, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x00, 0x8b, 0xb7, 0xb8, 0xb9, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, /* 0xf0-0xf7 */ -}; -static const unsigned char ebcdic424_page05[32] = { - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0xd0-0xd7 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0xd8-0xdf */ - 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0xe0-0xe7 */ - 0x68, 0x69, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char ebcdic424_page20[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x38-0x3f */ -}; - -static int -ebcdic424_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00f8) - c = ebcdic424_page00[wc]; - else if (wc >= 0x05d0 && wc < 0x05f0) - c = ebcdic424_page05[wc-0x05d0]; - else if (wc >= 0x2010 && wc < 0x2040) - c = ebcdic424_page20[wc-0x2010]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic425.h b/jni/parted/libiconv/lib/ebcdic425.h deleted file mode 100755 index d2f04b1..0000000 --- a/jni/parted/libiconv/lib/ebcdic425.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-425 - */ - -static const unsigned short ebcdic425_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x060c, 0x00e0, 0x061b, 0x0640, 0x061f, - 0x00e7, 0x0621, 0x0622, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x0623, 0x00ee, 0x00ef, - 0x0624, 0x0625, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x0626, 0x00c0, 0x0627, 0x0628, 0x0629, - 0x00c7, 0x062a, 0x062b, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x062c, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x062d, 0x00ce, 0x00cf, - 0x062e, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x062f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0630, 0x0631, 0x0632, 0x0633, - /* 0x90 */ - 0x0634, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0635, 0x0636, 0x00e6, 0x0637, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0638, 0x0639, 0x063a, 0x005b, 0x0641, 0x0642, - /* 0xb0 */ - 0x0643, 0x0644, 0x0645, 0x0646, 0x00a9, 0x00a7, 0x0647, 0x0152, - 0x0153, 0x0178, 0x0648, 0x0649, 0x064a, 0x005d, 0x064b, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x064c, 0x064d, 0x064e, 0x064f, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0650, 0x00fb, 0x00fc, 0x00f9, 0x0651, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0652, 0x00d4, 0x200c, 0x200d, 0x200e, 0x200f, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0xfffd, 0x00db, 0x00dc, 0x00d9, 0x00a4, 0x009f, -}; - -static int -ebcdic425_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic425_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic425_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ - 0x00, 0xb4, 0x00, 0x8a, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x64, 0x00, 0x62, 0x00, 0x00, 0x00, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x00, 0x00, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0xfd, 0x00, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x44, 0x00, 0x42, 0x00, 0x00, 0x00, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x00, 0x00, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0xe1, /* 0xf0-0xf7 */ - 0x00, 0xdd, 0x00, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic425_page01[48] = { - 0x00, 0x00, 0xb7, 0xb8, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char ebcdic425_page06[80] = { - 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x47, /* 0x18-0x1f */ - 0x00, 0x49, 0x4a, 0x55, 0x58, 0x59, 0x63, 0x65, /* 0x20-0x27 */ - 0x66, 0x67, 0x69, 0x6a, 0x70, 0x75, 0x78, 0x80, /* 0x28-0x2f */ - 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x9a, 0x9b, 0x9d, /* 0x30-0x37 */ - 0xaa, 0xab, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x46, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb6, /* 0x40-0x47 */ - 0xba, 0xbb, 0xbc, 0xbe, 0xcc, 0xcd, 0xce, 0xcf, /* 0x48-0x4f */ - 0xda, 0xde, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ -}; -static const unsigned char ebcdic425_page20[8] = { - 0x00, 0x00, 0x00, 0x00, 0xec, 0xed, 0xee, 0xef, /* 0x08-0x0f */ -}; - -static int -ebcdic425_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic425_page00[wc]; - else if (wc >= 0x0150 && wc < 0x0180) - c = ebcdic425_page01[wc-0x0150]; - else if (wc >= 0x0608 && wc < 0x0658) - c = ebcdic425_page06[wc-0x0608]; - else if (wc >= 0x2008 && wc < 0x2010) - c = ebcdic425_page20[wc-0x2008]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic4971.h b/jni/parted/libiconv/lib/ebcdic4971.h deleted file mode 100755 index 63e23d9..0000000 --- a/jni/parted/libiconv/lib/ebcdic4971.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-4971 - */ - -static const unsigned short ebcdic4971_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x03aa, 0x03ab, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00a8, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, - 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, - /* 0xa0 */ - 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, - /* 0xb0 */ - 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x03c9, 0x0390, 0x03b0, 0x2018, 0x2015, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b1, 0x00bd, 0xfffd, 0x0387, 0x2019, 0x00a6, - /* 0xe0 */ - 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00a7, 0xfffd, 0xfffd, 0x00ab, 0x00ac, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00a9, 0x20ac, 0xfffd, 0x00bb, 0x009f, -}; - -static int -ebcdic4971_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic4971_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -#if DEDUPLICATE_TABLES -#define ebcdic4971_page00 ebcdic875_page00 -#else /* Unoptimized */ -static const unsigned char ebcdic4971_page00[192] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x74, 0x00, 0x00, 0xb0, 0x00, 0x00, 0xdf, 0xeb, /* 0xa0-0xa7 */ - 0x70, 0xfb, 0x00, 0xee, 0xef, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x90, 0xda, 0xea, 0xfa, 0xa0, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xfe, 0x00, 0xdb, 0x00, 0x00, /* 0xb8-0xbf */ -}; -#endif -#if DEDUPLICATE_TABLES -#define ebcdic4971_page03 ebcdic875_page03 -#else /* Unoptimized */ -static const unsigned char ebcdic4971_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0xdd, /* 0x80-0x87 */ - 0x72, 0x73, 0x75, 0x00, 0x76, 0x00, 0x77, 0x78, /* 0x88-0x8f */ - 0xcc, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x90-0x97 */ - 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, /* 0x98-0x9f */ - 0x57, 0x58, 0x00, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0xa0-0xa7 */ - 0x66, 0x67, 0x68, 0x69, 0xb1, 0xb2, 0xb3, 0xb5, /* 0xa8-0xaf */ - 0xcd, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, /* 0xb0-0xb7 */ - 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, /* 0xb8-0xbf */ - 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, /* 0xc0-0xc7 */ - 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x00, /* 0xc8-0xcf */ -}; -#endif -#if DEDUPLICATE_TABLES -#define ebcdic4971_page20 ebcdic875_page20 -#else /* Unoptimized */ -static const unsigned char ebcdic4971_page20[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, /* 0x10-0x17 */ - 0xce, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; -#endif - -static int -ebcdic4971_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00c0) - c = ebcdic4971_page00[wc]; - else if (wc >= 0x0380 && wc < 0x03d0) - c = ebcdic4971_page03[wc-0x0380]; - else if (wc >= 0x2010 && wc < 0x2020) - c = ebcdic4971_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0xfc; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic500.h b/jni/parted/libiconv/lib/ebcdic500.h deleted file mode 100755 index 4270513..0000000 --- a/jni/parted/libiconv/lib/ebcdic500.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-500 - */ - -static const unsigned short ebcdic500_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic500_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic500_2uni[c]; - return 1; -} - -static const unsigned char ebcdic500_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic500_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic500_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic838.h b/jni/parted/libiconv/lib/ebcdic838.h deleted file mode 100755 index 99911bd..0000000 --- a/jni/parted/libiconv/lib/ebcdic838.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-838 - */ - -static const unsigned short ebcdic838_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, - 0x0e07, 0x005b, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x0e48, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, - 0x0e0e, 0x005d, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, - /* 0x60 */ - 0x002d, 0x002f, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, - 0x0e15, 0x005e, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x0e3f, 0x0e4e, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, - 0x0e1c, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0e4f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, - /* 0x90 */ - 0x0e5a, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, - /* 0xa0 */ - 0x0e5b, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, - /* 0xb0 */ - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0e49, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0e3a, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, - /* 0xe0 */ - 0x005c, 0x0e4a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4b, 0x0e4c, 0x009f, -}; - -static int -ebcdic838_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic838_2uni[c]; - return 1; -} - -static const unsigned char ebcdic838_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x49, 0xe0, 0x59, 0x69, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x6a, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char ebcdic838_page0e[96] = { - 0x00, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, /* 0x00-0x07 */ - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x62, /* 0x08-0x0f */ - 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x72, 0x73, /* 0x10-0x17 */ - 0x74, 0x75, 0x76, 0x77, 0x78, 0x8a, 0x8b, 0x8c, /* 0x18-0x1f */ - 0x8d, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, /* 0x20-0x27 */ - 0x9f, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xba, /* 0x28-0x2f */ - 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xcb, 0xcc, 0xcd, /* 0x30-0x37 */ - 0xce, 0xcf, 0xda, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0x38-0x3f */ - 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, /* 0x40-0x47 */ - 0xed, 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0x71, 0x80, /* 0x48-0x4f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x50-0x57 */ - 0xb8, 0xb9, 0x90, 0xa0, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ -}; - -static int -ebcdic838_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic838_page00[wc]; - else if (wc >= 0x0e00 && wc < 0x0e60) - c = ebcdic838_page0e[wc-0x0e00]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic870.h b/jni/parted/libiconv/lib/ebcdic870.h deleted file mode 100755 index 8b14f83..0000000 --- a/jni/parted/libiconv/lib/ebcdic870.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-870 - */ - -static const unsigned short ebcdic870_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x0163, 0x00e1, 0x0103, 0x010d, - 0x00e7, 0x0107, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x0119, 0x00eb, 0x016f, 0x00ed, 0x00ee, 0x013e, - 0x013a, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x02dd, 0x00c1, 0x0102, 0x010c, - 0x00c7, 0x0106, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x02c7, 0x00c9, 0x0118, 0x00cb, 0x016e, 0x00cd, 0x00ce, 0x013d, - 0x0139, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x015b, 0x0148, 0x0111, 0x00fd, 0x0159, 0x015f, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0142, 0x0144, 0x0161, 0x00b8, 0x02db, 0x00a4, - /* 0xa0 */ - 0x0105, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x015a, 0x0147, 0x0110, 0x00dd, 0x0158, 0x015e, - /* 0xb0 */ - 0x02d9, 0x0104, 0x017c, 0x0162, 0x017b, 0x00a7, 0x017e, 0x017a, - 0x017d, 0x0179, 0x0141, 0x0143, 0x0160, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x0155, 0x00f3, 0x0151, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x011a, 0x0171, 0x00fc, 0x0165, 0x00fa, 0x011b, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x010f, 0x00d4, 0x00d6, 0x0154, 0x00d3, 0x0150, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x010e, 0x0170, 0x00dc, 0x0164, 0x00da, 0x009f, -}; - -static int -ebcdic870_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic870_2uni[c]; - return 1; -} - -static const unsigned char ebcdic870_page00[384] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x90, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x68, /* 0xc0-0xc7 */ - 0x00, 0x71, 0x00, 0x73, 0x00, 0x75, 0x76, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xee, 0xeb, 0x00, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xfe, 0x00, 0xfc, 0xad, 0x00, 0x59, /* 0xd8-0xdf */ - 0x00, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0x48, /* 0xe0-0xe7 */ - 0x00, 0x51, 0x00, 0x53, 0x00, 0x55, 0x56, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xce, 0xcb, 0x00, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xde, 0x00, 0xdc, 0x8d, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0x66, 0x46, 0xb1, 0xa0, 0x69, 0x49, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x67, 0x47, 0xfa, 0xea, /* 0x08-0x0f */ - 0xac, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x72, 0x52, 0xda, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x78, 0x58, 0x00, 0x00, 0x77, 0x57, 0x00, /* 0x38-0x3f */ - 0x00, 0xba, 0x9a, 0xbb, 0x9b, 0x00, 0x00, 0xab, /* 0x40-0x47 */ - 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xef, 0xcf, 0x00, 0x00, 0xed, 0xcd, 0x00, 0x00, /* 0x50-0x57 */ - 0xae, 0x8e, 0xaa, 0x8a, 0x00, 0x00, 0xaf, 0x8f, /* 0x58-0x5f */ - 0xbc, 0x9c, 0xb3, 0x44, 0xfd, 0xdd, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x54, /* 0x68-0x6f */ - 0xfb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xb9, 0xb7, 0xb4, 0xb2, 0xb8, 0xb6, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char ebcdic870_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x80, 0xb0, 0x00, 0x9e, 0x00, 0x64, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -ebcdic870_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0180) - c = ebcdic870_page00[wc]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = ebcdic870_page02[wc-0x02c0]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic871.h b/jni/parted/libiconv/lib/ebcdic871.h deleted file mode 100755 index 0e091cd..0000000 --- a/jni/parted/libiconv/lib/ebcdic871.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-871 - */ - -static const unsigned short ebcdic871_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00de, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x00c6, 0x0024, 0x002a, 0x0029, 0x003b, 0x00d6, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x00f0, 0x003a, 0x0023, 0x00d0, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x0060, 0x00fd, 0x007b, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x007d, 0x00b8, 0x005d, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x0040, 0x00dd, 0x005b, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, - 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x005c, 0x00d7, - /* 0xc0 */ - 0x00fe, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x00e6, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x00b4, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x005e, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic871_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic871_2uni[c]; - return 1; -} - -static const unsigned char ebcdic871_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xac, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xae, 0xbe, 0x9e, 0xec, 0x6d, /* 0x58-0x5f */ - 0x8c, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x8e, 0xbb, 0x9c, 0xcc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0xe0, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x5a, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x7c, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x5f, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0x4a, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0xd0, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x79, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0xc0, 0xdf, /* 0xf8-0xff */ -}; - -static int -ebcdic871_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic871_page00[wc]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic875.h b/jni/parted/libiconv/lib/ebcdic875.h deleted file mode 100755 index dee3f46..0000000 --- a/jni/parted/libiconv/lib/ebcdic875.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-875 - */ - -static const unsigned short ebcdic875_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x03aa, 0x03ab, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00a8, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, - 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, - /* 0xa0 */ - 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, - /* 0xb0 */ - 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, - 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x03c9, 0x0390, 0x03b0, 0x2018, 0x2015, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b1, 0x00bd, 0xfffd, 0x0387, 0x2019, 0x00a6, - /* 0xe0 */ - 0x005c, 0xfffd, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00a7, 0xfffd, 0xfffd, 0x00ab, 0x00ac, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00a9, 0xfffd, 0xfffd, 0x00bb, 0x009f, -}; - -static int -ebcdic875_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic875_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic875_page00[192] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x74, 0x00, 0x00, 0xb0, 0x00, 0x00, 0xdf, 0xeb, /* 0xa0-0xa7 */ - 0x70, 0xfb, 0x00, 0xee, 0xef, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x90, 0xda, 0xea, 0xfa, 0xa0, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xfe, 0x00, 0xdb, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char ebcdic875_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0xdd, /* 0x80-0x87 */ - 0x72, 0x73, 0x75, 0x00, 0x76, 0x00, 0x77, 0x78, /* 0x88-0x8f */ - 0xcc, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x90-0x97 */ - 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, /* 0x98-0x9f */ - 0x57, 0x58, 0x00, 0x59, 0x62, 0x63, 0x64, 0x65, /* 0xa0-0xa7 */ - 0x66, 0x67, 0x68, 0x69, 0xb1, 0xb2, 0xb3, 0xb5, /* 0xa8-0xaf */ - 0xcd, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, /* 0xb0-0xb7 */ - 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, /* 0xb8-0xbf */ - 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, /* 0xc0-0xc7 */ - 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x00, /* 0xc8-0xcf */ -}; -static const unsigned char ebcdic875_page20[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, /* 0x10-0x17 */ - 0xce, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; - -static int -ebcdic875_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00c0) - c = ebcdic875_page00[wc]; - else if (wc >= 0x0380 && wc < 0x03d0) - c = ebcdic875_page03[wc-0x0380]; - else if (wc >= 0x2010 && wc < 0x2020) - c = ebcdic875_page20[wc-0x2010]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic880.h b/jni/parted/libiconv/lib/ebcdic880.h deleted file mode 100755 index bcadc52..0000000 --- a/jni/parted/libiconv/lib/ebcdic880.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-880 - */ - -static const unsigned short ebcdic880_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, - 0x0457, 0x0458, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, 0x042a, - 0x2116, 0x0402, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x044e, 0x0430, - 0x0431, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x0446, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, - /* 0x90 */ - 0x0439, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xa0 */ - 0x044f, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - /* 0xb0 */ - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, - /* 0xe0 */ - 0x005c, 0x00a4, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x009f, -}; - -static int -ebcdic880_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic880_2uni[c]; - return 1; -} - -static const unsigned char ebcdic880_page00[176] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char ebcdic880_page04[96] = { - 0x00, 0x63, 0x59, 0x62, 0x64, 0x65, 0x66, 0x67, /* 0x00-0x07 */ - 0x68, 0x69, 0x70, 0x71, 0x72, 0x00, 0x74, 0x75, /* 0x08-0x0f */ - 0xb9, 0xba, 0xed, 0xbf, 0xbc, 0xbd, 0xec, 0xfa, /* 0x10-0x17 */ - 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, 0xdc, /* 0x18-0x1f */ - 0xde, 0xdf, 0xea, 0xeb, 0xbe, 0xca, 0xbb, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0x57, 0xef, 0xee, 0xfc, 0xb8, 0xdd, /* 0x28-0x2f */ - 0x77, 0x78, 0xaf, 0x8d, 0x8a, 0x8b, 0xae, 0xb2, /* 0x30-0x37 */ - 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x38-0x3f */ - 0xaa, 0xab, 0xac, 0xad, 0x8c, 0x8e, 0x80, 0xb6, /* 0x40-0x47 */ - 0xb3, 0xb5, 0xb7, 0xb1, 0xb0, 0xb4, 0x76, 0xa0, /* 0x48-0x4f */ - 0x00, 0x44, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, /* 0x50-0x57 */ - 0x49, 0x51, 0x52, 0x53, 0x54, 0x00, 0x55, 0x56, /* 0x58-0x5f */ -}; - -static int -ebcdic880_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00b0) - c = ebcdic880_page00[wc]; - else if (wc >= 0x0400 && wc < 0x0460) - c = ebcdic880_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0x58; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic905.h b/jni/parted/libiconv/lib/ebcdic905.h deleted file mode 100755 index 6041c99..0000000 --- a/jni/parted/libiconv/lib/ebcdic905.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-905 - */ - -static const unsigned short ebcdic905_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0xfffd, 0x010b, - 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0xfffd, 0x010a, - 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0xfffd, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, - /* 0x80 */ - 0x02d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x0127, 0x0109, 0x015d, 0x016d, 0xfffd, 0x007c, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x0125, 0x011d, 0x0135, 0x00b8, 0xfffd, 0x00a4, - /* 0xa0 */ - 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x0126, 0x0108, 0x015c, 0x016c, 0xfffd, 0x0040, - /* 0xb0 */ - 0x02d9, 0x00a3, 0x017c, 0x007d, 0x017b, 0x00a7, 0x005d, 0x00b7, - 0x00bd, 0x0024, 0x0124, 0x011c, 0x0134, 0x00a8, 0x00b4, 0x00d7, - /* 0xc0 */ - 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x0121, - /* 0xd0 */ - 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x0060, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0xfffd, - /* 0xe0 */ - 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x0120, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic905_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc = ebcdic905_2uni[c]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char ebcdic905_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x4f, 0xfc, 0xec, 0xb9, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0xaf, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xb6, 0x5f, 0x6d, /* 0x58-0x5f */ - 0xda, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0x48, 0x8f, 0xb3, 0xcc, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0x00, 0x00, 0xb1, 0x9f, 0x00, 0x00, 0xb5, /* 0xa0-0xa7 */ - 0xbd, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, /* 0xa8-0xaf */ - 0x90, 0x00, 0xea, 0xfa, 0xbe, 0xa0, 0x00, 0xb7, /* 0xb0-0xb7 */ - 0x9d, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x00, 0x63, 0x00, 0x00, 0x4a, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0x00, 0x69, 0xed, 0xee, 0xeb, 0x00, 0x7b, 0xbf, /* 0xd0-0xd7 */ - 0x00, 0xfd, 0xfe, 0xfb, 0x7f, 0x00, 0x00, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x00, 0x43, 0x00, 0x00, 0xc0, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x00, 0x49, 0xcd, 0xce, 0xcb, 0x00, 0xa1, 0xe1, /* 0xf0-0xf7 */ - 0x00, 0xdd, 0xde, 0xdb, 0xe0, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic905_page01[120] = { - 0xab, 0x8b, 0x67, 0x47, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0xbb, 0x9b, 0x5a, 0xd0, /* 0x18-0x1f */ - 0xef, 0xcf, 0x00, 0x00, 0xba, 0x9a, 0xaa, 0x8a, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x5b, 0x79, 0x00, 0x00, 0xbc, 0x9c, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0xac, 0x8c, 0x7c, 0x6a, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0xad, 0x8d, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0xb4, 0xb2, 0x00, 0x00, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char ebcdic905_page02[8] = { - 0x80, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -ebcdic905_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic905_page00[wc]; - else if (wc >= 0x0108 && wc < 0x0180) - c = ebcdic905_page01[wc-0x0108]; - else if (wc >= 0x02d8 && wc < 0x02e0) - c = ebcdic905_page02[wc-0x02d8]; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ebcdic924.h b/jni/parted/libiconv/lib/ebcdic924.h deleted file mode 100755 index cc7cd7c..0000000 --- a/jni/parted/libiconv/lib/ebcdic924.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 1999-2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * IBM-924 - */ - -static const unsigned short ebcdic924_2uni[256] = { - /* 0x00 */ - 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, - 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, - /* 0x20 */ - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, - 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, - /* 0x30 */ - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, - /* 0x40 */ - 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, - 0x00e7, 0x00f1, 0x00dd, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, - /* 0x50 */ - 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, - 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, - /* 0x60 */ - 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, - 0x00c7, 0x00d1, 0x0160, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, - /* 0x70 */ - 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, - 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, - /* 0x80 */ - 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, - /* 0x90 */ - 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, - 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x017e, 0x00c6, 0x20ac, - /* 0xa0 */ - 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x005b, 0x00de, 0x00ae, - /* 0xb0 */ - 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x0152, - 0x0153, 0x0178, 0x00ac, 0x0161, 0x00af, 0x005d, 0x017d, 0x00d7, - /* 0xc0 */ - 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, - /* 0xd0 */ - 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, - 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, - /* 0xe0 */ - 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, - /* 0xf0 */ - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f, -}; - -static int -ebcdic924_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) ebcdic924_2uni[c]; - return 1; -} - -static const unsigned char ebcdic924_page00[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 0x00-0x07 */ - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */ - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 0x10-0x17 */ - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */ - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 0x20-0x27 */ - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* 0x28-0x2f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x30-0x37 */ - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0x38-0x3f */ - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x40-0x47 */ - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* 0x48-0x4f */ - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 0x50-0x57 */ - 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* 0x58-0x5f */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x60-0x67 */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* 0x68-0x6f */ - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 0x70-0x77 */ - 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* 0x78-0x7f */ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, /* 0x80-0x87 */ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, /* 0x88-0x8f */ - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, /* 0x90-0x97 */ - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, /* 0x98-0x9f */ - 0x41, 0xaa, 0xb0, 0xb1, 0x00, 0xb2, 0x00, 0xb5, /* 0xa0-0xa7 */ - 0x00, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, /* 0xa8-0xaf */ - 0x90, 0x8f, 0xea, 0xfa, 0x00, 0xa0, 0xb6, 0xb3, /* 0xb0-0xb7 */ - 0x00, 0xda, 0x9b, 0x8b, 0x00, 0x00, 0x00, 0xab, /* 0xb8-0xbf */ - 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* 0xc0-0xc7 */ - 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* 0xc8-0xcf */ - 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* 0xd0-0xd7 */ - 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0x4a, 0xae, 0x59, /* 0xd8-0xdf */ - 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* 0xe0-0xe7 */ - 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* 0xe8-0xef */ - 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* 0xf0-0xf7 */ - 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0xf8-0xff */ -}; -static const unsigned char ebcdic924_page01[48] = { - 0x00, 0x00, 0xb7, 0xb8, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x6a, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xb9, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x9d, 0x00, /* 0x78-0x7f */ -}; - -static int -ebcdic924_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0100) - c = ebcdic924_page00[wc]; - else if (wc >= 0x0150 && wc < 0x0180) - c = ebcdic924_page01[wc-0x0150]; - else if (wc == 0x20ac) - c = 0x9f; - if (c != 0 || wc == 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/encodings.def b/jni/parted/libiconv/lib/encodings.def deleted file mode 100755 index 41d8063..0000000 --- a/jni/parted/libiconv/lib/encodings.def +++ /dev/null @@ -1,1040 +0,0 @@ -/* Copyright (C) 1999-2011 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* The list of all system independent user-visible encodings. */ - -/* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined - in a file named "foobar.h" through the functions foobar_mbtowc and - foobar_wctomb (and possibly foobar_reset). */ - -/* DEFENCODING(( name, alias1, ..., ), - xxx, - { xxx_mbtowc, xxx_flushwc }, - { xxx_wctomb, xxx_reset }) - defines an encoding with the given name and aliases. (There is no - difference between a name and an alias. By convention, the name is chosen - as the preferred MIME name or the standard name.) - All names and aliases must be in ASCII. Case is not significant, but - for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is - preferred. For all names and aliases, note where it comes from. - xxx is the name as used in the C code (lowercase). - */ - - -DEFENCODING(( "US-ASCII", /* IANA */ - "ASCII", /* IANA, JDK 1.1 */ - "ISO646-US", /* IANA */ - "ISO_646.IRV:1991", /* IANA */ - "ISO-IR-6", /* IANA */ - "ANSI_X3.4-1968", /* IANA */ - "ANSI_X3.4-1986", /* IANA */ - "CP367", /* IANA */ - "IBM367", /* IANA */ - "US", /* IANA */ - "csASCII", /* IANA */ - /*"ISO646.1991-IRV", X11R6.4 */ - ), - ascii, - { ascii_mbtowc, NULL }, { ascii_wctomb, NULL }) -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "646", /* Solaris */ - ascii) -#endif - -/* General multi-byte encodings */ - -DEFENCODING(( "UTF-8", /* IANA, RFC 2279 */ - /*"UTF8", JDK 1.1 */ - /*"CP65001", Windows */ - ), - utf8, - { utf8_mbtowc, NULL }, { utf8_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "UTF8", /* HP-UX */ - utf8) -#endif - -DEFENCODING(( "UCS-2", /* glibc */ - "ISO-10646-UCS-2", /* IANA */ - "csUnicode", /* IANA */ - ), - ucs2, - { ucs2_mbtowc, NULL }, { ucs2_wctomb, NULL }) - -DEFENCODING(( "UCS-2BE", /* glibc */ - "UNICODEBIG", /* glibc */ - "UNICODE-1-1", /* IANA */ - "csUnicode11", /* IANA */ - /*"CP1201", Windows */ - ), - ucs2be, - { ucs2be_mbtowc, NULL }, { ucs2be_wctomb, NULL }) - -DEFENCODING(( "UCS-2LE", /* glibc */ - "UNICODELITTLE", /* glibc */ - /*"CP1200", Windows */ - ), - ucs2le, - { ucs2le_mbtowc, NULL }, { ucs2le_wctomb, NULL }) - -DEFENCODING(( "UCS-4", /* glibc */ - "ISO-10646-UCS-4", /* IANA */ - "csUCS4", /* IANA */ - ), - ucs4, - { ucs4_mbtowc, NULL }, { ucs4_wctomb, NULL }) - -DEFENCODING(( "UCS-4BE", /* glibc */ - /*"CP12001", Windows */ - ), - ucs4be, - { ucs4be_mbtowc, NULL }, { ucs4be_wctomb, NULL }) - -DEFENCODING(( "UCS-4LE", /* glibc */ - /*"CP12000", Windows */ - ), - ucs4le, - { ucs4le_mbtowc, NULL }, { ucs4le_wctomb, NULL }) - -DEFENCODING(( "UTF-16", /* IANA, RFC 2781 */ - ), - utf16, - { utf16_mbtowc, NULL }, { utf16_wctomb, NULL }) - -DEFENCODING(( "UTF-16BE", /* IANA, RFC 2781 */ - ), - utf16be, - { utf16be_mbtowc, NULL }, { utf16be_wctomb, NULL }) - -DEFENCODING(( "UTF-16LE", /* IANA, RFC 2781 */ - ), - utf16le, - { utf16le_mbtowc, NULL }, { utf16le_wctomb, NULL }) - -DEFENCODING(( "UTF-32", /* IANA, Unicode 3.1 */ - ), - utf32, - { utf32_mbtowc, NULL }, { utf32_wctomb, NULL }) - -DEFENCODING(( "UTF-32BE", /* IANA, Unicode 3.1 */ - ), - utf32be, - { utf32be_mbtowc, NULL }, { utf32be_wctomb, NULL }) - -DEFENCODING(( "UTF-32LE", /* IANA, Unicode 3.1 */ - ), - utf32le, - { utf32le_mbtowc, NULL }, { utf32le_wctomb, NULL }) - -DEFENCODING(( "UTF-7", /* IANA, RFC 2152 */ - "UNICODE-1-1-UTF-7", /* IANA, RFC 1642 */ - "csUnicode11UTF7", /* IANA */ - /*"CP65000", Windows */ - ), - utf7, - { utf7_mbtowc, NULL }, { utf7_wctomb, utf7_reset }) - -DEFENCODING(( "UCS-2-INTERNAL", /* libiconv */ - ), - ucs2internal, - { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL }) - -DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */ - ), - ucs2swapped, - { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL }) - -DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */ - ), - ucs4internal, - { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL }) - -DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */ - ), - ucs4swapped, - { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL }) - -DEFENCODING(( "C99", - ), - c99, - { c99_mbtowc, NULL }, { c99_wctomb, NULL }) - -DEFENCODING(( "JAVA", - ), - java, - { java_mbtowc, NULL }, { java_wctomb, NULL }) - -/* Standard 8-bit encodings */ - -DEFENCODING(( "ISO-8859-1", /* IANA */ - "ISO_8859-1", /* IANA */ - "ISO_8859-1:1987", /* IANA */ - "ISO-IR-100", /* IANA */ - "CP819", /* IANA */ - "IBM819", /* IANA */ - "LATIN1", /* IANA */ - "L1", /* IANA */ - "csISOLatin1", /* IANA */ - "ISO8859-1", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ - /*"ISO8859_1", JDK 1.1 */ - /*"CP28591", Windows */ - ), - iso8859_1, - { iso8859_1_mbtowc, NULL }, { iso8859_1_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88591", /* HP-UX */ - iso8859_1) -#endif - -DEFENCODING(( "ISO-8859-2", /* IANA */ - "ISO_8859-2", /* IANA */ - "ISO_8859-2:1987", /* IANA */ - "ISO-IR-101", /* IANA */ - "LATIN2", /* IANA */ - "L2", /* IANA */ - "csISOLatin2", /* IANA */ - "ISO8859-2", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ - /*"ISO8859_2", JDK 1.1 */ - /*"CP28592", Windows */ - ), - iso8859_2, - { iso8859_2_mbtowc, NULL }, { iso8859_2_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88592", /* HP-UX */ - iso8859_2) -#endif - -DEFENCODING(( "ISO-8859-3", /* IANA */ - "ISO_8859-3", /* IANA */ - "ISO_8859-3:1988", /* IANA */ - "ISO-IR-109", /* IANA */ - "LATIN3", /* IANA */ - "L3", /* IANA */ - "csISOLatin3", /* IANA */ - "ISO8859-3", /* X11R6.4, glibc, FreeBSD, Solaris */ - /*"ISO8859_3", JDK 1.1 */ - /*"CP28593", Windows */ - ), - iso8859_3, - { iso8859_3_mbtowc, NULL }, { iso8859_3_wctomb, NULL }) - -DEFENCODING(( "ISO-8859-4", /* IANA */ - "ISO_8859-4", /* IANA */ - "ISO_8859-4:1988", /* IANA */ - "ISO-IR-110", /* IANA */ - "LATIN4", /* IANA */ - "L4", /* IANA */ - "csISOLatin4", /* IANA */ - "ISO8859-4", /* X11R6.4, glibc, FreeBSD, OSF/1, Solaris */ - /*"ISO8859_4", JDK 1.1 */ - /*"CP28594", Windows */ - ), - iso8859_4, - { iso8859_4_mbtowc, NULL }, { iso8859_4_wctomb, NULL }) - -DEFENCODING(( "ISO-8859-5", /* IANA */ - "ISO_8859-5", /* IANA */ - "ISO_8859-5:1988", /* IANA */ - "ISO-IR-144", /* IANA */ - "CYRILLIC", /* IANA */ - "csISOLatinCyrillic", /* IANA */ - "ISO8859-5", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ - /*"ISO8859_5", JDK 1.1 */ - /*"CP28595", Windows */ - ), - iso8859_5, - { iso8859_5_mbtowc, NULL }, { iso8859_5_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88595", /* HP-UX */ - iso8859_5) -#endif - -DEFENCODING(( "ISO-8859-6", /* IANA */ - "ISO_8859-6", /* IANA */ - "ISO_8859-6:1987", /* IANA */ - "ISO-IR-127", /* IANA */ - "ECMA-114", /* IANA */ - "ASMO-708", /* IANA */ - "ARABIC", /* IANA */ - "csISOLatinArabic", /* IANA */ - "ISO8859-6", /* X11R6.4, glibc, FreeBSD, AIX, Solaris */ - /*"ISO8859_6", JDK 1.1 */ - /*"CP28596", Windows */ - ), - iso8859_6, - { iso8859_6_mbtowc, NULL }, { iso8859_6_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88596", /* HP-UX */ - iso8859_6) -#endif - -DEFENCODING(( "ISO-8859-7", /* IANA, RFC 1947 */ - "ISO_8859-7", /* IANA */ - "ISO_8859-7:1987", /* IANA */ - "ISO_8859-7:2003", - "ISO-IR-126", /* IANA */ - "ECMA-118", /* IANA */ - "ELOT_928", /* IANA */ - "GREEK8", /* IANA */ - "GREEK", /* IANA */ - "csISOLatinGreek", /* IANA */ - "ISO8859-7", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ - /*"ISO8859_7", JDK 1.1 */ - /*"CP28597", Windows */ - ), - iso8859_7, - { iso8859_7_mbtowc, NULL }, { iso8859_7_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88597", /* HP-UX */ - iso8859_7) -#endif - -DEFENCODING(( "ISO-8859-8", /* IANA */ - "ISO_8859-8", /* IANA */ - "ISO_8859-8:1988", /* IANA */ - "ISO-IR-138", /* IANA */ - "HEBREW", /* IANA */ - "csISOLatinHebrew", /* IANA */ - "ISO8859-8", /* X11R6.4, glibc, FreeBSD, AIX, OSF/1, Solaris */ - /*"ISO8859_8", JDK 1.1 */ - /*"CP28598", Windows */ - /*"CP38598", Windows */ - ), - iso8859_8, - { iso8859_8_mbtowc, NULL }, { iso8859_8_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88598", /* HP-UX */ - iso8859_8) -#endif - -DEFENCODING(( "ISO-8859-9", /* IANA */ - "ISO_8859-9", /* IANA */ - "ISO_8859-9:1989", /* IANA */ - "ISO-IR-148", /* IANA */ - "LATIN5", /* IANA */ - "L5", /* IANA */ - "csISOLatin5", /* IANA */ - "ISO8859-9", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */ - /*"ISO8859_9", JDK 1.1 */ - /*"CP28599", Windows */ - ), - iso8859_9, - { iso8859_9_mbtowc, NULL }, { iso8859_9_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO88599", /* HP-UX */ - iso8859_9) -#endif - -DEFENCODING(( "ISO-8859-10", /* IANA */ - "ISO_8859-10", - "ISO_8859-10:1992", /* IANA */ - "ISO-IR-157", /* IANA */ - "LATIN6", /* IANA */ - "L6", /* IANA */ - "csISOLatin6", /* IANA */ - "ISO8859-10", /* X11R6.4, glibc, FreeBSD */ - ), - iso8859_10, - { iso8859_10_mbtowc, NULL }, { iso8859_10_wctomb, NULL }) - -DEFENCODING(( "ISO-8859-11", /* glibc */ - "ISO_8859-11", - "ISO8859-11", /* X11R6.7, glibc */ - ), - iso8859_11, - { iso8859_11_mbtowc, NULL }, { iso8859_11_wctomb, NULL }) - -DEFENCODING(( "ISO-8859-13", /* IANA, glibc */ - "ISO_8859-13", - "ISO-IR-179", /* glibc */ - "LATIN7", /* glibc */ - "L7", /* glibc */ - "ISO8859-13", /* glibc, FreeBSD */ - /*"CP28603", Windows */ - ), - iso8859_13, - { iso8859_13_mbtowc, NULL }, { iso8859_13_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-921", /* AIX */ - iso8859_13) -#endif - -DEFENCODING(( "ISO-8859-14", /* IANA, glibc */ - "ISO_8859-14", /* IANA */ - "ISO_8859-14:1998", /* IANA, glibc */ - "ISO-IR-199", /* IANA */ - "LATIN8", /* IANA, glibc */ - "L8", /* IANA, glibc */ - "ISO-CELTIC", /* IANA */ - "ISO8859-14", /* glibc, FreeBSD */ - ), - iso8859_14, - { iso8859_14_mbtowc, NULL }, { iso8859_14_wctomb, NULL }) - -DEFENCODING(( "ISO-8859-15", /* IANA, glibc */ - "ISO_8859-15", /* IANA */ - "ISO_8859-15:1998", /* glibc */ - "ISO-IR-203", - "LATIN-9", /* IANA */ - "ISO8859-15", /* glibc, FreeBSD, AIX, OSF/1, Solaris */ - /*"CP28605", Windows */ - ), - iso8859_15, - { iso8859_15_mbtowc, NULL }, { iso8859_15_wctomb, NULL }) -#ifdef USE_HPUX_ALIASES -DEFALIAS( "ISO885915", /* HP-UX */ - iso8859_15) -#endif - -DEFENCODING(( "ISO-8859-16", /* IANA */ - "ISO_8859-16", /* IANA */ - "ISO_8859-16:2001", /* IANA */ - "ISO-IR-226", /* IANA */ - "LATIN10", /* IANA */ - "L10", /* IANA */ - "ISO8859-16", /* glibc, FreeBSD */ - ), - iso8859_16, - { iso8859_16_mbtowc, NULL }, { iso8859_16_wctomb, NULL }) - -DEFENCODING(( "KOI8-R", /* IANA, RFC 1489, X11R6.4, JDK 1.1 */ - "csKOI8R", /* IANA */ - /*"CP20866", Windows */ - ), - koi8_r, - { koi8_r_mbtowc, NULL }, { koi8_r_wctomb, NULL }) - -DEFENCODING(( "KOI8-U", /* IANA, RFC 2319 */ - ), - koi8_u, - { koi8_u_mbtowc, NULL }, { koi8_u_wctomb, NULL }) - -DEFENCODING(( "KOI8-RU", - /*"CP21866", Windows */ - ), - koi8_ru, - { koi8_ru_mbtowc, NULL }, { koi8_ru_wctomb, NULL }) - -/* Windows 8-bit encodings */ - -DEFENCODING(( "CP1250", /* JDK 1.1 */ - "WINDOWS-1250", /* IANA */ - "MS-EE", - ), - cp1250, - { cp1250_mbtowc, NULL }, { cp1250_wctomb, NULL }) - -DEFENCODING(( "CP1251", /* JDK 1.1 */ - "WINDOWS-1251", /* IANA */ - "MS-CYRL", - ), - cp1251, - { cp1251_mbtowc, NULL }, { cp1251_wctomb, NULL }) -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "ANSI-1251", /* Solaris */ - cp1251) -#endif - -DEFENCODING(( "CP1252", /* JDK 1.1 */ - "WINDOWS-1252", /* IANA */ - "MS-ANSI", - ), - cp1252, - { cp1252_mbtowc, NULL }, { cp1252_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-1252", /* AIX */ - cp1252) -#endif - -DEFENCODING(( "CP1253", /* JDK 1.1 */ - "WINDOWS-1253", /* IANA */ - "MS-GREEK", - ), - cp1253, - { cp1253_mbtowc, NULL }, { cp1253_wctomb, NULL }) - -DEFENCODING(( "CP1254", /* JDK 1.1 */ - "WINDOWS-1254", /* IANA */ - "MS-TURK", - ), - cp1254, - { cp1254_mbtowc, NULL }, { cp1254_wctomb, NULL }) - -DEFENCODING(( "CP1255", /* JDK 1.1 */ - "WINDOWS-1255", /* IANA */ - "MS-HEBR", - ), - cp1255, - { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL }) - -DEFENCODING(( "CP1256", /* JDK 1.1 */ - "WINDOWS-1256", /* IANA */ - "MS-ARAB", - ), - cp1256, - { cp1256_mbtowc, NULL }, { cp1256_wctomb, NULL }) - -DEFENCODING(( "CP1257", /* JDK 1.1 */ - "WINDOWS-1257", /* IANA */ - "WINBALTRIM", - ), - cp1257, - { cp1257_mbtowc, NULL }, { cp1257_wctomb, NULL }) - -DEFENCODING(( "CP1258", /* JDK 1.1 */ - "WINDOWS-1258", /* IANA */ - ), - cp1258, - { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL }) - -/* DOS 8-bit encodings */ - -DEFENCODING(( "CP850", /* IANA, JDK 1.1 */ - "IBM850", /* IANA */ - "850", /* IANA */ - "csPC850Multilingual", /* IANA */ - ), - cp850, - { cp850_mbtowc, NULL }, { cp850_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-850", /* AIX */ - cp850) -#endif - -DEFENCODING(( "CP862", /* IANA, JDK 1.1 */ - "IBM862", /* IANA */ - "862", /* IANA */ - "csPC862LatinHebrew", /* IANA */ - ), - cp862, - { cp862_mbtowc, NULL }, { cp862_wctomb, NULL }) - -DEFENCODING(( "CP866", /* IANA, JDK 1.1 */ - "IBM866", /* IANA */ - "866", /* IANA */ - "csIBM866", /* IANA */ - ), - cp866, - { cp866_mbtowc, NULL }, { cp866_wctomb, NULL }) - -DEFENCODING(( "CP1131", /* FreeBSD, MacOS X */ - ), - cp1131, - { cp1131_mbtowc, NULL }, { cp1131_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-1131", /* AIX */ - cp1131) -#endif - -/* Macintosh 8-bit encodings */ - -DEFENCODING(( "MacRoman", /* JDK 1.1 */ - /* This is the best table for MACINTOSH. The ones */ - /* in glibc and FreeBSD-iconv are bad quality. */ - "MACINTOSH", /* IANA */ - "MAC", /* IANA */ - "csMacintosh", /* IANA */ - /*"CP10000", Windows */ - ), - mac_roman, - { mac_roman_mbtowc, NULL }, { mac_roman_wctomb, NULL }) - -DEFENCODING(( "MacCentralEurope", /* JDK 1.1 */ - /*"CP10029", Windows */ - ), - mac_centraleurope, - { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL }) - -DEFENCODING(( "MacIceland", /* JDK 1.1 */ - /*"CP10079", Windows */ - ), - mac_iceland, - { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL }) - -DEFENCODING(( "MacCroatian", /* JDK 1.1 */ - /*"CP10082", Windows */ - ), - mac_croatian, - { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL }) - -DEFENCODING(( "MacRomania", /* JDK 1.1 */ - /*"CP10010", Windows */ - ), - mac_romania, - { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL }) - -DEFENCODING(( "MacCyrillic", /* JDK 1.1 */ - /*"CP10007", Windows */ - ), - mac_cyrillic, - { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL }) - -DEFENCODING(( "MacUkraine", /* JDK 1.1 */ - /*"CP10017", Windows */ - ), - mac_ukraine, - { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL }) - -DEFENCODING(( "MacGreek", /* JDK 1.1 */ - /*"CP10006", Windows */ - ), - mac_greek, - { mac_greek_mbtowc, NULL }, { mac_greek_wctomb, NULL }) - -DEFENCODING(( "MacTurkish", /* JDK 1.1 */ - /*"CP10081", Windows */ - ), - mac_turkish, - { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL }) - -DEFENCODING(( "MacHebrew", /* JDK 1.1 */ - /*"CP10005", Windows */ - ), - mac_hebrew, - { mac_hebrew_mbtowc, NULL }, { mac_hebrew_wctomb, NULL }) - -DEFENCODING(( "MacArabic", /* JDK 1.1 */ - /*"CP10004", Windows */ - ), - mac_arabic, - { mac_arabic_mbtowc, NULL }, { mac_arabic_wctomb, NULL }) - -DEFENCODING(( "MacThai", /* JDK 1.1 */ - /*"CP10021", Windows */ - ), - mac_thai, - { mac_thai_mbtowc, NULL }, { mac_thai_wctomb, NULL }) - -/* Other platform specific 8-bit encodings */ - -DEFENCODING(( "HP-ROMAN8", /* IANA, X11R6.4 */ - "ROMAN8", /* IANA */ - "R8", /* IANA */ - "csHPRoman8", /* IANA */ - ), - hp_roman8, - { hp_roman8_mbtowc, NULL }, { hp_roman8_wctomb, NULL }) - -DEFENCODING(( "NEXTSTEP", - ), - nextstep, - { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL }) - -/* Regional 8-bit encodings used for a single language */ - -DEFENCODING(( "ARMSCII-8", - ), - armscii_8, - { armscii_8_mbtowc, NULL }, { armscii_8_wctomb, NULL }) - -DEFENCODING(( "GEORGIAN-ACADEMY", - ), - georgian_academy, - { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL }) - -DEFENCODING(( "GEORGIAN-PS", - ), - georgian_ps, - { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL }) - -DEFENCODING(( "KOI8-T", - ), - koi8_t, - { koi8_t_mbtowc, NULL }, { koi8_t_wctomb, NULL }) - -DEFENCODING(( "PT154", /* IANA, glibc */ - "PTCP154", /* IANA */ - "CP154", /* IANA */ - "CYRILLIC-ASIAN", /* IANA */ - "csPTCP154", /* IANA */ - ), - pt154, - { pt154_mbtowc, NULL }, { pt154_wctomb, NULL }) - -DEFENCODING(( "RK1048", /* IANA, glibc */ - "STRK1048-2002", /* IANA */ - "KZ-1048", /* IANA */ - "csKZ1048", /* IANA */ - ), - rk1048, - { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL }) - -DEFENCODING(( "MULELAO-1", - ), - mulelao, - { mulelao_mbtowc, NULL }, { mulelao_wctomb, NULL }) - -DEFENCODING(( "CP1133", - "IBM-CP1133", - ), - cp1133, - { cp1133_mbtowc, NULL }, { cp1133_wctomb, NULL }) - -DEFENCODING(( "TIS-620", /* IANA */ - "TIS620", /* glibc, HP-UX */ - "TIS620-0", /* glibc */ - "TIS620.2529-1", /* glibc */ - "TIS620.2533-0", /* glibc */ - "TIS620.2533-1", - "ISO-IR-166", /* glibc */ - ), - tis620, - { tis620_mbtowc, NULL }, { tis620_wctomb, NULL }) -#ifdef USE_OSF1_ALIASES -DEFALIAS( "TACTIS", /* OSF/1 */ - tis620) -#endif -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "TIS620.2533", /* Solaris */ - tis620) -#endif - -DEFENCODING(( "CP874", /* JDK 1.1 */ - "WINDOWS-874", - ), - cp874, - { cp874_mbtowc, NULL }, { cp874_wctomb, NULL }) - -DEFENCODING(( "VISCII", /* IANA, RFC 1456 */ - "VISCII1.1-1", - "csVISCII", /* IANA */ - ), - viscii, - { viscii_mbtowc, NULL }, { viscii_wctomb, NULL }) - -DEFENCODING(( "TCVN", - "TCVN-5712", - "TCVN5712-1", - "TCVN5712-1:1993", - ), - tcvn, - { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL }) - -/* CJK character sets (not documented) */ - -DEFENCODING(( "JIS_C6220-1969-RO", /* IANA */ - "ISO646-JP", /* IANA */ - "ISO-IR-14", /* IANA */ - "JP", /* IANA */ - "csISO14JISC6220ro", /* IANA */ - ), - iso646_jp, - { iso646_jp_mbtowc, NULL }, { iso646_jp_wctomb, NULL }) - -DEFENCODING(( "JIS_X0201", /* IANA */ - "JISX0201-1976", - "X0201", /* IANA */ - "csHalfWidthKatakana", /* IANA */ - /*"JISX0201.1976-0", X11R6.4 */ - /*"JIS0201", JDK 1.1 */ - ), - jisx0201, - { jisx0201_mbtowc, NULL }, { jisx0201_wctomb, NULL }) - -DEFENCODING(( "JIS_X0208", - "JIS_X0208-1983", /* IANA */ - "JIS_X0208-1990", - "JIS0208", - "X0208", /* IANA */ - "ISO-IR-87", /* IANA */ - "JIS_C6226-1983", /* IANA */ - "csISO87JISX0208", /* IANA */ - /*"JISX0208.1983-0", X11R6.4 */ - /*"JISX0208.1990-0", X11R6.4 */ - /*"JIS0208", JDK 1.1 */ - ), - jisx0208, - { jisx0208_mbtowc, NULL }, { jisx0208_wctomb, NULL }) - -DEFENCODING(( "JIS_X0212", - "JIS_X0212.1990-0", - "JIS_X0212-1990", /* IANA */ - "X0212", /* IANA */ - "ISO-IR-159", /* IANA */ - "csISO159JISX02121990", /* IANA */ - /*"JISX0212.1990-0", X11R6.4 */ - /*"JIS0212", JDK 1.1 */ - ), - jisx0212, - { jisx0212_mbtowc, NULL }, { jisx0212_wctomb, NULL }) - -DEFENCODING(( "GB_1988-80", /* IANA */ - "ISO646-CN", /* IANA */ - "ISO-IR-57", /* IANA */ - "CN", /* IANA */ - "csISO57GB1988", /* IANA */ - ), - iso646_cn, - { iso646_cn_mbtowc, NULL }, { iso646_cn_wctomb, NULL }) - -DEFENCODING(( "GB_2312-80", /* IANA */ - "ISO-IR-58", /* IANA */ - "csISO58GB231280", /* IANA */ - "CHINESE", /* IANA */ - /*"GB2312.1980-0", X11R6.4 */ - ), - gb2312, - { gb2312_mbtowc, NULL }, { gb2312_wctomb, NULL }) - -DEFENCODING(( "ISO-IR-165", - "CN-GB-ISOIR165", /* RFC 1922 */ - ), - isoir165, - { isoir165_mbtowc, NULL }, { isoir165_wctomb, NULL }) - -DEFENCODING(( "KSC_5601", /* IANA */ - "KS_C_5601-1987", /* IANA */ - "KS_C_5601-1989", /* IANA */ - "ISO-IR-149", /* IANA */ - "csKSC56011987", /* IANA */ - "KOREAN", /* IANA */ - /*"KSC5601.1987-0", X11R6.4 */ - /*"KSX1001:1992", Ken Lunde */ - ), - ksc5601, - { ksc5601_mbtowc, NULL }, { ksc5601_wctomb, NULL }) - -/* CJK encodings */ - -DEFENCODING(( "EUC-JP", /* IANA */ - "EUCJP", /* glibc, HP-UX, IRIX, OSF/1, Solaris */ - "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */ - "csEUCPkdFmtJapanese", /* IANA */ - /*"EUC_JP", JDK 1.1 */ - /*"CP51932", Windows */ - ), - euc_jp, - { euc_jp_mbtowc, NULL }, { euc_jp_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-EUCJP", /* AIX */ - euc_jp) -#endif -#ifdef USE_OSF1_ALIASES -DEFALIAS( "SDECKANJI", /* OSF/1 */ - euc_jp) -#endif - -DEFENCODING(( "SHIFT_JIS", /* IANA */ - "SHIFT-JIS", /* glibc */ - "SJIS", /* JDK 1.1, HP-UX, OSF/1 */ - "MS_KANJI", /* IANA */ - "csShiftJIS", /* IANA */ - ), - sjis, - { sjis_mbtowc, NULL }, { sjis_wctomb, NULL }) -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "PCK", /* Solaris */ - sjis) -#endif - -DEFENCODING(( "CP932", /* glibc */ - ), - cp932, - { cp932_mbtowc, NULL }, { cp932_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-932", /* AIX */ - cp932) -#endif - -DEFENCODING(( "ISO-2022-JP", /* IANA, RFC 1468 */ - "csISO2022JP", /* IANA */ - /*"ISO2022JP", JDK 1.1 */ - ), - iso2022_jp, - { iso2022_jp_mbtowc, NULL }, { iso2022_jp_wctomb, iso2022_jp_reset }) - -DEFENCODING(( "ISO-2022-JP-1", /* RFC 2237 */ - ), - iso2022_jp1, - { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset }) - -DEFENCODING(( "ISO-2022-JP-2", /* IANA, RFC 1554 */ - "csISO2022JP2", /* IANA */ - ), - iso2022_jp2, - { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset }) - -DEFENCODING(( "ISO-2022-JP-MS", - "CP50221", - /*"ISO-2022-JP-ESC", Windows */ - ), - iso2022_jpms, - { iso2022_jpms_mbtowc, NULL }, { iso2022_jpms_wctomb, iso2022_jpms_reset }) - -DEFENCODING(( "EUC-CN", /* glibc */ - "EUCCN", /* glibc, IRIX */ - "GB2312", /* IANA */ - "CN-GB", /* RFC 1922 */ - "csGB2312", /* IANA */ - /*"EUC_CN", JDK 1.1 */ - /*"CP51936", Windows */ - ), - euc_cn, - { euc_cn_mbtowc, NULL }, { euc_cn_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-EUCCN", /* AIX */ - euc_cn) -#endif -#ifdef USE_HPUX_ALIASES -DEFALIAS( "HP15CN", /* HP-UX */ - euc_cn) -#endif -#ifdef USE_OSF1_ALIASES -DEFALIAS( "DECHANZI", /* OSF/1 */ - euc_cn) -#endif - -DEFENCODING(( "GBK", /* IANA, JDK 1.1 */ - ), - ces_gbk, - { ces_gbk_mbtowc, NULL }, { ces_gbk_wctomb, NULL }) - -DEFENCODING(( "CP936", /* IANA */ - "MS936", /* IANA */ - "WINDOWS-936", /* IANA */ - ), - cp936, - { cp936_mbtowc, NULL }, { cp936_wctomb, NULL }) - -DEFENCODING(( "GB18030", /* IANA, glibc */ - /*"CP54936", Windows */ - ), - gb18030, - { gb18030_mbtowc, NULL }, { gb18030_wctomb, NULL }) - -DEFENCODING(( "ISO-2022-CN", /* IANA, RFC 1922 */ - "csISO2022CN", - /*"ISO2022CN", JDK 1.1 */ - ), - iso2022_cn, - { iso2022_cn_mbtowc, NULL }, { iso2022_cn_wctomb, iso2022_cn_reset }) - -DEFENCODING(( "ISO-2022-CN-EXT", /* IANA, RFC 1922 */ - ), - iso2022_cn_ext, - { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset }) - -DEFENCODING(( "HZ", /* RFC 1843 */ - "HZ-GB-2312", /* IANA, RFC 1842 */ - /*"CP52936", Windows */ - ), - hz, - { hz_mbtowc, NULL }, { hz_wctomb, hz_reset }) - -DEFENCODING(( "EUC-TW", /* glibc */ - "EUCTW", /* glibc, HP-UX, IRIX, OSF/1 */ - "csEUCTW", - /*"EUC_TW", JDK 1.1 */ - /*"CP51950", Windows */ - ), - euc_tw, - { euc_tw_mbtowc, NULL }, { euc_tw_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-EUCTW", /* AIX */ - euc_tw) -#endif -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "CNS11643", /* Solaris */ - euc_tw) -#endif - -DEFENCODING(( "BIG5", /* IANA, JDK 1.1 */ - "BIG-5", /* glibc */ - "BIG-FIVE", /* glibc */ - "BIGFIVE", /* glibc */ - "CN-BIG5", /* RFC 1922 */ - "csBig5", /* IANA */ - ), - ces_big5, - { ces_big5_mbtowc, NULL }, { ces_big5_wctomb, NULL }) - -DEFENCODING(( "CP950", /* JDK 1.1 */ - ), - cp950, - { cp950_mbtowc, NULL }, { cp950_wctomb, NULL }) - -DEFENCODING(( "BIG5-HKSCS:1999", - ), - big5hkscs1999, - { big5hkscs1999_mbtowc, big5hkscs1999_flushwc }, { big5hkscs1999_wctomb, big5hkscs1999_reset }) - -DEFENCODING(( "BIG5-HKSCS:2001", - ), - big5hkscs2001, - { big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset }) - -DEFENCODING(( "BIG5-HKSCS:2004", - ), - big5hkscs2004, - { big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset }) - -DEFENCODING(( "BIG5-HKSCS", /* IANA */ - "BIG5HKSCS", /* glibc */ - "BIG5-HKSCS:2008", - ), - big5hkscs2008, - { big5hkscs2008_mbtowc, big5hkscs2008_flushwc }, { big5hkscs2008_wctomb, big5hkscs2008_reset }) - -DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */ - "EUCKR", /* glibc, HP-UX, IRIX, OSF/1 */ - "csEUCKR", /* IANA */ - /*"EUC_KR", JDK 1.1 */ - /*"CP51949", Windows */ - ), - euc_kr, - { euc_kr_mbtowc, NULL }, { euc_kr_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-EUCKR", /* AIX */ - euc_kr) -#endif -#ifdef USE_OSF1_ALIASES -DEFALIAS( "DECKOREAN", /* OSF/1 */ - euc_kr) -#endif -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "5601", /* Solaris */ - euc_kr) -#endif - -DEFENCODING(( "CP949", /* JDK 1.1 */ - "UHC", /* glibc */ - ), - cp949, - { cp949_mbtowc, NULL }, { cp949_wctomb, NULL }) -#ifdef USE_OSF1_ALIASES -DEFALIAS( "KSC5601", /* OSF/1 */ - cp949) -#endif - -DEFENCODING(( "JOHAB", /* glibc */ - "CP1361", /* glibc */ - ), - johab, - { johab_mbtowc, NULL }, { johab_wctomb, NULL }) -#ifdef USE_SOLARIS_ALIASES -DEFALIAS( "KO_KR.JOHAP92", /* Solaris */ - johab) -#endif - -DEFENCODING(( "ISO-2022-KR", /* IANA, RFC 1557 */ - "csISO2022KR", /* IANA */ - /*"ISO2022KR", JDK 1.1 */ - /*"CP50225", Windows */ - ), - iso2022_kr, - { iso2022_kr_mbtowc, NULL }, { iso2022_kr_wctomb, iso2022_kr_reset }) - diff --git a/jni/parted/libiconv/lib/encodings_aix.def b/jni/parted/libiconv/lib/encodings_aix.def deleted file mode 100755 index 0a065f7..0000000 --- a/jni/parted/libiconv/lib/encodings_aix.def +++ /dev/null @@ -1,96 +0,0 @@ -/* Copyright (C) 2000-2002, 2008 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* Encodings used by system dependent locales on AIX. */ - -DEFENCODING(( "CP856", - ), - cp856, - { cp856_mbtowc, NULL }, { cp856_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-856", /* AIX */ - cp856) -#endif - -DEFENCODING(( "CP922", - ), - cp922, - { cp922_mbtowc, NULL }, { cp922_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-922", /* AIX */ - cp922) -#endif - -DEFENCODING(( "CP943", - ), - cp943, - { cp943_mbtowc, NULL }, { cp943_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-943", /* AIX */ - cp943) -#endif - -DEFENCODING(( "CP1046", - ), - cp1046, - { cp1046_mbtowc, NULL }, { cp1046_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-1046", /* AIX */ - cp1046) -#endif - -DEFENCODING(( "CP1124", - ), - cp1124, - { cp1124_mbtowc, NULL }, { cp1124_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-1124", /* AIX */ - cp1124) -#endif - -DEFENCODING(( "CP1129", - ), - cp1129, - { cp1129_mbtowc, NULL }, { cp1129_wctomb, NULL }) -#ifdef USE_AIX_ALIASES -DEFALIAS( "IBM-1129", /* AIX */ - cp1129) -#endif - -DEFENCODING(( "CP1161", - "IBM1161", /* glibc */ - "IBM-1161", /* glibc */ - "csIBM1161", /* glibc */ - ), - cp1161, - { cp1161_mbtowc, NULL }, { cp1161_wctomb, NULL }) - -DEFENCODING(( "CP1162", - "IBM1162", /* glibc */ - "IBM-1162", /* glibc */ - "csIBM1162", /* glibc */ - ), - cp1162, - { cp1162_mbtowc, NULL }, { cp1162_wctomb, NULL }) - -DEFENCODING(( "CP1163", - "IBM1163", /* glibc */ - "IBM-1163", /* glibc */ - "csIBM1163", /* glibc */ - ), - cp1163, - { cp1163_mbtowc, NULL }, { cp1163_wctomb, NULL }) diff --git a/jni/parted/libiconv/lib/encodings_dos.def b/jni/parted/libiconv/lib/encodings_dos.def deleted file mode 100755 index ae8cc55..0000000 --- a/jni/parted/libiconv/lib/encodings_dos.def +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright (C) 2001-2002 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* Encodings used by system dependent locales on MSDOS. */ - -DEFENCODING(( "CP437", /* IANA, JDK 1.1 */ - "IBM437", /* IANA */ - "437", /* IANA */ - "csPC8CodePage437", /* IANA */ - ), - cp437, - { cp437_mbtowc, NULL }, { cp437_wctomb, NULL }) - -DEFENCODING(( "CP737", /* JDK 1.1 */ - ), - cp737, - { cp737_mbtowc, NULL }, { cp737_wctomb, NULL }) - -DEFENCODING(( "CP775", /* IANA, JDK 1.1 */ - "IBM775", /* IANA */ - "csPC775Baltic", /* IANA */ - ), - cp775, - { cp775_mbtowc, NULL }, { cp775_wctomb, NULL }) - -DEFENCODING(( "CP852", /* IANA, JDK 1.1 */ - "IBM852", /* IANA */ - "852", /* IANA */ - "csPCp852", /* IANA */ - ), - cp852, - { cp852_mbtowc, NULL }, { cp852_wctomb, NULL }) - -DEFENCODING(( "CP853", - ), - cp853, - { cp853_mbtowc, NULL }, { cp853_wctomb, NULL }) - -DEFENCODING(( "CP855", /* IANA, JDK 1.1 */ - "IBM855", /* IANA */ - "855", /* IANA */ - "csIBM855", /* IANA */ - ), - cp855, - { cp855_mbtowc, NULL }, { cp855_wctomb, NULL }) - -DEFENCODING(( "CP857", /* IANA, JDK 1.1 */ - "IBM857", /* IANA */ - "857", /* IANA */ - "csIBM857", /* IANA */ - ), - cp857, - { cp857_mbtowc, NULL }, { cp857_wctomb, NULL }) - -DEFENCODING(( "CP858", /* JDK 1.1.7 */ - ), - cp858, - { cp858_mbtowc, NULL }, { cp858_wctomb, NULL }) - -DEFENCODING(( "CP860", /* IANA, JDK 1.1 */ - "IBM860", /* IANA */ - "860", /* IANA */ - "csIBM860", /* IANA */ - ), - cp860, - { cp860_mbtowc, NULL }, { cp860_wctomb, NULL }) - -DEFENCODING(( "CP861", /* IANA, JDK 1.1 */ - "IBM861", /* IANA */ - "861", /* IANA */ - "CP-IS", /* IANA */ - "csIBM861", /* IANA */ - ), - cp861, - { cp861_mbtowc, NULL }, { cp861_wctomb, NULL }) - -DEFENCODING(( "CP863", /* IANA, JDK 1.1 */ - "IBM863", /* IANA */ - "863", /* IANA */ - "csIBM863", /* IANA */ - ), - cp863, - { cp863_mbtowc, NULL }, { cp863_wctomb, NULL }) - -DEFENCODING(( "CP864", /* IANA, JDK 1.1 */ - "IBM864", /* IANA */ - "csIBM864", /* IANA */ - ), - cp864, - { cp864_mbtowc, NULL }, { cp864_wctomb, NULL }) - -DEFENCODING(( "CP865", /* IANA, JDK 1.1 */ - "IBM865", /* IANA */ - "865", /* IANA */ - "csIBM865", /* IANA */ - ), - cp865, - { cp865_mbtowc, NULL }, { cp865_wctomb, NULL }) - -DEFENCODING(( "CP869", /* IANA, JDK 1.1 */ - "IBM869", /* IANA */ - "869", /* IANA */ - "CP-GR", /* IANA */ - "csIBM869", /* IANA */ - ), - cp869, - { cp869_mbtowc, NULL }, { cp869_wctomb, NULL }) - -DEFENCODING(( "CP1125", /* ICU */ - ), - cp1125, - { cp1125_mbtowc, NULL }, { cp1125_wctomb, NULL }) diff --git a/jni/parted/libiconv/lib/encodings_extra.def b/jni/parted/libiconv/lib/encodings_extra.def deleted file mode 100755 index a72f690..0000000 --- a/jni/parted/libiconv/lib/encodings_extra.def +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright (C) 2002, 2005, 2008 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -DEFENCODING(( "EUC-JISX0213", - "EUC-JIS-2004", /* x0213.org */ - ), - euc_jisx0213, - { euc_jisx0213_mbtowc, euc_jisx0213_flushwc }, { euc_jisx0213_wctomb, euc_jisx0213_reset }) - -DEFENCODING(( "SHIFT_JISX0213", - "SHIFT_JIS-2004", /* x0213.org */ - ), - shift_jisx0213, - { shift_jisx0213_mbtowc, shift_jisx0213_flushwc }, { shift_jisx0213_wctomb, shift_jisx0213_reset }) - -DEFENCODING(( "ISO-2022-JP-3", - "ISO-2022-JP-2004", /* x0213.org */ - ), - iso2022_jp3, - { iso2022_jp3_mbtowc, iso2022_jp3_flushwc }, { iso2022_jp3_wctomb, iso2022_jp3_reset }) - -DEFENCODING(( "BIG5-2003", - ), - big5_2003, - { big5_2003_mbtowc, NULL }, { big5_2003_wctomb, NULL }) - -DEFENCODING(( "TDS565", - "ISO-IR-230", - ), - tds565, - { tds565_mbtowc, NULL }, { tds565_wctomb, NULL }) - -DEFENCODING(( "ATARIST", - "ATARI", - ), - atarist, - { atarist_mbtowc, NULL }, { atarist_wctomb, NULL }) - -DEFENCODING(( "RISCOS-LATIN1", - ), - riscos1, - { riscos1_mbtowc, NULL }, { riscos1_wctomb, NULL }) diff --git a/jni/parted/libiconv/lib/encodings_local.def b/jni/parted/libiconv/lib/encodings_local.def deleted file mode 100755 index 4cbff9e..0000000 --- a/jni/parted/libiconv/lib/encodings_local.def +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2000-2001 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* Names for locale dependent encodings. */ - -DEFENCODING(( "CHAR", - ), - local_char, - { NULL, NULL }, { NULL, NULL }) - -DEFENCODING(( "WCHAR_T", /* glibc */ - ), - local_wchar_t, - { NULL, NULL }, { NULL, NULL }) diff --git a/jni/parted/libiconv/lib/encodings_osf1.def b/jni/parted/libiconv/lib/encodings_osf1.def deleted file mode 100755 index 0ca581a..0000000 --- a/jni/parted/libiconv/lib/encodings_osf1.def +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2001, 2008 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* Encodings used by system dependent locales on OSF/1 a.k.a. Tru64. */ - -DEFENCODING(( "DEC-KANJI", - ), - dec_kanji, - { dec_kanji_mbtowc, NULL }, { dec_kanji_wctomb, NULL }) -#ifdef USE_OSF1_ALIASES -DEFALIAS( "DECKANJI", /* OSF/1 */ - dec_kanji) -#endif - -DEFENCODING(( "DEC-HANYU", - ), - dec_hanyu, - { dec_hanyu_mbtowc, NULL }, { dec_hanyu_wctomb, NULL }) -#ifdef USE_OSF1_ALIASES -DEFALIAS( "DECHANYU", /* OSF/1 */ - dec_hanyu) -#endif diff --git a/jni/parted/libiconv/lib/encodings_zos.def b/jni/parted/libiconv/lib/encodings_zos.def deleted file mode 100755 index 838b6be..0000000 --- a/jni/parted/libiconv/lib/encodings_zos.def +++ /dev/null @@ -1,471 +0,0 @@ -/* Copyright (C) 2022 Free Software Foundation, Inc. - This file is part of the GNU LIBICONV Library. - - The GNU LIBICONV 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. - - The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - If not, see . */ - -/* Encodings used by system dependent locales on z/OS. */ - -DEFENCODING(( "IBM-037", - "IBM037", /* IANA */ - "CP037", /* IANA */ - "EBCDIC-CP-US", /* IANA */ - "EBCDIC-CP-CA", /* IANA */ - "EBCDIC-CP-WT", /* IANA */ - "EBCDIC-CP-NL", /* IANA */ - "csIBM037", /* IANA */ - ), - ebcdic037, - { ebcdic037_mbtowc, NULL }, { ebcdic037_wctomb, NULL }) - -DEFENCODING(( "IBM-273", - "IBM273", /* IANA */ - "CP273", /* IANA */ - "csIBM273", /* IANA */ - ), - ebcdic273, - { ebcdic273_mbtowc, NULL }, { ebcdic273_wctomb, NULL }) - -DEFENCODING(( "IBM-277", - "IBM277", /* IANA */ - "EBCDIC-CP-DK", /* IANA */ - "EBCDIC-CP-NO", /* IANA */ - "csIBM277", /* IANA */ - ), - ebcdic277, - { ebcdic277_mbtowc, NULL }, { ebcdic277_wctomb, NULL }) - -DEFENCODING(( "IBM-278", - "IBM278", /* IANA */ - "CP278", /* IANA */ - "EBCDIC-CP-FI", /* IANA */ - "EBCDIC-CP-SE", /* IANA */ - "csIBM278", /* IANA */ - ), - ebcdic278, - { ebcdic278_mbtowc, NULL }, { ebcdic278_wctomb, NULL }) - -DEFENCODING(( "IBM-280", - "IBM280", /* IANA */ - "CP280", /* IANA */ - "EBCDIC-CP-IT", /* IANA */ - "csIBM280", /* IANA */ - ), - ebcdic280, - { ebcdic280_mbtowc, NULL }, { ebcdic280_wctomb, NULL }) - -DEFENCODING(( "IBM-282", - "IBM282", - ), - ebcdic282, - { ebcdic282_mbtowc, NULL }, { ebcdic282_wctomb, NULL }) - -DEFENCODING(( "IBM-284", - "IBM284", /* IANA */ - "CP284", /* IANA */ - "EBCDIC-CP-ES", /* IANA */ - "csIBM284", /* IANA */ - ), - ebcdic284, - { ebcdic284_mbtowc, NULL }, { ebcdic284_wctomb, NULL }) - -DEFENCODING(( "IBM-285", - "IBM285", /* IANA */ - "CP285", /* IANA */ - "EBCDIC-CP-GB", /* IANA */ - "csIBM285", /* IANA */ - ), - ebcdic285, - { ebcdic285_mbtowc, NULL }, { ebcdic285_wctomb, NULL }) - -DEFENCODING(( "IBM-297", - "IBM297", /* IANA */ - "CP297", /* IANA */ - "EBCDIC-CP-FR", /* IANA */ - "csIBM297", /* IANA */ - ), - ebcdic297, - { ebcdic297_mbtowc, NULL }, { ebcdic297_wctomb, NULL }) - -DEFENCODING(( "IBM-423", - "IBM423", /* IANA */ - "CP423", /* IANA */ - "EBCDIC-CP-GR", /* IANA */ - "csIBM423", /* IANA */ - ), - ebcdic423, - { ebcdic423_mbtowc, NULL }, { ebcdic423_wctomb, NULL }) - -DEFENCODING(( "IBM-424", - "IBM424", /* IANA */ - "CP424", /* IANA */ - "EBCDIC-CP-HE", /* IANA */ - "csIBM424", /* IANA */ - ), - ebcdic424, - { ebcdic424_mbtowc, NULL }, { ebcdic424_wctomb, NULL }) - -DEFENCODING(( "IBM-425", - "IBM425", - ), - ebcdic425, - { ebcdic425_mbtowc, NULL }, { ebcdic425_wctomb, NULL }) - -DEFENCODING(( "IBM-500", - "IBM500", /* IANA */ - "CP500", /* IANA */ - "EBCDIC-CP-BE", /* IANA */ - "EBCDIC-CP-CH", /* IANA */ - "csIBM500", /* IANA */ - ), - ebcdic500, - { ebcdic500_mbtowc, NULL }, { ebcdic500_wctomb, NULL }) - -DEFENCODING(( "IBM-838", - "IBM838", - "IBM-THAI", /* IANA */ - "csIBMThai", /* IANA */ - ), - ebcdic838, - { ebcdic838_mbtowc, NULL }, { ebcdic838_wctomb, NULL }) - -DEFENCODING(( "IBM-870", - "IBM870", /* IANA */ - "CP870", /* IANA */ - "EBCDIC-CP-ROECE", /* IANA */ - "EBCDIC-CP-YU", /* IANA */ - "csIBM870", /* IANA */ - ), - ebcdic870, - { ebcdic870_mbtowc, NULL }, { ebcdic870_wctomb, NULL }) - -DEFENCODING(( "IBM-871", - "IBM871", /* IANA */ - "CP871", /* IANA */ - "EBCDIC-CP-IS", /* IANA */ - "csIBM871", /* IANA */ - ), - ebcdic871, - { ebcdic871_mbtowc, NULL }, { ebcdic871_wctomb, NULL }) - -DEFENCODING(( "IBM-875", - "IBM875", /* glibc */ - "CP875", /* glibc */ - "EBCDIC-GREEK", /* glibc */ - ), - ebcdic875, - { ebcdic875_mbtowc, NULL }, { ebcdic875_wctomb, NULL }) - -DEFENCODING(( "IBM-880", - "IBM880", /* IANA */ - "CP880", /* IANA */ - "EBCDIC-CYRILLIC", /* IANA */ - "csIBM880", /* IANA */ - ), - ebcdic880, - { ebcdic880_mbtowc, NULL }, { ebcdic880_wctomb, NULL }) - -DEFENCODING(( "IBM-905", - "IBM905", /* IANA */ - "CP905", /* IANA */ - "EBCDIC-CP-TR", /* IANA */ - "csIBM905", /* IANA */ - ), - ebcdic905, - { ebcdic905_mbtowc, NULL }, { ebcdic905_wctomb, NULL }) - -DEFENCODING(( "IBM-924", - "IBM924", - "IBM00924", /* IANA */ - "CCSID00924", /* IANA */ - "CP00924", /* IANA */ - "EBCDIC-LATIN9-EURO", /* IANA */ - "csIBM00924", /* IANA */ - ), - ebcdic924, - { ebcdic924_mbtowc, NULL }, { ebcdic924_wctomb, NULL }) - -DEFENCODING(( "IBM-1025", - "IBM1025", /* glibc */ - "CP1025", /* glibc */ - ), - ebcdic1025, - { ebcdic1025_mbtowc, NULL }, { ebcdic1025_wctomb, NULL }) - -DEFENCODING(( "IBM-1026", - "IBM1026", /* IANA */ - "CP1026", /* IANA */ - "csIBM1026", /* IANA */ - ), - ebcdic1026, - { ebcdic1026_mbtowc, NULL }, { ebcdic1026_wctomb, NULL }) - -DEFENCODING(( "IBM-1047", /* IANA */ - "IBM1047", /* IANA */ - "CP1047", /* glibc */ - "csIBM1047", /* IANA */ - ), - ebcdic1047, - { ebcdic1047_mbtowc, NULL }, { ebcdic1047_wctomb, NULL }) - -DEFENCODING(( "IBM-1097", - "IBM1097", /* glibc */ - "CP1097", /* glibc */ - ), - ebcdic1097, - { ebcdic1097_mbtowc, NULL }, { ebcdic1097_wctomb, NULL }) - -DEFENCODING(( "IBM-1112", - "IBM1112", /* glibc */ - "CP1112", /* glibc */ - ), - ebcdic1112, - { ebcdic1112_mbtowc, NULL }, { ebcdic1112_wctomb, NULL }) - -DEFENCODING(( "IBM-1122", - "IBM1122", /* glibc */ - "CP1122", /* glibc */ - ), - ebcdic1122, - { ebcdic1122_mbtowc, NULL }, { ebcdic1122_wctomb, NULL }) - -DEFENCODING(( "IBM-1123", - "IBM1123", /* glibc */ - "CP1123", /* glibc */ - ), - ebcdic1123, - { ebcdic1123_mbtowc, NULL }, { ebcdic1123_wctomb, NULL }) - -DEFENCODING(( "IBM-1130", - "IBM1130", /* glibc */ - "CP1130", /* glibc */ - ), - ebcdic1130, - { ebcdic1130_mbtowc, NULL }, { ebcdic1130_wctomb, NULL }) - -DEFENCODING(( "IBM-1132", - "IBM1132", /* glibc */ - "CP1132", /* glibc */ - ), - ebcdic1132, - { ebcdic1132_mbtowc, NULL }, { ebcdic1132_wctomb, NULL }) - -DEFENCODING(( "IBM-1137", - "IBM1137", /* glibc */ - "CP1137", /* glibc */ - ), - ebcdic1137, - { ebcdic1137_mbtowc, NULL }, { ebcdic1137_wctomb, NULL }) - -DEFENCODING(( "IBM-1140", - "IBM1140", - "IBM01140", /* IANA */ - "CCSID01140", /* IANA */ - "CP01140", /* IANA */ - "EBCDIC-US-37+EURO", /* IANA */ - "csIBM01140", /* IANA */ - ), - ebcdic1140, - { ebcdic1140_mbtowc, NULL }, { ebcdic1140_wctomb, NULL }) - -DEFENCODING(( "IBM-1141", - "IBM1141", - "IBM01141", /* IANA */ - "CCSID01141", /* IANA */ - "CP01141", /* IANA */ - "EBCDIC-DE-273+EURO", /* IANA */ - "csIBM01141", /* IANA */ - ), - ebcdic1141, - { ebcdic1141_mbtowc, NULL }, { ebcdic1141_wctomb, NULL }) - -DEFENCODING(( "IBM-1142", - "IBM1142", - "IBM01142", /* IANA */ - "CCSID01142", /* IANA */ - "CP01142", /* IANA */ - "EBCDIC-DK-277+EURO", /* IANA */ - "EBCDIC-NO-277+EURO", /* IANA */ - "csIBM01142", /* IANA */ - ), - ebcdic1142, - { ebcdic1142_mbtowc, NULL }, { ebcdic1142_wctomb, NULL }) - -DEFENCODING(( "IBM-1143", - "IBM1143", - "IBM01143", /* IANA */ - "CCSID01143", /* IANA */ - "CP01143", /* IANA */ - "EBCDIC-FI-278+EURO", /* IANA */ - "EBCDIC-SE-278+EURO", /* IANA */ - "csIBM01143", /* IANA */ - ), - ebcdic1143, - { ebcdic1143_mbtowc, NULL }, { ebcdic1143_wctomb, NULL }) - -DEFENCODING(( "IBM-1144", - "IBM1144", - "IBM01144", /* IANA */ - "CCSID01144", /* IANA */ - "CP01144", /* IANA */ - "EBCDIC-IT-280+EURO", /* IANA */ - "csPC8CodePage1144", /* IANA */ - ), - ebcdic1144, - { ebcdic1144_mbtowc, NULL }, { ebcdic1144_wctomb, NULL }) - -DEFENCODING(( "IBM-1145", - "IBM1145", - "IBM01145", /* IANA */ - "CCSID01145", /* IANA */ - "CP01145", /* IANA */ - "EBCDIC-ES-284+EURO", /* IANA */ - "csIBM01145", /* IANA */ - ), - ebcdic1145, - { ebcdic1145_mbtowc, NULL }, { ebcdic1145_wctomb, NULL }) - -DEFENCODING(( "IBM-1146", - "IBM1146", - "IBM01146", /* IANA */ - "CCSID01146", /* IANA */ - "CP01146", /* IANA */ - "EBCDIC-GB-285+EURO", /* IANA */ - "csPC8CodePage1146", /* IANA */ - ), - ebcdic1146, - { ebcdic1146_mbtowc, NULL }, { ebcdic1146_wctomb, NULL }) - -DEFENCODING(( "IBM-1147", - "IBM1147", - "IBM01147", /* IANA */ - "CCSID01147", /* IANA */ - "CP01147", /* IANA */ - "EBCDIC-FR-297+EURO", /* IANA */ - "csIBM01147", /* IANA */ - ), - ebcdic1147, - { ebcdic1147_mbtowc, NULL }, { ebcdic1147_wctomb, NULL }) - -DEFENCODING(( "IBM-1148", - "IBM1148", - "IBM01148", /* IANA */ - "CCSID01148", /* IANA */ - "CP01148", /* IANA */ - "EBCDIC-INTERNATIONAL-500+EURO", /* IANA */ - "csIBM01148", /* IANA */ - ), - ebcdic1148, - { ebcdic1148_mbtowc, NULL }, { ebcdic1148_wctomb, NULL }) - -DEFENCODING(( "IBM-1149", - "IBM1149", - "IBM01149", /* IANA */ - "CCSID01149", /* IANA */ - "CP01149", /* IANA */ - "EBCDIC-IS-871+EURO", /* IANA */ - "csIBM01149", /* IANA */ - ), - ebcdic1149, - { ebcdic1149_mbtowc, NULL }, { ebcdic1149_wctomb, NULL }) - -DEFENCODING(( "IBM-1153", - "IBM1153", /* glibc */ - "CP1153", /* glibc */ - ), - ebcdic1153, - { ebcdic1153_mbtowc, NULL }, { ebcdic1153_wctomb, NULL }) - -DEFENCODING(( "IBM-1154", - "IBM1154", /* glibc */ - "CP1154", /* glibc */ - ), - ebcdic1154, - { ebcdic1154_mbtowc, NULL }, { ebcdic1154_wctomb, NULL }) - -DEFENCODING(( "IBM-1155", - "IBM1155", /* glibc */ - "CP1155", /* glibc */ - ), - ebcdic1155, - { ebcdic1155_mbtowc, NULL }, { ebcdic1155_wctomb, NULL }) - -DEFENCODING(( "IBM-1156", - "IBM1156", /* glibc */ - "CP1156", /* glibc */ - ), - ebcdic1156, - { ebcdic1156_mbtowc, NULL }, { ebcdic1156_wctomb, NULL }) - -DEFENCODING(( "IBM-1157", - "IBM1157", /* glibc */ - "CP1157", /* glibc */ - ), - ebcdic1157, - { ebcdic1157_mbtowc, NULL }, { ebcdic1157_wctomb, NULL }) - -DEFENCODING(( "IBM-1158", - "IBM1158", /* glibc */ - "CP1158", /* glibc */ - ), - ebcdic1158, - { ebcdic1158_mbtowc, NULL }, { ebcdic1158_wctomb, NULL }) - -DEFENCODING(( "IBM-1160", - "IBM1160", /* glibc */ - "CP1160", /* glibc */ - ), - ebcdic1160, - { ebcdic1160_mbtowc, NULL }, { ebcdic1160_wctomb, NULL }) - -DEFENCODING(( "IBM-1164", - "IBM1164", /* glibc */ - "CP1164", /* glibc */ - ), - ebcdic1164, - { ebcdic1164_mbtowc, NULL }, { ebcdic1164_wctomb, NULL }) - -DEFENCODING(( "IBM-1165", - "IBM1165", - ), - ebcdic1165, - { ebcdic1165_mbtowc, NULL }, { ebcdic1165_wctomb, NULL }) - -DEFENCODING(( "IBM-1166", - "IBM1166", /* glibc */ - "CP1166", /* glibc */ - ), - ebcdic1166, - { ebcdic1166_mbtowc, NULL }, { ebcdic1166_wctomb, NULL }) - -DEFENCODING(( "IBM-4971", - "IBM4971", /* glibc */ - "CP4971", /* glibc */ - ), - ebcdic4971, - { ebcdic4971_mbtowc, NULL }, { ebcdic4971_wctomb, NULL }) - -DEFENCODING(( "IBM-12712", - "IBM12712", /* glibc */ - "CP12712", /* glibc */ - ), - ebcdic12712, - { ebcdic12712_mbtowc, NULL }, { ebcdic12712_wctomb, NULL }) - -DEFENCODING(( "IBM-16804", - "IBM16804", /* glibc */ - "CP16804", /* glibc */ - ), - ebcdic16804, - { ebcdic16804_mbtowc, NULL }, { ebcdic16804_wctomb, NULL }) diff --git a/jni/parted/libiconv/lib/euc_cn.h b/jni/parted/libiconv/lib/euc_cn.h deleted file mode 100755 index d698617..0000000 --- a/jni/parted/libiconv/lib/euc_cn.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * EUC-CN - */ - -static int -euc_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII or GB 1988-89) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (GB 2312-1980) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2-0x80; - return gb2312_mbtowc(conv,pwc,buf,2); - } else - return RET_ILSEQ; - } - } - return RET_ILSEQ; -} - -static int -euc_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII or GB 1988-89) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (GB 2312-1980) */ - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]+0x80; - r[1] = buf[1]+0x80; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/euc_jisx0213.h b/jni/parted/libiconv/lib/euc_jisx0213.h deleted file mode 100755 index 49becad..0000000 --- a/jni/parted/libiconv/lib/euc_jisx0213.h +++ /dev/null @@ -1,267 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * EUC-JISX0213 - */ - -/* The structure of EUC-JISX0213 is as follows: - - 0x00..0x7F: ASCII - - 0x8E{A1..FE}: JISX0201 Katakana, with prefix 0x8E, offset by +0x80. - - 0x8F{A1..FE}{A1..FE}: JISX0213 plane 2, with prefix 0x8F, offset by +0x8080. - - 0x{A1..FE}{A1..FE}: JISX0213 plane 1, offset by +0x8080. - - Note that some JISX0213 characters are not contained in Unicode 3.2 - and are therefore best represented as sequences of Unicode characters. -*/ - -#include "jisx0213.h" -#include "flushwc.h" - -static int -euc_jisx0213_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - unsigned char c = *s; - if (c < 0x80) { - /* Plain ASCII character. */ - *pwc = (ucs4_t) c; - return 1; - } else { - if ((c >= 0xa1 && c <= 0xfe) || c == 0x8e || c == 0x8f) { - /* Two or three byte character. */ - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 <= 0xfe) { - if (c == 0x8e) { - /* Half-width katakana. */ - if (c2 <= 0xdf) { - *pwc = c2 + 0xfec0; - return 2; - } - } else { - ucs4_t wc; - if (c == 0x8f) { - /* JISX 0213 plane 2. */ - if (n >= 3) { - unsigned char c3 = s[2]; - wc = jisx0213_to_ucs4(0x200-0x80+c2,c3^0x80); - } else - return RET_TOOFEW(0); - } else { - /* JISX 0213 plane 1. */ - wc = jisx0213_to_ucs4(0x100-0x80+c,c2^0x80); - } - if (wc) { - if (wc < 0x80) { - /* It's a combining character. */ - ucs4_t wc1 = jisx0213_to_ucs_combining[wc - 1][0]; - ucs4_t wc2 = jisx0213_to_ucs_combining[wc - 1][1]; - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = wc2; - } else - *pwc = wc; - return (c == 0x8f ? 3 : 2); - } - } - } - } else - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } - } -} - -#define euc_jisx0213_flushwc normal_flushwc - -/* Composition tables for each of the relevant combining characters. */ -static const struct { unsigned short base; unsigned short composed; } euc_jisx0213_comp_table_data[] = { -#define euc_jisx0213_comp_table02e5_idx 0 -#define euc_jisx0213_comp_table02e5_len 1 - { 0xabe4, 0xabe5 }, /* 0x12B65 = 0x12B64 U+02E5 */ -#define euc_jisx0213_comp_table02e9_idx (euc_jisx0213_comp_table02e5_idx+euc_jisx0213_comp_table02e5_len) -#define euc_jisx0213_comp_table02e9_len 1 - { 0xabe0, 0xabe6 }, /* 0x12B66 = 0x12B60 U+02E9 */ -#define euc_jisx0213_comp_table0300_idx (euc_jisx0213_comp_table02e9_idx+euc_jisx0213_comp_table02e9_len) -#define euc_jisx0213_comp_table0300_len 5 - { 0xa9dc, 0xabc4 }, /* 0x12B44 = 0x1295C U+0300 */ - { 0xabb8, 0xabc8 }, /* 0x12B48 = 0x12B38 U+0300 */ - { 0xabb7, 0xabca }, /* 0x12B4A = 0x12B37 U+0300 */ - { 0xabb0, 0xabcc }, /* 0x12B4C = 0x12B30 U+0300 */ - { 0xabc3, 0xabce }, /* 0x12B4E = 0x12B43 U+0300 */ -#define euc_jisx0213_comp_table0301_idx (euc_jisx0213_comp_table0300_idx+euc_jisx0213_comp_table0300_len) -#define euc_jisx0213_comp_table0301_len 4 - { 0xabb8, 0xabc9 }, /* 0x12B49 = 0x12B38 U+0301 */ - { 0xabb7, 0xabcb }, /* 0x12B4B = 0x12B37 U+0301 */ - { 0xabb0, 0xabcd }, /* 0x12B4D = 0x12B30 U+0301 */ - { 0xabc3, 0xabcf }, /* 0x12B4F = 0x12B43 U+0301 */ -#define euc_jisx0213_comp_table309a_idx (euc_jisx0213_comp_table0301_idx+euc_jisx0213_comp_table0301_len) -#define euc_jisx0213_comp_table309a_len 14 - { 0xa4ab, 0xa4f7 }, /* 0x12477 = 0x1242B U+309A */ - { 0xa4ad, 0xa4f8 }, /* 0x12478 = 0x1242D U+309A */ - { 0xa4af, 0xa4f9 }, /* 0x12479 = 0x1242F U+309A */ - { 0xa4b1, 0xa4fa }, /* 0x1247A = 0x12431 U+309A */ - { 0xa4b3, 0xa4fb }, /* 0x1247B = 0x12433 U+309A */ - { 0xa5ab, 0xa5f7 }, /* 0x12577 = 0x1252B U+309A */ - { 0xa5ad, 0xa5f8 }, /* 0x12578 = 0x1252D U+309A */ - { 0xa5af, 0xa5f9 }, /* 0x12579 = 0x1252F U+309A */ - { 0xa5b1, 0xa5fa }, /* 0x1257A = 0x12531 U+309A */ - { 0xa5b3, 0xa5fb }, /* 0x1257B = 0x12533 U+309A */ - { 0xa5bb, 0xa5fc }, /* 0x1257C = 0x1253B U+309A */ - { 0xa5c4, 0xa5fd }, /* 0x1257D = 0x12544 U+309A */ - { 0xa5c8, 0xa5fe }, /* 0x1257E = 0x12548 U+309A */ - { 0xa6f5, 0xa6f8 }, /* 0x12678 = 0x12675 U+309A */ -}; - -static int -euc_jisx0213_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned short lasttwo = conv->ostate; - - if (lasttwo) { - /* Attempt to combine the last character with this one. */ - unsigned int idx; - unsigned int len; - - if (wc == 0x02e5) - idx = euc_jisx0213_comp_table02e5_idx, - len = euc_jisx0213_comp_table02e5_len; - else if (wc == 0x02e9) - idx = euc_jisx0213_comp_table02e9_idx, - len = euc_jisx0213_comp_table02e9_len; - else if (wc == 0x0300) - idx = euc_jisx0213_comp_table0300_idx, - len = euc_jisx0213_comp_table0300_len; - else if (wc == 0x0301) - idx = euc_jisx0213_comp_table0301_idx, - len = euc_jisx0213_comp_table0301_len; - else if (wc == 0x309a) - idx = euc_jisx0213_comp_table309a_idx, - len = euc_jisx0213_comp_table309a_len; - else - goto not_combining; - - do - if (euc_jisx0213_comp_table_data[idx].base == lasttwo) - break; - while (++idx, --len > 0); - - if (len > 0) { - /* Output the combined character. */ - if (n >= 2) { - lasttwo = euc_jisx0213_comp_table_data[idx].composed; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - conv->ostate = 0; - return 2; - } else - return RET_TOOSMALL; - } - - not_combining: - /* Output the buffered character. */ - if (n < 2) - return RET_TOOSMALL; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - r += 2; - count = 2; - } - - if (wc < 0x80) { - /* Plain ASCII character. */ - if (n > count) { - r[0] = (unsigned char) wc; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else if (wc >= 0xff61 && wc <= 0xff9f) { - /* Half-width katakana. */ - if (n >= count+2) { - r[0] = 0x8e; - r[1] = wc - 0xfec0; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } else { - unsigned short jch = ucs4_to_jisx0213(wc); - if (jch != 0) { - if (jch & 0x0080) { - /* A possible match in comp_table_data. We have to buffer it. */ - /* We know it's a JISX 0213 plane 1 character. */ - if (jch & 0x8000) abort(); - conv->ostate = jch | 0x8080; - return count+0; - } - if (jch & 0x8000) { - /* JISX 0213 plane 2. */ - if (n >= count+3) { - r[0] = 0x8f; - r[1] = (jch >> 8) | 0x80; - r[2] = (jch & 0xff) | 0x80; - conv->ostate = 0; - return count+3; - } else - return RET_TOOSMALL; - } else { - /* JISX 0213 plane 1. */ - if (n >= count+2) { - r[0] = (jch >> 8) | 0x80; - r[1] = (jch & 0xff) | 0x80; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - } - return RET_ILUNI; - } -} - -static int -euc_jisx0213_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t lasttwo = conv->ostate; - - if (lasttwo) { - if (n < 2) - return RET_TOOSMALL; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/euc_jp.h b/jni/parted/libiconv/lib/euc_jp.h deleted file mode 100755 index f147c47..0000000 --- a/jni/parted/libiconv/lib/euc_jp.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * EUC-JP - */ - -static int -euc_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (JIS X 0208) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - if (c < 0xf5) { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2-0x80; - return jisx0208_mbtowc(conv,pwc,buf,2); - } else - return RET_ILSEQ; - } else { - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - *pwc = 0xe000 + 94*(c-0xf5) + (c2-0xa1); - return 2; - } else - return RET_ILSEQ; - } - } - /* Code set 2 (half-width katakana) */ - if (c == 0x8e) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xe0) { - int ret = jisx0201_mbtowc(conv,pwc,s+1,n-1); - if (ret == RET_ILSEQ) - return RET_ILSEQ; - if (ret != 1) abort(); - return 2; - } else - return RET_ILSEQ; - } - } - /* Code set 3 (JIS X 0212-1990) */ - if (c == 0x8f) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - if (n < 3) - return RET_TOOFEW(0); - if (c2 < 0xf5) { - unsigned char c3 = s[2]; - if (c3 >= 0xa1 && c3 < 0xff) { - unsigned char buf[2]; - int ret; - buf[0] = c2-0x80; buf[1] = c3-0x80; - ret = jisx0212_mbtowc(conv,pwc,buf,2); - if (ret == RET_ILSEQ) - return RET_ILSEQ; - if (ret != 2) abort(); - return 3; - } else - return RET_ILSEQ; - } else { - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - unsigned char c3 = s[2]; - if (c3 >= 0xa1 && c3 < 0xff) { - *pwc = 0xe3ac + 94*(c2-0xf5) + (c3-0xa1); - return 3; - } else - return RET_ILSEQ; - } - } else - return RET_ILSEQ; - } - } - return RET_ILSEQ; -} - -static int -euc_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII or JIS X 0201-1976 Roman) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (JIS X 0208) */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]+0x80; - r[1] = buf[1]+0x80; - return 2; - } - - /* Code set 2 (half-width katakana) */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI && buf[0] >= 0x80) { - if (ret != 1) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = 0x8e; - r[1] = buf[0]; - return 2; - } - - /* Code set 3 (JIS X 0212-1990) */ - ret = jisx0212_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 3) - return RET_TOOSMALL; - r[0] = 0x8f; - r[1] = buf[0]+0x80; - r[2] = buf[1]+0x80; - return 3; - } - - /* Extra compatibility with Shift_JIS. */ - if (wc == 0x00a5) { - r[0] = 0x5c; - return 1; - } - if (wc == 0x203e) { - r[0] = 0x7e; - return 1; - } - - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - if (wc >= 0xe000 && wc < 0xe758) { - if (wc < 0xe3ac) { - unsigned char c1, c2; - if (n < 2) - return RET_TOOSMALL; - c1 = (unsigned int) (wc - 0xe000) / 94; - c2 = (unsigned int) (wc - 0xe000) % 94; - r[0] = c1+0xf5; - r[1] = c2+0xa1; - return 2; - } else { - unsigned char c1, c2; - if (n < 3) - return RET_TOOSMALL; - c1 = (unsigned int) (wc - 0xe3ac) / 94; - c2 = (unsigned int) (wc - 0xe3ac) % 94; - r[0] = 0x8f; - r[1] = c1+0xf5; - r[2] = c2+0xa1; - return 3; - } - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/euc_kr.h b/jni/parted/libiconv/lib/euc_kr.h deleted file mode 100755 index 2687f88..0000000 --- a/jni/parted/libiconv/lib/euc_kr.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2007, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * EUC-KR - */ - -/* Specification: RFC 1557 */ - -static int -euc_kr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII or KS C 5636-1993) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (KS C 5601-1992, now KS X 1001:2002) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2-0x80; - return ksc5601_mbtowc(conv,pwc,buf,2); - } else - return RET_ILSEQ; - } - } - return RET_ILSEQ; -} - -static int -euc_kr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII or KS C 5636-1993) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (KS C 5601-1992, now KS X 1001:2002) */ - ret = ksc5601_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]+0x80; - r[1] = buf[1]+0x80; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/euc_tw.h b/jni/parted/libiconv/lib/euc_tw.h deleted file mode 100755 index 4fd4e14..0000000 --- a/jni/parted/libiconv/lib/euc_tw.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * EUC-TW - */ - -static int -euc_tw_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - /* Code set 0 (ASCII) */ - if (c < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - /* Code set 1 (CNS 11643-1992 Plane 1) */ - if (c >= 0xa1 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 < 0xff) { - unsigned char buf[2]; - buf[0] = c-0x80; buf[1] = c2-0x80; - return cns11643_1_mbtowc(conv,pwc,buf,2); - } else - return RET_ILSEQ; - } - } - /* Code set 2 (CNS 11643-1992 Planes 1-16) */ - if (c == 0x8e) { - if (n < 4) - return RET_TOOFEW(0); - { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 <= 0xb0) { - unsigned char c3 = s[2]; - unsigned char c4 = s[3]; - if (c3 >= 0xa1 && c3 < 0xff && c4 >= 0xa1 && c4 < 0xff) { - unsigned char buf[2]; - int ret; - buf[0] = c3-0x80; buf[1] = c4-0x80; - switch (c2-0xa0) { - case 1: ret = cns11643_1_mbtowc(conv,pwc,buf,2); break; - case 2: ret = cns11643_2_mbtowc(conv,pwc,buf,2); break; - case 3: ret = cns11643_3_mbtowc(conv,pwc,buf,2); break; - case 4: ret = cns11643_4_mbtowc(conv,pwc,buf,2); break; - case 5: ret = cns11643_5_mbtowc(conv,pwc,buf,2); break; - case 6: ret = cns11643_6_mbtowc(conv,pwc,buf,2); break; - case 7: ret = cns11643_7_mbtowc(conv,pwc,buf,2); break; - case 15: ret = cns11643_15_mbtowc(conv,pwc,buf,2); break; - default: return RET_ILSEQ; - } - if (ret == RET_ILSEQ) - return RET_ILSEQ; - if (ret != 2) abort(); - return 4; - } - } - } - } - return RET_ILSEQ; -} - -static int -euc_tw_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[3]; - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - ret = cns11643_wctomb(conv,buf,wc,3); - if (ret != RET_ILUNI) { - if (ret != 3) abort(); - - /* Code set 1 (CNS 11643-1992 Plane 1) */ - if (buf[0] == 1) { - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[1]+0x80; - r[1] = buf[2]+0x80; - return 2; - } - - /* Code set 2 (CNS 11643-1992 Planes 1-16) */ - if (n < 4) - return RET_TOOSMALL; - r[0] = 0x8e; - r[1] = buf[0]+0xa0; - r[2] = buf[1]+0x80; - r[3] = buf[2]+0x80; - return 4; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/flags.h b/jni/parted/libiconv/lib/flags.h deleted file mode 100755 index 2bb0388..0000000 --- a/jni/parted/libiconv/lib/flags.h +++ /dev/null @@ -1,211 +0,0 @@ -/* Generated automatically by genflags. */ - -/* Set if the encoding can encode - the acute and grave accents U+00B4 and U+0060. */ -#define HAVE_ACCENTS 1 - -/* Set if the encoding can encode - the single quotation marks U+2018 and U+2019. */ -#define HAVE_QUOTATION_MARKS 2 - -/* Set if the encoding can encode - the double-width Hangul letters (Jamo) U+3131 to U+3163. */ -#define HAVE_HANGUL_JAMO 4 - -#define ei_ascii_oflags (0) -#define ei_utf8_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs2be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs2le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs4_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs4be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs4le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf16_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf16be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf16le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf32_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf32be_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf32le_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_utf7_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs2internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs2swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs4internal_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_ucs4swapped_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_c99_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_java_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_iso8859_1_oflags (HAVE_ACCENTS) -#define ei_iso8859_2_oflags (HAVE_ACCENTS) -#define ei_iso8859_3_oflags (HAVE_ACCENTS) -#define ei_iso8859_4_oflags (HAVE_ACCENTS) -#define ei_iso8859_5_oflags (0) -#define ei_iso8859_6_oflags (0) -#define ei_iso8859_7_oflags (HAVE_QUOTATION_MARKS) -#define ei_iso8859_8_oflags (HAVE_ACCENTS) -#define ei_iso8859_9_oflags (HAVE_ACCENTS) -#define ei_iso8859_10_oflags (0) -#define ei_iso8859_11_oflags (0) -#define ei_iso8859_13_oflags (0) -#define ei_iso8859_14_oflags (0) -#define ei_iso8859_15_oflags (0) -#define ei_iso8859_16_oflags (0) -#define ei_koi8_r_oflags (0) -#define ei_koi8_u_oflags (0) -#define ei_koi8_ru_oflags (0) -#define ei_cp1250_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1251_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp1252_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1253_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp1254_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1255_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1256_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1257_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1258_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp850_oflags (HAVE_ACCENTS) -#define ei_cp862_oflags (0) -#define ei_cp866_oflags (0) -#define ei_cp1131_oflags (0) -#define ei_mac_roman_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_mac_centraleurope_oflags (HAVE_QUOTATION_MARKS) -#define ei_mac_iceland_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_mac_croatian_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_mac_romania_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_mac_cyrillic_oflags (HAVE_QUOTATION_MARKS) -#define ei_mac_ukraine_oflags (HAVE_QUOTATION_MARKS) -#define ei_mac_greek_oflags (HAVE_QUOTATION_MARKS) -#define ei_mac_turkish_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_mac_hebrew_oflags (HAVE_QUOTATION_MARKS) -#define ei_mac_arabic_oflags (0) -#define ei_mac_thai_oflags (HAVE_QUOTATION_MARKS) -#define ei_hp_roman8_oflags (HAVE_ACCENTS) -#define ei_nextstep_oflags (HAVE_ACCENTS) -#define ei_armscii_8_oflags (0) -#define ei_georgian_academy_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_georgian_ps_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_koi8_t_oflags (HAVE_QUOTATION_MARKS) -#define ei_pt154_oflags (HAVE_QUOTATION_MARKS) -#define ei_rk1048_oflags (HAVE_QUOTATION_MARKS) -#define ei_mulelao_oflags (0) -#define ei_cp1133_oflags (0) -#define ei_tis620_oflags (0) -#define ei_cp874_oflags (HAVE_QUOTATION_MARKS) -#define ei_viscii_oflags (0) -#define ei_tcvn_oflags (HAVE_ACCENTS) -#define ei_iso646_jp_oflags (0) -#define ei_jisx0201_oflags (0) -#define ei_jisx0208_oflags (HAVE_QUOTATION_MARKS) -#define ei_jisx0212_oflags (0) -#define ei_iso646_cn_oflags (0) -#define ei_gb2312_oflags (HAVE_QUOTATION_MARKS) -#define ei_isoir165_oflags (HAVE_QUOTATION_MARKS) -#define ei_ksc5601_oflags (HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_euc_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_sjis_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp932_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_iso2022_jp_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_iso2022_jp1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_iso2022_jp2_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_iso2022_jpms_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_euc_cn_oflags (HAVE_QUOTATION_MARKS) -#define ei_ces_gbk_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp936_oflags (HAVE_QUOTATION_MARKS) -#define ei_gb18030_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_iso2022_cn_oflags (HAVE_QUOTATION_MARKS) -#define ei_iso2022_cn_ext_oflags (HAVE_QUOTATION_MARKS) -#define ei_hz_oflags (HAVE_QUOTATION_MARKS) -#define ei_euc_tw_oflags (HAVE_QUOTATION_MARKS) -#define ei_ces_big5_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp950_oflags (HAVE_QUOTATION_MARKS) -#define ei_big5hkscs1999_oflags (HAVE_QUOTATION_MARKS) -#define ei_big5hkscs2001_oflags (HAVE_QUOTATION_MARKS) -#define ei_big5hkscs2004_oflags (HAVE_QUOTATION_MARKS) -#define ei_big5hkscs2008_oflags (HAVE_QUOTATION_MARKS) -#define ei_euc_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_cp949_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_johab_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_iso2022_kr_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS | HAVE_HANGUL_JAMO) -#define ei_cp856_oflags (HAVE_ACCENTS) -#define ei_cp922_oflags (HAVE_ACCENTS) -#define ei_cp943_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_cp1046_oflags (0) -#define ei_cp1124_oflags (0) -#define ei_cp1129_oflags (0) -#define ei_cp1161_oflags (0) -#define ei_cp1162_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp1163_oflags (0) -#define ei_dec_kanji_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_dec_hanyu_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp437_oflags (0) -#define ei_cp737_oflags (0) -#define ei_cp775_oflags (0) -#define ei_cp852_oflags (HAVE_ACCENTS) -#define ei_cp853_oflags (HAVE_ACCENTS) -#define ei_cp855_oflags (0) -#define ei_cp857_oflags (HAVE_ACCENTS) -#define ei_cp858_oflags (HAVE_ACCENTS) -#define ei_cp860_oflags (0) -#define ei_cp861_oflags (0) -#define ei_cp863_oflags (HAVE_ACCENTS) -#define ei_cp864_oflags (0) -#define ei_cp865_oflags (0) -#define ei_cp869_oflags (HAVE_QUOTATION_MARKS) -#define ei_cp1125_oflags (0) -#define ei_ebcdic037_oflags (HAVE_ACCENTS) -#define ei_ebcdic273_oflags (HAVE_ACCENTS) -#define ei_ebcdic277_oflags (HAVE_ACCENTS) -#define ei_ebcdic278_oflags (HAVE_ACCENTS) -#define ei_ebcdic280_oflags (HAVE_ACCENTS) -#define ei_ebcdic282_oflags (HAVE_ACCENTS) -#define ei_ebcdic284_oflags (HAVE_ACCENTS) -#define ei_ebcdic285_oflags (HAVE_ACCENTS) -#define ei_ebcdic297_oflags (HAVE_ACCENTS) -#define ei_ebcdic423_oflags (HAVE_ACCENTS) -#define ei_ebcdic424_oflags (HAVE_ACCENTS) -#define ei_ebcdic425_oflags (0) -#define ei_ebcdic500_oflags (HAVE_ACCENTS) -#define ei_ebcdic838_oflags (0) -#define ei_ebcdic870_oflags (HAVE_ACCENTS) -#define ei_ebcdic871_oflags (HAVE_ACCENTS) -#define ei_ebcdic875_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_ebcdic880_oflags (0) -#define ei_ebcdic905_oflags (HAVE_ACCENTS) -#define ei_ebcdic924_oflags (0) -#define ei_ebcdic1025_oflags (0) -#define ei_ebcdic1026_oflags (HAVE_ACCENTS) -#define ei_ebcdic1047_oflags (HAVE_ACCENTS) -#define ei_ebcdic1097_oflags (0) -#define ei_ebcdic1112_oflags (0) -#define ei_ebcdic1122_oflags (HAVE_ACCENTS) -#define ei_ebcdic1123_oflags (0) -#define ei_ebcdic1130_oflags (0) -#define ei_ebcdic1132_oflags (0) -#define ei_ebcdic1137_oflags (0) -#define ei_ebcdic1140_oflags (HAVE_ACCENTS) -#define ei_ebcdic1141_oflags (HAVE_ACCENTS) -#define ei_ebcdic1142_oflags (HAVE_ACCENTS) -#define ei_ebcdic1143_oflags (HAVE_ACCENTS) -#define ei_ebcdic1144_oflags (HAVE_ACCENTS) -#define ei_ebcdic1145_oflags (HAVE_ACCENTS) -#define ei_ebcdic1146_oflags (HAVE_ACCENTS) -#define ei_ebcdic1147_oflags (HAVE_ACCENTS) -#define ei_ebcdic1148_oflags (HAVE_ACCENTS) -#define ei_ebcdic1149_oflags (HAVE_ACCENTS) -#define ei_ebcdic1153_oflags (HAVE_ACCENTS) -#define ei_ebcdic1154_oflags (0) -#define ei_ebcdic1155_oflags (HAVE_ACCENTS) -#define ei_ebcdic1156_oflags (0) -#define ei_ebcdic1157_oflags (HAVE_ACCENTS) -#define ei_ebcdic1158_oflags (0) -#define ei_ebcdic1160_oflags (0) -#define ei_ebcdic1164_oflags (0) -#define ei_ebcdic1165_oflags (HAVE_ACCENTS) -#define ei_ebcdic1166_oflags (0) -#define ei_ebcdic4971_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_ebcdic12712_oflags (HAVE_ACCENTS) -#define ei_ebcdic16804_oflags (0) -#define ei_euc_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_shift_jisx0213_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_iso2022_jp3_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) -#define ei_big5_2003_oflags (HAVE_QUOTATION_MARKS) -#define ei_tds565_oflags (0) -#define ei_atarist_oflags (HAVE_ACCENTS) -#define ei_riscos1_oflags (HAVE_ACCENTS | HAVE_QUOTATION_MARKS) diff --git a/jni/parted/libiconv/lib/flushwc.h b/jni/parted/libiconv/lib/flushwc.h deleted file mode 100755 index ec47fee..0000000 --- a/jni/parted/libiconv/lib/flushwc.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2001 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -#ifndef _FLUSHWC_H -#define _FLUSHWC_H - -static int -normal_flushwc (conv_t conv, ucs4_t *pwc) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 1; - } else - return 0; -} - -#endif /* _FLUSHWC_H */ diff --git a/jni/parted/libiconv/lib/gb12345.h b/jni/parted/libiconv/lib/gb12345.h deleted file mode 100755 index b8d1eb6..0000000 --- a/jni/parted/libiconv/lib/gb12345.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GB/T 12345-1990 - */ - -/* - * GB/T 12345-1990 is a traditional chinese counterpart of GB 2312-1986. - * According to the unicode.org tables: - * 2146 characters have been changed to their traditional counterpart, - * 103 characters have been added, no characters have been removed. - * Therefore we use an auxiliary table, which contains only the changes. - */ - -#include "gb12345ext.h" - -static int -gb12345_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - int ret; - - /* The gb12345ext table overrides some entries in the gb2312 table. */ - /* Try the GB12345 extensions -> Unicode table. */ - ret = gb12345ext_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - /* Try the GB2312 -> Unicode table. */ - ret = gb2312_mbtowc(conv,pwc,s,n); - return ret; -} - -static int -gb12345_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int ret; - - /* The gb12345ext table overrides some entries in the gb2312 table. */ - /* Try the Unicode -> GB12345 extensions table. */ - ret = gb12345ext_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - /* Try the Unicode -> GB2312 table, and check that the resulting GB2312 - byte sequence is not overridden by the GB12345 extensions table. */ - ret = gb2312_wctomb(conv,r,wc,n); - if (ret == 2 && gb12345ext_mbtowc(conv,&wc,r,2) == 2) - return RET_ILUNI; - else - return ret; -} diff --git a/jni/parted/libiconv/lib/gb12345ext.h b/jni/parted/libiconv/lib/gb12345ext.h deleted file mode 100755 index 1e9e2fd..0000000 --- a/jni/parted/libiconv/lib/gb12345ext.h +++ /dev/null @@ -1,1795 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GB/T 12345.1990-0 extensions - */ - -static const unsigned short gb12345ext_2uni_page21[12] = { - /* 0x21 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x2225, -}; -static const unsigned short gb12345ext_2uni_page26[85] = { - /* 0x26 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfe35, - 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, - 0xfe42, 0xfe43, 0xfe44, 0xfffd, 0xfffd, 0xfe3b, 0xfe3c, 0xfe37, - 0xfe38, 0xfe31, 0xfffd, 0xfe33, 0xfe34, -}; -static const unsigned short gb12345ext_2uni_page28[32] = { - /* 0x28 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x0251, 0x1e3f, 0x0144, 0x0148, 0x01f9, 0x0261, -}; -static const unsigned short gb12345ext_2uni_page30[6871] = { - /* 0x30 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x769a, - 0xfffd, 0x85f9, 0xfffd, 0xfffd, 0x7919, 0x611b, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x9aaf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8956, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x58e9, 0xfffd, 0x7f77, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x64fa, 0xfffd, 0x6557, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9812, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x8fa6, 0x7d46, 0xfffd, 0x5e6b, 0xfffd, - 0xfffd, 0xfffd, 0x7d81, 0xfffd, 0xfffd, 0xfffd, 0x938a, 0xfffd, - 0x8b17, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x31 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fd, 0x5bf6, 0xfffd, 0x5831, - 0xfffd, 0xfffd, 0x9b91, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8f29, 0xfffd, 0x8c9d, 0x92c7, 0xfffd, 0x72fd, 0x5099, - 0x618a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7db3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x7b46, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7562, 0x6583, - 0xfffd, 0x5e63, 0xfffd, 0xfffd, 0x9589, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x908a, 0x7de8, - 0x8cb6, 0xfffd, 0xfffd, 0x8b8a, 0xfffd, 0xfffd, 0x8faf, 0x8fae, - 0xfffd, 0x6a19, 0xfffd, 0xfffd, 0xfffd, 0x9c49, 0xfffd, 0xfffd, - 0x765f, 0xfffd, 0xfffd, 0x7015, 0x6ff1, 0x8cd3, 0x64ef, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9905, 0xfffd, - /* 0x32 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64a5, 0x9262, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9251, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99c1, 0xfffd, 0xfffd, 0xfffd, - 0x88dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ca1, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53c3, 0x8836, 0x6b98, - 0x615a, 0x6158, 0x71e6, 0x84bc, 0x8259, 0x5009, 0x6ec4, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x53a0, 0xfffd, 0x5074, - 0xfffd, 0x6e2c, 0x5c64, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a6b, 0xfffd, - 0xfffd, 0xfffd, 0x6519, 0x647b, 0x87ec, 0x995e, 0x8b92, 0x7e8f, - 0x93df, 0x7523, 0x95e1, 0x986b, 0xfffd, 0xfffd, - /* 0x33 */ - 0x5834, 0x5617, 0xfffd, 0x9577, 0x511f, 0x8178, 0x5ee0, 0xfffd, - 0x66a2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9214, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eca, 0xfffd, 0xfffd, 0xfffd, - 0x5fb9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5875, 0xfffd, 0xfffd, - 0xfffd, 0x9673, 0xfffd, 0x896f, 0xfffd, 0x7a31, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61f2, 0xfffd, 0x8aa0, 0xfffd, - 0xfffd, 0x9a01, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x9072, 0xfffd, 0x99b3, 0xfffd, 0x9f52, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x71be, 0xfffd, 0x885d, 0x87f2, 0xfffd, 0x5bf5, - 0xfffd, 0xfffd, 0x7587, 0x8e8a, 0xfffd, 0xfffd, 0x7c4c, 0xfffd, - 0x7da2, 0xfffd, 0x919c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x92e4, 0x96db, 0xfffd, 0xfffd, 0xfffd, - /* 0x34 */ - 0x790e, 0x5132, 0xfffd, 0xfffd, 0x89f8, 0x8655, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x50b3, 0xfffd, 0xfffd, 0xfffd, 0x7621, 0xfffd, - 0xfffd, 0xfffd, 0x95d6, 0x5275, 0xfffd, 0xfffd, 0xfffd, 0x9318, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d14, 0xfffd, - 0xfffd, 0x7dbd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8fad, 0xfffd, - 0xfffd, 0x8a5e, 0xfffd, 0xfffd, 0x8cdc, 0xfffd, 0x8070, 0xfffd, - 0xfffd, 0xfffd, 0x5f9e, 0x53e2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8ea5, 0xfffd, 0x7ac4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x932f, 0xfffd, 0x9054, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e36, - 0xfffd, 0xfffd, 0x8cb8, 0xfffd, 0xfffd, 0xfffd, - /* 0x35 */ - 0xfffd, 0xfffd, 0x64d4, 0xfffd, 0x55ae, 0x9132, 0x64a3, 0x81bd, - 0xfffd, 0xfffd, 0xfffd, 0x619a, 0xfffd, 0x8a95, 0x5f48, 0xfffd, - 0x7576, 0x64cb, 0x9ee8, 0x8569, 0x6a94, 0xfffd, 0x6417, 0xfffd, - 0xfffd, 0x5cf6, 0x79b1, 0x5c0e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71c8, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9127, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6575, - 0xfffd, 0xfffd, 0x6ecc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x905e, 0x7de0, 0x985b, 0xfffd, - 0xfffd, 0xfffd, 0x9ede, 0xfffd, 0xfffd, 0x588a, 0x96fb, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fb1, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91e3, 0x8abf, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8adc, 0xfffd, - /* 0x36 */ - 0xfffd, 0xfffd, 0xfffd, 0x91d8, 0x9802, 0xfffd, 0x9320, 0xfffd, - 0x8a02, 0xfffd, 0x6771, 0xfffd, 0xfffd, 0xfffd, 0x52d5, 0x68df, - 0xfffd, 0xfffd, 0x51cd, 0xfffd, 0xfffd, 0xfffd, 0x9b25, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x72a2, 0x7368, - 0x8b80, 0xfffd, 0xfffd, 0x8ced, 0xfffd, 0x934d, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x935b, 0xfffd, 0x65b7, 0x7dde, - 0xfffd, 0xfffd, 0x968a, 0x5c0d, 0xfffd, 0x5678, 0xfffd, 0xfffd, - 0x9813, 0xfffd, 0x920d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x596a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x58ae, 0xfffd, 0xfffd, 0x9d5d, 0xfffd, 0x984d, 0x8a1b, 0xfffd, - 0x60e1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9913, 0xfffd, 0xfffd, - 0x5152, 0xfffd, 0x723e, 0x990c, 0xfffd, 0xfffd, - /* 0x37 */ - 0x8cb3, 0x767c, 0x7f70, 0xfffd, 0xfffd, 0xfffd, 0x95a5, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x792c, 0x91e9, - 0xfffd, 0xfffd, 0x7169, 0xfffd, 0xfffd, 0x7bc4, 0x8ca9, 0xfffd, - 0x98ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8a2a, 0x7d21, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x98db, 0xfffd, 0xfffd, 0x8ab9, 0xfffd, 0xfffd, 0x5ee2, 0xfffd, - 0x8cbb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d1b, 0x58b3, - 0xfffd, 0xfffd, 0xfffd, 0x596e, 0xfffd, 0xfffd, 0x61a4, 0x7cde, - 0x8c50, 0xfffd, 0x6953, 0xfffd, 0xfffd, 0x92d2, 0x98a8, 0x760b, - 0xfffd, 0xfffd, 0x99ae, 0x7e2b, 0x8af7, 0xfffd, 0x9cf3, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x819a, 0xfffd, 0xfffd, 0xfffd, 0x8f3b, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x38 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x64ab, 0x8f14, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8ce6, 0x5fa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8ca0, 0xfffd, 0x8a03, 0xfffd, 0x5a66, 0x7e1b, 0xfffd, - 0xfffd, 0xfffd, 0x8a72, 0xfffd, 0xfffd, 0x9223, 0x84cb, 0xfffd, - 0x5e79, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8d95, 0xfffd, - 0xfffd, 0xfffd, 0x8d1b, 0x5ca1, 0x525b, 0x92fc, 0xfffd, 0xfffd, - 0x7db1, 0x5d17, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x93ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x64f1, 0xfffd, 0x9d3f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x95a3, 0xfffd, 0x927b, 0x500b, 0xfffd, 0x7d66, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x39 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f94, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x978f, 0xfffd, 0xfffd, - 0x8ca2, 0xfffd, 0x920e, 0xfffd, 0x6e9d, 0xfffd, 0xfffd, 0xfffd, - 0x69cb, 0x8cfc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8831, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9867, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x526e, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x95dc, - 0xfffd, 0xfffd, 0x89c0, 0xfffd, 0x9928, 0xfffd, 0x6163, 0xfffd, - 0x8cab, 0xfffd, 0x5ee3, 0xfffd, 0xfffd, 0x898f, 0xfffd, 0xfffd, - 0x6b78, 0x9f9c, 0x95a8, 0x8ecc, 0xfffd, 0x8a6d, 0xfffd, 0xfffd, - 0x6ac3, 0xfffd, 0x8cb4, 0x528a, 0x8f25, 0xfffd, 0xfffd, 0x934b, - 0xfffd, 0x570b, 0xfffd, 0xfffd, 0x904e, 0xfffd, - /* 0x3a */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ed, 0xfffd, - 0xfffd, 0xfffd, 0x97d3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x6f22, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x865f, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x95a1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9db4, 0x8cc0, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x8f5f, 0xfffd, 0xfffd, 0xfffd, 0x9d3b, - 0xfffd, 0xfffd, 0xfffd, 0x7d05, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x5f8c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58fa, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x3b */ - 0xfffd, 0xfffd, 0xfffd, 0x8b77, 0xfffd, 0x6eec, 0xfffd, 0xfffd, - 0x5629, 0x83ef, 0xfffd, 0xfffd, 0x756b, 0x5283, 0xfffd, 0x8a71, - 0xfffd, 0xfffd, 0x61f7, 0xfffd, 0x58de, 0x6b61, 0x74b0, 0xfffd, - 0x9084, 0x7de9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8b0a, 0xfffd, 0x63ee, 0x8f1d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cc4, 0x7a62, - 0x6703, 0x71f4, 0x532f, 0x8af1, 0x8aa8, 0x7e6a, 0x8477, 0xfffd, - 0xfffd, 0xfffd, 0x6e3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7372, 0xfffd, 0xfffd, 0xfffd, 0x8ca8, 0x798d, 0x64ca, 0xfffd, - 0xfffd, 0x6a5f, 0xfffd, 0xfffd, 0x7a4d, 0xfffd, - /* 0x3c */ - 0xfffd, 0x9951, 0xfffd, 0xfffd, 0x8b4f, 0x9dc4, 0xfffd, 0x7e3e, - 0x7ddd, 0xfffd, 0x6975, 0xfffd, 0x8f2f, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d1a, 0x64e0, 0x5e7e, - 0xfffd, 0xfffd, 0x858a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x5291, 0xfffd, 0x6fdf, 0xfffd, 0xfffd, 0x8a08, 0x8a18, 0xfffd, - 0xfffd, 0x969b, 0xfffd, 0x7e7c, 0x7d00, 0xfffd, 0xfffd, 0x593e, - 0xfffd, 0xfffd, 0xfffd, 0x83a2, 0x9830, 0x8cc8, 0xfffd, 0x9240, - 0xfffd, 0xfffd, 0x50f9, 0xfffd, 0x99d5, 0xfffd, 0x6bb2, 0x76e3, - 0x5805, 0xfffd, 0x7b8b, 0x9593, 0xfffd, 0xfffd, 0xfffd, 0x8271, - 0xfffd, 0x7dd8, 0x7e6d, 0x6aa2, 0xfffd, 0xfffd, 0x9e7c, 0x63c0, - 0x64bf, 0x7c21, 0x5109, 0xfffd, 0xfffd, 0x85a6, 0x6abb, 0x9452, - 0x8e10, 0x8ce4, 0x898b, 0x9375, 0xfffd, 0xfffd, - /* 0x3d */ - 0xfffd, 0x8266, 0x528d, 0x991e, 0x6f38, 0x6ffa, 0x6f97, 0xfffd, - 0xfffd, 0xfffd, 0x5c07, 0x6f3f, 0xfffd, 0xfffd, 0x8523, 0x69f3, - 0x596c, 0x8b1b, 0xfffd, 0x91ac, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x81a0, 0xfffd, 0xfffd, 0x6f86, 0x9a55, 0x5b0c, 0xfffd, - 0x652a, 0x9278, 0x77ef, 0x50e5, 0xfffd, 0xfffd, 0xfffd, 0x9903, - 0x7e73, 0x7d5e, 0xfffd, 0xfffd, 0xfffd, 0x8f4e, 0x8f03, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x968e, 0xfffd, - 0xfffd, 0x7bc0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f54, - 0x7d50, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8aa1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7dca, 0x9326, 0x50c5, 0x8b39, 0x9032, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71fc, 0xfffd, - /* 0x3e */ - 0x76e1, 0x52c1, 0xfffd, 0xfffd, 0x8396, 0xfffd, 0xfffd, 0x9be8, - 0xfffd, 0x9a5a, 0xfffd, 0xfffd, 0x7d93, 0xfffd, 0xfffd, 0xfffd, - 0x9838, 0xfffd, 0xfffd, 0xfffd, 0x93e1, 0x5f91, 0x75d9, 0xfffd, - 0xfffd, 0x7af6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cfe, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x820a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x99d2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8209, 0xfffd, 0xfffd, 0xfffd, 0x64da, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x92f8, 0xfffd, 0xfffd, 0x61fc, 0xfffd, 0x5287, 0xfffd, - 0x9d51, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d79, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x89ba, 0xfffd, 0x8a23, 0x7d76, - 0xfffd, 0xfffd, 0x921e, 0x8ecd, 0xfffd, 0xfffd, - /* 0x3f */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99ff, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x958b, 0xfffd, 0xfffd, 0x51f1, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9846, 0xfffd, 0x6bbb, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ab2, 0xfffd, 0xfffd, - 0x58be, 0x61c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x6473, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x5eab, 0x8932, 0x8a87, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x584a, 0xfffd, 0x5108, 0xfffd, 0x5bec, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x7926, 0xfffd, 0x66e0, 0xfffd, 0x8667, 0xfffd, - 0x5dcb, 0x7aba, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x40 */ - 0x994b, 0xfffd, 0x6f70, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x64f4, 0xfffd, 0x95ca, 0xfffd, 0xfffd, 0xfffd, 0x881f, 0x81d8, - 0xfffd, 0xfffd, 0x840a, 0x4f86, 0x8cf4, 0x85cd, 0xfffd, 0x6b04, - 0x6514, 0x7c43, 0x95cc, 0x862d, 0x703e, 0x8b95, 0x652c, 0x89bd, - 0x61f6, 0x7e9c, 0x721b, 0x6feb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6488, 0x52de, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6f87, 0xfffd, 0x6a02, 0xfffd, 0x9433, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x58d8, 0xfffd, 0xfffd, 0x985e, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7c6c, 0xfffd, 0x96e2, 0x7055, 0xfffd, 0xfffd, 0x88cf, 0x9bc9, - 0x79ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9e97, 0x53b2, 0x52f5, - 0x792b, 0x6b77, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x41 */ - 0xfffd, 0xfffd, 0xfffd, 0x701d, 0x96b8, 0xfffd, 0xfffd, 0xfffd, - 0x5006, 0x806f, 0x84ee, 0x9023, 0x942e, 0xfffd, 0x6190, 0x6f23, - 0x7c3e, 0x6582, 0x81c9, 0x93c8, 0x6200, 0x7149, 0x7df4, 0x7ce7, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5169, 0x8f1b, 0xfffd, 0xfffd, - 0xfffd, 0x8ad2, 0xfffd, 0xfffd, 0xfffd, 0x7642, 0xfffd, 0xfffd, - 0x907c, 0xfffd, 0xfffd, 0xfffd, 0x9410, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7375, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x81e8, 0x9130, 0x9c57, 0xfffd, 0xfffd, 0x8cc3, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9f61, 0x9234, 0xfffd, 0xfffd, 0xfffd, - 0x9748, 0xfffd, 0x5dba, 0x9818, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x993e, 0xfffd, 0x5289, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9f8d, 0x807e, 0x56a8, 0x7c60, 0xfffd, - /* 0x42 */ - 0xfffd, 0x58df, 0x650f, 0x96b4, 0x6a13, 0x5a41, 0x645f, 0x7c0d, - 0xfffd, 0xfffd, 0x8606, 0x76e7, 0x9871, 0x5eec, 0x7210, 0x64c4, - 0x6ef7, 0x865c, 0x9b6f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8cc2, - 0xfffd, 0xfffd, 0xfffd, 0x9332, 0x9678, 0xfffd, 0x9a62, 0xfffd, - 0x92c1, 0xfffd, 0xfffd, 0xfffd, 0x5c62, 0x7e37, 0x616e, 0xfffd, - 0xfffd, 0xfffd, 0x6ffe, 0x7dd1, 0x5dd2, 0x6523, 0x5b7f, 0x7064, - 0xfffd, 0x4e82, 0xfffd, 0xfffd, 0x6384, 0x8f2a, 0x502b, 0x4f96, - 0x6dea, 0x7db8, 0x8ad6, 0x863f, 0xfffd, 0x7f85, 0x908f, 0x947c, - 0x7c6e, 0x9a3e, 0xfffd, 0xfffd, 0xfffd, 0x99f1, 0x7d61, 0x5abd, - 0xfffd, 0x746a, 0x78bc, 0x879e, 0x99ac, 0x99e1, 0xfffd, 0x55ce, - 0xfffd, 0x8cb7, 0x9ea5, 0x8ce3, 0x9081, 0xfffd, 0x779e, 0x9945, - 0x883b, 0x6eff, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x43 */ - 0x8b3e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9328, 0xfffd, 0xfffd, 0x925a, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8cbf, 0x9ebd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9382, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9580, 0x60b6, 0x5011, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9333, 0xfffd, 0x5922, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b0e, 0x5f4c, 0xfffd, 0xfffd, - 0x8993, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dbf, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dec, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5edf, 0xfffd, 0xfffd, 0x6ec5, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61ab, 0x95a9, 0xfffd, 0xfffd, - 0x9cf4, 0x9298, 0xfffd, 0xfffd, 0x8b2c, 0xfffd, - /* 0x44 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8b00, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x755d, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9209, 0xfffd, 0xfffd, - 0x7d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x96e3, 0xfffd, 0x6493, 0x8166, 0x60f1, 0x9b27, 0xfffd, 0xfffd, - 0x9912, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x64ec, 0xfffd, 0xfffd, 0x81a9, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6506, 0xfffd, 0xfffd, 0xfffd, 0x91c0, - 0x9ce5, 0xfffd, 0xfffd, 0x8076, 0xfffd, 0x5699, 0x9477, 0x93b3, - 0xfffd, 0xfffd, 0x6ab8, 0x7370, 0xfffd, 0x5be7, - /* 0x45 */ - 0x64f0, 0x6fd8, 0xfffd, 0xfffd, 0x9215, 0x7d10, 0x81bf, 0x6fc3, - 0x8fb2, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7627, 0xfffd, 0xfffd, 0xfffd, 0x8afe, 0xfffd, 0x6b50, 0x9dd7, - 0x6bc6, 0xfffd, 0x5614, 0xfffd, 0x6f1a, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x76e4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9f90, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8ce0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5674, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9d6c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x46 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9a19, 0x98c4, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x983b, 0x8ca7, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x860b, 0xfffd, 0xfffd, 0x6191, 0xfffd, 0x8a55, - 0xfffd, 0xfffd, 0x6f51, 0x9817, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x64b2, 0x92ea, 0x50d5, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x6a38, 0xfffd, 0xfffd, 0xfffd, 0x8b5c, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x81cd, 0x9f4a, 0xfffd, 0xfffd, 0xfffd, 0x9a0e, 0xfffd, - 0x8c48, 0xfffd, 0xfffd, 0x5553, 0xfffd, 0xfffd, 0xfffd, 0x6c23, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a16, 0xfffd, - /* 0x47 */ - 0xfffd, 0xfffd, 0x727d, 0xfffd, 0x91fa, 0x925b, 0xfffd, 0x9077, - 0x7c3d, 0xfffd, 0x8b19, 0xfffd, 0xfffd, 0x9322, 0x9257, 0xfffd, - 0xfffd, 0xfffd, 0x6dfa, 0x8b74, 0x5879, 0xfffd, 0xfffd, 0xfffd, - 0x69cd, 0x55c6, 0xfffd, 0xfffd, 0x58bb, 0x8594, 0xfffd, 0x6436, - 0xfffd, 0x936c, 0xfffd, 0xfffd, 0x6a4b, 0xfffd, 0x55ac, 0x50d1, - 0xfffd, 0xfffd, 0xfffd, 0x7ff9, 0xfffd, 0xfffd, 0x7ac5, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7aca, 0x6b3d, 0xfffd, 0x89aa, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5be2, 0xfffd, 0xfffd, - 0x8f15, 0x6c2b, 0x50be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9803, 0x8acb, 0x6176, 0x74ca, 0x7aae, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8da8, 0x5340, - 0xfffd, 0xfffd, 0x8ec0, 0xfffd, 0x9a45, 0xfffd, - /* 0x48 */ - 0xfffd, 0xfffd, 0x9f72, 0xfffd, 0xfffd, 0xfffd, 0x9874, 0x6b0a, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x52f8, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9d72, 0xfffd, 0x78ba, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8b93, 0x9952, 0x64fe, 0x7e5e, 0xfffd, 0x71b1, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x97cc, 0xfffd, 0x8a8d, 0xfffd, - 0xfffd, 0x7d09, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x69ae, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d68, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8edf, 0xfffd, 0xfffd, 0xfffd, - 0x92ed, 0x958f, 0x6f64, 0xfffd, 0xfffd, 0xfffd, 0x7051, 0x85a9, - 0xfffd, 0x9c13, 0xfffd, 0x8cfd, 0xfffd, 0xfffd, - /* 0x49 */ - 0x5098, 0xfffd, 0xfffd, 0xfffd, 0x55aa, 0xfffd, 0x9a37, 0x6383, - 0xfffd, 0xfffd, 0xfffd, 0x6f80, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x6bba, 0xfffd, 0xfffd, 0x7d17, 0xfffd, 0xfffd, 0xfffd, 0x7be9, - 0x66ec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x9583, 0x965d, 0xfffd, 0x8d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7e55, 0xfffd, 0x50b7, 0xfffd, 0x8cde, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71d2, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7d39, 0xfffd, 0x8cd2, 0xfffd, 0xfffd, - 0x6368, 0xfffd, 0x651d, 0xfffd, 0x61fe, 0xfffd, 0xfffd, 0x8a2d, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d33, - 0xfffd, 0xfffd, 0x5be9, 0x5b38, 0xfffd, 0x814e, 0xfffd, 0x6ef2, - 0x8072, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e69, - /* 0x4a */ - 0xfffd, 0xfffd, 0xfffd, 0x52dd, 0x8056, 0x5e2b, 0xfffd, 0x7345, - 0xfffd, 0x6fd5, 0x8a69, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x6642, 0xfffd, 0xfffd, 0x8755, 0x5be6, 0x8b58, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x99db, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x52e2, 0xfffd, 0xfffd, - 0xfffd, 0x9069, 0xfffd, 0xfffd, 0x91cb, 0x98fe, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8996, 0x8a66, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x58fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7378, 0xfffd, 0x6a1e, - 0xfffd, 0xfffd, 0xfffd, 0x8f38, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x66f8, 0x8d16, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5c6c, 0x8853, 0xfffd, 0x6a39, 0xfffd, - 0xfffd, 0x7aea, 0xfffd, 0xfffd, 0x6578, 0xfffd, - /* 0x4b */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e25, 0xfffd, - 0xfffd, 0xfffd, 0x96d9, 0xfffd, 0x8ab0, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9806, 0xfffd, 0x8aac, 0x78a9, 0xfffd, 0x720d, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7d72, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x98fc, 0xfffd, - 0x9b06, 0x8073, 0x616b, 0x980c, 0xfffd, 0xfffd, 0x8a1f, 0x8aa6, - 0xfffd, 0xfffd, 0x64fb, 0xfffd, 0x8607, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a34, 0x8085, - 0xfffd, 0xfffd, 0xfffd, 0x96d6, 0xfffd, 0x96a8, 0x7d8f, 0xfffd, - 0xfffd, 0x6b72, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b6b, 0x640d, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e2e, 0x7463, 0xfffd, 0x9396, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x4c */ - 0x737a, 0x64bb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x81fa, - 0xfffd, 0xfffd, 0xfffd, 0x614b, 0xfffd, 0xfffd, 0x6524, 0x8caa, - 0x7671, 0x7058, 0x58c7, 0xfffd, 0xfffd, 0xfffd, 0x8b5a, 0x8ac7, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5606, 0xfffd, 0x6e6f, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x71d9, 0xfffd, 0x6fe4, 0xfffd, 0x7e27, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a0e, 0xfffd, 0xfffd, - 0xfffd, 0x9a30, 0xfffd, 0x8b04, 0xfffd, 0xfffd, 0xfffd, 0x92bb, - 0xfffd, 0x984c, 0xfffd, 0xfffd, 0x9ad4, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x689d, 0xfffd, 0xfffd, 0xfffd, - 0x8cbc, 0x9435, 0xfffd, 0x5ef3, 0x807d, 0x70f4, - /* 0x4d */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9285, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x7d71, 0xfffd, 0xfffd, 0xfffd, 0x982d, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5716, 0xfffd, 0xfffd, 0x5857, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5718, 0xfffd, 0x983d, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9d15, 0xfffd, 0x99b1, 0x99dd, 0x6a62, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7aaa, 0xfffd, 0xfffd, 0x896a, - 0xfffd, 0xfffd, 0xfffd, 0x5f4e, 0x7063, 0xfffd, 0x9811, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x842c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7db2, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x4e */ - 0xfffd, 0xfffd, 0xfffd, 0x97cb, 0x9055, 0xfffd, 0x570d, 0xfffd, - 0xfffd, 0x7232, 0x6ff0, 0x7dad, 0x8466, 0xfffd, 0xfffd, 0x5049, - 0x50de, 0xfffd, 0x7def, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b02, 0xfffd, 0xfffd, 0x885b, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x805e, 0x7d0b, 0xfffd, 0x7a69, - 0xfffd, 0x554f, 0xfffd, 0xfffd, 0xfffd, 0x64be, 0x8778, 0x6e26, - 0x7aa9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x55da, - 0x93a2, 0x70cf, 0xfffd, 0x8aa3, 0xfffd, 0x7121, 0x856a, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x5862, 0xfffd, 0x9727, 0xfffd, 0xfffd, 0xfffd, - 0x52d9, 0xfffd, 0x8aa4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x932b, 0x72a7, - /* 0x4f */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8972, 0xfffd, 0x7fd2, - 0xfffd, 0xfffd, 0x9291, 0xfffd, 0xfffd, 0xfffd, 0x6232, 0x7d30, - 0xfffd, 0x8766, 0xfffd, 0xfffd, 0x8f44, 0xfffd, 0x5cfd, 0x4fe0, - 0x72f9, 0xfffd, 0xfffd, 0xfffd, 0x5687, 0xfffd, 0x9341, 0xfffd, - 0xfffd, 0x9bae, 0x7e96, 0xfffd, 0x8ce2, 0x929c, 0xfffd, 0x9591, - 0xfffd, 0xfffd, 0xfffd, 0x986f, 0x96aa, 0x73fe, 0x737b, 0x7e23, - 0xfffd, 0x9921, 0xfffd, 0x61b2, 0xfffd, 0xfffd, 0x7dab, 0xfffd, - 0xfffd, 0x9472, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9109, 0xfffd, - 0xfffd, 0x8a73, 0xfffd, 0x97ff, 0xfffd, 0x9805, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x856d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x56c2, 0x92b7, 0xfffd, 0xfffd, 0xfffd, 0x66c9, - /* 0x50 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x562f, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5354, 0x633e, 0xfffd, 0xfffd, - 0xfffd, 0x8105, 0x8ae7, 0x5beb, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x7009, 0x8b1d, 0xfffd, 0xfffd, 0xfffd, 0x92c5, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c1, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8208, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x92b9, 0xfffd, 0xfffd, 0x7d89, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9808, 0xfffd, 0x8a31, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7dd2, 0x7e8c, - 0x8ed2, 0xfffd, 0xfffd, 0x61f8, 0xfffd, 0xfffd, - /* 0x51 */ - 0x9078, 0x766c, 0xfffd, 0x7d62, 0xfffd, 0xfffd, 0x5b78, 0xfffd, - 0xfffd, 0xfffd, 0x52db, 0xfffd, 0xfffd, 0xfffd, 0x8a62, 0x5c0b, - 0x99b4, 0xfffd, 0xfffd, 0xfffd, 0x8a13, 0x8a0a, 0x905c, 0xfffd, - 0x58d3, 0xfffd, 0x9d09, 0x9d28, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x555e, 0x4e9e, 0x8a1d, - 0xfffd, 0xfffd, 0x95b9, 0xfffd, 0xfffd, 0x9e7d, 0x56b4, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9854, 0x95bb, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8277, 0xfffd, 0xfffd, - 0x53ad, 0x786f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8afa, - 0x9a57, 0xfffd, 0xfffd, 0x9d26, 0xfffd, 0x694a, 0x63da, 0xfffd, - 0x760d, 0xfffd, 0xfffd, 0x967d, 0xfffd, 0xfffd, 0x7662, 0x990a, - 0x6a23, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x52 */ - 0xfffd, 0x582f, 0xfffd, 0xfffd, 0x8b21, 0xfffd, 0xfffd, 0xfffd, - 0x85e5, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x723a, 0xfffd, - 0xfffd, 0xfffd, 0x9801, 0xfffd, 0x696d, 0x8449, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91ab, 0xfffd, 0x92a5, 0xfffd, - 0xfffd, 0xfffd, 0x9824, 0xfffd, 0x907a, 0xfffd, 0x5100, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87fb, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x85dd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x5104, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x61b6, 0x7fa9, 0xfffd, 0xfffd, 0x8a63, - 0x8b70, 0x8abc, 0x8b6f, 0xfffd, 0xfffd, 0xfffd, 0x7e79, 0xfffd, - 0x852d, 0xfffd, 0xfffd, 0xfffd, 0x9670, 0xfffd, 0xfffd, 0x9280, - 0xfffd, 0xfffd, 0x98f2, 0xfffd, 0xfffd, 0x96b1, - /* 0x53 */ - 0xfffd, 0xfffd, 0x6afb, 0x5b30, 0x9df9, 0x61c9, 0x7e93, 0x7469, - 0x87a2, 0x71df, 0x7192, 0x8805, 0xfffd, 0x8d0f, 0xfffd, 0xfffd, - 0x7a4e, 0xfffd, 0xfffd, 0x55b2, 0x64c1, 0x50ad, 0xfffd, 0x7670, - 0xfffd, 0xfffd, 0x8e34, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x512a, 0xfffd, 0x6182, 0xfffd, - 0xfffd, 0x90f5, 0x923e, 0x7336, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a98, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f3f, 0x9918, - 0xfffd, 0xfffd, 0x9b5a, 0xfffd, 0xfffd, 0x6f01, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8207, 0x5dbc, 0xfffd, 0xfffd, 0x8a9e, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9b31, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7344, 0xfffd, 0x8b7d, - /* 0x54 */ - 0xfffd, 0xfffd, 0xfffd, 0x9810, 0xfffd, 0x99ad, 0x9d1b, 0x6df5, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f45, 0x5712, - 0x54e1, 0x5713, 0xfffd, 0xfffd, 0x7de3, 0x9060, 0xfffd, 0x9858, - 0xfffd, 0xfffd, 0xfffd, 0x7d04, 0xfffd, 0x8e8d, 0x9470, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x95b2, 0xfffd, 0x96f2, 0x9116, 0xfffd, - 0x9695, 0xfffd, 0x904b, 0x85f4, 0x9196, 0x6688, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x96dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f09, - 0xfffd, 0xfffd, 0xfffd, 0x6522, 0x66ab, 0x8d0a, 0x8d1c, 0x81df, - 0xfffd, 0xfffd, 0xfffd, 0x947f, 0xfffd, 0x68d7, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7ac8, 0xfffd, 0x8cac, - 0x64c7, 0x5247, 0x6fa4, 0x8cca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8d08, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ecb, - /* 0x55 */ - 0x9358, 0x9598, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8a50, 0xfffd, 0x9f4b, 0xfffd, 0xfffd, 0x50b5, 0xfffd, 0xfffd, - 0x6c08, 0xfffd, 0xfffd, 0xfffd, 0x76de, 0x65ac, 0x8f3e, 0x5d84, - 0xfffd, 0xfffd, 0x68e7, 0xfffd, 0x6230, 0xfffd, 0xfffd, 0x7dbb, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5f35, 0xfffd, 0x6f32, 0xfffd, - 0xfffd, 0x5e33, 0x8cec, 0xfffd, 0x8139, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x8d99, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87c4, 0x8f4d, 0xfffd, 0x937a, - 0xfffd, 0x9019, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8c9e, 0x91dd, 0x5075, 0xfffd, 0xfffd, 0x8a3a, 0xfffd, - 0xfffd, 0x93ae, 0x9663, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x56 */ - 0x5e40, 0x7665, 0x912d, 0x8b49, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7e54, 0x8077, - 0xfffd, 0xfffd, 0xfffd, 0x57f7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8879, 0xfffd, 0x7d19, 0xfffd, 0x646f, 0x64f2, - 0xfffd, 0xfffd, 0xfffd, 0x5e5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8cea, 0xfffd, 0xfffd, 0x6eef, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9418, 0xfffd, 0x7d42, 0x7a2e, 0x816b, 0xfffd, - 0xfffd, 0x8846, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b05, 0xfffd, - 0x8ef8, 0xfffd, 0xfffd, 0xfffd, 0x76ba, 0xfffd, 0x665d, 0x9a5f, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8af8, 0x8a85, 0xfffd, - 0xfffd, 0x71ed, 0xfffd, 0xfffd, 0x77da, 0x56d1, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x8caf, 0x9444, 0x7bc9, - /* 0x57 */ - 0xfffd, 0xfffd, 0xfffd, 0x99d0, 0xfffd, 0xfffd, 0xfffd, 0x5c08, - 0x78da, 0x8f49, 0xfffd, 0x8cfa, 0xfffd, 0x6a01, 0x838a, 0x88dd, - 0x599d, 0xfffd, 0x58ef, 0x72c0, 0xfffd, 0x9310, 0xfffd, 0x8d05, - 0x589c, 0x7db4, 0x8ac4, 0x6e96, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6fc1, 0xfffd, - 0xfffd, 0x8cc7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f2c, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x7d9c, 0x7e3d, 0x7e31, 0x9112, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a5b, 0xfffd, - 0x7d44, 0x947d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x58 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x55c7, 0xfffd, 0xfffd, 0x5399, 0xfffd, - 0x53b4, 0xfffd, 0xfffd, 0x9768, 0x8d0b, 0xfffd, 0xfffd, 0x532d, - 0x5331, 0xfffd, 0x8cfe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x5244, 0xfffd, 0x528c, 0x5274, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x50b4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5000, 0x5096, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x59 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5115, 0xfffd, 0x5102, 0xfffd, - 0x5114, 0x513c, 0x5137, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50e8, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c2, 0x513b, 0x5110, 0x513a, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x50c9, 0xfffd, 0xfffd, 0xfffd, - 0x7cf4, 0xfffd, 0xfffd, 0x9ecc, 0xfffd, 0x56c5, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x9cec, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x893b, 0x81e0, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x5a */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8a01, 0x8a10, 0x8a0c, 0x8a15, - 0x8b33, 0x8a4e, 0x8a25, 0x8a41, 0x8a36, 0x8a46, 0x8a54, 0x8a58, - 0x8a52, 0x8a86, 0x8a84, 0x8a7f, 0x8a70, 0x8a7c, 0x8a75, 0x8a6c, - 0x8a6e, 0x8acd, 0x8ae2, 0x8a61, 0x8a9a, 0x8aa5, 0x8a91, 0x8a92, - 0x8acf, 0x8ad1, 0x8ac9, 0x8adb, 0x8ad7, 0x8ac2, 0x8ab6, 0x8af6, - 0x8aeb, 0x8b14, 0x8b01, 0x8ae4, 0x8aed, 0x8afc, 0x8af3, 0x8ae6, - 0x8aee, 0x8ade, 0x8b28, 0x8b9c, 0x8b16, 0x8b1a, 0x8b10, 0x8b2b, - 0x8b2d, 0x8b56, 0x8b59, 0x8b4e, 0x8b9e, 0x8b6b, 0x8b96, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9658, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x913a, 0xfffd, - 0x9114, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9134, - /* 0x5b */ - 0xfffd, 0xfffd, 0x90df, 0xfffd, 0xfffd, 0x9136, 0xfffd, 0xfffd, - 0x9106, 0x9148, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x82bb, 0xfffd, 0x52f1, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5df0, 0xfffd, - 0x580a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x58d9, 0xfffd, 0xfffd, 0x58e2, 0xfffd, 0xfffd, - 0xfffd, 0x58e0, 0xfffd, 0x58da, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x57e1, 0xfffd, 0xfffd, 0x584f, 0xfffd, 0xfffd, - 0x5816, 0xfffd, 0xfffd, 0xfffd, 0x5852, 0x581d, 0x5864, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x5c */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x858c, 0xfffd, 0xfffd, 0x8553, 0xfffd, - 0xfffd, 0x85f6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x83a7, - 0x8407, 0x84ef, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x82e7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8622, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8526, - 0xfffd, 0xfffd, 0x584b, 0x7162, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8558, 0x84fd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x854e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8588, 0xfffd, 0xfffd, - 0x85ba, 0xfffd, 0xfffd, 0xfffd, 0x7296, 0x6ece, - /* 0x5d */ - 0x8541, 0xfffd, 0x85ce, 0x8552, 0x84c0, 0x8452, 0x8464, 0xfffd, - 0xfffd, 0x8494, 0x8435, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x859f, 0xfffd, 0xfffd, 0x8555, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9daf, 0x8493, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x7e08, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8546, 0xfffd, 0xfffd, 0x8562, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x851e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9a40, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x863a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x93a3, 0x8577, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x861e, 0xfffd, 0x85fa, - /* 0x5e */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8604, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x85ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x861a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5969, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5c37, 0xfffd, - 0x636b, 0x6476, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x649f, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x6451, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x645c, - 0xfffd, 0xfffd, 0xfffd, 0x64b3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x6504, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6516, 0xfffd, 0xfffd, - /* 0x5f */ - 0xfffd, 0x64f7, 0x64fc, 0xfffd, 0x651b, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5630, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5638, 0x56c8, 0xfffd, 0x56a6, 0xfffd, - 0xfffd, 0x5504, 0x54bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5680, 0xfffd, 0xfffd, 0xfffd, 0x565d, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5660, 0xfffd, 0xfffd, 0x5635, - 0x55f6, 0xfffd, 0xfffd, 0x5666, 0xfffd, 0xfffd, 0xfffd, 0x5672, - 0xfffd, 0x568c, 0xfffd, 0xfffd, 0xfffd, 0x5665, 0xfffd, 0xfffd, - 0x561c, 0xfffd, 0x562e, 0xfffd, 0xfffd, 0xfffd, 0x55e9, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5616, 0xfffd, 0xfffd, 0xfffd, - 0x56c0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x60 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x560d, 0x56b3, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x56c1, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x566f, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8f61, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x56b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5695, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5707, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5e43, - 0xfffd, 0xfffd, 0xfffd, 0x5e6c, 0x5e58, 0x5e57, - /* 0x61 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x5d87, 0xfffd, 0x5cf4, 0xfffd, 0xfffd, 0x5d50, - 0xfffd, 0xfffd, 0xfffd, 0x5d2c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x5da7, 0xfffd, 0x5da0, 0xfffd, 0xfffd, 0x5d97, - 0x5d0d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x5db8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5d81, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x5dd4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x540e, 0x5fa0, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7377, 0x7341, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x736a, 0xfffd, 0x733b, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x736b, 0xfffd, - /* 0x62 */ - 0xfffd, 0xfffd, 0xfffd, 0x7380, 0xfffd, 0xfffd, 0xfffd, 0x737c, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x98e0, 0x9933, 0x98e9, 0x993c, 0x98ea, 0x98eb, - 0x98ed, 0x98f4, 0x9909, 0x9911, 0x4f59, 0x991b, 0x9937, 0x993f, - 0x9943, 0x9948, 0x9949, 0x994a, 0x994c, 0x9962, 0xfffd, 0x5ee1, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8ce1, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x61fa, 0x61ae, 0xfffd, 0x616a, 0xfffd, 0xfffd, - 0x613e, 0x60b5, 0x6134, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61cc, - 0xfffd, 0x615f, 0x61e8, 0x60fb, 0x6137, 0xfffd, - /* 0x63 */ - 0xfffd, 0x60f2, 0xfffd, 0xfffd, 0x6173, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x611c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6192, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9582, 0x9586, 0x95c8, 0x958e, - 0x9594, 0x958c, 0x95e5, 0x95ad, 0x95ab, 0x9b2e, 0x95ac, 0x95be, - 0x95b6, 0x9b29, 0x95bf, 0x95bd, 0x95bc, 0x95c3, 0x95cb, 0x95d4, - 0x95d0, 0x95d5, 0x95de, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x7043, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6f59, 0xfffd, 0xfffd, 0xfffd, - 0x7027, 0x7018, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ffc, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6d87, - /* 0x64 */ - 0xfffd, 0xfffd, 0xfffd, 0x6d79, 0x6e5e, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x6fae, 0xfffd, 0xfffd, 0xfffd, 0x700f, 0x6ef8, - 0x6f6f, 0xfffd, 0xfffd, 0xfffd, 0x6df6, 0x6f7f, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x7006, 0xfffd, 0xfffd, 0x6fa0, 0xfffd, 0xfffd, 0xfffd, - 0x700b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7067, 0xfffd, 0xfffd, 0x7044, 0xfffd, 0x7005, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6f77, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x7020, 0x701f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x7032, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7028, - /* 0x65 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x705d, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x9a2b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9087, 0xfffd, - 0x9015, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9090, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5c68, - 0xfffd, 0x5f33, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5af5, 0x5ad7, 0xfffd, - /* 0x66 */ - 0xfffd, 0xfffd, 0x5b00, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x5a6d, 0x5b08, 0xfffd, 0x5b4c, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x5aa7, 0x5afb, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b0b, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x5b21, - 0x5b2a, 0xfffd, 0xfffd, 0xfffd, 0x5b19, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x99d4, - 0x99df, 0x99d9, 0x9a36, 0x9a5b, 0x99d1, 0x99d8, 0x9a4d, 0x9a4a, - 0x99e2, 0x9a6a, 0x9a0f, 0x9a0d, 0x9a05, 0x9a42, 0x9a2d, 0x9a16, - 0x9a41, 0x9a2e, 0x9a38, 0x9a43, 0x9a44, 0x9a4f, 0x9a65, 0x9a64, - 0x7cf9, 0x7d06, 0x7d02, 0x7d07, 0x7d08, 0x7e8a, - /* 0x67 */ - 0x7d1c, 0x7d15, 0x7d13, 0x7d3a, 0x7d32, 0x7d31, 0x7e10, 0x7d3c, - 0x7d40, 0x7d3f, 0x7d5d, 0x7d4e, 0x7d73, 0x7d86, 0x7d83, 0x7d88, - 0x7dbe, 0x7dba, 0x7dcb, 0x7dd4, 0x7dc4, 0x7d9e, 0x7dac, 0x7db9, - 0x7da3, 0x7db0, 0x7dc7, 0x7dd9, 0x7dd7, 0x7df9, 0x7df2, 0x7e62, - 0x7de6, 0x7df6, 0x7df1, 0x7e0b, 0x7de1, 0x7e09, 0x7e1d, 0x7e1f, - 0x7e1e, 0x7e2d, 0x7e0a, 0x7e11, 0x7e7d, 0x7e39, 0x7e35, 0x7e32, - 0x7e46, 0x7e45, 0x7e88, 0x7e5a, 0x7e52, 0x7e6e, 0x7e7e, 0x7e70, - 0x7e6f, 0x7e98, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x74a3, 0x744b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74cf, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x980a, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x74bd, 0x743f, 0x7489, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x68 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74a6, - 0xfffd, 0xfffd, 0xfffd, 0x74d4, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x74da, 0xfffd, 0x97d9, - 0x97de, 0x97dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x69aa, 0x6aea, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6898, 0xfffd, 0x68d6, 0x6a05, - 0x689f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6adb, 0xfffd, 0x6af3, - 0xfffd, 0xfffd, 0x6ae8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6adf, 0xfffd, 0x6a89, 0xfffd, - 0xfffd, 0x690f, 0x6a48, 0xfffd, 0x6968, 0xfffd, 0x69bf, 0xfffd, - 0xfffd, 0xfffd, 0x6a3a, 0xfffd, 0x6a9c, 0xfffd, 0x6b12, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x6b1e, 0xfffd, 0xfffd, 0x6add, 0x69e7, 0xfffd, - /* 0x69 */ - 0x6b0f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6b16, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6aec, 0x6ada, 0xfffd, 0x6af8, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6ab3, 0xfffd, 0x6ae7, 0xfffd, 0xfffd, - 0x6aa3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6ad3, 0xfffd, 0xfffd, - 0xfffd, 0x6ade, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x6ba4, 0xfffd, 0x6b9e, 0x6bae, 0xfffd, - 0x6bab, 0xfffd, 0x6baf, 0xfffd, 0x8ed4, 0x8edb, 0x8ef2, 0x8efb, - 0x8f64, 0x8ef9, 0x8efc, 0x8eeb, 0x8ee4, 0x8f62, 0x8efa, 0x8efe, - 0x8f0a, 0x8f07, 0x8f05, 0x8f12, 0x8f26, 0x8f1e, - /* 0x6a */ - 0x8f1f, 0x8f1c, 0x8f33, 0x8f46, 0x8f54, 0xfffd, 0x6214, 0x6227, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x750c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x66c7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x66c4, 0xfffd, 0xfffd, 0x6689, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x66d6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8cc1, 0x8cb0, 0x8cba, 0x8cbd, 0x8d04, 0x8cb2, 0x8cc5, - 0x8d10, 0x8cd1, 0x8cda, 0x8cd5, 0x8ceb, 0x8ce7, 0x8cfb, 0x8998, - 0x89ac, 0x89a1, 0x89bf, 0x89a6, 0x89af, 0x89b2, 0x89b7, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x6b */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6bff, 0xfffd, - 0xfffd, 0x6c0c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x6c2c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7258, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x6727, 0x8156, 0xfffd, 0x81da, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x811b, 0xfffd, 0xfffd, - 0xfffd, 0x81be, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8161, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x81cf, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x6c */ - 0xfffd, 0xfffd, 0x6b5f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x98ae, 0x98af, 0x98b6, 0x98bc, 0x98c6, 0x98c8, 0xfffd, 0xfffd, - 0x8f42, 0xfffd, 0xfffd, 0x9f4f, 0x6595, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x716c, 0x7152, 0xfffd, - 0x7197, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x71c1, 0xfffd, - 0xfffd, 0xfffd, 0x71dc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x71fe, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x79b0, 0xfffd, 0xfffd, 0x798e, 0xfffd, 0xfffd, 0x79aa, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x6d */ - 0x61df, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x6164, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x61e3, 0x6207, - 0xfffd, 0xfffd, 0xfffd, 0x6fa9, 0xfffd, 0x78ef, 0xfffd, 0x78ad, - 0xfffd, 0x7868, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x78b8, 0xfffd, - 0xfffd, 0x792a, 0x7931, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7864, 0x78fd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x78e7, 0xfffd, 0xfffd, 0xfffd, 0x78e3, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9f95, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7798, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x775e, 0x77bc, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x6e */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7f86, 0xfffd, 0xfffd, 0x7f88, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x91d2, 0x91d3, 0x91d4, 0x91d9, 0x91d7, - 0x91d5, 0x91f7, 0x91e7, 0x91e4, 0x9346, 0x91f5, 0x91f9, 0x9208, - 0x9226, 0x9245, 0x9211, 0x9210, 0x9201, 0x9227, 0x9204, 0x9225, - 0x9200, 0x923a, 0x9266, 0x9237, 0x9233, 0x9255, 0x923d, 0x9238, - 0x925e, 0x926c, 0x926d, 0x923f, 0x9460, 0x9230, 0x9249, 0x9248, - 0x924d, 0x922e, 0x9239, 0x9438, 0x92ac, 0x92a0, 0x927a, 0x92aa, - 0x92ee, 0x92cf, 0x9403, 0x92e3, 0x943a, 0x92b1, 0x92a6, 0x93a7, - 0x9296, 0x92cc, 0x92a9, 0x93f5, 0x9293, 0x927f, - /* 0x6f */ - 0x93a9, 0x929a, 0x931a, 0x92ab, 0x9283, 0x940b, 0x92a8, 0x92a3, - 0x9412, 0x9338, 0x92f1, 0x93d7, 0x92e5, 0x92f0, 0x92ef, 0x92e8, - 0x92bc, 0x92dd, 0x92f6, 0x9426, 0x9427, 0x92c3, 0x92df, 0x92e6, - 0x9312, 0x9306, 0x9369, 0x931b, 0x9340, 0x9301, 0x9315, 0x932e, - 0x9343, 0x9307, 0x9308, 0x931f, 0x9319, 0x9365, 0x9347, 0x9376, - 0x9354, 0x9364, 0x93aa, 0x9370, 0x9384, 0x93e4, 0x93d8, 0x9428, - 0x9387, 0x93cc, 0x9398, 0x93b8, 0x93bf, 0x93a6, 0x93b0, 0x93b5, - 0x944c, 0x93e2, 0x93dc, 0x93dd, 0x93cd, 0x93de, 0x93c3, 0x93c7, - 0x93d1, 0x9414, 0x941d, 0x93f7, 0x9465, 0x9413, 0x946d, 0x9420, - 0x9479, 0x93f9, 0x9419, 0x944a, 0x9432, 0x943f, 0x9454, 0x9463, - 0x937e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x70 */ - 0xfffd, 0xfffd, 0x7a61, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ce9, 0x9cf6, - 0x9d07, 0x9d06, 0x9d23, 0x9d87, 0x9e15, 0x9d1d, 0x9d1f, 0x9de5, - 0x9d2f, 0x9dd9, 0x9d30, 0x9d42, 0x9e1e, 0x9d53, 0x9e1d, 0x9d60, - 0x9d52, 0x9df3, 0x9d5c, 0x9d61, 0x9d93, 0x9d6a, 0x9d6f, 0x9d89, - 0x9d98, 0x9d9a, 0x9dc0, 0x9da5, 0x9da9, 0x9dc2, 0x9dbc, 0x9e1a, - 0x9dd3, 0x9dda, 0x9def, 0x9de6, 0x9df2, 0x9df8, 0x9e0c, 0x9dfa, - 0x9e1b, 0xfffd, 0xfffd, 0x7664, 0x7658, 0xfffd, 0x7667, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x7602, 0xfffd, 0xfffd, 0x7646, 0xfffd, 0xfffd, 0x7647, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7649, 0xfffd, - 0x761e, 0xfffd, 0xfffd, 0x763b, 0xfffd, 0xfffd, - /* 0x71 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x766d, - 0xfffd, 0xfffd, 0x766e, 0xfffd, 0xfffd, 0x7669, 0xfffd, 0xfffd, - 0xfffd, 0x7672, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x7ac7, 0xfffd, 0xfffd, 0xfffd, 0x7ab6, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8960, 0xfffd, 0xfffd, 0xfffd, 0x8933, 0xfffd, 0x895d, 0x8947, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x8938, 0xfffd, 0x8964, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x76b8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x802e, 0xfffd, 0xfffd, 0x802c, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8079, 0xfffd, - 0x8075, 0xfffd, 0xfffd, 0x9807, 0x980e, 0x980f, - /* 0x72 */ - 0x9821, 0x981c, 0x6f41, 0x9826, 0x9837, 0x984e, 0x9853, 0x9873, - 0x9862, 0x9859, 0x9865, 0x986c, 0x9870, 0xfffd, 0xfffd, 0xfffd, - 0x87e3, 0x8806, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8706, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x8823, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x87f6, 0xfffd, 0xfffd, 0x86fa, 0x87ef, 0xfffd, 0x8784, 0xfffd, - 0xfffd, 0xfffd, 0x8810, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87c8, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8811, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87bb, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x87ce, 0xfffd, - /* 0x73 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7f4c, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7be4, 0xfffd, 0x7b67, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c69, 0xfffd, 0xfffd, - 0x7bf3, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c00, 0x7bcb, 0xfffd, 0xfffd, - 0xfffd, 0x7c5c, 0xfffd, 0x7c1e, 0xfffd, 0xfffd, 0x7c2b, 0xfffd, - 0x7c23, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c6a, 0xfffd, - /* 0x74 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7c5f, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8264, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x826b, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x88ca, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7fa5, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cf2, 0x7cf6, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x7cdd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x7e36, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9ea9, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8db2, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x75 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x91c5, 0x91c3, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9e7a, 0x8e89, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x8e4c, 0xfffd, 0xfffd, 0xfffd, 0x8e92, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8e7a, 0x8e55, 0xfffd, - 0x8e9a, 0x8e8b, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x8e93, 0xfffd, 0xfffd, 0x8e91, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8ea1, 0x8e63, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8eaa, 0xfffd, - 0xfffd, 0x8ea6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x89f4, 0xfffd, 0xfffd, - /* 0x76 */ - 0xfffd, 0xfffd, 0x89f6, 0xfffd, 0xfffd, 0x975a, 0xfffd, 0x9742, - 0xfffd, 0xfffd, 0x973d, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9744, - 0xfffd, 0xfffd, 0x9f54, 0x9f5f, 0x9f59, 0x9f60, 0x9f5c, 0x9f66, - 0x9f6c, 0x9f6a, 0x9f77, 0x9efd, 0x9eff, 0x9f09, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x8b8e, 0xfffd, 0x947e, 0xfffd, - 0x93e8, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b77, 0x9b74, - 0x9b81, 0x9b83, 0x9b8e, 0x9c78, 0x7a4c, 0x9b92, 0x9c5f, 0x9b90, - 0x9bad, 0x9b9a, 0x9baa, 0x9b9e, 0x9c6d, 0x9bab, 0x9b9d, 0x9c58, - 0x9bc1, 0x9c7a, 0x9c31, 0x9c39, 0x9c23, 0x9c37, 0x9bc0, 0x9bca, - 0x9bc7, 0x9bfd, 0x9bd6, 0x9bea, 0x9beb, 0x9be1, 0x9be4, 0x9be7, - 0x9bdd, 0x9be2, 0x9bf0, 0x9bdb, 0x9bf4, 0x9bd4, 0x9c5d, 0x9c08, - 0x9c10, 0x9c0d, 0x9c12, 0x9c09, 0x9bff, 0x9c20, - /* 0x77 */ - 0x9c32, 0x9c2d, 0x9c28, 0x9c25, 0x9c29, 0x9c33, 0x9c3e, 0x9c48, - 0x9c3b, 0x9c35, 0x9c45, 0x9c56, 0x9c54, 0x9c52, 0x9c67, 0xfffd, - 0xfffd, 0x97c3, 0x97bd, 0xfffd, 0x97c9, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9dbb, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x9acf, 0xfffd, 0x9ad6, 0x9ad5, 0xfffd, 0xfffd, - 0xfffd, 0x9b58, 0x9b4e, 0xfffd, 0xfffd, 0xfffd, 0x9957, 0x995c, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x9b22, 0xfffd, 0xfffd, - 0x4e48, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x9ef7, 0xfffd, 0xfffd, 0x9ef2, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x78 */ - 0x896c, 0x95c6, 0x9336, 0x5f46, 0x8514, 0x7e94, 0x5382, 0x51b2, - 0x4e11, 0x9f63, 0x5679, 0x515a, 0x6dc0, 0x9f15, 0x6597, 0x5641, - 0x9aee, 0x8303, 0x4e30, 0x8907, 0x5e72, 0x7a40, 0x98b3, 0x5e7f, - 0x95a4, 0x9b0d, 0x5212, 0x8ff4, 0x5f59, 0x7a6b, 0x98e2, 0x51e0, - 0x50a2, 0x4ef7, 0x8350, 0x8591, 0x5118, 0x636e, 0x6372, 0x524b, - 0x5938, 0x774f, 0x8721, 0x814a, 0x7e8d, 0x91cc, 0x66c6, 0x5e18, - 0x77ad, 0x9e75, 0x56c9, 0x9ef4, 0x6fdb, 0x61de, 0x77c7, 0x7030, - 0x9eb5, 0x884a, 0x95e2, 0x82f9, 0x51ed, 0x6251, 0x4ec6, 0x6734, - 0x97c6, 0x7c64, 0x7e34, 0x97a6, 0x9eaf, 0x786e, 0x820d, 0x672f, - 0x677e, 0x56cc, 0x53f0, 0x98b1, 0x6aaf, 0x7f4e, 0x6d82, 0x7cf0, - 0x4e07, 0x4fc2, 0x7e6b, 0x9e79, 0x56ae, 0x9b1a, 0x846f, 0x53f6, - 0x90c1, 0x79a6, 0x7c72, 0x613f, 0x4e91, 0x9ad2, - /* 0x79 */ - 0x75c7, 0x96bb, 0x53ea, 0x7dfb, 0x88fd, 0x79cd, 0x7843, 0x7b51, - 0x51c6, -}; - -static int -gb12345ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 == 0x21) || (c1 == 0x26) || (c1 == 0x28) || (c1 >= 0x30 && c1 <= 0x79)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 470) { - if (i < 12) - wc = gb12345ext_2uni_page21[i]; - } else if (i < 658) { - if (i < 555) - wc = gb12345ext_2uni_page26[i-470]; - } else if (i < 1410) { - if (i < 690) - wc = gb12345ext_2uni_page28[i-658]; - } else { - if (i < 8281) - wc = gb12345ext_2uni_page30[i-1410]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short gb12345ext_2charset[2252] = { - 0x283d, 0x283e, 0x283f, 0x283b, 0x2840, 0x283c, 0x212c, 0x7871, - 0x7829, 0x7833, 0x7761, 0x4252, 0x787d, 0x5147, 0x785f, 0x7842, - 0x6245, 0x4034, 0x4258, 0x7872, 0x4f40, 0x5876, 0x4129, 0x3256, - 0x3876, 0x4347, 0x4257, 0x4e30, 0x3260, 0x556c, 0x5877, 0x4921, - 0x3138, 0x7841, 0x5336, 0x342b, 0x5871, 0x552e, 0x494b, 0x4763, - 0x594d, 0x3d76, 0x595d, 0x4748, 0x464d, 0x4e31, 0x3d44, 0x5947, - 0x3c5b, 0x5247, 0x592f, 0x525a, 0x3f6b, 0x3c73, 0x594f, 0x5931, - 0x592d, 0x7845, 0x3325, 0x5345, 0x3422, 0x5933, 0x5950, 0x594e, - 0x5932, 0x3679, 0x782c, 0x413d, 0x7828, 0x7929, 0x3633, 0x7840, - 0x785d, 0x3f2d, 0x783b, 0x5859, 0x5472, 0x7848, 0x3855, 0x3950, - 0x585c, 0x3434, 0x3b2e, 0x3e67, 0x4175, 0x3974, 0x585b, 0x3d23, - 0x3c41, 0x3e22, 0x362f, 0x4e71, 0x512b, 0x4a24, 0x404d, 0x4a46, - 0x5b3d, 0x4078, 0x4830, 0x5850, 0x3b63, 0x5851, 0x4778, 0x502d, - 0x7827, 0x5847, 0x325e, 0x5161, 0x4077, 0x5849, 0x324e, 0x3454, - 0x7923, 0x786b, 0x7878, 0x6161, 0x5f43, 0x5431, 0x5f42, 0x4e4a, - 0x4674, 0x5146, 0x4925, 0x4747, 0x3525, 0x5334, 0x473a, 0x5844, - 0x4270, 0x4e58, 0x5f6f, 0x5f59, 0x4c3e, 0x6036, 0x453b, 0x5f75, - 0x3322, 0x5f69, 0x3b29, 0x5f6b, 0x5025, 0x5f34, 0x5f58, 0x5f3c, - 0x7830, 0x5f50, 0x5f55, 0x5f66, 0x5f5c, 0x6048, 0x5f60, 0x4567, - 0x3656, 0x782b, 0x5f4c, 0x4f45, 0x5f62, 0x6060, 0x4476, 0x5f3f, - 0x417c, 0x7875, 0x6037, 0x514f, 0x6053, 0x5f79, 0x603f, 0x4f79, - 0x5966, 0x5f3d, 0x7853, 0x786a, 0x5676, 0x6070, 0x397a, 0x4e27, - 0x5430, 0x5432, 0x4d3c, 0x4d45, 0x5b6b, 0x5634, 0x3c61, 0x5b51, - 0x5b71, 0x5b76, 0x5222, 0x3128, 0x3321, 0x3f69, 0x5c63, 0x5b6e, - 0x5b75, 0x4d3f, 0x4e6b, 0x5b77, 0x333e, 0x4735, 0x3566, 0x5739, - 0x3669, 0x3758, 0x473d, 0x3f51, 0x4c33, 0x5139, 0x405d, 0x5b5b, - 0x5b64, 0x3b35, 0x4222, 0x5b62, 0x5b5e, 0x3053, 0x5733, 0x3a78, - 0x4a59, 0x434e, 0x7849, 0x3c50, 0x5e46, 0x3661, 0x3d31, 0x375c, - 0x5731, 0x4226, 0x383e, 0x662b, 0x6634, 0x4268, 0x657d, 0x657c, - 0x6635, 0x6623, 0x662c, 0x663f, 0x3d3f, 0x664d, 0x6648, 0x6649, - 0x5324, 0x4974, 0x662e, 0x4b6f, 0x5127, 0x424f, 0x475e, 0x4a35, - 0x447e, 0x4973, 0x5034, 0x3f6d, 0x3368, 0x3126, 0x3d2b, 0x5728, - 0x5130, 0x3654, 0x353c, 0x5e4f, 0x4245, 0x3263, 0x6570, 0x4a74, - 0x3854, 0x612d, 0x353a, 0x4f3f, 0x6141, 0x385a, 0x6134, 0x6130, - 0x6150, 0x5538, 0x612b, 0x6140, 0x613d, 0x613b, 0x6149, 0x416b, - 0x536c, 0x3f79, 0x424d, 0x615b, 0x5b4f, 0x7850, 0x4b27, 0x4a26, - 0x554a, 0x3478, 0x5621, 0x6078, 0x607e, 0x607d, 0x5644, 0x3152, - 0x306f, 0x607c, 0x7835, 0x3849, 0x3c38, 0x7838, 0x3f62, 0x436d, - 0x3327, 0x6250, 0x374f, 0x3963, 0x422e, 0x4c7c, 0x6572, 0x5545, - 0x7824, 0x352f, 0x4356, 0x4d64, 0x783d, 0x3a73, 0x3e36, 0x3453, - 0x6162, 0x3834, 0x3339, 0x626a, 0x4346, 0x3671, 0x4455, 0x6322, - 0x627c, 0x302e, 0x632b, 0x626b, 0x627d, 0x6269, 0x787c, 0x4c2c, - 0x3252, 0x3251, 0x627a, 0x395f, 0x6d28, 0x6266, 0x4b4b, 0x4247, - 0x6325, 0x476c, 0x5347, 0x3139, 0x412f, 0x463e, 0x6334, 0x352c, - 0x375f, 0x4375, 0x6264, 0x4f5c, 0x5264, 0x3f52, 0x5326, 0x6278, - 0x7856, 0x6d21, 0x6d2f, 0x627b, 0x334d, 0x4041, 0x3b33, 0x507c, - 0x6263, 0x3e65, 0x4965, 0x4135, 0x6d30, 0x6a27, 0x6a28, 0x553d, - 0x4f37, 0x785e, 0x502e, 0x4961, 0x5e51, 0x7846, 0x7847, 0x4928, - 0x4255, 0x3c70, 0x516f, 0x3b53, 0x4b70, 0x3537, 0x4740, 0x5e62, - 0x5e68, 0x4227, 0x563f, 0x3f59, 0x5e52, 0x3274, 0x404c, 0x4453, - 0x5e58, 0x3527, 0x3226, 0x3827, 0x464b, 0x5e6c, 0x4c22, 0x4e4e, - 0x3c71, 0x5335, 0x4230, 0x5471, 0x3b77, 0x3532, 0x3523, 0x3e5d, - 0x3c37, 0x4462, 0x3177, 0x4521, 0x3869, 0x5640, 0x4029, 0x5f22, - 0x305a, 0x4b53, 0x5f23, 0x4845, 0x5e73, 0x446c, 0x4223, 0x4039, - 0x5e7c, 0x3273, 0x5f25, 0x4963, 0x545c, 0x424e, 0x4c2f, 0x3d41, - 0x403f, 0x305c, 0x3550, 0x4a7d, 0x4132, 0x3150, 0x6c35, 0x782f, - 0x5536, 0x364f, 0x4a31, 0x5667, 0x544e, 0x6a4d, 0x3329, 0x545d, - 0x6a4a, 0x784f, 0x6a3c, 0x4f7e, 0x6a53, 0x3f75, 0x4939, 0x4a69, - 0x3b61, 0x6b4a, 0x7868, 0x7860, 0x362b, 0x7869, 0x6845, 0x4c75, - 0x6849, 0x6847, 0x5466, 0x3630, 0x553b, 0x6862, 0x516e, 0x3763, - 0x6865, 0x5235, 0x3c2b, 0x683f, 0x4859, 0x6867, 0x3939, 0x4739, - 0x687d, 0x3d30, 0x572e, 0x4056, 0x6848, 0x4225, 0x316a, 0x4a60, - 0x5179, 0x4653, 0x4a77, 0x686b, 0x6863, 0x4745, 0x3b7a, 0x4d56, - 0x685f, 0x3535, 0x686d, 0x3c6c, 0x6949, 0x786d, 0x6944, 0x447b, - 0x3c77, 0x3971, 0x6956, 0x6935, 0x684e, 0x687c, 0x695a, 0x685d, - 0x6946, 0x6853, 0x6840, 0x6934, 0x6850, 0x6937, 0x5323, 0x4038, - 0x4828, 0x6921, 0x686f, 0x692d, 0x6879, 0x4755, 0x4537, 0x6c23, - 0x3b36, 0x4b6a, 0x407a, 0x3969, 0x3250, 0x6966, 0x6964, 0x6969, - 0x6967, 0x696b, 0x3c5f, 0x4931, 0x3f47, 0x4539, 0x6b27, 0x5531, - 0x6b2a, 0x4678, 0x4762, 0x6b32, 0x6424, 0x786f, 0x637e, 0x782d, - 0x4259, 0x5428, 0x6435, 0x4733, 0x4e50, 0x3262, 0x3b6b, 0x6425, - 0x4c40, 0x573c, 0x3935, 0x3257, 0x4370, 0x3553, 0x5c7e, 0x3b26, - 0x564d, 0x4978, 0x4231, 0x6430, 0x427a, 0x5366, 0x453d, 0x3a3a, - 0x4130, 0x5755, 0x5547, 0x3d25, 0x3d2c, 0x7223, 0x4643, 0x3d60, - 0x636d, 0x4873, 0x6431, 0x4023, 0x6464, 0x6436, 0x492c, 0x3d3d, - 0x4054, 0x3d27, 0x6445, 0x5473, 0x6d34, 0x642b, 0x356d, 0x5747, - 0x4528, 0x4a2a, 0x4522, 0x7855, 0x3c43, 0x4c4e, 0x4044, 0x4e2b, - 0x3175, 0x3d26, 0x6378, 0x424b, 0x645e, 0x6442, 0x503a, 0x6449, - 0x642f, 0x3174, 0x6372, 0x4124, 0x646c, 0x646b, 0x6371, 0x647e, - 0x7858, 0x6472, 0x403d, 0x6363, 0x645c, 0x4877, 0x406c, 0x4c32, - 0x6530, 0x4d65, 0x4250, 0x6459, 0x4e5a, 0x4c7e, 0x4e5e, 0x4136, - 0x6c3f, 0x5c64, 0x3733, 0x6c3e, 0x532b, 0x6c41, 0x4848, 0x3363, - 0x6c47, 0x3546, 0x4955, 0x4c4c, 0x6c4b, 0x532a, 0x3253, 0x5672, - 0x3b62, 0x3d7d, 0x6c62, 0x4b38, 0x422f, 0x4043, 0x4e2a, 0x522f, - 0x367b, 0x6b39, 0x4723, 0x5c7d, 0x363f, 0x4e7e, 0x5734, 0x4f41, - 0x3137, 0x534c, 0x6178, 0x616f, 0x537c, 0x4a28, 0x3640, 0x6176, - 0x617d, 0x447c, 0x3b71, 0x4154, 0x616e, 0x4a5e, 0x4c21, 0x4f57, - 0x6228, 0x6224, 0x4f56, 0x6775, 0x6762, 0x4b76, 0x5328, 0x426a, - 0x6776, 0x6761, 0x6828, 0x3b37, 0x6774, 0x476d, 0x6767, 0x682c, - 0x6836, 0x6a31, 0x327a, 0x4436, 0x314f, 0x3b2d, 0x3531, 0x336b, - 0x7921, 0x3e37, 0x7069, 0x3768, 0x5171, 0x7079, 0x342f, 0x4531, - 0x707c, 0x4146, 0x706c, 0x706f, 0x7077, 0x705d, 0x3171, 0x5177, - 0x705c, 0x5622, 0x705f, 0x712e, 0x5122, 0x7128, 0x712b, 0x5338, - 0x4c31, 0x7132, 0x3722, 0x3028, 0x7164, 0x5665, 0x5535, 0x3e21, - 0x3c60, 0x454c, 0x422c, 0x784a, 0x6d79, 0x6d6e, 0x4277, 0x7851, - 0x6d7a, 0x7857, 0x5675, 0x3d43, 0x7927, 0x6d4c, 0x6d3a, 0x7866, - 0x5162, 0x4b36, 0x6d38, 0x6d3f, 0x4837, 0x426b, 0x5729, 0x6d57, - 0x6d53, 0x6d36, 0x6d4d, 0x3421, 0x302d, 0x3f73, 0x6d42, 0x4079, - 0x372f, 0x6d43, 0x3b76, 0x6c75, 0x787a, 0x6c78, 0x4071, 0x6c72, - 0x353b, 0x7926, 0x5656, 0x3346, 0x7836, 0x7655, 0x3b7d, 0x5331, - 0x7023, 0x3b60, 0x4e48, 0x783e, 0x4e51, 0x4d5d, 0x476e, 0x7140, - 0x3f7a, 0x345c, 0x474f, 0x713c, 0x546e, 0x4754, 0x4a7a, 0x3e3a, - 0x314a, 0x7928, 0x7348, 0x3c63, 0x3d5a, 0x3736, 0x567e, 0x7366, - 0x7346, 0x4938, 0x7359, 0x7365, 0x4228, 0x736c, 0x3c72, 0x7371, - 0x736f, 0x4729, 0x4131, 0x403a, 0x336f, 0x736a, 0x7425, 0x417d, - 0x7862, 0x7356, 0x737d, 0x4069, 0x4261, 0x787b, 0x7456, 0x3760, - 0x4138, 0x7870, 0x744f, 0x5961, 0x7450, 0x6679, 0x3e40, 0x3c4d, - 0x667b, 0x543c, 0x3a6c, 0x667a, 0x667c, 0x667d, 0x4852, 0x4e46, - 0x4449, 0x4526, 0x6723, 0x343f, 0x6722, 0x4934, 0x563d, 0x3c36, - 0x3757, 0x6721, 0x3744, 0x4f38, 0x6726, 0x6725, 0x4970, 0x495c, - 0x6724, 0x6728, 0x672a, 0x6729, 0x5655, 0x5769, 0x306d, 0x672c, - 0x3d61, 0x672b, 0x3d4a, 0x4267, 0x5124, 0x3878, 0x485e, 0x4d33, - 0x4b3f, 0x672d, 0x3e78, 0x3e6e, 0x3073, 0x672f, 0x672e, 0x6730, - 0x5065, 0x4b67, 0x3e2d, 0x575b, 0x6736, 0x3371, 0x6739, 0x4f5f, - 0x6737, 0x4e2c, 0x673a, 0x3859, 0x4d78, 0x3141, 0x573a, 0x425a, - 0x6738, 0x6732, 0x5540, 0x3442, 0x6731, 0x4360, 0x6735, 0x673b, - 0x3d74, 0x6733, 0x424c, 0x5077, 0x6734, 0x673d, 0x3c6a, 0x673c, - 0x3c29, 0x3650, 0x355e, 0x6745, 0x5435, 0x6741, 0x3160, 0x3b3a, - 0x4365, 0x4e33, 0x6743, 0x673f, 0x4137, 0x6742, 0x673e, 0x7924, - 0x5d53, 0x6746, 0x674b, 0x6744, 0x6727, 0x674c, 0x383f, 0x6747, - 0x6749, 0x6748, 0x4f58, 0x4c50, 0x376c, 0x674a, 0x4b75, 0x575d, - 0x6750, 0x7863, 0x674f, 0x746a, 0x4246, 0x674e, 0x575c, 0x3c28, - 0x6752, 0x6751, 0x6755, 0x562f, 0x4949, 0x6754, 0x4846, 0x6740, - 0x497e, 0x3b66, 0x7873, 0x3c6b, 0x6756, 0x6759, 0x6758, 0x3d49, - 0x526f, 0x3c4c, 0x674d, 0x6757, 0x6753, 0x667e, 0x5078, 0x784d, - 0x3278, 0x5327, 0x7826, 0x4f4b, 0x675a, 0x4042, 0x733f, 0x786e, - 0x3723, 0x3055, 0x425e, 0x6e3c, 0x6e3f, 0x7447, 0x5265, 0x4f30, - 0x474c, 0x716f, 0x716c, 0x4a25, 0x4e45, 0x412a, 0x344f, 0x4979, - 0x4b4a, 0x7179, 0x4474, 0x5630, 0x7177, 0x4c7d, 0x417b, 0x4b60, - 0x5032, 0x6b56, 0x554d, 0x784c, 0x4976, 0x6b4b, 0x6b61, 0x4454, - 0x5657, 0x3326, 0x3774, 0x3d3a, 0x4465, 0x3528, 0x6b5a, 0x4527, - 0x4133, 0x466a, 0x6b77, 0x4030, 0x6b4d, 0x5460, 0x5975, 0x4159, - 0x4c28, 0x536b, 0x504b, 0x3e59, 0x3e49, 0x7867, 0x3255, 0x742f, - 0x3d22, 0x7435, 0x3c68, 0x515e, 0x5b3b, 0x5c51, 0x785c, 0x7832, - 0x7843, 0x572f, 0x3e25, 0x3c54, 0x5c48, 0x3b2a, 0x5c49, 0x4033, - 0x4d72, 0x5d2b, 0x5236, 0x5d26, 0x5d27, 0x4e2d, 0x7877, 0x3b67, - 0x5d3b, 0x5d2a, 0x3254, 0x5d25, 0x3847, 0x412b, 0x5c4a, 0x5c6a, - 0x7825, 0x5d64, 0x3d2f, 0x5c60, 0x5271, 0x5d21, 0x5d5b, 0x5c71, - 0x5d24, 0x5c3f, 0x5d35, 0x5c69, 0x5d5e, 0x3534, 0x4e5f, 0x4f74, - 0x5d77, 0x5c76, 0x3c3b, 0x5c3c, 0x7844, 0x473e, 0x5d32, 0x3c76, - 0x4878, 0x5c79, 0x4036, 0x5d23, 0x5255, 0x5229, 0x5e34, 0x544c, - 0x5c42, 0x302a, 0x5d7e, 0x5e2d, 0x422b, 0x4b55, 0x463b, 0x5e3a, - 0x5d7c, 0x5c57, 0x403c, 0x5d71, 0x425c, 0x3426, 0x4232, 0x3a45, - 0x3f77, 0x724c, 0x7239, 0x784b, 0x4a34, 0x4f3a, 0x4e4f, 0x724f, - 0x426c, 0x5329, 0x7277, 0x555d, 0x7265, 0x727d, 0x7231, 0x3275, - 0x724d, 0x3366, 0x7249, 0x524f, 0x532c, 0x7232, 0x7253, 0x726e, - 0x402f, 0x7243, 0x3946, 0x324f, 0x4279, 0x565a, 0x785a, 0x4a75, - 0x4e40, 0x3365, 0x563b, 0x7441, 0x406f, 0x3239, 0x5730, 0x7925, - 0x7834, 0x3f63, 0x714d, 0x715a, 0x5974, 0x7150, 0x3040, 0x714f, - 0x7149, 0x715c, 0x4d60, 0x7821, 0x3344, 0x4f2e, 0x3c7b, 0x3966, - 0x4359, 0x4a53, 0x6a68, 0x6a6a, 0x6a6c, 0x4757, 0x6a69, 0x6a6d, - 0x6a6e, 0x6a6f, 0x3e75, 0x4040, 0x6a6b, 0x395b, 0x757c, 0x7623, - 0x3425, 0x5a25, 0x3629, 0x383c, 0x3c46, 0x5136, 0x5a27, 0x4c56, - 0x5a26, 0x5135, 0x5a28, 0x467d, 0x3c47, 0x366f, 0x5148, 0x4b4f, - 0x3e77, 0x5a2b, 0x3743, 0x4968, 0x506d, 0x4b5f, 0x5a2d, 0x556f, - 0x5a2c, 0x5a2e, 0x5a2a, 0x5529, 0x5a31, 0x5a2f, 0x4640, 0x5a30, - 0x5767, 0x344a, 0x5a3c, 0x512f, 0x5268, 0x4a54, 0x4a2b, 0x326f, - 0x5a38, 0x396e, 0x5a39, 0x5a35, 0x3b30, 0x3843, 0x4f6a, 0x5a37, - 0x5a36, 0x5a34, 0x5a33, 0x566f, 0x5a32, 0x3f64, 0x484f, 0x5a3f, - 0x5a40, 0x352e, 0x5355, 0x5a3d, 0x536f, 0x334f, 0x3d6b, 0x4e5c, - 0x4e73, 0x5a3e, 0x4b50, 0x3b65, 0x4b35, 0x4b2d, 0x3f4e, 0x5a47, - 0x374c, 0x526a, 0x3577, 0x5a46, 0x573b, 0x4c38, 0x5a43, 0x476b, - 0x5a3a, 0x5a41, 0x5a42, 0x4142, 0x425b, 0x5a45, 0x5a44, 0x357d, - 0x5a52, 0x5a3b, 0x5a4c, 0x5a50, 0x5033, 0x5a49, 0x5a4d, 0x5a51, - 0x3b64, 0x5a4f, 0x5a48, 0x376d, 0x566e, 0x5168, 0x5a4e, 0x4535, - 0x4431, 0x5a4b, 0x4e3d, 0x4c5c, 0x565f, 0x3b51, 0x4355, 0x5a57, - 0x5a4a, 0x5a55, 0x3079, 0x472b, 0x5a56, 0x3d32, 0x503b, 0x5225, - 0x5a53, 0x5a58, 0x437d, 0x5a59, 0x5a29, 0x3d77, 0x4321, 0x5624, - 0x5a5c, 0x3c25, 0x5a5a, 0x4a36, 0x5a5b, 0x4c37, 0x4657, 0x5a5e, - 0x526b, 0x5269, 0x4734, 0x3b24, 0x537e, 0x3641, 0x3164, 0x7645, - 0x3277, 0x4843, 0x403e, 0x5a5f, 0x5a54, 0x5a5d, 0x4671, 0x3761, - 0x3134, 0x556a, 0x383a, 0x3246, 0x3931, 0x4636, 0x3b75, 0x3737, - 0x4c30, 0x3961, 0x5470, 0x567c, 0x6a5b, 0x6a5f, 0x3721, 0x3973, - 0x3161, 0x4272, 0x347b, 0x6a5c, 0x3751, 0x4c79, 0x6a5d, 0x4333, - 0x3a58, 0x6a5a, 0x4238, 0x415e, 0x3b5f, 0x6a60, 0x574a, 0x3c56, - 0x5474, 0x6a62, 0x495e, 0x3176, 0x6a64, 0x6a63, 0x344d, 0x494d, - 0x4562, 0x6259, 0x4f4d, 0x4274, 0x3c7a, 0x3833, 0x6a66, 0x564a, - 0x6a65, 0x554b, 0x3644, 0x4035, 0x572c, 0x6a67, 0x393a, 0x487c, - 0x5853, 0x6a5e, 0x5738, 0x5479, 0x545e, 0x584d, 0x4944, 0x532e, - 0x6a61, 0x4a6a, 0x3853, 0x545f, 0x384f, 0x5554, 0x4777, 0x7475, - 0x3c79, 0x533b, 0x7544, 0x754f, 0x7567, 0x754e, 0x753b, 0x336c, - 0x7552, 0x543e, 0x755c, 0x7548, 0x7559, 0x7551, 0x7566, 0x345a, - 0x7572, 0x756f, 0x477b, 0x3335, 0x547e, 0x396c, 0x3e7c, 0x5079, - 0x696d, 0x696e, 0x486d, 0x6975, 0x6974, 0x696f, 0x5661, 0x6972, - 0x6977, 0x6970, 0x6973, 0x6978, 0x3d4f, 0x697b, 0x697a, 0x5458, - 0x6979, 0x697c, 0x3828, 0x4761, 0x413e, 0x6a22, 0x3b54, 0x697e, - 0x6a21, 0x3975, 0x697d, 0x3132, 0x4256, 0x3c2d, 0x6a23, 0x4a64, - 0x3778, 0x5537, 0x535f, 0x6c31, 0x4f3d, 0x542f, 0x6a24, 0x572a, - 0x555e, 0x3d4e, 0x6a25, 0x3a64, 0x604e, 0x6976, 0x6971, 0x306c, - 0x3447, 0x3168, 0x3167, 0x4529, 0x783c, 0x6549, 0x5562, 0x412c, - 0x3d78, 0x544b, 0x397d, 0x346f, 0x4e25, 0x5137, 0x355d, 0x5436, - 0x4a4a, 0x3359, 0x4728, 0x5121, 0x5245, 0x4149, 0x4275, 0x3b39, - 0x6547, 0x315f, 0x425f, 0x654e, 0x7879, 0x5b23, 0x534a, 0x5b29, - 0x4f67, 0x575e, 0x5a79, 0x5447, 0x354b, 0x5623, 0x415a, 0x3526, - 0x5a7e, 0x5b26, 0x5a77, 0x5b2a, 0x544d, 0x3373, 0x523d, 0x3d34, - 0x4470, 0x5046, 0x7527, 0x7526, 0x4a4d, 0x784e, 0x6e44, 0x6e45, - 0x6e46, 0x6e49, 0x6e48, 0x3624, 0x6e47, 0x556b, 0x3576, 0x6e4c, - 0x6e4b, 0x3730, 0x6e4e, 0x6e4a, 0x6e4f, 0x4725, 0x6e59, 0x6e55, - 0x6e57, 0x6e50, 0x4446, 0x365b, 0x3933, 0x6e54, 0x6e53, 0x332e, - 0x4525, 0x3e7b, 0x3846, 0x6e58, 0x6e51, 0x6e56, 0x6e6a, 0x6e66, - 0x6e5d, 0x4165, 0x6e5c, 0x6e60, 0x6e6b, 0x6e5a, 0x6e5f, 0x534b, - 0x6e64, 0x3c58, 0x6e52, 0x6e68, 0x6e67, 0x6e69, 0x322c, 0x6e5e, - 0x472f, 0x432d, 0x4726, 0x6e61, 0x3227, 0x6e5b, 0x6e62, 0x6e63, - 0x3d42, 0x6e6f, 0x3875, 0x6e7e, 0x5278, 0x6f25, 0x4d2d, 0x4f33, - 0x6e7d, 0x6e79, 0x437a, 0x6f22, 0x4f4e, 0x6e6e, 0x6f28, 0x523f, - 0x6e77, 0x6f27, 0x6e7b, 0x6e70, 0x6f24, 0x6e6d, 0x6e76, 0x4f7a, - 0x5062, 0x4c60, 0x6f31, 0x4241, 0x6f36, 0x503f, 0x3135, 0x6e7a, - 0x6e72, 0x3766, 0x6f32, 0x6f37, 0x6e74, 0x337a, 0x6f2d, 0x6f38, - 0x6f30, 0x464c, 0x4871, 0x6e71, 0x6f2f, 0x6f2e, 0x6f2b, 0x6f33, - 0x3e62, 0x3856, 0x6f3e, 0x6f3a, 0x6f42, 0x6f43, 0x5736, 0x6f39, - 0x6f3f, 0x3438, 0x6f45, 0x6f23, 0x6f3c, 0x6f44, 0x3627, 0x472e, - 0x3d75, 0x432a, 0x4e7d, 0x6f40, 0x346d, 0x423c, 0x434c, 0x7823, - 0x6f2a, 0x6f3d, 0x4f47, 0x6f41, 0x6e4d, 0x6f47, 0x3978, 0x3646, - 0x6f49, 0x5521, 0x364d, 0x6f4a, 0x6f46, 0x6f3b, 0x4742, 0x6f4c, - 0x3c7c, 0x6f48, 0x5560, 0x6f71, 0x433e, 0x6f4d, 0x6f51, 0x3077, - 0x4b78, 0x6f53, 0x4e59, 0x5d76, 0x6f56, 0x6e78, 0x6f21, 0x6f4b, - 0x3864, 0x5572, 0x6f57, 0x4478, 0x6f58, 0x6f54, 0x6f55, 0x6f5f, - 0x6f60, 0x4134, 0x6f52, 0x6f5d, 0x6f61, 0x6f2c, 0x6f4f, 0x6f5b, - 0x6f5c, 0x6f5e, 0x3279, 0x3e35, 0x6f5a, 0x6f4e, 0x7649, 0x6e7c, - 0x6f64, 0x6f6a, 0x6e73, 0x6f26, 0x414d, 0x6f29, 0x6f66, 0x6f62, - 0x5653, 0x6f6b, 0x6f63, 0x6f68, 0x6f34, 0x6f35, 0x6f50, 0x412d, - 0x6f6d, 0x4058, 0x4c7a, 0x6e6c, 0x6e75, 0x6f6e, 0x567d, 0x6f6c, - 0x6f59, 0x3c78, 0x6f6f, 0x6e65, 0x6f70, 0x6f65, 0x6f67, 0x543f, - 0x4f62, 0x4477, 0x6f69, 0x4260, 0x576a, 0x7647, 0x5464, 0x3324, - 0x4345, 0x6345, 0x4941, 0x6346, 0x3155, 0x3f2a, 0x634a, 0x6348, - 0x4872, 0x4f50, 0x3c64, 0x6349, 0x5522, 0x3a52, 0x3873, 0x7839, - 0x3727, 0x396b, 0x4376, 0x634d, 0x634f, 0x634c, 0x5444, 0x6351, - 0x514b, 0x5156, 0x6355, 0x6354, 0x6350, 0x6353, 0x6356, 0x7822, - 0x6347, 0x402b, 0x6357, 0x403b, 0x6359, 0x6358, 0x635a, 0x3433, - 0x3958, 0x635b, 0x327b, 0x785b, 0x634b, 0x5a6a, 0x4942, 0x5573, - 0x5275, 0x3342, 0x423d, 0x5174, 0x3653, 0x3d57, 0x5449, 0x3c4a, - 0x4b66, 0x4f55, 0x527e, 0x4224, 0x4125, 0x7922, 0x4b64, 0x4b2b, - 0x337b, 0x5453, 0x406b, 0x4451, 0x5446, 0x3567, 0x4e6d, 0x762b, - 0x7628, 0x7630, 0x4169, 0x7626, 0x584c, 0x392e, 0x7864, 0x7733, - 0x7732, 0x7861, 0x7735, 0x4e24, 0x484d, 0x3a2b, 0x6838, 0x683a, - 0x6839, 0x4f6c, 0x5233, 0x3625, 0x476a, 0x4f6e, 0x4b33, 0x717c, - 0x506b, 0x676f, 0x4b4c, 0x717d, 0x717e, 0x5424, 0x4d67, 0x3064, - 0x3659, 0x4644, 0x416c, 0x7222, 0x7221, 0x5243, 0x7224, 0x4d37, - 0x3c55, 0x7225, 0x3e31, 0x4635, 0x4d47, 0x3f45, 0x4c62, 0x366e, - 0x7226, 0x7227, 0x5155, 0x5438, 0x722a, 0x355f, 0x4060, 0x7229, - 0x722b, 0x394b, 0x327c, 0x722c, 0x4f54, 0x722d, 0x422d, 0x7228, - 0x4827, 0x3767, 0x6c29, 0x6c2a, 0x786c, 0x7837, 0x6c2b, 0x6c2c, - 0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x623b, 0x783f, 0x623d, 0x623f, - 0x6240, 0x6241, 0x3739, 0x527b, 0x6242, 0x4b47, 0x3125, 0x4a4e, - 0x3d48, 0x317d, 0x6243, 0x5178, 0x367c, 0x6244, 0x4459, 0x3676, - 0x5360, 0x6246, 0x3d24, 0x4f5a, 0x395d, 0x623c, 0x6247, 0x623e, - 0x4173, 0x6248, 0x6249, 0x4278, 0x624a, 0x624b, 0x624c, 0x4021, - 0x624d, 0x3c22, 0x4844, 0x774f, 0x7750, 0x3276, 0x624e, 0x426d, - 0x5426, 0x376b, 0x4d54, 0x335b, 0x5131, 0x3235, 0x5724, 0x6665, - 0x3e54, 0x6660, 0x3c5d, 0x6666, 0x6662, 0x4a3b, 0x4d55, 0x6661, - 0x426e, 0x6669, 0x3a27, 0x4266, 0x3f25, 0x3352, 0x666d, 0x666c, - 0x466f, 0x666b, 0x6670, 0x462d, 0x6539, 0x666f, 0x6672, 0x4c5a, - 0x6663, 0x4927, 0x6673, 0x4262, 0x5d6b, 0x6671, 0x666e, 0x6674, - 0x6675, 0x477d, 0x6668, 0x6667, 0x6676, 0x3d3e, 0x5169, 0x3e2a, - 0x6664, 0x5668, 0x423f, 0x6678, 0x6677, 0x666a, 0x3039, 0x7743, - 0x787e, 0x4c65, 0x7746, 0x7745, 0x7831, 0x4b49, 0x783a, 0x7876, - 0x775e, 0x3637, 0x4456, 0x6352, 0x634e, 0x5374, 0x774b, 0x774a, - 0x5363, 0x4233, 0x7650, 0x764f, 0x7651, 0x7652, 0x7653, 0x7658, - 0x312b, 0x7656, 0x765a, 0x765f, 0x765c, 0x765b, 0x765e, 0x7659, - 0x4f4a, 0x7667, 0x7661, 0x7669, 0x4070, 0x7668, 0x7676, 0x766b, - 0x7674, 0x7671, 0x766e, 0x7672, 0x766f, 0x7670, 0x3e28, 0x766c, - 0x766d, 0x7673, 0x7675, 0x766a, 0x767d, 0x7678, 0x767c, 0x767a, - 0x7679, 0x767b, 0x487a, 0x767e, 0x7665, 0x7724, 0x7723, 0x7725, - 0x7722, 0x7663, 0x7721, 0x7726, 0x772a, 0x7666, 0x7664, 0x7729, - 0x7727, 0x772b, 0x7728, 0x316e, 0x772e, 0x772d, 0x772c, 0x415b, - 0x7660, 0x7677, 0x7657, 0x772f, 0x765d, 0x7654, 0x7662, 0x4471, - 0x702f, 0x596c, 0x376f, 0x4379, 0x7030, 0x7032, 0x7031, 0x513b, - 0x4d52, 0x5427, 0x7036, 0x7037, 0x7033, 0x516c, 0x513c, 0x7039, - 0x703b, 0x3a68, 0x386b, 0x703c, 0x3e69, 0x7041, 0x703e, 0x7043, - 0x366c, 0x7040, 0x7044, 0x7046, 0x4574, 0x7047, 0x4835, 0x7034, - 0x7048, 0x7045, 0x7049, 0x704a, 0x704c, 0x704d, 0x5d3a, 0x3a57, - 0x773d, 0x704f, 0x704b, 0x704e, 0x3c26, 0x7051, 0x4538, 0x703a, - 0x7052, 0x7038, 0x7054, 0x7053, 0x7055, 0x7042, 0x7056, 0x5325, - 0x7058, 0x7057, 0x7035, 0x7050, 0x7059, 0x703f, 0x703d, 0x7852, - 0x7874, 0x753a, 0x3c6f, 0x514e, 0x4076, 0x4273, 0x746f, 0x7865, - 0x7859, 0x4334, 0x5964, 0x3563, 0x3533, 0x7775, 0x7854, 0x7772, - 0x763c, 0x763d, 0x763e, 0x782e, 0x466b, 0x552b, 0x6c34, 0x335d, - 0x7633, 0x7635, 0x7637, 0x7634, 0x7636, 0x4164, 0x782a, 0x7638, - 0x763a, 0x7639, 0x4823, 0x763b, 0x417a, 0x4553, 0x3928, 0x6d68, - 0x396a, 0x2672, 0x2674, 0x2675, 0x2660, 0x2661, 0x2670, 0x2671, - 0x2662, 0x2663, 0x266e, 0x266f, 0x2666, 0x2667, 0x2664, 0x2665, - 0x2668, 0x2669, 0x266a, 0x266b, -}; - -static const Summary16 gb12345ext_uni2indx_page01[23] = { - /* 0x0100 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0110 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0200 }, - /* 0x0200 */ - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0002 }, { 4, 0x0002 }, -}; -static const Summary16 gb12345ext_uni2indx_page1e[4] = { - /* 0x1e00 */ - { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x8000 }, -}; -static const Summary16 gb12345ext_uni2indx_page22[3] = { - /* 0x2200 */ - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0020 }, -}; -static const Summary16 gb12345ext_uni2indx_page4e[1306] = { - /* 0x4e00 */ - { 7, 0x0080 }, { 8, 0x0002 }, { 9, 0x0000 }, { 9, 0x0001 }, - { 10, 0x0100 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0004 }, { 12, 0x4002 }, { 14, 0x0000 }, { 14, 0x0000 }, - { 14, 0x0040 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0080 }, - /* 0x4f00 */ - { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, - { 16, 0x0000 }, { 16, 0x0200 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0040 }, { 18, 0x0040 }, { 19, 0x0000 }, { 19, 0x0000 }, - { 19, 0x0004 }, { 20, 0x0000 }, { 20, 0x0001 }, { 21, 0x0000 }, - /* 0x5000 */ - { 21, 0x0a41 }, { 25, 0x0002 }, { 26, 0x0800 }, { 27, 0x0000 }, - { 27, 0x0200 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0030 }, - { 30, 0x0000 }, { 30, 0x0340 }, { 33, 0x2004 }, { 35, 0x40b8 }, - { 40, 0x0224 }, { 43, 0x4022 }, { 46, 0x0120 }, { 48, 0x0200 }, - /* 0x5100 */ - { 49, 0x0315 }, { 54, 0x8131 }, { 59, 0x0400 }, { 60, 0x1c84 }, - { 65, 0x0000 }, { 65, 0x0404 }, { 67, 0x0200 }, { 68, 0x0000 }, - { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0004 }, - { 69, 0x2040 }, { 71, 0x0000 }, { 71, 0x2001 }, { 73, 0x0002 }, - /* 0x5200 */ - { 74, 0x0000 }, { 74, 0x0004 }, { 75, 0x0000 }, { 75, 0x0000 }, - { 75, 0x0890 }, { 78, 0x0800 }, { 79, 0x4000 }, { 80, 0x0030 }, - { 82, 0x3688 }, { 88, 0x0002 }, { 89, 0x0000 }, { 89, 0x0000 }, - { 89, 0x0002 }, { 90, 0x6a20 }, { 95, 0x0004 }, { 96, 0x0122 }, - /* 0x5300 */ - { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0xa000 }, { 101, 0x0002 }, - { 102, 0x0001 }, { 103, 0x0010 }, { 104, 0x0000 }, { 104, 0x0000 }, - { 104, 0x0004 }, { 105, 0x0200 }, { 106, 0x2001 }, { 108, 0x0014 }, - { 110, 0x0008 }, { 111, 0x0000 }, { 111, 0x0404 }, { 113, 0x0041 }, - /* 0x5400 */ - { 115, 0x4000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x1000 }, - { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0002 }, { 118, 0x0000 }, - /* 0x5500 */ - { 118, 0x0010 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, - { 119, 0x8000 }, { 120, 0x4008 }, { 122, 0x0000 }, { 122, 0x0000 }, - { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x5400 }, { 125, 0x0004 }, - { 126, 0x40c0 }, { 129, 0x0400 }, { 130, 0x0200 }, { 131, 0x0040 }, - /* 0x5600 */ - { 132, 0x2040 }, { 134, 0x10d0 }, { 138, 0xc200 }, { 141, 0x0121 }, - { 144, 0x0002 }, { 145, 0x2000 }, { 146, 0x8061 }, { 150, 0x0314 }, - { 154, 0x1081 }, { 157, 0x0220 }, { 159, 0x4140 }, { 162, 0x0058 }, - { 165, 0x1327 }, { 172, 0x0002 }, { 173, 0x0000 }, { 173, 0x0000 }, - /* 0x5700 */ - { 173, 0x2880 }, { 176, 0x014c }, { 180, 0x0000 }, { 180, 0x0000 }, - { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, - { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, - { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0002 }, { 181, 0x0080 }, - /* 0x5800 */ - { 182, 0x0420 }, { 184, 0x2040 }, { 186, 0x8000 }, { 187, 0x0012 }, - { 189, 0x8c00 }, { 192, 0x0084 }, { 194, 0x0014 }, { 196, 0x0220 }, - { 198, 0x0400 }, { 199, 0x1000 }, { 200, 0x4000 }, { 201, 0x4808 }, - { 204, 0x0080 }, { 205, 0xc708 }, { 211, 0x8205 }, { 215, 0x2400 }, - /* 0x5900 */ - { 217, 0x0000 }, { 217, 0x0000 }, { 217, 0x0004 }, { 218, 0x4100 }, - { 220, 0x0000 }, { 220, 0x0000 }, { 220, 0x5600 }, { 224, 0x0000 }, - { 224, 0x0000 }, { 224, 0x2000 }, { 225, 0x0000 }, { 225, 0x0000 }, - { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, - /* 0x5a00 */ - { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, { 225, 0x0000 }, - { 225, 0x0002 }, { 226, 0x0000 }, { 226, 0x2040 }, { 228, 0x0000 }, - { 228, 0x0000 }, { 228, 0x0000 }, { 228, 0x0080 }, { 229, 0x2000 }, - { 230, 0x0000 }, { 230, 0x0080 }, { 231, 0x0000 }, { 231, 0x0820 }, - /* 0x5b00 */ - { 233, 0x1901 }, { 237, 0x0200 }, { 238, 0x0402 }, { 240, 0x0101 }, - { 242, 0x1000 }, { 243, 0x0000 }, { 243, 0x0800 }, { 244, 0x8100 }, - { 246, 0x0000 }, { 246, 0x0000 }, { 246, 0x0000 }, { 246, 0x0000 }, - { 246, 0x0000 }, { 246, 0x0000 }, { 246, 0x1ac4 }, { 252, 0x0060 }, - /* 0x5c00 */ - { 254, 0x6980 }, { 259, 0x0000 }, { 259, 0x0000 }, { 259, 0x0080 }, - { 260, 0x0000 }, { 260, 0x0000 }, { 260, 0x1114 }, { 264, 0x0000 }, - { 264, 0x0000 }, { 264, 0x0000 }, { 264, 0x0002 }, { 265, 0x0000 }, - { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x0000 }, { 265, 0x2050 }, - /* 0x5d00 */ - { 268, 0x2000 }, { 269, 0x0080 }, { 270, 0x1000 }, { 271, 0x0000 }, - { 271, 0x0000 }, { 271, 0x0001 }, { 272, 0x0000 }, { 272, 0x0000 }, - { 272, 0x0092 }, { 275, 0x0080 }, { 276, 0x0081 }, { 278, 0x1500 }, - { 281, 0x0800 }, { 282, 0x0014 }, { 284, 0x0000 }, { 284, 0x0001 }, - /* 0x5e00 */ - { 285, 0x0000 }, { 285, 0x0100 }, { 286, 0x0820 }, { 288, 0x0048 }, - { 290, 0x0009 }, { 292, 0x8180 }, { 295, 0x1808 }, { 298, 0xc204 }, - { 302, 0x0000 }, { 302, 0x0000 }, { 302, 0x0800 }, { 303, 0x0000 }, - { 303, 0x0000 }, { 303, 0x8000 }, { 304, 0x100f }, { 309, 0x0008 }, - /* 0x5f00 */ - { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0000 }, { 310, 0x0028 }, - { 312, 0x5140 }, { 316, 0x0200 }, { 317, 0x0000 }, { 317, 0x0000 }, - { 317, 0x1000 }, { 318, 0x4002 }, { 320, 0x0201 }, { 322, 0x0200 }, - { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, - /* 0x6000 */ - { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, - { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, - { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x0060 }, - { 325, 0x0000 }, { 325, 0x0000 }, { 325, 0x0002 }, { 326, 0x0806 }, - /* 0x6100 */ - { 329, 0x0000 }, { 329, 0x1800 }, { 331, 0x0000 }, { 331, 0xc090 }, - { 335, 0x0800 }, { 336, 0x8500 }, { 339, 0x4c18 }, { 344, 0x0048 }, - { 346, 0x0404 }, { 348, 0x0407 }, { 352, 0x4810 }, { 355, 0x0044 }, - { 357, 0x1280 }, { 360, 0xc000 }, { 362, 0x0108 }, { 364, 0x55c4 }, - /* 0x6200 */ - { 371, 0x0081 }, { 373, 0x0010 }, { 374, 0x0080 }, { 375, 0x0005 }, - { 377, 0x0000 }, { 377, 0x0002 }, { 378, 0x0000 }, { 378, 0x0000 }, - { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, - { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, - /* 0x6300 */ - { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x0000 }, { 378, 0x4000 }, - { 379, 0x0000 }, { 379, 0x0000 }, { 379, 0x4900 }, { 382, 0x0004 }, - { 383, 0x0018 }, { 385, 0x0000 }, { 385, 0x0000 }, { 385, 0x0000 }, - { 385, 0x0001 }, { 386, 0x0400 }, { 387, 0x4000 }, { 388, 0x0000 }, - /* 0x6400 */ - { 388, 0x2000 }, { 389, 0x0080 }, { 390, 0x0000 }, { 390, 0x0040 }, - { 391, 0x0000 }, { 391, 0x9002 }, { 394, 0x8000 }, { 395, 0x0848 }, - { 398, 0x0100 }, { 399, 0x8008 }, { 401, 0x0828 }, { 404, 0xc80c }, - { 409, 0x0c92 }, { 414, 0x0410 }, { 416, 0x9001 }, { 419, 0x5c97 }, - /* 0x6500 */ - { 428, 0x8050 }, { 431, 0x2a50 }, { 436, 0x141c }, { 441, 0x0000 }, - { 441, 0x0000 }, { 441, 0x0080 }, { 442, 0x0000 }, { 442, 0x0120 }, - { 444, 0x000c }, { 446, 0x00a0 }, { 448, 0x1000 }, { 449, 0x0080 }, - { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, - /* 0x6600 */ - { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, { 450, 0x0000 }, - { 450, 0x0004 }, { 451, 0x2000 }, { 452, 0x0000 }, { 452, 0x0000 }, - { 452, 0x0300 }, { 454, 0x0000 }, { 454, 0x0804 }, { 456, 0x0000 }, - { 456, 0x02d0 }, { 460, 0x0040 }, { 461, 0x1001 }, { 463, 0x0100 }, - /* 0x6700 */ - { 464, 0x0008 }, { 465, 0x0000 }, { 465, 0x8080 }, { 467, 0x0010 }, - { 468, 0x0000 }, { 468, 0x0000 }, { 468, 0x0000 }, { 468, 0x4002 }, - { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, - { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, - /* 0x6800 */ - { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, - { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, - { 470, 0x0000 }, { 470, 0xa100 }, { 473, 0x0000 }, { 473, 0x0000 }, - { 473, 0x0000 }, { 473, 0x80c0 }, { 476, 0x0080 }, { 477, 0x0000 }, - /* 0x6900 */ - { 477, 0x8000 }, { 478, 0x0000 }, { 478, 0x0000 }, { 478, 0x0000 }, - { 478, 0x0400 }, { 479, 0x0008 }, { 480, 0x2100 }, { 482, 0x0020 }, - { 483, 0x0000 }, { 483, 0x0000 }, { 483, 0x4400 }, { 485, 0x8000 }, - { 486, 0x2800 }, { 488, 0x0000 }, { 488, 0x0080 }, { 489, 0x0008 }, - /* 0x6a00 */ - { 490, 0x0026 }, { 493, 0x4208 }, { 496, 0x0008 }, { 497, 0x0700 }, - { 500, 0x0900 }, { 502, 0x8000 }, { 503, 0x0004 }, { 504, 0x0000 }, - { 504, 0x0200 }, { 505, 0x1010 }, { 507, 0x800c }, { 510, 0x0908 }, - { 513, 0x0008 }, { 514, 0xec08 }, { 520, 0x1580 }, { 524, 0x0908 }, - /* 0x6b00 */ - { 527, 0x8410 }, { 530, 0x4044 }, { 533, 0x0000 }, { 533, 0x2000 }, - { 534, 0x0000 }, { 534, 0x8001 }, { 536, 0x0002 }, { 537, 0x0184 }, - { 540, 0x0000 }, { 540, 0x4100 }, { 542, 0xc810 }, { 546, 0x0c04 }, - { 549, 0x0040 }, { 550, 0x0000 }, { 550, 0x0000 }, { 550, 0x8000 }, - /* 0x6c00 */ - { 551, 0x1100 }, { 553, 0x0000 }, { 553, 0x1808 }, { 556, 0x0000 }, - { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, - { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, - { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, - /* 0x6d00 */ - { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, - { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0000 }, { 556, 0x0200 }, - { 557, 0x0084 }, { 559, 0x0000 }, { 559, 0x0000 }, { 559, 0x0000 }, - { 559, 0x0001 }, { 560, 0x0000 }, { 560, 0x0400 }, { 561, 0x0460 }, - /* 0x6e00 */ - { 564, 0x0000 }, { 564, 0x0000 }, { 564, 0x1040 }, { 566, 0x4000 }, - { 567, 0x0000 }, { 567, 0x4000 }, { 568, 0x8000 }, { 569, 0x0000 }, - { 569, 0x0000 }, { 569, 0x2040 }, { 571, 0x0000 }, { 571, 0x0000 }, - { 571, 0x5030 }, { 575, 0x0000 }, { 575, 0x9000 }, { 577, 0x8184 }, - /* 0x6f00 */ - { 581, 0x0002 }, { 582, 0x0400 }, { 583, 0x100c }, { 586, 0x8104 }, - { 589, 0x0002 }, { 590, 0x0212 }, { 593, 0x8010 }, { 595, 0x8081 }, - { 598, 0x00c1 }, { 601, 0x0080 }, { 602, 0x4211 }, { 606, 0x0002 }, - { 607, 0x000a }, { 609, 0x8920 }, { 613, 0x0810 }, { 615, 0x5403 }, - /* 0x7000 */ - { 620, 0x8a60 }, { 625, 0xa120 }, { 629, 0x0181 }, { 632, 0x4005 }, - { 635, 0x0018 }, { 637, 0x2122 }, { 641, 0x0098 }, { 644, 0x0000 }, - { 644, 0x0000 }, { 644, 0x0000 }, { 644, 0x0000 }, { 644, 0x0000 }, - { 644, 0x8000 }, { 645, 0x0000 }, { 645, 0x0000 }, { 645, 0x0010 }, - /* 0x7100 */ - { 646, 0x0000 }, { 646, 0x0000 }, { 646, 0x0002 }, { 647, 0x0000 }, - { 647, 0x0200 }, { 648, 0x0004 }, { 649, 0x1204 }, { 652, 0x0000 }, - { 652, 0x0000 }, { 652, 0x0084 }, { 654, 0x0000 }, { 654, 0x4002 }, - { 656, 0x0102 }, { 658, 0x9204 }, { 662, 0x2040 }, { 664, 0x5010 }, - /* 0x7200 */ - { 667, 0x2000 }, { 668, 0x0801 }, { 670, 0x0000 }, { 670, 0x4404 }, - { 673, 0x0000 }, { 673, 0x0100 }, { 674, 0x0000 }, { 674, 0x2000 }, - { 675, 0x0000 }, { 675, 0x0040 }, { 676, 0x0084 }, { 678, 0x0000 }, - { 678, 0x0001 }, { 679, 0x0000 }, { 679, 0x0000 }, { 679, 0x2200 }, - /* 0x7300 */ - { 681, 0x0000 }, { 681, 0x0000 }, { 681, 0x0000 }, { 681, 0x0840 }, - { 683, 0x0032 }, { 686, 0x0000 }, { 686, 0x0d00 }, { 689, 0x1da5 }, - { 697, 0x0001 }, { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0000 }, - { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x4000 }, - /* 0x7400 */ - { 699, 0x0000 }, { 699, 0x0000 }, { 699, 0x0000 }, { 699, 0x8000 }, - { 700, 0x0800 }, { 701, 0x0000 }, { 701, 0x0608 }, { 704, 0x0000 }, - { 704, 0x0200 }, { 705, 0x0000 }, { 705, 0x0048 }, { 707, 0x2001 }, - { 709, 0x8400 }, { 711, 0x0410 }, { 713, 0x0000 }, { 713, 0x0000 }, - /* 0x7500 */ - { 713, 0x1000 }, { 714, 0x0000 }, { 714, 0x0008 }, { 715, 0x0000 }, - { 715, 0x0000 }, { 715, 0x2000 }, { 716, 0x0804 }, { 718, 0x0040 }, - { 719, 0x0080 }, { 720, 0x0000 }, { 720, 0x0000 }, { 720, 0x0000 }, - { 720, 0x0080 }, { 721, 0x0200 }, { 722, 0x0000 }, { 722, 0x0000 }, - /* 0x7600 */ - { 722, 0x2804 }, { 725, 0x4000 }, { 726, 0x0082 }, { 728, 0x0800 }, - { 729, 0x02c4 }, { 733, 0x8100 }, { 735, 0x72b4 }, { 743, 0x1007 }, - { 747, 0x0000 }, { 747, 0x0400 }, { 748, 0x0000 }, { 748, 0x0500 }, - { 750, 0x0000 }, { 750, 0x4000 }, { 751, 0x009a }, { 755, 0x0000 }, - /* 0x7700 */ - { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, - { 755, 0x8000 }, { 756, 0x4000 }, { 757, 0x0000 }, { 757, 0x0000 }, - { 757, 0x0000 }, { 757, 0x4100 }, { 759, 0x2000 }, { 760, 0x1000 }, - { 761, 0x0080 }, { 762, 0x0400 }, { 763, 0x8000 }, { 764, 0x0000 }, - /* 0x7800 */ - { 764, 0x0000 }, { 764, 0x0000 }, { 764, 0x0000 }, { 764, 0x0000 }, - { 764, 0x0008 }, { 765, 0x0000 }, { 765, 0xc110 }, { 769, 0x0000 }, - { 769, 0x0000 }, { 769, 0x0000 }, { 769, 0x2200 }, { 771, 0x1500 }, - { 774, 0x0000 }, { 774, 0x0400 }, { 775, 0x8088 }, { 778, 0x2000 }, - /* 0x7900 */ - { 779, 0x4000 }, { 780, 0x0200 }, { 781, 0x1c40 }, { 785, 0x0002 }, - { 786, 0x0000 }, { 786, 0x0000 }, { 786, 0x0000 }, { 786, 0x0000 }, - { 786, 0x6000 }, { 788, 0x0000 }, { 788, 0x4440 }, { 791, 0x0003 }, - { 793, 0x2000 }, { 794, 0x0000 }, { 794, 0x0000 }, { 794, 0x0000 }, - /* 0x7a00 */ - { 794, 0x0000 }, { 794, 0x0000 }, { 794, 0x4000 }, { 795, 0x0002 }, - { 796, 0x7001 }, { 800, 0x0000 }, { 800, 0x0a06 }, { 804, 0x0000 }, - { 804, 0x0000 }, { 804, 0x0000 }, { 804, 0x4600 }, { 807, 0x0440 }, - { 809, 0x05b0 }, { 814, 0x0000 }, { 814, 0x0400 }, { 815, 0x0040 }, - /* 0x7b00 */ - { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, - { 816, 0x0040 }, { 817, 0x0002 }, { 818, 0x0080 }, { 819, 0x0000 }, - { 819, 0x0800 }, { 820, 0x0000 }, { 820, 0x0000 }, { 820, 0x0000 }, - { 820, 0x0a11 }, { 824, 0x0000 }, { 824, 0x0210 }, { 826, 0x0008 }, - /* 0x7c00 */ - { 827, 0x2001 }, { 829, 0x4000 }, { 830, 0x080a }, { 833, 0x6000 }, - { 835, 0x1008 }, { 837, 0x9000 }, { 839, 0x5611 }, { 845, 0x0004 }, - { 846, 0x0000 }, { 846, 0x0000 }, { 846, 0x0000 }, { 846, 0x0000 }, - { 846, 0x0000 }, { 846, 0x6000 }, { 848, 0x0080 }, { 849, 0x4255 }, - /* 0x7d00 */ - { 855, 0x2bf5 }, { 865, 0x1eb9 }, { 874, 0x0002 }, { 875, 0x960f }, - { 883, 0x4055 }, { 888, 0x6001 }, { 891, 0x0146 }, { 895, 0x024e }, - { 900, 0x834a }, { 906, 0x5008 }, { 909, 0x380c }, { 914, 0xef1f }, - { 926, 0x0c90 }, { 930, 0x6396 }, { 938, 0x934b }, { 946, 0x0a56 }, - /* 0x7e00 */ - { 952, 0x0f00 }, { 956, 0xe803 }, { 962, 0x6888 }, { 967, 0x62f6 }, - { 976, 0x0060 }, { 978, 0x4434 }, { 983, 0xee04 }, { 990, 0x7209 }, - { 996, 0xb500 }, { 1001, 0x1158 }, { 1006, 0x0000 }, { 1006, 0x0000 }, - { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, - /* 0x7f00 */ - { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, { 1006, 0x0000 }, - { 1006, 0x5000 }, { 1008, 0x0000 }, { 1008, 0x0000 }, { 1008, 0x0081 }, - { 1010, 0x0160 }, { 1013, 0x0000 }, { 1013, 0x0220 }, { 1015, 0x0000 }, - { 1015, 0x0000 }, { 1015, 0x0004 }, { 1016, 0x0000 }, { 1016, 0x0200 }, - /* 0x8000 */ - { 1017, 0x0000 }, { 1017, 0x0000 }, { 1017, 0x5000 }, { 1019, 0x0000 }, - { 1019, 0x0000 }, { 1019, 0x4040 }, { 1021, 0x8000 }, { 1022, 0x62ed }, - { 1031, 0x0020 }, { 1032, 0x0000 }, { 1032, 0x0000 }, { 1032, 0x0000 }, - { 1032, 0x0000 }, { 1032, 0x0000 }, { 1032, 0x0000 }, { 1032, 0x0000 }, - /* 0x8100 */ - { 1032, 0x0020 }, { 1033, 0x0800 }, { 1034, 0x0000 }, { 1034, 0x0200 }, - { 1035, 0x4400 }, { 1037, 0x0040 }, { 1038, 0x0842 }, { 1041, 0x0100 }, - { 1042, 0x0000 }, { 1042, 0x0400 }, { 1043, 0x0201 }, { 1045, 0xe000 }, - { 1048, 0xa200 }, { 1051, 0x8500 }, { 1054, 0x0101 }, { 1056, 0x0400 }, - /* 0x8200 */ - { 1057, 0x2780 }, { 1062, 0x0000 }, { 1062, 0x0000 }, { 1062, 0x0000 }, - { 1062, 0x0000 }, { 1062, 0x0200 }, { 1063, 0x0850 }, { 1066, 0x0082 }, - { 1068, 0x0000 }, { 1068, 0x0000 }, { 1068, 0x0000 }, { 1068, 0x0800 }, - { 1069, 0x0000 }, { 1069, 0x0000 }, { 1069, 0x0080 }, { 1070, 0x0200 }, - /* 0x8300 */ - { 1071, 0x0008 }, { 1072, 0x0000 }, { 1072, 0x0000 }, { 1072, 0x0000 }, - { 1072, 0x0000 }, { 1072, 0x0001 }, { 1073, 0x0000 }, { 1073, 0x0000 }, - { 1073, 0x0400 }, { 1074, 0x0040 }, { 1075, 0x0084 }, { 1077, 0x0000 }, - { 1077, 0x0000 }, { 1077, 0x0000 }, { 1077, 0x8000 }, { 1078, 0x0000 }, - /* 0x8400 */ - { 1078, 0x0480 }, { 1080, 0x0000 }, { 1080, 0x1000 }, { 1081, 0x0020 }, - { 1082, 0x0200 }, { 1083, 0x0004 }, { 1084, 0x8050 }, { 1087, 0x0080 }, - { 1088, 0x0000 }, { 1088, 0x0018 }, { 1090, 0x0000 }, { 1090, 0x1000 }, - { 1091, 0x0801 }, { 1093, 0x0000 }, { 1093, 0xc000 }, { 1095, 0x2000 }, - /* 0x8500 */ - { 1096, 0x0000 }, { 1096, 0x4010 }, { 1098, 0x2048 }, { 1101, 0x0000 }, - { 1101, 0x4042 }, { 1104, 0x012c }, { 1108, 0x2604 }, { 1112, 0x0080 }, - { 1113, 0x1500 }, { 1116, 0x8012 }, { 1119, 0x0240 }, { 1121, 0x0400 }, - { 1122, 0x6000 }, { 1124, 0x2000 }, { 1125, 0x0420 }, { 1127, 0x0650 }, - /* 0x8600 */ - { 1131, 0x08d0 }, { 1135, 0x4400 }, { 1137, 0x2004 }, { 1139, 0x8400 }, - { 1141, 0x0000 }, { 1141, 0x9020 }, { 1144, 0x0080 }, { 1145, 0x0000 }, - { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0000 }, - { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0000 }, { 1145, 0x0400 }, - /* 0x8700 */ - { 1146, 0x0040 }, { 1147, 0x0000 }, { 1147, 0x0002 }, { 1148, 0x0000 }, - { 1148, 0x0000 }, { 1148, 0x0020 }, { 1149, 0x0040 }, { 1150, 0x0100 }, - { 1151, 0x0010 }, { 1152, 0x4000 }, { 1153, 0x0004 }, { 1154, 0x0800 }, - { 1155, 0x4110 }, { 1158, 0x0000 }, { 1158, 0x9008 }, { 1161, 0x0844 }, - /* 0x8800 */ - { 1164, 0x0060 }, { 1166, 0x8003 }, { 1169, 0x0008 }, { 1170, 0x0842 }, - { 1173, 0x0440 }, { 1175, 0x2808 }, { 1178, 0x0000 }, { 1178, 0x0200 }, - { 1179, 0x0000 }, { 1179, 0x0000 }, { 1179, 0x0000 }, { 1179, 0x0000 }, - { 1179, 0x8400 }, { 1181, 0x3000 }, { 1183, 0x0000 }, { 1183, 0x2000 }, - /* 0x8900 */ - { 1184, 0x0080 }, { 1185, 0x0000 }, { 1185, 0x0000 }, { 1185, 0x090c }, - { 1189, 0x0080 }, { 1190, 0x2040 }, { 1192, 0x9411 }, { 1197, 0x0004 }, - { 1198, 0x8800 }, { 1200, 0x0148 }, { 1203, 0x9442 }, { 1208, 0xa484 }, - { 1213, 0x0001 }, { 1214, 0x0000 }, { 1214, 0x0000 }, { 1214, 0x0150 }, - /* 0x8a00 */ - { 1217, 0x550e }, { 1224, 0xa969 }, { 1232, 0x2428 }, { 1236, 0x0452 }, - { 1240, 0x4042 }, { 1243, 0x4935 }, { 1250, 0x7a4e }, { 1259, 0x902f }, - { 1266, 0x20f0 }, { 1271, 0x4526 }, { 1277, 0x117b }, { 1285, 0x9245 }, - { 1291, 0xaa94 }, { 1298, 0x58c6 }, { 1305, 0x68d4 }, { 1312, 0x55ca }, - /* 0x8b00 */ - { 1320, 0x4437 }, { 1327, 0x2ed1 }, { 1335, 0x3902 }, { 1340, 0x4208 }, - { 1343, 0xc200 }, { 1346, 0x1740 }, { 1351, 0x8800 }, { 1353, 0x2091 }, - { 1357, 0x4401 }, { 1360, 0x506c }, { 1366, 0x0000 }, { 1366, 0x0000 }, - { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, - /* 0x8c00 */ - { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, { 1366, 0x0000 }, - { 1366, 0x0100 }, { 1367, 0x0001 }, { 1368, 0x0000 }, { 1368, 0x0000 }, - { 1368, 0x0000 }, { 1368, 0x6000 }, { 1370, 0x9f87 }, { 1380, 0xbddd }, - { 1392, 0x05bf }, { 1401, 0x542e }, { 1408, 0x3cdf }, { 1419, 0x7c10 }, - /* 0x8d00 */ - { 1425, 0xad30 }, { 1432, 0x1841 }, { 1436, 0x0000 }, { 1436, 0x0000 }, - { 1436, 0x0000 }, { 1436, 0x0000 }, { 1436, 0x0000 }, { 1436, 0x0000 }, - { 1436, 0x0000 }, { 1436, 0x0220 }, { 1438, 0x0100 }, { 1439, 0x0004 }, - { 1440, 0x0000 }, { 1440, 0x0000 }, { 1440, 0x0000 }, { 1440, 0x0000 }, - /* 0x8e00 */ - { 1440, 0x0000 }, { 1440, 0x0001 }, { 1441, 0x0000 }, { 1441, 0x0010 }, - { 1442, 0x1000 }, { 1443, 0x0020 }, { 1444, 0x0008 }, { 1445, 0x0400 }, - { 1446, 0x2e00 }, { 1450, 0x040e }, { 1454, 0x0462 }, { 1458, 0x0000 }, - { 1458, 0x3c01 }, { 1463, 0x8814 }, { 1467, 0x0810 }, { 1469, 0x5f04 }, - /* 0x8f00 */ - { 1476, 0x06a8 }, { 1481, 0xf834 }, { 1489, 0x8660 }, { 1494, 0xc908 }, - { 1499, 0x6274 }, { 1506, 0x8010 }, { 1508, 0x0016 }, { 1511, 0x0000 }, - { 1511, 0x0000 }, { 1511, 0x0000 }, { 1511, 0xe040 }, { 1515, 0x0004 }, - { 1516, 0x0000 }, { 1516, 0x0000 }, { 1516, 0x0000 }, { 1516, 0x0010 }, - /* 0x9000 */ - { 1517, 0x0000 }, { 1517, 0x0220 }, { 1519, 0x0008 }, { 1520, 0x0004 }, - { 1521, 0x4800 }, { 1523, 0x5030 }, { 1527, 0x0201 }, { 1529, 0x1584 }, - { 1534, 0x8492 }, { 1539, 0x0001 }, { 1540, 0x0000 }, { 1540, 0x0000 }, - { 1540, 0x0002 }, { 1541, 0x8000 }, { 1542, 0x0000 }, { 1542, 0x0020 }, - /* 0x9100 */ - { 1543, 0x0240 }, { 1545, 0x0054 }, { 1548, 0x2080 }, { 1550, 0x0455 }, - { 1555, 0x0100 }, { 1556, 0x0000 }, { 1556, 0x0000 }, { 1556, 0x0000 }, - { 1556, 0x0000 }, { 1556, 0x1040 }, { 1558, 0x1800 }, { 1560, 0x0000 }, - { 1560, 0x182b }, { 1566, 0x23bc }, { 1574, 0x0298 }, { 1578, 0x06a0 }, - /* 0x9200 */ - { 1582, 0x6313 }, { 1589, 0x4033 }, { 1594, 0x40e8 }, { 1599, 0xe799 }, - { 1609, 0x2321 }, { 1614, 0x4ca2 }, { 1620, 0x3044 }, { 1624, 0x8d00 }, - { 1628, 0x0029 }, { 1631, 0x154a }, { 1637, 0x1f69 }, { 1646, 0x1a82 }, - { 1651, 0x90aa }, { 1657, 0xa004 }, { 1660, 0xe578 }, { 1669, 0x1143 }, - /* 0x9300 */ - { 1674, 0x01c2 }, { 1678, 0x8f25 }, { 1686, 0xc945 }, { 1693, 0x014c }, - { 1697, 0x28cb }, { 1704, 0x0910 }, { 1707, 0x1230 }, { 1711, 0x4461 }, - { 1716, 0x0494 }, { 1720, 0x0140 }, { 1722, 0x56cc }, { 1730, 0x8129 }, - { 1735, 0x3188 }, { 1740, 0xf182 }, { 1747, 0x0116 }, { 1751, 0x02a0 }, - /* 0x9400 */ - { 1754, 0x0808 }, { 1756, 0x231d }, { 1763, 0x41c1 }, { 1768, 0x852c }, - { 1774, 0x1410 }, { 1777, 0x0014 }, { 1779, 0x2029 }, { 1783, 0xf285 }, - { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, - { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, - /* 0x9500 */ - { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, - { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0000 }, { 1791, 0x0080 }, - { 1792, 0xda4d }, { 1801, 0x011a }, { 1805, 0x3b3a }, { 1814, 0xfa44 }, - { 1822, 0x1d48 }, { 1828, 0x5071 }, { 1834, 0x0026 }, { 1837, 0x0000 }, - /* 0x9600 */ - { 1837, 0x0000 }, { 1837, 0x0000 }, { 1837, 0x0000 }, { 1837, 0x0000 }, - { 1837, 0x0000 }, { 1837, 0x2100 }, { 1839, 0x0008 }, { 1840, 0x2109 }, - { 1844, 0x4400 }, { 1846, 0x0820 }, { 1848, 0x0500 }, { 1850, 0x0912 }, - { 1854, 0x0000 }, { 1854, 0x1a40 }, { 1858, 0x000c }, { 1860, 0x0804 }, - /* 0x9700 */ - { 1862, 0x0000 }, { 1862, 0x0000 }, { 1862, 0x0080 }, { 1863, 0x2000 }, - { 1864, 0x0114 }, { 1867, 0x0400 }, { 1868, 0x0100 }, { 1869, 0x0000 }, - { 1869, 0x8000 }, { 1870, 0x0000 }, { 1870, 0x0040 }, { 1871, 0x2000 }, - { 1872, 0x1a48 }, { 1877, 0x5208 }, { 1881, 0x0000 }, { 1881, 0x8000 }, - /* 0x9800 */ - { 1882, 0xd5ee }, { 1893, 0x118f }, { 1900, 0x2052 }, { 1904, 0x2981 }, - { 1909, 0x7040 }, { 1913, 0x4b18 }, { 1919, 0x98a4 }, { 1925, 0x001b }, - { 1929, 0x0000 }, { 1929, 0x0000 }, { 1929, 0xc100 }, { 1932, 0x104a }, - { 1936, 0x0150 }, { 1939, 0x0800 }, { 1940, 0xae05 }, { 1947, 0x7014 }, - /* 0x9900 */ - { 1952, 0x1628 }, { 1957, 0x490e }, { 1963, 0x0102 }, { 1965, 0xd088 }, - { 1970, 0x1f28 }, { 1977, 0x5086 }, { 1982, 0x0004 }, { 1983, 0x0000 }, - { 1983, 0x0000 }, { 1983, 0x0000 }, { 1983, 0x7000 }, { 1986, 0x001a }, - { 1989, 0x0002 }, { 1990, 0xab37 }, { 2000, 0x2006 }, { 2003, 0x8002 }, - /* 0x9a00 */ - { 2005, 0xe022 }, { 2010, 0x0240 }, { 2012, 0x6800 }, { 2015, 0x41c1 }, - { 2020, 0xa43f }, { 2029, 0x8ca0 }, { 2034, 0x0434 }, { 2038, 0x0000 }, - { 2038, 0x0000 }, { 2038, 0x0000 }, { 2038, 0x8000 }, { 2039, 0x0000 }, - { 2039, 0x8000 }, { 2040, 0x0074 }, { 2044, 0x4000 }, { 2045, 0x0000 }, - /* 0x9b00 */ - { 2045, 0x2040 }, { 2047, 0x0400 }, { 2048, 0x42a4 }, { 2053, 0x0002 }, - { 2054, 0x4000 }, { 2055, 0x0500 }, { 2057, 0x8000 }, { 2058, 0x0090 }, - { 2060, 0x400a }, { 2063, 0x6407 }, { 2069, 0x6c00 }, { 2073, 0x0000 }, - { 2073, 0x0683 }, { 2078, 0x2850 }, { 2082, 0x0d96 }, { 2089, 0xa011 }, - /* 0x9c00 */ - { 2093, 0x2300 }, { 2096, 0x000d }, { 2099, 0x2329 }, { 2105, 0x4aae }, - { 2113, 0x0320 }, { 2116, 0xa1d4 }, { 2123, 0x2080 }, { 2125, 0x0500 }, - { 2127, 0x0000 }, { 2127, 0x0000 }, { 2127, 0x0000 }, { 2127, 0x0000 }, - { 2127, 0x0000 }, { 2127, 0x0000 }, { 2127, 0x1220 }, { 2130, 0x0058 }, - /* 0x9d00 */ - { 2133, 0x02c0 }, { 2136, 0xa820 }, { 2140, 0x8148 }, { 2144, 0x8801 }, - { 2147, 0x0004 }, { 2148, 0x300e }, { 2153, 0x9403 }, { 2158, 0x0004 }, - { 2159, 0x0280 }, { 2161, 0x0508 }, { 2164, 0x8220 }, { 2167, 0x1810 }, - { 2170, 0x0015 }, { 2173, 0x0688 }, { 2177, 0x8060 }, { 2180, 0x070c }, - /* 0x9e00 */ - { 2185, 0x1000 }, { 2186, 0x6c20 }, { 2191, 0x0000 }, { 2191, 0x0000 }, - { 2191, 0x0000 }, { 2191, 0x0000 }, { 2191, 0x0000 }, { 2191, 0x3620 }, - { 2196, 0x0000 }, { 2196, 0x0080 }, { 2197, 0x8220 }, { 2200, 0x2020 }, - { 2202, 0x1000 }, { 2203, 0x4000 }, { 2204, 0x0100 }, { 2205, 0xa094 }, - /* 0x9f00 */ - { 2210, 0x0200 }, { 2211, 0x0020 }, { 2212, 0x0000 }, { 2212, 0x0000 }, - { 2212, 0x8c00 }, { 2215, 0x9214 }, { 2220, 0x144b }, { 2226, 0x0084 }, - { 2228, 0x2000 }, { 2229, 0x1031 }, -}; -static const Summary16 gb12345ext_uni2indx_pagefe[5] = { - /* 0xfe00 */ - { 2233, 0x0000 }, { 2233, 0x0000 }, { 2233, 0x0000 }, { 2233, 0xfffa }, - { 2247, 0x001f }, -}; - -static int -gb12345ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0100 && wc < 0x0270) - summary = &gb12345ext_uni2indx_page01[(wc>>4)-0x010]; - else if (wc >= 0x1e00 && wc < 0x1e40) - summary = &gb12345ext_uni2indx_page1e[(wc>>4)-0x1e0]; - else if (wc >= 0x2200 && wc < 0x2230) - summary = &gb12345ext_uni2indx_page22[(wc>>4)-0x220]; - else if (wc >= 0x4e00 && wc < 0x9fa0) - summary = &gb12345ext_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0xfe00 && wc < 0xfe50) - summary = &gb12345ext_uni2indx_pagefe[(wc>>4)-0xfe0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = gb12345ext_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/gb18030.h b/jni/parted/libiconv/lib/gb18030.h deleted file mode 100755 index fc08b36..0000000 --- a/jni/parted/libiconv/lib/gb18030.h +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GB18030 - */ - -/* - * GB18030, as specified in the GB18030 standard, is an extension of GBK. - * - * In what follows, page numbers refer to the GB18030 standard (second - * printing). - * - * - * It consists of the following parts: - * - * One-byte range: - * ASCII p. 2 0x{00..7F} - * - * Two-byte range: - * GBK part 1 p. 10..12 0x{A1..A9}{A1..FE} - * GBK part 2 p. 13..36 0x{B0..F7}{A1..FE} - * GBK part 3 p. 37..52 0x{81..A0}{40..7E,80..FE} - * GBK part 4 p. 53..81 0x{AA..FE}{40..7E,80..A0} - * GBK part 5 p. 82 0x{A8..A9}{40..7E,80..A0} - * UDA part 1 p. 83..84 0x{AA..AF}{A1..FE} U+E000..U+E233 - * UDA part 2 p. 85..87 0x{F8..FE}{A1..FE} U+E234..U+E4C5 - * UDA part 3 p. 88..90 0x{A1..A7}{40..7E,80..A0} U+E4C6..U+E765 - * - * Four-byte range: - * BMP rest p. 94..283 0x{81..84}{30..39}{81..FE}{30..39} - * rest of U+0080..U+FFFF - * Planes 1-16 p. 5 0x{90..FE}{30..39}{81..FE}{30..39} - * U+10000..U+10FFFF - * - * To GBK part 1 were added: - * 1. 0xA2E3, 0xA8BF. - * 2. Characters mapped to the Unicode PUA - * 0xA2AB..0xA2B0 U+E766..U+E76B - * 0xA2E4 U+E76D - * 0xA2EF..0xA2F0 U+E76E..U+E76F - * 0xA2FD..0xA2FE U+E770..U+E771 - * 0xA4F4..0xA4FE U+E772..U+E77C - * 0xA5F7..0xA5FE U+E77D..U+E784 - * 0xA6B9..0xA6C0 U+E785..U+E78C - * 0xA6D9..0xA6DF [glyphs here!!] U+E78D..U+E793 - * 0xA6EC..0xA6ED [glyphs here!!] U+E794..U+E795 - * 0xA6F3 [glyphs here!!] U+E796 - * 0xA6F6..0xA6FE U+E797..U+E79F - * 0xA7C2..0xA7D0 U+E7A0..U+E7AE - * 0xA7F2..0xA7FE U+E7AF..U+E7BB - * 0xA8BC [glyphs here!!] U+E7C7 - * 0xA8C1..0xA8C4 U+E7C9..U+E7CC - * 0xA8EA..0xA8FE U+E7CD..U+E7E1 - * 0xA9A1..0xA9A3 U+E7FE..U+E800 - * 0xA9F0..0xA9FE U+E801..U+E80F - * - * To GBK part 2 were added: - * 3. Characters mapped to the Unicode PUA - * 0xD7FA..0xD7FE U+E810..0xE814 - * - * To GBK part 3 nothing was added. - * - * To GBK part 4 were added: - * 4. 0xFE{50,54..58,5A..60,62..65,68..6B,6E..75,77..7D,80..8F,92..9F}. - * 5. Characters mapped to the Unicode PUA - * 0xFE51..0xFE53 [glyphs here!!] U+E816..U+E818 - * 0xFE59 [glyphs here!!] U+E81E - * 0xFE61 [glyphs here!!] U+E826 - * 0xFE66..0xFE67 [glyphs here!!] U+E82B..U+E82C - * 0xFE6C..0xFE6D [glyphs here!!] U+E831..U+E832 - * 0xFE76 [glyphs here!!] U+E83B - * 0xFE7E [glyphs here!!] U+E843 - * 0xFE90..0xFE91 [glyphs here!!] U+E854..U+E855 - * 0xFEA0 [glyphs here!!] U+E864 - * - * To GBK part 5 were added: - * 6. 0xA98A..0xA995. - * 7. Characters mapped to the Unicode PUA - * 0xA896..0xA8A0 U+E7BC..U+E7C6 - * 0xA958 U+E7E2 - * 0xA95B U+E7E3 - * 0xA95D..0xA95F U+E7E4..U+E7E6 - * 0xA997..0xA9A0 U+E7F4..U+E7FD - * - * UDA part 1 contains the user-defined characters, mapped to the Unicode PUA - * U+E000..U+E233 in ascending order. - * - * UDA part 2 contains the user-defined characters, mapped to the Unicode PUA - * U+E234..U+E4C5 in ascending order. - * - * UDA part 3 contains the user-defined characters, mapped to the Unicode PUA - * U+E4C6..U+E765 in ascending order. - * - * The four-byte range 0x{81..84}{30..39}{81..FE}{30..39} - * contains the rest of the Unicode BMP in ascending order. - * Start: 0x81308130 = 0x0080 - * End: 0x8431A439 = 0xFFFF - * - * The four-byte range 0x{90..E3}{30..39}{81..FE}{30..39} - * contains the remaining 16 Unicode planes in Unicode order. - * Start: 0x90308130 = 0x010000 - * End: 0xE3329A35 = 0x10FFFF - * - * - * Unassigned Unicode characters are mapped. For example, - * U+173F = 0x8134BF35 (p. 120) - * U+2EFF = 0x81398B31 (p. 148) - * U+FFFE = 0x8431A438 (p. 283) - * - * - * The Unicode PUA (U+E000..U+F8FF) is mapped as follows: - * p. 83..84 0x{AA..AF}{A1..FE} U+E000..U+E233 - * p. 85..87 0x{F8..FE}{A1..FE} U+E234..U+E4C5 - * p. 88..90 0x{A1..A7}{40..7E,80..A0} U+E4C6..U+E765 - * p. 10 0xA2AB..0xA2B0 U+E766..U+E76B - * p. 255 0x8336C739 U+E76C - * p. 10 0xA2E4 U+E76D - * p. 10 0xA2EF..0xA2F0 U+E76E..U+E76F - * p. 10 0xA2FD..0xA2FE U+E770..U+E771 - * p. 11 0xA4F4..0xA4FE U+E772..U+E77C - * p. 11 0xA5F7..0xA5FE U+E77D..U+E784 - * p. 11 0xA6B9..0xA6C0 U+E785..U+E78C - * p. 11 0xA6D9..0xA6DF [glyphs here!!] U+E78D..U+E793 - * p. 11 0xA6EC..0xA6ED [glyphs here!!] U+E794..U+E795 - * p. 11 0xA6F3 [glyphs here!!] U+E796 - * p. 11 0xA6F6..0xA6FE U+E797..U+E79F - * p. 12 0xA7C2..0xA7D0 U+E7A0..U+E7AE - * p. 12 0xA7F2..0xA7FE U+E7AF..U+E7BB - * p. 82 0xA896..0xA8A0 U+E7BC..U+E7C6 - * p. 12 0x8135F437 U+E7C7 - * p. 255 0x8336C830 U+E7C8 - * p. 12 0xA8C1..0xA8C4 U+E7C9..U+E7CC - * p. 12 0xA8EA..0xA8FE U+E7CD..U+E7E1 - * p. 82 0xA958 U+E7E2 - * p. 82 0xA95B U+E7E3 - * p. 82 0xA95D..0xA95F U+E7E4..U+E7E6 - * p. 255 0x8336C831..0x8336C933 U+E7E7..U+E7F3 - * p. 82 0xA997..0xA9A0 U+E7F4..U+E7FD - * p. 12 0xA9A1..0xA9A3 U+E7FE..U+E800 - * p. 12 0xA9F0..0xA9FE U+E801..U+E80F - * p. 26 0xD7FA..0xD7FE U+E810..0xE814 - * p. 255 0x8336C934 U+E815 - * p. 81 0xFE51..0xFE53 [glyphs here!!] U+E816..U+E818 - * p. 255 0x8336C935..0x8336C939 U+E819..U+E81D - * p. 81 0xFE59 [glyphs here!!] U+E81E - * p. 255 0x8336CA30..0x8336CA36 U+E81F..U+E825 - * p. 81 0xFE61 [glyphs here!!] U+E826 - * p. 255 0x8336CA37..0x8336CB30 U+E827..U+E82A - * p. 81 0xFE66..0xFE67 [glyphs here!!] U+E82B..U+E82C - * p. 255 0x8336CB31..0x8336CB34 U+E82D..U+E830 - * p. 81 0xFE6C..0xFE6D [glyphs here!!] U+E831..U+E832 - * p. 255 0x8336CB35..0x8336CC32 U+E833..U+E83A - * p. 81 0xFE76 [glyphs here!!] U+E83B - * p. 255 0x8336CC33..0x8336CC39 U+E83C..U+E842 - * p. 81 0xFE7E [glyphs here!!] U+E843 - * p. 255 0x8336CD30..0x8336CE35 U+E844..U+E853 - * p. 81 0xFE90..0xFE91 [glyphs here!!] U+E854..U+E855 - * p. 255 0x8336CE36..0x8336CF39 U+E856..U+E863 - * p. 81 0xFEA0 [glyphs here!!] U+E864 - * p. 255..276 0x8336D030..0x84308130 U+E865..U+F8FF - * - * - * The Unicode surrogate area (U+D800..U+DFFF) is not mapped. (p. 255) - * - */ - -#include "gb18030ext.h" -#include "gb18030uni.h" - -static int -gb18030_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - int ret; - - /* Code set 0 (ASCII) */ - if (*s < 0x80) - return ascii_mbtowc(conv,pwc,s,n); - - /* Code set 1 (GBK extended) */ - ret = gbk_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - - ret = gb18030ext_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - - /* Code set 2 (remainder of Unicode U+0000..U+FFFF), including - User-defined characters, two-byte part of range U+E766..U+E864 */ - ret = gb18030uni_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - /* User-defined characters range U+E000..U+E765 */ - { - unsigned char c1 = s[0]; - if ((c1 >= 0xaa && c1 <= 0xaf) || (c1 >= 0xf8 && c1 <= 0xfe)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 <= 0xfe) { - *pwc = 0xe000 + 94 * (c1 >= 0xf8 ? c1 - 0xf2 : c1 - 0xaa) + (c2 - 0xa1); - return 2; - } - } else - return RET_TOOFEW(0); - } else if (c1 >= 0xa1 && c1 <= 0xa7) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x40 && c2 <= 0xa1 && c2 != 0x7f) { - *pwc = 0xe4c6 + 96 * (c1 - 0xa1) + c2 - (c2 >= 0x80 ? 0x41 : 0x40); - return 2; - } - } else - return RET_TOOFEW(0); - } - } - - /* Code set 3 (Unicode U+10000..U+10FFFF) */ - { - unsigned char c1 = s[0]; - if (c1 >= 0x90 && c1 <= 0xe3) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x30 && c2 <= 0x39) { - if (n >= 3) { - unsigned char c3 = s[2]; - if (c3 >= 0x81 && c3 <= 0xfe) { - if (n >= 4) { - unsigned char c4 = s[3]; - if (c4 >= 0x30 && c4 <= 0x39) { - unsigned int i = (((c1 - 0x90) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30); - if (i >= 0 && i < 0x100000) { - *pwc = (ucs4_t) (0x10000 + i); - return 4; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } -} - -static const unsigned short gb18030_pua2charset[31*3] = { -/* Unicode range GB18030 range */ - 0xe766, 0xe76b, 0xa2ab, /*.. 0xa2b0, */ - 0xe76d, 0xe76d, 0xa2e4, - 0xe76e, 0xe76f, 0xa2ef, /*.. 0xa2f0, */ - 0xe770, 0xe771, 0xa2fd, /*.. 0xa2fe, */ - 0xe772, 0xe77c, 0xa4f4, /*.. 0xa4fe, */ - 0xe77d, 0xe784, 0xa5f7, /*.. 0xa5fe, */ - 0xe785, 0xe78c, 0xa6b9, /*.. 0xa6c0, */ - 0xe78d, 0xe793, 0xa6d9, /*.. 0xa6df, */ - 0xe794, 0xe795, 0xa6ec, /*.. 0xa6ed, */ - 0xe796, 0xe796, 0xa6f3, - 0xe797, 0xe79f, 0xa6f6, /*.. 0xa6fe, */ - 0xe7a0, 0xe7ae, 0xa7c2, /*.. 0xa7d0, */ - 0xe7af, 0xe7bb, 0xa7f2, /*.. 0xa7fe, */ - 0xe7bc, 0xe7c6, 0xa896, /*.. 0xa8a0, */ - 0xe7c9, 0xe7cc, 0xa8c1, /*.. 0xa8c4, */ - 0xe7cd, 0xe7e1, 0xa8ea, /*.. 0xa8fe, */ - 0xe7e2, 0xe7e2, 0xa958, - 0xe7e3, 0xe7e3, 0xa95b, - 0xe7e4, 0xe7e6, 0xa95d, /*.. 0xa95f, */ - 0xe7f4, 0xe800, 0xa997, /*.. 0xa9a3, */ - 0xe801, 0xe80f, 0xa9f0, /*.. 0xa9fe, */ - 0xe810, 0xe814, 0xd7fa, /*.. 0xd7fe, */ - 0xe816, 0xe818, 0xfe51, /*.. 0xfe53, */ - 0xe81e, 0xe81e, 0xfe59, - 0xe826, 0xe826, 0xfe61, - 0xe82b, 0xe82c, 0xfe66, /*.. 0xfe67, */ - 0xe831, 0xe832, 0xfe6c, /*.. 0xfe6d, */ - 0xe83b, 0xe83b, 0xfe76, - 0xe843, 0xe843, 0xfe7e, - 0xe854, 0xe855, 0xfe90, /*.. 0xfe91, */ - 0xe864, 0xe864, 0xfea0, -}; - -static int -gb18030_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int ret; - - /* Code set 0 (ASCII) */ - ret = ascii_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 1 (GBK extended) */ - ret = gbk_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - ret = gb18030ext_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 2 (remainder of Unicode U+0000..U+FFFF) */ - if (wc >= 0xe000 && wc <= 0xe864) { - if (n >= 2) { - if (wc < 0xe766) { - /* User-defined characters range U+E000..U+E765 */ - if (wc < 0xe4c6) { - unsigned int i = wc - 0xe000; - r[1] = (i % 94) + 0xa1; i = i / 94; - r[0] = (i < 6 ? i + 0xaa : i + 0xf2); - return 2; - } else { - unsigned int i = wc - 0xe4c6; - r[0] = (i / 96) + 0xa1; i = i % 96; - r[1] = i + (i >= 0x3f ? 0x41 : 0x40); - return 2; - } - } else { - /* User-defined characters, two-byte part of range U+E766..U+E864 */ - unsigned int k1 = 0; - unsigned int k2 = 31; - /* Invariant: We know that if wc occurs in Unicode interval in - gb18030_pua2charset, it does so at a k with k1 <= k < k2. */ - while (k1 < k2) { - unsigned int k = (k1 + k2) / 2; - if (wc < gb18030_pua2charset[k*3+0]) - k2 = k; - else if (wc > gb18030_pua2charset[k*3+1]) - k1 = k + 1; - else { - unsigned short c = - gb18030_pua2charset[k*3+2] + (wc - gb18030_pua2charset[k*3+0]); - r[0] = (c >> 8); - r[1] = (c & 0xff); - return 2; - } - } - } - } else - return RET_TOOSMALL; - } - ret = gb18030uni_wctomb(conv,r,wc,n); - if (ret != RET_ILUNI) - return ret; - - /* Code set 3 (Unicode U+10000..U+10FFFF) */ - if (n >= 4) { - if (wc >= 0x10000 && wc < 0x110000) { - unsigned int i = wc - 0x10000; - r[3] = (i % 10) + 0x30; i = i / 10; - r[2] = (i % 126) + 0x81; i = i / 126; - r[1] = (i % 10) + 0x30; i = i / 10; - r[0] = i + 0x90; - return 4; - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/gb18030ext.h b/jni/parted/libiconv/lib/gb18030ext.h deleted file mode 100755 index 62d9a27..0000000 --- a/jni/parted/libiconv/lib/gb18030ext.h +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2011, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GB18030 two-byte extension - */ - -static const unsigned short gb18030ext_2uni_pagea9[13] = { - /* 0xa9 */ - 0x303e, 0x2ff0, 0x2ff1, 0x2ff2, 0x2ff3, 0x2ff4, 0x2ff5, 0x2ff6, - 0x2ff7, 0x2ff8, 0x2ff9, 0x2ffa, 0x2ffb, -}; -static const unsigned int gb18030ext_2uni_pagefe[96] = { - /* 0xfe */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x2e81, 0x20087, 0x20089, 0x200cc, 0x2e84, 0x3473, 0x3447, 0x2e88, - 0x2e8b, 0x9fb4, 0x359e, 0x361a, 0x360e, 0x2e8c, 0x2e97, 0x396e, - 0x3918, 0x9fb5, 0x39cf, 0x39df, 0x3a73, 0x39d0, 0x9fb6, 0x9fb7, - 0x3b4e, 0x3c6e, 0x3ce0, 0x2ea7, 0x215d7, 0x9fb8, 0x2eaa, 0x4056, - 0x415f, 0x2eae, 0x4337, 0x2eb3, 0x2eb6, 0x2eb7, 0x2298f, 0x43b1, - 0x43ac, 0x2ebb, 0x43dd, 0x44d6, 0x4661, 0x464c, 0x9fb9, 0x4723, - 0x4729, 0x477c, 0x478d, 0x2eca, 0x4947, 0x497a, 0x497d, 0x4982, - 0x4983, 0x4985, 0x4986, 0x499f, 0x499b, 0x49b7, 0x49b6, 0x9fba, - 0x241fe, 0x4ca3, 0x4c9f, 0x4ca0, 0x4ca1, 0x4c77, 0x4ca2, 0x4d13, - 0x4d14, 0x4d15, 0x4d16, 0x4d17, 0x4d18, 0x4d19, 0x4dae, 0x9fbb, -}; - -static int -gb18030ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 == 0xa2) || (c1 >= 0xa4 && c1 <= 0xa9) || (c1 == 0xd7) || (c1 == 0xfe)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) { - unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); - unsigned int wc = 0xfffd; - switch (c1) { - case 0xa2: - if (i >= 6376 && i <= 6381) /* 0xA2AB..0xA2B0 */ - wc = 0xe766 + (i - 6376); - else if (i == 6432) /* 0xA2E3 */ - wc = 0x20ac; - else if (i == 6433) /* 0xA2E4 */ - wc = 0xe76d; - else if (i >= 6444 && i <= 6445) /* 0xA2EF..0xA2F0 */ - wc = 0xe76e + (i - 6444); - else if (i >= 6458 && i <= 6459) /* 0xA2FD..0xA2FE */ - wc = 0xe770 + (i - 6458); - break; - case 0xa4: - if (i >= 6829 && i <= 6839) /* 0xA4F4..0xA4FE */ - wc = 0xe772 + (i - 6829); - break; - case 0xa5: - if (i >= 7022 && i <= 7029) /* 0xA5F7..0xA5FE */ - wc = 0xe77d + (i - 7022); - break; - case 0xa6: - if (i >= 7150 && i <= 7157) /* 0xA6B9..0xA6C0 */ - wc = 0xe785 + (i - 7150); - else if (i >= 7183 && i <= 7184) /* 0xA6DA..0xA6DB */ - wc = 0xfe12 - (i - 7183); - else if (i >= 7182 && i <= 7190) /* 0xA6D9..0xA6DF */ - wc = 0xfe10 + (i - 7182); - else if (i >= 7201 && i <= 7202) /* 0xA6EC..0xA6ED */ - wc = 0xfe17 + (i - 7201); - else if (i == 7208) /* 0xA6F3 */ - wc = 0xfe19; - else if (i >= 7211 && i <= 7219) /* 0xA6F6..0xA6FE */ - wc = 0xe797 + (i - 7211); - break; - case 0xa7: - if (i >= 7349 && i <= 7363) /* 0xA7C2..0xA7D0 */ - wc = 0xe7a0 + (i - 7349); - else if (i >= 7397 && i <= 7409) /* 0xA7F2..0xA7FE */ - wc = 0xe7af + (i - 7397); - break; - case 0xa8: - if (i >= 7495 && i <= 7505) /* 0xA896..0xA8A0 */ - wc = 0xe7bc + (i - 7495); - else if (i == 7533) /* 0xA8BC */ - wc = 0x1e3f; - else if (i == 7536) /* 0xA8BF */ - wc = 0x01f9; - else if (i >= 7538 && i <= 7541) /* 0xA8C1..0xA8C4 */ - wc = 0xe7c9 + (i - 7538); - else if (i >= 7579 && i <= 7599) /* 0xA8EA..0xA8FE */ - wc = 0xe7cd + (i - 7579); - break; - case 0xa9: - if (i == 7624) /* 0xA958 */ - wc = 0xe7e2; - else if (i == 7627) /* 0xA95B */ - wc = 0xe7e3; - else if (i >= 7629 && i <= 7631) /* 0xA95D..0xA95F */ - wc = 0xe7e4 + (i - 7629); - else if (i >= 7672 && i < 7685) /* 0xA989..0xA995 */ - wc = gb18030ext_2uni_pagea9[i-7672]; - else if (i >= 7686 && i <= 7698) /* 0xA997..0xA9A3 */ - wc = 0xe7f4 + (i - 7686); - else if (i >= 7775 && i <= 7789) /* 0xA9F0..0xA9FE */ - wc = 0xe801 + (i - 7775); - break; - case 0xd7: - if (i >= 16525 && i <= 16529) /* 0xD7FA..0xD7FE */ - wc = 0xe810 + (i - 16525); - break; - case 0xfe: - if (i < 23846) - wc = gb18030ext_2uni_pagefe[i-23750]; - break; - default: - break; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short gb18030ext_page2e[80] = { - 0x0000, 0xfe50, 0x0000, 0x0000, 0xfe54, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/ - 0xfe57, 0x0000, 0x0000, 0xfe58, 0xfe5d, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5e, /*0x90-0x97*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x98-0x9f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe6b, /*0xa0-0xa7*/ - 0x0000, 0x0000, 0xfe6e, 0x0000, 0x0000, 0x0000, 0xfe71, 0x0000, /*0xa8-0xaf*/ - 0x0000, 0x0000, 0x0000, 0xfe73, 0x0000, 0x0000, 0xfe74, 0xfe75, /*0xb0-0xb7*/ - 0x0000, 0x0000, 0x0000, 0xfe79, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/ - 0x0000, 0x0000, 0xfe84, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/ -}; -static const unsigned short gb18030ext_page2f[16] = { - 0xa98a, 0xa98b, 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xa990, 0xa991, /*0xf0-0xf7*/ - 0xa992, 0xa993, 0xa994, 0xa995, 0x0000, 0x0000, 0x0000, 0x0000, /*0xf8-0xff*/ -}; -static const unsigned short gb18030ext_page34[56] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe56, /*0x40-0x47*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/ - 0x0000, 0x0000, 0x0000, 0xfe55, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/ -}; -static const unsigned short gb18030ext_page36[24] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe5c, 0x0000, /*0x08-0x0f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x10-0x17*/ - 0x0000, 0x0000, 0xfe5b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/ -}; -static const unsigned short gb18030ext_page39[24] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe62, /*0xc8-0xcf*/ - 0xfe65, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe63, /*0xd8-0xdf*/ -}; -static const unsigned short gb18030ext_page43[56] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0xfe78, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/ - 0x0000, 0xfe77, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb0-0xb7*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc0-0xc7*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xc8-0xcf*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xd0-0xd7*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7a, 0x0000, 0x0000, /*0xd8-0xdf*/ -}; -static const unsigned short gb18030ext_page46[32] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0xfe7d, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ - 0x0000, 0xfe7c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ -}; -static const unsigned short gb18030ext_page47_1[16] = { - 0x0000, 0x0000, 0x0000, 0xfe80, 0x0000, 0x0000, 0x0000, 0x0000, /*0x20-0x27*/ - 0x0000, 0xfe81, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x28-0x2f*/ -}; -static const unsigned short gb18030ext_page47_2[24] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0xfe82, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe83, 0x0000, 0x0000, /*0x88-0x8f*/ -}; -static const unsigned short gb18030ext_page49[120] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe85, /*0x40-0x47*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x48-0x4f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x50-0x57*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x58-0x5f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x60-0x67*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x68-0x6f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x70-0x77*/ - 0x0000, 0x0000, 0xfe86, 0x0000, 0x0000, 0xfe87, 0x0000, 0x0000, /*0x78-0x7f*/ - 0x0000, 0x0000, 0xfe88, 0xfe89, 0x0000, 0xfe8a, 0xfe8b, 0x0000, /*0x80-0x87*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/ - 0x0000, 0x0000, 0x0000, 0xfe8d, 0x0000, 0x0000, 0x0000, 0xfe8c, /*0x98-0x9f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa8-0xaf*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe8f, 0xfe8e, /*0xb0-0xb7*/ -}; -static const unsigned short gb18030ext_page4c[56] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe96, /*0x70-0x77*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x78-0x7f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x80-0x87*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x88-0x8f*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x90-0x97*/ - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfe93, /*0x98-0x9f*/ - 0xfe94, 0xfe95, 0xfe97, 0xfe92, 0x0000, 0x0000, 0x0000, 0x0000, /*0xa0-0xa7*/ -}; -static const unsigned short gb18030ext_page4d[16] = { - 0x0000, 0x0000, 0x0000, 0xfe98, 0xfe99, 0xfe9a, 0xfe9b, 0xfe9c, /*0x10-0x17*/ - 0xfe9d, 0xfe9e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/ -}; -static const unsigned short gb18030ext_page9f[16] = { - 0x0000, 0x0000, 0x0000, 0x0000, 0xfe59, 0xfe61, 0xfe66, 0xfe67, /*0xb0-0xb7*/ - 0xfe6d, 0xfe7e, 0xfe90, 0xfea0, 0x0000, 0x0000, 0x0000, 0x0000, /*0xb8-0xbf*/ -}; -static const unsigned short gb18030ext_pagefe[16] = { - 0xa6d9, 0xa6db, 0xa6da, 0xa6dc, 0xa6dd, 0xa6de, 0xa6df, 0xa6ec, /*0x10-0x17*/ - 0xa6ed, 0xa6f3, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /*0x18-0x1f*/ -}; - -static int -gb18030ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - unsigned short c = 0; - if (wc == 0x01f9) - c = 0xa8bf; - else if (wc == 0x1e3f) - c = 0xa8bc; - else if (wc == 0x20ac) - c = 0xa2e3; - else if (wc >= 0x2e80 && wc < 0x2ed0) - c = gb18030ext_page2e[wc-0x2e80]; - else if (wc >= 0x2ff0 && wc < 0x3000) - c = gb18030ext_page2f[wc-0x2ff0]; - else if (wc == 0x303e) - c = 0xa989; - else if (wc >= 0x3440 && wc < 0x3478) - c = gb18030ext_page34[wc-0x3440]; - else if (wc == 0x359e) - c = 0xfe5a; - else if (wc >= 0x3608 && wc < 0x3620) - c = gb18030ext_page36[wc-0x3608]; - else if (wc == 0x3918) - c = 0xfe60; - else if (wc == 0x396e) - c = 0xfe5f; - else if (wc >= 0x39c8 && wc < 0x39e0) - c = gb18030ext_page39[wc-0x39c8]; - else if (wc == 0x3a73) - c = 0xfe64; - else if (wc == 0x3b4e) - c = 0xfe68; - else if (wc == 0x3c6e) - c = 0xfe69; - else if (wc == 0x3ce0) - c = 0xfe6a; - else if (wc == 0x4056) - c = 0xfe6f; - else if (wc == 0x415f) - c = 0xfe70; - else if (wc == 0x4337) - c = 0xfe72; - else if (wc >= 0x43a8 && wc < 0x43e0) - c = gb18030ext_page43[wc-0x43a8]; - else if (wc == 0x44d6) - c = 0xfe7b; - else if (wc >= 0x4648 && wc < 0x4668) - c = gb18030ext_page46[wc-0x4648]; - else if (wc >= 0x4720 && wc < 0x4730) - c = gb18030ext_page47_1[wc-0x4720]; - else if (wc >= 0x4778 && wc < 0x4790) - c = gb18030ext_page47_2[wc-0x4778]; - else if (wc >= 0x4940 && wc < 0x49b8) - c = gb18030ext_page49[wc-0x4940]; - else if (wc >= 0x4c70 && wc < 0x4ca8) - c = gb18030ext_page4c[wc-0x4c70]; - else if (wc >= 0x4d10 && wc < 0x4d20) - c = gb18030ext_page4d[wc-0x4d10]; - else if (wc == 0x4dae) - c = 0xfe9f; - else if (wc >= 0x9fb4 && wc < 0x9fbc) - c = gb18030ext_page9f[wc-0x9fb0]; - else if (wc >= 0xfe10 && wc < 0xfe1a) - c = gb18030ext_pagefe[wc-0xfe10]; - else if (wc == 0x20087) - c = 0xfe51; - else if (wc == 0x20089) - c = 0xfe52; - else if (wc == 0x200cc) - c = 0xfe53; - else if (wc == 0x215d7) - c = 0xfe6c; - else if (wc == 0x2298f) - c = 0xfe76; - else if (wc == 0x241fe) - c = 0xfe91; - if (c != 0) { - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/gb18030uni.h b/jni/parted/libiconv/lib/gb18030uni.h deleted file mode 100755 index c61ae89..0000000 --- a/jni/parted/libiconv/lib/gb18030uni.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GB18030 four-byte extension - */ - -static const unsigned short gb18030uni_charset2uni_ranges[412] = { - 0x0000, 0x0023, 0x0024, 0x0025, 0x0026, 0x002c, 0x002d, 0x0031, - 0x0032, 0x0050, 0x0051, 0x0058, 0x0059, 0x005e, 0x005f, 0x005f, - 0x0060, 0x0063, 0x0064, 0x0066, 0x0067, 0x0067, 0x0068, 0x0068, - 0x0069, 0x006c, 0x006d, 0x007d, 0x007e, 0x0084, 0x0085, 0x0093, - 0x0094, 0x00ab, 0x00ac, 0x00ae, 0x00af, 0x00b2, 0x00b3, 0x00cf, - 0x00d0, 0x0131, 0x0132, 0x0132, 0x0133, 0x0133, 0x0134, 0x0134, - 0x0135, 0x0135, 0x0136, 0x0136, 0x0137, 0x0137, 0x0138, 0x0138, - 0x0139, 0x0154, 0x0155, 0x01ab, 0x01ac, 0x01ba, 0x01bb, 0x021f, - 0x0220, 0x0220, 0x0221, 0x022d, 0x022e, 0x02e4, 0x02e5, 0x02e5, - 0x02e6, 0x02ec, 0x02ed, 0x02ed, 0x02ee, 0x0324, 0x0325, 0x0332, - 0x0333, 0x0333, 0x0334, 0x1ef1, 0x1ef2, 0x1ef3, 0x1ef4, 0x1ef4, - 0x1ef5, 0x1ef6, 0x1ef7, 0x1efd, 0x1efe, 0x1f06, 0x1f07, 0x1f07, - 0x1f08, 0x1f08, 0x1f09, 0x1f0d, 0x1f0e, 0x1f7d, 0x1f7e, 0x1fd3, - 0x1fd4, 0x1fd4, 0x1fd5, 0x1fd7, 0x1fd8, 0x1fe3, 0x1fe4, 0x1fed, - 0x1fee, 0x202b, 0x202c, 0x202f, 0x2030, 0x2045, 0x2046, 0x2047, - 0x2048, 0x20b5, 0x20b6, 0x20bb, 0x20bc, 0x20bc, 0x20bd, 0x20bf, - 0x20c0, 0x20c3, 0x20c4, 0x20c5, 0x20c6, 0x20c7, 0x20c8, 0x20c8, - 0x20c9, 0x20c9, 0x20ca, 0x20cb, 0x20cc, 0x20d0, 0x20d1, 0x20d5, - 0x20d6, 0x20df, 0x20e0, 0x20e2, 0x20e3, 0x20e7, 0x20e8, 0x20f4, - 0x20f5, 0x20f6, 0x20f7, 0x20fc, 0x20fd, 0x2121, 0x2122, 0x2124, - 0x2125, 0x212f, 0x2130, 0x2148, 0x2149, 0x219a, 0x219b, 0x22e7, - 0x22e8, 0x22f1, 0x22f2, 0x2355, 0x2356, 0x2359, 0x235a, 0x2366, - 0x2367, 0x2369, 0x236a, 0x2373, 0x2374, 0x2383, 0x2384, 0x238b, - 0x238c, 0x2393, 0x2394, 0x2396, 0x2397, 0x2398, 0x2399, 0x23aa, - 0x23ab, 0x23c9, 0x23ca, 0x23cb, 0x23cc, 0x2401, 0x2402, 0x2402, - 0x2403, 0x2c40, 0x2c41, 0x2c42, 0x2c43, 0x2c45, 0x2c46, 0x2c47, - 0x2c48, 0x2c51, 0x2c52, 0x2c60, 0x2c61, 0x2c62, 0x2c63, 0x2c65, - 0x2c66, 0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6e, 0x2c6f, 0x2c7c, - 0x2c7d, 0x2da1, 0x2da2, 0x2da5, 0x2da6, 0x2da6, 0x2da7, 0x2dab, - 0x2dac, 0x2dad, 0x2dae, 0x2dc1, 0x2dc2, 0x2dc3, 0x2dc4, 0x2dca, - 0x2dcb, 0x2dcc, 0x2dcd, 0x2dd1, 0x2dd2, 0x2dd7, 0x2dd8, 0x2ecd, - 0x2ece, 0x2ed4, 0x2ed5, 0x2f45, 0x2f46, 0x302f, 0x3030, 0x303b, - 0x303c, 0x303d, 0x303e, 0x305f, 0x3060, 0x3068, 0x3069, 0x306a, - 0x306b, 0x306c, 0x306d, 0x30dd, 0x30de, 0x3108, 0x3109, 0x3232, - 0x3233, 0x32a1, 0x32a2, 0x32ac, 0x32ad, 0x35a9, 0x35aa, 0x35fe, - 0x35ff, 0x365e, 0x365f, 0x366c, 0x366d, 0x36ff, 0x3700, 0x37d9, - 0x37da, 0x38f8, 0x38f9, 0x3969, 0x396a, 0x3cde, 0x3cdf, 0x3de6, - 0x3de7, 0x3fbd, 0x3fbe, 0x4031, 0x4032, 0x4035, 0x4036, 0x4060, - 0x4061, 0x4158, 0x4159, 0x42cd, 0x42ce, 0x42e1, 0x42e2, 0x43a2, - 0x43a3, 0x43a7, 0x43a8, 0x43f9, 0x43fa, 0x4409, 0x440a, 0x45c2, - 0x45c3, 0x45f4, 0x45f5, 0x45f6, 0x45f7, 0x45fa, 0x45fb, 0x45fb, - 0x45fc, 0x460f, 0x4610, 0x4612, 0x4613, 0x4628, 0x4629, 0x48e7, - 0x48e8, 0x490e, 0x490f, 0x497d, 0x497e, 0x4a11, 0x4a12, 0x4a62, - 0x4a63, 0x82bc, - 0x82bd, 0x82bd, 0x82be, 0x82be, 0x82bf, 0x82cb, - 0x82cc, 0x82cc, 0x82cd, 0x82d1, 0x82d2, 0x82d8, 0x82d9, 0x82dc, - 0x82dd, 0x82e0, 0x82e1, 0x82e8, 0x82e9, 0x82ef, 0x82f0, 0x82ff, - 0x8300, 0x830d, - 0x830e, 0x93d4, 0x93d5, 0x9420, 0x9421, 0x943b, - 0x943c, 0x948c, 0x948d, 0x9495, 0x9496, 0x94af, 0x94b0, 0x94b0, - 0x94b1, 0x94b1, 0x94b2, 0x94b4, 0x94b5, 0x94ba, 0x94bb, 0x94bb, - 0x94bc, 0x94bd, 0x94be, 0x98c3, 0x98c4, 0x98c4, 0x98c5, 0x98c8, - 0x98c9, 0x98c9, 0x98ca, 0x98ca, 0x98cb, 0x98cb, 0x98cc, 0x9960, - 0x9961, 0x99e1, 0x99e2, 0x99fb -}; - -static const unsigned short gb18030uni_uni2charset_ranges[412] = { - 0x0080, 0x00a3, 0x00a5, 0x00a6, 0x00a9, 0x00af, 0x00b2, 0x00b6, - 0x00b8, 0x00d6, 0x00d8, 0x00df, 0x00e2, 0x00e7, 0x00eb, 0x00eb, - 0x00ee, 0x00f1, 0x00f4, 0x00f6, 0x00f8, 0x00f8, 0x00fb, 0x00fb, - 0x00fd, 0x0100, 0x0102, 0x0112, 0x0114, 0x011a, 0x011c, 0x012a, - 0x012c, 0x0143, 0x0145, 0x0147, 0x0149, 0x014c, 0x014e, 0x016a, - 0x016c, 0x01cd, 0x01cf, 0x01cf, 0x01d1, 0x01d1, 0x01d3, 0x01d3, - 0x01d5, 0x01d5, 0x01d7, 0x01d7, 0x01d9, 0x01d9, 0x01db, 0x01db, - 0x01dd, 0x01f8, 0x01fa, 0x0250, 0x0252, 0x0260, 0x0262, 0x02c6, - 0x02c8, 0x02c8, 0x02cc, 0x02d8, 0x02da, 0x0390, 0x03a2, 0x03a2, - 0x03aa, 0x03b0, 0x03c2, 0x03c2, 0x03ca, 0x0400, 0x0402, 0x040f, - 0x0450, 0x0450, 0x0452, 0x200f, 0x2011, 0x2012, 0x2017, 0x2017, - 0x201a, 0x201b, 0x201e, 0x2024, 0x2027, 0x202f, 0x2031, 0x2031, - 0x2034, 0x2034, 0x2036, 0x203a, 0x203c, 0x20ab, 0x20ad, 0x2102, - 0x2104, 0x2104, 0x2106, 0x2108, 0x210a, 0x2115, 0x2117, 0x2120, - 0x2122, 0x215f, 0x216c, 0x216f, 0x217a, 0x218f, 0x2194, 0x2195, - 0x219a, 0x2207, 0x2209, 0x220e, 0x2210, 0x2210, 0x2212, 0x2214, - 0x2216, 0x2219, 0x221b, 0x221c, 0x2221, 0x2222, 0x2224, 0x2224, - 0x2226, 0x2226, 0x222c, 0x222d, 0x222f, 0x2233, 0x2238, 0x223c, - 0x223e, 0x2247, 0x2249, 0x224b, 0x224d, 0x2251, 0x2253, 0x225f, - 0x2262, 0x2263, 0x2268, 0x226d, 0x2270, 0x2294, 0x2296, 0x2298, - 0x229a, 0x22a4, 0x22a6, 0x22be, 0x22c0, 0x2311, 0x2313, 0x245f, - 0x246a, 0x2473, 0x249c, 0x24ff, 0x254c, 0x254f, 0x2574, 0x2580, - 0x2590, 0x2592, 0x2596, 0x259f, 0x25a2, 0x25b1, 0x25b4, 0x25bb, - 0x25be, 0x25c5, 0x25c8, 0x25ca, 0x25cc, 0x25cd, 0x25d0, 0x25e1, - 0x25e6, 0x2604, 0x2607, 0x2608, 0x260a, 0x263f, 0x2641, 0x2641, - 0x2643, 0x2e80, 0x2e82, 0x2e83, 0x2e85, 0x2e87, 0x2e89, 0x2e8a, - 0x2e8d, 0x2e96, 0x2e98, 0x2ea6, 0x2ea8, 0x2ea9, 0x2eab, 0x2ead, - 0x2eaf, 0x2eb2, 0x2eb4, 0x2eb5, 0x2eb8, 0x2eba, 0x2ebc, 0x2ec9, - 0x2ecb, 0x2fef, 0x2ffc, 0x2fff, 0x3004, 0x3004, 0x3018, 0x301c, - 0x301f, 0x3020, 0x302a, 0x303d, 0x303f, 0x3040, 0x3094, 0x309a, - 0x309f, 0x30a0, 0x30f7, 0x30fb, 0x30ff, 0x3104, 0x312a, 0x321f, - 0x322a, 0x3230, 0x3232, 0x32a2, 0x32a4, 0x338d, 0x3390, 0x339b, - 0x339f, 0x33a0, 0x33a2, 0x33c3, 0x33c5, 0x33cd, 0x33cf, 0x33d0, - 0x33d3, 0x33d4, 0x33d6, 0x3446, 0x3448, 0x3472, 0x3474, 0x359d, - 0x359f, 0x360d, 0x360f, 0x3619, 0x361b, 0x3917, 0x3919, 0x396d, - 0x396f, 0x39ce, 0x39d1, 0x39de, 0x39e0, 0x3a72, 0x3a74, 0x3b4d, - 0x3b4f, 0x3c6d, 0x3c6f, 0x3cdf, 0x3ce1, 0x4055, 0x4057, 0x415e, - 0x4160, 0x4336, 0x4338, 0x43ab, 0x43ad, 0x43b0, 0x43b2, 0x43dc, - 0x43de, 0x44d5, 0x44d7, 0x464b, 0x464d, 0x4660, 0x4662, 0x4722, - 0x4724, 0x4728, 0x472a, 0x477b, 0x477d, 0x478c, 0x478e, 0x4946, - 0x4948, 0x4979, 0x497b, 0x497c, 0x497e, 0x4981, 0x4984, 0x4984, - 0x4987, 0x499a, 0x499c, 0x499e, 0x49a0, 0x49b5, 0x49b8, 0x4c76, - 0x4c78, 0x4c9e, 0x4ca4, 0x4d12, 0x4d1a, 0x4dad, 0x4daf, 0x4dff, - 0x9fa6, 0xd7ff, - 0xe76c, 0xe76c, 0xe7c8, 0xe7c8, 0xe7e7, 0xe7f3, - 0xe815, 0xe815, 0xe819, 0xe81d, 0xe81f, 0xe825, 0xe827, 0xe82a, - 0xe82d, 0xe830, 0xe833, 0xe83a, 0xe83c, 0xe842, 0xe844, 0xe853, - 0xe856, 0xe863, - 0xe865, 0xf92b, 0xf92d, 0xf978, 0xf97a, 0xf994, - 0xf996, 0xf9e6, 0xf9e8, 0xf9f0, 0xf9f2, 0xfa0b, 0xfa10, 0xfa10, - 0xfa12, 0xfa12, 0xfa15, 0xfa17, 0xfa19, 0xfa1e, 0xfa22, 0xfa22, - 0xfa25, 0xfa26, 0xfa2a, 0xfe2f, 0xfe32, 0xfe32, 0xfe45, 0xfe48, - 0xfe53, 0xfe53, 0xfe58, 0xfe58, 0xfe67, 0xfe67, 0xfe6c, 0xff00, - 0xff5f, 0xffdf, 0xffe6, 0xffff -}; - -static const unsigned short gb18030uni_ranges[206] = { - 128, 129, 131, 133, 134, 135, 137, 140, - 142, 144, 145, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, - 168, 171, 172, 189, 196, 213, 220, 221, - 285, 286, 287, 291, 293, 295, 297, 298, - 300, 301, 302, 303, 304, 305, 306, 307, - 308, 320, 330, 334, 338, 339, 340, 341, - 342, 343, 347, 348, 349, 354, 355, 359, - 360, 361, 362, 363, 365, 369, 371, 372, - 373, 374, 375, 376, 386, 426, 502, 538, - 553, 556, 558, 560, 562, 564, 565, 567, - 571, 573, 574, 575, 576, 577, 578, 579, - 581, 582, 583, 584, 585, 586, 588, 589, - 590, 602, 606, 625, 627, 636, 637, 720, - 724, 810, 813, 850, 860, 861, 862, 864, - 867, 868, 869, 870, 872, 873, 874, 875, - 876, 877, 878, 879, 880, 882, 883, 884, - 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 900, - 901, 902, 903, 905, 907, 908, 909, 911, - 912, 917, 924, 925, 21827, - 25775, 25866, 25896, - 25929, 25932, 25933, 25934, 25936, 25938, 25939, 25940, - 25942, - 25943, 25944, 25945, 25946, 25947, 25948, 25952, - 25953, 25955, 25956, 25959, 25961, 25964, 25966, 25984, - 25994, 25998, 26012, 26016, 26110, 26116 -}; - -static int -gb18030uni_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if (c1 >= 0x81 && c1 <= 0x84) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x30 && c2 <= 0x39) { - if (n >= 3) { - unsigned char c3 = s[2]; - if (c3 >= 0x81 && c3 <= 0xfe) { - if (n >= 4) { - unsigned char c4 = s[3]; - if (c4 >= 0x30 && c4 <= 0x39) { - unsigned int i = (((c1 - 0x81) * 10 + (c2 - 0x30)) * 126 + (c3 - 0x81)) * 10 + (c4 - 0x30); - if (i >= 0 && i <= 39419) { - if (i == 7457) { - *pwc = 0xe7c7; - } else { - unsigned int k1 = 0; - unsigned int k2 = 205; - while (k1 < k2) { - unsigned int k = (k1 + k2) / 2; - if (i <= gb18030uni_charset2uni_ranges[2*k+1]) - k2 = k; - else if (i >= gb18030uni_charset2uni_ranges[2*k+2]) - k1 = k + 1; - else - return RET_ILSEQ; - } - { - unsigned int diff = gb18030uni_ranges[k1]; - *pwc = (ucs4_t) (i + diff); - } - } - return 4; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static int -gb18030uni_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 4) { - unsigned int i = wc; - if (i >= 0x0080 && i <= 0xffff) { - if (i == 0xe7c7) { - i = 7457; - } else { - unsigned int k1 = 0; - unsigned int k2 = 205; - while (k1 < k2) { - unsigned int k = (k1 + k2) / 2; - if (i <= gb18030uni_uni2charset_ranges[2*k+1]) - k2 = k; - else if (i >= gb18030uni_uni2charset_ranges[2*k+2]) - k1 = k + 1; - else - return RET_ILUNI; - } - { - unsigned int diff = gb18030uni_ranges[k1]; - i -= diff; - } - } - r[3] = (i % 10) + 0x30; i = i / 10; - r[2] = (i % 126) + 0x81; i = i / 126; - r[1] = (i % 10) + 0x30; i = i / 10; - r[0] = i + 0x81; - return 4; - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/gb2312.h b/jni/parted/libiconv/lib/gb2312.h deleted file mode 100755 index fb0621a..0000000 --- a/jni/parted/libiconv/lib/gb2312.h +++ /dev/null @@ -1,2570 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GB2312.1980-0 - */ - -static const unsigned short gb2312_2uni_page21[831] = { - /* 0x21 */ - 0x3000, 0x3001, 0x3002, 0x30fb, 0x02c9, 0x02c7, 0x00a8, 0x3003, - 0x3005, 0x2015, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c, - 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, - 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1, - 0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a, - 0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312, - 0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d, - 0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234, - 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4, - 0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb, - 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, - 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, - /* 0x22 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f, - 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497, - 0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477, - 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, - 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487, - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0xfffd, 0xfffd, 0x3220, 0x3221, 0x3222, 0x3223, - 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0xfffd, 0xfffd, - 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, - 0x2168, 0x2169, 0x216a, 0x216b, 0xfffd, 0xfffd, - /* 0x23 */ - 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08, - 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, - 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, - 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20, - 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, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40, - 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, 0xff5b, 0xff5c, 0xff5d, 0xffe3, - /* 0x24 */ - 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, - 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, - 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, - 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, - 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, - 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, - 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, - 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, - 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, - 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, - 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x25 */ - 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, - 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, - 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, - 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, - 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, - 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, - 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, - 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, - 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, - 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, - 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x26 */ - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x27 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x28 */ - 0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8, - 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2, - 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc, - 0x00fc, 0x00ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3105, 0x3106, 0x3107, 0x3108, - 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110, - 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, - 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, - 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, - 0x3129, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x29 */ - 0xfffd, 0xfffd, 0xfffd, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504, - 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c, - 0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514, - 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c, - 0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524, - 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, - 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, - 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, - 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, - 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, -}; -static const unsigned short gb2312_2uni_page30[6768] = { - /* 0x30 */ - 0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691, - 0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d, - 0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848, - 0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884, - 0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed, - 0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776, - 0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf, - 0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed, - 0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc, - 0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886, - 0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d, - 0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265, - /* 0x31 */ - 0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5, - 0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351, - 0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907, - 0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29, - 0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4, - 0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9, - 0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5, - 0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16, - 0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab, - 0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b, - 0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175, - 0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3, - /* 0x32 */ - 0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2, - 0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236, - 0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa, - 0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016, - 0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29, - 0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b, - 0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf, - 0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7, - 0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336, - 0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6, - 0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20, - 0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316, - /* 0x33 */ - 0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e, - 0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632, - 0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3, - 0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1, - 0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59, - 0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f, - 0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60, - 0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64, - 0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0, - 0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7, - 0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8, - 0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a, - /* 0x34 */ - 0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd, - 0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97, - 0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524, - 0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822, - 0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148, - 0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471, - 0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07, - 0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106, - 0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb, - 0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54, - 0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26, - 0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e, - /* 0x35 */ - 0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6, - 0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb, - 0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48, - 0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053, - 0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49, - 0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c, - 0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730, - 0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382, - 0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43, - 0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc, - 0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc, - 0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0, - /* 0x36 */ - 0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a, - 0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b, - 0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661, - 0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec, - 0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6, - 0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e, - 0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566, - 0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a, - 0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0, - 0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25, - 0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c, - 0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c, - /* 0x37 */ - 0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5, - 0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492, - 0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af, - 0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632, - 0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561, - 0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8, - 0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f, - 0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa, - 0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af, - 0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b, - 0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90, - 0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d, - /* 0x38 */ - 0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85, - 0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74, - 0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236, - 0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490, - 0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89, - 0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f, - 0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b, - 0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f, - 0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c, - 0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b, - 0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9, - 0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9, - /* 0x39 */ - 0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a, - 0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1, - 0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2, - 0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30, - 0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37, - 0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250, - 0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173, - 0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c, - 0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845, - 0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842, - 0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505, - 0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8, - /* 0x3a */ - 0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163, - 0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a, - 0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a, - 0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a, - 0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d, - 0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2, - 0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a, - 0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8, - 0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f, - 0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c, - 0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6, - 0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56, - /* 0x3b */ - 0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1, - 0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd, - 0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853, - 0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115, - 0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757, - 0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d, - 0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de, - 0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd, - 0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f, - 0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b, - 0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e, - 0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95, - /* 0x3c */ - 0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9, - 0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca, - 0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0, - 0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d, - 0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2, - 0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939, - 0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be, - 0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1, - 0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270, - 0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3, - 0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274, - 0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6, - /* 0x3d */ - 0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa, - 0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868, - 0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901, - 0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc, - 0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a, - 0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb, - 0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a, - 0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01, - 0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f, - 0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1, - 0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb, - 0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78, - /* 0x3e */ - 0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8, - 0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f, - 0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756, - 0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0, - 0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551, - 0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8, - 0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9, - 0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd, - 0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350, - 0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b, - 0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd, - 0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb, - /* 0x3f */ - 0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361, - 0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a, - 0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b, - 0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777, - 0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3, - 0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543, - 0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7, - 0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6, - 0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef, - 0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50, - 0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4, - 0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080, - /* 0x40 */ - 0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec, - 0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a, - 0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f, - 0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8, - 0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca, - 0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c, - 0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d, - 0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b, - 0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece, - 0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4, - 0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1, - 0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0, - /* 0x41 */ - 0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9, - 0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f, - 0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae, - 0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e, - 0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5, - 0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217, - 0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716, - 0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce, - 0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc, - 0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409, - 0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3, - 0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf, - /* 0x42 */ - 0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3, - 0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3, - 0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42, - 0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415, - 0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f, - 0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6, - 0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1, - 0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523, - 0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988, - 0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417, - 0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992, - 0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b, - /* 0x43 */ - 0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b, - 0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192, - 0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176, - 0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e, - 0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c, - 0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f, - 0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8, - 0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5, - 0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf, - 0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d, - 0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f, - 0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478, - /* 0x44 */ - 0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9, - 0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c, - 0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd, - 0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766, - 0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c, - 0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537, - 0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462, - 0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5, - 0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b, - 0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f, - 0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d, - 0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81, - /* 0x45 */ - 0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53, - 0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650, - 0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25, - 0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c, - 0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43, - 0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224, - 0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486, - 0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9, - 0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6, - 0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c, - 0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812, - 0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7, - /* 0x46 */ - 0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41, - 0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2, - 0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058, - 0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4, - 0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb, - 0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9, - 0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd, - 0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4, - 0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566, - 0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77, - 0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14, - 0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390, - /* 0x47 */ - 0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1, - 0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d, - 0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49, - 0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2, - 0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8, - 0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207, - 0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6, - 0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752, - 0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30, - 0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18, - 0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a, - 0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20, - /* 0x48 */ - 0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743, - 0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d, - 0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0, - 0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4, - 0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed, - 0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203, - 0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9, - 0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9, - 0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1, - 0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e, - 0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428, - 0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1, - /* 0x49 */ - 0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b, - 0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802, - 0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b, - 0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b, - 0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247, - 0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a, - 0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6, - 0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c, - 0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe, - 0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5, - 0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17, - 0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3, - /* 0x4a */ - 0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee, - 0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe, - 0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2, - 0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16, - 0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc, - 0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02, - 0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88, - 0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2, - 0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f, - 0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72, - 0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f, - 0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31, - /* 0x4b */ - 0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813, - 0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e, - 0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1, - 0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b, - 0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3, - 0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5, - 0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20, - 0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083, - 0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3, - 0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f, - 0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501, - 0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854, - /* 0x4c */ - 0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0, - 0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a, - 0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08, - 0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64, - 0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018, - 0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6, - 0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279, - 0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511, - 0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5, - 0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c, - 0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3, - 0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3, - /* 0x4d */ - 0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a, - 0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876, - 0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f, - 0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60, - 0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f, - 0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258, - 0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3, - 0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c, - 0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38, - 0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b, - 0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51, - 0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01, - /* 0x4e */ - 0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f, - 0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f, - 0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3, - 0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b, - 0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33, - 0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1, - 0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c, - 0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7, - 0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e, - 0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff, - 0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852, - 0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a, - /* 0x4f */ - 0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184, - 0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60, - 0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6, - 0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0, - 0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148, - 0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2, - 0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf, - 0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8, - 0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4, - 0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61, - 0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee, - 0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653, - /* 0x50 */ - 0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954, - 0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa, - 0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8, - 0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23, - 0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165, - 0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c, - 0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8, - 0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d, - 0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700, - 0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9, - 0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed, - 0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384, - /* 0x51 */ - 0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74, - 0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb, - 0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5, - 0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259, - 0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6, - 0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814, - 0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf, - 0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5, - 0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a, - 0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f, - 0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b, - 0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476, - /* 0x52 */ - 0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200, - 0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce, - 0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b, - 0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d, - 0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0, - 0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a, - 0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091, - 0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6, - 0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3, - 0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335, - 0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6, - 0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690, - /* 0x53 */ - 0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9, - 0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71, - 0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8, - 0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38, - 0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24, - 0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709, - 0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2, - 0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59, - 0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88, - 0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd, - 0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea, - 0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89, - /* 0x54 */ - 0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a, - 0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed, - 0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f, - 0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3, - 0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300, - 0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55, - 0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d, - 0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f, - 0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1, - 0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23, - 0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe, - 0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67, - /* 0x55 */ - 0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8, - 0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb, - 0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d, - 0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd, - 0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756, - 0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db, - 0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087, - 0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517, - 0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827, - 0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707, - 0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0, - 0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f, - /* 0x56 */ - 0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431, - 0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c, - 0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307, - 0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7, - 0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9, - 0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d, - 0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd, - 0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5, - 0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4, - 0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010, - 0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457, - 0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51, - /* 0x57 */ - 0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13, - 0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5, - 0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58, - 0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c, - 0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179, - 0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4, - 0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5, - 0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f, - 0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b, - 0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a, - 0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750, - 0x5ea7, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x58 */ - 0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98, - 0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315, - 0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997, - 0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69, - 0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d, - 0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326, - 0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e, - 0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c, - 0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54, - 0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede, - 0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09, - 0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d, - /* 0x59 */ - 0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89, - 0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94, - 0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1, - 0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e, - 0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043, - 0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9, - 0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107, - 0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46, - 0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9, - 0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156, - 0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34, - 0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc, - /* 0x5a */ - 0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa, - 0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce, - 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf, - 0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6, - 0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c, - 0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b, - 0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a, - 0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369, - 0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c, - 0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674, - 0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099, - 0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba, - /* 0x5b */ - 0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7, - 0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef, - 0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139, - 0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be, - 0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4, - 0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c, - 0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c, - 0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742, - 0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d, - 0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7, - 0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2, - 0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd, - /* 0x5c */ - 0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844, - 0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8, - 0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8, - 0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be, - 0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb, - 0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4, - 0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307, - 0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311, - 0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351, - 0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b, - 0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317, - 0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365, - /* 0x5d */ - 0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0, - 0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385, - 0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e, - 0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807, - 0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411, - 0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea, - 0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a, - 0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c, - 0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1, - 0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba, - 0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c, - 0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a, - /* 0x5e */ - 0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564, - 0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8, - 0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7, - 0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629, - 0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955, - 0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c, - 0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322, - 0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a, - 0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc, - 0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452, - 0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c, - 0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496, - /* 0x5f */ - 0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7, - 0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519, - 0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412, - 0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443, - 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477, - 0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d, - 0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3, - 0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9, - 0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de, - 0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523, - 0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549, - 0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c, - /* 0x60 */ - 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c, - 0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f, - 0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594, - 0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec, - 0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3, - 0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608, - 0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d, - 0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c, - 0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c, - 0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5, - 0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f, - 0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c, - /* 0x61 */ - 0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a, - 0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a, - 0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3, - 0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02, - 0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b, - 0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d, - 0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d, - 0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89, - 0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc, - 0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3, - 0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2, - 0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa, - /* 0x62 */ - 0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315, - 0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d, - 0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7, - 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b, - 0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a, - 0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91, - 0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3, - 0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4, - 0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4, - 0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035, - 0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f, - 0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042, - /* 0x63 */ - 0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092, - 0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6, - 0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100, - 0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7, - 0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3, - 0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608, - 0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616, - 0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54, - 0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68, - 0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad, - 0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa, - 0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe, - /* 0x64 */ - 0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19, - 0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52, - 0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93, - 0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5, - 0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9, - 0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b, - 0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44, - 0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7, - 0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2, - 0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f, - 0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d, - 0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1, - /* 0x65 */ - 0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde, - 0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f, - 0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f, - 0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07, - 0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6, - 0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d, - 0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051, - 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074, - 0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56, - 0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66, - 0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e, - 0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3, - /* 0x66 */ - 0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af, - 0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8, - 0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13, - 0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec, - 0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2, - 0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8, - 0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15, - 0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75, - 0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85, - 0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b, - 0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7, - 0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9, - /* 0x67 */ - 0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb, - 0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8, - 0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa, - 0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b, - 0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b, - 0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27, - 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32, - 0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e, - 0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7, - 0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a, - 0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b, - 0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c, - /* 0x68 */ - 0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477, - 0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b, - 0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea, - 0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5, - 0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e, - 0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a, - 0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd, - 0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832, - 0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883, - 0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a, - 0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b, - 0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9, - /* 0x69 */ - 0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971, - 0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998, - 0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966, - 0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4, - 0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff, - 0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e, - 0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28, - 0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337, - 0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d, - 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72, - 0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c, - 0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b, - /* 0x6a */ - 0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217, - 0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7, - 0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee, - 0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600, - 0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006, - 0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677, - 0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6, - 0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45, - 0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7, - 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e, - 0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b, - 0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0, - /* 0x6b */ - 0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9, - 0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a, - 0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b, - 0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c, - 0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4, - 0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4, - 0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4, - 0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a, - 0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153, - 0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d, - 0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5, - 0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb, - /* 0x6c */ - 0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59, - 0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40, - 0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4, - 0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096, - 0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca, - 0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168, - 0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5, - 0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228, - 0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248, - 0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953, - 0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985, - 0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0, - /* 0x6d */ - 0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab, - 0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206, - 0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800, - 0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d, - 0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823, - 0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847, - 0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1, - 0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec, - 0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b, - 0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707, - 0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738, - 0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768, - /* 0x6e */ - 0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791, - 0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e, - 0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61, - 0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e, - 0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a, - 0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a, - 0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac, - 0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9, - 0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca, - 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5, - 0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0, - 0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea, - /* 0x6f */ - 0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7, - 0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507, - 0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514, - 0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522, - 0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536, - 0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544, - 0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553, - 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f, - 0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, - 0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573, - 0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb, - 0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14, - /* 0x70 */ - 0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e, - 0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22, - 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36, - 0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44, - 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51, - 0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66, - 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d, - 0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3, - 0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2, - 0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7, - 0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c, - 0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619, - /* 0x71 */ - 0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f, - 0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c, - 0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80, - 0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad, - 0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2, - 0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5, - 0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919, - 0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966, - 0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014, - 0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029, - 0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052, - 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883, - /* 0x72 */ - 0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e, - 0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c, - 0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b, - 0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6, - 0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9, - 0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0, - 0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707, - 0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e, - 0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729, - 0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760, - 0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764, - 0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2, - /* 0x73 */ - 0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5, - 0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0, - 0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe, - 0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44, - 0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15, - 0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e, - 0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58, - 0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b, - 0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac, - 0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4, - 0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea, - 0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b, - /* 0x74 */ - 0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201, - 0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d, - 0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e, - 0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e, - 0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7, - 0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c, - 0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc, - 0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf, - 0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3, - 0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4, - 0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47, - 0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164, - /* 0x75 */ - 0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172, - 0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2, - 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba, - 0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5, - 0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde, - 0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3, - 0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f, - 0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35, - 0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a, - 0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94, - 0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98, - 0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc, - /* 0x76 */ - 0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3, - 0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d, - 0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88, - 0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc, - 0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8, - 0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82, - 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90, - 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f, - 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, - 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, - 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, - 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb, - /* 0x77 */ - 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5, - 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c, - 0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2, - 0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc, - 0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45, - 0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d, - 0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb, - 0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23, - 0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92, - 0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf, - 0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c, - 0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44, -}; - -static int -gb2312_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x29) || (c1 >= 0x30 && c1 <= 0x77)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 1410) { - if (i < 831) - wc = gb2312_2uni_page21[i]; - } else { - if (i < 8178) - wc = gb2312_2uni_page30[i-1410]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short gb2312_2charset[7445] = { - 0x2168, 0x216c, 0x2127, 0x2163, 0x2140, 0x2141, 0x2824, 0x2822, - 0x2828, 0x2826, 0x283a, 0x282c, 0x282a, 0x2830, 0x282e, 0x2142, - 0x2834, 0x2832, 0x2839, 0x2821, 0x2825, 0x2827, 0x2829, 0x282d, - 0x2831, 0x2823, 0x282b, 0x282f, 0x2833, 0x2835, 0x2836, 0x2837, - 0x2838, 0x2126, 0x2125, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, - 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d, - 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, - 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, - 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c, 0x264d, - 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655, - 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723, 0x2724, - 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, - 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, - 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, - 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, - 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, - 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, - 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d, - 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x212a, 0x212c, 0x212e, - 0x212f, 0x2130, 0x2131, 0x212d, 0x216b, 0x2164, 0x2165, 0x2179, - 0x2166, 0x216d, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275, 0x2276, - 0x2277, 0x2278, 0x2279, 0x227a, 0x227b, 0x227c, 0x217b, 0x217c, - 0x217a, 0x217d, 0x214a, 0x2147, 0x2146, 0x214c, 0x2158, 0x215e, - 0x214f, 0x214e, 0x2144, 0x2145, 0x2149, 0x2148, 0x2152, 0x2153, - 0x2160, 0x215f, 0x2143, 0x214b, 0x2157, 0x2156, 0x2155, 0x2159, - 0x2154, 0x215c, 0x215d, 0x215a, 0x215b, 0x2151, 0x214d, 0x2150, - 0x2259, 0x225a, 0x225b, 0x225c, 0x225d, 0x225e, 0x225f, 0x2260, - 0x2261, 0x2262, 0x2245, 0x2246, 0x2247, 0x2248, 0x2249, 0x224a, - 0x224b, 0x224c, 0x224d, 0x224e, 0x224f, 0x2250, 0x2251, 0x2252, - 0x2253, 0x2254, 0x2255, 0x2256, 0x2257, 0x2258, 0x2231, 0x2232, - 0x2233, 0x2234, 0x2235, 0x2236, 0x2237, 0x2238, 0x2239, 0x223a, - 0x223b, 0x223c, 0x223d, 0x223e, 0x223f, 0x2240, 0x2241, 0x2242, - 0x2243, 0x2244, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, - 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 0x2930, 0x2931, - 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, - 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, - 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, - 0x294a, 0x294b, 0x294c, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951, - 0x2952, 0x2953, 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, - 0x295a, 0x295b, 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961, - 0x2962, 0x2963, 0x2964, 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, - 0x296a, 0x296b, 0x296c, 0x296d, 0x296e, 0x296f, 0x2176, 0x2175, - 0x2178, 0x2177, 0x2174, 0x2173, 0x2170, 0x2172, 0x2171, 0x216f, - 0x216e, 0x2162, 0x2161, 0x2121, 0x2122, 0x2123, 0x2128, 0x2129, - 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, 0x213a, 0x213b, - 0x213e, 0x213f, 0x217e, 0x2132, 0x2133, 0x213c, 0x213d, 0x2421, - 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, - 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, - 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, - 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, - 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, - 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, - 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, - 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, - 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, - 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, - 0x2472, 0x2473, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, - 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d, 0x252e, - 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, - 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, 0x253d, 0x253e, - 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, - 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, - 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, - 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, - 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, - 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, - 0x2124, 0x2845, 0x2846, 0x2847, 0x2848, 0x2849, 0x284a, 0x284b, - 0x284c, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, 0x2852, 0x2853, - 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, 0x285b, - 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, 0x2862, 0x2863, - 0x2864, 0x2865, 0x2866, 0x2867, 0x2868, 0x2869, 0x2265, 0x2266, - 0x2267, 0x2268, 0x2269, 0x226a, 0x226b, 0x226c, 0x226d, 0x226e, - 0x523b, 0x3621, 0x465f, 0x4d72, 0x5549, 0x487d, 0x494f, 0x4f42, - 0x5822, 0x323b, 0x536b, 0x5824, 0x3373, 0x5728, 0x4752, 0x5827, - 0x4a40, 0x4770, 0x317b, 0x5235, 0x3454, 0x362b, 0x4b3f, 0x5829, - 0x362a, 0x413d, 0x514f, 0x4925, 0x582d, 0x3876, 0x513e, 0x635c, - 0x5650, 0x3761, 0x342e, 0x4159, 0x583c, 0x4d68, 0x3524, 0x4e2a, - 0x5677, 0x4076, 0x3e59, 0x582f, 0x444b, 0x3e43, 0x5831, 0x4334, - 0x5265, 0x562e, 0x4e5a, 0x5527, 0x3a75, 0x3726, 0x4056, 0x4639, - 0x4552, 0x4747, 0x3954, 0x334b, 0x5252, 0x583f, 0x3e45, 0x4672, - 0x5232, 0x4f30, 0x4f67, 0x4a69, 0x5840, 0x4272, 0x4252, 0x4869, - 0x472c, 0x414b, 0x5368, 0x5579, 0x4a42, 0x367e, 0x5821, 0x535a, - 0x3f77, 0x5446, 0x3b25, 0x5841, 0x4e65, 0x3e2e, 0x5828, 0x5147, - 0x5029, 0x583d, 0x596f, 0x4d76, 0x3f3a, 0x3d3b, 0x3a25, 0x5260, - 0x327a, 0x3a60, 0x4436, 0x4f6d, 0x3e29, 0x4d24, 0x4141, 0x4757, - 0x5971, 0x5974, 0x484b, 0x5869, 0x525a, 0x4a32, 0x484a, 0x586c, - 0x586a, 0x5846, 0x3d76, 0x464d, 0x3370, 0x586b, 0x3d71, 0x3d69, - 0x4854, 0x3453, 0x4258, 0x3256, 0x5750, 0x4a4b, 0x4b7b, 0x554c, - 0x3836, 0x4f49, 0x595a, 0x5870, 0x472a, 0x586e, 0x347a, 0x416e, - 0x5254, 0x586d, 0x5247, 0x586f, 0x4347, 0x5176, 0x5659, 0x5872, - 0x5875, 0x3c7e, 0x3c5b, 0x484e, 0x375d, 0x3742, 0x4673, 0x5878, - 0x5241, 0x4e69, 0x3c3f, 0x377c, 0x3725, 0x505d, 0x565a, 0x5345, - 0x3b6f, 0x3b61, 0x5871, 0x4921, 0x4e30, 0x342b, 0x5873, 0x494b, - 0x5876, 0x4257, 0x5877, 0x4e31, 0x5879, 0x322e, 0x3940, 0x5923, - 0x3069, 0x4166, 0x496c, 0x4b45, 0x4b46, 0x5924, 0x3568, 0x352b, - 0x4e3b, 0x354d, 0x5721, 0x5774, 0x5353, 0x4c65, 0x3a4e, 0x5922, - 0x595c, 0x5360, 0x587d, 0x3770, 0x5777, 0x587e, 0x587a, 0x5921, - 0x4463, 0x5336, 0x5874, 0x595d, 0x587b, 0x4565, 0x4050, 0x5170, - 0x305b, 0x3c51, 0x5926, 0x5925, 0x592c, 0x592e, 0x592b, 0x4a39, - 0x5929, 0x5636, 0x335e, 0x5928, 0x407d, 0x4a4c, 0x592a, 0x5927, - 0x5930, 0x3631, 0x3929, 0x5240, 0x4f40, 0x4242, 0x3d44, 0x556c, - 0x3260, 0x4748, 0x3f6b, 0x592d, 0x592f, 0x4e6a, 0x3a6e, 0x4756, - 0x3163, 0x3459, 0x366d, 0x5934, 0x3f21, 0x595e, 0x474e, 0x407e, - 0x5938, 0x4b57, 0x377d, 0x5935, 0x5937, 0x3123, 0x5361, 0x5939, - 0x5045, 0x5936, 0x5931, 0x5932, 0x4129, 0x5933, 0x3c73, 0x505e, - 0x3829, 0x3e63, 0x593d, 0x593a, 0x3033, 0x5942, 0x5944, 0x3136, - 0x593f, 0x3539, 0x3e73, 0x4c48, 0x3a72, 0x5250, 0x5943, 0x3d68, - 0x332b, 0x5945, 0x3e6b, 0x5946, 0x593b, 0x445f, 0x593e, 0x5941, - 0x5940, 0x552e, 0x5635, 0x4763, 0x5948, 0x3c59, 0x594a, 0x593c, - 0x594b, 0x462b, 0x5949, 0x5776, 0x4d23, 0x3d21, 0x594c, 0x453c, - 0x4d35, 0x594d, 0x5947, 0x3325, 0x3f7e, 0x3835, 0x407c, 0x3078, - 0x3476, 0x594e, 0x594f, 0x3422, 0x5950, 0x345f, 0x3041, 0x5951, - 0x4935, 0x4f71, 0x5952, 0x4145, 0x5956, 0x492e, 0x5955, 0x5954, - 0x5957, 0x4b5b, 0x3d29, 0x4627, 0x5953, 0x5958, 0x5959, 0x4865, - 0x405c, 0x3679, 0x5823, 0x544a, 0x542a, 0x5056, 0x3364, 0x5557, - 0x4f48, 0x3962, 0x3f4b, 0x4362, 0x3652, 0x4d43, 0x596e, 0x5970, - 0x3533, 0x3635, 0x3e24, 0x486b, 0x482b, 0x304b, 0x392b, 0x4179, - 0x5962, 0x403c, 0x3932, 0x3958, 0x504b, 0x3178, 0x4664, 0x3e5f, - 0x3564, 0x5748, 0x5178, 0x3c66, 0x4a5e, 0x3c3d, 0x5966, 0x5867, - 0x445a, 0x3854, 0x483d, 0x3261, 0x5459, 0x4330, 0x4361, 0x5a22, - 0x485f, 0x5034, 0x3e7c, 0x4529, 0x395a, 0x5a23, 0x5429, 0x5a24, - 0x597b, 0x362c, 0x376b, 0x3179, 0x597c, 0x3365, 0x3e76, 0x3f76, - 0x5231, 0x4064, 0x3633, 0x597e, 0x597d, 0x3e3b, 0x4660, 0x573c, - 0x5a21, 0x4139, 0x3572, 0x4168, 0x3c75, 0x3455, 0x415d, 0x447d, - 0x3c38, 0x3732, 0x376f, 0x596c, 0x463e, 0x3f2d, 0x3b4b, 0x354a, - 0x5b49, 0x5057, 0x4d39, 0x303c, 0x3376, 0x3b77, 0x5b4a, 0x3a2f, - 0x5464, 0x3536, 0x3573, 0x5856, 0x4850, 0x3756, 0x4750, 0x5857, - 0x3f2f, 0x5b3b, 0x5858, 0x504c, 0x3b2e, 0x6b3e, 0x4150, 0x4175, - 0x5472, 0x3855, 0x3434, 0x3375, 0x493e, 0x4550, 0x4559, 0x407b, - 0x3170, 0x5859, 0x394e, 0x353d, 0x585a, 0x5646, 0x4b22, 0x482f, - 0x4932, 0x344c, 0x3f4c, 0x3974, 0x585b, 0x585c, 0x3667, 0x3c41, - 0x4c6a, 0x4f77, 0x585d, 0x4730, 0x3950, 0x3d23, 0x4c5e, 0x464a, - 0x5860, 0x585e, 0x585f, 0x307e, 0x3e67, 0x4a23, 0x3c74, 0x3831, - 0x386e, 0x5862, 0x3d4b, 0x5864, 0x5863, 0x457c, 0x5865, 0x5866, - 0x4126, 0x4830, 0x306c, 0x3926, 0x3c53, 0x4e71, 0x5b3d, 0x4153, - 0x362f, 0x567a, 0x452c, 0x3d59, 0x5b3e, 0x5b3f, 0x4078, 0x3e22, - 0x404d, 0x5b40, 0x4a46, 0x322a, 0x5342, 0x4363, 0x512b, 0x5b42, - 0x4055, 0x5b43, 0x3f31, 0x443c, 0x475a, 0x5b44, 0x5968, 0x4957, - 0x3934, 0x4e70, 0x5448, 0x307c, 0x3452, 0x5059, 0x5969, 0x5e4b, - 0x596b, 0x5830, 0x3b2f, 0x3131, 0x3357, 0x584e, 0x5451, 0x3d33, - 0x3f6f, 0x4f3b, 0x5850, 0x374b, 0x5851, 0x4625, 0x4778, 0x523d, - 0x5852, 0x4464, 0x4a2e, 0x4727, 0x5826, 0x497d, 0x4e67, 0x3b5c, - 0x306b, 0x3b2a, 0x502d, 0x3130, 0x5764, 0x573f, 0x3525, 0x4274, - 0x444f, 0x3229, 0x3237, 0x3165, 0x5f32, 0x553c, 0x3f28, 0x422c, - 0x5855, 0x4231, 0x5854, 0x4e54, 0x5a60, 0x4e40, 0x5834, 0x432e, - 0x5321, 0x4e23, 0x3c34, 0x4834, 0x4251, 0x3e6d, 0x5036, 0x5a61, - 0x4764, 0x3327, 0x3672, 0x4c7c, 0x407a, 0x4077, 0x5139, 0x5161, - 0x5847, 0x325e, 0x4065, 0x3a71, 0x5848, 0x542d, 0x4f61, 0x5849, - 0x584a, 0x4f43, 0x3378, 0x3e47, 0x584b, 0x5b4c, 0x4825, 0x4f58, - 0x487e, 0x324e, 0x5356, 0x3266, 0x3c30, 0x5351, 0x4b2b, 0x3734, - 0x3722, 0x4a65, 0x4821, 0x4a5c, 0x3164, 0x5070, 0x4551, 0x5b45, - 0x357e, 0x3f5a, 0x3945, 0x3e64, 0x416d, 0x5f36, 0x5f35, 0x563b, - 0x3d50, 0x5559, 0x3048, 0x3623, 0x3f49, 0x4c28, 0x5f33, 0x4a37, - 0x5352, 0x584f, 0x5236, 0x3a45, 0x4b3e, 0x4c3e, 0x5f37, 0x3570, - 0x5f34, 0x5375, 0x3354, 0x3877, 0x5f3a, 0x3a4f, 0x3c2a, 0x3575, - 0x4d2c, 0x437b, 0x3a73, 0x4074, 0x4d42, 0x4f72, 0x5f38, 0x4f45, - 0x4240, 0x5f39, 0x4270, 0x3e7d, 0x415f, 0x4d4c, 0x5277, 0x374d, - 0x5f41, 0x5f44, 0x3771, 0x3049, 0x3656, 0x3754, 0x3a2c, 0x4c7d, - 0x3f54, 0x4b31, 0x4674, 0x5628, 0x5f45, 0x4e62, 0x3333, 0x4e7c, - 0x3435, 0x4e47, 0x3a70, 0x4e61, 0x513d, 0x5f40, 0x3474, 0x334a, - 0x3866, 0x5f3b, 0x4445, 0x5f3c, 0x5f3d, 0x5f3e, 0x453b, 0x5f3f, - 0x5f42, 0x5431, 0x5f43, 0x473a, 0x4e58, 0x4458, 0x5f4a, 0x5f4f, - 0x565c, 0x5f49, 0x5f5a, 0x4e36, 0x3a47, 0x5f4e, 0x5f48, 0x455e, - 0x496b, 0x3a74, 0x437c, 0x3e57, 0x5f46, 0x5f4d, 0x4558, 0x5526, - 0x3a4d, 0x3e4c, 0x533d, 0x3840, 0x5664, 0x5f47, 0x393e, 0x3f27, - 0x417c, 0x5f4b, 0x5f4c, 0x5f50, 0x5f5b, 0x5f65, 0x5f57, 0x5f56, - 0x5749, 0x5f63, 0x5f64, 0x656b, 0x5227, 0x5f52, 0x3f29, 0x545b, - 0x3f48, 0x5f54, 0x4f4c, 0x5f5d, 0x514a, 0x5f5e, 0x3027, 0x4637, - 0x5f53, 0x3a65, 0x365f, 0x4d5b, 0x397e, 0x5455, 0x5f5f, 0x4f6c, - 0x3025, 0x5f67, 0x5f51, 0x5146, 0x5f55, 0x5f58, 0x5f59, 0x5f5c, - 0x3b29, 0x5f60, 0x5f61, 0x5f62, 0x5f66, 0x5f68, 0x5334, 0x3867, - 0x4536, 0x5f6a, 0x495a, 0x4128, 0x4444, 0x3f5e, 0x4f78, 0x555c, - 0x5f6e, 0x3238, 0x3a5f, 0x5f6c, 0x5b41, 0x5164, 0x4b74, 0x343d, - 0x3026, 0x5f71, 0x4c46, 0x5f72, 0x5f6d, 0x5f69, 0x5f6b, 0x5f6f, - 0x5f70, 0x3b3d, 0x5f73, 0x5f74, 0x3b23, 0x4a5b, 0x4e28, 0x6027, - 0x332a, 0x6026, 0x6021, 0x5f7e, 0x4d59, 0x5f7c, 0x5f7a, 0x3f50, - 0x5744, 0x494c, 0x5f78, 0x3021, 0x5f7d, 0x5f7b, 0x6022, 0x6028, - 0x3748, 0x4621, 0x4936, 0x4032, 0x5f75, 0x453e, 0x5844, 0x5f79, - 0x4476, 0x6023, 0x6024, 0x6025, 0x5025, 0x6034, 0x4c64, 0x6031, - 0x3f26, 0x602f, 0x4e39, 0x602b, 0x4946, 0x402e, 0x602e, 0x3a6d, - 0x3a30, 0x6029, 0x5f76, 0x6033, 0x6038, 0x342d, 0x6039, 0x4f32, - 0x3a48, 0x6030, 0x507a, 0x602c, 0x547b, 0x5f77, 0x4567, 0x602d, - 0x5377, 0x6036, 0x6037, 0x6044, 0x5061, 0x603c, 0x6049, 0x604a, - 0x603e, 0x602a, 0x4924, 0x6041, 0x6032, 0x4a48, 0x6043, 0x6035, - 0x4e4b, 0x4b43, 0x604d, 0x6046, 0x6042, 0x604b, 0x603a, 0x603f, - 0x6040, 0x6045, 0x6047, 0x6048, 0x604c, 0x603b, 0x4b54, 0x6055, - 0x6056, 0x6052, 0x6050, 0x3c4e, 0x6051, 0x3842, 0x5845, 0x506a, - 0x426f, 0x604f, 0x603d, 0x6054, 0x6053, 0x6057, 0x605c, 0x6058, - 0x5676, 0x3330, 0x576c, 0x4b3b, 0x605a, 0x4e7b, 0x3a59, 0x6061, - 0x605d, 0x522d, 0x6062, 0x605b, 0x6059, 0x605f, 0x6060, 0x605e, - 0x6064, 0x4677, 0x582c, 0x546b, 0x6066, 0x4a49, 0x6065, 0x3841, - 0x6067, 0x6068, 0x6069, 0x6063, 0x3a3f, 0x4c67, 0x606a, 0x4f79, - 0x606b, 0x4842, 0x3d40, 0x4452, 0x606c, 0x606d, 0x4774, 0x4b44, - 0x606e, 0x3b58, 0x5836, 0x5272, 0x606f, 0x4d45, 0x365a, 0x6071, - 0x5430, 0x4027, 0x3451, 0x4e27, 0x6070, 0x6072, 0x394c, 0x397a, - 0x4d3c, 0x6073, 0x4654, 0x6074, 0x5432, 0x4826, 0x6076, 0x6075, - 0x6077, 0x4d41, 0x4a25, 0x545a, 0x5b57, 0x5b59, 0x5b58, 0x3967, - 0x5b5c, 0x5b5d, 0x3558, 0x5b5a, 0x5b5b, 0x3321, 0x5b5f, 0x3b78, - 0x5637, 0x5b60, 0x3e79, 0x373b, 0x5b50, 0x4c2e, 0x3f32, 0x3b35, - 0x5778, 0x3f53, 0x3f69, 0x3c61, 0x4c33, 0x5b5e, 0x3053, 0x4e6b, - 0x3758, 0x5739, 0x4642, 0x4024, 0x4c39, 0x5b67, 0x5b61, 0x463a, - 0x5b63, 0x5b68, 0x4577, 0x5b6a, 0x5b69, 0x3f40, 0x5b66, 0x5b65, - 0x3439, 0x402c, 0x4222, 0x5b62, 0x5b64, 0x504d, 0x5b6d, 0x405d, - 0x5b72, 0x3662, 0x5b73, 0x5b52, 0x3938, 0x542b, 0x5b6c, 0x3f51, - 0x5b70, 0x5b51, 0x3566, 0x5b6b, 0x3f65, 0x5b6e, 0x5b71, 0x5b79, - 0x3921, 0x3023, 0x4271, 0x3347, 0x5b6f, 0x5b78, 0x4652, 0x5b74, - 0x5b75, 0x5b77, 0x5b76, 0x5b7e, 0x5372, 0x323a, 0x5b7d, 0x5c24, - 0x5b7b, 0x5b7a, 0x5b7c, 0x4560, 0x3b79, 0x5c23, 0x5c25, 0x4c43, - 0x3651, 0x5d40, 0x5c21, 0x5c22, 0x4735, 0x3669, 0x5c27, 0x5c26, - 0x5c29, 0x3124, 0x354c, 0x3f30, 0x515f, 0x3642, 0x5c28, 0x4b7a, - 0x6b73, 0x4b5c, 0x4b7e, 0x4c41, 0x487b, 0x5c2a, 0x4c6e, 0x5c2b, - 0x5b53, 0x5c2f, 0x5c2c, 0x3e33, 0x4a7b, 0x5c2d, 0x494a, 0x4439, - 0x473d, 0x5c2e, 0x5476, 0x5066, 0x442b, 0x3655, 0x5b54, 0x315a, - 0x5b55, 0x5b56, 0x3a3e, 0x4840, 0x4a3f, 0x4849, 0x5733, 0x4979, - 0x3f47, 0x3a78, 0x523c, 0x623a, 0x3426, 0x3138, 0x3834, 0x4f44, - 0x5967, 0x4f26, 0x4d62, 0x596d, 0x3660, 0x5239, 0x393b, 0x6239, - 0x6237, 0x3473, 0x4c6c, 0x4c2b, 0x3772, 0x5832, 0x516b, 0x3a3b, - 0x4a27, 0x4d37, 0x5244, 0x3f64, 0x3c50, 0x3661, 0x5e45, 0x5e46, - 0x5b3c, 0x5159, 0x4666, 0x444e, 0x376e, 0x375c, 0x3f7c, 0x5760, - 0x4675, 0x313c, 0x5e48, 0x3d31, 0x4c57, 0x5e4a, 0x5e49, 0x356c, - 0x495d, 0x3042, 0x452e, 0x452b, 0x444c, 0x3c69, 0x4b7d, 0x3a43, - 0x6579, 0x4867, 0x657a, 0x4d7d, 0x5731, 0x383e, 0x4268, 0x4851, - 0x657b, 0x364a, 0x3c4b, 0x517d, 0x6621, 0x436e, 0x6624, 0x657e, - 0x6625, 0x4d57, 0x3741, 0x657c, 0x657d, 0x6623, 0x445d, 0x6628, - 0x6627, 0x4343, 0x465e, 0x662a, 0x4437, 0x6622, 0x4a3c, 0x3d63, - 0x3943, 0x6626, 0x5055, 0x4e2f, 0x6629, 0x6630, 0x5226, 0x3d2a, - 0x662d, 0x662f, 0x4051, 0x524c, 0x3c27, 0x6631, 0x5276, 0x574b, - 0x4d7e, 0x4d5e, 0x4226, 0x662b, 0x662c, 0x3d3f, 0x662e, 0x6633, - 0x6632, 0x6636, 0x6638, 0x446f, 0x4448, 0x3e6a, 0x496f, 0x6637, - 0x3670, 0x4364, 0x5369, 0x6634, 0x6635, 0x4822, 0x663d, 0x6639, - 0x4645, 0x4d71, 0x663b, 0x663c, 0x3b69, 0x663e, 0x663a, 0x4037, - 0x5324, 0x663f, 0x4974, 0x6643, 0x6644, 0x5076, 0x433d, 0x4344, - 0x6642, 0x6641, 0x6647, 0x4f31, 0x6b74, 0x664a, 0x6645, 0x3c5e, - 0x4929, 0x3c35, 0x4f53, 0x6648, 0x6649, 0x664e, 0x6650, 0x6651, - 0x664b, 0x3555, 0x664c, 0x664f, 0x445b, 0x6646, 0x664d, 0x6652, - 0x6654, 0x6653, 0x6655, 0x5978, 0x6656, 0x6657, 0x5753, 0x665d, - 0x665e, 0x3f57, 0x5450, 0x5756, 0x3466, 0x4b6f, 0x665a, 0x5843, - 0x574e, 0x5022, 0x434f, 0x665f, 0x3c3e, 0x3942, 0x665b, 0x5127, - 0x3a22, 0x424f, 0x582b, 0x4a6b, 0x656e, 0x665c, 0x3775, 0x4866, - 0x4475, 0x6532, 0x447e, 0x4b7c, 0x6533, 0x552c, 0x536e, 0x4a58, - 0x3032, 0x4b4e, 0x4d6a, 0x3a6a, 0x6535, 0x6534, 0x575a, 0x3959, - 0x5666, 0x3628, 0x4d70, 0x524b, 0x3126, 0x4a35, 0x3368, 0x4973, - 0x3f4d, 0x507b, 0x4a52, 0x6536, 0x3b42, 0x4f5c, 0x392c, 0x5457, - 0x3a26, 0x5167, 0x4f7c, 0x3c52, 0x6537, 0x485d, 0x3f6d, 0x3176, - 0x4b5e, 0x3c45, 0x3c44, 0x527a, 0x435c, 0x3f5c, 0x383b, 0x4342, - 0x3a2e, 0x5422, 0x475e, 0x442f, 0x326c, 0x3951, 0x653b, 0x4148, - 0x552f, 0x653c, 0x653e, 0x3467, 0x3654, 0x4b42, 0x5130, 0x353c, - 0x4a59, 0x3762, 0x4964, 0x3d2b, 0x4e3e, 0x5770, 0x5021, 0x4959, - 0x367b, 0x6658, 0x3c62, 0x333e, 0x4950, 0x6659, 0x3322, 0x5e4c, - 0x5348, 0x5e4d, 0x5222, 0x5e4e, 0x3e4d, 0x5e4f, 0x4a2c, 0x527c, - 0x335f, 0x656a, 0x4461, 0x3e21, 0x4e32, 0x4472, 0x3e56, 0x4628, - 0x3263, 0x3e53, 0x477c, 0x4c6b, 0x3d6c, 0x4e5d, 0x4a3a, 0x4641, - 0x656c, 0x503c, 0x5539, 0x656d, 0x4a74, 0x4d40, 0x4245, 0x656f, - 0x4244, 0x6570, 0x6578, 0x4d4d, 0x493d, 0x5259, 0x6128, 0x536c, - 0x4b6a, 0x4671, 0x612c, 0x6127, 0x6129, 0x612a, 0x612f, 0x326d, - 0x612b, 0x385a, 0x612d, 0x612e, 0x6130, 0x353a, 0x6131, 0x6133, - 0x6138, 0x5152, 0x6136, 0x6135, 0x416b, 0x6137, 0x5440, 0x6132, - 0x613a, 0x3036, 0x6134, 0x3f79, 0x6139, 0x613b, 0x613e, 0x613c, - 0x5645, 0x4f3f, 0x613d, 0x613f, 0x424d, 0x366b, 0x5378, 0x474d, - 0x3765, 0x3e7e, 0x6140, 0x6141, 0x6147, 0x3367, 0x4669, 0x345e, - 0x5142, 0x6148, 0x6146, 0x6145, 0x6143, 0x6142, 0x3140, 0x5538, - 0x6144, 0x614b, 0x614c, 0x614a, 0x6f7a, 0x6153, 0x6152, 0x4736, - 0x6149, 0x614e, 0x6150, 0x6154, 0x6151, 0x614d, 0x614f, 0x6155, - 0x6156, 0x6157, 0x6158, 0x615a, 0x615b, 0x4e21, 0x675d, 0x3428, - 0x565d, 0x5132, 0x3332, 0x3924, 0x5773, 0x4749, 0x3e5e, 0x392e, - 0x4e57, 0x326e, 0x5b4f, 0x3c3a, 0x5251, 0x4b48, 0x304d, 0x4f6f, - 0x5963, 0x3d6d, 0x3152, 0x4a50, 0x323c, 0x4b27, 0x372b, 0x4a26, - 0x4f23, 0x6078, 0x554a, 0x607b, 0x607a, 0x4541, 0x4c7b, 0x4131, - 0x6079, 0x5663, 0x322f, 0x5644, 0x355b, 0x3478, 0x5621, 0x4f2f, - 0x306f, 0x607c, 0x6121, 0x3323, 0x607d, 0x607e, 0x4331, 0x435d, - 0x6122, 0x3779, 0x3b4f, 0x6123, 0x443b, 0x6124, 0x6125, 0x6126, - 0x3431, 0x3849, 0x463d, 0x446a, 0x3222, 0x5052, 0x675b, 0x3b43, - 0x5357, 0x5344, 0x3963, 0x624f, 0x572f, 0x476c, 0x3153, 0x3432, - 0x6251, 0x5072, 0x422e, 0x6250, 0x3f62, 0x5326, 0x3557, 0x6252, - 0x356a, 0x436d, 0x387d, 0x382e, 0x4553, 0x374f, 0x6254, 0x6253, - 0x3648, 0x5779, 0x4d25, 0x6258, 0x6256, 0x4a7c, 0x3f35, 0x5339, - 0x6255, 0x6257, 0x412e, 0x4048, 0x625b, 0x625a, 0x402a, 0x414e, - 0x625c, 0x625d, 0x625e, 0x5b48, 0x5153, 0x4d22, 0x3d28, 0x5e43, - 0x5825, 0x3f2a, 0x5b4d, 0x526c, 0x467a, 0x452a, 0x5e44, 0x3157, - 0x5f2e, 0x4a3d, 0x5f31, 0x392d, 0x527d, 0x3825, 0x3a6b, 0x335a, - 0x355c, 0x5545, 0x4356, 0x4f52, 0x3b21, 0x6573, 0x6572, 0x6574, - 0x4d64, 0x4875, 0x352f, 0x473f, 0x6576, 0x6c30, 0x6566, 0x3969, - 0x3531, 0x423c, 0x6568, 0x6567, 0x6569, 0x524d, 0x616a, 0x504e, - 0x4d2e, 0x5165, 0x324a, 0x316b, 0x3172, 0x456d, 0x5543, 0x5330, - 0x615c, 0x615d, 0x525b, 0x3339, 0x314b, 0x4d79, 0x5577, 0x615e, - 0x3e36, 0x347d, 0x615f, 0x3a5c, 0x6160, 0x3b32, 0x4249, 0x6161, - 0x506c, 0x4d3d, 0x6162, 0x3543, 0x4547, 0x6163, 0x6164, 0x5379, - 0x6165, 0x512d, 0x6166, 0x4e22, 0x6167, 0x3542, 0x6168, 0x3b55, - 0x5044, 0x6260, 0x3158, 0x5264, 0x6261, 0x3c49, 0x484c, 0x6263, - 0x6c7e, 0x6c7d, 0x5f2f, 0x6262, 0x563e, 0x4d7c, 0x4326, 0x6343, - 0x5652, 0x6267, 0x6268, 0x5347, 0x626c, 0x3f6c, 0x626d, 0x6265, - 0x3340, 0x446e, 0x626e, 0x5043, 0x3a76, 0x6269, 0x375e, 0x3b33, - 0x4c2c, 0x4b4b, 0x6264, 0x6266, 0x626a, 0x626b, 0x6277, 0x6274, - 0x5475, 0x6273, 0x452d, 0x557a, 0x4542, 0x3240, 0x626f, 0x6272, - 0x412f, 0x4b3c, 0x3521, 0x6279, 0x3c31, 0x6271, 0x5054, 0x5439, - 0x6275, 0x3956, 0x6276, 0x4753, 0x6270, 0x575c, 0x6d21, 0x6278, - 0x6d25, 0x627e, 0x4a51, 0x4135, 0x3b50, 0x3f56, 0x3a63, 0x4b21, - 0x6d26, 0x6d23, 0x6d22, 0x3b56, 0x6d27, 0x5074, 0x6d24, 0x3a5e, - 0x3677, 0x6321, 0x3632, 0x4c71, 0x3927, 0x4f22, 0x4721, 0x3f52, - 0x3671, 0x627a, 0x627b, 0x627d, 0x627c, 0x4455, 0x6322, 0x5341, - 0x6327, 0x4744, 0x4f24, 0x6329, 0x3a37, 0x6328, 0x3b5a, 0x6323, - 0x6324, 0x632a, 0x6326, 0x4e72, 0x5346, 0x3b3c, 0x5443, 0x447a, - 0x6d28, 0x507c, 0x6325, 0x4375, 0x632d, 0x312f, 0x6332, 0x3c42, - 0x632c, 0x353f, 0x4769, 0x6330, 0x3e2a, 0x4d6f, 0x3b73, 0x4c68, - 0x632f, 0x6331, 0x4f27, 0x632e, 0x4e29, 0x3b5d, 0x356b, 0x3e65, - 0x3252, 0x334d, 0x3139, 0x632b, 0x3251, 0x352c, 0x395f, 0x3668, - 0x4f6b, 0x6337, 0x3b4c, 0x4847, 0x504a, 0x6338, 0x336e, 0x6d29, - 0x537a, 0x5364, 0x6d2a, 0x6339, 0x5262, 0x6335, 0x535e, 0x3850, - 0x6333, 0x6336, 0x375f, 0x6334, 0x4022, 0x633a, 0x5438, 0x3448, - 0x633b, 0x3b45, 0x4977, 0x4965, 0x443d, 0x6d2b, 0x427d, 0x3b5b, - 0x3f2e, 0x4e3f, 0x633c, 0x3f36, 0x316f, 0x5477, 0x633e, 0x6d2d, - 0x633f, 0x3a29, 0x6d2c, 0x633d, 0x6340, 0x3a36, 0x362e, 0x5038, - 0x3043, 0x6d2e, 0x6d2f, 0x4041, 0x6341, 0x4533, 0x6342, 0x5c32, - 0x6d30, 0x386a, 0x4e6c, 0x6a27, 0x5067, 0x4a79, 0x4856, 0x4f37, - 0x3349, 0x4e52, 0x3d64, 0x635e, 0x3b72, 0x6a28, 0x553d, 0x465d, - 0x6a29, 0x6a2a, 0x6a2c, 0x6a2b, 0x6a2e, 0x6a2d, 0x3d58, 0x6a2f, - 0x423e, 0x3441, 0x3477, 0x3b27, 0x6c66, 0x6c65, 0x373f, 0x4b79, - 0x3162, 0x6c67, 0x4948, 0x6c68, 0x6c69, 0x4a56, 0x5e50, 0x3245, - 0x547a, 0x464b, 0x3047, 0x3472, 0x4853, 0x4d50, 0x3f38, 0x3f5b, - 0x4724, 0x5634, 0x4029, 0x5e51, 0x4928, 0x516f, 0x4524, 0x3067, - 0x3336, 0x4845, 0x3062, 0x3776, 0x457a, 0x3673, 0x5552, 0x3350, - 0x3c3c, 0x332d, 0x3e71, 0x3051, 0x5256, 0x4a63, 0x5725, 0x4d36, - 0x3636, 0x3f39, 0x555b, 0x3827, 0x4557, 0x5e52, 0x3f59, 0x4255, - 0x4740, 0x3b24, 0x3128, 0x456a, 0x457b, 0x4c27, 0x3127, 0x3556, - 0x4428, 0x5e53, 0x513a, 0x3369, 0x4372, 0x3777, 0x5674, 0x3523, - 0x3270, 0x4434, 0x4469, 0x402d, 0x5e54, 0x3068, 0x4544, 0x4160, - 0x3955, 0x3e5c, 0x4d58, 0x304e, 0x4d4f, 0x5e56, 0x3e50, 0x573e, - 0x5e55, 0x5550, 0x305d, 0x4462, 0x4223, 0x3c70, 0x5335, 0x4039, - 0x4521, 0x3226, 0x5471, 0x4028, 0x4a43, 0x5e57, 0x557c, 0x3930, - 0x482d, 0x4b29, 0x5e59, 0x3f3d, 0x4634, 0x5727, 0x4a30, 0x4443, - 0x3356, 0x3952, 0x5638, 0x6a7c, 0x3034, 0x3f66, 0x4c74, 0x4d5a, - 0x563f, 0x424e, 0x4e4e, 0x4c22, 0x502e, 0x4453, 0x3532, 0x5e58, - 0x5575, 0x3c37, 0x3b53, 0x3024, 0x4532, 0x346c, 0x5571, 0x6a7d, - 0x5e5a, 0x4d26, 0x4d6c, 0x4e66, 0x5e5c, 0x4d31, 0x4026, 0x573d, - 0x5e5b, 0x3046, 0x3a34, 0x4953, 0x4473, 0x3e68, 0x3236, 0x404c, - 0x4b70, 0x3c71, 0x3b3b, 0x3537, 0x4575, 0x5e66, 0x5e63, 0x3e5d, - 0x5e5f, 0x3437, 0x3d5d, 0x5e60, 0x446d, 0x4f46, 0x3560, 0x365e, - 0x4a5a, 0x3574, 0x5e65, 0x5546, 0x5e61, 0x4c4d, 0x467e, 0x4545, - 0x5234, 0x3e72, 0x4253, 0x4c3d, 0x3338, 0x3d53, 0x3f58, 0x4d46, - 0x515a, 0x346b, 0x5e64, 0x5e5d, 0x5e67, 0x6a7e, 0x4230, 0x5e62, - 0x5640, 0x3527, 0x3274, 0x5e68, 0x5e72, 0x5e6d, 0x5e71, 0x4860, - 0x5761, 0x5e6f, 0x4368, 0x4c61, 0x3265, 0x523e, 0x5e6e, 0x5e6b, - 0x4e55, 0x3427, 0x3f2b, 0x3e3e, 0x3d52, 0x5e69, 0x542e, 0x5e5e, - 0x5e6a, 0x403f, 0x5e6c, 0x3273, 0x3869, 0x4227, 0x3d41, 0x5e75, - 0x5e78, 0x322b, 0x3424, 0x346a, 0x4926, 0x5e76, 0x4b51, 0x3863, - 0x5e77, 0x5e7a, 0x5e79, 0x4c42, 0x3061, 0x346e, 0x653a, 0x502f, - 0x326b, 0x6b21, 0x5e74, 0x4963, 0x5e73, 0x305a, 0x5221, 0x3177, - 0x4c2f, 0x5e70, 0x4b24, 0x552a, 0x5e7b, 0x345d, 0x4426, 0x5e7d, - 0x437e, 0x4421, 0x5f21, 0x414c, 0x5e7c, 0x3e6f, 0x4632, 0x3345, - 0x4876, 0x4b3a, 0x5e7e, 0x5f24, 0x5732, 0x3337, 0x4143, 0x474b, - 0x3225, 0x3469, 0x572b, 0x446c, 0x5f22, 0x5f23, 0x5f25, 0x3a33, - 0x5f26, 0x405e, 0x4943, 0x3259, 0x4766, 0x5f27, 0x475c, 0x5f28, - 0x6b22, 0x4b53, 0x5f2a, 0x5f29, 0x3241, 0x454a, 0x5f2b, 0x545c, - 0x4841, 0x5f2c, 0x3e70, 0x5f2d, 0x5627, 0x6a37, 0x6b36, 0x4a55, - 0x587c, 0x3844, 0x3925, 0x3745, 0x557e, 0x394a, 0x5027, 0x744d, - 0x3550, 0x4374, 0x3e48, 0x6b37, 0x303d, 0x3d4c, 0x4132, 0x3156, - 0x3328, 0x3852, 0x4922, 0x3658, 0x6b38, 0x3e34, 0x4a7d, 0x4743, - 0x557b, 0x3773, 0x4e44, 0x552b, 0x3173, 0x6c33, 0x305f, 0x6c35, - 0x3637, 0x414f, 0x757a, 0x5031, 0x5565, 0x4e53, 0x3d6f, 0x3362, - 0x382b, 0x5536, 0x6d3d, 0x364f, 0x4b39, 0x5042, 0x373d, 0x6c36, - 0x4a29, 0x4554, 0x6c39, 0x6c38, 0x4243, 0x6c37, 0x507d, 0x6c3a, - 0x6c3b, 0x5765, 0x6c3c, 0x6c3d, 0x466c, 0x4e5e, 0x3c48, 0x4855, - 0x3529, 0x3e49, 0x563c, 0x5467, 0x512e, 0x5071, 0x6a38, 0x6a39, - 0x6a3a, 0x3a35, 0x4a31, 0x3f75, 0x4d7a, 0x6a40, 0x303a, 0x6a3e, - 0x4025, 0x6a3b, 0x327d, 0x4377, 0x3b68, 0x5257, 0x4e74, 0x6a3f, - 0x6a3c, 0x6a43, 0x5047, 0x5333, 0x343a, 0x4341, 0x5772, 0x5551, - 0x4a47, 0x6a45, 0x6a44, 0x6a47, 0x6a46, 0x5667, 0x4f54, 0x6a4b, - 0x3b4e, 0x3d7a, 0x494e, 0x6a4c, 0x4939, 0x4f7e, 0x6a4a, 0x544e, - 0x6a4d, 0x6a4f, 0x4d6d, 0x6a49, 0x6a4e, 0x4e6e, 0x3b5e, 0x333f, - 0x4655, 0x3e30, 0x4e7a, 0x4767, 0x3e27, 0x6a50, 0x5647, 0x4140, - 0x545d, 0x6a51, 0x4f3e, 0x6a52, 0x4a6e, 0x452f, 0x3035, 0x6a54, - 0x6a53, 0x745f, 0x443a, 0x3129, 0x655f, 0x6a55, 0x4a6f, 0x6a56, - 0x6a57, 0x4658, 0x6a58, 0x6a59, 0x543b, 0x477a, 0x5237, 0x387c, - 0x6a42, 0x325c, 0x427c, 0x5478, 0x4c66, 0x576e, 0x5442, 0x5350, - 0x6b43, 0x4573, 0x377e, 0x6b54, 0x4b37, 0x6b5e, 0x404a, 0x4d7b, - 0x332f, 0x465a, 0x6b7c, 0x443e, 0x4e34, 0x4429, 0x313e, 0x547d, - 0x4a75, 0x566c, 0x4653, 0x3664, 0x3b7a, 0x5060, 0x4931, 0x5453, - 0x4828, 0x384b, 0x683e, 0x493c, 0x683b, 0x406e, 0x5053, 0x3244, - 0x3465, 0x683c, 0x5548, 0x3645, 0x683d, 0x4a78, 0x385c, 0x4c75, - 0x4034, 0x516e, 0x683f, 0x6842, 0x3a3c, 0x312d, 0x3d5c, 0x6a3d, - 0x6843, 0x6846, 0x684b, 0x684c, 0x4b49, 0x3065, 0x3c2b, 0x3939, - 0x6841, 0x4d77, 0x684a, 0x4e76, 0x556d, 0x4156, 0x6844, 0x4336, - 0x397b, 0x5626, 0x6848, 0x4a60, 0x5466, 0x6840, 0x6845, 0x6847, - 0x4739, 0x3763, 0x6849, 0x3f5d, 0x6852, 0x6857, 0x6855, 0x3c5c, - 0x3c4f, 0x685b, 0x685e, 0x685a, 0x317a, 0x3058, 0x4433, 0x384c, - 0x4662, 0x483e, 0x4861, 0x684f, 0x6854, 0x6856, 0x3971, 0x6858, - 0x5775, 0x447b, 0x685c, 0x3269, 0x6851, 0x3c6d, 0x3f42, 0x684d, - 0x5679, 0x4178, 0x3271, 0x685f, 0x4a41, 0x6859, 0x5524, 0x316a, - 0x553b, 0x684e, 0x6850, 0x3630, 0x6853, 0x685d, 0x4038, 0x4a77, - 0x4b28, 0x465c, 0x4075, 0x6869, 0x5023, 0x6872, 0x566a, 0x6860, - 0x6861, 0x5179, 0x3a4b, 0x3879, 0x3871, 0x5454, 0x686f, 0x686e, - 0x686c, 0x3970, 0x4c52, 0x6866, 0x4e26, 0x3f72, 0x3038, 0x6871, - 0x6870, 0x5740, 0x6864, 0x4d29, 0x4923, 0x3b38, 0x3d5b, 0x686a, - 0x6862, 0x6863, 0x6865, 0x3535, 0x6867, 0x4745, 0x686b, 0x686d, - 0x3d30, 0x572e, 0x6878, 0x6875, 0x4d30, 0x6876, 0x413a, 0x6868, - 0x4337, 0x3070, 0x6874, 0x6877, 0x3923, 0x4952, 0x434e, 0x4e60, - 0x4066, 0x4b73, 0x4c5d, 0x5035, 0x4a61, 0x6873, 0x3c6c, 0x6879, - 0x435e, 0x4665, 0x3977, 0x3074, 0x5758, 0x3c2c, 0x456f, 0x4c44, - 0x6926, 0x492d, 0x6922, 0x4062, 0x3f43, 0x687e, 0x3957, 0x687b, - 0x6924, 0x524e, 0x6923, 0x5632, 0x5735, 0x6927, 0x3d37, 0x687c, - 0x687d, 0x6921, 0x4d56, 0x522c, 0x6932, 0x6929, 0x342a, 0x343b, - 0x692b, 0x5028, 0x6925, 0x337e, 0x692c, 0x4063, 0x692a, 0x6939, - 0x6938, 0x692e, 0x687a, 0x6928, 0x3f2c, 0x6931, 0x693a, 0x4225, - 0x692f, 0x3845, 0x692d, 0x535c, 0x6934, 0x6935, 0x6937, 0x6947, - 0x4046, 0x6945, 0x6930, 0x693b, 0x3071, 0x693c, 0x5525, 0x693e, - 0x693f, 0x6941, 0x4171, 0x4836, 0x693d, 0x6942, 0x6943, 0x6933, - 0x6936, 0x3b31, 0x6940, 0x3c77, 0x6944, 0x6946, 0x694a, 0x694e, - 0x325b, 0x6948, 0x372e, 0x694b, 0x694c, 0x5541, 0x4423, 0x6958, - 0x3a61, 0x6949, 0x5323, 0x6954, 0x6957, 0x6950, 0x694f, 0x4741, - 0x6952, 0x6959, 0x3348, 0x6953, 0x4f70, 0x694d, 0x3377, 0x6956, - 0x695a, 0x4c34, 0x4f2d, 0x6955, 0x695c, 0x695b, 0x695e, 0x6951, - 0x695d, 0x695f, 0x434a, 0x4737, 0x344e, 0x3b36, 0x5040, 0x6c23, - 0x4537, 0x537b, 0x6c24, 0x6c25, 0x465b, 0x3f6e, 0x6c26, 0x6c27, - 0x502a, 0x4738, 0x3868, 0x6c28, 0x5639, 0x557d, 0x344b, 0x323d, - 0x4e64, 0x4667, 0x4d61, 0x3475, 0x4b40, 0x3c5f, 0x6962, 0x6963, - 0x516a, 0x6965, 0x3479, 0x6964, 0x5133, 0x4a62, 0x3250, 0x6968, - 0x6966, 0x6967, 0x5633, 0x6969, 0x696a, 0x696b, 0x696c, 0x6c2f, - 0x4539, 0x364e, 0x5273, 0x356e, 0x3b59, 0x6c31, 0x5263, 0x4e63, - 0x4438, 0x433f, 0x363e, 0x5839, 0x3148, 0x314f, 0x3151, 0x457e, - 0x3150, 0x432b, 0x5531, 0x6b24, 0x3a41, 0x4c3a, 0x6b25, 0x6b27, - 0x6b28, 0x6b26, 0x6b29, 0x6b2b, 0x6b2a, 0x6b2c, 0x4a4f, 0x5835, - 0x4371, 0x4325, 0x4678, 0x6b2d, 0x444a, 0x6b2e, 0x6b2f, 0x6b30, - 0x3755, 0x377a, 0x6b31, 0x4762, 0x6b33, 0x3a24, 0x5175, 0x3031, - 0x6b32, 0x6b34, 0x352a, 0x4248, 0x4768, 0x6b35, 0x4b2e, 0x635f, - 0x5340, 0x595b, 0x4d21, 0x562d, 0x4773, 0x5960, 0x3b63, 0x3a3a, - 0x6362, 0x4f2b, 0x6360, 0x4947, 0x3a39, 0x5134, 0x6361, 0x486a, - 0x392f, 0x3d2d, 0x3358, 0x4e5b, 0x4c40, 0x6368, 0x6369, 0x4d74, - 0x4c2d, 0x3c33, 0x636a, 0x636b, 0x505a, 0x467b, 0x375a, 0x475f, - 0x524a, 0x4e56, 0x6364, 0x636c, 0x4972, 0x3341, 0x6367, 0x4663, - 0x6365, 0x6d33, 0x6366, 0x4933, 0x4566, 0x3935, 0x433b, 0x6363, - 0x453d, 0x4124, 0x4259, 0x3257, 0x636d, 0x3b26, 0x442d, 0x6370, - 0x3e5a, 0x637b, 0x6375, 0x3a53, 0x3750, 0x534d, 0x564e, 0x5553, - 0x3941, 0x5534, 0x5158, 0x5039, 0x4776, 0x482a, 0x3234, 0x435a, - 0x636e, 0x637c, 0x636f, 0x3728, 0x6377, 0x6374, 0x373a, 0x4522, - 0x6376, 0x455d, 0x3228, 0x467c, 0x4460, 0x5722, 0x4061, 0x6379, - 0x637a, 0x637d, 0x4c29, 0x6373, 0x533e, 0x3143, 0x6d34, 0x6371, - 0x6372, 0x6378, 0x503a, 0x4643, 0x5473, 0x637e, 0x3d60, 0x6427, - 0x6426, 0x5173, 0x6423, 0x6429, 0x4877, 0x4f34, 0x6428, 0x642e, - 0x4265, 0x3634, 0x3d72, 0x6422, 0x3a69, 0x642a, 0x642c, 0x367d, - 0x565e, 0x6432, 0x642d, 0x6421, 0x3b6e, 0x4d5d, 0x4722, 0x4549, - 0x4177, 0x6424, 0x4733, 0x3d2c, 0x3d3d, 0x6425, 0x5747, 0x3262, - 0x642b, 0x3c43, 0x642f, 0x3b6b, 0x6430, 0x4528, 0x6431, 0x5563, - 0x3f23, 0x643a, 0x6437, 0x643b, 0x643d, 0x4656, 0x3a46, 0x404b, - 0x3821, 0x6434, 0x5421, 0x3a23, 0x3d7e, 0x643c, 0x4d3f, 0x4479, - 0x4f7b, 0x4966, 0x533f, 0x4f51, 0x6433, 0x6438, 0x6439, 0x4c69, - 0x4c4e, 0x4054, 0x6435, 0x4130, 0x6436, 0x4e50, 0x3b41, 0x3553, - 0x4873, 0x3d27, 0x5547, 0x492c, 0x3822, 0x644a, 0x644c, 0x5144, - 0x523a, 0x3a2d, 0x3a54, 0x6443, 0x356d, 0x574d, 0x6440, 0x4f7d, - 0x643f, 0x415c, 0x4c4a, 0x4a67, 0x4457, 0x4c54, 0x6448, 0x6447, - 0x6441, 0x6444, 0x352d, 0x5359, 0x6446, 0x5279, 0x3463, 0x3b34, - 0x496e, 0x343e, 0x3b6c, 0x514d, 0x4c6d, 0x6d35, 0x4765, 0x5428, - 0x644b, 0x5755, 0x6442, 0x3d25, 0x6445, 0x5366, 0x6449, 0x4978, - 0x643e, 0x5365, 0x477e, 0x3649, 0x547c, 0x3233, 0x6457, 0x4e42, - 0x644d, 0x4e3c, 0x385b, 0x6456, 0x3f4a, 0x534e, 0x436c, 0x4548, - 0x6458, 0x4d44, 0x644f, 0x6454, 0x6455, 0x3a7e, 0x4f66, 0x553f, - 0x6452, 0x6450, 0x644e, 0x4d65, 0x4a2a, 0x4023, 0x3d26, 0x6453, - 0x3848, 0x6467, 0x5434, 0x645b, 0x416f, 0x6469, 0x5267, 0x645f, - 0x6460, 0x4f2a, 0x4b5d, 0x645a, 0x6451, 0x6465, 0x485c, 0x6463, - 0x4467, 0x6462, 0x6461, 0x337c, 0x6468, 0x3561, 0x574c, 0x6466, - 0x3b2c, 0x5752, 0x4c4f, 0x6b78, 0x6464, 0x3976, 0x564d, 0x6459, - 0x645c, 0x427a, 0x645e, 0x424b, 0x4044, 0x4250, 0x3175, 0x4c32, - 0x354e, 0x646f, 0x462f, 0x4661, 0x6475, 0x4229, 0x406c, 0x515d, - 0x646e, 0x442e, 0x646d, 0x6476, 0x6474, 0x427e, 0x645d, 0x6470, - 0x4a7e, 0x5544, 0x6471, 0x517a, 0x646b, 0x646c, 0x6472, 0x4e2b, - 0x454b, 0x4731, 0x423a, 0x646a, 0x414a, 0x4c36, 0x3331, 0x647b, - 0x6473, 0x647a, 0x647d, 0x647c, 0x334e, 0x333a, 0x6477, 0x6479, - 0x6478, 0x456c, 0x403d, 0x5468, 0x6522, 0x3044, 0x6524, 0x6523, - 0x3c24, 0x6525, 0x6521, 0x647e, 0x3174, 0x6528, 0x6529, 0x6526, - 0x6527, 0x652a, 0x4659, 0x652b, 0x652d, 0x652c, 0x652f, 0x652e, - 0x3960, 0x6530, 0x6531, 0x3b70, 0x6c61, 0x4370, 0x3546, 0x3b52, - 0x4169, 0x546e, 0x3e44, 0x5746, 0x5456, 0x3253, 0x6c3e, 0x6a41, - 0x422f, 0x3436, 0x5157, 0x3334, 0x4832, 0x3f3b, 0x6c40, 0x564b, - 0x6c3f, 0x6c41, 0x6c45, 0x3e66, 0x4c3f, 0x455a, 0x3e3c, 0x6c46, - 0x317e, 0x6c44, 0x5528, 0x3563, 0x6c42, 0x4136, 0x3363, 0x6c43, - 0x4b38, 0x4043, 0x4c7e, 0x4152, 0x6c48, 0x3a66, 0x4053, 0x5672, - 0x514c, 0x3f3e, 0x3733, 0x4955, 0x6c47, 0x3b62, 0x4c4c, 0x3d7d, - 0x4848, 0x4f29, 0x4d69, 0x456b, 0x3769, 0x5149, 0x3a38, 0x6c49, - 0x6c4a, 0x3b40, 0x6c4b, 0x6c62, 0x313a, 0x3759, 0x3d39, 0x6c4c, - 0x5166, 0x6c4d, 0x483b, 0x6c51, 0x6c53, 0x3b4d, 0x3c65, 0x6c4f, - 0x4937, 0x433a, 0x6c63, 0x5555, 0x6c50, 0x5673, 0x6c52, 0x6c4e, - 0x6c54, 0x6c55, 0x493f, 0x4f28, 0x505c, 0x512c, 0x485b, 0x6c56, - 0x4e75, 0x4a6c, 0x6c5a, 0x6c59, 0x303e, 0x6c57, 0x6c58, 0x6c64, - 0x483c, 0x4147, 0x6c5c, 0x5160, 0x6c5b, 0x546f, 0x6c5d, 0x5b46, - 0x6c5e, 0x312c, 0x6c5f, 0x6c60, 0x5726, 0x4540, 0x6b3c, 0x302e, - 0x3e74, 0x3838, 0x522f, 0x3056, 0x3579, 0x5833, 0x4b2c, 0x635d, - 0x462c, 0x3066, 0x4546, 0x6b39, 0x6b3a, 0x6b3b, 0x5140, 0x4523, - 0x6a72, 0x4432, 0x4435, 0x404e, 0x6a73, 0x4441, 0x4e6f, 0x6a70, - 0x6a74, 0x497c, 0x4723, 0x4c58, 0x4e7e, 0x6a75, 0x6a76, 0x4f2c, - 0x4067, 0x6a77, 0x363f, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, 0x6a71, - 0x482e, 0x616b, 0x3738, 0x616c, 0x616d, 0x5734, 0x616e, 0x616f, - 0x534c, 0x6171, 0x3f71, 0x6170, 0x3552, 0x3137, 0x6173, 0x6172, - 0x3a7c, 0x6174, 0x3937, 0x3e51, 0x447c, 0x3a5d, 0x3d46, 0x6175, - 0x6177, 0x3640, 0x4f41, 0x4a28, 0x6176, 0x5578, 0x537c, 0x6178, - 0x617c, 0x6179, 0x617a, 0x406a, 0x617e, 0x6221, 0x4047, 0x617b, - 0x617d, 0x6225, 0x4154, 0x6223, 0x6228, 0x327e, 0x6222, 0x434d, - 0x3242, 0x6227, 0x6226, 0x6224, 0x6229, 0x622b, 0x5049, 0x566d, - 0x4328, 0x622c, 0x4f57, 0x622e, 0x3a6f, 0x6960, 0x622d, 0x622a, - 0x3b2b, 0x5433, 0x6230, 0x622f, 0x6961, 0x6231, 0x6232, 0x6233, - 0x4c21, 0x6234, 0x6235, 0x507e, 0x424a, 0x5371, 0x4d75, 0x6760, - 0x6761, 0x3e41, 0x426a, 0x6764, 0x6763, 0x4d66, 0x4335, 0x6762, - 0x3b37, 0x4f56, 0x4161, 0x6769, 0x6768, 0x6774, 0x3223, 0x676a, - 0x6766, 0x676c, 0x676b, 0x493a, 0x5564, 0x6765, 0x3729, 0x6767, - 0x676e, 0x6773, 0x5669, 0x676d, 0x6772, 0x6771, 0x3060, 0x6775, - 0x4772, 0x4045, 0x406d, 0x4170, 0x6770, 0x6776, 0x4b76, 0x6822, - 0x6821, 0x5741, 0x677a, 0x6779, 0x677b, 0x6777, 0x677e, 0x677d, - 0x677c, 0x4155, 0x4759, 0x457d, 0x4543, 0x476d, 0x6823, 0x6826, - 0x6825, 0x6827, 0x3a77, 0x6778, 0x6824, 0x4870, 0x492a, 0x6829, - 0x3965, 0x517e, 0x6828, 0x682a, 0x682d, 0x682e, 0x4127, 0x682f, - 0x6830, 0x682c, 0x6834, 0x682b, 0x6831, 0x6835, 0x6832, 0x6833, - 0x6837, 0x6836, 0x394f, 0x702c, 0x702d, 0x4630, 0x306a, 0x483f, - 0x4d5f, 0x4e4d, 0x6a31, 0x6a32, 0x463f, 0x3449, 0x6a33, 0x5567, - 0x5d79, 0x6a34, 0x6a35, 0x6a36, 0x384a, 0x5f30, 0x4975, 0x4c70, - 0x497a, 0x497b, 0x5343, 0x4b26, 0x3826, 0x702e, 0x3142, 0x6538, - 0x4c6f, 0x5349, 0x3c57, 0x496a, 0x3567, 0x4450, 0x3569, 0x6e2e, - 0x3b2d, 0x675e, 0x6e2f, 0x3329, 0x6e32, 0x6e31, 0x3d67, 0x6e30, - 0x4e37, 0x454f, 0x4174, 0x5b4e, 0x6e33, 0x5073, 0x4254, 0x4668, - 0x372c, 0x6e34, 0x336b, 0x3b7b, 0x6e35, 0x675c, 0x6e36, 0x3d2e, - 0x7162, 0x4a68, 0x5249, 0x705a, 0x705b, 0x705c, 0x4146, 0x386d, - 0x3e4e, 0x705e, 0x4531, 0x705d, 0x5171, 0x7060, 0x304c, 0x3d6a, - 0x525f, 0x705f, 0x342f, 0x3768, 0x7066, 0x7065, 0x4623, 0x7061, - 0x7062, 0x3443, 0x7063, 0x556e, 0x4c5b, 0x3e52, 0x3c32, 0x7068, - 0x7067, 0x7064, 0x3221, 0x5622, 0x5338, 0x3e37, 0x482c, 0x706a, - 0x5177, 0x564c, 0x3a5b, 0x7069, 0x363b, 0x4d34, 0x4626, 0x4121, - 0x706b, 0x706e, 0x706d, 0x7070, 0x706c, 0x3b3e, 0x706f, 0x4c35, - 0x7072, 0x3355, 0x3154, 0x7073, 0x7074, 0x7076, 0x3461, 0x7071, - 0x7077, 0x707a, 0x7078, 0x7075, 0x707d, 0x7079, 0x707c, 0x707e, - 0x7121, 0x4e41, 0x7124, 0x7123, 0x4176, 0x707b, 0x4a5d, 0x3471, - 0x3171, 0x4c31, 0x7126, 0x7127, 0x712c, 0x554e, 0x7129, 0x4833, - 0x7122, 0x712b, 0x7128, 0x7125, 0x712a, 0x3029, 0x712d, 0x712f, - 0x7131, 0x7130, 0x712e, 0x5122, 0x7132, 0x7133, 0x396f, 0x3547, - 0x3057, 0x3059, 0x546d, 0x3544, 0x3d54, 0x3b4a, 0x7027, 0x385e, - 0x7028, 0x3028, 0x7029, 0x4d6e, 0x702a, 0x702b, 0x4624, 0x5665, - 0x7164, 0x7165, 0x4373, 0x535b, 0x5651, 0x4568, 0x532f, 0x5266, - 0x6e41, 0x303b, 0x5535, 0x514e, 0x3c60, 0x3a50, 0x3f78, 0x3847, - 0x3541, 0x454c, 0x4a22, 0x434b, 0x6e42, 0x443f, 0x3622, 0x6d6c, - 0x4324, 0x5631, 0x4f60, 0x6d6f, 0x454e, 0x365c, 0x4a21, 0x6d6d, - 0x6d70, 0x6d71, 0x433c, 0x3f34, 0x6d6e, 0x6d74, 0x6d72, 0x5566, - 0x435f, 0x6d73, 0x6d76, 0x5523, 0x5123, 0x6d75, 0x4350, 0x6d77, - 0x3f74, 0x3e6c, 0x6d78, 0x4c77, 0x515b, 0x5745, 0x5576, 0x6d7c, - 0x6d7b, 0x6d79, 0x6d7a, 0x6d7d, 0x3e26, 0x4b2f, 0x6e21, 0x363d, - 0x6e22, 0x4440, 0x6d7e, 0x3d5e, 0x3247, 0x3643, 0x6e25, 0x583a, - 0x6e23, 0x6e26, 0x4369, 0x3372, 0x6e27, 0x6e24, 0x4f39, 0x6e28, - 0x4277, 0x6e29, 0x6e2a, 0x5e2b, 0x4633, 0x4746, 0x5675, 0x3549, - 0x4b32, 0x6e2b, 0x4d2b, 0x6e2c, 0x5530, 0x6e2d, 0x7644, 0x5b47, - 0x3423, 0x432c, 0x7166, 0x4a38, 0x5253, 0x562a, 0x6f72, 0x3e58, - 0x3d43, 0x6f73, 0x364c, 0x302b, 0x4a2f, 0x6d36, 0x6d37, 0x4e79, - 0x372f, 0x3f73, 0x6d38, 0x426b, 0x4930, 0x6d39, 0x4676, 0x3f33, - 0x6d3c, 0x4578, 0x5150, 0x5729, 0x6d3a, 0x6d3b, 0x5162, 0x6d3f, - 0x6d40, 0x6d44, 0x6d48, 0x6d46, 0x6d4e, 0x5568, 0x6d49, 0x6d47, - 0x6d3e, 0x4569, 0x4646, 0x4969, 0x5452, 0x6d41, 0x6d42, 0x6d43, - 0x6d45, 0x4079, 0x3421, 0x3968, 0x6d50, 0x6d51, 0x6d4a, 0x6d4f, - 0x4e78, 0x4b36, 0x6d4c, 0x6d4d, 0x4f75, 0x6d52, 0x4172, 0x5332, - 0x6d4b, 0x4837, 0x3c6f, 0x4570, 0x6d56, 0x356f, 0x4235, 0x302d, - 0x4b69, 0x312e, 0x6d54, 0x4d6b, 0x3562, 0x6d55, 0x6d53, 0x6d57, - 0x357a, 0x6d58, 0x6d59, 0x6d5c, 0x314c, 0x4576, 0x3c6e, 0x6d5a, - 0x4c3c, 0x326a, 0x6d5b, 0x446b, 0x3445, 0x3075, 0x6d5f, 0x405a, - 0x3468, 0x454d, 0x6d5d, 0x3f44, 0x6d5e, 0x4425, 0x6d60, 0x6d61, - 0x6d63, 0x4157, 0x3b47, 0x3d38, 0x6d62, 0x6d64, 0x6d66, 0x6d65, - 0x6d67, 0x4a3e, 0x6c6a, 0x4071, 0x4967, 0x6c6b, 0x466e, 0x6c6c, - 0x466d, 0x6c6d, 0x6c70, 0x5766, 0x6c73, 0x6c71, 0x6c6e, 0x6c6f, - 0x5723, 0x4971, 0x4b6e, 0x6c74, 0x6c72, 0x4f69, 0x6c76, 0x4631, - 0x3c40, 0x6c75, 0x353b, 0x3b76, 0x6c77, 0x5977, 0x3d7b, 0x423b, - 0x6c78, 0x6c79, 0x3823, 0x6c7a, 0x6c7b, 0x6c7c, 0x536d, 0x582e, - 0x406b, 0x475d, 0x3a4c, 0x5063, 0x4b3d, 0x4d3a, 0x3851, 0x317c, - 0x476f, 0x5656, 0x3f46, 0x436b, 0x6f75, 0x4358, 0x5762, 0x6f77, - 0x3353, 0x4758, 0x516d, 0x5648, 0x6f78, 0x6f76, 0x3b7d, 0x3346, - 0x3d55, 0x5246, 0x3b60, 0x4f21, 0x6f7c, 0x6f7b, 0x6f79, 0x334c, - 0x4954, 0x4b30, 0x6f7e, 0x305e, 0x5649, 0x6f7d, 0x336d, 0x7655, - 0x4e48, 0x7022, 0x7021, 0x353e, 0x3c5a, 0x3b7c, 0x3865, 0x4442, - 0x7023, 0x4b6b, 0x7026, 0x5128, 0x3e3f, 0x476e, 0x7136, 0x7137, - 0x3f55, 0x3429, 0x7138, 0x4d3b, 0x4754, 0x552d, 0x7139, 0x713a, - 0x474f, 0x5224, 0x564f, 0x713b, 0x3d51, 0x3430, 0x3e3d, 0x345c, - 0x4e51, 0x3f5f, 0x713d, 0x3f7a, 0x713c, 0x713f, 0x713e, 0x7140, - 0x7141, 0x417e, 0x4122, 0x4a7a, 0x553e, 0x3e3a, 0x3e39, 0x5542, - 0x3f22, 0x4d2f, 0x7135, 0x3d5f, 0x364b, 0x5671, 0x7343, 0x7344, - 0x384d, 0x7346, 0x7347, 0x304a, 0x7345, 0x7349, 0x4b71, 0x734b, - 0x5026, 0x314a, 0x7348, 0x734f, 0x3551, 0x7357, 0x7352, 0x7354, - 0x7353, 0x377b, 0x313f, 0x734e, 0x734a, 0x355a, 0x7350, 0x7351, - 0x7355, 0x734d, 0x3c63, 0x417d, 0x7356, 0x735a, 0x734c, 0x3548, - 0x3d6e, 0x735c, 0x3724, 0x3f70, 0x567e, 0x4d32, 0x3470, 0x325f, - 0x7358, 0x7359, 0x4938, 0x735d, 0x735e, 0x7361, 0x735f, 0x7363, - 0x7362, 0x735b, 0x3f6a, 0x336f, 0x7360, 0x4729, 0x3c72, 0x736b, - 0x393f, 0x7364, 0x322d, 0x3b7e, 0x4b63, 0x736d, 0x7369, 0x395c, - 0x736e, 0x7365, 0x7366, 0x736a, 0x4261, 0x736c, 0x736f, 0x7368, - 0x3c7d, 0x4f64, 0x7370, 0x7367, 0x7372, 0x572d, 0x462a, 0x7373, - 0x7371, 0x4228, 0x385d, 0x7375, 0x7374, 0x345b, 0x7376, 0x7377, - 0x7378, 0x403a, 0x4069, 0x4571, 0x737b, 0x737a, 0x3458, 0x737e, - 0x7379, 0x737c, 0x737d, 0x7421, 0x7423, 0x3b49, 0x7422, 0x7424, - 0x323e, 0x7426, 0x7425, 0x3c2e, 0x4357, 0x5961, 0x4060, 0x744c, - 0x5751, 0x375b, 0x744e, 0x4123, 0x4649, 0x3456, 0x5533, 0x7450, - 0x744f, 0x7451, 0x4b5a, 0x7452, 0x5441, 0x5660, 0x3760, 0x4138, - 0x413b, 0x7453, 0x3e2c, 0x3462, 0x7454, 0x7455, 0x3e2b, 0x7456, - 0x745b, 0x7457, 0x745a, 0x3a7d, 0x7458, 0x7459, 0x3862, 0x4c47, - 0x745c, 0x325a, 0x4353, 0x5463, 0x3f37, 0x745d, 0x4534, 0x7469, - 0x4f35, 0x4e49, 0x4b58, 0x4b77, 0x3d74, 0x574f, 0x405b, 0x5075, - 0x746a, 0x746b, 0x746c, 0x7763, 0x3731, 0x746d, 0x576b, 0x746e, - 0x6679, 0x3e40, 0x667a, 0x3a6c, 0x667b, 0x4f4b, 0x667c, 0x543c, - 0x3c36, 0x667d, 0x667e, 0x3c4d, 0x4852, 0x4e33, 0x6721, 0x343f, - 0x6722, 0x4934, 0x3859, 0x4449, 0x575d, 0x425a, 0x3757, 0x563d, - 0x4e46, 0x3744, 0x4526, 0x6723, 0x4f5f, 0x6724, 0x6725, 0x6726, - 0x4137, 0x5769, 0x4970, 0x4f38, 0x562f, 0x5655, 0x6727, 0x306d, - 0x6728, 0x6729, 0x495c, 0x526f, 0x3e2d, 0x672a, 0x3073, 0x485e, - 0x3d61, 0x672b, 0x4846, 0x672c, 0x3b66, 0x3878, 0x5124, 0x672d, - 0x4267, 0x3e78, 0x3d4a, 0x4d33, 0x672e, 0x672f, 0x3e6e, 0x5065, - 0x4b67, 0x4c50, 0x3c4c, 0x6730, 0x3c28, 0x5077, 0x6731, 0x5078, - 0x6732, 0x6733, 0x3442, 0x6734, 0x6735, 0x497e, 0x4e2c, 0x4360, - 0x6737, 0x3141, 0x3371, 0x6738, 0x6739, 0x575b, 0x5540, 0x673a, - 0x424c, 0x573a, 0x673b, 0x673c, 0x673d, 0x3c6a, 0x4365, 0x4042, - 0x673e, 0x673f, 0x3c29, 0x6740, 0x6741, 0x6736, 0x3650, 0x6742, - 0x6743, 0x6744, 0x3b3a, 0x355e, 0x4246, 0x3160, 0x6745, 0x5435, - 0x6746, 0x383f, 0x6748, 0x6747, 0x376c, 0x6749, 0x3278, 0x674a, - 0x674b, 0x674c, 0x674d, 0x674e, 0x674f, 0x6750, 0x5327, 0x4b75, - 0x6751, 0x6752, 0x6753, 0x6754, 0x4949, 0x6755, 0x6756, 0x6757, - 0x6758, 0x6759, 0x3d49, 0x675a, 0x733e, 0x3857, 0x4831, 0x733f, - 0x7340, 0x7341, 0x395e, 0x4d78, 0x5868, 0x3a31, 0x425e, 0x6e37, - 0x3723, 0x6e39, 0x6e38, 0x3055, 0x6e3b, 0x5556, 0x576f, 0x5643, - 0x6e3d, 0x4a70, 0x6e3c, 0x6e3e, 0x6e40, 0x6e3f, 0x5172, 0x473c, - 0x4340, 0x3861, 0x4167, 0x7446, 0x505f, 0x7447, 0x4f5b, 0x483a, - 0x7448, 0x7449, 0x744a, 0x744b, 0x597a, 0x387e, 0x6571, 0x5370, - 0x7460, 0x4e4c, 0x3361, 0x7134, 0x526e, 0x7461, 0x4f68, 0x7462, - 0x474c, 0x3554, 0x3464, 0x7464, 0x7463, 0x7465, 0x7466, 0x7467, - 0x3a32, 0x303f, 0x7468, 0x372d, 0x526d, 0x522b, 0x404f, 0x3f3c, - 0x6b23, 0x555f, 0x6a48, 0x7173, 0x3678, 0x4b23, 0x444d, 0x7167, - 0x7168, 0x387b, 0x7169, 0x3a44, 0x5445, 0x3052, 0x716a, 0x716b, - 0x716c, 0x716d, 0x716e, 0x716f, 0x7171, 0x7170, 0x4555, 0x7172, - 0x367a, 0x7174, 0x522e, 0x5e47, 0x4b4a, 0x335c, 0x3522, 0x3922, - 0x4474, 0x7175, 0x7176, 0x4144, 0x417b, 0x5630, 0x7177, 0x7178, - 0x412a, 0x4638, 0x3e5b, 0x7179, 0x344f, 0x717a, 0x6d32, 0x6d31, - 0x4b60, 0x525e, 0x4b41, 0x5558, 0x4862, 0x405f, 0x3c21, 0x6b41, - 0x5024, 0x5662, 0x3647, 0x3858, 0x6b40, 0x384e, 0x6b3f, 0x3326, - 0x3949, 0x562b, 0x3774, 0x374a, 0x3c67, 0x373e, 0x6b46, 0x6b47, - 0x3039, 0x3f4f, 0x6b45, 0x537d, 0x6b48, 0x6b49, 0x374e, 0x6b42, - 0x6b44, 0x4976, 0x5657, 0x554d, 0x5032, 0x6b4f, 0x4e38, 0x6b50, - 0x3528, 0x3133, 0x6b52, 0x4c25, 0x4556, 0x6b53, 0x6b51, 0x455f, - 0x6b4e, 0x4a24, 0x6b55, 0x307b, 0x3a7a, 0x5837, 0x7163, 0x6b4a, - 0x6b4b, 0x6b4c, 0x6b4d, 0x6b56, 0x6640, 0x6b59, 0x3f68, 0x5248, - 0x6b57, 0x6b5c, 0x386c, 0x6b58, 0x3d3a, 0x5058, 0x3037, 0x6b5d, - 0x445c, 0x562c, 0x3460, 0x4276, 0x3c39, 0x6b5a, 0x6b5b, 0x5460, - 0x466a, 0x4454, 0x6b5f, 0x4527, 0x5975, 0x3231, 0x6b64, 0x3d45, - 0x6b62, 0x6b63, 0x382c, 0x4d51, 0x6b65, 0x6b61, 0x4133, 0x4622, - 0x4c73, 0x6b66, 0x4030, 0x5238, 0x6b67, 0x382f, 0x382d, 0x6b68, - 0x473b, 0x4d73, 0x6b6a, 0x6b6b, 0x6b6d, 0x5048, 0x6b72, 0x6b6e, - 0x6b71, 0x4879, 0x517c, 0x6b6c, 0x6b69, 0x3839, 0x4f59, 0x4465, - 0x6b6f, 0x6b70, 0x4c5a, 0x4d48, 0x3072, 0x6b76, 0x6b75, 0x3232, - 0x3860, 0x6b77, 0x316c, 0x4c45, 0x4424, 0x4f25, 0x6b79, 0x6c22, - 0x4572, 0x6b7a, 0x4945, 0x625f, 0x6b7e, 0x4d4e, 0x6c21, 0x315b, - 0x5337, 0x525c, 0x6b7d, 0x6b7b, 0x333c, 0x6a30, 0x5754, 0x742b, - 0x3374, 0x5641, 0x5642, 0x5569, 0x3e4a, 0x7427, 0x5228, 0x7428, - 0x7429, 0x742a, 0x3e4b, 0x535f, 0x4960, 0x4961, 0x7342, 0x4a66, - 0x4c72, 0x6236, 0x4b34, 0x4e68, 0x565b, 0x742d, 0x742e, 0x742f, - 0x7432, 0x3a3d, 0x7433, 0x3063, 0x7430, 0x7431, 0x3d22, 0x3255, - 0x7436, 0x7437, 0x3666, 0x3230, 0x4f4f, 0x7434, 0x342c, 0x7435, - 0x7438, 0x7439, 0x4d27, 0x743a, 0x743b, 0x743c, 0x4b52, 0x743d, - 0x743e, 0x743f, 0x745e, 0x413c, 0x3c68, 0x492b, 0x515e, 0x6575, - 0x5c33, 0x5255, 0x5c34, 0x302c, 0x5c35, 0x3d5a, 0x5c39, 0x5842, - 0x5c37, 0x5373, 0x4956, 0x5c3a, 0x5c36, 0x5c3b, 0x4322, 0x5c3c, - 0x5c45, 0x5c3d, 0x4e5f, 0x5625, 0x5c4f, 0x5c4d, 0x5c52, 0x3d66, - 0x422b, 0x5c38, 0x5c4b, 0x5c4e, 0x5c3e, 0x3752, 0x3045, 0x5c47, - 0x503e, 0x5c41, 0x3b28, 0x373c, 0x5c4c, 0x5c46, 0x5c3f, 0x475b, - 0x513f, 0x5c40, 0x5c4a, 0x5c50, 0x4e2d, 0x5c42, 0x5c43, 0x5c48, - 0x5c49, 0x3254, 0x5c51, 0x4b55, 0x5437, 0x5c5b, 0x5c5f, 0x4c26, - 0x5c66, 0x4367, 0x5c5c, 0x3f41, 0x5c59, 0x307a, 0x3936, 0x5c65, - 0x5c53, 0x5c44, 0x5c56, 0x4874, 0x3f60, 0x493b, 0x313d, 0x5322, - 0x5c5a, 0x5c55, 0x463b, 0x5c5e, 0x5742, 0x432f, 0x3736, 0x4751, - 0x4329, 0x5c62, 0x5c58, 0x5c6b, 0x5c54, 0x5c5d, 0x3e25, 0x5c57, - 0x5c60, 0x5c63, 0x5c64, 0x5c78, 0x5c61, 0x5d22, 0x5c67, 0x3c6b, - 0x3444, 0x4323, 0x3267, 0x5c7a, 0x5c72, 0x5c6f, 0x5c7c, 0x5c6e, - 0x5270, 0x3268, 0x4857, 0x4863, 0x5c7b, 0x5c6d, 0x5c77, 0x5c75, - 0x3e23, 0x5c74, 0x325d, 0x5c73, 0x3c76, 0x5c68, 0x3b44, 0x4073, - 0x3c54, 0x5c69, 0x5c6a, 0x5c71, 0x5c76, 0x5c79, 0x3534, 0x4859, - 0x3b67, 0x5c7e, 0x5c7d, 0x532b, 0x5d21, 0x5d23, 0x5d25, 0x5271, - 0x5d24, 0x5d26, 0x5d27, 0x5229, 0x3a49, 0x5d29, 0x5d36, 0x5d31, - 0x5d34, 0x5d30, 0x464e, 0x4072, 0x492f, 0x5c6c, 0x5d2e, 0x5d37, - 0x5c70, 0x5d2f, 0x5d38, 0x5d2c, 0x5d39, 0x5d33, 0x5d2d, 0x442a, - 0x5d28, 0x4033, 0x412b, 0x5d2a, 0x5d2b, 0x5d32, 0x3b71, 0x5d35, - 0x5328, 0x5d3a, 0x5d3b, 0x4327, 0x5d52, 0x5d3c, 0x5d51, 0x393d, - 0x3e55, 0x3e7a, 0x3a4a, 0x5d4a, 0x5d45, 0x5d3f, 0x324b, 0x5d43, - 0x5d4b, 0x3224, 0x5d55, 0x5d3e, 0x4650, 0x5d50, 0x5d54, 0x4162, - 0x3746, 0x5d4e, 0x5d4f, 0x5d44, 0x5d3d, 0x5d4d, 0x4c51, 0x5d49, - 0x5d42, 0x4348, 0x463c, 0x4e2e, 0x5d4c, 0x5d48, 0x5d41, 0x5d46, - 0x425c, 0x5329, 0x532a, 0x5d53, 0x4f74, 0x4878, 0x5d66, 0x5d47, - 0x5d60, 0x4264, 0x5d61, 0x5d57, 0x5678, 0x5d59, 0x5d58, 0x3870, - 0x5d56, 0x464f, 0x362d, 0x5d62, 0x3a79, 0x5461, 0x5d67, 0x3450, - 0x5d5a, 0x3f7b, 0x5d63, 0x5d5f, 0x5d5d, 0x3559, 0x5d5b, 0x5d5c, - 0x5d5e, 0x3d2f, 0x5d64, 0x5d65, 0x5d75, 0x4349, 0x4b62, 0x5d72, - 0x5861, 0x4651, 0x5d74, 0x5574, 0x5d73, 0x5d70, 0x5d6c, 0x5d6f, - 0x5d68, 0x506e, 0x4858, 0x5d6e, 0x5d69, 0x5d6a, 0x4b72, 0x5d6d, - 0x314d, 0x4036, 0x3c3b, 0x5d71, 0x5d77, 0x5d76, 0x5d6b, 0x456e, - 0x5d7b, 0x5e24, 0x5e23, 0x5d78, 0x436f, 0x427b, 0x5561, 0x4e35, - 0x5d7d, 0x324c, 0x4468, 0x4a5f, 0x473e, 0x5d7a, 0x5d7c, 0x5d7e, - 0x5e22, 0x302a, 0x314e, 0x5e2c, 0x5e26, 0x3d36, 0x486f, 0x5e21, - 0x5e25, 0x5e29, 0x5e28, 0x5e27, 0x5e2d, 0x544c, 0x5e33, 0x5e2a, - 0x5e2e, 0x4059, 0x3121, 0x5e36, 0x5e31, 0x5e32, 0x5126, 0x5e35, - 0x5e2f, 0x5e30, 0x503d, 0x5e34, 0x4a6d, 0x5e39, 0x5e38, 0x5e37, - 0x5e3b, 0x3d65, 0x3258, 0x436a, 0x5e3a, 0x453a, 0x5e3c, 0x4c59, - 0x372a, 0x5465, 0x5e3d, 0x5e3f, 0x4422, 0x5e41, 0x5e3e, 0x5e40, - 0x553a, 0x5e42, 0x722e, 0x3b22, 0x4232, 0x4530, 0x4247, 0x722f, - 0x5069, 0x535d, 0x6b3d, 0x3366, 0x7230, 0x7231, 0x4a2d, 0x3a67, - 0x7233, 0x7235, 0x7234, 0x4b64, 0x4f3a, 0x7232, 0x4a34, 0x524f, - 0x426c, 0x4e43, 0x7238, 0x3076, 0x7237, 0x723e, 0x324f, 0x5141, - 0x723a, 0x723c, 0x5469, 0x723b, 0x7236, 0x723f, 0x723d, 0x7239, - 0x7247, 0x7244, 0x7246, 0x724a, 0x7242, 0x7240, 0x7245, 0x567b, - 0x7241, 0x4779, 0x495f, 0x7248, 0x3946, 0x3530, 0x7243, 0x7249, - 0x7250, 0x7256, 0x3b57, 0x7255, 0x4d5c, 0x566b, 0x7252, 0x7254, - 0x3872, 0x724b, 0x724e, 0x4279, 0x555d, 0x724c, 0x724d, 0x724f, - 0x7253, 0x7259, 0x533c, 0x366a, 0x4a71, 0x3764, 0x7257, 0x7258, - 0x725a, 0x725d, 0x725b, 0x725c, 0x5151, 0x7251, 0x4d49, 0x4e4f, - 0x5629, 0x7263, 0x435b, 0x7260, 0x402f, 0x726c, 0x725e, 0x7261, - 0x7268, 0x7262, 0x7267, 0x7266, 0x7269, 0x725f, 0x7264, 0x726a, - 0x532c, 0x7265, 0x3275, 0x7272, 0x502b, 0x7275, 0x3b48, 0x7279, - 0x7270, 0x7276, 0x7278, 0x727a, 0x7273, 0x7271, 0x3a7b, 0x357b, - 0x726f, 0x7277, 0x726d, 0x726e, 0x726b, 0x7326, 0x7323, 0x7322, - 0x7274, 0x485a, 0x727b, 0x7325, 0x4378, 0x727d, 0x7327, 0x7329, - 0x7324, 0x727c, 0x732b, 0x732a, 0x425d, 0x732e, 0x7330, 0x7321, - 0x7331, 0x732c, 0x732f, 0x727e, 0x732d, 0x7332, 0x7334, 0x7328, - 0x7333, 0x7335, 0x5037, 0x7338, 0x5979, 0x7339, 0x7337, 0x4864, - 0x7336, 0x733a, 0x733b, 0x3440, 0x6e43, 0x733c, 0x733d, 0x512a, - 0x742c, 0x5046, 0x5050, 0x515c, 0x4f4e, 0x3d56, 0x5143, 0x3a62, - 0x6169, 0x5242, 0x7142, 0x3239, 0x316d, 0x7143, 0x4940, 0x3344, - 0x5972, 0x4b25, 0x7144, 0x5654, 0x7145, 0x7440, 0x7146, 0x542c, - 0x7147, 0x3040, 0x7441, 0x7442, 0x347c, 0x455b, 0x4c3b, 0x5064, - 0x4d60, 0x7148, 0x5973, 0x313b, 0x4f2e, 0x3824, 0x714a, 0x714b, - 0x3243, 0x4151, 0x5730, 0x7149, 0x714c, 0x714e, 0x5976, 0x5261, - 0x5423, 0x7443, 0x4839, 0x7444, 0x714d, 0x714f, 0x3f63, 0x7150, - 0x7154, 0x7156, 0x7151, 0x4951, 0x4561, 0x4263, 0x397c, 0x7153, - 0x7155, 0x3953, 0x715b, 0x3a56, 0x307d, 0x7159, 0x7158, 0x7152, - 0x715a, 0x7157, 0x486c, 0x4d4a, 0x715d, 0x653d, 0x715c, 0x715e, - 0x715f, 0x4f65, 0x7445, 0x3d73, 0x7160, 0x7161, 0x4e77, 0x522a, - 0x717b, 0x3832, 0x3c7b, 0x395b, 0x3966, 0x4359, 0x4a53, 0x6a68, - 0x4040, 0x3e75, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e, - 0x6a6f, 0x3d47, 0x757b, 0x757d, 0x757e, 0x757c, 0x3d62, 0x7621, - 0x3425, 0x7622, 0x7623, 0x6c32, 0x5154, 0x596a, 0x7624, 0x6e3a, - 0x5532, 0x537e, 0x4c5c, 0x4a44, 0x6540, 0x7625, 0x3e2f, 0x4629, - 0x5a25, 0x3c46, 0x3629, 0x383c, 0x484f, 0x3c25, 0x5a26, 0x5a27, - 0x4c56, 0x4843, 0x5a28, 0x467d, 0x5135, 0x5269, 0x5136, 0x3c47, - 0x3d32, 0x3b64, 0x5a29, 0x5a2a, 0x5148, 0x5a2b, 0x506d, 0x366f, - 0x425b, 0x4b4f, 0x376d, 0x4968, 0x3743, 0x3e77, 0x5624, 0x5a2c, - 0x5a2d, 0x4640, 0x5767, 0x4a36, 0x5529, 0x4b5f, 0x556f, 0x5a2e, - 0x565f, 0x344a, 0x5a30, 0x5a2f, 0x526b, 0x5a31, 0x5a32, 0x5a33, - 0x4a54, 0x5a34, 0x4a2b, 0x5a35, 0x5a36, 0x334f, 0x566f, 0x5a37, - 0x3b30, 0x352e, 0x5a38, 0x5a39, 0x396e, 0x512f, 0x5268, 0x5a3a, - 0x3843, 0x4f6a, 0x326f, 0x5a3b, 0x5a3c, 0x3d6b, 0x4e5c, 0x536f, - 0x5a3d, 0x4e73, 0x5a3e, 0x5355, 0x3b65, 0x5a3f, 0x4b35, 0x4b50, - 0x5a40, 0x476b, 0x566e, 0x5a41, 0x4535, 0x3641, 0x5a42, 0x374c, - 0x3f4e, 0x5a43, 0x5a44, 0x4b2d, 0x5a45, 0x3577, 0x5a46, 0x4142, - 0x573b, 0x5a47, 0x4c38, 0x526a, 0x4431, 0x5a48, 0x357d, 0x3b51, - 0x5a49, 0x5033, 0x5a4a, 0x5a4b, 0x4e3d, 0x5a4c, 0x5a4d, 0x5a4e, - 0x3277, 0x5a51, 0x5a4f, 0x5168, 0x5a50, 0x4355, 0x5a52, 0x5a53, - 0x5a54, 0x5a55, 0x503b, 0x5225, 0x3079, 0x5a56, 0x472b, 0x5a57, - 0x3d77, 0x4321, 0x5a58, 0x5a59, 0x437d, 0x4c37, 0x5a5a, 0x5a5b, - 0x403e, 0x4657, 0x5a5c, 0x5a5d, 0x4734, 0x5a5e, 0x5a5f, 0x3948, - 0x3b6d, 0x3639, 0x7478, 0x7479, 0x4d63, 0x7539, 0x6b60, 0x4f73, - 0x3b3f, 0x3a40, 0x5425, 0x6159, 0x7574, 0x312a, 0x3272, 0x7575, - 0x7577, 0x3a51, 0x7576, 0x4332, 0x7579, 0x7578, 0x3134, 0x556a, - 0x383a, 0x3931, 0x3246, 0x5470, 0x4f4d, 0x305c, 0x554b, 0x3b75, - 0x564a, 0x3737, 0x4c30, 0x4636, 0x3161, 0x393a, 0x567c, 0x3961, - 0x3721, 0x3c7a, 0x6a5a, 0x6a5b, 0x4c79, 0x3973, 0x6a5c, 0x347b, - 0x4333, 0x3751, 0x3a58, 0x6a5d, 0x5474, 0x6a5e, 0x3c56, 0x3b5f, - 0x6a5f, 0x415e, 0x4238, 0x545f, 0x574a, 0x6a60, 0x6a61, 0x6a64, - 0x6a62, 0x6a63, 0x495e, 0x3833, 0x3644, 0x6a65, 0x4a6a, 0x494d, - 0x344d, 0x6259, 0x4562, 0x6a66, 0x4035, 0x5738, 0x6a67, 0x572c, - 0x487c, 0x5853, 0x584d, 0x545e, 0x5479, 0x4944, 0x532e, 0x3853, - 0x3360, 0x4962, 0x7476, 0x3a55, 0x7477, 0x575f, 0x7471, 0x3830, - 0x5554, 0x384f, 0x4670, 0x3343, 0x7472, 0x332c, 0x543d, 0x4777, - 0x7474, 0x7473, 0x4c4b, 0x4824, 0x7475, 0x5763, 0x453f, 0x7540, - 0x753b, 0x7543, 0x7542, 0x563a, 0x7541, 0x543e, 0x7544, 0x754c, - 0x304f, 0x3578, 0x7549, 0x754a, 0x455c, 0x7545, 0x7546, 0x7547, - 0x754b, 0x3e60, 0x7548, 0x387a, 0x7550, 0x7553, 0x3f67, 0x3972, - 0x753c, 0x754d, 0x4237, 0x4c78, 0x3c79, 0x754e, 0x754f, 0x7551, - 0x3665, 0x7552, 0x7555, 0x753d, 0x7554, 0x533b, 0x336c, 0x4c24, - 0x7556, 0x7557, 0x3e61, 0x7558, 0x4c5f, 0x755b, 0x3248, 0x5759, - 0x7559, 0x755a, 0x755c, 0x7562, 0x7560, 0x755f, 0x755d, 0x7561, - 0x755e, 0x7564, 0x7565, 0x4c63, 0x653f, 0x3538, 0x7563, 0x7568, - 0x4c23, 0x7566, 0x7567, 0x753e, 0x3144, 0x753f, 0x3545, 0x3264, - 0x756c, 0x7569, 0x3657, 0x756d, 0x756a, 0x756b, 0x345a, 0x546a, - 0x756e, 0x3379, 0x756f, 0x7571, 0x7570, 0x7572, 0x7573, 0x496d, - 0x392a, 0x477b, 0x3663, 0x4c49, 0x6a26, 0x3335, 0x547e, 0x396c, - 0x5079, 0x696d, 0x572a, 0x696e, 0x4256, 0x486d, 0x3a64, 0x696f, - 0x6970, 0x6971, 0x5661, 0x6972, 0x6973, 0x6975, 0x6974, 0x6976, - 0x6977, 0x4761, 0x6978, 0x5458, 0x6979, 0x3d4e, 0x697a, 0x697b, - 0x3d4f, 0x697c, 0x3828, 0x413e, 0x697d, 0x3132, 0x3b54, 0x3975, - 0x697e, 0x6a21, 0x6a22, 0x6a23, 0x3778, 0x3c2d, 0x4a64, 0x604e, - 0x542f, 0x4f3d, 0x5537, 0x6a24, 0x555e, 0x6a25, 0x5041, 0x393c, - 0x3447, 0x3159, 0x4031, 0x3166, 0x3167, 0x3168, 0x333d, 0x4868, - 0x6541, 0x315f, 0x4149, 0x346f, 0x4728, 0x5358, 0x4679, 0x5138, - 0x397d, 0x4275, 0x532d, 0x544b, 0x3d7c, 0x6542, 0x3735, 0x6543, - 0x3b39, 0x5562, 0x3d78, 0x5436, 0x4e25, 0x412c, 0x3359, 0x4c76, - 0x6546, 0x6544, 0x6548, 0x654a, 0x6547, 0x354f, 0x4648, 0x357c, - 0x6545, 0x4a76, 0x6549, 0x4354, 0x3145, 0x3c23, 0x5737, 0x4d4b, - 0x4b4d, 0x4a4a, 0x4c53, 0x654c, 0x654b, 0x4466, 0x5121, 0x5137, - 0x654d, 0x6550, 0x4d38, 0x5670, 0x654f, 0x355d, 0x4d3e, 0x6551, - 0x363a, 0x4d28, 0x3964, 0x4a45, 0x3351, 0x4b59, 0x546c, 0x6552, - 0x376a, 0x654e, 0x6555, 0x347e, 0x6556, 0x6553, 0x6554, 0x525d, - 0x425f, 0x3146, 0x5362, 0x365d, 0x4b6c, 0x6557, 0x5376, 0x3169, - 0x3674, 0x655a, 0x6558, 0x6559, 0x3540, 0x5245, 0x655c, 0x655e, - 0x655d, 0x4732, 0x5223, 0x655b, 0x5462, 0x555a, 0x6560, 0x5771, - 0x6561, 0x315c, 0x517b, 0x6562, 0x6564, 0x6563, 0x6565, 0x5258, - 0x354b, 0x675f, 0x5a75, 0x5a78, 0x5a76, 0x5a77, 0x5a7a, 0x504f, - 0x4447, 0x306e, 0x5030, 0x5a79, 0x534a, 0x3a2a, 0x5b22, 0x4771, - 0x5a7c, 0x5a7b, 0x495b, 0x5a7d, 0x5b21, 0x575e, 0x5a7e, 0x415a, - 0x5b25, 0x5374, 0x5b27, 0x5b24, 0x5b28, 0x3d3c, 0x4049, 0x5b23, - 0x5b26, 0x5623, 0x5b29, 0x5b2d, 0x5b2e, 0x5b2c, 0x3a42, 0x3f24, - 0x5b2b, 0x5b2a, 0x5447, 0x323f, 0x5b2f, 0x3979, 0x5b30, 0x333b, - 0x3526, 0x363c, 0x5b31, 0x3675, 0x5b32, 0x3149, 0x5b34, 0x5b33, - 0x5b35, 0x5b37, 0x5b36, 0x5b38, 0x5b39, 0x5b3a, 0x534f, 0x747a, - 0x4775, 0x5743, 0x4564, 0x747c, 0x747d, 0x747b, 0x3e46, 0x506f, - 0x3753, 0x544d, 0x4c2a, 0x7522, 0x7521, 0x3a28, 0x747e, 0x4b56, - 0x7524, 0x4052, 0x336a, 0x4d2a, 0x7525, 0x7523, 0x3d34, 0x7528, - 0x7529, 0x3d4d, 0x4338, 0x3f61, 0x4b61, 0x752a, 0x7526, 0x7527, - 0x4470, 0x752c, 0x343c, 0x576d, 0x3457, 0x752b, 0x752e, 0x752d, - 0x752f, 0x5051, 0x4351, 0x4829, 0x7530, 0x7531, 0x7532, 0x7533, - 0x7534, 0x7535, 0x7537, 0x7536, 0x7538, 0x3249, 0x5354, 0x4a4d, - 0x406f, 0x5658, 0x5230, 0x413f, 0x3d70, 0x382a, 0x3c78, 0x7646, - 0x7647, 0x7648, 0x7649, 0x764a, 0x764c, 0x764b, 0x7769, 0x764d, - 0x764e, 0x6e44, 0x6e45, 0x6e46, 0x556b, 0x3624, 0x6e48, 0x6e47, - 0x6e49, 0x6e4a, 0x4725, 0x6e4b, 0x6e4c, 0x3730, 0x3576, 0x6e4d, - 0x6e4f, 0x6e4e, 0x3846, 0x6e50, 0x6e51, 0x6e52, 0x365b, 0x332e, - 0x5653, 0x4446, 0x3135, 0x3856, 0x6e53, 0x6e54, 0x543f, 0x4755, - 0x3e7b, 0x4e59, 0x3933, 0x6e56, 0x6e55, 0x6e58, 0x6e57, 0x4525, - 0x6e59, 0x6e5a, 0x472e, 0x6e5b, 0x472f, 0x6e5c, 0x3227, 0x6e5d, - 0x6e5e, 0x6e5f, 0x6e60, 0x6e61, 0x576a, 0x6e62, 0x6e63, 0x3c58, - 0x6e64, 0x534b, 0x4c7a, 0x322c, 0x4165, 0x6e65, 0x4726, 0x432d, - 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, 0x6e6b, 0x6e6c, 0x6e6d, - 0x6e6e, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e74, 0x6e73, 0x6e75, - 0x4d2d, 0x4241, 0x6e76, 0x6e77, 0x6e78, 0x5521, 0x6e79, 0x4f33, - 0x6e7a, 0x6e7b, 0x6e7c, 0x6e7d, 0x6f21, 0x6e7e, 0x6f22, 0x3875, - 0x437a, 0x6f23, 0x6f24, 0x3d42, 0x523f, 0x3279, 0x6f25, 0x6f26, - 0x6f27, 0x5278, 0x6f28, 0x567d, 0x6f29, 0x464c, 0x6f2a, 0x6f2b, - 0x4134, 0x6f2c, 0x4f7a, 0x4b78, 0x6f2e, 0x6f2d, 0x337a, 0x3978, - 0x6f2f, 0x6f30, 0x5062, 0x6f31, 0x6f32, 0x3766, 0x503f, 0x6f33, - 0x6f34, 0x6f35, 0x4871, 0x4c60, 0x6f36, 0x6f37, 0x6f38, 0x6f39, - 0x6f3a, 0x5560, 0x6f3b, 0x346d, 0x432a, 0x6f3c, 0x6f3d, 0x6f3e, - 0x6f3f, 0x4e7d, 0x6f40, 0x4260, 0x3438, 0x5736, 0x3d75, 0x4f47, - 0x6f43, 0x6f41, 0x6f42, 0x6f44, 0x3627, 0x3c7c, 0x3e62, 0x434c, - 0x6f45, 0x6f46, 0x6f47, 0x6f4f, 0x6f48, 0x6f49, 0x6f4a, 0x4742, - 0x6f71, 0x364d, 0x6f4b, 0x6f4c, 0x6f4d, 0x3646, 0x433e, 0x6f4e, - 0x6f50, 0x6f51, 0x6f52, 0x5572, 0x6f53, 0x4477, 0x6f54, 0x4478, - 0x6f55, 0x6f56, 0x3864, 0x3077, 0x6f57, 0x6f58, 0x6f59, 0x6f5a, - 0x6f5b, 0x6f5c, 0x6f5d, 0x6f5e, 0x3e35, 0x6f61, 0x6f5f, 0x6f60, - 0x6f62, 0x6f63, 0x414d, 0x6f64, 0x6f65, 0x6f66, 0x6f67, 0x6f68, - 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, 0x4058, 0x6f6d, 0x412d, 0x6f6e, - 0x6f6f, 0x6f70, 0x4f62, 0x3324, 0x4345, 0x6345, 0x4941, 0x6346, - 0x3155, 0x4e4a, 0x3433, 0x4872, 0x6347, 0x4f50, 0x6348, 0x3c64, - 0x6349, 0x634a, 0x4346, 0x5522, 0x4456, 0x396b, 0x4e45, 0x634b, - 0x4376, 0x634c, 0x3727, 0x3873, 0x3a52, 0x634d, 0x634e, 0x5444, - 0x634f, 0x6350, 0x514b, 0x6351, 0x6352, 0x6353, 0x6354, 0x5156, - 0x6355, 0x327b, 0x403b, 0x6356, 0x402b, 0x6357, 0x6358, 0x6359, - 0x635a, 0x635b, 0x3837, 0x5a62, 0x3653, 0x5a64, 0x5a63, 0x5a66, - 0x486e, 0x5a65, 0x3740, 0x5174, 0x5275, 0x5573, 0x3d57, 0x5768, - 0x5a68, 0x5a67, 0x3022, 0x4d53, 0x5a69, 0x383d, 0x3c4a, 0x423d, - 0x4224, 0x3342, 0x5a6a, 0x422a, 0x4430, 0x3d35, 0x4f5e, 0x5a6b, - 0x4942, 0x315d, 0x5a6c, 0x3638, 0x543a, 0x337d, 0x5a6d, 0x5449, - 0x4f55, 0x4563, 0x5a6e, 0x5a6f, 0x5a70, 0x416a, 0x4c55, 0x4f5d, - 0x5367, 0x4221, 0x5a71, 0x4b65, 0x5a72, 0x4b66, 0x527e, 0x3874, - 0x5a73, 0x302f, 0x4f36, 0x554f, 0x4b6d, 0x5a74, 0x6344, 0x4125, - 0x763f, 0x7640, 0x7641, 0x4451, 0x4838, 0x5163, 0x505b, 0x5145, - 0x3c2f, 0x394d, 0x6f74, 0x3446, 0x533a, 0x7642, 0x337b, 0x7643, - 0x3571, 0x7645, 0x536a, 0x7627, 0x5129, 0x7629, 0x7628, 0x4163, - 0x4057, 0x3122, 0x4e6d, 0x5068, 0x762b, 0x4f76, 0x762a, 0x5570, - 0x762c, 0x4339, 0x3b74, 0x762e, 0x762d, 0x445e, 0x4158, 0x4b2a, - 0x4f3c, 0x762f, 0x7630, 0x7631, 0x4236, 0x3054, 0x4579, 0x7632, - 0x4760, 0x7626, 0x3e38, 0x3e32, 0x3565, 0x3747, 0x3f3f, 0x4352, - 0x4366, 0x584c, 0x386f, 0x3d79, 0x5125, 0x3050, 0x7730, 0x7731, - 0x502c, 0x3030, 0x7732, 0x7733, 0x7734, 0x474a, 0x3e4f, 0x7737, - 0x7736, 0x315e, 0x7735, 0x7738, 0x7739, 0x4e24, 0x484d, 0x3a2b, - 0x6838, 0x6839, 0x683a, 0x3e42, 0x5274, 0x544f, 0x4958, 0x5233, - 0x3625, 0x476a, 0x717c, 0x4f6e, 0x4b33, 0x506b, 0x676f, 0x4d67, - 0x394b, 0x3659, 0x717d, 0x3064, 0x4b4c, 0x717e, 0x5424, 0x422d, - 0x416c, 0x4644, 0x3e31, 0x7221, 0x3c55, 0x7222, 0x7223, 0x7224, - 0x5243, 0x4635, 0x4d47, 0x7225, 0x5331, 0x3f45, 0x4c62, 0x7226, - 0x7227, 0x5155, 0x366e, 0x7228, 0x7229, 0x355f, 0x722a, 0x722b, - 0x327c, 0x722c, 0x722d, 0x4827, 0x3767, 0x6c29, 0x6c2a, 0x6c2b, - 0x6c2c, 0x462e, 0x6c2d, 0x6c2e, 0x3749, 0x4a33, 0x6238, 0x774f, - 0x7750, 0x324d, 0x7751, 0x7753, 0x7752, 0x623b, 0x3c22, 0x623c, - 0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x3739, 0x527b, 0x3d24, - 0x4a4e, 0x3125, 0x4b47, 0x6242, 0x367c, 0x4844, 0x6243, 0x3d48, - 0x317d, 0x6244, 0x3676, 0x6245, 0x4459, 0x6246, 0x4f5a, 0x395d, - 0x6247, 0x4021, 0x6248, 0x3276, 0x6249, 0x4173, 0x624a, 0x624b, - 0x4278, 0x624c, 0x624d, 0x624e, 0x4a57, 0x5838, 0x5965, 0x4f63, - 0x7025, 0x5c30, 0x426d, 0x5426, 0x4d54, 0x5131, 0x335b, 0x477d, - 0x3235, 0x423f, 0x6660, 0x4a3b, 0x6661, 0x6662, 0x3e54, 0x6663, - 0x5724, 0x4d55, 0x6665, 0x3c5d, 0x6664, 0x6666, 0x6667, 0x426e, - 0x3d3e, 0x6668, 0x4266, 0x3a27, 0x6669, 0x666a, 0x3352, 0x5169, - 0x3f25, 0x666b, 0x466f, 0x666c, 0x666d, 0x666e, 0x462d, 0x666f, - 0x4927, 0x6670, 0x6671, 0x6672, 0x6539, 0x6673, 0x6674, 0x4262, - 0x6675, 0x6676, 0x5668, 0x6677, 0x6678, 0x3947, 0x773b, 0x773a, - 0x773e, 0x773c, 0x3a21, 0x773f, 0x7740, 0x7742, 0x7741, 0x7744, - 0x7743, 0x7745, 0x7746, 0x7747, 0x4b68, 0x385f, 0x7754, 0x7755, - 0x7756, 0x7758, 0x775a, 0x7757, 0x775b, 0x7759, 0x5757, 0x775c, - 0x775d, 0x775e, 0x775f, 0x7760, 0x5b4b, 0x582a, 0x6577, 0x396d, - 0x3f7d, 0x3b6a, 0x7749, 0x4647, 0x7748, 0x774a, 0x774c, 0x774b, - 0x774d, 0x4e3a, 0x774e, 0x4427, 0x5363, 0x764f, 0x4233, 0x7650, - 0x7651, 0x7652, 0x7653, 0x7654, 0x7656, 0x312b, 0x7657, 0x7658, - 0x7659, 0x765a, 0x765b, 0x765c, 0x765d, 0x765e, 0x4f4a, 0x765f, - 0x7660, 0x7661, 0x7662, 0x7663, 0x7664, 0x4070, 0x7665, 0x7666, - 0x7667, 0x7668, 0x7669, 0x766a, 0x766b, 0x766c, 0x766d, 0x766e, - 0x766f, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x3e28, 0x7675, - 0x7676, 0x7677, 0x7678, 0x487a, 0x7679, 0x767a, 0x767b, 0x767c, - 0x767d, 0x767e, 0x7721, 0x7722, 0x7723, 0x7724, 0x7725, 0x7726, - 0x7727, 0x7728, 0x316e, 0x7729, 0x772a, 0x772b, 0x772c, 0x772d, - 0x415b, 0x772e, 0x772f, 0x4471, 0x702f, 0x3c26, 0x7030, 0x4379, - 0x4538, 0x513b, 0x7031, 0x7032, 0x7033, 0x7034, 0x7035, 0x513c, - 0x516c, 0x7037, 0x7036, 0x5427, 0x4d52, 0x7038, 0x703a, 0x7039, - 0x703b, 0x703c, 0x386b, 0x703d, 0x3a68, 0x703e, 0x703f, 0x3e69, - 0x7040, 0x366c, 0x7041, 0x7042, 0x7043, 0x7044, 0x4835, 0x7045, - 0x7046, 0x7047, 0x4574, 0x7048, 0x7049, 0x704a, 0x773d, 0x704b, - 0x704c, 0x704d, 0x704e, 0x704f, 0x3a57, 0x7050, 0x7051, 0x7052, - 0x7053, 0x7054, 0x7055, 0x7056, 0x7058, 0x5325, 0x7057, 0x7059, - 0x753a, 0x4239, 0x7764, 0x7765, 0x7766, 0x7767, 0x7768, 0x4234, - 0x776a, 0x776b, 0x4273, 0x7470, 0x746f, 0x4269, 0x7761, 0x7762, - 0x3b46, 0x5964, 0x4a72, 0x4068, 0x7024, 0x3a5a, 0x472d, 0x442c, - 0x776c, 0x776d, 0x776e, 0x7770, 0x776f, 0x7771, 0x7774, 0x7773, - 0x7772, 0x7775, 0x7776, 0x6d69, 0x6d6a, 0x6d6b, 0x763c, 0x763d, - 0x763e, 0x3626, 0x583e, 0x3944, 0x583b, 0x5c31, 0x4a73, 0x7777, - 0x7778, 0x7779, 0x777b, 0x777a, 0x3147, 0x777c, 0x777d, 0x777e, - 0x466b, 0x6c34, 0x335d, 0x7633, 0x7634, 0x4164, 0x7635, 0x7636, - 0x7637, 0x7638, 0x7639, 0x763a, 0x4823, 0x763b, 0x417a, 0x3928, - 0x6d68, 0x396a, 0x595f, 0x2321, 0x2322, 0x2323, 0x2167, 0x2325, - 0x2326, 0x2327, 0x2328, 0x2329, 0x232a, 0x232b, 0x232c, 0x232d, - 0x232e, 0x232f, 0x2330, 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, - 0x2336, 0x2337, 0x2338, 0x2339, 0x233a, 0x233b, 0x233c, 0x233d, - 0x233e, 0x233f, 0x2340, 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, - 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, - 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, - 0x2356, 0x2357, 0x2358, 0x2359, 0x235a, 0x235b, 0x235c, 0x235d, - 0x235e, 0x235f, 0x2360, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, - 0x2366, 0x2367, 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, - 0x236e, 0x236f, 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, - 0x2376, 0x2377, 0x2378, 0x2379, 0x237a, 0x237b, 0x237c, 0x237d, - 0x212b, 0x2169, 0x216a, 0x237e, 0x2324, -}; - -static const Summary16 gb2312_uni2indx_page00[70] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0190 }, { 3, 0x0003 }, - { 5, 0x0000 }, { 5, 0x0080 }, { 6, 0x3703 }, { 13, 0x168c }, - /* 0x0100 */ - { 19, 0x0002 }, { 20, 0x0808 }, { 22, 0x0800 }, { 23, 0x0000 }, - { 23, 0x2000 }, { 24, 0x0000 }, { 24, 0x0800 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x4000 }, { 26, 0x1555 }, { 33, 0x0000 }, { 33, 0x0000 }, - /* 0x0200 */ - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x0280 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - /* 0x0300 */ - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0xfffe }, { 50, 0x03fb }, { 59, 0xfffe }, - { 74, 0x03fb }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, - /* 0x0400 */ - { 83, 0x0002 }, { 84, 0xffff }, { 100, 0xffff }, { 116, 0xffff }, - { 132, 0xffff }, { 148, 0x0002 }, -}; -static const Summary16 gb2312_uni2indx_page20[101] = { - /* 0x2000 */ - { 149, 0x0000 }, { 149, 0x3360 }, { 155, 0x0040 }, { 156, 0x080d }, - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, - /* 0x2100 */ - { 160, 0x0008 }, { 161, 0x0040 }, { 162, 0x0000 }, { 162, 0x0000 }, - { 162, 0x0000 }, { 162, 0x0000 }, { 162, 0x0fff }, { 174, 0x0000 }, - { 174, 0x0000 }, { 174, 0x000f }, { 178, 0x0000 }, { 178, 0x0000 }, - { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 }, { 178, 0x0000 }, - /* 0x2200 */ - { 178, 0x8100 }, { 180, 0x6402 }, { 184, 0x4fa1 }, { 192, 0x20f0 }, - { 197, 0x1100 }, { 199, 0x0000 }, { 199, 0xc033 }, { 205, 0x0000 }, - { 205, 0x0000 }, { 205, 0x0200 }, { 206, 0x0020 }, { 207, 0x0000 }, - { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 }, { 207, 0x0000 }, - /* 0x2300 */ - { 207, 0x0000 }, { 207, 0x0004 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - /* 0x2400 */ - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x03ff }, { 218, 0xfff0 }, - { 230, 0xffff }, { 246, 0x0fff }, { 258, 0x0000 }, { 258, 0x0000 }, - { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, { 258, 0x0000 }, - /* 0x2500 */ - { 258, 0xffff }, { 274, 0xffff }, { 290, 0xffff }, { 306, 0xffff }, - { 322, 0x0fff }, { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0000 }, - { 334, 0x0000 }, { 334, 0x0000 }, { 334, 0x0003 }, { 336, 0x000c }, - { 338, 0xc8c0 }, { 343, 0x0000 }, { 343, 0x0000 }, { 343, 0x0000 }, - /* 0x2600 */ - { 343, 0x0060 }, { 345, 0x0000 }, { 345, 0x0000 }, { 345, 0x0000 }, - { 345, 0x0005 }, -}; -static const Summary16 gb2312_uni2indx_page30[35] = { - /* 0x3000 */ - { 347, 0xff2f }, { 360, 0x00fb }, { 367, 0x0000 }, { 367, 0x0000 }, - { 367, 0xfffe }, { 382, 0xffff }, { 398, 0xffff }, { 414, 0xffff }, - { 430, 0xffff }, { 446, 0x000f }, { 450, 0xfffe }, { 465, 0xffff }, - { 481, 0xffff }, { 497, 0xffff }, { 513, 0xffff }, { 529, 0x087f }, - /* 0x3100 */ - { 537, 0xffe0 }, { 548, 0xffff }, { 564, 0x03ff }, { 574, 0x0000 }, - { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, - { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, - { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x0000 }, - /* 0x3200 */ - { 574, 0x0000 }, { 574, 0x0000 }, { 574, 0x03ff }, -}; -static const Summary16 gb2312_uni2indx_page4e[1263] = { - /* 0x4e00 */ - { 584, 0x7f8b }, { 595, 0x7f7b }, { 608, 0x3db4 }, { 617, 0xef55 }, - { 628, 0xfba8 }, { 638, 0xf35d }, { 649, 0x0243 }, { 653, 0x400b }, - { 657, 0xfb40 }, { 665, 0x8d3e }, { 674, 0x7bf7 }, { 687, 0x8c2c }, - { 693, 0x6eff }, { 706, 0xe3fa }, { 717, 0x1d3a }, { 725, 0xa8ed }, - /* 0x4f00 */ - { 734, 0xe602 }, { 740, 0xcf83 }, { 749, 0x8cf5 }, { 758, 0x3555 }, - { 766, 0xe048 }, { 771, 0xffab }, { 784, 0x92b9 }, { 792, 0xd859 }, - { 800, 0xab18 }, { 807, 0x2892 }, { 812, 0xd7e9 }, { 823, 0x8020 }, - { 825, 0xc438 }, { 831, 0xf583 }, { 840, 0xe74a }, { 849, 0x450a }, - /* 0x5000 */ - { 854, 0xb000 }, { 857, 0x9714 }, { 864, 0x7762 }, { 873, 0x5400 }, - { 876, 0xd188 }, { 882, 0x1420 }, { 885, 0x1020 }, { 887, 0xc8c0 }, - { 892, 0x2121 }, { 896, 0x0000 }, { 896, 0x13a8 }, { 902, 0x0c04 }, - { 905, 0x8000 }, { 906, 0x0440 }, { 908, 0x70c0 }, { 913, 0x0828 }, - /* 0x5100 */ - { 916, 0x08c0 }, { 919, 0x0004 }, { 920, 0x0002 }, { 921, 0x8000 }, - { 922, 0x2b7b }, { 932, 0x1472 }, { 938, 0x7924 }, { 945, 0x3bfb }, - { 957, 0x3327 }, { 965, 0x1ae4 }, { 972, 0x9835 }, { 979, 0x38ef }, - { 989, 0x9ad1 }, { 997, 0x2802 }, { 1000, 0xa813 }, { 1006, 0xbf69 }, - /* 0x5200 */ - { 1017, 0x65cf }, { 1027, 0x2fc6 }, { 1036, 0x6b11 }, { 1043, 0xafc9 }, - { 1053, 0x340f }, { 1060, 0x5053 }, { 1066, 0x86a2 }, { 1072, 0xa004 }, - { 1075, 0x0106 }, { 1078, 0xe809 }, { 1084, 0x3f0f }, { 1094, 0xc00e }, - { 1099, 0x0a88 }, { 1103, 0x8145 }, { 1108, 0x0010 }, { 1109, 0xc601 }, - /* 0x5300 */ - { 1114, 0xa161 }, { 1120, 0x26e1 }, { 1127, 0x444b }, { 1133, 0xce00 }, - { 1138, 0xc7aa }, { 1147, 0xd4ee }, { 1157, 0xcadf }, { 1168, 0x85bb }, - { 1177, 0x3a74 }, { 1185, 0xa520 }, { 1190, 0x436c }, { 1197, 0x8840 }, - { 1200, 0x3f06 }, { 1208, 0x8bd2 }, { 1216, 0xff79 }, { 1229, 0x3bef }, - /* 0x5400 */ - { 1241, 0xf75a }, { 1252, 0xe8ef }, { 1263, 0xfbcb }, { 1275, 0x5b36 }, - { 1284, 0x0d49 }, { 1290, 0x1bfd }, { 1301, 0x0154 }, { 1305, 0x39ee }, - { 1315, 0xd855 }, { 1323, 0x2e75 }, { 1332, 0xbfd8 }, { 1343, 0xa91a }, - { 1350, 0xf3d7 }, { 1362, 0xf6bf }, { 1375, 0x67e0 }, { 1383, 0xb40c }, - /* 0x5500 */ - { 1389, 0x82c2 }, { 1394, 0x0813 }, { 1398, 0xd49d }, { 1407, 0xd08b }, - { 1414, 0x065a }, { 1420, 0x1061 }, { 1424, 0x74f2 }, { 1433, 0x59e0 }, - { 1440, 0x8f9f }, { 1451, 0xb312 }, { 1458, 0x0080 }, { 1459, 0x6aaa }, - { 1467, 0x3230 }, { 1472, 0xb05e }, { 1480, 0x9d7a }, { 1490, 0x60ac }, - /* 0x5600 */ - { 1496, 0xd303 }, { 1503, 0xc900 }, { 1507, 0x3098 }, { 1512, 0x8a56 }, - { 1519, 0x7000 }, { 1522, 0x1390 }, { 1527, 0x1f14 }, { 1534, 0x1842 }, - { 1538, 0xc060 }, { 1542, 0x0008 }, { 1543, 0x8008 }, { 1545, 0x1080 }, - { 1547, 0x0400 }, { 1548, 0xec90 }, { 1555, 0x2817 }, { 1561, 0xe633 }, - /* 0x5700 */ - { 1570, 0x0758 }, { 1576, 0x9000 }, { 1578, 0xf708 }, { 1586, 0x4e09 }, - { 1592, 0xf485 }, { 1600, 0xfc83 }, { 1609, 0xaf53 }, { 1619, 0x18c8 }, - { 1624, 0x187c }, { 1631, 0x080c }, { 1634, 0x6adf }, { 1645, 0x0114 }, - { 1648, 0xc80c }, { 1653, 0xa734 }, { 1661, 0xa011 }, { 1665, 0x2710 }, - /* 0x5800 */ - { 1670, 0x28c5 }, { 1676, 0x4222 }, { 1680, 0x0413 }, { 1684, 0x0021 }, - { 1686, 0x3010 }, { 1689, 0x4112 }, { 1693, 0x1820 }, { 1696, 0x4000 }, - { 1697, 0x022b }, { 1702, 0xc60c }, { 1708, 0x0300 }, { 1710, 0x1000 }, - { 1711, 0x0022 }, { 1713, 0x0022 }, { 1715, 0x5810 }, { 1719, 0x0249 }, - /* 0x5900 */ - { 1723, 0xa094 }, { 1728, 0x9670 }, { 1735, 0xeeb0 }, { 1744, 0x1792 }, - { 1751, 0xcb96 }, { 1760, 0x05f2 }, { 1767, 0x0025 }, { 1770, 0x2358 }, - { 1776, 0x25de }, { 1785, 0x42cc }, { 1791, 0xcf38 }, { 1800, 0x4a04 }, - { 1804, 0x0c40 }, { 1807, 0x359f }, { 1817, 0x1128 }, { 1821, 0x8a00 }, - /* 0x5a00 */ - { 1824, 0x13fa }, { 1833, 0x910a }, { 1838, 0x0229 }, { 1842, 0x1056 }, - { 1847, 0x0641 }, { 1851, 0x0420 }, { 1853, 0x0484 }, { 1856, 0x84f0 }, - { 1862, 0x0000 }, { 1862, 0x0c04 }, { 1865, 0x0400 }, { 1866, 0x412c }, - { 1871, 0x1206 }, { 1875, 0x1154 }, { 1880, 0x0a4b }, { 1886, 0x0002 }, - /* 0x5b00 */ - { 1887, 0x0200 }, { 1888, 0x00c0 }, { 1890, 0x0000 }, { 1890, 0x0094 }, - { 1893, 0x0001 }, { 1894, 0xbfbb }, { 1907, 0x167c }, { 1915, 0x242b }, - { 1921, 0x9bbb }, { 1932, 0x7fa8 }, { 1942, 0x0c7f }, { 1951, 0xe379 }, - { 1961, 0x10f4 }, { 1967, 0xe00d }, { 1973, 0x4132 }, { 1978, 0x9f01 }, - /* 0x5c00 */ - { 1985, 0x8652 }, { 1991, 0x3572 }, { 1999, 0x10b4 }, { 2004, 0xff12 }, - { 2014, 0xcf27 }, { 2024, 0x4223 }, { 2029, 0xc06b }, { 2036, 0x8602 }, - { 2040, 0x3106 }, { 2045, 0x1fd3 }, { 2055, 0x3a0c }, { 2061, 0xa1aa }, - { 2068, 0x0812 }, { 2071, 0x0204 }, { 2073, 0x2572 }, { 2080, 0x0801 }, - /* 0x5d00 */ - { 2082, 0x40cc }, { 2087, 0x4850 }, { 2091, 0x62d0 }, { 2097, 0x6010 }, - { 2100, 0x1c80 }, { 2104, 0x2900 }, { 2107, 0x9a00 }, { 2111, 0x0010 }, - { 2112, 0x0004 }, { 2113, 0x2200 }, { 2115, 0x0000 }, { 2115, 0x0080 }, - { 2116, 0x2020 }, { 2118, 0x6800 }, { 2121, 0xcbe6 }, { 2131, 0x609e }, - /* 0x5e00 */ - { 2138, 0x916e }, { 2146, 0x3f73 }, { 2157, 0x60c0 }, { 2161, 0x3982 }, - { 2167, 0x1034 }, { 2171, 0x4830 }, { 2175, 0x0006 }, { 2177, 0xbd5c }, - { 2187, 0x8cd1 }, { 2194, 0xd6fb }, { 2206, 0x20e1 }, { 2211, 0x43e8 }, - { 2218, 0x0600 }, { 2220, 0x084e }, { 2225, 0x0500 }, { 2227, 0xc4d0 }, - /* 0x5f00 */ - { 2233, 0x8d1f }, { 2242, 0x89aa }, { 2249, 0xa6e1 }, { 2257, 0x1602 }, - { 2261, 0x0001 }, { 2262, 0x21ed }, { 2270, 0x3656 }, { 2278, 0x1a8b }, - { 2285, 0x1fb7 }, { 2296, 0x13a5 }, { 2303, 0x6502 }, { 2308, 0x30a0 }, - { 2312, 0xb278 }, { 2320, 0x23c7 }, { 2328, 0x6c93 }, { 2336, 0xe922 }, - /* 0x6000 */ - { 2343, 0xe47f }, { 2354, 0x3a74 }, { 2362, 0x8fe3 }, { 2372, 0x9820 }, - { 2376, 0x280e }, { 2381, 0x2625 }, { 2387, 0xbf9c }, { 2398, 0xbf49 }, - { 2408, 0x3218 }, { 2413, 0xac54 }, { 2420, 0xb949 }, { 2428, 0x1916 }, - { 2434, 0x0c60 }, { 2438, 0xb522 }, { 2445, 0xfbc1 }, { 2455, 0x0659 }, - /* 0x6100 */ - { 2461, 0xe343 }, { 2469, 0x8420 }, { 2472, 0x08d9 }, { 2478, 0x8000 }, - { 2479, 0x5500 }, { 2483, 0x2022 }, { 2486, 0x0184 }, { 2489, 0x00a1 }, - { 2492, 0x4800 }, { 2494, 0x2010 }, { 2496, 0x1380 }, { 2500, 0x4080 }, - { 2502, 0x0d04 }, { 2506, 0x0016 }, { 2509, 0x0040 }, { 2510, 0x8020 }, - /* 0x6200 */ - { 2512, 0xfd40 }, { 2520, 0x8de7 }, { 2530, 0x5436 }, { 2537, 0xe098 }, - { 2543, 0x7b8b }, { 2553, 0x091e }, { 2559, 0xfec8 }, { 2569, 0xd249 }, - { 2576, 0x0611 }, { 2580, 0x8dee }, { 2590, 0x1937 }, { 2598, 0xba22 }, - { 2605, 0x77f4 }, { 2616, 0x9fdd }, { 2628, 0xf3ec }, { 2639, 0xf0da }, - /* 0x6300 */ - { 2648, 0x4386 }, { 2654, 0xec42 }, { 2661, 0x8d3f }, { 2671, 0x2604 }, - { 2675, 0xfa6c }, { 2685, 0xc021 }, { 2689, 0x628e }, { 2696, 0x0cc2 }, - { 2701, 0xd785 }, { 2710, 0x0145 }, { 2714, 0x77ad }, { 2725, 0x5599 }, - { 2733, 0xe250 }, { 2739, 0x4045 }, { 2743, 0x260b }, { 2749, 0xa154 }, - /* 0x6400 */ - { 2755, 0x9827 }, { 2762, 0x5819 }, { 2768, 0x3443 }, { 2774, 0xa410 }, - { 2778, 0x05f2 }, { 2785, 0x4114 }, { 2789, 0x2280 }, { 2792, 0x0700 }, - { 2795, 0x00b4 }, { 2799, 0x4266 }, { 2805, 0x7210 }, { 2810, 0x15a1 }, - { 2816, 0x6025 }, { 2821, 0x4185 }, { 2826, 0x0054 }, { 2829, 0x0000 }, - /* 0x6500 */ - { 2829, 0x0201 }, { 2831, 0x0104 }, { 2833, 0xc820 }, { 2837, 0xcb70 }, - { 2845, 0x9320 }, { 2850, 0x6a62 }, { 2857, 0x184c }, { 2862, 0x0095 }, - { 2866, 0x1880 }, { 2869, 0x9a8b }, { 2877, 0xaab2 }, { 2885, 0x3201 }, - { 2889, 0xd87a }, { 2898, 0x00c4 }, { 2901, 0xf3e5 }, { 2912, 0x04c3 }, - /* 0x6600 */ - { 2917, 0xd44d }, { 2925, 0xa238 }, { 2931, 0xa1a1 }, { 2937, 0x5072 }, - { 2943, 0x980a }, { 2948, 0x84fc }, { 2956, 0xc152 }, { 2962, 0x44d1 }, - { 2968, 0x1094 }, { 2972, 0x20c2 }, { 2976, 0x4180 }, { 2979, 0x4210 }, - { 2982, 0x0000 }, { 2982, 0x3a00 }, { 2986, 0x0240 }, { 2988, 0xd29d }, - /* 0x6700 */ - { 2997, 0x2f01 }, { 3003, 0xa8b1 }, { 3010, 0xbd40 }, { 3017, 0x2432 }, - { 3022, 0xd34d }, { 3031, 0xd04b }, { 3038, 0xa723 }, { 3046, 0xd0ad }, - { 3054, 0x0a92 }, { 3059, 0x75a1 }, { 3067, 0xadac }, { 3076, 0x01e9 }, - { 3082, 0x801a }, { 3086, 0x771f }, { 3097, 0x9225 }, { 3103, 0xa01b }, - /* 0x6800 */ - { 3109, 0xdfa1 }, { 3119, 0x20ca }, { 3124, 0x0602 }, { 3127, 0x738c }, - { 3135, 0x577f }, { 3147, 0x003b }, { 3152, 0x0bff }, { 3163, 0x00d0 }, - { 3166, 0x806a }, { 3171, 0x0088 }, { 3173, 0xa1c4 }, { 3179, 0x0029 }, - { 3182, 0x2a05 }, { 3187, 0x0524 }, { 3191, 0x4009 }, { 3194, 0x1623 }, - /* 0x6900 */ - { 3200, 0x6822 }, { 3205, 0x8005 }, { 3208, 0x2011 }, { 3211, 0xa211 }, - { 3216, 0x0004 }, { 3217, 0x6490 }, { 3222, 0x4849 }, { 3227, 0x1382 }, - { 3232, 0x23d5 }, { 3240, 0x1930 }, { 3245, 0x2980 }, { 3249, 0x0892 }, - { 3253, 0x5402 }, { 3257, 0x8811 }, { 3261, 0x2001 }, { 3263, 0xa004 }, - /* 0x6a00 */ - { 3266, 0x0400 }, { 3267, 0x8180 }, { 3270, 0x8502 }, { 3274, 0x6022 }, - { 3278, 0x0090 }, { 3280, 0x0b01 }, { 3284, 0x0022 }, { 3286, 0x1202 }, - { 3289, 0x4011 }, { 3292, 0x0083 }, { 3295, 0x1a01 }, { 3299, 0x0000 }, - { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x0000 }, - /* 0x6b00 */ - { 3299, 0x0000 }, { 3299, 0x0000 }, { 3299, 0x009f }, { 3305, 0x4684 }, - { 3310, 0x12c8 }, { 3315, 0x0200 }, { 3316, 0x04fc }, { 3323, 0x1a00 }, - { 3326, 0x2ede }, { 3336, 0x0c4c }, { 3341, 0x0402 }, { 3343, 0x80b8 }, - { 3348, 0xa826 }, { 3354, 0x0afc }, { 3362, 0x8c02 }, { 3366, 0x2228 }, - /* 0x6c00 */ - { 3370, 0xa0e0 }, { 3375, 0x8f7b }, { 3386, 0xc7d6 }, { 3396, 0x2135 }, - { 3402, 0x06c7 }, { 3409, 0xf8b1 }, { 3418, 0x0713 }, { 3424, 0x6255 }, - { 3431, 0x936e }, { 3440, 0x8a19 }, { 3446, 0x6efa }, { 3457, 0xfb0e }, - { 3467, 0x1630 }, { 3472, 0x48f9 }, { 3480, 0xcd2f }, { 3490, 0x7deb }, - /* 0x6d00 */ - { 3502, 0x5892 }, { 3508, 0x4e84 }, { 3514, 0x4ca0 }, { 3519, 0x7a2e }, - { 3528, 0xedea }, { 3539, 0x561e }, { 3547, 0xc649 }, { 3554, 0x1190 }, - { 3558, 0x5324 }, { 3564, 0xe83a }, { 3572, 0xcfdb }, { 3584, 0x8124 }, - { 3588, 0x18f1 }, { 3595, 0x6342 }, { 3601, 0x5853 }, { 3608, 0x1a8a }, - /* 0x6e00 */ - { 3614, 0x7420 }, { 3619, 0x24d3 }, { 3626, 0xaa3b }, { 3635, 0x0514 }, - { 3639, 0x6018 }, { 3643, 0x8958 }, { 3649, 0x4800 }, { 3651, 0xc000 }, - { 3653, 0x8268 }, { 3658, 0x9101 }, { 3662, 0x84a4 }, { 3667, 0x2cd6 }, - { 3675, 0x8886 }, { 3680, 0xc4ba }, { 3688, 0x0377 }, { 3696, 0x0210 }, - /* 0x6f00 */ - { 3698, 0x8244 }, { 3702, 0x0038 }, { 3705, 0xae11 }, { 3712, 0x404a }, - { 3716, 0x28c0 }, { 3720, 0x5100 }, { 3723, 0x6044 }, { 3727, 0x1514 }, - { 3732, 0x7310 }, { 3738, 0x1000 }, { 3739, 0x0082 }, { 3741, 0x0248 }, - { 3744, 0x0205 }, { 3747, 0x4006 }, { 3750, 0xc003 }, { 3754, 0x0000 }, - /* 0x7000 */ - { 3754, 0x0000 }, { 3754, 0x0c02 }, { 3757, 0x0008 }, { 3758, 0x0220 }, - { 3760, 0x9000 }, { 3762, 0x4000 }, { 3763, 0xb800 }, { 3767, 0xd161 }, - { 3774, 0x4621 }, { 3779, 0x3274 }, { 3786, 0xf800 }, { 3791, 0x3b8a }, - { 3799, 0x050f }, { 3805, 0x8b00 }, { 3809, 0xbbd0 }, { 3818, 0x2280 }, - /* 0x7100 */ - { 3821, 0x0600 }, { 3823, 0x0769 }, { 3830, 0x8040 }, { 3832, 0x0043 }, - { 3835, 0x5420 }, { 3839, 0x5000 }, { 3841, 0x41d0 }, { 3846, 0x250c }, - { 3851, 0x8410 }, { 3854, 0x8310 }, { 3858, 0x1101 }, { 3861, 0x0228 }, - { 3864, 0x4008 }, { 3866, 0x0030 }, { 3868, 0x40a1 }, { 3872, 0x0200 }, - /* 0x7200 */ - { 3873, 0x0040 }, { 3874, 0x2000 }, { 3875, 0x1500 }, { 3878, 0xabe3 }, - { 3888, 0x3180 }, { 3892, 0xaa44 }, { 3898, 0xc2c6 }, { 3905, 0xc624 }, - { 3911, 0xac13 }, { 3918, 0x8004 }, { 3920, 0xb000 }, { 3923, 0x03d1 }, - { 3929, 0x611e }, { 3936, 0x4285 }, { 3941, 0xf303 }, { 3949, 0x1d9f }, - /* 0x7300 */ - { 3959, 0x440a }, { 3963, 0x78e8 }, { 3971, 0x5e26 }, { 3979, 0xc392 }, - { 3986, 0x2000 }, { 3987, 0x0085 }, { 3990, 0xb001 }, { 3994, 0x4000 }, - { 3995, 0x4a90 }, { 4000, 0x8842 }, { 4004, 0xca04 }, { 4009, 0x0c8d }, - { 4015, 0xa705 }, { 4022, 0x4203 }, { 4026, 0x22a1 }, { 4031, 0x0004 }, - /* 0x7400 */ - { 4032, 0x8668 }, { 4038, 0x0c01 }, { 4041, 0x5564 }, { 4048, 0x1079 }, - { 4054, 0x0002 }, { 4055, 0xdea0 }, { 4063, 0x2000 }, { 4064, 0x40c1 }, - { 4068, 0x488b }, { 4074, 0x5001 }, { 4077, 0x0380 }, { 4080, 0x0400 }, - { 4081, 0x0000 }, { 4081, 0x5004 }, { 4084, 0xc05d }, { 4091, 0x80d0 }, - /* 0x7500 */ - { 4095, 0xa010 }, { 4098, 0x970a }, { 4105, 0xbb20 }, { 4112, 0x4daf }, - { 4122, 0xd921 }, { 4129, 0x1e10 }, { 4134, 0x0460 }, { 4137, 0x8314 }, - { 4142, 0x8848 }, { 4146, 0xa6d6 }, { 4155, 0xd83b }, { 4164, 0x733f }, - { 4175, 0x27bc }, { 4184, 0x4974 }, { 4191, 0x0ddc }, { 4199, 0x9213 }, - /* 0x7600 */ - { 4205, 0x142b }, { 4211, 0x8ba1 }, { 4218, 0x2e75 }, { 4227, 0xd139 }, - { 4235, 0x3009 }, { 4239, 0x5050 }, { 4243, 0x8808 }, { 4246, 0x6900 }, - { 4250, 0x49d4 }, { 4257, 0x024a }, { 4261, 0x4010 }, { 4263, 0x8016 }, - { 4267, 0xe564 }, { 4275, 0x89d7 }, { 4284, 0xc020 }, { 4287, 0x5316 }, - /* 0x7700 */ - { 4294, 0x2b92 }, { 4301, 0x8600 }, { 4304, 0xa345 }, { 4311, 0x15e0 }, - { 4317, 0x008b }, { 4321, 0x0c03 }, { 4325, 0x196e }, { 4333, 0xe200 }, - { 4337, 0x7031 }, { 4343, 0x8006 }, { 4346, 0x16a5 }, { 4353, 0xa829 }, - { 4359, 0x2000 }, { 4360, 0x1880 }, { 4363, 0x7aac }, { 4372, 0xe148 }, - /* 0x7800 */ - { 4378, 0x3207 }, { 4384, 0xb5d6 }, { 4394, 0x32e8 }, { 4401, 0x5f91 }, - { 4410, 0x50a1 }, { 4415, 0x20e5 }, { 4421, 0x7c00 }, { 4426, 0x1080 }, - { 4428, 0x7280 }, { 4433, 0x9d8a }, { 4441, 0x00aa }, { 4445, 0x421f }, - { 4452, 0x0e22 }, { 4457, 0x0231 }, { 4461, 0x1100 }, { 4463, 0x0494 }, - /* 0x7900 */ - { 4467, 0x0022 }, { 4469, 0x4008 }, { 4471, 0x0010 }, { 4472, 0x5c10 }, - { 4477, 0x0343 }, { 4482, 0xfcc8 }, { 4491, 0xa1a5 }, { 4498, 0x0580 }, - { 4501, 0x8433 }, { 4507, 0x0400 }, { 4508, 0x0080 }, { 4509, 0x6e08 }, - { 4515, 0x2a4b }, { 4522, 0x8126 }, { 4527, 0xaad8 }, { 4535, 0x2901 }, - /* 0x7a00 */ - { 4539, 0x684d }, { 4546, 0x4490 }, { 4550, 0x0009 }, { 4552, 0xba88 }, - { 4559, 0x0040 }, { 4560, 0x0082 }, { 4562, 0x0000 }, { 4562, 0x87d1 }, - { 4570, 0x215b }, { 4577, 0xb1e6 }, { 4586, 0x3161 }, { 4592, 0x8008 }, - { 4594, 0x0800 }, { 4595, 0xc240 }, { 4599, 0xa069 }, { 4605, 0xa600 }, - /* 0x7b00 */ - { 4609, 0x8d58 }, { 4616, 0x4a32 }, { 4622, 0x5d71 }, { 4631, 0x550a }, - { 4637, 0x9aa0 }, { 4643, 0x2d57 }, { 4652, 0x4005 }, { 4655, 0x4aa6 }, - { 4662, 0x2021 }, { 4665, 0x30b1 }, { 4671, 0x3fc6 }, { 4681, 0x0112 }, - { 4684, 0x10c2 }, { 4688, 0x260a }, { 4693, 0x4462 }, { 4698, 0x5082 }, - /* 0x7c00 */ - { 4702, 0x9880 }, { 4706, 0x8040 }, { 4708, 0x04c0 }, { 4711, 0x8100 }, - { 4713, 0x2003 }, { 4716, 0x0000 }, { 4716, 0x0000 }, { 4716, 0x3818 }, - { 4721, 0x0200 }, { 4722, 0xf1a6 }, { 4731, 0x4434 }, { 4736, 0x720e }, - { 4743, 0x35a2 }, { 4750, 0x92e0 }, { 4756, 0x8101 }, { 4759, 0x0900 }, - /* 0x7d00 */ - { 4761, 0x0400 }, { 4762, 0x0000 }, { 4762, 0x8885 }, { 4767, 0x0000 }, - { 4767, 0x0000 }, { 4767, 0x0000 }, { 4767, 0x4000 }, { 4768, 0x0080 }, - { 4769, 0x0000 }, { 4769, 0x0000 }, { 4769, 0x4040 }, { 4771, 0x0000 }, - { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, - /* 0x7e00 */ - { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0000 }, { 4771, 0x0800 }, - { 4772, 0x0082 }, { 4774, 0x0000 }, { 4774, 0x0000 }, { 4774, 0x0000 }, - { 4774, 0x0004 }, { 4775, 0x8800 }, { 4777, 0xbfff }, { 4792, 0xe7ef }, - { 4805, 0xffff }, { 4821, 0xffbf }, { 4836, 0xefef }, { 4850, 0xfdff }, - /* 0x7f00 */ - { 4865, 0xfbff }, { 4880, 0xbffe }, { 4894, 0xffff }, { 4910, 0x057f }, - { 4919, 0x0034 }, { 4922, 0x85b3 }, { 4930, 0x4706 }, { 4936, 0x4216 }, - { 4941, 0x5402 }, { 4945, 0xe410 }, { 4950, 0x8092 }, { 4954, 0xb305 }, - { 4961, 0x5422 }, { 4966, 0x8130 }, { 4970, 0x4263 }, { 4976, 0x180b }, - /* 0x8000 */ - { 4981, 0x387b }, { 4990, 0x13f5 }, { 4999, 0x07e5 }, { 5007, 0xa9ea }, - { 5016, 0x3c4c }, { 5023, 0x0514 }, { 5027, 0x0600 }, { 5029, 0x8002 }, - { 5031, 0x1ad9 }, { 5039, 0xbd48 }, { 5047, 0xee37 }, { 5058, 0xf496 }, - { 5067, 0x705f }, { 5076, 0x7ec0 }, { 5084, 0xbfb2 }, { 5095, 0x355f }, - /* 0x8100 */ - { 5105, 0xe644 }, { 5112, 0x455f }, { 5121, 0x9000 }, { 5123, 0x4146 }, - { 5128, 0x1d40 }, { 5133, 0x063b }, { 5140, 0x62a1 }, { 5146, 0xfe13 }, - { 5156, 0x8505 }, { 5161, 0x3902 }, { 5166, 0x0548 }, { 5170, 0x0c08 }, - { 5173, 0x144f }, { 5180, 0x0000 }, { 5180, 0x3488 }, { 5185, 0x5818 }, - /* 0x8200 */ - { 5190, 0x3077 }, { 5198, 0xd815 }, { 5205, 0xbd0e }, { 5214, 0x4bfb }, - { 5225, 0x8a90 }, { 5230, 0x8500 }, { 5233, 0xc100 }, { 5236, 0xe61d }, - { 5245, 0xed14 }, { 5253, 0xb386 }, { 5261, 0xff72 }, { 5273, 0x639b }, - { 5282, 0xfd92 }, { 5292, 0xd9be }, { 5303, 0x887b }, { 5311, 0x0a92 }, - /* 0x8300 */ - { 5316, 0xd3fe }, { 5328, 0x1cb2 }, { 5335, 0xb980 }, { 5341, 0x177a }, - { 5350, 0x82c9 }, { 5356, 0xdc17 }, { 5365, 0xfffb }, { 5380, 0x3980 }, - { 5385, 0x4260 }, { 5389, 0x590c }, { 5395, 0x0f01 }, { 5400, 0x37df }, - { 5412, 0x94a3 }, { 5419, 0xb150 }, { 5425, 0x0623 }, { 5430, 0x2307 }, - /* 0x8400 */ - { 5436, 0xf85a }, { 5445, 0x3102 }, { 5449, 0x01f0 }, { 5454, 0x3102 }, - { 5458, 0x0040 }, { 5459, 0x1e82 }, { 5465, 0x3a0a }, { 5471, 0x056a }, - { 5477, 0x5b84 }, { 5484, 0x1280 }, { 5487, 0x8002 }, { 5489, 0xa714 }, - { 5496, 0x2612 }, { 5501, 0xa04b }, { 5507, 0x1069 }, { 5512, 0x9001 }, - /* 0x8500 */ - { 5515, 0x1000 }, { 5516, 0x848a }, { 5521, 0x1802 }, { 5524, 0x3f80 }, - { 5531, 0x0708 }, { 5535, 0x4240 }, { 5538, 0x0110 }, { 5540, 0x4e14 }, - { 5546, 0x80b0 }, { 5550, 0x1800 }, { 5552, 0xc510 }, { 5557, 0x0281 }, - { 5560, 0x8202 }, { 5563, 0x1029 }, { 5567, 0x0210 }, { 5569, 0x8800 }, - /* 0x8600 */ - { 5571, 0x0020 }, { 5572, 0x0042 }, { 5574, 0x0280 }, { 5576, 0x1100 }, - { 5578, 0xe000 }, { 5581, 0x4413 }, { 5586, 0x5804 }, { 5590, 0xfe02 }, - { 5598, 0x3c07 }, { 5605, 0x3028 }, { 5609, 0x9798 }, { 5617, 0x0473 }, - { 5623, 0xced1 }, { 5632, 0xcb13 }, { 5640, 0x6210 }, { 5644, 0x431f }, - /* 0x8700 */ - { 5652, 0x278d }, { 5660, 0x55ac }, { 5668, 0x422e }, { 5674, 0xc892 }, - { 5680, 0x5380 }, { 5685, 0x0288 }, { 5688, 0x4039 }, { 5693, 0x7851 }, - { 5700, 0x292c }, { 5706, 0x8088 }, { 5709, 0xb900 }, { 5714, 0x2428 }, - { 5718, 0x0c41 }, { 5722, 0x080e }, { 5726, 0x4421 }, { 5730, 0x4200 }, - /* 0x8800 */ - { 5732, 0x0408 }, { 5734, 0x0868 }, { 5738, 0x0006 }, { 5740, 0x1204 }, - { 5743, 0x3031 }, { 5748, 0x0290 }, { 5751, 0x5b3e }, { 5761, 0xe085 }, - { 5767, 0x2936 }, { 5774, 0x1044 }, { 5777, 0x2814 }, { 5781, 0x1082 }, - { 5784, 0x4266 }, { 5790, 0x8334 }, { 5796, 0x013c }, { 5801, 0x531b }, - /* 0x8900 */ - { 5809, 0x0404 }, { 5811, 0x0e0d }, { 5817, 0x0c22 }, { 5821, 0x0051 }, - { 5824, 0x0012 }, { 5826, 0xc000 }, { 5828, 0x0040 }, { 5829, 0x8800 }, - { 5831, 0x004a }, { 5834, 0x0000 }, { 5834, 0x0000 }, { 5834, 0x0000 }, - { 5834, 0xdff6 }, { 5847, 0x5447 }, { 5854, 0x8868 }, { 5859, 0x0008 }, - /* 0x8a00 */ - { 5860, 0x0081 }, { 5862, 0x0000 }, { 5862, 0x0000 }, { 5862, 0x4000 }, - { 5863, 0x0100 }, { 5864, 0x0000 }, { 5864, 0x0000 }, { 5864, 0x0200 }, - { 5865, 0x0600 }, { 5867, 0x0008 }, { 5868, 0x0000 }, { 5868, 0x0000 }, - { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, { 5868, 0x0000 }, - /* 0x8b00 */ - { 5868, 0x0080 }, { 5869, 0x0000 }, { 5869, 0x0040 }, { 5870, 0x0000 }, - { 5870, 0x0000 }, { 5870, 0x0000 }, { 5870, 0x1040 }, { 5872, 0x0000 }, - { 5872, 0x0000 }, { 5872, 0x0000 }, { 5872, 0xefff }, { 5887, 0xf7fd }, - { 5901, 0xff7f }, { 5916, 0xfffe }, { 5931, 0xfbff }, { 5946, 0xffff }, - /* 0x8c00 */ - { 5962, 0xfdff }, { 5977, 0xbfff }, { 5992, 0xffff }, { 6008, 0x00ff }, - { 6016, 0x12c2 }, { 6021, 0x0420 }, { 6023, 0x0c06 }, { 6027, 0x0708 }, - { 6031, 0x1624 }, { 6036, 0x0110 }, { 6038, 0x0000 }, { 6038, 0x0000 }, - { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, { 6038, 0x0000 }, - /* 0x8d00 */ - { 6038, 0x0000 }, { 6038, 0xe000 }, { 6041, 0xfffe }, { 6056, 0xffff }, - { 6072, 0xffff }, { 6088, 0x7f79 }, { 6100, 0x28df }, { 6109, 0x00f9 }, - { 6115, 0x0c32 }, { 6120, 0x8012 }, { 6123, 0x0008 }, { 6124, 0xd53a }, - { 6133, 0xd858 }, { 6140, 0xecc2 }, { 6148, 0x9d18 }, { 6155, 0x2fa8 }, - /* 0x8e00 */ - { 6163, 0x9620 }, { 6168, 0xe010 }, { 6172, 0xd60c }, { 6179, 0x2622 }, - { 6184, 0x0f97 }, { 6193, 0x0206 }, { 6196, 0xb240 }, { 6201, 0x9055 }, - { 6207, 0x80a2 }, { 6211, 0x5011 }, { 6215, 0x9800 }, { 6218, 0x0404 }, - { 6220, 0x4000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, - /* 0x8f00 */ - { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0x0000 }, - { 6221, 0x0000 }, { 6221, 0x0000 }, { 6221, 0xfbc0 }, { 6230, 0xffff }, - { 6246, 0xeffe }, { 6260, 0xdffb }, { 6274, 0x0b08 }, { 6278, 0x6243 }, - { 6284, 0x41b6 }, { 6291, 0xfb3b }, { 6303, 0x6f74 }, { 6313, 0x2389 }, - /* 0x9000 */ - { 6319, 0xae7f }, { 6331, 0xecd7 }, { 6342, 0xe047 }, { 6349, 0x5960 }, - { 6355, 0xa096 }, { 6361, 0x098f }, { 6368, 0x612c }, { 6374, 0xa030 }, - { 6378, 0x090d }, { 6383, 0x2aaa }, { 6390, 0xd44e }, { 6398, 0x4f7b }, - { 6409, 0xc4b2 }, { 6416, 0x388b }, { 6423, 0xa9c6 }, { 6431, 0x6110 }, - /* 0x9100 */ - { 6435, 0x0014 }, { 6437, 0x4200 }, { 6439, 0x800c }, { 6442, 0x0202 }, - { 6444, 0xfe48 }, { 6453, 0x6485 }, { 6459, 0xd63e }, { 6469, 0xe3f7 }, - { 6481, 0x3aa0 }, { 6487, 0x0c07 }, { 6492, 0xe40c }, { 6498, 0x0430 }, - { 6501, 0xf680 }, { 6508, 0x1002 }, { 6510, 0x0000 }, { 6510, 0x0000 }, - /* 0x9200 */ - { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, - { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0000 }, { 6510, 0x0010 }, - { 6511, 0x4000 }, { 6512, 0x0000 }, { 6512, 0x4000 }, { 6513, 0x0000 }, - { 6513, 0x0100 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, - /* 0x9300 */ - { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x0000 }, { 6514, 0x4000 }, - { 6515, 0x0000 }, { 6515, 0x0000 }, { 6515, 0x0400 }, { 6516, 0x0000 }, - { 6516, 0x8000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, { 6517, 0x0000 }, - { 6517, 0x0400 }, { 6518, 0x0040 }, { 6519, 0x0000 }, { 6519, 0x0000 }, - /* 0x9400 */ - { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x0000 }, { 6519, 0x4000 }, - { 6520, 0x0000 }, { 6520, 0x0000 }, { 6520, 0x0800 }, { 6521, 0x0000 }, - { 6521, 0xffe0 }, { 6532, 0xfebd }, { 6545, 0xffff }, { 6561, 0xffff }, - { 6577, 0x7f7f }, { 6591, 0xfbe7 }, { 6604, 0xffbf }, { 6619, 0xf7ff }, - /* 0x9500 */ - { 6634, 0xffff }, { 6650, 0xefff }, { 6665, 0xff7e }, { 6679, 0xdff7 }, - { 6693, 0xf6f7 }, { 6706, 0xfbdf }, { 6720, 0xbffe }, { 6734, 0x804f }, - { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0x0000 }, - { 6740, 0x0000 }, { 6740, 0x0000 }, { 6740, 0xef00 }, { 6747, 0x7fff }, - /* 0x9600 */ - { 6762, 0xff7f }, { 6777, 0xb6f7 }, { 6789, 0x4406 }, { 6793, 0xb87e }, - { 6803, 0x3bf5 }, { 6814, 0x8831 }, { 6819, 0x1796 }, { 6827, 0x00f4 }, - { 6832, 0xa960 }, { 6838, 0x1391 }, { 6844, 0x0080 }, { 6845, 0x7249 }, - { 6852, 0xf2f3 }, { 6863, 0x0024 }, { 6865, 0x8701 }, { 6870, 0x42c8 }, - /* 0x9700 */ - { 6875, 0xe3d3 }, { 6885, 0x5048 }, { 6889, 0x2400 }, { 6891, 0x4305 }, - { 6896, 0x0000 }, { 6896, 0x4a4c }, { 6902, 0x0227 }, { 6907, 0x1058 }, - { 6911, 0x2820 }, { 6914, 0x0116 }, { 6918, 0xa809 }, { 6923, 0x0014 }, - { 6925, 0x0000 }, { 6925, 0x0000 }, { 6925, 0x3ec0 }, { 6932, 0x0068 }, - /* 0x9800 */ - { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, - { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0x0000 }, { 6935, 0xffe0 }, - { 6946, 0xb7ff }, { 6960, 0xfddb }, { 6973, 0x00f7 }, { 6980, 0x0000 }, - { 6980, 0x4000 }, { 6981, 0xc72e }, { 6990, 0x0180 }, { 6992, 0x0000 }, - /* 0x9900 */ - { 6992, 0x2000 }, { 6993, 0x0001 }, { 6994, 0x4000 }, { 6995, 0x0000 }, - { 6995, 0x0000 }, { 6995, 0x0030 }, { 6997, 0xffa8 }, { 7008, 0xb4f7 }, - { 7019, 0xadf3 }, { 7030, 0x03ff }, { 7040, 0x0120 }, { 7042, 0x0000 }, - { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, - /* 0x9a00 */ - { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0x0000 }, - { 7042, 0x0000 }, { 7042, 0x0000 }, { 7042, 0xf000 }, { 7046, 0xfffb }, - { 7061, 0x9df7 }, { 7073, 0xfdcf }, { 7086, 0x01bf }, { 7094, 0x15c3 }, - { 7101, 0x1827 }, { 7107, 0x810a }, { 7111, 0xa842 }, { 7116, 0x0a00 }, - /* 0x9b00 */ - { 7118, 0x8108 }, { 7121, 0x8008 }, { 7123, 0x8008 }, { 7125, 0x1804 }, - { 7128, 0xa3be }, { 7138, 0x0012 }, { 7140, 0x0000 }, { 7140, 0x0000 }, - { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, - { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, - /* 0x9c00 */ - { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, - { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x0000 }, { 7140, 0x9000 }, - { 7142, 0x69e6 }, { 7151, 0xdc37 }, { 7161, 0x6bff }, { 7174, 0x3dff }, - { 7187, 0xfcf8 }, { 7198, 0xf3f9 }, { 7210, 0x0004 }, -}; -static const Summary16 gb2312_uni2indx_page9e[27] = { - /* 0x9e00 */ - { 7211, 0x0000 }, { 7211, 0x8000 }, { 7212, 0xbf6f }, { 7225, 0xe7ee }, - { 7237, 0xdffe }, { 7251, 0x5da2 }, { 7259, 0x3fd8 }, { 7269, 0xc00b }, - { 7274, 0x0984 }, { 7278, 0xa00c }, { 7282, 0x0040 }, { 7283, 0x6910 }, - { 7288, 0xe210 }, { 7293, 0xb912 }, { 7300, 0x86a5 }, { 7307, 0x5a00 }, - /* 0x9f00 */ - { 7311, 0x6800 }, { 7314, 0x0289 }, { 7318, 0x9005 }, { 7322, 0x6a80 }, - { 7327, 0x0010 }, { 7328, 0x0003 }, { 7330, 0x0000 }, { 7330, 0x8000 }, - { 7331, 0x1ff9 }, { 7342, 0x8e00 }, { 7346, 0x0001 }, -}; -static const Summary16 gb2312_uni2indx_pageff[15] = { - /* 0xff00 */ - { 7347, 0xfffe }, { 7362, 0xffff }, { 7378, 0xffff }, { 7394, 0xffff }, - { 7410, 0xffff }, { 7426, 0x7fff }, { 7441, 0x0000 }, { 7441, 0x0000 }, - { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x0000 }, - { 7441, 0x0000 }, { 7441, 0x0000 }, { 7441, 0x002b }, -}; - -static int -gb2312_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0460) - summary = &gb2312_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x2000 && wc < 0x2650) - summary = &gb2312_uni2indx_page20[(wc>>4)-0x200]; - else if (wc >= 0x3000 && wc < 0x3230) - summary = &gb2312_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x4e00 && wc < 0x9cf0) - summary = &gb2312_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0x9e00 && wc < 0x9fb0) - summary = &gb2312_uni2indx_page9e[(wc>>4)-0x9e0]; - else if (wc >= 0xff00 && wc < 0xfff0) - summary = &gb2312_uni2indx_pageff[(wc>>4)-0xff0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = gb2312_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/gbk.h b/jni/parted/libiconv/lib/gbk.h deleted file mode 100755 index 7ed3509..0000000 --- a/jni/parted/libiconv/lib/gbk.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GBK - */ - -/* - * GBK, as described in Ken Lunde's book, is an extension of GB 2312-1980 - * (shifted by adding 0x8080 to the range 0xA1A1..0xFEFE, as used in EUC-CN). - * It adds the following ranges: - * - * (part of GBK/1) 0xA2A1-0xA2AA Small Roman numerals - * GBK/3 0x{81-A0}{40-7E,80-FE} 6080 new characters, all in Unicode - * GBK/4 0x{AA-FE}{40-7E,80-A0} 8160 new characters, 8080 in Unicode - * GBK/5 0x{A8-A9}{40-7E,80-A0} 166 new characters, 153 in Unicode - * - * Furthermore, all four tables I have looked at - * - the CP936 table by Microsoft, found on ftp.unicode.org in 1999, - * - the GBK table by Sun, investigated on a Solaris 2.7 machine, - * - the GBK tables by CWEX, found in the Big5+ package, - * - the GB18030 standard (second printing), - * agree in the following extensions. (Ken Lunde must have overlooked these - * differences between GB2312 and GBK. Also, the CWEX tables have additional - * differences.) - * - * 1. Some characters in the GB2312 range are defined differently: - * - * code GB2312 GBK - * 0xA1A4 0x30FB # KATAKANA MIDDLE DOT 0x00B7 # MIDDLE DOT - * 0xA1AA 0x2015 # HORIZONTAL BAR 0x2014 # EM DASH - * - * 2. 19 characters added in the range 0xA6E0-0xA6F5. - * - * 3. 4 characters added in the range 0xA8BB-0xA8C0. - * - * CP936 as of 1999 was identical to GBK. However, since 1999, Microsoft has - * added new mappings to CP936... - */ - -#include "gbkext1.h" -#include "gbkext2.h" -#include "gbkext_inv.h" -#include "cp936ext.h" - -static int -gbk_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - - if (c >= 0x81 && c < 0xff) { - if (n < 2) - return RET_TOOFEW(0); - if (c >= 0xa1 && c <= 0xf7) { - unsigned char c2 = s[1]; - if (c == 0xa1) { - if (c2 == 0xa4) { - *pwc = 0x00b7; - return 2; - } - if (c2 == 0xaa) { - *pwc = 0x2014; - return 2; - } - } - if (c2 >= 0xa1 && c2 < 0xff) { - unsigned char buf[2]; - int ret; - buf[0] = c-0x80; buf[1] = c2-0x80; - ret = gb2312_mbtowc(conv,pwc,buf,2); - if (ret != RET_ILSEQ) - return ret; - buf[0] = c; buf[1] = c2; - ret = cp936ext_mbtowc(conv,pwc,buf,2); - if (ret != RET_ILSEQ) - return ret; - } - } - if (c >= 0x81 && c <= 0xa0) - return gbkext1_mbtowc(conv,pwc,s,2); - if (c >= 0xa8 && c <= 0xfe) - return gbkext2_mbtowc(conv,pwc,s,2); - if (c == 0xa2) { - unsigned char c2 = s[1]; - if (c2 >= 0xa1 && c2 <= 0xaa) { - *pwc = 0x2170+(c2-0xa1); - return 2; - } - } - } - return RET_ILSEQ; -} - -static int -gbk_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - if (wc != 0x30fb && wc != 0x2015) { - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]+0x80; - r[1] = buf[1]+0x80; - return 2; - } - } - ret = gbkext_inv_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - if (wc >= 0x2170 && wc <= 0x2179) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0xa2; - r[1] = 0xa1 + (wc-0x2170); - return 2; - } - ret = cp936ext_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - if (wc == 0x00b7) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0xa1; - r[1] = 0xa4; - return 2; - } - if (wc == 0x2014) { - if (n < 2) - return RET_TOOSMALL; - r[0] = 0xa1; - r[1] = 0xaa; - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/gbkext1.h b/jni/parted/libiconv/lib/gbkext1.h deleted file mode 100755 index 7aac6c7..0000000 --- a/jni/parted/libiconv/lib/gbkext1.h +++ /dev/null @@ -1,852 +0,0 @@ -/* - * Copyright (C) 1999-2000, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GBK/3 extensions - */ - -static const unsigned short gbkext1_2uni_page81[6080] = { - /* 0x81 */ - 0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f, - 0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31, - 0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44, - 0x4e46, 0x4e4a, 0x4e51, 0x4e55, 0x4e57, 0x4e5a, 0x4e5b, 0x4e62, - 0x4e63, 0x4e64, 0x4e65, 0x4e67, 0x4e68, 0x4e6a, 0x4e6b, 0x4e6c, - 0x4e6d, 0x4e6e, 0x4e6f, 0x4e72, 0x4e74, 0x4e75, 0x4e76, 0x4e77, - 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7f, 0x4e80, - 0x4e81, 0x4e82, 0x4e83, 0x4e84, 0x4e85, 0x4e87, 0x4e8a, 0x4e90, - 0x4e96, 0x4e97, 0x4e99, 0x4e9c, 0x4e9d, 0x4e9e, 0x4ea3, 0x4eaa, - 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb4, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, - 0x4ebc, 0x4ebd, 0x4ebe, 0x4ec8, 0x4ecc, 0x4ecf, 0x4ed0, 0x4ed2, - 0x4eda, 0x4edb, 0x4edc, 0x4ee0, 0x4ee2, 0x4ee6, 0x4ee7, 0x4ee9, - 0x4eed, 0x4eee, 0x4eef, 0x4ef1, 0x4ef4, 0x4ef8, 0x4ef9, 0x4efa, - 0x4efc, 0x4efe, 0x4f00, 0x4f02, 0x4f03, 0x4f04, 0x4f05, 0x4f06, - 0x4f07, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, 0x4f13, 0x4f14, 0x4f15, - 0x4f16, 0x4f1c, 0x4f1d, 0x4f21, 0x4f23, 0x4f28, 0x4f29, 0x4f2c, - 0x4f2d, 0x4f2e, 0x4f31, 0x4f33, 0x4f35, 0x4f37, 0x4f39, 0x4f3b, - 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f44, 0x4f45, 0x4f47, - 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, - 0x4f61, 0x4f62, 0x4f66, 0x4f68, 0x4f6a, 0x4f6b, 0x4f6d, 0x4f6e, - 0x4f71, 0x4f72, 0x4f75, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7d, - 0x4f80, 0x4f81, 0x4f82, 0x4f85, 0x4f86, 0x4f87, 0x4f8a, 0x4f8c, - 0x4f8e, 0x4f90, 0x4f92, 0x4f93, 0x4f95, 0x4f96, 0x4f98, 0x4f99, - 0x4f9a, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa1, 0x4fa2, - /* 0x82 */ - 0x4fa4, 0x4fab, 0x4fad, 0x4fb0, 0x4fb1, 0x4fb2, 0x4fb3, 0x4fb4, - 0x4fb6, 0x4fb7, 0x4fb8, 0x4fb9, 0x4fba, 0x4fbb, 0x4fbc, 0x4fbd, - 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fc8, 0x4fc9, - 0x4fcb, 0x4fcc, 0x4fcd, 0x4fd2, 0x4fd3, 0x4fd4, 0x4fd5, 0x4fd6, - 0x4fd9, 0x4fdb, 0x4fe0, 0x4fe2, 0x4fe4, 0x4fe5, 0x4fe7, 0x4feb, - 0x4fec, 0x4ff0, 0x4ff2, 0x4ff4, 0x4ff5, 0x4ff6, 0x4ff7, 0x4ff9, - 0x4ffb, 0x4ffc, 0x4ffd, 0x4fff, 0x5000, 0x5001, 0x5002, 0x5003, - 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500a, 0x500b, - 0x500e, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, 0x501b, - 0x501d, 0x501e, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, 0x502b, - 0x502f, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, 0x5036, - 0x5037, 0x5038, 0x5039, 0x503b, 0x503d, 0x503f, 0x5040, 0x5041, - 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504a, 0x504b, 0x504d, - 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, 0x5058, - 0x5059, 0x505b, 0x505d, 0x505e, 0x505f, 0x5060, 0x5061, 0x5062, - 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506a, 0x506b, - 0x506d, 0x506e, 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, - 0x5075, 0x5078, 0x5079, 0x507a, 0x507c, 0x507d, 0x5081, 0x5082, - 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508a, 0x508b, 0x508c, - 0x508e, 0x508f, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, 0x5095, - 0x5096, 0x5097, 0x5098, 0x5099, 0x509a, 0x509b, 0x509c, 0x509d, - 0x509e, 0x509f, 0x50a0, 0x50a1, 0x50a2, 0x50a4, 0x50a6, 0x50aa, - 0x50ab, 0x50ad, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 0x50b4, - 0x50b5, 0x50b6, 0x50b7, 0x50b8, 0x50b9, 0x50bc, - /* 0x83 */ - 0x50bd, 0x50be, 0x50bf, 0x50c0, 0x50c1, 0x50c2, 0x50c3, 0x50c4, - 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50ca, 0x50cb, 0x50cc, - 0x50cd, 0x50ce, 0x50d0, 0x50d1, 0x50d2, 0x50d3, 0x50d4, 0x50d5, - 0x50d7, 0x50d8, 0x50d9, 0x50db, 0x50dc, 0x50dd, 0x50de, 0x50df, - 0x50e0, 0x50e1, 0x50e2, 0x50e3, 0x50e4, 0x50e5, 0x50e8, 0x50e9, - 0x50ea, 0x50eb, 0x50ef, 0x50f0, 0x50f1, 0x50f2, 0x50f4, 0x50f6, - 0x50f7, 0x50f8, 0x50f9, 0x50fa, 0x50fc, 0x50fd, 0x50fe, 0x50ff, - 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x5109, - 0x510a, 0x510c, 0x510d, 0x510e, 0x510f, 0x5110, 0x5111, 0x5113, - 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511a, 0x511b, - 0x511c, 0x511d, 0x511e, 0x511f, 0x5120, 0x5122, 0x5123, 0x5124, - 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512a, 0x512b, 0x512c, - 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, 0x5132, 0x5133, 0x5134, - 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513a, 0x513b, 0x513c, - 0x513d, 0x513e, 0x5142, 0x5147, 0x514a, 0x514c, 0x514e, 0x514f, - 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515b, 0x515d, - 0x515e, 0x515f, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, 0x5167, - 0x5169, 0x516a, 0x516f, 0x5172, 0x517a, 0x517e, 0x517f, 0x5183, - 0x5184, 0x5186, 0x5187, 0x518a, 0x518b, 0x518e, 0x518f, 0x5190, - 0x5191, 0x5193, 0x5194, 0x5198, 0x519a, 0x519d, 0x519e, 0x519f, - 0x51a1, 0x51a3, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 0x51aa, 0x51ad, - 0x51ae, 0x51b4, 0x51b8, 0x51b9, 0x51ba, 0x51be, 0x51bf, 0x51c1, - 0x51c2, 0x51c3, 0x51c5, 0x51c8, 0x51ca, 0x51cd, 0x51ce, 0x51d0, - 0x51d2, 0x51d3, 0x51d4, 0x51d5, 0x51d6, 0x51d7, - /* 0x84 */ - 0x51d8, 0x51d9, 0x51da, 0x51dc, 0x51de, 0x51df, 0x51e2, 0x51e3, - 0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 0x51ea, 0x51ec, 0x51ee, - 0x51f1, 0x51f2, 0x51f4, 0x51f7, 0x51fe, 0x5204, 0x5205, 0x5209, - 0x520b, 0x520c, 0x520f, 0x5210, 0x5213, 0x5214, 0x5215, 0x521c, - 0x521e, 0x521f, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, - 0x522a, 0x522c, 0x522f, 0x5231, 0x5232, 0x5234, 0x5235, 0x523c, - 0x523e, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524b, - 0x524e, 0x524f, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x5259, - 0x525a, 0x525b, 0x525d, 0x525f, 0x5260, 0x5262, 0x5263, 0x5264, - 0x5266, 0x5268, 0x526b, 0x526c, 0x526d, 0x526e, 0x5270, 0x5271, - 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, 0x527a, - 0x527b, 0x527c, 0x527e, 0x5280, 0x5283, 0x5284, 0x5285, 0x5286, - 0x5287, 0x5289, 0x528a, 0x528b, 0x528c, 0x528d, 0x528e, 0x528f, - 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, 0x5299, - 0x529a, 0x529c, 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52ae, 0x52af, - 0x52b0, 0x52b4, 0x52b5, 0x52b6, 0x52b7, 0x52b8, 0x52b9, 0x52ba, - 0x52bb, 0x52bc, 0x52bd, 0x52c0, 0x52c1, 0x52c2, 0x52c4, 0x52c5, - 0x52c6, 0x52c8, 0x52ca, 0x52cc, 0x52cd, 0x52ce, 0x52cf, 0x52d1, - 0x52d3, 0x52d4, 0x52d5, 0x52d7, 0x52d9, 0x52da, 0x52db, 0x52dc, - 0x52dd, 0x52de, 0x52e0, 0x52e1, 0x52e2, 0x52e3, 0x52e5, 0x52e6, - 0x52e7, 0x52e8, 0x52e9, 0x52ea, 0x52eb, 0x52ec, 0x52ed, 0x52ee, - 0x52ef, 0x52f1, 0x52f2, 0x52f3, 0x52f4, 0x52f5, 0x52f6, 0x52f7, - 0x52f8, 0x52fb, 0x52fc, 0x52fd, 0x5301, 0x5302, 0x5303, 0x5304, - 0x5307, 0x5309, 0x530a, 0x530b, 0x530c, 0x530e, - /* 0x85 */ - 0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531b, 0x531c, 0x531e, - 0x531f, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, - 0x532c, 0x532d, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, - 0x5335, 0x5336, 0x5337, 0x5338, 0x533c, 0x533d, 0x5340, 0x5342, - 0x5344, 0x5346, 0x534b, 0x534c, 0x534d, 0x5350, 0x5354, 0x5358, - 0x5359, 0x535b, 0x535d, 0x5365, 0x5368, 0x536a, 0x536c, 0x536d, - 0x5372, 0x5376, 0x5379, 0x537b, 0x537c, 0x537d, 0x537e, 0x5380, - 0x5381, 0x5383, 0x5387, 0x5388, 0x538a, 0x538e, 0x538f, 0x5390, - 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, 0x539b, - 0x539c, 0x539e, 0x53a0, 0x53a1, 0x53a4, 0x53a7, 0x53aa, 0x53ab, - 0x53ac, 0x53ad, 0x53af, 0x53b0, 0x53b1, 0x53b2, 0x53b3, 0x53b4, - 0x53b5, 0x53b7, 0x53b8, 0x53b9, 0x53ba, 0x53bc, 0x53bd, 0x53be, - 0x53c0, 0x53c3, 0x53c4, 0x53c5, 0x53c6, 0x53c7, 0x53ce, 0x53cf, - 0x53d0, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dc, 0x53dd, 0x53de, - 0x53e1, 0x53e2, 0x53e7, 0x53f4, 0x53fa, 0x53fe, 0x53ff, 0x5400, - 0x5402, 0x5405, 0x5407, 0x540b, 0x5414, 0x5418, 0x5419, 0x541a, - 0x541c, 0x5422, 0x5424, 0x5425, 0x542a, 0x5430, 0x5433, 0x5436, - 0x5437, 0x543a, 0x543d, 0x543f, 0x5441, 0x5442, 0x5444, 0x5445, - 0x5447, 0x5449, 0x544c, 0x544d, 0x544e, 0x544f, 0x5451, 0x545a, - 0x545d, 0x545e, 0x545f, 0x5460, 0x5461, 0x5463, 0x5465, 0x5467, - 0x5469, 0x546a, 0x546b, 0x546c, 0x546d, 0x546e, 0x546f, 0x5470, - 0x5474, 0x5479, 0x547a, 0x547e, 0x547f, 0x5481, 0x5483, 0x5485, - 0x5487, 0x5488, 0x5489, 0x548a, 0x548d, 0x5491, 0x5493, 0x5497, - 0x5498, 0x549c, 0x549e, 0x549f, 0x54a0, 0x54a1, - /* 0x86 */ - 0x54a2, 0x54a5, 0x54ae, 0x54b0, 0x54b2, 0x54b5, 0x54b6, 0x54b7, - 0x54b9, 0x54ba, 0x54bc, 0x54be, 0x54c3, 0x54c5, 0x54ca, 0x54cb, - 0x54d6, 0x54d8, 0x54db, 0x54e0, 0x54e1, 0x54e2, 0x54e3, 0x54e4, - 0x54eb, 0x54ec, 0x54ef, 0x54f0, 0x54f1, 0x54f4, 0x54f5, 0x54f6, - 0x54f7, 0x54f8, 0x54f9, 0x54fb, 0x54fe, 0x5500, 0x5502, 0x5503, - 0x5504, 0x5505, 0x5508, 0x550a, 0x550b, 0x550c, 0x550d, 0x550e, - 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551a, - 0x551c, 0x551d, 0x551e, 0x551f, 0x5521, 0x5525, 0x5526, 0x5528, - 0x5529, 0x552b, 0x552d, 0x5532, 0x5534, 0x5535, 0x5536, 0x5538, - 0x5539, 0x553a, 0x553b, 0x553d, 0x5540, 0x5542, 0x5545, 0x5547, - 0x5548, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5551, 0x5552, - 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555a, 0x555b, 0x555d, - 0x555e, 0x555f, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, 0x556b, - 0x556f, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, 0x557a, - 0x557d, 0x557f, 0x5585, 0x5586, 0x558c, 0x558d, 0x558e, 0x5590, - 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559a, 0x559b, 0x559e, - 0x55a0, 0x55a1, 0x55a2, 0x55a3, 0x55a4, 0x55a5, 0x55a6, 0x55a8, - 0x55a9, 0x55aa, 0x55ab, 0x55ac, 0x55ad, 0x55ae, 0x55af, 0x55b0, - 0x55b2, 0x55b4, 0x55b6, 0x55b8, 0x55ba, 0x55bc, 0x55bf, 0x55c0, - 0x55c1, 0x55c2, 0x55c3, 0x55c6, 0x55c7, 0x55c8, 0x55ca, 0x55cb, - 0x55ce, 0x55cf, 0x55d0, 0x55d5, 0x55d7, 0x55d8, 0x55d9, 0x55da, - 0x55db, 0x55de, 0x55e0, 0x55e2, 0x55e7, 0x55e9, 0x55ed, 0x55ee, - 0x55f0, 0x55f1, 0x55f4, 0x55f6, 0x55f8, 0x55f9, 0x55fa, 0x55fb, - 0x55fc, 0x55ff, 0x5602, 0x5603, 0x5604, 0x5605, - /* 0x87 */ - 0x5606, 0x5607, 0x560a, 0x560b, 0x560d, 0x5610, 0x5611, 0x5612, - 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561a, 0x561c, - 0x561d, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, - 0x562a, 0x562b, 0x562e, 0x562f, 0x5630, 0x5633, 0x5635, 0x5637, - 0x5638, 0x563a, 0x563c, 0x563d, 0x563e, 0x5640, 0x5641, 0x5642, - 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564a, - 0x564b, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, - 0x565a, 0x565b, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5663, - 0x5665, 0x5666, 0x5667, 0x566d, 0x566e, 0x566f, 0x5670, 0x5672, - 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567a, 0x567d, - 0x567e, 0x567f, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, 0x5687, - 0x5688, 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x5690, 0x5691, - 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, 0x569a, - 0x569b, 0x569c, 0x569d, 0x569e, 0x569f, 0x56a0, 0x56a1, 0x56a2, - 0x56a4, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 0x56aa, 0x56ab, - 0x56ac, 0x56ad, 0x56ae, 0x56b0, 0x56b1, 0x56b2, 0x56b3, 0x56b4, - 0x56b5, 0x56b6, 0x56b8, 0x56b9, 0x56ba, 0x56bb, 0x56bd, 0x56be, - 0x56bf, 0x56c0, 0x56c1, 0x56c2, 0x56c3, 0x56c4, 0x56c5, 0x56c6, - 0x56c7, 0x56c8, 0x56c9, 0x56cb, 0x56cc, 0x56cd, 0x56ce, 0x56cf, - 0x56d0, 0x56d1, 0x56d2, 0x56d3, 0x56d5, 0x56d6, 0x56d8, 0x56d9, - 0x56dc, 0x56e3, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, 0x56ea, - 0x56ec, 0x56ee, 0x56ef, 0x56f2, 0x56f3, 0x56f6, 0x56f7, 0x56f8, - 0x56fb, 0x56fc, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, 0x570b, - 0x570c, 0x570d, 0x570e, 0x570f, 0x5710, 0x5711, - /* 0x88 */ - 0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, - 0x571a, 0x571b, 0x571d, 0x571e, 0x5720, 0x5721, 0x5722, 0x5724, - 0x5725, 0x5726, 0x5727, 0x572b, 0x5731, 0x5732, 0x5734, 0x5735, - 0x5736, 0x5737, 0x5738, 0x573c, 0x573d, 0x573f, 0x5741, 0x5743, - 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574b, 0x5752, 0x5753, - 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, - 0x5767, 0x576c, 0x576e, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, - 0x5778, 0x5779, 0x577a, 0x577d, 0x577e, 0x577f, 0x5780, 0x5781, - 0x5787, 0x5788, 0x5789, 0x578a, 0x578d, 0x578e, 0x578f, 0x5790, - 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, 0x579a, - 0x579c, 0x579d, 0x579e, 0x579f, 0x57a5, 0x57a8, 0x57aa, 0x57ac, - 0x57af, 0x57b0, 0x57b1, 0x57b3, 0x57b5, 0x57b6, 0x57b7, 0x57b9, - 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x57be, 0x57bf, 0x57c0, 0x57c1, - 0x57c4, 0x57c5, 0x57c6, 0x57c7, 0x57c8, 0x57c9, 0x57ca, 0x57cc, - 0x57cd, 0x57d0, 0x57d1, 0x57d3, 0x57d6, 0x57d7, 0x57db, 0x57dc, - 0x57de, 0x57e1, 0x57e2, 0x57e3, 0x57e5, 0x57e6, 0x57e7, 0x57e8, - 0x57e9, 0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57f0, 0x57f1, 0x57f2, - 0x57f3, 0x57f5, 0x57f6, 0x57f7, 0x57fb, 0x57fc, 0x57fe, 0x57ff, - 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580a, 0x580c, - 0x580e, 0x580f, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, 0x5817, - 0x5818, 0x581a, 0x581b, 0x581c, 0x581d, 0x581f, 0x5822, 0x5823, - 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582b, 0x582c, 0x582d, - 0x582e, 0x582f, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, 0x5837, - 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d, - /* 0x89 */ - 0x583e, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, - 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584e, 0x584f, 0x5850, - 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585a, 0x585b, - 0x585c, 0x585d, 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, - 0x5866, 0x5867, 0x5868, 0x5869, 0x586a, 0x586d, 0x586e, 0x586f, - 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, - 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587f, 0x5882, - 0x5884, 0x5886, 0x5887, 0x5888, 0x588a, 0x588b, 0x588c, 0x588d, - 0x588e, 0x588f, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, 0x5897, - 0x5898, 0x589b, 0x589c, 0x589d, 0x58a0, 0x58a1, 0x58a2, 0x58a3, - 0x58a4, 0x58a5, 0x58a6, 0x58a7, 0x58aa, 0x58ab, 0x58ac, 0x58ad, - 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b2, 0x58b3, 0x58b4, 0x58b5, - 0x58b6, 0x58b7, 0x58b8, 0x58b9, 0x58ba, 0x58bb, 0x58bd, 0x58be, - 0x58bf, 0x58c0, 0x58c2, 0x58c3, 0x58c4, 0x58c6, 0x58c7, 0x58c8, - 0x58c9, 0x58ca, 0x58cb, 0x58cc, 0x58cd, 0x58ce, 0x58cf, 0x58d0, - 0x58d2, 0x58d3, 0x58d4, 0x58d6, 0x58d7, 0x58d8, 0x58d9, 0x58da, - 0x58db, 0x58dc, 0x58dd, 0x58de, 0x58df, 0x58e0, 0x58e1, 0x58e2, - 0x58e3, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 0x58ea, 0x58ed, - 0x58ef, 0x58f1, 0x58f2, 0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa, - 0x58fb, 0x58fc, 0x58fd, 0x58fe, 0x58ff, 0x5900, 0x5901, 0x5903, - 0x5905, 0x5906, 0x5908, 0x5909, 0x590a, 0x590b, 0x590c, 0x590e, - 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591b, 0x591d, - 0x591e, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, 0x592c, - 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593b, - /* 0x8a */ - 0x593d, 0x593e, 0x593f, 0x5940, 0x5943, 0x5945, 0x5946, 0x594a, - 0x594c, 0x594d, 0x5950, 0x5952, 0x5953, 0x5959, 0x595b, 0x595c, - 0x595d, 0x595e, 0x595f, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, - 0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f, - 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597a, 0x597b, 0x597c, - 0x597e, 0x597f, 0x5980, 0x5985, 0x5989, 0x598b, 0x598c, 0x598e, - 0x598f, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599a, 0x599b, - 0x599c, 0x599d, 0x599f, 0x59a0, 0x59a1, 0x59a2, 0x59a6, 0x59a7, - 0x59ac, 0x59ad, 0x59b0, 0x59b1, 0x59b3, 0x59b4, 0x59b5, 0x59b6, - 0x59b7, 0x59b8, 0x59ba, 0x59bc, 0x59bd, 0x59bf, 0x59c0, 0x59c1, - 0x59c2, 0x59c3, 0x59c4, 0x59c5, 0x59c7, 0x59c8, 0x59c9, 0x59cc, - 0x59cd, 0x59ce, 0x59cf, 0x59d5, 0x59d6, 0x59d9, 0x59db, 0x59de, - 0x59df, 0x59e0, 0x59e1, 0x59e2, 0x59e4, 0x59e6, 0x59e7, 0x59e9, - 0x59ea, 0x59eb, 0x59ed, 0x59ee, 0x59ef, 0x59f0, 0x59f1, 0x59f2, - 0x59f3, 0x59f4, 0x59f5, 0x59f6, 0x59f7, 0x59f8, 0x59fa, 0x59fc, - 0x59fd, 0x59fe, 0x5a00, 0x5a02, 0x5a0a, 0x5a0b, 0x5a0d, 0x5a0e, - 0x5a0f, 0x5a10, 0x5a12, 0x5a14, 0x5a15, 0x5a16, 0x5a17, 0x5a19, - 0x5a1a, 0x5a1b, 0x5a1d, 0x5a1e, 0x5a21, 0x5a22, 0x5a24, 0x5a26, - 0x5a27, 0x5a28, 0x5a2a, 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, - 0x5a30, 0x5a33, 0x5a35, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, 0x5a3b, - 0x5a3d, 0x5a3e, 0x5a3f, 0x5a41, 0x5a42, 0x5a43, 0x5a44, 0x5a45, - 0x5a47, 0x5a48, 0x5a4b, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50, - 0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a56, 0x5a57, 0x5a58, 0x5a59, - 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60, - /* 0x8b */ - 0x5a61, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a68, 0x5a69, 0x5a6b, - 0x5a6c, 0x5a6d, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, 0x5a73, - 0x5a78, 0x5a79, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5a80, 0x5a81, - 0x5a82, 0x5a83, 0x5a84, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89, - 0x5a8a, 0x5a8b, 0x5a8c, 0x5a8d, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91, - 0x5a93, 0x5a94, 0x5a95, 0x5a96, 0x5a97, 0x5a98, 0x5a99, 0x5a9c, - 0x5a9d, 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa1, 0x5aa2, 0x5aa3, 0x5aa4, - 0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 0x5aab, 0x5aac, 0x5aad, - 0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab4, 0x5ab6, 0x5ab7, 0x5ab9, - 0x5aba, 0x5abb, 0x5abc, 0x5abd, 0x5abf, 0x5ac0, 0x5ac3, 0x5ac4, - 0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5aca, 0x5acb, 0x5acd, 0x5ace, - 0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 0x5ad5, 0x5ad7, 0x5ad9, 0x5ada, - 0x5adb, 0x5add, 0x5ade, 0x5adf, 0x5ae2, 0x5ae4, 0x5ae5, 0x5ae7, - 0x5ae8, 0x5aea, 0x5aec, 0x5aed, 0x5aee, 0x5aef, 0x5af0, 0x5af2, - 0x5af3, 0x5af4, 0x5af5, 0x5af6, 0x5af7, 0x5af8, 0x5af9, 0x5afa, - 0x5afb, 0x5afc, 0x5afd, 0x5afe, 0x5aff, 0x5b00, 0x5b01, 0x5b02, - 0x5b03, 0x5b04, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b0a, 0x5b0b, - 0x5b0c, 0x5b0d, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b12, 0x5b13, - 0x5b14, 0x5b15, 0x5b18, 0x5b19, 0x5b1a, 0x5b1b, 0x5b1c, 0x5b1d, - 0x5b1e, 0x5b1f, 0x5b20, 0x5b21, 0x5b22, 0x5b23, 0x5b24, 0x5b25, - 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, 0x5b2d, - 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 0x5b35, 0x5b36, 0x5b38, - 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b41, - 0x5b42, 0x5b43, 0x5b44, 0x5b45, 0x5b46, 0x5b47, - /* 0x8c */ - 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f, - 0x5b52, 0x5b56, 0x5b5e, 0x5b60, 0x5b61, 0x5b67, 0x5b68, 0x5b6b, - 0x5b6d, 0x5b6e, 0x5b6f, 0x5b72, 0x5b74, 0x5b76, 0x5b77, 0x5b78, - 0x5b79, 0x5b7b, 0x5b7c, 0x5b7e, 0x5b7f, 0x5b82, 0x5b86, 0x5b8a, - 0x5b8d, 0x5b8e, 0x5b90, 0x5b91, 0x5b92, 0x5b94, 0x5b96, 0x5b9f, - 0x5ba7, 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5bae, 0x5baf, 0x5bb1, - 0x5bb2, 0x5bb7, 0x5bba, 0x5bbb, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bc3, - 0x5bc8, 0x5bc9, 0x5bca, 0x5bcb, 0x5bcd, 0x5bce, 0x5bcf, 0x5bd1, - 0x5bd4, 0x5bd5, 0x5bd6, 0x5bd7, 0x5bd8, 0x5bd9, 0x5bda, 0x5bdb, - 0x5bdc, 0x5be0, 0x5be2, 0x5be3, 0x5be6, 0x5be7, 0x5be9, 0x5bea, - 0x5beb, 0x5bec, 0x5bed, 0x5bef, 0x5bf1, 0x5bf2, 0x5bf3, 0x5bf4, - 0x5bf5, 0x5bf6, 0x5bf7, 0x5bfd, 0x5bfe, 0x5c00, 0x5c02, 0x5c03, - 0x5c05, 0x5c07, 0x5c08, 0x5c0b, 0x5c0c, 0x5c0d, 0x5c0e, 0x5c10, - 0x5c12, 0x5c13, 0x5c17, 0x5c19, 0x5c1b, 0x5c1e, 0x5c1f, 0x5c20, - 0x5c21, 0x5c23, 0x5c26, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2d, - 0x5c2e, 0x5c2f, 0x5c30, 0x5c32, 0x5c33, 0x5c35, 0x5c36, 0x5c37, - 0x5c43, 0x5c44, 0x5c46, 0x5c47, 0x5c4c, 0x5c4d, 0x5c52, 0x5c53, - 0x5c54, 0x5c56, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d, - 0x5c5f, 0x5c62, 0x5c64, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, - 0x5c6c, 0x5c6d, 0x5c70, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76, - 0x5c77, 0x5c78, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, 0x5c80, 0x5c83, - 0x5c84, 0x5c85, 0x5c86, 0x5c87, 0x5c89, 0x5c8a, 0x5c8b, 0x5c8e, - 0x5c8f, 0x5c92, 0x5c93, 0x5c95, 0x5c9d, 0x5c9e, 0x5c9f, 0x5ca0, - 0x5ca1, 0x5ca4, 0x5ca5, 0x5ca6, 0x5ca7, 0x5ca8, - /* 0x8d */ - 0x5caa, 0x5cae, 0x5caf, 0x5cb0, 0x5cb2, 0x5cb4, 0x5cb6, 0x5cb9, - 0x5cba, 0x5cbb, 0x5cbc, 0x5cbe, 0x5cc0, 0x5cc2, 0x5cc3, 0x5cc5, - 0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 0x5cca, 0x5ccc, 0x5ccd, 0x5cce, - 0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 0x5cd4, 0x5cd5, 0x5cd6, 0x5cd7, - 0x5cd8, 0x5cda, 0x5cdb, 0x5cdc, 0x5cdd, 0x5cde, 0x5cdf, 0x5ce0, - 0x5ce2, 0x5ce3, 0x5ce7, 0x5ce9, 0x5ceb, 0x5cec, 0x5cee, 0x5cef, - 0x5cf1, 0x5cf2, 0x5cf3, 0x5cf4, 0x5cf5, 0x5cf6, 0x5cf7, 0x5cf8, - 0x5cf9, 0x5cfa, 0x5cfc, 0x5cfd, 0x5cfe, 0x5cff, 0x5d00, 0x5d01, - 0x5d04, 0x5d05, 0x5d08, 0x5d09, 0x5d0a, 0x5d0b, 0x5d0c, 0x5d0d, - 0x5d0f, 0x5d10, 0x5d11, 0x5d12, 0x5d13, 0x5d15, 0x5d17, 0x5d18, - 0x5d19, 0x5d1a, 0x5d1c, 0x5d1d, 0x5d1f, 0x5d20, 0x5d21, 0x5d22, - 0x5d23, 0x5d25, 0x5d28, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2f, 0x5d30, - 0x5d31, 0x5d32, 0x5d33, 0x5d35, 0x5d36, 0x5d37, 0x5d38, 0x5d39, - 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3f, 0x5d40, 0x5d41, 0x5d42, 0x5d43, - 0x5d44, 0x5d45, 0x5d46, 0x5d48, 0x5d49, 0x5d4d, 0x5d4e, 0x5d4f, - 0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57, - 0x5d59, 0x5d5a, 0x5d5c, 0x5d5e, 0x5d5f, 0x5d60, 0x5d61, 0x5d62, - 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d6a, 0x5d6d, - 0x5d6e, 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d75, 0x5d76, 0x5d77, - 0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5d7f, - 0x5d80, 0x5d81, 0x5d83, 0x5d84, 0x5d85, 0x5d86, 0x5d87, 0x5d88, - 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, 0x5d8d, 0x5d8e, 0x5d8f, 0x5d90, - 0x5d91, 0x5d92, 0x5d93, 0x5d94, 0x5d95, 0x5d96, 0x5d97, 0x5d98, - 0x5d9a, 0x5d9b, 0x5d9c, 0x5d9e, 0x5d9f, 0x5da0, - /* 0x8e */ - 0x5da1, 0x5da2, 0x5da3, 0x5da4, 0x5da5, 0x5da6, 0x5da7, 0x5da8, - 0x5da9, 0x5daa, 0x5dab, 0x5dac, 0x5dad, 0x5dae, 0x5daf, 0x5db0, - 0x5db1, 0x5db2, 0x5db3, 0x5db4, 0x5db5, 0x5db6, 0x5db8, 0x5db9, - 0x5dba, 0x5dbb, 0x5dbc, 0x5dbd, 0x5dbe, 0x5dbf, 0x5dc0, 0x5dc1, - 0x5dc2, 0x5dc3, 0x5dc4, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 0x5dca, - 0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd2, 0x5dd3, - 0x5dd4, 0x5dd5, 0x5dd6, 0x5dd7, 0x5dd8, 0x5dd9, 0x5dda, 0x5ddc, - 0x5ddf, 0x5de0, 0x5de3, 0x5de4, 0x5dea, 0x5dec, 0x5ded, 0x5df0, - 0x5df5, 0x5df6, 0x5df8, 0x5df9, 0x5dfa, 0x5dfb, 0x5dfc, 0x5dff, - 0x5e00, 0x5e04, 0x5e07, 0x5e09, 0x5e0a, 0x5e0b, 0x5e0d, 0x5e0e, - 0x5e12, 0x5e13, 0x5e17, 0x5e1e, 0x5e1f, 0x5e20, 0x5e21, 0x5e22, - 0x5e23, 0x5e24, 0x5e25, 0x5e28, 0x5e29, 0x5e2a, 0x5e2b, 0x5e2c, - 0x5e2f, 0x5e30, 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e39, - 0x5e3a, 0x5e3e, 0x5e3f, 0x5e40, 0x5e41, 0x5e43, 0x5e46, 0x5e47, - 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, - 0x5e51, 0x5e52, 0x5e53, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, - 0x5e5c, 0x5e5d, 0x5e5f, 0x5e60, 0x5e63, 0x5e64, 0x5e65, 0x5e66, - 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, - 0x5e6f, 0x5e70, 0x5e71, 0x5e75, 0x5e77, 0x5e79, 0x5e7e, 0x5e81, - 0x5e82, 0x5e83, 0x5e85, 0x5e88, 0x5e89, 0x5e8c, 0x5e8d, 0x5e8e, - 0x5e92, 0x5e98, 0x5e9b, 0x5e9d, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4, - 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, 0x5eb0, - 0x5eb1, 0x5eb2, 0x5eb4, 0x5eba, 0x5ebb, 0x5ebc, 0x5ebd, 0x5ebf, - 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, 0x5ec5, - /* 0x8f */ - 0x5ec6, 0x5ec7, 0x5ec8, 0x5ecb, 0x5ecc, 0x5ecd, 0x5ece, 0x5ecf, - 0x5ed0, 0x5ed4, 0x5ed5, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edc, - 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4, - 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee9, 0x5eeb, 0x5eec, 0x5eed, 0x5eee, - 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef5, 0x5ef8, 0x5ef9, - 0x5efb, 0x5efc, 0x5efd, 0x5f05, 0x5f06, 0x5f07, 0x5f09, 0x5f0c, - 0x5f0d, 0x5f0e, 0x5f10, 0x5f12, 0x5f14, 0x5f16, 0x5f19, 0x5f1a, - 0x5f1c, 0x5f1d, 0x5f1e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28, - 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f32, 0x5f33, 0x5f34, 0x5f35, - 0x5f36, 0x5f37, 0x5f38, 0x5f3b, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f41, - 0x5f42, 0x5f43, 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, - 0x5f4a, 0x5f4b, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f51, 0x5f54, - 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, 0x5f5e, 0x5f5f, 0x5f60, 0x5f63, - 0x5f65, 0x5f67, 0x5f68, 0x5f6b, 0x5f6e, 0x5f6f, 0x5f72, 0x5f74, - 0x5f75, 0x5f76, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, 0x5f7f, 0x5f83, - 0x5f86, 0x5f8d, 0x5f8e, 0x5f8f, 0x5f91, 0x5f93, 0x5f94, 0x5f96, - 0x5f9a, 0x5f9b, 0x5f9d, 0x5f9e, 0x5f9f, 0x5fa0, 0x5fa2, 0x5fa3, - 0x5fa4, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa9, 0x5fab, 0x5fac, 0x5faf, - 0x5fb0, 0x5fb1, 0x5fb2, 0x5fb3, 0x5fb4, 0x5fb6, 0x5fb8, 0x5fb9, - 0x5fba, 0x5fbb, 0x5fbe, 0x5fbf, 0x5fc0, 0x5fc1, 0x5fc2, 0x5fc7, - 0x5fc8, 0x5fca, 0x5fcb, 0x5fce, 0x5fd3, 0x5fd4, 0x5fd5, 0x5fda, - 0x5fdb, 0x5fdc, 0x5fde, 0x5fdf, 0x5fe2, 0x5fe3, 0x5fe5, 0x5fe6, - 0x5fe8, 0x5fe9, 0x5fec, 0x5fef, 0x5ff0, 0x5ff2, 0x5ff3, 0x5ff4, - 0x5ff6, 0x5ff7, 0x5ff9, 0x5ffa, 0x5ffc, 0x6007, - /* 0x90 */ - 0x6008, 0x6009, 0x600b, 0x600c, 0x6010, 0x6011, 0x6013, 0x6017, - 0x6018, 0x601a, 0x601e, 0x601f, 0x6022, 0x6023, 0x6024, 0x602c, - 0x602d, 0x602e, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, - 0x6037, 0x6038, 0x6039, 0x603a, 0x603d, 0x603e, 0x6040, 0x6044, - 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604c, 0x604e, - 0x604f, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605b, - 0x605c, 0x605e, 0x605f, 0x6060, 0x6061, 0x6065, 0x6066, 0x606e, - 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607e, 0x6080, 0x6081, - 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608a, 0x608b, 0x608e, - 0x608f, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, 0x6099, - 0x609c, 0x609e, 0x60a1, 0x60a2, 0x60a4, 0x60a5, 0x60a7, 0x60a9, - 0x60aa, 0x60ae, 0x60b0, 0x60b3, 0x60b5, 0x60b6, 0x60b7, 0x60b9, - 0x60ba, 0x60bd, 0x60be, 0x60bf, 0x60c0, 0x60c1, 0x60c2, 0x60c3, - 0x60c4, 0x60c7, 0x60c8, 0x60c9, 0x60cc, 0x60cd, 0x60ce, 0x60cf, - 0x60d0, 0x60d2, 0x60d3, 0x60d4, 0x60d6, 0x60d7, 0x60d9, 0x60db, - 0x60de, 0x60e1, 0x60e2, 0x60e3, 0x60e4, 0x60e5, 0x60ea, 0x60f1, - 0x60f2, 0x60f5, 0x60f7, 0x60f8, 0x60fb, 0x60fc, 0x60fd, 0x60fe, - 0x60ff, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610a, 0x610b, - 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, 0x6117, - 0x6118, 0x6119, 0x611b, 0x611c, 0x611d, 0x611e, 0x6121, 0x6122, - 0x6125, 0x6128, 0x6129, 0x612a, 0x612c, 0x612d, 0x612e, 0x612f, - 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137, - 0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x6140, - 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, - /* 0x91 */ - 0x6147, 0x6149, 0x614b, 0x614d, 0x614f, 0x6150, 0x6152, 0x6153, - 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615a, 0x615b, 0x615c, - 0x615e, 0x615f, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, - 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6171, - 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617a, 0x617b, - 0x617c, 0x617d, 0x617e, 0x617f, 0x6180, 0x6181, 0x6182, 0x6183, - 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618c, - 0x618d, 0x618f, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x6196, - 0x6197, 0x6198, 0x6199, 0x619a, 0x619b, 0x619c, 0x619e, 0x619f, - 0x61a0, 0x61a1, 0x61a2, 0x61a3, 0x61a4, 0x61a5, 0x61a6, 0x61aa, - 0x61ab, 0x61ad, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b2, 0x61b3, - 0x61b4, 0x61b5, 0x61b6, 0x61b8, 0x61b9, 0x61ba, 0x61bb, 0x61bc, - 0x61bd, 0x61bf, 0x61c0, 0x61c1, 0x61c3, 0x61c4, 0x61c5, 0x61c6, - 0x61c7, 0x61c9, 0x61cc, 0x61cd, 0x61ce, 0x61cf, 0x61d0, 0x61d3, - 0x61d5, 0x61d6, 0x61d7, 0x61d8, 0x61d9, 0x61da, 0x61db, 0x61dc, - 0x61dd, 0x61de, 0x61df, 0x61e0, 0x61e1, 0x61e2, 0x61e3, 0x61e4, - 0x61e5, 0x61e7, 0x61e8, 0x61e9, 0x61ea, 0x61eb, 0x61ec, 0x61ed, - 0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f2, 0x61f3, 0x61f4, 0x61f6, - 0x61f7, 0x61f8, 0x61f9, 0x61fa, 0x61fb, 0x61fc, 0x61fd, 0x61fe, - 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, 0x6209, - 0x6213, 0x6214, 0x6219, 0x621c, 0x621d, 0x621e, 0x6220, 0x6223, - 0x6226, 0x6227, 0x6228, 0x6229, 0x622b, 0x622d, 0x622f, 0x6230, - 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623a, 0x623b, - 0x623c, 0x6242, 0x6244, 0x6245, 0x6246, 0x624a, - /* 0x92 */ - 0x624f, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625a, 0x625c, - 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, - 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627a, - 0x627b, 0x627d, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, - 0x6288, 0x628b, 0x628c, 0x628d, 0x628e, 0x628f, 0x6290, 0x6294, - 0x6299, 0x629c, 0x629d, 0x629e, 0x62a3, 0x62a6, 0x62a7, 0x62a9, - 0x62aa, 0x62ad, 0x62ae, 0x62af, 0x62b0, 0x62b2, 0x62b3, 0x62b4, - 0x62b6, 0x62b7, 0x62b8, 0x62ba, 0x62be, 0x62c0, 0x62c1, 0x62c3, - 0x62cb, 0x62cf, 0x62d1, 0x62d5, 0x62dd, 0x62de, 0x62e0, 0x62e1, - 0x62e4, 0x62ea, 0x62eb, 0x62f0, 0x62f2, 0x62f5, 0x62f8, 0x62f9, - 0x62fa, 0x62fb, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, 0x630a, - 0x630b, 0x630c, 0x630d, 0x630f, 0x6310, 0x6312, 0x6313, 0x6314, - 0x6315, 0x6317, 0x6318, 0x6319, 0x631c, 0x6326, 0x6327, 0x6329, - 0x632c, 0x632d, 0x632e, 0x6330, 0x6331, 0x6333, 0x6334, 0x6335, - 0x6336, 0x6337, 0x6338, 0x633b, 0x633c, 0x633e, 0x633f, 0x6340, - 0x6341, 0x6344, 0x6347, 0x6348, 0x634a, 0x6351, 0x6352, 0x6353, - 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c, - 0x635d, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636a, 0x636b, - 0x636c, 0x636f, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, 0x6378, - 0x6379, 0x637c, 0x637d, 0x637e, 0x637f, 0x6381, 0x6383, 0x6384, - 0x6385, 0x6386, 0x638b, 0x638d, 0x6391, 0x6393, 0x6394, 0x6395, - 0x6397, 0x6399, 0x639a, 0x639b, 0x639c, 0x639d, 0x639e, 0x639f, - 0x63a1, 0x63a4, 0x63a6, 0x63ab, 0x63af, 0x63b1, 0x63b2, 0x63b5, - 0x63b6, 0x63b9, 0x63bb, 0x63bd, 0x63bf, 0x63c0, - /* 0x93 */ - 0x63c1, 0x63c2, 0x63c3, 0x63c5, 0x63c7, 0x63c8, 0x63ca, 0x63cb, - 0x63cc, 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63d9, - 0x63da, 0x63db, 0x63dc, 0x63dd, 0x63df, 0x63e2, 0x63e4, 0x63e5, - 0x63e6, 0x63e7, 0x63e8, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0, - 0x63f1, 0x63f3, 0x63f5, 0x63f7, 0x63f9, 0x63fa, 0x63fb, 0x63fc, - 0x63fe, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640a, - 0x640d, 0x640e, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, - 0x6419, 0x641a, 0x641d, 0x641f, 0x6422, 0x6423, 0x6424, 0x6425, - 0x6427, 0x6428, 0x6429, 0x642b, 0x642e, 0x642f, 0x6430, 0x6431, - 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, 0x643b, - 0x643c, 0x643e, 0x6440, 0x6442, 0x6443, 0x6449, 0x644b, 0x644c, - 0x644d, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 0x6455, 0x6456, - 0x6457, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645f, 0x6460, - 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, 0x646a, - 0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, - 0x6474, 0x6475, 0x6476, 0x6477, 0x647b, 0x647c, 0x647d, 0x647e, - 0x647f, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, 0x648a, - 0x648b, 0x648c, 0x648d, 0x648e, 0x648f, 0x6490, 0x6493, 0x6494, - 0x6497, 0x6498, 0x649a, 0x649b, 0x649c, 0x649d, 0x649f, 0x64a0, - 0x64a1, 0x64a2, 0x64a3, 0x64a5, 0x64a6, 0x64a7, 0x64a8, 0x64aa, - 0x64ab, 0x64af, 0x64b1, 0x64b2, 0x64b3, 0x64b4, 0x64b6, 0x64b9, - 0x64bb, 0x64bd, 0x64be, 0x64bf, 0x64c1, 0x64c3, 0x64c4, 0x64c6, - 0x64c7, 0x64c8, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64cf, 0x64d1, - 0x64d3, 0x64d4, 0x64d5, 0x64d6, 0x64d9, 0x64da, - /* 0x94 */ - 0x64db, 0x64dc, 0x64dd, 0x64df, 0x64e0, 0x64e1, 0x64e3, 0x64e5, - 0x64e7, 0x64e8, 0x64e9, 0x64ea, 0x64eb, 0x64ec, 0x64ed, 0x64ee, - 0x64ef, 0x64f0, 0x64f1, 0x64f2, 0x64f3, 0x64f4, 0x64f5, 0x64f6, - 0x64f7, 0x64f8, 0x64f9, 0x64fa, 0x64fb, 0x64fc, 0x64fd, 0x64fe, - 0x64ff, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, - 0x6508, 0x650a, 0x650b, 0x650c, 0x650d, 0x650e, 0x650f, 0x6510, - 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651a, - 0x651b, 0x651c, 0x651d, 0x651e, 0x651f, 0x6520, 0x6521, 0x6522, - 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652a, 0x652c, - 0x652d, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653a, 0x653c, - 0x653d, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, 0x6547, - 0x654a, 0x654b, 0x654d, 0x654e, 0x6550, 0x6552, 0x6553, 0x6554, - 0x6557, 0x6558, 0x655a, 0x655c, 0x655f, 0x6560, 0x6561, 0x6564, - 0x6565, 0x6567, 0x6568, 0x6569, 0x656a, 0x656d, 0x656e, 0x656f, - 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657a, 0x657b, - 0x657c, 0x657d, 0x657e, 0x657f, 0x6580, 0x6581, 0x6582, 0x6583, - 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658a, 0x658d, 0x658e, - 0x658f, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659a, 0x659d, - 0x659e, 0x65a0, 0x65a2, 0x65a3, 0x65a6, 0x65a8, 0x65aa, 0x65ac, - 0x65ae, 0x65b1, 0x65b2, 0x65b3, 0x65b4, 0x65b5, 0x65b6, 0x65b7, - 0x65b8, 0x65ba, 0x65bb, 0x65be, 0x65bf, 0x65c0, 0x65c2, 0x65c7, - 0x65c8, 0x65c9, 0x65ca, 0x65cd, 0x65d0, 0x65d1, 0x65d3, 0x65d4, - 0x65d5, 0x65d8, 0x65d9, 0x65da, 0x65db, 0x65dc, 0x65dd, 0x65de, - 0x65df, 0x65e1, 0x65e3, 0x65e4, 0x65ea, 0x65eb, - /* 0x95 */ - 0x65f2, 0x65f3, 0x65f4, 0x65f5, 0x65f8, 0x65f9, 0x65fb, 0x65fc, - 0x65fd, 0x65fe, 0x65ff, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, - 0x6609, 0x660b, 0x660d, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, - 0x6618, 0x661a, 0x661b, 0x661c, 0x661e, 0x6621, 0x6622, 0x6623, - 0x6624, 0x6626, 0x6629, 0x662a, 0x662b, 0x662c, 0x662e, 0x6630, - 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663a, 0x663b, 0x663d, - 0x663f, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, - 0x6649, 0x664a, 0x664d, 0x664e, 0x6650, 0x6651, 0x6658, 0x6659, - 0x665b, 0x665c, 0x665d, 0x665e, 0x6660, 0x6662, 0x6663, 0x6665, - 0x6667, 0x6669, 0x666a, 0x666b, 0x666c, 0x666d, 0x6671, 0x6672, - 0x6673, 0x6675, 0x6678, 0x6679, 0x667b, 0x667c, 0x667d, 0x667f, - 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, 0x668a, - 0x668b, 0x668d, 0x668e, 0x668f, 0x6690, 0x6692, 0x6693, 0x6694, - 0x6695, 0x6698, 0x6699, 0x669a, 0x669b, 0x669c, 0x669e, 0x669f, - 0x66a0, 0x66a1, 0x66a2, 0x66a3, 0x66a4, 0x66a5, 0x66a6, 0x66a9, - 0x66aa, 0x66ab, 0x66ac, 0x66ad, 0x66af, 0x66b0, 0x66b1, 0x66b2, - 0x66b3, 0x66b5, 0x66b6, 0x66b7, 0x66b8, 0x66ba, 0x66bb, 0x66bc, - 0x66bd, 0x66bf, 0x66c0, 0x66c1, 0x66c2, 0x66c3, 0x66c4, 0x66c5, - 0x66c6, 0x66c7, 0x66c8, 0x66c9, 0x66ca, 0x66cb, 0x66cc, 0x66cd, - 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, 0x66d3, 0x66d4, 0x66d5, - 0x66d6, 0x66d7, 0x66d8, 0x66da, 0x66de, 0x66df, 0x66e0, 0x66e1, - 0x66e2, 0x66e3, 0x66e4, 0x66e5, 0x66e7, 0x66e8, 0x66ea, 0x66eb, - 0x66ec, 0x66ed, 0x66ee, 0x66ef, 0x66f1, 0x66f5, 0x66f6, 0x66f8, - 0x66fa, 0x66fb, 0x66fd, 0x6701, 0x6702, 0x6703, - /* 0x96 */ - 0x6704, 0x6705, 0x6706, 0x6707, 0x670c, 0x670e, 0x670f, 0x6711, - 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671a, 0x671c, 0x671e, - 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, - 0x672e, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, - 0x673b, 0x673c, 0x673e, 0x673f, 0x6741, 0x6744, 0x6745, 0x6747, - 0x674a, 0x674b, 0x674d, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, - 0x6759, 0x675a, 0x675b, 0x675d, 0x6762, 0x6763, 0x6764, 0x6766, - 0x6767, 0x676b, 0x676c, 0x676e, 0x6771, 0x6774, 0x6776, 0x6778, - 0x6779, 0x677a, 0x677b, 0x677d, 0x6780, 0x6782, 0x6783, 0x6785, - 0x6786, 0x6788, 0x678a, 0x678c, 0x678d, 0x678e, 0x678f, 0x6791, - 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679b, 0x679f, 0x67a0, - 0x67a1, 0x67a4, 0x67a6, 0x67a9, 0x67ac, 0x67ae, 0x67b1, 0x67b2, - 0x67b4, 0x67b9, 0x67ba, 0x67bb, 0x67bc, 0x67bd, 0x67be, 0x67bf, - 0x67c0, 0x67c2, 0x67c5, 0x67c6, 0x67c7, 0x67c8, 0x67c9, 0x67ca, - 0x67cb, 0x67cc, 0x67cd, 0x67ce, 0x67d5, 0x67d6, 0x67d7, 0x67db, - 0x67df, 0x67e1, 0x67e3, 0x67e4, 0x67e6, 0x67e7, 0x67e8, 0x67ea, - 0x67eb, 0x67ed, 0x67ee, 0x67f2, 0x67f5, 0x67f6, 0x67f7, 0x67f8, - 0x67f9, 0x67fa, 0x67fb, 0x67fc, 0x67fe, 0x6801, 0x6802, 0x6803, - 0x6804, 0x6806, 0x680d, 0x6810, 0x6812, 0x6814, 0x6815, 0x6818, - 0x6819, 0x681a, 0x681b, 0x681c, 0x681e, 0x681f, 0x6820, 0x6822, - 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682b, 0x682c, - 0x682d, 0x682e, 0x682f, 0x6830, 0x6831, 0x6834, 0x6835, 0x6836, - 0x683a, 0x683b, 0x683f, 0x6847, 0x684b, 0x684d, 0x684f, 0x6852, - 0x6856, 0x6857, 0x6858, 0x6859, 0x685a, 0x685b, - /* 0x97 */ - 0x685c, 0x685d, 0x685e, 0x685f, 0x686a, 0x686c, 0x686d, 0x686e, - 0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, - 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x687f, 0x6880, 0x6882, - 0x6884, 0x6887, 0x6888, 0x6889, 0x688a, 0x688b, 0x688c, 0x688d, - 0x688e, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, - 0x6899, 0x689a, 0x689b, 0x689c, 0x689d, 0x689e, 0x689f, 0x68a0, - 0x68a1, 0x68a3, 0x68a4, 0x68a5, 0x68a9, 0x68aa, 0x68ab, 0x68ac, - 0x68ae, 0x68b1, 0x68b2, 0x68b4, 0x68b6, 0x68b7, 0x68b8, 0x68b9, - 0x68ba, 0x68bb, 0x68bc, 0x68bd, 0x68be, 0x68bf, 0x68c1, 0x68c3, - 0x68c4, 0x68c5, 0x68c6, 0x68c7, 0x68c8, 0x68ca, 0x68cc, 0x68ce, - 0x68cf, 0x68d0, 0x68d1, 0x68d3, 0x68d4, 0x68d6, 0x68d7, 0x68d9, - 0x68db, 0x68dc, 0x68dd, 0x68de, 0x68df, 0x68e1, 0x68e2, 0x68e4, - 0x68e5, 0x68e6, 0x68e7, 0x68e8, 0x68e9, 0x68ea, 0x68eb, 0x68ec, - 0x68ed, 0x68ef, 0x68f2, 0x68f3, 0x68f4, 0x68f6, 0x68f7, 0x68f8, - 0x68fb, 0x68fd, 0x68fe, 0x68ff, 0x6900, 0x6902, 0x6903, 0x6904, - 0x6906, 0x6907, 0x6908, 0x6909, 0x690a, 0x690c, 0x690f, 0x6911, - 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, 0x691a, - 0x691b, 0x691c, 0x691d, 0x691e, 0x6921, 0x6922, 0x6923, 0x6925, - 0x6926, 0x6927, 0x6928, 0x6929, 0x692a, 0x692b, 0x692c, 0x692e, - 0x692f, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, 0x6938, - 0x693a, 0x693b, 0x693c, 0x693e, 0x6940, 0x6941, 0x6943, 0x6944, - 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694a, 0x694b, 0x694c, - 0x694d, 0x694e, 0x694f, 0x6950, 0x6951, 0x6952, 0x6953, 0x6955, - 0x6956, 0x6958, 0x6959, 0x695b, 0x695c, 0x695f, - /* 0x98 */ - 0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696a, - 0x696c, 0x696d, 0x696f, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, - 0x6976, 0x697a, 0x697b, 0x697d, 0x697e, 0x697f, 0x6981, 0x6983, - 0x6985, 0x698a, 0x698b, 0x698c, 0x698e, 0x698f, 0x6990, 0x6991, - 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699a, 0x699d, 0x699e, - 0x699f, 0x69a0, 0x69a1, 0x69a2, 0x69a3, 0x69a4, 0x69a5, 0x69a6, - 0x69a9, 0x69aa, 0x69ac, 0x69ae, 0x69af, 0x69b0, 0x69b2, 0x69b3, - 0x69b5, 0x69b6, 0x69b8, 0x69b9, 0x69ba, 0x69bc, 0x69bd, 0x69be, - 0x69bf, 0x69c0, 0x69c2, 0x69c3, 0x69c4, 0x69c5, 0x69c6, 0x69c7, - 0x69c8, 0x69c9, 0x69cb, 0x69cd, 0x69cf, 0x69d1, 0x69d2, 0x69d3, - 0x69d5, 0x69d6, 0x69d7, 0x69d8, 0x69d9, 0x69da, 0x69dc, 0x69dd, - 0x69de, 0x69e1, 0x69e2, 0x69e3, 0x69e4, 0x69e5, 0x69e6, 0x69e7, - 0x69e8, 0x69e9, 0x69ea, 0x69eb, 0x69ec, 0x69ee, 0x69ef, 0x69f0, - 0x69f1, 0x69f3, 0x69f4, 0x69f5, 0x69f6, 0x69f7, 0x69f8, 0x69f9, - 0x69fa, 0x69fb, 0x69fc, 0x69fe, 0x6a00, 0x6a01, 0x6a02, 0x6a03, - 0x6a04, 0x6a05, 0x6a06, 0x6a07, 0x6a08, 0x6a09, 0x6a0b, 0x6a0c, - 0x6a0d, 0x6a0e, 0x6a0f, 0x6a10, 0x6a11, 0x6a12, 0x6a13, 0x6a14, - 0x6a15, 0x6a16, 0x6a19, 0x6a1a, 0x6a1b, 0x6a1c, 0x6a1d, 0x6a1e, - 0x6a20, 0x6a22, 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a29, - 0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a30, 0x6a32, 0x6a33, 0x6a34, - 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, 0x6a3c, 0x6a3f, - 0x6a40, 0x6a41, 0x6a42, 0x6a43, 0x6a45, 0x6a46, 0x6a48, 0x6a49, - 0x6a4a, 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a51, 0x6a52, - 0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a5a, - /* 0x99 */ - 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a62, 0x6a63, 0x6a64, - 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, - 0x6a6e, 0x6a6f, 0x6a70, 0x6a72, 0x6a73, 0x6a74, 0x6a75, 0x6a76, - 0x6a77, 0x6a78, 0x6a7a, 0x6a7b, 0x6a7d, 0x6a7e, 0x6a7f, 0x6a81, - 0x6a82, 0x6a83, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, 0x6a8a, - 0x6a8b, 0x6a8c, 0x6a8d, 0x6a8f, 0x6a92, 0x6a93, 0x6a94, 0x6a95, - 0x6a96, 0x6a98, 0x6a99, 0x6a9a, 0x6a9b, 0x6a9c, 0x6a9d, 0x6a9e, - 0x6a9f, 0x6aa1, 0x6aa2, 0x6aa3, 0x6aa4, 0x6aa5, 0x6aa6, 0x6aa7, - 0x6aa8, 0x6aaa, 0x6aad, 0x6aae, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab2, - 0x6ab3, 0x6ab4, 0x6ab5, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba, - 0x6abb, 0x6abc, 0x6abd, 0x6abe, 0x6abf, 0x6ac0, 0x6ac1, 0x6ac2, - 0x6ac3, 0x6ac4, 0x6ac5, 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca, - 0x6acb, 0x6acc, 0x6acd, 0x6ace, 0x6acf, 0x6ad0, 0x6ad1, 0x6ad2, - 0x6ad3, 0x6ad4, 0x6ad5, 0x6ad6, 0x6ad7, 0x6ad8, 0x6ad9, 0x6ada, - 0x6adb, 0x6adc, 0x6add, 0x6ade, 0x6adf, 0x6ae0, 0x6ae1, 0x6ae2, - 0x6ae3, 0x6ae4, 0x6ae5, 0x6ae6, 0x6ae7, 0x6ae8, 0x6ae9, 0x6aea, - 0x6aeb, 0x6aec, 0x6aed, 0x6aee, 0x6aef, 0x6af0, 0x6af1, 0x6af2, - 0x6af3, 0x6af4, 0x6af5, 0x6af6, 0x6af7, 0x6af8, 0x6af9, 0x6afa, - 0x6afb, 0x6afc, 0x6afd, 0x6afe, 0x6aff, 0x6b00, 0x6b01, 0x6b02, - 0x6b03, 0x6b04, 0x6b05, 0x6b06, 0x6b07, 0x6b08, 0x6b09, 0x6b0a, - 0x6b0b, 0x6b0c, 0x6b0d, 0x6b0e, 0x6b0f, 0x6b10, 0x6b11, 0x6b12, - 0x6b13, 0x6b14, 0x6b15, 0x6b16, 0x6b17, 0x6b18, 0x6b19, 0x6b1a, - 0x6b1b, 0x6b1c, 0x6b1d, 0x6b1e, 0x6b1f, 0x6b25, 0x6b26, 0x6b28, - 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, 0x6b2e, - /* 0x9a */ - 0x6b2f, 0x6b30, 0x6b31, 0x6b33, 0x6b34, 0x6b35, 0x6b36, 0x6b38, - 0x6b3b, 0x6b3c, 0x6b3d, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b44, - 0x6b45, 0x6b48, 0x6b4a, 0x6b4b, 0x6b4d, 0x6b4e, 0x6b4f, 0x6b50, - 0x6b51, 0x6b52, 0x6b53, 0x6b54, 0x6b55, 0x6b56, 0x6b57, 0x6b58, - 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5d, 0x6b5e, 0x6b5f, 0x6b60, 0x6b61, - 0x6b68, 0x6b69, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, 0x6b6f, 0x6b70, - 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b75, 0x6b76, 0x6b77, 0x6b78, - 0x6b7a, 0x6b7d, 0x6b7e, 0x6b7f, 0x6b80, 0x6b85, 0x6b88, 0x6b8c, - 0x6b8e, 0x6b8f, 0x6b90, 0x6b91, 0x6b94, 0x6b95, 0x6b97, 0x6b98, - 0x6b99, 0x6b9c, 0x6b9d, 0x6b9e, 0x6b9f, 0x6ba0, 0x6ba2, 0x6ba3, - 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, 0x6ba8, 0x6ba9, 0x6bab, 0x6bac, - 0x6bad, 0x6bae, 0x6baf, 0x6bb0, 0x6bb1, 0x6bb2, 0x6bb6, 0x6bb8, - 0x6bb9, 0x6bba, 0x6bbb, 0x6bbc, 0x6bbd, 0x6bbe, 0x6bc0, 0x6bc3, - 0x6bc4, 0x6bc6, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bca, 0x6bcc, 0x6bce, - 0x6bd0, 0x6bd1, 0x6bd8, 0x6bda, 0x6bdc, 0x6bdd, 0x6bde, 0x6bdf, - 0x6be0, 0x6be2, 0x6be3, 0x6be4, 0x6be5, 0x6be6, 0x6be7, 0x6be8, - 0x6be9, 0x6bec, 0x6bed, 0x6bee, 0x6bf0, 0x6bf1, 0x6bf2, 0x6bf4, - 0x6bf6, 0x6bf7, 0x6bf8, 0x6bfa, 0x6bfb, 0x6bfc, 0x6bfe, 0x6bff, - 0x6c00, 0x6c01, 0x6c02, 0x6c03, 0x6c04, 0x6c08, 0x6c09, 0x6c0a, - 0x6c0b, 0x6c0c, 0x6c0e, 0x6c12, 0x6c17, 0x6c1c, 0x6c1d, 0x6c1e, - 0x6c20, 0x6c23, 0x6c25, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c31, 0x6c33, - 0x6c36, 0x6c37, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3e, 0x6c3f, - 0x6c43, 0x6c44, 0x6c45, 0x6c48, 0x6c4b, 0x6c4c, 0x6c4d, 0x6c4e, - 0x6c4f, 0x6c51, 0x6c52, 0x6c53, 0x6c56, 0x6c58, - /* 0x9b */ - 0x6c59, 0x6c5a, 0x6c62, 0x6c63, 0x6c65, 0x6c66, 0x6c67, 0x6c6b, - 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, 0x6c71, 0x6c73, 0x6c75, 0x6c77, - 0x6c78, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7f, 0x6c80, 0x6c84, 0x6c87, - 0x6c8a, 0x6c8b, 0x6c8d, 0x6c8e, 0x6c91, 0x6c92, 0x6c95, 0x6c96, - 0x6c97, 0x6c98, 0x6c9a, 0x6c9c, 0x6c9d, 0x6c9e, 0x6ca0, 0x6ca2, - 0x6ca8, 0x6cac, 0x6caf, 0x6cb0, 0x6cb4, 0x6cb5, 0x6cb6, 0x6cb7, - 0x6cba, 0x6cc0, 0x6cc1, 0x6cc2, 0x6cc3, 0x6cc6, 0x6cc7, 0x6cc8, - 0x6ccb, 0x6ccd, 0x6cce, 0x6ccf, 0x6cd1, 0x6cd2, 0x6cd8, 0x6cd9, - 0x6cda, 0x6cdc, 0x6cdd, 0x6cdf, 0x6ce4, 0x6ce6, 0x6ce7, 0x6ce9, - 0x6cec, 0x6ced, 0x6cf2, 0x6cf4, 0x6cf9, 0x6cff, 0x6d00, 0x6d02, - 0x6d03, 0x6d05, 0x6d06, 0x6d08, 0x6d09, 0x6d0a, 0x6d0d, 0x6d0f, - 0x6d10, 0x6d11, 0x6d13, 0x6d14, 0x6d15, 0x6d16, 0x6d18, 0x6d1c, - 0x6d1d, 0x6d1f, 0x6d20, 0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d26, - 0x6d28, 0x6d29, 0x6d2c, 0x6d2d, 0x6d2f, 0x6d30, 0x6d34, 0x6d36, - 0x6d37, 0x6d38, 0x6d3a, 0x6d3f, 0x6d40, 0x6d42, 0x6d44, 0x6d49, - 0x6d4c, 0x6d50, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d5b, 0x6d5d, - 0x6d5f, 0x6d61, 0x6d62, 0x6d64, 0x6d65, 0x6d67, 0x6d68, 0x6d6b, - 0x6d6c, 0x6d6d, 0x6d70, 0x6d71, 0x6d72, 0x6d73, 0x6d75, 0x6d76, - 0x6d79, 0x6d7a, 0x6d7b, 0x6d7d, 0x6d7e, 0x6d7f, 0x6d80, 0x6d81, - 0x6d83, 0x6d84, 0x6d86, 0x6d87, 0x6d8a, 0x6d8b, 0x6d8d, 0x6d8f, - 0x6d90, 0x6d92, 0x6d96, 0x6d97, 0x6d98, 0x6d99, 0x6d9a, 0x6d9c, - 0x6da2, 0x6da5, 0x6dac, 0x6dad, 0x6db0, 0x6db1, 0x6db3, 0x6db4, - 0x6db6, 0x6db7, 0x6db9, 0x6dba, 0x6dbb, 0x6dbc, 0x6dbd, 0x6dbe, - 0x6dc1, 0x6dc2, 0x6dc3, 0x6dc8, 0x6dc9, 0x6dca, - /* 0x9c */ - 0x6dcd, 0x6dce, 0x6dcf, 0x6dd0, 0x6dd2, 0x6dd3, 0x6dd4, 0x6dd5, - 0x6dd7, 0x6dda, 0x6ddb, 0x6ddc, 0x6ddf, 0x6de2, 0x6de3, 0x6de5, - 0x6de7, 0x6de8, 0x6de9, 0x6dea, 0x6ded, 0x6def, 0x6df0, 0x6df2, - 0x6df4, 0x6df5, 0x6df6, 0x6df8, 0x6dfa, 0x6dfd, 0x6dfe, 0x6dff, - 0x6e00, 0x6e01, 0x6e02, 0x6e03, 0x6e04, 0x6e06, 0x6e07, 0x6e08, - 0x6e09, 0x6e0b, 0x6e0f, 0x6e12, 0x6e13, 0x6e15, 0x6e18, 0x6e19, - 0x6e1b, 0x6e1c, 0x6e1e, 0x6e1f, 0x6e22, 0x6e26, 0x6e27, 0x6e28, - 0x6e2a, 0x6e2c, 0x6e2e, 0x6e30, 0x6e31, 0x6e33, 0x6e35, 0x6e36, - 0x6e37, 0x6e39, 0x6e3b, 0x6e3c, 0x6e3d, 0x6e3e, 0x6e3f, 0x6e40, - 0x6e41, 0x6e42, 0x6e45, 0x6e46, 0x6e47, 0x6e48, 0x6e49, 0x6e4a, - 0x6e4b, 0x6e4c, 0x6e4f, 0x6e50, 0x6e51, 0x6e52, 0x6e55, 0x6e57, - 0x6e59, 0x6e5a, 0x6e5c, 0x6e5d, 0x6e5e, 0x6e60, 0x6e61, 0x6e62, - 0x6e63, 0x6e64, 0x6e65, 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, - 0x6e6c, 0x6e6d, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e73, 0x6e74, - 0x6e75, 0x6e76, 0x6e77, 0x6e78, 0x6e79, 0x6e7a, 0x6e7b, 0x6e7c, - 0x6e7d, 0x6e80, 0x6e81, 0x6e82, 0x6e84, 0x6e87, 0x6e88, 0x6e8a, - 0x6e8b, 0x6e8c, 0x6e8d, 0x6e8e, 0x6e91, 0x6e92, 0x6e93, 0x6e94, - 0x6e95, 0x6e96, 0x6e97, 0x6e99, 0x6e9a, 0x6e9b, 0x6e9d, 0x6e9e, - 0x6ea0, 0x6ea1, 0x6ea3, 0x6ea4, 0x6ea6, 0x6ea8, 0x6ea9, 0x6eab, - 0x6eac, 0x6ead, 0x6eae, 0x6eb0, 0x6eb3, 0x6eb5, 0x6eb8, 0x6eb9, - 0x6ebc, 0x6ebe, 0x6ebf, 0x6ec0, 0x6ec3, 0x6ec4, 0x6ec5, 0x6ec6, - 0x6ec8, 0x6ec9, 0x6eca, 0x6ecc, 0x6ecd, 0x6ece, 0x6ed0, 0x6ed2, - 0x6ed6, 0x6ed8, 0x6ed9, 0x6edb, 0x6edc, 0x6edd, 0x6ee3, 0x6ee7, - 0x6eea, 0x6eeb, 0x6eec, 0x6eed, 0x6eee, 0x6eef, - /* 0x9d */ - 0x6ef0, 0x6ef1, 0x6ef2, 0x6ef3, 0x6ef5, 0x6ef6, 0x6ef7, 0x6ef8, - 0x6efa, 0x6efb, 0x6efc, 0x6efd, 0x6efe, 0x6eff, 0x6f00, 0x6f01, - 0x6f03, 0x6f04, 0x6f05, 0x6f07, 0x6f08, 0x6f0a, 0x6f0b, 0x6f0c, - 0x6f0d, 0x6f0e, 0x6f10, 0x6f11, 0x6f12, 0x6f16, 0x6f17, 0x6f18, - 0x6f19, 0x6f1a, 0x6f1b, 0x6f1c, 0x6f1d, 0x6f1e, 0x6f1f, 0x6f21, - 0x6f22, 0x6f23, 0x6f25, 0x6f26, 0x6f27, 0x6f28, 0x6f2c, 0x6f2e, - 0x6f30, 0x6f32, 0x6f34, 0x6f35, 0x6f37, 0x6f38, 0x6f39, 0x6f3a, - 0x6f3b, 0x6f3c, 0x6f3d, 0x6f3f, 0x6f40, 0x6f41, 0x6f42, 0x6f43, - 0x6f44, 0x6f45, 0x6f48, 0x6f49, 0x6f4a, 0x6f4c, 0x6f4e, 0x6f4f, - 0x6f50, 0x6f51, 0x6f52, 0x6f53, 0x6f54, 0x6f55, 0x6f56, 0x6f57, - 0x6f59, 0x6f5a, 0x6f5b, 0x6f5d, 0x6f5f, 0x6f60, 0x6f61, 0x6f63, - 0x6f64, 0x6f65, 0x6f67, 0x6f68, 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, - 0x6f6f, 0x6f70, 0x6f71, 0x6f73, 0x6f75, 0x6f76, 0x6f77, 0x6f79, - 0x6f7b, 0x6f7d, 0x6f7e, 0x6f7f, 0x6f80, 0x6f81, 0x6f82, 0x6f83, - 0x6f85, 0x6f86, 0x6f87, 0x6f8a, 0x6f8b, 0x6f8f, 0x6f90, 0x6f91, - 0x6f92, 0x6f93, 0x6f94, 0x6f95, 0x6f96, 0x6f97, 0x6f98, 0x6f99, - 0x6f9a, 0x6f9b, 0x6f9d, 0x6f9e, 0x6f9f, 0x6fa0, 0x6fa2, 0x6fa3, - 0x6fa4, 0x6fa5, 0x6fa6, 0x6fa8, 0x6fa9, 0x6faa, 0x6fab, 0x6fac, - 0x6fad, 0x6fae, 0x6faf, 0x6fb0, 0x6fb1, 0x6fb2, 0x6fb4, 0x6fb5, - 0x6fb7, 0x6fb8, 0x6fba, 0x6fbb, 0x6fbc, 0x6fbd, 0x6fbe, 0x6fbf, - 0x6fc1, 0x6fc3, 0x6fc4, 0x6fc5, 0x6fc6, 0x6fc7, 0x6fc8, 0x6fca, - 0x6fcb, 0x6fcc, 0x6fcd, 0x6fce, 0x6fcf, 0x6fd0, 0x6fd3, 0x6fd4, - 0x6fd5, 0x6fd6, 0x6fd7, 0x6fd8, 0x6fd9, 0x6fda, 0x6fdb, 0x6fdc, - 0x6fdd, 0x6fdf, 0x6fe2, 0x6fe3, 0x6fe4, 0x6fe5, - /* 0x9e */ - 0x6fe6, 0x6fe7, 0x6fe8, 0x6fe9, 0x6fea, 0x6feb, 0x6fec, 0x6fed, - 0x6ff0, 0x6ff1, 0x6ff2, 0x6ff3, 0x6ff4, 0x6ff5, 0x6ff6, 0x6ff7, - 0x6ff8, 0x6ff9, 0x6ffa, 0x6ffb, 0x6ffc, 0x6ffd, 0x6ffe, 0x6fff, - 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, - 0x7008, 0x7009, 0x700a, 0x700b, 0x700c, 0x700d, 0x700e, 0x700f, - 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, - 0x7019, 0x701c, 0x701d, 0x701e, 0x701f, 0x7020, 0x7021, 0x7022, - 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702a, 0x702b, - 0x702c, 0x702d, 0x702e, 0x702f, 0x7030, 0x7031, 0x7032, 0x7033, - 0x7034, 0x7036, 0x7037, 0x7038, 0x703a, 0x703b, 0x703c, 0x703d, - 0x703e, 0x703f, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, 0x7045, - 0x7046, 0x7047, 0x7048, 0x7049, 0x704a, 0x704b, 0x704d, 0x704e, - 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, 0x7057, - 0x7058, 0x7059, 0x705a, 0x705b, 0x705c, 0x705d, 0x705f, 0x7060, - 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, 0x7068, - 0x7069, 0x706a, 0x706e, 0x7071, 0x7072, 0x7073, 0x7074, 0x7077, - 0x7079, 0x707a, 0x707b, 0x707d, 0x7081, 0x7082, 0x7083, 0x7084, - 0x7086, 0x7087, 0x7088, 0x708b, 0x708c, 0x708d, 0x708f, 0x7090, - 0x7091, 0x7093, 0x7097, 0x7098, 0x709a, 0x709b, 0x709e, 0x709f, - 0x70a0, 0x70a1, 0x70a2, 0x70a3, 0x70a4, 0x70a5, 0x70a6, 0x70a7, - 0x70a8, 0x70a9, 0x70aa, 0x70b0, 0x70b2, 0x70b4, 0x70b5, 0x70b6, - 0x70ba, 0x70be, 0x70bf, 0x70c4, 0x70c5, 0x70c6, 0x70c7, 0x70c9, - 0x70cb, 0x70cc, 0x70cd, 0x70ce, 0x70cf, 0x70d0, 0x70d1, 0x70d2, - 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d7, 0x70da, - /* 0x9f */ - 0x70dc, 0x70dd, 0x70de, 0x70e0, 0x70e1, 0x70e2, 0x70e3, 0x70e5, - 0x70ea, 0x70ee, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5, - 0x70f6, 0x70f8, 0x70fa, 0x70fb, 0x70fc, 0x70fe, 0x70ff, 0x7100, - 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, - 0x710b, 0x710c, 0x710d, 0x710e, 0x710f, 0x7111, 0x7112, 0x7114, - 0x7117, 0x711b, 0x711c, 0x711d, 0x711e, 0x711f, 0x7120, 0x7121, - 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712a, - 0x712b, 0x712c, 0x712d, 0x712e, 0x7132, 0x7133, 0x7134, 0x7135, - 0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713c, 0x713d, 0x713e, - 0x713f, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, 0x7147, - 0x7148, 0x7149, 0x714b, 0x714d, 0x714f, 0x7150, 0x7151, 0x7152, - 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, 0x715a, - 0x715b, 0x715d, 0x715f, 0x7160, 0x7161, 0x7162, 0x7163, 0x7165, - 0x7169, 0x716a, 0x716b, 0x716c, 0x716d, 0x716f, 0x7170, 0x7171, - 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717b, 0x717c, 0x717e, - 0x717f, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, 0x7187, - 0x7188, 0x7189, 0x718b, 0x718c, 0x718d, 0x718e, 0x7190, 0x7191, - 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719a, 0x719b, 0x719c, - 0x719d, 0x719e, 0x71a1, 0x71a2, 0x71a3, 0x71a4, 0x71a5, 0x71a6, - 0x71a7, 0x71a9, 0x71aa, 0x71ab, 0x71ad, 0x71ae, 0x71af, 0x71b0, - 0x71b1, 0x71b2, 0x71b4, 0x71b6, 0x71b7, 0x71b8, 0x71ba, 0x71bb, - 0x71bc, 0x71bd, 0x71be, 0x71bf, 0x71c0, 0x71c1, 0x71c2, 0x71c4, - 0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 0x71ca, 0x71cb, 0x71cc, - 0x71cd, 0x71cf, 0x71d0, 0x71d1, 0x71d2, 0x71d3, - /* 0xa0 */ - 0x71d6, 0x71d7, 0x71d8, 0x71d9, 0x71da, 0x71db, 0x71dc, 0x71dd, - 0x71de, 0x71df, 0x71e1, 0x71e2, 0x71e3, 0x71e4, 0x71e6, 0x71e8, - 0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ed, 0x71ef, 0x71f0, 0x71f1, - 0x71f2, 0x71f3, 0x71f4, 0x71f5, 0x71f6, 0x71f7, 0x71f8, 0x71fa, - 0x71fb, 0x71fc, 0x71fd, 0x71fe, 0x71ff, 0x7200, 0x7201, 0x7202, - 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720a, 0x720b, - 0x720c, 0x720d, 0x720e, 0x720f, 0x7210, 0x7211, 0x7212, 0x7213, - 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721a, 0x721b, - 0x721c, 0x721e, 0x721f, 0x7220, 0x7221, 0x7222, 0x7223, 0x7224, - 0x7225, 0x7226, 0x7227, 0x7229, 0x722b, 0x722d, 0x722e, 0x722f, - 0x7232, 0x7233, 0x7234, 0x723a, 0x723c, 0x723e, 0x7240, 0x7241, - 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724a, 0x724b, - 0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, 0x7257, - 0x7258, 0x725a, 0x725c, 0x725e, 0x7260, 0x7263, 0x7264, 0x7265, - 0x7268, 0x726a, 0x726b, 0x726c, 0x726d, 0x7270, 0x7271, 0x7273, - 0x7274, 0x7276, 0x7277, 0x7278, 0x727b, 0x727c, 0x727d, 0x7282, - 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728c, 0x728e, - 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, 0x7298, - 0x7299, 0x729a, 0x729b, 0x729c, 0x729d, 0x729e, 0x72a0, 0x72a1, - 0x72a2, 0x72a3, 0x72a4, 0x72a5, 0x72a6, 0x72a7, 0x72a8, 0x72a9, - 0x72aa, 0x72ab, 0x72ae, 0x72b1, 0x72b2, 0x72b3, 0x72b5, 0x72ba, - 0x72bb, 0x72bc, 0x72bd, 0x72be, 0x72bf, 0x72c0, 0x72c5, 0x72c6, - 0x72c7, 0x72c9, 0x72ca, 0x72cb, 0x72cc, 0x72cf, 0x72d1, 0x72d3, - 0x72d4, 0x72d5, 0x72d6, 0x72d8, 0x72da, 0x72db, -}; - -static int -gbkext1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x81 && c1 <= 0xa0)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xff)) { - unsigned int i = 190 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); - unsigned short wc = 0xfffd; - { - if (i < 6080) - wc = gbkext1_2uni_page81[i]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/gbkext2.h b/jni/parted/libiconv/lib/gbkext2.h deleted file mode 100755 index af19aa5..0000000 --- a/jni/parted/libiconv/lib/gbkext2.h +++ /dev/null @@ -1,1173 +0,0 @@ -/* - * Copyright (C) 1999-2000, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GBK/4 and GBK/5 extensions - */ - -static const unsigned short gbkext2_2uni_pagea8[8272] = { - /* 0xa8 */ - 0x02ca, 0x02cb, 0x02d9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, - 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221f, 0x2223, - 0x2252, 0x2266, 0x2267, 0x22bf, 0x2550, 0x2551, 0x2552, 0x2553, - 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, - 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, - 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, - 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, - 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x2588, - 0x2589, 0x258a, 0x258b, 0x258c, 0x258d, 0x258e, 0x258f, 0x2593, - 0x2594, 0x2595, 0x25bc, 0x25bd, 0x25e2, 0x25e3, 0x25e4, 0x25e5, - 0x2609, 0x2295, 0x3012, 0x301d, 0x301e, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xa9 */ - 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, - 0x3029, 0x32a3, 0x338e, 0x338f, 0x339c, 0x339d, 0x339e, 0x33a1, - 0x33c4, 0x33ce, 0x33d1, 0x33d2, 0x33d5, 0xfe30, 0xffe2, 0xffe4, - 0xfffd, 0x2121, 0x3231, 0xfffd, 0x2010, 0xfffd, 0xfffd, 0xfffd, - 0x30fc, 0x309b, 0x309c, 0x30fd, 0x30fe, 0x3006, 0x309d, 0x309e, - 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50, - 0xfe51, 0xfe52, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe59, 0xfe5a, - 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0xfe62, - 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x3007, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xaa */ - 0x72dc, 0x72dd, 0x72df, 0x72e2, 0x72e3, 0x72e4, 0x72e5, 0x72e6, - 0x72e7, 0x72ea, 0x72eb, 0x72f5, 0x72f6, 0x72f9, 0x72fd, 0x72fe, - 0x72ff, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, - 0x7309, 0x730b, 0x730c, 0x730d, 0x730f, 0x7310, 0x7311, 0x7312, - 0x7314, 0x7318, 0x7319, 0x731a, 0x731f, 0x7320, 0x7323, 0x7324, - 0x7326, 0x7327, 0x7328, 0x732d, 0x732f, 0x7330, 0x7332, 0x7333, - 0x7335, 0x7336, 0x733a, 0x733b, 0x733c, 0x733d, 0x7340, 0x7341, - 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x7349, - 0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7351, 0x7353, 0x7354, - 0x7355, 0x7356, 0x7358, 0x7359, 0x735a, 0x735b, 0x735c, 0x735d, - 0x735e, 0x735f, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366, - 0x7367, 0x7368, 0x7369, 0x736a, 0x736b, 0x736e, 0x7370, 0x7371, - /* 0xab */ - 0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, - 0x737a, 0x737b, 0x737c, 0x737d, 0x737f, 0x7380, 0x7381, 0x7382, - 0x7383, 0x7385, 0x7386, 0x7388, 0x738a, 0x738c, 0x738d, 0x738f, - 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, - 0x739a, 0x739c, 0x739d, 0x739e, 0x73a0, 0x73a1, 0x73a3, 0x73a4, - 0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73aa, 0x73ac, 0x73ad, 0x73b1, - 0x73b4, 0x73b5, 0x73b6, 0x73b8, 0x73b9, 0x73bc, 0x73bd, 0x73be, - 0x73bf, 0x73c1, 0x73c3, 0x73c4, 0x73c5, 0x73c6, 0x73c7, 0x73cb, - 0x73cc, 0x73ce, 0x73d2, 0x73d3, 0x73d4, 0x73d5, 0x73d6, 0x73d7, - 0x73d8, 0x73da, 0x73db, 0x73dc, 0x73dd, 0x73df, 0x73e1, 0x73e2, - 0x73e3, 0x73e4, 0x73e6, 0x73e8, 0x73ea, 0x73eb, 0x73ec, 0x73ee, - 0x73ef, 0x73f0, 0x73f1, 0x73f3, 0x73f4, 0x73f5, 0x73f6, 0x73f7, - /* 0xac */ - 0x73f8, 0x73f9, 0x73fa, 0x73fb, 0x73fc, 0x73fd, 0x73fe, 0x73ff, - 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740b, 0x740c, - 0x740d, 0x740e, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, - 0x7417, 0x7418, 0x7419, 0x741c, 0x741d, 0x741e, 0x741f, 0x7420, - 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742b, 0x742d, 0x742f, - 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743a, 0x743b, 0x743d, - 0x743e, 0x743f, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, - 0x7447, 0x7448, 0x7449, 0x744a, 0x744b, 0x744c, 0x744d, 0x744e, - 0x744f, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, 0x7458, - 0x745d, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, 0x7466, - 0x7467, 0x7468, 0x7469, 0x746a, 0x746b, 0x746c, 0x746e, 0x746f, - 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, 0x747a, - /* 0xad */ - 0x747b, 0x747c, 0x747d, 0x747f, 0x7482, 0x7484, 0x7485, 0x7486, - 0x7488, 0x7489, 0x748a, 0x748c, 0x748d, 0x748f, 0x7491, 0x7492, - 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749a, - 0x749b, 0x749d, 0x749f, 0x74a0, 0x74a1, 0x74a2, 0x74a3, 0x74a4, - 0x74a5, 0x74a6, 0x74aa, 0x74ab, 0x74ac, 0x74ad, 0x74ae, 0x74af, - 0x74b0, 0x74b1, 0x74b2, 0x74b3, 0x74b4, 0x74b5, 0x74b6, 0x74b7, - 0x74b8, 0x74b9, 0x74bb, 0x74bc, 0x74bd, 0x74be, 0x74bf, 0x74c0, - 0x74c1, 0x74c2, 0x74c3, 0x74c4, 0x74c5, 0x74c6, 0x74c7, 0x74c8, - 0x74c9, 0x74ca, 0x74cb, 0x74cc, 0x74cd, 0x74ce, 0x74cf, 0x74d0, - 0x74d1, 0x74d3, 0x74d4, 0x74d5, 0x74d6, 0x74d7, 0x74d8, 0x74d9, - 0x74da, 0x74db, 0x74dd, 0x74df, 0x74e1, 0x74e5, 0x74e7, 0x74e8, - 0x74e9, 0x74ea, 0x74eb, 0x74ec, 0x74ed, 0x74f0, 0x74f1, 0x74f2, - /* 0xae */ - 0x74f3, 0x74f5, 0x74f8, 0x74f9, 0x74fa, 0x74fb, 0x74fc, 0x74fd, - 0x74fe, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, - 0x7508, 0x7509, 0x750a, 0x750b, 0x750c, 0x750e, 0x7510, 0x7512, - 0x7514, 0x7515, 0x7516, 0x7517, 0x751b, 0x751d, 0x751e, 0x7520, - 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752a, 0x752e, - 0x7534, 0x7536, 0x7539, 0x753c, 0x753d, 0x753f, 0x7541, 0x7542, - 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754a, 0x754d, 0x7550, - 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x755d, - 0x755e, 0x755f, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, 0x7567, - 0x7568, 0x7569, 0x756b, 0x756c, 0x756d, 0x756e, 0x756f, 0x7570, - 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757a, 0x757b, 0x757c, - 0x757d, 0x757e, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, 0x7587, - /* 0xaf */ - 0x7588, 0x7589, 0x758a, 0x758c, 0x758d, 0x758e, 0x7590, 0x7593, - 0x7595, 0x7598, 0x759b, 0x759c, 0x759e, 0x75a2, 0x75a6, 0x75a7, - 0x75a8, 0x75a9, 0x75aa, 0x75ad, 0x75b6, 0x75b7, 0x75ba, 0x75bb, - 0x75bf, 0x75c0, 0x75c1, 0x75c6, 0x75cb, 0x75cc, 0x75ce, 0x75cf, - 0x75d0, 0x75d1, 0x75d3, 0x75d7, 0x75d9, 0x75da, 0x75dc, 0x75dd, - 0x75df, 0x75e0, 0x75e1, 0x75e5, 0x75e9, 0x75ec, 0x75ed, 0x75ee, - 0x75ef, 0x75f2, 0x75f3, 0x75f5, 0x75f6, 0x75f7, 0x75f8, 0x75fa, - 0x75fb, 0x75fd, 0x75fe, 0x7602, 0x7604, 0x7606, 0x7607, 0x7608, - 0x7609, 0x760b, 0x760d, 0x760e, 0x760f, 0x7611, 0x7612, 0x7613, - 0x7614, 0x7616, 0x761a, 0x761c, 0x761d, 0x761e, 0x7621, 0x7623, - 0x7627, 0x7628, 0x762c, 0x762e, 0x762f, 0x7631, 0x7632, 0x7636, - 0x7637, 0x7639, 0x763a, 0x763b, 0x763d, 0x7641, 0x7642, 0x7644, - /* 0xb0 */ - 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764a, 0x764b, 0x764e, - 0x764f, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, - 0x7659, 0x765a, 0x765b, 0x765d, 0x765f, 0x7660, 0x7661, 0x7662, - 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766a, 0x766c, - 0x766d, 0x766e, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, - 0x7676, 0x7677, 0x7679, 0x767a, 0x767c, 0x767f, 0x7680, 0x7681, - 0x7683, 0x7685, 0x7689, 0x768a, 0x768c, 0x768d, 0x768f, 0x7690, - 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x769c, - 0x769d, 0x769e, 0x769f, 0x76a0, 0x76a1, 0x76a2, 0x76a3, 0x76a5, - 0x76a6, 0x76a7, 0x76a8, 0x76a9, 0x76aa, 0x76ab, 0x76ac, 0x76ad, - 0x76af, 0x76b0, 0x76b3, 0x76b5, 0x76b6, 0x76b7, 0x76b8, 0x76b9, - 0x76ba, 0x76bb, 0x76bc, 0x76bd, 0x76be, 0x76c0, 0x76c1, 0x76c3, - /* 0xb1 */ - 0x76c4, 0x76c7, 0x76c9, 0x76cb, 0x76cc, 0x76d3, 0x76d5, 0x76d9, - 0x76da, 0x76dc, 0x76dd, 0x76de, 0x76e0, 0x76e1, 0x76e2, 0x76e3, - 0x76e4, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 0x76ea, 0x76eb, 0x76ec, - 0x76ed, 0x76f0, 0x76f3, 0x76f5, 0x76f6, 0x76f7, 0x76fa, 0x76fb, - 0x76fd, 0x76ff, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770a, - 0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, - 0x7715, 0x7716, 0x7717, 0x7718, 0x771b, 0x771c, 0x771d, 0x771e, - 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772a, 0x772b, 0x772c, - 0x772e, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, 0x773b, - 0x773d, 0x773e, 0x773f, 0x7742, 0x7744, 0x7745, 0x7746, 0x7748, - 0x7749, 0x774a, 0x774b, 0x774c, 0x774d, 0x774e, 0x774f, 0x7752, - 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775c, - /* 0xb2 */ - 0x775d, 0x775e, 0x775f, 0x7760, 0x7764, 0x7767, 0x7769, 0x776a, - 0x776d, 0x776e, 0x776f, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, - 0x7775, 0x7776, 0x7777, 0x7778, 0x777a, 0x777b, 0x777c, 0x7781, - 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778a, 0x778b, - 0x778f, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, - 0x7799, 0x779a, 0x779b, 0x779c, 0x779d, 0x779e, 0x77a1, 0x77a3, - 0x77a4, 0x77a6, 0x77a8, 0x77ab, 0x77ad, 0x77ae, 0x77af, 0x77b1, - 0x77b2, 0x77b4, 0x77b6, 0x77b7, 0x77b8, 0x77b9, 0x77ba, 0x77bc, - 0x77be, 0x77c0, 0x77c1, 0x77c2, 0x77c3, 0x77c4, 0x77c5, 0x77c6, - 0x77c7, 0x77c8, 0x77c9, 0x77ca, 0x77cb, 0x77cc, 0x77ce, 0x77cf, - 0x77d0, 0x77d1, 0x77d2, 0x77d3, 0x77d4, 0x77d5, 0x77d6, 0x77d8, - 0x77d9, 0x77da, 0x77dd, 0x77de, 0x77df, 0x77e0, 0x77e1, 0x77e4, - /* 0xb3 */ - 0x77e6, 0x77e8, 0x77ea, 0x77ef, 0x77f0, 0x77f1, 0x77f2, 0x77f4, - 0x77f5, 0x77f7, 0x77f9, 0x77fa, 0x77fb, 0x77fc, 0x7803, 0x7804, - 0x7805, 0x7806, 0x7807, 0x7808, 0x780a, 0x780b, 0x780e, 0x780f, - 0x7810, 0x7813, 0x7815, 0x7819, 0x781b, 0x781e, 0x7820, 0x7821, - 0x7822, 0x7824, 0x7828, 0x782a, 0x782b, 0x782e, 0x782f, 0x7831, - 0x7832, 0x7833, 0x7835, 0x7836, 0x783d, 0x783f, 0x7841, 0x7842, - 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784a, 0x784b, 0x784d, - 0x784f, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785a, 0x785b, - 0x785c, 0x785e, 0x785f, 0x7860, 0x7861, 0x7862, 0x7863, 0x7864, - 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786f, 0x7870, 0x7871, - 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, 0x787a, - 0x787b, 0x787d, 0x787e, 0x787f, 0x7880, 0x7881, 0x7882, 0x7883, - /* 0xb4 */ - 0x7884, 0x7885, 0x7886, 0x7888, 0x788a, 0x788b, 0x788f, 0x7890, - 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789d, 0x789e, 0x78a0, - 0x78a2, 0x78a4, 0x78a6, 0x78a8, 0x78a9, 0x78aa, 0x78ab, 0x78ac, - 0x78ad, 0x78ae, 0x78af, 0x78b5, 0x78b6, 0x78b7, 0x78b8, 0x78ba, - 0x78bb, 0x78bc, 0x78bd, 0x78bf, 0x78c0, 0x78c2, 0x78c3, 0x78c4, - 0x78c6, 0x78c7, 0x78c8, 0x78cc, 0x78cd, 0x78ce, 0x78cf, 0x78d1, - 0x78d2, 0x78d3, 0x78d6, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dc, - 0x78dd, 0x78de, 0x78df, 0x78e0, 0x78e1, 0x78e2, 0x78e3, 0x78e4, - 0x78e5, 0x78e6, 0x78e7, 0x78e9, 0x78ea, 0x78eb, 0x78ed, 0x78ee, - 0x78ef, 0x78f0, 0x78f1, 0x78f3, 0x78f5, 0x78f6, 0x78f8, 0x78f9, - 0x78fb, 0x78fc, 0x78fd, 0x78fe, 0x78ff, 0x7900, 0x7902, 0x7903, - 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790a, 0x790b, 0x790c, - /* 0xb5 */ - 0x790d, 0x790e, 0x790f, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, - 0x7916, 0x7917, 0x7918, 0x7919, 0x791a, 0x791b, 0x791c, 0x791d, - 0x791f, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, - 0x7928, 0x7929, 0x792a, 0x792b, 0x792c, 0x792d, 0x792e, 0x792f, - 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, - 0x7939, 0x793d, 0x793f, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, - 0x794a, 0x794b, 0x794c, 0x794d, 0x794e, 0x794f, 0x7950, 0x7951, - 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x7964, - 0x7966, 0x7969, 0x796a, 0x796b, 0x796c, 0x796e, 0x7970, 0x7971, - 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797b, 0x797c, - 0x797d, 0x797e, 0x797f, 0x7982, 0x7983, 0x7986, 0x7987, 0x7988, - 0x7989, 0x798b, 0x798c, 0x798d, 0x798e, 0x7990, 0x7991, 0x7992, - /* 0xb6 */ - 0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799b, - 0x799c, 0x799d, 0x799e, 0x799f, 0x79a0, 0x79a1, 0x79a2, 0x79a3, - 0x79a4, 0x79a5, 0x79a6, 0x79a8, 0x79a9, 0x79aa, 0x79ab, 0x79ac, - 0x79ad, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b2, 0x79b4, 0x79b5, - 0x79b6, 0x79b7, 0x79b8, 0x79bc, 0x79bf, 0x79c2, 0x79c4, 0x79c5, - 0x79c7, 0x79c8, 0x79ca, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d3, - 0x79d4, 0x79d6, 0x79d7, 0x79d9, 0x79da, 0x79db, 0x79dc, 0x79dd, - 0x79de, 0x79e0, 0x79e1, 0x79e2, 0x79e5, 0x79e8, 0x79ea, 0x79ec, - 0x79ee, 0x79f1, 0x79f2, 0x79f3, 0x79f4, 0x79f5, 0x79f6, 0x79f7, - 0x79f9, 0x79fa, 0x79fc, 0x79fe, 0x79ff, 0x7a01, 0x7a04, 0x7a05, - 0x7a07, 0x7a08, 0x7a09, 0x7a0a, 0x7a0c, 0x7a0f, 0x7a10, 0x7a11, - 0x7a12, 0x7a13, 0x7a15, 0x7a16, 0x7a18, 0x7a19, 0x7a1b, 0x7a1c, - /* 0xb7 */ - 0x7a1d, 0x7a1f, 0x7a21, 0x7a22, 0x7a24, 0x7a25, 0x7a26, 0x7a27, - 0x7a28, 0x7a29, 0x7a2a, 0x7a2b, 0x7a2c, 0x7a2d, 0x7a2e, 0x7a2f, - 0x7a30, 0x7a31, 0x7a32, 0x7a34, 0x7a35, 0x7a36, 0x7a38, 0x7a3a, - 0x7a3e, 0x7a40, 0x7a41, 0x7a42, 0x7a43, 0x7a44, 0x7a45, 0x7a47, - 0x7a48, 0x7a49, 0x7a4a, 0x7a4b, 0x7a4c, 0x7a4d, 0x7a4e, 0x7a4f, - 0x7a50, 0x7a52, 0x7a53, 0x7a54, 0x7a55, 0x7a56, 0x7a58, 0x7a59, - 0x7a5a, 0x7a5b, 0x7a5c, 0x7a5d, 0x7a5e, 0x7a5f, 0x7a60, 0x7a61, - 0x7a62, 0x7a63, 0x7a64, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x7a69, - 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x7a6e, 0x7a6f, 0x7a71, 0x7a72, - 0x7a73, 0x7a75, 0x7a7b, 0x7a7c, 0x7a7d, 0x7a7e, 0x7a82, 0x7a85, - 0x7a87, 0x7a89, 0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, 0x7a90, - 0x7a93, 0x7a94, 0x7a99, 0x7a9a, 0x7a9b, 0x7a9e, 0x7aa1, 0x7aa2, - /* 0xb8 */ - 0x7aa3, 0x7aa4, 0x7aa7, 0x7aa9, 0x7aaa, 0x7aab, 0x7aae, 0x7aaf, - 0x7ab0, 0x7ab1, 0x7ab2, 0x7ab4, 0x7ab5, 0x7ab6, 0x7ab7, 0x7ab8, - 0x7ab9, 0x7aba, 0x7abb, 0x7abc, 0x7abd, 0x7abe, 0x7ac0, 0x7ac1, - 0x7ac2, 0x7ac3, 0x7ac4, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9, - 0x7aca, 0x7acc, 0x7acd, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad2, - 0x7ad3, 0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7adc, - 0x7add, 0x7ae1, 0x7ae2, 0x7ae4, 0x7ae7, 0x7ae8, 0x7ae9, 0x7aea, - 0x7aeb, 0x7aec, 0x7aee, 0x7af0, 0x7af1, 0x7af2, 0x7af3, 0x7af4, - 0x7af5, 0x7af6, 0x7af7, 0x7af8, 0x7afb, 0x7afc, 0x7afe, 0x7b00, - 0x7b01, 0x7b02, 0x7b05, 0x7b07, 0x7b09, 0x7b0c, 0x7b0d, 0x7b0e, - 0x7b10, 0x7b12, 0x7b13, 0x7b16, 0x7b17, 0x7b18, 0x7b1a, 0x7b1c, - 0x7b1d, 0x7b1f, 0x7b21, 0x7b22, 0x7b23, 0x7b27, 0x7b29, 0x7b2d, - /* 0xb9 */ - 0x7b2f, 0x7b30, 0x7b32, 0x7b34, 0x7b35, 0x7b36, 0x7b37, 0x7b39, - 0x7b3b, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44, - 0x7b46, 0x7b48, 0x7b4a, 0x7b4d, 0x7b4e, 0x7b53, 0x7b55, 0x7b57, - 0x7b59, 0x7b5c, 0x7b5e, 0x7b5f, 0x7b61, 0x7b63, 0x7b64, 0x7b65, - 0x7b66, 0x7b67, 0x7b68, 0x7b69, 0x7b6a, 0x7b6b, 0x7b6c, 0x7b6d, - 0x7b6f, 0x7b70, 0x7b73, 0x7b74, 0x7b76, 0x7b78, 0x7b7a, 0x7b7c, - 0x7b7d, 0x7b7f, 0x7b81, 0x7b82, 0x7b83, 0x7b84, 0x7b86, 0x7b87, - 0x7b88, 0x7b89, 0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x7b91, - 0x7b92, 0x7b93, 0x7b96, 0x7b98, 0x7b99, 0x7b9a, 0x7b9b, 0x7b9e, - 0x7b9f, 0x7ba0, 0x7ba3, 0x7ba4, 0x7ba5, 0x7bae, 0x7baf, 0x7bb0, - 0x7bb2, 0x7bb3, 0x7bb5, 0x7bb6, 0x7bb7, 0x7bb9, 0x7bba, 0x7bbb, - 0x7bbc, 0x7bbd, 0x7bbe, 0x7bbf, 0x7bc0, 0x7bc2, 0x7bc3, 0x7bc4, - /* 0xba */ - 0x7bc5, 0x7bc8, 0x7bc9, 0x7bca, 0x7bcb, 0x7bcd, 0x7bce, 0x7bcf, - 0x7bd0, 0x7bd2, 0x7bd4, 0x7bd5, 0x7bd6, 0x7bd7, 0x7bd8, 0x7bdb, - 0x7bdc, 0x7bde, 0x7bdf, 0x7be0, 0x7be2, 0x7be3, 0x7be4, 0x7be7, - 0x7be8, 0x7be9, 0x7beb, 0x7bec, 0x7bed, 0x7bef, 0x7bf0, 0x7bf2, - 0x7bf3, 0x7bf4, 0x7bf5, 0x7bf6, 0x7bf8, 0x7bf9, 0x7bfa, 0x7bfb, - 0x7bfd, 0x7bff, 0x7c00, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c05, - 0x7c06, 0x7c08, 0x7c09, 0x7c0a, 0x7c0d, 0x7c0e, 0x7c10, 0x7c11, - 0x7c12, 0x7c13, 0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c19, 0x7c1a, - 0x7c1b, 0x7c1c, 0x7c1d, 0x7c1e, 0x7c20, 0x7c21, 0x7c22, 0x7c23, - 0x7c24, 0x7c25, 0x7c28, 0x7c29, 0x7c2b, 0x7c2c, 0x7c2d, 0x7c2e, - 0x7c2f, 0x7c30, 0x7c31, 0x7c32, 0x7c33, 0x7c34, 0x7c35, 0x7c36, - 0x7c37, 0x7c39, 0x7c3a, 0x7c3b, 0x7c3c, 0x7c3d, 0x7c3e, 0x7c42, - /* 0xbb */ - 0x7c43, 0x7c44, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 0x7c4a, - 0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c52, 0x7c53, - 0x7c54, 0x7c55, 0x7c56, 0x7c57, 0x7c58, 0x7c59, 0x7c5a, 0x7c5b, - 0x7c5c, 0x7c5d, 0x7c5e, 0x7c5f, 0x7c60, 0x7c61, 0x7c62, 0x7c63, - 0x7c64, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 0x7c6a, 0x7c6b, - 0x7c6c, 0x7c6d, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c72, 0x7c75, - 0x7c76, 0x7c77, 0x7c78, 0x7c79, 0x7c7a, 0x7c7e, 0x7c7f, 0x7c80, - 0x7c81, 0x7c82, 0x7c83, 0x7c84, 0x7c85, 0x7c86, 0x7c87, 0x7c88, - 0x7c8a, 0x7c8b, 0x7c8c, 0x7c8d, 0x7c8e, 0x7c8f, 0x7c90, 0x7c93, - 0x7c94, 0x7c96, 0x7c99, 0x7c9a, 0x7c9b, 0x7ca0, 0x7ca1, 0x7ca3, - 0x7ca6, 0x7ca7, 0x7ca8, 0x7ca9, 0x7cab, 0x7cac, 0x7cad, 0x7caf, - 0x7cb0, 0x7cb4, 0x7cb5, 0x7cb6, 0x7cb7, 0x7cb8, 0x7cba, 0x7cbb, - /* 0xbc */ - 0x7cbf, 0x7cc0, 0x7cc2, 0x7cc3, 0x7cc4, 0x7cc6, 0x7cc9, 0x7ccb, - 0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd2, 0x7cd3, 0x7cd4, 0x7cd8, - 0x7cda, 0x7cdb, 0x7cdd, 0x7cde, 0x7ce1, 0x7ce2, 0x7ce3, 0x7ce4, - 0x7ce5, 0x7ce6, 0x7ce7, 0x7ce9, 0x7cea, 0x7ceb, 0x7cec, 0x7ced, - 0x7cee, 0x7cf0, 0x7cf1, 0x7cf2, 0x7cf3, 0x7cf4, 0x7cf5, 0x7cf6, - 0x7cf7, 0x7cf9, 0x7cfa, 0x7cfc, 0x7cfd, 0x7cfe, 0x7cff, 0x7d00, - 0x7d01, 0x7d02, 0x7d03, 0x7d04, 0x7d05, 0x7d06, 0x7d07, 0x7d08, - 0x7d09, 0x7d0b, 0x7d0c, 0x7d0d, 0x7d0e, 0x7d0f, 0x7d10, 0x7d11, - 0x7d12, 0x7d13, 0x7d14, 0x7d15, 0x7d16, 0x7d17, 0x7d18, 0x7d19, - 0x7d1a, 0x7d1b, 0x7d1c, 0x7d1d, 0x7d1e, 0x7d1f, 0x7d21, 0x7d23, - 0x7d24, 0x7d25, 0x7d26, 0x7d28, 0x7d29, 0x7d2a, 0x7d2c, 0x7d2d, - 0x7d2e, 0x7d30, 0x7d31, 0x7d32, 0x7d33, 0x7d34, 0x7d35, 0x7d36, - /* 0xbd */ - 0x7d37, 0x7d38, 0x7d39, 0x7d3a, 0x7d3b, 0x7d3c, 0x7d3d, 0x7d3e, - 0x7d3f, 0x7d40, 0x7d41, 0x7d42, 0x7d43, 0x7d44, 0x7d45, 0x7d46, - 0x7d47, 0x7d48, 0x7d49, 0x7d4a, 0x7d4b, 0x7d4c, 0x7d4d, 0x7d4e, - 0x7d4f, 0x7d50, 0x7d51, 0x7d52, 0x7d53, 0x7d54, 0x7d55, 0x7d56, - 0x7d57, 0x7d58, 0x7d59, 0x7d5a, 0x7d5b, 0x7d5c, 0x7d5d, 0x7d5e, - 0x7d5f, 0x7d60, 0x7d61, 0x7d62, 0x7d63, 0x7d64, 0x7d65, 0x7d66, - 0x7d67, 0x7d68, 0x7d69, 0x7d6a, 0x7d6b, 0x7d6c, 0x7d6d, 0x7d6f, - 0x7d70, 0x7d71, 0x7d72, 0x7d73, 0x7d74, 0x7d75, 0x7d76, 0x7d78, - 0x7d79, 0x7d7a, 0x7d7b, 0x7d7c, 0x7d7d, 0x7d7e, 0x7d7f, 0x7d80, - 0x7d81, 0x7d82, 0x7d83, 0x7d84, 0x7d85, 0x7d86, 0x7d87, 0x7d88, - 0x7d89, 0x7d8a, 0x7d8b, 0x7d8c, 0x7d8d, 0x7d8e, 0x7d8f, 0x7d90, - 0x7d91, 0x7d92, 0x7d93, 0x7d94, 0x7d95, 0x7d96, 0x7d97, 0x7d98, - /* 0xbe */ - 0x7d99, 0x7d9a, 0x7d9b, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0, - 0x7da1, 0x7da2, 0x7da3, 0x7da4, 0x7da5, 0x7da7, 0x7da8, 0x7da9, - 0x7daa, 0x7dab, 0x7dac, 0x7dad, 0x7daf, 0x7db0, 0x7db1, 0x7db2, - 0x7db3, 0x7db4, 0x7db5, 0x7db6, 0x7db7, 0x7db8, 0x7db9, 0x7dba, - 0x7dbb, 0x7dbc, 0x7dbd, 0x7dbe, 0x7dbf, 0x7dc0, 0x7dc1, 0x7dc2, - 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 0x7dca, - 0x7dcb, 0x7dcc, 0x7dcd, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd2, - 0x7dd3, 0x7dd4, 0x7dd5, 0x7dd6, 0x7dd7, 0x7dd8, 0x7dd9, 0x7dda, - 0x7ddb, 0x7ddc, 0x7ddd, 0x7dde, 0x7ddf, 0x7de0, 0x7de1, 0x7de2, - 0x7de3, 0x7de4, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, 0x7dea, - 0x7deb, 0x7dec, 0x7ded, 0x7dee, 0x7def, 0x7df0, 0x7df1, 0x7df2, - 0x7df3, 0x7df4, 0x7df5, 0x7df6, 0x7df7, 0x7df8, 0x7df9, 0x7dfa, - /* 0xbf */ - 0x7dfb, 0x7dfc, 0x7dfd, 0x7dfe, 0x7dff, 0x7e00, 0x7e01, 0x7e02, - 0x7e03, 0x7e04, 0x7e05, 0x7e06, 0x7e07, 0x7e08, 0x7e09, 0x7e0a, - 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, 0x7e10, 0x7e11, 0x7e12, - 0x7e13, 0x7e14, 0x7e15, 0x7e16, 0x7e17, 0x7e18, 0x7e19, 0x7e1a, - 0x7e1b, 0x7e1c, 0x7e1d, 0x7e1e, 0x7e1f, 0x7e20, 0x7e21, 0x7e22, - 0x7e23, 0x7e24, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 0x7e2a, - 0x7e2b, 0x7e2c, 0x7e2d, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e32, - 0x7e33, 0x7e34, 0x7e35, 0x7e36, 0x7e37, 0x7e38, 0x7e39, 0x7e3a, - 0x7e3c, 0x7e3d, 0x7e3e, 0x7e3f, 0x7e40, 0x7e42, 0x7e43, 0x7e44, - 0x7e45, 0x7e46, 0x7e48, 0x7e49, 0x7e4a, 0x7e4b, 0x7e4c, 0x7e4d, - 0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e52, 0x7e53, 0x7e54, 0x7e55, - 0x7e56, 0x7e57, 0x7e58, 0x7e59, 0x7e5a, 0x7e5b, 0x7e5c, 0x7e5d, - /* 0xc0 */ - 0x7e5e, 0x7e5f, 0x7e60, 0x7e61, 0x7e62, 0x7e63, 0x7e64, 0x7e65, - 0x7e66, 0x7e67, 0x7e68, 0x7e69, 0x7e6a, 0x7e6b, 0x7e6c, 0x7e6d, - 0x7e6e, 0x7e6f, 0x7e70, 0x7e71, 0x7e72, 0x7e73, 0x7e74, 0x7e75, - 0x7e76, 0x7e77, 0x7e78, 0x7e79, 0x7e7a, 0x7e7b, 0x7e7c, 0x7e7d, - 0x7e7e, 0x7e7f, 0x7e80, 0x7e81, 0x7e83, 0x7e84, 0x7e85, 0x7e86, - 0x7e87, 0x7e88, 0x7e89, 0x7e8a, 0x7e8b, 0x7e8c, 0x7e8d, 0x7e8e, - 0x7e8f, 0x7e90, 0x7e91, 0x7e92, 0x7e93, 0x7e94, 0x7e95, 0x7e96, - 0x7e97, 0x7e98, 0x7e99, 0x7e9a, 0x7e9c, 0x7e9d, 0x7e9e, 0x7eae, - 0x7eb4, 0x7ebb, 0x7ebc, 0x7ed6, 0x7ee4, 0x7eec, 0x7ef9, 0x7f0a, - 0x7f10, 0x7f1e, 0x7f37, 0x7f39, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, - 0x7f3f, 0x7f40, 0x7f41, 0x7f43, 0x7f46, 0x7f47, 0x7f48, 0x7f49, - 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f, 0x7f52, 0x7f53, - /* 0xc1 */ - 0x7f56, 0x7f59, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f60, 0x7f63, - 0x7f64, 0x7f65, 0x7f66, 0x7f67, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6f, - 0x7f70, 0x7f73, 0x7f75, 0x7f76, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b, - 0x7f7c, 0x7f7d, 0x7f7f, 0x7f80, 0x7f82, 0x7f83, 0x7f84, 0x7f85, - 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0x7f8b, 0x7f8d, 0x7f8f, 0x7f90, - 0x7f91, 0x7f92, 0x7f93, 0x7f95, 0x7f96, 0x7f97, 0x7f98, 0x7f99, - 0x7f9b, 0x7f9c, 0x7fa0, 0x7fa2, 0x7fa3, 0x7fa5, 0x7fa6, 0x7fa8, - 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7fb1, 0x7fb3, - 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7, 0x7fba, 0x7fbb, 0x7fbe, 0x7fc0, - 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc6, 0x7fc7, 0x7fc8, 0x7fc9, 0x7fcb, - 0x7fcd, 0x7fcf, 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd6, 0x7fd7, - 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fe2, 0x7fe3, - /* 0xc2 */ - 0x7fe4, 0x7fe7, 0x7fe8, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fef, - 0x7ff2, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffa, - 0x7ffd, 0x7ffe, 0x7fff, 0x8002, 0x8007, 0x8008, 0x8009, 0x800a, - 0x800e, 0x800f, 0x8011, 0x8013, 0x801a, 0x801b, 0x801d, 0x801e, - 0x801f, 0x8021, 0x8023, 0x8024, 0x802b, 0x802c, 0x802d, 0x802e, - 0x802f, 0x8030, 0x8032, 0x8034, 0x8039, 0x803a, 0x803c, 0x803e, - 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804e, - 0x804f, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x8059, - 0x805b, 0x805c, 0x805d, 0x805e, 0x805f, 0x8060, 0x8061, 0x8062, - 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806b, 0x806c, - 0x806d, 0x806e, 0x806f, 0x8070, 0x8072, 0x8073, 0x8074, 0x8075, - 0x8076, 0x8077, 0x8078, 0x8079, 0x807a, 0x807b, 0x807c, 0x807d, - /* 0xc3 */ - 0x807e, 0x8081, 0x8082, 0x8085, 0x8088, 0x808a, 0x808d, 0x808e, - 0x808f, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, - 0x809e, 0x80a3, 0x80a6, 0x80a7, 0x80a8, 0x80ac, 0x80b0, 0x80b3, - 0x80b5, 0x80b6, 0x80b8, 0x80b9, 0x80bb, 0x80c5, 0x80c7, 0x80c8, - 0x80c9, 0x80ca, 0x80cb, 0x80cf, 0x80d0, 0x80d1, 0x80d2, 0x80d3, - 0x80d4, 0x80d5, 0x80d8, 0x80df, 0x80e0, 0x80e2, 0x80e3, 0x80e6, - 0x80ee, 0x80f5, 0x80f7, 0x80f9, 0x80fb, 0x80fe, 0x80ff, 0x8100, - 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810b, 0x810c, - 0x8115, 0x8117, 0x8119, 0x811b, 0x811c, 0x811d, 0x811f, 0x8120, - 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, 0x8128, - 0x8129, 0x812a, 0x812b, 0x812d, 0x812e, 0x8130, 0x8133, 0x8134, - 0x8135, 0x8137, 0x8139, 0x813a, 0x813b, 0x813c, 0x813d, 0x813f, - /* 0xc4 */ - 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, - 0x814d, 0x814e, 0x814f, 0x8152, 0x8156, 0x8157, 0x8158, 0x815b, - 0x815c, 0x815d, 0x815e, 0x815f, 0x8161, 0x8162, 0x8163, 0x8164, - 0x8166, 0x8168, 0x816a, 0x816b, 0x816c, 0x816f, 0x8172, 0x8173, - 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, - 0x8186, 0x8187, 0x8189, 0x818b, 0x818c, 0x818d, 0x818e, 0x8190, - 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819a, - 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0x81a4, 0x81a5, 0x81a7, - 0x81a9, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, - 0x81b2, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81bc, - 0x81bd, 0x81be, 0x81bf, 0x81c4, 0x81c5, 0x81c7, 0x81c8, 0x81c9, - 0x81cb, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, 0x81d3, - /* 0xc5 */ - 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db, - 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e4, - 0x81e5, 0x81e6, 0x81e8, 0x81e9, 0x81eb, 0x81ee, 0x81ef, 0x81f0, - 0x81f1, 0x81f2, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, - 0x81fd, 0x81ff, 0x8203, 0x8207, 0x8208, 0x8209, 0x820a, 0x820b, - 0x820e, 0x820f, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, - 0x8219, 0x821a, 0x821d, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, - 0x8229, 0x822e, 0x8232, 0x823a, 0x823c, 0x823d, 0x823f, 0x8240, - 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824a, 0x824c, - 0x824d, 0x824e, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, - 0x8256, 0x8257, 0x8259, 0x825b, 0x825c, 0x825d, 0x825e, 0x8260, - 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8269, - /* 0xc6 */ - 0x826a, 0x826b, 0x826c, 0x826d, 0x8271, 0x8275, 0x8276, 0x8277, - 0x8278, 0x827b, 0x827c, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, - 0x8287, 0x8289, 0x828c, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, - 0x829a, 0x829b, 0x829e, 0x82a0, 0x82a2, 0x82a3, 0x82a7, 0x82b2, - 0x82b5, 0x82b6, 0x82ba, 0x82bb, 0x82bc, 0x82bf, 0x82c0, 0x82c2, - 0x82c3, 0x82c5, 0x82c6, 0x82c9, 0x82d0, 0x82d6, 0x82d9, 0x82da, - 0x82dd, 0x82e2, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82ec, 0x82ed, - 0x82ee, 0x82f0, 0x82f2, 0x82f3, 0x82f5, 0x82f6, 0x82f8, 0x82fa, - 0x82fc, 0x82fd, 0x82fe, 0x82ff, 0x8300, 0x830a, 0x830b, 0x830d, - 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831d, 0x831e, - 0x831f, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, - 0x8329, 0x832a, 0x832e, 0x8330, 0x8332, 0x8337, 0x833b, 0x833d, - /* 0xc7 */ - 0x833e, 0x833f, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834a, - 0x834b, 0x834c, 0x834d, 0x834e, 0x8353, 0x8355, 0x8356, 0x8357, - 0x8358, 0x8359, 0x835d, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, - 0x8374, 0x8375, 0x8376, 0x8379, 0x837a, 0x837e, 0x837f, 0x8380, - 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838a, 0x838b, - 0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, - 0x8397, 0x8399, 0x839a, 0x839d, 0x839f, 0x83a1, 0x83a2, 0x83a3, - 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83ac, 0x83ad, 0x83ae, 0x83af, - 0x83b5, 0x83bb, 0x83be, 0x83bf, 0x83c2, 0x83c3, 0x83c4, 0x83c6, - 0x83c8, 0x83c9, 0x83cb, 0x83cd, 0x83ce, 0x83d0, 0x83d1, 0x83d2, - 0x83d3, 0x83d5, 0x83d7, 0x83d9, 0x83da, 0x83db, 0x83de, 0x83e2, - 0x83e3, 0x83e4, 0x83e6, 0x83e7, 0x83e8, 0x83eb, 0x83ec, 0x83ed, - /* 0xc8 */ - 0x83ee, 0x83ef, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83fa, - 0x83fb, 0x83fc, 0x83fe, 0x83ff, 0x8400, 0x8402, 0x8405, 0x8407, - 0x8408, 0x8409, 0x840a, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, - 0x8416, 0x8417, 0x8419, 0x841a, 0x841b, 0x841e, 0x841f, 0x8420, - 0x8421, 0x8422, 0x8423, 0x8429, 0x842a, 0x842b, 0x842c, 0x842d, - 0x842e, 0x842f, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, - 0x8437, 0x8439, 0x843a, 0x843b, 0x843e, 0x843f, 0x8440, 0x8441, - 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a, - 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8452, 0x8453, - 0x8454, 0x8455, 0x8456, 0x8458, 0x845d, 0x845e, 0x845f, 0x8460, - 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846a, 0x846e, - 0x846f, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847b, 0x847c, - /* 0xc9 */ - 0x847d, 0x847e, 0x847f, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, - 0x8486, 0x848a, 0x848d, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493, - 0x8494, 0x8495, 0x8496, 0x8498, 0x849a, 0x849b, 0x849d, 0x849e, - 0x849f, 0x84a0, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, - 0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84b0, - 0x84b1, 0x84b3, 0x84b5, 0x84b6, 0x84b7, 0x84bb, 0x84bc, 0x84be, - 0x84c0, 0x84c2, 0x84c3, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84cb, - 0x84cc, 0x84ce, 0x84cf, 0x84d2, 0x84d4, 0x84d5, 0x84d7, 0x84d8, - 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84de, 0x84e1, 0x84e2, 0x84e4, - 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ed, 0x84ee, 0x84ef, - 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, - 0x84f9, 0x84fa, 0x84fb, 0x84fd, 0x84fe, 0x8500, 0x8501, 0x8502, - /* 0xca */ - 0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850a, - 0x850b, 0x850d, 0x850e, 0x850f, 0x8510, 0x8512, 0x8514, 0x8515, - 0x8516, 0x8518, 0x8519, 0x851b, 0x851c, 0x851d, 0x851e, 0x8520, - 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, - 0x852a, 0x852d, 0x852e, 0x852f, 0x8530, 0x8531, 0x8532, 0x8533, - 0x8534, 0x8535, 0x8536, 0x853e, 0x853f, 0x8540, 0x8541, 0x8542, - 0x8544, 0x8545, 0x8546, 0x8547, 0x854b, 0x854c, 0x854d, 0x854e, - 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x8557, - 0x8558, 0x855a, 0x855b, 0x855c, 0x855d, 0x855f, 0x8560, 0x8561, - 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856a, 0x856b, - 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, 0x8575, - 0x8576, 0x8577, 0x8578, 0x857c, 0x857d, 0x857f, 0x8580, 0x8581, - /* 0xcb */ - 0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858a, 0x858b, 0x858c, - 0x858d, 0x858e, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, - 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859d, 0x859e, 0x859f, - 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a5, 0x85a6, 0x85a7, 0x85a9, - 0x85ab, 0x85ac, 0x85ad, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, - 0x85b6, 0x85b8, 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, - 0x85c0, 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, - 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85d1, 0x85d2, 0x85d4, - 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dd, 0x85de, - 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e5, 0x85e6, 0x85e7, - 0x85e8, 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, - 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, - /* 0xcc */ - 0x85f9, 0x85fa, 0x85fc, 0x85fd, 0x85fe, 0x8600, 0x8601, 0x8602, - 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860a, 0x860b, - 0x860c, 0x860d, 0x860e, 0x860f, 0x8610, 0x8612, 0x8613, 0x8614, - 0x8615, 0x8617, 0x8618, 0x8619, 0x861a, 0x861b, 0x861c, 0x861d, - 0x861e, 0x861f, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, - 0x8626, 0x8628, 0x862a, 0x862b, 0x862c, 0x862d, 0x862e, 0x862f, - 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, - 0x8639, 0x863a, 0x863b, 0x863d, 0x863e, 0x863f, 0x8640, 0x8641, - 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, - 0x864a, 0x864b, 0x864c, 0x8652, 0x8653, 0x8655, 0x8656, 0x8657, - 0x8658, 0x8659, 0x865b, 0x865c, 0x865d, 0x865f, 0x8660, 0x8661, - 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, - /* 0xcd */ - 0x866d, 0x866f, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, - 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, - 0x8689, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, - 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869e, 0x869f, 0x86a0, - 0x86a1, 0x86a2, 0x86a5, 0x86a6, 0x86ab, 0x86ad, 0x86ae, 0x86b2, - 0x86b3, 0x86b7, 0x86b8, 0x86b9, 0x86bb, 0x86bc, 0x86bd, 0x86be, - 0x86bf, 0x86c1, 0x86c2, 0x86c3, 0x86c5, 0x86c8, 0x86cc, 0x86cd, - 0x86d2, 0x86d3, 0x86d5, 0x86d6, 0x86d7, 0x86da, 0x86dc, 0x86dd, - 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e5, 0x86e6, 0x86e7, 0x86e8, - 0x86ea, 0x86eb, 0x86ec, 0x86ef, 0x86f5, 0x86f6, 0x86f7, 0x86fa, - 0x86fb, 0x86fc, 0x86fd, 0x86ff, 0x8701, 0x8704, 0x8705, 0x8706, - 0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8714, 0x8716, - /* 0xce */ - 0x8719, 0x871b, 0x871d, 0x871f, 0x8720, 0x8724, 0x8726, 0x8727, - 0x8728, 0x872a, 0x872b, 0x872c, 0x872d, 0x872f, 0x8730, 0x8732, - 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873a, 0x873c, 0x873d, - 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874a, - 0x874b, 0x874d, 0x874f, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, - 0x8756, 0x8758, 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f, - 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, - 0x876c, 0x876d, 0x876f, 0x8771, 0x8772, 0x8773, 0x8775, 0x8777, - 0x8778, 0x8779, 0x877a, 0x877f, 0x8780, 0x8781, 0x8784, 0x8786, - 0x8787, 0x8789, 0x878a, 0x878c, 0x878e, 0x878f, 0x8790, 0x8791, - 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879a, 0x879b, - 0x879c, 0x879d, 0x879e, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, - /* 0xcf */ - 0x87a5, 0x87a6, 0x87a7, 0x87a9, 0x87aa, 0x87ae, 0x87b0, 0x87b1, - 0x87b2, 0x87b4, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87bb, 0x87bc, - 0x87be, 0x87bf, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c7, - 0x87c8, 0x87c9, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d4, - 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87dc, 0x87dd, - 0x87de, 0x87df, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e6, 0x87e7, - 0x87e8, 0x87e9, 0x87eb, 0x87ec, 0x87ed, 0x87ef, 0x87f0, 0x87f1, - 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87fa, - 0x87fb, 0x87fc, 0x87fd, 0x87ff, 0x8800, 0x8801, 0x8802, 0x8804, - 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880b, 0x880c, 0x880d, - 0x880e, 0x880f, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, 0x8818, - 0x8819, 0x881a, 0x881c, 0x881d, 0x881e, 0x881f, 0x8820, 0x8823, - /* 0xd0 */ - 0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882a, 0x882b, - 0x882c, 0x882d, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 0x8834, - 0x8835, 0x8836, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883e, - 0x883f, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, - 0x884a, 0x884b, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853, - 0x8855, 0x8856, 0x8858, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, - 0x885f, 0x8860, 0x8866, 0x8867, 0x886a, 0x886d, 0x886f, 0x8871, - 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887a, 0x887b, - 0x887c, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888a, 0x888c, - 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, 0x8897, - 0x8898, 0x8899, 0x889a, 0x889b, 0x889d, 0x889e, 0x889f, 0x88a0, - 0x88a1, 0x88a3, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 0x88aa, - /* 0xd1 */ - 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b2, 0x88b3, 0x88b4, 0x88b5, - 0x88b6, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bd, 0x88be, 0x88bf, - 0x88c0, 0x88c3, 0x88c4, 0x88c7, 0x88c8, 0x88ca, 0x88cb, 0x88cc, - 0x88cd, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d6, 0x88d7, 0x88da, - 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88e0, 0x88e1, 0x88e6, 0x88e7, - 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f2, - 0x88f5, 0x88f6, 0x88f7, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 0x8900, - 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x8909, - 0x890b, 0x890c, 0x890d, 0x890e, 0x890f, 0x8911, 0x8914, 0x8915, - 0x8916, 0x8917, 0x8918, 0x891c, 0x891d, 0x891e, 0x891f, 0x8920, - 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, 0x892c, - 0x892d, 0x892e, 0x892f, 0x8931, 0x8932, 0x8933, 0x8935, 0x8937, - /* 0xd2 */ - 0x8938, 0x8939, 0x893a, 0x893b, 0x893c, 0x893d, 0x893e, 0x893f, - 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, - 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, - 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, - 0x895a, 0x895b, 0x895c, 0x895d, 0x8960, 0x8961, 0x8962, 0x8963, - 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, - 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, - 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897c, 0x897d, - 0x897e, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, 0x8989, - 0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, - 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, - 0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, - /* 0xd3 */ - 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, - 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, - 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, - 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c3, - 0x89cd, 0x89d3, 0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89d9, 0x89db, - 0x89dd, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e4, 0x89e7, 0x89e8, - 0x89e9, 0x89ea, 0x89ec, 0x89ed, 0x89ee, 0x89f0, 0x89f1, 0x89f2, - 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x89fb, - 0x89fc, 0x89fd, 0x89fe, 0x89ff, 0x8a01, 0x8a02, 0x8a03, 0x8a04, - 0x8a05, 0x8a06, 0x8a08, 0x8a09, 0x8a0a, 0x8a0b, 0x8a0c, 0x8a0d, - 0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15, - 0x8a16, 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a1b, 0x8a1c, 0x8a1d, - /* 0xd4 */ - 0x8a1e, 0x8a1f, 0x8a20, 0x8a21, 0x8a22, 0x8a23, 0x8a24, 0x8a25, - 0x8a26, 0x8a27, 0x8a28, 0x8a29, 0x8a2a, 0x8a2b, 0x8a2c, 0x8a2d, - 0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a32, 0x8a33, 0x8a34, 0x8a35, - 0x8a36, 0x8a37, 0x8a38, 0x8a39, 0x8a3a, 0x8a3b, 0x8a3c, 0x8a3d, - 0x8a3f, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46, - 0x8a47, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, - 0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, - 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, - 0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67, - 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, - 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, - 0x8a78, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8a7f, 0x8a80, - /* 0xd5 */ - 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0x8a86, 0x8a87, 0x8a88, - 0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, - 0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, - 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, - 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, - 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, - 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, - 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, - 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, - 0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, - 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, - 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, - /* 0xd6 */ - 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, - 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, - 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, - 0x8afc, 0x8afd, 0x8afe, 0x8aff, 0x8b00, 0x8b01, 0x8b02, 0x8b03, - 0x8b04, 0x8b05, 0x8b06, 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b0c, - 0x8b0d, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14, - 0x8b15, 0x8b16, 0x8b17, 0x8b18, 0x8b19, 0x8b1a, 0x8b1b, 0x8b1c, - 0x8b1d, 0x8b1e, 0x8b1f, 0x8b20, 0x8b21, 0x8b22, 0x8b23, 0x8b24, - 0x8b25, 0x8b27, 0x8b28, 0x8b29, 0x8b2a, 0x8b2b, 0x8b2c, 0x8b2d, - 0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b32, 0x8b33, 0x8b34, 0x8b35, - 0x8b36, 0x8b37, 0x8b38, 0x8b39, 0x8b3a, 0x8b3b, 0x8b3c, 0x8b3d, - 0x8b3e, 0x8b3f, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, - /* 0xd7 */ - 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, - 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, - 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, - 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, - 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6d, 0x8b6e, 0x8b6f, - 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, - 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8b7f, - 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x8b87, - 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, 0x8b8f, - 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, 0x8b97, - 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, 0x8b9f, - 0x8bac, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bd0, 0x8bea, 0x8c09, 0x8c1e, - /* 0xd8 */ - 0x8c38, 0x8c39, 0x8c3a, 0x8c3b, 0x8c3c, 0x8c3d, 0x8c3e, 0x8c3f, - 0x8c40, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c48, 0x8c4a, 0x8c4b, - 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, - 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, - 0x8c5f, 0x8c60, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68, - 0x8c69, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72, - 0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, - 0x8c7f, 0x8c80, 0x8c81, 0x8c83, 0x8c84, 0x8c86, 0x8c87, 0x8c88, - 0x8c8b, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, - 0x8c95, 0x8c96, 0x8c97, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, - 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, - 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, - /* 0xd9 */ - 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, - 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, - 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, - 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, - 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, - 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, - 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, - 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, - 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, - 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, - 0x8cfe, 0x8cff, 0x8d00, 0x8d01, 0x8d02, 0x8d03, 0x8d04, 0x8d05, - 0x8d06, 0x8d07, 0x8d08, 0x8d09, 0x8d0a, 0x8d0b, 0x8d0c, 0x8d0d, - /* 0xda */ - 0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15, - 0x8d16, 0x8d17, 0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d20, - 0x8d51, 0x8d52, 0x8d57, 0x8d5f, 0x8d65, 0x8d68, 0x8d69, 0x8d6a, - 0x8d6c, 0x8d6e, 0x8d6f, 0x8d71, 0x8d72, 0x8d78, 0x8d79, 0x8d7a, - 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d7f, 0x8d80, 0x8d82, 0x8d83, - 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, - 0x8d90, 0x8d92, 0x8d93, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, - 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8da0, 0x8da1, 0x8da2, - 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, - 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db2, 0x8db6, 0x8db7, - 0x8db9, 0x8dbb, 0x8dbd, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc5, 0x8dc7, - 0x8dc8, 0x8dc9, 0x8dca, 0x8dcd, 0x8dd0, 0x8dd2, 0x8dd3, 0x8dd4, - /* 0xdb */ - 0x8dd5, 0x8dd8, 0x8dd9, 0x8ddc, 0x8de0, 0x8de1, 0x8de2, 0x8de5, - 0x8de6, 0x8de7, 0x8de9, 0x8ded, 0x8dee, 0x8df0, 0x8df1, 0x8df2, - 0x8df4, 0x8df6, 0x8dfc, 0x8dfe, 0x8dff, 0x8e00, 0x8e01, 0x8e02, - 0x8e03, 0x8e04, 0x8e06, 0x8e07, 0x8e08, 0x8e0b, 0x8e0d, 0x8e0e, - 0x8e10, 0x8e11, 0x8e12, 0x8e13, 0x8e15, 0x8e16, 0x8e17, 0x8e18, - 0x8e19, 0x8e1a, 0x8e1b, 0x8e1c, 0x8e20, 0x8e21, 0x8e24, 0x8e25, - 0x8e26, 0x8e27, 0x8e28, 0x8e2b, 0x8e2d, 0x8e30, 0x8e32, 0x8e33, - 0x8e34, 0x8e36, 0x8e37, 0x8e38, 0x8e3b, 0x8e3c, 0x8e3e, 0x8e3f, - 0x8e43, 0x8e45, 0x8e46, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, - 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e5a, 0x8e5b, - 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63, - 0x8e64, 0x8e65, 0x8e67, 0x8e68, 0x8e6a, 0x8e6b, 0x8e6e, 0x8e71, - /* 0xdc */ - 0x8e73, 0x8e75, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7d, - 0x8e7e, 0x8e80, 0x8e82, 0x8e83, 0x8e84, 0x8e86, 0x8e88, 0x8e89, - 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e91, 0x8e92, 0x8e93, - 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9d, - 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, - 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8ead, 0x8eae, 0x8eb0, 0x8eb1, - 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8ebb, - 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, - 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, - 0x8ecc, 0x8ecd, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, - 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, - 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, - /* 0xdd */ - 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, - 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, - 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, - 0x8efd, 0x8efe, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x8f03, 0x8f04, - 0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 0x8f0a, 0x8f0b, 0x8f0c, - 0x8f0d, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f12, 0x8f13, 0x8f14, - 0x8f15, 0x8f16, 0x8f17, 0x8f18, 0x8f19, 0x8f1a, 0x8f1b, 0x8f1c, - 0x8f1d, 0x8f1e, 0x8f1f, 0x8f20, 0x8f21, 0x8f22, 0x8f23, 0x8f24, - 0x8f25, 0x8f26, 0x8f27, 0x8f28, 0x8f29, 0x8f2a, 0x8f2b, 0x8f2c, - 0x8f2d, 0x8f2e, 0x8f2f, 0x8f30, 0x8f31, 0x8f32, 0x8f33, 0x8f34, - 0x8f35, 0x8f36, 0x8f37, 0x8f38, 0x8f39, 0x8f3a, 0x8f3b, 0x8f3c, - 0x8f3d, 0x8f3e, 0x8f3f, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, - /* 0xde */ - 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, - 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, - 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, - 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, - 0x8f65, 0x8f6a, 0x8f80, 0x8f8c, 0x8f92, 0x8f9d, 0x8fa0, 0x8fa1, - 0x8fa2, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8faa, 0x8fac, 0x8fad, - 0x8fae, 0x8faf, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8, - 0x8fba, 0x8fbb, 0x8fbc, 0x8fbf, 0x8fc0, 0x8fc3, 0x8fc6, 0x8fc9, - 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fcf, 0x8fd2, 0x8fd6, 0x8fd7, - 0x8fda, 0x8fe0, 0x8fe1, 0x8fe3, 0x8fe7, 0x8fec, 0x8fef, 0x8ff1, - 0x8ff2, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffe, - 0x8fff, 0x9007, 0x9008, 0x900c, 0x900e, 0x9013, 0x9015, 0x9018, - /* 0xdf */ - 0x9019, 0x901c, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, - 0x902a, 0x902b, 0x902c, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, - 0x9037, 0x9039, 0x903a, 0x903d, 0x903f, 0x9040, 0x9043, 0x9045, - 0x9046, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904e, 0x9054, - 0x9055, 0x9056, 0x9059, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f, - 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906a, 0x906b, - 0x906c, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, - 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907e, 0x9081, 0x9084, - 0x9085, 0x9086, 0x9087, 0x9089, 0x908a, 0x908c, 0x908d, 0x908e, - 0x908f, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909a, 0x909c, - 0x909e, 0x909f, 0x90a0, 0x90a4, 0x90a5, 0x90a7, 0x90a8, 0x90a9, - 0x90ab, 0x90ad, 0x90b2, 0x90b7, 0x90bc, 0x90bd, 0x90bf, 0x90c0, - /* 0xe0 */ - 0x90c2, 0x90c3, 0x90c6, 0x90c8, 0x90c9, 0x90cb, 0x90cc, 0x90cd, - 0x90d2, 0x90d4, 0x90d5, 0x90d6, 0x90d8, 0x90d9, 0x90da, 0x90de, - 0x90df, 0x90e0, 0x90e3, 0x90e4, 0x90e5, 0x90e9, 0x90ea, 0x90ec, - 0x90ee, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f5, 0x90f6, 0x90f7, - 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90ff, 0x9100, 0x9101, 0x9103, - 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910a, 0x910b, 0x910c, - 0x910d, 0x910e, 0x910f, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, - 0x9115, 0x9116, 0x9117, 0x9118, 0x911a, 0x911b, 0x911c, 0x911d, - 0x911f, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, 0x9128, - 0x9129, 0x912a, 0x912b, 0x912c, 0x912d, 0x912e, 0x9130, 0x9132, - 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913a, 0x913b, - 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x9141, 0x9142, 0x9144, - /* 0xe1 */ - 0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, - 0x9158, 0x9159, 0x915b, 0x915c, 0x915f, 0x9160, 0x9166, 0x9167, - 0x9168, 0x916b, 0x916d, 0x9173, 0x917a, 0x917b, 0x917c, 0x9180, - 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918a, 0x918e, - 0x918f, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, - 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a4, 0x91a5, - 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91ab, 0x91ac, 0x91b0, 0x91b1, - 0x91b2, 0x91b3, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91bb, 0x91bc, - 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4, - 0x91c5, 0x91c6, 0x91c8, 0x91cb, 0x91d0, 0x91d2, 0x91d3, 0x91d4, - 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dd, - 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5, - /* 0xe2 */ - 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed, - 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5, - 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd, - 0x91fe, 0x91ff, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, - 0x9206, 0x9207, 0x9208, 0x9209, 0x920a, 0x920b, 0x920c, 0x920d, - 0x920e, 0x920f, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, - 0x9216, 0x9217, 0x9218, 0x9219, 0x921a, 0x921b, 0x921c, 0x921d, - 0x921e, 0x921f, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x9225, - 0x9226, 0x9227, 0x9228, 0x9229, 0x922a, 0x922b, 0x922c, 0x922d, - 0x922e, 0x922f, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, 0x9235, - 0x9236, 0x9237, 0x9238, 0x9239, 0x923a, 0x923b, 0x923c, 0x923d, - 0x923e, 0x923f, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, 0x9245, - /* 0xe3 */ - 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d, - 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, - 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, - 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, - 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d, - 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, - 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e, - 0x927f, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286, - 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928f, - 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0x9297, - 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f, - 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, - /* 0xe4 */ - 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92af, 0x92b0, - 0x92b1, 0x92b2, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8, - 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0, - 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c9, - 0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, - 0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, - 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, - 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, - 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, - 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, - 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0x9300, 0x9301, - 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, 0x9309, - /* 0xe5 */ - 0x930a, 0x930b, 0x930c, 0x930d, 0x930e, 0x930f, 0x9310, 0x9311, - 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, - 0x931a, 0x931b, 0x931c, 0x931d, 0x931e, 0x931f, 0x9320, 0x9321, - 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, - 0x932a, 0x932b, 0x932c, 0x932d, 0x932e, 0x932f, 0x9330, 0x9331, - 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, - 0x933a, 0x933b, 0x933c, 0x933d, 0x933f, 0x9340, 0x9341, 0x9342, - 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, - 0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, - 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, - 0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, - 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0x936b, - /* 0xe6 */ - 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, - 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, - 0x937c, 0x937d, 0x937e, 0x937f, 0x9380, 0x9381, 0x9382, 0x9383, - 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, - 0x938c, 0x938d, 0x938e, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, - 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, - 0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, - 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, - 0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, - 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, - 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, - 0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93cb, 0x93cc, 0x93cd, - /* 0xe7 */ - 0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, - 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, - 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, - 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, - 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, - 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, - 0x93ff, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, - 0x9407, 0x9408, 0x9409, 0x940a, 0x940b, 0x940c, 0x940d, 0x940e, - 0x940f, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, 0x9416, - 0x9417, 0x9418, 0x9419, 0x941a, 0x941b, 0x941c, 0x941d, 0x941e, - 0x941f, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, 0x9426, - 0x9427, 0x9428, 0x9429, 0x942a, 0x942b, 0x942c, 0x942d, 0x942e, - /* 0xe8 */ - 0x942f, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, - 0x9437, 0x9438, 0x9439, 0x943a, 0x943b, 0x943c, 0x943d, 0x943f, - 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, - 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, - 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, - 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, - 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, - 0x9468, 0x9469, 0x946a, 0x946c, 0x946d, 0x946e, 0x946f, 0x9470, - 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, - 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x947f, 0x9480, - 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, 0x94c7, - 0x94cf, 0x94d3, 0x94d4, 0x94da, 0x94e6, 0x94fb, 0x951c, 0x9520, - /* 0xe9 */ - 0x9527, 0x9533, 0x953d, 0x9543, 0x9548, 0x954b, 0x9555, 0x955a, - 0x9560, 0x956e, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957a, - 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, 0x9583, - 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b, - 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593, - 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b, - 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3, - 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab, - 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3, - 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb, - 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, 0x95c3, - 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, 0x95cb, - /* 0xea */ - 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3, - 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db, - 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3, - 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95ec, 0x95ff, 0x9607, 0x9613, - 0x9618, 0x961b, 0x961e, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, - 0x9627, 0x9628, 0x9629, 0x962b, 0x962c, 0x962d, 0x962f, 0x9630, - 0x9637, 0x9638, 0x9639, 0x963a, 0x963e, 0x9641, 0x9643, 0x964a, - 0x964e, 0x964f, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x9658, - 0x9659, 0x965a, 0x965c, 0x965d, 0x965e, 0x9660, 0x9663, 0x9665, - 0x9666, 0x966b, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673, - 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, 0x967f, - 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, 0x968a, - /* 0xeb */ - 0x968c, 0x968e, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969a, - 0x969b, 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, - 0x96a4, 0x96a5, 0x96a6, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, - 0x96ad, 0x96ae, 0x96af, 0x96b1, 0x96b2, 0x96b4, 0x96b5, 0x96b7, - 0x96b8, 0x96ba, 0x96bb, 0x96bf, 0x96c2, 0x96c3, 0x96c8, 0x96ca, - 0x96cb, 0x96d0, 0x96d1, 0x96d3, 0x96d4, 0x96d6, 0x96d7, 0x96d8, - 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e1, - 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96eb, 0x96ec, - 0x96ed, 0x96ee, 0x96f0, 0x96f1, 0x96f2, 0x96f4, 0x96f5, 0x96f8, - 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96ff, 0x9702, 0x9703, 0x9705, - 0x970a, 0x970b, 0x970c, 0x9710, 0x9711, 0x9712, 0x9714, 0x9715, - 0x9717, 0x9718, 0x9719, 0x971a, 0x971b, 0x971d, 0x971f, 0x9720, - /* 0xec */ - 0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, - 0x9729, 0x972b, 0x972c, 0x972e, 0x972f, 0x9731, 0x9733, 0x9734, - 0x9735, 0x9736, 0x9737, 0x973a, 0x973b, 0x973c, 0x973d, 0x973f, - 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, - 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, - 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975a, 0x975c, - 0x975d, 0x975f, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976a, - 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, - 0x9775, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977d, 0x977e, - 0x977f, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, 0x9787, - 0x9788, 0x9789, 0x978a, 0x978c, 0x978e, 0x978f, 0x9790, 0x9793, - 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, - /* 0xed */ - 0x979e, 0x979f, 0x97a1, 0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a7, - 0x97a8, 0x97a9, 0x97aa, 0x97ac, 0x97ae, 0x97b0, 0x97b1, 0x97b3, - 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, - 0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, - 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, - 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, - 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, - 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, - 0x97e5, 0x97e8, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f4, - 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe, - 0x97ff, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, 0x9806, - 0x9807, 0x9808, 0x9809, 0x980a, 0x980b, 0x980c, 0x980d, 0x980e, - /* 0xee */ - 0x980f, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, - 0x9817, 0x9818, 0x9819, 0x981a, 0x981b, 0x981c, 0x981d, 0x981e, - 0x981f, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, - 0x9827, 0x9828, 0x9829, 0x982a, 0x982b, 0x982c, 0x982d, 0x982e, - 0x982f, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, - 0x9837, 0x9838, 0x9839, 0x983a, 0x983b, 0x983c, 0x983d, 0x983e, - 0x983f, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, - 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, - 0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, - 0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, - 0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, - 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, - /* 0xef */ - 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988b, 0x988e, - 0x9892, 0x9895, 0x9899, 0x98a3, 0x98a8, 0x98a9, 0x98aa, 0x98ab, - 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, - 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, - 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, - 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, - 0x98cc, 0x98cd, 0x98cf, 0x98d0, 0x98d4, 0x98d6, 0x98d7, 0x98db, - 0x98dc, 0x98dd, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, - 0x98e6, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, - 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, - 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x98ff, - 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, 0x9907, - /* 0xf0 */ - 0x9908, 0x9909, 0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9911, - 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, - 0x991a, 0x991b, 0x991c, 0x991d, 0x991e, 0x991f, 0x9920, 0x9921, - 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, - 0x992a, 0x992b, 0x992c, 0x992d, 0x992f, 0x9930, 0x9931, 0x9932, - 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993a, - 0x993b, 0x993c, 0x993d, 0x993e, 0x993f, 0x9940, 0x9941, 0x9942, - 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x994a, - 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952, - 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c, - 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9964, 0x9966, - 0x9973, 0x9978, 0x9979, 0x997b, 0x997e, 0x9982, 0x9983, 0x9989, - /* 0xf1 */ - 0x998c, 0x998e, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, - 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a6, 0x99a7, 0x99a9, - 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, - 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, - 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, - 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, - 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, - 0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, - 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, - 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, - 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, - 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, - /* 0xf2 */ - 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x99ff, 0x9a00, 0x9a01, - 0x9a02, 0x9a03, 0x9a04, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09, - 0x9a0a, 0x9a0b, 0x9a0c, 0x9a0d, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11, - 0x9a12, 0x9a13, 0x9a14, 0x9a15, 0x9a16, 0x9a17, 0x9a18, 0x9a19, - 0x9a1a, 0x9a1b, 0x9a1c, 0x9a1d, 0x9a1e, 0x9a1f, 0x9a20, 0x9a21, - 0x9a22, 0x9a23, 0x9a24, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29, - 0x9a2a, 0x9a2b, 0x9a2c, 0x9a2d, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31, - 0x9a32, 0x9a33, 0x9a34, 0x9a35, 0x9a36, 0x9a37, 0x9a38, 0x9a39, - 0x9a3a, 0x9a3b, 0x9a3c, 0x9a3d, 0x9a3e, 0x9a3f, 0x9a40, 0x9a41, - 0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, - 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, - 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, - /* 0xf3 */ - 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, - 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, - 0x9a6a, 0x9a6b, 0x9a72, 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a94, - 0x9a95, 0x9a99, 0x9aa6, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, - 0x9aae, 0x9aaf, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab9, 0x9abb, - 0x9abd, 0x9abe, 0x9abf, 0x9ac3, 0x9ac4, 0x9ac6, 0x9ac7, 0x9ac8, - 0x9ac9, 0x9aca, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad2, 0x9ad4, - 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add, - 0x9ade, 0x9ae0, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae7, 0x9ae8, - 0x9ae9, 0x9aea, 0x9aec, 0x9aee, 0x9af0, 0x9af1, 0x9af2, 0x9af3, - 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9afa, 0x9afc, 0x9afd, - 0x9afe, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b04, 0x9b05, 0x9b06, - /* 0xf4 */ - 0x9b07, 0x9b09, 0x9b0a, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, 0x9b10, - 0x9b11, 0x9b12, 0x9b14, 0x9b15, 0x9b16, 0x9b17, 0x9b18, 0x9b19, - 0x9b1a, 0x9b1b, 0x9b1c, 0x9b1d, 0x9b1e, 0x9b20, 0x9b21, 0x9b22, - 0x9b24, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2b, - 0x9b2c, 0x9b2d, 0x9b2e, 0x9b30, 0x9b31, 0x9b33, 0x9b34, 0x9b35, - 0x9b36, 0x9b37, 0x9b38, 0x9b39, 0x9b3a, 0x9b3d, 0x9b3e, 0x9b3f, - 0x9b40, 0x9b46, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b50, 0x9b52, - 0x9b53, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, - 0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, - 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, - 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, - 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, - /* 0xf5 */ - 0x9b7c, 0x9b7d, 0x9b7e, 0x9b7f, 0x9b80, 0x9b81, 0x9b82, 0x9b83, - 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, - 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, - 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, - 0x9b9c, 0x9b9d, 0x9b9e, 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, - 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, - 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, - 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, - 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, - 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, - 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, - 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, - /* 0xf6 */ - 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, - 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, - 0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, - 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, - 0x9bfc, 0x9bfd, 0x9bfe, 0x9bff, 0x9c00, 0x9c01, 0x9c02, 0x9c03, - 0x9c04, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 0x9c0a, 0x9c0b, - 0x9c0c, 0x9c0d, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c12, 0x9c13, - 0x9c14, 0x9c15, 0x9c16, 0x9c17, 0x9c18, 0x9c19, 0x9c1a, 0x9c1b, - 0x9c1c, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, 0x9c23, - 0x9c24, 0x9c25, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c2b, - 0x9c2c, 0x9c2d, 0x9c2e, 0x9c2f, 0x9c30, 0x9c31, 0x9c32, 0x9c33, - 0x9c34, 0x9c35, 0x9c36, 0x9c37, 0x9c38, 0x9c39, 0x9c3a, 0x9c3b, - /* 0xf7 */ - 0x9c3c, 0x9c3d, 0x9c3e, 0x9c3f, 0x9c40, 0x9c41, 0x9c42, 0x9c43, - 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, - 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0x9c53, - 0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, - 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c62, 0x9c63, - 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, - 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73, - 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, - 0x9c7d, 0x9c7e, 0x9c80, 0x9c83, 0x9c84, 0x9c89, 0x9c8a, 0x9c8c, - 0x9c8f, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9c9d, 0x9caa, - 0x9cac, 0x9caf, 0x9cb9, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, - 0x9cc8, 0x9cc9, 0x9cd1, 0x9cd2, 0x9cda, 0x9cdb, 0x9ce0, 0x9ce1, - /* 0xf8 */ - 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, - 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2, - 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, - 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x9d00, 0x9d01, 0x9d02, - 0x9d03, 0x9d04, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 0x9d0a, - 0x9d0b, 0x9d0c, 0x9d0d, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d12, - 0x9d13, 0x9d14, 0x9d15, 0x9d16, 0x9d17, 0x9d18, 0x9d19, 0x9d1a, - 0x9d1b, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d1f, 0x9d20, 0x9d21, 0x9d22, - 0x9d23, 0x9d24, 0x9d25, 0x9d26, 0x9d27, 0x9d28, 0x9d29, 0x9d2a, - 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d31, 0x9d32, - 0x9d33, 0x9d34, 0x9d35, 0x9d36, 0x9d37, 0x9d38, 0x9d39, 0x9d3a, - 0x9d3b, 0x9d3c, 0x9d3d, 0x9d3e, 0x9d3f, 0x9d40, 0x9d41, 0x9d42, - /* 0xf9 */ - 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a, - 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52, - 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, - 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62, - 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, - 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, - 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, - 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x9d82, - 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a, - 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92, - 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a, - 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2, - /* 0xfa */ - 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, - 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, - 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, - 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, - 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, - 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, - 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, - 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2, - 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, - 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2, - 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, - 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9dff, 0x9e00, 0x9e01, 0x9e02, - /* 0xfb */ - 0x9e03, 0x9e04, 0x9e05, 0x9e06, 0x9e07, 0x9e08, 0x9e09, 0x9e0a, - 0x9e0b, 0x9e0c, 0x9e0d, 0x9e0e, 0x9e0f, 0x9e10, 0x9e11, 0x9e12, - 0x9e13, 0x9e14, 0x9e15, 0x9e16, 0x9e17, 0x9e18, 0x9e19, 0x9e1a, - 0x9e1b, 0x9e1c, 0x9e1d, 0x9e1e, 0x9e24, 0x9e27, 0x9e2e, 0x9e30, - 0x9e34, 0x9e3b, 0x9e3c, 0x9e40, 0x9e4d, 0x9e50, 0x9e52, 0x9e53, - 0x9e54, 0x9e56, 0x9e59, 0x9e5d, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, - 0x9e65, 0x9e6e, 0x9e6f, 0x9e72, 0x9e74, 0x9e75, 0x9e76, 0x9e77, - 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e80, 0x9e81, - 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e89, 0x9e8a, 0x9e8c, 0x9e8d, - 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e94, 0x9e95, 0x9e96, 0x9e97, - 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9e, 0x9ea0, 0x9ea1, - 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, - /* 0xfc */ - 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, - 0x9eb3, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb9, 0x9eba, 0x9ebc, 0x9ebf, - 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, - 0x9eca, 0x9ecb, 0x9ecc, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed5, 0x9ed6, - 0x9ed7, 0x9ed9, 0x9eda, 0x9ede, 0x9ee1, 0x9ee3, 0x9ee4, 0x9ee6, - 0x9ee8, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, - 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9efa, 0x9efd, - 0x9eff, 0x9f00, 0x9f01, 0x9f02, 0x9f03, 0x9f04, 0x9f05, 0x9f06, - 0x9f07, 0x9f08, 0x9f09, 0x9f0a, 0x9f0c, 0x9f0f, 0x9f11, 0x9f12, - 0x9f14, 0x9f15, 0x9f16, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1c, 0x9f1d, - 0x9f1e, 0x9f1f, 0x9f21, 0x9f23, 0x9f24, 0x9f25, 0x9f26, 0x9f27, - 0x9f28, 0x9f29, 0x9f2a, 0x9f2b, 0x9f2d, 0x9f2e, 0x9f30, 0x9f31, - /* 0xfd */ - 0x9f32, 0x9f33, 0x9f34, 0x9f35, 0x9f36, 0x9f38, 0x9f3a, 0x9f3c, - 0x9f3f, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f45, 0x9f46, 0x9f47, - 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, - 0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, - 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, - 0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, - 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, - 0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79, - 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f81, 0x9f82, 0x9f8d, - 0x9f8e, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, - 0x9f96, 0x9f97, 0x9f98, 0x9f9c, 0x9f9d, 0x9f9e, 0x9fa1, 0x9fa2, - 0x9fa3, 0x9fa4, 0x9fa5, 0xf92c, 0xf979, 0xf995, 0xf9e7, 0xf9f1, - /* 0xfe */ - 0xfa0c, 0xfa0d, 0xfa0e, 0xfa0f, 0xfa11, 0xfa13, 0xfa14, 0xfa18, - 0xfa1f, 0xfa20, 0xfa21, 0xfa23, 0xfa24, 0xfa27, 0xfa28, 0xfa29, -}; - -static int -gbkext2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0xa8 && c1 <= 0xfe)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0x80 && c2 < 0xa1)) { - unsigned int i = 96 * (c1 - 0x81) + (c2 - (c2 >= 0x80 ? 0x41 : 0x40)); - unsigned short wc = 0xfffd; - { - if (i < 12016) - wc = gbkext2_2uni_pagea8[i-3744]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - diff --git a/jni/parted/libiconv/lib/gbkext_inv.h b/jni/parted/libiconv/lib/gbkext_inv.h deleted file mode 100755 index eeb76e4..0000000 --- a/jni/parted/libiconv/lib/gbkext_inv.h +++ /dev/null @@ -1,2342 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GBK extensions - */ - -static const unsigned short gbkext_inv_2charset[14313] = { - 0xa840, 0xa841, 0xa842, 0xa95c, 0xa843, 0xa844, 0xa845, 0xa846, - 0xa847, 0xa848, 0xa959, 0xa849, 0xa84a, 0xa84b, 0xa84c, 0xa84d, - 0xa84e, 0xa84f, 0xa850, 0xa851, 0xa852, 0xa892, 0xa853, 0xa854, - 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, 0xa85c, - 0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, 0xa864, - 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c, - 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, 0xa874, - 0xa875, 0xa876, 0xa877, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c, - 0xa87d, 0xa87e, 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885, - 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, 0xa88d, - 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa965, 0xa996, 0xa893, 0xa894, - 0xa895, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946, - 0xa947, 0xa948, 0xa961, 0xa962, 0xa966, 0xa967, 0xa960, 0xa963, - 0xa964, 0xa95a, 0xa949, 0xa94a, 0xa94b, 0xa94c, 0xa94d, 0xa94e, - 0xa94f, 0xa950, 0xa951, 0xa952, 0xa953, 0xa954, 0x8140, 0x8141, - 0x8142, 0x8143, 0x8144, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, - 0x814a, 0x814b, 0x814c, 0x814d, 0x814e, 0x814f, 0x8150, 0x8151, - 0x8152, 0x8153, 0x8154, 0x8155, 0x8156, 0x8157, 0x8158, 0x8159, - 0x815a, 0x815b, 0x815c, 0x815d, 0x815e, 0x815f, 0x8160, 0x8161, - 0x8162, 0x8163, 0x8164, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, - 0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171, - 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179, - 0x817a, 0x817b, 0x817c, 0x817d, 0x817e, 0x8180, 0x8181, 0x8182, - 0x8183, 0x8184, 0x8185, 0x8186, 0x8187, 0x8188, 0x8189, 0x818a, - 0x818b, 0x818c, 0x818d, 0x818e, 0x818f, 0x8190, 0x8191, 0x8192, - 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, 0x8199, 0x819a, - 0x819b, 0x819c, 0x819d, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, - 0x81a3, 0x81a4, 0x81a5, 0x81a6, 0x81a7, 0x81a8, 0x81a9, 0x81aa, - 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2, - 0x81b3, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81ba, - 0x81bb, 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2, - 0x81c3, 0x81c4, 0x81c5, 0x81c6, 0x81c7, 0x81c8, 0x81c9, 0x81ca, - 0x81cb, 0x81cc, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, - 0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, - 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, - 0x81e3, 0x81e4, 0x81e5, 0x81e6, 0x81e7, 0x81e8, 0x81e9, 0x81ea, - 0x81eb, 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f2, - 0x81f3, 0x81f4, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, - 0x81fb, 0x81fc, 0x81fd, 0x81fe, 0x8240, 0x8241, 0x8242, 0x8243, - 0x8244, 0x8245, 0x8246, 0x8247, 0x8248, 0x8249, 0x824a, 0x824b, - 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, 0x8252, 0x8253, - 0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8259, 0x825a, 0x825b, - 0x825c, 0x825d, 0x825e, 0x825f, 0x8260, 0x8261, 0x8262, 0x8263, - 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, - 0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, - 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b, - 0x827c, 0x827d, 0x827e, 0x8280, 0x8281, 0x8282, 0x8283, 0x8284, - 0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 0x828a, 0x828b, 0x828c, - 0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0x8292, 0x8293, 0x8294, - 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x829b, 0x829c, - 0x829d, 0x829e, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4, - 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, - 0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, - 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, - 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, - 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, - 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, - 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, - 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, - 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, - 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4, - 0x82f5, 0x82f6, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc, - 0x82fd, 0x82fe, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, - 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, - 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, - 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, - 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, - 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, - 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, - 0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, - 0x837e, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, - 0x8387, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, - 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, - 0x8397, 0x8398, 0x8399, 0x839a, 0x839b, 0x839c, 0x839d, 0x839e, - 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, - 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae, - 0x83af, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6, - 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, 0x83be, - 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6, - 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce, - 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6, - 0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, 0x83de, - 0x83df, 0x83e0, 0x83e1, 0x83e2, 0x83e3, 0x83e4, 0x83e5, 0x83e6, - 0x83e7, 0x83e8, 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0x83ed, 0x83ee, - 0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3, 0x83f4, 0x83f5, 0x83f6, - 0x83f7, 0x83f8, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, - 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8446, 0x8447, - 0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, - 0x8450, 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, - 0x8458, 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, - 0x8460, 0x8461, 0x8462, 0x8463, 0x8464, 0x8465, 0x8466, 0x8467, - 0x8468, 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x846f, - 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0x8477, - 0x8478, 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480, - 0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, - 0x8489, 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490, - 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8497, 0x8498, - 0x8499, 0x849a, 0x849b, 0x849c, 0x849d, 0x849e, 0x849f, 0x84a0, - 0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, - 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0, - 0x84b1, 0x84b2, 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8, - 0x84b9, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0, - 0x84c1, 0x84c2, 0x84c3, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8, - 0x84c9, 0x84ca, 0x84cb, 0x84cc, 0x84cd, 0x84ce, 0x84cf, 0x84d0, - 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6, 0x84d7, 0x84d8, - 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84dd, 0x84de, 0x84df, 0x84e0, - 0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, - 0x84e9, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, - 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, - 0x84f9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0x84fe, 0x8540, 0x8541, - 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0x8548, 0x8549, - 0x854a, 0x854b, 0x854c, 0x854d, 0x854e, 0x854f, 0x8550, 0x8551, - 0x8552, 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, - 0x855a, 0x855b, 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, - 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0x8567, 0x8568, 0x8569, - 0x856a, 0x856b, 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, - 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, 0x8579, - 0x857a, 0x857b, 0x857c, 0x857d, 0x857e, 0x8580, 0x8581, 0x8582, - 0x8583, 0x8584, 0x8585, 0x8586, 0x8587, 0x8588, 0x8589, 0x858a, - 0x858b, 0x858c, 0x858d, 0x858e, 0x858f, 0x8590, 0x8591, 0x8592, - 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, - 0x859b, 0x859c, 0x859d, 0x859e, 0x859f, 0x85a0, 0x85a1, 0x85a2, - 0x85a3, 0x85a4, 0x85a5, 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa, - 0x85ab, 0x85ac, 0x85ad, 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2, - 0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0x85ba, - 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c0, 0x85c1, 0x85c2, - 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85c9, 0x85ca, - 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d2, - 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, - 0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2, - 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85e9, 0x85ea, - 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f2, - 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9, 0x85fa, - 0x85fb, 0x85fc, 0x85fd, 0x85fe, 0x8640, 0x8641, 0x8642, 0x8643, - 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864a, 0x864b, - 0x864c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8652, 0x8653, - 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865a, 0x865b, - 0x865c, 0x865d, 0x865e, 0x865f, 0x8660, 0x8661, 0x8662, 0x8663, - 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x866b, - 0x866c, 0x866d, 0x866e, 0x866f, 0x8670, 0x8671, 0x8672, 0x8673, - 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, 0x867a, 0x867b, - 0x867c, 0x867d, 0x867e, 0x8680, 0x8681, 0x8682, 0x8683, 0x8684, - 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868a, 0x868b, 0x868c, - 0x868d, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8693, 0x8694, - 0x8695, 0x8696, 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869c, - 0x869d, 0x869e, 0x869f, 0x86a0, 0x86a1, 0x86a2, 0x86a3, 0x86a4, - 0x86a5, 0x86a6, 0x86a7, 0x86a8, 0x86a9, 0x86aa, 0x86ab, 0x86ac, - 0x86ad, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b2, 0x86b3, 0x86b4, - 0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, 0x86ba, 0x86bb, 0x86bc, - 0x86bd, 0x86be, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4, - 0x86c5, 0x86c6, 0x86c7, 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc, - 0x86cd, 0x86ce, 0x86cf, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4, - 0x86d5, 0x86d6, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc, - 0x86dd, 0x86de, 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4, - 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0x86ea, 0x86eb, 0x86ec, - 0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0x86f2, 0x86f3, 0x86f4, - 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0x86fa, 0x86fb, 0x86fc, - 0x86fd, 0x86fe, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, - 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d, - 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8754, 0x8755, - 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, 0x875c, 0x875d, - 0x875e, 0x875f, 0x8760, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765, - 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d, - 0x876e, 0x876f, 0x8770, 0x8771, 0x8772, 0x8773, 0x8774, 0x8775, - 0x8776, 0x8777, 0x8778, 0x8779, 0x877a, 0x877b, 0x877c, 0x877d, - 0x877e, 0x8780, 0x8781, 0x8782, 0x8783, 0x8784, 0x8785, 0x8786, - 0x8787, 0x8788, 0x8789, 0x878a, 0x878b, 0x878c, 0x878d, 0x878e, - 0x878f, 0x8790, 0x8791, 0x8792, 0x8793, 0x8794, 0x8795, 0x8796, - 0x8797, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e, - 0x879f, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0x87a5, 0x87a6, - 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae, - 0x87af, 0x87b0, 0x87b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6, - 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be, - 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6, - 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce, - 0x87cf, 0x87d0, 0x87d1, 0x87d2, 0x87d3, 0x87d4, 0x87d5, 0x87d6, - 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0x87dd, 0x87de, - 0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e5, 0x87e6, - 0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, 0x87ed, 0x87ee, - 0x87ef, 0x87f0, 0x87f1, 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, - 0x87f7, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe, - 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847, - 0x8848, 0x8849, 0x884a, 0x884b, 0x884c, 0x884d, 0x884e, 0x884f, - 0x8850, 0x8851, 0x8852, 0x8853, 0x8854, 0x8855, 0x8856, 0x8857, - 0x8858, 0x8859, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, 0x885f, - 0x8860, 0x8861, 0x8862, 0x8863, 0x8864, 0x8865, 0x8866, 0x8867, - 0x8868, 0x8869, 0x886a, 0x886b, 0x886c, 0x886d, 0x886e, 0x886f, - 0x8870, 0x8871, 0x8872, 0x8873, 0x8874, 0x8875, 0x8876, 0x8877, - 0x8878, 0x8879, 0x887a, 0x887b, 0x887c, 0x887d, 0x887e, 0x8880, - 0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888, - 0x8889, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890, - 0x8891, 0x8892, 0x8893, 0x8894, 0x8895, 0x8896, 0x8897, 0x8898, - 0x8899, 0x889a, 0x889b, 0x889c, 0x889d, 0x889e, 0x889f, 0x88a0, - 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8, - 0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0x88b0, - 0x88b1, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, - 0x88b9, 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88be, 0x88bf, 0x88c0, - 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8, - 0x88c9, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0, - 0x88d1, 0x88d2, 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8, - 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0, - 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, - 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, - 0x88f1, 0x88f2, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0x88f7, 0x88f8, - 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941, - 0x8942, 0x8943, 0x8944, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, - 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, - 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, - 0x895a, 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0x8960, 0x8961, - 0x8962, 0x8963, 0x8964, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969, - 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, - 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, - 0x897a, 0x897b, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982, - 0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a, - 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, - 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, - 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2, - 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, 0x89aa, - 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, - 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba, - 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2, - 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, - 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x89d2, - 0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, 0x89d9, 0x89da, - 0x89db, 0x89dc, 0x89dd, 0x89de, 0x89df, 0x89e0, 0x89e1, 0x89e2, - 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0x89e8, 0x89e9, 0x89ea, - 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0x89ef, 0x89f0, 0x89f1, 0x89f2, - 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, - 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a40, 0x8a41, 0x8a42, 0x8a43, - 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, - 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0x8a53, - 0x8a54, 0x8a55, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, - 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63, - 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, - 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73, - 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0x8a7a, 0x8a7b, - 0x8a7c, 0x8a7d, 0x8a7e, 0x8a80, 0x8a81, 0x8a82, 0x8a83, 0x8a84, - 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c, - 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, - 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c, - 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, - 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, - 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, - 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, 0x8abc, - 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x8ac3, 0x8ac4, - 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, - 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4, - 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, - 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, - 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, - 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, - 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, 0x8afc, - 0x8afd, 0x8afe, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, - 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, - 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, - 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, - 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, - 0x8b66, 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, - 0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, - 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, - 0x8b7e, 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, - 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, - 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, - 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, - 0x8b9f, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, - 0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, - 0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, - 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, 0x8bbe, - 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, - 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce, - 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, - 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, - 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, - 0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0x8bec, 0x8bed, 0x8bee, - 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, - 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, - 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, - 0x8c48, 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f, - 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, 0x8c55, 0x8c56, 0x8c57, - 0x8c58, 0x8c59, 0x8c5a, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, 0x8c5f, - 0x8c60, 0x8c61, 0x8c62, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, - 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, - 0x8c70, 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0x8c75, 0x8c76, 0x8c77, - 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, 0x8c80, - 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88, - 0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, - 0x8c91, 0x8c92, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98, - 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0, - 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, - 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0, - 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8, - 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0, - 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, - 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, - 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, - 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, - 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, - 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, 0x8cee, 0x8cef, 0x8cf0, - 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, - 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8d40, 0x8d41, - 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49, - 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51, - 0x8d52, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, - 0x8d5a, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, 0x8d60, 0x8d61, - 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, - 0x8d6a, 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, - 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d78, 0x8d79, - 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d80, 0x8d81, 0x8d82, - 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8a, - 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d92, - 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a, - 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8d9f, 0x8da0, 0x8da1, 0x8da2, - 0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, - 0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2, - 0x8db3, 0x8db4, 0x8db5, 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, - 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, 0x8dc1, 0x8dc2, - 0x8dc3, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, - 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2, - 0x8dd3, 0x8dd4, 0x8dd5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, 0x8dda, - 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2, - 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, - 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df2, - 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, 0x8df8, 0x8df9, 0x8dfa, - 0x8dfb, 0x8dfc, 0x8dfd, 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43, - 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, - 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53, - 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b, - 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63, - 0x8e64, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, - 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, - 0x8e74, 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, - 0x8e7c, 0x8e7d, 0x8e7e, 0x8e80, 0x8e81, 0x8e82, 0x8e83, 0x8e84, - 0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c, - 0x8e8d, 0x8e8e, 0x8e8f, 0x8e90, 0x8e91, 0x8e92, 0x8e93, 0x8e94, - 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9c, - 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, - 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, - 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, - 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, - 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, - 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, - 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, - 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, - 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, - 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, - 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, - 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, - 0x8efd, 0x8efe, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45, - 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, - 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, - 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d, - 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65, - 0x8f66, 0x8f67, 0x8f68, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d, - 0x8f6e, 0x8f6f, 0x8f70, 0x8f71, 0x8f72, 0x8f73, 0x8f74, 0x8f75, - 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f7b, 0x8f7c, 0x8f7d, - 0x8f7e, 0x8f80, 0x8f81, 0x8f82, 0x8f83, 0x8f84, 0x8f85, 0x8f86, - 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0x8f8b, 0x8f8c, 0x8f8d, 0x8f8e, - 0x8f8f, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96, - 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, - 0x8f9f, 0x8fa0, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0x8fa5, 0x8fa6, - 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0x8fad, 0x8fae, - 0x8faf, 0x8fb0, 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb6, - 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe, - 0x8fbf, 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6, - 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fce, - 0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0x8fd6, - 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde, - 0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, 0x8fe6, - 0x8fe7, 0x8fe8, 0x8fe9, 0x8fea, 0x8feb, 0x8fec, 0x8fed, 0x8fee, - 0x8fef, 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0x8ff6, - 0x8ff7, 0x8ff8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0x8ffe, - 0x9040, 0x9041, 0x9042, 0x9043, 0x9044, 0x9045, 0x9046, 0x9047, - 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904d, 0x904e, 0x904f, - 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0x9057, - 0x9058, 0x9059, 0x905a, 0x905b, 0x905c, 0x905d, 0x905e, 0x905f, - 0x9060, 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0x9067, - 0x9068, 0x9069, 0x906a, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f, - 0x9070, 0x9071, 0x9072, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, - 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907d, 0x907e, 0x9080, - 0x9081, 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088, - 0x9089, 0x908a, 0x908b, 0x908c, 0x908d, 0x908e, 0x908f, 0x9090, - 0x9091, 0x9092, 0x9093, 0x9094, 0x9095, 0x9096, 0x9097, 0x9098, - 0x9099, 0x909a, 0x909b, 0x909c, 0x909d, 0x909e, 0x909f, 0x90a0, - 0x90a1, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8, - 0x90a9, 0x90aa, 0x90ab, 0x90ac, 0x90ad, 0x90ae, 0x90af, 0x90b0, - 0x90b1, 0x90b2, 0x90b3, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8, - 0x90b9, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0, - 0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, 0x90c7, 0x90c8, - 0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce, 0x90cf, 0x90d0, - 0x90d1, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0x90d7, 0x90d8, - 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, 0x90de, 0x90df, 0x90e0, - 0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8, - 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, - 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0x90f8, - 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, 0x9141, - 0x9142, 0x9143, 0x9144, 0x9145, 0x9146, 0x9147, 0x9148, 0x9149, - 0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0x9150, 0x9151, - 0x9152, 0x9153, 0x9154, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159, - 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, 0x915f, 0x9160, 0x9161, - 0x9162, 0x9163, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, - 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171, - 0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, - 0x917a, 0x917b, 0x917c, 0x917d, 0x917e, 0x9180, 0x9181, 0x9182, - 0x9183, 0x9184, 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a, - 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9192, - 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a, - 0x919b, 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a2, - 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91aa, - 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, 0x91b2, - 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba, - 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, - 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, - 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d2, - 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, - 0x91db, 0x91dc, 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, - 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, - 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, - 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, - 0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x9240, 0x9241, 0x9242, 0x9243, - 0x9244, 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, - 0x924c, 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, - 0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, - 0x925c, 0x925d, 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, - 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, - 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, - 0x9274, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, - 0x927c, 0x927d, 0x927e, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, - 0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, - 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, - 0x9295, 0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, - 0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, - 0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, - 0x92ad, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0x92b4, - 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc, - 0x92bd, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4, - 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0x92ca, 0x92cb, 0x92cc, - 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0x92d4, - 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, - 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4, - 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, 0x92ea, 0x92eb, 0x92ec, - 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4, - 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0x92fa, 0x92fb, 0x92fc, - 0x92fd, 0x92fe, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, - 0x9346, 0x9347, 0x9348, 0x9349, 0x934a, 0x934b, 0x934c, 0x934d, - 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355, - 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d, - 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, - 0x9366, 0x9367, 0x9368, 0x9369, 0x936a, 0x936b, 0x936c, 0x936d, - 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375, - 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, 0x937c, 0x937d, - 0x937e, 0x9380, 0x9381, 0x9382, 0x9383, 0x9384, 0x9385, 0x9386, - 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, 0x938e, - 0x938f, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, - 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0x939e, - 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, - 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, - 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, 0x93b5, 0x93b6, - 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x93be, - 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0x93c6, - 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93ce, - 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d6, - 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, - 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, - 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, - 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, - 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, - 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, - 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, - 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, - 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, - 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, - 0x9468, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, 0x946f, - 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, - 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x9480, - 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0x9488, - 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0x948e, 0x948f, 0x9490, - 0x9491, 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, - 0x9499, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, 0x94a0, - 0x94a1, 0x94a2, 0x94a3, 0x94a4, 0x94a5, 0x94a6, 0x94a7, 0x94a8, - 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0, - 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6, 0x94b7, 0x94b8, - 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0, - 0x94c1, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0x94c7, 0x94c8, - 0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94cf, 0x94d0, - 0x94d1, 0x94d2, 0x94d3, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8, - 0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, - 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0x94e6, 0x94e7, 0x94e8, - 0x94e9, 0x94ea, 0x94eb, 0x94ec, 0x94ed, 0x94ee, 0x94ef, 0x94f0, - 0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, - 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, 0x94fe, 0x9540, 0x9541, - 0x9542, 0x9543, 0x9544, 0x9545, 0x9546, 0x9547, 0x9548, 0x9549, - 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551, - 0x9552, 0x9553, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, - 0x955a, 0x955b, 0x955c, 0x955d, 0x955e, 0x955f, 0x9560, 0x9561, - 0x9562, 0x9563, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, - 0x956a, 0x956b, 0x956c, 0x956d, 0x956e, 0x956f, 0x9570, 0x9571, - 0x9572, 0x9573, 0x9574, 0x9575, 0x9576, 0x9577, 0x9578, 0x9579, - 0x957a, 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, - 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, - 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, - 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, - 0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, - 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, - 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, - 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, - 0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, - 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, - 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, - 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, - 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, - 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, - 0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, 0x95f0, 0x95f1, 0x95f2, - 0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, - 0x95fb, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643, - 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, 0x9649, 0x964a, 0x964b, - 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, 0x9651, 0x9652, 0x9653, - 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0x9659, 0x965a, 0x965b, - 0x965c, 0x965d, 0x965e, 0x965f, 0x9660, 0x9661, 0x9662, 0x9663, - 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0x966a, 0x966b, - 0x966c, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9672, 0x9673, - 0x9674, 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x967b, - 0x967c, 0x967d, 0x967e, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, - 0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968a, 0x968b, 0x968c, - 0x968d, 0x968e, 0x968f, 0x9690, 0x9691, 0x9692, 0x9693, 0x9694, - 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, 0x969a, 0x969b, 0x969c, - 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, 0x96a4, - 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, - 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4, - 0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc, - 0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, 0x96c3, 0x96c4, - 0x96c5, 0x96c6, 0x96c7, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, - 0x96cd, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0x96d2, 0x96d3, 0x96d4, - 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, - 0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4, - 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec, - 0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, 0x96f4, - 0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc, - 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, - 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, - 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, - 0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x975b, 0x975c, 0x975d, - 0x975e, 0x975f, 0x9760, 0x9761, 0x9762, 0x9763, 0x9764, 0x9765, - 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, - 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, 0x9773, 0x9774, 0x9775, - 0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977c, 0x977d, - 0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, - 0x9787, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0x978e, - 0x978f, 0x9790, 0x9791, 0x9792, 0x9793, 0x9794, 0x9795, 0x9796, - 0x9797, 0x9798, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0x979e, - 0x979f, 0x97a0, 0x97a1, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6, - 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae, - 0x97af, 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6, - 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be, - 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, - 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce, - 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, - 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de, - 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6, - 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee, - 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, - 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe, - 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, - 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f, - 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, - 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, 0x985f, - 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, - 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, - 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, - 0x9878, 0x9879, 0x987a, 0x987b, 0x987c, 0x987d, 0x987e, 0x9880, - 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, - 0x9889, 0x988a, 0x988b, 0x988c, 0x988d, 0x988e, 0x988f, 0x9890, - 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, 0x9897, 0x9898, - 0x9899, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, - 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0x98a6, 0x98a7, 0x98a8, - 0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, - 0x98b1, 0x98b2, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, - 0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, - 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, - 0x98c9, 0x98ca, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0, - 0x98d1, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0x98d8, - 0x98d9, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, 0x98e0, - 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0x98e8, - 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0, - 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8, - 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x9940, 0x9941, - 0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, - 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, - 0x9952, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0x9959, - 0x995a, 0x995b, 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, - 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, - 0x996a, 0x996b, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971, - 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0x9979, - 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, 0x9981, 0x9982, - 0x9983, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, - 0x998b, 0x998c, 0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9992, - 0x9993, 0x9994, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0x999a, - 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2, - 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, - 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, - 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, - 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, - 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, - 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, - 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, - 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, - 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, - 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, - 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, 0x99fa, - 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, 0x9a41, 0x9a42, 0x9a43, - 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b, - 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53, - 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, - 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, 0x9a62, 0x9a63, - 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0x9a6a, 0x9a6b, - 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, - 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0x9a7a, 0x9a7b, - 0x9a7c, 0x9a7d, 0x9a7e, 0x9a80, 0x9a81, 0x9a82, 0x9a83, 0x9a84, - 0x9a85, 0x9a86, 0x9a87, 0x9a88, 0x9a89, 0x9a8a, 0x9a8b, 0x9a8c, - 0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94, - 0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c, - 0x9a9d, 0x9a9e, 0x9a9f, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, - 0x9aa5, 0x9aa6, 0x9aa7, 0x9aa8, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, - 0x9aad, 0x9aae, 0x9aaf, 0x9ab0, 0x9ab1, 0x9ab2, 0x9ab3, 0x9ab4, - 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0x9abb, 0x9abc, - 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, - 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc, - 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, - 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, - 0x9add, 0x9ade, 0x9adf, 0x9ae0, 0x9ae1, 0x9ae2, 0x9ae3, 0x9ae4, - 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0x9ae9, 0x9aea, 0x9aeb, 0x9aec, - 0x9aed, 0x9aee, 0x9aef, 0x9af0, 0x9af1, 0x9af2, 0x9af3, 0x9af4, - 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0x9afb, 0x9afc, - 0x9afd, 0x9afe, 0x9b40, 0x9b41, 0x9b42, 0x9b43, 0x9b44, 0x9b45, - 0x9b46, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d, - 0x9b4e, 0x9b4f, 0x9b50, 0x9b51, 0x9b52, 0x9b53, 0x9b54, 0x9b55, - 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b5b, 0x9b5c, 0x9b5d, - 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, - 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, - 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0x9b75, - 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, 0x9b7c, 0x9b7d, - 0x9b7e, 0x9b80, 0x9b81, 0x9b82, 0x9b83, 0x9b84, 0x9b85, 0x9b86, - 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e, - 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, 0x9b94, 0x9b95, 0x9b96, - 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e, - 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, - 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae, - 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6, - 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, - 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, - 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, - 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, - 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde, - 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6, - 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee, - 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, - 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0x9bfe, - 0x9c40, 0x9c41, 0x9c42, 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47, - 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, - 0x9c50, 0x9c51, 0x9c52, 0x9c53, 0x9c54, 0x9c55, 0x9c56, 0x9c57, - 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, - 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67, - 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, - 0x9c70, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77, - 0x9c78, 0x9c79, 0x9c7a, 0x9c7b, 0x9c7c, 0x9c7d, 0x9c7e, 0x9c80, - 0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88, - 0x9c89, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, - 0x9c91, 0x9c92, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0x9c97, 0x9c98, - 0x9c99, 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0x9c9e, 0x9c9f, 0x9ca0, - 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, - 0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, - 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, - 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, 0x9cbf, 0x9cc0, - 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, - 0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, - 0x9cd1, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0x9cd8, - 0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, 0x9cdf, 0x9ce0, - 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, - 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, - 0x9cf1, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, - 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41, - 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, - 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, - 0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, - 0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, - 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, - 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, - 0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, - 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82, - 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a, - 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92, - 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a, - 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2, - 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, - 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, - 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, - 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, - 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, - 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, - 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, - 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x9de2, - 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, - 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2, - 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, - 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, 0x9e42, 0x9e43, - 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, - 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e52, 0x9e53, - 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0x9e5a, 0x9e5b, - 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e63, - 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, - 0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0x9e71, 0x9e72, 0x9e73, - 0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, - 0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84, - 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0x9e8a, 0x9e8b, 0x9e8c, - 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, 0x9e93, 0x9e94, - 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, - 0x9e9d, 0x9e9e, 0x9e9f, 0x9ea0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, - 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, - 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, - 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0x9ebb, 0x9ebc, - 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec4, - 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0x9ec9, 0x9eca, 0x9ecb, 0x9ecc, - 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4, - 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc, - 0x9edd, 0x9ede, 0x9edf, 0x9ee0, 0x9ee1, 0x9ee2, 0x9ee3, 0x9ee4, - 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0x9eea, 0x9eeb, 0x9eec, - 0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, - 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, - 0x9efd, 0x9efe, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f44, 0x9f45, - 0x9f46, 0x9f47, 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, - 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0x9f52, 0x9f53, 0x9f54, 0x9f55, - 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, - 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0x9f65, - 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, - 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0x9f74, 0x9f75, - 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, - 0x9f7e, 0x9f80, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, - 0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, - 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, 0x9f96, - 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9f9e, - 0x9f9f, 0x9fa0, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0x9fa6, - 0x9fa7, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae, - 0x9faf, 0x9fb0, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0x9fb6, - 0x9fb7, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0x9fbe, - 0x9fbf, 0x9fc0, 0x9fc1, 0x9fc2, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6, - 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0x9fcb, 0x9fcc, 0x9fcd, 0x9fce, - 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, - 0x9fd7, 0x9fd8, 0x9fd9, 0x9fda, 0x9fdb, 0x9fdc, 0x9fdd, 0x9fde, - 0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0x9fe3, 0x9fe4, 0x9fe5, 0x9fe6, - 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, 0x9fed, 0x9fee, - 0x9fef, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6, - 0x9ff7, 0x9ff8, 0x9ff9, 0x9ffa, 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe, - 0xa040, 0xa041, 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047, - 0xa048, 0xa049, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xa04e, 0xa04f, - 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, 0xa057, - 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, 0xa05e, 0xa05f, - 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xa067, - 0xa068, 0xa069, 0xa06a, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f, - 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, - 0xa078, 0xa079, 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa07e, 0xa080, - 0xa081, 0xa082, 0xa083, 0xa084, 0xa085, 0xa086, 0xa087, 0xa088, - 0xa089, 0xa08a, 0xa08b, 0xa08c, 0xa08d, 0xa08e, 0xa08f, 0xa090, - 0xa091, 0xa092, 0xa093, 0xa094, 0xa095, 0xa096, 0xa097, 0xa098, - 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xa09e, 0xa09f, 0xa0a0, - 0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xa0a5, 0xa0a6, 0xa0a7, 0xa0a8, - 0xa0a9, 0xa0aa, 0xa0ab, 0xa0ac, 0xa0ad, 0xa0ae, 0xa0af, 0xa0b0, - 0xa0b1, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, - 0xa0b9, 0xa0ba, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0, - 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, - 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, - 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xa0d7, 0xa0d8, - 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, 0xa0df, 0xa0e0, - 0xa0e1, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xa0e7, 0xa0e8, - 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, - 0xa0f1, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, - 0xa0f9, 0xa0fa, 0xa0fb, 0xa0fc, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41, - 0xaa42, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xaa49, - 0xaa4a, 0xaa4b, 0xaa4c, 0xaa4d, 0xaa4e, 0xaa4f, 0xaa50, 0xaa51, - 0xaa52, 0xaa53, 0xaa54, 0xaa55, 0xaa56, 0xaa57, 0xaa58, 0xaa59, - 0xaa5a, 0xaa5b, 0xaa5c, 0xaa5d, 0xaa5e, 0xaa5f, 0xaa60, 0xaa61, - 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xaa66, 0xaa67, 0xaa68, 0xaa69, - 0xaa6a, 0xaa6b, 0xaa6c, 0xaa6d, 0xaa6e, 0xaa6f, 0xaa70, 0xaa71, - 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xaa79, - 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa7e, 0xaa80, 0xaa81, 0xaa82, - 0xaa83, 0xaa84, 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, - 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, - 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, - 0xaa9b, 0xaa9c, 0xaa9d, 0xaa9e, 0xaa9f, 0xaaa0, 0xab40, 0xab41, - 0xab42, 0xab43, 0xab44, 0xab45, 0xab46, 0xab47, 0xab48, 0xab49, - 0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xab51, - 0xab52, 0xab53, 0xab54, 0xab55, 0xab56, 0xab57, 0xab58, 0xab59, - 0xab5a, 0xab5b, 0xab5c, 0xab5d, 0xab5e, 0xab5f, 0xab60, 0xab61, - 0xab62, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, 0xab69, - 0xab6a, 0xab6b, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, 0xab71, - 0xab72, 0xab73, 0xab74, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79, - 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, 0xab80, 0xab81, 0xab82, - 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, - 0xab8b, 0xab8c, 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92, - 0xab93, 0xab94, 0xab95, 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, - 0xab9b, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac40, 0xac41, - 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, - 0xac4a, 0xac4b, 0xac4c, 0xac4d, 0xac4e, 0xac4f, 0xac50, 0xac51, - 0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, 0xac59, - 0xac5a, 0xac5b, 0xac5c, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61, - 0xac62, 0xac63, 0xac64, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, - 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71, - 0xac72, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, 0xac79, - 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, 0xac82, - 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, 0xac8a, - 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92, - 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, - 0xac9b, 0xac9c, 0xac9d, 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41, - 0xad42, 0xad43, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49, - 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad50, 0xad51, - 0xad52, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59, - 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61, - 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, - 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, - 0xad72, 0xad73, 0xad74, 0xad75, 0xad76, 0xad77, 0xad78, 0xad79, - 0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, 0xad80, 0xad81, 0xad82, - 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, 0xad89, 0xad8a, - 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92, - 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, - 0xad9b, 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xada0, 0xae40, 0xae41, - 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xae49, - 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51, - 0xae52, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, - 0xae5a, 0xae5b, 0xae5c, 0xae5d, 0xae5e, 0xae5f, 0xae60, 0xae61, - 0xae62, 0xae63, 0xae64, 0xae65, 0xae66, 0xae67, 0xae68, 0xae69, - 0xae6a, 0xae6b, 0xae6c, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71, - 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae78, 0xae79, - 0xae7a, 0xae7b, 0xae7c, 0xae7d, 0xae7e, 0xae80, 0xae81, 0xae82, - 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a, - 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92, - 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, - 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaf40, 0xaf41, - 0xaf42, 0xaf43, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf48, 0xaf49, - 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51, - 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, - 0xaf5a, 0xaf5b, 0xaf5c, 0xaf5d, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, - 0xaf62, 0xaf63, 0xaf64, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, - 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, - 0xaf72, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf79, - 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf80, 0xaf81, 0xaf82, - 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xaf8a, - 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, 0xaf91, 0xaf92, - 0xaf93, 0xaf94, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, - 0xaf9b, 0xaf9c, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xb040, 0xb041, - 0xb042, 0xb043, 0xb044, 0xb045, 0xb046, 0xb047, 0xb048, 0xb049, - 0xb04a, 0xb04b, 0xb04c, 0xb04d, 0xb04e, 0xb04f, 0xb050, 0xb051, - 0xb052, 0xb053, 0xb054, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059, - 0xb05a, 0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xb05f, 0xb060, 0xb061, - 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, - 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071, - 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, - 0xb07a, 0xb07b, 0xb07c, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082, - 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, - 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xb091, 0xb092, - 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb098, 0xb099, 0xb09a, - 0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f, 0xb0a0, 0xb140, 0xb141, - 0xb142, 0xb143, 0xb144, 0xb145, 0xb146, 0xb147, 0xb148, 0xb149, - 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xb151, - 0xb152, 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xb159, - 0xb15a, 0xb15b, 0xb15c, 0xb15d, 0xb15e, 0xb15f, 0xb160, 0xb161, - 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169, - 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, - 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179, - 0xb17a, 0xb17b, 0xb17c, 0xb17d, 0xb17e, 0xb180, 0xb181, 0xb182, - 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a, - 0xb18b, 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb192, - 0xb193, 0xb194, 0xb195, 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, - 0xb19b, 0xb19c, 0xb19d, 0xb19e, 0xb19f, 0xb1a0, 0xb240, 0xb241, - 0xb242, 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, - 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, - 0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb258, 0xb259, - 0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xb260, 0xb261, - 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269, - 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, 0xb271, - 0xb272, 0xb273, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, - 0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb27e, 0xb280, 0xb281, 0xb282, - 0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a, - 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb292, - 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb298, 0xb299, 0xb29a, - 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a0, 0xb340, 0xb341, - 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, - 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, - 0xb352, 0xb353, 0xb354, 0xb355, 0xb356, 0xb357, 0xb358, 0xb359, - 0xb35a, 0xb35b, 0xb35c, 0xb35d, 0xb35e, 0xb35f, 0xb360, 0xb361, - 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xb367, 0xb368, 0xb369, - 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xb36f, 0xb370, 0xb371, - 0xb372, 0xb373, 0xb374, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379, - 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xb382, - 0xb383, 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, - 0xb38b, 0xb38c, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, - 0xb393, 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, - 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441, - 0xb442, 0xb443, 0xb444, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, - 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb450, 0xb451, - 0xb452, 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, - 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb460, 0xb461, - 0xb462, 0xb463, 0xb464, 0xb465, 0xb466, 0xb467, 0xb468, 0xb469, - 0xb46a, 0xb46b, 0xb46c, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, - 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, - 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482, - 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, 0xb489, 0xb48a, - 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, - 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, - 0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541, - 0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, 0xb549, - 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xb550, 0xb551, - 0xb552, 0xb553, 0xb554, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, - 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561, - 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, - 0xb56a, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, - 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579, - 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb580, 0xb581, 0xb582, - 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a, - 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592, - 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, - 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641, - 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, 0xb649, - 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, - 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, - 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661, - 0xb662, 0xb663, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669, - 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, - 0xb672, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, - 0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb680, 0xb681, 0xb682, - 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a, - 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692, - 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, - 0xb69b, 0xb69c, 0xb69d, 0xb69e, 0xb69f, 0xb6a0, 0xb740, 0xb741, - 0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749, - 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751, - 0xb752, 0xb753, 0xb754, 0xb755, 0xb756, 0xb757, 0xb758, 0xb759, - 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb760, 0xb761, - 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xb769, - 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771, - 0xb772, 0xb773, 0xb774, 0xb775, 0xb776, 0xb777, 0xb778, 0xb779, - 0xb77a, 0xb77b, 0xb77c, 0xb77d, 0xb77e, 0xb780, 0xb781, 0xb782, - 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, - 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb78f, 0xb790, 0xb791, 0xb792, - 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, 0xb79a, - 0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, 0xb840, 0xb841, - 0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, - 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb851, - 0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859, - 0xb85a, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb85f, 0xb860, 0xb861, - 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, - 0xb86a, 0xb86b, 0xb86c, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871, - 0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, - 0xb87a, 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882, - 0xb883, 0xb884, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, - 0xb88b, 0xb88c, 0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, - 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, - 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0xb8a0, 0xb940, 0xb941, - 0xb942, 0xb943, 0xb944, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, - 0xb94a, 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xb950, 0xb951, - 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0xb958, 0xb959, - 0xb95a, 0xb95b, 0xb95c, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961, - 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969, - 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xb970, 0xb971, - 0xb972, 0xb973, 0xb974, 0xb975, 0xb976, 0xb977, 0xb978, 0xb979, - 0xb97a, 0xb97b, 0xb97c, 0xb97d, 0xb97e, 0xb980, 0xb981, 0xb982, - 0xb983, 0xb984, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a, - 0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb992, - 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, - 0xb99b, 0xb99c, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xba41, - 0xba42, 0xba43, 0xba44, 0xba45, 0xba46, 0xba47, 0xba48, 0xba49, - 0xba4a, 0xba4b, 0xba4c, 0xba4d, 0xba4e, 0xba4f, 0xba50, 0xba51, - 0xba52, 0xba53, 0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59, - 0xba5a, 0xba5b, 0xba5c, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, - 0xba62, 0xba63, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, - 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xba71, - 0xba72, 0xba73, 0xba74, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79, - 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82, - 0xba83, 0xba84, 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, - 0xba8b, 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, - 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, - 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbb40, 0xbb41, - 0xbb42, 0xbb43, 0xbb44, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, - 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, - 0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59, - 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61, - 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, - 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71, - 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, - 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb80, 0xbb81, 0xbb82, - 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a, - 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb92, - 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, - 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbc40, 0xbc41, - 0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, 0xbc47, 0xbc48, 0xbc49, - 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51, - 0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, - 0xbc5a, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, - 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, - 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, - 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79, - 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc80, 0xbc81, 0xbc82, - 0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a, - 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, - 0xbc93, 0xbc94, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a, - 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, 0xbd41, - 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49, - 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51, - 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59, - 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61, - 0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, - 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, - 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, - 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd80, 0xbd81, 0xbd82, - 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, - 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd92, - 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a, - 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbe40, 0xbe41, - 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49, - 0xbe4a, 0xbe4b, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, - 0xbe52, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, - 0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61, - 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, - 0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, - 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79, - 0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82, - 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, - 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92, - 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a, - 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41, - 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, - 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, - 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, - 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, - 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, - 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, - 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, - 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf80, 0xbf81, 0xbf82, - 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, - 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, - 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, - 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041, - 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, - 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, - 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, - 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061, - 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, - 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, - 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, - 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc080, 0xc081, 0xc082, - 0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, - 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc092, - 0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, 0xc099, 0xc09a, - 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a0, 0xc140, 0xc141, - 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc148, 0xc149, - 0xc14a, 0xc14b, 0xc14c, 0xc14d, 0xc14e, 0xc14f, 0xc150, 0xc151, - 0xc152, 0xc153, 0xc154, 0xc155, 0xc156, 0xc157, 0xc158, 0xc159, - 0xc15a, 0xc15b, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, - 0xc162, 0xc163, 0xc164, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, - 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, 0xc171, - 0xc172, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc179, - 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xc17e, 0xc180, 0xc181, 0xc182, - 0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, - 0xc18b, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192, - 0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, - 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc240, 0xc241, - 0xc242, 0xc243, 0xc244, 0xc245, 0xc246, 0xc247, 0xc248, 0xc249, - 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xc250, 0xc251, - 0xc252, 0xc253, 0xc254, 0xc255, 0xc256, 0xc257, 0xc258, 0xc259, - 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc260, 0xc261, - 0xc262, 0xc263, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, 0xc269, - 0xc26a, 0xc26b, 0xc26c, 0xc26d, 0xc26e, 0xc26f, 0xc270, 0xc271, - 0xc272, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, - 0xc27a, 0xc27b, 0xc27c, 0xc27d, 0xc27e, 0xc280, 0xc281, 0xc282, - 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, - 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc292, - 0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, - 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xc341, - 0xc342, 0xc343, 0xc344, 0xc345, 0xc346, 0xc347, 0xc348, 0xc349, - 0xc34a, 0xc34b, 0xc34c, 0xc34d, 0xc34e, 0xc34f, 0xc350, 0xc351, - 0xc352, 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359, - 0xc35a, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, - 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369, - 0xc36a, 0xc36b, 0xc36c, 0xc36d, 0xc36e, 0xc36f, 0xc370, 0xc371, - 0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379, - 0xc37a, 0xc37b, 0xc37c, 0xc37d, 0xc37e, 0xc380, 0xc381, 0xc382, - 0xc383, 0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc38a, - 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, - 0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a, - 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, 0xc440, 0xc441, - 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449, - 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, 0xc451, - 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, 0xc459, - 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, 0xc461, - 0xc462, 0xc463, 0xc464, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, - 0xc46a, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, - 0xc472, 0xc473, 0xc474, 0xc475, 0xc476, 0xc477, 0xc478, 0xc479, - 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc480, 0xc481, 0xc482, - 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc48a, - 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc492, - 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, - 0xc49b, 0xc49c, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541, - 0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, - 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc550, 0xc551, - 0xc552, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, - 0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0xc560, 0xc561, - 0xc562, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569, - 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, - 0xc572, 0xc573, 0xc574, 0xc575, 0xc576, 0xc577, 0xc578, 0xc579, - 0xc57a, 0xc57b, 0xc57c, 0xc57d, 0xc57e, 0xc580, 0xc581, 0xc582, - 0xc583, 0xc584, 0xc585, 0xc586, 0xc587, 0xc588, 0xc589, 0xc58a, - 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592, - 0xc593, 0xc594, 0xc595, 0xc596, 0xc597, 0xc598, 0xc599, 0xc59a, - 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, 0xc5a0, 0xc640, 0xc641, - 0xc642, 0xc643, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649, - 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc650, 0xc651, - 0xc652, 0xc653, 0xc654, 0xc655, 0xc656, 0xc657, 0xc658, 0xc659, - 0xc65a, 0xc65b, 0xc65c, 0xc65d, 0xc65e, 0xc65f, 0xc660, 0xc661, - 0xc662, 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669, - 0xc66a, 0xc66b, 0xc66c, 0xc66d, 0xc66e, 0xc66f, 0xc670, 0xc671, - 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc678, 0xc679, - 0xc67a, 0xc67b, 0xc67c, 0xc67d, 0xc67e, 0xc680, 0xc681, 0xc682, - 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc688, 0xc689, 0xc68a, - 0xc68b, 0xc68c, 0xc68d, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692, - 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xc699, 0xc69a, - 0xc69b, 0xc69c, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc740, 0xc741, - 0xc742, 0xc743, 0xc744, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, - 0xc74a, 0xc74b, 0xc74c, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, - 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, - 0xc75a, 0xc75b, 0xc75c, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, - 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc768, 0xc769, - 0xc76a, 0xc76b, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, - 0xc772, 0xc773, 0xc774, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, - 0xc77a, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc780, 0xc781, 0xc782, - 0xc783, 0xc784, 0xc785, 0xc786, 0xc787, 0xc788, 0xc789, 0xc78a, - 0xc78b, 0xc78c, 0xc78d, 0xc78e, 0xc78f, 0xc790, 0xc791, 0xc792, - 0xc793, 0xc794, 0xc795, 0xc796, 0xc797, 0xc798, 0xc799, 0xc79a, - 0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841, - 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc848, 0xc849, - 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, 0xc84f, 0xc850, 0xc851, - 0xc852, 0xc853, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, - 0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, - 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, - 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xc871, - 0xc872, 0xc873, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879, - 0xc87a, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882, - 0xc883, 0xc884, 0xc885, 0xc886, 0xc887, 0xc888, 0xc889, 0xc88a, - 0xc88b, 0xc88c, 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892, - 0xc893, 0xc894, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, - 0xc89b, 0xc89c, 0xc89d, 0xc89e, 0xc89f, 0xc8a0, 0xc940, 0xc941, - 0xc942, 0xc943, 0xc944, 0xc945, 0xc946, 0xc947, 0xc948, 0xc949, - 0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, - 0xc952, 0xc953, 0xc954, 0xc955, 0xc956, 0xc957, 0xc958, 0xc959, - 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc960, 0xc961, - 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, 0xc969, - 0xc96a, 0xc96b, 0xc96c, 0xc96d, 0xc96e, 0xc96f, 0xc970, 0xc971, - 0xc972, 0xc973, 0xc974, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, - 0xc97a, 0xc97b, 0xc97c, 0xc97d, 0xc97e, 0xc980, 0xc981, 0xc982, - 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc988, 0xc989, 0xc98a, - 0xc98b, 0xc98c, 0xc98d, 0xc98e, 0xc98f, 0xc990, 0xc991, 0xc992, - 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, 0xc998, 0xc999, 0xc99a, - 0xc99b, 0xc99c, 0xc99d, 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41, - 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0xca47, 0xca48, 0xca49, - 0xca4a, 0xca4b, 0xca4c, 0xca4d, 0xca4e, 0xca4f, 0xca50, 0xca51, - 0xca52, 0xca53, 0xca54, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59, - 0xca5a, 0xca5b, 0xca5c, 0xca5d, 0xca5e, 0xca5f, 0xca60, 0xca61, - 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69, - 0xca6a, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, 0xca71, - 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, - 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xca80, 0xca81, 0xca82, - 0xca83, 0xca84, 0xca85, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, - 0xca8b, 0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, - 0xca93, 0xca94, 0xca95, 0xca96, 0xca97, 0xca98, 0xca99, 0xca9a, - 0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0xcaa0, 0xcb40, 0xcb41, - 0xcb42, 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, - 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, - 0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, 0xcb58, 0xcb59, - 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5d, 0xcb5e, 0xcb5f, 0xcb60, 0xcb61, - 0xcb62, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69, - 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71, - 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb78, 0xcb79, - 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb80, 0xcb81, 0xcb82, - 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0xcb89, 0xcb8a, - 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb92, - 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, - 0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcc40, 0xcc41, - 0xcc42, 0xcc43, 0xcc44, 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49, - 0xcc4a, 0xcc4b, 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51, - 0xcc52, 0xcc53, 0xcc54, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xcc59, - 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61, - 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xcc69, - 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71, - 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, 0xcc78, 0xcc79, - 0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc80, 0xcc81, 0xcc82, - 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, - 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, - 0xcc93, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc98, 0xcc99, 0xcc9a, - 0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca0, 0xcd40, 0xcd41, - 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49, - 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xcd51, - 0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59, - 0xcd5a, 0xcd5b, 0xcd5c, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61, - 0xcd62, 0xcd63, 0xcd64, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, - 0xcd6a, 0xcd6b, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xcd71, - 0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xcd78, 0xcd79, - 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, 0xcd80, 0xcd81, 0xcd82, - 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd88, 0xcd89, 0xcd8a, - 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92, - 0xcd93, 0xcd94, 0xcd95, 0xcd96, 0xcd97, 0xcd98, 0xcd99, 0xcd9a, - 0xcd9b, 0xcd9c, 0xcd9d, 0xcd9e, 0xcd9f, 0xcda0, 0xce40, 0xce41, - 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, 0xce49, - 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51, - 0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce58, 0xce59, - 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xce5f, 0xce60, 0xce61, - 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67, 0xce68, 0xce69, - 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, 0xce70, 0xce71, - 0xce72, 0xce73, 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, - 0xce7a, 0xce7b, 0xce7c, 0xce7d, 0xce7e, 0xce80, 0xce81, 0xce82, - 0xce83, 0xce84, 0xce85, 0xce86, 0xce87, 0xce88, 0xce89, 0xce8a, - 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce90, 0xce91, 0xce92, - 0xce93, 0xce94, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a, - 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41, - 0xcf42, 0xcf43, 0xcf44, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xcf49, - 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, 0xcf51, - 0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xcf57, 0xcf58, 0xcf59, - 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf5e, 0xcf5f, 0xcf60, 0xcf61, - 0xcf62, 0xcf63, 0xcf64, 0xcf65, 0xcf66, 0xcf67, 0xcf68, 0xcf69, - 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71, - 0xcf72, 0xcf73, 0xcf74, 0xcf75, 0xcf76, 0xcf77, 0xcf78, 0xcf79, - 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf80, 0xcf81, 0xcf82, - 0xcf83, 0xcf84, 0xcf85, 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a, - 0xcf8b, 0xcf8c, 0xcf8d, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, - 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, - 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xd040, 0xd041, - 0xd042, 0xd043, 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, - 0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xd04e, 0xd04f, 0xd050, 0xd051, - 0xd052, 0xd053, 0xd054, 0xd055, 0xd056, 0xd057, 0xd058, 0xd059, - 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd060, 0xd061, - 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069, - 0xd06a, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071, - 0xd072, 0xd073, 0xd074, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, - 0xd07a, 0xd07b, 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xd082, - 0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a, - 0xd08b, 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092, - 0xd093, 0xd094, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, - 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd140, 0xd141, - 0xd142, 0xd143, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xd149, - 0xd14a, 0xd14b, 0xd14c, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xd151, - 0xd152, 0xd153, 0xd154, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159, - 0xd15a, 0xd15b, 0xd15c, 0xd15d, 0xd15e, 0xd15f, 0xd160, 0xd161, - 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd168, 0xd169, - 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xd16f, 0xd170, 0xd171, - 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, - 0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd17e, 0xd180, 0xd181, 0xd182, - 0xd183, 0xd184, 0xd185, 0xd186, 0xd187, 0xd188, 0xd189, 0xd18a, - 0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192, - 0xd193, 0xd194, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a, - 0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0xd1a0, 0xd240, 0xd241, - 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd248, 0xd249, - 0xd24a, 0xd24b, 0xd24c, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, - 0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259, - 0xd25a, 0xd25b, 0xd25c, 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261, - 0xd262, 0xd263, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, - 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, - 0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, - 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd280, 0xd281, 0xd282, - 0xd283, 0xd284, 0xd285, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a, - 0xd28b, 0xd28c, 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd292, - 0xd293, 0xd294, 0xd295, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, - 0xd29b, 0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd340, 0xd341, - 0xd342, 0xd343, 0xd344, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349, - 0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, - 0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359, - 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0xd360, 0xd361, - 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369, - 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xd371, - 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379, - 0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382, - 0xd383, 0xd384, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, - 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392, - 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, - 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441, - 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, - 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, - 0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, - 0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xd460, 0xd461, - 0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469, - 0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471, - 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd478, 0xd479, - 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, 0xd481, 0xd482, - 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, 0xd489, 0xd48a, - 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492, - 0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, - 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, 0xd4a0, 0xd540, 0xd541, - 0xd542, 0xd543, 0xd544, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549, - 0xd54a, 0xd54b, 0xd54c, 0xd54d, 0xd54e, 0xd54f, 0xd550, 0xd551, - 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559, - 0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561, - 0xd562, 0xd563, 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569, - 0xd56a, 0xd56b, 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571, - 0xd572, 0xd573, 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579, - 0xd57a, 0xd57b, 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582, - 0xd583, 0xd584, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a, - 0xd58b, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592, - 0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, - 0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641, - 0xd642, 0xd643, 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649, - 0xd64a, 0xd64b, 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651, - 0xd652, 0xd653, 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659, - 0xd65a, 0xd65b, 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, - 0xd662, 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669, - 0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671, - 0xd672, 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679, - 0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xd682, - 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, - 0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, - 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, - 0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741, - 0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, - 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751, - 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759, - 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xd760, 0xd761, - 0xd762, 0xd763, 0xd764, 0xd765, 0xd766, 0xd767, 0xd768, 0xd769, - 0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, 0xd770, 0xd771, - 0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779, - 0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, 0xd781, 0xd782, - 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, 0xd789, 0xd78a, - 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, 0xd791, 0xd792, - 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, 0xd799, 0xd79a, - 0xd79b, 0xd79c, 0xd79d, 0xd79e, 0xd79f, 0xd7a0, 0xd840, 0xd841, - 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848, 0xd849, - 0xd84a, 0xd84b, 0xd84c, 0xd84d, 0xd84e, 0xd84f, 0xd850, 0xd851, - 0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xd858, 0xd859, - 0xd85a, 0xd85b, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, 0xd861, - 0xd862, 0xd863, 0xd864, 0xd865, 0xd866, 0xd867, 0xd868, 0xd869, - 0xd86a, 0xd86b, 0xd86c, 0xd86d, 0xd86e, 0xd86f, 0xd870, 0xd871, - 0xd872, 0xd873, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, 0xd879, - 0xd87a, 0xd87b, 0xd87c, 0xd87d, 0xd87e, 0xd880, 0xd881, 0xd882, - 0xd883, 0xd884, 0xd885, 0xd886, 0xd887, 0xd888, 0xd889, 0xd88a, - 0xd88b, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892, - 0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a, - 0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941, - 0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, - 0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951, - 0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959, - 0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961, - 0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969, - 0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971, - 0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979, - 0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982, - 0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a, - 0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992, - 0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a, - 0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41, - 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49, - 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xda4f, 0xda50, 0xda51, - 0xda52, 0xda53, 0xda54, 0xda55, 0xda56, 0xda57, 0xda58, 0xda59, - 0xda5a, 0xda5b, 0xda5c, 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61, - 0xda62, 0xda63, 0xda64, 0xda65, 0xda66, 0xda67, 0xda68, 0xda69, - 0xda6a, 0xda6b, 0xda6c, 0xda6d, 0xda6e, 0xda6f, 0xda70, 0xda71, - 0xda72, 0xda73, 0xda74, 0xda75, 0xda76, 0xda77, 0xda78, 0xda79, - 0xda7a, 0xda7b, 0xda7c, 0xda7d, 0xda7e, 0xda80, 0xda81, 0xda82, - 0xda83, 0xda84, 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a, - 0xda8b, 0xda8c, 0xda8d, 0xda8e, 0xda8f, 0xda90, 0xda91, 0xda92, - 0xda93, 0xda94, 0xda95, 0xda96, 0xda97, 0xda98, 0xda99, 0xda9a, - 0xda9b, 0xda9c, 0xda9d, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xdb41, - 0xdb42, 0xdb43, 0xdb44, 0xdb45, 0xdb46, 0xdb47, 0xdb48, 0xdb49, - 0xdb4a, 0xdb4b, 0xdb4c, 0xdb4d, 0xdb4e, 0xdb4f, 0xdb50, 0xdb51, - 0xdb52, 0xdb53, 0xdb54, 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59, - 0xdb5a, 0xdb5b, 0xdb5c, 0xdb5d, 0xdb5e, 0xdb5f, 0xdb60, 0xdb61, - 0xdb62, 0xdb63, 0xdb64, 0xdb65, 0xdb66, 0xdb67, 0xdb68, 0xdb69, - 0xdb6a, 0xdb6b, 0xdb6c, 0xdb6d, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71, - 0xdb72, 0xdb73, 0xdb74, 0xdb75, 0xdb76, 0xdb77, 0xdb78, 0xdb79, - 0xdb7a, 0xdb7b, 0xdb7c, 0xdb7d, 0xdb7e, 0xdb80, 0xdb81, 0xdb82, - 0xdb83, 0xdb84, 0xdb85, 0xdb86, 0xdb87, 0xdb88, 0xdb89, 0xdb8a, - 0xdb8b, 0xdb8c, 0xdb8d, 0xdb8e, 0xdb8f, 0xdb90, 0xdb91, 0xdb92, - 0xdb93, 0xdb94, 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a, - 0xdb9b, 0xdb9c, 0xdb9d, 0xdb9e, 0xdb9f, 0xdba0, 0xdc40, 0xdc41, - 0xdc42, 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xdc47, 0xdc48, 0xdc49, - 0xdc4a, 0xdc4b, 0xdc4c, 0xdc4d, 0xdc4e, 0xdc4f, 0xdc50, 0xdc51, - 0xdc52, 0xdc53, 0xdc54, 0xdc55, 0xdc56, 0xdc57, 0xdc58, 0xdc59, - 0xdc5a, 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xdc5f, 0xdc60, 0xdc61, - 0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc69, - 0xdc6a, 0xdc6b, 0xdc6c, 0xdc6d, 0xdc6e, 0xdc6f, 0xdc70, 0xdc71, - 0xdc72, 0xdc73, 0xdc74, 0xdc75, 0xdc76, 0xdc77, 0xdc78, 0xdc79, - 0xdc7a, 0xdc7b, 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82, - 0xdc83, 0xdc84, 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a, - 0xdc8b, 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92, - 0xdc93, 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a, - 0xdc9b, 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41, - 0xdd42, 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49, - 0xdd4a, 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, - 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59, - 0xdd5a, 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61, - 0xdd62, 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69, - 0xdd6a, 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71, - 0xdd72, 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79, - 0xdd7a, 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82, - 0xdd83, 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a, - 0xdd8b, 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92, - 0xdd93, 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a, - 0xdd9b, 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41, - 0xde42, 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49, - 0xde4a, 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51, - 0xde52, 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59, - 0xde5a, 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xde61, - 0xde62, 0xde63, 0xde64, 0xde65, 0xde66, 0xde67, 0xde68, 0xde69, - 0xde6a, 0xde6b, 0xde6c, 0xde6d, 0xde6e, 0xde6f, 0xde70, 0xde71, - 0xde72, 0xde73, 0xde74, 0xde75, 0xde76, 0xde77, 0xde78, 0xde79, - 0xde7a, 0xde7b, 0xde7c, 0xde7d, 0xde7e, 0xde80, 0xde81, 0xde82, - 0xde83, 0xde84, 0xde85, 0xde86, 0xde87, 0xde88, 0xde89, 0xde8a, - 0xde8b, 0xde8c, 0xde8d, 0xde8e, 0xde8f, 0xde90, 0xde91, 0xde92, - 0xde93, 0xde94, 0xde95, 0xde96, 0xde97, 0xde98, 0xde99, 0xde9a, - 0xde9b, 0xde9c, 0xde9d, 0xde9e, 0xde9f, 0xdea0, 0xdf40, 0xdf41, - 0xdf42, 0xdf43, 0xdf44, 0xdf45, 0xdf46, 0xdf47, 0xdf48, 0xdf49, - 0xdf4a, 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xdf50, 0xdf51, - 0xdf52, 0xdf53, 0xdf54, 0xdf55, 0xdf56, 0xdf57, 0xdf58, 0xdf59, - 0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xdf5e, 0xdf5f, 0xdf60, 0xdf61, - 0xdf62, 0xdf63, 0xdf64, 0xdf65, 0xdf66, 0xdf67, 0xdf68, 0xdf69, - 0xdf6a, 0xdf6b, 0xdf6c, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xdf71, - 0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xdf76, 0xdf77, 0xdf78, 0xdf79, - 0xdf7a, 0xdf7b, 0xdf7c, 0xdf7d, 0xdf7e, 0xdf80, 0xdf81, 0xdf82, - 0xdf83, 0xdf84, 0xdf85, 0xdf86, 0xdf87, 0xdf88, 0xdf89, 0xdf8a, - 0xdf8b, 0xdf8c, 0xdf8d, 0xdf8e, 0xdf8f, 0xdf90, 0xdf91, 0xdf92, - 0xdf93, 0xdf94, 0xdf95, 0xdf96, 0xdf97, 0xdf98, 0xdf99, 0xdf9a, - 0xdf9b, 0xdf9c, 0xdf9d, 0xdf9e, 0xdf9f, 0xdfa0, 0xe040, 0xe041, - 0xe042, 0xe043, 0xe044, 0xe045, 0xe046, 0xe047, 0xe048, 0xe049, - 0xe04a, 0xe04b, 0xe04c, 0xe04d, 0xe04e, 0xe04f, 0xe050, 0xe051, - 0xe052, 0xe053, 0xe054, 0xe055, 0xe056, 0xe057, 0xe058, 0xe059, - 0xe05a, 0xe05b, 0xe05c, 0xe05d, 0xe05e, 0xe05f, 0xe060, 0xe061, - 0xe062, 0xe063, 0xe064, 0xe065, 0xe066, 0xe067, 0xe068, 0xe069, - 0xe06a, 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, - 0xe072, 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, - 0xe07a, 0xe07b, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xe081, 0xe082, - 0xe083, 0xe084, 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, - 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xe08f, 0xe090, 0xe091, 0xe092, - 0xe093, 0xe094, 0xe095, 0xe096, 0xe097, 0xe098, 0xe099, 0xe09a, - 0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f, 0xe0a0, 0xe140, 0xe141, - 0xe142, 0xe143, 0xe144, 0xe145, 0xe146, 0xe147, 0xe148, 0xe149, - 0xe14a, 0xe14b, 0xe14c, 0xe14d, 0xe14e, 0xe14f, 0xe150, 0xe151, - 0xe152, 0xe153, 0xe154, 0xe155, 0xe156, 0xe157, 0xe158, 0xe159, - 0xe15a, 0xe15b, 0xe15c, 0xe15d, 0xe15e, 0xe15f, 0xe160, 0xe161, - 0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xe168, 0xe169, - 0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xe16e, 0xe16f, 0xe170, 0xe171, - 0xe172, 0xe173, 0xe174, 0xe175, 0xe176, 0xe177, 0xe178, 0xe179, - 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xe17e, 0xe180, 0xe181, 0xe182, - 0xe183, 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a, - 0xe18b, 0xe18c, 0xe18d, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, - 0xe193, 0xe194, 0xe195, 0xe196, 0xe197, 0xe198, 0xe199, 0xe19a, - 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241, - 0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, - 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, - 0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, - 0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, - 0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, - 0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, - 0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, - 0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282, - 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, - 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, - 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, - 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341, - 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349, - 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351, - 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359, - 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361, - 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369, - 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xe36e, 0xe36f, 0xe370, 0xe371, - 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, 0xe379, - 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, 0xe382, - 0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xe388, 0xe389, 0xe38a, - 0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, 0xe391, 0xe392, - 0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, 0xe399, 0xe39a, - 0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe440, 0xe441, - 0xe442, 0xe443, 0xe444, 0xe445, 0xe446, 0xe447, 0xe448, 0xe449, - 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451, - 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459, - 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xe45f, 0xe460, 0xe461, - 0xe462, 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0xe468, 0xe469, - 0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, 0xe470, 0xe471, - 0xe472, 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479, - 0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe480, 0xe481, 0xe482, - 0xe483, 0xe484, 0xe485, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a, - 0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, 0xe490, 0xe491, 0xe492, - 0xe493, 0xe494, 0xe495, 0xe496, 0xe497, 0xe498, 0xe499, 0xe49a, - 0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, 0xe4a0, 0xe540, 0xe541, - 0xe542, 0xe543, 0xe544, 0xe545, 0xe546, 0xe547, 0xe548, 0xe549, - 0xe54a, 0xe54b, 0xe54c, 0xe54d, 0xe54e, 0xe54f, 0xe550, 0xe551, - 0xe552, 0xe553, 0xe554, 0xe555, 0xe556, 0xe557, 0xe558, 0xe559, - 0xe55a, 0xe55b, 0xe55c, 0xe55d, 0xe55e, 0xe55f, 0xe560, 0xe561, - 0xe562, 0xe563, 0xe564, 0xe565, 0xe566, 0xe567, 0xe568, 0xe569, - 0xe56a, 0xe56b, 0xe56c, 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571, - 0xe572, 0xe573, 0xe574, 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, - 0xe57a, 0xe57b, 0xe57c, 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582, - 0xe583, 0xe584, 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, - 0xe58b, 0xe58c, 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, - 0xe593, 0xe594, 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, - 0xe59b, 0xe59c, 0xe59d, 0xe59e, 0xe59f, 0xe5a0, 0xe640, 0xe641, - 0xe642, 0xe643, 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649, - 0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651, - 0xe652, 0xe653, 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659, - 0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661, - 0xe662, 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669, - 0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671, - 0xe672, 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679, - 0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682, - 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a, - 0xe68b, 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692, - 0xe693, 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a, - 0xe69b, 0xe69c, 0xe69d, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741, - 0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xe748, 0xe749, - 0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751, - 0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, 0xe759, - 0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761, - 0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, 0xe769, - 0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, 0xe771, - 0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, 0xe779, - 0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, 0xe782, - 0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a, - 0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792, - 0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, 0xe79a, - 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, 0xe841, - 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849, - 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xe84f, 0xe850, 0xe851, - 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, 0xe858, 0xe859, - 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, 0xe860, 0xe861, - 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869, - 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, 0xe870, 0xe871, - 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, 0xe878, 0xe879, - 0xe87a, 0xe87b, 0xe87c, 0xe87d, 0xe87e, 0xe880, 0xe881, 0xe882, - 0xe883, 0xe884, 0xe885, 0xe886, 0xe887, 0xe888, 0xe889, 0xe88a, - 0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, 0xe890, 0xe891, 0xe892, - 0xe893, 0xe894, 0xe895, 0xe896, 0xe897, 0xe898, 0xe899, 0xe89a, - 0xe89b, 0xe89c, 0xe89d, 0xe89e, 0xe89f, 0xe8a0, 0xe940, 0xe941, - 0xe942, 0xe943, 0xe944, 0xe945, 0xe946, 0xe947, 0xe948, 0xe949, - 0xe94a, 0xe94b, 0xe94c, 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951, - 0xe952, 0xe953, 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959, - 0xe95a, 0xe95b, 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961, - 0xe962, 0xe963, 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, - 0xe96a, 0xe96b, 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971, - 0xe972, 0xe973, 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979, - 0xe97a, 0xe97b, 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982, - 0xe983, 0xe984, 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a, - 0xe98b, 0xe98c, 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992, - 0xe993, 0xe994, 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a, - 0xe99b, 0xe99c, 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41, - 0xea42, 0xea43, 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49, - 0xea4a, 0xea4b, 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51, - 0xea52, 0xea53, 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59, - 0xea5a, 0xea5b, 0xea5c, 0xea5d, 0xea5e, 0xea5f, 0xea60, 0xea61, - 0xea62, 0xea63, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, 0xea69, - 0xea6a, 0xea6b, 0xea6c, 0xea6d, 0xea6e, 0xea6f, 0xea70, 0xea71, - 0xea72, 0xea73, 0xea74, 0xea75, 0xea76, 0xea77, 0xea78, 0xea79, - 0xea7a, 0xea7b, 0xea7c, 0xea7d, 0xea7e, 0xea80, 0xea81, 0xea82, - 0xea83, 0xea84, 0xea85, 0xea86, 0xea87, 0xea88, 0xea89, 0xea8a, - 0xea8b, 0xea8c, 0xea8d, 0xea8e, 0xea8f, 0xea90, 0xea91, 0xea92, - 0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, 0xea99, 0xea9a, - 0xea9b, 0xea9c, 0xea9d, 0xea9e, 0xea9f, 0xeaa0, 0xeb40, 0xeb41, - 0xeb42, 0xeb43, 0xeb44, 0xeb45, 0xeb46, 0xeb47, 0xeb48, 0xeb49, - 0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51, - 0xeb52, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59, - 0xeb5a, 0xeb5b, 0xeb5c, 0xeb5d, 0xeb5e, 0xeb5f, 0xeb60, 0xeb61, - 0xeb62, 0xeb63, 0xeb64, 0xeb65, 0xeb66, 0xeb67, 0xeb68, 0xeb69, - 0xeb6a, 0xeb6b, 0xeb6c, 0xeb6d, 0xeb6e, 0xeb6f, 0xeb70, 0xeb71, - 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, 0xeb77, 0xeb78, 0xeb79, - 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, 0xeb7e, 0xeb80, 0xeb81, 0xeb82, - 0xeb83, 0xeb84, 0xeb85, 0xeb86, 0xeb87, 0xeb88, 0xeb89, 0xeb8a, - 0xeb8b, 0xeb8c, 0xeb8d, 0xeb8e, 0xeb8f, 0xeb90, 0xeb91, 0xeb92, - 0xeb93, 0xeb94, 0xeb95, 0xeb96, 0xeb97, 0xeb98, 0xeb99, 0xeb9a, - 0xeb9b, 0xeb9c, 0xeb9d, 0xeb9e, 0xeb9f, 0xeba0, 0xec40, 0xec41, - 0xec42, 0xec43, 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xec49, - 0xec4a, 0xec4b, 0xec4c, 0xec4d, 0xec4e, 0xec4f, 0xec50, 0xec51, - 0xec52, 0xec53, 0xec54, 0xec55, 0xec56, 0xec57, 0xec58, 0xec59, - 0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, 0xec60, 0xec61, - 0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69, - 0xec6a, 0xec6b, 0xec6c, 0xec6d, 0xec6e, 0xec6f, 0xec70, 0xec71, - 0xec72, 0xec73, 0xec74, 0xec75, 0xec76, 0xec77, 0xec78, 0xec79, - 0xec7a, 0xec7b, 0xec7c, 0xec7d, 0xec7e, 0xec80, 0xec81, 0xec82, - 0xec83, 0xec84, 0xec85, 0xec86, 0xec87, 0xec88, 0xec89, 0xec8a, - 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xec8f, 0xec90, 0xec91, 0xec92, - 0xec93, 0xec94, 0xec95, 0xec96, 0xec97, 0xec98, 0xec99, 0xec9a, - 0xec9b, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41, - 0xed42, 0xed43, 0xed44, 0xed45, 0xed46, 0xed47, 0xed48, 0xed49, - 0xed4a, 0xed4b, 0xed4c, 0xed4d, 0xed4e, 0xed4f, 0xed50, 0xed51, - 0xed52, 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59, - 0xed5a, 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61, - 0xed62, 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69, - 0xed6a, 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71, - 0xed72, 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79, - 0xed7a, 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xed82, - 0xed83, 0xed84, 0xed85, 0xed86, 0xed87, 0xed88, 0xed89, 0xed8a, - 0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, 0xed92, - 0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, 0xed9a, - 0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, 0xee41, - 0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49, - 0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, 0xee51, - 0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, 0xee59, - 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, 0xee61, - 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, 0xee69, - 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, 0xee71, - 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, 0xee79, - 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, 0xee82, - 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, 0xee8a, - 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, 0xee92, - 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, 0xee9a, - 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, 0xef41, - 0xef42, 0xef43, 0xef44, 0xef45, 0xef46, 0xef47, 0xef48, 0xef49, - 0xef4a, 0xef4b, 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51, - 0xef52, 0xef53, 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, - 0xef5a, 0xef5b, 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, - 0xef62, 0xef63, 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, - 0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, - 0xef72, 0xef73, 0xef74, 0xef75, 0xef76, 0xef77, 0xef78, 0xef79, - 0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xef82, - 0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a, - 0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92, - 0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, 0xef99, 0xef9a, - 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xf040, 0xf041, - 0xf042, 0xf043, 0xf044, 0xf045, 0xf046, 0xf047, 0xf048, 0xf049, - 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, 0xf050, 0xf051, - 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, 0xf058, 0xf059, - 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, 0xf060, 0xf061, - 0xf062, 0xf063, 0xf064, 0xf065, 0xf066, 0xf067, 0xf068, 0xf069, - 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071, - 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, 0xf078, 0xf079, - 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082, - 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, 0xf089, 0xf08a, - 0xf08b, 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092, - 0xf093, 0xf094, 0xf095, 0xf096, 0xf097, 0xf098, 0xf099, 0xf09a, - 0xf09b, 0xf09c, 0xf09d, 0xf09e, 0xf09f, 0xf0a0, 0xf140, 0xf141, - 0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149, - 0xf14a, 0xf14b, 0xf14c, 0xf14d, 0xf14e, 0xf14f, 0xf150, 0xf151, - 0xf152, 0xf153, 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159, - 0xf15a, 0xf15b, 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161, - 0xf162, 0xf163, 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169, - 0xf16a, 0xf16b, 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171, - 0xf172, 0xf173, 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179, - 0xf17a, 0xf17b, 0xf17c, 0xf17d, 0xf17e, 0xf180, 0xf181, 0xf182, - 0xf183, 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a, - 0xf18b, 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192, - 0xf193, 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a, - 0xf19b, 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf240, 0xf241, - 0xf242, 0xf243, 0xf244, 0xf245, 0xf246, 0xf247, 0xf248, 0xf249, - 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, 0xf250, 0xf251, - 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, 0xf258, 0xf259, - 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, 0xf260, 0xf261, - 0xf262, 0xf263, 0xf264, 0xf265, 0xf266, 0xf267, 0xf268, 0xf269, - 0xf26a, 0xf26b, 0xf26c, 0xf26d, 0xf26e, 0xf26f, 0xf270, 0xf271, - 0xf272, 0xf273, 0xf274, 0xf275, 0xf276, 0xf277, 0xf278, 0xf279, - 0xf27a, 0xf27b, 0xf27c, 0xf27d, 0xf27e, 0xf280, 0xf281, 0xf282, - 0xf283, 0xf284, 0xf285, 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a, - 0xf28b, 0xf28c, 0xf28d, 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292, - 0xf293, 0xf294, 0xf295, 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a, - 0xf29b, 0xf29c, 0xf29d, 0xf29e, 0xf29f, 0xf2a0, 0xf340, 0xf341, - 0xf342, 0xf343, 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, 0xf349, - 0xf34a, 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351, - 0xf352, 0xf353, 0xf354, 0xf355, 0xf356, 0xf357, 0xf358, 0xf359, - 0xf35a, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, - 0xf362, 0xf363, 0xf364, 0xf365, 0xf366, 0xf367, 0xf368, 0xf369, - 0xf36a, 0xf36b, 0xf36c, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371, - 0xf372, 0xf373, 0xf374, 0xf375, 0xf376, 0xf377, 0xf378, 0xf379, - 0xf37a, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf382, - 0xf383, 0xf384, 0xf385, 0xf386, 0xf387, 0xf388, 0xf389, 0xf38a, - 0xf38b, 0xf38c, 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392, - 0xf393, 0xf394, 0xf395, 0xf396, 0xf397, 0xf398, 0xf399, 0xf39a, - 0xf39b, 0xf39c, 0xf39d, 0xf39e, 0xf39f, 0xf3a0, 0xf440, 0xf441, - 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf447, 0xf448, 0xf449, - 0xf44a, 0xf44b, 0xf44c, 0xf44d, 0xf44e, 0xf44f, 0xf450, 0xf451, - 0xf452, 0xf453, 0xf454, 0xf455, 0xf456, 0xf457, 0xf458, 0xf459, - 0xf45a, 0xf45b, 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, - 0xf462, 0xf463, 0xf464, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469, - 0xf46a, 0xf46b, 0xf46c, 0xf46d, 0xf46e, 0xf46f, 0xf470, 0xf471, - 0xf472, 0xf473, 0xf474, 0xf475, 0xf476, 0xf477, 0xf478, 0xf479, - 0xf47a, 0xf47b, 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482, - 0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a, - 0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492, - 0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a, - 0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541, - 0xf542, 0xf543, 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549, - 0xf54a, 0xf54b, 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551, - 0xf552, 0xf553, 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559, - 0xf55a, 0xf55b, 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561, - 0xf562, 0xf563, 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569, - 0xf56a, 0xf56b, 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571, - 0xf572, 0xf573, 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579, - 0xf57a, 0xf57b, 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582, - 0xf583, 0xf584, 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a, - 0xf58b, 0xf58c, 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592, - 0xf593, 0xf594, 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a, - 0xf59b, 0xf59c, 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641, - 0xf642, 0xf643, 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649, - 0xf64a, 0xf64b, 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651, - 0xf652, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659, - 0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661, - 0xf662, 0xf663, 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669, - 0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671, - 0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679, - 0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682, - 0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a, - 0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692, - 0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a, - 0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741, - 0xf742, 0xf743, 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749, - 0xf74a, 0xf74b, 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751, - 0xf752, 0xf753, 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, - 0xf75a, 0xf75b, 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, - 0xf762, 0xf763, 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, - 0xf76a, 0xf76b, 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, - 0xf772, 0xf773, 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, - 0xf77a, 0xf77b, 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xf781, 0xf782, - 0xf783, 0xf784, 0xf785, 0xf786, 0xf787, 0xf788, 0xf789, 0xf78a, - 0xf78b, 0xf78c, 0xf78d, 0xf78e, 0xf78f, 0xf790, 0xf791, 0xf792, - 0xf793, 0xf794, 0xf795, 0xf796, 0xf797, 0xf798, 0xf799, 0xf79a, - 0xf79b, 0xf79c, 0xf79d, 0xf79e, 0xf79f, 0xf7a0, 0xf840, 0xf841, - 0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, - 0xf84a, 0xf84b, 0xf84c, 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851, - 0xf852, 0xf853, 0xf854, 0xf855, 0xf856, 0xf857, 0xf858, 0xf859, - 0xf85a, 0xf85b, 0xf85c, 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861, - 0xf862, 0xf863, 0xf864, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, - 0xf86a, 0xf86b, 0xf86c, 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871, - 0xf872, 0xf873, 0xf874, 0xf875, 0xf876, 0xf877, 0xf878, 0xf879, - 0xf87a, 0xf87b, 0xf87c, 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882, - 0xf883, 0xf884, 0xf885, 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a, - 0xf88b, 0xf88c, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, - 0xf893, 0xf894, 0xf895, 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a, - 0xf89b, 0xf89c, 0xf89d, 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941, - 0xf942, 0xf943, 0xf944, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, - 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, - 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0xf958, 0xf959, - 0xf95a, 0xf95b, 0xf95c, 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961, - 0xf962, 0xf963, 0xf964, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, - 0xf96a, 0xf96b, 0xf96c, 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971, - 0xf972, 0xf973, 0xf974, 0xf975, 0xf976, 0xf977, 0xf978, 0xf979, - 0xf97a, 0xf97b, 0xf97c, 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982, - 0xf983, 0xf984, 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a, - 0xf98b, 0xf98c, 0xf98d, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992, - 0xf993, 0xf994, 0xf995, 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a, - 0xf99b, 0xf99c, 0xf99d, 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41, - 0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, - 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, - 0xfa52, 0xfa53, 0xfa54, 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59, - 0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61, - 0xfa62, 0xfa63, 0xfa64, 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69, - 0xfa6a, 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, - 0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79, - 0xfa7a, 0xfa7b, 0xfa7c, 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, - 0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a, - 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92, - 0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a, - 0xfa9b, 0xfa9c, 0xfa9d, 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41, - 0xfb42, 0xfb43, 0xfb44, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, - 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, - 0xfb52, 0xfb53, 0xfb54, 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59, - 0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d, 0xfb5e, 0xfb5f, 0xfb60, 0xfb61, - 0xfb62, 0xfb63, 0xfb64, 0xfb65, 0xfb66, 0xfb67, 0xfb68, 0xfb69, - 0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d, 0xfb6e, 0xfb6f, 0xfb70, 0xfb71, - 0xfb72, 0xfb73, 0xfb74, 0xfb75, 0xfb76, 0xfb77, 0xfb78, 0xfb79, - 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xfb7e, 0xfb80, 0xfb81, 0xfb82, - 0xfb83, 0xfb84, 0xfb85, 0xfb86, 0xfb87, 0xfb88, 0xfb89, 0xfb8a, - 0xfb8b, 0xfb8c, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, 0xfb91, 0xfb92, - 0xfb93, 0xfb94, 0xfb95, 0xfb96, 0xfb97, 0xfb98, 0xfb99, 0xfb9a, - 0xfb9b, 0xfb9c, 0xfb9d, 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41, - 0xfc42, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xfc49, - 0xfc4a, 0xfc4b, 0xfc4c, 0xfc4d, 0xfc4e, 0xfc4f, 0xfc50, 0xfc51, - 0xfc52, 0xfc53, 0xfc54, 0xfc55, 0xfc56, 0xfc57, 0xfc58, 0xfc59, - 0xfc5a, 0xfc5b, 0xfc5c, 0xfc5d, 0xfc5e, 0xfc5f, 0xfc60, 0xfc61, - 0xfc62, 0xfc63, 0xfc64, 0xfc65, 0xfc66, 0xfc67, 0xfc68, 0xfc69, - 0xfc6a, 0xfc6b, 0xfc6c, 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, - 0xfc72, 0xfc73, 0xfc74, 0xfc75, 0xfc76, 0xfc77, 0xfc78, 0xfc79, - 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, 0xfc82, - 0xfc83, 0xfc84, 0xfc85, 0xfc86, 0xfc87, 0xfc88, 0xfc89, 0xfc8a, - 0xfc8b, 0xfc8c, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92, - 0xfc93, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, 0xfc99, 0xfc9a, - 0xfc9b, 0xfc9c, 0xfc9d, 0xfc9e, 0xfc9f, 0xfca0, 0xfd40, 0xfd41, - 0xfd42, 0xfd43, 0xfd44, 0xfd45, 0xfd46, 0xfd47, 0xfd48, 0xfd49, - 0xfd4a, 0xfd4b, 0xfd4c, 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51, - 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 0xfd58, 0xfd59, - 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, 0xfd61, - 0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69, - 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, - 0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 0xfd78, 0xfd79, - 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfd80, 0xfd81, 0xfd82, - 0xfd83, 0xfd84, 0xfd85, 0xfd86, 0xfd87, 0xfd88, 0xfd89, 0xfd8a, - 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92, - 0xfd93, 0xfd94, 0xfd95, 0xfd96, 0xfd97, 0xfd98, 0xfd99, 0xfd9a, - 0xfd9b, 0xfd9c, 0xfd9d, 0xfd9e, 0xfd9f, 0xfda0, 0xfe40, 0xfe41, - 0xfe42, 0xfe43, 0xfe44, 0xfe45, 0xfe46, 0xfe47, 0xfe48, 0xfe49, - 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xa955, 0xa968, - 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970, - 0xa971, 0xa972, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978, - 0xa979, 0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa97e, 0xa980, 0xa981, - 0xa982, 0xa983, 0xa984, 0xa985, 0xa986, 0xa987, 0xa988, 0xa956, - 0xa957, -}; - -static const Summary16 gbkext_inv_uni2indx_page02[14] = { - /* 0x0200 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0c00 }, { 2, 0x0200 }, -}; -static const Summary16 gbkext_inv_uni2indx_page20[44] = { - /* 0x2000 */ - { 3, 0x0000 }, { 3, 0x0029 }, { 6, 0x0020 }, { 7, 0x0020 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - /* 0x2100 */ - { 8, 0x0220 }, { 10, 0x0000 }, { 10, 0x0002 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x03c0 }, { 15, 0x0000 }, { 15, 0x0000 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, - /* 0x2200 */ - { 15, 0x0000 }, { 15, 0x8020 }, { 17, 0x0008 }, { 18, 0x0000 }, - { 18, 0x0000 }, { 18, 0x0004 }, { 19, 0x00c0 }, { 21, 0x0000 }, - { 21, 0x0000 }, { 21, 0x0020 }, { 22, 0x0000 }, { 22, 0x8000 }, -}; -static const Summary16 gbkext_inv_uni2indx_page25[17] = { - /* 0x2500 */ - { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, - { 23, 0x0000 }, { 23, 0xffff }, { 39, 0xffff }, { 55, 0x000f }, - { 59, 0xfffe }, { 74, 0x0038 }, { 77, 0x0000 }, { 77, 0x3000 }, - { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x003c }, { 83, 0x0000 }, - /* 0x2600 */ - { 83, 0x0200 }, -}; -static const Summary16 gbkext_inv_uni2indx_page30[16] = { - /* 0x3000 */ - { 84, 0x00c0 }, { 86, 0x6004 }, { 89, 0x03fe }, { 98, 0x0000 }, - { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, - { 98, 0x0000 }, { 98, 0x7800 }, { 102, 0x0000 }, { 102, 0x0000 }, - { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x7000 }, -}; -static const Summary16 gbkext_inv_uni2indx_page32[30] = { - /* 0x3200 */ - { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0002 }, - { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, - { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0008 }, { 107, 0x0000 }, - { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, - /* 0x3300 */ - { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, - { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, - { 107, 0xc000 }, { 109, 0x7000 }, { 112, 0x0002 }, { 113, 0x0000 }, - { 113, 0x4010 }, { 115, 0x0026 }, -}; -static const Summary16 gbkext_inv_uni2indx_page4e[1307] = { - /* 0x4e00 */ - { 118, 0x8074 }, { 123, 0x8084 }, { 126, 0xc24b }, { 133, 0x10aa }, - { 138, 0x0457 }, { 144, 0x0ca2 }, { 149, 0xfdbc }, { 161, 0xbff4 }, - { 173, 0x04bf }, { 181, 0x72c1 }, { 188, 0x8408 }, { 191, 0x73d3 }, - { 201, 0x9100 }, { 204, 0x1c05 }, { 209, 0xe2c5 }, { 217, 0x5712 }, - /* 0x4f00 */ - { 224, 0x19fd }, { 234, 0x307c }, { 241, 0x730a }, { 248, 0xcaaa }, - { 256, 0x1fb7 }, { 267, 0x0054 }, { 270, 0x6d46 }, { 278, 0x27a6 }, - { 286, 0x54e7 }, { 295, 0xd76d }, { 306, 0x2816 }, { 311, 0x7fdf }, - { 325, 0x3bc7 }, { 335, 0x0a7c }, { 342, 0x18b5 }, { 349, 0xbaf5 }, - /* 0x5000 */ - { 360, 0x4fff }, { 373, 0x68eb }, { 382, 0x889d }, { 389, 0xabff }, - { 402, 0x2e77 }, { 412, 0xebdf }, { 425, 0xefdf }, { 439, 0x373f }, - { 450, 0xdede }, { 462, 0xffff }, { 478, 0xec57 }, { 488, 0xf3fb }, - { 501, 0x7fff }, { 516, 0xfbbf }, { 530, 0x8f3f }, { 541, 0xf7d7 }, - /* 0x5100 */ - { 554, 0xf73f }, { 567, 0xfffb }, { 582, 0xfffd }, { 597, 0x7fff }, - { 612, 0xd484 }, { 618, 0xeb8d }, { 628, 0x86db }, { 637, 0xc404 }, - { 641, 0xccd8 }, { 649, 0xe51b }, { 658, 0x67ca }, { 667, 0xc710 }, - { 673, 0x652e }, { 681, 0xd7fd }, { 694, 0x57ec }, { 704, 0x4096 }, - /* 0x5200 */ - { 709, 0x9a30 }, { 715, 0xd039 }, { 722, 0x94ee }, { 731, 0x5036 }, - { 737, 0xcbf0 }, { 746, 0xafac }, { 756, 0x795d }, { 766, 0x5ffb }, - { 779, 0xfef9 }, { 792, 0x17f6 }, { 802, 0xc0f0 }, { 808, 0x3ff1 }, - { 819, 0xf577 }, { 831, 0x7eba }, { 842, 0xffef }, { 857, 0x39fe }, - /* 0x5300 */ - { 868, 0x5e9e }, { 878, 0xd91e }, { 887, 0xbbb4 }, { 897, 0x31ff }, - { 908, 0x3855 }, { 915, 0x2b11 }, { 921, 0x3520 }, { 926, 0x7a44 }, - { 933, 0xc58b }, { 941, 0x5adf }, { 952, 0xbc93 }, { 961, 0x77bf }, - { 974, 0xc0f9 }, { 982, 0x742d }, { 990, 0x0086 }, { 993, 0xc410 }, - /* 0x5400 */ - { 997, 0x08a5 }, { 1002, 0x1710 }, { 1007, 0x0434 }, { 1011, 0xa4c9 }, - { 1018, 0xf2b6 }, { 1028, 0xe402 }, { 1033, 0xfeab }, { 1045, 0xc611 }, - { 1051, 0x27aa }, { 1059, 0xd18a }, { 1066, 0x4027 }, { 1071, 0x56e5 }, - { 1080, 0x0c28 }, { 1084, 0x0940 }, { 1087, 0x981f }, { 1095, 0x4bf3 }, - /* 0x5500 */ - { 1105, 0x7d3d }, { 1116, 0xf7ec }, { 1128, 0x2b62 }, { 1135, 0x2f74 }, - { 1144, 0xf9a5 }, { 1154, 0xef9e }, { 1166, 0x8b0d }, { 1173, 0xa61f }, - { 1182, 0x7060 }, { 1187, 0x4ced }, { 1196, 0xff7f }, { 1211, 0x9555 }, - { 1219, 0xcdcf }, { 1230, 0x4fa1 }, { 1238, 0x6285 }, { 1244, 0x9f53 }, - /* 0x5600 */ - { 1254, 0x2cfc }, { 1263, 0x36ff }, { 1275, 0xcf67 }, { 1286, 0x75a9 }, - { 1295, 0x8fff }, { 1308, 0xec6f }, { 1319, 0xe0eb }, { 1328, 0xe7bd }, - { 1340, 0x3f9f }, { 1352, 0xfff7 }, { 1367, 0x7ff7 }, { 1381, 0xef7f }, - { 1395, 0xfbff }, { 1410, 0x136f }, { 1419, 0xd7e8 }, { 1429, 0x19cc }, - /* 0x5700 */ - { 1436, 0xf8a7 }, { 1446, 0x6fff }, { 1460, 0x08f7 }, { 1468, 0xb1f6 }, - { 1478, 0x0b7a }, { 1486, 0x037c }, { 1493, 0x50ac }, { 1499, 0xe737 }, - { 1510, 0xe783 }, { 1519, 0xf7f3 }, { 1532, 0x9520 }, { 1537, 0xfeeb }, - { 1550, 0x37f3 }, { 1561, 0x58cb }, { 1569, 0x5fee }, { 1581, 0xd8ef }, - /* 0x5800 */ - { 1592, 0xd73a }, { 1602, 0xbddd }, { 1614, 0xfbec }, { 1626, 0xffde }, - { 1640, 0xcfef }, { 1653, 0xbeed }, { 1665, 0xe7df }, { 1678, 0xbfff }, - { 1693, 0xfdd4 }, { 1704, 0x39f3 }, { 1714, 0xfcff }, { 1728, 0xefff }, - { 1743, 0xffdd }, { 1757, 0xffdd }, { 1771, 0xa7ef }, { 1783, 0xfdb6 }, - /* 0x5900 */ - { 1795, 0x5f6b }, { 1806, 0x698f }, { 1815, 0x114f }, { 1822, 0xe86d }, - { 1831, 0x3469 }, { 1838, 0xfa0d }, { 1847, 0xffda }, { 1860, 0xdca7 }, - { 1870, 0xda21 }, { 1877, 0xbd33 }, { 1887, 0x30c7 }, { 1894, 0xb5fb }, - { 1906, 0xf3bf }, { 1919, 0xca60 }, { 1925, 0xeed7 }, { 1937, 0x75ff }, - /* 0x5a00 */ - { 1950, 0xec05 }, { 1957, 0x6ef5 }, { 1968, 0xfdd6 }, { 1980, 0xefa9 }, - { 1991, 0xf9be }, { 2003, 0xfbdf }, { 2017, 0xfb7b }, { 2030, 0x7b0f }, - { 2040, 0xffff }, { 2056, 0xf3fb }, { 2069, 0xfbff }, { 2084, 0xbed3 }, - { 2095, 0xedf9 }, { 2107, 0xeeab }, { 2118, 0xf5b4 }, { 2128, 0xfffd }, - /* 0x5b00 */ - { 2143, 0xfdff }, { 2158, 0xff3f }, { 2172, 0xffff }, { 2188, 0xff6b }, - { 2201, 0xfffe }, { 2216, 0x4044 }, { 2219, 0xe983 }, { 2227, 0xdbd4 }, - { 2237, 0x6444 }, { 2242, 0x8057 }, { 2248, 0xf380 }, { 2255, 0x1c86 }, - { 2261, 0xef0b }, { 2271, 0x1ff2 }, { 2281, 0xbecd }, { 2292, 0x60fe }, - /* 0x5c00 */ - { 2301, 0x79ad }, { 2311, 0xca8d }, { 2319, 0xef4b }, { 2330, 0x00ed }, - { 2336, 0x30d8 }, { 2342, 0xbddc }, { 2353, 0x3f94 }, { 2362, 0x79fd }, - { 2374, 0xcef9 }, { 2385, 0xe02c }, { 2391, 0xc5f3 }, { 2401, 0x5e55 }, - { 2410, 0xf7ed }, { 2423, 0xfdfb }, { 2437, 0xda8d }, { 2446, 0xf7fe }, - /* 0x5d00 */ - { 2460, 0xbf33 }, { 2471, 0xb7af }, { 2483, 0x9d2f }, { 2493, 0x9fef }, - { 2506, 0xe37f }, { 2518, 0xd6ff }, { 2531, 0x65ff }, { 2543, 0xffef }, - { 2558, 0xfffb }, { 2573, 0xddff }, { 2587, 0xffff }, { 2603, 0xff7f }, - { 2618, 0xdfdf }, { 2632, 0x97ff }, { 2645, 0x3419 }, { 2651, 0x9f61 }, - /* 0x5e00 */ - { 2660, 0x6e91 }, { 2668, 0xc08c }, { 2673, 0x9f3f }, { 2685, 0xc67d }, - { 2695, 0xefcb }, { 2707, 0xb7cf }, { 2719, 0xfff9 }, { 2733, 0x42a3 }, - { 2739, 0x732e }, { 2748, 0x2904 }, { 2752, 0xdf1e }, { 2763, 0xbc17 }, - { 2772, 0xf9ff }, { 2786, 0xf7b1 }, { 2797, 0xfaff }, { 2811, 0x3b2f }, - /* 0x5f00 */ - { 2821, 0x72e0 }, { 2828, 0x7655 }, { 2837, 0x591e }, { 2845, 0xe9fd }, - { 2857, 0xfffe }, { 2872, 0xde12 }, { 2880, 0xc9a9 }, { 2888, 0xe574 }, - { 2897, 0xe048 }, { 2902, 0xec5a }, { 2911, 0x9afd }, { 2922, 0xcf5f }, - { 2934, 0x4d87 }, { 2942, 0xdc38 }, { 2950, 0x936c }, { 2958, 0x16dd }, - /* 0x6000 */ - { 2967, 0x1b80 }, { 2972, 0xc58b }, { 2980, 0x701c }, { 2986, 0x67df }, - { 2998, 0xd7f1 }, { 3009, 0xd9da }, { 3019, 0x4063 }, { 3024, 0x40b6 }, - { 3030, 0xcde7 }, { 3041, 0x53ab }, { 3050, 0x46b6 }, { 3058, 0xe6e9 }, - { 3068, 0xf39f }, { 3080, 0x4add }, { 3089, 0x043e }, { 3095, 0xf9a6 }, - /* 0x6100 */ - { 3105, 0x1cbc }, { 3113, 0x7bdf }, { 3126, 0xf726 }, { 3136, 0x7fff }, - { 3151, 0xaaff }, { 3163, 0xdfdd }, { 3176, 0xfe7b }, { 3189, 0xff5e }, - { 3202, 0xb7ff }, { 3216, 0xdfef }, { 3230, 0xec7f }, { 3242, 0xbf7f }, - { 3256, 0xf2fb }, { 3268, 0xffe9 }, { 3281, 0xffbf }, { 3296, 0x7fdf }, - /* 0x6200 */ - { 3310, 0x02bf }, { 3318, 0x7218 }, { 3324, 0xabc9 }, { 3333, 0x1f67 }, - { 3343, 0x8474 }, { 3349, 0xf6e1 }, { 3359, 0x0137 }, { 3365, 0x2db6 }, - { 3374, 0xf9ee }, { 3386, 0x7211 }, { 3392, 0xe6c8 }, { 3400, 0x45dd }, - { 3409, 0x880b }, { 3414, 0x6022 }, { 3418, 0x0c13 }, { 3423, 0x0f25 }, - /* 0x6300 */ - { 3430, 0xbc79 }, { 3440, 0x13bd }, { 3449, 0x72c0 }, { 3455, 0xd9fb }, - { 3467, 0x0593 }, { 3473, 0x3fde }, { 3485, 0x9d71 }, { 3494, 0xf33d }, - { 3505, 0x287a }, { 3512, 0xfeba }, { 3524, 0x8852 }, { 3529, 0xaa66 }, - { 3537, 0x1daf }, { 3547, 0xbfba }, { 3559, 0xd9f4 }, { 3569, 0x5eab }, - /* 0x6400 */ - { 3579, 0x67d8 }, { 3588, 0xa7e6 }, { 3598, 0xcbbc }, { 3608, 0x5bef }, - { 3620, 0xfa0d }, { 3629, 0xbeeb }, { 3641, 0xdd7f }, { 3654, 0xf8ff }, - { 3667, 0xff4b }, { 3679, 0xbd99 }, { 3689, 0x8def }, { 3700, 0xea5e }, - { 3710, 0x9fda }, { 3721, 0xbe7a }, { 3732, 0xffab }, { 3745, 0xffff }, - /* 0x6500 */ - { 3761, 0xfdfe }, { 3775, 0xfefb }, { 3789, 0x37df }, { 3801, 0x348f }, - { 3809, 0x6cdf }, { 3820, 0x959d }, { 3829, 0xe7b3 }, { 3840, 0xff6a }, - { 3852, 0xe77f }, { 3865, 0x6574 }, { 3873, 0x554d }, { 3881, 0xcdfe }, - { 3893, 0x2785 }, { 3900, 0xff3b }, { 3913, 0x0c1a }, { 3918, 0xfb3c }, - /* 0x6600 */ - { 3929, 0x2bb2 }, { 3937, 0x5dc7 }, { 3947, 0x5e5e }, { 3957, 0xaf8d }, - { 3967, 0x67f5 }, { 3978, 0x7b03 }, { 3986, 0x3ead }, { 3996, 0xbb2e }, - { 4006, 0xef6b }, { 4018, 0xdf3d }, { 4030, 0xbe7f }, { 4043, 0xbdef }, - { 4056, 0xffff }, { 4072, 0xc5ff }, { 4084, 0xfdbf }, { 4098, 0x2d62 }, - /* 0x6700 */ - { 4105, 0xd0fe }, { 4115, 0x574e }, { 4124, 0x42bf }, { 4133, 0xdbcd }, - { 4144, 0x2cb2 }, { 4151, 0x2fb4 }, { 4160, 0x58dc }, { 4168, 0x2f52 }, - { 4176, 0xf56d }, { 4187, 0x8a5e }, { 4195, 0x5253 }, { 4202, 0xfe16 }, - { 4212, 0x7fe5 }, { 4224, 0x88e0 }, { 4229, 0x6dda }, { 4239, 0x5fe4 }, - /* 0x6800 */ - { 4249, 0x205e }, { 4255, 0xdf35 }, { 4266, 0xf9fd }, { 4279, 0x8c73 }, - { 4287, 0xa880 }, { 4291, 0xffc4 }, { 4302, 0xf400 }, { 4307, 0xff2f }, - { 4320, 0x7f95 }, { 4331, 0xff77 }, { 4345, 0x5e3b }, { 4355, 0xffd6 }, - { 4368, 0xd5fa }, { 4379, 0xfadb }, { 4391, 0xbff6 }, { 4404, 0xe9dc }, - /* 0x6900 */ - { 4414, 0x97dd }, { 4425, 0x7ffa }, { 4438, 0xdfee }, { 4451, 0x5dee }, - { 4462, 0xfffb }, { 4477, 0x9b6f }, { 4488, 0xb7b6 }, { 4499, 0xec7d }, - { 4510, 0xdc2a }, { 4518, 0xe6cf }, { 4529, 0xd67f }, { 4541, 0xf76d }, - { 4553, 0xabfd }, { 4565, 0x77ee }, { 4577, 0xdffe }, { 4591, 0x5ffb }, - /* 0x6a00 */ - { 4604, 0xfbff }, { 4619, 0x7e7f }, { 4632, 0x7afd }, { 4644, 0x9fdd }, - { 4656, 0xff6f }, { 4670, 0xf4fe }, { 4682, 0xffdd }, { 4696, 0xedfd }, - { 4709, 0xbfee }, { 4722, 0xff7c }, { 4735, 0xe5fe }, { 4747, 0xffff }, - { 4763, 0xffff }, { 4779, 0xffff }, { 4795, 0xffff }, { 4811, 0xffff }, - /* 0x6b00 */ - { 4827, 0xffff }, { 4843, 0xffff }, { 4859, 0xff60 }, { 4869, 0xb97b }, - { 4880, 0xed37 }, { 4891, 0xfdff }, { 4906, 0xfb03 }, { 4915, 0xe5ff }, - { 4928, 0xd121 }, { 4934, 0xf3b3 }, { 4945, 0xfbfd }, { 4959, 0x7f47 }, - { 4970, 0x57d9 }, { 4980, 0xf503 }, { 4988, 0x73fd }, { 5000, 0xddd7 }, - /* 0x6c00 */ - { 5012, 0x5f1f }, { 5023, 0x7084 }, { 5028, 0x3829 }, { 5034, 0xdeca }, - { 5044, 0xf938 }, { 5053, 0x074e }, { 5060, 0xf8ec }, { 5070, 0x9daa }, - { 5079, 0x6c91 }, { 5086, 0x75e6 }, { 5096, 0x9105 }, { 5101, 0x04f1 }, - { 5107, 0xe9cf }, { 5118, 0xb706 }, { 5126, 0x32d0 }, { 5132, 0x8214 }, - /* 0x6d00 */ - { 5136, 0xa76d }, { 5146, 0xb17b }, { 5156, 0xb35f }, { 5167, 0x85d1 }, - { 5174, 0x1215 }, { 5179, 0xa9e1 }, { 5187, 0x39b6 }, { 5196, 0xee6f }, - { 5208, 0xacdb }, { 5218, 0x17c5 }, { 5226, 0x3024 }, { 5230, 0x7edb }, - { 5242, 0xe70e }, { 5251, 0x9cbd }, { 5261, 0xa7ac }, { 5270, 0xe575 }, - /* 0x6e00 */ - { 5280, 0x8bdf }, { 5291, 0xdb2c }, { 5300, 0x55c4 }, { 5307, 0xfaeb }, - { 5319, 0x9fe7 }, { 5331, 0x76a7 }, { 5341, 0xb7ff }, { 5355, 0x3fff }, - { 5369, 0x7d97 }, { 5380, 0x6efe }, { 5392, 0x7b5b }, { 5403, 0xd329 }, - { 5411, 0x7779 }, { 5422, 0x3b45 }, { 5430, 0xfc88 }, { 5438, 0xfdef }, - /* 0x6f00 */ - { 5452, 0x7dbb }, { 5464, 0xffc7 }, { 5477, 0x51ee }, { 5486, 0xbfb5 }, - { 5498, 0xd73f }, { 5510, 0xaeff }, { 5523, 0x9fbb }, { 5535, 0xeaeb }, - { 5546, 0x8cef }, { 5556, 0xefff }, { 5571, 0xff7d }, { 5585, 0xfdb7 }, - { 5598, 0xfdfa }, { 5611, 0xbff9 }, { 5624, 0x3ffc }, { 5636, 0xffff }, - /* 0x7000 */ - { 5652, 0xffff }, { 5668, 0xf3fd }, { 5681, 0xfff7 }, { 5696, 0xfddf }, - { 5710, 0x6fff }, { 5724, 0xbfff }, { 5739, 0x47ff }, { 5751, 0x2e9e }, - { 5760, 0xb9de }, { 5771, 0xcd8b }, { 5780, 0x07ff }, { 5791, 0xc475 }, - { 5799, 0xfaf0 }, { 5809, 0x74ff }, { 5821, 0x442f }, { 5828, 0xdd7f }, - /* 0x7100 */ - { 5841, 0xf9ff }, { 5855, 0xf896 }, { 5864, 0x7fbf }, { 5878, 0xffbc }, - { 5891, 0xabdf }, { 5903, 0xafff }, { 5917, 0xbe2f }, { 5928, 0xdaf3 }, - { 5939, 0x7bef }, { 5952, 0x7cef }, { 5964, 0xeefe }, { 5977, 0xfdd7 }, - { 5990, 0xbff7 }, { 6004, 0xffcf }, { 6018, 0xbf5e }, { 6030, 0xfdff }, - /* 0x7200 */ - { 6045, 0xffbf }, { 6060, 0xdfff }, { 6075, 0xeaff }, { 6088, 0x541c }, - { 6094, 0xce7f }, { 6106, 0x55bb }, { 6116, 0x3d39 }, { 6125, 0x39db }, - { 6135, 0x53ec }, { 6144, 0x7ffb }, { 6158, 0x4fff }, { 6171, 0xfc2e }, - { 6181, 0x9ee1 }, { 6190, 0xbd7a }, { 6201, 0x0cfc }, { 6209, 0xe260 }, - /* 0x7300 */ - { 6215, 0xbbf5 }, { 6227, 0x8717 }, { 6235, 0xa1d9 }, { 6243, 0x3c6d }, - { 6252, 0xdfff }, { 6267, 0xff7a }, { 6280, 0x4ffe }, { 6292, 0xbfff }, - { 6307, 0xb56f }, { 6318, 0x77bd }, { 6330, 0x35fb }, { 6341, 0xf372 }, - { 6351, 0x58fa }, { 6360, 0xbdfc }, { 6372, 0xdd5e }, { 6383, 0xfffb }, - /* 0x7400 */ - { 6398, 0x7997 }, { 6408, 0xf3fe }, { 6421, 0xaa9b }, { 6430, 0xef86 }, - { 6440, 0xfffd }, { 6455, 0x215f }, { 6463, 0xdfff }, { 6478, 0xbf3e }, - { 6490, 0xb774 }, { 6500, 0xaffe }, { 6513, 0xfc7f }, { 6526, 0xfbff }, - { 6541, 0xffff }, { 6557, 0xaffb }, { 6570, 0x3fa2 }, { 6579, 0x7f2f }, - /* 0x7500 */ - { 6591, 0x5fef }, { 6604, 0x68f5 }, { 6613, 0x44df }, { 6622, 0xb250 }, - { 6628, 0x26de }, { 6637, 0xe1ef }, { 6648, 0xfb9f }, { 6661, 0x7ceb }, - { 6672, 0x77b7 }, { 6684, 0x5929 }, { 6691, 0x27c4 }, { 6698, 0x8cc0 }, - { 6703, 0xd843 }, { 6710, 0xb68b }, { 6719, 0xf223 }, { 6727, 0x6dec }, - /* 0x7600 */ - { 6737, 0xebd4 }, { 6747, 0x745e }, { 6756, 0xd18a }, { 6763, 0x2ec6 }, - { 6771, 0xcff6 }, { 6783, 0xafaf }, { 6795, 0x77f7 }, { 6808, 0x96ff }, - { 6820, 0xb62b }, { 6829, 0xfdb5 }, { 6841, 0xbfef }, { 6855, 0x7fe9 }, - { 6867, 0x1a9b }, { 6875, 0x7628 }, { 6882, 0x3fdf }, { 6895, 0xace9 }, - /* 0x7700 */ - { 6904, 0xd46d }, { 6913, 0x79ff }, { 6926, 0x5cba }, { 6935, 0xea1f }, - { 6945, 0xff74 }, { 6957, 0xf3fc }, { 6969, 0xe691 }, { 6977, 0x1dff }, - { 6989, 0x8fce }, { 6999, 0x7ff9 }, { 7012, 0xe95a }, { 7021, 0x57d6 }, - { 7031, 0xdfff }, { 7046, 0xe77f }, { 7059, 0x8553 }, { 7066, 0x1eb7 }, - /* 0x7800 */ - { 7076, 0xcdf8 }, { 7086, 0x4a29 }, { 7092, 0xcd17 }, { 7101, 0xa06e }, - { 7108, 0xaf5e }, { 7119, 0xdf1a }, { 7129, 0x83ff }, { 7140, 0xef7f }, - { 7154, 0x8d7f }, { 7165, 0x6275 }, { 7173, 0xff55 }, { 7185, 0xbde0 }, - { 7194, 0xf1dd }, { 7205, 0xfdce }, { 7217, 0xeeff }, { 7231, 0xfb6b }, - /* 0x7900 */ - { 7243, 0xffdd }, { 7257, 0xbff7 }, { 7271, 0xffef }, { 7286, 0xa3ef }, - { 7297, 0xfcbc }, { 7308, 0x0337 }, { 7315, 0x5e5a }, { 7324, 0xfa7f }, - { 7337, 0x7bcc }, { 7347, 0xfbff }, { 7362, 0xff7f }, { 7377, 0x91f7 }, - { 7387, 0xd5b4 }, { 7396, 0x7ed9 }, { 7407, 0x5527 }, { 7415, 0xd6fe }, - /* 0x7a00 */ - { 7427, 0x97b2 }, { 7436, 0xbb6f }, { 7448, 0xfff6 }, { 7462, 0x4577 }, - { 7471, 0xffbf }, { 7486, 0xff7d }, { 7500, 0xffff }, { 7516, 0x782e }, - { 7524, 0xdea4 }, { 7533, 0x4e19 }, { 7540, 0xce9e }, { 7550, 0x7ff7 }, - { 7564, 0xf7ff }, { 7579, 0x3dbf }, { 7591, 0x5f96 }, { 7601, 0x59ff }, - /* 0x7b00 */ - { 7613, 0x72a7 }, { 7622, 0xb5cd }, { 7632, 0xa28e }, { 7639, 0xaaf5 }, - { 7649, 0x655f }, { 7659, 0xd2a8 }, { 7666, 0xbffa }, { 7679, 0xb559 }, - { 7688, 0xdfde }, { 7701, 0xcf4e }, { 7711, 0xc039 }, { 7717, 0xfeed }, - { 7730, 0xef3d }, { 7742, 0xd9f5 }, { 7753, 0xbb9d }, { 7764, 0xaf7d }, - /* 0x7c00 */ - { 7776, 0x677f }, { 7788, 0x7fbf }, { 7802, 0xfb3f }, { 7815, 0x7eff }, - { 7829, 0xdffc }, { 7842, 0xffff }, { 7858, 0xffff }, { 7874, 0xc7e7 }, - { 7885, 0xfdff }, { 7900, 0x0e59 }, { 7907, 0xbbcb }, { 7918, 0x8df1 }, - { 7927, 0xca5d }, { 7936, 0x6d1f }, { 7946, 0x7efe }, { 7959, 0xf6ff }, - /* 0x7d00 */ - { 7973, 0xfbff }, { 7988, 0xffff }, { 8004, 0x777a }, { 8015, 0xffff }, - { 8031, 0xffff }, { 8047, 0xffff }, { 8063, 0xbfff }, { 8078, 0xff7f }, - { 8093, 0xffff }, { 8109, 0xffff }, { 8125, 0xbfbf }, { 8139, 0xffff }, - { 8155, 0xffff }, { 8171, 0xffff }, { 8187, 0xffff }, { 8203, 0xffff }, - /* 0x7e00 */ - { 8219, 0xffff }, { 8235, 0xffff }, { 8251, 0xffff }, { 8267, 0xf7ff }, - { 8282, 0xff7d }, { 8296, 0xffff }, { 8312, 0xffff }, { 8328, 0xffff }, - { 8344, 0xfffb }, { 8359, 0x77ff }, { 8373, 0x4000 }, { 8374, 0x1810 }, - { 8377, 0x0000 }, { 8377, 0x0040 }, { 8378, 0x1010 }, { 8380, 0x0200 }, - /* 0x7f00 */ - { 8381, 0x0400 }, { 8382, 0x4001 }, { 8384, 0x0000 }, { 8384, 0xfa80 }, - { 8391, 0xffcb }, { 8404, 0x7a4c }, { 8412, 0xb8f9 }, { 8422, 0xbde9 }, - { 8433, 0xabfd }, { 8445, 0x1bef }, { 8456, 0x7f6d }, { 8468, 0x4cfa }, - { 8477, 0xabdd }, { 8488, 0x7ecf }, { 8500, 0xbd9c }, { 8510, 0xe7f4 }, - /* 0x8000 */ - { 8521, 0xc784 }, { 8528, 0xec0a }, { 8535, 0xf81a }, { 8543, 0x5615 }, - { 8550, 0xc3b3 }, { 8559, 0xfaeb }, { 8571, 0xf9ff }, { 8585, 0x7ffd }, - { 8599, 0xe526 }, { 8607, 0x42b7 }, { 8615, 0x11c8 }, { 8620, 0x0b69 }, - { 8627, 0x8fa0 }, { 8634, 0x813f }, { 8642, 0x404d }, { 8647, 0xcaa0 }, - /* 0x8100 */ - { 8653, 0x19bb }, { 8662, 0xbaa0 }, { 8669, 0x6fff }, { 8683, 0xbeb9 }, - { 8694, 0xe2bf }, { 8705, 0xf9c4 }, { 8714, 0x9d5e }, { 8724, 0x01ec }, - { 8730, 0x7afa }, { 8741, 0xc6fd }, { 8752, 0xfab7 }, { 8764, 0xf3f7 }, - { 8777, 0xebb0 }, { 8786, 0xffff }, { 8802, 0xcb77 }, { 8813, 0xa7e7 }, - /* 0x8200 */ - { 8824, 0xcf88 }, { 8832, 0x27ea }, { 8841, 0x42f1 }, { 8848, 0xb404 }, - { 8853, 0x756f }, { 8864, 0x7aff }, { 8877, 0x3eff }, { 8890, 0x19e2 }, - { 8897, 0x12eb }, { 8905, 0x4c79 }, { 8913, 0x008d }, { 8917, 0x9c64 }, - { 8924, 0x026d }, { 8930, 0x2641 }, { 8935, 0x7784 }, { 8943, 0xf56d }, - /* 0x8300 */ - { 8954, 0x2c01 }, { 8958, 0xe34d }, { 8967, 0x467f }, { 8977, 0xe885 }, - { 8984, 0x7d36 }, { 8994, 0x23e8 }, { 9001, 0x0004 }, { 9002, 0xc67f }, - { 9013, 0xbd9f }, { 9025, 0xa6f3 }, { 9035, 0xf0fe }, { 9046, 0xc820 }, - { 9050, 0x6b5c }, { 9059, 0x4eaf }, { 9069, 0xf9dc }, { 9080, 0xdcf8 }, - /* 0x8400 */ - { 9090, 0x07a5 }, { 9097, 0xcefd }, { 9109, 0xfe0f }, { 9120, 0xcefd }, - { 9132, 0xffbf }, { 9147, 0xe17d }, { 9157, 0xc5f5 }, { 9167, 0xfa95 }, - { 9177, 0xa47b }, { 9186, 0xed7f }, { 9199, 0x7ffd }, { 9213, 0x58eb }, - { 9222, 0xd9ed }, { 9233, 0x5fb4 }, { 9243, 0xef96 }, { 9254, 0x6ffe }, - /* 0x8500 */ - { 9267, 0xefff }, { 9282, 0x7b75 }, { 9293, 0xe7fd }, { 9306, 0xc07f }, - { 9315, 0xf8f7 }, { 9327, 0xbdbf }, { 9340, 0xfeef }, { 9354, 0xb1eb }, - { 9364, 0x7f4f }, { 9376, 0xe7ff }, { 9390, 0x3aef }, { 9401, 0xfd7e }, - { 9414, 0x7dfd }, { 9427, 0xefd6 }, { 9439, 0xfdef }, { 9453, 0x77ff }, - /* 0x8600 */ - { 9467, 0xffdf }, { 9482, 0xffbd }, { 9496, 0xfd7f }, { 9510, 0xeeff }, - { 9524, 0x1fff }, { 9537, 0xbbec }, { 9548, 0xa7fb }, { 9560, 0x01fd }, - { 9568, 0xc3f8 }, { 9577, 0xcfd7 }, { 9589, 0x6867 }, { 9597, 0xfb8c }, - { 9607, 0x312e }, { 9614, 0x34ec }, { 9622, 0x9def }, { 9634, 0xbce0 }, - /* 0x8700 */ - { 9642, 0xd872 }, { 9650, 0xaa53 }, { 9658, 0xbdd1 }, { 9668, 0x376d }, - { 9678, 0xac7f }, { 9689, 0xfd77 }, { 9702, 0xbfc6 }, { 9713, 0x87ae }, - { 9722, 0xd6d3 }, { 9732, 0x7f77 }, { 9745, 0x46ff }, { 9756, 0xdbd7 }, - { 9768, 0xf3be }, { 9780, 0xf7f1 }, { 9792, 0xbbde }, { 9804, 0xbdff }, - /* 0x8800 */ - { 9818, 0xfbf7 }, { 9832, 0xf797 }, { 9844, 0xfff9 }, { 9858, 0xedfb }, - { 9871, 0xcfce }, { 9882, 0xfd6f }, { 9895, 0xa4c1 }, { 9901, 0x1f7a }, - { 9911, 0xd6c9 }, { 9920, 0xefbb }, { 9933, 0xd7eb }, { 9945, 0xef7d }, - { 9958, 0xbd99 }, { 9968, 0x7ccb }, { 9978, 0xfec3 }, { 9989, 0xace4 }, - /* 0x8900 */ - { 9997, 0xfbfb }, { 10011, 0xf1f2 }, { 10021, 0xf3dd }, { 10033, 0xffae }, - { 10046, 0xffed }, { 10060, 0x3fff }, { 10074, 0xffbf }, { 10089, 0x77ff }, - { 10103, 0xffb5 }, { 10116, 0xffff }, { 10132, 0xffff }, { 10148, 0xffff }, - { 10164, 0x2009 }, { 10167, 0xabb8 }, { 10176, 0x7797 }, { 10187, 0xfff7 }, - /* 0x8a00 */ - { 10202, 0xff7e }, { 10216, 0xffff }, { 10232, 0xffff }, { 10248, 0xbfff }, - { 10263, 0xfeff }, { 10278, 0xffff }, { 10294, 0xffff }, { 10310, 0xfdff }, - { 10325, 0xf9ff }, { 10339, 0xfff7 }, { 10354, 0xffff }, { 10370, 0xffff }, - { 10386, 0xffff }, { 10402, 0xffff }, { 10418, 0xffff }, { 10434, 0xffff }, - /* 0x8b00 */ - { 10450, 0xff7f }, { 10465, 0xffff }, { 10481, 0xffbf }, { 10496, 0xffff }, - { 10512, 0xffff }, { 10528, 0xffff }, { 10544, 0xefbf }, { 10558, 0xffff }, - { 10574, 0xffff }, { 10590, 0xffff }, { 10606, 0x1000 }, { 10607, 0x0802 }, - { 10609, 0x0080 }, { 10610, 0x0001 }, { 10611, 0x0400 }, { 10612, 0x0000 }, - /* 0x8c00 */ - { 10612, 0x0200 }, { 10613, 0x4000 }, { 10614, 0x0000 }, { 10614, 0xff00 }, - { 10622, 0xed3d }, { 10633, 0xfbdf }, { 10647, 0xf3f9 }, { 10659, 0xf8f7 }, - { 10671, 0xe9db }, { 10682, 0xfeef }, { 10696, 0xffff }, { 10712, 0xffff }, - { 10728, 0xffff }, { 10744, 0xffff }, { 10760, 0xffff }, { 10776, 0xffff }, - /* 0x8d00 */ - { 10792, 0xffff }, { 10808, 0x1fff }, { 10821, 0x0001 }, { 10822, 0x0000 }, - { 10822, 0x0000 }, { 10822, 0x8086 }, { 10826, 0xd720 }, { 10833, 0xff06 }, - { 10843, 0xf3cd }, { 10854, 0x7fed }, { 10867, 0xfff7 }, { 10882, 0x2ac5 }, - { 10889, 0x27a7 }, { 10898, 0x133d }, { 10906, 0x62e7 }, { 10915, 0xd057 }, - /* 0x8e00 */ - { 10923, 0x69df }, { 10934, 0x1fef }, { 10946, 0x29f3 }, { 10955, 0xd9dd }, - { 10966, 0xf068 }, { 10973, 0xfdf9 }, { 10986, 0x4dbf }, { 10997, 0x6faa }, - { 11007, 0x7f5d }, { 11019, 0xafee }, { 11031, 0x67ff }, { 11044, 0xfbfb }, - { 11058, 0xbfff }, { 11073, 0xffff }, { 11089, 0xffff }, { 11105, 0xffff }, - /* 0x8f00 */ - { 11121, 0xffff }, { 11137, 0xffff }, { 11153, 0xffff }, { 11169, 0xffff }, - { 11185, 0xffff }, { 11201, 0xffff }, { 11217, 0x043f }, { 11224, 0x0000 }, - { 11224, 0x1001 }, { 11226, 0x2004 }, { 11228, 0xf4f7 }, { 11240, 0x9dbc }, - { 11250, 0xbe49 }, { 11259, 0x04c4 }, { 11263, 0x908b }, { 11269, 0xdc76 }, - /* 0x9000 */ - { 11279, 0x5180 }, { 11283, 0x1328 }, { 11288, 0x1fb8 }, { 11297, 0xa69f }, - { 11307, 0x5f69 }, { 11317, 0xf670 }, { 11326, 0x9ed3 }, { 11336, 0x5fcf }, - { 11348, 0xf6f2 }, { 11359, 0xd555 }, { 11368, 0x2bb1 }, { 11376, 0xb084 }, - { 11381, 0x3b4d }, { 11390, 0xc774 }, { 11399, 0x5639 }, { 11407, 0x9eef }, - /* 0x9100 */ - { 11419, 0xffeb }, { 11433, 0xbdff }, { 11447, 0x7ff3 }, { 11460, 0xfdfd }, - { 11474, 0x01b7 }, { 11481, 0x9b7a }, { 11491, 0x29c1 }, { 11497, 0x1c08 }, - { 11501, 0xc55f }, { 11511, 0xf3f8 }, { 11522, 0x1bf3 }, { 11532, 0xfbcf }, - { 11545, 0x097f }, { 11554, 0xeffd }, { 11568, 0xffff }, { 11584, 0xffff }, - /* 0x9200 */ - { 11600, 0xffff }, { 11616, 0xffff }, { 11632, 0xffff }, { 11648, 0xffff }, - { 11664, 0xffff }, { 11680, 0xffff }, { 11696, 0xffff }, { 11712, 0xffef }, - { 11727, 0xbfff }, { 11742, 0xffff }, { 11758, 0xbfff }, { 11773, 0xffff }, - { 11789, 0xfeff }, { 11804, 0xffff }, { 11820, 0xffff }, { 11836, 0xffff }, - /* 0x9300 */ - { 11852, 0xffff }, { 11868, 0xffff }, { 11884, 0xffff }, { 11900, 0xbfff }, - { 11915, 0xffff }, { 11931, 0xffff }, { 11947, 0xfbff }, { 11962, 0xffff }, - { 11978, 0x7fff }, { 11993, 0xffff }, { 12009, 0xffff }, { 12025, 0xffff }, - { 12041, 0xfbff }, { 12056, 0xffbf }, { 12071, 0xffff }, { 12087, 0xffff }, - /* 0x9400 */ - { 12103, 0xffff }, { 12119, 0xffff }, { 12135, 0xffff }, { 12151, 0xbfff }, - { 12166, 0xffff }, { 12182, 0xffff }, { 12198, 0xf7ff }, { 12213, 0xffff }, - { 12229, 0x001f }, { 12234, 0x0142 }, { 12237, 0x0000 }, { 12237, 0x0000 }, - { 12237, 0x8080 }, { 12239, 0x0418 }, { 12242, 0x0040 }, { 12243, 0x0800 }, - /* 0x9500 */ - { 12244, 0x0000 }, { 12244, 0x1000 }, { 12245, 0x0081 }, { 12247, 0x2008 }, - { 12249, 0x0908 }, { 12252, 0x0420 }, { 12254, 0x4001 }, { 12256, 0x7fb0 }, - { 12266, 0xffff }, { 12282, 0xffff }, { 12298, 0xffff }, { 12314, 0xffff }, - { 12330, 0xffff }, { 12346, 0xffff }, { 12362, 0x10ff }, { 12371, 0x8000 }, - /* 0x9600 */ - { 12372, 0x0080 }, { 12373, 0x4908 }, { 12377, 0xbbf9 }, { 12389, 0x4781 }, - { 12395, 0xc40a }, { 12400, 0x77ce }, { 12411, 0xe869 }, { 12419, 0xff0b }, - { 12430, 0x569f }, { 12440, 0xec6e }, { 12450, 0xff7f }, { 12465, 0x8db6 }, - { 12474, 0x0d0c }, { 12479, 0xffdb }, { 12493, 0x78fe }, { 12504, 0xbd37 }, - /* 0x9700 */ - { 12515, 0x1c2c }, { 12521, 0xafb7 }, { 12533, 0xdbff }, { 12547, 0xbcfa }, - { 12558, 0xffff }, { 12574, 0xb5b3 }, { 12584, 0xfdd8 }, { 12595, 0xefa7 }, - { 12607, 0xd7df }, { 12620, 0xfee9 }, { 12632, 0x57f6 }, { 12643, 0xffeb }, - { 12657, 0xffff }, { 12673, 0xffff }, { 12689, 0xc13f }, { 12698, 0xff97 }, - /* 0x9800 */ - { 12711, 0xffff }, { 12727, 0xffff }, { 12743, 0xffff }, { 12759, 0xffff }, - { 12775, 0xffff }, { 12791, 0xffff }, { 12807, 0xffff }, { 12823, 0x001f }, - { 12828, 0x4800 }, { 12830, 0x0224 }, { 12833, 0xff08 }, { 12842, 0xffff }, - { 12858, 0xbfff }, { 12873, 0x38d1 }, { 12880, 0xfe7f }, { 12894, 0xffff }, - /* 0x9900 */ - { 12910, 0xdfff }, { 12925, 0xfffe }, { 12940, 0xbfff }, { 12955, 0xffff }, - { 12971, 0xffff }, { 12987, 0xffcf }, { 13001, 0x0057 }, { 13006, 0x4b08 }, - { 13011, 0x520c }, { 13016, 0xfc00 }, { 13022, 0xfedf }, { 13036, 0xffff }, - { 13052, 0xffff }, { 13068, 0xffff }, { 13084, 0xffff }, { 13100, 0xffff }, - /* 0x9a00 */ - { 13116, 0xffff }, { 13132, 0xffff }, { 13148, 0xffff }, { 13164, 0xffff }, - { 13180, 0xffff }, { 13196, 0xffff }, { 13212, 0x0fff }, { 13224, 0x0004 }, - { 13225, 0x6208 }, { 13229, 0x0230 }, { 13232, 0xfe40 }, { 13240, 0xea3c }, - { 13249, 0xe7d8 }, { 13259, 0x7ef5 }, { 13271, 0x57bd }, { 13282, 0xf5ff }, - /* 0x9b00 */ - { 13296, 0x7ef7 }, { 13309, 0x7ff7 }, { 13323, 0x7ff7 }, { 13337, 0xe7fb }, - { 13350, 0x5c41 }, { 13356, 0xffed }, { 13370, 0xffff }, { 13386, 0xffff }, - { 13402, 0xffff }, { 13418, 0xffff }, { 13434, 0xffff }, { 13450, 0xffff }, - { 13466, 0xffff }, { 13482, 0xffff }, { 13498, 0xffff }, { 13514, 0xffff }, - /* 0x9c00 */ - { 13530, 0xffff }, { 13546, 0xffff }, { 13562, 0xffff }, { 13578, 0xffff }, - { 13594, 0xffff }, { 13610, 0xffff }, { 13626, 0xffff }, { 13642, 0x6fff }, - { 13656, 0x9619 }, { 13663, 0x23c8 }, { 13669, 0x9400 }, { 13672, 0xc200 }, - { 13675, 0x0307 }, { 13680, 0x0c06 }, { 13684, 0xfffb }, { 13699, 0xffff }, - /* 0x9d00 */ - { 13715, 0xffff }, { 13731, 0xffff }, { 13747, 0xffff }, { 13763, 0xffff }, - { 13779, 0xffff }, { 13795, 0xffff }, { 13811, 0xffff }, { 13827, 0xffff }, - { 13843, 0xffff }, { 13859, 0xffff }, { 13875, 0xffff }, { 13891, 0xffff }, - { 13907, 0xffff }, { 13923, 0xffff }, { 13939, 0xffff }, { 13955, 0xffff }, - /* 0x9e00 */ - { 13971, 0xffff }, { 13987, 0x7fff }, { 14002, 0x4090 }, { 14005, 0x1811 }, - { 14009, 0x2001 }, { 14011, 0xa25d }, { 14019, 0xc027 }, { 14025, 0x3ff4 }, - { 14036, 0xf67b }, { 14048, 0x5ff3 }, { 14060, 0xffbf }, { 14075, 0x96ef }, - { 14086, 0x1def }, { 14097, 0x46ed }, { 14106, 0x795a }, { 14115, 0xa5ff }, - /* 0x9f00 */ - { 14127, 0x97ff }, { 14140, 0xfd76 }, { 14152, 0x6ffa }, { 14164, 0x957f }, - { 14175, 0xffef }, { 14190, 0xfffc }, { 14204, 0xffff }, { 14220, 0x7fff }, - { 14235, 0xe006 }, { 14240, 0x71ff }, { 14252, 0x003e }, -}; -static const Summary16 gbkext_inv_uni2indx_pagef9[19] = { - /* 0xf900 */ - { 14257, 0x0000 }, { 14257, 0x0000 }, { 14257, 0x1000 }, { 14258, 0x0000 }, - { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0000 }, { 14258, 0x0200 }, - { 14259, 0x0000 }, { 14259, 0x0020 }, { 14260, 0x0000 }, { 14260, 0x0000 }, - { 14260, 0x0000 }, { 14260, 0x0000 }, { 14260, 0x0080 }, { 14261, 0x0002 }, - /* 0xfa00 */ - { 14262, 0xf000 }, { 14266, 0x811a }, { 14271, 0x039b }, -}; -static const Summary16 gbkext_inv_uni2indx_pagefe[31] = { - /* 0xfe00 */ - { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0000 }, { 14278, 0x0001 }, - { 14279, 0xfe00 }, { 14286, 0xfef7 }, { 14300, 0x0f7f }, { 14311, 0x0000 }, - { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, - { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, - /* 0xff00 */ - { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, - { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, - { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0000 }, - { 14311, 0x0000 }, { 14311, 0x0000 }, { 14311, 0x0014 }, -}; - -static int -gbkext_inv_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0200 && wc < 0x02e0) - summary = &gbkext_inv_uni2indx_page02[(wc>>4)-0x020]; - else if (wc >= 0x2000 && wc < 0x22c0) - summary = &gbkext_inv_uni2indx_page20[(wc>>4)-0x200]; - else if (wc >= 0x2500 && wc < 0x2610) - summary = &gbkext_inv_uni2indx_page25[(wc>>4)-0x250]; - else if (wc >= 0x3000 && wc < 0x3100) - summary = &gbkext_inv_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x3200 && wc < 0x33e0) - summary = &gbkext_inv_uni2indx_page32[(wc>>4)-0x320]; - else if (wc >= 0x4e00 && wc < 0x9fb0) - summary = &gbkext_inv_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0xf900 && wc < 0xfa30) - summary = &gbkext_inv_uni2indx_pagef9[(wc>>4)-0xf90]; - else if (wc >= 0xfe00 && wc < 0xfff0) - summary = &gbkext_inv_uni2indx_pagefe[(wc>>4)-0xfe0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = gbkext_inv_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/georgian_academy.h b/jni/parted/libiconv/lib/georgian_academy.h deleted file mode 100755 index ff00fd3..0000000 --- a/jni/parted/libiconv/lib/georgian_academy.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GEORGIAN-ACADEMY - */ - -static const unsigned short georgian_academy_2uni[32] = { - /* 0x80 */ - 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, - /* 0x90 */ - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, -}; - -static int -georgian_academy_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0x80 && c < 0xa0) - *pwc = (ucs4_t) georgian_academy_2uni[c-0x80]; - else if (c >= 0xc0 && c < 0xe7) - *pwc = (ucs4_t) c + 0x1010; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char georgian_academy_page00[32] = { - 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */ - 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */ -}; -static const unsigned char georgian_academy_page01[72] = { - 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char georgian_academy_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char georgian_academy_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -georgian_academy_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x0080 && wc < 0x00a0) - c = georgian_academy_page00[wc-0x0080]; - else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e7 && wc < 0x0100)) - c = wc; - else if (wc >= 0x0150 && wc < 0x0198) - c = georgian_academy_page01[wc-0x0150]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = georgian_academy_page02[wc-0x02c0]; - else if (wc >= 0x10d0 && wc < 0x10f7) - c = wc-0x1010; - else if (wc >= 0x2010 && wc < 0x2040) - c = georgian_academy_page20[wc-0x2010]; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/georgian_ps.h b/jni/parted/libiconv/lib/georgian_ps.h deleted file mode 100755 index 2809f94..0000000 --- a/jni/parted/libiconv/lib/georgian_ps.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * GEORGIAN-PS - */ - -static const unsigned short georgian_ps_2uni_1[32] = { - /* 0x80 */ - 0x0080, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, - 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, - /* 0x90 */ - 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, -}; -static const unsigned short georgian_ps_2uni_2[39] = { - /* 0xc0 */ - 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10f1, - 0x10d7, 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10f2, 0x10dd, - /* 0xd0 */ - 0x10de, 0x10df, 0x10e0, 0x10e1, 0x10e2, 0x10f3, 0x10e3, 0x10e4, - 0x10e5, 0x10e6, 0x10e7, 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, - /* 0xe0 */ - 0x10ed, 0x10ee, 0x10f4, 0x10ef, 0x10f0, 0x10f5, -}; - -static int -georgian_ps_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0x80 && c < 0xa0) - *pwc = (ucs4_t) georgian_ps_2uni_1[c-0x80]; - else if (c >= 0xc0 && c < 0xe6) - *pwc = (ucs4_t) georgian_ps_2uni_2[c-0xc0]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char georgian_ps_page00[32] = { - 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */ - 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x9e, 0x00, /* 0x98-0x9f */ -}; -static const unsigned char georgian_ps_page01[72] = { - 0x00, 0x00, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x8a, 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char georgian_ps_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char georgian_ps_page10[40] = { - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc8, /* 0xd0-0xd7 */ - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcf, 0xd0, 0xd1, /* 0xd8-0xdf */ - 0xd2, 0xd3, 0xd4, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, /* 0xe0-0xe7 */ - 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe3, /* 0xe8-0xef */ - 0xe4, 0xc7, 0xce, 0xd5, 0xe2, 0xe5, 0x00, 0x00, /* 0xf0-0xf7 */ -}; -static const unsigned char georgian_ps_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; - -static int -georgian_ps_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x0080 && wc < 0x00a0) - c = georgian_ps_page00[wc-0x0080]; - else if ((wc >= 0x00a0 && wc < 0x00c0) || (wc >= 0x00e6 && wc < 0x0100)) - c = wc; - else if (wc >= 0x0150 && wc < 0x0198) - c = georgian_ps_page01[wc-0x0150]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = georgian_ps_page02[wc-0x02c0]; - else if (wc >= 0x10d0 && wc < 0x10f8) - c = georgian_ps_page10[wc-0x10d0]; - else if (wc >= 0x2010 && wc < 0x2040) - c = georgian_ps_page20[wc-0x2010]; - else if (wc == 0x2122) - c = 0x99; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/hkscs1999.h b/jni/parted/libiconv/lib/hkscs1999.h deleted file mode 100755 index 91607d7..0000000 --- a/jni/parted/libiconv/lib/hkscs1999.h +++ /dev/null @@ -1,3004 +0,0 @@ -/* - * Copyright (C) 1999-2006, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * HKSCS:1999 - */ - -static const unsigned short hkscs1999_2uni_page88[627] = { - /* 0x88 */ - 0x06c0, 0x06c1, 0x06c2, 0x06c3, 0x06c4, 0x720c, 0x06c5, 0x71d1, - 0x71cd, 0x06c6, 0x06c7, 0x71cb, 0x8c68, 0x06c8, 0x71ca, 0x06c9, - 0x06ca, 0x06cb, 0x06cc, 0x720e, 0x06cd, 0x06ce, 0x0080, 0x0041, - 0x010d, 0x0040, 0x0092, 0x0049, 0x009a, 0x0048, 0x00cc, 0x0053, - 0x0111, 0x0052, 0x70fd, 0x02be, 0x70fd, 0x02c0, 0x004a, 0x0081, - 0x0061, 0x010e, 0x0060, 0x0151, 0x0093, 0x0069, 0x009b, 0x0068, - 0x00ab, 0x006d, 0x0110, 0x006c, 0x00cd, 0x0073, 0x0112, 0x0072, - 0x00eb, 0x007a, 0x0114, 0x0079, 0x0116, 0x0118, 0x011a, 0x011c, - 0x007c, 0x70fd, 0x02bf, 0x70fd, 0x02c1, 0x006a, 0x0161, 0x041a, - 0x041b, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - /* 0x89 */ - 0xf029, 0x8005, 0x70fd, 0x374a, 0x70fd, 0x70fd, 0x207d, 0x40dd, - 0x6dce, 0x62df, 0x70fd, 0x70fd, 0xd275, 0x36d1, 0x215a, 0x2168, - 0x21e8, 0x2396, 0x23b4, 0x23dc, 0x2424, 0x24e1, 0x24e8, 0x257b, - 0x258e, 0x2611, 0x2618, 0x2922, 0x2b30, 0x2b44, 0x2b47, 0x2b72, - 0x2b74, 0x2da6, 0x2dde, 0x2ddf, 0x2eda, 0x30c6, 0x327b, 0x37c9, - 0x3a3e, 0x3a44, 0x3aa5, 0x3f8e, 0x42bc, 0x4735, 0x50a4, 0x50ac, - 0x50ba, 0x50c7, 0x50cf, 0x50df, 0x5106, 0x5137, 0x547a, 0x54cf, - 0x556f, 0x5b46, 0x5d3e, 0x5d62, 0x60a6, 0x60a7, 0x60ae, 0x4611, - 0x4efc, 0x4fcd, 0x3b86, 0x4cc9, 0x2467, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x628c, 0x4ab8, 0x625e, 0x52bc, 0x70fd, 0x5e4b, 0x52f6, - 0x78e7, 0x70fd, 0x70fd, 0x529f, 0x6f47, 0x1f8d, 0x6e49, 0x6e8c, - 0x1efe, 0xebb6, 0xcd4e, 0x6e8a, 0xee73, 0x0901, 0x70fd, 0x409a, - 0x543e, 0x4719, 0x70fd, 0x1c11, 0x6b6c, 0x6b8f, 0x7019, 0x4b87, - 0xdcac, 0x8a8a, 0x7650, 0x9526, 0x2064, 0x20c1, 0x20c0, 0x20c7, - 0x20ff, 0x212b, 0x2177, 0x078c, 0x21fd, 0x1148, 0x2243, 0x22c8, - 0x07bd, 0x07d3, 0x07e5, 0x23c6, 0x2b45, 0x241b, 0x243c, 0x2445, - 0x20c9, 0x24b9, 0x24d0, 0x2567, 0x0907, 0x25e9, 0x0891, 0x25f0, - 0x0893, 0x2602, 0x2663, 0x08ad, 0x08b2, 0x09c1, 0x26d3, 0x26e3, - 0x26f4, 0x26f9, 0x2710, 0x272f, 0x2758, 0x2763, 0x2768, 0x08d8, - 0x277f, 0x08e5, 0x08ff, 0x2817, 0x0905, - /* 0x8a */ - 0xd784, 0x2765, 0x70fd, 0x7b02, 0x7bd5, 0xb42b, 0x27d0, 0x96c6, - 0x0d2c, 0x7401, 0x5f86, 0xb138, 0xe665, 0x1353, 0xd97e, 0x497a, - 0x9638, 0x0d74, 0x1ad5, 0xda1d, 0xc7b2, 0xb16a, 0x371d, 0x7c3c, - 0x7e74, 0x7b95, 0x7fb4, 0x36cd, 0x5fbe, 0x7d56, 0x7acb, 0x7e24, - 0x96a9, 0xdad6, 0xaa13, 0x70fd, 0x7c06, 0xe9cd, 0xd9a9, 0x1af4, - 0xb227, 0x96c2, 0x6bb2, 0x0da7, 0xe6f4, 0x12ed, 0x0846, 0xb587, - 0xe754, 0xd3c8, 0x9744, 0x6dee, 0x6915, 0x70fd, 0x16d9, 0xbfe5, - 0x36f4, 0x2723, 0x974c, 0x95ca, 0x7f37, 0x0d3b, 0x7f2f, 0xc49a, - 0xc4d6, 0xd4a0, 0x372a, 0xb392, 0x7b03, 0x5fa8, 0x8de1, 0xe14c, - 0x7731, 0x70fd, 0x1b0b, 0x7269, 0x12fa, 0x2ab3, 0x978d, 0x70fd, - 0xaac8, 0x75bc, 0xbfd7, 0x7e0c, 0x7c56, 0x27b9, 0x13bb, 0x16ba, - 0x70fd, 0x1d74, 0x94e6, 0x7f5d, 0x53aa, 0x69f5, 0x7c5c, 0x35b9, - 0x0d3e, 0x9275, 0x5f00, 0x28e1, 0x36bc, 0x1143, 0x70fd, 0xf101, - 0x7cc9, 0x950f, 0x96c9, 0x70fd, 0x7f88, 0xa142, 0x0cd2, 0x0d46, - 0xdb1b, 0x08b8, 0xbdc9, 0x8d07, 0x2892, 0x7df1, 0x96b2, 0xe720, - 0x07fc, 0x3e7d, 0xb1bb, 0x70fd, 0x70fd, 0xd0f4, 0x988b, 0x8e48, - 0xf15b, 0xe24d, 0x7d3a, 0x7af4, 0xc5dc, 0x5193, 0x7f8f, 0x9303, - 0x9439, 0x093b, 0xb4a3, 0x7d4c, 0x7e4d, 0x7d6a, 0x1293, 0x7df0, - 0x7c07, 0x800f, 0x7d0c, 0x70fd, 0x7d6b, 0x7a69, 0x7c08, 0x7f80, - 0x7ffd, 0x12f9, 0x9196, 0x3672, 0x7e6d, - /* 0x8b */ - 0x9d34, 0xd1b9, 0x95ce, 0x7c3e, 0x7c3f, 0x9651, 0x9655, 0x0d58, - 0x7d58, 0x7f87, 0x7dee, 0xf132, 0xc890, 0xe252, 0xe2d9, 0xe24a, - 0x66aa, 0x270c, 0x54c4, 0x27f9, 0x70fd, 0xec83, 0x6d26, 0x6bb6, - 0xd29e, 0x97ee, 0x4340, 0x536d, 0x52ec, 0x2e5c, 0xc3b2, 0x5334, - 0x0ad7, 0x259f, 0xd97d, 0x62b6, 0x7dba, 0x7ccf, 0x7d37, 0x7dbb, - 0x091d, 0xb16b, 0x0949, 0x7b96, 0x28ef, 0x92b5, 0x7f89, 0x7cd0, - 0x7d38, 0x7f38, 0x8008, 0xda87, 0x8315, 0x7d39, 0xb1d0, 0x97a4, - 0x2c94, 0x7edd, 0x7ede, 0x7fb5, 0x7fb6, 0x29dc, 0x7cd1, 0xd214, - 0xdb4d, 0x7e75, 0x7d3b, 0xb47e, 0x0a43, 0x7e76, 0x8040, 0xb598, - 0xefbd, 0xae5a, 0x867a, 0xa6b7, 0xdafc, 0x2ad9, 0x24a8, 0x095a, - 0xb8bd, 0x4db2, 0x2da8, 0x1b00, 0x1dec, 0x6fa7, 0x1ce7, 0x6d1f, - 0x6c8d, 0xbb74, 0x9abd, 0x283b, 0x0932, 0x28c9, 0x2068, 0x2b42, - 0x8901, 0xf238, 0x6851, 0x7186, 0x209b, 0x20fb, 0x087e, 0x2e63, - 0x3191, 0x3204, 0x0c3a, 0x348c, 0x3775, 0x3dba, 0x3e75, 0x3e7a, - 0x426c, 0x442b, 0x206c, 0x44ad, 0xad69, 0x5152, 0x4b3b, 0x4ef9, - 0x5153, 0xc12a, 0x0801, 0x70fd, 0xc1cb, 0x5202, 0x5280, 0xc412, - 0xc711, 0x259d, 0x59e4, 0x5b41, 0xd3b2, 0x5d20, 0x5e5d, 0x6585, - 0x6678, 0x667f, 0x66e8, 0xe30f, 0x68e6, 0x6975, 0x69ce, 0x69de, - 0x6a63, 0xe790, 0x6d7c, 0x6e9f, 0x6f44, 0x3daf, 0x7047, 0x2077, - 0x7187, 0x671d, 0x3477, 0x65a2, -}; -static const unsigned short hkscs1999_2uni_page8d[3140] = { - /* 0x8d */ - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x2f7e, 0x2f88, 0x2f96, 0x10fc, 0x0b4f, 0x2fe4, 0x2ff9, 0x0b60, - 0x0b78, 0x3082, 0x30fd, 0x3165, 0x31c3, 0x0c48, 0x0c54, 0x0c7f, - 0x0c8d, 0x3317, 0x337d, 0x2f25, 0x0cc9, 0x33f7, 0x33f9, 0x340f, - 0x0cf8, 0x346c, 0x34d0, 0x3525, 0x3558, 0x0d38, 0x28f1, 0x0d43, - 0x3622, 0x363b, 0x3647, 0x369a, 0x0d8b, 0x3700, 0x2f55, 0x2861, - 0x701f, 0x0dd7, 0x37c6, 0x0dfd, 0x383f, 0x3893, 0x0e32, 0x38d2, - 0x0e62, 0x3956, 0x0e82, 0x39e4, 0x3a40, 0x0e98, 0x3a8a, 0x3ac4, - 0x0eb2, 0x0eb1, 0x0ebb, 0x3b49, 0x3b83, 0x445c, 0x3ba4, 0x3bdf, - 0x3bc5, 0x0efc, 0x3c16, 0x0f1d, 0x3ca5, 0x3cb4, 0x3cb1, 0x3cc2, - 0x0f2c, 0x3cd9, 0x0f32, 0x3ceb, 0x3cf5, 0x3d14, 0x3d36, 0x3dc1, - 0x3e01, 0x3e2a, 0x3eb5, 0x3eea, 0x0fcb, 0x3f42, 0x3f46, 0x3f66, - 0x3fc1, 0x0fef, 0x3fe4, 0x3ff1, 0x4015, 0x4018, 0x4029, 0x4086, - 0xdfc0, 0x40bb, 0x40e2, 0x40da, 0x6fff, 0x40e8, 0x40e9, 0x4124, - 0x4134, 0x1046, 0xa481, 0x4181, 0x41be, 0x106a, 0x1075, 0x43b7, - 0x2ed9, 0x108a, 0x422c, 0x1091, 0x4250, 0x4254, 0x426f, 0x427f, - 0x4289, 0x73e5, 0x16c1, 0x0931, 0x7d98, - /* 0x8e */ - 0xa417, 0x29fe, 0xcc13, 0x433e, 0xb920, 0x098e, 0x3be2, 0xe1e9, - 0x2db4, 0x4c49, 0xb9a1, 0xe659, 0x4c65, 0x4c7d, 0xba6c, 0x4cbb, - 0x4cb0, 0x4cc2, 0x4cc3, 0x43d1, 0xc30d, 0x14ca, 0x4cda, 0x4cdd, - 0x4cea, 0x14ef, 0x26f2, 0xbc01, 0x4d0b, 0x4d55, 0x4d29, 0xb5ce, - 0xbcfe, 0x4da2, 0x4d6f, 0x559c, 0xbbb4, 0xc9bf, 0x4dd0, 0x5621, - 0x4d92, 0x70fd, 0xbd20, 0x10ad, 0xbc65, 0x5692, 0x4dfa, 0x70fd, - 0x4e35, 0xbcc1, 0x4e44, 0x4e83, 0xad02, 0x4ea6, 0x38bd, 0xaab8, - 0x4ec9, 0x4ec7, 0x4ee6, 0x4e74, 0x4ef3, 0x4ef5, 0x70fd, 0x5067, - 0x181d, 0xcb84, 0x4f5d, 0xcc16, 0x468d, 0x4f89, 0x4fab, 0x4335, - 0x4fb3, 0x70fd, 0xa597, 0xbf69, 0x4fe4, 0x1013, 0x4ff5, 0x8639, - 0x4fe5, 0xdbed, 0x70fd, 0xc021, 0xc05a, 0x506e, 0x5092, 0x162b, - 0x656c, 0x5027, 0x5140, 0x5141, 0x5147, 0x4b36, 0xc150, 0x6ae1, - 0x5197, 0xc1d1, 0x51a3, 0x84a1, 0x7168, 0x185c, 0xa066, 0x1803, - 0xdbba, 0x51fa, 0xc309, 0x70fd, 0x5208, 0x521d, 0x70fd, 0x522f, - 0xedc7, 0xca03, 0x523b, 0x523c, 0x5261, 0x9214, 0x1c89, 0xc426, - 0xa363, 0xc4a8, 0x3965, 0x52a7, 0xe048, 0x5307, 0x531a, 0x2af0, - 0x91f6, 0x3ebf, 0xc318, 0xb2f8, 0x3727, 0x834a, 0x5418, 0x869e, - 0x3c93, 0xaee5, 0xaf15, 0x177a, 0x5429, 0x7a0d, 0xc812, 0xa2fe, - 0x2239, 0x83bd, 0x56e2, 0x5562, 0xc84a, 0xae27, 0x9e30, 0x85b3, - 0xa378, 0x54aa, 0x3b5b, 0xf2d4, 0x14db, - /* 0x8f */ - 0x574b, 0x54d0, 0x551a, 0x7cd6, 0x85f4, 0x0a01, 0x9afd, 0x9e5a, - 0x547b, 0x54e2, 0x5518, 0xa3cb, 0xcae3, 0xc845, 0xc8d7, 0x9ece, - 0x10bf, 0x551d, 0x282c, 0x5585, 0x180b, 0xcae5, 0x55ac, 0x70fd, - 0x55d3, 0x07be, 0xcc14, 0x3c97, 0x575a, 0x07d6, 0xcb82, 0x98ef, - 0x5658, 0xbbe4, 0x5671, 0x10d3, 0x17e4, 0x3ce7, 0x564a, 0xa275, - 0x4b58, 0x70fd, 0xc8d6, 0xcbb7, 0xcb83, 0x56de, 0x70fd, 0x5591, - 0x17a0, 0x5693, 0x56e4, 0xbc91, 0x1540, 0xbcc0, 0x1843, 0x5734, - 0x2d32, 0xcbd9, 0x1827, 0x5773, 0x1816, 0x39ff, 0x57d6, 0xdde5, - 0xddfb, 0x5781, 0xcdc8, 0x57c2, 0x8402, 0xce0d, 0xf2f2, 0x186a, - 0x57e8, 0x0988, 0x86e2, 0x2637, 0xcfda, 0x583e, 0x58f1, 0xee38, - 0x596e, 0x9627, 0x5931, 0x595a, 0x598f, 0x28a1, 0x582c, 0x3a96, - 0x190f, 0x59c5, 0x59c6, 0xd160, 0xa339, 0xd164, 0x59de, 0x5a1c, - 0x195b, 0x5a34, 0x5a35, 0x3601, 0x5a45, 0x4977, 0xd24f, 0x5b07, - 0x5b0a, 0x70fd, 0x70fd, 0x5b27, 0x5b3c, 0xe025, 0x5b67, 0xd424, - 0xd5bd, 0x5c1c, 0x4993, 0x62fe, 0x5c10, 0xd559, 0x4ce9, 0xd63a, - 0xa4cf, 0x1a13, 0xd638, 0x437c, 0x5c8c, 0x5c9f, 0xb630, 0xb6e5, - 0x5cbf, 0x5ccc, 0x5ccd, 0x5c29, 0xaefa, 0x5d10, 0x5d1b, 0x5c2f, - 0x851f, 0x1915, 0x59cf, 0x5ddb, 0xd754, 0xd78f, 0xf314, 0x0a65, - 0xd753, 0x5e16, 0xd798, 0xd7bd, 0x5e52, 0x5e43, 0x8750, 0x5e1b, - 0x425c, 0x5e51, 0xb089, 0x11d0, 0x70fd, - /* 0x90 */ - 0x5ee9, 0xd8c2, 0x7ed4, 0xae0a, 0x0ebc, 0xda7c, 0xce4c, 0x4ce7, - 0x5fed, 0x5ff6, 0x6003, 0x63d4, 0x6059, 0x606d, 0xdbe5, 0xdc52, - 0x60e5, 0x6403, 0xef9f, 0x7950, 0x60f3, 0x1c2a, 0xdfde, 0xdd3d, - 0xa33b, 0x3138, 0x9be2, 0x6139, 0xed94, 0xde3c, 0xdd01, 0x8ee5, - 0x0cc0, 0xcc17, 0x6177, 0xdd3c, 0xd5be, 0x61a1, 0xdd6c, 0xddcb, - 0x61e8, 0xde93, 0x6204, 0xde66, 0x61ee, 0x70fd, 0x6267, 0x0e30, - 0x62a9, 0x62c4, 0x4eac, 0xdf33, 0x8b09, 0x630e, 0x3edf, 0x6341, - 0x6362, 0xb739, 0x70fd, 0xe0c6, 0xa25b, 0xe10c, 0xb75b, 0x7bf1, - 0x642c, 0x646b, 0xe0e1, 0xe1eb, 0x428f, 0x2d03, 0xe0e2, 0xe0e5, - 0x1c65, 0x6344, 0xe1ec, 0xe239, 0xe1ff, 0x6473, 0x655b, 0x5ffc, - 0x6685, 0x66a6, 0x6526, 0x66a0, 0x41f6, 0x15b9, 0x917a, 0xde58, - 0x813c, 0xa3ae, 0x1cdf, 0x3e5c, 0x677b, 0x6796, 0x146c, 0x67a3, - 0xcc15, 0x341a, 0x67b6, 0x4af5, 0xe0e0, 0x67bd, 0x260c, 0x1ca1, - 0xc9f8, 0x7334, 0xc290, 0xe46f, 0xe4a5, 0xaf51, 0x8755, 0x9c8a, - 0x6831, 0x5802, 0x6836, 0x1d0f, 0x183d, 0x1885, 0xaf69, 0x4275, - 0x2d81, 0x681b, 0x70fd, 0xe595, 0x6857, 0x2d8a, 0xe5ab, 0x685f, - 0x6525, 0x2310, 0x9a37, 0x9a3c, 0x6889, 0x689f, 0x68b1, 0x68be, - 0x68c0, 0x68d2, 0x68e0, 0xb66c, 0x68ee, 0x461c, 0xe5f3, 0x70fd, - 0x68f5, 0xe5dd, 0xd47a, 0x1d91, 0x6934, 0x6933, 0x694b, 0x6966, - 0x0e4e, 0xceb5, 0x1051, 0x76b0, 0xa69c, - /* 0x91 */ - 0xb886, 0x69ca, 0x69b7, 0x69c8, 0x69c7, 0x1dbf, 0xca67, 0x8513, - 0x27f0, 0x69e1, 0x69e6, 0x69ec, 0x6478, 0x6a39, 0xaea9, 0x1e32, - 0xe7d7, 0xe885, 0x6af5, 0x6b0c, 0x6b3b, 0x6b10, 0x6b58, 0xb8a5, - 0x0a04, 0xe471, 0xea55, 0x6be0, 0x6be2, 0xea05, 0x6bf4, 0x1ece, - 0x6c14, 0x6c2d, 0xddc0, 0x2274, 0x6c34, 0xc768, 0x0c03, 0x99fd, - 0x6c50, 0x6c40, 0xeafe, 0x2c85, 0x86a3, 0x6c8e, 0xa78b, 0x6d02, - 0x6cff, 0x6d0c, 0xec28, 0x6e54, 0xed37, 0xeed2, 0xeeeb, 0xee21, - 0xee63, 0xef1f, 0x6dfe, 0x6e03, 0xee74, 0x6e8e, 0x3ac8, 0x6e44, - 0x8d9b, 0xeed3, 0xef60, 0x877b, 0xef73, 0x6db9, 0xedf9, 0xefb4, - 0x6f10, 0x6f15, 0x6f1e, 0x6f22, 0x1ff4, 0x6f2a, 0x6f2f, 0xa8a4, - 0x6f41, 0x0ea0, 0x0d25, 0x101d, 0x2172, 0x0afe, 0xe22b, 0x6f82, - 0x6f88, 0x1e56, 0x6524, 0xcae2, 0x6f97, 0x70fd, 0x6fb9, 0x28df, - 0x28ca, 0x6fc5, 0x6ab8, 0xe44b, 0x68f2, 0x567f, 0x6fe2, 0x6fe9, - 0x4cdc, 0x700e, 0x4416, 0x1e7e, 0xadf5, 0xae3b, 0x4377, 0xae78, - 0xa888, 0xaed1, 0x459e, 0xe1da, 0x873a, 0x4b9f, 0xdf7e, 0xe336, - 0x6469, 0x64f3, 0xe044, 0x63ec, 0x6481, 0x64cb, 0xdf6c, 0xa9f9, - 0x4417, 0x11eb, 0x4972, 0x4c43, 0x42d0, 0xa9b3, 0xa938, 0x437e, - 0x862f, 0x42a3, 0x86fe, 0x9e99, 0x11c7, 0x86c5, 0xb62f, 0x8638, - 0x0a62, 0x853b, 0x8679, 0x0a21, 0x85b4, 0x8711, 0xbecb, 0x0a63, - 0x8500, 0x299b, 0xaea5, 0x82be, 0x8168, - /* 0x92 */ - 0x8286, 0x8376, 0x5703, 0x9fa6, 0x70fd, 0x5655, 0xae14, 0xcea5, - 0xa3b1, 0xb6dc, 0xa43b, 0xcd92, 0x17f4, 0x9fee, 0xe91d, 0xcc66, - 0x3a39, 0x0a73, 0x0f55, 0x10e7, 0x2aac, 0x8762, 0x3a50, 0x1357, - 0xa03f, 0xa621, 0xa5cb, 0xa64f, 0xc961, 0x270b, 0x28de, 0xc471, - 0x28d2, 0x7e9f, 0x7a68, 0x7ccd, 0x64c6, 0xe113, 0x649c, 0x2138, - 0x236b, 0x0b59, 0xa976, 0x20fc, 0x7525, 0x743f, 0x218b, 0x21ca, - 0xb7d1, 0x2ca8, 0x726b, 0x748b, 0x0cd9, 0x73ca, 0x74d4, 0x0775, - 0x2169, 0x7380, 0xe3b3, 0x7335, 0x5c5a, 0x72cc, 0x20d8, 0x230d, - 0x234d, 0x21e2, 0x2143, 0xae8e, 0xa3ca, 0x2182, 0x226e, 0x22ac, - 0x22c1, 0x220c, 0x2225, 0x2298, 0x233c, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x4076, 0x9e95, 0xa3b9, 0xa3ff, 0x3fb2, 0x86c4, 0xa3c9, - 0x23e8, 0x2403, 0x7660, 0x17dd, 0x7563, 0x7552, 0x7551, 0x5eba, - 0xe09c, 0x770e, 0x2499, 0x24e4, 0x77f3, 0x2521, 0x70fd, 0x197a, - 0x438c, 0xa8cc, 0x7ae0, 0xae2c, 0x7fa4, 0x3c11, 0x7cdd, 0x70fd, - 0x11de, 0x4699, 0x4614, 0x4656, 0x4598, 0x1e4e, 0xaf3c, 0xa5cd, - 0x2610, 0x08c4, 0x440f, 0xa609, 0x27f4, 0x7405, 0x270d, 0x7a86, - 0x295d, 0x635d, 0x67f4, 0x6466, 0x2a1d, 0x29cd, 0x29bf, 0x097e, - 0x2b0b, 0x2cd9, 0xe046, 0x853a, 0x85af, 0x8550, 0x2c6c, 0x2bf8, - 0x638f, 0x2cbe, 0x2d0f, 0x2c52, 0xba06, 0x8833, 0x86a1, 0xa7d5, - 0x0a35, 0x3f45, 0x4643, 0x2c61, 0xbe03, - /* 0x93 */ - 0x2cc1, 0xe1d7, 0x74d3, 0x64e0, 0x468c, 0x81c3, 0x4305, 0x1c72, - 0x6508, 0xdffb, 0x64bd, 0x0ae0, 0x2e5e, 0x2ede, 0x309e, 0x3088, - 0x87d6, 0x87bc, 0xa1ee, 0x310d, 0x2d8f, 0x8743, 0x8744, 0x0a41, - 0x86e0, 0x0a1d, 0x853e, 0x0a13, 0x532a, 0xe047, 0x8a7a, 0x9db2, - 0xdfa8, 0x314c, 0x314e, 0x8767, 0x85eb, 0x2cab, 0x857b, 0x2d84, - 0x57d4, 0xd17d, 0x59e0, 0x32be, 0x9360, 0x912b, 0x321b, 0x11b8, - 0x90ef, 0x90fe, 0xe448, 0xccb3, 0x3400, 0x713e, 0x7146, 0x911b, - 0x33d9, 0x33d8, 0x32b5, 0x969b, 0x9707, 0xabd4, 0xe50d, 0x36b1, - 0xab65, 0x95aa, 0x0d69, 0x9562, 0x9d90, 0xe86a, 0x9878, 0x3577, - 0xf09b, 0x36f6, 0x3571, 0x3611, 0xae63, 0x9767, 0x34e4, 0x96a1, - 0x367b, 0x37ab, 0x3bb2, 0x0f34, 0x9a0e, 0x9c2d, 0xae09, 0x9c2b, - 0x274d, 0x9c60, 0x8719, 0xe5ff, 0x390e, 0x9c09, 0x9b33, 0x0e20, - 0x1490, 0xb704, 0xe122, 0xb70f, 0x853c, 0xb6db, 0xb625, 0x4aee, - 0x9a83, 0x866a, 0x9bb4, 0x07a4, 0x9b8f, 0x9b02, 0xa809, 0x38ce, - 0xca64, 0x38ab, 0x1e53, 0x3870, 0xd370, 0x8aab, 0x38a3, 0x9c52, - 0x9c61, 0x385e, 0xb972, 0x0c11, 0xa13a, 0xa0bc, 0x0ed9, 0xa0a2, - 0x9d3e, 0x46d0, 0x0ed6, 0x39cf, 0xab2a, 0x3af6, 0x3a5e, 0x0f04, - 0x3cfe, 0x0ba3, 0xa0d5, 0xa9c7, 0x3c73, 0x3c92, 0x3d09, 0x3d45, - 0x8752, 0x3751, 0x3ad8, 0x3c8c, 0x0f17, 0x3cba, 0x3d97, 0xa500, - 0xa25a, 0x64a0, 0x63f2, 0xe1ea, 0xe0cb, - /* 0x94 */ - 0x6389, 0xd8de, 0xdfdc, 0x6567, 0x3fe5, 0x410b, 0xae6c, 0x70fd, - 0xa4bf, 0x108f, 0x4004, 0xa57c, 0x2c7d, 0x400a, 0x2a87, 0x3f64, - 0x4a42, 0x433b, 0xa85a, 0xa7b6, 0x42f1, 0x4450, 0x4487, 0x4494, - 0xac4f, 0xac25, 0x23b9, 0xaf24, 0x766b, 0x467a, 0xa438, 0x9f5f, - 0xaeca, 0xad97, 0xbf21, 0x1206, 0x11b1, 0xaf5f, 0xe223, 0xa475, - 0x32e7, 0x11f3, 0x46cc, 0x463c, 0x6487, 0x4637, 0x179f, 0xcb2a, - 0x1851, 0x4783, 0x1263, 0xb099, 0xb0c6, 0x1258, 0x4755, 0x4873, - 0xf0c6, 0x0e59, 0x4668, 0xe0cc, 0xae2b, 0xae0e, 0x0e3b, 0x10cd, - 0xaece, 0x11ff, 0xae45, 0xad73, 0x62fa, 0x2972, 0x6442, 0xe0e3, - 0x86a4, 0x231f, 0xb4e1, 0xb4a7, 0x4978, 0x9bb2, 0x490e, 0x490f, - 0x497b, 0xab97, 0xa081, 0x0d9e, 0xad70, 0x4638, 0x469b, 0x11bf, - 0xaf3a, 0xaf47, 0x13c8, 0xaf16, 0xc0ae, 0x6407, 0xb701, 0x4a1e, - 0x4a8d, 0x4a88, 0x4ad2, 0x45d0, 0x4b59, 0xd281, 0xb863, 0x140e, - 0x70fd, 0x5696, 0x4ba5, 0x3c6d, 0xa43a, 0x4c3a, 0x4bf4, 0x146e, - 0x8526, 0x1432, 0x6335, 0x4bf1, 0x7c0c, 0xae0c, 0x7359, 0xa33a, - 0x85ae, 0x08d7, 0x27ab, 0x08b0, 0x09ea, 0x7294, 0x7acd, 0x4ce2, - 0x2c99, 0x91f5, 0xbaef, 0xbadc, 0x2c4d, 0x731b, 0x4af0, 0x2c6a, - 0xbbc6, 0x4cfe, 0x14f9, 0x4e5d, 0x4e6d, 0x1511, 0xbbb3, 0xbe3c, - 0xbe26, 0x4ecd, 0xae79, 0x85f0, 0x4e8e, 0x4e7c, 0x4eae, 0x3cf2, - 0x4fdc, 0x5007, 0x4fd3, 0x514e, 0xc121, - /* 0x95 */ - 0xc05c, 0xd648, 0x4f97, 0xbe02, 0x156a, 0xc8b5, 0x7856, 0x3a16, - 0x714e, 0x9ecf, 0x2a04, 0xc292, 0xc278, 0xade2, 0x51dd, 0x4d27, - 0x77ac, 0xbb29, 0xbd43, 0x4d0c, 0xbd8e, 0x6ae6, 0x5805, 0x6b63, - 0x3c5c, 0x9d7f, 0x0d22, 0xae77, 0xc3ed, 0x6b1f, 0xc3e0, 0x5680, - 0xce67, 0xca11, 0x17ea, 0x5337, 0x1702, 0x52c6, 0x5309, 0x5342, - 0xc574, 0x69c3, 0xc802, 0x5462, 0x5465, 0xc811, 0x5653, 0xcae7, - 0x57d0, 0xcf1b, 0x2cc6, 0x147f, 0x8680, 0x2d6b, 0x86e1, 0x2d24, - 0x8718, 0x5860, 0xf2fc, 0xa30f, 0x59ad, 0xd022, 0x2c42, 0x59ee, - 0x2185, 0x5a07, 0x5a3f, 0x5a66, 0x5ae5, 0x5acd, 0xb803, 0x5ad4, - 0xd2c5, 0xd2c4, 0xe1f5, 0xe1d9, 0xe19c, 0xdff9, 0x11ad, 0x56a3, - 0x19f5, 0x19cf, 0x0b32, 0x5bbd, 0x5b9c, 0xe608, 0x318d, 0x632b, - 0xa7c4, 0x3814, 0x4329, 0x42c4, 0x8685, 0x6ded, 0x5ddf, 0x5e29, - 0xd7dc, 0x2bda, 0x49c3, 0x2c30, 0x166e, 0x0a14, 0x5f6a, 0x5fe7, - 0xb009, 0x6070, 0x608a, 0x15f4, 0x3e98, 0x41bb, 0x8ee1, 0x1b9b, - 0x4179, 0x408b, 0x861a, 0x6ce9, 0x09f5, 0xadaf, 0x61fb, 0x70fd, - 0x27b1, 0x1c06, 0x62bb, 0x6504, 0xe04b, 0x1362, 0xe0fc, 0x6527, - 0xe21d, 0xe23b, 0x56e5, 0x5bab, 0x6699, 0x66a7, 0x6697, 0x6696, - 0xe2b4, 0x4645, 0x11c2, 0xad7f, 0xaec2, 0xa92a, 0x11e7, 0x9ba5, - 0x678f, 0xe3e7, 0xe366, 0xe365, 0x11cc, 0xae6d, 0xaef8, 0xa52e, - 0x4612, 0x466b, 0x11fc, 0x6841, 0xe470, - /* 0x96 */ - 0x3a87, 0x1d1d, 0xe453, 0xb91f, 0x70fd, 0x6468, 0xdf89, 0xe226, - 0xe12f, 0xc23e, 0x63ba, 0x2d51, 0x5ce9, 0x1c3c, 0x45f9, 0xa75b, - 0x689b, 0x6871, 0x6a38, 0x7de6, 0x3001, 0xe1c5, 0xaf32, 0x691f, - 0xe65a, 0x63f6, 0xe6d7, 0x62e5, 0x17c0, 0xe150, 0xaee7, 0xe164, - 0x69dc, 0xe045, 0x1200, 0x632a, 0x1c25, 0x5614, 0x6a3b, 0x6a4d, - 0xd606, 0x10fd, 0x6a9b, 0x1e2f, 0x6aaa, 0x6b5c, 0xe165, 0xb988, - 0x3ccf, 0x6b21, 0x2d3e, 0x6b2f, 0xe871, 0x1e50, 0xe8c8, 0x6abc, - 0x1e7d, 0x1e57, 0x647d, 0x2ab2, 0x81c2, 0x2a62, 0xae38, 0x83a8, - 0x4a44, 0x921f, 0xa338, 0x3b05, 0x107d, 0x6558, 0x0c67, 0x3390, - 0x9281, 0x946b, 0x3347, 0x6d4f, 0x6d53, 0x6d7b, 0x6d35, 0x6d10, - 0x6c7f, 0x6ccf, 0xebed, 0x6c9f, 0xef35, 0xee3e, 0x6da1, 0x1f6e, - 0xa644, 0x6e98, 0x1f70, 0x6d8c, 0xeef4, 0xee2d, 0xee33, 0xe8af, - 0x6e25, 0x56bd, 0xcb52, 0xcd1f, 0xc8c2, 0x57bc, 0x1833, 0xcae4, - 0xcbc4, 0xcb30, 0x5620, 0x57ae, 0xcb40, 0xa0d7, 0xbfa4, 0x4be2, - 0x9e9c, 0x9f40, 0x1c2d, 0xae5e, 0x1062, 0x64db, 0x63be, 0x6448, - 0x737f, 0x4ab9, 0x6377, 0x654d, 0x2224, 0x0780, 0x61a4, 0xb6dd, - 0x4a3d, 0x4a54, 0x4ab6, 0x4a4b, 0x8597, 0x9b49, 0xadc1, 0x09da, - 0x21b2, 0x41da, 0x41d9, 0x70fd, 0x421e, 0x2654, 0xa6f5, 0x29fb, - 0x2b33, 0x29ca, 0x6d96, 0x2a17, 0x4334, 0x07ef, 0xa6ec, 0x43eb, - 0xc980, 0xb2d7, 0x70fd, 0x85f5, 0xe049, - /* 0x97 */ - 0x334c, 0x2d0e, 0x2c4b, 0x15bc, 0xa9c8, 0x0a6c, 0x1e3b, 0xdffc, - 0x64bb, 0x64b8, 0x8716, 0x7ddd, 0x5672, 0xca00, 0x82d3, 0xa83a, - 0x9626, 0xa901, 0x2bd4, 0xa337, 0xc501, 0x4fa8, 0xc05b, 0xbfe4, - 0xae39, 0xae0b, 0xdffa, 0x63e5, 0x45e2, 0x11e9, 0x46b4, 0xe163, - 0x86df, 0x11e1, 0xaf33, 0x3d18, 0x45f3, 0x45fb, 0x11d6, 0xaebe, - 0xaf14, 0x8619, 0xaee6, 0x7467, 0x82e4, 0xae65, 0x4648, 0xad96, - 0x42a5, 0xadf6, 0x6384, 0x45e6, 0x645f, 0x75be, 0x6431, 0xe0ce, - 0xe016, 0x6486, 0xe1e7, 0xb755, 0x1c35, 0xe082, 0x436b, 0xadc3, - 0x7bbf, 0x28e4, 0x769a, 0x7aab, 0x7b78, 0x2742, 0x4bc4, 0x863a, - 0x4ffe, 0x8502, 0xaed0, 0x8692, 0x182e, 0x6501, 0x0a4a, 0xe0c0, - 0xae2d, 0x2bf0, 0x86ff, 0x86c3, 0xd084, 0x2ce1, 0x0a22, 0xa2db, - 0x09f0, 0x635f, 0x2cb9, 0xe081, 0x86a2, 0x6474, 0x0fcd, 0x79b4, - 0x1d56, 0x0cca, 0x2334, 0x1069, 0x104c, 0x825c, 0x4375, 0x15fb, - 0xda98, 0x400f, 0xe4a4, 0x17eb, 0x3f97, 0xd80f, 0x4267, 0x3eef, - 0x0fd6, 0xa52d, 0xa3ad, 0x4002, 0x410c, 0x106f, 0x74b5, 0x4751, - 0x09fc, 0x0808, 0x1980, 0x11da, 0x1b71, 0x2c04, 0x636e, 0x1c3e, - 0x6081, 0xe21c, 0xc900, 0x2a52, 0x2a08, 0x0a16, 0x8312, 0x42fe, - 0xa8a2, 0xaef1, 0x9963, 0x8170, 0x8f3d, 0x3af9, 0x3ba7, 0x8258, - 0x9de5, 0xd6b4, 0x9fdf, 0xe083, 0xa0d6, 0x9d3a, 0xb05f, 0x3c5a, - 0x9fad, 0xc9f7, 0x563e, 0x17df, 0x17ce, - /* 0x98 */ - 0xca66, 0xca91, 0xc9c2, 0xcd1e, 0x4117, 0xce49, 0x553d, 0x857a, - 0x55ed, 0xc9c0, 0xcd93, 0x861b, 0x2bc9, 0x2cc2, 0x85f3, 0x2ca1, - 0x2cb1, 0x8745, 0xa73c, 0x0a6d, 0x2c2f, 0x857c, 0x0a07, 0x438e, - 0x6490, 0x38da, 0xa7e5, 0x2cae, 0x2c6b, 0xa7d3, 0x3c6b, 0xa439, - 0xd276, 0xa99b, 0xa80a, 0x431d, 0xa799, 0xdfe1, 0x21f0, 0xca68, - 0x2f02, 0xaa0e, 0xd80d, 0xa8fd, 0x3c4c, 0xa796, 0x81c4, 0x42a6, - 0x4333, 0xa929, 0x10a5, 0x3f1f, 0xf1e5, 0xaecf, 0x5065, 0x2c2b, - 0x2f6f, 0x10f3, 0x319c, 0xaedd, 0x861f, 0x4fa4, 0x5626, 0x26c5, - 0xa1fa, 0x9c80, 0x72d4, 0x29be, 0x7815, 0x7699, 0x12e5, 0x8c1e, - 0xefb6, 0x4203, 0xe51b, 0x2fb0, 0x458f, 0x4ed3, 0xe059, 0xe5e0, - 0x2208, 0x51e7, 0x44cd, 0x4510, 0xd5f4, 0x4538, 0x4539, 0xb876, - 0x4541, 0x4548, 0x11a9, 0xd618, 0x61ac, 0x43f5, 0xad72, 0x45e1, - 0x53f6, 0x11ca, 0x490c, 0x11d1, 0x3ee2, 0x293d, 0x4619, 0x461e, - 0x461f, 0x11e2, 0x11f0, 0x11f4, 0x11fa, 0x46d3, 0x120e, 0x1253, - 0x4742, 0x476d, 0x4772, 0x478d, 0x127c, 0x47c8, 0x47dc, 0x12c0, - 0x484d, 0x12d7, 0x4874, 0x12dc, 0x487a, 0xb29c, 0x4388, 0x2863, - 0x5b00, 0x2aa9, 0x131d, 0x4943, 0x1339, 0x39a1, 0x1345, 0x091b, - 0x4998, 0x136a, 0x136f, 0x2e9e, 0x49be, 0x49cb, 0x2b32, 0x4a18, - 0x42b9, 0x4a1c, 0x13a8, 0x4a39, 0x4a47, 0x4a51, 0x4a66, 0x5648, - 0xb6b5, 0x4b33, 0x3a43, 0x4b32, 0x1403, - /* 0x99 */ - 0x1409, 0x4b91, 0x4b99, 0x60fb, 0x4c06, 0x60fc, 0x1467, 0x4c91, - 0x14b2, 0x4cbc, 0x5479, 0x14c4, 0x4ccf, 0x4cdb, 0x14cf, 0x2061, - 0x4d62, 0x4d6c, 0x4d7b, 0x4e12, 0x4e1b, 0x1560, 0x157a, 0x4e7b, - 0x4e9c, 0x158c, 0x4eb8, 0x1594, 0x4eed, 0x60d3, 0x42c0, 0x7b8f, - 0x4fcf, 0x4fd4, 0x4fd0, 0x4ffd, 0x51ae, 0x51b4, 0x449f, 0x1697, - 0x5220, 0x5225, 0x4d39, 0x522e, 0x5231, 0x5254, 0x10cc, 0x29f4, - 0x42a0, 0x52b7, 0x52e9, 0x16ed, 0x530c, 0x452a, 0x530e, 0x5312, - 0x4760, 0x5314, 0x1701, 0x0e79, 0x5356, 0x5359, 0x535a, 0x1713, - 0x2a7a, 0x537c, 0x5384, 0x1725, 0x5393, 0x172d, 0x53a5, 0x2a2f, - 0x53c1, 0x53e4, 0x5454, 0x178f, 0x54a6, 0x5476, 0x54ca, 0x54d8, - 0x54ff, 0x17b0, 0x5557, 0x6769, 0x3bca, 0x5605, 0x42f5, 0x5664, - 0x3323, 0x5688, 0x1804, 0x56be, 0x56e1, 0x56f8, 0x5710, 0x5738, - 0x5752, 0x183b, 0x576f, 0x5770, 0x57a0, 0x1877, 0x5832, 0x5852, - 0x5872, 0x58af, 0x6745, 0x590b, 0x1906, 0x1917, 0x5a2e, 0x5a7f, - 0x5aa4, 0x5ac7, 0x5b11, 0xd467, 0x5ba9, 0x5bb8, 0x5c14, 0x5c34, - 0x5d91, 0x5e14, 0x5e32, 0x5e5c, 0x1a98, 0x2a9f, 0x5f03, 0x1aed, - 0x212e, 0x5f7a, 0x2818, 0x2994, 0x5fb1, 0x2835, 0x5ff0, 0x1b37, - 0x600e, 0x6022, 0x6024, 0x602d, 0x6032, 0x60f7, 0x6101, 0x610a, - 0x610c, 0x6173, 0x6ac4, 0x1bad, 0x69e0, 0x6313, 0x1c1e, 0x6328, - 0x6358, 0x636b, 0x63b1, 0x63ae, 0x63bf, - /* 0x9a */ - 0x63e3, 0x63eb, 0x63f3, 0x63f4, 0x63fd, 0x6443, 0x6484, 0x64ad, - 0x1c45, 0x1c51, 0x6f3f, 0x6517, 0x2541, 0x651d, 0x652d, 0x653e, - 0x1c6a, 0x6554, 0x6579, 0x662d, 0x66a2, 0x1ca7, 0x66f4, 0x6733, - 0x1ce5, 0x39e0, 0x1d24, 0x6840, 0x1d35, 0x68b2, 0x68c2, 0x2894, - 0x1da4, 0x3328, 0x69b9, 0x1dd9, 0x69f1, 0x2a84, 0x6a0e, 0x6a19, - 0x23f4, 0x6a1c, 0x6a37, 0x6a42, 0x6a5d, 0x6a62, 0x1e30, 0x6ac5, - 0x1e5d, 0x6b3c, 0x6c0f, 0x4c83, 0x6c69, 0x6c81, 0x6cdd, 0x6cf1, - 0x6cf4, 0x1f2d, 0x6d20, 0x0aaf, 0x8902, 0x6dc9, 0x6d3a, 0x6f7e, - 0x2890, 0x6e13, 0x6e3d, 0x6e40, 0x6e7c, 0x65f6, 0x60f6, 0x6efb, - 0x6f2c, 0x6f31, 0x6f3d, 0x6f46, 0x65dc, 0x6f62, 0x6f71, 0x6f78, - 0x4cc8, 0x6fc4, 0x7194, 0x7377, 0x7460, 0x3b5a, 0x65c3, 0x2bec, - 0x7597, 0x2a80, 0x65c1, 0x0af9, 0x7655, 0x7695, 0x76f6, 0x84fa, - 0x2997, 0x4373, 0x79c2, 0x79cd, 0x7a7f, 0x26aa, 0xf1fb, 0x7a8b, - 0x26de, 0x7abb, 0x7afb, 0x7b13, 0x7b25, 0x7b3c, 0x3327, 0x7b4d, - 0x28ba, 0x7b75, 0x7b9d, 0x7bad, 0x7c2f, 0x7c72, 0x7c88, 0x3b95, - 0x6d2f, 0x5925, 0x7cc4, 0x7cce, 0x7d97, 0x7e50, 0x7ded, 0x7d33, - 0x2e60, 0x7e7c, 0x304b, 0x7f1c, 0x7f0f, 0x7f36, 0x395e, 0x7f3b, - 0x7f48, 0x7f56, 0x0987, 0x7f7f, 0x7f93, 0x7fef, 0x7ffb, 0x25a4, - 0x56ad, 0x81a3, 0x8235, 0x81f6, 0x5d01, 0x83f7, 0x8459, 0x8603, - 0x8607, 0x20b8, 0x42bb, 0x866d, 0x87aa, - /* 0x9b */ - 0x886d, 0x8885, 0x896a, 0x89b0, 0x89ec, 0x8b48, 0x3503, 0x8b55, - 0x8b95, 0x4398, 0x3a95, 0x8c85, 0x3c29, 0x0a08, 0x8ebc, 0x8f57, - 0x8f7a, 0x922a, 0x9371, 0x944f, 0x54fd, 0x9467, 0x9493, 0x9515, - 0x5b25, 0x9528, 0x60e0, 0x954e, 0x68b8, 0x957f, 0x6947, 0x6bbd, - 0x964c, 0x70fd, 0x9688, 0x96b7, 0xbbe8, 0x9708, 0x9712, 0x97b7, - 0x9795, 0x9842, 0x9934, 0x994c, 0x99b3, 0x99e6, 0x9c9f, 0x9d1e, - 0x31f1, 0x3888, 0x38ff, 0xd579, 0x9e67, 0x9ef3, 0x70fd, 0xae3a, - 0x70fd, 0x9f1a, 0xa016, 0x70fd, 0x7406, 0x2af5, 0x394e, 0x3b58, - 0xa1a7, 0xd1d7, 0xbf22, 0xa391, 0xa3f9, 0xd17e, 0x8cda, 0x1bd0, - 0x1d78, 0xa659, 0xe09a, 0xa82e, 0xa84d, 0xa57b, 0xa874, 0xa8d6, - 0xaec5, 0x764a, 0x2412, 0x7691, 0x2bdf, 0x8b28, 0x0efe, 0xa2bf, - 0xa944, 0xaa16, 0x29c8, 0xab74, 0x0cdb, 0xac2f, 0xdda8, 0xe949, - 0x0aa2, 0x8e03, 0x5cde, 0xe14e, 0x70fd, 0xacd2, 0xad7b, 0xae95, - 0x4409, 0xaf40, 0x7b38, 0x2ba5, 0xb225, 0xb2c6, 0x7779, 0x601a, - 0xb36c, 0x24cf, 0x297f, 0x4371, 0xb559, 0xb619, 0xa48a, 0xaf27, - 0x27fc, 0xb646, 0xb66e, 0xc892, 0x70fd, 0x07b3, 0xb6bf, 0xd1b2, - 0xb6de, 0x1a18, 0xb6e2, 0xb6e6, 0xb907, 0xadbf, 0xb95d, 0x22a6, - 0x083b, 0x9d0c, 0x70fd, 0xb9c3, 0x1a7c, 0xdf48, 0xbaee, 0xbb89, - 0xbc06, 0x8a50, 0x29e1, 0x4351, 0x70fd, 0xc002, 0xd6d2, 0x6196, - 0xc0b2, 0xb2da, 0x5ce2, 0xc282, 0xc2ca, - /* 0x9c */ - 0x2f9b, 0xc937, 0x70fd, 0xc304, 0x875c, 0x5c6a, 0xae76, 0xc308, - 0xa52f, 0xc352, 0x1e80, 0xc3ff, 0xc475, 0x921b, 0x6565, 0xb921, - 0x33d5, 0x2c67, 0xf28d, 0x70fd, 0x28f9, 0xaa61, 0xc4bc, 0x20aa, - 0xadb4, 0x6756, 0x3fcf, 0xc9fd, 0x0958, 0x5af7, 0xc559, 0xc62e, - 0xc291, 0xc61e, 0x70fd, 0xc687, 0x4d42, 0xe480, 0x7911, 0xc6e6, - 0x70fd, 0xc6f9, 0x4c45, 0x70fd, 0xc7ba, 0x6b26, 0xc7ed, 0x099f, - 0xc2e9, 0x7121, 0x4b83, 0xc7f4, 0xc89b, 0x2f6c, 0x9e19, 0x70fd, - 0xc8dd, 0x19d0, 0xc9e4, 0x473b, 0x59e5, 0xcaee, 0x2af6, 0x0a5c, - 0x90cd, 0xcd8b, 0xcecd, 0x0f94, 0xcf40, 0xcf45, 0x6381, 0x8dba, - 0xcf4b, 0x6430, 0xcfa6, 0xae50, 0x3e79, 0x659f, 0xd050, 0x7db8, - 0x59a7, 0x5a75, 0x9426, 0xdcb3, 0x85f1, 0x40b8, 0xaeaa, 0x8660, - 0x0ce4, 0x09f9, 0x70fd, 0x70fd, 0x183f, 0x38f6, 0xeaad, 0xe824, - 0x5ac3, 0xd30c, 0xd358, 0x2916, 0x13df, 0x844a, 0x0ce1, 0xa02f, - 0xd9a8, 0x8285, 0x43ad, 0x5566, 0xd4dd, 0xe568, 0x70fd, 0x1f77, - 0xcdef, 0xdfab, 0xd4fd, 0xd50a, 0xd60b, 0xd766, 0xa6ba, 0x4d43, - 0x4b7e, 0xd8c9, 0x41b5, 0xefdf, 0x3c43, 0xdb98, 0x25e2, 0xcb47, - 0x64bf, 0x3a76, 0x685d, 0xda2f, 0xd8e3, 0xc775, 0x82ad, 0x9baf, - 0xd908, 0x2fc5, 0xe230, 0xd943, 0x2955, 0x6923, 0xdf49, 0x2feb, - 0xae08, 0x37fe, 0x3c15, 0x2612, 0xaf25, 0xa4c1, 0x0f51, 0x3976, - 0xd950, 0xd9b4, 0xd9ee, 0x8c21, 0xda0f, - /* 0x9d */ - 0xda49, 0xda6f, 0xda9a, 0xdb86, 0xdbaf, 0xdc0a, 0x090a, 0xdca8, - 0xde2a, 0x1bfa, 0x3626, 0xdf56, 0x4a08, 0x6355, 0xdfb8, 0x16f2, - 0xdfe7, 0x16df, 0xdfe8, 0xe146, 0xe1d4, 0x2c38, 0xe209, 0x70fd, - 0xe405, 0xe4ac, 0x70fd, 0xe4d0, 0xe4fc, 0x10f7, 0xe51e, 0xaf4a, - 0x6110, 0x448f, 0x28cb, 0xe667, 0xe6e9, 0xe6b0, 0xe6b8, 0xe732, - 0xe851, 0xe8c9, 0xe8ea, 0xe943, 0xe9a8, 0xea0e, 0xeb1a, 0xeb5b, - 0x509f, 0xecb8, 0xece3, 0x1f64, 0x6647, 0xef93, 0x43a2, 0xefff, - 0x2011, 0x6152, 0xf0cb, 0x201c, 0x7b5c, 0x60fe, 0x2801, 0x60fa, - 0x8ff0, 0x60f9, 0xaf13, 0x1809, 0x507f, 0x4156, 0x3cf1, 0x212a, - 0x0824, 0xe12c, 0xd39d, 0x0a7a, 0x5fc0, 0x8635, 0xd8e4, 0xe16c, - 0xe199, 0xd53e, 0xc46f, 0x10eb, 0xd1d5, 0xa277, 0xb7b5, 0xba16, - 0x20da, 0xbe01, 0xc118, 0x28ff, 0x7d2d, 0x5f4e, 0x2dad, 0xa3c8, - 0xb05e, 0x361e, 0x70fd, 0x8636, 0x86bb, 0x3770, 0x286d, 0xbc4a, - 0x265a, 0xb5d1, 0x10c6, 0xeb58, 0x1f3d, 0x2862, 0x285e, 0x5149, - 0xbe58, 0x2bb5, 0xa2c0, 0x58f0, 0x205c, 0x7eaa, 0x7c09, 0x9fba, - 0x5317, 0x6dde, 0x5e58, 0x483b, 0x6d45, 0x484e, 0x49b9, 0x6445, - 0x2672, 0x5348, 0x54f7, 0x2865, 0x5332, 0x5618, 0x52bd, 0x282a, - 0x4b62, 0x2883, 0x2656, 0x7d5d, 0x090e, 0x2845, 0x2831, 0x3931, - 0xdb62, 0x096d, 0x4734, 0x2830, 0x27fa, 0x26d7, 0x27b2, 0x7b01, - 0x7b56, 0x3110, 0xb448, 0x7d36, 0x9662, - /* 0x9e */ - 0x7d62, 0x6f2b, 0x4f5a, 0x281e, 0x7f35, 0x34dd, 0x686d, 0x26d4, - 0x5e0d, 0x43f6, 0x6276, 0x363c, 0x35f9, 0x363e, 0x27a9, 0x9583, - 0x6d72, 0x98b3, 0x23da, 0x081f, 0x7c67, 0x23e7, 0x268d, 0x275e, - 0x2753, 0x4866, 0x5f6d, 0xc64a, 0x47b1, 0x52b6, 0x5984, 0x5906, - 0x5a47, 0x53b6, 0x561c, 0x7f81, 0x17ec, 0x4504, 0xac06, 0x2dd0, - 0x550b, 0xc653, 0x28bb, 0x91f4, 0xd72f, 0xa6e3, 0xd773, 0xcc10, - 0xcf76, 0x6270, 0x8099, 0x6308, 0xa2bc, 0xf1a9, 0x7d6c, 0x7db9, - 0x4466, 0x89e2, 0x1a4e, 0xb302, 0xd8b9, 0x7eab, 0x13fa, 0x6d5d, - 0x375f, 0x97a0, 0x1bf3, 0xaca0, 0xeb3c, 0x7eac, 0x7cca, 0x70fd, - 0xd123, 0x7ead, 0x70fd, 0xbf88, 0x8047, 0x43a3, 0x508e, 0x6dd0, - 0x205a, 0x2044, 0x08b7, 0x2d4d, 0x3ef2, 0x25a7, 0x09ec, 0x0d1c, - 0x25bd, 0x09e5, 0xab18, 0x2ada, 0xafae, 0x542d, 0x268b, 0x29ea, - 0xbad5, 0x78b9, 0x70fd, 0x0d92, 0x8fa5, 0x4574, 0xec6c, 0x1fc9, - 0x6ced, 0xa2be, 0xecf0, 0x1f1b, 0xb2e9, 0xe69e, 0xed5e, 0x565c, - 0xa336, 0xcf72, 0xc573, 0xa020, 0x356e, 0x4f25, 0xa437, 0xa3ac, - 0x0d6a, 0x6148, 0x250c, 0x1174, 0x09ba, 0x18e9, 0x754e, 0x4840, - 0x2d30, 0x7d76, 0x4a7a, 0xd86e, 0x2ae7, 0x13bf, 0x28bc, 0x6c8b, - 0x2fb4, 0x4854, 0xf074, 0x6f05, 0x1fa1, 0x70fd, 0x0b3b, 0x3359, - 0x9a5a, 0xa932, 0x70fd, 0x289d, 0x8169, 0x29e7, 0xade3, 0xebc6, - 0x2474, 0xcdee, 0x08ed, 0x70fd, 0x6dfc, - /* 0x9f */ - 0x4e56, 0x6c39, 0x2a1e, 0x85ac, 0x2e93, 0x3713, 0xe650, 0xc1b5, - 0xcea4, 0x586d, 0x7be8, 0xca62, 0xaf62, 0x7c31, 0x70fd, 0x243e, - 0x8b8f, 0x2fce, 0x6803, 0x8a91, 0x6f01, 0x618c, 0x4d1f, 0x6c02, - 0x2f11, 0x4da3, 0x34a8, 0x3575, 0x6bff, 0x4dcf, 0x6c2a, 0x4e7e, - 0x70fd, 0x4e42, 0x4e86, 0x6d15, 0x4dfc, 0x6c09, 0x70fd, 0x6d1b, - 0xadbe, 0x6fda, 0x27b3, 0x2e03, 0x223d, 0x6f18, 0x2232, 0x24a0, - 0x1106, 0x2511, 0x29a7, 0x2296, 0x2bf7, 0x3052, 0x68c8, 0x6e2b, - 0x609c, 0x26a9, 0x68b4, 0x6a40, 0x68ba, 0x256c, 0x3370, 0x3b6c, - 0x261a, 0x6d0a, 0x6d82, 0x1efb, 0x6741, 0x3bc0, 0x22e6, 0x4746, - 0x85ad, 0x6ada, 0x24b3, 0x70fd, 0x6259, 0x6781, 0x625c, 0x70fd, - 0x6251, 0xe397, 0x35bf, 0xca63, 0x3d0a, 0x2851, 0x628e, 0x477a, - 0x34c5, 0x74bc, 0x454f, 0x4e70, 0xbc21, 0xa2bd, 0x70fd, 0xad99, - 0x48d6, 0x6c9d, 0x206a, 0x7b94, 0x55be, 0x59c2, 0x70fd, 0x2e8a, - 0x3c00, 0x70fd, 0x29ba, 0x245f, 0x3035, 0x210e, 0x3e71, 0x72b2, - 0x2179, 0x26dc, 0x271a, 0x24da, 0x5ec2, 0x093e, 0x70fd, 0x0933, - 0x70fd, 0x3d92, 0x627c, 0x7025, 0x6c97, 0x692e, 0x69b4, 0x6bba, - 0x6f28, 0x6f04, 0x437a, 0x4d14, 0x70fd, 0x3e3a, 0x5998, 0x5178, - 0x70fd, 0x2860, 0xf14a, 0x5fb7, 0x6fd3, 0x70fd, 0x5f14, 0x5f8f, - 0x6e9c, 0x5f41, 0x34c2, 0xdbfd, 0x5f68, 0x5fb5, 0x4cd3, 0xaef7, - 0x4c3e, 0x4ad8, 0x3f2a, 0x5be7, 0x4807, - /* 0xa0 */ - 0xe05a, 0x6fa6, 0x3f0e, 0x5956, 0x47c3, 0xefb2, 0x4a53, 0xf200, - 0x5e4c, 0x44e2, 0x4571, 0x5cad, 0x4502, 0x46f1, 0x5e2b, 0xaf3b, - 0x57ef, 0x31fa, 0x5a20, 0x17b7, 0x70fd, 0x867b, 0xcb45, 0x70fd, - 0x5bfe, 0x905b, 0x70fd, 0x333d, 0x4867, 0x6bd7, 0x6dc4, 0x646e, - 0x6c8f, 0x5975, 0x70fd, 0x70fd, 0x5e37, 0x452c, 0x6821, 0x6cb0, - 0x0916, 0x44b2, 0x1ec7, 0x4e51, 0x6a4a, 0xc059, 0x3399, 0x1ec4, - 0x6f16, 0x33bd, 0x70fd, 0x299f, 0x33af, 0x34e6, 0x3479, 0x70fd, - 0x0d9c, 0x3422, 0x25ea, 0x9d35, 0x35a4, 0x3a42, 0x0912, 0x2f97, - 0xe1c2, 0x611a, 0xe339, 0x70fd, 0x2319, 0x8a06, 0x4b06, 0x2572, - 0x6738, 0x7dfb, 0x1365, 0x70fd, 0x49fe, 0x70fd, 0x4ec2, 0xbe9a, - 0x4eda, 0x4c2d, 0x5266, 0x5263, 0x4f4d, 0x4705, 0x46f2, 0x5b14, - 0x541a, 0x394c, 0x5262, 0xd086, 0x525b, 0x46f0, 0x5303, 0x4924, - 0x5b09, 0xc58c, 0x4753, 0xcc11, 0x5929, 0x594e, 0x53c8, 0x590c, - 0x5bc9, 0x5ded, 0x5cc3, 0x492b, 0x46f8, 0x56da, 0x0975, 0x3bf2, - 0x5ee6, 0x70fd, 0x5b29, 0x70fd, 0x3ff9, 0x5941, 0xa551, 0x46e7, - 0x10db, 0x4376, 0x32e4, 0x33dc, 0x0fd1, 0x70fd, 0x32b7, 0x70fd, - 0x5171, 0xe12d, 0x70fd, 0x3329, 0x1e3e, 0x2460, 0x0f58, 0xa287, - 0xbe57, 0xd1d6, 0xb6b1, 0x8784, 0x81be, 0xe883, 0xcb1c, 0xcded, - 0x2f01, 0xc0ad, 0xe00f, 0x9f77, 0x71ee, 0xc606, 0xb24e, 0x1862, - 0x2d5f, 0xc1cc, 0x6fd0, 0x6f26, 0xc12b, -}; -static const unsigned short hkscs1999_2uni_pagec6[471] = { - /* 0xc6 */ - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x0460, - 0x0461, 0x0462, 0x0463, 0x0464, 0x0465, 0x0466, 0x0467, 0x0468, - 0x0469, 0x0474, 0x0475, 0x0476, 0x0477, 0x0478, 0x0479, 0x047a, - 0x047b, 0x047c, 0x047d, 0x0370, 0x0371, 0x0372, 0x0373, 0x0374, - 0x0375, 0x0376, 0x0377, 0x0378, 0x0379, 0x2076, 0x207f, 0x20c5, - 0x20e0, 0x23c2, 0x23d6, 0x23eb, 0x2539, 0x2578, 0x25a9, 0x25f6, - 0x2b4a, 0x2dc0, 0x301b, 0x05b3, 0x30bf, 0x70fd, 0x3190, 0x31a1, - 0x3774, 0x70fd, 0x4792, 0x70fd, 0x60f5, 0x70fd, 0x0028, 0x01c6, - 0x06bd, 0x06be, 0x065d, 0x065e, 0x70fd, 0x70fd, 0x05c5, 0x05c6, - 0x05c7, 0x06bc, 0x70bb, 0x70bd, 0x04fd, 0x0601, 0x0602, 0x0603, - 0x0604, 0x0605, 0x0606, 0x0607, 0x0608, 0x0609, 0x060a, 0x060b, - 0x060c, 0x060d, 0x060e, 0x060f, 0x0610, 0x0611, 0x0612, 0x0613, - 0x0614, 0x0615, 0x0616, 0x0617, 0x0618, - /* 0xc7 */ - 0x0619, 0x061a, 0x061b, 0x061c, 0x061d, 0x061e, 0x061f, 0x0620, - 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, - 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, - 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, - 0x0639, 0x063a, 0x063b, 0x063c, 0x063d, 0x063e, 0x063f, 0x0640, - 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, - 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, - 0x0651, 0x0652, 0x0653, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, - 0x0666, 0x0667, 0x0668, 0x0669, 0x066a, 0x066b, 0x066c, 0x066d, - 0x066e, 0x066f, 0x0670, 0x0671, 0x0672, 0x0673, 0x0674, 0x0675, - 0x0676, 0x0677, 0x0678, 0x0679, 0x067a, 0x067b, 0x067c, 0x067d, - 0x067e, 0x067f, 0x0680, 0x0681, 0x0682, 0x0683, 0x0684, 0x0685, - 0x0686, 0x0687, 0x0688, 0x0689, 0x068a, 0x068b, 0x068c, 0x068d, - 0x068e, 0x068f, 0x0690, 0x0691, 0x0692, 0x0693, 0x0694, 0x0695, - 0x0696, 0x0697, 0x0698, 0x0699, 0x069a, 0x069b, 0x069c, 0x069d, - 0x069e, 0x069f, 0x06a0, 0x06a1, 0x06a2, 0x06a3, 0x06a4, 0x06a5, - 0x06a6, 0x06a7, 0x06a8, 0x06a9, 0x06aa, 0x06ab, 0x06ac, 0x06ad, - 0x06ae, 0x06af, 0x06b0, 0x06b1, 0x06b2, 0x06b3, 0x06b4, 0x06b5, - 0x06b6, 0x0210, 0x0211, 0x0212, 0x0213, 0x0214, 0x0215, 0x0201, - 0x0216, 0x0217, 0x0218, 0x0219, 0x021a, - /* 0xc8 */ - 0x021b, 0x021c, 0x021d, 0x021e, 0x021f, 0x0220, 0x0221, 0x0222, - 0x0223, 0x0224, 0x0225, 0x0226, 0x0227, 0x0228, 0x0229, 0x022a, - 0x022b, 0x022c, 0x022d, 0x022e, 0x022f, 0x0230, 0x0231, 0x0232, - 0x0233, 0x0234, 0x0235, 0x0251, 0x0236, 0x0237, 0x0238, 0x0239, - 0x023a, 0x023b, 0x023c, 0x023d, 0x023e, 0x023f, 0x0240, 0x0241, - 0x0242, 0x0243, 0x0244, 0x0245, 0x0246, 0x0247, 0x0248, 0x0249, - 0x024a, 0x024b, 0x024c, 0x024d, 0x024e, 0x024f, 0x03e7, 0x03b8, - 0x03b9, 0x06cf, 0x71cc, 0x209a, 0x718a, 0x2442, 0x1791, 0x7030, - 0x23c8, 0x7031, 0xd187, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70e2, 0x70e4, 0x7087, 0x7082, 0x0731, - 0x0316, 0x0321, 0x065b, 0x065c, 0x0500, 0x0504, 0x0506, 0x0507, - 0x0508, 0x050a, 0x050c, 0x050d, 0x0515, 0x051c, 0x051d, 0x0525, - 0x0527, 0x052a, 0x052c, 0x052e, 0x0536, 0x053c, 0x053e, 0x0546, - 0x054a, 0x054c, 0x054d, 0x054f, 0x0556, 0x0557, 0x055e, 0x0563, - 0x70fd, 0x70fd, 0x70fd, 0x0183, 0x0150, 0x015b, 0x0154, 0x0175, - 0x00d3, 0x0078, 0x00cb, 0x018a, 0x016a, -}; -static const unsigned short hkscs1999_2uni_pagef9[942] = { - /* 0xf9 */ - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x70fd, - 0x70fd, 0x70fd, 0x70fd, 0x70fd, 0x4a81, 0x63b9, 0x5a4f, 0x2afb, - 0x3292, 0x4ea7, 0x2d3a, 0x0494, 0x04a6, 0x0497, 0x04a0, 0x04ac, - 0x04a3, 0x049a, 0x04a9, 0x049d, 0x0492, 0x04a4, 0x0495, 0x049e, - 0x04aa, 0x04a1, 0x0498, 0x04a7, 0x049b, 0x0493, 0x04a5, 0x0496, - 0x049f, 0x04ab, 0x04a2, 0x0499, 0x04a8, 0x049c, 0x0491, 0x0490, - 0x04ad, 0x04ae, 0x04b0, 0x04af, 0x70ed, - /* 0xfa */ - 0x75c7, 0x63db, 0x765f, 0xa505, 0x574c, 0x15b5, 0x45ef, 0x23f5, - 0x0989, 0xadc2, 0xdfe4, 0x6444, 0x881b, 0x54ee, 0xa288, 0x4a3c, - 0x3984, 0x351f, 0xadb3, 0xdfaa, 0x7360, 0xc8f3, 0x81c5, 0x21eb, - 0x902d, 0x2248, 0xca69, 0xd584, 0x9f00, 0xaf31, 0x9053, 0x70fd, - 0x743e, 0x31e4, 0x7440, 0x7407, 0x40db, 0x74df, 0x70fd, 0x2341, - 0x07ba, 0x234e, 0x696c, 0x0a83, 0x5616, 0xae24, 0x7547, 0x23a0, - 0x9cf4, 0x23aa, 0x7abf, 0x8d3c, 0x73a5, 0x9070, 0x760e, 0x9bb3, - 0x87c3, 0x2dc2, 0x58fd, 0x7633, 0xa259, 0x23f2, 0x23f8, 0x6db4, - 0x2409, 0x240f, 0x2411, 0x0fdc, 0x2413, 0xaf26, 0x23f3, 0x2422, - 0x2582, 0x242d, 0x55cd, 0x3b7e, 0xa02d, 0x31bb, 0x244b, 0x2466, - 0x247c, 0x24f5, 0x2497, 0x24d4, 0x24f9, 0x2505, 0x4e15, 0x5742, - 0x2520, 0x57cd, 0xc853, 0x70fd, 0xe0de, 0x2789, 0x40d9, 0xa4c0, - 0x7894, 0xa52c, 0x2573, 0x70fd, 0x7aa2, 0x3f0b, 0x8566, 0x3a5b, - 0x45d5, 0x328a, 0x11aa, 0x0c0c, 0x8528, 0x43dd, 0x17a2, 0x25ad, - 0x25b4, 0xde2b, 0x25be, 0x70fd, 0x8416, 0x8453, 0x49e6, 0x25d3, - 0xe09b, 0x25e0, 0x25eb, 0x25ee, 0x45a7, 0xb8f2, 0x1259, 0x459c, - 0x2601, 0x2605, 0x3e89, 0x2089, 0x2a3e, 0x2619, 0x0deb, 0x7a4f, - 0x2620, 0xa52b, 0x97a3, 0x2636, 0x7b37, 0x2653, 0x4279, 0x276b, - 0x3897, 0x3f9b, 0x26ad, 0xc893, 0x7c34, 0x279d, 0x26cf, 0x26e4, - 0x1aa6, 0x854d, 0x7d9d, 0x10b4, 0x7c0d, - /* 0xfb */ - 0xdfbc, 0x9198, 0x2787, 0x1fad, 0x266f, 0x4617, 0x27c6, 0x27e9, - 0x70fd, 0x8717, 0xa57a, 0x1852, 0xa975, 0x38f3, 0x7f74, 0x2877, - 0x390d, 0x9c0a, 0x38e4, 0x38ed, 0x288d, 0x288f, 0x4af1, 0x2931, - 0x6887, 0x263e, 0x2940, 0x292f, 0x292d, 0xe166, 0x0963, 0x810f, - 0x2986, 0xa6e5, 0x3eae, 0x428b, 0x2982, 0x09f1, 0xc9be, 0x2a26, - 0x82d6, 0x2a43, 0x8314, 0xa8a3, 0x2a66, 0xaff5, 0x2a9c, 0x2aea, - 0x08a1, 0x2b20, 0x2b1c, 0x80fc, 0x2b3b, 0x2e3f, 0x2983, 0xee90, - 0xa7b8, 0x64d3, 0x08e1, 0x2b5f, 0x3ae6, 0x0a03, 0x4059, 0x847e, - 0x2c64, 0x2793, 0x84d2, 0x5705, 0x2c09, 0x7c0e, 0xc9c1, 0xca6a, - 0x861c, 0x2c19, 0x863b, 0x85f2, 0xcae6, 0x3fb1, 0x8668, 0x8515, - 0x2c39, 0xcb85, 0x2ceb, 0x2ca3, 0x0a26, 0xae29, 0x70fd, 0x0a48, - 0x2cd6, 0x4665, 0x2d13, 0xcce1, 0x9094, 0x1085, 0x8751, 0x0a72, - 0x84f8, 0x30c3, 0x2510, 0x2db6, 0x37c8, 0x2dbc, 0xd50e, 0x1304, - 0x1b5d, 0x72c4, 0x2e15, 0x33a0, 0x8874, 0xba8c, 0x7625, 0x2e33, - 0x2ddd, 0x1fd0, 0x2e45, 0x88c4, 0x2e53, 0x45ce, 0x2e54, 0x89e5, - 0xc868, 0x2e89, 0x1bdd, 0x2ec5, 0x2f29, 0x2f2f, 0x2fcb, 0x8ab9, - 0x8af7, 0x2f50, 0x2f58, 0x2f86, 0x8b24, 0x2efa, 0x3017, 0x54fc, - 0x0b6d, 0xad81, 0x8c89, 0x8db3, 0x5487, 0x0b76, 0x0f02, 0x306e, - 0x3cca, 0x70fd, 0x30ba, 0xa9fc, 0x7b93, 0x25e6, 0x20f7, 0x70fd, - 0x25e8, 0x85b1, 0x3049, 0x3134, 0xdcc2, - /* 0xfc */ - 0x3139, 0x313b, 0x0be0, 0x313c, 0x3a7e, 0x651b, 0x314d, 0x7281, - 0xf254, 0x0e1e, 0x1bae, 0x81fa, 0x317a, 0xc648, 0x8f50, 0x70fd, - 0x8fb1, 0x31a3, 0x68bd, 0xcbae, 0x31b2, 0x6440, 0xe036, 0x31e7, - 0x2ff6, 0x105f, 0xb510, 0x8bea, 0xce38, 0x9168, 0x62d6, 0x735e, - 0xe029, 0x3271, 0x38c5, 0x86b7, 0x0ca3, 0x10c7, 0x0979, 0x29d0, - 0x92b4, 0x4b71, 0x1140, 0x32de, 0x70fd, 0x32f3, 0xae02, 0xae0f, - 0xd553, 0x46a4, 0x2321, 0x2ce0, 0x33a4, 0x5624, 0x3382, 0xf266, - 0xcc12, 0x33c1, 0x2434, 0x76d6, 0x33c7, 0x2dea, 0xa4f7, 0x935f, - 0x3413, 0xe19d, 0xe8dd, 0x3410, 0x0c72, 0x9480, 0x93c1, 0x3263, - 0x339c, 0x375e, 0x35cb, 0x7218, 0x3505, 0x85b0, 0x3515, 0x980d, - 0x35ac, 0xae5f, 0x0d57, 0x3678, 0x3638, 0x824e, 0x863c, 0x70fd, - 0x418a, 0x9836, 0x6914, 0xa5cc, 0xb89d, 0x3721, 0x3725, 0x657b, - 0x0da6, 0x367a, 0x0d97, 0x378d, 0x4116, 0xaea8, 0xaea3, 0x37c5, - 0x37ad, 0x379f, 0x99fe, 0x37f5, 0xadc0, 0x1df7, 0x3811, 0x13d8, - 0x8669, 0x3820, 0x3823, 0x321f, 0x9d40, 0x3858, 0x9b77, 0x9b78, - 0x3884, 0x9b24, 0x9b25, 0x388b, 0x7d35, 0x38a7, 0xb4a6, 0x38b3, - 0x70fd, 0x8afd, 0x9bb1, 0xddb4, 0x9b48, 0xb5d3, 0x49c5, 0x93f7, - 0x6aa4, 0x3942, 0xa8dc, 0xaea1, 0x0e6b, 0x3c3a, 0xa0c2, 0x70fd, - 0x39a7, 0x39a2, 0xa70d, 0xe4ad, 0x3a17, 0x17e9, 0x3a62, 0x4050, - 0x633c, 0x3a41, 0x9d26, 0xcae0, 0x3a9d, - /* 0xfd */ - 0x9daf, 0x3c21, 0x3c4b, 0xe0df, 0x3bb3, 0x3b03, 0x9ecd, 0x3b41, - 0x3b40, 0x1032, 0x0d41, 0x9f3c, 0x0ec0, 0x39ec, 0x3ba1, 0xe04a, - 0x15fc, 0x3b76, 0x3bd8, 0x0ee1, 0x7489, 0x5563, 0x22d0, 0x3c39, - 0x9f59, 0x8d6a, 0x3c85, 0xa003, 0x3cdd, 0x0f33, 0x39f1, 0x3d08, - 0xe55c, 0x0f4d, 0x3d5d, 0x7863, 0x331e, 0x3d75, 0x3db4, 0x92cd, - 0x40b5, 0xa1db, 0x7475, 0x8798, 0x0a80, 0x2661, 0xa21a, 0x3e21, - 0xa43c, 0x3e1c, 0x3e77, 0x8fcb, 0xad71, 0xc891, 0x3e9a, 0x5426, - 0x3eb9, 0xa33c, 0x17c5, 0xa33d, 0xa6e4, 0xad8c, 0xad80, 0xa289, - 0x0a25, 0x0feb, 0x7bf2, 0x6c83, 0x9b79, 0x8fd1, 0x518f, 0x3a77, - 0xca65, 0xcae1, 0xcb2b, 0x3fd6, 0x3f9c, 0x407c, 0x4104, 0xadff, - 0xa5c5, 0xcbb2, 0x5733, 0xccb4, 0x2407, 0x70fd, 0x70fd, 0x562e, - 0xe121, 0x70fd, 0xa3af, 0x4653, 0xa4c2, 0x4bcc, 0x404f, 0x2cd1, - 0x99cb, 0x41f8, 0x0a4d, 0x419d, 0xa3b0, 0x40fa, 0x8357, 0xa57d, - 0x1855, 0x64f0, 0x4144, 0x415c, 0x104e, 0x4174, 0xe530, 0x103b, - 0x419f, 0xa684, 0x41d3, 0xa5d1, 0xa695, 0xa579, 0xa530, 0xa4f4, - 0xa67f, 0x241f, 0xa696, 0xa697, 0xa680, 0xc0dd, 0x424b, 0x427e, - 0x42a7, 0x4281, 0x42cc, 0x42d5, 0x42d6, 0x42df, 0x1404, 0x10e8, - 0x43b4, 0x4396, 0xa7b7, 0x432b, 0x4345, 0x2cc8, 0x434a, 0x70fd, - 0x2edc, 0xa8a5, 0x434f, 0x6462, 0xa801, 0x432c, 0xa99a, 0xaea7, - 0xaea2, 0x43ba, 0xe1e8, 0x42bd, 0x440e, - /* 0xfe */ - 0x6542, 0x4415, 0x2b51, 0x6543, 0x4424, 0x6441, 0xb785, 0x442e, - 0x4440, 0xadf4, 0x3afd, 0x4455, 0x4457, 0x1155, 0x99c4, 0x3a4d, - 0x413d, 0x4482, 0x70fd, 0x452b, 0xace3, 0xdeeb, 0x1bed, 0xdec4, - 0x4528, 0x452e, 0x45cf, 0x45aa, 0x7afa, 0xc7ee, 0x45c9, 0x4649, - 0xa722, 0x8527, 0xaea4, 0x3863, 0x0a05, 0xae37, 0xae0d, 0xae7b, - 0x45f7, 0x4615, 0x3b43, 0xaea6, 0x4639, 0x7643, 0x11d7, 0x70fd, - 0x93ad, 0x4660, 0xe3b2, 0x4647, 0x45e4, 0x4676, 0x55b9, 0x466c, - 0x0a70, 0x4674, 0x64f1, 0x3c6c, 0x4682, 0x1c53, 0xaf0c, 0xa69f, - 0xaef9, 0xe18f, 0x2d86, 0xe203, 0x86de, 0x46c8, 0x87c8, 0x470e, - 0x70fd, 0x471e, 0xe3d9, 0x888b, 0x2e17, 0xe3ac, 0x6485, 0x474d, - 0x474a, 0x4767, 0x476e, 0xb2c2, 0x1204, 0xb0d3, 0x478e, 0x465d, - 0x479e, 0x47b4, 0x4802, 0x482c, 0x4851, 0x484f, 0x486f, 0x4876, - 0xc275, 0x4890, 0x53ef, 0x0b38, 0xc6d1, 0xc6ce, 0x48a1, 0x48a5, - 0x48b7, 0x48cc, 0xccdf, 0x5662, 0xb3dd, 0xb47d, 0x8adc, 0x491e, - 0x4926, 0x4940, 0x36ef, 0xb4e0, 0x4958, 0x9c2c, 0x49af, 0xdf64, - 0xdf68, 0x8501, 0x49f4, 0x70fd, 0x8236, 0xae92, 0x3b0a, 0x4aaf, - 0x4ac7, 0x4ad3, 0x67a5, 0x4b2e, 0xb760, 0x4ad7, 0x4b34, 0x4ab1, - 0xd18c, 0x60f8, 0x5a04, 0xe12b, 0xbfc3, 0x911c, 0x4b86, 0x5a80, - 0x3b42, 0x4b80, 0xb957, 0x4b9d, 0xd639, 0x4b3c, 0x4ba9, 0x402a, - 0xce66, 0x11a8, 0x4bc6, 0xe4cd, 0x4bd4, -}; - -static const ucs4_t hkscs1999_2uni_upages[973] = { - 0x00080, 0x000c0, 0x00100, 0x00140, 0x001c0, 0x00240, 0x00280, 0x002c0, - 0x00400, 0x00440, 0x01e80, 0x01ec0, 0x02100, 0x02140, 0x02180, 0x021c0, - 0x023c0, 0x02440, 0x02540, 0x02700, 0x02e80, 0x02ec0, 0x02f00, 0x03000, - 0x03040, 0x03080, 0x030c0, 0x031c0, 0x03200, 0x03400, 0x03440, 0x03480, - 0x034c0, 0x03500, 0x03540, 0x03580, 0x035c0, 0x03600, 0x03640, 0x03680, - 0x036c0, 0x03700, 0x03740, 0x03780, 0x037c0, 0x03800, 0x03840, 0x03880, - 0x038c0, 0x03900, 0x03940, 0x03980, 0x039c0, 0x03a00, 0x03a40, 0x03a80, - 0x03ac0, 0x03b00, 0x03b40, 0x03b80, 0x03bc0, 0x03c00, 0x03c40, 0x03cc0, - 0x03d00, 0x03d40, 0x03d80, 0x03dc0, 0x03e00, 0x03e40, 0x03e80, 0x03ec0, - 0x03f00, 0x03f40, 0x03f80, 0x03fc0, 0x04000, 0x04040, 0x04080, 0x040c0, - 0x04100, 0x04140, 0x04180, 0x041c0, 0x04200, 0x04240, 0x04280, 0x042c0, - 0x04300, 0x04340, 0x04380, 0x043c0, 0x04400, 0x04440, 0x04480, 0x044c0, - 0x04500, 0x04540, 0x04580, 0x045c0, 0x04600, 0x04640, 0x04680, 0x046c0, - 0x04700, 0x04740, 0x04780, 0x047c0, 0x04800, 0x04840, 0x04880, 0x048c0, - 0x04900, 0x04940, 0x04980, 0x049c0, 0x04a00, 0x04a80, 0x04ac0, 0x04b00, - 0x04b40, 0x04b80, 0x04bc0, 0x04c00, 0x04c40, 0x04c80, 0x04cc0, 0x04d00, - 0x04d80, 0x04e00, 0x04e40, 0x04e80, 0x04ec0, 0x04f00, 0x04f40, 0x04f80, - 0x04fc0, 0x05000, 0x05040, 0x05080, 0x050c0, 0x05100, 0x05140, 0x05180, - 0x051c0, 0x05200, 0x05240, 0x05280, 0x052c0, 0x05300, 0x05340, 0x05380, - 0x053c0, 0x05400, 0x05440, 0x05480, 0x054c0, 0x05500, 0x05540, 0x05580, - 0x055c0, 0x05600, 0x05640, 0x05680, 0x056c0, 0x05700, 0x05740, 0x05780, - 0x057c0, 0x05800, 0x05840, 0x05880, 0x058c0, 0x05900, 0x05940, 0x05980, - 0x059c0, 0x05a00, 0x05a40, 0x05a80, 0x05ac0, 0x05b00, 0x05b40, 0x05b80, - 0x05bc0, 0x05c00, 0x05c40, 0x05c80, 0x05cc0, 0x05d00, 0x05d40, 0x05d80, - 0x05dc0, 0x05e00, 0x05e40, 0x05e80, 0x05ec0, 0x05f00, 0x05f40, 0x05f80, - 0x05fc0, 0x06000, 0x06040, 0x06080, 0x060c0, 0x06100, 0x06140, 0x06180, - 0x061c0, 0x06200, 0x06240, 0x06280, 0x062c0, 0x06300, 0x06340, 0x06380, - 0x063c0, 0x06400, 0x06440, 0x06480, 0x064c0, 0x06500, 0x06540, 0x06580, - 0x065c0, 0x06600, 0x06640, 0x06680, 0x066c0, 0x06700, 0x06740, 0x06780, - 0x067c0, 0x06800, 0x06840, 0x06880, 0x068c0, 0x06900, 0x06940, 0x06980, - 0x069c0, 0x06a00, 0x06a40, 0x06a80, 0x06ac0, 0x06b00, 0x06b40, 0x06b80, - 0x06bc0, 0x06c00, 0x06c40, 0x06c80, 0x06cc0, 0x06d00, 0x06d40, 0x06d80, - 0x06e00, 0x06e40, 0x06e80, 0x06ec0, 0x06f00, 0x06f40, 0x06f80, 0x06fc0, - 0x07000, 0x07040, 0x07080, 0x070c0, 0x07100, 0x07140, 0x07180, 0x071c0, - 0x07200, 0x07240, 0x07280, 0x072c0, 0x07300, 0x07340, 0x07380, 0x073c0, - 0x07400, 0x07440, 0x07480, 0x074c0, 0x07500, 0x07540, 0x07580, 0x075c0, - 0x07600, 0x07640, 0x07680, 0x076c0, 0x07700, 0x07740, 0x07780, 0x077c0, - 0x07800, 0x07840, 0x07880, 0x078c0, 0x07900, 0x07940, 0x07980, 0x079c0, - 0x07a00, 0x07a40, 0x07a80, 0x07ac0, 0x07b00, 0x07b40, 0x07b80, 0x07bc0, - 0x07c00, 0x07c40, 0x07c80, 0x07cc0, 0x07d00, 0x07d40, 0x07d80, 0x07dc0, - 0x07e00, 0x07e40, 0x07e80, 0x07ec0, 0x07f00, 0x07f40, 0x07f80, 0x07fc0, - 0x08000, 0x08040, 0x08080, 0x080c0, 0x08100, 0x08140, 0x08180, 0x081c0, - 0x08200, 0x08240, 0x08280, 0x082c0, 0x08300, 0x08340, 0x08380, 0x083c0, - 0x08400, 0x08440, 0x08480, 0x084c0, 0x08500, 0x08540, 0x085c0, 0x08600, - 0x08640, 0x08680, 0x086c0, 0x08740, 0x08780, 0x087c0, 0x08800, 0x08840, - 0x08880, 0x088c0, 0x08900, 0x08940, 0x08980, 0x089c0, 0x08a00, 0x08a40, - 0x08a80, 0x08ac0, 0x08b00, 0x08b40, 0x08b80, 0x08bc0, 0x08c40, 0x08c80, - 0x08cc0, 0x08d00, 0x08d40, 0x08d80, 0x08dc0, 0x08e00, 0x08e40, 0x08e80, - 0x08ec0, 0x08f00, 0x08f40, 0x08f80, 0x08fc0, 0x09000, 0x09040, 0x09080, - 0x090c0, 0x09140, 0x09180, 0x091c0, 0x09200, 0x09240, 0x09280, 0x092c0, - 0x09300, 0x09340, 0x09380, 0x093c0, 0x09400, 0x09440, 0x09480, 0x094c0, - 0x09500, 0x09540, 0x09580, 0x095c0, 0x09600, 0x09640, 0x09680, 0x096c0, - 0x09700, 0x09740, 0x09780, 0x097c0, 0x09800, 0x09840, 0x09880, 0x098c0, - 0x09900, 0x09940, 0x09980, 0x099c0, 0x09a00, 0x09a40, 0x09a80, 0x09ac0, - 0x09b00, 0x09b40, 0x09b80, 0x09bc0, 0x09c00, 0x09c40, 0x09d00, 0x09d40, - 0x09d80, 0x09dc0, 0x09e00, 0x09e40, 0x09e80, 0x09ec0, 0x09f00, 0x09f40, - 0x09f80, 0x0f900, 0x0ff00, 0x0ffc0, 0x20000, 0x20040, 0x20080, 0x200c0, - 0x20100, 0x20180, 0x201c0, 0x20200, 0x20240, 0x20280, 0x202c0, 0x20300, - 0x20340, 0x20380, 0x203c0, 0x20400, 0x20440, 0x20480, 0x204c0, 0x20540, - 0x20580, 0x205c0, 0x20600, 0x20640, 0x20700, 0x20740, 0x20800, 0x20840, - 0x208c0, 0x20900, 0x20940, 0x209c0, 0x20a00, 0x20a40, 0x20a80, 0x20ac0, - 0x20b00, 0x20b80, 0x20bc0, 0x20c00, 0x20c40, 0x20c80, 0x20cc0, 0x20d00, - 0x20d40, 0x20d80, 0x20dc0, 0x20e00, 0x20e40, 0x20e80, 0x20ec0, 0x20f00, - 0x20f40, 0x20f80, 0x20fc0, 0x21000, 0x21040, 0x21080, 0x210c0, 0x21100, - 0x21140, 0x21180, 0x211c0, 0x21200, 0x21240, 0x21280, 0x212c0, 0x21300, - 0x21340, 0x21380, 0x213c0, 0x21400, 0x21440, 0x21480, 0x214c0, 0x21540, - 0x21580, 0x21600, 0x21640, 0x21680, 0x216c0, 0x21700, 0x21740, 0x21780, - 0x217c0, 0x21800, 0x21840, 0x21880, 0x218c0, 0x21900, 0x21940, 0x21980, - 0x219c0, 0x21a00, 0x21a40, 0x21b40, 0x21bc0, 0x21c00, 0x21c40, 0x21c80, - 0x21d40, 0x21d80, 0x21dc0, 0x21e00, 0x21e80, 0x21ec0, 0x21f00, 0x21f40, - 0x21f80, 0x21fc0, 0x22040, 0x22080, 0x220c0, 0x22100, 0x22140, 0x22180, - 0x221c0, 0x22200, 0x22240, 0x22300, 0x22380, 0x223c0, 0x22440, 0x22480, - 0x224c0, 0x22500, 0x22540, 0x22580, 0x22600, 0x22640, 0x22680, 0x226c0, - 0x22700, 0x22740, 0x22780, 0x227c0, 0x22800, 0x22840, 0x22880, 0x228c0, - 0x22900, 0x22940, 0x22980, 0x22a40, 0x22ac0, 0x22b00, 0x22b40, 0x22bc0, - 0x22c00, 0x22c40, 0x22c80, 0x22cc0, 0x22d00, 0x22d40, 0x22d80, 0x22dc0, - 0x22e00, 0x22e40, 0x22e80, 0x22ec0, 0x22f40, 0x22fc0, 0x23000, 0x23040, - 0x23080, 0x230c0, 0x23100, 0x23140, 0x23180, 0x231c0, 0x23200, 0x23240, - 0x23280, 0x232c0, 0x23300, 0x23380, 0x233c0, 0x23400, 0x23440, 0x234c0, - 0x23500, 0x23540, 0x23580, 0x235c0, 0x23600, 0x23640, 0x23680, 0x236c0, - 0x23700, 0x23740, 0x23780, 0x237c0, 0x23800, 0x239c0, 0x23a80, 0x23ac0, - 0x23b40, 0x23c80, 0x23cc0, 0x23d40, 0x23d80, 0x23dc0, 0x23e00, 0x23e80, - 0x23ec0, 0x23f00, 0x23f40, 0x23f80, 0x23fc0, 0x24000, 0x24040, 0x24080, - 0x240c0, 0x24100, 0x24140, 0x24180, 0x241c0, 0x24200, 0x24240, 0x24280, - 0x242c0, 0x24300, 0x24340, 0x24380, 0x243c0, 0x24400, 0x24440, 0x24480, - 0x244c0, 0x24500, 0x24540, 0x245c0, 0x24600, 0x24640, 0x24680, 0x246c0, - 0x24700, 0x24780, 0x247c0, 0x24800, 0x24880, 0x248c0, 0x24900, 0x24940, - 0x24980, 0x249c0, 0x24a00, 0x24a40, 0x24a80, 0x24ac0, 0x24b40, 0x24bc0, - 0x24c00, 0x24c80, 0x24cc0, 0x24d00, 0x24d80, 0x24dc0, 0x24e00, 0x24e40, - 0x24e80, 0x24f00, 0x24f40, 0x24f80, 0x24fc0, 0x25000, 0x25040, 0x25080, - 0x25100, 0x25140, 0x251c0, 0x25200, 0x25240, 0x25280, 0x252c0, 0x25300, - 0x25400, 0x25440, 0x25500, 0x25540, 0x25580, 0x255c0, 0x25600, 0x25640, - 0x25680, 0x256c0, 0x25700, 0x25740, 0x257c0, 0x25840, 0x258c0, 0x25900, - 0x25940, 0x25980, 0x259c0, 0x25a80, 0x25ac0, 0x25b40, 0x25b80, 0x25bc0, - 0x25c00, 0x25c40, 0x25c80, 0x25cc0, 0x25d00, 0x25d40, 0x25e00, 0x25e40, - 0x25e80, 0x25ec0, 0x25f00, 0x25f40, 0x25fc0, 0x26000, 0x26040, 0x26080, - 0x26100, 0x26140, 0x26180, 0x261c0, 0x26240, 0x262c0, 0x26300, 0x26340, - 0x26380, 0x263c0, 0x26400, 0x26440, 0x26480, 0x26500, 0x26540, 0x26580, - 0x26600, 0x26680, 0x266c0, 0x26700, 0x26740, 0x26780, 0x267c0, 0x26800, - 0x26840, 0x26880, 0x268c0, 0x26900, 0x26940, 0x26980, 0x269c0, 0x26a00, - 0x26a40, 0x26b00, 0x26b40, 0x26b80, 0x26bc0, 0x26c00, 0x26c40, 0x26c80, - 0x26cc0, 0x26d00, 0x26d40, 0x26d80, 0x26dc0, 0x26e00, 0x26e40, 0x26e80, - 0x26ec0, 0x26f00, 0x26f40, 0x26f80, 0x26fc0, 0x27000, 0x27040, 0x27080, - 0x270c0, 0x27100, 0x27140, 0x271c0, 0x27200, 0x27280, 0x272c0, 0x27380, - 0x27400, 0x27440, 0x27480, 0x27540, 0x27580, 0x275c0, 0x27600, 0x27640, - 0x27680, 0x27700, 0x27740, 0x27780, 0x277c0, 0x27840, 0x27880, 0x278c0, - 0x27900, 0x27940, 0x27980, 0x279c0, 0x27a00, 0x27a40, 0x27a80, 0x27ac0, - 0x27b00, 0x27b40, 0x27bc0, 0x27c00, 0x27d00, 0x27d40, 0x27d80, 0x27dc0, - 0x27e40, 0x27f00, 0x27fc0, 0x28000, 0x28040, 0x28080, 0x280c0, 0x28100, - 0x28140, 0x28180, 0x28200, 0x28240, 0x28280, 0x282c0, 0x28300, 0x28340, - 0x28380, 0x28400, 0x28440, 0x28480, 0x28500, 0x28540, 0x285c0, 0x28600, - 0x28680, 0x286c0, 0x28700, 0x28800, 0x28900, 0x28940, 0x28980, 0x289c0, - 0x28a00, 0x28a40, 0x28a80, 0x28ac0, 0x28b00, 0x28b40, 0x28b80, 0x28bc0, - 0x28c00, 0x28cc0, 0x28d00, 0x28d80, 0x28e00, 0x28e40, 0x28e80, 0x28ec0, - 0x28fc0, 0x29080, 0x290c0, 0x29100, 0x29140, 0x29180, 0x291c0, 0x29400, - 0x29440, 0x294c0, 0x29580, 0x295c0, 0x29700, 0x297c0, 0x29800, 0x29840, - 0x29880, 0x298c0, 0x29900, 0x29940, 0x29980, 0x299c0, 0x29a00, 0x29a40, - 0x29b00, 0x29bc0, 0x29c80, 0x29d00, 0x29d40, 0x29d80, 0x29dc0, 0x29e00, - 0x29e40, 0x29e80, 0x29ec0, 0x29f00, 0x29f80, 0x29fc0, 0x2a000, 0x2a080, - 0x2a0c0, 0x2a100, 0x2a140, 0x2a180, 0x2a1c0, 0x2a200, 0x2a280, 0x2a2c0, - 0x2a380, 0x2a400, 0x2a440, 0x2a5c0, 0x2a600, 0x2a640, 0x2a680, 0x2f800, - 0x2f840, 0x2f880, 0x2f8c0, 0x2f980, 0x2f9c0, -}; - -static int -hkscs1999_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x88 && c1 <= 0x8b) || (c1 >= 0x8d && c1 <= 0xa0) || (c1 >= 0xc6 && c1 <= 0xc8) || (c1 >= 0xf9 && c1 <= 0xfe)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - ucs4_t wc = 0xfffd; - unsigned short swc; - if (i < 2041) { - if (i < 1883) - swc = hkscs1999_2uni_page88[i-1256], - wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); - } else if (i < 10990) { - if (i < 5181) - swc = hkscs1999_2uni_page8d[i-2041], - wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); - } else if (i < 18997) { - if (i < 11461) - swc = hkscs1999_2uni_pagec6[i-10990], - wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); - } else { - if (i < 19939) - swc = hkscs1999_2uni_pagef9[i-18997], - wc = hkscs1999_2uni_upages[swc>>6] | (swc & 0x3f); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short hkscs1999_2charset[4698] = { - 0xc6d8, 0x8859, 0x8857, 0x885d, 0x885b, 0x8866, 0x8861, 0x885f, - 0x886a, 0x8868, 0x886f, 0x886d, 0x88a7, 0x8873, 0x8871, 0x8877, - 0x8875, 0xc8fb, 0x887b, 0x8879, 0x88a2, 0x8856, 0x8867, 0x885a, - 0x886c, 0x885c, 0x886e, 0x8870, 0xc8fc, 0x885e, 0x8874, 0xc8fa, - 0x8878, 0x8858, 0x8869, 0x8872, 0x8860, 0x8876, 0x887a, 0x887c, - 0x887d, 0x887e, 0x88a1, 0xc8f6, 0x886b, 0xc8f8, 0xc8f7, 0x88a8, - 0xc8fe, 0xc8f9, 0xc8f5, 0xc8fd, 0xc6d9, 0xc7f9, 0xc7f3, 0xc7f4, - 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7fa, 0xc7fb, 0xc7fc, 0xc7fd, - 0xc7fe, 0xc840, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, - 0xc847, 0xc848, 0xc849, 0xc84a, 0xc84b, 0xc84c, 0xc84d, 0xc84e, - 0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0xc854, 0xc855, 0xc856, - 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85c, 0xc85d, 0xc85e, 0xc85f, - 0xc860, 0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, - 0xc868, 0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, - 0xc870, 0xc871, 0xc872, 0xc873, 0xc874, 0xc875, 0xc85b, 0x8863, - 0x88a4, 0x8865, 0x88a6, 0xc8d2, 0xc8d3, 0xc6b5, 0xc6b6, 0xc6b7, - 0xc6b8, 0xc6b9, 0xc6ba, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc877, - 0xc878, 0xc876, 0x88a9, 0x88aa, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a4, - 0xc6a5, 0xc6a6, 0xc6a7, 0xc6a8, 0xc6a9, 0xc6aa, 0xc6ab, 0xc6ac, - 0xc6ad, 0xc6ae, 0xc6af, 0xc6b0, 0xc6b1, 0xc6b2, 0xc6b3, 0xc6b4, - 0xf9f9, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, - 0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xf9e9, 0xf9f2, - 0xf9e0, 0xf9eb, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, - 0xf9f6, 0xf9e4, 0xf9ea, 0xf9f3, 0xf9e1, 0xf9fa, 0xf9fb, 0xf9fd, - 0xf9fc, 0xc6e6, 0xc8d6, 0xc8d7, 0xc8d8, 0xc8d9, 0xc8da, 0xc8db, - 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0xc8e0, 0xc8e1, 0xc8e2, 0xc8e3, - 0xc8e4, 0xc8e5, 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, - 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc6cd, 0xc6e0, - 0xc6e1, 0xc6e2, 0xc6e7, 0xc6e8, 0xc6e9, 0xc6ea, 0xc6eb, 0xc6ec, - 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f0, 0xc6f1, 0xc6f2, 0xc6f3, 0xc6f4, - 0xc6f5, 0xc6f6, 0xc6f7, 0xc6f8, 0xc6f9, 0xc6fa, 0xc6fb, 0xc6fc, - 0xc6fd, 0xc6fe, 0xc740, 0xc741, 0xc742, 0xc743, 0xc744, 0xc745, - 0xc746, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xc74c, 0xc74d, - 0xc74e, 0xc74f, 0xc750, 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, - 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, 0xc75b, 0xc75c, 0xc75d, - 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, - 0xc766, 0xc767, 0xc768, 0xc769, 0xc76a, 0xc76b, 0xc76c, 0xc76d, - 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0xc774, 0xc775, - 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc8d4, 0xc8d5, 0xc6dc, - 0xc6dd, 0xc77b, 0xc77c, 0xc77d, 0xc77e, 0xc7a1, 0xc7a2, 0xc7a3, - 0xc7a4, 0xc7a5, 0xc7a6, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, - 0xc7ac, 0xc7ad, 0xc7ae, 0xc7af, 0xc7b0, 0xc7b1, 0xc7b2, 0xc7b3, - 0xc7b4, 0xc7b5, 0xc7b6, 0xc7b7, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, - 0xc7bc, 0xc7bd, 0xc7be, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c2, 0xc7c3, - 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7c8, 0xc7c9, 0xc7ca, 0xc7cb, - 0xc7cc, 0xc7cd, 0xc7ce, 0xc7cf, 0xc7d0, 0xc7d1, 0xc7d2, 0xc7d3, - 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d8, 0xc7d9, 0xc7da, 0xc7db, - 0xc7dc, 0xc7dd, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, - 0xc7e4, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e8, 0xc7e9, 0xc7ea, 0xc7eb, - 0xc7ec, 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc6e3, - 0xc6da, 0xc6db, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8846, - 0x8849, 0x884a, 0x884d, 0x884f, 0x8850, 0x8851, 0x8852, 0x8854, - 0x8855, 0xc879, 0xc8d1, 0x9277, 0x96df, 0x89d5, 0x93cd, 0x9bdf, - 0xfa68, 0x89da, 0x8f59, 0x89db, 0x8f5d, 0x89dc, 0x96f7, 0x8ada, - 0x8bdc, 0x97db, 0x9e53, 0x9daa, 0x9bea, 0x8a6e, 0x8bc8, 0x89e8, - 0x89ea, 0xfb70, 0x89ed, 0x94dd, 0x89ee, 0x9eb4, 0x8ad3, 0x92db, - 0x94db, 0x89f9, 0xfb7a, 0x89fb, 0x9efc, 0x89fc, 0x89bf, 0x89fe, - 0x89e6, 0x9d46, 0x9dee, 0xa07e, 0xa068, 0x98e9, 0x8b68, 0x8dfd, - 0x8bbe, 0x9fd9, 0x8aeb, 0x9fd7, 0x8b6a, 0x9c5c, 0x8bb1, 0xfb5e, - 0x9df3, 0xa0d0, 0xfc66, 0x92e9, 0x9aec, 0x8fab, 0xfa48, 0x8e45, - 0x9c6f, 0x9ede, 0x89ef, 0x96e9, 0x9ebb, 0x94de, 0x9eb8, 0x97ba, - 0xfb65, 0x95d6, 0x9cbb, 0x97da, 0x8f45, 0xfb7d, 0x9158, 0xfe64, - 0x9856, 0x9b4d, 0x935b, 0x95c7, 0x97e7, 0x9359, 0x91f5, 0x97b8, - 0xfda2, 0xfbb6, 0x92fa, 0x9357, 0x8ba6, 0xfbb9, 0x97b0, 0xfdc4, - 0x9ca1, 0x91f2, 0x91f9, 0x8ff1, 0x9745, 0x9853, 0xfe78, 0xfbc1, - 0x9251, 0x9dad, 0xfd6c, 0xfa6b, 0x9bc2, 0x9a7b, 0x8b60, 0x934b, - 0x9abd, 0x91b7, 0x95b4, 0xfec5, 0x9ef0, 0x8d64, 0x9269, 0x8d67, - 0xfbea, 0xfbef, 0x8d68, 0x93eb, 0xfc42, 0x9166, 0xfacd, 0x93dd, - 0x8bcc, 0x8d6d, 0x8d6e, 0x96a8, 0xfca6, 0x8d6f, 0x8d70, 0xfc64, - 0x9060, 0x8d74, 0x97c3, 0x8ad0, 0x9274, 0x9bbe, 0x9cc8, 0x9cba, - 0x8d78, 0x9eb9, 0x955a, 0x91b4, 0x8a48, 0x8d7d, 0x8a7d, 0x8ac2, - 0xfd4a, 0x8da1, 0x8ad1, 0xfcb4, 0x8b47, 0x93a4, 0x9eda, 0x8a51, - 0x8da6, 0x9ec5, 0xfcc4, 0xa078, 0x94b5, 0xfcc2, 0x8a6b, 0x8dab, - 0xfae8, 0x8dad, 0xfc49, 0x93c1, 0x906f, 0x8db0, 0x947e, 0x90fa, - 0x9479, 0x8db2, 0xfcee, 0x997b, 0x8db4, 0x8db7, 0x91b3, 0x8dbb, - 0x8dba, 0x8dbc, 0x9044, 0xfd4c, 0x93e4, 0x93e0, 0xfd53, 0x8dc3, - 0x9bb8, 0xfbf0, 0x93e9, 0x93f6, 0x8dc5, 0x8dca, 0x8dcc, 0xfd5d, - 0x93b5, 0xfd61, 0x9cf8, 0x9252, 0xa0e8, 0x9ca5, 0x8dd6, 0x97c0, - 0xa0de, 0x97d2, 0xfaa5, 0xfda3, 0x8ddb, 0x8eaf, 0x91b5, 0xfd49, - 0xfdd1, 0x8deb, 0x97c6, 0xfdce, 0x90fc, 0xfc59, 0x96d6, 0x97c5, - 0x8def, 0x97d7, 0x8df0, 0x96a6, 0xfbbf, 0x8df3, 0x9449, 0x8df5, - 0x9872, 0x8e6b, 0xfafd, 0x8f50, 0x9dcc, 0xfc65, 0x996e, 0x94a1, - 0x8f63, 0xa0da, 0x9253, 0xfde9, 0x9db5, 0x9879, 0x9d5d, 0x8d63, - 0x9669, 0x9f70, 0xfc6a, 0x8ac7, 0x89d7, 0xfe4d, 0x9edd, 0xfefb, - 0x98bc, 0xfacc, 0x95b0, 0x9464, 0x936f, 0x94b9, 0x95ec, 0x91ee, - 0x98c3, 0x95f6, 0x8ffd, 0x98c5, 0x9766, 0xfe6e, 0x97dd, 0x92d2, - 0x9761, 0x98cb, 0x95f0, 0x975d, 0x91e3, 0x98cc, 0x9469, 0x98cd, - 0x98ce, 0x95fc, 0x94a3, 0x9662, 0xfeb6, 0x9463, 0x98d0, 0x98d1, - 0x9475, 0xfae0, 0x9472, 0x98d6, 0x8af0, 0x98d9, 0x98db, 0x98dd, - 0x98a8, 0x8a6d, 0x8afb, 0x8aae, 0xfbc9, 0x98e4, 0x98e6, 0x98e8, - 0x8a4d, 0x9257, 0x95df, 0xa0ac, 0x98eb, 0x98ec, 0x98f4, 0x8ab8, - 0x9ee7, 0x94bc, 0xfcd1, 0x9cc6, 0x9e7e, 0x98fe, 0xfde8, 0x9940, - 0x94c9, 0x94d3, 0x9946, 0x90c0, 0x94d1, 0x9573, 0x93c2, 0x9948, - 0x994b, 0x8e55, 0x994e, 0x8efe, 0x8e59, 0x94ec, 0x94ef, 0x8f74, - 0x9955, 0x9544, 0x9956, 0x9959, 0x995b, 0xfa45, 0x90b7, 0x9743, - 0x95cd, 0x97c9, 0xfd50, 0x8eb9, 0x95c6, 0x9967, 0x8ab9, 0x8dfc, - 0x8a76, 0x9d51, 0x9973, 0x9d4f, 0x997a, 0x9564, 0x99a1, 0x99a5, - 0x99a7, 0x8eed, 0x99ad, 0xc87e, 0x946e, 0x8f70, 0xfad0, 0x99b3, - 0xa053, 0x965c, 0xfd7a, 0x97fe, 0x92bd, 0x97fd, 0x8f64, 0xfcf7, - 0x9562, 0x97cd, 0x9e64, 0x924c, 0x8ec9, 0x99bc, 0x9da5, 0x8f54, - 0x8f7c, 0x8ea2, 0x8f7a, 0x97ae, 0x96c8, 0x99c3, 0x90d6, 0x9cbe, - 0x8f76, 0x9470, 0xfb4b, 0xfdca, 0x8ec7, 0xa0f9, 0x8fa9, 0x99c7, - 0x90d7, 0x9edf, 0x99ce, 0x8fba, 0x8feb, 0x99cf, 0x8fc2, 0x92c9, - 0x97dc, 0x95b3, 0x9c79, 0x95b2, 0x8fdb, 0x9be3, 0x9e7a, 0x9bee, - 0x99de, 0xfafa, 0x8a52, 0x99e1, 0x8a67, 0x8bb5, 0x8aac, 0x99e9, - 0xfbca, 0x97de, 0x95d1, 0x99f5, 0xfc4a, 0x9ba9, 0xfbdc, 0xfe56, - 0x9ea4, 0x9d49, 0x95db, 0x89c5, 0x99f8, 0x9664, 0x9055, 0x96d4, - 0x977c, 0x964d, 0x97e1, 0x9a48, 0x9a49, 0xfe7d, 0x90aa, 0x9a50, - 0x9347, 0x8ed8, 0x90c9, 0x9a55, 0x90bc, 0x9a58, 0x8bb8, 0x90d5, - 0x9641, 0x9a5a, 0x9a5c, 0x97c2, 0x8abb, 0x9baa, 0x90f5, 0x9a60, - 0x9145, 0x9a63, 0x8bb6, 0xfccf, 0x966b, 0x9a6e, 0x914f, 0x9746, - 0xa0e6, 0x92d7, 0x9675, 0x93d4, 0x91bb, 0x9679, 0x9a70, 0x9678, - 0x91cd, 0x9c4a, 0xa06f, 0xa06a, 0x915f, 0x9fa5, 0x89ba, 0x9ecd, - 0x9a79, 0x9dce, 0x9d73, 0x96b9, 0x96bc, 0x9cd1, 0x89b7, 0x9eee, - 0xfb43, 0x9ec9, 0xfbd3, 0x91ae, 0x9d78, 0x9d7b, 0x9eb3, 0x9eb2, - 0x9dd6, 0x994f, 0x89ce, 0x8bc0, 0x9fc4, 0x8bd4, 0xc6bf, 0x8bf9, - 0x8946, 0xc6c0, 0xfae5, 0xc87b, 0x8bc6, 0x9c57, 0x9afb, 0x89d0, - 0x89cf, 0xc6c1, 0x89d1, 0x89e2, 0x927e, 0x9dba, 0xc6c2, 0xfbf8, - 0x8bc7, 0x926b, 0x89d2, 0x9fcf, 0x9da9, 0x89d3, 0x99e2, 0x9267, - 0x92a4, 0x894e, 0x894f, 0x9278, 0x91b6, 0x89d4, 0x9fd2, 0x92a7, - 0x95a2, 0x926e, 0x96ea, 0x926f, 0x92a3, 0x8950, 0xfa57, 0x9866, - 0x89d6, 0x98b2, 0x92ab, 0x96de, 0x92ac, 0x9f6e, 0x8ef2, 0x9f6c, - 0x89d8, 0xfa59, 0x92a8, 0x9163, 0x9f73, 0x92ad, 0x9be9, 0x92a9, - 0x92aa, 0x89d9, 0xfd56, 0x9fa8, 0x92a1, 0x90e3, 0xa0a6, 0x94ab, - 0xfc72, 0x97c4, 0x92ae, 0xfa67, 0x92a2, 0xfa69, 0x9268, 0x8951, - 0xfa6f, 0xfa71, 0x8952, 0x945a, 0xc6c3, 0x89dd, 0xc8a2, 0xc6c4, - 0x9e52, 0x8953, 0x9e55, 0x92ba, 0xc6c5, 0xfa7d, 0xfaa8, 0x9a68, - 0xfa47, 0xfa7e, 0x92bb, 0xfdb6, 0xfaa2, 0xfaa3, 0xfaa4, 0x9bb4, - 0xfaa6, 0x89df, 0xfddb, 0xfaa9, 0x8954, 0xfaab, 0xfc7a, 0x89e0, - 0x9f4f, 0xc87d, 0x89e1, 0xfab0, 0x9fcd, 0xa0e7, 0xfab1, 0x89a6, - 0x9efa, 0xfab2, 0xfab4, 0x92c4, 0x9f6f, 0x8bb0, 0x9fac, 0x89e3, - 0x9bd3, 0x89e4, 0xfab5, 0x9fd5, 0x8955, 0x92c5, 0x8956, 0xfab3, - 0xfab6, 0xfab7, 0x9edc, 0xfbc4, 0x9f71, 0xfaba, 0x92c7, 0xc6c6, - 0x9a4c, 0x89e5, 0x9f7d, 0xa0a9, 0xfac4, 0xc6c7, 0x8957, 0xfaaa, - 0x8958, 0x8be3, 0x8b61, 0x9af1, 0x9eb7, 0xc6c8, 0xfad1, 0xfad2, - 0x9eba, 0xfad4, 0xfad9, 0xfadb, 0x9ce0, 0xfbf7, 0xfbfa, 0x89e7, - 0xa07a, 0xfadc, 0xfadd, 0x89e9, 0xc6c9, 0xfae2, 0x89eb, 0xfae3, - 0x90c8, 0x92da, 0x8959, 0x9cf5, 0x895a, 0xfae7, 0x9fa2, 0xfaea, - 0xfaed, 0x8fad, 0xfb59, 0xfaef, 0x96ef, 0x9dec, 0x9dca, 0xfd6d, - 0x89ec, 0xfb44, 0x9de2, 0x9ec0, 0x9e56, 0x9f79, 0x9ac7, 0xfaf4, - 0x98a1, 0xfaf8, 0x89f0, 0x9e47, 0x9df7, 0x9fd3, 0x9aca, 0x89f1, - 0xfaf9, 0x8e5a, 0x89f2, 0x89f3, 0x925d, 0x8b51, 0x92e0, 0x89f4, - 0x9fd4, 0x8a79, 0x89f5, 0x97a7, 0x93ba, 0x9e58, 0x89f6, 0x9e57, - 0x89f7, 0x8a41, 0x89f8, 0xfaf1, 0x89fa, 0xfb42, 0xfabf, 0xfba3, - 0xfaf7, 0x9e4e, 0x94dc, 0x95da, 0x9df8, 0x9f6a, 0x8ab7, 0xfb46, - 0x8a46, 0xfb47, 0x9148, 0x92de, 0x8b53, 0x9df6, 0x9bda, 0x9d7e, - 0x89fd, 0x99e4, 0x9e43, 0x9de9, 0x8f52, 0x9df5, 0x9df0, 0x99e7, - 0x8bbd, 0x9def, 0x9fb7, 0x9dd0, 0x9feb, 0x8da9, 0x9dcf, 0x98e1, - 0x9de5, 0x9dc8, 0xfb4f, 0x9deb, 0xfb54, 0xfb55, 0x9aa2, 0x8ad6, - 0x9a5f, 0x9ef5, 0x8fb7, 0x9ad2, 0x9e6a, 0x9ee8, 0x8bbf, 0x91c2, - 0x9d62, 0x9260, 0x925e, 0x91c1, 0x8ac5, 0x97a3, 0x8b6c, 0x8d7e, - 0x9c54, 0x9dbd, 0x9cc5, 0x895b, 0xfb5c, 0xfb5b, 0xfb57, 0x98c7, - 0xfb5a, 0x9cee, 0x92e2, 0x94a7, 0x9bd4, 0xfb64, 0xfb76, 0xfb60, - 0x99e5, 0x9ac2, 0x91fb, 0xa073, 0x9f72, 0x9fcc, 0x98a5, 0x92e8, - 0x9bbc, 0x96f3, 0x92e7, 0xfc67, 0x8b7d, 0x9bf4, 0x9ef7, 0x9ec1, - 0x996f, 0x96f1, 0x8e41, 0x954a, 0x97e6, 0x96f5, 0x92e6, 0x9f42, - 0xfb67, 0x99a9, 0xfae6, 0xfb69, 0x97e5, 0x967d, 0xfb6c, 0x99a2, - 0x9abb, 0x9a65, 0x944e, 0xfb6e, 0x99df, 0x98e3, 0x9254, 0x967b, - 0x8aaf, 0x8baf, 0x9ebd, 0x9ee6, 0xfb6f, 0x8ee1, 0x9b7d, 0x9c7e, - 0xf9d9, 0x92ea, 0xfb72, 0xfb71, 0x895c, 0x98f0, 0x96f2, 0xfb74, - 0x8bc1, 0x895d, 0x89de, 0x895e, 0xc6ca, 0xfe42, 0xfb7b, 0x895f, - 0x8960, 0x9bcd, 0x9dd3, 0x984c, 0x9752, 0x95c3, 0x9bb6, 0x9ab9, - 0x97b3, 0x9f74, 0x92f1, 0x97df, 0xfba6, 0xfbab, 0x9877, 0x9854, - 0x95c5, 0x9d55, 0xfbb2, 0x957e, 0x9742, 0x94e6, 0x92f5, 0x92fd, - 0xfba2, 0x9c51, 0x94e9, 0x985c, 0x92f0, 0x944c, 0x916b, 0x8b78, - 0x94e2, 0x984f, 0xfbb5, 0x9271, 0x9365, 0x985b, 0x9850, 0x97bc, - 0x92f3, 0x9340, 0x984d, 0x9572, 0xfdef, 0xfdc1, 0xfbba, 0x92eb, - 0xfc73, 0x97b7, 0xfbb4, 0x90a7, 0x9741, 0x92f4, 0xfbbc, 0x9577, - 0x9ee2, 0x8f78, 0xf9dc, 0x9672, 0x9eb5, 0x964b, 0xa0fa, 0x9575, - 0x90da, 0x9367, 0xfea4, 0x90df, 0x9354, 0x8961, 0x8bb4, 0x9dc0, - 0x8e48, 0xfbc5, 0xfbc7, 0xc6cb, 0xfa79, 0x9e67, 0xfbd2, 0x8962, - 0x8963, 0xfc7d, 0x9f6b, 0xfbcc, 0xfeae, 0xfbd1, 0xfb75, 0xfbd4, - 0xfbd6, 0xfbd8, 0x8b5d, 0x934c, 0x9ae2, 0x8bc9, 0xfbdb, 0x9fc9, - 0x9f44, 0x98ed, 0xfbdd, 0x8df2, 0x8964, 0xfdf2, 0x934d, 0xfbe7, - 0xa0f2, 0x9868, 0x9f58, 0x8d73, 0xfbde, 0xfbdf, 0xfbe3, 0x8da8, - 0xfbe4, 0x9c75, 0x9878, 0x8d60, 0xfbe5, 0x8d61, 0x8d62, 0xa0a1, - 0x9c40, 0x98ad, 0x9eea, 0x9ceb, 0xfbe0, 0x9f51, 0x8d65, 0x9cf1, - 0xfc58, 0x8d66, 0x9654, 0xfbe8, 0xc6cc, 0x9fce, 0xfbfc, 0x9ae4, - 0x9f75, 0xfbf1, 0x8d69, 0x934f, 0x934e, 0xfbf4, 0xc6ce, 0xfbc3, - 0x8965, 0x8d6a, 0x9353, 0x9dfb, 0xfbfd, 0x9059, 0xfc40, 0xfc41, - 0xfc43, 0x9361, 0xfc46, 0x9362, 0x8d6b, 0xfc4c, 0x95b8, 0xc6d0, - 0x8bca, 0x987a, 0xc6d1, 0xfc51, 0xfc54, 0xfaaf, 0x8d6c, 0xfa61, - 0xfc57, 0x9b70, 0xa051, 0x8bcb, 0x936e, 0xfcd5, 0xfca9, 0xfc61, - 0x8966, 0xfacb, 0xf9da, 0x937a, 0xa0e0, 0x936b, 0xfc6b, 0xa0dc, - 0x9468, 0xfc6d, 0x8d71, 0xfd64, 0x99ba, 0x9ad0, 0x9a61, 0xa0e5, - 0xa05b, 0x96ac, 0x9740, 0x9ef1, 0x9f7e, 0x8d72, 0xfc76, 0x96a9, - 0xa06e, 0xfcaa, 0xfbcd, 0xfc74, 0xa074, 0xa071, 0xfc79, 0xfc7c, - 0x9c50, 0x9379, 0x9378, 0xa0dd, 0x8d75, 0x8d76, 0x9374, 0x8d77, - 0xfca5, 0xfca2, 0x90c3, 0xa079, 0x8d79, 0x8bfc, 0xa076, 0x8bcd, - 0x9f5a, 0x9ff4, 0x9fba, 0x8d7a, 0x9e45, 0x93b0, 0xa075, 0x9b46, - 0xfcae, 0xfcb0, 0xfa51, 0x8d7b, 0x8d7c, 0x9ed6, 0x93ac, 0x9f5b, - 0x93a9, 0xa07c, 0xfcb2, 0x8ac1, 0x9fb4, 0xfcac, 0x9e4c, 0x8fc5, - 0x93ad, 0x9dc3, 0x8da2, 0x9d4a, 0xfcb6, 0x8da3, 0x9e4b, 0x9e4d, - 0x8da4, 0x8afd, 0xfcb5, 0xfcc3, 0x93b2, 0x8da5, 0x93a1, 0x8ac6, - 0x8a5b, 0x894d, 0xfed4, 0x8a78, 0x93ab, 0x8da7, 0x9f45, 0x8a56, - 0xfcbf, 0xfcc0, 0x8ee6, 0x8aa4, 0x8943, 0x93f3, 0xfcab, 0x9ea2, - 0x9dc7, 0xc6d2, 0x8bce, 0xfcc5, 0xfccb, 0x93b3, 0xfcca, 0xfcc9, - 0x8dac, 0xfbc6, 0x8967, 0xfccd, 0x9cf3, 0xfcd0, 0x95bb, 0xfcd3, - 0xfcd4, 0x8dae, 0xfcd7, 0x93db, 0xfe63, 0x93d5, 0xfcda, 0x9b71, - 0xfcdd, 0x8daf, 0xfaf2, 0x93d8, 0xfcdf, 0x93d3, 0xfce1, 0x8e76, - 0xfc62, 0x93d1, 0x8db1, 0x9859, 0xfb52, 0xfb53, 0xfb4d, 0x9cbf, - 0x9b72, 0xfb50, 0x93be, 0x9df1, 0xfceb, 0xa0bb, 0x9b7e, 0x8db3, - 0x9ae8, 0x8edc, 0x9cf9, 0xfa50, 0x98e7, 0xfcf3, 0xfcf2, 0x93e5, - 0x9a59, 0x8db5, 0xfd4d, 0xfd5e, 0x8f7d, 0x9547, 0xfcf6, 0x9250, - 0x8968, 0x8db6, 0xfcfb, 0xa07d, 0x98fc, 0x8969, 0xfe4f, 0x9256, - 0xfac9, 0x93e8, 0xfcf8, 0x9ce3, 0xfda9, 0xfc44, 0x9640, 0x8db8, - 0x9b4a, 0x8fb9, 0xfcfe, 0x896a, 0x8db9, 0x917e, 0x93f4, 0xfb7c, - 0x93e7, 0x97ef, 0xfe4a, 0xfd45, 0x96a5, 0xfee0, 0xfd48, 0xfd47, - 0xfef2, 0xfe6a, 0x8dbd, 0x9ba1, 0x9ab7, 0x8efc, 0x9fa1, 0xfd51, - 0xfaad, 0x8dbe, 0x89a4, 0x9ad9, 0xfd4e, 0x8dc0, 0x97f0, 0x93b4, - 0xfd44, 0x9fa7, 0x8dc2, 0x99b6, 0xfd52, 0x8dc1, 0x8e46, 0xa0d1, - 0x9fca, 0x92cf, 0x9cf4, 0x8dc4, 0xfd41, 0x9b4c, 0xfd57, 0xfcef, - 0x9cde, 0xfd42, 0x986c, 0x97f9, 0x9558, 0x985e, 0xfe7b, 0x94cd, - 0x93ee, 0xfd5a, 0x93f5, 0x93ef, 0x8eea, 0x8f5b, 0x8dc6, 0x8dc8, - 0x8dc7, 0x93f7, 0x8dc9, 0xfbf2, 0x9670, 0x8dcb, 0xfd5c, 0x8f65, - 0x8dcd, 0x9da8, 0x94f9, 0x8dce, 0x93ea, 0xfd5f, 0x93f0, 0x9fb6, - 0x8dcf, 0x9763, 0x8dd0, 0x93f1, 0xfd62, 0xfd65, 0x9fdb, 0x93f8, - 0x8bf7, 0xfd66, 0x8bcf, 0x8dd1, 0x8dd2, 0xfd71, 0xfd6f, 0x8dd3, - 0x9fe7, 0x90bd, 0x9fd0, 0x8bd0, 0xfd72, 0x9cae, 0x8bd1, 0x8adb, - 0xfae4, 0x95ce, 0xfd76, 0xfb62, 0x8dd4, 0xfd78, 0x8ee3, 0x9076, - 0x98c6, 0x8dd5, 0x97d1, 0x9eb6, 0xfac7, 0xa042, 0x9873, 0x9ffc, - 0x8dd7, 0x92fb, 0x8dd8, 0x944f, 0x8dd9, 0x896b, 0x97ce, 0xfaf3, - 0xfdae, 0xfbaf, 0x92b7, 0x8dda, 0x9c5a, 0xfdad, 0x8ddc, 0x9444, - 0x8ddd, 0xa0d6, 0x97d5, 0x944a, 0x944d, 0x97cb, 0x8dde, 0x8ddf, - 0x8de0, 0xfef9, 0xfdc0, 0xfcf9, 0xfb7e, 0x92b3, 0xfdaf, 0x8de1, - 0x95d3, 0x89c1, 0xfd68, 0x9cb7, 0x8de3, 0xfac0, 0x8de5, 0xfa64, - 0x8947, 0x8de4, 0x8de7, 0x8de8, 0xfdc7, 0xfdb0, 0x9445, 0x97d6, - 0xfcc6, 0x9844, 0x8de9, 0x8dea, 0xfe50, 0xfdcc, 0x9da7, 0xfdcd, - 0xfdcf, 0x95d2, 0x8ded, 0xfcba, 0xfdc5, 0xfdd2, 0x9cdc, 0x95cf, - 0x8dee, 0xfdd4, 0x96ec, 0x96eb, 0x90b6, 0xfdc3, 0x98ab, 0x96ee, - 0x8df4, 0xfde0, 0x8df6, 0x8df7, 0x8ffa, 0x97d0, 0x8bd2, 0x8df8, - 0x90d9, 0xfaf0, 0xfde1, 0x8df9, 0xfde3, 0x8dfa, 0xfb63, 0x90a6, - 0x9970, 0x91eb, 0x9770, 0x986f, 0xfde2, 0x98f2, 0x9afc, 0x896c, - 0xfdfd, 0x995e, 0x95bd, 0xfde4, 0x91e6, 0xfde5, 0xfde6, 0xfde7, - 0x9454, 0x99b8, 0x97e9, 0x9346, 0x9863, 0x95bc, 0xfded, 0xfdf7, - 0x9870, 0x96f6, 0x8ea9, 0x9451, 0x8e43, 0x8b5a, 0xfdee, 0xfdf0, - 0xfdf4, 0x9bf5, 0x977e, 0x9bd5, 0x9ac3, 0x97c8, 0xa0db, 0x91d0, - 0x9fe4, 0x8fdd, 0x91e9, 0x98e0, 0x92ca, 0x9857, 0xfdeb, 0x9b49, - 0x9d76, 0x9eaf, 0x9ccc, 0xfdea, 0x8df1, 0xfdfb, 0x8e53, 0xfacf, - 0x96f9, 0x98bf, 0x9e49, 0x9bca, 0xfdfe, 0x92dc, 0xfe41, 0x91cc, - 0x91e2, 0xfe44, 0x8bd3, 0xfe47, 0xfe48, 0x9455, 0xfe4b, 0xfe4c, - 0x8dbf, 0x9e78, 0xfe51, 0x9456, 0x9d61, 0x9457, 0x9966, 0x8bd5, - 0xa069, 0x98b4, 0xa049, 0xa04c, 0x9e65, 0x98b5, 0xfe58, 0x9975, - 0xfe53, 0xa065, 0xfe59, 0x98b7, 0x98b8, 0x98ba, 0x98bb, 0x9fbc, - 0xa04a, 0x9ec7, 0x98ae, 0x92d6, 0xfae1, 0x91d4, 0xfade, 0xfe5b, - 0xfe5e, 0xfbd7, 0xfe5a, 0x94c5, 0xfaca, 0x98c1, 0x975c, 0xfe74, - 0x9773, 0xfa46, 0x9764, 0xfe68, 0x964e, 0x9765, 0x89a1, 0x95fa, - 0x92d4, 0xfe69, 0xfb45, 0x98c8, 0x90ef, 0x98c9, 0x98ca, 0x946d, - 0x94b7, 0xfe6c, 0x946b, 0x92fc, 0x95eb, 0xfe73, 0x976e, 0xfe5f, - 0xfdbd, 0x92d5, 0xfeb9, 0xfe71, 0xfbbb, 0x947a, 0x95fb, 0xfe77, - 0xfe79, 0xfe75, 0x945d, 0xfe7c, 0x9344, 0x8ea6, 0x92d3, 0x94b8, - 0xfc71, 0x975e, 0xfea7, 0x946a, 0x93e3, 0x98cf, 0xa0d9, 0xa0bf, - 0xa04d, 0xa0b8, 0xa0ce, 0xa0b7, 0xfea9, 0x89c3, 0xfeab, 0x9df4, - 0x896d, 0x9c7b, 0x98d2, 0x9fa9, 0xfeb2, 0xfeb1, 0x97d9, 0xa0c4, - 0x9476, 0x9978, 0xfeb3, 0x98d3, 0xfeb4, 0x98d4, 0x9fb9, 0x9471, - 0x98d5, 0xfeb8, 0xc6d4, 0xfeba, 0x9e5c, 0xfebb, 0xa044, 0x98d7, - 0x98d8, 0xfebc, 0x9ffe, 0xfebd, 0x9ddd, 0x9ee1, 0x98da, 0x9ddf, - 0xfebf, 0xfebe, 0x9eeb, 0x9e59, 0xa05c, 0xfec0, 0x9477, 0x98dc, - 0xfec1, 0x98de, 0xfec3, 0xfec8, 0xfec9, 0xfeca, 0xfecb, 0x9fc2, - 0x98c4, 0x94b0, 0x94b1, 0xfed1, 0xa0c1, 0xfed2, 0xa0cd, 0xfed3, - 0x98e5, 0xfed6, 0x91e4, 0x8fc7, 0x94ae, 0x8a4f, 0x94b2, 0x8fd4, - 0x98ea, 0xfed8, 0x9de0, 0x98ee, 0x95c4, 0xfce8, 0x98ef, 0xfad8, - 0xfedc, 0xa0ae, 0x9d4c, 0x98f1, 0x98f3, 0x94c1, 0x98f5, 0xfa4f, - 0x96e2, 0x9450, 0x96a2, 0x98f6, 0x96e5, 0x98f7, 0xa046, 0x96e3, - 0x98f8, 0x9ee4, 0xf9d6, 0x94c3, 0x94c2, 0xfee1, 0xfee9, 0x96e4, - 0x89ac, 0x96db, 0xfee2, 0x94c4, 0xfee3, 0xfee7, 0x9ffb, 0x93c9, - 0x94e8, 0xfb56, 0x90c5, 0xa0a8, 0xfee5, 0x98fd, 0x98fb, 0xfee8, - 0x8ebf, 0x8bd8, 0xfef7, 0x8f68, 0x94c6, 0x9dea, 0xfc69, 0x9cda, - 0xfef3, 0x9c72, 0xfef0, 0x89c9, 0x9941, 0x9942, 0xfef5, 0x91d7, - 0x94cc, 0xfef8, 0x97a8, 0xfefc, 0xfdbf, 0xfefe, 0x96d1, 0x94d5, - 0x94d0, 0x9944, 0xa0b3, 0x94cf, 0x9ffa, 0x91e5, 0x9c6a, 0x8e49, - 0x8e4c, 0x8e4d, 0x9a73, 0x9947, 0x8e50, 0x8e4f, 0x9949, 0x8e51, - 0x8e52, 0x9ab2, 0x89a5, 0x994c, 0x9ff8, 0x8e56, 0x994d, 0x91ca, - 0x8e57, 0x94e1, 0x9047, 0x8fd8, 0x8e58, 0x94eb, 0x8e5c, 0x9553, - 0x9fe5, 0x9f56, 0x954f, 0x8e5e, 0x996a, 0x9c64, 0x9cd9, 0x8e5d, - 0x9950, 0x9951, 0x8e62, 0x9952, 0x8e68, 0x8e61, 0x9f59, 0x8bb3, - 0x9f5d, 0x8e66, 0x8e6e, 0x9f64, 0x9953, 0xfab8, 0x9954, 0x8e70, - 0x9f61, 0x8e72, 0xa06b, 0x9f40, 0x94ed, 0x94ee, 0x9fbd, 0x8e7b, - 0x9957, 0x94f7, 0x9f5f, 0x8e73, 0x9f62, 0x94f6, 0x9958, 0x8e75, - 0xf9db, 0x9072, 0x94f8, 0x995a, 0xa0b0, 0x8e79, 0x8e78, 0x94f3, - 0x98af, 0xa0b2, 0x8e7a, 0x995c, 0x8e7c, 0x8e7d, 0x8bd9, 0x89a2, - 0x9ed7, 0xa0b6, 0x9e42, 0x8ea4, 0x8ea7, 0x9542, 0x987d, 0x9755, - 0x8ea8, 0x8eaa, 0x89a3, 0x9960, 0x9962, 0x94fc, 0x9961, 0x94fa, - 0x8eae, 0x8eb2, 0x8eb0, 0x9963, 0x97aa, 0x94fb, 0x8ebb, 0x9876, - 0x8ea1, 0x8eb7, 0x9da6, 0x9eb0, 0x8eb8, 0x9d70, 0x896e, 0x896f, - 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8ebc, 0x8ebd, - 0x8ebe, 0x9dd1, 0x94fd, 0x8bd7, 0x8bda, 0xa0e2, 0x9fe9, 0xfda8, - 0x8ae7, 0x8ec2, 0x8ec4, 0x9964, 0x9965, 0x954e, 0x98b3, 0x8ecb, - 0x8bdf, 0x8ece, 0x8ecf, 0x9968, 0x9969, 0x996b, 0x8ed1, 0x996c, - 0x8ed4, 0x8ed5, 0x996d, 0xa0be, 0x8ed6, 0xa0bc, 0xa0b5, 0xa0b4, - 0x8be0, 0x89b5, 0x8edd, 0x9e5d, 0x9971, 0x89ae, 0x9de8, 0x9565, - 0x9972, 0x8b5c, 0x89b1, 0xa0c0, 0x8edf, 0x9566, 0x9974, 0x9976, - 0x9977, 0x9979, 0x9dda, 0x8ee0, 0x935c, 0x9de6, 0x8b5f, 0x9563, - 0x9567, 0x9de3, 0x997c, 0x997d, 0x997e, 0x8b5b, 0x99a3, 0x99a4, - 0x99a6, 0x99a8, 0x8abe, 0x9e61, 0x99aa, 0xa0c8, 0x99ab, 0xfec4, - 0x98c2, 0x8ee8, 0xa0ba, 0xfd77, 0x8eee, 0x9ebf, 0x89c2, 0x99ac, - 0x956b, 0x956c, 0x99af, 0x994a, 0x8976, 0x8f48, 0xfbee, 0x99ae, - 0x8efb, 0x8b52, 0x99b0, 0x8977, 0x8f41, 0x99b1, 0x8f49, 0xfa4d, - 0x9de4, 0xfbe9, 0x9b54, 0x99b2, 0x9e68, 0x8f4a, 0x8f42, 0x8f51, - 0x9846, 0x99b4, 0x8ef5, 0xfd55, 0x9ccd, 0x8978, 0x8f53, 0x8f6f, - 0x8e63, 0x8f56, 0xfe76, 0x9fc6, 0xfaac, 0x8f58, 0x9848, 0x99b7, - 0x9665, 0xfa6c, 0x9de7, 0x9e62, 0x96cc, 0x8e67, 0xfc75, 0x987e, - 0xfdb9, 0x97fc, 0x98f9, 0x8f66, 0x956e, 0x9245, 0x8f60, 0x9ed1, - 0xfecd, 0x99b9, 0x8f62, 0x974c, 0x91c7, 0x955f, 0x99bb, 0x8e6d, - 0x8f71, 0x94cb, 0x95b1, 0x9af2, 0x96c3, 0x99bd, 0xa0cf, 0x8f6d, - 0x99be, 0x8ef4, 0x8f72, 0x95e4, 0x99bf, 0x9242, 0xfba5, 0x99c0, - 0xfdb4, 0x8f77, 0x99c1, 0xfab9, 0x8f40, 0xfa44, 0x99c2, 0x8f5c, - 0x99c4, 0x99c5, 0x8f7b, 0x8fa3, 0x99c6, 0x96cd, 0x96c7, 0x8fa5, - 0xfabb, 0x9570, 0x9368, 0x8f7e, 0x8faa, 0xa050, 0x90d3, 0x9556, - 0x8fb8, 0x99c8, 0x8faf, 0x99c9, 0x9579, 0x9f49, 0x99ca, 0x99cb, - 0x9dd5, 0x8fb0, 0xfa7a, 0x9e5f, 0x99cd, 0xa0c9, 0x9adb, 0xa0c6, - 0x8fb4, 0xa0d7, 0xa0c7, 0xa043, 0x8fb5, 0x8fb2, 0xa061, 0x9e5e, - 0x8fb6, 0x9fe8, 0x9cb2, 0x957c, 0x9fc7, 0x8fbb, 0x8fbc, 0x8fec, - 0x8fc0, 0x936a, 0x8be4, 0x9c7c, 0x95a1, 0xfeec, 0x95a3, 0x8fc1, - 0xa052, 0x99d0, 0x8fc3, 0x8fc4, 0x95a4, 0x8fc6, 0x9e60, 0xf9d8, - 0x95a5, 0x9cb3, 0x99d1, 0xfef1, 0x99d2, 0x9cc2, 0x99d3, 0x95a7, - 0x95a9, 0x95a6, 0x9c5d, 0x98e2, 0x8fc9, 0xa0c2, 0x8fca, 0x99d4, - 0xa0b9, 0x9b58, 0x8fcd, 0xa0d4, 0x8fce, 0x8be5, 0x8979, 0x8fd0, - 0x95b6, 0x99d6, 0x95e5, 0x99d7, 0x95b5, 0xa0ca, 0x9ffd, 0xa058, - 0x8fd6, 0x99d8, 0x8fd3, 0x8fe5, 0x8fe9, 0x99d9, 0x927c, 0x9c45, - 0x8fde, 0x8fdf, 0xa04b, 0x8fe2, 0xa0cc, 0x8fe3, 0x8fe4, 0x9bc4, - 0x9bfc, 0x964c, 0x9af6, 0x8fe7, 0x8fe8, 0x8be7, 0x897a, 0x897b, - 0x99da, 0x8fed, 0x95c0, 0xa0cb, 0x9e48, 0x99db, 0x8ff3, 0x8ff9, - 0x95c1, 0xa04e, 0x99dc, 0xa064, 0x8ff7, 0x89b0, 0xa048, 0x8ffb, - 0x8ff6, 0x9ddc, 0x99dd, 0x8be8, 0x92c1, 0x9fd6, 0xa0d2, 0x9040, - 0x8ac4, 0x99e0, 0x9ff0, 0x9ff3, 0x9dbf, 0x9ff6, 0x95c8, 0x9e5a, - 0x99e3, 0x8a4a, 0x9ff1, 0x8aa7, 0x99e6, 0x9ff7, 0x9fed, 0x8a5c, - 0x9dae, 0x95c9, 0x9048, 0x99e8, 0x9049, 0x90b1, 0x904a, 0x99ea, - 0x9bd1, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x904c, 0x904d, 0x95cb, - 0x97e2, 0x95cc, 0x9f78, 0x897c, 0x897d, 0x897e, 0x995d, 0x9b5a, - 0x9050, 0x9054, 0xc6d6, 0x9aa8, 0x99ef, 0xfeeb, 0x9da3, 0x9da1, - 0x9943, 0x9945, 0x9d7d, 0x99f0, 0x99f1, 0x99f2, 0x9d60, 0xa0a3, - 0x905b, 0x9edb, 0x9d79, 0x99f3, 0x9062, 0x9f55, 0x9bf9, 0x9065, - 0x96e0, 0x98be, 0x9068, 0x906c, 0x95d8, 0x906a, 0x9fb2, 0x9fae, - 0x9fb0, 0x89ad, 0x906e, 0x9e71, 0x9e4a, 0x9fdc, 0x89ab, 0x9fb8, - 0x9070, 0x8b63, 0x95dc, 0x9071, 0xfc5e, 0x8949, 0x965b, 0x94a6, - 0x8fd5, 0x9e73, 0x9075, 0x99f7, 0x99f9, 0x9663, 0x95b9, 0x94d4, - 0xfcfa, 0x9077, 0x90ab, 0x9d4d, 0x99fa, 0x92e3, 0x97bb, 0x9078, - 0x99fb, 0x97e0, 0x96dc, 0x9ca8, 0x9772, 0x9440, 0x92f2, 0x99fd, - 0x99fc, 0xf9d7, 0x964a, 0x96d8, 0x99fe, 0x904b, 0xfa41, 0x9a40, - 0x975b, 0x9a41, 0x91dd, 0x93fc, 0x9a42, 0x9a43, 0x9659, 0x9a44, - 0x9051, 0x94bf, 0x90a2, 0x9cab, 0x9776, 0xfc55, 0xfe45, 0x94a8, - 0x9a45, 0xfa4b, 0x9de1, 0x96d9, 0x9774, 0xfdf5, 0x92e5, 0x9645, - 0x91da, 0x90a3, 0xa05f, 0x90af, 0x97bf, 0x914c, 0x967a, 0x91de, - 0x9a46, 0xfeb0, 0x9779, 0x946c, 0x9858, 0x9266, 0x93fb, 0x9a47, - 0x9749, 0x9748, 0x934a, 0x9ce2, 0x9264, 0x91df, 0xfb79, 0x96d7, - 0x9343, 0xfdcb, 0xfe7a, 0x91db, 0x97af, 0x95dd, 0x9348, 0x9a4b, - 0xfc45, 0x9a4d, 0x91bc, 0x90e2, 0x90b4, 0x95e1, 0x9a4e, 0x9a4f, - 0xfe40, 0xfe43, 0x96dd, 0x9a51, 0x96a7, 0x90b0, 0x9c4e, 0x9443, - 0x8eba, 0x9a52, 0xfcc1, 0x8be9, 0x9caf, 0x8bfd, 0x9abc, 0x9ab8, - 0x9aae, 0x9aa7, 0x9a53, 0x9d74, 0x8bea, 0x8beb, 0x90b2, 0x95e9, - 0x95e8, 0x95e6, 0x90b5, 0x9a54, 0x90b3, 0x95e7, 0x8b50, 0x8bec, - 0x9a56, 0x8bfb, 0x9a57, 0xa0aa, 0x9fa6, 0x99cc, 0x9c59, 0x99b5, - 0x90be, 0x9faf, 0x95f2, 0x90bf, 0x90c1, 0xfee4, 0x90c4, 0x90c7, - 0x92e4, 0x9f52, 0x90db, 0xa066, 0x90d2, 0x90d4, 0x9a5b, 0x95fd, - 0x8bc4, 0x90de, 0x9ce4, 0x90e1, 0x9e46, 0x9651, 0xfb58, 0x90e6, - 0x9650, 0x90e7, 0x90e8, 0x9a5d, 0x9f7a, 0x9b5c, 0x9f7c, 0xfc52, - 0x90e9, 0x90ea, 0x9a5e, 0x9f76, 0x90eb, 0x90ec, 0x8bee, 0x90ee, - 0x91c6, 0x90f2, 0xfcbc, 0x8a74, 0x9657, 0x9cef, 0x9fdf, 0x90f7, - 0x90f6, 0x9b5e, 0x90f8, 0x90f9, 0xfa6a, 0x8bef, 0x9fe0, 0x9142, - 0x9a62, 0x9569, 0x9144, 0x9143, 0x9141, 0x8bf0, 0x9660, 0x8bf1, - 0x99f6, 0x9149, 0x914a, 0x914b, 0x9a64, 0x8abf, 0x9a66, 0x9a67, - 0x9a69, 0x9a6a, 0x9652, 0x914d, 0x9666, 0x9f7b, 0x9a6b, 0xa06c, - 0x9667, 0x9a6c, 0x9a6d, 0x8bf2, 0x966a, 0xfcea, 0x966c, 0x91c4, - 0x9677, 0x99f4, 0x9a6f, 0x9fab, 0x8ec1, 0x9555, 0x9152, 0x9153, - 0x9155, 0x955d, 0x9671, 0x9c6d, 0x9673, 0x9154, 0x9a71, 0x9156, - 0x966d, 0x9557, 0x89c6, 0x89c7, 0x8a6a, 0x8b57, 0x9fe1, 0x9b5f, - 0xa05d, 0x915b, 0x915c, 0x915e, 0x9f5c, 0x9f57, 0x9f65, 0x9a72, - 0x9160, 0x9f5e, 0x9161, 0x9164, 0x9f41, 0x9169, 0x9168, 0x9a74, - 0x96b2, 0x9a75, 0xfda5, 0x9ee9, 0x8bba, 0x916d, 0xa060, 0x9fde, - 0x9fc3, 0x96b5, 0xa067, 0x96b3, 0x9a76, 0x95d5, 0x9eca, 0x9a77, - 0x9a78, 0x9170, 0x916f, 0x9fa3, 0x9171, 0x96b1, 0x9f63, 0x9f67, - 0x8bb9, 0x9a7a, 0x8b56, 0x9ada, 0x96b0, 0x9a7e, 0x9dde, 0x96ad, - 0x96ae, 0x9ea1, 0x9e50, 0x96af, 0x8bf4, 0x9fa4, 0x96bd, 0x96f4, - 0x96b8, 0xfaa1, 0x91a7, 0xa05e, 0x9a7d, 0x8948, 0x9eb1, 0x9ddb, - 0x95bf, 0x8a73, 0x9efe, 0x917a, 0x917b, 0x9aa3, 0x96c2, 0x9f77, - 0x9aa4, 0x9aa5, 0x91a1, 0x89b8, 0x9173, 0x9aa6, 0x89bd, 0x89b9, - 0x917d, 0x96bb, 0x9ff2, 0x8bf5, 0x9aa9, 0x9f54, 0x9fe3, 0x9eed, - 0x91aa, 0x91ab, 0xa070, 0x9f6d, 0x91ac, 0x91ad, 0xa0fd, 0x9fe2, - 0x91af, 0x9e41, 0x9aaa, 0x91b0, 0x9aab, 0x9aac, 0x9a4a, 0x91b2, - 0x8bf6, 0x9aad, 0x89b6, 0x9aaf, 0x9ab0, 0x9ab1, 0x9aa1, 0x91b9, - 0x91ba, 0x91be, 0xa041, 0x8bb7, 0x91c0, 0x9ab3, 0x91c3, 0xa0fc, - 0x9fee, 0x9f69, 0x91c8, 0x91c9, 0x8de6, 0x91cb, 0x89c8, 0x8daa, - 0x9fdd, 0xc8a1, 0xc8a3, 0x8bf8, 0xc8d0, 0xc8cf, 0xc6e4, 0xc6e5, - 0xc8cd, 0xc8ce, 0xf9fe, 0x9c71, 0x9375, 0x9376, 0x9548, 0x8ec6, - 0x8bc5, 0x8bfa, 0xc87c, 0x9ab4, 0x884e, 0x884b, 0xc87a, 0x8848, - 0x8847, 0xa0f6, 0x8845, 0x8853, 0xfcad, 0x8aad, 0x9272, 0xfc47, - 0x94df, 0x9fd1, 0xfbcb, 0x927d, 0x98a4, 0x94e7, 0x90cb, 0x927b, - 0x94d8, 0xfc5f, 0xfa54, 0x9ab5, 0x96da, 0x9279, 0xfa74, 0x9275, - 0x8dfb, 0x8a49, 0x92df, 0x9b7c, 0xfa63, 0xfa60, 0x926d, 0xfa62, - 0x9ab6, 0x976b, 0xfd6a, 0xfd54, 0x9273, 0x97d8, 0x9fbb, 0x9342, - 0x9276, 0xfa65, 0x926c, 0xfa6e, 0x9ee0, 0x92c0, 0x92bf, 0x92be, - 0x9aba, 0x8ab3, 0x9775, 0xfa40, 0xfa76, 0xfbd0, 0xfa7b, 0xfe6d, - 0x9bb3, 0x89cc, 0x9abe, 0xfa42, 0x92bc, 0x945c, 0x9bb5, 0x9abf, - 0x98a7, 0x97a4, 0x90fd, 0xfc7b, 0x9ac0, 0x92c3, 0x8aaa, 0x9bd0, - 0x9550, 0x92c6, 0x98a6, 0x9546, 0xfd63, 0xfac2, 0x9ec3, 0x89b2, - 0x9c66, 0x9053, 0x97c1, 0x9ac4, 0x9ac5, 0x8eef, 0xfae9, 0x9262, - 0x8af7, 0x9ac6, 0x92e1, 0x9ac9, 0xfac6, 0x97a5, 0x9acb, 0xfa72, - 0x8a5e, 0x94e0, 0x92cc, 0x8ae5, 0xfe5c, 0x9acc, 0x9df9, 0x8a43, - 0x8aa6, 0x9acd, 0x9ace, 0xfaee, 0x9bcc, 0x9acf, 0x9ad1, 0x9dfa, - 0x9d7c, 0x9ad3, 0x97a6, 0x995f, 0xfbf6, 0x9fc5, 0x8a59, 0x8b6b, - 0x9ad4, 0x9ad5, 0x97a2, 0x8a44, 0x9f4a, 0x90a1, 0xfda4, 0x8a64, - 0x8af2, 0x8af8, 0x9dd8, 0x94d6, 0xfafe, 0xfba7, 0x9ad6, 0x9f4d, - 0xfaf6, 0x8a57, 0x8b43, 0x8b44, 0x8ab6, 0x8ac0, 0x9e54, 0x9ad7, - 0x9ad8, 0x9adc, 0x8aca, 0x9ea8, 0x9263, 0x9add, 0x8b65, 0x8b6f, - 0x8b7e, 0x8f43, 0x92d0, 0x8af4, 0x9dbe, 0x9ae1, 0xfcde, 0x9dfd, - 0x8b66, 0x8b70, 0x8b75, 0x8ae4, 0x8ba4, 0x8aed, 0x8a5d, 0x8b48, - 0x9ded, 0x9e40, 0x8aef, 0x8af6, 0x9e76, 0x9ee3, 0x9ade, 0x8dfe, - 0xfafc, 0x9cb1, 0x9e77, 0x8b64, 0x8b67, 0x974b, 0x9653, 0x9ae0, - 0x8b4a, 0x8af1, 0x8ad7, 0xa0ab, 0x8ab5, 0x8a5f, 0x8aee, 0x9adf, - 0x8afe, 0x8a58, 0x8ba3, 0x8ba7, 0x9ae3, 0x9261, 0x9dd7, 0x9e7d, - 0x9ea7, 0x9eab, 0x9042, 0x8b79, 0x8b7a, 0x9ae6, 0x9ae5, 0x8a7e, - 0x9e44, 0x9ae7, 0x8a7c, 0x8b71, 0x9ae9, 0x9aea, 0x9aeb, 0x8abd, - 0xfb4e, 0x9aed, 0x8af9, 0x9e63, 0x8b49, 0x8ace, 0x8b6e, 0x8ae8, - 0x9aee, 0x92ce, 0x8a5a, 0x8b7b, 0x8b7c, 0x9aef, 0x9af0, 0x8afa, - 0x8941, 0x8b72, 0x8af3, 0x8ba8, 0x9eae, 0x9e72, 0xfb73, 0xfb5f, - 0x90ba, 0x91fe, 0x9ef6, 0x97ed, 0x9af3, 0xa0ee, 0x967c, 0x9345, - 0x986e, 0xfa56, 0x9af5, 0xfc4b, 0x9af4, 0xfede, 0xfcb7, 0x97f1, - 0x97c7, 0x9ccb, 0x9240, 0x9ce8, 0x91fd, 0x974e, 0xfb68, 0x976c, - 0x97e8, 0xfb6a, 0x8b74, 0x8ee7, 0xfdc8, 0x9241, 0x96a1, 0x8ef3, - 0x9af7, 0x8fa6, 0xfad6, 0x9cc7, 0xfad7, 0x9af8, 0xfba1, 0x8ec5, - 0xfba4, 0xfbc2, 0x9ac1, 0x91fa, 0xfedb, 0x97ab, 0x9147, 0xfbb1, - 0x8fea, 0x94d2, 0xfe61, 0xface, 0x92ed, 0x91f3, 0x93c6, 0x935a, - 0xfafb, 0x92ef, 0xfac8, 0x9847, 0x9366, 0x9855, 0x96e6, 0x9f43, - 0x9faa, 0x94da, 0x92ee, 0xfcaf, 0xfbfb, 0x8ef9, 0x91f6, 0x9364, - 0x94f5, 0x9cb6, 0xfbad, 0x984e, 0x8f44, 0x96fd, 0x9af9, 0x9afa, - 0x9769, 0x95d4, 0x984b, 0xfbaa, 0x987c, 0x91ea, 0x9daf, 0x9dc5, - 0x91f1, 0x8eb1, 0x97a9, 0xfbac, 0xfcb8, 0x9cb9, 0xfbb0, 0xfcd2, - 0x93cb, 0x9afd, 0x91f4, 0x8bac, 0xa055, 0x9574, 0x95be, 0x97ad, - 0x8ee9, 0x92f8, 0x97be, 0x916c, 0x94aa, 0xfc63, 0x9dc6, 0x97b5, - 0x92b8, 0x91ef, 0xfea6, 0x9760, 0x9358, 0x9576, 0x8fac, 0x91ec, - 0x97b4, 0x91f7, 0x974a, 0xfb49, 0x9578, 0x93bc, 0x91d6, 0x9355, - 0x9356, 0x9851, 0x8ff8, 0xfbc0, 0x93f2, 0x90d0, 0x9c44, 0x9255, - 0x9363, 0x91a5, 0xa0ed, 0xfd6b, 0x9afe, 0x9351, 0xfa78, 0xfea8, - 0x9350, 0xfa4c, 0x92f7, 0x9b40, 0xfbce, 0x9b41, 0xfead, 0xfbd5, - 0x8bc2, 0x9a7c, 0x9b42, 0x9b43, 0x9e79, 0xfbd9, 0x9b44, 0xa0a7, - 0x9bf3, 0x935e, 0x89cb, 0x9f53, 0x93d7, 0xfbe1, 0xfed0, 0xfbe2, - 0xfce3, 0x9074, 0xfbe6, 0x9bb7, 0x9b45, 0x9b47, 0x9f50, 0x9b48, - 0xfc5b, 0x98a9, 0x9cfd, 0x884c, 0x9b4b, 0xfbec, 0x9ba8, 0x8ad5, - 0xfa73, 0xfd59, 0x91a2, 0xfbed, 0x9ca9, 0x8aa8, 0x9bc3, 0x8ae1, - 0x9b4e, 0x95d0, 0x905f, 0x97ee, 0xfc4e, 0x9b4f, 0x9b50, 0x9ec6, - 0xfc50, 0xfd73, 0xfda7, 0x9da2, 0xfa58, 0xfa5e, 0xa059, 0xfa75, - 0xfbbe, 0x9ca2, 0x9370, 0x9371, 0x9377, 0xfeef, 0x936d, 0xfc5d, - 0x90b8, 0x8afc, 0xfb41, 0x9e6b, 0x94e3, 0x8ee2, 0x8ed7, 0x9c4d, - 0x96a3, 0x9b51, 0x8ac3, 0x96aa, 0xfc68, 0x8b6d, 0xfd67, 0x8ae9, - 0xfca1, 0x936c, 0x9b52, 0xfe70, 0xfca8, 0xfce9, 0x9cb4, 0x8aea, - 0x9b53, 0x9b55, 0x96ab, 0xfca7, 0x9b56, 0x8abc, 0x8acb, 0x9b57, - 0x89cd, 0x9b59, 0x9b5b, 0x93a5, 0x9b5d, 0x9e4f, 0x93a3, 0x8a7b, - 0x8b42, 0x9750, 0x8fb3, 0x8a50, 0x9b60, 0x8b45, 0x8b46, 0x9dfe, - 0x9b62, 0x937b, 0x93b1, 0x8a60, 0x8ad8, 0x9b63, 0x8a69, 0x8a47, - 0x8acc, 0x937c, 0x9b65, 0x9b66, 0x8a72, 0x8a7a, 0x93af, 0x8ab0, - 0x9b68, 0x9ea3, 0xfaec, 0x8b77, 0x9b67, 0x8b59, 0xfcb1, 0xfcbb, - 0x9b69, 0x93a8, 0x8ae0, 0x9e51, 0x8f5f, 0x9b6a, 0x9b6b, 0x97ec, - 0x9b6c, 0xfe4e, 0xfdc2, 0x9b6d, 0x9167, 0xfccc, 0x93b6, 0x90e4, - 0x90e5, 0x9ef2, 0x93ca, 0x8bbc, 0x8f46, 0x93cf, 0xfcdb, 0xfcdc, - 0x93c0, 0xfce6, 0x96e7, 0xfcd8, 0xfcd9, 0xfda6, 0x93ce, 0x95f1, - 0x9ce9, 0xfce4, 0x94af, 0xfa77, 0x93cc, 0x905a, 0x93bf, 0xfb51, - 0x93b9, 0xfed7, 0x93b7, 0x93d9, 0x93bb, 0x93da, 0x98a3, 0x90d1, - 0x9b6e, 0xfa70, 0x9beb, 0x9b6f, 0xfcfc, 0x8b40, 0xa07b, 0x97f7, - 0x93e2, 0xfcd6, 0x9559, 0x93a6, 0xfd40, 0x935f, 0x97f2, 0x9c76, - 0x8ef8, 0x8f47, 0x9b74, 0x92b4, 0x91ed, 0x96d2, 0xfd46, 0x8f4f, - 0x9549, 0x9b75, 0xfa5c, 0x9b79, 0xfd4b, 0x96d3, 0xfd58, 0x945f, - 0xa0f5, 0x9243, 0x97fa, 0x9dd9, 0x97f4, 0x924d, 0xfd5b, 0x9b7a, - 0x9ed5, 0xfaae, 0x9cc9, 0x9258, 0x8ec8, 0x94b4, 0x93e1, 0x93df, - 0xfcf0, 0x93ec, 0x97f6, 0x96cf, 0x93de, 0x8acf, 0x9ba2, 0xfd69, - 0x9352, 0x98a2, 0xfd6e, 0xfa7c, 0x93fa, 0x907c, 0x8f67, 0x9db7, - 0xa0e9, 0xfa4e, 0xfda1, 0x9e74, 0x9fbf, 0x9ecb, 0x9bb9, 0x9dd4, - 0x97b9, 0x8ef1, 0x957b, 0x9ed2, 0x9753, 0x96a4, 0x8fbe, 0x94d9, - 0x9058, 0xfd79, 0xfd7b, 0x8eda, 0x8efa, 0x9ba5, 0x9ed9, 0x97d4, - 0x90bb, 0xfdbc, 0xfdc6, 0x9248, 0x92b5, 0x9dc1, 0x92b9, 0x92a6, - 0x8f4b, 0x9ba6, 0x92b6, 0x8e40, 0x9ed8, 0x945e, 0x985f, 0x94ce, - 0x924a, 0xfd70, 0x9467, 0x8dec, 0x9bd8, 0x9448, 0xfac1, 0x9cf7, - 0xfdbe, 0x8fda, 0xfdd9, 0xfc7e, 0x93f9, 0xfa43, 0xfaeb, 0xfac3, - 0x97d3, 0x95f9, 0x9c48, 0xfdd8, 0xa0d8, 0xfdd7, 0xfb4a, 0x9baf, - 0x944b, 0xfdc9, 0x8eac, 0xfdb2, 0x925a, 0xfcbd, 0x92d9, 0xfdd5, - 0x92dd, 0x9259, 0x96ba, 0x925b, 0x9bab, 0xfdda, 0xfdde, 0xfdd3, - 0xfdd6, 0xfddc, 0xfddd, 0x90fe, 0xfea1, 0x8bad, 0x9cd8, 0x9e6d, - 0xfd7c, 0xfb61, 0x96f8, 0x96f0, 0xfcf4, 0xfe60, 0x9852, 0x964f, - 0x916e, 0x986d, 0x9864, 0x9453, 0xfdec, 0xfb78, 0x95ba, 0x985d, - 0x92f9, 0x985a, 0xfdf6, 0x93d0, 0x9862, 0x9bad, 0x974f, 0x9bae, - 0x9452, 0x9bb0, 0x91d2, 0x97ea, 0xfb6b, 0x91b1, 0xfdf3, 0x92cb, - 0x9bb1, 0xfcec, 0x986b, 0x9751, 0x9871, 0x95ef, 0x9ef3, 0x91e8, - 0x9bba, 0xfb4c, 0x926a, 0xfdf8, 0x9861, 0x91e7, 0x93ed, 0x9744, - 0x91e1, 0xfbf5, 0x9869, 0x8a62, 0x9bbb, 0x9c55, 0x8e77, 0x8ab2, - 0x9ebc, 0x93e6, 0x93a2, 0x9bbd, 0x94b3, 0x937d, 0x9e66, 0x9459, - 0x9bbf, 0x9458, 0x9ea5, 0x9bc7, 0xfe54, 0x8e74, 0x8bd6, 0x94b6, - 0xfd74, 0x98c0, 0x94a5, 0x9bc8, 0x95ed, 0xfd7e, 0xfbeb, 0xfd7d, - 0x976f, 0x9461, 0x9fc1, 0x95d7, 0xfa52, 0x9c58, 0x9f68, 0x9be7, - 0xfcce, 0x96e8, 0xfa49, 0x97a1, 0x954d, 0x9ef8, 0xfe49, 0x91ce, - 0x9771, 0xfdb1, 0xfc6e, 0x9cf2, 0x93b8, 0x9043, 0x9759, 0x94d7, - 0xfe66, 0x947d, 0xfc6f, 0x9246, 0xfa6d, 0x8ef7, 0xfbb7, 0x947c, - 0x92cd, 0x97b2, 0xfe65, 0x967e, 0x9758, 0x9b77, 0x91cf, 0x94a4, - 0x9cad, 0x8bab, 0x96d5, 0xfcb3, 0x93ae, 0x976d, 0x9446, 0x95f7, - 0x9c46, 0x955b, 0x91d1, 0x94f4, 0xfe67, 0x92a5, 0xfedf, 0x9bc9, - 0xfced, 0xfdfa, 0xfcc8, 0xfe62, 0x91fc, 0xfe6b, 0xfdf9, 0xfcc7, - 0x914e, 0x9cb8, 0x9767, 0x95ee, 0x9bb2, 0x9460, 0x94a2, 0x9875, - 0x97ac, 0x91d3, 0x987b, 0x8eeb, 0x976a, 0x965e, 0x97eb, 0x9ff9, - 0x95f8, 0xfea2, 0x8fe6, 0xfe7e, 0x9da4, 0x9768, 0x8eec, 0x94bd, - 0x945b, 0x9cf6, 0xfaa7, 0x9bd9, 0xfa5d, 0x9656, 0x9762, 0x94ba, - 0xa04f, 0x92d8, 0x9bcb, 0x94bb, 0x9d5f, 0x90cf, 0x9465, 0x9f4c, - 0x90d8, 0x9ebe, 0xfb6d, 0x95ca, 0x9dc2, 0x97f8, 0x8ffc, 0x9473, - 0x9474, 0xfeb7, 0x8a4b, 0x8a55, 0x8b69, 0x8adc, 0x8b76, 0x9bce, - 0x8a68, 0xa0f8, 0x98df, 0xfeb5, 0x9bcf, 0x96fb, 0x9bfb, 0x9ece, - 0x8ee5, 0x9e7b, 0x9bd2, 0x8aa5, 0xfece, 0x8a45, 0x9dfc, 0xfecf, - 0x8ba5, 0x8aec, 0xfce0, 0x94ad, 0xfed5, 0x94ac, 0xfc5a, 0x9bd6, - 0x8a6f, 0x8ba9, 0x8e5f, 0x9dcb, 0xfce7, 0x9bd7, 0x93c8, 0x91f0, - 0x8fe0, 0x9bdb, 0x90ed, 0x9bdc, 0xa0ec, 0x98fa, 0x9be0, 0x93c7, - 0x9249, 0x96e1, 0x9be2, 0x9be4, 0x8fe1, 0x9be5, 0x94c0, 0x93c3, - 0x93c5, 0x9079, 0x977b, 0x907e, 0xfee6, 0xfe46, 0x9db8, 0x9270, - 0x95a8, 0x94c8, 0x98b9, 0x9140, 0xfcbe, 0x9157, 0x8bb2, 0xfadf, - 0x9be6, 0x9643, 0x8e44, 0x9c4f, 0xfef4, 0x9be8, 0x93dc, 0x966f, - 0x8e4a, 0x9bed, 0x92f6, 0x9db9, 0x8e4e, 0xfbcf, 0x9ec2, 0x94e5, - 0x9bf0, 0x94e4, 0x9551, 0x8bbb, 0x9bf1, 0x94f0, 0x8e64, 0x94ea, - 0x8f61, 0x9b64, 0x8e5b, 0x9bf2, 0x9fbe, 0x9dc9, 0x8e6c, 0x8f73, - 0x8f75, 0x8e71, 0x8e60, 0x8e6a, 0x9552, 0x9554, 0x8ad4, 0x9dbb, - 0x9543, 0x92fe, 0x94f2, 0x94f1, 0xa0ea, 0x9dd2, 0xa0b1, 0x91f8, - 0x9462, 0x9ba4, 0x8ead, 0x9ead, 0x96d0, 0xfeee, 0x8ab4, 0x9757, - 0x8a77, 0x9bf7, 0x8eb5, 0xa06d, 0x8eb6, 0x9756, 0x9540, 0xa0f3, - 0x94be, 0x9bfa, 0xfddf, 0x9dbc, 0x94fe, 0x8bdb, 0xa0fe, 0x8ec0, - 0x9f47, 0x8bde, 0xa0fb, 0x8ec3, 0x9649, 0xfec2, 0x954c, 0x9bfd, - 0x90cc, 0x9c60, 0x954b, 0x9bfe, 0x9c70, 0x9c43, 0x9c47, 0x8ecc, - 0x8e54, 0x8ee4, 0x9c49, 0x8b5e, 0x955e, 0x955c, 0x9c4b, 0x8be1, - 0x8ed9, 0x9db4, 0x925f, 0x9c4c, 0x8aa1, 0x8edb, 0x9c56, 0x8aa2, - 0x9754, 0x9c5e, 0x9ed4, 0x9568, 0xa0c3, 0x8ae6, 0xa0f7, 0x9c61, - 0x9c5f, 0xfc4d, 0x9e5b, 0x9e69, 0x9c63, 0xfec7, 0xfec6, 0x9c67, - 0x9c69, 0x8be2, 0x9165, 0x9ce7, 0x8a54, 0x9c6c, 0x9c6e, 0xfe5d, - 0x9c73, 0x956a, 0x956d, 0x8ef0, 0x8f4d, 0x8ef6, 0xfabc, 0xfbda, - 0x8b4c, 0xfd75, 0x9bdd, 0xfaf5, 0x9c74, 0x9545, 0x96c6, 0x8f6a, - 0x8f4e, 0x9c78, 0xfa55, 0x97e4, 0x9c41, 0x925c, 0x96fa, 0xfb66, - 0x8e65, 0x9849, 0xfba8, 0x9842, 0x9c7a, 0x97fb, 0x90ca, 0x9c5b, - 0x974d, 0x8ed3, 0x9561, 0x9f4b, 0x9fb5, 0x93d2, 0xfdaa, 0x9840, - 0x9146, 0x9867, 0xfa5a, 0xfba9, 0x9841, 0xfcfd, 0xfdab, 0x91bd, - 0x8f4c, 0x96c9, 0x8f55, 0xfbae, 0x956f, 0x9c7d, 0xa0f0, 0x946f, - 0xfdac, 0x96cb, 0x96ce, 0xa056, 0x9ce1, 0x96c4, 0x8f5e, 0x8f6c, - 0x8ea3, 0xfbb3, 0xfc53, 0xfdb3, 0x8f6b, 0x96ca, 0x8f79, 0x9e6f, - 0xa0c5, 0xfc78, 0x8e42, 0x8f5a, 0x90c2, 0x8ea5, 0x9061, 0x924f, - 0x9373, 0xfdb5, 0xfecc, 0xfbbd, 0x9843, 0x96c5, 0x89bc, 0x9ca3, - 0x924b, 0x984a, 0x8fa4, 0xa0f1, 0x9efb, 0x9cd2, 0x8fa7, 0xfc5c, - 0x9845, 0x9046, 0xfefa, 0x9560, 0x9f48, 0x9247, 0x90fb, 0x9ca4, - 0x9571, 0x9ca6, 0x9ca7, 0x9caa, 0x9ed3, 0x9e70, 0x9cac, 0x8fae, - 0x957d, 0x9cb0, 0x97b6, 0xa0bd, 0x8adf, 0x9eaa, 0x8fbd, 0x8fbf, - 0x9369, 0x9ba7, 0xc8a4, 0xfeea, 0x9be1, 0x8b41, 0x9db6, 0xa0eb, - 0x9ba3, 0x8ba1, 0x8fc8, 0x894c, 0x9860, 0x94c7, 0x8b58, 0x95ab, - 0x95aa, 0x9cc3, 0x9cc4, 0x93d6, 0x9dac, 0x8be6, 0x8a71, 0x8fd1, - 0x99d5, 0x90f4, 0x8aa3, 0x9cce, 0x9cd4, 0x9cd5, 0xfbc8, 0x9db3, - 0xfc70, 0x8fd7, 0x9b73, 0xfa5b, 0x8fd2, 0x9064, 0x98b6, 0x9668, - 0x9cd6, 0x98bd, 0x8fdc, 0xfef6, 0x8fd9, 0x9541, 0x97f3, 0x9bf8, - 0x9e6c, 0x8ff2, 0x8fee, 0x9cd7, 0x9e6e, 0x8a40, 0x8fef, 0x8ff4, - 0x8ff5, 0x95c2, 0x986a, 0x97cf, 0x9ee5, 0x9e7c, 0x9041, 0x9cdb, - 0x9441, 0x9ce6, 0x9db0, 0x9cea, 0x9ced, 0x9cfa, 0x8b62, 0x8a4e, - 0x9cca, 0x8a66, 0x9cfb, 0x9cfc, 0x9cfe, 0x8a53, 0x9ce5, 0x9d40, - 0x9d41, 0x9045, 0x8b73, 0x97ca, 0x9d42, 0x8a61, 0x8bae, 0x8ad2, - 0x8ba2, 0x9df2, 0x9d43, 0x9cdf, 0x9d44, 0x8eca, 0x904e, 0x8eb3, - 0x9ff5, 0x9d45, 0x904f, 0x9d47, 0x89ca, 0x9cb5, 0xfbfe, 0x905e, - 0x9063, 0x9057, 0x9066, 0x9bc0, 0xfce5, 0x9162, 0x9067, 0x8fa1, - 0x8fa2, 0x9d48, 0xfad3, 0x905d, 0x90b9, 0x906b, 0x9069, 0xfe57, - 0xfe55, 0x9073, 0x9bef, 0x9cf0, 0x9d4b, 0xfed9, 0xfeda, 0x91e0, - 0x91d8, 0x9646, 0x9360, 0xfa53, 0x9cd3, 0x9d4e, 0xfb40, 0x8de2, - 0x9442, 0x9056, 0x9865, 0xfa4a, 0x9d50, 0x9d52, 0x95af, 0x975a, - 0x9349, 0x9747, 0xa0f4, 0x9778, 0x8fcf, 0xfc60, 0xfc56, 0x91dc, - 0x9661, 0x92ec, 0x935d, 0x8ede, 0x96fe, 0xfd4f, 0x95de, 0x98b0, - 0xa040, 0x97bd, 0x977d, 0x97f5, 0x9bac, 0xfada, 0x92c2, 0x97b1, - 0x907b, 0x93fe, 0x947b, 0x9777, 0xfabe, 0xfd43, 0x90c6, 0x90a4, - 0x90a8, 0x94a9, 0x90a9, 0x95e0, 0x907d, 0x9265, 0xfdba, 0x93c4, - 0xfeed, 0x9dab, 0xa0e3, 0x9648, 0x9d53, 0x8aa9, 0x9bc5, 0x965d, - 0x975f, 0x965f, 0x966e, 0xfb5d, 0x9db1, 0xfea3, 0x9db2, 0x95ae, - 0xfca3, 0xa0a2, 0x9655, 0x9d54, 0x9341, 0x95ad, 0x91d5, 0x977a, - 0xfdfc, 0x8e47, 0x93fd, 0x90a5, 0x90ac, 0x95ac, 0x90ae, 0xfea5, - 0x9d56, 0x97e3, 0x95e2, 0x9466, 0x9647, 0x91b8, 0x9cec, 0x90ad, - 0x95e3, 0x8b4f, 0x8ae3, 0x8b4d, 0x95ea, 0x8b4e, 0x8bed, 0x91d9, - 0xa0a4, 0x95f5, 0x95f4, 0x9fb3, 0xfeaf, 0xfe72, 0x927a, 0xfeac, - 0x95f3, 0x9d58, 0x9372, 0x91c5, 0x9642, 0x90cd, 0x95fe, 0x9159, - 0x9c65, 0x97cc, 0x90ce, 0x9d59, 0xfcf5, 0xfefd, 0x9d5b, 0x9d5c, - 0x937e, 0x98ac, 0x9d5e, 0xfdd0, 0xfd60, 0x9ccf, 0x90dd, 0x90e0, - 0x90f3, 0x98b1, 0x90f0, 0x93bd, 0x95b7, 0x9f46, 0x8e4b, 0x9658, - 0x8a4c, 0x9d63, 0x9ecf, 0x9d65, 0x9d66, 0x965a, 0x9d64, 0x8a6c, - 0x8ad9, 0x9d67, 0x8a70, 0x8bf3, 0x9150, 0x9cc1, 0x9d68, 0x93a7, - 0x9674, 0xa0ef, 0x9151, 0x96c1, 0x9676, 0x9d69, 0xfca4, 0x9d6a, - 0x924e, 0x9d6b, 0x9bc1, 0x9d6c, 0x8a65, 0x915d, 0x9d6d, 0x915a, - 0x9cc0, 0x916a, 0x9d6e, 0x9ea6, 0x9dcd, 0x9d6f, 0x89bb, 0x9ef9, - 0x96b4, 0x9172, 0x9ec8, 0x8b55, 0x9d71, 0x9d72, 0x9ecc, 0x9174, - 0x9ed0, 0x905c, 0x8ed2, 0x91a8, 0x9177, 0x96bf, 0x96c0, 0x8fb1, - 0x96b7, 0x9178, 0x89be, 0x917c, 0xfb77, 0x9175, 0x91a3, 0x9176, - 0x96be, 0x9179, 0x96b6, 0x91a4, 0x91a6, 0x9d75, 0x9052, 0xa045, - 0x91a9, 0x98aa, 0x8baa, 0x9cdd, 0x9d77, 0x8940, 0x9eec, 0x93aa, - 0x9478, 0x9d7a, 0x8ac9, 0x8b4b, 0x9fec, 0x8ae2, 0x9e75, 0x9874, - 0x9ac8, 0xa047, 0x8bc3, 0xfc48, 0xfc77, 0x9c52, 0x8efd, 0x8fa8, - 0x957a, 0x8ff0, -}; - -static const Summary16 hkscs1999_uni2indx_page00[45] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0100 }, { 1, 0x0000 }, - { 1, 0x0703 }, { 6, 0x000c }, { 8, 0x3703 }, { 15, 0x170c }, - /* 0x0100 */ - { 21, 0x0003 }, { 23, 0x0c0c }, { 27, 0x0800 }, { 28, 0x0000 }, - { 28, 0x3800 }, { 31, 0x0008 }, { 32, 0x0800 }, { 33, 0x0000 }, - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x6000 }, { 35, 0x1557 }, { 43, 0x0000 }, { 43, 0x0000 }, - /* 0x0200 */ - { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, - { 43, 0x0000 }, { 43, 0x0813 }, { 47, 0x0402 }, { 49, 0x0020 }, - { 50, 0x0408 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, - { 52, 0x0040 }, -}; -static const Summary16 hkscs1999_uni2indx_page04[6] = { - /* 0x0400 */ - { 53, 0x0002 }, { 54, 0xffff }, { 70, 0xffff }, { 86, 0xffff }, - { 102, 0xffff }, { 118, 0x0002 }, -}; -static const Summary16 hkscs1999_uni2indx_page1e[13] = { - /* 0x1e00 */ - { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, - { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, - { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0xc000 }, - { 121, 0x0003 }, -}; -static const Summary16 hkscs1999_uni2indx_page21[15] = { - /* 0x2100 */ - { 123, 0x0000 }, { 123, 0x0040 }, { 124, 0x0002 }, { 125, 0x0000 }, - { 125, 0x0000 }, { 125, 0x0000 }, { 125, 0x0000 }, { 125, 0x03ff }, - { 135, 0x0000 }, { 135, 0x0000 }, { 135, 0x0000 }, { 135, 0x0300 }, - { 137, 0x0000 }, { 137, 0x0000 }, { 137, 0x0080 }, -}; -static const Summary16 hkscs1999_uni2indx_page23[40] = { - /* 0x2300 */ - { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, - { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, - { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, { 138, 0x0000 }, - { 138, 0x0000 }, { 138, 0x0c00 }, { 140, 0x0000 }, { 140, 0x0000 }, - /* 0x2400 */ - { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, - { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x03ff }, { 150, 0x3ff0 }, - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, - /* 0x2500 */ - { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, { 160, 0x0000 }, - { 160, 0x0000 }, { 160, 0xffff }, { 176, 0xffff }, { 192, 0x0001 }, -}; -static const Summary16 hkscs1999_uni2indx_page27[4] = { - /* 0x2700 */ - { 193, 0x0000 }, { 193, 0x0000 }, { 193, 0x0000 }, { 193, 0x2000 }, -}; -static const Summary16 hkscs1999_uni2indx_page2e[68] = { - /* 0x2e00 */ - { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, - { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, { 194, 0x0000 }, - { 194, 0x35d1 }, { 202, 0x3020 }, { 205, 0x54a0 }, { 210, 0x5040 }, - { 213, 0xb440 }, { 218, 0x40c0 }, { 221, 0x0008 }, { 222, 0x0000 }, - /* 0x2f00 */ - { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0000 }, { 222, 0x0008 }, - { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, - { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, - { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, { 223, 0x0000 }, - /* 0x3000 */ - { 223, 0x00e0 }, { 226, 0x0000 }, { 226, 0x0000 }, { 226, 0x0000 }, - { 226, 0xfffe }, { 241, 0xffff }, { 257, 0xffff }, { 273, 0xffff }, - { 289, 0xffff }, { 305, 0x780f }, { 313, 0xfffe }, { 328, 0xffff }, - { 344, 0xffff }, { 360, 0xffff }, { 376, 0xffff }, { 392, 0x707f }, - /* 0x3100 */ - { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, - { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, - { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, { 402, 0x0000 }, - { 402, 0xffff }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, - /* 0x3200 */ - { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0000 }, { 418, 0x0002 }, -}; -static const Summary16 hkscs1999_uni2indx_page34[1724] = { - /* 0x3400 */ - { 419, 0x0000 }, { 419, 0x0000 }, { 419, 0x0000 }, { 419, 0x0020 }, - { 420, 0x1001 }, { 422, 0x0000 }, { 422, 0x0010 }, { 423, 0x6408 }, - { 427, 0x0000 }, { 427, 0x0048 }, { 429, 0x8020 }, { 431, 0x1000 }, - { 432, 0x0102 }, { 434, 0x8000 }, { 435, 0x0010 }, { 436, 0x0800 }, - /* 0x3500 */ - { 437, 0x0040 }, { 438, 0x0000 }, { 438, 0x0000 }, { 438, 0x4000 }, - { 439, 0x0000 }, { 439, 0x000a }, { 441, 0x2002 }, { 443, 0x0185 }, - { 447, 0x0010 }, { 448, 0x0180 }, { 450, 0x2022 }, { 453, 0x8000 }, - { 454, 0x44a2 }, { 459, 0x2844 }, { 463, 0x0000 }, { 463, 0x480e }, - /* 0x3600 */ - { 468, 0x0200 }, { 469, 0x0500 }, { 471, 0x2008 }, { 473, 0x4220 }, - { 476, 0x4380 }, { 480, 0x8000 }, { 481, 0x0000 }, { 481, 0x0400 }, - { 482, 0x0002 }, { 483, 0x0400 }, { 484, 0x1420 }, { 487, 0x1223 }, - { 492, 0x01ba }, { 498, 0x2058 }, { 502, 0x0066 }, { 506, 0x0020 }, - /* 0x3700 */ - { 507, 0x250a }, { 512, 0x1000 }, { 513, 0x302c }, { 518, 0x040d }, - { 522, 0x0009 }, { 524, 0x0000 }, { 524, 0x8004 }, { 526, 0x0000 }, - { 526, 0x0000 }, { 526, 0x0080 }, { 527, 0x0001 }, { 528, 0x4200 }, - { 530, 0x0000 }, { 530, 0x0000 }, { 530, 0x0000 }, { 530, 0x0904 }, - /* 0x3800 */ - { 533, 0x8000 }, { 534, 0x0200 }, { 535, 0x2001 }, { 537, 0x0140 }, - { 539, 0x0000 }, { 539, 0x0000 }, { 539, 0x0008 }, { 540, 0x0000 }, - { 540, 0x0000 }, { 540, 0x0000 }, { 540, 0x0001 }, { 541, 0x0000 }, - { 541, 0x1008 }, { 543, 0x0002 }, { 544, 0x0000 }, { 544, 0x0400 }, - /* 0x3900 */ - { 545, 0x0100 }, { 546, 0x0010 }, { 547, 0x0080 }, { 548, 0x8004 }, - { 550, 0x2000 }, { 551, 0x0000 }, { 551, 0x0008 }, { 552, 0x0000 }, - { 552, 0x0601 }, { 555, 0x0a04 }, { 558, 0x0012 }, { 560, 0x0100 }, - { 561, 0x0000 }, { 561, 0x1000 }, { 562, 0x1024 }, { 565, 0x4900 }, - /* 0x3a00 */ - { 568, 0x004a }, { 571, 0x0180 }, { 573, 0x0600 }, { 575, 0x0010 }, - { 576, 0x0800 }, { 577, 0x5084 }, { 581, 0x00c0 }, { 583, 0x0000 }, - { 583, 0x0000 }, { 583, 0x0080 }, { 584, 0x0800 }, { 585, 0x2000 }, - { 586, 0x0000 }, { 586, 0x4000 }, { 587, 0x0001 }, { 588, 0x0805 }, - /* 0x3b00 */ - { 591, 0x4000 }, { 592, 0x0200 }, { 593, 0x0804 }, { 595, 0x0200 }, - { 596, 0x0004 }, { 597, 0x0100 }, { 598, 0x0001 }, { 599, 0x1806 }, - { 603, 0x0001 }, { 604, 0x0240 }, { 606, 0x0002 }, { 607, 0x5000 }, - { 609, 0x0014 }, { 611, 0x2080 }, { 613, 0x1000 }, { 614, 0x001c }, - /* 0x3c00 */ - { 617, 0x2000 }, { 618, 0x0122 }, { 621, 0x0000 }, { 621, 0x0000 }, - { 621, 0x0000 }, { 621, 0x0010 }, { 622, 0x0000 }, { 622, 0x0000 }, - { 622, 0x0000 }, { 622, 0x0000 }, { 622, 0x0000 }, { 622, 0x0000 }, - { 622, 0x2800 }, { 624, 0x1042 }, { 627, 0x8800 }, { 629, 0x0000 }, - /* 0x3d00 */ - { 629, 0x0000 }, { 629, 0x2008 }, { 631, 0x0000 }, { 631, 0x0804 }, - { 633, 0x5040 }, { 636, 0x8002 }, { 638, 0x8604 }, { 642, 0x2020 }, - { 644, 0x8420 }, { 647, 0x0002 }, { 648, 0x2020 }, { 650, 0x8010 }, - { 652, 0x30c0 }, { 656, 0x0808 }, { 658, 0x0980 }, { 661, 0x3088 }, - /* 0x3e00 */ - { 665, 0x0040 }, { 666, 0x0000 }, { 666, 0x0000 }, { 666, 0x0000 }, - { 666, 0x0109 }, { 669, 0x0020 }, { 670, 0x0000 }, { 670, 0x0010 }, - { 671, 0x0000 }, { 671, 0x0000 }, { 671, 0x2700 }, { 675, 0x8102 }, - { 678, 0x1484 }, { 682, 0x44c3 }, { 688, 0x0a86 }, { 693, 0x9419 }, - /* 0x3f00 */ - { 699, 0x4051 }, { 703, 0x0000 }, { 703, 0x0000 }, { 703, 0x0000 }, - { 703, 0x0000 }, { 703, 0x0308 }, { 706, 0x0008 }, { 707, 0x1000 }, - { 708, 0x0000 }, { 708, 0x0008 }, { 709, 0x0000 }, { 709, 0x0000 }, - { 709, 0x0001 }, { 710, 0x1080 }, { 712, 0x2020 }, { 714, 0x0600 }, - /* 0x4000 */ - { 716, 0x0010 }, { 717, 0x2000 }, { 718, 0x0000 }, { 718, 0x0200 }, - { 719, 0x0020 }, { 720, 0x0088 }, { 722, 0x8424 }, { 726, 0x0000 }, - { 726, 0x0000 }, { 726, 0x0000 }, { 726, 0x0100 }, { 727, 0x8800 }, - { 729, 0x0100 }, { 730, 0x8100 }, { 732, 0x0000 }, { 732, 0x0400 }, - /* 0x4100 */ - { 733, 0x4218 }, { 737, 0x0000 }, { 737, 0x0000 }, { 737, 0x0004 }, - { 738, 0x0000 }, { 738, 0x0000 }, { 738, 0x5080 }, { 741, 0x8000 }, - { 742, 0x0000 }, { 742, 0x0001 }, { 743, 0x0000 }, { 743, 0x0004 }, - { 744, 0x8410 }, { 747, 0x0800 }, { 748, 0x8000 }, { 749, 0x0200 }, - /* 0x4200 */ - { 750, 0x0000 }, { 750, 0x0002 }, { 751, 0x0000 }, { 751, 0x0000 }, - { 751, 0x0001 }, { 752, 0x0000 }, { 752, 0x0401 }, { 754, 0x0400 }, - { 755, 0x1000 }, { 756, 0x0010 }, { 757, 0x0000 }, { 757, 0x1220 }, - { 760, 0x0000 }, { 760, 0x0000 }, { 760, 0x0000 }, { 760, 0x1810 }, - /* 0x4300 */ - { 763, 0x0000 }, { 763, 0x0000 }, { 763, 0x0800 }, { 764, 0x0000 }, - { 764, 0x0000 }, { 764, 0x0000 }, { 764, 0x4000 }, { 765, 0x0000 }, - { 765, 0x0000 }, { 765, 0x0080 }, { 766, 0x0000 }, { 766, 0x0400 }, - { 767, 0x0002 }, { 768, 0x8200 }, { 770, 0x2000 }, { 771, 0x0004 }, - /* 0x4400 */ - { 772, 0x0006 }, { 774, 0x0008 }, { 775, 0x2020 }, { 777, 0x0000 }, - { 777, 0x0000 }, { 777, 0x0000 }, { 777, 0x0000 }, { 777, 0x0400 }, - { 778, 0x8000 }, { 779, 0x8002 }, { 781, 0x0005 }, { 783, 0x0081 }, - { 785, 0x4021 }, { 788, 0xa000 }, { 790, 0x1e10 }, { 795, 0x0010 }, - /* 0x4500 */ - { 796, 0x0a18 }, { 800, 0x2040 }, { 802, 0x4080 }, { 804, 0xa808 }, - { 808, 0x0008 }, { 809, 0x1026 }, { 813, 0x0404 }, { 815, 0x0080 }, - { 816, 0x0020 }, { 817, 0x0000 }, { 817, 0x0000 }, { 817, 0x0000 }, - { 817, 0x0000 }, { 817, 0x0000 }, { 817, 0x0200 }, { 818, 0x0000 }, - /* 0x4600 */ - { 818, 0x8040 }, { 820, 0x00a0 }, { 822, 0x0000 }, { 822, 0x0000 }, - { 822, 0x0000 }, { 822, 0x0800 }, { 823, 0x0000 }, { 823, 0x0400 }, - { 824, 0x0001 }, { 825, 0x0000 }, { 825, 0x0000 }, { 825, 0x0000 }, - { 825, 0x8000 }, { 826, 0x0001 }, { 827, 0x0000 }, { 827, 0x0020 }, - /* 0x4700 */ - { 828, 0x0000 }, { 828, 0x0108 }, { 830, 0x0000 }, { 830, 0x0000 }, - { 830, 0x4000 }, { 831, 0x0000 }, { 831, 0x0000 }, { 831, 0x1000 }, - { 832, 0x0000 }, { 832, 0x0100 }, { 833, 0x0040 }, { 834, 0x0000 }, - { 834, 0x0000 }, { 834, 0x0020 }, { 835, 0x2000 }, { 836, 0x0010 }, - /* 0x4800 */ - { 837, 0x0801 }, { 839, 0x0000 }, { 839, 0x0000 }, { 839, 0x0080 }, - { 840, 0x0000 }, { 840, 0x2000 }, { 841, 0x0000 }, { 841, 0x0002 }, - { 842, 0x0000 }, { 842, 0x0800 }, { 843, 0x6000 }, { 845, 0x0000 }, - { 845, 0x0000 }, { 845, 0x2001 }, { 847, 0x2000 }, { 848, 0x0408 }, - /* 0x4900 */ - { 850, 0x0040 }, { 851, 0x4002 }, { 853, 0x2420 }, { 856, 0x5020 }, - { 859, 0x0020 }, { 860, 0x000a }, { 862, 0x0420 }, { 864, 0x0004 }, - { 865, 0x0200 }, { 866, 0x0000 }, { 866, 0x0082 }, { 868, 0x0000 }, - { 868, 0x0000 }, { 868, 0x8000 }, { 869, 0x00a0 }, { 871, 0x0000 }, - /* 0x4a00 */ - { 871, 0x8000 }, { 872, 0x2000 }, { 873, 0x0010 }, { 874, 0x0020 }, - { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, - { 875, 0x0000 }, { 875, 0x0040 }, { 876, 0x0000 }, { 876, 0x0110 }, - { 878, 0x0000 }, { 878, 0x0002 }, { 879, 0x0010 }, { 880, 0x8000 }, - /* 0x4b00 */ - { 881, 0x0000 }, { 881, 0x0200 }, { 882, 0x1000 }, { 883, 0x0080 }, - { 884, 0x0000 }, { 884, 0x0000 }, { 884, 0x8000 }, { 885, 0x4805 }, - { 889, 0x4000 }, { 890, 0x20c9 }, { 895, 0x0000 }, { 895, 0x6000 }, - { 897, 0x0001 }, { 898, 0x0000 }, { 898, 0x0000 }, { 898, 0x0000 }, - /* 0x4c00 */ - { 898, 0x4090 }, { 901, 0x0000 }, { 901, 0x0000 }, { 901, 0x4800 }, - { 903, 0x0000 }, { 903, 0x0800 }, { 904, 0x2000 }, { 905, 0x2000 }, - { 906, 0x0000 }, { 906, 0x0000 }, { 906, 0x4010 }, { 908, 0x0081 }, - { 910, 0x2000 }, { 911, 0x0000 }, { 911, 0x2002 }, { 913, 0x0000 }, - /* 0x4d00 */ - { 913, 0x0200 }, { 914, 0x0001 }, { 915, 0x0000 }, { 915, 0x0010 }, - { 916, 0x0000 }, { 916, 0x0000 }, { 916, 0x0000 }, { 916, 0x0000 }, - { 916, 0x0000 }, { 916, 0x1002 }, { 918, 0x0000 }, { 918, 0x0000 }, - { 918, 0x0000 }, { 918, 0x0000 }, { 918, 0x0000 }, { 918, 0x0000 }, - /* 0x4e00 */ - { 918, 0x0010 }, { 919, 0x1400 }, { 921, 0x1512 }, { 926, 0xa0c0 }, - { 930, 0x0200 }, { 931, 0x0c00 }, { 933, 0x0400 }, { 934, 0x0100 }, - { 935, 0x02a3 }, { 940, 0x0500 }, { 942, 0x0001 }, { 943, 0x9880 }, - { 947, 0x4000 }, { 948, 0x0000 }, { 948, 0x4c00 }, { 951, 0x0100 }, - /* 0x4f00 */ - { 952, 0x0008 }, { 953, 0x0400 }, { 954, 0x0300 }, { 956, 0x0284 }, - { 959, 0x0824 }, { 962, 0x0000 }, { 962, 0x0000 }, { 962, 0x0004 }, - { 963, 0x0400 }, { 964, 0x0000 }, { 964, 0x0904 }, { 967, 0x2001 }, - { 969, 0x1100 }, { 971, 0x0000 }, { 971, 0x0030 }, { 973, 0x2204 }, - /* 0x5000 */ - { 976, 0x0108 }, { 978, 0x0000 }, { 978, 0x4000 }, { 979, 0x0010 }, - { 980, 0x0000 }, { 980, 0x0140 }, { 982, 0x1040 }, { 984, 0x0000 }, - { 984, 0x0102 }, { 986, 0x0001 }, { 987, 0x0040 }, { 988, 0x0000 }, - { 988, 0x2000 }, { 989, 0x8201 }, { 992, 0x0002 }, { 993, 0x1010 }, - /* 0x5100 */ - { 995, 0x6002 }, { 998, 0x0000 }, { 998, 0x0800 }, { 999, 0x0000 }, - { 999, 0x0000 }, { 999, 0x0040 }, { 1000, 0x0401 }, { 1002, 0x0210 }, - { 1004, 0x0144 }, { 1007, 0x1440 }, { 1010, 0x0980 }, { 1013, 0x013c }, - { 1018, 0x8288 }, { 1022, 0x880e }, { 1027, 0x2014 }, { 1030, 0x5010 }, - /* 0x5200 */ - { 1033, 0x0824 }, { 1036, 0x8000 }, { 1037, 0x00c1 }, { 1040, 0x1010 }, - { 1042, 0x0000 }, { 1042, 0x0280 }, { 1044, 0x0101 }, { 1046, 0x0208 }, - { 1048, 0x8000 }, { 1049, 0x0411 }, { 1052, 0x0112 }, { 1055, 0x0220 }, - { 1057, 0x1020 }, { 1059, 0x0003 }, { 1061, 0x0003 }, { 1063, 0x0200 }, - /* 0x5300 */ - { 1064, 0x0002 }, { 1065, 0x0000 }, { 1065, 0x1080 }, { 1067, 0x090c }, - { 1071, 0x4004 }, { 1073, 0xa000 }, { 1075, 0x2290 }, { 1079, 0x6010 }, - { 1082, 0x0000 }, { 1082, 0x0008 }, { 1083, 0x4f45 }, { 1091, 0x0041 }, - { 1093, 0x1026 }, { 1097, 0x0707 }, { 1103, 0x0001 }, { 1104, 0x40c0 }, - /* 0x5400 */ - { 1107, 0x0000 }, { 1107, 0x0458 }, { 1111, 0x800a }, { 1114, 0x0004 }, - { 1115, 0x2800 }, { 1117, 0x0000 }, { 1117, 0x2600 }, { 1120, 0x0000 }, - { 1120, 0x8020 }, { 1122, 0x5098 }, { 1127, 0x0018 }, { 1129, 0x0214 }, - { 1132, 0x3800 }, { 1135, 0x0401 }, { 1137, 0x8008 }, { 1139, 0x0000 }, - /* 0x5500 */ - { 1139, 0x2004 }, { 1141, 0x4108 }, { 1144, 0x0928 }, { 1148, 0x8000 }, - { 1149, 0x0280 }, { 1151, 0x2008 }, { 1153, 0x0a00 }, { 1155, 0x020e }, - { 1159, 0x0040 }, { 1160, 0x0001 }, { 1161, 0x0200 }, { 1162, 0x1611 }, - { 1167, 0x0002 }, { 1168, 0x4180 }, { 1171, 0x1400 }, { 1173, 0x0823 }, - /* 0x5600 */ - { 1177, 0x0020 }, { 1178, 0x4002 }, { 1180, 0x202f }, { 1186, 0x0080 }, - { 1187, 0xa008 }, { 1190, 0x2015 }, { 1194, 0x0002 }, { 1195, 0x1c00 }, - { 1198, 0x0e00 }, { 1201, 0xc004 }, { 1204, 0x8012 }, { 1207, 0x8202 }, - { 1210, 0x0000 }, { 1210, 0x0040 }, { 1211, 0xa004 }, { 1214, 0x2002 }, - /* 0x5700 */ - { 1216, 0x0001 }, { 1217, 0x2020 }, { 1219, 0x0000 }, { 1219, 0x8004 }, - { 1221, 0x004c }, { 1224, 0x8890 }, { 1228, 0x0080 }, { 1229, 0xc400 }, - { 1232, 0x2500 }, { 1235, 0x1001 }, { 1237, 0x0482 }, { 1240, 0x4810 }, - { 1243, 0x0110 }, { 1245, 0x6080 }, { 1248, 0x8040 }, { 1250, 0x4000 }, - /* 0x5800 */ - { 1251, 0x0008 }, { 1252, 0x0004 }, { 1253, 0x0044 }, { 1255, 0x0400 }, - { 1256, 0x0091 }, { 1259, 0x9000 }, { 1261, 0x1200 }, { 1263, 0x000c }, - { 1265, 0x0000 }, { 1265, 0x0600 }, { 1267, 0x0480 }, { 1269, 0x0861 }, - { 1273, 0x0800 }, { 1274, 0x1000 }, { 1275, 0x0001 }, { 1276, 0x080d }, - /* 0x5900 */ - { 1280, 0x04b4 }, { 1285, 0x8002 }, { 1287, 0x0000 }, { 1287, 0x0014 }, - { 1289, 0x0000 }, { 1289, 0x0000 }, { 1289, 0x0020 }, { 1290, 0x0020 }, - { 1291, 0x0200 }, { 1292, 0x8410 }, { 1295, 0x1000 }, { 1296, 0x0181 }, - { 1299, 0x0210 }, { 1301, 0x0200 }, { 1302, 0x8800 }, { 1304, 0x0301 }, - /* 0x5a00 */ - { 1307, 0x2804 }, { 1310, 0x0004 }, { 1311, 0x1c92 }, { 1317, 0x2000 }, - { 1318, 0x0020 }, { 1319, 0x0210 }, { 1321, 0x490a }, { 1326, 0x4202 }, - { 1329, 0x0146 }, { 1333, 0x0242 }, { 1336, 0x0803 }, { 1339, 0x0000 }, - { 1339, 0xc008 }, { 1342, 0x0008 }, { 1343, 0x0010 }, { 1344, 0x4405 }, - /* 0x5b00 */ - { 1348, 0x2000 }, { 1349, 0x8002 }, { 1351, 0x0800 }, { 1352, 0x0000 }, - { 1352, 0x8452 }, { 1357, 0x0000 }, { 1357, 0x2140 }, { 1360, 0x1050 }, - { 1363, 0x0005 }, { 1365, 0xe001 }, { 1369, 0x0400 }, { 1370, 0x0000 }, - { 1370, 0x0008 }, { 1371, 0x00a0 }, { 1373, 0x0000 }, { 1373, 0x8008 }, - /* 0x5c00 */ - { 1375, 0x0020 }, { 1376, 0x5018 }, { 1380, 0x0009 }, { 1382, 0x0000 }, - { 1382, 0x0600 }, { 1384, 0x4008 }, { 1386, 0x0000 }, { 1386, 0x0000 }, - { 1386, 0x0020 }, { 1387, 0x5600 }, { 1391, 0x0000 }, { 1391, 0x0400 }, - { 1392, 0x0006 }, { 1394, 0x0002 }, { 1395, 0x8220 }, { 1398, 0x0000 }, - /* 0x5d00 */ - { 1398, 0x0000 }, { 1398, 0x0121 }, { 1401, 0x9000 }, { 1403, 0x4000 }, - { 1404, 0x0140 }, { 1406, 0x08c0 }, { 1409, 0x0000 }, { 1409, 0x0011 }, - { 1411, 0x4820 }, { 1414, 0x0000 }, { 1414, 0x0810 }, { 1416, 0x0240 }, - { 1418, 0x0002 }, { 1419, 0x0880 }, { 1421, 0x0000 }, { 1421, 0x0020 }, - /* 0x5e00 */ - { 1422, 0x0a00 }, { 1424, 0x0004 }, { 1425, 0x4000 }, { 1426, 0x0000 }, - { 1426, 0x0104 }, { 1428, 0x4000 }, { 1429, 0x0000 }, { 1429, 0x8400 }, - { 1431, 0x0048 }, { 1433, 0x0000 }, { 1433, 0x0000 }, { 1433, 0x2000 }, - { 1434, 0x2000 }, { 1435, 0x0001 }, { 1436, 0x0000 }, { 1436, 0x1b10 }, - /* 0x5f00 */ - { 1441, 0x7000 }, { 1444, 0x0000 }, { 1444, 0x0020 }, { 1445, 0x0400 }, - { 1446, 0x2000 }, { 1447, 0x1003 }, { 1450, 0x000a }, { 1452, 0x0804 }, - { 1454, 0x0008 }, { 1455, 0x0000 }, { 1455, 0x0090 }, { 1457, 0x0402 }, - { 1459, 0x0010 }, { 1460, 0x8800 }, { 1462, 0x0000 }, { 1462, 0x0000 }, - /* 0x6000 */ - { 1462, 0x0000 }, { 1462, 0x0000 }, { 1462, 0x0008 }, { 1463, 0x0802 }, - { 1465, 0x0400 }, { 1466, 0x0004 }, { 1467, 0x0000 }, { 1467, 0x40a0 }, - { 1470, 0x0000 }, { 1470, 0x4000 }, { 1471, 0x0090 }, { 1473, 0x0008 }, - { 1474, 0x0000 }, { 1474, 0x4080 }, { 1476, 0x0388 }, { 1480, 0x2000 }, - /* 0x6100 */ - { 1481, 0x1080 }, { 1483, 0x0200 }, { 1484, 0x0000 }, { 1484, 0x2001 }, - { 1486, 0x0004 }, { 1487, 0x1201 }, { 1490, 0x8011 }, { 1493, 0x2000 }, - { 1494, 0x0082 }, { 1496, 0x1320 }, { 1500, 0x0000 }, { 1500, 0x0280 }, - { 1502, 0x8001 }, { 1504, 0x0409 }, { 1507, 0x0004 }, { 1508, 0x0000 }, - /* 0x6200 */ - { 1508, 0x0000 }, { 1508, 0x0000 }, { 1508, 0x1000 }, { 1509, 0x0280 }, - { 1511, 0x1000 }, { 1512, 0x0000 }, { 1512, 0x0100 }, { 1513, 0x0000 }, - { 1513, 0x0024 }, { 1515, 0x2001 }, { 1517, 0x0050 }, { 1519, 0x0000 }, - { 1519, 0x0028 }, { 1521, 0x8020 }, { 1523, 0x0020 }, { 1524, 0x0000 }, - /* 0x6300 */ - { 1524, 0x0000 }, { 1524, 0x0100 }, { 1525, 0x4000 }, { 1526, 0x00a2 }, - { 1529, 0x0000 }, { 1529, 0x0000 }, { 1529, 0x1010 }, { 1531, 0x8200 }, - { 1533, 0x0800 }, { 1534, 0x0000 }, { 1534, 0x0000 }, { 1534, 0x0200 }, - { 1535, 0x0002 }, { 1536, 0x4002 }, { 1538, 0x0044 }, { 1540, 0x5900 }, - /* 0x6400 */ - { 1544, 0x0080 }, { 1545, 0x0000 }, { 1545, 0x0000 }, { 1545, 0x0d04 }, - { 1549, 0x0000 }, { 1549, 0x0400 }, { 1550, 0x0000 }, { 1550, 0x1002 }, - { 1552, 0x2000 }, { 1553, 0x0002 }, { 1554, 0x8000 }, { 1555, 0x0050 }, - { 1557, 0x0001 }, { 1558, 0x2008 }, { 1560, 0x04a2 }, { 1564, 0x0000 }, - /* 0x6500 */ - { 1564, 0x0400 }, { 1565, 0xc002 }, { 1568, 0x0000 }, { 1568, 0x0031 }, - { 1571, 0x2000 }, { 1572, 0x8000 }, { 1573, 0x2800 }, { 1575, 0x0000 }, - { 1575, 0x0360 }, { 1579, 0x0000 }, { 1579, 0x0000 }, { 1579, 0x4020 }, - { 1581, 0x0000 }, { 1581, 0x0012 }, { 1583, 0x0009 }, { 1585, 0x8000 }, - /* 0x6600 */ - { 1586, 0x0000 }, { 1586, 0x4100 }, { 1588, 0x0008 }, { 1589, 0x0001 }, - { 1590, 0x0910 }, { 1593, 0x0088 }, { 1595, 0x0888 }, { 1598, 0x2008 }, - { 1600, 0x4020 }, { 1602, 0x0404 }, { 1604, 0x2010 }, { 1606, 0x8048 }, - { 1609, 0x6000 }, { 1611, 0x0000 }, { 1611, 0x0000 }, { 1611, 0x0002 }, - /* 0x6700 */ - { 1612, 0x5004 }, { 1615, 0x4040 }, { 1617, 0x0020 }, { 1618, 0x0040 }, - { 1619, 0x0010 }, { 1620, 0x0000 }, { 1620, 0x0086 }, { 1623, 0x0000 }, - { 1623, 0x8000 }, { 1624, 0x0000 }, { 1624, 0x1011 }, { 1627, 0x8002 }, - { 1629, 0x0000 }, { 1629, 0x00c0 }, { 1631, 0x0000 }, { 1631, 0x4200 }, - /* 0x6800 */ - { 1633, 0x201f }, { 1639, 0x4801 }, { 1642, 0x0004 }, { 1643, 0x40c0 }, - { 1646, 0x0480 }, { 1648, 0x2060 }, { 1651, 0x0020 }, { 1652, 0x0000 }, - { 1652, 0x0110 }, { 1654, 0x0100 }, { 1655, 0x0040 }, { 1656, 0x2240 }, - { 1659, 0x0428 }, { 1662, 0x0000 }, { 1662, 0x0000 }, { 1662, 0x0000 }, - /* 0x6900 */ - { 1662, 0x020f }, { 1667, 0x0d00 }, { 1670, 0x1000 }, { 1671, 0x4040 }, - { 1673, 0x0048 }, { 1675, 0x0020 }, { 1676, 0x0092 }, { 1679, 0x000c }, - { 1681, 0x0421 }, { 1684, 0x8100 }, { 1686, 0x0004 }, { 1687, 0x0004 }, - { 1688, 0x0001 }, { 1689, 0x0062 }, { 1692, 0x0202 }, { 1694, 0x0600 }, - /* 0x6a00 */ - { 1696, 0x1808 }, { 1699, 0x1400 }, { 1701, 0x3800 }, { 1704, 0x0008 }, - { 1705, 0x1020 }, { 1707, 0x008c }, { 1710, 0x0020 }, { 1711, 0x0412 }, - { 1714, 0x8404 }, { 1717, 0x2200 }, { 1719, 0x0880 }, { 1721, 0x4026 }, - { 1725, 0x0700 }, { 1728, 0x0110 }, { 1730, 0x0000 }, { 1730, 0x0040 }, - /* 0x6b00 */ - { 1731, 0x0020 }, { 1732, 0x2000 }, { 1733, 0x0000 }, { 1733, 0x0020 }, - { 1734, 0x0000 }, { 1734, 0x0084 }, { 1736, 0x8000 }, { 1737, 0x0410 }, - { 1739, 0x0002 }, { 1740, 0x0000 }, { 1740, 0x0000 }, { 1740, 0x0000 }, - { 1740, 0x0002 }, { 1741, 0x1000 }, { 1742, 0x0402 }, { 1744, 0x0400 }, - /* 0x6c00 */ - { 1745, 0x0000 }, { 1745, 0x1000 }, { 1746, 0x0000 }, { 1746, 0x26a2 }, - { 1752, 0x0200 }, { 1753, 0x0500 }, { 1755, 0x4000 }, { 1756, 0x8220 }, - { 1759, 0x0000 }, { 1759, 0x8000 }, { 1760, 0x8404 }, { 1763, 0x0004 }, - { 1764, 0x4800 }, { 1766, 0x8000 }, { 1767, 0x0400 }, { 1768, 0x0000 }, - /* 0x6d00 */ - { 1768, 0x0064 }, { 1771, 0x0000 }, { 1771, 0x0050 }, { 1773, 0x0000 }, - { 1773, 0x4000 }, { 1774, 0x1880 }, { 1777, 0x0000 }, { 1777, 0x0006 }, - { 1779, 0x8002 }, { 1781, 0x0040 }, { 1782, 0x0030 }, { 1784, 0x0202 }, - { 1786, 0x0000 }, { 1786, 0x0000 }, { 1786, 0x0000 }, { 1786, 0x0000 }, - /* 0x6e00 */ - { 1786, 0x8414 }, { 1790, 0x0120 }, { 1792, 0x0600 }, { 1794, 0x0000 }, - { 1794, 0x8000 }, { 1795, 0x0201 }, { 1797, 0x0000 }, { 1797, 0x1040 }, - { 1799, 0x0840 }, { 1801, 0x0400 }, { 1802, 0x0000 }, { 1802, 0x0920 }, - { 1805, 0x0000 }, { 1805, 0x2e00 }, { 1809, 0x0304 }, { 1812, 0x0400 }, - /* 0x6f00 */ - { 1813, 0x1810 }, { 1816, 0x00c0 }, { 1818, 0x0010 }, { 1819, 0x2010 }, - { 1821, 0x0010 }, { 1822, 0x1040 }, { 1824, 0x0000 }, { 1824, 0x0210 }, - { 1826, 0x0402 }, { 1828, 0xa000 }, { 1830, 0x0000 }, { 1830, 0x4820 }, - { 1833, 0x0000 }, { 1833, 0x0608 }, { 1836, 0x0000 }, { 1836, 0x0140 }, - /* 0x7000 */ - { 1838, 0x0008 }, { 1839, 0x4000 }, { 1840, 0x1000 }, { 1841, 0x0000 }, - { 1841, 0x0800 }, { 1842, 0x1011 }, { 1845, 0x9080 }, { 1848, 0xc220 }, - { 1852, 0x8a02 }, { 1856, 0x0000 }, { 1856, 0x00e9 }, { 1861, 0x3a00 }, - { 1865, 0x1011 }, { 1868, 0x8061 }, { 1872, 0x0000 }, { 1872, 0x4022 }, - /* 0x7100 */ - { 1875, 0x0020 }, { 1876, 0x2000 }, { 1877, 0x1a00 }, { 1880, 0x4838 }, - { 1885, 0x8421 }, { 1889, 0x0002 }, { 1890, 0x0800 }, { 1891, 0x54ea }, - { 1899, 0x5100 }, { 1902, 0x0140 }, { 1904, 0x200c }, { 1907, 0x0490 }, - { 1910, 0x0000 }, { 1910, 0x2002 }, { 1912, 0x0800 }, { 1913, 0x0060 }, - /* 0x7200 */ - { 1915, 0xc200 }, { 1918, 0x00e0 }, { 1921, 0x4810 }, { 1924, 0x0000 }, - { 1924, 0x0001 }, { 1925, 0x10a1 }, { 1929, 0x0040 }, { 1930, 0x0000 }, - { 1930, 0x8084 }, { 1933, 0x8010 }, { 1935, 0x2000 }, { 1936, 0x0004 }, - { 1937, 0x2000 }, { 1938, 0x0000 }, { 1938, 0x0004 }, { 1939, 0x0000 }, - /* 0x7300 */ - { 1939, 0x0014 }, { 1941, 0x0001 }, { 1942, 0x5d00 }, { 1947, 0x0300 }, - { 1949, 0x8102 }, { 1952, 0x0000 }, { 1952, 0x0000 }, { 1952, 0x0012 }, - { 1954, 0x8000 }, { 1955, 0x5100 }, { 1958, 0x0480 }, { 1960, 0x0000 }, - { 1960, 0xc200 }, { 1963, 0x0021 }, { 1965, 0x8056 }, { 1970, 0x0a88 }, - /* 0x7400 */ - { 1974, 0x0000 }, { 1974, 0xd2b6 }, { 1983, 0x0000 }, { 1983, 0x1380 }, - { 1987, 0x03a8 }, { 1992, 0x2048 }, { 1995, 0x1921 }, { 2000, 0x0450 }, - { 2003, 0x3004 }, { 2006, 0x0a00 }, { 2008, 0x0010 }, { 2009, 0x0010 }, - { 2010, 0x1100 }, { 2012, 0x0009 }, { 2014, 0x0080 }, { 2015, 0x0107 }, - /* 0x7500 */ - { 2019, 0x4020 }, { 2021, 0x4200 }, { 2023, 0x0000 }, { 2023, 0x0830 }, - { 2026, 0x2444 }, { 2030, 0x002a }, { 2033, 0x6081 }, { 2037, 0x0404 }, - { 2039, 0x6008 }, { 2042, 0x4004 }, { 2044, 0x0000 }, { 2044, 0x0012 }, - { 2046, 0x0108 }, { 2048, 0x1000 }, { 2049, 0x0000 }, { 2049, 0x0000 }, - /* 0x7600 */ - { 2049, 0x0084 }, { 2051, 0x0000 }, { 2051, 0x1000 }, { 2052, 0x0800 }, - { 2053, 0xe001 }, { 2057, 0x0012 }, { 2059, 0x80c0 }, { 2062, 0x0458 }, - { 2066, 0x0000 }, { 2066, 0x0001 }, { 2067, 0x0022 }, { 2069, 0x0080 }, - { 2070, 0x1000 }, { 2071, 0x0040 }, { 2072, 0x0000 }, { 2072, 0x0000 }, - /* 0x7700 */ - { 2072, 0xd000 }, { 2075, 0x4000 }, { 2076, 0x0850 }, { 2079, 0x0000 }, - { 2079, 0x0009 }, { 2081, 0x0100 }, { 2082, 0x0000 }, { 2082, 0x0d84 }, - { 2087, 0x0000 }, { 2087, 0x0108 }, { 2089, 0x8000 }, { 2090, 0x4200 }, - { 2092, 0x0828 }, { 2095, 0x0000 }, { 2095, 0x0040 }, { 2096, 0x4010 }, - /* 0x7800 */ - { 2098, 0x0100 }, { 2099, 0x5100 }, { 2102, 0x0000 }, { 2102, 0x3200 }, - { 2105, 0x0894 }, { 2109, 0x001a }, { 2112, 0x0040 }, { 2113, 0x0400 }, - { 2114, 0x2102 }, { 2117, 0x0000 }, { 2117, 0x8000 }, { 2118, 0x0342 }, - { 2122, 0x0080 }, { 2123, 0x018c }, { 2127, 0x4000 }, { 2128, 0x0023 }, - /* 0x7900 */ - { 2131, 0x0040 }, { 2132, 0x0000 }, { 2132, 0x4000 }, { 2133, 0x185c }, - { 2139, 0x0000 }, { 2139, 0x0300 }, { 2141, 0x0004 }, { 2142, 0x4002 }, - { 2144, 0x00c9 }, { 2148, 0xa202 }, { 2152, 0x0220 }, { 2154, 0x0000 }, - { 2154, 0x1050 }, { 2157, 0x0010 }, { 2158, 0x0004 }, { 2159, 0x0012 }, - /* 0x7a00 */ - { 2161, 0x0040 }, { 2162, 0x0000 }, { 2162, 0x2000 }, { 2163, 0x4400 }, - { 2165, 0x0228 }, { 2168, 0x0000 }, { 2168, 0x0020 }, { 2169, 0x2000 }, - { 2170, 0x0008 }, { 2171, 0x0002 }, { 2172, 0x0000 }, { 2172, 0x1801 }, - { 2175, 0x830c }, { 2180, 0x3c08 }, { 2185, 0x0684 }, { 2189, 0x4000 }, - /* 0x7b00 */ - { 2190, 0x1800 }, { 2192, 0x8010 }, { 2194, 0x0280 }, { 2196, 0x0200 }, - { 2197, 0x000c }, { 2199, 0x0020 }, { 2200, 0x9004 }, { 2203, 0x0800 }, - { 2204, 0x0000 }, { 2204, 0x0004 }, { 2205, 0x000c }, { 2207, 0x0004 }, - { 2208, 0x8000 }, { 2209, 0x0001 }, { 2210, 0x0000 }, { 2210, 0x1400 }, - /* 0x7c00 */ - { 2212, 0x0000 }, { 2212, 0x0824 }, { 2215, 0x0000 }, { 2215, 0x0020 }, - { 2216, 0x0014 }, { 2218, 0x2042 }, { 2221, 0x2000 }, { 2222, 0x5811 }, - { 2227, 0x4048 }, { 2230, 0x1000 }, { 2231, 0x50c0 }, { 2235, 0x0100 }, - { 2236, 0x2284 }, { 2240, 0x0408 }, { 2242, 0x2040 }, { 2244, 0x1228 }, - /* 0x7d00 */ - { 2248, 0x0000 }, { 2248, 0x0000 }, { 2248, 0x0020 }, { 2249, 0x0000 }, - { 2249, 0x2000 }, { 2250, 0x2400 }, { 2252, 0x0000 }, { 2252, 0x0000 }, - { 2252, 0x0200 }, { 2253, 0x0080 }, { 2254, 0x0910 }, { 2257, 0x0008 }, - { 2258, 0xa000 }, { 2260, 0x1019 }, { 2264, 0x0030 }, { 2266, 0x6020 }, - /* 0x7e00 */ - { 2269, 0x0080 }, { 2270, 0x0000 }, { 2270, 0x0080 }, { 2271, 0x0000 }, - { 2271, 0x0000 }, { 2271, 0x0000 }, { 2271, 0x40a0 }, { 2274, 0x8000 }, - { 2275, 0x4000 }, { 2276, 0x8004 }, { 2278, 0x1010 }, { 2280, 0x0400 }, - { 2281, 0x8080 }, { 2283, 0x8000 }, { 2284, 0x0000 }, { 2284, 0x0000 }, - /* 0x7f00 */ - { 2284, 0x0040 }, { 2285, 0x0000 }, { 2285, 0x0000 }, { 2285, 0x0080 }, - { 2286, 0x4283 }, { 2291, 0x000c }, { 2293, 0x0000 }, { 2293, 0x0102 }, - { 2295, 0x8000 }, { 2296, 0x0088 }, { 2298, 0x4008 }, { 2300, 0x0010 }, - { 2301, 0x0000 }, { 2301, 0x2000 }, { 2302, 0x0080 }, { 2303, 0x0400 }, - /* 0x8000 */ - { 2304, 0x0104 }, { 2306, 0x2000 }, { 2307, 0xc021 }, { 2311, 0x1802 }, - { 2314, 0x0000 }, { 2314, 0x0810 }, { 2316, 0x004e }, { 2320, 0x0000 }, - { 2320, 0x0001 }, { 2321, 0x8000 }, { 2322, 0x0080 }, { 2323, 0x30c0 }, - { 2327, 0x0040 }, { 2328, 0x0000 }, { 2328, 0x1200 }, { 2330, 0x0040 }, - /* 0x8100 */ - { 2331, 0x5288 }, { 2336, 0x0494 }, { 2340, 0x0400 }, { 2341, 0x0094 }, - { 2344, 0x0104 }, { 2346, 0x0640 }, { 2349, 0x2000 }, { 2350, 0x1000 }, - { 2351, 0x0010 }, { 2352, 0x0008 }, { 2353, 0x0420 }, { 2355, 0x0040 }, - { 2356, 0x0102 }, { 2358, 0x0000 }, { 2358, 0x8010 }, { 2360, 0x0040 }, - /* 0x8200 */ - { 2361, 0x0000 }, { 2361, 0x0500 }, { 2363, 0x2240 }, { 2366, 0x4000 }, - { 2367, 0x0000 }, { 2367, 0x0010 }, { 2368, 0x0024 }, { 2370, 0x0e40 }, - { 2374, 0x0080 }, { 2375, 0x0000 }, { 2375, 0x0440 }, { 2377, 0x0000 }, - { 2377, 0x8410 }, { 2380, 0x0101 }, { 2382, 0x4004 }, { 2384, 0xb080 }, - /* 0x8300 */ - { 2388, 0x0800 }, { 2389, 0x2500 }, { 2392, 0x0000 }, { 2392, 0x2000 }, - { 2393, 0x0000 }, { 2393, 0x0080 }, { 2394, 0x804c }, { 2398, 0x0000 }, - { 2398, 0x0020 }, { 2399, 0x1002 }, { 2401, 0x1000 }, { 2402, 0x4200 }, - { 2404, 0x2000 }, { 2405, 0x0008 }, { 2406, 0x2000 }, { 2407, 0x0000 }, - /* 0x8400 */ - { 2407, 0x0020 }, { 2408, 0x1150 }, { 2412, 0x4053 }, { 2417, 0x4000 }, - { 2418, 0x0500 }, { 2420, 0x1128 }, { 2424, 0x0014 }, { 2426, 0x8006 }, - { 2429, 0x0101 }, { 2431, 0x004c }, { 2434, 0x2008 }, { 2436, 0x6000 }, - { 2438, 0x0000 }, { 2438, 0x4400 }, { 2440, 0x0036 }, { 2444, 0x0100 }, - /* 0x8500 */ - { 2445, 0x0028 }, { 2447, 0x0001 }, { 2448, 0x0000 }, { 2448, 0x0118 }, - { 2451, 0x1804 }, { 2454, 0x0404 }, { 2456, 0x8000 }, { 2457, 0x0009 }, - { 2459, 0x0000 }, { 2459, 0x0000 }, { 2459, 0x0000 }, { 2459, 0x0000 }, - { 2459, 0x0002 }, { 2460, 0x0000 }, { 2460, 0x4001 }, { 2462, 0x1000 }, - /* 0x8600 */ - { 2463, 0x2004 }, { 2465, 0x0051 }, { 2468, 0x8100 }, { 2470, 0x0000 }, - { 2470, 0x0024 }, { 2472, 0x0000 }, { 2472, 0x1000 }, { 2473, 0x4004 }, - { 2475, 0x0000 }, { 2475, 0x0004 }, { 2476, 0x2001 }, { 2478, 0x0004 }, - { 2479, 0x0000 }, { 2479, 0x0000 }, { 2479, 0x8000 }, { 2480, 0x0000 }, - /* 0x8700 */ - { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x0000 }, - { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x0000 }, { 2480, 0x2003 }, - { 2483, 0x1840 }, { 2486, 0x0000 }, { 2486, 0x0220 }, { 2488, 0x0002 }, - { 2489, 0x4002 }, { 2491, 0x0440 }, { 2493, 0x4000 }, { 2494, 0x0020 }, - /* 0x8800 */ - { 2495, 0x8010 }, { 2497, 0x0100 }, { 2498, 0x2080 }, { 2500, 0x0000 }, - { 2500, 0x8064 }, { 2504, 0x4000 }, { 2505, 0x4031 }, { 2509, 0x0000 }, - { 2509, 0x0090 }, { 2511, 0x1000 }, { 2512, 0x4001 }, { 2514, 0x8030 }, - { 2517, 0x80a0 }, { 2520, 0x0000 }, { 2520, 0x0040 }, { 2521, 0x8020 }, - /* 0x8900 */ - { 2523, 0x0001 }, { 2524, 0x0000 }, { 2524, 0x0010 }, { 2525, 0x0000 }, - { 2525, 0x2088 }, { 2528, 0x0010 }, { 2529, 0x0020 }, { 2530, 0x0080 }, - { 2531, 0x0681 }, { 2535, 0x0012 }, { 2537, 0x02a0 }, { 2540, 0x1000 }, - { 2541, 0x0042 }, { 2543, 0x0000 }, { 2543, 0x0080 }, { 2544, 0x0000 }, - /* 0x8a00 */ - { 2544, 0x0000 }, { 2544, 0x1000 }, { 2545, 0x0a00 }, { 2547, 0x2100 }, - { 2549, 0x0200 }, { 2550, 0x0000 }, { 2550, 0x0080 }, { 2551, 0x4000 }, - { 2552, 0x0000 }, { 2552, 0x1011 }, { 2555, 0x8200 }, { 2557, 0x0010 }, - { 2558, 0x0000 }, { 2558, 0x0400 }, { 2559, 0x0400 }, { 2560, 0x0000 }, - /* 0x8b00 */ - { 2560, 0x1000 }, { 2561, 0x8000 }, { 2562, 0x2000 }, { 2563, 0x8000 }, - { 2564, 0x3008 }, { 2567, 0x4000 }, { 2568, 0x0204 }, { 2570, 0x0000 }, - { 2570, 0x0002 }, { 2571, 0x0801 }, { 2573, 0x0001 }, { 2574, 0x4000 }, - { 2575, 0x0000 }, { 2575, 0x0000 }, { 2575, 0x0004 }, { 2576, 0x0000 }, - /* 0x8c00 */ - { 2576, 0x0000 }, { 2576, 0x0000 }, { 2576, 0x0000 }, { 2576, 0x0000 }, - { 2576, 0x0000 }, { 2576, 0x0002 }, { 2577, 0x0000 }, { 2577, 0x0000 }, - { 2577, 0x0000 }, { 2577, 0x8800 }, { 2579, 0x2000 }, { 2580, 0x0000 }, - { 2580, 0x2000 }, { 2581, 0x0850 }, { 2584, 0x0a00 }, { 2586, 0x0084 }, - /* 0x8d00 */ - { 2588, 0x1808 }, { 2591, 0x3106 }, { 2596, 0x0000 }, { 2596, 0x0000 }, - { 2596, 0x0000 }, { 2596, 0x0000 }, { 2596, 0x0000 }, { 2596, 0x0400 }, - { 2597, 0x0004 }, { 2598, 0x0000 }, { 2598, 0x0240 }, { 2600, 0x0000 }, - { 2600, 0x0009 }, { 2602, 0x0010 }, { 2603, 0x0000 }, { 2603, 0x0000 }, - /* 0x8e00 */ - { 2603, 0x4002 }, { 2605, 0x0000 }, { 2605, 0x2500 }, { 2608, 0x0400 }, - { 2609, 0x8040 }, { 2611, 0x0000 }, { 2611, 0x0100 }, { 2612, 0x40a2 }, - { 2616, 0x0001 }, { 2617, 0x0000 }, { 2617, 0x2080 }, { 2619, 0x1041 }, - { 2622, 0x4008 }, { 2624, 0x0400 }, { 2625, 0x2014 }, { 2628, 0x0004 }, - /* 0x8f00 */ - { 2629, 0x0000 }, { 2629, 0x0200 }, { 2630, 0x2000 }, { 2631, 0x0001 }, - { 2632, 0x0402 }, { 2634, 0x1000 }, { 2635, 0x40c0 }, { 2638, 0x0000 }, - { 2638, 0x0000 }, { 2638, 0x0008 }, { 2639, 0x0021 }, { 2641, 0x5fe8 }, - { 2651, 0x1402 }, { 2654, 0x0401 }, { 2656, 0x0000 }, { 2656, 0x0200 }, - /* 0x9000 */ - { 2657, 0x0100 }, { 2658, 0x0004 }, { 2659, 0x0000 }, { 2659, 0x0088 }, - { 2661, 0x1000 }, { 2662, 0x0040 }, { 2663, 0x1012 }, { 2666, 0x0000 }, - { 2666, 0x0000 }, { 2666, 0x0000 }, { 2666, 0x4100 }, { 2668, 0x0800 }, - { 2669, 0x0010 }, { 2670, 0x0000 }, { 2670, 0x0000 }, { 2670, 0x0000 }, - /* 0x9100 */ - { 2670, 0x0000 }, { 2670, 0x0000 }, { 2670, 0x0000 }, { 2670, 0x0000 }, - { 2670, 0x0000 }, { 2670, 0x5202 }, { 2674, 0x0080 }, { 2675, 0x1041 }, - { 2678, 0x5000 }, { 2680, 0x0000 }, { 2680, 0x0200 }, { 2681, 0x0840 }, - { 2683, 0x0010 }, { 2684, 0x8040 }, { 2686, 0x0020 }, { 2687, 0x4400 }, - /* 0x9200 */ - { 2689, 0x4100 }, { 2691, 0x0008 }, { 2692, 0x0d00 }, { 2695, 0x1020 }, - { 2697, 0x0012 }, { 2699, 0xa120 }, { 2703, 0x4804 }, { 2706, 0x0080 }, - { 2707, 0x8212 }, { 2711, 0x0000 }, { 2711, 0x4000 }, { 2712, 0xc602 }, - { 2717, 0x0000 }, { 2717, 0x0810 }, { 2719, 0x1828 }, { 2723, 0x205c }, - /* 0x9300 */ - { 2728, 0x0088 }, { 2730, 0x0000 }, { 2730, 0x1000 }, { 2731, 0x0003 }, - { 2733, 0x013f }, { 2740, 0x8000 }, { 2741, 0x4b44 }, { 2747, 0x2118 }, - { 2751, 0x00f2 }, { 2756, 0x1001 }, { 2758, 0x2001 }, { 2760, 0xa900 }, - { 2764, 0x0840 }, { 2766, 0x0808 }, { 2768, 0x0001 }, { 2769, 0x000b }, - /* 0x9400 */ - { 2772, 0x0112 }, { 2775, 0x2880 }, { 2778, 0x20f0 }, { 2783, 0x4000 }, - { 2784, 0x200c }, { 2787, 0x0910 }, { 2790, 0x10a0 }, { 2793, 0x0a00 }, - { 2795, 0x0020 }, { 2796, 0x8000 }, { 2797, 0x0004 }, { 2798, 0x0000 }, - { 2798, 0x000a }, { 2800, 0x1000 }, { 2801, 0x0000 }, { 2801, 0x0040 }, - /* 0x9500 */ - { 2802, 0x0000 }, { 2802, 0x0000 }, { 2802, 0x2000 }, { 2803, 0x0000 }, - { 2803, 0x0080 }, { 2804, 0x0000 }, { 2804, 0x0000 }, { 2804, 0x8100 }, - { 2806, 0x0020 }, { 2807, 0x02c0 }, { 2810, 0x04c5 }, { 2815, 0x0000 }, - { 2815, 0x0000 }, { 2815, 0x0000 }, { 2815, 0x0100 }, { 2816, 0x0010 }, - /* 0x9600 */ - { 2817, 0x0000 }, { 2817, 0x2000 }, { 2818, 0x0000 }, { 2818, 0x0108 }, - { 2820, 0x0022 }, { 2822, 0x0040 }, { 2823, 0x0200 }, { 2824, 0x0800 }, - { 2825, 0x8002 }, { 2827, 0x0040 }, { 2828, 0x0028 }, { 2830, 0x2040 }, - { 2832, 0x0000 }, { 2832, 0x0000 }, { 2832, 0x0000 }, { 2832, 0x0010 }, - /* 0x9700 */ - { 2833, 0x0008 }, { 2834, 0x0800 }, { 2835, 0x0002 }, { 2836, 0x0042 }, - { 2838, 0x0003 }, { 2840, 0xa082 }, { 2844, 0x2000 }, { 2845, 0x0002 }, - { 2846, 0x0280 }, { 2848, 0x8800 }, { 2850, 0x0000 }, { 2850, 0x6516 }, - { 2857, 0x0105 }, { 2860, 0x0004 }, { 2861, 0x4041 }, { 2864, 0x0024 }, - /* 0x9800 */ - { 2866, 0x0000 }, { 2866, 0x8030 }, { 2869, 0x4008 }, { 2871, 0x0018 }, - { 2873, 0x0880 }, { 2875, 0x0000 }, { 2875, 0x1040 }, { 2877, 0x0020 }, - { 2878, 0x0000 }, { 2878, 0x0000 }, { 2878, 0x0000 }, { 2878, 0x0290 }, - { 2881, 0x4588 }, { 2886, 0x5000 }, { 2888, 0x1043 }, { 2892, 0x0022 }, - /* 0x9900 */ - { 2894, 0x4000 }, { 2895, 0x1200 }, { 2897, 0x0000 }, { 2897, 0x0b80 }, - { 2901, 0x2405 }, { 2905, 0x2000 }, { 2906, 0x000c }, { 2908, 0x0000 }, - { 2908, 0x0000 }, { 2908, 0x0800 }, { 2909, 0x0410 }, { 2911, 0x1100 }, - { 2913, 0x0030 }, { 2915, 0x0400 }, { 2916, 0x0042 }, { 2918, 0x0020 }, - /* 0x9a00 */ - { 2919, 0x1000 }, { 2920, 0x8001 }, { 2922, 0x8042 }, { 2925, 0x1800 }, - { 2927, 0x0000 }, { 2927, 0x1100 }, { 2929, 0x1008 }, { 2931, 0x0000 }, - { 2931, 0x8000 }, { 2932, 0x0000 }, { 2932, 0x0000 }, { 2932, 0x2444 }, - { 2936, 0x0000 }, { 2936, 0x0080 }, { 2937, 0x0005 }, { 2939, 0x8010 }, - /* 0x9b00 */ - { 2941, 0x8204 }, { 2944, 0x0010 }, { 2945, 0x2400 }, { 2947, 0x0210 }, - { 2949, 0x0001 }, { 2950, 0x0001 }, { 2951, 0x0200 }, { 2952, 0x8000 }, - { 2953, 0xe80a }, { 2959, 0xa080 }, { 2962, 0x0000 }, { 2962, 0x0001 }, - { 2963, 0x8000 }, { 2964, 0x2000 }, { 2965, 0x2200 }, { 2967, 0x8012 }, - /* 0x9c00 */ - { 2970, 0x1404 }, { 2973, 0x8821 }, { 2977, 0x8041 }, { 2980, 0x0420 }, - { 2982, 0x8020 }, { 2984, 0x2008 }, { 2986, 0x0000 }, { 2986, 0x1804 }, - { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, - { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, { 2989, 0x0000 }, - /* 0x9d00 */ - { 2989, 0x1004 }, { 2991, 0x0040 }, { 2992, 0x0002 }, { 2993, 0x0210 }, - { 2995, 0x4210 }, { 2998, 0x4001 }, { 3000, 0x6000 }, { 3002, 0x5000 }, - { 3004, 0x0008 }, { 3005, 0x0008 }, { 3006, 0x0820 }, { 3008, 0x2000 }, - { 3009, 0x0211 }, { 3012, 0x0010 }, { 3013, 0x0000 }, { 3013, 0x1000 }, - /* 0x9e00 */ - { 3014, 0x5400 }, { 3017, 0x9100 }, { 3020, 0x0000 }, { 3020, 0x0000 }, - { 3020, 0x0000 }, { 3020, 0x0000 }, { 3020, 0x0000 }, { 3020, 0x0800 }, - { 3021, 0x0032 }, { 3024, 0x4161 }, { 3029, 0x9d44 }, { 3036, 0xa002 }, - { 3039, 0x00d2 }, { 3043, 0x0000 }, { 3043, 0x0004 }, { 3044, 0x4102 }, - /* 0x9f00 */ - { 3047, 0x0104 }, { 3049, 0x0080 }, { 3050, 0x00c0 }, { 3052, 0x0200 }, - { 3053, 0x0030 }, { 3055, 0x0409 }, { 3058, 0x0204 }, { 3060, 0x8000 }, - { 3061, 0x4000 }, { 3062, 0x8200 }, { 3064, 0x0020 }, { 3065, 0x0003 }, -}; -static const Summary16 hkscs1999_uni2indx_pagef9[1] = { - /* 0xf900 */ - { 3067, 0x0080 }, -}; -static const Summary16 hkscs1999_uni2indx_pageff[15] = { - /* 0xff00 */ - { 3068, 0x0084 }, { 3070, 0x0000 }, { 3070, 0x0000 }, { 3070, 0x2800 }, - { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, - { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x0000 }, - { 3072, 0x0000 }, { 3072, 0x0000 }, { 3072, 0x2014 }, -}; -static const Summary16 hkscs1999_uni2indx_page200[2335] = { - /* 0x20000 */ - { 3075, 0x0000 }, { 3075, 0x0000 }, { 3075, 0x0002 }, { 3076, 0x4000 }, - { 3077, 0x4040 }, { 3079, 0x0000 }, { 3079, 0x0100 }, { 3080, 0x0000 }, - { 3080, 0x04c0 }, { 3083, 0x0010 }, { 3084, 0x0000 }, { 3084, 0x0000 }, - { 3084, 0x3c00 }, { 3088, 0x0002 }, { 3089, 0x4000 }, { 3090, 0x0000 }, - /* 0x20100 */ - { 3090, 0x5000 }, { 3092, 0x0100 }, { 3093, 0x0000 }, { 3093, 0x0000 }, - { 3093, 0x0000 }, { 3093, 0x0000 }, { 3093, 0x0000 }, { 3093, 0x0000 }, - { 3093, 0x0000 }, { 3093, 0x0000 }, { 3093, 0x0a00 }, { 3095, 0x0000 }, - { 3095, 0x0002 }, { 3096, 0x0010 }, { 3097, 0x0000 }, { 3097, 0x0004 }, - /* 0x20200 */ - { 3098, 0x1010 }, { 3100, 0x0010 }, { 3101, 0x0000 }, { 3101, 0x0000 }, - { 3101, 0x0000 }, { 3101, 0x0800 }, { 3102, 0x0000 }, { 3102, 0x0030 }, - { 3104, 0x0000 }, { 3104, 0x4200 }, { 3106, 0x0001 }, { 3107, 0x8080 }, - { 3109, 0x0001 }, { 3110, 0x0000 }, { 3110, 0x0020 }, { 3111, 0x0000 }, - /* 0x20300 */ - { 3111, 0x0400 }, { 3112, 0x0000 }, { 3112, 0x0020 }, { 3113, 0x0000 }, - { 3113, 0x00e2 }, { 3117, 0x0000 }, { 3117, 0x0000 }, { 3117, 0xc000 }, - { 3119, 0x0001 }, { 3120, 0x0000 }, { 3120, 0x0081 }, { 3122, 0x0020 }, - { 3123, 0x0a00 }, { 3125, 0x0000 }, { 3125, 0x0000 }, { 3125, 0x1020 }, - /* 0x20400 */ - { 3127, 0x0000 }, { 3127, 0x8018 }, { 3130, 0x0000 }, { 3130, 0x0000 }, - { 3130, 0x0000 }, { 3130, 0x0000 }, { 3130, 0x0020 }, { 3131, 0x0000 }, - { 3131, 0x4080 }, { 3133, 0x0006 }, { 3135, 0x0008 }, { 3136, 0x0000 }, - { 3136, 0x0000 }, { 3136, 0x0080 }, { 3137, 0x0000 }, { 3137, 0x5000 }, - /* 0x20500 */ - { 3139, 0x0000 }, { 3139, 0x0000 }, { 3139, 0x0000 }, { 3139, 0x0000 }, - { 3139, 0x0080 }, { 3140, 0x0000 }, { 3140, 0x0000 }, { 3140, 0x0000 }, - { 3140, 0x4000 }, { 3141, 0x0000 }, { 3141, 0x0020 }, { 3142, 0x0008 }, - { 3143, 0x0408 }, { 3145, 0x8021 }, { 3148, 0x0801 }, { 3150, 0x0000 }, - /* 0x20600 */ - { 3150, 0x0000 }, { 3150, 0x0622 }, { 3154, 0x0000 }, { 3154, 0x0001 }, - { 3155, 0x0000 }, { 3155, 0x0040 }, { 3156, 0x0000 }, { 3156, 0x0040 }, - { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, - { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, { 3157, 0x0000 }, - /* 0x20700 */ - { 3157, 0x4000 }, { 3158, 0x0000 }, { 3158, 0x0000 }, { 3158, 0x0002 }, - { 3159, 0x0000 }, { 3159, 0x0000 }, { 3159, 0x0000 }, { 3159, 0x0200 }, - { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, - { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x0000 }, - /* 0x20800 */ - { 3160, 0x0000 }, { 3160, 0x0000 }, { 3160, 0x1000 }, { 3161, 0x0000 }, - { 3161, 0x0000 }, { 3161, 0x0000 }, { 3161, 0x0000 }, { 3161, 0x0008 }, - { 3162, 0x0000 }, { 3162, 0x0000 }, { 3162, 0x0000 }, { 3162, 0x0000 }, - { 3162, 0x0000 }, { 3162, 0x0020 }, { 3163, 0x0000 }, { 3163, 0x0000 }, - /* 0x20900 */ - { 3163, 0x0000 }, { 3163, 0x0040 }, { 3164, 0x0008 }, { 3165, 0x0000 }, - { 3165, 0x0000 }, { 3165, 0x0010 }, { 3166, 0x0000 }, { 3166, 0x0200 }, - { 3167, 0x0000 }, { 3167, 0x0000 }, { 3167, 0x0000 }, { 3167, 0x0000 }, - { 3167, 0x0000 }, { 3167, 0x0000 }, { 3167, 0x0080 }, { 3168, 0x0000 }, - /* 0x20a00 */ - { 3168, 0x0000 }, { 3168, 0x0002 }, { 3169, 0x0000 }, { 3169, 0x0000 }, - { 3169, 0x0000 }, { 3169, 0x0001 }, { 3170, 0x0000 }, { 3170, 0x0000 }, - { 3170, 0x0000 }, { 3170, 0x0000 }, { 3170, 0x0000 }, { 3170, 0x0010 }, - { 3171, 0x2004 }, { 3173, 0x0000 }, { 3173, 0x0000 }, { 3173, 0x0000 }, - /* 0x20b00 */ - { 3173, 0x2000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, - { 3174, 0x0000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, { 3174, 0x0000 }, - { 3174, 0x8000 }, { 3175, 0x0000 }, { 3175, 0x0300 }, { 3177, 0x8000 }, - { 3178, 0x0840 }, { 3180, 0x0000 }, { 3180, 0x0804 }, { 3182, 0x8800 }, - /* 0x20c00 */ - { 3184, 0x2800 }, { 3186, 0x0000 }, { 3186, 0x0001 }, { 3187, 0x0c10 }, - { 3190, 0x000e }, { 3193, 0x0008 }, { 3194, 0x0020 }, { 3195, 0x1180 }, - { 3198, 0x2000 }, { 3199, 0x1040 }, { 3201, 0x0000 }, { 3201, 0x0120 }, - { 3203, 0x8000 }, { 3204, 0x2078 }, { 3209, 0x2000 }, { 3210, 0x8000 }, - /* 0x20d00 */ - { 3211, 0x0000 }, { 3211, 0x0020 }, { 3212, 0x0100 }, { 3213, 0x0006 }, - { 3215, 0x73c0 }, { 3222, 0x0000 }, { 3222, 0x8000 }, { 3223, 0xd012 }, - { 3228, 0x0000 }, { 3228, 0x1040 }, { 3230, 0x0080 }, { 3231, 0x0004 }, - { 3232, 0x0100 }, { 3233, 0x0000 }, { 3233, 0x0000 }, { 3233, 0x0000 }, - /* 0x20e00 */ - { 3233, 0xe610 }, { 3239, 0x2043 }, { 3243, 0x0000 }, { 3243, 0x0000 }, - { 3243, 0x1000 }, { 3244, 0x0000 }, { 3244, 0x2000 }, { 3245, 0x0fe8 }, - { 3253, 0x1000 }, { 3254, 0x2140 }, { 3257, 0x1c04 }, { 3261, 0x0040 }, - { 3262, 0x0000 }, { 3262, 0x2180 }, { 3265, 0x0000 }, { 3265, 0x0f00 }, - /* 0x20f00 */ - { 3269, 0x0000 }, { 3269, 0x2000 }, { 3270, 0x6040 }, { 3273, 0x0803 }, - { 3276, 0x1000 }, { 3277, 0x0000 }, { 3277, 0x0010 }, { 3278, 0x0000 }, - { 3278, 0x2000 }, { 3279, 0x0001 }, { 3280, 0x2000 }, { 3281, 0x1070 }, - { 3285, 0x0000 }, { 3285, 0x8000 }, { 3286, 0x3c00 }, { 3290, 0x0000 }, - /* 0x21000 */ - { 3290, 0x0000 }, { 3290, 0x6010 }, { 3293, 0x0000 }, { 3293, 0x0000 }, - { 3293, 0x8000 }, { 3294, 0x1000 }, { 3295, 0x8000 }, { 3296, 0x09e0 }, - { 3301, 0x0100 }, { 3302, 0x2040 }, { 3304, 0x0000 }, { 3304, 0x8010 }, - { 3306, 0x8383 }, { 3312, 0x0008 }, { 3313, 0x0010 }, { 3314, 0x0070 }, - /* 0x21100 */ - { 3317, 0x0000 }, { 3317, 0x0000 }, { 3317, 0x8000 }, { 3318, 0x2800 }, - { 3320, 0x8120 }, { 3323, 0x0000 }, { 3323, 0x0000 }, { 3323, 0x0000 }, - { 3323, 0x0081 }, { 3325, 0x0000 }, { 3325, 0x0000 }, { 3325, 0x0000 }, - { 3325, 0x0000 }, { 3325, 0x0200 }, { 3326, 0x0000 }, { 3326, 0x0000 }, - /* 0x21200 */ - { 3326, 0x0000 }, { 3326, 0x0000 }, { 3326, 0x0000 }, { 3326, 0x1000 }, - { 3327, 0x8000 }, { 3328, 0x0000 }, { 3328, 0x0000 }, { 3328, 0x1000 }, - { 3329, 0x0000 }, { 3329, 0x0000 }, { 3329, 0x0300 }, { 3331, 0x0001 }, - { 3332, 0x0000 }, { 3332, 0x0000 }, { 3332, 0x0008 }, { 3333, 0x4000 }, - /* 0x21300 */ - { 3334, 0x003c }, { 3338, 0x0000 }, { 3338, 0x0000 }, { 3338, 0x0440 }, - { 3340, 0x0000 }, { 3340, 0x0000 }, { 3340, 0x0000 }, { 3340, 0x0060 }, - { 3342, 0x4000 }, { 3343, 0x1100 }, { 3345, 0x0000 }, { 3345, 0x0000 }, - { 3345, 0x0060 }, { 3347, 0x0000 }, { 3347, 0x2000 }, { 3348, 0x4000 }, - /* 0x21400 */ - { 3349, 0x0000 }, { 3349, 0x0048 }, { 3351, 0x0010 }, { 3352, 0x0000 }, - { 3352, 0x0000 }, { 3352, 0x0034 }, { 3355, 0x0000 }, { 3355, 0x0000 }, - { 3355, 0x0400 }, { 3356, 0x0080 }, { 3357, 0x0000 }, { 3357, 0x0040 }, - { 3358, 0x0000 }, { 3358, 0x0000 }, { 3358, 0x0100 }, { 3359, 0x2000 }, - /* 0x21500 */ - { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0000 }, - { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0000 }, { 3360, 0x0080 }, - { 3361, 0x0004 }, { 3362, 0x0040 }, { 3363, 0x0000 }, { 3363, 0x0000 }, - { 3363, 0x0000 }, { 3363, 0x0000 }, { 3363, 0x0000 }, { 3363, 0x0000 }, - /* 0x21600 */ - { 3363, 0x0400 }, { 3364, 0x0208 }, { 3366, 0x0000 }, { 3366, 0x4000 }, - { 3367, 0x0000 }, { 3367, 0x0000 }, { 3367, 0x0002 }, { 3368, 0x0000 }, - { 3368, 0x0000 }, { 3368, 0x0004 }, { 3369, 0x0000 }, { 3369, 0x0500 }, - { 3371, 0x0007 }, { 3374, 0x8028 }, { 3377, 0x01c0 }, { 3380, 0x5c00 }, - /* 0x21700 */ - { 3384, 0x2000 }, { 3385, 0x0001 }, { 3386, 0x0040 }, { 3387, 0x1c00 }, - { 3390, 0x0000 }, { 3390, 0x0080 }, { 3391, 0xf000 }, { 3395, 0x001b }, - { 3399, 0x0000 }, { 3399, 0x0000 }, { 3399, 0x0800 }, { 3400, 0x003f }, - { 3406, 0x0088 }, { 3408, 0x9e00 }, { 3413, 0x8000 }, { 3414, 0x1f60 }, - /* 0x21800 */ - { 3421, 0x0000 }, { 3421, 0x0000 }, { 3421, 0x2701 }, { 3426, 0x0e00 }, - { 3429, 0x0021 }, { 3431, 0x4004 }, { 3433, 0x001e }, { 3437, 0x0880 }, - { 3439, 0x0038 }, { 3442, 0xc000 }, { 3444, 0x0007 }, { 3447, 0xc000 }, - { 3449, 0x0000 }, { 3449, 0x03c2 }, { 3454, 0x0000 }, { 3454, 0x0400 }, - /* 0x21900 */ - { 3455, 0x0038 }, { 3458, 0x1027 }, { 3463, 0x0084 }, { 3465, 0x0800 }, - { 3466, 0x0010 }, { 3467, 0x0100 }, { 3468, 0x0400 }, { 3469, 0x1000 }, - { 3470, 0x0108 }, { 3472, 0x0040 }, { 3473, 0x0000 }, { 3473, 0x0000 }, - { 3473, 0x0000 }, { 3473, 0x0800 }, { 3474, 0x0000 }, { 3474, 0x0008 }, - /* 0x21a00 */ - { 3475, 0x0000 }, { 3475, 0x0000 }, { 3475, 0x2000 }, { 3476, 0x0010 }, - { 3477, 0x0820 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, - { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, - { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, - /* 0x21b00 */ - { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, { 3479, 0x0000 }, - { 3479, 0x0010 }, { 3480, 0x0000 }, { 3480, 0x0000 }, { 3480, 0x0000 }, - { 3480, 0x0000 }, { 3480, 0x0000 }, { 3480, 0x0000 }, { 3480, 0x0000 }, - { 3480, 0x0006 }, { 3482, 0x0000 }, { 3482, 0x0000 }, { 3482, 0x0000 }, - /* 0x21c00 */ - { 3482, 0x0000 }, { 3482, 0x0000 }, { 3482, 0x0400 }, { 3483, 0x0000 }, - { 3483, 0x0000 }, { 3483, 0x0000 }, { 3483, 0x0000 }, { 3483, 0x0001 }, - { 3484, 0x0000 }, { 3484, 0x0000 }, { 3484, 0x1024 }, { 3487, 0x0000 }, - { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, - /* 0x21d00 */ - { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, { 3487, 0x0000 }, - { 3487, 0x0040 }, { 3488, 0x0000 }, { 3488, 0x0000 }, { 3488, 0x0000 }, - { 3488, 0x0000 }, { 3488, 0x0001 }, { 3489, 0x0000 }, { 3489, 0x0400 }, - { 3490, 0x0400 }, { 3491, 0x0002 }, { 3492, 0x0800 }, { 3493, 0x0200 }, - /* 0x21e00 */ - { 3494, 0x0000 }, { 3494, 0x1000 }, { 3495, 0x0000 }, { 3495, 0x2080 }, - { 3497, 0x0000 }, { 3497, 0x0000 }, { 3497, 0x0000 }, { 3497, 0x0000 }, - { 3497, 0x0200 }, { 3498, 0x0000 }, { 3498, 0x0110 }, { 3500, 0x0000 }, - { 3500, 0x0100 }, { 3501, 0x0020 }, { 3502, 0x0000 }, { 3502, 0x0000 }, - /* 0x21f00 */ - { 3502, 0x8000 }, { 3503, 0x0020 }, { 3504, 0x0000 }, { 3504, 0x0000 }, - { 3504, 0x0000 }, { 3504, 0x0000 }, { 3504, 0x0400 }, { 3505, 0x0000 }, - { 3505, 0x0000 }, { 3505, 0x4000 }, { 3506, 0x0002 }, { 3507, 0x0000 }, - { 3507, 0x0000 }, { 3507, 0x0000 }, { 3507, 0x0100 }, { 3508, 0x0000 }, - /* 0x22000 */ - { 3508, 0x0000 }, { 3508, 0x0000 }, { 3508, 0x0000 }, { 3508, 0x0000 }, - { 3508, 0x0220 }, { 3510, 0x0000 }, { 3510, 0x0000 }, { 3510, 0x0000 }, - { 3510, 0x0000 }, { 3510, 0x0400 }, { 3511, 0x0000 }, { 3511, 0x0000 }, - { 3511, 0x0080 }, { 3512, 0x0000 }, { 3512, 0x0000 }, { 3512, 0x1000 }, - /* 0x22100 */ - { 3513, 0x0000 }, { 3513, 0x0000 }, { 3513, 0x0400 }, { 3514, 0x0000 }, - { 3514, 0x0000 }, { 3514, 0x0800 }, { 3515, 0x0000 }, { 3515, 0x0408 }, - { 3517, 0x0000 }, { 3517, 0x0000 }, { 3517, 0x0002 }, { 3518, 0x0000 }, - { 3518, 0x0008 }, { 3519, 0x0000 }, { 3519, 0x0000 }, { 3519, 0x0000 }, - /* 0x22200 */ - { 3519, 0x0100 }, { 3520, 0x0000 }, { 3520, 0x0000 }, { 3520, 0x0000 }, - { 3520, 0x0000 }, { 3520, 0x0000 }, { 3520, 0x0000 }, { 3520, 0x1000 }, - { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, - { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0000 }, - /* 0x22300 */ - { 3521, 0x0000 }, { 3521, 0x0000 }, { 3521, 0x0022 }, { 3523, 0x0000 }, - { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x0000 }, - { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x0000 }, { 3523, 0x2000 }, - { 3524, 0x0000 }, { 3524, 0x0081 }, { 3526, 0x0000 }, { 3526, 0x0400 }, - /* 0x22400 */ - { 3527, 0x0000 }, { 3527, 0x0000 }, { 3527, 0x0000 }, { 3527, 0x0000 }, - { 3527, 0x0000 }, { 3527, 0x0000 }, { 3527, 0x0020 }, { 3528, 0x0002 }, - { 3529, 0x0800 }, { 3530, 0x0002 }, { 3531, 0x0000 }, { 3531, 0x0001 }, - { 3532, 0x0000 }, { 3532, 0x0000 }, { 3532, 0x2000 }, { 3533, 0x0000 }, - /* 0x22500 */ - { 3533, 0x0000 }, { 3533, 0x0808 }, { 3535, 0x0000 }, { 3535, 0x0001 }, - { 3536, 0x0000 }, { 3536, 0x0010 }, { 3537, 0x0000 }, { 3537, 0x0000 }, - { 3537, 0x2000 }, { 3538, 0x0000 }, { 3538, 0x8000 }, { 3539, 0x4000 }, - { 3540, 0x0000 }, { 3540, 0x0000 }, { 3540, 0x0000 }, { 3540, 0x0000 }, - /* 0x22600 */ - { 3540, 0x0000 }, { 3540, 0x1800 }, { 3542, 0x0800 }, { 3543, 0x0000 }, - { 3543, 0x0000 }, { 3543, 0x0000 }, { 3543, 0x0100 }, { 3544, 0x0400 }, - { 3545, 0x0000 }, { 3545, 0x0140 }, { 3547, 0x0000 }, { 3547, 0x0000 }, - { 3547, 0x0000 }, { 3547, 0x0000 }, { 3547, 0x0000 }, { 3547, 0x0070 }, - /* 0x22700 */ - { 3550, 0x0000 }, { 3550, 0x8810 }, { 3553, 0x0400 }, { 3554, 0x0000 }, - { 3554, 0x0000 }, { 3554, 0x0000 }, { 3554, 0x0000 }, { 3554, 0x0020 }, - { 3555, 0x0002 }, { 3556, 0x0000 }, { 3556, 0x0000 }, { 3556, 0x0030 }, - { 3558, 0x2000 }, { 3559, 0x0000 }, { 3559, 0x0000 }, { 3559, 0x0000 }, - /* 0x22800 */ - { 3559, 0x0008 }, { 3560, 0x0000 }, { 3560, 0x0000 }, { 3560, 0x0000 }, - { 3560, 0x0000 }, { 3560, 0x8000 }, { 3561, 0x0001 }, { 3562, 0x0002 }, - { 3563, 0x0000 }, { 3563, 0x0000 }, { 3563, 0x2000 }, { 3564, 0x0000 }, - { 3564, 0x0002 }, { 3565, 0x0000 }, { 3565, 0x0000 }, { 3565, 0x0080 }, - /* 0x22900 */ - { 3566, 0x0000 }, { 3566, 0x0000 }, { 3566, 0x0040 }, { 3567, 0x0200 }, - { 3568, 0x8000 }, { 3569, 0x0000 }, { 3569, 0x0880 }, { 3571, 0x0000 }, - { 3571, 0x0001 }, { 3572, 0x0008 }, { 3573, 0x0000 }, { 3573, 0x0000 }, - { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, - /* 0x22a00 */ - { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0000 }, - { 3573, 0x0000 }, { 3573, 0x0000 }, { 3573, 0x0040 }, { 3574, 0x0000 }, - { 3574, 0x0000 }, { 3574, 0x0000 }, { 3574, 0x0000 }, { 3574, 0x0000 }, - { 3574, 0x8000 }, { 3575, 0x0020 }, { 3576, 0x0140 }, { 3578, 0x0000 }, - /* 0x22b00 */ - { 3578, 0x4000 }, { 3579, 0x0000 }, { 3579, 0x0004 }, { 3580, 0x8000 }, - { 3581, 0x0008 }, { 3582, 0x0000 }, { 3582, 0x0400 }, { 3583, 0x0000 }, - { 3583, 0x0000 }, { 3583, 0x0000 }, { 3583, 0x0000 }, { 3583, 0x0000 }, - { 3583, 0x4400 }, { 3585, 0x0000 }, { 3585, 0x0000 }, { 3585, 0x0000 }, - /* 0x22c00 */ - { 3585, 0x0000 }, { 3585, 0x0000 }, { 3585, 0x00c0 }, { 3587, 0x0100 }, - { 3588, 0x1000 }, { 3589, 0x0022 }, { 3591, 0x0004 }, { 3592, 0x0000 }, - { 3592, 0x0100 }, { 3593, 0x0800 }, { 3594, 0x0202 }, { 3596, 0x0084 }, - { 3598, 0x0244 }, { 3601, 0x0000 }, { 3601, 0x0000 }, { 3601, 0x0000 }, - /* 0x22d00 */ - { 3601, 0x0180 }, { 3603, 0x0004 }, { 3604, 0x0000 }, { 3604, 0x0000 }, - { 3604, 0x1010 }, { 3606, 0x0000 }, { 3606, 0x0080 }, { 3607, 0x0000 }, - { 3607, 0x2000 }, { 3608, 0x0020 }, { 3609, 0x0019 }, { 3612, 0x0080 }, - { 3613, 0x0000 }, { 3613, 0x0000 }, { 3613, 0x4000 }, { 3614, 0x0000 }, - /* 0x22e00 */ - { 3614, 0x2000 }, { 3615, 0x0000 }, { 3615, 0x0000 }, { 3615, 0x0040 }, - { 3616, 0x0004 }, { 3617, 0x0000 }, { 3617, 0x0000 }, { 3617, 0x0100 }, - { 3618, 0x0800 }, { 3619, 0x0000 }, { 3619, 0x0000 }, { 3619, 0x0008 }, - { 3620, 0x0000 }, { 3620, 0x0000 }, { 3620, 0x8000 }, { 3621, 0x0000 }, - /* 0x22f00 */ - { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0000 }, - { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0000 }, { 3621, 0x0010 }, - { 3622, 0x0000 }, { 3622, 0x0000 }, { 3622, 0x0000 }, { 3622, 0x0000 }, - { 3622, 0x1000 }, { 3623, 0x0000 }, { 3623, 0x0008 }, { 3624, 0x0000 }, - /* 0x23000 */ - { 3624, 0x0000 }, { 3624, 0x0000 }, { 3624, 0x0000 }, { 3624, 0x0008 }, - { 3625, 0x0810 }, { 3627, 0x0000 }, { 3627, 0x0040 }, { 3628, 0x6000 }, - { 3630, 0x4000 }, { 3631, 0x0000 }, { 3631, 0x0000 }, { 3631, 0x1080 }, - { 3633, 0x0000 }, { 3633, 0x0400 }, { 3634, 0x0000 }, { 3634, 0x0000 }, - /* 0x23100 */ - { 3634, 0x0008 }, { 3635, 0x0000 }, { 3635, 0x0000 }, { 3635, 0x2000 }, - { 3636, 0x0000 }, { 3636, 0x0000 }, { 3636, 0x0000 }, { 3636, 0x2000 }, - { 3637, 0x0004 }, { 3638, 0x0000 }, { 3638, 0x0030 }, { 3640, 0x0008 }, - { 3641, 0x0300 }, { 3643, 0x0000 }, { 3643, 0x0000 }, { 3643, 0x0380 }, - /* 0x23200 */ - { 3646, 0x8000 }, { 3647, 0x0000 }, { 3647, 0x8020 }, { 3649, 0x001e }, - { 3653, 0x0000 }, { 3653, 0x0000 }, { 3653, 0x0004 }, { 3654, 0x0000 }, - { 3654, 0x0600 }, { 3656, 0x0000 }, { 3656, 0x3800 }, { 3659, 0x0000 }, - { 3659, 0x0000 }, { 3659, 0x0004 }, { 3660, 0x0003 }, { 3662, 0x0000 }, - /* 0x23300 */ - { 3662, 0x0401 }, { 3664, 0x8000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, - { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, - { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0000 }, { 3665, 0x0010 }, - { 3666, 0x1000 }, { 3667, 0x4000 }, { 3668, 0x0040 }, { 3669, 0x4430 }, - /* 0x23400 */ - { 3673, 0x0001 }, { 3674, 0x0000 }, { 3674, 0x0000 }, { 3674, 0x8000 }, - { 3675, 0x0000 }, { 3675, 0x0001 }, { 3676, 0x8000 }, { 3677, 0x0004 }, - { 3678, 0x0000 }, { 3678, 0x0000 }, { 3678, 0x0000 }, { 3678, 0x0000 }, - { 3678, 0x0000 }, { 3678, 0x0000 }, { 3678, 0x0020 }, { 3679, 0x0000 }, - /* 0x23500 */ - { 3679, 0x0000 }, { 3679, 0x0200 }, { 3680, 0x0000 }, { 3680, 0x0001 }, - { 3681, 0x0000 }, { 3681, 0x0400 }, { 3682, 0x0080 }, { 3683, 0x0000 }, - { 3683, 0x0000 }, { 3683, 0x1220 }, { 3686, 0x0000 }, { 3686, 0x0000 }, - { 3686, 0xe000 }, { 3689, 0x0000 }, { 3689, 0x0000 }, { 3689, 0x0008 }, - /* 0x23600 */ - { 3690, 0x0001 }, { 3691, 0x0400 }, { 3692, 0x0000 }, { 3692, 0x1000 }, - { 3693, 0x0001 }, { 3694, 0x8200 }, { 3696, 0x0000 }, { 3696, 0x0080 }, - { 3697, 0x0000 }, { 3697, 0x0000 }, { 3697, 0x2040 }, { 3699, 0x0400 }, - { 3700, 0x0000 }, { 3700, 0x8000 }, { 3701, 0x4000 }, { 3702, 0x0000 }, - /* 0x23700 */ - { 3702, 0x0008 }, { 3703, 0x0040 }, { 3704, 0xa001 }, { 3707, 0x8000 }, - { 3708, 0x0000 }, { 3708, 0x0000 }, { 3708, 0x0040 }, { 3709, 0x0000 }, - { 3709, 0x0002 }, { 3710, 0x0000 }, { 3710, 0x0004 }, { 3711, 0x1000 }, - { 3712, 0x0004 }, { 3713, 0x00e0 }, { 3716, 0x0000 }, { 3716, 0x0000 }, - /* 0x23800 */ - { 3716, 0x0000 }, { 3716, 0x0000 }, { 3716, 0x0000 }, { 3716, 0x0400 }, - { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, - { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, - { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, - /* 0x23900 */ - { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, - { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, - { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, { 3717, 0x0000 }, - { 3717, 0x0004 }, { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, - /* 0x23a00 */ - { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, - { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0000 }, - { 3718, 0x0000 }, { 3718, 0x0000 }, { 3718, 0x0080 }, { 3719, 0x0000 }, - { 3719, 0x0000 }, { 3719, 0x0800 }, { 3720, 0x4000 }, { 3721, 0x0400 }, - /* 0x23b00 */ - { 3722, 0x0000 }, { 3722, 0x0000 }, { 3722, 0x0000 }, { 3722, 0x0000 }, - { 3722, 0x0000 }, { 3722, 0x0400 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - /* 0x23c00 */ - { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - { 3723, 0x0000 }, { 3723, 0x0e00 }, { 3726, 0x0000 }, { 3726, 0x00a0 }, - { 3728, 0x0380 }, { 3731, 0x0000 }, { 3731, 0x0000 }, { 3731, 0xf000 }, - /* 0x23d00 */ - { 3735, 0x0000 }, { 3735, 0x0000 }, { 3735, 0x0000 }, { 3735, 0x0000 }, - { 3735, 0x0001 }, { 3736, 0x0800 }, { 3737, 0x0000 }, { 3737, 0x4000 }, - { 3738, 0x8000 }, { 3739, 0x0000 }, { 3739, 0x0000 }, { 3739, 0x3fc0 }, - { 3747, 0x0000 }, { 3747, 0x0000 }, { 3747, 0x0008 }, { 3748, 0x0100 }, - /* 0x23e00 */ - { 3749, 0x0000 }, { 3749, 0x0002 }, { 3750, 0xf000 }, { 3754, 0x0203 }, - { 3757, 0x0000 }, { 3757, 0x0000 }, { 3757, 0x0000 }, { 3757, 0x0000 }, - { 3757, 0x0f00 }, { 3761, 0x0000 }, { 3761, 0x0000 }, { 3761, 0x8200 }, - { 3763, 0x0000 }, { 3763, 0x0080 }, { 3764, 0x0000 }, { 3764, 0x1f80 }, - /* 0x23f00 */ - { 3770, 0x0000 }, { 3770, 0x0000 }, { 3770, 0x0000 }, { 3770, 0x0020 }, - { 3771, 0x0402 }, { 3773, 0x0000 }, { 3773, 0x0000 }, { 3773, 0x8000 }, - { 3774, 0x8007 }, { 3778, 0x0000 }, { 3778, 0x0000 }, { 3778, 0x0090 }, - { 3780, 0x0021 }, { 3782, 0x0000 }, { 3782, 0xf800 }, { 3787, 0x0001 }, - /* 0x24000 */ - { 3788, 0x0000 }, { 3788, 0x0002 }, { 3789, 0x0000 }, { 3789, 0x3e00 }, - { 3794, 0x0000 }, { 3794, 0x0080 }, { 3795, 0x0000 }, { 3795, 0x0000 }, - { 3795, 0x3820 }, { 3799, 0x0002 }, { 3800, 0x0000 }, { 3800, 0x0000 }, - { 3800, 0x0200 }, { 3801, 0x0000 }, { 3801, 0x0002 }, { 3802, 0x0000 }, - /* 0x24100 */ - { 3802, 0x8010 }, { 3804, 0x0200 }, { 3805, 0x0000 }, { 3805, 0x8000 }, - { 3806, 0x0011 }, { 3808, 0x90e0 }, { 3813, 0x0000 }, { 3813, 0x0480 }, - { 3815, 0x0000 }, { 3815, 0x0000 }, { 3815, 0x1038 }, { 3819, 0x0020 }, - { 3820, 0x2000 }, { 3821, 0x0000 }, { 3821, 0x0004 }, { 3822, 0x1000 }, - /* 0x24200 */ - { 3823, 0x0000 }, { 3823, 0x0800 }, { 3824, 0x0000 }, { 3824, 0x0000 }, - { 3824, 0x0800 }, { 3825, 0x0240 }, { 3827, 0x0000 }, { 3827, 0x01c0 }, - { 3830, 0x0010 }, { 3831, 0x0028 }, { 3833, 0x0020 }, { 3834, 0x0000 }, - { 3834, 0x0602 }, { 3837, 0x0000 }, { 3837, 0x4000 }, { 3838, 0x0400 }, - /* 0x24300 */ - { 3839, 0x2000 }, { 3840, 0x0400 }, { 3841, 0x0000 }, { 3841, 0x0010 }, - { 3842, 0x0100 }, { 3843, 0x0000 }, { 3843, 0x003c }, { 3847, 0x0000 }, - { 3847, 0x1000 }, { 3848, 0x1040 }, { 3850, 0x0000 }, { 3850, 0x2000 }, - { 3851, 0x0002 }, { 3852, 0x0000 }, { 3852, 0x0600 }, { 3854, 0x0104 }, - /* 0x24400 */ - { 3856, 0x0010 }, { 3857, 0x0000 }, { 3857, 0x0000 }, { 3857, 0x0060 }, - { 3859, 0x0000 }, { 3859, 0x0c00 }, { 3861, 0x0000 }, { 3861, 0x0008 }, - { 3862, 0x0180 }, { 3864, 0x0000 }, { 3864, 0x0000 }, { 3864, 0x1200 }, - { 3866, 0x4000 }, { 3867, 0x0048 }, { 3869, 0x0000 }, { 3869, 0x0000 }, - /* 0x24500 */ - { 3869, 0x0000 }, { 3869, 0x0000 }, { 3869, 0x0002 }, { 3870, 0x0000 }, - { 3870, 0x0000 }, { 3870, 0x0000 }, { 3870, 0x0000 }, { 3870, 0x0100 }, - { 3871, 0x0000 }, { 3871, 0x0000 }, { 3871, 0x0000 }, { 3871, 0x0000 }, - { 3871, 0x0100 }, { 3872, 0x0000 }, { 3872, 0x0000 }, { 3872, 0x0000 }, - /* 0x24600 */ - { 3872, 0x0000 }, { 3872, 0x0100 }, { 3873, 0x0400 }, { 3874, 0x0000 }, - { 3874, 0x0000 }, { 3874, 0x0000 }, { 3874, 0x0020 }, { 3875, 0x0010 }, - { 3876, 0x0000 }, { 3876, 0x0080 }, { 3877, 0x0000 }, { 3877, 0x0000 }, - { 3877, 0x0000 }, { 3877, 0x0010 }, { 3878, 0x0000 }, { 3878, 0x0000 }, - /* 0x24700 */ - { 3878, 0x0040 }, { 3879, 0x0000 }, { 3879, 0x8020 }, { 3881, 0x0000 }, - { 3881, 0x0000 }, { 3881, 0x0000 }, { 3881, 0x0000 }, { 3881, 0x0000 }, - { 3881, 0x8000 }, { 3882, 0x0000 }, { 3882, 0x0000 }, { 3882, 0x0000 }, - { 3882, 0x0000 }, { 3882, 0x0000 }, { 3882, 0x0001 }, { 3883, 0x0000 }, - /* 0x24800 */ - { 3883, 0x0000 }, { 3883, 0x0004 }, { 3884, 0x0008 }, { 3885, 0x0000 }, - { 3885, 0x0000 }, { 3885, 0x0000 }, { 3885, 0x0000 }, { 3885, 0x0000 }, - { 3885, 0x0004 }, { 3886, 0x0000 }, { 3886, 0x0000 }, { 3886, 0x0000 }, - { 3886, 0x0000 }, { 3886, 0x0000 }, { 3886, 0x0200 }, { 3887, 0x880f }, - /* 0x24900 */ - { 3893, 0x1003 }, { 3896, 0x02c0 }, { 3899, 0x8000 }, { 3900, 0xc018 }, - { 3904, 0x000f }, { 3908, 0x0000 }, { 3908, 0x000c }, { 3910, 0x8070 }, - { 3914, 0xff04 }, { 3923, 0x0010 }, { 3924, 0x3a90 }, { 3930, 0x0f80 }, - { 3935, 0x0020 }, { 3936, 0xc401 }, { 3940, 0x3028 }, { 3944, 0x0bc0 }, - /* 0x24a00 */ - { 3949, 0x4000 }, { 3950, 0x0024 }, { 3952, 0x07fe }, { 3962, 0x4000 }, - { 3963, 0xc424 }, { 3968, 0x2003 }, { 3971, 0x00e0 }, { 3974, 0x0782 }, - { 3979, 0x1000 }, { 3980, 0x0078 }, { 3984, 0x00f0 }, { 3988, 0x1c0e }, - { 3994, 0x0481 }, { 3997, 0x8002 }, { 3999, 0x0204 }, { 4001, 0x0000 }, - /* 0x24b00 */ - { 4001, 0x0000 }, { 4001, 0x0000 }, { 4001, 0x0000 }, { 4001, 0x0000 }, - { 4001, 0x0000 }, { 4001, 0x0000 }, { 4001, 0x4000 }, { 4002, 0x0000 }, - { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0000 }, - { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0000 }, { 4002, 0x0020 }, - /* 0x24c00 */ - { 4003, 0x0200 }, { 4004, 0x0000 }, { 4004, 0x0000 }, { 4004, 0x0000 }, - { 4004, 0x0000 }, { 4004, 0x0000 }, { 4004, 0x0000 }, { 4004, 0x0000 }, - { 4004, 0x0000 }, { 4004, 0xc000 }, { 4006, 0x0000 }, { 4006, 0x0000 }, - { 4006, 0x0200 }, { 4007, 0x0200 }, { 4008, 0x0000 }, { 4008, 0x0000 }, - /* 0x24d00 */ - { 4008, 0x0040 }, { 4009, 0x0008 }, { 4010, 0x0000 }, { 4010, 0x0000 }, - { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0000 }, - { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0000 }, { 4010, 0x0100 }, - { 4011, 0x0000 }, { 4011, 0x0000 }, { 4011, 0x0c00 }, { 4013, 0x0000 }, - /* 0x24e00 */ - { 4013, 0x0000 }, { 4013, 0x0000 }, { 4013, 0x0000 }, { 4013, 0x0800 }, - { 4014, 0x0000 }, { 4014, 0x0001 }, { 4015, 0x0000 }, { 4015, 0x0000 }, - { 4015, 0x0000 }, { 4015, 0x0000 }, { 4015, 0x00a0 }, { 4017, 0x0000 }, - { 4017, 0x0000 }, { 4017, 0x0000 }, { 4017, 0x0000 }, { 4017, 0x0000 }, - /* 0x24f00 */ - { 4017, 0x4000 }, { 4018, 0x0000 }, { 4018, 0x0000 }, { 4018, 0x0000 }, - { 4018, 0x0000 }, { 4018, 0x1000 }, { 4019, 0x0000 }, { 4019, 0x0000 }, - { 4019, 0x0044 }, { 4021, 0x0480 }, { 4023, 0x0200 }, { 4024, 0x0100 }, - { 4025, 0x0004 }, { 4026, 0x0000 }, { 4026, 0x0000 }, { 4026, 0x0000 }, - /* 0x25000 */ - { 4026, 0x0000 }, { 4026, 0x0000 }, { 4026, 0x1000 }, { 4027, 0x0000 }, - { 4027, 0x0000 }, { 4027, 0x0004 }, { 4028, 0x0000 }, { 4028, 0x0000 }, - { 4028, 0x0000 }, { 4028, 0x2000 }, { 4029, 0x0000 }, { 4029, 0x0000 }, - { 4029, 0x0000 }, { 4029, 0x0000 }, { 4029, 0x0000 }, { 4029, 0x0000 }, - /* 0x25100 */ - { 4029, 0x0000 }, { 4029, 0x0000 }, { 4029, 0x0800 }, { 4030, 0x0000 }, - { 4030, 0x0100 }, { 4031, 0x0000 }, { 4031, 0x0000 }, { 4031, 0x6000 }, - { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, - { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x00c8 }, { 4036, 0x0000 }, - /* 0x25200 */ - { 4036, 0x0000 }, { 4036, 0x0000 }, { 4036, 0x0003 }, { 4038, 0x0000 }, - { 4038, 0x0000 }, { 4038, 0x0001 }, { 4039, 0x0000 }, { 4039, 0x0000 }, - { 4039, 0x0000 }, { 4039, 0x0200 }, { 4040, 0x0000 }, { 4040, 0x0000 }, - { 4040, 0x0080 }, { 4041, 0x0100 }, { 4042, 0x0000 }, { 4042, 0x0000 }, - /* 0x25300 */ - { 4042, 0x4000 }, { 4043, 0x000a }, { 4045, 0x0000 }, { 4045, 0x0000 }, - { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, - { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, - { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, { 4045, 0x0000 }, - /* 0x25400 */ - { 4045, 0x0000 }, { 4045, 0x0200 }, { 4046, 0x8020 }, { 4048, 0x0001 }, - { 4049, 0x0040 }, { 4050, 0x0000 }, { 4050, 0x5000 }, { 4052, 0x0000 }, - { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, - { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, - /* 0x25500 */ - { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x0000 }, { 4052, 0x8022 }, - { 4055, 0x0000 }, { 4055, 0x7800 }, { 4059, 0x0064 }, { 4062, 0x0000 }, - { 4062, 0x8012 }, { 4065, 0x0000 }, { 4065, 0x0000 }, { 4065, 0x0200 }, - { 4066, 0x0000 }, { 4066, 0x0820 }, { 4068, 0x0001 }, { 4069, 0x0000 }, - /* 0x25600 */ - { 4069, 0x0020 }, { 4070, 0x0000 }, { 4070, 0x0000 }, { 4070, 0x0020 }, - { 4071, 0x0000 }, { 4071, 0x0002 }, { 4072, 0x0000 }, { 4072, 0x0000 }, - { 4072, 0x0008 }, { 4073, 0x0000 }, { 4073, 0x0000 }, { 4073, 0x0000 }, - { 4073, 0x0000 }, { 4073, 0x0000 }, { 4073, 0x0008 }, { 4074, 0x0040 }, - /* 0x25700 */ - { 4075, 0x0040 }, { 4076, 0x2000 }, { 4077, 0x0020 }, { 4078, 0x2000 }, - { 4079, 0x0000 }, { 4079, 0x0000 }, { 4079, 0x0000 }, { 4079, 0x0004 }, - { 4080, 0x0000 }, { 4080, 0x0000 }, { 4080, 0x0000 }, { 4080, 0x0000 }, - { 4080, 0x0080 }, { 4081, 0x8000 }, { 4082, 0x0003 }, { 4084, 0x0000 }, - /* 0x25800 */ - { 4084, 0x0000 }, { 4084, 0x0000 }, { 4084, 0x0000 }, { 4084, 0x0000 }, - { 4084, 0x0000 }, { 4084, 0x2080 }, { 4086, 0x0000 }, { 4086, 0x0004 }, - { 4087, 0x0000 }, { 4087, 0x0000 }, { 4087, 0x0000 }, { 4087, 0x0000 }, - { 4087, 0x0100 }, { 4088, 0x0000 }, { 4088, 0x0002 }, { 4089, 0x0000 }, - /* 0x25900 */ - { 4089, 0x0008 }, { 4090, 0x0000 }, { 4090, 0x0000 }, { 4090, 0x0000 }, - { 4090, 0x0040 }, { 4091, 0x0040 }, { 4092, 0x0000 }, { 4092, 0x0000 }, - { 4092, 0x0000 }, { 4092, 0x0000 }, { 4092, 0x1000 }, { 4093, 0x0000 }, - { 4093, 0x1000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, - /* 0x25a00 */ - { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, - { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, { 4094, 0x0000 }, - { 4094, 0x0000 }, { 4094, 0x1020 }, { 4096, 0xc000 }, { 4098, 0x0000 }, - { 4098, 0x0000 }, { 4098, 0x0000 }, { 4098, 0x0200 }, { 4099, 0x0000 }, - /* 0x25b00 */ - { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0000 }, - { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0000 }, { 4099, 0x0010 }, - { 4100, 0x0200 }, { 4101, 0x0000 }, { 4101, 0x0000 }, { 4101, 0x0018 }, - { 4103, 0x0040 }, { 4104, 0x0000 }, { 4104, 0x0110 }, { 4106, 0x0000 }, - /* 0x25c00 */ - { 4106, 0x0042 }, { 4108, 0x0000 }, { 4108, 0x0002 }, { 4109, 0x0000 }, - { 4109, 0x0400 }, { 4110, 0x0000 }, { 4110, 0x0020 }, { 4111, 0x0000 }, - { 4111, 0x0000 }, { 4111, 0x0002 }, { 4112, 0x0000 }, { 4112, 0x0000 }, - { 4112, 0x0003 }, { 4114, 0x0000 }, { 4114, 0x0000 }, { 4114, 0x4000 }, - /* 0x25d00 */ - { 4115, 0x0000 }, { 4115, 0x0000 }, { 4115, 0x0001 }, { 4116, 0x0000 }, - { 4116, 0x0008 }, { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, - { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, - { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, { 4117, 0x0000 }, - /* 0x25e00 */ - { 4117, 0x4000 }, { 4118, 0x0000 }, { 4118, 0x0000 }, { 4118, 0x0000 }, - { 4118, 0x0200 }, { 4119, 0x0000 }, { 4119, 0x0000 }, { 4119, 0x0000 }, - { 4119, 0x000e }, { 4122, 0x0000 }, { 4122, 0x0040 }, { 4123, 0x1000 }, - { 4124, 0x0000 }, { 4124, 0x0180 }, { 4126, 0x0000 }, { 4126, 0x0000 }, - /* 0x25f00 */ - { 4126, 0x0000 }, { 4126, 0x0400 }, { 4127, 0x0000 }, { 4127, 0x0000 }, - { 4127, 0x0800 }, { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0000 }, - { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0000 }, - { 4128, 0x0000 }, { 4128, 0x0000 }, { 4128, 0x0006 }, { 4130, 0x0000 }, - /* 0x26000 */ - { 4130, 0x0000 }, { 4130, 0x0000 }, { 4130, 0x0200 }, { 4131, 0x0000 }, - { 4131, 0x0100 }, { 4132, 0x0000 }, { 4132, 0x0010 }, { 4133, 0x0000 }, - { 4133, 0x0008 }, { 4134, 0x0080 }, { 4135, 0x0030 }, { 4137, 0x0000 }, - { 4137, 0x0000 }, { 4137, 0x0000 }, { 4137, 0x0000 }, { 4137, 0x0000 }, - /* 0x26100 */ - { 4137, 0x0004 }, { 4138, 0x0000 }, { 4138, 0x0002 }, { 4139, 0x0000 }, - { 4139, 0x0000 }, { 4139, 0x1e00 }, { 4143, 0x0000 }, { 4143, 0x0000 }, - { 4143, 0x0000 }, { 4143, 0x0000 }, { 4143, 0x6000 }, { 4145, 0x0004 }, - { 4146, 0x0000 }, { 4146, 0x2000 }, { 4147, 0x0000 }, { 4147, 0x0000 }, - /* 0x26200 */ - { 4147, 0x0000 }, { 4147, 0x0000 }, { 4147, 0x0000 }, { 4147, 0x0000 }, - { 4147, 0x0000 }, { 4147, 0x0100 }, { 4148, 0x0c02 }, { 4151, 0x0000 }, - { 4151, 0x0000 }, { 4151, 0x0000 }, { 4151, 0x0000 }, { 4151, 0x0000 }, - { 4151, 0x0000 }, { 4151, 0x0001 }, { 4152, 0x0000 }, { 4152, 0x0000 }, - /* 0x26300 */ - { 4152, 0x0000 }, { 4152, 0x0000 }, { 4152, 0x0000 }, { 4152, 0x0020 }, - { 4153, 0x1800 }, { 4155, 0x0002 }, { 4156, 0x0000 }, { 4156, 0x0000 }, - { 4156, 0x0000 }, { 4156, 0x0000 }, { 4156, 0x0000 }, { 4156, 0x4000 }, - { 4157, 0x0000 }, { 4157, 0x0000 }, { 4157, 0x0000 }, { 4157, 0x0120 }, - /* 0x26400 */ - { 4159, 0x0004 }, { 4160, 0x0007 }, { 4163, 0x0000 }, { 4163, 0x0000 }, - { 4163, 0x0400 }, { 4164, 0x0000 }, { 4164, 0x0200 }, { 4165, 0x0000 }, - { 4165, 0x2310 }, { 4169, 0x0100 }, { 4170, 0x0000 }, { 4170, 0x0000 }, - { 4170, 0x0000 }, { 4170, 0x0000 }, { 4170, 0x0000 }, { 4170, 0x0000 }, - /* 0x26500 */ - { 4170, 0x0000 }, { 4170, 0x0004 }, { 4171, 0x0000 }, { 4171, 0x0000 }, - { 4171, 0x0000 }, { 4171, 0x0000 }, { 4171, 0x0000 }, { 4171, 0x0004 }, - { 4172, 0x0000 }, { 4172, 0x0000 }, { 4172, 0x2001 }, { 4174, 0x8000 }, - { 4175, 0x0000 }, { 4175, 0x0000 }, { 4175, 0x0000 }, { 4175, 0x0000 }, - /* 0x26600 */ - { 4175, 0x0000 }, { 4175, 0x0004 }, { 4176, 0x0040 }, { 4177, 0x0000 }, - { 4177, 0x0000 }, { 4177, 0x0000 }, { 4177, 0x0000 }, { 4177, 0x0000 }, - { 4177, 0x0000 }, { 4177, 0x0000 }, { 4177, 0x8000 }, { 4178, 0x0022 }, - { 4180, 0x0000 }, { 4180, 0x0400 }, { 4181, 0x0100 }, { 4182, 0x1000 }, - /* 0x26700 */ - { 4183, 0x0000 }, { 4183, 0x0040 }, { 4184, 0x0000 }, { 4184, 0x0000 }, - { 4184, 0x0002 }, { 4185, 0x0000 }, { 4185, 0x0000 }, { 4185, 0x0000 }, - { 4185, 0x0000 }, { 4185, 0x0200 }, { 4186, 0x0000 }, { 4186, 0x0018 }, - { 4188, 0x1000 }, { 4189, 0x0000 }, { 4189, 0x0000 }, { 4189, 0x0000 }, - /* 0x26800 */ - { 4189, 0x0000 }, { 4189, 0x1000 }, { 4190, 0x0000 }, { 4190, 0x0000 }, - { 4190, 0x0040 }, { 4191, 0x4000 }, { 4192, 0x4000 }, { 4193, 0x0000 }, - { 4193, 0x0500 }, { 4195, 0x0008 }, { 4196, 0x0000 }, { 4196, 0x0000 }, - { 4196, 0x0080 }, { 4197, 0x0000 }, { 4197, 0x0000 }, { 4197, 0x0000 }, - /* 0x26900 */ - { 4197, 0x4000 }, { 4198, 0x0002 }, { 4199, 0x0040 }, { 4200, 0x0200 }, - { 4201, 0x0000 }, { 4201, 0x0002 }, { 4202, 0x0000 }, { 4202, 0x0000 }, - { 4202, 0x0000 }, { 4202, 0x0000 }, { 4202, 0x0100 }, { 4203, 0x0020 }, - { 4204, 0x0000 }, { 4204, 0x0000 }, { 4204, 0x0000 }, { 4204, 0x0404 }, - /* 0x26a00 */ - { 4206, 0x0000 }, { 4206, 0x0000 }, { 4206, 0x6000 }, { 4208, 0x0010 }, - { 4209, 0x0004 }, { 4210, 0x0006 }, { 4212, 0x0000 }, { 4212, 0x0000 }, - { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, - { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, { 4212, 0x0000 }, - /* 0x26b00 */ - { 4212, 0x0420 }, { 4214, 0x0008 }, { 4215, 0x0100 }, { 4216, 0x0000 }, - { 4216, 0x0000 }, { 4216, 0x080f }, { 4221, 0x0000 }, { 4221, 0x0020 }, - { 4222, 0x0004 }, { 4223, 0x20c0 }, { 4226, 0x0000 }, { 4226, 0x0008 }, - { 4227, 0x0001 }, { 4228, 0x0000 }, { 4228, 0x0000 }, { 4228, 0x0080 }, - /* 0x26c00 */ - { 4229, 0x0000 }, { 4229, 0x0000 }, { 4229, 0x0002 }, { 4230, 0x0000 }, - { 4230, 0x0001 }, { 4231, 0x0000 }, { 4231, 0x0000 }, { 4231, 0xc000 }, - { 4233, 0x0007 }, { 4236, 0x0000 }, { 4236, 0x0010 }, { 4237, 0x2180 }, - { 4240, 0x0009 }, { 4242, 0x0002 }, { 4243, 0x0000 }, { 4243, 0x0000 }, - /* 0x26d00 */ - { 4243, 0x0000 }, { 4243, 0x0000 }, { 4243, 0x07fc }, { 4252, 0x0000 }, - { 4252, 0x0000 }, { 4252, 0x0002 }, { 4253, 0x0000 }, { 4253, 0x0000 }, - { 4253, 0x0000 }, { 4253, 0x0000 }, { 4253, 0x40ff }, { 4262, 0x0000 }, - { 4262, 0x0000 }, { 4262, 0x1000 }, { 4263, 0x0c00 }, { 4265, 0x0001 }, - /* 0x26e00 */ - { 4266, 0x00a1 }, { 4269, 0x0004 }, { 4270, 0x0000 }, { 4270, 0x0000 }, - { 4270, 0x003c }, { 4274, 0x0000 }, { 4274, 0x4000 }, { 4275, 0x0084 }, - { 4277, 0x0010 }, { 4278, 0x0200 }, { 4279, 0x0000 }, { 4279, 0x0000 }, - { 4279, 0x0000 }, { 4279, 0x00ff }, { 4287, 0x0000 }, { 4287, 0x0000 }, - /* 0x26f00 */ - { 4287, 0x0000 }, { 4287, 0x0000 }, { 4287, 0x0040 }, { 4288, 0x0000 }, - { 4288, 0x0000 }, { 4288, 0x0000 }, { 4288, 0x0000 }, { 4288, 0x0018 }, - { 4290, 0x0000 }, { 4290, 0x8000 }, { 4291, 0x0002 }, { 4292, 0x0000 }, - { 4292, 0x0000 }, { 4292, 0xc000 }, { 4294, 0x0000 }, { 4294, 0x0000 }, - /* 0x27000 */ - { 4294, 0x4000 }, { 4295, 0x0000 }, { 4295, 0x0000 }, { 4295, 0x0000 }, - { 4295, 0x0800 }, { 4296, 0x000c }, { 4298, 0x0000 }, { 4298, 0x0000 }, - { 4298, 0x0100 }, { 4299, 0x0000 }, { 4299, 0xe000 }, { 4302, 0x0000 }, - { 4302, 0x2000 }, { 4303, 0x0000 }, { 4303, 0x0000 }, { 4303, 0x0100 }, - /* 0x27100 */ - { 4304, 0x1200 }, { 4306, 0x0000 }, { 4306, 0x00c0 }, { 4308, 0x0000 }, - { 4308, 0x0000 }, { 4308, 0x0000 }, { 4308, 0x0030 }, { 4310, 0x0020 }, - { 4311, 0x0000 }, { 4311, 0x0000 }, { 4311, 0x0000 }, { 4311, 0x0000 }, - { 4311, 0x2000 }, { 4312, 0x0000 }, { 4312, 0x0000 }, { 4312, 0x0000 }, - /* 0x27200 */ - { 4312, 0x0000 }, { 4312, 0x0800 }, { 4313, 0x0000 }, { 4313, 0x0000 }, - { 4313, 0x0000 }, { 4313, 0x0000 }, { 4313, 0x0000 }, { 4313, 0x0000 }, - { 4313, 0x0821 }, { 4316, 0x0000 }, { 4316, 0x0000 }, { 4316, 0x0044 }, - { 4318, 0x0000 }, { 4318, 0x0000 }, { 4318, 0x0040 }, { 4319, 0x0000 }, - /* 0x27300 */ - { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, - { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, { 4319, 0x0000 }, - { 4319, 0x0000 }, { 4319, 0x0400 }, { 4320, 0x0000 }, { 4320, 0x0000 }, - { 4320, 0x0000 }, { 4320, 0x0000 }, { 4320, 0x0000 }, { 4320, 0x0000 }, - /* 0x27400 */ - { 4320, 0x0000 }, { 4320, 0x0000 }, { 4320, 0x0004 }, { 4321, 0x0000 }, - { 4321, 0x0000 }, { 4321, 0x0001 }, { 4322, 0x0000 }, { 4322, 0x0000 }, - { 4322, 0x0050 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, - { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, - /* 0x27500 */ - { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, - { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0000 }, { 4324, 0x0010 }, - { 4325, 0x0000 }, { 4325, 0x0000 }, { 4325, 0x0008 }, { 4326, 0x0000 }, - { 4326, 0x0000 }, { 4326, 0x0000 }, { 4326, 0x0011 }, { 4328, 0x6000 }, - /* 0x27600 */ - { 4330, 0x1080 }, { 4332, 0x0000 }, { 4332, 0x0000 }, { 4332, 0x0204 }, - { 4334, 0x0000 }, { 4334, 0x00e0 }, { 4337, 0x0000 }, { 4337, 0x0000 }, - { 4337, 0x0000 }, { 4337, 0x0010 }, { 4338, 0x0000 }, { 4338, 0x0000 }, - { 4338, 0x0000 }, { 4338, 0x0000 }, { 4338, 0x0000 }, { 4338, 0x0000 }, - /* 0x27700 */ - { 4338, 0x8000 }, { 4339, 0x0000 }, { 4339, 0x0000 }, { 4339, 0x0060 }, - { 4341, 0x0002 }, { 4342, 0x4000 }, { 4343, 0x0000 }, { 4343, 0x0000 }, - { 4343, 0x0030 }, { 4345, 0x0000 }, { 4345, 0x0000 }, { 4345, 0x0000 }, - { 4345, 0x1000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, - /* 0x27800 */ - { 4346, 0x0000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, { 4346, 0x0000 }, - { 4346, 0x0000 }, { 4346, 0x0100 }, { 4347, 0x0000 }, { 4347, 0x0001 }, - { 4348, 0x0000 }, { 4348, 0x2000 }, { 4349, 0x0000 }, { 4349, 0x0004 }, - { 4350, 0x0100 }, { 4351, 0x0000 }, { 4351, 0x0000 }, { 4351, 0x0000 }, - /* 0x27900 */ - { 4351, 0x0000 }, { 4351, 0x0000 }, { 4351, 0x0010 }, { 4352, 0x0000 }, - { 4352, 0x0000 }, { 4352, 0x0000 }, { 4352, 0x0080 }, { 4353, 0x0400 }, - { 4354, 0x0000 }, { 4354, 0x0000 }, { 4354, 0x0001 }, { 4355, 0x0000 }, - { 4355, 0x0000 }, { 4355, 0x2000 }, { 4356, 0x0000 }, { 4356, 0x2000 }, - /* 0x27a00 */ - { 4357, 0x4400 }, { 4359, 0x0000 }, { 4359, 0x0000 }, { 4359, 0x4000 }, - { 4360, 0x0000 }, { 4360, 0x0208 }, { 4362, 0x0000 }, { 4362, 0x0200 }, - { 4363, 0x0010 }, { 4364, 0x0000 }, { 4364, 0x0000 }, { 4364, 0x6000 }, - { 4366, 0x0000 }, { 4366, 0x0000 }, { 4366, 0x0000 }, { 4366, 0x0010 }, - /* 0x27b00 */ - { 4367, 0x0840 }, { 4369, 0x0100 }, { 4370, 0x0000 }, { 4370, 0x0700 }, - { 4373, 0x0100 }, { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, - { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, - { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0000 }, { 4374, 0x0010 }, - /* 0x27c00 */ - { 4375, 0x0000 }, { 4375, 0x0004 }, { 4376, 0x0000 }, { 4376, 0x0000 }, - { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, - { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, - { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x0000 }, - /* 0x27d00 */ - { 4376, 0x0000 }, { 4376, 0x0000 }, { 4376, 0x8000 }, { 4377, 0x0000 }, - { 4377, 0x0000 }, { 4377, 0x0018 }, { 4379, 0x0040 }, { 4380, 0x0008 }, - { 4381, 0x8010 }, { 4383, 0x0100 }, { 4384, 0x0000 }, { 4384, 0x2000 }, - { 4385, 0x0000 }, { 4385, 0x1000 }, { 4386, 0x0000 }, { 4386, 0x0000 }, - /* 0x27e00 */ - { 4386, 0x0000 }, { 4386, 0x0000 }, { 4386, 0x0000 }, { 4386, 0x0000 }, - { 4386, 0xa000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, - { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, - { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x0000 }, - /* 0x27f00 */ - { 4388, 0x0000 }, { 4388, 0x0000 }, { 4388, 0x4000 }, { 4389, 0x0000 }, - { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, - { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, - { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0000 }, { 4389, 0x0200 }, - /* 0x28000 */ - { 4390, 0x0204 }, { 4392, 0x4000 }, { 4393, 0x0018 }, { 4395, 0x0000 }, - { 4395, 0x0100 }, { 4396, 0x0000 }, { 4396, 0x0000 }, { 4396, 0x0000 }, - { 4396, 0x0008 }, { 4397, 0x0001 }, { 4398, 0x0000 }, { 4398, 0x6000 }, - { 4400, 0x0000 }, { 4400, 0x0000 }, { 4400, 0x0300 }, { 4402, 0x0010 }, - /* 0x28100 */ - { 4403, 0x0000 }, { 4403, 0x0000 }, { 4403, 0x4000 }, { 4404, 0x0000 }, - { 4404, 0x8000 }, { 4405, 0x2000 }, { 4406, 0x8000 }, { 4407, 0x0000 }, - { 4407, 0x0200 }, { 4408, 0x0000 }, { 4408, 0x8000 }, { 4409, 0x1000 }, - { 4410, 0x0000 }, { 4410, 0x0000 }, { 4410, 0x0000 }, { 4410, 0x0000 }, - /* 0x28200 */ - { 4410, 0x0080 }, { 4411, 0x0500 }, { 4413, 0x0000 }, { 4413, 0x0000 }, - { 4413, 0x0000 }, { 4413, 0x0040 }, { 4414, 0x0000 }, { 4414, 0x1000 }, - { 4415, 0x0000 }, { 4415, 0x0800 }, { 4416, 0x0000 }, { 4416, 0x0000 }, - { 4416, 0x2000 }, { 4417, 0x0000 }, { 4417, 0x0004 }, { 4418, 0x0000 }, - /* 0x28300 */ - { 4418, 0x0040 }, { 4419, 0x0100 }, { 4420, 0x8000 }, { 4421, 0x0400 }, - { 4422, 0x0000 }, { 4422, 0x0000 }, { 4422, 0x2020 }, { 4424, 0x2000 }, - { 4425, 0x0400 }, { 4426, 0x0000 }, { 4426, 0x0000 }, { 4426, 0x0000 }, - { 4426, 0x0000 }, { 4426, 0x0000 }, { 4426, 0x0000 }, { 4426, 0x0000 }, - /* 0x28400 */ - { 4426, 0x0000 }, { 4426, 0x0004 }, { 4427, 0x0000 }, { 4427, 0x0000 }, - { 4427, 0x0000 }, { 4427, 0x0000 }, { 4427, 0x1100 }, { 4429, 0x0008 }, - { 4430, 0x0004 }, { 4431, 0x0000 }, { 4431, 0x0000 }, { 4431, 0x0000 }, - { 4431, 0x0000 }, { 4431, 0x0000 }, { 4431, 0x0000 }, { 4431, 0x0000 }, - /* 0x28500 */ - { 4431, 0x0002 }, { 4432, 0x0000 }, { 4432, 0x0000 }, { 4432, 0x3000 }, - { 4434, 0x0000 }, { 4434, 0x0000 }, { 4434, 0x1000 }, { 4435, 0x0000 }, - { 4435, 0x0000 }, { 4435, 0x0000 }, { 4435, 0x0000 }, { 4435, 0x0000 }, - { 4435, 0x0000 }, { 4435, 0x0000 }, { 4435, 0x0100 }, { 4436, 0x0010 }, - /* 0x28600 */ - { 4437, 0x0801 }, { 4439, 0x0000 }, { 4439, 0x0020 }, { 4440, 0x0800 }, - { 4441, 0x0000 }, { 4441, 0x0000 }, { 4441, 0x0000 }, { 4441, 0x0000 }, - { 4441, 0x0000 }, { 4441, 0x0000 }, { 4441, 0x0c00 }, { 4443, 0x1000 }, - { 4444, 0x0000 }, { 4444, 0x0100 }, { 4445, 0x0040 }, { 4446, 0x0000 }, - /* 0x28700 */ - { 4446, 0x0000 }, { 4446, 0x0008 }, { 4447, 0x0000 }, { 4447, 0x0000 }, - { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, - { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, - { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, { 4447, 0x0000 }, - /* 0x28800 */ - { 4447, 0x0010 }, { 4448, 0x0000 }, { 4448, 0x0800 }, { 4449, 0x0000 }, - { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, - { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, - { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, - /* 0x28900 */ - { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0000 }, { 4449, 0x0008 }, - { 4450, 0x0300 }, { 4452, 0x0040 }, { 4453, 0x1110 }, { 4456, 0x4000 }, - { 4457, 0x0200 }, { 4458, 0x0000 }, { 4458, 0x0d00 }, { 4461, 0x1100 }, - { 4463, 0x0001 }, { 4464, 0x5000 }, { 4466, 0x0192 }, { 4470, 0x1e00 }, - /* 0x28a00 */ - { 4474, 0x8000 }, { 4475, 0x0040 }, { 4476, 0x0220 }, { 4478, 0x0040 }, - { 4479, 0x0ff0 }, { 4487, 0x0600 }, { 4489, 0x0000 }, { 4489, 0x0000 }, - { 4489, 0x000e }, { 4492, 0x1c00 }, { 4495, 0x0000 }, { 4495, 0x0000 }, - { 4495, 0x5841 }, { 4500, 0xc000 }, { 4502, 0x002f }, { 4507, 0x1000 }, - /* 0x28b00 */ - { 4508, 0x1000 }, { 4509, 0x0008 }, { 4510, 0xb806 }, { 4516, 0x0000 }, - { 4516, 0x5040 }, { 4519, 0x0001 }, { 4520, 0x1078 }, { 4525, 0x0000 }, - { 4525, 0x8000 }, { 4526, 0x3200 }, { 4529, 0x0000 }, { 4529, 0x0000 }, - { 4529, 0x0024 }, { 4531, 0x0690 }, { 4535, 0x1f80 }, { 4541, 0x8020 }, - /* 0x28c00 */ - { 4543, 0x0208 }, { 4545, 0x3000 }, { 4547, 0x0848 }, { 4550, 0x0a01 }, - { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, - { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, { 4553, 0x0000 }, - { 4553, 0x2400 }, { 4555, 0x0004 }, { 4556, 0x0000 }, { 4556, 0x0000 }, - /* 0x28d00 */ - { 4556, 0x0000 }, { 4556, 0x0000 }, { 4556, 0x0000 }, { 4556, 0x0010 }, - { 4557, 0x0000 }, { 4557, 0x0000 }, { 4557, 0x0000 }, { 4557, 0x0000 }, - { 4557, 0x0000 }, { 4557, 0x0200 }, { 4558, 0x0000 }, { 4558, 0x0000 }, - { 4558, 0x0000 }, { 4558, 0x0000 }, { 4558, 0x0000 }, { 4558, 0x0000 }, - /* 0x28e00 */ - { 4558, 0x8000 }, { 4559, 0x0000 }, { 4559, 0x0000 }, { 4559, 0x0240 }, - { 4561, 0x0000 }, { 4561, 0x0000 }, { 4561, 0x0060 }, { 4563, 0x0000 }, - { 4563, 0x0000 }, { 4563, 0x0080 }, { 4564, 0x1000 }, { 4565, 0x000c }, - { 4567, 0x0000 }, { 4567, 0x0200 }, { 4568, 0x0080 }, { 4569, 0x0000 }, - /* 0x28f00 */ - { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, - { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, - { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, { 4569, 0x0000 }, - { 4569, 0x0020 }, { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, - /* 0x29000 */ - { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, - { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, { 4570, 0x0000 }, - { 4570, 0x0900 }, { 4572, 0x0008 }, { 4573, 0x8000 }, { 4574, 0x0003 }, - { 4576, 0x0001 }, { 4577, 0x0000 }, { 4577, 0x3030 }, { 4581, 0x0000 }, - /* 0x29100 */ - { 4581, 0x2000 }, { 4582, 0x0001 }, { 4583, 0x0000 }, { 4583, 0x1000 }, - { 4584, 0x2000 }, { 4585, 0x4800 }, { 4587, 0x0000 }, { 4587, 0x0001 }, - { 4588, 0x0000 }, { 4588, 0x1000 }, { 4589, 0x0100 }, { 4590, 0x0000 }, - { 4590, 0x0000 }, { 4590, 0x0020 }, { 4591, 0x0800 }, -}; -static const Summary16 hkscs1999_uni2indx_page294[32] = { - /* 0x29400 */ - { 4592, 0x0000 }, { 4592, 0x2000 }, { 4593, 0x0001 }, { 4594, 0x8008 }, - { 4596, 0x0100 }, { 4597, 0x0000 }, { 4597, 0x0000 }, { 4597, 0x0000 }, - { 4597, 0x0000 }, { 4597, 0x0000 }, { 4597, 0x0000 }, { 4597, 0x0000 }, - { 4597, 0x0000 }, { 4597, 0x0601 }, { 4600, 0x00a0 }, { 4602, 0x0000 }, - /* 0x29500 */ - { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, - { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, { 4602, 0x0000 }, - { 4602, 0x0000 }, { 4602, 0x4000 }, { 4603, 0x0000 }, { 4603, 0x0101 }, - { 4605, 0x0000 }, { 4605, 0x0080 }, { 4606, 0x0200 }, { 4607, 0x0010 }, -}; -static const Summary16 hkscs1999_uni2indx_page297[251] = { - /* 0x29700 */ - { 4608, 0x0000 }, { 4608, 0x0000 }, { 4608, 0x0001 }, { 4609, 0x0004 }, - { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, - { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, { 4610, 0x0000 }, - { 4610, 0x0000 }, { 4610, 0x0010 }, { 4611, 0x0000 }, { 4611, 0x0000 }, - /* 0x29800 */ - { 4611, 0x0000 }, { 4611, 0x0001 }, { 4612, 0x0000 }, { 4612, 0x0000 }, - { 4612, 0x0000 }, { 4612, 0x0080 }, { 4613, 0x0000 }, { 4613, 0x0000 }, - { 4613, 0x0000 }, { 4613, 0x0000 }, { 4613, 0x0010 }, { 4614, 0x0000 }, - { 4614, 0x0000 }, { 4614, 0x0002 }, { 4615, 0x0400 }, { 4616, 0x0002 }, - /* 0x29900 */ - { 4617, 0x0028 }, { 4619, 0x0000 }, { 4619, 0x8000 }, { 4620, 0x0000 }, - { 4620, 0x0300 }, { 4622, 0x2000 }, { 4623, 0x0400 }, { 4624, 0x0000 }, - { 4624, 0x0000 }, { 4624, 0x2000 }, { 4625, 0x0000 }, { 4625, 0x0000 }, - { 4625, 0x0208 }, { 4627, 0x0000 }, { 4627, 0x0000 }, { 4627, 0x0000 }, - /* 0x29a00 */ - { 4627, 0x0000 }, { 4627, 0x0000 }, { 4627, 0x0100 }, { 4628, 0x0000 }, - { 4628, 0x2000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, - { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, - { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, { 4629, 0x0000 }, - /* 0x29b00 */ - { 4629, 0x4020 }, { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, - { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, - { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, { 4631, 0x0000 }, - { 4631, 0x0000 }, { 4631, 0x0020 }, { 4632, 0x0000 }, { 4632, 0x0000 }, - /* 0x29c00 */ - { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, - { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x0000 }, - { 4632, 0x0000 }, { 4632, 0x0000 }, { 4632, 0x2000 }, { 4633, 0x0000 }, - { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x0000 }, - /* 0x29d00 */ - { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x0000 }, { 4633, 0x4000 }, - { 4634, 0x0000 }, { 4634, 0x0400 }, { 4635, 0x0000 }, { 4635, 0x1000 }, - { 4636, 0x0000 }, { 4636, 0x0900 }, { 4638, 0x0000 }, { 4638, 0x0000 }, - { 4638, 0x0000 }, { 4638, 0x0000 }, { 4638, 0x0000 }, { 4638, 0x0040 }, - /* 0x29e00 */ - { 4639, 0x0040 }, { 4640, 0x0000 }, { 4640, 0x2000 }, { 4641, 0x0000 }, - { 4641, 0x0000 }, { 4641, 0x0000 }, { 4641, 0x0100 }, { 4642, 0x0000 }, - { 4642, 0x0000 }, { 4642, 0x0000 }, { 4642, 0x1000 }, { 4643, 0x0000 }, - { 4643, 0x0008 }, { 4644, 0x0000 }, { 4644, 0x0000 }, { 4644, 0x0100 }, - /* 0x29f00 */ - { 4645, 0x0000 }, { 4645, 0x0000 }, { 4645, 0x0008 }, { 4646, 0x0001 }, - { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0000 }, - { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0000 }, { 4647, 0x0080 }, - { 4648, 0x0000 }, { 4648, 0x4000 }, { 4649, 0x0000 }, { 4649, 0x0000 }, - /* 0x2a000 */ - { 4649, 0x0000 }, { 4649, 0x0010 }, { 4650, 0x0000 }, { 4650, 0x0000 }, - { 4650, 0x0000 }, { 4650, 0x0000 }, { 4650, 0x0000 }, { 4650, 0x0000 }, - { 4650, 0x0080 }, { 4651, 0x0000 }, { 4651, 0x0000 }, { 4651, 0x0200 }, - { 4652, 0x0000 }, { 4652, 0x0000 }, { 4652, 0x2002 }, { 4654, 0x4108 }, - /* 0x2a100 */ - { 4657, 0x0000 }, { 4657, 0x0000 }, { 4657, 0x0008 }, { 4658, 0x0018 }, - { 4660, 0x0000 }, { 4660, 0x0001 }, { 4661, 0x0000 }, { 4661, 0x0000 }, - { 4661, 0x0000 }, { 4661, 0x000c }, { 4663, 0x0800 }, { 4664, 0x0010 }, - { 4665, 0x0000 }, { 4665, 0x8000 }, { 4666, 0x0000 }, { 4666, 0x0020 }, - /* 0x2a200 */ - { 4667, 0x0000 }, { 4667, 0x0000 }, { 4667, 0x0001 }, { 4668, 0x0008 }, - { 4669, 0x0000 }, { 4669, 0x0000 }, { 4669, 0x0000 }, { 4669, 0x0000 }, - { 4669, 0x0000 }, { 4669, 0x8008 }, { 4671, 0x0000 }, { 4671, 0x2054 }, - { 4675, 0x0000 }, { 4675, 0x8000 }, { 4676, 0x0000 }, { 4676, 0x8000 }, - /* 0x2a300 */ - { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, - { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0000 }, - { 4677, 0x0000 }, { 4677, 0x0000 }, { 4677, 0x0200 }, { 4678, 0x0000 }, - { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0000 }, - /* 0x2a400 */ - { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0000 }, { 4678, 0x0010 }, - { 4679, 0x0000 }, { 4679, 0x0800 }, { 4680, 0x0000 }, { 4680, 0x0000 }, - { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, - { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, - /* 0x2a500 */ - { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, - { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, - { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, { 4680, 0x0000 }, - { 4680, 0x0840 }, { 4682, 0x0000 }, { 4682, 0x0000 }, { 4682, 0x0000 }, - /* 0x2a600 */ - { 4682, 0x0002 }, { 4683, 0x0000 }, { 4683, 0x0000 }, { 4683, 0x0004 }, - { 4684, 0x0400 }, { 4685, 0x0800 }, { 4686, 0x0000 }, { 4686, 0x0000 }, - { 4686, 0x0000 }, { 4686, 0x0000 }, { 4686, 0x0200 }, -}; -static const Summary16 hkscs1999_uni2indx_page2f8[30] = { - /* 0x2f800 */ - { 4687, 0x0000 }, { 4687, 0x0000 }, { 4687, 0x0020 }, { 4688, 0x0800 }, - { 4689, 0x0001 }, { 4690, 0x0000 }, { 4690, 0x0000 }, { 4690, 0x0100 }, - { 4691, 0x0000 }, { 4691, 0x0010 }, { 4692, 0x0040 }, { 4693, 0x0000 }, - { 4693, 0x2000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, - /* 0x2f900 */ - { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, - { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, { 4694, 0x0000 }, - { 4694, 0x0000 }, { 4694, 0x0010 }, { 4695, 0x0000 }, { 4695, 0x1004 }, - { 4697, 0x0000 }, { 4697, 0x0010 }, -}; - -static int -hkscs1999_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x02d0) - summary = &hkscs1999_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x0400 && wc < 0x0460) - summary = &hkscs1999_uni2indx_page04[(wc>>4)-0x040]; - else if (wc >= 0x1e00 && wc < 0x1ed0) - summary = &hkscs1999_uni2indx_page1e[(wc>>4)-0x1e0]; - else if (wc >= 0x2100 && wc < 0x21f0) - summary = &hkscs1999_uni2indx_page21[(wc>>4)-0x210]; - else if (wc >= 0x2300 && wc < 0x2580) - summary = &hkscs1999_uni2indx_page23[(wc>>4)-0x230]; - else if (wc >= 0x2700 && wc < 0x2740) - summary = &hkscs1999_uni2indx_page27[(wc>>4)-0x270]; - else if (wc >= 0x2e00 && wc < 0x3240) - summary = &hkscs1999_uni2indx_page2e[(wc>>4)-0x2e0]; - else if (wc >= 0x3400 && wc < 0x9fc0) - summary = &hkscs1999_uni2indx_page34[(wc>>4)-0x340]; - else if (wc >= 0xf900 && wc < 0xf910) - summary = &hkscs1999_uni2indx_pagef9[(wc>>4)-0xf90]; - else if (wc >= 0xff00 && wc < 0xfff0) - summary = &hkscs1999_uni2indx_pageff[(wc>>4)-0xff0]; - else if (wc >= 0x20000 && wc < 0x291f0) - summary = &hkscs1999_uni2indx_page200[(wc>>4)-0x2000]; - else if (wc >= 0x29400 && wc < 0x29600) - summary = &hkscs1999_uni2indx_page294[(wc>>4)-0x2940]; - else if (wc >= 0x29700 && wc < 0x2a6b0) - summary = &hkscs1999_uni2indx_page297[(wc>>4)-0x2970]; - else if (wc >= 0x2f800 && wc < 0x2f9e0) - summary = &hkscs1999_uni2indx_page2f8[(wc>>4)-0x2f80]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = hkscs1999_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/hkscs2001.h b/jni/parted/libiconv/lib/hkscs2001.h deleted file mode 100755 index 45351ab..0000000 --- a/jni/parted/libiconv/lib/hkscs2001.h +++ /dev/null @@ -1,682 +0,0 @@ -/* - * Copyright (C) 1999-2006, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * HKSCS:2001 - */ - -static const unsigned short hkscs2001_2uni_page8c[123] = { - /* 0x8c */ - 0x0a3b, 0x1cfe, 0x5273, 0x37a6, 0x02c9, 0x2d8f, 0x414e, 0x1d77, - 0x12f5, 0x0620, 0x45cd, 0x0059, 0x4830, 0x1622, 0x4f32, 0x30a7, - 0x31f6, 0x1e91, 0x1819, 0x20ba, 0x3e81, 0x5307, 0x018b, 0x3a80, - 0x0610, 0x24e4, 0x2102, 0x0bae, 0x4d0f, 0x0409, 0x1a63, 0x54ba, - 0x0523, 0x2c0f, 0x38fd, 0x252a, 0x5147, 0x4fea, 0x3455, 0x1d4d, - 0x0c24, 0x3c7e, 0x33f4, 0x22d9, 0x4ee3, 0x37a7, 0x23dd, 0x08a3, - 0x09f0, 0x0abc, 0x082f, 0x0917, 0x37a8, 0x0d34, 0x288b, 0x0f92, - 0x0fd0, 0x3bb6, 0x1492, 0x1499, 0x15c2, 0x3d12, 0x178b, 0x3ff9, - 0x1919, 0x1a43, 0x4063, 0x1bff, 0x38fd, 0x1f00, 0x4205, 0x208c, - 0x03db, 0x4413, 0x1115, 0x21b9, 0x2e83, 0x47a4, 0x4695, 0x2593, - 0x26ec, 0x27c3, 0x296c, 0x2af8, 0x2b97, 0x37a9, 0x2d90, 0x37aa, - 0x2fb9, 0x37ab, 0x30cf, 0x2b5f, 0x36e0, 0x3221, 0x37ac, 0x50b9, - 0x393f, 0x0471, 0x05a2, 0x101a, 0x38fd, 0x38fd, 0x38fd, 0x3568, - 0x186b, 0x0576, 0x0e3d, 0x38fd, 0x2bd6, 0x437b, 0x2abf, 0x4c0d, - 0x0781, 0x4a74, 0x137b, 0x4915, 0x4bbe, 0x37ad, 0x37ae, 0x1196, - 0x37af, 0x38fd, 0x295b, -}; - -static const ucs4_t hkscs2001_2uni_upages[85] = { - 0x03500, 0x03c00, 0x03d00, 0x03e00, 0x04000, 0x04200, 0x04b00, 0x04c00, - 0x04e00, 0x04f00, 0x05000, 0x05100, 0x05300, 0x05400, 0x05700, 0x05800, - 0x05a00, 0x05b00, 0x05c00, 0x05d00, 0x05e00, 0x05f00, 0x06100, 0x06500, - 0x06700, 0x06900, 0x06a00, 0x06c00, 0x06d00, 0x07000, 0x07100, 0x07200, - 0x07300, 0x07400, 0x07600, 0x07700, 0x07800, 0x07a00, 0x07b00, 0x07c00, - 0x07d00, 0x07e00, 0x08200, 0x08500, 0x08600, 0x08800, 0x08b00, 0x08e00, - 0x08f00, 0x09100, 0x09200, 0x09300, 0x09700, 0x09800, 0x09900, 0x09f00, - 0x0ff00, 0x21400, 0x21900, 0x21d00, 0x22000, 0x22700, 0x23200, 0x23300, - 0x23c00, 0x24100, 0x24500, 0x24900, 0x24a00, 0x25100, 0x25600, 0x25c00, - 0x25d00, 0x26b00, 0x26d00, 0x26f00, 0x27100, 0x28700, 0x28900, 0x28a00, - 0x28d00, 0x29900, 0x29c00, 0x2a100, 0x2a200, -}; - -static int -hkscs2001_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if (c1 == 0x8c) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 2007) - swc = hkscs2001_2uni_page8c[i-1884], - wc = hkscs2001_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short hkscs2001_2charset[116] = { - 0x8c4b, 0x8c56, 0x8c44, 0x8caa, 0x8c5d, 0x8cc3, 0x8c60, 0x8ccb, - 0x8cc4, 0x8c58, 0x8c49, 0x8cd2, 0x8c72, 0x8c6f, 0x8c73, 0x8c70, - 0x8c40, 0x8c71, 0x8c5b, 0x8c68, 0x8c75, 0x8ccc, 0x8c77, 0x8c78, - 0x8cc5, 0x8cac, 0x8cd9, 0x8c48, 0x8cd4, 0x8c7a, 0x8c7b, 0x8c7c, - 0x8c4d, 0x8c7e, 0x8c52, 0x8cca, 0x8ca2, 0x8ca3, 0x8c5e, 0x8ca5, - 0x8c41, 0x8c67, 0x8c47, 0x8c51, 0x8ca7, 0x8ca9, 0x8c53, 0x8c5a, - 0x8cad, 0x8c6b, 0x8c6e, 0x8c59, 0x8c63, 0x8cb1, 0x8cb2, 0x8cb3, - 0x8c76, 0x8cdc, 0x8cb4, 0x8cd0, 0x8cb5, 0x8cbd, 0x8cb6, 0x8cce, - 0x8c61, 0x8c45, 0x8cb8, 0x8cae, 0x8cba, 0x8c4f, 0x8cbc, 0x8c50, - 0x8cbf, 0x8c6a, 0x8c66, 0x8cc9, 0x8cbe, 0x8c43, 0x8c6d, 0x8c74, - 0x8cb7, 0x8cb9, 0x8cbb, 0x8cc0, 0x8cd7, 0x8cd8, 0x8cda, 0x8cc2, - 0x8c57, 0x8c79, 0x8c69, 0x8c7d, 0x8c54, 0x8ca1, 0x8ca4, 0x8c46, - 0x8ca8, 0x8ccf, 0x8cab, 0x8c4a, 0x8cb0, 0x8caf, 0x8c4c, 0x8cd5, - 0x8cd3, 0x8cd6, 0x8cd1, 0x8c5c, 0x8c6c, 0x8c4e, 0x8c65, 0x8cc1, - 0x8c64, 0x8c42, 0x8c55, 0x8c5f, -}; - -static const Summary16 hkscs2001_uni2indx_page35[6] = { - /* 0x3500 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0200 }, -}; -static const Summary16 hkscs2001_uni2indx_page3c[46] = { - /* 0x3c00 */ - { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, - { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, - { 1, 0x0800 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - /* 0x3d00 */ - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0200 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - /* 0x3e00 */ - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0800 }, -}; -static const Summary16 hkscs2001_uni2indx_page40[8] = { - /* 0x4000 */ - { 4, 0x0200 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, - { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0002 }, -}; -static const Summary16 hkscs2001_uni2indx_page42[11] = { - /* 0x4200 */ - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0008 }, { 7, 0x0000 }, - { 7, 0x0000 }, { 7, 0x0000 }, { 7, 0x0000 }, { 7, 0x0040 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0004 }, -}; -static const Summary16 hkscs2001_uni2indx_page4b[25] = { - /* 0x4b00 */ - { 9, 0x0000 }, { 9, 0x0001 }, { 10, 0x0001 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - /* 0x4c00 */ - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0002 }, -}; -static const Summary16 hkscs2001_uni2indx_page4e[59] = { - /* 0x4e00 */ - { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x8000 }, { 13, 0x0000 }, - { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, - { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0008 }, { 14, 0x0000 }, - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, - /* 0x4f00 */ - { 14, 0x0000 }, { 14, 0x0080 }, { 15, 0x0000 }, { 15, 0x0000 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0001 }, - /* 0x5000 */ - { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0800 }, - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x1000 }, - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, - /* 0x5100 */ - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x4000 }, -}; -static const Summary16 hkscs2001_uni2indx_page53[20] = { - /* 0x5300 */ - { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0010 }, { 20, 0x0000 }, - { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, - { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, - { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, - /* 0x5400 */ - { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0010 }, -}; -static const Summary16 hkscs2001_uni2indx_page57[30] = { - /* 0x5700 */ - { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x2000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - /* 0x5800 */ - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0004 }, { 23, 0x0000 }, { 23, 0x0000 }, - { 23, 0x0000 }, { 23, 0x0001 }, -}; -static const Summary16 hkscs2001_uni2indx_page5a[93] = { - /* 0x5a00 */ - { 24, 0x0000 }, { 24, 0x0400 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - /* 0x5b00 */ - { 25, 0x0000 }, { 25, 0x0020 }, { 26, 0x0000 }, { 26, 0x0000 }, - { 26, 0x0000 }, { 26, 0x0000 }, { 26, 0x0000 }, { 26, 0x0000 }, - { 26, 0x0000 }, { 26, 0x0040 }, { 27, 0x0000 }, { 27, 0x0000 }, - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, - /* 0x5c00 */ - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0020 }, - /* 0x5d00 */ - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0800 }, - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, - /* 0x5e00 */ - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, - { 29, 0x0000 }, { 29, 0x0204 }, { 31, 0x0000 }, { 31, 0x0000 }, - { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, - /* 0x5f00 */ - { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, - { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, - { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, - { 31, 0x0004 }, -}; -static const Summary16 hkscs2001_uni2indx_page61[3] = { - /* 0x6100 */ - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0004 }, -}; -static const Summary16 hkscs2001_uni2indx_page65[9] = { - /* 0x6500 */ - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x0800 }, -}; -static const Summary16 hkscs2001_uni2indx_page67[7] = { - /* 0x6700 */ - { 34, 0x0000 }, { 34, 0x0200 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0800 }, -}; -static const Summary16 hkscs2001_uni2indx_page69[23] = { - /* 0x6900 */ - { 36, 0x0000 }, { 36, 0x0200 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - /* 0x6a00 */ - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0008 }, { 38, 0x0000 }, { 38, 0x0008 }, -}; -static const Summary16 hkscs2001_uni2indx_page6c[32] = { - /* 0x6c00 */ - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x8000 }, - /* 0x6d00 */ - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x4000 }, -}; -static const Summary16 hkscs2001_uni2indx_page70[76] = { - /* 0x7000 */ - { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, - { 41, 0x2000 }, { 42, 0x0000 }, { 42, 0x0000 }, { 42, 0x0080 }, - { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, - { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, - /* 0x7100 */ - { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, - { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, { 43, 0x0000 }, - { 43, 0x0000 }, { 43, 0x0002 }, { 44, 0x0000 }, { 44, 0x0000 }, - { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, - /* 0x7200 */ - { 44, 0x0001 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, - { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, - { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, - { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, - /* 0x7300 */ - { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, - { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, { 45, 0x0000 }, - { 45, 0x1000 }, { 46, 0x0000 }, { 46, 0x0000 }, { 46, 0x0400 }, - { 47, 0x0000 }, { 47, 0x0000 }, { 47, 0x0000 }, { 47, 0x0000 }, - /* 0x7400 */ - { 47, 0x0004 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, - { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, - { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0200 }, -}; -static const Summary16 hkscs2001_uni2indx_page76[47] = { - /* 0x7600 */ - { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, - { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, - { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, - { 49, 0x0000 }, { 49, 0x0200 }, { 50, 0x0000 }, { 50, 0x0000 }, - /* 0x7700 */ - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x2000 }, { 51, 0x0000 }, { 51, 0x0000 }, - /* 0x7800 */ - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0010 }, -}; -static const Summary16 hkscs2001_uni2indx_page7a[71] = { - /* 0x7a00 */ - { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0400 }, { 53, 0x0000 }, - { 53, 0x0000 }, { 53, 0x0000 }, { 53, 0x0000 }, { 53, 0x0000 }, - { 53, 0x0000 }, { 53, 0x0008 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - /* 0x7b00 */ - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x1000 }, { 55, 0x0000 }, - /* 0x7c00 */ - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - { 55, 0x0008 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, - /* 0x7d00 */ - { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, - { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, - { 56, 0x0800 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - /* 0x7e00 */ - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0x0800 }, { 58, 0x1000 }, -}; -static const Summary16 hkscs2001_uni2indx_page82[16] = { - /* 0x8200 */ - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x8000 }, - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0100 }, -}; -static const Summary16 hkscs2001_uni2indx_page85[17] = { - /* 0x8500 */ - { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, - { 61, 0x0000 }, { 61, 0x8000 }, { 62, 0x0000 }, { 62, 0x0000 }, - { 62, 0x0000 }, { 62, 0x0080 }, { 63, 0x0000 }, { 63, 0x0000 }, - { 63, 0x0000 }, { 63, 0x0040 }, { 64, 0x0000 }, { 64, 0x0000 }, - /* 0x8600 */ - { 64, 0x8000 }, -}; -static const Summary16 hkscs2001_uni2indx_page88[10] = { - /* 0x8800 */ - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, - { 65, 0x8000 }, { 66, 0x0001 }, -}; -static const Summary16 hkscs2001_uni2indx_page8b[9] = { - /* 0x8b00 */ - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, - { 67, 0x0008 }, -}; -static const Summary16 hkscs2001_uni2indx_page8e[29] = { - /* 0x8e00 */ - { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, - { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, - { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0200 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, - /* 0x8f00 */ - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0080 }, { 70, 0x0000 }, - { 70, 0x8000 }, -}; -static const Summary16 hkscs2001_uni2indx_page91[48] = { - /* 0x9100 */ - { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, - { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, - { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, - { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0000 }, { 71, 0x0040 }, - /* 0x9200 */ - { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0002 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - /* 0x9300 */ - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0010 }, -}; -static const Summary16 hkscs2001_uni2indx_page97[47] = { - /* 0x9700 */ - { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, - { 74, 0x0000 }, { 74, 0x0020 }, { 75, 0x0000 }, { 75, 0x0000 }, - { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, - { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, - /* 0x9800 */ - { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, - { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0100 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - /* 0x9900 */ - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0001 }, -}; -static const Summary16 hkscs2001_uni2indx_page9f[11] = { - /* 0x9f00 */ - { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, - { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0000 }, - { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0xffc0 }, -}; -static const Summary16 hkscs2001_uni2indx_page214[4] = { - /* 0x21400 */ - { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x8000 }, -}; -static const Summary16 hkscs2001_uni2indx_page219[9] = { - /* 0x21900 */ - { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, - { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, - { 88, 0x0001 }, -}; -static const Summary16 hkscs2001_uni2indx_page21d[12] = { - /* 0x21d00 */ - { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, - { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, - { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0040 }, -}; -static const Summary16 hkscs2001_uni2indx_page220[8] = { - /* 0x22000 */ - { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, - { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x4000 }, -}; -static const Summary16 hkscs2001_uni2indx_page227[2] = { - /* 0x22700 */ - { 91, 0x0000 }, { 91, 0x0004 }, -}; -static const Summary16 hkscs2001_uni2indx_page232[32] = { - /* 0x23200 */ - { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, - { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, - { 92, 0x0002 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - /* 0x23300 */ - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0200 }, -}; -static const Summary16 hkscs2001_uni2indx_page23c[7] = { - /* 0x23c00 */ - { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0000 }, - { 94, 0x0000 }, { 94, 0x0000 }, { 94, 0x0008 }, -}; -static const Summary16 hkscs2001_uni2indx_page241[5] = { - /* 0x24100 */ - { 95, 0x0000 }, { 95, 0x0000 }, { 95, 0x0000 }, { 95, 0x0000 }, - { 95, 0x4000 }, -}; -static const Summary16 hkscs2001_uni2indx_page245[1] = { - /* 0x24500 */ - { 96, 0x0020 }, -}; -static const Summary16 hkscs2001_uni2indx_page249[18] = { - /* 0x24900 */ - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0800 }, - { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, - { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, - /* 0x24a00 */ - { 98, 0x0000 }, { 98, 0x0008 }, -}; -static const Summary16 hkscs2001_uni2indx_page251[13] = { - /* 0x25100 */ - { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, - { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, - { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, { 99, 0x0000 }, - { 99, 0x2000 }, -}; -static const Summary16 hkscs2001_uni2indx_page256[10] = { - /* 0x25600 */ - { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, - { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, - { 100, 0x0000 }, { 100, 0x0020 }, -}; -static const Summary16 hkscs2001_uni2indx_page25c[20] = { - /* 0x25c00 */ - { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, - { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, - { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0010 }, { 102, 0x0000 }, - { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, - /* 0x25d00 */ - { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0001 }, -}; -static const Summary16 hkscs2001_uni2indx_page26b[2] = { - /* 0x26b00 */ - { 103, 0x0000 }, { 103, 0x0020 }, -}; -static const Summary16 hkscs2001_uni2indx_page26d[8] = { - /* 0x26d00 */ - { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, - { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0010 }, -}; -static const Summary16 hkscs2001_uni2indx_page26f[12] = { - /* 0x26f00 */ - { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, - { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, - { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x4000 }, -}; -static const Summary16 hkscs2001_uni2indx_page271[1] = { - /* 0x27100 */ - { 106, 0x2000 }, -}; -static const Summary16 hkscs2001_uni2indx_page287[1] = { - /* 0x28700 */ - { 107, 0x8000 }, -}; -static const Summary16 hkscs2001_uni2indx_page289[31] = { - /* 0x28900 */ - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0008 }, { 109, 0x0000 }, - /* 0x28a00 */ - { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0004 }, - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0400 }, -}; -static const Summary16 hkscs2001_uni2indx_page28d[12] = { - /* 0x28d00 */ - { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, - { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, - { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0200 }, -}; -static const Summary16 hkscs2001_uni2indx_page299[5] = { - /* 0x29900 */ - { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0000 }, - { 112, 0x0080 }, -}; -static const Summary16 hkscs2001_uni2indx_page29c[8] = { - /* 0x29c00 */ - { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0000 }, - { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0008 }, -}; -static const Summary16 hkscs2001_uni2indx_page2a1[28] = { - /* 0x2a100 */ - { 114, 0x0080 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - /* 0x2a200 */ - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0400 }, -}; - -static int -hkscs2001_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc < 0x9f00) { - if (wc < 0x6900) { - if (wc >= 0x3500 && wc < 0x3560) - summary = &hkscs2001_uni2indx_page35[(wc>>4)-0x350]; - else if (wc >= 0x3c00 && wc < 0x3ee0) - summary = &hkscs2001_uni2indx_page3c[(wc>>4)-0x3c0]; - else if (wc >= 0x4000 && wc < 0x4080) - summary = &hkscs2001_uni2indx_page40[(wc>>4)-0x400]; - else if (wc >= 0x4200 && wc < 0x42b0) - summary = &hkscs2001_uni2indx_page42[(wc>>4)-0x420]; - else if (wc >= 0x4b00 && wc < 0x4c90) - summary = &hkscs2001_uni2indx_page4b[(wc>>4)-0x4b0]; - else if (wc >= 0x4e00 && wc < 0x51b0) - summary = &hkscs2001_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0x5300 && wc < 0x5440) - summary = &hkscs2001_uni2indx_page53[(wc>>4)-0x530]; - else if (wc >= 0x5700 && wc < 0x58e0) - summary = &hkscs2001_uni2indx_page57[(wc>>4)-0x570]; - else if (wc >= 0x5a00 && wc < 0x5fd0) - summary = &hkscs2001_uni2indx_page5a[(wc>>4)-0x5a0]; - else if (wc >= 0x6100 && wc < 0x6130) - summary = &hkscs2001_uni2indx_page61[(wc>>4)-0x610]; - else if (wc >= 0x6500 && wc < 0x6590) - summary = &hkscs2001_uni2indx_page65[(wc>>4)-0x650]; - else if (wc >= 0x6700 && wc < 0x6770) - summary = &hkscs2001_uni2indx_page67[(wc>>4)-0x670]; - } else { - if (wc >= 0x6900 && wc < 0x6a70) - summary = &hkscs2001_uni2indx_page69[(wc>>4)-0x690]; - else if (wc >= 0x6c00 && wc < 0x6e00) - summary = &hkscs2001_uni2indx_page6c[(wc>>4)-0x6c0]; - else if (wc >= 0x7000 && wc < 0x74c0) - summary = &hkscs2001_uni2indx_page70[(wc>>4)-0x700]; - else if (wc >= 0x7600 && wc < 0x78f0) - summary = &hkscs2001_uni2indx_page76[(wc>>4)-0x760]; - else if (wc >= 0x7a00 && wc < 0x7e70) - summary = &hkscs2001_uni2indx_page7a[(wc>>4)-0x7a0]; - else if (wc >= 0x8200 && wc < 0x8300) - summary = &hkscs2001_uni2indx_page82[(wc>>4)-0x820]; - else if (wc >= 0x8500 && wc < 0x8610) - summary = &hkscs2001_uni2indx_page85[(wc>>4)-0x850]; - else if (wc >= 0x8800 && wc < 0x88a0) - summary = &hkscs2001_uni2indx_page88[(wc>>4)-0x880]; - else if (wc >= 0x8b00 && wc < 0x8b90) - summary = &hkscs2001_uni2indx_page8b[(wc>>4)-0x8b0]; - else if (wc >= 0x8e00 && wc < 0x8fd0) - summary = &hkscs2001_uni2indx_page8e[(wc>>4)-0x8e0]; - else if (wc >= 0x9100 && wc < 0x9400) - summary = &hkscs2001_uni2indx_page91[(wc>>4)-0x910]; - else if (wc >= 0x9700 && wc < 0x99f0) - summary = &hkscs2001_uni2indx_page97[(wc>>4)-0x970]; - } - } else { - if (wc < 0x25600) { - if (wc >= 0x9f00 && wc < 0x9fb0) - summary = &hkscs2001_uni2indx_page9f[(wc>>4)-0x9f0]; - else if (wc >= 0x21400 && wc < 0x21440) - summary = &hkscs2001_uni2indx_page214[(wc>>4)-0x2140]; - else if (wc >= 0x21900 && wc < 0x21990) - summary = &hkscs2001_uni2indx_page219[(wc>>4)-0x2190]; - else if (wc >= 0x21d00 && wc < 0x21dc0) - summary = &hkscs2001_uni2indx_page21d[(wc>>4)-0x21d0]; - else if (wc >= 0x22000 && wc < 0x22080) - summary = &hkscs2001_uni2indx_page220[(wc>>4)-0x2200]; - else if (wc >= 0x22700 && wc < 0x22720) - summary = &hkscs2001_uni2indx_page227[(wc>>4)-0x2270]; - else if (wc >= 0x23200 && wc < 0x23400) - summary = &hkscs2001_uni2indx_page232[(wc>>4)-0x2320]; - else if (wc >= 0x23c00 && wc < 0x23c70) - summary = &hkscs2001_uni2indx_page23c[(wc>>4)-0x23c0]; - else if (wc >= 0x24100 && wc < 0x24150) - summary = &hkscs2001_uni2indx_page241[(wc>>4)-0x2410]; - else if (wc >= 0x24500 && wc < 0x24510) - summary = &hkscs2001_uni2indx_page245[(wc>>4)-0x2450]; - else if (wc >= 0x24900 && wc < 0x24a20) - summary = &hkscs2001_uni2indx_page249[(wc>>4)-0x2490]; - else if (wc >= 0x25100 && wc < 0x251d0) - summary = &hkscs2001_uni2indx_page251[(wc>>4)-0x2510]; - } else { - if (wc >= 0x25600 && wc < 0x256a0) - summary = &hkscs2001_uni2indx_page256[(wc>>4)-0x2560]; - else if (wc >= 0x25c00 && wc < 0x25d40) - summary = &hkscs2001_uni2indx_page25c[(wc>>4)-0x25c0]; - else if (wc >= 0x26b00 && wc < 0x26b20) - summary = &hkscs2001_uni2indx_page26b[(wc>>4)-0x26b0]; - else if (wc >= 0x26d00 && wc < 0x26d80) - summary = &hkscs2001_uni2indx_page26d[(wc>>4)-0x26d0]; - else if (wc >= 0x26f00 && wc < 0x26fc0) - summary = &hkscs2001_uni2indx_page26f[(wc>>4)-0x26f0]; - else if (wc >= 0x27100 && wc < 0x27110) - summary = &hkscs2001_uni2indx_page271[(wc>>4)-0x2710]; - else if (wc >= 0x28700 && wc < 0x28710) - summary = &hkscs2001_uni2indx_page287[(wc>>4)-0x2870]; - else if (wc >= 0x28900 && wc < 0x28af0) - summary = &hkscs2001_uni2indx_page289[(wc>>4)-0x2890]; - else if (wc >= 0x28d00 && wc < 0x28dc0) - summary = &hkscs2001_uni2indx_page28d[(wc>>4)-0x28d0]; - else if (wc >= 0x29900 && wc < 0x29950) - summary = &hkscs2001_uni2indx_page299[(wc>>4)-0x2990]; - else if (wc >= 0x29c00 && wc < 0x29c80) - summary = &hkscs2001_uni2indx_page29c[(wc>>4)-0x29c0]; - else if (wc >= 0x2a100 && wc < 0x2a2c0) - summary = &hkscs2001_uni2indx_page2a1[(wc>>4)-0x2a10]; - } - } - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = hkscs2001_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/hkscs2004.h b/jni/parted/libiconv/lib/hkscs2004.h deleted file mode 100755 index 943a0b7..0000000 --- a/jni/parted/libiconv/lib/hkscs2004.h +++ /dev/null @@ -1,678 +0,0 @@ -/* - * Copyright (C) 1999-2006, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * HKSCS:2004 - */ - -static const unsigned short hkscs2004_2uni_page87[58] = { - /* 0x87 */ - 0x0af0, 0x1032, 0x0d03, 0x0ca6, 0x0c78, 0x4167, 0x1177, 0x0cb3, - 0x44b1, 0x10e2, 0x44c5, 0x0595, 0x0e36, 0x0e44, 0x1047, 0x1040, - 0x39bf, 0x3417, 0x4252, 0x3f8b, 0x40d2, 0x1057, 0x4d51, 0x0e4f, - 0x0cda, 0x1085, 0x446c, 0x1107, 0x0fa4, 0x0da1, 0x3d23, 0x1e25, - 0x3c54, 0x2d63, 0x3606, 0x3761, 0x1a4d, 0x13fb, 0x28fd, 0x2195, - 0x141d, 0x47b9, 0x06f4, 0x2534, 0x43ef, 0x16db, 0x2e5e, 0x15a4, - 0x0125, 0x4bb0, 0x15d1, 0x16b7, 0x17fc, 0x1b6e, 0x2393, 0x4a45, - 0x1f61, 0x1f9d, -}; -static const unsigned short hkscs2004_2uni_page8c[189] = { - /* 0x8c */ - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x2b6f, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, 0x28fd, - 0x28fd, 0x1ae7, 0x28fd, 0x1c57, 0x20ca, 0x0688, 0x0bc3, 0x3256, - 0x3196, 0x0a9a, 0x0c36, 0x28fd, 0x17d5, 0x351a, 0x24f9, 0x1778, - 0x0612, 0x3351, 0x1878, 0x27b2, 0x1d57, 0x0c58, 0x38ec, 0x2f23, - 0x1077, 0x0478, 0x004a, 0x29a4, 0x3e41, 0x24cc, 0x12b4, 0x2a39, - 0x14bf, 0x226c, 0x2656, 0x49fa, 0x193b, - /* 0x8d */ - 0x2c9f, 0x28fd, 0x30c1, 0x466d, 0x0902, 0x0dbb, 0x4879, 0x0707, - 0x27b3, 0x4cb5, 0x08f8, 0x02d6, 0x0df7, 0x3e46, 0x097c, 0x45b2, - 0x42ff, 0x0c6d, 0x03d4, 0x3b9a, 0x0c61, 0x0c1b, 0x1189, 0x107b, - 0x1176, 0x0cea, 0x07c8, 0x3a0f, 0x0161, 0x0bde, 0x0bbd, 0x09ed, -}; - -static const ucs4_t hkscs2004_2uni_upages[78] = { - 0x03400, 0x03600, 0x03700, 0x03800, 0x03900, 0x03b00, 0x03d00, 0x03f00, - 0x04000, 0x04100, 0x04300, 0x04400, 0x04500, 0x04600, 0x04700, 0x04a00, - 0x04c00, 0x04d00, 0x04f00, 0x05600, 0x05900, 0x05a00, 0x05b00, 0x05c00, - 0x05d00, 0x05f00, 0x06600, 0x06700, 0x06e00, 0x07100, 0x07200, 0x07400, - 0x07900, 0x07d00, 0x08100, 0x08500, 0x08a00, 0x09700, 0x09800, 0x09f00, - 0x0ff00, 0x20100, 0x20200, 0x20a00, 0x20b00, 0x21a00, 0x21d00, 0x21e00, - 0x22100, 0x22700, 0x23200, 0x23500, 0x23600, 0x23b00, 0x23e00, 0x23f00, - 0x24000, 0x24200, 0x24b00, 0x25400, 0x25a00, 0x26b00, 0x26c00, 0x26e00, - 0x27000, 0x27200, 0x27300, 0x27b00, 0x27c00, 0x28600, 0x28900, 0x28b00, - 0x29000, 0x29800, 0x29900, 0x29e00, 0x2a100, 0x2a300, -}; - -static int -hkscs2004_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 == 0x87) || (c1 >= 0x8c && c1 <= 0x8d)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - ucs4_t wc = 0xfffd; - unsigned short swc; - if (i < 1884) { - if (i < 1157) - swc = hkscs2004_2uni_page87[i-1099], - wc = hkscs2004_2uni_upages[swc>>8] | (swc & 0xff); - } else { - if (i < 2073) - swc = hkscs2004_2uni_page8c[i-1884], - wc = hkscs2004_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short hkscs2004_2charset[123] = { - 0x8cf4, 0x8770, 0x8d5c, 0x8d4b, 0x8d52, 0x8cf3, 0x874b, 0x8cea, - 0x8cdf, 0x876a, 0x8d47, 0x8d5a, 0x8d4a, 0x8d44, 0x8d4e, 0x8d5f, - 0x8ce3, 0x8740, 0x8d5e, 0x8ce0, 0x8d5d, 0x8d55, 0x8ce4, 0x8cef, - 0x8d54, 0x8d51, 0x8744, 0x8743, 0x8747, 0x8758, 0x8d59, 0x8742, - 0x875d, 0x8d45, 0x8d4c, 0x874c, 0x874d, 0x8757, 0x875c, 0x8741, - 0x874f, 0x874e, 0x8755, 0x8cf2, 0x8d57, 0x8759, 0x8749, 0x875b, - 0x8d58, 0x8746, 0x8d56, 0x8cf8, 0x8765, 0x8768, 0x8cfa, 0x876f, - 0x8772, 0x8773, 0x876d, 0x8ce9, 0x8ce6, 0x8774, 0x8cec, 0x8cfe, - 0x8764, 0x8cdb, 0x8775, 0x8cdd, 0x8cee, 0x875f, 0x8778, 0x8779, - 0x8cde, 0x8767, 0x8cfb, 0x8776, 0x8cf7, 0x8ce8, 0x876b, 0x8cfc, - 0x8ced, 0x8d48, 0x8cf5, 0x8cf9, 0x8c62, 0x8d40, 0x8761, 0x876e, - 0x8cf1, 0x8d42, 0x8ce2, 0x8ce1, 0x8ceb, 0x8751, 0x8ce7, 0x8762, - 0x8763, 0x8cf0, 0x8750, 0x8d5b, 0x8d53, 0x8760, 0x875e, 0x8cf6, - 0x8d4d, 0x8753, 0x8754, 0x8745, 0x8752, 0x8d50, 0x876c, 0x875a, - 0x8748, 0x874a, 0x8d4f, 0x8d43, 0x8769, 0x8d46, 0x8cfd, 0x8777, - 0x8771, 0x8d49, 0x8756, -}; - -static const Summary16 hkscs2004_uni2indx_page34[5] = { - /* 0x3400 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0400 }, -}; -static const Summary16 hkscs2004_uni2indx_page36[56] = { - /* 0x3600 */ - { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0020 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0002 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - /* 0x3700 */ - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0040 }, { 4, 0x0000 }, { 4, 0x0000 }, - /* 0x3800 */ - { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, - { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, - { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, - { 4, 0x0000 }, { 4, 0x0010 }, { 5, 0x0000 }, { 5, 0x0000 }, - /* 0x3900 */ - { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, - { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0100 }, -}; -static const Summary16 hkscs2004_uni2indx_page3b[10] = { - /* 0x3b00 */ - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, - { 6, 0x0000 }, { 6, 0x0020 }, -}; -static const Summary16 hkscs2004_uni2indx_page3d[16] = { - /* 0x3d00 */ - { 7, 0x0000 }, { 7, 0x0004 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0100 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0010 }, -}; -static const Summary16 hkscs2004_uni2indx_page3f[47] = { - /* 0x3f00 */ - { 10, 0x0080 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0100 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, - /* 0x4000 */ - { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, - { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, - { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, - { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0100 }, - /* 0x4100 */ - { 13, 0x0004 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x1000 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x2000 }, -}; -static const Summary16 hkscs2004_uni2indx_page43[69] = { - /* 0x4300 */ - { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, - { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, - { 16, 0x0000 }, { 16, 0x0400 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0001 }, - /* 0x4400 */ - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x2000 }, - { 19, 0x0008 }, { 20, 0x4000 }, { 21, 0x0000 }, { 21, 0x0000 }, - /* 0x4500 */ - { 21, 0x0000 }, { 21, 0x0800 }, { 22, 0x0000 }, { 22, 0x0040 }, - { 23, 0x0000 }, { 23, 0x0100 }, { 24, 0x2002 }, { 26, 0x0100 }, - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0040 }, { 28, 0x0008 }, - { 29, 0x0000 }, { 29, 0x0400 }, { 30, 0x0400 }, { 31, 0x0000 }, - /* 0x4600 */ - { 31, 0x0008 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0002 }, { 33, 0x0800 }, - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0080 }, - /* 0x4700 */ - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0040 }, - { 36, 0x8010 }, -}; -static const Summary16 hkscs2004_uni2indx_page4a[11] = { - /* 0x4a00 */ - { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, - { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0000 }, - { 38, 0x0000 }, { 38, 0x0000 }, { 38, 0x0010 }, -}; -static const Summary16 hkscs2004_uni2indx_page4c[25] = { - /* 0x4c00 */ - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x0004 }, - { 40, 0x0081 }, { 42, 0x0080 }, { 43, 0x0000 }, { 43, 0x0880 }, - { 45, 0x0020 }, { 46, 0x0000 }, { 46, 0x0000 }, { 46, 0x0000 }, - { 46, 0x0000 }, { 46, 0x0000 }, { 46, 0x0004 }, { 47, 0x0000 }, - /* 0x4d00 */ - { 47, 0x0080 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, - { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x00c0 }, - { 50, 0x0200 }, -}; -static const Summary16 hkscs2004_uni2indx_page4f[12] = { - /* 0x4f00 */ - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, - { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0000 }, { 51, 0x0010 }, -}; -static const Summary16 hkscs2004_uni2indx_page56[16] = { - /* 0x5600 */ - { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, - { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, - { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, - { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0000 }, { 52, 0x0800 }, -}; -static const Summary16 hkscs2004_uni2indx_page59[72] = { - /* 0x5900 */ - { 53, 0x0000 }, { 53, 0x2000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x8000 }, - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - /* 0x5a00 */ - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0010 }, { 56, 0x0000 }, - { 56, 0x0000 }, { 56, 0x0002 }, { 57, 0x0000 }, { 57, 0x0000 }, - /* 0x5b00 */ - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0080 }, - { 58, 0x0000 }, { 58, 0x0800 }, { 59, 0x0000 }, { 59, 0x0000 }, - /* 0x5c00 */ - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0100 }, - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, - { 60, 0x0000 }, { 60, 0x0020 }, { 61, 0x0000 }, { 61, 0x1000 }, - /* 0x5d00 */ - { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, - { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0000 }, { 62, 0x0100 }, -}; -static const Summary16 hkscs2004_uni2indx_page5f[4] = { - /* 0x5f00 */ - { 63, 0x0000 }, { 63, 0x0000 }, { 63, 0x0000 }, { 63, 0x0800 }, -}; -static const Summary16 hkscs2004_uni2indx_page66[23] = { - /* 0x6600 */ - { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, - { 64, 0x2000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0080 }, { 66, 0x0000 }, - /* 0x6700 */ - { 66, 0x0000 }, { 66, 0x0000 }, { 66, 0x0000 }, { 66, 0x0000 }, - { 66, 0x0000 }, { 66, 0x0000 }, { 66, 0x4000 }, -}; -static const Summary16 hkscs2004_uni2indx_page6e[6] = { - /* 0x6e00 */ - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, - { 67, 0x0000 }, { 67, 0x0080 }, -}; -static const Summary16 hkscs2004_uni2indx_page71[19] = { - /* 0x7100 */ - { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, { 68, 0x0000 }, - { 68, 0x0000 }, { 68, 0x0080 }, { 69, 0x0000 }, { 69, 0x0000 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, - /* 0x7200 */ - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0020 }, -}; -static const Summary16 hkscs2004_uni2indx_page74[10] = { - /* 0x7400 */ - { 70, 0x0000 }, { 70, 0x0000 }, { 70, 0x0000 }, { 70, 0x0000 }, - { 70, 0x0000 }, { 70, 0x0000 }, { 70, 0x0002 }, { 71, 0x0000 }, - { 71, 0x0000 }, { 71, 0x2000 }, -}; -static const Summary16 hkscs2004_uni2indx_page79[13] = { - /* 0x7900 */ - { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, - { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, - { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, { 72, 0x0000 }, - { 72, 0x0400 }, -}; -static const Summary16 hkscs2004_uni2indx_page7d[10] = { - /* 0x7d00 */ - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, { 73, 0x0000 }, - { 73, 0x0000 }, { 73, 0x0020 }, -}; -static const Summary16 hkscs2004_uni2indx_page81[7] = { - /* 0x8100 */ - { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x0000 }, - { 74, 0x0000 }, { 74, 0x0000 }, { 74, 0x1000 }, -}; -static const Summary16 hkscs2004_uni2indx_page85[10] = { - /* 0x8500 */ - { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, - { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, { 75, 0x0000 }, - { 75, 0x0000 }, { 75, 0x0008 }, -}; -static const Summary16 hkscs2004_uni2indx_page8a[16] = { - /* 0x8a00 */ - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, { 76, 0x0000 }, - { 76, 0x1000 }, { 77, 0x0000 }, { 77, 0x0000 }, { 77, 0x0200 }, -}; -static const Summary16 hkscs2004_uni2indx_page97[22] = { - /* 0x9700 */ - { 78, 0x0000 }, { 78, 0x0000 }, { 78, 0x0000 }, { 78, 0x0010 }, - { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, - { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, - { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, - /* 0x9800 */ - { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, { 79, 0x0000 }, - { 79, 0x0000 }, { 79, 0x0040 }, -}; -static const Summary16 hkscs2004_uni2indx_page9f[12] = { - /* 0x9f00 */ - { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, - { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, - { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x0000 }, { 80, 0x000c }, -}; -static const Summary16 hkscs2004_uni2indx_page201[20] = { - /* 0x20100 */ - { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, - { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0000 }, - { 82, 0x0000 }, { 82, 0x0000 }, { 82, 0x0010 }, { 83, 0x0000 }, - { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, - /* 0x20200 */ - { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0000 }, { 83, 0x0200 }, -}; -static const Summary16 hkscs2004_uni2indx_page20a[26] = { - /* 0x20a00 */ - { 84, 0x0000 }, { 84, 0x0000 }, { 84, 0x0000 }, { 84, 0x0000 }, - { 84, 0x0000 }, { 84, 0x0000 }, { 84, 0x8000 }, { 85, 0x0000 }, - { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, - { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, - /* 0x20b00 */ - { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, - { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, { 85, 0x0000 }, - { 85, 0x0000 }, { 85, 0x8000 }, -}; -static const Summary16 hkscs2004_uni2indx_page21a[7] = { - /* 0x21a00 */ - { 86, 0x0000 }, { 86, 0x0000 }, { 86, 0x0000 }, { 86, 0x0000 }, - { 86, 0x0000 }, { 86, 0x0000 }, { 86, 0x0008 }, -}; -static const Summary16 hkscs2004_uni2indx_page21d[19] = { - /* 0x21d00 */ - { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x0000 }, { 87, 0x0000 }, - { 87, 0x0000 }, { 87, 0x4000 }, { 88, 0x0000 }, { 88, 0x0000 }, - { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, - { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0000 }, - /* 0x21e00 */ - { 88, 0x0000 }, { 88, 0x0000 }, { 88, 0x0008 }, -}; -static const Summary16 hkscs2004_uni2indx_page221[13] = { - /* 0x22100 */ - { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, - { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, - { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, { 89, 0x0000 }, - { 89, 0x0002 }, -}; -static const Summary16 hkscs2004_uni2indx_page227[10] = { - /* 0x22700 */ - { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, - { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, { 90, 0x0000 }, - { 90, 0x0000 }, { 90, 0x0040 }, -}; -static const Summary16 hkscs2004_uni2indx_page232[6] = { - /* 0x23200 */ - { 91, 0x0000 }, { 91, 0x0000 }, { 91, 0x0000 }, { 91, 0x0000 }, - { 91, 0x0000 }, { 91, 0x0040 }, -}; -static const Summary16 hkscs2004_uni2indx_page235[18] = { - /* 0x23500 */ - { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, { 92, 0x0000 }, - { 92, 0x0000 }, { 92, 0x0002 }, { 93, 0x0000 }, { 93, 0x0000 }, - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, { 93, 0x0000 }, - /* 0x23600 */ - { 93, 0x0000 }, { 93, 0x0080 }, -}; -static const Summary16 hkscs2004_uni2indx_page23b[2] = { - /* 0x23b00 */ - { 94, 0x0000 }, { 94, 0x0400 }, -}; -static const Summary16 hkscs2004_uni2indx_page23e[47] = { - /* 0x23e00 */ - { 95, 0x0040 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, - { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, - { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, - { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, - /* 0x23f00 */ - { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0000 }, - { 96, 0x0000 }, { 96, 0x0000 }, { 96, 0x0002 }, { 97, 0x0000 }, - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, - /* 0x24000 */ - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x0000 }, - { 97, 0x0000 }, { 97, 0x0000 }, { 97, 0x1000 }, -}; -static const Summary16 hkscs2004_uni2indx_page242[12] = { - /* 0x24200 */ - { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, - { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, - { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x0000 }, { 98, 0x8000 }, -}; -static const Summary16 hkscs2004_uni2indx_page24b[1] = { - /* 0x24b00 */ - { 99, 0x8000 }, -}; -static const Summary16 hkscs2004_uni2indx_page254[10] = { - /* 0x25400 */ - { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, - { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, { 100, 0x0000 }, - { 100, 0x0000 }, { 100, 0x0400 }, -}; -static const Summary16 hkscs2004_uni2indx_page25a[6] = { - /* 0x25a00 */ - { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, { 101, 0x0000 }, - { 101, 0x0000 }, { 101, 0x0010 }, -}; -static const Summary16 hkscs2004_uni2indx_page26b[21] = { - /* 0x26b00 */ - { 102, 0x0000 }, { 102, 0x0000 }, { 102, 0x0008 }, { 103, 0x0000 }, - { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, - { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, - { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, - /* 0x26c00 */ - { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, - { 103, 0x0042 }, -}; -static const Summary16 hkscs2004_uni2indx_page26e[9] = { - /* 0x26e00 */ - { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, - { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, - { 105, 0x0800 }, -}; -static const Summary16 hkscs2004_uni2indx_page270[14] = { - /* 0x27000 */ - { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, - { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, - { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, - { 106, 0x0000 }, { 106, 0x0004 }, -}; -static const Summary16 hkscs2004_uni2indx_page272[32] = { - /* 0x27200 */ - { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0000 }, - { 107, 0x0000 }, { 107, 0x0000 }, { 107, 0x0080 }, { 108, 0x0000 }, - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, - /* 0x27300 */ - { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, { 108, 0x0000 }, - { 108, 0x0000 }, { 108, 0x0004 }, { 109, 0x0000 }, { 109, 0x0000 }, - { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, - { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x0000 }, { 109, 0x8000 }, -}; -static const Summary16 hkscs2004_uni2indx_page27b[29] = { - /* 0x27b00 */ - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x0000 }, - { 110, 0x0000 }, { 110, 0x0000 }, { 110, 0x8000 }, { 111, 0x0000 }, - /* 0x27c00 */ - { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x0000 }, - { 111, 0x0000 }, { 111, 0x0000 }, { 111, 0x1000 }, { 112, 0x0000 }, - { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0000 }, { 112, 0x0002 }, - { 113, 0x0020 }, -}; -static const Summary16 hkscs2004_uni2indx_page286[12] = { - /* 0x28600 */ - { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, - { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, - { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0000 }, { 114, 0x0004 }, -}; -static const Summary16 hkscs2004_uni2indx_page289[7] = { - /* 0x28900 */ - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x0000 }, - { 115, 0x0000 }, { 115, 0x0000 }, { 115, 0x2000 }, -}; -static const Summary16 hkscs2004_uni2indx_page28b[12] = { - /* 0x28b00 */ - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0200 }, -}; -static const Summary16 hkscs2004_uni2indx_page290[8] = { - /* 0x29000 */ - { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0000 }, - { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0000 }, { 117, 0x0200 }, -}; -static const Summary16 hkscs2004_uni2indx_page298[21] = { - /* 0x29800 */ - { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, - { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, - { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, - { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0400 }, - /* 0x29900 */ - { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, { 119, 0x0000 }, - { 119, 0x0020 }, -}; -static const Summary16 hkscs2004_uni2indx_page29e[12] = { - /* 0x29e00 */ - { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, - { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, - { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0000 }, { 120, 0x0001 }, -}; -static const Summary16 hkscs2004_uni2indx_page2a1[12] = { - /* 0x2a100 */ - { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, - { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, - { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0000 }, { 121, 0x0020 }, -}; -static const Summary16 hkscs2004_uni2indx_page2a3[6] = { - /* 0x2a300 */ - { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, { 122, 0x0000 }, - { 122, 0x0000 }, { 122, 0x0002 }, -}; - -static int -hkscs2004_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc < 0x21a00) { - if (wc < 0x6e00) { - if (wc >= 0x3400 && wc < 0x3450) - summary = &hkscs2004_uni2indx_page34[(wc>>4)-0x340]; - else if (wc >= 0x3600 && wc < 0x3980) - summary = &hkscs2004_uni2indx_page36[(wc>>4)-0x360]; - else if (wc >= 0x3b00 && wc < 0x3ba0) - summary = &hkscs2004_uni2indx_page3b[(wc>>4)-0x3b0]; - else if (wc >= 0x3d00 && wc < 0x3e00) - summary = &hkscs2004_uni2indx_page3d[(wc>>4)-0x3d0]; - else if (wc >= 0x3f00 && wc < 0x41f0) - summary = &hkscs2004_uni2indx_page3f[(wc>>4)-0x3f0]; - else if (wc >= 0x4300 && wc < 0x4750) - summary = &hkscs2004_uni2indx_page43[(wc>>4)-0x430]; - else if (wc >= 0x4a00 && wc < 0x4ab0) - summary = &hkscs2004_uni2indx_page4a[(wc>>4)-0x4a0]; - else if (wc >= 0x4c00 && wc < 0x4d90) - summary = &hkscs2004_uni2indx_page4c[(wc>>4)-0x4c0]; - else if (wc >= 0x4f00 && wc < 0x4fc0) - summary = &hkscs2004_uni2indx_page4f[(wc>>4)-0x4f0]; - else if (wc >= 0x5600 && wc < 0x5700) - summary = &hkscs2004_uni2indx_page56[(wc>>4)-0x560]; - else if (wc >= 0x5900 && wc < 0x5d80) - summary = &hkscs2004_uni2indx_page59[(wc>>4)-0x590]; - else if (wc >= 0x5f00 && wc < 0x5f40) - summary = &hkscs2004_uni2indx_page5f[(wc>>4)-0x5f0]; - else if (wc >= 0x6600 && wc < 0x6770) - summary = &hkscs2004_uni2indx_page66[(wc>>4)-0x660]; - } else { - if (wc >= 0x6e00 && wc < 0x6e60) - summary = &hkscs2004_uni2indx_page6e[(wc>>4)-0x6e0]; - else if (wc >= 0x7100 && wc < 0x7230) - summary = &hkscs2004_uni2indx_page71[(wc>>4)-0x710]; - else if (wc >= 0x7400 && wc < 0x74a0) - summary = &hkscs2004_uni2indx_page74[(wc>>4)-0x740]; - else if (wc >= 0x7900 && wc < 0x79d0) - summary = &hkscs2004_uni2indx_page79[(wc>>4)-0x790]; - else if (wc >= 0x7d00 && wc < 0x7da0) - summary = &hkscs2004_uni2indx_page7d[(wc>>4)-0x7d0]; - else if (wc >= 0x8100 && wc < 0x8170) - summary = &hkscs2004_uni2indx_page81[(wc>>4)-0x810]; - else if (wc >= 0x8500 && wc < 0x85a0) - summary = &hkscs2004_uni2indx_page85[(wc>>4)-0x850]; - else if (wc >= 0x8a00 && wc < 0x8b00) - summary = &hkscs2004_uni2indx_page8a[(wc>>4)-0x8a0]; - else if (wc >= 0x9700 && wc < 0x9860) - summary = &hkscs2004_uni2indx_page97[(wc>>4)-0x970]; - else if (wc >= 0x9f00 && wc < 0x9fc0) - summary = &hkscs2004_uni2indx_page9f[(wc>>4)-0x9f0]; - else if (wc >= 0x20100 && wc < 0x20240) - summary = &hkscs2004_uni2indx_page201[(wc>>4)-0x2010]; - else if (wc >= 0x20a00 && wc < 0x20ba0) - summary = &hkscs2004_uni2indx_page20a[(wc>>4)-0x20a0]; - } - } else { - if (wc < 0x26b00) { - if (wc >= 0x21a00 && wc < 0x21a70) - summary = &hkscs2004_uni2indx_page21a[(wc>>4)-0x21a0]; - else if (wc >= 0x21d00 && wc < 0x21e30) - summary = &hkscs2004_uni2indx_page21d[(wc>>4)-0x21d0]; - else if (wc >= 0x22100 && wc < 0x221d0) - summary = &hkscs2004_uni2indx_page221[(wc>>4)-0x2210]; - else if (wc >= 0x22700 && wc < 0x227a0) - summary = &hkscs2004_uni2indx_page227[(wc>>4)-0x2270]; - else if (wc >= 0x23200 && wc < 0x23260) - summary = &hkscs2004_uni2indx_page232[(wc>>4)-0x2320]; - else if (wc >= 0x23500 && wc < 0x23620) - summary = &hkscs2004_uni2indx_page235[(wc>>4)-0x2350]; - else if (wc >= 0x23b00 && wc < 0x23b20) - summary = &hkscs2004_uni2indx_page23b[(wc>>4)-0x23b0]; - else if (wc >= 0x23e00 && wc < 0x240f0) - summary = &hkscs2004_uni2indx_page23e[(wc>>4)-0x23e0]; - else if (wc >= 0x24200 && wc < 0x242c0) - summary = &hkscs2004_uni2indx_page242[(wc>>4)-0x2420]; - else if (wc >= 0x24b00 && wc < 0x24b10) - summary = &hkscs2004_uni2indx_page24b[(wc>>4)-0x24b0]; - else if (wc >= 0x25400 && wc < 0x254a0) - summary = &hkscs2004_uni2indx_page254[(wc>>4)-0x2540]; - else if (wc >= 0x25a00 && wc < 0x25a60) - summary = &hkscs2004_uni2indx_page25a[(wc>>4)-0x25a0]; - } else { - if (wc >= 0x26b00 && wc < 0x26c50) - summary = &hkscs2004_uni2indx_page26b[(wc>>4)-0x26b0]; - else if (wc >= 0x26e00 && wc < 0x26e90) - summary = &hkscs2004_uni2indx_page26e[(wc>>4)-0x26e0]; - else if (wc >= 0x27000 && wc < 0x270e0) - summary = &hkscs2004_uni2indx_page270[(wc>>4)-0x2700]; - else if (wc >= 0x27200 && wc < 0x27400) - summary = &hkscs2004_uni2indx_page272[(wc>>4)-0x2720]; - else if (wc >= 0x27b00 && wc < 0x27cd0) - summary = &hkscs2004_uni2indx_page27b[(wc>>4)-0x27b0]; - else if (wc >= 0x28600 && wc < 0x286c0) - summary = &hkscs2004_uni2indx_page286[(wc>>4)-0x2860]; - else if (wc >= 0x28900 && wc < 0x28970) - summary = &hkscs2004_uni2indx_page289[(wc>>4)-0x2890]; - else if (wc >= 0x28b00 && wc < 0x28bc0) - summary = &hkscs2004_uni2indx_page28b[(wc>>4)-0x28b0]; - else if (wc >= 0x29000 && wc < 0x29080) - summary = &hkscs2004_uni2indx_page290[(wc>>4)-0x2900]; - else if (wc >= 0x29800 && wc < 0x29950) - summary = &hkscs2004_uni2indx_page298[(wc>>4)-0x2980]; - else if (wc >= 0x29e00 && wc < 0x29ec0) - summary = &hkscs2004_uni2indx_page29e[(wc>>4)-0x29e0]; - else if (wc >= 0x2a100 && wc < 0x2a1c0) - summary = &hkscs2004_uni2indx_page2a1[(wc>>4)-0x2a10]; - else if (wc >= 0x2a300 && wc < 0x2a360) - summary = &hkscs2004_uni2indx_page2a3[(wc>>4)-0x2a30]; - } - } - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = hkscs2004_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/hkscs2008.h b/jni/parted/libiconv/lib/hkscs2008.h deleted file mode 100755 index 6935cad..0000000 --- a/jni/parted/libiconv/lib/hkscs2008.h +++ /dev/null @@ -1,466 +0,0 @@ -/* - * Copyright (C) 1999-2010, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * HKSCS:2008 - */ - -static const unsigned short hkscs2008_2uni_page87[126] = { - /* 0x87 */ - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, 0x22fd, - 0x22fd, 0x22fd, 0x0175, 0x2453, 0x299e, 0x2d21, 0x03ec, 0x2bde, - 0x02f5, 0x16fc, 0x2197, 0x2a61, 0x300d, 0x26ea, 0x238a, 0x275e, - 0x060a, 0x1884, 0x2196, 0x1f2f, 0x0930, 0x1a13, 0x0d96, 0x204a, - 0x1e18, 0x15d0, 0x1632, 0x0f60, 0x1129, 0x1b9d, 0x144c, 0x17c5, - 0x1082, 0x162c, 0x0a4f, 0x1d46, 0x00e6, 0x13c4, 0x2cb9, 0x14c6, - 0x21c7, 0x0cb3, 0x092f, 0x0b4c, 0x0531, 0x298e, 0x0d18, 0x1672, - 0x2f65, 0x1c8f, 0x08ae, 0x2e88, 0x0581, 0x2c99, 0x17ae, 0x25bc, - 0x21c8, 0x25c1, 0x25c9, 0x25cc, 0x21c9, 0x1904, 0x28bb, 0x04b4, - 0x21ca, 0x07e1, 0x31ff, 0x0ec1, 0x126e, 0x21cb, -}; - -static const ucs4_t hkscs2008_2uni_upages[50] = { - 0x03400, 0x03800, 0x03a00, 0x03e00, 0x04000, 0x04100, 0x04300, 0x04400, - 0x04600, 0x04900, 0x05200, 0x05400, 0x05700, 0x05800, 0x06200, 0x06600, - 0x06700, 0x06a00, 0x07000, 0x07300, 0x07400, 0x07900, 0x07a00, 0x07b00, - 0x08400, 0x08500, 0x08600, 0x08800, 0x08b00, 0x09000, 0x09200, 0x09400, - 0x09700, 0x09f00, 0x0ff00, 0x20a00, 0x21d00, 0x22400, 0x23100, 0x23200, - 0x23500, 0x23600, 0x24100, 0x25800, 0x25d00, 0x26000, 0x26e00, 0x27b00, - 0x28900, 0x2ad00, -}; - -static int -hkscs2008_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if (c1 == 0x87) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 < 0x7f) || (c2 >= 0xa1 && c2 < 0xff)) { - unsigned int i = 157 * (c1 - 0x80) + (c2 - (c2 >= 0xa1 ? 0x62 : 0x40)); - ucs4_t wc = 0xfffd; - unsigned short swc; - { - if (i < 1225) - swc = hkscs2008_2uni_page87[i-1099], - wc = hkscs2008_2uni_upages[swc>>8] | (swc & 0xff); - } - if (wc != 0xfffd) { - *pwc = wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short hkscs2008_2charset[68] = { - 0x87be, 0x877a, 0x87a2, 0x877e, 0x87d9, 0x87c6, 0x87ce, 0x87aa, - 0x87db, 0x87cc, 0x87c4, 0x87ae, 0x87bc, 0x87c5, 0x87c3, 0x87c8, - 0x87b0, 0x87dd, 0x87b5, 0x87ba, 0x87b6, 0x87de, 0x87bf, 0x87b8, - 0x87c1, 0x87b3, 0x87bb, 0x87b4, 0x87c9, 0x87a3, 0x87d0, 0x87b9, - 0x87ab, 0x87d7, 0x87af, 0x87b7, 0x87cb, 0x87bd, 0x87b2, 0x87ad, - 0x87b1, 0x87ac, 0x87a4, 0x87c2, 0x87d2, 0x87d6, 0x87da, 0x87df, - 0x87a8, 0x877b, 0x87d1, 0x87d3, 0x87d4, 0x87d5, 0x87a7, 0x87a9, - 0x87d8, 0x87c7, 0x877c, 0x87a5, 0x87a1, 0x87cf, 0x87c0, 0x877d, - 0x87cd, 0x87ca, 0x87a6, 0x87dc, -}; - -static const Summary16 hkscs2008_uni2indx_page34[15] = { - /* 0x3400 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0040 }, -}; -static const Summary16 hkscs2008_uni2indx_page38[8] = { - /* 0x3800 */ - { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, - { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0000 }, { 1, 0x0020 }, -}; -static const Summary16 hkscs2008_uni2indx_page3a[16] = { - /* 0x3a00 */ - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, - { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0000 }, { 2, 0x0020 }, -}; -static const Summary16 hkscs2008_uni2indx_page3e[15] = { - /* 0x3e00 */ - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x0000 }, - { 3, 0x0000 }, { 3, 0x0000 }, { 3, 0x1000 }, -}; -static const Summary16 hkscs2008_uni2indx_page40[25] = { - /* 0x4000 */ - { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, - { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, - { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0000 }, { 4, 0x0010 }, - { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, - /* 0x4100 */ - { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0000 }, { 5, 0x0002 }, - { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, { 6, 0x0000 }, - { 6, 0x0002 }, -}; -static const Summary16 hkscs2008_uni2indx_page43[31] = { - /* 0x4300 */ - { 7, 0x0400 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - /* 0x4400 */ - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0000 }, - { 8, 0x0000 }, { 8, 0x0000 }, { 8, 0x0002 }, -}; -static const Summary16 hkscs2008_uni2indx_page46[11] = { - /* 0x4600 */ - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x0000 }, - { 9, 0x0000 }, { 9, 0x0000 }, { 9, 0x4000 }, -}; -static const Summary16 hkscs2008_uni2indx_page49[4] = { - /* 0x4900 */ - { 10, 0x0000 }, { 10, 0x0000 }, { 10, 0x8000 }, { 11, 0x0001 }, -}; -static const Summary16 hkscs2008_uni2indx_page52[5] = { - /* 0x5200 */ - { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, { 12, 0x0000 }, - { 12, 0x8000 }, -}; -static const Summary16 hkscs2008_uni2indx_page54[5] = { - /* 0x5400 */ - { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, { 13, 0x0000 }, - { 13, 0x1000 }, -}; -static const Summary16 hkscs2008_uni2indx_page57[26] = { - /* 0x5700 */ - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, - { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0000 }, { 14, 0x0008 }, - { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, { 15, 0x0000 }, - /* 0x5800 */ - { 15, 0x0000 }, { 15, 0x0100 }, { 16, 0x0000 }, { 16, 0x0000 }, - { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, { 16, 0x0000 }, - { 16, 0x0000 }, { 16, 0x0040 }, -}; -static const Summary16 hkscs2008_uni2indx_page62[13] = { - /* 0x6200 */ - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0002 }, -}; -static const Summary16 hkscs2008_uni2indx_page66[25] = { - /* 0x6600 */ - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0000 }, - { 18, 0x0000 }, { 18, 0x0000 }, { 18, 0x0001 }, { 19, 0x0000 }, - { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, - { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, - /* 0x6700 */ - { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, - { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, { 19, 0x0000 }, - { 19, 0x0004 }, -}; -static const Summary16 hkscs2008_uni2indx_page6a[3] = { - /* 0x6a00 */ - { 20, 0x0000 }, { 20, 0x0000 }, { 20, 0x0200 }, -}; -static const Summary16 hkscs2008_uni2indx_page70[7] = { - /* 0x7000 */ - { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x0000 }, - { 21, 0x0000 }, { 21, 0x0000 }, { 21, 0x4000 }, -}; -static const Summary16 hkscs2008_uni2indx_page73[29] = { - /* 0x7300 */ - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, { 22, 0x0000 }, - { 22, 0x0010 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, - /* 0x7400 */ - { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, { 23, 0x0000 }, - { 23, 0x1000 }, { 24, 0x0000 }, { 24, 0x0000 }, { 24, 0x0000 }, - { 24, 0x0000 }, { 24, 0x0000 }, { 24, 0x0000 }, { 24, 0x0000 }, - { 24, 0x0040 }, -}; -static const Summary16 hkscs2008_uni2indx_page79[45] = { - /* 0x7900 */ - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0001 }, { 26, 0x0000 }, { 26, 0x0000 }, - /* 0x7a00 */ - { 26, 0x0000 }, { 26, 0x0000 }, { 26, 0x1000 }, { 27, 0x0004 }, - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0004 }, - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x1000 }, - /* 0x7b00 */ - { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 }, - { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x0000 }, - { 30, 0x0000 }, { 30, 0x0000 }, { 30, 0x4000 }, { 31, 0x0000 }, - { 31, 0x0020 }, -}; -static const Summary16 hkscs2008_uni2indx_page84[34] = { - /* 0x8400 */ - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0010 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, { 33, 0x0000 }, - /* 0x8500 */ - { 33, 0x0010 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, - { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, { 34, 0x0000 }, - /* 0x8600 */ - { 34, 0x0000 }, { 34, 0x0008 }, -}; -static const Summary16 hkscs2008_uni2indx_page88[10] = { - /* 0x8800 */ - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, { 35, 0x0000 }, - { 35, 0x0000 }, { 35, 0x2000 }, -}; -static const Summary16 hkscs2008_uni2indx_page8b[9] = { - /* 0x8b00 */ - { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, - { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, { 36, 0x0000 }, - { 36, 0x8000 }, -}; -static const Summary16 hkscs2008_uni2indx_page90[5] = { - /* 0x9000 */ - { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, { 37, 0x0000 }, - { 37, 0x0040 }, -}; -static const Summary16 hkscs2008_uni2indx_page92[2] = { - /* 0x9200 */ - { 38, 0x0000 }, { 38, 0x0100 }, -}; -static const Summary16 hkscs2008_uni2indx_page94[3] = { - /* 0x9400 */ - { 39, 0x0000 }, { 39, 0x0000 }, { 39, 0x8000 }, -}; -static const Summary16 hkscs2008_uni2indx_page97[5] = { - /* 0x9700 */ - { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, { 40, 0x0000 }, - { 40, 0x0400 }, -}; -static const Summary16 hkscs2008_uni2indx_page9f[13] = { - /* 0x9f00 */ - { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, - { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, { 41, 0x0000 }, - { 41, 0x0000 }, { 41, 0x00c0 }, { 43, 0x0000 }, { 43, 0x0000 }, - { 43, 0x0f80 }, -}; -static const Summary16 hkscs2008_uni2indx_page20a[9] = { - /* 0x20a00 */ - { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, - { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, { 48, 0x0000 }, - { 48, 0x0400 }, -}; -static const Summary16 hkscs2008_uni2indx_page21d[6] = { - /* 0x21d00 */ - { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, { 49, 0x0000 }, - { 49, 0x0000 }, { 49, 0x0008 }, -}; -static const Summary16 hkscs2008_uni2indx_page224[13] = { - /* 0x22400 */ - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x1000 }, - { 51, 0x1202 }, -}; -static const Summary16 hkscs2008_uni2indx_page231[22] = { - /* 0x23100 */ - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0000 }, - { 54, 0x0000 }, { 54, 0x0000 }, { 54, 0x0400 }, { 55, 0x0000 }, - /* 0x23200 */ - { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, { 55, 0x0000 }, - { 55, 0x0000 }, { 55, 0x4000 }, -}; -static const Summary16 hkscs2008_uni2indx_page235[26] = { - /* 0x23500 */ - { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, - { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, - { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0000 }, { 56, 0x0800 }, - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - /* 0x23600 */ - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x4000 }, { 58, 0x4000 }, -}; -static const Summary16 hkscs2008_uni2indx_page241[7] = { - /* 0x24100 */ - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, - { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0002 }, -}; -static const Summary16 hkscs2008_uni2indx_page258[14] = { - /* 0x25800 */ - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, - { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, { 60, 0x0000 }, - { 60, 0x0000 }, { 60, 0x4000 }, -}; -static const Summary16 hkscs2008_uni2indx_page25d[12] = { - /* 0x25d00 */ - { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, - { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, { 61, 0x0000 }, - { 61, 0x0000 }, { 61, 0x0200 }, { 62, 0x0000 }, { 62, 0x0200 }, -}; -static const Summary16 hkscs2008_uni2indx_page260[3] = { - /* 0x26000 */ - { 63, 0x0000 }, { 63, 0x0000 }, { 63, 0x0002 }, -}; -static const Summary16 hkscs2008_uni2indx_page26e[9] = { - /* 0x26e00 */ - { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, - { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, { 64, 0x0000 }, - { 64, 0x0100 }, -}; -static const Summary16 hkscs2008_uni2indx_page27b[7] = { - /* 0x27b00 */ - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0000 }, - { 65, 0x0000 }, { 65, 0x0000 }, { 65, 0x0020 }, -}; -static const Summary16 hkscs2008_uni2indx_page289[1] = { - /* 0x28900 */ - { 66, 0x2000 }, -}; -static const Summary16 hkscs2008_uni2indx_page2ad[16] = { - /* 0x2ad00 */ - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, - { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x0000 }, { 67, 0x8000 }, -}; - -static int -hkscs2008_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x3400 && wc < 0x34f0) - summary = &hkscs2008_uni2indx_page34[(wc>>4)-0x340]; - else if (wc >= 0x3800 && wc < 0x3880) - summary = &hkscs2008_uni2indx_page38[(wc>>4)-0x380]; - else if (wc >= 0x3a00 && wc < 0x3b00) - summary = &hkscs2008_uni2indx_page3a[(wc>>4)-0x3a0]; - else if (wc >= 0x3e00 && wc < 0x3ef0) - summary = &hkscs2008_uni2indx_page3e[(wc>>4)-0x3e0]; - else if (wc >= 0x4000 && wc < 0x4190) - summary = &hkscs2008_uni2indx_page40[(wc>>4)-0x400]; - else if (wc >= 0x4300 && wc < 0x44f0) - summary = &hkscs2008_uni2indx_page43[(wc>>4)-0x430]; - else if (wc >= 0x4600 && wc < 0x46b0) - summary = &hkscs2008_uni2indx_page46[(wc>>4)-0x460]; - else if (wc >= 0x4900 && wc < 0x4940) - summary = &hkscs2008_uni2indx_page49[(wc>>4)-0x490]; - else if (wc >= 0x5200 && wc < 0x5250) - summary = &hkscs2008_uni2indx_page52[(wc>>4)-0x520]; - else if (wc >= 0x5400 && wc < 0x5450) - summary = &hkscs2008_uni2indx_page54[(wc>>4)-0x540]; - else if (wc >= 0x5700 && wc < 0x58a0) - summary = &hkscs2008_uni2indx_page57[(wc>>4)-0x570]; - else if (wc >= 0x6200 && wc < 0x62d0) - summary = &hkscs2008_uni2indx_page62[(wc>>4)-0x620]; - else if (wc >= 0x6600 && wc < 0x6790) - summary = &hkscs2008_uni2indx_page66[(wc>>4)-0x660]; - else if (wc >= 0x6a00 && wc < 0x6a30) - summary = &hkscs2008_uni2indx_page6a[(wc>>4)-0x6a0]; - else if (wc >= 0x7000 && wc < 0x7070) - summary = &hkscs2008_uni2indx_page70[(wc>>4)-0x700]; - else if (wc >= 0x7300 && wc < 0x74d0) - summary = &hkscs2008_uni2indx_page73[(wc>>4)-0x730]; - else if (wc >= 0x7900 && wc < 0x7bd0) - summary = &hkscs2008_uni2indx_page79[(wc>>4)-0x790]; - else if (wc >= 0x8400 && wc < 0x8620) - summary = &hkscs2008_uni2indx_page84[(wc>>4)-0x840]; - else if (wc >= 0x8800 && wc < 0x88a0) - summary = &hkscs2008_uni2indx_page88[(wc>>4)-0x880]; - else if (wc >= 0x8b00 && wc < 0x8b90) - summary = &hkscs2008_uni2indx_page8b[(wc>>4)-0x8b0]; - else if (wc >= 0x9000 && wc < 0x9050) - summary = &hkscs2008_uni2indx_page90[(wc>>4)-0x900]; - else if (wc >= 0x9200 && wc < 0x9220) - summary = &hkscs2008_uni2indx_page92[(wc>>4)-0x920]; - else if (wc >= 0x9400 && wc < 0x9430) - summary = &hkscs2008_uni2indx_page94[(wc>>4)-0x940]; - else if (wc >= 0x9700 && wc < 0x9750) - summary = &hkscs2008_uni2indx_page97[(wc>>4)-0x970]; - else if (wc >= 0x9f00 && wc < 0x9fd0) - summary = &hkscs2008_uni2indx_page9f[(wc>>4)-0x9f0]; - else if (wc >= 0x20a00 && wc < 0x20a90) - summary = &hkscs2008_uni2indx_page20a[(wc>>4)-0x20a0]; - else if (wc >= 0x21d00 && wc < 0x21d60) - summary = &hkscs2008_uni2indx_page21d[(wc>>4)-0x21d0]; - else if (wc >= 0x22400 && wc < 0x224d0) - summary = &hkscs2008_uni2indx_page224[(wc>>4)-0x2240]; - else if (wc >= 0x23100 && wc < 0x23260) - summary = &hkscs2008_uni2indx_page231[(wc>>4)-0x2310]; - else if (wc >= 0x23500 && wc < 0x236a0) - summary = &hkscs2008_uni2indx_page235[(wc>>4)-0x2350]; - else if (wc >= 0x24100 && wc < 0x24170) - summary = &hkscs2008_uni2indx_page241[(wc>>4)-0x2410]; - else if (wc >= 0x25800 && wc < 0x258e0) - summary = &hkscs2008_uni2indx_page258[(wc>>4)-0x2580]; - else if (wc >= 0x25d00 && wc < 0x25dc0) - summary = &hkscs2008_uni2indx_page25d[(wc>>4)-0x25d0]; - else if (wc >= 0x26000 && wc < 0x26030) - summary = &hkscs2008_uni2indx_page260[(wc>>4)-0x2600]; - else if (wc >= 0x26e00 && wc < 0x26e90) - summary = &hkscs2008_uni2indx_page26e[(wc>>4)-0x26e0]; - else if (wc >= 0x27b00 && wc < 0x27b70) - summary = &hkscs2008_uni2indx_page27b[(wc>>4)-0x27b0]; - else if (wc >= 0x28900 && wc < 0x28910) - summary = &hkscs2008_uni2indx_page289[(wc>>4)-0x2890]; - else if (wc >= 0x2ad00 && wc < 0x2ae00) - summary = &hkscs2008_uni2indx_page2ad[(wc>>4)-0x2ad0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = hkscs2008_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/hp_roman8.h b/jni/parted/libiconv/lib/hp_roman8.h deleted file mode 100755 index 671a166..0000000 --- a/jni/parted/libiconv/lib/hp_roman8.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * HP-ROMAN8 - */ - -static const unsigned short hp_roman8_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x00c0, 0x00c2, 0x00c8, 0x00ca, 0x00cb, 0x00ce, 0x00cf, - 0x00b4, 0x02cb, 0x02c6, 0x00a8, 0x02dc, 0x00d9, 0x00db, 0x20a4, - /* 0xb0 */ - 0x00af, 0x00dd, 0x00fd, 0x00b0, 0x00c7, 0x00e7, 0x00d1, 0x00f1, - 0x00a1, 0x00bf, 0x00a4, 0x00a3, 0x00a5, 0x00a7, 0x0192, 0x00a2, - /* 0xc0 */ - 0x00e2, 0x00ea, 0x00f4, 0x00fb, 0x00e1, 0x00e9, 0x00f3, 0x00fa, - 0x00e0, 0x00e8, 0x00f2, 0x00f9, 0x00e4, 0x00eb, 0x00f6, 0x00fc, - /* 0xd0 */ - 0x00c5, 0x00ee, 0x00d8, 0x00c6, 0x00e5, 0x00ed, 0x00f8, 0x00e6, - 0x00c4, 0x00ec, 0x00d6, 0x00dc, 0x00c9, 0x00ef, 0x00df, 0x00d4, - /* 0xe0 */ - 0x00c1, 0x00c3, 0x00e3, 0x00d0, 0x00f0, 0x00cd, 0x00cc, 0x00d3, - 0x00d2, 0x00d5, 0x00f5, 0x0160, 0x0161, 0x00da, 0x0178, 0x00ff, - /* 0xf0 */ - 0x00de, 0x00fe, 0x00b7, 0x00b5, 0x00b6, 0x00be, 0x2014, 0x00bc, - 0x00bd, 0x00aa, 0x00ba, 0x00ab, 0x25a0, 0x00bb, 0x00b1, 0xfffd, -}; - -static int -hp_roman8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = hp_roman8_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char hp_roman8_page00[96] = { - 0xa0, 0xb8, 0xbf, 0xbb, 0xba, 0xbc, 0x00, 0xbd, /* 0xa0-0xa7 */ - 0xab, 0x00, 0xf9, 0xfb, 0x00, 0x00, 0x00, 0xb0, /* 0xa8-0xaf */ - 0xb3, 0xfe, 0x00, 0x00, 0xa8, 0xf3, 0xf4, 0xf2, /* 0xb0-0xb7 */ - 0x00, 0x00, 0xfa, 0xfd, 0xf7, 0xf8, 0xf5, 0xb9, /* 0xb8-0xbf */ - 0xa1, 0xe0, 0xa2, 0xe1, 0xd8, 0xd0, 0xd3, 0xb4, /* 0xc0-0xc7 */ - 0xa3, 0xdc, 0xa4, 0xa5, 0xe6, 0xe5, 0xa6, 0xa7, /* 0xc8-0xcf */ - 0xe3, 0xb6, 0xe8, 0xe7, 0xdf, 0xe9, 0xda, 0x00, /* 0xd0-0xd7 */ - 0xd2, 0xad, 0xed, 0xae, 0xdb, 0xb1, 0xf0, 0xde, /* 0xd8-0xdf */ - 0xc8, 0xc4, 0xc0, 0xe2, 0xcc, 0xd4, 0xd7, 0xb5, /* 0xe0-0xe7 */ - 0xc9, 0xc5, 0xc1, 0xcd, 0xd9, 0xd5, 0xd1, 0xdd, /* 0xe8-0xef */ - 0xe4, 0xb7, 0xca, 0xc6, 0xc2, 0xea, 0xce, 0x00, /* 0xf0-0xf7 */ - 0xd6, 0xcb, 0xc7, 0xc3, 0xcf, 0xb2, 0xf1, 0xef, /* 0xf8-0xff */ -}; -static const unsigned char hp_roman8_page01[56] = { - 0xeb, 0xec, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char hp_roman8_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -hp_roman8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = hp_roman8_page00[wc-0x00a0]; - else if (wc >= 0x0160 && wc < 0x0198) - c = hp_roman8_page01[wc-0x0160]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = hp_roman8_page02[wc-0x02c0]; - else if (wc == 0x2014) - c = 0xf6; - else if (wc == 0x20a4) - c = 0xaf; - else if (wc == 0x25a0) - c = 0xfc; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/hz.h b/jni/parted/libiconv/lib/hz.h deleted file mode 100755 index 9e78518..0000000 --- a/jni/parted/libiconv/lib/hz.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * HZ - */ - -/* Specification: RFC 1842, RFC 1843 */ - -/* - * The state is 1 in GB mode, 0 in ASCII mode. - */ - -static int -hz_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - unsigned int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == '~') { - if (n < count+2) - goto none; - c = s[1]; - if (state == 0) { - if (c == '~') { - *pwc = (ucs4_t) '~'; - conv->istate = state; - return count+2; - } - if (c == '{') { - state = 1; - s += 2; count += 2; - if (n < count+1) - goto none; - continue; - } - if (c == '\n') { - s += 2; count += 2; - if (n < count+1) - goto none; - continue; - } - } else { - if (c == '}') { - state = 0; - s += 2; count += 2; - if (n < count+1) - goto none; - continue; - } - } - goto ilseq; - } - break; - } - if (state == 0) { - *pwc = (ucs4_t) c; - conv->istate = state; - return count+1; - } else { - int ret; - if (n < count+2) - goto none; - ret = gb2312_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } - -none: - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -hz_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - unsigned char buf[2]; - int ret; - - /* Code set 0 (ASCII or GB 1988-89) */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state ? 3 : 1); - if (n < count) - return RET_TOOSMALL; - if (state) { - r[0] = '~'; - r[1] = '}'; - r += 2; - state = 0; - } - r[0] = buf[0]; - conv->ostate = state; - return count; - } - } - - /* Code set 1 (GB 2312-1980) */ - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state ? 2 : 4); - if (n < count) - return RET_TOOSMALL; - if (!state) { - r[0] = '~'; - r[1] = '{'; - r += 2; - state = 1; - } - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -hz_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - if (state) { - if (n < 2) - return RET_TOOSMALL; - r[0] = '~'; - r[1] = '}'; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/iconv.c b/jni/parted/libiconv/lib/iconv.c deleted file mode 100755 index 673457e..0000000 --- a/jni/parted/libiconv/lib/iconv.c +++ /dev/null @@ -1,629 +0,0 @@ -/* - * Copyright (C) 1999-2008, 2011, 2016, 2018, 2020, 2022 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -#include - -#include -#include -#include -#include "config.h" -#include "localcharset.h" - -#ifdef __CYGWIN__ -#include -#endif - -#if ENABLE_EXTRA -/* - * Consider all system dependent encodings, for any system, - * and the extra encodings. - */ -#define USE_AIX -#define USE_OSF1 -#define USE_DOS -#define USE_ZOS -#define USE_EXTRA -#else -/* - * Consider those system dependent encodings that are needed for the - * current system. - */ -#ifdef _AIX -#define USE_AIX -#endif -#if defined(__osf__) || defined(VMS) -#define USE_OSF1 -#endif -#if defined(__DJGPP__) || (defined(_WIN32) && (defined(_MSC_VER) || defined(__MINGW32__))) -#define USE_DOS -#endif -/* Enable the EBCDIC encodings not only on z/OS but also on Linux/s390, for - easier interoperability between z/OS and Linux/s390. */ -#if defined(__MVS__) || (defined(__linux__) && (defined(__s390__) || defined(__s390x__))) -#define USE_ZOS -#endif -#endif - -/* - * Data type for general conversion loop. - */ -struct loop_funcs { - size_t (*loop_convert) (iconv_t icd, - const char* * inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft); - size_t (*loop_reset) (iconv_t icd, - char* * outbuf, size_t *outbytesleft); -}; - -/* - * Converters. - */ -#include "converters.h" - -/* - * Transliteration tables. - */ -#include "cjk_variants.h" -#include "translit.h" - -/* - * Table of all supported encodings. - */ -struct encoding { - struct mbtowc_funcs ifuncs; /* conversion multibyte -> unicode */ - struct wctomb_funcs ofuncs; /* conversion unicode -> multibyte */ - int oflags; /* flags for unicode -> multibyte conversion */ -}; -#define DEFALIAS(xxx_alias,xxx) /* nothing */ -enum { -#define DEFENCODING(xxx_names,xxx,xxx_ifuncs1,xxx_ifuncs2,xxx_ofuncs1,xxx_ofuncs2) \ - ei_##xxx , -#include "encodings.def" -#ifdef USE_AIX -# include "encodings_aix.def" -#endif -#ifdef USE_OSF1 -# include "encodings_osf1.def" -#endif -#ifdef USE_DOS -# include "encodings_dos.def" -#endif -#ifdef USE_ZOS -# include "encodings_zos.def" -#endif -#ifdef USE_EXTRA -# include "encodings_extra.def" -#endif -#include "encodings_local.def" -#undef DEFENCODING -ei_for_broken_compilers_that_dont_like_trailing_commas -}; -#include "flags.h" -static struct encoding const all_encodings[] = { -#define DEFENCODING(xxx_names,xxx,xxx_ifuncs1,xxx_ifuncs2,xxx_ofuncs1,xxx_ofuncs2) \ - { xxx_ifuncs1,xxx_ifuncs2, xxx_ofuncs1,xxx_ofuncs2, ei_##xxx##_oflags }, -#include "encodings.def" -#ifdef USE_AIX -# include "encodings_aix.def" -#endif -#ifdef USE_OSF1 -# include "encodings_osf1.def" -#endif -#ifdef USE_DOS -# include "encodings_dos.def" -#endif -#ifdef USE_ZOS -# include "encodings_zos.def" -#endif -#ifdef USE_EXTRA -# include "encodings_extra.def" -#endif -#undef DEFENCODING -#define DEFENCODING(xxx_names,xxx,xxx_ifuncs1,xxx_ifuncs2,xxx_ofuncs1,xxx_ofuncs2) \ - { xxx_ifuncs1,xxx_ifuncs2, xxx_ofuncs1,xxx_ofuncs2, 0 }, -#include "encodings_local.def" -#undef DEFENCODING -}; -#undef DEFALIAS - -/* - * Conversion loops. - */ -#include "loops.h" - -/* - * Alias lookup function. - * Defines - * struct alias { int name; unsigned int encoding_index; }; - * const struct alias * aliases_lookup (const char *str, unsigned int len); - * #define MAX_WORD_LENGTH ... - */ -#if defined _AIX -# include "aliases_sysaix.h" -#elif defined hpux || defined __hpux -# include "aliases_syshpux.h" -#elif defined __osf__ -# include "aliases_sysosf1.h" -#elif defined __sun -# include "aliases_syssolaris.h" -#else -# include "aliases.h" -#endif - -/* - * System dependent alias lookup function. - * Defines - * const struct alias * aliases2_lookup (const char *str); - */ -#if defined(USE_AIX) || defined(USE_OSF1) || defined(USE_DOS) || defined(USE_ZOS) || defined(USE_EXTRA) /* || ... */ -struct stringpool2_t { -#define S(tag,name,encoding_index) char stringpool_##tag[sizeof(name)]; -#include "aliases2.h" -#undef S -}; -static const struct stringpool2_t stringpool2_contents = { -#define S(tag,name,encoding_index) name, -#include "aliases2.h" -#undef S -}; -#define stringpool2 ((const char *) &stringpool2_contents) -static const struct alias sysdep_aliases[] = { -#define S(tag,name,encoding_index) { (int)(long)&((struct stringpool2_t *)0)->stringpool_##tag, encoding_index }, -#include "aliases2.h" -#undef S -}; -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const struct alias * -aliases2_lookup (register const char *str) -{ - const struct alias * ptr; - unsigned int count; - for (ptr = sysdep_aliases, count = sizeof(sysdep_aliases)/sizeof(sysdep_aliases[0]); count > 0; ptr++, count--) - if (!strcmp(str, stringpool2 + ptr->name)) - return ptr; - return NULL; -} -#else -#define aliases2_lookup(str) NULL -#define stringpool2 NULL -#endif - -#if 0 -/* Like !strcasecmp, except that the both strings can be assumed to be ASCII - and the first string can be assumed to be in uppercase. */ -static int strequal (const char* str1, const char* str2) -{ - unsigned char c1; - unsigned char c2; - for (;;) { - c1 = * (unsigned char *) str1++; - c2 = * (unsigned char *) str2++; - if (c1 == 0) - break; - if (c2 >= 'a' && c2 <= 'z') - c2 -= 'a'-'A'; - if (c1 != c2) - break; - } - return (c1 == c2); -} -#endif - -iconv_t iconv_open (const char* tocode, const char* fromcode) -{ - struct conv_struct * cd; - unsigned int from_index; - int from_wchar; - unsigned int to_index; - int to_wchar; - int transliterate; - int discard_ilseq; - -#include "iconv_open1.h" - - cd = (struct conv_struct *) malloc(from_wchar != to_wchar - ? sizeof(struct wchar_conv_struct) - : sizeof(struct conv_struct)); - if (cd == NULL) { - errno = ENOMEM; - return (iconv_t)(-1); - } - -#include "iconv_open2.h" - - return (iconv_t)cd; -invalid: - errno = EINVAL; - return (iconv_t)(-1); -} - -size_t iconv (iconv_t icd, - ICONV_CONST char* * inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft) -{ - conv_t cd = (conv_t) icd; - if (inbuf == NULL || *inbuf == NULL) - return cd->lfuncs.loop_reset(icd,outbuf,outbytesleft); - else - return cd->lfuncs.loop_convert(icd, - (const char* *)inbuf,inbytesleft, - outbuf,outbytesleft); -} - -int iconv_close (iconv_t icd) -{ - conv_t cd = (conv_t) icd; - free(cd); - return 0; -} - -#ifndef LIBICONV_PLUG - -/* - * Verify that a 'struct conv_struct' and a 'struct wchar_conv_struct' each - * fit in an iconv_allocation_t. - * If this verification fails, iconv_allocation_t must be made larger and - * the major version in LIBICONV_VERSION_INFO must be bumped. - * Currently 'struct conv_struct' has 21 integer/pointer fields, and - * 'struct wchar_conv_struct' additionally has an 'mbstate_t' field. - */ -typedef int verify_size_1[2 * (sizeof (struct conv_struct) <= sizeof (iconv_allocation_t)) - 1]; -typedef int verify_size_2[2 * (sizeof (struct wchar_conv_struct) <= sizeof (iconv_allocation_t)) - 1]; - -int iconv_open_into (const char* tocode, const char* fromcode, - iconv_allocation_t* resultp) -{ - struct conv_struct * cd; - unsigned int from_index; - int from_wchar; - unsigned int to_index; - int to_wchar; - int transliterate; - int discard_ilseq; - -#include "iconv_open1.h" - - cd = (struct conv_struct *) resultp; - -#include "iconv_open2.h" - - return 0; -invalid: - errno = EINVAL; - return -1; -} - -int iconvctl (iconv_t icd, int request, void* argument) -{ - conv_t cd = (conv_t) icd; - switch (request) { - case ICONV_TRIVIALP: - *(int *)argument = - ((cd->lfuncs.loop_convert == unicode_loop_convert - && cd->iindex == cd->oindex) - || cd->lfuncs.loop_convert == wchar_id_loop_convert - ? 1 : 0); - return 0; - case ICONV_GET_TRANSLITERATE: - *(int *)argument = cd->transliterate; - return 0; - case ICONV_SET_TRANSLITERATE: - cd->transliterate = (*(const int *)argument ? 1 : 0); - return 0; - case ICONV_GET_DISCARD_ILSEQ: - *(int *)argument = cd->discard_ilseq; - return 0; - case ICONV_SET_DISCARD_ILSEQ: - cd->discard_ilseq = (*(const int *)argument ? 1 : 0); - return 0; - case ICONV_SET_HOOKS: - if (argument != NULL) { - cd->hooks = *(const struct iconv_hooks *)argument; - } else { - cd->hooks.uc_hook = NULL; - cd->hooks.wc_hook = NULL; - cd->hooks.data = NULL; - } - return 0; - case ICONV_SET_FALLBACKS: - if (argument != NULL) { - cd->fallbacks = *(const struct iconv_fallbacks *)argument; - } else { - cd->fallbacks.mb_to_uc_fallback = NULL; - cd->fallbacks.uc_to_mb_fallback = NULL; - cd->fallbacks.mb_to_wc_fallback = NULL; - cd->fallbacks.wc_to_mb_fallback = NULL; - cd->fallbacks.data = NULL; - } - return 0; - default: - errno = EINVAL; - return -1; - } -} - -/* An alias after its name has been converted from 'int' to 'const char*'. */ -struct nalias { const char* name; unsigned int encoding_index; }; - -static int compare_by_index (const void * arg1, const void * arg2) -{ - const struct nalias * alias1 = (const struct nalias *) arg1; - const struct nalias * alias2 = (const struct nalias *) arg2; - return (int)alias1->encoding_index - (int)alias2->encoding_index; -} - -static int compare_by_name (const void * arg1, const void * arg2) -{ - const char * name1 = *(const char * const *)arg1; - const char * name2 = *(const char * const *)arg2; - /* Compare alphabetically, but put "CS" names at the end. */ - int sign = strcmp(name1,name2); - if (sign != 0) { - sign = ((name1[0]=='C' && name1[1]=='S') - (name2[0]=='C' && name2[1]=='S')) - * 4 + (sign >= 0 ? 1 : -1); - } - return sign; -} - -void iconvlist (int (*do_one) (unsigned int namescount, - const char * const * names, - void* data), - void* data) -{ -#define aliascount1 sizeof(aliases)/sizeof(aliases[0]) -#ifndef aliases2_lookup -#define aliascount2 sizeof(sysdep_aliases)/sizeof(sysdep_aliases[0]) -#else -#define aliascount2 0 -#endif -#define aliascount (aliascount1+aliascount2) - struct nalias aliasbuf[aliascount]; - const char * namesbuf[aliascount]; - size_t num_aliases; - { - /* Put all existing aliases into a buffer. */ - size_t i; - size_t j; - j = 0; - for (i = 0; i < aliascount1; i++) { - const struct alias * p = &aliases[i]; - if (p->name >= 0 - && p->encoding_index != ei_local_char - && p->encoding_index != ei_local_wchar_t) { - aliasbuf[j].name = stringpool + p->name; - aliasbuf[j].encoding_index = p->encoding_index; - j++; - } - } -#ifndef aliases2_lookup - for (i = 0; i < aliascount2; i++) { - aliasbuf[j].name = stringpool2 + sysdep_aliases[i].name; - aliasbuf[j].encoding_index = sysdep_aliases[i].encoding_index; - j++; - } -#endif - num_aliases = j; - } - /* Sort by encoding_index. */ - if (num_aliases > 1) - qsort(aliasbuf, num_aliases, sizeof(struct nalias), compare_by_index); - { - /* Process all aliases with the same encoding_index together. */ - size_t j; - j = 0; - while (j < num_aliases) { - unsigned int ei = aliasbuf[j].encoding_index; - size_t i = 0; - do - namesbuf[i++] = aliasbuf[j++].name; - while (j < num_aliases && aliasbuf[j].encoding_index == ei); - if (i > 1) - qsort(namesbuf, i, sizeof(const char *), compare_by_name); - /* Call the callback. */ - if (do_one(i,namesbuf,data)) - break; - } - } -#undef aliascount -#undef aliascount2 -#undef aliascount1 -} - -/* - * Table of canonical names of encodings. - * Instead of strings, it contains offsets into stringpool and stringpool2. - */ -static const unsigned short all_canonical[] = { -#if defined _AIX -# include "canonical_sysaix.h" -#elif defined hpux || defined __hpux -# include "canonical_syshpux.h" -#elif defined __osf__ -# include "canonical_sysosf1.h" -#elif defined __sun -# include "canonical_syssolaris.h" -#else -# include "canonical.h" -#endif -#ifdef USE_AIX -# if defined _AIX -# include "canonical_aix_sysaix.h" -# else -# include "canonical_aix.h" -# endif -#endif -#ifdef USE_OSF1 -# if defined __osf__ -# include "canonical_osf1_sysosf1.h" -# else -# include "canonical_osf1.h" -# endif -#endif -#ifdef USE_DOS -# include "canonical_dos.h" -#endif -#ifdef USE_ZOS -# include "canonical_zos.h" -#endif -#ifdef USE_EXTRA -# include "canonical_extra.h" -#endif -#if defined _AIX -# include "canonical_local_sysaix.h" -#elif defined hpux || defined __hpux -# include "canonical_local_syshpux.h" -#elif defined __osf__ -# include "canonical_local_sysosf1.h" -#elif defined __sun -# include "canonical_local_syssolaris.h" -#else -# include "canonical_local.h" -#endif -}; - -const char * iconv_canonicalize (const char * name) -{ - const char* code; - char buf[MAX_WORD_LENGTH+10+1]; - const char* cp; - char* bp; - const struct alias * ap; - unsigned int count; - unsigned int index; - const char* pool; - - /* Before calling aliases_lookup, convert the input string to upper case, - * and check whether it's entirely ASCII (we call gperf with option "-7" - * to achieve a smaller table) and non-empty. If it's not entirely ASCII, - * or if it's too long, it is not a valid encoding name. - */ - for (code = name;;) { - /* Search code in the table. */ - for (cp = code, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { - unsigned char c = (unsigned char) *cp; - if (c >= 0x80) - goto invalid; - if (c >= 'a' && c <= 'z') - c -= 'a'-'A'; - *bp = c; - if (c == '\0') - break; - if (--count == 0) - goto invalid; - } - for (;;) { - if (bp-buf >= 10 && memcmp(bp-10,"//TRANSLIT",10)==0) { - bp -= 10; - *bp = '\0'; - continue; - } - if (bp-buf >= 8 && memcmp(bp-8,"//IGNORE",8)==0) { - bp -= 8; - *bp = '\0'; - continue; - } - break; - } - if (buf[0] == '\0') { - code = locale_charset(); - /* Avoid an endless loop that could occur when using an older version - of localcharset.c. */ - if (code[0] == '\0') - goto invalid; - continue; - } - pool = stringpool; - ap = aliases_lookup(buf,bp-buf); - if (ap == NULL) { - pool = stringpool2; - ap = aliases2_lookup(buf); - if (ap == NULL) - goto invalid; - } - if (ap->encoding_index == ei_local_char) { - code = locale_charset(); - /* Avoid an endless loop that could occur when using an older version - of localcharset.c. */ - if (code[0] == '\0') - goto invalid; - continue; - } - if (ap->encoding_index == ei_local_wchar_t) { - /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. - This is also the case on native Woe32 systems and Cygwin >= 1.7, where - we know that it is UTF-16. */ -#if (defined _WIN32 && !defined __CYGWIN__) || (defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007) - if (sizeof(wchar_t) == 4) { - index = ei_ucs4internal; - break; - } - if (sizeof(wchar_t) == 2) { -# if WORDS_LITTLEENDIAN - index = ei_utf16le; -# else - index = ei_utf16be; -# endif - break; - } -#elif __STDC_ISO_10646__ - if (sizeof(wchar_t) == 4) { - index = ei_ucs4internal; - break; - } - if (sizeof(wchar_t) == 2) { - index = ei_ucs2internal; - break; - } - if (sizeof(wchar_t) == 1) { - index = ei_iso8859_1; - break; - } -#endif - } - index = ap->encoding_index; - break; - } - return all_canonical[index] + pool; - invalid: - return name; -} - -int _libiconv_version = _LIBICONV_VERSION; - -#if defined __FreeBSD__ && !defined __gnu_freebsd__ -/* GNU libiconv is the native FreeBSD iconv implementation since 2002. - It wants to define the symbols 'iconv_open', 'iconv', 'iconv_close'. */ -#define strong_alias(name, aliasname) _strong_alias(name, aliasname) -#define _strong_alias(name, aliasname) \ - extern __typeof (name) aliasname __attribute__ ((alias (#name))); -#undef iconv_open -#undef iconv -#undef iconv_close -strong_alias (libiconv_open, iconv_open) -strong_alias (libiconv, iconv) -strong_alias (libiconv_close, iconv_close) -#endif - -#endif diff --git a/jni/parted/libiconv/lib/iconv_open1.h b/jni/parted/libiconv/lib/iconv_open1.h deleted file mode 100755 index c6b24ef..0000000 --- a/jni/parted/libiconv/lib/iconv_open1.h +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright (C) 1999-2008, 2011, 2018, 2020 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* Part 1 of iconv_open. - Input: const char* tocode, const char* fromcode. - Output: - unsigned int from_index; - int from_wchar; - unsigned int to_index; - int to_wchar; - int transliterate; - int discard_ilseq; - Jumps to 'invalid' in case of errror. - */ -{ - char buf[MAX_WORD_LENGTH+10+1]; - const char* cp; - char* bp; - const struct alias * ap; - unsigned int count; - - transliterate = 0; - discard_ilseq = 0; - - /* Before calling aliases_lookup, convert the input string to upper case, - * and check whether it's entirely ASCII (we call gperf with option "-7" - * to achieve a smaller table) and non-empty. If it's not entirely ASCII, - * or if it's too long, it is not a valid encoding name. - */ - for (to_wchar = 0;;) { - /* Search tocode in the table. */ - for (cp = tocode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { - unsigned char c = (unsigned char) *cp; - if (c >= 0x80) - goto invalid; - if (c >= 'a' && c <= 'z') - c -= 'a'-'A'; - *bp = c; - if (c == '\0') - break; - if (--count == 0) - goto invalid; - } - for (;;) { - if (bp-buf >= 10 && memcmp(bp-10,"//TRANSLIT",10)==0) { - bp -= 10; - *bp = '\0'; - transliterate = 1; - continue; - } - if (bp-buf >= 8 && memcmp(bp-8,"//IGNORE",8)==0) { - bp -= 8; - *bp = '\0'; - discard_ilseq = 1; - continue; - } - break; - } - if (buf[0] == '\0') { - tocode = locale_charset(); - /* Avoid an endless loop that could occur when using an older version - of localcharset.c. */ - if (tocode[0] == '\0') - goto invalid; - continue; - } - ap = aliases_lookup(buf,bp-buf); - if (ap == NULL) { - ap = aliases2_lookup(buf); - if (ap == NULL) - goto invalid; - } - if (ap->encoding_index == ei_local_char) { - tocode = locale_charset(); - /* Avoid an endless loop that could occur when using an older version - of localcharset.c. */ - if (tocode[0] == '\0') - goto invalid; - continue; - } - if (ap->encoding_index == ei_local_wchar_t) { - /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. - This is also the case on native Woe32 systems and Cygwin >= 1.7, where - we know that it is UTF-16. */ -#if (defined _WIN32 && !defined __CYGWIN__) || (defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007) - if (sizeof(wchar_t) == 4) { - to_index = ei_ucs4internal; - break; - } - if (sizeof(wchar_t) == 2) { -# if WORDS_LITTLEENDIAN - to_index = ei_utf16le; -# else - to_index = ei_utf16be; -# endif - break; - } -#elif __STDC_ISO_10646__ - if (sizeof(wchar_t) == 4) { - to_index = ei_ucs4internal; - break; - } - if (sizeof(wchar_t) == 2) { - to_index = ei_ucs2internal; - break; - } - if (sizeof(wchar_t) == 1) { - to_index = ei_iso8859_1; - break; - } -#endif -#if HAVE_MBRTOWC - to_wchar = 1; - tocode = locale_charset(); - continue; -#endif - goto invalid; - } - to_index = ap->encoding_index; - break; - } - for (from_wchar = 0;;) { - /* Search fromcode in the table. */ - for (cp = fromcode, bp = buf, count = MAX_WORD_LENGTH+10+1; ; cp++, bp++) { - unsigned char c = (unsigned char) *cp; - if (c >= 0x80) - goto invalid; - if (c >= 'a' && c <= 'z') - c -= 'a'-'A'; - *bp = c; - if (c == '\0') - break; - if (--count == 0) - goto invalid; - } - for (;;) { - if (bp-buf >= 10 && memcmp(bp-10,"//TRANSLIT",10)==0) { - bp -= 10; - *bp = '\0'; - continue; - } - if (bp-buf >= 8 && memcmp(bp-8,"//IGNORE",8)==0) { - bp -= 8; - *bp = '\0'; - continue; - } - break; - } - if (buf[0] == '\0') { - fromcode = locale_charset(); - /* Avoid an endless loop that could occur when using an older version - of localcharset.c. */ - if (fromcode[0] == '\0') - goto invalid; - continue; - } - ap = aliases_lookup(buf,bp-buf); - if (ap == NULL) { - ap = aliases2_lookup(buf); - if (ap == NULL) - goto invalid; - } - if (ap->encoding_index == ei_local_char) { - fromcode = locale_charset(); - /* Avoid an endless loop that could occur when using an older version - of localcharset.c. */ - if (fromcode[0] == '\0') - goto invalid; - continue; - } - if (ap->encoding_index == ei_local_wchar_t) { - /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. - This is also the case on native Woe32 systems and Cygwin >= 1.7, where - we know that it is UTF-16. */ -#if (defined _WIN32 && !defined __CYGWIN__) || (defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007) - if (sizeof(wchar_t) == 4) { - from_index = ei_ucs4internal; - break; - } - if (sizeof(wchar_t) == 2) { -# if WORDS_LITTLEENDIAN - from_index = ei_utf16le; -# else - from_index = ei_utf16be; -# endif - break; - } -#elif __STDC_ISO_10646__ - if (sizeof(wchar_t) == 4) { - from_index = ei_ucs4internal; - break; - } - if (sizeof(wchar_t) == 2) { - from_index = ei_ucs2internal; - break; - } - if (sizeof(wchar_t) == 1) { - from_index = ei_iso8859_1; - break; - } -#endif -#if HAVE_WCRTOMB - from_wchar = 1; - fromcode = locale_charset(); - continue; -#endif - goto invalid; - } - from_index = ap->encoding_index; - break; - } -} diff --git a/jni/parted/libiconv/lib/iconv_open2.h b/jni/parted/libiconv/lib/iconv_open2.h deleted file mode 100755 index aaac547..0000000 --- a/jni/parted/libiconv/lib/iconv_open2.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 1999-2009 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* Part 2 of iconv_open. - Input: - struct conv_struct * cd; - unsigned int from_index; - int from_wchar; - unsigned int to_index; - int to_wchar; - int transliterate; - int discard_ilseq; - Output: none. - Side effects: Fills cd. - */ - - cd->iindex = from_index; - cd->ifuncs = all_encodings[from_index].ifuncs; - cd->oindex = to_index; - cd->ofuncs = all_encodings[to_index].ofuncs; - cd->oflags = all_encodings[to_index].oflags; - /* Initialize the loop functions. */ -#if HAVE_MBRTOWC - if (to_wchar) { -#if HAVE_WCRTOMB - if (from_wchar) { - cd->lfuncs.loop_convert = wchar_id_loop_convert; - cd->lfuncs.loop_reset = wchar_id_loop_reset; - } else -#endif - { - cd->lfuncs.loop_convert = wchar_to_loop_convert; - cd->lfuncs.loop_reset = wchar_to_loop_reset; - } - } else -#endif - { -#if HAVE_WCRTOMB - if (from_wchar) { - cd->lfuncs.loop_convert = wchar_from_loop_convert; - cd->lfuncs.loop_reset = wchar_from_loop_reset; - } else -#endif - { - cd->lfuncs.loop_convert = unicode_loop_convert; - cd->lfuncs.loop_reset = unicode_loop_reset; - } - } - /* Initialize the states. */ - memset(&cd->istate,'\0',sizeof(state_t)); - memset(&cd->ostate,'\0',sizeof(state_t)); - /* Initialize the operation flags. */ - cd->transliterate = transliterate; - cd->discard_ilseq = discard_ilseq; - #ifndef LIBICONV_PLUG - cd->fallbacks.mb_to_uc_fallback = NULL; - cd->fallbacks.uc_to_mb_fallback = NULL; - cd->fallbacks.mb_to_wc_fallback = NULL; - cd->fallbacks.wc_to_mb_fallback = NULL; - cd->fallbacks.data = NULL; - cd->hooks.uc_hook = NULL; - cd->hooks.wc_hook = NULL; - cd->hooks.data = NULL; - #endif - /* Initialize additional fields. */ - if (from_wchar != to_wchar) { - struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) cd; -#if HAVE_WCRTOMB || HAVE_MBRTOWC - memset(&wcd->state,'\0',sizeof(mbstate_t)); -#endif - } - /* Done. */ diff --git a/jni/parted/libiconv/lib/iso2022_cn.h b/jni/parted/libiconv/lib/iso2022_cn.h deleted file mode 100755 index 800863c..0000000 --- a/jni/parted/libiconv/lib/iso2022_cn.h +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-CN - */ - -/* Specification: RFC 1922 */ - -#define ESC 0x1b -#define SO 0x0e -#define SI 0x0f - -/* - * The state is composed of one of the following values - */ -#define STATE_ASCII 0 -#define STATE_TWOBYTE 1 -/* - * and one of the following values, << 8 - */ -#define STATE2_NONE 0 -#define STATE2_DESIGNATED_GB2312 1 -#define STATE2_DESIGNATED_CNS11643_1 2 -/* - * and one of the following values, << 16 - */ -#define STATE3_NONE 0 -#define STATE3_DESIGNATED_CNS11643_2 1 - -#define SPLIT_STATE \ - unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = state >> 16 -#define COMBINE_STATE \ - state = (state3 << 16) | (state2 << 8) | state1 - -static int -iso2022_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - SPLIT_STATE; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+4) - goto none; - if (s[1] == '$') { - if (s[2] == ')') { - if (s[3] == 'A') { - state2 = STATE2_DESIGNATED_GB2312; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'G') { - state2 = STATE2_DESIGNATED_CNS11643_1; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - if (s[2] == '*') { - if (s[3] == 'H') { - state3 = STATE3_DESIGNATED_CNS11643_2; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - } - if (s[1] == 'N') { - switch (state3) { - case STATE3_NONE: - goto ilseq; - case STATE3_DESIGNATED_CNS11643_2: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_2_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - default: abort(); - } - } - goto ilseq; - } - if (c == SO) { - if (state2 != STATE2_DESIGNATED_GB2312 && state2 != STATE2_DESIGNATED_CNS11643_1) - goto ilseq; - state1 = STATE_TWOBYTE; - s++; count++; - if (n < count+1) - goto none; - continue; - } - if (c == SI) { - state1 = STATE_ASCII; - s++; count++; - if (n < count+1) - goto none; - continue; - } - break; - } - switch (state1) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - if (*pwc == 0x000a || *pwc == 0x000d) { - state2 = STATE2_NONE; state3 = STATE3_NONE; - } - COMBINE_STATE; - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_TWOBYTE: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret; - switch (state2) { - case STATE2_NONE: - goto ilseq; - case STATE2_DESIGNATED_GB2312: - ret = gb2312_mbtowc(conv,pwc,s,2); break; - case STATE2_DESIGNATED_CNS11643_1: - ret = cns11643_1_mbtowc(conv,pwc,s,2); break; - default: abort(); - } - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - COMBINE_STATE; - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - COMBINE_STATE; - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -iso2022_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - unsigned char buf[3]; - int ret; - - /* There is no need to handle Unicode 3.1 tag characters and to look for - "zh-CN" or "zh-TW" tags, because GB2312 and CNS11643 are disjoint. */ - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state1 == STATE_ASCII ? 1 : 2); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_ASCII) { - r[0] = SI; - r += 1; - state1 = STATE_ASCII; - } - r[0] = buf[0]; - if (wc == 0x000a || wc == 0x000d) { - state2 = STATE2_NONE; state3 = STATE3_NONE; - } - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - /* Try GB 2312-1980. */ - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state2 == STATE2_DESIGNATED_GB2312 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE2_DESIGNATED_GB2312) { - r[0] = ESC; - r[1] = '$'; - r[2] = ')'; - r[3] = 'A'; - r += 4; - state2 = STATE2_DESIGNATED_GB2312; - } - if (state1 != STATE_TWOBYTE) { - r[0] = SO; - r += 1; - state1 = STATE_TWOBYTE; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - ret = cns11643_wctomb(conv,buf,wc,3); - if (ret != RET_ILUNI) { - if (ret != 3) abort(); - - /* Try CNS 11643-1992 Plane 1. */ - if (buf[0] == 1 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state2 == STATE2_DESIGNATED_CNS11643_1 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE2_DESIGNATED_CNS11643_1) { - r[0] = ESC; - r[1] = '$'; - r[2] = ')'; - r[3] = 'G'; - r += 4; - state2 = STATE2_DESIGNATED_CNS11643_1; - } - if (state1 != STATE_TWOBYTE) { - r[0] = SO; - r += 1; - state1 = STATE_TWOBYTE; - } - r[0] = buf[1]; - r[1] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 2. */ - if (buf[0] == 2 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state3 == STATE3_DESIGNATED_CNS11643_2 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state3 != STATE3_DESIGNATED_CNS11643_2) { - r[0] = ESC; - r[1] = '$'; - r[2] = '*'; - r[3] = 'H'; - r += 4; - state3 = STATE3_DESIGNATED_CNS11643_2; - } - r[0] = ESC; - r[1] = 'N'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_cn_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - (void)state2; - (void)state3; - if (state1 != STATE_ASCII) { - if (n < 1) - return RET_TOOSMALL; - r[0] = SI; - /* conv->ostate = 0; will be done by the caller */ - return 1; - } else - return 0; -} - -#undef COMBINE_STATE -#undef SPLIT_STATE -#undef STATE3_DESIGNATED_CNS11643_2 -#undef STATE3_NONE -#undef STATE2_DESIGNATED_CNS11643_1 -#undef STATE2_DESIGNATED_GB2312 -#undef STATE2_NONE -#undef STATE_TWOBYTE -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_cnext.h b/jni/parted/libiconv/lib/iso2022_cnext.h deleted file mode 100755 index 8e6d309..0000000 --- a/jni/parted/libiconv/lib/iso2022_cnext.h +++ /dev/null @@ -1,589 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-CN-EXT - */ - -/* Specification: RFC 1922 */ - -#define ESC 0x1b -#define SO 0x0e -#define SI 0x0f - -/* - * The state is composed of one of the following values - */ -#define STATE_ASCII 0 -#define STATE_TWOBYTE 1 -/* - * and one of the following values, << 8 - */ -#define STATE2_NONE 0 -#define STATE2_DESIGNATED_GB2312 1 -#define STATE2_DESIGNATED_CNS11643_1 2 -#define STATE2_DESIGNATED_ISO_IR_165 3 -/* - * and one of the following values, << 16 - */ -#define STATE3_NONE 0 -#define STATE3_DESIGNATED_CNS11643_2 1 -/* - * and one of the following values, << 24 - */ -#define STATE4_NONE 0 -#define STATE4_DESIGNATED_CNS11643_3 1 -#define STATE4_DESIGNATED_CNS11643_4 2 -#define STATE4_DESIGNATED_CNS11643_5 3 -#define STATE4_DESIGNATED_CNS11643_6 4 -#define STATE4_DESIGNATED_CNS11643_7 5 - -#define SPLIT_STATE \ - unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = (state >> 16) & 0xff, state4 = state >> 24 -#define COMBINE_STATE \ - state = (state4 << 24) | (state3 << 16) | (state2 << 8) | state1 - -static int -iso2022_cn_ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - SPLIT_STATE; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+4) - goto none; - if (s[1] == '$') { - if (s[2] == ')') { - if (s[3] == 'A') { - state2 = STATE2_DESIGNATED_GB2312; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'G') { - state2 = STATE2_DESIGNATED_CNS11643_1; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'E') { - state2 = STATE2_DESIGNATED_ISO_IR_165; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - if (s[2] == '*') { - if (s[3] == 'H') { - state3 = STATE3_DESIGNATED_CNS11643_2; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - if (s[2] == '+') { - if (s[3] == 'I') { - state4 = STATE4_DESIGNATED_CNS11643_3; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'J') { - state4 = STATE4_DESIGNATED_CNS11643_4; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'K') { - state4 = STATE4_DESIGNATED_CNS11643_5; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'L') { - state4 = STATE4_DESIGNATED_CNS11643_6; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'M') { - state4 = STATE4_DESIGNATED_CNS11643_7; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - } - if (s[1] == 'N') { - switch (state3) { - case STATE3_NONE: - goto ilseq; - case STATE3_DESIGNATED_CNS11643_2: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_2_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - default: abort(); - } - } - if (s[1] == 'O') { - switch (state4) { - case STATE4_NONE: - goto ilseq; - case STATE4_DESIGNATED_CNS11643_3: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_3_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - case STATE4_DESIGNATED_CNS11643_4: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_4_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - case STATE4_DESIGNATED_CNS11643_5: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_5_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - case STATE4_DESIGNATED_CNS11643_6: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_6_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - case STATE4_DESIGNATED_CNS11643_7: - if (s[2] < 0x80 && s[3] < 0x80) { - int ret = cns11643_7_mbtowc(conv,pwc,s+2,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+4; - } else - goto ilseq; - default: abort(); - } - } - goto ilseq; - } - if (c == SO) { - if (state2 != STATE2_DESIGNATED_GB2312 && state2 != STATE2_DESIGNATED_CNS11643_1 && state2 != STATE2_DESIGNATED_ISO_IR_165) - goto ilseq; - state1 = STATE_TWOBYTE; - s++; count++; - if (n < count+1) - goto none; - continue; - } - if (c == SI) { - state1 = STATE_ASCII; - s++; count++; - if (n < count+1) - goto none; - continue; - } - break; - } - switch (state1) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - if (*pwc == 0x000a || *pwc == 0x000d) { - state2 = STATE2_NONE; state3 = STATE3_NONE; state4 = STATE3_NONE; - } - COMBINE_STATE; - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_TWOBYTE: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret; - switch (state2) { - case STATE2_NONE: - goto ilseq; - case STATE2_DESIGNATED_GB2312: - ret = gb2312_mbtowc(conv,pwc,s,2); break; - case STATE2_DESIGNATED_CNS11643_1: - ret = cns11643_1_mbtowc(conv,pwc,s,2); break; - case STATE2_DESIGNATED_ISO_IR_165: - ret = isoir165_mbtowc(conv,pwc,s,2); break; - default: abort(); - } - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - COMBINE_STATE; - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - COMBINE_STATE; - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -iso2022_cn_ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - unsigned char buf[3]; - int ret; - - /* There is no need to handle Unicode 3.1 tag characters and to look for - "zh-CN" or "zh-TW" tags, because GB2312 and CNS11643 are disjoint. */ - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state1 == STATE_ASCII ? 1 : 2); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_ASCII) { - r[0] = SI; - r += 1; - state1 = STATE_ASCII; - } - r[0] = buf[0]; - if (wc == 0x000a || wc == 0x000d) { - state2 = STATE2_NONE; state3 = STATE3_NONE; state4 = STATE3_NONE; - } - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - /* Try GB 2312-1980. */ - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state2 == STATE2_DESIGNATED_GB2312 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE2_DESIGNATED_GB2312) { - r[0] = ESC; - r[1] = '$'; - r[2] = ')'; - r[3] = 'A'; - r += 4; - state2 = STATE2_DESIGNATED_GB2312; - } - if (state1 != STATE_TWOBYTE) { - r[0] = SO; - r += 1; - state1 = STATE_TWOBYTE; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - ret = cns11643_wctomb(conv,buf,wc,3); - if (ret != RET_ILUNI) { - if (ret != 3) abort(); - - /* Try CNS 11643-1992 Plane 1. */ - if (buf[0] == 1 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state2 == STATE2_DESIGNATED_CNS11643_1 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE2_DESIGNATED_CNS11643_1) { - r[0] = ESC; - r[1] = '$'; - r[2] = ')'; - r[3] = 'G'; - r += 4; - state2 = STATE2_DESIGNATED_CNS11643_1; - } - if (state1 != STATE_TWOBYTE) { - r[0] = SO; - r += 1; - state1 = STATE_TWOBYTE; - } - r[0] = buf[1]; - r[1] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 2. */ - if (buf[0] == 2 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state3 == STATE3_DESIGNATED_CNS11643_2 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state3 != STATE3_DESIGNATED_CNS11643_2) { - r[0] = ESC; - r[1] = '$'; - r[2] = '*'; - r[3] = 'H'; - r += 4; - state3 = STATE3_DESIGNATED_CNS11643_2; - } - r[0] = ESC; - r[1] = 'N'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 3. */ - if (buf[0] == 3 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state4 == STATE4_DESIGNATED_CNS11643_3 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state4 != STATE4_DESIGNATED_CNS11643_3) { - r[0] = ESC; - r[1] = '$'; - r[2] = '+'; - r[3] = 'I'; - r += 4; - state4 = STATE4_DESIGNATED_CNS11643_3; - } - r[0] = ESC; - r[1] = 'O'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 4. */ - if (buf[0] == 4 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state4 == STATE4_DESIGNATED_CNS11643_4 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state4 != STATE4_DESIGNATED_CNS11643_4) { - r[0] = ESC; - r[1] = '$'; - r[2] = '+'; - r[3] = 'J'; - r += 4; - state4 = STATE4_DESIGNATED_CNS11643_4; - } - r[0] = ESC; - r[1] = 'O'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 5. */ - if (buf[0] == 5 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state4 == STATE4_DESIGNATED_CNS11643_5 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state4 != STATE4_DESIGNATED_CNS11643_5) { - r[0] = ESC; - r[1] = '$'; - r[2] = '+'; - r[3] = 'K'; - r += 4; - state4 = STATE4_DESIGNATED_CNS11643_5; - } - r[0] = ESC; - r[1] = 'O'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 6. */ - if (buf[0] == 6 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state4 == STATE4_DESIGNATED_CNS11643_6 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state4 != STATE4_DESIGNATED_CNS11643_6) { - r[0] = ESC; - r[1] = '$'; - r[2] = '+'; - r[3] = 'L'; - r += 4; - state4 = STATE4_DESIGNATED_CNS11643_6; - } - r[0] = ESC; - r[1] = 'O'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - /* Try CNS 11643-1992 Plane 7. */ - if (buf[0] == 7 && buf[1] < 0x80 && buf[2] < 0x80) { - int count = (state4 == STATE4_DESIGNATED_CNS11643_7 ? 0 : 4) + 4; - if (n < count) - return RET_TOOSMALL; - if (state4 != STATE4_DESIGNATED_CNS11643_7) { - r[0] = ESC; - r[1] = '$'; - r[2] = '+'; - r[3] = 'M'; - r += 4; - state4 = STATE4_DESIGNATED_CNS11643_7; - } - r[0] = ESC; - r[1] = 'O'; - r[2] = buf[1]; - r[3] = buf[2]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - - } - - /* Try ISO-IR-165. */ - ret = isoir165_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state2 == STATE2_DESIGNATED_ISO_IR_165 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE2_DESIGNATED_ISO_IR_165) { - r[0] = ESC; - r[1] = '$'; - r[2] = ')'; - r[3] = 'E'; - r += 4; - state2 = STATE2_DESIGNATED_ISO_IR_165; - } - if (state1 != STATE_TWOBYTE) { - r[0] = SO; - r += 1; - state1 = STATE_TWOBYTE; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_cn_ext_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - (void)state2; - (void)state3; - (void)state4; - if (state1 != STATE_ASCII) { - if (n < 1) - return RET_TOOSMALL; - r[0] = SI; - /* conv->ostate = 0; will be done by the caller */ - return 1; - } else - return 0; -} - -#undef COMBINE_STATE -#undef SPLIT_STATE -#undef STATE4_DESIGNATED_CNS11643_7 -#undef STATE4_DESIGNATED_CNS11643_6 -#undef STATE4_DESIGNATED_CNS11643_5 -#undef STATE4_DESIGNATED_CNS11643_4 -#undef STATE4_DESIGNATED_CNS11643_3 -#undef STATE4_NONE -#undef STATE3_DESIGNATED_CNS11643_2 -#undef STATE3_NONE -#undef STATE2_DESIGNATED_ISO_IR_165 -#undef STATE2_DESIGNATED_CNS11643_1 -#undef STATE2_DESIGNATED_GB2312 -#undef STATE2_NONE -#undef STATE_TWOBYTE -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_jp.h b/jni/parted/libiconv/lib/iso2022_jp.h deleted file mode 100755 index cdc0496..0000000 --- a/jni/parted/libiconv/lib/iso2022_jp.h +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-JP - */ - -/* Specification: RFC 1468 */ - -#define ESC 0x1b - -/* - * The state can be one of the following values. - */ -#define STATE_ASCII 0 -#define STATE_JISX0201ROMAN 1 -#define STATE_JISX0208 2 - -static int -iso2022_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+3) - goto none; - if (s[1] == '(') { - if (s[2] == 'B') { - state = STATE_ASCII; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'J') { - state = STATE_JISX0201ROMAN; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - if (s[1] == '$') { - if (s[2] == '@' || s[2] == 'B') { - /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ - state = STATE_JISX0208; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - goto ilseq; - } - break; - } - switch (state) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201ROMAN: - if (c < 0x80) { - int ret = jisx0201_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0208: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = jisx0208_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -iso2022_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - unsigned char buf[2]; - int ret; - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state == STATE_ASCII ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_ASCII) { - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - r += 3; - state = STATE_ASCII; - } - r[0] = buf[0]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0201-1976 Roman. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state == STATE_JISX0201ROMAN ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0201ROMAN) { - r[0] = ESC; - r[1] = '('; - r[2] = 'J'; - r += 3; - state = STATE_JISX0201ROMAN; - } - r[0] = buf[0]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state == STATE_JISX0208 ? 2 : 5); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0208) { - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - state = STATE_JISX0208; - } - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_jp_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - if (state != STATE_ASCII) { - if (n < 3) - return RET_TOOSMALL; - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - /* conv->ostate = 0; will be done by the caller */ - return 3; - } else - return 0; -} - -#undef STATE_JISX0208 -#undef STATE_JISX0201ROMAN -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_jp1.h b/jni/parted/libiconv/lib/iso2022_jp1.h deleted file mode 100755 index 050184e..0000000 --- a/jni/parted/libiconv/lib/iso2022_jp1.h +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-JP-1 - */ - -/* Specification: RFC 2237 */ - -#define ESC 0x1b - -/* - * The state can be one of the following values. - */ -#define STATE_ASCII 0 -#define STATE_JISX0201ROMAN 1 -#define STATE_JISX0208 2 -#define STATE_JISX0212 3 - -static int -iso2022_jp1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+3) - goto none; - if (s[1] == '(') { - if (s[2] == 'B') { - state = STATE_ASCII; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'J') { - state = STATE_JISX0201ROMAN; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - if (s[1] == '$') { - if (s[2] == '@' || s[2] == 'B') { - /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ - state = STATE_JISX0208; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == '(') { - if (n < count+4) - goto none; - if (s[3] == 'D') { - state = STATE_JISX0212; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - goto ilseq; - } - goto ilseq; - } - break; - } - switch (state) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201ROMAN: - if (c < 0x80) { - int ret = jisx0201_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0208: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = jisx0208_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } else - goto ilseq; - case STATE_JISX0212: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = jisx0212_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -iso2022_jp1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - unsigned char buf[2]; - int ret; - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state == STATE_ASCII ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_ASCII) { - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - r += 3; - state = STATE_ASCII; - } - r[0] = buf[0]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0201-1976 Roman. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state == STATE_JISX0201ROMAN ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0201ROMAN) { - r[0] = ESC; - r[1] = '('; - r[2] = 'J'; - r += 3; - state = STATE_JISX0201ROMAN; - } - r[0] = buf[0]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state == STATE_JISX0208 ? 2 : 5); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0208) { - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - state = STATE_JISX0208; - } - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0212-1990. */ - ret = jisx0212_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state == STATE_JISX0212 ? 2 : 6); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0212) { - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'D'; - r += 4; - state = STATE_JISX0212; - } - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_jp1_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - if (state != STATE_ASCII) { - if (n < 3) - return RET_TOOSMALL; - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - /* conv->ostate = 0; will be done by the caller */ - return 3; - } else - return 0; -} - -#undef STATE_JISX0212 -#undef STATE_JISX0208 -#undef STATE_JISX0201ROMAN -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_jp2.h b/jni/parted/libiconv/lib/iso2022_jp2.h deleted file mode 100755 index 2090cc0..0000000 --- a/jni/parted/libiconv/lib/iso2022_jp2.h +++ /dev/null @@ -1,692 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-JP-2 - */ - -/* Specification: RFC 1554 */ -/* ESC '(' 'I' for JISX0201 Katakana is an extension not found in RFC 1554 or - CJK.INF, but implemented in glibc-2.1 and qt-2.0. */ - -#define ESC 0x1b - -/* - * The state is composed of one of the following values - */ -#define STATE_ASCII 0 -#define STATE_JISX0201ROMAN 1 -#define STATE_JISX0201KATAKANA 2 -#define STATE_JISX0208 3 -#define STATE_JISX0212 4 -#define STATE_GB2312 5 -#define STATE_KSC5601 6 -/* - * and one of the following values, << 8 - */ -#define STATE_G2_NONE 0 -#define STATE_G2_ISO8859_1 1 -#define STATE_G2_ISO8859_7 2 - -#define SPLIT_STATE \ - unsigned int state1 = state & 0xff, state2 = state >> 8 -#define COMBINE_STATE \ - state = (state2 << 8) | state1 - -static int -iso2022_jp2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - SPLIT_STATE; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+3) - goto none; - if (s[1] == '(') { - if (s[2] == 'B') { - state1 = STATE_ASCII; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'J') { - state1 = STATE_JISX0201ROMAN; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'I') { - state1 = STATE_JISX0201KATAKANA; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - if (s[1] == '$') { - if (s[2] == '@' || s[2] == 'B') { - /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ - state1 = STATE_JISX0208; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'A') { - state1 = STATE_GB2312; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == '(') { - if (n < count+4) - goto none; - if (s[3] == 'D') { - state1 = STATE_JISX0212; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'C') { - state1 = STATE_KSC5601; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - goto ilseq; - } - if (s[1] == '.') { - if (n < count+3) - goto none; - if (s[2] == 'A') { - state2 = STATE_G2_ISO8859_1; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'F') { - state2 = STATE_G2_ISO8859_7; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - if (s[1] == 'N') { - switch (state2) { - case STATE_G2_NONE: - goto ilseq; - case STATE_G2_ISO8859_1: - if (s[2] < 0x80) { - unsigned char buf = s[2]+0x80; - int ret = iso8859_1_mbtowc(conv,pwc,&buf,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - COMBINE_STATE; - conv->istate = state; - return count+3; - } else - goto ilseq; - case STATE_G2_ISO8859_7: - if (s[2] < 0x80) { - unsigned char buf = s[2]+0x80; - int ret = iso8859_7_mbtowc(conv,pwc,&buf,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - COMBINE_STATE; - conv->istate = state; - return count+3; - } else - goto ilseq; - default: abort(); - } - } - goto ilseq; - } - break; - } - switch (state1) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - if (*pwc == 0x000a || *pwc == 0x000d) - state2 = STATE_G2_NONE; - COMBINE_STATE; - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201ROMAN: - if (c < 0x80) { - int ret = jisx0201_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - if (*pwc == 0x000a || *pwc == 0x000d) - state2 = STATE_G2_NONE; - COMBINE_STATE; - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201KATAKANA: - if (c < 0x80) { - unsigned char buf = c+0x80; - int ret = jisx0201_mbtowc(conv,pwc,&buf,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - COMBINE_STATE; - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0208: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = jisx0208_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - case STATE_JISX0212: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = jisx0212_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - case STATE_GB2312: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = gb2312_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - case STATE_KSC5601: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = ksc5601_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - COMBINE_STATE; - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - COMBINE_STATE; - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -#undef COMBINE_STATE -#undef SPLIT_STATE - -/* - * The state can also contain one of the following values, << 16. - * Values >= STATE_TAG_LANGUAGE are temporary tag parsing states. - */ -#define STATE_TAG_NONE 0 -#define STATE_TAG_LANGUAGE 4 -#define STATE_TAG_LANGUAGE_j 5 -#define STATE_TAG_LANGUAGE_ja 1 -#define STATE_TAG_LANGUAGE_k 6 -#define STATE_TAG_LANGUAGE_ko 2 -#define STATE_TAG_LANGUAGE_z 7 -#define STATE_TAG_LANGUAGE_zh 3 - -#define SPLIT_STATE \ - unsigned int state1 = state & 0xff, state2 = (state >> 8) & 0xff, state3 = state >> 16 -#define COMBINE_STATE \ - state = (state3 << 16) | (state2 << 8) | state1 - -static int -iso2022_jp2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - unsigned char buf[2]; - int ret; - /* This defines the conversion preferences depending on the current - langauge tag. */ - enum conversion { none = 0, european, japanese, chinese, korean, other }; - static const unsigned int conversion_lists[STATE_TAG_LANGUAGE] = { - /* STATE_TAG_NONE */ - japanese + (european << 3) + (chinese << 6) + (korean << 9) + (other << 12), - /* STATE_TAG_LANGUAGE_ja */ - japanese + (european << 3) + (chinese << 6) + (korean << 9) + (other << 12), - /* STATE_TAG_LANGUAGE_ko */ - korean + (european << 3) + (japanese << 6) + (chinese << 9) + (other << 12), - /* STATE_TAG_LANGUAGE_zh */ - chinese + (european << 3) + (japanese << 6) + (korean << 9) + (other << 12) - }; - unsigned int conversion_list; - - /* Handle Unicode tag characters (range U+E0000..U+E007F). */ - if ((wc >> 7) == (0xe0000 >> 7)) { - char c = wc & 0x7f; - if (c >= 'A' && c <= 'Z') - c += 'a'-'A'; - switch (c) { - case 0x01: - state3 = STATE_TAG_LANGUAGE; - COMBINE_STATE; - conv->ostate = state; - return 0; - case 'j': - if (state3 == STATE_TAG_LANGUAGE) { - state3 = STATE_TAG_LANGUAGE_j; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - break; - case 'a': - if (state3 == STATE_TAG_LANGUAGE_j) { - state3 = STATE_TAG_LANGUAGE_ja; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - break; - case 'k': - if (state3 == STATE_TAG_LANGUAGE) { - state3 = STATE_TAG_LANGUAGE_k; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - break; - case 'o': - if (state3 == STATE_TAG_LANGUAGE_k) { - state3 = STATE_TAG_LANGUAGE_ko; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - break; - case 'z': - if (state3 == STATE_TAG_LANGUAGE) { - state3 = STATE_TAG_LANGUAGE_z; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - break; - case 'h': - if (state3 == STATE_TAG_LANGUAGE_z) { - state3 = STATE_TAG_LANGUAGE_zh; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - break; - case 0x7f: - state3 = STATE_TAG_NONE; - COMBINE_STATE; - conv->ostate = state; - return 0; - default: - break; - } - /* Other tag characters reset the tag parsing state or are ignored. */ - if (state3 >= STATE_TAG_LANGUAGE) - state3 = STATE_TAG_NONE; - COMBINE_STATE; - conv->ostate = state; - return 0; - } - if (state3 >= STATE_TAG_LANGUAGE) - state3 = STATE_TAG_NONE; - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state1 == STATE_ASCII ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_ASCII) { - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - r += 3; - state1 = STATE_ASCII; - } - r[0] = buf[0]; - if (wc == 0x000a || wc == 0x000d) - state2 = STATE_G2_NONE; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - conversion_list = conversion_lists[state3]; - - do { - switch (conversion_list & ((1 << 3) - 1)) { - - case european: - - /* Try ISO-8859-1. */ - ret = iso8859_1_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] >= 0x80) { - int count = (state2 == STATE_G2_ISO8859_1 ? 3 : 6); - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE_G2_ISO8859_1) { - r[0] = ESC; - r[1] = '.'; - r[2] = 'A'; - r += 3; - state2 = STATE_G2_ISO8859_1; - } - r[0] = ESC; - r[1] = 'N'; - r[2] = buf[0]-0x80; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - /* Try ISO-8859-7. */ - ret = iso8859_7_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] >= 0x80) { - int count = (state2 == STATE_G2_ISO8859_7 ? 3 : 6); - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE_G2_ISO8859_7) { - r[0] = ESC; - r[1] = '.'; - r[2] = 'F'; - r += 3; - state2 = STATE_G2_ISO8859_7; - } - r[0] = ESC; - r[1] = 'N'; - r[2] = buf[0]-0x80; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - break; - - case japanese: - - /* Try JIS X 0201-1976 Roman. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state1 == STATE_JISX0201ROMAN ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_JISX0201ROMAN) { - r[0] = ESC; - r[1] = '('; - r[2] = 'J'; - r += 3; - state1 = STATE_JISX0201ROMAN; - } - r[0] = buf[0]; - if (wc == 0x000a || wc == 0x000d) - state2 = STATE_G2_NONE; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and - JIS X 0208-1983. */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state1 == STATE_JISX0208 ? 2 : 5); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_JISX0208) { - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - state1 = STATE_JISX0208; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0212-1990. */ - ret = jisx0212_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state1 == STATE_JISX0212 ? 2 : 6); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_JISX0212) { - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'D'; - r += 4; - state1 = STATE_JISX0212; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - break; - - case chinese: - - /* Try GB 2312-1980. */ - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state1 == STATE_GB2312 ? 2 : 5); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_GB2312) { - r[0] = ESC; - r[1] = '$'; - r[2] = 'A'; - r += 3; - state1 = STATE_GB2312; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - break; - - case korean: - - /* Try KS C 5601-1992. */ - ret = ksc5601_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state1 == STATE_KSC5601 ? 2 : 6); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_KSC5601) { - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'C'; - r += 4; - state1 = STATE_KSC5601; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - break; - - case other: - - /* Try JIS X 0201-1976 Kana. This is not officially part of - ISO-2022-JP-2, according to RFC 1554. Therefore we try this - only after all other attempts. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] >= 0x80) { - int count = (state1 == STATE_JISX0201KATAKANA ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_JISX0201KATAKANA) { - r[0] = ESC; - r[1] = '('; - r[2] = 'I'; - r += 3; - state1 = STATE_JISX0201KATAKANA; - } - r[0] = buf[0]-0x80; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - break; - - default: - abort(); - } - - conversion_list = conversion_list >> 3; - } while (conversion_list != 0); - - return RET_ILUNI; -} - -static int -iso2022_jp2_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - (void)state2; - (void)state3; - if (state1 != STATE_ASCII) { - if (n < 3) - return RET_TOOSMALL; - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - /* conv->ostate = 0; will be done by the caller */ - return 3; - } else - return 0; -} - -#undef COMBINE_STATE -#undef SPLIT_STATE -#undef STATE_TAG_LANGUAGE_zh -#undef STATE_TAG_LANGUAGE_z -#undef STATE_TAG_LANGUAGE_ko -#undef STATE_TAG_LANGUAGE_k -#undef STATE_TAG_LANGUAGE_ja -#undef STATE_TAG_LANGUAGE_j -#undef STATE_TAG_LANGUAGE -#undef STATE_TAG_NONE -#undef STATE_G2_ISO8859_7 -#undef STATE_G2_ISO8859_1 -#undef STATE_G2_NONE -#undef STATE_KSC5601 -#undef STATE_GB2312 -#undef STATE_JISX0212 -#undef STATE_JISX0208 -#undef STATE_JISX0201KATAKANA -#undef STATE_JISX0201ROMAN -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_jp3.h b/jni/parted/libiconv/lib/iso2022_jp3.h deleted file mode 100755 index 9b38f16..0000000 --- a/jni/parted/libiconv/lib/iso2022_jp3.h +++ /dev/null @@ -1,537 +0,0 @@ -/* - * Copyright (C) 1999-2004, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-JP-3 - */ - -#include "jisx0213.h" - -#define ESC 0x1b - -/* - * The state is composed of one of the following values - */ -#define STATE_ASCII 0 /* Esc ( B */ -#define STATE_JISX0201ROMAN 1 /* Esc ( J */ -#define STATE_JISX0201KATAKANA 2 /* Esc ( I */ -#define STATE_JISX0208 3 /* Esc $ @ or Esc $ B */ -#define STATE_JISX02131 4 /* Esc $ ( O or Esc $ ( Q*/ -#define STATE_JISX02132 5 /* Esc $ ( P */ - -/* - * In the ISO-2022-JP-3 to UCS-4 direction, the state also holds the last - * character to be output, shifted by 3 bits. - */ - -static int -iso2022_jp3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate >> 3; - if (last_wc) { - /* Output the buffered character. */ - conv->istate &= 7; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - state_t state = conv->istate; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+3) - goto none; - if (s[1] == '(') { - if (s[2] == 'B') { - state = STATE_ASCII; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'J') { - state = STATE_JISX0201ROMAN; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'I') { - state = STATE_JISX0201KATAKANA; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - if (s[1] == '$') { - if (s[2] == '@' || s[2] == 'B') { - /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ - state = STATE_JISX0208; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == '(') { - if (n < count+4) - goto none; - if (s[3] == 'O' || s[3] == 'Q') { - state = STATE_JISX02131; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - if (s[3] == 'P') { - state = STATE_JISX02132; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - goto ilseq; - } - goto ilseq; - } - break; - } - switch (state) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201ROMAN: - if (c < 0x80) { - int ret = jisx0201_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201KATAKANA: - if (c < 0x80) { - unsigned char buf = c+0x80; - int ret = jisx0201_mbtowc(conv,pwc,&buf,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0208: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = jisx0208_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } else - goto ilseq; - case STATE_JISX02131: - case STATE_JISX02132: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - ucs4_t wc = jisx0213_to_ucs4(((state-STATE_JISX02131+1)<<8)+s[0],s[1]); - if (wc) { - if (wc < 0x80) { - /* It's a combining character. */ - ucs4_t wc1 = jisx0213_to_ucs_combining[wc - 1][0]; - ucs4_t wc2 = jisx0213_to_ucs_combining[wc - 1][1]; - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = (wc2 << 3) | state; - } else { - *pwc = wc; - conv->istate = state; - } - return count+2; - } - } - goto ilseq; - default: abort(); - } - none: - conv->istate = state; - return RET_TOOFEW(count); - - ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); - } -} - -static int -iso2022_jp3_flushwc (conv_t conv, ucs4_t *pwc) -{ - ucs4_t last_wc = conv->istate >> 3; - if (last_wc) { - /* Output the buffered character. */ - conv->istate &= 7; - *pwc = last_wc; - return 1; - } else - return 0; -} - -/* - * In the UCS-4 to ISO-2022-JP-3 direction, the state also holds the last two - * bytes to be output, shifted by 3 bits, and the STATE_xxxxx value that was - * effective before this buffered character, shifted by 19 bits. - */ - -/* Composition tables for each of the relevant combining characters. */ -static const struct { unsigned short base; unsigned short composed; } iso2022_jp3_comp_table_data[] = { -#define iso2022_jp3_comp_table02e5_idx 0 -#define iso2022_jp3_comp_table02e5_len 1 - { 0x2b64, 0x2b65 }, /* 0x12B65 = 0x12B64 U+02E5 */ -#define iso2022_jp3_comp_table02e9_idx (iso2022_jp3_comp_table02e5_idx+iso2022_jp3_comp_table02e5_len) -#define iso2022_jp3_comp_table02e9_len 1 - { 0x2b60, 0x2b66 }, /* 0x12B66 = 0x12B60 U+02E9 */ -#define iso2022_jp3_comp_table0300_idx (iso2022_jp3_comp_table02e9_idx+iso2022_jp3_comp_table02e9_len) -#define iso2022_jp3_comp_table0300_len 5 - { 0x295c, 0x2b44 }, /* 0x12B44 = 0x1295C U+0300 */ - { 0x2b38, 0x2b48 }, /* 0x12B48 = 0x12B38 U+0300 */ - { 0x2b37, 0x2b4a }, /* 0x12B4A = 0x12B37 U+0300 */ - { 0x2b30, 0x2b4c }, /* 0x12B4C = 0x12B30 U+0300 */ - { 0x2b43, 0x2b4e }, /* 0x12B4E = 0x12B43 U+0300 */ -#define iso2022_jp3_comp_table0301_idx (iso2022_jp3_comp_table0300_idx+iso2022_jp3_comp_table0300_len) -#define iso2022_jp3_comp_table0301_len 4 - { 0x2b38, 0x2b49 }, /* 0x12B49 = 0x12B38 U+0301 */ - { 0x2b37, 0x2b4b }, /* 0x12B4B = 0x12B37 U+0301 */ - { 0x2b30, 0x2b4d }, /* 0x12B4D = 0x12B30 U+0301 */ - { 0x2b43, 0x2b4f }, /* 0x12B4F = 0x12B43 U+0301 */ -#define iso2022_jp3_comp_table309a_idx (iso2022_jp3_comp_table0301_idx+iso2022_jp3_comp_table0301_len) -#define iso2022_jp3_comp_table309a_len 14 - { 0x242b, 0x2477 }, /* 0x12477 = 0x1242B U+309A */ - { 0x242d, 0x2478 }, /* 0x12478 = 0x1242D U+309A */ - { 0x242f, 0x2479 }, /* 0x12479 = 0x1242F U+309A */ - { 0x2431, 0x247a }, /* 0x1247A = 0x12431 U+309A */ - { 0x2433, 0x247b }, /* 0x1247B = 0x12433 U+309A */ - { 0x252b, 0x2577 }, /* 0x12577 = 0x1252B U+309A */ - { 0x252d, 0x2578 }, /* 0x12578 = 0x1252D U+309A */ - { 0x252f, 0x2579 }, /* 0x12579 = 0x1252F U+309A */ - { 0x2531, 0x257a }, /* 0x1257A = 0x12531 U+309A */ - { 0x2533, 0x257b }, /* 0x1257B = 0x12533 U+309A */ - { 0x253b, 0x257c }, /* 0x1257C = 0x1253B U+309A */ - { 0x2544, 0x257d }, /* 0x1257D = 0x12544 U+309A */ - { 0x2548, 0x257e }, /* 0x1257E = 0x12548 U+309A */ - { 0x2675, 0x2678 }, /* 0x12678 = 0x12675 U+309A */ -}; - -#define SPLIT_STATE \ - unsigned short lasttwo = state >> 3; state_t prevstate = state >> 19; state &= 7 -#define COMBINE_STATE \ - state |= (prevstate << 19) | (lasttwo << 3) -#define COMBINE_STATE_NO_LASTTWO \ - /* assume lasttwo == 0, then prevstate is ignored */ - -static int -iso2022_jp3_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned char buf[2]; - unsigned short jch; - int ret; - state_t state = conv->ostate; - SPLIT_STATE; - - if (lasttwo) { - /* Attempt to combine the last character with this one. */ - unsigned int idx; - unsigned int len; - - if (wc == 0x02e5) - idx = iso2022_jp3_comp_table02e5_idx, - len = iso2022_jp3_comp_table02e5_len; - else if (wc == 0x02e9) - idx = iso2022_jp3_comp_table02e9_idx, - len = iso2022_jp3_comp_table02e9_len; - else if (wc == 0x0300) - idx = iso2022_jp3_comp_table0300_idx, - len = iso2022_jp3_comp_table0300_len; - else if (wc == 0x0301) - idx = iso2022_jp3_comp_table0301_idx, - len = iso2022_jp3_comp_table0301_len; - else if (wc == 0x309a) - idx = iso2022_jp3_comp_table309a_idx, - len = iso2022_jp3_comp_table309a_len; - else - goto not_combining; - - do - if (iso2022_jp3_comp_table_data[idx].base == lasttwo) - break; - while (++idx, --len > 0); - - if (len > 0) { - /* Output the combined character. */ - /* We know the combined character is in JISX0213 plane 1, but - the buffered character may have been in JISX0208 or in - JISX0213 plane 1. */ - count = (state != STATE_JISX02131 ? 4 : 0) + 2; - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX02131) { - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'Q'; - r += 4; - state = STATE_JISX02131; - } - lasttwo = iso2022_jp3_comp_table_data[idx].composed; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - COMBINE_STATE_NO_LASTTWO; - conv->ostate = state; - return count; - } - - not_combining: - /* Output the buffered character. */ - /* We know it is in JISX0208 or in JISX0213 plane 1. */ - count = (prevstate != state ? 3 : 0) + 2; - if (n < count) - return RET_TOOSMALL; - if (prevstate != state) { - if (state != STATE_JISX0208) abort(); - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - } - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - r += 2; - } - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - count += (state == STATE_ASCII ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_ASCII) { - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - r += 3; - state = STATE_ASCII; - } - r[0] = buf[0]; - COMBINE_STATE_NO_LASTTWO; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0201-1976 Roman. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - count += (state == STATE_JISX0201ROMAN ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0201ROMAN) { - r[0] = ESC; - r[1] = '('; - r[2] = 'J'; - r += 3; - state = STATE_JISX0201ROMAN; - } - r[0] = buf[0]; - COMBINE_STATE_NO_LASTTWO; - conv->ostate = state; - return count; - } - } - - jch = ucs4_to_jisx0213(wc); - - /* Try JIS X 0208-1990 in place of JIS X 0208-1978 and JIS X 0208-1983. */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - if (jch & 0x0080) { - /* A possible match in comp_table_data. Buffer it. */ - prevstate = state; - lasttwo = jch & 0x7f7f; - state = STATE_JISX0208; - COMBINE_STATE; - conv->ostate = state; - return count; - } else { - count += (state == STATE_JISX0208 ? 2 : 5); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0208) { - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - state = STATE_JISX0208; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE_NO_LASTTWO; - conv->ostate = state; - return count; - } - } - } - - /* Try JISX 0213 plane 1 and JISX 0213 plane 2. */ - if (jch != 0) { - if (jch & 0x8000) { - /* JISX 0213 plane 2. */ - if (state != STATE_JISX02132) { - count += 4; - if (n < count) - return RET_TOOSMALL; - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'P'; - r += 4; - state = STATE_JISX02132; - } - } else { - /* JISX 0213 plane 1. */ - if (state != STATE_JISX02131) { - count += 4; - if (n < count) - return RET_TOOSMALL; - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'Q'; - r += 4; - state = STATE_JISX02131; - } - } - if (jch & 0x0080) { - /* A possible match in comp_table_data. We have to buffer it. */ - /* We know it's a JISX 0213 plane 1 character. */ - if (jch & 0x8000) abort(); - prevstate = state; - lasttwo = jch & 0x7f7f; - COMBINE_STATE; - conv->ostate = state; - return count; - } - count += 2; - if (n < count) - return RET_TOOSMALL; - r[0] = (jch >> 8) & 0x7f; - r[1] = jch & 0x7f; - COMBINE_STATE_NO_LASTTWO; - conv->ostate = state; - return count; - } - - /* Try JIS X 0201-1976 Katakana. This is not officially part of - ISO-2022-JP-3. Therefore we try it after all other attempts. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] >= 0x80) { - count += (state == STATE_JISX0201KATAKANA ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0201KATAKANA) { - r[0] = ESC; - r[1] = '('; - r[2] = 'I'; - r += 3; - state = STATE_JISX0201KATAKANA; - } - r[0] = buf[0]-0x80; - COMBINE_STATE_NO_LASTTWO; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_jp3_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - { - int count = - (lasttwo ? (prevstate != state ? 3 : 0) + 2 : 0) - + (state != STATE_ASCII ? 3 : 0); - if (n < count) - return RET_TOOSMALL; - if (lasttwo) { - if (prevstate != state) { - if (state != STATE_JISX0208) abort(); - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - } - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - r += 2; - } - if (state != STATE_ASCII) { - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - } - /* conv->ostate = 0; will be done by the caller */ - return count; - } -} - -#undef COMBINE_STATE_NO_LASTTWO -#undef COMBINE_STATE -#undef SPLIT_STATE -#undef STATE_JISX02132 -#undef STATE_JISX02131 -#undef STATE_JISX0208 -#undef STATE_JISX0201KATAKANA -#undef STATE_JISX0201ROMAN -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_jpms.h b/jni/parted/libiconv/lib/iso2022_jpms.h deleted file mode 100755 index 2c42405..0000000 --- a/jni/parted/libiconv/lib/iso2022_jpms.h +++ /dev/null @@ -1,445 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2011-2012, 2016, 2018 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-JP-MS - * alias CP50221 - * - * This is an extension of ISO-2022-JP-1 with larger character sets. - * It uses ESC $ B and ESC $ ( D to denote *extensions* of JIS X 0208 and - * JIS X 0212, respectively. This violates the principles of ISO 2022, - * where - * 1. character sets to be used by ISO 2022 have to be registered at the - * ISO IR registry , - * 2. different character sets are designated by different escape - * sequences. - * It's a typical instance of the "embrace and extend" strategy by Microsoft - * . - */ - -/* - * Windows has three encodings CP50220, CP50221, CP50222. - * The common parts are: - * - US-ASCII (0x00..0x7F) - * - JIS X 0208 extended by - * - one row (0x2D), - * - a private use area (rows 0x75..0x7E = U+E000..U+E3AB), - * enabled with ESC $ B, disabled with ESC ( B. - * - JIS X 0212 extended by - * - two rows (0x73..0x74), - * - a private use area (rows 0x75..0x7E = U+E3AC..U+E757), - * enabled with ESC $ ( D, disabled with ESC ( B. - * They differ in the handling of JIS X 0201 characters (halfwidth Katakana) - * in the conversion direction Unicode -> CP5022x: - * * CP50220 maps the halfwidth Katakana to fullwidth Katakana characters. - * * CP50221 contains the JIS X 0201 halfwidth Katakana characters, - * enabled with ESC ( I, disabled with ESC ( B. - * * CP50222 contains the JIS X 0201 halfwidth Katakana characters, - * enabled with ESC ( J 0x0E, disabled with ESC ( B. - * In the conversion direction CP5022x -> Unicode, all three operate the same: - * - ESC ( I is supported and understood. - * - ESC ( J 0x0E is not accepted. (Tested on Windows XP SP3.) - * Conclusion: - * - CP50222 should not be used, because the multibyte sequence that it - * produces cannot be parsed by either of the three encodings. - * - CP50221 is preferrable to CP50220, because it can faithfully represent - * the halfwidth Katakana characters. - * We therefore implement CP50221. As an extension, in the mbtowc conversion - * direction, we support also ESC ( J 0x0E, just in case. - */ - -#include "cp50221_0208_ext.h" -#include "cp50221_0212_ext.h" - -#define ESC 0x1b -#define SO 0x0e -#define SI 0x0f - -/* - * The state can be one of the following values. - */ -#define STATE_ASCII 0 /* Esc ( B */ -#define STATE_JISX0201ROMAN 1 /* Esc ( J */ /* only in mbtowc direction */ -#define STATE_JISX0201KATAKANA 2 /* Esc ( I */ -#define STATE_JISX0208MS 3 /* Esc $ @ or Esc $ B */ -#define STATE_JISX0212MS 4 /* Esc $ ( D */ - -static int -iso2022_jpms_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+3) - goto none; - if (s[1] == '(') { - if (s[2] == 'B') { - state = STATE_ASCII; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'I') { - state = STATE_JISX0201KATAKANA; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == 'J') { - state = STATE_JISX0201ROMAN; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - goto ilseq; - } - if (s[1] == '$') { - if (s[2] == '@' || s[2] == 'B') { - /* We don't distinguish JIS X 0208-1978 and JIS X 0208-1983. */ - state = STATE_JISX0208MS; - s += 3; count += 3; - if (n < count+1) - goto none; - continue; - } - if (s[2] == '(') { - if (n < count+4) - goto none; - if (s[3] == 'D') { - state = STATE_JISX0212MS; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - goto ilseq; - } - goto ilseq; - } - if (c == SO) { - if (state == STATE_JISX0201ROMAN) - state = STATE_JISX0201KATAKANA; - s += 1; count += 1; - if (n < count+1) - goto none; - continue; - } - if (c == SI) { - if (state == STATE_JISX0201KATAKANA) - state = STATE_JISX0201ROMAN; - s += 1; count += 1; - if (n < count+1) - goto none; - continue; - } - break; - } - switch (state) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201ROMAN: - if (c < 0x80) { - int ret = jisx0201_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0201KATAKANA: - if (c < 0x80) { - unsigned char buf = c+0x80; - int ret = jisx0201_mbtowc(conv,pwc,&buf,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_JISX0208MS: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret; - if (s[0] < 0x75) { - if (s[0] == 0x2d) { - /* Extension of JIS X 0208. */ - if (s[1] >= 0x21 && s[1] <= 0x79) { - unsigned char i = (s[1] - 0x21) + 1; - ret = cp50221_0208_ext_mbtowc(conv,pwc,&i,1); - if (ret == 1) - ret = 2; - } else - ret = RET_ILSEQ; - } else { - /* JIS X 0208. */ - ret = jisx0208_mbtowc(conv,pwc,s,2); - } - } else { - /* Extension of JIS X 0208. - 0x{75..7E}{21..8E} maps to U+E000..U+E3AB. - But some rows maps to characters present in CP932. */ - if (s[0] <= 0x7e && (s[1] >= 0x21 && s[1] <= 0x7e)) { - unsigned short wc = 0xfffd; - if (s[0] >= 0x79 && s[0] <= 0x7c) - wc = cp932ext_2uni_pageed[(s[0] - 0x79) * 94 + (s[1] - 0x21)]; - if (wc == 0xfffd) - wc = (s[0] - 0x75) * 94 + (s[1] - 0x21) + 0xe000; - *pwc = wc; - ret = 2; - } else - ret = RET_ILSEQ; - } - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } else - goto ilseq; - case STATE_JISX0212MS: - if (n < count+2) - goto none; - if (s[0] < 0x80 && s[1] < 0x80) { - int ret; - if (s[0] < 0x73) { - /* JIS X 0212. */ - ret = jisx0212_mbtowc(conv,pwc,s,2); - } else { - if (s[0] < 0x75) { - /* Extension of JIS X 0212. */ - if (s[1] >= 0x21 && s[1] <= 0x7e) { - unsigned char i = (s[0] - 0x73) * 94 + (s[1] - 0x21) + 1; - ret = cp50221_0212_ext_mbtowc(conv,pwc,&i,1); - if (ret == 1) - ret = 2; - } else - ret = RET_ILSEQ; - } else { - /* Extension of JIS X 0208. - 0x{75..7E}{21..8E} maps to U+E3AC..U+E757. */ - if (s[0] <= 0x7e && (s[1] >= 0x21 && s[1] <= 0x7e)) { - *pwc = (s[0] - 0x75) * 94 + (s[1] - 0x21) + 0xe3ac; - ret = 2; - } else - ret = RET_ILSEQ; - } - } - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -iso2022_jpms_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - unsigned char buf[2]; - int ret; - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state == STATE_ASCII ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_ASCII) { - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - r += 3; - state = STATE_ASCII; - } - r[0] = buf[0]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0201-1976 Katakana. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] >= 0x80) { - int count = (state == STATE_JISX0201KATAKANA ? 1 : 4); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0201KATAKANA) { - r[0] = ESC; - r[1] = '('; - r[2] = 'I'; - r += 3; - state = STATE_JISX0201KATAKANA; - } - r[0] = buf[0]-0x80; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0208-1990, in place of JIS X 0208-1978 and JIS X 0208-1983, - and the extensions mentioned above. */ - if (wc >= 0xe000 && wc < 0xe3ac) { - unsigned short i = wc - 0xe000; - buf[0] = (i / 94) + 0x75; - buf[1] = (i % 94) + 0x21; - ret = 2; - } else { - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret == RET_ILUNI) { - /* Extension of JIS X 0208. */ - unsigned char i; - ret = cp50221_0208_ext_wctomb(conv,&i,wc,1); - if (ret == 1) { - buf[0] = 0x2d; - buf[1] = i-1 + 0x21; - ret = 2; - } else if (wc == 0x663B) { - buf[0] = 0x7a; - buf[1] = 0x36; - ret = 2; - } else if (wc == 0xffe2) { - buf[0] = 0x7c; - buf[1] = 0x7b; - ret = 2; - } else if (wc == 0xffe4) { - buf[0] = 0x7c; - buf[1] = 0x7c; - ret = 2; - } - } - } - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state == STATE_JISX0208MS ? 2 : 5); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0208MS) { - r[0] = ESC; - r[1] = '$'; - r[2] = 'B'; - r += 3; - state = STATE_JISX0208MS; - } - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = state; - return count; - } - } - - /* Try JIS X 0212-1990 and the extensions mentioned above. */ - if (wc >= 0xe3ac && wc < 0xe758) { - unsigned short i = wc - 0xe3ac; - buf[0] = (i / 94) + 0x75; - buf[1] = (i % 94) + 0x21; - ret = 2; - } else { - ret = jisx0212_wctomb(conv,buf,wc,2); - if (ret == RET_ILUNI) { - /* Extension of JIS X 0212. */ - unsigned char i; - ret = cp50221_0212_ext_wctomb(conv,&i,wc,1); - if (ret == 1) { - i -= 1; - buf[0] = (i / 94) + 0x73; - buf[1] = (i % 94) + 0x21; - ret = 2; - } - } - } - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state == STATE_JISX0212MS ? 2 : 6); - if (n < count) - return RET_TOOSMALL; - if (state != STATE_JISX0212MS) { - r[0] = ESC; - r[1] = '$'; - r[2] = '('; - r[3] = 'D'; - r += 4; - state = STATE_JISX0212MS; - } - r[0] = buf[0]; - r[1] = buf[1]; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_jpms_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - if (state != STATE_ASCII) { - if (n < 3) - return RET_TOOSMALL; - r[0] = ESC; - r[1] = '('; - r[2] = 'B'; - /* conv->ostate = 0; will be done by the caller */ - return 3; - } else - return 0; -} - -#undef STATE_JISX0212MS -#undef STATE_JISX0208MS -#undef STATE_JISX0201KATAKANA -#undef STATE_JISX0201ROMAN -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso2022_kr.h b/jni/parted/libiconv/lib/iso2022_kr.h deleted file mode 100755 index 0256505..0000000 --- a/jni/parted/libiconv/lib/iso2022_kr.h +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-2022-KR - */ - -/* Specification: RFC 1557 */ - -/* Note: CJK.INF says the SO designator needs to appear only once at the - beginning of a text, but to decrease the risk of ambiguities, when - producing ISO-2022-KR, we repeat the designator in every line containing - SO characters. RFC 1557 does not mandate this. */ - -#define ESC 0x1b -#define SO 0x0e -#define SI 0x0f - -/* - * The state is composed of one of the following values - */ -#define STATE_ASCII 0 -#define STATE_TWOBYTE 1 -/* - * and one of the following values, << 8 - */ -#define STATE2_NONE 0 -#define STATE2_DESIGNATED_KSC5601 1 - -#define SPLIT_STATE \ - unsigned int state1 = state & 0xff, state2 = state >> 8 -#define COMBINE_STATE \ - state = (state2 << 8) | state1 - -static int -iso2022_kr_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - SPLIT_STATE; - int count = 0; - unsigned char c; - for (;;) { - c = *s; - if (c == ESC) { - if (n < count+4) - goto none; - if (s[1] == '$') { - if (s[2] == ')') { - if (s[3] == 'C') { - state2 = STATE2_DESIGNATED_KSC5601; - s += 4; count += 4; - if (n < count+1) - goto none; - continue; - } - } - } - goto ilseq; - } - if (c == SO) { - if (state2 != STATE2_DESIGNATED_KSC5601) - goto ilseq; - state1 = STATE_TWOBYTE; - s++; count++; - if (n < count+1) - goto none; - continue; - } - if (c == SI) { - state1 = STATE_ASCII; - s++; count++; - if (n < count+1) - goto none; - continue; - } - break; - } - switch (state1) { - case STATE_ASCII: - if (c < 0x80) { - int ret = ascii_mbtowc(conv,pwc,s,1); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 1) abort(); -#if 0 /* Accept ISO-2022-KR according to CJK.INF. */ - if (*pwc == 0x000a || *pwc == 0x000d) - state2 = STATE2_NONE; -#endif - COMBINE_STATE; - conv->istate = state; - return count+1; - } else - goto ilseq; - case STATE_TWOBYTE: - if (n < count+2) - goto none; - if (state2 != STATE2_DESIGNATED_KSC5601) abort(); - if (s[0] < 0x80 && s[1] < 0x80) { - int ret = ksc5601_mbtowc(conv,pwc,s,2); - if (ret == RET_ILSEQ) - goto ilseq; - if (ret != 2) abort(); - COMBINE_STATE; - conv->istate = state; - return count+2; - } else - goto ilseq; - default: abort(); - } - -none: - COMBINE_STATE; - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - COMBINE_STATE; - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -static int -iso2022_kr_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - unsigned char buf[2]; - int ret; - - /* Try ASCII. */ - ret = ascii_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] < 0x80) { - int count = (state1 == STATE_ASCII ? 1 : 2); - if (n < count) - return RET_TOOSMALL; - if (state1 != STATE_ASCII) { - r[0] = SI; - r += 1; - state1 = STATE_ASCII; - } - r[0] = buf[0]; - if (wc == 0x000a || wc == 0x000d) - state2 = STATE2_NONE; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - /* Try KS C 5601-1992. */ - ret = ksc5601_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (buf[0] < 0x80 && buf[1] < 0x80) { - int count = (state2 == STATE2_DESIGNATED_KSC5601 ? 0 : 4) + (state1 == STATE_TWOBYTE ? 0 : 1) + 2; - if (n < count) - return RET_TOOSMALL; - if (state2 != STATE2_DESIGNATED_KSC5601) { - r[0] = ESC; - r[1] = '$'; - r[2] = ')'; - r[3] = 'C'; - r += 4; - state2 = STATE2_DESIGNATED_KSC5601; - } - if (state1 != STATE_TWOBYTE) { - r[0] = SO; - r += 1; - state1 = STATE_TWOBYTE; - } - r[0] = buf[0]; - r[1] = buf[1]; - COMBINE_STATE; - conv->ostate = state; - return count; - } - } - - return RET_ILUNI; -} - -static int -iso2022_kr_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - SPLIT_STATE; - (void)state2; - if (state1 != STATE_ASCII) { - if (n < 1) - return RET_TOOSMALL; - r[0] = SI; - /* conv->ostate = 0; will be done by the caller */ - return 1; - } else - return 0; -} - -#undef COMBINE_STATE -#undef SPLIT_STATE -#undef STATE2_DESIGNATED_KSC5601 -#undef STATE2_NONE -#undef STATE_TWOBYTE -#undef STATE_ASCII diff --git a/jni/parted/libiconv/lib/iso646_cn.h b/jni/parted/libiconv/lib/iso646_cn.h deleted file mode 100755 index 3e7e2a0..0000000 --- a/jni/parted/libiconv/lib/iso646_cn.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO646-CN - * also known as GB_1988-80 - */ - -static int -iso646_cn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - if (c == 0x24) - *pwc = (ucs4_t) 0x00a5; - else if (c == 0x7e) - *pwc = (ucs4_t) 0x203e; - else - *pwc = (ucs4_t) c; - return 1; - } - return RET_ILSEQ; -} - -static int -iso646_cn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x0080 && !(wc == 0x0024 || wc == 0x007e)) { - *r = wc; - return 1; - } - if (wc == 0x00a5) { - *r = 0x24; - return 1; - } - if (wc == 0x203e) { - *r = 0x7e; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso646_jp.h b/jni/parted/libiconv/lib/iso646_jp.h deleted file mode 100755 index 189dc73..0000000 --- a/jni/parted/libiconv/lib/iso646_jp.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO646-JP - * also known as JIS_C6220-1969-RO - */ - -/* This is the lower half of JIS_X0201. */ - -static int -iso646_jp_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - if (c == 0x5c) - *pwc = (ucs4_t) 0x00a5; - else if (c == 0x7e) - *pwc = (ucs4_t) 0x203e; - else - *pwc = (ucs4_t) c; - return 1; - } - return RET_ILSEQ; -} - -static int -iso646_jp_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) { - *r = wc; - return 1; - } - if (wc == 0x00a5) { - *r = 0x5c; - return 1; - } - if (wc == 0x203e) { - *r = 0x7e; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_1.h b/jni/parted/libiconv/lib/iso8859_1.h deleted file mode 100755 index d6251d9..0000000 --- a/jni/parted/libiconv/lib/iso8859_1.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-1 - */ - -static int -iso8859_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - *pwc = (ucs4_t) c; - return 1; -} - -static int -iso8859_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x0100) { - *r = wc; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_10.h b/jni/parted/libiconv/lib/iso8859_10.h deleted file mode 100755 index 5d47195..0000000 --- a/jni/parted/libiconv/lib/iso8859_10.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-10 - */ - -static const unsigned short iso8859_10_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7, - 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a, - /* 0xb0 */ - 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7, - 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b, - /* 0xc0 */ - 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, - /* 0xd0 */ - 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168, - 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, - /* 0xe0 */ - 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, - 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138, -}; - -static int -iso8859_10_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) iso8859_10_2uni[c-0xa0]; - return 1; -} - -static const unsigned char iso8859_10_page00[224] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */ - 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0xd0, 0x00, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */ - 0xd8, 0x00, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xd8-0xdf */ - 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */ - 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0xf0, 0x00, 0x00, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */ - 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ - 0xa9, 0xb9, 0xa2, 0xb2, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */ - 0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xa3, 0xb3, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0xa5, 0xb5, 0xa4, 0xb4, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xb6, /* 0x30-0x37 */ - 0xff, 0x00, 0x00, 0xa8, 0xb8, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0xaf, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, 0xab, 0xbb, /* 0x60-0x67 */ - 0xd7, 0xf7, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, 0x00, /* 0x78-0x7f */ -}; - -static int -iso8859_10_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = iso8859_10_page00[wc-0x00a0]; - else if (wc == 0x2015) - c = 0xbd; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_11.h b/jni/parted/libiconv/lib/iso8859_11.h deleted file mode 100755 index d42de9e..0000000 --- a/jni/parted/libiconv/lib/iso8859_11.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 1999-2004, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-11 - */ - -static int -iso8859_11_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa1) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c <= 0xfb && !(c >= 0xdb && c <= 0xde)) { - *pwc = (ucs4_t) (c + 0x0d60); - return 1; - } - return RET_ILSEQ; -} - -static int -iso8859_11_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x00a1) { - *r = wc; - return 1; - } - else if (wc >= 0x0e01 && wc <= 0x0e5b && !(wc >= 0x0e3b && wc <= 0x0e3e)) { - *r = wc-0x0d60; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_13.h b/jni/parted/libiconv/lib/iso8859_13.h deleted file mode 100755 index 98df56a..0000000 --- a/jni/parted/libiconv/lib/iso8859_13.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-13 - */ - -static const unsigned short iso8859_13_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7, - 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7, - 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, - /* 0xc0 */ - 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, - 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, - /* 0xd0 */ - 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, - 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, - /* 0xe0 */ - 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, - 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, - /* 0xf0 */ - 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, - 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019, -}; - -static int -iso8859_13_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) iso8859_13_2uni[c-0xa0]; - return 1; -} - -static const unsigned char iso8859_13_page00[224] = { - 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0xc4, 0xc5, 0xaf, 0x00, /* 0xc0-0xc7 */ - 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xd3, 0x00, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xa8, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0xe4, 0xe5, 0xbf, 0x00, /* 0xe0-0xe7 */ - 0x00, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xf3, 0x00, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xb8, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xc2, 0xe2, 0x00, 0x00, 0xc0, 0xe0, 0xc3, 0xe3, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0xc7, 0xe7, 0x00, 0x00, 0xcb, 0xeb, /* 0x10-0x17 */ - 0xc6, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0xce, 0xee, 0x00, 0x00, 0xc1, 0xe1, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xed, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0xcf, 0xef, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0xd4, 0xf4, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xba, /* 0x50-0x57 */ - 0x00, 0x00, 0xda, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char iso8859_13_page20[8] = { - 0x00, 0xff, 0x00, 0x00, 0xb4, 0xa1, 0xa5, 0x00, /* 0x18-0x1f */ -}; - -static int -iso8859_13_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = iso8859_13_page00[wc-0x00a0]; - else if (wc >= 0x2018 && wc < 0x2020) - c = iso8859_13_page20[wc-0x2018]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_14.h b/jni/parted/libiconv/lib/iso8859_14.h deleted file mode 100755 index 16630d7..0000000 --- a/jni/parted/libiconv/lib/iso8859_14.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-14 - */ - -static const unsigned short iso8859_14_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, - 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, - /* 0xb0 */ - 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, - 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, - /* 0xc0 */ - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - /* 0xd0 */ - 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff, -}; - -static int -iso8859_14_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0xa0) - *pwc = (ucs4_t) iso8859_14_2uni[c-0xa0]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char iso8859_14_page00[96] = { - 0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0x00, 0x00, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x00, /* 0xd0-0xd7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x00, /* 0xf0-0xf7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x00, 0xff, /* 0xf8-0xff */ -}; -static const unsigned char iso8859_14_page01_0[32] = { - 0x00, 0x00, 0xa4, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0xb2, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char iso8859_14_page01_1[16] = { - 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, 0xde, 0xfe, /* 0x70-0x77 */ - 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char iso8859_14_page1e_0[136] = { - 0x00, 0x00, 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0xa6, 0xab, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xb1, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xb4, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xb9, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xbb, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0x00, 0x00, /* 0x80-0x87 */ -}; -static const unsigned char iso8859_14_page1e_1[8] = { - 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, 0x00, 0x00, /* 0xf0-0xf7 */ -}; - -static int -iso8859_14_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = iso8859_14_page00[wc-0x00a0]; - else if (wc >= 0x0108 && wc < 0x0128) - c = iso8859_14_page01_0[wc-0x0108]; - else if (wc >= 0x0170 && wc < 0x0180) - c = iso8859_14_page01_1[wc-0x0170]; - else if (wc >= 0x1e00 && wc < 0x1e88) - c = iso8859_14_page1e_0[wc-0x1e00]; - else if (wc >= 0x1ef0 && wc < 0x1ef8) - c = iso8859_14_page1e_1[wc-0x1ef0]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_15.h b/jni/parted/libiconv/lib/iso8859_15.h deleted file mode 100755 index d3feb89..0000000 --- a/jni/parted/libiconv/lib/iso8859_15.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-15 - */ - -static const unsigned short iso8859_15_2uni[32] = { - /* 0xa0 */ - 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7, - 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7, - 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf, -}; - -static int -iso8859_15_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0xa0 && c < 0xc0) - *pwc = (ucs4_t) iso8859_15_2uni[c-0xa0]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char iso8859_15_page00[32] = { - 0xa0, 0xa1, 0xa2, 0xa3, 0x00, 0xa5, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0xb9, 0xba, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0xb8-0xbf */ -}; -static const unsigned char iso8859_15_page01[48] = { - 0x00, 0x00, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */ -}; - -static int -iso8859_15_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = iso8859_15_page00[wc-0x00a0]; - else if (wc >= 0x00c0 && wc < 0x0100) - c = wc; - else if (wc >= 0x0150 && wc < 0x0180) - c = iso8859_15_page01[wc-0x0150]; - else if (wc == 0x20ac) - c = 0xa4; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_16.h b/jni/parted/libiconv/lib/iso8859_16.h deleted file mode 100755 index cbb112a..0000000 --- a/jni/parted/libiconv/lib/iso8859_16.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-16 - */ - -static const unsigned short iso8859_16_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7, - 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7, - 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c, - /* 0xc0 */ - 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - /* 0xd0 */ - 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a, - 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b, - 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff, -}; - -static int -iso8859_16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) iso8859_16_2uni[c-0xa0]; - return 1; -} - -static const unsigned char iso8859_16_page00[224] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xab, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0xc6, 0xc7, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0x00, 0x00, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0x00, /* 0xd0-0xd7 */ - 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0x00, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0x00, /* 0xf0-0xf7 */ - 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xa2, 0xc5, 0xe5, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xb2, 0xb9, 0x00, 0x00, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xd5, 0xf5, 0xbc, 0xbd, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0xd7, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xa6, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0xd8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xbe, 0xac, 0xae, 0xaf, 0xbf, 0xb4, 0xb8, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char iso8859_16_page02[8] = { - 0xaa, 0xba, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; -static const unsigned char iso8859_16_page20[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa5, 0x00, /* 0x18-0x1f */ -}; - -static int -iso8859_16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = iso8859_16_page00[wc-0x00a0]; - else if (wc >= 0x0218 && wc < 0x0220) - c = iso8859_16_page02[wc-0x0218]; - else if (wc >= 0x2018 && wc < 0x2020) - c = iso8859_16_page20[wc-0x2018]; - else if (wc == 0x20ac) - c = 0xa4; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_2.h b/jni/parted/libiconv/lib/iso8859_2.h deleted file mode 100755 index 2744bc6..0000000 --- a/jni/parted/libiconv/lib/iso8859_2.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-2 - */ - -static const unsigned short iso8859_2_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, - 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, - /* 0xb0 */ - 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, - 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, - /* 0xc0 */ - 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, - /* 0xd0 */ - 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, - 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, - /* 0xe0 */ - 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, - /* 0xf0 */ - 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, - 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9, -}; - -static int -iso8859_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) iso8859_2_2uni[c-0xa0]; - return 1; -} - -static const unsigned char iso8859_2_page00[224] = { - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ - 0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */ - 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xda, 0x00, 0xdc, 0xdd, 0x00, 0xdf, /* 0xd8-0xdf */ - 0x00, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ - 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0xcf, 0xef, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xca, 0xea, 0xcc, 0xec, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xc5, 0xe5, 0x00, 0x00, 0xa5, 0xb5, 0x00, /* 0x38-0x3f */ - 0x00, 0xa3, 0xb3, 0xd1, 0xf1, 0x00, 0x00, 0xd2, /* 0x40-0x47 */ - 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xd5, 0xf5, 0x00, 0x00, 0xc0, 0xe0, 0x00, 0x00, /* 0x50-0x57 */ - 0xd8, 0xf8, 0xa6, 0xb6, 0x00, 0x00, 0xaa, 0xba, /* 0x58-0x5f */ - 0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, /* 0x68-0x6f */ - 0xdb, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char iso8859_2_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xa2, 0xff, 0x00, 0xb2, 0x00, 0xbd, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -iso8859_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = iso8859_2_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = iso8859_2_page02[wc-0x02c0]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_3.h b/jni/parted/libiconv/lib/iso8859_3.h deleted file mode 100755 index 85dde03..0000000 --- a/jni/parted/libiconv/lib/iso8859_3.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-3 - */ - -static const unsigned short iso8859_3_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0xfffd, 0x0124, 0x00a7, - 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0xfffd, 0x017b, - /* 0xb0 */ - 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, - 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0xfffd, 0x017c, - /* 0xc0 */ - 0x00c0, 0x00c1, 0x00c2, 0xfffd, 0x00c4, 0x010a, 0x0108, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - /* 0xd0 */ - 0xfffd, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, - 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0xfffd, 0x00e4, 0x010b, 0x0109, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0xfffd, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, - 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9, -}; - -static int -iso8859_3_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = iso8859_3_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char iso8859_3_page00[96] = { - 0xa0, 0x00, 0x00, 0xa3, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ - 0xb0, 0x00, 0xb2, 0xb3, 0xb4, 0xb5, 0x00, 0xb7, /* 0xb0-0xb7 */ - 0xb8, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ - 0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0x00, 0xc7, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */ - 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0x00, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0x00, 0xe4, 0x00, 0x00, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0x00, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0x00, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char iso8859_3_page01[120] = { - 0xc6, 0xe6, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf8, 0xab, 0xbb, /* 0x18-0x1f */ - 0xd5, 0xf5, 0x00, 0x00, 0xa6, 0xb6, 0xa1, 0xb1, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xa9, 0xb9, 0x00, 0x00, 0xac, 0xbc, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, 0xaa, 0xba, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0xdd, 0xfd, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0xaf, 0xbf, 0x00, 0x00, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char iso8859_3_page02[8] = { - 0xa2, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -iso8859_3_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = iso8859_3_page00[wc-0x00a0]; - else if (wc >= 0x0108 && wc < 0x0180) - c = iso8859_3_page01[wc-0x0108]; - else if (wc >= 0x02d8 && wc < 0x02e0) - c = iso8859_3_page02[wc-0x02d8]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_4.h b/jni/parted/libiconv/lib/iso8859_4.h deleted file mode 100755 index 50c777c..0000000 --- a/jni/parted/libiconv/lib/iso8859_4.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-4 - */ - -static const unsigned short iso8859_4_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, - 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, - /* 0xb0 */ - 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, - 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, - /* 0xc0 */ - 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, - 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, - /* 0xd0 */ - 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, - /* 0xe0 */ - 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, - 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, - /* 0xf0 */ - 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9, -}; - -static int -iso8859_4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) iso8859_4_2uni[c-0xa0]; - return 1; -} - -static const unsigned char iso8859_4_page00[224] = { - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0xaf, /* 0xa8-0xaf */ - 0xb0, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x00, /* 0xc0-0xc7 */ - 0x00, 0xc9, 0x00, 0xcb, 0x00, 0xcd, 0xce, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xd8, 0x00, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x00, /* 0xe0-0xe7 */ - 0x00, 0xe9, 0x00, 0xeb, 0x00, 0xed, 0xee, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xf8, 0x00, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0xc0, 0xe0, 0x00, 0x00, 0xa1, 0xb1, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ - 0xd0, 0xf0, 0xaa, 0xba, 0x00, 0x00, 0xcc, 0xec, /* 0x10-0x17 */ - 0xca, 0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xab, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0xa5, 0xb5, 0xcf, 0xef, 0x00, 0x00, 0xc7, 0xe7, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0xf3, /* 0x30-0x37 */ - 0xa2, 0x00, 0x00, 0xa6, 0xb6, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xf1, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0xbd, 0xbf, 0xd2, 0xf2, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0xb3, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbc, /* 0x60-0x67 */ - 0xdd, 0xfd, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char iso8859_4_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0xff, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -iso8859_4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = iso8859_4_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = iso8859_4_page02[wc-0x02c0]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_5.h b/jni/parted/libiconv/lib/iso8859_5.h deleted file mode 100755 index e56347f..0000000 --- a/jni/parted/libiconv/lib/iso8859_5.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-5 - */ - -static const unsigned short iso8859_5_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, - 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, - /* 0xb0 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0xc0 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xd0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xe0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, - /* 0xf0 */ - 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, - 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f, -}; - -static int -iso8859_5_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) iso8859_5_2uni[c-0xa0]; - return 1; -} - -static const unsigned char iso8859_5_page00[16] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char iso8859_5_page04[96] = { - 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */ -}; - -static int -iso8859_5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b0) - c = iso8859_5_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0460) - c = iso8859_5_page04[wc-0x0400]; - else if (wc == 0x2116) - c = 0xf0; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_6.h b/jni/parted/libiconv/lib/iso8859_6.h deleted file mode 100755 index bbe9370..0000000 --- a/jni/parted/libiconv/lib/iso8859_6.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-6 - */ - -static const unsigned short iso8859_6_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0xfffd, 0xfffd, 0xfffd, 0x00a4, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0x00ad, 0xfffd, 0xfffd, - /* 0xb0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f, - /* 0xc0 */ - 0xfffd, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, - /* 0xd0 */ - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, - 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xe0 */ - 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, - 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, - /* 0xf0 */ - 0x0650, 0x0651, 0x0652, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, -}; - -static int -iso8859_6_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = iso8859_6_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char iso8859_6_page00[16] = { - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ -}; -static const unsigned char iso8859_6_page06[80] = { - 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ -}; - -static int -iso8859_6_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00b0) - c = iso8859_6_page00[wc-0x00a0]; - else if (wc >= 0x0608 && wc < 0x0658) - c = iso8859_6_page06[wc-0x0608]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_7.h b/jni/parted/libiconv/lib/iso8859_7.h deleted file mode 100755 index 3d9b724..0000000 --- a/jni/parted/libiconv/lib/iso8859_7.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 1999-2004, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-7 - */ - -static const unsigned short iso8859_7_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x2018, 0x2019, 0x00a3, 0x20ac, 0x20af, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x037a, 0x00ab, 0x00ac, 0x00ad, 0xfffd, 0x2015, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, - 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, - /* 0xc0 */ - 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, - 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, - /* 0xd0 */ - 0x03a0, 0x03a1, 0xfffd, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, - 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, - /* 0xe0 */ - 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, - 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, - /* 0xf0 */ - 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, - 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0xfffd, -}; - -static int -iso8859_7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = iso8859_7_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char iso8859_7_page00[32] = { - 0xa0, 0x00, 0x00, 0xa3, 0x00, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0x00, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0x00, 0x00, 0x00, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0xbd, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char iso8859_7_page03[88] = { - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0x00, /* 0x80-0x87 */ - 0xb8, 0xb9, 0xba, 0x00, 0xbc, 0x00, 0xbe, 0xbf, /* 0x88-0x8f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x90-0x97 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x98-0x9f */ - 0xd0, 0xd1, 0x00, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xa0-0xa7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xa8-0xaf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xb0-0xb7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xb8-0xbf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xc0-0xc7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x00, /* 0xc8-0xcf */ -}; -static const unsigned char iso8859_7_page20[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, /* 0x10-0x17 */ - 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; - -static int -iso8859_7_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = iso8859_7_page00[wc-0x00a0]; - else if (wc >= 0x0378 && wc < 0x03d0) - c = iso8859_7_page03[wc-0x0378]; - else if (wc >= 0x2010 && wc < 0x2020) - c = iso8859_7_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0xa4; - else if (wc == 0x20af) - c = 0xa5; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_8.h b/jni/parted/libiconv/lib/iso8859_8.h deleted file mode 100755 index 7e3ba96..0000000 --- a/jni/parted/libiconv/lib/iso8859_8.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-8 - */ - -static const unsigned short iso8859_8_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0xfffd, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, - 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, - 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0xfffd, - /* 0xc0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xd0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2017, - /* 0xe0 */ - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - /* 0xf0 */ - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0x200e, 0x200f, 0xfffd, -}; - -static int -iso8859_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0xa0) { - unsigned short wc = iso8859_8_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - else { - *pwc = (ucs4_t) c; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char iso8859_8_page00[88] = { - 0xa0, 0x00, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0xa8, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0xb8, 0xb9, 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, /* 0xf0-0xf7 */ -}; -static const unsigned char iso8859_8_page05[32] = { - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */ - 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char iso8859_8_page20[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xfe, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x10-0x17 */ -}; - -static int -iso8859_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00f8) - c = iso8859_8_page00[wc-0x00a0]; - else if (wc >= 0x05d0 && wc < 0x05f0) - c = iso8859_8_page05[wc-0x05d0]; - else if (wc >= 0x2008 && wc < 0x2018) - c = iso8859_8_page20[wc-0x2008]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/iso8859_9.h b/jni/parted/libiconv/lib/iso8859_9.h deleted file mode 100755 index eb09c58..0000000 --- a/jni/parted/libiconv/lib/iso8859_9.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-8859-9 - */ - -static const unsigned short iso8859_9_2uni[48] = { - /* 0xd0 */ - 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, - 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, - 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, - /* 0xf0 */ - 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, - 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff, -}; - -static int -iso8859_9_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0xd0) - *pwc = (ucs4_t) iso8859_9_2uni[c-0xd0]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char iso8859_9_page00[48] = { - 0x00, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x00, 0x00, 0xdf, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */ - 0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x00, 0xff, /* 0xf8-0xff */ -}; -static const unsigned char iso8859_9_page01[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xf0, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xdd, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xfe, /* 0x58-0x5f */ -}; - -static int -iso8859_9_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00d0) { - *r = wc; - return 1; - } - else if (wc >= 0x00d0 && wc < 0x0100) - c = iso8859_9_page00[wc-0x00d0]; - else if (wc >= 0x0118 && wc < 0x0160) - c = iso8859_9_page01[wc-0x0118]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/isoir165.h b/jni/parted/libiconv/lib/isoir165.h deleted file mode 100755 index 28f47e3..0000000 --- a/jni/parted/libiconv/lib/isoir165.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2005, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-IR-165 - */ - -/* - * ISO-IR-165 is an extension of GB 2312, consisting of: - * 1. GB 6345.1-86 corrections: - * Two corrections to GB 2312, at 0x2367 and 0x6F71. - * 2. GB 6345.1-86 additions: - * - 6 new full-width pinyin characters in row 0x28. - * - ISO646-CN in row 0x2A. - * - 32 half-width pinyin characters in row 0x2B. - * 3. GB 8565.2-88 additions: - * - 50 characters in row 0x2D. - * - 92 characters in row 0x2E. - * - 93 characters in row 0x2F. - * - 470 characters in rows 0x7A-0x7E. - * 4. ISO-IR-165 additions: - * - 22 characters in row 0x26. - * - 94 characters in row 0x2C. - * - 44 new characters in row 0x2D. - * - 1 new character in row 0x2F. - * - * The conversion table was created from the following sources: - * Ad 1. The 0x2367 correction is already integrated in the unicode.org - * GB2312.TXT table. The 0x6F71 mapping is the same in the unicode.org - * GB2312.TXT and UNIHAN.TXT table and in Koichi Yasuoka's Uni2GB table, - * so we assume it's correct. - * The unicode.org UNIHAN.TXT table about GB 8565 is not usable: it has - * extraneous code points at rows 0x28, 0x2C, 0x2D. Note also that it does - * not list the 69 non-hanzi in row 0x2F. Moreover, it has the characters - * 0x2F7A-0x2F7D shifted down by one to 0x2F79-0x2F7C. - * Therefore we take the GB8565 and ISO-IR-165 data from Koichi Yasuoka's - * Uni2GB table. - * Ad 1. Yasuoka maps 0x2367 to U+0261 (small script g) and 0x2840 to U+FF47 - * (full-width small normal g). While coherent with ISO-IR's 165.pdf, - * this disagrees with Ken Lunde's book: He says that ISO-IR-165 - * includes the GB6345 correction, i.e. maps 0x2367 to U+FF47 or U+0067 - * and _not_ to U+0261 (small script g). - * To overcome the confusion, we just map both 0x2367 and 0x2840 to - * U+FF47. - * Ad 2. Row 0x28: Add a mapping from 0x283F to U+01F9. - * Row 0x2A: Mapping is well-known, also present in Koichi Yasuoka's - * table. - * Row 0x2B: Typed in by hand from appendix E in Ken Lunde's book. - * When converting from Unicode to ISO-IR-165, prefer the half-width - * range 0x2B{21..40} to the full-width range 0x28{21..40}. - * Ad 3. Rows 0x2D, 0x2E: Both Koichi Yasuoka's Uni2GB table and the UNIHAN.TXT - * data for GB 8565 agree here. - * Row 0x2F: Taken from Koichi Yasuoka's Uni2GB table. - * Rows 0x7A-0x7E: Koichi Yasuoka's Uni2GB table and the UNIHAN.TXT - * data for GB 8565 agree here mostly. Differences: - * 0x7C38 -> U+6F26 or U+527A ? We choose U+6F26. - * 0x7C5A -> U+7A40 or U+6996 ? We choose U+6996. - * Ad 4. Row 0x26: Mapping unknown. - * Rows 0x2C, 0x2D: Both Koichi Yasuoka's Uni2GB table and the UNIHAN.TXT - * data for GB 8565 (!) agree here. - * Row 0x2F: Taken from Koichi Yasuoka's Uni2GB table. - */ - -#include "isoir165ext.h" - -static int -isoir165_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - int ret; - - /* Map full-width pinyin (row 0x28) like half-width pinyin (row 0x2B). */ - if (s[0] == 0x28) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 <= 0x40) { - unsigned char buf[2]; - buf[0] = 0x2b; - buf[1] = c2; - ret = isoir165ext_mbtowc(conv,pwc,buf,2); - if (ret != RET_ILSEQ) - return ret; - } - } - } - /* Try the GB2312 -> Unicode table. */ - ret = gb2312_mbtowc(conv,pwc,s,n); - if (ret != RET_ILSEQ) - return ret; - /* Row 0x2A is GB_1988-80. */ - if (s[0] == 0x2a) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - ret = iso646_cn_mbtowc(conv,pwc,s+1,1); - if (ret != 1) abort(); - return 2; - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - /* Try the ISO-IR-165 extensions -> Unicode table. */ - ret = isoir165ext_mbtowc(conv,pwc,s,n); - return ret; -} - -static int -isoir165_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Try the Unicode -> GB2312 table. */ - ret = gb2312_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (!(buf[0] == 0x28 && buf[1] >= 0x21 && buf[1] <= 0x40)) { - if (n >= 2) { - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - return RET_TOOSMALL; - } - } - /* Row 0x2A is GB_1988-80. */ - ret = iso646_cn_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - if (ret != 1) abort(); - if (buf[0] >= 0x21 && buf[0] < 0x7f) { - if (n >= 2) { - r[0] = 0x2a; - r[1] = buf[0]; - return 2; - } - return RET_TOOSMALL; - } - } - /* Try the Unicode -> ISO-IR-165 extensions table. */ - ret = isoir165ext_wctomb(conv,r,wc,n); - return ret; -} diff --git a/jni/parted/libiconv/lib/isoir165ext.h b/jni/parted/libiconv/lib/isoir165ext.h deleted file mode 100755 index c92cc40..0000000 --- a/jni/parted/libiconv/lib/isoir165ext.h +++ /dev/null @@ -1,799 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * ISO-IR-165 extensions - */ - -static const unsigned short isoir165ext_2uni_page2b[470] = { - /* 0x2b */ - 0x1fb1, 0x03ac, 0x1fb0, 0x1f70, 0x0113, 0x00e9, 0x011b, 0x00e8, - 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2, - 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc, - 0x00fc, 0x00ea, 0x03b1, 0x1e3f, 0x0144, 0x0148, 0x01f9, 0xff47, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x2c */ - 0x53be, 0x4eb8, 0x4f3e, 0x501e, 0x50c7, 0x9118, 0x6c98, 0x6cdc, - 0x6cc3, 0x6e5d, 0x6ea6, 0x6eeb, 0x6fa5, 0x6165, 0x5ea4, 0x9618, - 0x5848, 0x8453, 0x7cf5, 0x5f07, 0x6294, 0x647d, 0x725a, 0x5574, - 0x55a4, 0x5640, 0x5684, 0x5d1f, 0x72c9, 0x998c, 0x59de, 0x59fd, - 0x5a5e, 0x7ebb, 0x7ee4, 0x7ef9, 0x9a99, 0x71cf, 0x6245, 0x624a, - 0x797c, 0x739a, 0x742b, 0x7488, 0x74aa, 0x74d8, 0x6767, 0x6ab5, - 0x71ca, 0x6ba3, 0x8f80, 0x8f92, 0x8d5f, 0x9b36, 0x72a8, 0x87a3, - 0x8152, 0x6b38, 0x98d0, 0x8897, 0x88af, 0x8955, 0x770a, 0x94da, - 0x955a, 0x9560, 0x9e24, 0x9e40, 0x9e50, 0x9e5d, 0x9e60, 0x870e, - 0x7b5c, 0x7fd9, 0x7fef, 0x7e44, 0x8e45, 0x8e36, 0x8e62, 0x8e5c, - 0x9778, 0x9b46, 0x9f2b, 0x9f41, 0x7526, 0x4e26, 0x8bac, 0x8129, - 0x5091, 0x50cd, 0x52b9, 0x89d4, 0x5557, 0x94c7, - /* 0x2d */ - 0x9496, 0x9498, 0x94cf, 0x94d3, 0x94d4, 0x94e6, 0x9533, 0x951c, - 0x9520, 0x9527, 0x953d, 0x9543, 0x956e, 0x9574, 0x9c80, 0x9c84, - 0x9c8a, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9cbf, 0x9cc0, - 0x9cc1, 0x9cd2, 0x9cdb, 0x9ce0, 0x9ce3, 0x9770, 0x977a, 0x97a1, - 0x97ae, 0x97a8, 0x9964, 0x9966, 0x9978, 0x9979, 0x997b, 0x997e, - 0x9982, 0x9983, 0x998e, 0x9b10, 0x9b18, 0x65a2, 0x9e80, 0x911c, - 0x9e91, 0x9f12, 0x52f3, 0x6c96, 0x6d44, 0x6e1b, 0x6e67, 0x6f82, - 0x6fec, 0x60ae, 0x5ec8, 0x8ffa, 0x577f, 0x5586, 0x849e, 0x8460, - 0x5c05, 0x5e0b, 0x5d11, 0x5d19, 0x5dd6, 0x59b3, 0x5aae, 0x9a94, - 0x658f, 0x709e, 0x7551, 0x71ff, 0x691d, 0x6a11, 0x68bf, 0x6607, - 0x668e, 0x6673, 0x6c25, 0x7652, 0x778b, 0x76ea, 0x9895, 0x8780, - 0x882d, 0x7b87, 0x7c50, 0x8ead, 0x9575, 0x65c2, - /* 0x2e */ - 0x5390, 0x79b8, 0x4f15, 0x4f21, 0x4f3b, 0x4fa2, 0x50a4, 0x5092, - 0x530a, 0x51c3, 0x51a8, 0x8d20, 0x5787, 0x579a, 0x5795, 0x57eb, - 0x585d, 0x585a, 0x5871, 0x5895, 0x5c30, 0x5f0c, 0x5f0d, 0x5f0e, - 0x5c72, 0x5cc7, 0x5fac, 0x5f68, 0x5f5f, 0x5a12, 0x5a65, 0x5a84, - 0x5ac4, 0x7394, 0x73ea, 0x73ee, 0x7437, 0x7415, 0x7454, 0x6799, - 0x686c, 0x68f8, 0x69fe, 0x72e2, 0x6667, 0x8d52, 0x89c3, 0x89cd, - 0x6427, 0x6477, 0x6c1d, 0x813f, 0x6b54, 0x98d6, 0x707a, 0x70f1, - 0x7120, 0x6153, 0x6c87, 0x6dad, 0x6e81, 0x6eb5, 0x6f94, 0x6f9b, - 0x793d, 0x794e, 0x7806, 0x7859, 0x7894, 0x78dc, 0x7903, 0x7a16, - 0x7a5e, 0x75e0, 0x7adc, 0x7676, 0x9892, 0x7bf2, 0x7c30, 0x7c5d, - 0x9c9d, 0x7cac, 0x8278, 0x83d1, 0x84ea, 0x7fc0, 0x7f1e, 0x8e21, - 0x8e53, 0x9754, 0x9f0c, 0x94fb, 0xfffd, 0xfffd, - /* 0x2f */ - 0x32c0, 0x32c1, 0x32c2, 0x32c3, 0x32c4, 0x32c5, 0x32c6, 0x32c7, - 0x32c8, 0x32c9, 0x32ca, 0x32cb, 0x33e0, 0x33e1, 0x33e2, 0x33e3, - 0x33e4, 0x33e5, 0x33e6, 0x33e7, 0x33e8, 0x33e9, 0x33ea, 0x33eb, - 0x33ec, 0x33ed, 0x33ee, 0x33ef, 0x33f0, 0x33f1, 0x33f2, 0x33f3, - 0x33f4, 0x33f5, 0x33f6, 0x33f7, 0x33f8, 0x33f9, 0x33fa, 0x33fb, - 0x33fc, 0x33fd, 0x33fe, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c, - 0x335d, 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364, - 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c, - 0x336d, 0x336e, 0x336f, 0x3370, 0x3037, 0x90a8, 0x965e, 0x5842, - 0x5803, 0x6c3e, 0x6d29, 0x6ee7, 0x8534, 0x84c6, 0x633c, 0x5d05, - 0x7f10, 0x7eec, 0x7287, 0x712e, 0x8218, 0x8216, 0x756c, 0x75f3, - 0x9b25, 0x8980, 0x7ca6, 0x4e85, 0x5570, 0x91c6, -}; -static const unsigned short isoir165ext_2uni_page7a[470] = { - /* 0x7a */ - 0x4e0f, 0x673f, 0x4e42, 0x752a, 0x592c, 0x9ee1, 0x8652, 0x531c, - 0x5187, 0x518f, 0x50f0, 0x4f0b, 0x4f23, 0x4f03, 0x4f61, 0x4f7a, - 0x4f6b, 0x4feb, 0x4ff5, 0x5034, 0x5022, 0x4ff6, 0x5072, 0x4eb6, - 0x51ae, 0x5910, 0x6bda, 0x522c, 0x5232, 0x4fb4, 0x5298, 0x52bb, - 0x52bc, 0x52cd, 0x52da, 0x52f7, 0x53c6, 0x53c7, 0x5770, 0x576c, - 0x57b1, 0x579f, 0x579e, 0x57be, 0x57cc, 0x580e, 0x580c, 0x57f5, - 0x5809, 0x583c, 0x5843, 0x5845, 0x5846, 0x583d, 0x5853, 0x5888, - 0x5884, 0x58f8, 0x56ad, 0x5940, 0x5953, 0x596d, 0x5c2a, 0x54a5, - 0x551d, 0x5536, 0x556f, 0x554d, 0x569a, 0x569c, 0x56f7, 0x5710, - 0x5719, 0x5e17, 0x5e21, 0x5e28, 0x5e6a, 0x5c74, 0x5c7c, 0x5ca8, - 0x5c9e, 0x5cc3, 0x5cd3, 0x5ce3, 0x5ce7, 0x5cff, 0x5d04, 0x5d00, - 0x5d1a, 0x5d0c, 0x5d4e, 0x5d5a, 0x5d85, 0x5d93, - /* 0x7b */ - 0x5d92, 0x5dc2, 0x5dc9, 0x8852, 0x5faf, 0x5906, 0x65a8, 0x7241, - 0x7242, 0x5ebc, 0x5ecb, 0x95ec, 0x95ff, 0x8a1a, 0x9607, 0x9613, - 0x961b, 0x5bac, 0x5ba7, 0x5c5d, 0x5f22, 0x59ee, 0x5a7c, 0x5a96, - 0x5a73, 0x5a9e, 0x5aad, 0x5ada, 0x5aea, 0x5b1b, 0x5b56, 0x9a72, - 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a95, 0x9aa6, 0x7395, 0x7399, - 0x73a0, 0x73b1, 0x73a5, 0x73a6, 0x73d6, 0x73f0, 0x73fd, 0x73e3, - 0x7424, 0x740e, 0x7407, 0x73f6, 0x73fa, 0x7432, 0x742f, 0x7444, - 0x7442, 0x7471, 0x7478, 0x7462, 0x7486, 0x749f, 0x74a0, 0x7498, - 0x74b2, 0x97e8, 0x6745, 0x679f, 0x677b, 0x67c8, 0x67ee, 0x684b, - 0x68a0, 0x6812, 0x681f, 0x686a, 0x68bc, 0x68fb, 0x686f, 0x68b1, - 0x68c1, 0x68eb, 0x6913, 0x68d1, 0x6911, 0x68d3, 0x68ec, 0x692b, - 0x68e8, 0x69be, 0x6969, 0x6940, 0x696f, 0x695f, - /* 0x7c */ - 0x6962, 0x6935, 0x6959, 0x69bc, 0x69c5, 0x69da, 0x69dc, 0x6a0b, - 0x69e5, 0x6a66, 0x6a96, 0x6ab4, 0x72dd, 0x5cf1, 0x7314, 0x733a, - 0x6b95, 0x5f67, 0x80fe, 0x74fb, 0x7503, 0x655c, 0x6569, 0x6f26, - 0x65f8, 0x65fb, 0x6609, 0x663d, 0x6662, 0x665e, 0x666c, 0x668d, - 0x668b, 0x8d51, 0x8d57, 0x7263, 0x7277, 0x63b1, 0x6261, 0x6260, - 0x6283, 0x62e4, 0x62c3, 0x631c, 0x6326, 0x63af, 0x63fe, 0x6422, - 0x6412, 0x64ed, 0x6713, 0x6718, 0x8158, 0x81d1, 0x98cf, 0x98d4, - 0x98d7, 0x6996, 0x7098, 0x70dc, 0x70fa, 0x710c, 0x711c, 0x71cb, - 0x721f, 0x70dd, 0x659d, 0x6246, 0x6017, 0x60c7, 0x60d3, 0x60b0, - 0x60d9, 0x6114, 0x6c3f, 0x6c67, 0x6c84, 0x6c9a, 0x6c6d, 0x6ca8, - 0x6cc6, 0x6cb5, 0x6d49, 0x6d38, 0x6d11, 0x6d3a, 0x6d28, 0x6d50, - 0x6d34, 0x6d55, 0x6d61, 0x6da2, 0x6d65, 0x6d5b, - /* 0x7d */ - 0x6d64, 0x6db4, 0x6e9a, 0x6e5c, 0x6e72, 0x6ea0, 0x6e87, 0x6e8e, - 0x6ec9, 0x6ec3, 0x6f37, 0x6ed8, 0x6eea, 0x6f56, 0x6f75, 0x6f5f, - 0x6fb4, 0x6fbc, 0x7014, 0x700d, 0x700c, 0x703c, 0x7943, 0x7947, - 0x794a, 0x7950, 0x7972, 0x7998, 0x79a0, 0x79a4, 0x77fc, 0x77fb, - 0x7822, 0x7820, 0x7841, 0x785a, 0x7875, 0x78b6, 0x78e1, 0x7933, - 0x8a5f, 0x76fb, 0x771b, 0x772c, 0x7786, 0x77ab, 0x77ad, 0x7564, - 0x756f, 0x6983, 0x7f7d, 0x76dd, 0x76e6, 0x76ec, 0x7521, 0x79fe, - 0x7a44, 0x767f, 0x769e, 0x9e27, 0x9e2e, 0x9e30, 0x9e34, 0x9e4d, - 0x9e52, 0x9e53, 0x9e54, 0x9e56, 0x9e59, 0x9e61, 0x9e62, 0x9e65, - 0x9e6f, 0x9e74, 0x75a2, 0x7604, 0x7608, 0x761d, 0x7ad1, 0x7a85, - 0x7a8e, 0x7aa3, 0x7ab8, 0x7abe, 0x77de, 0x8030, 0x988b, 0x988e, - 0x9899, 0x98a3, 0x8683, 0x8705, 0x8758, 0x87cf, - /* 0x7e */ - 0x87e2, 0x880b, 0x80d4, 0x7f4d, 0x7b4a, 0x7b4e, 0x7b7f, 0x7b93, - 0x7bef, 0x7c09, 0x7bf0, 0x7c15, 0x7c03, 0x7c20, 0x823a, 0x8886, - 0x88aa, 0x88c0, 0x88c8, 0x8926, 0x8976, 0x7f91, 0x8283, 0x82bc, - 0x82a7, 0x8313, 0x82fe, 0x8300, 0x835d, 0x8345, 0x8344, 0x831d, - 0x83a6, 0x8399, 0x83fe, 0x841a, 0x83fc, 0x8429, 0x8439, 0x84a8, - 0x84cf, 0x849f, 0x84c2, 0x84f7, 0x8570, 0x85b3, 0x85a2, 0x96d8, - 0x85b8, 0x85e0, 0x7fda, 0x7eae, 0x7eb4, 0x7ebc, 0x7ed6, 0x7f0a, - 0x5b43, 0x8d6a, 0x5245, 0x8c68, 0x8c6e, 0x8c6d, 0x8e16, 0x8e26, - 0x8e27, 0x8e50, 0x9098, 0x90a0, 0x90bd, 0x90c8, 0x90c3, 0x90da, - 0x90ff, 0x911a, 0x910c, 0x9120, 0x9142, 0x8fb5, 0x90e4, 0x8c86, - 0x89f1, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bea, 0x8c09, 0x8c1e, 0x9702, - 0x68d0, 0x7306, 0x9f81, 0x9f82, 0x92c6, 0x9491, -}; - -static int -isoir165ext_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x2b && c1 <= 0x2f) || (c1 >= 0x7a && c1 <= 0x7e)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 8366) { - if (i < 1410) - wc = isoir165ext_2uni_page2b[i-940]; - } else { - if (i < 8836) - wc = isoir165ext_2uni_page7a[i-8366]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short isoir165ext_2charset[876] = { - 0x2b28, 0x2b26, 0x2b3a, 0x2b2c, 0x2b2a, 0x2b30, 0x2b2e, 0x2b34, - 0x2b32, 0x2b39, 0x2b25, 0x2b27, 0x2b29, 0x2b3d, 0x2b3e, 0x2b2d, - 0x2b31, 0x2b2b, 0x2b2f, 0x2b33, 0x2b35, 0x2b36, 0x2b37, 0x2b38, - 0x2b3f, 0x2b22, 0x2b3b, 0x2b3c, 0x2b24, 0x2b23, 0x2b21, 0x2f65, - 0x2f21, 0x2f22, 0x2f23, 0x2f24, 0x2f25, 0x2f26, 0x2f27, 0x2f28, - 0x2f29, 0x2f2a, 0x2f2b, 0x2f2c, 0x2f4c, 0x2f4d, 0x2f4e, 0x2f4f, - 0x2f50, 0x2f51, 0x2f52, 0x2f53, 0x2f54, 0x2f55, 0x2f56, 0x2f57, - 0x2f58, 0x2f59, 0x2f5a, 0x2f5b, 0x2f5c, 0x2f5d, 0x2f5e, 0x2f5f, - 0x2f60, 0x2f61, 0x2f62, 0x2f63, 0x2f64, 0x2f2d, 0x2f2e, 0x2f2f, - 0x2f30, 0x2f31, 0x2f32, 0x2f33, 0x2f34, 0x2f35, 0x2f36, 0x2f37, - 0x2f38, 0x2f39, 0x2f3a, 0x2f3b, 0x2f3c, 0x2f3d, 0x2f3e, 0x2f3f, - 0x2f40, 0x2f41, 0x2f42, 0x2f43, 0x2f44, 0x2f45, 0x2f46, 0x2f47, - 0x2f48, 0x2f49, 0x2f4a, 0x2f4b, 0x7a21, 0x2c76, 0x7a23, 0x2f7c, - 0x7a38, 0x2c22, 0x7a2e, 0x7a2c, 0x2e23, 0x2e24, 0x7a2d, 0x2e25, - 0x2c23, 0x7a2f, 0x7a31, 0x7a30, 0x2e26, 0x7a3e, 0x7a32, 0x7a33, - 0x7a36, 0x2c24, 0x7a35, 0x7a34, 0x7a37, 0x2c79, 0x2e28, 0x2e27, - 0x2c25, 0x2c7a, 0x7a2b, 0x7a29, 0x7a2a, 0x2e2b, 0x7a39, 0x2e2a, - 0x7a3c, 0x7a3d, 0x7e5b, 0x7a3f, 0x2c7b, 0x7a40, 0x7a41, 0x7a42, - 0x7a43, 0x2d53, 0x7a44, 0x2e29, 0x7a28, 0x2e21, 0x2c21, 0x7a45, - 0x7a46, 0x7a60, 0x7a61, 0x7a62, 0x7a64, 0x2c7d, 0x7a63, 0x2f7d, - 0x2c38, 0x2d5e, 0x2c39, 0x2c3a, 0x2c3b, 0x7a65, 0x7a66, 0x7a5b, - 0x7a67, 0x7a68, 0x7a69, 0x7a48, 0x7a47, 0x2d5d, 0x2e2d, 0x2e2f, - 0x2e2e, 0x7a4b, 0x7a4a, 0x7a49, 0x7a4c, 0x7a4d, 0x2e30, 0x7a50, - 0x2f69, 0x7a51, 0x7a4f, 0x7a4e, 0x7a52, 0x7a56, 0x2f68, 0x7a53, - 0x7a54, 0x7a55, 0x2c31, 0x7a57, 0x2e32, 0x2e31, 0x2e33, 0x7a59, - 0x7a58, 0x2e34, 0x7a5a, 0x7b26, 0x7a3a, 0x7a25, 0x7a5c, 0x7a5d, - 0x7a5e, 0x2d66, 0x2c3f, 0x7b36, 0x2c40, 0x2e3e, 0x2c41, 0x2e3f, - 0x7b39, 0x7b37, 0x2e40, 0x7b38, 0x7b3a, 0x7b3b, 0x2d67, 0x2e41, - 0x7b3c, 0x7b3d, 0x7b3e, 0x7e59, 0x7b3f, 0x7b33, 0x7b32, 0x2d61, - 0x7a5f, 0x2e35, 0x7b34, 0x2e39, 0x7a6e, 0x7a6f, 0x7a71, 0x7a70, - 0x7a72, 0x2e3a, 0x7a73, 0x7a74, 0x7a75, 0x7c2e, 0x7a76, 0x7a78, - 0x7a77, 0x2f70, 0x7a7a, 0x2d63, 0x2d64, 0x7a79, 0x2c3c, 0x7a7b, - 0x7a7c, 0x7a7d, 0x7b21, 0x7a7e, 0x7b22, 0x7b23, 0x2d65, 0x2d62, - 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x2c2f, 0x7b2a, 0x2d5b, 0x7b2b, - 0x2c34, 0x2e36, 0x2e37, 0x2e38, 0x7b35, 0x2e3d, 0x7c32, 0x2e3c, - 0x2e3b, 0x7b25, 0x7c65, 0x2d5a, 0x7c68, 0x7c66, 0x7c67, 0x7c69, - 0x7c6a, 0x2e5a, 0x2c2e, 0x2c47, 0x7c64, 0x2c48, 0x7c48, 0x7c47, - 0x7c49, 0x2c35, 0x7c4b, 0x7c4a, 0x7c4c, 0x7c4d, 0x2f6f, 0x7c4e, - 0x7c46, 0x7c4f, 0x7c51, 0x7c50, 0x2e51, 0x2e52, 0x2c36, 0x7c52, - 0x7c36, 0x7c37, 0x2d69, 0x7c63, 0x2d4e, 0x7b27, 0x2d7e, 0x7c39, - 0x7c3a, 0x2d70, 0x7c3b, 0x7c3c, 0x7c3e, 0x7c3d, 0x2e4d, 0x7c3f, - 0x2d72, 0x7c41, 0x7c40, 0x2d71, 0x7c53, 0x7c54, 0x7a22, 0x7b63, - 0x2c4f, 0x7b65, 0x2e48, 0x7b64, 0x7b66, 0x7b67, 0x7b6a, 0x7b6b, - 0x7b68, 0x7b6c, 0x2e49, 0x7b6f, 0x7b69, 0x7b70, 0x7b6d, 0x2d6f, - 0x7b71, 0x7e79, 0x7b74, 0x7b76, 0x7b79, 0x7b72, 0x7b77, 0x2e4a, - 0x7b6e, 0x7b75, 0x7b73, 0x2d6d, 0x7b78, 0x7c22, 0x7b7c, 0x7c23, - 0x7b7e, 0x7c21, 0x7b7b, 0x7b7d, 0x7d52, 0x7c5a, 0x7c24, 0x7b7a, - 0x7c25, 0x7c26, 0x7c27, 0x7c29, 0x2e4b, 0x7c28, 0x2d6e, 0x7c2a, - 0x7c2b, 0x7c2c, 0x2c50, 0x2c5a, 0x2e55, 0x7c31, 0x2c52, 0x7a3b, - 0x2e53, 0x2d73, 0x2f6a, 0x7c6b, 0x7c6c, 0x7c6f, 0x7c6d, 0x2e5b, - 0x2d54, 0x2c27, 0x7c6e, 0x7c70, 0x7c72, 0x2c29, 0x7c71, 0x2c28, - 0x7c75, 0x7c77, 0x2f6b, 0x7c79, 0x7c74, 0x7c76, 0x2d55, 0x7c73, - 0x7c78, 0x7c7a, 0x7c7e, 0x7c7b, 0x7d21, 0x7c7d, 0x7c7c, 0x2e5c, - 0x7d22, 0x2d56, 0x7d24, 0x2c2a, 0x2d57, 0x7d25, 0x2e5d, 0x7d27, - 0x7d28, 0x7d23, 0x7d26, 0x2c2b, 0x2e5e, 0x7d2a, 0x7d29, 0x7d2c, - 0x2f6c, 0x7d2d, 0x2c2c, 0x7c38, 0x7d2b, 0x7d2e, 0x7d30, 0x7d2f, - 0x2d58, 0x2e5f, 0x2e60, 0x2c2d, 0x7d31, 0x7d32, 0x2d59, 0x7d35, - 0x7d34, 0x7d33, 0x7d36, 0x2e57, 0x7c5b, 0x2d6a, 0x7c5c, 0x7c62, - 0x2e58, 0x7c5d, 0x7c5e, 0x7c5f, 0x2e59, 0x2f74, 0x2c51, 0x7c60, - 0x2c46, 0x2d6c, 0x7c61, 0x7b28, 0x7b29, 0x2c37, 0x7c44, 0x7c45, - 0x2f73, 0x2c57, 0x2c3d, 0x7c2d, 0x2e4c, 0x7e7a, 0x7c2f, 0x7c30, - 0x2e42, 0x7b47, 0x7b48, 0x2c4a, 0x7b49, 0x7b4b, 0x7b4c, 0x7b4a, - 0x7b4d, 0x7b50, 0x2e43, 0x2e44, 0x7b4e, 0x7b54, 0x7b55, 0x7b4f, - 0x7b53, 0x7b52, 0x2e46, 0x7b51, 0x2c4b, 0x7b57, 0x7b56, 0x2e45, - 0x7b59, 0x7b58, 0x2e47, 0x7b5c, 0x7b5a, 0x7b5b, 0x7b5d, 0x2c4c, - 0x7b60, 0x7b5e, 0x7b5f, 0x2c4d, 0x7b61, 0x2c4e, 0x7c34, 0x7c35, - 0x7d57, 0x2c75, 0x7a24, 0x2d6b, 0x7d50, 0x2f77, 0x7d51, 0x7d6b, - 0x2e6a, 0x2f78, 0x7d6c, 0x7d6d, 0x7d6e, 0x2d74, 0x2e6c, 0x7d5a, - 0x7d5b, 0x7d54, 0x7d55, 0x2d76, 0x7d56, 0x7d4a, 0x2c5f, 0x7d4b, - 0x7d4c, 0x7d4d, 0x2d75, 0x7d4e, 0x7d4f, 0x7d75, 0x7d40, 0x7d3f, - 0x2e63, 0x7d42, 0x7d41, 0x7d43, 0x2e64, 0x7d44, 0x7d45, 0x2e65, - 0x7d46, 0x2e66, 0x7d47, 0x2e67, 0x7d48, 0x2e61, 0x7d37, 0x7d38, - 0x7d39, 0x2e62, 0x7d3a, 0x7d3b, 0x2c49, 0x7d3c, 0x7d3d, 0x7d3e, - 0x2e22, 0x7d58, 0x2e68, 0x7d59, 0x2e69, 0x7d70, 0x7d71, 0x7d72, - 0x7d73, 0x7d74, 0x7d6f, 0x2e6b, 0x7e25, 0x7e26, 0x2c69, 0x7e27, - 0x2d7a, 0x7e28, 0x7e29, 0x7e2b, 0x2e6e, 0x7e2d, 0x7e2a, 0x7e2c, - 0x7e2e, 0x2e6f, 0x2d7b, 0x2e70, 0x2f7b, 0x2e72, 0x2c33, 0x2c6c, - 0x7e54, 0x7e55, 0x2c42, 0x7e56, 0x7e57, 0x2c43, 0x2f72, 0x2c44, - 0x7e58, 0x2f71, 0x2e77, 0x7e24, 0x7d53, 0x7e36, 0x2e76, 0x2c6a, - 0x7e53, 0x2c6b, 0x7d76, 0x7e23, 0x7c33, 0x2c78, 0x2e54, 0x2c59, - 0x7c55, 0x7c56, 0x2f76, 0x2f75, 0x7e2f, 0x2e73, 0x7e37, 0x7e39, - 0x7e38, 0x7e3b, 0x7e3c, 0x7e3a, 0x7e40, 0x7e3f, 0x7e3e, 0x7e3d, - 0x7e42, 0x7e41, 0x2e74, 0x7e45, 0x7e43, 0x7e44, 0x7e46, 0x7e47, - 0x2c32, 0x2d60, 0x2d5f, 0x7e4a, 0x7e48, 0x7e4b, 0x2f6e, 0x7e49, - 0x2e75, 0x7e4c, 0x2f6d, 0x7e4d, 0x7e4f, 0x7e4e, 0x7e51, 0x7e52, - 0x7a27, 0x7d7b, 0x7d7c, 0x2c68, 0x7d7d, 0x2d78, 0x2c58, 0x7d7e, - 0x7e21, 0x7e22, 0x2d79, 0x7b24, 0x7e30, 0x2c5c, 0x7e31, 0x2c5d, - 0x7e32, 0x7e33, 0x7e34, 0x2c5e, 0x7e35, 0x2f7a, 0x2e4f, 0x2e50, - 0x2c7c, 0x7e71, 0x7b2e, 0x7d49, 0x2c77, 0x7e72, 0x7e73, 0x7e74, - 0x7e75, 0x7e76, 0x7e77, 0x7e5c, 0x7e5e, 0x7e5d, 0x7e70, 0x2e2c, - 0x7c42, 0x2e4e, 0x7c43, 0x2c55, 0x7e5a, 0x7e5f, 0x2e78, 0x7e60, - 0x7e61, 0x2c6e, 0x2c6d, 0x7e62, 0x2e79, 0x2c70, 0x2c6f, 0x2d7c, - 0x2c53, 0x2c54, 0x7e6e, 0x2d5c, 0x7e63, 0x7e64, 0x2f66, 0x7e65, - 0x7e67, 0x7e66, 0x7e68, 0x7e6f, 0x7e69, 0x7e6b, 0x2c26, 0x7e6a, - 0x2d50, 0x7e6c, 0x7e6d, 0x2f7e, 0x7e7d, 0x7e7e, 0x2d21, 0x2d22, - 0x2c7e, 0x2d23, 0x2d24, 0x2d25, 0x2c60, 0x2d26, 0x2e7c, 0x2d28, - 0x2d29, 0x2d2a, 0x2d27, 0x2d2b, 0x2d2c, 0x2c61, 0x2c62, 0x2d2d, - 0x2d2e, 0x2d7d, 0x7b2c, 0x7b2d, 0x7b2f, 0x7b30, 0x2c30, 0x7b31, - 0x2f67, 0x7e50, 0x7e78, 0x2e7a, 0x2d3e, 0x2c71, 0x2d3f, 0x2d40, - 0x2d42, 0x2d41, 0x7b62, 0x7d77, 0x7d78, 0x2e6d, 0x2d77, 0x7d79, - 0x7d7a, 0x7c57, 0x2c5b, 0x7c58, 0x2e56, 0x7c59, 0x2d43, 0x2d44, - 0x2d45, 0x2d46, 0x2d47, 0x2d48, 0x2d49, 0x2d4a, 0x2c3e, 0x2d4b, - 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44, 0x2d68, 0x7b45, 0x2c45, - 0x7b46, 0x2d4c, 0x2d4d, 0x2f79, 0x2c56, 0x2c72, 0x2d2f, 0x2d30, - 0x2d31, 0x2d32, 0x2d33, 0x2d34, 0x2d35, 0x2d36, 0x2e71, 0x2d37, - 0x2d38, 0x2d39, 0x2d3a, 0x2d3b, 0x2d3c, 0x2d3d, 0x2c63, 0x7d5c, - 0x7d5d, 0x7d5e, 0x7d5f, 0x2c64, 0x7d60, 0x2c65, 0x7d61, 0x7d62, - 0x7d63, 0x7d64, 0x7d65, 0x2c66, 0x2c67, 0x7d66, 0x7d67, 0x7d68, - 0x7d69, 0x7d6a, 0x2d4f, 0x2d51, 0x7a26, 0x2e7b, 0x2d52, 0x2c73, - 0x2c74, 0x7e7b, 0x7e7c, 0x2b40, -}; - -static const Summary16 isoir165ext_uni2indx_page00[32] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x3700 }, { 5, 0x160c }, - /* 0x0100 */ - { 10, 0x0000 }, { 10, 0x0808 }, { 12, 0x0800 }, { 13, 0x0000 }, - { 13, 0x2110 }, { 16, 0x0000 }, { 16, 0x0800 }, { 17, 0x0000 }, - { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, { 17, 0x0000 }, - { 17, 0x0000 }, { 17, 0x1555 }, { 24, 0x0000 }, { 24, 0x0200 }, -}; -static const Summary16 isoir165ext_uni2indx_page03[12] = { - /* 0x0300 */ - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x0000 }, - { 25, 0x0000 }, { 25, 0x0000 }, { 25, 0x1000 }, { 26, 0x0002 }, -}; -static const Summary16 isoir165ext_uni2indx_page1e[28] = { - /* 0x1e00 */ - { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x0000 }, { 27, 0x8000 }, - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, - /* 0x1f00 */ - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, - { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0000 }, { 28, 0x0001 }, - { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0000 }, { 29, 0x0003 }, -}; -static const Summary16 isoir165ext_uni2indx_page30[4] = { - /* 0x3000 */ - { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0000 }, { 31, 0x0080 }, -}; -static const Summary16 isoir165ext_uni2indx_page32[32] = { - /* 0x3200 */ - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, { 32, 0x0000 }, - { 32, 0x0fff }, { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, - /* 0x3300 */ - { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, { 44, 0x0000 }, - { 44, 0x0000 }, { 44, 0xff00 }, { 52, 0xffff }, { 68, 0x0001 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0x0000 }, - { 69, 0x0000 }, { 69, 0x0000 }, { 69, 0xffff }, { 85, 0x7fff }, -}; -static const Summary16 isoir165ext_uni2indx_page4e[752] = { - /* 0x4e00 */ - { 100, 0x8000 }, { 101, 0x0000 }, { 101, 0x0040 }, { 102, 0x0000 }, - { 102, 0x0004 }, { 103, 0x0000 }, { 103, 0x0000 }, { 103, 0x0000 }, - { 103, 0x0020 }, { 104, 0x0000 }, { 104, 0x0000 }, { 104, 0x0140 }, - { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, { 106, 0x0000 }, - /* 0x4f00 */ - { 106, 0x0808 }, { 108, 0x0020 }, { 109, 0x000a }, { 111, 0x4800 }, - { 113, 0x0000 }, { 113, 0x0000 }, { 113, 0x0802 }, { 115, 0x0400 }, - { 116, 0x0000 }, { 116, 0x0000 }, { 116, 0x0004 }, { 117, 0x0010 }, - { 118, 0x0000 }, { 118, 0x0000 }, { 118, 0x0800 }, { 119, 0x0060 }, - /* 0x5000 */ - { 121, 0x0000 }, { 121, 0x4000 }, { 122, 0x0004 }, { 123, 0x0010 }, - { 124, 0x0000 }, { 124, 0x0000 }, { 124, 0x0000 }, { 124, 0x0004 }, - { 125, 0x0000 }, { 125, 0x0006 }, { 127, 0x0010 }, { 128, 0x0000 }, - { 128, 0x2080 }, { 130, 0x0000 }, { 130, 0x0000 }, { 130, 0x0001 }, - /* 0x5100 */ - { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, - { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, { 131, 0x0000 }, - { 131, 0x8080 }, { 133, 0x0000 }, { 133, 0x4100 }, { 135, 0x0000 }, - { 135, 0x0008 }, { 136, 0x0000 }, { 136, 0x0000 }, { 136, 0x0000 }, - /* 0x5200 */ - { 136, 0x0000 }, { 136, 0x0000 }, { 136, 0x1000 }, { 137, 0x0004 }, - { 138, 0x0020 }, { 139, 0x0000 }, { 139, 0x0000 }, { 139, 0x0000 }, - { 139, 0x0000 }, { 139, 0x0100 }, { 140, 0x0000 }, { 140, 0x1a00 }, - { 143, 0x2000 }, { 144, 0x0400 }, { 145, 0x0000 }, { 145, 0x0088 }, - /* 0x5300 */ - { 147, 0x0400 }, { 148, 0x1000 }, { 149, 0x0000 }, { 149, 0x0000 }, - { 149, 0x0000 }, { 149, 0x0000 }, { 149, 0x0000 }, { 149, 0x0000 }, - { 149, 0x0000 }, { 149, 0x0001 }, { 150, 0x0000 }, { 150, 0x4000 }, - { 151, 0x00c0 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, - /* 0x5400 */ - { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, - { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0000 }, - { 153, 0x0000 }, { 153, 0x0000 }, { 153, 0x0020 }, { 154, 0x0000 }, - { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, { 154, 0x0000 }, - /* 0x5500 */ - { 154, 0x0000 }, { 154, 0x2000 }, { 155, 0x0000 }, { 155, 0x0040 }, - { 156, 0x2000 }, { 157, 0x0080 }, { 158, 0x8000 }, { 159, 0x0011 }, - { 161, 0x0040 }, { 162, 0x0000 }, { 162, 0x0010 }, { 163, 0x0000 }, - { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, - /* 0x5600 */ - { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, { 163, 0x0000 }, - { 163, 0x0001 }, { 164, 0x0000 }, { 164, 0x0000 }, { 164, 0x0000 }, - { 164, 0x0010 }, { 165, 0x1400 }, { 167, 0x2000 }, { 168, 0x0000 }, - { 168, 0x0000 }, { 168, 0x0000 }, { 168, 0x0000 }, { 168, 0x0080 }, - /* 0x5700 */ - { 169, 0x0000 }, { 169, 0x0201 }, { 171, 0x0000 }, { 171, 0x0000 }, - { 171, 0x0000 }, { 171, 0x0000 }, { 171, 0x1000 }, { 172, 0x8001 }, - { 174, 0x0080 }, { 175, 0xc420 }, { 179, 0x0000 }, { 179, 0x4002 }, - { 181, 0x1000 }, { 182, 0x0000 }, { 182, 0x0800 }, { 183, 0x0020 }, - /* 0x5800 */ - { 184, 0x5208 }, { 188, 0x0000 }, { 188, 0x0000 }, { 188, 0x3000 }, - { 190, 0x016c }, { 195, 0x2408 }, { 198, 0x0000 }, { 198, 0x0002 }, - { 199, 0x0110 }, { 201, 0x0020 }, { 202, 0x0000 }, { 202, 0x0000 }, - { 202, 0x0000 }, { 202, 0x0000 }, { 202, 0x0000 }, { 202, 0x0100 }, - /* 0x5900 */ - { 203, 0x0040 }, { 204, 0x0001 }, { 205, 0x1000 }, { 206, 0x0000 }, - { 206, 0x0001 }, { 207, 0x0008 }, { 208, 0x2000 }, { 209, 0x0000 }, - { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0000 }, { 209, 0x0008 }, - { 210, 0x0000 }, { 210, 0x4000 }, { 211, 0x4000 }, { 212, 0x2000 }, - /* 0x5a00 */ - { 213, 0x0000 }, { 213, 0x0004 }, { 214, 0x0000 }, { 214, 0x0000 }, - { 214, 0x0000 }, { 214, 0x4000 }, { 215, 0x0020 }, { 216, 0x1008 }, - { 218, 0x0010 }, { 219, 0x4040 }, { 221, 0x6000 }, { 223, 0x0000 }, - { 223, 0x0010 }, { 224, 0x0400 }, { 225, 0x0400 }, { 226, 0x0000 }, - /* 0x5b00 */ - { 226, 0x0000 }, { 226, 0x0800 }, { 227, 0x0000 }, { 227, 0x0000 }, - { 227, 0x0008 }, { 228, 0x0040 }, { 229, 0x0000 }, { 229, 0x0000 }, - { 229, 0x0000 }, { 229, 0x0000 }, { 229, 0x1080 }, { 231, 0x0000 }, - { 231, 0x0000 }, { 231, 0x0000 }, { 231, 0x0000 }, { 231, 0x0000 }, - /* 0x5c00 */ - { 231, 0x0020 }, { 232, 0x0000 }, { 232, 0x0400 }, { 233, 0x0001 }, - { 234, 0x0000 }, { 234, 0x2000 }, { 235, 0x0000 }, { 235, 0x1014 }, - { 238, 0x0000 }, { 238, 0x4000 }, { 239, 0x0100 }, { 240, 0x0000 }, - { 240, 0x0088 }, { 242, 0x0008 }, { 243, 0x0088 }, { 245, 0x8002 }, - /* 0x5d00 */ - { 247, 0x1031 }, { 251, 0x8602 }, { 255, 0x0000 }, { 255, 0x0000 }, - { 255, 0x4000 }, { 256, 0x0400 }, { 257, 0x0000 }, { 257, 0x0000 }, - { 257, 0x0020 }, { 258, 0x000c }, { 260, 0x0000 }, { 260, 0x0000 }, - { 260, 0x0204 }, { 262, 0x0040 }, { 263, 0x0000 }, { 263, 0x0000 }, - /* 0x5e00 */ - { 263, 0x0800 }, { 264, 0x0080 }, { 265, 0x0102 }, { 267, 0x0000 }, - { 267, 0x0000 }, { 267, 0x0000 }, { 267, 0x0400 }, { 268, 0x0000 }, - { 268, 0x0000 }, { 268, 0x0000 }, { 268, 0x0010 }, { 269, 0x1000 }, - { 270, 0x0900 }, { 272, 0x0000 }, { 272, 0x0000 }, { 272, 0x0000 }, - /* 0x5f00 */ - { 272, 0x7080 }, { 276, 0x0000 }, { 276, 0x0004 }, { 277, 0x0000 }, - { 277, 0x0000 }, { 277, 0x8000 }, { 278, 0x0180 }, { 280, 0x0000 }, - { 280, 0x0000 }, { 280, 0x0000 }, { 280, 0x9000 }, { 282, 0x0000 }, - { 282, 0x0000 }, { 282, 0x0000 }, { 282, 0x0000 }, { 282, 0x0000 }, - /* 0x6000 */ - { 282, 0x0000 }, { 282, 0x0080 }, { 283, 0x0000 }, { 283, 0x0000 }, - { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x0000 }, - { 283, 0x0000 }, { 283, 0x0000 }, { 283, 0x4000 }, { 284, 0x0001 }, - { 285, 0x0080 }, { 286, 0x0208 }, { 288, 0x0000 }, { 288, 0x0000 }, - /* 0x6100 */ - { 288, 0x0000 }, { 288, 0x0010 }, { 289, 0x0000 }, { 289, 0x0000 }, - { 289, 0x0000 }, { 289, 0x0008 }, { 290, 0x0020 }, { 291, 0x0000 }, - { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, - { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, - /* 0x6200 */ - { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, { 291, 0x0000 }, - { 291, 0x0460 }, { 294, 0x0000 }, { 294, 0x0003 }, { 296, 0x0000 }, - { 296, 0x0008 }, { 297, 0x0010 }, { 298, 0x0000 }, { 298, 0x0000 }, - { 298, 0x0008 }, { 299, 0x0000 }, { 299, 0x0010 }, { 300, 0x0000 }, - /* 0x6300 */ - { 300, 0x0000 }, { 300, 0x1000 }, { 301, 0x0040 }, { 302, 0x1000 }, - { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x0000 }, - { 303, 0x0000 }, { 303, 0x0000 }, { 303, 0x8000 }, { 304, 0x0002 }, - { 305, 0x0000 }, { 305, 0x0000 }, { 305, 0x0000 }, { 305, 0x4000 }, - /* 0x6400 */ - { 306, 0x0000 }, { 306, 0x0004 }, { 307, 0x0084 }, { 309, 0x0000 }, - { 309, 0x0000 }, { 309, 0x0000 }, { 309, 0x0000 }, { 309, 0x2080 }, - { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x0000 }, - { 311, 0x0000 }, { 311, 0x0000 }, { 311, 0x2000 }, { 312, 0x0000 }, - /* 0x6500 */ - { 312, 0x0000 }, { 312, 0x0000 }, { 312, 0x0000 }, { 312, 0x0000 }, - { 312, 0x0000 }, { 312, 0x1000 }, { 313, 0x0200 }, { 314, 0x0000 }, - { 314, 0x8000 }, { 315, 0x2000 }, { 316, 0x0104 }, { 318, 0x0000 }, - { 318, 0x0004 }, { 319, 0x0000 }, { 319, 0x0000 }, { 319, 0x0900 }, - /* 0x6600 */ - { 321, 0x0280 }, { 323, 0x0000 }, { 323, 0x0000 }, { 323, 0x2000 }, - { 324, 0x0000 }, { 324, 0x4000 }, { 325, 0x1084 }, { 328, 0x0008 }, - { 329, 0x6800 }, { 332, 0x0000 }, { 332, 0x0000 }, { 332, 0x0000 }, - { 332, 0x0000 }, { 332, 0x0000 }, { 332, 0x0000 }, { 332, 0x0000 }, - /* 0x6700 */ - { 332, 0x0000 }, { 332, 0x0108 }, { 334, 0x0000 }, { 334, 0x8000 }, - { 335, 0x0020 }, { 336, 0x0000 }, { 336, 0x0080 }, { 337, 0x0800 }, - { 338, 0x0000 }, { 338, 0x8200 }, { 340, 0x0000 }, { 340, 0x0000 }, - { 340, 0x0100 }, { 341, 0x0000 }, { 341, 0x4000 }, { 342, 0x0000 }, - /* 0x6800 */ - { 342, 0x0000 }, { 342, 0x8004 }, { 344, 0x0000 }, { 344, 0x0000 }, - { 344, 0x0800 }, { 345, 0x0000 }, { 345, 0x9400 }, { 348, 0x0000 }, - { 348, 0x0000 }, { 348, 0x0000 }, { 348, 0x0001 }, { 349, 0x9002 }, - { 352, 0x0002 }, { 353, 0x000b }, { 356, 0x1900 }, { 359, 0x0900 }, - /* 0x6900 */ - { 361, 0x0000 }, { 361, 0x200a }, { 364, 0x0800 }, { 365, 0x0020 }, - { 366, 0x0001 }, { 367, 0x8200 }, { 369, 0x8204 }, { 372, 0x0000 }, - { 372, 0x0008 }, { 373, 0x0040 }, { 374, 0x0000 }, { 374, 0x5000 }, - { 376, 0x0020 }, { 377, 0x1400 }, { 379, 0x0020 }, { 380, 0x4000 }, - /* 0x6a00 */ - { 381, 0x0800 }, { 382, 0x0002 }, { 383, 0x0000 }, { 383, 0x0000 }, - { 383, 0x0000 }, { 383, 0x0000 }, { 383, 0x0040 }, { 384, 0x0000 }, - { 384, 0x0000 }, { 384, 0x0040 }, { 385, 0x0000 }, { 385, 0x0030 }, - { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0000 }, - /* 0x6b00 */ - { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0000 }, { 387, 0x0100 }, - { 388, 0x0000 }, { 388, 0x0010 }, { 389, 0x0000 }, { 389, 0x0000 }, - { 389, 0x0000 }, { 389, 0x0020 }, { 390, 0x0008 }, { 391, 0x0000 }, - { 391, 0x0000 }, { 391, 0x0400 }, { 392, 0x0000 }, { 392, 0x0000 }, - /* 0x6c00 */ - { 392, 0x0000 }, { 392, 0x2000 }, { 393, 0x0020 }, { 394, 0xc000 }, - { 396, 0x0000 }, { 396, 0x0000 }, { 396, 0x2080 }, { 398, 0x0000 }, - { 398, 0x0090 }, { 400, 0x0540 }, { 403, 0x0100 }, { 404, 0x0020 }, - { 405, 0x0048 }, { 407, 0x1000 }, { 408, 0x0000 }, { 408, 0x0000 }, - /* 0x6d00 */ - { 408, 0x0000 }, { 408, 0x0002 }, { 409, 0x0300 }, { 411, 0x0510 }, - { 414, 0x0210 }, { 416, 0x0821 }, { 419, 0x0032 }, { 422, 0x0000 }, - { 422, 0x0000 }, { 422, 0x0000 }, { 422, 0x2004 }, { 424, 0x0010 }, - { 425, 0x0000 }, { 425, 0x0000 }, { 425, 0x0000 }, { 425, 0x0000 }, - /* 0x6e00 */ - { 425, 0x0000 }, { 425, 0x0800 }, { 426, 0x0000 }, { 426, 0x0000 }, - { 426, 0x0000 }, { 426, 0x3000 }, { 428, 0x0080 }, { 429, 0x0004 }, - { 430, 0x4082 }, { 433, 0x0400 }, { 434, 0x0041 }, { 436, 0x0020 }, - { 437, 0x0208 }, { 439, 0x0100 }, { 440, 0x0c80 }, { 443, 0x0000 }, - /* 0x6f00 */ - { 443, 0x0000 }, { 443, 0x0000 }, { 443, 0x0040 }, { 444, 0x0080 }, - { 445, 0x0000 }, { 445, 0x8040 }, { 447, 0x0000 }, { 447, 0x0020 }, - { 448, 0x0004 }, { 449, 0x0810 }, { 451, 0x0020 }, { 452, 0x1010 }, - { 454, 0x0000 }, { 454, 0x0000 }, { 454, 0x1000 }, { 455, 0x0000 }, - /* 0x7000 */ - { 455, 0x3000 }, { 457, 0x0010 }, { 458, 0x0000 }, { 458, 0x1000 }, - { 459, 0x0000 }, { 459, 0x0000 }, { 459, 0x0000 }, { 459, 0x0400 }, - { 460, 0x0000 }, { 460, 0x4100 }, { 462, 0x0000 }, { 462, 0x0000 }, - { 462, 0x0000 }, { 462, 0x3000 }, { 464, 0x0000 }, { 464, 0x0402 }, - /* 0x7100 */ - { 466, 0x1000 }, { 467, 0x1000 }, { 468, 0x4001 }, { 470, 0x0000 }, - { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, - { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, { 470, 0x0000 }, - { 470, 0x8c00 }, { 473, 0x0000 }, { 473, 0x0000 }, { 473, 0x8000 }, - /* 0x7200 */ - { 474, 0x0000 }, { 474, 0x8000 }, { 475, 0x0000 }, { 475, 0x0000 }, - { 475, 0x0006 }, { 477, 0x0400 }, { 478, 0x0008 }, { 479, 0x0080 }, - { 480, 0x0080 }, { 481, 0x0000 }, { 481, 0x0100 }, { 482, 0x0000 }, - { 482, 0x0200 }, { 483, 0x2000 }, { 484, 0x0004 }, { 485, 0x0000 }, - /* 0x7300 */ - { 485, 0x0040 }, { 486, 0x0010 }, { 487, 0x0000 }, { 487, 0x0400 }, - { 488, 0x0000 }, { 488, 0x0000 }, { 488, 0x0000 }, { 488, 0x0000 }, - { 488, 0x0000 }, { 488, 0x0630 }, { 492, 0x0061 }, { 495, 0x0002 }, - { 496, 0x0000 }, { 496, 0x0040 }, { 497, 0x4408 }, { 500, 0x2441 }, - /* 0x7400 */ - { 504, 0x4080 }, { 506, 0x0020 }, { 507, 0x8810 }, { 510, 0x0084 }, - { 512, 0x0014 }, { 514, 0x0010 }, { 515, 0x0004 }, { 516, 0x0102 }, - { 518, 0x0140 }, { 520, 0x8100 }, { 522, 0x0401 }, { 524, 0x0004 }, - { 525, 0x0000 }, { 525, 0x0100 }, { 526, 0x0000 }, { 526, 0x0800 }, - /* 0x7500 */ - { 527, 0x0008 }, { 528, 0x0000 }, { 528, 0x0442 }, { 531, 0x0000 }, - { 531, 0x0000 }, { 531, 0x0002 }, { 532, 0x9010 }, { 535, 0x0000 }, - { 535, 0x0000 }, { 535, 0x0000 }, { 535, 0x0004 }, { 536, 0x0000 }, - { 536, 0x0000 }, { 536, 0x0000 }, { 536, 0x0001 }, { 537, 0x0008 }, - /* 0x7600 */ - { 538, 0x0110 }, { 540, 0x2000 }, { 541, 0x0000 }, { 541, 0x0000 }, - { 541, 0x0000 }, { 541, 0x0004 }, { 542, 0x0000 }, { 542, 0x8040 }, - { 544, 0x0000 }, { 544, 0x4000 }, { 545, 0x0000 }, { 545, 0x0000 }, - { 545, 0x0000 }, { 545, 0x2000 }, { 546, 0x1440 }, { 549, 0x0800 }, - /* 0x7700 */ - { 550, 0x0400 }, { 551, 0x0800 }, { 552, 0x1000 }, { 553, 0x0000 }, - { 553, 0x0000 }, { 553, 0x0000 }, { 553, 0x0000 }, { 553, 0x0000 }, - { 553, 0x0840 }, { 555, 0x0000 }, { 555, 0x2800 }, { 557, 0x0000 }, - { 557, 0x0000 }, { 557, 0x4000 }, { 558, 0x0000 }, { 558, 0x1800 }, - /* 0x7800 */ - { 560, 0x0040 }, { 561, 0x0000 }, { 561, 0x0005 }, { 563, 0x0000 }, - { 563, 0x0002 }, { 564, 0x0600 }, { 566, 0x0000 }, { 566, 0x0020 }, - { 567, 0x0000 }, { 567, 0x0010 }, { 568, 0x0000 }, { 568, 0x0040 }, - { 569, 0x0000 }, { 569, 0x1000 }, { 570, 0x0002 }, { 571, 0x0000 }, - /* 0x7900 */ - { 571, 0x0008 }, { 572, 0x0000 }, { 572, 0x0000 }, { 572, 0x2008 }, - { 574, 0x4488 }, { 578, 0x0001 }, { 579, 0x0000 }, { 579, 0x1004 }, - { 581, 0x0000 }, { 581, 0x0100 }, { 582, 0x0011 }, { 584, 0x0100 }, - { 585, 0x0000 }, { 585, 0x0000 }, { 585, 0x0000 }, { 585, 0x4000 }, - /* 0x7a00 */ - { 586, 0x0000 }, { 586, 0x0040 }, { 587, 0x0000 }, { 587, 0x0000 }, - { 587, 0x0010 }, { 588, 0x4000 }, { 589, 0x0000 }, { 589, 0x0000 }, - { 589, 0x4020 }, { 591, 0x0000 }, { 591, 0x0008 }, { 592, 0x4100 }, - { 594, 0x0000 }, { 594, 0x1002 }, { 596, 0x0000 }, { 596, 0x0000 }, - /* 0x7b00 */ - { 596, 0x0000 }, { 596, 0x0000 }, { 596, 0x0000 }, { 596, 0x0000 }, - { 596, 0x4400 }, { 598, 0x1000 }, { 599, 0x0000 }, { 599, 0x8000 }, - { 600, 0x0080 }, { 601, 0x0008 }, { 602, 0x0000 }, { 602, 0x0000 }, - { 602, 0x0000 }, { 602, 0x0000 }, { 602, 0x8000 }, { 603, 0x0005 }, - /* 0x7c00 */ - { 605, 0x0208 }, { 607, 0x0020 }, { 608, 0x0001 }, { 609, 0x0001 }, - { 610, 0x0000 }, { 610, 0x2001 }, { 612, 0x0000 }, { 612, 0x0000 }, - { 612, 0x0000 }, { 612, 0x0000 }, { 612, 0x1040 }, { 614, 0x0000 }, - { 614, 0x0000 }, { 614, 0x0000 }, { 614, 0x0000 }, { 614, 0x0020 }, -}; -static const Summary16 isoir165ext_uni2indx_page7e[333] = { - /* 0x7e00 */ - { 615, 0x0000 }, { 615, 0x0000 }, { 615, 0x0000 }, { 615, 0x0000 }, - { 615, 0x0010 }, { 616, 0x0000 }, { 616, 0x0000 }, { 616, 0x0000 }, - { 616, 0x0000 }, { 616, 0x0000 }, { 616, 0x4000 }, { 617, 0x1810 }, - { 620, 0x0000 }, { 620, 0x0040 }, { 621, 0x1010 }, { 623, 0x0200 }, - /* 0x7f00 */ - { 624, 0x0400 }, { 625, 0x4001 }, { 627, 0x0000 }, { 627, 0x0000 }, - { 627, 0x2000 }, { 628, 0x0000 }, { 628, 0x0000 }, { 628, 0x2000 }, - { 629, 0x0000 }, { 629, 0x0002 }, { 630, 0x0000 }, { 630, 0x0000 }, - { 630, 0x0001 }, { 631, 0x0600 }, { 633, 0x8000 }, { 634, 0x0000 }, - /* 0x8000 */ - { 634, 0x0000 }, { 634, 0x0000 }, { 634, 0x0000 }, { 634, 0x0001 }, - { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, - { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, { 635, 0x0000 }, - { 635, 0x0000 }, { 635, 0x0010 }, { 636, 0x0000 }, { 636, 0x4000 }, - /* 0x8100 */ - { 637, 0x0000 }, { 637, 0x0000 }, { 637, 0x0200 }, { 638, 0x8000 }, - { 639, 0x0000 }, { 639, 0x0104 }, { 641, 0x0000 }, { 641, 0x0000 }, - { 641, 0x0000 }, { 641, 0x0000 }, { 641, 0x0000 }, { 641, 0x0000 }, - { 641, 0x0000 }, { 641, 0x0002 }, { 642, 0x0000 }, { 642, 0x0000 }, - /* 0x8200 */ - { 642, 0x0000 }, { 642, 0x0140 }, { 644, 0x0000 }, { 644, 0x0400 }, - { 645, 0x0000 }, { 645, 0x0000 }, { 645, 0x0000 }, { 645, 0x0100 }, - { 646, 0x0008 }, { 647, 0x0000 }, { 647, 0x0080 }, { 648, 0x1000 }, - { 649, 0x0000 }, { 649, 0x0000 }, { 649, 0x0000 }, { 649, 0x4000 }, - /* 0x8300 */ - { 650, 0x0001 }, { 651, 0x2008 }, { 653, 0x0000 }, { 653, 0x0000 }, - { 653, 0x0030 }, { 655, 0x2000 }, { 656, 0x0000 }, { 656, 0x0000 }, - { 656, 0x0000 }, { 656, 0x0200 }, { 657, 0x0040 }, { 658, 0x0000 }, - { 658, 0x0000 }, { 658, 0x0002 }, { 659, 0x0000 }, { 659, 0x5000 }, - /* 0x8400 */ - { 661, 0x0000 }, { 661, 0x0400 }, { 662, 0x0200 }, { 663, 0x0200 }, - { 664, 0x0000 }, { 664, 0x0008 }, { 665, 0x0001 }, { 666, 0x0000 }, - { 666, 0x0000 }, { 666, 0xc000 }, { 668, 0x0100 }, { 669, 0x0000 }, - { 669, 0x8044 }, { 672, 0x0000 }, { 672, 0x0400 }, { 673, 0x0080 }, - /* 0x8500 */ - { 674, 0x0000 }, { 674, 0x0000 }, { 674, 0x0000 }, { 674, 0x0010 }, - { 675, 0x0000 }, { 675, 0x0000 }, { 675, 0x0000 }, { 675, 0x0001 }, - { 676, 0x0000 }, { 676, 0x0000 }, { 676, 0x0004 }, { 677, 0x0108 }, - { 679, 0x0000 }, { 679, 0x0000 }, { 679, 0x0001 }, { 680, 0x0000 }, - /* 0x8600 */ - { 680, 0x0000 }, { 680, 0x0000 }, { 680, 0x0000 }, { 680, 0x0000 }, - { 680, 0x0000 }, { 680, 0x0004 }, { 681, 0x0000 }, { 681, 0x0000 }, - { 681, 0x0008 }, { 682, 0x0000 }, { 682, 0x0000 }, { 682, 0x0000 }, - { 682, 0x0000 }, { 682, 0x0000 }, { 682, 0x0000 }, { 682, 0x0000 }, - /* 0x8700 */ - { 682, 0x4020 }, { 684, 0x0000 }, { 684, 0x0000 }, { 684, 0x0000 }, - { 684, 0x0000 }, { 684, 0x0100 }, { 685, 0x0000 }, { 685, 0x0000 }, - { 685, 0x0001 }, { 686, 0x0000 }, { 686, 0x0008 }, { 687, 0x0000 }, - { 687, 0x8000 }, { 688, 0x0000 }, { 688, 0x0004 }, { 689, 0x0000 }, - /* 0x8800 */ - { 689, 0x0800 }, { 690, 0x0000 }, { 690, 0x2000 }, { 691, 0x0000 }, - { 691, 0x0000 }, { 691, 0x0004 }, { 692, 0x0000 }, { 692, 0x0000 }, - { 692, 0x0040 }, { 693, 0x0080 }, { 694, 0x8400 }, { 696, 0x0000 }, - { 696, 0x0101 }, { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0000 }, - /* 0x8900 */ - { 698, 0x0000 }, { 698, 0x0000 }, { 698, 0x0040 }, { 699, 0x0000 }, - { 699, 0x0000 }, { 699, 0x0020 }, { 700, 0x0000 }, { 700, 0x0040 }, - { 701, 0x0001 }, { 702, 0x0000 }, { 702, 0x0000 }, { 702, 0x0000 }, - { 702, 0x2008 }, { 704, 0x0010 }, { 705, 0x0000 }, { 705, 0x0002 }, - /* 0x8a00 */ - { 706, 0x0000 }, { 706, 0x0400 }, { 707, 0x0000 }, { 707, 0x0000 }, - { 707, 0x0000 }, { 707, 0x8000 }, { 708, 0x0000 }, { 708, 0x0000 }, - { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, - { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, - /* 0x8b00 */ - { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, - { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x0000 }, - { 708, 0x0000 }, { 708, 0x0000 }, { 708, 0x1000 }, { 709, 0x0802 }, - { 711, 0x0080 }, { 712, 0x0000 }, { 712, 0x0400 }, { 713, 0x0000 }, - /* 0x8c00 */ - { 713, 0x0200 }, { 714, 0x4000 }, { 715, 0x0000 }, { 715, 0x0000 }, - { 715, 0x0000 }, { 715, 0x0000 }, { 715, 0x6100 }, { 718, 0x0000 }, - { 718, 0x0040 }, { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0000 }, - { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0000 }, - /* 0x8d00 */ - { 719, 0x0000 }, { 719, 0x0000 }, { 719, 0x0001 }, { 720, 0x0000 }, - { 720, 0x0000 }, { 720, 0x8086 }, { 724, 0x0400 }, { 725, 0x0000 }, - { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, - { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, - /* 0x8e00 */ - { 725, 0x0000 }, { 725, 0x0040 }, { 726, 0x00c2 }, { 729, 0x0040 }, - { 730, 0x0020 }, { 731, 0x1009 }, { 734, 0x0004 }, { 735, 0x0000 }, - { 735, 0x0000 }, { 735, 0x0000 }, { 735, 0x2000 }, { 736, 0x0000 }, - { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, - /* 0x8f00 */ - { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, - { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, { 736, 0x0000 }, - { 736, 0x0001 }, { 737, 0x0004 }, { 738, 0x0000 }, { 738, 0x0020 }, - { 739, 0x0000 }, { 739, 0x0000 }, { 739, 0x0000 }, { 739, 0x0400 }, - /* 0x9000 */ - { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, - { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, { 740, 0x0000 }, - { 740, 0x0000 }, { 740, 0x0100 }, { 741, 0x0101 }, { 743, 0x2000 }, - { 744, 0x0108 }, { 746, 0x0400 }, { 747, 0x0010 }, { 748, 0x8000 }, - /* 0x9100 */ - { 749, 0x1000 }, { 750, 0x1500 }, { 753, 0x0001 }, { 754, 0x0000 }, - { 754, 0x0004 }, { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, - { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, { 755, 0x0000 }, - { 755, 0x0040 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, - /* 0x9200 */ - { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, - { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, - { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, { 756, 0x0000 }, - { 756, 0x0040 }, -}; -static const Summary16 isoir165ext_uni2indx_page94[143] = { - /* 0x9400 */ - { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, - { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, { 757, 0x0000 }, - { 757, 0x0000 }, { 757, 0x0142 }, { 760, 0x0000 }, { 760, 0x0000 }, - { 760, 0x8080 }, { 762, 0x0418 }, { 765, 0x0040 }, { 766, 0x0800 }, - /* 0x9500 */ - { 767, 0x0000 }, { 767, 0x1000 }, { 768, 0x0081 }, { 770, 0x2008 }, - { 772, 0x0008 }, { 773, 0x0400 }, { 774, 0x4001 }, { 776, 0x0030 }, - { 778, 0x0000 }, { 778, 0x0000 }, { 778, 0x0000 }, { 778, 0x0000 }, - { 778, 0x0000 }, { 778, 0x0000 }, { 778, 0x1000 }, { 779, 0x8000 }, - /* 0x9600 */ - { 780, 0x0080 }, { 781, 0x0908 }, { 784, 0x0000 }, { 784, 0x0000 }, - { 784, 0x0000 }, { 784, 0x4000 }, { 785, 0x0000 }, { 785, 0x0000 }, - { 785, 0x0000 }, { 785, 0x0000 }, { 785, 0x0000 }, { 785, 0x0000 }, - { 785, 0x0000 }, { 785, 0x0100 }, { 786, 0x0000 }, { 786, 0x0000 }, - /* 0x9700 */ - { 786, 0x0004 }, { 787, 0x0000 }, { 787, 0x0000 }, { 787, 0x0000 }, - { 787, 0x0000 }, { 787, 0x0010 }, { 788, 0x0000 }, { 788, 0x0501 }, - { 791, 0x0000 }, { 791, 0x0000 }, { 791, 0x4102 }, { 794, 0x0000 }, - { 794, 0x0000 }, { 794, 0x0000 }, { 794, 0x0100 }, { 795, 0x0000 }, - /* 0x9800 */ - { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, - { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, { 795, 0x0000 }, - { 795, 0x4800 }, { 797, 0x0224 }, { 800, 0x0008 }, { 801, 0x0000 }, - { 801, 0x8000 }, { 802, 0x00d1 }, { 806, 0x0000 }, { 806, 0x0000 }, - /* 0x9900 */ - { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0000 }, - { 806, 0x0000 }, { 806, 0x0000 }, { 806, 0x0050 }, { 808, 0x4b00 }, - { 812, 0x500c }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, - { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, - /* 0x9a00 */ - { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, - { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0000 }, { 816, 0x0004 }, - { 817, 0x6208 }, { 821, 0x0230 }, { 824, 0x0040 }, { 825, 0x0000 }, - { 825, 0x0000 }, { 825, 0x0000 }, { 825, 0x0000 }, { 825, 0x0000 }, - /* 0x9b00 */ - { 825, 0x0000 }, { 825, 0x0101 }, { 827, 0x0020 }, { 828, 0x0040 }, - { 829, 0x0040 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, - { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, - { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, - /* 0x9c00 */ - { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, - { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, { 830, 0x0000 }, - { 830, 0x0411 }, { 833, 0x23c8 }, { 839, 0x0000 }, { 839, 0x8000 }, - { 840, 0x0003 }, { 842, 0x0804 }, { 844, 0x0009 }, -}; -static const Summary16 isoir165ext_uni2indx_page9e[25] = { - /* 0x9e00 */ - { 846, 0x0000 }, { 846, 0x0000 }, { 846, 0x4090 }, { 849, 0x0011 }, - { 851, 0x2001 }, { 853, 0x225d }, { 860, 0x8027 }, { 865, 0x0010 }, - { 866, 0x0001 }, { 867, 0x0002 }, { 868, 0x0000 }, { 868, 0x0000 }, - { 868, 0x0000 }, { 868, 0x0000 }, { 868, 0x0002 }, { 869, 0x0000 }, - /* 0x9f00 */ - { 869, 0x1000 }, { 870, 0x0004 }, { 871, 0x0800 }, { 872, 0x0000 }, - { 872, 0x0002 }, { 873, 0x0000 }, { 873, 0x0000 }, { 873, 0x0000 }, - { 873, 0x0006 }, -}; -static const Summary16 isoir165ext_uni2indx_pageff[5] = { - /* 0xff00 */ - { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, { 875, 0x0000 }, - { 875, 0x0080 }, -}; - -static int -isoir165ext_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0200) - summary = &isoir165ext_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x0300 && wc < 0x03c0) - summary = &isoir165ext_uni2indx_page03[(wc>>4)-0x030]; - else if (wc >= 0x1e00 && wc < 0x1fc0) - summary = &isoir165ext_uni2indx_page1e[(wc>>4)-0x1e0]; - else if (wc >= 0x3000 && wc < 0x3040) - summary = &isoir165ext_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x3200 && wc < 0x3400) - summary = &isoir165ext_uni2indx_page32[(wc>>4)-0x320]; - else if (wc >= 0x4e00 && wc < 0x7d00) - summary = &isoir165ext_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0x7e00 && wc < 0x92d0) - summary = &isoir165ext_uni2indx_page7e[(wc>>4)-0x7e0]; - else if (wc >= 0x9400 && wc < 0x9cf0) - summary = &isoir165ext_uni2indx_page94[(wc>>4)-0x940]; - else if (wc >= 0x9e00 && wc < 0x9f90) - summary = &isoir165ext_uni2indx_page9e[(wc>>4)-0x9e0]; - else if (wc >= 0xff00 && wc < 0xff50) - summary = &isoir165ext_uni2indx_pageff[(wc>>4)-0xff0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = isoir165ext_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/java.h b/jni/parted/libiconv/lib/java.h deleted file mode 100755 index 841bfa9..0000000 --- a/jni/parted/libiconv/lib/java.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JAVA - * This is ISO 8859-1 with \uXXXX escape sequences, denoting Unicode BMP - * characters. Consecutive pairs of \uXXXX escape sequences in the surrogate - * range, as in UTF-16, denote Unicode characters outside the BMP. - */ - -static int -java_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c; - ucs4_t wc, wc2; - int i; - - c = s[0]; - if (c != '\\') { - *pwc = c; - return 1; - } - if (n < 2) - return RET_TOOFEW(0); - if (s[1] != 'u') - goto simply_backslash; - wc = 0; - for (i = 2; i < 6; i++) { - if (n <= i) - return RET_TOOFEW(0); - c = s[i]; - 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 - goto simply_backslash; - wc |= (ucs4_t) c << (4 * (5-i)); - } - if (!(wc >= 0xd800 && wc < 0xe000)) { - *pwc = wc; - return 6; - } - if (wc >= 0xdc00) - goto simply_backslash; - if (n < 7) - return RET_TOOFEW(0); - if (s[6] != '\\') - goto simply_backslash; - if (n < 8) - return RET_TOOFEW(0); - if (s[7] != 'u') - goto simply_backslash; - wc2 = 0; - for (i = 8; i < 12; i++) { - if (n <= i) - return RET_TOOFEW(0); - c = s[i]; - 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 - goto simply_backslash; - wc2 |= (ucs4_t) c << (4 * (11-i)); - } - if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) - goto simply_backslash; - *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); - return 12; -simply_backslash: - *pwc = '\\'; - return 1; -} - -static int -java_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x80) { - *r = wc; - return 1; - } else if (wc < 0x10000) { - if (n >= 6) { - unsigned int i; - r[0] = '\\'; - r[1] = 'u'; - i = (wc >> 12) & 0x0f; r[2] = (i < 10 ? '0'+i : 'a'-10+i); - i = (wc >> 8) & 0x0f; r[3] = (i < 10 ? '0'+i : 'a'-10+i); - i = (wc >> 4) & 0x0f; r[4] = (i < 10 ? '0'+i : 'a'-10+i); - i = wc & 0x0f; r[5] = (i < 10 ? '0'+i : 'a'-10+i); - return 6; - } else - return RET_TOOSMALL; - } else if (wc < 0x110000) { - if (n >= 12) { - ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); - ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); - unsigned int i; - r[0] = '\\'; - r[1] = 'u'; - i = (wc1 >> 12) & 0x0f; r[2] = (i < 10 ? '0'+i : 'a'-10+i); - i = (wc1 >> 8) & 0x0f; r[3] = (i < 10 ? '0'+i : 'a'-10+i); - i = (wc1 >> 4) & 0x0f; r[4] = (i < 10 ? '0'+i : 'a'-10+i); - i = wc1 & 0x0f; r[5] = (i < 10 ? '0'+i : 'a'-10+i); - r[6] = '\\'; - r[7] = 'u'; - i = (wc2 >> 12) & 0x0f; r[8] = (i < 10 ? '0'+i : 'a'-10+i); - i = (wc2 >> 8) & 0x0f; r[9] = (i < 10 ? '0'+i : 'a'-10+i); - i = (wc2 >> 4) & 0x0f; r[10] = (i < 10 ? '0'+i : 'a'-10+i); - i = wc2 & 0x0f; r[11] = (i < 10 ? '0'+i : 'a'-10+i); - return 12; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/jisx0201.h b/jni/parted/libiconv/lib/jisx0201.h deleted file mode 100755 index 739fae6..0000000 --- a/jni/parted/libiconv/lib/jisx0201.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JISX0201.1976-0 - */ - -static int -jisx0201_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - if (c == 0x5c) - *pwc = (ucs4_t) 0x00a5; - else if (c == 0x7e) - *pwc = (ucs4_t) 0x203e; - else - *pwc = (ucs4_t) c; - return 1; - } else { - if (c >= 0xa1 && c < 0xe0) { - *pwc = (ucs4_t) c + 0xfec0; - return 1; - } - } - return RET_ILSEQ; -} - -static int -jisx0201_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x0080 && !(wc == 0x005c || wc == 0x007e)) { - *r = wc; - return 1; - } - if (wc == 0x00a5) { - *r = 0x5c; - return 1; - } - if (wc == 0x203e) { - *r = 0x7e; - return 1; - } - if (wc >= 0xff61 && wc < 0xffa0) { - *r = wc - 0xfec0; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/jisx0208.h b/jni/parted/libiconv/lib/jisx0208.h deleted file mode 100755 index 262cd40..0000000 --- a/jni/parted/libiconv/lib/jisx0208.h +++ /dev/null @@ -1,2414 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JISX0208.1990-0 - */ - -static const unsigned short jisx0208_2uni_page21[690] = { - /* 0x21 */ - 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, - 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, - 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, - 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0xff3c, - 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, - 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, - 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, - 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7, - 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234, - 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04, - 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7, - 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, - /* 0x22 */ - 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, - 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, - 0x2229, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, - 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, - 0x222b, 0x222c, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, - 0x00b6, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x25ef, - /* 0x23 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xff10, - 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, - 0xff19, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x24 */ - 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, - 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, - 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, - 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, - 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, - 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, - 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, - 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, - 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, - 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, - 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x25 */ - 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, - 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, - 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, - 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, - 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, - 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, - 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, - 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, - 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, - 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, - 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x26 */ - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x27 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x28 */ - 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, - 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, - 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, - 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, -}; -static const unsigned short jisx0208_2uni_page30[6398] = { - /* 0x30 */ - 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, - 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, - 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, - 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, - 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, - 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, - 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, - 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, - 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, - 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, - 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, - 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, - /* 0x31 */ - 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, - 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, - 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, - 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, - 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, - 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, - 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, - 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712, - 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf, - 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276, - 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a, - 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, - /* 0x32 */ - 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, - 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, - 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, - 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, - 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, - 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, - 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, - 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, - 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, - 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, - 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, - 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, - /* 0x33 */ - 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, - 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, - 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, - 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, - 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, - 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, - 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, - 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f, - 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b, - 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6, - 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc, - 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, - /* 0x34 */ - 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, - 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, - 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, - 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, - 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, - 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, - 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, - 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, - 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, - 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, - 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, - 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, - /* 0x35 */ - 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, - 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, - 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, - 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, - 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, - 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, - 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, - 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d, - 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08, - 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8, - 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8, - 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, - /* 0x36 */ - 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, - 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, - 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, - 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, - 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, - 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, - 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, - 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, - 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, - 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, - 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, - 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, - /* 0x37 */ - 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, - 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, - 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, - 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, - 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, - 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, - 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, - 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287, - 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a, - 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039, - 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805, - 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, - /* 0x38 */ - 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, - 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, - 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, - 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, - 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, - 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, - 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, - 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, - 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, - 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, - 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, - 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, - /* 0x39 */ - 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, - 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, - 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, - 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, - 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, - 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, - 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, - 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805, - 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5, - 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a, - 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170, - 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, - /* 0x3a */ - 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, - 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, - 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, - 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, - 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, - 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, - 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, - 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, - 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, - 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, - 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, - 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, - /* 0x3b */ - 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, - 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, - 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, - 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, - 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, - 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, - 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, - 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b, - 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2, - 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee, - 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d, - 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, - /* 0x3c */ - 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, - 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, - 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, - 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, - 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, - 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, - 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, - 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, - 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, - 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, - 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, - 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, - /* 0x3d */ - 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, - 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, - 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, - 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, - 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, - 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, - 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, - 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96, - 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6, - 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72, - 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f, - 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, - /* 0x3e */ - 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, - 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, - 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, - 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, - 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, - 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, - 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, - 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, - 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, - 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, - 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, - 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, - /* 0x3f */ - 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, - 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, - 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, - 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, - 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, - 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, - 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, - 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017, - 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b, - 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e, - 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e, - 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, - /* 0x40 */ - 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, - 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, - 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, - 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, - 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, - 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, - 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, - 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, - 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, - 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, - 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, - 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, - /* 0x41 */ - 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, - 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, - 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, - 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, - 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, - 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, - 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, - 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd, - 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89, - 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349, - 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d, - 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, - /* 0x42 */ - 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, - 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, - 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, - 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, - 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, - 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, - 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, - 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, - 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, - 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, - 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, - 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, - /* 0x43 */ - 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, - 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, - 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, - 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, - 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, - 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, - 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, - 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010, - 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99, - 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b, - 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457, - 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, - /* 0x44 */ - 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, - 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, - 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, - 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, - 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, - 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, - 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, - 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, - 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, - 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, - 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, - 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, - /* 0x45 */ - 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, - 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, - 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, - 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, - 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, - 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, - 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, - 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd, - 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b, - 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7, - 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977, - 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, - /* 0x46 */ - 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, - 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, - 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, - 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, - 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, - 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, - 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, - 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, - 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, - 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, - 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, - 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, - /* 0x47 */ - 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, - 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, - 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, - 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, - 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, - 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, - 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, - 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973, - 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f, - 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf, - 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd, - 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, - /* 0x48 */ - 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, - 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, - 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, - 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, - 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, - 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, - 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, - 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, - 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, - 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, - 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, - 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, - /* 0x49 */ - 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, - 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, - 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, - 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, - 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, - 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, - 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, - 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7, - 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c, - 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66, - 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a, - 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, - /* 0x4a */ - 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, - 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, - 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, - 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, - 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, - 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, - 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, - 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, - 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, - 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, - 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, - 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, - /* 0x4b */ - 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, - 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, - 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, - 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, - 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, - 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, - 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, - 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469, - 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce, - 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52, - 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4, - 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, - /* 0x4c */ - 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, - 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, - 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, - 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, - 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, - 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, - 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, - 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, - 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, - 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, - 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, - 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, - /* 0x4d */ - 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, - 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, - 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, - 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, - 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, - 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, - 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, - 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83, - 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765, - 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71, - 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229, - 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, - /* 0x4e */ - 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, - 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, - 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, - 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, - 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, - 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, - 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, - 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, - 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, - 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, - 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, - 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, - /* 0x4f */ - 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, - 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, - 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, - 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, - 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, - 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, - 0x6e7e, 0x7897, 0x8155, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x50 */ - 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, - 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, - 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, - 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, - 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, - 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, - 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, - 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, - 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, - 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, - 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, - 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, - /* 0x51 */ - 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, - 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, - 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, - 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, - 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, - 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, - 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, - 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0, - 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a, - 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e, - 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d, - 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, - /* 0x52 */ - 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, - 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, - 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, - 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, - 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, - 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, - 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, - 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, - 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, - 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, - 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, - 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, - /* 0x53 */ - 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, - 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, - 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, - 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, - 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, - 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, - 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, - 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b, - 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0, - 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc, - 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7, - 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, - /* 0x54 */ - 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, - 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, - 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, - 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, - 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, - 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, - 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, - 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, - 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, - 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, - 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, - 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, - /* 0x55 */ - 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, - 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, - 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, - 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, - 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, - 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, - 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, - 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83, - 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4, - 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3, - 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28, - 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, - /* 0x56 */ - 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, - 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, - 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, - 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, - 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, - 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, - 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, - 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, - 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, - 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, - 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, - 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, - /* 0x57 */ - 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, - 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, - 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, - 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, - 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, - 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, - 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, - 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019, - 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026, - 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a, - 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b, - 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, - /* 0x58 */ - 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, - 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, - 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, - 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, - 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, - 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, - 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, - 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, - 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, - 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, - 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, - 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, - /* 0x59 */ - 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, - 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, - 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, - 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, - 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, - 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, - 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, - 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369, - 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6, - 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d, - 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a, - 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, - /* 0x5a */ - 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, - 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, - 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, - 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, - 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, - 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, - 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, - 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, - 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, - 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, - 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, - 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, - /* 0x5b */ - 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, - 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, - 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, - 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, - 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, - 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, - 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, - 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3, - 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad, - 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5, - 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908, - 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, - /* 0x5c */ - 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, - 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, - 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, - 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, - 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, - 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, - 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, - 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, - 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, - 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, - 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, - 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, - /* 0x5d */ - 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, - 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, - 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, - 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59, - 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80, - 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa, - 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6, - 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x9ebe, - 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55, - 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e, - 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd, - 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, - /* 0x5e */ - 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, - 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, - 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, - 0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, - 0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, - 0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, - 0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, - 0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, - 0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, - 0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, - 0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, - 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc, - /* 0x5f */ - 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, - 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, - 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, - 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1, - 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f, - 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030, - 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1, - 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x70d9, - 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166, - 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195, - 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4, - 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, - /* 0x60 */ - 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, - 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, - 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, - 0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, - 0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, - 0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, - 0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, - 0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, - 0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, - 0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, - 0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, - 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, - /* 0x61 */ - 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, - 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, - 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, - 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567, - 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a, - 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2, - 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd, - 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x75fc, - 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609, - 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630, - 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662, - 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, - /* 0x62 */ - 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, - 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, - 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, - 0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, - 0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, - 0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, - 0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, - 0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, - 0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, - 0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, - 0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, - 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, - /* 0x63 */ - 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, - 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, - 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, - 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec, - 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f, - 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49, - 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88, - 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x7ab6, - 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf, - 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6, - 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18, - 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, - /* 0x64 */ - 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, - 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, - 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, - 0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, - 0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, - 0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, - 0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, - 0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, - 0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, - 0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, - 0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, - 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, - /* 0x65 */ - 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, - 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, - 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, - 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab, - 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8, - 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a, - 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22, - 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x7e32, - 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79, - 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae, - 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94, - 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, - /* 0x66 */ - 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, - 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, - 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, - 0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, - 0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, - 0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, - 0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, - 0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, - 0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, - 0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, - 0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, - 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, - /* 0x67 */ - 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, - 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, - 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, - 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9, - 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0, - 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207, - 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233, - 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x8262, - 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e, - 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3, - 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb, - 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, - /* 0x68 */ - 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, - 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, - 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, - 0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, - 0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, - 0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, - 0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, - 0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, - 0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, - 0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, - 0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, - 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, - /* 0x69 */ - 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, - 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, - 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, - 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b, - 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d, - 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9, - 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0, - 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x86df, - 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb, - 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737, - 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c, - 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, - /* 0x6a */ - 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, - 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, - 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, - 0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, - 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, - 0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, - 0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, - 0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, - 0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, - 0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, - 0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, - 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, - /* 0x6b */ - 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, - 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, - 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, - 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10, - 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52, - 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82, - 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3, - 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x8ae4, - 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c, - 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33, - 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f, - 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, - /* 0x6c */ - 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, - 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, - 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, - 0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, - 0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, - 0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, - 0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, - 0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, - 0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, - 0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, - 0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, - 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, - /* 0x6d */ - 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, - 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, - 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, - 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5, - 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe, - 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f, - 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42, - 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x8f62, - 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7, - 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005, - 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016, - 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, - /* 0x6e */ - 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, - 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, - 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, - 0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, - 0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, - 0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, - 0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, - 0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, - 0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, - 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, - 0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, - 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, - /* 0x6f */ - 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, - 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, - 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, - 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407, - 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452, - 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470, - 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f, - 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x95a0, - 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca, - 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc, - 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642, - 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, - /* 0x70 */ - 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, - 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, - 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, - 0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, - 0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, - 0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, - 0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, - 0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, - 0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, - 0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, - 0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, - 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, - /* 0x71 */ - 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, - 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, - 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, - 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951, - 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae, - 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee, - 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2, - 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x9a3e, - 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64, - 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf, - 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6, - 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, - /* 0x72 */ - 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, - 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, - 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, - 0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, - 0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, - 0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, - 0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, - 0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, - 0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, - 0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, - 0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, - 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, - /* 0x73 */ - 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, - 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, - 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, - 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a, - 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b, - 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8, - 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4, - 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x9ef4, - 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08, - 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54, - 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a, - 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, - /* 0x74 */ - 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, -}; - -static int -jisx0208_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x28) || (c1 >= 0x30 && c1 <= 0x74)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 1410) { - if (i < 690) - wc = jisx0208_2uni_page21[i]; - } else { - if (i < 7808) - wc = jisx0208_2uni_page30[i-1410]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short jisx0208_2charset[6879] = { - 0x2171, 0x2172, 0x2178, 0x212f, 0x224c, 0x216b, 0x215e, 0x212d, - 0x2279, 0x215f, 0x2160, 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, - 0x2626, 0x2627, 0x2628, 0x2629, 0x262a, 0x262b, 0x262c, 0x262d, - 0x262e, 0x262f, 0x2630, 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, - 0x2636, 0x2637, 0x2638, 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, - 0x2646, 0x2647, 0x2648, 0x2649, 0x264a, 0x264b, 0x264c, 0x264d, - 0x264e, 0x264f, 0x2650, 0x2651, 0x2652, 0x2653, 0x2654, 0x2655, - 0x2656, 0x2657, 0x2658, 0x2727, 0x2721, 0x2722, 0x2723, 0x2724, - 0x2725, 0x2726, 0x2728, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, - 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, - 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, - 0x273e, 0x273f, 0x2740, 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, - 0x2755, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, - 0x275e, 0x275f, 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, - 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c, 0x276d, - 0x276e, 0x276f, 0x2770, 0x2771, 0x2757, 0x213e, 0x213d, 0x2142, - 0x2146, 0x2147, 0x2148, 0x2149, 0x2277, 0x2278, 0x2145, 0x2144, - 0x2273, 0x216c, 0x216d, 0x2228, 0x216e, 0x2272, 0x222b, 0x222c, - 0x222a, 0x222d, 0x224d, 0x224e, 0x224f, 0x225f, 0x2250, 0x2260, - 0x223a, 0x223b, 0x215d, 0x2265, 0x2267, 0x2167, 0x225c, 0x224a, - 0x224b, 0x2241, 0x2240, 0x2269, 0x226a, 0x2168, 0x2268, 0x2266, - 0x2262, 0x2162, 0x2261, 0x2165, 0x2166, 0x2263, 0x2264, 0x223e, - 0x223f, 0x223c, 0x223d, 0x225d, 0x225e, 0x2821, 0x282c, 0x2822, - 0x282d, 0x2823, 0x282e, 0x2824, 0x282f, 0x2826, 0x2831, 0x2825, - 0x2830, 0x2827, 0x283c, 0x2837, 0x2832, 0x2829, 0x283e, 0x2839, - 0x2834, 0x2828, 0x2838, 0x283d, 0x2833, 0x282a, 0x283a, 0x283f, - 0x2835, 0x282b, 0x283b, 0x2840, 0x2836, 0x2223, 0x2222, 0x2225, - 0x2224, 0x2227, 0x2226, 0x2221, 0x217e, 0x217b, 0x217d, 0x217c, - 0x227e, 0x217a, 0x2179, 0x216a, 0x2169, 0x2276, 0x2275, 0x2274, - 0x2121, 0x2122, 0x2123, 0x2137, 0x2139, 0x213a, 0x213b, 0x2152, - 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, - 0x215b, 0x2229, 0x222e, 0x214c, 0x214d, 0x2141, 0x2421, 0x2422, - 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, 0x2429, 0x242a, - 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, 0x2431, 0x2432, - 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, 0x2439, 0x243a, - 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, 0x2441, 0x2442, - 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, 0x2449, 0x244a, - 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, 0x2451, 0x2452, - 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, 0x2459, 0x245a, - 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, 0x2461, 0x2462, - 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, - 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, - 0x2473, 0x212b, 0x212c, 0x2135, 0x2136, 0x2521, 0x2522, 0x2523, - 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, - 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, - 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, - 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, - 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, - 0x254c, 0x254d, 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, - 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, - 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, - 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, - 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, - 0x2574, 0x2575, 0x2576, 0x2126, 0x213c, 0x2133, 0x2134, 0x306c, - 0x437a, 0x3c37, 0x4b7c, 0x3e66, 0x3b30, 0x3e65, 0x323c, 0x4954, - 0x4d3f, 0x5022, 0x312f, 0x336e, 0x5023, 0x4024, 0x5242, 0x3556, - 0x4a3a, 0x3e67, 0x4e3e, 0x4a42, 0x5024, 0x4366, 0x5025, 0x367a, - 0x5026, 0x345d, 0x4330, 0x3c67, 0x5027, 0x5028, 0x5029, 0x4735, - 0x3557, 0x4737, 0x4663, 0x3843, 0x4b33, 0x6949, 0x502a, 0x3e68, - 0x502b, 0x3235, 0x3665, 0x3870, 0x4c69, 0x5626, 0x4d70, 0x467d, - 0x3425, 0x3535, 0x502c, 0x502d, 0x4e3b, 0x4d3d, 0x4168, 0x502f, - 0x3b76, 0x4673, 0x5032, 0x313e, 0x385f, 0x385e, 0x3066, 0x4f4b, - 0x4f4a, 0x3a33, 0x3021, 0x5033, 0x5034, 0x5035, 0x4b34, 0x5036, - 0x3872, 0x3067, 0x4b72, 0x357c, 0x357d, 0x357e, 0x4462, 0x4e3c, - 0x5037, 0x5038, 0x5039, 0x3f4d, 0x3d3a, 0x3f4e, 0x503e, 0x503c, - 0x503d, 0x3558, 0x3a23, 0x3270, 0x503b, 0x503a, 0x4a29, 0x3b46, - 0x3b45, 0x423e, 0x503f, 0x4955, 0x4067, 0x2138, 0x5040, 0x5042, - 0x4265, 0x4e61, 0x304a, 0x5041, 0x323e, 0x3644, 0x4367, 0x376f, - 0x5043, 0x4724, 0x346b, 0x5044, 0x304b, 0x3860, 0x346c, 0x497a, - 0x4832, 0x3559, 0x3271, 0x5067, 0x4541, 0x476c, 0x5046, 0x483c, - 0x4e62, 0x3f2d, 0x3b47, 0x3b77, 0x3240, 0x4451, 0x4322, 0x504a, - 0x304c, 0x4463, 0x3d3b, 0x3a34, 0x4d24, 0x424e, 0x323f, 0x5049, - 0x4d3e, 0x5045, 0x5047, 0x3a6e, 0x5048, 0x5524, 0x5050, 0x5053, - 0x5051, 0x3242, 0x4a3b, 0x504b, 0x504f, 0x3873, 0x3b48, 0x3426, - 0x5054, 0x504c, 0x4e63, 0x3b78, 0x504d, 0x5052, 0x5055, 0x504e, - 0x3621, 0x304d, 0x3622, 0x3241, 0x5525, 0x4b79, 0x496e, 0x3874, - 0x3f2f, 0x4e37, 0x4a58, 0x3738, 0x4225, 0x3264, 0x3d53, 0x5059, - 0x505e, 0x505c, 0x5057, 0x422f, 0x505a, 0x505d, 0x505b, 0x4a5d, - 0x5058, 0x3f2e, 0x4b73, 0x505f, 0x5060, 0x3d24, 0x506d, 0x4750, - 0x4936, 0x5068, 0x4a70, 0x3236, 0x506c, 0x5066, 0x506f, 0x4152, - 0x3844, 0x475c, 0x6047, 0x506e, 0x455d, 0x5063, 0x3876, 0x3875, - 0x5061, 0x3c5a, 0x5069, 0x4a6f, 0x434d, 0x5065, 0x3771, 0x5062, - 0x506a, 0x5064, 0x4e51, 0x506b, 0x4f41, 0x3666, 0x3770, 0x5070, - 0x5071, 0x5075, 0x304e, 0x4a50, 0x5074, 0x5073, 0x5077, 0x5076, - 0x4464, 0x3772, 0x5078, 0x3c45, 0x4226, 0x4465, 0x3676, 0x5079, - 0x3536, 0x507a, 0x507c, 0x4b35, 0x3766, 0x3b31, 0x4877, 0x507b, - 0x3a45, 0x4d43, 0x507e, 0x5123, 0x507d, 0x3a44, 0x3d7d, 0x3739, - 0x5124, 0x364f, 0x5121, 0x5122, 0x462f, 0x417c, 0x3623, 0x4b4d, - 0x5125, 0x4e3d, 0x5126, 0x5129, 0x5127, 0x414e, 0x5128, 0x512a, - 0x512c, 0x512b, 0x4a48, 0x3537, 0x512e, 0x512f, 0x322f, 0x512d, - 0x3c74, 0x5132, 0x5131, 0x5130, 0x5056, 0x5133, 0x3d7e, 0x5134, - 0x4d25, 0x4c59, 0x5136, 0x5135, 0x5138, 0x5137, 0x5139, 0x513a, - 0x3074, 0x3835, 0x373b, 0x3d3c, 0x437b, 0x3624, 0x4068, 0x3877, - 0x396e, 0x513c, 0x4c48, 0x4546, 0x3b79, 0x513b, 0x513d, 0x455e, - 0x3375, 0x513e, 0x467e, 0x4134, 0x5140, 0x5141, 0x482c, 0x3878, - 0x4f3b, 0x5142, 0x3626, 0x4a3c, 0x4236, 0x3671, 0x4535, 0x3773, - 0x5143, 0x5144, 0x4662, 0x315f, 0x5147, 0x3a7d, 0x5146, 0x3a46, - 0x5148, 0x666e, 0x5149, 0x4b41, 0x514a, 0x514b, 0x514c, 0x3e69, - 0x3c4c, 0x3427, 0x514f, 0x514d, 0x4c3d, 0x514e, 0x495a, 0x5150, - 0x5151, 0x5152, 0x455f, 0x5156, 0x5154, 0x5155, 0x5153, 0x3a63, - 0x5157, 0x4c6a, 0x4e64, 0x5158, 0x4028, 0x5159, 0x3d5a, 0x515a, - 0x437c, 0x4e3f, 0x4560, 0x5245, 0x515b, 0x7425, 0x3645, 0x515c, - 0x4b5e, 0x3d68, 0x427c, 0x515e, 0x4664, 0x515f, 0x5160, 0x332e, - 0x5161, 0x3627, 0x464c, 0x317a, 0x3d50, 0x4821, 0x5162, 0x4561, - 0x3f4f, 0x5163, 0x4a2c, 0x405a, 0x3422, 0x3429, 0x5164, 0x5166, - 0x373a, 0x5165, 0x4e73, 0x3d69, 0x483d, 0x4a4c, 0x5167, 0x4d78, - 0x5168, 0x5169, 0x457e, 0x516a, 0x4029, 0x3a7e, 0x3774, 0x516b, - 0x3b49, 0x396f, 0x4466, 0x516d, 0x4227, 0x3a6f, 0x516e, 0x516f, - 0x4130, 0x516c, 0x5171, 0x4b36, 0x3964, 0x5170, 0x3775, 0x3a5e, - 0x476d, 0x5174, 0x5172, 0x497b, 0x3e6a, 0x517b, 0x3364, 0x5175, - 0x5173, 0x414f, 0x5177, 0x5176, 0x3344, 0x3760, 0x517c, 0x4e2d, - 0x5178, 0x517d, 0x517a, 0x5179, 0x4e4f, 0x3879, 0x3243, 0x4e74, - 0x3d75, 0x4558, 0x3965, 0x5222, 0x5223, 0x4e65, 0x4f2b, 0x5225, - 0x387a, 0x5224, 0x332f, 0x5226, 0x4b56, 0x443c, 0x4d26, 0x4a59, - 0x5227, 0x7055, 0x4630, 0x5228, 0x342a, 0x4c33, 0x3e21, 0x5229, - 0x4a67, 0x522d, 0x402a, 0x522a, 0x3650, 0x522b, 0x342b, 0x372e, - 0x522e, 0x522f, 0x5230, 0x5231, 0x3c5b, 0x387b, 0x4c5e, 0x4c68, - 0x4677, 0x4a71, 0x5232, 0x5233, 0x5235, 0x5237, 0x5236, 0x5238, - 0x323d, 0x4b4c, 0x3a7c, 0x5239, 0x4159, 0x3e22, 0x3629, 0x523a, - 0x485b, 0x523b, 0x523c, 0x523d, 0x523e, 0x4924, 0x3668, 0x3065, - 0x463f, 0x523f, 0x3d3d, 0x4069, 0x5241, 0x5240, 0x3e23, 0x3861, - 0x5243, 0x483e, 0x5244, 0x485c, 0x4234, 0x426e, 0x3628, 0x466e, - 0x4331, 0x476e, 0x4b4e, 0x5246, 0x406a, 0x3735, 0x5247, 0x5248, - 0x312c, 0x3075, 0x346d, 0x4228, 0x3551, 0x4d71, 0x524b, 0x3237, - 0x524a, 0x362a, 0x524c, 0x4c71, 0x524d, 0x4e52, 0x387c, 0x3836, - 0x524e, 0x5250, 0x524f, 0x3f5f, 0x3139, 0x315e, 0x5251, 0x5252, - 0x3837, 0x5253, 0x356e, 0x3b32, 0x5254, 0x4b74, 0x3a35, 0x355a, - 0x4d27, 0x4150, 0x483f, 0x3c7d, 0x3d47, 0x3c68, 0x3c75, 0x3d76, - 0x4840, 0x5257, 0x3143, 0x4151, 0x387d, 0x3845, 0x3667, 0x525b, - 0x4321, 0x427e, 0x362b, 0x3e24, 0x525c, 0x525a, 0x3244, 0x4266, - 0x3c38, 0x3b4b, 0x3126, 0x3370, 0x3966, 0x3b4a, 0x525d, 0x525e, - 0x3549, 0x3346, 0x3967, 0x3548, 0x445f, 0x3125, 0x4631, 0x4c3e, - 0x3921, 0x4d79, 0x4547, 0x387e, 0x372f, 0x5267, 0x3663, 0x4b4a, - 0x485d, 0x5266, 0x345e, 0x5261, 0x5262, 0x5264, 0x5265, 0x355b, - 0x3f61, 0x4a2d, 0x5263, 0x525f, 0x3863, 0x5260, 0x4f24, 0x4a72, - 0x4468, 0x3862, 0x3970, 0x5268, 0x465d, 0x526c, 0x3c7e, 0x3c76, - 0x526f, 0x526d, 0x4c23, 0x526a, 0x5273, 0x526e, 0x5271, 0x3846, - 0x4c3f, 0x5272, 0x5274, 0x5276, 0x3a70, 0x4f42, 0x526b, 0x5269, - 0x5275, 0x5270, 0x5278, 0x5323, 0x527a, 0x527e, 0x5321, 0x527b, - 0x533e, 0x3a69, 0x3331, 0x5279, 0x5325, 0x3076, 0x5324, 0x3025, - 0x494a, 0x5322, 0x527c, 0x5277, 0x527d, 0x3a48, 0x5326, 0x3077, - 0x532f, 0x5327, 0x5328, 0x3e25, 0x4b69, 0x532d, 0x532c, 0x452f, - 0x532e, 0x532b, 0x3134, 0x3a36, 0x3f30, 0x5329, 0x4562, 0x532a, - 0x3022, 0x5334, 0x4d23, 0x3e27, 0x533a, 0x5339, 0x5330, 0x4243, - 0x5331, 0x426f, 0x5336, 0x3e26, 0x5333, 0x4c64, 0x373c, 0x5337, - 0x5338, 0x5335, 0x533b, 0x5332, 0x5341, 0x5346, 0x5342, 0x533d, - 0x5347, 0x4131, 0x5349, 0x3922, 0x533f, 0x437d, 0x5343, 0x533c, - 0x342d, 0x346e, 0x3365, 0x5344, 0x5340, 0x3776, 0x534a, 0x5348, - 0x4153, 0x354a, 0x362c, 0x5345, 0x3674, 0x3144, 0x534e, 0x534c, - 0x5427, 0x5351, 0x534b, 0x534f, 0x534d, 0x3b4c, 0x5350, 0x5353, - 0x5358, 0x5356, 0x5355, 0x4332, 0x3245, 0x5352, 0x5354, 0x3e28, - 0x3133, 0x5357, 0x325e, 0x5362, 0x3e7c, 0x535e, 0x535c, 0x535d, - 0x535f, 0x313d, 0x4139, 0x5359, 0x535a, 0x337a, 0x5361, 0x346f, - 0x5364, 0x5360, 0x5363, 0x4a2e, 0x4655, 0x4838, 0x5366, 0x5365, - 0x3345, 0x5367, 0x536a, 0x5369, 0x5368, 0x4739, 0x536b, 0x536c, - 0x536e, 0x536d, 0x5370, 0x5373, 0x5371, 0x536f, 0x5372, 0x5374, - 0x5375, 0x5376, 0x5377, 0x5378, 0x5145, 0x3c7c, 0x3b4d, 0x3273, - 0x3078, 0x4344, 0x5379, 0x3a24, 0x304f, 0x3f5e, 0x537a, 0x3847, - 0x3971, 0x537c, 0x537b, 0x4a60, 0x537d, 0x5421, 0x537e, 0x5422, - 0x5423, 0x3777, 0x3160, 0x5424, 0x5426, 0x5425, 0x5428, 0x455a, - 0x5429, 0x3035, 0x3a5f, 0x373d, 0x434f, 0x542a, 0x542b, 0x542d, - 0x542e, 0x3a64, 0x3651, 0x4b37, 0x542c, 0x542f, 0x3a41, 0x3923, - 0x5433, 0x3a25, 0x4333, 0x5430, 0x445a, 0x5434, 0x3f62, 0x5432, - 0x5435, 0x373f, 0x5436, 0x5437, 0x3924, 0x3340, 0x5439, 0x543a, - 0x543b, 0x5438, 0x5431, 0x543c, 0x543d, 0x4b64, 0x3e6b, 0x543f, - 0x5440, 0x543e, 0x5442, 0x4738, 0x3068, 0x4956, 0x5443, 0x3e7d, - 0x3c39, 0x475d, 0x3470, 0x3a6b, 0x4b59, 0x4632, 0x3778, 0x424f, - 0x5441, 0x5444, 0x4244, 0x5445, 0x5446, 0x5448, 0x4469, 0x342e, - 0x7421, 0x3161, 0x4a73, 0x3e6c, 0x4548, 0x3a66, 0x544e, 0x4a3d, - 0x4e5d, 0x3274, 0x544a, 0x413a, 0x544d, 0x4563, 0x4549, 0x4564, - 0x4839, 0x444d, 0x3a49, 0x5449, 0x3176, 0x4536, 0x544b, 0x5447, - 0x3f50, 0x544f, 0x3d4e, 0x362d, 0x5450, 0x4a68, 0x417d, 0x4446, - 0x5452, 0x4b4f, 0x5453, 0x5458, 0x4a2f, 0x5457, 0x5451, 0x5454, - 0x5456, 0x3a26, 0x4a49, 0x5459, 0x4345, 0x3275, 0x3e6d, 0x545b, - 0x545a, 0x3968, 0x545c, 0x545e, 0x545d, 0x5460, 0x5455, 0x5462, - 0x5461, 0x545f, 0x3b4e, 0x3f51, 0x4154, 0x5463, 0x403c, 0x306d, - 0x4764, 0x445b, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468, 0x5469, - 0x4a51, 0x546a, 0x3246, 0x546b, 0x4d3c, 0x3330, 0x5249, 0x3d48, - 0x423f, 0x546c, 0x4c6b, 0x4c34, 0x546e, 0x4267, 0x4537, 0x4240, - 0x4957, 0x546f, 0x5470, 0x317b, 0x3c3a, 0x5471, 0x3050, 0x5472, - 0x5473, 0x3162, 0x3471, 0x4660, 0x4a74, 0x5477, 0x4155, 0x5476, - 0x3740, 0x4b5b, 0x5475, 0x4565, 0x5479, 0x5478, 0x547b, 0x547a, - 0x317c, 0x547c, 0x3e29, 0x547e, 0x4325, 0x547d, 0x4a33, 0x3d77, - 0x455b, 0x5521, 0x3925, 0x5522, 0x4721, 0x485e, 0x4c51, 0x4725, - 0x552b, 0x3538, 0x4d45, 0x4c2f, 0x562c, 0x5523, 0x5526, 0x4245, - 0x4b38, 0x454a, 0x5527, 0x4b65, 0x3a4a, 0x3e2a, 0x5528, 0x3b50, - 0x3b4f, 0x3039, 0x3848, 0x402b, 0x3051, 0x552c, 0x552d, 0x552a, - 0x3138, 0x342f, 0x5529, 0x4c45, 0x4931, 0x3028, 0x3079, 0x3b51, - 0x3052, 0x3023, 0x5532, 0x5530, 0x4c3c, 0x5533, 0x5531, 0x552f, - 0x3f31, 0x552e, 0x4a5a, 0x3864, 0x5537, 0x5538, 0x3e2b, 0x5534, - 0x4f2c, 0x474c, 0x5536, 0x3a27, 0x5539, 0x4958, 0x553a, 0x5535, - 0x4c3b, 0x475e, 0x553b, 0x4932, 0x553c, 0x5540, 0x553d, 0x3247, - 0x553f, 0x3c3b, 0x553e, 0x3779, 0x554c, 0x5545, 0x5542, 0x4364, - 0x5541, 0x5543, 0x5544, 0x5546, 0x5547, 0x3472, 0x5549, 0x5548, - 0x554a, 0x3e6e, 0x554d, 0x445c, 0x3145, 0x554b, 0x554e, 0x554f, - 0x5552, 0x5550, 0x5551, 0x3b52, 0x5553, 0x3926, 0x5554, 0x3b7a, - 0x4238, 0x5555, 0x5556, 0x3b5a, 0x3927, 0x4c52, 0x3528, 0x3849, - 0x5557, 0x3358, 0x5558, 0x4239, 0x5559, 0x5623, 0x555a, 0x555b, - 0x555c, 0x555e, 0x555f, 0x5560, 0x4270, 0x3127, 0x3c69, 0x3042, - 0x4157, 0x3430, 0x3c35, 0x3928, 0x4566, 0x3d21, 0x3431, 0x4368, - 0x446a, 0x3038, 0x3539, 0x4a75, 0x3c42, 0x3552, 0x406b, 0x3c3c, - 0x4d28, 0x5561, 0x355c, 0x3a4b, 0x3332, 0x3163, 0x3e2c, 0x3248, - 0x5562, 0x4d46, 0x3d49, 0x3c64, 0x5563, 0x3473, 0x4652, 0x4c29, - 0x5564, 0x5565, 0x4959, 0x5567, 0x3428, 0x3677, 0x5566, 0x3432, - 0x3f32, 0x556b, 0x3b21, 0x3249, 0x556a, 0x5568, 0x556c, 0x5569, - 0x472b, 0x5c4d, 0x3f33, 0x556d, 0x4e40, 0x556e, 0x5570, 0x437e, - 0x556f, 0x4023, 0x3b7b, 0x4250, 0x3c77, 0x4975, 0x406c, 0x3c4d, - 0x5571, 0x3e2d, 0x5572, 0x5573, 0x3053, 0x423a, 0x3f52, 0x5574, - 0x4633, 0x3e2e, 0x3e2f, 0x5575, 0x406d, 0x3e30, 0x5576, 0x5577, - 0x4c60, 0x5578, 0x3646, 0x3d22, 0x5579, 0x557a, 0x3c5c, 0x3f2c, - 0x4674, 0x3f54, 0x4878, 0x4722, 0x3649, 0x557b, 0x356f, 0x557c, - 0x367e, 0x464f, 0x3230, 0x3b53, 0x557d, 0x5622, 0x5621, 0x367d, - 0x557e, 0x4538, 0x4230, 0x454b, 0x3c48, 0x4158, 0x4d7a, 0x5624, - 0x5625, 0x4656, 0x3b33, 0x5627, 0x5628, 0x5629, 0x3474, 0x562a, - 0x562b, 0x322c, 0x413b, 0x3464, 0x562d, 0x4c28, 0x4252, 0x3359, - 0x562f, 0x5631, 0x345f, 0x562e, 0x5630, 0x5633, 0x5632, 0x5634, - 0x5635, 0x463d, 0x362e, 0x3265, 0x5636, 0x563b, 0x5639, 0x4a77, - 0x4a76, 0x4567, 0x5638, 0x3d54, 0x5637, 0x3f72, 0x563c, 0x3a6a, - 0x5642, 0x5643, 0x563d, 0x3333, 0x563e, 0x5647, 0x5646, 0x5645, - 0x5641, 0x5640, 0x5644, 0x4a78, 0x564b, 0x5648, 0x564a, 0x4d72, - 0x5649, 0x563f, 0x3f73, 0x564c, 0x3a37, 0x564d, 0x564e, 0x5651, - 0x5650, 0x564f, 0x4568, 0x563a, 0x5657, 0x5653, 0x5652, 0x5654, - 0x5655, 0x5658, 0x4e66, 0x5659, 0x5656, 0x565a, 0x3460, 0x565b, - 0x565d, 0x565c, 0x565e, 0x565f, 0x406e, 0x3d23, 0x3d64, 0x4163, - 0x3929, 0x3a38, 0x392a, 0x3570, 0x5660, 0x3a39, 0x384a, 0x5661, - 0x4c26, 0x4743, 0x5662, 0x392b, 0x342c, 0x4327, 0x3652, 0x3b54, - 0x495b, 0x4841, 0x5663, 0x3475, 0x5666, 0x4421, 0x5665, 0x5664, - 0x5667, 0x446b, 0x3f63, 0x3b55, 0x404a, 0x4253, 0x3522, 0x4422, - 0x5668, 0x5669, 0x3e6f, 0x4b39, 0x566c, 0x566b, 0x566a, 0x497d, - 0x5673, 0x4b5a, 0x566d, 0x566f, 0x4b6b, 0x566e, 0x5670, 0x4828, - 0x5671, 0x4a3e, 0x5672, 0x3433, 0x4a3f, 0x472f, 0x5674, 0x5675, - 0x392c, 0x3434, 0x5676, 0x3838, 0x4d44, 0x4d29, 0x3476, 0x5678, - 0x4423, 0x392d, 0x3e31, 0x485f, 0x3e32, 0x3d78, 0x446c, 0x4a79, - 0x4539, 0x392e, 0x495c, 0x5679, 0x4559, 0x3a42, 0x384b, 0x446d, - 0x3043, 0x3d6e, 0x392f, 0x4d47, 0x567a, 0x567b, 0x4751, 0x567c, - 0x4e77, 0x4f2d, 0x567e, 0x567d, 0x3347, 0x5721, 0x5724, 0x5725, - 0x5723, 0x4940, 0x3e33, 0x5727, 0x5726, 0x5722, 0x5728, 0x5729, - 0x572a, 0x572d, 0x572b, 0x572c, 0x572e, 0x3164, 0x446e, 0x572f, - 0x377a, 0x3276, 0x4736, 0x5730, 0x467b, 0x4a5b, 0x5731, 0x4f2e, - 0x5732, 0x4a40, 0x5735, 0x5021, 0x5031, 0x3c30, 0x4675, 0x5736, - 0x355d, 0x4424, 0x307a, 0x5737, 0x4a26, 0x3930, 0x4350, 0x446f, - 0x4c6f, 0x3839, 0x384c, 0x5738, 0x5739, 0x573f, 0x3c65, 0x4425, - 0x362f, 0x573a, 0x492b, 0x4346, 0x573b, 0x573c, 0x3630, 0x573d, - 0x573e, 0x5740, 0x4576, 0x5741, 0x5742, 0x5743, 0x5734, 0x5733, - 0x5744, 0x3741, 0x4927, 0x3a4c, 0x4937, 0x4426, 0x494b, 0x5745, - 0x3e34, 0x3146, 0x5746, 0x5747, 0x4c72, 0x4860, 0x574a, 0x317d, - 0x402c, 0x5749, 0x5748, 0x3742, 0x4254, 0x574e, 0x574c, 0x574b, - 0x4e27, 0x3865, 0x3d79, 0x574d, 0x454c, 0x3d3e, 0x4640, 0x5751, - 0x5750, 0x574f, 0x5752, 0x3866, 0x5753, 0x497c, 0x3d5b, 0x5754, - 0x4879, 0x4641, 0x4427, 0x4530, 0x5755, 0x352b, 0x3f34, 0x492c, - 0x3477, 0x4726, 0x5756, 0x3b56, 0x4b3a, 0x4b3b, 0x317e, 0x575b, - 0x4369, 0x5758, 0x3277, 0x582d, 0x575a, 0x4730, 0x5759, 0x5757, - 0x397a, 0x575d, 0x5763, 0x5769, 0x5761, 0x455c, 0x5766, 0x495d, - 0x5760, 0x5765, 0x4e67, 0x3b57, 0x4255, 0x575e, 0x355e, 0x5768, - 0x402d, 0x3165, 0x5762, 0x3278, 0x5767, 0x3631, 0x5764, 0x576a, - 0x576c, 0x5776, 0x5774, 0x5771, 0x5770, 0x4e78, 0x5772, 0x3632, - 0x3931, 0x3d7a, 0x5779, 0x576b, 0x576f, 0x575f, 0x327a, 0x5773, - 0x5775, 0x4351, 0x3a28, 0x3238, 0x576d, 0x5778, 0x5777, 0x3633, - 0x4229, 0x3366, 0x3743, 0x576e, 0x577a, 0x577d, 0x5821, 0x3c3d, - 0x5827, 0x4470, 0x577b, 0x5825, 0x3279, 0x5823, 0x5824, 0x577e, - 0x5822, 0x3867, 0x4d2a, 0x3435, 0x3159, 0x5826, 0x473a, 0x302d, - 0x4861, 0x575c, 0x582c, 0x5830, 0x4c65, 0x5829, 0x4569, 0x582e, - 0x3e70, 0x582f, 0x4657, 0x4f47, 0x582b, 0x5831, 0x397b, 0x404b, - 0x3054, 0x582a, 0x5828, 0x415a, 0x577c, 0x3b34, 0x4246, 0x583d, - 0x415b, 0x5838, 0x5835, 0x5836, 0x3c66, 0x5839, 0x583c, 0x5837, - 0x3d25, 0x583a, 0x5834, 0x4c7c, 0x4c7b, 0x583e, 0x583f, 0x3055, - 0x5833, 0x3672, 0x3026, 0x3436, 0x583b, 0x5843, 0x5842, 0x5847, - 0x5848, 0x5846, 0x5849, 0x5841, 0x5845, 0x584a, 0x584b, 0x5840, - 0x3b7c, 0x5844, 0x4256, 0x3932, 0x5832, 0x3f35, 0x5858, 0x4a69, - 0x584e, 0x584f, 0x5850, 0x5857, 0x5856, 0x4b7d, 0x3437, 0x5854, - 0x3745, 0x3334, 0x5851, 0x4e38, 0x5853, 0x3056, 0x5855, 0x584c, - 0x5852, 0x5859, 0x3744, 0x584d, 0x4d5d, 0x4d2b, 0x585c, 0x5860, - 0x417e, 0x4e79, 0x5861, 0x585e, 0x585b, 0x585a, 0x585f, 0x4a30, - 0x4634, 0x3746, 0x5862, 0x585d, 0x5863, 0x377b, 0x3231, 0x586b, - 0x3438, 0x5869, 0x586a, 0x3a29, 0x5868, 0x5866, 0x5865, 0x586c, - 0x5864, 0x586e, 0x327b, 0x5870, 0x586f, 0x4428, 0x5873, 0x5871, - 0x5867, 0x377c, 0x5872, 0x5876, 0x5875, 0x5877, 0x5874, 0x5878, - 0x5879, 0x587a, 0x4a6a, 0x587c, 0x587b, 0x3d3f, 0x402e, 0x3266, - 0x327c, 0x587d, 0x303f, 0x404c, 0x587e, 0x6c43, 0x5921, 0x3761, - 0x5922, 0x406f, 0x5923, 0x5924, 0x353a, 0x5925, 0x5926, 0x5927, - 0x4257, 0x384d, 0x4c61, 0x4b3c, 0x3d6a, 0x5928, 0x4070, 0x6e3d, - 0x4862, 0x3c6a, 0x3a4d, 0x5929, 0x4247, 0x4a27, 0x4271, 0x592c, - 0x592a, 0x592d, 0x592b, 0x592e, 0x4a31, 0x3037, 0x495e, 0x4863, - 0x592f, 0x5932, 0x3e35, 0x353b, 0x5930, 0x5937, 0x3e36, 0x5931, - 0x4744, 0x4d5e, 0x5933, 0x5934, 0x5938, 0x456a, 0x5935, 0x3933, - 0x405e, 0x5946, 0x4834, 0x4272, 0x4864, 0x5a2d, 0x4a7a, 0x4471, - 0x4b75, 0x593b, 0x3221, 0x436a, 0x5944, 0x4334, 0x593e, 0x5945, - 0x5940, 0x5947, 0x5943, 0x5942, 0x476f, 0x593c, 0x327d, 0x593a, - 0x3571, 0x4273, 0x5936, 0x5939, 0x3934, 0x405b, 0x3e37, 0x5941, - 0x4752, 0x3572, 0x3348, 0x3367, 0x3f21, 0x5949, 0x594e, 0x594a, - 0x377d, 0x594f, 0x3b22, 0x3969, 0x3d26, 0x593d, 0x3b7d, 0x594c, - 0x3b58, 0x594d, 0x3044, 0x5948, 0x4429, 0x3573, 0x3634, 0x594b, - 0x3027, 0x3a43, 0x3f36, 0x4472, 0x4854, 0x5951, 0x415e, 0x422a, - 0x3b2b, 0x5952, 0x5954, 0x5950, 0x4a61, 0x443d, 0x415c, 0x4a7b, - 0x3c4e, 0x5960, 0x595f, 0x3f78, 0x377e, 0x5959, 0x3e39, 0x4668, - 0x4731, 0x5957, 0x415d, 0x3c78, 0x595c, 0x3e38, 0x5956, 0x595b, - 0x4753, 0x5955, 0x3721, 0x335d, 0x595d, 0x4e2b, 0x3a4e, 0x4335, - 0x595a, 0x405c, 0x3935, 0x3f64, 0x3166, 0x413c, 0x5958, 0x3545, - 0x3747, 0x444f, 0x595e, 0x415f, 0x5961, 0x5963, 0x4237, 0x5969, - 0x5964, 0x5966, 0x4941, 0x4473, 0x5967, 0x4d2c, 0x4d48, 0x3439, - 0x302e, 0x5965, 0x5962, 0x3478, 0x3167, 0x5968, 0x4d49, 0x596c, - 0x423b, 0x5973, 0x596d, 0x596a, 0x5971, 0x5953, 0x596e, 0x5972, - 0x4842, 0x456b, 0x596b, 0x596f, 0x3748, 0x3a71, 0x405d, 0x5977, - 0x4526, 0x5974, 0x4b60, 0x5975, 0x5976, 0x4c4e, 0x4022, 0x3762, - 0x597d, 0x3b35, 0x597a, 0x5979, 0x4732, 0x4635, 0x4531, 0x597b, - 0x597c, 0x496f, 0x4745, 0x3b23, 0x4071, 0x4b50, 0x3349, 0x5a25, - 0x597e, 0x4d4a, 0x5a27, 0x5a23, 0x5a24, 0x4160, 0x5a22, 0x593f, - 0x5a26, 0x5a21, 0x5a2b, 0x5a2c, 0x4527, 0x5a2e, 0x3b24, 0x5a29, - 0x353c, 0x5a2f, 0x5a28, 0x5a33, 0x5a32, 0x5a31, 0x5a34, 0x5a36, - 0x3e71, 0x5a35, 0x5a39, 0x5a37, 0x5a38, 0x5970, 0x5a3b, 0x5a3a, - 0x5978, 0x5a3c, 0x5a30, 0x3b59, 0x5a3d, 0x5a3e, 0x5a40, 0x5a3f, - 0x5a41, 0x327e, 0x3936, 0x4a7c, 0x402f, 0x384e, 0x5a43, 0x5a46, - 0x4952, 0x355f, 0x5a45, 0x5a44, 0x4754, 0x5a47, 0x3635, 0x5a49, - 0x5a48, 0x343a, 0x3b36, 0x4658, 0x3749, 0x3f74, 0x5a4a, 0x4030, - 0x4528, 0x495f, 0x5a4b, 0x5a4c, 0x5a4d, 0x4a38, 0x555d, 0x4046, - 0x494c, 0x3a58, 0x4865, 0x4843, 0x454d, 0x4e41, 0x5a4f, 0x3c50, - 0x5a50, 0x3036, 0x3654, 0x404d, 0x4960, 0x5a51, 0x3b42, 0x4347, - 0x3b5b, 0x3f37, 0x5a52, 0x4a7d, 0x3177, 0x3b5c, 0x5a55, 0x5a53, - 0x5a56, 0x4e39, 0x5a54, 0x407b, 0x5a57, 0x4232, 0x5a58, 0x347a, - 0x5a5a, 0x5a59, 0x5a5b, 0x5a5c, 0x347b, 0x467c, 0x4336, 0x356c, - 0x3b5d, 0x4161, 0x3d5c, 0x3030, 0x5a5d, 0x3222, 0x5a61, 0x3937, - 0x5a60, 0x3a2b, 0x3e3a, 0x5a5f, 0x3e3b, 0x4c40, 0x3a2a, 0x3057, - 0x404e, 0x5a66, 0x4031, 0x3147, 0x3d55, 0x4b66, 0x3a72, 0x3e3c, - 0x4027, 0x5a65, 0x5a63, 0x5a64, 0x436b, 0x5b26, 0x5a6a, 0x3b7e, - 0x3938, 0x5a68, 0x5a69, 0x3f38, 0x5a67, 0x3b2f, 0x5a6c, 0x5a6b, - 0x5a70, 0x5a71, 0x5a6d, 0x3322, 0x5a6e, 0x5a6f, 0x4855, 0x4961, - 0x374a, 0x5a72, 0x4032, 0x3e3d, 0x4352, 0x3647, 0x5a73, 0x5a77, - 0x324b, 0x5a74, 0x5a76, 0x5a75, 0x3d6b, 0x4348, 0x3045, 0x5a78, - 0x5a79, 0x442a, 0x4e71, 0x3b43, 0x4a6b, 0x4b3d, 0x5b22, 0x5a7b, - 0x5a7e, 0x5a7d, 0x5a7a, 0x5b21, 0x465e, 0x5a7c, 0x5b23, 0x3d6c, - 0x5b24, 0x4d4b, 0x4778, 0x5b25, 0x5b27, 0x5b28, 0x5b29, 0x364a, - 0x3148, 0x3939, 0x5b2a, 0x5b2b, 0x3d71, 0x4162, 0x5258, 0x413e, - 0x413d, 0x4258, 0x3a47, 0x5072, 0x376e, 0x4d2d, 0x4a7e, 0x497e, - 0x5b2c, 0x3a73, 0x443f, 0x5b2d, 0x4f2f, 0x4b3e, 0x442b, 0x5b2e, - 0x347c, 0x5b2f, 0x5b30, 0x4c5a, 0x4c24, 0x4b76, 0x4b5c, 0x3b25, - 0x5b32, 0x3c6b, 0x4b51, 0x5b34, 0x5b37, 0x5b36, 0x3479, 0x3560, - 0x5b33, 0x5b35, 0x5b38, 0x3f79, 0x4d7b, 0x3049, 0x3a60, 0x423c, - 0x3c5d, 0x3e73, 0x5b3b, 0x454e, 0x5b39, 0x422b, 0x5b3a, 0x3e72, - 0x4c5d, 0x5b3c, 0x5b3d, 0x4d68, 0x5b42, 0x393a, 0x4755, 0x5b3f, - 0x456c, 0x5a5e, 0x5a62, 0x354f, 0x4747, 0x5b41, 0x3e3e, 0x4844, - 0x5b47, 0x487a, 0x5b3e, 0x5b44, 0x5b43, 0x404f, 0x4b6d, 0x4e53, - 0x4b67, 0x324c, 0x3b5e, 0x4f48, 0x5b46, 0x3f75, 0x5b45, 0x5b40, - 0x384f, 0x5b4c, 0x5b4a, 0x324d, 0x5b48, 0x5b4e, 0x5b54, 0x4248, - 0x4a41, 0x5b56, 0x4922, 0x5b55, 0x4770, 0x4b3f, 0x343b, 0x4077, - 0x3d40, 0x4453, 0x4d2e, 0x5b51, 0x5b50, 0x5b52, 0x5b4f, 0x5b57, - 0x5b4d, 0x5b4b, 0x5b53, 0x5b49, 0x436c, 0x4c78, 0x3c46, 0x3a74, - 0x3a3a, 0x4b6f, 0x3341, 0x444e, 0x464a, 0x3149, 0x4072, 0x4034, - 0x372a, 0x5b59, 0x393b, 0x337c, 0x5b5b, 0x3374, 0x5b61, 0x5b5e, - 0x4073, 0x334b, 0x3a2c, 0x334a, 0x3a4f, 0x5b5c, 0x3765, 0x374b, - 0x456d, 0x5b5a, 0x3046, 0x5b5d, 0x5b5f, 0x364d, 0x372c, 0x343c, - 0x354b, 0x5b62, 0x3a79, 0x4b71, 0x3b37, 0x5b63, 0x4930, 0x5b6f, - 0x3233, 0x5b64, 0x5b75, 0x5b65, 0x4e42, 0x5b6c, 0x475f, 0x5b74, - 0x5b67, 0x3034, 0x5b69, 0x393c, 0x5b6b, 0x5b6a, 0x5b66, 0x5b71, - 0x3e3f, 0x546d, 0x3868, 0x4d7c, 0x5b68, 0x4474, 0x3323, 0x3a2d, - 0x5b60, 0x5b70, 0x3361, 0x5b6e, 0x5b72, 0x456e, 0x347e, 0x5c32, - 0x4c49, 0x5b77, 0x347d, 0x5b7e, 0x4b40, 0x5c21, 0x5c23, 0x5c27, - 0x5b79, 0x432a, 0x456f, 0x5c2b, 0x5b7c, 0x5c28, 0x5c22, 0x3f39, - 0x5c2c, 0x4033, 0x5c2a, 0x343d, 0x4f50, 0x5b76, 0x5c26, 0x3058, - 0x5b78, 0x4c3a, 0x5b7d, 0x3f22, 0x4447, 0x5b73, 0x5c25, 0x3f7a, - 0x5c2f, 0x3371, 0x3821, 0x5c31, 0x5b7a, 0x5c30, 0x5c29, 0x5b7b, - 0x5c2d, 0x5c2e, 0x5c3f, 0x464e, 0x5c24, 0x5c3b, 0x5c3d, 0x4458, - 0x4d4c, 0x4976, 0x5c38, 0x424a, 0x5c3e, 0x413f, 0x5c35, 0x5c42, - 0x5c41, 0x466f, 0x5c40, 0x466a, 0x5c44, 0x5c37, 0x3648, 0x5c3a, - 0x3d5d, 0x4760, 0x5c3c, 0x364b, 0x5c34, 0x5c36, 0x5c33, 0x4f30, - 0x335a, 0x5c39, 0x5c43, 0x3335, 0x3a67, 0x315d, 0x5c54, 0x4f31, - 0x5c57, 0x3f3a, 0x5c56, 0x5c55, 0x5c52, 0x5c46, 0x5c63, 0x5c45, - 0x5c58, 0x5c50, 0x5c4b, 0x5c48, 0x5c49, 0x5c51, 0x7422, 0x5c4e, - 0x393d, 0x4448, 0x4164, 0x5c4c, 0x5c47, 0x5c4a, 0x4d4d, 0x4b6a, - 0x5c4f, 0x5c59, 0x5c61, 0x5c5a, 0x5c67, 0x5c65, 0x5c60, 0x5c5f, - 0x4450, 0x4165, 0x5c5d, 0x5c5b, 0x5c62, 0x5c68, 0x4875, 0x5c6e, - 0x5c69, 0x5c6c, 0x5c66, 0x4374, 0x4938, 0x5c5c, 0x5c64, 0x3e40, - 0x4c4f, 0x5c78, 0x5c6b, 0x3822, 0x3223, 0x335f, 0x5c53, 0x3e41, - 0x5c70, 0x5c77, 0x3c79, 0x3372, 0x432e, 0x5c6d, 0x5c72, 0x5c76, - 0x3636, 0x354c, 0x5c74, 0x3521, 0x464b, 0x5c73, 0x5c75, 0x5c6f, - 0x5c71, 0x3360, 0x4349, 0x5c7c, 0x5c7a, 0x3869, 0x5c79, 0x5d21, - 0x5b58, 0x5c7b, 0x5c7d, 0x5c7e, 0x5d2c, 0x5d28, 0x5b6d, 0x5d27, - 0x5d26, 0x5d23, 0x5c6a, 0x5d25, 0x5d24, 0x5d2a, 0x4f26, 0x5d2d, - 0x367b, 0x5d29, 0x5d2b, 0x4827, 0x5d2e, 0x5d32, 0x5d2f, 0x4d73, - 0x5d30, 0x5c5e, 0x5d33, 0x5d34, 0x3135, 0x5d36, 0x3767, 0x3c21, - 0x3655, 0x3224, 0x4d5f, 0x5d38, 0x5d37, 0x5d3a, 0x353d, 0x3656, - 0x343e, 0x5d3d, 0x5d3c, 0x5d3e, 0x324e, 0x4337, 0x5d3f, 0x343f, - 0x5d41, 0x5d40, 0x5d42, 0x5d43, 0x5d44, 0x3b5f, 0x4035, 0x3a21, - 0x4970, 0x4a62, 0x4f44, 0x3b75, 0x3a50, 0x4e72, 0x5d45, 0x5d46, - 0x3b60, 0x5d47, 0x5d48, 0x5d4a, 0x5d49, 0x4b58, 0x3d5e, 0x3c6c, - 0x3b44, 0x5d4b, 0x5d4d, 0x3f23, 0x5d4c, 0x5d4e, 0x5d4f, 0x5d50, - 0x5d51, 0x5d52, 0x5d54, 0x5d53, 0x5d55, 0x3225, 0x434a, 0x5d56, - 0x3b26, 0x334c, 0x5d57, 0x4542, 0x544c, 0x3523, 0x5d58, 0x5d59, - 0x4a6c, 0x4b68, 0x4647, 0x5d5a, 0x4866, 0x487b, 0x4c53, 0x5d5b, - 0x5d5d, 0x5d5c, 0x5d5f, 0x5d5e, 0x5d61, 0x3b61, 0x4c31, 0x5d62, - 0x5d63, 0x3524, 0x5d64, 0x5d66, 0x5d65, 0x3f65, 0x4939, 0x314a, - 0x4845, 0x4475, 0x3d41, 0x3561, 0x4846, 0x3c2e, 0x5d68, 0x3440, - 0x3178, 0x4672, 0x5d67, 0x393e, 0x4353, 0x5d69, 0x5d71, 0x5d6a, - 0x4241, 0x3562, 0x5d72, 0x3768, 0x3525, 0x5d70, 0x5d6e, 0x5d6b, - 0x4d60, 0x4440, 0x4659, 0x5d6c, 0x5d74, 0x5d73, 0x3723, 0x322d, - 0x3a3b, 0x5d6d, 0x5d6f, 0x4b57, 0x4274, 0x4b77, 0x5d7c, 0x5d7d, - 0x324f, 0x4a28, 0x4c7d, 0x5e21, 0x3c23, 0x3e42, 0x5d78, 0x5d7e, - 0x3168, 0x3637, 0x5d75, 0x5d7a, 0x4074, 0x4771, 0x4867, 0x5d77, - 0x4b21, 0x5d79, 0x5e24, 0x5e22, 0x5d7b, 0x4b22, 0x4748, 0x3563, - 0x4525, 0x436d, 0x5e25, 0x5e23, 0x4259, 0x5d76, 0x314b, 0x4d4e, - 0x5e30, 0x5e2f, 0x4076, 0x5e2c, 0x4d6c, 0x4636, 0x5e26, 0x4445, - 0x314c, 0x393f, 0x5e29, 0x3d27, 0x5e2e, 0x5e2d, 0x5e28, 0x5e2b, - 0x3368, 0x5e2a, 0x4749, 0x4e2e, 0x3e74, 0x4075, 0x5e36, 0x5e34, - 0x494d, 0x5e31, 0x5e33, 0x313a, 0x3940, 0x4f32, 0x333d, 0x4962, - 0x4d61, 0x3324, 0x3f3b, 0x5e35, 0x5e3a, 0x3e43, 0x4d30, 0x5e37, - 0x5e32, 0x5e38, 0x4e5e, 0x4573, 0x4642, 0x3336, 0x3155, 0x5e3e, - 0x5e41, 0x4e43, 0x4d64, 0x5e48, 0x5e42, 0x5e3f, 0x4e54, 0x5e45, - 0x3d4a, 0x5e47, 0x5e4c, 0x4571, 0x5e4a, 0x5e44, 0x4338, 0x5e4b, - 0x5e40, 0x5e46, 0x5e4d, 0x307c, 0x5e43, 0x5e4e, 0x3f3c, 0x3d5f, - 0x4a25, 0x3a2e, 0x5e3b, 0x5e49, 0x453a, 0x4036, 0x3369, 0x3a51, - 0x3e44, 0x5e3d, 0x3d42, 0x374c, 0x5e3c, 0x5e52, 0x3d6d, 0x383a, - 0x5e61, 0x5e5b, 0x3574, 0x454f, 0x5e56, 0x5e5f, 0x302f, 0x3132, - 0x3239, 0x5e58, 0x422c, 0x5e4f, 0x5e51, 0x3941, 0x5e62, 0x5e5d, - 0x5e55, 0x5e5c, 0x4c2b, 0x5e5a, 0x5e5e, 0x3850, 0x3e45, 0x4339, - 0x5e54, 0x4d2f, 0x5e57, 0x5e50, 0x4572, 0x5e53, 0x5e59, 0x4f51, - 0x3c3e, 0x4b7e, 0x5e63, 0x482e, 0x5e6f, 0x383b, 0x3d60, 0x5e65, - 0x4e2f, 0x3942, 0x5e72, 0x306e, 0x5e70, 0x5e64, 0x5e6a, 0x5e6c, - 0x4d4f, 0x5e67, 0x452e, 0x5e69, 0x5e71, 0x5e6b, 0x4c47, 0x5e66, - 0x3c22, 0x5e7e, 0x336a, 0x5e68, 0x5e6d, 0x5e6e, 0x426c, 0x425a, - 0x5e76, 0x5e7c, 0x5e7a, 0x4529, 0x5f23, 0x5e77, 0x5e78, 0x5e60, - 0x3579, 0x493a, 0x3c3f, 0x3977, 0x4f33, 0x5e74, 0x5f22, 0x3169, - 0x4166, 0x4779, 0x3441, 0x4e7a, 0x4c21, 0x4452, 0x5e7b, 0x5e7d, - 0x4132, 0x5f21, 0x5e79, 0x5e73, 0x3443, 0x3769, 0x5f2f, 0x5f2a, - 0x4078, 0x3363, 0x3d61, 0x5f33, 0x5f2c, 0x442c, 0x5f29, 0x4459, - 0x5f4c, 0x5f26, 0x5f25, 0x5f2e, 0x5f28, 0x5f27, 0x5f2d, 0x4021, - 0x5f24, 0x5f30, 0x5f31, 0x3442, 0x5f36, 0x5f35, 0x5f37, 0x5f3a, - 0x4543, 0x5f34, 0x5f38, 0x3763, 0x4279, 0x5f32, 0x473b, 0x5f39, - 0x5f3e, 0x5f3c, 0x5f3f, 0x5f42, 0x5f3b, 0x396a, 0x4728, 0x5e39, - 0x4d74, 0x5f3d, 0x5f41, 0x4275, 0x5f40, 0x5f2b, 0x6f69, 0x5f45, - 0x5f49, 0x5f47, 0x5f43, 0x5f44, 0x5f48, 0x5f46, 0x494e, 0x5f4e, - 0x5f4b, 0x5f4a, 0x5f4d, 0x4654, 0x5f4f, 0x4375, 0x426d, 0x4025, - 0x5f50, 0x5f52, 0x5f51, 0x5e75, 0x5f53, 0x4667, 0x5f54, 0x3250, - 0x4574, 0x3325, 0x3564, 0x3c5e, 0x3a52, 0x4f27, 0x3f66, 0x316a, - 0x5f56, 0x5f55, 0x5f59, 0x433a, 0x5f5c, 0x5f57, 0x5f5b, 0x5f5a, - 0x4540, 0x3059, 0x4e75, 0x5f5e, 0x3128, 0x5f60, 0x5f5f, 0x5f5d, - 0x5f58, 0x4b23, 0x5f62, 0x5f61, 0x316b, 0x5f64, 0x4a32, 0x5f63, - 0x4c35, 0x3e47, 0x4133, 0x3e46, 0x4e7b, 0x5f6a, 0x4079, 0x5f66, - 0x5f6b, 0x316c, 0x5f69, 0x4761, 0x5f65, 0x5f68, 0x3e48, 0x4851, - 0x5f6c, 0x3c51, 0x407a, 0x5f6f, 0x5f67, 0x3727, 0x5f6d, 0x4d50, - 0x5f70, 0x7426, 0x3d4f, 0x5f71, 0x5f72, 0x472e, 0x5f74, 0x5f75, - 0x4733, 0x4575, 0x5f77, 0x5f79, 0x4e55, 0x5f76, 0x5f78, 0x316d, - 0x5f73, 0x535b, 0x5f7a, 0x4167, 0x3b38, 0x5f7c, 0x5f7b, 0x3f24, - 0x5259, 0x5f7d, 0x6021, 0x5f6e, 0x5f7e, 0x6022, 0x477a, 0x6023, - 0x6024, 0x6025, 0x6026, 0x445e, 0x6028, 0x6027, 0x6029, 0x602a, - 0x3c5f, 0x4963, 0x4c6c, 0x602b, 0x602c, 0x4156, 0x3c24, 0x602d, - 0x602e, 0x602f, 0x4a52, 0x4847, 0x6030, 0x4757, 0x442d, 0x6031, - 0x3267, 0x356d, 0x4c46, 0x4c36, 0x3234, 0x4f34, 0x4b52, 0x4a2a, - 0x4037, 0x6032, 0x4643, 0x3823, 0x6033, 0x3a54, 0x6035, 0x6034, - 0x6036, 0x6037, 0x6038, 0x353e, 0x6039, 0x603a, 0x3824, 0x4848, - 0x603c, 0x3e75, 0x603b, 0x3638, 0x603d, 0x603f, 0x603e, 0x6040, - 0x3851, 0x6041, 0x3669, 0x4140, 0x397d, 0x6043, 0x6044, 0x6042, - 0x3c6d, 0x4648, 0x3639, 0x6046, 0x432c, 0x6045, 0x4f35, 0x4762, - 0x6049, 0x604b, 0x6048, 0x4c54, 0x604a, 0x604c, 0x4e44, 0x6050, - 0x604f, 0x4376, 0x472d, 0x3825, 0x604e, 0x604d, 0x4d31, 0x4d32, - 0x6051, 0x316e, 0x3976, 0x3b62, 0x6052, 0x6053, 0x6055, 0x3d43, - 0x6057, 0x6056, 0x6058, 0x334d, 0x605a, 0x6059, 0x605c, 0x605b, - 0x383c, 0x4e28, 0x364c, 0x3226, 0x366a, 0x3461, 0x4e68, 0x605e, - 0x6060, 0x6061, 0x3251, 0x605d, 0x3b39, 0x4441, 0x605f, 0x6064, - 0x3c6e, 0x6062, 0x373e, 0x4849, 0x6063, 0x607e, 0x6069, 0x383d, - 0x3565, 0x6066, 0x4d7d, 0x4e30, 0x4276, 0x6068, 0x606a, 0x4e56, - 0x3657, 0x487c, 0x474a, 0x606b, 0x606d, 0x6070, 0x606c, 0x606f, - 0x386a, 0x314d, 0x6071, 0x3f70, 0x606e, 0x4e5c, 0x6074, 0x7424, - 0x6072, 0x6075, 0x6067, 0x6073, 0x3a3c, 0x6076, 0x6077, 0x4d7e, - 0x6078, 0x6079, 0x6065, 0x607a, 0x3444, 0x3c25, 0x607b, 0x607c, - 0x607d, 0x313b, 0x6121, 0x493b, 0x6122, 0x3424, 0x6123, 0x6124, - 0x6125, 0x6127, 0x6128, 0x6126, 0x4953, 0x612a, 0x6129, 0x612c, - 0x612b, 0x612d, 0x612e, 0x6130, 0x612f, 0x3979, 0x6132, 0x6131, - 0x3445, 0x3f53, 0x453c, 0x6133, 0x4038, 0x3b3a, 0x3179, 0x6134, - 0x4d51, 0x4a63, 0x6135, 0x4544, 0x4d33, 0x3943, 0x3f3d, 0x434b, - 0x5234, 0x442e, 0x3268, 0x6136, 0x6137, 0x613c, 0x613a, 0x6139, - 0x5a42, 0x3326, 0x6138, 0x305a, 0x482a, 0x484a, 0x4e31, 0x613d, - 0x613b, 0x435c, 0x4026, 0x482b, 0x492d, 0x613f, 0x4e2c, 0x374d, - 0x6140, 0x613e, 0x4856, 0x6141, 0x6142, 0x305b, 0x3e76, 0x6147, - 0x6144, 0x466d, 0x6143, 0x3526, 0x614a, 0x6145, 0x6146, 0x6149, - 0x6148, 0x4925, 0x4142, 0x4141, 0x353f, 0x614b, 0x614c, 0x614d, - 0x614f, 0x614e, 0x3156, 0x6157, 0x4868, 0x6151, 0x6153, 0x6155, - 0x3f3e, 0x6156, 0x6154, 0x3c40, 0x6150, 0x6152, 0x4942, 0x3e49, - 0x6159, 0x6158, 0x615a, 0x3c26, 0x3a2f, 0x4577, 0x615b, 0x444b, - 0x615d, 0x4e21, 0x615c, 0x4169, 0x6162, 0x6164, 0x6165, 0x4354, - 0x6163, 0x6160, 0x615e, 0x615f, 0x6161, 0x6168, 0x6166, 0x6167, - 0x6169, 0x616b, 0x616c, 0x616d, 0x616e, 0x616a, 0x6170, 0x616f, - 0x6171, 0x4e45, 0x6174, 0x6172, 0x6173, 0x3462, 0x4c7e, 0x4a4a, - 0x6176, 0x6175, 0x6177, 0x6178, 0x617c, 0x6179, 0x617a, 0x617b, - 0x617d, 0x617e, 0x6221, 0x6222, 0x6223, 0x482f, 0x4550, 0x6224, - 0x4772, 0x4934, 0x6225, 0x6226, 0x452a, 0x3327, 0x3944, 0x6227, - 0x6228, 0x6229, 0x3b29, 0x622b, 0x622a, 0x622c, 0x622d, 0x4869, - 0x622e, 0x622f, 0x7369, 0x6230, 0x6231, 0x6232, 0x3b2e, 0x6233, - 0x4756, 0x4b5f, 0x314e, 0x3157, 0x6234, 0x6236, 0x6235, 0x4570, - 0x4039, 0x5d39, 0x6237, 0x4c41, 0x6238, 0x3446, 0x4857, 0x6239, - 0x623a, 0x623b, 0x4c5c, 0x4c55, 0x443e, 0x416a, 0x623d, 0x3d62, - 0x3e4a, 0x6240, 0x623f, 0x623e, 0x487d, 0x3447, 0x3829, 0x6246, - 0x6243, 0x3f3f, 0x4c32, 0x6242, 0x6244, 0x6245, 0x6241, 0x6247, - 0x6248, 0x442f, 0x3463, 0x4365, 0x6249, 0x624a, 0x624d, 0x3f67, - 0x4644, 0x624e, 0x4b53, 0x624b, 0x624c, 0x6251, 0x6250, 0x624f, - 0x6253, 0x6252, 0x6254, 0x6256, 0x6255, 0x4a4d, 0x3d56, 0x4e46, - 0x6257, 0x4637, 0x6258, 0x6259, 0x625d, 0x625b, 0x625c, 0x625a, - 0x625e, 0x625f, 0x6260, 0x6261, 0x4c37, 0x6262, 0x4c70, 0x6263, - 0x434e, 0x476a, 0x366b, 0x433b, 0x6264, 0x363a, 0x4050, 0x6265, - 0x3a3d, 0x6266, 0x6267, 0x3826, 0x3a55, 0x6269, 0x4556, 0x3a56, - 0x354e, 0x4b24, 0x474b, 0x4557, 0x395c, 0x626b, 0x3e4b, 0x4e32, - 0x3945, 0x3827, 0x4823, 0x626d, 0x626f, 0x386b, 0x626e, 0x4476, - 0x6271, 0x3337, 0x626c, 0x486a, 0x3130, 0x3a6c, 0x4f52, 0x6270, - 0x6272, 0x4a4b, 0x4059, 0x6274, 0x6275, 0x6273, 0x334e, 0x627b, - 0x627a, 0x3c27, 0x627c, 0x6277, 0x627d, 0x6278, 0x4858, 0x6276, - 0x6279, 0x6322, 0x6321, 0x4b61, 0x627e, 0x306b, 0x6324, 0x6323, - 0x3e4c, 0x6325, 0x4143, 0x6327, 0x6326, 0x6328, 0x6268, 0x626a, - 0x632a, 0x6329, 0x3c28, 0x4e69, 0x3c52, 0x632b, 0x3737, 0x3540, - 0x3527, 0x3b63, 0x4d34, 0x6331, 0x6330, 0x4144, 0x632d, 0x632f, - 0x3d4b, 0x3f40, 0x632e, 0x632c, 0x472a, 0x3e4d, 0x493c, 0x3a57, - 0x4578, 0x6332, 0x6333, 0x6349, 0x3658, 0x4f3d, 0x4135, 0x6334, - 0x3252, 0x4477, 0x4a21, 0x6335, 0x357a, 0x6336, 0x6338, 0x6339, - 0x4729, 0x633a, 0x633b, 0x633c, 0x3659, 0x3253, 0x4645, 0x3d28, - 0x3b64, 0x633d, 0x3d29, 0x324a, 0x4943, 0x633e, 0x486b, 0x4145, - 0x6341, 0x6342, 0x4769, 0x3f41, 0x633f, 0x4361, 0x6340, 0x3e4e, - 0x305c, 0x3529, 0x6343, 0x4478, 0x6344, 0x4047, 0x4c2d, 0x4923, - 0x6345, 0x6346, 0x4355, 0x4e47, 0x6348, 0x6347, 0x3c6f, 0x634a, - 0x3070, 0x634d, 0x634b, 0x3254, 0x374e, 0x634c, 0x3946, 0x3972, - 0x4a66, 0x634e, 0x4b54, 0x6350, 0x4051, 0x314f, 0x323a, 0x302c, - 0x634f, 0x6351, 0x6352, 0x3e77, 0x6353, 0x334f, 0x6355, 0x376a, - 0x3566, 0x6356, 0x3675, 0x6357, 0x407c, 0x464d, 0x4060, 0x3a75, - 0x6358, 0x4362, 0x416b, 0x635a, 0x635c, 0x6359, 0x635b, 0x3722, - 0x635d, 0x3726, 0x3567, 0x4d52, 0x635f, 0x6360, 0x312e, 0x6363, - 0x3376, 0x6362, 0x6361, 0x6365, 0x635e, 0x6366, 0x4e29, 0x6367, - 0x6368, 0x5474, 0x636a, 0x6369, 0x636b, 0x636c, 0x4e35, 0x636d, - 0x706f, 0x3e4f, 0x636e, 0x636f, 0x3d57, 0x4638, 0x6370, 0x4328, - 0x6371, 0x433c, 0x6372, 0x3625, 0x513f, 0x435d, 0x3c33, 0x3448, - 0x6373, 0x6422, 0x6376, 0x3568, 0x6375, 0x6424, 0x6374, 0x3e50, - 0x6378, 0x6379, 0x452b, 0x637a, 0x335e, 0x3f5a, 0x4964, 0x637c, - 0x4268, 0x6377, 0x637b, 0x637d, 0x3a7b, 0x6426, 0x492e, 0x4826, - 0x4579, 0x365a, 0x6425, 0x6423, 0x4835, 0x637e, 0x435e, 0x457b, - 0x457a, 0x3a76, 0x6438, 0x6428, 0x642a, 0x642d, 0x642e, 0x642b, - 0x642c, 0x6429, 0x6427, 0x6421, 0x4a4f, 0x3255, 0x6435, 0x6432, - 0x6437, 0x6436, 0x4773, 0x4c27, 0x3b3b, 0x6430, 0x6439, 0x6434, - 0x6433, 0x642f, 0x6431, 0x3449, 0x433d, 0x407d, 0x4822, 0x643e, - 0x4824, 0x4061, 0x643b, 0x484f, 0x643f, 0x4a53, 0x435b, 0x643a, - 0x643c, 0x643d, 0x6440, 0x3c44, 0x4646, 0x6445, 0x6444, 0x6441, - 0x4f36, 0x644a, 0x644e, 0x644b, 0x6447, 0x6448, 0x644d, 0x6442, - 0x5255, 0x6449, 0x6443, 0x644c, 0x6452, 0x344a, 0x644f, 0x6450, - 0x6451, 0x6454, 0x6453, 0x4876, 0x6455, 0x4e7c, 0x4a6d, 0x645a, - 0x6457, 0x6456, 0x4052, 0x6459, 0x645b, 0x6458, 0x645f, 0x645c, - 0x645d, 0x6446, 0x645e, 0x6460, 0x6461, 0x4a46, 0x6462, 0x4c62, - 0x364e, 0x3729, 0x6463, 0x4a34, 0x3f68, 0x4c30, 0x6464, 0x4e33, - 0x4774, 0x4146, 0x4734, 0x3d4d, 0x3040, 0x6469, 0x6467, 0x6465, - 0x3421, 0x3e51, 0x646a, 0x6468, 0x6466, 0x646e, 0x646d, 0x646c, - 0x646b, 0x646f, 0x6470, 0x403a, 0x6471, 0x6473, 0x6472, 0x3852, - 0x4138, 0x6475, 0x457c, 0x6474, 0x6476, 0x4a35, 0x416c, 0x3947, - 0x6477, 0x4e48, 0x6479, 0x647a, 0x647b, 0x647c, 0x3b65, 0x647d, - 0x374f, 0x356a, 0x352a, 0x6521, 0x4c73, 0x3948, 0x647e, 0x6524, - 0x4c66, 0x473c, 0x4933, 0x3d63, 0x6523, 0x3c53, 0x3949, 0x3b66, - 0x3569, 0x4a36, 0x6522, 0x4147, 0x4b42, 0x3a77, 0x3b67, 0x445d, - 0x6527, 0x4e5f, 0x3a59, 0x6528, 0x3f42, 0x652a, 0x3e52, 0x3a30, - 0x6529, 0x3d2a, 0x383e, 0x4148, 0x6525, 0x652b, 0x6526, 0x3750, - 0x652e, 0x6532, 0x376b, 0x652d, 0x6536, 0x394a, 0x4d6d, 0x303c, - 0x6533, 0x356b, 0x6530, 0x6531, 0x457d, 0x652f, 0x652c, 0x3328, - 0x4064, 0x3828, 0x6538, 0x6535, 0x6537, 0x6534, 0x3751, 0x4233, - 0x6539, 0x416e, 0x6546, 0x6542, 0x653c, 0x6540, 0x3c7a, 0x305d, - 0x653b, 0x6543, 0x6547, 0x394b, 0x4c56, 0x4456, 0x653d, 0x6545, - 0x653a, 0x433e, 0x653f, 0x303d, 0x4c4a, 0x653e, 0x365b, 0x486c, - 0x416d, 0x4e50, 0x3d6f, 0x656e, 0x6548, 0x407e, 0x6544, 0x6549, - 0x654b, 0x4479, 0x654e, 0x654a, 0x4a54, 0x344b, 0x4c4b, 0x305e, - 0x654d, 0x4e7d, 0x654c, 0x316f, 0x466c, 0x654f, 0x6556, 0x6550, - 0x6557, 0x6553, 0x477b, 0x3c4a, 0x6555, 0x6552, 0x6558, 0x6551, - 0x3d44, 0x4b25, 0x3d4c, 0x6554, 0x6560, 0x655c, 0x655f, 0x655d, - 0x6561, 0x655b, 0x6541, 0x4053, 0x484b, 0x655e, 0x6559, 0x4121, - 0x3752, 0x3d2b, 0x3f25, 0x4136, 0x6564, 0x6566, 0x6567, 0x6563, - 0x6565, 0x655a, 0x6562, 0x656a, 0x6569, 0x4b7a, 0x372b, 0x6568, - 0x656c, 0x656b, 0x656f, 0x6571, 0x3b3c, 0x656d, 0x6572, 0x6573, - 0x6574, 0x657a, 0x453b, 0x6576, 0x6575, 0x6577, 0x6578, 0x6579, - 0x657b, 0x657c, 0x344c, 0x657d, 0x657e, 0x6621, 0x6622, 0x6623, - 0x6624, 0x6625, 0x6626, 0x6628, 0x6627, 0x6629, 0x662a, 0x662b, - 0x662e, 0x662c, 0x662d, 0x3a61, 0x3753, 0x4356, 0x4833, 0x3d70, - 0x474d, 0x486d, 0x662f, 0x586d, 0x6630, 0x6632, 0x4d65, 0x6631, - 0x6634, 0x6633, 0x4d53, 0x6635, 0x487e, 0x6636, 0x6639, 0x6638, - 0x6637, 0x663a, 0x3732, 0x4122, 0x3541, 0x663e, 0x663b, 0x663c, - 0x663f, 0x6640, 0x663d, 0x3129, 0x3227, 0x6642, 0x6643, 0x6644, - 0x4d62, 0x3d2c, 0x6646, 0x6645, 0x3f69, 0x6647, 0x6648, 0x6649, - 0x3465, 0x344d, 0x664a, 0x664b, 0x4b5d, 0x4d63, 0x4d54, 0x4f37, - 0x394d, 0x664e, 0x3c54, 0x664d, 0x664f, 0x3c29, 0x4251, 0x6650, - 0x394c, 0x4c57, 0x6651, 0x6652, 0x6653, 0x6654, 0x6655, 0x3c2a, - 0x4c6d, 0x6657, 0x433f, 0x6656, 0x6659, 0x6658, 0x665a, 0x403b, - 0x665b, 0x665c, 0x4a39, 0x665d, 0x416f, 0x665e, 0x665f, 0x4e7e, - 0x6662, 0x6661, 0x6660, 0x4430, 0x6663, 0x3f26, 0x6664, 0x6665, - 0x4f38, 0x6666, 0x6667, 0x6669, 0x6668, 0x4825, 0x4679, 0x4f3e, - 0x4829, 0x666b, 0x3e53, 0x492a, 0x666c, 0x666a, 0x344e, 0x3854, - 0x3b68, 0x486e, 0x382a, 0x4b43, 0x666f, 0x666d, 0x394e, 0x394f, - 0x3069, 0x3a68, 0x4759, 0x305f, 0x6674, 0x4340, 0x4758, 0x425b, - 0x6676, 0x6672, 0x6675, 0x6670, 0x6673, 0x4b26, 0x3855, 0x307d, - 0x6671, 0x6678, 0x6679, 0x4639, 0x363b, 0x6726, 0x473d, 0x3b69, - 0x363c, 0x4048, 0x4f46, 0x4c2e, 0x6677, 0x4054, 0x3553, 0x667a, - 0x667c, 0x667b, 0x667d, 0x4326, 0x473e, 0x4431, 0x6723, 0x6722, - 0x667e, 0x3f55, 0x4965, 0x6725, 0x6724, 0x3950, 0x4f53, 0x6735, - 0x6729, 0x672a, 0x3c70, 0x6728, 0x3978, 0x6727, 0x672b, 0x4432, - 0x4a22, 0x4123, 0x425c, 0x672f, 0x6730, 0x672c, 0x672d, 0x672e, - 0x3951, 0x6736, 0x6732, 0x4966, 0x4b6c, 0x4928, 0x6731, 0x6734, - 0x6733, 0x4b44, 0x6737, 0x6738, 0x4137, 0x6739, 0x673b, 0x673f, - 0x673c, 0x673a, 0x473f, 0x673d, 0x673e, 0x3232, 0x6745, 0x6740, - 0x6741, 0x6742, 0x4221, 0x6744, 0x6743, 0x6746, 0x6747, 0x6748, - 0x3f43, 0x3269, 0x6749, 0x4e57, 0x3c2b, 0x3d2d, 0x3b6a, 0x4357, - 0x674a, 0x674b, 0x3131, 0x674c, 0x674d, 0x674e, 0x674f, 0x6750, - 0x363d, 0x5a2a, 0x6751, 0x4065, 0x6752, 0x3c4b, 0x6753, 0x5030, - 0x6754, 0x4a5e, 0x345c, 0x4124, 0x3d58, 0x4971, 0x3d2e, 0x6755, - 0x3952, 0x6756, 0x484c, 0x6764, 0x6758, 0x4249, 0x4775, 0x383f, - 0x6757, 0x4125, 0x6759, 0x447a, 0x675b, 0x675a, 0x675d, 0x675c, - 0x675e, 0x6760, 0x675f, 0x344f, 0x6761, 0x6762, 0x6763, 0x3a31, - 0x4e49, 0x6765, 0x3f27, 0x3170, 0x6766, 0x6767, 0x6768, 0x3072, - 0x6769, 0x676a, 0x4967, 0x3c47, 0x676c, 0x3329, 0x3032, 0x676b, - 0x676e, 0x474e, 0x3f44, 0x3256, 0x4b27, 0x375d, 0x365c, 0x676d, - 0x326a, 0x3423, 0x3171, 0x6772, 0x4e6a, 0x425d, 0x4944, 0x677e, - 0x3257, 0x677c, 0x677a, 0x6771, 0x676f, 0x6770, 0x3c63, 0x366c, - 0x4377, 0x4651, 0x3151, 0x6774, 0x6773, 0x6779, 0x6775, 0x6778, - 0x4c50, 0x6777, 0x3258, 0x337d, 0x677b, 0x677d, 0x3754, 0x6823, - 0x682c, 0x682d, 0x302b, 0x6834, 0x3071, 0x682b, 0x682a, 0x6825, - 0x6824, 0x6822, 0x6821, 0x4363, 0x427b, 0x6827, 0x6826, 0x6829, - 0x4170, 0x3755, 0x3141, 0x6828, 0x3953, 0x4171, 0x683a, 0x683b, - 0x3259, 0x322e, 0x6838, 0x682e, 0x6836, 0x683d, 0x6837, 0x6835, - 0x6776, 0x6833, 0x682f, 0x3450, 0x6831, 0x683c, 0x6832, 0x683e, - 0x6830, 0x477c, 0x4d69, 0x6839, 0x684f, 0x6847, 0x3f7b, 0x3546, - 0x365d, 0x6842, 0x325b, 0x3e54, 0x6845, 0x3a5a, 0x4551, 0x684a, - 0x4a6e, 0x6841, 0x325a, 0x3856, 0x4929, 0x684b, 0x683f, 0x6848, - 0x6852, 0x6843, 0x6844, 0x463a, 0x6849, 0x6846, 0x4b28, 0x684c, - 0x3060, 0x6840, 0x684e, 0x684d, 0x476b, 0x6854, 0x685f, 0x337e, - 0x6862, 0x6850, 0x6855, 0x4d6e, 0x685e, 0x4d55, 0x4e2a, 0x4378, - 0x336b, 0x4972, 0x6864, 0x4621, 0x3031, 0x685d, 0x6859, 0x4172, - 0x6853, 0x685b, 0x6860, 0x472c, 0x302a, 0x6858, 0x6861, 0x4978, - 0x685c, 0x6857, 0x3e55, 0x3d2f, 0x3c2c, 0x4c58, 0x4947, 0x6867, - 0x6870, 0x685a, 0x3377, 0x3e78, 0x6865, 0x686a, 0x4173, 0x6866, - 0x686d, 0x435f, 0x686e, 0x4d56, 0x6863, 0x3338, 0x6869, 0x686c, - 0x4c2c, 0x686f, 0x6868, 0x686b, 0x4b29, 0x4f21, 0x6873, 0x687a, - 0x6872, 0x3c43, 0x6851, 0x4a4e, 0x4c22, 0x6879, 0x6878, 0x6874, - 0x6875, 0x3136, 0x6877, 0x6871, 0x4455, 0x6876, 0x307e, 0x4222, - 0x4a43, 0x687b, 0x6921, 0x4859, 0x687e, 0x3e56, 0x3c49, 0x6923, - 0x363e, 0x6924, 0x4979, 0x687d, 0x6856, 0x687c, 0x4f4f, 0x4622, - 0x4973, 0x692b, 0x6931, 0x6932, 0x6925, 0x4776, 0x692f, 0x6927, - 0x6929, 0x6933, 0x6928, 0x692c, 0x3172, 0x4665, 0x692d, 0x6930, - 0x6926, 0x4126, 0x692a, 0x3b27, 0x3f45, 0x3730, 0x4c74, 0x4c79, - 0x3d72, 0x6937, 0x6935, 0x4f4e, 0x6934, 0x4d75, 0x6936, 0x6938, - 0x6939, 0x693c, 0x693a, 0x4623, 0x693b, 0x484d, 0x692e, 0x3d73, - 0x693d, 0x6942, 0x4174, 0x6941, 0x6922, 0x6943, 0x4149, 0x693e, - 0x6940, 0x693f, 0x5d31, 0x5d22, 0x6945, 0x6944, 0x4d76, 0x623c, - 0x6946, 0x6947, 0x6948, 0x3857, 0x3554, 0x694a, 0x515d, 0x3575, - 0x4e3a, 0x3673, 0x694b, 0x694c, 0x436e, 0x694d, 0x467a, 0x303a, - 0x3263, 0x6952, 0x6953, 0x694e, 0x3b3d, 0x694f, 0x4742, 0x6950, - 0x6951, 0x695b, 0x6955, 0x6958, 0x6954, 0x6956, 0x6957, 0x3c58, - 0x6959, 0x4341, 0x3756, 0x3342, 0x695c, 0x333f, 0x6961, 0x695d, - 0x6960, 0x483a, 0x695e, 0x695f, 0x4948, 0x485a, 0x6962, 0x427d, - 0x696c, 0x6968, 0x326b, 0x6966, 0x4b2a, 0x6967, 0x6964, 0x6965, - 0x696a, 0x696d, 0x696b, 0x6969, 0x6963, 0x4358, 0x6974, 0x4c2a, - 0x6972, 0x6973, 0x696e, 0x6970, 0x6971, 0x696f, 0x4066, 0x4f39, - 0x6978, 0x6979, 0x6a21, 0x3f2a, 0x697b, 0x697e, 0x6976, 0x6975, - 0x6a22, 0x325c, 0x697c, 0x6a23, 0x697d, 0x697a, 0x4433, 0x6977, - 0x4768, 0x6a27, 0x4d3b, 0x6a26, 0x6a25, 0x6a2e, 0x6a28, 0x6a30, - 0x4d66, 0x6a33, 0x6a2a, 0x6a2b, 0x6a2f, 0x6a32, 0x6a31, 0x6a29, - 0x6a2c, 0x6a3d, 0x6a36, 0x6a34, 0x6a35, 0x6a3a, 0x6a3b, 0x332a, - 0x3542, 0x6a39, 0x6a24, 0x6a38, 0x6a3c, 0x6a37, 0x6a3e, 0x6a40, - 0x6a3f, 0x6a42, 0x6a41, 0x695a, 0x6a46, 0x6a43, 0x6a44, 0x6a45, - 0x6a47, 0x376c, 0x6a49, 0x6a48, 0x3d30, 0x3954, 0x5e27, 0x6a4a, - 0x3d51, 0x3339, 0x6a4b, 0x3152, 0x3e57, 0x6a4c, 0x3955, 0x6a4d, - 0x3061, 0x493d, 0x6a4e, 0x3f6a, 0x6a55, 0x6a52, 0x436f, 0x6a53, - 0x6a50, 0x365e, 0x6a4f, 0x6a56, 0x3736, 0x425e, 0x6a5c, 0x6a58, - 0x4235, 0x6a57, 0x6a5a, 0x6a51, 0x6a5b, 0x6a5d, 0x486f, 0x6a59, - 0x6a5e, 0x6a60, 0x3853, 0x6a54, 0x3041, 0x6a5f, 0x3a5b, 0x4e76, - 0x6a61, 0x6a62, 0x4175, 0x4e22, 0x6a63, 0x4d35, 0x6a64, 0x6a65, - 0x4a64, 0x6a66, 0x3a40, 0x4e23, 0x6a6b, 0x6a6c, 0x3e58, 0x6a6a, - 0x4d67, 0x6a67, 0x6a69, 0x403d, 0x3f7e, 0x6a68, 0x6a6d, 0x4a23, - 0x6a6f, 0x6a6e, 0x336c, 0x4b2b, 0x6a70, 0x6a7c, 0x6a72, 0x6a73, - 0x6a74, 0x6a75, 0x6a79, 0x6a7a, 0x6a78, 0x6a76, 0x6a71, 0x6a77, - 0x6a7b, 0x7037, 0x3228, 0x6a7e, 0x365f, 0x6a7d, 0x6b22, 0x6b21, - 0x6b24, 0x6b23, 0x6b25, 0x3d31, 0x6b26, 0x6b27, 0x6b28, 0x403e, - 0x4d57, 0x6b29, 0x4a24, 0x4746, 0x6b2a, 0x6b2b, 0x382b, 0x352c, - 0x6b2c, 0x3b6b, 0x4741, 0x6b2d, 0x3350, 0x6b2e, 0x6b30, 0x4d77, - 0x6b2f, 0x3f46, 0x6b31, 0x6b32, 0x6b33, 0x3451, 0x6b34, 0x6b35, - 0x6b36, 0x6b37, 0x3351, 0x6b38, 0x6b39, 0x6b3a, 0x3272, 0x3f28, - 0x6b3b, 0x6b3c, 0x6b3d, 0x3840, 0x447b, 0x6b3e, 0x3757, 0x3f56, - 0x6b41, 0x4624, 0x6b40, 0x3731, 0x6b3f, 0x4277, 0x352d, 0x6b42, - 0x6b43, 0x3e59, 0x376d, 0x6b44, 0x4b2c, 0x405f, 0x3576, 0x4c75, - 0x414a, 0x6b45, 0x3f47, 0x4370, 0x3e5a, 0x6b46, 0x6b49, 0x6b4a, - 0x3a3e, 0x4242, 0x6b48, 0x3e5b, 0x493e, 0x6b47, 0x3b6c, 0x3153, - 0x6b4e, 0x3758, 0x3b6e, 0x3b6d, 0x4f4d, 0x6b4d, 0x6b4c, 0x4127, - 0x354d, 0x4f43, 0x333a, 0x3e5c, 0x6b4b, 0x6b50, 0x6b51, 0x6b4f, - 0x3858, 0x4d40, 0x3b6f, 0x4727, 0x6b54, 0x4040, 0x4342, 0x4d36, - 0x6b57, 0x386c, 0x403f, 0x6b53, 0x6b58, 0x386d, 0x6b55, 0x6b56, - 0x6b52, 0x4062, 0x4649, 0x432f, 0x325d, 0x4870, 0x3543, 0x4434, - 0x6b5b, 0x6b59, 0x434c, 0x4041, 0x3452, 0x6b5a, 0x3f5b, 0x4e4a, - 0x4f40, 0x6b5c, 0x6b67, 0x4435, 0x6b66, 0x6b63, 0x6b6b, 0x6b64, - 0x6b60, 0x447c, 0x6b5f, 0x6b5d, 0x4d21, 0x3b70, 0x6b61, 0x6b5e, - 0x6b65, 0x3d74, 0x3841, 0x427a, 0x4b45, 0x315a, 0x3062, 0x4625, - 0x6b69, 0x6b68, 0x4666, 0x6b6d, 0x6b62, 0x6b6c, 0x6b6e, 0x382c, - 0x6b6a, 0x3956, 0x3c55, 0x6b6f, 0x4d58, 0x6b72, 0x6b75, 0x6b73, - 0x4935, 0x6b70, 0x3660, 0x6b74, 0x6b76, 0x6b7a, 0x6b77, 0x6b79, - 0x6b78, 0x6b7b, 0x3c31, 0x6b7d, 0x6b7c, 0x4968, 0x6c21, 0x3759, - 0x6b7e, 0x6c22, 0x6c23, 0x3544, 0x6641, 0x3e79, 0x6c24, 0x386e, - 0x6c25, 0x6c26, 0x3b3e, 0x5a4e, 0x6c27, 0x6c28, 0x3d32, 0x6c29, - 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x432b, 0x6c2e, 0x6c30, 0x6c2f, - 0x4626, 0x6c31, 0x4b2d, 0x6c32, 0x6c33, 0x6c34, 0x6c35, 0x465a, - 0x3e5d, 0x6c36, 0x396b, 0x502e, 0x6c37, 0x6c38, 0x493f, 0x6c39, - 0x6c41, 0x6c3a, 0x6c3c, 0x6c3b, 0x6c3d, 0x4b46, 0x6c3e, 0x6c3f, - 0x6c40, 0x6c42, 0x332d, 0x4467, 0x4969, 0x3a62, 0x3957, 0x494f, - 0x325f, 0x484e, 0x6c45, 0x3453, 0x4055, 0x6c44, 0x6c49, 0x4379, - 0x4c63, 0x6c47, 0x6c48, 0x352e, 0x6c4a, 0x4763, 0x425f, 0x4871, - 0x453d, 0x6c46, 0x4b47, 0x326c, 0x6c4c, 0x4f28, 0x4442, 0x4f45, - 0x3b71, 0x6c4b, 0x4231, 0x6c5c, 0x4128, 0x4678, 0x4950, 0x6c4f, - 0x3b3f, 0x3b72, 0x3e5e, 0x4765, 0x382d, 0x6c4e, 0x6c4d, 0x496a, - 0x3c41, 0x4552, 0x6c51, 0x6c52, 0x3958, 0x6c50, 0x6c53, 0x6c54, - 0x6c56, 0x4223, 0x6c55, 0x3466, 0x6c58, 0x6c57, 0x6c59, 0x6c5b, - 0x6c5d, 0x6c5e, 0x4056, 0x3c4f, 0x6c5f, 0x3352, 0x6c60, 0x4176, - 0x6c61, 0x6c62, 0x496b, 0x352f, 0x6c63, 0x4436, 0x315b, 0x6c64, - 0x3c71, 0x3f76, 0x422d, 0x6c67, 0x6c66, 0x6c65, 0x6c6d, 0x6c6b, - 0x6c68, 0x6c6a, 0x6c69, 0x6c6c, 0x3577, 0x6c70, 0x4057, 0x6c71, - 0x3859, 0x6c6e, 0x6c6f, 0x4f29, 0x4437, 0x4129, 0x6c72, 0x6c75, - 0x6c73, 0x6c74, 0x4d59, 0x4627, 0x6c78, 0x6c76, 0x6c77, 0x6c79, - 0x6d29, 0x6c7c, 0x6c7d, 0x6c7b, 0x6c7a, 0x447d, 0x6d21, 0x6d25, - 0x6d22, 0x6c7e, 0x6d23, 0x6d24, 0x6d2b, 0x6d26, 0x4058, 0x6d28, - 0x6d2a, 0x6d27, 0x6d2d, 0x3d33, 0x6d2c, 0x6d2e, 0x6d2f, 0x6d32, - 0x6d31, 0x6d30, 0x6d34, 0x6d33, 0x4c76, 0x6d36, 0x6d35, 0x6d37, - 0x6d38, 0x6d3a, 0x6d39, 0x3f48, 0x6d3b, 0x366d, 0x6d3c, 0x6d3e, - 0x6d3f, 0x6d40, 0x6d3d, 0x6d41, 0x3c56, 0x6d42, 0x3530, 0x3733, - 0x382e, 0x6d43, 0x4670, 0x453e, 0x6d44, 0x6d47, 0x3c34, 0x6d46, - 0x6d45, 0x375a, 0x6d48, 0x3353, 0x6d4a, 0x3a5c, 0x6d49, 0x6d52, - 0x6d4c, 0x6d4e, 0x4a65, 0x6d4b, 0x6d4d, 0x6d51, 0x6d4f, 0x3531, - 0x6d50, 0x6d53, 0x475a, 0x4e58, 0x3d34, 0x6d54, 0x4d22, 0x6d56, - 0x6d55, 0x6d59, 0x4d41, 0x6d58, 0x336d, 0x6d57, 0x6d5c, 0x6d5b, - 0x6d5a, 0x4532, 0x6d5d, 0x6d5e, 0x6d5f, 0x396c, 0x3725, 0x6d60, - 0x6d61, 0x6d62, 0x3f49, 0x6d63, 0x3c2d, 0x6d64, 0x6d65, 0x5221, - 0x517e, 0x6d66, 0x6570, 0x6d67, 0x4324, 0x3f2b, 0x4740, 0x6d68, - 0x4a55, 0x4454, 0x397e, 0x4329, 0x312a, 0x4b78, 0x3f57, 0x375e, - 0x3661, 0x4a56, 0x6d69, 0x6d6b, 0x6d6a, 0x3260, 0x4676, 0x6d6c, - 0x4777, 0x4533, 0x6d6d, 0x3d52, 0x6d6f, 0x4c42, 0x6d7e, 0x6d71, - 0x6d72, 0x4449, 0x4260, 0x4177, 0x4628, 0x6d70, 0x3555, 0x6d79, - 0x6d76, 0x6e25, 0x4629, 0x4360, 0x6d73, 0x447e, 0x4553, 0x6d74, - 0x6d78, 0x3f60, 0x4767, 0x444c, 0x4042, 0x6d77, 0x422e, 0x4224, - 0x6d75, 0x3029, 0x4f22, 0x6d7a, 0x4261, 0x3d35, 0x3f4a, 0x6d7c, - 0x6d7b, 0x306f, 0x6d7d, 0x492f, 0x6e27, 0x465b, 0x3f6b, 0x4359, - 0x3678, 0x6e26, 0x4d37, 0x313f, 0x4a57, 0x3261, 0x6e21, 0x6e22, - 0x6e23, 0x6e24, 0x463b, 0x4323, 0x3063, 0x6e28, 0x6e29, 0x7423, - 0x423d, 0x6e2a, 0x3173, 0x414c, 0x382f, 0x4d5a, 0x6e2b, 0x452c, - 0x4178, 0x3c57, 0x6e2c, 0x6e2f, 0x3d65, 0x6e2d, 0x412b, 0x412a, - 0x3064, 0x4e4b, 0x6e31, 0x4872, 0x6e33, 0x6e32, 0x6e30, 0x6364, - 0x3454, 0x6d6e, 0x6e35, 0x6e34, 0x6e36, 0x4d38, 0x4661, 0x4b2e, - 0x6e37, 0x3c59, 0x6e38, 0x6e39, 0x6e3a, 0x4521, 0x306a, 0x3959, - 0x4f3a, 0x6e3e, 0x3734, 0x6e3b, 0x6e3c, 0x4974, 0x3354, 0x4d39, - 0x363f, 0x4554, 0x6e3f, 0x6e40, 0x6e41, 0x4522, 0x6e43, 0x6e42, - 0x4653, 0x6e44, 0x3d36, 0x3c60, 0x475b, 0x4371, 0x3c72, 0x3f6c, - 0x6e45, 0x6e46, 0x3f5d, 0x6e47, 0x6e48, 0x6e49, 0x4d6f, 0x3d37, - 0x6e4b, 0x6e4a, 0x395a, 0x3973, 0x3b40, 0x6e4e, 0x3d66, 0x6e4d, - 0x6e4c, 0x4269, 0x386f, 0x4043, 0x4830, 0x3d39, 0x6e4f, 0x3e5f, - 0x6e52, 0x6e50, 0x6e51, 0x6e54, 0x6e53, 0x3e7a, 0x6e55, 0x6e56, - 0x6e57, 0x4850, 0x3a53, 0x3c61, 0x6e58, 0x6e59, 0x4e24, 0x3d45, - 0x4c6e, 0x4e4c, 0x6e5a, 0x3662, 0x6e5b, 0x4523, 0x6e5e, 0x3378, - 0x3f4b, 0x6e5c, 0x6e5d, 0x4460, 0x4b55, 0x367c, 0x6e60, 0x6e61, - 0x6e5f, 0x6e63, 0x465f, 0x3343, 0x6e67, 0x6e64, 0x6e66, 0x6e62, - 0x6f4f, 0x6e65, 0x4e6b, 0x385a, 0x6e6f, 0x4534, 0x6e6a, 0x6e6d, - 0x6e6b, 0x6e70, 0x6e71, 0x6e69, 0x6e76, 0x3174, 0x6e68, 0x482d, - 0x6e6c, 0x3e60, 0x395b, 0x4b48, 0x3664, 0x3d46, 0x463c, 0x412d, - 0x6e74, 0x6e6e, 0x6e73, 0x4c43, 0x4438, 0x6e75, 0x6e72, 0x412c, - 0x6e79, 0x6e78, 0x6e77, 0x4b2f, 0x3d7b, 0x6e7a, 0x4a5f, 0x3154, - 0x4946, 0x4372, 0x3578, 0x6e7c, 0x395d, 0x3b2c, 0x6e7b, 0x3f6d, - 0x3f6e, 0x6f21, 0x6f23, 0x3e7b, 0x6f22, 0x6f24, 0x3653, 0x4945, - 0x3c62, 0x4f23, 0x6e7e, 0x3a78, 0x4f3f, 0x6f26, 0x6f25, 0x6f27, - 0x6e7d, 0x4669, 0x4555, 0x4457, 0x6f2c, 0x4343, 0x6f28, 0x6f29, - 0x372d, 0x6f2b, 0x3830, 0x6f2a, 0x3e61, 0x3379, 0x6f30, 0x3a3f, - 0x4179, 0x444a, 0x333b, 0x6f2e, 0x6f2f, 0x4443, 0x6f2d, 0x6f31, - 0x6f37, 0x6f3a, 0x6f39, 0x452d, 0x6f32, 0x6f33, 0x6f36, 0x6f38, - 0x3640, 0x6f3b, 0x6f35, 0x6f34, 0x6f3f, 0x6f40, 0x6f41, 0x6f3e, - 0x6f3d, 0x3e62, 0x462a, 0x6f3c, 0x6f45, 0x6f43, 0x6f44, 0x6f42, - 0x4278, 0x6f46, 0x6f47, 0x6f49, 0x3455, 0x6f48, 0x4c7a, 0x6f54, - 0x6f4a, 0x6f4d, 0x6f4b, 0x6f4c, 0x6f4e, 0x6f50, 0x6f51, 0x6f52, - 0x6f55, 0x6f53, 0x6f56, 0x6f58, 0x6f57, 0x4439, 0x4c67, 0x6f59, - 0x412e, 0x6f5a, 0x4a44, 0x6f5b, 0x332b, 0x313c, 0x3457, 0x3456, - 0x6f5c, 0x6f5d, 0x6f5e, 0x6f5f, 0x6f60, 0x3458, 0x3355, 0x395e, - 0x4836, 0x6f62, 0x6f61, 0x6f63, 0x315c, 0x6f66, 0x6f65, 0x6f64, - 0x6f67, 0x6f6a, 0x3047, 0x6f68, 0x6f6c, 0x6f6b, 0x6f6e, 0x6f6d, - 0x6f6f, 0x462e, 0x6f70, 0x6f71, 0x6f73, 0x6f72, 0x496c, 0x6f74, - 0x6f75, 0x3a65, 0x6f76, 0x6f77, 0x4b49, 0x414b, 0x3024, 0x424b, - 0x6f78, 0x496d, 0x6f7b, 0x6f79, 0x395f, 0x6f7a, 0x3842, 0x4a45, - 0x6f7d, 0x7021, 0x6f7e, 0x7022, 0x3121, 0x3f58, 0x3d7c, 0x3459, - 0x7023, 0x4766, 0x7025, 0x3122, 0x7024, 0x4444, 0x4e4d, 0x462b, - 0x6f7c, 0x4e26, 0x3831, 0x4d5b, 0x3679, 0x4e34, 0x3728, 0x4262, - 0x6721, 0x7026, 0x332c, 0x3f6f, 0x3356, 0x7028, 0x7029, 0x7027, - 0x3764, 0x3a5d, 0x3e63, 0x3123, 0x4e59, 0x702b, 0x6e2e, 0x702a, - 0x702e, 0x702c, 0x702d, 0x702f, 0x7030, 0x4e6c, 0x7031, 0x7032, - 0x4049, 0x483b, 0x3f7d, 0x3467, 0x4d3a, 0x326d, 0x3d38, 0x385b, - 0x7035, 0x7034, 0x3b73, 0x7036, 0x7033, 0x3b28, 0x703a, 0x6a2d, - 0x5256, 0x3f77, 0x7038, 0x4e25, 0x4671, 0x312b, 0x4063, 0x3c36, - 0x4a37, 0x3140, 0x4e6d, 0x4d6b, 0x703b, 0x4545, 0x3c7b, 0x703c, - 0x703d, 0x3f4c, 0x703e, 0x4e6e, 0x7039, 0x7040, 0x7042, 0x7041, - 0x703f, 0x7043, 0x7044, 0x417a, 0x3262, 0x7045, 0x4c38, 0x7046, - 0x7047, 0x4f2a, 0x5b31, 0x7048, 0x7049, 0x704a, 0x704e, 0x704b, - 0x704c, 0x704d, 0x704f, 0x4044, 0x4c77, 0x4045, 0x7050, 0x4873, - 0x7051, 0x7353, 0x4c4c, 0x7052, 0x7053, 0x7054, 0x3357, 0x7056, - 0x3f59, 0x7057, 0x3724, 0x7058, 0x705c, 0x705a, 0x705b, 0x3373, - 0x7059, 0x705d, 0x705e, 0x3048, 0x705f, 0x7060, 0x3e64, 0x7061, - 0x3547, 0x7064, 0x7063, 0x7062, 0x6b71, 0x4a5c, 0x7065, 0x7066, - 0x7067, 0x7068, 0x7069, 0x706a, 0x345a, 0x706b, 0x706c, 0x4723, - 0x706e, 0x323b, 0x7071, 0x7070, 0x3124, 0x3641, 0x4a47, 0x443a, - 0x3a22, 0x3960, 0x3d67, 0x3f5c, 0x7073, 0x7072, 0x4d42, 0x3468, - 0x4852, 0x465c, 0x3f7c, 0x4e4e, 0x375b, 0x7076, 0x7075, 0x4b4b, - 0x462c, 0x3150, 0x7077, 0x7074, 0x4951, 0x4d6a, 0x7078, 0x7079, - 0x707b, 0x426a, 0x335b, 0x335c, 0x707a, 0x3469, 0x3832, 0x346a, - 0x453f, 0x4e60, 0x385c, 0x707c, 0x707d, 0x707e, 0x7121, 0x7123, - 0x7122, 0x4977, 0x7124, 0x7125, 0x7126, 0x7127, 0x7129, 0x7128, - 0x712a, 0x4874, 0x664c, 0x3f29, 0x3532, 0x712b, 0x712c, 0x522c, - 0x5d3b, 0x4853, 0x307b, 0x303b, 0x3b74, 0x4b30, 0x3e7e, 0x712d, - 0x4c5f, 0x712e, 0x4d5c, 0x3142, 0x3b41, 0x712f, 0x326e, 0x7130, - 0x7131, 0x7133, 0x7134, 0x7136, 0x7132, 0x7135, 0x345b, 0x7137, - 0x7138, 0x7139, 0x713a, 0x713b, 0x713d, 0x713c, 0x713f, 0x7142, - 0x713e, 0x7140, 0x7141, 0x7143, 0x3642, 0x3c73, 0x7144, 0x7145, - 0x3961, 0x7146, 0x333e, 0x474f, 0x7147, 0x7148, 0x435a, 0x466b, - 0x7149, 0x477d, 0x424c, 0x3158, 0x366e, 0x366f, 0x4373, 0x714e, - 0x3670, 0x326f, 0x714d, 0x714b, 0x714c, 0x714a, 0x7158, 0x714f, - 0x7150, 0x7151, 0x7152, 0x7154, 0x7153, 0x3d59, 0x7155, 0x7157, - 0x3533, 0x7156, 0x417b, 0x3833, 0x7159, 0x424d, 0x715a, 0x462d, - 0x715b, 0x7160, 0x715e, 0x715d, 0x715f, 0x715c, 0x7162, 0x7161, - 0x7164, 0x3643, 0x7163, 0x7165, 0x7166, 0x7168, 0x7167, 0x7169, - 0x716b, 0x716a, 0x397c, 0x716c, 0x716d, 0x333c, 0x716e, 0x716f, - 0x3f71, 0x7170, 0x7171, 0x7172, 0x7173, 0x3962, 0x7174, 0x7175, - 0x7176, 0x7177, 0x7178, 0x4831, 0x717a, 0x4926, 0x717b, 0x7179, - 0x717d, 0x717c, 0x717e, 0x7221, 0x7222, 0x7223, 0x7224, 0x7225, - 0x7226, 0x7227, 0x7228, 0x7229, 0x722a, 0x722b, 0x722c, 0x722d, - 0x722e, 0x5d35, 0x722f, 0x6478, 0x3534, 0x3321, 0x3a32, 0x7231, - 0x7230, 0x4c25, 0x7233, 0x7234, 0x7232, 0x7235, 0x4b62, 0x7236, - 0x357b, 0x4f25, 0x7237, 0x7239, 0x303e, 0x723a, 0x4a2b, 0x7238, - 0x723b, 0x723c, 0x723d, 0x723e, 0x723f, 0x4b6e, 0x3b2d, 0x3a7a, - 0x412f, 0x7240, 0x7243, 0x7241, 0x7244, 0x3871, 0x7242, 0x7245, - 0x7246, 0x7247, 0x724b, 0x3b2a, 0x4264, 0x724c, 0x7249, 0x7248, - 0x724a, 0x375f, 0x7250, 0x724f, 0x724e, 0x3033, 0x725a, 0x7256, - 0x7257, 0x7253, 0x7259, 0x7255, 0x3362, 0x4f4c, 0x7258, 0x7254, - 0x7252, 0x7251, 0x725c, 0x725f, 0x725e, 0x725d, 0x4949, 0x725b, - 0x3073, 0x7260, 0x7262, 0x336f, 0x724d, 0x3137, 0x7264, 0x7263, - 0x7261, 0x432d, 0x4b70, 0x4e5a, 0x7265, 0x7266, 0x7267, 0x7268, - 0x7269, 0x443b, 0x726a, 0x4837, 0x726f, 0x726b, 0x726c, 0x4b31, - 0x4c44, 0x4650, 0x7270, 0x7271, 0x463e, 0x726e, 0x726d, 0x322a, - 0x7279, 0x7278, 0x3175, 0x7276, 0x7275, 0x7273, 0x337b, 0x7272, - 0x3c32, 0x3229, 0x3963, 0x727c, 0x727b, 0x727a, 0x7277, 0x727d, - 0x727e, 0x7325, 0x7324, 0x7326, 0x312d, 0x7321, 0x7322, 0x3974, - 0x4c39, 0x7323, 0x4b32, 0x732b, 0x7327, 0x732c, 0x7329, 0x7328, - 0x375c, 0x732d, 0x732e, 0x732f, 0x732a, 0x7274, 0x7330, 0x4461, - 0x7334, 0x7335, 0x7333, 0x7332, 0x7338, 0x7331, 0x7336, 0x7337, - 0x733a, 0x7339, 0x733c, 0x733d, 0x733e, 0x4f49, 0x733b, 0x426b, - 0x3a6d, 0x733f, 0x7340, 0x7341, 0x7342, 0x7343, 0x3834, 0x7344, - 0x7345, 0x3c2f, 0x7346, 0x7347, 0x7348, 0x7349, 0x734c, 0x734a, - 0x4f3c, 0x734b, 0x4e6f, 0x734d, 0x4e5b, 0x734e, 0x477e, 0x734f, - 0x7351, 0x7352, 0x7350, 0x396d, 0x4c4d, 0x4b63, 0x5677, 0x5d60, - 0x4b7b, 0x322b, 0x7354, 0x3550, 0x7355, 0x7356, 0x7357, 0x3975, - 0x7358, 0x6054, 0x4c5b, 0x4263, 0x7359, 0x735b, 0x735a, 0x735c, - 0x735d, 0x735e, 0x735f, 0x7360, 0x7361, 0x7362, 0x7363, 0x7364, - 0x7365, 0x7366, 0x7367, 0x7368, 0x4524, 0x385d, 0x736a, 0x414d, - 0x736b, 0x736c, 0x4921, 0x736d, 0x736e, 0x6337, 0x6c5a, 0x706d, - 0x736f, 0x7370, 0x7372, 0x7373, 0x7374, 0x4e70, 0x7371, 0x7375, - 0x7376, 0x7378, 0x7377, 0x737a, 0x737b, 0x7379, 0x4e36, 0x737c, - 0x737d, 0x6354, 0x737e, 0x212a, 0x2174, 0x2170, 0x2173, 0x2175, - 0x214a, 0x214b, 0x2176, 0x215c, 0x2124, 0x2125, 0x213f, 0x2330, - 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, - 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, 0x2177, - 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, - 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, - 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, - 0x2359, 0x235a, 0x214e, 0x2140, 0x214f, 0x2130, 0x2132, 0x212e, - 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, - 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370, - 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, - 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2131, 0x216f, -}; - -static const Summary16 jisx0208_uni2indx_page00[16] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x118c }, { 5, 0x0053 }, - { 9, 0x0000 }, { 9, 0x0080 }, { 10, 0x0000 }, { 10, 0x0080 }, -}; -static const Summary16 jisx0208_uni2indx_page03[22] = { - /* 0x0300 */ - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, { 11, 0x0000 }, - { 11, 0x0000 }, { 11, 0xfffe }, { 26, 0x03fb }, { 35, 0xfffe }, - { 50, 0x03fb }, { 59, 0x0000 }, { 59, 0x0000 }, { 59, 0x0000 }, - /* 0x0400 */ - { 59, 0x0002 }, { 60, 0xffff }, { 76, 0xffff }, { 92, 0xffff }, - { 108, 0xffff }, { 124, 0x0002 }, -}; -static const Summary16 jisx0208_uni2indx_page20[50] = { - /* 0x2000 */ - { 125, 0x0000 }, { 125, 0x3361 }, { 132, 0x0063 }, { 136, 0x080d }, - { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, - { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, - { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, { 140, 0x0000 }, - /* 0x2100 */ - { 140, 0x0008 }, { 141, 0x0000 }, { 141, 0x0800 }, { 142, 0x0000 }, - { 142, 0x0000 }, { 142, 0x0000 }, { 142, 0x0000 }, { 142, 0x0000 }, - { 142, 0x0000 }, { 142, 0x000f }, { 146, 0x0000 }, { 146, 0x0000 }, - { 146, 0x0000 }, { 146, 0x0014 }, { 148, 0x0000 }, { 148, 0x0000 }, - /* 0x2200 */ - { 148, 0x098d }, { 154, 0x6404 }, { 158, 0x1f81 }, { 165, 0x2030 }, - { 168, 0x0000 }, { 168, 0x0004 }, { 169, 0x0cc3 }, { 175, 0x0000 }, - { 175, 0x00cc }, { 179, 0x0000 }, { 179, 0x0020 }, { 180, 0x0000 }, - { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, { 180, 0x0000 }, - /* 0x2300 */ - { 180, 0x0000 }, { 180, 0x0004 }, -}; -static const Summary16 jisx0208_uni2indx_page25[23] = { - /* 0x2500 */ - { 181, 0x900f }, { 187, 0x3999 }, { 195, 0x9939 }, { 203, 0x9999 }, - { 211, 0x0804 }, { 213, 0x0000 }, { 213, 0x0000 }, { 213, 0x0000 }, - { 213, 0x0000 }, { 213, 0x0000 }, { 213, 0x0003 }, { 215, 0x300c }, - { 219, 0xc8c0 }, { 224, 0x0000 }, { 224, 0x8000 }, { 225, 0x0000 }, - /* 0x2600 */ - { 225, 0x0060 }, { 227, 0x0000 }, { 227, 0x0000 }, { 227, 0x0000 }, - { 227, 0x0005 }, { 229, 0x0000 }, { 229, 0xa400 }, -}; -static const Summary16 jisx0208_uni2indx_page30[16] = { - /* 0x3000 */ - { 232, 0xffef }, { 247, 0x103f }, { 254, 0x0000 }, { 254, 0x0000 }, - { 254, 0xfffe }, { 269, 0xffff }, { 285, 0xffff }, { 301, 0xffff }, - { 317, 0xffff }, { 333, 0x780f }, { 341, 0xfffe }, { 356, 0xffff }, - { 372, 0xffff }, { 388, 0xffff }, { 404, 0xffff }, { 420, 0x787f }, -}; -static const Summary16 jisx0208_uni2indx_page4e[1307] = { - /* 0x4e00 */ - { 431, 0x6f8b }, { 441, 0x43f3 }, { 450, 0x2442 }, { 454, 0x9b46 }, - { 462, 0xe82c }, { 469, 0xe3e0 }, { 477, 0x0004 }, { 478, 0x400a }, - { 481, 0x5f65 }, { 491, 0xdb36 }, { 501, 0x7977 }, { 512, 0x0449 }, - { 516, 0xecd7 }, { 527, 0xe3f0 }, { 536, 0x6038 }, { 541, 0x08c5 }, - /* 0x4f00 */ - { 546, 0xe602 }, { 552, 0x3403 }, { 557, 0x8000 }, { 558, 0x3551 }, - { 565, 0xe0c8 }, { 571, 0x7eab }, { 582, 0x8200 }, { 584, 0x9869 }, - { 591, 0xa948 }, { 597, 0x2942 }, { 602, 0xe803 }, { 608, 0x8060 }, - { 611, 0x441c }, { 616, 0xad93 }, { 625, 0xc03a }, { 631, 0x4568 }, - /* 0x5000 */ - { 637, 0xaa60 }, { 643, 0x8656 }, { 650, 0x3f7a }, { 661, 0x0240 }, - { 663, 0x8388 }, { 668, 0x1461 }, { 673, 0x1020 }, { 675, 0x2174 }, - { 681, 0x2021 }, { 684, 0x0702 }, { 688, 0x3000 }, { 690, 0x40bc }, - { 696, 0xa624 }, { 702, 0x4462 }, { 707, 0x60a8 }, { 712, 0x0a20 }, - /* 0x5100 */ - { 715, 0x0217 }, { 720, 0x8574 }, { 727, 0x0402 }, { 729, 0x9c84 }, - { 735, 0x7bfb }, { 748, 0x1415 }, { 753, 0x7f24 }, { 762, 0x11e2 }, - { 768, 0xb665 }, { 777, 0x02ef }, { 785, 0x1f75 }, { 795, 0x20ff }, - { 804, 0x3a70 }, { 811, 0x3840 }, { 815, 0x26c3 }, { 822, 0x6763 }, - /* 0x5200 */ - { 831, 0x4dd9 }, { 840, 0x2092 }, { 844, 0x46b0 }, { 850, 0x0fc9 }, - { 858, 0xbc98 }, { 866, 0x4850 }, { 870, 0x8638 }, { 876, 0xa03f }, - { 884, 0x2388 }, { 889, 0x8816 }, { 894, 0x3e09 }, { 901, 0x5232 }, - { 907, 0x22aa }, { 913, 0xe3a4 }, { 921, 0x00dd }, { 927, 0xc72c }, - /* 0x5300 */ - { 935, 0xa166 }, { 942, 0x26e1 }, { 949, 0x840b }, { 954, 0x8f0a }, - { 961, 0x27eb }, { 971, 0x559e }, { 980, 0xc241 }, { 985, 0x89bb }, - { 994, 0x0014 }, { 996, 0x8540 }, { 1000, 0x6361 }, { 1007, 0x0849 }, - { 1011, 0x7f0c }, { 1020, 0x8ad0 }, { 1026, 0xff3e }, { 1039, 0x05cf }, - /* 0x5400 */ - { 1047, 0xff1a }, { 1058, 0xa803 }, { 1063, 0x7a41 }, { 1070, 0x7b40 }, - { 1077, 0x4745 }, { 1084, 0x8002 }, { 1086, 0x0500 }, { 1088, 0x38eb }, - { 1097, 0xd851 }, { 1104, 0x0005 }, { 1106, 0x9934 }, { 1113, 0x710c }, - { 1119, 0x0397 }, { 1126, 0x0100 }, { 1127, 0x6366 }, { 1135, 0x2404 }, - /* 0x5500 */ - { 1138, 0x80d0 }, { 1142, 0x0051 }, { 1145, 0xc000 }, { 1147, 0x430a }, - { 1152, 0x9071 }, { 1158, 0x30c8 }, { 1163, 0x0008 }, { 1164, 0x5800 }, - { 1167, 0x0e99 }, { 1174, 0xf700 }, { 1181, 0x5f80 }, { 1188, 0x0041 }, - { 1190, 0x00b0 }, { 1193, 0x9410 }, { 1197, 0x0018 }, { 1199, 0x6280 }, - /* 0x5600 */ - { 1203, 0x0240 }, { 1205, 0x09d0 }, { 1210, 0x8200 }, { 1212, 0x0156 }, - { 1217, 0x5004 }, { 1220, 0x0801 }, { 1222, 0x1d10 }, { 1227, 0x0510 }, - { 1230, 0x84c1 }, { 1235, 0x0010 }, { 1236, 0x4025 }, { 1240, 0x1050 }, - { 1243, 0x410f }, { 1249, 0x4d8a }, { 1256, 0x4009 }, { 1259, 0xa60d }, - /* 0x5700 */ - { 1266, 0xab19 }, { 1274, 0x914c }, { 1280, 0x21c0 }, { 1284, 0x0981 }, - { 1288, 0xc485 }, { 1294, 0x0003 }, { 1296, 0x0652 }, { 1301, 0x8000 }, - { 1302, 0x0b04 }, { 1306, 0x0008 }, { 1307, 0x041d }, { 1312, 0x0009 }, - { 1314, 0x4849 }, { 1319, 0x905c }, { 1325, 0x0009 }, { 1327, 0x1690 }, - /* 0x5800 */ - { 1332, 0x0c65 }, { 1338, 0x2220 }, { 1341, 0x8412 }, { 1345, 0x2433 }, - { 1351, 0x0c03 }, { 1355, 0x4796 }, { 1363, 0x0a04 }, { 1366, 0x4225 }, - { 1371, 0x0028 }, { 1373, 0x9088 }, { 1377, 0x4900 }, { 1380, 0x4f08 }, - { 1386, 0x14a2 }, { 1391, 0xd3aa }, { 1400, 0xd830 }, { 1406, 0x3e87 }, - /* 0x5900 */ - { 1415, 0x8604 }, { 1419, 0x1f61 }, { 1427, 0x7ea4 }, { 1436, 0x4186 }, - { 1441, 0xc390 }, { 1447, 0x05b3 }, { 1454, 0x57a5 }, { 1463, 0x2118 }, - { 1467, 0x241e }, { 1473, 0x2a48 }, { 1478, 0x1128 }, { 1482, 0x4a04 }, - { 1486, 0x0a40 }, { 1489, 0x161b }, { 1496, 0x0d60 }, { 1501, 0x8840 }, - /* 0x5a00 */ - { 1504, 0x020a }, { 1507, 0x9502 }, { 1512, 0x8221 }, { 1516, 0x1060 }, - { 1519, 0x0243 }, { 1523, 0x0400 }, { 1524, 0x1444 }, { 1528, 0x8000 }, - { 1529, 0x0000 }, { 1529, 0x0c04 }, { 1532, 0x0000 }, { 1532, 0x7000 }, - { 1535, 0x1a06 }, { 1540, 0x00c1 }, { 1543, 0x024a }, { 1547, 0x0c00 }, - /* 0x5b00 */ - { 1549, 0x1a00 }, { 1552, 0x0040 }, { 1553, 0x1404 }, { 1556, 0x4045 }, - { 1560, 0x0029 }, { 1563, 0xbdb3 }, { 1574, 0x0a78 }, { 1580, 0x052b }, - { 1586, 0xbba9 }, { 1596, 0xbfa0 }, { 1605, 0x407c }, { 1611, 0x8379 }, - { 1619, 0x12fc }, { 1627, 0xe81d }, { 1635, 0x4bf6 }, { 1645, 0xc569 }, - /* 0x5c00 */ - { 1653, 0xeff6 }, { 1666, 0x044a }, { 1670, 0x2115 }, { 1675, 0xff02 }, - { 1684, 0xed63 }, { 1694, 0x402b }, { 1699, 0xd033 }, { 1706, 0x0242 }, - { 1709, 0x1000 }, { 1710, 0x0013 }, { 1713, 0x1b02 }, { 1718, 0x59ca }, - { 1726, 0x00a0 }, { 1728, 0x0200 }, { 1729, 0xa703 }, { 1736, 0x2c41 }, - /* 0x5d00 */ - { 1741, 0x4880 }, { 1744, 0x8ff2 }, { 1754, 0x0204 }, { 1756, 0x0000 }, - { 1756, 0x5800 }, { 1759, 0x1005 }, { 1762, 0x9200 }, { 1765, 0x0048 }, - { 1767, 0x1894 }, { 1772, 0x2001 }, { 1774, 0x5004 }, { 1777, 0x3480 }, - { 1781, 0x3200 }, { 1784, 0x684c }, { 1790, 0x49ea }, { 1798, 0x68be }, - /* 0x5e00 */ - { 1807, 0x184c }, { 1812, 0x2e42 }, { 1818, 0xa820 }, { 1822, 0x21c9 }, - { 1828, 0x50b9 }, { 1835, 0x80b0 }, { 1839, 0x001e }, { 1843, 0xff7c }, - { 1856, 0x849a }, { 1862, 0x14e0 }, { 1867, 0x28c1 }, { 1872, 0x01e0 }, - { 1876, 0x870e }, { 1883, 0xac49 }, { 1890, 0x130f }, { 1897, 0xdddb }, - /* 0x5f00 */ - { 1909, 0xbe1a }, { 1918, 0x89fb }, { 1928, 0xa2e0 }, { 1934, 0x51a2 }, - { 1940, 0x5502 }, { 1945, 0x32ca }, { 1952, 0x3e46 }, { 1960, 0x928b }, - { 1967, 0x1dbf }, { 1978, 0x438f }, { 1986, 0x6703 }, { 1993, 0x3218 }, - { 1998, 0x3028 }, { 2002, 0x33c0 }, { 2008, 0x0811 }, { 2011, 0xa923 }, - /* 0x6000 */ - { 2018, 0xc000 }, { 2020, 0x3a65 }, { 2028, 0x8fe3 }, { 2038, 0x0402 }, - { 2040, 0x2c4e }, { 2047, 0x8625 }, { 2053, 0xbf3d }, { 2065, 0x00a1 }, - { 2068, 0x3a1a }, { 2075, 0x8cd4 }, { 2082, 0x06c9 }, { 2088, 0x317c }, - { 2096, 0x00e0 }, { 2099, 0x950a }, { 2105, 0x018b }, { 2110, 0x0edb }, - /* 0x6100 */ - { 2119, 0xe34b }, { 2128, 0x8c20 }, { 2132, 0x1182 }, { 2136, 0xf010 }, - { 2141, 0x7d94 }, { 2150, 0xa728 }, { 2157, 0xc9ac }, { 2165, 0x40fb }, - { 2173, 0x4484 }, { 2177, 0x0653 }, { 2183, 0x5a90 }, { 2189, 0x4444 }, - { 2193, 0x3fc8 }, { 2202, 0x0001 }, { 2203, 0x0048 }, { 2205, 0xf5d4 }, - /* 0x6200 */ - { 2215, 0x7701 }, { 2222, 0xec57 }, { 2232, 0xc442 }, { 2237, 0x891d }, - { 2244, 0x6b83 }, { 2252, 0x4928 }, { 2257, 0x4109 }, { 2261, 0xd242 }, - { 2267, 0x061d }, { 2273, 0x59fe }, { 2284, 0x1800 }, { 2286, 0x3a22 }, - { 2292, 0xb7e4 }, { 2302, 0x3b9f }, { 2313, 0xf003 }, { 2319, 0xc0ea }, - /* 0x6300 */ - { 2326, 0x1386 }, { 2332, 0x8202 }, { 2335, 0x8980 }, { 2339, 0xe400 }, - { 2343, 0xb200 }, { 2347, 0x10a1 }, { 2351, 0x4b80 }, { 2356, 0x0cc4 }, - { 2361, 0xd309 }, { 2368, 0x8944 }, { 2373, 0x1faf }, { 2384, 0x4834 }, - { 2389, 0x8259 }, { 2395, 0x0c45 }, { 2400, 0x420a }, { 2404, 0x0450 }, - /* 0x6400 */ - { 2407, 0xa040 }, { 2410, 0x10c8 }, { 2414, 0x3140 }, { 2418, 0x4450 }, - { 2422, 0x4004 }, { 2424, 0x0100 }, { 2425, 0x8280 }, { 2428, 0x0540 }, - { 2431, 0x0108 }, { 2433, 0x442c }, { 2438, 0x6a30 }, { 2444, 0x1a05 }, - { 2449, 0x20a6 }, { 2454, 0x0514 }, { 2458, 0x90cf }, { 2466, 0x6456 }, - /* 0x6500 */ - { 2473, 0x0021 }, { 2475, 0x3100 }, { 2478, 0x9c18 }, { 2484, 0xcbf0 }, - { 2493, 0xa120 }, { 2497, 0x63e2 }, { 2505, 0x104c }, { 2509, 0x01b5 }, - { 2515, 0x538c }, { 2522, 0x9a83 }, { 2529, 0xb8b2 }, { 2537, 0x3281 }, - { 2542, 0x987a }, { 2550, 0x0a84 }, { 2554, 0x33e7 }, { 2564, 0x0c02 }, - /* 0x6600 */ - { 2567, 0xd4cc }, { 2575, 0x9018 }, { 2579, 0xa1a1 }, { 2585, 0x9070 }, - { 2590, 0x8a1e }, { 2597, 0xe004 }, { 2601, 0xc3d4 }, { 2609, 0x0451 }, - { 2613, 0x439a }, { 2620, 0x21c2 }, { 2625, 0x4844 }, { 2629, 0x5310 }, - { 2634, 0x0292 }, { 2638, 0x3640 }, { 2643, 0x0241 }, { 2646, 0xf3bd }, - /* 0x6700 */ - { 2658, 0xab09 }, { 2665, 0xe8f0 }, { 2673, 0x7dc0 }, { 2681, 0xa5d2 }, - { 2689, 0xc242 }, { 2694, 0xd24b }, { 2702, 0xa43f }, { 2711, 0xd0af }, - { 2720, 0x1aa0 }, { 2725, 0x34a1 }, { 2731, 0x8247 }, { 2737, 0x03d8 }, - { 2743, 0xc452 }, { 2749, 0x651b }, { 2757, 0xd294 }, { 2764, 0xc83a }, - /* 0x6800 */ - { 2771, 0x001c }, { 2774, 0x40c8 }, { 2778, 0x0e06 }, { 2783, 0x3314 }, - { 2789, 0x614f }, { 2797, 0xb21b }, { 2805, 0x0088 }, { 2807, 0xc0d0 }, - { 2812, 0xa02a }, { 2817, 0xa898 }, { 2823, 0xa1c5 }, { 2830, 0x166b }, - { 2838, 0x2e50 }, { 2844, 0x85b4 }, { 2851, 0xc08b }, { 2857, 0x0604 }, - /* 0x6900 */ - { 2860, 0xf933 }, { 2870, 0x1e04 }, { 2875, 0x056e }, { 2882, 0xa251 }, - { 2888, 0x0400 }, { 2889, 0x7638 }, { 2897, 0xec07 }, { 2905, 0x73b8 }, - { 2914, 0x4406 }, { 2918, 0x1832 }, { 2923, 0x4081 }, { 2926, 0xc816 }, - { 2932, 0x7c8a }, { 2940, 0x6309 }, { 2946, 0x2980 }, { 2950, 0xaa04 }, - /* 0x6a00 */ - { 2955, 0x1c24 }, { 2960, 0xca9c }, { 2968, 0x4e0e }, { 2975, 0x2760 }, - { 2981, 0x0990 }, { 2985, 0x8300 }, { 2988, 0x0046 }, { 2991, 0x8104 }, - { 2994, 0x6011 }, { 2998, 0x1081 }, { 3001, 0x540d }, { 3007, 0x0908 }, - { 3010, 0x000e }, { 3013, 0xcc0a }, { 3019, 0x0500 }, { 3021, 0x0c00 }, - /* 0x6b00 */ - { 3023, 0x0430 }, { 3026, 0xa044 }, { 3030, 0x008b }, { 3034, 0x6784 }, - { 3041, 0x5288 }, { 3046, 0x8a19 }, { 3052, 0x865e }, { 3060, 0x8b18 }, - { 3066, 0x2e59 }, { 3074, 0x4160 }, { 3078, 0x8c10 }, { 3082, 0x9cbe }, - { 3092, 0x6861 }, { 3098, 0x891c }, { 3104, 0x9800 }, { 3107, 0x0008 }, - /* 0x6c00 */ - { 3108, 0x8100 }, { 3110, 0x089a }, { 3115, 0x0018 }, { 3117, 0x4190 }, - { 3121, 0x4007 }, { 3125, 0xe4a1 }, { 3132, 0x0505 }, { 3136, 0x640d }, - { 3142, 0x310e }, { 3148, 0x0e4d }, { 3155, 0x4806 }, { 3159, 0xff0a }, - { 3169, 0x1632 }, { 3175, 0x2aa8 }, { 3181, 0x852e }, { 3188, 0x000b }, - /* 0x6d00 */ - { 3191, 0x1800 }, { 3193, 0xca84 }, { 3199, 0x0e20 }, { 3203, 0x696c }, - { 3211, 0x0032 }, { 3214, 0x1600 }, { 3217, 0x5658 }, { 3224, 0x0390 }, - { 3228, 0x5120 }, { 3232, 0x1a28 }, { 3237, 0x8000 }, { 3238, 0x1124 }, - { 3242, 0x18e1 }, { 3248, 0x4326 }, { 3254, 0x5d52 }, { 3262, 0x0eaa }, - /* 0x6e00 */ - { 3269, 0x0fa0 }, { 3275, 0xae28 }, { 3282, 0xfa7b }, { 3294, 0x4500 }, - { 3297, 0x6408 }, { 3301, 0x8940 }, { 3305, 0xc880 }, { 3309, 0xc044 }, - { 3313, 0x9005 }, { 3317, 0xb141 }, { 3323, 0x8424 }, { 3327, 0x24c4 }, - { 3332, 0x1a34 }, { 3338, 0x603a }, { 3344, 0x9000 }, { 3346, 0xc194 }, - /* 0x6f00 */ - { 3352, 0x8246 }, { 3357, 0x003a }, { 3361, 0x180d }, { 3366, 0xc106 }, - { 3371, 0x0022 }, { 3373, 0x9910 }, { 3378, 0xe050 }, { 3383, 0x1511 }, - { 3388, 0x4057 }, { 3394, 0x0082 }, { 3396, 0x041a }, { 3400, 0x020a }, - { 3403, 0x004f }, { 3408, 0x8930 }, { 3413, 0xd813 }, { 3420, 0x444a }, - /* 0x7000 */ - { 3425, 0x8a02 }, { 3429, 0xed22 }, { 3437, 0x10c0 }, { 3440, 0x4005 }, - { 3443, 0x1000 }, { 3444, 0x0102 }, { 3446, 0x8808 }, { 3449, 0x3101 }, - { 3453, 0x4600 }, { 3456, 0x0204 }, { 3458, 0xf000 }, { 3462, 0x0708 }, - { 3466, 0x8900 }, { 3469, 0xa200 }, { 3472, 0x0000 }, { 3472, 0x2202 }, - /* 0x7100 */ - { 3475, 0x0200 }, { 3476, 0x1610 }, { 3480, 0x0042 }, { 3482, 0x1040 }, - { 3484, 0x5200 }, { 3487, 0x0260 }, { 3490, 0x52f4 }, { 3498, 0x2000 }, - { 3499, 0x8510 }, { 3503, 0x8230 }, { 3507, 0x1100 }, { 3509, 0x4202 }, - { 3512, 0x4308 }, { 3516, 0x80b5 }, { 3522, 0x70e1 }, { 3529, 0x9a20 }, - /* 0x7200 */ - { 3534, 0x2040 }, { 3536, 0x0801 }, { 3538, 0x3500 }, { 3542, 0xfc65 }, - { 3552, 0x19c1 }, { 3558, 0xab04 }, { 3564, 0x0286 }, { 3568, 0x6214 }, - { 3573, 0x0087 }, { 3577, 0x0044 }, { 3579, 0x9085 }, { 3584, 0x0244 }, - { 3587, 0x405c }, { 3592, 0x0a85 }, { 3597, 0x3207 }, { 3603, 0x3380 }, - /* 0x7300 */ - { 3608, 0x0400 }, { 3609, 0xb8c0 }, { 3615, 0xce20 }, { 3621, 0xc0d0 }, - { 3626, 0xc030 }, { 3630, 0x0080 }, { 3631, 0x0508 }, { 3634, 0x0d25 }, - { 3640, 0x0a90 }, { 3644, 0x0040 }, { 3645, 0x0200 }, { 3646, 0x080c }, - { 3649, 0x6505 }, { 3655, 0x4000 }, { 3656, 0x6421 }, { 3661, 0x4102 }, - /* 0x7400 */ - { 3664, 0x0268 }, { 3668, 0x0000 }, { 3668, 0x0024 }, { 3670, 0x847c }, - { 3677, 0x0002 }, { 3678, 0xde20 }, { 3685, 0x8619 }, { 3691, 0x4049 }, - { 3695, 0x0808 }, { 3697, 0x4000 }, { 3698, 0x0084 }, { 3700, 0x2001 }, - { 3702, 0x8400 }, { 3704, 0x1010 }, { 3706, 0x42cd }, { 3713, 0x01c7 }, - /* 0x7500 */ - { 3719, 0x7038 }, { 3725, 0xd52a }, { 3733, 0x1968 }, { 3739, 0x1d8f }, - { 3748, 0xbe50 }, { 3756, 0x3e12 }, { 3763, 0x2ef5 }, { 3773, 0x81d9 }, - { 3780, 0xcec4 }, { 3788, 0x2412 }, { 3792, 0x0828 }, { 3795, 0x732e }, - { 3804, 0x24ac }, { 3810, 0x4b34 }, { 3817, 0x020c }, { 3820, 0xd41d }, - /* 0x7600 */ - { 3828, 0x2a02 }, { 3832, 0x8000 }, { 3833, 0x0097 }, { 3838, 0x0811 }, - { 3841, 0x11c4 }, { 3846, 0x1144 }, { 3850, 0x1786 }, { 3857, 0x7d45 }, - { 3866, 0x49d9 }, { 3874, 0x0649 }, { 3879, 0x4000 }, { 3880, 0x8791 }, - { 3887, 0x254c }, { 3893, 0xd8c4 }, { 3900, 0x44ba }, { 3907, 0x4914 }, - /* 0x7700 */ - { 3912, 0x1b92 }, { 3919, 0xc800 }, { 3922, 0x0271 }, { 3927, 0x1580 }, - { 3931, 0x0081 }, { 3933, 0x0c00 }, { 3935, 0x096a }, { 3941, 0xc200 }, - { 3944, 0x4800 }, { 3946, 0x4002 }, { 3948, 0x3021 }, { 3952, 0xba49 }, - { 3960, 0x2080 }, { 3962, 0x1c80 }, { 3966, 0xe2ac }, { 3974, 0x1008 }, - /* 0x7800 */ - { 3976, 0x1004 }, { 3978, 0x0034 }, { 3981, 0x00e1 }, { 3985, 0x8414 }, - { 3989, 0x0020 }, { 3990, 0x2000 }, { 3991, 0x9800 }, { 3994, 0x1014 }, - { 3997, 0x70c2 }, { 4003, 0x04aa }, { 4008, 0x8688 }, { 4013, 0x5420 }, - { 4017, 0x0c62 }, { 4022, 0x0413 }, { 4026, 0x9180 }, { 4030, 0x2010 }, - /* 0x7900 */ - { 4032, 0x4082 }, { 4035, 0x0206 }, { 4038, 0x1c40 }, { 4042, 0x5400 }, - { 4045, 0x0383 }, { 4050, 0xe4e9 }, { 4059, 0x2125 }, { 4064, 0x8480 }, - { 4067, 0xe433 }, { 4075, 0x2000 }, { 4076, 0x44c0 }, { 4080, 0xe609 }, - { 4087, 0x0a03 }, { 4091, 0x8126 }, { 4096, 0x12da }, { 4103, 0x0801 }, - /* 0x7a00 */ - { 4105, 0x6901 }, { 4110, 0x9790 }, { 4117, 0x4001 }, { 4119, 0xf886 }, - { 4127, 0xe24d }, { 4135, 0x0081 }, { 4137, 0x0a0e }, { 4142, 0xa651 }, - { 4149, 0x011a }, { 4153, 0x81ec }, { 4160, 0xc600 }, { 4164, 0x8441 }, - { 4168, 0xadb8 }, { 4177, 0xb62c }, { 4185, 0xa46f }, { 4194, 0x8741 }, - /* 0x7b00 */ - { 4200, 0x8d54 }, { 4207, 0x4b02 }, { 4212, 0x1161 }, { 4217, 0x0268 }, - { 4221, 0xbb60 }, { 4229, 0x2057 }, { 4235, 0x50a0 }, { 4239, 0x0433 }, - { 4244, 0xa8c0 }, { 4249, 0xb7b4 }, { 4259, 0x2402 }, { 4262, 0x0112 }, - { 4265, 0x9ad3 }, { 4274, 0x2000 }, { 4275, 0x2271 }, { 4281, 0x00c8 }, - /* 0x7c00 */ - { 4284, 0x2081 }, { 4287, 0x809e }, { 4293, 0x0c8a }, { 4298, 0xe180 }, - { 4303, 0xb009 }, { 4308, 0x8151 }, { 4313, 0x1031 }, { 4317, 0x4028 }, - { 4320, 0x2a0e }, { 4326, 0x89a5 }, { 4333, 0x69b6 }, { 4342, 0x620e }, - { 4348, 0x4425 }, { 4353, 0xd144 }, { 4359, 0x8085 }, { 4363, 0x4d54 }, - /* 0x7d00 */ - { 4370, 0x2c75 }, { 4378, 0x1fb1 }, { 4387, 0xd807 }, { 4394, 0x862d }, - { 4401, 0xd87c }, { 4410, 0x4841 }, { 4414, 0x414e }, { 4420, 0x226e }, - { 4427, 0x8200 }, { 4429, 0x9e08 }, { 4435, 0xf80c }, { 4442, 0xed37 }, - { 4453, 0x8c80 }, { 4457, 0x7526 }, { 4465, 0x9313 }, { 4472, 0x0814 }, - /* 0x7e00 */ - { 4475, 0x0e32 }, { 4481, 0xc804 }, { 4485, 0x484e }, { 4491, 0x6ea6 }, - { 4500, 0x2c4a }, { 4506, 0x6670 }, { 4513, 0x26c0 }, { 4518, 0xba01 }, - { 4524, 0xd30c }, { 4531, 0x185d }, { 4538, 0x0000 }, { 4538, 0x0000 }, - { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, - /* 0x7f00 */ - { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0000 }, { 4538, 0x0540 }, - { 4541, 0x7020 }, { 4545, 0x8133 }, { 4551, 0x4f81 }, { 4558, 0x03a5 }, - { 4564, 0x55ec }, { 4573, 0x6410 }, { 4577, 0xc318 }, { 4583, 0x2344 }, - { 4588, 0x1462 }, { 4593, 0x0034 }, { 4596, 0x0a43 }, { 4601, 0x1a09 }, - /* 0x8000 */ - { 4606, 0x187b }, { 4614, 0x13a5 }, { 4621, 0x0102 }, { 4623, 0xa848 }, - { 4628, 0x0440 }, { 4630, 0xc544 }, { 4636, 0x8106 }, { 4640, 0xe2dd }, - { 4650, 0x1af0 }, { 4657, 0x2d48 }, { 4663, 0xb626 }, { 4671, 0x0416 }, - { 4675, 0x5058 }, { 4680, 0x6e40 }, { 4686, 0x8032 }, { 4690, 0x3112 }, - /* 0x8100 */ - { 4695, 0x07e4 }, { 4702, 0x0c00 }, { 4704, 0x8208 }, { 4707, 0x420a }, - { 4711, 0x4840 }, { 4714, 0x803b }, { 4720, 0x4860 }, { 4724, 0x8713 }, - { 4731, 0x850d }, { 4737, 0x3428 }, { 4742, 0x0319 }, { 4747, 0xe529 }, - { 4755, 0x2345 }, { 4761, 0x870a }, { 4767, 0x25a9 }, { 4774, 0x5c18 }, - /* 0x8200 */ - { 4780, 0x77a6 }, { 4790, 0xd9c5 }, { 4799, 0x5e00 }, { 4804, 0x03e8 }, - { 4810, 0x0081 }, { 4812, 0xa700 }, { 4817, 0xcd54 }, { 4825, 0x41c6 }, - { 4831, 0x2800 }, { 4833, 0xa204 }, { 4837, 0xb860 }, { 4843, 0x2b0a }, - { 4849, 0x0020 }, { 4850, 0xda9e }, { 4860, 0x08ea }, { 4866, 0x0e1a }, - /* 0x8300 */ - { 4872, 0x427c }, { 4879, 0x11c0 }, { 4883, 0x8908 }, { 4887, 0x0376 }, - { 4894, 0x8621 }, { 4899, 0x0105 }, { 4902, 0x0000 }, { 4902, 0x18a8 }, - { 4907, 0x46a0 }, { 4912, 0xc448 }, { 4917, 0x0d05 }, { 4922, 0x2022 }, - { 4925, 0x5422 }, { 4930, 0x9148 }, { 4935, 0x8a01 }, { 4939, 0x2897 }, - /* 0x8400 */ - { 4946, 0x7898 }, { 4953, 0x0008 }, { 4954, 0x1605 }, { 4959, 0x3122 }, - { 4964, 0x4240 }, { 4967, 0x0880 }, { 4969, 0xfa4e }, { 4979, 0x06a2 }, - { 4984, 0x0814 }, { 4987, 0x9211 }, { 4992, 0x2002 }, { 4994, 0x9b04 }, - { 5000, 0x2e52 }, { 5007, 0x0643 }, { 5012, 0x5000 }, { 5014, 0x9010 }, - /* 0x8500 */ - { 5017, 0x0041 }, { 5019, 0x85ba }, { 5027, 0x3042 }, { 5031, 0x2020 }, - { 5033, 0x4f0b }, { 5041, 0x05a0 }, { 5045, 0x2708 }, { 5050, 0x4080 }, - { 5052, 0x0591 }, { 5057, 0x1a93 }, { 5064, 0xdf50 }, { 5073, 0x0600 }, - { 5075, 0xa202 }, { 5079, 0x3021 }, { 5083, 0x0630 }, { 5087, 0x4e80 }, - /* 0x8600 */ - { 5092, 0x0cc4 }, { 5097, 0x04c8 }, { 5101, 0xa004 }, { 5104, 0x8001 }, - { 5106, 0x6000 }, { 5108, 0xd431 }, { 5115, 0x0880 }, { 5117, 0x0a02 }, - { 5120, 0x1c00 }, { 5123, 0x0028 }, { 5125, 0x8e18 }, { 5131, 0x0041 }, - { 5133, 0x6ad0 }, { 5140, 0xca10 }, { 5145, 0xf210 }, { 5151, 0x4b00 }, - /* 0x8700 */ - { 5155, 0x274d }, { 5163, 0x1506 }, { 5168, 0x0220 }, { 5170, 0x8890 }, - { 5174, 0x5a00 }, { 5178, 0x82a8 }, { 5183, 0x4549 }, { 5189, 0x8150 }, - { 5193, 0x2004 }, { 5195, 0x8000 }, { 5196, 0x8804 }, { 5199, 0x2c08 }, - { 5203, 0x08d1 }, { 5208, 0x0005 }, { 5210, 0x8001 }, { 5212, 0x4ac4 }, - /* 0x8800 */ - { 5218, 0xe020 }, { 5222, 0x0062 }, { 5225, 0x008e }, { 5229, 0x0a42 }, - { 5233, 0x3055 }, { 5239, 0x6a8c }, { 5246, 0x090e }, { 5251, 0xe0a5 }, - { 5258, 0x2906 }, { 5263, 0x42c4 }, { 5268, 0x4814 }, { 5272, 0x80b3 }, - { 5278, 0x803e }, { 5284, 0xb330 }, { 5291, 0x0102 }, { 5293, 0x731c }, - /* 0x8900 */ - { 5301, 0x1494 }, { 5306, 0x600d }, { 5311, 0x0c20 }, { 5314, 0x0940 }, - { 5317, 0x301a }, { 5322, 0xc040 }, { 5325, 0xa451 }, { 5331, 0xc094 }, - { 5336, 0x8dca }, { 5344, 0x05c8 }, { 5349, 0x96c2 }, { 5356, 0xa40c }, - { 5361, 0x0001 }, { 5362, 0x3404 }, { 5366, 0x00c8 }, { 5369, 0x0110 }, - /* 0x8a00 */ - { 5371, 0x550d }, { 5378, 0xa9c9 }, { 5386, 0x2428 }, { 5390, 0x1c5a }, - { 5397, 0x0142 }, { 5400, 0x4837 }, { 5407, 0x7a4d }, { 5416, 0x100f }, - { 5421, 0x32b4 }, { 5428, 0x452a }, { 5434, 0x317b }, { 5443, 0x9205 }, - { 5448, 0xb894 }, { 5455, 0x5c44 }, { 5461, 0x68d7 }, { 5470, 0x458a }, - /* 0x8b00 */ - { 5476, 0x5097 }, { 5483, 0x2ed1 }, { 5491, 0x1943 }, { 5497, 0x4208 }, - { 5500, 0xd202 }, { 5505, 0x9d40 }, { 5511, 0x9840 }, { 5515, 0x2097 }, - { 5521, 0x5409 }, { 5526, 0x064d }, { 5532, 0x0000 }, { 5532, 0x0000 }, - { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, - /* 0x8c00 */ - { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x0000 }, { 5532, 0x8480 }, - { 5535, 0x5542 }, { 5541, 0x0421 }, { 5544, 0x1c06 }, { 5549, 0x1700 }, - { 5553, 0x7624 }, { 5560, 0x6110 }, { 5564, 0xff87 }, { 5576, 0xb9dd }, - { 5587, 0x659f }, { 5597, 0x5c0a }, { 5603, 0x245d }, { 5610, 0x3c00 }, - /* 0x8d00 */ - { 5614, 0xadb0 }, { 5622, 0x0059 }, { 5626, 0x0000 }, { 5626, 0x0000 }, - { 5626, 0x0000 }, { 5626, 0x0000 }, { 5626, 0x28d0 }, { 5631, 0x009b }, - { 5636, 0x0422 }, { 5639, 0x0200 }, { 5640, 0x0108 }, { 5642, 0x4408 }, - { 5645, 0x9804 }, { 5649, 0xac40 }, { 5654, 0x8d0a }, { 5660, 0x9028 }, - /* 0x8e00 */ - { 5664, 0x8700 }, { 5668, 0xe001 }, { 5672, 0x0400 }, { 5673, 0x0031 }, - { 5676, 0x1794 }, { 5683, 0x8221 }, { 5687, 0x0019 }, { 5690, 0x1054 }, - { 5694, 0x2cb2 }, { 5701, 0x021a }, { 5705, 0x9c02 }, { 5710, 0x4003 }, - { 5713, 0x3d60 }, { 5720, 0x8804 }, { 5723, 0x080c }, { 5726, 0x7900 }, - /* 0x8f00 */ - { 5731, 0x1628 }, { 5736, 0xba3c }, { 5745, 0x8640 }, { 5749, 0xcb08 }, - { 5755, 0x7274 }, { 5763, 0x9080 }, { 5766, 0x001e }, { 5770, 0x0000 }, - { 5770, 0x0000 }, { 5770, 0xd800 }, { 5774, 0xe188 }, { 5780, 0x9c87 }, - { 5788, 0x4034 }, { 5792, 0x0412 }, { 5795, 0xae64 }, { 5803, 0x2791 }, - /* 0x9000 */ - { 5810, 0xe86b }, { 5819, 0xe6fb }, { 5831, 0x408f }, { 5837, 0x5366 }, - { 5845, 0xeea6 }, { 5855, 0x537f }, { 5866, 0xe32b }, { 5875, 0xb5e4 }, - { 5884, 0x869f }, { 5893, 0x0002 }, { 5894, 0x8548 }, { 5899, 0x0122 }, - { 5902, 0x4402 }, { 5905, 0x0800 }, { 5906, 0x2116 }, { 5911, 0x20a0 }, - /* 0x9100 */ - { 5914, 0x0004 }, { 5915, 0x0204 }, { 5917, 0x2000 }, { 5918, 0x0005 }, - { 5920, 0x7e00 }, { 5926, 0x0154 }, { 5930, 0x162c }, { 5936, 0x01ac }, - { 5941, 0x2a84 }, { 5946, 0x1085 }, { 5950, 0x8c14 }, { 5955, 0x0530 }, - { 5959, 0xfbc3 }, { 5970, 0xb943 }, { 5978, 0x00ca }, { 5982, 0x9060 }, - /* 0x9200 */ - { 5986, 0x6000 }, { 5988, 0x4032 }, { 5992, 0x1200 }, { 5994, 0x8090 }, - { 5997, 0x0b30 }, { 6002, 0x4c81 }, { 6007, 0x0054 }, { 6010, 0x4002 }, - { 6012, 0x0029 }, { 6015, 0x1d6a }, { 6023, 0x2000 }, { 6024, 0x0280 }, - { 6026, 0x8000 }, { 6027, 0x0004 }, { 6028, 0x2610 }, { 6032, 0x150c }, - /* 0x9300 */ - { 6037, 0x8040 }, { 6039, 0x0701 }, { 6043, 0xd94d }, { 6052, 0x0c24 }, - { 6056, 0x2810 }, { 6059, 0x1850 }, { 6063, 0x5001 }, { 6066, 0x5020 }, - { 6069, 0x1000 }, { 6070, 0x04d0 }, { 6074, 0x7080 }, { 6078, 0x0201 }, - { 6080, 0x0108 }, { 6082, 0x21c3 }, { 6088, 0x0132 }, { 6092, 0x0000 }, - /* 0x9400 */ - { 6092, 0x0088 }, { 6094, 0x0719 }, { 6100, 0x0802 }, { 6102, 0x0560 }, - { 6106, 0x0012 }, { 6108, 0x4c0e }, { 6114, 0x0405 }, { 6117, 0xf0a1 }, - { 6124, 0x0002 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, - { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, - /* 0x9500 */ - { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, - { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0000 }, { 6125, 0x0080 }, - { 6126, 0x8e8d }, { 6134, 0x035a }, { 6140, 0x21bd }, { 6148, 0x5a04 }, - { 6153, 0x3488 }, { 6158, 0x1170 }, { 6163, 0x0026 }, { 6166, 0x0000 }, - /* 0x9600 */ - { 6166, 0x0000 }, { 6166, 0x1000 }, { 6167, 0xc502 }, { 6172, 0x8804 }, - { 6175, 0xb815 }, { 6182, 0xf801 }, { 6188, 0x147c }, { 6195, 0x25ed }, - { 6204, 0xed60 }, { 6212, 0x1bb0 }, { 6219, 0x0589 }, { 6224, 0x1bd7 }, - { 6234, 0x7af3 }, { 6245, 0x1a62 }, { 6251, 0x0d0c }, { 6256, 0x0ac5 }, - /* 0x9700 */ - { 6262, 0xe5d1 }, { 6271, 0x524a }, { 6277, 0x0490 }, { 6280, 0x6305 }, - { 6286, 0x0354 }, { 6291, 0x5244 }, { 6296, 0x2b57 }, { 6305, 0x1612 }, - { 6310, 0xa872 }, { 6317, 0x1101 }, { 6320, 0x2949 }, { 6326, 0x0018 }, - { 6328, 0x0948 }, { 6332, 0x1008 }, { 6334, 0x6000 }, { 6336, 0x886c }, - /* 0x9800 */ - { 6342, 0x916e }, { 6350, 0x058f }, { 6357, 0x3012 }, { 6361, 0x3990 }, - { 6367, 0xf840 }, { 6373, 0x4930 }, { 6378, 0x8880 }, { 6381, 0x001b }, - { 6385, 0x0000 }, { 6385, 0x0000 }, { 6385, 0x8500 }, { 6388, 0x0042 }, - { 6390, 0x0058 }, { 6393, 0x9800 }, { 6396, 0xea04 }, { 6402, 0x7014 }, - /* 0x9900 */ - { 6407, 0x1628 }, { 6412, 0x611d }, { 6419, 0x5113 }, { 6425, 0x6000 }, - { 6427, 0x1a24 }, { 6432, 0x00a7 }, { 6437, 0x0000 }, { 6437, 0x0000 }, - { 6437, 0x0000 }, { 6437, 0x03c0 }, { 6441, 0x7120 }, { 6446, 0x1018 }, - { 6449, 0x0172 }, { 6454, 0xa927 }, { 6462, 0x6004 }, { 6465, 0x8906 }, - /* 0x9a00 */ - { 6470, 0xc022 }, { 6474, 0x020c }, { 6477, 0x0900 }, { 6479, 0x4081 }, - { 6482, 0x202d }, { 6487, 0x8ca0 }, { 6492, 0x0e34 }, { 6498, 0x0000 }, - { 6498, 0x0000 }, { 6498, 0x0000 }, { 6498, 0x2100 }, { 6500, 0x1101 }, - { 6503, 0x8011 }, { 6506, 0xc11a }, { 6512, 0xec4c }, { 6520, 0x0892 }, - /* 0x9b00 */ - { 6524, 0x0040 }, { 6525, 0x8500 }, { 6528, 0xc7ac }, { 6537, 0x1806 }, - { 6541, 0xe03e }, { 6549, 0x0512 }, { 6553, 0x8000 }, { 6554, 0x0010 }, - { 6555, 0x4008 }, { 6557, 0x80ce }, { 6563, 0x6d01 }, { 6569, 0x0210 }, - { 6571, 0x8641 }, { 6576, 0x0856 }, { 6581, 0x011e }, { 6586, 0x0027 }, - /* 0x9c00 */ - { 6590, 0x3750 }, { 6597, 0x083d }, { 6603, 0xe032 }, { 6609, 0x4e05 }, - { 6615, 0x01c0 }, { 6618, 0x0484 }, { 6621, 0x0081 }, { 6623, 0x0140 }, - { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x0000 }, - { 6625, 0x0000 }, { 6625, 0x0000 }, { 6625, 0x1aa0 }, { 6630, 0x0059 }, - /* 0x9d00 */ - { 6634, 0x43c8 }, { 6640, 0x8824 }, { 6644, 0x1d48 }, { 6650, 0xc800 }, - { 6653, 0x0152 }, { 6657, 0x7203 }, { 6663, 0x9013 }, { 6668, 0x0404 }, - { 6670, 0x8280 }, { 6673, 0x0400 }, { 6674, 0x8a10 }, { 6678, 0x0d14 }, - { 6683, 0x8056 }, { 6688, 0x0208 }, { 6690, 0xa040 }, { 6693, 0x2704 }, - /* 0x9e00 */ - { 6698, 0x0000 }, { 6698, 0x4c00 }, { 6701, 0x0000 }, { 6701, 0x0000 }, - { 6701, 0x0000 }, { 6701, 0x0000 }, { 6701, 0x0000 }, { 6701, 0xa320 }, - { 6706, 0x1902 }, { 6710, 0xa0ae }, { 6717, 0x2660 }, { 6722, 0xdf00 }, - { 6729, 0xf010 }, { 6734, 0x7b15 }, { 6743, 0x8121 }, { 6747, 0x3ad0 }, - /* 0x9f00 */ - { 6754, 0x4180 }, { 6757, 0x0028 }, { 6759, 0x1003 }, { 6762, 0x4800 }, - { 6764, 0xcc00 }, { 6768, 0x8014 }, { 6771, 0x14cf }, { 6779, 0x00c4 }, - { 6782, 0x2000 }, { 6783, 0x3020 }, { 6786, 0x0001 }, -}; -static const Summary16 jisx0208_uni2indx_pageff[15] = { - /* 0xff00 */ - { 6787, 0xdf7a }, { 6799, 0xffff }, { 6815, 0xffff }, { 6831, 0xffff }, - { 6847, 0xffff }, { 6863, 0x3fff }, { 6877, 0x0000 }, { 6877, 0x0000 }, - { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0000 }, - { 6877, 0x0000 }, { 6877, 0x0000 }, { 6877, 0x0028 }, -}; - -static int -jisx0208_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0100) - summary = &jisx0208_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x0300 && wc < 0x0460) - summary = &jisx0208_uni2indx_page03[(wc>>4)-0x030]; - else if (wc >= 0x2000 && wc < 0x2320) - summary = &jisx0208_uni2indx_page20[(wc>>4)-0x200]; - else if (wc >= 0x2500 && wc < 0x2670) - summary = &jisx0208_uni2indx_page25[(wc>>4)-0x250]; - else if (wc >= 0x3000 && wc < 0x3100) - summary = &jisx0208_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x4e00 && wc < 0x9fb0) - summary = &jisx0208_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0xff00 && wc < 0xfff0) - summary = &jisx0208_uni2indx_pageff[(wc>>4)-0xff0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = jisx0208_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/jisx0212.h b/jni/parted/libiconv/lib/jisx0212.h deleted file mode 100755 index 05fbdc8..0000000 --- a/jni/parted/libiconv/lib/jisx0212.h +++ /dev/null @@ -1,2188 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JISX0212.1990-0 - */ - -static const unsigned short jisx0212_2uni_page22[81] = { - /* 0x22 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x02d8, 0x02c7, - 0x00b8, 0x02d9, 0x02dd, 0x00af, 0x02db, 0x02da, 0xff5e, 0x0384, - 0x0385, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x00a1, 0x00a6, 0x00bf, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0x00ba, 0x00aa, 0x00a9, 0x00ae, 0x2122, 0x00a4, - 0x2116, -}; -static const unsigned short jisx0212_2uni_page26[188] = { - /* 0x26 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0xfffd, 0x038c, 0xfffd, - 0x038e, 0x03ab, 0xfffd, 0x038f, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03c2, - 0x03cd, 0x03cb, 0x03b0, 0x03ce, 0xfffd, 0xfffd, - /* 0x27 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, - 0x0409, 0x040a, 0x040b, 0x040c, 0x040e, 0x040f, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, - 0x0459, 0x045a, 0x045b, 0x045c, 0x045e, 0x045f, -}; -static const unsigned short jisx0212_2uni_page29[275] = { - /* 0x29 */ - 0x00c6, 0x0110, 0xfffd, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x0141, - 0x013f, 0xfffd, 0x014a, 0x00d8, 0x0152, 0xfffd, 0x0166, 0x00de, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0142, - 0x0140, 0x0149, 0x014b, 0x00f8, 0x0153, 0x00df, 0x0167, 0x00fe, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x2a */ - 0x00c1, 0x00c0, 0x00c4, 0x00c2, 0x0102, 0x01cd, 0x0100, 0x0104, - 0x00c5, 0x00c3, 0x0106, 0x0108, 0x010c, 0x00c7, 0x010a, 0x010e, - 0x00c9, 0x00c8, 0x00cb, 0x00ca, 0x011a, 0x0116, 0x0112, 0x0118, - 0xfffd, 0x011c, 0x011e, 0x0122, 0x0120, 0x0124, 0x00cd, 0x00cc, - 0x00cf, 0x00ce, 0x01cf, 0x0130, 0x012a, 0x012e, 0x0128, 0x0134, - 0x0136, 0x0139, 0x013d, 0x013b, 0x0143, 0x0147, 0x0145, 0x00d1, - 0x00d3, 0x00d2, 0x00d6, 0x00d4, 0x01d1, 0x0150, 0x014c, 0x00d5, - 0x0154, 0x0158, 0x0156, 0x015a, 0x015c, 0x0160, 0x015e, 0x0164, - 0x0162, 0x00da, 0x00d9, 0x00dc, 0x00db, 0x016c, 0x01d3, 0x0170, - 0x016a, 0x0172, 0x016e, 0x0168, 0x01d7, 0x01db, 0x01d9, 0x01d5, - 0x0174, 0x00dd, 0x0178, 0x0176, 0x0179, 0x017d, 0x017b, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x2b */ - 0x00e1, 0x00e0, 0x00e4, 0x00e2, 0x0103, 0x01ce, 0x0101, 0x0105, - 0x00e5, 0x00e3, 0x0107, 0x0109, 0x010d, 0x00e7, 0x010b, 0x010f, - 0x00e9, 0x00e8, 0x00eb, 0x00ea, 0x011b, 0x0117, 0x0113, 0x0119, - 0x01f5, 0x011d, 0x011f, 0xfffd, 0x0121, 0x0125, 0x00ed, 0x00ec, - 0x00ef, 0x00ee, 0x01d0, 0xfffd, 0x012b, 0x012f, 0x0129, 0x0135, - 0x0137, 0x013a, 0x013e, 0x013c, 0x0144, 0x0148, 0x0146, 0x00f1, - 0x00f3, 0x00f2, 0x00f6, 0x00f4, 0x01d2, 0x0151, 0x014d, 0x00f5, - 0x0155, 0x0159, 0x0157, 0x015b, 0x015d, 0x0161, 0x015f, 0x0165, - 0x0163, 0x00fa, 0x00f9, 0x00fc, 0x00fb, 0x016d, 0x01d4, 0x0171, - 0x016b, 0x0173, 0x016f, 0x0169, 0x01d8, 0x01dc, 0x01da, 0x01d6, - 0x0175, 0x00fd, 0x00ff, 0x0177, 0x017a, 0x017e, 0x017c, -}; -static const unsigned short jisx0212_2uni_page30[5801] = { - /* 0x30 */ - 0x4e02, 0x4e04, 0x4e05, 0x4e0c, 0x4e12, 0x4e1f, 0x4e23, 0x4e24, - 0x4e28, 0x4e2b, 0x4e2e, 0x4e2f, 0x4e30, 0x4e35, 0x4e40, 0x4e41, - 0x4e44, 0x4e47, 0x4e51, 0x4e5a, 0x4e5c, 0x4e63, 0x4e68, 0x4e69, - 0x4e74, 0x4e75, 0x4e79, 0x4e7f, 0x4e8d, 0x4e96, 0x4e97, 0x4e9d, - 0x4eaf, 0x4eb9, 0x4ec3, 0x4ed0, 0x4eda, 0x4edb, 0x4ee0, 0x4ee1, - 0x4ee2, 0x4ee8, 0x4eef, 0x4ef1, 0x4ef3, 0x4ef5, 0x4efd, 0x4efe, - 0x4eff, 0x4f00, 0x4f02, 0x4f03, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, - 0x4f15, 0x4f16, 0x4f17, 0x4f19, 0x4f2e, 0x4f31, 0x4f60, 0x4f33, - 0x4f35, 0x4f37, 0x4f39, 0x4f3b, 0x4f3e, 0x4f40, 0x4f42, 0x4f48, - 0x4f49, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, 0x4f58, 0x4f5f, - 0x4f63, 0x4f6a, 0x4f6c, 0x4f6e, 0x4f71, 0x4f77, 0x4f78, 0x4f79, - 0x4f7a, 0x4f7d, 0x4f7e, 0x4f81, 0x4f82, 0x4f84, - /* 0x31 */ - 0x4f85, 0x4f89, 0x4f8a, 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93, - 0x4f94, 0x4f97, 0x4f99, 0x4f9a, 0x4f9e, 0x4f9f, 0x4fb2, 0x4fb7, - 0x4fb9, 0x4fbb, 0x4fbc, 0x4fbd, 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc5, - 0x4fc6, 0x4fc8, 0x4fc9, 0x4fcb, 0x4fcc, 0x4fcd, 0x4fcf, 0x4fd2, - 0x4fdc, 0x4fe0, 0x4fe2, 0x4ff0, 0x4ff2, 0x4ffc, 0x4ffd, 0x4fff, - 0x5000, 0x5001, 0x5004, 0x5007, 0x500a, 0x500c, 0x500e, 0x5010, - 0x5013, 0x5017, 0x5018, 0x501b, 0x501c, 0x501d, 0x501e, 0x5022, - 0x5027, 0x502e, 0x5030, 0x5032, 0x5033, 0x5035, 0x5040, 0x5041, - 0x5042, 0x5045, 0x5046, 0x504a, 0x504c, 0x504e, 0x5051, 0x5052, - 0x5053, 0x5057, 0x5059, 0x505f, 0x5060, 0x5062, 0x5063, 0x5066, - 0x5067, 0x506a, 0x506d, 0x5070, 0x5071, 0x503b, 0x5081, 0x5083, - 0x5084, 0x5086, 0x508a, 0x508e, 0x508f, 0x5090, - /* 0x32 */ - 0x5092, 0x5093, 0x5094, 0x5096, 0x509b, 0x509c, 0x509e, 0x509f, - 0x50a0, 0x50a1, 0x50a2, 0x50aa, 0x50af, 0x50b0, 0x50b9, 0x50ba, - 0x50bd, 0x50c0, 0x50c3, 0x50c4, 0x50c7, 0x50cc, 0x50ce, 0x50d0, - 0x50d3, 0x50d4, 0x50d8, 0x50dc, 0x50dd, 0x50df, 0x50e2, 0x50e4, - 0x50e6, 0x50e8, 0x50e9, 0x50ef, 0x50f1, 0x50f6, 0x50fa, 0x50fe, - 0x5103, 0x5106, 0x5107, 0x5108, 0x510b, 0x510c, 0x510d, 0x510e, - 0x50f2, 0x5110, 0x5117, 0x5119, 0x511b, 0x511c, 0x511d, 0x511e, - 0x5123, 0x5127, 0x5128, 0x512c, 0x512d, 0x512f, 0x5131, 0x5133, - 0x5134, 0x5135, 0x5138, 0x5139, 0x5142, 0x514a, 0x514f, 0x5153, - 0x5155, 0x5157, 0x5158, 0x515f, 0x5164, 0x5166, 0x517e, 0x5183, - 0x5184, 0x518b, 0x518e, 0x5198, 0x519d, 0x51a1, 0x51a3, 0x51ad, - 0x51b8, 0x51ba, 0x51bc, 0x51be, 0x51bf, 0x51c2, - /* 0x33 */ - 0x51c8, 0x51cf, 0x51d1, 0x51d2, 0x51d3, 0x51d5, 0x51d8, 0x51de, - 0x51e2, 0x51e5, 0x51ee, 0x51f2, 0x51f3, 0x51f4, 0x51f7, 0x5201, - 0x5202, 0x5205, 0x5212, 0x5213, 0x5215, 0x5216, 0x5218, 0x5222, - 0x5228, 0x5231, 0x5232, 0x5235, 0x523c, 0x5245, 0x5249, 0x5255, - 0x5257, 0x5258, 0x525a, 0x525c, 0x525f, 0x5260, 0x5261, 0x5266, - 0x526e, 0x5277, 0x5278, 0x5279, 0x5280, 0x5282, 0x5285, 0x528a, - 0x528c, 0x5293, 0x5295, 0x5296, 0x5297, 0x5298, 0x529a, 0x529c, - 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52af, 0x52b0, 0x52b6, 0x52b7, - 0x52b8, 0x52ba, 0x52bb, 0x52bd, 0x52c0, 0x52c4, 0x52c6, 0x52c8, - 0x52cc, 0x52cf, 0x52d1, 0x52d4, 0x52d6, 0x52db, 0x52dc, 0x52e1, - 0x52e5, 0x52e8, 0x52e9, 0x52ea, 0x52ec, 0x52f0, 0x52f1, 0x52f4, - 0x52f6, 0x52f7, 0x5300, 0x5303, 0x530a, 0x530b, - /* 0x34 */ - 0x530c, 0x5311, 0x5313, 0x5318, 0x531b, 0x531c, 0x531e, 0x531f, - 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, 0x532c, 0x532d, 0x5330, - 0x5332, 0x5335, 0x533c, 0x533d, 0x533e, 0x5342, 0x534c, 0x534b, - 0x5359, 0x535b, 0x5361, 0x5363, 0x5365, 0x536c, 0x536d, 0x5372, - 0x5379, 0x537e, 0x5383, 0x5387, 0x5388, 0x538e, 0x5393, 0x5394, - 0x5399, 0x539d, 0x53a1, 0x53a4, 0x53aa, 0x53ab, 0x53af, 0x53b2, - 0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53ba, 0x53bd, 0x53c0, 0x53c5, - 0x53cf, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dd, 0x53de, 0x53e0, - 0x53e6, 0x53e7, 0x53f5, 0x5402, 0x5413, 0x541a, 0x5421, 0x5427, - 0x5428, 0x542a, 0x542f, 0x5431, 0x5434, 0x5435, 0x5443, 0x5444, - 0x5447, 0x544d, 0x544f, 0x545e, 0x5462, 0x5464, 0x5466, 0x5467, - 0x5469, 0x546b, 0x546d, 0x546e, 0x5474, 0x547f, - /* 0x35 */ - 0x5481, 0x5483, 0x5485, 0x5488, 0x5489, 0x548d, 0x5491, 0x5495, - 0x5496, 0x549c, 0x549f, 0x54a1, 0x54a6, 0x54a7, 0x54a9, 0x54aa, - 0x54ad, 0x54ae, 0x54b1, 0x54b7, 0x54b9, 0x54ba, 0x54bb, 0x54bf, - 0x54c6, 0x54ca, 0x54cd, 0x54ce, 0x54e0, 0x54ea, 0x54ec, 0x54ef, - 0x54f6, 0x54fc, 0x54fe, 0x54ff, 0x5500, 0x5501, 0x5505, 0x5508, - 0x5509, 0x550c, 0x550d, 0x550e, 0x5515, 0x552a, 0x552b, 0x5532, - 0x5535, 0x5536, 0x553b, 0x553c, 0x553d, 0x5541, 0x5547, 0x5549, - 0x554a, 0x554d, 0x5550, 0x5551, 0x5558, 0x555a, 0x555b, 0x555e, - 0x5560, 0x5561, 0x5564, 0x5566, 0x557f, 0x5581, 0x5582, 0x5586, - 0x5588, 0x558e, 0x558f, 0x5591, 0x5592, 0x5593, 0x5594, 0x5597, - 0x55a3, 0x55a4, 0x55ad, 0x55b2, 0x55bf, 0x55c1, 0x55c3, 0x55c6, - 0x55c9, 0x55cb, 0x55cc, 0x55ce, 0x55d1, 0x55d2, - /* 0x36 */ - 0x55d3, 0x55d7, 0x55d8, 0x55db, 0x55de, 0x55e2, 0x55e9, 0x55f6, - 0x55ff, 0x5605, 0x5608, 0x560a, 0x560d, 0x560e, 0x560f, 0x5610, - 0x5611, 0x5612, 0x5619, 0x562c, 0x5630, 0x5633, 0x5635, 0x5637, - 0x5639, 0x563b, 0x563c, 0x563d, 0x563f, 0x5640, 0x5641, 0x5643, - 0x5644, 0x5646, 0x5649, 0x564b, 0x564d, 0x564f, 0x5654, 0x565e, - 0x5660, 0x5661, 0x5662, 0x5663, 0x5666, 0x5669, 0x566d, 0x566f, - 0x5671, 0x5672, 0x5675, 0x5684, 0x5685, 0x5688, 0x568b, 0x568c, - 0x5695, 0x5699, 0x569a, 0x569d, 0x569e, 0x569f, 0x56a6, 0x56a7, - 0x56a8, 0x56a9, 0x56ab, 0x56ac, 0x56ad, 0x56b1, 0x56b3, 0x56b7, - 0x56be, 0x56c5, 0x56c9, 0x56ca, 0x56cb, 0x56cf, 0x56d0, 0x56cc, - 0x56cd, 0x56d9, 0x56dc, 0x56dd, 0x56df, 0x56e1, 0x56e4, 0x56e5, - 0x56e6, 0x56e7, 0x56e8, 0x56f1, 0x56eb, 0x56ed, - /* 0x37 */ - 0x56f6, 0x56f7, 0x5701, 0x5702, 0x5707, 0x570a, 0x570c, 0x5711, - 0x5715, 0x571a, 0x571b, 0x571d, 0x5720, 0x5722, 0x5723, 0x5724, - 0x5725, 0x5729, 0x572a, 0x572c, 0x572e, 0x572f, 0x5733, 0x5734, - 0x573d, 0x573e, 0x573f, 0x5745, 0x5746, 0x574c, 0x574d, 0x5752, - 0x5762, 0x5765, 0x5767, 0x5768, 0x576b, 0x576d, 0x576e, 0x576f, - 0x5770, 0x5771, 0x5773, 0x5774, 0x5775, 0x5777, 0x5779, 0x577a, - 0x577b, 0x577c, 0x577e, 0x5781, 0x5783, 0x578c, 0x5794, 0x5797, - 0x5799, 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a1, 0x5795, - 0x57a7, 0x57a8, 0x57a9, 0x57ac, 0x57b8, 0x57bd, 0x57c7, 0x57c8, - 0x57cc, 0x57cf, 0x57d5, 0x57dd, 0x57de, 0x57e4, 0x57e6, 0x57e7, - 0x57e9, 0x57ed, 0x57f0, 0x57f5, 0x57f6, 0x57f8, 0x57fd, 0x57fe, - 0x57ff, 0x5803, 0x5804, 0x5808, 0x5809, 0x57e1, - /* 0x38 */ - 0x580c, 0x580d, 0x581b, 0x581e, 0x581f, 0x5820, 0x5826, 0x5827, - 0x582d, 0x5832, 0x5839, 0x583f, 0x5849, 0x584c, 0x584d, 0x584f, - 0x5850, 0x5855, 0x585f, 0x5861, 0x5864, 0x5867, 0x5868, 0x5878, - 0x587c, 0x587f, 0x5880, 0x5881, 0x5887, 0x5888, 0x5889, 0x588a, - 0x588c, 0x588d, 0x588f, 0x5890, 0x5894, 0x5896, 0x589d, 0x58a0, - 0x58a1, 0x58a2, 0x58a6, 0x58a9, 0x58b1, 0x58b2, 0x58c4, 0x58bc, - 0x58c2, 0x58c8, 0x58cd, 0x58ce, 0x58d0, 0x58d2, 0x58d4, 0x58d6, - 0x58da, 0x58dd, 0x58e1, 0x58e2, 0x58e9, 0x58f3, 0x5905, 0x5906, - 0x590b, 0x590c, 0x5912, 0x5913, 0x5914, 0x8641, 0x591d, 0x5921, - 0x5923, 0x5924, 0x5928, 0x592f, 0x5930, 0x5933, 0x5935, 0x5936, - 0x593f, 0x5943, 0x5946, 0x5952, 0x5953, 0x5959, 0x595b, 0x595d, - 0x595e, 0x595f, 0x5961, 0x5963, 0x596b, 0x596d, - /* 0x39 */ - 0x596f, 0x5972, 0x5975, 0x5976, 0x5979, 0x597b, 0x597c, 0x598b, - 0x598c, 0x598e, 0x5992, 0x5995, 0x5997, 0x599f, 0x59a4, 0x59a7, - 0x59ad, 0x59ae, 0x59af, 0x59b0, 0x59b3, 0x59b7, 0x59ba, 0x59bc, - 0x59c1, 0x59c3, 0x59c4, 0x59c8, 0x59ca, 0x59cd, 0x59d2, 0x59dd, - 0x59de, 0x59df, 0x59e3, 0x59e4, 0x59e7, 0x59ee, 0x59ef, 0x59f1, - 0x59f2, 0x59f4, 0x59f7, 0x5a00, 0x5a04, 0x5a0c, 0x5a0d, 0x5a0e, - 0x5a12, 0x5a13, 0x5a1e, 0x5a23, 0x5a24, 0x5a27, 0x5a28, 0x5a2a, - 0x5a2d, 0x5a30, 0x5a44, 0x5a45, 0x5a47, 0x5a48, 0x5a4c, 0x5a50, - 0x5a55, 0x5a5e, 0x5a63, 0x5a65, 0x5a67, 0x5a6d, 0x5a77, 0x5a7a, - 0x5a7b, 0x5a7e, 0x5a8b, 0x5a90, 0x5a93, 0x5a96, 0x5a99, 0x5a9c, - 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa2, 0x5aa7, 0x5aac, 0x5ab1, 0x5ab2, - 0x5ab3, 0x5ab5, 0x5ab8, 0x5aba, 0x5abb, 0x5abf, - /* 0x3a */ - 0x5ac4, 0x5ac6, 0x5ac8, 0x5acf, 0x5ada, 0x5adc, 0x5ae0, 0x5ae5, - 0x5aea, 0x5aee, 0x5af5, 0x5af6, 0x5afd, 0x5b00, 0x5b01, 0x5b08, - 0x5b17, 0x5b34, 0x5b19, 0x5b1b, 0x5b1d, 0x5b21, 0x5b25, 0x5b2d, - 0x5b38, 0x5b41, 0x5b4b, 0x5b4c, 0x5b52, 0x5b56, 0x5b5e, 0x5b68, - 0x5b6e, 0x5b6f, 0x5b7c, 0x5b7d, 0x5b7e, 0x5b7f, 0x5b81, 0x5b84, - 0x5b86, 0x5b8a, 0x5b8e, 0x5b90, 0x5b91, 0x5b93, 0x5b94, 0x5b96, - 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5baf, 0x5bb1, 0x5bb2, 0x5bb7, - 0x5bba, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bcd, 0x5bcf, 0x5bd6, 0x5bd7, - 0x5bd8, 0x5bd9, 0x5bda, 0x5be0, 0x5bef, 0x5bf1, 0x5bf4, 0x5bfd, - 0x5c0c, 0x5c17, 0x5c1e, 0x5c1f, 0x5c23, 0x5c26, 0x5c29, 0x5c2b, - 0x5c2c, 0x5c2e, 0x5c30, 0x5c32, 0x5c35, 0x5c36, 0x5c59, 0x5c5a, - 0x5c5c, 0x5c62, 0x5c63, 0x5c67, 0x5c68, 0x5c69, - /* 0x3b */ - 0x5c6d, 0x5c70, 0x5c74, 0x5c75, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d, - 0x5c87, 0x5c88, 0x5c8a, 0x5c8f, 0x5c92, 0x5c9d, 0x5c9f, 0x5ca0, - 0x5ca2, 0x5ca3, 0x5ca6, 0x5caa, 0x5cb2, 0x5cb4, 0x5cb5, 0x5cba, - 0x5cc9, 0x5ccb, 0x5cd2, 0x5cdd, 0x5cd7, 0x5cee, 0x5cf1, 0x5cf2, - 0x5cf4, 0x5d01, 0x5d06, 0x5d0d, 0x5d12, 0x5d2b, 0x5d23, 0x5d24, - 0x5d26, 0x5d27, 0x5d31, 0x5d34, 0x5d39, 0x5d3d, 0x5d3f, 0x5d42, - 0x5d43, 0x5d46, 0x5d48, 0x5d55, 0x5d51, 0x5d59, 0x5d4a, 0x5d5f, - 0x5d60, 0x5d61, 0x5d62, 0x5d64, 0x5d6a, 0x5d6d, 0x5d70, 0x5d79, - 0x5d7a, 0x5d7e, 0x5d7f, 0x5d81, 0x5d83, 0x5d88, 0x5d8a, 0x5d92, - 0x5d93, 0x5d94, 0x5d95, 0x5d99, 0x5d9b, 0x5d9f, 0x5da0, 0x5da7, - 0x5dab, 0x5db0, 0x5db4, 0x5db8, 0x5db9, 0x5dc3, 0x5dc7, 0x5dcb, - 0x5dd0, 0x5dce, 0x5dd8, 0x5dd9, 0x5de0, 0x5de4, - /* 0x3c */ - 0x5de9, 0x5df8, 0x5df9, 0x5e00, 0x5e07, 0x5e0d, 0x5e12, 0x5e14, - 0x5e15, 0x5e18, 0x5e1f, 0x5e20, 0x5e2e, 0x5e28, 0x5e32, 0x5e35, - 0x5e3e, 0x5e4b, 0x5e50, 0x5e49, 0x5e51, 0x5e56, 0x5e58, 0x5e5b, - 0x5e5c, 0x5e5e, 0x5e68, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, - 0x5e70, 0x5e80, 0x5e8b, 0x5e8e, 0x5ea2, 0x5ea4, 0x5ea5, 0x5ea8, - 0x5eaa, 0x5eac, 0x5eb1, 0x5eb3, 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec6, - 0x5ecc, 0x5ecb, 0x5ece, 0x5ed1, 0x5ed2, 0x5ed4, 0x5ed5, 0x5edc, - 0x5ede, 0x5ee5, 0x5eeb, 0x5f02, 0x5f06, 0x5f07, 0x5f08, 0x5f0e, - 0x5f19, 0x5f1c, 0x5f1d, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x5f28, - 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f34, 0x5f36, 0x5f3b, 0x5f3d, - 0x5f3f, 0x5f40, 0x5f44, 0x5f45, 0x5f47, 0x5f4d, 0x5f50, 0x5f54, - 0x5f58, 0x5f5b, 0x5f60, 0x5f63, 0x5f64, 0x5f67, - /* 0x3d */ - 0x5f6f, 0x5f72, 0x5f74, 0x5f75, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, - 0x5f89, 0x5f8d, 0x5f8f, 0x5f96, 0x5f9c, 0x5f9d, 0x5fa2, 0x5fa7, - 0x5fab, 0x5fa4, 0x5fac, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb8, 0x5fc4, - 0x5fc7, 0x5fc8, 0x5fc9, 0x5fcb, 0x5fd0, 0x5fd1, 0x5fd2, 0x5fd3, - 0x5fd4, 0x5fde, 0x5fe1, 0x5fe2, 0x5fe8, 0x5fe9, 0x5fea, 0x5fec, - 0x5fed, 0x5fee, 0x5fef, 0x5ff2, 0x5ff3, 0x5ff6, 0x5ffa, 0x5ffc, - 0x6007, 0x600a, 0x600d, 0x6013, 0x6014, 0x6017, 0x6018, 0x601a, - 0x601f, 0x6024, 0x602d, 0x6033, 0x6035, 0x6040, 0x6047, 0x6048, - 0x6049, 0x604c, 0x6051, 0x6054, 0x6056, 0x6057, 0x605d, 0x6061, - 0x6067, 0x6071, 0x607e, 0x607f, 0x6082, 0x6086, 0x6088, 0x608a, - 0x608e, 0x6091, 0x6093, 0x6095, 0x6098, 0x609d, 0x609e, 0x60a2, - 0x60a4, 0x60a5, 0x60a8, 0x60b0, 0x60b1, 0x60b7, - /* 0x3e */ - 0x60bb, 0x60be, 0x60c2, 0x60c4, 0x60c8, 0x60c9, 0x60ca, 0x60cb, - 0x60ce, 0x60cf, 0x60d4, 0x60d5, 0x60d9, 0x60db, 0x60dd, 0x60de, - 0x60e2, 0x60e5, 0x60f2, 0x60f5, 0x60f8, 0x60fc, 0x60fd, 0x6102, - 0x6107, 0x610a, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, - 0x6116, 0x6117, 0x6119, 0x611c, 0x611e, 0x6122, 0x612a, 0x612b, - 0x6130, 0x6131, 0x6135, 0x6136, 0x6137, 0x6139, 0x6141, 0x6145, - 0x6146, 0x6149, 0x615e, 0x6160, 0x616c, 0x6172, 0x6178, 0x617b, - 0x617c, 0x617f, 0x6180, 0x6181, 0x6183, 0x6184, 0x618b, 0x618d, - 0x6192, 0x6193, 0x6197, 0x6198, 0x619c, 0x619d, 0x619f, 0x61a0, - 0x61a5, 0x61a8, 0x61aa, 0x61ad, 0x61b8, 0x61b9, 0x61bc, 0x61c0, - 0x61c1, 0x61c2, 0x61ce, 0x61cf, 0x61d5, 0x61dc, 0x61dd, 0x61de, - 0x61df, 0x61e1, 0x61e2, 0x61e7, 0x61e9, 0x61e5, - /* 0x3f */ - 0x61ec, 0x61ed, 0x61ef, 0x6201, 0x6203, 0x6204, 0x6207, 0x6213, - 0x6215, 0x621c, 0x6220, 0x6222, 0x6223, 0x6227, 0x6229, 0x622b, - 0x6239, 0x623d, 0x6242, 0x6243, 0x6244, 0x6246, 0x624c, 0x6250, - 0x6251, 0x6252, 0x6254, 0x6256, 0x625a, 0x625c, 0x6264, 0x626d, - 0x626f, 0x6273, 0x627a, 0x627d, 0x628d, 0x628e, 0x628f, 0x6290, - 0x62a6, 0x62a8, 0x62b3, 0x62b6, 0x62b7, 0x62ba, 0x62be, 0x62bf, - 0x62c4, 0x62ce, 0x62d5, 0x62d6, 0x62da, 0x62ea, 0x62f2, 0x62f4, - 0x62fc, 0x62fd, 0x6303, 0x6304, 0x630a, 0x630b, 0x630d, 0x6310, - 0x6313, 0x6316, 0x6318, 0x6329, 0x632a, 0x632d, 0x6335, 0x6336, - 0x6339, 0x633c, 0x6341, 0x6342, 0x6343, 0x6344, 0x6346, 0x634a, - 0x634b, 0x634e, 0x6352, 0x6353, 0x6354, 0x6358, 0x635b, 0x6365, - 0x6366, 0x636c, 0x636d, 0x6371, 0x6374, 0x6375, - /* 0x40 */ - 0x6378, 0x637c, 0x637d, 0x637f, 0x6382, 0x6384, 0x6387, 0x638a, - 0x6390, 0x6394, 0x6395, 0x6399, 0x639a, 0x639e, 0x63a4, 0x63a6, - 0x63ad, 0x63ae, 0x63af, 0x63bd, 0x63c1, 0x63c5, 0x63c8, 0x63ce, - 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63dc, 0x63e0, 0x63e5, 0x63ea, - 0x63ec, 0x63f2, 0x63f3, 0x63f5, 0x63f8, 0x63f9, 0x6409, 0x640a, - 0x6410, 0x6412, 0x6414, 0x6418, 0x641e, 0x6420, 0x6422, 0x6424, - 0x6425, 0x6429, 0x642a, 0x642f, 0x6430, 0x6435, 0x643d, 0x643f, - 0x644b, 0x644f, 0x6451, 0x6452, 0x6453, 0x6454, 0x645a, 0x645b, - 0x645c, 0x645d, 0x645f, 0x6460, 0x6461, 0x6463, 0x646d, 0x6473, - 0x6474, 0x647b, 0x647d, 0x6485, 0x6487, 0x648f, 0x6490, 0x6491, - 0x6498, 0x6499, 0x649b, 0x649d, 0x649f, 0x64a1, 0x64a3, 0x64a6, - 0x64a8, 0x64ac, 0x64b3, 0x64bd, 0x64be, 0x64bf, - /* 0x41 */ - 0x64c4, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64ce, 0x64d0, 0x64d1, - 0x64d5, 0x64d7, 0x64e4, 0x64e5, 0x64e9, 0x64ea, 0x64ed, 0x64f0, - 0x64f5, 0x64f7, 0x64fb, 0x64ff, 0x6501, 0x6504, 0x6508, 0x6509, - 0x650a, 0x650f, 0x6513, 0x6514, 0x6516, 0x6519, 0x651b, 0x651e, - 0x651f, 0x6522, 0x6526, 0x6529, 0x652e, 0x6531, 0x653a, 0x653c, - 0x653d, 0x6543, 0x6547, 0x6549, 0x6550, 0x6552, 0x6554, 0x655f, - 0x6560, 0x6567, 0x656b, 0x657a, 0x657d, 0x6581, 0x6585, 0x658a, - 0x6592, 0x6595, 0x6598, 0x659d, 0x65a0, 0x65a3, 0x65a6, 0x65ae, - 0x65b2, 0x65b3, 0x65b4, 0x65bf, 0x65c2, 0x65c8, 0x65c9, 0x65ce, - 0x65d0, 0x65d4, 0x65d6, 0x65d8, 0x65df, 0x65f0, 0x65f2, 0x65f4, - 0x65f5, 0x65f9, 0x65fe, 0x65ff, 0x6600, 0x6604, 0x6608, 0x6609, - 0x660d, 0x6611, 0x6612, 0x6615, 0x6616, 0x661d, - /* 0x42 */ - 0x661e, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662a, - 0x662b, 0x662c, 0x662e, 0x6630, 0x6631, 0x6633, 0x6639, 0x6637, - 0x6640, 0x6645, 0x6646, 0x664a, 0x664c, 0x6651, 0x664e, 0x6657, - 0x6658, 0x6659, 0x665b, 0x665c, 0x6660, 0x6661, 0x66fb, 0x666a, - 0x666b, 0x666c, 0x667e, 0x6673, 0x6675, 0x667f, 0x6677, 0x6678, - 0x6679, 0x667b, 0x6680, 0x667c, 0x668b, 0x668c, 0x668d, 0x6690, - 0x6692, 0x6699, 0x669a, 0x669b, 0x669c, 0x669f, 0x66a0, 0x66a4, - 0x66ad, 0x66b1, 0x66b2, 0x66b5, 0x66bb, 0x66bf, 0x66c0, 0x66c2, - 0x66c3, 0x66c8, 0x66cc, 0x66ce, 0x66cf, 0x66d4, 0x66db, 0x66df, - 0x66e8, 0x66eb, 0x66ec, 0x66ee, 0x66fa, 0x6705, 0x6707, 0x670e, - 0x6713, 0x6719, 0x671c, 0x6720, 0x6722, 0x6733, 0x673e, 0x6745, - 0x6747, 0x6748, 0x674c, 0x6754, 0x6755, 0x675d, - /* 0x43 */ - 0x6766, 0x676c, 0x676e, 0x6774, 0x6776, 0x677b, 0x6781, 0x6784, - 0x678e, 0x678f, 0x6791, 0x6793, 0x6796, 0x6798, 0x6799, 0x679b, - 0x67b0, 0x67b1, 0x67b2, 0x67b5, 0x67bb, 0x67bc, 0x67bd, 0x67f9, - 0x67c0, 0x67c2, 0x67c3, 0x67c5, 0x67c8, 0x67c9, 0x67d2, 0x67d7, - 0x67d9, 0x67dc, 0x67e1, 0x67e6, 0x67f0, 0x67f2, 0x67f6, 0x67f7, - 0x6852, 0x6814, 0x6819, 0x681d, 0x681f, 0x6828, 0x6827, 0x682c, - 0x682d, 0x682f, 0x6830, 0x6831, 0x6833, 0x683b, 0x683f, 0x6844, - 0x6845, 0x684a, 0x684c, 0x6855, 0x6857, 0x6858, 0x685b, 0x686b, - 0x686e, 0x686f, 0x6870, 0x6871, 0x6872, 0x6875, 0x6879, 0x687a, - 0x687b, 0x687c, 0x6882, 0x6884, 0x6886, 0x6888, 0x6896, 0x6898, - 0x689a, 0x689c, 0x68a1, 0x68a3, 0x68a5, 0x68a9, 0x68aa, 0x68ae, - 0x68b2, 0x68bb, 0x68c5, 0x68c8, 0x68cc, 0x68cf, - /* 0x44 */ - 0x68d0, 0x68d1, 0x68d3, 0x68d6, 0x68d9, 0x68dc, 0x68dd, 0x68e5, - 0x68e8, 0x68ea, 0x68eb, 0x68ec, 0x68ed, 0x68f0, 0x68f1, 0x68f5, - 0x68f6, 0x68fb, 0x68fc, 0x68fd, 0x6906, 0x6909, 0x690a, 0x6910, - 0x6911, 0x6913, 0x6916, 0x6917, 0x6931, 0x6933, 0x6935, 0x6938, - 0x693b, 0x6942, 0x6945, 0x6949, 0x694e, 0x6957, 0x695b, 0x6963, - 0x6964, 0x6965, 0x6966, 0x6968, 0x6969, 0x696c, 0x6970, 0x6971, - 0x6972, 0x697a, 0x697b, 0x697f, 0x6980, 0x698d, 0x6992, 0x6996, - 0x6998, 0x69a1, 0x69a5, 0x69a6, 0x69a8, 0x69ab, 0x69ad, 0x69af, - 0x69b7, 0x69b8, 0x69ba, 0x69bc, 0x69c5, 0x69c8, 0x69d1, 0x69d6, - 0x69d7, 0x69e2, 0x69e5, 0x69ee, 0x69ef, 0x69f1, 0x69f3, 0x69f5, - 0x69fe, 0x6a00, 0x6a01, 0x6a03, 0x6a0f, 0x6a11, 0x6a15, 0x6a1a, - 0x6a1d, 0x6a20, 0x6a24, 0x6a28, 0x6a30, 0x6a32, - /* 0x45 */ - 0x6a34, 0x6a37, 0x6a3b, 0x6a3e, 0x6a3f, 0x6a45, 0x6a46, 0x6a49, - 0x6a4a, 0x6a4e, 0x6a50, 0x6a51, 0x6a52, 0x6a55, 0x6a56, 0x6a5b, - 0x6a64, 0x6a67, 0x6a6a, 0x6a71, 0x6a73, 0x6a7e, 0x6a81, 0x6a83, - 0x6a86, 0x6a87, 0x6a89, 0x6a8b, 0x6a91, 0x6a9b, 0x6a9d, 0x6a9e, - 0x6a9f, 0x6aa5, 0x6aab, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab4, 0x6abd, - 0x6abe, 0x6abf, 0x6ac6, 0x6ac9, 0x6ac8, 0x6acc, 0x6ad0, 0x6ad4, - 0x6ad5, 0x6ad6, 0x6adc, 0x6add, 0x6ae4, 0x6ae7, 0x6aec, 0x6af0, - 0x6af1, 0x6af2, 0x6afc, 0x6afd, 0x6b02, 0x6b03, 0x6b06, 0x6b07, - 0x6b09, 0x6b0f, 0x6b10, 0x6b11, 0x6b17, 0x6b1b, 0x6b1e, 0x6b24, - 0x6b28, 0x6b2b, 0x6b2c, 0x6b2f, 0x6b35, 0x6b36, 0x6b3b, 0x6b3f, - 0x6b46, 0x6b4a, 0x6b4d, 0x6b52, 0x6b56, 0x6b58, 0x6b5d, 0x6b60, - 0x6b67, 0x6b6b, 0x6b6e, 0x6b70, 0x6b75, 0x6b7d, - /* 0x46 */ - 0x6b7e, 0x6b82, 0x6b85, 0x6b97, 0x6b9b, 0x6b9f, 0x6ba0, 0x6ba2, - 0x6ba3, 0x6ba8, 0x6ba9, 0x6bac, 0x6bad, 0x6bae, 0x6bb0, 0x6bb8, - 0x6bb9, 0x6bbd, 0x6bbe, 0x6bc3, 0x6bc4, 0x6bc9, 0x6bcc, 0x6bd6, - 0x6bda, 0x6be1, 0x6be3, 0x6be6, 0x6be7, 0x6bee, 0x6bf1, 0x6bf7, - 0x6bf9, 0x6bff, 0x6c02, 0x6c04, 0x6c05, 0x6c09, 0x6c0d, 0x6c0e, - 0x6c10, 0x6c12, 0x6c19, 0x6c1f, 0x6c26, 0x6c27, 0x6c28, 0x6c2c, - 0x6c2e, 0x6c33, 0x6c35, 0x6c36, 0x6c3a, 0x6c3b, 0x6c3f, 0x6c4a, - 0x6c4b, 0x6c4d, 0x6c4f, 0x6c52, 0x6c54, 0x6c59, 0x6c5b, 0x6c5c, - 0x6c6b, 0x6c6d, 0x6c6f, 0x6c74, 0x6c76, 0x6c78, 0x6c79, 0x6c7b, - 0x6c85, 0x6c86, 0x6c87, 0x6c89, 0x6c94, 0x6c95, 0x6c97, 0x6c98, - 0x6c9c, 0x6c9f, 0x6cb0, 0x6cb2, 0x6cb4, 0x6cc2, 0x6cc6, 0x6ccd, - 0x6ccf, 0x6cd0, 0x6cd1, 0x6cd2, 0x6cd4, 0x6cd6, - /* 0x47 */ - 0x6cda, 0x6cdc, 0x6ce0, 0x6ce7, 0x6ce9, 0x6ceb, 0x6cec, 0x6cee, - 0x6cf2, 0x6cf4, 0x6d04, 0x6d07, 0x6d0a, 0x6d0e, 0x6d0f, 0x6d11, - 0x6d13, 0x6d1a, 0x6d26, 0x6d27, 0x6d28, 0x6c67, 0x6d2e, 0x6d2f, - 0x6d31, 0x6d39, 0x6d3c, 0x6d3f, 0x6d57, 0x6d5e, 0x6d5f, 0x6d61, - 0x6d65, 0x6d67, 0x6d6f, 0x6d70, 0x6d7c, 0x6d82, 0x6d87, 0x6d91, - 0x6d92, 0x6d94, 0x6d96, 0x6d97, 0x6d98, 0x6daa, 0x6dac, 0x6db4, - 0x6db7, 0x6db9, 0x6dbd, 0x6dbf, 0x6dc4, 0x6dc8, 0x6dca, 0x6dce, - 0x6dcf, 0x6dd6, 0x6ddb, 0x6ddd, 0x6ddf, 0x6de0, 0x6de2, 0x6de5, - 0x6de9, 0x6def, 0x6df0, 0x6df4, 0x6df6, 0x6dfc, 0x6e00, 0x6e04, - 0x6e1e, 0x6e22, 0x6e27, 0x6e32, 0x6e36, 0x6e39, 0x6e3b, 0x6e3c, - 0x6e44, 0x6e45, 0x6e48, 0x6e49, 0x6e4b, 0x6e4f, 0x6e51, 0x6e52, - 0x6e53, 0x6e54, 0x6e57, 0x6e5c, 0x6e5d, 0x6e5e, - /* 0x48 */ - 0x6e62, 0x6e63, 0x6e68, 0x6e73, 0x6e7b, 0x6e7d, 0x6e8d, 0x6e93, - 0x6e99, 0x6ea0, 0x6ea7, 0x6ead, 0x6eae, 0x6eb1, 0x6eb3, 0x6ebb, - 0x6ebf, 0x6ec0, 0x6ec1, 0x6ec3, 0x6ec7, 0x6ec8, 0x6eca, 0x6ecd, - 0x6ece, 0x6ecf, 0x6eeb, 0x6eed, 0x6eee, 0x6ef9, 0x6efb, 0x6efd, - 0x6f04, 0x6f08, 0x6f0a, 0x6f0c, 0x6f0d, 0x6f16, 0x6f18, 0x6f1a, - 0x6f1b, 0x6f26, 0x6f29, 0x6f2a, 0x6f2f, 0x6f30, 0x6f33, 0x6f36, - 0x6f3b, 0x6f3c, 0x6f2d, 0x6f4f, 0x6f51, 0x6f52, 0x6f53, 0x6f57, - 0x6f59, 0x6f5a, 0x6f5d, 0x6f5e, 0x6f61, 0x6f62, 0x6f68, 0x6f6c, - 0x6f7d, 0x6f7e, 0x6f83, 0x6f87, 0x6f88, 0x6f8b, 0x6f8c, 0x6f8d, - 0x6f90, 0x6f92, 0x6f93, 0x6f94, 0x6f96, 0x6f9a, 0x6f9f, 0x6fa0, - 0x6fa5, 0x6fa6, 0x6fa7, 0x6fa8, 0x6fae, 0x6faf, 0x6fb0, 0x6fb5, - 0x6fb6, 0x6fbc, 0x6fc5, 0x6fc7, 0x6fc8, 0x6fca, - /* 0x49 */ - 0x6fda, 0x6fde, 0x6fe8, 0x6fe9, 0x6ff0, 0x6ff5, 0x6ff9, 0x6ffc, - 0x6ffd, 0x7000, 0x7005, 0x7006, 0x7007, 0x700d, 0x7017, 0x7020, - 0x7023, 0x702f, 0x7034, 0x7037, 0x7039, 0x703c, 0x7043, 0x7044, - 0x7048, 0x7049, 0x704a, 0x704b, 0x7054, 0x7055, 0x705d, 0x705e, - 0x704e, 0x7064, 0x7065, 0x706c, 0x706e, 0x7075, 0x7076, 0x707e, - 0x7081, 0x7085, 0x7086, 0x7094, 0x7095, 0x7096, 0x7097, 0x7098, - 0x709b, 0x70a4, 0x70ab, 0x70b0, 0x70b1, 0x70b4, 0x70b7, 0x70ca, - 0x70d1, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d8, 0x70dc, 0x70e4, - 0x70fa, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x710b, 0x710c, - 0x710f, 0x711e, 0x7120, 0x712b, 0x712d, 0x712f, 0x7130, 0x7131, - 0x7138, 0x7141, 0x7145, 0x7146, 0x7147, 0x714a, 0x714b, 0x7150, - 0x7152, 0x7157, 0x715a, 0x715c, 0x715e, 0x7160, - /* 0x4a */ - 0x7168, 0x7179, 0x7180, 0x7185, 0x7187, 0x718c, 0x7192, 0x719a, - 0x719b, 0x71a0, 0x71a2, 0x71af, 0x71b0, 0x71b2, 0x71b3, 0x71ba, - 0x71bf, 0x71c0, 0x71c1, 0x71c4, 0x71cb, 0x71cc, 0x71d3, 0x71d6, - 0x71d9, 0x71da, 0x71dc, 0x71f8, 0x71fe, 0x7200, 0x7207, 0x7208, - 0x7209, 0x7213, 0x7217, 0x721a, 0x721d, 0x721f, 0x7224, 0x722b, - 0x722f, 0x7234, 0x7238, 0x7239, 0x7241, 0x7242, 0x7243, 0x7245, - 0x724e, 0x724f, 0x7250, 0x7253, 0x7255, 0x7256, 0x725a, 0x725c, - 0x725e, 0x7260, 0x7263, 0x7268, 0x726b, 0x726e, 0x726f, 0x7271, - 0x7277, 0x7278, 0x727b, 0x727c, 0x727f, 0x7284, 0x7289, 0x728d, - 0x728e, 0x7293, 0x729b, 0x72a8, 0x72ad, 0x72ae, 0x72b1, 0x72b4, - 0x72be, 0x72c1, 0x72c7, 0x72c9, 0x72cc, 0x72d5, 0x72d6, 0x72d8, - 0x72df, 0x72e5, 0x72f3, 0x72f4, 0x72fa, 0x72fb, - /* 0x4b */ - 0x72fe, 0x7302, 0x7304, 0x7305, 0x7307, 0x730b, 0x730d, 0x7312, - 0x7313, 0x7318, 0x7319, 0x731e, 0x7322, 0x7324, 0x7327, 0x7328, - 0x732c, 0x7331, 0x7332, 0x7335, 0x733a, 0x733b, 0x733d, 0x7343, - 0x734d, 0x7350, 0x7352, 0x7356, 0x7358, 0x735d, 0x735e, 0x735f, - 0x7360, 0x7366, 0x7367, 0x7369, 0x736b, 0x736c, 0x736e, 0x736f, - 0x7371, 0x7377, 0x7379, 0x737c, 0x7380, 0x7381, 0x7383, 0x7385, - 0x7386, 0x738e, 0x7390, 0x7393, 0x7395, 0x7397, 0x7398, 0x739c, - 0x739e, 0x739f, 0x73a0, 0x73a2, 0x73a5, 0x73a6, 0x73aa, 0x73ab, - 0x73ad, 0x73b5, 0x73b7, 0x73b9, 0x73bc, 0x73bd, 0x73bf, 0x73c5, - 0x73c6, 0x73c9, 0x73cb, 0x73cc, 0x73cf, 0x73d2, 0x73d3, 0x73d6, - 0x73d9, 0x73dd, 0x73e1, 0x73e3, 0x73e6, 0x73e7, 0x73e9, 0x73f4, - 0x73f5, 0x73f7, 0x73f9, 0x73fa, 0x73fb, 0x73fd, - /* 0x4c */ - 0x73ff, 0x7400, 0x7401, 0x7404, 0x7407, 0x740a, 0x7411, 0x741a, - 0x741b, 0x7424, 0x7426, 0x7428, 0x7429, 0x742a, 0x742b, 0x742c, - 0x742d, 0x742e, 0x742f, 0x7430, 0x7431, 0x7439, 0x7440, 0x7443, - 0x7444, 0x7446, 0x7447, 0x744b, 0x744d, 0x7451, 0x7452, 0x7457, - 0x745d, 0x7462, 0x7466, 0x7467, 0x7468, 0x746b, 0x746d, 0x746e, - 0x7471, 0x7472, 0x7480, 0x7481, 0x7485, 0x7486, 0x7487, 0x7489, - 0x748f, 0x7490, 0x7491, 0x7492, 0x7498, 0x7499, 0x749a, 0x749c, - 0x749f, 0x74a0, 0x74a1, 0x74a3, 0x74a6, 0x74a8, 0x74a9, 0x74aa, - 0x74ab, 0x74ae, 0x74af, 0x74b1, 0x74b2, 0x74b5, 0x74b9, 0x74bb, - 0x74bf, 0x74c8, 0x74c9, 0x74cc, 0x74d0, 0x74d3, 0x74d8, 0x74da, - 0x74db, 0x74de, 0x74df, 0x74e4, 0x74e8, 0x74ea, 0x74eb, 0x74ef, - 0x74f4, 0x74fa, 0x74fb, 0x74fc, 0x74ff, 0x7506, - /* 0x4d */ - 0x7512, 0x7516, 0x7517, 0x7520, 0x7521, 0x7524, 0x7527, 0x7529, - 0x752a, 0x752f, 0x7536, 0x7539, 0x753d, 0x753e, 0x753f, 0x7540, - 0x7543, 0x7547, 0x7548, 0x754e, 0x7550, 0x7552, 0x7557, 0x755e, - 0x755f, 0x7561, 0x756f, 0x7571, 0x7579, 0x757a, 0x757b, 0x757c, - 0x757d, 0x757e, 0x7581, 0x7585, 0x7590, 0x7592, 0x7593, 0x7595, - 0x7599, 0x759c, 0x75a2, 0x75a4, 0x75b4, 0x75ba, 0x75bf, 0x75c0, - 0x75c1, 0x75c4, 0x75c6, 0x75cc, 0x75ce, 0x75cf, 0x75d7, 0x75dc, - 0x75df, 0x75e0, 0x75e1, 0x75e4, 0x75e7, 0x75ec, 0x75ee, 0x75ef, - 0x75f1, 0x75f9, 0x7600, 0x7602, 0x7603, 0x7604, 0x7607, 0x7608, - 0x760a, 0x760c, 0x760f, 0x7612, 0x7613, 0x7615, 0x7616, 0x7619, - 0x761b, 0x761c, 0x761d, 0x761e, 0x7623, 0x7625, 0x7626, 0x7629, - 0x762d, 0x7632, 0x7633, 0x7635, 0x7638, 0x7639, - /* 0x4e */ - 0x763a, 0x763c, 0x764a, 0x7640, 0x7641, 0x7643, 0x7644, 0x7645, - 0x7649, 0x764b, 0x7655, 0x7659, 0x765f, 0x7664, 0x7665, 0x766d, - 0x766e, 0x766f, 0x7671, 0x7674, 0x7681, 0x7685, 0x768c, 0x768d, - 0x7695, 0x769b, 0x769c, 0x769d, 0x769f, 0x76a0, 0x76a2, 0x76a3, - 0x76a4, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76aa, 0x76ad, 0x76bd, - 0x76c1, 0x76c5, 0x76c9, 0x76cb, 0x76cc, 0x76ce, 0x76d4, 0x76d9, - 0x76e0, 0x76e6, 0x76e8, 0x76ec, 0x76f0, 0x76f1, 0x76f6, 0x76f9, - 0x76fc, 0x7700, 0x7706, 0x770a, 0x770e, 0x7712, 0x7714, 0x7715, - 0x7717, 0x7719, 0x771a, 0x771c, 0x7722, 0x7728, 0x772d, 0x772e, - 0x772f, 0x7734, 0x7735, 0x7736, 0x7739, 0x773d, 0x773e, 0x7742, - 0x7745, 0x7746, 0x774a, 0x774d, 0x774e, 0x774f, 0x7752, 0x7756, - 0x7757, 0x775c, 0x775e, 0x775f, 0x7760, 0x7762, - /* 0x4f */ - 0x7764, 0x7767, 0x776a, 0x776c, 0x7770, 0x7772, 0x7773, 0x7774, - 0x777a, 0x777d, 0x7780, 0x7784, 0x778c, 0x778d, 0x7794, 0x7795, - 0x7796, 0x779a, 0x779f, 0x77a2, 0x77a7, 0x77aa, 0x77ae, 0x77af, - 0x77b1, 0x77b5, 0x77be, 0x77c3, 0x77c9, 0x77d1, 0x77d2, 0x77d5, - 0x77d9, 0x77de, 0x77df, 0x77e0, 0x77e4, 0x77e6, 0x77ea, 0x77ec, - 0x77f0, 0x77f1, 0x77f4, 0x77f8, 0x77fb, 0x7805, 0x7806, 0x7809, - 0x780d, 0x780e, 0x7811, 0x781d, 0x7821, 0x7822, 0x7823, 0x782d, - 0x782e, 0x7830, 0x7835, 0x7837, 0x7843, 0x7844, 0x7847, 0x7848, - 0x784c, 0x784e, 0x7852, 0x785c, 0x785e, 0x7860, 0x7861, 0x7863, - 0x7864, 0x7868, 0x786a, 0x786e, 0x787a, 0x787e, 0x788a, 0x788f, - 0x7894, 0x7898, 0x78a1, 0x789d, 0x789e, 0x789f, 0x78a4, 0x78a8, - 0x78ac, 0x78ad, 0x78b0, 0x78b1, 0x78b2, 0x78b3, - /* 0x50 */ - 0x78bb, 0x78bd, 0x78bf, 0x78c7, 0x78c8, 0x78c9, 0x78cc, 0x78ce, - 0x78d2, 0x78d3, 0x78d5, 0x78d6, 0x78e4, 0x78db, 0x78df, 0x78e0, - 0x78e1, 0x78e6, 0x78ea, 0x78f2, 0x78f3, 0x7900, 0x78f6, 0x78f7, - 0x78fa, 0x78fb, 0x78ff, 0x7906, 0x790c, 0x7910, 0x791a, 0x791c, - 0x791e, 0x791f, 0x7920, 0x7925, 0x7927, 0x7929, 0x792d, 0x7931, - 0x7934, 0x7935, 0x793b, 0x793d, 0x793f, 0x7944, 0x7945, 0x7946, - 0x794a, 0x794b, 0x794f, 0x7951, 0x7954, 0x7958, 0x795b, 0x795c, - 0x7967, 0x7969, 0x796b, 0x7972, 0x7979, 0x797b, 0x797c, 0x797e, - 0x798b, 0x798c, 0x7991, 0x7993, 0x7994, 0x7995, 0x7996, 0x7998, - 0x799b, 0x799c, 0x79a1, 0x79a8, 0x79a9, 0x79ab, 0x79af, 0x79b1, - 0x79b4, 0x79b8, 0x79bb, 0x79c2, 0x79c4, 0x79c7, 0x79c8, 0x79ca, - 0x79cf, 0x79d4, 0x79d6, 0x79da, 0x79dd, 0x79de, - /* 0x51 */ - 0x79e0, 0x79e2, 0x79e5, 0x79ea, 0x79eb, 0x79ed, 0x79f1, 0x79f8, - 0x79fc, 0x7a02, 0x7a03, 0x7a07, 0x7a09, 0x7a0a, 0x7a0c, 0x7a11, - 0x7a15, 0x7a1b, 0x7a1e, 0x7a21, 0x7a27, 0x7a2b, 0x7a2d, 0x7a2f, - 0x7a30, 0x7a34, 0x7a35, 0x7a38, 0x7a39, 0x7a3a, 0x7a44, 0x7a45, - 0x7a47, 0x7a48, 0x7a4c, 0x7a55, 0x7a56, 0x7a59, 0x7a5c, 0x7a5d, - 0x7a5f, 0x7a60, 0x7a65, 0x7a67, 0x7a6a, 0x7a6d, 0x7a75, 0x7a78, - 0x7a7e, 0x7a80, 0x7a82, 0x7a85, 0x7a86, 0x7a8a, 0x7a8b, 0x7a90, - 0x7a91, 0x7a94, 0x7a9e, 0x7aa0, 0x7aa3, 0x7aac, 0x7ab3, 0x7ab5, - 0x7ab9, 0x7abb, 0x7abc, 0x7ac6, 0x7ac9, 0x7acc, 0x7ace, 0x7ad1, - 0x7adb, 0x7ae8, 0x7ae9, 0x7aeb, 0x7aec, 0x7af1, 0x7af4, 0x7afb, - 0x7afd, 0x7afe, 0x7b07, 0x7b14, 0x7b1f, 0x7b23, 0x7b27, 0x7b29, - 0x7b2a, 0x7b2b, 0x7b2d, 0x7b2e, 0x7b2f, 0x7b30, - /* 0x52 */ - 0x7b31, 0x7b34, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b47, 0x7b4e, - 0x7b55, 0x7b60, 0x7b64, 0x7b66, 0x7b69, 0x7b6a, 0x7b6d, 0x7b6f, - 0x7b72, 0x7b73, 0x7b77, 0x7b84, 0x7b89, 0x7b8e, 0x7b90, 0x7b91, - 0x7b96, 0x7b9b, 0x7b9e, 0x7ba0, 0x7ba5, 0x7bac, 0x7baf, 0x7bb0, - 0x7bb2, 0x7bb5, 0x7bb6, 0x7bba, 0x7bbb, 0x7bbc, 0x7bbd, 0x7bc2, - 0x7bc5, 0x7bc8, 0x7bca, 0x7bd4, 0x7bd6, 0x7bd7, 0x7bd9, 0x7bda, - 0x7bdb, 0x7be8, 0x7bea, 0x7bf2, 0x7bf4, 0x7bf5, 0x7bf8, 0x7bf9, - 0x7bfa, 0x7bfc, 0x7bfe, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c06, - 0x7c09, 0x7c0b, 0x7c0c, 0x7c0e, 0x7c0f, 0x7c19, 0x7c1b, 0x7c20, - 0x7c25, 0x7c26, 0x7c28, 0x7c2c, 0x7c31, 0x7c33, 0x7c34, 0x7c36, - 0x7c39, 0x7c3a, 0x7c46, 0x7c4a, 0x7c55, 0x7c51, 0x7c52, 0x7c53, - 0x7c59, 0x7c5a, 0x7c5b, 0x7c5c, 0x7c5d, 0x7c5e, - /* 0x53 */ - 0x7c61, 0x7c63, 0x7c67, 0x7c69, 0x7c6d, 0x7c6e, 0x7c70, 0x7c72, - 0x7c79, 0x7c7c, 0x7c7d, 0x7c86, 0x7c87, 0x7c8f, 0x7c94, 0x7c9e, - 0x7ca0, 0x7ca6, 0x7cb0, 0x7cb6, 0x7cb7, 0x7cba, 0x7cbb, 0x7cbc, - 0x7cbf, 0x7cc4, 0x7cc7, 0x7cc8, 0x7cc9, 0x7ccd, 0x7ccf, 0x7cd3, - 0x7cd4, 0x7cd5, 0x7cd7, 0x7cd9, 0x7cda, 0x7cdd, 0x7ce6, 0x7ce9, - 0x7ceb, 0x7cf5, 0x7d03, 0x7d07, 0x7d08, 0x7d09, 0x7d0f, 0x7d11, - 0x7d12, 0x7d13, 0x7d16, 0x7d1d, 0x7d1e, 0x7d23, 0x7d26, 0x7d2a, - 0x7d2d, 0x7d31, 0x7d3c, 0x7d3d, 0x7d3e, 0x7d40, 0x7d41, 0x7d47, - 0x7d48, 0x7d4d, 0x7d51, 0x7d53, 0x7d57, 0x7d59, 0x7d5a, 0x7d5c, - 0x7d5d, 0x7d65, 0x7d67, 0x7d6a, 0x7d70, 0x7d78, 0x7d7a, 0x7d7b, - 0x7d7f, 0x7d81, 0x7d82, 0x7d83, 0x7d85, 0x7d86, 0x7d88, 0x7d8b, - 0x7d8c, 0x7d8d, 0x7d91, 0x7d96, 0x7d97, 0x7d9d, - /* 0x54 */ - 0x7d9e, 0x7da6, 0x7da7, 0x7daa, 0x7db3, 0x7db6, 0x7db7, 0x7db9, - 0x7dc2, 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dcc, 0x7dcd, 0x7dce, - 0x7dd7, 0x7dd9, 0x7e00, 0x7de2, 0x7de5, 0x7de6, 0x7dea, 0x7deb, - 0x7ded, 0x7df1, 0x7df5, 0x7df6, 0x7df9, 0x7dfa, 0x7e08, 0x7e10, - 0x7e11, 0x7e15, 0x7e17, 0x7e1c, 0x7e1d, 0x7e20, 0x7e27, 0x7e28, - 0x7e2c, 0x7e2d, 0x7e2f, 0x7e33, 0x7e36, 0x7e3f, 0x7e44, 0x7e45, - 0x7e47, 0x7e4e, 0x7e50, 0x7e52, 0x7e58, 0x7e5f, 0x7e61, 0x7e62, - 0x7e65, 0x7e6b, 0x7e6e, 0x7e6f, 0x7e73, 0x7e78, 0x7e7e, 0x7e81, - 0x7e86, 0x7e87, 0x7e8a, 0x7e8d, 0x7e91, 0x7e95, 0x7e98, 0x7e9a, - 0x7e9d, 0x7e9e, 0x7f3c, 0x7f3b, 0x7f3d, 0x7f3e, 0x7f3f, 0x7f43, - 0x7f44, 0x7f47, 0x7f4f, 0x7f52, 0x7f53, 0x7f5b, 0x7f5c, 0x7f5d, - 0x7f61, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f6d, - /* 0x55 */ - 0x7f71, 0x7f7d, 0x7f7e, 0x7f7f, 0x7f80, 0x7f8b, 0x7f8d, 0x7f8f, - 0x7f90, 0x7f91, 0x7f96, 0x7f97, 0x7f9c, 0x7fa1, 0x7fa2, 0x7fa6, - 0x7faa, 0x7fad, 0x7fb4, 0x7fbc, 0x7fbf, 0x7fc0, 0x7fc3, 0x7fc8, - 0x7fce, 0x7fcf, 0x7fdb, 0x7fdf, 0x7fe3, 0x7fe5, 0x7fe8, 0x7fec, - 0x7fee, 0x7fef, 0x7ff2, 0x7ffa, 0x7ffd, 0x7ffe, 0x7fff, 0x8007, - 0x8008, 0x800a, 0x800d, 0x800e, 0x800f, 0x8011, 0x8013, 0x8014, - 0x8016, 0x801d, 0x801e, 0x801f, 0x8020, 0x8024, 0x8026, 0x802c, - 0x802e, 0x8030, 0x8034, 0x8035, 0x8037, 0x8039, 0x803a, 0x803c, - 0x803e, 0x8040, 0x8044, 0x8060, 0x8064, 0x8066, 0x806d, 0x8071, - 0x8075, 0x8081, 0x8088, 0x808e, 0x809c, 0x809e, 0x80a6, 0x80a7, - 0x80ab, 0x80b8, 0x80b9, 0x80c8, 0x80cd, 0x80cf, 0x80d2, 0x80d4, - 0x80d5, 0x80d7, 0x80d8, 0x80e0, 0x80ed, 0x80ee, - /* 0x56 */ - 0x80f0, 0x80f2, 0x80f3, 0x80f6, 0x80f9, 0x80fa, 0x80fe, 0x8103, - 0x810b, 0x8116, 0x8117, 0x8118, 0x811c, 0x811e, 0x8120, 0x8124, - 0x8127, 0x812c, 0x8130, 0x8135, 0x813a, 0x813c, 0x8145, 0x8147, - 0x814a, 0x814c, 0x8152, 0x8157, 0x8160, 0x8161, 0x8167, 0x8168, - 0x8169, 0x816d, 0x816f, 0x8177, 0x8181, 0x8190, 0x8184, 0x8185, - 0x8186, 0x818b, 0x818e, 0x8196, 0x8198, 0x819b, 0x819e, 0x81a2, - 0x81ae, 0x81b2, 0x81b4, 0x81bb, 0x81cb, 0x81c3, 0x81c5, 0x81ca, - 0x81ce, 0x81cf, 0x81d5, 0x81d7, 0x81db, 0x81dd, 0x81de, 0x81e1, - 0x81e4, 0x81eb, 0x81ec, 0x81f0, 0x81f1, 0x81f2, 0x81f5, 0x81f6, - 0x81f8, 0x81f9, 0x81fd, 0x81ff, 0x8200, 0x8203, 0x820f, 0x8213, - 0x8214, 0x8219, 0x821a, 0x821d, 0x8221, 0x8222, 0x8228, 0x8232, - 0x8234, 0x823a, 0x8243, 0x8244, 0x8245, 0x8246, - /* 0x57 */ - 0x824b, 0x824e, 0x824f, 0x8251, 0x8256, 0x825c, 0x8260, 0x8263, - 0x8267, 0x826d, 0x8274, 0x827b, 0x827d, 0x827f, 0x8280, 0x8281, - 0x8283, 0x8284, 0x8287, 0x8289, 0x828a, 0x828e, 0x8291, 0x8294, - 0x8296, 0x8298, 0x829a, 0x829b, 0x82a0, 0x82a1, 0x82a3, 0x82a4, - 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ae, 0x82b0, 0x82b2, 0x82b4, - 0x82b7, 0x82ba, 0x82bc, 0x82be, 0x82bf, 0x82c6, 0x82d0, 0x82d5, - 0x82da, 0x82e0, 0x82e2, 0x82e4, 0x82e8, 0x82ea, 0x82ed, 0x82ef, - 0x82f6, 0x82f7, 0x82fd, 0x82fe, 0x8300, 0x8301, 0x8307, 0x8308, - 0x830a, 0x830b, 0x8354, 0x831b, 0x831d, 0x831e, 0x831f, 0x8321, - 0x8322, 0x832c, 0x832d, 0x832e, 0x8330, 0x8333, 0x8337, 0x833a, - 0x833c, 0x833d, 0x8342, 0x8343, 0x8344, 0x8347, 0x834d, 0x834e, - 0x8351, 0x8355, 0x8356, 0x8357, 0x8370, 0x8378, - /* 0x58 */ - 0x837d, 0x837f, 0x8380, 0x8382, 0x8384, 0x8386, 0x838d, 0x8392, - 0x8394, 0x8395, 0x8398, 0x8399, 0x839b, 0x839c, 0x839d, 0x83a6, - 0x83a7, 0x83a9, 0x83ac, 0x83be, 0x83bf, 0x83c0, 0x83c7, 0x83c9, - 0x83cf, 0x83d0, 0x83d1, 0x83d4, 0x83dd, 0x8353, 0x83e8, 0x83ea, - 0x83f6, 0x83f8, 0x83f9, 0x83fc, 0x8401, 0x8406, 0x840a, 0x840f, - 0x8411, 0x8415, 0x8419, 0x83ad, 0x842f, 0x8439, 0x8445, 0x8447, - 0x8448, 0x844a, 0x844d, 0x844f, 0x8451, 0x8452, 0x8456, 0x8458, - 0x8459, 0x845a, 0x845c, 0x8460, 0x8464, 0x8465, 0x8467, 0x846a, - 0x8470, 0x8473, 0x8474, 0x8476, 0x8478, 0x847c, 0x847d, 0x8481, - 0x8485, 0x8492, 0x8493, 0x8495, 0x849e, 0x84a6, 0x84a8, 0x84a9, - 0x84aa, 0x84af, 0x84b1, 0x84b4, 0x84ba, 0x84bd, 0x84be, 0x84c0, - 0x84c2, 0x84c7, 0x84c8, 0x84cc, 0x84cf, 0x84d3, - /* 0x59 */ - 0x84dc, 0x84e7, 0x84ea, 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f7, - 0x8532, 0x84fa, 0x84fb, 0x84fd, 0x8502, 0x8503, 0x8507, 0x850c, - 0x850e, 0x8510, 0x851c, 0x851e, 0x8522, 0x8523, 0x8524, 0x8525, - 0x8527, 0x852a, 0x852b, 0x852f, 0x8533, 0x8534, 0x8536, 0x853f, - 0x8546, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8556, 0x8559, - 0x855c, 0x855d, 0x855e, 0x855f, 0x8560, 0x8561, 0x8562, 0x8564, - 0x856b, 0x856f, 0x8579, 0x857a, 0x857b, 0x857d, 0x857f, 0x8581, - 0x8585, 0x8586, 0x8589, 0x858b, 0x858c, 0x858f, 0x8593, 0x8598, - 0x859d, 0x859f, 0x85a0, 0x85a2, 0x85a5, 0x85a7, 0x85b4, 0x85b6, - 0x85b7, 0x85b8, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c2, 0x85c7, - 0x85ca, 0x85cb, 0x85ce, 0x85ad, 0x85d8, 0x85da, 0x85df, 0x85e0, - 0x85e6, 0x85e8, 0x85ed, 0x85f3, 0x85f6, 0x85fc, - /* 0x5a */ - 0x85ff, 0x8600, 0x8604, 0x8605, 0x860d, 0x860e, 0x8610, 0x8611, - 0x8612, 0x8618, 0x8619, 0x861b, 0x861e, 0x8621, 0x8627, 0x8629, - 0x8636, 0x8638, 0x863a, 0x863c, 0x863d, 0x8640, 0x8642, 0x8646, - 0x8652, 0x8653, 0x8656, 0x8657, 0x8658, 0x8659, 0x865d, 0x8660, - 0x8661, 0x8662, 0x8663, 0x8664, 0x8669, 0x866c, 0x866f, 0x8675, - 0x8676, 0x8677, 0x867a, 0x868d, 0x8691, 0x8696, 0x8698, 0x869a, - 0x869c, 0x86a1, 0x86a6, 0x86a7, 0x86a8, 0x86ad, 0x86b1, 0x86b3, - 0x86b4, 0x86b5, 0x86b7, 0x86b8, 0x86b9, 0x86bf, 0x86c0, 0x86c1, - 0x86c3, 0x86c5, 0x86d1, 0x86d2, 0x86d5, 0x86d7, 0x86da, 0x86dc, - 0x86e0, 0x86e3, 0x86e5, 0x86e7, 0x8688, 0x86fa, 0x86fc, 0x86fd, - 0x8704, 0x8705, 0x8707, 0x870b, 0x870e, 0x870f, 0x8710, 0x8713, - 0x8714, 0x8719, 0x871e, 0x871f, 0x8721, 0x8723, - /* 0x5b */ - 0x8728, 0x872e, 0x872f, 0x8731, 0x8732, 0x8739, 0x873a, 0x873c, - 0x873d, 0x873e, 0x8740, 0x8743, 0x8745, 0x874d, 0x8758, 0x875d, - 0x8761, 0x8764, 0x8765, 0x876f, 0x8771, 0x8772, 0x877b, 0x8783, - 0x8784, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x878b, 0x878c, - 0x8790, 0x8793, 0x8795, 0x8797, 0x8798, 0x8799, 0x879e, 0x87a0, - 0x87a3, 0x87a7, 0x87ac, 0x87ad, 0x87ae, 0x87b1, 0x87b5, 0x87be, - 0x87bf, 0x87c1, 0x87c8, 0x87c9, 0x87ca, 0x87ce, 0x87d5, 0x87d6, - 0x87d9, 0x87da, 0x87dc, 0x87df, 0x87e2, 0x87e3, 0x87e4, 0x87ea, - 0x87eb, 0x87ed, 0x87f1, 0x87f3, 0x87f8, 0x87fa, 0x87ff, 0x8801, - 0x8803, 0x8806, 0x8809, 0x880a, 0x880b, 0x8810, 0x8819, 0x8812, - 0x8813, 0x8814, 0x8818, 0x881a, 0x881b, 0x881c, 0x881e, 0x881f, - 0x8828, 0x882d, 0x882e, 0x8830, 0x8832, 0x8835, - /* 0x5c */ - 0x883a, 0x883c, 0x8841, 0x8843, 0x8845, 0x8848, 0x8849, 0x884a, - 0x884b, 0x884e, 0x8851, 0x8855, 0x8856, 0x8858, 0x885a, 0x885c, - 0x885f, 0x8860, 0x8864, 0x8869, 0x8871, 0x8879, 0x887b, 0x8880, - 0x8898, 0x889a, 0x889b, 0x889c, 0x889f, 0x88a0, 0x88a8, 0x88aa, - 0x88ba, 0x88bd, 0x88be, 0x88c0, 0x88ca, 0x88cb, 0x88cc, 0x88cd, - 0x88ce, 0x88d1, 0x88d2, 0x88d3, 0x88db, 0x88de, 0x88e7, 0x88ef, - 0x88f0, 0x88f1, 0x88f5, 0x88f7, 0x8901, 0x8906, 0x890d, 0x890e, - 0x890f, 0x8915, 0x8916, 0x8918, 0x8919, 0x891a, 0x891c, 0x8920, - 0x8926, 0x8927, 0x8928, 0x8930, 0x8931, 0x8932, 0x8935, 0x8939, - 0x893a, 0x893e, 0x8940, 0x8942, 0x8945, 0x8946, 0x8949, 0x894f, - 0x8952, 0x8957, 0x895a, 0x895b, 0x895c, 0x8961, 0x8962, 0x8963, - 0x896b, 0x896e, 0x8970, 0x8973, 0x8975, 0x897a, - /* 0x5d */ - 0x897b, 0x897c, 0x897d, 0x8989, 0x898d, 0x8990, 0x8994, 0x8995, - 0x899b, 0x899c, 0x899f, 0x89a0, 0x89a5, 0x89b0, 0x89b4, 0x89b5, - 0x89b6, 0x89b7, 0x89bc, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, - 0x89e5, 0x89e9, 0x89eb, 0x89ed, 0x89f1, 0x89f3, 0x89f6, 0x89f9, - 0x89fd, 0x89ff, 0x8a04, 0x8a05, 0x8a07, 0x8a0f, 0x8a11, 0x8a12, - 0x8a14, 0x8a15, 0x8a1e, 0x8a20, 0x8a22, 0x8a24, 0x8a26, 0x8a2b, - 0x8a2c, 0x8a2f, 0x8a35, 0x8a37, 0x8a3d, 0x8a3e, 0x8a40, 0x8a43, - 0x8a45, 0x8a47, 0x8a49, 0x8a4d, 0x8a4e, 0x8a53, 0x8a56, 0x8a57, - 0x8a58, 0x8a5c, 0x8a5d, 0x8a61, 0x8a65, 0x8a67, 0x8a75, 0x8a76, - 0x8a77, 0x8a79, 0x8a7a, 0x8a7b, 0x8a7e, 0x8a7f, 0x8a80, 0x8a83, - 0x8a86, 0x8a8b, 0x8a8f, 0x8a90, 0x8a92, 0x8a96, 0x8a97, 0x8a99, - 0x8a9f, 0x8aa7, 0x8aa9, 0x8aae, 0x8aaf, 0x8ab3, - /* 0x5e */ - 0x8ab6, 0x8ab7, 0x8abb, 0x8abe, 0x8ac3, 0x8ac6, 0x8ac8, 0x8ac9, - 0x8aca, 0x8ad1, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad7, 0x8add, 0x8adf, - 0x8aec, 0x8af0, 0x8af4, 0x8af5, 0x8af6, 0x8afc, 0x8aff, 0x8b05, - 0x8b06, 0x8b0b, 0x8b11, 0x8b1c, 0x8b1e, 0x8b1f, 0x8b0a, 0x8b2d, - 0x8b30, 0x8b37, 0x8b3c, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46, - 0x8b48, 0x8b52, 0x8b53, 0x8b54, 0x8b59, 0x8b4d, 0x8b5e, 0x8b63, - 0x8b6d, 0x8b76, 0x8b78, 0x8b79, 0x8b7c, 0x8b7e, 0x8b81, 0x8b84, - 0x8b85, 0x8b8b, 0x8b8d, 0x8b8f, 0x8b94, 0x8b95, 0x8b9c, 0x8b9e, - 0x8b9f, 0x8c38, 0x8c39, 0x8c3d, 0x8c3e, 0x8c45, 0x8c47, 0x8c49, - 0x8c4b, 0x8c4f, 0x8c51, 0x8c53, 0x8c54, 0x8c57, 0x8c58, 0x8c5b, - 0x8c5d, 0x8c59, 0x8c63, 0x8c64, 0x8c66, 0x8c68, 0x8c69, 0x8c6d, - 0x8c73, 0x8c75, 0x8c76, 0x8c7b, 0x8c7e, 0x8c86, - /* 0x5f */ - 0x8c87, 0x8c8b, 0x8c90, 0x8c92, 0x8c93, 0x8c99, 0x8c9b, 0x8c9c, - 0x8ca4, 0x8cb9, 0x8cba, 0x8cc5, 0x8cc6, 0x8cc9, 0x8ccb, 0x8ccf, - 0x8cd6, 0x8cd5, 0x8cd9, 0x8cdd, 0x8ce1, 0x8ce8, 0x8cec, 0x8cef, - 0x8cf0, 0x8cf2, 0x8cf5, 0x8cf7, 0x8cf8, 0x8cfe, 0x8cff, 0x8d01, - 0x8d03, 0x8d09, 0x8d12, 0x8d17, 0x8d1b, 0x8d65, 0x8d69, 0x8d6c, - 0x8d6e, 0x8d7f, 0x8d82, 0x8d84, 0x8d88, 0x8d8d, 0x8d90, 0x8d91, - 0x8d95, 0x8d9e, 0x8d9f, 0x8da0, 0x8da6, 0x8dab, 0x8dac, 0x8daf, - 0x8db2, 0x8db5, 0x8db7, 0x8db9, 0x8dbb, 0x8dc0, 0x8dc5, 0x8dc6, - 0x8dc7, 0x8dc8, 0x8dca, 0x8dce, 0x8dd1, 0x8dd4, 0x8dd5, 0x8dd7, - 0x8dd9, 0x8de4, 0x8de5, 0x8de7, 0x8dec, 0x8df0, 0x8dbc, 0x8df1, - 0x8df2, 0x8df4, 0x8dfd, 0x8e01, 0x8e04, 0x8e05, 0x8e06, 0x8e0b, - 0x8e11, 0x8e14, 0x8e16, 0x8e20, 0x8e21, 0x8e22, - /* 0x60 */ - 0x8e23, 0x8e26, 0x8e27, 0x8e31, 0x8e33, 0x8e36, 0x8e37, 0x8e38, - 0x8e39, 0x8e3d, 0x8e40, 0x8e41, 0x8e4b, 0x8e4d, 0x8e4e, 0x8e4f, - 0x8e54, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e61, 0x8e62, 0x8e69, - 0x8e6c, 0x8e6d, 0x8e6f, 0x8e70, 0x8e71, 0x8e79, 0x8e7a, 0x8e7b, - 0x8e82, 0x8e83, 0x8e89, 0x8e90, 0x8e92, 0x8e95, 0x8e9a, 0x8e9b, - 0x8e9d, 0x8e9e, 0x8ea2, 0x8ea7, 0x8ea9, 0x8ead, 0x8eae, 0x8eb3, - 0x8eb5, 0x8eba, 0x8ebb, 0x8ec0, 0x8ec1, 0x8ec3, 0x8ec4, 0x8ec7, - 0x8ecf, 0x8ed1, 0x8ed4, 0x8edc, 0x8ee8, 0x8eee, 0x8ef0, 0x8ef1, - 0x8ef7, 0x8ef9, 0x8efa, 0x8eed, 0x8f00, 0x8f02, 0x8f07, 0x8f08, - 0x8f0f, 0x8f10, 0x8f16, 0x8f17, 0x8f18, 0x8f1e, 0x8f20, 0x8f21, - 0x8f23, 0x8f25, 0x8f27, 0x8f28, 0x8f2c, 0x8f2d, 0x8f2e, 0x8f34, - 0x8f35, 0x8f36, 0x8f37, 0x8f3a, 0x8f40, 0x8f41, - /* 0x61 */ - 0x8f43, 0x8f47, 0x8f4f, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, - 0x8f58, 0x8f5d, 0x8f5e, 0x8f65, 0x8f9d, 0x8fa0, 0x8fa1, 0x8fa4, - 0x8fa5, 0x8fa6, 0x8fb5, 0x8fb6, 0x8fb8, 0x8fbe, 0x8fc0, 0x8fc1, - 0x8fc6, 0x8fca, 0x8fcb, 0x8fcd, 0x8fd0, 0x8fd2, 0x8fd3, 0x8fd5, - 0x8fe0, 0x8fe3, 0x8fe4, 0x8fe8, 0x8fee, 0x8ff1, 0x8ff5, 0x8ff6, - 0x8ffb, 0x8ffe, 0x9002, 0x9004, 0x9008, 0x900c, 0x9018, 0x901b, - 0x9028, 0x9029, 0x902f, 0x902a, 0x902c, 0x902d, 0x9033, 0x9034, - 0x9037, 0x903f, 0x9043, 0x9044, 0x904c, 0x905b, 0x905d, 0x9062, - 0x9066, 0x9067, 0x906c, 0x9070, 0x9074, 0x9079, 0x9085, 0x9088, - 0x908b, 0x908c, 0x908e, 0x9090, 0x9095, 0x9097, 0x9098, 0x9099, - 0x909b, 0x90a0, 0x90a1, 0x90a2, 0x90a5, 0x90b0, 0x90b2, 0x90b3, - 0x90b4, 0x90b6, 0x90bd, 0x90cc, 0x90be, 0x90c3, - /* 0x62 */ - 0x90c4, 0x90c5, 0x90c7, 0x90c8, 0x90d5, 0x90d7, 0x90d8, 0x90d9, - 0x90dc, 0x90dd, 0x90df, 0x90e5, 0x90d2, 0x90f6, 0x90eb, 0x90ef, - 0x90f0, 0x90f4, 0x90fe, 0x90ff, 0x9100, 0x9104, 0x9105, 0x9106, - 0x9108, 0x910d, 0x9110, 0x9114, 0x9116, 0x9117, 0x9118, 0x911a, - 0x911c, 0x911e, 0x9120, 0x9125, 0x9122, 0x9123, 0x9127, 0x9129, - 0x912e, 0x912f, 0x9131, 0x9134, 0x9136, 0x9137, 0x9139, 0x913a, - 0x913c, 0x913d, 0x9143, 0x9147, 0x9148, 0x914f, 0x9153, 0x9157, - 0x9159, 0x915a, 0x915b, 0x9161, 0x9164, 0x9167, 0x916d, 0x9174, - 0x9179, 0x917a, 0x917b, 0x9181, 0x9183, 0x9185, 0x9186, 0x918a, - 0x918e, 0x9191, 0x9193, 0x9194, 0x9195, 0x9198, 0x919e, 0x91a1, - 0x91a6, 0x91a8, 0x91ac, 0x91ad, 0x91ae, 0x91b0, 0x91b1, 0x91b2, - 0x91b3, 0x91b6, 0x91bb, 0x91bc, 0x91bd, 0x91bf, - /* 0x63 */ - 0x91c2, 0x91c3, 0x91c5, 0x91d3, 0x91d4, 0x91d7, 0x91d9, 0x91da, - 0x91de, 0x91e4, 0x91e5, 0x91e9, 0x91ea, 0x91ec, 0x91ed, 0x91ee, - 0x91ef, 0x91f0, 0x91f1, 0x91f7, 0x91f9, 0x91fb, 0x91fd, 0x9200, - 0x9201, 0x9204, 0x9205, 0x9206, 0x9207, 0x9209, 0x920a, 0x920c, - 0x9210, 0x9212, 0x9213, 0x9216, 0x9218, 0x921c, 0x921d, 0x9223, - 0x9224, 0x9225, 0x9226, 0x9228, 0x922e, 0x922f, 0x9230, 0x9233, - 0x9235, 0x9236, 0x9238, 0x9239, 0x923a, 0x923c, 0x923e, 0x9240, - 0x9242, 0x9243, 0x9246, 0x9247, 0x924a, 0x924d, 0x924e, 0x924f, - 0x9251, 0x9258, 0x9259, 0x925c, 0x925d, 0x9260, 0x9261, 0x9265, - 0x9267, 0x9268, 0x9269, 0x926e, 0x926f, 0x9270, 0x9275, 0x9276, - 0x9277, 0x9278, 0x9279, 0x927b, 0x927c, 0x927d, 0x927f, 0x9288, - 0x9289, 0x928a, 0x928d, 0x928e, 0x9292, 0x9297, - /* 0x64 */ - 0x9299, 0x929f, 0x92a0, 0x92a4, 0x92a5, 0x92a7, 0x92a8, 0x92ab, - 0x92af, 0x92b2, 0x92b6, 0x92b8, 0x92ba, 0x92bb, 0x92bc, 0x92bd, - 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c5, 0x92c6, 0x92c7, - 0x92c8, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92d0, 0x92d3, 0x92d5, - 0x92d7, 0x92d8, 0x92d9, 0x92dc, 0x92dd, 0x92df, 0x92e0, 0x92e1, - 0x92e3, 0x92e5, 0x92e7, 0x92e8, 0x92ec, 0x92ee, 0x92f0, 0x92f9, - 0x92fb, 0x92ff, 0x9300, 0x9302, 0x9308, 0x930d, 0x9311, 0x9314, - 0x9315, 0x931c, 0x931d, 0x931e, 0x931f, 0x9321, 0x9324, 0x9325, - 0x9327, 0x9329, 0x932a, 0x9333, 0x9334, 0x9336, 0x9337, 0x9347, - 0x9348, 0x9349, 0x9350, 0x9351, 0x9352, 0x9355, 0x9357, 0x9358, - 0x935a, 0x935e, 0x9364, 0x9365, 0x9367, 0x9369, 0x936a, 0x936d, - 0x936f, 0x9370, 0x9371, 0x9373, 0x9374, 0x9376, - /* 0x65 */ - 0x937a, 0x937d, 0x937f, 0x9380, 0x9381, 0x9382, 0x9388, 0x938a, - 0x938b, 0x938d, 0x938f, 0x9392, 0x9395, 0x9398, 0x939b, 0x939e, - 0x93a1, 0x93a3, 0x93a4, 0x93a6, 0x93a8, 0x93ab, 0x93b4, 0x93b5, - 0x93b6, 0x93ba, 0x93a9, 0x93c1, 0x93c4, 0x93c5, 0x93c6, 0x93c7, - 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93d3, 0x93d9, 0x93dc, - 0x93de, 0x93df, 0x93e2, 0x93e6, 0x93e7, 0x93f9, 0x93f7, 0x93f8, - 0x93fa, 0x93fb, 0x93fd, 0x9401, 0x9402, 0x9404, 0x9408, 0x9409, - 0x940d, 0x940e, 0x940f, 0x9415, 0x9416, 0x9417, 0x941f, 0x942e, - 0x942f, 0x9431, 0x9432, 0x9433, 0x9434, 0x943b, 0x943f, 0x943d, - 0x9443, 0x9445, 0x9448, 0x944a, 0x944c, 0x9455, 0x9459, 0x945c, - 0x945f, 0x9461, 0x9463, 0x9468, 0x946b, 0x946d, 0x946e, 0x946f, - 0x9471, 0x9472, 0x9484, 0x9483, 0x9578, 0x9579, - /* 0x66 */ - 0x957e, 0x9584, 0x9588, 0x958c, 0x958d, 0x958e, 0x959d, 0x959e, - 0x959f, 0x95a1, 0x95a6, 0x95a9, 0x95ab, 0x95ac, 0x95b4, 0x95b6, - 0x95ba, 0x95bd, 0x95bf, 0x95c6, 0x95c8, 0x95c9, 0x95cb, 0x95d0, - 0x95d1, 0x95d2, 0x95d3, 0x95d9, 0x95da, 0x95dd, 0x95de, 0x95df, - 0x95e0, 0x95e4, 0x95e6, 0x961d, 0x961e, 0x9622, 0x9624, 0x9625, - 0x9626, 0x962c, 0x9631, 0x9633, 0x9637, 0x9638, 0x9639, 0x963a, - 0x963c, 0x963d, 0x9641, 0x9652, 0x9654, 0x9656, 0x9657, 0x9658, - 0x9661, 0x966e, 0x9674, 0x967b, 0x967c, 0x967e, 0x967f, 0x9681, - 0x9682, 0x9683, 0x9684, 0x9689, 0x9691, 0x9696, 0x969a, 0x969d, - 0x969f, 0x96a4, 0x96a5, 0x96a6, 0x96a9, 0x96ae, 0x96af, 0x96b3, - 0x96ba, 0x96ca, 0x96d2, 0x5db2, 0x96d8, 0x96da, 0x96dd, 0x96de, - 0x96df, 0x96e9, 0x96ef, 0x96f1, 0x96fa, 0x9702, - /* 0x67 */ - 0x9703, 0x9705, 0x9709, 0x971a, 0x971b, 0x971d, 0x9721, 0x9722, - 0x9723, 0x9728, 0x9731, 0x9733, 0x9741, 0x9743, 0x974a, 0x974e, - 0x974f, 0x9755, 0x9757, 0x9758, 0x975a, 0x975b, 0x9763, 0x9767, - 0x976a, 0x976e, 0x9773, 0x9776, 0x9777, 0x9778, 0x977b, 0x977d, - 0x977f, 0x9780, 0x9789, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, - 0x979e, 0x979f, 0x97a2, 0x97ac, 0x97ae, 0x97b1, 0x97b2, 0x97b5, - 0x97b6, 0x97b8, 0x97b9, 0x97ba, 0x97bc, 0x97be, 0x97bf, 0x97c1, - 0x97c4, 0x97c5, 0x97c7, 0x97c9, 0x97ca, 0x97cc, 0x97cd, 0x97ce, - 0x97d0, 0x97d1, 0x97d4, 0x97d7, 0x97d8, 0x97d9, 0x97dd, 0x97de, - 0x97e0, 0x97db, 0x97e1, 0x97e4, 0x97ef, 0x97f1, 0x97f4, 0x97f7, - 0x97f8, 0x97fa, 0x9807, 0x980a, 0x9819, 0x980d, 0x980e, 0x9814, - 0x9816, 0x981c, 0x981e, 0x9820, 0x9823, 0x9826, - /* 0x68 */ - 0x982b, 0x982e, 0x982f, 0x9830, 0x9832, 0x9833, 0x9835, 0x9825, - 0x983e, 0x9844, 0x9847, 0x984a, 0x9851, 0x9852, 0x9853, 0x9856, - 0x9857, 0x9859, 0x985a, 0x9862, 0x9863, 0x9865, 0x9866, 0x986a, - 0x986c, 0x98ab, 0x98ad, 0x98ae, 0x98b0, 0x98b4, 0x98b7, 0x98b8, - 0x98ba, 0x98bb, 0x98bf, 0x98c2, 0x98c5, 0x98c8, 0x98cc, 0x98e1, - 0x98e3, 0x98e5, 0x98e6, 0x98e7, 0x98ea, 0x98f3, 0x98f6, 0x9902, - 0x9907, 0x9908, 0x9911, 0x9915, 0x9916, 0x9917, 0x991a, 0x991b, - 0x991c, 0x991f, 0x9922, 0x9926, 0x9927, 0x992b, 0x9931, 0x9932, - 0x9933, 0x9934, 0x9935, 0x9939, 0x993a, 0x993b, 0x993c, 0x9940, - 0x9941, 0x9946, 0x9947, 0x9948, 0x994d, 0x994e, 0x9954, 0x9958, - 0x9959, 0x995b, 0x995c, 0x995e, 0x995f, 0x9960, 0x999b, 0x999d, - 0x999f, 0x99a6, 0x99b0, 0x99b1, 0x99b2, 0x99b5, - /* 0x69 */ - 0x99b9, 0x99ba, 0x99bd, 0x99bf, 0x99c3, 0x99c9, 0x99d3, 0x99d4, - 0x99d9, 0x99da, 0x99dc, 0x99de, 0x99e7, 0x99ea, 0x99eb, 0x99ec, - 0x99f0, 0x99f4, 0x99f5, 0x99f9, 0x99fd, 0x99fe, 0x9a02, 0x9a03, - 0x9a04, 0x9a0b, 0x9a0c, 0x9a10, 0x9a11, 0x9a16, 0x9a1e, 0x9a20, - 0x9a22, 0x9a23, 0x9a24, 0x9a27, 0x9a2d, 0x9a2e, 0x9a33, 0x9a35, - 0x9a36, 0x9a38, 0x9a47, 0x9a41, 0x9a44, 0x9a4a, 0x9a4b, 0x9a4c, - 0x9a4e, 0x9a51, 0x9a54, 0x9a56, 0x9a5d, 0x9aaa, 0x9aac, 0x9aae, - 0x9aaf, 0x9ab2, 0x9ab4, 0x9ab5, 0x9ab6, 0x9ab9, 0x9abb, 0x9abe, - 0x9abf, 0x9ac1, 0x9ac3, 0x9ac6, 0x9ac8, 0x9ace, 0x9ad0, 0x9ad2, - 0x9ad5, 0x9ad6, 0x9ad7, 0x9adb, 0x9adc, 0x9ae0, 0x9ae4, 0x9ae5, - 0x9ae7, 0x9ae9, 0x9aec, 0x9af2, 0x9af3, 0x9af5, 0x9af9, 0x9afa, - 0x9afd, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b03, - /* 0x6a */ - 0x9b04, 0x9b05, 0x9b08, 0x9b09, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, - 0x9b10, 0x9b12, 0x9b16, 0x9b19, 0x9b1b, 0x9b1c, 0x9b20, 0x9b26, - 0x9b2b, 0x9b2d, 0x9b33, 0x9b34, 0x9b35, 0x9b37, 0x9b39, 0x9b3a, - 0x9b3d, 0x9b48, 0x9b4b, 0x9b4c, 0x9b55, 0x9b56, 0x9b57, 0x9b5b, - 0x9b5e, 0x9b61, 0x9b63, 0x9b65, 0x9b66, 0x9b68, 0x9b6a, 0x9b6b, - 0x9b6c, 0x9b6d, 0x9b6e, 0x9b73, 0x9b75, 0x9b77, 0x9b78, 0x9b79, - 0x9b7f, 0x9b80, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b89, 0x9b8a, - 0x9b8b, 0x9b8d, 0x9b8f, 0x9b90, 0x9b94, 0x9b9a, 0x9b9d, 0x9b9e, - 0x9ba6, 0x9ba7, 0x9ba9, 0x9bac, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb7, - 0x9bb8, 0x9bbb, 0x9bbc, 0x9bbe, 0x9bbf, 0x9bc1, 0x9bc7, 0x9bc8, - 0x9bce, 0x9bd0, 0x9bd7, 0x9bd8, 0x9bdd, 0x9bdf, 0x9be5, 0x9be7, - 0x9bea, 0x9beb, 0x9bef, 0x9bf3, 0x9bf7, 0x9bf8, - /* 0x6b */ - 0x9bf9, 0x9bfa, 0x9bfd, 0x9bff, 0x9c00, 0x9c02, 0x9c0b, 0x9c0f, - 0x9c11, 0x9c16, 0x9c18, 0x9c19, 0x9c1a, 0x9c1c, 0x9c1e, 0x9c22, - 0x9c23, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c31, 0x9c35, - 0x9c36, 0x9c37, 0x9c3d, 0x9c41, 0x9c43, 0x9c44, 0x9c45, 0x9c49, - 0x9c4a, 0x9c4e, 0x9c4f, 0x9c50, 0x9c53, 0x9c54, 0x9c56, 0x9c58, - 0x9c5b, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c63, 0x9c69, 0x9c6a, 0x9c5c, - 0x9c6b, 0x9c68, 0x9c6e, 0x9c70, 0x9c72, 0x9c75, 0x9c77, 0x9c7b, - 0x9ce6, 0x9cf2, 0x9cf7, 0x9cf9, 0x9d0b, 0x9d02, 0x9d11, 0x9d17, - 0x9d18, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d2f, 0x9d30, 0x9d32, 0x9d33, - 0x9d34, 0x9d3a, 0x9d3c, 0x9d45, 0x9d3d, 0x9d42, 0x9d43, 0x9d47, - 0x9d4a, 0x9d53, 0x9d54, 0x9d5f, 0x9d63, 0x9d62, 0x9d65, 0x9d69, - 0x9d6a, 0x9d6b, 0x9d70, 0x9d76, 0x9d77, 0x9d7b, - /* 0x6c */ - 0x9d7c, 0x9d7e, 0x9d83, 0x9d84, 0x9d86, 0x9d8a, 0x9d8d, 0x9d8e, - 0x9d92, 0x9d93, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9da1, 0x9daa, - 0x9dac, 0x9dae, 0x9db1, 0x9db5, 0x9db9, 0x9dbc, 0x9dbf, 0x9dc3, - 0x9dc7, 0x9dc9, 0x9dca, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dda, - 0x9dde, 0x9ddf, 0x9de0, 0x9de5, 0x9de7, 0x9de9, 0x9deb, 0x9dee, - 0x9df0, 0x9df3, 0x9df4, 0x9dfe, 0x9e0a, 0x9e02, 0x9e07, 0x9e0e, - 0x9e10, 0x9e11, 0x9e12, 0x9e15, 0x9e16, 0x9e19, 0x9e1c, 0x9e1d, - 0x9e7a, 0x9e7b, 0x9e7c, 0x9e80, 0x9e82, 0x9e83, 0x9e84, 0x9e85, - 0x9e87, 0x9e8e, 0x9e8f, 0x9e96, 0x9e98, 0x9e9b, 0x9e9e, 0x9ea4, - 0x9ea8, 0x9eac, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb3, 0x9eb4, 0x9eb5, - 0x9ec6, 0x9ec8, 0x9ecb, 0x9ed5, 0x9edf, 0x9ee4, 0x9ee7, 0x9eec, - 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef5, - /* 0x6d */ - 0x9ef8, 0x9eff, 0x9f02, 0x9f03, 0x9f09, 0x9f0f, 0x9f10, 0x9f11, - 0x9f12, 0x9f14, 0x9f16, 0x9f17, 0x9f19, 0x9f1a, 0x9f1b, 0x9f1f, - 0x9f22, 0x9f26, 0x9f2a, 0x9f2b, 0x9f2f, 0x9f31, 0x9f32, 0x9f34, - 0x9f37, 0x9f39, 0x9f3a, 0x9f3c, 0x9f3d, 0x9f3f, 0x9f41, 0x9f43, - 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0x9f53, 0x9f55, 0x9f56, 0x9f57, - 0x9f58, 0x9f5a, 0x9f5d, 0x9f5e, 0x9f68, 0x9f69, 0x9f6d, 0x9f6e, - 0x9f6f, 0x9f70, 0x9f71, 0x9f73, 0x9f75, 0x9f7a, 0x9f7d, 0x9f8f, - 0x9f90, 0x9f91, 0x9f92, 0x9f94, 0x9f96, 0x9f97, 0x9f9e, 0x9fa1, - 0x9fa2, 0x9fa3, 0x9fa5, -}; - -static int -jisx0212_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 == 0x22) || (c1 >= 0x26 && c1 <= 0x27) || (c1 >= 0x29 && c1 <= 0x2b) || (c1 >= 0x30 && c1 <= 0x6d)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 470) { - if (i < 175) - wc = jisx0212_2uni_page22[i-94]; - } else if (i < 752) { - if (i < 658) - wc = jisx0212_2uni_page26[i-470]; - } else if (i < 1410) { - if (i < 1027) - wc = jisx0212_2uni_page29[i-752]; - } else { - if (i < 7211) - wc = jisx0212_2uni_page30[i-1410]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short jisx0212_2charset[6067] = { - 0x2242, 0x2270, 0x2243, 0x226d, 0x226c, 0x226e, 0x2234, 0x2231, - 0x226b, 0x2244, 0x2a22, 0x2a21, 0x2a24, 0x2a2a, 0x2a23, 0x2a29, - 0x2921, 0x2a2e, 0x2a32, 0x2a31, 0x2a34, 0x2a33, 0x2a40, 0x2a3f, - 0x2a42, 0x2a41, 0x2a50, 0x2a52, 0x2a51, 0x2a54, 0x2a58, 0x2a53, - 0x292c, 0x2a63, 0x2a62, 0x2a65, 0x2a64, 0x2a72, 0x2930, 0x294e, - 0x2b22, 0x2b21, 0x2b24, 0x2b2a, 0x2b23, 0x2b29, 0x2941, 0x2b2e, - 0x2b32, 0x2b31, 0x2b34, 0x2b33, 0x2b40, 0x2b3f, 0x2b42, 0x2b41, - 0x2943, 0x2b50, 0x2b52, 0x2b51, 0x2b54, 0x2b58, 0x2b53, 0x294c, - 0x2b63, 0x2b62, 0x2b65, 0x2b64, 0x2b72, 0x2950, 0x2b73, 0x2a27, - 0x2b27, 0x2a25, 0x2b25, 0x2a28, 0x2b28, 0x2a2b, 0x2b2b, 0x2a2c, - 0x2b2c, 0x2a2f, 0x2b2f, 0x2a2d, 0x2b2d, 0x2a30, 0x2b30, 0x2922, - 0x2942, 0x2a37, 0x2b37, 0x2a36, 0x2b36, 0x2a38, 0x2b38, 0x2a35, - 0x2b35, 0x2a3a, 0x2b3a, 0x2a3b, 0x2b3b, 0x2a3d, 0x2b3d, 0x2a3c, - 0x2a3e, 0x2b3e, 0x2924, 0x2944, 0x2a47, 0x2b47, 0x2a45, 0x2b45, - 0x2a46, 0x2b46, 0x2a44, 0x2945, 0x2926, 0x2946, 0x2a48, 0x2b48, - 0x2a49, 0x2b49, 0x2947, 0x2a4a, 0x2b4a, 0x2a4c, 0x2b4c, 0x2a4b, - 0x2b4b, 0x2929, 0x2949, 0x2928, 0x2948, 0x2a4d, 0x2b4d, 0x2a4f, - 0x2b4f, 0x2a4e, 0x2b4e, 0x294a, 0x292b, 0x294b, 0x2a57, 0x2b57, - 0x2a56, 0x2b56, 0x292d, 0x294d, 0x2a59, 0x2b59, 0x2a5b, 0x2b5b, - 0x2a5a, 0x2b5a, 0x2a5c, 0x2b5c, 0x2a5d, 0x2b5d, 0x2a5f, 0x2b5f, - 0x2a5e, 0x2b5e, 0x2a61, 0x2b61, 0x2a60, 0x2b60, 0x292f, 0x294f, - 0x2a6c, 0x2b6c, 0x2a69, 0x2b69, 0x2a66, 0x2b66, 0x2a6b, 0x2b6b, - 0x2a68, 0x2b68, 0x2a6a, 0x2b6a, 0x2a71, 0x2b71, 0x2a74, 0x2b74, - 0x2a73, 0x2a75, 0x2b75, 0x2a77, 0x2b77, 0x2a76, 0x2b76, 0x2a26, - 0x2b26, 0x2a43, 0x2b43, 0x2a55, 0x2b55, 0x2a67, 0x2b67, 0x2a70, - 0x2b70, 0x2a6d, 0x2b6d, 0x2a6f, 0x2b6f, 0x2a6e, 0x2b6e, 0x2b39, - 0x2230, 0x222f, 0x2232, 0x2236, 0x2235, 0x2233, 0x2238, 0x2239, - 0x2661, 0x2662, 0x2663, 0x2664, 0x2667, 0x2669, 0x266c, 0x2676, - 0x2665, 0x266a, 0x2671, 0x2672, 0x2673, 0x2674, 0x267b, 0x2678, - 0x2675, 0x267a, 0x2677, 0x2679, 0x267c, 0x2742, 0x2743, 0x2744, - 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274c, - 0x274d, 0x274e, 0x2772, 0x2773, 0x2774, 0x2775, 0x2776, 0x2777, - 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x2271, - 0x226f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, - 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e, 0x302f, - 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, - 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e, 0x303f, - 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, - 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, - 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, - 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x3060, - 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, - 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, - 0x305f, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, - 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x3121, - 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, - 0x312a, 0x312b, 0x312c, 0x312d, 0x312e, 0x312f, 0x3130, 0x3131, - 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138, 0x3139, - 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, - 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, - 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151, - 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, - 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x3176, 0x315f, 0x3160, - 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, - 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170, - 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3177, 0x3178, 0x3179, - 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x3221, 0x3222, 0x3223, - 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, - 0x322c, 0x322d, 0x322e, 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, - 0x3234, 0x3235, 0x3236, 0x3237, 0x3238, 0x3239, 0x323a, 0x323b, - 0x323c, 0x323d, 0x323e, 0x323f, 0x3240, 0x3241, 0x3242, 0x3243, - 0x3244, 0x3245, 0x3251, 0x3246, 0x3247, 0x3248, 0x3249, 0x324a, - 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, 0x3250, 0x3252, 0x3253, - 0x3254, 0x3255, 0x3256, 0x3257, 0x3258, 0x3259, 0x325a, 0x325b, - 0x325c, 0x325d, 0x325e, 0x325f, 0x3260, 0x3261, 0x3262, 0x3263, - 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a, 0x326b, - 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272, 0x3273, - 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, - 0x327c, 0x327d, 0x327e, 0x3321, 0x3322, 0x3323, 0x3324, 0x3325, - 0x3326, 0x3327, 0x3328, 0x3329, 0x332a, 0x332b, 0x332c, 0x332d, - 0x332e, 0x332f, 0x3330, 0x3331, 0x3332, 0x3333, 0x3334, 0x3335, - 0x3336, 0x3337, 0x3338, 0x3339, 0x333a, 0x333b, 0x333c, 0x333d, - 0x333e, 0x333f, 0x3340, 0x3341, 0x3342, 0x3343, 0x3344, 0x3345, - 0x3346, 0x3347, 0x3348, 0x3349, 0x334a, 0x334b, 0x334c, 0x334d, - 0x334e, 0x334f, 0x3350, 0x3351, 0x3352, 0x3353, 0x3354, 0x3355, - 0x3356, 0x3357, 0x3358, 0x3359, 0x335a, 0x335b, 0x335c, 0x335d, - 0x335e, 0x335f, 0x3360, 0x3361, 0x3362, 0x3363, 0x3364, 0x3365, - 0x3366, 0x3367, 0x3368, 0x3369, 0x336a, 0x336b, 0x336c, 0x336d, - 0x336e, 0x336f, 0x3370, 0x3371, 0x3372, 0x3373, 0x3374, 0x3375, - 0x3376, 0x3377, 0x3378, 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, - 0x337e, 0x3421, 0x3422, 0x3423, 0x3424, 0x3425, 0x3426, 0x3427, - 0x3428, 0x3429, 0x342a, 0x342b, 0x342c, 0x342d, 0x342e, 0x342f, - 0x3430, 0x3431, 0x3432, 0x3433, 0x3434, 0x3435, 0x3436, 0x3438, - 0x3437, 0x3439, 0x343a, 0x343b, 0x343c, 0x343d, 0x343e, 0x343f, - 0x3440, 0x3441, 0x3442, 0x3443, 0x3444, 0x3445, 0x3446, 0x3447, - 0x3448, 0x3449, 0x344a, 0x344b, 0x344c, 0x344d, 0x344e, 0x344f, - 0x3450, 0x3451, 0x3452, 0x3453, 0x3454, 0x3455, 0x3456, 0x3457, - 0x3458, 0x3459, 0x345a, 0x345b, 0x345c, 0x345d, 0x345e, 0x345f, - 0x3460, 0x3461, 0x3462, 0x3463, 0x3464, 0x3465, 0x3466, 0x3467, - 0x3468, 0x3469, 0x346a, 0x346b, 0x346c, 0x346d, 0x346e, 0x346f, - 0x3470, 0x3471, 0x3472, 0x3473, 0x3474, 0x3475, 0x3476, 0x3477, - 0x3478, 0x3479, 0x347a, 0x347b, 0x347c, 0x347d, 0x347e, 0x3521, - 0x3522, 0x3523, 0x3524, 0x3525, 0x3526, 0x3527, 0x3528, 0x3529, - 0x352a, 0x352b, 0x352c, 0x352d, 0x352e, 0x352f, 0x3530, 0x3531, - 0x3532, 0x3533, 0x3534, 0x3535, 0x3536, 0x3537, 0x3538, 0x3539, - 0x353a, 0x353b, 0x353c, 0x353d, 0x353e, 0x353f, 0x3540, 0x3541, - 0x3542, 0x3543, 0x3544, 0x3545, 0x3546, 0x3547, 0x3548, 0x3549, - 0x354a, 0x354b, 0x354c, 0x354d, 0x354e, 0x354f, 0x3550, 0x3551, - 0x3552, 0x3553, 0x3554, 0x3555, 0x3556, 0x3557, 0x3558, 0x3559, - 0x355a, 0x355b, 0x355c, 0x355d, 0x355e, 0x355f, 0x3560, 0x3561, - 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569, - 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571, - 0x3572, 0x3573, 0x3574, 0x3575, 0x3576, 0x3577, 0x3578, 0x3579, - 0x357a, 0x357b, 0x357c, 0x357d, 0x357e, 0x3621, 0x3622, 0x3623, - 0x3624, 0x3625, 0x3626, 0x3627, 0x3628, 0x3629, 0x362a, 0x362b, - 0x362c, 0x362d, 0x362e, 0x362f, 0x3630, 0x3631, 0x3632, 0x3633, - 0x3634, 0x3635, 0x3636, 0x3637, 0x3638, 0x3639, 0x363a, 0x363b, - 0x363c, 0x363d, 0x363e, 0x363f, 0x3640, 0x3641, 0x3642, 0x3643, - 0x3644, 0x3645, 0x3646, 0x3647, 0x3648, 0x3649, 0x364a, 0x364b, - 0x364c, 0x364d, 0x364e, 0x364f, 0x3650, 0x3651, 0x3652, 0x3653, - 0x3654, 0x3655, 0x3656, 0x3657, 0x3658, 0x3659, 0x365a, 0x365b, - 0x365c, 0x365d, 0x365e, 0x365f, 0x3660, 0x3661, 0x3662, 0x3663, - 0x3664, 0x3665, 0x3666, 0x3667, 0x3668, 0x3669, 0x366a, 0x366b, - 0x366c, 0x366d, 0x3670, 0x3671, 0x366e, 0x366f, 0x3672, 0x3673, - 0x3674, 0x3675, 0x3676, 0x3677, 0x3678, 0x3679, 0x367a, 0x367b, - 0x367d, 0x367e, 0x367c, 0x3721, 0x3722, 0x3723, 0x3724, 0x3725, - 0x3726, 0x3727, 0x3728, 0x3729, 0x372a, 0x372b, 0x372c, 0x372d, - 0x372e, 0x372f, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734, 0x3735, - 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c, 0x373d, - 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744, 0x3745, - 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c, 0x374d, - 0x374e, 0x374f, 0x3750, 0x3751, 0x3752, 0x3753, 0x3754, 0x3755, - 0x3756, 0x3757, 0x3760, 0x3758, 0x3759, 0x375a, 0x375b, 0x375c, - 0x375d, 0x375e, 0x375f, 0x3761, 0x3762, 0x3763, 0x3764, 0x3765, - 0x3766, 0x3767, 0x3768, 0x3769, 0x376a, 0x376b, 0x376c, 0x376d, - 0x377e, 0x376e, 0x376f, 0x3770, 0x3771, 0x3772, 0x3773, 0x3774, - 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, 0x377a, 0x377b, 0x377c, - 0x377d, 0x3821, 0x3822, 0x3823, 0x3824, 0x3825, 0x3826, 0x3827, - 0x3828, 0x3829, 0x382a, 0x382b, 0x382c, 0x382d, 0x382e, 0x382f, - 0x3830, 0x3831, 0x3832, 0x3833, 0x3834, 0x3835, 0x3836, 0x3837, - 0x3838, 0x3839, 0x383a, 0x383b, 0x383c, 0x383d, 0x383e, 0x383f, - 0x3840, 0x3841, 0x3842, 0x3843, 0x3844, 0x3845, 0x3846, 0x3847, - 0x3848, 0x3849, 0x384a, 0x384b, 0x384c, 0x384d, 0x384e, 0x3850, - 0x3851, 0x384f, 0x3852, 0x3853, 0x3854, 0x3855, 0x3856, 0x3857, - 0x3858, 0x3859, 0x385a, 0x385b, 0x385c, 0x385d, 0x385e, 0x385f, - 0x3860, 0x3861, 0x3862, 0x3863, 0x3864, 0x3865, 0x3867, 0x3868, - 0x3869, 0x386a, 0x386b, 0x386c, 0x386d, 0x386e, 0x386f, 0x3870, - 0x3871, 0x3872, 0x3873, 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, - 0x3879, 0x387a, 0x387b, 0x387c, 0x387d, 0x387e, 0x3921, 0x3922, - 0x3923, 0x3924, 0x3925, 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, - 0x392b, 0x392c, 0x392d, 0x392e, 0x392f, 0x3930, 0x3931, 0x3932, - 0x3933, 0x3934, 0x3935, 0x3936, 0x3937, 0x3938, 0x3939, 0x393a, - 0x393b, 0x393c, 0x393d, 0x393e, 0x393f, 0x3940, 0x3941, 0x3942, - 0x3943, 0x3944, 0x3945, 0x3946, 0x3947, 0x3948, 0x3949, 0x394a, - 0x394b, 0x394c, 0x394d, 0x394e, 0x394f, 0x3950, 0x3951, 0x3952, - 0x3953, 0x3954, 0x3955, 0x3956, 0x3957, 0x3958, 0x3959, 0x395a, - 0x395b, 0x395c, 0x395d, 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, - 0x3963, 0x3964, 0x3965, 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, - 0x396b, 0x396c, 0x396d, 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, - 0x3973, 0x3974, 0x3975, 0x3976, 0x3977, 0x3978, 0x3979, 0x397a, - 0x397b, 0x397c, 0x397d, 0x397e, 0x3a21, 0x3a22, 0x3a23, 0x3a24, - 0x3a25, 0x3a26, 0x3a27, 0x3a28, 0x3a29, 0x3a2a, 0x3a2b, 0x3a2c, - 0x3a2d, 0x3a2e, 0x3a2f, 0x3a30, 0x3a31, 0x3a33, 0x3a34, 0x3a35, - 0x3a36, 0x3a37, 0x3a38, 0x3a32, 0x3a39, 0x3a3a, 0x3a3b, 0x3a3c, - 0x3a3d, 0x3a3e, 0x3a3f, 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44, - 0x3a45, 0x3a46, 0x3a47, 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, - 0x3a4d, 0x3a4e, 0x3a4f, 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, - 0x3a55, 0x3a56, 0x3a57, 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, - 0x3a5d, 0x3a5e, 0x3a5f, 0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, - 0x3a65, 0x3a66, 0x3a67, 0x3a68, 0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, - 0x3a6d, 0x3a6e, 0x3a6f, 0x3a70, 0x3a71, 0x3a72, 0x3a73, 0x3a74, - 0x3a75, 0x3a76, 0x3a77, 0x3a78, 0x3a79, 0x3a7a, 0x3a7b, 0x3a7c, - 0x3a7d, 0x3a7e, 0x3b21, 0x3b22, 0x3b23, 0x3b24, 0x3b25, 0x3b26, - 0x3b27, 0x3b28, 0x3b29, 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e, - 0x3b2f, 0x3b30, 0x3b31, 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, - 0x3b37, 0x3b38, 0x3b39, 0x3b3a, 0x3b3b, 0x3b3d, 0x3b3c, 0x3b3e, - 0x3b3f, 0x3b40, 0x3b41, 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b47, - 0x3b48, 0x3b49, 0x3b4a, 0x3b46, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, - 0x3b4f, 0x3b50, 0x3b51, 0x3b52, 0x3b53, 0x3b57, 0x3b55, 0x3b54, - 0x3b56, 0x3b58, 0x3b59, 0x3b5a, 0x3b5b, 0x3b5c, 0x3b5d, 0x3b5e, - 0x3b5f, 0x3b60, 0x3b61, 0x3b62, 0x3b63, 0x3b64, 0x3b65, 0x3b66, - 0x3b67, 0x3b68, 0x3b69, 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d, 0x3b6e, - 0x3b6f, 0x3b70, 0x3b71, 0x3b72, 0x6674, 0x3b73, 0x3b74, 0x3b75, - 0x3b76, 0x3b77, 0x3b78, 0x3b7a, 0x3b79, 0x3b7b, 0x3b7c, 0x3b7d, - 0x3b7e, 0x3c21, 0x3c22, 0x3c23, 0x3c24, 0x3c25, 0x3c26, 0x3c27, - 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, 0x3c2c, 0x3c2e, 0x3c2d, 0x3c2f, - 0x3c30, 0x3c31, 0x3c34, 0x3c32, 0x3c33, 0x3c35, 0x3c36, 0x3c37, - 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, 0x3c3c, 0x3c3d, 0x3c3e, 0x3c3f, - 0x3c40, 0x3c41, 0x3c42, 0x3c43, 0x3c44, 0x3c45, 0x3c46, 0x3c47, - 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, 0x3c4c, 0x3c4d, 0x3c4e, 0x3c4f, - 0x3c50, 0x3c52, 0x3c51, 0x3c53, 0x3c54, 0x3c55, 0x3c56, 0x3c57, - 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, - 0x3c60, 0x3c61, 0x3c62, 0x3c63, 0x3c64, 0x3c65, 0x3c66, 0x3c67, - 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, - 0x3c70, 0x3c71, 0x3c72, 0x3c73, 0x3c74, 0x3c75, 0x3c76, 0x3c77, - 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, 0x3c7c, 0x3c7d, 0x3c7e, 0x3d21, - 0x3d22, 0x3d23, 0x3d24, 0x3d25, 0x3d26, 0x3d27, 0x3d28, 0x3d29, - 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, 0x3d2e, 0x3d2f, 0x3d32, 0x3d30, - 0x3d31, 0x3d33, 0x3d34, 0x3d35, 0x3d36, 0x3d37, 0x3d38, 0x3d39, - 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, 0x3d3e, 0x3d3f, 0x3d40, 0x3d41, - 0x3d42, 0x3d43, 0x3d44, 0x3d45, 0x3d46, 0x3d47, 0x3d48, 0x3d49, - 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, 0x3d4e, 0x3d4f, 0x3d50, 0x3d51, - 0x3d52, 0x3d53, 0x3d54, 0x3d55, 0x3d56, 0x3d57, 0x3d58, 0x3d59, - 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, 0x3d5e, 0x3d5f, 0x3d60, 0x3d61, - 0x3d62, 0x3d63, 0x3d64, 0x3d65, 0x3d66, 0x3d67, 0x3d68, 0x3d69, - 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, 0x3d6e, 0x3d6f, 0x3d70, 0x3d71, - 0x3d72, 0x3d73, 0x3d74, 0x3d75, 0x3d76, 0x3d77, 0x3d78, 0x3d79, - 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, 0x3d7e, 0x3e21, 0x3e22, 0x3e23, - 0x3e24, 0x3e25, 0x3e26, 0x3e27, 0x3e28, 0x3e29, 0x3e2a, 0x3e2b, - 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, 0x3e30, 0x3e31, 0x3e32, 0x3e33, - 0x3e34, 0x3e35, 0x3e36, 0x3e37, 0x3e38, 0x3e39, 0x3e3a, 0x3e3b, - 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, 0x3e40, 0x3e41, 0x3e42, 0x3e43, - 0x3e44, 0x3e45, 0x3e46, 0x3e47, 0x3e48, 0x3e49, 0x3e4a, 0x3e4b, - 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, 0x3e50, 0x3e51, 0x3e52, 0x3e53, - 0x3e54, 0x3e55, 0x3e56, 0x3e57, 0x3e58, 0x3e59, 0x3e5a, 0x3e5b, - 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, 0x3e60, 0x3e61, 0x3e62, 0x3e63, - 0x3e64, 0x3e65, 0x3e66, 0x3e67, 0x3e68, 0x3e69, 0x3e6a, 0x3e6b, - 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, 0x3e70, 0x3e71, 0x3e72, 0x3e73, - 0x3e74, 0x3e75, 0x3e76, 0x3e77, 0x3e78, 0x3e79, 0x3e7a, 0x3e7b, - 0x3e7e, 0x3e7c, 0x3e7d, 0x3f21, 0x3f22, 0x3f23, 0x3f24, 0x3f25, - 0x3f26, 0x3f27, 0x3f28, 0x3f29, 0x3f2a, 0x3f2b, 0x3f2c, 0x3f2d, - 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, 0x3f32, 0x3f33, 0x3f34, 0x3f35, - 0x3f36, 0x3f37, 0x3f38, 0x3f39, 0x3f3a, 0x3f3b, 0x3f3c, 0x3f3d, - 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, 0x3f42, 0x3f43, 0x3f44, 0x3f45, - 0x3f46, 0x3f47, 0x3f48, 0x3f49, 0x3f4a, 0x3f4b, 0x3f4c, 0x3f4d, - 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, 0x3f52, 0x3f53, 0x3f54, 0x3f55, - 0x3f56, 0x3f57, 0x3f58, 0x3f59, 0x3f5a, 0x3f5b, 0x3f5c, 0x3f5d, - 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, 0x3f62, 0x3f63, 0x3f64, 0x3f65, - 0x3f66, 0x3f67, 0x3f68, 0x3f69, 0x3f6a, 0x3f6b, 0x3f6c, 0x3f6d, - 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, 0x3f72, 0x3f73, 0x3f74, 0x3f75, - 0x3f76, 0x3f77, 0x3f78, 0x3f79, 0x3f7a, 0x3f7b, 0x3f7c, 0x3f7d, - 0x3f7e, 0x4021, 0x4022, 0x4023, 0x4024, 0x4025, 0x4026, 0x4027, - 0x4028, 0x4029, 0x402a, 0x402b, 0x402c, 0x402d, 0x402e, 0x402f, - 0x4030, 0x4031, 0x4032, 0x4033, 0x4034, 0x4035, 0x4036, 0x4037, - 0x4038, 0x4039, 0x403a, 0x403b, 0x403c, 0x403d, 0x403e, 0x403f, - 0x4040, 0x4041, 0x4042, 0x4043, 0x4044, 0x4045, 0x4046, 0x4047, - 0x4048, 0x4049, 0x404a, 0x404b, 0x404c, 0x404d, 0x404e, 0x404f, - 0x4050, 0x4051, 0x4052, 0x4053, 0x4054, 0x4055, 0x4056, 0x4057, - 0x4058, 0x4059, 0x405a, 0x405b, 0x405c, 0x405d, 0x405e, 0x405f, - 0x4060, 0x4061, 0x4062, 0x4063, 0x4064, 0x4065, 0x4066, 0x4067, - 0x4068, 0x4069, 0x406a, 0x406b, 0x406c, 0x406d, 0x406e, 0x406f, - 0x4070, 0x4071, 0x4072, 0x4073, 0x4074, 0x4075, 0x4076, 0x4077, - 0x4078, 0x4079, 0x407a, 0x407b, 0x407c, 0x407d, 0x407e, 0x4121, - 0x4122, 0x4123, 0x4124, 0x4125, 0x4126, 0x4127, 0x4128, 0x4129, - 0x412a, 0x412b, 0x412c, 0x412d, 0x412e, 0x412f, 0x4130, 0x4131, - 0x4132, 0x4133, 0x4134, 0x4135, 0x4136, 0x4137, 0x4138, 0x4139, - 0x413a, 0x413b, 0x413c, 0x413d, 0x413e, 0x413f, 0x4140, 0x4141, - 0x4142, 0x4143, 0x4144, 0x4145, 0x4146, 0x4147, 0x4148, 0x4149, - 0x414a, 0x414b, 0x414c, 0x414d, 0x414e, 0x414f, 0x4150, 0x4151, - 0x4152, 0x4153, 0x4154, 0x4155, 0x4156, 0x4157, 0x4158, 0x4159, - 0x415a, 0x415b, 0x415c, 0x415d, 0x415e, 0x415f, 0x4160, 0x4161, - 0x4162, 0x4163, 0x4164, 0x4165, 0x4166, 0x4167, 0x4168, 0x4169, - 0x416a, 0x416b, 0x416c, 0x416d, 0x416e, 0x416f, 0x4170, 0x4171, - 0x4172, 0x4173, 0x4174, 0x4175, 0x4176, 0x4177, 0x4178, 0x4179, - 0x417a, 0x417b, 0x417c, 0x417d, 0x417e, 0x4221, 0x4222, 0x4223, - 0x4224, 0x4225, 0x4226, 0x4227, 0x4228, 0x4229, 0x422a, 0x422b, - 0x422c, 0x422d, 0x422e, 0x4230, 0x422f, 0x4231, 0x4232, 0x4233, - 0x4234, 0x4235, 0x4237, 0x4236, 0x4238, 0x4239, 0x423a, 0x423b, - 0x423c, 0x423d, 0x423e, 0x4240, 0x4241, 0x4242, 0x4244, 0x4245, - 0x4247, 0x4248, 0x4249, 0x424a, 0x424c, 0x4243, 0x4246, 0x424b, - 0x424d, 0x424e, 0x424f, 0x4250, 0x4251, 0x4252, 0x4253, 0x4254, - 0x4255, 0x4256, 0x4257, 0x4258, 0x4259, 0x425a, 0x425b, 0x425c, - 0x425d, 0x425e, 0x425f, 0x4260, 0x4261, 0x4262, 0x4263, 0x4264, - 0x4265, 0x4266, 0x4267, 0x4268, 0x4269, 0x426a, 0x426b, 0x426c, - 0x426d, 0x423f, 0x426e, 0x426f, 0x4270, 0x4271, 0x4272, 0x4273, - 0x4274, 0x4275, 0x4276, 0x4277, 0x4278, 0x4279, 0x427a, 0x427b, - 0x427c, 0x427d, 0x427e, 0x4321, 0x4322, 0x4323, 0x4324, 0x4325, - 0x4326, 0x4327, 0x4328, 0x4329, 0x432a, 0x432b, 0x432c, 0x432d, - 0x432e, 0x432f, 0x4330, 0x4331, 0x4332, 0x4333, 0x4334, 0x4335, - 0x4336, 0x4337, 0x4339, 0x433a, 0x433b, 0x433c, 0x433d, 0x433e, - 0x433f, 0x4340, 0x4341, 0x4342, 0x4343, 0x4344, 0x4345, 0x4346, - 0x4347, 0x4348, 0x4338, 0x434a, 0x434b, 0x434c, 0x434d, 0x434f, - 0x434e, 0x4350, 0x4351, 0x4352, 0x4353, 0x4354, 0x4355, 0x4356, - 0x4357, 0x4358, 0x4359, 0x435a, 0x435b, 0x4349, 0x435c, 0x435d, - 0x435e, 0x435f, 0x4360, 0x4361, 0x4362, 0x4363, 0x4364, 0x4365, - 0x4366, 0x4367, 0x4368, 0x4369, 0x436a, 0x436b, 0x436c, 0x436d, - 0x436e, 0x436f, 0x4370, 0x4371, 0x4372, 0x4373, 0x4374, 0x4375, - 0x4376, 0x4377, 0x4378, 0x4379, 0x437a, 0x437b, 0x437c, 0x437d, - 0x437e, 0x4421, 0x4422, 0x4423, 0x4424, 0x4425, 0x4426, 0x4427, - 0x4428, 0x4429, 0x442a, 0x442b, 0x442c, 0x442d, 0x442e, 0x442f, - 0x4430, 0x4431, 0x4432, 0x4433, 0x4434, 0x4435, 0x4436, 0x4437, - 0x4438, 0x4439, 0x443a, 0x443b, 0x443c, 0x443d, 0x443e, 0x443f, - 0x4440, 0x4441, 0x4442, 0x4443, 0x4444, 0x4445, 0x4446, 0x4447, - 0x4448, 0x4449, 0x444a, 0x444b, 0x444c, 0x444d, 0x444e, 0x444f, - 0x4450, 0x4451, 0x4452, 0x4453, 0x4454, 0x4455, 0x4456, 0x4457, - 0x4458, 0x4459, 0x445a, 0x445b, 0x445c, 0x445d, 0x445e, 0x445f, - 0x4460, 0x4461, 0x4462, 0x4463, 0x4464, 0x4465, 0x4466, 0x4467, - 0x4468, 0x4469, 0x446a, 0x446b, 0x446c, 0x446d, 0x446e, 0x446f, - 0x4470, 0x4471, 0x4472, 0x4473, 0x4474, 0x4475, 0x4476, 0x4477, - 0x4478, 0x4479, 0x447a, 0x447b, 0x447c, 0x447d, 0x447e, 0x4521, - 0x4522, 0x4523, 0x4524, 0x4525, 0x4526, 0x4527, 0x4528, 0x4529, - 0x452a, 0x452b, 0x452c, 0x452d, 0x452e, 0x452f, 0x4530, 0x4531, - 0x4532, 0x4533, 0x4534, 0x4535, 0x4536, 0x4537, 0x4538, 0x4539, - 0x453a, 0x453b, 0x453c, 0x453d, 0x453e, 0x453f, 0x4540, 0x4541, - 0x4542, 0x4543, 0x4544, 0x4545, 0x4546, 0x4547, 0x4548, 0x4549, - 0x454a, 0x454b, 0x454d, 0x454c, 0x454e, 0x454f, 0x4550, 0x4551, - 0x4552, 0x4553, 0x4554, 0x4555, 0x4556, 0x4557, 0x4558, 0x4559, - 0x455a, 0x455b, 0x455c, 0x455d, 0x455e, 0x455f, 0x4560, 0x4561, - 0x4562, 0x4563, 0x4564, 0x4565, 0x4566, 0x4567, 0x4568, 0x4569, - 0x456a, 0x456b, 0x456c, 0x456d, 0x456e, 0x456f, 0x4570, 0x4571, - 0x4572, 0x4573, 0x4574, 0x4575, 0x4576, 0x4577, 0x4578, 0x4579, - 0x457a, 0x457b, 0x457c, 0x457d, 0x457e, 0x4621, 0x4622, 0x4623, - 0x4624, 0x4625, 0x4626, 0x4627, 0x4628, 0x4629, 0x462a, 0x462b, - 0x462c, 0x462d, 0x462e, 0x462f, 0x4630, 0x4631, 0x4632, 0x4633, - 0x4634, 0x4635, 0x4636, 0x4637, 0x4638, 0x4639, 0x463a, 0x463b, - 0x463c, 0x463d, 0x463e, 0x463f, 0x4640, 0x4641, 0x4642, 0x4643, - 0x4644, 0x4645, 0x4646, 0x4647, 0x4648, 0x4649, 0x464a, 0x464b, - 0x464c, 0x464d, 0x464e, 0x464f, 0x4650, 0x4651, 0x4652, 0x4653, - 0x4654, 0x4655, 0x4656, 0x4657, 0x4658, 0x4659, 0x465a, 0x465b, - 0x465c, 0x465d, 0x465e, 0x465f, 0x4660, 0x4736, 0x4661, 0x4662, - 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, 0x4668, 0x4669, 0x466a, - 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, 0x4670, 0x4671, 0x4672, - 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, 0x4678, 0x4679, 0x467a, - 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, 0x4722, 0x4723, 0x4724, - 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, 0x472a, 0x472b, 0x472c, - 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, 0x4732, 0x4733, 0x4734, - 0x4735, 0x4737, 0x4738, 0x4739, 0x473a, 0x473b, 0x473c, 0x473d, - 0x473e, 0x473f, 0x4740, 0x4741, 0x4742, 0x4743, 0x4744, 0x4745, - 0x4746, 0x4747, 0x4748, 0x4749, 0x474a, 0x474b, 0x474c, 0x474d, - 0x474e, 0x474f, 0x4750, 0x4751, 0x4752, 0x4753, 0x4754, 0x4755, - 0x4756, 0x4757, 0x4758, 0x4759, 0x475a, 0x475b, 0x475c, 0x475d, - 0x475e, 0x475f, 0x4760, 0x4761, 0x4762, 0x4763, 0x4764, 0x4765, - 0x4766, 0x4767, 0x4768, 0x4769, 0x476a, 0x476b, 0x476c, 0x476d, - 0x476e, 0x476f, 0x4770, 0x4771, 0x4772, 0x4773, 0x4774, 0x4775, - 0x4776, 0x4777, 0x4778, 0x4779, 0x477a, 0x477b, 0x477c, 0x477d, - 0x477e, 0x4821, 0x4822, 0x4823, 0x4824, 0x4825, 0x4826, 0x4827, - 0x4828, 0x4829, 0x482a, 0x482b, 0x482c, 0x482d, 0x482e, 0x482f, - 0x4830, 0x4831, 0x4832, 0x4833, 0x4834, 0x4835, 0x4836, 0x4837, - 0x4838, 0x4839, 0x483a, 0x483b, 0x483c, 0x483d, 0x483e, 0x483f, - 0x4840, 0x4841, 0x4842, 0x4843, 0x4844, 0x4845, 0x4846, 0x4847, - 0x4848, 0x4849, 0x484a, 0x484b, 0x484c, 0x4853, 0x484d, 0x484e, - 0x484f, 0x4850, 0x4851, 0x4852, 0x4854, 0x4855, 0x4856, 0x4857, - 0x4858, 0x4859, 0x485a, 0x485b, 0x485c, 0x485d, 0x485e, 0x485f, - 0x4860, 0x4861, 0x4862, 0x4863, 0x4864, 0x4865, 0x4866, 0x4867, - 0x4868, 0x4869, 0x486a, 0x486b, 0x486c, 0x486d, 0x486e, 0x486f, - 0x4870, 0x4871, 0x4872, 0x4873, 0x4874, 0x4875, 0x4876, 0x4877, - 0x4878, 0x4879, 0x487a, 0x487b, 0x487c, 0x487d, 0x487e, 0x4921, - 0x4922, 0x4923, 0x4924, 0x4925, 0x4926, 0x4927, 0x4928, 0x4929, - 0x492a, 0x492b, 0x492c, 0x492d, 0x492e, 0x492f, 0x4930, 0x4931, - 0x4932, 0x4933, 0x4934, 0x4935, 0x4936, 0x4937, 0x4938, 0x4939, - 0x493a, 0x493b, 0x493c, 0x4941, 0x493d, 0x493e, 0x493f, 0x4940, - 0x4942, 0x4943, 0x4944, 0x4945, 0x4946, 0x4947, 0x4948, 0x4949, - 0x494a, 0x494b, 0x494c, 0x494d, 0x494e, 0x494f, 0x4950, 0x4951, - 0x4952, 0x4953, 0x4954, 0x4955, 0x4956, 0x4957, 0x4958, 0x4959, - 0x495a, 0x495b, 0x495c, 0x495d, 0x495e, 0x495f, 0x4960, 0x4961, - 0x4962, 0x4963, 0x4964, 0x4965, 0x4966, 0x4967, 0x4968, 0x4969, - 0x496a, 0x496b, 0x496c, 0x496d, 0x496e, 0x496f, 0x4970, 0x4971, - 0x4972, 0x4973, 0x4974, 0x4975, 0x4976, 0x4977, 0x4978, 0x4979, - 0x497a, 0x497b, 0x497c, 0x497d, 0x497e, 0x4a21, 0x4a22, 0x4a23, - 0x4a24, 0x4a25, 0x4a26, 0x4a27, 0x4a28, 0x4a29, 0x4a2a, 0x4a2b, - 0x4a2c, 0x4a2d, 0x4a2e, 0x4a2f, 0x4a30, 0x4a31, 0x4a32, 0x4a33, - 0x4a34, 0x4a35, 0x4a36, 0x4a37, 0x4a38, 0x4a39, 0x4a3a, 0x4a3b, - 0x4a3c, 0x4a3d, 0x4a3e, 0x4a3f, 0x4a40, 0x4a41, 0x4a42, 0x4a43, - 0x4a44, 0x4a45, 0x4a46, 0x4a47, 0x4a48, 0x4a49, 0x4a4a, 0x4a4b, - 0x4a4c, 0x4a4d, 0x4a4e, 0x4a4f, 0x4a50, 0x4a51, 0x4a52, 0x4a53, - 0x4a54, 0x4a55, 0x4a56, 0x4a57, 0x4a58, 0x4a59, 0x4a5a, 0x4a5b, - 0x4a5c, 0x4a5d, 0x4a5e, 0x4a5f, 0x4a60, 0x4a61, 0x4a62, 0x4a63, - 0x4a64, 0x4a65, 0x4a66, 0x4a67, 0x4a68, 0x4a69, 0x4a6a, 0x4a6b, - 0x4a6c, 0x4a6d, 0x4a6e, 0x4a6f, 0x4a70, 0x4a71, 0x4a72, 0x4a73, - 0x4a74, 0x4a75, 0x4a76, 0x4a77, 0x4a78, 0x4a79, 0x4a7a, 0x4a7b, - 0x4a7c, 0x4a7d, 0x4a7e, 0x4b21, 0x4b22, 0x4b23, 0x4b24, 0x4b25, - 0x4b26, 0x4b27, 0x4b28, 0x4b29, 0x4b2a, 0x4b2b, 0x4b2c, 0x4b2d, - 0x4b2e, 0x4b2f, 0x4b30, 0x4b31, 0x4b32, 0x4b33, 0x4b34, 0x4b35, - 0x4b36, 0x4b37, 0x4b38, 0x4b39, 0x4b3a, 0x4b3b, 0x4b3c, 0x4b3d, - 0x4b3e, 0x4b3f, 0x4b40, 0x4b41, 0x4b42, 0x4b43, 0x4b44, 0x4b45, - 0x4b46, 0x4b47, 0x4b48, 0x4b49, 0x4b4a, 0x4b4b, 0x4b4c, 0x4b4d, - 0x4b4e, 0x4b4f, 0x4b50, 0x4b51, 0x4b52, 0x4b53, 0x4b54, 0x4b55, - 0x4b56, 0x4b57, 0x4b58, 0x4b59, 0x4b5a, 0x4b5b, 0x4b5c, 0x4b5d, - 0x4b5e, 0x4b5f, 0x4b60, 0x4b61, 0x4b62, 0x4b63, 0x4b64, 0x4b65, - 0x4b66, 0x4b67, 0x4b68, 0x4b69, 0x4b6a, 0x4b6b, 0x4b6c, 0x4b6d, - 0x4b6e, 0x4b6f, 0x4b70, 0x4b71, 0x4b72, 0x4b73, 0x4b74, 0x4b75, - 0x4b76, 0x4b77, 0x4b78, 0x4b79, 0x4b7a, 0x4b7b, 0x4b7c, 0x4b7d, - 0x4b7e, 0x4c21, 0x4c22, 0x4c23, 0x4c24, 0x4c25, 0x4c26, 0x4c27, - 0x4c28, 0x4c29, 0x4c2a, 0x4c2b, 0x4c2c, 0x4c2d, 0x4c2e, 0x4c2f, - 0x4c30, 0x4c31, 0x4c32, 0x4c33, 0x4c34, 0x4c35, 0x4c36, 0x4c37, - 0x4c38, 0x4c39, 0x4c3a, 0x4c3b, 0x4c3c, 0x4c3d, 0x4c3e, 0x4c3f, - 0x4c40, 0x4c41, 0x4c42, 0x4c43, 0x4c44, 0x4c45, 0x4c46, 0x4c47, - 0x4c48, 0x4c49, 0x4c4a, 0x4c4b, 0x4c4c, 0x4c4d, 0x4c4e, 0x4c4f, - 0x4c50, 0x4c51, 0x4c52, 0x4c53, 0x4c54, 0x4c55, 0x4c56, 0x4c57, - 0x4c58, 0x4c59, 0x4c5a, 0x4c5b, 0x4c5c, 0x4c5d, 0x4c5e, 0x4c5f, - 0x4c60, 0x4c61, 0x4c62, 0x4c63, 0x4c64, 0x4c65, 0x4c66, 0x4c67, - 0x4c68, 0x4c69, 0x4c6a, 0x4c6b, 0x4c6c, 0x4c6d, 0x4c6e, 0x4c6f, - 0x4c70, 0x4c71, 0x4c72, 0x4c73, 0x4c74, 0x4c75, 0x4c76, 0x4c77, - 0x4c78, 0x4c79, 0x4c7a, 0x4c7b, 0x4c7c, 0x4c7d, 0x4c7e, 0x4d21, - 0x4d22, 0x4d23, 0x4d24, 0x4d25, 0x4d26, 0x4d27, 0x4d28, 0x4d29, - 0x4d2a, 0x4d2b, 0x4d2c, 0x4d2d, 0x4d2e, 0x4d2f, 0x4d30, 0x4d31, - 0x4d32, 0x4d33, 0x4d34, 0x4d35, 0x4d36, 0x4d37, 0x4d38, 0x4d39, - 0x4d3a, 0x4d3b, 0x4d3c, 0x4d3d, 0x4d3e, 0x4d3f, 0x4d40, 0x4d41, - 0x4d42, 0x4d43, 0x4d44, 0x4d45, 0x4d46, 0x4d47, 0x4d48, 0x4d49, - 0x4d4a, 0x4d4b, 0x4d4c, 0x4d4d, 0x4d4e, 0x4d4f, 0x4d50, 0x4d51, - 0x4d52, 0x4d53, 0x4d54, 0x4d55, 0x4d56, 0x4d57, 0x4d58, 0x4d59, - 0x4d5a, 0x4d5b, 0x4d5c, 0x4d5d, 0x4d5e, 0x4d5f, 0x4d60, 0x4d61, - 0x4d62, 0x4d63, 0x4d64, 0x4d65, 0x4d66, 0x4d67, 0x4d68, 0x4d69, - 0x4d6a, 0x4d6b, 0x4d6c, 0x4d6d, 0x4d6e, 0x4d6f, 0x4d70, 0x4d71, - 0x4d72, 0x4d73, 0x4d74, 0x4d75, 0x4d76, 0x4d77, 0x4d78, 0x4d79, - 0x4d7a, 0x4d7b, 0x4d7c, 0x4d7d, 0x4d7e, 0x4e21, 0x4e22, 0x4e24, - 0x4e25, 0x4e26, 0x4e27, 0x4e28, 0x4e29, 0x4e23, 0x4e2a, 0x4e2b, - 0x4e2c, 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, - 0x4e34, 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, - 0x4e3c, 0x4e3d, 0x4e3e, 0x4e3f, 0x4e40, 0x4e41, 0x4e42, 0x4e43, - 0x4e44, 0x4e45, 0x4e46, 0x4e47, 0x4e48, 0x4e49, 0x4e4a, 0x4e4b, - 0x4e4c, 0x4e4d, 0x4e4e, 0x4e4f, 0x4e50, 0x4e51, 0x4e52, 0x4e53, - 0x4e54, 0x4e55, 0x4e56, 0x4e57, 0x4e58, 0x4e59, 0x4e5a, 0x4e5b, - 0x4e5c, 0x4e5d, 0x4e5e, 0x4e5f, 0x4e60, 0x4e61, 0x4e62, 0x4e63, - 0x4e64, 0x4e65, 0x4e66, 0x4e67, 0x4e68, 0x4e69, 0x4e6a, 0x4e6b, - 0x4e6c, 0x4e6d, 0x4e6e, 0x4e6f, 0x4e70, 0x4e71, 0x4e72, 0x4e73, - 0x4e74, 0x4e75, 0x4e76, 0x4e77, 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, - 0x4e7c, 0x4e7d, 0x4e7e, 0x4f21, 0x4f22, 0x4f23, 0x4f24, 0x4f25, - 0x4f26, 0x4f27, 0x4f28, 0x4f29, 0x4f2a, 0x4f2b, 0x4f2c, 0x4f2d, - 0x4f2e, 0x4f2f, 0x4f30, 0x4f31, 0x4f32, 0x4f33, 0x4f34, 0x4f35, - 0x4f36, 0x4f37, 0x4f38, 0x4f39, 0x4f3a, 0x4f3b, 0x4f3c, 0x4f3d, - 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f43, 0x4f44, 0x4f45, - 0x4f46, 0x4f47, 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f4d, - 0x4f4e, 0x4f4f, 0x4f50, 0x4f51, 0x4f52, 0x4f53, 0x4f54, 0x4f55, - 0x4f56, 0x4f57, 0x4f58, 0x4f59, 0x4f5a, 0x4f5b, 0x4f5c, 0x4f5d, - 0x4f5e, 0x4f5f, 0x4f60, 0x4f61, 0x4f62, 0x4f63, 0x4f64, 0x4f65, - 0x4f66, 0x4f67, 0x4f68, 0x4f69, 0x4f6a, 0x4f6b, 0x4f6c, 0x4f6d, - 0x4f6e, 0x4f6f, 0x4f70, 0x4f71, 0x4f72, 0x4f74, 0x4f75, 0x4f76, - 0x4f73, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7b, 0x4f7c, 0x4f7d, - 0x4f7e, 0x5021, 0x5022, 0x5023, 0x5024, 0x5025, 0x5026, 0x5027, - 0x5028, 0x5029, 0x502a, 0x502b, 0x502c, 0x502e, 0x502f, 0x5030, - 0x5031, 0x502d, 0x5032, 0x5033, 0x5034, 0x5035, 0x5037, 0x5038, - 0x5039, 0x503a, 0x503b, 0x5036, 0x503c, 0x503d, 0x503e, 0x503f, - 0x5040, 0x5041, 0x5042, 0x5043, 0x5044, 0x5045, 0x5046, 0x5047, - 0x5048, 0x5049, 0x504a, 0x504b, 0x504c, 0x504d, 0x504e, 0x504f, - 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5055, 0x5056, 0x5057, - 0x5058, 0x5059, 0x505a, 0x505b, 0x505c, 0x505d, 0x505e, 0x505f, - 0x5060, 0x5061, 0x5062, 0x5063, 0x5064, 0x5065, 0x5066, 0x5067, - 0x5068, 0x5069, 0x506a, 0x506b, 0x506c, 0x506d, 0x506e, 0x506f, - 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, 0x5075, 0x5076, 0x5077, - 0x5078, 0x5079, 0x507a, 0x507b, 0x507c, 0x507d, 0x507e, 0x5121, - 0x5122, 0x5123, 0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, - 0x512a, 0x512b, 0x512c, 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, - 0x5132, 0x5133, 0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, - 0x513a, 0x513b, 0x513c, 0x513d, 0x513e, 0x513f, 0x5140, 0x5141, - 0x5142, 0x5143, 0x5144, 0x5145, 0x5146, 0x5147, 0x5148, 0x5149, - 0x514a, 0x514b, 0x514c, 0x514d, 0x514e, 0x514f, 0x5150, 0x5151, - 0x5152, 0x5153, 0x5154, 0x5155, 0x5156, 0x5157, 0x5158, 0x5159, - 0x515a, 0x515b, 0x515c, 0x515d, 0x515e, 0x515f, 0x5160, 0x5161, - 0x5162, 0x5163, 0x5164, 0x5165, 0x5166, 0x5167, 0x5168, 0x5169, - 0x516a, 0x516b, 0x516c, 0x516d, 0x516e, 0x516f, 0x5170, 0x5171, - 0x5172, 0x5173, 0x5174, 0x5175, 0x5176, 0x5177, 0x5178, 0x5179, - 0x517a, 0x517b, 0x517c, 0x517d, 0x517e, 0x5221, 0x5222, 0x5223, - 0x5224, 0x5225, 0x5226, 0x5227, 0x5228, 0x5229, 0x522a, 0x522b, - 0x522c, 0x522d, 0x522e, 0x522f, 0x5230, 0x5231, 0x5232, 0x5233, - 0x5234, 0x5235, 0x5236, 0x5237, 0x5238, 0x5239, 0x523a, 0x523b, - 0x523c, 0x523d, 0x523e, 0x523f, 0x5240, 0x5241, 0x5242, 0x5243, - 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524a, 0x524b, - 0x524c, 0x524d, 0x524e, 0x524f, 0x5250, 0x5251, 0x5252, 0x5253, - 0x5254, 0x5255, 0x5256, 0x5257, 0x5258, 0x5259, 0x525a, 0x525b, - 0x525c, 0x525d, 0x525e, 0x525f, 0x5260, 0x5261, 0x5262, 0x5263, - 0x5264, 0x5265, 0x5266, 0x5267, 0x5268, 0x5269, 0x526a, 0x526b, - 0x526c, 0x526d, 0x526e, 0x526f, 0x5270, 0x5271, 0x5272, 0x5273, - 0x5274, 0x5276, 0x5277, 0x5278, 0x5275, 0x5279, 0x527a, 0x527b, - 0x527c, 0x527d, 0x527e, 0x5321, 0x5322, 0x5323, 0x5324, 0x5325, - 0x5326, 0x5327, 0x5328, 0x5329, 0x532a, 0x532b, 0x532c, 0x532d, - 0x532e, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, 0x5335, - 0x5336, 0x5337, 0x5338, 0x5339, 0x533a, 0x533b, 0x533c, 0x533d, - 0x533e, 0x533f, 0x5340, 0x5341, 0x5342, 0x5343, 0x5344, 0x5345, - 0x5346, 0x5347, 0x5348, 0x5349, 0x534a, 0x534b, 0x534c, 0x534d, - 0x534e, 0x534f, 0x5350, 0x5351, 0x5352, 0x5353, 0x5354, 0x5355, - 0x5356, 0x5357, 0x5358, 0x5359, 0x535a, 0x535b, 0x535c, 0x535d, - 0x535e, 0x535f, 0x5360, 0x5361, 0x5362, 0x5363, 0x5364, 0x5365, - 0x5366, 0x5367, 0x5368, 0x5369, 0x536a, 0x536b, 0x536c, 0x536d, - 0x536e, 0x536f, 0x5370, 0x5371, 0x5372, 0x5373, 0x5374, 0x5375, - 0x5376, 0x5377, 0x5378, 0x5379, 0x537a, 0x537b, 0x537c, 0x537d, - 0x537e, 0x5421, 0x5422, 0x5423, 0x5424, 0x5425, 0x5426, 0x5427, - 0x5428, 0x5429, 0x542a, 0x542b, 0x542c, 0x542d, 0x542e, 0x542f, - 0x5430, 0x5431, 0x5432, 0x5434, 0x5435, 0x5436, 0x5437, 0x5438, - 0x5439, 0x543a, 0x543b, 0x543c, 0x543d, 0x543e, 0x5433, 0x543f, - 0x5440, 0x5441, 0x5442, 0x5443, 0x5444, 0x5445, 0x5446, 0x5447, - 0x5448, 0x5449, 0x544a, 0x544b, 0x544c, 0x544d, 0x544e, 0x544f, - 0x5450, 0x5451, 0x5452, 0x5453, 0x5454, 0x5455, 0x5456, 0x5457, - 0x5458, 0x5459, 0x545a, 0x545b, 0x545c, 0x545d, 0x545e, 0x545f, - 0x5460, 0x5461, 0x5462, 0x5463, 0x5464, 0x5465, 0x5466, 0x5467, - 0x5468, 0x5469, 0x546a, 0x546c, 0x546b, 0x546d, 0x546e, 0x546f, - 0x5470, 0x5471, 0x5472, 0x5473, 0x5474, 0x5475, 0x5476, 0x5477, - 0x5478, 0x5479, 0x547a, 0x547b, 0x547c, 0x547d, 0x547e, 0x5521, - 0x5522, 0x5523, 0x5524, 0x5525, 0x5526, 0x5527, 0x5528, 0x5529, - 0x552a, 0x552b, 0x552c, 0x552d, 0x552e, 0x552f, 0x5530, 0x5531, - 0x5532, 0x5533, 0x5534, 0x5535, 0x5536, 0x5537, 0x5538, 0x5539, - 0x553a, 0x553b, 0x553c, 0x553d, 0x553e, 0x553f, 0x5540, 0x5541, - 0x5542, 0x5543, 0x5544, 0x5545, 0x5546, 0x5547, 0x5548, 0x5549, - 0x554a, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5550, 0x5551, - 0x5552, 0x5553, 0x5554, 0x5555, 0x5556, 0x5557, 0x5558, 0x5559, - 0x555a, 0x555b, 0x555c, 0x555d, 0x555e, 0x555f, 0x5560, 0x5561, - 0x5562, 0x5563, 0x5564, 0x5565, 0x5566, 0x5567, 0x5568, 0x5569, - 0x556a, 0x556b, 0x556c, 0x556d, 0x556e, 0x556f, 0x5570, 0x5571, - 0x5572, 0x5573, 0x5574, 0x5575, 0x5576, 0x5577, 0x5578, 0x5579, - 0x557a, 0x557b, 0x557c, 0x557d, 0x557e, 0x5621, 0x5622, 0x5623, - 0x5624, 0x5625, 0x5626, 0x5627, 0x5628, 0x5629, 0x562a, 0x562b, - 0x562c, 0x562d, 0x562e, 0x562f, 0x5630, 0x5631, 0x5632, 0x5633, - 0x5634, 0x5635, 0x5636, 0x5637, 0x5638, 0x5639, 0x563a, 0x563b, - 0x563c, 0x563d, 0x563e, 0x563f, 0x5640, 0x5641, 0x5642, 0x5643, - 0x5644, 0x5645, 0x5647, 0x5648, 0x5649, 0x564a, 0x564b, 0x5646, - 0x564c, 0x564d, 0x564e, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, - 0x5654, 0x5656, 0x5657, 0x5658, 0x5655, 0x5659, 0x565a, 0x565b, - 0x565c, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x5662, 0x5663, - 0x5664, 0x5665, 0x5666, 0x5667, 0x5668, 0x5669, 0x566a, 0x566b, - 0x566c, 0x566d, 0x566e, 0x566f, 0x5670, 0x5671, 0x5672, 0x5673, - 0x5674, 0x5675, 0x5676, 0x5677, 0x5678, 0x5679, 0x567a, 0x567b, - 0x567c, 0x567d, 0x567e, 0x5721, 0x5722, 0x5723, 0x5724, 0x5725, - 0x5726, 0x5727, 0x5728, 0x5729, 0x572a, 0x572b, 0x572c, 0x572d, - 0x572e, 0x572f, 0x5730, 0x5731, 0x5732, 0x5733, 0x5734, 0x5735, - 0x5736, 0x5737, 0x5738, 0x5739, 0x573a, 0x573b, 0x573c, 0x573d, - 0x573e, 0x573f, 0x5740, 0x5741, 0x5742, 0x5743, 0x5744, 0x5745, - 0x5746, 0x5747, 0x5748, 0x5749, 0x574a, 0x574b, 0x574c, 0x574d, - 0x574e, 0x574f, 0x5750, 0x5751, 0x5752, 0x5753, 0x5754, 0x5755, - 0x5756, 0x5757, 0x5758, 0x5759, 0x575a, 0x575b, 0x575c, 0x575d, - 0x575e, 0x575f, 0x5760, 0x5761, 0x5762, 0x5764, 0x5765, 0x5766, - 0x5767, 0x5768, 0x5769, 0x576a, 0x576b, 0x576c, 0x576d, 0x576e, - 0x576f, 0x5770, 0x5771, 0x5772, 0x5773, 0x5774, 0x5775, 0x5776, - 0x5777, 0x5778, 0x5779, 0x583e, 0x5763, 0x577a, 0x577b, 0x577c, - 0x577d, 0x577e, 0x5821, 0x5822, 0x5823, 0x5824, 0x5825, 0x5826, - 0x5827, 0x5828, 0x5829, 0x582a, 0x582b, 0x582c, 0x582d, 0x582e, - 0x582f, 0x5830, 0x5831, 0x5832, 0x5833, 0x584c, 0x5834, 0x5835, - 0x5836, 0x5837, 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d, - 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5844, 0x5845, 0x5846, - 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584d, 0x584e, 0x584f, - 0x5850, 0x5851, 0x5852, 0x5853, 0x5854, 0x5855, 0x5856, 0x5857, - 0x5858, 0x5859, 0x585a, 0x585b, 0x585c, 0x585d, 0x585e, 0x585f, - 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, 0x5865, 0x5866, 0x5867, - 0x5868, 0x5869, 0x586a, 0x586b, 0x586c, 0x586d, 0x586e, 0x586f, - 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, - 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587e, 0x5921, - 0x5922, 0x5923, 0x5924, 0x5925, 0x5926, 0x5927, 0x5928, 0x592a, - 0x592b, 0x592c, 0x592d, 0x592e, 0x592f, 0x5930, 0x5931, 0x5932, - 0x5933, 0x5934, 0x5935, 0x5936, 0x5937, 0x5938, 0x5939, 0x593a, - 0x593b, 0x593c, 0x5929, 0x593d, 0x593e, 0x593f, 0x5940, 0x5941, - 0x5942, 0x5943, 0x5944, 0x5945, 0x5946, 0x5947, 0x5948, 0x5949, - 0x594a, 0x594b, 0x594c, 0x594d, 0x594e, 0x594f, 0x5950, 0x5951, - 0x5952, 0x5953, 0x5954, 0x5955, 0x5956, 0x5957, 0x5958, 0x5959, - 0x595a, 0x595b, 0x595c, 0x595d, 0x595e, 0x595f, 0x5960, 0x5961, - 0x5962, 0x5963, 0x5964, 0x5965, 0x5966, 0x5974, 0x5967, 0x5968, - 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f, 0x5970, - 0x5971, 0x5972, 0x5973, 0x5975, 0x5976, 0x5977, 0x5978, 0x5979, - 0x597a, 0x597b, 0x597c, 0x597d, 0x597e, 0x5a21, 0x5a22, 0x5a23, - 0x5a24, 0x5a25, 0x5a26, 0x5a27, 0x5a28, 0x5a29, 0x5a2a, 0x5a2b, - 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, 0x5a30, 0x5a31, 0x5a32, 0x5a33, - 0x5a34, 0x5a35, 0x5a36, 0x3866, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, - 0x5a3b, 0x5a3c, 0x5a3d, 0x5a3e, 0x5a3f, 0x5a40, 0x5a41, 0x5a42, - 0x5a43, 0x5a44, 0x5a45, 0x5a46, 0x5a47, 0x5a48, 0x5a49, 0x5a4a, - 0x5a4b, 0x5a6d, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50, 0x5a51, - 0x5a52, 0x5a53, 0x5a54, 0x5a55, 0x5a56, 0x5a57, 0x5a58, 0x5a59, - 0x5a5a, 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60, 0x5a61, - 0x5a62, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a67, 0x5a68, 0x5a69, - 0x5a6a, 0x5a6b, 0x5a6c, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, - 0x5a73, 0x5a74, 0x5a75, 0x5a76, 0x5a77, 0x5a78, 0x5a79, 0x5a7a, - 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5b21, 0x5b22, 0x5b23, 0x5b24, - 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, - 0x5b2d, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b32, 0x5b33, 0x5b34, - 0x5b35, 0x5b36, 0x5b37, 0x5b38, 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, - 0x5b3d, 0x5b3e, 0x5b3f, 0x5b40, 0x5b41, 0x5b42, 0x5b43, 0x5b44, - 0x5b45, 0x5b46, 0x5b47, 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, - 0x5b4d, 0x5b4e, 0x5b4f, 0x5b50, 0x5b51, 0x5b52, 0x5b53, 0x5b54, - 0x5b55, 0x5b56, 0x5b57, 0x5b58, 0x5b59, 0x5b5a, 0x5b5b, 0x5b5c, - 0x5b5d, 0x5b5e, 0x5b5f, 0x5b60, 0x5b61, 0x5b62, 0x5b63, 0x5b64, - 0x5b65, 0x5b66, 0x5b67, 0x5b68, 0x5b69, 0x5b6a, 0x5b6b, 0x5b6c, - 0x5b6d, 0x5b6e, 0x5b70, 0x5b71, 0x5b72, 0x5b73, 0x5b6f, 0x5b74, - 0x5b75, 0x5b76, 0x5b77, 0x5b78, 0x5b79, 0x5b7a, 0x5b7b, 0x5b7c, - 0x5b7d, 0x5b7e, 0x5c21, 0x5c22, 0x5c23, 0x5c24, 0x5c25, 0x5c26, - 0x5c27, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2c, 0x5c2d, 0x5c2e, - 0x5c2f, 0x5c30, 0x5c31, 0x5c32, 0x5c33, 0x5c34, 0x5c35, 0x5c36, - 0x5c37, 0x5c38, 0x5c39, 0x5c3a, 0x5c3b, 0x5c3c, 0x5c3d, 0x5c3e, - 0x5c3f, 0x5c40, 0x5c41, 0x5c42, 0x5c43, 0x5c44, 0x5c45, 0x5c46, - 0x5c47, 0x5c48, 0x5c49, 0x5c4a, 0x5c4b, 0x5c4c, 0x5c4d, 0x5c4e, - 0x5c4f, 0x5c50, 0x5c51, 0x5c52, 0x5c53, 0x5c54, 0x5c55, 0x5c56, - 0x5c57, 0x5c58, 0x5c59, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d, 0x5c5e, - 0x5c5f, 0x5c60, 0x5c61, 0x5c62, 0x5c63, 0x5c64, 0x5c65, 0x5c66, - 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, 0x5c6c, 0x5c6d, 0x5c6e, - 0x5c6f, 0x5c70, 0x5c71, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76, - 0x5c77, 0x5c78, 0x5c79, 0x5c7a, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, - 0x5d21, 0x5d22, 0x5d23, 0x5d24, 0x5d25, 0x5d26, 0x5d27, 0x5d28, - 0x5d29, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2d, 0x5d2e, 0x5d2f, 0x5d30, - 0x5d31, 0x5d32, 0x5d33, 0x5d34, 0x5d35, 0x5d36, 0x5d37, 0x5d38, - 0x5d39, 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3d, 0x5d3e, 0x5d3f, 0x5d40, - 0x5d41, 0x5d42, 0x5d43, 0x5d44, 0x5d45, 0x5d46, 0x5d47, 0x5d48, - 0x5d49, 0x5d4a, 0x5d4b, 0x5d4c, 0x5d4d, 0x5d4e, 0x5d4f, 0x5d50, - 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57, 0x5d58, - 0x5d59, 0x5d5a, 0x5d5b, 0x5d5c, 0x5d5d, 0x5d5e, 0x5d5f, 0x5d60, - 0x5d61, 0x5d62, 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, - 0x5d69, 0x5d6a, 0x5d6b, 0x5d6c, 0x5d6d, 0x5d6e, 0x5d6f, 0x5d70, - 0x5d71, 0x5d72, 0x5d73, 0x5d74, 0x5d75, 0x5d76, 0x5d77, 0x5d78, - 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5e21, 0x5e22, - 0x5e23, 0x5e24, 0x5e25, 0x5e26, 0x5e27, 0x5e28, 0x5e29, 0x5e2a, - 0x5e2b, 0x5e2c, 0x5e2d, 0x5e2e, 0x5e2f, 0x5e30, 0x5e31, 0x5e32, - 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e37, 0x5e38, 0x5e39, 0x5e3f, - 0x5e3a, 0x5e3b, 0x5e3c, 0x5e3d, 0x5e3e, 0x5e40, 0x5e41, 0x5e42, - 0x5e43, 0x5e44, 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4e, - 0x5e4a, 0x5e4b, 0x5e4c, 0x5e4d, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, - 0x5e53, 0x5e54, 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, - 0x5e5b, 0x5e5c, 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, - 0x5e63, 0x5e64, 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, - 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, 0x5e6f, 0x5e72, 0x5e70, 0x5e71, - 0x5e73, 0x5e74, 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, - 0x5e7b, 0x5e7c, 0x5e7d, 0x5e7e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, - 0x5f25, 0x5f26, 0x5f27, 0x5f28, 0x5f29, 0x5f2a, 0x5f2b, 0x5f2c, - 0x5f2d, 0x5f2e, 0x5f2f, 0x5f30, 0x5f32, 0x5f31, 0x5f33, 0x5f34, - 0x5f35, 0x5f36, 0x5f37, 0x5f38, 0x5f39, 0x5f3a, 0x5f3b, 0x5f3c, - 0x5f3d, 0x5f3e, 0x5f3f, 0x5f40, 0x5f41, 0x5f42, 0x5f43, 0x5f44, - 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, 0x5f4a, 0x5f4b, 0x5f4c, - 0x5f4d, 0x5f4e, 0x5f4f, 0x5f50, 0x5f51, 0x5f52, 0x5f53, 0x5f54, - 0x5f55, 0x5f56, 0x5f57, 0x5f58, 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, - 0x5f5d, 0x5f6f, 0x5f5e, 0x5f5f, 0x5f60, 0x5f61, 0x5f62, 0x5f63, - 0x5f64, 0x5f65, 0x5f66, 0x5f67, 0x5f68, 0x5f69, 0x5f6a, 0x5f6b, - 0x5f6c, 0x5f6d, 0x5f6e, 0x5f70, 0x5f71, 0x5f72, 0x5f73, 0x5f74, - 0x5f75, 0x5f76, 0x5f77, 0x5f78, 0x5f79, 0x5f7a, 0x5f7b, 0x5f7c, - 0x5f7d, 0x5f7e, 0x6021, 0x6022, 0x6023, 0x6024, 0x6025, 0x6026, - 0x6027, 0x6028, 0x6029, 0x602a, 0x602b, 0x602c, 0x602d, 0x602e, - 0x602f, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6035, 0x6036, - 0x6037, 0x6038, 0x6039, 0x603a, 0x603b, 0x603c, 0x603d, 0x603e, - 0x603f, 0x6040, 0x6041, 0x6042, 0x6043, 0x6044, 0x6045, 0x6046, - 0x6047, 0x6048, 0x6049, 0x604a, 0x604b, 0x604c, 0x604d, 0x604e, - 0x604f, 0x6050, 0x6051, 0x6052, 0x6053, 0x6054, 0x6055, 0x6056, - 0x6057, 0x6058, 0x6059, 0x605a, 0x605b, 0x605c, 0x605d, 0x6064, - 0x605e, 0x605f, 0x6060, 0x6061, 0x6062, 0x6063, 0x6065, 0x6066, - 0x6067, 0x6068, 0x6069, 0x606a, 0x606b, 0x606c, 0x606d, 0x606e, - 0x606f, 0x6070, 0x6071, 0x6072, 0x6073, 0x6074, 0x6075, 0x6076, - 0x6077, 0x6078, 0x6079, 0x607a, 0x607b, 0x607c, 0x607d, 0x607e, - 0x6121, 0x6122, 0x6123, 0x6124, 0x6125, 0x6126, 0x6127, 0x6128, - 0x6129, 0x612a, 0x612b, 0x612c, 0x612d, 0x612e, 0x612f, 0x6130, - 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137, 0x6138, - 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x613f, 0x6140, - 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0x6147, 0x6148, - 0x6149, 0x614a, 0x614b, 0x614c, 0x614d, 0x614e, 0x614f, 0x6150, - 0x6151, 0x6152, 0x6154, 0x6155, 0x6156, 0x6153, 0x6157, 0x6158, - 0x6159, 0x615a, 0x615b, 0x615c, 0x615d, 0x615e, 0x615f, 0x6160, - 0x6161, 0x6162, 0x6163, 0x6164, 0x6165, 0x6166, 0x6167, 0x6168, - 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6170, - 0x6171, 0x6172, 0x6173, 0x6174, 0x6175, 0x6176, 0x6177, 0x6178, - 0x6179, 0x617a, 0x617b, 0x617d, 0x617e, 0x6221, 0x6222, 0x6223, - 0x6224, 0x617c, 0x622d, 0x6225, 0x6226, 0x6227, 0x6228, 0x6229, - 0x622a, 0x622b, 0x622c, 0x622f, 0x6230, 0x6231, 0x6232, 0x622e, - 0x6233, 0x6234, 0x6235, 0x6236, 0x6237, 0x6238, 0x6239, 0x623a, - 0x623b, 0x623c, 0x623d, 0x623e, 0x623f, 0x6240, 0x6241, 0x6242, - 0x6243, 0x6245, 0x6246, 0x6244, 0x6247, 0x6248, 0x6249, 0x624a, - 0x624b, 0x624c, 0x624d, 0x624e, 0x624f, 0x6250, 0x6251, 0x6252, - 0x6253, 0x6254, 0x6255, 0x6256, 0x6257, 0x6258, 0x6259, 0x625a, - 0x625b, 0x625c, 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, - 0x6263, 0x6264, 0x6265, 0x6266, 0x6267, 0x6268, 0x6269, 0x626a, - 0x626b, 0x626c, 0x626d, 0x626e, 0x626f, 0x6270, 0x6271, 0x6272, - 0x6273, 0x6274, 0x6275, 0x6276, 0x6277, 0x6278, 0x6279, 0x627a, - 0x627b, 0x627c, 0x627d, 0x627e, 0x6321, 0x6322, 0x6323, 0x6324, - 0x6325, 0x6326, 0x6327, 0x6328, 0x6329, 0x632a, 0x632b, 0x632c, - 0x632d, 0x632e, 0x632f, 0x6330, 0x6331, 0x6332, 0x6333, 0x6334, - 0x6335, 0x6336, 0x6337, 0x6338, 0x6339, 0x633a, 0x633b, 0x633c, - 0x633d, 0x633e, 0x633f, 0x6340, 0x6341, 0x6342, 0x6343, 0x6344, - 0x6345, 0x6346, 0x6347, 0x6348, 0x6349, 0x634a, 0x634b, 0x634c, - 0x634d, 0x634e, 0x634f, 0x6350, 0x6351, 0x6352, 0x6353, 0x6354, - 0x6355, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c, - 0x635d, 0x635e, 0x635f, 0x6360, 0x6361, 0x6362, 0x6363, 0x6364, - 0x6365, 0x6366, 0x6367, 0x6368, 0x6369, 0x636a, 0x636b, 0x636c, - 0x636d, 0x636e, 0x636f, 0x6370, 0x6371, 0x6372, 0x6373, 0x6374, - 0x6375, 0x6376, 0x6377, 0x6378, 0x6379, 0x637a, 0x637b, 0x637c, - 0x637d, 0x637e, 0x6421, 0x6422, 0x6423, 0x6424, 0x6425, 0x6426, - 0x6427, 0x6428, 0x6429, 0x642a, 0x642b, 0x642c, 0x642d, 0x642e, - 0x642f, 0x6430, 0x6431, 0x6432, 0x6433, 0x6434, 0x6435, 0x6436, - 0x6437, 0x6438, 0x6439, 0x643a, 0x643b, 0x643c, 0x643d, 0x643e, - 0x643f, 0x6440, 0x6441, 0x6442, 0x6443, 0x6444, 0x6445, 0x6446, - 0x6447, 0x6448, 0x6449, 0x644a, 0x644b, 0x644c, 0x644d, 0x644e, - 0x644f, 0x6450, 0x6451, 0x6452, 0x6453, 0x6454, 0x6455, 0x6456, - 0x6457, 0x6458, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645e, - 0x645f, 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, - 0x6467, 0x6468, 0x6469, 0x646a, 0x646b, 0x646c, 0x646d, 0x646e, - 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, 0x6474, 0x6475, 0x6476, - 0x6477, 0x6478, 0x6479, 0x647a, 0x647b, 0x647c, 0x647d, 0x647e, - 0x6521, 0x6522, 0x6523, 0x6524, 0x6525, 0x6526, 0x6527, 0x6528, - 0x6529, 0x652a, 0x652b, 0x652c, 0x652d, 0x652e, 0x652f, 0x6530, - 0x6531, 0x6532, 0x6533, 0x6534, 0x6535, 0x653b, 0x6536, 0x6537, - 0x6538, 0x6539, 0x653a, 0x653c, 0x653d, 0x653e, 0x653f, 0x6540, - 0x6541, 0x6542, 0x6543, 0x6544, 0x6545, 0x6546, 0x6547, 0x6548, - 0x6549, 0x654a, 0x654b, 0x654c, 0x654d, 0x654f, 0x6550, 0x654e, - 0x6551, 0x6552, 0x6553, 0x6554, 0x6555, 0x6556, 0x6557, 0x6558, - 0x6559, 0x655a, 0x655b, 0x655c, 0x655d, 0x655e, 0x655f, 0x6560, - 0x6561, 0x6562, 0x6563, 0x6564, 0x6565, 0x6566, 0x6568, 0x6567, - 0x6569, 0x656a, 0x656b, 0x656c, 0x656d, 0x656e, 0x656f, 0x6570, - 0x6571, 0x6572, 0x6573, 0x6574, 0x6575, 0x6576, 0x6577, 0x6578, - 0x6579, 0x657a, 0x657c, 0x657b, 0x657d, 0x657e, 0x6621, 0x6622, - 0x6623, 0x6624, 0x6625, 0x6626, 0x6627, 0x6628, 0x6629, 0x662a, - 0x662b, 0x662c, 0x662d, 0x662e, 0x662f, 0x6630, 0x6631, 0x6632, - 0x6633, 0x6634, 0x6635, 0x6636, 0x6637, 0x6638, 0x6639, 0x663a, - 0x663b, 0x663c, 0x663d, 0x663e, 0x663f, 0x6640, 0x6641, 0x6642, - 0x6643, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649, 0x664a, - 0x664b, 0x664c, 0x664d, 0x664e, 0x664f, 0x6650, 0x6651, 0x6652, - 0x6653, 0x6654, 0x6655, 0x6656, 0x6657, 0x6658, 0x6659, 0x665a, - 0x665b, 0x665c, 0x665d, 0x665e, 0x665f, 0x6660, 0x6661, 0x6662, - 0x6663, 0x6664, 0x6665, 0x6666, 0x6667, 0x6668, 0x6669, 0x666a, - 0x666b, 0x666c, 0x666d, 0x666e, 0x666f, 0x6670, 0x6671, 0x6672, - 0x6673, 0x6675, 0x6676, 0x6677, 0x6678, 0x6679, 0x667a, 0x667b, - 0x667c, 0x667d, 0x667e, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, - 0x6726, 0x6727, 0x6728, 0x6729, 0x672a, 0x672b, 0x672c, 0x672d, - 0x672e, 0x672f, 0x6730, 0x6731, 0x6732, 0x6733, 0x6734, 0x6735, - 0x6736, 0x6737, 0x6738, 0x6739, 0x673a, 0x673b, 0x673c, 0x673d, - 0x673e, 0x673f, 0x6740, 0x6741, 0x6742, 0x6743, 0x6744, 0x6745, - 0x6746, 0x6747, 0x6748, 0x6749, 0x674a, 0x674b, 0x674c, 0x674d, - 0x674e, 0x674f, 0x6750, 0x6751, 0x6752, 0x6753, 0x6754, 0x6755, - 0x6756, 0x6757, 0x6758, 0x6759, 0x675a, 0x675b, 0x675c, 0x675d, - 0x675e, 0x675f, 0x6760, 0x6761, 0x6762, 0x6763, 0x6764, 0x6765, - 0x6766, 0x676a, 0x6767, 0x6768, 0x6769, 0x676b, 0x676c, 0x676d, - 0x676e, 0x676f, 0x6770, 0x6771, 0x6772, 0x6773, 0x6774, 0x6776, - 0x6777, 0x6778, 0x6779, 0x6775, 0x677a, 0x677b, 0x677c, 0x677d, - 0x6828, 0x677e, 0x6821, 0x6822, 0x6823, 0x6824, 0x6825, 0x6826, - 0x6827, 0x6829, 0x682a, 0x682b, 0x682c, 0x682d, 0x682e, 0x682f, - 0x6830, 0x6831, 0x6832, 0x6833, 0x6834, 0x6835, 0x6836, 0x6837, - 0x6838, 0x6839, 0x683a, 0x683b, 0x683c, 0x683d, 0x683e, 0x683f, - 0x6840, 0x6841, 0x6842, 0x6843, 0x6844, 0x6845, 0x6846, 0x6847, - 0x6848, 0x6849, 0x684a, 0x684b, 0x684c, 0x684d, 0x684e, 0x684f, - 0x6850, 0x6851, 0x6852, 0x6853, 0x6854, 0x6855, 0x6856, 0x6857, - 0x6858, 0x6859, 0x685a, 0x685b, 0x685c, 0x685d, 0x685e, 0x685f, - 0x6860, 0x6861, 0x6862, 0x6863, 0x6864, 0x6865, 0x6866, 0x6867, - 0x6868, 0x6869, 0x686a, 0x686b, 0x686c, 0x686d, 0x686e, 0x686f, - 0x6870, 0x6871, 0x6872, 0x6873, 0x6874, 0x6875, 0x6876, 0x6877, - 0x6878, 0x6879, 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x6921, - 0x6922, 0x6923, 0x6924, 0x6925, 0x6926, 0x6927, 0x6928, 0x6929, - 0x692a, 0x692b, 0x692c, 0x692d, 0x692e, 0x692f, 0x6930, 0x6931, - 0x6932, 0x6933, 0x6934, 0x6935, 0x6936, 0x6937, 0x6938, 0x6939, - 0x693a, 0x693b, 0x693c, 0x693d, 0x693e, 0x693f, 0x6940, 0x6941, - 0x6942, 0x6943, 0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, - 0x694a, 0x694c, 0x694d, 0x694b, 0x694e, 0x694f, 0x6950, 0x6951, - 0x6952, 0x6953, 0x6954, 0x6955, 0x6956, 0x6957, 0x6958, 0x6959, - 0x695a, 0x695b, 0x695c, 0x695d, 0x695e, 0x695f, 0x6960, 0x6961, - 0x6962, 0x6963, 0x6964, 0x6965, 0x6966, 0x6967, 0x6968, 0x6969, - 0x696a, 0x696b, 0x696c, 0x696d, 0x696e, 0x696f, 0x6970, 0x6971, - 0x6972, 0x6973, 0x6974, 0x6975, 0x6976, 0x6977, 0x6978, 0x6979, - 0x697a, 0x697b, 0x697c, 0x697d, 0x697e, 0x6a21, 0x6a22, 0x6a23, - 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a28, 0x6a29, 0x6a2a, 0x6a2b, - 0x6a2c, 0x6a2d, 0x6a2e, 0x6a2f, 0x6a30, 0x6a31, 0x6a32, 0x6a33, - 0x6a34, 0x6a35, 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, - 0x6a3c, 0x6a3d, 0x6a3e, 0x6a3f, 0x6a40, 0x6a41, 0x6a42, 0x6a43, - 0x6a44, 0x6a45, 0x6a46, 0x6a47, 0x6a48, 0x6a49, 0x6a4a, 0x6a4b, - 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a50, 0x6a51, 0x6a52, 0x6a53, - 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a58, 0x6a59, 0x6a5a, 0x6a5b, - 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a61, 0x6a62, 0x6a63, - 0x6a64, 0x6a65, 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, - 0x6a6c, 0x6a6d, 0x6a6e, 0x6a6f, 0x6a70, 0x6a71, 0x6a72, 0x6a73, - 0x6a74, 0x6a75, 0x6a76, 0x6a77, 0x6a78, 0x6a79, 0x6a7a, 0x6a7b, - 0x6a7c, 0x6a7d, 0x6a7e, 0x6b21, 0x6b22, 0x6b23, 0x6b24, 0x6b25, - 0x6b26, 0x6b27, 0x6b28, 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, - 0x6b2e, 0x6b2f, 0x6b30, 0x6b31, 0x6b32, 0x6b33, 0x6b34, 0x6b35, - 0x6b36, 0x6b37, 0x6b38, 0x6b39, 0x6b3a, 0x6b3b, 0x6b3c, 0x6b3d, - 0x6b3e, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b43, 0x6b44, 0x6b45, - 0x6b46, 0x6b47, 0x6b48, 0x6b49, 0x6b50, 0x6b4a, 0x6b4b, 0x6b4c, - 0x6b4d, 0x6b52, 0x6b4e, 0x6b4f, 0x6b51, 0x6b53, 0x6b54, 0x6b55, - 0x6b56, 0x6b57, 0x6b58, 0x6b59, 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5e, - 0x6b5d, 0x6b5f, 0x6b60, 0x6b61, 0x6b62, 0x6b63, 0x6b64, 0x6b65, - 0x6b66, 0x6b67, 0x6b68, 0x6b69, 0x6b6a, 0x6b6b, 0x6b6d, 0x6b6e, - 0x6b6f, 0x6b6c, 0x6b70, 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b76, - 0x6b75, 0x6b77, 0x6b78, 0x6b79, 0x6b7a, 0x6b7b, 0x6b7c, 0x6b7d, - 0x6b7e, 0x6c21, 0x6c22, 0x6c23, 0x6c24, 0x6c25, 0x6c26, 0x6c27, - 0x6c28, 0x6c29, 0x6c2a, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c2e, 0x6c2f, - 0x6c30, 0x6c31, 0x6c32, 0x6c33, 0x6c34, 0x6c35, 0x6c36, 0x6c37, - 0x6c38, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3d, 0x6c3e, 0x6c3f, - 0x6c40, 0x6c41, 0x6c42, 0x6c43, 0x6c44, 0x6c45, 0x6c46, 0x6c47, - 0x6c48, 0x6c49, 0x6c4a, 0x6c4b, 0x6c4c, 0x6c4e, 0x6c4f, 0x6c4d, - 0x6c50, 0x6c51, 0x6c52, 0x6c53, 0x6c54, 0x6c55, 0x6c56, 0x6c57, - 0x6c58, 0x6c59, 0x6c5a, 0x6c5b, 0x6c5c, 0x6c5d, 0x6c5e, 0x6c5f, - 0x6c60, 0x6c61, 0x6c62, 0x6c63, 0x6c64, 0x6c65, 0x6c66, 0x6c67, - 0x6c68, 0x6c69, 0x6c6a, 0x6c6b, 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, - 0x6c70, 0x6c71, 0x6c72, 0x6c73, 0x6c74, 0x6c75, 0x6c76, 0x6c77, - 0x6c78, 0x6c79, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7d, 0x6c7e, 0x6d21, - 0x6d22, 0x6d23, 0x6d24, 0x6d25, 0x6d26, 0x6d27, 0x6d28, 0x6d29, - 0x6d2a, 0x6d2b, 0x6d2c, 0x6d2d, 0x6d2e, 0x6d2f, 0x6d30, 0x6d31, - 0x6d32, 0x6d33, 0x6d34, 0x6d35, 0x6d36, 0x6d37, 0x6d38, 0x6d39, - 0x6d3a, 0x6d3b, 0x6d3c, 0x6d3d, 0x6d3e, 0x6d3f, 0x6d40, 0x6d41, - 0x6d42, 0x6d43, 0x6d44, 0x6d45, 0x6d46, 0x6d47, 0x6d48, 0x6d49, - 0x6d4a, 0x6d4b, 0x6d4c, 0x6d4d, 0x6d4e, 0x6d4f, 0x6d50, 0x6d51, - 0x6d52, 0x6d53, 0x6d54, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d59, - 0x6d5a, 0x6d5b, 0x6d5c, 0x6d5d, 0x6d5e, 0x6d5f, 0x6d60, 0x6d61, - 0x6d62, 0x6d63, 0x2237, -}; - -static const Summary16 jisx0212_uni2indx_page00[70] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0xc652 }, { 7, 0x8500 }, - { 10, 0xffff }, { 26, 0xff7e }, { 40, 0xffff }, { 56, 0xff7f }, - /* 0x0100 */ - { 71, 0xffff }, { 87, 0xffcf }, { 101, 0xcff7 }, { 114, 0xffff }, - { 130, 0x3fff }, { 144, 0xffff }, { 160, 0xffff }, { 176, 0x7fff }, - { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, - { 191, 0xe000 }, { 194, 0x1fff }, { 207, 0x0000 }, { 207, 0x0020 }, - /* 0x0200 */ - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, { 208, 0x0000 }, - { 208, 0x0080 }, { 209, 0x2f00 }, { 214, 0x0000 }, { 214, 0x0000 }, - /* 0x0300 */ - { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, - { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, { 214, 0x0000 }, - { 214, 0xd770 }, { 223, 0x0001 }, { 224, 0xfc00 }, { 230, 0x0001 }, - { 231, 0x7c04 }, { 237, 0x0000 }, { 237, 0x0000 }, { 237, 0x0000 }, - /* 0x0400 */ - { 237, 0xdffc }, { 250, 0x0000 }, { 250, 0x0000 }, { 250, 0x0000 }, - { 250, 0x0000 }, { 250, 0xdffc }, -}; -static const Summary16 jisx0212_uni2indx_page21[3] = { - /* 0x2100 */ - { 263, 0x0000 }, { 263, 0x0040 }, { 264, 0x0004 }, -}; -static const Summary16 jisx0212_uni2indx_page4e[1307] = { - /* 0x4e00 */ - { 265, 0x1034 }, { 269, 0x8004 }, { 271, 0xc918 }, { 277, 0x0021 }, - { 279, 0x0093 }, { 283, 0x1402 }, { 286, 0x0308 }, { 289, 0x8230 }, - { 293, 0x2000 }, { 294, 0x20c0 }, { 297, 0x8000 }, { 298, 0x0200 }, - { 299, 0x0008 }, { 300, 0x0c01 }, { 303, 0x8107 }, { 308, 0xe02a }, - /* 0x4f00 */ - { 314, 0x190d }, { 320, 0x02e4 }, { 325, 0x4000 }, { 326, 0x4aaa }, - { 333, 0x1b05 }, { 339, 0x8154 }, { 344, 0x5409 }, { 349, 0x6782 }, - { 356, 0x5636 }, { 364, 0xc69d }, { 373, 0x0000 }, { 373, 0x7a84 }, - { 380, 0xbb63 }, { 390, 0x1004 }, { 392, 0x0005 }, { 394, 0xb005 }, - /* 0x5000 */ - { 399, 0x5493 }, { 406, 0x7989 }, { 414, 0x4084 }, { 417, 0x082d }, - { 422, 0x5467 }, { 430, 0x828e }, { 436, 0x24cd }, { 443, 0x0003 }, - { 445, 0xc45a }, { 452, 0xd85d }, { 461, 0x8407 }, { 466, 0x2601 }, - { 470, 0x5099 }, { 476, 0xb119 }, { 483, 0x8354 }, { 489, 0x4446 }, - /* 0x5100 */ - { 494, 0x79c8 }, { 502, 0x7a81 }, { 509, 0xb188 }, { 515, 0x033a }, - { 521, 0x8404 }, { 524, 0x81a8 }, { 529, 0x0050 }, { 531, 0x4000 }, - { 532, 0x4818 }, { 536, 0x2100 }, { 538, 0x200a }, { 541, 0xd500 }, - { 546, 0x8104 }, { 549, 0x412e }, { 555, 0x4024 }, { 558, 0x009c }, - /* 0x5200 */ - { 562, 0x0026 }, { 565, 0x016c }, { 570, 0x0104 }, { 572, 0x1026 }, - { 576, 0x0220 }, { 578, 0x95a0 }, { 584, 0x4043 }, { 588, 0x0380 }, - { 591, 0x1425 }, { 596, 0x15e8 }, { 603, 0x80f0 }, { 608, 0x2dc1 }, - { 615, 0x9151 }, { 621, 0x1852 }, { 626, 0x1722 }, { 632, 0x00d3 }, - /* 0x5300 */ - { 637, 0x1c09 }, { 642, 0xd90a }, { 649, 0x3ba0 }, { 656, 0x7025 }, - { 662, 0x1804 }, { 665, 0x0a00 }, { 667, 0x302a }, { 672, 0x4204 }, - { 675, 0x4188 }, { 679, 0x2218 }, { 683, 0x8c12 }, { 688, 0x25b4 }, - { 695, 0x8021 }, { 698, 0x642c }, { 704, 0x00c1 }, { 707, 0x0020 }, - /* 0x5400 */ - { 708, 0x0004 }, { 709, 0x0408 }, { 711, 0x8582 }, { 716, 0x0032 }, - { 719, 0xa098 }, { 724, 0x4000 }, { 725, 0x6ad4 }, { 733, 0x8010 }, - { 735, 0x232a }, { 741, 0x9062 }, { 746, 0x66c2 }, { 753, 0x8e82 }, - { 759, 0x6440 }, { 763, 0x0000 }, { 763, 0x9401 }, { 767, 0xd040 }, - /* 0x5500 */ - { 771, 0x7323 }, { 779, 0x0020 }, { 780, 0x0c00 }, { 782, 0x3864 }, - { 788, 0x2682 }, { 793, 0x4d03 }, { 799, 0x0053 }, { 803, 0x8000 }, - { 804, 0xc146 }, { 810, 0x009e }, { 815, 0x2018 }, { 818, 0x8004 }, - { 820, 0x5a4a }, { 827, 0x498e }, { 834, 0x0204 }, { 836, 0x8040 }, - /* 0x5600 */ - { 838, 0xe520 }, { 844, 0x0207 }, { 848, 0x1000 }, { 849, 0xbaa9 }, - { 858, 0xaa5b }, { 867, 0x4010 }, { 869, 0xa24f }, { 877, 0x0026 }, - { 880, 0x1930 }, { 885, 0xe620 }, { 891, 0x3bc0 }, { 898, 0x408a }, - { 902, 0xbe20 }, { 909, 0xb201 }, { 914, 0x29f2 }, { 922, 0x00c2 }, - /* 0x5700 */ - { 925, 0x1486 }, { 930, 0x2c22 }, { 935, 0xd63d }, { 945, 0xe018 }, - { 950, 0x3060 }, { 954, 0x0004 }, { 955, 0xe9a4 }, { 963, 0x5ebb }, - { 974, 0x100a }, { 977, 0xf6b0 }, { 986, 0x1382 }, { 991, 0x2100 }, - { 993, 0x9180 }, { 997, 0x6020 }, { 1000, 0x22d2 }, { 1006, 0xe161 }, - /* 0x5800 */ - { 1013, 0x3318 }, { 1019, 0xc800 }, { 1022, 0x20c1 }, { 1026, 0x8204 }, - { 1029, 0xb200 }, { 1033, 0x8021 }, { 1036, 0x0192 }, { 1040, 0x9100 }, - { 1043, 0xb783 }, { 1052, 0x2051 }, { 1056, 0x0247 }, { 1061, 0x1006 }, - { 1064, 0x6114 }, { 1069, 0x2455 }, { 1075, 0x0206 }, { 1078, 0x0008 }, - /* 0x5900 */ - { 1079, 0x1860 }, { 1083, 0x201c }, { 1087, 0x811a }, { 1092, 0x8069 }, - { 1097, 0x0048 }, { 1099, 0xea0c }, { 1106, 0xa80a }, { 1111, 0x1a64 }, - { 1117, 0x5800 }, { 1120, 0x80a4 }, { 1124, 0xe090 }, { 1129, 0x1489 }, - { 1134, 0x251a }, { 1140, 0xe004 }, { 1144, 0xc098 }, { 1149, 0x0096 }, - /* 0x5a00 */ - { 1153, 0x7011 }, { 1158, 0x400c }, { 1161, 0x2598 }, { 1167, 0x0001 }, - { 1168, 0x11b0 }, { 1173, 0x4021 }, { 1176, 0x20a8 }, { 1180, 0x4c80 }, - { 1184, 0x0800 }, { 1185, 0xd249 }, { 1192, 0x1085 }, { 1196, 0x8d2e }, - { 1204, 0x8150 }, { 1208, 0x1400 }, { 1210, 0x4421 }, { 1214, 0x2060 }, - /* 0x5b00 */ - { 1217, 0x0103 }, { 1220, 0x2a80 }, { 1224, 0x2022 }, { 1227, 0x0110 }, - { 1229, 0x1802 }, { 1232, 0x4044 }, { 1235, 0xc100 }, { 1238, 0xf000 }, - { 1242, 0x4452 }, { 1247, 0x005b }, { 1252, 0xb300 }, { 1257, 0x1486 }, - { 1262, 0xa003 }, { 1266, 0x07c0 }, { 1271, 0x8001 }, { 1273, 0x2012 }, - /* 0x5c00 */ - { 1276, 0x1000 }, { 1277, 0xc080 }, { 1280, 0x5a48 }, { 1286, 0x0065 }, - { 1290, 0x0000 }, { 1290, 0x1600 }, { 1293, 0x238c }, { 1299, 0x3c31 }, - { 1306, 0x8580 }, { 1310, 0xa004 }, { 1313, 0x044d }, { 1318, 0x0434 }, - { 1322, 0x0a00 }, { 1324, 0x2084 }, { 1327, 0x4000 }, { 1328, 0x0016 }, - /* 0x5d00 */ - { 1331, 0x2042 }, { 1334, 0x0004 }, { 1335, 0x08d8 }, { 1340, 0xa212 }, - { 1345, 0x054c }, { 1350, 0x8222 }, { 1354, 0x2417 }, { 1360, 0xc601 }, - { 1365, 0x050a }, { 1369, 0x8a3c }, { 1376, 0x0881 }, { 1379, 0x0315 }, - { 1384, 0x4888 }, { 1388, 0x0301 }, { 1391, 0x0211 }, { 1394, 0x0300 }, - /* 0x5e00 */ - { 1396, 0x2081 }, { 1399, 0x8134 }, { 1404, 0x4101 }, { 1407, 0x4024 }, - { 1410, 0x0a00 }, { 1412, 0x5943 }, { 1419, 0x7d00 }, { 1425, 0x0001 }, - { 1426, 0x4801 }, { 1429, 0x0000 }, { 1429, 0x1534 }, { 1435, 0xe00a }, - { 1440, 0x5840 }, { 1444, 0x5036 }, { 1450, 0x0820 }, { 1452, 0x0000 }, - /* 0x5f00 */ - { 1452, 0x41c4 }, { 1457, 0x3200 }, { 1460, 0x591e }, { 1468, 0xa851 }, - { 1474, 0x20b1 }, { 1479, 0x0911 }, { 1483, 0x8099 }, { 1488, 0x6534 }, - { 1495, 0xa200 }, { 1498, 0x3040 }, { 1501, 0x9894 }, { 1507, 0x0103 }, - { 1510, 0x0b90 }, { 1515, 0x401f }, { 1521, 0xf706 }, { 1530, 0x144c }, - /* 0x6000 */ - { 1535, 0x2480 }, { 1538, 0x8598 }, { 1544, 0x2010 }, { 1546, 0x0028 }, - { 1548, 0x1381 }, { 1553, 0x20d2 }, { 1558, 0x0082 }, { 1560, 0xc002 }, - { 1563, 0x4544 }, { 1568, 0x612a }, { 1574, 0x0134 }, { 1578, 0x4883 }, - { 1583, 0xcf14 }, { 1591, 0x6a30 }, { 1597, 0x0024 }, { 1599, 0x3124 }, - /* 0x6100 */ - { 1604, 0x1484 }, { 1608, 0x52df }, { 1618, 0x0c04 }, { 1621, 0x02e3 }, - { 1627, 0x0262 }, { 1631, 0x4000 }, { 1632, 0x1001 }, { 1634, 0x9904 }, - { 1639, 0x281b }, { 1645, 0xb18c }, { 1652, 0x2521 }, { 1657, 0x1300 }, - { 1660, 0xc007 }, { 1665, 0xf020 }, { 1670, 0xb2a6 }, { 1678, 0x0000 }, - /* 0x6200 */ - { 1678, 0x009a }, { 1682, 0x1028 }, { 1685, 0x0a8d }, { 1691, 0x2200 }, - { 1693, 0x105c }, { 1698, 0x1457 }, { 1705, 0xa010 }, { 1708, 0x2408 }, - { 1711, 0xe000 }, { 1714, 0x0001 }, { 1715, 0x0140 }, { 1717, 0xc4c8 }, - { 1723, 0x4010 }, { 1725, 0x0460 }, { 1728, 0x0400 }, { 1729, 0x3014 }, - /* 0x6300 */ - { 1733, 0x2c18 }, { 1738, 0x0149 }, { 1742, 0x2600 }, { 1745, 0x1260 }, - { 1749, 0x4c5e }, { 1757, 0x091c }, { 1762, 0x3060 }, { 1766, 0xb132 }, - { 1773, 0x0494 }, { 1777, 0x4631 }, { 1783, 0xe050 }, { 1788, 0x2000 }, - { 1789, 0x4122 }, { 1793, 0x103a }, { 1798, 0x1421 }, { 1802, 0x032c }, - /* 0x6400 */ - { 1807, 0x0600 }, { 1809, 0x4115 }, { 1814, 0x8635 }, { 1821, 0xa021 }, - { 1825, 0x8800 }, { 1827, 0xbc1e }, { 1836, 0x200b }, { 1840, 0x2818 }, - { 1844, 0x80a0 }, { 1847, 0xab03 }, { 1854, 0x114a }, { 1859, 0xe008 }, - { 1863, 0x5e10 }, { 1869, 0x00a3 }, { 1873, 0x2630 }, { 1878, 0x88a1 }, - /* 0x6500 */ - { 1883, 0x8712 }, { 1889, 0xca58 }, { 1896, 0x4244 }, { 1900, 0x3402 }, - { 1904, 0x0288 }, { 1907, 0x8015 }, { 1911, 0x0881 }, { 1914, 0x2400 }, - { 1916, 0x0422 }, { 1919, 0x2124 }, { 1923, 0x4049 }, { 1927, 0x801c }, - { 1931, 0x4304 }, { 1935, 0x8151 }, { 1940, 0x0000 }, { 1940, 0xc235 }, - /* 0x6600 */ - { 1947, 0x2311 }, { 1952, 0x6066 }, { 1958, 0x5e5e }, { 1968, 0x028b }, - { 1973, 0x5461 }, { 1979, 0x1b82 }, { 1985, 0x1c03 }, { 1990, 0xdba8 }, - { 1999, 0x3801 }, { 2003, 0x9e05 }, { 2010, 0x2011 }, { 2013, 0x8826 }, - { 2018, 0xd10d }, { 2025, 0x8810 }, { 2028, 0x5900 }, { 2032, 0x0c00 }, - /* 0x6700 */ - { 2034, 0x40a0 }, { 2037, 0x1208 }, { 2040, 0x0005 }, { 2042, 0x4008 }, - { 2044, 0x11a0 }, { 2048, 0x2030 }, { 2051, 0x5040 }, { 2054, 0x0850 }, - { 2057, 0xc012 }, { 2061, 0x0b4a }, { 2067, 0x0000 }, { 2067, 0x3827 }, - { 2074, 0x032d }, { 2080, 0x1284 }, { 2084, 0x0042 }, { 2086, 0x02c5 }, - /* 0x6800 */ - { 2091, 0x0000 }, { 2091, 0xa210 }, { 2095, 0xb180 }, { 2100, 0x880b }, - { 2105, 0x1430 }, { 2109, 0x09a4 }, { 2114, 0xc800 }, { 2117, 0x1e27 }, - { 2125, 0x0154 }, { 2129, 0x1540 }, { 2133, 0x462a }, { 2139, 0x0804 }, - { 2141, 0x9120 }, { 2145, 0x324b }, { 2152, 0x3d20 }, { 2158, 0x3863 }, - /* 0x6900 */ - { 2165, 0x0640 }, { 2168, 0x00cb }, { 2173, 0x0000 }, { 2173, 0x092a }, - { 2178, 0x4224 }, { 2182, 0x0880 }, { 2184, 0x1378 }, { 2191, 0x8c07 }, - { 2197, 0x2001 }, { 2199, 0x0144 }, { 2202, 0xa962 }, { 2209, 0x1580 }, - { 2213, 0x0120 }, { 2215, 0x00c2 }, { 2218, 0xc024 }, { 2222, 0x402a }, - /* 0x6a00 */ - { 2226, 0x800b }, { 2230, 0x2422 }, { 2234, 0x0111 }, { 2237, 0xc895 }, - { 2244, 0x4660 }, { 2249, 0x0867 }, { 2255, 0x0490 }, { 2258, 0x400a }, - { 2261, 0x0aca }, { 2267, 0xe802 }, { 2272, 0x8820 }, { 2275, 0xe013 }, - { 2281, 0x1340 }, { 2285, 0x3071 }, { 2291, 0x1090 }, { 2294, 0x3007 }, - /* 0x6b00 */ - { 2299, 0x82cc }, { 2305, 0x4883 }, { 2310, 0x9910 }, { 2315, 0x8860 }, - { 2319, 0x2440 }, { 2322, 0x2144 }, { 2326, 0x4881 }, { 2330, 0x6021 }, - { 2334, 0x0024 }, { 2336, 0x8880 }, { 2339, 0x730d }, { 2347, 0x6301 }, - { 2352, 0x1218 }, { 2356, 0x0440 }, { 2358, 0x40ca }, { 2363, 0x8282 }, - /* 0x6c00 */ - { 2367, 0x6234 }, { 2373, 0x8205 }, { 2377, 0x51c0 }, { 2382, 0x8c68 }, - { 2388, 0xac00 }, { 2392, 0x1a14 }, { 2397, 0xa880 }, { 2401, 0x0b50 }, - { 2406, 0x02e0 }, { 2410, 0x91b0 }, { 2416, 0x0000 }, { 2416, 0x0015 }, - { 2419, 0xa044 }, { 2423, 0x1457 }, { 2430, 0x5a81 }, { 2436, 0x0014 }, - /* 0x6d00 */ - { 2438, 0xc490 }, { 2443, 0x040a }, { 2446, 0xc1c0 }, { 2451, 0x9202 }, - { 2455, 0x0000 }, { 2455, 0xc080 }, { 2458, 0x80a2 }, { 2462, 0x1001 }, - { 2464, 0x0084 }, { 2466, 0x01d6 }, { 2472, 0x1400 }, { 2474, 0xa290 }, - { 2479, 0xc510 }, { 2484, 0xa840 }, { 2488, 0x8225 }, { 2493, 0x1051 }, - /* 0x6e00 */ - { 2497, 0x0011 }, { 2499, 0x4000 }, { 2500, 0x0084 }, { 2502, 0x1a44 }, - { 2507, 0x8b30 }, { 2513, 0x709e }, { 2521, 0x010c }, { 2524, 0x2808 }, - { 2527, 0x2000 }, { 2528, 0x0208 }, { 2530, 0x6081 }, { 2534, 0x880a }, - { 2538, 0xe58b }, { 2547, 0x0000 }, { 2547, 0x6800 }, { 2550, 0x2a00 }, - /* 0x6f00 */ - { 2553, 0x3510 }, { 2558, 0x0d40 }, { 2562, 0xa640 }, { 2567, 0x1849 }, - { 2572, 0x8000 }, { 2573, 0x668e }, { 2581, 0x1106 }, { 2585, 0x6000 }, - { 2587, 0x3988 }, { 2593, 0x845d }, { 2600, 0xc1e1 }, { 2607, 0x1061 }, - { 2611, 0x05a0 }, { 2615, 0x4400 }, { 2617, 0x0300 }, { 2619, 0x3221 }, - /* 0x7000 */ - { 2624, 0x20e1 }, { 2629, 0x0080 }, { 2630, 0x8009 }, { 2633, 0x1290 }, - { 2637, 0x4f18 }, { 2644, 0x6030 }, { 2648, 0x5030 }, { 2652, 0x4060 }, - { 2655, 0x0062 }, { 2658, 0x09f0 }, { 2664, 0x0810 }, { 2666, 0x0093 }, - { 2670, 0x0400 }, { 2671, 0x117a }, { 2678, 0x0010 }, { 2679, 0x0400 }, - /* 0x7100 */ - { 2680, 0x98f8 }, { 2688, 0x4000 }, { 2689, 0xa801 }, { 2693, 0x0103 }, - { 2696, 0x0ce2 }, { 2702, 0x5485 }, { 2708, 0x0101 }, { 2710, 0x0200 }, - { 2711, 0x10a1 }, { 2715, 0x0c04 }, { 2718, 0x8005 }, { 2721, 0x840d }, - { 2726, 0x1813 }, { 2731, 0x1648 }, { 2736, 0x0000 }, { 2736, 0x4100 }, - /* 0x7200 */ - { 2738, 0x0381 }, { 2742, 0xa488 }, { 2747, 0x8810 }, { 2750, 0x0310 }, - { 2753, 0xc02e }, { 2759, 0x5469 }, { 2766, 0xc909 }, { 2772, 0x9982 }, - { 2778, 0x6210 }, { 2782, 0x0808 }, { 2784, 0x6100 }, { 2787, 0x4012 }, - { 2790, 0x1282 }, { 2794, 0x8160 }, { 2798, 0x0020 }, { 2799, 0x4c18 }, - /* 0x7300 */ - { 2804, 0x28b4 }, { 2810, 0x430c }, { 2815, 0x1194 }, { 2820, 0x2c26 }, - { 2826, 0x2008 }, { 2828, 0xe145 }, { 2835, 0xdac1 }, { 2843, 0x1282 }, - { 2847, 0x406b }, { 2853, 0xd1a9 }, { 2861, 0x2c65 }, { 2868, 0xb2a0 }, - { 2874, 0x9a60 }, { 2880, 0x224c }, { 2885, 0x02ca }, { 2890, 0xaeb0 }, - /* 0x7400 */ - { 2898, 0x0493 }, { 2903, 0x0c02 }, { 2906, 0xff50 }, { 2916, 0x0203 }, - { 2919, 0x28d9 }, { 2926, 0x2086 }, { 2930, 0x69c4 }, { 2937, 0x0006 }, - { 2939, 0x82e3 }, { 2946, 0x9707 }, { 2954, 0xcf4b }, { 2964, 0x8a26 }, - { 2970, 0x1300 }, { 2973, 0xcd09 }, { 2980, 0x8d10 }, { 2985, 0x9c10 }, - /* 0x7500 */ - { 2990, 0x0040 }, { 2991, 0x00c4 }, { 2994, 0x8693 }, { 3001, 0xe240 }, - { 3006, 0x4189 }, { 3011, 0xc085 }, { 3016, 0x8002 }, { 3018, 0x7e02 }, - { 3025, 0x0022 }, { 3027, 0x122d }, { 3033, 0x0014 }, { 3035, 0x8410 }, - { 3038, 0xd053 }, { 3045, 0x9080 }, { 3048, 0xd093 }, { 3055, 0x0202 }, - /* 0x7600 */ - { 3057, 0x959d }, { 3066, 0x7a6c }, { 3075, 0x2268 }, { 3080, 0x172c }, - { 3087, 0x0e3b }, { 3095, 0x8220 }, { 3098, 0xe030 }, { 3103, 0x0012 }, - { 3105, 0x3022 }, { 3109, 0xb820 }, { 3114, 0x25fd }, { 3124, 0x2000 }, - { 3125, 0x5a22 }, { 3131, 0x0210 }, { 3133, 0x1141 }, { 3137, 0x1243 }, - /* 0x7700 */ - { 3142, 0x4441 }, { 3146, 0x16b4 }, { 3153, 0xe104 }, { 3158, 0x6270 }, - { 3164, 0xe464 }, { 3171, 0xd0c4 }, { 3177, 0x1495 }, { 3183, 0x241d }, - { 3189, 0x3011 }, { 3193, 0x8470 }, { 3198, 0xc484 }, { 3203, 0x4022 }, - { 3206, 0x0208 }, { 3208, 0xc226 }, { 3214, 0x1451 }, { 3219, 0x0913 }, - /* 0x7800 */ - { 3224, 0x6260 }, { 3229, 0x2002 }, { 3231, 0x600e }, { 3236, 0x00a1 }, - { 3239, 0x5198 }, { 3245, 0x5004 }, { 3248, 0x451b }, { 3255, 0x4400 }, - { 3257, 0x8400 }, { 3259, 0xe110 }, { 3264, 0x3112 }, { 3269, 0xa80f }, - { 3276, 0x5380 }, { 3281, 0x886c }, { 3287, 0x0453 }, { 3292, 0x8ccc }, - /* 0x7900 */ - { 3299, 0x1041 }, { 3302, 0xd401 }, { 3307, 0x22a1 }, { 3312, 0xa832 }, - { 3318, 0x8c70 }, { 3324, 0x1912 }, { 3329, 0x0a80 }, { 3332, 0x5a04 }, - { 3337, 0x1800 }, { 3339, 0x197a }, { 3347, 0x8b02 }, { 3352, 0x0912 }, - { 3356, 0x8594 }, { 3362, 0x6450 }, { 3367, 0x2c25 }, { 3373, 0x1102 }, - /* 0x7a00 */ - { 3376, 0x168c }, { 3382, 0x4822 }, { 3386, 0xa882 }, { 3391, 0x0731 }, - { 3397, 0x11b0 }, { 3402, 0xb260 }, { 3408, 0x24a1 }, { 3413, 0x4120 }, - { 3416, 0x0c65 }, { 3422, 0x4013 }, { 3426, 0x1009 }, { 3429, 0x1a28 }, - { 3434, 0x5240 }, { 3438, 0x0802 }, { 3440, 0x1b00 }, { 3444, 0x6812 }, - /* 0x7b00 */ - { 3449, 0x0080 }, { 3450, 0x8010 }, { 3452, 0xee88 }, { 3460, 0xa013 }, - { 3465, 0x4083 }, { 3469, 0x0020 }, { 3470, 0xa651 }, { 3477, 0x008c }, - { 3480, 0x4210 }, { 3483, 0x4843 }, { 3488, 0x9021 }, { 3492, 0x3c65 }, - { 3500, 0x0524 }, { 3504, 0x0ed0 }, { 3510, 0x0500 }, { 3512, 0x5734 }, - /* 0x7c00 */ - { 3520, 0xda5e }, { 3530, 0x0a00 }, { 3532, 0x1161 }, { 3537, 0x065a }, - { 3543, 0x0440 }, { 3545, 0x7e2e }, { 3555, 0x628a }, { 3561, 0x3205 }, - { 3566, 0x80c0 }, { 3569, 0x4010 }, { 3571, 0x0041 }, { 3573, 0x9cc1 }, - { 3580, 0xa390 }, { 3586, 0x26b8 }, { 3593, 0x0a40 }, { 3596, 0x0020 }, - /* 0x7d00 */ - { 3597, 0x8388 }, { 3602, 0x604e }, { 3608, 0x2448 }, { 3612, 0x7002 }, - { 3616, 0x2183 }, { 3621, 0x368a }, { 3628, 0x04a0 }, { 3631, 0x8d01 }, - { 3636, 0x396e }, { 3645, 0x60c2 }, { 3650, 0x04c0 }, { 3653, 0x02c8 }, - { 3657, 0x707c }, { 3665, 0x0280 }, { 3667, 0x2c64 }, { 3673, 0x0662 }, - /* 0x7e00 */ - { 3678, 0x0101 }, { 3680, 0x30a3 }, { 3686, 0xb181 }, { 3692, 0x8048 }, - { 3695, 0x40b0 }, { 3699, 0x8105 }, { 3703, 0xc826 }, { 3709, 0x4108 }, - { 3712, 0x24c2 }, { 3717, 0x6522 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, - /* 0x7f00 */ - { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0x0000 }, { 3723, 0xf800 }, - { 3728, 0x8098 }, { 3732, 0x380c }, { 3737, 0x207a }, { 3743, 0xe002 }, - { 3747, 0xa801 }, { 3751, 0x10c3 }, { 3756, 0x2446 }, { 3761, 0x9010 }, - { 3764, 0xc109 }, { 3769, 0x8800 }, { 3771, 0xd128 }, { 3777, 0xe404 }, - /* 0x8000 */ - { 3782, 0xe580 }, { 3788, 0xe05a }, { 3795, 0x5051 }, { 3800, 0x56b1 }, - { 3808, 0x0011 }, { 3810, 0x0000 }, { 3810, 0x2051 }, { 3814, 0x0022 }, - { 3816, 0x4102 }, { 3819, 0x5000 }, { 3821, 0x08c0 }, { 3824, 0x0300 }, - { 3826, 0xa100 }, { 3829, 0x01b4 }, { 3834, 0x6001 }, { 3837, 0x464d }, - /* 0x8100 */ - { 3844, 0x0808 }, { 3846, 0x51c0 }, { 3851, 0x1091 }, { 3855, 0x1421 }, - { 3859, 0x14a0 }, { 3863, 0x0084 }, { 3865, 0xa383 }, { 3872, 0x0080 }, - { 3873, 0x4872 }, { 3879, 0x4941 }, { 3884, 0x4004 }, { 3886, 0x0814 }, - { 3889, 0xcc28 }, { 3895, 0x68a0 }, { 3900, 0x1812 }, { 3904, 0xa367 }, - /* 0x8200 */ - { 3913, 0x8009 }, { 3916, 0x2618 }, { 3921, 0x0106 }, { 3924, 0x0414 }, - { 3927, 0xc878 }, { 3934, 0x1042 }, { 3937, 0x2089 }, { 3941, 0xa810 }, - { 3945, 0x469b }, { 3953, 0x0d52 }, { 3959, 0x479b }, { 3968, 0xd495 }, - { 3976, 0x0040 }, { 3977, 0x0421 }, { 3980, 0xa515 }, { 3987, 0x60c0 }, - /* 0x8300 */ - { 3991, 0x0d83 }, { 3997, 0xe800 }, { 4001, 0x7006 }, { 4006, 0x3489 }, - { 4012, 0x609c }, { 4018, 0x00fa }, { 4024, 0x0000 }, { 4024, 0xa101 }, - { 4028, 0x2055 }, { 4033, 0x3b34 }, { 4041, 0x32c0 }, { 4046, 0xc000 }, - { 4048, 0x8281 }, { 4052, 0x2013 }, { 4056, 0x0500 }, { 4058, 0x1340 }, - /* 0x8400 */ - { 4062, 0x8442 }, { 4066, 0x0222 }, { 4069, 0x8000 }, { 4070, 0x0200 }, - { 4071, 0xa5a0 }, { 4077, 0x1746 }, { 4084, 0x04b1 }, { 4089, 0x3159 }, - { 4096, 0x0022 }, { 4098, 0x402c }, { 4102, 0x8740 }, { 4107, 0x6412 }, - { 4112, 0x9185 }, { 4118, 0x1008 }, { 4120, 0x8480 }, { 4123, 0x2c87 }, - /* 0x8500 */ - { 4130, 0x508c }, { 4135, 0x5001 }, { 4138, 0x8cbc }, { 4146, 0x805c }, - { 4151, 0x8040 }, { 4153, 0xf24f }, { 4163, 0x8817 }, { 4169, 0xae00 }, - { 4174, 0x9a62 }, { 4181, 0xa108 }, { 4185, 0x20a5 }, { 4190, 0xf1d0 }, - { 4198, 0x4c84 }, { 4203, 0x8500 }, { 4206, 0x2141 }, { 4210, 0x9048 }, - /* 0x8600 */ - { 4214, 0x6031 }, { 4219, 0x4b07 }, { 4226, 0x0282 }, { 4229, 0x3540 }, - { 4234, 0x0047 }, { 4238, 0x23cc }, { 4245, 0x921f }, { 4253, 0x04e0 }, - { 4257, 0x2100 }, { 4259, 0x1542 }, { 4264, 0x21c2 }, { 4269, 0x83ba }, - { 4277, 0x002b }, { 4281, 0x14a6 }, { 4287, 0x00a9 }, { 4291, 0x3400 }, - /* 0x8700 */ - { 4294, 0xc8b0 }, { 4300, 0xc219 }, { 4306, 0xc10a }, { 4311, 0x7606 }, - { 4318, 0x2029 }, { 4322, 0x2100 }, { 4324, 0x8032 }, { 4328, 0x0806 }, - { 4331, 0x1bf8 }, { 4340, 0x43a9 }, { 4347, 0x7089 }, { 4353, 0xc022 }, - { 4357, 0x4702 }, { 4362, 0x9660 }, { 4368, 0x2c1c }, { 4374, 0x850a }, - /* 0x8800 */ - { 4379, 0x0e4a }, { 4385, 0xdf1d }, { 4396, 0x6100 }, { 4399, 0x1425 }, - { 4404, 0x4f2a }, { 4412, 0x9562 }, { 4419, 0x0211 }, { 4422, 0x0a02 }, - { 4425, 0x0001 }, { 4426, 0x9d00 }, { 4431, 0x0501 }, { 4434, 0x6400 }, - { 4437, 0x7c01 }, { 4443, 0x480e }, { 4448, 0x8080 }, { 4450, 0x00a3 }, - /* 0x8900 */ - { 4454, 0xe042 }, { 4459, 0x1760 }, { 4465, 0x01c1 }, { 4469, 0x4627 }, - { 4476, 0x8265 }, { 4482, 0x1c84 }, { 4487, 0x480e }, { 4492, 0x3c29 }, - { 4499, 0x2200 }, { 4501, 0x9831 }, { 4507, 0x0021 }, { 4509, 0x10f1 }, - { 4515, 0x0000 }, { 4515, 0x01f0 }, { 4520, 0x2a20 }, { 4524, 0xa24a }, - /* 0x8a00 */ - { 4530, 0x80b0 }, { 4534, 0x4036 }, { 4539, 0x9855 }, { 4546, 0x60a0 }, - { 4550, 0x62a9 }, { 4557, 0x31c8 }, { 4563, 0x00a2 }, { 4566, 0xcee0 }, - { 4574, 0x8849 }, { 4579, 0x82c5 }, { 4585, 0xc280 }, { 4589, 0x48c8 }, - { 4594, 0x0748 }, { 4599, 0xa0ba }, { 4606, 0x1000 }, { 4607, 0x9071 }, - /* 0x8b00 */ - { 4613, 0x0c60 }, { 4617, 0xd002 }, { 4621, 0x2000 }, { 4622, 0x1081 }, - { 4625, 0x217c }, { 4632, 0x421c }, { 4637, 0x2008 }, { 4639, 0x5340 }, - { 4644, 0xa832 }, { 4650, 0xd030 }, { 4655, 0x0000 }, { 4655, 0x0000 }, - { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x0000 }, - /* 0x8c00 */ - { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x0000 }, { 4655, 0x6300 }, - { 4659, 0x8aa0 }, { 4664, 0x2b9a }, { 4672, 0x2358 }, { 4678, 0x4868 }, - { 4683, 0x08c0 }, { 4686, 0x1a0d }, { 4692, 0x0010 }, { 4693, 0x0600 }, - { 4695, 0x8a60 }, { 4700, 0x2260 }, { 4704, 0x9102 }, { 4708, 0xc1a5 }, - /* 0x8d00 */ - { 4715, 0x020a }, { 4718, 0x0884 }, { 4721, 0x0000 }, { 4721, 0x0000 }, - { 4721, 0x0000 }, { 4721, 0x0000 }, { 4721, 0x5220 }, { 4725, 0x8000 }, - { 4726, 0x2114 }, { 4730, 0xc023 }, { 4735, 0x9841 }, { 4740, 0x1aa4 }, - { 4746, 0x45e1 }, { 4753, 0x02b2 }, { 4758, 0x10b0 }, { 4762, 0x2017 }, - /* 0x8e00 */ - { 4767, 0x0872 }, { 4772, 0x0052 }, { 4775, 0x00cf }, { 4781, 0x23ca }, - { 4788, 0xe803 }, { 4794, 0x7810 }, { 4799, 0xb206 }, { 4805, 0x0e03 }, - { 4810, 0x020c }, { 4813, 0x6c25 }, { 4820, 0x6284 }, { 4825, 0x0c28 }, - { 4829, 0x809b }, { 4835, 0x1012 }, { 4838, 0x6100 }, { 4841, 0x0683 }, - /* 0x8f00 */ - { 4846, 0x8185 }, { 4851, 0x41c1 }, { 4856, 0x71ab }, { 4865, 0x04f0 }, - { 4870, 0x808b }, { 4875, 0x613e }, { 4883, 0x0020 }, { 4884, 0x0000 }, - { 4884, 0x0000 }, { 4884, 0x2000 }, { 4885, 0x0073 }, { 4890, 0x4160 }, - { 4894, 0x2c43 }, { 4900, 0x002d }, { 4904, 0x4119 }, { 4909, 0x4862 }, - /* 0x9000 */ - { 4914, 0x1114 }, { 4918, 0x0900 }, { 4920, 0xb700 }, { 4926, 0x8098 }, - { 4930, 0x1018 }, { 4933, 0x2800 }, { 4935, 0x10c4 }, { 4939, 0x0211 }, - { 4942, 0x5920 }, { 4947, 0x0ba1 }, { 4953, 0x0027 }, { 4957, 0x605d }, - { 4964, 0x11b8 }, { 4970, 0xb3a4 }, { 4978, 0x8820 }, { 4981, 0xc051 }, - /* 0x9100 */ - { 4986, 0x2171 }, { 4992, 0x55d1 }, { 5000, 0xc2ad }, { 5008, 0x36d2 }, - { 5016, 0x8188 }, { 5020, 0x0e88 }, { 5025, 0x2092 }, { 5029, 0x0e10 }, - { 5033, 0x446a }, { 5039, 0x413a }, { 5045, 0x7142 }, { 5051, 0xb84f }, - { 5060, 0x002c }, { 5063, 0x4698 }, { 5069, 0xf630 }, { 5077, 0x2a83 }, - /* 0x9200 */ - { 5083, 0x16f3 }, { 5092, 0x314d }, { 5099, 0xc178 }, { 5106, 0x5769 }, - { 5115, 0xe4cd }, { 5124, 0x3302 }, { 5129, 0xc3a3 }, { 5137, 0xbbe1 }, - { 5147, 0x6700 }, { 5152, 0x8284 }, { 5156, 0x89b1 }, { 5163, 0xbd44 }, - { 5171, 0x79ef }, { 5183, 0xb3a9 }, { 5192, 0x51ab }, { 5200, 0x8a01 }, - /* 0x9300 */ - { 5204, 0x2105 }, { 5208, 0xf032 }, { 5215, 0x06b2 }, { 5221, 0x00d8 }, - { 5225, 0x0380 }, { 5228, 0x45a7 }, { 5236, 0xa6b0 }, { 5243, 0xa45b }, - { 5251, 0xad07 }, { 5259, 0x4924 }, { 5264, 0x0b5a }, { 5271, 0x0470 }, - { 5275, 0x3ef2 }, { 5285, 0xd208 }, { 5290, 0x00c4 }, { 5293, 0x2f80 }, - /* 0x9400 */ - { 5299, 0xe316 }, { 5307, 0x80e0 }, { 5311, 0xc000 }, { 5313, 0xa81e }, - { 5320, 0x1528 }, { 5325, 0x9220 }, { 5329, 0xe90a }, { 5336, 0x0006 }, - { 5338, 0x0018 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, - { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, - /* 0x9500 */ - { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, - { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x0000 }, { 5340, 0x4300 }, - { 5343, 0x7110 }, { 5348, 0xe000 }, { 5351, 0x1a42 }, { 5356, 0xa450 }, - { 5361, 0x0b40 }, { 5365, 0xe60f }, { 5374, 0x0051 }, { 5377, 0x0000 }, - /* 0x9600 */ - { 5377, 0x0000 }, { 5377, 0x6000 }, { 5379, 0x1074 }, { 5384, 0x378a }, - { 5392, 0x0002 }, { 5393, 0x01d4 }, { 5398, 0x4002 }, { 5400, 0xd810 }, - { 5405, 0x021e }, { 5410, 0xa442 }, { 5415, 0xc270 }, { 5421, 0x0408 }, - { 5423, 0x0400 }, { 5424, 0xe504 }, { 5430, 0x8200 }, { 5432, 0x0402 }, - /* 0x9700 */ - { 5434, 0x022c }, { 5438, 0x2c00 }, { 5441, 0x010e }, { 5445, 0x000a }, - { 5447, 0xc40a }, { 5452, 0x0da0 }, { 5457, 0x4488 }, { 5461, 0xa9c8 }, - { 5468, 0x0201 }, { 5470, 0xc6e0 }, { 5477, 0x5004 }, { 5480, 0xd766 }, - { 5490, 0x76b2 }, { 5499, 0x6b93 }, { 5508, 0x8013 }, { 5512, 0x0592 }, - /* 0x9800 */ - { 5517, 0x6480 }, { 5521, 0x5250 }, { 5526, 0xc869 }, { 5533, 0x402d }, - { 5538, 0x0490 }, { 5541, 0x06ce }, { 5548, 0x146c }, { 5554, 0x0000 }, - { 5554, 0x0000 }, { 5554, 0x0000 }, { 5554, 0x6800 }, { 5557, 0x8d91 }, - { 5564, 0x1124 }, { 5568, 0x0000 }, { 5568, 0x04ea }, { 5574, 0x0048 }, - /* 0x9900 */ - { 5576, 0x0184 }, { 5579, 0x9ce2 }, { 5587, 0x08c4 }, { 5591, 0x1e3e }, - { 5600, 0x61c3 }, { 5607, 0xdb10 }, { 5614, 0x0001 }, { 5615, 0x0000 }, - { 5615, 0x0000 }, { 5615, 0xa800 }, { 5618, 0x0040 }, { 5619, 0xa627 }, - { 5627, 0x0208 }, { 5629, 0x5618 }, { 5635, 0x1c80 }, { 5639, 0x6231 }, - /* 0x9a00 */ - { 5645, 0x181c }, { 5650, 0x4043 }, { 5654, 0x609d }, { 5661, 0x0168 }, - { 5665, 0x5c92 }, { 5672, 0x2052 }, { 5676, 0x0000 }, { 5676, 0x0000 }, - { 5676, 0x0000 }, { 5676, 0x0000 }, { 5676, 0xd400 }, { 5680, 0xca74 }, - { 5688, 0x414a }, { 5693, 0x18e5 }, { 5700, 0x12b1 }, { 5706, 0xa62c }, - /* 0x9b00 */ - { 5713, 0x7b3f }, { 5725, 0x1a45 }, { 5731, 0x2841 }, { 5735, 0x26b8 }, - { 5742, 0x1900 }, { 5745, 0x48e0 }, { 5750, 0x7d6a }, { 5760, 0x83a8 }, - { 5766, 0xaef1 }, { 5776, 0x6411 }, { 5781, 0x12c0 }, { 5785, 0xd987 }, - { 5794, 0x4182 }, { 5798, 0xa181 }, { 5803, 0x8ca0 }, { 5808, 0xa788 }, - /* 0x9c00 */ - { 5815, 0x8805 }, { 5819, 0x5742 }, { 5826, 0x07cc }, { 5833, 0x20e2 }, - { 5838, 0xc63a }, { 5846, 0xf959 }, { 5856, 0x4f08 }, { 5862, 0x08a5 }, - { 5867, 0x0000 }, { 5867, 0x0000 }, { 5867, 0x0000 }, { 5867, 0x0000 }, - { 5867, 0x0000 }, { 5867, 0x0000 }, { 5867, 0x0040 }, { 5868, 0x0284 }, - /* 0x9d00 */ - { 5871, 0x0804 }, { 5873, 0x7182 }, { 5879, 0x8000 }, { 5880, 0x341d }, - { 5887, 0x04ac }, { 5892, 0x8018 }, { 5895, 0x0e2c }, { 5901, 0x58c1 }, - { 5907, 0x6458 }, { 5913, 0x01ec }, { 5919, 0x5402 }, { 5923, 0x9222 }, - { 5928, 0x0688 }, { 5932, 0xc4f0 }, { 5939, 0x4aa1 }, { 5945, 0x4019 }, - /* 0x9e00 */ - { 5949, 0x4484 }, { 5953, 0x3267 }, { 5961, 0x0000 }, { 5961, 0x0000 }, - { 5961, 0x0000 }, { 5961, 0x0000 }, { 5961, 0x0000 }, { 5961, 0x1c00 }, - { 5964, 0xc0bd }, { 5972, 0x4940 }, { 5976, 0xd110 }, { 5981, 0x0039 }, - { 5985, 0x0940 }, { 5988, 0x8020 }, { 5990, 0x7090 }, { 5995, 0x8127 }, - /* 0x9f00 */ - { 6001, 0x820c }, { 6005, 0x8ed7 }, { 6015, 0x8c44 }, { 6020, 0xb696 }, - { 6029, 0x00fa }, { 6035, 0x65e8 }, { 6043, 0xe300 }, { 6048, 0x242b }, - { 6054, 0x8000 }, { 6055, 0x40d7 }, { 6062, 0x002e }, -}; -static const Summary16 jisx0212_uni2indx_pageff[6] = { - /* 0xff00 */ - { 6066, 0x0000 }, { 6066, 0x0000 }, { 6066, 0x0000 }, { 6066, 0x0000 }, - { 6066, 0x0000 }, { 6066, 0x4000 }, -}; - -static int -jisx0212_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0460) - summary = &jisx0212_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x2100 && wc < 0x2130) - summary = &jisx0212_uni2indx_page21[(wc>>4)-0x210]; - else if (wc >= 0x4e00 && wc < 0x9fb0) - summary = &jisx0212_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0xff00 && wc < 0xff60) - summary = &jisx0212_uni2indx_pageff[(wc>>4)-0xff0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = jisx0212_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/jisx0213.h b/jni/parted/libiconv/lib/jisx0213.h deleted file mode 100755 index 9c0016a..0000000 --- a/jni/parted/libiconv/lib/jisx0213.h +++ /dev/null @@ -1,5923 +0,0 @@ -/* - * Copyright (C) 1999-2004, 2012 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JISX0213:2004 - */ - -#ifndef _JISX0213_H -#define _JISX0213_H - -/* JISX0213 plane 1 (= ISO-IR-233) characters are in the range - 0x{21..7E}{21..7E}. - JISX0213 plane 2 (= ISO-IR-229) characters are in the range - 0x{21,23..25,28,2C..2F,6E..7E}{21..7E}. - Together this makes 120 rows of 94 characters. -*/ - -static const unsigned short jisx0213_to_ucs_combining[][2] = { - { 0x304b, 0x309a }, - { 0x304d, 0x309a }, - { 0x304f, 0x309a }, - { 0x3051, 0x309a }, - { 0x3053, 0x309a }, - { 0x30ab, 0x309a }, - { 0x30ad, 0x309a }, - { 0x30af, 0x309a }, - { 0x30b1, 0x309a }, - { 0x30b3, 0x309a }, - { 0x30bb, 0x309a }, - { 0x30c4, 0x309a }, - { 0x30c8, 0x309a }, - { 0x31f7, 0x309a }, - { 0x00e6, 0x0300 }, - { 0x0254, 0x0300 }, - { 0x0254, 0x0301 }, - { 0x028c, 0x0300 }, - { 0x028c, 0x0301 }, - { 0x0259, 0x0300 }, - { 0x0259, 0x0301 }, - { 0x025a, 0x0300 }, - { 0x025a, 0x0301 }, - { 0x02e9, 0x02e5 }, - { 0x02e5, 0x02e9 }, -}; - -static const unsigned short jisx0213_to_ucs_main[120 * 94] = { - /* 0x12121..0x1217E */ - 0x1000, 0x1001, 0x1002, 0x830c, 0x830e, 0x10fb, 0x831a, 0x831b, - 0x831f, 0x8301, 0x109b, 0x109c, 0x00b4, 0x8340, 0x00a8, 0x833e, - 0x83e3, 0x833f, 0x10fd, 0x10fe, 0x109d, 0x109e, 0x1003, 0x2edd, - 0x1005, 0x1006, 0x1007, 0x10fc, 0x0714, 0x0710, 0x830f, 0x833c, - 0x101c, 0x0716, 0x835c, 0x0726, 0x0725, 0x0718, 0x0719, 0x071c, - 0x071d, 0x8308, 0x8309, 0x1014, 0x1015, 0x833b, 0x833d, 0x835b, - 0x835d, 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, - 0x100f, 0x1010, 0x1011, 0x830b, 0x0912, 0x00b1, 0x00d7, 0x00f7, - 0x831d, 0x0960, 0x831c, 0x831e, 0x0966, 0x0967, 0x091e, 0x0934, - 0x0d42, 0x0d40, 0x00b0, 0x0732, 0x0733, 0x0803, 0x83e5, 0x8304, - 0x00a2, 0x00a3, 0x8305, 0x8303, 0x8306, 0x830a, 0x8320, 0x00a7, - 0x0d06, 0x0d05, 0x0ccb, 0x0ccf, 0x0cce, 0x0cc7, - /* 0x12221..0x1227E */ - 0x0cc6, 0x0ca1, 0x0ca0, 0x0cb3, 0x0cb2, 0x0cbd, 0x0cbc, 0x073b, - 0x1012, 0x0892, 0x0890, 0x0891, 0x0893, 0x1013, 0x8307, 0x8302, - 0x830d, 0x835e, 0x1033, 0x1034, 0x1035, 0x103b, 0x103c, 0x10ff, - 0x109f, 0x0908, 0x090b, 0x0986, 0x0987, 0x0982, 0x0983, 0x092a, - 0x0929, 0x0984, 0x0985, 0x098a, 0x098b, 0x0909, 0x0905, 0x0a05, - 0x0a06, 0x0927, 0x0928, 0x00ac, 0x08d2, 0x08d4, 0x0900, 0x0903, - 0x0995, 0x0996, 0x0997, 0x0925, 0x0926, 0x835f, 0x8360, 0x1018, - 0x1019, 0x1016, 0x1017, 0x0920, 0x09a5, 0x0a12, 0x0902, 0x0907, - 0x0961, 0x0952, 0x096a, 0x096b, 0x091a, 0x093d, 0x091d, 0x0935, - 0x092b, 0x092c, 0x0962, 0x0943, 0x0945, 0x0948, 0x0976, 0x0977, - 0x0894, 0x082b, 0x0730, 0x0d6f, 0x0d6d, 0x0d6a, 0x0720, 0x0721, - 0x00b6, 0x0d6e, 0x0d6b, 0x0d6c, 0x0d69, 0x0cef, - /* 0x12321..0x1237E */ - 0x0cb7, 0x0cb6, 0x0cc1, 0x0cc0, 0x0897, 0x0898, 0x0896, 0x0899, - 0x08c4, 0x08e8, 0x08e6, 0x08e7, 0x08e9, 0x0f34, 0x0f35, 0x8310, - 0x8311, 0x8312, 0x8313, 0x8314, 0x8315, 0x8316, 0x8317, 0x8318, - 0x8319, 0x0fbf, 0x0cc9, 0x103d, 0x8246, 0x8245, 0x0ce6, 0x0722, - 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, 0x8327, 0x8328, - 0x8329, 0x832a, 0x832b, 0x832c, 0x832d, 0x832e, 0x832f, 0x8330, - 0x8331, 0x8332, 0x8333, 0x8334, 0x8335, 0x8336, 0x8337, 0x8338, - 0x8339, 0x833a, 0x0913, 0x0835, 0x080f, 0x13cb, 0x0813, 0x0827, - 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, - 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, - 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, - 0x8359, 0x835a, 0x10a0, 0x0713, 0x0ffa, 0x0ffb, - /* 0x12421..0x1247E */ - 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047, 0x1048, - 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f, 0x1050, - 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057, 0x1058, - 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f, 0x1060, - 0x1061, 0x1062, 0x1063, 0x1064, 0x1065, 0x1066, 0x1067, 0x1068, - 0x1069, 0x106a, 0x106b, 0x106c, 0x106d, 0x106e, 0x106f, 0x1070, - 0x1071, 0x1072, 0x1073, 0x1074, 0x1075, 0x1076, 0x1077, 0x1078, - 0x1079, 0x107a, 0x107b, 0x107c, 0x107d, 0x107e, 0x107f, 0x1080, - 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086, 0x1087, 0x1088, - 0x1089, 0x108a, 0x108b, 0x108c, 0x108d, 0x108e, 0x108f, 0x1090, - 0x1091, 0x1092, 0x1093, 0x1094, 0x1095, 0x1096, 0x0001, 0x0002, - 0x0003, 0x0004, 0x0005, 0x0000, 0x0000, 0x0000, - /* 0x12521..0x1257E */ - 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, 0x10c6, 0x10c7, 0x10c8, - 0x10c9, 0x10ca, 0x10cb, 0x10cc, 0x10cd, 0x10ce, 0x10cf, 0x10d0, - 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7, 0x10d8, - 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df, 0x10e0, - 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7, 0x10e8, - 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef, 0x10f0, - 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0x10f6, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, - /* 0x12621..0x1267E */ - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0x0d64, 0x0d60, 0x0d62, 0x0d66, 0x0d61, 0x0d65, 0x0d67, 0x0d63, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, - 0x03c2, 0x0bf5, 0x0bf6, 0x0bf7, 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, - 0x0bfc, 0x0bfd, 0x0bfe, 0x0d16, 0x0d17, 0x1020, 0x0d0e, 0x0d00, - 0x0d01, 0x0d02, 0x0d03, 0x0d68, 0x0cb1, 0x11f0, 0x11f1, 0x11f2, - 0x11f3, 0x11f4, 0x11f5, 0x11f6, 0x11f7, 0x11f8, 0x11f9, 0x000e, - 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe, 0x11ff, - /* 0x12721..0x1277E */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 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, 0x0abe, 0x0abf, 0x0ac0, 0x0ac1, 0x0ac2, 0x0ac3, 0x0ac4, - 0x0ac5, 0x0ac6, 0x0ac7, 0x0ac8, 0x0ac9, 0x0aca, 0x0acb, 0x0acc, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 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, 0x10f7, 0x10f8, 0x10f9, 0x10fa, 0x09da, 0x09db, 0x0853, - 0x0854, 0x0855, 0x0e13, 0x0a18, 0x0b23, 0x0ace, - /* 0x12821..0x1287E */ - 0x0c00, 0x0c02, 0x0c0c, 0x0c10, 0x0c18, 0x0c14, 0x0c1c, 0x0c2c, - 0x0c24, 0x0c34, 0x0c3c, 0x0c01, 0x0c03, 0x0c0f, 0x0c13, 0x0c1b, - 0x0c17, 0x0c23, 0x0c33, 0x0c2b, 0x0c3b, 0x0c4b, 0x0c20, 0x0c2f, - 0x0c28, 0x0c37, 0x0c3f, 0x0c1d, 0x0c30, 0x0c25, 0x0c38, 0x0c42, - 0x1251, 0x1252, 0x1253, 0x1254, 0x1255, 0x1256, 0x1257, 0x1258, - 0x1259, 0x125a, 0x125b, 0x125c, 0x125d, 0x125e, 0x125f, 0x12b1, - 0x12b2, 0x12b3, 0x12b4, 0x12b5, 0x12b6, 0x12b7, 0x12b8, 0x12b9, - 0x12ba, 0x12bb, 0x12bc, 0x12bd, 0x12be, 0x12bf, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cd0, 0x0cd1, - 0x0cd2, 0x0cd3, 0x073c, 0x0747, 0x0748, 0x0749, 0x01cd, 0x01ce, - 0x01d0, 0x053e, 0x053f, 0x01f8, 0x01f9, 0x01d1, 0x01d2, 0x01d4, - 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x0000, 0x0000, - /* 0x12921..0x1297E */ - 0x07ac, 0x00a0, 0x00a1, 0x00a4, 0x00a6, 0x00a9, 0x00aa, 0x00ab, - 0x00ad, 0x00ae, 0x00af, 0x00b2, 0x00b3, 0x00b7, 0x00b8, 0x00b9, - 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, - 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, - 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, - 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d8, 0x00d9, 0x00da, - 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, - 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, - 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, - 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f8, 0x00f9, 0x00fa, 0x00fb, - 0x00fc, 0x00fd, 0x00fe, 0x00ff, 0x0100, 0x012a, 0x016a, 0x0112, - 0x014c, 0x0101, 0x012b, 0x016b, 0x0113, 0x014d, - /* 0x12A21..0x12A7E */ - 0x0104, 0x02d8, 0x0141, 0x013d, 0x015a, 0x0160, 0x015e, 0x0164, - 0x0179, 0x017d, 0x017b, 0x0105, 0x02db, 0x0142, 0x013e, 0x015b, - 0x02c7, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, - 0x0154, 0x0102, 0x0139, 0x0106, 0x010c, 0x0118, 0x011a, 0x010e, - 0x0143, 0x0147, 0x0150, 0x0158, 0x016e, 0x0170, 0x0162, 0x0155, - 0x0103, 0x013a, 0x0107, 0x010d, 0x0119, 0x011b, 0x010f, 0x0111, - 0x0144, 0x0148, 0x0151, 0x0159, 0x016f, 0x0171, 0x0163, 0x02d9, - 0x0108, 0x011c, 0x0124, 0x0134, 0x015c, 0x016c, 0x0109, 0x011d, - 0x0125, 0x0135, 0x015d, 0x016d, 0x0271, 0x028b, 0x027e, 0x0283, - 0x0292, 0x026c, 0x026e, 0x0279, 0x0288, 0x0256, 0x0273, 0x027d, - 0x0282, 0x0290, 0x027b, 0x026d, 0x025f, 0x0272, 0x029d, 0x028e, - 0x0261, 0x014b, 0x0270, 0x0281, 0x0127, 0x0295, - /* 0x12B21..0x12B7E */ - 0x0294, 0x0266, 0x0298, 0x01c2, 0x0253, 0x0257, 0x0284, 0x0260, - 0x0193, 0x0153, 0x0152, 0x0268, 0x0289, 0x0258, 0x0275, 0x0259, - 0x025c, 0x025e, 0x0250, 0x026f, 0x028a, 0x0264, 0x028c, 0x0254, - 0x0251, 0x0252, 0x028d, 0x0265, 0x02a2, 0x02a1, 0x0255, 0x0291, - 0x027a, 0x0267, 0x025a, 0x000f, 0x01fd, 0x0670, 0x0671, 0x0010, - 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0672, - 0x0673, 0x0361, 0x02c8, 0x02cc, 0x02d0, 0x02d1, 0x0306, 0x073f, - 0x030b, 0x0301, 0x0304, 0x0300, 0x030f, 0x030c, 0x0302, 0x02e5, - 0x02e6, 0x02e7, 0x02e8, 0x02e9, 0x0018, 0x0019, 0x0325, 0x032c, - 0x0339, 0x031c, 0x031f, 0x0320, 0x0308, 0x033d, 0x0329, 0x032f, - 0x02de, 0x0324, 0x0330, 0x033c, 0x0334, 0x031d, 0x031e, 0x0318, - 0x0319, 0x032a, 0x033a, 0x033b, 0x0303, 0x031a, - /* 0x12C21..0x12C7E */ - 0x0e76, 0x0e77, 0x0e78, 0x0e79, 0x0e7a, 0x0e7b, 0x0e7c, 0x0e7d, - 0x0e7e, 0x0e7f, 0x0beb, 0x0bec, 0x0bed, 0x0bee, 0x0bef, 0x0bf0, - 0x0bf1, 0x0bf2, 0x0bf3, 0x0bf4, 0x0870, 0x0871, 0x0872, 0x0873, - 0x0874, 0x0875, 0x0876, 0x0877, 0x0878, 0x0879, 0x087a, 0x087b, - 0x0bd0, 0x0bd1, 0x0bd2, 0x0bd3, 0x0bd4, 0x0bd5, 0x0bd6, 0x0bd7, - 0x0bd8, 0x0bd9, 0x0bda, 0x0bdb, 0x0bdc, 0x0bdd, 0x0bde, 0x0bdf, - 0x0be0, 0x0be1, 0x0be2, 0x0be3, 0x0be4, 0x0be5, 0x0be6, 0x0be7, - 0x0be8, 0x0be9, 0x12d0, 0x12d1, 0x12d2, 0x12d3, 0x12d4, 0x12d5, - 0x12d6, 0x12d7, 0x12d8, 0x12d9, 0x12da, 0x12db, 0x12dc, 0x12dd, - 0x12de, 0x12df, 0x12e0, 0x12e1, 0x12e2, 0x12e3, 0x12fa, 0x12e9, - 0x12e5, 0x12ed, 0x12ec, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0751, 0x0742, - /* 0x12D21..0x12D7E */ - 0x0b60, 0x0b61, 0x0b62, 0x0b63, 0x0b64, 0x0b65, 0x0b66, 0x0b67, - 0x0b68, 0x0b69, 0x0b6a, 0x0b6b, 0x0b6c, 0x0b6d, 0x0b6e, 0x0b6f, - 0x0b70, 0x0b71, 0x0b72, 0x0b73, 0x0860, 0x0861, 0x0862, 0x0863, - 0x0864, 0x0865, 0x0866, 0x0867, 0x0868, 0x0869, 0x086a, 0x1349, - 0x1314, 0x1322, 0x134d, 0x1318, 0x1327, 0x1303, 0x1336, 0x1351, - 0x1357, 0x130d, 0x1326, 0x1323, 0x132b, 0x134a, 0x133b, 0x139c, - 0x139d, 0x139e, 0x138e, 0x138f, 0x13c4, 0x13a1, 0x086b, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x137b, 0x101d, - 0x101f, 0x0816, 0x13cd, 0x0821, 0x12a4, 0x12a5, 0x12a6, 0x12a7, - 0x12a8, 0x1231, 0x1232, 0x1239, 0x137e, 0x137d, 0x137c, 0x0000, - 0x0000, 0x0000, 0x092e, 0x0000, 0x0000, 0x0000, 0x0000, 0x091f, - 0x09bf, 0x0000, 0x0000, 0x0000, 0x0e56, 0x0d1e, - /* 0x12E21..0x12E7E */ - 0x2ff1, 0x840b, 0x1402, 0x2e28, 0x2e2f, 0x2e30, 0x2e8d, 0x2ee1, - 0x2efd, 0x2eff, 0x2f03, 0x2f0b, 0x2f60, 0x2f48, 0x2f49, 0x2f56, - 0x2f5f, 0x2f6a, 0x2f6c, 0x2f7e, 0x2f8a, 0x2f94, 0x2f97, 0x8130, - 0x2fc9, 0x2fe0, 0x3001, 0x3002, 0x300e, 0x3018, 0x3027, 0x302e, - 0x3040, 0x303b, 0x3041, 0x3094, 0x30cc, 0x30f2, 0x30d0, 0x30e6, - 0x8131, 0x3106, 0x3103, 0x310b, 0x311e, 0x3135, 0x314a, 0x8132, - 0x3155, 0x3157, 0x14b5, 0x319d, 0x31c3, 0x31ca, 0x31de, 0x31e2, - 0x31ee, 0x3201, 0x14db, 0x3213, 0x3215, 0x3249, 0x3257, 0x3261, - 0x3293, 0x32c8, 0x8133, 0x32cc, 0x32d0, 0x32d6, 0x32db, 0x8134, - 0x32f0, 0x32fb, 0x3300, 0x3307, 0x331c, 0x8135, 0x3361, 0x3363, - 0x337d, 0x3393, 0x339d, 0x33b2, 0x3412, 0x3427, 0x344d, 0x349c, - 0x346b, 0x3474, 0x347f, 0x3488, 0x3496, 0x34a1, - /* 0x12F21..0x12F7E */ - 0x34a9, 0x34c6, 0x34ff, 0x350e, 0x352b, 0x3535, 0x3550, 0x355e, - 0x3581, 0x3586, 0x358e, 0x8136, 0x35ad, 0x35ce, 0x8137, 0x3608, - 0x360e, 0x363b, 0x3649, 0x3676, 0x3666, 0x8138, 0x366f, 0x3671, - 0x3672, 0x3699, 0x369e, 0x36a9, 0x36ac, 0x36b3, 0x36c9, 0x36ca, - 0x370a, 0x923d, 0x3721, 0x372f, 0x3733, 0x3734, 0x3770, 0x3777, - 0x377c, 0x379c, 0x810f, 0x931b, 0x37b8, 0x37c7, 0x37c8, 0x37cf, - 0x37e4, 0x37ed, 0x37f5, 0x37f6, 0x37ff, 0x3809, 0x8110, 0x3861, - 0x3864, 0x8139, 0x387c, 0x3889, 0x389e, 0x813a, 0x38a9, 0x946e, - 0x38d2, 0x38ce, 0x38d4, 0x38da, 0x38e0, 0x38e9, 0x390c, 0x6641, - 0x395d, 0x396d, 0x398b, 0x3992, 0x39a4, 0x39c3, 0x39d2, 0x39dd, - 0x3a13, 0x3a23, 0x3a67, 0x3a6d, 0x3a77, 0x3a7e, 0x3a84, 0x3a9e, - 0x3aa7, 0x3ac4, 0x98bd, 0x3b19, 0x3b25, 0x325d, - /* 0x13021..0x1307E */ - 0x2e9c, 0x3516, 0x3a03, 0x763f, 0x34c0, 0x411b, 0x4328, 0x39f6, - 0x7022, 0x6475, 0x631c, 0x5a50, 0x40aa, 0x43e1, 0x4e25, 0x45ed, - 0x6466, 0x62a6, 0x7bf5, 0x4893, 0x3727, 0x45a1, 0x4271, 0x3b9b, - 0x39d0, 0x667b, 0x78f4, 0x5d62, 0x5dbe, 0x7b8e, 0x4216, 0x5c9f, - 0x68b7, 0x3b89, 0x3eb5, 0x4309, 0x4697, 0x4848, 0x75c7, 0x778d, - 0x474f, 0x2ee5, 0x2f0a, 0x2f4d, 0x2f9d, 0x3049, 0x36f2, 0x3937, - 0x39d4, 0x3a01, 0x3c09, 0x40df, 0x410f, 0x4170, 0x4613, 0x4905, - 0x50ba, 0x554f, 0x5570, 0x59fb, 0x5dad, 0x5def, 0x60c3, 0x640e, - 0x6863, 0x6b02, 0x7055, 0x707a, 0x333b, 0x2e95, 0x2ea5, 0x37df, - 0x60b2, 0x70c1, 0x58ef, 0x2e00, 0x38f1, 0x4ea2, 0x7038, 0x5a32, - 0x6328, 0x628b, 0x7c2f, 0x3141, 0x3370, 0x34bd, 0x34e1, 0x36e0, - 0x39fb, 0x3f15, 0x78f2, 0x4deb, 0x60e4, 0x652d, - /* 0x13121..0x1317E */ - 0x7662, 0x7670, 0x76a0, 0x77fb, 0x340b, 0x33f3, 0x3b87, 0x50cf, - 0x5fbd, 0x6fc2, 0x76e8, 0x336f, 0x7d5c, 0x5aba, 0x2e11, 0x5893, - 0x61fc, 0x4e26, 0x3618, 0x3504, 0x4b1d, 0x651a, 0x7c3b, 0x39e5, - 0x33a9, 0x4d66, 0x54dc, 0x758f, 0x3642, 0x2e91, 0x704b, 0x76f2, - 0x634f, 0x790c, 0x33e1, 0x35b6, 0x3b30, 0x3f71, 0x4620, 0x46f3, - 0x4804, 0x4c38, 0x4cf3, 0x4d29, 0x545b, 0x56c8, 0x5a4e, 0x7834, - 0x62f1, 0x685b, 0x6a60, 0x72ed, 0x4db2, 0x55ab, 0x56ca, 0x79c5, - 0x40a6, 0x6b01, 0x6d8a, 0x75b2, 0x498e, 0x33ad, 0x3186, 0x3712, - 0x3830, 0x3944, 0x3bb4, 0x3ef6, 0x4028, 0x43a9, 0x43f4, 0x4cbf, - 0x4f14, 0x508e, 0x5114, 0x5159, 0x51d5, 0x533f, 0x5e01, 0x6276, - 0x62d1, 0x6597, 0x7060, 0x725b, 0x7d1b, 0x3869, 0x45bc, 0x4c5a, - 0x5525, 0x31f9, 0x392e, 0x3965, 0x3f80, 0x3fdc, - /* 0x13221..0x1327E */ - 0x42bc, 0x45fa, 0x4a2a, 0x4b27, 0x4bb4, 0x538b, 0x5fc1, 0x6956, - 0x7d2c, 0x7d0e, 0x7ec4, 0x3ca1, 0x4c96, 0x637b, 0x3104, 0x3c4b, - 0x41b6, 0x61c6, 0x4876, 0x5261, 0x2e59, 0x2ffa, 0x3378, 0x4069, - 0x4e29, 0x5a4f, 0x77f3, 0x2e0b, 0x3316, 0x2eee, 0x2f55, 0x2f3d, - 0x2fa1, 0x2f73, 0x32a0, 0x33ef, 0x3609, 0x390f, 0x3ac1, 0x3bb6, - 0x3be1, 0x59d1, 0x4687, 0x479c, 0x47b6, 0x4b4c, 0x4cb3, 0x506b, - 0x53c2, 0x598d, 0x59be, 0x5a3c, 0x5b87, 0x62b1, 0x62db, 0x6304, - 0x6377, 0x63ef, 0x63d3, 0x6766, 0x6ab2, 0x3629, 0x6ca8, 0x6fe6, - 0x704e, 0x771e, 0x668a, 0x2fc4, 0x3ce8, 0x4211, 0x5259, 0x553b, - 0x61e5, 0x62bd, 0x66fe, 0x6cc0, 0x76c5, 0x7913, 0x79d5, 0x2ecb, - 0x2f1a, 0x69e3, 0x36de, 0x384a, 0x38ca, 0x3efb, 0x3feb, 0x402a, - 0x4094, 0x4062, 0x41d0, 0x4212, 0x42d0, 0x4539, - /* 0x13321..0x1337E */ - 0x7b41, 0x4666, 0x48b0, 0x4d77, 0x5070, 0x554c, 0x5686, 0x5d75, - 0x62a5, 0x67f9, 0x758b, 0x768e, 0x6c9d, 0x31f1, 0x32be, 0x3916, - 0x34b3, 0x3bb3, 0x3d16, 0x4168, 0x4982, 0x4daf, 0x588d, 0x64cb, - 0x6857, 0x6a72, 0x73a7, 0x7ab8, 0x4d6c, 0x79a8, 0x66d9, 0x37a3, - 0x47ff, 0x66ce, 0x720e, 0x3283, 0x3687, 0x3404, 0x3ed3, 0x42e1, - 0x44b9, 0x483c, 0x4838, 0x4bbb, 0x5372, 0x58ba, 0x5a6b, 0x699a, - 0x69d2, 0x6d6b, 0x6f03, 0x70ed, 0x75a3, 0x7694, 0x7769, 0x3b66, - 0x3cb3, 0x497d, 0x784d, 0x784e, 0x439b, 0x5b20, 0x4a2b, 0x4a7f, - 0x48b6, 0x7c0d, 0x4f5f, 0x3272, 0x359d, 0x4070, 0x42ec, 0x4d3b, - 0x4e07, 0x4ed1, 0x645b, 0x6910, 0x6f44, 0x2e14, 0x7c39, 0x33f6, - 0x491b, 0x4a3a, 0x7784, 0x482a, 0x315c, 0x5ac3, 0x64b2, 0x71dc, - 0x738c, 0x365b, 0x7d28, 0x4822, 0x6305, 0x6431, - /* 0x13421..0x1347E */ - 0x5ca5, 0x3208, 0x62c5, 0x54e6, 0x2e7e, 0x2f83, 0x31a0, 0x3bd2, - 0x320a, 0x32d8, 0x32e7, 0x3dfb, 0x359a, 0x382a, 0x39e6, 0x3b8c, - 0x3b98, 0x3bdb, 0x3e72, 0x3e79, 0x40a3, 0x411f, 0x4163, 0x41be, - 0x43db, 0x4562, 0x47d1, 0x4853, 0x48fa, 0x4b3e, 0x4b53, 0x4c57, - 0x4f22, 0x4f97, 0x4f45, 0x54b0, 0x5518, 0x56e3, 0x570b, 0x5aff, - 0x5ba1, 0x5c21, 0x5de9, 0x5f36, 0x5ff0, 0x609d, 0x6266, 0x639e, - 0x69b3, 0x6acc, 0x6cab, 0x7084, 0x7451, 0x7593, 0x7591, 0x75a2, - 0x7665, 0x77d3, 0x7928, 0x6218, 0x2e38, 0x342b, 0x3cb8, 0x3dcc, - 0x53a9, 0x564c, 0x573c, 0x3ca9, 0x5feb, 0x6d0b, 0x76c1, 0x7811, - 0x7854, 0x7858, 0x2f01, 0x2f0e, 0x3371, 0x359c, 0x3668, 0x37fa, - 0x3947, 0x3b09, 0x3bc4, 0x3c90, 0x3e0c, 0x3e7e, 0x3fcc, 0x43ee, - 0x473a, 0x45d7, 0x45e2, 0x471f, 0x48cb, 0x48c4, - /* 0x13521..0x1357E */ - 0x4a5f, 0x3e30, 0x4bc5, 0x4c17, 0x4c7d, 0x557f, 0x5948, 0x3b63, - 0x5a00, 0x5d00, 0x3fbd, 0x698f, 0x6a18, 0x6cb4, 0x6d77, 0x6ecc, - 0x6f1d, 0x78e2, 0x7a0e, 0x7b3c, 0x2e80, 0x307d, 0x3100, 0x3993, - 0x3b9c, 0x422f, 0x4280, 0x44ec, 0x4b3a, 0x52a0, 0x5591, 0x5947, - 0x5fa9, 0x67fb, 0x6abc, 0x6b70, 0x43ac, 0x63ca, 0x77a0, 0x3409, - 0x3403, 0x35ab, 0x4854, 0x4a58, 0x6a70, 0x5827, 0x4775, 0x7ecd, - 0x3374, 0x3ba2, 0x611a, 0x6650, 0x7006, 0x2e18, 0x2e45, 0x2ec7, - 0x2f11, 0x33ca, 0x3438, 0x3bae, 0x3f13, 0x4025, 0x4551, 0x473d, - 0x4c42, 0x4c72, 0x4ce3, 0x5078, 0x5403, 0x5a76, 0x5aae, 0x5b08, - 0x5d1a, 0x5cfe, 0x5d66, 0x45e7, 0x525b, 0x33bb, 0x3c45, 0x3de8, - 0x42d2, 0x42e0, 0x4319, 0x4e20, 0x665a, 0x6a31, 0x6ddd, 0x72f8, - 0x4f01, 0x59a6, 0x7b5a, 0x2ea8, 0x2eab, 0x2eac, - /* 0x13621..0x1367E */ - 0x2f9b, 0x2fa0, 0x30d1, 0x3147, 0x5af6, 0x3171, 0x31f6, 0x3354, - 0x3321, 0x337f, 0x33eb, 0x35ac, 0x3883, 0x3ce1, 0x3f37, 0x3f4a, - 0x402f, 0x4050, 0x406d, 0x431f, 0x4559, 0x4a4b, 0x4cc1, 0x52c2, - 0x52ed, 0x57ef, 0x60f8, 0x6105, 0x6208, 0x654e, 0x70f7, 0x73e1, - 0x77ff, 0x7957, 0x7a5a, 0x2ef0, 0x31dd, 0x3c2d, 0x4681, 0x496d, - 0x3c40, 0x46f2, 0x4975, 0x5389, 0x4850, 0x5c81, 0x30c5, 0x32e4, - 0x3747, 0x3dfe, 0x7326, 0x45a4, 0x4b23, 0x4b3d, 0x5434, 0x5981, - 0x59bd, 0x5b4b, 0x5dca, 0x62b9, 0x63cc, 0x687f, 0x695f, 0x6b39, - 0x6fd1, 0x71d1, 0x341f, 0x7280, 0x2e5d, 0x3036, 0x33e5, 0x333a, - 0x52d7, 0x5396, 0x57e9, 0x62e6, 0x6eaf, 0x79c6, 0x79c8, 0x79d2, - 0x3177, 0x411a, 0x665e, 0x35b0, 0x5a7a, 0x3076, 0x3bd3, 0x7047, - 0x7685, 0x2e32, 0x4adb, 0x71e7, 0x3c51, 0x3c48, - /* 0x13721..0x1377E */ - 0x4398, 0x5a9f, 0x4c93, 0x7774, 0x6f61, 0x5aaa, 0x518a, 0x7688, - 0x5c82, 0x4817, 0x5e70, 0x4851, 0x736c, 0x32f2, 0x341b, 0x65ab, - 0x6a13, 0x5fa4, 0x6ecd, 0x70e1, 0x3366, 0x6888, 0x5941, 0x2fc2, - 0x30be, 0x3211, 0x3144, 0x3553, 0x372d, 0x53ea, 0x378b, 0x3951, - 0x3f62, 0x3f84, 0x4075, 0x4176, 0x4167, 0x41a9, 0x43b2, 0x443a, - 0x456c, 0x466f, 0x4842, 0x4e13, 0x5566, 0x5a3d, 0x5cfb, 0x5d4c, - 0x5d99, 0x5e4b, 0x5f6b, 0x630e, 0x634a, 0x66cd, 0x6a08, 0x6a63, - 0x6b66, 0x6efd, 0x781a, 0x7d8f, 0x62b8, 0x6fce, 0x7be8, 0x3287, - 0x421f, 0x4483, 0x4fc0, 0x7699, 0x4841, 0x3091, 0x4b20, 0x4c7a, - 0x4f54, 0x5a74, 0x5d50, 0x6840, 0x6a23, 0x4708, 0x2ef6, 0x3039, - 0x3026, 0x3065, 0x317c, 0x3238, 0x3263, 0x35a7, 0x370f, 0x3805, - 0x3acc, 0x3efa, 0x41b2, 0x41f8, 0x42f3, 0x4372, - /* 0x13821..0x1387E */ - 0x491c, 0x4a29, 0x527d, 0x52ac, 0x532e, 0x5814, 0x586f, 0x5d79, - 0x570c, 0x60a9, 0x698b, 0x6b19, 0x6ce2, 0x6ed2, 0x7063, 0x7375, - 0x767a, 0x7855, 0x7a13, 0x7e78, 0x3143, 0x339f, 0x33b3, 0x3e7b, - 0x3f26, 0x4e1b, 0x4e90, 0x5384, 0x53fe, 0x5d43, 0x6237, 0x6a00, - 0x6afa, 0x7650, 0x2e4e, 0x300b, 0x33e4, 0x347c, 0x36fa, 0x39d1, - 0x3b64, 0x3df1, 0x3eab, 0x3f27, 0x4238, 0x4545, 0x47af, 0x4e56, - 0x52d0, 0x5cca, 0x68b4, 0x60a1, 0x60e1, 0x63f0, 0x664e, 0x6a87, - 0x6de8, 0x7237, 0x76c7, 0x7867, 0x7f13, 0x2e94, 0x2e92, 0x2f0d, - 0x3348, 0x3449, 0x343e, 0x3a2f, 0x3f8c, 0x3fa1, 0x409f, 0x48a7, - 0x4a8e, 0x545a, 0x5881, 0x6a9e, 0x6aa4, 0x6b77, 0x7190, 0x2e5e, - 0x7bc9, 0x2ea4, 0x2f7c, 0x2faf, 0x3019, 0x3016, 0x3149, 0x316c, - 0x329f, 0x32b9, 0x32fe, 0x339a, 0x33e3, 0x3411, - /* 0x13921..0x1397E */ - 0x340e, 0x3589, 0x3751, 0x37a2, 0x397d, 0x3b54, 0x3b5d, 0x3b8f, - 0x3de5, 0x3de7, 0x3df7, 0x3e78, 0x3e83, 0x3e9a, 0x3eb7, 0x3f18, - 0x4052, 0x414c, 0x4297, 0x42d8, 0x43a7, 0x453b, 0x4602, 0x4643, - 0x46f4, 0x476d, 0x4821, 0x4897, 0x49cb, 0x4c5f, 0x4d2a, 0x4d69, - 0x4e2f, 0x4e9d, 0x5532, 0x5687, 0x586c, 0x5a3f, 0x5ce0, 0x5d05, - 0x5d18, 0x5d5e, 0x5db1, 0x6015, 0x6003, 0x60af, 0x60b1, 0x6154, - 0x618f, 0x622a, 0x6352, 0x684c, 0x6861, 0x6b1b, 0x6ca2, 0x6cfc, - 0x70ca, 0x7175, 0x7271, 0x583f, 0x72fc, 0x75a4, 0x764d, 0x7805, - 0x7999, 0x7ad8, 0x7d3b, 0x325b, 0x32ab, 0x33f7, 0x3408, 0x38d5, - 0x42f7, 0x4fe0, 0x6c6a, 0x6f5f, 0x7eb9, 0x314b, 0x323b, 0x344a, - 0x36fd, 0x5a40, 0x7177, 0x7d60, 0x7ed2, 0x5344, 0x4f09, 0x6170, - 0x5511, 0x3ffd, 0x40da, 0x7aa8, 0x52db, 0x6fbc, - /* 0x13A21..0x13A7E */ - 0x4b64, 0x7803, 0x2eca, 0x36f0, 0x3764, 0x38be, 0x3a5a, 0x4068, - 0x41c7, 0x460f, 0x4606, 0x4839, 0x48b1, 0x4df7, 0x55d5, 0x5d3a, - 0x626e, 0x7b42, 0x2e9b, 0x2f50, 0x33c9, 0x3506, 0x3d6f, 0x3de6, - 0x3dee, 0x47fb, 0x4c99, 0x5473, 0x5802, 0x6a50, 0x7396, 0x68df, - 0x3750, 0x3ea7, 0x432b, 0x30b5, 0x30ac, 0x318d, 0x4700, 0x34c9, - 0x385e, 0x39bb, 0x3bb0, 0x3f69, 0x424d, 0x43a1, 0x483d, 0x4b73, - 0x4e08, 0x507d, 0x71c7, 0x5280, 0x5815, 0x5826, 0x596d, 0x458e, - 0x5d30, 0x63dc, 0x68c1, 0x6f09, 0x769b, 0x3264, 0x3728, 0x4750, - 0x5f6a, 0x6ca1, 0x31b4, 0x3742, 0x762a, 0x383a, 0x498a, 0x60b4, - 0x34b2, 0x3d0e, 0x37fc, 0x5895, 0x7dfa, 0x2f5c, 0x324a, 0x348b, - 0x443e, 0x4628, 0x4714, 0x47f5, 0x5a84, 0x5b56, 0x5d22, 0x732f, - 0x485c, 0x7bad, 0x5b39, 0x3319, 0x318a, 0x3237, - /* 0x13B21..0x13B7E */ - 0x3bdf, 0x42f6, 0x44ae, 0x44e6, 0x472d, 0x4bba, 0x65a9, 0x76d1, - 0x5690, 0x7bd6, 0x434c, 0x7306, 0x7bab, 0x56bf, 0x4652, 0x2e09, - 0x3098, 0x33c2, 0x3c71, 0x40e8, 0x4492, 0x4563, 0x485f, 0x51e6, - 0x53ca, 0x5523, 0x5b97, 0x5e82, 0x6695, 0x6b83, 0x6cdb, 0x7178, - 0x7910, 0x45ac, 0x46ab, 0x4b8b, 0x2ed5, 0x2ed4, 0x2f3a, 0x2f7f, - 0x323a, 0x33f8, 0x33f2, 0x35e3, 0x36db, 0x38eb, 0x39cb, 0x39c9, - 0x39ff, 0x3b50, 0x3c4d, 0x3e02, 0x3e2b, 0x3fd7, 0x401d, 0x4307, - 0x452f, 0x3b5c, 0x45af, 0x45bd, 0x45e8, 0x479d, 0x4b62, 0x4b7b, - 0x4c0f, 0x5345, 0x5949, 0x59c1, 0x5cf8, 0x5d19, 0x5d2b, 0x60a2, - 0x6102, 0x61f3, 0x6996, 0x6a5e, 0x6a69, 0x6a66, 0x6a8c, 0x6aee, - 0x6cc7, 0x6cdc, 0x76cc, 0x78fc, 0x4b6f, 0x2e8b, 0x2f3c, 0x2f8d, - 0x3150, 0x3b57, 0x3bfa, 0x4148, 0x4301, 0x4642, - /* 0x13C21..0x13C7E */ - 0x4b21, 0x4ecb, 0x4cbb, 0x523e, 0x54bd, 0x55d4, 0x58c1, 0x593a, - 0x600c, 0x6033, 0x61ea, 0x6494, 0x6f9e, 0x4c50, 0x7e7f, 0x3f0f, - 0x6b58, 0x7d2b, 0x5afa, 0x6ef8, 0x3b8d, 0x76eb, 0x2e03, 0x33f1, - 0x37f7, 0x3931, 0x3ac9, 0x3ba4, 0x4089, 0x4e7f, 0x4f06, 0x55be, - 0x6cea, 0x3b9f, 0x6500, 0x5be0, 0x3072, 0x47f4, 0x629d, 0x3c61, - 0x654a, 0x5e1e, 0x620e, 0x3199, 0x3c04, 0x4368, 0x6d66, 0x459c, - 0x516e, 0x593e, 0x5d17, 0x6005, 0x6b1d, 0x6eca, 0x706e, 0x66c7, - 0x70aa, 0x301f, 0x32fa, 0x3c3a, 0x4753, 0x507c, 0x5235, 0x714c, - 0x71c8, 0x732b, 0x62e5, 0x3bc2, 0x3f31, 0x40f9, 0x2e3b, 0x33d6, - 0x3b88, 0x424b, 0x4731, 0x4b8a, 0x52e9, 0x53e0, 0x5a2e, 0x616b, - 0x6da3, 0x7152, 0x7996, 0x3112, 0x33d7, 0x346a, 0x3bff, 0x4388, - 0x4a39, 0x5dac, 0x7700, 0x36da, 0x33ce, 0x3468, - /* 0x13D21..0x13D7E */ - 0x3b97, 0x3c31, 0x3dde, 0x2fee, 0x4101, 0x42fe, 0x4d32, 0x59c0, - 0x59cb, 0x5d42, 0x5e4d, 0x5fd2, 0x61ed, 0x621f, 0x6490, 0x6846, - 0x6972, 0x6b90, 0x6e74, 0x6f2f, 0x7031, 0x714b, 0x716c, 0x76c6, - 0x719c, 0x2ec0, 0x2f4f, 0x3145, 0x3341, 0x3f93, 0x420e, 0x47d4, - 0x4c41, 0x4e0b, 0x5363, 0x5e26, 0x71cd, 0x7283, 0x33d4, 0x3919, - 0x3bbf, 0x4dd1, 0x595d, 0x5e2e, 0x5c9b, 0x387e, 0x519f, 0x31fa, - 0x6853, 0x6ff0, 0x2fca, 0x3cfb, 0x4625, 0x57ac, 0x5ae3, 0x621c, - 0x79ff, 0x31c6, 0x3faa, 0x45ec, 0x496f, 0x4b89, 0x4df3, 0x4e96, - 0x4f64, 0x56fe, 0x5d14, 0x3de1, 0x7075, 0x7187, 0x7806, 0x31e6, - 0x321d, 0x4240, 0x4691, 0x46d9, 0x4e1a, 0x3eb6, 0x5dd2, 0x5f72, - 0x46f8, 0x65af, 0x65f7, 0x6af8, 0x32a9, 0x33d9, 0x3973, 0x3e8f, - 0x3f90, 0x4055, 0x72e4, 0x7664, 0x30b7, 0x311f, - /* 0x13E21..0x13E7E */ - 0x32dd, 0x3320, 0x3347, 0x33ec, 0x34e8, 0x3546, 0x3531, 0x3617, - 0x3968, 0x39be, 0x3a3c, 0x3bb5, 0x3c06, 0x3c0f, 0x3c11, 0x3c1a, - 0x3e84, 0x3e8a, 0x3ee0, 0x3f70, 0x427f, 0x4284, 0x42db, 0x438c, - 0x4377, 0x4607, 0x460c, 0x462d, 0x4676, 0x477e, 0x48a2, 0x4a1f, - 0x4a35, 0x4cbc, 0x4d88, 0x4e09, 0x4e58, 0x513c, 0x5126, 0x5167, - 0x55c7, 0x5701, 0x585d, 0x5901, 0x5965, 0x59f0, 0x5ae0, 0x5b11, - 0x5ca7, 0x5d39, 0x6096, 0x63d6, 0x648b, 0x6549, 0x685d, 0x68f3, - 0x6a1f, 0x6a3c, 0x6a54, 0x6a73, 0x6c61, 0x6cde, 0x71a4, 0x7266, - 0x737e, 0x7418, 0x769c, 0x7798, 0x2e0a, 0x2e08, 0x2e1e, 0x2e57, - 0x3197, 0x3270, 0x37ce, 0x3834, 0x38cc, 0x3b22, 0x3e38, 0x40c5, - 0x44fe, 0x4761, 0x4756, 0x4d44, 0x52b6, 0x5573, 0x5a63, 0x64b8, - 0x6b72, 0x71b8, 0x7320, 0x3631, 0x37f4, 0x78fe, - /* 0x13F21..0x13F7E */ - 0x42ed, 0x490d, 0x4b96, 0x51ed, 0x5e54, 0x6077, 0x6272, 0x69e6, - 0x78df, 0x6755, 0x6fb1, 0x3c3b, 0x2f38, 0x2fe1, 0x2fb5, 0x3507, - 0x3a20, 0x3bdd, 0x3be9, 0x3fc3, 0x414e, 0x432f, 0x45b0, 0x464b, - 0x48ee, 0x499b, 0x4d78, 0x4df1, 0x5533, 0x55b9, 0x571f, 0x595e, - 0x59e6, 0x5d33, 0x61e3, 0x62af, 0x65aa, 0x69aa, 0x6a3a, 0x6eab, - 0x6f9b, 0x7032, 0x71dd, 0x7707, 0x2eba, 0x2ec1, 0x3203, 0x3875, - 0x38ec, 0x3c0b, 0x551a, 0x3c3d, 0x614e, 0x6a0a, 0x6fc5, 0x7663, - 0x776d, 0x5b25, 0x6acf, 0x7808, 0x7162, 0x36f3, 0x33a8, 0x7017, - 0x3439, 0x3782, 0x3e25, 0x43a8, 0x4c34, 0x508a, 0x5761, 0x5c8b, - 0x5fe0, 0x6870, 0x7042, 0x7154, 0x7310, 0x7318, 0x768f, 0x545e, - 0x7ac4, 0x3d07, 0x3d69, 0x4570, 0x47a2, 0x6da8, 0x76db, 0x436e, - 0x4749, 0x4919, 0x63c5, 0x7817, 0x76c0, 0x68fe, - /* 0x14021..0x1407E */ - 0x4f84, 0x447a, 0x3bf8, 0x2e16, 0x502c, 0x555d, 0x462f, 0x31c4, - 0x3236, 0x32e2, 0x39d3, 0x3f81, 0x4027, 0x4210, 0x453f, 0x4574, - 0x461f, 0x4674, 0x48f2, 0x4816, 0x4b63, 0x4e05, 0x5272, 0x551f, - 0x56db, 0x5cbe, 0x6056, 0x38f0, 0x68fd, 0x697f, 0x6aa0, 0x6a93, - 0x6acb, 0x701d, 0x7192, 0x7752, 0x7759, 0x4589, 0x5a0e, 0x6106, - 0x76bb, 0x3e2d, 0x40dc, 0x421a, 0x45a5, 0x4614, 0x4790, 0x57f3, - 0x5a4d, 0x5c4d, 0x5e3e, 0x610a, 0x6cac, 0x6d64, 0x6de1, 0x6e5f, - 0x58a9, 0x3207, 0x42d9, 0x43a5, 0x4442, 0x4298, 0x6a2d, 0x5a83, - 0x5bc0, 0x6aac, 0x76ea, 0x5d76, 0x620c, 0x6749, 0x2ed9, 0x3148, - 0x3343, 0x3360, 0x3ba3, 0x3c02, 0x3c16, 0x3ddd, 0x4226, 0x4247, - 0x44b0, 0x4813, 0x4834, 0x4cc9, 0x4d45, 0x4d17, 0x47d3, 0x4f5c, - 0x514e, 0x517d, 0x45cb, 0x5a7f, 0x5bad, 0x5dda, - /* 0x14121..0x1417E */ - 0x5e4a, 0x5fa8, 0x617a, 0x621b, 0x6239, 0x65a6, 0x6a6e, 0x6cce, - 0x6df5, 0x7078, 0x7077, 0x72ad, 0x7291, 0x7583, 0x7bae, 0x324d, - 0x3584, 0x4f38, 0x5136, 0x3168, 0x5985, 0x5e55, 0x61b3, 0x5cce, - 0x364c, 0x3851, 0x3ca8, 0x43aa, 0x46fe, 0x46fd, 0x495a, 0x52d9, - 0x558f, 0x558e, 0x590e, 0x5956, 0x59df, 0x5c97, 0x5d20, 0x5d44, - 0x6607, 0x6a34, 0x763b, 0x7061, 0x7f20, 0x30e7, 0x3275, 0x33cc, - 0x33e2, 0x3009, 0x35aa, 0x38ee, 0x394f, 0x523d, 0x3b8b, 0x3c64, - 0x331d, 0x40e3, 0x40f3, 0x435c, 0x4383, 0x433f, 0x43bb, 0x44cd, - 0x45e9, 0x46f9, 0x3de3, 0x49cd, 0x49fd, 0x4f15, 0x51e5, 0x2e89, - 0x55e9, 0x56f8, 0x5a93, 0x5cdf, 0x5dcf, 0x5d9c, 0x6061, 0x6349, - 0x6358, 0x646c, 0x64bc, 0x65fb, 0x68c5, 0x6d70, 0x7001, 0x706d, - 0x7397, 0x771c, 0x7a12, 0x30cf, 0x3897, 0x418e, - /* 0x14221..0x1427E */ - 0x61d3, 0x6535, 0x6d08, 0x7020, 0x2fc3, 0x3074, 0x3247, 0x3373, - 0x406f, 0x4349, 0x475f, 0x4e2c, 0x6db3, 0x701f, 0x2fd7, 0x3c5e, - 0x6cca, 0x45cf, 0x5d9a, 0x3352, 0x6896, 0x3176, 0x43c3, 0x3b58, - 0x3b6b, 0x3c0a, 0x440d, 0x4751, 0x705c, 0x2ed6, 0x391a, 0x392a, - 0x4c70, 0x6a51, 0x353e, 0x3815, 0x39a5, 0x40f0, 0x4253, 0x47c1, - 0x6235, 0x4955, 0x7640, 0x79c4, 0x7a28, 0x2f53, 0x3806, 0x3bfe, - 0x6010, 0x3cb1, 0x3e2f, 0x3f85, 0x4020, 0x414b, 0x4234, 0x46ff, - 0x4cf0, 0x4ede, 0x60ce, 0x617f, 0x62d4, 0x688b, 0x6cb8, 0x7000, - 0x702e, 0x768a, 0x7edb, 0x7bdb, 0x2ee3, 0x33f0, 0x3927, 0x5b2c, - 0x718d, 0x784c, 0x7df9, 0x4edd, 0x5027, 0x3353, 0x3544, 0x3b85, - 0x4258, 0x429e, 0x42d3, 0x4ca2, 0x4fef, 0x5422, 0x6a17, 0x7438, - 0x4fc1, 0x6afe, 0x6338, 0x31e7, 0x66f8, 0x33ea, - /* 0x14321..0x1437E */ - 0x33e9, 0x2f46, 0x7054, 0x6fb0, 0x396a, 0x6131, 0x3dfd, 0x5aea, - 0x6fbf, 0x48da, 0x6c37, 0x52f8, 0x7c48, 0x4a3d, 0x6ab0, 0x2e39, - 0x3358, 0x3606, 0x3766, 0x42c5, 0x43a2, 0x45e6, 0x4b4e, 0x4de1, - 0x4e5b, 0x50ad, 0x57ed, 0x5aef, 0x5baa, 0x5dbb, 0x603d, 0x60c6, - 0x66cb, 0x6a95, 0x735b, 0x36e3, 0x38c7, 0x3f3e, 0x45ad, 0x4696, - 0x4a80, 0x4bb5, 0x5537, 0x6ac7, 0x3024, 0x57e5, 0x3730, 0x3f1b, - 0x4065, 0x467a, 0x4c60, 0x55f4, 0x5a1a, 0x5f6e, 0x61f4, 0x6718, - 0x7045, 0x79b3, 0x5bc9, 0x555c, 0x5af9, 0x5b51, 0x64c4, 0x7010, - 0x59e9, 0x5a92, 0x6336, 0x3ae1, 0x5740, 0x2e2d, 0x2ef2, 0x3b99, - 0x3fe0, 0x42bd, 0x463c, 0x47f1, 0x4ce8, 0x666b, 0x6877, 0x6a3b, - 0x714e, 0x72f3, 0x79d0, 0x4a17, 0x5026, 0x532a, 0x62e7, 0x6457, - 0x6caf, 0x2e01, 0x3146, 0x31cb, 0x358b, 0x3bf5, - /* 0x14421..0x1447E */ - 0x3e16, 0x3e33, 0x3e81, 0x3f14, 0x3f35, 0x3f6b, 0x3fb4, 0x41f2, - 0x4311, 0x46a2, 0x471d, 0x4f6e, 0x5252, 0x553a, 0x573a, 0x6074, - 0x6139, 0x6178, 0x6776, 0x6abf, 0x6adc, 0x6d85, 0x6df3, 0x729a, - 0x7577, 0x7802, 0x7ce5, 0x32c5, 0x4357, 0x56f4, 0x4715, 0x4c88, - 0x53cd, 0x6cc3, 0x73ae, 0x7673, 0x4d25, 0x389c, 0x490e, 0x49cc, - 0x6ffd, 0x739a, 0x55db, 0x701a, 0x385a, 0x4802, 0x43b4, 0x49fb, - 0x2f43, 0x4f2c, 0x47d8, 0x6fbb, 0x6526, 0x5db4, 0x7354, 0x493f, - 0x4f70, 0x376a, 0x38f7, 0x3b2c, 0x5d2c, 0x522a, 0x340a, 0x71e3, - 0x7db4, 0x2ead, 0x2f4e, 0x305c, 0x3075, 0x3243, 0x6c9e, 0x3448, - 0x3824, 0x3b9a, 0x3e1d, 0x3e95, 0x3ead, 0x3ef7, 0x3f1f, 0x408c, - 0x42b5, 0x433a, 0x43d0, 0x48af, 0x4c40, 0x5887, 0x598e, 0x5a0b, - 0x5de0, 0x6247, 0x6a02, 0x6ae6, 0x6e44, 0x7013, - /* 0x14521..0x1457E */ - 0x70b8, 0x712d, 0x71d8, 0x7f0e, 0x4ce5, 0x4458, 0x44e2, 0x4575, - 0x4ef4, 0x5684, 0x5b1b, 0x7069, 0x73d1, 0x4eba, 0x34f2, 0x3fb9, - 0x44a4, 0x6f4d, 0x6fed, 0x7244, 0x3178, 0x386b, 0x3929, 0x3c55, - 0x3e97, 0x4dfb, 0x5e8f, 0x551c, 0x6cbc, 0x6ee2, 0x785b, 0x50b9, - 0x2f1d, 0x4bbf, 0x4fb1, 0x5530, 0x76fb, 0x314e, 0x3410, 0x3835, - 0x3857, 0x39ac, 0x3c60, 0x3f92, 0x4597, 0x475c, 0x4e21, 0x567b, - 0x63df, 0x6ced, 0x7014, 0x70fd, 0x734d, 0x5825, 0x583a, 0x32aa, - 0x3ea6, 0x371f, 0x3974, 0x4012, 0x3012, 0x315a, 0x31ac, 0x31cd, - 0x3200, 0x3510, 0x3854, 0x3858, 0x3957, 0x3b95, 0x3cf6, 0x3d8b, - 0x40bc, 0x4295, 0x442d, 0x4771, 0x4843, 0x48bc, 0x48df, 0x56d7, - 0x4dd8, 0x4e6f, 0x4d9b, 0x506f, 0x51c8, 0x3f53, 0x55d8, 0x5977, - 0x5b49, 0x5b54, 0x5b52, 0x5cd6, 0x5d71, 0x3230, - /* 0x14621..0x1467E */ - 0x6463, 0x6569, 0x65e4, 0x6a0e, 0x6b04, 0x6c46, 0x6e0f, 0x7003, - 0x700f, 0x7419, 0x7676, 0x782d, 0x7a30, 0x75d8, 0x30cd, 0x32d5, - 0x340c, 0x3802, 0x3c0e, 0x41a7, 0x449e, 0x4d1e, 0x57b3, 0x5ae5, - 0x60f4, 0x6404, 0x7053, 0x7285, 0x3ce0, 0x7d07, 0x333f, 0x3f97, - 0x3fb3, 0x4d9c, 0x5279, 0x5763, 0x59bf, 0x5be4, 0x4bd2, 0x52ec, - 0x6aad, 0x4803, 0x4a61, 0x31f8, 0x5a81, 0x4934, 0x3c4a, 0x7cf6, - 0x62eb, 0x3bc5, 0x7149, 0x501e, 0x3678, 0x3c6f, 0x40c7, 0x4566, - 0x4c8c, 0x6c5a, 0x7041, 0x7813, 0x3451, 0x46c7, 0x720d, 0x3948, - 0x70a3, 0x3185, 0x2e4d, 0x31ea, 0x6599, 0x6b0e, 0x5058, 0x437a, - 0x734b, 0x4962, 0x79b4, 0x5e04, 0x5577, 0x3357, 0x4960, 0x6edf, - 0x76e3, 0x4c5d, 0x2e8c, 0x3c3c, 0x3f10, 0x6fe9, 0x3302, 0x6cd1, - 0x6089, 0x6679, 0x3eff, 0x45e5, 0x2e73, 0x3165, - /* 0x14721..0x1477E */ - 0x3982, 0x3c3f, 0x77ee, 0x2efb, 0x398a, 0x3fcd, 0x6a8d, 0x4fe1, - 0x59b0, 0x5962, 0x3be7, 0x6471, 0x532b, 0x51b1, 0x3e74, 0x3ff5, - 0x437b, 0x449a, 0x51c3, 0x5c98, 0x2e43, 0x3efc, 0x2e4b, 0x37dc, - 0x36a2, 0x40a9, 0x4fc3, 0x5d0d, 0x60fd, 0x6133, 0x61bf, 0x6fb2, - 0x6997, 0x66a4, 0x3df4, 0x428a, 0x44ad, 0x6987, 0x4777, 0x4ce2, - 0x4d3e, 0x5436, 0x5834, 0x3a46, 0x5f75, 0x62ad, 0x79ac, 0x2ff3, - 0x3ec3, 0x42dd, 0x4392, 0x4557, 0x476f, 0x56c3, 0x524c, 0x60cc, - 0x60ba, 0x6f29, 0x714d, 0x300d, 0x37f9, 0x3a92, 0x4885, 0x4973, - 0x5164, 0x52fd, 0x6cb7, 0x38f2, 0x6ce0, 0x766a, 0x7019, 0x677f, - 0x59e4, 0x57e7, 0x6429, 0x2f2f, 0x3265, 0x335a, 0x42cd, 0x47cf, - 0x4cca, 0x567d, 0x5b94, 0x5c95, 0x6236, 0x6584, 0x6feb, 0x46dd, - 0x4f20, 0x5206, 0x5e1b, 0x63ab, 0x79c1, 0x7ea6, - /* 0x14821..0x1487E */ - 0x31fd, 0x5bb1, 0x5872, 0x5bb8, 0x6087, 0x5b48, 0x4ae8, 0x3e61, - 0x608c, 0x5551, 0x5560, 0x316b, 0x7262, 0x4e8c, 0x567a, 0x7197, - 0x7aea, 0x2f10, 0x5f70, 0x429c, 0x5b4f, 0x75a5, 0x7ce9, 0x367a, - 0x3859, 0x66e4, 0x76bc, 0x2f34, 0x3224, 0x334a, 0x33cd, 0x33db, - 0x3e06, 0x442c, 0x4591, 0x477f, 0x4c3e, 0x4c4e, 0x5248, 0x52af, - 0x53ed, 0x5554, 0x5e41, 0x622c, 0x65e9, 0x6ca9, 0x5bc4, 0x71c6, - 0x5169, 0x7812, 0x78ef, 0x433d, 0x4669, 0x556a, 0x56e4, 0x58d0, - 0x6543, 0x66ee, 0x332a, 0x3351, 0x3426, 0x3983, 0x3e87, 0x3f7c, - 0x40b2, 0x4249, 0x4279, 0x42ab, 0x4590, 0x4bd4, 0x4ccc, 0x55b2, - 0x56ae, 0x5891, 0x59d8, 0x5dcb, 0x5f77, 0x60a5, 0x68ab, 0x6ab9, - 0x6cbb, 0x707f, 0x775e, 0x78db, 0x4a0b, 0x5c38, 0x3099, 0x3c3e, - 0x3fae, 0x4787, 0x4bd8, 0x5435, 0x5709, 0x5f8e, - /* 0x14921..0x1497E */ - 0x7f3b, 0x47ca, 0x5a17, 0x3339, 0x558b, 0x7aed, 0x3f66, 0x619d, - 0x63f1, 0x6098, 0x3f3c, 0x3fc5, 0x5562, 0x5b46, 0x703c, 0x4867, - 0x39eb, 0x3a9b, 0x5d10, 0x567e, 0x6b2c, 0x2ff5, 0x3f6a, 0x4a19, - 0x4c37, 0x4f02, 0x54e2, 0x5968, 0x6868, 0x6a55, 0x6c79, 0x3edf, - 0x43cf, 0x55c5, 0x59d2, 0x62d7, 0x7328, 0x72f2, 0x649c, 0x66ed, - 0x7c2d, 0x34c1, 0x3f6c, 0x458c, 0x4d5c, 0x5015, 0x6ca7, 0x6cd3, - 0x783b, 0x454f, 0x54f6, 0x2e0d, 0x2ed8, 0x37e0, 0x392b, 0x3a66, - 0x3bcc, 0x31a8, 0x3e03, 0x3e9c, 0x4016, 0x4276, 0x4577, 0x45a7, - 0x466e, 0x4d6e, 0x5236, 0x5b26, 0x6150, 0x619a, 0x6299, 0x6b5c, - 0x6ca0, 0x6ce6, 0x6d74, 0x761c, 0x7644, 0x2fae, 0x44ab, 0x4b66, - 0x621e, 0x6461, 0x656a, 0x70e8, 0x3c01, 0x4953, 0x78a8, 0x647a, - 0x6557, 0x2f0f, 0x326f, 0x3fa9, 0x3e45, 0x470d, - /* 0x14A21..0x14A7E */ - 0x598f, 0x6179, 0x6907, 0x6986, 0x4df5, 0x3f17, 0x4255, 0x4cb8, - 0x2ecf, 0x5269, 0x7b92, 0x3206, 0x343b, 0x3674, 0x38b3, 0x41a4, - 0x426e, 0x511a, 0x396e, 0x5c89, 0x5cde, 0x5d1b, 0x76f0, 0x4587, - 0x605e, 0x2e19, 0x2f75, 0x3175, 0x3840, 0x3e63, 0x3e73, 0x3f0a, - 0x47c4, 0x2e26, 0x653d, 0x7589, 0x765b, 0x5c73, 0x7801, 0x30fb, - 0x38c1, 0x5656, 0x58a7, 0x3225, 0x57a5, 0x6511, 0x5b86, 0x304f, - 0x3909, 0x5247, 0x5bc7, 0x5de8, 0x6fba, 0x6fd4, 0x704d, 0x2fbf, - 0x32c9, 0x3a29, 0x3f01, 0x77ad, 0x2fdd, 0x6217, 0x72ea, 0x3703, - 0x4355, 0x4b69, 0x552b, 0x68dc, 0x6f14, 0x5a42, 0x32df, 0x3893, - 0x4155, 0x420a, 0x46ae, 0x4bcd, 0x5c3f, 0x63e9, 0x3023, 0x2ff8, - 0x3305, 0x3446, 0x3831, 0x3949, 0x3b9d, 0x3cf0, 0x3cef, 0x3d29, - 0x3e96, 0x42b1, 0x4367, 0x453e, 0x45b9, 0x470b, - /* 0x14B21..0x14B7E */ - 0x4cd5, 0x4ce1, 0x50f9, 0x5832, 0x5e2b, 0x60de, 0x62b3, 0x640c, - 0x64ec, 0x6702, 0x6912, 0x6a2a, 0x6c4a, 0x70a6, 0x72d2, 0x78fd, - 0x7cf3, 0x7d6c, 0x2e4f, 0x2ea1, 0x308d, 0x3256, 0x374a, 0x39a8, - 0x3e3d, 0x3fd8, 0x3fd9, 0x423f, 0x46b4, 0x471b, 0x47d0, 0x48d2, - 0x3192, 0x5d21, 0x60aa, 0x61a8, 0x6b00, 0x6c8c, 0x6cbf, 0x727e, - 0x7632, 0x3420, 0x782c, 0x3317, 0x30d5, 0x335c, 0x38a8, 0x44b2, - 0x4734, 0x5267, 0x5766, 0x5a46, 0x71e6, 0x32c3, 0x4ca1, 0x4b86, - 0x3800, 0x3e4c, 0x3954, 0x472c, 0x5ffb, 0x31e1, 0x56c6, 0x4469, - 0x58e8, 0x7b54, 0x7ebb, 0x37cb, 0x39b9, 0x4627, 0x479a, 0x4bce, - 0x34e9, 0x49d9, 0x3e55, 0x619c, 0x4795, 0x7baa, 0x47fe, 0x7c52, - 0x485d, 0x2ea6, 0x2fe3, 0x33c8, 0x42b9, 0x472b, 0x4cab, 0x6fc4, - 0x2fad, 0x5e6d, 0x7ebf, 0x2e07, 0x4162, 0x4e80, - /* 0x14C21..0x14C7E */ - 0x4f2b, 0x6513, 0x3473, 0x472a, 0x7b45, 0x3df3, 0x5b95, 0x3cac, - 0x3bc6, 0x671c, 0x4e4a, 0x64d1, 0x5a14, 0x6108, 0x3999, 0x5c8d, - 0x4c11, 0x5720, 0x32d9, 0x3922, 0x5121, 0x525f, 0x57db, 0x7727, - 0x7d61, 0x490b, 0x3a7f, 0x3a18, 0x31a5, 0x340d, 0x347d, 0x460e, - 0x56df, 0x6ff7, 0x7298, 0x7cf4, 0x39ea, 0x525d, 0x4ec5, 0x314d, - 0x48c9, 0x5dbf, 0x5dec, 0x7762, 0x7eba, 0x4478, 0x4a21, 0x6302, - 0x3984, 0x3b5f, 0x4bdb, 0x531b, 0x56f2, 0x5db2, 0x6017, 0x6499, - 0x3132, 0x4728, 0x7ed9, 0x56ee, 0x4762, 0x32ff, 0x7905, 0x3c24, - 0x423b, 0x5c7e, 0x6cb0, 0x354f, 0x40b6, 0x5d0b, 0x7580, 0x3301, - 0x2e5f, 0x31b6, 0x391c, 0x523a, 0x6036, 0x71ce, 0x3f25, 0x57e2, - 0x3384, 0x3f79, 0x5d04, 0x65ac, 0x6a33, 0x6e8d, 0x7756, 0x47f3, - 0x65ae, 0x7453, 0x4109, 0x4108, 0x4cb9, 0x5652, - /* 0x14D21..0x14D7E */ - 0x6aed, 0x6f38, 0x352f, 0x2f51, 0x312a, 0x32c7, 0x33cb, 0x3ba5, - 0x3e7d, 0x40a0, 0x4182, 0x43d6, 0x4709, 0x47da, 0x4e67, 0x4d8c, - 0x5336, 0x5337, 0x5531, 0x5950, 0x68d5, 0x6a98, 0x704a, 0x7091, - 0x70f5, 0x76c4, 0x678d, 0x3915, 0x2e88, 0x2f59, 0x2e0e, 0x6a89, - 0x6f3f, 0x7810, 0x30ad, 0x3e7c, 0x3996, 0x3bb9, 0x3eb8, 0x43da, - 0x43fa, 0x44c1, 0x46dc, 0x494a, 0x49d8, 0x4d0b, 0x4eb6, 0x5194, - 0x5528, 0x5aaf, 0x5f8a, 0x6000, 0x6449, 0x64c9, 0x6981, 0x6b21, - 0x6e0a, 0x7065, 0x767d, 0x790a, 0x417e, 0x4291, 0x4b32, 0x4c83, - 0x4d74, 0x5fcc, 0x5ffc, 0x4dc0, 0x5f85, 0x67ba, 0x68f8, 0x4765, - 0x63b1, 0x783c, 0x76f7, 0x4d1b, 0x5d61, 0x643d, 0x716a, 0x2e71, - 0x3375, 0x3d50, 0x4b04, 0x4feb, 0x65cd, 0x662d, 0x69a7, 0x3229, - 0x340f, 0x3c65, 0x474e, 0x48a8, 0x5406, 0x5483, - /* 0x14E21..0x14E7E */ - 0x55e2, 0x68cf, 0x68e1, 0x71cc, 0x76e2, 0x7678, 0x3f8b, 0x5387, - 0x5acb, 0x644e, 0x43a0, 0x5565, 0x3289, 0x4d41, 0x4e9c, 0x5409, - 0x5559, 0x586b, 0x5c92, 0x7686, 0x5adc, 0x7f8d, 0x2fb6, 0x416e, - 0x45c5, 0x665c, 0x2e86, 0x2eae, 0x30da, 0x2e21, 0x31cc, 0x3bee, - 0x4599, 0x4881, 0x4dbc, 0x531f, 0x5642, 0x57ad, 0x5a1c, 0x5ce7, - 0x626f, 0x6ad2, 0x707c, 0x71cf, 0x7675, 0x7818, 0x329b, 0x5dd1, - 0x302b, 0x3398, 0x4797, 0x4dcb, 0x51d0, 0x5433, 0x61e8, 0x6f2a, - 0x76a3, 0x7c57, 0x7e9f, 0x5460, 0x3841, 0x4d99, 0x5d2f, 0x785e, - 0x2ee4, 0x2f36, 0x2f8b, 0x31b7, 0x32b1, 0x3dba, 0x401c, 0x53b2, - 0x593c, 0x62d3, 0x7234, 0x76b7, 0x76f6, 0x770a, 0x7e97, 0x7f62, - 0x46a6, 0x4b74, 0x3217, 0x32a3, 0x50c8, 0x68c2, 0x3ec9, 0x404b, - 0x4190, 0x4f23, 0x5149, 0x5c3e, 0x5df4, 0x606f, - /* 0x14F21..0x14F7E */ - 0x64ee, 0x7023, 0x732c, 0x3442, 0x7b6f, 0x4ad3, 0x5089, 0x6cc2, - 0x6def, 0x7732, 0x32b4, 0x3a41, 0x3eca, 0x3f04, 0x4717, 0x497c, - 0x4994, 0x4d6a, 0x4f0f, 0x5262, 0x52fc, 0x5bed, 0x6001, 0x607e, - 0x674b, 0x70ce, 0x316d, 0x7e93, 0x5984, 0x608b, 0x7332, 0x6ad6, - 0x302d, 0x348c, 0x6a71, 0x4b6a, 0x6cc4, 0x6107, 0x40d1, 0x47a0, - 0x7df2, 0x2e99, 0x2e98, 0x7c10, 0x6a6b, 0x65c1, 0x6568, 0x4900, - 0x4e7e, 0x5897, 0x6155, 0x8e9f, 0x3b41, 0x3b56, 0x3b7d, 0x3b93, - 0x3bd8, 0x3bec, 0x3c12, 0x3c1e, 0x3c23, 0x3c2b, 0x178d, 0x3c62, - 0x813b, 0x813c, 0x96b4, 0x3c7a, 0x3c8f, 0x3c9f, 0x3ca3, 0x3caa, - 0x3cba, 0x3ccb, 0x3cd0, 0x3cd2, 0x3cf4, 0x9c34, 0x17e2, 0x3d0d, - 0x3d27, 0x8111, 0x3d46, 0x3d47, 0x3d53, 0x3d4a, 0x3d6d, 0x3d81, - 0x3da0, 0x3da4, 0x3da7, 0x3db8, 0x3dcb, 0x341e, - /* 0x15021..0x1507E */ - 0x3f0c, 0x2e10, 0x2e15, 0x2e2a, 0x2e31, 0x2e36, 0x2e3c, 0x2e3f, - 0x2e42, 0x2e56, 0x2e58, 0x2e82, 0x2e85, 0x6c6b, 0x2e8a, 0x6212, - 0x3f0d, 0x2e8e, 0x2e9e, 0x2e9f, 0x2ea0, 0x2ea2, 0x2eb0, 0x2eb3, - 0x2eb6, 0x2ece, 0x2ecd, 0x2ec4, 0x2ec6, 0x2ec2, 0x2ed7, 0x2ede, - 0x2eed, 0x2edf, 0x2ef7, 0x2f09, 0x2f5a, 0x2f30, 0x2f5b, 0x2f5d, - 0x2f57, 0x2f47, 0x2f76, 0x2f88, 0x2f8f, 0x2f98, 0x2f7b, 0x2f69, - 0x2f70, 0x2f91, 0x2f6f, 0x2f86, 0x2f96, 0x3118, 0x2fd4, 0x2fdf, - 0x2fce, 0x2fd8, 0x2fdb, 0x2fd1, 0x2fda, 0x2fd0, 0x2fe4, 0x2fe5, - 0x301a, 0x3028, 0x3014, 0x302a, 0x3025, 0x3005, 0x2f1c, 0x2ff6, - 0x3021, 0x3029, 0x302c, 0x2ffe, 0x2fef, 0x3011, 0x3006, 0x3043, - 0x3047, 0x4703, 0x3055, 0x3050, 0x3048, 0x305a, 0x3056, 0x306c, - 0x3078, 0x3080, 0x309a, 0x3085, 0x30b4, 0x30b2, - /* 0x15121..0x1517E */ - 0x30c9, 0x30ca, 0x30b3, 0x30c2, 0x30d6, 0x30de, 0x30e5, 0x30ed, - 0x30e3, 0x30ee, 0x30f9, 0x30f5, 0x3109, 0x3101, 0x3102, 0x3116, - 0x3115, 0x3114, 0x311a, 0x3121, 0x313a, 0x3137, 0x313c, 0x313b, - 0x313f, 0x3140, 0x3152, 0x314c, 0x3154, 0x3162, 0x5af8, 0x3169, - 0x316a, 0x316e, 0x3180, 0x3182, 0x36d8, 0x318c, 0x3189, 0x318f, - 0x3191, 0x3193, 0x3195, 0x3196, 0x31a4, 0x31a6, 0x31a2, 0x31a9, - 0x31aa, 0x31ab, 0x31b3, 0x31b1, 0x31b2, 0x31b0, 0x31b5, 0x31bd, - 0x31c5, 0x31c9, 0x31db, 0x31e0, 0x6655, 0x31e9, 0x31ed, 0x31f0, - 0x31f5, 0x31fe, 0x3204, 0x320b, 0x3214, 0x320e, 0x3227, 0x322a, - 0x322e, 0x3233, 0x3239, 0x324f, 0x3244, 0x324b, 0x324c, 0x325e, - 0x3254, 0x326a, 0x3274, 0x3269, 0x3273, 0x327f, 0x327d, 0x328d, - 0x3294, 0x3292, 0x3271, 0x3288, 0x3291, 0x6fa8, - /* 0x15221..0x1527E */ - 0x6fa7, 0x32ac, 0x32ad, 0x32bc, 0x32b5, 0x32c1, 0x32cd, 0x32d7, - 0x32de, 0x32e3, 0x32e6, 0x78ed, 0x32e0, 0x32f3, 0x32f5, 0x32f8, - 0x32f9, 0x3306, 0x3308, 0x5538, 0x330d, 0x3310, 0x330f, 0x3315, - 0x331a, 0x3323, 0x332f, 0x3331, 0x3333, 0x3338, 0x3340, 0x3346, - 0x3345, 0x2e17, 0x3349, 0x334d, 0x31d6, 0x335e, 0x3369, 0x336e, - 0x3918, 0x337b, 0x3377, 0x3382, 0x3396, 0x33a0, 0x33a6, 0x33a5, - 0x33ae, 0x33b0, 0x33b6, 0x33c3, 0x5c12, 0x76d9, 0x33df, 0x46fc, - 0x51ee, 0x33ee, 0x33e8, 0x33ed, 0x33fa, 0x3401, 0x343d, 0x3440, - 0x342c, 0x342d, 0x343c, 0x342e, 0x3436, 0x3429, 0x341d, 0x344e, - 0x348f, 0x3475, 0x348e, 0x345f, 0x3471, 0x3477, 0x3470, 0x3492, - 0x347b, 0x3480, 0x3476, 0x3484, 0x3490, 0x3486, 0x34c7, 0x34a2, - 0x34b8, 0x34a5, 0x34ac, 0x34c4, 0x34c8, 0x34a8, - /* 0x15321..0x1537E */ - 0x34ab, 0x34c2, 0x34a4, 0x34be, 0x34bc, 0x34d8, 0x34e5, 0x34e6, - 0x350f, 0x3514, 0x34fd, 0x34ee, 0x34ed, 0x34fa, 0x34e2, 0x3539, - 0x3540, 0x3563, 0x354c, 0x352e, 0x355c, 0x3545, 0x3556, 0x3557, - 0x3538, 0x3533, 0x355d, 0x3599, 0x3580, 0x34af, 0x358a, 0x359f, - 0x357b, 0x357e, 0x3598, 0x359e, 0x35ae, 0x357c, 0x3583, 0x35a9, - 0x3587, 0x35a8, 0x35da, 0x35c5, 0x35df, 0x35c4, 0x35dc, 0x35e4, - 0x35d4, 0x3614, 0x35f7, 0x3616, 0x35fe, 0x35fd, 0x361b, 0x35f9, - 0x364e, 0x3650, 0x51df, 0x3634, 0x3636, 0x3632, 0x3638, 0x366b, - 0x3664, 0x362f, 0x366c, 0x366a, 0x3686, 0x3680, 0x368a, 0x36a0, - 0x3694, 0x368f, 0x36a5, 0x36ae, 0x36b6, 0x36b4, 0x36c2, 0x36bc, - 0x36c1, 0x36c3, 0x36c0, 0x36c8, 0x36ce, 0x36d1, 0x36d3, 0x36d7, - 0x36ee, 0x36f9, 0x3700, 0x36ff, 0x3704, 0x3709, - /* 0x15421..0x1547E */ - 0x3708, 0x370b, 0x370d, 0x3713, 0x3718, 0x3716, 0x35c7, 0x371c, - 0x3726, 0x3737, 0x3738, 0x374e, 0x373b, 0x3740, 0x374f, 0x3769, - 0x37c0, 0x3788, 0x3761, 0x377f, 0x3789, 0x3793, 0x37a0, 0x37b3, - 0x37a4, 0x37aa, 0x37b0, 0x37c3, 0x37c6, 0x37d4, 0x37d2, 0x37d3, - 0x380a, 0x37d6, 0x37e3, 0x380b, 0x3819, 0x381d, 0x3872, 0x3821, - 0x3862, 0x384b, 0x3870, 0x4bc0, 0x3852, 0x383d, 0x3879, 0x3885, - 0x38b9, 0x389f, 0x38ab, 0x38ba, 0x38de, 0x38bb, 0x38b8, 0x38ae, - 0x38c5, 0x38d3, 0x38d1, 0x38d7, 0x38d9, 0x38d8, 0x38e5, 0x38dc, - 0x38e4, 0x38df, 0x38ef, 0x38fa, 0x38f9, 0x38fb, 0x38fc, 0x38fd, - 0x3902, 0x390a, 0x3910, 0x391b, 0x48a6, 0x3925, 0x392c, 0x392d, - 0x3932, 0x3938, 0x393e, 0x5ad2, 0x3955, 0x3950, 0x394e, 0x395a, - 0x3958, 0x3962, 0x3960, 0x3967, 0x396c, 0x3969, - /* 0x15521..0x1557E */ - 0x3978, 0x3981, 0x399d, 0x2f5e, 0x2fab, 0x39a3, 0x39b2, 0x39c6, - 0x39e8, 0x39dc, 0x398d, 0x39d9, 0x39da, 0x3a25, 0x3a1f, 0x3a11, - 0x3a1c, 0x3a09, 0x3a1a, 0x3a40, 0x3a6c, 0x3a49, 0x3a35, 0x3a36, - 0x3a62, 0x3a6a, 0x3a9a, 0x3abc, 0x3abe, 0x3acb, 0x3ac2, 0x3abd, - 0x3ae3, 0x3ad7, 0x3ae6, 0x3ae9, 0x3ad6, 0x3afa, 0x3afb, 0x3b0c, - 0x3b0b, 0x3b16, 0x3b32, 0x3ad0, 0x3b2a, 0x3b36, 0x3b3e, 0x3b43, - 0x3b45, 0x3b40, 0x3b51, 0x3b55, 0x3b5a, 0x3b5b, 0x3b65, 0x3b69, - 0x3b70, 0x3b73, 0x3b75, 0x3b78, 0x4588, 0x3b7a, 0x3b80, 0x3b83, - 0x3ba6, 0x3bb8, 0x3bc3, 0x3bc7, 0x3bc9, 0x3bd4, 0x3bd0, 0x3be4, - 0x3be6, 0x3be2, 0x3bde, 0x3be5, 0x3beb, 0x3bf0, 0x3bf6, 0x3bf3, - 0x3c05, 0x3c07, 0x3c08, 0x3c0d, 0x3c13, 0x3c20, 0x3c22, 0x3c28, - 0x3c38, 0x3c39, 0x3c41, 0x3c46, 0x3c4e, 0x3c53, - /* 0x15621..0x1567E */ - 0x3c50, 0x3c4f, 0x3b71, 0x3c6c, 0x3c6e, 0x2e62, 0x3c76, 0x3c79, - 0x3c8c, 0x3c91, 0x3c94, 0x399b, 0x3cab, 0x3cbb, 0x3cb6, 0x3cbc, - 0x3cb7, 0x3cc5, 0x3cbe, 0x3cc7, 0x3cd9, 0x3ce9, 0x3cfd, 0x3cfa, - 0x3ced, 0x3d8c, 0x3cea, 0x3d0b, 0x3d15, 0x3d17, 0x3d5c, 0x3d1f, - 0x3d1b, 0x3d11, 0x3d14, 0x3d22, 0x3d1a, 0x3d19, 0x3d18, 0x3d4c, - 0x3d52, 0x3d4e, 0x3d4b, 0x3d6c, 0x3d73, 0x3d76, 0x3d87, 0x3d84, - 0x3d82, 0x3da2, 0x3d9d, 0x3dac, 0x3dae, 0x3dbd, 0x3d90, 0x3db7, - 0x3dbc, 0x3dc9, 0x3dcd, 0x3dd3, 0x3dd2, 0x3dd6, 0x3ddb, 0x3deb, - 0x3df2, 0x3df5, 0x3e0b, 0x3e1a, 0x3e19, 0x3e11, 0x3e1b, 0x3e36, - 0x3e37, 0x3e44, 0x3e43, 0x3e40, 0x3e4e, 0x3e57, 0x3e54, 0x3e5f, - 0x3e62, 0x3e64, 0x3e47, 0x3e75, 0x3e76, 0x3e7a, 0x7ebc, 0x3e7f, - 0x3ea0, 0x3ec1, 0x3ec2, 0x3ec8, 0x3ed0, 0x3ecf, - /* 0x15721..0x1577E */ - 0x3ed6, 0x3ee3, 0x3edd, 0x3eda, 0x3edb, 0x3ee2, 0x3ee1, 0x3ee8, - 0x3ee9, 0x3eec, 0x3ef1, 0x3ef3, 0x3ef0, 0x3ef4, 0x3ef8, 0x3efe, - 0x3f03, 0x3f09, 0x3f5d, 0x3f5c, 0x3f0b, 0x3f11, 0x3f16, 0x3f29, - 0x3f2d, 0x3f38, 0x3f41, 0x3f48, 0x3f4c, 0x3f4e, 0x3f2f, 0x3f51, - 0x3f56, 0x3f57, 0x3f59, 0x3f61, 0x3f6d, 0x3f73, 0x3f77, 0x3f83, - 0x3f82, 0x3f7f, 0x3f8a, 0x3f88, 0x3f91, 0x3f87, 0x3f9e, 0x3f99, - 0x3f98, 0x3fa0, 0x3fa8, 0x3fad, 0x3fbc, 0x3fd6, 0x3ffb, 0x3fe4, - 0x3ff8, 0x3ff1, 0x3fdd, 0x40b3, 0x3fff, 0x4021, 0x4060, 0x4019, - 0x4010, 0x4029, 0x400e, 0x4031, 0x401b, 0x4015, 0x402b, 0x4026, - 0x400f, 0x403a, 0x405a, 0x4041, 0x406a, 0x4077, 0x405f, 0x404a, - 0x4046, 0x404d, 0x4063, 0x4043, 0x4064, 0x4042, 0x406c, 0x406b, - 0x4059, 0x4081, 0x408d, 0x40e7, 0x4083, 0x409a, - /* 0x15821..0x1587E */ - 0x4084, 0x409b, 0x4096, 0x4097, 0x4092, 0x40a7, 0x408b, 0x40e1, - 0x40b8, 0x40e0, 0x40d3, 0x40b4, 0x3ff0, 0x40bd, 0x40c6, 0x40b5, - 0x40d8, 0x414d, 0x4115, 0x4106, 0x40f6, 0x40f7, 0x4100, 0x40f4, - 0x40fa, 0x4103, 0x4121, 0x40fb, 0x40f1, 0x410d, 0x410e, 0x4147, - 0x413e, 0x4128, 0x4127, 0x414a, 0x413f, 0x413c, 0x412c, 0x4134, - 0x413d, 0x4142, 0x4144, 0x4173, 0x4177, 0x4158, 0x4159, 0x415a, - 0x416b, 0x4174, 0x416f, 0x4165, 0x4171, 0x415f, 0x415d, 0x4153, - 0x4175, 0x4199, 0x4196, 0x4187, 0x41ac, 0x4194, 0x419a, 0x418a, - 0x4191, 0x41ab, 0x41ae, 0x41cc, 0x41ca, 0x41c9, 0x41f7, 0x41c8, - 0x41c3, 0x41c6, 0x41ba, 0x41cb, 0x5f79, 0x41cd, 0x41e6, 0x41e3, - 0x41f6, 0x41fa, 0x41f4, 0x41ff, 0x41fd, 0x41fc, 0x41fe, 0x4200, - 0x4208, 0x4209, 0x420d, 0x420c, 0x4214, 0x421b, - /* 0x15921..0x1597E */ - 0x421e, 0x4221, 0x422a, 0x422e, 0x4230, 0x4232, 0x4233, 0x4241, - 0x424e, 0x425e, 0x4263, 0x425b, 0x4260, 0x4268, 0x427c, 0x4282, - 0x4289, 0x427e, 0x4292, 0x4293, 0x4296, 0x42d4, 0x4283, 0x4294, - 0x42d7, 0x42d1, 0x42bb, 0x42cf, 0x42ff, 0x42c6, 0x44d4, 0x42c8, - 0x42dc, 0x42cc, 0x42ca, 0x42c2, 0x42c7, 0x429b, 0x42c9, 0x430c, - 0x42ee, 0x42f1, 0x4327, 0x4302, 0x4308, 0x42ef, 0x42f5, 0x4350, - 0x433e, 0x434d, 0x441c, 0x434f, 0x4396, 0x438e, 0x4380, 0x43ab, - 0x4376, 0x43a3, 0x438f, 0x4389, 0x439f, 0x43b5, 0x436b, 0x4369, - 0x43be, 0x43e9, 0x43c0, 0x43c6, 0x43e3, 0x43c9, 0x43d2, 0x43f6, - 0x43c4, 0x4416, 0x4434, 0x4406, 0x4413, 0x4426, 0x4436, 0x451d, - 0x4417, 0x4428, 0x440f, 0x4467, 0x446f, 0x4476, 0x444e, 0x452a, - 0x4495, 0x4493, 0x44a5, 0x44a9, 0x4488, 0x44bc, - /* 0x15A21..0x15A7E */ - 0x44da, 0x44d2, 0x44c5, 0x44c7, 0x44bb, 0x44d8, 0x44c2, 0x44f1, - 0x44e7, 0x6209, 0x44e0, 0x44e1, 0x42ac, 0x44e3, 0x44ef, 0x452c, - 0x44f6, 0x44f4, 0x44f2, 0x44fa, 0x4500, 0x44fd, 0x4518, 0x451c, - 0x4505, 0x4524, 0x4523, 0x452b, 0x4534, 0x4535, 0x4537, 0x4536, - 0x4538, 0x554b, 0x4548, 0x4556, 0x4555, 0x454d, 0x4558, 0x455e, - 0x455d, 0x4572, 0x4578, 0x4582, 0x4583, 0x6b8a, 0x459b, 0x459f, - 0x45ab, 0x45b7, 0x45c3, 0x45c6, 0x45c1, 0x45c4, 0x45cc, 0x45d2, - 0x45db, 0x45d9, 0x45e0, 0x45e1, 0x45f1, 0x4772, 0x460a, 0x4603, - 0x45fb, 0x4773, 0x4635, 0x4636, 0x4634, 0x461c, 0x464f, 0x4644, - 0x4649, 0x4641, 0x465e, 0x465d, 0x4664, 0x4667, 0x4668, 0x465f, - 0x4662, 0x4670, 0x4683, 0x4688, 0x468e, 0x4689, 0x4684, 0x4698, - 0x469d, 0x46c1, 0x46b9, 0x46c9, 0x46be, 0x46bc, - /* 0x15B21..0x15B7E */ - 0x46c4, 0x46b8, 0x46d6, 0x46da, 0x46e0, 0x463f, 0x46e6, 0x46e9, - 0x46f0, 0x46f5, 0x46f7, 0x470f, 0x4716, 0x471e, 0x4726, 0x4727, - 0x7738, 0x472e, 0x473f, 0x4736, 0x4741, 0x4738, 0x4737, 0x4746, - 0x475e, 0x4760, 0x4759, 0x4763, 0x4764, 0x4789, 0x4770, 0x47a9, - 0x477c, 0x476a, 0x478c, 0x478b, 0x47a6, 0x47a1, 0x4785, 0x47b7, - 0x47ef, 0x47b4, 0x47ec, 0x47b3, 0x47e9, 0x47b8, 0x47e4, 0x47de, - 0x47dd, 0x47e2, 0x47ee, 0x47b9, 0x47ce, 0x47c6, 0x47e7, 0x4a9c, - 0x481e, 0x4846, 0x4829, 0x4840, 0x484d, 0x4832, 0x484e, 0x48b3, - 0x482b, 0x4859, 0x4863, 0x4877, 0x487f, 0x489f, 0x488f, 0x48ad, - 0x4894, 0x489d, 0x489b, 0x4883, 0x4aae, 0x48b9, 0x4874, 0x48b5, - 0x48a0, 0x48ba, 0x490f, 0x488d, 0x487e, 0x4901, 0x48ca, 0x4908, - 0x48d8, 0x4922, 0x4926, 0x48e1, 0x490c, 0x48cd, - /* 0x15C21..0x15C7E */ - 0x48d4, 0x48e7, 0x48d5, 0x4936, 0x4912, 0x4904, 0x48d7, 0x48e3, - 0x4925, 0x48f9, 0x48e0, 0x48ef, 0x4928, 0x492a, 0x491a, 0x4923, - 0x4921, 0x48c6, 0x4979, 0x4977, 0x495c, 0x4978, 0x496b, 0x4954, - 0x497e, 0x496e, 0x4939, 0x4974, 0x493d, 0x4959, 0x4930, 0x4961, - 0x495e, 0x495d, 0x4981, 0x496a, 0x49b2, 0x49ae, 0x49d0, 0x49bf, - 0x49c1, 0x49d3, 0x49be, 0x49ce, 0x3be8, 0x49ca, 0x49dd, 0x49bb, - 0x49c3, 0x49a7, 0x4a2e, 0x4991, 0x49a0, 0x499c, 0x4995, 0x49b4, - 0x49de, 0x49e8, 0x4a02, 0x4a1b, 0x49ff, 0x4b0a, 0x49f9, 0x49f2, - 0x49e7, 0x4a05, 0x49b1, 0x4a1e, 0x49ed, 0x4a14, 0x49eb, 0x4a0a, - 0x4a12, 0x4ac1, 0x4a23, 0x4a13, 0x4a44, 0x4a0c, 0x4a72, 0x4a36, - 0x4a78, 0x4a47, 0x4a62, 0x4a59, 0x4a66, 0x4a48, 0x4a38, 0x4a22, - 0x4a90, 0x4a8d, 0x4aa0, 0x4a84, 0x4aa2, 0x4aa3, - /* 0x15D21..0x15D7E */ - 0x4a97, 0x6617, 0x4abb, 0x4ac3, 0x4ac2, 0x4ab8, 0x4ab3, 0x4aac, - 0x4ade, 0x4ad1, 0x4adf, 0x4aaa, 0x4ada, 0x4aea, 0x4afb, 0x4b05, - 0x6616, 0x4afa, 0x4b12, 0x4b16, 0x7b31, 0x4b1f, 0x4b38, 0x4b37, - 0x56dc, 0x4b39, 0x78ee, 0x4b47, 0x4b43, 0x4b49, 0x4b50, 0x4b59, - 0x4b54, 0x4b5b, 0x4b5f, 0x4b61, 0x4b78, 0x4b79, 0x4b7f, 0x4b80, - 0x4b84, 0x4b83, 0x4b8d, 0x4b98, 0x4b95, 0x4b9e, 0x4ba4, 0x4baa, - 0x4bab, 0x4baf, 0x4bb2, 0x4bb1, 0x4bb3, 0x4bb7, 0x4bbc, 0x4bc6, - 0x4bcb, 0x4bd3, 0x4bdf, 0x4bec, 0x4beb, 0x4bf3, 0x4bef, 0x7ebe, - 0x4c08, 0x4c13, 0x4c14, 0x4c1b, 0x4c24, 0x4c23, 0x4c5e, 0x4c55, - 0x4c62, 0x4c6a, 0x4c82, 0x4c8d, 0x4c9a, 0x4c81, 0x4c9b, 0x4c7e, - 0x4c68, 0x4c73, 0x4c92, 0x4c90, 0x4cc4, 0x4cf1, 0x4cd3, 0x4cbd, - 0x4cd7, 0x4cc5, 0x4cdd, 0x4cae, 0x4cb1, 0x4cbe, - /* 0x15E21..0x15E7E */ - 0x4cba, 0x4cdb, 0x4cef, 0x4cd9, 0x4cea, 0x4d1f, 0x684d, 0x4d36, - 0x4d2b, 0x4d3d, 0x4d38, 0x4d19, 0x4d35, 0x4d33, 0x4d12, 0x4d0c, - 0x4d63, 0x4d93, 0x4d64, 0x4d5a, 0x4d79, 0x4d59, 0x4d8e, 0x4d95, - 0x4fe4, 0x4d85, 0x4df9, 0x4e15, 0x4e0a, 0x4db5, 0x4dc7, 0x4de6, - 0x4db8, 0x4dc6, 0x4dec, 0x4dde, 0x4dcc, 0x4de8, 0x4dd2, 0x4dc5, - 0x4dfa, 0x4dd9, 0x4de4, 0x4dd5, 0x4dea, 0x4dee, 0x4e2d, 0x4e6e, - 0x4e2e, 0x4e19, 0x4e72, 0x4e5f, 0x4e3e, 0x4e23, 0x4e6b, 0x4e2b, - 0x4e76, 0x4e4d, 0x4e1f, 0x4e43, 0x4e3a, 0x4e4e, 0x4e24, 0x4eff, - 0x4e1d, 0x4e38, 0x4e82, 0x4eaa, 0x4e98, 0x4ec9, 0x4eb7, 0x4ed3, - 0x4ebd, 0x4eaf, 0x4ec4, 0x4eb2, 0x4ed4, 0x4ed5, 0x4e8f, 0x4ea5, - 0x4ec2, 0x4e9f, 0x4f41, 0x4f11, 0x504c, 0x4eec, 0x4ef8, 0x4efe, - 0x4f3f, 0x4ef2, 0x4f31, 0x4eef, 0x4f32, 0x4ecc, - /* 0x15F21..0x15F7E */ - 0x4f3e, 0x4f13, 0x4ef7, 0x4f86, 0x4f7a, 0x4f78, 0x4f81, 0x4f80, - 0x4f6f, 0x4f5b, 0x4ff3, 0x4f6d, 0x4f82, 0x4f7c, 0x4f58, 0x4f8e, - 0x4f91, 0x4fc2, 0x4f66, 0x4fb3, 0x4fa3, 0x4fa1, 0x4fa4, 0x4fb9, - 0x4fc6, 0x4faa, 0x4fdf, 0x4fd5, 0x4fec, 0x4fd4, 0x4fd8, 0x4ff1, - 0x4fee, 0x4fdb, 0x5009, 0x500b, 0x4ffa, 0x5011, 0x5001, 0x500f, - 0x4ffe, 0x501b, 0x501a, 0x4f74, 0x501d, 0x5018, 0x501f, 0x5030, - 0x503e, 0x5032, 0x5051, 0x5063, 0x5099, 0x5092, 0x50af, 0x50f1, - 0x50ac, 0x50b8, 0x50b3, 0x50ae, 0x50df, 0x50cb, 0x50dd, 0x50d9, - 0x5109, 0x50fd, 0x511c, 0x5119, 0x5165, 0x5155, 0x5188, 0x5166, - 0x5162, 0x514c, 0x5156, 0x516c, 0x518f, 0x51fb, 0x5184, 0x5195, - 0x51a8, 0x51ac, 0x51d7, 0x51b9, 0x51be, 0x51d2, 0x51c9, 0x51d4, - 0x51ce, 0x51e0, 0x51ec, 0x51e7, 0x51f5, 0x51fc, - /* 0x16021..0x1607E */ - 0x51f9, 0x51ff, 0x520d, 0x5210, 0x521b, 0x5228, 0x522d, 0x522c, - 0x5230, 0x5232, 0x523b, 0x523c, 0x523f, 0x5240, 0x5246, 0x524b, - 0x5258, 0x5274, 0x527e, 0x5282, 0x5281, 0x5287, 0x5292, 0x5296, - 0x52a2, 0x52a7, 0x52b9, 0x52b2, 0x52c3, 0x52c6, 0x52c4, 0x52ce, - 0x52d2, 0x52e2, 0x52e0, 0x52e1, 0x52f9, 0x52f7, 0x300f, 0x5317, - 0x530a, 0x531c, 0x5316, 0x531d, 0x5334, 0x532f, 0x5329, 0x5325, - 0x533e, 0x534e, 0x534f, 0x7ed8, 0x5357, 0x536a, 0x5368, 0x5370, - 0x5378, 0x5375, 0x537b, 0x537a, 0x53c8, 0x53b3, 0x53ce, 0x53bb, - 0x53c0, 0x53e5, 0x53ee, 0x53de, 0x54a2, 0x5405, 0x546f, 0x5425, - 0x53f8, 0x5432, 0x543a, 0x5455, 0x543f, 0x545f, 0x5459, 0x5441, - 0x545c, 0x5469, 0x5470, 0x5463, 0x546a, 0x5476, 0x547e, 0x548b, - 0x549e, 0x54a7, 0x54ca, 0x54cf, 0x54d4, 0x53f1, - /* 0x16121..0x1617E */ - 0x54e0, 0x54e3, 0x54e7, 0x54e9, 0x54ee, 0x54f2, 0x54f0, 0x54f1, - 0x54f8, 0x54f7, 0x5504, 0x5503, 0x5505, 0x550c, 0x550e, 0x550d, - 0x5515, 0x5513, 0x551e, 0x5526, 0x552c, 0x553c, 0x5544, 0x554d, - 0x554a, 0x5549, 0x555b, 0x5546, 0x555a, 0x5569, 0x5564, 0x5567, - 0x556b, 0x556d, 0x5578, 0x5576, 0x5586, 0x5587, 0x5574, 0x558a, - 0x5589, 0x5582, 0x5594, 0x559a, 0x559d, 0x55a5, 0x55a3, 0x55c2, - 0x55b3, 0x55c3, 0x55b5, 0x55bd, 0x55b8, 0x55bc, 0x55b1, 0x55cd, - 0x55ca, 0x55d2, 0x55d9, 0x55e3, 0x55de, 0x55fe, 0x55ff, 0x55fc, - 0x5601, 0x55f0, 0x55fa, 0x55f2, 0x55f3, 0x560b, 0x560d, 0x5609, - 0x561f, 0x5627, 0x5620, 0x5621, 0x5622, 0x5624, 0x5634, 0x5630, - 0x563b, 0x5647, 0x5648, 0x5646, 0x565c, 0x5658, 0x5661, 0x5662, - 0x5668, 0x5669, 0x566a, 0x5667, 0x566c, 0x5670, - /* 0x16221..0x1627E */ - 0x5672, 0x5676, 0x5678, 0x567c, 0x5680, 0x5683, 0x5688, 0x568b, - 0x568e, 0x5696, 0x5693, 0x5699, 0x569a, 0x56b0, 0x56b4, 0x56b8, - 0x56b9, 0x56ba, 0x56c2, 0x56cd, 0x56d6, 0x56d2, 0x56de, 0x56e1, - 0x56e5, 0x56e7, 0x56ea, 0x662f, 0x56fb, 0x5708, 0x5707, 0x5704, - 0x5729, 0x5724, 0x571e, 0x5725, 0x5726, 0x571b, 0x5737, 0x5738, - 0x5747, 0x575a, 0x5768, 0x576b, 0x575b, 0x5765, 0x577f, 0x577e, - 0x5779, 0x578e, 0x578b, 0x5791, 0x57a0, 0x579e, 0x57b0, 0x57b6, - 0x57b9, 0x57bf, 0x57bc, 0x57bd, 0x57bb, 0x57c7, 0x57cd, 0x57d7, - 0x57da, 0x57dc, 0x57e3, 0x57ee, 0x57fc, 0x580c, 0x5812, 0x5926, - 0x5820, 0x592a, 0x5845, 0x588e, 0x5874, 0x5886, 0x587c, 0x589a, - 0x588c, 0x58a3, 0x58b5, 0x58aa, 0x58af, 0x58d1, 0x58c6, 0x58cb, - 0x58d4, 0x58be, 0x58bc, 0x58c5, 0x58ca, 0x58ec, - /* 0x16321..0x1637E */ - 0x58e7, 0x58da, 0x58fd, 0x58f4, 0x5907, 0x5912, 0x5911, 0x5919, - 0x592c, 0x592b, 0x5940, 0x5960, 0x5957, 0x595f, 0x595a, 0x5955, - 0x5953, 0x597a, 0x597f, 0x598a, 0x599d, 0x59a7, 0x7f4b, 0x59aa, - 0x59ae, 0x59b3, 0x59b9, 0x59ba, 0x59c9, 0x59d5, 0x59e7, 0x59ec, - 0x59e1, 0x59e3, 0x5a08, 0x5a0d, 0x5a18, 0x5a19, 0x5a20, 0x5a1f, - 0x5980, 0x5a31, 0x5a3b, 0x5a3e, 0x5a37, 0x5a43, 0x5a57, 0x5a49, - 0x5a61, 0x5a62, 0x5a69, 0x7f9d, 0x5a70, 0x5a79, 0x5a7d, 0x5a88, - 0x5a97, 0x5a95, 0x5a98, 0x5a96, 0x5aa9, 0x5ac8, 0x5ab0, 0x5ab6, - 0x5ac5, 0x5ac4, 0x5abf, 0x7083, 0x5ac7, 0x5aca, 0x5acd, 0x5acf, - 0x5ad5, 0x5ad3, 0x5ad9, 0x5ada, 0x5add, 0x5ae1, 0x5ae2, 0x5ae6, - 0x5aed, 0x5af0, 0x5b02, 0x5b0f, 0x5b0a, 0x5b06, 0x5b33, 0x5b18, - 0x5b19, 0x5b1e, 0x5b35, 0x5b28, 0x5b36, 0x5b50, - /* 0x16421..0x1647E */ - 0x5b7a, 0x5b04, 0x5b4d, 0x5b0b, 0x5b4c, 0x5b45, 0x5b75, 0x5b65, - 0x5b74, 0x5b67, 0x5b70, 0x5b71, 0x5b6c, 0x5b6e, 0x5b9d, 0x5b98, - 0x5b9f, 0x5b8d, 0x5b9c, 0x5b9a, 0x5b8b, 0x5b92, 0x5b8f, 0x5b5d, - 0x5b99, 0x5bcb, 0x5bc1, 0x5bcc, 0x5bcf, 0x5bb4, 0x5bc6, 0x5bdd, - 0x5be9, 0x5c11, 0x5c14, 0x5be6, 0x5be5, 0x5c60, 0x5c00, 0x5c07, - 0x5c13, 0x5bf3, 0x5bf7, 0x5c17, 0x5c0d, 0x5bf6, 0x5c23, 0x5c27, - 0x5c2a, 0x5c1f, 0x5c37, 0x5c2b, 0x5c3d, 0x5c4c, 0x5c43, 0x5c54, - 0x5c4f, 0x5c40, 0x5c50, 0x5c58, 0x5c5f, 0x5c64, 0x5c56, 0x5c65, - 0x5c6c, 0x5c75, 0x5c83, 0x5c90, 0x5ca4, 0x5cad, 0x5ca2, 0x5cab, - 0x5ca1, 0x5ca8, 0x5cb3, 0x5cb2, 0x5cb1, 0x5cae, 0x5cb9, 0x5cbd, - 0x5cc0, 0x5cc5, 0x5cc2, 0x5cd8, 0x5cd2, 0x5cdc, 0x5ce2, 0x7b3b, - 0x5cef, 0x5cf2, 0x5cf4, 0x5cf6, 0x5cfa, 0x5d06, - /* 0x16521..0x1657E */ - 0x5d02, 0x5d1c, 0x5d15, 0x5d0a, 0x5d45, 0x5d4b, 0x5d2e, 0x5d32, - 0x5d3f, 0x5d35, 0x5d46, 0x5d73, 0x5d56, 0x5d4e, 0x5d72, 0x5d68, - 0x5d6e, 0x5d4f, 0x5d63, 0x5d93, 0x5d89, 0x5d5b, 0x5d8f, 0x5d7d, - 0x5d9b, 0x5dba, 0x5dae, 0x5da3, 0x5db5, 0x5dc7, 0x5dbd, 0x5dab, - 0x5e3d, 0x5da2, 0x5daf, 0x5ddc, 0x5db8, 0x5d9f, 0x5db0, 0x5dd8, - 0x5ddd, 0x5de4, 0x5dde, 0x5dfb, 0x5df2, 0x5de1, 0x5e05, 0x5e0a, - 0x5e23, 0x5e21, 0x5e12, 0x5e31, 0x5e1f, 0x5e09, 0x5e0b, 0x5e22, - 0x5e46, 0x5e66, 0x5e3b, 0x5e35, 0x5e39, 0x5e43, 0x5e37, 0x5e32, - 0x5e3a, 0x5e67, 0x5e5d, 0x5e56, 0x5e5e, 0x5e59, 0x5e5a, 0x5e79, - 0x5e6a, 0x5e69, 0x5e7c, 0x5e7b, 0x5e83, 0x5dd5, 0x5e7d, 0x6fae, - 0x5e7f, 0x5e88, 0x5e89, 0x5e8c, 0x5e92, 0x5e90, 0x5e93, 0x5e94, - 0x5e96, 0x5e8e, 0x5e9b, 0x5e9c, 0x5f38, 0x5f3a, - /* 0x16621..0x1667E */ - 0x5f45, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f50, 0x5f51, 0x5f55, 0x5f54, - 0x5f58, 0x5f5f, 0x5f60, 0x5f68, 0x5f69, 0x5f67, 0x5f78, 0x5f82, - 0x5f86, 0x5f83, 0x5f88, 0x5f87, 0x5f8c, 0x5f94, 0x5f9e, 0x5f9d, - 0x5f9a, 0x5fa3, 0x5faf, 0x5fb2, 0x5fb9, 0x5fae, 0x5fb6, 0x5fb8, - 0x6b71, 0x5fc5, 0x5fc6, 0x5fca, 0x5fd5, 0x5fd4, 0x5fe1, 0x5fe6, - 0x5fe9, 0x5ff3, 0x5ff9, 0x78dc, 0x6006, 0x6004, 0x600b, 0x6012, - 0x6018, 0x6019, 0x601c, 0x6021, 0x6028, 0x603f, 0x603b, 0x604a, - 0x6046, 0x6052, 0x6058, 0x605a, 0x605f, 0x6062, 0x6068, 0x6073, - 0x6072, 0x6070, 0x6076, 0x6079, 0x607d, 0x607f, 0x6084, 0x6086, - 0x6085, 0x609b, 0x6093, 0x609a, 0x60ad, 0x3190, 0x60ac, 0x60db, - 0x60e5, 0x60d9, 0x60dd, 0x60c4, 0x60da, 0x60d6, 0x6109, 0x60ef, - 0x60f1, 0x611b, 0x6129, 0x6123, 0x612f, 0x614b, - /* 0x16721..0x1677E */ - 0x768b, 0x6146, 0x613e, 0x6153, 0x6151, 0x60fc, 0x6171, 0x616e, - 0x6165, 0x6166, 0x6174, 0x6183, 0x6188, 0x618a, 0x6180, 0x6182, - 0x61a0, 0x6195, 0x61a4, 0x61a3, 0x615f, 0x6193, 0x61a9, 0x61b0, - 0x61b5, 0x61be, 0x61b8, 0x61bd, 0x61c0, 0x61c2, 0x61ba, 0x61c9, - 0x61cd, 0x61d1, 0x61d9, 0x61d8, 0x61c8, 0x61da, 0x61df, 0x61e0, - 0x61e7, 0x61fa, 0x61fb, 0x61fe, 0x6201, 0x6202, 0x6205, 0x6207, - 0x620a, 0x620d, 0x6210, 0x6216, 0x6229, 0x622b, 0x6238, 0x6233, - 0x6240, 0x6259, 0x6258, 0x625d, 0x625a, 0x625f, 0x6264, 0x6262, - 0x6268, 0x626a, 0x626b, 0x622e, 0x6271, 0x6277, 0x6278, 0x627e, - 0x628d, 0x6292, 0x62ab, 0x629f, 0x62bb, 0x62ac, 0x62e1, 0x62e3, - 0x62df, 0x62d2, 0x62f4, 0x62f3, 0x62fa, 0x6393, 0x6303, 0x62fb, - 0x62f9, 0x62de, 0x6306, 0x62dc, 0x6309, 0x62d9, - /* 0x16821..0x1687E */ - 0x6335, 0x6334, 0x6316, 0x6332, 0x6331, 0x6340, 0x6339, 0x6350, - 0x6345, 0x632f, 0x632b, 0x6317, 0x6318, 0x6385, 0x639a, 0x63aa, - 0x639f, 0x63a2, 0x6396, 0x6323, 0x638e, 0x6387, 0x638a, 0x637c, - 0x63b5, 0x6373, 0x6375, 0x63a0, 0x6389, 0x63a8, 0x63f4, 0x6413, - 0x63eb, 0x63ce, 0x63fd, 0x6403, 0x63d8, 0x640b, 0x63c1, 0x63f7, - 0x6407, 0x63e0, 0x63f2, 0x640d, 0x6422, 0x6420, 0x63bd, 0x6438, - 0x6506, 0x63fb, 0x646d, 0x642a, 0x643c, 0x655a, 0x6484, 0x6477, - 0x646b, 0x64ad, 0x646e, 0x6482, 0x6469, 0x6446, 0x642c, 0x646f, - 0x6479, 0x6435, 0x64ca, 0x6462, 0x64b9, 0x64bf, 0x649f, 0x64d9, - 0x64cd, 0x64bb, 0x64da, 0x64d0, 0x64c1, 0x64c6, 0x64d6, 0x64a1, - 0x6521, 0x64ff, 0x64f4, 0x6517, 0x6518, 0x652c, 0x651f, 0x6515, - 0x6514, 0x64fc, 0x6540, 0x6563, 0x6558, 0x6548, - /* 0x16921..0x1697E */ - 0x6541, 0x6602, 0x654b, 0x6555, 0x6580, 0x65a4, 0x6588, 0x6591, - 0x658a, 0x65a8, 0x656d, 0x6594, 0x659b, 0x65ea, 0x6587, 0x659c, - 0x6577, 0x657e, 0x6590, 0x65c9, 0x65ba, 0x65cf, 0x65b9, 0x65d0, - 0x65d5, 0x65dd, 0x65e5, 0x65dc, 0x65f9, 0x660a, 0x6613, 0x660b, - 0x65fe, 0x65fa, 0x6606, 0x6622, 0x661a, 0x6630, 0x663f, 0x664d, - 0x2e55, 0x6654, 0x665f, 0x6667, 0x6671, 0x6693, 0x66a3, 0x66a9, - 0x66aa, 0x668b, 0x668c, 0x66b6, 0x66af, 0x66c4, 0x66c6, 0x66b0, - 0x66c9, 0x6823, 0x66ab, 0x66d4, 0x66de, 0x66e9, 0x66ec, 0x66df, - 0x66db, 0x66ef, 0x6712, 0x6706, 0x6708, 0x6700, 0x6703, 0x66fb, - 0x6711, 0x6709, 0x670d, 0x66f9, 0x670a, 0x6734, 0x673f, 0x6737, - 0x673b, 0x6725, 0x6729, 0x671a, 0x6760, 0x675f, 0x6778, 0x674c, - 0x674e, 0x6774, 0x6757, 0x6768, 0x676e, 0x6759, - /* 0x16A21..0x16A7E */ - 0x6753, 0x6763, 0x676a, 0x6805, 0x67a2, 0x679f, 0x6782, 0x67af, - 0x67cb, 0x67bd, 0x67c0, 0x67d0, 0x76d6, 0x67ab, 0x67c4, 0x67b3, - 0x67c7, 0x67c6, 0x67bb, 0x67ef, 0x67f2, 0x67e0, 0x680f, 0x680d, - 0x67fe, 0x67f6, 0x67f7, 0x680e, 0x67d2, 0x6811, 0x6816, 0x6815, - 0x6822, 0x6821, 0x6831, 0x6836, 0x6839, 0x6827, 0x683b, 0x6844, - 0x6842, 0x6852, 0x6859, 0x685e, 0x6862, 0x686b, 0x6881, 0x687e, - 0x689e, 0x6875, 0x687d, 0x68b5, 0x6872, 0x6882, 0x6897, 0x6892, - 0x68ae, 0x6899, 0x68a2, 0x688d, 0x68a4, 0x68b0, 0x68bf, 0x68b1, - 0x68c3, 0x68c4, 0x68d4, 0x68d8, 0x68d9, 0x68dd, 0x68f9, 0x6902, - 0x68fc, 0x68f4, 0x68e8, 0x68f2, 0x6904, 0x690c, 0x690a, 0x6913, - 0x6943, 0x691e, 0x6925, 0x692a, 0x692b, 0x6941, 0x6944, 0x693b, - 0x6936, 0x6938, 0x694c, 0x691d, 0x6960, 0x695e, - /* 0x16B21..0x16B7E */ - 0x6966, 0x6964, 0x696d, 0x696a, 0x696f, 0x6974, 0x6977, 0x697e, - 0x6983, 0x6988, 0x698a, 0x6993, 0x6998, 0x69a1, 0x69a9, 0x69a6, - 0x69ac, 0x69af, 0x69b2, 0x69ba, 0x69bd, 0x69bf, 0x69c0, 0x69da, - 0x69dc, 0x69dd, 0x69e7, 0x69f4, 0x69f8, 0x6a03, 0x6a16, 0x6a10, - 0x6a0c, 0x6a1b, 0x6a1d, 0x6a25, 0x6a36, 0x6a41, 0x6a5b, 0x6a52, - 0x6a46, 0x6a48, 0x6a7c, 0x6a6d, 0x6a6c, 0x6a62, 0x6a85, 0x6a82, - 0x6a84, 0x6aa8, 0x6aa1, 0x6a91, 0x6aa5, 0x6aa6, 0x6a9a, 0x6aa3, - 0x6ac4, 0x6acd, 0x6ac2, 0x6ada, 0x6aeb, 0x6af3, 0x6ae7, 0x6ae4, - 0x6af1, 0x6b14, 0x6ae0, 0x6ae2, 0x6af7, 0x6ade, 0x6adb, 0x6b0c, - 0x6b07, 0x6b1a, 0x6ae1, 0x6b16, 0x6b10, 0x6b17, 0x6b20, 0x6b33, - 0x77ab, 0x6b26, 0x6b2b, 0x6b3e, 0x6b28, 0x6b41, 0x6b4c, 0x6b4f, - 0x6b4e, 0x6b49, 0x6b56, 0x6b5b, 0x6b5a, 0x6b6b, - /* 0x16C21..0x16C7E */ - 0x6b5f, 0x6b6c, 0x6b6f, 0x6b74, 0x6b7d, 0x6b80, 0x6b8c, 0x6b8e, - 0x6b92, 0x6b93, 0x6b96, 0x6b99, 0x6b9a, 0x6c3a, 0x6c41, 0x6c3f, - 0x6c48, 0x6c4c, 0x6c4e, 0x6c50, 0x6c55, 0x6c62, 0x6c6c, 0x6c78, - 0x6c7a, 0x6c82, 0x6c89, 0x6c85, 0x6c8a, 0x6c8d, 0x6c8e, 0x6c94, - 0x6c7c, 0x6c98, 0x421d, 0x6cad, 0x6caa, 0x6cbd, 0x6cb2, 0x6cb3, - 0x6cae, 0x6cb6, 0x6cc8, 0x6cc1, 0x6ce4, 0x6ce3, 0x6cda, 0x6cfd, - 0x6cfa, 0x6cfb, 0x6d04, 0x6d05, 0x6d0a, 0x6d07, 0x6d0f, 0x6d0d, - 0x6d10, 0x7f4e, 0x6d13, 0x6ccd, 0x6d14, 0x6d16, 0x6d67, 0x6d6d, - 0x6d71, 0x6d73, 0x6d81, 0x6d99, 0x6dc2, 0x6dbe, 0x6dba, 0x6dcf, - 0x6dda, 0x6dd6, 0x6dcc, 0x6ddb, 0x6dcb, 0x6dea, 0x6deb, 0x6ddf, - 0x6de3, 0x6dfc, 0x6e08, 0x6e09, 0x6dff, 0x6e1d, 0x6e1e, 0x6e10, - 0x6e1f, 0x6e42, 0x6e35, 0x6e30, 0x6e34, 0x6e4a, - /* 0x16D21..0x16D7E */ - 0x6e47, 0x6e49, 0x6e4c, 0x6e50, 0x6e48, 0x6e59, 0x6e64, 0x6e60, - 0x6e2a, 0x6e63, 0x6e55, 0x6e76, 0x6e72, 0x6e7c, 0x6e81, 0x6e87, - 0x6e85, 0x6e84, 0x6e8b, 0x6e8a, 0x6e93, 0x6e91, 0x6e94, 0x6e99, - 0x6eaa, 0x6ea1, 0x6eac, 0x6eb0, 0x6ec6, 0x6eb1, 0x6ebe, 0x6ec5, - 0x6ec8, 0x6ecb, 0x6edb, 0x6ee3, 0x6efc, 0x6efb, 0x6eeb, 0x6efe, - 0x6f0a, 0x6f05, 0x6f15, 0x6f12, 0x6f19, 0x6f13, 0x6f1c, 0x6f1f, - 0x6f1b, 0x6f0c, 0x6f26, 0x6f33, 0x6f3b, 0x6f39, 0x6f45, 0x6f42, - 0x6f3e, 0x6f4c, 0x6f49, 0x6f46, 0x6f4e, 0x6f57, 0x6f5c, 0x6f62, - 0x6f63, 0x6f64, 0x6f9c, 0x6f9f, 0x6fa3, 0x6fad, 0x6faf, 0x6fb7, - 0x6fda, 0x6fe5, 0x6fe2, 0x6fea, 0x6fef, 0x7087, 0x6ff4, 0x7005, - 0x6ff9, 0x6ffa, 0x7011, 0x7015, 0x7021, 0x700d, 0x701e, 0x7016, - 0x700b, 0x7027, 0x7036, 0x7035, 0x7039, 0x6ff8, - /* 0x16E21..0x16E7E */ - 0x704f, 0x7050, 0x7051, 0x7052, 0x700e, 0x7049, 0x703e, 0x7056, - 0x7058, 0x705e, 0x7068, 0x706f, 0x7076, 0x76a8, 0x7072, 0x7082, - 0x707d, 0x7081, 0x7080, 0x708a, 0x7089, 0x708f, 0x70a8, 0x70af, - 0x70b1, 0x70b5, 0x70e2, 0x70e4, 0x4248, 0x70db, 0x7102, 0x7112, - 0x7119, 0x7132, 0x7130, 0x714a, 0x7156, 0x7158, 0x7163, 0x7165, - 0x7169, 0x7173, 0x7172, 0x718b, 0x7189, 0x7182, 0x71a2, 0x71ab, - 0x71af, 0x71aa, 0x71b5, 0x71b4, 0x71ba, 0x71c0, 0x71c1, 0x71c9, - 0x71cb, 0x71d0, 0x71d6, 0x71df, 0x71e1, 0x71db, 0x71fc, 0x71f5, - 0x71f6, 0x721e, 0x71ff, 0x7214, 0x722c, 0x7215, 0x7211, 0x725e, - 0x7257, 0x7245, 0x7249, 0x7264, 0x7248, 0x7295, 0x723f, 0x724b, - 0x7250, 0x729c, 0x7296, 0x7293, 0x729b, 0x725a, 0x72cf, 0x72b9, - 0x72b7, 0x72e9, 0x730f, 0x72fa, 0x7344, 0x732e, - /* 0x16F21..0x16F7E */ - 0x7319, 0x7322, 0x731a, 0x7323, 0x733a, 0x7335, 0x733b, 0x735c, - 0x7360, 0x737c, 0x736e, 0x7356, 0x73b0, 0x73ac, 0x73ad, 0x7394, - 0x73b9, 0x73d6, 0x73d7, 0x73e8, 0x73e5, 0x73d8, 0x73c3, 0x73dd, - 0x73d0, 0x73c8, 0x73e4, 0x741a, 0x7414, 0x7413, 0x7403, 0x7407, - 0x7410, 0x7436, 0x742b, 0x7435, 0x7421, 0x743a, 0x7441, 0x7452, - 0x7444, 0x745b, 0x7460, 0x7462, 0x745e, 0x746a, 0x7229, 0x7470, - 0x7475, 0x7477, 0x747d, 0x745a, 0x747c, 0x747e, 0x7481, 0x747f, - 0x7582, 0x7587, 0x758a, 0x7594, 0x7596, 0x7598, 0x7599, 0x75a0, - 0x75a8, 0x75a7, 0x75ad, 0x75bc, 0x75bb, 0x75b9, 0x75be, 0x75ca, - 0x4ff6, 0x75c3, 0x75cd, 0x75cc, 0x75d5, 0x75d4, 0x75d6, 0x75dc, - 0x75e1, 0x75e5, 0x75e2, 0x7621, 0x7628, 0x762e, 0x762f, 0x7642, - 0x764c, 0x764f, 0x764b, 0x7677, 0x765c, 0x765e, - /* 0x17021..0x1707E */ - 0x765d, 0x765f, 0x7666, 0x7672, 0x766c, 0x768d, 0x7698, 0x7695, - 0x7697, 0x76aa, 0x76a7, 0x76b1, 0x76b2, 0x76b0, 0x76b4, 0x76b6, - 0x76b8, 0x76b9, 0x76ce, 0x76cb, 0x76c9, 0x76cd, 0x694d, 0x76dc, - 0x770d, 0x76d5, 0x76f9, 0x7704, 0x7706, 0x7708, 0x7713, 0x770e, - 0x7711, 0x770f, 0x7716, 0x7719, 0x7724, 0x772a, 0x7730, 0x7739, - 0x773d, 0x773e, 0x7744, 0x7746, 0x7748, 0x7742, 0x7749, 0x775c, - 0x7760, 0x7764, 0x7766, 0x7768, 0x32d2, 0x776b, 0x7771, 0x7779, - 0x7785, 0x777c, 0x7781, 0x777a, 0x7786, 0x778b, 0x778f, 0x7790, - 0x779c, 0x77a8, 0x77a6, 0x77a3, 0x77b3, 0x77b4, 0x77c3, 0x77c6, - 0x77c8, 0x77cb, 0x77dc, 0x77ed, 0x7f4f, 0x77f2, 0x5adf, 0x77f6, - 0x77f5, 0x780f, 0x780c, 0x7838, 0x7824, 0x7821, 0x7837, 0x783d, - 0x7846, 0x784f, 0x784b, 0x786b, 0x786f, 0x7870, - /* 0x17121..0x1717E */ - 0x7871, 0x7874, 0x7873, 0x78aa, 0x78af, 0x78b1, 0x78b6, 0x78c4, - 0x78c3, 0x78c6, 0x78e9, 0x78eb, 0x7903, 0x7909, 0x7912, 0x7914, - 0x7918, 0x7921, 0x791d, 0x791e, 0x7924, 0x7920, 0x792c, 0x792e, - 0x793d, 0x793e, 0x7942, 0x7949, 0x7945, 0x7950, 0x794b, 0x7951, - 0x7952, 0x794c, 0x7955, 0x7997, 0x7998, 0x79a5, 0x79ad, 0x79ae, - 0x79bc, 0x79df, 0x79db, 0x79dd, 0x79d8, 0x79d1, 0x79ed, 0x79ee, - 0x79f1, 0x79f2, 0x79fb, 0x79f8, 0x7a01, 0x7a0f, 0x7a05, 0x79e2, - 0x7a19, 0x7a2b, 0x7a37, 0x7a45, 0x7a42, 0x7a40, 0x7a43, 0x7a3e, - 0x7a55, 0x7a4d, 0x7a5b, 0x7a57, 0x7a5f, 0x7a62, 0x7a65, 0x7a64, - 0x7a69, 0x7a6b, 0x7a6a, 0x7aad, 0x7ab0, 0x7abc, 0x7ac0, 0x7acf, - 0x7ad1, 0x7ad3, 0x7ad4, 0x7ade, 0x7adf, 0x7ae2, 0x7ae3, 0x7ae6, - 0x7aef, 0x7aeb, 0x7aee, 0x7af4, 0x7af1, 0x7af7, - /* 0x17221..0x1727E */ - 0x7afb, 0x7b06, 0x7b18, 0x7b1a, 0x7b1f, 0x7b22, 0x7b23, 0x7b25, - 0x7b27, 0x7b28, 0x7b29, 0x7b2a, 0x7b2e, 0x7b2f, 0x7b32, 0x7b44, - 0x7b43, 0x7b4f, 0x7b4d, 0x7b4e, 0x7b51, 0x7b58, 0x7b74, 0x7b93, - 0x7b83, 0x7b91, 0x7b96, 0x7b97, 0x7b9f, 0x7ba0, 0x7ba8, 0x7bb4, - 0x7bc0, 0x7bca, 0x7bb9, 0x7bc6, 0x7bcf, 0x7bd1, 0x7bd2, 0x7be3, - 0x7be2, 0x7be4, 0x7bd4, 0x7be1, 0x7c3a, 0x7bf2, 0x7bf1, 0x7bf0, - 0x7c15, 0x7c14, 0x7c09, 0x7c13, 0x7c0c, 0x7c06, 0x7c08, 0x7c12, - 0x7c0a, 0x7c04, 0x7c2e, 0x7c1b, 0x7c25, 0x7c24, 0x7c21, 0x7c30, - 0x7c47, 0x7c32, 0x7c46, 0x7c3e, 0x7c5a, 0x7c60, 0x7c67, 0x7c76, - 0x7c78, 0x7ce7, 0x7cec, 0x7cf0, 0x7d09, 0x7d08, 0x7ceb, 0x7d03, - 0x7d06, 0x7d2a, 0x7d26, 0x7daf, 0x7d23, 0x7d1f, 0x7d44, 0x7d15, - 0x7d12, 0x7d41, 0x7d3f, 0x7d3e, 0x7d46, 0x7d48, - /* 0x17321..0x1737E */ - 0x7d5d, 0x7d5e, 0x7d64, 0x7d51, 0x7d50, 0x7d59, 0x7d72, 0x7d89, - 0x7d87, 0x7dab, 0x7d6f, 0x7d7a, 0x7d9a, 0x7da4, 0x7da9, 0x7db2, - 0x7dc4, 0x7dc1, 0x7dbb, 0x7db8, 0x7dba, 0x7dc6, 0x7dcf, 0x7dc2, - 0x7dd9, 0x7dd3, 0x7df8, 0x7de6, 0x7ded, 0x7def, 0x7dfd, 0x7e1a, - 0x7e1b, 0x7e1e, 0x7e75, 0x7e79, 0x7e7d, 0x7e81, 0x7e88, 0x7e8b, - 0x7e8c, 0x7e92, 0x7e95, 0x7e91, 0x7e9d, 0x7ea5, 0x7ea9, 0x7eb8, - 0x7eaa, 0x7ead, 0x7761, 0x7ecc, 0x7ece, 0x7ecf, 0x7ed0, 0x7ed4, - 0x7edc, 0x7ede, 0x7edd, 0x7ee0, 0x7ee5, 0x7ee8, 0x7eef, 0x7ef4, - 0x7ef6, 0x7ef7, 0x7ef9, 0x7efb, 0x7efc, 0x7efd, 0x7f07, 0x7f08, - 0x56b7, 0x7f15, 0x7f21, 0x7f2c, 0x7f3e, 0x7f4a, 0x7f52, 0x7f54, - 0x7f63, 0x7f5f, 0x7f60, 0x7f61, 0x7f66, 0x7f67, 0x7f6c, 0x7f6a, - 0x7f77, 0x7f72, 0x7f76, 0x7f95, 0x7f9c, 0x7fa0, - /* 0x17421..0x1747E */ - 0x382f, 0x49c7, 0x7059, 0x5464, 0x31dc, 0x5199, 0x3653, 0x3de2, - 0x3e14, 0x3e18, 0x3e58, 0x3e5e, 0x3ebe, 0x8028, 0x3ecb, 0x3ef9, - 0x3f00, 0x3f02, 0x3f07, 0x3f1d, 0x3f23, 0x3f34, 0x3f36, 0x3f3d, - 0x3f40, 0x3f45, 0x3f54, 0x3f58, 0x3f64, 0x3f67, 0x3f7d, 0x3f89, - 0x3f9c, 0x3fa7, 0x3faf, 0x3fb5, 0x3fb7, 0x3fc9, 0x3fde, 0x3fe1, - 0x3fe9, 0x400d, 0x4014, 0x4018, 0x4033, 0x4035, 0x4047, 0x813d, - 0x409d, 0x409e, 0x40cb, 0x40d4, 0x40d5, 0x40dd, 0x40f8, 0x411c, - 0x412b, 0x4130, 0x4137, 0x813e, 0x418d, 0x813f, 0x41bc, 0x41b9, - 0x8140, 0x4222, 0x423e, 0x4243, 0x4256, 0x425a, 0x426f, 0x4285, - 0x42c4, 0x42d6, 0x42fc, 0x430a, 0x4318, 0x4339, 0x4343, 0x4365, - 0x437c, 0x43e5, 0x43ed, 0x43f5, 0x4410, 0x4414, 0x4422, 0x4479, - 0x4451, 0x4460, 0x446d, 0x44ce, 0x44be, 0x44bf, - /* 0x17521..0x1757E */ - 0x44c4, 0x44ca, 0x44d0, 0x44f7, 0x44fb, 0x4522, 0x4529, 0x8141, - 0x4567, 0x459d, 0x8142, 0x4600, 0x4609, 0x4615, 0x461e, 0x463a, - 0x4622, 0x4624, 0x462b, 0x4630, 0x4631, 0x4633, 0x46fb, 0x4648, - 0x464c, 0xa8c4, 0x4659, 0x465a, 0x4661, 0x4665, 0x4673, 0x4677, - 0x4678, 0x468d, 0x8143, 0x46a0, 0x46b2, 0x46bb, 0x46c6, 0x46c8, - 0x1b22, 0x46db, 0x46e8, 0x46fa, 0x4713, 0x8029, 0x4733, 0x4766, - 0x4747, 0x4748, 0x477b, 0x4781, 0x4793, 0x4798, 0x479b, 0x47bb, - 0x47f9, 0x47c0, 0x47d7, 0x47fc, 0x4801, 0x4852, 0x481d, 0x482c, - 0x4831, 0x485b, 0x4872, 0x4875, 0x8144, 0x48a3, 0x48a5, 0x48b2, - 0x48c8, 0x48d0, 0x48e8, 0x48ed, 0x48f0, 0x48f1, 0x48fc, 0x490a, - 0x4949, 0xabc4, 0x4935, 0x4942, 0x4957, 0x4963, 0x4964, 0x4968, - 0x4980, 0x8114, 0x49a5, 0x49ad, 0x49cf, 0x1bb6, - /* 0x17621..0x1767E */ - 0x1bc3, 0x49e2, 0x49e9, 0x49ea, 0x49f5, 0x49f6, 0x4a0f, 0x4a15, - 0xad3f, 0x4a3b, 0x4a3e, 0x4a45, 0x4a50, 0x4a56, 0x4a5b, 0x4a6b, - 0x4a73, 0xad63, 0x4a89, 0x4a94, 0x4a9d, 0x4a9e, 0x4aa5, 0x4ae4, - 0x4ae7, 0x1c0f, 0x801d, 0x4b1b, 0x4b1e, 0x4b2c, 0x4b35, 0x4b46, - 0x4b56, 0x4b60, 0x4b65, 0x4b67, 0x4b77, 0x4b82, 0x4ba9, 0x4bad, - 0x8070, 0x4bcf, 0x4bd6, 0x4bd7, 0x4bff, 0x4c05, 0x4c10, 0x4c33, - 0x4c59, 0x4c5c, 0x4caa, 0x4c74, 0x4c76, 0x4c85, 0x4c86, 0x4c98, - 0x4c9c, 0x4cfb, 0x4cc6, 0x4cd4, 0x4ce0, 0x4ceb, 0x4cee, 0xb0fe, - 0x4d04, 0x4d0e, 0x4d2e, 0x4d31, 0x4d39, 0x4d3f, 0x4d58, 0x4d65, - 0x8145, 0x4d82, 0x4d87, 0x4d89, 0x4d94, 0x4daa, 0x4dac, 0x4dbf, - 0x4dc4, 0x4dd6, 0x4dda, 0x4ddb, 0x4ddd, 0x4dfc, 0x8146, 0x4e34, - 0x4e44, 0x4e5c, 0x4e5e, 0x4eab, 0x4eb1, 0x4ec1, - /* 0x17721..0x1777E */ - 0x4ec7, 0x4ece, 0x4f10, 0x4f1a, 0x8147, 0x4f2a, 0x4f2f, 0x4f33, - 0x4f51, 0x4f59, 0x4f5e, 0x4f61, 0x4f62, 0x4f7e, 0x4f88, 0x4f8c, - 0x4f8d, 0x4f94, 0x4fa0, 0x4fa7, 0x4fb6, 0x4fbc, 0x4fc7, 0x4fca, - 0x4ff9, 0x4ff0, 0x4ff5, 0x5005, 0x5006, 0x5028, 0x504a, 0x505d, - 0x505e, 0x504e, 0x5064, 0x5075, 0x5085, 0x50a4, 0x50ab, 0x50b7, - 0x50d4, 0x50d8, 0x50e4, 0x510f, 0x512b, 0x511e, 0x5120, 0x512e, - 0x5130, 0x5146, 0x5147, 0x5151, 0x8148, 0x5152, 0x515c, 0x5160, - 0x5168, 0x8115, 0x5185, 0x5187, 0x5192, 0x51c1, 0x51ba, 0x51c4, - 0x51fe, 0x5200, 0x5215, 0x5255, 0x5256, 0x1e3f, 0x528d, 0x529b, - 0x52be, 0x52c0, 0x52fb, 0xb7f1, 0x5327, 0x5328, 0x8116, 0x5350, - 0x5366, 0x537c, 0x5395, 0x539f, 0x53a0, 0x53a2, 0x53a6, 0x53ab, - 0x53c9, 0x53cf, 0x53d6, 0x53d9, 0x53e3, 0x53e9, - /* 0x17821..0x1787E */ - 0x5407, 0x540a, 0x541a, 0x541b, 0x814a, 0x5426, 0x5428, 0x542a, - 0x542b, 0x542c, 0x542e, 0x542f, 0x5430, 0x5444, 0x5446, 0x5447, - 0x544b, 0x5457, 0x5462, 0x546b, 0x546d, 0x5486, 0x5487, 0x5489, - 0x5498, 0x549c, 0x549f, 0x54a3, 0x5490, 0x54a6, 0x54a8, 0x54a9, - 0x54b5, 0x54bf, 0x54c8, 0x54c9, 0x54da, 0x54ff, 0x5501, 0x5517, - 0x552f, 0x556f, 0x5579, 0x5592, 0x1f72, 0x55ce, 0x55e4, 0x5600, - 0x5602, 0x5608, 0x5615, 0x5616, 0x5619, 0x561e, 0x562d, 0x5635, - 0x5643, 0x564b, 0x5664, 0x5665, 0x566d, 0x566f, 0x5671, 0x5681, - 0x569b, 0x569d, 0x569e, 0x56a6, 0x56aa, 0x56b6, 0x56c5, 0x56cc, - 0x56ce, 0x56d4, 0x56e6, 0x56f1, 0x56fc, 0x570a, 0x5719, 0x5734, - 0x5736, 0x5746, 0x574d, 0x574e, 0x575c, 0x575f, 0x5762, 0x577a, - 0x5780, 0x5794, 0x57aa, 0x57e0, 0x582d, 0xc18e, - /* 0x17921..0x1797E */ - 0x5843, 0x584e, 0x584f, 0x5851, 0x5868, 0x586e, 0x814b, 0x58b0, - 0xc20e, 0x58ad, 0x58e4, 0x58f2, 0x5900, 0x58f7, 0x591c, 0x592e, - 0x5931, 0x5934, 0x814c, 0x814d, 0x5945, 0x5946, 0x814e, 0x814f, - 0x8150, 0x595c, 0x8151, 0x8119, 0x811a, 0x5979, 0x8152, 0x8153, - 0x811b, 0x5998, 0x59b1, 0x59b8, 0x59c8, 0x59ca, 0xc371, 0x59d4, - 0x59de, 0x59eb, 0x59ed, 0x5a03, 0x8154, 0x5a39, 0x5a5d, 0x5a6d, - 0x8155, 0x5a85, 0x5aa0, 0xc4c4, 0x5ab3, 0x5abb, 0x5ace, 0x5aeb, - 0x5afd, 0x5b12, 0x5b2d, 0x5b3b, 0x5b47, 0x5b4e, 0x5b60, 0x5b6d, - 0x5b6f, 0x5b72, 0x5b9e, 0x8156, 0x5bd7, 0x5bd9, 0x5c01, 0x5c31, - 0x5c1e, 0x5c20, 0x5c33, 0x5c36, 0x2264, 0xc7a1, 0x5c59, 0x5c6d, - 0x5c79, 0x5c8f, 0x5c94, 0x5ca0, 0x5cbc, 0x5cd5, 0x5cd9, 0x5cdd, - 0x5d07, 0x5d08, 0x5d13, 0x5d1d, 0x5d23, 0x5d31, - /* 0x17A21..0x17A7E */ - 0x5d41, 0x5d48, 0x5d53, 0x5d5c, 0x5d7a, 0x5d83, 0x5d8b, 0x5da0, - 0x5da6, 0x5dc2, 0x5dcc, 0x5dd6, 0x5de3, 0x8157, 0x5e28, 0x5e08, - 0x5e11, 0x5e15, 0x8159, 0x5e47, 0x5e52, 0x5e61, 0x5e8a, 0x5e8d, - 0x5f47, 0x815a, 0x5f91, 0x5f97, 0x5fbf, 0x5fce, 0x5fdb, 0x5fdf, - 0x5fec, 0x5fee, 0x5ffa, 0x815b, 0x6014, 0x6026, 0x6035, 0x6037, - 0x603c, 0x60ca, 0x60d7, 0x60e0, 0x60f3, 0x6118, 0x614a, 0x6160, - 0x6167, 0x6168, 0x616d, 0x61bb, 0x61ca, 0x61cf, 0x61d7, 0x815c, - 0x2453, 0x245b, 0x6260, 0x6274, 0xd2ff, 0x628e, 0x62a1, 0x62a3, - 0x62a4, 0x62a9, 0x62ae, 0x62b7, 0x62be, 0x62bf, 0x62c6, 0x62d5, - 0x62fd, 0x62fe, 0x6300, 0x6301, 0x6362, 0x6322, 0x632d, 0x633a, - 0x6343, 0x6347, 0x6351, 0x6355, 0x637d, 0x6386, 0x6392, 0x6398, - 0x63a7, 0x63a9, 0x63bf, 0x63c0, 0x63c7, 0x63cf, - /* 0x17B21..0x17B7E */ - 0x63d1, 0x63e1, 0x63ea, 0x6401, 0x6406, 0x640a, 0x815f, 0x6448, - 0x645f, 0x6470, 0x6473, 0x6485, 0x649e, 0x64af, 0x64b4, 0x64ba, - 0x64c0, 0x64c2, 0xd440, 0x6532, 0x651e, 0x6523, 0x652f, 0x6559, - 0x6564, 0x811f, 0x65ad, 0x657a, 0x658c, 0x658f, 0x65a2, 0x65b0, - 0x65cb, 0x65ce, 0x65ed, 0x6612, 0x65ff, 0x6604, 0x6605, 0x6610, - 0xd674, 0x6618, 0x6629, 0x6638, 0x6657, 0x665b, 0x8036, 0x6662, - 0x259d, 0x666c, 0x6675, 0x6698, 0x66b8, 0x66fa, 0x66fc, 0x66fd, - 0x670b, 0x6771, 0x6787, 0x6788, 0x67ac, 0x67ad, 0x67b5, 0x25ea, - 0x67d6, 0x67ec, 0x6806, 0x680a, 0x6810, 0x6814, 0x681f, 0x6898, - 0x68aa, 0x68ca, 0x68ce, 0xd884, 0x68f5, 0x691c, 0x8160, 0x6918, - 0x6919, 0x691a, 0x6927, 0x6930, 0x6932, 0x6939, 0x6940, 0x6994, - 0x8161, 0x69d4, 0x69e5, 0x69f6, 0x6a12, 0x6a15, - /* 0x17C21..0x17C7E */ - 0x6a22, 0x6a37, 0x6a47, 0x6a4e, 0x6a5d, 0x6a61, 0x6a75, 0x6a79, - 0x6aa7, 0x6ad0, 0x6adf, 0x6af4, 0x6af6, 0x8122, 0x8162, 0x8163, - 0x6b46, 0x6b54, 0x6b59, 0x6b69, 0x6b9d, 0x6c49, 0x6c68, 0x8164, - 0x6ce1, 0x6cf4, 0x6cf8, 0x6cfe, 0x8165, 0x6d12, 0x6d1b, 0x6daf, - 0x6dce, 0x6dd1, 0x6dd7, 0x6e20, 0x6e23, 0x6e3d, 0x6e70, 0x6e7b, - 0xe177, 0x6ec0, 0x2844, 0x6efa, 0x6f1e, 0x6f2d, 0x6f36, 0x6f54, - 0xe24d, 0x6fa6, 0x6fb5, 0x6fe4, 0x6fe8, 0x6fee, 0x7008, 0x702d, - 0x8167, 0x7088, 0x7095, 0x7097, 0x7099, 0x709b, 0x70a2, 0x70b3, - 0x70be, 0x70c4, 0x70c5, 0x70c7, 0x70d7, 0x70dd, 0x70de, 0x70ef, - 0x70f4, 0x8126, 0x7114, 0x7115, 0x7116, 0x7122, 0x7123, 0x7127, - 0x712f, 0x7131, 0x7134, 0x713d, 0x7148, 0x715b, 0x7183, 0x719e, - 0x71ac, 0x71b1, 0x71bc, 0x71d7, 0x71fb, 0x71e4, - /* 0x17D21..0x17D7E */ - 0x71e5, 0x71ed, 0x71f1, 0x7207, 0x7210, 0x7238, 0x7239, 0x723a, - 0x723c, 0x7240, 0x7243, 0x724f, 0x7278, 0x7288, 0x72c2, 0x72cb, - 0x72cc, 0x72d3, 0x72e0, 0x72ff, 0x7304, 0x731f, 0x7321, 0x7325, - 0x7348, 0x7349, 0x734a, 0x7364, 0x7365, 0x736a, 0x7370, 0x739b, - 0x73a3, 0x73ba, 0x73c6, 0x73de, 0x73df, 0x7404, 0x73fd, 0x7433, - 0x744a, 0x7463, 0x746b, 0x7471, 0x7472, 0x758e, 0x759f, 0x75a6, - 0x75a9, 0x75ac, 0x75b6, 0x75bd, 0x75cb, 0x75d0, 0x75d3, 0x29b0, - 0x75da, 0x75de, 0x7658, 0x7684, 0x80dc, 0x769d, 0x76a4, 0x76a5, - 0x76d2, 0x76de, 0x8168, 0x76e9, 0x76ef, 0x7733, 0x773b, 0x774d, - 0x774e, 0x774f, 0x775a, 0x776e, 0x7773, 0x7795, 0x77ae, 0x77ba, - 0x77c1, 0x77c9, 0x77de, 0x77db, 0x77f4, 0x8169, 0x780a, 0x781e, - 0x782b, 0x7830, 0x816a, 0x7852, 0x7853, 0x7856, - /* 0x17E21..0x17E7E */ - 0x7857, 0x7859, 0x785a, 0x80d0, 0x7865, 0x786c, 0x78ba, 0x78c8, - 0x78e7, 0x7958, 0x799e, 0x7a02, 0x7a03, 0x7a24, 0x7a2d, 0x7a2e, - 0x7a38, 0x7a4a, 0x7a4e, 0x7a52, 0x7ab6, 0x7ac1, 0x7ac3, 0x7ace, - 0x7ad6, 0x7af9, 0x7b02, 0x7b08, 0x7b20, 0x2c17, 0x7b2d, 0x7b5e, - 0x7b79, 0x7b66, 0x7b72, 0x7b75, 0x7b84, 0x7b8a, 0x7b8f, 0x7b9e, - 0x7ba7, 0x7bc1, 0x7bce, 0x7be5, 0x7bf8, 0x7bfd, 0x7c00, 0x7c23, - 0x7c41, 0x7c4f, 0x7c50, 0x7c53, 0x7c63, 0x7c65, 0x7c77, 0x7d1d, - 0x7d1e, 0x7d43, 0x7d47, 0x7d52, 0x7d63, 0x7d70, 0x7d7c, 0x7d8a, - 0x7d96, 0x7dc0, 0x7dac, 0x7dbc, 0x7dd7, 0xf690, 0x7de7, 0x7e07, - 0x7e15, 0x7e7c, 0x7e9e, 0x7ea4, 0x7eac, 0x7eaf, 0x7eb4, 0x7eb5, - 0x7ec3, 0x7ed1, 0x7f10, 0x7f39, 0x7f57, 0x7f90, 0x7f94, 0x7f97, - 0x7fa2, 0x39f8, 0x3c5b, 0x3e77, 0x5626, 0x5e6b, - /* 0x22121..0x2217E */ - 0x8489, 0x2e02, 0x2e0f, 0x2e12, 0x2e29, 0x2e2b, 0x2e2e, 0x2e40, - 0x2e47, 0x2e48, 0x84a2, 0x2e51, 0x1406, 0x84a4, 0x2e5a, 0x2e69, - 0x2e9d, 0x142c, 0x142e, 0x2eb9, 0x2ebb, 0x8522, 0x2ebc, 0x2ec3, - 0x2ec8, 0x2ed0, 0x2eeb, 0x2eda, 0x2ef1, 0x2ef5, 0x2f00, 0x2f16, - 0x2f64, 0x2f37, 0x2f3e, 0x2f54, 0x2f58, 0x8593, 0x2f77, 0x2f78, - 0x2f7a, 0x2f7d, 0x2f82, 0x2f85, 0x2f92, 0x2f9a, 0x2fe6, 0x2fb2, - 0x2fbe, 0x2fc5, 0x2fcb, 0x2fcf, 0x2fd2, 0x146a, 0x2ff2, 0x3000, - 0x3010, 0x3013, 0x301c, 0x301e, 0x3022, 0x1468, 0x3042, 0x3046, - 0x304e, 0x3053, 0x3057, 0x3063, 0x3066, 0x306a, 0x3070, 0x30a3, - 0x3088, 0x3092, 0x3093, 0x3095, 0x3096, 0x309c, 0x30aa, 0x862b, - 0x30b1, 0x30ba, 0x30bb, 0x30c4, 0x30c7, 0x30f3, 0x8681, 0x30ce, - 0x8671, 0x30d4, 0x30d9, 0x30e1, 0x30e9, 0x1492, - /* 0x22321..0x2237E */ - 0x3108, 0x86f9, 0x3117, 0x311b, 0x874a, 0x3160, 0x8809, 0x3173, - 0x3183, 0x318b, 0x14bc, 0x3198, 0x31a3, 0x31ad, 0x14c7, 0x31bc, - 0x88d6, 0x8928, 0x31f3, 0x31f4, 0x3202, 0x3212, 0x3216, 0x8a4f, - 0x3255, 0x325c, 0x326c, 0x3277, 0x3284, 0x3282, 0x8b07, 0x3298, - 0x8b3a, 0x32a4, 0x32a6, 0x32af, 0x32ba, 0x32bb, 0x32ca, 0x151f, - 0x32d1, 0x8bb9, 0x32f7, 0x330a, 0x330b, 0x3324, 0x3335, 0x333e, - 0x3342, 0x8c7c, 0x8c9d, 0x3367, 0x336c, 0x337a, 0x33a4, 0x33b4, - 0x8dd3, 0x33b7, 0x33c0, 0x8e1d, 0x155d, 0x155e, 0x33d5, 0x33da, - 0x1563, 0x33f4, 0x33f5, 0x3455, 0x3424, 0x3428, 0x156e, 0x3443, - 0x3462, 0x3466, 0x346c, 0x348a, 0x348d, 0x3495, 0x34a0, 0x34a6, - 0x34ad, 0x34ae, 0x34b7, 0x34ba, 0x34bf, 0x34c3, 0x8f45, 0x34ec, - 0x34ef, 0x34f1, 0x34f3, 0x3500, 0x3501, 0x3509, - /* 0x22421..0x2247E */ - 0x353c, 0x3541, 0x15a6, 0x3547, 0x354a, 0x15a8, 0x3560, 0x3561, - 0x3564, 0x8fe1, 0x357d, 0x3582, 0x3588, 0x3591, 0x15c5, 0x35d2, - 0x9095, 0x906d, 0x35bf, 0x35c9, 0x35cc, 0x35d1, 0x35dd, 0x15da, - 0x35e2, 0x9064, 0x35e9, 0x3628, 0x915f, 0x3607, 0x3610, 0x3630, - 0x3637, 0x15f4, 0x363d, 0x363f, 0x3640, 0x3647, 0x365e, 0x3660, - 0x366d, 0x1605, 0x3688, 0x368c, 0x3695, 0x369a, 0x369d, 0x36a8, - 0x36ad, 0x36b2, 0x36c5, 0x36cd, 0x36df, 0x36e8, 0x36f6, 0x36f7, - 0x9201, 0x3715, 0x3723, 0x9255, 0x3729, 0x927b, 0x3745, 0x3746, - 0x374c, 0x374d, 0x9274, 0x3768, 0x376f, 0x3773, 0x3774, 0x3775, - 0x377b, 0x92e4, 0x92d7, 0x37ac, 0x379a, 0x379d, 0x379e, 0x37a8, - 0x37d7, 0x92fd, 0x37cc, 0x9336, 0x9344, 0x37de, 0x37e6, 0x37f0, - 0x164a, 0x37f8, 0x37fb, 0x37fd, 0x3804, 0x381e, - /* 0x22521..0x2257E */ - 0x3820, 0x3827, 0x3832, 0x3839, 0x93c4, 0x3849, 0x384c, 0x3867, - 0x388a, 0x388b, 0x388d, 0x388f, 0x3890, 0x3894, 0x389d, 0x38aa, - 0x38b1, 0x946d, 0x38c3, 0x38cd, 0x38e2, 0x38f3, 0x38f4, 0x3905, - 0x3906, 0x390b, 0x390d, 0x3914, 0x3924, 0x95d7, 0x1691, 0x393d, - 0x1699, 0x3946, 0x1696, 0xd329, 0x395b, 0x395f, 0x9647, 0x3975, - 0x3976, 0x397c, 0x399f, 0x39ae, 0x39bc, 0x39c8, 0x39cd, 0x39de, - 0x39e3, 0x39e4, 0x39e7, 0x39ee, 0x9706, 0x9742, 0x16cf, 0x3a0c, - 0x3a0d, 0x3a17, 0x3a27, 0x3a2d, 0x3a55, 0x3a65, 0x3a7a, 0x3a8b, - 0x3a9c, 0x3a9f, 0x3aa0, 0x3aa2, 0x3ab1, 0x3ab3, 0x3ab5, 0x3aba, - 0x3abf, 0x3ada, 0x3adc, 0x3ae0, 0x3ae5, 0x3af0, 0x3aee, 0x3af5, - 0x3b00, 0x3b08, 0x3b17, 0x3b34, 0x3b2d, 0x3b4c, 0x3b52, 0x3b68, - 0x3b6f, 0x3b7c, 0x3b7f, 0x3b81, 0x3b84, 0x99c3, - /* 0x22821..0x2287E */ - 0x3b96, 0x3bac, 0x1761, 0x3bc0, 0x1762, 0x3bce, 0x3bd6, 0x176c, - 0x176b, 0x3bf1, 0x3bfd, 0x1775, 0x3c03, 0x3c29, 0x3c30, 0x9a56, - 0x3c5f, 0x3c63, 0x3c67, 0x3c68, 0x3c69, 0x3c70, 0x9b2d, 0x9b45, - 0x3c7c, 0x9b78, 0x9b62, 0x3c88, 0x3c8a, 0x17c1, 0x9ba1, 0x9b9c, - 0x3ca0, 0x3ca2, 0x3ca6, 0x3ca7, 0x9b92, 0x3cad, 0x3cb5, 0x9bb7, - 0x3cc9, 0x9be0, 0x9c33, 0x3d06, 0x3d10, 0x3d2b, 0x3d1d, 0x3d20, - 0x3d24, 0x3d26, 0x3d31, 0x3d39, 0x3d42, 0x17e8, 0x3d61, 0x3d6a, - 0x17f4, 0x3d70, 0x9d1e, 0x17fd, 0x3d88, 0x1800, 0x3d92, 0x3d94, - 0x3d97, 0x3d99, 0x3db0, 0x3db2, 0x3db4, 0x9d76, 0x3db9, 0x3dd1, - 0x3dd7, 0x3dd8, 0x3de0, 0x9dfa, 0x3de4, 0x3de9, 0x182f, 0x3e00, - 0x1836, 0x3e12, 0x3e15, 0x1840, 0x3e1f, 0x3e2e, 0x3e3e, 0x3e49, - 0x185c, 0x3e56, 0x1861, 0x3e6b, 0x3e6c, 0x3e6d, - /* 0x22C21..0x22C7E */ - 0x3e6e, 0x9e7b, 0x3ea5, 0x3eaa, 0x3eac, 0x3eb9, 0x3ebf, 0x3ec6, - 0x3ed2, 0x3ed9, 0xa01e, 0x3efd, 0x3f08, 0x3f0e, 0x3f1c, 0xa0ad, - 0x3f1e, 0x3f47, 0x3f63, 0x3f72, 0x3f7e, 0x3f8f, 0x3fa2, 0x3fa4, - 0x3fb8, 0x3fc4, 0x18fa, 0x3fc7, 0x3fcb, 0x3fd2, 0x3fd3, 0x3fd4, - 0x3fe2, 0x3fee, 0x3fef, 0x3ff3, 0x3ffc, 0x1917, 0x4017, 0x4022, - 0x4024, 0x191a, 0x404c, 0x407f, 0x408a, 0x4095, 0x40a8, 0xa1f3, - 0x40b0, 0x40b1, 0x40be, 0x40c8, 0x40d9, 0x40db, 0x40ee, 0x40f2, - 0x40f5, 0x4110, 0x4112, 0x4113, 0x4119, 0x411e, 0x413a, 0x196f, - 0x4141, 0x4146, 0x4160, 0x417c, 0xa25b, 0x4192, 0x4193, 0x4197, - 0x4198, 0x41a5, 0x41a8, 0x41ad, 0xa2ab, 0x41d5, 0x41dd, 0x41df, - 0x41f5, 0xa38f, 0x4215, 0x4223, 0x4229, 0x4246, 0x424c, 0x4251, - 0x4252, 0x4261, 0x4264, 0x427b, 0x426d, 0x4273, - /* 0x22D21..0x22D7E */ - 0x4299, 0x42a6, 0x42d5, 0xa4b8, 0x42fd, 0x4303, 0x430d, 0x4310, - 0xa54f, 0xa550, 0x4332, 0x4335, 0x433b, 0x433c, 0x4341, 0x4344, - 0x434e, 0xa546, 0x4359, 0xa61d, 0xa5a6, 0x436c, 0x4384, 0x4399, - 0xa624, 0x4394, 0x43bd, 0x43f7, 0x43d4, 0x43d5, 0x43dc, 0x43e0, - 0x43eb, 0x43ec, 0x43f2, 0x4409, 0x441e, 0x4425, 0x4429, 0x442f, - 0x445a, 0x445b, 0x445d, 0x4473, 0x447d, 0x4487, 0x4491, 0x449d, - 0x449f, 0x44cb, 0x44cc, 0x44d5, 0x44d7, 0xa7e1, 0x44e4, 0x44e5, - 0x44ff, 0x4504, 0x1a6e, 0x450f, 0x4514, 0x4516, 0x1a73, 0x451e, - 0x4532, 0x4544, 0x4554, 0x456b, 0x457a, 0x4581, 0x4584, 0x4585, - 0x458a, 0x45b2, 0x45b5, 0x45b8, 0x45bf, 0x45c2, 0x45c9, 0x45d4, - 0x1ad6, 0x45f2, 0x45f9, 0x45fc, 0x4604, 0x4608, 0x4621, 0x462a, - 0x4645, 0x4651, 0x464e, 0x1aea, 0xa8c3, 0x4657, - /* 0x22E21..0x22E7E */ - 0x465b, 0x4663, 0xa8f5, 0xa8b6, 0x466a, 0x466b, 0x466c, 0x466d, - 0x467b, 0x4680, 0x4690, 0x4692, 0x4699, 0x1b0e, 0x46ad, 0x46b1, - 0x46b5, 0x1b1a, 0x46bf, 0x1b1c, 0x46ec, 0x1ad7, 0x4701, 0x4705, - 0x4712, 0xa972, 0x4719, 0xa9d3, 0xa9d2, 0x474c, 0x474d, 0x4754, - 0x475d, 0xa9d0, 0xa9e4, 0xa9d5, 0x4774, 0x4776, 0xa9da, 0x4792, - 0xa9df, 0x6363, 0x4810, 0x47b0, 0x47b2, 0x47c3, 0x47c8, 0x47d2, - 0x47d9, 0x47db, 0x47f0, 0x47f7, 0xaa4a, 0xaa51, 0xaa4b, 0x4818, - 0x481f, 0x482d, 0xaa65, 0x4833, 0x483b, 0x483e, 0x4844, 0x4845, - 0x4849, 0x484c, 0x4855, 0x4857, 0x1b77, 0x486b, 0x486e, 0x487a, - 0x487c, 0x4882, 0x4890, 0x4896, 0x1b6d, 0x4898, 0x4899, 0x489a, - 0x489c, 0x48aa, 0x48ab, 0x48b4, 0x48bb, 0x48fb, 0xaae4, 0xab5a, - 0x8113, 0x48c3, 0x48c5, 0x48cc, 0x48cf, 0x48d6, - /* 0x22F21..0x22F7E */ - 0x48d9, 0x48e4, 0x48e5, 0x48ec, 0x48f7, 0x4903, 0x4907, 0x1b87, - 0x1b88, 0xab94, 0x493b, 0x1b8d, 0x4946, 0x4969, 0x496c, 0x4972, - 0x497a, 0x497f, 0x4992, 0x1ba4, 0x4996, 0x4998, 0x49a6, 0x49b0, - 0x49b7, 0x49ba, 0x49bc, 0x49c0, 0x49d1, 0x49d6, 0xac39, 0xac47, - 0x4a30, 0xac38, 0xac3a, 0x49e3, 0x49ee, 0x49ef, 0x49f3, 0x1bcd, - 0x49f4, 0x49fe, 0x4a11, 0x4a1a, 0x4a1d, 0xad1c, 0x4a32, 0x4a33, - 0x4a34, 0x4a3f, 0x4a46, 0x4a49, 0x4a7a, 0x4a4e, 0x4a52, 0x4a64, - 0xad0c, 0x4a7e, 0x4a83, 0x4a8b, 0x1bf0, 0x4a91, 0x4a9f, 0x4aa1, - 0xad64, 0x4aab, 0x4abd, 0x4ac6, 0x4ad4, 0x4ad0, 0x4adc, 0x4add, - 0xadff, 0xade7, 0x4aec, 0x4af1, 0x4af2, 0x4af3, 0x4afd, 0xae24, - 0x4b0b, 0x4b0f, 0x4b10, 0x4b11, 0xae3d, 0x4b17, 0x1c26, 0x4b2f, - 0x4b4a, 0x4b58, 0x4b6c, 0x4b75, 0x4b7a, 0x4b81, - /* 0x26E21..0x26E7E */ - 0x4b9b, 0x4bae, 0xaf98, 0x4bbd, 0x4bbe, 0x4bc7, 0x4bc8, 0x4bc9, - 0x4bda, 0x4be6, 0x4be7, 0x4bee, 0x4bf1, 0x4c02, 0x4c0a, 0x4c0e, - 0x4c35, 0x4c36, 0x4c3a, 0xb07f, 0x4c3f, 0x4c4d, 0x4c5b, 0x4c6d, - 0x4c84, 0x4c89, 0x1cc3, 0x4c94, 0x4c95, 0x4c97, 0x4cad, 0x4cc2, - 0x4cd0, 0x1cd2, 0x4cd6, 0x4cda, 0x4cdc, 0x4ce9, 0x4cec, 0x4ced, - 0xb100, 0x4d00, 0x4d0a, 0x4d24, 0x4d26, 0x4d27, 0x4c67, 0x4d2f, - 0x4d3c, 0x4d5b, 0x4d5e, 0x4d60, 0x4d70, 0x4d80, 0x4d81, 0x4d8a, - 0x4d8d, 0x4d91, 0x4d98, 0xb140, 0x4e17, 0xb1fa, 0xb1f9, 0xb1d3, - 0x4dab, 0x4dae, 0x4db4, 0x4dc2, 0x4d34, 0x4dc8, 0x4dce, 0x4dcf, - 0x4dd0, 0x4ddf, 0x4de9, 0x4df6, 0x4e36, 0x4e1e, 0x4e22, 0x4e27, - 0x1d11, 0x4e32, 0x4e3c, 0x4e48, 0x4e49, 0x4e4b, 0x4e4c, 0x4e4f, - 0x4e51, 0x4e53, 0x4e54, 0x4e57, 0x4e63, 0x1d1e, - /* 0x26F21..0x26F7E */ - 0x4e93, 0x4ea7, 0x4eb4, 0x4ebf, 0x4ec3, 0x4eca, 0x4ed9, 0x4f35, - 0x4eeb, 0x4ef9, 0x4efb, 0x4f0a, 0x4f0c, 0x4f18, 0x4f25, 0x4f36, - 0x4f3c, 0xb27e, 0x4f52, 0x4f57, 0x4f5a, 0x4f60, 0x4f68, 0x4f98, - 0x4f7d, 0x4f90, 0x4f96, 0x4fbe, 0x4f9f, 0x4fa5, 0x4faf, 0x1d64, - 0x4fb5, 0x4fc8, 0x4fc9, 0x4fda, 0x4fde, 0x4fe9, 0xb396, 0x4ffc, - 0x5000, 0x5007, 0x500a, 0x5023, 0xb403, 0x5039, 0x503a, 0x503c, - 0x5043, 0x5047, 0x504b, 0x1d9a, 0x5054, 0x5065, 0x5069, 0x506c, - 0x506e, 0x5076, 0x507e, 0x5081, 0x5086, 0x5095, 0x5097, 0x50bb, - 0xb4c6, 0x509f, 0x50b1, 0xb4fe, 0x50ec, 0x50ca, 0x50d1, 0x50d3, - 0x50dc, 0x5103, 0x5104, 0x5106, 0x5107, 0x5108, 0x510c, 0x1dc0, - 0x512f, 0x5131, 0x5150, 0x514a, 0x5153, 0x515e, 0x1dd4, 0x5196, - 0x5180, 0x519b, 0x51a0, 0x51a2, 0x51ae, 0x51af, - /* 0x27021..0x2707E */ - 0x51b3, 0xb5bc, 0x51cb, 0x51d3, 0x51d9, 0x51dc, 0x5207, 0x1e05, - 0x8149, 0x522b, 0x5234, 0x5238, 0x5239, 0x2e2c, 0x5242, 0x5253, - 0x5257, 0x5263, 0xb629, 0x526e, 0x526f, 0x5278, 0x527f, 0x528e, - 0xb6a5, 0x52ad, 0x52ae, 0x52b0, 0x52b1, 0x52c1, 0x1e60, 0x52cc, - 0x1e66, 0x1e68, 0x52f3, 0x52fa, 0x5307, 0x5312, 0x5318, 0x5319, - 0x1e83, 0x5339, 0x532c, 0x5331, 0x5333, 0x533d, 0x5352, 0x1e94, - 0x536b, 0x536c, 0xb896, 0x536e, 0x536f, 0x5371, 0x5377, 0x5381, - 0x5385, 0x538a, 0x5394, 0x5398, 0x539c, 0x539e, 0x53a5, 0x53a8, - 0x53b5, 0x53b7, 0x53b9, 0x53bc, 0x53bf, 0x53c5, 0x53cb, 0x53e1, - 0x53e7, 0x53f9, 0x5413, 0x53fa, 0x5401, 0x5424, 0x5431, 0x5439, - 0x5453, 0x5440, 0x5443, 0x544d, 0x5452, 0x545d, 0x5471, 0x5481, - 0x5485, 0x5488, 0xb94d, 0x5492, 0x5497, 0x5499, - /* 0x27121..0x2717E */ - 0x54a0, 0x54a1, 0x54a5, 0x54aa, 0x54ab, 0x54b9, 0x54bb, 0x54ba, - 0x54d6, 0x54d8, 0x54de, 0x54ef, 0x54eb, 0xba56, 0x54fa, 0xba6f, - 0x5520, 0x5524, 0x552a, 0x1f57, 0xbb16, 0x553d, 0x553e, 0x5540, - 0x5548, 0x554e, 0x5550, 0x5552, 0x556c, 0x5572, 0x5571, 0x557a, - 0x557d, 0x557e, 0x5581, 0xbc14, 0x558c, 0x1f75, 0x55a2, 0x1f77, - 0x55b0, 0x55b7, 0x55bf, 0x55c0, 0x55c6, 0x55cf, 0x55d3, 0x55dd, - 0x55df, 0x55e0, 0x55e7, 0x55ec, 0x55ee, 0x55f1, 0x55f9, 0x5603, - 0x5618, 0x5607, 0x560f, 0x1fae, 0xbd0e, 0x5613, 0x561b, 0x561c, - 0xbd37, 0x5625, 0x5628, 0x563c, 0x5633, 0xbd6a, 0x1fc9, 0x5641, - 0xbd8b, 0x5649, 0x5655, 0x1fd7, 0x566e, 0x5695, 0x569c, 0x56a1, - 0x56a0, 0x56a7, 0x56a8, 0x56af, 0xbe4a, 0x56c9, 0xbe55, 0x56e8, - 0x56ec, 0xbf22, 0x5717, 0x571a, 0x572d, 0x5735, - /* 0x27221..0x2727E */ - 0xbfa9, 0x2039, 0xbfe5, 0xbfcd, 0x5758, 0x5760, 0x576a, 0xc01e, - 0x5772, 0x577c, 0x577d, 0xc04c, 0x2058, 0x579a, 0x579f, 0x57a2, - 0x57a4, 0x57a9, 0x57de, 0x57df, 0x57e4, 0x57e6, 0x57ea, 0x57ec, - 0x2093, 0x57f0, 0x57f4, 0x57fb, 0xc12e, 0x5805, 0x5806, 0x5809, - 0x580d, 0x5819, 0x5821, 0x582c, 0x5847, 0x5864, 0x586a, 0xc1d9, - 0x588a, 0x5894, 0x58a4, 0x589d, 0x589e, 0x589f, 0x58bb, 0x58c8, - 0x58cc, 0x58ce, 0x58d5, 0x58e0, 0x58e1, 0x58e6, 0x58f9, 0x58fa, - 0x58fb, 0x58fe, 0xc2a7, 0x5910, 0x591b, 0x5930, 0x5925, 0x593b, - 0x594a, 0x5958, 0x595b, 0x2105, 0x5967, 0x5972, 0x5994, 0x5995, - 0x5996, 0x599b, 0x59a1, 0x59a9, 0x59b4, 0x59bb, 0x59c2, 0x59c7, - 0x59cc, 0x59cd, 0x59d6, 0x2148, 0xc3a9, 0xc3b4, 0x214f, 0x5a0a, - 0x5a11, 0x5a15, 0x5a1b, 0x5a1e, 0x2163, 0x5a2d, - /* 0x27321..0x2737E */ - 0x5a38, 0x5a47, 0x5a4c, 0x5a56, 0x5a59, 0x5a5c, 0x5a5f, 0x5a60, - 0x5a67, 0x5a6a, 0x5a75, 0x5a78, 0x5a82, 0x5a8a, 0x5a90, 0x5aa3, - 0x5aac, 0xc4d4, 0x21b4, 0x5ab9, 0x5abc, 0x5abe, 0x21bf, 0x5acc, - 0x5ad1, 0x5ae7, 0x5ae8, 0x5af4, 0xc5e4, 0xc5e3, 0x5b07, 0xc5f1, - 0x5b3d, 0x5b27, 0x5b2a, 0x5b2e, 0x5b2f, 0x5b31, 0x21e6, 0x21f3, - 0x5b7f, 0x5b41, 0x21ee, 0x5b55, 0x5b79, 0x5b64, 0x5b66, 0x5b69, - 0x5b73, 0xc632, 0x2207, 0x5b90, 0x5b91, 0x5b9b, 0x220e, 0x5baf, - 0x5bb5, 0x5bbc, 0x5bc5, 0x5bca, 0xc6cb, 0xc6e4, 0x5bd4, 0x5bd6, - 0x5bda, 0x5bea, 0x5bf0, 0x5c03, 0x5c0b, 0x5c0e, 0x5c0f, 0x5c26, - 0x5c45, 0x5c4a, 0x5c51, 0x5c57, 0x5c5e, 0x5c61, 0x5c69, 0x5c6e, - 0x5c6f, 0x5c70, 0xc82e, 0xc856, 0xc865, 0x5ca6, 0xc862, 0x5cb6, - 0x5cb7, 0x5cbf, 0xc8d8, 0x5cc4, 0xc8c2, 0x5cc8, - /* 0x27421..0x2747E */ - 0x5ccd, 0xc8e8, 0x5cd7, 0xc923, 0x5ce6, 0x5ceb, 0xc95c, 0x5cf5, - 0x5d03, 0x5d09, 0x22c6, 0x5d12, 0x5d1e, 0xc9e0, 0xc9d4, 0x5d3d, - 0x5d3e, 0x5d40, 0x5d47, 0xca0c, 0xc9fb, 0x22d6, 0x5d59, 0x5d5a, - 0x5d6a, 0x5d70, 0x22dd, 0x5d7f, 0xca17, 0x5d86, 0x5d88, 0x5d8c, - 0x5d97, 0xca60, 0x5d9d, 0x5da7, 0x5daa, 0x5db6, 0x5db7, 0x5dc0, - 0x5dd7, 0x5dd9, 0x5de6, 0x5df1, 0x5df9, 0x2302, 0xcaed, 0x8158, - 0x5e10, 0x5e17, 0x5e1d, 0x5e20, 0x5e27, 0x5e2c, 0x5e45, 0x5e73, - 0x5e75, 0x5e7e, 0x5e86, 0x5e87, 0x232b, 0x5e91, 0x5e98, 0x5e9a, - 0x2343, 0x5f3c, 0x5f3b, 0x5f3e, 0x5f43, 0x5f44, 0x5f4f, 0x14c1, - 0xcb70, 0x5f52, 0xcb86, 0x5f61, 0x5f63, 0x5f64, 0x5f6d, 0x5f7d, - 0x5f7e, 0xcc4c, 0x5f90, 0x317b, 0xb10e, 0x5f96, 0x5f9c, 0x5fad, - 0xcd02, 0x5fc3, 0x5fcf, 0x5fe3, 0x5fe5, 0x5fef, - /* 0x27521..0x2757E */ - 0x5ff2, 0x6002, 0x600a, 0x6008, 0x600e, 0x6011, 0x6016, 0x6024, - 0x602c, 0x6030, 0x6043, 0x6066, 0x6071, 0x6075, 0x607b, 0x6099, - 0x609c, 0x60a4, 0x60a7, 0x60b8, 0xce7e, 0x60c5, 0x60d5, 0x60d8, - 0x60e6, 0xceb0, 0x610d, 0x60f5, 0x60fb, 0x23ee, 0x6135, 0x6116, - 0x611e, 0x23f0, 0x6124, 0x6127, 0x612c, 0xcf1d, 0x613d, 0x2408, - 0x6169, 0x2417, 0x6181, 0x241c, 0x6184, 0x6185, 0x2422, 0x6198, - 0x61b2, 0x61c1, 0x61c3, 0x61d6, 0x61db, 0xd0dd, 0x61e4, 0xd0ea, - 0x61ec, 0xd151, 0x61fd, 0x61ff, 0xd16f, 0x6204, 0xd1dd, 0x6219, - 0x6221, 0x6222, 0xd21e, 0x6232, 0x6234, 0x623c, 0x6246, 0x6249, - 0x6245, 0xd258, 0x624b, 0x2476, 0x624f, 0x247a, 0x6257, 0xd28c, - 0x625c, 0x6263, 0xd2b7, 0x815d, 0x815e, 0x6279, 0x2491, 0x627d, - 0x627f, 0x6283, 0x628a, 0x6293, 0x62a7, 0x62a8, - /* 0x27621..0x2767E */ - 0x62b2, 0x62b4, 0x62ba, 0x62bc, 0x62e2, 0x62e8, 0x62f7, 0x6307, - 0x6308, 0x630c, 0x6354, 0x631b, 0x631d, 0x6330, 0x633c, 0x6344, - 0x6357, 0x24be, 0x637f, 0x24d4, 0x24b3, 0x638d, 0x6394, 0x6395, - 0x639b, 0x639d, 0x63c9, 0x63d0, 0x63d4, 0x63dd, 0x63e5, 0x63f9, - 0x640f, 0x6411, 0x6415, 0xd373, 0x6417, 0x6439, 0x644a, 0x644f, - 0x6451, 0x6452, 0x6459, 0x645a, 0x645c, 0xd3dd, 0x6465, 0x6476, - 0x6478, 0x647c, 0x6481, 0x250d, 0x64dc, 0x6497, 0x64a6, 0x64be, - 0x2508, 0x64ce, 0x64cf, 0x64d3, 0xd465, 0x64e7, 0x64ea, 0x64ef, - 0x64f0, 0x64f1, 0x64fa, 0x64fd, 0x650c, 0x651b, 0x6524, 0x6525, - 0x652b, 0x6534, 0x654f, 0x656f, 0x2525, 0x2543, 0x653e, 0x6551, - 0x6553, 0x655e, 0x6561, 0x6562, 0xd594, 0x657b, 0x657d, 0x657f, - 0x6581, 0x6586, 0x6593, 0x659d, 0x659f, 0xd5f8, - /* 0x27721..0x2777E */ - 0xd5f6, 0xd5f7, 0x65b7, 0x65bc, 0x65c7, 0x65ca, 0x65d8, 0x65d9, - 0x65df, 0x65e1, 0x65e6, 0x65f6, 0x6600, 0x6611, 0x661e, 0x6621, - 0x6624, 0x6627, 0xd68d, 0x6639, 0x663c, 0xd6b9, 0x6640, 0x8120, - 0x6653, 0x6656, 0x666f, 0x6677, 0x667a, 0x6687, 0x6689, 0x668d, - 0x6691, 0x669c, 0x669d, 0x66a8, 0x8121, 0x66b1, 0x66b3, 0x66c1, - 0x66c3, 0x66d1, 0x66d5, 0x66d7, 0x66e3, 0x66e6, 0x25b8, 0x6705, - 0x6707, 0x670e, 0x6710, 0x6713, 0x6719, 0x671f, 0x6721, 0x6723, - 0x6731, 0x673a, 0x673e, 0x6740, 0x6743, 0x6751, 0x6758, 0x6764, - 0x6765, 0x6772, 0x677c, 0xd75b, 0xd75a, 0x67a7, 0x6789, 0x678b, - 0x6793, 0x67a0, 0xd77e, 0x25e5, 0x67be, 0xd790, 0x67c1, 0x67ce, - 0x67f5, 0x67df, 0xd7c9, 0x67e3, 0x67e5, 0x67e6, 0x67ea, 0x67eb, - 0x67ed, 0x6801, 0x6803, 0x680b, 0x6813, 0x6828, - /* 0x27821..0x2787E */ - 0x682e, 0x6832, 0x683c, 0x260f, 0x684a, 0x6858, 0x685f, 0x6864, - 0xd815, 0xd814, 0x6869, 0xd831, 0x686f, 0x68a0, 0x68bc, 0x68bd, - 0x68be, 0x68c0, 0x68d2, 0xd893, 0x68d1, 0x68d3, 0x68db, 0x68f0, - 0x68f1, 0x2641, 0x6901, 0xd90e, 0x6937, 0xd923, 0x6942, 0x6945, - 0x6949, 0xd952, 0x2665, 0x6962, 0x6980, 0x6989, 0x6990, 0x699f, - 0x69b0, 0x69b7, 0x69d6, 0x69d8, 0x69eb, 0x26a1, 0x69f1, 0x69f3, - 0x69fd, 0x69ff, 0x26af, 0x6a11, 0x6a14, 0xda85, 0x6a21, 0x6a35, - 0x6a3e, 0x6a45, 0x6a4d, 0x6a58, 0x6aae, 0x6a90, 0x6ab7, 0x6abe, - 0x6ad7, 0x6afc, 0xdb84, 0x6b0a, 0x6b05, 0x6b0d, 0x6b1c, 0x6b1f, - 0x6b2d, 0x6b43, 0x270c, 0x6b51, 0x6b5e, 0x6b76, 0x6b7f, 0x6b81, - 0x6b8b, 0x6b94, 0x6b95, 0x6b9c, 0x6b9e, 0x6c39, 0xdcb3, 0x6c3d, - 0xdcbe, 0xdcc7, 0x6c45, 0x6c47, 0x6c4f, 0x6c54, - /* 0x27921..0x2797E */ - 0x6c57, 0x6c69, 0x6c6d, 0x6c73, 0xddb8, 0x6c93, 0x6c92, 0x6c99, - 0x2764, 0x6c9b, 0x6ca4, 0x6cd6, 0x6cd5, 0x6cd9, 0xde20, 0x6cf0, - 0x6cf1, 0xde90, 0x6d09, 0x6d0e, 0x6d6c, 0x6d84, 0x6d95, 0x6da6, - 0xdfb7, 0x6dc6, 0x6dc8, 0x6dd9, 0x6dec, 0x6e0c, 0x27fd, 0x6dfd, - 0x6e06, 0xe08a, 0x6e14, 0x6e16, 0x6e21, 0x6e22, 0x6e27, 0xe0bb, - 0x2816, 0x6e36, 0x6e39, 0x6e4b, 0x6e54, 0x6e62, 0x6e6c, 0x6e6d, - 0x6e6f, 0x6e98, 0x6e9e, 0x6eae, 0x6eb3, 0x6eb5, 0x6eb6, 0x6ebb, - 0xe182, 0x6ed1, 0x6ed4, 0x284e, 0x6ef9, 0xe1f3, 0x6f00, 0x6f08, - 0x6f17, 0x6f2b, 0x6f40, 0x6f4a, 0x6f58, 0xe28c, 0x6fa4, 0x6fb4, - 0x8166, 0x6fb6, 0xe2d5, 0x6fc1, 0x6fc6, 0x8124, 0x6fca, 0x6fcd, - 0x6fd3, 0x6fd5, 0x6fe0, 0x6ff1, 0x6ff5, 0x6ffb, 0x7002, 0x700c, - 0x7037, 0xe36b, 0x7043, 0x7044, 0x705d, 0xe3c8, - /* 0x27A21..0x27A7E */ - 0xe3c9, 0x7085, 0x708c, 0x7090, 0x761d, 0x70a1, 0x28b5, 0x70b0, - 0x70b6, 0x70c3, 0x70c8, 0xe4d7, 0x70dc, 0x70df, 0xe4fa, 0x70f6, - 0x70f2, 0x7100, 0x70eb, 0x70fe, 0x70ff, 0x7104, 0x7106, 0x7118, - 0x711c, 0x711e, 0x7137, 0x7139, 0x713a, 0x7146, 0x7147, 0x7157, - 0x7159, 0x7161, 0x7164, 0x7174, 0x7179, 0x7185, 0x718e, 0x71a8, - 0x71ae, 0x71b3, 0x71b6, 0x71c3, 0x71c4, 0x71da, 0xe549, 0xe546, - 0x71ec, 0x71ee, 0x7201, 0x720a, 0x7216, 0x7217, 0xe56b, 0x7233, - 0x7242, 0x7247, 0x724a, 0x724e, 0x7251, 0x7256, 0x7259, 0x7260, - 0x7261, 0x7265, 0x7267, 0x7268, 0xe587, 0xe588, 0x727c, 0x727d, - 0x727f, 0x7289, 0x728d, 0x7297, 0x7299, 0x729f, 0x72a7, 0x72ab, - 0xe5ba, 0xe5bb, 0x72b2, 0x72bf, 0x72c0, 0x72c6, 0x72ce, 0x72d0, - 0x72d7, 0x72d9, 0x72e5, 0x72e7, 0x7311, 0xe61e, - /* 0x27B21..0x27B7E */ - 0xe629, 0x72f7, 0x72f9, 0x72fb, 0x7302, 0x730d, 0x7315, 0x731d, - 0x731e, 0x7327, 0x7329, 0xe671, 0xe643, 0x7347, 0x7351, 0x7357, - 0x735a, 0x736b, 0x7371, 0x7373, 0x73a1, 0xe699, 0xe6cd, 0x7388, - 0x738b, 0x738f, 0x739e, 0x73f5, 0xe6e4, 0xe6dd, 0x73f1, 0x73c1, - 0x73c7, 0x73dc, 0x73e2, 0x73e7, 0x7409, 0x740f, 0x7416, 0x7417, - 0x73fb, 0x7432, 0x7434, 0x743b, 0x7445, 0xe7c1, 0xe7ef, 0x746d, - 0x746f, 0x7578, 0x7579, 0x7586, 0x758c, 0x758d, 0xe810, 0x75ab, - 0x75b4, 0xe871, 0x75c8, 0xe8fb, 0xe91f, 0x762c, 0x7633, 0x7634, - 0xe936, 0x763c, 0x7641, 0x7661, 0xe989, 0x7682, 0xe9eb, 0x769a, - 0xea32, 0x29e7, 0x76a9, 0x76af, 0x76b3, 0x76ba, 0x76bd, 0x29fa, - 0xeaf8, 0x76d8, 0x76da, 0x76dd, 0x2a04, 0x7714, 0x7723, 0x2a29, - 0x7736, 0x7741, 0x7747, 0x7755, 0x7757, 0x775b, - /* 0x27C21..0x27C7E */ - 0x776a, 0xeba0, 0xebb1, 0x7796, 0x779a, 0x779e, 0x77a2, 0x77b1, - 0x77b2, 0x77be, 0x77cc, 0x77d1, 0x77d4, 0x77d8, 0x77d9, 0x77e1, - 0x77f1, 0x7804, 0x780d, 0x780e, 0x7814, 0x7816, 0x2abc, 0xec90, - 0x7823, 0x7832, 0x7833, 0x7825, 0x7847, 0x7866, 0x78ab, 0x78ad, - 0x78b0, 0xedcf, 0x78b7, 0x78b8, 0x78bb, 0x78bc, 0x78bf, 0x78c2, - 0x78c7, 0x78cb, 0x78e0, 0xee7f, 0x78e1, 0x78e3, 0x78e5, 0x78ea, - 0x78f0, 0x78f1, 0x78f3, 0x7908, 0x2b3b, 0xeef0, 0x7916, 0x7917, - 0xef19, 0x791a, 0x791b, 0x791c, 0xef50, 0x7931, 0x7932, 0x7933, - 0x793a, 0x793b, 0x793c, 0x7940, 0x7941, 0x7946, 0x794d, 0x794e, - 0x795c, 0x795f, 0x7960, 0x79a3, 0x79a6, 0x79b9, 0x79bd, 0x79bf, - 0x79c3, 0x79c9, 0x79d4, 0x79d9, 0x79de, 0xf0c6, 0x79f0, 0x79f9, - 0x79fc, 0x7a0a, 0x7a11, 0x7a16, 0x7a1a, 0x7a20, - /* 0x27D21..0x27D7E */ - 0x7a31, 0x7a36, 0x7a44, 0x7a4c, 0x7a58, 0x2bc2, 0x7aaf, 0x2bca, - 0x7ab7, 0x2bd2, 0x7ab9, 0xf172, 0x7ac6, 0x7ad0, 0x7ad2, 0x7ad5, - 0x2be8, 0x7adc, 0x7ae0, 0x7ae5, 0x7ae9, 0x7b03, 0x7b0c, 0x7b10, - 0x7b12, 0x7b16, 0x7b1c, 0x7b2b, 0x7b33, 0x7b3d, 0x2c20, 0x7b4b, - 0x7b63, 0x7b65, 0x7b6b, 0x7b6c, 0x7b73, 0x7b76, 0x7b77, 0x7ba6, - 0x7bac, 0x7bb1, 0xf2db, 0xf33d, 0x7bb2, 0x7bb8, 0x7bbe, 0x7bc7, - 0x7bf3, 0x7bd8, 0x7bdd, 0x7be7, 0x7bea, 0x7beb, 0x7bef, 0x7bee, - 0xf315, 0x7bfa, 0xf38a, 0x7bf7, 0xf349, 0x7c16, 0x7c18, 0x7c19, - 0x7c1a, 0x7c1d, 0x7c22, 0x7c27, 0x7c29, 0x7c2a, 0xf3c4, 0x7c31, - 0x7c36, 0x7c37, 0x7c45, 0x7c5c, 0xf3e9, 0x7c49, 0x7c4a, 0xf3db, - 0x7c54, 0x7c58, 0x7c5b, 0x7c5d, 0x7c5f, 0x7c69, 0x7c6a, 0x7c6b, - 0x7c6d, 0x7c6e, 0x7c70, 0x7c72, 0x7c75, 0x7c7a, - /* 0x27E21..0x27E7E */ - 0x7ce6, 0x7cf2, 0x7d0b, 0x7d02, 0xf4ce, 0x7d11, 0x7d17, 0x7d18, - 0xf52f, 0x2cc4, 0xf51a, 0x7d32, 0x2cd1, 0x7d42, 0x7d4a, 0x7d5f, - 0x7d62, 0xf5f9, 0x7d69, 0x7d6b, 0xf582, 0x7d73, 0x7d76, 0x7d77, - 0x7d7e, 0x7d84, 0x7d8d, 0x7d99, 0x7da1, 0x7dbf, 0x7db5, 0x7db9, - 0x7dbd, 0x7dc3, 0x7dc7, 0x7dc9, 0x7dd6, 0x7dda, 0x7ddf, 0x7de0, - 0x7de3, 0x7df4, 0x2d07, 0x7e0a, 0x7e02, 0x7e0d, 0x7e19, 0x7e1c, - 0x7e1d, 0x7e7b, 0x9f18, 0x7e80, 0x7e85, 0x7e9b, 0x7ea8, 0xf70c, - 0x7ebd, 0xf7b7, 0x7edf, 0x7ee7, 0x7eee, 0x7eff, 0x7f02, 0x2d77, - 0x7f03, 0x7f17, 0x7f19, 0x7f2f, 0x7f37, 0x7f3a, 0x7f3d, 0x7f41, - 0x7f45, 0x7f46, 0x7f53, 0x7f55, 0x7f58, 0xf8f1, 0x7f5d, 0xf902, - 0x7f69, 0xf91a, 0x7f6d, 0x7f70, 0x7f75, 0xf9b2, 0x0000, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, -}; - -static const ucs4_t jisx0213_to_ucs_pagestart[] = { - 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1e00, 0x1f00, 0x2000, - 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2900, - 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, - 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, - 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, - 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, - 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, - 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, - 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6600, 0x6700, - 0x6800, 0x6900, 0x6a00, 0x6b00, 0x6c00, 0x6d00, 0x6e00, 0x6f00, - 0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700, - 0x7800, 0x7900, 0x7a00, 0x7b00, 0x7c00, 0x7d00, 0x7e00, 0x7f00, - 0x8000, 0x8100, 0x8200, 0x8300, 0x8400, 0x8500, 0x8600, 0x8700, - 0x8800, 0x8900, 0x8a00, 0x8b00, 0x8c00, 0x8d00, 0x8e00, 0x8f00, - 0x9000, 0x9100, 0x9200, 0x9300, 0x9400, 0x9500, 0x9600, 0x9700, - 0x9800, 0x9900, 0x9a00, 0x9b00, 0x9c00, 0x9d00, 0x9e00, 0x9f00, - 0xf900, 0xfa00, 0xfe00, 0xff00, 0x20000, 0x20180, 0x20300, 0x20400, - 0x20500, 0x20600, 0x20700, 0x20800, 0x20900, 0x20a00, 0x20b00, 0x20d00, - 0x20e00, 0x20f00, 0x21200, 0x21300, 0x21400, 0x21500, 0x21600, 0x21700, - 0x21800, 0x21900, 0x21c00, 0x21d00, 0x21e00, 0x21f00, 0x22100, 0x22200, - 0x22300, 0x22600, 0x22800, 0x22900, 0x22a00, 0x22b00, 0x22c00, 0x22d00, - 0x23100, 0x23300, 0x23400, 0x23500, 0x23600, 0x23700, 0x23800, 0x23a00, - 0x23c00, 0x23d00, 0x23f00, 0x24000, 0x24100, 0x24300, 0x24600, 0x24700, - 0x24800, 0x24a00, 0x24b00, 0x24c00, 0x24d00, 0x24e00, 0x25000, 0x25100, - 0x25200, 0x25400, 0x25500, 0x25700, 0x25900, 0x25a00, 0x25b80, 0x25d00, - 0x25e00, 0x25f00, 0x26000, 0x26200, 0x26300, 0x26400, 0x26600, 0x26700, - 0x26800, 0x26900, 0x26a00, 0x26c00, 0x26e00, 0x26f00, 0x27080, 0x27380, - 0x27600, 0x27700, 0x27900, 0x27a00, 0x27b00, 0x27c00, 0x27d80, 0x27f00, - 0x28000, 0x28200, 0x28380, 0x28500, 0x28600, 0x28900, 0x28a00, 0x28b00, - 0x28d00, 0x28e00, 0x28f00, 0x29200, 0x29400, 0x29500, 0x29600, 0x29700, - 0x29800, 0x29a00, 0x29d00, 0x29e00, 0x29f00, 0x2a000, 0x2a100, 0x2a380, - 0x2a500, 0x2a600, -}; - -static const short jisx0213_from_ucs_level1[2715] = { - -1, -1, 0, 1, 2, 3, 4, 5, - -1, 6, 7, 8, 9, 10, 11, 12, - 13, 14, -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, - 15, -1, -1, -1, -1, 16, -1, -1, - 17, 18, 19, -1, 20, 21, 22, 23, - 24, 25, 26, 27, 28, -1, 29, 30, - 31, 32, -1, 33, 34, 35, 36, 37, - 38, 39, -1, -1, 40, 41, -1, -1, - -1, -1, -1, -1, 42, -1, 43, 44, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 45, 46, 47, 48, -1, -1, -1, 49, - 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, -1, 70, 71, 72, - 73, 74, -1, 75, 76, 77, -1, -1, - -1, 78, -1, 79, 80, 81, 82, 83, - 84, -1, -1, 85, 86, 87, 88, 89, - 90, 91, 92, -1, -1, 93, 94, 95, - 96, 97, 98, -1, 99, 100, 101, 102, - 103, 104, -1, 105, 106, 107, -1, 108, - 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, 120, 121, -1, 122, - 123, 124, 125, -1, -1, -1, 126, 127, - 128, -1, 129, -1, 130, -1, -1, 131, - 132, -1, -1, 133, 134, 135, -1, -1, - 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, -1, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, -1, - 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, -1, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, -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, -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, 458, 459, -1, 460, - 461, 462, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 463, -1, -1, 464, 465, -1, 466, - -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, - -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, - -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, - -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, - -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, - -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, - 467, -1, 468, -1, -1, -1, 469, -1, - 470, -1, -1, -1, 471, 472, 473, 474, - -1, 475, -1, -1, 476, -1, -1, 477, - 478, -1, -1, -1, -1, 479, -1, -1, - 480, -1, 481, -1, -1, 482, 483, -1, - -1, -1, -1, 484, 485, -1, 486, -1, - -1, -1, -1, -1, -1, 487, -1, 488, - -1, 489, 490, -1, -1, 491, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 492, 493, -1, 494, 495, 496, -1, 497, - -1, 498, -1, -1, -1, -1, -1, 499, - -1, 500, 501, -1, 502, 503, -1, -1, - -1, -1, 504, -1, -1, -1, -1, 505, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, 506, -1, -1, 507, 508, 509, 510, - 511, -1, -1, -1, 512, 513, -1, 514, - -1, -1, -1, -1, -1, 515, -1, -1, - 516, -1, -1, -1, 517, -1, 518, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 519, -1, -1, -1, -1, - -1, 520, 521, -1, -1, -1, 522, -1, - -1, -1, 523, -1, -1, 524, 525, -1, - 526, -1, -1, -1, -1, -1, -1, 527, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 528, 529, - -1, -1, -1, -1, -1, 530, -1, 531, - -1, 532, -1, 533, -1, 534, 535, 536, - 537, 538, -1, -1, 539, 540, -1, 541, - 542, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 543, -1, -1, -1, -1, -1, - -1, 544, -1, 545, 546, 547, -1, 548, - -1, -1, -1, -1, -1, 549, -1, -1, - -1, -1, 550, -1, 551, -1, -1, 552, - -1, -1, -1, -1, -1, -1, 553, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - 554, -1, 555, -1, -1, -1, -1, 556, - -1, -1, 557, -1, -1, -1, -1, -1, - -1, 558, -1, -1, -1, 559, -1, -1, - 560, -1, -1, -1, 561, -1, -1, -1, - 562, 563, 564, -1, -1, -1, -1, -1, - -1, 565, -1, -1, 566, -1, 567, 568, - 569, 570, -1, -1, -1, -1, -1, -1, - 571, -1, 572, 573, 574, -1, 575, -1, - -1, -1, -1, -1, -1, 576, 577, -1, - -1, -1, -1, -1, -1, -1, -1, 578, - -1, -1, -1, 579, -1, -1, 580, -1, - -1, 581, -1, -1, -1, -1, 582, -1, - 583, 584, -1, 585, 586, 587, -1, 588, - 589, 590, -1, 591, -1, -1, -1, -1, - -1, 592, 593, -1, -1, 594, -1, -1, - 595, -1, -1, -1, -1, -1, -1, -1, - -1, 596, 597, -1, 598, -1, -1, -1, - -1, -1, -1, 599, -1, 600, -1, 601, - 602, 603, 604, 605, -1, -1, -1, -1, - 606, 607, -1, 608, -1, -1, -1, -1, - -1, 609, -1, -1, -1, -1, 610, 611, - -1, -1, -1, 612, 613, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 614, - 615, 616, -1, -1, -1, -1, -1, -1, - 617, -1, 618, -1, 619, 620, -1, -1, - -1, -1, -1, -1, -1, -1, 621, -1, - -1, -1, 622, -1, -1, -1, 623, 624, - -1, -1, 625, -1, -1, -1, 626, -1, - 627, -1, -1, -1, -1, -1, 628, -1, - -1, -1, 629, -1, -1, -1, -1, -1, - -1, 630, 631, 632, -1, -1, -1, 633, - 634, 635, -1, -1, -1, 636, -1, 637, - -1, -1, -1, 638, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 639, 640, -1, - 641, 642, 643, 644, -1, -1, -1, 645, - -1, -1, -1, -1, 646, 647, -1, 648, - 649, -1, 650, 651, 652, -1, -1, 653, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 654, -1, -1, -1, -1, -1, - -1, -1, 655, -1, -1, -1, -1, 656, - -1, 657, -1, 658, 659, 660, -1, -1, - -1, -1, -1, 661, -1, -1, -1, -1, - -1, 662, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 663, - 664, 665, 666, 667, -1, -1, -1, 668, - 669, -1, 670, 671, -1, -1, 672, -1, - -1, -1, -1, -1, -1, -1, 673, -1, - 674, -1, -1, -1, -1, -1, -1, 675, - 676, -1, 677, -}; - -static const unsigned short jisx0213_from_ucs_level2_data[] = { - /* 0x0080 */ - 0x2922, 0x2923, 0x2171, 0x2172, 0x2924, 0x2925, 0x2178, 0x212f, - 0x2926, 0x2927, 0x2928, 0x224c, 0x2929, 0x292a, 0x292b, 0x216b, - 0x215e, 0x292c, 0x292d, 0x212d, 0x2279, 0x292e, 0x292f, 0x2930, - 0x2931, 0x2932, 0x2933, 0x2934, 0x2935, 0x2936, - /* 0x00C0 */ - 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c, 0x293d, 0x293e, - 0x293f, 0x2940, 0x2941, 0x2942, 0x2943, 0x2944, 0x2945, 0x2946, - 0x2947, 0x2948, 0x2949, 0x294a, 0x294b, 0x294c, 0x294d, 0x215f, - 0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, 0x2954, 0x2955, - 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, 0x29dc, 0x295d, - 0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964, 0x2965, - 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, 0x2160, - 0x296d, 0x296e, 0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, - /* 0x0100 */ - 0x2975, 0x297a, 0x2a3a, 0x2a49, 0x2a21, 0x2a2c, 0x2a3c, 0x2a4b, - 0x2a59, 0x2a5f, 0x2a3d, 0x2a4c, 0x2a40, 0x2a4f, 0x2a50, 0x2978, - 0x297d, 0x2a3e, 0x2a4d, 0x2a3f, 0x2a4e, 0x2a5a, 0x2a60, 0x2a5b, - 0x2a61, 0x2a7d, 0x2976, 0x297b, 0x2a5c, 0x2a62, 0x2a3b, 0x2a4a, - 0x2a24, 0x2a2f, - /* 0x0140 */ - 0x2a23, 0x2a2e, 0x2a41, 0x2a51, 0x2a42, 0x2a52, 0x2a7a, 0x2979, - 0x297e, 0x2a43, 0x2a53, 0x2b2b, 0x2b2a, 0x2a39, 0x2a48, 0x2a44, - 0x2a54, 0x2a25, 0x2a30, 0x2a5d, 0x2a63, 0x2a27, 0x2a33, 0x2a26, - 0x2a32, 0x2a47, 0x2a57, 0x2a28, 0x2a34, 0x2977, 0x297c, 0x2a5e, - 0x2a64, 0x2a45, 0x2a55, 0x2a46, 0x2a56, 0x2a29, 0x2a35, 0x2a2b, - 0x2a38, 0x2a2a, 0x2a37, - /* 0x0180 */ - 0x2b29, - /* 0x01C0 */ - 0x2b24, 0x286f, 0x2870, 0x2871, 0x2876, 0x2877, 0x2878, 0x2879, - 0x287a, 0x287b, 0x287c, 0x2874, 0x2875, 0x2b45, - /* 0x0240 */ - 0x2b33, 0x2b39, 0x2b3a, 0x2b25, 0x2bb8, 0x2b3f, 0x2a6e, 0x2b26, - 0x2b2e, 0x2bb0, 0x2bc3, 0x2b31, 0x2b32, 0x2a75, 0x2b28, 0x2a79, - 0x2b36, 0x2b3c, 0x2b22, 0x2b42, 0x2b2c, 0x2a6a, 0x2a74, 0x2a6b, - 0x2b34, 0x2a7b, 0x2a65, 0x2a76, 0x2a6f, 0x2b2f, 0x2a6c, 0x2b41, - 0x2a73, 0x2a70, 0x2a67, - /* 0x0280 */ - 0x2a7c, 0x2a71, 0x2a68, 0x2b27, 0x2a6d, 0x2b2d, 0x2b35, 0x2a66, - 0x2bb7, 0x2b3b, 0x2a78, 0x2a72, 0x2b40, 0x2a69, 0x2b21, 0x2a7e, - 0x2b23, 0x2a77, 0x2b3e, 0x2b3d, - /* 0x02C0 */ - 0x2a31, 0x2b53, 0x2b54, 0x2b55, 0x2b56, 0x2a22, 0x2a58, 0x2a2d, - 0x2a36, 0x2b71, 0x2be0, 0x2b61, 0x2b62, 0x2b63, 0x2be4, - /* 0x0300 */ - 0x2b5c, 0x2b5a, 0x2b5f, 0x2b7d, 0x2b5b, 0x2b57, 0x2b6d, 0x2b59, - 0x2b5e, 0x2b5d, 0x2b78, 0x2b79, 0x2b7e, 0x2b6a, 0x2b76, 0x2b77, - 0x2b6b, 0x2b6c, 0x2b72, 0x2b67, 0x2b6f, 0x2b7a, 0x2b68, 0x2b70, - 0x2b73, 0x2b75, 0x2b69, 0x2b7b, 0x2b7c, 0x2b74, 0x2b6e, - /* 0x0340 */ - 0x2b52, - /* 0x0380 */ - 0x2621, 0x2622, 0x2623, 0x2624, 0x2625, 0x2626, 0x2627, 0x2628, - 0x2629, 0x262a, 0x262b, 0x262c, 0x262d, 0x262e, 0x262f, 0x2630, - 0x2631, 0x2632, 0x2633, 0x2634, 0x2635, 0x2636, 0x2637, 0x2638, - 0x2641, 0x2642, 0x2643, 0x2644, 0x2645, 0x2646, 0x2647, 0x2648, - 0x2649, 0x264a, 0x264b, 0x264c, 0x264d, 0x264e, 0x264f, - /* 0x03C0 */ - 0x2650, 0x2651, 0x2659, 0x2652, 0x2653, 0x2654, 0x2655, 0x2656, - 0x2657, 0x2658, - /* 0x0400 */ - 0x2727, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2728, - 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, 0x272f, 0x2730, - 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, - 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f, 0x2740, - 0x2741, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2758, - 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, 0x275e, 0x275f, 0x2760, - 0x2761, - /* 0x0440 */ - 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2768, 0x2769, - 0x276a, 0x276b, 0x276c, 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, - 0x2757, - /* 0x1E00 */ - 0x2872, 0x2873, - /* 0x1F40 */ - 0x2b46, 0x2b47, 0x2b50, 0x2b51, - /* 0x2000 */ - 0x213e, 0x237c, 0x213d, 0x2142, 0x2146, 0x2147, 0x2148, 0x2149, - 0x2277, 0x2278, 0x2340, 0x2145, 0x2144, 0x2273, 0x216c, 0x216d, - 0x2228, 0x286b, 0x2b58, - /* 0x2040 */ - 0x2c7e, 0x286c, 0x286d, 0x286e, 0x2c7d, - /* 0x2080 */ - 0x2921, - /* 0x2100 */ - 0x216e, 0x235d, 0x235f, 0x2d62, 0x2d64, 0x2360, 0x2272, 0x235c, - /* 0x2140 */ - 0x2778, 0x2779, 0x277a, 0x2d35, 0x2d36, 0x2d37, 0x2d38, 0x2d39, - 0x2d3a, 0x2d3b, 0x2d3c, 0x2d3d, 0x2d3e, 0x2d3f, 0x2d57, 0x2c35, - 0x2c36, 0x2c37, 0x2c38, 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, - 0x2c3e, 0x2c3f, 0x2c40, - /* 0x2180 */ - 0x222b, 0x222c, 0x222a, 0x222d, 0x2271, 0x2327, 0x2325, 0x2326, - 0x2328, - /* 0x21C0 */ - 0x2329, 0x224d, 0x224e, 0x232b, 0x232c, 0x232a, 0x232d, - /* 0x2200 */ - 0x224f, 0x225f, 0x2250, 0x2247, 0x2260, 0x223a, 0x2246, 0x223b, - 0x215d, 0x235b, 0x2265, 0x2267, 0x2167, 0x2d78, 0x225c, 0x2254, - 0x2255, 0x224a, 0x224b, 0x2241, 0x2240, 0x2269, 0x226a, 0x2d73, - 0x2168, 0x2268, 0x2266, - /* 0x2240 */ - 0x226c, 0x226d, 0x226e, 0x2262, 0x2162, 0x2261, 0x226b, 0x2165, - 0x2166, 0x2263, 0x2264, 0x226f, 0x2270, - /* 0x2280 */ - 0x223e, 0x223f, 0x2242, 0x2243, 0x223c, 0x223d, 0x2244, 0x2245, - 0x2251, 0x2252, 0x2253, 0x225d, 0x2d79, - /* 0x22C0 */ - 0x2776, 0x2777, - /* 0x2300 */ - 0x2248, 0x2249, 0x225e, 0x277c, - /* 0x2380 */ - 0x2742, 0x2743, - /* 0x23C0 */ - 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, - 0x274c, 0x274d, 0x274e, 0x274f, 0x2750, 0x277e, - /* 0x2400 */ - 0x277d, - /* 0x2440 */ - 0x2d21, 0x2d22, 0x2d23, 0x2d24, 0x2d25, 0x2d26, 0x2d27, 0x2d28, - 0x2d29, 0x2d2a, 0x2d2b, 0x2d2c, 0x2d2d, 0x2d2e, 0x2d2f, 0x2d30, - 0x2d31, 0x2d32, 0x2d33, 0x2d34, - /* 0x24C0 */ - 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, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x2c2f, 0x2c30, - 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x265a, 0x265b, 0x265c, 0x265d, - 0x265e, 0x265f, 0x2660, 0x2661, 0x2662, 0x2663, - /* 0x2500 */ - 0x2821, 0x282c, 0x2822, 0x282d, 0x2823, 0x282e, 0x2824, 0x282f, - 0x2826, 0x2831, 0x2825, 0x2830, 0x2827, 0x283c, 0x2837, 0x2832, - 0x2829, 0x283e, 0x2839, 0x2834, 0x2828, 0x2838, 0x283d, 0x2833, - 0x282a, 0x283a, 0x283f, 0x2835, 0x282b, 0x283b, - /* 0x2540 */ - 0x2840, 0x2836, - /* 0x2580 */ - 0x2223, 0x2222, 0x266d, 0x2225, 0x2224, 0x2322, 0x2321, 0x2227, - 0x2226, - /* 0x25C0 */ - 0x2324, 0x2323, 0x2221, 0x217e, 0x233b, 0x217b, 0x217d, 0x217c, - 0x2867, 0x2868, 0x2869, 0x286a, 0x233f, 0x227e, - /* 0x2600 */ - 0x2668, 0x2669, 0x266a, 0x266b, 0x217a, 0x2179, 0x2667, 0x2664, - 0x2665, 0x2d7e, - /* 0x2640 */ - 0x216a, 0x2169, 0x263a, 0x263d, 0x263b, 0x2640, 0x2639, 0x263e, - 0x263c, 0x263f, 0x266c, 0x227d, 0x2276, 0x227b, 0x227c, 0x2275, - 0x227a, 0x2274, - /* 0x2700 */ - 0x277b, - /* 0x2740 */ - 0x2d7d, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, 0x2c27, - 0x2c28, 0x2c29, 0x2c2a, - /* 0x2900 */ - 0x232e, 0x232f, - /* 0x2980 */ - 0x233a, - /* 0x29C0 */ - 0x237d, 0x237e, - /* 0x3000 */ - 0x2121, 0x2122, 0x2123, 0x2137, 0x2139, 0x213a, 0x213b, 0x2152, - 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, - 0x215b, 0x2229, 0x222e, 0x214c, 0x214d, 0x225a, 0x225b, 0x2258, - 0x2259, 0x2141, 0x2d60, 0x2d61, 0x2666, 0x2233, 0x2234, 0x2235, - 0x2236, 0x2237, 0x233c, - /* 0x3040 */ - 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, - 0x2429, 0x242a, 0x24ab, 0x242c, 0x24ad, 0x242e, 0x24af, 0x2430, - 0x24b1, 0x2432, 0x24b3, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, - 0x2439, 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, - 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, - 0x2449, 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, - 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, - 0x2459, 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, - /* 0x3080 */ - 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, - 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, - 0x2470, 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x212b, - 0x212c, 0x2135, 0x2136, 0x2239, 0x237b, 0x2521, 0x2522, 0x2523, - 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x25ab, - 0x252c, 0x25ad, 0x252e, 0x25af, 0x2530, 0x25b1, 0x2532, 0x25b3, - 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x25bb, - 0x253c, 0x253d, 0x253e, 0x253f, - /* 0x30C0 */ - 0x2540, 0x2541, 0x2542, 0x2543, 0x25c4, 0x2545, 0x2546, 0x2547, - 0x25c8, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, - 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, - 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, - 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, - 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, - 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2772, - 0x2773, 0x2774, 0x2775, 0x2126, 0x213c, 0x2133, 0x2134, 0x2238, - /* 0x31C0 */ - 0x266e, 0x266f, 0x2670, 0x2671, 0x2672, 0x2673, 0x2674, 0x26f5, - 0x2676, 0x2677, 0x2679, 0x267a, 0x267b, 0x267c, 0x267d, 0x267e, - /* 0x3200 */ - 0x2d6a, 0x2d6b, 0x2d6c, - /* 0x3240 */ - 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, 0x2846, 0x2847, 0x2848, - 0x2849, 0x284a, 0x284b, 0x284c, 0x284d, 0x284e, 0x284f, - /* 0x3280 */ - 0x2d65, 0x2d66, 0x2d67, 0x2d68, 0x2d69, 0x2850, 0x2851, 0x2852, - 0x2853, 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, 0x285a, - 0x285b, 0x285c, 0x285d, 0x285e, - /* 0x32C0 */ - 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f, 0x2c60, 0x2c61, 0x2c62, - 0x2c63, 0x2c64, 0x2c65, 0x2c66, 0x2c67, 0x2c68, 0x2c69, 0x2c6a, - 0x2c6b, 0x2c6c, 0x2c6d, 0x2c6e, 0x2c71, 0x2c70, 0x2c73, 0x2c72, - 0x2c6f, - /* 0x3300 */ - 0x2d46, 0x2d4a, 0x2d41, 0x2d44, 0x2d42, 0x2d4c, 0x2d4b, 0x2d45, - 0x2d4d, 0x2d47, 0x2d4f, - /* 0x3340 */ - 0x2d40, 0x2d4e, 0x2d43, 0x2d48, 0x2d49, 0x2d5f, 0x2d6f, 0x2d6e, - 0x2d6d, - /* 0x3380 */ - 0x2d53, 0x2d54, 0x2d50, 0x2d51, 0x2d52, 0x2d56, - /* 0x33C0 */ - 0x2d55, 0x235e, 0x2d63, - /* 0x3400 */ - 0x2e23, 0xa12d, 0xa132, 0xa133, - /* 0x3440 */ - 0xa15e, 0xa156, - /* 0x3480 */ - 0xa17e, 0x2e53, 0xa32b, - /* 0x34C0 */ - 0xf468, 0xa32f, 0x2e5b, - /* 0x3500 */ - 0xa348, - /* 0x3540 */ - 0xa35d, 0xa35e, 0xa361, 0xa367, - /* 0x3580 */ - 0xa423, 0xa426, - /* 0x35C0 */ - 0xa42f, 0xa438, 0xa442, - /* 0x3600 */ - 0xa44a, - /* 0x3640 */ - 0xa479, - /* 0x3680 */ - 0xa53f, 0xa543, 0xa541, - /* 0x36C0 */ - 0xa557, - /* 0x3740 */ - 0xa823, 0xa825, 0xa829, 0xa828, 0xa82c, - /* 0x3780 */ - 0x4f5f, - /* 0x37C0 */ - 0xa83e, 0x4f6f, 0xa856, 0xa859, 0xa85c, - /* 0x3800 */ - 0xa85e, 0xa86f, 0xa871, - /* 0x3840 */ - 0xa874, 0xa879, 0xa87b, - /* 0x38C0 */ - 0xac3b, - /* 0x3900 */ - 0xac46, 0xac4a, - /* 0x3940 */ - 0xac60, - /* 0x3A40 */ - 0xad5b, 0xad5f, - /* 0x3AC0 */ - 0xad71, 0xae36, 0xad7c, - /* 0x3B00 */ - 0xae2e, 0xae32, 0xae34, 0x7549, - /* 0x3B40 */ - 0xae6d, 0xae65, - /* 0x3B80 */ - 0xaf28, 0xaf29, 0xaf2c, 0xaf34, 0x757e, - /* 0x3BC0 */ - 0x7621, 0xaf48, 0xaf5d, - /* 0x3C00 */ - 0x763a, 0xaf77, - /* 0x3CC0 */ - 0xee3b, 0xee42, - /* 0x3D00 */ - 0xee71, 0xee7e, - /* 0x3D40 */ - 0xef40, - /* 0x3D80 */ - 0xef54, - /* 0x3DC0 */ - 0xef70, 0xef77, - /* 0x3E00 */ - 0xf028, 0x7766, - /* 0x3E40 */ - 0xf03f, 0xf041, 0xf042, - /* 0x3E80 */ - 0xf049, 0xf050, - /* 0x3F40 */ - 0xf134, 0x784d, 0xf146, 0xf148, - /* 0x3F80 */ - 0xf15c, - /* 0x3FC0 */ - 0xf167, 0xf16c, - /* 0x4000 */ - 0xf222, - /* 0x4040 */ - 0xf22d, - /* 0x4080 */ - 0xf239, - /* 0x4100 */ - 0xf264, - /* 0x4140 */ - 0xf274, 0xf277, 0xf27d, - /* 0x4180 */ - 0xf333, 0xf337, - /* 0x41C0 */ - 0xf347, 0xf34b, 0xf348, - /* 0x4200 */ - 0xf353, 0xf357, - /* 0x4240 */ - 0x796d, - /* 0x42C0 */ - 0xf42b, 0xf436, 0xf43b, - /* 0x4300 */ - 0xf44e, 0xf45d, - /* 0x4340 */ - 0xf461, - /* 0x43C0 */ - 0xf53e, 0xf542, - /* 0x4400 */ - 0xf548, 0xf54a, 0xf54c, 0xf54f, - /* 0x4440 */ - 0x7a59, 0x7a5a, 0xf56c, 0xf56e, - /* 0x4480 */ - 0xf577, 0xf635, 0xf632, - /* 0x44C0 */ - 0xf634, - /* 0x4500 */ - 0xf659, 0xf654, 0xf66d, - /* 0x4540 */ - 0xf66e, - /* 0x4580 */ - 0x7b51, 0xf74f, - /* 0x45C0 */ - 0xf76c, 0x7b60, - /* 0x4600 */ - 0xf824, - /* 0x4640 */ - 0xf83a, 0xf843, - /* 0x4680 */ - 0xf84e, 0xf853, - /* 0x4700 */ - 0xf86b, - /* 0x4740 */ - 0xf929, - /* 0x47C0 */ - 0xf93f, - /* 0x4800 */ - 0xf949, - /* 0x4840 */ - 0x7c4b, 0xf95c, - /* 0x4880 */ - 0xfa27, - /* 0x4980 */ - 0x7d58, - /* 0x49C0 */ - 0xfb6a, 0xfb70, - /* 0x4A00 */ - 0xfb75, 0xfb78, - /* 0x4A80 */ - 0xfc37, - /* 0x4B00 */ - 0xfc55, - /* 0x4BC0 */ - 0xfd26, 0xfd28, 0xfd2a, 0xfd31, - /* 0x4C00 */ - 0x7e3e, 0xfd3f, - /* 0x4CC0 */ - 0xfe2a, 0xfe2d, - /* 0x4D00 */ - 0xfe4b, - /* 0x4D40 */ - 0xfe60, - /* 0x4E00 */ - 0x306c, 0x437a, 0xa122, 0x3c37, 0x4b7c, 0x3e66, 0x3b30, 0x3e65, - 0x323c, 0x4954, 0x4d3f, 0xa123, 0x5022, 0x312f, 0xa124, 0x336e, - 0x5023, 0x4024, 0x5242, 0x3556, 0x4a3a, 0x3e67, 0x4e3e, 0x4a42, - 0x2e24, 0xa125, 0x5024, 0xa126, 0xf02e, 0x4366, 0xa127, 0x2e25, - 0x2e26, 0x5025, 0x367a, 0x5026, 0x345d, 0x4330, 0x3c67, 0x5027, - 0x5028, - /* 0x4E40 */ - 0xa128, 0x5029, 0x4735, 0x3557, 0xa129, 0xa12a, 0x4737, 0x4663, - 0x3843, 0x4b33, 0xa12c, 0x6949, 0x502a, 0x3e68, 0x502b, 0x3235, - 0xa12f, 0x3665, 0x3870, 0x4c69, 0x5626, 0xa130, 0x4d70, 0x467d, - 0x3425, - /* 0x4E80 */ - 0x3535, 0x502c, 0x502d, 0x4e3b, 0x4d3d, 0x4168, 0x502f, 0x3b76, - 0x4673, 0x2e27, 0x5032, 0x313e, 0x385f, 0x385e, 0x3066, 0x4f4b, - 0x4f4a, 0x3a33, 0x3021, 0xa131, 0x5033, 0x5034, 0x5035, 0x4b34, - 0x5036, 0x3872, 0x3067, 0x4b72, 0x357c, 0x357d, 0x357e, 0x4462, - 0x4e3c, 0x5037, 0x5038, 0x5039, 0xa134, 0x3f4d, 0xa135, 0xa137, - /* 0x4EC0 */ - 0x3d3a, 0x3f4e, 0x503e, 0xa138, 0x503c, 0x503d, 0x3558, 0xa139, - 0x3a23, 0x3270, 0x503b, 0x503a, 0x4a29, 0xa13a, 0x3b46, 0x3b45, - 0x423e, 0x503f, 0x4955, 0x4067, 0xa13c, 0x2138, 0x5040, 0x5042, - 0x2e28, 0x4265, 0x4e61, 0x304a, 0xa13b, 0x5041, 0x323e, 0x3644, - 0xa13d, 0x4367, 0xa13e, 0x376f, 0x5043, 0x4724, 0x2e29, 0x2e2a, - /* 0x4F00 */ - 0xa13f, 0x346b, 0x2e2b, 0x5044, 0x304b, 0x2e2c, 0x3860, 0x346c, - 0x497a, 0x4832, 0x3559, 0xa140, 0x3271, 0x5067, 0x4541, 0x476c, - 0x5046, 0x483c, 0x4e62, 0xa142, 0x3f2d, 0x3b47, 0x3b77, 0x3240, - 0xa143, - /* 0x4F40 */ - 0x4451, 0x4322, 0x504a, 0x2e2e, 0x2e2f, 0x304c, 0x4463, 0x3d3b, - 0x3a34, 0x4d24, 0x424e, 0xa144, 0x323f, 0x2e30, 0x5049, 0xa145, - 0x4d3e, 0x5045, 0x5047, 0x3a6e, 0x5048, 0x5524, 0x2e31, 0x2e2d, - 0xa141, 0x5050, 0x2e32, 0x2e33, 0x5053, 0x5051, 0x3242, 0x4a3b, - 0x504b, 0xa147, 0xa148, 0xa149, 0x504f, 0x3873, 0xa14a, 0x2e34, - 0x3b48, - /* 0x4F80 */ - 0xa14b, 0x3426, 0xa14c, 0x5054, 0x504c, 0x2e35, 0x4e63, 0x3b78, - 0x504d, 0x5052, 0xa14d, 0x2e36, 0x5055, 0x2e37, 0x504e, 0xa14e, - 0x3621, 0x304d, 0x3622, 0x3241, 0x5525, 0x4b79, 0x496e, 0x3874, - 0xa150, 0x3f2f, 0x4e37, 0xa151, 0x4a58, - /* 0x4FC0 */ - 0x3738, 0x4225, 0x3264, 0xa152, 0x2e39, 0x3d53, 0xa153, 0x5059, - 0xa154, 0x505e, 0x505c, 0xa155, 0x5057, 0x422f, 0x505a, 0x505d, - 0x505b, 0x4a5d, 0x5058, 0x2e3a, 0x3f2e, 0x4b73, 0x505f, 0x5060, - 0xa14f, 0x3d24, 0x506d, 0x2e21, 0xa157, 0x4750, 0x4936, 0x5068, - 0x4a70, 0x3236, 0x506c, - /* 0x5000 */ - 0xa158, 0x2e3b, 0x2e3c, 0x5066, 0x506f, 0x4152, 0x3844, 0x475c, - 0x2e3d, 0x6047, 0xa159, 0x506e, 0x455d, 0xa15a, 0x5063, 0x3876, - 0x2e3e, 0x3875, 0x5061, 0xa15b, 0xa15c, 0x3c5a, 0x5069, 0xa15d, - 0x4a6f, 0x434d, 0x5065, 0x3771, 0x2e3f, 0x5062, 0x506a, 0x5064, - 0x4e51, 0x506b, 0x4f41, 0x2e40, 0x3666, 0x3770, 0x2e42, - /* 0x5040 */ - 0x2e41, 0x2e43, 0xa15f, 0x5070, 0xa160, 0x5071, 0x5075, 0x304e, - 0xa161, 0x4a50, 0x5074, 0xa162, 0x5073, 0x5077, 0xa163, 0x5076, - 0x4464, 0xa164, 0x3772, 0xa165, 0xa166, 0x5078, 0xa167, 0x3c45, - 0x4226, 0x4465, 0x3676, 0x5079, 0x3536, - /* 0x5080 */ - 0x507a, 0x507c, 0xa169, 0x4b35, 0x3766, 0xa16a, 0xa16b, 0x2e44, - 0xa16c, 0xa16d, 0x3b31, 0x4877, 0x507b, 0xa16e, 0xa168, 0xa16f, - 0x3a45, 0x4d43, 0xa171, 0x507e, 0x5123, 0x507d, 0x3a44, 0x3d7d, - 0xa172, 0xa173, 0x3739, - /* 0x50C0 */ - 0x5124, 0xa174, 0x364f, 0xa175, 0x5121, 0x5122, 0x2e45, 0x462f, - 0xa178, 0x417c, 0x2e47, 0x3623, 0xa17a, 0x4b4d, 0x5125, 0xa17b, - 0x4e3d, 0x5126, 0xa17c, 0x5129, 0x5127, 0x2e48, 0x414e, 0xa17d, - 0x5128, 0x512a, 0x2e46, 0xa176, 0x512c, 0x512b, 0x4a48, - /* 0x5100 */ - 0x3537, 0x512e, 0x512f, 0x2e4b, 0x322f, 0x2e4a, 0xa321, 0x512d, - 0x2e4c, 0x3c74, 0x5132, 0x5131, 0x5130, 0xa323, 0x5056, 0x5133, - 0xa324, 0x2e4d, 0x3d7e, 0x5134, 0x4d25, 0x4c59, 0x2e4e, 0x5136, - 0x5135, 0x5138, 0x5137, 0x5139, - /* 0x5140 */ - 0x513a, 0x3074, 0x3835, 0x373b, 0x3d3c, 0x437b, 0x3624, 0x4068, - 0x3877, 0x2e4f, 0x396e, 0x513c, 0x4c48, 0x4546, 0x3b79, 0x513b, - 0x513d, 0x2e51, 0x2e52, 0x455e, 0x3375, 0xa326, 0x513e, 0x467e, - 0x4134, 0x5140, 0x5141, 0x482c, 0x3878, 0x4f3b, 0x5142, 0x3626, - 0xa328, 0x4a3c, 0x4236, 0x3671, 0x4535, 0xf474, 0x3773, - /* 0x5180 */ - 0x5143, 0x5144, 0xa329, 0x4662, 0x315f, 0x5147, 0x3a7d, 0xa32a, - 0x5146, 0x3a46, 0x5148, 0x666e, 0x5149, 0x4b41, 0x514a, 0x514b, - 0x514c, 0x3e69, 0xa32c, 0x3c4c, 0x2e54, 0x3427, 0x514f, 0xa32d, - 0x514d, 0x4c3d, 0x514e, 0x495a, 0x5150, 0x5151, 0x5152, 0x455f, - 0xa32e, 0x5156, 0x5154, 0x5155, 0x5153, 0x3a63, 0x5157, 0x4c6a, - 0x4e64, 0xa330, 0x5158, - /* 0x51C0 */ - 0x2e55, 0x4028, 0x5159, 0x3d5a, 0x515a, 0x2e56, 0x437c, 0x4e3f, - 0x4560, 0x5245, 0x515b, 0x7425, 0x3645, 0x2e57, 0x515c, 0x4b5e, - 0x2e58, 0x3d68, 0x427c, 0x515e, 0x4664, 0x515f, 0x2e59, 0x5160, - 0x332e, 0xa333, 0xa334, 0x5161, 0x3627, 0x464c, 0x317a, 0x3d50, - 0x4821, 0x5162, - /* 0x5200 */ - 0x4561, 0x2e5a, 0xa335, 0x3f4f, 0x5163, 0x4a2c, 0x405a, 0x3422, - 0x3429, 0x5164, 0x5166, 0x373a, 0xa336, 0x2e5c, 0x5165, 0x2e5d, - 0xa337, 0x4e73, 0x3d69, 0x483d, 0x4a4c, 0x5167, 0x4d78, 0x5168, - 0x5169, 0x457e, 0x516a, 0x4029, 0x3a7e, 0x3774, 0x516b, 0x3b49, - 0x396f, - /* 0x5240 */ - 0x4466, 0x516d, 0x4227, 0x2e5e, 0x3a6f, 0x516e, 0x516f, 0x4130, - 0x516c, 0x5171, 0xa339, 0x4b36, 0x2e5f, 0x3964, 0xa33a, 0x2f7e, - 0x5170, 0x2e60, 0x3775, 0x3a5e, 0x476d, 0x5174, 0x5172, 0xa33b, - 0x497b, 0x3e6a, 0x517b, 0x3364, 0x5175, 0x5173, 0x414f, 0xa33c, - 0x5177, 0x5176, - /* 0x5280 */ - 0xa33e, 0x3344, 0xa33d, 0x3760, 0x517c, 0x4e2d, 0x5178, 0x517d, - 0x517a, 0x2e61, 0x5179, 0xa340, 0x4e4f, 0x3879, 0x3243, 0x4e74, - 0xa342, 0xa343, 0x3d75, 0x4558, 0x3965, 0x5222, 0x5223, 0xa344, - 0x4e65, 0x4f2b, 0x5225, 0x387a, 0xa345, 0xa346, 0x5224, 0x332f, - /* 0x52C0 */ - 0x5226, 0x4b56, 0x443c, 0x4d26, 0x2e62, 0x4a59, 0xa347, 0x2e64, - 0x5227, 0x2e65, 0xa349, 0x7055, 0x4630, 0x2e66, 0x5228, 0x342a, - 0x4c33, 0x2e67, 0x3e21, 0x5229, 0x4a67, 0x522d, 0x402a, 0x522a, - 0x3650, 0x522b, 0x342b, 0x2e69, 0x372e, 0x522e, 0x522f, 0xa34b, - 0x5230, 0x5231, 0x3c5b, 0x2e6a, 0x387b, 0x4c5e, - /* 0x5300 */ - 0x2e6b, 0x4c68, 0x4677, 0x4a71, 0x5232, 0x2e6c, 0x5233, 0xa34c, - 0xa34d, 0x5235, 0x5237, 0x5236, 0x5238, 0x323d, 0x4b4c, 0x3a7c, - 0x5239, 0x2e6d, 0x4159, 0x3e22, 0x3629, 0x523a, 0xa34e, 0x485b, - 0x523b, 0x523c, 0x523d, 0xa34f, 0x523e, 0x4924, 0x3668, 0x3065, - 0xa350, 0x463f, - /* 0x5340 */ - 0x523f, 0x3d3d, 0xa351, 0x4069, 0x5241, 0x5240, 0x3e23, 0x3861, - 0x5243, 0x483e, 0x5244, 0x485c, 0x4234, 0x426e, 0x3628, 0x466e, - 0x4331, 0x476e, 0x4b4e, 0x5246, 0x406a, 0x2e6f, 0x2e70, 0x3735, - 0xa354, 0x5247, 0xa355, 0x5248, 0x312c, 0x3075, 0x346d, 0x4228, - 0x3551, 0x4d71, 0x524b, 0x3237, 0xa356, 0x524a, 0x2e71, 0x362a, - /* 0x5380 */ - 0x524c, 0x4c71, 0x2e72, 0x524d, 0x4e52, 0x387c, 0x2e73, 0x3836, - 0x524e, 0xa357, 0x5250, 0x524f, 0x3f5f, 0x3139, 0x315e, 0x5251, - 0x5252, 0x2e74, 0x3837, 0xa358, 0x5253, 0xa35a, 0x356e, - /* 0x53C0 */ - 0xa35b, 0x3b32, 0x5254, 0x4b74, 0x3a35, 0x355a, 0x4d27, 0x4150, - 0x483f, 0x3c7d, 0x3d47, 0xa35f, 0x3c68, 0x3c75, 0x3d76, 0xa360, - 0x4840, 0x5257, 0x3143, 0x4151, 0x387d, 0x3845, 0x3667, 0x525b, - 0x4321, 0x427e, 0x362b, 0x3e24, 0x525c, 0x525a, 0x3244, 0x4266, - 0x3c38, 0x3b4b, 0x3126, 0xa362, 0xa363, 0x3370, 0x3966, 0x3b4a, - 0x525d, - /* 0x5400 */ - 0x525e, 0x3549, 0x3346, 0x3967, 0x3548, 0x445f, 0x3125, 0x4631, - 0x4c3e, 0x3921, 0x4d79, 0x4547, 0x387e, 0x2e75, 0x372f, 0x5267, - 0x4f7e, 0x3663, 0x4b4a, 0xa365, 0x485d, 0x2e76, 0xa366, 0x5266, - 0x345e, 0x5261, 0x5262, 0x5264, 0x5265, 0x355b, 0x3f61, 0x4a2d, - 0x5263, 0x525f, 0x3863, - /* 0x5440 */ - 0x5260, 0x4f24, 0xa368, 0x4a72, 0x4468, 0x3862, 0x3970, 0x2e77, - 0x5268, 0x465d, 0xa364, 0x526c, 0xa369, 0xa36a, 0x3c7e, 0x3c76, - 0x2e79, 0xa36b, 0x526f, 0x526d, 0x4c23, 0x2e7a, 0x526a, 0x5273, - 0x526e, 0x5271, 0x3846, 0x4c3f, 0x2e7b, - /* 0x5480 */ - 0x5272, 0x5274, 0x5276, 0x2e7c, 0xa36c, 0x3a70, 0x4f42, 0xa36d, - 0x526b, 0x5269, 0x5275, 0x5270, 0xa36e, 0x2e7d, 0x2e78, 0xa36f, - 0x2e7e, 0x5278, 0x5323, 0x527a, 0xa370, 0x527e, 0x2f21, 0x5321, - 0x527b, 0xa371, 0xa372, 0x533e, 0x3a69, 0x3331, 0xa373, 0x5279, - 0xa374, 0x5325, 0x3076, 0x5324, 0xa375, - /* 0x54C0 */ - 0x3025, 0x494a, 0x5322, 0xa376, 0x527c, 0x2f22, 0x5277, 0x527d, - 0x3a48, 0x5326, 0x3077, 0x532f, 0x5327, 0x5328, 0x3e25, 0x4b69, - 0xa378, 0x532d, 0x532c, 0xa379, 0xa37a, 0x452f, 0xa37b, 0x532e, - 0x532b, 0x2f23, - /* 0x5500 */ - 0xa37c, 0xa37d, 0x3134, 0x3a36, 0x3f30, 0xa37e, 0x2f24, 0x5329, - 0x4562, 0x532a, 0x3022, 0x2f25, 0x5334, 0x4d23, 0x3e27, 0x533a, - 0x2f26, 0x5339, 0x5330, 0xa421, 0x4243, - /* 0x5540 */ - 0x5331, 0xa422, 0x426f, 0x5336, 0x3e26, 0xa424, 0xa425, 0x5333, - 0x4c64, 0x2f27, 0x373c, 0x5337, 0x5338, 0x5335, 0x533b, 0x2f28, - 0xa427, 0xa428, 0x5332, 0xa429, 0x5341, 0x5346, 0xa42b, 0x5342, - /* 0x5580 */ - 0x533d, 0x2f29, 0xa42c, 0x5347, 0x4131, 0x2f2a, 0x5349, 0xa42d, - 0x3922, 0x533f, 0x437d, 0x2f2b, 0xa42e, 0x5343, 0x533c, 0x342d, - 0x346e, 0x3365, 0x5344, 0x5340, 0x3776, 0x534a, 0x5348, 0x4153, - 0x354a, 0x362c, 0x2f2d, 0x5345, 0x3674, 0x3144, 0xa433, - /* 0x55C0 */ - 0x534e, 0x534c, 0x5427, 0xa434, 0xa435, 0x2f2e, 0xa436, 0xa430, - 0x5351, 0x534b, 0x534f, 0xa437, 0x534d, 0xa439, 0x3b4c, 0x5350, - 0xa43b, 0x5353, 0x5358, 0x5356, 0x5355, - /* 0x5600 */ - 0x4332, 0xa43e, 0x2f30, 0x3245, 0x2f31, 0xa43f, 0x5352, 0x5354, - 0x3e28, 0x3133, 0x5357, 0xa43c, 0x325e, 0x5362, 0xa440, 0x3e7c, - 0x535e, 0x535c, 0x535d, 0xa441, 0x535f, 0x2f32, 0xa443, 0xa444, - /* 0x5640 */ - 0xa445, 0x313d, 0xa446, 0x2f33, 0x4139, 0x5359, 0x535a, 0x7427, - 0x337a, 0xa447, 0xa448, 0x5361, 0x2f35, 0x346f, 0x5364, 0x5360, - 0x5363, 0xa449, 0x2f37, 0x2f38, 0x2f39, 0x4a2e, 0x2f34, 0x4655, - 0x4838, - /* 0x5680 */ - 0x5366, 0x5365, 0x3345, 0xa44b, 0x5367, 0xa44c, 0x536a, 0x5369, - 0xa44d, 0x2f3a, 0xa44e, 0xa44f, 0x2f3b, 0x5368, 0x4739, 0x536b, - 0xa450, 0x2f3c, 0x2f3d, 0xa451, 0x536c, 0xa452, 0x2f3e, 0x536e, - 0x536d, 0x5370, - /* 0x56C0 */ - 0x5373, 0x5371, 0x536f, 0x5372, 0xa453, 0x5374, 0x2f3f, 0x2f40, - 0xa454, 0x5375, 0x5376, 0x5377, 0x5378, 0x5145, 0x3c7c, 0x3b4d, - 0x3273, 0xa455, 0x3078, 0x4344, 0xa456, 0x5379, 0x3a24, 0x304f, - 0x3f5e, 0xa457, 0xa458, 0x537a, 0x3847, 0x3971, 0x537c, - /* 0x5700 */ - 0x537b, 0x4a60, 0x537d, 0x5421, 0x537e, 0x2f41, 0x5422, 0x5423, - 0x3777, 0x3160, 0x5424, 0xa45a, 0x5426, 0x5425, 0x5428, 0x455a, - 0x2f43, 0xa45b, 0x5429, 0x3035, 0x3a5f, 0xa45d, 0x373d, 0x2f44, - 0x434f, 0x2f45, 0x2f46, 0x542a, 0x542b, 0x542d, - /* 0x5740 */ - 0x542e, 0x3a64, 0xa45f, 0xa460, 0x3651, 0x4b37, 0xa461, 0xa462, - 0x542c, 0x542f, 0x3a41, 0x3923, 0x5433, 0x3a25, 0x4333, 0xa464, - 0x5430, 0x445a, 0xa465, 0x2f47, 0xa466, 0xa467, 0xa468, 0x2f48, - 0xa469, 0x2f49, 0x5434, - /* 0x5780 */ - 0x3f62, 0x5432, 0x5435, 0x373f, 0x5436, 0xa46d, 0x2f4a, 0xa46e, - 0xa46f, 0x5437, 0x3924, 0x3340, 0x5439, 0xa470, 0x543a, 0xa46c, - 0x543b, 0x5438, 0x2f4d, - /* 0x57C0 */ - 0x5431, 0x543c, 0x543d, 0x2f4e, 0x2f4f, 0x4b64, 0xa473, 0x3e6b, - 0x2f50, 0x543f, 0x5440, 0x543e, 0x5442, 0xa471, 0x4738, 0xa476, - 0x3068, 0x4956, 0x5443, 0x2f51, 0xa477, 0x2f52, 0xa478, 0x3e7d, - 0x2f53, 0x2f54, 0x3c39, 0xa47a, 0x475d, 0x3470, 0xa47b, 0x3a6b, - 0xa47c, 0x2f55, - /* 0x5800 */ - 0x4b59, 0x4632, 0xa47d, 0x3778, 0x424f, 0x2f56, 0x5441, 0x5444, - 0x4244, 0x5445, 0x5446, 0xa47e, 0xa521, 0x5448, 0x4469, 0xa522, - 0x342e, 0x7421, 0x3161, 0x4a73, 0xa523, 0x3e6c, 0x4548, 0xa524, - 0x3a66, 0x544e, - /* 0x5840 */ - 0x4a3d, 0x4e5d, 0xa526, 0x3274, 0x544a, 0xa527, 0x413a, 0x544d, - 0x4563, 0x4549, 0x4564, 0x4839, 0x444d, 0x3a49, 0x2f58, 0x5449, - 0x2f59, 0xa528, 0x3176, 0x4536, 0x544b, 0x5447, 0x3f50, 0x544f, - 0x2f5b, 0x3d4e, - /* 0x5880 */ - 0x362d, 0x5450, 0x2f5c, 0xa529, 0xa52a, 0xa52b, 0xa52c, 0xa52d, - 0x4a68, 0xa52e, 0x417d, 0x4446, 0xa52f, 0x2f5d, 0x5452, 0x4b4f, - 0x2f5f, 0xa530, 0x5453, 0x5458, 0xa531, 0x4a2f, 0x5457, 0x5451, - 0x5454, 0x5456, 0x3a26, - /* 0x58C0 */ - 0x4a49, 0xa533, 0x5459, 0x4345, 0x3275, 0x3e6d, 0xa534, 0x2f62, - 0x545b, 0x2f61, 0x545a, 0x2f63, 0x3968, 0x545c, 0x545e, 0x545d, - 0x2f64, 0x5460, 0x5455, 0x5462, 0x2f65, 0xa535, 0x5461, 0x545f, - 0x2f66, 0x3b4e, 0x3f51, 0x4154, 0x5463, 0x403c, 0x306d, 0x4764, - 0xa536, 0xa537, 0x445b, 0x5465, 0x5464, 0x5466, 0x5467, 0x5468, - /* 0x5900 */ - 0x5469, 0xa538, 0xa539, 0x4a51, 0x546a, 0xa53a, 0x2f67, 0xa53b, - 0x3246, 0x546b, 0xa53c, 0x4d3c, 0x3330, 0x5249, 0x3d48, 0x423f, - 0x546c, 0x4c6b, 0x4c34, 0xa53d, 0x546e, 0x4267, 0x4537, 0x4240, - 0x4957, 0x546f, 0x5470, 0x317b, 0x3c3a, 0x5471, 0x3050, 0x5472, - 0xa540, 0x5473, - /* 0x5940 */ - 0x3162, 0xa542, 0x3471, 0x4660, 0x4a74, 0x5477, 0x4155, 0x5476, - 0x3740, 0x4b5b, 0x5475, 0x4565, 0x5479, 0x5478, 0xa545, 0x2f69, - 0xa546, 0x547b, 0x547a, 0x317c, 0x547c, 0x3e29, 0x547e, 0x4325, - 0x547d, 0x2f6a, 0x4a33, 0x3d77, 0x455b, 0xa548, 0xa549, 0x5521, - 0xa54a, 0x3925, - /* 0x5980 */ - 0x5522, 0x4721, 0x485e, 0x4c51, 0x4725, 0x2f6b, 0x552b, 0x2f6c, - 0x3538, 0x4d45, 0x4c2f, 0x562c, 0x5523, 0xa54b, 0x5526, 0x2f6d, - 0x4245, 0x4b38, 0x454a, 0xa54c, 0x5527, 0x4b65, 0x3a4a, 0xa54d, - 0x3e2a, - /* 0x59C0 */ - 0x2f6e, 0x5528, 0xa54e, 0x3b50, 0x3b4f, 0xa54f, 0x3039, 0x3848, - 0x2f6f, 0x402b, 0x3051, 0x552c, 0x552d, 0x552a, 0x2f70, 0xa550, - 0xa551, 0xa552, 0x3138, 0x342f, 0xa553, 0x5529, 0x4c45, 0x4931, - 0xa554, 0x3028, 0x7e7a, 0x3079, 0x3b51, - /* 0x5A00 */ - 0x3052, 0x3023, 0x5532, 0xa558, 0xa559, 0x5530, 0x2f71, 0xa55a, - 0x4c3c, 0x5533, 0x5531, 0x552f, 0x3f31, 0x2f72, 0x552e, 0xa55b, - 0x4a5a, 0xa55c, 0x3864, 0x5537, 0x5538, 0x3e2b, - /* 0x5A40 */ - 0x5534, 0x4f2c, 0x474c, 0x5536, 0xa55d, 0x3a27, 0x5539, 0xa55e, - 0x4958, 0x2f73, 0x553a, 0x5535, 0x2f74, 0x2f75, 0xa55f, 0x2f76, - 0x4c3b, - /* 0x5A80 */ - 0x2f77, 0xa560, 0x475e, 0x553b, 0x4932, 0xa561, 0x2f78, 0xa562, - 0xa563, 0xa564, 0x2f79, 0xa565, 0xa566, 0xa567, 0xa568, 0x553c, - 0x5540, 0x553d, 0xa569, - /* 0x5AC0 */ - 0x3247, 0x553f, 0x2f7a, 0x3c3b, 0x553e, 0x3779, 0x554c, 0x5545, - 0x5542, 0xa56a, 0xa56b, 0xa56c, 0x4364, 0x5541, 0xa56d, 0x5543, - 0x5544, 0xa56f, 0xa56e, 0xa570, 0x5546, 0x5547, - /* 0x5B00 */ - 0xa571, 0xa572, 0x3472, 0x5549, 0x5548, 0x554a, 0xa573, 0x2f7c, - 0x3e6e, 0x2f7d, 0x554d, 0x445c, 0xa575, 0x3145, 0x554b, 0xa574, - 0x554e, 0x554f, - /* 0x5B40 */ - 0x5552, 0x4f55, 0x5550, 0x5551, 0xa576, 0x3b52, 0x5553, 0xa577, - 0x3926, 0x5554, 0x4f56, 0x3b7a, 0x4238, 0x5555, 0x5556, 0x3b5a, - 0x3927, 0x4c52, 0x3528, 0x3849, 0x5557, 0x3358, 0xa578, 0x5558, - 0x4239, 0xa579, 0x5559, 0x5623, 0x555a, 0x555b, 0x555c, 0x555e, - 0xa57a, 0x4f57, 0xa57b, - /* 0x5B80 */ - 0x555f, 0xa57c, 0x5560, 0xa57d, 0x4270, 0x3127, 0x3c69, 0x3042, - 0x4157, 0x3430, 0x3c35, 0x3928, 0x4f58, 0x4566, 0xa821, 0x3d21, - 0x3431, 0x4368, 0x446a, 0x3038, 0x3539, 0x4a75, 0x3c42, 0x3552, - 0x406b, 0x3c3c, 0x4d28, 0x5561, 0xa822, 0x355c, 0x3a4b, 0x3332, - 0x3163, 0x3e2c, 0x3248, 0x5562, 0x4d46, 0x3d49, - /* 0x5BC0 */ - 0xa824, 0x3c64, 0x5563, 0x3473, 0x4652, 0x4c29, 0x5564, 0x5565, - 0x4959, 0xa826, 0x5567, 0x3428, 0x3677, 0x5566, 0xa827, 0x4f59, - 0x3432, 0x3f32, 0x556b, 0x3b21, 0x3249, 0x556a, 0x5568, 0x556c, - 0x5569, 0x472b, 0x5c4d, 0x3f33, 0x556d, 0x4f5a, 0x4e40, 0x556e, - 0xa82a, 0x5570, 0x437e, 0x556f, 0x4023, 0x3b7b, 0xa82b, 0x4250, - 0x3c77, - /* 0x5C00 */ - 0x4975, 0x406c, 0xa82d, 0x3c4d, 0x5571, 0x3e2d, 0x5572, 0x5573, - 0x3053, 0x423a, 0x3f52, 0x5574, 0x4633, 0x3e2e, 0x3e2f, 0x4f5b, - 0x5575, 0x406d, 0x3e30, 0x4f5c, 0x5576, 0x5577, 0x4f5d, 0x4c60, - 0x5578, 0xa82e, 0x4f5e, 0x3646, 0xa82f, 0x3d22, 0x5579, 0x557a, - 0x3c5c, 0x3f2c, 0x4674, 0x3f54, 0x4878, 0x4722, - /* 0x5C40 */ - 0x3649, 0x557b, 0x356f, 0x557c, 0x367e, 0x464f, 0x3230, 0x3b53, - 0x557d, 0x5622, 0x5621, 0x367d, 0x557e, 0x4538, 0x7e7b, 0x4230, - 0xa831, 0x454b, 0x3c48, 0x4f60, 0xa832, 0x4158, 0x4d7a, 0xa833, - 0xa834, 0xa835, 0x5624, 0x5625, 0x4656, 0xa836, 0x3b33, 0x5627, - 0x5628, 0x4f64, 0xa839, - /* 0x5C80 */ - 0xa83c, 0xa83d, 0x5629, 0x4f65, 0x3474, 0x562a, 0x562b, 0x4f66, - 0xa841, 0x322c, 0xa842, 0x4f67, 0xa843, 0xa844, 0x413b, 0x3464, - 0x4f68, 0x562d, 0x4c28, 0xa846, 0x4252, 0x3359, 0xa847, 0x562f, - 0x5631, 0x345f, 0x4f69, 0x562e, 0x5630, 0x5633, - /* 0x5CC0 */ - 0x5632, 0x5634, 0xa849, 0x4f6a, 0x4f6b, 0x4f6c, 0x5635, 0x463d, - 0x362e, 0x3265, 0x5636, 0x563b, 0x5639, 0x4a77, 0x4a76, 0x4f6d, - 0x4567, 0x5638, 0x3d54, 0x5637, - /* 0x5D00 */ - 0xa84c, 0x3f72, 0x563c, 0x4f70, 0x3a6a, 0xa84d, 0x5642, 0x5643, - 0x563d, 0x3333, 0x563e, 0x5647, 0x5646, 0x5645, 0x5641, 0xa84f, - 0x5640, 0xa850, 0x5644, 0xa851, 0xa852, 0x4f71, 0x4a78, 0xa84e, - 0xa853, 0xa854, - /* 0x5D40 */ - 0xa855, 0x4f73, 0x4f74, 0x4f76, 0x564b, 0x5648, 0x564a, 0x4d72, - 0x5649, 0x4f75, 0x563f, 0xa857, 0x3f73, 0xa858, 0x564c, 0x4f77, - 0x3a37, 0xa85a, 0x564d, 0x564e, - /* 0x5D80 */ - 0x4f78, 0x5651, 0x5650, 0x564f, 0xa85d, 0x4568, 0x563a, 0x5657, - 0xa85f, 0xa860, 0xa861, 0xa862, 0x5653, 0x4f79, 0x5652, 0x4f7a, - 0x4f7b, 0x5654, 0x5655, 0xa863, 0xa864, 0xa865, 0x5658, 0x4f7c, - 0xa867, 0x4e66, 0x5659, 0x5656, - /* 0x5DC0 */ - 0x565a, 0x4f7d, 0x3460, 0x565b, 0xa868, 0x565d, 0x565c, 0x565e, - 0xa869, 0xa86a, 0x565f, 0x406e, 0x3d23, 0xa86b, 0x3d64, 0x7428, - 0x4163, 0xa86d, 0x3929, 0x3a38, 0x392a, 0x3570, 0xa86e, 0x5660, - 0x3a39, 0x384a, 0x5661, 0x4c26, 0x4743, 0x5662, 0x392b, 0x342c, - 0x4327, 0x3652, - /* 0x5E00 */ - 0xa870, 0x3b54, 0x495b, 0x4841, 0x5663, 0x3475, 0x5666, 0xa872, - 0x7429, 0xa873, 0x4421, 0x742a, 0x5665, 0x5664, 0x5667, 0x446b, - 0xa875, 0x3f63, 0x3b55, 0x404a, 0xa876, 0x4253, 0x3522, 0x4422, - 0x5668, 0x5669, 0x3e6f, 0x4b39, 0xa877, - /* 0x5E40 */ - 0x566c, 0x566b, 0x566a, 0x497d, 0x5673, 0xa878, 0x4b5a, 0x566d, - 0x566f, 0x4b6b, 0xa87a, 0x566e, 0x742b, 0x742c, 0x5670, 0x4828, - 0x5671, 0x4a3e, 0x5672, 0xa87c, 0xa87d, 0xa87e, 0xac21, 0x3433, - 0x4a3f, 0x472f, 0x5674, 0x5675, 0x7e7c, 0x392c, 0x3434, 0x5676, - 0x3838, 0x4d44, 0x4d29, 0x3476, 0x5678, - /* 0x5E80 */ - 0x4423, 0x392d, 0x3e31, 0x485f, 0x3e32, 0x3d78, 0x446c, 0x4a79, - 0x4539, 0x392e, 0x495c, 0x5679, 0xac23, 0x4559, 0x3a42, 0xac24, - 0x384b, 0xac25, 0x446d, 0x3043, 0x3d6e, 0x392f, 0x4d47, 0xac26, - 0x742d, 0xac27, - /* 0x5EC0 */ - 0x567a, 0x567b, 0x4751, 0xac28, 0x567c, 0x4e77, 0x4f2d, 0x742f, - 0x567e, 0x567d, 0xac29, 0x3347, 0x5721, 0xac2a, 0x5724, 0x5725, - 0x5723, 0x4940, 0x3e33, 0x5727, 0x5726, 0x5722, 0x5728, 0x5729, - 0x572a, 0x572d, 0x572b, 0x572c, 0x572e, 0x3164, 0x446e, 0x572f, - 0x7430, 0x377a, 0x3276, 0x4736, 0xac2c, 0x5730, 0x467b, - /* 0x5F00 */ - 0x7431, 0x4a5b, 0x7432, 0x5731, 0x4f2e, 0x7433, 0xac2d, 0x5732, - 0x4a40, 0x5735, 0x5021, 0x5031, 0xac2e, 0x3c30, 0x4675, 0x5736, - 0x355d, 0x4424, 0x307a, 0x5737, 0x4a26, 0x3930, 0x4350, 0xac2f, - 0x7434, 0xac31, 0x446f, 0x7435, 0x4c6f, 0x3839, 0x384c, 0x5738, - 0x5739, 0x573f, 0x3c65, 0x7436, 0x4425, 0x7437, 0x362f, 0x573a, - 0x492b, 0x7438, 0x4346, - /* 0x5F40 */ - 0x7439, 0x573b, 0x743a, 0xac32, 0x573c, 0x3630, 0x573d, 0x573e, - 0x5740, 0x4576, 0x743b, 0x5741, 0x5742, 0x743c, 0x5743, 0x5734, - 0x5733, 0x5744, 0x3741, 0xac33, 0x743d, 0x4927, 0x743e, 0x3a4c, - 0x4937, 0x4426, 0x494b, 0x5745, 0x3e34, 0x3146, 0xac34, 0x5746, - 0x5747, 0x4c72, 0x4860, 0x743f, 0xac35, 0x574a, - /* 0x5F80 */ - 0x317d, 0x402c, 0x5749, 0x5748, 0x3742, 0x4254, 0x574e, 0x574c, - 0x7440, 0x574b, 0x4e27, 0x3865, 0xac36, 0x3d79, 0x574d, 0x454c, - 0x3d3e, 0x4640, 0x5751, 0x5750, 0x7441, 0x574f, 0x5752, 0x3866, - 0xac37, 0xac38, 0x7442, 0x5753, 0x497c, 0x3d5b, 0x5754, 0x4879, - 0x7443, 0x4641, 0x4427, 0x7444, 0x7445, 0xac39, 0x4530, 0x5755, - 0x352b, - /* 0x5FC0 */ - 0x3f34, 0xac3a, 0x492c, 0xac3c, 0x7446, 0xac3d, 0x3477, 0x4726, - 0xac3e, 0xac3f, 0xac40, 0x5756, 0x3b56, 0x4b3a, 0x4b3b, 0x317e, - 0x575b, 0x7447, 0x4369, 0x7448, 0xac41, 0x5758, 0x7449, 0x3277, - 0xac42, 0xac43, 0x582d, 0x575a, 0xac44, 0x4730, 0x5759, 0x5757, - 0xac45, 0x397a, 0x575d, - /* 0x6000 */ - 0x744a, 0x5763, 0x5769, 0x5761, 0x455c, 0x744b, 0x5766, 0x495d, - 0xac47, 0x744c, 0x5760, 0x5765, 0x4e67, 0x3b57, 0x4255, 0x575e, - 0xac48, 0xac49, 0x355e, 0x5768, 0x402d, 0x3165, 0x5762, 0x3278, - 0x5767, 0x3631, 0x5764, 0x744d, 0x744e, 0x576a, - /* 0x6040 */ - 0x576c, 0x5776, 0x5774, 0x5771, 0x744f, 0x5770, 0x4e78, 0xac4b, - 0x5772, 0x3632, 0x3931, 0x3d7a, 0x5779, 0x576b, 0x576f, 0x575f, - 0x327a, 0x5773, 0x5775, 0x4351, 0x3a28, 0x3238, 0x576d, 0x5778, - 0x5777, 0x3633, 0x4229, 0x3366, 0x3743, 0x576e, 0xac4c, - /* 0x6080 */ - 0x577a, 0x577d, 0x5821, 0x3c3d, 0xac4d, 0x5827, 0x4470, 0x577b, - 0x5825, 0x3279, 0xac4e, 0x5823, 0x5824, 0x577e, 0x5822, 0x7451, - 0x7452, 0x3867, 0x4d2a, 0x3435, 0x3159, 0x5826, 0xac4f, 0x473a, - 0x302d, 0xac51, 0xac52, 0x4861, 0x575c, 0x582c, 0x5830, 0x4c65, - 0x5829, 0x4569, 0x582e, 0xac53, - /* 0x60C0 */ - 0x3e70, 0x582f, 0x4657, 0xac54, 0x7453, 0x4f47, 0x582b, 0x7454, - 0x7455, 0x5831, 0xac55, 0x397b, 0xac56, 0x404b, 0x7456, 0x3054, - 0x582a, 0x5828, 0x415a, 0x577c, 0x3b34, 0xac57, 0x4246, 0x583d, - 0xac58, 0x415b, 0x5838, 0xac59, 0x5835, 0x5836, 0x7457, 0x3c66, - 0x5839, 0x583c, - /* 0x6100 */ - 0x5837, 0x3d25, 0x583a, 0x5834, 0x4c7c, 0x4c7b, 0x583e, 0x583f, - 0x3055, 0xac5a, 0xac5b, 0xac5c, 0x5833, 0xac5d, 0x3672, 0x3026, - 0x7458, 0xac5e, 0x3436, 0x583b, 0x5843, 0x5842, 0x7459, 0x5847, - 0x745a, 0x5848, 0x745b, 0xac5f, 0x5846, 0x5849, 0x5841, 0x5845, - /* 0x6140 */ - 0xac61, 0x584a, 0x584b, 0xac62, 0x5840, 0x3b7c, 0x5844, 0x4256, - 0x3932, 0x5832, 0x3f35, 0x5858, 0x4a69, 0x584e, 0x584f, 0x5850, - 0x5857, 0x5856, 0xac63, 0x4b7d, 0x3437, 0x5854, 0x3745, 0x3334, - 0x5851, 0x4e38, 0x5853, 0x3056, 0x5855, 0x584c, 0x5852, 0x5859, - 0x3744, 0x584d, 0xac64, 0x4d5d, - /* 0x6180 */ - 0x4d2b, 0x585c, 0x5860, 0x745d, 0x417e, 0x4e79, 0x5861, 0xac66, - 0xac67, 0x585e, 0x585b, 0xac68, 0xac69, 0x585a, 0x585f, 0x4a30, - 0xac6a, 0x4634, 0xac6b, 0x3746, 0x5862, 0x585d, 0xac6c, 0x5863, - 0x377b, 0x3231, 0x7460, 0x586b, 0x745f, 0x3438, - /* 0x61C0 */ - 0x5869, 0x586a, 0x3a29, 0x5868, 0x5866, 0x5865, 0x586c, 0x5864, - 0x586e, 0x327b, 0xac6e, 0xac6f, 0xac70, 0x5870, 0x586f, 0x4428, - 0x5873, 0xac71, 0x5871, 0x5867, 0x377c, 0x5872, 0x5876, 0x5875, - 0x5877, 0x5874, - /* 0x6200 */ - 0x5878, 0x5879, 0x587a, 0x4a6a, 0x587c, 0x587b, 0x3d3f, 0x402e, - 0x3266, 0x327c, 0x587d, 0xac73, 0x303f, 0x404c, 0x587e, 0x6c43, - 0x5921, 0x3761, 0x5922, 0x7462, 0xac74, 0x406f, 0xac75, 0x5923, - 0x5924, 0x353a, 0x5925, 0x5926, 0x5927, 0x4257, 0x384d, 0x4c61, - 0x7463, 0x4b3c, - /* 0x6240 */ - 0x3d6a, 0x5928, 0x7464, 0xac76, 0x4070, 0x6e3d, 0x4862, 0x3c6a, - 0xac77, 0x3a4d, 0x5929, 0xac78, 0xac79, 0x4247, 0x4a27, 0x7465, - 0x4271, 0x7466, 0x592c, 0x592a, 0x592d, 0xac7a, 0x592b, 0xac7b, - 0x592e, 0xac7d, 0x4a31, 0x7467, 0x3037, 0xac7e, 0x495e, 0x4863, - 0xac7c, 0x592f, 0x5932, 0x3e35, - /* 0x6280 */ - 0x353b, 0x5930, 0x5937, 0x3e36, 0x7468, 0x5931, 0x4744, 0x4d5e, - 0x5933, 0x5934, 0x5938, 0x456a, 0x5935, 0x3933, 0x405e, 0xad21, - 0x5946, 0x4834, 0x4272, 0xad22, 0x4864, 0x5a2d, 0x4a7a, 0x4471, - 0x4b75, 0x593b, 0x3221, 0x436a, - /* 0x62C0 */ - 0x5944, 0x7469, 0x4334, 0x593e, 0x5945, 0x5940, 0x5947, 0x5943, - 0x5942, 0x476f, 0x593c, 0x327d, 0x593a, 0x3571, 0x4273, 0x5936, - 0xad23, 0x746a, 0x5939, 0x3934, 0x405b, 0x3e37, 0x5941, 0x4752, - 0x3572, 0x3348, 0x3367, 0x3f21, 0x5949, 0x594e, 0x594a, 0x377d, - 0x594f, 0x3b22, 0x3969, 0x746b, 0xad25, 0x3d26, 0x593d, - /* 0x6300 */ - 0x3b7d, 0x594c, 0xad26, 0x3b58, 0x594d, 0x3044, 0x746c, 0x5948, - 0xad27, 0xad28, 0x4429, 0x746d, 0x3573, 0x3634, 0x594b, 0x3027, - 0x3a43, 0x3f36, 0xad2b, 0xad2c, 0x746e, 0x4472, 0xad2d, 0xad2e, - 0x4854, 0x5951, 0x415e, - /* 0x6340 */ - 0xad2f, 0x746f, 0xad30, 0x422a, 0x3b2b, 0x5952, 0xad31, 0x5954, - 0x5950, 0x4a61, 0x443d, 0xad33, 0x415c, 0x7470, 0x4a7b, 0x3c4e, - 0x5960, 0x595f, 0xad36, 0x3f78, 0x377e, 0x5959, 0x3e39, 0x4668, - 0x4731, 0x7471, - /* 0x6380 */ - 0x5957, 0x415d, 0xad37, 0x3c78, 0x595c, 0x3e38, 0x5956, 0x595b, - 0x4753, 0xad3a, 0x5955, 0x3721, 0xad38, 0x335d, 0x595d, 0x4e2b, - 0x3a4e, 0x4335, 0x595a, 0x405c, 0x3935, 0x3f64, 0x3166, 0x413c, - 0x5958, 0x3545, 0x3747, 0x444f, 0x595e, 0x415f, 0xad3b, 0x5961, - /* 0x63C0 */ - 0x5963, 0x4237, 0x5969, 0x5964, 0x5966, 0x4941, 0x4473, 0x5967, - 0xad3d, 0xad3e, 0x4d2c, 0x4d48, 0x3439, 0xad3f, 0xad40, 0x302e, - 0x5965, 0x7472, 0x5962, 0xad41, 0xad42, 0x7473, 0x3478, 0xad43, - 0x3167, 0x7474, 0x5968, 0xad3c, 0x4d49, - /* 0x6400 */ - 0x596c, 0xad44, 0x423b, 0x5973, 0x7475, 0x596d, 0x7476, 0x596a, - 0x5971, 0x5953, 0xad45, 0x7477, 0xad46, 0x596e, 0x5972, 0xad47, - 0x4842, 0x456b, 0xad48, 0x596b, 0x596f, 0x3748, 0x3a71, - /* 0x6440 */ - 0x405d, 0x5977, 0x7479, 0x4526, 0xad49, 0xad4a, 0xad4b, 0x747a, - 0x5974, 0x4b60, 0x747b, 0x5975, 0xad4c, 0x5976, 0x4c4e, 0x7478, - 0x4022, 0xad4d, - /* 0x6480 */ - 0x3762, 0xad4e, 0x597d, 0xad4f, 0x3b35, 0x597a, 0x5979, 0x4732, - 0xad50, 0x4635, 0xad51, 0x4531, 0x597b, 0x597c, 0x496f, 0x4745, - 0x3b23, 0x4071, 0x4b50, 0x3349, 0x5a25, 0x597e, 0x747d, 0x747e, - /* 0x64C0 */ - 0x4d4a, 0x5a27, 0x7521, 0x5a23, 0x5a24, 0x7522, 0xad52, 0xad53, - 0x4160, 0x747c, 0x7523, 0x5a22, 0x593f, 0xad54, 0xad55, 0x5a26, - 0x5a21, 0x5a2b, 0x5a2c, 0x4527, 0x5a2e, 0xad57, 0xad58, 0x3b24, - 0x5a29, 0x353c, 0x5a2f, 0x5a28, 0x5a33, 0x5a32, 0x5a31, 0x7524, - 0x5a34, 0x7525, 0x5a36, 0x3e71, 0xad59, - /* 0x6500 */ - 0x5a35, 0xad5a, 0x5a39, 0xad5c, 0xad5d, 0xad5e, 0x5a37, 0x5a38, - 0x5970, 0xad60, 0x7526, 0x5a3b, 0x5a3a, 0x7527, 0x5978, 0x5a3c, - 0x5a30, 0x3b59, 0xad61, 0x5a3d, 0x5a3e, 0x5a40, 0x5a3f, 0x5a41, - 0x327e, 0x3936, 0x4a7c, 0x402f, - /* 0x6540 */ - 0xad62, 0x384e, 0x5a43, 0x5a46, 0x4952, 0x355f, 0xad63, 0x5a45, - 0x5a44, 0x4754, 0x5a47, 0x3635, 0x5a49, 0x5a48, 0x343a, 0x3b36, - 0x4658, 0x7529, 0xad64, 0x3749, 0x3f74, 0x5a4a, 0x4030, 0x4528, - 0x495f, 0x5a4b, 0xad65, - /* 0x6580 */ - 0xad66, 0x5a4c, 0x5a4d, 0xad67, 0xad68, 0x4a38, 0x555d, 0x4046, - 0xad69, 0x494c, 0x3a58, 0x4865, 0x4843, 0x454d, 0x4e41, 0x5a4f, - 0x3c50, 0x752a, 0x5a50, 0x3036, 0x3654, 0x404d, 0x4960, 0x5a51, - 0x3b42, 0x4347, 0x3b5b, 0x3f37, 0xad6a, 0xad6b, 0x5a52, 0xad6c, - 0x4a7d, 0x3177, 0x3b5c, 0xad6d, - /* 0x65C0 */ - 0x5a55, 0xad6e, 0x5a53, 0x5a56, 0x4e39, 0x5a54, 0xad6f, 0x407b, - 0x5a57, 0x4232, 0x5a58, 0xad70, 0x347a, 0x5a5a, 0x5a59, 0x5a5b, - 0x5a5c, 0x347b, 0x467c, 0x4336, 0x356c, 0x3b5d, 0x4161, 0x3d5c, - 0x3030, 0x5a5d, 0xad72, 0xad73, 0x3222, 0x5a61, 0xad74, - /* 0x6600 */ - 0x752c, 0x3937, 0x5a60, 0xad75, 0x3a2b, 0x3e3a, 0xad76, 0x752d, - 0x5a5f, 0x3e3b, 0x4c40, 0x3a2a, 0x3057, 0x404e, 0x752e, 0x5a66, - 0x752f, 0x4031, 0x3147, 0xad77, 0x7531, 0x7532, 0x3d55, 0x4b66, - 0x3a72, 0xad78, 0x7533, 0x3e3c, 0x4027, 0x7534, 0x7535, 0x7536, - 0x5a65, 0x5a63, 0x5a64, 0x7530, 0x436b, 0x5b26, - /* 0x6640 */ - 0x5a6a, 0x3b7e, 0x3938, 0x5a68, 0xad79, 0x7538, 0x5a69, 0x3f38, - 0x7539, 0xad7b, 0x5a67, 0xad7a, 0x3b2f, 0xad7e, 0x753b, 0x753c, - 0xae21, 0x5a6c, 0x5a6b, 0x5a70, 0x753d, 0x5a71, 0xae22, 0x5a6d, - 0x753e, 0x3322, 0x5a6e, 0x5a6f, 0x4855, 0xae25, 0xae26, 0xae27, - 0xae28, 0x4961, 0x374a, 0x5a72, 0x753f, 0x4032, 0x3e3d, 0x7540, - 0x7541, 0x4352, 0xae29, - /* 0x6680 */ - 0xae2a, 0x3647, 0x5a73, 0x5a77, 0x324b, 0x5a74, 0x5a76, 0x7542, - 0x5a75, 0xae2b, 0x3d6b, 0xae2c, 0x4348, 0x3045, 0x5a78, 0xae2d, - 0x5a79, 0x7544, 0x442a, 0x4e71, 0x3b43, 0xae2f, 0x4a6b, 0xae30, - 0x7545, 0x4b3d, 0xae31, 0x5b22, 0x5a7b, 0x7546, 0x5a7e, 0x5a7d, - 0xae33, - /* 0x66C0 */ - 0x5a7a, 0x5b21, 0x7547, 0x465e, 0x7548, 0x5a7c, 0x5b23, 0x3d6c, - 0x5b24, 0x754a, 0x4d4b, 0x4778, 0x5b25, 0x5b27, 0x754b, 0x5b28, - 0xae35, 0x5b29, 0x364a, 0x3148, 0x3939, 0x5b2a, 0x5b2b, 0x3d71, - 0x4162, 0x754c, 0x7537, 0x5258, 0x413e, 0x413d, 0x4258, - /* 0x6700 */ - 0x3a47, 0xae37, 0x5072, 0xae38, 0x376e, 0x4d2d, 0x4a7e, 0x497e, - 0x5b2c, 0xae39, 0x754d, 0x3a73, 0x443f, 0x5b2d, 0x4f2f, 0xae3b, - 0x4b3e, 0x442b, 0x5b2e, 0x347c, 0x5b2f, 0x5b30, 0x4c5a, 0x4c24, - 0x4b76, 0x4b5c, 0x3b25, 0x5b32, 0x3c6b, 0x754f, 0x4b51, 0x5b34, - 0x5b37, 0x5b36, 0x3479, 0x3560, 0x5b33, - /* 0x6740 */ - 0x5b35, 0x5b38, 0x7551, 0x7552, 0x3f79, 0xae3e, 0xae3f, 0x4d7b, - 0x3049, 0x3a60, 0x423c, 0x3c5d, 0xae40, 0x3e73, 0x5b3b, 0x454e, - 0xae41, 0x5b39, 0x422b, 0x5b3a, 0x3e72, 0x4c5d, 0x5b3c, 0x5b3d, - 0x4d68, 0x7550, 0x5b42, 0x393a, 0x4755, 0x5b3f, 0x456c, 0x5a5e, - 0x5a62, 0xae45, 0x354f, 0xae46, 0x4747, 0x7553, 0x5b41, 0x3e3e, - 0x4844, - /* 0x6780 */ - 0x7554, 0x5b47, 0x487a, 0x5b3e, 0x5b44, 0x5b43, 0x404f, 0xae48, - 0x7555, 0x4b6d, 0x4e53, 0x7556, 0x4b67, 0x7557, 0x324c, 0x3b5e, - 0x4f48, 0x5b46, 0x3f75, 0x5b45, 0x5b40, 0x384f, 0xae4c, 0xae4d, - 0x5b4c, 0x5b4a, 0x324d, 0x5b48, 0x5b4e, 0x5b54, 0x7558, - /* 0x67C0 */ - 0x755a, 0x4248, 0xae4e, 0x4a41, 0x5b56, 0xae4f, 0x4922, 0x5b55, - 0x4770, 0x4b3f, 0x343b, 0xae50, 0x4077, 0x3d40, 0x755b, 0x4453, - 0xae51, 0x4d2e, 0xae52, 0x5b51, 0x5b50, 0x5b52, 0x5b4f, 0x5b57, - 0x5b4d, 0x5b4b, 0x5b53, 0x5b49, 0xae53, 0x436c, 0x4c78, 0x3c46, - 0x3a74, 0xae54, 0x7559, 0x3a3a, 0x755c, 0x4b6f, 0x3341, - /* 0x6800 */ - 0x755d, 0x444e, 0x464a, 0x3149, 0xae4b, 0x4072, 0x4034, 0x372a, - 0xae58, 0x755f, 0x5b59, 0xae59, 0x393b, 0x337c, 0x5b5b, 0x3374, - 0x5b61, 0x7560, 0xae5a, 0x7561, 0x5b5e, 0xae5c, 0x4073, 0x334b, - 0x3a2c, 0xae5d, 0x334a, 0x3a4f, 0xae5e, - /* 0x6840 */ - 0x5b5c, 0x3765, 0x374b, 0x456d, 0xae5f, 0xae60, 0x5b5a, 0x3046, - 0xae61, 0xae62, 0x5b5d, 0x5b5f, 0x364d, 0x372c, 0x755e, 0x343c, - 0x354b, 0xae63, 0xae64, 0x5b62, 0x7562, 0x3a79, 0x4b71, 0x3b37, - 0x5b63, 0x4930, 0xae66, 0xae67, 0x7563, 0x5b6f, 0x7564, 0x3233, - 0x5b64, 0xae68, 0xae69, 0x5b75, 0x5b65, - /* 0x6880 */ - 0x4e42, 0xae6a, 0x5b6c, 0x475f, 0x5b74, 0x5b67, 0xae6b, 0x3034, - 0x5b69, 0xae6c, 0x393c, 0xae6e, 0xae6f, 0xae70, 0x5b6b, 0xae71, - 0x5b6a, 0x5b66, 0x5b71, 0x3e3f, 0x7566, 0x7567, 0x546d, 0x3868, - 0x4d7c, 0xae72, 0xae73, 0x5b68, 0x4474, 0x3323, 0x3a2d, 0x7568, - 0x5b60, 0xae74, 0x5b70, 0x3361, 0x5b6e, 0x5b72, 0xae75, 0x456e, - /* 0x68C0 */ - 0xae7a, 0x347e, 0xae7b, 0x5c32, 0x7569, 0x4c49, 0x5b77, 0x347d, - 0xae7c, 0x5b7e, 0xae7d, 0x756a, 0x4b40, 0x5c21, 0x5c23, 0xae7e, - 0x5c27, 0x5b79, 0xaf21, 0x432a, 0x456f, 0x5c2b, 0x5b7c, 0x5c28, - 0xaf22, 0xaf23, 0x5c22, 0x756b, 0xaf24, 0x756c, 0x3f39, 0x5c2c, - 0x756d, 0x756e, 0x4033, 0xaf25, 0x5c2a, 0x343d, 0xae76, 0x756f, - /* 0x6900 */ - 0x4f50, 0x5b76, 0xaf26, 0x5c26, 0x3058, 0xaf27, 0x5b78, 0x7570, - 0x4c3a, 0x5b7d, 0x3f22, 0x4447, 0x5b73, 0x5c25, 0x3f7a, 0x5c2f, - 0x3371, 0x3821, 0x5c31, 0x5b7a, 0x5c30, 0x5c29, 0x5b7b, 0x5c2d, - 0x5c2e, 0x5c3f, 0x464e, 0x7573, 0x5c24, 0x5c3b, 0xaf2b, 0x5c3d, - 0x4458, - /* 0x6940 */ - 0x7574, 0xaf2d, 0x7571, 0x4d4c, 0x4976, 0x5c38, 0x424a, 0x7575, - 0x5c3e, 0x413f, 0x5c35, 0x5c42, 0x5c41, 0x466f, 0x5c40, 0x466a, - 0x7576, 0x7577, 0x7578, 0xaf2e, 0x5c44, 0x5c37, 0xaf2f, 0x3648, - 0x5c3a, 0x3d5d, 0xaf30, 0x4760, 0x5c3c, 0x364b, 0x5c34, 0x5c36, - 0x5c33, 0xaf31, 0x4f30, 0x335a, 0x5c39, 0xaf32, - /* 0x6980 */ - 0x7579, 0x5c43, 0x3335, 0x3a67, 0x315d, 0x5c54, 0xaf33, 0x4f31, - 0x5c57, 0xaf35, 0xaf36, 0x3f3a, 0x5c56, 0x5c55, 0x757b, 0xaf37, - 0x5c52, 0x757c, 0x5c46, 0xaf38, 0x5c63, 0x5c45, 0x5c58, 0xaf39, - 0xaf3a, 0x5c50, 0xaf3b, 0x5c4b, 0x5c48, - /* 0x69C0 */ - 0xaf3c, 0x5c49, 0x5c51, 0x7422, 0x5c4e, 0x393d, 0x4448, 0x4164, - 0x5c4c, 0x757d, 0x5c47, 0xaf3d, 0x5c4a, 0xaf3e, 0x4d4d, 0x4b6a, - 0x5c4f, 0x5c59, 0x7622, 0xaf44, 0x5c61, 0x5c5a, 0x7623, 0x7624, - 0x5c67, 0x5c65, 0xaf45, 0xaf46, 0x5c60, 0xaf47, 0xaf49, 0x7625, - 0x7626, 0x5c5f, 0x4450, 0x4165, 0xaf4a, 0x5c5d, - /* 0x6A00 */ - 0x5c5b, 0x5c62, 0x5c68, 0x4875, 0x5c6e, 0x7627, 0xaf4b, 0x5c69, - 0x5c6c, 0x5c66, 0x7628, 0x4374, 0x4938, 0xaf4c, 0x5c5c, 0xaf4d, - 0x5c64, 0x3e40, 0x4c4f, 0x5c78, 0x5c6b, 0x3822, 0x3223, 0x335f, - 0x5c53, 0xaf41, 0xaf4f, 0xaf50, 0xaf51, 0x3e41, 0x5c70, 0x5c77, - 0x3c79, 0x3372, 0x762a, 0x432e, 0x762b, 0xaf52, - /* 0x6A40 */ - 0x5c6d, 0x762c, 0xaf53, 0x5c72, 0x5c76, 0xaf54, 0x3636, 0xaf56, - 0x762d, 0xaf57, 0x762e, 0x354c, 0x5c74, 0x762f, 0x3521, 0x464b, - 0x5c73, 0xaf58, 0x5c75, 0x7630, 0x5c6f, 0x7631, 0x5c71, 0xaf55, - 0xaf5a, 0x3360, - /* 0x6A80 */ - 0x4349, 0xaf5b, 0x5c7c, 0x7633, 0xaf5c, 0x5c7a, 0x3869, 0x5c79, - 0xaf5e, 0x7634, 0x5d21, 0x5b58, 0x7635, 0x7636, 0xaf5f, 0x5c7b, - 0xaf60, 0x5c7d, 0x5c7e, 0x7637, 0x5d2c, 0xaf62, 0x5d28, 0x5b6d, - 0x5d27, 0x5d26, 0x5d23, 0xaf63, - /* 0x6AC0 */ - 0x5c6a, 0x5d25, 0x5d24, 0xaf64, 0xaf66, 0x5d2a, 0x4f26, 0xaf65, - 0x5d2d, 0x367b, 0xaf67, 0xaf68, 0x5d29, 0x5d2b, 0x7638, 0x7639, - 0x4827, 0x5d2e, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0x5d32, 0x5d2f, - 0xaf6f, - /* 0x6B00 */ - 0x4d73, 0x5d30, 0x5c5e, 0xaf71, 0xaf72, 0xaf73, 0xaf74, 0x5d33, - 0x5d34, 0xaf76, 0x763c, 0x3135, 0x763d, 0x5d36, 0x3767, 0x3c21, - 0x3655, 0x3224, 0x763e, 0xaf78, 0x4d5f, 0x763f, 0x5d38, 0x5d37, - 0x5d3a, 0x353d, 0x3656, 0x343e, - /* 0x6B40 */ - 0x5d3d, 0x7640, 0x5d3c, 0x5d3e, 0xaf79, 0x324e, 0x4337, 0x5d3f, - 0x343f, 0x5d41, 0x7641, 0xaf7a, 0x5d40, 0x5d42, 0x5d43, 0x7642, - 0x5d44, 0x3b5f, 0x4035, 0x3a21, 0x7643, 0x4970, 0x7644, 0x4a62, - 0x4f44, 0xaf7b, 0x3b75, 0x3a50, 0x4e72, 0xaf7c, 0x7645, 0x5d45, - 0x5d46, 0xaf7d, 0x3b60, 0x5d47, - /* 0x6B80 */ - 0x5d48, 0xaf7e, 0x7646, 0x5d4a, 0x5d49, 0x4b58, 0x3d5e, 0x3c6c, - 0x3b44, 0x5d4b, 0x5d4d, 0x3f23, 0x5d4c, 0xee21, 0x5d4e, 0x5d4f, - 0x7647, 0x5d50, 0x5d51, 0x7648, 0xee22, 0x5d52, 0x5d54, 0x5d53, - 0x5d55, 0x3225, 0x434a, 0x5d56, 0x3b26, 0x334c, 0x5d57, 0xee24, - 0xee25, 0x4542, - /* 0x6BC0 */ - 0x544c, 0x3523, 0x5d58, 0xee26, 0xee27, 0xee28, 0x5d59, 0x4a6c, - 0x4b68, 0x764a, 0x4647, 0x5d5a, 0x4866, 0x764b, 0x764c, 0x487b, - 0xee29, 0x4c53, 0x5d5b, 0xee2a, 0xee2b, 0x5d5d, 0x5d5c, 0xee2c, - 0x5d5f, 0xee2d, 0x5d5e, 0x764d, - /* 0x6C00 */ - 0xee2e, 0x764e, 0x5d61, 0xee2f, 0xee30, 0x3b61, 0x764f, 0x4c31, - 0x5d62, 0x5d63, 0x3524, 0x5d64, 0x5d66, 0x5d65, 0x7650, 0x3f65, - 0xee31, 0xee32, 0x4939, 0x314a, 0xee33, 0x4845, 0xee35, - /* 0x6C40 */ - 0x4475, 0x3d41, 0x3561, 0xee36, 0x4846, 0x3c2e, 0x5d68, 0x3440, - 0x7651, 0x3178, 0xee37, 0x7652, 0x4672, 0x5d67, 0x393e, 0x4353, - 0x5d69, 0xee4f, 0x5d71, 0x5d6a, 0xee38, 0x4241, 0x3562, 0x5d72, - 0x7654, 0x7655, 0x3768, 0x3525, 0x5d70, - /* 0x6C80 */ - 0x5d6e, 0x5d6b, 0x4d60, 0xee39, 0x7656, 0x7657, 0x4440, 0xee3a, - 0x4659, 0x5d6c, 0x5d74, 0x5d73, 0x3723, 0xee3c, 0xee3d, 0x322d, - 0xee3e, 0x7658, 0x3a3b, 0x5d6d, 0x5d6f, 0x7659, 0x4b57, 0x4274, - 0x7653, 0x4b77, 0xee3f, 0x5d7c, 0x5d7d, 0x324f, 0x4a28, 0x4c7d, - 0x5e21, 0x3c23, 0x3e42, 0x5d78, 0x5d7e, 0x3168, - /* 0x6CC0 */ - 0x3637, 0xee40, 0x5d75, 0x5d7a, 0x765b, 0x4074, 0x4771, 0x4867, - 0xee41, 0x5d77, 0x765c, 0x4b21, 0xee43, 0x5d79, 0x5e24, 0xee44, - 0x5e22, 0xee45, 0x5d7b, 0x765d, 0x4b22, 0x4748, 0x3563, 0x4525, - 0x436d, 0xee46, 0x5e25, 0x765e, 0xee47, 0xee48, 0x765f, 0x5e23, - 0x4259, 0x5d76, 0x314b, 0x765a, - /* 0x6D00 */ - 0xee4a, 0x7661, 0xee4b, 0x4d4e, 0x5e30, 0x7662, 0x5e2f, 0x4076, - 0x5e2c, 0x4d6c, 0x4636, 0x5e26, 0xee4c, 0x4445, 0xee4d, 0xee4e, - 0x314c, 0x393f, 0x5e29, 0x7663, 0xee50, 0x7664, 0x3d27, 0x5e2e, - 0xee65, 0x5e2d, 0x5e28, 0x5e2b, 0x7665, 0x3368, 0xee51, 0x5e2a, - 0x4749, 0x7666, - /* 0x6D40 */ - 0x4e2e, 0x3e74, 0x4075, 0x7667, 0x5e36, 0x5e34, 0xee52, 0x494d, - 0xee53, 0xee54, 0x5e31, 0x5e33, 0x7668, 0x313a, 0x3940, 0x4f32, - 0x333d, 0x4962, 0xee55, 0x4d61, 0x3324, 0x3f3b, 0x5e35, - /* 0x6D80 */ - 0xee56, 0xee57, 0x766a, 0x5e3a, 0x766b, 0x3e43, 0x766c, 0xee58, - 0x4d30, 0xee59, 0x5e37, 0xee5a, 0x5e32, 0x766d, 0x5e38, 0xee5b, - 0x4e5e, 0x4573, 0x4642, 0x766e, 0xee61, 0x766f, 0xee62, 0x3336, - 0x3155, 0xee63, 0x5e3e, 0x5e41, 0x4e43, 0x7670, - /* 0x6DC0 */ - 0x4d64, 0xee64, 0x7671, 0x5e48, 0x5e42, 0x5e3f, 0xee66, 0x4e54, - 0x5e45, 0xee67, 0xee68, 0xee69, 0x3d4a, 0x5e47, 0x5e4c, 0x7672, - 0x4571, 0x5e4a, 0x7673, 0x7674, 0x7675, 0x5e44, 0xee6a, 0x4338, - 0x5e4b, 0x5e40, 0x5e46, 0xee6b, 0x5e4d, 0x307c, 0x5e43, 0x5e4e, - 0x3f3c, 0x3d5f, 0x4a25, 0xee6c, 0x3a2e, 0x5e3b, 0x5e49, 0x453a, - 0x7676, - /* 0x6E00 */ - 0x4036, 0x3369, 0x3a51, 0x3e44, 0x5e3d, 0x3d42, 0x374c, 0x5e3c, - 0xee5d, 0x5e52, 0x3d6d, 0x383a, 0x5e61, 0xee6e, 0x5e5b, 0x3574, - 0x454f, 0xee6f, 0x5e56, 0x5e5f, 0x302f, 0x3132, 0xee70, 0x3239, - 0x5e58, 0x422c, 0x5e4f, 0x5e51, 0x3941, 0xee72, 0x7678, 0xee6d, - 0x5e62, 0x5e5d, 0xee73, 0x5e55, - /* 0x6E40 */ - 0x5e5c, 0x7679, 0xee74, 0xee75, 0x4c2b, 0xee76, 0xee77, 0x5e5a, - 0x5e5e, 0xee78, 0xee79, 0xee7a, 0xee7b, 0x3850, 0xee7c, 0x3e45, - 0x4339, 0x767a, 0x767b, 0x5e54, 0xee7d, 0x4d2f, 0x5e57, 0x5e50, - 0x4572, 0x5e53, 0x5e59, 0x4f51, 0x3c3e, - /* 0x6E80 */ - 0x4b7e, 0x5e63, 0x482e, 0x5e6f, 0x383b, 0xef21, 0x3d60, 0x5e65, - 0x4e2f, 0x3942, 0x5e72, 0x306e, 0x5e70, 0xef22, 0x5e64, 0x767c, - 0x5e6a, 0x767d, 0x5e6c, 0xef23, 0x4d4f, 0x5e67, 0x452e, 0x5e69, - 0xef24, - /* 0x6EC0 */ - 0x767e, 0x5e71, 0xef25, 0x5e6b, 0x4c47, 0x7721, 0x5e66, 0xef26, - 0x3c22, 0x5e7e, 0x7722, 0x336a, 0x5e68, 0x5e6d, 0x5e6e, 0xef27, - 0x426c, 0x425a, 0xef29, 0x5e76, 0x5e7c, 0x5e7a, 0x4529, 0x5f23, - 0x5e77, 0xef2a, 0xef2b, 0x5e78, 0x5e60, - /* 0x6F00 */ - 0x3579, 0x493a, 0x3c3f, 0x3977, 0xef2c, 0xef2d, 0x4f33, 0x7723, - 0x5e74, 0x5f22, 0x3169, 0x4166, 0xef2e, 0x7724, 0x4779, 0x3441, - 0x4e7a, 0xef2f, 0x7726, 0x4c21, 0x4452, 0x7727, 0x5e7b, 0x5e7d, - 0x7728, 0xef28, 0xef30, 0x4132, 0xef31, 0x5f21, 0x5e79, - /* 0x6F40 */ - 0x5e73, 0x3443, 0x7729, 0xef33, 0x3769, 0xef34, 0x5f2f, 0x772a, - 0xef35, 0x5f2a, 0x4078, 0x772b, 0x3363, 0xef36, 0x772c, 0x772d, - 0x3d61, 0x5f33, 0xef37, 0x5f2c, 0x442c, 0x5f29, 0x4459, 0x5f4c, - 0x5f26, 0x5f25, 0x5f2e, 0xef39, 0x772e, - /* 0x6F80 */ - 0x5f28, 0x5f27, 0x5f2d, 0x4021, 0x5f24, 0x772f, 0x7730, 0x7731, - 0x5f30, 0xef3a, 0x5f31, 0x7732, 0xef3b, 0x3442, 0xef38, 0xef3d, - 0x7733, 0x5f36, 0x5f35, 0x5f37, 0xef3e, 0x7734, 0x5f3a, 0xef3f, - 0x4543, 0x5f34, 0xef41, 0x7735, 0x5f38, 0x7736, 0xef3c, - /* 0x6FC0 */ - 0x3763, 0x4279, 0x5f32, 0x473b, 0x5f39, 0x7737, 0xef42, 0xef43, - 0x7738, 0x5f3e, 0x5f3c, 0x5f3f, 0xef44, 0x5f42, 0xef45, 0x5f3b, - 0x396a, 0x4728, 0x5e39, 0xef46, 0x4d74, 0x5f3d, 0x5f41, 0x4275, - 0x773a, 0x5f40, 0x5f2b, 0x773b, 0x6f69, 0x7739, 0x5f45, 0xef48, - 0x5f49, - /* 0x7000 */ - 0xef49, 0x5f47, 0x773c, 0x773d, 0xef4a, 0x5f43, 0xef4b, 0x5f44, - 0x5f48, 0x5f46, 0x494e, 0x5f4e, 0x5f4b, 0x5f4a, 0x5f4d, 0x4654, - 0x5f4f, 0xef4c, 0x4375, 0x426d, 0x773e, 0x4025, 0x5f50, 0x5f52, - 0xef4e, 0xef4f, 0xef50, 0x5f51, - /* 0x7040 */ - 0xef51, 0xef52, 0x773f, 0xef53, 0x5e75, 0x7742, 0x5f53, 0xef55, - 0x4667, 0x7740, 0x7741, 0x5f54, 0x7743, 0xef56, 0xef57, 0x3250, - 0xef58, 0xef59, 0x4574, 0x3325, 0x7744, 0xef5a, 0x3564, 0x3c5e, - 0x3a52, 0xef5b, - /* 0x7080 */ - 0xef5c, 0x7745, 0xef5d, 0x4f27, 0x3f66, 0x316a, 0x5f56, 0xef5e, - 0xef5f, 0x5f55, 0xef62, 0x7746, 0x7747, 0x5f59, 0x433a, 0x5f5c, - 0x5f57, 0xef63, 0x5f5b, 0x7748, 0x5f5a, 0x4540, 0x3059, 0xef60, - /* 0x70C0 */ - 0x4e75, 0xef66, 0x5f5e, 0x3128, 0xef67, 0xef68, 0x7749, 0x774a, - 0x5f60, 0xef69, 0x5f5f, 0x5f5d, 0x774b, 0xef65, 0x5f58, 0x4b23, - 0x5f62, - /* 0x7100 */ - 0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0x5f61, 0xef6f, 0x774c, - 0x316b, 0x5f64, 0x4a32, 0x5f63, 0x774e, 0x774f, 0x4c35, 0x3e47, - 0x774d, 0x7750, 0xef71, 0x7751, 0xef72, 0x4133, 0x3e46, - /* 0x7140 */ - 0x7752, 0x7753, 0x4e7b, 0xef74, 0x5f6a, 0x4079, 0xef73, 0x7754, - 0x7756, 0xef75, 0x5f66, 0x5f6b, 0x316c, 0x7757, 0xef76, 0x7758, - 0x5f69, 0x4761, 0x5f65, 0x5f68, 0x3e48, 0x7759, 0x4851, 0x5f6c, - 0x3c51, 0x407a, - /* 0x7180 */ - 0xef79, 0x5f6f, 0x775b, 0x775c, 0x5f67, 0x3727, 0x5f6d, 0x775d, - 0x4d50, 0x5f70, 0xef78, 0x7426, 0xef7a, 0x3d4f, 0xef7b, 0xef7c, - 0x5f71, 0x5f72, 0xef7d, 0xef7e, 0x472e, 0xf021, 0x5f74, 0x775f, - 0x5f75, - /* 0x71C0 */ - 0x775e, 0x4733, 0x7760, 0x4575, 0x5f77, 0xf023, 0x5f79, 0x4e55, - 0x5f76, 0xf024, 0x5f78, 0x316d, 0x5f73, 0xf025, 0xf026, 0x535b, - 0x5f7a, 0x4167, 0x3b38, 0x5f7c, 0x5f7b, 0x3f24, 0x5259, 0x5f7d, - 0x6021, 0x5f6e, 0x5f7e, 0x7761, 0x6022, - /* 0x7200 */ - 0x7762, 0x477a, 0xf027, 0x6023, 0x6024, 0x7763, 0x6025, 0x6026, - 0x445e, 0xf02a, 0x6028, 0x6027, 0x6029, 0x602a, 0xf02b, 0x3c5f, - 0x4963, 0xf02c, 0xf02d, 0x4c6c, 0x602b, 0x602c, 0x4156, 0x3c24, - 0x602d, - /* 0x7240 */ - 0x602e, 0xf02f, 0x602f, 0x4a52, 0x4847, 0x6030, 0x4757, 0x442d, - 0xf030, 0x7764, 0x7765, 0xf031, 0x6031, 0x3267, 0x356d, 0x4c46, - 0x4c36, 0x3234, 0x4f34, 0xf032, 0x4b52, 0x4a2a, 0xf034, 0xf035, - 0x4037, 0x6032, 0xf036, 0x4643, 0x3823, 0x6033, 0xf037, - /* 0x7280 */ - 0x3a54, 0x6035, 0x6034, 0x6036, 0x7767, 0xf038, 0x6037, 0x6038, - 0x7768, 0x353e, 0x6039, 0x603a, 0x3824, 0xf03a, 0xf03b, 0x4848, - 0xf03c, 0xf03d, 0x603c, 0x3e75, 0x603b, 0x7769, - /* 0x72C0 */ - 0x776a, 0xf03e, 0x3638, 0x603d, 0x603f, 0x603e, 0xf040, 0x6040, - 0x3851, 0x6041, 0x3669, 0x4140, 0x397d, 0x6043, 0x6044, 0x6042, - 0x3c6d, 0x4648, 0x3639, 0xf043, 0x6046, 0x432c, 0x6045, 0xf044, - 0x776b, 0x4f35, 0x4762, - /* 0x7300 */ - 0xf045, 0x6049, 0xf046, 0x604b, 0x6048, 0xf047, 0xf048, 0x4c54, - 0x604a, 0x604c, 0x4e44, 0x6050, 0x776d, 0x776e, 0x604f, 0x4376, - 0x472d, 0xf04b, 0x3825, 0x604e, 0xf04c, 0xf04d, 0x604d, 0x4d31, - 0x4d32, 0xf04a, 0xf04e, 0x6051, 0x316e, - /* 0x7340 */ - 0x3976, 0x3b62, 0x6052, 0x6053, 0x7770, 0xf04f, 0x6055, 0x3d43, - 0x7771, 0x6057, 0x6056, 0xf051, 0xf052, 0xf054, 0xf055, 0x6058, - 0xf056, 0x334d, 0x605a, 0xf057, 0x6059, 0x605c, 0x605b, 0x7772, - /* 0x7380 */ - 0xf058, 0x383c, 0xf059, 0x4e28, 0x364c, 0xf05a, 0x3226, 0xf05b, - 0x7773, 0x366a, 0xf05c, 0xf05d, 0xf05e, 0x7774, 0x7775, 0x7776, - 0xf05f, 0x7777, 0xf060, 0x3461, 0x7778, 0x4e68, 0x605e, 0xf061, - 0xf062, 0xf063, 0x6060, 0xf064, 0xf065, - /* 0x73C0 */ - 0x6061, 0x3251, 0xf066, 0x605d, 0x7779, 0x3b39, 0xf067, 0x4441, - 0x605f, 0x777a, 0x777b, 0x777c, 0x6064, 0x3c6e, 0xf068, 0x777d, - 0x6062, 0xf069, 0x777e, 0x373e, 0x4849, 0x6063, 0x607e, 0x6069, - 0xf06a, 0xf06c, 0x383d, - /* 0x7400 */ - 0xf06d, 0x3565, 0x6066, 0x4d7d, 0x7821, 0x4e30, 0x7822, 0xf06b, - 0x7823, 0x7824, 0x4276, 0xf06e, 0x6068, 0x7826, 0x7827, 0x7828, - 0x7829, 0x782a, 0x782b, 0x782c, 0x782d, 0xf06f, 0x606a, 0x4e56, - 0x3657, 0x487c, 0x474a, 0xf070, 0x606b, 0x606d, - /* 0x7440 */ - 0xf072, 0x6070, 0xf073, 0x782e, 0x782f, 0x7830, 0x7831, 0xf074, - 0xf075, 0xf071, 0x606c, 0x7832, 0x606f, 0x386a, 0x314d, 0x6071, - 0xf076, 0x3f70, 0x606e, 0x4e5c, 0x7833, 0x6074, 0x7424, 0x6072, - 0x6075, 0x7834, 0x7835, 0x6067, 0x6073, 0xf077, 0x3a3c, 0x6076, - 0x6077, - /* 0x7480 */ - 0xf078, 0x4d7e, 0xf079, 0x7836, 0x7837, 0xf07a, 0x7838, 0x6078, - 0x783d, 0xf07c, 0xf07d, 0x7839, 0xf07e, 0x783a, 0x6079, 0x783b, - 0xf121, 0xf122, 0x6065, 0x783c, 0xf123, 0x783e, 0x607a, 0x783f, - 0x7840, 0xf124, 0xf125, 0x3444, 0x7841, 0xf126, 0xf128, 0xf127, - 0x3c25, 0x7842, - /* 0x74C0 */ - 0x7843, 0x7844, 0x607b, 0x607c, 0x607d, 0xf129, 0xf12a, 0x7845, - 0x313b, 0xf12b, 0x6121, 0x493b, 0x6122, 0x3424, 0x6123, 0x6124, - 0xf12d, 0x6125, 0xf12c, 0x6127, 0x6128, 0x6126, 0x4953, 0x612a, - 0x6129, 0xf12f, 0x7846, - /* 0x7500 */ - 0x7847, 0x612c, 0x612b, 0x612d, 0x612e, 0x6130, 0x612f, 0x3979, - 0x6132, 0x6131, 0x7848, 0x3445, 0x3f53, 0x453c, 0x6133, 0x4038, - 0xf131, 0x3b3a, 0xf132, 0x3179, 0x6134, 0x4d51, 0xf133, 0x4a63, - 0x6135, 0x7849, 0x4544, 0x4d33, 0x3943, 0x3f3d, 0x434b, 0x5234, - 0x442e, 0x3268, 0x6136, 0xf136, 0xf137, - /* 0x7540 */ - 0xf138, 0x6137, 0x613c, 0xf139, 0x613a, 0x6139, 0x5a42, 0x3326, - 0x6138, 0xf13a, 0x305a, 0xf13b, 0x482a, 0xf13c, 0x484a, 0x4e31, - 0x613d, 0x613b, 0x435c, 0x4026, 0x482b, 0x492d, 0x613f, 0x4e2c, - 0x374d, 0x6140, 0x613e, 0x4856, 0x6141, 0xf13d, 0x6142, 0x784a, - 0x305b, 0xf13f, 0xf13e, 0x3e76, 0x6147, 0x6144, 0x466d, 0x6143, - 0x784b, 0xf140, 0xf141, 0xf142, 0x3526, - /* 0x7580 */ - 0xf143, 0x614a, 0x6145, 0x6146, 0x6149, 0x6148, 0x4925, 0xf145, - 0x4142, 0x4141, 0x353f, 0x784c, 0x614b, 0x614c, 0x614d, 0xf147, - 0x614f, 0x614e, 0x3156, 0xf149, 0x6157, 0x4868, 0x6151, 0x6153, - 0xf14a, 0x6155, 0x3f3e, 0x6156, 0x6154, 0x3c40, 0xf14b, - /* 0x75C0 */ - 0xf14c, 0x6150, 0x6152, 0x4942, 0xf14d, 0x3e49, 0x6159, 0x6158, - 0x784e, 0xf14e, 0x615a, 0xf14f, 0x3c26, 0x3a2f, 0x4577, 0x615b, - 0x444b, 0xf150, 0x615d, 0xf151, 0xf152, 0x4e21, 0x615c, 0x784f, - 0xf153, 0x4169, 0xf154, 0xf155, 0x6162, 0xf156, 0x6164, 0x6165, - 0x4354, 0xf157, 0x6163, 0x6160, 0x615e, 0x615f, - /* 0x7600 */ - 0x7850, 0x6161, 0x7851, 0xf158, 0xf15a, 0x7852, 0x6168, 0x6166, - 0x6167, 0xf15b, 0xf15e, 0x7853, 0x7854, 0xf159, 0x7855, 0xf15f, - 0xf160, 0x7856, 0x6169, 0x616b, 0x616c, 0x616d, 0x616e, 0xf162, - 0x7e7d, 0x616a, 0xf163, 0x7857, 0x6170, 0xf165, 0x616f, 0x7858, - 0x6171, 0xf164, - /* 0x7640 */ - 0xf168, 0x4e45, 0x7859, 0x6174, 0x6172, 0x6173, 0xf16a, 0x785a, - 0x3462, 0x4c7e, 0xf16b, 0x4a4a, 0x6176, 0x6175, 0x6177, 0x6178, - 0x785b, 0x785c, 0x617c, 0x6179, 0x617a, 0x617b, 0x617d, 0x785d, - 0xf16d, 0x785e, 0x617e, 0x785f, 0x6221, 0x6222, 0x6223, 0x482f, - 0x4550, 0x6224, 0x4772, 0x4934, - /* 0x7680 */ - 0x6225, 0x7860, 0x6226, 0x452a, 0x3327, 0x3944, 0x6227, 0x6228, - 0x6229, 0x3b29, 0x622b, 0xf16e, 0x622a, 0x622c, 0x622d, 0x7861, - 0xf16f, 0x7862, 0x7863, 0xf171, 0xf170, 0x7864, 0xf172, 0xf173, - 0x7865, 0x4869, 0xf174, 0x622e, 0x622f, 0x7866, 0x7369, 0x6230, - 0x6231, 0x6232, 0x3b2e, - /* 0x76C0 */ - 0x6233, 0x4756, 0x7867, 0x4b5f, 0x314e, 0xf176, 0x3157, 0x7868, - 0x6234, 0x7869, 0x6236, 0x786a, 0x6235, 0x4570, 0x4039, 0x5d39, - 0x6237, 0x4c41, 0x6238, 0x3446, 0x4857, 0x6239, 0x786b, 0x623a, - 0xf178, 0x623b, 0xf179, 0x4c5c, 0x786c, 0x4c55, 0x443e, 0x416a, - 0x623d, 0x786d, 0x3d62, - /* 0x7700 */ - 0x3e4a, 0x6240, 0x623f, 0x623e, 0x487d, 0x786e, 0x3447, 0x3829, - 0xf17b, 0x786f, 0xf17c, 0x6246, 0x6243, 0x3f3f, 0x4c32, 0x6242, - 0x6244, 0x6245, 0x6241, 0xf17d, 0x7870, 0xf17e, 0x7871, 0x6247, - 0x6248, 0x442f, 0x3463, - /* 0x7740 */ - 0x4365, 0x7872, 0x6249, 0x7873, 0x7874, 0xf225, 0x624a, 0x624d, - 0x7875, 0x7876, 0xf226, 0x3f67, 0x7877, 0x4644, 0x624e, 0x4b53, - 0x624b, 0xf227, 0x624c, 0xf229, 0x6251, 0x7878, 0xf22a, 0xf22b, - 0x6250, 0x624f, - /* 0x7780 */ - 0x7879, 0x6253, 0x6252, 0x6254, 0x787a, 0xf22e, 0x6256, 0xf22f, - 0x6255, 0xf230, 0xf231, 0x4a4d, 0xf232, 0x787b, 0x3d56, 0x4e46, - 0x6257, 0x4637, 0x6258, 0x6259, 0x625d, 0x625b, 0x625c, 0x625a, - /* 0x77C0 */ - 0x625e, 0x625f, 0x6260, 0x6261, 0x4c37, 0x6262, 0xf233, 0xf234, - 0x787c, 0x4c70, 0x6263, 0xf235, 0x434e, 0xf236, 0x476a, 0x366b, - 0xf237, 0xf238, 0x433b, 0x6264, 0x363a, 0xf23a, 0x4050, 0xf23b, - 0xf23c, 0x6265, - /* 0x7800 */ - 0x3a3d, 0xf23e, 0xf23f, 0xf240, 0x6266, 0xf241, 0x6267, 0x3826, - 0x3a55, 0xf242, 0x6269, 0xf243, 0x4556, 0x3a56, 0x354e, 0xf244, - 0x787d, 0x4b24, 0x474b, 0x4557, 0x395c, - /* 0x7840 */ - 0x7921, 0x626b, 0xf245, 0x7922, 0x7923, 0x7924, 0x3e4b, 0xf246, - 0x7925, 0xf247, 0x4e32, 0x3945, 0x7926, 0x3827, 0x4823, 0x626d, - 0x626f, - /* 0x7880 */ - 0x386b, 0x626e, 0x4476, 0xf249, 0x6271, 0x3337, 0x626c, 0x486a, - 0x3130, 0xf24a, 0x3a6c, 0x4f52, 0x6270, 0xf24c, 0xf24d, 0xf24e, - 0x6272, 0xf24b, 0x4a4b, 0x4059, 0x6274, 0x792a, 0x6275, 0x7928, - 0x6273, 0x334e, 0xf24f, 0x627b, 0x627a, - /* 0x78C0 */ - 0x3c27, 0x627c, 0x6277, 0xf250, 0x627d, 0x6278, 0xf251, 0xf252, - 0x4858, 0x6276, 0x6279, 0xf253, 0x6322, 0xf254, 0xf255, 0x792b, - 0xf256, 0x6321, 0x4b61, 0x627e, 0x306b, 0x792c, 0x6324, 0x792e, - 0xf257, 0xf258, 0xf259, 0x6323, 0xf25a, - /* 0x7900 */ - 0x792d, 0x3e4c, 0x6325, 0x4143, 0xf25c, 0x6327, 0x6326, 0x6328, - 0xf25d, 0x792f, 0xf25f, 0x6268, 0x626a, 0x632a, 0x6329, 0x7930, - 0xf25e, 0x7931, 0x7932, 0x3c28, 0xf260, 0x4e69, 0x3c52, - /* 0x7940 */ - 0x632b, 0x3737, 0x7935, 0x7936, 0x3540, 0x3527, 0x3b63, 0xf261, - 0x4d34, 0x6331, 0x6330, 0x4144, 0x632d, 0xf262, 0x632f, 0xf263, - 0x793a, 0x3d4b, 0x3f40, 0x632e, 0x632c, 0x472a, 0x3e4d, 0xf265, - 0x493c, 0x3a57, 0xf266, 0x4578, 0x793e, 0x6332, 0x6333, - /* 0x7980 */ - 0x6349, 0x3658, 0x4f3d, 0x4135, 0x6334, 0x3252, 0x4477, 0x4a21, - 0xf267, 0xf268, 0xf269, 0x7942, 0xf26a, 0x6335, 0xf26b, 0x357a, - 0x6336, 0xf26c, 0x6338, 0x6339, 0x4729, 0x7943, 0x633a, 0xf26d, - 0x7944, 0x633b, 0x633c, 0xf26e, 0x3659, 0x3253, 0x4645, - /* 0x79C0 */ - 0x3d28, 0x3b64, 0xf26f, 0xf270, 0x7945, 0x633d, 0x7946, 0x3d29, - 0xf271, 0xf272, 0x324a, 0x4943, 0x7948, 0x633e, 0xf273, 0x486b, - 0x7949, 0x4145, 0x6341, 0x6342, 0x4769, 0x3f41, 0x633f, 0x4361, - 0x794a, 0x6340, 0x794b, 0x3e4e, 0x305c, - /* 0x7A00 */ - 0x3529, 0x794c, 0x6343, 0xf278, 0x4478, 0x6344, 0x4047, 0xf279, - 0x4c2d, 0xf27a, 0x4923, 0x6345, 0x6346, 0x4355, 0xf27b, 0x4e47, - 0xf27c, 0x6348, 0x6347, 0xf27e, 0x3c6f, 0x634a, 0x3070, 0x634d, - 0xf321, 0x794e, 0x634b, 0x3254, 0x374e, 0x634c, 0x3946, - /* 0x7A40 */ - 0x3972, 0x4a66, 0x634e, 0x4b54, 0xf322, 0x6350, 0xf323, 0x4051, - 0x314f, 0x323a, 0x302c, 0xf324, 0x634f, 0xf325, 0xf326, 0x794f, - 0xf327, 0xf328, 0x6351, 0x6352, 0x3e77, 0xf329, 0x6353, 0xf32a, - 0x334f, 0x7950, 0x6355, 0x376a, 0xf32b, 0x3566, 0xf32c, 0x6356, - 0x3675, 0x6357, 0x407c, - /* 0x7A80 */ - 0x464d, 0xf32d, 0x4060, 0x3a75, 0x7952, 0x6358, 0xf32e, 0xf32f, - 0x4362, 0x416b, 0x635a, 0x635c, 0x6359, 0x635b, 0x3722, 0x7953, - 0xf330, 0x635d, 0x3726, 0xf331, 0x3567, 0x4d52, 0x635f, 0x7955, - 0x6360, 0xf334, 0x312e, 0x7956, 0xf335, 0xf336, 0x6363, - /* 0x7AC0 */ - 0x3376, 0x6362, 0x6361, 0x6365, 0x635e, 0x6366, 0x4e29, 0xf338, - 0x6367, 0x7957, 0x6368, 0xf339, 0x5474, 0x636a, 0x6369, 0x636b, - 0x636c, 0x4e35, 0x636d, 0x706f, 0x3e4f, 0x636e, 0x636f, 0x3d57, - 0x4638, 0x6370, 0xf33a, 0xf33b, 0x4328, 0x7958, 0x6371, 0x433c, - 0x6372, 0xf33c, 0x3625, 0x513f, 0x435d, 0x3c33, 0x7959, 0x3448, - /* 0x7B00 */ - 0x6373, 0x6422, 0x6376, 0xf33f, 0x3568, 0x6375, 0x6424, 0x6374, - 0x3e50, 0x795a, 0x6378, 0x6379, 0x452b, 0x637a, 0x335e, 0x3f5a, - 0x4964, 0xf342, 0x637c, 0xf343, 0x4268, 0x795b, 0xf344, 0xf345, - 0xf346, 0x6377, 0x637b, 0x637d, 0x3a7b, 0x795c, 0xf341, - /* 0x7B40 */ - 0xf34a, 0x6426, 0x492e, 0x795d, 0x4826, 0x4579, 0x365a, 0x6425, - 0x6423, 0x795e, 0x4835, 0x637e, 0x435e, 0x457b, 0x457a, 0xf34c, - 0x3a76, 0x6438, 0x795f, 0xf34e, 0x6428, 0xf34f, 0x642a, 0xf350, - 0x642d, 0x7960, 0x642e, 0x7961, 0x642b, 0x642c, 0x7962, 0xf351, - 0x6429, 0x6427, 0xf34d, 0x6421, 0xf349, - /* 0x7B80 */ - 0x4a4f, 0x3255, 0x6435, 0x6432, 0x6437, 0xf354, 0xf355, 0x6436, - 0x4773, 0x4c27, 0x3b3b, 0x6430, 0x6439, 0x6434, 0xf356, 0x6433, - 0x642f, 0x7963, 0x6431, 0x3449, 0x433d, 0x407d, 0xf358, 0x4822, - 0x643e, 0xf359, 0x4824, 0xf35a, - /* 0x7BC0 */ - 0x4061, 0x643b, 0x484f, 0xf35b, 0x643f, 0x4a53, 0x435b, 0xf35c, - 0x643a, 0x643c, 0x643d, 0xf35f, 0xf360, 0x7965, 0x7966, 0xf361, - 0x6440, 0x3c44, 0x4646, 0x6445, 0x6444, 0x6441, 0xf362, 0x4f36, - 0xf363, 0x644a, 0x644e, 0x644b, - /* 0x7C00 */ - 0x6447, 0x7967, 0xf364, 0x6448, 0xf365, 0x644d, 0xf366, 0xf367, - 0x6442, 0x5255, 0x6449, 0x6443, 0x644c, 0x7969, 0x6452, 0x796a, - 0x344a, 0x644f, 0xf368, 0x6450, 0x6451, 0x6454, 0x7968, 0x796b, - 0x796c, 0x6453, 0x4876, 0x6455, 0x4e7c, 0x4a6d, - /* 0x7C40 */ - 0x645a, 0x6457, 0xf369, 0xf36a, 0x6456, 0x4052, 0x6459, 0x645b, - 0xf36b, 0x6458, 0x645f, 0xf36c, 0x645c, 0x796f, 0xf36d, 0x645d, - 0x6446, 0xf36e, 0x645e, 0x6460, 0xf36f, 0x6461, 0x7970, 0xf370, - 0xf371, 0xf372, 0x4a46, 0x6462, 0x7971, 0x4c62, - /* 0x7C80 */ - 0x364e, 0x3729, 0x6463, 0x4a34, 0x3f68, 0x4c30, 0x7972, 0x6464, - 0x4e33, 0x7973, 0x4774, 0x4146, 0x4734, 0x3d4d, 0x3040, 0x7974, - 0x6469, 0x6467, 0x6465, 0x3421, 0xf376, 0x3e51, 0x646a, 0x6468, - 0x6466, 0x646e, 0x646d, 0x646c, 0x646b, 0xf378, 0xf379, 0x646f, - 0x7975, 0x6470, 0x403a, 0xf37a, - /* 0x7CC0 */ - 0x6471, 0x6473, 0xf37c, 0x6472, 0xf37e, 0x3852, 0xf421, 0x4138, - 0x6475, 0x7976, 0x457c, 0xf423, 0x6474, 0x7977, 0x6476, 0x7978, - 0x4a35, 0x416c, 0x3947, 0x6477, 0xf425, 0x4e48, 0xf426, 0x6479, - 0x647a, 0x647b, 0xf428, 0x647c, 0x3b65, 0x647d, 0x374f, 0x356a, - /* 0x7D00 */ - 0x352a, 0x6521, 0xf429, 0x4c73, 0x3948, 0x647e, 0x7979, 0x797a, - 0xf42a, 0x6524, 0x4c66, 0x473c, 0x4933, 0xf42c, 0x797b, 0x3d63, - 0x6523, 0x3c53, 0x3949, 0x3b66, 0x3569, 0x4a36, 0x6522, 0x797c, - 0xf42d, 0x4147, 0x4b42, 0x3a77, 0x797d, 0x3b67, 0x445d, 0x6527, - 0x4e5f, 0x3a59, 0x797e, 0x6528, 0x3f42, 0x652a, 0x3e52, 0x3a30, - 0xf430, 0xf431, 0x6529, - /* 0x7D40 */ - 0xf432, 0x7a21, 0x3d2a, 0x383e, 0x4148, 0x6525, 0x652b, 0xf433, - 0x7a22, 0x6526, 0x3750, 0x652e, 0x6532, 0x376b, 0x7a23, 0x652d, - 0xf437, 0xf438, 0x6536, 0x7a24, 0x394a, 0x4d6d, 0x303c, 0x6533, - 0x356b, 0x6530, 0xf439, 0x6531, 0xf43a, 0x457d, 0x652f, 0x652c, - 0x3328, 0x4064, 0x3828, 0x7a25, 0x6538, 0xf43c, - /* 0x7D80 */ - 0x7a26, 0xf43e, 0xf43f, 0x6535, 0x7a27, 0xf440, 0x6537, 0x6534, - 0xf441, 0x3751, 0x4233, 0x6539, 0x416e, 0xf443, 0x6546, 0x7a28, - 0x6542, 0x653c, 0x7a29, 0xf444, 0xf445, 0x6540, 0x3c7a, 0x305d, - 0x653b, 0x6543, 0x6547, 0x394b, 0x4c56, 0x4456, 0x653d, 0xf446, - 0xf447, 0x6545, 0x653a, 0x433e, 0x653f, 0x303d, 0x4c4a, - /* 0x7DC0 */ - 0xf448, 0x7a2a, 0x653e, 0x365b, 0x486c, 0x7a2b, 0x416d, 0x4e50, - 0x3d6f, 0x656e, 0x7a2c, 0xf449, 0x6548, 0xf44a, 0x407e, 0x6544, - 0x6549, 0x654b, 0x4479, 0x654e, 0x7a2d, 0x654a, 0xf44b, 0x4a54, - 0x344b, 0x4c4b, 0x305e, 0xf44c, 0x654d, 0x4e7d, 0xf44d, 0x654c, - /* 0x7E00 */ - 0x316f, 0x466c, 0x654f, 0x7a30, 0x6556, 0x6550, 0x6557, 0xf451, - 0x7a31, 0x6553, 0x7a32, 0xf452, 0x477b, 0xf453, 0x3c4a, 0x6555, - 0xf454, 0x6552, 0x6558, 0x6551, 0x3d44, 0xf455, 0x7a2f, 0x4b25, - 0xf456, 0x3d4c, 0x6554, 0x6560, 0x655c, 0x655f, 0x655d, 0x6561, - 0x655b, 0x6541, 0x4053, - /* 0x7E40 */ - 0x484b, 0x655e, 0xf457, 0x6559, 0x7a34, 0x4121, 0x3752, 0x3d2b, - 0x7a35, 0x3f25, 0x4136, 0x6564, 0x6566, 0x6567, 0x6563, 0x6565, - 0x7a36, 0x655a, 0x6562, 0x656a, 0x6569, 0x7e7e, 0x4b7a, 0x372b, - 0xf458, 0xf459, 0x6568, 0x656c, 0x656b, 0x656f, 0xf45a, 0x6571, - /* 0x7E80 */ - 0x3b3c, 0x656d, 0xf45b, 0xf45c, 0x6572, 0x6573, 0x7a37, 0x6574, - 0x7a38, 0x657a, 0x453b, 0x6576, 0xf45e, 0x6575, 0x6577, 0x6578, - 0x6579, 0xf45f, 0xf460, 0x657b, 0x657c, - /* 0x7F00 */ - 0x344c, 0x657d, 0x657e, 0xf463, 0xf462, 0xf464, - /* 0x7F40 */ - 0xf465, 0xf466, 0x6621, 0x7a39, 0x6622, 0x6623, 0x6624, 0xf467, - 0x6625, 0x6626, 0xf46a, 0x6628, 0x6627, 0x6629, 0x662a, 0x662b, - 0xf46c, 0xf46d, 0xf46e, 0x662e, 0x662c, 0x662d, 0x3a61, 0x3753, - 0xf46f, 0x4356, 0x4833, 0x3d70, 0x474d, 0x486d, 0x662f, 0x586d, - 0xf470, 0xf471, - /* 0x7F80 */ - 0x6630, 0x6632, 0x4d65, 0x6631, 0x6634, 0x6633, 0x4d53, 0x6635, - 0x487e, 0xf473, 0x7a3b, 0x6636, 0xf476, 0x7a3c, 0x6639, 0xf477, - 0x6638, 0x6637, 0x663a, 0x3732, 0x4122, 0x3541, 0xf478, 0x663e, - 0x663b, 0x663c, 0x663f, 0x6640, 0x663d, 0x3129, 0x7a3d, - /* 0x7FC0 */ - 0x3227, 0xf47a, 0x6642, 0x6643, 0x6644, 0x4d62, 0x7a3e, 0xf47b, - 0x3d2c, 0x6646, 0x6645, 0x7a3f, 0x7a40, 0x3f69, 0x6647, 0xf47c, - 0xf47d, 0x6648, 0x6649, 0x3465, 0x7a41, 0x7a42, 0xf47e, 0x344d, - 0xf521, 0x664a, 0x664b, 0x7a43, 0x4b5d, 0x4d63, - /* 0x8000 */ - 0x4d54, 0x4f37, 0xf522, 0x394d, 0x664e, 0x3c54, 0x664d, 0xf524, - 0xf523, 0x664f, 0x3c29, 0xf525, 0x4251, 0xf526, 0x6650, 0x7a45, - 0x394c, 0xf527, 0x4c57, 0x6651, 0x6652, 0x6653, 0x6654, 0xf528, - 0x7a46, 0x6655, 0xf529, 0xf52a, 0x3c2a, 0x7a47, 0x4c6d, 0x7a48, - 0x6657, 0x7a49, 0x433f, 0x6656, - /* 0x8040 */ - 0xf52b, 0x6659, 0x6658, 0x665a, 0x403b, 0x665b, 0x665c, 0x4a39, - 0x665d, 0x416f, 0x665e, 0xf52c, 0x665f, 0x4e7e, 0x6662, 0xf52d, - 0x6661, 0x6660, 0x4430, 0xf52e, 0x6663, 0x3f26, 0x6664, 0xf52f, - 0x6665, 0x4f38, 0x6666, - /* 0x8080 */ - 0x6667, 0x6669, 0x6668, 0x4825, 0x4679, 0x4f3e, 0x4829, 0x666b, - 0x3e53, 0x492a, 0xf530, 0x666c, 0x666a, 0xf531, 0x344e, 0x3854, - 0x3b68, 0xf532, 0x486e, 0xf533, 0x382a, 0x4b43, 0x666f, 0x666d, - 0x394e, 0x394f, 0x3069, 0x3a68, 0xf534, 0x4759, - /* 0x80C0 */ - 0x305f, 0x6674, 0xf536, 0x4340, 0x7a4a, 0x4758, 0x425b, 0xf537, - 0x6676, 0x7a4b, 0xf538, 0x6672, 0x6675, 0x6670, 0x6673, 0x4b26, - 0x7a4c, 0x3855, 0x307d, 0x6671, 0xf539, 0x6678, 0x6679, 0x7a4d, - 0x4639, 0xf53c, 0x363b, 0xf53d, 0x6726, 0x473d, - /* 0x8100 */ - 0x3b69, 0x363c, 0x4048, 0x4f46, 0x4c2e, 0x6677, 0x4054, 0xf53b, - 0xf540, 0x7a4e, 0x3553, 0x667a, 0xf541, 0x667c, 0xf543, 0xf544, - 0x667b, 0xf545, 0x667d, 0x4326, 0x473e, 0xf53f, 0x4431, 0xf547, - 0x6723, - /* 0x8140 */ - 0x6722, 0x7a4f, 0x667e, 0x3f55, 0x4965, 0x6725, 0x6724, 0x3950, - 0x4f53, 0x6735, 0x7a50, 0x6729, 0x672a, 0x7a51, 0x7a52, 0xf549, - 0x3c70, 0x7a53, 0x6728, 0x3978, 0x6727, 0x672b, 0x4432, 0x4a22, - 0x4123, 0x425c, - /* 0x8180 */ - 0x672f, 0xf54b, 0x6730, 0x672c, 0xf54d, 0xf54e, 0x672d, 0x672e, - 0x3951, 0x6736, 0x6732, 0xf550, 0x4966, 0x4b6c, 0x4928, 0x6731, - 0x6734, 0x6733, 0x4b44, 0x6737, 0x6738, 0xf551, 0x4137, 0x6739, - 0x673b, 0x673f, 0x7a54, 0x673c, 0x673a, 0x473f, - /* 0x81C0 */ - 0x673d, 0xf552, 0x673e, 0xf553, 0x3232, 0x6745, 0x6740, 0x7a55, - 0x6741, 0x7a56, 0x6742, 0x4221, 0xf554, 0x7a57, 0x6744, 0x6743, - 0x6746, 0xf555, 0x6747, 0x6748, 0x3f43, 0xf557, 0x3269, 0x6749, - 0x4e57, 0x3c2b, 0xf559, 0x3d2d, 0x3b6a, 0x4357, 0x674a, 0x674b, - 0x3131, 0xf55b, 0x674c, 0xf55c, - /* 0x8200 */ - 0x674d, 0x674e, 0xf55e, 0x674f, 0x6750, 0x363d, 0x5a2a, 0x6751, - 0x4065, 0x6752, 0x3c4b, 0x6753, 0x5030, 0x6754, 0x4a5e, 0x345c, - 0xf560, 0x4124, 0x3d58, 0x4971, 0x3d2e, 0xf561, 0xf562, 0x6755, - 0x3952, 0x6756, 0x484c, 0x6764, 0xf564, 0x6758, 0xf565, 0x4249, - 0x4775, 0x383f, 0x6757, 0x4125, 0xf566, - /* 0x8240 */ - 0x6759, 0xf569, 0xf567, 0x447a, 0xf568, 0xf56b, 0xf56d, 0xf56f, - 0x675b, 0x675a, 0x675d, 0xf571, 0x675c, 0x675e, 0x7a5b, 0x6760, - 0xf572, 0x675f, 0x344f, 0x6761, 0x6762, 0x6763, 0x3a31, 0x4e49, - 0x6765, 0x3f27, 0x7a5c, 0x3170, 0x6766, 0x6767, 0xf576, 0xf578, - 0x6768, 0xf579, - /* 0x8280 */ - 0xf57a, 0xf57b, 0x3072, 0x6769, 0x7a5e, 0x676a, 0xf57c, 0x4967, - 0x3c47, 0x676c, 0x7a5f, 0x7a60, 0x7a61, 0x3329, 0x3032, 0xf57d, - 0xf57e, 0x7a62, 0x676b, 0x676e, 0x474e, 0x7a63, 0x3f44, 0x3256, - 0xf621, 0x4b27, 0xf622, 0x7a64, 0x375d, 0x365c, 0xf623, 0x676d, - 0xf624, 0x326a, 0x7a65, 0x7a66, - /* 0x82C0 */ - 0x3423, 0x7a67, 0x3171, 0x6772, 0x4e6a, 0x425d, 0x7a68, 0x4944, - 0x677e, 0x3257, 0x677c, 0x677a, 0x6771, 0x676f, 0xf625, 0x6770, - 0x3c63, 0x366c, 0x4377, 0xf626, 0x4651, 0x3151, 0x6774, 0x6773, - 0xf627, 0x6779, 0x6775, 0x6778, 0x7a69, 0x7a6a, - /* 0x8300 */ - 0x7a6b, 0x7a6c, 0x4c50, 0x6777, 0x3258, 0x337d, 0x677b, 0xf628, - 0xf629, 0x677d, 0xf62a, 0x3754, 0x6823, 0x682c, 0x682d, 0xf62c, - 0x302b, 0xf62d, 0x7a6e, 0x6834, 0x3071, 0x682b, 0x7a6f, 0x682a, - 0xf62e, 0x6825, 0x6824, 0x6822, 0x6821, 0x4363, 0x427b, 0x6827, - 0x7a70, 0xf62f, - /* 0x8340 */ - 0x6826, 0x7a71, 0xf630, 0x6829, 0x7a72, 0x4170, 0x3755, 0x3141, - 0x6828, 0x7a73, 0x3953, 0xf62b, 0x7a74, 0xf631, 0x4171, 0x7a6d, - 0xae4a, 0x683a, 0x683b, 0x3259, 0x322e, 0x6838, 0x7a75, 0xf633, - /* 0x8380 */ - 0x682e, 0x7a76, 0x6836, 0x683d, 0x6837, 0xf636, 0x6835, 0x7a77, - 0x6776, 0xf637, 0xf638, 0x6833, 0x7a78, 0x682f, 0xf639, 0xf63a, - 0x3450, 0x6831, 0x683c, 0x6832, 0x7a79, 0x683e, 0x7a7a, 0x6830, - 0x477c, 0x4d69, 0x6839, 0x684f, 0x7a7b, - /* 0x83C0 */ - 0x7a7c, 0x6847, 0x3f7b, 0x7a7d, 0xf63b, 0x3546, 0x365d, 0x6842, - 0x7a7e, 0xf63c, 0x7b21, 0x325b, 0xf63d, 0x3e54, 0x6845, 0x3a5a, - 0xf63e, 0x4551, 0x684a, 0x7b22, 0xf63f, 0x4a6e, 0x7b23, 0x6841, - 0x325a, 0x3856, 0x4929, 0x684b, 0x683f, 0x6848, 0xf640, 0x6852, - 0x6843, - /* 0x8400 */ - 0x7b24, 0x6844, 0x463a, 0x7b25, 0x6849, 0x7b26, 0x6846, 0x4b28, - 0x684c, 0x3060, 0xf641, 0xf642, 0x6840, 0xf643, 0xf645, 0x684e, - 0x684d, 0x476b, 0x6854, 0x685f, 0x337e, 0x6862, 0x6850, 0xf646, - 0x6855, 0x4d6e, - /* 0x8440 */ - 0x685e, 0x7b28, 0x4d55, 0xf647, 0x4e2a, 0xf648, 0xf649, 0xf64a, - 0x4378, 0xf64b, 0xf64c, 0x336b, 0xf64d, 0x7b29, 0x4972, 0x6864, - 0x4621, 0xf64f, 0x3031, 0x685d, 0x6859, 0x4172, 0x6853, 0x685b, - 0x6860, 0x7b2a, 0x472c, 0x7b2b, 0x302a, 0xf650, 0x6858, 0xf651, - 0x6861, 0x4978, 0xf652, - /* 0x8480 */ - 0xf653, 0x685c, 0x6857, 0x7b2c, 0x3e55, 0x3d2f, 0x3c2c, 0xf656, - 0x4c58, 0x4947, 0x7b2d, 0x6867, 0x6870, 0xf657, 0x685a, 0x7b2e, - 0x3377, 0x7b2f, 0x3e78, 0x6865, 0x7b30, 0x686a, 0x4173, 0xf658, - 0x6866, - /* 0x84C0 */ - 0x7b31, 0x686d, 0x7b32, 0x435f, 0x686e, 0x4d56, 0x6863, 0x3338, - 0x6869, 0xf65a, 0xf65b, 0x686c, 0x4c2c, 0xf65c, 0x686f, 0x6868, - 0x686b, 0xf655, 0xf65e, 0xf65f, 0x4b29, 0x4f21, 0xf660, 0xf661, - 0xf662, 0x6873, 0xf663, 0x687a, 0xf664, 0x6872, - /* 0x8500 */ - 0x3c43, 0x6851, 0xf665, 0x4a4e, 0x4c22, 0x6879, 0x6878, 0x6874, - 0x6875, 0x3136, 0xf666, 0x7b35, 0x6877, 0x6871, 0x7b36, 0xf667, - 0xf668, 0x4455, 0xf669, 0x6876, 0x307e, 0x7b37, 0x7b34, 0xf66a, - 0x4222, 0x4a43, 0xf66f, - /* 0x8540 */ - 0x687b, 0x6921, 0x4859, 0x687e, 0x3e56, 0x3c49, 0x6923, 0x363e, - 0xf66b, 0xf670, 0xf671, 0x6924, 0x4979, 0x687d, 0x7b38, 0x6856, - 0xf672, 0xf673, 0xf674, 0x687c, 0x7b39, 0x4f4f, 0x4622, 0x4973, - 0x692b, 0xf66c, 0x6931, 0x7b3c, 0xf676, 0xf677, 0x6932, 0xf678, - /* 0x8580 */ - 0x6925, 0xf679, 0x4776, 0xf67a, 0x692f, 0x6927, 0x6929, 0x7b3d, - 0x7b3e, 0x6933, 0x6928, 0xf67b, 0x692c, 0x3172, 0x4665, 0x692d, - 0x6930, 0xf67c, 0xf67d, 0x7b3f, 0x6926, 0x4126, 0x692a, 0x3b27, - 0x3f45, 0x3730, 0x4c74, 0x7b3b, 0x4c79, 0x3d72, 0x7b40, 0xf723, - 0x6937, 0x6935, 0xf724, - /* 0x85C0 */ - 0x4f4e, 0xf725, 0x6934, 0xf726, 0x7b41, 0x4d75, 0x7b42, 0x6936, - 0x6938, 0x6939, 0xf727, 0xf728, 0x693c, 0x693a, 0xf729, 0xf72a, - 0x4623, 0x693b, 0xf72b, 0x484d, 0x692e, 0x7b43, 0xf72c, 0x3d73, - 0x693d, 0x6942, 0x4174, 0x6941, 0x7b45, - /* 0x8600 */ - 0xf72d, 0x6922, 0x7b46, 0x7b47, 0x6943, 0x4149, 0x693e, 0x6940, - 0x7b48, 0xf72e, 0x7b44, 0x693f, 0x5d31, 0x5d22, 0x7b4a, 0x6945, - 0xf72f, 0xf730, 0x6944, 0xf731, 0xf732, 0x7b4b, 0x4d76, 0x623c, - 0x6946, 0x7b4c, 0xf734, 0xf735, 0x6947, - /* 0x8640 */ - 0xf737, 0x2f68, 0x6948, 0x3857, 0x3554, 0xf739, 0x694a, 0x515d, - 0xf73a, 0x7b4d, 0x3575, 0x7b4e, 0x4e3a, 0x3673, 0x694b, 0x7b50, - 0x694c, 0x436e, 0x7b52, 0xf73b, 0x694d, 0x7b53, 0xf73c, 0x467a, - 0xf73d, 0x303a, - /* 0x8680 */ - 0xf73e, 0xf73f, 0x3263, 0x6952, 0x6953, 0xf740, 0xf741, 0x694e, - 0x3b3d, 0x7b54, 0xf742, 0xf743, 0x694f, 0x4742, 0xf744, 0x6950, - 0x6951, 0x695b, 0x6955, 0x6958, 0xf746, 0xf747, 0x6954, 0x7b55, - /* 0x86C0 */ - 0xf748, 0xf749, 0x6956, 0x6957, 0x3c58, 0x6959, 0x4341, 0x3756, - 0x3342, 0xf74a, 0x695c, 0xf74b, 0xf74c, 0x333f, 0x6961, 0x695d, - 0x6960, 0xf74d, 0x483a, 0xf74e, 0x695e, 0x695f, 0x4948, 0x485a, - 0x6962, 0x427d, 0x696c, 0x7b56, 0x6968, 0x7b57, 0x7b58, 0x326b, - /* 0x8700 */ - 0x6966, 0x4b2a, 0x6967, 0xf750, 0x6964, 0xf751, 0x6965, 0x696a, - 0x696d, 0x7b59, 0x696b, 0xf752, 0xf753, 0x6969, 0x6963, 0xf754, - 0x4358, 0xf755, 0x6974, 0x4c2a, 0xf756, 0xf757, 0xf758, 0x6972, - 0x6973, 0xf759, 0x696e, 0x6970, 0xf75a, 0x6971, 0xf75b, 0x696f, - /* 0x8740 */ - 0xf75c, 0xf75d, 0x4066, 0x4f39, 0x6978, 0x6979, 0xf75e, 0x6a21, - 0x3f2a, 0x697b, 0xf75f, 0x697e, 0x6976, 0x6975, 0x6a22, 0xf760, - 0xf761, 0x325c, 0x697c, 0x6a23, 0x697d, 0x7b5a, 0xf762, 0x697a, - 0x4433, 0x6977, 0xf763, 0x4768, - /* 0x8780 */ - 0x6a27, 0x7b5b, 0x7b5c, 0xf767, 0xf768, 0x4d3b, 0xf769, 0x6a26, - 0xf76a, 0x6a25, 0xf766, 0x6a2e, 0x7b5d, 0x7b5e, 0x6a28, 0x6a30, - 0x7b5f, 0x4d66, 0x6a33, 0x6a2a, 0xf76d, - /* 0x87C0 */ - 0x6a2b, 0xf76f, 0x6a2f, 0x6a32, 0x6a31, 0x6a29, 0xf770, 0x6a2c, - 0x6a3d, 0x7b61, 0xf772, 0x6a36, 0xf774, 0xf775, 0xf776, 0xf777, - 0xf778, 0x7b62, 0xf779, 0x6a34, 0x6a35, 0xf771, 0x6a3a, 0x6a3b, - 0x332a, 0x3542, 0x6a39, - /* 0x8800 */ - 0xf77a, 0xf77b, 0x6a24, 0x7b63, 0x7b64, 0xf77c, 0x6a38, 0x6a3c, - 0x6a37, 0x7b65, 0x6a3e, 0xf77d, 0x7b66, 0x6a40, 0x6a3f, 0x7b67, - 0x6a42, 0x6a41, 0x695a, 0x6a46, 0xf77e, 0xf821, 0x6a43, 0xf822, - 0x6a44, 0x6a45, 0x6a47, 0xf823, - /* 0x8840 */ - 0x376c, 0x6a49, 0x6a48, 0x3d30, 0xf825, 0x3954, 0x5e27, 0x6a4a, - 0x3d51, 0x3339, 0xf826, 0x6a4b, 0x3152, 0x3e57, 0x6a4c, 0xf827, - 0x3955, 0x6a4d, 0x3061, 0xf828, 0x493d, 0xf82b, 0x6a4e, 0xf82d, - 0x3f6a, 0x6a55, 0x6a52, 0x436f, 0x6a53, 0x6a50, 0x365e, - /* 0x8880 */ - 0x6a4f, 0x6a56, 0x3736, 0x425e, 0x6a5c, 0x6a58, 0x4235, 0x6a57, - 0x7b68, 0x6a5a, 0x6a51, 0xf82e, 0x6a5b, 0x6a5d, 0x7b69, 0x486f, - 0x6a59, 0x6a5e, 0x6a60, 0x3853, 0x6a54, 0x3041, 0xf82f, 0xf830, - 0xf831, 0x6a5f, - /* 0x88C0 */ - 0xf832, 0x3a5b, 0x4e76, 0x6a61, 0x6a62, 0x4175, 0x7b6a, 0x7b6b, - 0x4e22, 0xf835, 0xf833, 0xf836, 0x6a63, 0x4d35, 0x6a64, 0x6a65, - 0xf837, 0x4a64, 0x6a66, 0x3a40, 0x4e23, 0x6a6b, 0xf838, 0xf839, - 0x6a6c, 0x3e58, 0x6a6a, 0x7b6d, 0x4d67, 0x6a67, 0x6a69, 0x403d, - 0x3f7e, - /* 0x8900 */ - 0xf83b, 0x6a68, 0x6a6d, 0x4a23, 0x6a6f, 0x6a6e, 0x336c, 0x4b2b, - 0x6a70, 0x7b70, 0x7b71, 0x7b72, 0x7b6e, 0x6a7c, 0x6a72, 0x6a73, - 0x7b73, 0x6a74, 0x6a75, 0x7b74, 0x7b75, 0x6a79, 0xf83d, 0x6a7a, - 0x7b76, 0x6a78, - /* 0x8940 */ - 0x7b77, 0x6a76, 0xf83f, 0x6a71, 0x6a77, 0xf840, 0xf841, 0x6a7b, - 0x7037, 0x3228, 0x6a7e, 0x365f, 0x6a7d, 0xf844, 0x6b22, 0x6b21, - 0x6b24, 0x6b23, 0x6b25, 0x3d31, 0x6b26, 0x6b27, 0x6b28, 0x403e, - /* 0x8980 */ - 0xf845, 0x4d57, 0x6b29, 0x4a24, 0x4746, 0x6b2a, 0xf846, 0x6b2b, - 0x382b, 0x352c, 0xf847, 0x6b2c, 0x7b78, 0x3b6b, 0x4741, 0x6b2d, - 0x3350, 0xf848, 0x6b2e, 0x6b30, 0x4d77, 0x6b2f, 0x3f46, 0x6b31, - 0x6b32, 0xf849, 0x6b33, 0x3451, 0xf84a, 0x6b34, 0x6b35, 0x6b36, - /* 0x89C0 */ - 0x6b37, 0x3351, 0x7b7a, 0xf84b, 0xf84c, 0x6b38, 0x6b39, 0x6b3a, - 0x3272, 0x7b7b, 0x3f28, 0x6b3b, 0xf84d, 0xf84f, 0xf850, 0x6b3c, - 0x7b7c, 0x6b3d, 0xf851, 0xf852, - /* 0x8A00 */ - 0x3840, 0x447b, 0x6b3e, 0x3757, 0x3f56, 0x6b41, 0x4624, 0x6b40, - 0xf854, 0x7b7d, 0x3731, 0xf855, 0x7b7e, 0x6b3f, 0x4277, 0x352d, - 0x6b42, 0x6b43, 0x3e59, 0xf857, 0x7c21, 0x376d, 0x6b44, 0x4b2c, - 0x405f, 0x3576, 0x4c75, 0x414a, 0xf858, 0x6b45, 0x7c22, 0x3f47, - 0x4370, 0x3e5a, 0xf859, - /* 0x8A40 */ - 0x6b46, 0xf85a, 0x6b49, 0x7c23, 0x6b4a, 0xf85b, 0x7c24, 0x3a3e, - 0x4242, 0x6b48, 0x3e5b, 0x493e, 0xf85c, 0x6b47, 0x7c25, 0x3b6c, - 0x3153, 0x7c26, 0x6b4e, 0x3758, 0x3b6e, 0x3b6d, 0x4f4d, 0x6b4d, - 0x6b4c, 0x4127, 0x354d, 0x4f43, 0x333a, 0x3e5c, 0x7c27, 0x7c28, - 0x6b4b, - /* 0x8A80 */ - 0x6b50, 0x6b51, 0x6b4f, 0x3858, 0x4d40, 0x3b6f, 0x4727, 0xf85e, - 0x6b54, 0x4040, 0x4342, 0x4d36, 0x6b57, 0x386c, 0x403f, 0x6b53, - 0x6b58, 0x386d, 0x6b55, 0x6b56, 0x7c29, 0x6b52, 0x4062, 0x4649, - 0xf85d, 0x432f, 0x325d, 0xf85f, 0x4870, 0x3543, 0xf860, 0x4434, - /* 0x8AC0 */ - 0x6b5b, 0x6b59, 0x434c, 0x4041, 0x3452, 0x6b5a, 0x3f5b, 0x7c2a, - 0x4e4a, 0x4f40, 0xf861, 0x6b5c, 0x6b67, 0x4435, 0x6b66, 0x7c2b, - 0x6b63, 0x6b6b, 0x6b64, 0x6b60, 0x447c, 0x6b5f, 0x6b5d, 0x4d21, - 0x3b70, 0x6b61, 0x6b5e, 0x7c2c, 0x7c2d, 0x6b65, 0x3d74, 0x3841, - 0xf862, 0x427a, - /* 0x8B00 */ - 0x4b45, 0x315a, 0x3062, 0x4625, 0xf865, 0x6b69, 0xf864, 0x6b68, - 0xf866, 0x4666, 0x6b6d, 0x6b62, 0x6b6c, 0x6b6e, 0x382c, 0x6b6a, - 0x3956, 0xf867, 0x3c55, 0xf868, 0x6b6f, 0x4d58, 0x6b72, 0x6b75, - 0x6b73, 0x4935, 0xf869, 0x6b70, 0x3660, 0x6b74, - /* 0x8B40 */ - 0x6b76, 0xf86a, 0x7c31, 0x6b7a, 0x6b77, 0x6b79, 0x6b78, 0xf86c, - 0x7c32, 0x6b7b, 0x3c31, 0x7c33, 0x6b7d, 0x6b7c, 0x4968, 0xf86d, - 0x6c21, 0x3759, 0x7c34, 0x6b7e, 0x6c22, 0x6c23, 0x3544, 0x6641, - 0x3e79, 0x6c24, 0xf86e, 0x386e, 0x6c25, 0xf86f, - /* 0x8B80 */ - 0x6c26, 0xf870, 0x3b3e, 0x5a4e, 0xf871, 0x6c27, 0x6c28, 0x3d32, - 0x6c29, 0x6c2a, 0xf872, 0xf873, 0x6c2b, 0x6c2c, 0x6c2d, 0xf874, - 0x7c35, 0xf875, - /* 0x8C00 */ - 0x432b, 0xf876, 0x6c2e, 0xf878, 0x6c30, - /* 0x8C40 */ - 0x6c2f, 0xf87b, 0x4626, 0xf87c, 0x6c31, 0x7c36, 0x4b2d, 0x6c32, - 0x6c33, 0xf87d, 0x6c34, 0xf87e, 0x6c35, 0xf921, 0x465a, 0x3e5d, - 0x6c36, 0x7c37, 0xf922, 0x396b, 0x502e, 0x6c37, 0xf923, 0xf924, - 0x6c38, 0x493f, 0x6c39, 0x6c41, - /* 0x8C80 */ - 0x6c3a, 0x6c3c, 0x6c3b, 0x6c3d, 0x4b46, 0x6c3e, 0x6c3f, 0xf927, - 0xf926, 0x6c40, 0x6c42, 0xf928, 0xf92a, 0x332d, 0x4467, 0x4969, - 0x3a62, 0x3957, 0xf92b, 0x494f, 0x325f, 0x484e, 0x6c45, 0x3453, - 0x4055, 0x6c44, 0x6c49, 0x4379, 0x4c63, 0x6c47, 0x6c48, 0x352e, - 0x6c4a, 0x4763, 0x425f, 0x4871, 0x453d, 0x6c46, 0x4b47, - /* 0x8CC0 */ - 0x326c, 0x6c4c, 0x4f28, 0x4442, 0x4f45, 0x3b71, 0x6c4b, 0x4231, - 0x6c5c, 0x4128, 0x4678, 0x4950, 0xf92d, 0xf92c, 0xf92e, 0x6c4f, - 0x3b3f, 0x3b72, 0x3e5e, 0x4765, 0x7c39, 0x382d, 0x6c4e, 0x6c4d, - 0x496a, 0x3c41, 0x4552, 0xf930, 0xf931, 0x7c3a, 0x7c3b, 0x6c51, - 0x6c52, 0x3958, 0x6c50, 0x7c3c, - /* 0x8D00 */ - 0x6c53, 0x6c54, 0x6c56, 0x4223, 0xf933, 0x6c55, 0x3466, 0x6c58, - 0xf934, 0x6c57, 0x6c59, 0x7c3e, 0x6c5b, 0x6c5d, 0x6c5e, 0x7c3f, - /* 0x8D40 */ - 0x4056, 0x3c4f, 0x6c5f, 0x3352, 0xf935, 0x6c60, 0x4176, 0x6c61, - 0x6c62, 0x496b, 0x352f, - /* 0x8D80 */ - 0x6c63, 0xf936, 0x4436, 0x315b, 0xf937, 0x6c64, 0x3c71, 0xf938, - 0x3f76, 0x7c40, 0x422d, 0x6c67, 0x6c66, - /* 0x8DC0 */ - 0x6c65, 0xf93a, 0xf93b, 0x6c6d, 0x6c6b, 0x7c41, 0x6c68, 0x7c42, - 0x6c6a, 0x7c43, 0xf93c, 0x6c69, 0x6c6c, 0x3577, 0x6c70, 0x4057, - 0x6c71, 0x3859, 0x6c6e, 0x6c6f, 0xf93d, 0x4f29, 0x4437, 0x4129, - 0x6c72, 0xf940, 0x6c75, - /* 0x8E00 */ - 0xf941, 0x6c73, 0x6c74, 0x4d59, 0xf93e, 0x4627, 0x6c78, 0xf943, - 0xf944, 0x6c76, 0x6c77, 0x6c79, 0x7c44, 0xf945, 0xf946, 0x7c45, - 0xf947, 0x6d29, 0x6c7c, 0x6c7d, 0x6c7b, 0xf94a, 0xf94b, 0x7c46, - /* 0x8E40 */ - 0x6c7a, 0x447d, 0x6d21, 0x6d25, 0x6d22, 0x6c7e, 0xf94c, 0x6d23, - 0x6d24, 0xf94d, 0x6d2b, 0x6d26, 0x4058, 0x6d28, 0xf94e, 0x6d2a, - 0x6d27, 0xf94f, 0xf950, 0xf951, 0x7c47, 0x6d2d, 0x3d33, 0x6d2c, - 0x7c48, 0x6d2e, - /* 0x8E80 */ - 0x6d2f, 0x6d32, 0x6d31, 0x6d30, 0x6d34, 0x6d33, 0x4c76, 0x6d36, - 0x6d35, 0x6d37, 0xf952, 0x6d38, 0xf953, 0x6d3a, 0x6d39, 0x3f48, - 0x6d3b, 0xf954, 0x366d, 0x6d3c, 0x6d3e, 0xf955, 0xf956, 0xf957, - 0xf958, 0x6d3f, - /* 0x8EC0 */ - 0x7c4a, 0x6d40, 0x6d3d, 0x6d41, 0x3c56, 0x6d42, 0x3530, 0x3733, - 0xf95a, 0x382e, 0xf95b, 0x6d43, 0x4670, 0x453e, 0x6d44, 0x6d47, - 0x3c34, 0xf95d, 0x7c4c, 0x6d46, 0x6d45, 0x375a, 0x6d48, - /* 0x8F00 */ - 0xf95f, 0x3353, 0x6d4a, 0xf960, 0x3a5c, 0x6d49, 0x6d52, 0x6d4c, - 0x6d4e, 0x4a65, 0x6d4b, 0xf961, 0x6d4d, 0x6d51, 0x6d4f, 0x3531, - 0x7c4d, 0x6d50, 0x6d53, 0x475a, 0x4e58, 0xf962, 0x7c4e, 0x3d34, - 0x6d54, 0x7c4f, 0x4d22, 0x6d56, 0x6d55, 0x6d59, 0x4d41, - /* 0x8F40 */ - 0xf963, 0x6d58, 0x336d, 0x6d57, 0x6d5c, 0x6d5b, 0xf964, 0x6d5a, - 0x4532, 0x6d5d, 0x7c50, 0x6d5e, 0xf965, 0x6d5f, 0x396c, 0x3725, - 0x6d60, 0x6d61, 0x6d62, - /* 0x8F80 */ - 0x3f49, 0x6d63, 0x3c2d, 0x6d64, 0x6d65, 0xf967, 0x7c52, 0x5221, - 0x517e, 0x6d66, 0x6570, 0x6d67, 0x4324, 0x3f2b, 0x4740, 0xf968, - 0x7c53, 0xf96a, 0x6d68, 0x4a55, 0x4454, 0x397e, 0x4329, - /* 0x8FC0 */ - 0xf96c, 0x312a, 0x4b78, 0x3f57, 0xf96d, 0xf96f, 0xf970, 0x375e, - 0x3661, 0xf971, 0x4a56, 0xf972, 0x6d69, 0xf973, 0x6d6b, 0x7c54, - 0x6d6a, 0x3260, 0x7c55, 0x4676, 0x6d6c, 0x4777, 0x4533, 0x7c56, - 0x6d6d, 0x3d52, 0xf974, 0x6d6f, 0xf975, 0x4c42, 0x6d7e, 0x6d71, - 0x6d72, 0xf976, 0x4449, - /* 0x9000 */ - 0x4260, 0x4177, 0xf977, 0x4628, 0x6d70, 0x3555, 0x7c57, 0x6d79, - 0xf978, 0x6d76, 0x6e25, 0x4629, 0x4360, 0x6d73, 0x447e, 0x4553, - 0x6d74, 0x6d78, 0x3f60, 0x4767, 0x444c, 0x4042, 0x6d77, 0x422e, - 0x4224, 0x6d75, 0x3029, 0x4f22, 0x6d7a, 0x7c58, 0x4261, 0x3d35, - 0x3f4a, 0x6d7c, 0x6d7b, 0xf979, 0x306f, 0x6d7d, 0x492f, 0x6e27, - /* 0x9040 */ - 0x465b, 0x3f6b, 0xf97b, 0xf97c, 0x4359, 0x3678, 0x6e26, 0x4d37, - 0x313f, 0x4a57, 0x3261, 0x6e21, 0x6e22, 0x6e23, 0x6e24, 0x463b, - 0x4323, 0x3063, 0x6e28, 0x6e29, 0x7423, 0x423d, 0xf97d, 0x6e2a, - 0x3173, 0x414c, 0x382f, 0x4d5a, 0x6e2b, 0x452c, 0x4178, 0x3c57, - 0x6e2c, 0x6e2f, 0x3d65, 0x6e2d, 0x412b, 0x412a, 0x3064, 0x4e4b, - 0x6e31, 0x4872, - /* 0x9080 */ - 0x6e33, 0x6e32, 0x6e30, 0x6364, 0x3454, 0xfa22, 0x6d6e, 0x7c5a, - 0x6e35, 0x6e34, 0xfa23, 0x6e36, 0xfa24, 0x4d38, 0x7c5b, 0x7c5c, - 0x7c5d, 0x7c5e, 0xfa26, 0x7c5f, 0x4661, 0x4b2e, 0x6e37, 0x3c59, - 0x6e38, 0xfa28, 0x6e39, 0x7c60, 0x6e3a, 0xfa29, 0x4521, 0x7c61, - /* 0x90C0 */ - 0x306a, 0xfa2a, 0x7c62, 0x7c63, 0x7c64, 0xfa2b, 0x3959, 0x4f3a, - 0x7c65, 0x6e3e, 0xfa2d, 0x7c66, 0x7c67, 0xfa2e, 0x3734, 0x6e3b, - 0x6e3c, 0x4974, 0xfa33, 0x3354, 0x7c68, 0xfa31, 0x7c69, 0x4d39, - 0xfa30, 0x363f, 0x4554, 0xfa34, 0xfa35, - /* 0x9100 */ - 0xfa32, 0x6e3f, 0xfa36, 0xfa37, 0x6e40, 0x7c6b, 0x7c6c, 0x7c6d, - 0xfa38, 0x6e41, 0xfa39, 0xfa3a, 0x7c6e, 0x7c6f, 0x7c70, 0x4522, - 0x7c71, 0x6e43, 0x7c72, 0x6e42, 0x7c73, 0xfa3b, 0xfa3c, 0xfa3d, - 0x7c74, - /* 0x9140 */ - 0xfa3e, 0xfa3f, 0x7c75, 0x4653, 0x6e44, 0x3d36, 0x3c60, 0x475b, - 0x4371, 0x3c72, 0x3f6c, 0x6e45, 0xfa40, 0x6e46, 0xfa41, 0x7c76, - 0xfa42, 0x3f5d, 0x6e47, 0xfa43, 0x6e48, 0x6e49, 0x4d6f, 0x3d37, - 0x6e4b, 0x6e4a, 0xfa44, 0x395a, 0x3973, 0x3b40, 0xfa45, - /* 0x9180 */ - 0x6e4e, 0x7c77, 0xfa46, 0x3d66, 0x6e4d, 0x6e4c, 0x4269, 0xfa47, - 0x386f, 0x4043, 0x4830, 0x3d39, 0x7c78, 0x6e4f, 0x3e5f, 0xfa48, - 0x6e52, 0x6e50, 0x7c79, 0xfa49, 0x6e51, 0x7c7a, 0xfa4a, 0x6e54, - 0x6e53, 0xfa4b, 0x3e7a, 0x6e55, 0x7c7b, - /* 0x91C0 */ - 0x6e56, 0x6e57, 0xfa4c, 0xfa4d, 0x4850, 0x3a53, 0x3c61, 0x6e58, - 0x6e59, 0x4e24, 0x3d45, 0x4c6e, 0x4e4c, 0x6e5a, 0x3662, 0x6e5b, - 0x7c7c, 0x4523, 0xfa4e, 0x6e5e, 0x3378, 0x3f4b, 0x6e5c, 0x6e5d, - 0x4460, 0x7c7e, 0x7d21, 0x4b55, 0x367c, 0xfa51, 0x7d22, 0xfa52, - 0x7d23, 0x6e60, 0x6e61, 0x7c7d, 0x6e5f, 0x6e63, - /* 0x9200 */ - 0xfa53, 0x7d24, 0xfa54, 0x465f, 0x3343, 0x7d25, 0x6e67, 0x6e64, - 0x6e66, 0xfa55, 0xfa56, 0x6e62, 0x6f4f, 0x6e65, 0xfa58, 0x4e6b, - 0x385a, 0x7d26, 0x7d27, 0x7d28, 0x7d29, 0x6e6f, - /* 0x9240 */ - 0x7d2a, 0xfa59, 0x7d2b, 0x4534, 0x6e6a, 0xfa5a, 0x6e6d, 0x6e6b, - 0xfa5b, 0x6e70, 0xfa5c, 0x7d2c, 0x6e71, 0xfa5d, 0xfa5e, 0x6e69, - 0xfa5f, 0x6e76, 0x3174, 0x6e68, 0xfa60, 0xfa61, 0x482d, 0x6e6c, - 0xfa62, 0x3e60, 0xfa63, 0xfa64, 0x395b, 0x7d2d, 0xfa67, 0xfa68, - 0x4b48, 0xfa69, - /* 0x9280 */ - 0x3664, 0x3d46, 0x463c, 0x7d2e, 0xfa6a, 0xfa6b, 0x412d, 0x6e74, - 0x6e6e, 0x6e73, 0xfa6c, 0x4c43, 0xfa6d, 0x4438, 0x6e75, 0x6e72, - 0xfa6e, 0xfa6f, 0xfa70, 0x412c, 0xfa73, 0x6e79, 0x6e78, 0xfa74, - /* 0x92C0 */ - 0xfa75, 0x7d2f, 0xfa76, 0x7d30, 0x7d31, 0xfa77, 0x6e77, 0xfa78, - 0x4b2f, 0x7d32, 0xfa79, 0xfa7a, 0x7d33, 0x3d7b, 0xfa7b, 0xfa7c, - 0x6e7a, 0x4a5f, 0x3154, 0x4946, 0x4372, 0xfb22, 0x3578, 0xfb23, - 0x6e7c, 0xfb24, 0x395d, 0x7d34, - /* 0x9300 */ - 0xfb25, 0x7d35, 0x3b2c, 0xfb26, 0x6e7b, 0x3f6d, 0xfa7d, 0xfb27, - 0x3f6e, 0x6f21, 0x6f23, 0xfb28, 0xfb29, 0x7d36, 0x3e7b, 0x7d37, - 0x6f22, 0x6f24, 0x7d38, 0x3653, 0xfb2a, 0x4945, 0xfb2b, 0x3c62, - 0x4f23, 0x6e7e, 0x3a78, 0x4f3f, 0x6f26, 0x6f25, 0x6f27, - /* 0x9340 */ - 0x6e7d, 0xfb2e, 0x7d39, 0x7d3a, 0x7d3b, 0x4669, 0x4555, 0xfb2f, - 0x4457, 0x6f2c, 0xfb30, 0xfb31, 0x4343, 0x6f28, 0x6f29, 0x7d3c, - 0x7d3d, 0x7d3e, 0xfb32, 0x372d, 0x6f2b, 0x7d3f, 0xfb33, 0xfb34, - 0x3830, 0x6f2a, 0x3e61, - /* 0x9380 */ - 0xfb38, 0xfb39, 0x3379, 0xfb3a, 0x6f30, 0x3a3f, 0x4179, 0x444a, - 0x7d40, 0xfb3b, 0xfb35, 0x7d41, 0x333b, 0x6f2e, 0x6f2f, 0x4443, - 0x6f2d, 0x6f31, 0x7d42, - /* 0x93C0 */ - 0xfb40, 0x6f37, 0x7d43, 0xfb41, 0x6f3a, 0x6f39, 0x452d, 0x6f32, - 0x6f33, 0x6f36, 0xfb42, 0x6f38, 0x7d44, 0x7d45, 0x3640, 0xfb43, - 0x6f3b, 0x6f35, 0xfb44, 0x6f34, 0xfb3f, 0xfb3c, 0xfb49, 0x7d47, - /* 0x9400 */ - 0x6f3f, 0x7d46, 0x6f40, 0xfb45, 0xfb46, 0x6f41, 0x6f3e, 0x6f3d, - 0xfb47, 0xfb48, 0x3e62, 0x462a, 0x6f3c, 0x6f45, 0x6f43, 0xfb4a, - 0x7d48, 0xfb4b, 0x6f44, 0x6f42, 0x4278, 0x6f46, 0xfb4c, - /* 0x9440 */ - 0x6f47, 0x6f49, 0xfb4d, 0x7d49, 0x3455, 0x6f48, 0x4c7a, 0x6f54, - 0x6f4a, 0x6f4d, 0x6f4b, 0x6f4c, 0x7d4a, 0x6f4e, 0x7d4b, 0xfb50, - 0xfb51, 0x6f50, 0x7d4c, 0x7d4d, 0x6f51, 0x6f52, 0x6f55, 0x6f53, - 0x6f56, 0x6f58, - /* 0x9480 */ - 0x6f57, - /* 0x9540 */ - 0x4439, 0xfb52, 0xfb53, - /* 0x9580 */ - 0x4c67, 0x6f59, 0x412e, 0xfb54, 0x6f5a, 0x4a44, 0x6f5b, 0x332b, - 0xfb55, 0xfb56, 0x7d4e, 0x313c, 0x3457, 0x3456, 0x6f5c, 0x6f5d, - 0x6f5e, 0x6f5f, 0x7d4f, 0x6f60, 0x3458, 0x3355, 0x395e, 0x4836, - 0x7d50, 0x6f62, 0x6f61, 0x7d51, 0xfb58, 0x7d52, 0x6f63, 0x315c, - 0xfb59, 0x7d53, 0x6f66, 0x6f65, 0x6f64, 0x7d54, 0x6f67, - /* 0x95C0 */ - 0x6f6a, 0x3047, 0xfb5b, 0x6f68, 0x7d55, 0x6f6c, 0x6f6b, 0x7d56, - 0x7d57, 0x6f6e, 0x6f6d, 0x6f6f, 0x462e, 0x7d59, 0x6f70, 0x7d5a, - 0x6f71, 0x6f73, 0x6f72, - /* 0x9600 */ - 0x496c, 0xfa25, 0x6f74, 0x6f75, 0x3a65, 0xfb5e, 0x6f76, 0x6f77, - 0x4b49, 0xfb5f, 0xfb60, 0x414b, 0xfb62, 0x3024, - /* 0x9640 */ - 0x424b, 0xfb63, 0x6f78, 0x496d, 0x6f7b, 0x6f79, 0x395f, 0x6f7a, - 0x3842, 0x7d5b, 0x4a45, 0x6f7d, 0x7021, 0x6f7e, 0x7022, 0xfb64, - 0x3121, 0x3f58, 0x3d7c, 0x3459, 0x7023, 0x4766, 0x7025, 0x3122, - 0x7024, 0x4444, 0x4e4d, 0x462b, 0x6f7c, 0x4e26, 0x3831, 0x4d5b, - /* 0x9680 */ - 0xfb66, 0x7d5c, 0x3679, 0x4e34, 0x3728, 0x4262, 0x6721, 0x7026, - 0x332c, 0x3f6f, 0x3356, 0x7028, 0x7029, 0x7027, 0x3764, 0xfb68, - 0x3a5d, 0x3e63, 0x7d5e, 0x3123, 0x4e59, 0x7d5f, 0x7d60, 0x702b, - 0x6e2e, 0xfb6b, 0x702a, 0xfb6c, 0x702e, 0x702c, 0x702d, 0xfb6d, - 0x702f, 0x7030, 0x4e6c, 0x7031, 0x7032, 0xfb6e, 0x4049, 0x483b, - 0xfb6f, - /* 0x96C0 */ - 0x3f7d, 0x3467, 0x4d3a, 0x326d, 0x3d38, 0x385b, 0x7035, 0x7034, - 0x3b73, 0x7036, 0x7033, 0x3b28, 0x7d61, 0x703a, 0x6a2d, 0xfb72, - 0x5256, 0xfb73, 0x3f77, 0x7038, 0xfb74, 0x7d62, 0x4e25, 0x4671, - 0x312b, 0x7d64, 0x4063, 0x3c36, 0x7d65, 0x4a37, 0x3140, 0x4e6d, - 0x4d6b, 0x703b, 0x4545, - /* 0x9700 */ - 0x3c7b, 0x703c, 0x703d, 0x3f4c, 0x703e, 0x4e6e, 0x7039, 0x7040, - 0x7042, 0x7041, 0x703f, 0xfb76, 0x7043, 0x7044, 0x417a, 0x3262, - 0xfb77, 0x7045, 0x4c38, 0x7046, 0x7047, 0x4f2a, 0x7d66, 0xfb79, - 0x5b31, 0x7048, 0x7d67, 0x7049, 0x704a, - /* 0x9740 */ - 0xfb7a, 0x704e, 0x704b, 0x704c, 0xfb7b, 0x704d, 0x704f, 0x7d68, - 0x7d69, 0x7d6a, 0x4044, 0xfb7c, 0x4c77, 0xfb7d, 0x4045, 0x7d6b, - 0xfb7e, 0x7050, 0x4873, 0x7051, 0x7353, 0x4c4c, 0x7052, 0x7053, - 0x7054, 0x3357, 0xfc21, 0x7056, 0x3f59, 0x7d6c, 0x7057, 0x7d6d, - 0x3724, 0x7058, 0x705c, 0x705a, - /* 0x9780 */ - 0x705b, 0x3373, 0x7059, 0x705d, 0x705e, 0x3048, 0x705f, 0x7060, - 0x7d6e, 0xfc24, 0x3e64, 0xfc25, 0x7061, 0xfc26, 0x3547, 0xfc27, - 0x7064, 0x7063, 0x7062, 0x6b71, 0x4a5c, 0x7d6f, 0xfc28, 0xfc29, - 0x7065, 0x7066, 0x7d70, 0xfc2a, - /* 0x97C0 */ - 0x7d71, 0x7067, 0x7068, 0x7069, 0x7d72, 0x706a, 0xfc2b, 0xfc2c, - 0x345a, 0xfc2d, 0xfc2e, 0xfc2f, 0x7d74, 0x706b, 0x7d73, 0xfc30, - 0x706c, 0x4723, 0xfc31, 0x706e, 0x323b, 0x7d75, 0x7071, 0x7070, - 0x3124, 0x3641, - /* 0x9800 */ - 0x4a47, 0x443a, 0x3a22, 0xfc32, 0x3960, 0x3d67, 0x3f5c, 0x7d77, - 0x7073, 0xfc33, 0xfc34, 0x7072, 0x4d42, 0x3468, 0x4852, 0x465c, - 0xfc35, 0xfc36, 0x3f7c, 0x4e4e, 0x375b, 0x7d78, 0x7076, 0xfc39, - 0x7075, 0xfc3c, 0x7d79, 0x4b4b, 0x462c, 0x7d7a, 0xfc3a, 0xfc3b, - 0x3150, 0x7077, 0x7074, 0x4951, 0x4d6a, 0x7078, - /* 0x9840 */ - 0x7079, 0xfc3d, 0x707b, 0x426a, 0x335b, 0x335c, 0x707a, 0x7d7c, - 0x7d7d, 0x3469, 0x3832, 0x7d7e, 0x7e21, 0x346a, 0x7e22, 0x7e23, - 0x453f, 0x4e60, 0x7e25, 0xfc3e, 0x385c, 0x707c, 0x7e26, 0x707d, - 0x707e, 0x7121, 0x7123, 0x7122, - /* 0x9880 */ - 0x4977, 0x7124, 0xfc3f, 0xfc40, 0x7125, 0xfc41, 0x7126, 0x7127, - 0xfc43, 0xfc44, 0x7e27, 0xfc45, 0xfc46, 0xfc47, - /* 0x98C0 */ - 0xfc48, 0x7129, 0x7128, 0x712a, 0xfc49, 0x7e28, 0xfc4a, 0x4874, - 0x664c, 0x3f29, 0xfc4b, 0xfc4d, 0x3532, 0xfc4e, 0xfc4f, 0x7e29, - 0x712b, 0xfc50, 0x712c, 0x522c, 0x5d3b, 0x4853, 0xfc51, 0xfc52, - 0x307b, 0xfc53, 0x303b, 0x3b74, 0x4b30, 0x3e7e, - /* 0x9900 */ - 0x712d, 0x4c5f, 0xfc54, 0x712e, 0x4d5c, 0x3142, 0x3b41, 0x712f, - 0x326e, 0x7130, 0xfc57, 0xfc58, 0x7131, 0xfc5a, 0xfc5b, 0xfc5c, - 0x7133, 0x7134, 0x7136, 0x7132, 0x7135, 0x345b, 0x7137, 0x7138, - 0xfc5e, 0xfc5f, 0xfc60, 0xfc61, 0xfc62, 0xfc63, 0x7139, 0x713a, - /* 0x9940 */ - 0xfc64, 0xfc65, 0x713b, 0x713d, 0xfc66, 0x713c, 0x713f, 0x7142, - 0xfc67, 0xfc68, 0x713e, 0x7140, 0x7141, 0x7143, 0x3642, 0x7e2a, - 0xfc69, 0xfc6a, 0xfc6b, - /* 0x9980 */ - 0x3c73, 0x7144, 0x7145, 0x3961, 0x7e2b, 0xfc6c, 0x7146, 0xfc6d, - 0x333e, 0x474f, 0x7147, 0x7148, 0x435a, 0x466b, 0xfc6e, 0x7149, - 0xfc6f, 0xfc70, - /* 0x99C0 */ - 0x477d, 0xfc71, 0x424c, 0x3158, 0x366e, 0x366f, 0xfc72, 0x4373, - 0x714e, 0x3670, 0xfc73, 0x326f, 0x714d, 0xfc74, 0x714b, 0x714c, - 0xfc75, 0x714a, 0x7158, 0x714f, 0x7150, 0xfc77, 0x7151, 0x7152, - 0x7154, 0xfc78, 0x7153, 0xfc79, 0x3d59, - /* 0x9A00 */ - 0x7155, 0x7e2c, 0x7e2d, 0x7157, 0xfc7a, 0x3533, 0x7156, 0xfc7b, - 0x417b, 0x3833, 0xfc7c, 0x7159, 0xfc7d, 0xfc7e, 0x7e2e, 0x424d, - 0x715a, 0x7e2f, 0x7e30, 0x462d, 0xfd21, 0xfd22, 0x715b, 0x7e31, - 0x7160, - /* 0x9A40 */ - 0x715e, 0x715d, 0x715f, 0xfd23, 0x715c, 0x7e32, 0xfd24, 0x7162, - 0x7e33, 0x7e34, 0x7161, 0x7164, 0xfd25, 0x3643, 0x7163, 0x7165, - 0x7166, 0x7168, 0x7167, 0x7169, 0x716b, 0x716a, - /* 0x9A80 */ - 0x397c, 0x716c, 0xfd27, 0x716d, 0x7e35, 0xfd29, 0x333c, 0xfd2b, - 0x716e, - /* 0x9AC0 */ - 0x716f, 0x7e36, 0x7e37, 0x3f71, 0xfd2d, 0x7e38, 0x7170, 0xfd2e, - 0x7171, 0xfd2f, 0x7172, 0x7173, 0xfd30, 0x7e39, 0x3962, 0xfd32, - 0x7174, 0x7175, 0xfd33, 0x7176, 0x7177, 0xfd34, 0x7178, 0xfd35, - 0x4831, 0x717a, 0x4926, 0x717b, 0x7179, 0x717d, 0x717c, 0x717e, - 0x7e3a, 0x7221, - /* 0x9B00 */ - 0x7e3b, 0xfd36, 0x7222, 0x7e3c, 0xfd37, 0xfd38, 0xfd39, 0xfd3a, - 0x7223, 0x7224, 0xfd3b, 0x7225, 0x7e3d, 0x7226, 0x7227, 0x7228, - 0x7229, 0x722a, 0x722b, 0x722c, 0xfd3c, 0x7e3f, 0x722d, 0x722e, - 0x5d35, 0x722f, 0xfd3d, 0x6478, 0x3534, 0xfd3e, - /* 0x9B40 */ - 0x3321, 0x3a32, 0x7231, 0x7230, 0x4c25, 0xfd40, 0x7233, 0x7234, - 0x7232, 0x7235, 0x4b62, 0x7236, 0x357b, 0x7e40, 0xfd41, 0xfd42, - 0x7e42, 0xfd43, 0xfd44, 0x4f25, 0x7e43, 0xfd45, 0x7237, 0x7e44, - 0xfd46, 0xfd47, 0x7e41, - /* 0x9B80 */ - 0x7239, 0x7e45, 0x7e46, 0x303e, 0x7e47, 0x723a, 0x4a2b, 0x7238, - 0x723b, 0x723c, 0x7e48, 0x723d, 0x723e, 0xfd48, 0x7e49, 0x723f, - 0x4b6e, 0x3b2d, 0xfd49, 0x3a7a, 0x412f, 0xfd4a, 0xfd4d, 0x7240, - 0xfd4e, 0x7243, 0xfd4f, - /* 0x9BC0 */ - 0x7241, 0x7e4a, 0x7244, 0xfd50, 0x3871, 0x7242, 0x7e4b, 0x7245, - 0x7246, 0x7247, 0x724b, 0x3b2a, 0xfd52, 0x4264, 0xfd53, 0x724c, - 0x7249, 0x7248, 0x724a, 0x7e4c, 0xfd54, 0x375f, 0xfd55, 0xfd56, - 0xfd58, 0xfd57, 0x7250, 0x724f, 0x724e, 0xfd51, 0x3033, 0xfd5c, - 0x7e4d, 0xfd5a, 0x7e4e, - /* 0x9C00 */ - 0x7e4f, 0x725a, 0x7256, 0x7257, 0x7253, 0x7259, 0x7255, 0x3362, - 0x4f4c, 0x7258, 0x7254, 0x7252, 0x7251, 0xfd5e, 0xfd5f, 0xfd60, - 0xfd61, 0x725c, 0xfd62, 0x725f, 0xfd63, 0x7e50, 0x725e, 0x725d, - 0xfd64, 0xfd65, 0xfd66, 0x4949, 0x725b, 0x3073, 0x7260, 0xfd68, - 0x7262, 0xfd69, 0xfd6a, 0x336f, 0x724d, 0x3137, 0x7264, - /* 0x9C40 */ - 0x7e51, 0xfd6b, 0x7263, 0x7261, 0x432d, 0xfd6e, 0xfd6f, 0x7e52, - 0x7e53, 0x4b70, 0x7e54, 0xfd71, 0x4e5a, 0xfd72, 0x7265, 0xfd73, - 0xfd6c, 0xfd74, 0xfd75, 0x7266, 0x7e55, 0x7e56, 0x7267, 0xfd76, - 0xfd77, 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0x7268, - 0x7e57, 0x7269, 0xfd7e, - /* 0x9CC0 */ - 0x443b, 0xfe21, 0x726a, 0x4837, 0x726f, 0x726b, 0x726c, 0xfe22, - 0x4b31, 0x4c44, 0x4650, - /* 0x9D00 */ - 0xfe24, 0x7270, 0x7271, 0x463e, 0x726e, 0x726d, 0xfe23, 0x322a, - 0xfe26, 0x7279, 0x7278, 0xfe27, 0xfe28, 0x3175, 0x7e58, 0x7e59, - 0x7276, 0x7275, 0x7273, 0x337b, 0x7272, 0x3c32, 0x3229, 0xfe2c, - 0x3963, 0x727c, 0x727b, - /* 0x9D40 */ - 0x727a, 0xfe2e, 0x7e5a, 0x7277, 0x727d, 0x7e5b, 0x727e, 0xfe2f, - 0x7325, 0x7324, 0x7e5c, 0x7326, 0x312d, 0x7321, 0x7322, 0xfe30, - 0x3974, 0x4c39, 0xfe31, 0x7e5d, 0x7323, 0xfe33, 0xfe34, 0x4b32, - 0x732b, 0x7e5e, 0x7327, 0xfe36, 0xfe37, 0xfe38, 0x732c, 0x7e5f, - 0xfe39, - /* 0x9D80 */ - 0xfe3a, 0x7329, 0x7328, 0x7e60, 0xfe3b, 0x375c, 0x7e61, 0xfe3c, - 0x732d, 0xfe3d, 0x732e, 0x732f, 0x732a, 0x7e63, 0x7274, 0x7330, - 0x4461, 0xfe3f, 0x7334, 0xfe40, 0x7335, 0x7333, 0x7e64, 0xfe41, - 0xfe3e, - /* 0x9DC0 */ - 0x7e62, 0x7332, 0x7338, 0xfe42, 0x7331, 0x7336, 0xfe43, 0xfe44, - 0x7337, 0x733a, 0xfe45, 0x7e65, 0x7339, 0xfe46, 0xfe47, 0xfe48, - 0xfe49, 0x733c, 0x7e67, 0x733d, 0x733e, 0x4f49, 0xfe4a, 0x733b, - 0x426b, 0x3a6d, 0x733f, - /* 0x9E00 */ - 0xfe4d, 0x7e68, 0xfe4c, 0xfe4e, 0x7e69, 0xfe4f, 0x7340, 0x7341, - 0xfe50, 0xfe51, 0x7342, - /* 0x9E40 */ - 0x7343, 0x3834, 0x7344, 0xfe52, 0x7e6a, 0x7345, 0x3c2f, - /* 0x9E80 */ - 0xfe54, 0x7346, 0xfe55, 0x7347, 0x7348, 0x7349, 0x734c, 0x734a, - 0x4f3c, 0x734b, 0x4e6f, 0xfe56, 0x734d, 0x7e6b, 0x4e5b, 0x7e6c, - 0x734e, 0x477e, 0xfe57, 0x734f, 0x7351, 0x7e6d, 0x7352, 0x7e6e, - 0x7e6f, 0x7e70, 0x7350, 0x396d, 0x4c4d, 0x4b63, 0x5677, 0xfe59, - 0x5d60, 0x4b7b, - /* 0x9EC0 */ - 0x7e71, 0x322b, 0x7354, 0x3550, 0x7355, 0x7356, 0x7357, 0x7e72, - 0x3975, 0x7358, 0x6054, 0x4c5b, 0x4263, 0x7359, 0x735b, 0x735a, - 0xfe5b, 0x735c, 0x735d, 0xfe5c, 0x735e, 0xfe5d, 0x735f, 0x7360, - 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366, 0xfe5e, - /* 0x9F00 */ - 0xfe5f, 0xfe61, 0x7367, 0x7368, 0x4524, 0x7e73, 0x385d, 0x736a, - 0xfe62, 0xfe63, 0x414d, 0x736b, 0x736c, 0xfe64, 0xfe65, 0x7e74, - 0xfe66, 0x4921, 0xfe67, 0x736d, - /* 0x9F40 */ - 0xfe68, 0xfe69, 0xfe6a, 0x736e, 0x6337, 0x6c5a, 0x706d, 0x736f, - 0xfe6b, 0x7370, 0xfe6c, 0x7e75, 0xfe6d, 0xfe6f, 0x7372, 0x7373, - 0x7374, 0x4e70, 0x7371, 0x7375, 0x7376, 0xfe71, 0x7378, 0x7377, - 0xfe73, 0xfe74, 0x737a, 0xfe75, 0x737b, 0x7379, - /* 0x9F80 */ - 0x4e36, 0x7e76, 0x7e77, 0x737c, 0x7e78, 0x737d, 0x6354, 0x737e, - 0x7e79, - /* 0xF900 */ - 0x763b, 0x742e, 0x754e, 0x7b4f, - /* 0xF940 */ - 0x7649, - /* 0xF9C0 */ - 0x7e24, 0x7d5d, - /* 0xFA00 */ - 0x2f4b, 0x2f57, 0x4f72, 0xae79, 0x757a, 0x775a, 0x776f, 0x793c, - 0x793d, 0x7941, 0x7b3a, 0xf738, 0xf745, 0x7c2e, 0xf96e, 0x7c6a, - 0x2e38, 0x2e49, 0x2e50, 0x2e63, 0x2e68, 0x2e6e, 0x2f2c, 0x2f2f, - 0x2f36, 0x2f5a, 0x2f5e, 0x4f61, 0x4f62, 0x7450, 0x745c, 0x745e, - /* 0xFA40 */ - 0x7461, 0x7528, 0x752b, 0x7543, 0x7565, 0x7669, 0x7677, 0x7725, - 0x7755, 0xf029, 0x7825, 0x7927, 0x7933, 0x7934, 0x7937, 0x7938, - 0x7939, 0x793b, 0x793f, 0x7940, 0x794d, 0x7951, 0x7964, 0x7a2e, - 0xf450, 0x7a33, 0x7a3a, 0x7a44, 0x7a58, 0xf574, 0xf575, 0x7b27, - 0x7b6f, 0x7b79, 0x7c2f, 0x7c30, 0x7c38, 0x7c3d, 0xf969, 0x7c59, - 0x7d63, 0x7d76, 0x7d7b, - /* 0xFE40 */ - 0x233e, 0x233d, - /* 0xFF00 */ - 0x212a, 0x2230, 0x2174, 0x2170, 0x2173, 0x2175, 0x222f, 0x214a, - 0x214b, 0x2176, 0x215c, 0x2124, 0x2231, 0x2125, 0x213f, 0x2330, - 0x2331, 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, - 0x2339, 0x2127, 0x2128, 0x2163, 0x2161, 0x2164, 0x2129, 0x2177, - 0x2341, 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, - 0x2349, 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, - 0x2351, 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, - 0x2359, 0x235a, 0x214e, 0x2140, 0x214f, 0x2130, 0x2132, - /* 0xFF40 */ - 0x212e, 0x2361, 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, - 0x2368, 0x2369, 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, - 0x2370, 0x2371, 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, - 0x2378, 0x2379, 0x237a, 0x2150, 0x2143, 0x2151, 0x2232, 0x2256, - 0x2257, - /* 0xFFC0 */ - 0x2131, 0x216f, - /* 0x20000 */ - 0x2e22, - /* 0x20080 */ - 0xa121, 0xa12b, 0xa12e, - /* 0x20180 */ - 0xa136, - /* 0x20200 */ - 0xa146, - /* 0x20300 */ - 0xa170, - /* 0x20340 */ - 0xa179, - /* 0x20380 */ - 0xa177, - /* 0x203C0 */ - 0xa322, - /* 0x20440 */ - 0xa325, - /* 0x20500 */ - 0xa327, - /* 0x205C0 */ - 0xa331, - /* 0x20600 */ - 0xa332, - /* 0x20740 */ - 0xa338, - /* 0x20800 */ - 0xa33f, 0xa341, - /* 0x20880 */ - 0xa34a, - /* 0x20940 */ - 0xa352, - /* 0x20980 */ - 0xa353, - /* 0x20AC0 */ - 0xa359, - /* 0x20B00 */ - 0xa35c, - /* 0x20B80 */ - 0x4f54, - /* 0x20D40 */ - 0xa377, - /* 0x20DC0 */ - 0xa42a, - /* 0x20E40 */ - 0xa43a, 0xa432, - /* 0x20E80 */ - 0xa431, - /* 0x20F40 */ - 0xa43d, - /* 0x21200 */ - 0xa459, 0x2f42, - /* 0x21240 */ - 0xa45c, 0xa463, 0xa45e, - /* 0x212C0 */ - 0xa46b, 0xa46a, 0xa472, - /* 0x21300 */ - 0x2f4c, 0xa474, - /* 0x21340 */ - 0xa475, - /* 0x213C0 */ - 0xa525, - /* 0x21440 */ - 0xa532, 0x2f60, - /* 0x215C0 */ - 0xa53e, - /* 0x21640 */ - 0xa547, - /* 0x21680 */ - 0x4f63, - /* 0x21700 */ - 0xa555, - /* 0x21740 */ - 0xa556, - /* 0x21880 */ - 0x2f7b, - /* 0x219C0 */ - 0xa57e, - /* 0x21C40 */ - 0xa830, - /* 0x21D00 */ - 0xa837, - /* 0x21D40 */ - 0xa838, 0xa83b, 0xa83a, - /* 0x21D80 */ - 0xa845, 0xa840, 0xa83f, 0xa848, - /* 0x21DC0 */ - 0xa84a, - /* 0x21E00 */ - 0xa84b, 0x4f6e, - /* 0x21F00 */ - 0xa85b, - /* 0x21F40 */ - 0xa866, - /* 0x21FC0 */ - 0xa86c, - /* 0x22140 */ - 0xac22, - /* 0x22200 */ - 0xfe53, - /* 0x22300 */ - 0xac2b, - /* 0x22380 */ - 0xac30, - /* 0x226C0 */ - 0xac50, - /* 0x22840 */ - 0xac65, - /* 0x22880 */ - 0xac6d, - /* 0x22980 */ - 0xac72, - /* 0x22A80 */ - 0xad24, - /* 0x22B40 */ - 0xad32, 0xad29, 0xad2a, - /* 0x22B80 */ - 0xad35, - /* 0x22C00 */ - 0xad34, 0xad39, - /* 0x22DC0 */ - 0xad56, - /* 0x23180 */ - 0xae24, - /* 0x231C0 */ - 0xad7d, 0x753a, 0xae23, - /* 0x23340 */ - 0xae3a, - /* 0x233C0 */ - 0xae42, 0xae3d, 0xae3c, 0xae44, 0xae47, 0xae49, 0xae43, - /* 0x23440 */ - 0xae55, 0xae57, 0xae56, 0xae5b, - /* 0x234C0 */ - 0xae77, - /* 0x23540 */ - 0xae78, - /* 0x23580 */ - 0xaf2a, - /* 0x235C0 */ - 0x7572, - /* 0x23600 */ - 0xaf42, 0xaf3f, 0xaf43, - /* 0x23640 */ - 0xaf40, - /* 0x23700 */ - 0xaf59, 0xaf4e, 0x7629, - /* 0x23740 */ - 0x7632, 0xaf61, - /* 0x237C0 */ - 0xaf6a, 0xaf69, - /* 0x23800 */ - 0xaf70, 0xaf75, - /* 0x23A80 */ - 0xee23, - /* 0x23C40 */ - 0xee34, - /* 0x23CC0 */ - 0x7660, - /* 0x23D00 */ - 0xee49, 0xf475, - /* 0x23D40 */ - 0xee5c, - /* 0x23DC0 */ - 0xee60, 0xee5f, 0xee5e, - /* 0x23F40 */ - 0xef32, - /* 0x24080 */ - 0xef47, - /* 0x24100 */ - 0xef4d, - /* 0x241C0 */ - 0xef61, 0xef64, - /* 0x24380 */ - 0xf022, - /* 0x24600 */ - 0xf033, - /* 0x24680 */ - 0xf039, - /* 0x247C0 */ - 0x776c, - /* 0x24880 */ - 0xf053, - /* 0x24A40 */ - 0xf07b, - /* 0x24B40 */ - 0xf12e, 0xf130, - /* 0x24C00 */ - 0xf135, - /* 0x24D00 */ - 0xf144, - /* 0x24E00 */ - 0xf15d, 0xf161, - /* 0x24E40 */ - 0xf166, - /* 0x24E80 */ - 0xf169, - /* 0x25040 */ - 0xf175, 0xf177, - /* 0x25100 */ - 0xf17a, - /* 0x25180 */ - 0xf221, - /* 0x251C0 */ - 0xf224, 0xf223, - /* 0x25200 */ - 0xf228, - /* 0x25240 */ - 0xf22c, - /* 0x25400 */ - 0xf23d, - /* 0x25480 */ - 0x787e, - /* 0x254C0 */ - 0xf248, - /* 0x25500 */ - 0x7929, - /* 0x25580 */ - 0xf25b, - /* 0x25740 */ - 0x7947, - /* 0x25780 */ - 0xf275, 0xf276, - /* 0x259C0 */ - 0x7954, 0xf332, - /* 0x25AC0 */ - 0xf33e, 0xf33d, 0xf340, - /* 0x25B80 */ - 0xf352, - /* 0x25C40 */ - 0xf35d, 0xf35e, - /* 0x25D80 */ - 0x796e, - /* 0x25E00 */ - 0xf373, - /* 0x25E40 */ - 0xf374, 0xf377, 0xf375, - /* 0x25EC0 */ - 0xf37d, 0xf37b, 0xf422, - /* 0x25F00 */ - 0xf424, - /* 0x25F40 */ - 0xf427, - /* 0x25FC0 */ - 0xf42f, 0xf42e, 0xf435, - /* 0x26000 */ - 0xf434, 0xf43d, - /* 0x26040 */ - 0xf442, - /* 0x260C0 */ - 0xf44f, - /* 0x26240 */ - 0xf469, - /* 0x26280 */ - 0xf46b, - /* 0x26340 */ - 0xf472, - /* 0x26400 */ - 0xf479, - /* 0x26640 */ - 0xf535, - /* 0x26680 */ - 0xf53a, - /* 0x26700 */ - 0xf546, - /* 0x268C0 */ - 0xf556, 0xf558, - /* 0x26940 */ - 0xf55a, 0xf55d, - /* 0x269C0 */ - 0xf55f, - /* 0x26A00 */ - 0xf563, - /* 0x26A40 */ - 0xf56a, - /* 0x26A80 */ - 0xf570, 0xf573, - /* 0x26AC0 */ - 0x7a5d, - /* 0x26C00 */ - 0xa544, - /* 0x26C40 */ - 0xf644, - /* 0x26CC0 */ - 0xf64e, - /* 0x26E40 */ - 0x7b33, 0xf65d, - /* 0x26F80 */ - 0xf675, - /* 0x26FC0 */ - 0xf721, 0xf722, 0xf67e, - /* 0x270C0 */ - 0x7b49, - /* 0x27100 */ - 0xf733, 0xf736, - /* 0x273C0 */ - 0xf765, 0xf764, 0xf76b, - /* 0x27400 */ - 0xf76e, - /* 0x27440 */ - 0xf773, - /* 0x27600 */ - 0xf82a, 0xf829, 0xf82c, - /* 0x27680 */ - 0x7b6c, 0xf834, - /* 0x27700 */ - 0xf83c, 0xf83e, - /* 0x27740 */ - 0xf842, - /* 0x27980 */ - 0xf856, - /* 0x27A80 */ - 0xf863, - /* 0x27B80 */ - 0xf877, 0xf879, - /* 0x27BC0 */ - 0xf87a, - /* 0x27C80 */ - 0xf925, - /* 0x27D80 */ - 0xf92f, - /* 0x27E00 */ - 0xf932, - /* 0x27F80 */ - 0xf939, - /* 0x28080 */ - 0xf942, 0xf948, - /* 0x28240 */ - 0x7c49, - /* 0x28280 */ - 0xf959, - /* 0x282C0 */ - 0xf95e, - /* 0x283C0 */ - 0x7c51, - /* 0x28400 */ - 0xf966, - /* 0x28440 */ - 0xf96b, - /* 0x28540 */ - 0xf97a, - /* 0x285C0 */ - 0xf97e, 0xfa21, - /* 0x286C0 */ - 0xfa2c, 0xfa2f, - /* 0x28940 */ - 0xfa50, 0xfa4f, 0xfa57, - /* 0x28980 */ - 0xfa65, 0xfa66, 0xfa71, 0xfa72, - /* 0x28A00 */ - 0xfa7e, 0xfb21, - /* 0x28A40 */ - 0xfb2d, 0xfb2c, - /* 0x28A80 */ - 0xfb36, - /* 0x28AC0 */ - 0xfb37, 0xfb3e, 0xfb3d, - /* 0x28BC0 */ - 0xfb4e, 0xfb4f, - /* 0x28D00 */ - 0xfb57, - /* 0x28D40 */ - 0xfb5a, - /* 0x28DC0 */ - 0xfb5c, - /* 0x28E00 */ - 0xfb5d, 0xfb61, - /* 0x28E80 */ - 0xfb65, - /* 0x28EC0 */ - 0xfb67, - /* 0x28F00 */ - 0xfb69, - /* 0x28FC0 */ - 0xfb71, - /* 0x29280 */ - 0xfc22, 0xfc23, - /* 0x29480 */ - 0xfc38, - /* 0x295C0 */ - 0xfc42, - /* 0x29640 */ - 0xfc4c, - /* 0x296C0 */ - 0xfc56, - /* 0x29700 */ - 0xfc59, - /* 0x29740 */ - 0xfc5d, - /* 0x298C0 */ - 0xfc76, - /* 0x29A40 */ - 0xfd2c, - /* 0x29DC0 */ - 0xfd4b, - /* 0x29E00 */ - 0xfd59, 0xfd4c, - /* 0x29E40 */ - 0xfd5d, - /* 0x29E80 */ - 0xfd5b, - /* 0x29EC0 */ - 0xfd67, 0xfd70, 0xfd6d, - /* 0x29FC0 */ - 0xfe25, - /* 0x2A000 */ - 0xfe2b, 0xfe29, - /* 0x2A080 */ - 0xfe35, - /* 0x2A0C0 */ - 0xfe32, - /* 0x2A180 */ - 0x7e66, - /* 0x2A380 */ - 0xfe58, - /* 0x2A400 */ - 0xfe5a, - /* 0x2A5C0 */ - 0xfe6e, - /* 0x2A600 */ - 0xfe70, 0xfe72, - /* 0x2A680 */ - 0xfe76, -}; - -static const Summary16 jisx0213_from_ucs_level2_2indx[] = { - /* 0x0080 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0xffdf }, { 15, 0xffdf }, - /* 0x00C0 */ - { 30, 0xffff }, { 46, 0xffff }, { 62, 0xffff }, { 78, 0xffff }, - /* 0x0100 */ - { 94, 0xf3ff }, { 108, 0x3f0e }, { 117, 0x0cb0 }, { 122, 0x6630 }, - /* 0x0140 */ - { 128, 0x399e }, { 137, 0xff3f }, { 151, 0xfc3f }, { 163, 0x7e03 }, - /* 0x0180 */ - { 171, 0x0000 }, { 171, 0x0008 }, { 172, 0x0000 }, { 172, 0x0000 }, - /* 0x01C0 */ - { 172, 0x6004 }, { 175, 0x1557 }, { 183, 0x0000 }, { 183, 0x2300 }, - /* 0x0240 */ - { 186, 0x0000 }, { 186, 0xd7ff }, { 200, 0xf1f3 }, { 211, 0x6e2f }, - /* 0x0280 */ - { 221, 0x7f1e }, { 232, 0x2137 }, { 239, 0x0006 }, { 241, 0x0000 }, - /* 0x02C0 */ - { 241, 0x1180 }, { 244, 0x6b03 }, { 251, 0x03e0 }, { 256, 0x0000 }, - /* 0x0300 */ - { 256, 0x995f }, { 266, 0xf700 }, { 273, 0x9631 }, { 280, 0x3e11 }, - /* 0x0340 */ - { 287, 0x0000 }, { 287, 0x0000 }, { 287, 0x0002 }, { 288, 0x0000 }, - /* 0x0380 */ - { 288, 0x0000 }, { 288, 0xfffe }, { 303, 0x03fb }, { 312, 0xfffe }, - /* 0x03C0 */ - { 327, 0x03ff }, { 337, 0x0000 }, { 337, 0x0000 }, { 337, 0x0000 }, - /* 0x0400 */ - { 337, 0x0002 }, { 338, 0xffff }, { 354, 0xffff }, { 370, 0xffff }, - /* 0x0440 */ - { 386, 0xffff }, { 402, 0x0002 }, { 403, 0x0000 }, { 403, 0x0000 }, - /* 0x1E00 */ - { 403, 0x0000 }, { 403, 0x0000 }, { 403, 0x0000 }, { 403, 0xc000 }, - /* 0x1F40 */ - { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x0000 }, { 405, 0x000f }, - /* 0x2000 */ - { 409, 0x0000 }, { 409, 0x3359 }, { 417, 0x0067 }, { 422, 0x980d }, - /* 0x2040 */ - { 428, 0x0384 }, { 432, 0x0002 }, { 433, 0x0000 }, { 433, 0x0000 }, - /* 0x2080 */ - { 433, 0x0000 }, { 433, 0x0000 }, { 433, 0x1000 }, { 434, 0x0000 }, - /* 0x2100 */ - { 434, 0x8008 }, { 436, 0x0048 }, { 438, 0x0882 }, { 441, 0x0020 }, - /* 0x2140 */ - { 442, 0x0000 }, { 442, 0x0038 }, { 445, 0x0fff }, { 457, 0x0fff }, - /* 0x2180 */ - { 469, 0x0000 }, { 469, 0x03df }, { 478, 0x0000 }, { 478, 0x0000 }, - /* 0x21C0 */ - { 478, 0x0010 }, { 479, 0x0014 }, { 481, 0x03c0 }, { 485, 0x0000 }, - /* 0x2200 */ - { 485, 0x0bad }, { 493, 0xe40c }, { 499, 0x5fe1 }, { 509, 0x2030 }, - /* 0x2240 */ - { 512, 0x0128 }, { 515, 0x0004 }, { 516, 0x0cc7 }, { 523, 0x00c0 }, - /* 0x2280 */ - { 525, 0x0cfc }, { 533, 0x00e0 }, { 536, 0x0020 }, { 537, 0x8000 }, - /* 0x22C0 */ - { 538, 0x0000 }, { 538, 0x0c00 }, { 540, 0x0000 }, { 540, 0x0000 }, - /* 0x2300 */ - { 540, 0x0060 }, { 542, 0x0104 }, { 544, 0x0000 }, { 544, 0x0000 }, - /* 0x2380 */ - { 544, 0x0000 }, { 544, 0x0000 }, { 544, 0x0000 }, { 544, 0xc000 }, - /* 0x23C0 */ - { 546, 0x5fff }, { 560, 0x0000 }, { 560, 0x0000 }, { 560, 0x0000 }, - /* 0x2400 */ - { 560, 0x0000 }, { 560, 0x0000 }, { 560, 0x0008 }, { 561, 0x0000 }, - /* 0x2440 */ - { 561, 0x0000 }, { 561, 0x0000 }, { 561, 0xffff }, { 577, 0x000f }, - /* 0x24C0 */ - { 581, 0x0000 }, { 581, 0xffff }, { 597, 0xfbff }, { 612, 0x7fff }, - /* 0x2500 */ - { 627, 0x900f }, { 633, 0x3999 }, { 641, 0x9939 }, { 649, 0x9999 }, - /* 0x2540 */ - { 657, 0x0804 }, { 659, 0x0000 }, { 659, 0x0000 }, { 659, 0x0000 }, - /* 0x2580 */ - { 659, 0x0000 }, { 659, 0x0000 }, { 659, 0x0003 }, { 661, 0x30ce }, - /* 0x25C0 */ - { 668, 0xcac3 }, { 676, 0x000f }, { 680, 0x8040 }, { 682, 0x0000 }, - /* 0x2600 */ - { 682, 0x406f }, { 689, 0x40c0 }, { 692, 0x0000 }, { 692, 0x0000 }, - /* 0x2640 */ - { 692, 0x0005 }, { 694, 0x0000 }, { 694, 0xffff }, { 710, 0x0000 }, - /* 0x2700 */ - { 710, 0x0000 }, { 710, 0x0008 }, { 711, 0x0000 }, { 711, 0x0000 }, - /* 0x2740 */ - { 711, 0x0000 }, { 711, 0x0040 }, { 712, 0x0000 }, { 712, 0xffc0 }, - /* 0x2900 */ - { 722, 0x0000 }, { 722, 0x0000 }, { 722, 0x0000 }, { 722, 0x0030 }, - /* 0x2980 */ - { 724, 0x0000 }, { 724, 0x0000 }, { 724, 0x0000 }, { 724, 0x8000 }, - /* 0x29C0 */ - { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0000 }, { 725, 0x0c00 }, - /* 0x3000 */ - { 727, 0xffef }, { 742, 0xb3ff }, { 755, 0x0001 }, { 756, 0x3838 }, - /* 0x3040 */ - { 762, 0xfffe }, { 777, 0xffff }, { 793, 0xffff }, { 809, 0xffff }, - /* 0x3080 */ - { 825, 0xffff }, { 841, 0xf87f }, { 853, 0xffff }, { 869, 0xffff }, - /* 0x30C0 */ - { 885, 0xffff }, { 901, 0xffff }, { 917, 0xffff }, { 933, 0xffff }, - /* 0x31C0 */ - { 949, 0x0000 }, { 949, 0x0000 }, { 949, 0x0000 }, { 949, 0xffff }, - /* 0x3200 */ - { 965, 0x0000 }, { 965, 0x0000 }, { 965, 0x0000 }, { 965, 0x0206 }, - /* 0x3240 */ - { 968, 0x0000 }, { 968, 0xfffe }, { 983, 0x0000 }, { 983, 0x0000 }, - /* 0x3280 */ - { 983, 0x0000 }, { 983, 0x0000 }, { 983, 0x01f0 }, { 988, 0xfffe }, - /* 0x32C0 */ - { 1003, 0x0000 }, { 1003, 0xffff }, { 1019, 0x322f }, { 1027, 0x0400 }, - /* 0x3300 */ - { 1028, 0x2008 }, { 1030, 0x0110 }, { 1032, 0x08cc }, { 1037, 0x0840 }, - /* 0x3340 */ - { 1039, 0x2600 }, { 1042, 0x0082 }, { 1044, 0x0000 }, { 1044, 0x7800 }, - /* 0x3380 */ - { 1048, 0xc000 }, { 1050, 0x7000 }, { 1053, 0x0002 }, { 1054, 0x0000 }, - /* 0x33C0 */ - { 1054, 0x2810 }, { 1057, 0x0000 }, { 1057, 0x0000 }, { 1057, 0x0000 }, - /* 0x3400 */ - { 1057, 0x0044 }, { 1059, 0x0000 }, { 1059, 0x5000 }, { 1061, 0x0000 }, - /* 0x3440 */ - { 1061, 0x0000 }, { 1061, 0x0000 }, { 1061, 0x0500 }, { 1063, 0x0000 }, - /* 0x3480 */ - { 1063, 0x0000 }, { 1063, 0x0004 }, { 1064, 0x0000 }, { 1064, 0x1020 }, - /* 0x34C0 */ - { 1066, 0x0082 }, { 1068, 0x0800 }, { 1069, 0x0000 }, { 1069, 0x0000 }, - /* 0x3500 */ - { 1069, 0x0000 }, { 1069, 0x8000 }, { 1070, 0x0000 }, { 1070, 0x0000 }, - /* 0x3540 */ - { 1070, 0x0000 }, { 1070, 0x6000 }, { 1072, 0x4008 }, { 1074, 0x0000 }, - /* 0x3580 */ - { 1074, 0x0000 }, { 1074, 0x0000 }, { 1074, 0x0140 }, { 1076, 0x0000 }, - /* 0x35C0 */ - { 1076, 0x0020 }, { 1077, 0x0400 }, { 1078, 0x0000 }, { 1078, 0x0010 }, - /* 0x3600 */ - { 1079, 0x0020 }, { 1080, 0x0000 }, { 1080, 0x0000 }, { 1080, 0x0000 }, - /* 0x3640 */ - { 1080, 0x0400 }, { 1081, 0x0000 }, { 1081, 0x0000 }, { 1081, 0x0000 }, - /* 0x3680 */ - { 1081, 0x0000 }, { 1081, 0x0242 }, { 1084, 0x0000 }, { 1084, 0x0000 }, - /* 0x36C0 */ - { 1084, 0x8000 }, { 1085, 0x0000 }, { 1085, 0x0000 }, { 1085, 0x0000 }, - /* 0x3740 */ - { 1085, 0x0000 }, { 1085, 0x0000 }, { 1085, 0x1806 }, { 1089, 0x0020 }, - /* 0x3780 */ - { 1090, 0x2000 }, { 1091, 0x0000 }, { 1091, 0x0000 }, { 1091, 0x0000 }, - /* 0x37C0 */ - { 1091, 0x0002 }, { 1092, 0x0000 }, { 1092, 0x0104 }, { 1094, 0x2010 }, - /* 0x3800 */ - { 1096, 0x0001 }, { 1097, 0x0000 }, { 1097, 0x8000 }, { 1098, 0x0040 }, - /* 0x3840 */ - { 1099, 0x0001 }, { 1100, 0x1000 }, { 1101, 0x0002 }, { 1102, 0x0000 }, - /* 0x38C0 */ - { 1102, 0x0000 }, { 1102, 0x0000 }, { 1102, 0x0000 }, { 1102, 0x0400 }, - /* 0x3900 */ - { 1103, 0x0000 }, { 1103, 0x0480 }, { 1105, 0x0000 }, { 1105, 0x0000 }, - /* 0x3940 */ - { 1105, 0x0000 }, { 1105, 0x0000 }, { 1105, 0x8000 }, { 1106, 0x0000 }, - /* 0x3A40 */ - { 1106, 0x0000 }, { 1106, 0x0000 }, { 1106, 0x4000 }, { 1107, 0x0008 }, - /* 0x3AC0 */ - { 1108, 0x0000 }, { 1108, 0x00c0 }, { 1110, 0x0400 }, { 1111, 0x0000 }, - /* 0x3B00 */ - { 1111, 0x4000 }, { 1112, 0x1400 }, { 1114, 0x0004 }, { 1115, 0x0000 }, - /* 0x3B40 */ - { 1115, 0x0000 }, { 1115, 0x0000 }, { 1115, 0x2000 }, { 1116, 0x0080 }, - /* 0x3B80 */ - { 1117, 0x2180 }, { 1120, 0x0000 }, { 1120, 0x0010 }, { 1121, 0x0040 }, - /* 0x3BC0 */ - { 1122, 0x2008 }, { 1124, 0x0000 }, { 1124, 0x0000 }, { 1124, 0x0001 }, - /* 0x3C00 */ - { 1125, 0x8000 }, { 1126, 0x0000 }, { 1126, 0x0040 }, { 1127, 0x0000 }, - /* 0x3CC0 */ - { 1127, 0x0008 }, { 1128, 0x0004 }, { 1129, 0x0000 }, { 1129, 0x0000 }, - /* 0x3D00 */ - { 1129, 0x0000 }, { 1129, 0x4002 }, { 1131, 0x0000 }, { 1131, 0x0000 }, - /* 0x3D40 */ - { 1131, 0x0000 }, { 1131, 0x0000 }, { 1131, 0x0010 }, { 1132, 0x0000 }, - /* 0x3D80 */ - { 1132, 0x0000 }, { 1132, 0x0400 }, { 1133, 0x0000 }, { 1133, 0x0000 }, - /* 0x3DC0 */ - { 1133, 0x0001 }, { 1134, 0x0010 }, { 1135, 0x0000 }, { 1135, 0x0000 }, - /* 0x3E00 */ - { 1135, 0x0020 }, { 1136, 0x0000 }, { 1136, 0x0000 }, { 1136, 0x8000 }, - /* 0x3E40 */ - { 1137, 0x0000 }, { 1137, 0x0000 }, { 1137, 0x0141 }, { 1140, 0x0000 }, - /* 0x3E80 */ - { 1140, 0x0008 }, { 1141, 0x0010 }, { 1142, 0x0000 }, { 1142, 0x0000 }, - /* 0x3F40 */ - { 1142, 0x0000 }, { 1142, 0x0080 }, { 1143, 0x0000 }, { 1143, 0x00a4 }, - /* 0x3F80 */ - { 1146, 0x0000 }, { 1146, 0x0000 }, { 1146, 0x4000 }, { 1147, 0x0000 }, - /* 0x3FC0 */ - { 1147, 0x0200 }, { 1148, 0x0080 }, { 1149, 0x0000 }, { 1149, 0x0000 }, - /* 0x4000 */ - { 1149, 0x0000 }, { 1149, 0x0000 }, { 1149, 0x0000 }, { 1149, 0x0200 }, - /* 0x4040 */ - { 1150, 0x0000 }, { 1150, 0x0100 }, { 1151, 0x0000 }, { 1151, 0x0000 }, - /* 0x4080 */ - { 1151, 0x0000 }, { 1151, 0x0008 }, { 1152, 0x0000 }, { 1152, 0x0000 }, - /* 0x4100 */ - { 1152, 0x0020 }, { 1153, 0x0000 }, { 1153, 0x0000 }, { 1153, 0x0000 }, - /* 0x4140 */ - { 1153, 0x8100 }, { 1155, 0x0000 }, { 1155, 0x0008 }, { 1156, 0x0000 }, - /* 0x4180 */ - { 1156, 0x0000 }, { 1156, 0x0000 }, { 1156, 0x0000 }, { 1156, 0x8010 }, - /* 0x41C0 */ - { 1158, 0x0000 }, { 1158, 0x0000 }, { 1158, 0x4040 }, { 1160, 0x0008 }, - /* 0x4200 */ - { 1161, 0x4080 }, { 1163, 0x0000 }, { 1163, 0x0000 }, { 1163, 0x0000 }, - /* 0x4240 */ - { 1163, 0x0000 }, { 1163, 0x0000 }, { 1163, 0x0010 }, { 1164, 0x0000 }, - /* 0x42C0 */ - { 1164, 0x0040 }, { 1165, 0x2040 }, { 1167, 0x0000 }, { 1167, 0x0000 }, - /* 0x4300 */ - { 1167, 0x0004 }, { 1168, 0x0000 }, { 1168, 0x0800 }, { 1169, 0x0000 }, - /* 0x4340 */ - { 1169, 0x0008 }, { 1170, 0x0000 }, { 1170, 0x0000 }, { 1170, 0x0000 }, - /* 0x43C0 */ - { 1170, 0x0000 }, { 1170, 0x0000 }, { 1170, 0x4000 }, { 1171, 0x0001 }, - /* 0x4400 */ - { 1172, 0x0100 }, { 1173, 0x1080 }, { 1175, 0x0004 }, { 1176, 0x0000 }, - /* 0x4440 */ - { 1176, 0x0000 }, { 1176, 0x0808 }, { 1178, 0x0000 }, { 1178, 0x0440 }, - /* 0x4480 */ - { 1180, 0x0000 }, { 1180, 0x0002 }, { 1181, 0x0000 }, { 1181, 0x4008 }, - /* 0x44C0 */ - { 1183, 0x0000 }, { 1183, 0x0010 }, { 1184, 0x0000 }, { 1184, 0x0000 }, - /* 0x4500 */ - { 1184, 0x2100 }, { 1186, 0x0000 }, { 1186, 0x0020 }, { 1187, 0x0000 }, - /* 0x4540 */ - { 1187, 0x0008 }, { 1188, 0x0000 }, { 1188, 0x0000 }, { 1188, 0x0000 }, - /* 0x4580 */ - { 1188, 0x0000 }, { 1188, 0x2000 }, { 1189, 0x0000 }, { 1189, 0x0100 }, - /* 0x45C0 */ - { 1190, 0x0000 }, { 1190, 0x0000 }, { 1190, 0x0420 }, { 1192, 0x0000 }, - /* 0x4600 */ - { 1192, 0x8000 }, { 1193, 0x0000 }, { 1193, 0x0000 }, { 1193, 0x0000 }, - /* 0x4640 */ - { 1193, 0x0002 }, { 1194, 0x0000 }, { 1194, 0x0020 }, { 1195, 0x0000 }, - /* 0x4680 */ - { 1195, 0x0000 }, { 1195, 0x0000 }, { 1195, 0x8002 }, { 1197, 0x0000 }, - /* 0x4700 */ - { 1197, 0x1000 }, { 1198, 0x0000 }, { 1198, 0x0000 }, { 1198, 0x0000 }, - /* 0x4740 */ - { 1198, 0x0000 }, { 1198, 0x0000 }, { 1198, 0x0010 }, { 1199, 0x0000 }, - /* 0x47C0 */ - { 1199, 0x0000 }, { 1199, 0x0000 }, { 1199, 0x0000 }, { 1199, 0x2000 }, - /* 0x4800 */ - { 1200, 0x0000 }, { 1200, 0x0040 }, { 1201, 0x0000 }, { 1201, 0x0000 }, - /* 0x4840 */ - { 1201, 0x4010 }, { 1203, 0x0000 }, { 1203, 0x0000 }, { 1203, 0x0000 }, - /* 0x4880 */ - { 1203, 0x0000 }, { 1203, 0x0000 }, { 1203, 0x0000 }, { 1203, 0x0020 }, - /* 0x4980 */ - { 1204, 0x0000 }, { 1204, 0x0000 }, { 1204, 0x0000 }, { 1204, 0x0001 }, - /* 0x49C0 */ - { 1205, 0x0000 }, { 1205, 0x0000 }, { 1205, 0x0080 }, { 1206, 0x0400 }, - /* 0x4A00 */ - { 1207, 0x0010 }, { 1208, 0x0000 }, { 1208, 0x0200 }, { 1209, 0x0000 }, - /* 0x4A80 */ - { 1209, 0x0000 }, { 1209, 0x0000 }, { 1209, 0x0000 }, { 1209, 0x1000 }, - /* 0x4B00 */ - { 1210, 0x0000 }, { 1210, 0x0000 }, { 1210, 0x0000 }, { 1210, 0x0800 }, - /* 0x4BC0 */ - { 1211, 0x0404 }, { 1213, 0x0004 }, { 1214, 0x0100 }, { 1215, 0x0000 }, - /* 0x4C00 */ - { 1215, 0x0000 }, { 1215, 0x0080 }, { 1216, 0x0001 }, { 1217, 0x0000 }, - /* 0x4CC0 */ - { 1217, 0x0010 }, { 1218, 0x0002 }, { 1219, 0x0000 }, { 1219, 0x0000 }, - /* 0x4D00 */ - { 1219, 0x0080 }, { 1220, 0x0000 }, { 1220, 0x0000 }, { 1220, 0x0000 }, - /* 0x4D40 */ - { 1220, 0x0000 }, { 1220, 0x0000 }, { 1220, 0x0000 }, { 1220, 0x0080 }, - /* 0x4E00 */ - { 1221, 0xef8f }, { 1233, 0x43f7 }, { 1243, 0xff42 }, { 1253, 0x9b47 }, - /* 0x4E40 */ - { 1262, 0xe9ad }, { 1272, 0xe7e2 }, { 1282, 0x0204 }, { 1284, 0x400a }, - /* 0x4E80 */ - { 1287, 0x7f65 }, { 1298, 0xfb36 }, { 1309, 0x7977 }, { 1320, 0x1e49 }, - /* 0x4EC0 */ - { 1327, 0xeddf }, { 1340, 0xe7f1 }, { 1351, 0x683a }, { 1358, 0xa8e7 }, - /* 0x4F00 */ - { 1367, 0xee0b }, { 1376, 0x3443 }, { 1382, 0x8000 }, { 1383, 0x75d1 }, - /* 0x4F40 */ - { 1392, 0xe3c8 }, { 1400, 0xfffb }, { 1415, 0x9611 }, { 1421, 0xfde9 }, - /* 0x4F80 */ - { 1433, 0xad6c }, { 1442, 0x2dd6 }, { 1451, 0xe803 }, { 1457, 0xc064 }, - /* 0x4FC0 */ - { 1462, 0xce3c }, { 1471, 0xad97 }, { 1481, 0xc07b }, { 1489, 0x456e }, - /* 0x5000 */ - { 1497, 0xea67 }, { 1507, 0xd75f }, { 1519, 0x7ffe }, { 1533, 0x0a40 }, - /* 0x5040 */ - { 1536, 0xc3cf }, { 1546, 0x14e9 }, { 1553, 0x1468 }, { 1558, 0x2175 }, - /* 0x5080 */ - { 1565, 0x2121 }, { 1569, 0x177e }, { 1579, 0x3408 }, { 1583, 0x4cbe }, - /* 0x50C0 */ - { 1592, 0xf6b4 }, { 1602, 0x4673 }, { 1610, 0x62ea }, { 1618, 0x0a2c }, - /* 0x5100 */ - { 1623, 0x0b5f }, { 1632, 0xcdf4 }, { 1642, 0x0402 }, { 1644, 0x9ca4 }, - /* 0x5140 */ - { 1651, 0x7ffb }, { 1665, 0x14b5 }, { 1672, 0x7f25 }, { 1682, 0x19ea }, - /* 0x5180 */ - { 1690, 0xbe6d }, { 1701, 0x23ef }, { 1711, 0x3f7d }, { 1723, 0x30ff }, - /* 0x51C0 */ - { 1733, 0x3e78 }, { 1742, 0x7840 }, { 1747, 0x66c7 }, { 1756, 0x677b }, - /* 0x5200 */ - { 1767, 0x4ddf }, { 1778, 0x20fe }, { 1786, 0x46b0 }, { 1792, 0x0fc9 }, - /* 0x5240 */ - { 1800, 0xbe98 }, { 1809, 0x78f0 }, { 1817, 0x963a }, { 1825, 0xa0bf }, - /* 0x5280 */ - { 1834, 0x239c }, { 1841, 0x891e }, { 1848, 0xbe59 }, { 1858, 0x5e32 }, - /* 0x52C0 */ - { 1866, 0x37aa }, { 1875, 0xebe7 }, { 1887, 0x00dd }, { 1893, 0xcfad }, - /* 0x5300 */ - { 1904, 0xade7 }, { 1915, 0x36e1 }, { 1923, 0x841b }, { 1929, 0xcf2a }, - /* 0x5340 */ - { 1938, 0x27ef }, { 1949, 0x559e }, { 1958, 0xd2cb }, { 1967, 0xadbb }, - /* 0x5380 */ - { 1978, 0x0014 }, { 1980, 0xa548 }, { 1986, 0x6371 }, { 1994, 0x08dd }, - /* 0x53C0 */ - { 2001, 0x7f0d }, { 2011, 0x8ef0 }, { 2019, 0xff3e }, { 2032, 0x05ff }, - /* 0x5400 */ - { 2042, 0xff1a }, { 2053, 0xe807 }, { 2060, 0x7bd1 }, { 2070, 0x7b40 }, - /* 0x5440 */ - { 2077, 0x674d }, { 2086, 0x8022 }, { 2089, 0x1d44 }, { 2095, 0xb8fb }, - /* 0x5480 */ - { 2106, 0xfd51 }, { 2116, 0x1065 }, { 2121, 0xfb77 }, { 2134, 0xf58c }, - /* 0x54C0 */ - { 2143, 0x03df }, { 2152, 0x0100 }, { 2153, 0xf366 }, { 2163, 0xa40e }, - /* 0x5500 */ - { 2169, 0xc2d3 }, { 2177, 0x0051 }, { 2180, 0xc800 }, { 2183, 0x532a }, - /* 0x5540 */ - { 2190, 0x94f3 }, { 2199, 0x70c9 }, { 2206, 0x001b }, { 2210, 0x7800 }, - /* 0x5580 */ - { 2214, 0x4fdf }, { 2226, 0xf702 }, { 2234, 0x7f80 }, { 2242, 0x8041 }, - /* 0x55C0 */ - { 2245, 0x52b0 }, { 2251, 0xb416 }, { 2258, 0x021c }, { 2262, 0x6280 }, - /* 0x5600 */ - { 2266, 0x43c0 }, { 2271, 0x09d1 }, { 2277, 0x8300 }, { 2280, 0xa9d7 }, - /* 0x5640 */ - { 2290, 0x5285 }, { 2296, 0x4809 }, { 2300, 0xbd51 }, { 2309, 0x0556 }, - /* 0x5680 */ - { 2315, 0x95c1 }, { 2322, 0x6630 }, { 2328, 0x7325 }, { 2336, 0x105c }, - /* 0x56C0 */ - { 2341, 0x672f }, { 2351, 0xcd8a }, { 2359, 0x4109 }, { 2363, 0xa6cd }, - /* 0x5700 */ - { 2372, 0xaf19 }, { 2381, 0x916c }, { 2388, 0xa3ca }, { 2396, 0x0999 }, - /* 0x5740 */ - { 2402, 0xf4e5 }, { 2412, 0x0003 }, { 2414, 0x8752 }, { 2421, 0x98b9 }, - /* 0x5780 */ - { 2429, 0x0b04 }, { 2433, 0x7408 }, { 2438, 0x151d }, { 2445, 0x0109 }, - /* 0x57C0 */ - { 2448, 0xd9c9 }, { 2457, 0xd0dc }, { 2465, 0x2059 }, { 2470, 0xbff1 }, - /* 0x5800 */ - { 2482, 0x0e75 }, { 2490, 0x6220 }, { 2494, 0x8493 }, { 2500, 0x2637 }, - /* 0x5840 */ - { 2508, 0x1e03 }, { 2514, 0x4796 }, { 2522, 0x0a96 }, { 2528, 0x5225 }, - /* 0x5880 */ - { 2534, 0xae28 }, { 2541, 0xf099 }, { 2549, 0x4f00 }, { 2554, 0x4f0a }, - /* 0x58C0 */ - { 2561, 0x74aa }, { 2569, 0xd7be }, { 2581, 0xda35 }, { 2590, 0x3e9f }, - /* 0x5900 */ - { 2601, 0xbe64 }, { 2610, 0x1f71 }, { 2619, 0x7eb4 }, { 2629, 0x6186 }, - /* 0x5940 */ - { 2635, 0xc3d0 }, { 2642, 0xadb3 }, { 2652, 0x77a5 }, { 2662, 0x3178 }, - /* 0x5980 */ - { 2669, 0x2c1e }, { 2676, 0xaa4c }, { 2683, 0x5138 }, { 2689, 0x5a04 }, - /* 0x59C0 */ - { 2694, 0x2b48 }, { 2700, 0x761f }, { 2710, 0x4df8 }, { 2719, 0x8940 }, - /* 0x5A00 */ - { 2723, 0x320a }, { 2728, 0x958a }, { 2735, 0xa2a9 }, { 2742, 0x1060 }, - /* 0x5A40 */ - { 2745, 0x0243 }, { 2749, 0x0420 }, { 2751, 0x34e4 }, { 2758, 0xc480 }, - /* 0x5A80 */ - { 2762, 0x0810 }, { 2764, 0xdc04 }, { 2770, 0x0085 }, { 2773, 0xf42a }, - /* 0x5AC0 */ - { 2781, 0x1a16 }, { 2787, 0x14c1 }, { 2792, 0x426b }, { 2799, 0x0c21 }, - /* 0x5B00 */ - { 2803, 0x1b01 }, { 2808, 0x02c0 }, { 2811, 0x3424 }, { 2816, 0x4055 }, - /* 0x5B40 */ - { 2821, 0x102b }, { 2826, 0xbdf7 }, { 2839, 0x8b78 }, { 2847, 0xb52b }, - /* 0x5B80 */ - { 2856, 0xbbbb }, { 2868, 0xbfe8 }, { 2879, 0x507c }, { 2886, 0x8379 }, - /* 0x5BC0 */ - { 2894, 0x52fd }, { 2904, 0xe95d }, { 2914, 0x5bf6 }, { 2925, 0xe56b }, - /* 0x5C00 */ - { 2935, 0xeffe }, { 2949, 0x444e }, { 2955, 0x2b1d }, { 2963, 0xff03 }, - /* 0x5C40 */ - { 2973, 0xed63 }, { 2983, 0xc82b }, { 2990, 0xd3bf }, { 3002, 0x1643 }, - /* 0x5C80 */ - { 3008, 0x9500 }, { 3012, 0x8013 }, { 3016, 0x3fcf }, { 3028, 0x5dea }, - /* 0x5CC0 */ - { 3038, 0x0aa0 }, { 3042, 0x0205 }, { 3045, 0xa703 }, { 3052, 0x2c51 }, - /* 0x5D00 */ - { 3058, 0x68c0 }, { 3063, 0xaff3 }, { 3075, 0x0ad5 }, { 3082, 0x0202 }, - /* 0x5D40 */ - { 3084, 0x5cc4 }, { 3091, 0x100d }, { 3095, 0xb602 }, { 3101, 0x0049 }, - /* 0x5D80 */ - { 3104, 0x1996 }, { 3111, 0x2295 }, { 3117, 0x5095 }, { 3123, 0x3795 }, - /* 0x5DC0 */ - { 3132, 0x3a00 }, { 3136, 0x69ce }, { 3145, 0x4bff }, { 3157, 0x68be }, - /* 0x5E00 */ - { 3166, 0x184d }, { 3172, 0xaf76 }, { 3183, 0xe820 }, { 3188, 0x61c9 }, - /* 0x5E40 */ - { 3195, 0x52b9 }, { 3203, 0xc1f0 }, { 3210, 0x781e }, { 3218, 0xfffc }, - /* 0x5E80 */ - { 3232, 0x849a }, { 3238, 0x14e0 }, { 3243, 0x3ce1 }, { 3251, 0xc3e0 }, - /* 0x5EC0 */ - { 3258, 0x8f4e }, { 3267, 0xae4d }, { 3276, 0x130f }, { 3283, 0xffdb }, - /* 0x5F00 */ - { 3297, 0xff9f }, { 3311, 0xf9fb }, { 3324, 0xa2e8 }, { 3331, 0x71f2 }, - /* 0x5F40 */ - { 3340, 0x55a3 }, { 3348, 0x33da }, { 3357, 0x3ede }, { 3368, 0xf28f }, - /* 0x5F80 */ - { 3378, 0x9fbf }, { 3391, 0x538f }, { 3400, 0xe797 }, { 3411, 0x33b8 }, - /* 0x5FC0 */ - { 3419, 0x3ab8 }, { 3427, 0x73dc }, { 3437, 0xca17 }, { 3445, 0xb92b }, - /* 0x6000 */ - { 3454, 0xe000 }, { 3457, 0x3bf5 }, { 3468, 0x8ff7 }, { 3480, 0x042a }, - /* 0x6040 */ - { 3484, 0x3cce }, { 3493, 0x8625 }, { 3499, 0xbf3d }, { 3511, 0x80a1 }, - /* 0x6080 */ - { 3515, 0x3e1a }, { 3523, 0xecf4 }, { 3533, 0x07c9 }, { 3540, 0x717f }, - /* 0x60C0 */ - { 3551, 0x09e0 }, { 3556, 0xbf3a }, { 3567, 0x418b }, { 3573, 0x0fff }, - /* 0x6100 */ - { 3585, 0xe34b }, { 3594, 0xde2d }, { 3604, 0x1982 }, { 3609, 0xf491 }, - /* 0x6140 */ - { 3617, 0x7dd6 }, { 3628, 0xa728 }, { 3635, 0xc9ad }, { 3644, 0x50fb }, - /* 0x6180 */ - { 3653, 0x6484 }, { 3658, 0x07df }, { 3668, 0x7bb0 }, { 3677, 0x5644 }, - /* 0x61C0 */ - { 3683, 0x3fc8 }, { 3692, 0xa021 }, { 3696, 0x0048 }, { 3698, 0xf5f4 }, - /* 0x6200 */ - { 3709, 0x7701 }, { 3716, 0xec77 }, { 3727, 0xc64e }, { 3735, 0xc91d }, - /* 0x6240 */ - { 3743, 0x7bcb }, { 3754, 0x4d6e }, { 3763, 0xe11b }, { 3771, 0xda4a }, - /* 0x6280 */ - { 3779, 0x063d }, { 3786, 0x5bfe }, { 3798, 0x1840 }, { 3801, 0x3a22 }, - /* 0x62C0 */ - { 3807, 0xb7f4 }, { 3818, 0x3bff }, { 3831, 0xf003 }, { 3837, 0xf0ea }, - /* 0x6300 */ - { 3846, 0x378e }, { 3855, 0x8303 }, { 3860, 0x8980 }, { 3864, 0xfe24 }, - /* 0x6340 */ - { 3873, 0xf21a }, { 3881, 0x12a1 }, { 3886, 0x5ba0 }, { 3893, 0x1cc4 }, - /* 0x6380 */ - { 3899, 0xd319 }, { 3907, 0x8b54 }, { 3914, 0x1faf }, { 3925, 0x6834 }, - /* 0x63C0 */ - { 3931, 0x8259 }, { 3937, 0x1c75 }, { 3945, 0x7a2b }, { 3954, 0x04f4 }, - /* 0x6400 */ - { 3960, 0xa240 }, { 3964, 0x50d9 }, { 3971, 0xb364 }, { 3979, 0x4450 }, - /* 0x6440 */ - { 3983, 0x4004 }, { 3985, 0x2d02 }, { 3990, 0xa281 }, { 3995, 0x2748 }, - /* 0x6480 */ - { 4001, 0x0188 }, { 4004, 0xe42e }, { 4012, 0x6a30 }, { 4018, 0xda05 }, - /* 0x64C0 */ - { 4025, 0x7cb6 }, { 4035, 0x05b5 }, { 4042, 0x90ff }, { 4052, 0xecd6 }, - /* 0x6500 */ - { 4062, 0x8031 }, { 4066, 0x7150 }, { 4072, 0x9e1c }, { 4080, 0xcbf4 }, - /* 0x6540 */ - { 4090, 0xa130 }, { 4095, 0x63f2 }, { 4104, 0x18cc }, { 4110, 0x05b5 }, - /* 0x6580 */ - { 4117, 0x57be }, { 4128, 0xba83 }, { 4136, 0xb8b2 }, { 4144, 0xb3a5 }, - /* 0x65C0 */ - { 4153, 0x9a7e }, { 4163, 0x0a94 }, { 4168, 0x33e7 }, { 4178, 0x1e06 }, - /* 0x6600 */ - { 4184, 0xd7dd }, { 4196, 0xd038 }, { 4202, 0xadb7 }, { 4213, 0x947b }, - /* 0x6640 */ - { 4222, 0xdb3e }, { 4233, 0xee86 }, { 4242, 0xfffe }, { 4257, 0x0dd9 }, - /* 0x6680 */ - { 4265, 0x639b }, { 4274, 0x23c7 }, { 4282, 0x6845 }, { 4288, 0xdb36 }, - /* 0x66C0 */ - { 4298, 0x03d2 }, { 4304, 0x3e40 }, { 4310, 0x1341 }, { 4315, 0xffbd }, - /* 0x6700 */ - { 4329, 0xab2b }, { 4338, 0xeafc }, { 4349, 0x7dc0 }, { 4357, 0xa5da }, - /* 0x6740 */ - { 4366, 0xf3c2 }, { 4375, 0xf25b }, { 4385, 0xa47f }, { 4395, 0xd8ff }, - /* 0x6780 */ - { 4407, 0x1aa2 }, { 4413, 0x3dad }, { 4423, 0x8247 }, { 4429, 0x0bdd }, - /* 0x67C0 */ - { 4438, 0xc55b }, { 4447, 0x6f9f }, { 4459, 0xd294 }, { 4466, 0xdabb }, - /* 0x6800 */ - { 4477, 0x001e }, { 4481, 0xe1c9 }, { 4489, 0x3e06 }, { 4496, 0x7b1e }, - /* 0x6840 */ - { 4506, 0x737f }, { 4518, 0xbabf }, { 4530, 0x4888 }, { 4534, 0xd4f4 }, - /* 0x6880 */ - { 4543, 0xa02e }, { 4549, 0xbfd9 }, { 4561, 0xaded }, { 4572, 0x1e7f }, - /* 0x68C0 */ - { 4583, 0xbf78 }, { 4594, 0x87f5 }, { 4604, 0xf1bb }, { 4615, 0x1e87 }, - /* 0x6900 */ - { 4623, 0xfdbb }, { 4636, 0x1e04 }, { 4641, 0x056e }, { 4648, 0xaa71 }, - /* 0x6940 */ - { 4656, 0x0644 }, { 4660, 0x76b8 }, { 4669, 0xff1f }, { 4682, 0xf7bc }, - /* 0x6980 */ - { 4694, 0x4407 }, { 4699, 0x1976 }, { 4707, 0x60e1 }, { 4713, 0xdc97 }, - /* 0x69C0 */ - { 4723, 0xfc8b }, { 4733, 0x634b }, { 4741, 0xef8c }, { 4751, 0xea7c }, - /* 0x6A00 */ - { 4761, 0x9c24 }, { 4767, 0xeebe }, { 4779, 0x4e0e }, { 4786, 0xef7d }, - /* 0x6A40 */ - { 4799, 0x4bf0 }, { 4807, 0x8b45 }, { 4814, 0x0856 }, { 4819, 0xc50c }, - /* 0x6A80 */ - { 4825, 0x6a19 }, { 4832, 0xf093 }, { 4840, 0x5c2f }, { 4849, 0x2908 }, - /* 0x6AC0 */ - { 4853, 0x004e }, { 4857, 0xfc1b }, { 4867, 0x1590 }, { 4872, 0x2c0e }, - /* 0x6B00 */ - { 4878, 0x8c30 }, { 4883, 0xe8c7 }, { 4892, 0x908b }, { 4898, 0x67a4 }, - /* 0x6B40 */ - { 4906, 0x56c8 }, { 4913, 0x8b59 }, { 4921, 0x96ff }, { 4933, 0x8fb8 }, - /* 0x6B80 */ - { 4942, 0x2e5f }, { 4952, 0x4960 }, { 4957, 0xee10 }, { 4964, 0xfcbe }, - /* 0x6BC0 */ - { 4976, 0xebe1 }, { 4986, 0x8ddc }, { 4995, 0xd8c0 }, { 5001, 0x800a }, - /* 0x6C00 */ - { 5004, 0xc524 }, { 5010, 0x089b }, { 5016, 0x0018 }, { 5018, 0xc5f8 }, - /* 0x6C40 */ - { 5027, 0x6007 }, { 5032, 0xfea1 }, { 5042, 0x2585 }, { 5048, 0x645d }, - /* 0x6C80 */ - { 5056, 0x337e }, { 5066, 0x1ffd }, { 5078, 0x6c06 }, { 5084, 0xff0a }, - /* 0x6CC0 */ - { 5094, 0x1676 }, { 5102, 0x3ef9 }, { 5113, 0xff2f }, { 5126, 0x080b }, - /* 0x6D00 */ - { 5130, 0x5c11 }, { 5136, 0xca84 }, { 5142, 0xcef0 }, { 5151, 0xfb7e }, - /* 0x6D40 */ - { 5164, 0x0032 }, { 5167, 0x5f00 }, { 5173, 0x5679 }, { 5182, 0x0391 }, - /* 0x6D80 */ - { 5187, 0x77a7 }, { 5198, 0x1b3a }, { 5206, 0xdc00 }, { 5211, 0x9134 }, - /* 0x6DC0 */ - { 5217, 0xd9f5 }, { 5228, 0xef67 }, { 5240, 0x5f52 }, { 5249, 0x1eea }, - /* 0x6E00 */ - { 5258, 0x0fa0 }, { 5264, 0xeea8 }, { 5273, 0xfaff }, { 5287, 0x5554 }, - /* 0x6E40 */ - { 5294, 0xff18 }, { 5304, 0xd9da }, { 5314, 0xc888 }, { 5319, 0xc044 }, - /* 0x6E80 */ - { 5323, 0x9005 }, { 5327, 0xb149 }, { 5334, 0x8ca4 }, { 5340, 0xa4d6 }, - /* 0x6EC0 */ - { 5348, 0x5ebe }, { 5359, 0x623a }, { 5366, 0x9800 }, { 5369, 0xcb94 }, - /* 0x6F00 */ - { 5377, 0x9646 }, { 5384, 0x053b }, { 5391, 0x9c2d }, { 5399, 0xd16e }, - /* 0x6F40 */ - { 5408, 0x0022 }, { 5410, 0xdf96 }, { 5421, 0xe157 }, { 5430, 0x7511 }, - /* 0x6F80 */ - { 5437, 0x7157 }, { 5446, 0x81d3 }, { 5453, 0x84bb }, { 5461, 0x526a }, - /* 0x6FC0 */ - { 5468, 0x07cf }, { 5477, 0xcd30 }, { 5484, 0xda13 }, { 5492, 0x566b }, - /* 0x7000 */ - { 5501, 0x8ee3 }, { 5510, 0xed22 }, { 5518, 0x11c8 }, { 5523, 0x5605 }, - /* 0x7040 */ - { 5529, 0x5c88 }, { 5535, 0x6112 }, { 5540, 0xda38 }, { 5548, 0x7161 }, - /* 0x7080 */ - { 5555, 0x4662 }, { 5561, 0x82a4 }, { 5566, 0xf810 }, { 5572, 0x0f8a }, - /* 0x70C0 */ - { 5579, 0x8d00 }, { 5583, 0xb31a }, { 5591, 0x1010 }, { 5593, 0x2202 }, - /* 0x7100 */ - { 5596, 0x93d8 }, { 5604, 0x5610 }, { 5609, 0xc843 }, { 5615, 0x1043 }, - /* 0x7140 */ - { 5619, 0x56c0 }, { 5625, 0x526f }, { 5634, 0x53f5 }, { 5644, 0x2000 }, - /* 0x7180 */ - { 5645, 0x85b1 }, { 5652, 0x8a74 }, { 5659, 0xd105 }, { 5665, 0x460a }, - /* 0x71C0 */ - { 5670, 0x4b1a }, { 5677, 0x92bd }, { 5686, 0x70e1 }, { 5693, 0xda20 }, - /* 0x7200 */ - { 5699, 0x20c1 }, { 5703, 0x0821 }, { 5706, 0x3d00 }, { 5711, 0xff75 }, - /* 0x7240 */ - { 5724, 0x19c5 }, { 5731, 0xabec }, { 5741, 0xc28e }, { 5748, 0xe314 }, - /* 0x7280 */ - { 5755, 0x6087 }, { 5761, 0x0844 }, { 5764, 0xf085 }, { 5771, 0x4247 }, - /* 0x72C0 */ - { 5777, 0x505f }, { 5785, 0x0a85 }, { 5790, 0x3207 }, { 5796, 0x3f88 }, - /* 0x7300 */ - { 5804, 0x0480 }, { 5806, 0xbbc4 }, { 5815, 0xdfa0 }, { 5824, 0xe2da }, - /* 0x7340 */ - { 5833, 0xc030 }, { 5837, 0x0085 }, { 5840, 0xdd48 }, { 5848, 0x1da7 }, - /* 0x7380 */ - { 5857, 0x0eb2 }, { 5864, 0xd170 }, { 5871, 0x0b65 }, { 5878, 0x9aac }, - /* 0x73C0 */ - { 5886, 0xef25 }, { 5896, 0x4240 }, { 5899, 0x66ab }, { 5908, 0x4702 }, - /* 0x7400 */ - { 5913, 0x06ea }, { 5920, 0x0c08 }, { 5923, 0xdd74 }, { 5933, 0x867f }, - /* 0x7440 */ - { 5943, 0x28db }, { 5951, 0xfeac }, { 5962, 0xae1d }, { 5971, 0x404b }, - /* 0x7480 */ - { 5976, 0x0bea }, { 5984, 0xd385 }, { 5992, 0x0fef }, { 6003, 0xae21 }, - /* 0x74C0 */ - { 6010, 0x8700 }, { 6014, 0x5550 }, { 6020, 0xcacd }, { 6029, 0x85c7 }, - /* 0x7500 */ - { 6037, 0x703a }, { 6044, 0xd5aa }, { 6053, 0x9d79 }, { 6063, 0x7d8f }, - /* 0x7540 */ - { 6074, 0xff51 }, { 6085, 0x3e17 }, { 6094, 0xbef5 }, { 6106, 0xe7df }, - /* 0x7580 */ - { 6119, 0xdec6 }, { 6129, 0x2416 }, { 6134, 0x082c }, { 6138, 0xf3af }, - /* 0x75C0 */ - { 6150, 0xe4ed }, { 6160, 0xeb3c }, { 6170, 0x529d }, { 6178, 0xd61f }, - /* 0x7600 */ - { 6188, 0xab8f }, { 6198, 0xdb68 }, { 6207, 0x21f7 }, { 6216, 0x1839 }, - /* 0x7640 */ - { 6222, 0x1bce }, { 6231, 0x1164 }, { 6236, 0xf7b6 }, { 6248, 0x7d47 }, - /* 0x7680 */ - { 6258, 0x49db }, { 6267, 0x7e69 }, { 6277, 0xc5c3 }, { 6285, 0x87d1 }, - /* 0x76C0 */ - { 6293, 0x776c }, { 6303, 0xd8d4 }, { 6311, 0x55fa }, { 6321, 0x5916 }, - /* 0x7700 */ - { 6328, 0x1f92 }, { 6336, 0xce80 }, { 6342, 0x2271 }, { 6348, 0x15f0 }, - /* 0x7740 */ - { 6355, 0x60c1 }, { 6360, 0x9d00 }, { 6365, 0x0d6f }, { 6374, 0xf604 }, - /* 0x7780 */ - { 6381, 0x4801 }, { 6384, 0xc412 }, { 6389, 0x3635 }, { 6397, 0xba49 }, - /* 0x77C0 */ - { 6405, 0x2080 }, { 6407, 0xdc80 }, { 6413, 0xf6fd }, { 6426, 0x1819 }, - /* 0x7800 */ - { 6431, 0x3264 }, { 6437, 0x0234 }, { 6441, 0x30e3 }, { 6448, 0x8414 }, - /* 0x7840 */ - { 6452, 0xc0a8 }, { 6457, 0x2002 }, { 6459, 0xdd10 }, { 6466, 0x1014 }, - /* 0x7880 */ - { 6469, 0x74c2 }, { 6476, 0xe4ba }, { 6485, 0xa698 }, { 6492, 0x5c21 }, - /* 0x78C0 */ - { 6498, 0x5d62 }, { 6506, 0x0433 }, { 6511, 0x91d3 }, { 6519, 0x6e94 }, - /* 0x7900 */ - { 6527, 0x4083 }, { 6531, 0x1a07 }, { 6537, 0x5c60 }, { 6543, 0x5c13 }, - /* 0x7940 */ - { 6550, 0x07e3 }, { 6558, 0xfde9 }, { 6570, 0x21a5 }, { 6576, 0x8684 }, - /* 0x7980 */ - { 6581, 0xe433 }, { 6589, 0x2970 }, { 6595, 0x46c2 }, { 6601, 0xef1b }, - /* 0x79C0 */ - { 6612, 0x3f87 }, { 6622, 0xc176 }, { 6630, 0x3ada }, { 6639, 0x0801 }, - /* 0x7A00 */ - { 6641, 0x6d09 }, { 6648, 0xdfb2 }, { 6659, 0x6001 }, { 6662, 0xfb86 }, - /* 0x7A40 */ - { 6672, 0xf2cd }, { 6682, 0xb2c1 }, { 6689, 0x2e8f }, { 6698, 0xa771 }, - /* 0x7A80 */ - { 6707, 0x053e }, { 6714, 0x81ed }, { 6722, 0xd609 }, { 6729, 0xde49 }, - /* 0x7AC0 */ - { 6738, 0xfdb8 }, { 6749, 0xb62e }, { 6758, 0xadef }, { 6770, 0xa751 }, - /* 0x7B00 */ - { 6778, 0x8dd4 }, { 6786, 0x4b06 }, { 6792, 0xf5e1 }, { 6802, 0x2a6a }, - /* 0x7B40 */ - { 6809, 0xfbe2 }, { 6820, 0x2077 }, { 6827, 0xf2f1 }, { 6837, 0x863f }, - /* 0x7B80 */ - { 6846, 0xa8c0 }, { 6851, 0xffb7 }, { 6865, 0xa402 }, { 6869, 0x1132 }, - /* 0x7BC0 */ - { 6874, 0x9ef3 }, { 6885, 0x26d0 }, { 6891, 0x2671 }, { 6898, 0x00c9 }, - /* 0x7C00 */ - { 6902, 0xe88b }, { 6910, 0xc09e }, { 6917, 0x0ccb }, { 6924, 0xe1ca }, - /* 0x7C40 */ - { 6932, 0xb429 }, { 6939, 0xc3d3 }, { 6948, 0xf233 }, { 6957, 0x4229 }, - /* 0x7C80 */ - { 6962, 0xaa0e }, { 6969, 0x89b5 }, { 6977, 0x69f7 }, { 6988, 0xf2ce }, - /* 0x7CC0 */ - { 6998, 0x6535 }, { 7006, 0xf3e4 }, { 7016, 0x88c5 }, { 7022, 0x4d74 }, - /* 0x7D00 */ - { 7030, 0x2ffd }, { 7042, 0x7fbd }, { 7055, 0xd80f }, { 7063, 0xe62f }, - /* 0x7D40 */ - { 7073, 0xd9ff }, { 7086, 0x5e49 }, { 7094, 0x454e }, { 7101, 0xa66f }, - /* 0x7D80 */ - { 7111, 0x9b48 }, { 7118, 0xbe88 }, { 7126, 0xfccd }, { 7137, 0xedf7 }, - /* 0x7DC0 */ - { 7150, 0x9c85 }, { 7157, 0x77e6 }, { 7168, 0x935b }, { 7177, 0x0a16 }, - /* 0x7E00 */ - { 7182, 0x0f32 }, { 7189, 0xe8a7 }, { 7198, 0x59cf }, { 7208, 0x6ea6 }, - /* 0x7E40 */ - { 7217, 0x2cea }, { 7225, 0x6674 }, { 7233, 0x2ec2 }, { 7240, 0xfa29 }, - /* 0x7E80 */ - { 7249, 0xf7cc }, { 7260, 0x1d5f }, { 7270, 0x0000 }, { 7270, 0x0000 }, - /* 0x7F00 */ - { 7270, 0x0000 }, { 7270, 0x0000 }, { 7270, 0x0000 }, { 7270, 0x5d40 }, - /* 0x7F40 */ - { 7276, 0xf0b8 }, { 7284, 0x8137 }, { 7291, 0x6f9b }, { 7302, 0x63a5 }, - /* 0x7F80 */ - { 7310, 0x55ec }, { 7319, 0x74d3 }, { 7328, 0xe318 }, { 7335, 0xa344 }, - /* 0x7FC0 */ - { 7341, 0xd46a }, { 7349, 0x8834 }, { 7354, 0xda6b }, { 7364, 0x1e0d }, - /* 0x8000 */ - { 7371, 0x5d7f }, { 7383, 0x13f7 }, { 7393, 0x1152 }, { 7398, 0xb8e9 }, - /* 0x8040 */ - { 7407, 0x0448 }, { 7410, 0xc544 }, { 7416, 0x8146 }, { 7421, 0xeaff }, - /* 0x8080 */ - { 7434, 0x1af0 }, { 7441, 0x3f48 }, { 7449, 0xb6b6 }, { 7459, 0x0516 }, - /* 0x80C0 */ - { 7464, 0x5478 }, { 7471, 0x6fe0 }, { 7480, 0x8073 }, { 7486, 0x393a }, - /* 0x8100 */ - { 7494, 0x27e4 }, { 7502, 0x4d40 }, { 7507, 0x9298 }, { 7513, 0x622a }, - /* 0x8140 */ - { 7519, 0x4c40 }, { 7523, 0x803b }, { 7529, 0x6be1 }, { 7538, 0x8713 }, - /* 0x8180 */ - { 7545, 0x853f }, { 7554, 0x3528 }, { 7560, 0x0319 }, { 7565, 0xed2d }, - /* 0x81C0 */ - { 7575, 0xa74f }, { 7585, 0x8fca }, { 7594, 0x35b9 }, { 7603, 0xfc18 }, - /* 0x8200 */ - { 7611, 0x77b6 }, { 7622, 0xdbc5 }, { 7632, 0x5e06 }, { 7639, 0x13fc }, - /* 0x8240 */ - { 7648, 0x8ae1 }, { 7655, 0xb780 }, { 7662, 0xcd5d }, { 7672, 0xe3d6 }, - /* 0x8280 */ - { 7682, 0x6c08 }, { 7687, 0xa20c }, { 7692, 0xfbfa }, { 7705, 0xff9e }, - /* 0x82C0 */ - { 7718, 0x0060 }, { 7720, 0xdabe }, { 7731, 0x09ee }, { 7739, 0x6e9a }, - /* 0x8300 */ - { 7748, 0x53ff }, { 7760, 0x39c0 }, { 7766, 0xa90c }, { 7772, 0x1777 }, - /* 0x8340 */ - { 7782, 0x86b9 }, { 7790, 0x01b7 }, { 7797, 0x000c }, { 7799, 0xb8a8 }, - /* 0x8380 */ - { 7806, 0x66e0 }, { 7813, 0xed7c }, { 7824, 0x0f85 }, { 7831, 0xa022 }, - /* 0x83C0 */ - { 7835, 0xd6a3 }, { 7844, 0xb15b }, { 7853, 0x8e23 }, { 7860, 0x2a97 }, - /* 0x8400 */ - { 7868, 0xfcda }, { 7879, 0x00aa }, { 7883, 0x1605 }, { 7888, 0x3322 }, - /* 0x8440 */ - { 7894, 0xc740 }, { 7900, 0x9e86 }, { 7908, 0xfa6e }, { 7919, 0x17eb }, - /* 0x8480 */ - { 7929, 0x0836 }, { 7934, 0xd291 }, { 7941, 0xa042 }, { 7945, 0xdf14 }, - /* 0x84C0 */ - { 7954, 0xee57 }, { 7965, 0x164b }, { 7972, 0xd480 }, { 7977, 0xb413 }, - /* 0x8500 */ - { 7984, 0x1041 }, { 7987, 0xcdba }, { 7997, 0xb87a }, { 8006, 0x6034 }, - /* 0x8540 */ - { 8011, 0xcf0b }, { 8020, 0x47aa }, { 8028, 0xa71e }, { 8037, 0xec80 }, - /* 0x8580 */ - { 8043, 0x95d3 }, { 8052, 0xba9b }, { 8062, 0xff54 }, { 8073, 0x1681 }, - /* 0x85C0 */ - { 8078, 0xee82 }, { 8086, 0xb321 }, { 8093, 0x2672 }, { 8100, 0xcec0 }, - /* 0x8600 */ - { 8107, 0x0cf5 }, { 8115, 0x45cf }, { 8124, 0xa296 }, { 8131, 0x9301 }, - /* 0x8640 */ - { 8136, 0x6003 }, { 8140, 0xdcf9 }, { 8151, 0x9884 }, { 8156, 0x0ea2 }, - /* 0x8680 */ - { 8162, 0x3e80 }, { 8168, 0x312a }, { 8174, 0x8f18 }, { 8181, 0x014b }, - /* 0x86C0 */ - { 8186, 0x6ada }, { 8195, 0xcab2 }, { 8203, 0xf258 }, { 8211, 0x7f00 }, - /* 0x8700 */ - { 8218, 0x6fed }, { 8230, 0x970f }, { 8239, 0x022a }, { 8243, 0xcc92 }, - /* 0x8740 */ - { 8250, 0x5a09 }, { 8256, 0x83aa }, { 8263, 0x4579 }, { 8271, 0x9156 }, - /* 0x8780 */ - { 8278, 0x2b84 }, { 8284, 0x8008 }, { 8286, 0xb885 }, { 8293, 0x6c28 }, - /* 0x87C0 */ - { 8299, 0x48d3 }, { 8306, 0x8045 }, { 8310, 0xbc69 }, { 8319, 0x4ae4 }, - /* 0x8800 */ - { 8326, 0xec6a }, { 8335, 0x807b }, { 8342, 0x418e }, { 8348, 0x1a46 }, - /* 0x8840 */ - { 8354, 0x3455 }, { 8361, 0xeb8c }, { 8370, 0x8b1e }, { 8378, 0xe0a5 }, - /* 0x8880 */ - { 8385, 0x2906 }, { 8390, 0x43c4 }, { 8396, 0x4c15 }, { 8402, 0xf0b3 }, - /* 0x88C0 */ - { 8411, 0xc43f }, { 8420, 0xbb3e }, { 8431, 0x0102 }, { 8433, 0x733f }, - /* 0x8900 */ - { 8444, 0x1496 }, { 8450, 0x770d }, { 8459, 0x0ca0 }, { 8463, 0x0bc5 }, - /* 0x8940 */ - { 8470, 0x323f }, { 8479, 0xc040 }, { 8482, 0xa455 }, { 8489, 0xc094 }, - /* 0x8980 */ - { 8494, 0x8fcb }, { 8504, 0x85d9 }, { 8512, 0x96c2 }, { 8519, 0xa48d }, - /* 0x89C0 */ - { 8526, 0x0001 }, { 8527, 0x3554 }, { 8534, 0x08e8 }, { 8539, 0xa15a }, - /* 0x8A00 */ - { 8546, 0x550d }, { 8553, 0xa9ff }, { 8565, 0x242e }, { 8571, 0x5cfa }, - /* 0x8A40 */ - { 8581, 0x61e2 }, { 8588, 0x6937 }, { 8597, 0x7a4f }, { 8607, 0x122f }, - /* 0x8A80 */ - { 8614, 0x32b4 }, { 8621, 0x452b }, { 8628, 0x71fb }, { 8639, 0xd285 }, - /* 0x8AC0 */ - { 8646, 0xb894 }, { 8653, 0xdcc5 }, { 8662, 0x68d7 }, { 8671, 0x55da }, - /* 0x8B00 */ - { 8680, 0x74b7 }, { 8690, 0xbed1 }, { 8700, 0x3943 }, { 8707, 0x4208 }, - /* 0x8B40 */ - { 8710, 0xd24a }, { 8717, 0xdf52 }, { 8727, 0x9a40 }, { 8732, 0xa0d7 }, - /* 0x8B80 */ - { 8740, 0x5c0b }, { 8747, 0x767d }, { 8758, 0x0000 }, { 8758, 0x0000 }, - /* 0x8C00 */ - { 8758, 0x0000 }, { 8758, 0x0000 }, { 8758, 0x0000 }, { 8758, 0xa680 }, - /* 0x8C40 */ - { 8763, 0xd7e2 }, { 8773, 0x04b1 }, { 8778, 0x3f06 }, { 8786, 0x1708 }, - /* 0x8C80 */ - { 8791, 0x7624 }, { 8798, 0x6b1c }, { 8806, 0xff97 }, { 8819, 0xb9dd }, - /* 0x8CC0 */ - { 8830, 0x659f }, { 8840, 0x5e6a }, { 8849, 0x245f }, { 8857, 0x7d13 }, - /* 0x8D00 */ - { 8866, 0xefb0 }, { 8876, 0x085d }, { 8882, 0x0000 }, { 8882, 0x0000 }, - /* 0x8D40 */ - { 8882, 0x0000 }, { 8882, 0x0000 }, { 8882, 0x38d0 }, { 8888, 0x009b }, - /* 0x8D80 */ - { 8893, 0x0432 }, { 8897, 0x0220 }, { 8899, 0x8148 }, { 8903, 0x4408 }, - /* 0x8DC0 */ - { 8906, 0xd944 }, { 8913, 0xaec2 }, { 8921, 0x9d0a }, { 8928, 0xb028 }, - /* 0x8E00 */ - { 8933, 0x9740 }, { 8939, 0xe051 }, { 8945, 0x048f }, { 8951, 0x2271 }, - /* 0x8E40 */ - { 8957, 0x1f94 }, { 8965, 0x8231 }, { 8970, 0xb01d }, { 8977, 0x1855 }, - /* 0x8E80 */ - { 8983, 0x2cb2 }, { 8990, 0x431a }, { 8996, 0xdc02 }, { 9002, 0x486b }, - /* 0x8EC0 */ - { 9009, 0x3d61 }, { 9017, 0x8816 }, { 9022, 0x080c }, { 9025, 0x7f00 }, - /* 0x8F00 */ - { 9032, 0x1729 }, { 9039, 0xfabc }, { 9050, 0xae40 }, { 9056, 0xcb48 }, - /* 0x8F40 */ - { 9063, 0x7675 }, { 9073, 0x9190 }, { 9078, 0x001e }, { 9082, 0x0000 }, - /* 0x8F80 */ - { 9082, 0x0000 }, { 9082, 0xd800 }, { 9086, 0xe1d8 }, { 9094, 0x9cf7 }, - /* 0x8FC0 */ - { 9105, 0x6476 }, { 9113, 0x043a }, { 9118, 0xef75 }, { 9130, 0x2fb3 }, - /* 0x9000 */ - { 9140, 0xf96f }, { 9152, 0xe6fb }, { 9164, 0x608f }, { 9171, 0x53e6 }, - /* 0x9040 */ - { 9180, 0xeebe }, { 9192, 0x737f }, { 9204, 0xe32b }, { 9213, 0xb5e4 }, - /* 0x9080 */ - { 9222, 0x97bf }, { 9234, 0x0aa3 }, { 9240, 0x854e }, { 9247, 0x416b }, - /* 0x90C0 */ - { 9254, 0x45ba }, { 9262, 0xf880 }, { 9268, 0xa916 }, { 9275, 0xe0f4 }, - /* 0x9100 */ - { 9283, 0x0055 }, { 9287, 0x5374 }, { 9295, 0xa08c }, { 9300, 0x2697 }, - /* 0x9140 */ - { 9308, 0x7fc0 }, { 9317, 0x0bd4 }, { 9324, 0x163e }, { 9332, 0x03bc }, - /* 0x9180 */ - { 9339, 0x6aac }, { 9347, 0x5085 }, { 9352, 0xdd14 }, { 9360, 0x157a }, - /* 0x91C0 */ - { 9368, 0xfbdb }, { 9381, 0xbdc3 }, { 9391, 0x70fa }, { 9400, 0x9862 }, - /* 0x9200 */ - { 9406, 0x6482 }, { 9411, 0x40f3 }, { 9418, 0x1200 }, { 9420, 0x9798 }, - /* 0x9240 */ - { 9428, 0xcfbd }, { 9440, 0x4ec3 }, { 9448, 0x01f7 }, { 9456, 0xf102 }, - /* 0x9280 */ - { 9462, 0x2329 }, { 9468, 0x9fea }, { 9479, 0x2880 }, { 9482, 0x8284 }, - /* 0x92C0 */ - { 9486, 0xd845 }, { 9493, 0x028d }, { 9498, 0x26b1 }, { 9505, 0x9f8c }, - /* 0x9300 */ - { 9514, 0xa054 }, { 9519, 0xe723 }, { 9528, 0xdbef }, { 9541, 0x0c24 }, - /* 0x9340 */ - { 9545, 0x2f90 }, { 9552, 0x1cd2 }, { 9559, 0x5c31 }, { 9566, 0x502b }, - /* 0x9380 */ - { 9572, 0x9900 }, { 9576, 0x4cd0 }, { 9582, 0x708a }, { 9588, 0x0601 }, - /* 0x93C0 */ - { 9591, 0x01ca }, { 9596, 0xf1c3 }, { 9605, 0x01b6 }, { 9611, 0x2822 }, - /* 0x9400 */ - { 9615, 0x8298 }, { 9620, 0x07d9 }, { 9628, 0x0802 }, { 9630, 0x0d7c }, - /* 0x9440 */ - { 9638, 0x0432 }, { 9642, 0x4c0e }, { 9648, 0xac0d }, { 9655, 0xf0a7 }, - /* 0x9480 */ - { 9664, 0x0002 }, { 9665, 0x0000 }, { 9665, 0x0000 }, { 9665, 0x0000 }, - /* 0x9540 */ - { 9665, 0x0000 }, { 9665, 0x0000 }, { 9665, 0x0000 }, { 9665, 0x0380 }, - /* 0x9580 */ - { 9668, 0xfecd }, { 9680, 0x835a }, { 9687, 0x3bfd }, { 9699, 0x7a54 }, - /* 0x95C0 */ - { 9707, 0x3d88 }, { 9714, 0x5579 }, { 9723, 0x0026 }, { 9726, 0x0000 }, - /* 0x9600 */ - { 9726, 0x0000 }, { 9726, 0x3000 }, { 9728, 0xd502 }, { 9734, 0x981c }, - /* 0x9640 */ - { 9740, 0xb817 }, { 9748, 0xf901 }, { 9755, 0x147e }, { 9763, 0x25ed }, - /* 0x9680 */ - { 9772, 0xed74 }, { 9782, 0x3fb0 }, { 9791, 0x87b9 }, { 9800, 0x3fdf }, - /* 0x96C0 */ - { 9813, 0x7af3 }, { 9824, 0x7f66 }, { 9835, 0x8f0c }, { 9842, 0x0ac5 }, - /* 0x9700 */ - { 9848, 0xe5d1 }, { 9857, 0x525a }, { 9864, 0x0498 }, { 9868, 0x6b4d }, - /* 0x9740 */ - { 9877, 0xe3d6 }, { 9887, 0x5ee4 }, { 9896, 0x6f57 }, { 9907, 0x161a }, - /* 0x9780 */ - { 9913, 0xa872 }, { 9920, 0x5561 }, { 9927, 0x694d }, { 9935, 0x441e }, - /* 0x97C0 */ - { 9941, 0x1b4a }, { 9948, 0x5b1a }, { 9956, 0x6002 }, { 9959, 0x887e }, - /* 0x9800 */ - { 9967, 0xf57e }, { 9979, 0x45df }, { 9989, 0x383a }, { 9996, 0x399d }, - /* 0x9840 */ - { 10005, 0xf8c0 }, { 10012, 0x4ffc }, { 10023, 0x98e0 }, { 10029, 0x001b }, - /* 0x9880 */ - { 10033, 0x0000 }, { 10033, 0x0000 }, { 10033, 0xad00 }, { 10038, 0x9dc3 }, - /* 0x98C0 */ - { 10047, 0x09dc }, { 10054, 0x9800 }, { 10057, 0xeeaf }, { 10069, 0x701f }, - /* 0x9900 */ - { 10077, 0x1728 }, { 10083, 0x7ddd }, { 10095, 0x5113 }, { 10101, 0x7c0e }, - /* 0x9940 */ - { 10109, 0x7a67 }, { 10119, 0x91a7 }, { 10127, 0x0001 }, { 10128, 0x0000 }, - /* 0x9980 */ - { 10128, 0x0000 }, { 10128, 0x43c0 }, { 10133, 0x7168 }, { 10140, 0xb218 }, - /* 0x99C0 */ - { 10146, 0x037a }, { 10153, 0xeb37 }, { 10164, 0x6004 }, { 10167, 0x9b07 }, - /* 0x9A00 */ - { 10175, 0xc42e }, { 10182, 0x064e }, { 10188, 0x6911 }, { 10194, 0x41c3 }, - /* 0x9A40 */ - { 10200, 0x743d }, { 10209, 0x8da4 }, { 10216, 0x0e34 }, { 10222, 0x0000 }, - /* 0x9A80 */ - { 10222, 0x0000 }, { 10222, 0x0000 }, { 10222, 0xa100 }, { 10225, 0x13c1 }, - /* 0x9AC0 */ - { 10231, 0xc05b }, { 10238, 0xd17f }, { 10249, 0xee6d }, { 10260, 0x0a92 }, - /* 0x9B00 */ - { 10265, 0x114c }, { 10270, 0x9545 }, { 10277, 0xefad }, { 10289, 0x380e }, - /* 0x9B40 */ - { 10295, 0xe83e }, { 10304, 0x4512 }, { 10309, 0x9868 }, { 10315, 0x02fc }, - /* 0x9B80 */ - { 10322, 0xc418 }, { 10327, 0xc0ce }, { 10334, 0x7dc1 }, { 10343, 0x4316 }, - /* 0x9BC0 */ - { 10349, 0xc6c3 }, { 10357, 0x2956 }, { 10364, 0xcdbe }, { 10375, 0x25af }, - /* 0x9C00 */ - { 10384, 0x3751 }, { 10392, 0x2f7d }, { 10403, 0xe6be }, { 10414, 0x4ec7 }, - /* 0x9C40 */ - { 10423, 0x87e2 }, { 10431, 0xbd9d }, { 10442, 0x6ea9 }, { 10451, 0x05e5 }, - /* 0x9CC0 */ - { 10458, 0x0000 }, { 10458, 0x0000 }, { 10458, 0x1ae0 }, { 10464, 0x005d }, - /* 0x9D00 */ - { 10469, 0x4bcc }, { 10477, 0xe9a6 }, { 10486, 0x1d48 }, { 10492, 0xc804 }, - /* 0x9D40 */ - { 10496, 0x05de }, { 10504, 0xf207 }, { 10512, 0x9a1f }, { 10521, 0x54cd }, - /* 0x9D80 */ - { 10529, 0xa690 }, { 10535, 0x0640 }, { 10538, 0x9a12 }, { 10544, 0xbf34 }, - /* 0x9DC0 */ - { 10554, 0x82df }, { 10563, 0x86c8 }, { 10569, 0xa0c9 }, { 10575, 0x2714 }, - /* 0x9E00 */ - { 10581, 0x2484 }, { 10585, 0x7e20 }, { 10592, 0x0000 }, { 10592, 0x0000 }, - /* 0x9E40 */ - { 10592, 0x0000 }, { 10592, 0x0000 }, { 10592, 0x0000 }, { 10592, 0xbb20 }, - /* 0x9E80 */ - { 10599, 0x1923 }, { 10605, 0xe8ae }, { 10614, 0xb770 }, { 10623, 0xff30 }, - /* 0x9EC0 */ - { 10633, 0xf018 }, { 10639, 0xfb17 }, { 10650, 0xc1a1 }, { 10656, 0xbad0 }, - /* 0x9F00 */ - { 10664, 0x418c }, { 10669, 0x02a9 }, { 10674, 0x9003 }, { 10678, 0x6e80 }, - /* 0x9F40 */ - { 10684, 0xcc62 }, { 10691, 0xa1bc }, { 10699, 0x36cf }, { 10709, 0x00e5 }, - /* 0x9F80 */ - { 10714, 0x2000 }, { 10715, 0x30b1 }, { 10721, 0x0005 }, { 10723, 0x0000 }, - /* 0xF900 */ - { 10723, 0x0000 }, { 10723, 0x2000 }, { 10724, 0x0300 }, { 10726, 0x0040 }, - /* 0xF940 */ - { 10727, 0x0000 }, { 10727, 0x0000 }, { 10727, 0x0000 }, { 10727, 0x0001 }, - /* 0xF9C0 */ - { 10728, 0x0000 }, { 10728, 0x1001 }, { 10730, 0x0000 }, { 10730, 0x0000 }, - /* 0xFA00 */ - { 10730, 0x8000 }, { 10731, 0x8e7b }, { 10741, 0x0057 }, { 10746, 0xffff }, - /* 0xFA40 */ - { 10762, 0xffff }, { 10778, 0xffff }, { 10794, 0x07ff }, { 10805, 0x0000 }, - /* 0xFE40 */ - { 10805, 0x0060 }, { 10807, 0x0000 }, { 10807, 0x0000 }, { 10807, 0x0000 }, - /* 0xFF00 */ - { 10807, 0xfffe }, { 10822, 0xffff }, { 10838, 0xffff }, { 10854, 0xffff }, - /* 0xFF40 */ - { 10870, 0xffff }, { 10886, 0xffff }, { 10902, 0x0001 }, { 10903, 0x0000 }, - /* 0xFFC0 */ - { 10903, 0x0000 }, { 10903, 0x0000 }, { 10903, 0x0028 }, { 10905, 0x0000 }, - /* 0x20000 */ - { 10905, 0x0800 }, { 10906, 0x0000 }, { 10906, 0x0000 }, { 10906, 0x0000 }, - /* 0x20080 */ - { 10906, 0x0200 }, { 10907, 0x0000 }, { 10907, 0x0014 }, { 10909, 0x0000 }, - /* 0x20180 */ - { 10909, 0x0000 }, { 10909, 0x0000 }, { 10909, 0x0004 }, { 10910, 0x0000 }, - /* 0x20200 */ - { 10910, 0x0000 }, { 10910, 0x0008 }, { 10911, 0x0000 }, { 10911, 0x0000 }, - /* 0x20300 */ - { 10911, 0x0000 }, { 10911, 0x0000 }, { 10911, 0x0800 }, { 10912, 0x0000 }, - /* 0x20340 */ - { 10912, 0x0000 }, { 10912, 0x0000 }, { 10912, 0x0000 }, { 10912, 0x0002 }, - /* 0x20380 */ - { 10913, 0x0002 }, { 10914, 0x0000 }, { 10914, 0x0000 }, { 10914, 0x0000 }, - /* 0x203C0 */ - { 10914, 0x0000 }, { 10914, 0x0000 }, { 10914, 0x0000 }, { 10914, 0x0200 }, - /* 0x20440 */ - { 10915, 0x0400 }, { 10916, 0x0000 }, { 10916, 0x0000 }, { 10916, 0x0000 }, - /* 0x20500 */ - { 10916, 0x0200 }, { 10917, 0x0000 }, { 10917, 0x0000 }, { 10917, 0x0000 }, - /* 0x205C0 */ - { 10917, 0x0000 }, { 10917, 0x0040 }, { 10918, 0x0000 }, { 10918, 0x0000 }, - /* 0x20600 */ - { 10918, 0x0000 }, { 10918, 0x0000 }, { 10918, 0x0100 }, { 10919, 0x0000 }, - /* 0x20740 */ - { 10919, 0x8000 }, { 10920, 0x0000 }, { 10920, 0x0000 }, { 10920, 0x0000 }, - /* 0x20800 */ - { 10920, 0x0080 }, { 10921, 0x0000 }, { 10921, 0x0000 }, { 10921, 0x0400 }, - /* 0x20880 */ - { 10922, 0x0000 }, { 10922, 0x0000 }, { 10922, 0x0000 }, { 10922, 0x0200 }, - /* 0x20940 */ - { 10923, 0x0000 }, { 10923, 0x0000 }, { 10923, 0x0000 }, { 10923, 0x1000 }, - /* 0x20980 */ - { 10924, 0x0000 }, { 10924, 0x2000 }, { 10925, 0x0000 }, { 10925, 0x0000 }, - /* 0x20AC0 */ - { 10925, 0x0000 }, { 10925, 0x0008 }, { 10926, 0x0000 }, { 10926, 0x0000 }, - /* 0x20B00 */ - { 10926, 0x0000 }, { 10926, 0x2000 }, { 10927, 0x0000 }, { 10927, 0x0000 }, - /* 0x20B80 */ - { 10927, 0x0000 }, { 10927, 0x8000 }, { 10928, 0x0000 }, { 10928, 0x0000 }, - /* 0x20D40 */ - { 10928, 0x0020 }, { 10929, 0x0000 }, { 10929, 0x0000 }, { 10929, 0x0000 }, - /* 0x20DC0 */ - { 10929, 0x0000 }, { 10929, 0x0000 }, { 10929, 0x0002 }, { 10930, 0x0000 }, - /* 0x20E40 */ - { 10930, 0x0000 }, { 10930, 0x0000 }, { 10930, 0x2010 }, { 10932, 0x0000 }, - /* 0x20E80 */ - { 10932, 0x0000 }, { 10932, 0x0020 }, { 10933, 0x0000 }, { 10933, 0x0000 }, - /* 0x20F40 */ - { 10933, 0x0000 }, { 10933, 0x8000 }, { 10934, 0x0000 }, { 10934, 0x0000 }, - /* 0x21200 */ - { 10934, 0x0002 }, { 10935, 0x0000 }, { 10935, 0x0000 }, { 10935, 0x2000 }, - /* 0x21240 */ - { 10936, 0x0000 }, { 10936, 0x0020 }, { 10937, 0x0000 }, { 10937, 0x0810 }, - /* 0x212C0 */ - { 10939, 0x0000 }, { 10939, 0x0080 }, { 10940, 0x0010 }, { 10941, 0x2000 }, - /* 0x21300 */ - { 10942, 0x0000 }, { 10942, 0x0800 }, { 10943, 0x0000 }, { 10943, 0x0040 }, - /* 0x21340 */ - { 10944, 0x0010 }, { 10945, 0x0000 }, { 10945, 0x0000 }, { 10945, 0x0000 }, - /* 0x213C0 */ - { 10945, 0x0010 }, { 10946, 0x0000 }, { 10946, 0x0000 }, { 10946, 0x0000 }, - /* 0x21440 */ - { 10946, 0x0000 }, { 10946, 0x0000 }, { 10946, 0x6000 }, { 10948, 0x0000 }, - /* 0x215C0 */ - { 10948, 0x0000 }, { 10948, 0x0080 }, { 10949, 0x0000 }, { 10949, 0x0000 }, - /* 0x21640 */ - { 10949, 0x0080 }, { 10950, 0x0000 }, { 10950, 0x0000 }, { 10950, 0x0000 }, - /* 0x21680 */ - { 10950, 0x0000 }, { 10950, 0x0000 }, { 10950, 0x0000 }, { 10950, 0x0010 }, - /* 0x21700 */ - { 10951, 0x0040 }, { 10952, 0x0000 }, { 10952, 0x0000 }, { 10952, 0x0000 }, - /* 0x21740 */ - { 10952, 0x0004 }, { 10953, 0x0000 }, { 10953, 0x0000 }, { 10953, 0x0000 }, - /* 0x21880 */ - { 10953, 0x0000 }, { 10953, 0x0000 }, { 10953, 0x0000 }, { 10953, 0x2000 }, - /* 0x219C0 */ - { 10954, 0x0008 }, { 10955, 0x0000 }, { 10955, 0x0000 }, { 10955, 0x0000 }, - /* 0x21C40 */ - { 10955, 0x0000 }, { 10955, 0x0040 }, { 10956, 0x0000 }, { 10956, 0x0000 }, - /* 0x21D00 */ - { 10956, 0x0000 }, { 10956, 0x0000 }, { 10956, 0x2000 }, { 10957, 0x0000 }, - /* 0x21D40 */ - { 10957, 0x0020 }, { 10958, 0x0000 }, { 10958, 0x0004 }, { 10959, 0x0100 }, - /* 0x21D80 */ - { 10960, 0x0000 }, { 10960, 0x1004 }, { 10962, 0x0002 }, { 10963, 0x0080 }, - /* 0x21DC0 */ - { 10964, 0x0000 }, { 10964, 0x0000 }, { 10964, 0x0001 }, { 10965, 0x0000 }, - /* 0x21E00 */ - { 10965, 0x0000 }, { 10965, 0x0000 }, { 10965, 0x0000 }, { 10965, 0x0018 }, - /* 0x21F00 */ - { 10967, 0x0000 }, { 10967, 0x4000 }, { 10968, 0x0000 }, { 10968, 0x0000 }, - /* 0x21F40 */ - { 10968, 0x0000 }, { 10968, 0x0000 }, { 10968, 0x0000 }, { 10968, 0x0040 }, - /* 0x21FC0 */ - { 10969, 0x0000 }, { 10969, 0x0000 }, { 10969, 0x0000 }, { 10969, 0x0400 }, - /* 0x22140 */ - { 10970, 0x0000 }, { 10970, 0x0000 }, { 10970, 0x0000 }, { 10970, 0x0800 }, - /* 0x22200 */ - { 10971, 0x0000 }, { 10971, 0x0100 }, { 10972, 0x0000 }, { 10972, 0x0000 }, - /* 0x22300 */ - { 10972, 0x0000 }, { 10972, 0x4000 }, { 10973, 0x0000 }, { 10973, 0x0000 }, - /* 0x22380 */ - { 10973, 0x0000 }, { 10973, 0x0000 }, { 10973, 0x2000 }, { 10974, 0x0000 }, - /* 0x226C0 */ - { 10974, 0x0000 }, { 10974, 0x0000 }, { 10974, 0x0000 }, { 10974, 0x0008 }, - /* 0x22840 */ - { 10975, 0x0000 }, { 10975, 0x0800 }, { 10976, 0x0000 }, { 10976, 0x0000 }, - /* 0x22880 */ - { 10976, 0x0000 }, { 10976, 0x0000 }, { 10976, 0x0800 }, { 10977, 0x0000 }, - /* 0x22980 */ - { 10977, 0x8000 }, { 10978, 0x0000 }, { 10978, 0x0000 }, { 10978, 0x0000 }, - /* 0x22A80 */ - { 10978, 0x0000 }, { 10978, 0x0000 }, { 10978, 0x0000 }, { 10978, 0x0100 }, - /* 0x22B40 */ - { 10979, 0x8040 }, { 10981, 0x0001 }, { 10982, 0x0000 }, { 10982, 0x0000 }, - /* 0x22B80 */ - { 10982, 0x0000 }, { 10982, 0x0000 }, { 10982, 0x0040 }, { 10983, 0x0000 }, - /* 0x22C00 */ - { 10983, 0x0000 }, { 10983, 0x2000 }, { 10984, 0x0010 }, { 10985, 0x0000 }, - /* 0x22DC0 */ - { 10985, 0x0000 }, { 10985, 0x0000 }, { 10985, 0x0002 }, { 10986, 0x0000 }, - /* 0x23180 */ - { 10986, 0x0000 }, { 10986, 0x0000 }, { 10986, 0x0000 }, { 10986, 0x0040 }, - /* 0x231C0 */ - { 10987, 0x0018 }, { 10989, 0x0000 }, { 10989, 0x0000 }, { 10989, 0x0020 }, - /* 0x23340 */ - { 10990, 0x0000 }, { 10990, 0x0000 }, { 10990, 0x0000 }, { 10990, 0x0004 }, - /* 0x233C0 */ - { 10991, 0x0000 }, { 10991, 0x842d }, { 10997, 0x0010 }, { 10998, 0x0000 }, - /* 0x23440 */ - { 10998, 0x0c00 }, { 11000, 0x0002 }, { 11001, 0x0020 }, { 11002, 0x0000 }, - /* 0x234C0 */ - { 11002, 0x0000 }, { 11002, 0x0000 }, { 11002, 0x0010 }, { 11003, 0x0000 }, - /* 0x23540 */ - { 11003, 0x0000 }, { 11003, 0x0400 }, { 11004, 0x0000 }, { 11004, 0x0000 }, - /* 0x23580 */ - { 11004, 0x0000 }, { 11004, 0x0010 }, { 11005, 0x0000 }, { 11005, 0x0000 }, - /* 0x235C0 */ - { 11005, 0x0010 }, { 11006, 0x0000 }, { 11006, 0x0000 }, { 11006, 0x0000 }, - /* 0x23600 */ - { 11006, 0x0000 }, { 11006, 0x0000 }, { 11006, 0x0000 }, { 11006, 0x0700 }, - /* 0x23640 */ - { 11009, 0x0080 }, { 11010, 0x0000 }, { 11010, 0x0000 }, { 11010, 0x0000 }, - /* 0x23700 */ - { 11010, 0x1000 }, { 11011, 0x1000 }, { 11012, 0x0000 }, { 11012, 0x8000 }, - /* 0x23740 */ - { 11013, 0x0000 }, { 11013, 0x0000 }, { 11013, 0x0018 }, { 11015, 0x0000 }, - /* 0x237C0 */ - { 11015, 0x0000 }, { 11015, 0x0000 }, { 11015, 0x0080 }, { 11016, 0x8000 }, - /* 0x23800 */ - { 11017, 0x0000 }, { 11017, 0x0000 }, { 11017, 0x0010 }, { 11018, 0x2000 }, - /* 0x23A80 */ - { 11019, 0x0000 }, { 11019, 0x0100 }, { 11020, 0x0000 }, { 11020, 0x0000 }, - /* 0x23C40 */ - { 11020, 0x0000 }, { 11020, 0x0000 }, { 11020, 0x0000 }, { 11020, 0x8000 }, - /* 0x23CC0 */ - { 11021, 0x0000 }, { 11021, 0x0000 }, { 11021, 0x0000 }, { 11021, 0x4000 }, - /* 0x23D00 */ - { 11022, 0x4001 }, { 11024, 0x0000 }, { 11024, 0x0000 }, { 11024, 0x0000 }, - /* 0x23D40 */ - { 11024, 0x0001 }, { 11025, 0x0000 }, { 11025, 0x0000 }, { 11025, 0x0000 }, - /* 0x23DC0 */ - { 11025, 0x0000 }, { 11025, 0x0008 }, { 11026, 0x0000 }, { 11026, 0x0600 }, - /* 0x23F40 */ - { 11028, 0x0000 }, { 11028, 0x0000 }, { 11028, 0x0000 }, { 11028, 0x4000 }, - /* 0x24080 */ - { 11029, 0x0000 }, { 11029, 0x0040 }, { 11030, 0x0000 }, { 11030, 0x0000 }, - /* 0x24100 */ - { 11030, 0x0008 }, { 11031, 0x0000 }, { 11031, 0x0000 }, { 11031, 0x0000 }, - /* 0x241C0 */ - { 11031, 0x0040 }, { 11032, 0x0000 }, { 11032, 0x0000 }, { 11032, 0x4000 }, - /* 0x24380 */ - { 11033, 0x0000 }, { 11033, 0x0000 }, { 11033, 0x0000 }, { 11033, 0x1000 }, - /* 0x24600 */ - { 11034, 0x0000 }, { 11034, 0x0000 }, { 11034, 0x0200 }, { 11035, 0x0000 }, - /* 0x24680 */ - { 11035, 0x0000 }, { 11035, 0x0000 }, { 11035, 0x0020 }, { 11036, 0x0000 }, - /* 0x247C0 */ - { 11036, 0x0000 }, { 11036, 0x0000 }, { 11036, 0x0000 }, { 11036, 0x0002 }, - /* 0x24880 */ - { 11037, 0x0000 }, { 11037, 0x0040 }, { 11038, 0x0000 }, { 11038, 0x0000 }, - /* 0x24A40 */ - { 11038, 0x2000 }, { 11039, 0x0000 }, { 11039, 0x0000 }, { 11039, 0x0000 }, - /* 0x24B40 */ - { 11039, 0x0000 }, { 11039, 0x0040 }, { 11040, 0x8000 }, { 11041, 0x0000 }, - /* 0x24C00 */ - { 11041, 0x0000 }, { 11041, 0x0040 }, { 11042, 0x0000 }, { 11042, 0x0000 }, - /* 0x24D00 */ - { 11042, 0x0000 }, { 11042, 0x0010 }, { 11043, 0x0000 }, { 11043, 0x0000 }, - /* 0x24E00 */ - { 11043, 0x4000 }, { 11044, 0x0000 }, { 11044, 0x0000 }, { 11044, 0x0080 }, - /* 0x24E40 */ - { 11045, 0x0000 }, { 11045, 0x0000 }, { 11045, 0x0400 }, { 11046, 0x0000 }, - /* 0x24E80 */ - { 11046, 0x0800 }, { 11047, 0x0000 }, { 11047, 0x0000 }, { 11047, 0x0000 }, - /* 0x25040 */ - { 11047, 0x0400 }, { 11048, 0x0020 }, { 11049, 0x0000 }, { 11049, 0x0000 }, - /* 0x25100 */ - { 11049, 0x0000 }, { 11049, 0x0000 }, { 11049, 0x0004 }, { 11050, 0x0000 }, - /* 0x25180 */ - { 11050, 0x0000 }, { 11050, 0x0000 }, { 11050, 0x0200 }, { 11051, 0x0000 }, - /* 0x251C0 */ - { 11051, 0x2000 }, { 11052, 0x0000 }, { 11052, 0x0020 }, { 11053, 0x0000 }, - /* 0x25200 */ - { 11053, 0x0000 }, { 11053, 0x4000 }, { 11054, 0x0000 }, { 11054, 0x0000 }, - /* 0x25240 */ - { 11054, 0x1000 }, { 11055, 0x0000 }, { 11055, 0x0000 }, { 11055, 0x0000 }, - /* 0x25400 */ - { 11055, 0x0000 }, { 11055, 0x0000 }, { 11055, 0x4000 }, { 11056, 0x0000 }, - /* 0x25480 */ - { 11056, 0x4000 }, { 11057, 0x0000 }, { 11057, 0x0000 }, { 11057, 0x0000 }, - /* 0x254C0 */ - { 11057, 0x0000 }, { 11057, 0x0200 }, { 11058, 0x0000 }, { 11058, 0x0000 }, - /* 0x25500 */ - { 11058, 0x4000 }, { 11059, 0x0000 }, { 11059, 0x0000 }, { 11059, 0x0000 }, - /* 0x25580 */ - { 11059, 0x0000 }, { 11059, 0x0000 }, { 11059, 0x0080 }, { 11060, 0x0000 }, - /* 0x25740 */ - { 11060, 0x0000 }, { 11060, 0x0000 }, { 11060, 0x0000 }, { 11060, 0x0002 }, - /* 0x25780 */ - { 11061, 0x0000 }, { 11061, 0x0000 }, { 11061, 0x0200 }, { 11062, 0x0010 }, - /* 0x259C0 */ - { 11063, 0x0010 }, { 11064, 0x0010 }, { 11065, 0x0000 }, { 11065, 0x0000 }, - /* 0x25AC0 */ - { 11065, 0x0000 }, { 11065, 0x0000 }, { 11065, 0x0018 }, { 11067, 0x0002 }, - /* 0x25B80 */ - { 11068, 0x0000 }, { 11068, 0x0000 }, { 11068, 0x0000 }, { 11068, 0x0004 }, - /* 0x25C40 */ - { 11069, 0x0800 }, { 11070, 0x0000 }, { 11070, 0x0010 }, { 11071, 0x0000 }, - /* 0x25D80 */ - { 11071, 0x0000 }, { 11071, 0x0000 }, { 11071, 0x0002 }, { 11072, 0x0000 }, - /* 0x25E00 */ - { 11072, 0x0000 }, { 11072, 0x0000 }, { 11072, 0x4000 }, { 11073, 0x0000 }, - /* 0x25E40 */ - { 11073, 0x0000 }, { 11073, 0x0040 }, { 11074, 0x0024 }, { 11076, 0x0000 }, - /* 0x25EC0 */ - { 11076, 0x0004 }, { 11077, 0x0100 }, { 11078, 0x0100 }, { 11079, 0x0000 }, - /* 0x25F00 */ - { 11079, 0x0000 }, { 11079, 0x0000 }, { 11079, 0x0008 }, { 11080, 0x0000 }, - /* 0x25F40 */ - { 11080, 0x0000 }, { 11080, 0x1000 }, { 11081, 0x0000 }, { 11081, 0x0000 }, - /* 0x25FC0 */ - { 11081, 0x0000 }, { 11081, 0x0010 }, { 11082, 0x0001 }, { 11083, 0x0800 }, - /* 0x26000 */ - { 11084, 0x1000 }, { 11085, 0x0080 }, { 11086, 0x0000 }, { 11086, 0x0000 }, - /* 0x26040 */ - { 11086, 0x0000 }, { 11086, 0x0000 }, { 11086, 0x0001 }, { 11087, 0x0000 }, - /* 0x260C0 */ - { 11087, 0x0000 }, { 11087, 0x0000 }, { 11087, 0x2000 }, { 11088, 0x0000 }, - /* 0x26240 */ - { 11088, 0x0000 }, { 11088, 0x0000 }, { 11088, 0x0000 }, { 11088, 0x0001 }, - /* 0x26280 */ - { 11089, 0x0040 }, { 11090, 0x0000 }, { 11090, 0x0000 }, { 11090, 0x0000 }, - /* 0x26340 */ - { 11090, 0x1000 }, { 11091, 0x0000 }, { 11091, 0x0000 }, { 11091, 0x0000 }, - /* 0x26400 */ - { 11091, 0x0004 }, { 11092, 0x0000 }, { 11092, 0x0000 }, { 11092, 0x0000 }, - /* 0x26640 */ - { 11092, 0x0000 }, { 11092, 0x0000 }, { 11092, 0x0000 }, { 11092, 0x4000 }, - /* 0x26680 */ - { 11093, 0x0000 }, { 11093, 0x0000 }, { 11093, 0x0000 }, { 11093, 0x0001 }, - /* 0x26700 */ - { 11094, 0x0000 }, { 11094, 0x2000 }, { 11095, 0x0000 }, { 11095, 0x0000 }, - /* 0x268C0 */ - { 11095, 0x0000 }, { 11095, 0x2000 }, { 11096, 0x0400 }, { 11097, 0x0000 }, - /* 0x26940 */ - { 11097, 0x0000 }, { 11097, 0x0002 }, { 11098, 0x8000 }, { 11099, 0x0000 }, - /* 0x269C0 */ - { 11099, 0x0000 }, { 11099, 0x2000 }, { 11100, 0x0000 }, { 11100, 0x0000 }, - /* 0x26A00 */ - { 11100, 0x0000 }, { 11100, 0x4000 }, { 11101, 0x0000 }, { 11101, 0x0000 }, - /* 0x26A40 */ - { 11101, 0x0000 }, { 11101, 0x0100 }, { 11102, 0x0000 }, { 11102, 0x0000 }, - /* 0x26A80 */ - { 11102, 0x1000 }, { 11103, 0x0000 }, { 11103, 0x0000 }, { 11103, 0x0080 }, - /* 0x26AC0 */ - { 11104, 0x0000 }, { 11104, 0x0000 }, { 11104, 0x0000 }, { 11104, 0x8000 }, - /* 0x26C00 */ - { 11105, 0x0000 }, { 11105, 0x0000 }, { 11105, 0x0200 }, { 11106, 0x0000 }, - /* 0x26C40 */ - { 11106, 0x0000 }, { 11106, 0x0000 }, { 11106, 0x0000 }, { 11106, 0x0008 }, - /* 0x26CC0 */ - { 11107, 0x0000 }, { 11107, 0x2000 }, { 11108, 0x0000 }, { 11108, 0x0000 }, - /* 0x26E40 */ - { 11108, 0x0001 }, { 11109, 0x0000 }, { 11109, 0x0020 }, { 11110, 0x0000 }, - /* 0x26F80 */ - { 11110, 0x0000 }, { 11110, 0x0010 }, { 11111, 0x0000 }, { 11111, 0x0000 }, - /* 0x26FC0 */ - { 11111, 0x0000 }, { 11111, 0x0000 }, { 11111, 0x0000 }, { 11111, 0x01c0 }, - /* 0x270C0 */ - { 11114, 0x0000 }, { 11114, 0x0000 }, { 11114, 0x0000 }, { 11114, 0x0010 }, - /* 0x27100 */ - { 11115, 0x2000 }, { 11116, 0x0000 }, { 11116, 0x0000 }, { 11116, 0x0200 }, - /* 0x273C0 */ - { 11117, 0x0000 }, { 11117, 0x0c00 }, { 11119, 0x0000 }, { 11119, 0x4000 }, - /* 0x27400 */ - { 11120, 0x0000 }, { 11120, 0x0001 }, { 11121, 0x0000 }, { 11121, 0x0000 }, - /* 0x27440 */ - { 11121, 0x0200 }, { 11122, 0x0000 }, { 11122, 0x0000 }, { 11122, 0x0000 }, - /* 0x27600 */ - { 11122, 0x0000 }, { 11122, 0x0030 }, { 11124, 0x0000 }, { 11124, 0x0002 }, - /* 0x27680 */ - { 11125, 0x0010 }, { 11126, 0x0008 }, { 11127, 0x0000 }, { 11127, 0x0000 }, - /* 0x27700 */ - { 11127, 0x4000 }, { 11128, 0x0000 }, { 11128, 0x0008 }, { 11129, 0x0000 }, - /* 0x27740 */ - { 11129, 0x0000 }, { 11129, 0x0004 }, { 11130, 0x0000 }, { 11130, 0x0000 }, - /* 0x27980 */ - { 11130, 0x0020 }, { 11131, 0x0000 }, { 11131, 0x0000 }, { 11131, 0x0000 }, - /* 0x27A80 */ - { 11131, 0x0010 }, { 11132, 0x0000 }, { 11132, 0x0000 }, { 11132, 0x0000 }, - /* 0x27B80 */ - { 11132, 0x0000 }, { 11132, 0x0000 }, { 11132, 0x0000 }, { 11132, 0x4008 }, - /* 0x27BC0 */ - { 11134, 0x0080 }, { 11135, 0x0000 }, { 11135, 0x0000 }, { 11135, 0x0000 }, - /* 0x27C80 */ - { 11135, 0x0000 }, { 11135, 0x0000 }, { 11135, 0x0000 }, { 11135, 0x0100 }, - /* 0x27D80 */ - { 11136, 0x0000 }, { 11136, 0x0000 }, { 11136, 0x0001 }, { 11137, 0x0000 }, - /* 0x27E00 */ - { 11137, 0x0000 }, { 11137, 0x0001 }, { 11138, 0x0000 }, { 11138, 0x0000 }, - /* 0x27F80 */ - { 11138, 0x0000 }, { 11138, 0x0000 }, { 11138, 0x0000 }, { 11138, 0x0080 }, - /* 0x28080 */ - { 11139, 0x0400 }, { 11140, 0x0000 }, { 11140, 0x0000 }, { 11140, 0x0800 }, - /* 0x28240 */ - { 11141, 0x0000 }, { 11141, 0x0000 }, { 11141, 0x0000 }, { 11141, 0x0080 }, - /* 0x28280 */ - { 11142, 0x0004 }, { 11143, 0x0000 }, { 11143, 0x0000 }, { 11143, 0x0000 }, - /* 0x282C0 */ - { 11143, 0x0000 }, { 11143, 0x0000 }, { 11143, 0x0000 }, { 11143, 0x0008 }, - /* 0x283C0 */ - { 11144, 0x2000 }, { 11145, 0x0000 }, { 11145, 0x0000 }, { 11145, 0x0000 }, - /* 0x28400 */ - { 11145, 0x1000 }, { 11146, 0x0000 }, { 11146, 0x0000 }, { 11146, 0x0000 }, - /* 0x28440 */ - { 11146, 0x0000 }, { 11146, 0x0020 }, { 11147, 0x0000 }, { 11147, 0x0000 }, - /* 0x28540 */ - { 11147, 0x0000 }, { 11147, 0x0000 }, { 11147, 0x0800 }, { 11148, 0x0000 }, - /* 0x285C0 */ - { 11148, 0x0300 }, { 11150, 0x0000 }, { 11150, 0x0000 }, { 11150, 0x0000 }, - /* 0x286C0 */ - { 11150, 0x0000 }, { 11150, 0x0080 }, { 11151, 0x0000 }, { 11151, 0x0400 }, - /* 0x28940 */ - { 11152, 0x0240 }, { 11154, 0x0000 }, { 11154, 0x0800 }, { 11155, 0x0000 }, - /* 0x28980 */ - { 11155, 0x0180 }, { 11157, 0x0000 }, { 11157, 0x0000 }, { 11157, 0x0c00 }, - /* 0x28A00 */ - { 11159, 0x0000 }, { 11159, 0x4000 }, { 11160, 0x0200 }, { 11161, 0x0000 }, - /* 0x28A40 */ - { 11161, 0x0008 }, { 11162, 0x0000 }, { 11162, 0x0000 }, { 11162, 0x0002 }, - /* 0x28A80 */ - { 11163, 0x0000 }, { 11163, 0x0200 }, { 11164, 0x0000 }, { 11164, 0x0000 }, - /* 0x28AC0 */ - { 11164, 0x2000 }, { 11165, 0x2000 }, { 11166, 0x0010 }, { 11167, 0x0000 }, - /* 0x28BC0 */ - { 11167, 0x0002 }, { 11168, 0x0000 }, { 11168, 0x8000 }, { 11169, 0x0000 }, - /* 0x28D00 */ - { 11169, 0x0000 }, { 11169, 0x0001 }, { 11170, 0x0000 }, { 11170, 0x0000 }, - /* 0x28D40 */ - { 11170, 0x0000 }, { 11170, 0x0000 }, { 11170, 0x0000 }, { 11170, 0x0002 }, - /* 0x28DC0 */ - { 11171, 0x0000 }, { 11171, 0x0000 }, { 11171, 0x0000 }, { 11171, 0x0800 }, - /* 0x28E00 */ - { 11172, 0x0000 }, { 11172, 0x8000 }, { 11173, 0x0000 }, { 11173, 0x0040 }, - /* 0x28E80 */ - { 11174, 0x0200 }, { 11175, 0x0000 }, { 11175, 0x0000 }, { 11175, 0x0000 }, - /* 0x28EC0 */ - { 11175, 0x0000 }, { 11175, 0x0000 }, { 11175, 0x0800 }, { 11176, 0x0000 }, - /* 0x28F00 */ - { 11176, 0x0000 }, { 11176, 0x0000 }, { 11176, 0x0000 }, { 11176, 0x0004 }, - /* 0x28FC0 */ - { 11177, 0x0000 }, { 11177, 0x0000 }, { 11177, 0x0000 }, { 11177, 0x0100 }, - /* 0x29280 */ - { 11178, 0x0000 }, { 11178, 0x0000 }, { 11178, 0x0001 }, { 11179, 0x0002 }, - /* 0x29480 */ - { 11180, 0x0000 }, { 11180, 0x0001 }, { 11181, 0x0000 }, { 11181, 0x0000 }, - /* 0x295C0 */ - { 11181, 0x8000 }, { 11182, 0x0000 }, { 11182, 0x0000 }, { 11182, 0x0000 }, - /* 0x29640 */ - { 11182, 0x0000 }, { 11182, 0x0000 }, { 11182, 0x0000 }, { 11182, 0x8000 }, - /* 0x296C0 */ - { 11183, 0x0000 }, { 11183, 0x0000 }, { 11183, 0x0000 }, { 11183, 0x0001 }, - /* 0x29700 */ - { 11184, 0x0000 }, { 11184, 0x0200 }, { 11185, 0x0000 }, { 11185, 0x0000 }, - /* 0x29740 */ - { 11185, 0x0000 }, { 11185, 0x0001 }, { 11186, 0x0000 }, { 11186, 0x0000 }, - /* 0x298C0 */ - { 11186, 0x0040 }, { 11187, 0x0000 }, { 11187, 0x0000 }, { 11187, 0x0000 }, - /* 0x29A40 */ - { 11187, 0x0000 }, { 11187, 0x0000 }, { 11187, 0x0000 }, { 11187, 0x0004 }, - /* 0x29DC0 */ - { 11188, 0x0000 }, { 11188, 0x0800 }, { 11189, 0x0000 }, { 11189, 0x0000 }, - /* 0x29E00 */ - { 11189, 0x0000 }, { 11189, 0x0020 }, { 11190, 0x0000 }, { 11190, 0x2000 }, - /* 0x29E40 */ - { 11191, 0x0200 }, { 11192, 0x0000 }, { 11192, 0x0000 }, { 11192, 0x0000 }, - /* 0x29E80 */ - { 11192, 0x0400 }, { 11193, 0x0000 }, { 11193, 0x0000 }, { 11193, 0x0000 }, - /* 0x29EC0 */ - { 11193, 0x0010 }, { 11194, 0x0800 }, { 11195, 0x0200 }, { 11196, 0x0000 }, - /* 0x29FC0 */ - { 11196, 0x4000 }, { 11197, 0x0000 }, { 11197, 0x0000 }, { 11197, 0x0000 }, - /* 0x2A000 */ - { 11197, 0x0000 }, { 11197, 0x0400 }, { 11198, 0x8000 }, { 11199, 0x0000 }, - /* 0x2A080 */ - { 11199, 0x0004 }, { 11200, 0x0000 }, { 11200, 0x0000 }, { 11200, 0x0000 }, - /* 0x2A0C0 */ - { 11200, 0x0000 }, { 11200, 0x0000 }, { 11200, 0x0000 }, { 11200, 0x0200 }, - /* 0x2A180 */ - { 11201, 0x0000 }, { 11201, 0x0001 }, { 11202, 0x0000 }, { 11202, 0x0000 }, - /* 0x2A380 */ - { 11202, 0x1000 }, { 11203, 0x0000 }, { 11203, 0x0000 }, { 11203, 0x0000 }, - /* 0x2A400 */ - { 11203, 0x0000 }, { 11203, 0x0000 }, { 11203, 0x0000 }, { 11203, 0x0080 }, - /* 0x2A5C0 */ - { 11204, 0x0000 }, { 11204, 0x0000 }, { 11204, 0x0000 }, { 11204, 0x0002 }, - /* 0x2A600 */ - { 11205, 0x0004 }, { 11206, 0x0400 }, { 11207, 0x0000 }, { 11207, 0x0000 }, - /* 0x2A680 */ - { 11207, 0x0000 }, { 11207, 0x0000 }, { 11207, 0x0000 }, { 11207, 0x0004 }, -}; - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static ucs4_t jisx0213_to_ucs4 (unsigned int row, unsigned int col) -{ - ucs4_t val; - - if (row >= 0x121 && row <= 0x17e) - row -= 289; - else if (row == 0x221) - row -= 451; - else if (row >= 0x223 && row <= 0x225) - row -= 452; - else if (row == 0x228) - row -= 454; - else if (row >= 0x22c && row <= 0x22f) - row -= 457; - else if (row >= 0x26e && row <= 0x27e) - row -= 519; - else - return 0x0000; - - if (col >= 0x21 && col <= 0x7e) - col -= 0x21; - else - return 0x0000; - - val = jisx0213_to_ucs_main[row * 94 + col]; - val = jisx0213_to_ucs_pagestart[val >> 8] + (val & 0xff); - if (val == 0xfffd) - val = 0x0000; - return val; -} - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned short ucs4_to_jisx0213 (ucs4_t ucs) -{ - if (ucs < (sizeof(jisx0213_from_ucs_level1)/sizeof(jisx0213_from_ucs_level1[0])) << 6) { - int index1 = jisx0213_from_ucs_level1[ucs >> 6]; - if (index1 >= 0) { - const Summary16 *summary = &jisx0213_from_ucs_level2_2indx[((index1 << 6) + (ucs & 0x3f)) >> 4]; - unsigned short used = summary->used; - unsigned int i = ucs & 0x0f; - if (used & ((unsigned short) 1 << i)) { - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - return jisx0213_from_ucs_level2_data[summary->indx + used]; - }; - }; - } - return 0x0000; -} - -#endif /* _JISX0213_H */ diff --git a/jni/parted/libiconv/lib/johab.h b/jni/parted/libiconv/lib/johab.h deleted file mode 100755 index 6ac624d..0000000 --- a/jni/parted/libiconv/lib/johab.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2007, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JOHAB - */ - -/* - Conversion between JOHAB codes (s1,s2) and KSX1001 codes (c1,c2): - Example. (s1,s2) = 0xD931, (c1,c2) = 0x2121. - (s1,s2) = 0xDEF1, (c1,c2) = 0x2C71. - (s1,s2) = 0xE031, (c1,c2) = 0x4A21. - (s1,s2) = 0xF9FE, (c1,c2) = 0x7D7E. - 0xD9 <= s1 <= 0xDE || 0xE0 <= s1 <= 0xF9, - 0x31 <= s2 <= 0x7E || 0x91 <= s2 <= 0xFE, - 0x21 <= c1 <= 0x2C || 0x4A <= c1 <= 0x7D, - 0x21 <= c2 <= 0x7E. - Invariant: - 94*(s1 < 0xE0 ? 2*s1-0x1B2 : 2*s1-0x197) + (s2 < 0x91 ? s2-0x31 : s2-0x43) - = 94*(c1-0x21)+(c2-0x21) - Conversion (s1,s2) -> (c1,c2): - t1 := (s1 < 0xE0 ? 2*s1-0x1B2 : 2*s1-0x197) - t2 := (s2 < 0x91 ? s2-0x31 : s2-0x43) - c1 := t1 + (t2 < 0x5E ? 0 : 1) + 0x21 - c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21 - Conversion (c1,c2) -> (s1,s2): - t := (c1 < 0x4A ? (c1-0x21+0x1B2) : (c1-0x21+0x197)) - s1 := t >> 1 - t2 := (t & 1) * 0x5E + (c2 - 0x21) - s2 := (t2 < 0x4E ? t2+0x31 : t2+0x43) - */ - -static int -johab_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - if (c == 0x5c) - *pwc = (ucs4_t) 0x20a9; - else - *pwc = (ucs4_t) c; - return 1; - } else if (c < 0xd8) { - return johab_hangul_mbtowc(conv,pwc,s,n); - } else { - unsigned char s1, s2; - s1 = c; - if ((s1 >= 0xd9 && s1 <= 0xde) || (s1 >= 0xe0 && s1 <= 0xf9)) { - if (n < 2) - return RET_TOOFEW(0); - s2 = s[1]; - if ((s2 >= 0x31 && s2 <= 0x7e) || (s2 >= 0x91 && s2 <= 0xfe)) { - /* In KSC 5601, now KS X 1001, the region s1 = 0xDA, 0xA1 <= s2 <= 0xD3 - contains the 51 Jamo (Hangul letters). But in the Johab encoding, - they have been moved to the Hangul section, see - johab_hangul_page31. */ - if (!(s1 == 0xda && (s2 >= 0xa1 && s2 <= 0xd3))) { - unsigned char t1 = (s1 < 0xe0 ? 2*(s1-0xd9) : 2*s1-0x197); - unsigned char t2 = (s2 < 0x91 ? s2-0x31 : s2-0x43); - unsigned char buf[2]; - buf[0] = t1 + (t2 < 0x5e ? 0 : 1) + 0x21; - buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21; - return ksc5601_mbtowc(conv,pwc,buf,2); - } - } - } - return RET_ILSEQ; - } -} - -static int -johab_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Try ASCII variation. */ - if (wc < 0x0080 && wc != 0x005c) { - *r = wc; - return 1; - } - if (wc == 0x20a9) { - *r = 0x5c; - return 1; - } - - /* Try JOHAB Hangul table before KSC5601 table, because the KSC5601 table - contains some (2350 out of 11172) Hangul syllables (rows 0x30XX..0x48XX), - and we want the search to return the JOHAB Hangul table entry. */ - - /* Try JOHAB Hangul. */ - ret = johab_hangul_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - r[0] = buf[0]; - r[1] = buf[1]; - return 2; - } - - /* Try KSC5601, now KS X 1001. */ - ret = ksc5601_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - unsigned char c1, c2; - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - c1 = buf[0]; - c2 = buf[1]; - if (((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x4a && c1 <= 0x7d)) - && (c2 >= 0x21 && c2 <= 0x7e)) { - unsigned int t = (c1 < 0x4A ? (c1-0x21+0x1B2) : (c1-0x21+0x197)); - unsigned char t2 = ((t & 1) ? 0x5e : 0) + (c2 - 0x21); - r[0] = t >> 1; - r[1] = (t2 < 0x4e ? t2+0x31 : t2+0x43); - return 2; - } - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/johab_hangul.h b/jni/parted/libiconv/lib/johab_hangul.h deleted file mode 100755 index 1a9bc73..0000000 --- a/jni/parted/libiconv/lib/johab_hangul.h +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * JOHAB Hangul - * - * Ken Lunde writes in his "CJKV Information Processing" book, p. 114: - * "Hangul can be composed of two or three jamo (some jamo are considered - * compound). Johab uses 19 initial jamo (consonants), 21 medial jamo (vowels) - * and 27 final jamo (consonants; 28 when you include the "fill" character - * for Hangul containing only two jamo). Multiplying these numbers results in - * 11172." - * - * Structure of the Johab encoding (see p. 181-184): - * bit 15 = 1 - * bit 14..10 = initial jamo, only 19+1 out of 32 possible values are used - * bit 9..5 = medial jamo, only 21+1 out of 32 possible values are used - * bit 4..0 = final jamo, only 27+1 out of 32 possible values are used - * - * Structure of the Unicode encoding: - * grep '^0x\([8-C]...\|D[0-7]..\)' unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT - * You see that all characters there are marked "HANGUL LETTER" or "HANGUL - * SYLLABLE". If you eliminate the "HANGUL LETTER"s, the table is sorted - * in ascending order according to Johab encoding and according to the Unicode - * encoding. Now look a little more carefully, and you see that the following - * formula holds: - * unicode == 0xAC00 - * + 21 * 28 * (jamo_initial_index[(johab >> 10) & 31] - 1) - * + 28 * (jamo_medial_index[(johab >> 5) & 31] - 1) - * + jamo_final_index[johab & 31] - * where the index tables are defined as below. - */ - -/* Tables mapping 5-bit groups to jamo letters. */ -/* Note that Jamo XX = UHC 0xA4A0+XX = Unicode 0x3130+XX */ -#define NONE 0xfd -#define FILL 0xff -static const unsigned char jamo_initial[32] = { - NONE, FILL, 0x01, 0x02, 0x04, 0x07, 0x08, 0x09, - 0x11, 0x12, 0x13, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, -}; -static const unsigned char jamo_medial[32] = { - NONE, NONE, FILL, 0x1f, 0x20, 0x21, 0x22, 0x23, - NONE, NONE, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - NONE, NONE, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - NONE, NONE, 0x30, 0x31, 0x32, 0x33, NONE, NONE, -}; -static const unsigned char jamo_final[32] = { - NONE, FILL, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, NONE, 0x12, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, NONE, NONE, -}; -/* Same as jamo_final, except that it excludes characters already - contained in jamo_initial. 11 characters instead of 27. */ -static const unsigned char jamo_final_notinitial[32] = { - NONE, NONE, NONE, NONE, 0x03, NONE, 0x05, 0x06, - NONE, NONE, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, NONE, NONE, NONE, 0x14, NONE, NONE, NONE, - NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, -}; - -/* Tables mapping 5-bit groups to packed indices. */ -#define none -1 -#define fill 0 -static const signed char jamo_initial_index[32] = { - none, fill, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, none, none, none, - none, none, none, none, none, none, none, none, -}; -static const signed char jamo_medial_index[32] = { - none, none, fill, 0x01, 0x02, 0x03, 0x04, 0x05, - none, none, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, - none, none, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - none, none, 0x12, 0x13, 0x14, 0x15, none, none, -}; -static const signed char jamo_final_index[32] = { - none, fill, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, none, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, none, none, -}; - -static int -johab_hangul_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x84 && c1 <= 0xd3)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x41 && c2 < 0x7f) || (c2 >= 0x81 && c2 < 0xff)) { - unsigned int johab = (c1 << 8) | c2; - unsigned int bitspart1 = (johab >> 10) & 31; - unsigned int bitspart2 = (johab >> 5) & 31; - unsigned int bitspart3 = johab & 31; - int index1 = jamo_initial_index[bitspart1]; - int index2 = jamo_medial_index[bitspart2]; - int index3 = jamo_final_index[bitspart3]; - /* Exclude "none" values. */ - if (index1 >= 0 && index2 >= 0 && index3 >= 0) { - /* Deal with "fill" values in initial or medial position. */ - if (index1 == fill) { - if (index2 == fill) { - unsigned char jamo3 = jamo_final_notinitial[bitspart3]; - if (jamo3 != NONE) { - *pwc = (ucs4_t) 0x3130 + jamo3; - return 2; - } - } else if (index3 == fill) { - unsigned char jamo2 = jamo_medial[bitspart2]; - if (jamo2 != NONE && jamo2 != FILL) { - *pwc = (ucs4_t) 0x3130 + jamo2; - return 2; - } - } - /* Syllables composed only of medial and final don't exist. */ - } else if (index2 == fill) { - if (index3 == fill) { - unsigned char jamo1 = jamo_initial[bitspart1]; - if (jamo1 != NONE && jamo1 != FILL) { - *pwc = (ucs4_t) 0x3130 + jamo1; - return 2; - } - } - /* Syllables composed only of initial and final don't exist. */ - } else { - /* index1 and index2 are not fill, but index3 may be fill. */ - /* Nothing more to exclude. All 11172 code points are valid. */ - *pwc = 0xac00 + ((index1 - 1) * 21 + (index2 - 1)) * 28 + index3; - return 2; - } - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -/* 51 Jamo: 19 initial, 21 medial, 11 final not initial. */ -static const unsigned short johab_hangul_page31[51] = { - 0x8841, 0x8c41, 0x8444, 0x9041, 0x8446, 0x8447, 0x9441, /*0x30-0x37*/ - 0x9841, 0x9c41, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, /*0x38-0x3f*/ - 0x8450, 0xa041, 0xa441, 0xa841, 0x8454, 0xac41, 0xb041, 0xb441, /*0x40-0x47*/ - 0xb841, 0xbc41, 0xc041, 0xc441, 0xc841, 0xcc41, 0xd041, 0x8461, /*0x48-0x4f*/ - 0x8481, 0x84a1, 0x84c1, 0x84e1, 0x8541, 0x8561, 0x8581, 0x85a1, /*0x50-0x57*/ - 0x85c1, 0x85e1, 0x8641, 0x8661, 0x8681, 0x86a1, 0x86c1, 0x86e1, /*0x58-0x5f*/ - 0x8741, 0x8761, 0x8781, 0x87a1, /*0x60-0x67*/ -}; - -/* Tables mapping packed indices to 5-bit groups. */ -/* index1+1 = jamo_initial_index[bitspart1] <==> - bitspart1 = jamo_initial_index_inverse[index1] */ -static const char jamo_initial_index_inverse[19] = { - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, -}; -/* index2+1 = jamo_medial_index[bitspart2] <==> - bitspart2 = jamo_medial_index_inverse[index2] */ -static const char jamo_medial_index_inverse[21] = { - 0x03, 0x04, 0x05, 0x06, 0x07, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x1a, 0x1b, 0x1c, 0x1d, -}; -/* index3 = jamo_final_index[bitspart3] <==> - bitspart3 = jamo_final_index_inverse[index3] */ -static const char jamo_final_index_inverse[28] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, -}; - -static int -johab_hangul_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - if (wc >= 0x3131 && wc < 0x3164) { - unsigned short c = johab_hangul_page31[wc-0x3131]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } else if (wc >= 0xac00 && wc < 0xd7a4) { - unsigned int index1; - unsigned int index2; - unsigned int index3; - unsigned short c; - unsigned int tmp = wc - 0xac00; - index3 = tmp % 28; tmp = tmp / 28; - index2 = tmp % 21; tmp = tmp / 21; - index1 = tmp; - c = (((((1 << 5) - | jamo_initial_index_inverse[index1]) << 5) - | jamo_medial_index_inverse[index2]) << 5) - | jamo_final_index_inverse[index3]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} - -/* - * Decomposition of JOHAB Hangul in one to three Johab Jamo elements. - */ - -/* Decompose wc into r[0..2], and return the number of resulting Jamo elements. - Return RET_ILUNI if decomposition is not possible. */ - -static int johab_hangul_decompose (conv_t conv, ucs4_t* r, ucs4_t wc) -{ - unsigned char buf[2]; - int ret = johab_hangul_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - unsigned int hangul = (buf[0] << 8) | buf[1]; - unsigned char jamo1 = jamo_initial[(hangul >> 10) & 31]; - unsigned char jamo2 = jamo_medial[(hangul >> 5) & 31]; - unsigned char jamo3 = jamo_final[hangul & 31]; - if ((hangul >> 15) != 1) abort(); - if (jamo1 != NONE && jamo2 != NONE && jamo3 != NONE) { - /* They are not all three == FILL because that would correspond to - johab = 0x8441, which doesn't exist. */ - ucs4_t* p = r; - if (jamo1 != FILL) - *p++ = 0x3130 + jamo1; - if (jamo2 != FILL) - *p++ = 0x3130 + jamo2; - if (jamo3 != FILL) - *p++ = 0x3130 + jamo3; - return p-r; - } - } - return RET_ILUNI; -} - -#undef fill -#undef none -#undef FILL -#undef NONE diff --git a/jni/parted/libiconv/lib/koi8_r.h b/jni/parted/libiconv/lib/koi8_r.h deleted file mode 100755 index a60c5fa..0000000 --- a/jni/parted/libiconv/lib/koi8_r.h +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * KOI8-R - */ - -/* Specification: RFC 1489 */ - -static const unsigned short koi8_r_2uni[128] = { - /* 0x80 */ - 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - /* 0x90 */ - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, - /* 0xa0 */ - 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, - /* 0xb0 */ - 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, - /* 0xc0 */ - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - /* 0xd0 */ - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - /* 0xe0 */ - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - /* 0xf0 */ - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, -}; - -static int -koi8_r_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) koi8_r_2uni[c-0x80]; - return 1; -} - -static const unsigned char koi8_r_page00[88] = { - 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ -}; -static const unsigned char koi8_r_page04[88] = { - 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ - 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ -}; -static const unsigned char koi8_r_page22[80] = { - 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char koi8_r_page23[8] = { - 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char koi8_r_page25[168] = { - 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, /* 0x50-0x57 */ - 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */ - 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, /* 0x60-0x67 */ - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -koi8_r_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00f8) - c = koi8_r_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0458) - c = koi8_r_page04[wc-0x0400]; - else if (wc >= 0x2218 && wc < 0x2268) - c = koi8_r_page22[wc-0x2218]; - else if (wc >= 0x2320 && wc < 0x2328) - c = koi8_r_page23[wc-0x2320]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = koi8_r_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/koi8_ru.h b/jni/parted/libiconv/lib/koi8_ru.h deleted file mode 100755 index ee0b033..0000000 --- a/jni/parted/libiconv/lib/koi8_ru.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * KOI8-RU - */ - -static const unsigned short koi8_ru_2uni[128] = { - /* 0x80 */ - 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - /* 0x90 */ - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, - /* 0xa0 */ - 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x045e, 0x255e, - /* 0xb0 */ - 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x040e, 0x00a9, - /* 0xc0 */ - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - /* 0xd0 */ - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - /* 0xe0 */ - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - /* 0xf0 */ - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, -}; - -static int -koi8_ru_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) koi8_ru_2uni[c-0x80]; - return 1; -} - -static const unsigned char koi8_ru_page00[88] = { - 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ -}; -static const unsigned char koi8_ru_page04[152] = { - 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, /* 0x08-0x0f */ - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ - 0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char koi8_ru_page22[80] = { - 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char koi8_ru_page23[8] = { - 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char koi8_ru_page25[168] = { - 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */ - 0xa9, 0xaa, 0xab, 0xac, 0x00, 0x00, 0xaf, 0xb0, /* 0x58-0x5f */ - 0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */ - 0xba, 0xbb, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -koi8_ru_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00f8) - c = koi8_ru_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0498) - c = koi8_ru_page04[wc-0x0400]; - else if (wc >= 0x2218 && wc < 0x2268) - c = koi8_ru_page22[wc-0x2218]; - else if (wc >= 0x2320 && wc < 0x2328) - c = koi8_ru_page23[wc-0x2320]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = koi8_ru_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/koi8_t.h b/jni/parted/libiconv/lib/koi8_t.h deleted file mode 100755 index a2e9bf5..0000000 --- a/jni/parted/libiconv/lib/koi8_t.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * KOI8-T - */ - -static const unsigned short koi8_t_2uni[128] = { - /* 0x80 */ - 0x049b, 0x0493, 0x201a, 0x0492, 0x201e, 0x2026, 0x2020, 0x2021, - 0xfffd, 0x2030, 0x04b3, 0x2039, 0x04b2, 0x04b7, 0x04b6, 0xfffd, - /* 0x90 */ - 0x049a, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0x2122, 0xfffd, 0x203a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xa0 */ - 0xfffd, 0x04ef, 0x04ee, 0x0451, 0x00a4, 0x04e3, 0x00a6, 0x00a7, - 0xfffd, 0xfffd, 0xfffd, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0xfffd, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x00b2, 0x0401, 0xfffd, 0x04e2, 0x00b6, 0x00b7, - 0xfffd, 0x2116, 0xfffd, 0x00bb, 0xfffd, 0xfffd, 0xfffd, 0x00a9, - /* 0xc0 */ - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - /* 0xd0 */ - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - /* 0xe0 */ - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - /* 0xf0 */ - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, -}; - -static int -koi8_t_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = koi8_t_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char koi8_t_page00[32] = { - 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xbf, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char koi8_t_page04[240] = { - 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ - 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x83, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x90, 0x80, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x8c, 0x8a, 0x00, 0x00, 0x8e, 0x8d, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0xb5, 0xa5, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xa1, /* 0xe8-0xef */ -}; -static const unsigned char koi8_t_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char koi8_t_page21[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; - -static int -koi8_t_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = koi8_t_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x04f0) - c = koi8_t_page04[wc-0x0400]; - else if (wc >= 0x2010 && wc < 0x2040) - c = koi8_t_page20[wc-0x2010]; - else if (wc >= 0x2110 && wc < 0x2128) - c = koi8_t_page21[wc-0x2110]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/koi8_u.h b/jni/parted/libiconv/lib/koi8_u.h deleted file mode 100755 index f035b30..0000000 --- a/jni/parted/libiconv/lib/koi8_u.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * KOI8-U - */ - -/* Specification: RFC 2319 */ - -static const unsigned short koi8_u_2uni[128] = { - /* 0x80 */ - 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, - 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, - /* 0x90 */ - 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, - 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, - /* 0xa0 */ - 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, - 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x0491, 0x255d, 0x255e, - /* 0xb0 */ - 0x255f, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, - 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x0490, 0x256c, 0x00a9, - /* 0xc0 */ - 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, - 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, - /* 0xd0 */ - 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, - 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, - /* 0xe0 */ - 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, - 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, - /* 0xf0 */ - 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, - 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a, -}; - -static int -koi8_u_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) koi8_u_2uni[c-0x80]; - return 1; -} - -static const unsigned char koi8_u_page00[88] = { - 0x9a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x9c, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x9e, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0xf0-0xf7 */ -}; -static const unsigned char koi8_u_page04[152] = { - 0x00, 0xb3, 0x00, 0x00, 0xb4, 0x00, 0xb6, 0xb7, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, /* 0x10-0x17 */ - 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, /* 0x18-0x1f */ - 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, /* 0x20-0x27 */ - 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, /* 0x28-0x2f */ - 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, /* 0x30-0x37 */ - 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* 0x38-0x3f */ - 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, /* 0x40-0x47 */ - 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, /* 0x48-0x4f */ - 0x00, 0xa3, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xbd, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char koi8_u_page22[80] = { - 0x00, 0x95, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x98, 0x99, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char koi8_u_page23[8] = { - 0x93, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char koi8_u_page25[168] = { - 0x80, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x83, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x85, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0xa0, 0xa1, 0xa2, 0x00, 0xa5, 0x00, 0x00, 0xa8, /* 0x50-0x57 */ - 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, 0xb0, /* 0x58-0x5f */ - 0xb1, 0xb2, 0x00, 0xb5, 0x00, 0x00, 0xb8, 0xb9, /* 0x60-0x67 */ - 0xba, 0xbb, 0xbc, 0x00, 0xbe, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x8b, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x8d, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x8f, 0x90, 0x91, 0x92, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ -}; - -static int -koi8_u_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00f8) - c = koi8_u_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x0498) - c = koi8_u_page04[wc-0x0400]; - else if (wc >= 0x2218 && wc < 0x2268) - c = koi8_u_page22[wc-0x2218]; - else if (wc >= 0x2320 && wc < 0x2328) - c = koi8_u_page23[wc-0x2320]; - else if (wc >= 0x2500 && wc < 0x25a8) - c = koi8_u_page25[wc-0x2500]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ksc5601.h b/jni/parted/libiconv/lib/ksc5601.h deleted file mode 100755 index 0a0b748..0000000 --- a/jni/parted/libiconv/lib/ksc5601.h +++ /dev/null @@ -1,3021 +0,0 @@ -/* - * Copyright (C) 1999-2007, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * KSC5601.1987-0, now KS X 1001:2002 - */ - -static const unsigned short ksc5601_2uni_page21[1115] = { - /* 0x21 */ - 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, - 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, - 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, - 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, - 0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033, - 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, 0x2220, - 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, 0x203b, - 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, - 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191, - 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, - 0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, - 0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2, - /* 0x22 */ - 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, 0x02d8, - 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, 0x02d0, - 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 0x25c0, - 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663, - 0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, - 0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, - 0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, - 0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, 0x2116, - 0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0x20ac, 0x00ae, 0x327e, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x23 */ - 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, - 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, - 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, - 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20, - 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, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40, - 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, 0xff5b, 0xff5c, 0xff5d, 0xffe3, - /* 0x24 */ - 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138, - 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, - 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, - 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, - 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, - 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, - 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, - 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170, - 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178, - 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, 0x3180, - 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 0x3188, - 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, - /* 0x25 */ - 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, - 0x2178, 0x2179, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x2160, - 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, - 0x2169, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, - 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, - 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, - 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, - 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x26 */ - 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, - 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, - 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, - 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, - 0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, - 0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, 0x252a, - 0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, 0x253a, - 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, 0x2546, - 0x2547, 0x2548, 0x2549, 0x254a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x27 */ - 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, - 0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, 0x339e, - 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, 0x338f, - 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, 0x33b1, - 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9, - 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc, - 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, - 0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, - 0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, - 0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x28 */ - 0x00c6, 0x00d0, 0x00aa, 0x0126, 0xfffd, 0x0132, 0xfffd, 0x013f, - 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, 0xfffd, - 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, - 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, - 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, - 0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, 0x24d3, - 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db, - 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3, - 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 0x2461, - 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, - 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, - 0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, - /* 0x29 */ - 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0140, - 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, 0x0149, - 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, 0x3207, - 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 0x320f, - 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217, - 0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, - 0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, - 0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, - 0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, - 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, - 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, 0x00b3, - 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084, - /* 0x2a */ - 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, - 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, - 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, - 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, - 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, - 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, - 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, - 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, - 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, - 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, - 0x3091, 0x3092, 0x3093, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x2b */ - 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, - 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, - 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, - 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, - 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, - 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, - 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, - 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, - 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, - 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, - 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0x2c */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 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, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 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, -}; -static const unsigned short ksc5601_2uni_page30[2350] = { - /* 0x30 */ - 0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10, - 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19, - 0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d, - 0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b, - 0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77, - 0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86, - 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d, - 0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf, - 0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4, - 0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7, - 0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5, - 0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06, - /* 0x31 */ - 0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, 0xad29, - 0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45, - 0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, 0xad6c, - 0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c, - 0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, 0xad90, - 0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8, - 0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9, - 0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d, - 0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, 0xae40, - 0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e, - 0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61, - 0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78, - /* 0x32 */ - 0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, 0xaebc, - 0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0, - 0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, 0xaef4, - 0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d, - 0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, 0xaf42, - 0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65, - 0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, 0xaf9c, - 0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb, - 0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, 0xaff1, - 0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014, - 0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, 0xb04c, - 0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059, - /* 0x33 */ - 0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, 0xb08f, - 0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1, - 0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, - 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5, - 0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, 0xb0e0, - 0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113, - 0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, 0xb125, - 0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140, - 0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, 0xb158, - 0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188, - 0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, 0xb19c, - 0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd, - /* 0x34 */ - 0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd, - 0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217, - 0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268, - 0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290, - 0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3, - 0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9, - 0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2, - 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, - 0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa, - 0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311, - 0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358, - 0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365, - /* 0x35 */ - 0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378, - 0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, 0xb394, - 0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb, - 0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db, - 0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c, - 0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, 0xb454, - 0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488, - 0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0, - 0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3, - 0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514, - 0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528, - 0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538, - /* 0x36 */ - 0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d, - 0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, 0xb5a0, - 0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3, - 0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, 0xb5cc, - 0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611, - 0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, 0xb668, - 0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4, - 0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, 0xb729, - 0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748, - 0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, 0xb771, - 0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d, - 0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797, - /* 0x37 */ - 0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac, - 0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, 0xb7ed, - 0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807, - 0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, 0xb81d, - 0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838, - 0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, 0xb860, - 0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d, - 0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, 0xb8c5, - 0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9, - 0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, 0xb918, - 0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951, - 0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969, - /* 0x38 */ - 0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985, - 0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0, - 0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc, - 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db, - 0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec, - 0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01, - 0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48, - 0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58, - 0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71, - 0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8, - 0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb, - 0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc, - /* 0x39 */ - 0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20, - 0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c, - 0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f, - 0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c, - 0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4, - 0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00, - 0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11, - 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d, - 0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30, - 0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45, - 0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88, - 0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97, - /* 0x3a */ - 0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, 0xbcb0, - 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4, - 0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, 0xbcf4, - 0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09, - 0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, 0xbd4c, - 0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84, - 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, 0xbd95, - 0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5, - 0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, 0xbe03, - 0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f, - 0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, 0xbe57, - 0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64, - /* 0x3b */ - 0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, 0xbe7b, - 0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90, - 0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, 0xbed7, - 0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08, - 0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, 0xbf41, - 0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5, - 0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, 0xc03c, - 0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091, - 0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, 0xc0ad, - 0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd, - 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, 0xc0d0, - 0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4, - /* 0x3c */ - 0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100, - 0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f, - 0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f, - 0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148, - 0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c, - 0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178, - 0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c, - 0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0, - 0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0, - 0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200, - 0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c, - 0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d, - /* 0x3d */ - 0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254, - 0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c, - 0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b, - 0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5, - 0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb, - 0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb, - 0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314, - 0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, 0xc345, - 0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c, - 0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc, - 0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5, - 0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430, - /* 0x3e */ - 0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c, - 0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, 0xc4bc, - 0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500, - 0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, 0xc52c, - 0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548, - 0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, 0xc555, - 0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564, - 0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, 0xc57d, - 0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595, - 0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, 0xc5b8, - 0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6, - 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce, - /* 0x3f */ - 0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5, - 0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, 0xc5fc, - 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607, - 0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, 0xc624, - 0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634, - 0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, 0xc648, - 0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660, - 0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, 0xc688, - 0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4, - 0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, 0xc6b9, - 0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0, - 0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8, - /* 0x40 */ - 0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705, - 0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721, - 0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c, - 0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751, - 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c, - 0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d, - 0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a, - 0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a, - 0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad, - 0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8, - 0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8, - 0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a, - /* 0x41 */ - 0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820, - 0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840, - 0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, 0xc874, - 0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887, - 0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8, - 0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7, - 0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900, - 0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918, - 0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, 0xc961, - 0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c, - 0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4, - 0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3, - /* 0x42 */ - 0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, 0xc9e2, - 0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8, - 0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, 0xca0d, - 0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c, - 0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, 0xca98, - 0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1, - 0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, 0xcb10, - 0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c, - 0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, 0xcb9c, - 0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10, - 0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, 0xcc29, - 0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b, - /* 0x43 */ - 0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, 0xcc54, - 0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68, - 0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, 0xcca9, - 0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4, - 0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, 0xccf0, - 0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b, - 0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, 0xcd64, - 0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95, - 0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, 0xcdc4, - 0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb, - 0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, 0xce21, - 0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35, - /* 0x44 */ - 0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69, - 0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85, - 0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1, - 0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5, - 0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9, - 0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15, - 0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31, - 0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67, - 0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c, - 0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8, - 0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011, - 0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c, - /* 0x45 */ - 0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060, - 0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4, - 0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0, - 0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4, - 0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef, - 0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, 0xd138, - 0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d, - 0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c, - 0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0, - 0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4, - 0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234, - 0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c, - /* 0x46 */ - 0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295, - 0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2bc, - 0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8, - 0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, 0xd300, - 0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314, - 0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, 0xd328, - 0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d, - 0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, 0xd38d, - 0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8, - 0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, 0xd3c5, - 0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed, - 0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401, - /* 0x47 */ - 0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d, - 0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, 0xd488, - 0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4, - 0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, 0xd4fd, - 0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d, - 0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, 0xd559, - 0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574, - 0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, 0xd589, - 0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8, - 0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, 0xd5f4, - 0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610, - 0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620, - /* 0x48 */ - 0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648, - 0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c, - 0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c, - 0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac, - 0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1, - 0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5, - 0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c, - 0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738, - 0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756, - 0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769, - 0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789, - 0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d, -}; -static const unsigned short ksc5601_2uni_page4a[4888] = { - /* 0x4a */ - 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 0x54e5, - 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c, - 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, - 0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, - 0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, - 0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, - 0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, 0x78f5, - 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, 0x9593, - 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, 0x8910, - 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 0x61be, - 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3, - 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, - /* 0x4b */ - 0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, 0x5808, - 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, 0x6c5f, - 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, 0x8221, - 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, 0x4ef7, - 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 0x69ea, - 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900, - 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, - 0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, - 0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, - 0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, - 0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, 0x5091, - 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2, - /* 0x4c */ - 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9, - 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, - 0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, - 0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, - 0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, - 0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, 0x5770, - 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, 0x666f, - 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, 0x74a5, - 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 0x7d93, - 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1, - 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, - 0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, - /* 0x4d */ - 0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, - 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, 0x53e9, - 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, 0x62f7, - 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 0x75fc, - 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6, - 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, - 0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, - 0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, - 0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, - 0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, 0x6050, - 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, 0x8ca2, - 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, - /* 0x4e */ - 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, - 0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, - 0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, - 0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, - 0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, 0x6d38, - 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, 0x639b, - 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, 0x62d0, - 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 0x50d1, - 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821, - 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, - 0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, - 0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe, - /* 0x4f */ - 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, 0x5bc7, - 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, 0x69cb, - 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 0x7396, - 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205, - 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, - 0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, - 0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, - 0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, - 0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, 0x52f8, - 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, 0x53a5, - 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, 0x8a6d, - 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, - /* 0x50 */ - 0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, - 0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, - 0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, - 0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, 0x9699, - 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, 0x747e, - 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, 0xf909, - 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 0x79bd, - 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca, - 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, - 0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, - 0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, - 0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3, - /* 0x51 */ - 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, 0x6c23, - 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 0x74a3, - 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a, - 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, - 0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, - 0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, - 0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, - 0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, 0xf913, - 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, 0xf919, - 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, 0xf91f, - 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 0x6960, - 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, - /* 0x52 */ - 0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, - 0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, - 0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, 0x606c, - 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, 0x5f29, - 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, 0xf935, - 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 0xf93c, - 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3, - 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, - 0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, - 0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, - 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, - 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336, - /* 0x53 */ - 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 0x65b7, - 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde, - 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, - 0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, - 0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, - 0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, - 0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, 0x7cd6, - 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, 0x5cb1, - 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, 0x8cb8, - 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 0x5230, - 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6, - 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, - /* 0x54 */ - 0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, - 0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, 0x8e48, - 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, 0x6bd2, - 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, 0x7e9b, - 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 0x711e, - 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd, - 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, - 0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, - 0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, - 0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, - 0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, 0x9127, - 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85, - /* 0x55 */ - 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de, - 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, - 0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, - 0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, - 0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, - 0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, 0x5fa0, - 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, 0x51c9, - 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, 0x8f1b, - 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 0x623e, - 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62, - 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, - 0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, - /* 0x56 */ - 0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, 0x934a, - 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, 0x6582, - 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, 0xf95f, - 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 0x8046, - 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7, - 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, - 0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, - 0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, - 0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, - 0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, 0x78ca, - 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, 0x5ed6, - 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc, - /* 0x57 */ - 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, - 0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, - 0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, - 0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, - 0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, 0x5f8b, - 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, 0x51cc, - 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, 0x5398, - 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 0x7281, - 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8, - 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, - 0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, - 0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c, - /* 0x58 */ - 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, 0x78e8, - 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, 0x83ab, - 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 0x633d, - 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513, - 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, - 0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, - 0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, - 0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, - 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, 0x964c, - 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, 0x840c, - 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, 0x7704, - 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, - /* 0x59 */ - 0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, - 0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, - 0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, - 0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, 0x7261, - 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, 0x8b28, - 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, 0x9da9, - 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 0x5999, - 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7, - 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, - 0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, - 0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, - 0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587, - /* 0x5a */ - 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, 0x52ff, - 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 0x5fae, - 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e, - 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, - 0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, - 0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, - 0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, - 0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, 0x99c1, - 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, 0x6591, - 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, 0x76fc, - 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 0x9812, - 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, - /* 0x5b */ - 0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, - 0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, - 0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, 0x80aa, - 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, 0x90a6, - 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, 0x62dc, - 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 0x88f4, - 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70, - 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, - 0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, - 0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, - 0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, - 0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656, - /* 0x5c */ - 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 0x8b8a, - 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19, - 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, - 0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, - 0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, - 0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, - 0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, 0x798f, - 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, 0x99a5, - 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, 0x5cf0, - 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 0x8702, - 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256, - 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, - /* 0x5d */ - 0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, - 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, 0x8151, - 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, 0x8cfb, - 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, 0x9ce7, - 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 0x5fff, - 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde, - 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, - 0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, - 0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, - 0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, - 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, 0x7891, - 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5, - /* 0x5e */ - 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb, - 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, - 0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, - 0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, - 0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, - 0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, 0x5beb, - 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, 0x659c, - 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, 0x6e23, - 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 0x7be9, - 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df, - 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, - 0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, - /* 0x5f */ - 0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, 0x759d, - 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, 0x715e, - 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, 0x8518, - 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 0x50cf, - 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38, - 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, - 0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, - 0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, - 0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, - 0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, 0x6055, - 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, 0x68f2, - 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, - /* 0x60 */ - 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, - 0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, - 0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, - 0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, - 0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, 0x766c, - 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, 0x861a, - 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, 0x9bae, - 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 0x859b, - 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2, - 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, - 0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, - 0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c, - /* 0x61 */ - 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, 0x6b72, - 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, 0x562f, - 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 0x6414, - 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2, - 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, - 0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, - 0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, - 0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, - 0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, 0x8a1f, - 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, 0x9396, - 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, 0x58fd, - 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, - /* 0x62 */ - 0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, - 0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, - 0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, - 0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, 0x8896, - 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, 0x92b9, - 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, 0x9ad3, - 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 0x6f5a, - 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa, - 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, - 0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, - 0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, - 0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27, - /* 0x63 */ - 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, 0x8936, - 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 0x6607, - 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4, - 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, - 0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, - 0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, - 0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, - 0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, 0x4f81, - 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, 0x71fc, - 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, 0x85ce, - 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 0x5ba4, - 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, - /* 0x64 */ - 0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, - 0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, - 0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, 0x8a1d, - 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, 0x5dbd, - 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, 0x9354, - 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 0x6848, - 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb, - 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, - 0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, - 0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, - 0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, 0x5384, - 0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d, - /* 0x65 */ - 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 0x591c, - 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31, - 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, - 0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, - 0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, - 0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, - 0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, 0x5704, - 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, 0x9b5a, - 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, 0x5830, - 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 0x513c, - 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88, - 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, - /* 0x66 */ - 0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, - 0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, 0xf988, - 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, 0xf98c, - 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, 0x5827, - 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 0x6350, - 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5, - 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, - 0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, - 0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, - 0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, - 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, - 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2, - /* 0x67 */ - 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449, - 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, - 0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, - 0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, - 0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, - 0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, 0xf9b4, - 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, 0x6fca, - 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, 0x88d4, - 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 0x9810, - 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da, - 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, - 0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, - /* 0x68 */ - 0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, 0x9f07, - 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, 0x761f, - 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, 0x7515, - 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 0x7aa9, - 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b, - 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, - 0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, - 0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, - 0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, - 0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, 0xf9bc, - 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, 0x66dc, - 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1, - /* 0x69 */ - 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, - 0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, - 0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, - 0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, - 0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, 0x84c9, - 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, 0x512a, - 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, 0x6182, - 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 0x79b9, - 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5, - 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, - 0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, - 0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553, - /* 0x6a */ - 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, 0x718a, - 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, 0x5a9b, - 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 0x6e72, - 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060, - 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, - 0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, - 0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, - 0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, - 0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, 0x5b7a, - 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, 0x6109, - 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, 0x6961, - 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, - /* 0x6b */ - 0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, - 0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, - 0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, - 0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, 0x80b2, - 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, 0x6f64, - 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, 0xf9d9, - 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 0xf9dc, - 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59, - 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, - 0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, - 0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, - 0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc, - /* 0x6c */ - 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, 0x5937, - 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 0xf9e1, - 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5, - 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, - 0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, - 0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, - 0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, - 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, 0x8335, - 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, 0xf9f3, - 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, 0x93b0, - 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 0xf9f5, - 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, - /* 0x6d */ - 0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, - 0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, - 0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, 0x78c1, - 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, 0x8cc7, - 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, 0x70b8, - 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 0x68e7, - 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a, - 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, - 0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, - 0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, - 0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, - 0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577, - /* 0x6e */ - 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 0x683d, - 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09, - 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, - 0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, - 0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, - 0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, - 0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, 0x6575, - 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, 0x7e3e, - 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, 0x8fea, - 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 0x5178, - 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb, - 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, - /* 0x6f */ - 0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, - 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, 0x9293, - 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, 0x622a, - 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, 0x5cbe, - 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 0x63a5, - 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448, - 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, - 0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, - 0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, - 0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, - 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, 0x914a, - 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756, - /* 0x70 */ - 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d, - 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, - 0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, - 0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, - 0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, - 0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, 0x722a, - 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, 0x7c97, - 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, 0x8abf, - 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 0x9ce5, - 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9, - 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, - 0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, - /* 0x71 */ - 0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, 0x5ea7, - 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, 0x80c4, - 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, 0x665d, - 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 0x70b7, - 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db, - 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, - 0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, - 0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, - 0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, - 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, 0x6c41, - 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, 0x75c7, - 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, - /* 0x72 */ - 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, - 0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, - 0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, - 0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, - 0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, 0x5875, - 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, 0x6d25, - 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, 0x771e, - 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 0x8a3a, - 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707, - 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, - 0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, - 0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f, - /* 0x73 */ - 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, 0x501f, - 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, 0x7b9a, - 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 0x7a84, - 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da, - 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, - 0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, - 0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, - 0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, - 0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, 0x6f32, - 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, 0x50b5, - 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, 0x83dc, - 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, - /* 0x74 */ - 0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, - 0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, - 0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, - 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, 0x85a6, - 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, 0x51f8, - 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, 0x8f4d, - 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 0x7c3d, - 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252, - 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, - 0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, - 0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, - 0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2, - /* 0x75 */ - 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, 0x790e, - 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 0x8c82, - 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7, - 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, - 0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, - 0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, - 0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, - 0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, 0x939a, - 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, 0x7b51, - 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, 0x6625, - 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 0x6c96, - 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, - /* 0x76 */ - 0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, - 0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, - 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, 0x55e4, - 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, 0x75d4, - 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, 0x81f4, - 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 0x98ed, - 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88, - 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, - 0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, - 0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, - 0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, - 0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17, - /* 0x77 */ - 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 0x7058, - 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d, - 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, - 0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, - 0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, - 0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, - 0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, 0x5806, - 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, 0x59ac, - 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, 0x5a46, - 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 0x722c, - 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742, - 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, - /* 0x78 */ - 0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, - 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, 0x5f6d, - 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, 0x7247, - 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, 0x576a, - 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 0x5ee2, - 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305, - 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, - 0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, - 0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, - 0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, - 0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, 0x74e2, - 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43, - /* 0x79 */ - 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c, - 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, - 0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, - 0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, - 0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, - 0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, 0x608d, - 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, 0x9591, - 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, 0x54b8, - 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 0x9677, - 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c, - 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, - 0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, - /* 0x7a */ - 0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, 0x595a, - 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, 0x89e3, - 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, 0x5016, - 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 0x73e6, - 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b, - 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, - 0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, - 0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, - 0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, - 0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, 0x5354, - 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, 0x83a2, - 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b, - /* 0x7b */ - 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, - 0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, - 0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, - 0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, - 0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, 0x6dcf, - 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, 0x7425, - 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, 0x82a6, - 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 0x93ac, - 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7, - 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, - 0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, - 0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575, - /* 0x7c */ - 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, 0x9774, - 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, 0x559a, - 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 0x6853, - 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b, - 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, - 0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, - 0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, - 0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, - 0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, 0x6fae, - 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, 0x8cc4, - 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, 0x5b5d, - 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, - /* 0x7d */ - 0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, - 0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, - 0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, - 0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, 0x8431, - 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, 0x7147, - 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, 0x8667, - 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 0x80f8, - 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07, - 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, - 0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, - 0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, - 0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70, -}; - -static int -ksc5601_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x21 && c1 <= 0x2c) || (c1 >= 0x30 && c1 <= 0x48) || (c1 >= 0x4a && c1 <= 0x7d)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if (c2 >= 0x21 && c2 < 0x7f) { - unsigned int i = 94 * (c1 - 0x21) + (c2 - 0x21); - unsigned short wc = 0xfffd; - if (i < 1410) { - if (i < 1115) - wc = ksc5601_2uni_page21[i]; - } else if (i < 3854) { - if (i < 3760) - wc = ksc5601_2uni_page30[i-1410]; - } else { - if (i < 8742) - wc = ksc5601_2uni_page4a[i-3854]; - } - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short ksc5601_2charset[8227] = { - 0x222e, 0x2234, 0x2157, 0x2127, 0x2823, 0x2129, 0x2267, 0x2146, - 0x213e, 0x2977, 0x2978, 0x2225, 0x2252, 0x2124, 0x222c, 0x2976, - 0x282c, 0x2879, 0x2876, 0x287a, 0x222f, 0x2821, 0x2822, 0x213f, - 0x282a, 0x282d, 0x292c, 0x2921, 0x2923, 0x2140, 0x292a, 0x292d, - 0x2922, 0x2824, 0x2924, 0x2925, 0x2826, 0x2926, 0x2927, 0x2828, - 0x2928, 0x2829, 0x2929, 0x2930, 0x282f, 0x292f, 0x282b, 0x292b, - 0x282e, 0x292e, 0x2227, 0x2230, 0x2228, 0x222b, 0x222a, 0x222d, - 0x2229, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, - 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d, 0x254e, 0x254f, - 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, - 0x2558, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, - 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, - 0x2570, 0x2571, 0x2572, 0x2573, 0x2574, 0x2575, 0x2576, 0x2577, - 0x2578, 0x2c27, 0x2c21, 0x2c22, 0x2c23, 0x2c24, 0x2c25, 0x2c26, - 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c, 0x2c2d, 0x2c2e, 0x2c2f, - 0x2c30, 0x2c31, 0x2c32, 0x2c33, 0x2c34, 0x2c35, 0x2c36, 0x2c37, - 0x2c38, 0x2c39, 0x2c3a, 0x2c3b, 0x2c3c, 0x2c3d, 0x2c3e, 0x2c3f, - 0x2c40, 0x2c41, 0x2c51, 0x2c52, 0x2c53, 0x2c54, 0x2c55, 0x2c56, - 0x2c58, 0x2c59, 0x2c5a, 0x2c5b, 0x2c5c, 0x2c5d, 0x2c5e, 0x2c5f, - 0x2c60, 0x2c61, 0x2c62, 0x2c63, 0x2c64, 0x2c65, 0x2c66, 0x2c67, - 0x2c68, 0x2c69, 0x2c6a, 0x2c6b, 0x2c6c, 0x2c6d, 0x2c6e, 0x2c6f, - 0x2c70, 0x2c71, 0x2c57, 0x212a, 0x212e, 0x212f, 0x2130, 0x2131, - 0x2253, 0x2254, 0x2125, 0x2126, 0x2236, 0x2147, 0x2148, 0x2158, - 0x2979, 0x297a, 0x297b, 0x297c, 0x297d, 0x297e, 0x2266, 0x2149, - 0x2235, 0x2724, 0x2260, 0x2265, 0x2262, 0x2759, 0x214a, 0x2877, - 0x2878, 0x287b, 0x287c, 0x287d, 0x287e, 0x2530, 0x2531, 0x2532, - 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x2521, - 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, - 0x252a, 0x2167, 0x2168, 0x2166, 0x2169, 0x216a, 0x2255, 0x2258, - 0x2256, 0x2259, 0x2257, 0x2221, 0x2222, 0x2223, 0x2153, 0x2224, - 0x2154, 0x2174, 0x2175, 0x2233, 0x2232, 0x216e, 0x2170, 0x2144, - 0x2150, 0x212b, 0x217c, 0x217d, 0x217b, 0x217a, 0x2172, 0x2173, - 0x2231, 0x2145, 0x2171, 0x212d, 0x216f, 0x2156, 0x2141, 0x2155, - 0x2142, 0x2143, 0x216c, 0x216d, 0x2178, 0x2179, 0x2176, 0x2177, - 0x2241, 0x2151, 0x2152, 0x2867, 0x2868, 0x2869, 0x286a, 0x286b, - 0x286c, 0x286d, 0x286e, 0x286f, 0x2870, 0x2871, 0x2872, 0x2873, - 0x2874, 0x2875, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x296c, - 0x296d, 0x296e, 0x296f, 0x2970, 0x2971, 0x2972, 0x2973, 0x2974, - 0x2975, 0x294d, 0x294e, 0x294f, 0x2950, 0x2951, 0x2952, 0x2953, - 0x2954, 0x2955, 0x2956, 0x2957, 0x2958, 0x2959, 0x295a, 0x295b, - 0x295c, 0x295d, 0x295e, 0x295f, 0x2960, 0x2961, 0x2962, 0x2963, - 0x2964, 0x2965, 0x2966, 0x284d, 0x284e, 0x284f, 0x2850, 0x2851, - 0x2852, 0x2853, 0x2854, 0x2855, 0x2856, 0x2857, 0x2858, 0x2859, - 0x285a, 0x285b, 0x285c, 0x285d, 0x285e, 0x285f, 0x2860, 0x2861, - 0x2862, 0x2863, 0x2864, 0x2865, 0x2866, 0x2621, 0x262c, 0x2622, - 0x262d, 0x2623, 0x2648, 0x2647, 0x262e, 0x2624, 0x2642, 0x2641, - 0x262f, 0x2626, 0x2646, 0x2645, 0x2631, 0x2625, 0x2644, 0x2643, - 0x2630, 0x2627, 0x263c, 0x2649, 0x264a, 0x2637, 0x264b, 0x264c, - 0x2632, 0x2629, 0x263e, 0x264d, 0x264e, 0x2639, 0x264f, 0x2650, - 0x2634, 0x2628, 0x2651, 0x2652, 0x2638, 0x263d, 0x2653, 0x2654, - 0x2633, 0x262a, 0x2655, 0x2656, 0x263a, 0x263f, 0x2657, 0x2658, - 0x2635, 0x262b, 0x2659, 0x265a, 0x263b, 0x265b, 0x265c, 0x2640, - 0x265d, 0x265e, 0x265f, 0x2660, 0x2661, 0x2662, 0x2663, 0x2664, - 0x2636, 0x2246, 0x2161, 0x2160, 0x2243, 0x2247, 0x2248, 0x224b, - 0x224a, 0x2249, 0x224c, 0x2163, 0x2162, 0x223a, 0x2239, 0x2165, - 0x2164, 0x2238, 0x2237, 0x215f, 0x215e, 0x2242, 0x215b, 0x215d, - 0x215c, 0x2244, 0x2245, 0x215a, 0x2159, 0x224f, 0x224e, 0x2250, - 0x2251, 0x214f, 0x214e, 0x223c, 0x223d, 0x2240, 0x223b, 0x223e, - 0x223f, 0x224d, 0x225b, 0x225c, 0x225d, 0x225a, 0x2121, 0x2122, - 0x2123, 0x2128, 0x2134, 0x2135, 0x2136, 0x2137, 0x2138, 0x2139, - 0x213a, 0x213b, 0x213c, 0x213d, 0x216b, 0x2132, 0x2133, 0x2a21, - 0x2a22, 0x2a23, 0x2a24, 0x2a25, 0x2a26, 0x2a27, 0x2a28, 0x2a29, - 0x2a2a, 0x2a2b, 0x2a2c, 0x2a2d, 0x2a2e, 0x2a2f, 0x2a30, 0x2a31, - 0x2a32, 0x2a33, 0x2a34, 0x2a35, 0x2a36, 0x2a37, 0x2a38, 0x2a39, - 0x2a3a, 0x2a3b, 0x2a3c, 0x2a3d, 0x2a3e, 0x2a3f, 0x2a40, 0x2a41, - 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48, 0x2a49, - 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50, 0x2a51, - 0x2a52, 0x2a53, 0x2a54, 0x2a55, 0x2a56, 0x2a57, 0x2a58, 0x2a59, - 0x2a5a, 0x2a5b, 0x2a5c, 0x2a5d, 0x2a5e, 0x2a5f, 0x2a60, 0x2a61, - 0x2a62, 0x2a63, 0x2a64, 0x2a65, 0x2a66, 0x2a67, 0x2a68, 0x2a69, - 0x2a6a, 0x2a6b, 0x2a6c, 0x2a6d, 0x2a6e, 0x2a6f, 0x2a70, 0x2a71, - 0x2a72, 0x2a73, 0x2b21, 0x2b22, 0x2b23, 0x2b24, 0x2b25, 0x2b26, - 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e, - 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b34, 0x2b35, 0x2b36, - 0x2b37, 0x2b38, 0x2b39, 0x2b3a, 0x2b3b, 0x2b3c, 0x2b3d, 0x2b3e, - 0x2b3f, 0x2b40, 0x2b41, 0x2b42, 0x2b43, 0x2b44, 0x2b45, 0x2b46, - 0x2b47, 0x2b48, 0x2b49, 0x2b4a, 0x2b4b, 0x2b4c, 0x2b4d, 0x2b4e, - 0x2b4f, 0x2b50, 0x2b51, 0x2b52, 0x2b53, 0x2b54, 0x2b55, 0x2b56, - 0x2b57, 0x2b58, 0x2b59, 0x2b5a, 0x2b5b, 0x2b5c, 0x2b5d, 0x2b5e, - 0x2b5f, 0x2b60, 0x2b61, 0x2b62, 0x2b63, 0x2b64, 0x2b65, 0x2b66, - 0x2b67, 0x2b68, 0x2b69, 0x2b6a, 0x2b6b, 0x2b6c, 0x2b6d, 0x2b6e, - 0x2b6f, 0x2b70, 0x2b71, 0x2b72, 0x2b73, 0x2b74, 0x2b75, 0x2b76, - 0x2421, 0x2422, 0x2423, 0x2424, 0x2425, 0x2426, 0x2427, 0x2428, - 0x2429, 0x242a, 0x242b, 0x242c, 0x242d, 0x242e, 0x242f, 0x2430, - 0x2431, 0x2432, 0x2433, 0x2434, 0x2435, 0x2436, 0x2437, 0x2438, - 0x2439, 0x243a, 0x243b, 0x243c, 0x243d, 0x243e, 0x243f, 0x2440, - 0x2441, 0x2442, 0x2443, 0x2444, 0x2445, 0x2446, 0x2447, 0x2448, - 0x2449, 0x244a, 0x244b, 0x244c, 0x244d, 0x244e, 0x244f, 0x2450, - 0x2451, 0x2452, 0x2453, 0x2454, 0x2455, 0x2456, 0x2457, 0x2458, - 0x2459, 0x245a, 0x245b, 0x245c, 0x245d, 0x245e, 0x245f, 0x2460, - 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, - 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, - 0x2471, 0x2472, 0x2473, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, - 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x2931, 0x2932, - 0x2933, 0x2934, 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, - 0x293b, 0x293c, 0x293d, 0x293e, 0x293f, 0x2940, 0x2941, 0x2942, - 0x2943, 0x2944, 0x2945, 0x2946, 0x2947, 0x2948, 0x2949, 0x294a, - 0x294b, 0x294c, 0x225f, 0x2831, 0x2832, 0x2833, 0x2834, 0x2835, - 0x2836, 0x2837, 0x2838, 0x2839, 0x283a, 0x283b, 0x283c, 0x283d, - 0x283e, 0x283f, 0x2840, 0x2841, 0x2842, 0x2843, 0x2844, 0x2845, - 0x2846, 0x2847, 0x2848, 0x2849, 0x284a, 0x284b, 0x284c, 0x2268, - 0x225e, 0x2749, 0x274a, 0x274b, 0x274c, 0x274d, 0x273a, 0x273b, - 0x275c, 0x275d, 0x275e, 0x2736, 0x2737, 0x2738, 0x2754, 0x2755, - 0x2756, 0x2757, 0x2758, 0x2721, 0x2722, 0x2723, 0x2725, 0x272b, - 0x272c, 0x272d, 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, - 0x2734, 0x2727, 0x2728, 0x2729, 0x272a, 0x273d, 0x273e, 0x2765, - 0x2766, 0x2767, 0x2768, 0x2761, 0x2762, 0x2763, 0x273f, 0x2740, - 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, - 0x274e, 0x274f, 0x2750, 0x2751, 0x2752, 0x2753, 0x275a, 0x275b, - 0x2263, 0x276c, 0x2726, 0x2760, 0x276f, 0x2261, 0x273c, 0x276d, - 0x2735, 0x2739, 0x276a, 0x276b, 0x275f, 0x2264, 0x2764, 0x276e, - 0x2769, 0x6c69, 0x6f4b, 0x7652, 0x5832, 0x6d5b, 0x5f32, 0x5f3e, - 0x793b, 0x5c74, 0x7564, 0x7326, 0x5d60, 0x6126, 0x4e78, 0x5c30, - 0x632a, 0x7169, 0x4d7a, 0x7c2f, 0x5321, 0x712b, 0x6751, 0x522c, - 0x4e79, 0x717d, 0x5e3f, 0x7b3a, 0x7939, 0x4e52, 0x632b, 0x6b60, - 0x4e7a, 0x4b77, 0x6525, 0x4a61, 0x544c, 0x6a61, 0x5c63, 0x5f2d, - 0x4b6b, 0x552f, 0x5675, 0x6578, 0x5e40, 0x6c23, 0x694d, 0x6a27, - 0x6976, 0x7b3b, 0x6769, 0x6f4c, 0x5066, 0x5e41, 0x642c, 0x584c, - 0x7971, 0x4e5f, 0x7a24, 0x6632, 0x7a7b, 0x7a3d, 0x4c48, 0x6f4d, - 0x5555, 0x5322, 0x6c51, 0x6427, 0x6c52, 0x7631, 0x4e7b, 0x5051, - 0x4b3f, 0x6d24, 0x6d28, 0x5e42, 0x7662, 0x6d5c, 0x5c75, 0x6039, - 0x544e, 0x7435, 0x535b, 0x5635, 0x6c24, 0x6466, 0x716a, 0x4b6c, - 0x4b40, 0x6c72, 0x506a, 0x7972, 0x6c25, 0x505f, 0x676a, 0x506b, - 0x5c51, 0x5b69, 0x7d4c, 0x5b57, 0x5a61, 0x5636, 0x635f, 0x5e43, - 0x5e44, 0x4a21, 0x6e6c, 0x5323, 0x6e37, 0x784f, 0x6a48, 0x6e38, - 0x712c, 0x7125, 0x694e, 0x793c, 0x6579, 0x6c6a, 0x5d56, 0x6d42, - 0x7825, 0x653a, 0x5b58, 0x4a22, 0x514d, 0x6e6d, 0x6c6b, 0x5e45, - 0x6360, 0x4a49, 0x7269, 0x554e, 0x7636, 0x4e42, 0x5647, 0x6334, - 0x712d, 0x6a62, 0x5742, 0x7327, 0x4d6a, 0x6b6e, 0x5932, 0x7d25, - 0x7655, 0x5562, 0x7835, 0x4c75, 0x7535, 0x642d, 0x676b, 0x7155, - 0x703b, 0x6935, 0x4c49, 0x7a55, 0x6154, 0x5756, 0x5c41, 0x5e46, - 0x7a6f, 0x6361, 0x6173, 0x5c76, 0x4e7c, 0x5b44, 0x7871, 0x5c64, - 0x656f, 0x5c31, 0x5556, 0x735a, 0x4b41, 0x5b43, 0x597a, 0x536e, - 0x7a38, 0x7d26, 0x6b6f, 0x7426, 0x4c4a, 0x7328, 0x735b, 0x5b27, - 0x7637, 0x4f66, 0x7072, 0x4b5a, 0x6752, 0x5743, 0x7670, 0x685e, - 0x6526, 0x6567, 0x4a23, 0x4c27, 0x6a49, 0x7836, 0x7a25, 0x712e, - 0x6f4e, 0x4b6d, 0x7630, 0x6f4f, 0x694f, 0x775e, 0x4e53, 0x5c77, - 0x5b28, 0x4b78, 0x5f21, 0x5d61, 0x754a, 0x6936, 0x676c, 0x6e6e, - 0x7370, 0x5f3f, 0x4c4b, 0x5041, 0x7452, 0x603a, 0x5f40, 0x4e60, - 0x5c52, 0x7d6a, 0x5676, 0x6a4a, 0x6869, 0x632c, 0x7350, 0x4a24, - 0x5b78, 0x5e47, 0x6b70, 0x7156, 0x6562, 0x4c4c, 0x4b7b, 0x6a63, - 0x5f41, 0x566d, 0x6950, 0x6e39, 0x5563, 0x5153, 0x6570, 0x6834, - 0x6b43, 0x6a2a, 0x7a7c, 0x7576, 0x703c, 0x7d54, 0x603b, 0x4e43, - 0x503a, 0x773a, 0x5873, 0x774d, 0x642e, 0x545f, 0x5067, 0x6c7d, - 0x522e, 0x6e6f, 0x5557, 0x6a64, 0x7822, 0x4d6b, 0x573f, 0x7b31, - 0x4d6c, 0x5c32, 0x506c, 0x4e7d, 0x6e70, 0x4c42, 0x506d, 0x6577, - 0x737c, 0x6e22, 0x5933, 0x5874, 0x6937, 0x4e2e, 0x5922, 0x5871, - 0x544f, 0x6527, 0x5552, 0x5629, 0x7422, 0x7157, 0x5558, 0x703d, - 0x5750, 0x5450, 0x574f, 0x6b6a, 0x7d6b, 0x5b6d, 0x7c45, 0x4b42, - 0x7d55, 0x7448, 0x686a, 0x7573, 0x795e, 0x536f, 0x6c53, 0x5d42, - 0x6f37, 0x6754, 0x4a4a, 0x597b, 0x7a7d, 0x562a, 0x7478, 0x7777, - 0x5c2c, 0x5757, 0x5f22, 0x4e3e, 0x5370, 0x7024, 0x616c, 0x4f67, - 0x734b, 0x6d29, 0x4a3e, 0x746f, 0x764e, 0x5e7b, 0x503b, 0x5537, - 0x6e71, 0x7428, 0x5c78, 0x4b27, 0x5a4e, 0x6066, 0x6d25, 0x6e72, - 0x5c79, 0x795c, 0x735c, 0x7872, 0x7479, 0x7c71, 0x503c, 0x5b79, - 0x5731, 0x4b7c, 0x7025, 0x4b7d, 0x5574, 0x4d6d, 0x4a25, 0x562b, - 0x5042, 0x703e, 0x523d, 0x4c24, 0x7a36, 0x4c4d, 0x5a7a, 0x764f, - 0x6938, 0x5875, 0x4c4e, 0x574d, 0x5451, 0x696d, 0x4a6b, 0x5962, - 0x7d32, 0x632d, 0x564c, 0x5934, 0x6127, 0x6e53, 0x5043, 0x7d33, - 0x5564, 0x4f68, 0x6d43, 0x5032, 0x4e7e, 0x5a28, 0x7850, 0x7d56, - 0x7851, 0x7852, 0x5c53, 0x5d62, 0x7b79, 0x5d41, 0x6335, 0x6d5d, - 0x4e44, 0x4b21, 0x5d63, 0x7c5d, 0x792f, 0x527b, 0x4f21, 0x6428, - 0x7436, 0x6c7e, 0x632e, 0x676d, 0x7d41, 0x5a62, 0x5833, 0x5d64, - 0x706f, 0x7671, 0x7a70, 0x5175, 0x5a4f, 0x5c54, 0x5c26, 0x6f3f, - 0x4e4f, 0x6059, 0x5956, 0x6c54, 0x6a4b, 0x4a3f, 0x5530, 0x4f69, - 0x716d, 0x4c4f, 0x6478, 0x646d, 0x5758, 0x7d27, 0x6a2b, 0x7632, - 0x4f70, 0x793d, 0x6674, 0x4b5b, 0x7351, 0x6951, 0x7329, 0x5060, - 0x6952, 0x5a63, 0x6252, 0x7622, 0x6174, 0x5a64, 0x6755, 0x753f, - 0x4f22, 0x4d2f, 0x4f23, 0x4d30, 0x717e, 0x5023, 0x612f, 0x7823, - 0x4a26, 0x773b, 0x726a, 0x5e48, 0x6953, 0x5e49, 0x7d5e, 0x4a40, - 0x796a, 0x514e, 0x6e54, 0x5452, 0x5923, 0x7d28, 0x5759, 0x774e, - 0x7a3e, 0x4f56, 0x5770, 0x6b61, 0x7845, 0x5c7a, 0x5d43, 0x795f, - 0x676f, 0x7d65, 0x7623, 0x597c, 0x7d29, 0x676e, 0x5565, 0x6f50, - 0x4d31, 0x7722, 0x7132, 0x7131, 0x4d32, 0x5a2b, 0x4a27, 0x6362, - 0x7b3c, 0x5924, 0x6e3a, 0x7853, 0x7b7a, 0x4f24, 0x5c7b, 0x7663, - 0x6d2a, 0x7221, 0x4e61, 0x7a26, 0x7960, 0x6c56, 0x646e, 0x7921, - 0x7b6f, 0x796b, 0x6e23, 0x6a2c, 0x4a28, 0x747a, 0x4d56, 0x7c76, - 0x7449, 0x7854, 0x7826, 0x5e4a, 0x7246, 0x575a, 0x5350, 0x5845, - 0x6a66, 0x735d, 0x645a, 0x7664, 0x7672, 0x5f42, 0x597d, 0x4c76, - 0x533a, 0x642f, 0x7961, 0x7026, 0x4b53, 0x603c, 0x744a, 0x547a, - 0x7d2a, 0x7962, 0x7437, 0x7d42, 0x7c30, 0x7d6c, 0x4a62, 0x7d3d, - 0x6a67, 0x5f43, 0x5152, 0x4e62, 0x5324, 0x7d2b, 0x5f60, 0x7247, - 0x6770, 0x506e, 0x732a, 0x5e4b, 0x7638, 0x6175, 0x7133, 0x7723, - 0x4a29, 0x4f25, 0x5f44, 0x6130, 0x703f, 0x7624, 0x6336, 0x7a46, - 0x506f, 0x7d6d, 0x5d44, 0x7c77, 0x663f, 0x5e2d, 0x7a3f, 0x6571, - 0x6d44, 0x5225, 0x7d6e, 0x7536, 0x6176, 0x5e4c, 0x7c5e, 0x6c57, - 0x4d5d, 0x5637, 0x4d33, 0x7855, 0x6558, 0x4f6a, 0x4f50, 0x6a4c, - 0x6a2e, 0x6a2d, 0x5371, 0x5325, 0x774f, 0x6e24, 0x5024, 0x7222, - 0x5070, 0x7223, 0x7778, 0x5033, 0x5b29, 0x533b, 0x4a6c, 0x7126, - 0x4b55, 0x7767, 0x4d5e, 0x7724, 0x7840, 0x535d, 0x4c50, 0x4f26, - 0x7673, 0x6177, 0x535c, 0x7a7e, 0x7a27, 0x6b59, 0x4f27, 0x6a2f, - 0x646f, 0x6939, 0x7158, 0x5858, 0x6072, 0x6634, 0x5c7c, 0x7371, - 0x6350, 0x727b, 0x5b46, 0x5071, 0x5072, 0x4f5c, 0x5351, 0x4c31, - 0x7758, 0x4b28, 0x6b3c, 0x643e, 0x745c, 0x5c42, 0x7027, 0x6640, - 0x4a6d, 0x686b, 0x6568, 0x5c43, 0x6d5e, 0x5372, 0x4c77, 0x4e54, - 0x672b, 0x4b43, 0x6131, 0x7732, 0x5373, 0x5352, 0x7540, 0x5f5d, - 0x6e73, 0x6771, 0x7d34, 0x7248, 0x7352, 0x6e74, 0x6253, 0x4c51, - 0x5f6a, 0x693a, 0x5957, 0x754d, 0x7172, 0x7a47, 0x5978, 0x5442, - 0x7665, 0x5d45, 0x6772, 0x6d5f, 0x4a4b, 0x5b7a, 0x6835, 0x5326, - 0x7d35, 0x7949, 0x6462, 0x7b3d, 0x5724, 0x4e45, 0x4e55, 0x5666, - 0x653d, 0x5e4d, 0x6c73, 0x6d60, 0x6c6c, 0x7b3e, 0x5f6b, 0x6178, - 0x793e, 0x5073, 0x602a, 0x6862, 0x6254, 0x527d, 0x6528, 0x5953, - 0x535e, 0x7438, 0x773c, 0x5c7d, 0x686c, 0x6467, 0x6377, 0x6c28, - 0x7a71, 0x6572, 0x5074, 0x522f, 0x5c65, 0x5025, 0x7134, 0x7c31, - 0x4c78, 0x5d46, 0x7a51, 0x775f, 0x7a28, 0x6e75, 0x5e4e, 0x6773, - 0x772c, 0x6b44, 0x6d61, 0x602b, 0x5d47, 0x5233, 0x523f, 0x4a4c, - 0x7b3f, 0x657d, 0x5d65, 0x584d, 0x6c74, 0x5075, 0x686d, 0x5052, - 0x5958, 0x7666, 0x5b2a, 0x7760, 0x5859, 0x7423, 0x745d, 0x6f51, - 0x5935, 0x6d2b, 0x6337, 0x6e3b, 0x4d34, 0x6073, 0x6a4d, 0x6c75, - 0x686e, 0x4b29, 0x712f, 0x4a4d, 0x6c29, 0x726b, 0x7d6f, 0x7973, - 0x6641, 0x6c58, 0x6d2c, 0x6a4e, 0x685f, 0x5e4f, 0x5226, 0x6774, - 0x5156, 0x6642, 0x6363, 0x6430, 0x5834, 0x7625, 0x735e, 0x5725, - 0x7768, 0x6846, 0x7b66, 0x5d66, 0x5c7e, 0x585a, 0x5a2c, 0x6a30, - 0x6338, 0x4a2a, 0x6179, 0x6a31, 0x726c, 0x7a6e, 0x6e55, 0x7974, - 0x526c, 0x7b7b, 0x7d70, 0x603d, 0x4e63, 0x7846, 0x5e2e, 0x5f45, - 0x653e, 0x6d2d, 0x7a6a, 0x4d6e, 0x6d26, 0x6d2e, 0x706d, 0x5d21, - 0x6d2f, 0x7c78, 0x586b, 0x4c79, 0x4d35, 0x7a29, 0x615d, 0x6255, - 0x6d4f, 0x5d22, 0x794a, 0x6a68, 0x656d, 0x536b, 0x6954, 0x617a, - 0x644c, 0x6164, 0x6847, 0x4e5b, 0x5c55, 0x7735, 0x7c73, 0x7073, - 0x4e2f, 0x7135, 0x6f52, 0x6848, 0x6b71, 0x4b54, 0x603e, 0x6378, - 0x6a69, 0x7c32, 0x6074, 0x4f60, 0x6e25, 0x7a2a, 0x6643, 0x6132, - 0x4a2b, 0x6364, 0x693b, 0x6256, 0x7372, 0x6e56, 0x6a32, 0x5076, - 0x6c59, 0x5a4b, 0x4f28, 0x5d23, 0x585b, 0x794e, 0x6955, 0x6351, - 0x523c, 0x582c, 0x734c, 0x4d7b, 0x7656, 0x6775, 0x686f, 0x6379, - 0x523b, 0x7373, 0x637b, 0x5e50, 0x4e30, 0x5677, 0x7159, 0x7541, - 0x5c44, 0x753b, 0x5e51, 0x5c66, 0x5e52, 0x6d62, 0x6e76, 0x6a4f, - 0x706e, 0x637c, 0x535f, 0x5374, 0x6133, 0x6134, 0x7453, 0x5f46, - 0x6956, 0x5b2b, 0x7626, 0x6339, 0x6b45, 0x7429, 0x4d36, 0x5279, - 0x5a2d, 0x5263, 0x4f51, 0x4b5c, 0x4c7a, 0x4f5d, 0x6829, 0x633b, - 0x633a, 0x605a, 0x6e77, 0x5c33, 0x5375, 0x5726, 0x7635, 0x575b, - 0x6155, 0x546a, 0x5f23, 0x7d5f, 0x5077, 0x6d54, 0x4b2a, 0x645b, - 0x617b, 0x4b22, 0x5360, 0x643f, 0x7b40, 0x5a3e, 0x644d, 0x5639, - 0x6f40, 0x617c, 0x7639, 0x5f47, 0x6431, 0x5c67, 0x5c68, 0x7a56, - 0x5376, 0x715a, 0x7a72, 0x627d, 0x554f, 0x5078, 0x4d5f, 0x754b, - 0x6470, 0x4b2b, 0x5744, 0x627e, 0x5d5a, 0x5a2e, 0x4a6e, 0x5539, - 0x6321, 0x6863, 0x732b, 0x4f29, 0x5377, 0x5471, 0x4e64, 0x6872, - 0x6575, 0x672e, 0x563a, 0x5f6c, 0x6440, 0x6864, 0x5835, 0x645c, - 0x7439, 0x7136, 0x625e, 0x6135, 0x4d6f, 0x7127, 0x4e65, 0x4b5d, - 0x5963, 0x732c, 0x5079, 0x6c2b, 0x5e53, 0x7769, 0x7975, 0x615e, - 0x4b6e, 0x633c, 0x7856, 0x5b6e, 0x7d71, 0x7736, 0x745e, 0x726d, - 0x5b59, 0x7028, 0x617d, 0x5e54, 0x602c, 0x6d63, 0x5361, 0x5f48, - 0x5936, 0x7d2c, 0x6f53, 0x6441, 0x786b, 0x5b2c, 0x7c46, 0x582d, - 0x763a, 0x5b5f, 0x5353, 0x7847, 0x4a4e, 0x7841, 0x5234, 0x5c34, - 0x7a39, 0x4a4f, 0x7c33, 0x6a6a, 0x6a6b, 0x507a, 0x6d64, 0x5d67, - 0x5f49, 0x5f6d, 0x6e3c, 0x6f41, 0x4c52, 0x5d24, 0x5f4a, 0x5378, - 0x7128, 0x4d37, 0x6f54, 0x645d, 0x5f6e, 0x4b2c, 0x693c, 0x6a6c, - 0x5f4b, 0x793f, 0x562f, 0x5546, 0x4f2a, 0x4e29, 0x5678, 0x7137, - 0x6e78, 0x5959, 0x735f, 0x7848, 0x4e46, 0x5566, 0x7466, 0x6645, - 0x6f55, 0x4b6f, 0x7c5f, 0x5c27, 0x5667, 0x7849, 0x6352, 0x633d, - 0x4f61, 0x7040, 0x6c5a, 0x5d57, 0x7b70, 0x6c2c, 0x7029, 0x7a57, - 0x7b41, 0x5240, 0x6530, 0x6d65, 0x4b2d, 0x7930, 0x7725, 0x4b2e, - 0x5a2f, 0x5836, 0x5327, 0x7b32, 0x7d44, 0x6c2d, 0x7b21, 0x6569, - 0x696e, 0x7374, 0x7873, 0x7041, 0x5e2f, 0x7830, 0x7360, 0x672f, - 0x5b2d, 0x6635, 0x7928, 0x5d58, 0x6859, 0x6f56, 0x5362, 0x625f, - 0x7c60, 0x5748, 0x7d2d, 0x5f6f, 0x4c53, 0x5379, 0x5470, 0x5b47, - 0x5e55, 0x7074, 0x5550, 0x6559, 0x7c47, 0x5c56, 0x6260, 0x5a30, - 0x7323, 0x536c, 0x744b, 0x7d45, 0x637d, 0x7931, 0x507b, 0x6c5b, - 0x753c, 0x7224, 0x584e, 0x584f, 0x7577, 0x7661, 0x5237, 0x7b6c, - 0x5d48, 0x6468, 0x5241, 0x7857, 0x563b, 0x5e56, 0x773d, 0x6c2e, - 0x5061, 0x6075, 0x6a33, 0x4e56, 0x4c25, 0x6c76, 0x6261, 0x633e, - 0x7c48, 0x4d70, 0x7976, 0x5f70, 0x653f, 0x4e3f, 0x7c61, 0x6d30, - 0x7d51, 0x763b, 0x794f, 0x6b5a, 0x4a41, 0x5238, 0x4d71, 0x6353, - 0x7d66, 0x666d, 0x637a, 0x702a, 0x7950, 0x7c62, 0x7827, 0x6165, - 0x6e79, 0x6776, 0x6a6d, 0x7c34, 0x7542, 0x575c, 0x7075, 0x5d68, - 0x536d, 0x757c, 0x5a3f, 0x4c7b, 0x537a, 0x7424, 0x6f57, 0x5443, - 0x7b63, 0x7b6d, 0x602d, 0x6a6e, 0x7b33, 0x6442, 0x7667, 0x525d, - 0x5f4c, 0x7c49, 0x6529, 0x6076, 0x7633, 0x617e, 0x4b70, 0x6a6f, - 0x6a70, 0x5a40, 0x7834, 0x6b72, 0x6443, 0x6957, 0x6471, 0x4a6f, - 0x4e57, 0x7c4a, 0x7361, 0x4b44, 0x6365, 0x4b45, 0x6a34, 0x693d, - 0x5749, 0x6b5b, 0x6d31, 0x4c43, 0x773e, 0x7c4b, 0x7874, 0x5937, - 0x7353, 0x7354, 0x7764, 0x7751, 0x5837, 0x4e31, 0x4a42, 0x7b34, - 0x4b46, 0x7076, 0x5567, 0x6a50, 0x4c54, 0x4b2f, 0x742a, 0x692f, - 0x7543, 0x6958, 0x5d69, 0x7173, 0x557b, 0x5e3b, 0x747b, 0x7d73, - 0x7d72, 0x7726, 0x5d49, 0x5453, 0x4c28, 0x5a41, 0x4c55, 0x5964, - 0x7a4a, 0x6563, 0x533c, 0x4a70, 0x5044, 0x4a50, 0x7a2b, 0x6b6b, - 0x6778, 0x5965, 0x5157, 0x7324, 0x547b, 0x7c63, 0x7a58, 0x7355, - 0x4f2b, 0x6b73, 0x557c, 0x5354, 0x4d7c, 0x5966, 0x6279, 0x6221, - 0x6b54, 0x6077, 0x6432, 0x4c7c, 0x7b64, 0x742b, 0x503d, 0x4a71, - 0x6f38, 0x5740, 0x6e7a, 0x7d74, 0x5363, 0x7b42, 0x5568, 0x5b2e, - 0x6136, 0x7837, 0x603f, 0x7b43, 0x5d6a, 0x6222, 0x6e26, 0x7668, - 0x7675, 0x5d4a, 0x5062, 0x5d26, 0x5d6b, 0x6479, 0x632f, 0x507c, - 0x747c, 0x4c3c, 0x776a, 0x6564, 0x5f71, 0x7761, 0x7977, 0x6f39, - 0x7858, 0x7929, 0x7859, 0x6e3d, 0x5846, 0x6463, 0x754e, 0x5d59, - 0x5967, 0x5239, 0x5543, 0x5a65, 0x5a50, 0x5159, 0x4e58, 0x4b5e, - 0x742c, 0x5a7b, 0x7669, 0x6873, 0x4f2c, 0x7070, 0x747d, 0x5b48, - 0x4e40, 0x6354, 0x514f, 0x7175, 0x4d72, 0x4f6b, 0x4d38, 0x6326, - 0x515a, 0x7225, 0x7226, 0x644e, 0x537b, 0x7129, 0x7249, 0x6f58, - 0x6649, 0x5838, 0x7a73, 0x7335, 0x7824, 0x5173, 0x6648, 0x785a, - 0x5c69, 0x5e57, 0x4b5f, 0x4f6c, 0x745f, 0x5174, 0x523a, 0x5f72, - 0x6137, 0x6223, 0x537c, 0x6d66, 0x5b49, 0x647a, 0x4f5e, 0x4e50, - 0x5553, 0x7375, 0x772e, 0x6f48, 0x4d73, 0x754f, 0x6573, 0x7042, - 0x4a51, 0x6a71, 0x5026, 0x595a, 0x702b, 0x6b67, 0x6540, 0x7c35, - 0x6444, 0x4c29, 0x7d46, 0x6a35, 0x652a, 0x5f3a, 0x615f, 0x5a51, - 0x6138, 0x6874, 0x537d, 0x6224, 0x724a, 0x5a66, 0x7733, 0x7d4d, - 0x7336, 0x6e57, 0x7544, 0x5824, 0x7227, 0x5938, 0x5939, 0x6f49, - 0x564e, 0x774b, 0x5f2e, 0x6875, 0x5235, 0x5355, 0x744c, 0x5a7c, - 0x5968, 0x776b, 0x7549, 0x733c, 0x5a52, 0x5335, 0x6836, 0x564f, - 0x743a, 0x7749, 0x4c2a, 0x7043, 0x4c56, 0x5053, 0x533d, 0x5b7b, - 0x4b60, 0x5364, 0x7677, 0x553a, 0x734d, 0x4b61, 0x6b74, 0x742d, - 0x7c2a, 0x776c, 0x6876, 0x5a67, 0x774c, 0x6541, 0x606e, 0x557d, - 0x4e66, 0x7c2b, 0x553b, 0x7228, 0x6225, 0x4d39, 0x6a72, 0x4b47, - 0x4d74, 0x5b2f, 0x6f59, 0x4d3a, 0x7c79, 0x5f73, 0x4e67, 0x5a42, - 0x4f2d, 0x6779, 0x7828, 0x7362, 0x4a72, 0x5f24, 0x5444, 0x4c57, - 0x6542, 0x4d3b, 0x6f5a, 0x6e58, 0x5d27, 0x6226, 0x6040, 0x5630, - 0x784a, 0x7c7a, 0x597e, 0x5e30, 0x5d6c, 0x5a68, 0x5460, 0x5679, - 0x4d57, 0x5e58, 0x7278, 0x6456, 0x5045, 0x742e, 0x5d28, 0x6d45, - 0x7356, 0x5e59, 0x6366, 0x5328, 0x5b30, 0x655a, 0x633f, 0x5b31, - 0x5569, 0x6041, 0x6f5b, 0x7069, 0x5732, 0x507d, 0x5969, 0x507e, - 0x6c6d, 0x5329, 0x7229, 0x7044, 0x6262, 0x696f, 0x7951, 0x6959, - 0x685a, 0x5a43, 0x5a44, 0x5445, 0x677a, 0x4d60, 0x6330, 0x5b32, - 0x7b44, 0x7363, 0x5925, 0x7b67, 0x5d4b, 0x5054, 0x6636, 0x602e, - 0x7d5a, 0x5c35, 0x6078, 0x6731, 0x7570, 0x585c, 0x6d46, 0x6139, - 0x6340, 0x7940, 0x6970, 0x595b, 0x7364, 0x5c36, 0x6469, 0x7045, - 0x6341, 0x7c4c, 0x7c4d, 0x724b, 0x724c, 0x644f, 0x715b, 0x7a59, - 0x7138, 0x7d75, 0x6079, 0x677b, 0x7c37, 0x7c64, 0x7b45, 0x6367, - 0x5839, 0x7678, 0x5c45, 0x4c58, 0x602f, 0x7467, 0x6f5c, 0x4f7c, - 0x6f5d, 0x722a, 0x7d3e, 0x4a2c, 0x7d3b, 0x7d47, 0x6732, 0x6a51, - 0x5f74, 0x516c, 0x645e, 0x6543, 0x5926, 0x4d3c, 0x7365, 0x6d55, - 0x593a, 0x6d67, 0x7b35, 0x786c, 0x6067, 0x4c59, 0x5446, 0x6725, - 0x5575, 0x533e, 0x7c7b, 0x6472, 0x5f75, 0x6878, 0x786d, 0x4e47, - 0x7d76, 0x6858, 0x4d58, 0x6756, 0x4c5a, 0x4a63, 0x5f76, 0x7047, - 0x7046, 0x583a, 0x7174, 0x7470, 0x754c, 0x7c65, 0x6a45, 0x6a73, - 0x5d5b, 0x5c57, 0x5e7d, 0x7279, 0x5547, 0x5850, 0x7048, 0x5121, - 0x5122, 0x5954, 0x5668, 0x594a, 0x5a31, 0x5847, 0x5c62, 0x734e, - 0x7574, 0x7139, 0x5a53, 0x766a, 0x4f75, 0x7d2e, 0x4a52, 0x5f34, - 0x575d, 0x7a3a, 0x6e27, 0x753d, 0x7875, 0x6d68, 0x5461, 0x5123, - 0x6156, 0x7978, 0x5b4a, 0x4b79, 0x5454, 0x595c, 0x6e3e, 0x776d, - 0x526e, 0x6166, 0x7779, 0x5d6d, 0x685b, 0x5b33, 0x5177, 0x6030, - 0x5462, 0x7657, 0x5779, 0x585d, 0x4d7d, 0x722b, 0x4d3d, 0x7842, - 0x722c, 0x4a2d, 0x4a2e, 0x4f2e, 0x6342, 0x5c37, 0x5b5a, 0x593b, - 0x4a73, 0x7653, 0x6678, 0x6a75, 0x6a76, 0x7679, 0x4f2f, 0x4a53, - 0x4a2f, 0x5230, 0x713a, 0x5733, 0x6343, 0x737d, 0x5e5a, 0x5e5b, - 0x6f5e, 0x6263, 0x6e7b, 0x5f77, 0x574a, 0x4e68, 0x5b5b, 0x713b, - 0x6971, 0x7a37, 0x5046, 0x4c2b, 0x6e28, 0x4b7a, 0x7979, 0x4c7d, - 0x537e, 0x6450, 0x726e, 0x5455, 0x5f4d, 0x7c38, 0x5150, 0x724d, - 0x7752, 0x4a54, 0x5559, 0x585e, 0x4d59, 0x6e29, 0x763c, 0x4c5b, - 0x7049, 0x7c7c, 0x6849, 0x747e, 0x677c, 0x575e, 0x5e5c, 0x702c, - 0x4c7e, 0x4d61, 0x613a, 0x5b6f, 0x5a32, 0x5125, 0x5c38, 0x5876, - 0x5124, 0x4d62, 0x5c6a, 0x7077, 0x704a, 0x503e, 0x5d5c, 0x5456, - 0x5356, 0x6d50, 0x4d21, 0x5f35, 0x5f78, 0x5421, 0x4e32, 0x684a, - 0x6b75, 0x6355, 0x7550, 0x7521, 0x5927, 0x652b, 0x664b, 0x7571, - 0x6545, 0x7923, 0x605b, 0x766b, 0x4b71, 0x596a, 0x7522, 0x5751, - 0x5178, 0x6a78, 0x6a79, 0x5a33, 0x6f5f, 0x716f, 0x6576, 0x6e3f, - 0x6264, 0x503f, 0x7a2c, 0x7551, 0x6733, 0x693e, 0x724e, 0x5b34, - 0x7c4e, 0x5d6e, 0x6734, 0x5734, 0x7734, 0x4d3e, 0x5a69, 0x4f30, - 0x7759, 0x7366, 0x4e59, 0x4e2a, 0x4b48, 0x5027, 0x704b, 0x5047, - 0x6445, 0x5b60, 0x555a, 0x5727, 0x6e40, 0x7876, 0x7552, 0x6d69, - 0x593c, 0x6546, 0x7523, 0x5a54, 0x6227, 0x7b7c, 0x715c, 0x4a74, - 0x687a, 0x4e69, 0x6978, 0x6265, 0x5039, 0x5472, 0x5126, 0x5f4e, - 0x7c74, 0x532a, 0x4c2c, 0x6f60, 0x6565, 0x5055, 0x5b7c, 0x7c66, - 0x4b7e, 0x6d6a, 0x5e31, 0x7963, 0x5422, 0x4f76, 0x5650, 0x556a, - 0x716e, 0x7a4b, 0x6521, 0x5531, 0x4f6d, 0x6d6b, 0x5532, 0x553c, - 0x7d62, 0x732d, 0x7d5b, 0x6930, 0x5127, 0x7d63, 0x4e33, 0x7d64, - 0x7a4e, 0x4a30, 0x7727, 0x4f31, 0x6622, 0x7c36, 0x722d, 0x6f61, - 0x732e, 0x5c46, 0x596b, 0x6860, 0x6128, 0x5576, 0x4f7d, 0x5e5d, - 0x5951, 0x646a, 0x724f, 0x773f, 0x6266, 0x6228, 0x6356, 0x6d51, - 0x6979, 0x5631, 0x5e32, 0x6068, 0x532b, 0x6b5c, 0x5f2f, 0x4a43, - 0x6e7c, 0x7d43, 0x6b76, 0x4f32, 0x596c, 0x593d, 0x585f, 0x5438, - 0x6b3e, 0x5d6f, 0x5d70, 0x5d71, 0x5d72, 0x593e, 0x7b46, 0x4f33, - 0x6e7d, 0x642b, 0x5a45, 0x586c, 0x5128, 0x6229, 0x5e3c, 0x6735, - 0x5b70, 0x6f62, 0x7170, 0x4f34, 0x5b71, 0x6031, 0x5f25, 0x7952, - 0x677d, 0x6623, 0x7b71, 0x4b30, 0x722e, 0x4d67, 0x685c, 0x6757, - 0x7740, 0x5063, 0x5a21, 0x4c3d, 0x5129, 0x5d4c, 0x637e, 0x512a, - 0x682a, 0x6a36, 0x797a, 0x664c, 0x7658, 0x5447, 0x594b, 0x5952, - 0x534b, 0x5877, 0x5a29, 0x7578, 0x5e5e, 0x722f, 0x7829, 0x5848, - 0x6e41, 0x7941, 0x5d73, 0x6a7a, 0x763d, 0x613b, 0x4d3f, 0x7454, - 0x664d, 0x7c4f, 0x7b22, 0x605c, 0x743b, 0x5a55, 0x7932, 0x7b72, - 0x5b76, 0x5e5f, 0x5b72, 0x785c, 0x776e, 0x6b68, 0x527a, 0x713c, - 0x7a5a, 0x5a6a, 0x5a46, 0x7741, 0x6736, 0x6547, 0x562c, 0x5c47, - 0x6129, 0x622a, 0x5526, 0x5457, 0x7250, 0x6a7b, 0x605d, 0x7b73, - 0x713d, 0x6267, 0x7d57, 0x4e48, 0x6a37, 0x7c40, 0x7d67, 0x776f, - 0x5735, 0x6f3a, 0x715d, 0x5e33, 0x684b, 0x785d, 0x7b47, 0x5548, - 0x575f, 0x5d29, 0x6931, 0x7a2d, 0x7659, 0x7a74, 0x782a, 0x666e, - 0x4c5c, 0x613c, 0x606f, 0x693f, 0x7c7d, 0x664e, 0x6157, 0x664f, - 0x7471, 0x6473, 0x647b, 0x7964, 0x6f63, 0x4f6e, 0x763e, 0x6032, - 0x7c7e, 0x512b, 0x577a, 0x7b48, 0x6257, 0x5423, 0x7078, 0x5728, - 0x6167, 0x533f, 0x6f64, 0x5745, 0x6b62, 0x7c67, 0x6422, 0x6268, - 0x6650, 0x7b68, 0x7468, 0x6574, 0x743c, 0x7455, 0x5f36, 0x7c39, - 0x6e42, 0x4a75, 0x6f65, 0x4b62, 0x5424, 0x5e60, 0x5a7d, 0x6446, - 0x683e, 0x605e, 0x7634, 0x6a52, 0x797b, 0x6042, 0x4a64, 0x6737, - 0x6a7d, 0x595d, 0x5a34, 0x6e2a, 0x7b69, 0x5b4b, 0x5a35, 0x713e, - 0x532c, 0x7b49, 0x5f4f, 0x5340, 0x6357, 0x6f66, 0x7c50, 0x6940, - 0x7553, 0x6c5c, 0x7737, 0x6a38, 0x5179, 0x5c48, 0x6a39, 0x715e, - 0x5736, 0x4f35, 0x5928, 0x6c6e, 0x5d2a, 0x4d22, 0x682e, 0x613d, - 0x7251, 0x6941, 0x527c, 0x5b35, 0x7367, 0x587e, 0x7c51, 0x6d32, - 0x742f, 0x7b23, 0x7c41, 0x6e2b, 0x5425, 0x7472, 0x6e59, 0x7b4a, - 0x4d63, 0x583b, 0x655b, 0x7877, 0x7654, 0x5729, 0x4b49, 0x6651, - 0x704c, 0x582e, 0x7953, 0x557e, 0x583c, 0x7230, 0x622b, 0x7368, - 0x6f42, 0x6d6c, 0x6738, 0x5a7e, 0x4c3e, 0x727c, 0x5a6b, 0x6258, - 0x6d56, 0x5651, 0x6033, 0x7c52, 0x6b48, 0x5341, 0x704d, 0x4f77, - 0x6d52, 0x5458, 0x5c49, 0x5771, 0x5f3b, 0x7325, 0x744d, 0x713f, - 0x7831, 0x697a, 0x7b4b, 0x4a55, 0x7954, 0x774a, 0x5648, 0x7c68, - 0x733d, 0x6e7e, 0x677e, 0x5342, 0x5336, 0x4c2d, 0x767a, 0x5632, - 0x5258, 0x6758, 0x6325, 0x6739, 0x702d, 0x7b4c, 0x6b21, 0x5426, - 0x7b4d, 0x553d, 0x715f, 0x767b, 0x5e34, 0x556b, 0x6548, 0x7b24, - 0x5439, 0x5e61, 0x6423, 0x5737, 0x786e, 0x5e35, 0x5652, 0x7955, - 0x673a, 0x6b55, 0x5577, 0x6f67, 0x613e, 0x7a2e, 0x5669, 0x566e, - 0x673b, 0x6c4b, 0x5533, 0x4e34, 0x7b25, 0x616e, 0x7728, 0x7b4e, - 0x583d, 0x7b7d, 0x7c69, 0x4f36, 0x6d47, 0x6e2c, 0x4c5d, 0x7627, - 0x667a, 0x7524, 0x7d5c, 0x6d33, 0x4e49, 0x6f68, 0x613f, 0x7a5b, - 0x4b63, 0x7729, 0x7b26, 0x5c39, 0x7140, 0x6d48, 0x6f43, 0x562d, - 0x7d4e, 0x6821, 0x7b74, 0x5527, 0x7176, 0x6653, 0x4c5e, 0x7832, - 0x5c6b, 0x7d36, 0x656a, 0x7160, 0x5b4c, 0x5d4d, 0x5448, 0x596d, - 0x7525, 0x667b, 0x6654, 0x7d48, 0x5621, 0x7d3f, 0x7c53, 0x6f21, - 0x673c, 0x516e, 0x6655, 0x6972, 0x5f30, 0x5860, 0x7c3a, 0x7d2f, - 0x704e, 0x5b61, 0x6549, 0x6d34, 0x6043, 0x6358, 0x697b, 0x6a28, - 0x7d37, 0x7b27, 0x6942, 0x7d77, 0x6259, 0x5c6c, 0x6822, 0x6670, - 0x7d78, 0x7d79, 0x763f, 0x6727, 0x6657, 0x5473, 0x5449, 0x567a, - 0x5772, 0x6140, 0x5b62, 0x6658, 0x673d, 0x704f, 0x733e, 0x622c, - 0x7537, 0x6070, 0x7d38, 0x6368, 0x5427, 0x687c, 0x7a52, 0x786f, - 0x5653, 0x5534, 0x7050, 0x7770, 0x6e33, 0x6a3a, 0x6a53, 0x6d49, - 0x5d2b, 0x652c, 0x7d21, 0x5f50, 0x6c33, 0x5f51, 0x6d6d, 0x7838, - 0x777a, 0x782b, 0x7460, 0x543a, 0x6433, 0x695a, 0x5e36, 0x593f, - 0x5940, 0x566f, 0x594c, 0x5a2a, 0x5f65, 0x7765, 0x4c32, 0x5f79, - 0x5760, 0x543b, 0x7d7a, 0x4c33, 0x5b73, 0x5f52, 0x4e4a, 0x6e5a, - 0x6464, 0x7b4f, 0x4f37, 0x6e43, 0x4e6a, 0x622d, 0x5761, 0x7a75, - 0x5549, 0x782c, 0x6759, 0x7369, 0x586d, 0x6344, 0x7071, 0x6865, - 0x607a, 0x6e44, 0x595e, 0x6b22, 0x6b23, 0x7c42, 0x6a3b, 0x682b, - 0x5e62, 0x6d6f, 0x6823, 0x4f71, 0x543c, 0x7c6a, 0x673e, 0x7c72, - 0x5634, 0x622e, 0x5337, 0x7a4c, 0x7a5c, 0x6d35, 0x6163, 0x682c, - 0x685d, 0x6f69, 0x743d, 0x4f38, 0x695b, 0x512c, 0x5a47, 0x6b49, - 0x684c, 0x5e37, 0x563c, 0x5365, 0x7a5d, 0x5a56, 0x4a31, 0x5a48, - 0x5f26, 0x7933, 0x7252, 0x4a44, 0x4e4b, 0x4d75, 0x7d30, 0x5528, - 0x7141, 0x6269, 0x5c4a, 0x6c34, 0x7a40, 0x7b28, 0x5028, 0x5a6c, - 0x596e, 0x607b, 0x6f6a, 0x7a5e, 0x6044, 0x4f39, 0x554a, 0x5762, - 0x622f, 0x5738, 0x684d, 0x765a, 0x6f22, 0x625a, 0x767c, 0x7b50, - 0x512d, 0x4d64, 0x512e, 0x5c6d, 0x684e, 0x7079, 0x4e35, 0x667c, - 0x577b, 0x5056, 0x5d75, 0x7771, 0x767d, 0x5b77, 0x7b6a, 0x695c, - 0x5941, 0x7572, 0x6045, 0x6a54, 0x7942, 0x6a3c, 0x5245, 0x7b51, - 0x6740, 0x6b25, 0x5f7a, 0x6322, 0x5739, 0x6943, 0x687d, 0x682f, - 0x7253, 0x7b29, 0x5825, 0x554b, 0x5048, 0x512f, 0x5763, 0x6046, - 0x5622, 0x6d70, 0x5773, 0x7c54, 0x5a57, 0x4c5f, 0x7254, 0x5130, - 0x4c60, 0x5b7d, 0x733f, 0x7051, 0x7c3b, 0x6230, 0x6625, 0x625b, - 0x5f5e, 0x6047, 0x726f, 0x4c61, 0x566a, 0x6742, 0x4e36, 0x7340, - 0x4d7e, 0x7b52, 0x7878, 0x777b, 0x683f, 0x6837, 0x6d36, 0x5c3a, - 0x4c34, 0x7177, 0x6838, 0x4a76, 0x6424, 0x7456, 0x5f66, 0x5f27, - 0x5f67, 0x6141, 0x6944, 0x5c4b, 0x6945, 0x6f23, 0x6b26, 0x4b23, - 0x6369, 0x517b, 0x6f24, 0x6f6b, 0x5034, 0x4d23, 0x6866, 0x6f25, - 0x534c, 0x5a6d, 0x573a, 0x7255, 0x7565, 0x596f, 0x7934, 0x5554, - 0x7d4f, 0x5b63, 0x7161, 0x6c36, 0x7b7e, 0x5357, 0x5131, 0x4b31, - 0x5132, 0x4b32, 0x7142, 0x7461, 0x7935, 0x6143, 0x6142, 0x6b77, - 0x5f28, 0x4b4a, 0x6639, 0x785e, 0x792a, 0x4a77, 0x6d37, 0x5338, - 0x7256, 0x5459, 0x6e45, 0x7270, 0x4a32, 0x5c3b, 0x7178, 0x6c37, - 0x654a, 0x7640, 0x7d5d, 0x5463, 0x4c62, 0x7754, 0x5765, 0x5343, - 0x5826, 0x7641, 0x5d76, 0x4d40, 0x655c, 0x654b, 0x6144, 0x6830, - 0x7430, 0x736a, 0x5a6e, 0x573b, 0x6231, 0x572a, 0x567b, 0x645f, - 0x4a56, 0x6b28, 0x5b7e, 0x7642, 0x6f3b, 0x547d, 0x6048, 0x6839, - 0x6f26, 0x4d24, 0x5474, 0x5b21, 0x5b5c, 0x5b5d, 0x6e5c, 0x4b4b, - 0x7c55, 0x4e6b, 0x4d41, 0x7b53, 0x792b, 0x7554, 0x5929, 0x695d, - 0x5b4d, 0x5d4e, 0x6743, 0x6c4c, 0x796c, 0x4b4c, 0x607c, 0x5428, - 0x6d53, 0x586f, 0x7257, 0x4a78, 0x5a6f, 0x5654, 0x594d, 0x586e, - 0x7241, 0x5f53, 0x5a70, 0x626a, 0x607d, 0x5878, 0x772f, 0x5a36, - 0x4a57, 0x7258, 0x5879, 0x7a5f, 0x4f6f, 0x5942, 0x7052, 0x6451, - 0x7337, 0x7a60, 0x6f6c, 0x6232, 0x543d, 0x594e, 0x7462, 0x5429, - 0x4d42, 0x675a, 0x7259, 0x592a, 0x583e, 0x5c2d, 0x626b, 0x567c, - 0x4a79, 0x545a, 0x7457, 0x4c21, 0x4f3a, 0x7538, 0x5943, 0x5068, - 0x6345, 0x6b78, 0x7231, 0x4f3b, 0x532d, 0x6861, 0x4e6c, 0x6034, - 0x5e63, 0x5d77, 0x7232, 0x7376, 0x765b, 0x577e, 0x785f, 0x7772, - 0x5029, 0x665a, 0x7526, 0x573c, 0x4c63, 0x665b, 0x5d5d, 0x5133, - 0x6f6d, 0x565e, 0x6474, 0x616f, 0x5d78, 0x684f, 0x4a65, 0x5c21, - 0x6035, 0x7c2c, 0x7c2d, 0x5827, 0x6d38, 0x5b36, 0x5670, 0x732f, - 0x4d25, 0x5a71, 0x5828, 0x4c64, 0x5134, 0x4a58, 0x5a72, 0x7527, - 0x7528, 0x6626, 0x556c, 0x5578, 0x5a73, 0x6346, 0x5e64, 0x5e65, - 0x5135, 0x5136, 0x5137, 0x7233, 0x695e, 0x7053, 0x7234, 0x7054, - 0x4b64, 0x7b54, 0x7566, 0x636a, 0x5e66, 0x5f54, 0x7879, 0x702e, - 0x5138, 0x565f, 0x5057, 0x7c21, 0x6f6e, 0x5c58, 0x695f, 0x655d, - 0x7d7b, 0x6049, 0x5649, 0x542a, 0x654c, 0x6960, 0x5058, 0x7c22, - 0x543e, 0x6233, 0x5e67, 0x5c3c, 0x5236, 0x7555, 0x4e21, 0x7529, - 0x5d79, 0x5d7a, 0x7055, 0x765f, 0x725a, 0x646b, 0x7271, 0x6c39, - 0x7d7c, 0x612a, 0x4a59, 0x6f6f, 0x752a, 0x6c79, 0x782d, 0x7242, - 0x7643, 0x5752, 0x7922, 0x7056, 0x707a, 0x7660, 0x6973, 0x7243, - 0x542b, 0x4a33, 0x4d26, 0x4d43, 0x4d5a, 0x594f, 0x7644, 0x6e5d, - 0x6744, 0x6234, 0x5f62, 0x675b, 0x6831, 0x7c2e, 0x654d, 0x7a6b, - 0x4f3c, 0x4f62, 0x4d76, 0x6f70, 0x743e, 0x544d, 0x7338, 0x6921, - 0x7272, 0x736b, 0x7057, 0x4f57, 0x4f5f, 0x6840, 0x6841, 0x4f63, - 0x6922, 0x502a, 0x7341, 0x502b, 0x5464, 0x6f3c, 0x5821, 0x595f, - 0x7357, 0x5c3d, 0x4c65, 0x6d71, 0x7162, 0x545b, 0x6235, 0x4a66, - 0x532e, 0x4c66, 0x7153, 0x7567, 0x4a5a, 0x7b6e, 0x6145, 0x5f69, - 0x6e5e, 0x7742, 0x5822, 0x5d2c, 0x702f, 0x563d, 0x612b, 0x7936, - 0x5475, 0x5049, 0x6f27, 0x626c, 0x5b6a, 0x4e4c, 0x7568, 0x7755, - 0x534d, 0x737e, 0x5035, 0x607e, 0x5f7b, 0x665d, 0x6824, 0x4b4d, - 0x6f28, 0x6e34, 0x5a58, 0x5139, 0x5f29, 0x7330, 0x4c44, 0x4e37, - 0x6f29, 0x5f55, 0x6d57, 0x6e46, 0x6f3d, 0x7c56, 0x5b74, 0x6f2a, - 0x7839, 0x7569, 0x6359, 0x6146, 0x543f, 0x5e68, 0x706a, 0x7342, - 0x532f, 0x4a5b, 0x7c57, 0x6d58, 0x6147, 0x7458, 0x5633, 0x5d2d, - 0x553e, 0x7143, 0x6e5f, 0x566b, 0x7459, 0x5766, 0x5a37, 0x5d7b, - 0x5d4f, 0x5823, 0x5a59, 0x7058, 0x6f44, 0x6158, 0x7154, 0x6d72, - 0x555b, 0x555c, 0x7344, 0x4b57, 0x6236, 0x6f71, 0x7b55, 0x5358, - 0x5d50, 0x7059, 0x4b33, 0x555d, 0x4d27, 0x502c, 0x513a, 0x7144, - 0x6533, 0x7b75, 0x6961, 0x7d60, 0x7c3c, 0x5a22, 0x5a23, 0x5221, - 0x526f, 0x626d, 0x5e69, 0x4e5c, 0x7235, 0x5064, 0x5d51, 0x6148, - 0x5b37, 0x5f63, 0x6d39, 0x7145, 0x734f, 0x572b, 0x612c, 0x636b, - 0x6e47, 0x6149, 0x4a7a, 0x707b, 0x7a61, 0x705a, 0x4c67, 0x5a74, - 0x4c3f, 0x4e6d, 0x5529, 0x7a62, 0x5065, 0x6b56, 0x6c5f, 0x5f7c, - 0x7756, 0x5e6a, 0x4b34, 0x6f3e, 0x4c35, 0x4f3d, 0x6f72, 0x6237, - 0x4c68, 0x707c, 0x5660, 0x7146, 0x6238, 0x6b2b, 0x4b35, 0x5851, - 0x744e, 0x7377, 0x5746, 0x513b, 0x772a, 0x6d4a, 0x5753, 0x587a, - 0x7645, 0x514c, 0x5d7c, 0x5f7d, 0x7965, 0x604a, 0x727d, 0x5330, - 0x7473, 0x5a49, 0x665e, 0x783a, 0x6850, 0x587b, 0x6a55, 0x5623, - 0x7646, 0x725b, 0x647c, 0x6832, 0x5a5a, 0x725c, 0x7b56, 0x6932, - 0x6e2d, 0x7a63, 0x5c6e, 0x756a, 0x6660, 0x707d, 0x572c, 0x7545, - 0x6e60, 0x5b65, 0x5d5e, 0x5970, 0x6923, 0x7179, 0x7244, 0x604b, - 0x6924, 0x6239, 0x6331, 0x7c6b, 0x4d28, 0x4c36, 0x705b, 0x663a, - 0x4d29, 0x7343, 0x6159, 0x6f2b, 0x6745, 0x6069, 0x7345, 0x5440, - 0x553f, 0x5d2e, 0x797c, 0x4c40, 0x6522, 0x4e38, 0x5852, 0x7956, - 0x712a, 0x4e51, 0x7647, 0x5b6b, 0x5f7e, 0x5861, 0x7773, 0x5767, - 0x547e, 0x513c, 0x654f, 0x4b36, 0x5a38, 0x4d44, 0x563e, 0x623a, - 0x4f58, 0x604c, 0x6b79, 0x7d7d, 0x5768, 0x4b58, 0x6962, 0x683a, - 0x6347, 0x6c4d, 0x6c4e, 0x563f, 0x6327, 0x5f56, 0x7d68, 0x6e61, - 0x7628, 0x5d7d, 0x783b, 0x6851, 0x7957, 0x4e6e, 0x6c4f, 0x6925, - 0x5655, 0x4d45, 0x6d3a, 0x513d, 0x4f3e, 0x6c3b, 0x5231, 0x4c69, - 0x5944, 0x697c, 0x513e, 0x6c3c, 0x652d, 0x7730, 0x4c6a, 0x5344, - 0x5640, 0x567d, 0x6121, 0x5e3d, 0x7629, 0x5a24, 0x5624, 0x7546, - 0x6122, 0x6946, 0x7245, 0x7469, 0x566c, 0x6b53, 0x6c3d, 0x625c, - 0x5e6b, 0x705c, 0x6b3f, 0x574e, 0x513f, 0x752b, 0x797d, 0x4a5c, - 0x4d46, 0x7236, 0x5d7e, 0x4c37, 0x5b38, 0x5069, 0x4e5d, 0x6b40, - 0x7d22, 0x784b, 0x6a56, 0x7130, 0x5b4e, 0x7743, 0x5b4f, 0x4b24, - 0x7860, 0x7b57, 0x6b4a, 0x6021, 0x4e4d, 0x545c, 0x7d58, 0x5276, - 0x7237, 0x7a76, 0x762a, 0x7a77, 0x5866, 0x7431, 0x6852, 0x4a45, - 0x4c6b, 0x626e, 0x623b, 0x772d, 0x7861, 0x736c, 0x5e21, 0x647d, - 0x636c, 0x5d2f, 0x5d30, 0x4b37, 0x6853, 0x6123, 0x5260, 0x707e, - 0x6926, 0x4b72, 0x6d73, 0x5c59, 0x604d, 0x775a, 0x5b39, 0x4c2e, - 0x5a5b, 0x4d47, 0x5d31, 0x582f, 0x6323, 0x4e6f, 0x7273, 0x7833, - 0x604e, 0x757d, 0x6b6c, 0x5345, 0x7c6c, 0x525b, 0x546b, 0x5e22, - 0x6566, 0x7030, 0x5544, 0x6d74, 0x636d, 0x6842, 0x6d75, 0x577c, - 0x6d3b, 0x762b, 0x7238, 0x7648, 0x5366, 0x725d, 0x4f3f, 0x6b2c, - 0x4f40, 0x6628, 0x7d69, 0x4f41, 0x605f, 0x5e6c, 0x6022, 0x743f, - 0x626f, 0x5971, 0x7147, 0x4b38, 0x797e, 0x5b3a, 0x5a75, 0x766c, - 0x5a5c, 0x7a64, 0x604f, 0x5d32, 0x6629, 0x6f73, 0x736d, 0x6b7a, - 0x7966, 0x4a5d, 0x555e, 0x4a5e, 0x5f64, 0x667d, 0x752c, 0x6475, - 0x6963, 0x6d4b, 0x4f64, 0x5853, 0x5d33, 0x546c, 0x7239, 0x5f37, - 0x4b4e, 0x7b58, 0x5059, 0x5d52, 0x7774, 0x675c, 0x6425, 0x7c23, - 0x5b3b, 0x723a, 0x697d, 0x504a, 0x7556, 0x5945, 0x6434, 0x6d27, - 0x6a3d, 0x667e, 0x7744, 0x752d, 0x5960, 0x4a34, 0x7862, 0x4f42, - 0x6c3e, 0x6534, 0x4d48, 0x6e48, 0x6748, 0x4d49, 0x7937, 0x7168, - 0x5972, 0x5b75, 0x4a35, 0x5946, 0x5849, 0x592b, 0x6d3c, 0x5854, - 0x5c5a, 0x623c, 0x7c6d, 0x6c60, 0x527e, 0x6947, 0x662a, 0x6270, - 0x7a3b, 0x752e, 0x7b2a, 0x6c7b, 0x6c3f, 0x7c58, 0x5465, 0x7943, - 0x6e62, 0x5769, 0x6d76, 0x5e6d, 0x4c6c, 0x636e, 0x6854, 0x7a78, - 0x5d34, 0x6435, 0x5830, 0x5855, 0x746a, 0x4e39, 0x5661, 0x4f52, - 0x5036, 0x4e22, 0x736e, 0x7378, 0x5c4c, 0x504b, 0x7c24, 0x4d4a, - 0x5754, 0x5e23, 0x6460, 0x6e49, 0x625d, 0x757e, 0x542c, 0x5551, - 0x5870, 0x7843, 0x6a57, 0x7557, 0x583f, 0x7d40, 0x6b2d, 0x552a, - 0x6728, 0x6e4a, 0x4a67, 0x7863, 0x545d, 0x6a58, 0x7b59, 0x6d77, - 0x6535, 0x502d, 0x7171, 0x623d, 0x6348, 0x5955, 0x5f2a, 0x5b3c, - 0x7864, 0x717a, 0x6536, 0x736f, 0x7b5a, 0x6160, 0x592c, 0x756b, - 0x6036, 0x6948, 0x4b4f, 0x6349, 0x5e6e, 0x623e, 0x5c6f, 0x5625, - 0x6271, 0x567e, 0x5921, 0x5840, 0x5c5b, 0x6d3d, 0x5f38, 0x6a25, - 0x572d, 0x7379, 0x6d78, 0x7547, 0x614a, 0x6b63, 0x725e, 0x784c, - 0x6a59, 0x5346, 0x5b66, 0x752f, 0x4e70, 0x697e, 0x7b36, 0x6272, - 0x4f72, 0x7739, 0x5973, 0x614b, 0x5a5d, 0x5a39, 0x6b7b, 0x4b39, - 0x6d79, 0x6060, 0x7440, 0x7d3c, 0x5f31, 0x636f, 0x6023, 0x7d39, - 0x7031, 0x4d4b, 0x6d3e, 0x5540, 0x6370, 0x6d7a, 0x6964, 0x556d, - 0x675d, 0x5476, 0x6537, 0x5b67, 0x623f, 0x6e4b, 0x5774, 0x705d, - 0x4e2b, 0x675e, 0x5656, 0x614c, 0x6833, 0x656e, 0x5c22, 0x6050, - 0x5535, 0x5521, 0x7b5b, 0x794b, 0x4b73, 0x7425, 0x7a48, 0x5657, - 0x6965, 0x7b5c, 0x7d50, 0x7b76, 0x5a25, 0x5b3d, 0x6c62, 0x4d77, - 0x705e, 0x7649, 0x5e6f, 0x5331, 0x7c6e, 0x6843, 0x7148, 0x4e71, - 0x796d, 0x7274, 0x6436, 0x7539, 0x5c70, 0x6371, 0x6825, 0x723b, - 0x5e24, 0x5a4c, 0x4a69, 0x635a, 0x7c59, 0x6a5a, 0x7944, 0x6324, - 0x7b5d, 0x6f4a, 0x6844, 0x554c, 0x6b57, 0x592d, 0x7b2b, 0x5359, - 0x5522, 0x765e, 0x5a76, 0x6051, 0x6928, 0x7579, 0x7a2f, 0x6b7c, - 0x606a, 0x6332, 0x5545, 0x7163, 0x556e, 0x4d4c, 0x6d59, 0x5841, - 0x7a6c, 0x716b, 0x7a3c, 0x6662, 0x7a65, 0x627a, 0x4a36, 0x6437, - 0x6a5b, 0x757a, 0x7b2c, 0x4f43, 0x6b7d, 0x787a, 0x5f39, 0x6171, - 0x5224, 0x757b, 0x505a, 0x505b, 0x6a3e, 0x5931, 0x4a37, 0x5367, - 0x7865, 0x5332, 0x6240, 0x725f, 0x4d65, 0x792c, 0x4d4d, 0x6e2e, - 0x562e, 0x576a, 0x6760, 0x6b2e, 0x4f59, 0x5c4d, 0x6d7b, 0x5e70, - 0x576b, 0x5e25, 0x5f57, 0x5b50, 0x5b51, 0x5523, 0x7032, 0x5c5c, - 0x4a68, 0x7866, 0x5c4e, 0x6a5c, 0x5b52, 0x6933, 0x775b, 0x6328, - 0x572e, 0x6061, 0x4b3a, 0x6551, 0x505c, 0x5541, 0x584a, 0x6329, - 0x6024, 0x6929, 0x5347, 0x5c5d, 0x782e, 0x4c38, 0x502e, 0x5872, - 0x634a, 0x4c2f, 0x542d, 0x7651, 0x504c, 0x4a46, 0x5542, 0x4e3a, - 0x4a47, 0x7a30, 0x5f58, 0x753a, 0x656b, 0x6f74, 0x5d35, 0x4d2a, - 0x6372, 0x7b77, 0x7750, 0x7d3a, 0x7d61, 0x767e, 0x5140, 0x6845, - 0x6438, 0x6168, 0x4c41, 0x526d, 0x5b3e, 0x6062, 0x7a49, 0x614d, - 0x4a38, 0x7260, 0x7149, 0x5e71, 0x705f, 0x7844, 0x6e4c, 0x5e72, - 0x6749, 0x6273, 0x6761, 0x634b, 0x634c, 0x4f78, 0x6f2c, 0x7d7e, - 0x7c25, 0x7a31, 0x5f59, 0x6052, 0x745a, 0x714a, 0x4e23, 0x723c, - 0x6c63, 0x6025, 0x772b, 0x6b2f, 0x655e, 0x6124, 0x4d2b, 0x5974, - 0x6826, 0x4d4e, 0x6169, 0x7c6f, 0x6063, 0x6241, 0x4e24, 0x5e26, - 0x6b7e, 0x6b5d, 0x7060, 0x745b, 0x6274, 0x5348, 0x746b, 0x6e35, - 0x7558, 0x555f, 0x5665, 0x6b30, 0x7463, 0x634d, 0x7474, 0x7a32, - 0x6f75, 0x4a5f, 0x6b31, 0x6d3f, 0x7d49, 0x6426, 0x7924, 0x7033, - 0x656c, 0x5167, 0x5947, 0x6457, 0x6a5d, 0x5477, 0x5a3a, 0x5a4d, - 0x794c, 0x615a, 0x5b3f, 0x4c45, 0x6c50, 0x4b3b, 0x5e73, 0x692a, - 0x5948, 0x6e63, 0x573d, 0x4f44, 0x504d, 0x7c26, 0x717b, 0x7d52, - 0x5141, 0x635b, 0x5349, 0x5c4f, 0x4c6d, 0x5e27, 0x663b, 0x6c21, - 0x4c39, 0x7b5e, 0x6762, 0x5441, 0x5c28, 0x6242, 0x7358, 0x6553, - 0x7359, 0x7346, 0x4d5b, 0x4d2c, 0x7c43, 0x5467, 0x5142, 0x7925, - 0x6855, 0x634e, 0x544a, 0x5f5a, 0x7b5f, 0x6763, 0x787b, 0x634f, - 0x7530, 0x5867, 0x5949, 0x782f, 0x6f76, 0x5d36, 0x6e2f, 0x4d78, - 0x5e38, 0x7c27, 0x777c, 0x7731, 0x4e3b, 0x7421, 0x6e4d, 0x612e, - 0x6c43, 0x4f7e, 0x783f, 0x5862, 0x5368, 0x5e28, 0x7464, 0x6c42, - 0x5975, 0x7945, 0x5d53, 0x5671, 0x6c7c, 0x7c70, 0x6d40, 0x4a39, - 0x6e64, 0x7261, 0x5e39, 0x5672, 0x5e74, 0x5f5b, 0x5b53, 0x7a67, - 0x5863, 0x7441, 0x5d37, 0x7275, 0x542e, 0x5673, 0x5d38, 0x4f45, - 0x5f5f, 0x723e, 0x7621, 0x6b4b, 0x717c, 0x7347, 0x606b, 0x6d7c, - 0x615b, 0x6e65, 0x5e75, 0x7a53, 0x714b, 0x502f, 0x5d39, 0x5143, - 0x7531, 0x6a46, 0x7061, 0x762c, 0x7559, 0x706b, 0x5d3a, 0x723f, - 0x7745, 0x5b22, 0x7276, 0x4a3a, 0x7775, 0x4b65, 0x6e66, 0x6053, - 0x4e25, 0x5658, 0x542f, 0x6949, 0x534e, 0x7442, 0x4b66, 0x7121, - 0x6b32, 0x7122, 0x6b33, 0x7034, 0x4b74, 0x5430, 0x7332, 0x7b37, - 0x756c, 0x6e67, 0x7432, 0x756d, 0x4f73, 0x7062, 0x6e4e, 0x714c, - 0x6538, 0x5775, 0x6373, 0x4f65, 0x4f46, 0x7333, 0x6458, 0x4f79, - 0x4f5a, 0x7a4d, 0x6663, 0x7262, 0x756e, 0x4a3b, 0x635c, 0x4e72, - 0x5659, 0x6e30, 0x7465, 0x5842, 0x5c50, 0x4c6e, 0x5560, 0x764a, - 0x7d4a, 0x5856, 0x744f, 0x5626, 0x5c3e, 0x5b54, 0x5747, 0x727e, - 0x714d, 0x6243, 0x5c5e, 0x5c5f, 0x6f2d, 0x662b, 0x795d, 0x6a3f, - 0x6f2e, 0x7450, 0x4e73, 0x662c, 0x4e5e, 0x5579, 0x6374, 0x4d50, - 0x5538, 0x777d, 0x5c29, 0x5e76, 0x5c2a, 0x7263, 0x6934, 0x525c, - 0x6966, 0x6376, 0x674a, 0x504e, 0x5a77, 0x4a3c, 0x6e68, 0x5a5e, - 0x7277, 0x627b, 0x4c26, 0x5a3b, 0x6e69, 0x755a, 0x775c, 0x616a, - 0x4e41, 0x5431, 0x7d31, 0x663d, 0x7b2d, 0x7867, 0x614e, 0x7762, - 0x756f, 0x4f47, 0x5432, 0x4c6f, 0x5468, 0x6e4f, 0x7757, 0x6026, - 0x5641, 0x615c, 0x7063, 0x7164, 0x5c71, 0x5627, 0x7475, 0x714e, - 0x7264, 0x5030, 0x6c6f, 0x793a, 0x6b35, 0x546d, 0x6244, 0x6967, - 0x6b34, 0x6a21, 0x783c, 0x4e26, 0x7946, 0x7c5a, 0x5433, 0x5339, - 0x6a5e, 0x692b, 0x6161, 0x534f, 0x7476, 0x6a40, 0x614f, 0x4c3a, - 0x6e6a, 0x7064, 0x7334, 0x546e, 0x7240, 0x7165, 0x7443, 0x6054, - 0x6b36, 0x5721, 0x4b68, 0x792d, 0x692d, 0x5864, 0x7a33, 0x6245, - 0x7c3d, 0x6c44, 0x5831, 0x5c2b, 0x5524, 0x6b69, 0x683b, 0x5857, - 0x7b2e, 0x5161, 0x5b40, 0x753e, 0x5e77, 0x4a7b, 0x7746, 0x4f48, - 0x6150, 0x6e50, 0x6974, 0x4e74, 0x554d, 0x4f5b, 0x5d3b, 0x4e2c, - 0x6968, 0x5434, 0x6447, 0x755b, 0x7a41, 0x5e29, 0x5478, 0x6f77, - 0x5333, 0x6b37, 0x6f78, 0x755c, 0x6d4c, 0x5b55, 0x714f, 0x7150, - 0x7532, 0x592e, 0x552c, 0x6246, 0x7d23, 0x7b65, 0x5f2b, 0x6275, - 0x762d, 0x7533, 0x7035, 0x6125, 0x755d, 0x6c22, 0x6d7d, 0x7534, - 0x7b38, 0x5b23, 0x564a, 0x4b59, 0x6554, 0x737a, 0x6b38, 0x6037, - 0x576c, 0x716c, 0x652f, 0x5561, 0x576d, 0x5151, 0x6172, 0x6f79, - 0x5d3c, 0x765c, 0x7065, 0x7444, 0x6969, 0x737b, 0x546f, 0x4c22, - 0x777e, 0x5f3c, 0x6b4d, 0x5037, 0x5642, 0x682d, 0x6f2f, 0x4b25, - 0x4b69, 0x7a68, 0x4c46, 0x6667, 0x6a47, 0x5b24, 0x4f49, 0x627c, - 0x6f7a, 0x6b5e, 0x7548, 0x545e, 0x6055, 0x6f30, 0x6247, 0x592f, - 0x7967, 0x6765, 0x4f4a, 0x6151, 0x6248, 0x6f7b, 0x7a79, 0x5c72, - 0x6027, 0x7868, 0x4b6a, 0x4b3c, 0x5662, 0x755e, 0x755f, 0x6e36, - 0x6276, 0x534a, 0x6f7c, 0x5144, 0x6f31, 0x5145, 0x505e, 0x5961, - 0x6038, 0x4d51, 0x7339, 0x674c, 0x5628, 0x4e27, 0x5435, 0x6448, - 0x5334, 0x6b39, 0x4b75, 0x765d, 0x7123, 0x4c47, 0x694a, 0x6170, - 0x7560, 0x7b2f, 0x4b51, 0x7b60, 0x7265, 0x6c70, 0x706c, 0x6e6b, - 0x694b, 0x4c70, 0x572f, 0x7321, 0x7c75, 0x7124, 0x6056, 0x6f32, - 0x7451, 0x7721, 0x7151, 0x4a7c, 0x4a7d, 0x4e4e, 0x7348, 0x733a, - 0x6d7e, 0x5a26, 0x606c, 0x784d, 0x4b52, 0x6b4e, 0x7958, 0x7959, - 0x4a60, 0x5a4a, 0x4b26, 0x4a48, 0x796e, 0x5b6c, 0x5031, 0x556f, - 0x6673, 0x6722, 0x6459, 0x6461, 0x7c44, 0x796f, 0x4f74, 0x7766, - 0x4e3c, 0x7445, 0x5c23, 0x5d3d, 0x7446, 0x7821, 0x6856, 0x5b41, - 0x7066, 0x6439, 0x766d, 0x792e, 0x5d3e, 0x5730, 0x5868, 0x4b3d, - 0x795a, 0x784e, 0x7970, 0x606d, 0x6333, 0x7433, 0x6a42, 0x7266, - 0x7036, 0x5b56, 0x6b64, 0x7267, 0x5755, 0x5436, 0x7968, 0x5741, - 0x6555, 0x696a, 0x574c, 0x5369, 0x6249, 0x7c5b, 0x4d2d, 0x4c30, - 0x6a22, 0x6476, 0x5040, 0x7037, 0x6e21, 0x5776, 0x624a, 0x624b, - 0x7a4f, 0x6b5f, 0x564b, 0x7434, 0x6d4d, 0x6452, 0x6a29, 0x643a, - 0x7322, 0x4d52, 0x764b, 0x7166, 0x6d41, 0x683c, 0x6e51, 0x7067, - 0x624c, 0x642a, 0x7561, 0x6d5a, 0x576e, 0x5171, 0x696b, 0x696c, - 0x6064, 0x5a27, 0x5d54, 0x6a23, 0x5643, 0x5674, 0x5a5f, 0x6f33, - 0x624d, 0x6f7d, 0x7268, 0x6f45, 0x6767, 0x577d, 0x674e, 0x5f5c, - 0x7947, 0x5976, 0x5f2c, 0x565a, 0x5c24, 0x7038, 0x557a, 0x6477, - 0x5644, 0x746c, 0x6f7e, 0x7021, 0x5e2a, 0x5a3c, 0x587c, 0x7a54, - 0x6c65, 0x7c28, 0x6c66, 0x584b, 0x7b39, 0x6453, 0x4d79, 0x4f53, - 0x4a6a, 0x4f54, 0x783d, 0x7447, 0x6a5f, 0x795b, 0x5437, 0x6b65, - 0x6152, 0x6a24, 0x7a42, 0x7b61, 0x7a6d, 0x7022, 0x4c71, 0x7a23, - 0x6277, 0x624e, 0x6975, 0x616b, 0x6768, 0x6857, 0x5a78, 0x544b, - 0x7776, 0x5645, 0x5469, 0x7a7a, 0x4c72, 0x775d, 0x5e3a, 0x4e28, - 0x7039, 0x647e, 0x6449, 0x6454, 0x6a43, 0x6f34, 0x573e, 0x7b62, - 0x4d53, 0x6f35, 0x7a69, 0x7926, 0x5f3d, 0x7747, 0x787d, 0x787c, - 0x5e2b, 0x5b68, 0x635d, 0x6162, 0x5146, 0x7650, 0x6b66, 0x5a79, - 0x6c47, 0x5e78, 0x7869, 0x635e, 0x4e75, 0x7a43, 0x6557, 0x6c48, - 0x7349, 0x643b, 0x662e, 0x6f36, 0x5c3f, 0x4e3d, 0x5843, 0x504f, - 0x4f7a, 0x734a, 0x6057, 0x5147, 0x692e, 0x683d, 0x7a44, 0x624f, - 0x7a45, 0x7938, 0x5c60, 0x7b30, 0x5829, 0x655f, 0x7927, 0x766e, - 0x764c, 0x6278, 0x6c71, 0x5a60, 0x7152, 0x524c, 0x4f4b, 0x4a3d, - 0x5d3f, 0x766f, 0x5e79, 0x7a34, 0x552d, 0x7167, 0x5e3e, 0x5c40, - 0x5148, 0x5149, 0x783e, 0x4b76, 0x5479, 0x7562, 0x6153, 0x5869, - 0x787e, 0x4f4c, 0x7d24, 0x4e76, 0x7a50, 0x4c73, 0x663e, 0x762e, - 0x5570, 0x514a, 0x7c3e, 0x5571, 0x4d69, 0x7a35, 0x6250, 0x7477, - 0x4d54, 0x6723, 0x5b25, 0x6251, 0x5722, 0x7763, 0x6a26, 0x5021, - 0x4e5a, 0x7b6b, 0x5b26, 0x5b5e, 0x5865, 0x6a60, 0x582a, 0x6560, - 0x565b, 0x6f46, 0x786a, 0x6455, 0x4e77, 0x6058, 0x576f, 0x746d, - 0x4d66, 0x4c74, 0x7563, 0x644a, 0x5c61, 0x7948, 0x7c3f, 0x6827, - 0x5844, 0x4b3e, 0x5c2e, 0x5777, 0x7068, 0x5d40, 0x4f4d, 0x5c73, - 0x5930, 0x6669, 0x643c, 0x6a44, 0x646c, 0x6465, 0x7b78, 0x4c3b, - 0x643d, 0x4d5c, 0x5977, 0x5d5f, 0x6d4e, 0x5950, 0x6523, 0x794d, - 0x4d2e, 0x4f4e, 0x762f, 0x7d53, 0x6b6d, 0x565c, 0x6524, 0x5536, - 0x565d, 0x7969, 0x6724, 0x5663, 0x514b, 0x5664, 0x5572, 0x5e7a, - 0x5778, 0x586a, 0x4f55, 0x587d, 0x582b, 0x7d4b, 0x7c5c, 0x6028, - 0x5573, 0x7d59, 0x4c23, 0x5979, 0x536a, 0x7575, 0x6f47, 0x535a, - 0x5a3d, 0x6828, 0x5c2f, 0x7023, 0x4d55, 0x6029, 0x5e2c, 0x703a, - 0x6e31, 0x6e32, 0x764d, 0x6e52, 0x5646, 0x6065, 0x733b, 0x6561, - 0x644b, 0x5723, 0x5b42, 0x4a7e, 0x4f4f, 0x3021, 0x3022, 0x3023, - 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, - 0x302c, 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, - 0x3034, 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, - 0x303c, 0x303d, 0x303e, 0x303f, 0x3040, 0x3041, 0x3042, 0x3043, - 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, - 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, - 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, - 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, - 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, - 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, - 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, - 0x307c, 0x307d, 0x307e, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, - 0x3126, 0x3127, 0x3128, 0x3129, 0x312a, 0x312b, 0x312c, 0x312d, - 0x312e, 0x312f, 0x3130, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, - 0x3136, 0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, - 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, - 0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, - 0x314e, 0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, - 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, - 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, - 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, - 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, - 0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, - 0x317e, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, - 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e, 0x322f, - 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3236, 0x3237, - 0x3238, 0x3239, 0x323a, 0x323b, 0x323c, 0x323d, 0x323e, 0x323f, - 0x3240, 0x3241, 0x3242, 0x3243, 0x3244, 0x3245, 0x3246, 0x3247, - 0x3248, 0x3249, 0x324a, 0x324b, 0x324c, 0x324d, 0x324e, 0x324f, - 0x3250, 0x3251, 0x3252, 0x3253, 0x3254, 0x3255, 0x3256, 0x3257, - 0x3258, 0x3259, 0x325a, 0x325b, 0x325c, 0x325d, 0x325e, 0x325f, - 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, - 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, - 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, - 0x3278, 0x3279, 0x327a, 0x327b, 0x327c, 0x327d, 0x327e, 0x3321, - 0x3322, 0x3323, 0x3324, 0x3325, 0x3326, 0x3327, 0x3328, 0x3329, - 0x332a, 0x332b, 0x332c, 0x332d, 0x332e, 0x332f, 0x3330, 0x3331, - 0x3332, 0x3333, 0x3334, 0x3335, 0x3336, 0x3337, 0x3338, 0x3339, - 0x333a, 0x333b, 0x333c, 0x333d, 0x333e, 0x333f, 0x3340, 0x3341, - 0x3342, 0x3343, 0x3344, 0x3345, 0x3346, 0x3347, 0x3348, 0x3349, - 0x334a, 0x334b, 0x334c, 0x334d, 0x334e, 0x334f, 0x3350, 0x3351, - 0x3352, 0x3353, 0x3354, 0x3355, 0x3356, 0x3357, 0x3358, 0x3359, - 0x335a, 0x335b, 0x335c, 0x335d, 0x335e, 0x335f, 0x3360, 0x3361, - 0x3362, 0x3363, 0x3364, 0x3365, 0x3366, 0x3367, 0x3368, 0x3369, - 0x336a, 0x336b, 0x336c, 0x336d, 0x336e, 0x336f, 0x3370, 0x3371, - 0x3372, 0x3373, 0x3374, 0x3375, 0x3376, 0x3377, 0x3378, 0x3379, - 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x3421, 0x3422, 0x3423, - 0x3424, 0x3425, 0x3426, 0x3427, 0x3428, 0x3429, 0x342a, 0x342b, - 0x342c, 0x342d, 0x342e, 0x342f, 0x3430, 0x3431, 0x3432, 0x3433, - 0x3434, 0x3435, 0x3436, 0x3437, 0x3438, 0x3439, 0x343a, 0x343b, - 0x343c, 0x343d, 0x343e, 0x343f, 0x3440, 0x3441, 0x3442, 0x3443, - 0x3444, 0x3445, 0x3446, 0x3447, 0x3448, 0x3449, 0x344a, 0x344b, - 0x344c, 0x344d, 0x344e, 0x344f, 0x3450, 0x3451, 0x3452, 0x3453, - 0x3454, 0x3455, 0x3456, 0x3457, 0x3458, 0x3459, 0x345a, 0x345b, - 0x345c, 0x345d, 0x345e, 0x345f, 0x3460, 0x3461, 0x3462, 0x3463, - 0x3464, 0x3465, 0x3466, 0x3467, 0x3468, 0x3469, 0x346a, 0x346b, - 0x346c, 0x346d, 0x346e, 0x346f, 0x3470, 0x3471, 0x3472, 0x3473, - 0x3474, 0x3475, 0x3476, 0x3477, 0x3478, 0x3479, 0x347a, 0x347b, - 0x347c, 0x347d, 0x347e, 0x3521, 0x3522, 0x3523, 0x3524, 0x3525, - 0x3526, 0x3527, 0x3528, 0x3529, 0x352a, 0x352b, 0x352c, 0x352d, - 0x352e, 0x352f, 0x3530, 0x3531, 0x3532, 0x3533, 0x3534, 0x3535, - 0x3536, 0x3537, 0x3538, 0x3539, 0x353a, 0x353b, 0x353c, 0x353d, - 0x353e, 0x353f, 0x3540, 0x3541, 0x3542, 0x3543, 0x3544, 0x3545, - 0x3546, 0x3547, 0x3548, 0x3549, 0x354a, 0x354b, 0x354c, 0x354d, - 0x354e, 0x354f, 0x3550, 0x3551, 0x3552, 0x3553, 0x3554, 0x3555, - 0x3556, 0x3557, 0x3558, 0x3559, 0x355a, 0x355b, 0x355c, 0x355d, - 0x355e, 0x355f, 0x3560, 0x3561, 0x3562, 0x3563, 0x3564, 0x3565, - 0x3566, 0x3567, 0x3568, 0x3569, 0x356a, 0x356b, 0x356c, 0x356d, - 0x356e, 0x356f, 0x3570, 0x3571, 0x3572, 0x3573, 0x3574, 0x3575, - 0x3576, 0x3577, 0x3578, 0x3579, 0x357a, 0x357b, 0x357c, 0x357d, - 0x357e, 0x3621, 0x3622, 0x3623, 0x3624, 0x3625, 0x3626, 0x3627, - 0x3628, 0x3629, 0x362a, 0x362b, 0x362c, 0x362d, 0x362e, 0x362f, - 0x3630, 0x3631, 0x3632, 0x3633, 0x3634, 0x3635, 0x3636, 0x3637, - 0x3638, 0x3639, 0x363a, 0x363b, 0x363c, 0x363d, 0x363e, 0x363f, - 0x3640, 0x3641, 0x3642, 0x3643, 0x3644, 0x3645, 0x3646, 0x3647, - 0x3648, 0x3649, 0x364a, 0x364b, 0x364c, 0x364d, 0x364e, 0x364f, - 0x3650, 0x3651, 0x3652, 0x3653, 0x3654, 0x3655, 0x3656, 0x3657, - 0x3658, 0x3659, 0x365a, 0x365b, 0x365c, 0x365d, 0x365e, 0x365f, - 0x3660, 0x3661, 0x3662, 0x3663, 0x3664, 0x3665, 0x3666, 0x3667, - 0x3668, 0x3669, 0x366a, 0x366b, 0x366c, 0x366d, 0x366e, 0x366f, - 0x3670, 0x3671, 0x3672, 0x3673, 0x3674, 0x3675, 0x3676, 0x3677, - 0x3678, 0x3679, 0x367a, 0x367b, 0x367c, 0x367d, 0x367e, 0x3721, - 0x3722, 0x3723, 0x3724, 0x3725, 0x3726, 0x3727, 0x3728, 0x3729, - 0x372a, 0x372b, 0x372c, 0x372d, 0x372e, 0x372f, 0x3730, 0x3731, - 0x3732, 0x3733, 0x3734, 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, - 0x373a, 0x373b, 0x373c, 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, - 0x3742, 0x3743, 0x3744, 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, - 0x374a, 0x374b, 0x374c, 0x374d, 0x374e, 0x374f, 0x3750, 0x3751, - 0x3752, 0x3753, 0x3754, 0x3755, 0x3756, 0x3757, 0x3758, 0x3759, - 0x375a, 0x375b, 0x375c, 0x375d, 0x375e, 0x375f, 0x3760, 0x3761, - 0x3762, 0x3763, 0x3764, 0x3765, 0x3766, 0x3767, 0x3768, 0x3769, - 0x376a, 0x376b, 0x376c, 0x376d, 0x376e, 0x376f, 0x3770, 0x3771, - 0x3772, 0x3773, 0x3774, 0x3775, 0x3776, 0x3777, 0x3778, 0x3779, - 0x377a, 0x377b, 0x377c, 0x377d, 0x377e, 0x3821, 0x3822, 0x3823, - 0x3824, 0x3825, 0x3826, 0x3827, 0x3828, 0x3829, 0x382a, 0x382b, - 0x382c, 0x382d, 0x382e, 0x382f, 0x3830, 0x3831, 0x3832, 0x3833, - 0x3834, 0x3835, 0x3836, 0x3837, 0x3838, 0x3839, 0x383a, 0x383b, - 0x383c, 0x383d, 0x383e, 0x383f, 0x3840, 0x3841, 0x3842, 0x3843, - 0x3844, 0x3845, 0x3846, 0x3847, 0x3848, 0x3849, 0x384a, 0x384b, - 0x384c, 0x384d, 0x384e, 0x384f, 0x3850, 0x3851, 0x3852, 0x3853, - 0x3854, 0x3855, 0x3856, 0x3857, 0x3858, 0x3859, 0x385a, 0x385b, - 0x385c, 0x385d, 0x385e, 0x385f, 0x3860, 0x3861, 0x3862, 0x3863, - 0x3864, 0x3865, 0x3866, 0x3867, 0x3868, 0x3869, 0x386a, 0x386b, - 0x386c, 0x386d, 0x386e, 0x386f, 0x3870, 0x3871, 0x3872, 0x3873, - 0x3874, 0x3875, 0x3876, 0x3877, 0x3878, 0x3879, 0x387a, 0x387b, - 0x387c, 0x387d, 0x387e, 0x3921, 0x3922, 0x3923, 0x3924, 0x3925, - 0x3926, 0x3927, 0x3928, 0x3929, 0x392a, 0x392b, 0x392c, 0x392d, - 0x392e, 0x392f, 0x3930, 0x3931, 0x3932, 0x3933, 0x3934, 0x3935, - 0x3936, 0x3937, 0x3938, 0x3939, 0x393a, 0x393b, 0x393c, 0x393d, - 0x393e, 0x393f, 0x3940, 0x3941, 0x3942, 0x3943, 0x3944, 0x3945, - 0x3946, 0x3947, 0x3948, 0x3949, 0x394a, 0x394b, 0x394c, 0x394d, - 0x394e, 0x394f, 0x3950, 0x3951, 0x3952, 0x3953, 0x3954, 0x3955, - 0x3956, 0x3957, 0x3958, 0x3959, 0x395a, 0x395b, 0x395c, 0x395d, - 0x395e, 0x395f, 0x3960, 0x3961, 0x3962, 0x3963, 0x3964, 0x3965, - 0x3966, 0x3967, 0x3968, 0x3969, 0x396a, 0x396b, 0x396c, 0x396d, - 0x396e, 0x396f, 0x3970, 0x3971, 0x3972, 0x3973, 0x3974, 0x3975, - 0x3976, 0x3977, 0x3978, 0x3979, 0x397a, 0x397b, 0x397c, 0x397d, - 0x397e, 0x3a21, 0x3a22, 0x3a23, 0x3a24, 0x3a25, 0x3a26, 0x3a27, - 0x3a28, 0x3a29, 0x3a2a, 0x3a2b, 0x3a2c, 0x3a2d, 0x3a2e, 0x3a2f, - 0x3a30, 0x3a31, 0x3a32, 0x3a33, 0x3a34, 0x3a35, 0x3a36, 0x3a37, - 0x3a38, 0x3a39, 0x3a3a, 0x3a3b, 0x3a3c, 0x3a3d, 0x3a3e, 0x3a3f, - 0x3a40, 0x3a41, 0x3a42, 0x3a43, 0x3a44, 0x3a45, 0x3a46, 0x3a47, - 0x3a48, 0x3a49, 0x3a4a, 0x3a4b, 0x3a4c, 0x3a4d, 0x3a4e, 0x3a4f, - 0x3a50, 0x3a51, 0x3a52, 0x3a53, 0x3a54, 0x3a55, 0x3a56, 0x3a57, - 0x3a58, 0x3a59, 0x3a5a, 0x3a5b, 0x3a5c, 0x3a5d, 0x3a5e, 0x3a5f, - 0x3a60, 0x3a61, 0x3a62, 0x3a63, 0x3a64, 0x3a65, 0x3a66, 0x3a67, - 0x3a68, 0x3a69, 0x3a6a, 0x3a6b, 0x3a6c, 0x3a6d, 0x3a6e, 0x3a6f, - 0x3a70, 0x3a71, 0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a77, - 0x3a78, 0x3a79, 0x3a7a, 0x3a7b, 0x3a7c, 0x3a7d, 0x3a7e, 0x3b21, - 0x3b22, 0x3b23, 0x3b24, 0x3b25, 0x3b26, 0x3b27, 0x3b28, 0x3b29, - 0x3b2a, 0x3b2b, 0x3b2c, 0x3b2d, 0x3b2e, 0x3b2f, 0x3b30, 0x3b31, - 0x3b32, 0x3b33, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3b38, 0x3b39, - 0x3b3a, 0x3b3b, 0x3b3c, 0x3b3d, 0x3b3e, 0x3b3f, 0x3b40, 0x3b41, - 0x3b42, 0x3b43, 0x3b44, 0x3b45, 0x3b46, 0x3b47, 0x3b48, 0x3b49, - 0x3b4a, 0x3b4b, 0x3b4c, 0x3b4d, 0x3b4e, 0x3b4f, 0x3b50, 0x3b51, - 0x3b52, 0x3b53, 0x3b54, 0x3b55, 0x3b56, 0x3b57, 0x3b58, 0x3b59, - 0x3b5a, 0x3b5b, 0x3b5c, 0x3b5d, 0x3b5e, 0x3b5f, 0x3b60, 0x3b61, - 0x3b62, 0x3b63, 0x3b64, 0x3b65, 0x3b66, 0x3b67, 0x3b68, 0x3b69, - 0x3b6a, 0x3b6b, 0x3b6c, 0x3b6d, 0x3b6e, 0x3b6f, 0x3b70, 0x3b71, - 0x3b72, 0x3b73, 0x3b74, 0x3b75, 0x3b76, 0x3b77, 0x3b78, 0x3b79, - 0x3b7a, 0x3b7b, 0x3b7c, 0x3b7d, 0x3b7e, 0x3c21, 0x3c22, 0x3c23, - 0x3c24, 0x3c25, 0x3c26, 0x3c27, 0x3c28, 0x3c29, 0x3c2a, 0x3c2b, - 0x3c2c, 0x3c2d, 0x3c2e, 0x3c2f, 0x3c30, 0x3c31, 0x3c32, 0x3c33, - 0x3c34, 0x3c35, 0x3c36, 0x3c37, 0x3c38, 0x3c39, 0x3c3a, 0x3c3b, - 0x3c3c, 0x3c3d, 0x3c3e, 0x3c3f, 0x3c40, 0x3c41, 0x3c42, 0x3c43, - 0x3c44, 0x3c45, 0x3c46, 0x3c47, 0x3c48, 0x3c49, 0x3c4a, 0x3c4b, - 0x3c4c, 0x3c4d, 0x3c4e, 0x3c4f, 0x3c50, 0x3c51, 0x3c52, 0x3c53, - 0x3c54, 0x3c55, 0x3c56, 0x3c57, 0x3c58, 0x3c59, 0x3c5a, 0x3c5b, - 0x3c5c, 0x3c5d, 0x3c5e, 0x3c5f, 0x3c60, 0x3c61, 0x3c62, 0x3c63, - 0x3c64, 0x3c65, 0x3c66, 0x3c67, 0x3c68, 0x3c69, 0x3c6a, 0x3c6b, - 0x3c6c, 0x3c6d, 0x3c6e, 0x3c6f, 0x3c70, 0x3c71, 0x3c72, 0x3c73, - 0x3c74, 0x3c75, 0x3c76, 0x3c77, 0x3c78, 0x3c79, 0x3c7a, 0x3c7b, - 0x3c7c, 0x3c7d, 0x3c7e, 0x3d21, 0x3d22, 0x3d23, 0x3d24, 0x3d25, - 0x3d26, 0x3d27, 0x3d28, 0x3d29, 0x3d2a, 0x3d2b, 0x3d2c, 0x3d2d, - 0x3d2e, 0x3d2f, 0x3d30, 0x3d31, 0x3d32, 0x3d33, 0x3d34, 0x3d35, - 0x3d36, 0x3d37, 0x3d38, 0x3d39, 0x3d3a, 0x3d3b, 0x3d3c, 0x3d3d, - 0x3d3e, 0x3d3f, 0x3d40, 0x3d41, 0x3d42, 0x3d43, 0x3d44, 0x3d45, - 0x3d46, 0x3d47, 0x3d48, 0x3d49, 0x3d4a, 0x3d4b, 0x3d4c, 0x3d4d, - 0x3d4e, 0x3d4f, 0x3d50, 0x3d51, 0x3d52, 0x3d53, 0x3d54, 0x3d55, - 0x3d56, 0x3d57, 0x3d58, 0x3d59, 0x3d5a, 0x3d5b, 0x3d5c, 0x3d5d, - 0x3d5e, 0x3d5f, 0x3d60, 0x3d61, 0x3d62, 0x3d63, 0x3d64, 0x3d65, - 0x3d66, 0x3d67, 0x3d68, 0x3d69, 0x3d6a, 0x3d6b, 0x3d6c, 0x3d6d, - 0x3d6e, 0x3d6f, 0x3d70, 0x3d71, 0x3d72, 0x3d73, 0x3d74, 0x3d75, - 0x3d76, 0x3d77, 0x3d78, 0x3d79, 0x3d7a, 0x3d7b, 0x3d7c, 0x3d7d, - 0x3d7e, 0x3e21, 0x3e22, 0x3e23, 0x3e24, 0x3e25, 0x3e26, 0x3e27, - 0x3e28, 0x3e29, 0x3e2a, 0x3e2b, 0x3e2c, 0x3e2d, 0x3e2e, 0x3e2f, - 0x3e30, 0x3e31, 0x3e32, 0x3e33, 0x3e34, 0x3e35, 0x3e36, 0x3e37, - 0x3e38, 0x3e39, 0x3e3a, 0x3e3b, 0x3e3c, 0x3e3d, 0x3e3e, 0x3e3f, - 0x3e40, 0x3e41, 0x3e42, 0x3e43, 0x3e44, 0x3e45, 0x3e46, 0x3e47, - 0x3e48, 0x3e49, 0x3e4a, 0x3e4b, 0x3e4c, 0x3e4d, 0x3e4e, 0x3e4f, - 0x3e50, 0x3e51, 0x3e52, 0x3e53, 0x3e54, 0x3e55, 0x3e56, 0x3e57, - 0x3e58, 0x3e59, 0x3e5a, 0x3e5b, 0x3e5c, 0x3e5d, 0x3e5e, 0x3e5f, - 0x3e60, 0x3e61, 0x3e62, 0x3e63, 0x3e64, 0x3e65, 0x3e66, 0x3e67, - 0x3e68, 0x3e69, 0x3e6a, 0x3e6b, 0x3e6c, 0x3e6d, 0x3e6e, 0x3e6f, - 0x3e70, 0x3e71, 0x3e72, 0x3e73, 0x3e74, 0x3e75, 0x3e76, 0x3e77, - 0x3e78, 0x3e79, 0x3e7a, 0x3e7b, 0x3e7c, 0x3e7d, 0x3e7e, 0x3f21, - 0x3f22, 0x3f23, 0x3f24, 0x3f25, 0x3f26, 0x3f27, 0x3f28, 0x3f29, - 0x3f2a, 0x3f2b, 0x3f2c, 0x3f2d, 0x3f2e, 0x3f2f, 0x3f30, 0x3f31, - 0x3f32, 0x3f33, 0x3f34, 0x3f35, 0x3f36, 0x3f37, 0x3f38, 0x3f39, - 0x3f3a, 0x3f3b, 0x3f3c, 0x3f3d, 0x3f3e, 0x3f3f, 0x3f40, 0x3f41, - 0x3f42, 0x3f43, 0x3f44, 0x3f45, 0x3f46, 0x3f47, 0x3f48, 0x3f49, - 0x3f4a, 0x3f4b, 0x3f4c, 0x3f4d, 0x3f4e, 0x3f4f, 0x3f50, 0x3f51, - 0x3f52, 0x3f53, 0x3f54, 0x3f55, 0x3f56, 0x3f57, 0x3f58, 0x3f59, - 0x3f5a, 0x3f5b, 0x3f5c, 0x3f5d, 0x3f5e, 0x3f5f, 0x3f60, 0x3f61, - 0x3f62, 0x3f63, 0x3f64, 0x3f65, 0x3f66, 0x3f67, 0x3f68, 0x3f69, - 0x3f6a, 0x3f6b, 0x3f6c, 0x3f6d, 0x3f6e, 0x3f6f, 0x3f70, 0x3f71, - 0x3f72, 0x3f73, 0x3f74, 0x3f75, 0x3f76, 0x3f77, 0x3f78, 0x3f79, - 0x3f7a, 0x3f7b, 0x3f7c, 0x3f7d, 0x3f7e, 0x4021, 0x4022, 0x4023, - 0x4024, 0x4025, 0x4026, 0x4027, 0x4028, 0x4029, 0x402a, 0x402b, - 0x402c, 0x402d, 0x402e, 0x402f, 0x4030, 0x4031, 0x4032, 0x4033, - 0x4034, 0x4035, 0x4036, 0x4037, 0x4038, 0x4039, 0x403a, 0x403b, - 0x403c, 0x403d, 0x403e, 0x403f, 0x4040, 0x4041, 0x4042, 0x4043, - 0x4044, 0x4045, 0x4046, 0x4047, 0x4048, 0x4049, 0x404a, 0x404b, - 0x404c, 0x404d, 0x404e, 0x404f, 0x4050, 0x4051, 0x4052, 0x4053, - 0x4054, 0x4055, 0x4056, 0x4057, 0x4058, 0x4059, 0x405a, 0x405b, - 0x405c, 0x405d, 0x405e, 0x405f, 0x4060, 0x4061, 0x4062, 0x4063, - 0x4064, 0x4065, 0x4066, 0x4067, 0x4068, 0x4069, 0x406a, 0x406b, - 0x406c, 0x406d, 0x406e, 0x406f, 0x4070, 0x4071, 0x4072, 0x4073, - 0x4074, 0x4075, 0x4076, 0x4077, 0x4078, 0x4079, 0x407a, 0x407b, - 0x407c, 0x407d, 0x407e, 0x4121, 0x4122, 0x4123, 0x4124, 0x4125, - 0x4126, 0x4127, 0x4128, 0x4129, 0x412a, 0x412b, 0x412c, 0x412d, - 0x412e, 0x412f, 0x4130, 0x4131, 0x4132, 0x4133, 0x4134, 0x4135, - 0x4136, 0x4137, 0x4138, 0x4139, 0x413a, 0x413b, 0x413c, 0x413d, - 0x413e, 0x413f, 0x4140, 0x4141, 0x4142, 0x4143, 0x4144, 0x4145, - 0x4146, 0x4147, 0x4148, 0x4149, 0x414a, 0x414b, 0x414c, 0x414d, - 0x414e, 0x414f, 0x4150, 0x4151, 0x4152, 0x4153, 0x4154, 0x4155, - 0x4156, 0x4157, 0x4158, 0x4159, 0x415a, 0x415b, 0x415c, 0x415d, - 0x415e, 0x415f, 0x4160, 0x4161, 0x4162, 0x4163, 0x4164, 0x4165, - 0x4166, 0x4167, 0x4168, 0x4169, 0x416a, 0x416b, 0x416c, 0x416d, - 0x416e, 0x416f, 0x4170, 0x4171, 0x4172, 0x4173, 0x4174, 0x4175, - 0x4176, 0x4177, 0x4178, 0x4179, 0x417a, 0x417b, 0x417c, 0x417d, - 0x417e, 0x4221, 0x4222, 0x4223, 0x4224, 0x4225, 0x4226, 0x4227, - 0x4228, 0x4229, 0x422a, 0x422b, 0x422c, 0x422d, 0x422e, 0x422f, - 0x4230, 0x4231, 0x4232, 0x4233, 0x4234, 0x4235, 0x4236, 0x4237, - 0x4238, 0x4239, 0x423a, 0x423b, 0x423c, 0x423d, 0x423e, 0x423f, - 0x4240, 0x4241, 0x4242, 0x4243, 0x4244, 0x4245, 0x4246, 0x4247, - 0x4248, 0x4249, 0x424a, 0x424b, 0x424c, 0x424d, 0x424e, 0x424f, - 0x4250, 0x4251, 0x4252, 0x4253, 0x4254, 0x4255, 0x4256, 0x4257, - 0x4258, 0x4259, 0x425a, 0x425b, 0x425c, 0x425d, 0x425e, 0x425f, - 0x4260, 0x4261, 0x4262, 0x4263, 0x4264, 0x4265, 0x4266, 0x4267, - 0x4268, 0x4269, 0x426a, 0x426b, 0x426c, 0x426d, 0x426e, 0x426f, - 0x4270, 0x4271, 0x4272, 0x4273, 0x4274, 0x4275, 0x4276, 0x4277, - 0x4278, 0x4279, 0x427a, 0x427b, 0x427c, 0x427d, 0x427e, 0x4321, - 0x4322, 0x4323, 0x4324, 0x4325, 0x4326, 0x4327, 0x4328, 0x4329, - 0x432a, 0x432b, 0x432c, 0x432d, 0x432e, 0x432f, 0x4330, 0x4331, - 0x4332, 0x4333, 0x4334, 0x4335, 0x4336, 0x4337, 0x4338, 0x4339, - 0x433a, 0x433b, 0x433c, 0x433d, 0x433e, 0x433f, 0x4340, 0x4341, - 0x4342, 0x4343, 0x4344, 0x4345, 0x4346, 0x4347, 0x4348, 0x4349, - 0x434a, 0x434b, 0x434c, 0x434d, 0x434e, 0x434f, 0x4350, 0x4351, - 0x4352, 0x4353, 0x4354, 0x4355, 0x4356, 0x4357, 0x4358, 0x4359, - 0x435a, 0x435b, 0x435c, 0x435d, 0x435e, 0x435f, 0x4360, 0x4361, - 0x4362, 0x4363, 0x4364, 0x4365, 0x4366, 0x4367, 0x4368, 0x4369, - 0x436a, 0x436b, 0x436c, 0x436d, 0x436e, 0x436f, 0x4370, 0x4371, - 0x4372, 0x4373, 0x4374, 0x4375, 0x4376, 0x4377, 0x4378, 0x4379, - 0x437a, 0x437b, 0x437c, 0x437d, 0x437e, 0x4421, 0x4422, 0x4423, - 0x4424, 0x4425, 0x4426, 0x4427, 0x4428, 0x4429, 0x442a, 0x442b, - 0x442c, 0x442d, 0x442e, 0x442f, 0x4430, 0x4431, 0x4432, 0x4433, - 0x4434, 0x4435, 0x4436, 0x4437, 0x4438, 0x4439, 0x443a, 0x443b, - 0x443c, 0x443d, 0x443e, 0x443f, 0x4440, 0x4441, 0x4442, 0x4443, - 0x4444, 0x4445, 0x4446, 0x4447, 0x4448, 0x4449, 0x444a, 0x444b, - 0x444c, 0x444d, 0x444e, 0x444f, 0x4450, 0x4451, 0x4452, 0x4453, - 0x4454, 0x4455, 0x4456, 0x4457, 0x4458, 0x4459, 0x445a, 0x445b, - 0x445c, 0x445d, 0x445e, 0x445f, 0x4460, 0x4461, 0x4462, 0x4463, - 0x4464, 0x4465, 0x4466, 0x4467, 0x4468, 0x4469, 0x446a, 0x446b, - 0x446c, 0x446d, 0x446e, 0x446f, 0x4470, 0x4471, 0x4472, 0x4473, - 0x4474, 0x4475, 0x4476, 0x4477, 0x4478, 0x4479, 0x447a, 0x447b, - 0x447c, 0x447d, 0x447e, 0x4521, 0x4522, 0x4523, 0x4524, 0x4525, - 0x4526, 0x4527, 0x4528, 0x4529, 0x452a, 0x452b, 0x452c, 0x452d, - 0x452e, 0x452f, 0x4530, 0x4531, 0x4532, 0x4533, 0x4534, 0x4535, - 0x4536, 0x4537, 0x4538, 0x4539, 0x453a, 0x453b, 0x453c, 0x453d, - 0x453e, 0x453f, 0x4540, 0x4541, 0x4542, 0x4543, 0x4544, 0x4545, - 0x4546, 0x4547, 0x4548, 0x4549, 0x454a, 0x454b, 0x454c, 0x454d, - 0x454e, 0x454f, 0x4550, 0x4551, 0x4552, 0x4553, 0x4554, 0x4555, - 0x4556, 0x4557, 0x4558, 0x4559, 0x455a, 0x455b, 0x455c, 0x455d, - 0x455e, 0x455f, 0x4560, 0x4561, 0x4562, 0x4563, 0x4564, 0x4565, - 0x4566, 0x4567, 0x4568, 0x4569, 0x456a, 0x456b, 0x456c, 0x456d, - 0x456e, 0x456f, 0x4570, 0x4571, 0x4572, 0x4573, 0x4574, 0x4575, - 0x4576, 0x4577, 0x4578, 0x4579, 0x457a, 0x457b, 0x457c, 0x457d, - 0x457e, 0x4621, 0x4622, 0x4623, 0x4624, 0x4625, 0x4626, 0x4627, - 0x4628, 0x4629, 0x462a, 0x462b, 0x462c, 0x462d, 0x462e, 0x462f, - 0x4630, 0x4631, 0x4632, 0x4633, 0x4634, 0x4635, 0x4636, 0x4637, - 0x4638, 0x4639, 0x463a, 0x463b, 0x463c, 0x463d, 0x463e, 0x463f, - 0x4640, 0x4641, 0x4642, 0x4643, 0x4644, 0x4645, 0x4646, 0x4647, - 0x4648, 0x4649, 0x464a, 0x464b, 0x464c, 0x464d, 0x464e, 0x464f, - 0x4650, 0x4651, 0x4652, 0x4653, 0x4654, 0x4655, 0x4656, 0x4657, - 0x4658, 0x4659, 0x465a, 0x465b, 0x465c, 0x465d, 0x465e, 0x465f, - 0x4660, 0x4661, 0x4662, 0x4663, 0x4664, 0x4665, 0x4666, 0x4667, - 0x4668, 0x4669, 0x466a, 0x466b, 0x466c, 0x466d, 0x466e, 0x466f, - 0x4670, 0x4671, 0x4672, 0x4673, 0x4674, 0x4675, 0x4676, 0x4677, - 0x4678, 0x4679, 0x467a, 0x467b, 0x467c, 0x467d, 0x467e, 0x4721, - 0x4722, 0x4723, 0x4724, 0x4725, 0x4726, 0x4727, 0x4728, 0x4729, - 0x472a, 0x472b, 0x472c, 0x472d, 0x472e, 0x472f, 0x4730, 0x4731, - 0x4732, 0x4733, 0x4734, 0x4735, 0x4736, 0x4737, 0x4738, 0x4739, - 0x473a, 0x473b, 0x473c, 0x473d, 0x473e, 0x473f, 0x4740, 0x4741, - 0x4742, 0x4743, 0x4744, 0x4745, 0x4746, 0x4747, 0x4748, 0x4749, - 0x474a, 0x474b, 0x474c, 0x474d, 0x474e, 0x474f, 0x4750, 0x4751, - 0x4752, 0x4753, 0x4754, 0x4755, 0x4756, 0x4757, 0x4758, 0x4759, - 0x475a, 0x475b, 0x475c, 0x475d, 0x475e, 0x475f, 0x4760, 0x4761, - 0x4762, 0x4763, 0x4764, 0x4765, 0x4766, 0x4767, 0x4768, 0x4769, - 0x476a, 0x476b, 0x476c, 0x476d, 0x476e, 0x476f, 0x4770, 0x4771, - 0x4772, 0x4773, 0x4774, 0x4775, 0x4776, 0x4777, 0x4778, 0x4779, - 0x477a, 0x477b, 0x477c, 0x477d, 0x477e, 0x4821, 0x4822, 0x4823, - 0x4824, 0x4825, 0x4826, 0x4827, 0x4828, 0x4829, 0x482a, 0x482b, - 0x482c, 0x482d, 0x482e, 0x482f, 0x4830, 0x4831, 0x4832, 0x4833, - 0x4834, 0x4835, 0x4836, 0x4837, 0x4838, 0x4839, 0x483a, 0x483b, - 0x483c, 0x483d, 0x483e, 0x483f, 0x4840, 0x4841, 0x4842, 0x4843, - 0x4844, 0x4845, 0x4846, 0x4847, 0x4848, 0x4849, 0x484a, 0x484b, - 0x484c, 0x484d, 0x484e, 0x484f, 0x4850, 0x4851, 0x4852, 0x4853, - 0x4854, 0x4855, 0x4856, 0x4857, 0x4858, 0x4859, 0x485a, 0x485b, - 0x485c, 0x485d, 0x485e, 0x485f, 0x4860, 0x4861, 0x4862, 0x4863, - 0x4864, 0x4865, 0x4866, 0x4867, 0x4868, 0x4869, 0x486a, 0x486b, - 0x486c, 0x486d, 0x486e, 0x486f, 0x4870, 0x4871, 0x4872, 0x4873, - 0x4874, 0x4875, 0x4876, 0x4877, 0x4878, 0x4879, 0x487a, 0x487b, - 0x487c, 0x487d, 0x487e, 0x4b50, 0x4b56, 0x4b67, 0x4d4f, 0x4d68, - 0x4e2d, 0x4f7b, 0x5022, 0x5038, 0x5050, 0x505d, 0x5154, 0x5155, - 0x5158, 0x515b, 0x515c, 0x515d, 0x515e, 0x515f, 0x5160, 0x5162, - 0x5163, 0x5164, 0x5165, 0x5166, 0x5168, 0x5169, 0x516a, 0x516b, - 0x516d, 0x516f, 0x5170, 0x5172, 0x5176, 0x517a, 0x517c, 0x517d, - 0x517e, 0x5222, 0x5223, 0x5227, 0x5228, 0x5229, 0x522a, 0x522b, - 0x522d, 0x5232, 0x523e, 0x5242, 0x5243, 0x5244, 0x5246, 0x5247, - 0x5248, 0x5249, 0x524a, 0x524b, 0x524d, 0x524e, 0x524f, 0x5250, - 0x5251, 0x5252, 0x5253, 0x5254, 0x5255, 0x5256, 0x5257, 0x5259, - 0x525a, 0x525e, 0x525f, 0x5261, 0x5262, 0x5264, 0x5265, 0x5266, - 0x5267, 0x5268, 0x5269, 0x526a, 0x526b, 0x5270, 0x5271, 0x5272, - 0x5273, 0x5274, 0x5275, 0x5277, 0x5278, 0x5466, 0x547c, 0x5525, - 0x552b, 0x552e, 0x5638, 0x564d, 0x574b, 0x5764, 0x5b45, 0x5b64, - 0x5c25, 0x5d25, 0x5d55, 0x5d74, 0x5e7c, 0x5e7e, 0x5f33, 0x5f61, - 0x5f68, 0x6071, 0x612d, 0x616d, 0x6375, 0x6421, 0x6429, 0x652e, - 0x6531, 0x6532, 0x6539, 0x653b, 0x653c, 0x6544, 0x654e, 0x6550, - 0x6552, 0x6556, 0x657a, 0x657b, 0x657c, 0x657e, 0x6621, 0x6624, - 0x6627, 0x662d, 0x662f, 0x6630, 0x6631, 0x6633, 0x6637, 0x6638, - 0x663c, 0x6644, 0x6646, 0x6647, 0x664a, 0x6652, 0x6656, 0x6659, - 0x665c, 0x665f, 0x6661, 0x6664, 0x6665, 0x6666, 0x6668, 0x666a, - 0x666b, 0x666c, 0x666f, 0x6671, 0x6672, 0x6675, 0x6676, 0x6677, - 0x6679, 0x6721, 0x6726, 0x6729, 0x672a, 0x672c, 0x672d, 0x6730, - 0x673f, 0x6741, 0x6746, 0x6747, 0x674b, 0x674d, 0x674f, 0x6750, - 0x6753, 0x675f, 0x6764, 0x6766, 0x6777, 0x6867, 0x6868, 0x6870, - 0x6871, 0x6877, 0x6879, 0x687b, 0x687e, 0x6927, 0x692c, 0x694c, - 0x6977, 0x6a41, 0x6a65, 0x6a74, 0x6a77, 0x6a7c, 0x6a7e, 0x6b24, - 0x6b27, 0x6b29, 0x6b2a, 0x6b3a, 0x6b3b, 0x6b3d, 0x6b41, 0x6b42, - 0x6b46, 0x6b47, 0x6b4c, 0x6b4f, 0x6b50, 0x6b51, 0x6b52, 0x6b58, - 0x6c26, 0x6c27, 0x6c2a, 0x6c2f, 0x6c30, 0x6c31, 0x6c32, 0x6c35, - 0x6c38, 0x6c3a, 0x6c40, 0x6c41, 0x6c45, 0x6c46, 0x6c49, 0x6c4a, - 0x6c55, 0x6c5d, 0x6c5e, 0x6c61, 0x6c64, 0x6c67, 0x6c68, 0x6c77, - 0x6c78, 0x6c7a, 0x6d21, 0x6d22, 0x6d23, 0x6d6e, 0x6e5b, 0x723d, - 0x727a, 0x7331, 0x7427, 0x746e, 0x7674, 0x7676, 0x7738, 0x7748, - 0x7753, 0x785b, 0x7870, 0x7a21, 0x7a22, 0x7a66, 0x7c29, 0x2321, - 0x2322, 0x2323, 0x2324, 0x2325, 0x2326, 0x2327, 0x2328, 0x2329, - 0x232a, 0x232b, 0x232c, 0x232d, 0x232e, 0x232f, 0x2330, 0x2331, - 0x2332, 0x2333, 0x2334, 0x2335, 0x2336, 0x2337, 0x2338, 0x2339, - 0x233a, 0x233b, 0x233c, 0x233d, 0x233e, 0x233f, 0x2340, 0x2341, - 0x2342, 0x2343, 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, - 0x234a, 0x234b, 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, - 0x2352, 0x2353, 0x2354, 0x2355, 0x2356, 0x2357, 0x2358, 0x2359, - 0x235a, 0x235b, 0x212c, 0x235d, 0x235e, 0x235f, 0x2360, 0x2361, - 0x2362, 0x2363, 0x2364, 0x2365, 0x2366, 0x2367, 0x2368, 0x2369, - 0x236a, 0x236b, 0x236c, 0x236d, 0x236e, 0x236f, 0x2370, 0x2371, - 0x2372, 0x2373, 0x2374, 0x2375, 0x2376, 0x2377, 0x2378, 0x2379, - 0x237a, 0x237b, 0x237c, 0x237d, 0x2226, 0x214b, 0x214c, 0x217e, - 0x237e, 0x214d, 0x235c, -}; - -static const Summary16 ksc5601_uni2indx_page00[70] = { - /* 0x0000 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x6592 }, { 7, 0xf7df }, - { 21, 0x0040 }, { 22, 0xc181 }, { 27, 0x0040 }, { 28, 0x4181 }, - /* 0x0100 */ - { 32, 0x0000 }, { 32, 0x0002 }, { 33, 0x00c0 }, { 35, 0x810e }, - { 40, 0x0e07 }, { 46, 0x000c }, { 48, 0x00c0 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - /* 0x0200 */ - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, { 50, 0x0000 }, - { 50, 0x0080 }, { 51, 0x2f01 }, { 57, 0x0000 }, { 57, 0x0000 }, - /* 0x0300 */ - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, { 57, 0x0000 }, - { 57, 0x0000 }, { 57, 0xfffe }, { 72, 0x03fb }, { 81, 0xfffe }, - { 96, 0x03fb }, { 105, 0x0000 }, { 105, 0x0000 }, { 105, 0x0000 }, - /* 0x0400 */ - { 105, 0x0002 }, { 106, 0xffff }, { 122, 0xffff }, { 138, 0xffff }, - { 154, 0xffff }, { 170, 0x0002 }, -}; -static const Summary16 ksc5601_uni2indx_page20[103] = { - /* 0x2000 */ - { 171, 0x0000 }, { 171, 0x3320 }, { 176, 0x0063 }, { 180, 0x080d }, - { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x0000 }, { 184, 0x8010 }, - { 186, 0x001e }, { 190, 0x0000 }, { 190, 0x1000 }, { 191, 0x0000 }, - { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, { 191, 0x0000 }, - /* 0x2100 */ - { 191, 0x0208 }, { 193, 0x0048 }, { 195, 0x0846 }, { 199, 0x0000 }, - { 199, 0x0000 }, { 199, 0x7818 }, { 205, 0x03ff }, { 215, 0x03ff }, - { 225, 0x0000 }, { 225, 0x03ff }, { 235, 0x0000 }, { 235, 0x0000 }, - { 235, 0x0000 }, { 235, 0x0014 }, { 237, 0x0000 }, { 237, 0x0000 }, - /* 0x2200 */ - { 237, 0x898d }, { 244, 0x6402 }, { 248, 0x5fa1 }, { 257, 0x3030 }, - { 261, 0x0000 }, { 261, 0x0004 }, { 262, 0x0c33 }, { 268, 0x0000 }, - { 268, 0x00cc }, { 272, 0x0200 }, { 273, 0x0020 }, { 274, 0x0000 }, - { 274, 0x0000 }, { 274, 0x0000 }, { 274, 0x0000 }, { 274, 0x0000 }, - /* 0x2300 */ - { 274, 0x0000 }, { 274, 0x0004 }, { 275, 0x0000 }, { 275, 0x0000 }, - { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, - { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, - { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, - /* 0x2400 */ - { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x0000 }, - { 275, 0x0000 }, { 275, 0x0000 }, { 275, 0x7fff }, { 290, 0xfff0 }, - { 302, 0x0007 }, { 305, 0xf000 }, { 309, 0xffff }, { 325, 0x003f }, - { 331, 0x0000 }, { 331, 0xffff }, { 347, 0x03ff }, { 357, 0x0000 }, - /* 0x2500 */ - { 357, 0xf00f }, { 365, 0xffff }, { 381, 0xffff }, { 397, 0xffff }, - { 413, 0x0fff }, { 425, 0x0000 }, { 425, 0x0000 }, { 425, 0x0000 }, - { 425, 0x0000 }, { 425, 0x0004 }, { 426, 0x03fb }, { 435, 0x30cc }, - { 441, 0xc9c3 }, { 449, 0x0003 }, { 451, 0x0000 }, { 451, 0x0000 }, - /* 0x2600 */ - { 451, 0xc060 }, { 455, 0x5000 }, { 457, 0x0000 }, { 457, 0x0000 }, - { 457, 0x0005 }, { 459, 0x0000 }, { 459, 0x37bb }, -}; -static const Summary16 ksc5601_uni2indx_page30[62] = { - /* 0x3000 */ - { 470, 0xff0f }, { 482, 0x003b }, { 487, 0x0000 }, { 487, 0x0000 }, - { 487, 0xfffe }, { 502, 0xffff }, { 518, 0xffff }, { 534, 0xffff }, - { 550, 0xffff }, { 566, 0x000f }, { 570, 0xfffe }, { 585, 0xffff }, - { 601, 0xffff }, { 617, 0xffff }, { 633, 0xffff }, { 649, 0x007f }, - /* 0x3100 */ - { 656, 0x0000 }, { 656, 0x0000 }, { 656, 0x0000 }, { 656, 0xfffe }, - { 671, 0xffff }, { 687, 0xffff }, { 703, 0xffff }, { 719, 0xffff }, - { 735, 0x7fff }, { 750, 0x0000 }, { 750, 0x0000 }, { 750, 0x0000 }, - { 750, 0x0000 }, { 750, 0x0000 }, { 750, 0x0000 }, { 750, 0x0000 }, - /* 0x3200 */ - { 750, 0xffff }, { 766, 0x1fff }, { 779, 0x0000 }, { 779, 0x0000 }, - { 779, 0x0000 }, { 779, 0x0000 }, { 779, 0xffff }, { 795, 0xcfff }, - { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, - { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, - /* 0x3300 */ - { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, - { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, { 809, 0x0000 }, - { 809, 0xff1f }, { 822, 0xffff }, { 838, 0xffff }, { 854, 0xffff }, - { 870, 0x87ff }, { 882, 0x3949 }, -}; -static const Summary16 ksc5601_uni2indx_page4e[1306] = { - /* 0x4e00 */ - { 889, 0x2f8b }, { 898, 0x4372 }, { 905, 0x2000 }, { 906, 0x0b04 }, - { 910, 0xe82c }, { 917, 0xe340 }, { 923, 0x2800 }, { 925, 0x40c8 }, - { 929, 0x5944 }, { 935, 0x4937 }, { 943, 0x7976 }, { 953, 0x0440 }, - { 955, 0x2c93 }, { 962, 0xa3f0 }, { 970, 0x0038 }, { 973, 0x08c5 }, - /* 0x4f00 */ - { 978, 0xee02 }, { 985, 0x0003 }, { 987, 0x8000 }, { 988, 0x3550 }, - { 994, 0xe1c8 }, { 1001, 0x1e23 }, { 1008, 0x8200 }, { 1010, 0xc449 }, - { 1016, 0xad5a }, { 1025, 0x2942 }, { 1030, 0xc000 }, { 1032, 0x8060 }, - { 1035, 0x461c }, { 1041, 0xa49a }, { 1048, 0xc003 }, { 1052, 0x052a }, - /* 0x5000 */ - { 1057, 0x2a44 }, { 1062, 0xd646 }, { 1070, 0x3dda }, { 1080, 0x0800 }, - { 1081, 0x8388 }, { 1086, 0x1420 }, { 1089, 0x0020 }, { 1090, 0x0170 }, - { 1094, 0x2021 }, { 1097, 0x0302 }, { 1100, 0x3000 }, { 1102, 0x40ac }, - { 1107, 0x8620 }, { 1111, 0x4462 }, { 1116, 0x20a0 }, { 1119, 0x8a00 }, - /* 0x5100 */ - { 1122, 0x0253 }, { 1127, 0x8004 }, { 1129, 0x0402 }, { 1131, 0x1484 }, - { 1135, 0x7bfb }, { 1148, 0x1004 }, { 1150, 0x7fa4 }, { 1160, 0x11e2 }, - { 1166, 0x2441 }, { 1170, 0x00a4 }, { 1173, 0x1421 }, { 1177, 0x20c0 }, - { 1180, 0x3a50 }, { 1186, 0x7000 }, { 1189, 0x0002 }, { 1190, 0x2743 }, - /* 0x5200 */ - { 1197, 0x45c9 }, { 1204, 0x2082 }, { 1207, 0x4630 }, { 1212, 0x0fc1 }, - { 1219, 0x3c88 }, { 1225, 0x2850 }, { 1229, 0x8602 }, { 1233, 0xa024 }, - { 1237, 0x2388 }, { 1242, 0x8806 }, { 1246, 0x0e19 }, { 1252, 0x4000 }, - { 1253, 0x22aa }, { 1259, 0xeb64 }, { 1268, 0x001c }, { 1271, 0xcd28 }, - /* 0x5300 */ - { 1278, 0xa120 }, { 1282, 0x02e1 }, { 1287, 0x840b }, { 1292, 0x8200 }, - { 1294, 0x279b }, { 1303, 0x549e }, { 1311, 0x8141 }, { 1315, 0xa0b3 }, - { 1322, 0x0010 }, { 1323, 0x8508 }, { 1327, 0x2061 }, { 1331, 0x0800 }, - { 1332, 0x2f08 }, { 1338, 0x08d0 }, { 1342, 0xbe3e }, { 1353, 0x010f }, - /* 0x5400 */ - { 1358, 0xf718 }, { 1367, 0xa803 }, { 1372, 0x0a41 }, { 1376, 0x5b08 }, - { 1382, 0x0504 }, { 1385, 0x0002 }, { 1386, 0x0500 }, { 1388, 0x382a }, - { 1394, 0x5041 }, { 1398, 0x0001 }, { 1399, 0x1910 }, { 1403, 0x2108 }, - { 1406, 0x0313 }, { 1411, 0x0000 }, { 1411, 0x6122 }, { 1416, 0x0404 }, - /* 0x5500 */ - { 1418, 0x40d0 }, { 1422, 0x1001 }, { 1424, 0x8000 }, { 1425, 0x4022 }, - { 1428, 0x8050 }, { 1431, 0x4048 }, { 1434, 0x0008 }, { 1435, 0x1000 }, - { 1436, 0x06d1 }, { 1442, 0x3700 }, { 1447, 0x5e80 }, { 1453, 0x0000 }, - { 1453, 0x00a0 }, { 1455, 0x9410 }, { 1459, 0x0018 }, { 1461, 0x6000 }, - /* 0x5600 */ - { 1463, 0x0240 }, { 1465, 0x0090 }, { 1467, 0x8000 }, { 1468, 0x0054 }, - { 1471, 0x0000 }, { 1471, 0x0008 }, { 1472, 0x0900 }, { 1474, 0x0010 }, - { 1475, 0x0040 }, { 1476, 0x0000 }, { 1476, 0x5020 }, { 1479, 0x1010 }, - { 1481, 0x2400 }, { 1483, 0x4c02 }, { 1487, 0x0001 }, { 1488, 0x0601 }, - /* 0x5700 */ - { 1491, 0x2918 }, { 1496, 0x814c }, { 1501, 0x2100 }, { 1503, 0x0801 }, - { 1505, 0x6485 }, { 1511, 0x0003 }, { 1513, 0x4452 }, { 1518, 0x1021 }, - { 1521, 0x0904 }, { 1524, 0x0008 }, { 1525, 0x000d }, { 1528, 0x0000 }, - { 1528, 0x4988 }, { 1533, 0x8000 }, { 1534, 0x0001 }, { 1535, 0x1691 }, - /* 0x5800 */ - { 1541, 0x0765 }, { 1548, 0x4000 }, { 1549, 0x8492 }, { 1554, 0x0433 }, - { 1559, 0x8c00 }, { 1562, 0x4592 }, { 1568, 0x0016 }, { 1571, 0x5220 }, - { 1575, 0x0228 }, { 1578, 0xd008 }, { 1582, 0x4300 }, { 1585, 0x4c08 }, - { 1589, 0x40a2 }, { 1593, 0xc32a }, { 1600, 0x9810 }, { 1604, 0x2e00 }, - /* 0x5900 */ - { 1608, 0x8000 }, { 1609, 0x1670 }, { 1615, 0x6e84 }, { 1622, 0x4082 }, - { 1625, 0xc390 }, { 1631, 0x04b3 }, { 1637, 0x7c85 }, { 1645, 0x2118 }, - { 1649, 0x041c }, { 1653, 0x02c8 }, { 1657, 0x1120 }, { 1660, 0x4a00 }, - { 1663, 0x0a48 }, { 1667, 0x361b }, { 1675, 0x5540 }, { 1680, 0x8900 }, - /* 0x5a00 */ - { 1683, 0x000a }, { 1685, 0x9902 }, { 1690, 0x0221 }, { 1693, 0x1040 }, - { 1695, 0x0242 }, { 1698, 0x0400 }, { 1699, 0x0044 }, { 1701, 0x0000 }, - { 1701, 0x0000 }, { 1701, 0x0c04 }, { 1704, 0x0010 }, { 1705, 0x0000 }, - { 1705, 0x1216 }, { 1710, 0x0000 }, { 1710, 0x0242 }, { 1713, 0x0000 }, - /* 0x5b00 */ - { 1713, 0x1a20 }, { 1717, 0x0040 }, { 1718, 0x0400 }, { 1719, 0x0000 }, - { 1719, 0x0009 }, { 1721, 0xb5b3 }, { 1731, 0x0a18 }, { 1735, 0x1523 }, - { 1741, 0x9ba0 }, { 1748, 0x1fe8 }, { 1757, 0x507c }, { 1764, 0x8379 }, - { 1772, 0x10fd }, { 1780, 0xc09d }, { 1787, 0xdbf6 }, { 1799, 0x0560 }, - /* 0x5c00 */ - { 1803, 0xef92 }, { 1813, 0x0242 }, { 1816, 0x0110 }, { 1818, 0xdf02 }, - { 1826, 0x6961 }, { 1833, 0x0822 }, { 1836, 0x9035 }, { 1842, 0x0202 }, - { 1844, 0x0000 }, { 1844, 0x0003 }, { 1846, 0x1a02 }, { 1850, 0x45aa }, - { 1857, 0x0001 }, { 1858, 0x0200 }, { 1859, 0x8101 }, { 1862, 0x2851 }, - /* 0x5d00 */ - { 1867, 0x6080 }, { 1870, 0x02d2 }, { 1875, 0x0280 }, { 1877, 0x0000 }, - { 1877, 0x1800 }, { 1879, 0x0001 }, { 1880, 0x9200 }, { 1883, 0x0000 }, - { 1883, 0x0880 }, { 1885, 0x2000 }, { 1886, 0x0405 }, { 1889, 0x3500 }, - { 1893, 0x2000 }, { 1894, 0x6044 }, { 1898, 0x49e6 }, { 1906, 0x609e }, - /* 0x5e00 */ - { 1913, 0x104c }, { 1917, 0x2a42 }, { 1922, 0x2820 }, { 1925, 0xa148 }, - { 1930, 0x10b1 }, { 1935, 0x8020 }, { 1937, 0x000e }, { 1940, 0x7b9c }, - { 1950, 0x8490 }, { 1954, 0x14a0 }, { 1958, 0x28c1 }, { 1963, 0x41e0 }, - { 1968, 0x0704 }, { 1972, 0x8c49 }, { 1978, 0x100d }, { 1982, 0x0cc8 }, - /* 0x5f00 */ - { 1987, 0x8412 }, { 1991, 0x89ba }, { 1999, 0x02c0 }, { 2002, 0x1422 }, - { 2006, 0x5500 }, { 2010, 0x0ac0 }, { 2014, 0x3ec4 }, { 2022, 0x9283 }, - { 2028, 0x1ca3 }, { 2035, 0x4387 }, { 2042, 0x4703 }, { 2048, 0x22a0 }, - { 2052, 0x3028 }, { 2056, 0x03c0 }, { 2060, 0x0801 }, { 2062, 0xa020 }, - /* 0x6000 */ - { 2065, 0x8000 }, { 2066, 0x3044 }, { 2070, 0x85a3 }, { 2077, 0x0000 }, - { 2077, 0x200e }, { 2081, 0x2225 }, { 2086, 0xb73c }, { 2096, 0x0001 }, - { 2097, 0x3220 }, { 2101, 0x8c50 }, { 2106, 0x0099 }, { 2110, 0x315d }, - { 2118, 0x00a0 }, { 2120, 0x9402 }, { 2124, 0x0003 }, { 2126, 0x0e4b }, - /* 0x6100 */ - { 2133, 0xe342 }, { 2140, 0x8c20 }, { 2144, 0x0080 }, { 2145, 0xd091 }, - { 2151, 0x1d94 }, { 2158, 0xa328 }, { 2164, 0x499c }, { 2171, 0x60c1 }, - { 2176, 0x4406 }, { 2180, 0x0713 }, { 2186, 0x5a90 }, { 2192, 0x4444 }, - { 2196, 0x0f88 }, { 2202, 0x0000 }, { 2202, 0x0040 }, { 2203, 0x95c4 }, - /* 0x6200 */ - { 2210, 0x7581 }, { 2217, 0x8447 }, { 2223, 0x4402 }, { 2226, 0xc053 }, - { 2232, 0x2b83 }, { 2239, 0x0108 }, { 2241, 0x4000 }, { 2242, 0x9242 }, - { 2247, 0x0611 }, { 2251, 0x09a6 }, { 2257, 0x0800 }, { 2258, 0x3222 }, - { 2263, 0xb384 }, { 2270, 0x1bdd }, { 2280, 0xf000 }, { 2284, 0xc08a }, - /* 0x6300 */ - { 2289, 0x0282 }, { 2292, 0x0002 }, { 2293, 0x8800 }, { 2295, 0x6c00 }, - { 2299, 0x9200 }, { 2302, 0x0021 }, { 2304, 0x4180 }, { 2307, 0x8c84 }, - { 2312, 0x1308 }, { 2316, 0x0944 }, { 2320, 0x07a7 }, { 2328, 0x0000 }, - { 2328, 0x8051 }, { 2332, 0x0c41 }, { 2336, 0x6002 }, { 2339, 0x00d0 }, - /* 0x6400 */ - { 2342, 0xa000 }, { 2344, 0x10d0 }, { 2348, 0x3004 }, { 2351, 0x4400 }, - { 2353, 0x0000 }, { 2353, 0x0100 }, { 2354, 0x8201 }, { 2357, 0x0700 }, - { 2360, 0x0100 }, { 2361, 0x440e }, { 2366, 0x6830 }, { 2371, 0x0805 }, - { 2374, 0x64b2 }, { 2381, 0x0514 }, { 2385, 0x10e6 }, { 2391, 0x4414 }, - /* 0x6500 */ - { 2395, 0x0011 }, { 2397, 0x2100 }, { 2399, 0x9c08 }, { 2404, 0xcbc0 }, - { 2411, 0xe120 }, { 2416, 0x40c2 }, { 2420, 0x304c }, { 2425, 0x41b4 }, - { 2431, 0x10ac }, { 2436, 0x9a83 }, { 2443, 0x98b2 }, { 2450, 0x3281 }, - { 2455, 0x9822 }, { 2460, 0x0084 }, { 2462, 0x3369 }, { 2470, 0xbc12 }, - /* 0x6600 */ - { 2477, 0xd6c0 }, { 2484, 0xc03b }, { 2491, 0xa1a1 }, { 2497, 0x0c53 }, - { 2503, 0x8a1e }, { 2510, 0xea00 }, { 2515, 0xcbf0 }, { 2524, 0x05d8 }, - { 2530, 0x4390 }, { 2535, 0x21c3 }, { 2541, 0x4805 }, { 2545, 0x4a1c }, - { 2551, 0x02d0 }, { 2555, 0x3240 }, { 2559, 0x0041 }, { 2561, 0xd79d }, - /* 0x6700 */ - { 2572, 0x2b09 }, { 2578, 0xe8b0 }, { 2585, 0x7dc0 }, { 2593, 0x2452 }, - { 2598, 0xc240 }, { 2602, 0xd04b }, { 2609, 0xa000 }, { 2611, 0xc8ab }, - { 2619, 0x8a80 }, { 2623, 0x34a9 }, { 2630, 0x8000 }, { 2631, 0x41c9 }, - { 2637, 0x8010 }, { 2639, 0x241f }, { 2646, 0x9200 }, { 2649, 0x487b }, - /* 0x6800 */ - { 2657, 0x0000 }, { 2657, 0x00cc }, { 2661, 0x8406 }, { 2665, 0x3300 }, - { 2669, 0x410f }, { 2675, 0x001b }, { 2679, 0x2000 }, { 2680, 0x8040 }, - { 2682, 0x8022 }, { 2685, 0xa098 }, { 2690, 0xa186 }, { 2696, 0x006b }, - { 2701, 0x2a30 }, { 2706, 0x85a4 }, { 2712, 0x4181 }, { 2716, 0x0604 }, - /* 0x6900 */ - { 2719, 0x6021 }, { 2723, 0x0004 }, { 2724, 0x0080 }, { 2725, 0xa001 }, - { 2728, 0x0400 }, { 2729, 0x46b8 }, { 2736, 0xe90f }, { 2745, 0x03a0 }, - { 2749, 0x0000 }, { 2749, 0x1820 }, { 2752, 0x40a0 }, { 2755, 0x0810 }, - { 2757, 0x380a }, { 2762, 0x0001 }, { 2763, 0x0500 }, { 2765, 0xa800 }, - /* 0x6a00 */ - { 2768, 0x0404 }, { 2770, 0xc28a }, { 2776, 0x000a }, { 2778, 0x2720 }, - { 2783, 0x0910 }, { 2786, 0x830c }, { 2791, 0x0802 }, { 2793, 0x0000 }, - { 2793, 0x6211 }, { 2798, 0x1080 }, { 2800, 0x000c }, { 2802, 0x0808 }, - { 2804, 0x000c }, { 2806, 0x0c08 }, { 2809, 0x0000 }, { 2809, 0x0840 }, - /* 0x6b00 */ - { 2811, 0x1410 }, { 2814, 0x0044 }, { 2816, 0x000b }, { 2819, 0x6404 }, - { 2823, 0x50c0 }, { 2827, 0x8001 }, { 2829, 0x047e }, { 2836, 0x8984 }, - { 2841, 0x0658 }, { 2846, 0x4140 }, { 2849, 0xc000 }, { 2851, 0x94a4 }, - { 2857, 0xa862 }, { 2863, 0x09dc }, { 2870, 0x1800 }, { 2872, 0x0000 }, - /* 0x6c00 */ - { 2872, 0x8100 }, { 2874, 0x000a }, { 2876, 0x0008 }, { 2877, 0x4190 }, - { 2881, 0x4007 }, { 2885, 0xe4a1 }, { 2892, 0x2501 }, { 2896, 0x6445 }, - { 2902, 0x11ee }, { 2910, 0x0e7d }, { 2919, 0x4800 }, { 2921, 0xfb08 }, - { 2929, 0x1616 }, { 2935, 0x08a8 }, { 2939, 0xc92e }, { 2947, 0x0009 }, - /* 0x6d00 */ - { 2949, 0x1800 }, { 2951, 0x4a82 }, { 2956, 0x06a0 }, { 2960, 0x6b64 }, - { 2968, 0x0002 }, { 2969, 0x1600 }, { 2972, 0x5648 }, { 2978, 0x8390 }, - { 2983, 0x73a0 }, { 2990, 0x002a }, { 2993, 0x8000 }, { 2994, 0x0024 }, - { 2996, 0x88f9 }, { 3004, 0x4702 }, { 3009, 0x4d02 }, { 3014, 0x0faa }, - /* 0x6e00 */ - { 3022, 0x0000 }, { 3022, 0x8e80 }, { 3027, 0xb87b }, { 3037, 0x7554 }, - { 3045, 0x2418 }, { 3049, 0xd940 }, { 3055, 0xc880 }, { 3059, 0x040c }, - { 3062, 0x0000 }, { 3062, 0xb041 }, { 3067, 0x8c24 }, { 3072, 0x0442 }, - { 3075, 0x5a34 }, { 3082, 0x001a }, { 3085, 0x8000 }, { 3086, 0xc110 }, - /* 0x6f00 */ - { 3090, 0x8046 }, { 3094, 0x0032 }, { 3097, 0x180d }, { 3102, 0x8106 }, - { 3106, 0x0002 }, { 3107, 0xcd92 }, { 3115, 0x6014 }, { 3119, 0x7401 }, - { 3124, 0x6112 }, { 3129, 0x0091 }, { 3132, 0xc098 }, { 3137, 0x420a }, - { 3141, 0x040f }, { 3146, 0x8420 }, { 3149, 0x9a13 }, { 3156, 0x4002 }, - /* 0x7000 */ - { 3158, 0x8a62 }, { 3164, 0xfd22 }, { 3173, 0x8188 }, { 3177, 0x4080 }, - { 3179, 0x1000 }, { 3180, 0x2103 }, { 3184, 0x0808 }, { 3186, 0x3101 }, - { 3190, 0x4420 }, { 3193, 0x0704 }, { 3197, 0xb812 }, { 3203, 0x0388 }, - { 3207, 0x8900 }, { 3210, 0xa300 }, { 3214, 0x0000 }, { 3214, 0x2202 }, - /* 0x7100 */ - { 3217, 0x1210 }, { 3220, 0x4600 }, { 3223, 0x0042 }, { 3225, 0x0041 }, - { 3227, 0x5680 }, { 3232, 0x5241 }, { 3237, 0x52f0 }, { 3244, 0x2000 }, - { 3245, 0x8610 }, { 3249, 0x8214 }, { 3253, 0x1004 }, { 3255, 0x4602 }, - { 3259, 0x430a }, { 3264, 0x8035 }, { 3269, 0x60e0 }, { 3274, 0xd800 }, - /* 0x7200 */ - { 3278, 0x0041 }, { 3280, 0x0801 }, { 3282, 0x3400 }, { 3285, 0x6c65 }, - { 3293, 0x11c1 }, { 3298, 0xab04 }, { 3304, 0x0286 }, { 3308, 0x2204 }, - { 3311, 0x0003 }, { 3313, 0x0000 }, { 3313, 0x9084 }, { 3317, 0x0000 }, - { 3317, 0x4015 }, { 3321, 0x0281 }, { 3324, 0x0202 }, { 3326, 0x3300 }, - /* 0x7300 */ - { 3330, 0x0400 }, { 3331, 0x3840 }, { 3335, 0x0e20 }, { 3339, 0xc0c0 }, - { 3343, 0x0030 }, { 3345, 0x0085 }, { 3348, 0x0500 }, { 3350, 0x0d25 }, - { 3356, 0x4ad0 }, { 3362, 0x81d0 }, { 3367, 0x2280 }, { 3370, 0x020c }, - { 3373, 0xb605 }, { 3380, 0x6240 }, { 3384, 0x2679 }, { 3392, 0x6280 }, - /* 0x7400 */ - { 3396, 0x02ea }, { 3402, 0x0808 }, { 3404, 0xdd67 }, { 3415, 0x8579 }, - { 3423, 0x081b }, { 3428, 0xdea0 }, { 3436, 0x8735 }, { 3444, 0x4000 }, - { 3445, 0x0a8c }, { 3450, 0xd100 }, { 3454, 0x05aa }, { 3460, 0xa225 }, - { 3466, 0x8440 }, { 3469, 0x1510 }, { 3473, 0x404d }, { 3478, 0x0080 }, - /* 0x7500 */ - { 3479, 0x0012 }, { 3481, 0x8d22 }, { 3487, 0x1968 }, { 3493, 0x058f }, - { 3500, 0x9080 }, { 3503, 0x3a1a }, { 3510, 0x8464 }, { 3515, 0x8561 }, - { 3521, 0xccc0 }, { 3527, 0x2002 }, { 3529, 0x0820 }, { 3531, 0x732e }, - { 3540, 0x20a4 }, { 3544, 0x0b34 }, { 3550, 0x0004 }, { 3551, 0x1415 }, - /* 0x7600 */ - { 3556, 0x2001 }, { 3558, 0x8200 }, { 3560, 0x0057 }, { 3565, 0x0800 }, - { 3566, 0x5004 }, { 3569, 0x0044 }, { 3571, 0x1212 }, { 3575, 0x7905 }, - { 3582, 0x40d0 }, { 3586, 0x0009 }, { 3588, 0x4000 }, { 3589, 0x8400 }, - { 3591, 0x054c }, { 3596, 0xd844 }, { 3602, 0x409a }, { 3607, 0x5114 }, - /* 0x7700 */ - { 3612, 0x0b12 }, { 3617, 0x4000 }, { 3618, 0x0201 }, { 3620, 0x1580 }, - { 3624, 0x2001 }, { 3626, 0x0800 }, { 3627, 0x084a }, { 3631, 0xc200 }, - { 3634, 0x0800 }, { 3635, 0x4002 }, { 3637, 0x3020 }, { 3640, 0x9809 }, - { 3645, 0x0000 }, { 3645, 0x1880 }, { 3648, 0xe22c }, { 3655, 0x0008 }, - /* 0x7800 */ - { 3656, 0x0004 }, { 3657, 0x0004 }, { 3658, 0x10e0 }, { 3662, 0x0014 }, - { 3664, 0x8020 }, { 3666, 0x2000 }, { 3667, 0x9800 }, { 3670, 0x1000 }, - { 3671, 0x7082 }, { 3676, 0x0082 }, { 3678, 0x0288 }, { 3681, 0x1c00 }, - { 3684, 0x4c22 }, { 3689, 0x0001 }, { 3690, 0x9100 }, { 3693, 0x0820 }, - /* 0x7900 */ - { 3695, 0x4002 }, { 3697, 0x0040 }, { 3698, 0x1c00 }, { 3701, 0x4400 }, - { 3703, 0x0383 }, { 3708, 0x7cc1 }, { 3716, 0x2121 }, { 3720, 0x8400 }, - { 3722, 0xe002 }, { 3726, 0x0002 }, { 3727, 0x44c0 }, { 3731, 0xe20a }, - { 3737, 0x0e03 }, { 3742, 0x8126 }, { 3747, 0x02d0 }, { 3751, 0x0800 }, - /* 0x7a00 */ - { 3752, 0x2921 }, { 3757, 0x9690 }, { 3763, 0x4001 }, { 3765, 0xb8c2 }, - { 3772, 0x6241 }, { 3777, 0x0080 }, { 3778, 0x0a06 }, { 3782, 0xa651 }, - { 3789, 0x0112 }, { 3792, 0x812c }, { 3797, 0xc600 }, { 3801, 0x0400 }, - { 3802, 0x0cb0 }, { 3807, 0xa280 }, { 3811, 0xa429 }, { 3817, 0x8640 }, - /* 0x7b00 */ - { 3821, 0x8000 }, { 3822, 0x4a02 }, { 3826, 0x3041 }, { 3830, 0x0200 }, - { 3831, 0xba40 }, { 3837, 0x0057 }, { 3842, 0x5001 }, { 3845, 0x2020 }, - { 3847, 0x8880 }, { 3850, 0x24b0 }, { 3855, 0x2002 }, { 3857, 0x0112 }, - { 3860, 0x02d3 }, { 3866, 0x0004 }, { 3867, 0x0211 }, { 3870, 0x0000 }, - /* 0x7c00 */ - { 3870, 0x0080 }, { 3871, 0x4004 }, { 3873, 0x0c82 }, { 3877, 0xe000 }, - { 3880, 0x3008 }, { 3883, 0x0000 }, { 3883, 0x1011 }, { 3886, 0x0008 }, - { 3887, 0x0208 }, { 3889, 0x81a4 }, { 3894, 0x40a0 }, { 3897, 0x420e }, - { 3902, 0x0400 }, { 3903, 0xc040 }, { 3906, 0x0081 }, { 3908, 0x4800 }, - /* 0x7d00 */ - { 3910, 0x2df5 }, { 3920, 0x0f91 }, { 3927, 0xd807 }, { 3934, 0x0629 }, - { 3939, 0x007c }, { 3944, 0x4001 }, { 3946, 0x4546 }, { 3952, 0x824e }, - { 3958, 0xc000 }, { 3960, 0x1008 }, { 3962, 0x3005 }, { 3966, 0xed36 }, - { 3976, 0x0c80 }, { 3979, 0x6540 }, { 3984, 0x930b }, { 3991, 0x0810 }, - /* 0x7e00 */ - { 3993, 0x0600 }, { 3995, 0xe820 }, { 4000, 0xc80a }, { 4005, 0x6082 }, - { 4009, 0x00ca }, { 4013, 0x4034 }, { 4017, 0x2e02 }, { 4022, 0x1201 }, - { 4025, 0x9004 }, { 4028, 0x1948 }, { 4033, 0x0000 }, { 4033, 0x0000 }, - { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, - /* 0x7f00 */ - { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0000 }, { 4033, 0x0540 }, - { 4036, 0x1000 }, { 4037, 0x0031 }, { 4040, 0x4c00 }, { 4043, 0x02a5 }, - { 4048, 0x5520 }, { 4053, 0x4410 }, { 4056, 0x0310 }, { 4059, 0x2304 }, - { 4063, 0x5422 }, { 4068, 0x8034 }, { 4072, 0x0a03 }, { 4076, 0x1201 }, - /* 0x8000 */ - { 4079, 0x126b }, { 4086, 0x01a1 }, { 4090, 0x2000 }, { 4091, 0xa048 }, - { 4095, 0x0448 }, { 4098, 0x4540 }, { 4102, 0x8000 }, { 4103, 0xe08d }, - { 4110, 0x1af0 }, { 4117, 0x2840 }, { 4120, 0x8626 }, { 4126, 0x0416 }, - { 4130, 0x5018 }, { 4134, 0x4c00 }, { 4137, 0x0032 }, { 4140, 0x2112 }, - /* 0x8100 */ - { 4144, 0x05e4 }, { 4150, 0x0d00 }, { 4153, 0x8a08 }, { 4157, 0x4200 }, - { 4159, 0x4800 }, { 4161, 0x0033 }, { 4165, 0x0860 }, { 4168, 0x8703 }, - { 4174, 0x8501 }, { 4178, 0x3400 }, { 4181, 0x0109 }, { 4184, 0xe428 }, - { 4190, 0x2045 }, { 4194, 0x8100 }, { 4196, 0x25a8 }, { 4202, 0x5c18 }, - /* 0x8200 */ - { 4208, 0x35a0 }, { 4214, 0xd804 }, { 4219, 0x1c02 }, { 4223, 0x02e0 }, - { 4227, 0x00a1 }, { 4230, 0x0200 }, { 4231, 0xc050 }, { 4235, 0x4146 }, - { 4240, 0x6800 }, { 4243, 0xa604 }, { 4248, 0xf260 }, { 4255, 0xbb8a }, - { 4264, 0x0000 }, { 4264, 0xc8b6 }, { 4272, 0x00e2 }, { 4276, 0x6002 }, - /* 0x8300 */ - { 4279, 0x023e }, { 4285, 0x0080 }, { 4286, 0x8900 }, { 4289, 0x0372 }, - { 4295, 0x8681 }, { 4300, 0x0006 }, { 4302, 0x0000 }, { 4302, 0x0888 }, - { 4305, 0x4600 }, { 4308, 0x4140 }, { 4311, 0x0e04 }, { 4315, 0x2000 }, - { 4316, 0x1622 }, { 4321, 0x1048 }, { 4324, 0x8a00 }, { 4327, 0x2217 }, - /* 0x8400 */ - { 4333, 0x7418 }, { 4339, 0x0000 }, { 4339, 0x1200 }, { 4341, 0x2102 }, - { 4344, 0x0200 }, { 4345, 0x0880 }, { 4347, 0x984a }, { 4353, 0x0420 }, - { 4355, 0x0000 }, { 4355, 0x1211 }, { 4359, 0x0002 }, { 4360, 0x9904 }, - { 4365, 0x2a55 }, { 4372, 0x0402 }, { 4374, 0x5000 }, { 4376, 0x1010 }, - /* 0x8500 */ - { 4378, 0x0000 }, { 4378, 0x459a }, { 4385, 0xb02a }, { 4391, 0xa000 }, - { 4393, 0x420a }, { 4397, 0x0208 }, { 4399, 0x2708 }, { 4404, 0x0000 }, - { 4404, 0x8090 }, { 4407, 0x0812 }, { 4410, 0x8740 }, { 4415, 0x0401 }, - { 4417, 0xe202 }, { 4422, 0x3020 }, { 4425, 0x0630 }, { 4429, 0x8c80 }, - /* 0x8600 */ - { 4433, 0x04c4 }, { 4437, 0x04c0 }, { 4440, 0x2000 }, { 4441, 0x8000 }, - { 4442, 0x4000 }, { 4443, 0xd831 }, { 4450, 0x0080 }, { 4451, 0x0200 }, - { 4452, 0x1400 }, { 4454, 0x0008 }, { 4455, 0x0218 }, { 4458, 0x0000 }, - { 4458, 0x0880 }, { 4460, 0x8a10 }, { 4464, 0x2010 }, { 4466, 0x4000 }, - /* 0x8700 */ - { 4467, 0x010d }, { 4471, 0x1500 }, { 4474, 0x0000 }, { 4474, 0x0000 }, - { 4474, 0x4000 }, { 4475, 0x80a0 }, { 4478, 0x0140 }, { 4480, 0x0150 }, - { 4483, 0x2004 }, { 4485, 0x8000 }, { 4486, 0x0004 }, { 4487, 0x0408 }, - { 4489, 0x0010 }, { 4490, 0x0000 }, { 4490, 0x9001 }, { 4493, 0x4a04 }, - /* 0x8800 */ - { 4497, 0x0020 }, { 4498, 0x8000 }, { 4499, 0x000c }, { 4501, 0x0842 }, - { 4504, 0x3041 }, { 4508, 0x2a8c }, { 4514, 0x090e }, { 4519, 0xc085 }, - { 4524, 0x2906 }, { 4529, 0x40c4 }, { 4533, 0x0800 }, { 4534, 0x0010 }, - { 4535, 0x8006 }, { 4538, 0xb230 }, { 4544, 0x0102 }, { 4546, 0x2138 }, - /* 0x8900 */ - { 4551, 0x0080 }, { 4552, 0x030d }, { 4557, 0x0420 }, { 4559, 0x0940 }, - { 4562, 0x0012 }, { 4564, 0x8000 }, { 4565, 0x0410 }, { 4567, 0x8004 }, - { 4569, 0x88ca }, { 4575, 0x0048 }, { 4577, 0x0602 }, { 4580, 0x2404 }, - { 4583, 0x0001 }, { 4584, 0x0004 }, { 4585, 0x0008 }, { 4586, 0x0110 }, - /* 0x8a00 */ - { 4588, 0x550d }, { 4595, 0xa9c8 }, { 4602, 0x2428 }, { 4606, 0x0c52 }, - { 4611, 0x0000 }, { 4611, 0x4831 }, { 4616, 0x624d }, { 4623, 0x022f }, - { 4629, 0x30a0 }, { 4633, 0x4128 }, { 4637, 0x057b }, { 4645, 0xd205 }, - { 4651, 0xa894 }, { 4657, 0x1844 }, { 4661, 0x6cc2 }, { 4668, 0x45c2 }, - /* 0x8b00 */ - { 4674, 0x4017 }, { 4679, 0x2ed1 }, { 4687, 0x1901 }, { 4691, 0x0208 }, - { 4693, 0xc202 }, { 4697, 0x1500 }, { 4700, 0x9040 }, { 4703, 0x2091 }, - { 4707, 0x0401 }, { 4709, 0x044d }, { 4714, 0x0000 }, { 4714, 0x0000 }, - { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x0000 }, - /* 0x8c00 */ - { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x0000 }, { 4714, 0x8080 }, - { 4716, 0x1542 }, { 4721, 0x0420 }, { 4723, 0x0c02 }, { 4726, 0x0600 }, - { 4728, 0x1404 }, { 4731, 0x6000 }, { 4733, 0x9f87 }, { 4743, 0xb9d9 }, - { 4753, 0x059f }, { 4761, 0x540a }, { 4766, 0x245d }, { 4773, 0x3810 }, - /* 0x8d00 */ - { 4777, 0x25b0 }, { 4783, 0x0048 }, { 4785, 0x0000 }, { 4785, 0x0000 }, - { 4785, 0x0000 }, { 4785, 0x0000 }, { 4785, 0x0850 }, { 4788, 0x0099 }, - { 4792, 0x0420 }, { 4794, 0x0200 }, { 4795, 0x0108 }, { 4797, 0x4408 }, - { 4800, 0x9840 }, { 4804, 0x2800 }, { 4806, 0x810a }, { 4810, 0x0008 }, - /* 0x8e00 */ - { 4811, 0x8400 }, { 4813, 0x4001 }, { 4815, 0x0400 }, { 4816, 0x0021 }, - { 4818, 0x0794 }, { 4824, 0x8200 }, { 4826, 0x0001 }, { 4827, 0x0050 }, - { 4829, 0x2482 }, { 4833, 0x0000 }, { 4833, 0x1c00 }, { 4836, 0x0000 }, - { 4836, 0x3c01 }, { 4841, 0x8004 }, { 4843, 0x0800 }, { 4844, 0x4900 }, - /* 0x8f00 */ - { 4847, 0x0228 }, { 4850, 0xf83c }, { 4859, 0x86c0 }, { 4864, 0xcb08 }, - { 4870, 0x6230 }, { 4875, 0xa000 }, { 4877, 0x0004 }, { 4878, 0x0000 }, - { 4878, 0x0000 }, { 4878, 0x1800 }, { 4880, 0xa148 }, { 4885, 0x0007 }, - { 4888, 0x4024 }, { 4891, 0x0012 }, { 4893, 0x2c40 }, { 4897, 0x2285 }, - /* 0x9000 */ - { 4902, 0xa96f }, { 4912, 0xe6b3 }, { 4922, 0x400f }, { 4927, 0x5126 }, - { 4933, 0x6c86 }, { 4940, 0x723b }, { 4949, 0xe20b }, { 4956, 0xb5a4 }, - { 4964, 0x859f }, { 4973, 0x0222 }, { 4976, 0x854c }, { 4982, 0x0123 }, - { 4986, 0x0402 }, { 4988, 0x4000 }, { 4989, 0x2102 }, { 4992, 0x2020 }, - /* 0x9100 */ - { 4994, 0x0004 }, { 4995, 0x0224 }, { 4998, 0x2080 }, { 5000, 0x0004 }, - { 5001, 0x7e00 }, { 5007, 0x0004 }, { 5008, 0x1604 }, { 5012, 0x01a0 }, - { 5015, 0x2a80 }, { 5019, 0x1004 }, { 5021, 0xd800 }, { 5025, 0x0032 }, - { 5028, 0xfa81 }, { 5036, 0x3183 }, { 5042, 0x0488 }, { 5045, 0x0020 }, - /* 0x9200 */ - { 5046, 0x2000 }, { 5047, 0x4087 }, { 5052, 0x0000 }, { 5052, 0x8410 }, - { 5055, 0x0221 }, { 5058, 0x4880 }, { 5061, 0x0074 }, { 5065, 0x0000 }, - { 5065, 0x0029 }, { 5068, 0x114a }, { 5073, 0x0000 }, { 5073, 0x02c8 }, - { 5077, 0x9000 }, { 5079, 0x0004 }, { 5080, 0x0410 }, { 5082, 0x1100 }, - /* 0x9300 */ - { 5084, 0x0010 }, { 5085, 0xc501 }, { 5090, 0xc957 }, { 5099, 0x0000 }, - { 5099, 0x2d00 }, { 5103, 0x0810 }, { 5105, 0x4000 }, { 5106, 0x5020 }, - { 5109, 0x1000 }, { 5110, 0x0450 }, { 5113, 0x3088 }, { 5117, 0x0001 }, - { 5118, 0x0008 }, { 5119, 0x4002 }, { 5121, 0x0012 }, { 5123, 0x0040 }, - /* 0x9400 */ - { 5124, 0x0010 }, { 5125, 0x0100 }, { 5126, 0x0820 }, { 5128, 0x0120 }, - { 5130, 0x0010 }, { 5131, 0x0806 }, { 5134, 0x0000 }, { 5134, 0xa000 }, - { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, - { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, - /* 0x9500 */ - { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, - { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0000 }, { 5136, 0x0080 }, - { 5137, 0x8a09 }, { 5142, 0x011e }, { 5147, 0x2138 }, { 5152, 0x1802 }, - { 5155, 0x0480 }, { 5157, 0x1070 }, { 5161, 0x0006 }, { 5163, 0x0000 }, - /* 0x9600 */ - { 5163, 0x0000 }, { 5163, 0x1000 }, { 5164, 0x4402 }, { 5167, 0x8804 }, - { 5170, 0x3815 }, { 5176, 0xf801 }, { 5182, 0x041c }, { 5186, 0x21e9 }, - { 5193, 0x6c60 }, { 5199, 0x1b30 }, { 5205, 0x0588 }, { 5209, 0x0882 }, - { 5212, 0x7af3 }, { 5223, 0x1a60 }, { 5228, 0x870c }, { 5234, 0x0ac5 }, - /* 0x9700 */ - { 5240, 0x00c1 }, { 5243, 0x524a }, { 5249, 0x0080 }, { 5250, 0x2205 }, - { 5254, 0x0114 }, { 5257, 0x5042 }, { 5261, 0x2206 }, { 5265, 0x0490 }, - { 5268, 0xa800 }, { 5271, 0x0000 }, { 5271, 0x2901 }, { 5275, 0x0000 }, - { 5275, 0x0840 }, { 5277, 0x1008 }, { 5279, 0x0000 }, { 5279, 0x8848 }, - /* 0x9800 */ - { 5283, 0x156f }, { 5292, 0x018f }, { 5298, 0x2000 }, { 5299, 0x0b01 }, - { 5303, 0x7040 }, { 5307, 0x4510 }, { 5311, 0x88a0 }, { 5315, 0x0000 }, - { 5315, 0x0000 }, { 5315, 0x0000 }, { 5315, 0x8100 }, { 5317, 0x0002 }, - { 5318, 0x0090 }, { 5320, 0x9800 }, { 5323, 0xe006 }, { 5328, 0x7010 }, - /* 0x9900 */ - { 5332, 0x1608 }, { 5336, 0x4109 }, { 5340, 0x0101 }, { 5342, 0x0000 }, - { 5342, 0x3a20 }, { 5347, 0x0096 }, { 5351, 0x0000 }, { 5351, 0x0000 }, - { 5351, 0x0000 }, { 5351, 0x2240 }, { 5354, 0x7120 }, { 5359, 0x021a }, - { 5363, 0x0002 }, { 5364, 0xa227 }, { 5371, 0x2000 }, { 5372, 0x8002 }, - /* 0x9a00 */ - { 5374, 0xc102 }, { 5378, 0x0200 }, { 5379, 0x0800 }, { 5380, 0x00c1 }, - { 5383, 0x2029 }, { 5387, 0x8ca0 }, { 5392, 0x0624 }, { 5396, 0x0000 }, - { 5396, 0x0000 }, { 5396, 0x0000 }, { 5396, 0x0100 }, { 5397, 0x0100 }, - { 5398, 0x0000 }, { 5398, 0x0118 }, { 5401, 0x4020 }, { 5403, 0x0000 }, - /* 0x9b00 */ - { 5403, 0x0000 }, { 5403, 0x0400 }, { 5404, 0x0480 }, { 5406, 0x1002 }, - { 5408, 0x803e }, { 5414, 0x0410 }, { 5416, 0x8000 }, { 5417, 0x0000 }, - { 5417, 0x4000 }, { 5418, 0x8002 }, { 5420, 0x4800 }, { 5422, 0x0000 }, - { 5422, 0x0200 }, { 5423, 0x0040 }, { 5424, 0x0110 }, { 5426, 0x0000 }, - /* 0x9c00 */ - { 5426, 0x2000 }, { 5427, 0x0025 }, { 5430, 0x0020 }, { 5431, 0x0804 }, - { 5433, 0x0280 }, { 5435, 0x0080 }, { 5436, 0x0000 }, { 5436, 0x0000 }, - { 5436, 0x0000 }, { 5436, 0x0000 }, { 5436, 0x0000 }, { 5436, 0x0000 }, - { 5436, 0x0000 }, { 5436, 0x0000 }, { 5436, 0x02a0 }, { 5439, 0x0058 }, - /* 0x9d00 */ - { 5442, 0x0200 }, { 5443, 0x0800 }, { 5444, 0x0140 }, { 5446, 0x0800 }, - { 5447, 0x0000 }, { 5447, 0x2002 }, { 5449, 0x1003 }, { 5452, 0x0004 }, - { 5453, 0x0000 }, { 5453, 0x0000 }, { 5453, 0x8200 }, { 5455, 0x0010 }, - { 5456, 0x0010 }, { 5457, 0x0080 }, { 5458, 0x0000 }, { 5458, 0x0704 }, - /* 0x9e00 */ - { 5462, 0x0000 }, { 5462, 0x4400 }, { 5464, 0x0000 }, { 5464, 0x0000 }, - { 5464, 0x0000 }, { 5464, 0x0000 }, { 5464, 0x0000 }, { 5464, 0xa220 }, - { 5468, 0x0000 }, { 5468, 0xa08c }, { 5473, 0x0020 }, { 5474, 0x4830 }, - { 5478, 0x6008 }, { 5481, 0x5912 }, { 5487, 0x0100 }, { 5488, 0x0010 }, - /* 0x9f00 */ - { 5489, 0x4180 }, { 5492, 0x0008 }, { 5493, 0x0001 }, { 5494, 0x0800 }, - { 5495, 0x4c00 }, { 5498, 0x8004 }, { 5500, 0x1482 }, { 5504, 0x0080 }, - { 5505, 0x2000 }, { 5506, 0x1021 }, -}; -static const Summary16 ksc5601_uni2indx_pageac[698] = { - /* 0xac00 */ - { 5509, 0x0793 }, { 5516, 0x3eff }, { 5529, 0xb011 }, { 5534, 0x1303 }, - { 5539, 0x2801 }, { 5542, 0x1110 }, { 5545, 0x0000 }, { 5545, 0x0593 }, - { 5551, 0x1e7b }, { 5561, 0xb011 }, { 5566, 0x9703 }, { 5573, 0x3b01 }, - { 5579, 0x1112 }, { 5583, 0x00a0 }, { 5585, 0x9593 }, { 5593, 0x306b }, - /* 0xad00 */ - { 5600, 0xb051 }, { 5606, 0x1102 }, { 5609, 0x3201 }, { 5613, 0x1130 }, - { 5617, 0x02b0 }, { 5621, 0x0111 }, { 5624, 0x300a }, { 5628, 0xb879 }, - { 5637, 0x1306 }, { 5642, 0x3001 }, { 5645, 0x0010 }, { 5646, 0x0080 }, - { 5647, 0x0113 }, { 5651, 0x100b }, { 5655, 0x0011 }, { 5657, 0x9300 }, - /* 0xae00 */ - { 5661, 0x2b03 }, { 5667, 0x0010 }, { 5668, 0x0000 }, { 5668, 0x0593 }, - { 5674, 0x746b }, { 5683, 0xb051 }, { 5689, 0x1323 }, { 5695, 0x3b01 }, - { 5701, 0x1030 }, { 5704, 0x0000 }, { 5704, 0x0000 }, { 5704, 0x7000 }, - { 5707, 0xb011 }, { 5712, 0x1303 }, { 5717, 0x2900 }, { 5720, 0x1110 }, - /* 0xaf00 */ - { 5723, 0x2180 }, { 5726, 0x0001 }, { 5727, 0x3000 }, { 5729, 0xb015 }, - { 5735, 0x030e }, { 5740, 0x3001 }, { 5743, 0x0030 }, { 5745, 0x0200 }, - { 5746, 0x0111 }, { 5749, 0x1023 }, { 5753, 0x0000 }, { 5753, 0x1300 }, - { 5756, 0x6b81 }, { 5763, 0x1010 }, { 5765, 0x0300 }, { 5767, 0x0113 }, - /* 0xb000 */ - { 5771, 0x1013 }, { 5775, 0x3011 }, { 5779, 0x0100 }, { 5780, 0x0000 }, - { 5780, 0x5530 }, { 5786, 0x22b8 }, { 5792, 0x0000 }, { 5792, 0x3000 }, - { 5794, 0xb011 }, { 5799, 0x9702 }, { 5805, 0xfb07 }, { 5815, 0x113a }, - { 5821, 0x03b0 }, { 5826, 0x0113 }, { 5830, 0x0021 }, { 5832, 0x0000 }, - /* 0xb100 */ - { 5832, 0x1b00 }, { 5836, 0x3b0d }, { 5844, 0x1138 }, { 5849, 0x03b0 }, - { 5854, 0x0113 }, { 5858, 0x1133 }, { 5864, 0x0001 }, { 5865, 0x1300 }, - { 5868, 0x2b05 }, { 5874, 0x111c }, { 5879, 0x0100 }, { 5880, 0x0000 }, - { 5880, 0x1000 }, { 5881, 0xb011 }, { 5886, 0x1300 }, { 5889, 0x2a01 }, - /* 0xb200 */ - { 5893, 0x1930 }, { 5898, 0x02b0 }, { 5902, 0x0001 }, { 5903, 0x1010 }, - { 5905, 0x0000 }, { 5905, 0x1100 }, { 5907, 0x0301 }, { 5910, 0x1030 }, - { 5913, 0x0230 }, { 5916, 0x0713 }, { 5922, 0x146b }, { 5929, 0x0011 }, - { 5931, 0x1300 }, { 5934, 0x2b05 }, { 5940, 0xf974 }, { 5950, 0x8fb8 }, - /* 0xb300 */ - { 5959, 0x0113 }, { 5963, 0x103b }, { 5969, 0x0000 }, { 5969, 0x0000 }, - { 5969, 0x0000 }, { 5969, 0xd970 }, { 5977, 0x4ab0 }, { 5983, 0x0113 }, - { 5987, 0x103b }, { 5993, 0x0011 }, { 5995, 0x1103 }, { 5999, 0x0000 }, - { 5999, 0x5930 }, { 6005, 0x2ab1 }, { 6012, 0x0111 }, { 6015, 0x1000 }, - /* 0xb400 */ - { 6016, 0x0000 }, { 6016, 0x1101 }, { 6019, 0x0b01 }, { 6023, 0x0010 }, - { 6024, 0x0000 }, { 6024, 0x0113 }, { 6028, 0x102b }, { 6033, 0x0000 }, - { 6033, 0x0101 }, { 6035, 0x2000 }, { 6036, 0x1110 }, { 6039, 0x02a0 }, - { 6042, 0x0111 }, { 6045, 0x3021 }, { 6049, 0xb059 }, { 6056, 0x0102 }, - /* 0xb500 */ - { 6058, 0x0000 }, { 6058, 0x1930 }, { 6063, 0x07b0 }, { 6069, 0x0113 }, - { 6073, 0x383b }, { 6081, 0xb011 }, { 6086, 0x0003 }, { 6088, 0x0000 }, - { 6088, 0x0000 }, { 6088, 0x0000 }, { 6088, 0x0d13 }, { 6094, 0x383b }, - { 6102, 0xb011 }, { 6107, 0x0103 }, { 6110, 0x1000 }, { 6111, 0x0000 }, - /* 0xb600 */ - { 6111, 0x0000 }, { 6111, 0x0113 }, { 6115, 0x1020 }, { 6117, 0x0010 }, - { 6118, 0x0100 }, { 6119, 0x0000 }, { 6119, 0x0110 }, { 6121, 0x0000 }, - { 6121, 0x0000 }, { 6121, 0x3000 }, { 6123, 0x1811 }, { 6127, 0x0002 }, - { 6128, 0x0000 }, { 6128, 0x0010 }, { 6129, 0x0000 }, { 6129, 0x0111 }, - /* 0xb700 */ - { 6132, 0x0023 }, { 6135, 0x0000 }, { 6135, 0x9300 }, { 6139, 0x0b01 }, - { 6143, 0x1110 }, { 6146, 0x0030 }, { 6148, 0x0111 }, { 6151, 0x302b }, - { 6157, 0xb011 }, { 6162, 0x13c7 }, { 6170, 0x3b01 }, { 6176, 0x0130 }, - { 6179, 0x0280 }, { 6181, 0x0000 }, { 6181, 0x3000 }, { 6183, 0xb011 }, - /* 0xb800 */ - { 6188, 0x1383 }, { 6194, 0x2b01 }, { 6199, 0x1130 }, { 6203, 0x03b0 }, - { 6208, 0x0011 }, { 6210, 0x300a }, { 6214, 0xb011 }, { 6219, 0x1102 }, - { 6222, 0x2000 }, { 6223, 0x0000 }, { 6223, 0x0100 }, { 6224, 0x0111 }, - { 6227, 0x102b }, { 6232, 0xa011 }, { 6236, 0x1302 }, { 6240, 0x2b01 }, - /* 0xb900 */ - { 6245, 0x0010 }, { 6246, 0x0100 }, { 6247, 0x0001 }, { 6248, 0x3000 }, - { 6250, 0x9011 }, { 6254, 0x1302 }, { 6258, 0x2b01 }, { 6263, 0x1130 }, - { 6267, 0x66b0 }, { 6274, 0x0000 }, { 6274, 0x3000 }, { 6276, 0xb011 }, - { 6281, 0xd302 }, { 6287, 0x6b07 }, { 6295, 0x113a }, { 6301, 0x07b0 }, - /* 0xba00 */ - { 6307, 0x0103 }, { 6310, 0x0020 }, { 6311, 0x0000 }, { 6311, 0x1300 }, - { 6314, 0x6b05 }, { 6321, 0x1138 }, { 6326, 0x03b0 }, { 6331, 0x0113 }, - { 6335, 0x10b8 }, { 6340, 0x0000 }, { 6340, 0x1b00 }, { 6344, 0x2b05 }, - { 6350, 0x0110 }, { 6352, 0x0300 }, { 6354, 0x0000 }, { 6354, 0x1000 }, - /* 0xbb00 */ - { 6355, 0xa011 }, { 6359, 0x1102 }, { 6362, 0x0a01 }, { 6365, 0x7970 }, - { 6373, 0xa2b0 }, { 6379, 0x0111 }, { 6382, 0x100a }, { 6385, 0x0000 }, - { 6385, 0x1100 }, { 6387, 0x0001 }, { 6388, 0x1110 }, { 6391, 0x0090 }, - { 6393, 0x0111 }, { 6396, 0x0009 }, { 6398, 0x0000 }, { 6398, 0x9300 }, - /* 0xbc00 */ - { 6402, 0xbb05 }, { 6410, 0xf9f2 }, { 6421, 0x22b0 }, { 6426, 0x0113 }, - { 6430, 0x323b }, { 6438, 0x2001 }, { 6440, 0x0000 }, { 6440, 0x0000 }, - { 6440, 0x5930 }, { 6446, 0x06b0 }, { 6451, 0x0193 }, { 6456, 0x303b }, - { 6463, 0xa011 }, { 6467, 0x1123 }, { 6472, 0x0000 }, { 6472, 0x1170 }, - /* 0xbd00 */ - { 6477, 0x02b0 }, { 6481, 0x0011 }, { 6483, 0x1010 }, { 6485, 0x0000 }, - { 6485, 0x1301 }, { 6489, 0x0301 }, { 6492, 0x0110 }, { 6494, 0x0000 }, - { 6494, 0x0793 }, { 6501, 0x162b }, { 6508, 0x0010 }, { 6509, 0x0101 }, - { 6511, 0x0000 }, { 6511, 0x1130 }, { 6515, 0x0200 }, { 6516, 0x0111 }, - /* 0xbe00 */ - { 6519, 0x3029 }, { 6524, 0xb011 }, { 6529, 0x0000 }, { 6529, 0x0000 }, - { 6529, 0x5130 }, { 6534, 0x0eb0 }, { 6540, 0x0513 }, { 6545, 0x383b }, - { 6553, 0xb011 }, { 6558, 0x0303 }, { 6562, 0x0100 }, { 6563, 0x0000 }, - { 6563, 0x0000 }, { 6563, 0x0193 }, { 6568, 0x1039 }, { 6573, 0x0000 }, - /* 0xbf00 */ - { 6573, 0x0302 }, { 6576, 0x3b00 }, { 6581, 0x0000 }, { 6581, 0x0000 }, - { 6581, 0x0113 }, { 6585, 0x0023 }, { 6588, 0x0000 }, { 6588, 0x0000 }, - { 6588, 0x0000 }, { 6588, 0x0010 }, { 6589, 0x0000 }, { 6589, 0x0001 }, - { 6590, 0x3020 }, { 6593, 0x9011 }, { 6597, 0x0002 }, { 6598, 0x0000 }, - /* 0xc000 */ - { 6598, 0x0000 }, { 6598, 0x0000 }, { 6598, 0x0000 }, { 6598, 0x1000 }, - { 6599, 0x0000 }, { 6599, 0x1102 }, { 6602, 0x0301 }, { 6605, 0x0000 }, - { 6605, 0x0000 }, { 6605, 0x0113 }, { 6609, 0xb02b }, { 6616, 0xb079 }, - { 6624, 0x1323 }, { 6630, 0x3b01 }, { 6636, 0x1130 }, { 6640, 0x02b0 }, - /* 0xc100 */ - { 6644, 0x0111 }, { 6647, 0xf021 }, { 6653, 0xb0d9 }, { 6661, 0x1343 }, - { 6667, 0x3b01 }, { 6673, 0x1130 }, { 6677, 0x03b0 }, { 6682, 0x0111 }, - { 6685, 0x7020 }, { 6689, 0xb051 }, { 6695, 0x1322 }, { 6700, 0x2001 }, - { 6702, 0x1110 }, { 6705, 0x0190 }, { 6708, 0x0111 }, { 6711, 0x300b }, - /* 0xc200 */ - { 6716, 0xb011 }, { 6721, 0x9302 }, { 6726, 0xab01 }, { 6732, 0x0016 }, - { 6735, 0x0100 }, { 6736, 0x0113 }, { 6740, 0x3021 }, { 6744, 0xb011 }, - { 6749, 0x0302 }, { 6752, 0x2901 }, { 6756, 0x3130 }, { 6761, 0x02b0 }, - { 6765, 0x0000 }, { 6765, 0x3000 }, { 6767, 0xb819 }, { 6774, 0x1b42 }, - /* 0xc300 */ - { 6780, 0x3301 }, { 6785, 0x1138 }, { 6790, 0x0330 }, { 6794, 0x0000 }, - { 6794, 0x0020 }, { 6795, 0x0000 }, { 6795, 0x1300 }, { 6798, 0x3305 }, - { 6804, 0x1110 }, { 6807, 0x0000 }, { 6807, 0x0000 }, { 6807, 0x0000 }, - { 6807, 0x0001 }, { 6808, 0x9300 }, { 6812, 0x2305 }, { 6817, 0x0130 }, - /* 0xc400 */ - { 6820, 0x0100 }, { 6821, 0x0001 }, { 6822, 0x1010 }, { 6824, 0x3011 }, - { 6828, 0x0100 }, { 6829, 0x0000 }, { 6829, 0x1130 }, { 6833, 0x0230 }, - { 6836, 0x0001 }, { 6837, 0x1010 }, { 6839, 0x0000 }, { 6839, 0x1100 }, - { 6841, 0x0000 }, { 6841, 0x0000 }, { 6841, 0x0200 }, { 6842, 0x8513 }, - /* 0xc500 */ - { 6848, 0x1003 }, { 6851, 0x1011 }, { 6854, 0x1300 }, { 6857, 0x2b01 }, - { 6862, 0x7730 }, { 6870, 0x63b8 }, { 6878, 0x0113 }, { 6882, 0x303b }, - { 6889, 0xb091 }, { 6895, 0x11a2 }, { 6900, 0x0201 }, { 6902, 0x7b30 }, - { 6910, 0x57f0 }, { 6919, 0x0113 }, { 6923, 0x702b }, { 6930, 0xf0d1 }, - /* 0xc600 */ - { 6938, 0x11e3 }, { 6945, 0x1b01 }, { 6950, 0x7130 }, { 6956, 0x0ab9 }, - { 6963, 0x0113 }, { 6967, 0x303b }, { 6974, 0x9001 }, { 6977, 0x1302 }, - { 6981, 0x2b01 }, { 6986, 0x1130 }, { 6990, 0x02b0 }, { 6994, 0x0713 }, - { 7000, 0x302b }, { 7006, 0x3011 }, { 7010, 0x1303 }, { 7015, 0x2301 }, - /* 0xc700 */ - { 7019, 0x1130 }, { 7023, 0x02b0 }, { 7027, 0x0113 }, { 7031, 0x30ab }, - { 7038, 0xb411 }, { 7044, 0x11fe }, { 7053, 0x0901 }, { 7056, 0x7130 }, - { 7062, 0x47b8 }, { 7070, 0x05d3 }, { 7077, 0x307b }, { 7085, 0xb011 }, - { 7090, 0x5303 }, { 7096, 0x2101 }, { 7099, 0x1110 }, { 7102, 0x0000 }, - /* 0xc800 */ - { 7102, 0x0513 }, { 7107, 0x306b }, { 7114, 0xb011 }, { 7119, 0x1102 }, - { 7122, 0x3301 }, { 7127, 0x0010 }, { 7128, 0x0000 }, { 7128, 0x0513 }, - { 7133, 0x38eb }, { 7142, 0xa010 }, { 7145, 0x0102 }, { 7147, 0x3000 }, - { 7149, 0x1110 }, { 7152, 0x02b0 }, { 7156, 0x0013 }, { 7159, 0x3020 }, - /* 0xc900 */ - { 7162, 0xb071 }, { 7169, 0x0102 }, { 7171, 0x1000 }, { 7172, 0x0010 }, - { 7173, 0x0000 }, { 7173, 0x0113 }, { 7177, 0x100b }, { 7181, 0x1011 }, - { 7184, 0x1300 }, { 7187, 0x2b01 }, { 7192, 0x0000 }, { 7192, 0x0000 }, - { 7192, 0x0593 }, { 7198, 0x366b }, { 7207, 0xb095 }, { 7214, 0x1303 }, - /* 0xca00 */ - { 7219, 0x3b01 }, { 7225, 0x0110 }, { 7227, 0x0200 }, { 7228, 0x0000 }, - { 7228, 0x3000 }, { 7230, 0xb011 }, { 7235, 0x0103 }, { 7238, 0x2000 }, - { 7239, 0x0010 }, { 7240, 0x0100 }, { 7241, 0x0000 }, { 7241, 0x3000 }, - { 7243, 0xb011 }, { 7248, 0x030a }, { 7252, 0x1001 }, { 7254, 0x0010 }, - /* 0xcb00 */ - { 7255, 0x0100 }, { 7256, 0x0111 }, { 7259, 0x0003 }, { 7261, 0x0000 }, - { 7261, 0x1302 }, { 7265, 0x2301 }, { 7269, 0x0010 }, { 7270, 0x0300 }, - { 7272, 0x0000 }, { 7272, 0x1000 }, { 7273, 0x0000 }, { 7273, 0x0100 }, - { 7274, 0x0000 }, { 7274, 0x0010 }, { 7275, 0x0290 }, { 7278, 0x0000 }, - /* 0xcc00 */ - { 7278, 0x3000 }, { 7280, 0x3011 }, { 7284, 0x5386 }, { 7291, 0x7b01 }, - { 7298, 0x1130 }, { 7302, 0x03b0 }, { 7307, 0x0151 }, { 7311, 0x0021 }, - { 7313, 0x0000 }, { 7313, 0x1300 }, { 7316, 0x3b01 }, { 7322, 0x1130 }, - { 7326, 0x02b0 }, { 7330, 0x0011 }, { 7332, 0x1010 }, { 7334, 0x0001 }, - /* 0xcd00 */ - { 7335, 0x1302 }, { 7339, 0x2b01 }, { 7344, 0x1110 }, { 7347, 0x0200 }, - { 7348, 0x0000 }, { 7348, 0x1000 }, { 7349, 0xb011 }, { 7354, 0x0102 }, - { 7356, 0x0100 }, { 7357, 0x1130 }, { 7361, 0x02b0 }, { 7365, 0x0001 }, - { 7366, 0x1010 }, { 7368, 0x0001 }, { 7369, 0x1100 }, { 7371, 0x2b01 }, - /* 0xce00 */ - { 7376, 0x1110 }, { 7379, 0x0210 }, { 7381, 0x0113 }, { 7385, 0x002b }, - { 7389, 0x0000 }, { 7389, 0x9300 }, { 7393, 0x2b03 }, { 7399, 0x1130 }, - { 7403, 0x02b0 }, { 7407, 0x0113 }, { 7411, 0x303b }, { 7418, 0x0000 }, - { 7418, 0x0002 }, { 7419, 0x0000 }, { 7419, 0x1930 }, { 7424, 0x03b0 }, - /* 0xcf00 */ - { 7429, 0x0113 }, { 7433, 0x102b }, { 7438, 0xb011 }, { 7443, 0x0103 }, - { 7446, 0x0000 }, { 7446, 0x1130 }, { 7450, 0x02b0 }, { 7454, 0x0113 }, - { 7458, 0x1021 }, { 7461, 0x0000 }, { 7461, 0x0102 }, { 7463, 0x0001 }, - { 7464, 0x0010 }, { 7465, 0x0000 }, { 7465, 0x0113 }, { 7469, 0x102b }, - /* 0xd000 */ - { 7474, 0x0011 }, { 7476, 0x0102 }, { 7478, 0x2000 }, { 7479, 0x1130 }, - { 7483, 0x02b0 }, { 7487, 0x0111 }, { 7490, 0x3001 }, { 7493, 0x3011 }, - { 7497, 0x0002 }, { 7498, 0x0000 }, { 7498, 0x1130 }, { 7502, 0x02b0 }, - { 7506, 0x0313 }, { 7511, 0x303b }, { 7518, 0xb011 }, { 7523, 0x0103 }, - /* 0xd100 */ - { 7526, 0x2000 }, { 7527, 0x0000 }, { 7527, 0x0000 }, { 7527, 0x0513 }, - { 7532, 0x303b }, { 7539, 0xb011 }, { 7544, 0x1102 }, { 7547, 0x1000 }, - { 7548, 0x0110 }, { 7550, 0x0000 }, { 7550, 0x0113 }, { 7554, 0x142b }, - { 7560, 0x0001 }, { 7561, 0x0100 }, { 7562, 0x0000 }, { 7562, 0x0110 }, - /* 0xd200 */ - { 7564, 0x0280 }, { 7566, 0x0001 }, { 7567, 0x3000 }, { 7569, 0xb011 }, - { 7574, 0x0102 }, { 7576, 0x1000 }, { 7577, 0x0010 }, { 7578, 0x0000 }, - { 7578, 0x0113 }, { 7582, 0x1023 }, { 7586, 0x1011 }, { 7589, 0x9302 }, - { 7594, 0x0b05 }, { 7599, 0x1110 }, { 7602, 0x0030 }, { 7604, 0x0113 }, - /* 0xd300 */ - { 7608, 0x702b }, { 7615, 0xb051 }, { 7621, 0x1323 }, { 7627, 0x3b01 }, - { 7633, 0x0030 }, { 7635, 0x0000 }, { 7635, 0x0000 }, { 7635, 0x3000 }, - { 7637, 0xb011 }, { 7642, 0x1303 }, { 7647, 0x2b01 }, { 7652, 0x1110 }, - { 7655, 0x0330 }, { 7659, 0x0101 }, { 7661, 0x300a }, { 7665, 0xb011 }, - /* 0xd400 */ - { 7670, 0x0102 }, { 7672, 0x2000 }, { 7673, 0x0000 }, { 7673, 0x0000 }, - { 7673, 0x0011 }, { 7675, 0x1000 }, { 7676, 0xa011 }, { 7680, 0x9300 }, - { 7684, 0x2b05 }, { 7690, 0x0010 }, { 7691, 0x0200 }, { 7692, 0x0000 }, - { 7692, 0x1000 }, { 7693, 0x9011 }, { 7697, 0x1100 }, { 7699, 0x2901 }, - /* 0xd500 */ - { 7703, 0x1110 }, { 7706, 0x00b0 }, { 7709, 0x0000 }, { 7709, 0x3000 }, - { 7711, 0xb011 }, { 7716, 0x1302 }, { 7720, 0x2b21 }, { 7726, 0x1130 }, - { 7730, 0x03b0 }, { 7735, 0x0001 }, { 7736, 0x0020 }, { 7737, 0x0000 }, - { 7737, 0x1300 }, { 7740, 0x2b05 }, { 7746, 0x1130 }, { 7750, 0x02b0 }, - /* 0xd600 */ - { 7754, 0x0113 }, { 7758, 0x103b }, { 7764, 0x2011 }, { 7767, 0x1300 }, - { 7770, 0x2b21 }, { 7776, 0x1132 }, { 7781, 0x0280 }, { 7783, 0x0013 }, - { 7786, 0x3028 }, { 7790, 0xa011 }, { 7794, 0x1102 }, { 7797, 0x0a01 }, - { 7800, 0x1130 }, { 7804, 0x0292 }, { 7808, 0x0111 }, { 7811, 0x3021 }, - /* 0xd700 */ - { 7815, 0x0011 }, { 7817, 0x1302 }, { 7821, 0x2b01 }, { 7826, 0x1130 }, - { 7830, 0x0290 }, { 7833, 0x03d3 }, { 7840, 0x122b }, { 7846, 0x3011 }, - { 7850, 0x1302 }, { 7854, 0x2b01 }, -}; -static const Summary16 ksc5601_uni2indx_pagef9[17] = { - /* 0xf900 */ - { 7859, 0xffff }, { 7875, 0xffff }, { 7891, 0xffff }, { 7907, 0xffff }, - { 7923, 0xffff }, { 7939, 0xffff }, { 7955, 0xffff }, { 7971, 0xffff }, - { 7987, 0xffff }, { 8003, 0xffff }, { 8019, 0xffff }, { 8035, 0xffff }, - { 8051, 0xffff }, { 8067, 0xffff }, { 8083, 0xffff }, { 8099, 0xffff }, - /* 0xfa00 */ - { 8115, 0x0fff }, -}; -static const Summary16 ksc5601_uni2indx_pageff[15] = { - /* 0xff00 */ - { 8127, 0xfffe }, { 8142, 0xffff }, { 8158, 0xffff }, { 8174, 0xffff }, - { 8190, 0xffff }, { 8206, 0x7fff }, { 8221, 0x0000 }, { 8221, 0x0000 }, - { 8221, 0x0000 }, { 8221, 0x0000 }, { 8221, 0x0000 }, { 8221, 0x0000 }, - { 8221, 0x0000 }, { 8221, 0x0000 }, { 8221, 0x006f }, -}; - -static int -ksc5601_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - const Summary16 *summary = NULL; - if (wc >= 0x0000 && wc < 0x0460) - summary = &ksc5601_uni2indx_page00[(wc>>4)]; - else if (wc >= 0x2000 && wc < 0x2670) - summary = &ksc5601_uni2indx_page20[(wc>>4)-0x200]; - else if (wc >= 0x3000 && wc < 0x33e0) - summary = &ksc5601_uni2indx_page30[(wc>>4)-0x300]; - else if (wc >= 0x4e00 && wc < 0x9fa0) - summary = &ksc5601_uni2indx_page4e[(wc>>4)-0x4e0]; - else if (wc >= 0xac00 && wc < 0xd7a0) - summary = &ksc5601_uni2indx_pageac[(wc>>4)-0xac0]; - else if (wc >= 0xf900 && wc < 0xfa10) - summary = &ksc5601_uni2indx_pagef9[(wc>>4)-0xf90]; - else if (wc >= 0xff00 && wc < 0xfff0) - summary = &ksc5601_uni2indx_pageff[(wc>>4)-0xff0]; - if (summary) { - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - c = ksc5601_2charset[summary->indx + used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/libcharset.h b/jni/parted/libiconv/lib/libcharset.h deleted file mode 100755 index fcf2274..0000000 --- a/jni/parted/libiconv/lib/libcharset.h +++ /dev/null @@ -1,45 +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 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with the GNU CHARSET Library; see the file COPYING.LIB. If not, - see . */ - -#ifndef _LIBCHARSET_H -#define _LIBCHARSET_H - -#include - - -#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/jni/parted/libiconv/lib/localcharset.h b/jni/parted/libiconv/lib/localcharset.h deleted file mode 100755 index 58d3e6a..0000000 --- a/jni/parted/libiconv/lib/localcharset.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2019 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 Lesser 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see . */ - -#ifndef _LOCALCHARSET_H -#define _LOCALCHARSET_H - -#if 1 && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_LIBCHARSET -#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) -#else -#define LIBCHARSET_DLL_EXPORTED -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. - If the canonical name cannot be determined, the result is a non-canonical - name. */ -extern LIBCHARSET_DLL_EXPORTED const char * locale_charset (void); - -/* About GNU canonical names for character encodings: - - Every canonical name must be supported by GNU libiconv. Support by GNU libc - is also desirable. - - The name is case insensitive. Usually an upper case MIME charset name is - preferred. - - The current list of these GNU canonical names is: - - name MIME? used by which systems - (darwin = Mac OS X, windows = native Windows) - - ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin - ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-3 Y glibc solaris cygwin - ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin - ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-6 Y glibc aix hpux solaris cygwin - ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos - ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos - ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-14 glibc cygwin - ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin - KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin - KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin - 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 openbsd darwin dos - CP869 dos - CP874 windows dos - CP922 aix - CP932 aix cygwin windows dos - CP943 aix zos - CP949 osf darwin windows dos - CP950 windows dos - CP1046 aix - CP1124 aix - CP1125 dos - CP1129 aix - CP1131 freebsd darwin - CP1250 windows - CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows - CP1252 aix windows - CP1253 windows - CP1254 windows - CP1255 glibc windows - CP1256 windows - CP1257 windows - GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos - EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin - EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos - EUC-TW glibc aix hpux irix osf solaris netbsd - BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos - BIG5-HKSCS glibc hpux solaris netbsd darwin - GBK glibc aix osf solaris freebsd darwin cygwin windows dos - GB18030 glibc hpux solaris freebsd netbsd darwin - SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin - JOHAB glibc solaris windows - TIS-620 glibc aix hpux osf solaris cygwin zos - VISCII Y glibc - TCVN5712-1 glibc - ARMSCII-8 glibc freebsd netbsd darwin - GEORGIAN-PS glibc cygwin - PT154 glibc netbsd cygwin - 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 cygwin zos - - 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. - */ - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LOCALCHARSET_H */ diff --git a/jni/parted/libiconv/lib/loop_unicode.h b/jni/parted/libiconv/lib/loop_unicode.h deleted file mode 100755 index 973e8b7..0000000 --- a/jni/parted/libiconv/lib/loop_unicode.h +++ /dev/null @@ -1,526 +0,0 @@ -/* - * Copyright (C) 1999-2003, 2005-2006, 2008 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* This file defines the conversion loop via Unicode as a pivot encoding. */ - -/* Attempt to transliterate wc. Return code as in xxx_wctomb. */ -static int unicode_transliterate (conv_t cd, ucs4_t wc, - unsigned char* outptr, size_t outleft) -{ - if (cd->oflags & HAVE_HANGUL_JAMO) { - /* Decompose Hangul into Jamo. Use double-width Jamo (contained - in all Korean encodings and ISO-2022-JP-2), not half-width Jamo - (contained in Unicode only). */ - ucs4_t buf[3]; - int ret = johab_hangul_decompose(cd,buf,wc); - if (ret != RET_ILUNI) { - /* we know 1 <= ret <= 3 */ - state_t backup_state = cd->ostate; - unsigned char* backup_outptr = outptr; - size_t backup_outleft = outleft; - int i, sub_outcount; - for (i = 0; i < ret; i++) { - if (outleft == 0) { - sub_outcount = RET_TOOSMALL; - goto johab_hangul_failed; - } - sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft); - if (sub_outcount <= RET_ILUNI) - goto johab_hangul_failed; - if (!(sub_outcount <= outleft)) abort(); - outptr += sub_outcount; outleft -= sub_outcount; - } - return outptr-backup_outptr; - johab_hangul_failed: - cd->ostate = backup_state; - outptr = backup_outptr; - outleft = backup_outleft; - if (sub_outcount != RET_ILUNI) - return RET_TOOSMALL; - } - } - { - /* Try to use a variant, but postfix it with - U+303E IDEOGRAPHIC VARIATION INDICATOR - (cf. Ken Lunde's "CJKV information processing", p. 188). */ - int indx = -1; - if (wc == 0x3006) - indx = 0; - else if (wc == 0x30f6) - indx = 1; - else if (wc >= 0x4e00 && wc < 0xa000) - indx = cjk_variants_indx[wc-0x4e00]; - if (indx >= 0) { - for (;; indx++) { - ucs4_t buf[2]; - unsigned short variant = cjk_variants[indx]; - unsigned short last = variant & 0x8000; - variant &= 0x7fff; - variant += 0x3000; - buf[0] = variant; buf[1] = 0x303e; - { - state_t backup_state = cd->ostate; - unsigned char* backup_outptr = outptr; - size_t backup_outleft = outleft; - int i, sub_outcount; - for (i = 0; i < 2; i++) { - if (outleft == 0) { - sub_outcount = RET_TOOSMALL; - goto variant_failed; - } - sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,buf[i],outleft); - if (sub_outcount <= RET_ILUNI) - goto variant_failed; - if (!(sub_outcount <= outleft)) abort(); - outptr += sub_outcount; outleft -= sub_outcount; - } - return outptr-backup_outptr; - variant_failed: - cd->ostate = backup_state; - outptr = backup_outptr; - outleft = backup_outleft; - if (sub_outcount != RET_ILUNI) - return RET_TOOSMALL; - } - if (last) - break; - } - } - } - if (wc >= 0x2018 && wc <= 0x201a) { - /* Special case for quotation marks 0x2018, 0x2019, 0x201a */ - ucs4_t substitute = - (cd->oflags & HAVE_QUOTATION_MARKS - ? (wc == 0x201a ? 0x2018 : wc) - : (cd->oflags & HAVE_ACCENTS - ? (wc==0x2019 ? 0x00b4 : 0x0060) /* use accents */ - : 0x0027 /* use apostrophe */ - ) ); - int outcount = cd->ofuncs.xxx_wctomb(cd,outptr,substitute,outleft); - if (outcount != RET_ILUNI) - return outcount; - } - { - /* Use the transliteration table. */ - int indx = translit_index(wc); - if (indx >= 0) { - const unsigned int * cp = &translit_data[indx]; - unsigned int num = *cp++; - state_t backup_state = cd->ostate; - unsigned char* backup_outptr = outptr; - size_t backup_outleft = outleft; - unsigned int i; - int sub_outcount; - for (i = 0; i < num; i++) { - if (outleft == 0) { - sub_outcount = RET_TOOSMALL; - goto translit_failed; - } - sub_outcount = cd->ofuncs.xxx_wctomb(cd,outptr,cp[i],outleft); - if (sub_outcount == RET_ILUNI) - /* Recursive transliteration. */ - sub_outcount = unicode_transliterate(cd,cp[i],outptr,outleft); - if (sub_outcount <= RET_ILUNI) - goto translit_failed; - if (!(sub_outcount <= outleft)) abort(); - outptr += sub_outcount; outleft -= sub_outcount; - } - return outptr-backup_outptr; - translit_failed: - cd->ostate = backup_state; - outptr = backup_outptr; - outleft = backup_outleft; - if (sub_outcount != RET_ILUNI) - return RET_TOOSMALL; - } - } - return RET_ILUNI; -} - -#ifndef LIBICONV_PLUG - -struct uc_to_mb_fallback_locals { - unsigned char* l_outbuf; - size_t l_outbytesleft; - int l_errno; -}; - -static void uc_to_mb_write_replacement (const char *buf, size_t buflen, - void* callback_arg) -{ - struct uc_to_mb_fallback_locals * plocals = - (struct uc_to_mb_fallback_locals *) callback_arg; - /* Do nothing if already encountered an error in a previous call. */ - if (plocals->l_errno == 0) { - /* Attempt to copy the passed buffer to the output buffer. */ - if (plocals->l_outbytesleft < buflen) - plocals->l_errno = E2BIG; - else { - memcpy(plocals->l_outbuf, buf, buflen); - plocals->l_outbuf += buflen; - plocals->l_outbytesleft -= buflen; - } - } -} - -struct mb_to_uc_fallback_locals { - conv_t l_cd; - unsigned char* l_outbuf; - size_t l_outbytesleft; - int l_errno; -}; - -static void mb_to_uc_write_replacement (const unsigned int *buf, size_t buflen, - void* callback_arg) -{ - struct mb_to_uc_fallback_locals * plocals = - (struct mb_to_uc_fallback_locals *) callback_arg; - /* Do nothing if already encountered an error in a previous call. */ - if (plocals->l_errno == 0) { - /* Attempt to convert the passed buffer to the target encoding. */ - conv_t cd = plocals->l_cd; - unsigned char* outptr = plocals->l_outbuf; - size_t outleft = plocals->l_outbytesleft; - for (; buflen > 0; buf++, buflen--) { - ucs4_t wc = *buf; - int outcount; - if (outleft == 0) { - plocals->l_errno = E2BIG; - break; - } - outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - /* Handle Unicode tag characters (range U+E0000..U+E007F). */ - if ((wc >> 7) == (0xe0000 >> 7)) - goto outcount_zero; - /* Try transliteration. */ - if (cd->transliterate) { - outcount = unicode_transliterate(cd,wc,outptr,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - } - if (cd->discard_ilseq) { - outcount = 0; - goto outcount_ok; - } - #ifndef LIBICONV_PLUG - else if (cd->fallbacks.uc_to_mb_fallback != NULL) { - struct uc_to_mb_fallback_locals locals; - locals.l_outbuf = outptr; - locals.l_outbytesleft = outleft; - locals.l_errno = 0; - cd->fallbacks.uc_to_mb_fallback(wc, - uc_to_mb_write_replacement, - &locals, - cd->fallbacks.data); - if (locals.l_errno != 0) { - plocals->l_errno = locals.l_errno; - break; - } - outptr = locals.l_outbuf; - outleft = locals.l_outbytesleft; - outcount = 0; - goto outcount_ok; - } - #endif - outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - plocals->l_errno = EILSEQ; - break; - outcount_ok: - if (outcount < 0) { - plocals->l_errno = E2BIG; - break; - } - #ifndef LIBICONV_PLUG - if (cd->hooks.uc_hook) - (*cd->hooks.uc_hook)(wc, cd->hooks.data); - #endif - if (!(outcount <= outleft)) abort(); - outptr += outcount; outleft -= outcount; - outcount_zero: ; - } - plocals->l_outbuf = outptr; - plocals->l_outbytesleft = outleft; - } -} - -#endif /* !LIBICONV_PLUG */ - -static size_t unicode_loop_convert (iconv_t icd, - const char* * inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft) -{ - conv_t cd = (conv_t) icd; - size_t result = 0; - const unsigned char* inptr = (const unsigned char*) *inbuf; - size_t inleft = *inbytesleft; - unsigned char* outptr = (unsigned char*) *outbuf; - size_t outleft = *outbytesleft; - while (inleft > 0) { - state_t last_istate = cd->istate; - ucs4_t wc; - int incount; - int outcount; - incount = cd->ifuncs.xxx_mbtowc(cd,&wc,inptr,inleft); - if (incount < 0) { - if ((unsigned int)(-1-incount) % 2 == (unsigned int)(-1-RET_ILSEQ) % 2) { - /* Case 1: invalid input, possibly after a shift sequence */ - incount = DECODE_SHIFT_ILSEQ(incount); - if (cd->discard_ilseq) { - switch (cd->iindex) { - case ei_ucs4: case ei_ucs4be: case ei_ucs4le: - case ei_utf32: case ei_utf32be: case ei_utf32le: - case ei_ucs4internal: case ei_ucs4swapped: - incount += 4; break; - case ei_ucs2: case ei_ucs2be: case ei_ucs2le: - case ei_utf16: case ei_utf16be: case ei_utf16le: - case ei_ucs2internal: case ei_ucs2swapped: - incount += 2; break; - default: - incount += 1; break; - } - goto outcount_zero; - } - #ifndef LIBICONV_PLUG - else if (cd->fallbacks.mb_to_uc_fallback != NULL) { - unsigned int incount2; - struct mb_to_uc_fallback_locals locals; - switch (cd->iindex) { - case ei_ucs4: case ei_ucs4be: case ei_ucs4le: - case ei_utf32: case ei_utf32be: case ei_utf32le: - case ei_ucs4internal: case ei_ucs4swapped: - incount2 = 4; break; - case ei_ucs2: case ei_ucs2be: case ei_ucs2le: - case ei_utf16: case ei_utf16be: case ei_utf16le: - case ei_ucs2internal: case ei_ucs2swapped: - incount2 = 2; break; - default: - incount2 = 1; break; - } - locals.l_cd = cd; - locals.l_outbuf = outptr; - locals.l_outbytesleft = outleft; - locals.l_errno = 0; - cd->fallbacks.mb_to_uc_fallback((const char*)inptr+incount, incount2, - mb_to_uc_write_replacement, - &locals, - cd->fallbacks.data); - if (locals.l_errno != 0) { - inptr += incount; inleft -= incount; - errno = locals.l_errno; - result = -1; - break; - } - incount += incount2; - outptr = locals.l_outbuf; - outleft = locals.l_outbytesleft; - result += 1; - goto outcount_zero; - } - #endif - inptr += incount; inleft -= incount; - errno = EILSEQ; - result = -1; - break; - } - if (incount == RET_TOOFEW(0)) { - /* Case 2: not enough bytes available to detect anything */ - errno = EINVAL; - result = -1; - break; - } - /* Case 3: k bytes read, but only a shift sequence */ - incount = DECODE_TOOFEW(incount); - } else { - /* Case 4: k bytes read, making up a wide character */ - if (outleft == 0) { - cd->istate = last_istate; - errno = E2BIG; - result = -1; - break; - } - outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - /* Handle Unicode tag characters (range U+E0000..U+E007F). */ - if ((wc >> 7) == (0xe0000 >> 7)) - goto outcount_zero; - /* Try transliteration. */ - result++; - if (cd->transliterate) { - outcount = unicode_transliterate(cd,wc,outptr,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - } - if (cd->discard_ilseq) { - outcount = 0; - goto outcount_ok; - } - #ifndef LIBICONV_PLUG - else if (cd->fallbacks.uc_to_mb_fallback != NULL) { - struct uc_to_mb_fallback_locals locals; - locals.l_outbuf = outptr; - locals.l_outbytesleft = outleft; - locals.l_errno = 0; - cd->fallbacks.uc_to_mb_fallback(wc, - uc_to_mb_write_replacement, - &locals, - cd->fallbacks.data); - if (locals.l_errno != 0) { - cd->istate = last_istate; - errno = locals.l_errno; - return -1; - } - outptr = locals.l_outbuf; - outleft = locals.l_outbytesleft; - outcount = 0; - goto outcount_ok; - } - #endif - outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - cd->istate = last_istate; - errno = EILSEQ; - result = -1; - break; - outcount_ok: - if (outcount < 0) { - cd->istate = last_istate; - errno = E2BIG; - result = -1; - break; - } - #ifndef LIBICONV_PLUG - if (cd->hooks.uc_hook) - (*cd->hooks.uc_hook)(wc, cd->hooks.data); - #endif - if (!(outcount <= outleft)) abort(); - outptr += outcount; outleft -= outcount; - } - outcount_zero: - if (!(incount <= inleft)) abort(); - inptr += incount; inleft -= incount; - } - *inbuf = (const char*) inptr; - *inbytesleft = inleft; - *outbuf = (char*) outptr; - *outbytesleft = outleft; - return result; -} - -static size_t unicode_loop_reset (iconv_t icd, - char* * outbuf, size_t *outbytesleft) -{ - conv_t cd = (conv_t) icd; - if (outbuf == NULL || *outbuf == NULL) { - /* Reset the states. */ - memset(&cd->istate,'\0',sizeof(state_t)); - memset(&cd->ostate,'\0',sizeof(state_t)); - return 0; - } else { - size_t result = 0; - if (cd->ifuncs.xxx_flushwc) { - state_t last_istate = cd->istate; - ucs4_t wc; - if (cd->ifuncs.xxx_flushwc(cd, &wc)) { - unsigned char* outptr = (unsigned char*) *outbuf; - size_t outleft = *outbytesleft; - int outcount = cd->ofuncs.xxx_wctomb(cd,outptr,wc,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - /* Handle Unicode tag characters (range U+E0000..U+E007F). */ - if ((wc >> 7) == (0xe0000 >> 7)) - goto outcount_zero; - /* Try transliteration. */ - result++; - if (cd->transliterate) { - outcount = unicode_transliterate(cd,wc,outptr,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - } - if (cd->discard_ilseq) { - outcount = 0; - goto outcount_ok; - } - #ifndef LIBICONV_PLUG - else if (cd->fallbacks.uc_to_mb_fallback != NULL) { - struct uc_to_mb_fallback_locals locals; - locals.l_outbuf = outptr; - locals.l_outbytesleft = outleft; - locals.l_errno = 0; - cd->fallbacks.uc_to_mb_fallback(wc, - uc_to_mb_write_replacement, - &locals, - cd->fallbacks.data); - if (locals.l_errno != 0) { - cd->istate = last_istate; - errno = locals.l_errno; - return -1; - } - outptr = locals.l_outbuf; - outleft = locals.l_outbytesleft; - outcount = 0; - goto outcount_ok; - } - #endif - outcount = cd->ofuncs.xxx_wctomb(cd,outptr,0xFFFD,outleft); - if (outcount != RET_ILUNI) - goto outcount_ok; - cd->istate = last_istate; - errno = EILSEQ; - return -1; - outcount_ok: - if (outcount < 0) { - cd->istate = last_istate; - errno = E2BIG; - return -1; - } - #ifndef LIBICONV_PLUG - if (cd->hooks.uc_hook) - (*cd->hooks.uc_hook)(wc, cd->hooks.data); - #endif - if (!(outcount <= outleft)) abort(); - outptr += outcount; - outleft -= outcount; - outcount_zero: - *outbuf = (char*) outptr; - *outbytesleft = outleft; - } - } - if (cd->ofuncs.xxx_reset) { - unsigned char* outptr = (unsigned char*) *outbuf; - size_t outleft = *outbytesleft; - int outcount = cd->ofuncs.xxx_reset(cd,outptr,outleft); - if (outcount < 0) { - errno = E2BIG; - return -1; - } - if (!(outcount <= outleft)) abort(); - *outbuf = (char*) (outptr + outcount); - *outbytesleft = outleft - outcount; - } - memset(&cd->istate,'\0',sizeof(state_t)); - memset(&cd->ostate,'\0',sizeof(state_t)); - return result; - } -} diff --git a/jni/parted/libiconv/lib/loop_wchar.h b/jni/parted/libiconv/lib/loop_wchar.h deleted file mode 100755 index a90c729..0000000 --- a/jni/parted/libiconv/lib/loop_wchar.h +++ /dev/null @@ -1,473 +0,0 @@ -/* - * Copyright (C) 2000-2002, 2005-2006, 2008-2009, 2011 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* This file defines three conversion loops: - - from wchar_t to anything else, - - from anything else to wchar_t, - - from wchar_t to wchar_t. - */ - -#if HAVE_WCRTOMB || HAVE_MBRTOWC -/* Tru64 with Desktop Toolkit C has a bug: must be included before - . - BSD/OS 4.0.1 has a bug: , and must be - included before . - In some builds of uClibc, is nonexistent and wchar_t is defined - by . */ -# include -# include -# include -# include -# define BUF_SIZE 64 /* assume MB_LEN_MAX <= 64 */ - /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ -// extern size_t mbrtowc (); -# ifdef mbstate_t -# define mbrtowc(pwc, s, n, ps) (mbrtowc)(pwc, s, n, 0) -# define mbsinit(ps) 1 -# endif -# ifndef mbsinit -# if !HAVE_MBSINIT -# define mbsinit(ps) 1 -# endif -# endif -#endif - -/* - * The first two conversion loops have an extended conversion descriptor. - */ -struct wchar_conv_struct { - struct conv_struct parent; -#if HAVE_WCRTOMB || HAVE_MBRTOWC - mbstate_t state; -#endif -}; - - -#if HAVE_WCRTOMB - -/* From wchar_t to anything else. */ - -#ifndef LIBICONV_PLUG - -#if 0 - -struct wc_to_mb_fallback_locals { - struct wchar_conv_struct * l_wcd; - char* l_outbuf; - size_t l_outbytesleft; - int l_errno; -}; - -/* A callback that writes a string given in the locale encoding. */ -static void wc_to_mb_write_replacement (const char *buf, size_t buflen, - void* callback_arg) -{ - struct wc_to_mb_fallback_locals * plocals = - (struct wc_to_mb_fallback_locals *) callback_arg; - /* Do nothing if already encountered an error in a previous call. */ - if (plocals->l_errno == 0) { - /* Attempt to convert the passed buffer to the target encoding. - Here we don't support characters split across multiple calls. */ - const char* bufptr = buf; - size_t bufleft = buflen; - size_t res = unicode_loop_convert(&plocals->l_wcd->parent, - &bufptr,&bufleft, - &plocals->l_outbuf,&plocals->l_outbytesleft); - if (res == (size_t)(-1)) { - if (errno == EILSEQ || errno == EINVAL) - /* Invalid buf contents. */ - plocals->l_errno = EILSEQ; - else if (errno == E2BIG) - /* Output buffer too small. */ - plocals->l_errno = E2BIG; - else - abort(); - } else { - /* Successful conversion. */ - if (bufleft > 0) - abort(); - } - } -} - -#else - -struct wc_to_mb_fallback_locals { - char* l_outbuf; - size_t l_outbytesleft; - int l_errno; -}; - -/* A callback that writes a string given in the target encoding. */ -static void wc_to_mb_write_replacement (const char *buf, size_t buflen, - void* callback_arg) -{ - struct wc_to_mb_fallback_locals * plocals = - (struct wc_to_mb_fallback_locals *) callback_arg; - /* Do nothing if already encountered an error in a previous call. */ - if (plocals->l_errno == 0) { - /* Attempt to copy the passed buffer to the output buffer. */ - if (plocals->l_outbytesleft < buflen) - plocals->l_errno = E2BIG; - else { - memcpy(plocals->l_outbuf, buf, buflen); - plocals->l_outbuf += buflen; - plocals->l_outbytesleft -= buflen; - } - } -} - -#endif - -#endif /* !LIBICONV_PLUG */ - -static size_t wchar_from_loop_convert (iconv_t icd, - const char* * inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft) -{ - struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; - size_t result = 0; - while (*inbytesleft >= sizeof(wchar_t)) { - const wchar_t * inptr = (const wchar_t *) *inbuf; - size_t inleft = *inbytesleft; - char buf[BUF_SIZE]; - mbstate_t state = wcd->state; - size_t bufcount = 0; - while (inleft >= sizeof(wchar_t)) { - /* Convert one wchar_t to multibyte representation. */ - size_t count = wcrtomb(buf+bufcount,*inptr,&state); - if (count == (size_t)(-1)) { - /* Invalid input. */ - if (wcd->parent.discard_ilseq) { - count = 0; - } - #ifndef LIBICONV_PLUG - else if (wcd->parent.fallbacks.wc_to_mb_fallback != NULL) { - /* Drop the contents of buf[] accumulated so far, and instead - pass all queued wide characters to the fallback handler. */ - struct wc_to_mb_fallback_locals locals; - const wchar_t * fallback_inptr; - #if 0 - locals.l_wcd = wcd; - #endif - locals.l_outbuf = *outbuf; - locals.l_outbytesleft = *outbytesleft; - locals.l_errno = 0; - for (fallback_inptr = (const wchar_t *) *inbuf; - fallback_inptr <= inptr; - fallback_inptr++) - wcd->parent.fallbacks.wc_to_mb_fallback(*fallback_inptr, - wc_to_mb_write_replacement, - &locals, - wcd->parent.fallbacks.data); - if (locals.l_errno != 0) { - errno = locals.l_errno; - return -1; - } - wcd->state = state; - *inbuf = (const char *) (inptr + 1); - *inbytesleft = inleft - sizeof(wchar_t); - *outbuf = locals.l_outbuf; - *outbytesleft = locals.l_outbytesleft; - result += 1; - break; - } - #endif - else { - errno = EILSEQ; - return -1; - } - } - inptr++; - inleft -= sizeof(wchar_t); - bufcount += count; - if (count == 0) { - /* Continue, append next wchar_t. */ - } else { - /* Attempt to convert the accumulated multibyte representations - to the target encoding. */ - const char* bufptr = buf; - size_t bufleft = bufcount; - char* outptr = *outbuf; - size_t outleft = *outbytesleft; - size_t res = unicode_loop_convert(&wcd->parent, - &bufptr,&bufleft, - &outptr,&outleft); - if (res == (size_t)(-1)) { - if (errno == EILSEQ) - /* Invalid input. */ - return -1; - else if (errno == E2BIG) - /* Output buffer too small. */ - return -1; - else if (errno == EINVAL) { - /* Continue, append next wchar_t, but avoid buffer overrun. */ - if (bufcount + MB_CUR_MAX > BUF_SIZE) - abort(); - } else - abort(); - } else { - /* Successful conversion. */ - wcd->state = state; - *inbuf = (const char *) inptr; - *inbytesleft = inleft; - *outbuf = outptr; - *outbytesleft = outleft; - result += res; - break; - } - } - } - } - return result; -} - -static size_t wchar_from_loop_reset (iconv_t icd, - char* * outbuf, size_t *outbytesleft) -{ - struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; - if (outbuf == NULL || *outbuf == NULL) { - /* Reset the states. */ - memset(&wcd->state,'\0',sizeof(mbstate_t)); - return unicode_loop_reset(&wcd->parent,NULL,NULL); - } else { - if (!mbsinit(&wcd->state)) { - mbstate_t state = wcd->state; - char buf[BUF_SIZE]; - size_t bufcount = wcrtomb(buf,(wchar_t)0,&state); - if (bufcount == (size_t)(-1) || bufcount == 0 || buf[bufcount-1] != '\0') - abort(); - else { - const char* bufptr = buf; - size_t bufleft = bufcount-1; - char* outptr = *outbuf; - size_t outleft = *outbytesleft; - size_t res = unicode_loop_convert(&wcd->parent, - &bufptr,&bufleft, - &outptr,&outleft); - if (res == (size_t)(-1)) { - if (errno == E2BIG) - return -1; - else - abort(); - } else { - res = unicode_loop_reset(&wcd->parent,&outptr,&outleft); - if (res == (size_t)(-1)) - return res; - else { - /* Successful. */ - wcd->state = state; - *outbuf = outptr; - *outbytesleft = outleft; - return 0; - } - } - } - } else - return unicode_loop_reset(&wcd->parent,outbuf,outbytesleft); - } -} - -#endif - - -#if HAVE_MBRTOWC - -/* From anything else to wchar_t. */ - -#ifndef LIBICONV_PLUG - -struct mb_to_wc_fallback_locals { - char* l_outbuf; - size_t l_outbytesleft; - int l_errno; -}; - -static void mb_to_wc_write_replacement (const wchar_t *buf, size_t buflen, - void* callback_arg) -{ - struct mb_to_wc_fallback_locals * plocals = - (struct mb_to_wc_fallback_locals *) callback_arg; - /* Do nothing if already encountered an error in a previous call. */ - if (plocals->l_errno == 0) { - /* Attempt to copy the passed buffer to the output buffer. */ - if (plocals->l_outbytesleft < sizeof(wchar_t)*buflen) - plocals->l_errno = E2BIG; - else { - for (; buflen > 0; buf++, buflen--) { - *(wchar_t*) plocals->l_outbuf = *buf; - plocals->l_outbuf += sizeof(wchar_t); - plocals->l_outbytesleft -= sizeof(wchar_t); - } - } - } -} - -#endif /* !LIBICONV_PLUG */ - -static size_t wchar_to_loop_convert (iconv_t icd, - const char* * inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft) -{ - struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; - size_t result = 0; - while (*inbytesleft > 0) { - size_t incount; - for (incount = 1; ; ) { - /* Here incount <= *inbytesleft. */ - char buf[BUF_SIZE]; - const char* inptr = *inbuf; - size_t inleft = incount; - char* bufptr = buf; - size_t bufleft = BUF_SIZE; - size_t res = unicode_loop_convert(&wcd->parent, - &inptr,&inleft, - &bufptr,&bufleft); - if (res == (size_t)(-1)) { - if (errno == EILSEQ) - /* Invalid input. */ - return -1; - else if (errno == EINVAL) { - /* Incomplete input. Next try with one more input byte. */ - } else - /* E2BIG shouldn't occur. */ - abort(); - } else { - /* Successful conversion. */ - size_t bufcount = bufptr-buf; /* = BUF_SIZE-bufleft */ - mbstate_t state = wcd->state; - wchar_t wc; - res = mbrtowc(&wc,buf,bufcount,&state); - if (res == (size_t)(-2)) { - /* Next try with one more input byte. */ - } else { - if (res == (size_t)(-1)) { - /* Invalid input. */ - if (wcd->parent.discard_ilseq) { - } - #ifndef LIBICONV_PLUG - else if (wcd->parent.fallbacks.mb_to_wc_fallback != NULL) { - /* Drop the contents of buf[] accumulated so far, and instead - pass all queued chars to the fallback handler. */ - struct mb_to_wc_fallback_locals locals; - locals.l_outbuf = *outbuf; - locals.l_outbytesleft = *outbytesleft; - locals.l_errno = 0; - wcd->parent.fallbacks.mb_to_wc_fallback(*inbuf, incount, - mb_to_wc_write_replacement, - &locals, - wcd->parent.fallbacks.data); - if (locals.l_errno != 0) { - errno = locals.l_errno; - return -1; - } - /* Restoring the state is not needed because it is the initial - state anyway: For all known locale encodings, the multibyte - to wchar_t conversion doesn't have shift state, and we have - excluded partial accumulated characters. */ - /* wcd->state = state; */ - *inbuf += incount; - *inbytesleft -= incount; - *outbuf = locals.l_outbuf; - *outbytesleft = locals.l_outbytesleft; - result += 1; - break; - } - #endif - else - return -1; - } else { - if (*outbytesleft < sizeof(wchar_t)) { - errno = E2BIG; - return -1; - } - *(wchar_t*) *outbuf = wc; - /* Restoring the state is not needed because it is the initial - state anyway: For all known locale encodings, the multibyte - to wchar_t conversion doesn't have shift state, and we have - excluded partial accumulated characters. */ - /* wcd->state = state; */ - *outbuf += sizeof(wchar_t); - *outbytesleft -= sizeof(wchar_t); - } - *inbuf += incount; - *inbytesleft -= incount; - result += res; - break; - } - } - incount++; - if (incount > *inbytesleft) { - /* Incomplete input. */ - errno = EINVAL; - return -1; - } - } - } - return result; -} - -static size_t wchar_to_loop_reset (iconv_t icd, - char* * outbuf, size_t *outbytesleft) -{ - struct wchar_conv_struct * wcd = (struct wchar_conv_struct *) icd; - size_t res = unicode_loop_reset(&wcd->parent,outbuf,outbytesleft); - if (res == (size_t)(-1)) - return res; - memset(&wcd->state,0,sizeof(mbstate_t)); - return 0; -} - -#endif - - -/* From wchar_t to wchar_t. */ - -static size_t wchar_id_loop_convert (iconv_t icd, - const char* * inbuf, size_t *inbytesleft, - char* * outbuf, size_t *outbytesleft) -{ - struct conv_struct * cd = (struct conv_struct *) icd; - const wchar_t* inptr = (const wchar_t*) *inbuf; - size_t inleft = *inbytesleft / sizeof(wchar_t); - wchar_t* outptr = (wchar_t*) *outbuf; - size_t outleft = *outbytesleft / sizeof(wchar_t); - size_t count = (inleft <= outleft ? inleft : outleft); - if (count > 0) { - *inbytesleft -= count * sizeof(wchar_t); - *outbytesleft -= count * sizeof(wchar_t); - do { - wchar_t wc = *inptr++; - *outptr++ = wc; - #ifndef LIBICONV_PLUG - if (cd->hooks.wc_hook) - (*cd->hooks.wc_hook)(wc, cd->hooks.data); - #endif - } while (--count > 0); - *inbuf = (const char*) inptr; - *outbuf = (char*) outptr; - } - return 0; -} - -static size_t wchar_id_loop_reset (iconv_t icd, - char* * outbuf, size_t *outbytesleft) -{ - return 0; -} diff --git a/jni/parted/libiconv/lib/loops.h b/jni/parted/libiconv/lib/loops.h deleted file mode 100755 index 8125c36..0000000 --- a/jni/parted/libiconv/lib/loops.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2000 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* This file defines all the loops. */ - -#include "loop_unicode.h" -#include "loop_wchar.h" - diff --git a/jni/parted/libiconv/lib/mac_arabic.h b/jni/parted/libiconv/lib/mac_arabic.h deleted file mode 100755 index 43ea38b..0000000 --- a/jni/parted/libiconv/lib/mac_arabic.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacArabic - */ - -static const unsigned short mac_arabic_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00a0, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x06ba, 0x00ab, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x2026, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00bb, 0x00f4, 0x00f6, 0x00f7, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x066a, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x060c, 0xfffd, 0xfffd, 0xfffd, - /* 0xb0 */ - 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, - 0x0668, 0x0669, 0xfffd, 0x061b, 0xfffd, 0xfffd, 0xfffd, 0x061f, - /* 0xc0 */ - 0x066d, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, - 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, - /* 0xd0 */ - 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, - 0x0638, 0x0639, 0x063a, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xe0 */ - 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, - 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, - /* 0xf0 */ - 0x0650, 0x0651, 0x0652, 0x067e, 0x0679, 0x0686, 0x06d5, 0x06a4, - 0x06af, 0x0688, 0x0691, 0xfffd, 0xfffd, 0xfffd, 0x0698, 0x06d2, -}; - -static int -mac_arabic_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_arabic_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_arabic_page00[96] = { - 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x82, /* 0xc0-0xc7 */ - 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x00, 0x8a, 0x00, 0x00, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x00, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x96, 0x00, 0x97, 0x99, 0x00, 0x9a, 0x9b, /* 0xf0-0xf7 */ - 0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char mac_arabic_page06[208] = { - 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0xbf, /* 0x18-0x1f */ - 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */ - 0xf0, 0xf1, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x60-0x67 */ - 0xb8, 0xb9, 0xa5, 0x00, 0x00, 0xc0, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00, /* 0x80-0x87 */ - 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0xff, 0x00, 0x00, 0xf6, 0x00, 0x00, /* 0xd0-0xd7 */ -}; - -static int -mac_arabic_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = mac_arabic_page00[wc-0x00a0]; - else if (wc >= 0x0608 && wc < 0x06d8) - c = mac_arabic_page06[wc-0x0608]; - else if (wc == 0x2026) - c = 0x93; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_centraleurope.h b/jni/parted/libiconv/lib/mac_centraleurope.h deleted file mode 100755 index f38cf87..0000000 --- a/jni/parted/libiconv/lib/mac_centraleurope.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacCentralEurope - */ - -static const unsigned short mac_centraleurope_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x0100, 0x0101, 0x00c9, 0x0104, 0x00d6, 0x00dc, 0x00e1, - 0x0105, 0x010c, 0x00e4, 0x010d, 0x0106, 0x0107, 0x00e9, 0x0179, - /* 0x90 */ - 0x017a, 0x010e, 0x00ed, 0x010f, 0x0112, 0x0113, 0x0116, 0x00f3, - 0x0117, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x011a, 0x011b, 0x00fc, - /* 0xa0 */ - 0x2020, 0x00b0, 0x0118, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x0119, 0x00a8, 0x2260, 0x0123, 0x012e, - /* 0xb0 */ - 0x012f, 0x012a, 0x2264, 0x2265, 0x012b, 0x0136, 0x2202, 0x2211, - 0x0142, 0x013b, 0x013c, 0x013d, 0x013e, 0x0139, 0x013a, 0x0145, - /* 0xc0 */ - 0x0146, 0x0143, 0x00ac, 0x221a, 0x0144, 0x0147, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x0148, 0x0150, 0x00d5, 0x0151, 0x014c, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x014d, 0x0154, 0x0155, 0x0158, 0x2039, 0x203a, 0x0159, 0x0156, - /* 0xe0 */ - 0x0157, 0x0160, 0x201a, 0x201e, 0x0161, 0x015a, 0x015b, 0x00c1, - 0x0164, 0x0165, 0x00cd, 0x017d, 0x017e, 0x016a, 0x00d3, 0x00d4, - /* 0xf0 */ - 0x016b, 0x016e, 0x00da, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, - 0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7, -}; - -static int -mac_centraleurope_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) mac_centraleurope_2uni[c-0x80]; - return 1; -} - -static const unsigned char mac_centraleurope_page00[224] = { - 0xca, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0xac, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ - 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0xe7, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x83, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xf2, 0x00, 0x86, 0xf8, 0x00, 0xa7, /* 0xd8-0xdf */ - 0x00, 0x87, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0x00, 0x8e, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0x00, 0x00, 0x9c, 0x00, 0x9f, 0xf9, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x81, 0x82, 0x00, 0x00, 0x84, 0x88, 0x8c, 0x8d, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x89, 0x8b, 0x91, 0x93, /* 0x08-0x0f */ - 0x00, 0x00, 0x94, 0x95, 0x00, 0x00, 0x96, 0x98, /* 0x10-0x17 */ - 0xa2, 0xab, 0x9d, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xfe, 0xae, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0xb1, 0xb4, 0x00, 0x00, 0xaf, 0xb0, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xfa, /* 0x30-0x37 */ - 0x00, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0xbc, 0x00, /* 0x38-0x3f */ - 0x00, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0xc0, 0xc5, /* 0x40-0x47 */ - 0xcb, 0x00, 0x00, 0x00, 0xcf, 0xd8, 0x00, 0x00, /* 0x48-0x4f */ - 0xcc, 0xce, 0x00, 0x00, 0xd9, 0xda, 0xdf, 0xe0, /* 0x50-0x57 */ - 0xdb, 0xde, 0xe5, 0xe6, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xe1, 0xe4, 0x00, 0x00, 0xe8, 0xe9, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0xed, 0xf0, 0x00, 0x00, 0xf1, 0xf3, /* 0x68-0x6f */ - 0xf4, 0xf5, 0xf6, 0xf7, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0xec, 0x00, /* 0x78-0x7f */ -}; -static const unsigned char mac_centraleurope_page20[48] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ - 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char mac_centraleurope_page22[32] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; -static const unsigned char mac_centraleurope_page22_1[8] = { - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_centraleurope_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0180) - c = mac_centraleurope_page00[wc-0x00a0]; - else if (wc == 0x02c7) - c = 0xff; - else if (wc >= 0x2010 && wc < 0x2040) - c = mac_centraleurope_page20[wc-0x2010]; - else if (wc == 0x2122) - c = 0xaa; - else if (wc >= 0x2200 && wc < 0x2220) - c = mac_centraleurope_page22[wc-0x2200]; - else if (wc >= 0x2260 && wc < 0x2268) - c = mac_centraleurope_page22_1[wc-0x2260]; - else if (wc == 0x25ca) - c = 0xd7; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_croatian.h b/jni/parted/libiconv/lib/mac_croatian.h deleted file mode 100755 index 2b023e2..0000000 --- a/jni/parted/libiconv/lib/mac_croatian.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacCroatian - */ - -static const unsigned short mac_croatian_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x0160, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x017d, 0x00d8, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x2206, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x0161, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x017e, 0x00f8, - /* 0xc0 */ - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x0106, 0x00ab, - 0x010c, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - /* 0xd0 */ - 0x0110, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0xfffd, 0x00a9, 0x2044, 0x00a4, 0x2039, 0x203a, 0x00c6, 0x00bb, - /* 0xe0 */ - 0x2013, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x0107, 0x00c1, - 0x010d, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - /* 0xf0 */ - 0x0111, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, - 0x00af, 0x03c0, 0x00cb, 0x02da, 0x00b8, 0x00ca, 0x00e6, 0x02c7, -}; - -static int -mac_croatian_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_croatian_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_croatian_page00[248] = { - 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0xac, 0xd9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ - 0xfc, 0x00, 0xbc, 0xdf, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xde, 0x82, /* 0xc0-0xc7 */ - 0xe9, 0x83, 0xfd, 0xfa, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ - 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xfe, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xe6, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0xc8, 0xe8, 0x00, 0x00, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xa9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xbe, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char mac_croatian_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0xfb, 0x00, 0xf7, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char mac_croatian_page20[56] = { - 0x00, 0x00, 0x00, 0xe0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ - 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ -}; -static const unsigned char mac_croatian_page21[8] = { - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_croatian_page22[104] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xb4, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ - 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_croatian_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0198) - c = mac_croatian_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = mac_croatian_page02[wc-0x02c0]; - else if (wc == 0x03c0) - c = 0xf9; - else if (wc >= 0x2010 && wc < 0x2048) - c = mac_croatian_page20[wc-0x2010]; - else if (wc >= 0x2120 && wc < 0x2128) - c = mac_croatian_page21[wc-0x2120]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_croatian_page22[wc-0x2200]; - else if (wc == 0x25ca) - c = 0xd7; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_cyrillic.h b/jni/parted/libiconv/lib/mac_cyrillic.h deleted file mode 100755 index 41111b0..0000000 --- a/jni/parted/libiconv/lib/mac_cyrillic.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacCyrillic - */ - -static const unsigned short mac_cyrillic_2uni[128] = { - /* 0x80 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0x90 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xa0 */ - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, - 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x2202, 0x0408, - 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, - /* 0xc0 */ - 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, - 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, - /* 0xe0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xf0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, -}; - -static int -mac_cyrillic_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0x80) - *pwc = (ucs4_t) mac_cyrillic_2uni[c-0x80]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char mac_cyrillic_page00[32] = { - 0xca, 0x00, 0xa2, 0xa3, 0xff, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char mac_cyrillic_page04[96] = { - 0x00, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, /* 0x00-0x07 */ - 0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x00, 0xd8, 0xda, /* 0x08-0x0f */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* 0x48-0x4f */ - 0x00, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, /* 0x50-0x57 */ - 0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0x00, 0xd9, 0xdb, /* 0x58-0x5f */ -}; -static const unsigned char mac_cyrillic_page20[24] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xd7, 0x00, /* 0x18-0x1f */ - 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_cyrillic_page21[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_cyrillic_page22[104] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_cyrillic_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = mac_cyrillic_page00[wc-0x00a0]; - else if (wc == 0x00f7) - c = 0xd6; - else if (wc == 0x0192) - c = 0xc4; - else if (wc >= 0x0400 && wc < 0x0460) - c = mac_cyrillic_page04[wc-0x0400]; - else if (wc >= 0x2010 && wc < 0x2028) - c = mac_cyrillic_page20[wc-0x2010]; - else if (wc >= 0x2110 && wc < 0x2128) - c = mac_cyrillic_page21[wc-0x2110]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_cyrillic_page22[wc-0x2200]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_greek.h b/jni/parted/libiconv/lib/mac_greek.h deleted file mode 100755 index 98e9206..0000000 --- a/jni/parted/libiconv/lib/mac_greek.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacGreek - */ - -static const unsigned short mac_greek_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385, - 0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd, - 0x2030, 0x00f4, 0x00f6, 0x00a6, 0x00ad, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df, - 0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x0387, - /* 0xb0 */ - 0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396, - 0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9, - /* 0xc0 */ - 0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153, - /* 0xd0 */ - 0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389, - 0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f, - /* 0xe0 */ - 0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3, - 0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf, - /* 0xf0 */ - 0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2, - 0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0xfffd, -}; - -static int -mac_greek_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_greek_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_greek_page00[96] = { - 0xca, 0x00, 0x00, 0x92, 0x00, 0xb4, 0x9b, 0xac, /* 0xa0-0xa7 */ - 0x8c, 0xa9, 0x00, 0xc7, 0xc2, 0x9c, 0xa8, 0x00, /* 0xa8-0xaf */ - 0xae, 0xb1, 0x82, 0x84, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x81, 0x00, 0xc8, 0x00, 0x97, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ - 0x88, 0x00, 0x89, 0x00, 0x8a, 0x00, 0x00, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x00, 0x00, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0x00, 0x9d, 0x00, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char mac_greek_page03[80] = { - 0x00, 0x00, 0x00, 0x00, 0x8b, 0x87, 0xcd, 0xaf, /* 0x80-0x87 */ - 0xce, 0xd7, 0xd8, 0x00, 0xd9, 0x00, 0xda, 0xdf, /* 0x88-0x8f */ - 0xfd, 0xb0, 0xb5, 0xa1, 0xa2, 0xb6, 0xb7, 0xb8, /* 0x90-0x97 */ - 0xa3, 0xb9, 0xba, 0xa4, 0xbb, 0xc1, 0xa5, 0xc3, /* 0x98-0x9f */ - 0xa6, 0xc4, 0x00, 0xaa, 0xc6, 0xcb, 0xbc, 0xcc, /* 0xa0-0xa7 */ - 0xbe, 0xbf, 0xab, 0xbd, 0xc0, 0xdb, 0xdc, 0xdd, /* 0xa8-0xaf */ - 0xfe, 0xe1, 0xe2, 0xe7, 0xe4, 0xe5, 0xfa, 0xe8, /* 0xb0-0xb7 */ - 0xf5, 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xea, 0xef, /* 0xb8-0xbf */ - 0xf0, 0xf2, 0xf7, 0xf3, 0xf4, 0xf9, 0xe6, 0xf8, /* 0xc0-0xc7 */ - 0xe3, 0xf6, 0xfb, 0xfc, 0xde, 0xe0, 0xf1, 0x00, /* 0xc8-0xcf */ -}; -static const unsigned char mac_greek_page20[40] = { - 0x00, 0x00, 0x00, 0xd0, 0x00, 0xd1, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0x00, 0x00, /* 0x18-0x1f */ - 0xa0, 0x00, 0x96, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ -}; -static const unsigned char mac_greek_page22[32] = { - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_greek_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = mac_greek_page00[wc-0x00a0]; - else if (wc == 0x0153) - c = 0xcf; - else if (wc >= 0x0380 && wc < 0x03d0) - c = mac_greek_page03[wc-0x0380]; - else if (wc >= 0x2010 && wc < 0x2038) - c = mac_greek_page20[wc-0x2010]; - else if (wc == 0x2122) - c = 0x93; - else if (wc >= 0x2248 && wc < 0x2268) - c = mac_greek_page22[wc-0x2248]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_hebrew.h b/jni/parted/libiconv/lib/mac_hebrew.h deleted file mode 100755 index d66bd9c..0000000 --- a/jni/parted/libiconv/lib/mac_hebrew.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacHebrew - */ - -static const unsigned short mac_hebrew_2uni[128] = { - /* 0x80 */ - 0x00c4, 0xfb1f, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x20aa, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xb0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, - /* 0xc0 */ - 0xfffd, 0x201e, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x05bc, 0xfb4b, - 0xfb35, 0x2026, 0x00a0, 0x05b8, 0x05b7, 0x05b5, 0x05b6, 0x05b4, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0xfb2a, 0xfb2b, - 0x05bf, 0x05b0, 0x05b2, 0x05b1, 0x05bb, 0x05b9, 0xfffd, 0x05b3, - /* 0xe0 */ - 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, - 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, - /* 0xf0 */ - 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, - 0x05e8, 0x05e9, 0x05ea, 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0xfffd, -}; - -static int -mac_hebrew_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c >= 0x80) { - unsigned short wc = mac_hebrew_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_hebrew_page00[96] = { - 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x82, /* 0xc0-0xc7 */ - 0x00, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x00, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0x00, /* 0xf0-0xf7 */ - 0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char mac_hebrew_page05[64] = { - 0xd9, 0xdb, 0xda, 0xdf, 0xcf, 0xcd, 0xce, 0xcc, /* 0xb0-0xb7 */ - 0xcb, 0xdd, 0x00, 0xdc, 0xc6, 0x00, 0x00, 0xd8, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xd0-0xd7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xd8-0xdf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xe0-0xe7 */ - 0xf8, 0xf9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char mac_hebrew_page20[24] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xc1, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_hebrew_pagefb[56] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0xd6, 0xd7, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ -}; - -static int -mac_hebrew_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = mac_hebrew_page00[wc-0x00a0]; - else if (wc >= 0x05b0 && wc < 0x05f0) - c = mac_hebrew_page05[wc-0x05b0]; - else if (wc >= 0x2010 && wc < 0x2028) - c = mac_hebrew_page20[wc-0x2010]; - else if (wc == 0x20aa) - c = 0xa6; - else if (wc >= 0xfb18 && wc < 0xfb50) - c = mac_hebrew_pagefb[wc-0xfb18]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_iceland.h b/jni/parted/libiconv/lib/mac_iceland.h deleted file mode 100755 index 9a45bbf..0000000 --- a/jni/parted/libiconv/lib/mac_iceland.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacIceland - */ - -static const unsigned short mac_iceland_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, - /* 0xc0 */ - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe, - /* 0xe0 */ - 0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - /* 0xf0 */ - 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, -}; - -static int -mac_iceland_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_iceland_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_iceland_page00[96] = { - 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ - 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */ - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ - 0xdc, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0xa0, 0xde, 0xa7, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0xdd, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xe0, 0xdf, 0xd8, /* 0xf8-0xff */ -}; -static const unsigned char mac_iceland_page01[104] = { - 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char mac_iceland_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char mac_iceland_page20[56] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ -}; -static const unsigned char mac_iceland_page21[8] = { - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_iceland_page22[104] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ - 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_iceland_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = mac_iceland_page00[wc-0x00a0]; - else if (wc >= 0x0130 && wc < 0x0198) - c = mac_iceland_page01[wc-0x0130]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = mac_iceland_page02[wc-0x02c0]; - else if (wc == 0x03c0) - c = 0xb9; - else if (wc >= 0x2010 && wc < 0x2048) - c = mac_iceland_page20[wc-0x2010]; - else if (wc >= 0x2120 && wc < 0x2128) - c = mac_iceland_page21[wc-0x2120]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_iceland_page22[wc-0x2200]; - else if (wc == 0x25ca) - c = 0xd7; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_roman.h b/jni/parted/libiconv/lib/mac_roman.h deleted file mode 100755 index cb126bc..0000000 --- a/jni/parted/libiconv/lib/mac_roman.h +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacRoman - */ - -static const unsigned short mac_roman_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, - /* 0xc0 */ - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0xfb01, 0xfb02, - /* 0xe0 */ - 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - /* 0xf0 */ - 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, -}; - -static int -mac_roman_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_roman_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_roman_page00[96] = { - 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ - 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */ - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ - 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */ -}; -static const unsigned char mac_roman_page01[104] = { - 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char mac_roman_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char mac_roman_page20[56] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ - 0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ -}; -static const unsigned char mac_roman_page21[8] = { - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_roman_page22[104] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ - 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; -static const unsigned char mac_roman_pagefb[8] = { - 0x00, 0xde, 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ -}; - -static int -mac_roman_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = mac_roman_page00[wc-0x00a0]; - else if (wc >= 0x0130 && wc < 0x0198) - c = mac_roman_page01[wc-0x0130]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = mac_roman_page02[wc-0x02c0]; - else if (wc == 0x03c0) - c = 0xb9; - else if (wc >= 0x2010 && wc < 0x2048) - c = mac_roman_page20[wc-0x2010]; - else if (wc >= 0x2120 && wc < 0x2128) - c = mac_roman_page21[wc-0x2120]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_roman_page22[wc-0x2200]; - else if (wc == 0x25ca) - c = 0xd7; - else if (wc >= 0xfb00 && wc < 0xfb08) - c = mac_roman_pagefb[wc-0xfb00]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_romania.h b/jni/parted/libiconv/lib/mac_romania.h deleted file mode 100755 index ac03b1d..0000000 --- a/jni/parted/libiconv/lib/mac_romania.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacRomania - */ - -static const unsigned short mac_romania_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x0102, 0x015e, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x0103, 0x015f, - /* 0xc0 */ - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0x0162, 0x0163, - /* 0xe0 */ - 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - /* 0xf0 */ - 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, -}; - -static int -mac_romania_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_romania_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_romania_page00[248] = { - 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ - 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0x00, 0x82, /* 0xc0-0xc7 */ - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ - 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ - 0x00, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0x00, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0x00, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xae, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xbf, /* 0x58-0x5f */ - 0x00, 0x00, 0xde, 0xdf, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char mac_romania_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char mac_romania_page20[56] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ - 0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x40-0x47 */ -}; -static const unsigned char mac_romania_page21[8] = { - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_romania_page22[104] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ - 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_romania_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0198) - c = mac_romania_page00[wc-0x00a0]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = mac_romania_page02[wc-0x02c0]; - else if (wc == 0x03c0) - c = 0xb9; - else if (wc >= 0x2010 && wc < 0x2048) - c = mac_romania_page20[wc-0x2010]; - else if (wc >= 0x2120 && wc < 0x2128) - c = mac_romania_page21[wc-0x2120]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_romania_page22[wc-0x2200]; - else if (wc == 0x25ca) - c = 0xd7; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_thai.h b/jni/parted/libiconv/lib/mac_thai.h deleted file mode 100755 index 804cc3c..0000000 --- a/jni/parted/libiconv/lib/mac_thai.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacThai - */ - -static const unsigned short mac_thai_2uni[128] = { - /* 0x80 */ - 0x00ab, 0x00bb, 0x2026, 0xf88c, 0xf88f, 0xf892, 0xf895, 0xf898, - 0xf88b, 0xf88e, 0xf891, 0xf894, 0xf897, 0x201c, 0x201d, 0xf899, - /* 0x90 */ - 0xfffd, 0x2022, 0xf884, 0xf889, 0xf885, 0xf886, 0xf887, 0xf888, - 0xf88a, 0xf88d, 0xf890, 0xf893, 0xf896, 0x2018, 0x2019, 0xfffd, - /* 0xa0 */ - 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, - 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, - /* 0xb0 */ - 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, - 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, - /* 0xc0 */ - 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, - 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, - /* 0xd0 */ - 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, - 0x0e38, 0x0e39, 0x0e3a, 0xfeff, 0x200b, 0x2013, 0x2014, 0x0e3f, - /* 0xe0 */ - 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, - 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x2122, 0x0e4f, - /* 0xf0 */ - 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, - 0x0e58, 0x0e59, 0x00ae, 0x00a9, 0xfffd, 0xfffd, 0xfffd, 0xfffd, -}; - -static int -mac_thai_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_thai_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_thai_page00[32] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0xfb, 0x00, 0x80, 0x00, 0x00, 0xfa, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char mac_thai_page0e[96] = { - 0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */ - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0x08-0x0f */ - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */ - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */ - 0xd8, 0xd9, 0xda, 0x00, 0x00, 0x00, 0x00, 0xdf, /* 0x38-0x3f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0xef, /* 0x48-0x4f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */ - 0xf8, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ -}; -static const unsigned char mac_thai_page20[32] = { - 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0xdd, 0xde, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x9d, 0x9e, 0x00, 0x00, 0x8d, 0x8e, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x82, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_thai_pagef8[32] = { - 0x00, 0x00, 0x00, 0x00, 0x92, 0x94, 0x95, 0x96, /* 0x80-0x87 */ - 0x97, 0x93, 0x98, 0x88, 0x83, 0x99, 0x89, 0x84, /* 0x88-0x8f */ - 0x9a, 0x8a, 0x85, 0x9b, 0x8b, 0x86, 0x9c, 0x8c, /* 0x90-0x97 */ - 0x87, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ -}; - -static int -mac_thai_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = mac_thai_page00[wc-0x00a0]; - else if (wc >= 0x0e00 && wc < 0x0e60) - c = mac_thai_page0e[wc-0x0e00]; - else if (wc >= 0x2008 && wc < 0x2028) - c = mac_thai_page20[wc-0x2008]; - else if (wc == 0x2122) - c = 0xee; - else if (wc >= 0xf880 && wc < 0xf8a0) - c = mac_thai_pagef8[wc-0xf880]; - else if (wc == 0xfeff) - c = 0xdb; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_turkish.h b/jni/parted/libiconv/lib/mac_turkish.h deleted file mode 100755 index b61ed59..0000000 --- a/jni/parted/libiconv/lib/mac_turkish.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacTurkish - */ - -static const unsigned short mac_turkish_2uni[128] = { - /* 0x80 */ - 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, - 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, - /* 0x90 */ - 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, - 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, - /* 0xa0 */ - 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, - 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, - 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, - /* 0xc0 */ - 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, - 0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f, - /* 0xe0 */ - 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, - 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, - /* 0xf0 */ - 0xfffd, 0x00d2, 0x00da, 0x00db, 0x00d9, 0xfffd, 0x02c6, 0x02dc, - 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7, -}; - -static int -mac_turkish_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mac_turkish_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mac_turkish_page00[96] = { - 0xca, 0xc1, 0xa2, 0xa3, 0x00, 0xb4, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x00, 0xa8, 0xf8, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0xab, 0xb5, 0xa6, 0xe1, /* 0xb0-0xb7 */ - 0xfc, 0x00, 0xbc, 0xc8, 0x00, 0x00, 0x00, 0xc0, /* 0xb8-0xbf */ - 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, /* 0xc0-0xc7 */ - 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, /* 0xc8-0xcf */ - 0x00, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x00, /* 0xd0-0xd7 */ - 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x00, 0x00, 0xa7, /* 0xd8-0xdf */ - 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, /* 0xe0-0xe7 */ - 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, /* 0xe8-0xef */ - 0x00, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, /* 0xf0-0xf7 */ - 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x00, 0x00, 0xd8, /* 0xf8-0xff */ -}; -static const unsigned char mac_turkish_page01[128] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xdb, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xdc, 0xdd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xce, 0xcf, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xdf, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char mac_turkish_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char mac_turkish_page20[40] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0xe2, 0x00, 0xd2, 0xd3, 0xe3, 0x00, /* 0x18-0x1f */ - 0xa0, 0xe0, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xe4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ -}; -static const unsigned char mac_turkish_page21[8] = { - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0xbd, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_turkish_page22[104] = { - 0x00, 0x00, 0xb6, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, /* 0x08-0x0f */ - 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_turkish_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = mac_turkish_page00[wc-0x00a0]; - else if (wc >= 0x0118 && wc < 0x0198) - c = mac_turkish_page01[wc-0x0118]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = mac_turkish_page02[wc-0x02c0]; - else if (wc == 0x03c0) - c = 0xb9; - else if (wc >= 0x2010 && wc < 0x2038) - c = mac_turkish_page20[wc-0x2010]; - else if (wc >= 0x2120 && wc < 0x2128) - c = mac_turkish_page21[wc-0x2120]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_turkish_page22[wc-0x2200]; - else if (wc == 0x25ca) - c = 0xd7; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mac_ukraine.h b/jni/parted/libiconv/lib/mac_ukraine.h deleted file mode 100755 index b83444a..0000000 --- a/jni/parted/libiconv/lib/mac_ukraine.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MacUkraine - */ - -static const unsigned short mac_ukraine_2uni[128] = { - /* 0x80 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0x90 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xa0 */ - 0x2020, 0x00b0, 0x0490, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, - 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, - /* 0xb0 */ - 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x0491, 0x0408, - 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, - /* 0xc0 */ - 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, - 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, - /* 0xd0 */ - 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, - 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, - /* 0xe0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xf0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4, -}; - -static int -mac_ukraine_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0x80) - *pwc = (ucs4_t) mac_ukraine_2uni[c-0x80]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char mac_ukraine_page00[32] = { - 0xca, 0x00, 0x00, 0xa3, 0xff, 0x00, 0x00, 0xa4, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xc7, 0xc2, 0x00, 0xa8, 0x00, /* 0xa8-0xaf */ - 0xa1, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char mac_ukraine_page04[152] = { - 0x00, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, /* 0x00-0x07 */ - 0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x00, 0xd8, 0xda, /* 0x08-0x0f */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x10-0x17 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x18-0x1f */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x20-0x27 */ - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x28-0x2f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, /* 0x48-0x4f */ - 0x00, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, /* 0x50-0x57 */ - 0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0x00, 0xd9, 0xdb, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0xa2, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char mac_ukraine_page20[24] = { - 0x00, 0x00, 0x00, 0xd0, 0xd1, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0xd4, 0xd5, 0x00, 0x00, 0xd2, 0xd3, 0xd7, 0x00, /* 0x18-0x1f */ - 0xa0, 0x00, 0xa5, 0x00, 0x00, 0x00, 0xc9, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_ukraine_page21[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char mac_ukraine_page22[104] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0xb0, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0xad, 0x00, 0x00, 0x00, 0xb2, 0xb3, 0x00, 0x00, /* 0x60-0x67 */ -}; - -static int -mac_ukraine_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = mac_ukraine_page00[wc-0x00a0]; - else if (wc == 0x00f7) - c = 0xd6; - else if (wc == 0x0192) - c = 0xc4; - else if (wc >= 0x0400 && wc < 0x0498) - c = mac_ukraine_page04[wc-0x0400]; - else if (wc >= 0x2010 && wc < 0x2028) - c = mac_ukraine_page20[wc-0x2010]; - else if (wc >= 0x2110 && wc < 0x2128) - c = mac_ukraine_page21[wc-0x2110]; - else if (wc >= 0x2200 && wc < 0x2268) - c = mac_ukraine_page22[wc-0x2200]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/mulelao.h b/jni/parted/libiconv/lib/mulelao.h deleted file mode 100755 index 8b92855..0000000 --- a/jni/parted/libiconv/lib/mulelao.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * MULELAO-1 - */ - -static const unsigned short mulelao_2uni[96] = { - /* 0xa0 */ - 0x00a0, 0x0e81, 0x0e82, 0xfffd, 0x0e84, 0xfffd, 0xfffd, 0x0e87, - 0x0e88, 0xfffd, 0x0e8a, 0xfffd, 0xfffd, 0x0e8d, 0xfffd, 0xfffd, - /* 0xb0 */ - 0xfffd, 0xfffd, 0xfffd, 0xfffd, 0x0e94, 0x0e95, 0x0e96, 0x0e97, - 0xfffd, 0x0e99, 0x0e9a, 0x0e9b, 0x0e9c, 0x0e9d, 0x0e9e, 0x0e9f, - /* 0xc0 */ - 0xfffd, 0x0ea1, 0x0ea2, 0x0ea3, 0xfffd, 0x0ea5, 0xfffd, 0x0ea7, - 0xfffd, 0xfffd, 0x0eaa, 0x0eab, 0xfffd, 0x0ead, 0x0eae, 0x0eaf, - /* 0xd0 */ - 0x0eb0, 0x0eb1, 0x0eb2, 0x0eb3, 0x0eb4, 0x0eb5, 0x0eb6, 0x0eb7, - 0x0eb8, 0x0eb9, 0xfffd, 0x0ebb, 0x0ebc, 0x0ebd, 0xfffd, 0xfffd, - /* 0xe0 */ - 0x0ec0, 0x0ec1, 0x0ec2, 0x0ec3, 0x0ec4, 0xfffd, 0x0ec6, 0xfffd, - 0x0ec8, 0x0ec9, 0x0eca, 0x0ecb, 0x0ecc, 0x0ecd, 0xfffd, 0xfffd, - /* 0xf0 */ - 0x0ed0, 0x0ed1, 0x0ed2, 0x0ed3, 0x0ed4, 0x0ed5, 0x0ed6, 0x0ed7, - 0x0ed8, 0x0ed9, 0xfffd, 0xfffd, 0x0edc, 0x0edd, 0xfffd, 0xfffd, -}; - -static int -mulelao_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0xa0) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = mulelao_2uni[c-0xa0]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char mulelao_page0e[96] = { - 0x00, 0xa1, 0xa2, 0x00, 0xa4, 0x00, 0x00, 0xa7, /* 0x80-0x87 */ - 0xa8, 0x00, 0xaa, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x90-0x97 */ - 0x00, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x98-0x9f */ - 0x00, 0xc1, 0xc2, 0xc3, 0x00, 0xc5, 0x00, 0xc7, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xca, 0xcb, 0x00, 0xcd, 0xce, 0xcf, /* 0xa8-0xaf */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xb0-0xb7 */ - 0xd8, 0xd9, 0x00, 0xdb, 0xdc, 0xdd, 0x00, 0x00, /* 0xb8-0xbf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x00, 0xe6, 0x00, /* 0xc0-0xc7 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x00, 0x00, /* 0xc8-0xcf */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xd0-0xd7 */ - 0xf8, 0xf9, 0x00, 0x00, 0xfc, 0xfd, 0x00, 0x00, /* 0xd8-0xdf */ -}; - -static int -mulelao_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x00a0) { - *r = wc; - return 1; - } - else if (wc == 0x00a0) - c = 0xa0; - else if (wc >= 0x0e80 && wc < 0x0ee0) - c = mulelao_page0e[wc-0x0e80]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/nextstep.h b/jni/parted/libiconv/lib/nextstep.h deleted file mode 100755 index 481e621..0000000 --- a/jni/parted/libiconv/lib/nextstep.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * NEXTSTEP - */ - -static const unsigned short nextstep_2uni[128] = { - /* 0x80 */ - 0x00a0, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c7, - 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, - /* 0x90 */ - 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d9, - 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00b5, 0x00d7, 0x00f7, - /* 0xa0 */ - 0x00a9, 0x00a1, 0x00a2, 0x00a3, 0x2044, 0x00a5, 0x0192, 0x00a7, - 0x00a4, 0x2019, 0x201c, 0x00ab, 0x2039, 0x203a, 0xfb01, 0xfb02, - /* 0xb0 */ - 0x00ae, 0x2013, 0x2020, 0x2021, 0x00b7, 0x00a6, 0x00b6, 0x2022, - 0x201a, 0x201e, 0x201d, 0x00bb, 0x2026, 0x2030, 0x00ac, 0x00bf, - /* 0xc0 */ - 0x00b9, 0x02cb, 0x00b4, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, - 0x00a8, 0x00b2, 0x02da, 0x00b8, 0x00b3, 0x02dd, 0x02db, 0x02c7, - /* 0xd0 */ - 0x2014, 0x00b1, 0x00bc, 0x00bd, 0x00be, 0x00e0, 0x00e1, 0x00e2, - 0x00e3, 0x00e4, 0x00e5, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, - /* 0xe0 */ - 0x00ec, 0x00c6, 0x00ed, 0x00aa, 0x00ee, 0x00ef, 0x00f0, 0x00f1, - 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00f2, 0x00f3, 0x00f4, 0x00f5, - /* 0xf0 */ - 0x00f6, 0x00e6, 0x00f9, 0x00fa, 0x00fb, 0x0131, 0x00fc, 0x00fd, - 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x00ff, 0xfffd, 0xfffd, -}; - -static int -nextstep_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = nextstep_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char nextstep_page00[96] = { - 0x80, 0xa1, 0xa2, 0xa3, 0xa8, 0xa5, 0xb5, 0xa7, /* 0xa0-0xa7 */ - 0xc8, 0xa0, 0xe3, 0xab, 0xbe, 0x00, 0xb0, 0xc5, /* 0xa8-0xaf */ - 0x00, 0xd1, 0xc9, 0xcc, 0xc2, 0x9d, 0xb6, 0xb4, /* 0xb0-0xb7 */ - 0xcb, 0xc0, 0xeb, 0xbb, 0xd2, 0xd3, 0xd4, 0xbf, /* 0xb8-0xbf */ - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xe1, 0x87, /* 0xc0-0xc7 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0xc8-0xcf */ - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x9e, /* 0xd0-0xd7 */ - 0xe9, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0xfb, /* 0xd8-0xdf */ - 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xf1, 0xdb, /* 0xe0-0xe7 */ - 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe2, 0xe4, 0xe5, /* 0xe8-0xef */ - 0xe6, 0xe7, 0xec, 0xed, 0xee, 0xef, 0xf0, 0x9f, /* 0xf0-0xf7 */ - 0xf9, 0xf2, 0xf3, 0xf4, 0xf6, 0xf7, 0xfc, 0xfd, /* 0xf8-0xff */ -}; -static const unsigned char nextstep_page01[104] = { - 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0xe8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0xea, 0xfa, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ -}; -static const unsigned char nextstep_page02[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xcf, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xc6, 0xc7, 0xca, 0xce, 0xc4, 0xcd, 0x00, 0x00, /* 0xd8-0xdf */ -}; -static const unsigned char nextstep_page20[56] = { - 0x00, 0x00, 0x00, 0xb1, 0xd0, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0xa9, 0xb8, 0x00, 0xaa, 0xba, 0xb9, 0x00, /* 0x18-0x1f */ - 0xb2, 0xb3, 0xb7, 0x00, 0x00, 0x00, 0xbc, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0xac, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, /* 0x40-0x47 */ -}; -static const unsigned char nextstep_pagefb[8] = { - 0x00, 0xae, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ -}; - -static int -nextstep_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x0100) - c = nextstep_page00[wc-0x00a0]; - else if (wc >= 0x0130 && wc < 0x0198) - c = nextstep_page01[wc-0x0130]; - else if (wc >= 0x02c0 && wc < 0x02e0) - c = nextstep_page02[wc-0x02c0]; - else if (wc >= 0x2010 && wc < 0x2048) - c = nextstep_page20[wc-0x2010]; - else if (wc >= 0xfb00 && wc < 0xfb08) - c = nextstep_pagefb[wc-0xfb00]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/pt154.h b/jni/parted/libiconv/lib/pt154.h deleted file mode 100755 index 9e9cec8..0000000 --- a/jni/parted/libiconv/lib/pt154.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 1999-2005, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * PT154 - */ - -static const unsigned short pt154_2uni[64] = { - /* 0x80 */ - 0x0496, 0x0492, 0x04ee, 0x0493, 0x201e, 0x2026, 0x04b6, 0x04ae, - 0x04b2, 0x04af, 0x04a0, 0x04e2, 0x04a2, 0x049a, 0x04ba, 0x04b8, - /* 0x90 */ - 0x0497, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0x04b3, 0x04b7, 0x04a1, 0x04e3, 0x04a3, 0x049b, 0x04bb, 0x04b9, - /* 0xa0 */ - 0x00a0, 0x040e, 0x045e, 0x0408, 0x04e8, 0x0498, 0x04b0, 0x00a7, - 0x0401, 0x00a9, 0x04d8, 0x00ab, 0x00ac, 0x04ef, 0x00ae, 0x049c, - /* 0xb0 */ - 0x00b0, 0x04b1, 0x0406, 0x0456, 0x0499, 0x04e9, 0x00b6, 0x00b7, - 0x0451, 0x2116, 0x04d9, 0x00bb, 0x0458, 0x04aa, 0x04ab, 0x049d, -}; - -static int -pt154_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) - *pwc = (ucs4_t) c; - else if (c >= 0xc0) - *pwc = (ucs4_t) c + 0x0350; - else - *pwc = (ucs4_t) pt154_2uni[c-0x80]; - return 1; -} - -static const unsigned char pt154_page00[32] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xab, 0xac, 0x00, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char pt154_page04[240] = { - 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x00, /* 0x00-0x07 */ - 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0x00, /* 0x08-0x0f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ - 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x00, /* 0x50-0x57 */ - 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x81, 0x83, 0x00, 0x00, 0x80, 0x90, /* 0x90-0x97 */ - 0xa5, 0xb4, 0x8d, 0x9d, 0xaf, 0xbf, 0x00, 0x00, /* 0x98-0x9f */ - 0x8a, 0x9a, 0x8c, 0x9c, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x87, 0x89, /* 0xa8-0xaf */ - 0xa6, 0xb1, 0x88, 0x98, 0x00, 0x00, 0x86, 0x99, /* 0xb0-0xb7 */ - 0x8f, 0x9f, 0x8e, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0xa4, 0xb5, 0x00, 0x00, 0x00, 0x00, 0x82, 0xad, /* 0xe8-0xef */ -}; -static const unsigned char pt154_page20[24] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x00, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ -}; - -static int -pt154_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = pt154_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x04f0) - c = pt154_page04[wc-0x0400]; - else if (wc >= 0x2010 && wc < 0x2028) - c = pt154_page20[wc-0x2010]; - else if (wc == 0x2116) - c = 0xb9; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/relocatable.c b/jni/parted/libiconv/lib/relocatable.c deleted file mode 100755 index b65a3be..0000000 --- a/jni/parted/libiconv/lib/relocatable.c +++ /dev/null @@ -1,588 +0,0 @@ -/* Provide relocatable packages. - Copyright (C) 2003-2006, 2008-2018 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This program 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, 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see . */ - - -/* Tell glibc's to provide a prototype for getline(). - This must come before because may include - , and once has been included, it's too late. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif - -#define _GL_USE_STDLIB_ALLOC 1 -#include - -/* Specification. */ -#include "relocatable.h" - -#if ENABLE_RELOCATABLE - -#include -#include -#include -#include - -#ifdef NO_XMALLOC -# define xmalloc malloc -#else -# include "xalloc.h" -#endif - -#if defined _WIN32 && !defined __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include -#endif - -#ifdef __EMX__ -# define INCL_DOS -# include - -# define strcmp stricmp -# define strncmp strnicmp -#endif - -#if DEPENDS_ON_LIBCHARSET -# include -#endif -#if DEPENDS_ON_LIBICONV && HAVE_ICONV -# include -#endif -#if DEPENDS_ON_LIBINTL && ENABLE_NLS -# include -#endif - -/* Faked cheap 'bool'. */ -#undef bool -#undef false -#undef true -#define bool int -#define false 0 -#define true 1 - -/* Pathname support. - ISSLASH(C) tests whether C is a directory separator character. - IS_PATH_WITH_DIR(P) tests whether P contains a directory specification. - */ -#if (defined _WIN32 && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ - /* Native Windows, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -# define HAS_DEVICE(P) \ - ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ - && (P)[1] == ':') -# define IS_PATH_WITH_DIR(P) \ - (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) -# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) -#else - /* Unix */ -# define ISSLASH(C) ((C) == '/') -# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL) -# define FILE_SYSTEM_PREFIX_LEN(P) 0 -#endif - -/* Whether to enable the more costly support for relocatable libraries. - It allows libraries to be have been installed with a different original - prefix than the program. But it is quite costly, especially on Cygwin - platforms, see below. Therefore we enable it by default only on native - Windows platforms. */ -#ifndef ENABLE_COSTLY_RELOCATABLE -# if defined _WIN32 && !defined __CYGWIN__ -# define ENABLE_COSTLY_RELOCATABLE 1 -# else -# define ENABLE_COSTLY_RELOCATABLE 0 -# endif -#endif - -/* Original installation prefix. */ -static char *orig_prefix; -static size_t orig_prefix_len; -/* Current installation prefix. */ -static char *curr_prefix; -static size_t curr_prefix_len; -/* These prefixes do not end in a slash. Anything that will be concatenated - to them must start with a slash. */ - -/* Sets the original and the current installation prefix of this module. - 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 "/"). */ -static void -set_this_relocation_prefix (const char *orig_prefix_arg, - const char *curr_prefix_arg) -{ - if (orig_prefix_arg != NULL && curr_prefix_arg != NULL - /* Optimization: if orig_prefix and curr_prefix are equal, the - relocation is a nop. */ - && strcmp (orig_prefix_arg, curr_prefix_arg) != 0) - { - /* Duplicate the argument strings. */ - char *memory; - - orig_prefix_len = strlen (orig_prefix_arg); - curr_prefix_len = strlen (curr_prefix_arg); - memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1); -#ifdef NO_XMALLOC - if (memory != NULL) -#endif - { - memcpy (memory, orig_prefix_arg, orig_prefix_len + 1); - orig_prefix = memory; - memory += orig_prefix_len + 1; - memcpy (memory, curr_prefix_arg, curr_prefix_len + 1); - curr_prefix = memory; - return; - } - } - orig_prefix = NULL; - curr_prefix = NULL; - /* Don't worry about wasted memory here - this function is usually only - called once. */ -} - -/* 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 "/"). */ -void -set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) -{ - set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg); - - /* Now notify all dependent libraries. */ -#if DEPENDS_ON_LIBCHARSET - libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); -#endif -#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109 - libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); -#endif -#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix - libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); -#endif -} - -#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE) - -/* Convenience function: - Computes the current installation prefix, based on the original - installation prefix, the original installation directory of a particular - file, and the current pathname of this file. - Returns it, freshly allocated. Returns NULL upon failure. */ -#ifdef IN_LIBRARY -#define compute_curr_prefix local_compute_curr_prefix -static -#endif -char * -compute_curr_prefix (const char *orig_installprefix, - const char *orig_installdir, - const char *curr_pathname) -{ - char *curr_installdir; - const char *rel_installdir; - - if (curr_pathname == NULL) - return NULL; - - /* Determine the relative installation directory, relative to the prefix. - This is simply the difference between orig_installprefix and - orig_installdir. */ - if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix)) - != 0) - /* Shouldn't happen - nothing should be installed outside $(prefix). */ - return NULL; - rel_installdir = orig_installdir + strlen (orig_installprefix); - - /* Determine the current installation directory. */ - { - const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname); - const char *p = curr_pathname + strlen (curr_pathname); - char *q; - - while (p > p_base) - { - p--; - if (ISSLASH (*p)) - break; - } - - q = (char *) xmalloc (p - curr_pathname + 1); -#ifdef NO_XMALLOC - if (q == NULL) - return NULL; -#endif - memcpy (q, curr_pathname, p - curr_pathname); - q[p - curr_pathname] = '\0'; - curr_installdir = q; - } - - /* Compute the current installation prefix by removing the trailing - rel_installdir from it. */ - { - const char *rp = rel_installdir + strlen (rel_installdir); - const char *cp = curr_installdir + strlen (curr_installdir); - const char *cp_base = - curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir); - - while (rp > rel_installdir && cp > cp_base) - { - bool same = false; - const char *rpi = rp; - const char *cpi = cp; - - while (rpi > rel_installdir && cpi > cp_base) - { - rpi--; - cpi--; - if (ISSLASH (*rpi) || ISSLASH (*cpi)) - { - if (ISSLASH (*rpi) && ISSLASH (*cpi)) - same = true; - break; - } - /* Do case-insensitive comparison if the file system is always or - often case-insensitive. It's better to accept the comparison - if the difference is only in case, rather than to fail. */ -#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS - case insignificant file system */ - if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) - != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) - break; -#else - if (*rpi != *cpi) - break; -#endif - } - if (!same) - break; - /* The last pathname component was the same. opi and cpi now point - to the slash before it. */ - rp = rpi; - cp = cpi; - } - - if (rp > rel_installdir) - { - /* Unexpected: The curr_installdir does not end with rel_installdir. */ - free (curr_installdir); - return NULL; - } - - { - size_t curr_prefix_len = cp - curr_installdir; - char *curr_prefix; - - curr_prefix = (char *) xmalloc (curr_prefix_len + 1); -#ifdef NO_XMALLOC - if (curr_prefix == NULL) - { - free (curr_installdir); - return NULL; - } -#endif - memcpy (curr_prefix, curr_installdir, curr_prefix_len); - curr_prefix[curr_prefix_len] = '\0'; - - free (curr_installdir); - - return curr_prefix; - } - } -} - -#endif /* !IN_LIBRARY || PIC */ - -#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE - -/* Full pathname of shared library, or NULL. */ -static char *shared_library_fullname; - -#if defined _WIN32 && !defined __CYGWIN__ -/* Native Windows only. - On Cygwin, it is better to use the Cygwin provided /proc interface, than - to use native Windows API and cygwin_conv_to_posix_path, because it - supports longer file names - (see ). */ - -/* Determine the full pathname of the shared library when it is loaded. */ - -BOOL WINAPI -DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) -{ - (void) reserved; - - if (event == DLL_PROCESS_ATTACH) - { - /* The DLL is being loaded into an application's address range. */ - static char location[MAX_PATH]; - - if (!GetModuleFileName (module_handle, location, sizeof (location))) - /* Shouldn't happen. */ - return FALSE; - - if (!IS_PATH_WITH_DIR (location)) - /* Shouldn't happen. */ - return FALSE; - - shared_library_fullname = strdup (location); - } - - return TRUE; -} - -#elif defined __EMX__ - -extern int _CRT_init (void); -extern void _CRT_term (void); -extern void __ctordtorInit (void); -extern void __ctordtorTerm (void); - -unsigned long _System -_DLL_InitTerm (unsigned long hModule, unsigned long ulFlag) -{ - static char location[CCHMAXPATH]; - - switch (ulFlag) - { - case 0: - if (_CRT_init () == -1) - return 0; - - __ctordtorInit(); - - /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html - for specification of DosQueryModuleName(). */ - if (DosQueryModuleName (hModule, sizeof (location), location)) - return 0; - - _fnslashify (location); - shared_library_fullname = strdup (location); - break; - - case 1: - __ctordtorTerm(); - - _CRT_term (); - break; - } - - return 1; -} - -#else /* Unix */ - -static void -find_shared_library_fullname () -{ -#if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__ - /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline() - function. - Cygwin >= 1.5 has /proc/self/maps and the getline() function too. - But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on - Cygwin 1.7. */ - FILE *fp; - - /* Open the current process' maps file. It describes one VMA per line. */ - fp = fopen ("/proc/self/maps", "r"); - if (fp) - { - unsigned long address = (unsigned long) &find_shared_library_fullname; - for (;;) - { - unsigned long start, end; - int c; - - if (fscanf (fp, "%lx-%lx", &start, &end) != 2) - break; - if (address >= start && address <= end - 1) - { - /* Found it. Now see if this line contains a filename. */ - while (c = getc (fp), c != EOF && c != '\n' && c != '/') - continue; - if (c == '/') - { - size_t size; - int len; - - ungetc (c, fp); - shared_library_fullname = NULL; size = 0; - len = getline (&shared_library_fullname, &size, fp); - if (len >= 0) - { - /* Success: filled shared_library_fullname. */ - if (len > 0 && shared_library_fullname[len - 1] == '\n') - shared_library_fullname[len - 1] = '\0'; - } - } - break; - } - while (c = getc (fp), c != EOF && c != '\n') - continue; - } - fclose (fp); - } -#endif -} - -#endif /* Native Windows / EMX / Unix */ - -/* Return the full pathname of the current shared library. - Return NULL if unknown. - Guaranteed to work only on Linux, EMX, Cygwin, and native Windows. */ -static char * -get_shared_library_fullname () -{ -#if !(defined _WIN32 && !defined __CYGWIN__) && !defined __EMX__ - static bool tried_find_shared_library_fullname; - if (!tried_find_shared_library_fullname) - { - find_shared_library_fullname (); - tried_find_shared_library_fullname = true; - } -#endif - return shared_library_fullname; -} - -#endif /* PIC */ - -/* Returns the pathname, relocated according to the current installation - directory. - The returned string is either PATHNAME unmodified or a freshly allocated - string that you can free with free() after casting it to 'char *'. */ -const char * -relocate (const char *pathname) -{ -#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE - static int initialized; - - /* Initialization code for a shared library. */ - if (!initialized) - { - /* At this point, orig_prefix and curr_prefix likely have already been - set through the main program's set_program_name_and_installdir - function. This is sufficient in the case that the library has - initially been installed in the same orig_prefix. But we can do - better, to also cover the cases that 1. it has been installed - in a different prefix before being moved to orig_prefix and (later) - to curr_prefix, 2. unlike the program, it has not moved away from - orig_prefix. */ - const char *orig_installprefix = INSTALLPREFIX; - const char *orig_installdir = INSTALLDIR; - char *curr_prefix_better; - - curr_prefix_better = - compute_curr_prefix (orig_installprefix, orig_installdir, - get_shared_library_fullname ()); - - set_relocation_prefix (orig_installprefix, - curr_prefix_better != NULL - ? curr_prefix_better - : curr_prefix); - - if (curr_prefix_better != NULL) - free (curr_prefix_better); - - initialized = 1; - } -#endif - - /* Note: It is not necessary to perform case insensitive comparison here, - even for DOS-like file systems, because the pathname argument was - typically created from the same Makefile variable as orig_prefix came - from. */ - if (orig_prefix != NULL && curr_prefix != NULL - && strncmp (pathname, orig_prefix, orig_prefix_len) == 0) - { - if (pathname[orig_prefix_len] == '\0') - { - /* pathname equals orig_prefix. */ - char *result = (char *) xmalloc (strlen (curr_prefix) + 1); - -#ifdef NO_XMALLOC - if (result != NULL) -#endif - { - strcpy (result, curr_prefix); - return result; - } - } - else if (ISSLASH (pathname[orig_prefix_len])) - { - /* pathname starts with orig_prefix. */ - const char *pathname_tail = &pathname[orig_prefix_len]; - char *result = - (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1); - -#ifdef NO_XMALLOC - if (result != NULL) -#endif - { - memcpy (result, curr_prefix, curr_prefix_len); - strcpy (result + curr_prefix_len, pathname_tail); - return result; - } - } - } - -#ifdef __EMX__ -# ifdef __KLIBC__ -# undef strncmp - - if (strncmp (pathname, "/@unixroot", 10) == 0 - && (pathname[10] == '\0' || ISSLASH (pathname[10]))) - { - /* kLIBC itself processes /@unixroot prefix */ - return pathname; - } - else -# endif - if (ISSLASH (pathname[0])) - { - const char *unixroot = getenv ("UNIXROOT"); - - if (unixroot && HAS_DEVICE (unixroot) && unixroot[2] == '\0') - { - char *result = (char *) xmalloc (2 + strlen (pathname) + 1); -#ifdef NO_XMALLOC - if (result != NULL) -#endif - { - memcpy (result, unixroot, 2); - strcpy (result + 2, pathname); - return result; - } - } - } -#endif - - /* Nothing to relocate. */ - return pathname; -} - -/* Returns the pathname, relocated according to the current installation - directory. - This function sets *ALLOCATEDP to the allocated memory, or to NULL if - no memory allocation occurs. So that, after you're done with the return - value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ -const char * -relocate2 (const char *pathname, char **allocatedp) -{ - const char *result = relocate (pathname); - *allocatedp = (result != pathname ? (char *) result : NULL); - return result; -} - -#endif diff --git a/jni/parted/libiconv/lib/relocatable.h b/jni/parted/libiconv/lib/relocatable.h deleted file mode 100755 index 57520b8..0000000 --- a/jni/parted/libiconv/lib/relocatable.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Provide relocatable packages. - Copyright (C) 2003, 2005, 2008-2017 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This program 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, 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, see . */ - -#ifndef _RELOCATABLE_H -#define _RELOCATABLE_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* This can be enabled through the configure --enable-relocatable option. */ -#if ENABLE_RELOCATABLE - -/* When building a DLL, we must export some functions. Note that because - this is a private .h file, we don't need to use __declspec(dllimport) - in any case. */ -#if HAVE_VISIBILITY && BUILDING_DLL -# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_DLL -# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) -#else -# define RELOCATABLE_DLL_EXPORTED -#endif - -/* 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 RELOCATABLE_DLL_EXPORTED void - set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - -/* Returns the pathname, relocated according to the current installation - directory. - The returned string is either PATHNAME unmodified or a freshly allocated - string that you can free with free() after casting it to 'char *'. */ -extern const char * relocate (const char *pathname); - -/* Returns the pathname, relocated according to the current installation - directory. - This function sets *ALLOCATEDP to the allocated memory, or to NULL if - no memory allocation occurs. So that, after you're done with the return - value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ -extern const char * relocate2 (const char *pathname, char **allocatedp); - -/* Memory management: relocate() potentially allocates memory, because it has - to construct a fresh pathname. If this is a problem because your program - calls relocate() frequently or because you want to fix all potential memory - leaks anyway, you have three options: - 1) Use this idiom: - const char *pathname = ...; - const char *rel_pathname = relocate (pathname); - ... - if (rel_pathname != pathname) - free ((char *) rel_pathname); - 2) Use this idiom: - char *allocated; - const char *rel_pathname = relocate2 (..., &allocated); - ... - free (allocated); - 3) Think about caching the result. */ - -/* Convenience function: - Computes the current installation prefix, based on the original - installation prefix, the original installation directory of a particular - file, and the current pathname of this file. - Returns it, freshly allocated. Returns NULL upon failure. */ -extern char * compute_curr_prefix (const char *orig_installprefix, - const char *orig_installdir, - const char *curr_pathname); - -#else - -/* By default, we use the hardwired pathnames. */ -#define relocate(pathname) (pathname) -#define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _RELOCATABLE_H */ diff --git a/jni/parted/libiconv/lib/riscos1.h b/jni/parted/libiconv/lib/riscos1.h deleted file mode 100755 index 0613d89..0000000 --- a/jni/parted/libiconv/lib/riscos1.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * RISCOS-LATIN1 - */ - -static const unsigned short riscos1_2uni[32] = { - /* 0x80 */ - 0x221a, 0x0174, 0x0175, 0x0083, 0x2573, 0x0176, 0x0177, 0x0087, - 0x21e6, 0x21e8, 0x21e9, 0x21e7, 0x2026, 0x2122, 0x2030, 0x2022, - /* 0x90 */ - 0x2018, 0x2019, 0x2039, 0x203a, 0x201c, 0x201d, 0x201e, 0x2013, - 0x2014, 0x2212, 0x0152, 0x0153, 0x2020, 0x2021, 0xfb01, 0xfb02, -}; - -static int -riscos1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c >= 0x80 && c < 0xa0) - *pwc = (ucs4_t) riscos1_2uni[c-0x80]; - else - *pwc = (ucs4_t) c; - return 1; -} - -static const unsigned char riscos1_page01[40] = { - 0x00, 0x00, 0x9a, 0x9b, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x81, 0x82, 0x85, 0x86, /* 0x70-0x77 */ -}; -static const unsigned char riscos1_page20[48] = { - 0x00, 0x00, 0x00, 0x97, 0x98, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x90, 0x91, 0x00, 0x00, 0x94, 0x95, 0x96, 0x00, /* 0x18-0x1f */ - 0x9c, 0x9d, 0x8f, 0x00, 0x00, 0x00, 0x8c, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x92, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char riscos1_page21[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x8b, /* 0xe0-0xe7 */ - 0x89, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char riscos1_page22[16] = { - 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ -}; - -static int -riscos1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080 || wc == 0x0083 || wc == 0x0087 || (wc >= 0x00a0 && wc < 0x0100)) { - *r = wc; - return 1; - } - else if (wc >= 0x0150 && wc < 0x0178) - c = riscos1_page01[wc-0x0150]; - else if (wc >= 0x2010 && wc < 0x2040) - c = riscos1_page20[wc-0x2010]; - else if (wc == 0x2122) - c = 0x8d; - else if (wc >= 0x21e0 && wc < 0x21f0) - c = riscos1_page21[wc-0x21e0]; - else if (wc >= 0x2210 && wc < 0x2220) - c = riscos1_page22[wc-0x2210]; - else if (wc == 0x2573) - c = 0x84; - else if (wc >= 0xfb01 && wc < 0xfb03) - c = wc-0xfa63; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/rk1048.h b/jni/parted/libiconv/lib/rk1048.h deleted file mode 100755 index 4ffb890..0000000 --- a/jni/parted/libiconv/lib/rk1048.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 1999-2007, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * RK1048 - */ - -static const unsigned short rk1048_2uni[128] = { - /* 0x80 */ - 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, - 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x049a, 0x04ba, 0x040f, - /* 0x90 */ - 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, - 0xfffd, 0x2122, 0x0459, 0x203a, 0x045a, 0x049b, 0x04bb, 0x045f, - /* 0xa0 */ - 0x00a0, 0x04b0, 0x04b1, 0x04d8, 0x00a4, 0x04e8, 0x00a6, 0x00a7, - 0x0401, 0x00a9, 0x0492, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x04ae, - /* 0xb0 */ - 0x00b0, 0x00b1, 0x0406, 0x0456, 0x04e9, 0x00b5, 0x00b6, 0x00b7, - 0x0451, 0x2116, 0x0493, 0x00bb, 0x04d9, 0x04a2, 0x04a3, 0x04af, - /* 0xc0 */ - 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, - 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, - /* 0xd0 */ - 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, - 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, - /* 0xe0 */ - 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, - 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, - /* 0xf0 */ - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, - 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, -}; - -static int -rk1048_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else { - unsigned short wc = rk1048_2uni[c-0x80]; - if (wc != 0xfffd) { - *pwc = (ucs4_t) wc; - return 1; - } - } - return RET_ILSEQ; -} - -static const unsigned char rk1048_page00[32] = { - 0xa0, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xa6, 0xa7, /* 0xa0-0xa7 */ - 0x00, 0xa9, 0x00, 0xab, 0xac, 0xad, 0xae, 0x00, /* 0xa8-0xaf */ - 0xb0, 0xb1, 0x00, 0x00, 0x00, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ -}; -static const unsigned char rk1048_page04[240] = { - 0x00, 0xa8, 0x80, 0x81, 0x00, 0x00, 0xb2, 0x00, /* 0x00-0x07 */ - 0x00, 0x8a, 0x8c, 0x00, 0x00, 0x00, 0x00, 0x8f, /* 0x08-0x0f */ - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x10-0x17 */ - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x18-0x1f */ - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x20-0x27 */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x28-0x2f */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x30-0x37 */ - 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x38-0x3f */ - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x40-0x47 */ - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x48-0x4f */ - 0x00, 0xb8, 0x90, 0x83, 0x00, 0x00, 0xb3, 0x00, /* 0x50-0x57 */ - 0x00, 0x9a, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x9f, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0xaa, 0xba, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x8d, 0x9d, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0x00, 0x00, 0xbd, 0xbe, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xbf, /* 0xa8-0xaf */ - 0xa1, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x8e, 0x9e, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd0-0xd7 */ - 0xa3, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0xa5, 0xb4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ -}; -static const unsigned char rk1048_page20[48] = { - 0x00, 0x00, 0x00, 0x96, 0x97, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x91, 0x92, 0x82, 0x00, 0x93, 0x94, 0x84, 0x00, /* 0x18-0x1f */ - 0x86, 0x87, 0x95, 0x00, 0x00, 0x00, 0x85, 0x00, /* 0x20-0x27 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x8b, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ -}; -static const unsigned char rk1048_page21[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; - -static int -rk1048_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x00c0) - c = rk1048_page00[wc-0x00a0]; - else if (wc >= 0x0400 && wc < 0x04f0) - c = rk1048_page04[wc-0x0400]; - else if (wc >= 0x2010 && wc < 0x2040) - c = rk1048_page20[wc-0x2010]; - else if (wc == 0x20ac) - c = 0x88; - else if (wc >= 0x2110 && wc < 0x2128) - c = rk1048_page21[wc-0x2110]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/shift_jisx0213.h b/jni/parted/libiconv/lib/shift_jisx0213.h deleted file mode 100755 index f67dbfc..0000000 --- a/jni/parted/libiconv/lib/shift_jisx0213.h +++ /dev/null @@ -1,309 +0,0 @@ -/* - * Copyright (C) 1999-2002 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * SHIFT_JISX0213 - */ - -/* The structure of Shift_JISX0213 is as follows: - - 0x00..0x7F: ISO646-JP, an ASCII variant - - 0x{A1..DF}: JISX0201 Katakana. - - 0x{81..9F,E0..EF}{40..7E,80..FC}: JISX0213 plane 1. - - 0x{F0..FC}{40..7E,80..FC}: JISX0213 plane 2, with irregular row mapping. - - Note that some JISX0213 characters are not contained in Unicode 3.2 - and are therefore best represented as sequences of Unicode characters. -*/ - -#include "jisx0213.h" -#include "flushwc.h" - -static int -shift_jisx0213_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - ucs4_t last_wc = conv->istate; - if (last_wc) { - /* Output the buffered character. */ - conv->istate = 0; - *pwc = last_wc; - return 0; /* Don't advance the input pointer. */ - } else { - unsigned char c = *s; - if (c < 0x80) { - /* Plain ISO646-JP character. */ - if (c == 0x5c) - *pwc = (ucs4_t) 0x00a5; - else if (c == 0x7e) - *pwc = (ucs4_t) 0x203e; - else - *pwc = (ucs4_t) c; - return 1; - } else if (c >= 0xa1 && c <= 0xdf) { - *pwc = c + 0xfec0; - return 1; - } else { - if ((c >= 0x81 && c <= 0x9f) || (c >= 0xe0 && c <= 0xfc)) { - /* Two byte character. */ - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x40 && c2 <= 0x7e) || (c2 >= 0x80 && c2 <= 0xfc)) { - unsigned int c1; - ucs4_t wc; - /* Convert to row and column. */ - if (c < 0xe0) - c -= 0x81; - else - c -= 0xc1; - if (c2 < 0x80) - c2 -= 0x40; - else - c2 -= 0x41; - /* Now 0 <= c <= 0x3b, 0 <= c2 <= 0xbb. */ - c1 = 2 * c; - if (c2 >= 0x5e) - c2 -= 0x5e, c1++; - c2 += 0x21; - if (c1 >= 0x5e) { - /* Handling of JISX 0213 plane 2 rows. */ - if (c1 >= 0x67) - c1 += 230; - else if (c1 >= 0x63 || c1 == 0x5f) - c1 += 168; - else - c1 += 162; - } - wc = jisx0213_to_ucs4(0x121+c1,c2); - if (wc) { - if (wc < 0x80) { - /* It's a combining character. */ - ucs4_t wc1 = jisx0213_to_ucs_combining[wc - 1][0]; - ucs4_t wc2 = jisx0213_to_ucs_combining[wc - 1][1]; - /* We cannot output two Unicode characters at once. So, - output the first character and buffer the second one. */ - *pwc = wc1; - conv->istate = wc2; - } else - *pwc = wc; - return 2; - } - } - } else - return RET_TOOFEW(0); - } - return RET_ILSEQ; - } - } -} - -#define shift_jisx0213_flushwc normal_flushwc - -/* Composition tables for each of the relevant combining characters. */ -static const struct { unsigned short base; unsigned short composed; } shift_jisx0213_comp_table_data[] = { -#define shift_jisx0213_comp_table02e5_idx 0 -#define shift_jisx0213_comp_table02e5_len 1 - { 0x8684, 0x8685 }, /* 0x12B65 = 0x12B64 U+02E5 */ -#define shift_jisx0213_comp_table02e9_idx (shift_jisx0213_comp_table02e5_idx+shift_jisx0213_comp_table02e5_len) -#define shift_jisx0213_comp_table02e9_len 1 - { 0x8680, 0x8686 }, /* 0x12B66 = 0x12B60 U+02E9 */ -#define shift_jisx0213_comp_table0300_idx (shift_jisx0213_comp_table02e9_idx+shift_jisx0213_comp_table02e9_len) -#define shift_jisx0213_comp_table0300_len 5 - { 0x857b, 0x8663 }, /* 0x12B44 = 0x1295C U+0300 */ - { 0x8657, 0x8667 }, /* 0x12B48 = 0x12B38 U+0300 */ - { 0x8656, 0x8669 }, /* 0x12B4A = 0x12B37 U+0300 */ - { 0x864f, 0x866b }, /* 0x12B4C = 0x12B30 U+0300 */ - { 0x8662, 0x866d }, /* 0x12B4E = 0x12B43 U+0300 */ -#define shift_jisx0213_comp_table0301_idx (shift_jisx0213_comp_table0300_idx+shift_jisx0213_comp_table0300_len) -#define shift_jisx0213_comp_table0301_len 4 - { 0x8657, 0x8668 }, /* 0x12B49 = 0x12B38 U+0301 */ - { 0x8656, 0x866a }, /* 0x12B4B = 0x12B37 U+0301 */ - { 0x864f, 0x866c }, /* 0x12B4D = 0x12B30 U+0301 */ - { 0x8662, 0x866e }, /* 0x12B4F = 0x12B43 U+0301 */ -#define shift_jisx0213_comp_table309a_idx (shift_jisx0213_comp_table0301_idx+shift_jisx0213_comp_table0301_len) -#define shift_jisx0213_comp_table309a_len 14 - { 0x82a9, 0x82f5 }, /* 0x12477 = 0x1242B U+309A */ - { 0x82ab, 0x82f6 }, /* 0x12478 = 0x1242D U+309A */ - { 0x82ad, 0x82f7 }, /* 0x12479 = 0x1242F U+309A */ - { 0x82af, 0x82f8 }, /* 0x1247A = 0x12431 U+309A */ - { 0x82b1, 0x82f9 }, /* 0x1247B = 0x12433 U+309A */ - { 0x834a, 0x8397 }, /* 0x12577 = 0x1252B U+309A */ - { 0x834c, 0x8398 }, /* 0x12578 = 0x1252D U+309A */ - { 0x834e, 0x8399 }, /* 0x12579 = 0x1252F U+309A */ - { 0x8350, 0x839a }, /* 0x1257A = 0x12531 U+309A */ - { 0x8352, 0x839b }, /* 0x1257B = 0x12533 U+309A */ - { 0x835a, 0x839c }, /* 0x1257C = 0x1253B U+309A */ - { 0x8363, 0x839d }, /* 0x1257D = 0x12544 U+309A */ - { 0x8367, 0x839e }, /* 0x1257E = 0x12548 U+309A */ - { 0x83f3, 0x83f6 }, /* 0x12678 = 0x12675 U+309A */ -}; - -static int -shift_jisx0213_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - int count = 0; - unsigned short lasttwo = conv->ostate; - - if (lasttwo) { - /* Attempt to combine the last character with this one. */ - unsigned int idx; - unsigned int len; - - if (wc == 0x02e5) - idx = shift_jisx0213_comp_table02e5_idx, - len = shift_jisx0213_comp_table02e5_len; - else if (wc == 0x02e9) - idx = shift_jisx0213_comp_table02e9_idx, - len = shift_jisx0213_comp_table02e9_len; - else if (wc == 0x0300) - idx = shift_jisx0213_comp_table0300_idx, - len = shift_jisx0213_comp_table0300_len; - else if (wc == 0x0301) - idx = shift_jisx0213_comp_table0301_idx, - len = shift_jisx0213_comp_table0301_len; - else if (wc == 0x309a) - idx = shift_jisx0213_comp_table309a_idx, - len = shift_jisx0213_comp_table309a_len; - else - goto not_combining; - - do - if (shift_jisx0213_comp_table_data[idx].base == lasttwo) - break; - while (++idx, --len > 0); - - if (len > 0) { - /* Output the combined character. */ - if (n >= 2) { - lasttwo = shift_jisx0213_comp_table_data[idx].composed; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - conv->ostate = 0; - return 2; - } else - return RET_TOOSMALL; - } - - not_combining: - /* Output the buffered character. */ - if (n < 2) - return RET_TOOSMALL; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - r += 2; - count = 2; - } - - if (wc < 0x80 && wc != 0x5c && wc != 0x7e) { - /* Plain ISO646-JP character. */ - if (n > count) { - r[0] = (unsigned char) wc; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else if (wc == 0x00a5) { - if (n > count) { - r[0] = 0x5c; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else if (wc == 0x203e) { - if (n > count) { - r[0] = 0x7e; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else if (wc >= 0xff61 && wc <= 0xff9f) { - /* Half-width katakana. */ - if (n > count) { - r[0] = wc - 0xfec0; - conv->ostate = 0; - return count+1; - } else - return RET_TOOSMALL; - } else { - unsigned int s1, s2; - unsigned short jch = ucs4_to_jisx0213(wc); - if (jch != 0) { - /* Convert it to shifted representation. */ - s1 = jch >> 8; - s2 = jch & 0x7f; - s1 -= 0x21; - s2 -= 0x21; - if (s1 >= 0x5e) { - /* Handling of JISX 0213 plane 2 rows. */ - if (s1 >= 0xcd) /* rows 0x26E..0x27E */ - s1 -= 102; - else if (s1 >= 0x8b || s1 == 0x87) /* rows 0x228, 0x22C..0x22F */ - s1 -= 40; - else /* rows 0x221, 0x223..0x225 */ - s1 -= 34; - /* Now 0x5e <= s1 <= 0x77. */ - } - if (s1 & 1) - s2 += 0x5e; - s1 = s1 >> 1; - if (s1 < 0x1f) - s1 += 0x81; - else - s1 += 0xc1; - if (s2 < 0x3f) - s2 += 0x40; - else - s2 += 0x41; - if (jch & 0x0080) { - /* A possible match in comp_table_data. We have to buffer it. */ - /* We know it's a JISX 0213 plane 1 character. */ - if (jch & 0x8000) abort(); - conv->ostate = (s1 << 8) | s2; - return count+0; - } - /* Output the shifted representation. */ - if (n >= count+2) { - r[0] = s1; - r[1] = s2; - conv->ostate = 0; - return count+2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; - } -} - -static int -shift_jisx0213_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t lasttwo = conv->ostate; - - if (lasttwo) { - if (n < 2) - return RET_TOOSMALL; - r[0] = (lasttwo >> 8) & 0xff; - r[1] = lasttwo & 0xff; - /* conv->ostate = 0; will be done by the caller */ - return 2; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/sjis.h b/jni/parted/libiconv/lib/sjis.h deleted file mode 100755 index 0dba78c..0000000 --- a/jni/parted/libiconv/lib/sjis.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * SHIFT_JIS - */ - -/* - Conversion between SJIS codes (s1,s2) and JISX0208 codes (c1,c2): - Example. (s1,s2) = 0x8140, (c1,c2) = 0x2121. - 0x81 <= s1 <= 0x9F || 0xE0 <= s1 <= 0xEA, - 0x40 <= s2 <= 0x7E || 0x80 <= s2 <= 0xFC, - 0x21 <= c1 <= 0x74, 0x21 <= c2 <= 0x7E. - Invariant: - 94*2*(s1 < 0xE0 ? s1-0x81 : s1-0xC1) + (s2 < 0x80 ? s2-0x40 : s2-0x41) - = 94*(c1-0x21)+(c2-0x21) - Conversion (s1,s2) -> (c1,c2): - t1 := (s1 < 0xE0 ? s1-0x81 : s1-0xC1) - t2 := (s2 < 0x80 ? s2-0x40 : s2-0x41) - c1 := 2*t1 + (t2 < 0x5E ? 0 : 1) + 0x21 - c2 := (t2 < 0x5E ? t2 : t2-0x5E) + 0x21 - Conversion (c1,c2) -> (s1,s2): - t1 := (c1 - 0x21) >> 1 - t2 := ((c1 - 0x21) & 1) * 0x5E + (c2 - 0x21) - s1 := (t1 < 0x1F ? t1+0x81 : t1+0xC1) - s2 := (t2 < 0x3F ? t2+0x40 : t2+0x41) - */ - -static int -sjis_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80 || (c >= 0xa1 && c <= 0xdf)) - return jisx0201_mbtowc(conv,pwc,s,n); - else { - unsigned char s1, s2; - s1 = c; - if ((s1 >= 0x81 && s1 <= 0x9f) || (s1 >= 0xe0 && s1 <= 0xea)) { - if (n < 2) - return RET_TOOFEW(0); - s2 = s[1]; - if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { - unsigned char t1 = (s1 < 0xe0 ? s1-0x81 : s1-0xc1); - unsigned char t2 = (s2 < 0x80 ? s2-0x40 : s2-0x41); - unsigned char buf[2]; - buf[0] = 2*t1 + (t2 < 0x5e ? 0 : 1) + 0x21; - buf[1] = (t2 < 0x5e ? t2 : t2-0x5e) + 0x21; - return jisx0208_mbtowc(conv,pwc,buf,2); - } - } else if (s1 >= 0xf0 && s1 <= 0xf9) { - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - if (n < 2) - return RET_TOOFEW(0); - s2 = s[1]; - if ((s2 >= 0x40 && s2 <= 0x7e) || (s2 >= 0x80 && s2 <= 0xfc)) { - *pwc = 0xe000 + 188*(s1 - 0xf0) + (s2 < 0x80 ? s2-0x40 : s2-0x41); - return 2; - } - } - return RET_ILSEQ; - } -} - -static int -sjis_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char buf[2]; - int ret; - - /* Try JIS X 0201-1976. */ - ret = jisx0201_wctomb(conv,buf,wc,1); - if (ret != RET_ILUNI) { - unsigned char c; - if (ret != 1) abort(); - c = buf[0]; - if (c < 0x80 || (c >= 0xa1 && c <= 0xdf)) { - r[0] = c; - return 1; - } - } - - /* Try JIS X 0208-1990. */ - ret = jisx0208_wctomb(conv,buf,wc,2); - if (ret != RET_ILUNI) { - unsigned char c1, c2; - if (ret != 2) abort(); - if (n < 2) - return RET_TOOSMALL; - c1 = buf[0]; - c2 = buf[1]; - if ((c1 >= 0x21 && c1 <= 0x74) && (c2 >= 0x21 && c2 <= 0x7e)) { - unsigned char t1 = (c1 - 0x21) >> 1; - unsigned char t2 = (((c1 - 0x21) & 1) ? 0x5e : 0) + (c2 - 0x21); - r[0] = (t1 < 0x1f ? t1+0x81 : t1+0xc1); - r[1] = (t2 < 0x3f ? t2+0x40 : t2+0x41); - return 2; - } - } - - /* User-defined range. See - * Ken Lunde's "CJKV Information Processing", table 4-66, p. 206. */ - if (wc >= 0xe000 && wc < 0xe758) { - unsigned char c1, c2; - if (n < 2) - return RET_TOOSMALL; - c1 = (unsigned int) (wc - 0xe000) / 188; - c2 = (unsigned int) (wc - 0xe000) % 188; - r[0] = c1+0xf0; - r[1] = (c2 < 0x3f ? c2+0x40 : c2+0x41); - return 2; - } - - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/stamp-h2 b/jni/parted/libiconv/lib/stamp-h2 deleted file mode 100755 index 8ce1fe9..0000000 --- a/jni/parted/libiconv/lib/stamp-h2 +++ /dev/null @@ -1 +0,0 @@ -timestamp for lib/config.h diff --git a/jni/parted/libiconv/lib/tcvn.h b/jni/parted/libiconv/lib/tcvn.h deleted file mode 100755 index dd981c4..0000000 --- a/jni/parted/libiconv/lib/tcvn.h +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2004, 2016, 2019 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * TCVN-5712 - */ - -#include "flushwc.h" -#include "vietcomb.h" - -static const unsigned char tcvn_comb_table[] = { - 0xb0, 0xb3, 0xb2, 0xb1, 0xb4, -}; - -/* The possible bases in viet_comp_table_data: - 0x0041..0x0045, 0x0047..0x0049, 0x004B..0x0050, 0x0052..0x0057, - 0x0059..0x005A, 0x0061..0x0065, 0x0067..0x0069, 0x006B..0x0070, - 0x0072..0x0077, 0x0079..0x007A, 0x00A5, 0x00C2, 0x00CA, 0x00D3..0x00D6, - 0x00DA, 0x00E2, 0x00EA, 0x00F3..0x00F6, 0x00FA, 0x0102..0x0103, - 0x0168..0x0169, 0x01A0..0x01A1, 0x01AF..0x01B0. */ -static const unsigned int tcvn_comp_bases[] = { - 0x06fdfbbe, 0x06fdfbbe, 0x00000000, 0x00000020, 0x04780404, 0x04780404, - 0x0000000c, 0x00000000, 0x00000000, 0x00000300, 0x00000000, 0x00018003 -}; - -static const unsigned short tcvn_2uni_1[24] = { - /* 0x00 */ - 0x0000, 0x00da, 0x1ee4, 0x0003, 0x1eea, 0x1eec, 0x1eee, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x1ee8, 0x1ef0, 0x1ef2, 0x1ef6, 0x1ef8, 0x00dd, 0x1ef4, -}; -static const unsigned short tcvn_2uni_2[128] = { - /* 0x80 */ - 0x00c0, 0x1ea2, 0x00c3, 0x00c1, 0x1ea0, 0x1eb6, 0x1eac, 0x00c8, - 0x1eba, 0x1ebc, 0x00c9, 0x1eb8, 0x1ec6, 0x00cc, 0x1ec8, 0x0128, - /* 0x90 */ - 0x00cd, 0x1eca, 0x00d2, 0x1ece, 0x00d5, 0x00d3, 0x1ecc, 0x1ed8, - 0x1edc, 0x1ede, 0x1ee0, 0x1eda, 0x1ee2, 0x00d9, 0x1ee6, 0x0168, - /* 0xa0 */ - 0x00a0, 0x0102, 0x00c2, 0x00ca, 0x00d4, 0x01a0, 0x01af, 0x0110, - 0x0103, 0x00e2, 0x00ea, 0x00f4, 0x01a1, 0x01b0, 0x0111, 0x1eb0, - /* 0xb0 */ - 0x0300, 0x0309, 0x0303, 0x0301, 0x0323, 0x00e0, 0x1ea3, 0x00e3, - 0x00e1, 0x1ea1, 0x1eb2, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eaf, 0x1eb4, - /* 0xc0 */ - 0x1eae, 0x1ea6, 0x1ea8, 0x1eaa, 0x1ea4, 0x1ec0, 0x1eb7, 0x1ea7, - 0x1ea9, 0x1eab, 0x1ea5, 0x1ead, 0x00e8, 0x1ec2, 0x1ebb, 0x1ebd, - /* 0xd0 */ - 0x00e9, 0x1eb9, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ebf, 0x1ec7, 0x00ec, - 0x1ec9, 0x1ec4, 0x1ebe, 0x1ed2, 0x0129, 0x00ed, 0x1ecb, 0x00f2, - /* 0xe0 */ - 0x1ed4, 0x1ecf, 0x00f5, 0x00f3, 0x1ecd, 0x1ed3, 0x1ed5, 0x1ed7, - 0x1ed1, 0x1ed9, 0x1edd, 0x1edf, 0x1ee1, 0x1edb, 0x1ee3, 0x00f9, - /* 0xf0 */ - 0x1ed6, 0x1ee7, 0x0169, 0x00fa, 0x1ee5, 0x1eeb, 0x1eed, 0x1eef, - 0x1ee9, 0x1ef1, 0x1ef3, 0x1ef7, 0x1ef9, 0x00fd, 0x1ef5, 0x1ed0, -}; - -/* In the TCVN to Unicode direction, the state contains a buffered - character, or 0 if none. */ - -static int -tcvn_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - unsigned short wc; - unsigned short last_wc; - if (c < 0x18) - wc = tcvn_2uni_1[c]; - else if (c < 0x80) - wc = c; - else - wc = tcvn_2uni_2[c-0x80]; - last_wc = conv->istate; - if (last_wc) { - if (wc >= 0x0300 && wc < 0x0340) { - /* See whether last_wc and wc can be combined. */ - unsigned int k; - unsigned int i1, i2; - switch (wc) { - case 0x0300: k = 0; break; - case 0x0301: k = 1; break; - case 0x0303: k = 2; break; - case 0x0309: k = 3; break; - case 0x0323: k = 4; break; - default: abort(); - } - i1 = viet_comp_table[k].idx; - i2 = i1 + viet_comp_table[k].len-1; - if (last_wc >= viet_comp_table_data[i1].base - && last_wc <= viet_comp_table_data[i2].base) { - unsigned int i; - for (;;) { - i = (i1+i2)>>1; - if (last_wc == viet_comp_table_data[i].base) - break; - if (last_wc < viet_comp_table_data[i].base) { - if (i1 == i) - goto not_combining; - i2 = i; - } else { - if (i1 != i) - i1 = i; - else { - i = i2; - if (last_wc == viet_comp_table_data[i].base) - break; - goto not_combining; - } - } - } - last_wc = viet_comp_table_data[i].composed; - /* Output the combined character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 1; - } - } - not_combining: - /* Output the buffered character. */ - conv->istate = 0; - *pwc = (ucs4_t) last_wc; - return 0; /* Don't advance the input pointer. */ - } - if (wc >= 0x0041 && wc <= 0x01b0 - && ((tcvn_comp_bases[(wc - 0x0040) >> 5] >> (wc & 0x1f)) & 1)) { - /* wc is a possible match in viet_comp_table_data. Buffer it. */ - conv->istate = wc; - return RET_TOOFEW(1); - } else { - /* Output wc immediately. */ - *pwc = (ucs4_t) wc; - return 1; - } -} - -#define tcvn_flushwc normal_flushwc - -static const unsigned char tcvn_page00[96+184] = { - 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */ - 0x80, 0x83, 0xa2, 0x82, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0x87, 0x8a, 0xa3, 0x00, 0x8d, 0x90, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x92, 0x95, 0xa4, 0x94, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x9d, 0x01, 0x00, 0x00, 0x16, 0x00, 0x00, /* 0xd8-0xdf */ - 0xb5, 0xb8, 0xa9, 0xb7, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0xcc, 0xd0, 0xaa, 0x00, 0xd7, 0xdd, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0xdf, 0xe3, 0xab, 0xe2, 0x00, 0x00, /* 0xf0-0xf7 */ - 0x00, 0xef, 0xf3, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xa1, 0xa8, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xa7, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0x8f, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x9f, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xa5, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, /* 0xa8-0xaf */ - 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ -}; -static const unsigned char tcvn_page03[40] = { - 0xb0, 0xb3, 0x00, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ -}; -static const unsigned char tcvn_page1e[96] = { - 0x84, 0xb9, 0x81, 0xb6, 0xc4, 0xca, 0xc1, 0xc7, /* 0xa0-0xa7 */ - 0xc2, 0xc8, 0xc3, 0xc9, 0x86, 0xcb, 0xc0, 0xbe, /* 0xa8-0xaf */ - 0xaf, 0xbb, 0xba, 0xbc, 0xbf, 0xbd, 0x85, 0xc6, /* 0xb0-0xb7 */ - 0x8b, 0xd1, 0x88, 0xce, 0x89, 0xcf, 0xda, 0xd5, /* 0xb8-0xbf */ - 0xc5, 0xd2, 0xcd, 0xd3, 0xd9, 0xd4, 0x8c, 0xd6, /* 0xc0-0xc7 */ - 0x8e, 0xd8, 0x91, 0xde, 0x96, 0xe4, 0x93, 0xe1, /* 0xc8-0xcf */ - 0xff, 0xe8, 0xdb, 0xe5, 0xe0, 0xe6, 0xf0, 0xe7, /* 0xd0-0xd7 */ - 0x97, 0xe9, 0x9b, 0xed, 0x98, 0xea, 0x99, 0xeb, /* 0xd8-0xdf */ - 0x9a, 0xec, 0x9c, 0xee, 0x02, 0xf4, 0x9e, 0xf1, /* 0xe0-0xe7 */ - 0x11, 0xf8, 0x04, 0xf5, 0x05, 0xf6, 0x06, 0xf7, /* 0xe8-0xef */ - 0x12, 0xf9, 0x13, 0xfa, 0x17, 0xfe, 0x14, 0xfb, /* 0xf0-0xf7 */ - 0x15, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; - -static int -tcvn_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080 && (wc >= 0x0020 || (0x00fe0076U & (1U << wc)) == 0)) { - *r = wc; - return 1; - } - else if (wc >= 0x00a0 && wc < 0x01b8) - c = tcvn_page00[wc-0x00a0]; - else if (wc >= 0x0300 && wc < 0x0328) - c = tcvn_page03[wc-0x0300]; - else if (wc >= 0x0340 && wc < 0x0342) /* deprecated Vietnamese tone marks */ - c = tcvn_page03[wc-0x0340]; - else if (wc >= 0x1ea0 && wc < 0x1f00) - c = tcvn_page1e[wc-0x1ea0]; - if (c != 0) { - *r = c; - return 1; - } - /* Try compatibility or canonical decomposition. */ - { - /* Binary search through viet_decomp_table. */ - unsigned int i1 = 0; - unsigned int i2 = sizeof(viet_decomp_table)/sizeof(viet_decomp_table[0])-1; - if (wc >= viet_decomp_table[i1].composed - && wc <= viet_decomp_table[i2].composed) { - unsigned int i; - for (;;) { - /* Here i2 - i1 > 0. */ - i = (i1+i2)>>1; - if (wc == viet_decomp_table[i].composed) - break; - if (wc < viet_decomp_table[i].composed) { - if (i1 == i) - return RET_ILUNI; - /* Here i1 < i < i2. */ - i2 = i; - } else { - /* Here i1 <= i < i2. */ - if (i1 != i) - i1 = i; - else { - /* Here i2 - i1 = 1. */ - i = i2; - if (wc == viet_decomp_table[i].composed) - break; - else - return RET_ILUNI; - } - } - } - /* Found a compatibility or canonical decomposition. */ - wc = viet_decomp_table[i].base; - /* wc is one of 0x0020, 0x0041..0x005a, 0x0061..0x007a, 0x00a5, 0x00a8, - 0x00c2, 0x00c5..0x00c7, 0x00ca, 0x00cf, 0x00d3, 0x00d4, 0x00d6, - 0x00d8, 0x00da, 0x00dc, 0x00e2, 0x00e5..0x00e7, 0x00ea, 0x00ef, - 0x00f3, 0x00f4, 0x00f6, 0x00f8, 0x00fc, 0x0102, 0x0103, 0x01a0, - 0x01a1, 0x01af, 0x01b0. */ - if (wc < 0x0080) - c = wc; - else { - c = tcvn_page00[wc-0x00a0]; - if (c == 0) - return RET_ILUNI; - } - if (n < 2) - return RET_TOOSMALL; - r[0] = c; - r[1] = tcvn_comb_table[viet_decomp_table[i].comb1]; - return 2; - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/tds565.h b/jni/parted/libiconv/lib/tds565.h deleted file mode 100755 index acb59a9..0000000 --- a/jni/parted/libiconv/lib/tds565.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 1999-2002, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * TDS565 - */ - -static const unsigned short tds565_2uni[64] = { - /* 0x40 */ - 0x0040, 0x0041, 0x0042, 0x00c7, 0x0044, 0x0045, 0x00c4, 0x0046, - 0x0047, 0x0048, 0x0049, 0x004a, 0x017d, 0x004b, 0x004c, 0x004d, - /* 0x50 */ - 0x004e, 0x0147, 0x004f, 0x00d6, 0x0050, 0x0052, 0x0053, 0x015e, - 0x0054, 0x0055, 0x00dc, 0x0057, 0x0059, 0x00dd, 0x005a, 0x005f, - /* 0x60 */ - 0x2116, 0x0061, 0x0062, 0x00e7, 0x0064, 0x0065, 0x00e4, 0x0066, - 0x0067, 0x0068, 0x0069, 0x006a, 0x017e, 0x006b, 0x006c, 0x006d, - /* 0x70 */ - 0x006e, 0x0148, 0x006f, 0x00f6, 0x0070, 0x0072, 0x0073, 0x015f, - 0x0074, 0x0075, 0x00fc, 0x0077, 0x0079, 0x00fd, 0x007a, 0x007f, -}; - -static int -tds565_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x40) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c < 0x80) { - *pwc = (ucs4_t) tds565_2uni[c-0x40]; - return 1; - } - return RET_ILSEQ; -} - -static const unsigned char tds565_page00[64] = { - 0x40, 0x41, 0x42, 0x00, 0x44, 0x45, 0x47, 0x48, /* 0x40-0x47 */ - 0x49, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x50, 0x52, /* 0x48-0x4f */ - 0x54, 0x00, 0x55, 0x56, 0x58, 0x59, 0x00, 0x5b, /* 0x50-0x57 */ - 0x00, 0x5c, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x5f, /* 0x58-0x5f */ - 0x00, 0x61, 0x62, 0x00, 0x64, 0x65, 0x67, 0x68, /* 0x60-0x67 */ - 0x69, 0x6a, 0x6b, 0x6d, 0x6e, 0x6f, 0x70, 0x72, /* 0x68-0x6f */ - 0x74, 0x00, 0x75, 0x76, 0x78, 0x79, 0x00, 0x7b, /* 0x70-0x77 */ - 0x00, 0x7c, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7f, /* 0x78-0x7f */ -}; -static const unsigned char tds565_page00_1[64] = { - 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x43, /* 0xc0-0xc7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, /* 0xd0-0xd7 */ - 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5d, 0x00, 0x00, /* 0xd8-0xdf */ - 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x63, /* 0xe0-0xe7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, /* 0xf0-0xf7 */ - 0x00, 0x00, 0x00, 0x00, 0x7a, 0x7d, 0x00, 0x00, /* 0xf8-0xff */ -}; -static const unsigned char tds565_page01[64] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, /* 0x40-0x47 */ - 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x77, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x6c, 0x00, /* 0x78-0x7f */ -}; - -static int -tds565_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0040) { - *r = wc; - return 1; - } - else if (wc >= 0x0040 && wc < 0x0080) - c = tds565_page00[wc-0x0040]; - else if (wc >= 0x00c0 && wc < 0x0100) - c = tds565_page00_1[wc-0x00c0]; - else if (wc >= 0x0140 && wc < 0x0180) - c = tds565_page01[wc-0x0140]; - else if (wc == 0x2116) - c = 0x60; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/tis620.h b/jni/parted/libiconv/lib/tis620.h deleted file mode 100755 index b22fa1c..0000000 --- a/jni/parted/libiconv/lib/tis620.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * TIS620.2533-1 - */ - -static int -tis620_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x80) { - *pwc = (ucs4_t) c; - return 1; - } - else if (c >= 0xa1 && c <= 0xfb && !(c >= 0xdb && c <= 0xde)) { - *pwc = (ucs4_t) (c + 0x0d60); - return 1; - } - return RET_ILSEQ; -} - -static int -tis620_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x0080) { - *r = wc; - return 1; - } - else if (wc >= 0x0e01 && wc <= 0x0e5b && !(wc >= 0x0e3b && wc <= 0x0e3e)) { - *r = wc-0x0d60; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/translit.def b/jni/parted/libiconv/lib/translit.def deleted file mode 100755 index 15a9412..0000000 --- a/jni/parted/libiconv/lib/translit.def +++ /dev/null @@ -1,3917 +0,0 @@ -# Copyright (C) 1999-2003 Free Software Foundation, Inc. -# This file is part of the GNU LIBICONV Library. -# -# The GNU LIBICONV 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. -# -# The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. -# If not, see . -# -# -# Definition of transliteration from Unicode to poorer character sets. -# -# This covers all of Markus Kuhn's TARGET1. -# -# The second column gives the transliteration. It is enclosed between tabs! -# -00A0 # NO-BREAK SPACE -00A1 ! # INVERTED EXCLAMATION MARK -00A2 c # CENT SIGN -00A3 lb # POUND SIGN -00A4 # CURRENCY SIGN -00A5 yen # YEN SIGN -00A6 | # BROKEN BAR -00A7 SS # SECTION SIGN -00A8 " # DIAERESIS -00A9 (c) # COPYRIGHT SIGN -00AA a # FEMININE ORDINAL INDICATOR -00AB << # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -00AC not # NOT SIGN -00AD - # SOFT HYPHEN -00AE (R) # REGISTERED SIGN -00AF # MACRON -00B0 ^0 # DEGREE SIGN -00B1 +/- # PLUS-MINUS SIGN -00B2 ^2 # SUPERSCRIPT TWO -00B3 ^3 # SUPERSCRIPT THREE -00B4 ' # ACUTE ACCENT -00B5 u # MICRO SIGN -00B6 P # PILCROW SIGN -00B7 . # MIDDLE DOT -00B8 , # CEDILLA -00B9 ^1 # SUPERSCRIPT ONE -00BA o # MASCULINE ORDINAL INDICATOR -00BB >> # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -00BC 1â„4 # VULGAR FRACTION ONE QUARTER -00BD 1â„2 # VULGAR FRACTION ONE HALF -00BE 3â„4 # VULGAR FRACTION THREE QUARTERS -00BF ? # INVERTED QUESTION MARK -00C0 `A # LATIN CAPITAL LETTER A WITH GRAVE -00C1 ´A # LATIN CAPITAL LETTER A WITH ACUTE -00C2 ^A # LATIN CAPITAL LETTER A WITH CIRCUMFLEX -00C3 ~A # LATIN CAPITAL LETTER A WITH TILDE -00C4 "A # LATIN CAPITAL LETTER A WITH DIAERESIS -00C5 A # LATIN CAPITAL LETTER A WITH RING ABOVE -00C6 AE # LATIN CAPITAL LETTER AE -00C7 C # LATIN CAPITAL LETTER C WITH CEDILLA -00C8 `E # LATIN CAPITAL LETTER E WITH GRAVE -00C9 ´E # LATIN CAPITAL LETTER E WITH ACUTE -00CA ^E # LATIN CAPITAL LETTER E WITH CIRCUMFLEX -00CB "E # LATIN CAPITAL LETTER E WITH DIAERESIS -00CC `I # LATIN CAPITAL LETTER I WITH GRAVE -00CD ´I # LATIN CAPITAL LETTER I WITH ACUTE -00CE ^I # LATIN CAPITAL LETTER I WITH CIRCUMFLEX -00CF "I # LATIN CAPITAL LETTER I WITH DIAERESIS -00D0 D # LATIN CAPITAL LETTER ETH -00D1 ~N # LATIN CAPITAL LETTER N WITH TILDE -00D2 `O # LATIN CAPITAL LETTER O WITH GRAVE -00D3 ´O # LATIN CAPITAL LETTER O WITH ACUTE -00D4 ^O # LATIN CAPITAL LETTER O WITH CIRCUMFLEX -00D5 ~O # LATIN CAPITAL LETTER O WITH TILDE -00D6 "O # LATIN CAPITAL LETTER O WITH DIAERESIS -00D7 x # MULTIPLICATION SIGN -00D8 O # LATIN CAPITAL LETTER O WITH STROKE -00D9 `U # LATIN CAPITAL LETTER U WITH GRAVE -00DA ´U # LATIN CAPITAL LETTER U WITH ACUTE -00DB ^U # LATIN CAPITAL LETTER U WITH CIRCUMFLEX -00DC "U # LATIN CAPITAL LETTER U WITH DIAERESIS -00DD ´Y # LATIN CAPITAL LETTER Y WITH ACUTE -00DE Th # LATIN CAPITAL LETTER THORN -00DF ss # LATIN SMALL LETTER SHARP S -00E0 `a # LATIN SMALL LETTER A WITH GRAVE -00E1 ´a # LATIN SMALL LETTER A WITH ACUTE -00E2 ^a # LATIN SMALL LETTER A WITH CIRCUMFLEX -00E3 ~a # LATIN SMALL LETTER A WITH TILDE -00E4 "a # LATIN SMALL LETTER A WITH DIAERESIS -00E5 a # LATIN SMALL LETTER A WITH RING ABOVE -00E6 ae # LATIN SMALL LETTER AE -00E7 c # LATIN SMALL LETTER C WITH CEDILLA -00E8 `e # LATIN SMALL LETTER E WITH GRAVE -00E9 ´e # LATIN SMALL LETTER E WITH ACUTE -00EA ^e # LATIN SMALL LETTER E WITH CIRCUMFLEX -00EB "e # LATIN SMALL LETTER E WITH DIAERESIS -00EC `i # LATIN SMALL LETTER I WITH GRAVE -00ED ´i # LATIN SMALL LETTER I WITH ACUTE -00EE ^i # LATIN SMALL LETTER I WITH CIRCUMFLEX -00EF "i # LATIN SMALL LETTER I WITH DIAERESIS -00F0 d # LATIN SMALL LETTER ETH -00F1 ~n # LATIN SMALL LETTER N WITH TILDE -00F2 `o # LATIN SMALL LETTER O WITH GRAVE -00F3 ´o # LATIN SMALL LETTER O WITH ACUTE -00F4 ^o # LATIN SMALL LETTER O WITH CIRCUMFLEX -00F5 ~o # LATIN SMALL LETTER O WITH TILDE -00F6 "o # LATIN SMALL LETTER O WITH DIAERESIS -00F7 : # DIVISION SIGN -00F8 o # LATIN SMALL LETTER O WITH STROKE -00F9 `u # LATIN SMALL LETTER U WITH GRAVE -00FA ´u # LATIN SMALL LETTER U WITH ACUTE -00FB ^u # LATIN SMALL LETTER U WITH CIRCUMFLEX -00FC "u # LATIN SMALL LETTER U WITH DIAERESIS -00FD ´y # LATIN SMALL LETTER Y WITH ACUTE -00FE th # LATIN SMALL LETTER THORN -00FF "y # LATIN SMALL LETTER Y WITH DIAERESIS -0100 A # LATIN CAPITAL LETTER A WITH MACRON -0101 a # LATIN SMALL LETTER A WITH MACRON -0102 A # LATIN CAPITAL LETTER A WITH BREVE -0103 a # LATIN SMALL LETTER A WITH BREVE -0104 A # LATIN CAPITAL LETTER A WITH OGONEK -0105 a # LATIN SMALL LETTER A WITH OGONEK -0106 ´C # LATIN CAPITAL LETTER C WITH ACUTE -0107 ´c # LATIN SMALL LETTER C WITH ACUTE -0108 ^C # LATIN CAPITAL LETTER C WITH CIRCUMFLEX -0109 ^c # LATIN SMALL LETTER C WITH CIRCUMFLEX -010A C # LATIN CAPITAL LETTER C WITH DOT ABOVE -010B c # LATIN SMALL LETTER C WITH DOT ABOVE -010C C # LATIN CAPITAL LETTER C WITH CARON -010D c # LATIN SMALL LETTER C WITH CARON -010E D # LATIN CAPITAL LETTER D WITH CARON -010F d # LATIN SMALL LETTER D WITH CARON -0110 D # LATIN CAPITAL LETTER D WITH STROKE -0111 d # LATIN SMALL LETTER D WITH STROKE -0112 E # LATIN CAPITAL LETTER E WITH MACRON -0113 e # LATIN SMALL LETTER E WITH MACRON -0114 E # LATIN CAPITAL LETTER E WITH BREVE -0115 e # LATIN SMALL LETTER E WITH BREVE -0116 E # LATIN CAPITAL LETTER E WITH DOT ABOVE -0117 e # LATIN SMALL LETTER E WITH DOT ABOVE -0118 E # LATIN CAPITAL LETTER E WITH OGONEK -0119 e # LATIN SMALL LETTER E WITH OGONEK -011A E # LATIN CAPITAL LETTER E WITH CARON -011B e # LATIN SMALL LETTER E WITH CARON -011C ^G # LATIN CAPITAL LETTER G WITH CIRCUMFLEX -011D ^g # LATIN SMALL LETTER G WITH CIRCUMFLEX -011E G # LATIN CAPITAL LETTER G WITH BREVE -011F g # LATIN SMALL LETTER G WITH BREVE -0120 G # LATIN CAPITAL LETTER G WITH DOT ABOVE -0121 g # LATIN SMALL LETTER G WITH DOT ABOVE -0122 G # LATIN CAPITAL LETTER G WITH CEDILLA -0123 g # LATIN SMALL LETTER G WITH CEDILLA -0124 ^H # LATIN CAPITAL LETTER H WITH CIRCUMFLEX -0125 ^h # LATIN SMALL LETTER H WITH CIRCUMFLEX -0126 H # LATIN CAPITAL LETTER H WITH STROKE -0127 h # LATIN SMALL LETTER H WITH STROKE -0128 ~I # LATIN CAPITAL LETTER I WITH TILDE -0129 ~i # LATIN SMALL LETTER I WITH TILDE -012A I # LATIN CAPITAL LETTER I WITH MACRON -012B i # LATIN SMALL LETTER I WITH MACRON -012C I # LATIN CAPITAL LETTER I WITH BREVE -012D i # LATIN SMALL LETTER I WITH BREVE -012E I # LATIN CAPITAL LETTER I WITH OGONEK -012F i # LATIN SMALL LETTER I WITH OGONEK -0130 I # LATIN CAPITAL LETTER I WITH DOT ABOVE -0131 i # LATIN SMALL LETTER DOTLESS I -0132 IJ # LATIN CAPITAL LIGATURE IJ -0133 ij # LATIN SMALL LIGATURE IJ -0134 ^J # LATIN CAPITAL LETTER J WITH CIRCUMFLEX -0135 ^j # LATIN SMALL LETTER J WITH CIRCUMFLEX -0136 K # LATIN CAPITAL LETTER K WITH CEDILLA -0137 k # LATIN SMALL LETTER K WITH CEDILLA -0138 # LATIN SMALL LETTER KRA -0139 L # LATIN CAPITAL LETTER L WITH ACUTE -013A l # LATIN SMALL LETTER L WITH ACUTE -013B L # LATIN CAPITAL LETTER L WITH CEDILLA -013C l # LATIN SMALL LETTER L WITH CEDILLA -013D L # LATIN CAPITAL LETTER L WITH CARON -013E l # LATIN SMALL LETTER L WITH CARON -013F L # LATIN CAPITAL LETTER L WITH MIDDLE DOT -0140 l # LATIN SMALL LETTER L WITH MIDDLE DOT -0141 L # LATIN CAPITAL LETTER L WITH STROKE -0142 l # LATIN SMALL LETTER L WITH STROKE -0143 ´N # LATIN CAPITAL LETTER N WITH ACUTE -0144 ´n # LATIN SMALL LETTER N WITH ACUTE -0145 N # LATIN CAPITAL LETTER N WITH CEDILLA -0146 n # LATIN SMALL LETTER N WITH CEDILLA -0147 N # LATIN CAPITAL LETTER N WITH CARON -0148 n # LATIN SMALL LETTER N WITH CARON -0149 'n # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -014A # LATIN CAPITAL LETTER ENG -014B # LATIN SMALL LETTER ENG -014C O # LATIN CAPITAL LETTER O WITH MACRON -014D o # LATIN SMALL LETTER O WITH MACRON -014E O # LATIN CAPITAL LETTER O WITH BREVE -014F o # LATIN SMALL LETTER O WITH BREVE -0150 "O # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -0151 "o # LATIN SMALL LETTER O WITH DOUBLE ACUTE -0152 OE # LATIN CAPITAL LIGATURE OE -0153 oe # LATIN SMALL LIGATURE OE -0154 ´R # LATIN CAPITAL LETTER R WITH ACUTE -0155 ´r # LATIN SMALL LETTER R WITH ACUTE -0156 R # LATIN CAPITAL LETTER R WITH CEDILLA -0157 r # LATIN SMALL LETTER R WITH CEDILLA -0158 R # LATIN CAPITAL LETTER R WITH CARON -0159 r # LATIN SMALL LETTER R WITH CARON -015A ´S # LATIN CAPITAL LETTER S WITH ACUTE -015B ´s # LATIN SMALL LETTER S WITH ACUTE -015C ^S # LATIN CAPITAL LETTER S WITH CIRCUMFLEX -015D ^s # LATIN SMALL LETTER S WITH CIRCUMFLEX -015E S # LATIN CAPITAL LETTER S WITH CEDILLA -015F s # LATIN SMALL LETTER S WITH CEDILLA -0160 S # LATIN CAPITAL LETTER S WITH CARON -0161 s # LATIN SMALL LETTER S WITH CARON -0162 T # LATIN CAPITAL LETTER T WITH CEDILLA -0163 t # LATIN SMALL LETTER T WITH CEDILLA -0164 T # LATIN CAPITAL LETTER T WITH CARON -0165 t # LATIN SMALL LETTER T WITH CARON -0166 T # LATIN CAPITAL LETTER T WITH STROKE -0167 t # LATIN SMALL LETTER T WITH STROKE -0168 ~U # LATIN CAPITAL LETTER U WITH TILDE -0169 ~u # LATIN SMALL LETTER U WITH TILDE -016A U # LATIN CAPITAL LETTER U WITH MACRON -016B u # LATIN SMALL LETTER U WITH MACRON -016C U # LATIN CAPITAL LETTER U WITH BREVE -016D u # LATIN SMALL LETTER U WITH BREVE -016E U # LATIN CAPITAL LETTER U WITH RING ABOVE -016F u # LATIN SMALL LETTER U WITH RING ABOVE -0170 "U # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -0171 "u # LATIN SMALL LETTER U WITH DOUBLE ACUTE -0172 U # LATIN CAPITAL LETTER U WITH OGONEK -0173 u # LATIN SMALL LETTER U WITH OGONEK -0174 ^W # LATIN CAPITAL LETTER W WITH CIRCUMFLEX -0175 ^w # LATIN SMALL LETTER W WITH CIRCUMFLEX -0176 ^Y # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -0177 ^y # LATIN SMALL LETTER Y WITH CIRCUMFLEX -0178 "Y # LATIN CAPITAL LETTER Y WITH DIAERESIS -0179 ´Z # LATIN CAPITAL LETTER Z WITH ACUTE -017A ´z # LATIN SMALL LETTER Z WITH ACUTE -017B Z # LATIN CAPITAL LETTER Z WITH DOT ABOVE -017C z # LATIN SMALL LETTER Z WITH DOT ABOVE -017D Z # LATIN CAPITAL LETTER Z WITH CARON -017E z # LATIN SMALL LETTER Z WITH CARON -017F s # LATIN SMALL LETTER LONG S -018F # LATIN CAPITAL LETTER SCHWA -0192 f # LATIN SMALL LETTER F WITH HOOK -01C4 DŽ # LATIN CAPITAL LETTER DZ WITH CARON -01C5 Dž # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON -01C6 dž # LATIN SMALL LETTER DZ WITH CARON -01C7 LJ # LATIN CAPITAL LETTER LJ -01C8 Lj # LATIN CAPITAL LETTER L WITH SMALL LETTER J -01C9 lj # LATIN SMALL LETTER LJ -01CA NJ # LATIN CAPITAL LETTER NJ -01CB Nj # LATIN CAPITAL LETTER N WITH SMALL LETTER J -01CC nj # LATIN SMALL LETTER NJ -01F1 DZ # LATIN CAPITAL LETTER DZ -01F2 Dz # LATIN CAPITAL LETTER D WITH SMALL LETTER Z -01F3 dz # LATIN SMALL LETTER DZ -0218 S # LATIN CAPITAL LETTER S WITH COMMA BELOW -0219 s # LATIN SMALL LETTER S WITH COMMA BELOW -021A T # LATIN CAPITAL LETTER T WITH COMMA BELOW -021B t # LATIN SMALL LETTER T WITH COMMA BELOW -0259 # LATIN SMALL LETTER SCHWA -02B9 ′ # MODIFIER LETTER PRIME -02BA ″ # MODIFIER LETTER DOUBLE PRIME -02BB ‘ # MODIFIER LETTER TURNED COMMA -02BC ’ # MODIFIER LETTER APOSTROPHE -02BD ‛ # MODIFIER LETTER REVERSED COMMA -02C6 ^ # MODIFIER LETTER CIRCUMFLEX ACCENT -02C7 # CARON -02C8 ' # MODIFIER LETTER VERTICAL LINE -02C9 ¯ # MODIFIER LETTER MACRON -02CA ´ # MODIFIER LETTER ACUTE ACCENT -02CB ` # MODIFIER LETTER GRAVE ACCENT -02CD _ # MODIFIER LETTER LOW MACRON -02D8 # BREVE -02D9 # DOT ABOVE -02DA # RING ABOVE -02DB # OGONEK -02DC ~ # SMALL TILDE -02DD " # DOUBLE ACUTE ACCENT -0374 # GREEK NUMERAL SIGN -0375 # GREEK LOWER NUMERAL SIGN -037A # GREEK YPOGEGRAMMENI -037E # GREEK QUESTION MARK -0384 # GREEK TONOS -0385 # GREEK DIALYTIKA TONOS -0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS -0387 # GREEK ANO TELEIA -0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS -0389 # GREEK CAPITAL LETTER ETA WITH TONOS -038A # GREEK CAPITAL LETTER IOTA WITH TONOS -038C # GREEK CAPITAL LETTER OMICRON WITH TONOS -038E # GREEK CAPITAL LETTER UPSILON WITH TONOS -038F # GREEK CAPITAL LETTER OMEGA WITH TONOS -0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -0391 # GREEK CAPITAL LETTER ALPHA -0392 # GREEK CAPITAL LETTER BETA -0393 # GREEK CAPITAL LETTER GAMMA -0394 # GREEK CAPITAL LETTER DELTA -0395 # GREEK CAPITAL LETTER EPSILON -0396 # GREEK CAPITAL LETTER ZETA -0397 # GREEK CAPITAL LETTER ETA -0398 # GREEK CAPITAL LETTER THETA -0399 # GREEK CAPITAL LETTER IOTA -039A # GREEK CAPITAL LETTER KAPPA -039B # GREEK CAPITAL LETTER LAMDA -039C # GREEK CAPITAL LETTER MU -039D # GREEK CAPITAL LETTER NU -039E # GREEK CAPITAL LETTER XI -039F # GREEK CAPITAL LETTER OMICRON -03A0 # GREEK CAPITAL LETTER PI -03A1 # GREEK CAPITAL LETTER RHO -03A3 # GREEK CAPITAL LETTER SIGMA -03A4 # GREEK CAPITAL LETTER TAU -03A5 # GREEK CAPITAL LETTER UPSILON -03A6 # GREEK CAPITAL LETTER PHI -03A7 # GREEK CAPITAL LETTER CHI -03A8 # GREEK CAPITAL LETTER PSI -03A9 # GREEK CAPITAL LETTER OMEGA -03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -03AC # GREEK SMALL LETTER ALPHA WITH TONOS -03AD # GREEK SMALL LETTER EPSILON WITH TONOS -03AE # GREEK SMALL LETTER ETA WITH TONOS -03AF # GREEK SMALL LETTER IOTA WITH TONOS -03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -03B1 # GREEK SMALL LETTER ALPHA -03B2 # GREEK SMALL LETTER BETA -03B3 # GREEK SMALL LETTER GAMMA -03B4 # GREEK SMALL LETTER DELTA -03B5 # GREEK SMALL LETTER EPSILON -03B6 # GREEK SMALL LETTER ZETA -03B7 # GREEK SMALL LETTER ETA -03B8 # GREEK SMALL LETTER THETA -03B9 # GREEK SMALL LETTER IOTA -03BA # GREEK SMALL LETTER KAPPA -03BB # GREEK SMALL LETTER LAMDA -03BC # GREEK SMALL LETTER MU -03BD # GREEK SMALL LETTER NU -03BE # GREEK SMALL LETTER XI -03BF # GREEK SMALL LETTER OMICRON -03C0 # GREEK SMALL LETTER PI -03C1 # GREEK SMALL LETTER RHO -03C2 # GREEK SMALL LETTER FINAL SIGMA -03C3 # GREEK SMALL LETTER SIGMA -03C4 # GREEK SMALL LETTER TAU -03C5 # GREEK SMALL LETTER UPSILON -03C6 # GREEK SMALL LETTER PHI -03C7 # GREEK SMALL LETTER CHI -03C8 # GREEK SMALL LETTER PSI -03C9 # GREEK SMALL LETTER OMEGA -03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA -03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA -03CC # GREEK SMALL LETTER OMICRON WITH TONOS -03CD # GREEK SMALL LETTER UPSILON WITH TONOS -03CE # GREEK SMALL LETTER OMEGA WITH TONOS -03D0 β # GREEK BETA SYMBOL -03D1 θ # GREEK THETA SYMBOL -03D2 Î¥ # GREEK UPSILON WITH HOOK SYMBOL -03D5 φ # GREEK PHI SYMBOL -03D6 Ï€ # GREEK PI SYMBOL -03F0 κ # GREEK KAPPA SYMBOL -03F1 Ï # GREEK RHO SYMBOL -03F2 Ï‚ # GREEK LUNATE SIGMA SYMBOL -03F4 Θ # GREEK CAPITAL THETA SYMBOL -03F5 ε # GREEK LUNATE EPSILON SYMBOL -03F9 Σ # GREEK CAPITAL LUNATE SIGMA SYMBOL -0401 # CYRILLIC CAPITAL LETTER IO -0402 # CYRILLIC CAPITAL LETTER DJE -0403 # CYRILLIC CAPITAL LETTER GJE -0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE -0405 # CYRILLIC CAPITAL LETTER DZE -0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -0407 # CYRILLIC CAPITAL LETTER YI -0408 # CYRILLIC CAPITAL LETTER JE -0409 # CYRILLIC CAPITAL LETTER LJE -040A # CYRILLIC CAPITAL LETTER NJE -040B # CYRILLIC CAPITAL LETTER TSHE -040C # CYRILLIC CAPITAL LETTER KJE -040E # CYRILLIC CAPITAL LETTER SHORT U -040F # CYRILLIC CAPITAL LETTER DZHE -0410 # CYRILLIC CAPITAL LETTER A -0411 # CYRILLIC CAPITAL LETTER BE -0412 # CYRILLIC CAPITAL LETTER VE -0413 # CYRILLIC CAPITAL LETTER GHE -0414 # CYRILLIC CAPITAL LETTER DE -0415 # CYRILLIC CAPITAL LETTER IE -0416 # CYRILLIC CAPITAL LETTER ZHE -0417 # CYRILLIC CAPITAL LETTER ZE -0418 # CYRILLIC CAPITAL LETTER I -0419 # CYRILLIC CAPITAL LETTER SHORT I -041A # CYRILLIC CAPITAL LETTER KA -041B # CYRILLIC CAPITAL LETTER EL -041C # CYRILLIC CAPITAL LETTER EM -041D # CYRILLIC CAPITAL LETTER EN -041E # CYRILLIC CAPITAL LETTER O -041F # CYRILLIC CAPITAL LETTER PE -0420 # CYRILLIC CAPITAL LETTER ER -0421 # CYRILLIC CAPITAL LETTER ES -0422 # CYRILLIC CAPITAL LETTER TE -0423 # CYRILLIC CAPITAL LETTER U -0424 # CYRILLIC CAPITAL LETTER EF -0425 # CYRILLIC CAPITAL LETTER HA -0426 # CYRILLIC CAPITAL LETTER TSE -0427 # CYRILLIC CAPITAL LETTER CHE -0428 # CYRILLIC CAPITAL LETTER SHA -0429 # CYRILLIC CAPITAL LETTER SHCHA -042A # CYRILLIC CAPITAL LETTER HARD SIGN -042B # CYRILLIC CAPITAL LETTER YERU -042C # CYRILLIC CAPITAL LETTER SOFT SIGN -042D # CYRILLIC CAPITAL LETTER E -042E # CYRILLIC CAPITAL LETTER YU -042F # CYRILLIC CAPITAL LETTER YA -0430 # CYRILLIC SMALL LETTER A -0431 # CYRILLIC SMALL LETTER BE -0432 # CYRILLIC SMALL LETTER VE -0433 # CYRILLIC SMALL LETTER GHE -0434 # CYRILLIC SMALL LETTER DE -0435 # CYRILLIC SMALL LETTER IE -0436 # CYRILLIC SMALL LETTER ZHE -0437 # CYRILLIC SMALL LETTER ZE -0438 # CYRILLIC SMALL LETTER I -0439 # CYRILLIC SMALL LETTER SHORT I -043A # CYRILLIC SMALL LETTER KA -043B # CYRILLIC SMALL LETTER EL -043C # CYRILLIC SMALL LETTER EM -043D # CYRILLIC SMALL LETTER EN -043E # CYRILLIC SMALL LETTER O -043F # CYRILLIC SMALL LETTER PE -0440 # CYRILLIC SMALL LETTER ER -0441 # CYRILLIC SMALL LETTER ES -0442 # CYRILLIC SMALL LETTER TE -0443 # CYRILLIC SMALL LETTER U -0444 # CYRILLIC SMALL LETTER EF -0445 # CYRILLIC SMALL LETTER HA -0446 # CYRILLIC SMALL LETTER TSE -0447 # CYRILLIC SMALL LETTER CHE -0448 # CYRILLIC SMALL LETTER SHA -0449 # CYRILLIC SMALL LETTER SHCHA -044A # CYRILLIC SMALL LETTER HARD SIGN -044B # CYRILLIC SMALL LETTER YERU -044C # CYRILLIC SMALL LETTER SOFT SIGN -044D # CYRILLIC SMALL LETTER E -044E # CYRILLIC SMALL LETTER YU -044F # CYRILLIC SMALL LETTER YA -0451 # CYRILLIC SMALL LETTER IO -0452 # CYRILLIC SMALL LETTER DJE -0453 # CYRILLIC SMALL LETTER GJE -0454 # CYRILLIC SMALL LETTER UKRAINIAN IE -0455 # CYRILLIC SMALL LETTER DZE -0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -0457 # CYRILLIC SMALL LETTER YI -0458 # CYRILLIC SMALL LETTER JE -0459 # CYRILLIC SMALL LETTER LJE -045A # CYRILLIC SMALL LETTER NJE -045B # CYRILLIC SMALL LETTER TSHE -045C # CYRILLIC SMALL LETTER KJE -045E # CYRILLIC SMALL LETTER SHORT U -045F # CYRILLIC SMALL LETTER DZHE -0490 # CYRILLIC CAPITAL LETTER GHE WITH UPTURN -0491 # CYRILLIC SMALL LETTER GHE WITH UPTURN -0587 Õ¥Ö‚ # ARMENIAN SMALL LIGATURE ECH YIWN -05D0 # HEBREW LETTER ALEF -05D1 # HEBREW LETTER BET -05D2 # HEBREW LETTER GIMEL -05D3 # HEBREW LETTER DALET -05D4 # HEBREW LETTER HE -05D5 # HEBREW LETTER VAV -05D6 # HEBREW LETTER ZAYIN -05D7 # HEBREW LETTER HET -05D8 # HEBREW LETTER TET -05D9 # HEBREW LETTER YOD -05DA # HEBREW LETTER FINAL KAF -05DB # HEBREW LETTER KAF -05DC # HEBREW LETTER LAMED -05DD # HEBREW LETTER FINAL MEM -05DE # HEBREW LETTER MEM -05DF # HEBREW LETTER FINAL NUN -05E0 # HEBREW LETTER NUN -05E1 # HEBREW LETTER SAMEKH -05E2 # HEBREW LETTER AYIN -05E3 # HEBREW LETTER FINAL PE -05E4 # HEBREW LETTER PE -05E5 # HEBREW LETTER FINAL TSADI -05E6 # HEBREW LETTER TSADI -05E7 # HEBREW LETTER QOF -05E8 # HEBREW LETTER RESH -05E9 # HEBREW LETTER SHIN -05EA # HEBREW LETTER TAV -05F0 וו # HEBREW LIGATURE YIDDISH DOUBLE VAV -05F1 וי # HEBREW LIGATURE YIDDISH VAV YOD -05F2 ×™×™ # HEBREW LIGATURE YIDDISH DOUBLE YOD -0675 اٴ # ARABIC LETTER HIGH HAMZA ALEF -0676 وٴ # ARABIC LETTER HIGH HAMZA WAW -0677 Û‡Ù´ # ARABIC LETTER U WITH HAMZA ABOVE -0678 يٴ # ARABIC LETTER HIGH HAMZA YEH -0E33 à¹à¸² # THAI CHARACTER SARA AM -0EB3 à»àº² # LAO VOWEL SIGN AM -0EDC ຫນ # LAO HO NO -0EDD ຫມ # LAO HO MO -0F77 ྲྠ# TIBETAN VOWEL SIGN VOCALIC RR -0F79 ླྠ# TIBETAN VOWEL SIGN VOCALIC LL -1E02 B # LATIN CAPITAL LETTER B WITH DOT ABOVE -1E03 b # LATIN SMALL LETTER B WITH DOT ABOVE -1E0A D # LATIN CAPITAL LETTER D WITH DOT ABOVE -1E0B d # LATIN SMALL LETTER D WITH DOT ABOVE -1E1E F # LATIN CAPITAL LETTER F WITH DOT ABOVE -1E1F f # LATIN SMALL LETTER F WITH DOT ABOVE -1E40 M # LATIN CAPITAL LETTER M WITH DOT ABOVE -1E41 m # LATIN SMALL LETTER M WITH DOT ABOVE -1E56 P # LATIN CAPITAL LETTER P WITH DOT ABOVE -1E57 p # LATIN SMALL LETTER P WITH DOT ABOVE -1E60 S # LATIN CAPITAL LETTER S WITH DOT ABOVE -1E61 s # LATIN SMALL LETTER S WITH DOT ABOVE -1E6A T # LATIN CAPITAL LETTER T WITH DOT ABOVE -1E6B t # LATIN SMALL LETTER T WITH DOT ABOVE -1E80 `W # LATIN CAPITAL LETTER W WITH GRAVE -1E81 `w # LATIN SMALL LETTER W WITH GRAVE -1E82 ´W # LATIN CAPITAL LETTER W WITH ACUTE -1E83 ´w # LATIN SMALL LETTER W WITH ACUTE -1E84 "W # LATIN CAPITAL LETTER W WITH DIAERESIS -1E85 "w # LATIN SMALL LETTER W WITH DIAERESIS -1E9A aʾ # LATIN SMALL LETTER A WITH RIGHT HALF RING -1EF2 `Y # LATIN CAPITAL LETTER Y WITH GRAVE -1EF3 `y # LATIN SMALL LETTER Y WITH GRAVE -2002 # EN SPACE -2003 # EM SPACE -2004 # THREE-PER-EM SPACE -2005 # FOUR-PER-EM SPACE -2006 # SIX-PER-EM SPACE -2008 # PUNCTUATION SPACE -2009 # THIN SPACE -200A # HAIR SPACE -2010 - # HYPHEN -2011 - # NON-BREAKING HYPHEN -2012 - # FIGURE DASH -2013 - # EN DASH -2014 - # EM DASH -2015 - # HORIZONTAL BAR -2016 # DOUBLE VERTICAL LINE -2017 # DOUBLE LOW LINE -2018 ' # LEFT SINGLE QUOTATION MARK -2019 ' # RIGHT SINGLE QUOTATION MARK -201A , # SINGLE LOW-9 QUOTATION MARK -201B ' # SINGLE HIGH-REVERSED-9 QUOTATION MARK -201C " # LEFT DOUBLE QUOTATION MARK -201D " # RIGHT DOUBLE QUOTATION MARK -201E " # DOUBLE LOW-9 QUOTATION MARK -201F " # DOUBLE HIGH-REVERSED-9 QUOTATION MARK -2020 + # DAGGER -2021 # DOUBLE DAGGER -2022 o # BULLET -2024 . # ONE DOT LEADER -2025 .. # TWO DOT LEADER -2026 ... # HORIZONTAL ELLIPSIS -2030 o/oo # PER MILLE SIGN -2032 ´ # PRIME -2033 ´´ # DOUBLE PRIME -2034 ´´´ # TRIPLE PRIME -2036 ‵‵ # REVERSED DOUBLE PRIME -2037 ‵‵‵ # REVERSED TRIPLE PRIME -2039 < # SINGLE LEFT-POINTING ANGLE QUOTATION MARK -203A > # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -203C !! # DOUBLE EXCLAMATION MARK -203E # OVERLINE -2044 / # FRACTION SLASH -2047 ?? # DOUBLE QUESTION MARK -2048 ?! # QUESTION EXCLAMATION MARK -2049 !? # EXCLAMATION QUESTION MARK -2057 ´´´´ # QUADRUPLE PRIME -20A8 Rs # RUPEE SIGN -20AB Äồng # DONG SIGN -20AC EUR # EURO SIGN -2100 a/c # ACCOUNT OF -2101 a/s # ADDRESSED TO THE SUBJECT -2102 C # DOUBLE-STRUCK CAPITAL C -2103 °C # DEGREE CELSIUS -2105 c/o # CARE OF -2106 c/u # CADA UNA -2107 Æ # EULER CONSTANT -2109 °F # DEGREE FAHRENHEIT -210A g # SCRIPT SMALL G -210B H # SCRIPT CAPITAL H -210C H # BLACK-LETTER CAPITAL H -210D H # DOUBLE-STRUCK CAPITAL H -210E h # PLANCK CONSTANT -210F ħ # PLANCK CONSTANT OVER TWO PI -2110 I # SCRIPT CAPITAL I -2111 I # BLACK-LETTER CAPITAL I -2112 L # SCRIPT CAPITAL L -2113 l # SCRIPT SMALL L -2115 N # DOUBLE-STRUCK CAPITAL N -2116 No # NUMERO SIGN -2119 P # DOUBLE-STRUCK CAPITAL P -211A Q # DOUBLE-STRUCK CAPITAL Q -211B R # SCRIPT CAPITAL R -211C R # BLACK-LETTER CAPITAL R -211D R # DOUBLE-STRUCK CAPITAL R -2121 TEL # TELEPHONE SIGN -2122 TM # TRADE MARK SIGN -2124 Z # DOUBLE-STRUCK CAPITAL Z -2126 Ohm # OHM SIGN -2128 Z # BLACK-LETTER CAPITAL Z -212C B # SCRIPT CAPITAL B -212D C # BLACK-LETTER CAPITAL C -212E e # ESTIMATED SYMBOL -212F e # SCRIPT SMALL E -2130 E # SCRIPT CAPITAL E -2131 F # SCRIPT CAPITAL F -2133 M # SCRIPT CAPITAL M -2134 o # SCRIPT SMALL O -2135 × # ALEF SYMBOL -2136 ב # BET SYMBOL -2137 ×’ # GIMEL SYMBOL -2138 ד # DALET SYMBOL -2139 i # INFORMATION SOURCE -213B FAX # FACSIMILE SIGN -213D γ # DOUBLE-STRUCK SMALL GAMMA -213E Γ # DOUBLE-STRUCK CAPITAL GAMMA -213F Π # DOUBLE-STRUCK CAPITAL PI -2140 ∑ # DOUBLE-STRUCK N-ARY SUMMATION -2145 D # DOUBLE-STRUCK ITALIC CAPITAL D -2146 d # DOUBLE-STRUCK ITALIC SMALL D -2147 e # DOUBLE-STRUCK ITALIC SMALL E -2148 i # DOUBLE-STRUCK ITALIC SMALL I -2149 j # DOUBLE-STRUCK ITALIC SMALL J -2153 1â„3 # VULGAR FRACTION ONE THIRD -2154 2â„3 # VULGAR FRACTION TWO THIRDS -2155 1â„5 # VULGAR FRACTION ONE FIFTH -2156 2â„5 # VULGAR FRACTION TWO FIFTHS -2157 3â„5 # VULGAR FRACTION THREE FIFTHS -2158 4â„5 # VULGAR FRACTION FOUR FIFTHS -2159 1â„6 # VULGAR FRACTION ONE SIXTH -215A 5â„6 # VULGAR FRACTION FIVE SIXTHS -215B 1â„8 # VULGAR FRACTION ONE EIGHTH -215C 3â„8 # VULGAR FRACTION THREE EIGHTHS -215D 5â„8 # VULGAR FRACTION FIVE EIGHTHS -215E 7â„8 # VULGAR FRACTION SEVEN EIGHTHS -215F 1â„ # FRACTION NUMERATOR ONE -2160 I # ROMAN NUMERAL ONE -2161 II # ROMAN NUMERAL TWO -2162 III # ROMAN NUMERAL THREE -2163 IV # ROMAN NUMERAL FOUR -2164 V # ROMAN NUMERAL FIVE -2165 VI # ROMAN NUMERAL SIX -2166 VII # ROMAN NUMERAL SEVEN -2167 VIII # ROMAN NUMERAL EIGHT -2168 IX # ROMAN NUMERAL NINE -2169 X # ROMAN NUMERAL TEN -216A XI # ROMAN NUMERAL ELEVEN -216B XII # ROMAN NUMERAL TWELVE -216C L # ROMAN NUMERAL FIFTY -216D C # ROMAN NUMERAL ONE HUNDRED -216E D # ROMAN NUMERAL FIVE HUNDRED -216F M # ROMAN NUMERAL ONE THOUSAND -2170 i # SMALL ROMAN NUMERAL ONE -2171 ii # SMALL ROMAN NUMERAL TWO -2172 iii # SMALL ROMAN NUMERAL THREE -2173 iv # SMALL ROMAN NUMERAL FOUR -2174 v # SMALL ROMAN NUMERAL FIVE -2175 vi # SMALL ROMAN NUMERAL SIX -2176 vii # SMALL ROMAN NUMERAL SEVEN -2177 viii # SMALL ROMAN NUMERAL EIGHT -2178 ix # SMALL ROMAN NUMERAL NINE -2179 x # SMALL ROMAN NUMERAL TEN -217A xi # SMALL ROMAN NUMERAL ELEVEN -217B xii # SMALL ROMAN NUMERAL TWELVE -217C l # SMALL ROMAN NUMERAL FIFTY -217D c # SMALL ROMAN NUMERAL ONE HUNDRED -217E d # SMALL ROMAN NUMERAL FIVE HUNDRED -217F m # SMALL ROMAN NUMERAL ONE THOUSAND -2190 <- # LEFTWARDS ARROW -2191 ^ # UPWARDS ARROW -2192 -> # RIGHTWARDS ARROW -2193 V # DOWNWARDS ARROW -2194 <-> # LEFT RIGHT ARROW -21D0 <= # LEFTWARDS DOUBLE ARROW -21D2 => # RIGHTWARDS DOUBLE ARROW -21D4 <=> # LEFT RIGHT DOUBLE ARROW -2212 - # MINUS SIGN -2215 / # DIVISION SLASH -2216 \ # SET MINUS -2217 * # ASTERISK OPERATOR -2219 • # BULLET OPERATOR -2223 | # DIVIDES -222C ∫∫ # DOUBLE INTEGRAL -222D ∫∫∫ # TRIPLE INTEGRAL -222F ∮∮ # SURFACE INTEGRAL -2230 ∮∮∮ # VOLUME INTEGRAL -2236 : # RATIO -223C ~ # TILDE OPERATOR -2260 /= # NOT EQUAL TO -2264 <= # LESS-THAN OR EQUAL TO -2265 >= # GREATER-THAN OR EQUAL TO -226A << # MUCH LESS-THAN -226B >> # MUCH GREATER-THAN -22C5 · # DOT OPERATOR -22D8 <<< # VERY MUCH LESS-THAN -22D9 >>> # VERY MUCH GREATER-THAN -22EF ··· # MIDLINE HORIZONTAL ELLIPSIS -2400 [NUL] # SYMBOL FOR NULL -2401 [SOH] # SYMBOL FOR START OF HEADING -2402 [STX] # SYMBOL FOR START OF TEXT -2403 [ETX] # SYMBOL FOR END OF TEXT -2404 [EOT] # SYMBOL FOR END OF TRANSMISSION -2405 [ENQ] # SYMBOL FOR ENQUIRY -2406 [ACK] # SYMBOL FOR ACKNOWLEDGE -2407 [BEL] # SYMBOL FOR BELL -2408 [BS] # SYMBOL FOR BACKSPACE -2409 [HT] # SYMBOL FOR HORIZONTAL TABULATION -240A [LF] # SYMBOL FOR LINE FEED -240B [VT] # SYMBOL FOR VERTICAL TABULATION -240C [FF] # SYMBOL FOR FORM FEED -240D [CR] # SYMBOL FOR CARRIAGE RETURN -240E [SO] # SYMBOL FOR SHIFT OUT -240F [SI] # SYMBOL FOR SHIFT IN -2410 [DLE] # SYMBOL FOR DATA LINK ESCAPE -2411 [DC1] # SYMBOL FOR DEVICE CONTROL ONE -2412 [DC2] # SYMBOL FOR DEVICE CONTROL TWO -2413 [DC3] # SYMBOL FOR DEVICE CONTROL THREE -2414 [DC4] # SYMBOL FOR DEVICE CONTROL FOUR -2415 [NAK] # SYMBOL FOR NEGATIVE ACKNOWLEDGE -2416 [SYN] # SYMBOL FOR SYNCHRONOUS IDLE -2417 [ETB] # SYMBOL FOR END OF TRANSMISSION BLOCK -2418 [CAN] # SYMBOL FOR CANCEL -2419 [EM] # SYMBOL FOR END OF MEDIUM -241A [SUB] # SYMBOL FOR SUBSTITUTE -241B [ESC] # SYMBOL FOR ESCAPE -241C [FS] # SYMBOL FOR FILE SEPARATOR -241D [GS] # SYMBOL FOR GROUP SEPARATOR -241E [RS] # SYMBOL FOR RECORD SEPARATOR -241F [US] # SYMBOL FOR UNIT SEPARATOR -2420 [SP] # SYMBOL FOR SPACE -2421 [DEL] # SYMBOL FOR DELETE -2424 [NL] # SYMBOL FOR NEWLINE -2460 (1) # CIRCLED DIGIT ONE -2461 (2) # CIRCLED DIGIT TWO -2462 (3) # CIRCLED DIGIT THREE -2463 (4) # CIRCLED DIGIT FOUR -2464 (5) # CIRCLED DIGIT FIVE -2465 (6) # CIRCLED DIGIT SIX -2466 (7) # CIRCLED DIGIT SEVEN -2467 (8) # CIRCLED DIGIT EIGHT -2468 (9) # CIRCLED DIGIT NINE -2469 (10) # CIRCLED NUMBER TEN -246A (11) # CIRCLED NUMBER ELEVEN -246B (12) # CIRCLED NUMBER TWELVE -246C (13) # CIRCLED NUMBER THIRTEEN -246D (14) # CIRCLED NUMBER FOURTEEN -246E (15) # CIRCLED NUMBER FIFTEEN -246F (16) # CIRCLED NUMBER SIXTEEN -2470 (17) # CIRCLED NUMBER SEVENTEEN -2471 (18) # CIRCLED NUMBER EIGHTEEN -2472 (19) # CIRCLED NUMBER NINETEEN -2473 (20) # CIRCLED NUMBER TWENTY -2474 (1) # PARENTHESIZED DIGIT ONE -2475 (2) # PARENTHESIZED DIGIT TWO -2476 (3) # PARENTHESIZED DIGIT THREE -2477 (4) # PARENTHESIZED DIGIT FOUR -2478 (5) # PARENTHESIZED DIGIT FIVE -2479 (6) # PARENTHESIZED DIGIT SIX -247A (7) # PARENTHESIZED DIGIT SEVEN -247B (8) # PARENTHESIZED DIGIT EIGHT -247C (9) # PARENTHESIZED DIGIT NINE -247D (10) # PARENTHESIZED NUMBER TEN -247E (11) # PARENTHESIZED NUMBER ELEVEN -247F (12) # PARENTHESIZED NUMBER TWELVE -2480 (13) # PARENTHESIZED NUMBER THIRTEEN -2481 (14) # PARENTHESIZED NUMBER FOURTEEN -2482 (15) # PARENTHESIZED NUMBER FIFTEEN -2483 (16) # PARENTHESIZED NUMBER SIXTEEN -2484 (17) # PARENTHESIZED NUMBER SEVENTEEN -2485 (18) # PARENTHESIZED NUMBER EIGHTEEN -2486 (19) # PARENTHESIZED NUMBER NINETEEN -2487 (20) # PARENTHESIZED NUMBER TWENTY -2488 1. # DIGIT ONE FULL STOP -2489 2. # DIGIT TWO FULL STOP -248A 3. # DIGIT THREE FULL STOP -248B 4. # DIGIT FOUR FULL STOP -248C 5. # DIGIT FIVE FULL STOP -248D 6. # DIGIT SIX FULL STOP -248E 7. # DIGIT SEVEN FULL STOP -248F 8. # DIGIT EIGHT FULL STOP -2490 9. # DIGIT NINE FULL STOP -2491 10. # NUMBER TEN FULL STOP -2492 11. # NUMBER ELEVEN FULL STOP -2493 12. # NUMBER TWELVE FULL STOP -2494 13. # NUMBER THIRTEEN FULL STOP -2495 14. # NUMBER FOURTEEN FULL STOP -2496 15. # NUMBER FIFTEEN FULL STOP -2497 16. # NUMBER SIXTEEN FULL STOP -2498 17. # NUMBER SEVENTEEN FULL STOP -2499 18. # NUMBER EIGHTEEN FULL STOP -249A 19. # NUMBER NINETEEN FULL STOP -249B 20. # NUMBER TWENTY FULL STOP -249C (a) # PARENTHESIZED LATIN SMALL LETTER A -249D (b) # PARENTHESIZED LATIN SMALL LETTER B -249E (c) # PARENTHESIZED LATIN SMALL LETTER C -249F (d) # PARENTHESIZED LATIN SMALL LETTER D -24A0 (e) # PARENTHESIZED LATIN SMALL LETTER E -24A1 (f) # PARENTHESIZED LATIN SMALL LETTER F -24A2 (g) # PARENTHESIZED LATIN SMALL LETTER G -24A3 (h) # PARENTHESIZED LATIN SMALL LETTER H -24A4 (i) # PARENTHESIZED LATIN SMALL LETTER I -24A5 (j) # PARENTHESIZED LATIN SMALL LETTER J -24A6 (k) # PARENTHESIZED LATIN SMALL LETTER K -24A7 (l) # PARENTHESIZED LATIN SMALL LETTER L -24A8 (m) # PARENTHESIZED LATIN SMALL LETTER M -24A9 (n) # PARENTHESIZED LATIN SMALL LETTER N -24AA (o) # PARENTHESIZED LATIN SMALL LETTER O -24AB (p) # PARENTHESIZED LATIN SMALL LETTER P -24AC (q) # PARENTHESIZED LATIN SMALL LETTER Q -24AD (r) # PARENTHESIZED LATIN SMALL LETTER R -24AE (s) # PARENTHESIZED LATIN SMALL LETTER S -24AF (t) # PARENTHESIZED LATIN SMALL LETTER T -24B0 (u) # PARENTHESIZED LATIN SMALL LETTER U -24B1 (v) # PARENTHESIZED LATIN SMALL LETTER V -24B2 (w) # PARENTHESIZED LATIN SMALL LETTER W -24B3 (x) # PARENTHESIZED LATIN SMALL LETTER X -24B4 (y) # PARENTHESIZED LATIN SMALL LETTER Y -24B5 (z) # PARENTHESIZED LATIN SMALL LETTER Z -24B6 (A) # CIRCLED LATIN CAPITAL LETTER A -24B7 (B) # CIRCLED LATIN CAPITAL LETTER B -24B8 (C) # CIRCLED LATIN CAPITAL LETTER C -24B9 (D) # CIRCLED LATIN CAPITAL LETTER D -24BA (E) # CIRCLED LATIN CAPITAL LETTER E -24BB (F) # CIRCLED LATIN CAPITAL LETTER F -24BC (G) # CIRCLED LATIN CAPITAL LETTER G -24BD (H) # CIRCLED LATIN CAPITAL LETTER H -24BE (I) # CIRCLED LATIN CAPITAL LETTER I -24BF (J) # CIRCLED LATIN CAPITAL LETTER J -24C0 (K) # CIRCLED LATIN CAPITAL LETTER K -24C1 (L) # CIRCLED LATIN CAPITAL LETTER L -24C2 (M) # CIRCLED LATIN CAPITAL LETTER M -24C3 (N) # CIRCLED LATIN CAPITAL LETTER N -24C4 (O) # CIRCLED LATIN CAPITAL LETTER O -24C5 (P) # CIRCLED LATIN CAPITAL LETTER P -24C6 (Q) # CIRCLED LATIN CAPITAL LETTER Q -24C7 (R) # CIRCLED LATIN CAPITAL LETTER R -24C8 (S) # CIRCLED LATIN CAPITAL LETTER S -24C9 (T) # CIRCLED LATIN CAPITAL LETTER T -24CA (U) # CIRCLED LATIN CAPITAL LETTER U -24CB (V) # CIRCLED LATIN CAPITAL LETTER V -24CC (W) # CIRCLED LATIN CAPITAL LETTER W -24CD (X) # CIRCLED LATIN CAPITAL LETTER X -24CE (Y) # CIRCLED LATIN CAPITAL LETTER Y -24CF (Z) # CIRCLED LATIN CAPITAL LETTER Z -24D0 (a) # CIRCLED LATIN SMALL LETTER A -24D1 (b) # CIRCLED LATIN SMALL LETTER B -24D2 (c) # CIRCLED LATIN SMALL LETTER C -24D3 (d) # CIRCLED LATIN SMALL LETTER D -24D4 (e) # CIRCLED LATIN SMALL LETTER E -24D5 (f) # CIRCLED LATIN SMALL LETTER F -24D6 (g) # CIRCLED LATIN SMALL LETTER G -24D7 (h) # CIRCLED LATIN SMALL LETTER H -24D8 (i) # CIRCLED LATIN SMALL LETTER I -24D9 (j) # CIRCLED LATIN SMALL LETTER J -24DA (k) # CIRCLED LATIN SMALL LETTER K -24DB (l) # CIRCLED LATIN SMALL LETTER L -24DC (m) # CIRCLED LATIN SMALL LETTER M -24DD (n) # CIRCLED LATIN SMALL LETTER N -24DE (o) # CIRCLED LATIN SMALL LETTER O -24DF (p) # CIRCLED LATIN SMALL LETTER P -24E0 (q) # CIRCLED LATIN SMALL LETTER Q -24E1 (r) # CIRCLED LATIN SMALL LETTER R -24E2 (s) # CIRCLED LATIN SMALL LETTER S -24E3 (t) # CIRCLED LATIN SMALL LETTER T -24E4 (u) # CIRCLED LATIN SMALL LETTER U -24E5 (v) # CIRCLED LATIN SMALL LETTER V -24E6 (w) # CIRCLED LATIN SMALL LETTER W -24E7 (x) # CIRCLED LATIN SMALL LETTER X -24E8 (y) # CIRCLED LATIN SMALL LETTER Y -24E9 (z) # CIRCLED LATIN SMALL LETTER Z -24EA (0) # CIRCLED DIGIT ZERO -2500 - # BOX DRAWINGS LIGHT HORIZONTAL -2502 | # BOX DRAWINGS LIGHT VERTICAL -250C + # BOX DRAWINGS LIGHT DOWN AND RIGHT -2510 + # BOX DRAWINGS LIGHT DOWN AND LEFT -2514 + # BOX DRAWINGS LIGHT UP AND RIGHT -2518 + # BOX DRAWINGS LIGHT UP AND LEFT -251C + # BOX DRAWINGS LIGHT VERTICAL AND RIGHT -2524 + # BOX DRAWINGS LIGHT VERTICAL AND LEFT -252C + # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -2534 + # BOX DRAWINGS LIGHT UP AND HORIZONTAL -253C + # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -2592 # MEDIUM SHADE -25AE # BLACK VERTICAL RECTANGLE -25C6 # BLACK DIAMOND -25E6 o # WHITE BULLET -266A # EIGHTH NOTE -2A0C ∫∫∫∫ # QUADRUPLE INTEGRAL OPERATOR -2A74 ::= # DOUBLE COLON EQUAL -2A75 == # TWO CONSECUTIVE EQUALS SIGNS -2A76 === # THREE CONSECUTIVE EQUALS SIGNS -2E9F æ¯ # CJK RADICAL MOTHER -2EF3 龟 # CJK RADICAL C-SIMPLIFIED TURTLE -2F00 一 # KANGXI RADICAL ONE -2F01 丨 # KANGXI RADICAL LINE -2F02 丶 # KANGXI RADICAL DOT -2F03 丿 # KANGXI RADICAL SLASH -2F04 ä¹™ # KANGXI RADICAL SECOND -2F05 亅 # KANGXI RADICAL HOOK -2F06 二 # KANGXI RADICAL TWO -2F07 亠 # KANGXI RADICAL LID -2F08 人 # KANGXI RADICAL MAN -2F09 å„¿ # KANGXI RADICAL LEGS -2F0A å…¥ # KANGXI RADICAL ENTER -2F0B å…« # KANGXI RADICAL EIGHT -2F0C 冂 # KANGXI RADICAL DOWN BOX -2F0D 冖 # KANGXI RADICAL COVER -2F0E 冫 # KANGXI RADICAL ICE -2F0F 几 # KANGXI RADICAL TABLE -2F10 凵 # KANGXI RADICAL OPEN BOX -2F11 刀 # KANGXI RADICAL KNIFE -2F12 力 # KANGXI RADICAL POWER -2F13 勹 # KANGXI RADICAL WRAP -2F14 匕 # KANGXI RADICAL SPOON -2F15 匚 # KANGXI RADICAL RIGHT OPEN BOX -2F16 匸 # KANGXI RADICAL HIDING ENCLOSURE -2F17 å # KANGXI RADICAL TEN -2F18 åœ # KANGXI RADICAL DIVINATION -2F19 å© # KANGXI RADICAL SEAL -2F1A 厂 # KANGXI RADICAL CLIFF -2F1B 厶 # KANGXI RADICAL PRIVATE -2F1C åˆ # KANGXI RADICAL AGAIN -2F1D å£ # KANGXI RADICAL MOUTH -2F1E å›— # KANGXI RADICAL ENCLOSURE -2F1F 土 # KANGXI RADICAL EARTH -2F20 士 # KANGXI RADICAL SCHOLAR -2F21 夂 # KANGXI RADICAL GO -2F22 夊 # KANGXI RADICAL GO SLOWLY -2F23 夕 # KANGXI RADICAL EVENING -2F24 大 # KANGXI RADICAL BIG -2F25 女 # KANGXI RADICAL WOMAN -2F26 å­ # KANGXI RADICAL CHILD -2F27 宀 # KANGXI RADICAL ROOF -2F28 寸 # KANGXI RADICAL INCH -2F29 å° # KANGXI RADICAL SMALL -2F2A å°¢ # KANGXI RADICAL LAME -2F2B å°¸ # KANGXI RADICAL CORPSE -2F2C å±® # KANGXI RADICAL SPROUT -2F2D å±± # KANGXI RADICAL MOUNTAIN -2F2E å·› # KANGXI RADICAL RIVER -2F2F å·¥ # KANGXI RADICAL WORK -2F30 å·± # KANGXI RADICAL ONESELF -2F31 å·¾ # KANGXI RADICAL TURBAN -2F32 å¹² # KANGXI RADICAL DRY -2F33 幺 # KANGXI RADICAL SHORT THREAD -2F34 广 # KANGXI RADICAL DOTTED CLIFF -2F35 å»´ # KANGXI RADICAL LONG STRIDE -2F36 廾 # KANGXI RADICAL TWO HANDS -2F37 弋 # KANGXI RADICAL SHOOT -2F38 弓 # KANGXI RADICAL BOW -2F39 å½ # KANGXI RADICAL SNOUT -2F3A 彡 # KANGXI RADICAL BRISTLE -2F3B å½³ # KANGXI RADICAL STEP -2F3C 心 # KANGXI RADICAL HEART -2F3D 戈 # KANGXI RADICAL HALBERD -2F3E 戶 # KANGXI RADICAL DOOR -2F3F 手 # KANGXI RADICAL HAND -2F40 支 # KANGXI RADICAL BRANCH -2F41 æ”´ # KANGXI RADICAL RAP -2F42 æ–‡ # KANGXI RADICAL SCRIPT -2F43 æ–— # KANGXI RADICAL DIPPER -2F44 æ–¤ # KANGXI RADICAL AXE -2F45 æ–¹ # KANGXI RADICAL SQUARE -2F46 æ—  # KANGXI RADICAL NOT -2F47 æ—¥ # KANGXI RADICAL SUN -2F48 æ›° # KANGXI RADICAL SAY -2F49 月 # KANGXI RADICAL MOON -2F4A 木 # KANGXI RADICAL TREE -2F4B 欠 # KANGXI RADICAL LACK -2F4C æ­¢ # KANGXI RADICAL STOP -2F4D æ­¹ # KANGXI RADICAL DEATH -2F4E 殳 # KANGXI RADICAL WEAPON -2F4F 毋 # KANGXI RADICAL DO NOT -2F50 比 # KANGXI RADICAL COMPARE -2F51 毛 # KANGXI RADICAL FUR -2F52 æ° # KANGXI RADICAL CLAN -2F53 æ°” # KANGXI RADICAL STEAM -2F54 æ°´ # KANGXI RADICAL WATER -2F55 ç« # KANGXI RADICAL FIRE -2F56 爪 # KANGXI RADICAL CLAW -2F57 父 # KANGXI RADICAL FATHER -2F58 爻 # KANGXI RADICAL DOUBLE X -2F59 爿 # KANGXI RADICAL HALF TREE TRUNK -2F5A 片 # KANGXI RADICAL SLICE -2F5B 牙 # KANGXI RADICAL FANG -2F5C 牛 # KANGXI RADICAL COW -2F5D 犬 # KANGXI RADICAL DOG -2F5E 玄 # KANGXI RADICAL PROFOUND -2F5F 玉 # KANGXI RADICAL JADE -2F60 瓜 # KANGXI RADICAL MELON -2F61 瓦 # KANGXI RADICAL TILE -2F62 甘 # KANGXI RADICAL SWEET -2F63 生 # KANGXI RADICAL LIFE -2F64 用 # KANGXI RADICAL USE -2F65 ç”° # KANGXI RADICAL FIELD -2F66 ç–‹ # KANGXI RADICAL BOLT OF CLOTH -2F67 ç–’ # KANGXI RADICAL SICKNESS -2F68 ç™¶ # KANGXI RADICAL DOTTED TENT -2F69 白 # KANGXI RADICAL WHITE -2F6A çš® # KANGXI RADICAL SKIN -2F6B çš¿ # KANGXI RADICAL DISH -2F6C ç›® # KANGXI RADICAL EYE -2F6D 矛 # KANGXI RADICAL SPEAR -2F6E 矢 # KANGXI RADICAL ARROW -2F6F 石 # KANGXI RADICAL STONE -2F70 示 # KANGXI RADICAL SPIRIT -2F71 禸 # KANGXI RADICAL TRACK -2F72 禾 # KANGXI RADICAL GRAIN -2F73 ç©´ # KANGXI RADICAL CAVE -2F74 ç«‹ # KANGXI RADICAL STAND -2F75 竹 # KANGXI RADICAL BAMBOO -2F76 ç±³ # KANGXI RADICAL RICE -2F77 糸 # KANGXI RADICAL SILK -2F78 ç¼¶ # KANGXI RADICAL JAR -2F79 网 # KANGXI RADICAL NET -2F7A 羊 # KANGXI RADICAL SHEEP -2F7B ç¾½ # KANGXI RADICAL FEATHER -2F7C è€ # KANGXI RADICAL OLD -2F7D 而 # KANGXI RADICAL AND -2F7E 耒 # KANGXI RADICAL PLOW -2F7F 耳 # KANGXI RADICAL EAR -2F80 è¿ # KANGXI RADICAL BRUSH -2F81 肉 # KANGXI RADICAL MEAT -2F82 臣 # KANGXI RADICAL MINISTER -2F83 自 # KANGXI RADICAL SELF -2F84 至 # KANGXI RADICAL ARRIVE -2F85 臼 # KANGXI RADICAL MORTAR -2F86 舌 # KANGXI RADICAL TONGUE -2F87 舛 # KANGXI RADICAL OPPOSE -2F88 舟 # KANGXI RADICAL BOAT -2F89 艮 # KANGXI RADICAL STOPPING -2F8A 色 # KANGXI RADICAL COLOR -2F8B 艸 # KANGXI RADICAL GRASS -2F8C è™ # KANGXI RADICAL TIGER -2F8D 虫 # KANGXI RADICAL INSECT -2F8E è¡€ # KANGXI RADICAL BLOOD -2F8F 行 # KANGXI RADICAL WALK ENCLOSURE -2F90 è¡£ # KANGXI RADICAL CLOTHES -2F91 襾 # KANGXI RADICAL WEST -2F92 見 # KANGXI RADICAL SEE -2F93 è§’ # KANGXI RADICAL HORN -2F94 言 # KANGXI RADICAL SPEECH -2F95 è°· # KANGXI RADICAL VALLEY -2F96 豆 # KANGXI RADICAL BEAN -2F97 豕 # KANGXI RADICAL PIG -2F98 豸 # KANGXI RADICAL BADGER -2F99 è² # KANGXI RADICAL SHELL -2F9A 赤 # KANGXI RADICAL RED -2F9B èµ° # KANGXI RADICAL RUN -2F9C è¶³ # KANGXI RADICAL FOOT -2F9D 身 # KANGXI RADICAL BODY -2F9E 車 # KANGXI RADICAL CART -2F9F è¾› # KANGXI RADICAL BITTER -2FA0 è¾° # KANGXI RADICAL MORNING -2FA1 è¾µ # KANGXI RADICAL WALK -2FA2 é‚‘ # KANGXI RADICAL CITY -2FA3 é…‰ # KANGXI RADICAL WINE -2FA4 釆 # KANGXI RADICAL DISTINGUISH -2FA5 里 # KANGXI RADICAL VILLAGE -2FA6 金 # KANGXI RADICAL GOLD -2FA7 é•· # KANGXI RADICAL LONG -2FA8 é–€ # KANGXI RADICAL GATE -2FA9 阜 # KANGXI RADICAL MOUND -2FAA éš¶ # KANGXI RADICAL SLAVE -2FAB éš¹ # KANGXI RADICAL SHORT TAILED BIRD -2FAC 雨 # KANGXI RADICAL RAIN -2FAD é‘ # KANGXI RADICAL BLUE -2FAE éž # KANGXI RADICAL WRONG -2FAF é¢ # KANGXI RADICAL FACE -2FB0 é© # KANGXI RADICAL LEATHER -2FB1 韋 # KANGXI RADICAL TANNED LEATHER -2FB2 韭 # KANGXI RADICAL LEEK -2FB3 音 # KANGXI RADICAL SOUND -2FB4 é  # KANGXI RADICAL LEAF -2FB5 風 # KANGXI RADICAL WIND -2FB6 飛 # KANGXI RADICAL FLY -2FB7 食 # KANGXI RADICAL EAT -2FB8 首 # KANGXI RADICAL HEAD -2FB9 香 # KANGXI RADICAL FRAGRANT -2FBA 馬 # KANGXI RADICAL HORSE -2FBB 骨 # KANGXI RADICAL BONE -2FBC 高 # KANGXI RADICAL TALL -2FBD 髟 # KANGXI RADICAL HAIR -2FBE 鬥 # KANGXI RADICAL FIGHT -2FBF 鬯 # KANGXI RADICAL SACRIFICIAL WINE -2FC0 鬲 # KANGXI RADICAL CAULDRON -2FC1 鬼 # KANGXI RADICAL GHOST -2FC2 é­š # KANGXI RADICAL FISH -2FC3 é³¥ # KANGXI RADICAL BIRD -2FC4 é¹µ # KANGXI RADICAL SALT -2FC5 鹿 # KANGXI RADICAL DEER -2FC6 麥 # KANGXI RADICAL WHEAT -2FC7 麻 # KANGXI RADICAL HEMP -2FC8 黃 # KANGXI RADICAL YELLOW -2FC9 é» # KANGXI RADICAL MILLET -2FCA 黑 # KANGXI RADICAL BLACK -2FCB 黹 # KANGXI RADICAL EMBROIDERY -2FCC 黽 # KANGXI RADICAL FROG -2FCD 鼎 # KANGXI RADICAL TRIPOD -2FCE 鼓 # KANGXI RADICAL DRUM -2FCF é¼  # KANGXI RADICAL RAT -2FD0 é¼» # KANGXI RADICAL NOSE -2FD1 齊 # KANGXI RADICAL EVEN -2FD2 é½’ # KANGXI RADICAL TOOTH -2FD3 é¾ # KANGXI RADICAL DRAGON -2FD4 龜 # KANGXI RADICAL TURTLE -2FD5 é¾  # KANGXI RADICAL FLUTE -3000 # IDEOGRAPHIC SPACE -3036 〒 # CIRCLED POSTAL MARK -3038 å # HANGZHOU NUMERAL TEN -3039 å„ # HANGZHOU NUMERAL TWENTY -303A å… # HANGZHOU NUMERAL THIRTY -3041 ã‚ # HIRAGANA LETTER SMALL A -3043 ã„ # HIRAGANA LETTER SMALL I -3045 ㆠ# HIRAGANA LETTER SMALL U -3047 ㈠# HIRAGANA LETTER SMALL E -3049 ㊠# HIRAGANA LETTER SMALL O -3063 㤠# HIRAGANA LETTER SMALL TU -3083 ã‚„ # HIRAGANA LETTER SMALL YA -3085 ゆ # HIRAGANA LETTER SMALL YU -3087 よ # HIRAGANA LETTER SMALL YO -308E ã‚ # HIRAGANA LETTER SMALL WA -3095 ã‹ # HIRAGANA LETTER SMALL KA -3096 ã‘ # HIRAGANA LETTER SMALL KE -309B ã‚™ # KATAKANA-HIRAGANA VOICED SOUND MARK -309C ゚ # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -30A0 = # KATAKANA-HIRAGANA DOUBLE HYPHEN -30A1 ã‚¢ # KATAKANA LETTER SMALL A -30A3 イ # KATAKANA LETTER SMALL I -30A5 ウ # KATAKANA LETTER SMALL U -30A7 エ # KATAKANA LETTER SMALL E -30A9 オ # KATAKANA LETTER SMALL O -30C3 ツ # KATAKANA LETTER SMALL TU -30E3 ヤ # KATAKANA LETTER SMALL YA -30E5 ユ # KATAKANA LETTER SMALL YU -30E7 ヨ # KATAKANA LETTER SMALL YO -30EE ワ # KATAKANA LETTER SMALL WA -30F5 ã‚« # KATAKANA LETTER SMALL KA -30F6 ケ # KATAKANA LETTER SMALL KE -3131 á„€ # HANGUL LETTER KIYEOK -3132 á„ # HANGUL LETTER SSANGKIYEOK -3133 ᆪ # HANGUL LETTER KIYEOK-SIOS -3134 á„‚ # HANGUL LETTER NIEUN -3135 ᆬ # HANGUL LETTER NIEUN-CIEUC -3136 ᆭ # HANGUL LETTER NIEUN-HIEUH -3137 ᄃ # HANGUL LETTER TIKEUT -3138 á„„ # HANGUL LETTER SSANGTIKEUT -3139 á„… # HANGUL LETTER RIEUL -313A ᆰ # HANGUL LETTER RIEUL-KIYEOK -313B ᆱ # HANGUL LETTER RIEUL-MIEUM -313C ᆲ # HANGUL LETTER RIEUL-PIEUP -313D ᆳ # HANGUL LETTER RIEUL-SIOS -313E ᆴ # HANGUL LETTER RIEUL-THIEUTH -313F ᆵ # HANGUL LETTER RIEUL-PHIEUPH -3140 ᄚ # HANGUL LETTER RIEUL-HIEUH -3141 ᄆ # HANGUL LETTER MIEUM -3142 ᄇ # HANGUL LETTER PIEUP -3143 ᄈ # HANGUL LETTER SSANGPIEUP -3144 á„¡ # HANGUL LETTER PIEUP-SIOS -3145 ᄉ # HANGUL LETTER SIOS -3146 ᄊ # HANGUL LETTER SSANGSIOS -3147 á„‹ # HANGUL LETTER IEUNG -3148 ᄌ # HANGUL LETTER CIEUC -3149 á„ # HANGUL LETTER SSANGCIEUC -314A ᄎ # HANGUL LETTER CHIEUCH -314B á„ # HANGUL LETTER KHIEUKH -314C á„ # HANGUL LETTER THIEUTH -314D á„‘ # HANGUL LETTER PHIEUPH -314E á„’ # HANGUL LETTER HIEUH -314F á…¡ # HANGUL LETTER A -3150 á…¢ # HANGUL LETTER AE -3151 á…£ # HANGUL LETTER YA -3152 á…¤ # HANGUL LETTER YAE -3153 á…¥ # HANGUL LETTER EO -3154 á…¦ # HANGUL LETTER E -3155 á…§ # HANGUL LETTER YEO -3156 á…¨ # HANGUL LETTER YE -3157 á…© # HANGUL LETTER O -3158 á…ª # HANGUL LETTER WA -3159 á…« # HANGUL LETTER WAE -315A á…¬ # HANGUL LETTER OE -315B á…­ # HANGUL LETTER YO -315C á…® # HANGUL LETTER U -315D á…¯ # HANGUL LETTER WEO -315E á…° # HANGUL LETTER WE -315F á…± # HANGUL LETTER WI -3160 á…² # HANGUL LETTER YU -3161 á…³ # HANGUL LETTER EU -3162 á…´ # HANGUL LETTER YI -3163 á…µ # HANGUL LETTER I -3164 á…  # HANGUL FILLER -3165 á„” # HANGUL LETTER SSANGNIEUN -3166 á„• # HANGUL LETTER NIEUN-TIKEUT -3167 ᇇ # HANGUL LETTER NIEUN-SIOS -3168 ᇈ # HANGUL LETTER NIEUN-PANSIOS -3169 ᇌ # HANGUL LETTER RIEUL-KIYEOK-SIOS -316A ᇎ # HANGUL LETTER RIEUL-TIKEUT -316B ᇓ # HANGUL LETTER RIEUL-PIEUP-SIOS -316C ᇗ # HANGUL LETTER RIEUL-PANSIOS -316D ᇙ # HANGUL LETTER RIEUL-YEORINHIEUH -316E ᄜ # HANGUL LETTER MIEUM-PIEUP -316F ᇠ# HANGUL LETTER MIEUM-SIOS -3170 ᇟ # HANGUL LETTER MIEUM-PANSIOS -3171 á„ # HANGUL LETTER KAPYEOUNMIEUM -3172 ᄞ # HANGUL LETTER PIEUP-KIYEOK -3173 á„  # HANGUL LETTER PIEUP-TIKEUT -3174 á„¢ # HANGUL LETTER PIEUP-SIOS-KIYEOK -3175 á„£ # HANGUL LETTER PIEUP-SIOS-TIKEUT -3176 á„§ # HANGUL LETTER PIEUP-CIEUC -3177 á„© # HANGUL LETTER PIEUP-THIEUTH -3178 á„« # HANGUL LETTER KAPYEOUNPIEUP -3179 ᄬ # HANGUL LETTER KAPYEOUNSSANGPIEUP -317A á„­ # HANGUL LETTER SIOS-KIYEOK -317B á„® # HANGUL LETTER SIOS-NIEUN -317C ᄯ # HANGUL LETTER SIOS-TIKEUT -317D ᄲ # HANGUL LETTER SIOS-PIEUP -317E á„¶ # HANGUL LETTER SIOS-CIEUC -317F á…€ # HANGUL LETTER PANSIOS -3180 á…‡ # HANGUL LETTER SSANGIEUNG -3181 á…Œ # HANGUL LETTER YESIEUNG -3182 ᇱ # HANGUL LETTER YESIEUNG-SIOS -3183 ᇲ # HANGUL LETTER YESIEUNG-PANSIOS -3184 á…— # HANGUL LETTER KAPYEOUNPHIEUPH -3185 á…˜ # HANGUL LETTER SSANGHIEUH -3186 á…™ # HANGUL LETTER YEORINHIEUH -3187 ᆄ # HANGUL LETTER YO-YA -3188 ᆅ # HANGUL LETTER YO-YAE -3189 ᆈ # HANGUL LETTER YO-I -318A ᆑ # HANGUL LETTER YU-YEO -318B ᆒ # HANGUL LETTER YU-YE -318C ᆔ # HANGUL LETTER YU-I -318D ᆞ # HANGUL LETTER ARAEA -318E ᆡ # HANGUL LETTER ARAEAE -31F0 ク # KATAKANA LETTER SMALL KU -31F1 ã‚· # KATAKANA LETTER SMALL SI -31F2 ス # KATAKANA LETTER SMALL SU -31F3 ト # KATAKANA LETTER SMALL TO -31F4 ヌ # KATAKANA LETTER SMALL NU -31F5 ム# KATAKANA LETTER SMALL HA -31F6 ヒ # KATAKANA LETTER SMALL HI -31F7 フ # KATAKANA LETTER SMALL HU -31F8 ヘ # KATAKANA LETTER SMALL HE -31F9 ホ # KATAKANA LETTER SMALL HO -31FA ム # KATAKANA LETTER SMALL MU -31FB ラ # KATAKANA LETTER SMALL RA -31FC リ # KATAKANA LETTER SMALL RI -31FD ル # KATAKANA LETTER SMALL RU -31FE レ # KATAKANA LETTER SMALL RE -31FF ロ # KATAKANA LETTER SMALL RO -3200 (á„€) # PARENTHESIZED HANGUL KIYEOK -3201 (á„‚) # PARENTHESIZED HANGUL NIEUN -3202 (ᄃ) # PARENTHESIZED HANGUL TIKEUT -3203 (á„…) # PARENTHESIZED HANGUL RIEUL -3204 (ᄆ) # PARENTHESIZED HANGUL MIEUM -3205 (ᄇ) # PARENTHESIZED HANGUL PIEUP -3206 (ᄉ) # PARENTHESIZED HANGUL SIOS -3207 (á„‹) # PARENTHESIZED HANGUL IEUNG -3208 (ᄌ) # PARENTHESIZED HANGUL CIEUC -3209 (ᄎ) # PARENTHESIZED HANGUL CHIEUCH -320A (á„) # PARENTHESIZED HANGUL KHIEUKH -320B (á„) # PARENTHESIZED HANGUL THIEUTH -320C (á„‘) # PARENTHESIZED HANGUL PHIEUPH -320D (á„’) # PARENTHESIZED HANGUL HIEUH -320E (가) # PARENTHESIZED HANGUL KIYEOK A -320F (á„‚á…¡) # PARENTHESIZED HANGUL NIEUN A -3210 (다) # PARENTHESIZED HANGUL TIKEUT A -3211 (á„…á…¡) # PARENTHESIZED HANGUL RIEUL A -3212 (마) # PARENTHESIZED HANGUL MIEUM A -3213 (바) # PARENTHESIZED HANGUL PIEUP A -3214 (사) # PARENTHESIZED HANGUL SIOS A -3215 (á„‹á…¡) # PARENTHESIZED HANGUL IEUNG A -3216 (자) # PARENTHESIZED HANGUL CIEUC A -3217 (차) # PARENTHESIZED HANGUL CHIEUCH A -3218 (á„á…¡) # PARENTHESIZED HANGUL KHIEUKH A -3219 (á„á…¡) # PARENTHESIZED HANGUL THIEUTH A -321A (á„‘á…¡) # PARENTHESIZED HANGUL PHIEUPH A -321B (á„’á…¡) # PARENTHESIZED HANGUL HIEUH A -321C (주) # PARENTHESIZED HANGUL CIEUC U -321D (오전) # PARENTHESIZED KOREAN CHARACTER OJEON -321E (á„‹á…©á„’á…®) # PARENTHESIZED KOREAN CHARACTER O HU -3220 (一) # PARENTHESIZED IDEOGRAPH ONE -3221 (二) # PARENTHESIZED IDEOGRAPH TWO -3222 (三) # PARENTHESIZED IDEOGRAPH THREE -3223 (å››) # PARENTHESIZED IDEOGRAPH FOUR -3224 (五) # PARENTHESIZED IDEOGRAPH FIVE -3225 (å…­) # PARENTHESIZED IDEOGRAPH SIX -3226 (七) # PARENTHESIZED IDEOGRAPH SEVEN -3227 (å…«) # PARENTHESIZED IDEOGRAPH EIGHT -3228 (ä¹) # PARENTHESIZED IDEOGRAPH NINE -3229 (å) # PARENTHESIZED IDEOGRAPH TEN -322A (月) # PARENTHESIZED IDEOGRAPH MOON -322B (ç«) # PARENTHESIZED IDEOGRAPH FIRE -322C (æ°´) # PARENTHESIZED IDEOGRAPH WATER -322D (木) # PARENTHESIZED IDEOGRAPH WOOD -322E (金) # PARENTHESIZED IDEOGRAPH METAL -322F (土) # PARENTHESIZED IDEOGRAPH EARTH -3230 (æ—¥) # PARENTHESIZED IDEOGRAPH SUN -3231 (æ ª) # PARENTHESIZED IDEOGRAPH STOCK -3232 (有) # PARENTHESIZED IDEOGRAPH HAVE -3233 (社) # PARENTHESIZED IDEOGRAPH SOCIETY -3234 (å) # PARENTHESIZED IDEOGRAPH NAME -3235 (特) # PARENTHESIZED IDEOGRAPH SPECIAL -3236 (財) # PARENTHESIZED IDEOGRAPH FINANCIAL -3237 (ç¥) # PARENTHESIZED IDEOGRAPH CONGRATULATION -3238 (労) # PARENTHESIZED IDEOGRAPH LABOR -3239 (代) # PARENTHESIZED IDEOGRAPH REPRESENT -323A (呼) # PARENTHESIZED IDEOGRAPH CALL -323B (å­¦) # PARENTHESIZED IDEOGRAPH STUDY -323C (監) # PARENTHESIZED IDEOGRAPH SUPERVISE -323D (ä¼) # PARENTHESIZED IDEOGRAPH ENTERPRISE -323E (資) # PARENTHESIZED IDEOGRAPH RESOURCE -323F (å”) # PARENTHESIZED IDEOGRAPH ALLIANCE -3240 (祭) # PARENTHESIZED IDEOGRAPH FESTIVAL -3241 (休) # PARENTHESIZED IDEOGRAPH REST -3242 (自) # PARENTHESIZED IDEOGRAPH SELF -3243 (至) # PARENTHESIZED IDEOGRAPH REACH -3250 PTE # PARTNERSHIP SIGN -3251 (21) # CIRCLED NUMBER TWENTY ONE -3252 (22) # CIRCLED NUMBER TWENTY TWO -3253 (23) # CIRCLED NUMBER TWENTY THREE -3254 (24) # CIRCLED NUMBER TWENTY FOUR -3255 (25) # CIRCLED NUMBER TWENTY FIVE -3256 (26) # CIRCLED NUMBER TWENTY SIX -3257 (27) # CIRCLED NUMBER TWENTY SEVEN -3258 (28) # CIRCLED NUMBER TWENTY EIGHT -3259 (29) # CIRCLED NUMBER TWENTY NINE -325A (30) # CIRCLED NUMBER THIRTY -325B (31) # CIRCLED NUMBER THIRTY ONE -325C (32) # CIRCLED NUMBER THIRTY TWO -325D (33) # CIRCLED NUMBER THIRTY THREE -325E (34) # CIRCLED NUMBER THIRTY FOUR -325F (35) # CIRCLED NUMBER THIRTY FIVE -3260 (á„€) # CIRCLED HANGUL KIYEOK -3261 (á„‚) # CIRCLED HANGUL NIEUN -3262 (ᄃ) # CIRCLED HANGUL TIKEUT -3263 (á„…) # CIRCLED HANGUL RIEUL -3264 (ᄆ) # CIRCLED HANGUL MIEUM -3265 (ᄇ) # CIRCLED HANGUL PIEUP -3266 (ᄉ) # CIRCLED HANGUL SIOS -3267 (á„‹) # CIRCLED HANGUL IEUNG -3268 (ᄌ) # CIRCLED HANGUL CIEUC -3269 (ᄎ) # CIRCLED HANGUL CHIEUCH -326A (á„) # CIRCLED HANGUL KHIEUKH -326B (á„) # CIRCLED HANGUL THIEUTH -326C (á„‘) # CIRCLED HANGUL PHIEUPH -326D (á„’) # CIRCLED HANGUL HIEUH -326E (가) # CIRCLED HANGUL KIYEOK A -326F (á„‚á…¡) # CIRCLED HANGUL NIEUN A -3270 (다) # CIRCLED HANGUL TIKEUT A -3271 (á„…á…¡) # CIRCLED HANGUL RIEUL A -3272 (마) # CIRCLED HANGUL MIEUM A -3273 (바) # CIRCLED HANGUL PIEUP A -3274 (사) # CIRCLED HANGUL SIOS A -3275 (á„‹á…¡) # CIRCLED HANGUL IEUNG A -3276 (자) # CIRCLED HANGUL CIEUC A -3277 (차) # CIRCLED HANGUL CHIEUCH A -3278 (á„á…¡) # CIRCLED HANGUL KHIEUKH A -3279 (á„á…¡) # CIRCLED HANGUL THIEUTH A -327A (á„‘á…¡) # CIRCLED HANGUL PHIEUPH A -327B (á„’á…¡) # CIRCLED HANGUL HIEUH A -327C (참고) # CIRCLED KOREAN CHARACTER CHAMKO -327D (주의) # CIRCLED KOREAN CHARACTER JUEUI -3280 (一) # CIRCLED IDEOGRAPH ONE -3281 (二) # CIRCLED IDEOGRAPH TWO -3282 (三) # CIRCLED IDEOGRAPH THREE -3283 (å››) # CIRCLED IDEOGRAPH FOUR -3284 (五) # CIRCLED IDEOGRAPH FIVE -3285 (å…­) # CIRCLED IDEOGRAPH SIX -3286 (七) # CIRCLED IDEOGRAPH SEVEN -3287 (å…«) # CIRCLED IDEOGRAPH EIGHT -3288 (ä¹) # CIRCLED IDEOGRAPH NINE -3289 (å) # CIRCLED IDEOGRAPH TEN -328A (月) # CIRCLED IDEOGRAPH MOON -328B (ç«) # CIRCLED IDEOGRAPH FIRE -328C (æ°´) # CIRCLED IDEOGRAPH WATER -328D (木) # CIRCLED IDEOGRAPH WOOD -328E (金) # CIRCLED IDEOGRAPH METAL -328F (土) # CIRCLED IDEOGRAPH EARTH -3290 (æ—¥) # CIRCLED IDEOGRAPH SUN -3291 (æ ª) # CIRCLED IDEOGRAPH STOCK -3292 (有) # CIRCLED IDEOGRAPH HAVE -3293 (社) # CIRCLED IDEOGRAPH SOCIETY -3294 (å) # CIRCLED IDEOGRAPH NAME -3295 (特) # CIRCLED IDEOGRAPH SPECIAL -3296 (財) # CIRCLED IDEOGRAPH FINANCIAL -3297 (ç¥) # CIRCLED IDEOGRAPH CONGRATULATION -3298 (労) # CIRCLED IDEOGRAPH LABOR -3299 (秘) # CIRCLED IDEOGRAPH SECRET -329A (ç”·) # CIRCLED IDEOGRAPH MALE -329B (女) # CIRCLED IDEOGRAPH FEMALE -329C (é©) # CIRCLED IDEOGRAPH SUITABLE -329D (優) # CIRCLED IDEOGRAPH EXCELLENT -329E (å°) # CIRCLED IDEOGRAPH PRINT -329F (注) # CIRCLED IDEOGRAPH ATTENTION -32A0 (é …) # CIRCLED IDEOGRAPH ITEM -32A1 (休) # CIRCLED IDEOGRAPH REST -32A2 (写) # CIRCLED IDEOGRAPH COPY -32A3 (æ­£) # CIRCLED IDEOGRAPH CORRECT -32A4 (上) # CIRCLED IDEOGRAPH HIGH -32A5 (中) # CIRCLED IDEOGRAPH CENTRE -32A6 (下) # CIRCLED IDEOGRAPH LOW -32A7 (å·¦) # CIRCLED IDEOGRAPH LEFT -32A8 (å³) # CIRCLED IDEOGRAPH RIGHT -32A9 (医) # CIRCLED IDEOGRAPH MEDICINE -32AA (å®—) # CIRCLED IDEOGRAPH RELIGION -32AB (å­¦) # CIRCLED IDEOGRAPH STUDY -32AC (監) # CIRCLED IDEOGRAPH SUPERVISE -32AD (ä¼) # CIRCLED IDEOGRAPH ENTERPRISE -32AE (資) # CIRCLED IDEOGRAPH RESOURCE -32AF (å”) # CIRCLED IDEOGRAPH ALLIANCE -32B0 (夜) # CIRCLED IDEOGRAPH NIGHT -32B1 (36) # CIRCLED NUMBER THIRTY SIX -32B2 (37) # CIRCLED NUMBER THIRTY SEVEN -32B3 (38) # CIRCLED NUMBER THIRTY EIGHT -32B4 (39) # CIRCLED NUMBER THIRTY NINE -32B5 (40) # CIRCLED NUMBER FORTY -32B6 (41) # CIRCLED NUMBER FORTY ONE -32B7 (42) # CIRCLED NUMBER FORTY TWO -32B8 (43) # CIRCLED NUMBER FORTY THREE -32B9 (44) # CIRCLED NUMBER FORTY FOUR -32BA (45) # CIRCLED NUMBER FORTY FIVE -32BB (46) # CIRCLED NUMBER FORTY SIX -32BC (47) # CIRCLED NUMBER FORTY SEVEN -32BD (48) # CIRCLED NUMBER FORTY EIGHT -32BE (49) # CIRCLED NUMBER FORTY NINE -32BF (50) # CIRCLED NUMBER FIFTY -32C0 1月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY -32C1 2月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY -32C2 3月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH -32C3 4月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL -32C4 5月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY -32C5 6月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE -32C6 7月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY -32C7 8月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST -32C8 9月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER -32C9 10月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER -32CA 11月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER -32CB 12月 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER -32CC Hg # SQUARE HG -32CD erg # SQUARE ERG -32CE eV # SQUARE EV -32CF LTD # LIMITED LIABILITY SIGN -32D0 (ã‚¢) # CIRCLED KATAKANA A -32D1 (イ) # CIRCLED KATAKANA I -32D2 (ウ) # CIRCLED KATAKANA U -32D3 (エ) # CIRCLED KATAKANA E -32D4 (オ) # CIRCLED KATAKANA O -32D5 (ã‚«) # CIRCLED KATAKANA KA -32D6 (ã‚­) # CIRCLED KATAKANA KI -32D7 (ク) # CIRCLED KATAKANA KU -32D8 (ケ) # CIRCLED KATAKANA KE -32D9 (コ) # CIRCLED KATAKANA KO -32DA (サ) # CIRCLED KATAKANA SA -32DB (ã‚·) # CIRCLED KATAKANA SI -32DC (ス) # CIRCLED KATAKANA SU -32DD (ã‚») # CIRCLED KATAKANA SE -32DE (ソ) # CIRCLED KATAKANA SO -32DF (ã‚¿) # CIRCLED KATAKANA TA -32E0 (ãƒ) # CIRCLED KATAKANA TI -32E1 (ツ) # CIRCLED KATAKANA TU -32E2 (テ) # CIRCLED KATAKANA TE -32E3 (ト) # CIRCLED KATAKANA TO -32E4 (ナ) # CIRCLED KATAKANA NA -32E5 (ニ) # CIRCLED KATAKANA NI -32E6 (ヌ) # CIRCLED KATAKANA NU -32E7 (ãƒ) # CIRCLED KATAKANA NE -32E8 (ノ) # CIRCLED KATAKANA NO -32E9 (ãƒ) # CIRCLED KATAKANA HA -32EA (ヒ) # CIRCLED KATAKANA HI -32EB (フ) # CIRCLED KATAKANA HU -32EC (ヘ) # CIRCLED KATAKANA HE -32ED (ホ) # CIRCLED KATAKANA HO -32EE (マ) # CIRCLED KATAKANA MA -32EF (ミ) # CIRCLED KATAKANA MI -32F0 (ム) # CIRCLED KATAKANA MU -32F1 (メ) # CIRCLED KATAKANA ME -32F2 (モ) # CIRCLED KATAKANA MO -32F3 (ヤ) # CIRCLED KATAKANA YA -32F4 (ユ) # CIRCLED KATAKANA YU -32F5 (ヨ) # CIRCLED KATAKANA YO -32F6 (ラ) # CIRCLED KATAKANA RA -32F7 (リ) # CIRCLED KATAKANA RI -32F8 (ル) # CIRCLED KATAKANA RU -32F9 (レ) # CIRCLED KATAKANA RE -32FA (ロ) # CIRCLED KATAKANA RO -32FB (ワ) # CIRCLED KATAKANA WA -32FC (ヰ) # CIRCLED KATAKANA WI -32FD (ヱ) # CIRCLED KATAKANA WE -32FE (ヲ) # CIRCLED KATAKANA WO -3300 アパート # SQUARE APAATO -3301 アルファ # SQUARE ARUHUA -3302 アンペア # SQUARE ANPEA -3303 アール # SQUARE AARU -3304 イニング # SQUARE ININGU -3305 インム# SQUARE INTI -3306 ウォン # SQUARE UON -3307 エスクード # SQUARE ESUKUUDO -3308 エーカー # SQUARE EEKAA -3309 オンス # SQUARE ONSU -330A オーム # SQUARE OOMU -330B カイリ # SQUARE KAIRI -330C カラット # SQUARE KARATTO -330D カロリー # SQUARE KARORII -330E ガロン # SQUARE GARON -330F ガンマ # SQUARE GANMA -3310 ギガ # SQUARE GIGA -3311 ギニー # SQUARE GINII -3312 キュリー # SQUARE KYURII -3313 ギルダー # SQUARE GIRUDAA -3314 キロ # SQUARE KIRO -3315 キログラム # SQUARE KIROGURAMU -3316 キロメートル # SQUARE KIROMEETORU -3317 キロワット # SQUARE KIROWATTO -3318 グラム # SQUARE GURAMU -3319 グラムトン # SQUARE GURAMUTON -331A クルゼイロ # SQUARE KURUZEIRO -331B クローム# SQUARE KUROONE -331C ケース # SQUARE KEESU -331D コルナ # SQUARE KORUNA -331E コーム# SQUARE KOOPO -331F サイクル # SQUARE SAIKURU -3320 サンãƒãƒ¼ãƒ  # SQUARE SANTIIMU -3321 シリング # SQUARE SIRINGU -3322 センム# SQUARE SENTI -3323 セント # SQUARE SENTO -3324 ダース # SQUARE DAASU -3325 デシ # SQUARE DESI -3326 ドル # SQUARE DORU -3327 トン # SQUARE TON -3328 ナノ # SQUARE NANO -3329 ノット # SQUARE NOTTO -332A ãƒã‚¤ãƒ„ # SQUARE HAITU -332B パーセント # SQUARE PAASENTO -332C パーツ # SQUARE PAATU -332D ãƒãƒ¼ãƒ¬ãƒ« # SQUARE BAARERU -332E ピアストル # SQUARE PIASUTORU -332F ピクル # SQUARE PIKURU -3330 ピコ # SQUARE PIKO -3331 ビル # SQUARE BIRU -3332 ファラッド # SQUARE HUARADDO -3333 フィート # SQUARE HUIITO -3334 ブッシェル # SQUARE BUSSYERU -3335 フラン # SQUARE HURAN -3336 ヘクタール # SQUARE HEKUTAARU -3337 ペソ # SQUARE PESO -3338 ペニヒ # SQUARE PENIHI -3339 ヘルツ # SQUARE HERUTU -333A ペンス # SQUARE PENSU -333B ページ # SQUARE PEEZI -333C ベータ # SQUARE BEETA -333D ãƒã‚¤ãƒ³ãƒˆ # SQUARE POINTO -333E ボルト # SQUARE BORUTO -333F ホン # SQUARE HON -3340 ãƒãƒ³ãƒ‰ # SQUARE PONDO -3341 ホール # SQUARE HOORU -3342 ホーン # SQUARE HOON -3343 マイクロ # SQUARE MAIKURO -3344 マイル # SQUARE MAIRU -3345 マッム# SQUARE MAHHA -3346 マルク # SQUARE MARUKU -3347 マンション # SQUARE MANSYON -3348 ミクロン # SQUARE MIKURON -3349 ミリ # SQUARE MIRI -334A ミリãƒãƒ¼ãƒ« # SQUARE MIRIBAARU -334B メガ # SQUARE MEGA -334C メガトン # SQUARE MEGATON -334D メートル # SQUARE MEETORU -334E ヤード # SQUARE YAADO -334F ヤール # SQUARE YAARU -3350 ユアン # SQUARE YUAN -3351 リットル # SQUARE RITTORU -3352 リラ # SQUARE RIRA -3353 ルピー # SQUARE RUPII -3354 ルーブル # SQUARE RUUBURU -3355 レム # SQUARE REMU -3356 レントゲン # SQUARE RENTOGEN -3357 ワット # SQUARE WATTO -3358 0点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO -3359 1点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE -335A 2点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO -335B 3点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE -335C 4点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR -335D 5点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE -335E 6点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX -335F 7点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN -3360 8点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT -3361 9点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE -3362 10点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN -3363 11点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN -3364 12点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE -3365 13点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN -3366 14点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN -3367 15点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN -3368 16点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN -3369 17点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN -336A 18点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN -336B 19点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN -336C 20点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY -336D 21点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE -336E 22点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO -336F 23点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE -3370 24点 # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR -3371 hPa # SQUARE HPA -3372 da # SQUARE DA -3373 AU # SQUARE AU -3374 bar # SQUARE BAR -3375 oV # SQUARE OV -3376 pc # SQUARE PC -3377 dm # SQUARE DM -3378 dm^2 # SQUARE DM SQUARED -3379 dm^3 # SQUARE DM CUBED -337A IU # SQUARE IU -337B å¹³æˆ # SQUARE ERA NAME HEISEI -337C 昭和 # SQUARE ERA NAME SYOUWA -337D 大正 # SQUARE ERA NAME TAISYOU -337E 明治 # SQUARE ERA NAME MEIZI -337F æ ªå¼ä¼šç¤¾ # SQUARE CORPORATION -3380 pA # SQUARE PA AMPS -3381 nA # SQUARE NA -3382 μA # SQUARE MU A -3383 mA # SQUARE MA -3384 kA # SQUARE KA -3385 KB # SQUARE KB -3386 MB # SQUARE MB -3387 GB # SQUARE GB -3388 cal # SQUARE CAL -3389 kcal # SQUARE KCAL -338A pF # SQUARE PF -338B nF # SQUARE NF -338C μF # SQUARE MU F -338D μg # SQUARE MU G -338E mg # SQUARE MG -338F kg # SQUARE KG -3390 Hz # SQUARE HZ -3391 kHz # SQUARE KHZ -3392 MHz # SQUARE MHZ -3393 GHz # SQUARE GHZ -3394 THz # SQUARE THZ -3395 μl # SQUARE MU L -3396 ml # SQUARE ML -3397 dl # SQUARE DL -3398 kl # SQUARE KL -3399 fm # SQUARE FM -339A nm # SQUARE NM -339B μm # SQUARE MU M -339C mm # SQUARE MM -339D cm # SQUARE CM -339E km # SQUARE KM -339F mm^2 # SQUARE MM SQUARED -33A0 cm^2 # SQUARE CM SQUARED -33A1 m^2 # SQUARE M SQUARED -33A2 km^2 # SQUARE KM SQUARED -33A3 mm^3 # SQUARE MM CUBED -33A4 cm^3 # SQUARE CM CUBED -33A5 m^3 # SQUARE M CUBED -33A6 km^3 # SQUARE KM CUBED -33A7 m/s # SQUARE M OVER S -33A8 m/s^2 # SQUARE M OVER S SQUARED -33A9 Pa # SQUARE PA -33AA kPa # SQUARE KPA -33AB MPa # SQUARE MPA -33AC GPa # SQUARE GPA -33AD rad # SQUARE RAD -33AE rad/s # SQUARE RAD OVER S -33AF rad/s^2 # SQUARE RAD OVER S SQUARED -33B0 ps # SQUARE PS -33B1 ns # SQUARE NS -33B2 μs # SQUARE MU S -33B3 ms # SQUARE MS -33B4 pV # SQUARE PV -33B5 nV # SQUARE NV -33B6 μV # SQUARE MU V -33B7 mV # SQUARE MV -33B8 kV # SQUARE KV -33B9 MV # SQUARE MV MEGA -33BA pW # SQUARE PW -33BB nW # SQUARE NW -33BC μW # SQUARE MU W -33BD mW # SQUARE MW -33BE kW # SQUARE KW -33BF MW # SQUARE MW MEGA -33C0 kΩ # SQUARE K OHM -33C1 MΩ # SQUARE M OHM -33C2 a.m. # SQUARE AM -33C3 Bq # SQUARE BQ -33C4 cc # SQUARE CC -33C5 cd # SQUARE CD -33C6 C/kg # SQUARE C OVER KG -33C7 Co. # SQUARE CO -33C8 dB # SQUARE DB -33C9 Gy # SQUARE GY -33CA ha # SQUARE HA -33CB HP # SQUARE HP -33CC in # SQUARE IN -33CD KK # SQUARE KK -33CE KM # SQUARE KM CAPITAL -33CF kt # SQUARE KT -33D0 lm # SQUARE LM -33D1 ln # SQUARE LN -33D2 log # SQUARE LOG -33D3 lx # SQUARE LX -33D4 mb # SQUARE MB SMALL -33D5 mil # SQUARE MIL -33D6 mol # SQUARE MOL -33D7 PH # SQUARE PH -33D8 p.m. # SQUARE PM -33D9 PPM # SQUARE PPM -33DA PR # SQUARE PR -33DB sr # SQUARE SR -33DC Sv # SQUARE SV -33DD Wb # SQUARE WB -33DE V/m # SQUARE V OVER M -33DF A/m # SQUARE A OVER M -33FF gal # SQUARE GAL -33E0 1æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE -33E1 2æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO -33E2 3æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE -33E3 4æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR -33E4 5æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE -33E5 6æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX -33E6 7æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN -33E7 8æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT -33E8 9æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE -33E9 10æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN -33EA 11æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN -33EB 12æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE -33EC 13æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN -33ED 14æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN -33EE 15æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN -33EF 16æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN -33F0 17æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN -33F1 18æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN -33F2 19æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN -33F3 20æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY -33F4 21æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE -33F5 22æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO -33F6 23æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE -33F7 24æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR -33F8 25æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE -33F9 26æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX -33FA 27æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN -33FB 28æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT -33FC 29æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE -33FD 30æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY -33FE 31æ—¥ # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE -F900 豈 # CJK COMPATIBILITY IDEOGRAPH-F900 -F901 æ›´ # CJK COMPATIBILITY IDEOGRAPH-F901 -F902 車 # CJK COMPATIBILITY IDEOGRAPH-F902 -F903 賈 # CJK COMPATIBILITY IDEOGRAPH-F903 -F904 滑 # CJK COMPATIBILITY IDEOGRAPH-F904 -F905 串 # CJK COMPATIBILITY IDEOGRAPH-F905 -F906 å¥ # CJK COMPATIBILITY IDEOGRAPH-F906 -F907 龜 # CJK COMPATIBILITY IDEOGRAPH-F907 -F908 龜 # CJK COMPATIBILITY IDEOGRAPH-F908 -F909 契 # CJK COMPATIBILITY IDEOGRAPH-F909 -F90A 金 # CJK COMPATIBILITY IDEOGRAPH-F90A -F90B å–‡ # CJK COMPATIBILITY IDEOGRAPH-F90B -F90C 奈 # CJK COMPATIBILITY IDEOGRAPH-F90C -F90D 懶 # CJK COMPATIBILITY IDEOGRAPH-F90D -F90E 癩 # CJK COMPATIBILITY IDEOGRAPH-F90E -F90F ç¾… # CJK COMPATIBILITY IDEOGRAPH-F90F -F910 蘿 # CJK COMPATIBILITY IDEOGRAPH-F910 -F911 螺 # CJK COMPATIBILITY IDEOGRAPH-F911 -F912 裸 # CJK COMPATIBILITY IDEOGRAPH-F912 -F913 é‚ # CJK COMPATIBILITY IDEOGRAPH-F913 -F914 樂 # CJK COMPATIBILITY IDEOGRAPH-F914 -F915 æ´› # CJK COMPATIBILITY IDEOGRAPH-F915 -F916 烙 # CJK COMPATIBILITY IDEOGRAPH-F916 -F917 çž # CJK COMPATIBILITY IDEOGRAPH-F917 -F918 è½ # CJK COMPATIBILITY IDEOGRAPH-F918 -F919 é…ª # CJK COMPATIBILITY IDEOGRAPH-F919 -F91A é§± # CJK COMPATIBILITY IDEOGRAPH-F91A -F91B 亂 # CJK COMPATIBILITY IDEOGRAPH-F91B -F91C åµ # CJK COMPATIBILITY IDEOGRAPH-F91C -F91D 欄 # CJK COMPATIBILITY IDEOGRAPH-F91D -F91E 爛 # CJK COMPATIBILITY IDEOGRAPH-F91E -F91F 蘭 # CJK COMPATIBILITY IDEOGRAPH-F91F -F920 鸞 # CJK COMPATIBILITY IDEOGRAPH-F920 -F921 åµ # CJK COMPATIBILITY IDEOGRAPH-F921 -F922 æ¿« # CJK COMPATIBILITY IDEOGRAPH-F922 -F923 è— # CJK COMPATIBILITY IDEOGRAPH-F923 -F924 襤 # CJK COMPATIBILITY IDEOGRAPH-F924 -F925 拉 # CJK COMPATIBILITY IDEOGRAPH-F925 -F926 臘 # CJK COMPATIBILITY IDEOGRAPH-F926 -F927 è Ÿ # CJK COMPATIBILITY IDEOGRAPH-F927 -F928 廊 # CJK COMPATIBILITY IDEOGRAPH-F928 -F929 朗 # CJK COMPATIBILITY IDEOGRAPH-F929 -F92A 浪 # CJK COMPATIBILITY IDEOGRAPH-F92A -F92B 狼 # CJK COMPATIBILITY IDEOGRAPH-F92B -F92C 郎 # CJK COMPATIBILITY IDEOGRAPH-F92C -F92D 來 # CJK COMPATIBILITY IDEOGRAPH-F92D -F92E 冷 # CJK COMPATIBILITY IDEOGRAPH-F92E -F92F 勞 # CJK COMPATIBILITY IDEOGRAPH-F92F -F930 æ“„ # CJK COMPATIBILITY IDEOGRAPH-F930 -F931 æ«“ # CJK COMPATIBILITY IDEOGRAPH-F931 -F932 çˆ # CJK COMPATIBILITY IDEOGRAPH-F932 -F933 ç›§ # CJK COMPATIBILITY IDEOGRAPH-F933 -F934 è€ # CJK COMPATIBILITY IDEOGRAPH-F934 -F935 蘆 # CJK COMPATIBILITY IDEOGRAPH-F935 -F936 虜 # CJK COMPATIBILITY IDEOGRAPH-F936 -F937 è·¯ # CJK COMPATIBILITY IDEOGRAPH-F937 -F938 露 # CJK COMPATIBILITY IDEOGRAPH-F938 -F939 é­¯ # CJK COMPATIBILITY IDEOGRAPH-F939 -F93A é·º # CJK COMPATIBILITY IDEOGRAPH-F93A -F93B 碌 # CJK COMPATIBILITY IDEOGRAPH-F93B -F93C 祿 # CJK COMPATIBILITY IDEOGRAPH-F93C -F93D ç¶  # CJK COMPATIBILITY IDEOGRAPH-F93D -F93E è‰ # CJK COMPATIBILITY IDEOGRAPH-F93E -F93F 錄 # CJK COMPATIBILITY IDEOGRAPH-F93F -F940 鹿 # CJK COMPATIBILITY IDEOGRAPH-F940 -F941 è«– # CJK COMPATIBILITY IDEOGRAPH-F941 -F942 壟 # CJK COMPATIBILITY IDEOGRAPH-F942 -F943 弄 # CJK COMPATIBILITY IDEOGRAPH-F943 -F944 ç±  # CJK COMPATIBILITY IDEOGRAPH-F944 -F945 è¾ # CJK COMPATIBILITY IDEOGRAPH-F945 -F946 牢 # CJK COMPATIBILITY IDEOGRAPH-F946 -F947 磊 # CJK COMPATIBILITY IDEOGRAPH-F947 -F948 賂 # CJK COMPATIBILITY IDEOGRAPH-F948 -F949 é›· # CJK COMPATIBILITY IDEOGRAPH-F949 -F94A 壘 # CJK COMPATIBILITY IDEOGRAPH-F94A -F94B å±¢ # CJK COMPATIBILITY IDEOGRAPH-F94B -F94C 樓 # CJK COMPATIBILITY IDEOGRAPH-F94C -F94D æ·š # CJK COMPATIBILITY IDEOGRAPH-F94D -F94E æ¼ # CJK COMPATIBILITY IDEOGRAPH-F94E -F94F ç´¯ # CJK COMPATIBILITY IDEOGRAPH-F94F -F950 縷 # CJK COMPATIBILITY IDEOGRAPH-F950 -F951 陋 # CJK COMPATIBILITY IDEOGRAPH-F951 -F952 å‹’ # CJK COMPATIBILITY IDEOGRAPH-F952 -F953 è‚‹ # CJK COMPATIBILITY IDEOGRAPH-F953 -F954 凜 # CJK COMPATIBILITY IDEOGRAPH-F954 -F955 凌 # CJK COMPATIBILITY IDEOGRAPH-F955 -F956 稜 # CJK COMPATIBILITY IDEOGRAPH-F956 -F957 ç¶¾ # CJK COMPATIBILITY IDEOGRAPH-F957 -F958 è± # CJK COMPATIBILITY IDEOGRAPH-F958 -F959 陵 # CJK COMPATIBILITY IDEOGRAPH-F959 -F95A 讀 # CJK COMPATIBILITY IDEOGRAPH-F95A -F95B æ‹ # CJK COMPATIBILITY IDEOGRAPH-F95B -F95C 樂 # CJK COMPATIBILITY IDEOGRAPH-F95C -F95D 諾 # CJK COMPATIBILITY IDEOGRAPH-F95D -F95E 丹 # CJK COMPATIBILITY IDEOGRAPH-F95E -F95F 寧 # CJK COMPATIBILITY IDEOGRAPH-F95F -F960 怒 # CJK COMPATIBILITY IDEOGRAPH-F960 -F961 率 # CJK COMPATIBILITY IDEOGRAPH-F961 -F962 ç•° # CJK COMPATIBILITY IDEOGRAPH-F962 -F963 北 # CJK COMPATIBILITY IDEOGRAPH-F963 -F964 磻 # CJK COMPATIBILITY IDEOGRAPH-F964 -F965 便 # CJK COMPATIBILITY IDEOGRAPH-F965 -F966 復 # CJK COMPATIBILITY IDEOGRAPH-F966 -F967 ä¸ # CJK COMPATIBILITY IDEOGRAPH-F967 -F968 泌 # CJK COMPATIBILITY IDEOGRAPH-F968 -F969 數 # CJK COMPATIBILITY IDEOGRAPH-F969 -F96A ç´¢ # CJK COMPATIBILITY IDEOGRAPH-F96A -F96B åƒ # CJK COMPATIBILITY IDEOGRAPH-F96B -F96C 塞 # CJK COMPATIBILITY IDEOGRAPH-F96C -F96D çœ # CJK COMPATIBILITY IDEOGRAPH-F96D -F96E 葉 # CJK COMPATIBILITY IDEOGRAPH-F96E -F96F 說 # CJK COMPATIBILITY IDEOGRAPH-F96F -F970 殺 # CJK COMPATIBILITY IDEOGRAPH-F970 -F971 è¾° # CJK COMPATIBILITY IDEOGRAPH-F971 -F972 沈 # CJK COMPATIBILITY IDEOGRAPH-F972 -F973 拾 # CJK COMPATIBILITY IDEOGRAPH-F973 -F974 è‹¥ # CJK COMPATIBILITY IDEOGRAPH-F974 -F975 掠 # CJK COMPATIBILITY IDEOGRAPH-F975 -F976 ç•¥ # CJK COMPATIBILITY IDEOGRAPH-F976 -F977 亮 # CJK COMPATIBILITY IDEOGRAPH-F977 -F978 å…© # CJK COMPATIBILITY IDEOGRAPH-F978 -F979 凉 # CJK COMPATIBILITY IDEOGRAPH-F979 -F97A æ¢ # CJK COMPATIBILITY IDEOGRAPH-F97A -F97B ç³§ # CJK COMPATIBILITY IDEOGRAPH-F97B -F97C 良 # CJK COMPATIBILITY IDEOGRAPH-F97C -F97D è«’ # CJK COMPATIBILITY IDEOGRAPH-F97D -F97E é‡ # CJK COMPATIBILITY IDEOGRAPH-F97E -F97F 勵 # CJK COMPATIBILITY IDEOGRAPH-F97F -F980 å‘‚ # CJK COMPATIBILITY IDEOGRAPH-F980 -F981 女 # CJK COMPATIBILITY IDEOGRAPH-F981 -F982 廬 # CJK COMPATIBILITY IDEOGRAPH-F982 -F983 æ—… # CJK COMPATIBILITY IDEOGRAPH-F983 -F984 濾 # CJK COMPATIBILITY IDEOGRAPH-F984 -F985 礪 # CJK COMPATIBILITY IDEOGRAPH-F985 -F986 é–­ # CJK COMPATIBILITY IDEOGRAPH-F986 -F987 驪 # CJK COMPATIBILITY IDEOGRAPH-F987 -F988 麗 # CJK COMPATIBILITY IDEOGRAPH-F988 -F989 黎 # CJK COMPATIBILITY IDEOGRAPH-F989 -F98A 力 # CJK COMPATIBILITY IDEOGRAPH-F98A -F98B 曆 # CJK COMPATIBILITY IDEOGRAPH-F98B -F98C æ­· # CJK COMPATIBILITY IDEOGRAPH-F98C -F98D è½¢ # CJK COMPATIBILITY IDEOGRAPH-F98D -F98E å¹´ # CJK COMPATIBILITY IDEOGRAPH-F98E -F98F æ† # CJK COMPATIBILITY IDEOGRAPH-F98F -F990 戀 # CJK COMPATIBILITY IDEOGRAPH-F990 -F991 æ’š # CJK COMPATIBILITY IDEOGRAPH-F991 -F992 æ¼£ # CJK COMPATIBILITY IDEOGRAPH-F992 -F993 ç…‰ # CJK COMPATIBILITY IDEOGRAPH-F993 -F994 ç’‰ # CJK COMPATIBILITY IDEOGRAPH-F994 -F995 ç§Š # CJK COMPATIBILITY IDEOGRAPH-F995 -F996 ç·´ # CJK COMPATIBILITY IDEOGRAPH-F996 -F997 è¯ # CJK COMPATIBILITY IDEOGRAPH-F997 -F998 輦 # CJK COMPATIBILITY IDEOGRAPH-F998 -F999 è“® # CJK COMPATIBILITY IDEOGRAPH-F999 -F99A 連 # CJK COMPATIBILITY IDEOGRAPH-F99A -F99B éŠ # CJK COMPATIBILITY IDEOGRAPH-F99B -F99C 列 # CJK COMPATIBILITY IDEOGRAPH-F99C -F99D 劣 # CJK COMPATIBILITY IDEOGRAPH-F99D -F99E å’½ # CJK COMPATIBILITY IDEOGRAPH-F99E -F99F 烈 # CJK COMPATIBILITY IDEOGRAPH-F99F -F9A0 裂 # CJK COMPATIBILITY IDEOGRAPH-F9A0 -F9A1 說 # CJK COMPATIBILITY IDEOGRAPH-F9A1 -F9A2 廉 # CJK COMPATIBILITY IDEOGRAPH-F9A2 -F9A3 念 # CJK COMPATIBILITY IDEOGRAPH-F9A3 -F9A4 æ» # CJK COMPATIBILITY IDEOGRAPH-F9A4 -F9A5 æ®® # CJK COMPATIBILITY IDEOGRAPH-F9A5 -F9A6 ç°¾ # CJK COMPATIBILITY IDEOGRAPH-F9A6 -F9A7 çµ # CJK COMPATIBILITY IDEOGRAPH-F9A7 -F9A8 令 # CJK COMPATIBILITY IDEOGRAPH-F9A8 -F9A9 囹 # CJK COMPATIBILITY IDEOGRAPH-F9A9 -F9AA 寧 # CJK COMPATIBILITY IDEOGRAPH-F9AA -F9AB 嶺 # CJK COMPATIBILITY IDEOGRAPH-F9AB -F9AC 怜 # CJK COMPATIBILITY IDEOGRAPH-F9AC -F9AD 玲 # CJK COMPATIBILITY IDEOGRAPH-F9AD -F9AE ç‘© # CJK COMPATIBILITY IDEOGRAPH-F9AE -F9AF 羚 # CJK COMPATIBILITY IDEOGRAPH-F9AF -F9B0 è† # CJK COMPATIBILITY IDEOGRAPH-F9B0 -F9B1 鈴 # CJK COMPATIBILITY IDEOGRAPH-F9B1 -F9B2 é›¶ # CJK COMPATIBILITY IDEOGRAPH-F9B2 -F9B3 éˆ # CJK COMPATIBILITY IDEOGRAPH-F9B3 -F9B4 é ˜ # CJK COMPATIBILITY IDEOGRAPH-F9B4 -F9B5 例 # CJK COMPATIBILITY IDEOGRAPH-F9B5 -F9B6 禮 # CJK COMPATIBILITY IDEOGRAPH-F9B6 -F9B7 醴 # CJK COMPATIBILITY IDEOGRAPH-F9B7 -F9B8 隸 # CJK COMPATIBILITY IDEOGRAPH-F9B8 -F9B9 惡 # CJK COMPATIBILITY IDEOGRAPH-F9B9 -F9BA 了 # CJK COMPATIBILITY IDEOGRAPH-F9BA -F9BB 僚 # CJK COMPATIBILITY IDEOGRAPH-F9BB -F9BC 寮 # CJK COMPATIBILITY IDEOGRAPH-F9BC -F9BD å°¿ # CJK COMPATIBILITY IDEOGRAPH-F9BD -F9BE æ–™ # CJK COMPATIBILITY IDEOGRAPH-F9BE -F9BF 樂 # CJK COMPATIBILITY IDEOGRAPH-F9BF -F9C0 燎 # CJK COMPATIBILITY IDEOGRAPH-F9C0 -F9C1 療 # CJK COMPATIBILITY IDEOGRAPH-F9C1 -F9C2 蓼 # CJK COMPATIBILITY IDEOGRAPH-F9C2 -F9C3 é¼ # CJK COMPATIBILITY IDEOGRAPH-F9C3 -F9C4 é¾ # CJK COMPATIBILITY IDEOGRAPH-F9C4 -F9C5 暈 # CJK COMPATIBILITY IDEOGRAPH-F9C5 -F9C6 阮 # CJK COMPATIBILITY IDEOGRAPH-F9C6 -F9C7 劉 # CJK COMPATIBILITY IDEOGRAPH-F9C7 -F9C8 æ» # CJK COMPATIBILITY IDEOGRAPH-F9C8 -F9C9 柳 # CJK COMPATIBILITY IDEOGRAPH-F9C9 -F9CA æµ # CJK COMPATIBILITY IDEOGRAPH-F9CA -F9CB 溜 # CJK COMPATIBILITY IDEOGRAPH-F9CB -F9CC ç‰ # CJK COMPATIBILITY IDEOGRAPH-F9CC -F9CD ç•™ # CJK COMPATIBILITY IDEOGRAPH-F9CD -F9CE ç¡« # CJK COMPATIBILITY IDEOGRAPH-F9CE -F9CF ç´ # CJK COMPATIBILITY IDEOGRAPH-F9CF -F9D0 類 # CJK COMPATIBILITY IDEOGRAPH-F9D0 -F9D1 å…­ # CJK COMPATIBILITY IDEOGRAPH-F9D1 -F9D2 戮 # CJK COMPATIBILITY IDEOGRAPH-F9D2 -F9D3 陸 # CJK COMPATIBILITY IDEOGRAPH-F9D3 -F9D4 倫 # CJK COMPATIBILITY IDEOGRAPH-F9D4 -F9D5 å´™ # CJK COMPATIBILITY IDEOGRAPH-F9D5 -F9D6 æ·ª # CJK COMPATIBILITY IDEOGRAPH-F9D6 -F9D7 輪 # CJK COMPATIBILITY IDEOGRAPH-F9D7 -F9D8 律 # CJK COMPATIBILITY IDEOGRAPH-F9D8 -F9D9 æ…„ # CJK COMPATIBILITY IDEOGRAPH-F9D9 -F9DA æ — # CJK COMPATIBILITY IDEOGRAPH-F9DA -F9DB 率 # CJK COMPATIBILITY IDEOGRAPH-F9DB -F9DC 隆 # CJK COMPATIBILITY IDEOGRAPH-F9DC -F9DD 利 # CJK COMPATIBILITY IDEOGRAPH-F9DD -F9DE å # CJK COMPATIBILITY IDEOGRAPH-F9DE -F9DF å±¥ # CJK COMPATIBILITY IDEOGRAPH-F9DF -F9E0 易 # CJK COMPATIBILITY IDEOGRAPH-F9E0 -F9E1 æŽ # CJK COMPATIBILITY IDEOGRAPH-F9E1 -F9E2 梨 # CJK COMPATIBILITY IDEOGRAPH-F9E2 -F9E3 æ³¥ # CJK COMPATIBILITY IDEOGRAPH-F9E3 -F9E4 ç† # CJK COMPATIBILITY IDEOGRAPH-F9E4 -F9E5 ç—¢ # CJK COMPATIBILITY IDEOGRAPH-F9E5 -F9E6 ç½¹ # CJK COMPATIBILITY IDEOGRAPH-F9E6 -F9E7 è£ # CJK COMPATIBILITY IDEOGRAPH-F9E7 -F9E8 裡 # CJK COMPATIBILITY IDEOGRAPH-F9E8 -F9E9 里 # CJK COMPATIBILITY IDEOGRAPH-F9E9 -F9EA 離 # CJK COMPATIBILITY IDEOGRAPH-F9EA -F9EB 匿 # CJK COMPATIBILITY IDEOGRAPH-F9EB -F9EC 溺 # CJK COMPATIBILITY IDEOGRAPH-F9EC -F9ED å # CJK COMPATIBILITY IDEOGRAPH-F9ED -F9EE ç‡ # CJK COMPATIBILITY IDEOGRAPH-F9EE -F9EF ç’˜ # CJK COMPATIBILITY IDEOGRAPH-F9EF -F9F0 è—º # CJK COMPATIBILITY IDEOGRAPH-F9F0 -F9F1 隣 # CJK COMPATIBILITY IDEOGRAPH-F9F1 -F9F2 é±— # CJK COMPATIBILITY IDEOGRAPH-F9F2 -F9F3 麟 # CJK COMPATIBILITY IDEOGRAPH-F9F3 -F9F4 æž— # CJK COMPATIBILITY IDEOGRAPH-F9F4 -F9F5 æ·‹ # CJK COMPATIBILITY IDEOGRAPH-F9F5 -F9F6 臨 # CJK COMPATIBILITY IDEOGRAPH-F9F6 -F9F7 ç«‹ # CJK COMPATIBILITY IDEOGRAPH-F9F7 -F9F8 笠 # CJK COMPATIBILITY IDEOGRAPH-F9F8 -F9F9 ç²’ # CJK COMPATIBILITY IDEOGRAPH-F9F9 -F9FA ç‹€ # CJK COMPATIBILITY IDEOGRAPH-F9FA -F9FB ç‚™ # CJK COMPATIBILITY IDEOGRAPH-F9FB -F9FC è­˜ # CJK COMPATIBILITY IDEOGRAPH-F9FC -F9FD 什 # CJK COMPATIBILITY IDEOGRAPH-F9FD -F9FE 茶 # CJK COMPATIBILITY IDEOGRAPH-F9FE -F9FF 刺 # CJK COMPATIBILITY IDEOGRAPH-F9FF -FA00 切 # CJK COMPATIBILITY IDEOGRAPH-FA00 -FA01 度 # CJK COMPATIBILITY IDEOGRAPH-FA01 -FA02 æ‹“ # CJK COMPATIBILITY IDEOGRAPH-FA02 -FA03 ç³– # CJK COMPATIBILITY IDEOGRAPH-FA03 -FA04 å®… # CJK COMPATIBILITY IDEOGRAPH-FA04 -FA05 æ´ž # CJK COMPATIBILITY IDEOGRAPH-FA05 -FA06 æš´ # CJK COMPATIBILITY IDEOGRAPH-FA06 -FA07 è¼» # CJK COMPATIBILITY IDEOGRAPH-FA07 -FA08 行 # CJK COMPATIBILITY IDEOGRAPH-FA08 -FA09 é™ # CJK COMPATIBILITY IDEOGRAPH-FA09 -FA0A 見 # CJK COMPATIBILITY IDEOGRAPH-FA0A -FA0B 廓 # CJK COMPATIBILITY IDEOGRAPH-FA0B -FA0C å…€ # CJK COMPATIBILITY IDEOGRAPH-FA0C -FA0D å—€ # CJK COMPATIBILITY IDEOGRAPH-FA0D -FA10 塚 # CJK COMPATIBILITY IDEOGRAPH-FA10 -FA12 æ™´ # CJK COMPATIBILITY IDEOGRAPH-FA12 -FA15 凞 # CJK COMPATIBILITY IDEOGRAPH-FA15 -FA16 猪 # CJK COMPATIBILITY IDEOGRAPH-FA16 -FA17 益 # CJK COMPATIBILITY IDEOGRAPH-FA17 -FA18 礼 # CJK COMPATIBILITY IDEOGRAPH-FA18 -FA19 神 # CJK COMPATIBILITY IDEOGRAPH-FA19 -FA1A 祥 # CJK COMPATIBILITY IDEOGRAPH-FA1A -FA1B ç¦ # CJK COMPATIBILITY IDEOGRAPH-FA1B -FA1C é– # CJK COMPATIBILITY IDEOGRAPH-FA1C -FA1D ç²¾ # CJK COMPATIBILITY IDEOGRAPH-FA1D -FA1E ç¾½ # CJK COMPATIBILITY IDEOGRAPH-FA1E -FA20 蘒 # CJK COMPATIBILITY IDEOGRAPH-FA20 -FA22 諸 # CJK COMPATIBILITY IDEOGRAPH-FA22 -FA25 逸 # CJK COMPATIBILITY IDEOGRAPH-FA25 -FA26 都 # CJK COMPATIBILITY IDEOGRAPH-FA26 -FA2A 飯 # CJK COMPATIBILITY IDEOGRAPH-FA2A -FA2B 飼 # CJK COMPATIBILITY IDEOGRAPH-FA2B -FA2C 館 # CJK COMPATIBILITY IDEOGRAPH-FA2C -FA2D é¶´ # CJK COMPATIBILITY IDEOGRAPH-FA2D -FA30 ä¾® # CJK COMPATIBILITY IDEOGRAPH-FA30 -FA31 僧 # CJK COMPATIBILITY IDEOGRAPH-FA31 -FA32 å… # CJK COMPATIBILITY IDEOGRAPH-FA32 -FA33 勉 # CJK COMPATIBILITY IDEOGRAPH-FA33 -FA34 勤 # CJK COMPATIBILITY IDEOGRAPH-FA34 -FA35 å‘ # CJK COMPATIBILITY IDEOGRAPH-FA35 -FA36 å– # CJK COMPATIBILITY IDEOGRAPH-FA36 -FA37 嘆 # CJK COMPATIBILITY IDEOGRAPH-FA37 -FA38 器 # CJK COMPATIBILITY IDEOGRAPH-FA38 -FA39 å¡€ # CJK COMPATIBILITY IDEOGRAPH-FA39 -FA3A 墨 # CJK COMPATIBILITY IDEOGRAPH-FA3A -FA3B 層 # CJK COMPATIBILITY IDEOGRAPH-FA3B -FA3C å±® # CJK COMPATIBILITY IDEOGRAPH-FA3C -FA3D æ‚” # CJK COMPATIBILITY IDEOGRAPH-FA3D -FA3E æ…¨ # CJK COMPATIBILITY IDEOGRAPH-FA3E -FA3F 憎 # CJK COMPATIBILITY IDEOGRAPH-FA3F -FA40 懲 # CJK COMPATIBILITY IDEOGRAPH-FA40 -FA41 æ• # CJK COMPATIBILITY IDEOGRAPH-FA41 -FA42 æ—¢ # CJK COMPATIBILITY IDEOGRAPH-FA42 -FA43 æš‘ # CJK COMPATIBILITY IDEOGRAPH-FA43 -FA44 梅 # CJK COMPATIBILITY IDEOGRAPH-FA44 -FA45 æµ· # CJK COMPATIBILITY IDEOGRAPH-FA45 -FA46 渚 # CJK COMPATIBILITY IDEOGRAPH-FA46 -FA47 æ¼¢ # CJK COMPATIBILITY IDEOGRAPH-FA47 -FA48 ç…® # CJK COMPATIBILITY IDEOGRAPH-FA48 -FA49 爫 # CJK COMPATIBILITY IDEOGRAPH-FA49 -FA4A ç¢ # CJK COMPATIBILITY IDEOGRAPH-FA4A -FA4B 碑 # CJK COMPATIBILITY IDEOGRAPH-FA4B -FA4C 社 # CJK COMPATIBILITY IDEOGRAPH-FA4C -FA4D 祉 # CJK COMPATIBILITY IDEOGRAPH-FA4D -FA4E 祈 # CJK COMPATIBILITY IDEOGRAPH-FA4E -FA4F ç¥ # CJK COMPATIBILITY IDEOGRAPH-FA4F -FA50 祖 # CJK COMPATIBILITY IDEOGRAPH-FA50 -FA51 ç¥ # CJK COMPATIBILITY IDEOGRAPH-FA51 -FA52 ç¦ # CJK COMPATIBILITY IDEOGRAPH-FA52 -FA53 禎 # CJK COMPATIBILITY IDEOGRAPH-FA53 -FA54 ç©€ # CJK COMPATIBILITY IDEOGRAPH-FA54 -FA55 çª # CJK COMPATIBILITY IDEOGRAPH-FA55 -FA56 節 # CJK COMPATIBILITY IDEOGRAPH-FA56 -FA57 ç·´ # CJK COMPATIBILITY IDEOGRAPH-FA57 -FA58 縉 # CJK COMPATIBILITY IDEOGRAPH-FA58 -FA59 ç¹ # CJK COMPATIBILITY IDEOGRAPH-FA59 -FA5A ç½² # CJK COMPATIBILITY IDEOGRAPH-FA5A -FA5B 者 # CJK COMPATIBILITY IDEOGRAPH-FA5B -FA5C 臭 # CJK COMPATIBILITY IDEOGRAPH-FA5C -FA5D 艹 # CJK COMPATIBILITY IDEOGRAPH-FA5D -FA5E 艹 # CJK COMPATIBILITY IDEOGRAPH-FA5E -FA5F è‘— # CJK COMPATIBILITY IDEOGRAPH-FA5F -FA60 è¤ # CJK COMPATIBILITY IDEOGRAPH-FA60 -FA61 視 # CJK COMPATIBILITY IDEOGRAPH-FA61 -FA62 è¬ # CJK COMPATIBILITY IDEOGRAPH-FA62 -FA63 謹 # CJK COMPATIBILITY IDEOGRAPH-FA63 -FA64 賓 # CJK COMPATIBILITY IDEOGRAPH-FA64 -FA65 è´ˆ # CJK COMPATIBILITY IDEOGRAPH-FA65 -FA66 è¾¶ # CJK COMPATIBILITY IDEOGRAPH-FA66 -FA67 逸 # CJK COMPATIBILITY IDEOGRAPH-FA67 -FA68 難 # CJK COMPATIBILITY IDEOGRAPH-FA68 -FA69 響 # CJK COMPATIBILITY IDEOGRAPH-FA69 -FA6A é » # CJK COMPATIBILITY IDEOGRAPH-FA6A -FB00 ff # LATIN SMALL LIGATURE FF -FB01 fi # LATIN SMALL LIGATURE FI -FB02 fl # LATIN SMALL LIGATURE FL -FB03 ffi # LATIN SMALL LIGATURE FFI -FB04 ffl # LATIN SMALL LIGATURE FFL -FB05 Å¿t # LATIN SMALL LIGATURE LONG S T -FB06 st # LATIN SMALL LIGATURE ST -FB13 Õ´Õ¶ # ARMENIAN SMALL LIGATURE MEN NOW -FB14 Õ´Õ¥ # ARMENIAN SMALL LIGATURE MEN ECH -FB15 Õ´Õ« # ARMENIAN SMALL LIGATURE MEN INI -FB16 Õ¾Õ¶ # ARMENIAN SMALL LIGATURE VEW NOW -FB17 Õ´Õ­ # ARMENIAN SMALL LIGATURE MEN XEH -FB20 ×¢ # HEBREW LETTER ALTERNATIVE AYIN -FB21 × # HEBREW LETTER WIDE ALEF -FB22 ד # HEBREW LETTER WIDE DALET -FB23 ×” # HEBREW LETTER WIDE HE -FB24 ×› # HEBREW LETTER WIDE KAF -FB25 ל # HEBREW LETTER WIDE LAMED -FB26 × # HEBREW LETTER WIDE FINAL MEM -FB27 ר # HEBREW LETTER WIDE RESH -FB28 ת # HEBREW LETTER WIDE TAV -FB29 + # HEBREW LETTER ALTERNATIVE PLUS SIGN -FB4F ×ל # HEBREW LIGATURE ALEF LAMED -FE49 ‾ # DASHED OVERLINE -FE4A ‾ # CENTRELINE OVERLINE -FE4B ‾ # WAVY OVERLINE -FE4C ‾ # DOUBLE WAVY OVERLINE -FE4D _ # DASHED LOW LINE -FE4E _ # CENTRELINE LOW LINE -FE4F _ # WAVY LOW LINE -FE50 , # SMALL COMMA -FE51 〠# SMALL IDEOGRAPHIC COMMA -FE52 . # SMALL FULL STOP -FE54 ; # SMALL SEMICOLON -FE55 : # SMALL COLON -FE56 ? # SMALL QUESTION MARK -FE57 ! # SMALL EXCLAMATION MARK -FE58 — # SMALL EM DASH -FE59 ( # SMALL LEFT PARENTHESIS -FE5A ) # SMALL RIGHT PARENTHESIS -FE5B { # SMALL LEFT CURLY BRACKET -FE5C } # SMALL RIGHT CURLY BRACKET -FE5D 〔 # SMALL LEFT TORTOISE SHELL BRACKET -FE5E 〕 # SMALL RIGHT TORTOISE SHELL BRACKET -FE5F # # SMALL NUMBER SIGN -FE60 & # SMALL AMPERSAND -FE61 * # SMALL ASTERISK -FE62 + # SMALL PLUS SIGN -FE63 - # SMALL HYPHEN-MINUS -FE64 < # SMALL LESS-THAN SIGN -FE65 > # SMALL GREATER-THAN SIGN -FE66 = # SMALL EQUALS SIGN -FE68 \ # SMALL REVERSE SOLIDUS -FE69 $ # SMALL DOLLAR SIGN -FE6A % # SMALL PERCENT SIGN -FE6B @ # SMALL COMMERCIAL AT -FF01 ! # FULLWIDTH EXCLAMATION MARK -FF02 " # FULLWIDTH QUOTATION MARK -FF03 # # FULLWIDTH NUMBER SIGN -FF04 $ # FULLWIDTH DOLLAR SIGN -FF05 % # FULLWIDTH PERCENT SIGN -FF06 & # FULLWIDTH AMPERSAND -FF07 ' # FULLWIDTH APOSTROPHE -FF08 ( # FULLWIDTH LEFT PARENTHESIS -FF09 ) # FULLWIDTH RIGHT PARENTHESIS -FF0A * # FULLWIDTH ASTERISK -FF0B + # FULLWIDTH PLUS SIGN -FF0C , # FULLWIDTH COMMA -FF0D - # FULLWIDTH HYPHEN-MINUS -FF0E . # FULLWIDTH FULL STOP -FF0F / # FULLWIDTH SOLIDUS -FF10 0 # FULLWIDTH DIGIT ZERO -FF11 1 # FULLWIDTH DIGIT ONE -FF12 2 # FULLWIDTH DIGIT TWO -FF13 3 # FULLWIDTH DIGIT THREE -FF14 4 # FULLWIDTH DIGIT FOUR -FF15 5 # FULLWIDTH DIGIT FIVE -FF16 6 # FULLWIDTH DIGIT SIX -FF17 7 # FULLWIDTH DIGIT SEVEN -FF18 8 # FULLWIDTH DIGIT EIGHT -FF19 9 # FULLWIDTH DIGIT NINE -FF1A : # FULLWIDTH COLON -FF1B ; # FULLWIDTH SEMICOLON -FF1C < # FULLWIDTH LESS-THAN SIGN -FF1D = # FULLWIDTH EQUALS SIGN -FF1E > # FULLWIDTH GREATER-THAN SIGN -FF1F ? # FULLWIDTH QUESTION MARK -FF20 @ # FULLWIDTH COMMERCIAL AT -FF21 A # FULLWIDTH LATIN CAPITAL LETTER A -FF22 B # FULLWIDTH LATIN CAPITAL LETTER B -FF23 C # FULLWIDTH LATIN CAPITAL LETTER C -FF24 D # FULLWIDTH LATIN CAPITAL LETTER D -FF25 E # FULLWIDTH LATIN CAPITAL LETTER E -FF26 F # FULLWIDTH LATIN CAPITAL LETTER F -FF27 G # FULLWIDTH LATIN CAPITAL LETTER G -FF28 H # FULLWIDTH LATIN CAPITAL LETTER H -FF29 I # FULLWIDTH LATIN CAPITAL LETTER I -FF2A J # FULLWIDTH LATIN CAPITAL LETTER J -FF2B K # FULLWIDTH LATIN CAPITAL LETTER K -FF2C L # FULLWIDTH LATIN CAPITAL LETTER L -FF2D M # FULLWIDTH LATIN CAPITAL LETTER M -FF2E N # FULLWIDTH LATIN CAPITAL LETTER N -FF2F O # FULLWIDTH LATIN CAPITAL LETTER O -FF30 P # FULLWIDTH LATIN CAPITAL LETTER P -FF31 Q # FULLWIDTH LATIN CAPITAL LETTER Q -FF32 R # FULLWIDTH LATIN CAPITAL LETTER R -FF33 S # FULLWIDTH LATIN CAPITAL LETTER S -FF34 T # FULLWIDTH LATIN CAPITAL LETTER T -FF35 U # FULLWIDTH LATIN CAPITAL LETTER U -FF36 V # FULLWIDTH LATIN CAPITAL LETTER V -FF37 W # FULLWIDTH LATIN CAPITAL LETTER W -FF38 X # FULLWIDTH LATIN CAPITAL LETTER X -FF39 Y # FULLWIDTH LATIN CAPITAL LETTER Y -FF3A Z # FULLWIDTH LATIN CAPITAL LETTER Z -FF3B [ # FULLWIDTH LEFT SQUARE BRACKET -FF3C \ # FULLWIDTH REVERSE SOLIDUS -FF3D ] # FULLWIDTH RIGHT SQUARE BRACKET -FF3E ^ # FULLWIDTH CIRCUMFLEX ACCENT -FF3F _ # FULLWIDTH LOW LINE -FF40 ` # FULLWIDTH GRAVE ACCENT -FF41 a # FULLWIDTH LATIN SMALL LETTER A -FF42 b # FULLWIDTH LATIN SMALL LETTER B -FF43 c # FULLWIDTH LATIN SMALL LETTER C -FF44 d # FULLWIDTH LATIN SMALL LETTER D -FF45 e # FULLWIDTH LATIN SMALL LETTER E -FF46 f # FULLWIDTH LATIN SMALL LETTER F -FF47 g # FULLWIDTH LATIN SMALL LETTER G -FF48 h # FULLWIDTH LATIN SMALL LETTER H -FF49 i # FULLWIDTH LATIN SMALL LETTER I -FF4A j # FULLWIDTH LATIN SMALL LETTER J -FF4B k # FULLWIDTH LATIN SMALL LETTER K -FF4C l # FULLWIDTH LATIN SMALL LETTER L -FF4D m # FULLWIDTH LATIN SMALL LETTER M -FF4E n # FULLWIDTH LATIN SMALL LETTER N -FF4F o # FULLWIDTH LATIN SMALL LETTER O -FF50 p # FULLWIDTH LATIN SMALL LETTER P -FF51 q # FULLWIDTH LATIN SMALL LETTER Q -FF52 r # FULLWIDTH LATIN SMALL LETTER R -FF53 s # FULLWIDTH LATIN SMALL LETTER S -FF54 t # FULLWIDTH LATIN SMALL LETTER T -FF55 u # FULLWIDTH LATIN SMALL LETTER U -FF56 v # FULLWIDTH LATIN SMALL LETTER V -FF57 w # FULLWIDTH LATIN SMALL LETTER W -FF58 x # FULLWIDTH LATIN SMALL LETTER X -FF59 y # FULLWIDTH LATIN SMALL LETTER Y -FF5A z # FULLWIDTH LATIN SMALL LETTER Z -FF5B { # FULLWIDTH LEFT CURLY BRACKET -FF5C | # FULLWIDTH VERTICAL LINE -FF5D } # FULLWIDTH RIGHT CURLY BRACKET -FF5E ~ # FULLWIDTH TILDE -FF5F ⦅ # FULLWIDTH LEFT WHITE PARENTHESIS -FF60 ⦆ # FULLWIDTH RIGHT WHITE PARENTHESIS -FF61 。 # HALFWIDTH IDEOGRAPHIC FULL STOP -FF62 「 # HALFWIDTH LEFT CORNER BRACKET -FF63 〠# HALFWIDTH RIGHT CORNER BRACKET -FF64 〠# HALFWIDTH IDEOGRAPHIC COMMA -FF65 ・ # HALFWIDTH KATAKANA MIDDLE DOT -FF66 ヲ # HALFWIDTH KATAKANA LETTER WO -FF67 ã‚¡ # HALFWIDTH KATAKANA LETTER SMALL A -FF68 ã‚£ # HALFWIDTH KATAKANA LETTER SMALL I -FF69 ã‚¥ # HALFWIDTH KATAKANA LETTER SMALL U -FF6A ã‚§ # HALFWIDTH KATAKANA LETTER SMALL E -FF6B ã‚© # HALFWIDTH KATAKANA LETTER SMALL O -FF6C ャ # HALFWIDTH KATAKANA LETTER SMALL YA -FF6D ュ # HALFWIDTH KATAKANA LETTER SMALL YU -FF6E ョ # HALFWIDTH KATAKANA LETTER SMALL YO -FF6F ッ # HALFWIDTH KATAKANA LETTER SMALL TU -FF70 ー # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK -FF71 ã‚¢ # HALFWIDTH KATAKANA LETTER A -FF72 イ # HALFWIDTH KATAKANA LETTER I -FF73 ウ # HALFWIDTH KATAKANA LETTER U -FF74 エ # HALFWIDTH KATAKANA LETTER E -FF75 オ # HALFWIDTH KATAKANA LETTER O -FF76 ã‚« # HALFWIDTH KATAKANA LETTER KA -FF77 ã‚­ # HALFWIDTH KATAKANA LETTER KI -FF78 ク # HALFWIDTH KATAKANA LETTER KU -FF79 ケ # HALFWIDTH KATAKANA LETTER KE -FF7A コ # HALFWIDTH KATAKANA LETTER KO -FF7B サ # HALFWIDTH KATAKANA LETTER SA -FF7C ã‚· # HALFWIDTH KATAKANA LETTER SI -FF7D ス # HALFWIDTH KATAKANA LETTER SU -FF7E ã‚» # HALFWIDTH KATAKANA LETTER SE -FF7F ソ # HALFWIDTH KATAKANA LETTER SO -FF80 ã‚¿ # HALFWIDTH KATAKANA LETTER TA -FF81 ム# HALFWIDTH KATAKANA LETTER TI -FF82 ツ # HALFWIDTH KATAKANA LETTER TU -FF83 テ # HALFWIDTH KATAKANA LETTER TE -FF84 ト # HALFWIDTH KATAKANA LETTER TO -FF85 ナ # HALFWIDTH KATAKANA LETTER NA -FF86 ニ # HALFWIDTH KATAKANA LETTER NI -FF87 ヌ # HALFWIDTH KATAKANA LETTER NU -FF88 ム# HALFWIDTH KATAKANA LETTER NE -FF89 ノ # HALFWIDTH KATAKANA LETTER NO -FF8A ム# HALFWIDTH KATAKANA LETTER HA -FF8B ヒ # HALFWIDTH KATAKANA LETTER HI -FF8C フ # HALFWIDTH KATAKANA LETTER HU -FF8D ヘ # HALFWIDTH KATAKANA LETTER HE -FF8E ホ # HALFWIDTH KATAKANA LETTER HO -FF8F マ # HALFWIDTH KATAKANA LETTER MA -FF90 ミ # HALFWIDTH KATAKANA LETTER MI -FF91 ム # HALFWIDTH KATAKANA LETTER MU -FF92 メ # HALFWIDTH KATAKANA LETTER ME -FF93 モ # HALFWIDTH KATAKANA LETTER MO -FF94 ヤ # HALFWIDTH KATAKANA LETTER YA -FF95 ユ # HALFWIDTH KATAKANA LETTER YU -FF96 ヨ # HALFWIDTH KATAKANA LETTER YO -FF97 ラ # HALFWIDTH KATAKANA LETTER RA -FF98 リ # HALFWIDTH KATAKANA LETTER RI -FF99 ル # HALFWIDTH KATAKANA LETTER RU -FF9A レ # HALFWIDTH KATAKANA LETTER RE -FF9B ロ # HALFWIDTH KATAKANA LETTER RO -FF9C ワ # HALFWIDTH KATAKANA LETTER WA -FF9D ン # HALFWIDTH KATAKANA LETTER N -FF9E ã‚™ # HALFWIDTH KATAKANA VOICED SOUND MARK -FF9F ゚ # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK -FFA0 ã…¤ # HALFWIDTH HANGUL FILLER -FFA1 ㄱ # HALFWIDTH HANGUL LETTER KIYEOK -FFA2 ㄲ # HALFWIDTH HANGUL LETTER SSANGKIYEOK -FFA3 ㄳ # HALFWIDTH HANGUL LETTER KIYEOK-SIOS -FFA4 ã„´ # HALFWIDTH HANGUL LETTER NIEUN -FFA5 ㄵ # HALFWIDTH HANGUL LETTER NIEUN-CIEUC -FFA6 ã„¶ # HALFWIDTH HANGUL LETTER NIEUN-HIEUH -FFA7 ã„· # HALFWIDTH HANGUL LETTER TIKEUT -FFA8 ㄸ # HALFWIDTH HANGUL LETTER SSANGTIKEUT -FFA9 ㄹ # HALFWIDTH HANGUL LETTER RIEUL -FFAA ㄺ # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK -FFAB ã„» # HALFWIDTH HANGUL LETTER RIEUL-MIEUM -FFAC ㄼ # HALFWIDTH HANGUL LETTER RIEUL-PIEUP -FFAD ㄽ # HALFWIDTH HANGUL LETTER RIEUL-SIOS -FFAE ㄾ # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH -FFAF ã„¿ # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH -FFB0 ã…€ # HALFWIDTH HANGUL LETTER RIEUL-HIEUH -FFB1 ã… # HALFWIDTH HANGUL LETTER MIEUM -FFB2 ã…‚ # HALFWIDTH HANGUL LETTER PIEUP -FFB3 ã…ƒ # HALFWIDTH HANGUL LETTER SSANGPIEUP -FFB4 ã…„ # HALFWIDTH HANGUL LETTER PIEUP-SIOS -FFB5 ã…… # HALFWIDTH HANGUL LETTER SIOS -FFB6 ã…† # HALFWIDTH HANGUL LETTER SSANGSIOS -FFB7 ã…‡ # HALFWIDTH HANGUL LETTER IEUNG -FFB8 ã…ˆ # HALFWIDTH HANGUL LETTER CIEUC -FFB9 ã…‰ # HALFWIDTH HANGUL LETTER SSANGCIEUC -FFBA ã…Š # HALFWIDTH HANGUL LETTER CHIEUCH -FFBB ã…‹ # HALFWIDTH HANGUL LETTER KHIEUKH -FFBC ã…Œ # HALFWIDTH HANGUL LETTER THIEUTH -FFBD ã… # HALFWIDTH HANGUL LETTER PHIEUPH -FFBE ã…Ž # HALFWIDTH HANGUL LETTER HIEUH -FFC2 ã… # HALFWIDTH HANGUL LETTER A -FFC3 ã… # HALFWIDTH HANGUL LETTER AE -FFC4 ã…‘ # HALFWIDTH HANGUL LETTER YA -FFC5 ã…’ # HALFWIDTH HANGUL LETTER YAE -FFC6 ã…“ # HALFWIDTH HANGUL LETTER EO -FFC7 ã…” # HALFWIDTH HANGUL LETTER E -FFCA ã…• # HALFWIDTH HANGUL LETTER YEO -FFCB ã…– # HALFWIDTH HANGUL LETTER YE -FFCC ã…— # HALFWIDTH HANGUL LETTER O -FFCD ã…˜ # HALFWIDTH HANGUL LETTER WA -FFCE ã…™ # HALFWIDTH HANGUL LETTER WAE -FFCF ã…š # HALFWIDTH HANGUL LETTER OE -FFD2 ã…› # HALFWIDTH HANGUL LETTER YO -FFD3 ã…œ # HALFWIDTH HANGUL LETTER U -FFD4 ã… # HALFWIDTH HANGUL LETTER WEO -FFD5 ã…ž # HALFWIDTH HANGUL LETTER WE -FFD6 ã…Ÿ # HALFWIDTH HANGUL LETTER WI -FFD7 ã…  # HALFWIDTH HANGUL LETTER YU -FFDA ã…¡ # HALFWIDTH HANGUL LETTER EU -FFDB ã…¢ # HALFWIDTH HANGUL LETTER YI -FFDC ã…£ # HALFWIDTH HANGUL LETTER I -FFE0 ¢ # FULLWIDTH CENT SIGN -FFE1 £ # FULLWIDTH POUND SIGN -FFE2 ¬ # FULLWIDTH NOT SIGN -FFE3 ¯ # FULLWIDTH MACRON -FFE4 ¦ # FULLWIDTH BROKEN BAR -FFE5 Â¥ # FULLWIDTH YEN SIGN -FFE6 â‚© # FULLWIDTH WON SIGN -FFE8 │ # HALFWIDTH FORMS LIGHT VERTICAL -FFE9 ↠# HALFWIDTH LEFTWARDS ARROW -FFEA ↑ # HALFWIDTH UPWARDS ARROW -FFEB → # HALFWIDTH RIGHTWARDS ARROW -FFEC ↓ # HALFWIDTH DOWNWARDS ARROW -FFED â–  # HALFWIDTH BLACK SQUARE -FFEE â—‹ # HALFWIDTH WHITE CIRCLE -1D400 A # MATHEMATICAL BOLD CAPITAL A -1D401 B # MATHEMATICAL BOLD CAPITAL B -1D402 C # MATHEMATICAL BOLD CAPITAL C -1D403 D # MATHEMATICAL BOLD CAPITAL D -1D404 E # MATHEMATICAL BOLD CAPITAL E -1D405 F # MATHEMATICAL BOLD CAPITAL F -1D406 G # MATHEMATICAL BOLD CAPITAL G -1D407 H # MATHEMATICAL BOLD CAPITAL H -1D408 I # MATHEMATICAL BOLD CAPITAL I -1D409 J # MATHEMATICAL BOLD CAPITAL J -1D40A K # MATHEMATICAL BOLD CAPITAL K -1D40B L # MATHEMATICAL BOLD CAPITAL L -1D40C M # MATHEMATICAL BOLD CAPITAL M -1D40D N # MATHEMATICAL BOLD CAPITAL N -1D40E O # MATHEMATICAL BOLD CAPITAL O -1D40F P # MATHEMATICAL BOLD CAPITAL P -1D410 Q # MATHEMATICAL BOLD CAPITAL Q -1D411 R # MATHEMATICAL BOLD CAPITAL R -1D412 S # MATHEMATICAL BOLD CAPITAL S -1D413 T # MATHEMATICAL BOLD CAPITAL T -1D414 U # MATHEMATICAL BOLD CAPITAL U -1D415 V # MATHEMATICAL BOLD CAPITAL V -1D416 W # MATHEMATICAL BOLD CAPITAL W -1D417 X # MATHEMATICAL BOLD CAPITAL X -1D418 Y # MATHEMATICAL BOLD CAPITAL Y -1D419 Z # MATHEMATICAL BOLD CAPITAL Z -1D41A a # MATHEMATICAL BOLD SMALL A -1D41B b # MATHEMATICAL BOLD SMALL B -1D41C c # MATHEMATICAL BOLD SMALL C -1D41D d # MATHEMATICAL BOLD SMALL D -1D41E e # MATHEMATICAL BOLD SMALL E -1D41F f # MATHEMATICAL BOLD SMALL F -1D420 g # MATHEMATICAL BOLD SMALL G -1D421 h # MATHEMATICAL BOLD SMALL H -1D422 i # MATHEMATICAL BOLD SMALL I -1D423 j # MATHEMATICAL BOLD SMALL J -1D424 k # MATHEMATICAL BOLD SMALL K -1D425 l # MATHEMATICAL BOLD SMALL L -1D426 m # MATHEMATICAL BOLD SMALL M -1D427 n # MATHEMATICAL BOLD SMALL N -1D428 o # MATHEMATICAL BOLD SMALL O -1D429 p # MATHEMATICAL BOLD SMALL P -1D42A q # MATHEMATICAL BOLD SMALL Q -1D42B r # MATHEMATICAL BOLD SMALL R -1D42C s # MATHEMATICAL BOLD SMALL S -1D42D t # MATHEMATICAL BOLD SMALL T -1D42E u # MATHEMATICAL BOLD SMALL U -1D42F v # MATHEMATICAL BOLD SMALL V -1D430 w # MATHEMATICAL BOLD SMALL W -1D431 x # MATHEMATICAL BOLD SMALL X -1D432 y # MATHEMATICAL BOLD SMALL Y -1D433 z # MATHEMATICAL BOLD SMALL Z -1D434 A # MATHEMATICAL ITALIC CAPITAL A -1D435 B # MATHEMATICAL ITALIC CAPITAL B -1D436 C # MATHEMATICAL ITALIC CAPITAL C -1D437 D # MATHEMATICAL ITALIC CAPITAL D -1D438 E # MATHEMATICAL ITALIC CAPITAL E -1D439 F # MATHEMATICAL ITALIC CAPITAL F -1D43A G # MATHEMATICAL ITALIC CAPITAL G -1D43B H # MATHEMATICAL ITALIC CAPITAL H -1D43C I # MATHEMATICAL ITALIC CAPITAL I -1D43D J # MATHEMATICAL ITALIC CAPITAL J -1D43E K # MATHEMATICAL ITALIC CAPITAL K -1D43F L # MATHEMATICAL ITALIC CAPITAL L -1D440 M # MATHEMATICAL ITALIC CAPITAL M -1D441 N # MATHEMATICAL ITALIC CAPITAL N -1D442 O # MATHEMATICAL ITALIC CAPITAL O -1D443 P # MATHEMATICAL ITALIC CAPITAL P -1D444 Q # MATHEMATICAL ITALIC CAPITAL Q -1D445 R # MATHEMATICAL ITALIC CAPITAL R -1D446 S # MATHEMATICAL ITALIC CAPITAL S -1D447 T # MATHEMATICAL ITALIC CAPITAL T -1D448 U # MATHEMATICAL ITALIC CAPITAL U -1D449 V # MATHEMATICAL ITALIC CAPITAL V -1D44A W # MATHEMATICAL ITALIC CAPITAL W -1D44B X # MATHEMATICAL ITALIC CAPITAL X -1D44C Y # MATHEMATICAL ITALIC CAPITAL Y -1D44D Z # MATHEMATICAL ITALIC CAPITAL Z -1D44E a # MATHEMATICAL ITALIC SMALL A -1D44F b # MATHEMATICAL ITALIC SMALL B -1D450 c # MATHEMATICAL ITALIC SMALL C -1D451 d # MATHEMATICAL ITALIC SMALL D -1D452 e # MATHEMATICAL ITALIC SMALL E -1D453 f # MATHEMATICAL ITALIC SMALL F -1D454 g # MATHEMATICAL ITALIC SMALL G -1D456 i # MATHEMATICAL ITALIC SMALL I -1D457 j # MATHEMATICAL ITALIC SMALL J -1D458 k # MATHEMATICAL ITALIC SMALL K -1D459 l # MATHEMATICAL ITALIC SMALL L -1D45A m # MATHEMATICAL ITALIC SMALL M -1D45B n # MATHEMATICAL ITALIC SMALL N -1D45C o # MATHEMATICAL ITALIC SMALL O -1D45D p # MATHEMATICAL ITALIC SMALL P -1D45E q # MATHEMATICAL ITALIC SMALL Q -1D45F r # MATHEMATICAL ITALIC SMALL R -1D460 s # MATHEMATICAL ITALIC SMALL S -1D461 t # MATHEMATICAL ITALIC SMALL T -1D462 u # MATHEMATICAL ITALIC SMALL U -1D463 v # MATHEMATICAL ITALIC SMALL V -1D464 w # MATHEMATICAL ITALIC SMALL W -1D465 x # MATHEMATICAL ITALIC SMALL X -1D466 y # MATHEMATICAL ITALIC SMALL Y -1D467 z # MATHEMATICAL ITALIC SMALL Z -1D468 A # MATHEMATICAL BOLD ITALIC CAPITAL A -1D469 B # MATHEMATICAL BOLD ITALIC CAPITAL B -1D46A C # MATHEMATICAL BOLD ITALIC CAPITAL C -1D46B D # MATHEMATICAL BOLD ITALIC CAPITAL D -1D46C E # MATHEMATICAL BOLD ITALIC CAPITAL E -1D46D F # MATHEMATICAL BOLD ITALIC CAPITAL F -1D46E G # MATHEMATICAL BOLD ITALIC CAPITAL G -1D46F H # MATHEMATICAL BOLD ITALIC CAPITAL H -1D470 I # MATHEMATICAL BOLD ITALIC CAPITAL I -1D471 J # MATHEMATICAL BOLD ITALIC CAPITAL J -1D472 K # MATHEMATICAL BOLD ITALIC CAPITAL K -1D473 L # MATHEMATICAL BOLD ITALIC CAPITAL L -1D474 M # MATHEMATICAL BOLD ITALIC CAPITAL M -1D475 N # MATHEMATICAL BOLD ITALIC CAPITAL N -1D476 O # MATHEMATICAL BOLD ITALIC CAPITAL O -1D477 P # MATHEMATICAL BOLD ITALIC CAPITAL P -1D478 Q # MATHEMATICAL BOLD ITALIC CAPITAL Q -1D479 R # MATHEMATICAL BOLD ITALIC CAPITAL R -1D47A S # MATHEMATICAL BOLD ITALIC CAPITAL S -1D47B T # MATHEMATICAL BOLD ITALIC CAPITAL T -1D47C U # MATHEMATICAL BOLD ITALIC CAPITAL U -1D47D V # MATHEMATICAL BOLD ITALIC CAPITAL V -1D47E W # MATHEMATICAL BOLD ITALIC CAPITAL W -1D47F X # MATHEMATICAL BOLD ITALIC CAPITAL X -1D480 Y # MATHEMATICAL BOLD ITALIC CAPITAL Y -1D481 Z # MATHEMATICAL BOLD ITALIC CAPITAL Z -1D482 a # MATHEMATICAL BOLD ITALIC SMALL A -1D483 b # MATHEMATICAL BOLD ITALIC SMALL B -1D484 c # MATHEMATICAL BOLD ITALIC SMALL C -1D485 d # MATHEMATICAL BOLD ITALIC SMALL D -1D486 e # MATHEMATICAL BOLD ITALIC SMALL E -1D487 f # MATHEMATICAL BOLD ITALIC SMALL F -1D488 g # MATHEMATICAL BOLD ITALIC SMALL G -1D489 h # MATHEMATICAL BOLD ITALIC SMALL H -1D48A i # MATHEMATICAL BOLD ITALIC SMALL I -1D48B j # MATHEMATICAL BOLD ITALIC SMALL J -1D48C k # MATHEMATICAL BOLD ITALIC SMALL K -1D48D l # MATHEMATICAL BOLD ITALIC SMALL L -1D48E m # MATHEMATICAL BOLD ITALIC SMALL M -1D48F n # MATHEMATICAL BOLD ITALIC SMALL N -1D490 o # MATHEMATICAL BOLD ITALIC SMALL O -1D491 p # MATHEMATICAL BOLD ITALIC SMALL P -1D492 q # MATHEMATICAL BOLD ITALIC SMALL Q -1D493 r # MATHEMATICAL BOLD ITALIC SMALL R -1D494 s # MATHEMATICAL BOLD ITALIC SMALL S -1D495 t # MATHEMATICAL BOLD ITALIC SMALL T -1D496 u # MATHEMATICAL BOLD ITALIC SMALL U -1D497 v # MATHEMATICAL BOLD ITALIC SMALL V -1D498 w # MATHEMATICAL BOLD ITALIC SMALL W -1D499 x # MATHEMATICAL BOLD ITALIC SMALL X -1D49A y # MATHEMATICAL BOLD ITALIC SMALL Y -1D49B z # MATHEMATICAL BOLD ITALIC SMALL Z -1D49C A # MATHEMATICAL SCRIPT CAPITAL A -1D49E C # MATHEMATICAL SCRIPT CAPITAL C -1D49F D # MATHEMATICAL SCRIPT CAPITAL D -1D4A2 G # MATHEMATICAL SCRIPT CAPITAL G -1D4A5 J # MATHEMATICAL SCRIPT CAPITAL J -1D4A6 K # MATHEMATICAL SCRIPT CAPITAL K -1D4A9 N # MATHEMATICAL SCRIPT CAPITAL N -1D4AA O # MATHEMATICAL SCRIPT CAPITAL O -1D4AB P # MATHEMATICAL SCRIPT CAPITAL P -1D4AC Q # MATHEMATICAL SCRIPT CAPITAL Q -1D4AE S # MATHEMATICAL SCRIPT CAPITAL S -1D4AF T # MATHEMATICAL SCRIPT CAPITAL T -1D4B0 U # MATHEMATICAL SCRIPT CAPITAL U -1D4B1 V # MATHEMATICAL SCRIPT CAPITAL V -1D4B2 W # MATHEMATICAL SCRIPT CAPITAL W -1D4B3 X # MATHEMATICAL SCRIPT CAPITAL X -1D4B4 Y # MATHEMATICAL SCRIPT CAPITAL Y -1D4B5 Z # MATHEMATICAL SCRIPT CAPITAL Z -1D4B6 a # MATHEMATICAL SCRIPT SMALL A -1D4B7 b # MATHEMATICAL SCRIPT SMALL B -1D4B8 c # MATHEMATICAL SCRIPT SMALL C -1D4B9 d # MATHEMATICAL SCRIPT SMALL D -1D4BB f # MATHEMATICAL SCRIPT SMALL F -1D4BD h # MATHEMATICAL SCRIPT SMALL H -1D4BE i # MATHEMATICAL SCRIPT SMALL I -1D4BF j # MATHEMATICAL SCRIPT SMALL J -1D4C0 k # MATHEMATICAL SCRIPT SMALL K -1D4C1 l # MATHEMATICAL SCRIPT SMALL L -1D4C2 m # MATHEMATICAL SCRIPT SMALL M -1D4C3 n # MATHEMATICAL SCRIPT SMALL N -1D4C5 p # MATHEMATICAL SCRIPT SMALL P -1D4C6 q # MATHEMATICAL SCRIPT SMALL Q -1D4C7 r # MATHEMATICAL SCRIPT SMALL R -1D4C8 s # MATHEMATICAL SCRIPT SMALL S -1D4C9 t # MATHEMATICAL SCRIPT SMALL T -1D4CA u # MATHEMATICAL SCRIPT SMALL U -1D4CB v # MATHEMATICAL SCRIPT SMALL V -1D4CC w # MATHEMATICAL SCRIPT SMALL W -1D4CD x # MATHEMATICAL SCRIPT SMALL X -1D4CE y # MATHEMATICAL SCRIPT SMALL Y -1D4CF z # MATHEMATICAL SCRIPT SMALL Z -1D4D0 A # MATHEMATICAL BOLD SCRIPT CAPITAL A -1D4D1 B # MATHEMATICAL BOLD SCRIPT CAPITAL B -1D4D2 C # MATHEMATICAL BOLD SCRIPT CAPITAL C -1D4D3 D # MATHEMATICAL BOLD SCRIPT CAPITAL D -1D4D4 E # MATHEMATICAL BOLD SCRIPT CAPITAL E -1D4D5 F # MATHEMATICAL BOLD SCRIPT CAPITAL F -1D4D6 G # MATHEMATICAL BOLD SCRIPT CAPITAL G -1D4D7 H # MATHEMATICAL BOLD SCRIPT CAPITAL H -1D4D8 I # MATHEMATICAL BOLD SCRIPT CAPITAL I -1D4D9 J # MATHEMATICAL BOLD SCRIPT CAPITAL J -1D4DA K # MATHEMATICAL BOLD SCRIPT CAPITAL K -1D4DB L # MATHEMATICAL BOLD SCRIPT CAPITAL L -1D4DC M # MATHEMATICAL BOLD SCRIPT CAPITAL M -1D4DD N # MATHEMATICAL BOLD SCRIPT CAPITAL N -1D4DE O # MATHEMATICAL BOLD SCRIPT CAPITAL O -1D4DF P # MATHEMATICAL BOLD SCRIPT CAPITAL P -1D4E0 Q # MATHEMATICAL BOLD SCRIPT CAPITAL Q -1D4E1 R # MATHEMATICAL BOLD SCRIPT CAPITAL R -1D4E2 S # MATHEMATICAL BOLD SCRIPT CAPITAL S -1D4E3 T # MATHEMATICAL BOLD SCRIPT CAPITAL T -1D4E4 U # MATHEMATICAL BOLD SCRIPT CAPITAL U -1D4E5 V # MATHEMATICAL BOLD SCRIPT CAPITAL V -1D4E6 W # MATHEMATICAL BOLD SCRIPT CAPITAL W -1D4E7 X # MATHEMATICAL BOLD SCRIPT CAPITAL X -1D4E8 Y # MATHEMATICAL BOLD SCRIPT CAPITAL Y -1D4E9 Z # MATHEMATICAL BOLD SCRIPT CAPITAL Z -1D4EA a # MATHEMATICAL BOLD SCRIPT SMALL A -1D4EB b # MATHEMATICAL BOLD SCRIPT SMALL B -1D4EC c # MATHEMATICAL BOLD SCRIPT SMALL C -1D4ED d # MATHEMATICAL BOLD SCRIPT SMALL D -1D4EE e # MATHEMATICAL BOLD SCRIPT SMALL E -1D4EF f # MATHEMATICAL BOLD SCRIPT SMALL F -1D4F0 g # MATHEMATICAL BOLD SCRIPT SMALL G -1D4F1 h # MATHEMATICAL BOLD SCRIPT SMALL H -1D4F2 i # MATHEMATICAL BOLD SCRIPT SMALL I -1D4F3 j # MATHEMATICAL BOLD SCRIPT SMALL J -1D4F4 k # MATHEMATICAL BOLD SCRIPT SMALL K -1D4F5 l # MATHEMATICAL BOLD SCRIPT SMALL L -1D4F6 m # MATHEMATICAL BOLD SCRIPT SMALL M -1D4F7 n # MATHEMATICAL BOLD SCRIPT SMALL N -1D4F8 o # MATHEMATICAL BOLD SCRIPT SMALL O -1D4F9 p # MATHEMATICAL BOLD SCRIPT SMALL P -1D4FA q # MATHEMATICAL BOLD SCRIPT SMALL Q -1D4FB r # MATHEMATICAL BOLD SCRIPT SMALL R -1D4FC s # MATHEMATICAL BOLD SCRIPT SMALL S -1D4FD t # MATHEMATICAL BOLD SCRIPT SMALL T -1D4FE u # MATHEMATICAL BOLD SCRIPT SMALL U -1D4FF v # MATHEMATICAL BOLD SCRIPT SMALL V -1D500 w # MATHEMATICAL BOLD SCRIPT SMALL W -1D501 x # MATHEMATICAL BOLD SCRIPT SMALL X -1D502 y # MATHEMATICAL BOLD SCRIPT SMALL Y -1D503 z # MATHEMATICAL BOLD SCRIPT SMALL Z -1D504 A # MATHEMATICAL FRAKTUR CAPITAL A -1D505 B # MATHEMATICAL FRAKTUR CAPITAL B -1D507 D # MATHEMATICAL FRAKTUR CAPITAL D -1D508 E # MATHEMATICAL FRAKTUR CAPITAL E -1D509 F # MATHEMATICAL FRAKTUR CAPITAL F -1D50A G # MATHEMATICAL FRAKTUR CAPITAL G -1D50D J # MATHEMATICAL FRAKTUR CAPITAL J -1D50E K # MATHEMATICAL FRAKTUR CAPITAL K -1D50F L # MATHEMATICAL FRAKTUR CAPITAL L -1D510 M # MATHEMATICAL FRAKTUR CAPITAL M -1D511 N # MATHEMATICAL FRAKTUR CAPITAL N -1D512 O # MATHEMATICAL FRAKTUR CAPITAL O -1D513 P # MATHEMATICAL FRAKTUR CAPITAL P -1D514 Q # MATHEMATICAL FRAKTUR CAPITAL Q -1D516 S # MATHEMATICAL FRAKTUR CAPITAL S -1D517 T # MATHEMATICAL FRAKTUR CAPITAL T -1D518 U # MATHEMATICAL FRAKTUR CAPITAL U -1D519 V # MATHEMATICAL FRAKTUR CAPITAL V -1D51A W # MATHEMATICAL FRAKTUR CAPITAL W -1D51B X # MATHEMATICAL FRAKTUR CAPITAL X -1D51C Y # MATHEMATICAL FRAKTUR CAPITAL Y -1D51E a # MATHEMATICAL FRAKTUR SMALL A -1D51F b # MATHEMATICAL FRAKTUR SMALL B -1D520 c # MATHEMATICAL FRAKTUR SMALL C -1D521 d # MATHEMATICAL FRAKTUR SMALL D -1D522 e # MATHEMATICAL FRAKTUR SMALL E -1D523 f # MATHEMATICAL FRAKTUR SMALL F -1D524 g # MATHEMATICAL FRAKTUR SMALL G -1D525 h # MATHEMATICAL FRAKTUR SMALL H -1D526 i # MATHEMATICAL FRAKTUR SMALL I -1D527 j # MATHEMATICAL FRAKTUR SMALL J -1D528 k # MATHEMATICAL FRAKTUR SMALL K -1D529 l # MATHEMATICAL FRAKTUR SMALL L -1D52A m # MATHEMATICAL FRAKTUR SMALL M -1D52B n # MATHEMATICAL FRAKTUR SMALL N -1D52C o # MATHEMATICAL FRAKTUR SMALL O -1D52D p # MATHEMATICAL FRAKTUR SMALL P -1D52E q # MATHEMATICAL FRAKTUR SMALL Q -1D52F r # MATHEMATICAL FRAKTUR SMALL R -1D530 s # MATHEMATICAL FRAKTUR SMALL S -1D531 t # MATHEMATICAL FRAKTUR SMALL T -1D532 u # MATHEMATICAL FRAKTUR SMALL U -1D533 v # MATHEMATICAL FRAKTUR SMALL V -1D534 w # MATHEMATICAL FRAKTUR SMALL W -1D535 x # MATHEMATICAL FRAKTUR SMALL X -1D536 y # MATHEMATICAL FRAKTUR SMALL Y -1D537 z # MATHEMATICAL FRAKTUR SMALL Z -1D538 A # MATHEMATICAL DOUBLE-STRUCK CAPITAL A -1D539 B # MATHEMATICAL DOUBLE-STRUCK CAPITAL B -1D53B D # MATHEMATICAL DOUBLE-STRUCK CAPITAL D -1D53C E # MATHEMATICAL DOUBLE-STRUCK CAPITAL E -1D53D F # MATHEMATICAL DOUBLE-STRUCK CAPITAL F -1D53E G # MATHEMATICAL DOUBLE-STRUCK CAPITAL G -1D540 I # MATHEMATICAL DOUBLE-STRUCK CAPITAL I -1D541 J # MATHEMATICAL DOUBLE-STRUCK CAPITAL J -1D542 K # MATHEMATICAL DOUBLE-STRUCK CAPITAL K -1D543 L # MATHEMATICAL DOUBLE-STRUCK CAPITAL L -1D544 M # MATHEMATICAL DOUBLE-STRUCK CAPITAL M -1D546 O # MATHEMATICAL DOUBLE-STRUCK CAPITAL O -1D54A S # MATHEMATICAL DOUBLE-STRUCK CAPITAL S -1D54B T # MATHEMATICAL DOUBLE-STRUCK CAPITAL T -1D54C U # MATHEMATICAL DOUBLE-STRUCK CAPITAL U -1D54D V # MATHEMATICAL DOUBLE-STRUCK CAPITAL V -1D54E W # MATHEMATICAL DOUBLE-STRUCK CAPITAL W -1D54F X # MATHEMATICAL DOUBLE-STRUCK CAPITAL X -1D550 Y # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y -1D552 a # MATHEMATICAL DOUBLE-STRUCK SMALL A -1D553 b # MATHEMATICAL DOUBLE-STRUCK SMALL B -1D554 c # MATHEMATICAL DOUBLE-STRUCK SMALL C -1D555 d # MATHEMATICAL DOUBLE-STRUCK SMALL D -1D556 e # MATHEMATICAL DOUBLE-STRUCK SMALL E -1D557 f # MATHEMATICAL DOUBLE-STRUCK SMALL F -1D558 g # MATHEMATICAL DOUBLE-STRUCK SMALL G -1D559 h # MATHEMATICAL DOUBLE-STRUCK SMALL H -1D55A i # MATHEMATICAL DOUBLE-STRUCK SMALL I -1D55B j # MATHEMATICAL DOUBLE-STRUCK SMALL J -1D55C k # MATHEMATICAL DOUBLE-STRUCK SMALL K -1D55D l # MATHEMATICAL DOUBLE-STRUCK SMALL L -1D55E m # MATHEMATICAL DOUBLE-STRUCK SMALL M -1D55F n # MATHEMATICAL DOUBLE-STRUCK SMALL N -1D560 o # MATHEMATICAL DOUBLE-STRUCK SMALL O -1D561 p # MATHEMATICAL DOUBLE-STRUCK SMALL P -1D562 q # MATHEMATICAL DOUBLE-STRUCK SMALL Q -1D563 r # MATHEMATICAL DOUBLE-STRUCK SMALL R -1D564 s # MATHEMATICAL DOUBLE-STRUCK SMALL S -1D565 t # MATHEMATICAL DOUBLE-STRUCK SMALL T -1D566 u # MATHEMATICAL DOUBLE-STRUCK SMALL U -1D567 v # MATHEMATICAL DOUBLE-STRUCK SMALL V -1D568 w # MATHEMATICAL DOUBLE-STRUCK SMALL W -1D569 x # MATHEMATICAL DOUBLE-STRUCK SMALL X -1D56A y # MATHEMATICAL DOUBLE-STRUCK SMALL Y -1D56B z # MATHEMATICAL DOUBLE-STRUCK SMALL Z -1D56C A # MATHEMATICAL BOLD FRAKTUR CAPITAL A -1D56D B # MATHEMATICAL BOLD FRAKTUR CAPITAL B -1D56E C # MATHEMATICAL BOLD FRAKTUR CAPITAL C -1D56F D # MATHEMATICAL BOLD FRAKTUR CAPITAL D -1D570 E # MATHEMATICAL BOLD FRAKTUR CAPITAL E -1D571 F # MATHEMATICAL BOLD FRAKTUR CAPITAL F -1D572 G # MATHEMATICAL BOLD FRAKTUR CAPITAL G -1D573 H # MATHEMATICAL BOLD FRAKTUR CAPITAL H -1D574 I # MATHEMATICAL BOLD FRAKTUR CAPITAL I -1D575 J # MATHEMATICAL BOLD FRAKTUR CAPITAL J -1D576 K # MATHEMATICAL BOLD FRAKTUR CAPITAL K -1D577 L # MATHEMATICAL BOLD FRAKTUR CAPITAL L -1D578 M # MATHEMATICAL BOLD FRAKTUR CAPITAL M -1D579 N # MATHEMATICAL BOLD FRAKTUR CAPITAL N -1D57A O # MATHEMATICAL BOLD FRAKTUR CAPITAL O -1D57B P # MATHEMATICAL BOLD FRAKTUR CAPITAL P -1D57C Q # MATHEMATICAL BOLD FRAKTUR CAPITAL Q -1D57D R # MATHEMATICAL BOLD FRAKTUR CAPITAL R -1D57E S # MATHEMATICAL BOLD FRAKTUR CAPITAL S -1D57F T # MATHEMATICAL BOLD FRAKTUR CAPITAL T -1D580 U # MATHEMATICAL BOLD FRAKTUR CAPITAL U -1D581 V # MATHEMATICAL BOLD FRAKTUR CAPITAL V -1D582 W # MATHEMATICAL BOLD FRAKTUR CAPITAL W -1D583 X # MATHEMATICAL BOLD FRAKTUR CAPITAL X -1D584 Y # MATHEMATICAL BOLD FRAKTUR CAPITAL Y -1D585 Z # MATHEMATICAL BOLD FRAKTUR CAPITAL Z -1D586 a # MATHEMATICAL BOLD FRAKTUR SMALL A -1D587 b # MATHEMATICAL BOLD FRAKTUR SMALL B -1D588 c # MATHEMATICAL BOLD FRAKTUR SMALL C -1D589 d # MATHEMATICAL BOLD FRAKTUR SMALL D -1D58A e # MATHEMATICAL BOLD FRAKTUR SMALL E -1D58B f # MATHEMATICAL BOLD FRAKTUR SMALL F -1D58C g # MATHEMATICAL BOLD FRAKTUR SMALL G -1D58D h # MATHEMATICAL BOLD FRAKTUR SMALL H -1D58E i # MATHEMATICAL BOLD FRAKTUR SMALL I -1D58F j # MATHEMATICAL BOLD FRAKTUR SMALL J -1D590 k # MATHEMATICAL BOLD FRAKTUR SMALL K -1D591 l # MATHEMATICAL BOLD FRAKTUR SMALL L -1D592 m # MATHEMATICAL BOLD FRAKTUR SMALL M -1D593 n # MATHEMATICAL BOLD FRAKTUR SMALL N -1D594 o # MATHEMATICAL BOLD FRAKTUR SMALL O -1D595 p # MATHEMATICAL BOLD FRAKTUR SMALL P -1D596 q # MATHEMATICAL BOLD FRAKTUR SMALL Q -1D597 r # MATHEMATICAL BOLD FRAKTUR SMALL R -1D598 s # MATHEMATICAL BOLD FRAKTUR SMALL S -1D599 t # MATHEMATICAL BOLD FRAKTUR SMALL T -1D59A u # MATHEMATICAL BOLD FRAKTUR SMALL U -1D59B v # MATHEMATICAL BOLD FRAKTUR SMALL V -1D59C w # MATHEMATICAL BOLD FRAKTUR SMALL W -1D59D x # MATHEMATICAL BOLD FRAKTUR SMALL X -1D59E y # MATHEMATICAL BOLD FRAKTUR SMALL Y -1D59F z # MATHEMATICAL BOLD FRAKTUR SMALL Z -1D5A0 A # MATHEMATICAL SANS-SERIF CAPITAL A -1D5A1 B # MATHEMATICAL SANS-SERIF CAPITAL B -1D5A2 C # MATHEMATICAL SANS-SERIF CAPITAL C -1D5A3 D # MATHEMATICAL SANS-SERIF CAPITAL D -1D5A4 E # MATHEMATICAL SANS-SERIF CAPITAL E -1D5A5 F # MATHEMATICAL SANS-SERIF CAPITAL F -1D5A6 G # MATHEMATICAL SANS-SERIF CAPITAL G -1D5A7 H # MATHEMATICAL SANS-SERIF CAPITAL H -1D5A8 I # MATHEMATICAL SANS-SERIF CAPITAL I -1D5A9 J # MATHEMATICAL SANS-SERIF CAPITAL J -1D5AA K # MATHEMATICAL SANS-SERIF CAPITAL K -1D5AB L # MATHEMATICAL SANS-SERIF CAPITAL L -1D5AC M # MATHEMATICAL SANS-SERIF CAPITAL M -1D5AD N # MATHEMATICAL SANS-SERIF CAPITAL N -1D5AE O # MATHEMATICAL SANS-SERIF CAPITAL O -1D5AF P # MATHEMATICAL SANS-SERIF CAPITAL P -1D5B0 Q # MATHEMATICAL SANS-SERIF CAPITAL Q -1D5B1 R # MATHEMATICAL SANS-SERIF CAPITAL R -1D5B2 S # MATHEMATICAL SANS-SERIF CAPITAL S -1D5B3 T # MATHEMATICAL SANS-SERIF CAPITAL T -1D5B4 U # MATHEMATICAL SANS-SERIF CAPITAL U -1D5B5 V # MATHEMATICAL SANS-SERIF CAPITAL V -1D5B6 W # MATHEMATICAL SANS-SERIF CAPITAL W -1D5B7 X # MATHEMATICAL SANS-SERIF CAPITAL X -1D5B8 Y # MATHEMATICAL SANS-SERIF CAPITAL Y -1D5B9 Z # MATHEMATICAL SANS-SERIF CAPITAL Z -1D5BA a # MATHEMATICAL SANS-SERIF SMALL A -1D5BB b # MATHEMATICAL SANS-SERIF SMALL B -1D5BC c # MATHEMATICAL SANS-SERIF SMALL C -1D5BD d # MATHEMATICAL SANS-SERIF SMALL D -1D5BE e # MATHEMATICAL SANS-SERIF SMALL E -1D5BF f # MATHEMATICAL SANS-SERIF SMALL F -1D5C0 g # MATHEMATICAL SANS-SERIF SMALL G -1D5C1 h # MATHEMATICAL SANS-SERIF SMALL H -1D5C2 i # MATHEMATICAL SANS-SERIF SMALL I -1D5C3 j # MATHEMATICAL SANS-SERIF SMALL J -1D5C4 k # MATHEMATICAL SANS-SERIF SMALL K -1D5C5 l # MATHEMATICAL SANS-SERIF SMALL L -1D5C6 m # MATHEMATICAL SANS-SERIF SMALL M -1D5C7 n # MATHEMATICAL SANS-SERIF SMALL N -1D5C8 o # MATHEMATICAL SANS-SERIF SMALL O -1D5C9 p # MATHEMATICAL SANS-SERIF SMALL P -1D5CA q # MATHEMATICAL SANS-SERIF SMALL Q -1D5CB r # MATHEMATICAL SANS-SERIF SMALL R -1D5CC s # MATHEMATICAL SANS-SERIF SMALL S -1D5CD t # MATHEMATICAL SANS-SERIF SMALL T -1D5CE u # MATHEMATICAL SANS-SERIF SMALL U -1D5CF v # MATHEMATICAL SANS-SERIF SMALL V -1D5D0 w # MATHEMATICAL SANS-SERIF SMALL W -1D5D1 x # MATHEMATICAL SANS-SERIF SMALL X -1D5D2 y # MATHEMATICAL SANS-SERIF SMALL Y -1D5D3 z # MATHEMATICAL SANS-SERIF SMALL Z -1D5D4 A # MATHEMATICAL SANS-SERIF BOLD CAPITAL A -1D5D5 B # MATHEMATICAL SANS-SERIF BOLD CAPITAL B -1D5D6 C # MATHEMATICAL SANS-SERIF BOLD CAPITAL C -1D5D7 D # MATHEMATICAL SANS-SERIF BOLD CAPITAL D -1D5D8 E # MATHEMATICAL SANS-SERIF BOLD CAPITAL E -1D5D9 F # MATHEMATICAL SANS-SERIF BOLD CAPITAL F -1D5DA G # MATHEMATICAL SANS-SERIF BOLD CAPITAL G -1D5DB H # MATHEMATICAL SANS-SERIF BOLD CAPITAL H -1D5DC I # MATHEMATICAL SANS-SERIF BOLD CAPITAL I -1D5DD J # MATHEMATICAL SANS-SERIF BOLD CAPITAL J -1D5DE K # MATHEMATICAL SANS-SERIF BOLD CAPITAL K -1D5DF L # MATHEMATICAL SANS-SERIF BOLD CAPITAL L -1D5E0 M # MATHEMATICAL SANS-SERIF BOLD CAPITAL M -1D5E1 N # MATHEMATICAL SANS-SERIF BOLD CAPITAL N -1D5E2 O # MATHEMATICAL SANS-SERIF BOLD CAPITAL O -1D5E3 P # MATHEMATICAL SANS-SERIF BOLD CAPITAL P -1D5E4 Q # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q -1D5E5 R # MATHEMATICAL SANS-SERIF BOLD CAPITAL R -1D5E6 S # MATHEMATICAL SANS-SERIF BOLD CAPITAL S -1D5E7 T # MATHEMATICAL SANS-SERIF BOLD CAPITAL T -1D5E8 U # MATHEMATICAL SANS-SERIF BOLD CAPITAL U -1D5E9 V # MATHEMATICAL SANS-SERIF BOLD CAPITAL V -1D5EA W # MATHEMATICAL SANS-SERIF BOLD CAPITAL W -1D5EB X # MATHEMATICAL SANS-SERIF BOLD CAPITAL X -1D5EC Y # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y -1D5ED Z # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z -1D5EE a # MATHEMATICAL SANS-SERIF BOLD SMALL A -1D5EF b # MATHEMATICAL SANS-SERIF BOLD SMALL B -1D5F0 c # MATHEMATICAL SANS-SERIF BOLD SMALL C -1D5F1 d # MATHEMATICAL SANS-SERIF BOLD SMALL D -1D5F2 e # MATHEMATICAL SANS-SERIF BOLD SMALL E -1D5F3 f # MATHEMATICAL SANS-SERIF BOLD SMALL F -1D5F4 g # MATHEMATICAL SANS-SERIF BOLD SMALL G -1D5F5 h # MATHEMATICAL SANS-SERIF BOLD SMALL H -1D5F6 i # MATHEMATICAL SANS-SERIF BOLD SMALL I -1D5F7 j # MATHEMATICAL SANS-SERIF BOLD SMALL J -1D5F8 k # MATHEMATICAL SANS-SERIF BOLD SMALL K -1D5F9 l # MATHEMATICAL SANS-SERIF BOLD SMALL L -1D5FA m # MATHEMATICAL SANS-SERIF BOLD SMALL M -1D5FB n # MATHEMATICAL SANS-SERIF BOLD SMALL N -1D5FC o # MATHEMATICAL SANS-SERIF BOLD SMALL O -1D5FD p # MATHEMATICAL SANS-SERIF BOLD SMALL P -1D5FE q # MATHEMATICAL SANS-SERIF BOLD SMALL Q -1D5FF r # MATHEMATICAL SANS-SERIF BOLD SMALL R -1D600 s # MATHEMATICAL SANS-SERIF BOLD SMALL S -1D601 t # MATHEMATICAL SANS-SERIF BOLD SMALL T -1D602 u # MATHEMATICAL SANS-SERIF BOLD SMALL U -1D603 v # MATHEMATICAL SANS-SERIF BOLD SMALL V -1D604 w # MATHEMATICAL SANS-SERIF BOLD SMALL W -1D605 x # MATHEMATICAL SANS-SERIF BOLD SMALL X -1D606 y # MATHEMATICAL SANS-SERIF BOLD SMALL Y -1D607 z # MATHEMATICAL SANS-SERIF BOLD SMALL Z -1D608 A # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A -1D609 B # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B -1D60A C # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C -1D60B D # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D -1D60C E # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E -1D60D F # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F -1D60E G # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G -1D60F H # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H -1D610 I # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I -1D611 J # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J -1D612 K # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K -1D613 L # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L -1D614 M # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M -1D615 N # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N -1D616 O # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O -1D617 P # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P -1D618 Q # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q -1D619 R # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R -1D61A S # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S -1D61B T # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T -1D61C U # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U -1D61D V # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V -1D61E W # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W -1D61F X # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X -1D620 Y # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y -1D621 Z # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z -1D622 a # MATHEMATICAL SANS-SERIF ITALIC SMALL A -1D623 b # MATHEMATICAL SANS-SERIF ITALIC SMALL B -1D624 c # MATHEMATICAL SANS-SERIF ITALIC SMALL C -1D625 d # MATHEMATICAL SANS-SERIF ITALIC SMALL D -1D626 e # MATHEMATICAL SANS-SERIF ITALIC SMALL E -1D627 f # MATHEMATICAL SANS-SERIF ITALIC SMALL F -1D628 g # MATHEMATICAL SANS-SERIF ITALIC SMALL G -1D629 h # MATHEMATICAL SANS-SERIF ITALIC SMALL H -1D62A i # MATHEMATICAL SANS-SERIF ITALIC SMALL I -1D62B j # MATHEMATICAL SANS-SERIF ITALIC SMALL J -1D62C k # MATHEMATICAL SANS-SERIF ITALIC SMALL K -1D62D l # MATHEMATICAL SANS-SERIF ITALIC SMALL L -1D62E m # MATHEMATICAL SANS-SERIF ITALIC SMALL M -1D62F n # MATHEMATICAL SANS-SERIF ITALIC SMALL N -1D630 o # MATHEMATICAL SANS-SERIF ITALIC SMALL O -1D631 p # MATHEMATICAL SANS-SERIF ITALIC SMALL P -1D632 q # MATHEMATICAL SANS-SERIF ITALIC SMALL Q -1D633 r # MATHEMATICAL SANS-SERIF ITALIC SMALL R -1D634 s # MATHEMATICAL SANS-SERIF ITALIC SMALL S -1D635 t # MATHEMATICAL SANS-SERIF ITALIC SMALL T -1D636 u # MATHEMATICAL SANS-SERIF ITALIC SMALL U -1D637 v # MATHEMATICAL SANS-SERIF ITALIC SMALL V -1D638 w # MATHEMATICAL SANS-SERIF ITALIC SMALL W -1D639 x # MATHEMATICAL SANS-SERIF ITALIC SMALL X -1D63A y # MATHEMATICAL SANS-SERIF ITALIC SMALL Y -1D63B z # MATHEMATICAL SANS-SERIF ITALIC SMALL Z -1D63C A # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A -1D63D B # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B -1D63E C # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C -1D63F D # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D -1D640 E # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E -1D641 F # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F -1D642 G # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G -1D643 H # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H -1D644 I # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I -1D645 J # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J -1D646 K # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K -1D647 L # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L -1D648 M # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M -1D649 N # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N -1D64A O # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O -1D64B P # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P -1D64C Q # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q -1D64D R # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R -1D64E S # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S -1D64F T # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T -1D650 U # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U -1D651 V # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V -1D652 W # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W -1D653 X # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X -1D654 Y # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y -1D655 Z # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z -1D656 a # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A -1D657 b # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B -1D658 c # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C -1D659 d # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D -1D65A e # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E -1D65B f # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F -1D65C g # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G -1D65D h # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H -1D65E i # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I -1D65F j # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J -1D660 k # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K -1D661 l # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L -1D662 m # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M -1D663 n # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N -1D664 o # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O -1D665 p # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P -1D666 q # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q -1D667 r # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R -1D668 s # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S -1D669 t # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T -1D66A u # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U -1D66B v # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V -1D66C w # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W -1D66D x # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X -1D66E y # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y -1D66F z # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z -1D670 A # MATHEMATICAL MONOSPACE CAPITAL A -1D671 B # MATHEMATICAL MONOSPACE CAPITAL B -1D672 C # MATHEMATICAL MONOSPACE CAPITAL C -1D673 D # MATHEMATICAL MONOSPACE CAPITAL D -1D674 E # MATHEMATICAL MONOSPACE CAPITAL E -1D675 F # MATHEMATICAL MONOSPACE CAPITAL F -1D676 G # MATHEMATICAL MONOSPACE CAPITAL G -1D677 H # MATHEMATICAL MONOSPACE CAPITAL H -1D678 I # MATHEMATICAL MONOSPACE CAPITAL I -1D679 J # MATHEMATICAL MONOSPACE CAPITAL J -1D67A K # MATHEMATICAL MONOSPACE CAPITAL K -1D67B L # MATHEMATICAL MONOSPACE CAPITAL L -1D67C M # MATHEMATICAL MONOSPACE CAPITAL M -1D67D N # MATHEMATICAL MONOSPACE CAPITAL N -1D67E O # MATHEMATICAL MONOSPACE CAPITAL O -1D67F P # MATHEMATICAL MONOSPACE CAPITAL P -1D680 Q # MATHEMATICAL MONOSPACE CAPITAL Q -1D681 R # MATHEMATICAL MONOSPACE CAPITAL R -1D682 S # MATHEMATICAL MONOSPACE CAPITAL S -1D683 T # MATHEMATICAL MONOSPACE CAPITAL T -1D684 U # MATHEMATICAL MONOSPACE CAPITAL U -1D685 V # MATHEMATICAL MONOSPACE CAPITAL V -1D686 W # MATHEMATICAL MONOSPACE CAPITAL W -1D687 X # MATHEMATICAL MONOSPACE CAPITAL X -1D688 Y # MATHEMATICAL MONOSPACE CAPITAL Y -1D689 Z # MATHEMATICAL MONOSPACE CAPITAL Z -1D68A a # MATHEMATICAL MONOSPACE SMALL A -1D68B b # MATHEMATICAL MONOSPACE SMALL B -1D68C c # MATHEMATICAL MONOSPACE SMALL C -1D68D d # MATHEMATICAL MONOSPACE SMALL D -1D68E e # MATHEMATICAL MONOSPACE SMALL E -1D68F f # MATHEMATICAL MONOSPACE SMALL F -1D690 g # MATHEMATICAL MONOSPACE SMALL G -1D691 h # MATHEMATICAL MONOSPACE SMALL H -1D692 i # MATHEMATICAL MONOSPACE SMALL I -1D693 j # MATHEMATICAL MONOSPACE SMALL J -1D694 k # MATHEMATICAL MONOSPACE SMALL K -1D695 l # MATHEMATICAL MONOSPACE SMALL L -1D696 m # MATHEMATICAL MONOSPACE SMALL M -1D697 n # MATHEMATICAL MONOSPACE SMALL N -1D698 o # MATHEMATICAL MONOSPACE SMALL O -1D699 p # MATHEMATICAL MONOSPACE SMALL P -1D69A q # MATHEMATICAL MONOSPACE SMALL Q -1D69B r # MATHEMATICAL MONOSPACE SMALL R -1D69C s # MATHEMATICAL MONOSPACE SMALL S -1D69D t # MATHEMATICAL MONOSPACE SMALL T -1D69E u # MATHEMATICAL MONOSPACE SMALL U -1D69F v # MATHEMATICAL MONOSPACE SMALL V -1D6A0 w # MATHEMATICAL MONOSPACE SMALL W -1D6A1 x # MATHEMATICAL MONOSPACE SMALL X -1D6A2 y # MATHEMATICAL MONOSPACE SMALL Y -1D6A3 z # MATHEMATICAL MONOSPACE SMALL Z -1D6A8 Α # MATHEMATICAL BOLD CAPITAL ALPHA -1D6A9 Î’ # MATHEMATICAL BOLD CAPITAL BETA -1D6AA Γ # MATHEMATICAL BOLD CAPITAL GAMMA -1D6AB Δ # MATHEMATICAL BOLD CAPITAL DELTA -1D6AC Ε # MATHEMATICAL BOLD CAPITAL EPSILON -1D6AD Ζ # MATHEMATICAL BOLD CAPITAL ZETA -1D6AE Η # MATHEMATICAL BOLD CAPITAL ETA -1D6AF Θ # MATHEMATICAL BOLD CAPITAL THETA -1D6B0 Ι # MATHEMATICAL BOLD CAPITAL IOTA -1D6B1 Κ # MATHEMATICAL BOLD CAPITAL KAPPA -1D6B2 Λ # MATHEMATICAL BOLD CAPITAL LAMDA -1D6B3 Μ # MATHEMATICAL BOLD CAPITAL MU -1D6B4 Î # MATHEMATICAL BOLD CAPITAL NU -1D6B5 Ξ # MATHEMATICAL BOLD CAPITAL XI -1D6B6 Ο # MATHEMATICAL BOLD CAPITAL OMICRON -1D6B7 Π # MATHEMATICAL BOLD CAPITAL PI -1D6B8 Ρ # MATHEMATICAL BOLD CAPITAL RHO -1D6B9 Ï´ # MATHEMATICAL BOLD CAPITAL THETA SYMBOL -1D6BA Σ # MATHEMATICAL BOLD CAPITAL SIGMA -1D6BB Τ # MATHEMATICAL BOLD CAPITAL TAU -1D6BC Î¥ # MATHEMATICAL BOLD CAPITAL UPSILON -1D6BD Φ # MATHEMATICAL BOLD CAPITAL PHI -1D6BE Χ # MATHEMATICAL BOLD CAPITAL CHI -1D6BF Ψ # MATHEMATICAL BOLD CAPITAL PSI -1D6C0 Ω # MATHEMATICAL BOLD CAPITAL OMEGA -1D6C1 ∇ # MATHEMATICAL BOLD NABLA -1D6C2 α # MATHEMATICAL BOLD SMALL ALPHA -1D6C3 β # MATHEMATICAL BOLD SMALL BETA -1D6C4 γ # MATHEMATICAL BOLD SMALL GAMMA -1D6C5 δ # MATHEMATICAL BOLD SMALL DELTA -1D6C6 ε # MATHEMATICAL BOLD SMALL EPSILON -1D6C7 ζ # MATHEMATICAL BOLD SMALL ZETA -1D6C8 η # MATHEMATICAL BOLD SMALL ETA -1D6C9 θ # MATHEMATICAL BOLD SMALL THETA -1D6CA ι # MATHEMATICAL BOLD SMALL IOTA -1D6CB κ # MATHEMATICAL BOLD SMALL KAPPA -1D6CC λ # MATHEMATICAL BOLD SMALL LAMDA -1D6CD μ # MATHEMATICAL BOLD SMALL MU -1D6CE ν # MATHEMATICAL BOLD SMALL NU -1D6CF ξ # MATHEMATICAL BOLD SMALL XI -1D6D0 ο # MATHEMATICAL BOLD SMALL OMICRON -1D6D1 Ï€ # MATHEMATICAL BOLD SMALL PI -1D6D2 Ï # MATHEMATICAL BOLD SMALL RHO -1D6D3 Ï‚ # MATHEMATICAL BOLD SMALL FINAL SIGMA -1D6D4 σ # MATHEMATICAL BOLD SMALL SIGMA -1D6D5 Ï„ # MATHEMATICAL BOLD SMALL TAU -1D6D6 Ï… # MATHEMATICAL BOLD SMALL UPSILON -1D6D7 φ # MATHEMATICAL BOLD SMALL PHI -1D6D8 χ # MATHEMATICAL BOLD SMALL CHI -1D6D9 ψ # MATHEMATICAL BOLD SMALL PSI -1D6DA ω # MATHEMATICAL BOLD SMALL OMEGA -1D6DB ∂ # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL -1D6DC ϵ # MATHEMATICAL BOLD EPSILON SYMBOL -1D6DD Ï‘ # MATHEMATICAL BOLD THETA SYMBOL -1D6DE ϰ # MATHEMATICAL BOLD KAPPA SYMBOL -1D6DF Ï• # MATHEMATICAL BOLD PHI SYMBOL -1D6E0 ϱ # MATHEMATICAL BOLD RHO SYMBOL -1D6E1 Ï– # MATHEMATICAL BOLD PI SYMBOL -1D6E2 Α # MATHEMATICAL ITALIC CAPITAL ALPHA -1D6E3 Î’ # MATHEMATICAL ITALIC CAPITAL BETA -1D6E4 Γ # MATHEMATICAL ITALIC CAPITAL GAMMA -1D6E5 Δ # MATHEMATICAL ITALIC CAPITAL DELTA -1D6E6 Ε # MATHEMATICAL ITALIC CAPITAL EPSILON -1D6E7 Ζ # MATHEMATICAL ITALIC CAPITAL ZETA -1D6E8 Η # MATHEMATICAL ITALIC CAPITAL ETA -1D6E9 Θ # MATHEMATICAL ITALIC CAPITAL THETA -1D6EA Ι # MATHEMATICAL ITALIC CAPITAL IOTA -1D6EB Κ # MATHEMATICAL ITALIC CAPITAL KAPPA -1D6EC Λ # MATHEMATICAL ITALIC CAPITAL LAMDA -1D6ED Μ # MATHEMATICAL ITALIC CAPITAL MU -1D6EE Î # MATHEMATICAL ITALIC CAPITAL NU -1D6EF Ξ # MATHEMATICAL ITALIC CAPITAL XI -1D6F0 Ο # MATHEMATICAL ITALIC CAPITAL OMICRON -1D6F1 Π # MATHEMATICAL ITALIC CAPITAL PI -1D6F2 Ρ # MATHEMATICAL ITALIC CAPITAL RHO -1D6F3 Ï´ # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL -1D6F4 Σ # MATHEMATICAL ITALIC CAPITAL SIGMA -1D6F5 Τ # MATHEMATICAL ITALIC CAPITAL TAU -1D6F6 Î¥ # MATHEMATICAL ITALIC CAPITAL UPSILON -1D6F7 Φ # MATHEMATICAL ITALIC CAPITAL PHI -1D6F8 Χ # MATHEMATICAL ITALIC CAPITAL CHI -1D6F9 Ψ # MATHEMATICAL ITALIC CAPITAL PSI -1D6FA Ω # MATHEMATICAL ITALIC CAPITAL OMEGA -1D6FB ∇ # MATHEMATICAL ITALIC NABLA -1D6FC α # MATHEMATICAL ITALIC SMALL ALPHA -1D6FD β # MATHEMATICAL ITALIC SMALL BETA -1D6FE γ # MATHEMATICAL ITALIC SMALL GAMMA -1D6FF δ # MATHEMATICAL ITALIC SMALL DELTA -1D700 ε # MATHEMATICAL ITALIC SMALL EPSILON -1D701 ζ # MATHEMATICAL ITALIC SMALL ZETA -1D702 η # MATHEMATICAL ITALIC SMALL ETA -1D703 θ # MATHEMATICAL ITALIC SMALL THETA -1D704 ι # MATHEMATICAL ITALIC SMALL IOTA -1D705 κ # MATHEMATICAL ITALIC SMALL KAPPA -1D706 λ # MATHEMATICAL ITALIC SMALL LAMDA -1D707 μ # MATHEMATICAL ITALIC SMALL MU -1D708 ν # MATHEMATICAL ITALIC SMALL NU -1D709 ξ # MATHEMATICAL ITALIC SMALL XI -1D70A ο # MATHEMATICAL ITALIC SMALL OMICRON -1D70B Ï€ # MATHEMATICAL ITALIC SMALL PI -1D70C Ï # MATHEMATICAL ITALIC SMALL RHO -1D70D Ï‚ # MATHEMATICAL ITALIC SMALL FINAL SIGMA -1D70E σ # MATHEMATICAL ITALIC SMALL SIGMA -1D70F Ï„ # MATHEMATICAL ITALIC SMALL TAU -1D710 Ï… # MATHEMATICAL ITALIC SMALL UPSILON -1D711 φ # MATHEMATICAL ITALIC SMALL PHI -1D712 χ # MATHEMATICAL ITALIC SMALL CHI -1D713 ψ # MATHEMATICAL ITALIC SMALL PSI -1D714 ω # MATHEMATICAL ITALIC SMALL OMEGA -1D715 ∂ # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL -1D716 ϵ # MATHEMATICAL ITALIC EPSILON SYMBOL -1D717 Ï‘ # MATHEMATICAL ITALIC THETA SYMBOL -1D718 ϰ # MATHEMATICAL ITALIC KAPPA SYMBOL -1D719 Ï• # MATHEMATICAL ITALIC PHI SYMBOL -1D71A ϱ # MATHEMATICAL ITALIC RHO SYMBOL -1D71B Ï– # MATHEMATICAL ITALIC PI SYMBOL -1D71C Α # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA -1D71D Î’ # MATHEMATICAL BOLD ITALIC CAPITAL BETA -1D71E Γ # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA -1D71F Δ # MATHEMATICAL BOLD ITALIC CAPITAL DELTA -1D720 Ε # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON -1D721 Ζ # MATHEMATICAL BOLD ITALIC CAPITAL ZETA -1D722 Η # MATHEMATICAL BOLD ITALIC CAPITAL ETA -1D723 Θ # MATHEMATICAL BOLD ITALIC CAPITAL THETA -1D724 Ι # MATHEMATICAL BOLD ITALIC CAPITAL IOTA -1D725 Κ # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA -1D726 Λ # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA -1D727 Μ # MATHEMATICAL BOLD ITALIC CAPITAL MU -1D728 Î # MATHEMATICAL BOLD ITALIC CAPITAL NU -1D729 Ξ # MATHEMATICAL BOLD ITALIC CAPITAL XI -1D72A Ο # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON -1D72B Π # MATHEMATICAL BOLD ITALIC CAPITAL PI -1D72C Ρ # MATHEMATICAL BOLD ITALIC CAPITAL RHO -1D72D Ï´ # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL -1D72E Σ # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA -1D72F Τ # MATHEMATICAL BOLD ITALIC CAPITAL TAU -1D730 Î¥ # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON -1D731 Φ # MATHEMATICAL BOLD ITALIC CAPITAL PHI -1D732 Χ # MATHEMATICAL BOLD ITALIC CAPITAL CHI -1D733 Ψ # MATHEMATICAL BOLD ITALIC CAPITAL PSI -1D734 Ω # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA -1D735 ∇ # MATHEMATICAL BOLD ITALIC NABLA -1D736 α # MATHEMATICAL BOLD ITALIC SMALL ALPHA -1D737 β # MATHEMATICAL BOLD ITALIC SMALL BETA -1D738 γ # MATHEMATICAL BOLD ITALIC SMALL GAMMA -1D739 δ # MATHEMATICAL BOLD ITALIC SMALL DELTA -1D73A ε # MATHEMATICAL BOLD ITALIC SMALL EPSILON -1D73B ζ # MATHEMATICAL BOLD ITALIC SMALL ZETA -1D73C η # MATHEMATICAL BOLD ITALIC SMALL ETA -1D73D θ # MATHEMATICAL BOLD ITALIC SMALL THETA -1D73E ι # MATHEMATICAL BOLD ITALIC SMALL IOTA -1D73F κ # MATHEMATICAL BOLD ITALIC SMALL KAPPA -1D740 λ # MATHEMATICAL BOLD ITALIC SMALL LAMDA -1D741 μ # MATHEMATICAL BOLD ITALIC SMALL MU -1D742 ν # MATHEMATICAL BOLD ITALIC SMALL NU -1D743 ξ # MATHEMATICAL BOLD ITALIC SMALL XI -1D744 ο # MATHEMATICAL BOLD ITALIC SMALL OMICRON -1D745 Ï€ # MATHEMATICAL BOLD ITALIC SMALL PI -1D746 Ï # MATHEMATICAL BOLD ITALIC SMALL RHO -1D747 Ï‚ # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA -1D748 σ # MATHEMATICAL BOLD ITALIC SMALL SIGMA -1D749 Ï„ # MATHEMATICAL BOLD ITALIC SMALL TAU -1D74A Ï… # MATHEMATICAL BOLD ITALIC SMALL UPSILON -1D74B φ # MATHEMATICAL BOLD ITALIC SMALL PHI -1D74C χ # MATHEMATICAL BOLD ITALIC SMALL CHI -1D74D ψ # MATHEMATICAL BOLD ITALIC SMALL PSI -1D74E ω # MATHEMATICAL BOLD ITALIC SMALL OMEGA -1D74F ∂ # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL -1D750 ϵ # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL -1D751 Ï‘ # MATHEMATICAL BOLD ITALIC THETA SYMBOL -1D752 ϰ # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL -1D753 Ï• # MATHEMATICAL BOLD ITALIC PHI SYMBOL -1D754 ϱ # MATHEMATICAL BOLD ITALIC RHO SYMBOL -1D755 Ï– # MATHEMATICAL BOLD ITALIC PI SYMBOL -1D756 Α # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA -1D757 Î’ # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA -1D758 Γ # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA -1D759 Δ # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA -1D75A Ε # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON -1D75B Ζ # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA -1D75C Η # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA -1D75D Θ # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA -1D75E Ι # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA -1D75F Κ # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA -1D760 Λ # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA -1D761 Μ # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU -1D762 Î # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU -1D763 Ξ # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI -1D764 Ο # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON -1D765 Π # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI -1D766 Ρ # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO -1D767 Ï´ # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL -1D768 Σ # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA -1D769 Τ # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU -1D76A Î¥ # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON -1D76B Φ # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI -1D76C Χ # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI -1D76D Ψ # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI -1D76E Ω # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA -1D76F ∇ # MATHEMATICAL SANS-SERIF BOLD NABLA -1D770 α # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA -1D771 β # MATHEMATICAL SANS-SERIF BOLD SMALL BETA -1D772 γ # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA -1D773 δ # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA -1D774 ε # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON -1D775 ζ # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA -1D776 η # MATHEMATICAL SANS-SERIF BOLD SMALL ETA -1D777 θ # MATHEMATICAL SANS-SERIF BOLD SMALL THETA -1D778 ι # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA -1D779 κ # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA -1D77A λ # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA -1D77B μ # MATHEMATICAL SANS-SERIF BOLD SMALL MU -1D77C ν # MATHEMATICAL SANS-SERIF BOLD SMALL NU -1D77D ξ # MATHEMATICAL SANS-SERIF BOLD SMALL XI -1D77E ο # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON -1D77F Ï€ # MATHEMATICAL SANS-SERIF BOLD SMALL PI -1D780 Ï # MATHEMATICAL SANS-SERIF BOLD SMALL RHO -1D781 Ï‚ # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA -1D782 σ # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA -1D783 Ï„ # MATHEMATICAL SANS-SERIF BOLD SMALL TAU -1D784 Ï… # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON -1D785 φ # MATHEMATICAL SANS-SERIF BOLD SMALL PHI -1D786 χ # MATHEMATICAL SANS-SERIF BOLD SMALL CHI -1D787 ψ # MATHEMATICAL SANS-SERIF BOLD SMALL PSI -1D788 ω # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA -1D789 ∂ # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL -1D78A ϵ # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL -1D78B Ï‘ # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL -1D78C ϰ # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL -1D78D Ï• # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL -1D78E ϱ # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL -1D78F Ï– # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL -1D790 Α # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA -1D791 Î’ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA -1D792 Γ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA -1D793 Δ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA -1D794 Ε # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON -1D795 Ζ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA -1D796 Η # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA -1D797 Θ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA -1D798 Ι # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA -1D799 Κ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA -1D79A Λ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA -1D79B Μ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU -1D79C Î # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU -1D79D Ξ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI -1D79E Ο # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON -1D79F Π # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI -1D7A0 Ρ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO -1D7A1 Ï´ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL -1D7A2 Σ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA -1D7A3 Τ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU -1D7A4 Î¥ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON -1D7A5 Φ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI -1D7A6 Χ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI -1D7A7 Ψ # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI -1D7A8 Ω # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA -1D7A9 ∇ # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA -1D7AA α # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA -1D7AB β # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA -1D7AC γ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA -1D7AD δ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA -1D7AE ε # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON -1D7AF ζ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA -1D7B0 η # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA -1D7B1 θ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA -1D7B2 ι # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA -1D7B3 κ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA -1D7B4 λ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA -1D7B5 μ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU -1D7B6 ν # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU -1D7B7 ξ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI -1D7B8 ο # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON -1D7B9 Ï€ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI -1D7BA Ï # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO -1D7BB Ï‚ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA -1D7BC σ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA -1D7BD Ï„ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU -1D7BE Ï… # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON -1D7BF φ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI -1D7C0 χ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI -1D7C1 ψ # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI -1D7C2 ω # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA -1D7C3 ∂ # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL -1D7C4 ϵ # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL -1D7C5 Ï‘ # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL -1D7C6 ϰ # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL -1D7C7 Ï• # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL -1D7C8 ϱ # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL -1D7C9 Ï– # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL -1D7CE 0 # MATHEMATICAL BOLD DIGIT ZERO -1D7CF 1 # MATHEMATICAL BOLD DIGIT ONE -1D7D0 2 # MATHEMATICAL BOLD DIGIT TWO -1D7D1 3 # MATHEMATICAL BOLD DIGIT THREE -1D7D2 4 # MATHEMATICAL BOLD DIGIT FOUR -1D7D3 5 # MATHEMATICAL BOLD DIGIT FIVE -1D7D4 6 # MATHEMATICAL BOLD DIGIT SIX -1D7D5 7 # MATHEMATICAL BOLD DIGIT SEVEN -1D7D6 8 # MATHEMATICAL BOLD DIGIT EIGHT -1D7D7 9 # MATHEMATICAL BOLD DIGIT NINE -1D7D8 0 # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO -1D7D9 1 # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE -1D7DA 2 # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO -1D7DB 3 # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE -1D7DC 4 # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR -1D7DD 5 # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE -1D7DE 6 # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX -1D7DF 7 # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN -1D7E0 8 # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT -1D7E1 9 # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE -1D7E2 0 # MATHEMATICAL SANS-SERIF DIGIT ZERO -1D7E3 1 # MATHEMATICAL SANS-SERIF DIGIT ONE -1D7E4 2 # MATHEMATICAL SANS-SERIF DIGIT TWO -1D7E5 3 # MATHEMATICAL SANS-SERIF DIGIT THREE -1D7E6 4 # MATHEMATICAL SANS-SERIF DIGIT FOUR -1D7E7 5 # MATHEMATICAL SANS-SERIF DIGIT FIVE -1D7E8 6 # MATHEMATICAL SANS-SERIF DIGIT SIX -1D7E9 7 # MATHEMATICAL SANS-SERIF DIGIT SEVEN -1D7EA 8 # MATHEMATICAL SANS-SERIF DIGIT EIGHT -1D7EB 9 # MATHEMATICAL SANS-SERIF DIGIT NINE -1D7EC 0 # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO -1D7ED 1 # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE -1D7EE 2 # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO -1D7EF 3 # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE -1D7F0 4 # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR -1D7F1 5 # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE -1D7F2 6 # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX -1D7F3 7 # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN -1D7F4 8 # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT -1D7F5 9 # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE -1D7F6 0 # MATHEMATICAL MONOSPACE DIGIT ZERO -1D7F7 1 # MATHEMATICAL MONOSPACE DIGIT ONE -1D7F8 2 # MATHEMATICAL MONOSPACE DIGIT TWO -1D7F9 3 # MATHEMATICAL MONOSPACE DIGIT THREE -1D7FA 4 # MATHEMATICAL MONOSPACE DIGIT FOUR -1D7FB 5 # MATHEMATICAL MONOSPACE DIGIT FIVE -1D7FC 6 # MATHEMATICAL MONOSPACE DIGIT SIX -1D7FD 7 # MATHEMATICAL MONOSPACE DIGIT SEVEN -1D7FE 8 # MATHEMATICAL MONOSPACE DIGIT EIGHT -1D7FF 9 # MATHEMATICAL MONOSPACE DIGIT NINE -2F800 丽 # CJK COMPATIBILITY IDEOGRAPH-2F800 -2F801 丸 # CJK COMPATIBILITY IDEOGRAPH-2F801 -2F802 ä¹ # CJK COMPATIBILITY IDEOGRAPH-2F802 -2F803 ð „¢ # CJK COMPATIBILITY IDEOGRAPH-2F803 -2F804 ä½  # CJK COMPATIBILITY IDEOGRAPH-2F804 -2F805 ä¾® # CJK COMPATIBILITY IDEOGRAPH-2F805 -2F806 ä¾» # CJK COMPATIBILITY IDEOGRAPH-2F806 -2F807 倂 # CJK COMPATIBILITY IDEOGRAPH-2F807 -2F808 åº # CJK COMPATIBILITY IDEOGRAPH-2F808 -2F809 å‚™ # CJK COMPATIBILITY IDEOGRAPH-2F809 -2F80A 僧 # CJK COMPATIBILITY IDEOGRAPH-2F80A -2F80B åƒ # CJK COMPATIBILITY IDEOGRAPH-2F80B -2F80C ã’ž # CJK COMPATIBILITY IDEOGRAPH-2F80C -2F80D 𠘺 # CJK COMPATIBILITY IDEOGRAPH-2F80D -2F80E å… # CJK COMPATIBILITY IDEOGRAPH-2F80E -2F80F å…” # CJK COMPATIBILITY IDEOGRAPH-2F80F -2F810 å…¤ # CJK COMPATIBILITY IDEOGRAPH-2F810 -2F811 å…· # CJK COMPATIBILITY IDEOGRAPH-2F811 -2F812 𠔜 # CJK COMPATIBILITY IDEOGRAPH-2F812 -2F813 ã’¹ # CJK COMPATIBILITY IDEOGRAPH-2F813 -2F814 å…§ # CJK COMPATIBILITY IDEOGRAPH-2F814 -2F815 å† # CJK COMPATIBILITY IDEOGRAPH-2F815 -2F816 ð •‹ # CJK COMPATIBILITY IDEOGRAPH-2F816 -2F817 冗 # CJK COMPATIBILITY IDEOGRAPH-2F817 -2F818 冤 # CJK COMPATIBILITY IDEOGRAPH-2F818 -2F819 仌 # CJK COMPATIBILITY IDEOGRAPH-2F819 -2F81A 冬 # CJK COMPATIBILITY IDEOGRAPH-2F81A -2F81B 况 # CJK COMPATIBILITY IDEOGRAPH-2F81B -2F81C 𩇟 # CJK COMPATIBILITY IDEOGRAPH-2F81C -2F81D 凵 # CJK COMPATIBILITY IDEOGRAPH-2F81D -2F81E 刃 # CJK COMPATIBILITY IDEOGRAPH-2F81E -2F81F 㓟 # CJK COMPATIBILITY IDEOGRAPH-2F81F -2F820 刻 # CJK COMPATIBILITY IDEOGRAPH-2F820 -2F821 剆 # CJK COMPATIBILITY IDEOGRAPH-2F821 -2F822 割 # CJK COMPATIBILITY IDEOGRAPH-2F822 -2F823 剷 # CJK COMPATIBILITY IDEOGRAPH-2F823 -2F824 㔕 # CJK COMPATIBILITY IDEOGRAPH-2F824 -2F825 勇 # CJK COMPATIBILITY IDEOGRAPH-2F825 -2F826 勉 # CJK COMPATIBILITY IDEOGRAPH-2F826 -2F827 勤 # CJK COMPATIBILITY IDEOGRAPH-2F827 -2F828 勺 # CJK COMPATIBILITY IDEOGRAPH-2F828 -2F829 包 # CJK COMPATIBILITY IDEOGRAPH-2F829 -2F82A 匆 # CJK COMPATIBILITY IDEOGRAPH-2F82A -2F82B 北 # CJK COMPATIBILITY IDEOGRAPH-2F82B -2F82C å‰ # CJK COMPATIBILITY IDEOGRAPH-2F82C -2F82D å‘ # CJK COMPATIBILITY IDEOGRAPH-2F82D -2F82E åš # CJK COMPATIBILITY IDEOGRAPH-2F82E -2F82F å³ # CJK COMPATIBILITY IDEOGRAPH-2F82F -2F830 å½ # CJK COMPATIBILITY IDEOGRAPH-2F830 -2F831 å¿ # CJK COMPATIBILITY IDEOGRAPH-2F831 -2F832 å¿ # CJK COMPATIBILITY IDEOGRAPH-2F832 -2F833 å¿ # CJK COMPATIBILITY IDEOGRAPH-2F833 -2F834 𠨬 # CJK COMPATIBILITY IDEOGRAPH-2F834 -2F835 ç° # CJK COMPATIBILITY IDEOGRAPH-2F835 -2F836 åŠ # CJK COMPATIBILITY IDEOGRAPH-2F836 -2F837 åŸ # CJK COMPATIBILITY IDEOGRAPH-2F837 -2F838 ð ­£ # CJK COMPATIBILITY IDEOGRAPH-2F838 -2F839 å« # CJK COMPATIBILITY IDEOGRAPH-2F839 -2F83A å± # CJK COMPATIBILITY IDEOGRAPH-2F83A -2F83B å† # CJK COMPATIBILITY IDEOGRAPH-2F83B -2F83C å’ž # CJK COMPATIBILITY IDEOGRAPH-2F83C -2F83D å¸ # CJK COMPATIBILITY IDEOGRAPH-2F83D -2F83E 呈 # CJK COMPATIBILITY IDEOGRAPH-2F83E -2F83F 周 # CJK COMPATIBILITY IDEOGRAPH-2F83F -2F840 å’¢ # CJK COMPATIBILITY IDEOGRAPH-2F840 -2F841 å“¶ # CJK COMPATIBILITY IDEOGRAPH-2F841 -2F842 å” # CJK COMPATIBILITY IDEOGRAPH-2F842 -2F843 å•“ # CJK COMPATIBILITY IDEOGRAPH-2F843 -2F844 å•£ # CJK COMPATIBILITY IDEOGRAPH-2F844 -2F845 å–„ # CJK COMPATIBILITY IDEOGRAPH-2F845 -2F846 å–„ # CJK COMPATIBILITY IDEOGRAPH-2F846 -2F847 å–™ # CJK COMPATIBILITY IDEOGRAPH-2F847 -2F848 å–« # CJK COMPATIBILITY IDEOGRAPH-2F848 -2F849 å–³ # CJK COMPATIBILITY IDEOGRAPH-2F849 -2F84A å—‚ # CJK COMPATIBILITY IDEOGRAPH-2F84A -2F84B 圖 # CJK COMPATIBILITY IDEOGRAPH-2F84B -2F84C 嘆 # CJK COMPATIBILITY IDEOGRAPH-2F84C -2F84D 圗 # CJK COMPATIBILITY IDEOGRAPH-2F84D -2F84E 噑 # CJK COMPATIBILITY IDEOGRAPH-2F84E -2F84F å™´ # CJK COMPATIBILITY IDEOGRAPH-2F84F -2F850 切 # CJK COMPATIBILITY IDEOGRAPH-2F850 -2F851 壮 # CJK COMPATIBILITY IDEOGRAPH-2F851 -2F852 城 # CJK COMPATIBILITY IDEOGRAPH-2F852 -2F853 埴 # CJK COMPATIBILITY IDEOGRAPH-2F853 -2F854 å  # CJK COMPATIBILITY IDEOGRAPH-2F854 -2F855 åž‹ # CJK COMPATIBILITY IDEOGRAPH-2F855 -2F856 å ² # CJK COMPATIBILITY IDEOGRAPH-2F856 -2F857 å ± # CJK COMPATIBILITY IDEOGRAPH-2F857 -2F858 墬 # CJK COMPATIBILITY IDEOGRAPH-2F858 -2F859 𡓤 # CJK COMPATIBILITY IDEOGRAPH-2F859 -2F85A 売 # CJK COMPATIBILITY IDEOGRAPH-2F85A -2F85B 壷 # CJK COMPATIBILITY IDEOGRAPH-2F85B -2F85C 夆 # CJK COMPATIBILITY IDEOGRAPH-2F85C -2F85D 多 # CJK COMPATIBILITY IDEOGRAPH-2F85D -2F85E 夢 # CJK COMPATIBILITY IDEOGRAPH-2F85E -2F85F 奢 # CJK COMPATIBILITY IDEOGRAPH-2F85F -2F860 𡚨 # CJK COMPATIBILITY IDEOGRAPH-2F860 -2F861 𡛪 # CJK COMPATIBILITY IDEOGRAPH-2F861 -2F862 姬 # CJK COMPATIBILITY IDEOGRAPH-2F862 -2F863 娛 # CJK COMPATIBILITY IDEOGRAPH-2F863 -2F864 娧 # CJK COMPATIBILITY IDEOGRAPH-2F864 -2F865 姘 # CJK COMPATIBILITY IDEOGRAPH-2F865 -2F866 婦 # CJK COMPATIBILITY IDEOGRAPH-2F866 -2F867 ã›® # CJK COMPATIBILITY IDEOGRAPH-2F867 -2F868 㛼 # CJK COMPATIBILITY IDEOGRAPH-2F868 -2F869 嬈 # CJK COMPATIBILITY IDEOGRAPH-2F869 -2F86A 嬾 # CJK COMPATIBILITY IDEOGRAPH-2F86A -2F86B 嬾 # CJK COMPATIBILITY IDEOGRAPH-2F86B -2F86C 𡧈 # CJK COMPATIBILITY IDEOGRAPH-2F86C -2F86D 寃 # CJK COMPATIBILITY IDEOGRAPH-2F86D -2F86E 寘 # CJK COMPATIBILITY IDEOGRAPH-2F86E -2F86F 寧 # CJK COMPATIBILITY IDEOGRAPH-2F86F -2F870 寳 # CJK COMPATIBILITY IDEOGRAPH-2F870 -2F871 𡬘 # CJK COMPATIBILITY IDEOGRAPH-2F871 -2F872 寿 # CJK COMPATIBILITY IDEOGRAPH-2F872 -2F873 å°† # CJK COMPATIBILITY IDEOGRAPH-2F873 -2F874 当 # CJK COMPATIBILITY IDEOGRAPH-2F874 -2F875 å°¢ # CJK COMPATIBILITY IDEOGRAPH-2F875 -2F876 ãž # CJK COMPATIBILITY IDEOGRAPH-2F876 -2F877 å±  # CJK COMPATIBILITY IDEOGRAPH-2F877 -2F878 å±® # CJK COMPATIBILITY IDEOGRAPH-2F878 -2F879 å³€ # CJK COMPATIBILITY IDEOGRAPH-2F879 -2F87A å² # CJK COMPATIBILITY IDEOGRAPH-2F87A -2F87B ð¡·¤ # CJK COMPATIBILITY IDEOGRAPH-2F87B -2F87C 嵃 # CJK COMPATIBILITY IDEOGRAPH-2F87C -2F87D ð¡·¦ # CJK COMPATIBILITY IDEOGRAPH-2F87D -2F87E åµ® # CJK COMPATIBILITY IDEOGRAPH-2F87E -2F87F 嵫 # CJK COMPATIBILITY IDEOGRAPH-2F87F -2F880 åµ¼ # CJK COMPATIBILITY IDEOGRAPH-2F880 -2F881 å·¡ # CJK COMPATIBILITY IDEOGRAPH-2F881 -2F882 å·¢ # CJK COMPATIBILITY IDEOGRAPH-2F882 -2F883 ã ¯ # CJK COMPATIBILITY IDEOGRAPH-2F883 -2F884 å·½ # CJK COMPATIBILITY IDEOGRAPH-2F884 -2F885 帨 # CJK COMPATIBILITY IDEOGRAPH-2F885 -2F886 帽 # CJK COMPATIBILITY IDEOGRAPH-2F886 -2F887 幩 # CJK COMPATIBILITY IDEOGRAPH-2F887 -2F888 ã¡¢ # CJK COMPATIBILITY IDEOGRAPH-2F888 -2F889 𢆃 # CJK COMPATIBILITY IDEOGRAPH-2F889 -2F88A 㡼 # CJK COMPATIBILITY IDEOGRAPH-2F88A -2F88B 庰 # CJK COMPATIBILITY IDEOGRAPH-2F88B -2F88C 庳 # CJK COMPATIBILITY IDEOGRAPH-2F88C -2F88D 庶 # CJK COMPATIBILITY IDEOGRAPH-2F88D -2F88E 廊 # CJK COMPATIBILITY IDEOGRAPH-2F88E -2F88F 𪎒 # CJK COMPATIBILITY IDEOGRAPH-2F88F -2F890 廾 # CJK COMPATIBILITY IDEOGRAPH-2F890 -2F891 𢌱 # CJK COMPATIBILITY IDEOGRAPH-2F891 -2F892 𢌱 # CJK COMPATIBILITY IDEOGRAPH-2F892 -2F893 èˆ # CJK COMPATIBILITY IDEOGRAPH-2F893 -2F894 å¼¢ # CJK COMPATIBILITY IDEOGRAPH-2F894 -2F895 å¼¢ # CJK COMPATIBILITY IDEOGRAPH-2F895 -2F896 㣇 # CJK COMPATIBILITY IDEOGRAPH-2F896 -2F897 𣊸 # CJK COMPATIBILITY IDEOGRAPH-2F897 -2F898 𦇚 # CJK COMPATIBILITY IDEOGRAPH-2F898 -2F899 å½¢ # CJK COMPATIBILITY IDEOGRAPH-2F899 -2F89A 彫 # CJK COMPATIBILITY IDEOGRAPH-2F89A -2F89B 㣣 # CJK COMPATIBILITY IDEOGRAPH-2F89B -2F89C 徚 # CJK COMPATIBILITY IDEOGRAPH-2F89C -2F89D å¿ # CJK COMPATIBILITY IDEOGRAPH-2F89D -2F89E å¿— # CJK COMPATIBILITY IDEOGRAPH-2F89E -2F89F 忹 # CJK COMPATIBILITY IDEOGRAPH-2F89F -2F8A0 æ‚ # CJK COMPATIBILITY IDEOGRAPH-2F8A0 -2F8A1 㤺 # CJK COMPATIBILITY IDEOGRAPH-2F8A1 -2F8A2 㤜 # CJK COMPATIBILITY IDEOGRAPH-2F8A2 -2F8A3 æ‚” # CJK COMPATIBILITY IDEOGRAPH-2F8A3 -2F8A4 𢛔 # CJK COMPATIBILITY IDEOGRAPH-2F8A4 -2F8A5 惇 # CJK COMPATIBILITY IDEOGRAPH-2F8A5 -2F8A6 æ…ˆ # CJK COMPATIBILITY IDEOGRAPH-2F8A6 -2F8A7 æ…Œ # CJK COMPATIBILITY IDEOGRAPH-2F8A7 -2F8A8 æ…Ž # CJK COMPATIBILITY IDEOGRAPH-2F8A8 -2F8A9 æ…Œ # CJK COMPATIBILITY IDEOGRAPH-2F8A9 -2F8AA æ…º # CJK COMPATIBILITY IDEOGRAPH-2F8AA -2F8AB 憎 # CJK COMPATIBILITY IDEOGRAPH-2F8AB -2F8AC 憲 # CJK COMPATIBILITY IDEOGRAPH-2F8AC -2F8AD 憤 # CJK COMPATIBILITY IDEOGRAPH-2F8AD -2F8AE 憯 # CJK COMPATIBILITY IDEOGRAPH-2F8AE -2F8AF 懞 # CJK COMPATIBILITY IDEOGRAPH-2F8AF -2F8B0 懲 # CJK COMPATIBILITY IDEOGRAPH-2F8B0 -2F8B1 懶 # CJK COMPATIBILITY IDEOGRAPH-2F8B1 -2F8B2 æˆ # CJK COMPATIBILITY IDEOGRAPH-2F8B2 -2F8B3 戛 # CJK COMPATIBILITY IDEOGRAPH-2F8B3 -2F8B4 æ‰ # CJK COMPATIBILITY IDEOGRAPH-2F8B4 -2F8B5 抱 # CJK COMPATIBILITY IDEOGRAPH-2F8B5 -2F8B6 æ‹” # CJK COMPATIBILITY IDEOGRAPH-2F8B6 -2F8B7 æ # CJK COMPATIBILITY IDEOGRAPH-2F8B7 -2F8B8 𢬌 # CJK COMPATIBILITY IDEOGRAPH-2F8B8 -2F8B9 挽 # CJK COMPATIBILITY IDEOGRAPH-2F8B9 -2F8BA 拼 # CJK COMPATIBILITY IDEOGRAPH-2F8BA -2F8BB æ¨ # CJK COMPATIBILITY IDEOGRAPH-2F8BB -2F8BC 掃 # CJK COMPATIBILITY IDEOGRAPH-2F8BC -2F8BD æ¤ # CJK COMPATIBILITY IDEOGRAPH-2F8BD -2F8BE 𢯱 # CJK COMPATIBILITY IDEOGRAPH-2F8BE -2F8BF æ¢ # CJK COMPATIBILITY IDEOGRAPH-2F8BF -2F8C0 æ… # CJK COMPATIBILITY IDEOGRAPH-2F8C0 -2F8C1 掩 # CJK COMPATIBILITY IDEOGRAPH-2F8C1 -2F8C2 㨮 # CJK COMPATIBILITY IDEOGRAPH-2F8C2 -2F8C3 æ‘© # CJK COMPATIBILITY IDEOGRAPH-2F8C3 -2F8C4 摾 # CJK COMPATIBILITY IDEOGRAPH-2F8C4 -2F8C5 æ’ # CJK COMPATIBILITY IDEOGRAPH-2F8C5 -2F8C6 æ‘· # CJK COMPATIBILITY IDEOGRAPH-2F8C6 -2F8C7 㩬 # CJK COMPATIBILITY IDEOGRAPH-2F8C7 -2F8C8 æ• # CJK COMPATIBILITY IDEOGRAPH-2F8C8 -2F8C9 敬 # CJK COMPATIBILITY IDEOGRAPH-2F8C9 -2F8CA 𣀊 # CJK COMPATIBILITY IDEOGRAPH-2F8CA -2F8CB æ—£ # CJK COMPATIBILITY IDEOGRAPH-2F8CB -2F8CC 書 # CJK COMPATIBILITY IDEOGRAPH-2F8CC -2F8CD 晉 # CJK COMPATIBILITY IDEOGRAPH-2F8CD -2F8CE 㬙 # CJK COMPATIBILITY IDEOGRAPH-2F8CE -2F8CF æš‘ # CJK COMPATIBILITY IDEOGRAPH-2F8CF -2F8D0 㬈 # CJK COMPATIBILITY IDEOGRAPH-2F8D0 -2F8D1 㫤 # CJK COMPATIBILITY IDEOGRAPH-2F8D1 -2F8D2 冒 # CJK COMPATIBILITY IDEOGRAPH-2F8D2 -2F8D3 冕 # CJK COMPATIBILITY IDEOGRAPH-2F8D3 -2F8D4 最 # CJK COMPATIBILITY IDEOGRAPH-2F8D4 -2F8D5 æšœ # CJK COMPATIBILITY IDEOGRAPH-2F8D5 -2F8D6 è‚­ # CJK COMPATIBILITY IDEOGRAPH-2F8D6 -2F8D7 ä™ # CJK COMPATIBILITY IDEOGRAPH-2F8D7 -2F8D8 朗 # CJK COMPATIBILITY IDEOGRAPH-2F8D8 -2F8D9 望 # CJK COMPATIBILITY IDEOGRAPH-2F8D9 -2F8DA 朡 # CJK COMPATIBILITY IDEOGRAPH-2F8DA -2F8DB æž # CJK COMPATIBILITY IDEOGRAPH-2F8DB -2F8DC æ“ # CJK COMPATIBILITY IDEOGRAPH-2F8DC -2F8DD 𣃠# CJK COMPATIBILITY IDEOGRAPH-2F8DD -2F8DE ã­‰ # CJK COMPATIBILITY IDEOGRAPH-2F8DE -2F8DF 柺 # CJK COMPATIBILITY IDEOGRAPH-2F8DF -2F8E0 æž… # CJK COMPATIBILITY IDEOGRAPH-2F8E0 -2F8E1 æ¡’ # CJK COMPATIBILITY IDEOGRAPH-2F8E1 -2F8E2 梅 # CJK COMPATIBILITY IDEOGRAPH-2F8E2 -2F8E3 𣑭 # CJK COMPATIBILITY IDEOGRAPH-2F8E3 -2F8E4 梎 # CJK COMPATIBILITY IDEOGRAPH-2F8E4 -2F8E5 æ Ÿ # CJK COMPATIBILITY IDEOGRAPH-2F8E5 -2F8E6 椔 # CJK COMPATIBILITY IDEOGRAPH-2F8E6 -2F8E7 ã® # CJK COMPATIBILITY IDEOGRAPH-2F8E7 -2F8E8 楂 # CJK COMPATIBILITY IDEOGRAPH-2F8E8 -2F8E9 榣 # CJK COMPATIBILITY IDEOGRAPH-2F8E9 -2F8EA 槪 # CJK COMPATIBILITY IDEOGRAPH-2F8EA -2F8EB 檨 # CJK COMPATIBILITY IDEOGRAPH-2F8EB -2F8EC 𣚣 # CJK COMPATIBILITY IDEOGRAPH-2F8EC -2F8ED æ«› # CJK COMPATIBILITY IDEOGRAPH-2F8ED -2F8EE ã°˜ # CJK COMPATIBILITY IDEOGRAPH-2F8EE -2F8EF 次 # CJK COMPATIBILITY IDEOGRAPH-2F8EF -2F8F0 𣢧 # CJK COMPATIBILITY IDEOGRAPH-2F8F0 -2F8F1 æ­” # CJK COMPATIBILITY IDEOGRAPH-2F8F1 -2F8F2 㱎 # CJK COMPATIBILITY IDEOGRAPH-2F8F2 -2F8F3 æ­² # CJK COMPATIBILITY IDEOGRAPH-2F8F3 -2F8F4 殟 # CJK COMPATIBILITY IDEOGRAPH-2F8F4 -2F8F5 殺 # CJK COMPATIBILITY IDEOGRAPH-2F8F5 -2F8F6 æ®» # CJK COMPATIBILITY IDEOGRAPH-2F8F6 -2F8F7 𣪠# CJK COMPATIBILITY IDEOGRAPH-2F8F7 -2F8F8 ð¡´‹ # CJK COMPATIBILITY IDEOGRAPH-2F8F8 -2F8F9 𣫺 # CJK COMPATIBILITY IDEOGRAPH-2F8F9 -2F8FA 汎 # CJK COMPATIBILITY IDEOGRAPH-2F8FA -2F8FB 𣲼 # CJK COMPATIBILITY IDEOGRAPH-2F8FB -2F8FC 沿 # CJK COMPATIBILITY IDEOGRAPH-2F8FC -2F8FD æ³ # CJK COMPATIBILITY IDEOGRAPH-2F8FD -2F8FE æ±§ # CJK COMPATIBILITY IDEOGRAPH-2F8FE -2F8FF æ´– # CJK COMPATIBILITY IDEOGRAPH-2F8FF -2F900 æ´¾ # CJK COMPATIBILITY IDEOGRAPH-2F900 -2F901 æµ· # CJK COMPATIBILITY IDEOGRAPH-2F901 -2F902 æµ # CJK COMPATIBILITY IDEOGRAPH-2F902 -2F903 浩 # CJK COMPATIBILITY IDEOGRAPH-2F903 -2F904 浸 # CJK COMPATIBILITY IDEOGRAPH-2F904 -2F905 æ¶… # CJK COMPATIBILITY IDEOGRAPH-2F905 -2F906 𣴞 # CJK COMPATIBILITY IDEOGRAPH-2F906 -2F907 æ´´ # CJK COMPATIBILITY IDEOGRAPH-2F907 -2F908 港 # CJK COMPATIBILITY IDEOGRAPH-2F908 -2F909 æ¹® # CJK COMPATIBILITY IDEOGRAPH-2F909 -2F90A ã´³ # CJK COMPATIBILITY IDEOGRAPH-2F90A -2F90B 滋 # CJK COMPATIBILITY IDEOGRAPH-2F90B -2F90C 滇 # CJK COMPATIBILITY IDEOGRAPH-2F90C -2F90D 𣻑 # CJK COMPATIBILITY IDEOGRAPH-2F90D -2F90E æ·¹ # CJK COMPATIBILITY IDEOGRAPH-2F90E -2F90F æ½® # CJK COMPATIBILITY IDEOGRAPH-2F90F -2F910 𣽞 # CJK COMPATIBILITY IDEOGRAPH-2F910 -2F911 𣾎 # CJK COMPATIBILITY IDEOGRAPH-2F911 -2F912 濆 # CJK COMPATIBILITY IDEOGRAPH-2F912 -2F913 瀹 # CJK COMPATIBILITY IDEOGRAPH-2F913 -2F914 瀞 # CJK COMPATIBILITY IDEOGRAPH-2F914 -2F915 瀛 # CJK COMPATIBILITY IDEOGRAPH-2F915 -2F916 ã¶– # CJK COMPATIBILITY IDEOGRAPH-2F916 -2F917 çŠ # CJK COMPATIBILITY IDEOGRAPH-2F917 -2F918 ç½ # CJK COMPATIBILITY IDEOGRAPH-2F918 -2F919 ç· # CJK COMPATIBILITY IDEOGRAPH-2F919 -2F91A ç‚­ # CJK COMPATIBILITY IDEOGRAPH-2F91A -2F91B 𠔥 # CJK COMPATIBILITY IDEOGRAPH-2F91B -2F91C ç…… # CJK COMPATIBILITY IDEOGRAPH-2F91C -2F91D 𤉣 # CJK COMPATIBILITY IDEOGRAPH-2F91D -2F91E 熜 # CJK COMPATIBILITY IDEOGRAPH-2F91E -2F91F 𤎫 # CJK COMPATIBILITY IDEOGRAPH-2F91F -2F920 爨 # CJK COMPATIBILITY IDEOGRAPH-2F920 -2F921 爵 # CJK COMPATIBILITY IDEOGRAPH-2F921 -2F922 ç‰ # CJK COMPATIBILITY IDEOGRAPH-2F922 -2F923 𤘈 # CJK COMPATIBILITY IDEOGRAPH-2F923 -2F924 犀 # CJK COMPATIBILITY IDEOGRAPH-2F924 -2F925 犕 # CJK COMPATIBILITY IDEOGRAPH-2F925 -2F926 𤜵 # CJK COMPATIBILITY IDEOGRAPH-2F926 -2F927 𤠔 # CJK COMPATIBILITY IDEOGRAPH-2F927 -2F928 çº # CJK COMPATIBILITY IDEOGRAPH-2F928 -2F929 王 # CJK COMPATIBILITY IDEOGRAPH-2F929 -2F92A 㺬 # CJK COMPATIBILITY IDEOGRAPH-2F92A -2F92B 玥 # CJK COMPATIBILITY IDEOGRAPH-2F92B -2F92C 㺸 # CJK COMPATIBILITY IDEOGRAPH-2F92C -2F92D 㺸 # CJK COMPATIBILITY IDEOGRAPH-2F92D -2F92E 瑇 # CJK COMPATIBILITY IDEOGRAPH-2F92E -2F92F 瑜 # CJK COMPATIBILITY IDEOGRAPH-2F92F -2F930 瑱 # CJK COMPATIBILITY IDEOGRAPH-2F930 -2F931 ç’… # CJK COMPATIBILITY IDEOGRAPH-2F931 -2F932 瓊 # CJK COMPATIBILITY IDEOGRAPH-2F932 -2F933 ã¼› # CJK COMPATIBILITY IDEOGRAPH-2F933 -2F934 甤 # CJK COMPATIBILITY IDEOGRAPH-2F934 -2F935 𤰶 # CJK COMPATIBILITY IDEOGRAPH-2F935 -2F936 甾 # CJK COMPATIBILITY IDEOGRAPH-2F936 -2F937 𤲒 # CJK COMPATIBILITY IDEOGRAPH-2F937 -2F938 ç•° # CJK COMPATIBILITY IDEOGRAPH-2F938 -2F939 𢆟 # CJK COMPATIBILITY IDEOGRAPH-2F939 -2F93A ç˜ # CJK COMPATIBILITY IDEOGRAPH-2F93A -2F93B 𤾡 # CJK COMPATIBILITY IDEOGRAPH-2F93B -2F93C 𤾸 # CJK COMPATIBILITY IDEOGRAPH-2F93C -2F93D 𥄠# CJK COMPATIBILITY IDEOGRAPH-2F93D -2F93E 㿼 # CJK COMPATIBILITY IDEOGRAPH-2F93E -2F93F 䀈 # CJK COMPATIBILITY IDEOGRAPH-2F93F -2F940 ç›´ # CJK COMPATIBILITY IDEOGRAPH-2F940 -2F941 𥃳 # CJK COMPATIBILITY IDEOGRAPH-2F941 -2F942 𥃲 # CJK COMPATIBILITY IDEOGRAPH-2F942 -2F943 𥄙 # CJK COMPATIBILITY IDEOGRAPH-2F943 -2F944 𥄳 # CJK COMPATIBILITY IDEOGRAPH-2F944 -2F945 眞 # CJK COMPATIBILITY IDEOGRAPH-2F945 -2F946 真 # CJK COMPATIBILITY IDEOGRAPH-2F946 -2F947 真 # CJK COMPATIBILITY IDEOGRAPH-2F947 -2F948 çŠ # CJK COMPATIBILITY IDEOGRAPH-2F948 -2F949 䀹 # CJK COMPATIBILITY IDEOGRAPH-2F949 -2F94A çž‹ # CJK COMPATIBILITY IDEOGRAPH-2F94A -2F94B ä† # CJK COMPATIBILITY IDEOGRAPH-2F94B -2F94C ä‚– # CJK COMPATIBILITY IDEOGRAPH-2F94C -2F94D ð¥ # CJK COMPATIBILITY IDEOGRAPH-2F94D -2F94E 硎 # CJK COMPATIBILITY IDEOGRAPH-2F94E -2F94F 碌 # CJK COMPATIBILITY IDEOGRAPH-2F94F -2F950 磌 # CJK COMPATIBILITY IDEOGRAPH-2F950 -2F951 䃣 # CJK COMPATIBILITY IDEOGRAPH-2F951 -2F952 𥘦 # CJK COMPATIBILITY IDEOGRAPH-2F952 -2F953 祖 # CJK COMPATIBILITY IDEOGRAPH-2F953 -2F954 𥚚 # CJK COMPATIBILITY IDEOGRAPH-2F954 -2F955 𥛅 # CJK COMPATIBILITY IDEOGRAPH-2F955 -2F956 ç¦ # CJK COMPATIBILITY IDEOGRAPH-2F956 -2F957 ç§« # CJK COMPATIBILITY IDEOGRAPH-2F957 -2F958 䄯 # CJK COMPATIBILITY IDEOGRAPH-2F958 -2F959 ç©€ # CJK COMPATIBILITY IDEOGRAPH-2F959 -2F95A 穊 # CJK COMPATIBILITY IDEOGRAPH-2F95A -2F95B ç© # CJK COMPATIBILITY IDEOGRAPH-2F95B -2F95C 𥥼 # CJK COMPATIBILITY IDEOGRAPH-2F95C -2F95D 𥪧 # CJK COMPATIBILITY IDEOGRAPH-2F95D -2F95E 𥪧 # CJK COMPATIBILITY IDEOGRAPH-2F95E -2F95F ç«® # CJK COMPATIBILITY IDEOGRAPH-2F95F -2F960 䈂 # CJK COMPATIBILITY IDEOGRAPH-2F960 -2F961 𥮫 # CJK COMPATIBILITY IDEOGRAPH-2F961 -2F962 篆 # CJK COMPATIBILITY IDEOGRAPH-2F962 -2F963 築 # CJK COMPATIBILITY IDEOGRAPH-2F963 -2F964 䈧 # CJK COMPATIBILITY IDEOGRAPH-2F964 -2F965 𥲀 # CJK COMPATIBILITY IDEOGRAPH-2F965 -2F966 ç³’ # CJK COMPATIBILITY IDEOGRAPH-2F966 -2F967 䊠 # CJK COMPATIBILITY IDEOGRAPH-2F967 -2F968 糨 # CJK COMPATIBILITY IDEOGRAPH-2F968 -2F969 ç³£ # CJK COMPATIBILITY IDEOGRAPH-2F969 -2F96A ç´€ # CJK COMPATIBILITY IDEOGRAPH-2F96A -2F96B 𥾆 # CJK COMPATIBILITY IDEOGRAPH-2F96B -2F96C çµ£ # CJK COMPATIBILITY IDEOGRAPH-2F96C -2F96D äŒ # CJK COMPATIBILITY IDEOGRAPH-2F96D -2F96E ç·‡ # CJK COMPATIBILITY IDEOGRAPH-2F96E -2F96F 縂 # CJK COMPATIBILITY IDEOGRAPH-2F96F -2F970 ç¹… # CJK COMPATIBILITY IDEOGRAPH-2F970 -2F971 䌴 # CJK COMPATIBILITY IDEOGRAPH-2F971 -2F972 𦈨 # CJK COMPATIBILITY IDEOGRAPH-2F972 -2F973 𦉇 # CJK COMPATIBILITY IDEOGRAPH-2F973 -2F974 ä™ # CJK COMPATIBILITY IDEOGRAPH-2F974 -2F975 𦋙 # CJK COMPATIBILITY IDEOGRAPH-2F975 -2F976 罺 # CJK COMPATIBILITY IDEOGRAPH-2F976 -2F977 𦌾 # CJK COMPATIBILITY IDEOGRAPH-2F977 -2F978 羕 # CJK COMPATIBILITY IDEOGRAPH-2F978 -2F979 翺 # CJK COMPATIBILITY IDEOGRAPH-2F979 -2F97A 者 # CJK COMPATIBILITY IDEOGRAPH-2F97A -2F97B 𦓚 # CJK COMPATIBILITY IDEOGRAPH-2F97B -2F97C 𦔣 # CJK COMPATIBILITY IDEOGRAPH-2F97C -2F97D è  # CJK COMPATIBILITY IDEOGRAPH-2F97D -2F97E 𦖨 # CJK COMPATIBILITY IDEOGRAPH-2F97E -2F97F è° # CJK COMPATIBILITY IDEOGRAPH-2F97F -2F980 𣟠# CJK COMPATIBILITY IDEOGRAPH-2F980 -2F981 ä• # CJK COMPATIBILITY IDEOGRAPH-2F981 -2F982 育 # CJK COMPATIBILITY IDEOGRAPH-2F982 -2F983 脃 # CJK COMPATIBILITY IDEOGRAPH-2F983 -2F984 ä‹ # CJK COMPATIBILITY IDEOGRAPH-2F984 -2F985 脾 # CJK COMPATIBILITY IDEOGRAPH-2F985 -2F986 媵 # CJK COMPATIBILITY IDEOGRAPH-2F986 -2F987 𦞧 # CJK COMPATIBILITY IDEOGRAPH-2F987 -2F988 𦞵 # CJK COMPATIBILITY IDEOGRAPH-2F988 -2F989 𣎓 # CJK COMPATIBILITY IDEOGRAPH-2F989 -2F98A 𣎜 # CJK COMPATIBILITY IDEOGRAPH-2F98A -2F98B èˆ # CJK COMPATIBILITY IDEOGRAPH-2F98B -2F98C 舄 # CJK COMPATIBILITY IDEOGRAPH-2F98C -2F98D 辞 # CJK COMPATIBILITY IDEOGRAPH-2F98D -2F98E ä‘« # CJK COMPATIBILITY IDEOGRAPH-2F98E -2F98F 芑 # CJK COMPATIBILITY IDEOGRAPH-2F98F -2F990 芋 # CJK COMPATIBILITY IDEOGRAPH-2F990 -2F991 èŠ # CJK COMPATIBILITY IDEOGRAPH-2F991 -2F992 劳 # CJK COMPATIBILITY IDEOGRAPH-2F992 -2F993 花 # CJK COMPATIBILITY IDEOGRAPH-2F993 -2F994 芳 # CJK COMPATIBILITY IDEOGRAPH-2F994 -2F995 芽 # CJK COMPATIBILITY IDEOGRAPH-2F995 -2F996 苦 # CJK COMPATIBILITY IDEOGRAPH-2F996 -2F997 𦬼 # CJK COMPATIBILITY IDEOGRAPH-2F997 -2F998 è‹¥ # CJK COMPATIBILITY IDEOGRAPH-2F998 -2F999 èŒ # CJK COMPATIBILITY IDEOGRAPH-2F999 -2F99A è£ # CJK COMPATIBILITY IDEOGRAPH-2F99A -2F99B 莭 # CJK COMPATIBILITY IDEOGRAPH-2F99B -2F99C 茣 # CJK COMPATIBILITY IDEOGRAPH-2F99C -2F99D 莽 # CJK COMPATIBILITY IDEOGRAPH-2F99D -2F99E è§ # CJK COMPATIBILITY IDEOGRAPH-2F99E -2F99F è‘— # CJK COMPATIBILITY IDEOGRAPH-2F99F -2F9A0 è“ # CJK COMPATIBILITY IDEOGRAPH-2F9A0 -2F9A1 èŠ # CJK COMPATIBILITY IDEOGRAPH-2F9A1 -2F9A2 èŒ # CJK COMPATIBILITY IDEOGRAPH-2F9A2 -2F9A3 èœ # CJK COMPATIBILITY IDEOGRAPH-2F9A3 -2F9A4 𦰶 # CJK COMPATIBILITY IDEOGRAPH-2F9A4 -2F9A5 𦵫 # CJK COMPATIBILITY IDEOGRAPH-2F9A5 -2F9A6 𦳕 # CJK COMPATIBILITY IDEOGRAPH-2F9A6 -2F9A7 䔫 # CJK COMPATIBILITY IDEOGRAPH-2F9A7 -2F9A8 蓱 # CJK COMPATIBILITY IDEOGRAPH-2F9A8 -2F9A9 蓳 # CJK COMPATIBILITY IDEOGRAPH-2F9A9 -2F9AA è”– # CJK COMPATIBILITY IDEOGRAPH-2F9AA -2F9AB ð§Š # CJK COMPATIBILITY IDEOGRAPH-2F9AB -2F9AC 蕤 # CJK COMPATIBILITY IDEOGRAPH-2F9AC -2F9AD 𦼬 # CJK COMPATIBILITY IDEOGRAPH-2F9AD -2F9AE ä• # CJK COMPATIBILITY IDEOGRAPH-2F9AE -2F9AF ä•¡ # CJK COMPATIBILITY IDEOGRAPH-2F9AF -2F9B0 𦾱 # CJK COMPATIBILITY IDEOGRAPH-2F9B0 -2F9B1 𧃒 # CJK COMPATIBILITY IDEOGRAPH-2F9B1 -2F9B2 ä•« # CJK COMPATIBILITY IDEOGRAPH-2F9B2 -2F9B3 è™ # CJK COMPATIBILITY IDEOGRAPH-2F9B3 -2F9B4 虜 # CJK COMPATIBILITY IDEOGRAPH-2F9B4 -2F9B5 è™§ # CJK COMPATIBILITY IDEOGRAPH-2F9B5 -2F9B6 虩 # CJK COMPATIBILITY IDEOGRAPH-2F9B6 -2F9B7 èš© # CJK COMPATIBILITY IDEOGRAPH-2F9B7 -2F9B8 蚈 # CJK COMPATIBILITY IDEOGRAPH-2F9B8 -2F9B9 蜎 # CJK COMPATIBILITY IDEOGRAPH-2F9B9 -2F9BA 蛢 # CJK COMPATIBILITY IDEOGRAPH-2F9BA -2F9BB è¹ # CJK COMPATIBILITY IDEOGRAPH-2F9BB -2F9BC 蜨 # CJK COMPATIBILITY IDEOGRAPH-2F9BC -2F9BD è« # CJK COMPATIBILITY IDEOGRAPH-2F9BD -2F9BE 螆 # CJK COMPATIBILITY IDEOGRAPH-2F9BE -2F9BF ä—— # CJK COMPATIBILITY IDEOGRAPH-2F9BF -2F9C0 蟡 # CJK COMPATIBILITY IDEOGRAPH-2F9C0 -2F9C1 è  # CJK COMPATIBILITY IDEOGRAPH-2F9C1 -2F9C2 ä—¹ # CJK COMPATIBILITY IDEOGRAPH-2F9C2 -2F9C3 è¡  # CJK COMPATIBILITY IDEOGRAPH-2F9C3 -2F9C4 è¡£ # CJK COMPATIBILITY IDEOGRAPH-2F9C4 -2F9C5 ð§™§ # CJK COMPATIBILITY IDEOGRAPH-2F9C5 -2F9C6 裗 # CJK COMPATIBILITY IDEOGRAPH-2F9C6 -2F9C7 裞 # CJK COMPATIBILITY IDEOGRAPH-2F9C7 -2F9C8 䘵 # CJK COMPATIBILITY IDEOGRAPH-2F9C8 -2F9C9 裺 # CJK COMPATIBILITY IDEOGRAPH-2F9C9 -2F9CA ã’» # CJK COMPATIBILITY IDEOGRAPH-2F9CA -2F9CB ð§¢® # CJK COMPATIBILITY IDEOGRAPH-2F9CB -2F9CC 𧥦 # CJK COMPATIBILITY IDEOGRAPH-2F9CC -2F9CD äš¾ # CJK COMPATIBILITY IDEOGRAPH-2F9CD -2F9CE 䛇 # CJK COMPATIBILITY IDEOGRAPH-2F9CE -2F9CF 誠 # CJK COMPATIBILITY IDEOGRAPH-2F9CF -2F9D0 è«­ # CJK COMPATIBILITY IDEOGRAPH-2F9D0 -2F9D1 變 # CJK COMPATIBILITY IDEOGRAPH-2F9D1 -2F9D2 豕 # CJK COMPATIBILITY IDEOGRAPH-2F9D2 -2F9D3 𧲨 # CJK COMPATIBILITY IDEOGRAPH-2F9D3 -2F9D4 貫 # CJK COMPATIBILITY IDEOGRAPH-2F9D4 -2F9D5 è³ # CJK COMPATIBILITY IDEOGRAPH-2F9D5 -2F9D6 è´› # CJK COMPATIBILITY IDEOGRAPH-2F9D6 -2F9D7 èµ· # CJK COMPATIBILITY IDEOGRAPH-2F9D7 -2F9D8 𧼯 # CJK COMPATIBILITY IDEOGRAPH-2F9D8 -2F9D9 ð  „ # CJK COMPATIBILITY IDEOGRAPH-2F9D9 -2F9DA è·‹ # CJK COMPATIBILITY IDEOGRAPH-2F9DA -2F9DB è¶¼ # CJK COMPATIBILITY IDEOGRAPH-2F9DB -2F9DC è·° # CJK COMPATIBILITY IDEOGRAPH-2F9DC -2F9DD 𠣞 # CJK COMPATIBILITY IDEOGRAPH-2F9DD -2F9DE è»” # CJK COMPATIBILITY IDEOGRAPH-2F9DE -2F9DF 輸 # CJK COMPATIBILITY IDEOGRAPH-2F9DF -2F9E0 𨗒 # CJK COMPATIBILITY IDEOGRAPH-2F9E0 -2F9E1 𨗭 # CJK COMPATIBILITY IDEOGRAPH-2F9E1 -2F9E2 é‚” # CJK COMPATIBILITY IDEOGRAPH-2F9E2 -2F9E3 郱 # CJK COMPATIBILITY IDEOGRAPH-2F9E3 -2F9E4 é„‘ # CJK COMPATIBILITY IDEOGRAPH-2F9E4 -2F9E5 𨜮 # CJK COMPATIBILITY IDEOGRAPH-2F9E5 -2F9E6 é„› # CJK COMPATIBILITY IDEOGRAPH-2F9E6 -2F9E7 鈸 # CJK COMPATIBILITY IDEOGRAPH-2F9E7 -2F9E8 é‹— # CJK COMPATIBILITY IDEOGRAPH-2F9E8 -2F9E9 鋘 # CJK COMPATIBILITY IDEOGRAPH-2F9E9 -2F9EA 鉼 # CJK COMPATIBILITY IDEOGRAPH-2F9EA -2F9EB é¹ # CJK COMPATIBILITY IDEOGRAPH-2F9EB -2F9EC é• # CJK COMPATIBILITY IDEOGRAPH-2F9EC -2F9ED 𨯺 # CJK COMPATIBILITY IDEOGRAPH-2F9ED -2F9EE é–‹ # CJK COMPATIBILITY IDEOGRAPH-2F9EE -2F9EF 䦕 # CJK COMPATIBILITY IDEOGRAPH-2F9EF -2F9F0 é–· # CJK COMPATIBILITY IDEOGRAPH-2F9F0 -2F9F1 𨵷 # CJK COMPATIBILITY IDEOGRAPH-2F9F1 -2F9F2 䧦 # CJK COMPATIBILITY IDEOGRAPH-2F9F2 -2F9F3 雃 # CJK COMPATIBILITY IDEOGRAPH-2F9F3 -2F9F4 å¶² # CJK COMPATIBILITY IDEOGRAPH-2F9F4 -2F9F5 霣 # CJK COMPATIBILITY IDEOGRAPH-2F9F5 -2F9F6 ð©…… # CJK COMPATIBILITY IDEOGRAPH-2F9F6 -2F9F7 𩈚 # CJK COMPATIBILITY IDEOGRAPH-2F9F7 -2F9F8 ä©® # CJK COMPATIBILITY IDEOGRAPH-2F9F8 -2F9F9 ä©¶ # CJK COMPATIBILITY IDEOGRAPH-2F9F9 -2F9FA 韠 # CJK COMPATIBILITY IDEOGRAPH-2F9FA -2F9FB 𩊠# CJK COMPATIBILITY IDEOGRAPH-2F9FB -2F9FC 䪲 # CJK COMPATIBILITY IDEOGRAPH-2F9FC -2F9FD ð©’– # CJK COMPATIBILITY IDEOGRAPH-2F9FD -2F9FE é ‹ # CJK COMPATIBILITY IDEOGRAPH-2F9FE -2F9FF é ‹ # CJK COMPATIBILITY IDEOGRAPH-2F9FF -2FA00 é © # CJK COMPATIBILITY IDEOGRAPH-2FA00 -2FA01 ð©–¶ # CJK COMPATIBILITY IDEOGRAPH-2FA01 -2FA02 飢 # CJK COMPATIBILITY IDEOGRAPH-2FA02 -2FA03 䬳 # CJK COMPATIBILITY IDEOGRAPH-2FA03 -2FA04 餩 # CJK COMPATIBILITY IDEOGRAPH-2FA04 -2FA05 馧 # CJK COMPATIBILITY IDEOGRAPH-2FA05 -2FA06 é§‚ # CJK COMPATIBILITY IDEOGRAPH-2FA06 -2FA07 é§¾ # CJK COMPATIBILITY IDEOGRAPH-2FA07 -2FA08 䯎 # CJK COMPATIBILITY IDEOGRAPH-2FA08 -2FA09 𩬰 # CJK COMPATIBILITY IDEOGRAPH-2FA09 -2FA0A 鬒 # CJK COMPATIBILITY IDEOGRAPH-2FA0A -2FA0B é±€ # CJK COMPATIBILITY IDEOGRAPH-2FA0B -2FA0C é³½ # CJK COMPATIBILITY IDEOGRAPH-2FA0C -2FA0D 䳎 # CJK COMPATIBILITY IDEOGRAPH-2FA0D -2FA0E ä³­ # CJK COMPATIBILITY IDEOGRAPH-2FA0E -2FA0F éµ§ # CJK COMPATIBILITY IDEOGRAPH-2FA0F -2FA10 𪃎 # CJK COMPATIBILITY IDEOGRAPH-2FA10 -2FA11 䳸 # CJK COMPATIBILITY IDEOGRAPH-2FA11 -2FA12 𪄅 # CJK COMPATIBILITY IDEOGRAPH-2FA12 -2FA13 𪈎 # CJK COMPATIBILITY IDEOGRAPH-2FA13 -2FA14 𪊑 # CJK COMPATIBILITY IDEOGRAPH-2FA14 -2FA15 麻 # CJK COMPATIBILITY IDEOGRAPH-2FA15 -2FA16 äµ– # CJK COMPATIBILITY IDEOGRAPH-2FA16 -2FA17 黹 # CJK COMPATIBILITY IDEOGRAPH-2FA17 -2FA18 黾 # CJK COMPATIBILITY IDEOGRAPH-2FA18 -2FA19 é¼… # CJK COMPATIBILITY IDEOGRAPH-2FA19 -2FA1A é¼ # CJK COMPATIBILITY IDEOGRAPH-2FA1A -2FA1B é¼– # CJK COMPATIBILITY IDEOGRAPH-2FA1B -2FA1C é¼» # CJK COMPATIBILITY IDEOGRAPH-2FA1C -2FA1D 𪘀 # CJK COMPATIBILITY IDEOGRAPH-2FA1D diff --git a/jni/parted/libiconv/lib/translit.h b/jni/parted/libiconv/lib/translit.h deleted file mode 100755 index a60863a..0000000 --- a/jni/parted/libiconv/lib/translit.h +++ /dev/null @@ -1,4410 +0,0 @@ -/* - * Copyright (C) 1999-2003 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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 GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * Transliteration table - */ - -static const unsigned int translit_data[9116] = { - 1, ' ', - 1, '!', - 1, 'c', - 2, 'l', 'b', - 3, 'y', 'e', 'n', - 1, '|', - 2, 'S', 'S', - 1, '"', - 3, '(', 'c', ')', - 1, 'a', - 2, '<', '<', - 3, 'n', 'o', 't', - 1, '-', - 3, '(', 'R', ')', - 2, '^', '0', - 3, '+', '/', '-', - 2, '^', '2', - 2, '^', '3', - 1,'\'', - 1, 'u', - 1, 'P', - 1, '.', - 1, ',', - 2, '^', '1', - 1, 'o', - 2, '>', '>', - 5, ' ', '1',0x2044, '4', ' ', - 5, ' ', '1',0x2044, '2', ' ', - 5, ' ', '3',0x2044, '4', ' ', - 1, '?', - 2, '`', 'A', - 2,0xB4, 'A', - 2, '^', 'A', - 2, '~', 'A', - 2, '"', 'A', - 1, 'A', - 2, 'A', 'E', - 1, 'C', - 2, '`', 'E', - 2,0xB4, 'E', - 2, '^', 'E', - 2, '"', 'E', - 2, '`', 'I', - 2,0xB4, 'I', - 2, '^', 'I', - 2, '"', 'I', - 1, 'D', - 2, '~', 'N', - 2, '`', 'O', - 2,0xB4, 'O', - 2, '^', 'O', - 2, '~', 'O', - 2, '"', 'O', - 1, 'x', - 1, 'O', - 2, '`', 'U', - 2,0xB4, 'U', - 2, '^', 'U', - 2, '"', 'U', - 2,0xB4, 'Y', - 2, 'T', 'h', - 2, 's', 's', - 2, '`', 'a', - 2,0xB4, 'a', - 2, '^', 'a', - 2, '~', 'a', - 2, '"', 'a', - 1, 'a', - 2, 'a', 'e', - 1, 'c', - 2, '`', 'e', - 2,0xB4, 'e', - 2, '^', 'e', - 2, '"', 'e', - 2, '`', 'i', - 2,0xB4, 'i', - 2, '^', 'i', - 2, '"', 'i', - 1, 'd', - 2, '~', 'n', - 2, '`', 'o', - 2,0xB4, 'o', - 2, '^', 'o', - 2, '~', 'o', - 2, '"', 'o', - 1, ':', - 1, 'o', - 2, '`', 'u', - 2,0xB4, 'u', - 2, '^', 'u', - 2, '"', 'u', - 2,0xB4, 'y', - 2, 't', 'h', - 2, '"', 'y', - 1, 'A', - 1, 'a', - 1, 'A', - 1, 'a', - 1, 'A', - 1, 'a', - 2,0xB4, 'C', - 2,0xB4, 'c', - 2, '^', 'C', - 2, '^', 'c', - 1, 'C', - 1, 'c', - 1, 'C', - 1, 'c', - 1, 'D', - 1, 'd', - 1, 'D', - 1, 'd', - 1, 'E', - 1, 'e', - 1, 'E', - 1, 'e', - 1, 'E', - 1, 'e', - 1, 'E', - 1, 'e', - 1, 'E', - 1, 'e', - 2, '^', 'G', - 2, '^', 'g', - 1, 'G', - 1, 'g', - 1, 'G', - 1, 'g', - 1, 'G', - 1, 'g', - 2, '^', 'H', - 2, '^', 'h', - 1, 'H', - 1, 'h', - 2, '~', 'I', - 2, '~', 'i', - 1, 'I', - 1, 'i', - 1, 'I', - 1, 'i', - 1, 'I', - 1, 'i', - 1, 'I', - 1, 'i', - 2, 'I', 'J', - 2, 'i', 'j', - 2, '^', 'J', - 2, '^', 'j', - 1, 'K', - 1, 'k', - 1, 'L', - 1, 'l', - 1, 'L', - 1, 'l', - 1, 'L', - 1, 'l', - 1, 'L', - 1, 'l', - 1, 'L', - 1, 'l', - 2,0xB4, 'N', - 2,0xB4, 'n', - 1, 'N', - 1, 'n', - 1, 'N', - 1, 'n', - 2,'\'', 'n', - 1, 'O', - 1, 'o', - 1, 'O', - 1, 'o', - 2, '"', 'O', - 2, '"', 'o', - 2, 'O', 'E', - 2, 'o', 'e', - 2,0xB4, 'R', - 2,0xB4, 'r', - 1, 'R', - 1, 'r', - 1, 'R', - 1, 'r', - 2,0xB4, 'S', - 2,0xB4, 's', - 2, '^', 'S', - 2, '^', 's', - 1, 'S', - 1, 's', - 1, 'S', - 1, 's', - 1, 'T', - 1, 't', - 1, 'T', - 1, 't', - 1, 'T', - 1, 't', - 2, '~', 'U', - 2, '~', 'u', - 1, 'U', - 1, 'u', - 1, 'U', - 1, 'u', - 1, 'U', - 1, 'u', - 2, '"', 'U', - 2, '"', 'u', - 1, 'U', - 1, 'u', - 2, '^', 'W', - 2, '^', 'w', - 2, '^', 'Y', - 2, '^', 'y', - 2, '"', 'Y', - 2,0xB4, 'Z', - 2,0xB4, 'z', - 1, 'Z', - 1, 'z', - 1, 'Z', - 1, 'z', - 1, 's', - 1, 'f', - 2, 'D',0x017D, - 2, 'D',0x017E, - 2, 'd',0x017E, - 2, 'L', 'J', - 2, 'L', 'j', - 2, 'l', 'j', - 2, 'N', 'J', - 2, 'N', 'j', - 2, 'n', 'j', - 2, 'D', 'Z', - 2, 'D', 'z', - 2, 'd', 'z', - 1, 'S', - 1, 's', - 1, 'T', - 1, 't', - 1,0x2032, - 1,0x2033, - 1,0x2018, - 1,0x2019, - 1,0x201B, - 1, '^', - 1,'\'', - 1,0xAF, - 1,0xB4, - 1, '`', - 1, '_', - 1, '~', - 1, '"', - 1,0x03B2, - 1,0x03B8, - 1,0x03A5, - 1,0x03C6, - 1,0x03C0, - 1,0x03BA, - 1,0x03C1, - 1,0x03C2, - 1,0x0398, - 1,0x03B5, - 1,0x03A3, - 2,0x0565,0x0582, - 2,0x05D5,0x05D5, - 2,0x05D5,0x05D9, - 2,0x05D9,0x05D9, - 2,0x0627,0x0674, - 2,0x0648,0x0674, - 2,0x06C7,0x0674, - 2,0x064A,0x0674, - 2,0x0E4D,0x0E32, - 2,0x0ECD,0x0EB2, - 2,0x0EAB,0x0E99, - 2,0x0EAB,0x0EA1, - 2,0x0FB2,0x0F81, - 2,0x0FB3,0x0F81, - 1, 'B', - 1, 'b', - 1, 'D', - 1, 'd', - 1, 'F', - 1, 'f', - 1, 'M', - 1, 'm', - 1, 'P', - 1, 'p', - 1, 'S', - 1, 's', - 1, 'T', - 1, 't', - 2, '`', 'W', - 2, '`', 'w', - 2,0xB4, 'W', - 2,0xB4, 'w', - 2, '"', 'W', - 2, '"', 'w', - 2, 'a',0x02BE, - 2, '`', 'Y', - 2, '`', 'y', - 1, ' ', - 1, ' ', - 1, ' ', - 1, ' ', - 1, ' ', - 1, ' ', - 1, ' ', - 1, ' ', - 1, '-', - 1, '-', - 1, '-', - 1, '-', - 1, '-', - 1, '-', - 1,'\'', - 1,'\'', - 1, ',', - 1,'\'', - 1, '"', - 1, '"', - 1, '"', - 1, '"', - 1, '+', - 1, 'o', - 1, '.', - 2, '.', '.', - 3, '.', '.', '.', - 4, 'o', '/', 'o', 'o', - 1,0xB4, - 2,0xB4,0xB4, - 3,0xB4,0xB4,0xB4, - 2,0x2035,0x2035, - 3,0x2035,0x2035,0x2035, - 1, '<', - 1, '>', - 2, '!', '!', - 1, '/', - 2, '?', '?', - 2, '?', '!', - 2, '!', '?', - 4,0xB4,0xB4,0xB4,0xB4, - 2, 'R', 's', - 4,0x0110,0x1ED3, 'n', 'g', - 3, 'E', 'U', 'R', - 3, 'a', '/', 'c', - 3, 'a', '/', 's', - 1, 'C', - 2,0xB0, 'C', - 3, 'c', '/', 'o', - 3, 'c', '/', 'u', - 1,0x0190, - 2,0xB0, 'F', - 1, 'g', - 1, 'H', - 1, 'H', - 1, 'H', - 1, 'h', - 1,0x0127, - 1, 'I', - 1, 'I', - 1, 'L', - 1, 'l', - 1, 'N', - 2, 'N', 'o', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'R', - 1, 'R', - 3, 'T', 'E', 'L', - 2, 'T', 'M', - 1, 'Z', - 3, 'O', 'h', 'm', - 1, 'Z', - 1, 'B', - 1, 'C', - 1, 'e', - 1, 'e', - 1, 'E', - 1, 'F', - 1, 'M', - 1, 'o', - 1,0x05D0, - 1,0x05D1, - 1,0x05D2, - 1,0x05D3, - 1, 'i', - 3, 'F', 'A', 'X', - 1,0x03B3, - 1,0x0393, - 1,0x03A0, - 1,0x2211, - 1, 'D', - 1, 'd', - 1, 'e', - 1, 'i', - 1, 'j', - 5, ' ', '1',0x2044, '3', ' ', - 5, ' ', '2',0x2044, '3', ' ', - 5, ' ', '1',0x2044, '5', ' ', - 5, ' ', '2',0x2044, '5', ' ', - 5, ' ', '3',0x2044, '5', ' ', - 5, ' ', '4',0x2044, '5', ' ', - 5, ' ', '1',0x2044, '6', ' ', - 5, ' ', '5',0x2044, '6', ' ', - 5, ' ', '1',0x2044, '8', ' ', - 5, ' ', '3',0x2044, '8', ' ', - 5, ' ', '5',0x2044, '8', ' ', - 5, ' ', '7',0x2044, '8', ' ', - 3, ' ', '1',0x2044, - 1, 'I', - 2, 'I', 'I', - 3, 'I', 'I', 'I', - 2, 'I', 'V', - 1, 'V', - 2, 'V', 'I', - 3, 'V', 'I', 'I', - 4, 'V', 'I', 'I', 'I', - 2, 'I', 'X', - 1, 'X', - 2, 'X', 'I', - 3, 'X', 'I', 'I', - 1, 'L', - 1, 'C', - 1, 'D', - 1, 'M', - 1, 'i', - 2, 'i', 'i', - 3, 'i', 'i', 'i', - 2, 'i', 'v', - 1, 'v', - 2, 'v', 'i', - 3, 'v', 'i', 'i', - 4, 'v', 'i', 'i', 'i', - 2, 'i', 'x', - 1, 'x', - 2, 'x', 'i', - 3, 'x', 'i', 'i', - 1, 'l', - 1, 'c', - 1, 'd', - 1, 'm', - 2, '<', '-', - 1, '^', - 2, '-', '>', - 1, 'V', - 3, '<', '-', '>', - 2, '<', '=', - 2, '=', '>', - 3, '<', '=', '>', - 1, '-', - 1, '/', - 1,'\\', - 1, '*', - 1,0x2022, - 1, '|', - 2,0x222B,0x222B, - 3,0x222B,0x222B,0x222B, - 2,0x222E,0x222E, - 3,0x222E,0x222E,0x222E, - 1, ':', - 1, '~', - 2, '/', '=', - 2, '<', '=', - 2, '>', '=', - 2, '<', '<', - 2, '>', '>', - 1,0xB7, - 3, '<', '<', '<', - 3, '>', '>', '>', - 3,0xB7,0xB7,0xB7, - 5, '[', 'N', 'U', 'L', ']', - 5, '[', 'S', 'O', 'H', ']', - 5, '[', 'S', 'T', 'X', ']', - 5, '[', 'E', 'T', 'X', ']', - 5, '[', 'E', 'O', 'T', ']', - 5, '[', 'E', 'N', 'Q', ']', - 5, '[', 'A', 'C', 'K', ']', - 5, '[', 'B', 'E', 'L', ']', - 4, '[', 'B', 'S', ']', - 4, '[', 'H', 'T', ']', - 4, '[', 'L', 'F', ']', - 4, '[', 'V', 'T', ']', - 4, '[', 'F', 'F', ']', - 4, '[', 'C', 'R', ']', - 4, '[', 'S', 'O', ']', - 4, '[', 'S', 'I', ']', - 5, '[', 'D', 'L', 'E', ']', - 5, '[', 'D', 'C', '1', ']', - 5, '[', 'D', 'C', '2', ']', - 5, '[', 'D', 'C', '3', ']', - 5, '[', 'D', 'C', '4', ']', - 5, '[', 'N', 'A', 'K', ']', - 5, '[', 'S', 'Y', 'N', ']', - 5, '[', 'E', 'T', 'B', ']', - 5, '[', 'C', 'A', 'N', ']', - 4, '[', 'E', 'M', ']', - 5, '[', 'S', 'U', 'B', ']', - 5, '[', 'E', 'S', 'C', ']', - 4, '[', 'F', 'S', ']', - 4, '[', 'G', 'S', ']', - 4, '[', 'R', 'S', ']', - 4, '[', 'U', 'S', ']', - 4, '[', 'S', 'P', ']', - 5, '[', 'D', 'E', 'L', ']', - 4, '[', 'N', 'L', ']', - 3, '(', '1', ')', - 3, '(', '2', ')', - 3, '(', '3', ')', - 3, '(', '4', ')', - 3, '(', '5', ')', - 3, '(', '6', ')', - 3, '(', '7', ')', - 3, '(', '8', ')', - 3, '(', '9', ')', - 4, '(', '1', '0', ')', - 4, '(', '1', '1', ')', - 4, '(', '1', '2', ')', - 4, '(', '1', '3', ')', - 4, '(', '1', '4', ')', - 4, '(', '1', '5', ')', - 4, '(', '1', '6', ')', - 4, '(', '1', '7', ')', - 4, '(', '1', '8', ')', - 4, '(', '1', '9', ')', - 4, '(', '2', '0', ')', - 3, '(', '1', ')', - 3, '(', '2', ')', - 3, '(', '3', ')', - 3, '(', '4', ')', - 3, '(', '5', ')', - 3, '(', '6', ')', - 3, '(', '7', ')', - 3, '(', '8', ')', - 3, '(', '9', ')', - 4, '(', '1', '0', ')', - 4, '(', '1', '1', ')', - 4, '(', '1', '2', ')', - 4, '(', '1', '3', ')', - 4, '(', '1', '4', ')', - 4, '(', '1', '5', ')', - 4, '(', '1', '6', ')', - 4, '(', '1', '7', ')', - 4, '(', '1', '8', ')', - 4, '(', '1', '9', ')', - 4, '(', '2', '0', ')', - 2, '1', '.', - 2, '2', '.', - 2, '3', '.', - 2, '4', '.', - 2, '5', '.', - 2, '6', '.', - 2, '7', '.', - 2, '8', '.', - 2, '9', '.', - 3, '1', '0', '.', - 3, '1', '1', '.', - 3, '1', '2', '.', - 3, '1', '3', '.', - 3, '1', '4', '.', - 3, '1', '5', '.', - 3, '1', '6', '.', - 3, '1', '7', '.', - 3, '1', '8', '.', - 3, '1', '9', '.', - 3, '2', '0', '.', - 3, '(', 'a', ')', - 3, '(', 'b', ')', - 3, '(', 'c', ')', - 3, '(', 'd', ')', - 3, '(', 'e', ')', - 3, '(', 'f', ')', - 3, '(', 'g', ')', - 3, '(', 'h', ')', - 3, '(', 'i', ')', - 3, '(', 'j', ')', - 3, '(', 'k', ')', - 3, '(', 'l', ')', - 3, '(', 'm', ')', - 3, '(', 'n', ')', - 3, '(', 'o', ')', - 3, '(', 'p', ')', - 3, '(', 'q', ')', - 3, '(', 'r', ')', - 3, '(', 's', ')', - 3, '(', 't', ')', - 3, '(', 'u', ')', - 3, '(', 'v', ')', - 3, '(', 'w', ')', - 3, '(', 'x', ')', - 3, '(', 'y', ')', - 3, '(', 'z', ')', - 3, '(', 'A', ')', - 3, '(', 'B', ')', - 3, '(', 'C', ')', - 3, '(', 'D', ')', - 3, '(', 'E', ')', - 3, '(', 'F', ')', - 3, '(', 'G', ')', - 3, '(', 'H', ')', - 3, '(', 'I', ')', - 3, '(', 'J', ')', - 3, '(', 'K', ')', - 3, '(', 'L', ')', - 3, '(', 'M', ')', - 3, '(', 'N', ')', - 3, '(', 'O', ')', - 3, '(', 'P', ')', - 3, '(', 'Q', ')', - 3, '(', 'R', ')', - 3, '(', 'S', ')', - 3, '(', 'T', ')', - 3, '(', 'U', ')', - 3, '(', 'V', ')', - 3, '(', 'W', ')', - 3, '(', 'X', ')', - 3, '(', 'Y', ')', - 3, '(', 'Z', ')', - 3, '(', 'a', ')', - 3, '(', 'b', ')', - 3, '(', 'c', ')', - 3, '(', 'd', ')', - 3, '(', 'e', ')', - 3, '(', 'f', ')', - 3, '(', 'g', ')', - 3, '(', 'h', ')', - 3, '(', 'i', ')', - 3, '(', 'j', ')', - 3, '(', 'k', ')', - 3, '(', 'l', ')', - 3, '(', 'm', ')', - 3, '(', 'n', ')', - 3, '(', 'o', ')', - 3, '(', 'p', ')', - 3, '(', 'q', ')', - 3, '(', 'r', ')', - 3, '(', 's', ')', - 3, '(', 't', ')', - 3, '(', 'u', ')', - 3, '(', 'v', ')', - 3, '(', 'w', ')', - 3, '(', 'x', ')', - 3, '(', 'y', ')', - 3, '(', 'z', ')', - 3, '(', '0', ')', - 1, '-', - 1, '|', - 1, '+', - 1, '+', - 1, '+', - 1, '+', - 1, '+', - 1, '+', - 1, '+', - 1, '+', - 1, '+', - 1, 'o', - 4,0x222B,0x222B,0x222B,0x222B, - 3, ':', ':', '=', - 2, '=', '=', - 3, '=', '=', '=', - 1,0x6BCD, - 1,0x9F9F, - 1,0x4E00, - 1,0x4E28, - 1,0x4E36, - 1,0x4E3F, - 1,0x4E59, - 1,0x4E85, - 1,0x4E8C, - 1,0x4EA0, - 1,0x4EBA, - 1,0x513F, - 1,0x5165, - 1,0x516B, - 1,0x5182, - 1,0x5196, - 1,0x51AB, - 1,0x51E0, - 1,0x51F5, - 1,0x5200, - 1,0x529B, - 1,0x52F9, - 1,0x5315, - 1,0x531A, - 1,0x5338, - 1,0x5341, - 1,0x535C, - 1,0x5369, - 1,0x5382, - 1,0x53B6, - 1,0x53C8, - 1,0x53E3, - 1,0x56D7, - 1,0x571F, - 1,0x58EB, - 1,0x5902, - 1,0x590A, - 1,0x5915, - 1,0x5927, - 1,0x5973, - 1,0x5B50, - 1,0x5B80, - 1,0x5BF8, - 1,0x5C0F, - 1,0x5C22, - 1,0x5C38, - 1,0x5C6E, - 1,0x5C71, - 1,0x5DDB, - 1,0x5DE5, - 1,0x5DF1, - 1,0x5DFE, - 1,0x5E72, - 1,0x5E7A, - 1,0x5E7F, - 1,0x5EF4, - 1,0x5EFE, - 1,0x5F0B, - 1,0x5F13, - 1,0x5F50, - 1,0x5F61, - 1,0x5F73, - 1,0x5FC3, - 1,0x6208, - 1,0x6236, - 1,0x624B, - 1,0x652F, - 1,0x6534, - 1,0x6587, - 1,0x6597, - 1,0x65A4, - 1,0x65B9, - 1,0x65E0, - 1,0x65E5, - 1,0x66F0, - 1,0x6708, - 1,0x6728, - 1,0x6B20, - 1,0x6B62, - 1,0x6B79, - 1,0x6BB3, - 1,0x6BCB, - 1,0x6BD4, - 1,0x6BDB, - 1,0x6C0F, - 1,0x6C14, - 1,0x6C34, - 1,0x706B, - 1,0x722A, - 1,0x7236, - 1,0x723B, - 1,0x723F, - 1,0x7247, - 1,0x7259, - 1,0x725B, - 1,0x72AC, - 1,0x7384, - 1,0x7389, - 1,0x74DC, - 1,0x74E6, - 1,0x7518, - 1,0x751F, - 1,0x7528, - 1,0x7530, - 1,0x758B, - 1,0x7592, - 1,0x7676, - 1,0x767D, - 1,0x76AE, - 1,0x76BF, - 1,0x76EE, - 1,0x77DB, - 1,0x77E2, - 1,0x77F3, - 1,0x793A, - 1,0x79B8, - 1,0x79BE, - 1,0x7A74, - 1,0x7ACB, - 1,0x7AF9, - 1,0x7C73, - 1,0x7CF8, - 1,0x7F36, - 1,0x7F51, - 1,0x7F8A, - 1,0x7FBD, - 1,0x8001, - 1,0x800C, - 1,0x8012, - 1,0x8033, - 1,0x807F, - 1,0x8089, - 1,0x81E3, - 1,0x81EA, - 1,0x81F3, - 1,0x81FC, - 1,0x820C, - 1,0x821B, - 1,0x821F, - 1,0x826E, - 1,0x8272, - 1,0x8278, - 1,0x864D, - 1,0x866B, - 1,0x8840, - 1,0x884C, - 1,0x8863, - 1,0x897E, - 1,0x898B, - 1,0x89D2, - 1,0x8A00, - 1,0x8C37, - 1,0x8C46, - 1,0x8C55, - 1,0x8C78, - 1,0x8C9D, - 1,0x8D64, - 1,0x8D70, - 1,0x8DB3, - 1,0x8EAB, - 1,0x8ECA, - 1,0x8F9B, - 1,0x8FB0, - 1,0x8FB5, - 1,0x9091, - 1,0x9149, - 1,0x91C6, - 1,0x91CC, - 1,0x91D1, - 1,0x9577, - 1,0x9580, - 1,0x961C, - 1,0x96B6, - 1,0x96B9, - 1,0x96E8, - 1,0x9751, - 1,0x975E, - 1,0x9762, - 1,0x9769, - 1,0x97CB, - 1,0x97ED, - 1,0x97F3, - 1,0x9801, - 1,0x98A8, - 1,0x98DB, - 1,0x98DF, - 1,0x9996, - 1,0x9999, - 1,0x99AC, - 1,0x9AA8, - 1,0x9AD8, - 1,0x9ADF, - 1,0x9B25, - 1,0x9B2F, - 1,0x9B32, - 1,0x9B3C, - 1,0x9B5A, - 1,0x9CE5, - 1,0x9E75, - 1,0x9E7F, - 1,0x9EA5, - 1,0x9EBB, - 1,0x9EC3, - 1,0x9ECD, - 1,0x9ED1, - 1,0x9EF9, - 1,0x9EFD, - 1,0x9F0E, - 1,0x9F13, - 1,0x9F20, - 1,0x9F3B, - 1,0x9F4A, - 1,0x9F52, - 1,0x9F8D, - 1,0x9F9C, - 1,0x9FA0, - 1, ' ', - 1,0x3012, - 1,0x5341, - 1,0x5344, - 1,0x5345, - 1,0x3042, - 1,0x3044, - 1,0x3046, - 1,0x3048, - 1,0x304A, - 1,0x3064, - 1,0x3084, - 1,0x3086, - 1,0x3088, - 1,0x308F, - 1,0x304B, - 1,0x3051, - 2, ' ',0x3099, - 2, ' ',0x309A, - 1, '=', - 1,0x30A2, - 1,0x30A4, - 1,0x30A6, - 1,0x30A8, - 1,0x30AA, - 1,0x30C4, - 1,0x30E4, - 1,0x30E6, - 1,0x30E8, - 1,0x30EF, - 1,0x30AB, - 1,0x30B1, - 1,0x1100, - 1,0x1101, - 1,0x11AA, - 1,0x1102, - 1,0x11AC, - 1,0x11AD, - 1,0x1103, - 1,0x1104, - 1,0x1105, - 1,0x11B0, - 1,0x11B1, - 1,0x11B2, - 1,0x11B3, - 1,0x11B4, - 1,0x11B5, - 1,0x111A, - 1,0x1106, - 1,0x1107, - 1,0x1108, - 1,0x1121, - 1,0x1109, - 1,0x110A, - 1,0x110B, - 1,0x110C, - 1,0x110D, - 1,0x110E, - 1,0x110F, - 1,0x1110, - 1,0x1111, - 1,0x1112, - 1,0x1161, - 1,0x1162, - 1,0x1163, - 1,0x1164, - 1,0x1165, - 1,0x1166, - 1,0x1167, - 1,0x1168, - 1,0x1169, - 1,0x116A, - 1,0x116B, - 1,0x116C, - 1,0x116D, - 1,0x116E, - 1,0x116F, - 1,0x1170, - 1,0x1171, - 1,0x1172, - 1,0x1173, - 1,0x1174, - 1,0x1175, - 1,0x1160, - 1,0x1114, - 1,0x1115, - 1,0x11C7, - 1,0x11C8, - 1,0x11CC, - 1,0x11CE, - 1,0x11D3, - 1,0x11D7, - 1,0x11D9, - 1,0x111C, - 1,0x11DD, - 1,0x11DF, - 1,0x111D, - 1,0x111E, - 1,0x1120, - 1,0x1122, - 1,0x1123, - 1,0x1127, - 1,0x1129, - 1,0x112B, - 1,0x112C, - 1,0x112D, - 1,0x112E, - 1,0x112F, - 1,0x1132, - 1,0x1136, - 1,0x1140, - 1,0x1147, - 1,0x114C, - 1,0x11F1, - 1,0x11F2, - 1,0x1157, - 1,0x1158, - 1,0x1159, - 1,0x1184, - 1,0x1185, - 1,0x1188, - 1,0x1191, - 1,0x1192, - 1,0x1194, - 1,0x119E, - 1,0x11A1, - 1,0x30AF, - 1,0x30B7, - 1,0x30B9, - 1,0x30C8, - 1,0x30CC, - 1,0x30CF, - 1,0x30D2, - 1,0x30D5, - 1,0x30D8, - 1,0x30DB, - 1,0x30E0, - 1,0x30E9, - 1,0x30EA, - 1,0x30EB, - 1,0x30EC, - 1,0x30ED, - 3, '(',0x1100, ')', - 3, '(',0x1102, ')', - 3, '(',0x1103, ')', - 3, '(',0x1105, ')', - 3, '(',0x1106, ')', - 3, '(',0x1107, ')', - 3, '(',0x1109, ')', - 3, '(',0x110B, ')', - 3, '(',0x110C, ')', - 3, '(',0x110E, ')', - 3, '(',0x110F, ')', - 3, '(',0x1110, ')', - 3, '(',0x1111, ')', - 3, '(',0x1112, ')', - 4, '(',0x1100,0x1161, ')', - 4, '(',0x1102,0x1161, ')', - 4, '(',0x1103,0x1161, ')', - 4, '(',0x1105,0x1161, ')', - 4, '(',0x1106,0x1161, ')', - 4, '(',0x1107,0x1161, ')', - 4, '(',0x1109,0x1161, ')', - 4, '(',0x110B,0x1161, ')', - 4, '(',0x110C,0x1161, ')', - 4, '(',0x110E,0x1161, ')', - 4, '(',0x110F,0x1161, ')', - 4, '(',0x1110,0x1161, ')', - 4, '(',0x1111,0x1161, ')', - 4, '(',0x1112,0x1161, ')', - 4, '(',0x110C,0x116E, ')', - 7, '(',0x110B,0x1169,0x110C,0x1165,0x11AB, ')', - 6, '(',0x110B,0x1169,0x1112,0x116E, ')', - 3, '(',0x4E00, ')', - 3, '(',0x4E8C, ')', - 3, '(',0x4E09, ')', - 3, '(',0x56DB, ')', - 3, '(',0x4E94, ')', - 3, '(',0x516D, ')', - 3, '(',0x4E03, ')', - 3, '(',0x516B, ')', - 3, '(',0x4E5D, ')', - 3, '(',0x5341, ')', - 3, '(',0x6708, ')', - 3, '(',0x706B, ')', - 3, '(',0x6C34, ')', - 3, '(',0x6728, ')', - 3, '(',0x91D1, ')', - 3, '(',0x571F, ')', - 3, '(',0x65E5, ')', - 3, '(',0x682A, ')', - 3, '(',0x6709, ')', - 3, '(',0x793E, ')', - 3, '(',0x540D, ')', - 3, '(',0x7279, ')', - 3, '(',0x8CA1, ')', - 3, '(',0x795D, ')', - 3, '(',0x52B4, ')', - 3, '(',0x4EE3, ')', - 3, '(',0x547C, ')', - 3, '(',0x5B66, ')', - 3, '(',0x76E3, ')', - 3, '(',0x4F01, ')', - 3, '(',0x8CC7, ')', - 3, '(',0x5354, ')', - 3, '(',0x796D, ')', - 3, '(',0x4F11, ')', - 3, '(',0x81EA, ')', - 3, '(',0x81F3, ')', - 3, 'P', 'T', 'E', - 4, '(', '2', '1', ')', - 4, '(', '2', '2', ')', - 4, '(', '2', '3', ')', - 4, '(', '2', '4', ')', - 4, '(', '2', '5', ')', - 4, '(', '2', '6', ')', - 4, '(', '2', '7', ')', - 4, '(', '2', '8', ')', - 4, '(', '2', '9', ')', - 4, '(', '3', '0', ')', - 4, '(', '3', '1', ')', - 4, '(', '3', '2', ')', - 4, '(', '3', '3', ')', - 4, '(', '3', '4', ')', - 4, '(', '3', '5', ')', - 3, '(',0x1100, ')', - 3, '(',0x1102, ')', - 3, '(',0x1103, ')', - 3, '(',0x1105, ')', - 3, '(',0x1106, ')', - 3, '(',0x1107, ')', - 3, '(',0x1109, ')', - 3, '(',0x110B, ')', - 3, '(',0x110C, ')', - 3, '(',0x110E, ')', - 3, '(',0x110F, ')', - 3, '(',0x1110, ')', - 3, '(',0x1111, ')', - 3, '(',0x1112, ')', - 4, '(',0x1100,0x1161, ')', - 4, '(',0x1102,0x1161, ')', - 4, '(',0x1103,0x1161, ')', - 4, '(',0x1105,0x1161, ')', - 4, '(',0x1106,0x1161, ')', - 4, '(',0x1107,0x1161, ')', - 4, '(',0x1109,0x1161, ')', - 4, '(',0x110B,0x1161, ')', - 4, '(',0x110C,0x1161, ')', - 4, '(',0x110E,0x1161, ')', - 4, '(',0x110F,0x1161, ')', - 4, '(',0x1110,0x1161, ')', - 4, '(',0x1111,0x1161, ')', - 4, '(',0x1112,0x1161, ')', - 7, '(',0x110E,0x1161,0x11B7,0x1100,0x1169, ')', - 6, '(',0x110C,0x116E,0x110B,0x1174, ')', - 3, '(',0x4E00, ')', - 3, '(',0x4E8C, ')', - 3, '(',0x4E09, ')', - 3, '(',0x56DB, ')', - 3, '(',0x4E94, ')', - 3, '(',0x516D, ')', - 3, '(',0x4E03, ')', - 3, '(',0x516B, ')', - 3, '(',0x4E5D, ')', - 3, '(',0x5341, ')', - 3, '(',0x6708, ')', - 3, '(',0x706B, ')', - 3, '(',0x6C34, ')', - 3, '(',0x6728, ')', - 3, '(',0x91D1, ')', - 3, '(',0x571F, ')', - 3, '(',0x65E5, ')', - 3, '(',0x682A, ')', - 3, '(',0x6709, ')', - 3, '(',0x793E, ')', - 3, '(',0x540D, ')', - 3, '(',0x7279, ')', - 3, '(',0x8CA1, ')', - 3, '(',0x795D, ')', - 3, '(',0x52B4, ')', - 3, '(',0x79D8, ')', - 3, '(',0x7537, ')', - 3, '(',0x5973, ')', - 3, '(',0x9069, ')', - 3, '(',0x512A, ')', - 3, '(',0x5370, ')', - 3, '(',0x6CE8, ')', - 3, '(',0x9805, ')', - 3, '(',0x4F11, ')', - 3, '(',0x5199, ')', - 3, '(',0x6B63, ')', - 3, '(',0x4E0A, ')', - 3, '(',0x4E2D, ')', - 3, '(',0x4E0B, ')', - 3, '(',0x5DE6, ')', - 3, '(',0x53F3, ')', - 3, '(',0x533B, ')', - 3, '(',0x5B97, ')', - 3, '(',0x5B66, ')', - 3, '(',0x76E3, ')', - 3, '(',0x4F01, ')', - 3, '(',0x8CC7, ')', - 3, '(',0x5354, ')', - 3, '(',0x591C, ')', - 4, '(', '3', '6', ')', - 4, '(', '3', '7', ')', - 4, '(', '3', '8', ')', - 4, '(', '3', '9', ')', - 4, '(', '4', '0', ')', - 4, '(', '4', '1', ')', - 4, '(', '4', '2', ')', - 4, '(', '4', '3', ')', - 4, '(', '4', '4', ')', - 4, '(', '4', '5', ')', - 4, '(', '4', '6', ')', - 4, '(', '4', '7', ')', - 4, '(', '4', '8', ')', - 4, '(', '4', '9', ')', - 4, '(', '5', '0', ')', - 2, '1',0x6708, - 2, '2',0x6708, - 2, '3',0x6708, - 2, '4',0x6708, - 2, '5',0x6708, - 2, '6',0x6708, - 2, '7',0x6708, - 2, '8',0x6708, - 2, '9',0x6708, - 3, '1', '0',0x6708, - 3, '1', '1',0x6708, - 3, '1', '2',0x6708, - 2, 'H', 'g', - 3, 'e', 'r', 'g', - 2, 'e', 'V', - 3, 'L', 'T', 'D', - 3, '(',0x30A2, ')', - 3, '(',0x30A4, ')', - 3, '(',0x30A6, ')', - 3, '(',0x30A8, ')', - 3, '(',0x30AA, ')', - 3, '(',0x30AB, ')', - 3, '(',0x30AD, ')', - 3, '(',0x30AF, ')', - 3, '(',0x30B1, ')', - 3, '(',0x30B3, ')', - 3, '(',0x30B5, ')', - 3, '(',0x30B7, ')', - 3, '(',0x30B9, ')', - 3, '(',0x30BB, ')', - 3, '(',0x30BD, ')', - 3, '(',0x30BF, ')', - 3, '(',0x30C1, ')', - 3, '(',0x30C4, ')', - 3, '(',0x30C6, ')', - 3, '(',0x30C8, ')', - 3, '(',0x30CA, ')', - 3, '(',0x30CB, ')', - 3, '(',0x30CC, ')', - 3, '(',0x30CD, ')', - 3, '(',0x30CE, ')', - 3, '(',0x30CF, ')', - 3, '(',0x30D2, ')', - 3, '(',0x30D5, ')', - 3, '(',0x30D8, ')', - 3, '(',0x30DB, ')', - 3, '(',0x30DE, ')', - 3, '(',0x30DF, ')', - 3, '(',0x30E0, ')', - 3, '(',0x30E1, ')', - 3, '(',0x30E2, ')', - 3, '(',0x30E4, ')', - 3, '(',0x30E6, ')', - 3, '(',0x30E8, ')', - 3, '(',0x30E9, ')', - 3, '(',0x30EA, ')', - 3, '(',0x30EB, ')', - 3, '(',0x30EC, ')', - 3, '(',0x30ED, ')', - 3, '(',0x30EF, ')', - 3, '(',0x30F0, ')', - 3, '(',0x30F1, ')', - 3, '(',0x30F2, ')', - 4,0x30A2,0x30D1,0x30FC,0x30C8, - 4,0x30A2,0x30EB,0x30D5,0x30A1, - 4,0x30A2,0x30F3,0x30DA,0x30A2, - 3,0x30A2,0x30FC,0x30EB, - 4,0x30A4,0x30CB,0x30F3,0x30B0, - 3,0x30A4,0x30F3,0x30C1, - 3,0x30A6,0x30A9,0x30F3, - 5,0x30A8,0x30B9,0x30AF,0x30FC,0x30C9, - 4,0x30A8,0x30FC,0x30AB,0x30FC, - 3,0x30AA,0x30F3,0x30B9, - 3,0x30AA,0x30FC,0x30E0, - 3,0x30AB,0x30A4,0x30EA, - 4,0x30AB,0x30E9,0x30C3,0x30C8, - 4,0x30AB,0x30ED,0x30EA,0x30FC, - 3,0x30AC,0x30ED,0x30F3, - 3,0x30AC,0x30F3,0x30DE, - 2,0x30AE,0x30AC, - 3,0x30AE,0x30CB,0x30FC, - 4,0x30AD,0x30E5,0x30EA,0x30FC, - 4,0x30AE,0x30EB,0x30C0,0x30FC, - 2,0x30AD,0x30ED, - 5,0x30AD,0x30ED,0x30B0,0x30E9,0x30E0, - 6,0x30AD,0x30ED,0x30E1,0x30FC,0x30C8,0x30EB, - 5,0x30AD,0x30ED,0x30EF,0x30C3,0x30C8, - 3,0x30B0,0x30E9,0x30E0, - 5,0x30B0,0x30E9,0x30E0,0x30C8,0x30F3, - 5,0x30AF,0x30EB,0x30BC,0x30A4,0x30ED, - 4,0x30AF,0x30ED,0x30FC,0x30CD, - 3,0x30B1,0x30FC,0x30B9, - 3,0x30B3,0x30EB,0x30CA, - 3,0x30B3,0x30FC,0x30DD, - 4,0x30B5,0x30A4,0x30AF,0x30EB, - 5,0x30B5,0x30F3,0x30C1,0x30FC,0x30E0, - 4,0x30B7,0x30EA,0x30F3,0x30B0, - 3,0x30BB,0x30F3,0x30C1, - 3,0x30BB,0x30F3,0x30C8, - 3,0x30C0,0x30FC,0x30B9, - 2,0x30C7,0x30B7, - 2,0x30C9,0x30EB, - 2,0x30C8,0x30F3, - 2,0x30CA,0x30CE, - 3,0x30CE,0x30C3,0x30C8, - 3,0x30CF,0x30A4,0x30C4, - 5,0x30D1,0x30FC,0x30BB,0x30F3,0x30C8, - 3,0x30D1,0x30FC,0x30C4, - 4,0x30D0,0x30FC,0x30EC,0x30EB, - 5,0x30D4,0x30A2,0x30B9,0x30C8,0x30EB, - 3,0x30D4,0x30AF,0x30EB, - 2,0x30D4,0x30B3, - 2,0x30D3,0x30EB, - 5,0x30D5,0x30A1,0x30E9,0x30C3,0x30C9, - 4,0x30D5,0x30A3,0x30FC,0x30C8, - 5,0x30D6,0x30C3,0x30B7,0x30A7,0x30EB, - 3,0x30D5,0x30E9,0x30F3, - 5,0x30D8,0x30AF,0x30BF,0x30FC,0x30EB, - 2,0x30DA,0x30BD, - 3,0x30DA,0x30CB,0x30D2, - 3,0x30D8,0x30EB,0x30C4, - 3,0x30DA,0x30F3,0x30B9, - 3,0x30DA,0x30FC,0x30B8, - 3,0x30D9,0x30FC,0x30BF, - 4,0x30DD,0x30A4,0x30F3,0x30C8, - 3,0x30DC,0x30EB,0x30C8, - 2,0x30DB,0x30F3, - 3,0x30DD,0x30F3,0x30C9, - 3,0x30DB,0x30FC,0x30EB, - 3,0x30DB,0x30FC,0x30F3, - 4,0x30DE,0x30A4,0x30AF,0x30ED, - 3,0x30DE,0x30A4,0x30EB, - 3,0x30DE,0x30C3,0x30CF, - 3,0x30DE,0x30EB,0x30AF, - 5,0x30DE,0x30F3,0x30B7,0x30E7,0x30F3, - 4,0x30DF,0x30AF,0x30ED,0x30F3, - 2,0x30DF,0x30EA, - 5,0x30DF,0x30EA,0x30D0,0x30FC,0x30EB, - 2,0x30E1,0x30AC, - 4,0x30E1,0x30AC,0x30C8,0x30F3, - 4,0x30E1,0x30FC,0x30C8,0x30EB, - 3,0x30E4,0x30FC,0x30C9, - 3,0x30E4,0x30FC,0x30EB, - 3,0x30E6,0x30A2,0x30F3, - 4,0x30EA,0x30C3,0x30C8,0x30EB, - 2,0x30EA,0x30E9, - 3,0x30EB,0x30D4,0x30FC, - 4,0x30EB,0x30FC,0x30D6,0x30EB, - 2,0x30EC,0x30E0, - 5,0x30EC,0x30F3,0x30C8,0x30B2,0x30F3, - 3,0x30EF,0x30C3,0x30C8, - 2, '0',0x70B9, - 2, '1',0x70B9, - 2, '2',0x70B9, - 2, '3',0x70B9, - 2, '4',0x70B9, - 2, '5',0x70B9, - 2, '6',0x70B9, - 2, '7',0x70B9, - 2, '8',0x70B9, - 2, '9',0x70B9, - 3, '1', '0',0x70B9, - 3, '1', '1',0x70B9, - 3, '1', '2',0x70B9, - 3, '1', '3',0x70B9, - 3, '1', '4',0x70B9, - 3, '1', '5',0x70B9, - 3, '1', '6',0x70B9, - 3, '1', '7',0x70B9, - 3, '1', '8',0x70B9, - 3, '1', '9',0x70B9, - 3, '2', '0',0x70B9, - 3, '2', '1',0x70B9, - 3, '2', '2',0x70B9, - 3, '2', '3',0x70B9, - 3, '2', '4',0x70B9, - 3, 'h', 'P', 'a', - 2, 'd', 'a', - 2, 'A', 'U', - 3, 'b', 'a', 'r', - 2, 'o', 'V', - 2, 'p', 'c', - 2, 'd', 'm', - 4, 'd', 'm', '^', '2', - 4, 'd', 'm', '^', '3', - 2, 'I', 'U', - 2,0x5E73,0x6210, - 2,0x662D,0x548C, - 2,0x5927,0x6B63, - 2,0x660E,0x6CBB, - 4,0x682A,0x5F0F,0x4F1A,0x793E, - 2, 'p', 'A', - 2, 'n', 'A', - 2,0x03BC, 'A', - 2, 'm', 'A', - 2, 'k', 'A', - 2, 'K', 'B', - 2, 'M', 'B', - 2, 'G', 'B', - 3, 'c', 'a', 'l', - 4, 'k', 'c', 'a', 'l', - 2, 'p', 'F', - 2, 'n', 'F', - 2,0x03BC, 'F', - 2,0x03BC, 'g', - 2, 'm', 'g', - 2, 'k', 'g', - 2, 'H', 'z', - 3, 'k', 'H', 'z', - 3, 'M', 'H', 'z', - 3, 'G', 'H', 'z', - 3, 'T', 'H', 'z', - 2,0x03BC, 'l', - 2, 'm', 'l', - 2, 'd', 'l', - 2, 'k', 'l', - 2, 'f', 'm', - 2, 'n', 'm', - 2,0x03BC, 'm', - 2, 'm', 'm', - 2, 'c', 'm', - 2, 'k', 'm', - 4, 'm', 'm', '^', '2', - 4, 'c', 'm', '^', '2', - 3, 'm', '^', '2', - 4, 'k', 'm', '^', '2', - 4, 'm', 'm', '^', '3', - 4, 'c', 'm', '^', '3', - 3, 'm', '^', '3', - 4, 'k', 'm', '^', '3', - 3, 'm', '/', 's', - 5, 'm', '/', 's', '^', '2', - 2, 'P', 'a', - 3, 'k', 'P', 'a', - 3, 'M', 'P', 'a', - 3, 'G', 'P', 'a', - 3, 'r', 'a', 'd', - 5, 'r', 'a', 'd', '/', 's', - 7, 'r', 'a', 'd', '/', 's', '^', '2', - 2, 'p', 's', - 2, 'n', 's', - 2,0x03BC, 's', - 2, 'm', 's', - 2, 'p', 'V', - 2, 'n', 'V', - 2,0x03BC, 'V', - 2, 'm', 'V', - 2, 'k', 'V', - 2, 'M', 'V', - 2, 'p', 'W', - 2, 'n', 'W', - 2,0x03BC, 'W', - 2, 'm', 'W', - 2, 'k', 'W', - 2, 'M', 'W', - 2, 'k',0x03A9, - 2, 'M',0x03A9, - 4, 'a', '.', 'm', '.', - 2, 'B', 'q', - 2, 'c', 'c', - 2, 'c', 'd', - 4, 'C', '/', 'k', 'g', - 3, 'C', 'o', '.', - 2, 'd', 'B', - 2, 'G', 'y', - 2, 'h', 'a', - 2, 'H', 'P', - 2, 'i', 'n', - 2, 'K', 'K', - 2, 'K', 'M', - 2, 'k', 't', - 2, 'l', 'm', - 2, 'l', 'n', - 3, 'l', 'o', 'g', - 2, 'l', 'x', - 2, 'm', 'b', - 3, 'm', 'i', 'l', - 3, 'm', 'o', 'l', - 2, 'P', 'H', - 4, 'p', '.', 'm', '.', - 3, 'P', 'P', 'M', - 2, 'P', 'R', - 2, 's', 'r', - 2, 'S', 'v', - 2, 'W', 'b', - 3, 'V', '/', 'm', - 3, 'A', '/', 'm', - 3, 'g', 'a', 'l', - 2, '1',0x65E5, - 2, '2',0x65E5, - 2, '3',0x65E5, - 2, '4',0x65E5, - 2, '5',0x65E5, - 2, '6',0x65E5, - 2, '7',0x65E5, - 2, '8',0x65E5, - 2, '9',0x65E5, - 3, '1', '0',0x65E5, - 3, '1', '1',0x65E5, - 3, '1', '2',0x65E5, - 3, '1', '3',0x65E5, - 3, '1', '4',0x65E5, - 3, '1', '5',0x65E5, - 3, '1', '6',0x65E5, - 3, '1', '7',0x65E5, - 3, '1', '8',0x65E5, - 3, '1', '9',0x65E5, - 3, '2', '0',0x65E5, - 3, '2', '1',0x65E5, - 3, '2', '2',0x65E5, - 3, '2', '3',0x65E5, - 3, '2', '4',0x65E5, - 3, '2', '5',0x65E5, - 3, '2', '6',0x65E5, - 3, '2', '7',0x65E5, - 3, '2', '8',0x65E5, - 3, '2', '9',0x65E5, - 3, '3', '0',0x65E5, - 3, '3', '1',0x65E5, - 1,0x8C48, - 1,0x66F4, - 1,0x8ECA, - 1,0x8CC8, - 1,0x6ED1, - 1,0x4E32, - 1,0x53E5, - 1,0x9F9C, - 1,0x9F9C, - 1,0x5951, - 1,0x91D1, - 1,0x5587, - 1,0x5948, - 1,0x61F6, - 1,0x7669, - 1,0x7F85, - 1,0x863F, - 1,0x87BA, - 1,0x88F8, - 1,0x908F, - 1,0x6A02, - 1,0x6D1B, - 1,0x70D9, - 1,0x73DE, - 1,0x843D, - 1,0x916A, - 1,0x99F1, - 1,0x4E82, - 1,0x5375, - 1,0x6B04, - 1,0x721B, - 1,0x862D, - 1,0x9E1E, - 1,0x5D50, - 1,0x6FEB, - 1,0x85CD, - 1,0x8964, - 1,0x62C9, - 1,0x81D8, - 1,0x881F, - 1,0x5ECA, - 1,0x6717, - 1,0x6D6A, - 1,0x72FC, - 1,0x90CE, - 1,0x4F86, - 1,0x51B7, - 1,0x52DE, - 1,0x64C4, - 1,0x6AD3, - 1,0x7210, - 1,0x76E7, - 1,0x8001, - 1,0x8606, - 1,0x865C, - 1,0x8DEF, - 1,0x9732, - 1,0x9B6F, - 1,0x9DFA, - 1,0x788C, - 1,0x797F, - 1,0x7DA0, - 1,0x83C9, - 1,0x9304, - 1,0x9E7F, - 1,0x8AD6, - 1,0x58DF, - 1,0x5F04, - 1,0x7C60, - 1,0x807E, - 1,0x7262, - 1,0x78CA, - 1,0x8CC2, - 1,0x96F7, - 1,0x58D8, - 1,0x5C62, - 1,0x6A13, - 1,0x6DDA, - 1,0x6F0F, - 1,0x7D2F, - 1,0x7E37, - 1,0x964B, - 1,0x52D2, - 1,0x808B, - 1,0x51DC, - 1,0x51CC, - 1,0x7A1C, - 1,0x7DBE, - 1,0x83F1, - 1,0x9675, - 1,0x8B80, - 1,0x62CF, - 1,0x6A02, - 1,0x8AFE, - 1,0x4E39, - 1,0x5BE7, - 1,0x6012, - 1,0x7387, - 1,0x7570, - 1,0x5317, - 1,0x78FB, - 1,0x4FBF, - 1,0x5FA9, - 1,0x4E0D, - 1,0x6CCC, - 1,0x6578, - 1,0x7D22, - 1,0x53C3, - 1,0x585E, - 1,0x7701, - 1,0x8449, - 1,0x8AAA, - 1,0x6BBA, - 1,0x8FB0, - 1,0x6C88, - 1,0x62FE, - 1,0x82E5, - 1,0x63A0, - 1,0x7565, - 1,0x4EAE, - 1,0x5169, - 1,0x51C9, - 1,0x6881, - 1,0x7CE7, - 1,0x826F, - 1,0x8AD2, - 1,0x91CF, - 1,0x52F5, - 1,0x5442, - 1,0x5973, - 1,0x5EEC, - 1,0x65C5, - 1,0x6FFE, - 1,0x792A, - 1,0x95AD, - 1,0x9A6A, - 1,0x9E97, - 1,0x9ECE, - 1,0x529B, - 1,0x66C6, - 1,0x6B77, - 1,0x8F62, - 1,0x5E74, - 1,0x6190, - 1,0x6200, - 1,0x649A, - 1,0x6F23, - 1,0x7149, - 1,0x7489, - 1,0x79CA, - 1,0x7DF4, - 1,0x806F, - 1,0x8F26, - 1,0x84EE, - 1,0x9023, - 1,0x934A, - 1,0x5217, - 1,0x52A3, - 1,0x54BD, - 1,0x70C8, - 1,0x88C2, - 1,0x8AAA, - 1,0x5EC9, - 1,0x5FF5, - 1,0x637B, - 1,0x6BAE, - 1,0x7C3E, - 1,0x7375, - 1,0x4EE4, - 1,0x56F9, - 1,0x5BE7, - 1,0x5DBA, - 1,0x601C, - 1,0x73B2, - 1,0x7469, - 1,0x7F9A, - 1,0x8046, - 1,0x9234, - 1,0x96F6, - 1,0x9748, - 1,0x9818, - 1,0x4F8B, - 1,0x79AE, - 1,0x91B4, - 1,0x96B8, - 1,0x60E1, - 1,0x4E86, - 1,0x50DA, - 1,0x5BEE, - 1,0x5C3F, - 1,0x6599, - 1,0x6A02, - 1,0x71CE, - 1,0x7642, - 1,0x84FC, - 1,0x907C, - 1,0x9F8D, - 1,0x6688, - 1,0x962E, - 1,0x5289, - 1,0x677B, - 1,0x67F3, - 1,0x6D41, - 1,0x6E9C, - 1,0x7409, - 1,0x7559, - 1,0x786B, - 1,0x7D10, - 1,0x985E, - 1,0x516D, - 1,0x622E, - 1,0x9678, - 1,0x502B, - 1,0x5D19, - 1,0x6DEA, - 1,0x8F2A, - 1,0x5F8B, - 1,0x6144, - 1,0x6817, - 1,0x7387, - 1,0x9686, - 1,0x5229, - 1,0x540F, - 1,0x5C65, - 1,0x6613, - 1,0x674E, - 1,0x68A8, - 1,0x6CE5, - 1,0x7406, - 1,0x75E2, - 1,0x7F79, - 1,0x88CF, - 1,0x88E1, - 1,0x91CC, - 1,0x96E2, - 1,0x533F, - 1,0x6EBA, - 1,0x541D, - 1,0x71D0, - 1,0x7498, - 1,0x85FA, - 1,0x96A3, - 1,0x9C57, - 1,0x9E9F, - 1,0x6797, - 1,0x6DCB, - 1,0x81E8, - 1,0x7ACB, - 1,0x7B20, - 1,0x7C92, - 1,0x72C0, - 1,0x7099, - 1,0x8B58, - 1,0x4EC0, - 1,0x8336, - 1,0x523A, - 1,0x5207, - 1,0x5EA6, - 1,0x62D3, - 1,0x7CD6, - 1,0x5B85, - 1,0x6D1E, - 1,0x66B4, - 1,0x8F3B, - 1,0x884C, - 1,0x964D, - 1,0x898B, - 1,0x5ED3, - 1,0x5140, - 1,0x55C0, - 1,0x585A, - 1,0x6674, - 1,0x51DE, - 1,0x732A, - 1,0x76CA, - 1,0x793C, - 1,0x795E, - 1,0x7965, - 1,0x798F, - 1,0x9756, - 1,0x7CBE, - 1,0x7FBD, - 1,0x8612, - 1,0x8AF8, - 1,0x9038, - 1,0x90FD, - 1,0x98EF, - 1,0x98FC, - 1,0x9928, - 1,0x9DB4, - 1,0x4FAE, - 1,0x50E7, - 1,0x514D, - 1,0x52C9, - 1,0x52E4, - 1,0x5351, - 1,0x559D, - 1,0x5606, - 1,0x5668, - 1,0x5840, - 1,0x58A8, - 1,0x5C64, - 1,0x5C6E, - 1,0x6094, - 1,0x6168, - 1,0x618E, - 1,0x61F2, - 1,0x654F, - 1,0x65E2, - 1,0x6691, - 1,0x6885, - 1,0x6D77, - 1,0x6E1A, - 1,0x6F22, - 1,0x716E, - 1,0x722B, - 1,0x7422, - 1,0x7891, - 1,0x793E, - 1,0x7949, - 1,0x7948, - 1,0x7950, - 1,0x7956, - 1,0x795D, - 1,0x798D, - 1,0x798E, - 1,0x7A40, - 1,0x7A81, - 1,0x7BC0, - 1,0x7DF4, - 1,0x7E09, - 1,0x7E41, - 1,0x7F72, - 1,0x8005, - 1,0x81ED, - 1,0x8279, - 1,0x8279, - 1,0x8457, - 1,0x8910, - 1,0x8996, - 1,0x8B01, - 1,0x8B39, - 1,0x8CD3, - 1,0x8D08, - 1,0x8FB6, - 1,0x9038, - 1,0x96E3, - 1,0x97FF, - 1,0x983B, - 2, 'f', 'f', - 2, 'f', 'i', - 2, 'f', 'l', - 3, 'f', 'f', 'i', - 3, 'f', 'f', 'l', - 2,0x017F, 't', - 2, 's', 't', - 2,0x0574,0x0576, - 2,0x0574,0x0565, - 2,0x0574,0x056B, - 2,0x057E,0x0576, - 2,0x0574,0x056D, - 1,0x05E2, - 1,0x05D0, - 1,0x05D3, - 1,0x05D4, - 1,0x05DB, - 1,0x05DC, - 1,0x05DD, - 1,0x05E8, - 1,0x05EA, - 1, '+', - 2,0x05D0,0x05DC, - 1,0x203E, - 1,0x203E, - 1,0x203E, - 1,0x203E, - 1, '_', - 1, '_', - 1, '_', - 1, ',', - 1,0x3001, - 1, '.', - 1, ';', - 1, ':', - 1, '?', - 1, '!', - 1,0x2014, - 1, '(', - 1, ')', - 1, '{', - 1, '}', - 1,0x3014, - 1,0x3015, - 1, '#', - 1, '&', - 1, '*', - 1, '+', - 1, '-', - 1, '<', - 1, '>', - 1, '=', - 1,'\\', - 1, '$', - 1, '%', - 1, '@', - 1, '!', - 1, '"', - 1, '#', - 1, '$', - 1, '%', - 1, '&', - 1,'\'', - 1, '(', - 1, ')', - 1, '*', - 1, '+', - 1, ',', - 1, '-', - 1, '.', - 1, '/', - 1, '0', - 1, '1', - 1, '2', - 1, '3', - 1, '4', - 1, '5', - 1, '6', - 1, '7', - 1, '8', - 1, '9', - 1, ':', - 1, ';', - 1, '<', - 1, '=', - 1, '>', - 1, '?', - 1, '@', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, '[', - 1,'\\', - 1, ']', - 1, '^', - 1, '_', - 1, '`', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, '{', - 1, '|', - 1, '}', - 1, '~', - 1,0x2985, - 1,0x2986, - 1,0x3002, - 1,0x300C, - 1,0x300D, - 1,0x3001, - 1,0x30FB, - 1,0x30F2, - 1,0x30A1, - 1,0x30A3, - 1,0x30A5, - 1,0x30A7, - 1,0x30A9, - 1,0x30E3, - 1,0x30E5, - 1,0x30E7, - 1,0x30C3, - 1,0x30FC, - 1,0x30A2, - 1,0x30A4, - 1,0x30A6, - 1,0x30A8, - 1,0x30AA, - 1,0x30AB, - 1,0x30AD, - 1,0x30AF, - 1,0x30B1, - 1,0x30B3, - 1,0x30B5, - 1,0x30B7, - 1,0x30B9, - 1,0x30BB, - 1,0x30BD, - 1,0x30BF, - 1,0x30C1, - 1,0x30C4, - 1,0x30C6, - 1,0x30C8, - 1,0x30CA, - 1,0x30CB, - 1,0x30CC, - 1,0x30CD, - 1,0x30CE, - 1,0x30CF, - 1,0x30D2, - 1,0x30D5, - 1,0x30D8, - 1,0x30DB, - 1,0x30DE, - 1,0x30DF, - 1,0x30E0, - 1,0x30E1, - 1,0x30E2, - 1,0x30E4, - 1,0x30E6, - 1,0x30E8, - 1,0x30E9, - 1,0x30EA, - 1,0x30EB, - 1,0x30EC, - 1,0x30ED, - 1,0x30EF, - 1,0x30F3, - 1,0x3099, - 1,0x309A, - 1,0x3164, - 1,0x3131, - 1,0x3132, - 1,0x3133, - 1,0x3134, - 1,0x3135, - 1,0x3136, - 1,0x3137, - 1,0x3138, - 1,0x3139, - 1,0x313A, - 1,0x313B, - 1,0x313C, - 1,0x313D, - 1,0x313E, - 1,0x313F, - 1,0x3140, - 1,0x3141, - 1,0x3142, - 1,0x3143, - 1,0x3144, - 1,0x3145, - 1,0x3146, - 1,0x3147, - 1,0x3148, - 1,0x3149, - 1,0x314A, - 1,0x314B, - 1,0x314C, - 1,0x314D, - 1,0x314E, - 1,0x314F, - 1,0x3150, - 1,0x3151, - 1,0x3152, - 1,0x3153, - 1,0x3154, - 1,0x3155, - 1,0x3156, - 1,0x3157, - 1,0x3158, - 1,0x3159, - 1,0x315A, - 1,0x315B, - 1,0x315C, - 1,0x315D, - 1,0x315E, - 1,0x315F, - 1,0x3160, - 1,0x3161, - 1,0x3162, - 1,0x3163, - 1,0xA2, - 1,0xA3, - 1,0xAC, - 1,0xAF, - 1,0xA6, - 1,0xA5, - 1,0x20A9, - 1,0x2502, - 1,0x2190, - 1,0x2191, - 1,0x2192, - 1,0x2193, - 1,0x25A0, - 1,0x25CB, - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'C', - 1, 'D', - 1, 'G', - 1, 'J', - 1, 'K', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'f', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'O', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1, 'A', - 1, 'B', - 1, 'C', - 1, 'D', - 1, 'E', - 1, 'F', - 1, 'G', - 1, 'H', - 1, 'I', - 1, 'J', - 1, 'K', - 1, 'L', - 1, 'M', - 1, 'N', - 1, 'O', - 1, 'P', - 1, 'Q', - 1, 'R', - 1, 'S', - 1, 'T', - 1, 'U', - 1, 'V', - 1, 'W', - 1, 'X', - 1, 'Y', - 1, 'Z', - 1, 'a', - 1, 'b', - 1, 'c', - 1, 'd', - 1, 'e', - 1, 'f', - 1, 'g', - 1, 'h', - 1, 'i', - 1, 'j', - 1, 'k', - 1, 'l', - 1, 'm', - 1, 'n', - 1, 'o', - 1, 'p', - 1, 'q', - 1, 'r', - 1, 's', - 1, 't', - 1, 'u', - 1, 'v', - 1, 'w', - 1, 'x', - 1, 'y', - 1, 'z', - 1,0x0391, - 1,0x0392, - 1,0x0393, - 1,0x0394, - 1,0x0395, - 1,0x0396, - 1,0x0397, - 1,0x0398, - 1,0x0399, - 1,0x039A, - 1,0x039B, - 1,0x039C, - 1,0x039D, - 1,0x039E, - 1,0x039F, - 1,0x03A0, - 1,0x03A1, - 1,0x03F4, - 1,0x03A3, - 1,0x03A4, - 1,0x03A5, - 1,0x03A6, - 1,0x03A7, - 1,0x03A8, - 1,0x03A9, - 1,0x2207, - 1,0x03B1, - 1,0x03B2, - 1,0x03B3, - 1,0x03B4, - 1,0x03B5, - 1,0x03B6, - 1,0x03B7, - 1,0x03B8, - 1,0x03B9, - 1,0x03BA, - 1,0x03BB, - 1,0x03BC, - 1,0x03BD, - 1,0x03BE, - 1,0x03BF, - 1,0x03C0, - 1,0x03C1, - 1,0x03C2, - 1,0x03C3, - 1,0x03C4, - 1,0x03C5, - 1,0x03C6, - 1,0x03C7, - 1,0x03C8, - 1,0x03C9, - 1,0x2202, - 1,0x03F5, - 1,0x03D1, - 1,0x03F0, - 1,0x03D5, - 1,0x03F1, - 1,0x03D6, - 1,0x0391, - 1,0x0392, - 1,0x0393, - 1,0x0394, - 1,0x0395, - 1,0x0396, - 1,0x0397, - 1,0x0398, - 1,0x0399, - 1,0x039A, - 1,0x039B, - 1,0x039C, - 1,0x039D, - 1,0x039E, - 1,0x039F, - 1,0x03A0, - 1,0x03A1, - 1,0x03F4, - 1,0x03A3, - 1,0x03A4, - 1,0x03A5, - 1,0x03A6, - 1,0x03A7, - 1,0x03A8, - 1,0x03A9, - 1,0x2207, - 1,0x03B1, - 1,0x03B2, - 1,0x03B3, - 1,0x03B4, - 1,0x03B5, - 1,0x03B6, - 1,0x03B7, - 1,0x03B8, - 1,0x03B9, - 1,0x03BA, - 1,0x03BB, - 1,0x03BC, - 1,0x03BD, - 1,0x03BE, - 1,0x03BF, - 1,0x03C0, - 1,0x03C1, - 1,0x03C2, - 1,0x03C3, - 1,0x03C4, - 1,0x03C5, - 1,0x03C6, - 1,0x03C7, - 1,0x03C8, - 1,0x03C9, - 1,0x2202, - 1,0x03F5, - 1,0x03D1, - 1,0x03F0, - 1,0x03D5, - 1,0x03F1, - 1,0x03D6, - 1,0x0391, - 1,0x0392, - 1,0x0393, - 1,0x0394, - 1,0x0395, - 1,0x0396, - 1,0x0397, - 1,0x0398, - 1,0x0399, - 1,0x039A, - 1,0x039B, - 1,0x039C, - 1,0x039D, - 1,0x039E, - 1,0x039F, - 1,0x03A0, - 1,0x03A1, - 1,0x03F4, - 1,0x03A3, - 1,0x03A4, - 1,0x03A5, - 1,0x03A6, - 1,0x03A7, - 1,0x03A8, - 1,0x03A9, - 1,0x2207, - 1,0x03B1, - 1,0x03B2, - 1,0x03B3, - 1,0x03B4, - 1,0x03B5, - 1,0x03B6, - 1,0x03B7, - 1,0x03B8, - 1,0x03B9, - 1,0x03BA, - 1,0x03BB, - 1,0x03BC, - 1,0x03BD, - 1,0x03BE, - 1,0x03BF, - 1,0x03C0, - 1,0x03C1, - 1,0x03C2, - 1,0x03C3, - 1,0x03C4, - 1,0x03C5, - 1,0x03C6, - 1,0x03C7, - 1,0x03C8, - 1,0x03C9, - 1,0x2202, - 1,0x03F5, - 1,0x03D1, - 1,0x03F0, - 1,0x03D5, - 1,0x03F1, - 1,0x03D6, - 1,0x0391, - 1,0x0392, - 1,0x0393, - 1,0x0394, - 1,0x0395, - 1,0x0396, - 1,0x0397, - 1,0x0398, - 1,0x0399, - 1,0x039A, - 1,0x039B, - 1,0x039C, - 1,0x039D, - 1,0x039E, - 1,0x039F, - 1,0x03A0, - 1,0x03A1, - 1,0x03F4, - 1,0x03A3, - 1,0x03A4, - 1,0x03A5, - 1,0x03A6, - 1,0x03A7, - 1,0x03A8, - 1,0x03A9, - 1,0x2207, - 1,0x03B1, - 1,0x03B2, - 1,0x03B3, - 1,0x03B4, - 1,0x03B5, - 1,0x03B6, - 1,0x03B7, - 1,0x03B8, - 1,0x03B9, - 1,0x03BA, - 1,0x03BB, - 1,0x03BC, - 1,0x03BD, - 1,0x03BE, - 1,0x03BF, - 1,0x03C0, - 1,0x03C1, - 1,0x03C2, - 1,0x03C3, - 1,0x03C4, - 1,0x03C5, - 1,0x03C6, - 1,0x03C7, - 1,0x03C8, - 1,0x03C9, - 1,0x2202, - 1,0x03F5, - 1,0x03D1, - 1,0x03F0, - 1,0x03D5, - 1,0x03F1, - 1,0x03D6, - 1,0x0391, - 1,0x0392, - 1,0x0393, - 1,0x0394, - 1,0x0395, - 1,0x0396, - 1,0x0397, - 1,0x0398, - 1,0x0399, - 1,0x039A, - 1,0x039B, - 1,0x039C, - 1,0x039D, - 1,0x039E, - 1,0x039F, - 1,0x03A0, - 1,0x03A1, - 1,0x03F4, - 1,0x03A3, - 1,0x03A4, - 1,0x03A5, - 1,0x03A6, - 1,0x03A7, - 1,0x03A8, - 1,0x03A9, - 1,0x2207, - 1,0x03B1, - 1,0x03B2, - 1,0x03B3, - 1,0x03B4, - 1,0x03B5, - 1,0x03B6, - 1,0x03B7, - 1,0x03B8, - 1,0x03B9, - 1,0x03BA, - 1,0x03BB, - 1,0x03BC, - 1,0x03BD, - 1,0x03BE, - 1,0x03BF, - 1,0x03C0, - 1,0x03C1, - 1,0x03C2, - 1,0x03C3, - 1,0x03C4, - 1,0x03C5, - 1,0x03C6, - 1,0x03C7, - 1,0x03C8, - 1,0x03C9, - 1,0x2202, - 1,0x03F5, - 1,0x03D1, - 1,0x03F0, - 1,0x03D5, - 1,0x03F1, - 1,0x03D6, - 1, '0', - 1, '1', - 1, '2', - 1, '3', - 1, '4', - 1, '5', - 1, '6', - 1, '7', - 1, '8', - 1, '9', - 1, '0', - 1, '1', - 1, '2', - 1, '3', - 1, '4', - 1, '5', - 1, '6', - 1, '7', - 1, '8', - 1, '9', - 1, '0', - 1, '1', - 1, '2', - 1, '3', - 1, '4', - 1, '5', - 1, '6', - 1, '7', - 1, '8', - 1, '9', - 1, '0', - 1, '1', - 1, '2', - 1, '3', - 1, '4', - 1, '5', - 1, '6', - 1, '7', - 1, '8', - 1, '9', - 1, '0', - 1, '1', - 1, '2', - 1, '3', - 1, '4', - 1, '5', - 1, '6', - 1, '7', - 1, '8', - 1, '9', - 1,0x4E3D, - 1,0x4E38, - 1,0x4E41, - 1,0x20122, - 1,0x4F60, - 1,0x4FAE, - 1,0x4FBB, - 1,0x5002, - 1,0x507A, - 1,0x5099, - 1,0x50E7, - 1,0x50CF, - 1,0x349E, - 1,0x2063A, - 1,0x514D, - 1,0x5154, - 1,0x5164, - 1,0x5177, - 1,0x2051C, - 1,0x34B9, - 1,0x5167, - 1,0x518D, - 1,0x2054B, - 1,0x5197, - 1,0x51A4, - 1,0x4ECC, - 1,0x51AC, - 1,0x51B5, - 1,0x291DF, - 1,0x51F5, - 1,0x5203, - 1,0x34DF, - 1,0x523B, - 1,0x5246, - 1,0x5272, - 1,0x5277, - 1,0x3515, - 1,0x52C7, - 1,0x52C9, - 1,0x52E4, - 1,0x52FA, - 1,0x5305, - 1,0x5306, - 1,0x5317, - 1,0x5349, - 1,0x5351, - 1,0x535A, - 1,0x5373, - 1,0x537D, - 1,0x537F, - 1,0x537F, - 1,0x537F, - 1,0x20A2C, - 1,0x7070, - 1,0x53CA, - 1,0x53DF, - 1,0x20B63, - 1,0x53EB, - 1,0x53F1, - 1,0x5406, - 1,0x549E, - 1,0x5438, - 1,0x5448, - 1,0x5468, - 1,0x54A2, - 1,0x54F6, - 1,0x5510, - 1,0x5553, - 1,0x5563, - 1,0x5584, - 1,0x5584, - 1,0x5599, - 1,0x55AB, - 1,0x55B3, - 1,0x55C2, - 1,0x5716, - 1,0x5606, - 1,0x5717, - 1,0x5651, - 1,0x5674, - 1,0x5207, - 1,0x58EE, - 1,0x57CE, - 1,0x57F4, - 1,0x580D, - 1,0x578B, - 1,0x5832, - 1,0x5831, - 1,0x58AC, - 1,0x214E4, - 1,0x58F2, - 1,0x58F7, - 1,0x5906, - 1,0x591A, - 1,0x5922, - 1,0x5962, - 1,0x216A8, - 1,0x216EA, - 1,0x59EC, - 1,0x5A1B, - 1,0x5A27, - 1,0x59D8, - 1,0x5A66, - 1,0x36EE, - 1,0x36FC, - 1,0x5B08, - 1,0x5B3E, - 1,0x5B3E, - 1,0x219C8, - 1,0x5BC3, - 1,0x5BD8, - 1,0x5BE7, - 1,0x5BF3, - 1,0x21B18, - 1,0x5BFF, - 1,0x5C06, - 1,0x5F53, - 1,0x5C22, - 1,0x3781, - 1,0x5C60, - 1,0x5C6E, - 1,0x5CC0, - 1,0x5C8D, - 1,0x21DE4, - 1,0x5D43, - 1,0x21DE6, - 1,0x5D6E, - 1,0x5D6B, - 1,0x5D7C, - 1,0x5DE1, - 1,0x5DE2, - 1,0x382F, - 1,0x5DFD, - 1,0x5E28, - 1,0x5E3D, - 1,0x5E69, - 1,0x3862, - 1,0x22183, - 1,0x387C, - 1,0x5EB0, - 1,0x5EB3, - 1,0x5EB6, - 1,0x5ECA, - 1,0x2A392, - 1,0x5EFE, - 1,0x22331, - 1,0x22331, - 1,0x8201, - 1,0x5F22, - 1,0x5F22, - 1,0x38C7, - 1,0x232B8, - 1,0x261DA, - 1,0x5F62, - 1,0x5F6B, - 1,0x38E3, - 1,0x5F9A, - 1,0x5FCD, - 1,0x5FD7, - 1,0x5FF9, - 1,0x6081, - 1,0x393A, - 1,0x391C, - 1,0x6094, - 1,0x226D4, - 1,0x60C7, - 1,0x6148, - 1,0x614C, - 1,0x614E, - 1,0x614C, - 1,0x617A, - 1,0x618E, - 1,0x61B2, - 1,0x61A4, - 1,0x61AF, - 1,0x61DE, - 1,0x61F2, - 1,0x61F6, - 1,0x6210, - 1,0x621B, - 1,0x625D, - 1,0x62B1, - 1,0x62D4, - 1,0x6350, - 1,0x22B0C, - 1,0x633D, - 1,0x62FC, - 1,0x6368, - 1,0x6383, - 1,0x63E4, - 1,0x22BF1, - 1,0x6422, - 1,0x63C5, - 1,0x63A9, - 1,0x3A2E, - 1,0x6469, - 1,0x647E, - 1,0x649D, - 1,0x6477, - 1,0x3A6C, - 1,0x654F, - 1,0x656C, - 1,0x2300A, - 1,0x65E3, - 1,0x66F8, - 1,0x6649, - 1,0x3B19, - 1,0x6691, - 1,0x3B08, - 1,0x3AE4, - 1,0x5192, - 1,0x5195, - 1,0x6700, - 1,0x669C, - 1,0x80AD, - 1,0x43D9, - 1,0x6717, - 1,0x671B, - 1,0x6721, - 1,0x675E, - 1,0x6753, - 1,0x233C3, - 1,0x3B49, - 1,0x67FA, - 1,0x6785, - 1,0x6852, - 1,0x6885, - 1,0x2346D, - 1,0x688E, - 1,0x681F, - 1,0x6914, - 1,0x3B9D, - 1,0x6942, - 1,0x69A3, - 1,0x69EA, - 1,0x6AA8, - 1,0x236A3, - 1,0x6ADB, - 1,0x3C18, - 1,0x6B21, - 1,0x238A7, - 1,0x6B54, - 1,0x3C4E, - 1,0x6B72, - 1,0x6B9F, - 1,0x6BBA, - 1,0x6BBB, - 1,0x23A8D, - 1,0x21D0B, - 1,0x23AFA, - 1,0x6C4E, - 1,0x23CBC, - 1,0x6CBF, - 1,0x6CCD, - 1,0x6C67, - 1,0x6D16, - 1,0x6D3E, - 1,0x6D77, - 1,0x6D41, - 1,0x6D69, - 1,0x6D78, - 1,0x6D85, - 1,0x23D1E, - 1,0x6D34, - 1,0x6E2F, - 1,0x6E6E, - 1,0x3D33, - 1,0x6ECB, - 1,0x6EC7, - 1,0x23ED1, - 1,0x6DF9, - 1,0x6F6E, - 1,0x23F5E, - 1,0x23F8E, - 1,0x6FC6, - 1,0x7039, - 1,0x701E, - 1,0x701B, - 1,0x3D96, - 1,0x704A, - 1,0x707D, - 1,0x7077, - 1,0x70AD, - 1,0x20525, - 1,0x7145, - 1,0x24263, - 1,0x719C, - 1,0x243AB, - 1,0x7228, - 1,0x7235, - 1,0x7250, - 1,0x24608, - 1,0x7280, - 1,0x7295, - 1,0x24735, - 1,0x24814, - 1,0x737A, - 1,0x738B, - 1,0x3EAC, - 1,0x73A5, - 1,0x3EB8, - 1,0x3EB8, - 1,0x7447, - 1,0x745C, - 1,0x7471, - 1,0x7485, - 1,0x74CA, - 1,0x3F1B, - 1,0x7524, - 1,0x24C36, - 1,0x753E, - 1,0x24C92, - 1,0x7570, - 1,0x2219F, - 1,0x7610, - 1,0x24FA1, - 1,0x24FB8, - 1,0x25044, - 1,0x3FFC, - 1,0x4008, - 1,0x76F4, - 1,0x250F3, - 1,0x250F2, - 1,0x25119, - 1,0x25133, - 1,0x771E, - 1,0x771F, - 1,0x771F, - 1,0x774A, - 1,0x4039, - 1,0x778B, - 1,0x4046, - 1,0x4096, - 1,0x2541D, - 1,0x784E, - 1,0x788C, - 1,0x78CC, - 1,0x40E3, - 1,0x25626, - 1,0x7956, - 1,0x2569A, - 1,0x256C5, - 1,0x798F, - 1,0x79EB, - 1,0x412F, - 1,0x7A40, - 1,0x7A4A, - 1,0x7A4F, - 1,0x2597C, - 1,0x25AA7, - 1,0x25AA7, - 1,0x7AEE, - 1,0x4202, - 1,0x25BAB, - 1,0x7BC6, - 1,0x7BC9, - 1,0x4227, - 1,0x25C80, - 1,0x7CD2, - 1,0x42A0, - 1,0x7CE8, - 1,0x7CE3, - 1,0x7D00, - 1,0x25F86, - 1,0x7D63, - 1,0x4301, - 1,0x7DC7, - 1,0x7E02, - 1,0x7E45, - 1,0x4334, - 1,0x26228, - 1,0x26247, - 1,0x4359, - 1,0x262D9, - 1,0x7F7A, - 1,0x2633E, - 1,0x7F95, - 1,0x7FFA, - 1,0x8005, - 1,0x264DA, - 1,0x26523, - 1,0x8060, - 1,0x265A8, - 1,0x8070, - 1,0x2335F, - 1,0x43D5, - 1,0x80B2, - 1,0x8103, - 1,0x440B, - 1,0x813E, - 1,0x5AB5, - 1,0x267A7, - 1,0x267B5, - 1,0x23393, - 1,0x2339C, - 1,0x8201, - 1,0x8204, - 1,0x8F9E, - 1,0x446B, - 1,0x8291, - 1,0x828B, - 1,0x829D, - 1,0x52B3, - 1,0x82B1, - 1,0x82B3, - 1,0x82BD, - 1,0x82E6, - 1,0x26B3C, - 1,0x82E5, - 1,0x831D, - 1,0x8363, - 1,0x83AD, - 1,0x8323, - 1,0x83BD, - 1,0x83E7, - 1,0x8457, - 1,0x8353, - 1,0x83CA, - 1,0x83CC, - 1,0x83DC, - 1,0x26C36, - 1,0x26D6B, - 1,0x26CD5, - 1,0x452B, - 1,0x84F1, - 1,0x84F3, - 1,0x8516, - 1,0x273CA, - 1,0x8564, - 1,0x26F2C, - 1,0x455D, - 1,0x4561, - 1,0x26FB1, - 1,0x270D2, - 1,0x456B, - 1,0x8650, - 1,0x865C, - 1,0x8667, - 1,0x8669, - 1,0x86A9, - 1,0x8688, - 1,0x870E, - 1,0x86E2, - 1,0x8779, - 1,0x8728, - 1,0x876B, - 1,0x8786, - 1,0x45D7, - 1,0x87E1, - 1,0x8801, - 1,0x45F9, - 1,0x8860, - 1,0x8863, - 1,0x27667, - 1,0x88D7, - 1,0x88DE, - 1,0x4635, - 1,0x88FA, - 1,0x34BB, - 1,0x278AE, - 1,0x27966, - 1,0x46BE, - 1,0x46C7, - 1,0x8AA0, - 1,0x8AED, - 1,0x8B8A, - 1,0x8C55, - 1,0x27CA8, - 1,0x8CAB, - 1,0x8CC1, - 1,0x8D1B, - 1,0x8D77, - 1,0x27F2F, - 1,0x20804, - 1,0x8DCB, - 1,0x8DBC, - 1,0x8DF0, - 1,0x208DE, - 1,0x8ED4, - 1,0x8F38, - 1,0x285D2, - 1,0x285ED, - 1,0x9094, - 1,0x90F1, - 1,0x9111, - 1,0x2872E, - 1,0x911B, - 1,0x9238, - 1,0x92D7, - 1,0x92D8, - 1,0x927C, - 1,0x93F9, - 1,0x9415, - 1,0x28BFA, - 1,0x958B, - 1,0x4995, - 1,0x95B7, - 1,0x28D77, - 1,0x49E6, - 1,0x96C3, - 1,0x5DB2, - 1,0x9723, - 1,0x29145, - 1,0x2921A, - 1,0x4A6E, - 1,0x4A76, - 1,0x97E0, - 1,0x2940A, - 1,0x4AB2, - 1,0x29496, - 1,0x980B, - 1,0x980B, - 1,0x9829, - 1,0x295B6, - 1,0x98E2, - 1,0x4B33, - 1,0x9929, - 1,0x99A7, - 1,0x99C2, - 1,0x99FE, - 1,0x4BCE, - 1,0x29B30, - 1,0x9B12, - 1,0x9C40, - 1,0x9CFD, - 1,0x4CCE, - 1,0x4CED, - 1,0x9D67, - 1,0x2A0CE, - 1,0x4CF8, - 1,0x2A105, - 1,0x2A20E, - 1,0x2A291, - 1,0x9EBB, - 1,0x4D56, - 1,0x9EF9, - 1,0x9EFE, - 1,0x9F05, - 1,0x9F0F, - 1,0x9F16, - 1,0x9F3B, - 1,0x2A600, -}; - -static const short translit_page00[344] = { - 0, 2, 4, 6, -1, 9, 13, 15, /* 0xa0-0xa7 */ - 18, 20, 24, 26, 29, 33, 35, -1, /* 0xa8-0xaf */ - 39, 42, 46, 49, 52, 54, 56, 58, /* 0xb0-0xb7 */ - 60, 62, 65, 67, 70, 76, 82, 88, /* 0xb8-0xbf */ - 90, 93, 96, 99, 102, 105, 107, 110, /* 0xc0-0xc7 */ - 112, 115, 118, 121, 124, 127, 130, 133, /* 0xc8-0xcf */ - 136, 138, 141, 144, 147, 150, 153, 156, /* 0xd0-0xd7 */ - 158, 160, 163, 166, 169, 172, 175, 178, /* 0xd8-0xdf */ - 181, 184, 187, 190, 193, 196, 198, 201, /* 0xe0-0xe7 */ - 203, 206, 209, 212, 215, 218, 221, 224, /* 0xe8-0xef */ - 227, 229, 232, 235, 238, 241, 244, 247, /* 0xf0-0xf7 */ - 249, 251, 254, 257, 260, 263, 266, 269, /* 0xf8-0xff */ - /* 0x0100 */ - 272, 274, 276, 278, 280, 282, 284, 287, /* 0x00-0x07 */ - 290, 293, 296, 298, 300, 302, 304, 306, /* 0x08-0x0f */ - 308, 310, 312, 314, 316, 318, 320, 322, /* 0x10-0x17 */ - 324, 326, 328, 330, 332, 335, 338, 340, /* 0x18-0x1f */ - 342, 344, 346, 348, 350, 353, 356, 358, /* 0x20-0x27 */ - 360, 363, 366, 368, 370, 372, 374, 376, /* 0x28-0x2f */ - 378, 380, 382, 385, 388, 391, 394, 396, /* 0x30-0x37 */ - -1, 398, 400, 402, 404, 406, 408, 410, /* 0x38-0x3f */ - 412, 414, 416, 418, 421, 424, 426, 428, /* 0x40-0x47 */ - 430, 432, -1, -1, 435, 437, 439, 441, /* 0x48-0x4f */ - 443, 446, 449, 452, 455, 458, 461, 463, /* 0x50-0x57 */ - 465, 467, 469, 472, 475, 478, 481, 483, /* 0x58-0x5f */ - 485, 487, 489, 491, 493, 495, 497, 499, /* 0x60-0x67 */ - 501, 504, 507, 509, 511, 513, 515, 517, /* 0x68-0x6f */ - 519, 522, 525, 527, 529, 532, 535, 538, /* 0x70-0x77 */ - 541, 544, 547, 550, 552, 554, 556, 558, /* 0x78-0x7f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */ - -1, -1, 560, -1, -1, -1, -1, -1, /* 0x90-0x97 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ - -1, -1, -1, -1, 562, 565, 568, 571, /* 0xc0-0xc7 */ - 574, 577, 580, 583, 586, -1, -1, -1, /* 0xc8-0xcf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */ - -1, 589, 592, 595, -1, -1, -1, -1, /* 0xf0-0xf7 */ -}; -static const short translit_page02[8] = { - 598, 600, 602, 604, -1, -1, -1, -1, /* 0x18-0x1f */ -}; -static const short translit_page02_1[40] = { - -1, 606, 608, 610, 612, 614, -1, -1, /* 0xb8-0xbf */ - -1, -1, -1, -1, -1, -1, 616, -1, /* 0xc0-0xc7 */ - 618, 620, 622, 624, -1, 626, -1, -1, /* 0xc8-0xcf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ - -1, -1, -1, -1, 628, 630, -1, -1, /* 0xd8-0xdf */ -}; -static const short translit_page03[48] = { - 632, 634, 636, -1, -1, 638, 640, -1, /* 0xd0-0xd7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe8-0xef */ - 642, 644, 646, -1, 648, 650, -1, -1, /* 0xf0-0xf7 */ - -1, 652, -1, -1, -1, -1, -1, -1, /* 0xf8-0xff */ -}; -static const short translit_page05[8] = { - 657, 660, 663, -1, -1, -1, -1, -1, /* 0xf0-0xf7 */ -}; -static const short translit_page06[16] = { - -1, -1, -1, -1, -1, 666, 669, 672, /* 0x70-0x77 */ - 675, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ -}; -static const short translit_page0e[48] = { - -1, -1, -1, 681, -1, -1, -1, -1, /* 0xb0-0xb7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ - -1, -1, -1, -1, 684, 687, -1, -1, /* 0xd8-0xdf */ -}; -static const short translit_page0f[16] = { - -1, -1, -1, -1, -1, -1, -1, 690, /* 0x70-0x77 */ - -1, 693, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ -}; -static const short translit_page1e[160] = { - -1, -1, 696, 698, -1, -1, -1, -1, /* 0x00-0x07 */ - -1, -1, 700, 702, -1, -1, -1, -1, /* 0x08-0x0f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */ - -1, -1, -1, -1, -1, -1, 704, 706, /* 0x18-0x1f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */ - 708, 710, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - -1, -1, -1, -1, -1, -1, 712, 714, /* 0x50-0x57 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ - 716, 718, -1, -1, -1, -1, -1, -1, /* 0x60-0x67 */ - -1, -1, 720, 722, -1, -1, -1, -1, /* 0x68-0x6f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ - 724, 727, 730, 733, 736, 739, -1, -1, /* 0x80-0x87 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x90-0x97 */ - -1, -1, 742, -1, -1, -1, -1, -1, /* 0x98-0x9f */ -}; -static const short translit_page1e_1[8] = { - -1, -1, 745, 748, -1, -1, -1, -1, /* 0xf0-0xf7 */ -}; -static const short translit_page20[88] = { - -1, -1, 751, 753, 755, 757, 759, -1, /* 0x00-0x07 */ - 761, 763, 765, -1, -1, -1, -1, -1, /* 0x08-0x0f */ - 767, 769, 771, 773, 775, 777, -1, -1, /* 0x10-0x17 */ - 779, 781, 783, 785, 787, 789, 791, 793, /* 0x18-0x1f */ - 795, -1, 797, -1, 799, 801, 804, -1, /* 0x20-0x27 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ - 808, -1, 813, 815, 818, -1, 822, 825, /* 0x30-0x37 */ - -1, 829, 831, -1, 833, -1, -1, -1, /* 0x38-0x3f */ - -1, -1, -1, -1, 836, -1, -1, 838, /* 0x40-0x47 */ - 841, 844, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - -1, -1, -1, -1, -1, -1, -1, 847, /* 0x50-0x57 */ -}; -static const short translit_page20_1[8] = { - 852, -1, -1, 855, 860, -1, -1, -1, /* 0xa8-0xaf */ -}; -static const short translit_page21[216] = { - 864, 868, 872, 874, -1, 877, 881, 885, /* 0x00-0x07 */ - -1, 887, 890, 892, 894, 896, 898, 900, /* 0x08-0x0f */ - 902, 904, 906, 908, -1, 910, 912, -1, /* 0x10-0x17 */ - -1, 915, 917, 919, 921, 923, -1, -1, /* 0x18-0x1f */ - -1, 925, 929, -1, 932, -1, 934, -1, /* 0x20-0x27 */ - 938, -1, -1, -1, 940, 942, 944, 946, /* 0x28-0x2f */ - 948, 950, -1, 952, 954, 956, 958, 960, /* 0x30-0x37 */ - 962, 964, -1, 966, -1, 970, 972, 974, /* 0x38-0x3f */ - 976, -1, -1, -1, -1, 978, 980, 982, /* 0x40-0x47 */ - 984, 986, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - -1, -1, -1, 988, 994, 1000, 1006, 1012, /* 0x50-0x57 */ - 1018, 1024, 1030, 1036, 1042, 1048, 1054, 1060, /* 0x58-0x5f */ - 1064, 1066, 1069, 1073, 1076, 1078, 1081, 1085, /* 0x60-0x67 */ - 1090, 1093, 1095, 1098, 1102, 1104, 1106, 1108, /* 0x68-0x6f */ - 1110, 1112, 1115, 1119, 1122, 1124, 1127, 1131, /* 0x70-0x77 */ - 1136, 1139, 1141, 1144, 1148, 1150, 1152, 1154, /* 0x78-0x7f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x80-0x87 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x88-0x8f */ - 1156, 1159, 1161, 1164, 1166, -1, -1, -1, /* 0x90-0x97 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x98-0x9f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa0-0xa7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc0-0xc7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ - 1170, -1, 1173, -1, 1176, -1, -1, -1, /* 0xd0-0xd7 */ -}; -static const short translit_page22[96] = { - -1, -1, 1180, -1, -1, 1182, 1184, 1186, /* 0x10-0x17 */ - -1, 1188, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */ - -1, -1, -1, 1190, -1, -1, -1, -1, /* 0x20-0x27 */ - -1, -1, -1, -1, 1192, 1195, -1, 1199, /* 0x28-0x2f */ - 1202, -1, -1, -1, -1, -1, 1206, -1, /* 0x30-0x37 */ - -1, -1, -1, -1, 1208, -1, -1, -1, /* 0x38-0x3f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ - 1210, -1, -1, -1, 1213, 1216, -1, -1, /* 0x60-0x67 */ - -1, -1, 1219, 1222, -1, -1, -1, -1, /* 0x68-0x6f */ -}; -static const short translit_page22_1[48] = { - -1, -1, -1, -1, -1, 1225, -1, -1, /* 0xc0-0xc7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ - 1227, 1231, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe0-0xe7 */ - -1, -1, -1, -1, -1, -1, -1, 1235, /* 0xe8-0xef */ -}; -static const short translit_page24[240] = { - 1239, 1245, 1251, 1257, 1263, 1269, 1275, 1281, /* 0x00-0x07 */ - 1287, 1292, 1297, 1302, 1307, 1312, 1317, 1322, /* 0x08-0x0f */ - 1327, 1333, 1339, 1345, 1351, 1357, 1363, 1369, /* 0x10-0x17 */ - 1375, 1381, 1386, 1392, 1398, 1403, 1408, 1413, /* 0x18-0x1f */ - 1418, 1423, -1, -1, 1429, -1, -1, -1, /* 0x20-0x27 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ - 1434, 1438, 1442, 1446, 1450, 1454, 1458, 1462, /* 0x60-0x67 */ - 1466, 1470, 1475, 1480, 1485, 1490, 1495, 1500, /* 0x68-0x6f */ - 1505, 1510, 1515, 1520, 1525, 1529, 1533, 1537, /* 0x70-0x77 */ - 1541, 1545, 1549, 1553, 1557, 1561, 1566, 1571, /* 0x78-0x7f */ - 1576, 1581, 1586, 1591, 1596, 1601, 1606, 1611, /* 0x80-0x87 */ - 1616, 1619, 1622, 1625, 1628, 1631, 1634, 1637, /* 0x88-0x8f */ - 1640, 1643, 1647, 1651, 1655, 1659, 1663, 1667, /* 0x90-0x97 */ - 1671, 1675, 1679, 1683, 1687, 1691, 1695, 1699, /* 0x98-0x9f */ - 1703, 1707, 1711, 1715, 1719, 1723, 1727, 1731, /* 0xa0-0xa7 */ - 1735, 1739, 1743, 1747, 1751, 1755, 1759, 1763, /* 0xa8-0xaf */ - 1767, 1771, 1775, 1779, 1783, 1787, 1791, 1795, /* 0xb0-0xb7 */ - 1799, 1803, 1807, 1811, 1815, 1819, 1823, 1827, /* 0xb8-0xbf */ - 1831, 1835, 1839, 1843, 1847, 1851, 1855, 1859, /* 0xc0-0xc7 */ - 1863, 1867, 1871, 1875, 1879, 1883, 1887, 1891, /* 0xc8-0xcf */ - 1895, 1899, 1903, 1907, 1911, 1915, 1919, 1923, /* 0xd0-0xd7 */ - 1927, 1931, 1935, 1939, 1943, 1947, 1951, 1955, /* 0xd8-0xdf */ - 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987, /* 0xe0-0xe7 */ - 1991, 1995, 1999, -1, -1, -1, -1, -1, /* 0xe8-0xef */ -}; -static const short translit_page25[64] = { - 2003, -1, 2005, -1, -1, -1, -1, -1, /* 0x00-0x07 */ - -1, -1, -1, -1, 2007, -1, -1, -1, /* 0x08-0x0f */ - 2009, -1, -1, -1, 2011, -1, -1, -1, /* 0x10-0x17 */ - 2013, -1, -1, -1, 2015, -1, -1, -1, /* 0x18-0x1f */ - -1, -1, -1, -1, 2017, -1, -1, -1, /* 0x20-0x27 */ - -1, -1, -1, -1, 2019, -1, -1, -1, /* 0x28-0x2f */ - -1, -1, -1, -1, 2021, -1, -1, -1, /* 0x30-0x37 */ - -1, -1, -1, -1, 2023, -1, -1, -1, /* 0x38-0x3f */ -}; -static const short translit_page2a[8] = { - -1, -1, -1, -1, 2032, 2036, 2039, -1, /* 0x70-0x77 */ -}; -static const short translit_page2f[216] = { - 2047, 2049, 2051, 2053, 2055, 2057, 2059, 2061, /* 0x00-0x07 */ - 2063, 2065, 2067, 2069, 2071, 2073, 2075, 2077, /* 0x08-0x0f */ - 2079, 2081, 2083, 2085, 2087, 2089, 2091, 2093, /* 0x10-0x17 */ - 2095, 2097, 2099, 2101, 2103, 2105, 2107, 2109, /* 0x18-0x1f */ - 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125, /* 0x20-0x27 */ - 2127, 2129, 2131, 2133, 2135, 2137, 2139, 2141, /* 0x28-0x2f */ - 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157, /* 0x30-0x37 */ - 2159, 2161, 2163, 2165, 2167, 2169, 2171, 2173, /* 0x38-0x3f */ - 2175, 2177, 2179, 2181, 2183, 2185, 2187, 2189, /* 0x40-0x47 */ - 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205, /* 0x48-0x4f */ - 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2221, /* 0x50-0x57 */ - 2223, 2225, 2227, 2229, 2231, 2233, 2235, 2237, /* 0x58-0x5f */ - 2239, 2241, 2243, 2245, 2247, 2249, 2251, 2253, /* 0x60-0x67 */ - 2255, 2257, 2259, 2261, 2263, 2265, 2267, 2269, /* 0x68-0x6f */ - 2271, 2273, 2275, 2277, 2279, 2281, 2283, 2285, /* 0x70-0x77 */ - 2287, 2289, 2291, 2293, 2295, 2297, 2299, 2301, /* 0x78-0x7f */ - 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317, /* 0x80-0x87 */ - 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333, /* 0x88-0x8f */ - 2335, 2337, 2339, 2341, 2343, 2345, 2347, 2349, /* 0x90-0x97 */ - 2351, 2353, 2355, 2357, 2359, 2361, 2363, 2365, /* 0x98-0x9f */ - 2367, 2369, 2371, 2373, 2375, 2377, 2379, 2381, /* 0xa0-0xa7 */ - 2383, 2385, 2387, 2389, 2391, 2393, 2395, 2397, /* 0xa8-0xaf */ - 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413, /* 0xb0-0xb7 */ - 2415, 2417, 2419, 2421, 2423, 2425, 2427, 2429, /* 0xb8-0xbf */ - 2431, 2433, 2435, 2437, 2439, 2441, 2443, 2445, /* 0xc0-0xc7 */ - 2447, 2449, 2451, 2453, 2455, 2457, 2459, 2461, /* 0xc8-0xcf */ - 2463, 2465, 2467, 2469, 2471, 2473, -1, -1, /* 0xd0-0xd7 */ -}; -static const short translit_page30[248] = { - 2475, -1, -1, -1, -1, -1, -1, -1, /* 0x00-0x07 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x10-0x17 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x20-0x27 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ - -1, -1, -1, -1, -1, -1, 2477, -1, /* 0x30-0x37 */ - 2479, 2481, 2483, -1, -1, -1, -1, -1, /* 0x38-0x3f */ - -1, 2485, -1, 2487, -1, 2489, -1, 2491, /* 0x40-0x47 */ - -1, 2493, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x50-0x57 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x58-0x5f */ - -1, -1, -1, 2495, -1, -1, -1, -1, /* 0x60-0x67 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x68-0x6f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x70-0x77 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x78-0x7f */ - -1, -1, -1, 2497, -1, 2499, -1, 2501, /* 0x80-0x87 */ - -1, -1, -1, -1, -1, -1, 2503, -1, /* 0x88-0x8f */ - -1, -1, -1, -1, -1, 2505, 2507, -1, /* 0x90-0x97 */ - -1, -1, -1, 2509, 2512, -1, -1, -1, /* 0x98-0x9f */ - 2515, 2517, -1, 2519, -1, 2521, -1, 2523, /* 0xa0-0xa7 */ - -1, 2525, -1, -1, -1, -1, -1, -1, /* 0xa8-0xaf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb0-0xb7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb8-0xbf */ - -1, -1, -1, 2527, -1, -1, -1, -1, /* 0xc0-0xc7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc8-0xcf */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd0-0xd7 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd8-0xdf */ - -1, -1, -1, 2529, -1, 2531, -1, 2533, /* 0xe0-0xe7 */ - -1, -1, -1, -1, -1, -1, 2535, -1, /* 0xe8-0xef */ - -1, -1, -1, -1, -1, 2537, 2539, -1, /* 0xf0-0xf7 */ -}; -static const short translit_page31[96] = { - -1, 2541, 2543, 2545, 2547, 2549, 2551, 2553, /* 0x30-0x37 */ - 2555, 2557, 2559, 2561, 2563, 2565, 2567, 2569, /* 0x38-0x3f */ - 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, /* 0x40-0x47 */ - 2587, 2589, 2591, 2593, 2595, 2597, 2599, 2601, /* 0x48-0x4f */ - 2603, 2605, 2607, 2609, 2611, 2613, 2615, 2617, /* 0x50-0x57 */ - 2619, 2621, 2623, 2625, 2627, 2629, 2631, 2633, /* 0x58-0x5f */ - 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, /* 0x60-0x67 */ - 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, /* 0x68-0x6f */ - 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, /* 0x70-0x77 */ - 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, /* 0x78-0x7f */ - 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, /* 0x80-0x87 */ - 2715, 2717, 2719, 2721, 2723, 2725, 2727, -1, /* 0x88-0x8f */ -}; -static const short translit_page31_1[528] = { - 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, /* 0xf0-0xf7 */ - 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, /* 0xf8-0xff */ - /* 0x3200 */ - 2761, 2765, 2769, 2773, 2777, 2781, 2785, 2789, /* 0x00-0x07 */ - 2793, 2797, 2801, 2805, 2809, 2813, 2817, 2822, /* 0x08-0x0f */ - 2827, 2832, 2837, 2842, 2847, 2852, 2857, 2862, /* 0x10-0x17 */ - 2867, 2872, 2877, 2882, 2887, 2892, 2900, -1, /* 0x18-0x1f */ - 2907, 2911, 2915, 2919, 2923, 2927, 2931, 2935, /* 0x20-0x27 */ - 2939, 2943, 2947, 2951, 2955, 2959, 2963, 2967, /* 0x28-0x2f */ - 2971, 2975, 2979, 2983, 2987, 2991, 2995, 2999, /* 0x30-0x37 */ - 3003, 3007, 3011, 3015, 3019, 3023, 3027, 3031, /* 0x38-0x3f */ - 3035, 3039, 3043, 3047, -1, -1, -1, -1, /* 0x40-0x47 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x48-0x4f */ - 3051, 3055, 3060, 3065, 3070, 3075, 3080, 3085, /* 0x50-0x57 */ - 3090, 3095, 3100, 3105, 3110, 3115, 3120, 3125, /* 0x58-0x5f */ - 3130, 3134, 3138, 3142, 3146, 3150, 3154, 3158, /* 0x60-0x67 */ - 3162, 3166, 3170, 3174, 3178, 3182, 3186, 3191, /* 0x68-0x6f */ - 3196, 3201, 3206, 3211, 3216, 3221, 3226, 3231, /* 0x70-0x77 */ - 3236, 3241, 3246, 3251, 3256, 3264, -1, -1, /* 0x78-0x7f */ - 3271, 3275, 3279, 3283, 3287, 3291, 3295, 3299, /* 0x80-0x87 */ - 3303, 3307, 3311, 3315, 3319, 3323, 3327, 3331, /* 0x88-0x8f */ - 3335, 3339, 3343, 3347, 3351, 3355, 3359, 3363, /* 0x90-0x97 */ - 3367, 3371, 3375, 3379, 3383, 3387, 3391, 3395, /* 0x98-0x9f */ - 3399, 3403, 3407, 3411, 3415, 3419, 3423, 3427, /* 0xa0-0xa7 */ - 3431, 3435, 3439, 3443, 3447, 3451, 3455, 3459, /* 0xa8-0xaf */ - 3463, 3467, 3472, 3477, 3482, 3487, 3492, 3497, /* 0xb0-0xb7 */ - 3502, 3507, 3512, 3517, 3522, 3527, 3532, 3537, /* 0xb8-0xbf */ - 3542, 3545, 3548, 3551, 3554, 3557, 3560, 3563, /* 0xc0-0xc7 */ - 3566, 3569, 3573, 3577, 3581, 3584, 3588, 3591, /* 0xc8-0xcf */ - 3595, 3599, 3603, 3607, 3611, 3615, 3619, 3623, /* 0xd0-0xd7 */ - 3627, 3631, 3635, 3639, 3643, 3647, 3651, 3655, /* 0xd8-0xdf */ - 3659, 3663, 3667, 3671, 3675, 3679, 3683, 3687, /* 0xe0-0xe7 */ - 3691, 3695, 3699, 3703, 3707, 3711, 3715, 3719, /* 0xe8-0xef */ - 3723, 3727, 3731, 3735, 3739, 3743, 3747, 3751, /* 0xf0-0xf7 */ - 3755, 3759, 3763, 3767, 3771, 3775, 3779, -1, /* 0xf8-0xff */ - /* 0x3300 */ - 3783, 3788, 3793, 3798, 3802, 3807, 3811, 3815, /* 0x00-0x07 */ - 3821, 3826, 3830, 3834, 3838, 3843, 3848, 3852, /* 0x08-0x0f */ - 3856, 3859, 3863, 3868, 3873, 3876, 3882, 3889, /* 0x10-0x17 */ - 3895, 3899, 3905, 3911, 3916, 3920, 3924, 3928, /* 0x18-0x1f */ - 3933, 3939, 3944, 3948, 3952, 3956, 3959, 3962, /* 0x20-0x27 */ - 3965, 3968, 3972, 3976, 3982, 3986, 3991, 3997, /* 0x28-0x2f */ - 4001, 4004, 4007, 4013, 4018, 4024, 4028, 4034, /* 0x30-0x37 */ - 4037, 4041, 4045, 4049, 4053, 4057, 4062, 4066, /* 0x38-0x3f */ - 4069, 4073, 4077, 4081, 4086, 4090, 4094, 4098, /* 0x40-0x47 */ - 4104, 4109, 4112, 4118, 4121, 4126, 4131, 4135, /* 0x48-0x4f */ - 4139, 4143, 4148, 4151, 4155, 4160, 4163, 4169, /* 0x50-0x57 */ - 4173, 4176, 4179, 4182, 4185, 4188, 4191, 4194, /* 0x58-0x5f */ - 4197, 4200, 4203, 4207, 4211, 4215, 4219, 4223, /* 0x60-0x67 */ - 4227, 4231, 4235, 4239, 4243, 4247, 4251, 4255, /* 0x68-0x6f */ - 4259, 4263, 4267, 4270, 4273, 4277, 4280, 4283, /* 0x70-0x77 */ - 4286, 4291, 4296, 4299, 4302, 4305, 4308, 4311, /* 0x78-0x7f */ - 4316, 4319, 4322, 4325, 4328, 4331, 4334, 4337, /* 0x80-0x87 */ - 4340, 4344, 4349, 4352, 4355, 4358, 4361, 4364, /* 0x88-0x8f */ - 4367, 4370, 4374, 4378, 4382, 4386, 4389, 4392, /* 0x90-0x97 */ - 4395, 4398, 4401, 4404, 4407, 4410, 4413, 4416, /* 0x98-0x9f */ - 4421, 4426, 4430, 4435, 4440, 4445, 4449, 4454, /* 0xa0-0xa7 */ - 4458, 4464, 4467, 4471, 4475, 4479, 4483, 4489, /* 0xa8-0xaf */ - 4497, 4500, 4503, 4506, 4509, 4512, 4515, 4518, /* 0xb0-0xb7 */ - 4521, 4524, 4527, 4530, 4533, 4536, 4539, 4542, /* 0xb8-0xbf */ - 4545, 4548, 4551, 4556, 4559, 4562, 4565, 4570, /* 0xc0-0xc7 */ - 4574, 4577, 4580, 4583, 4586, 4589, 4592, 4595, /* 0xc8-0xcf */ - 4598, 4601, 4604, 4608, 4611, 4614, 4618, 4622, /* 0xd0-0xd7 */ - 4625, 4630, 4634, 4637, 4640, 4643, 4646, 4650, /* 0xd8-0xdf */ - 4658, 4661, 4664, 4667, 4670, 4673, 4676, 4679, /* 0xe0-0xe7 */ - 4682, 4685, 4689, 4693, 4697, 4701, 4705, 4709, /* 0xe8-0xef */ - 4713, 4717, 4721, 4725, 4729, 4733, 4737, 4741, /* 0xf0-0xf7 */ - 4745, 4749, 4753, 4757, 4761, 4765, 4769, 4654, /* 0xf8-0xff */ -}; -static const short translit_pagef9[368] = { - 4773, 4775, 4777, 4779, 4781, 4783, 4785, 4787, /* 0x00-0x07 */ - 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, /* 0x08-0x0f */ - 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, /* 0x10-0x17 */ - 4821, 4823, 4825, 4827, 4829, 4831, 4833, 4835, /* 0x18-0x1f */ - 4837, 4839, 4841, 4843, 4845, 4847, 4849, 4851, /* 0x20-0x27 */ - 4853, 4855, 4857, 4859, 4861, 4863, 4865, 4867, /* 0x28-0x2f */ - 4869, 4871, 4873, 4875, 4877, 4879, 4881, 4883, /* 0x30-0x37 */ - 4885, 4887, 4889, 4891, 4893, 4895, 4897, 4899, /* 0x38-0x3f */ - 4901, 4903, 4905, 4907, 4909, 4911, 4913, 4915, /* 0x40-0x47 */ - 4917, 4919, 4921, 4923, 4925, 4927, 4929, 4931, /* 0x48-0x4f */ - 4933, 4935, 4937, 4939, 4941, 4943, 4945, 4947, /* 0x50-0x57 */ - 4949, 4951, 4953, 4955, 4957, 4959, 4961, 4963, /* 0x58-0x5f */ - 4965, 4967, 4969, 4971, 4973, 4975, 4977, 4979, /* 0x60-0x67 */ - 4981, 4983, 4985, 4987, 4989, 4991, 4993, 4995, /* 0x68-0x6f */ - 4997, 4999, 5001, 5003, 5005, 5007, 5009, 5011, /* 0x70-0x77 */ - 5013, 5015, 5017, 5019, 5021, 5023, 5025, 5027, /* 0x78-0x7f */ - 5029, 5031, 5033, 5035, 5037, 5039, 5041, 5043, /* 0x80-0x87 */ - 5045, 5047, 5049, 5051, 5053, 5055, 5057, 5059, /* 0x88-0x8f */ - 5061, 5063, 5065, 5067, 5069, 5071, 5073, 5075, /* 0x90-0x97 */ - 5077, 5079, 5081, 5083, 5085, 5087, 5089, 5091, /* 0x98-0x9f */ - 5093, 5095, 5097, 5099, 5101, 5103, 5105, 5107, /* 0xa0-0xa7 */ - 5109, 5111, 5113, 5115, 5117, 5119, 5121, 5123, /* 0xa8-0xaf */ - 5125, 5127, 5129, 5131, 5133, 5135, 5137, 5139, /* 0xb0-0xb7 */ - 5141, 5143, 5145, 5147, 5149, 5151, 5153, 5155, /* 0xb8-0xbf */ - 5157, 5159, 5161, 5163, 5165, 5167, 5169, 5171, /* 0xc0-0xc7 */ - 5173, 5175, 5177, 5179, 5181, 5183, 5185, 5187, /* 0xc8-0xcf */ - 5189, 5191, 5193, 5195, 5197, 5199, 5201, 5203, /* 0xd0-0xd7 */ - 5205, 5207, 5209, 5211, 5213, 5215, 5217, 5219, /* 0xd8-0xdf */ - 5221, 5223, 5225, 5227, 5229, 5231, 5233, 5235, /* 0xe0-0xe7 */ - 5237, 5239, 5241, 5243, 5245, 5247, 5249, 5251, /* 0xe8-0xef */ - 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, /* 0xf0-0xf7 */ - 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, /* 0xf8-0xff */ - /* 0xfa00 */ - 5285, 5287, 5289, 5291, 5293, 5295, 5297, 5299, /* 0x00-0x07 */ - 5301, 5303, 5305, 5307, 5309, 5311, -1, -1, /* 0x08-0x0f */ - 5313, -1, 5315, -1, -1, 5317, 5319, 5321, /* 0x10-0x17 */ - 5323, 5325, 5327, 5329, 5331, 5333, 5335, -1, /* 0x18-0x1f */ - 5337, -1, 5339, -1, -1, 5341, 5343, -1, /* 0x20-0x27 */ - -1, -1, 5345, 5347, 5349, 5351, -1, -1, /* 0x28-0x2f */ - 5353, 5355, 5357, 5359, 5361, 5363, 5365, 5367, /* 0x30-0x37 */ - 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, /* 0x38-0x3f */ - 5385, 5387, 5389, 5391, 5393, 5395, 5397, 5399, /* 0x40-0x47 */ - 5401, 5403, 5405, 5407, 5409, 5411, 5413, 5415, /* 0x48-0x4f */ - 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, /* 0x50-0x57 */ - 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, /* 0x58-0x5f */ - 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, /* 0x60-0x67 */ - 5465, 5467, 5469, -1, -1, -1, -1, -1, /* 0x68-0x6f */ -}; -static const short translit_pagefb[80] = { - 5471, 5474, 5477, 5480, 5484, 5488, 5491, -1, /* 0x00-0x07 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x08-0x0f */ - -1, -1, -1, 5494, 5497, 5500, 5503, 5506, /* 0x10-0x17 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18-0x1f */ - 5509, 5511, 5513, 5515, 5517, 5519, 5521, 5523, /* 0x20-0x27 */ - 5525, 5527, -1, -1, -1, -1, -1, -1, /* 0x28-0x2f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x30-0x37 */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x38-0x3f */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x40-0x47 */ - -1, -1, -1, -1, -1, -1, -1, 5529, /* 0x48-0x4f */ -}; -static const short translit_pagefe[40] = { - -1, 5532, 5534, 5536, 5538, 5540, 5542, 5544, /* 0x48-0x4f */ - 5546, 5548, 5550, -1, 5552, 5554, 5556, 5558, /* 0x50-0x57 */ - 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, /* 0x58-0x5f */ - 5576, 5578, 5580, 5582, 5584, 5586, 5588, -1, /* 0x60-0x67 */ - 5590, 5592, 5594, 5596, -1, -1, -1, -1, /* 0x68-0x6f */ -}; -static const short translit_pageff[240] = { - -1, 5598, 5600, 5602, 5604, 5606, 5608, 5610, /* 0x00-0x07 */ - 5612, 5614, 5616, 5618, 5620, 5622, 5624, 5626, /* 0x08-0x0f */ - 5628, 5630, 5632, 5634, 5636, 5638, 5640, 5642, /* 0x10-0x17 */ - 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, /* 0x18-0x1f */ - 5660, 5662, 5664, 5666, 5668, 5670, 5672, 5674, /* 0x20-0x27 */ - 5676, 5678, 5680, 5682, 5684, 5686, 5688, 5690, /* 0x28-0x2f */ - 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, /* 0x30-0x37 */ - 5708, 5710, 5712, 5714, 5716, 5718, 5720, 5722, /* 0x38-0x3f */ - 5724, 5726, 5728, 5730, 5732, 5734, 5736, 5738, /* 0x40-0x47 */ - 5740, 5742, 5744, 5746, 5748, 5750, 5752, 5754, /* 0x48-0x4f */ - 5756, 5758, 5760, 5762, 5764, 5766, 5768, 5770, /* 0x50-0x57 */ - 5772, 5774, 5776, 5778, 5780, 5782, 5784, 5786, /* 0x58-0x5f */ - 5788, 5790, 5792, 5794, 5796, 5798, 5800, 5802, /* 0x60-0x67 */ - 5804, 5806, 5808, 5810, 5812, 5814, 5816, 5818, /* 0x68-0x6f */ - 5820, 5822, 5824, 5826, 5828, 5830, 5832, 5834, /* 0x70-0x77 */ - 5836, 5838, 5840, 5842, 5844, 5846, 5848, 5850, /* 0x78-0x7f */ - 5852, 5854, 5856, 5858, 5860, 5862, 5864, 5866, /* 0x80-0x87 */ - 5868, 5870, 5872, 5874, 5876, 5878, 5880, 5882, /* 0x88-0x8f */ - 5884, 5886, 5888, 5890, 5892, 5894, 5896, 5898, /* 0x90-0x97 */ - 5900, 5902, 5904, 5906, 5908, 5910, 5912, 5914, /* 0x98-0x9f */ - 5916, 5918, 5920, 5922, 5924, 5926, 5928, 5930, /* 0xa0-0xa7 */ - 5932, 5934, 5936, 5938, 5940, 5942, 5944, 5946, /* 0xa8-0xaf */ - 5948, 5950, 5952, 5954, 5956, 5958, 5960, 5962, /* 0xb0-0xb7 */ - 5964, 5966, 5968, 5970, 5972, 5974, 5976, -1, /* 0xb8-0xbf */ - -1, -1, 5978, 5980, 5982, 5984, 5986, 5988, /* 0xc0-0xc7 */ - -1, -1, 5990, 5992, 5994, 5996, 5998, 6000, /* 0xc8-0xcf */ - -1, -1, 6002, 6004, 6006, 6008, 6010, 6012, /* 0xd0-0xd7 */ - -1, -1, 6014, 6016, 6018, -1, -1, -1, /* 0xd8-0xdf */ - 6020, 6022, 6024, 6026, 6028, 6030, 6032, -1, /* 0xe0-0xe7 */ - 6034, 6036, 6038, 6040, 6042, 6044, 6046, -1, /* 0xe8-0xef */ -}; -static const short translit_page1d4[1024] = { - 6048, 6050, 6052, 6054, 6056, 6058, 6060, 6062, /* 0x00-0x07 */ - 6064, 6066, 6068, 6070, 6072, 6074, 6076, 6078, /* 0x08-0x0f */ - 6080, 6082, 6084, 6086, 6088, 6090, 6092, 6094, /* 0x10-0x17 */ - 6096, 6098, 6100, 6102, 6104, 6106, 6108, 6110, /* 0x18-0x1f */ - 6112, 6114, 6116, 6118, 6120, 6122, 6124, 6126, /* 0x20-0x27 */ - 6128, 6130, 6132, 6134, 6136, 6138, 6140, 6142, /* 0x28-0x2f */ - 6144, 6146, 6148, 6150, 6152, 6154, 6156, 6158, /* 0x30-0x37 */ - 6160, 6162, 6164, 6166, 6168, 6170, 6172, 6174, /* 0x38-0x3f */ - 6176, 6178, 6180, 6182, 6184, 6186, 6188, 6190, /* 0x40-0x47 */ - 6192, 6194, 6196, 6198, 6200, 6202, 6204, 6206, /* 0x48-0x4f */ - 6208, 6210, 6212, 6214, 6216, -1, 6218, 6220, /* 0x50-0x57 */ - 6222, 6224, 6226, 6228, 6230, 6232, 6234, 6236, /* 0x58-0x5f */ - 6238, 6240, 6242, 6244, 6246, 6248, 6250, 6252, /* 0x60-0x67 */ - 6254, 6256, 6258, 6260, 6262, 6264, 6266, 6268, /* 0x68-0x6f */ - 6270, 6272, 6274, 6276, 6278, 6280, 6282, 6284, /* 0x70-0x77 */ - 6286, 6288, 6290, 6292, 6294, 6296, 6298, 6300, /* 0x78-0x7f */ - 6302, 6304, 6306, 6308, 6310, 6312, 6314, 6316, /* 0x80-0x87 */ - 6318, 6320, 6322, 6324, 6326, 6328, 6330, 6332, /* 0x88-0x8f */ - 6334, 6336, 6338, 6340, 6342, 6344, 6346, 6348, /* 0x90-0x97 */ - 6350, 6352, 6354, 6356, 6358, -1, 6360, 6362, /* 0x98-0x9f */ - -1, -1, 6364, -1, -1, 6366, 6368, -1, /* 0xa0-0xa7 */ - -1, 6370, 6372, 6374, 6376, -1, 6378, 6380, /* 0xa8-0xaf */ - 6382, 6384, 6386, 6388, 6390, 6392, 6394, 6396, /* 0xb0-0xb7 */ - 6398, 6400, -1, 6402, -1, 6404, 6406, 6408, /* 0xb8-0xbf */ - 6410, 6412, 6414, 6416, -1, 6418, 6420, 6422, /* 0xc0-0xc7 */ - 6424, 6426, 6428, 6430, 6432, 6434, 6436, 6438, /* 0xc8-0xcf */ - 6440, 6442, 6444, 6446, 6448, 6450, 6452, 6454, /* 0xd0-0xd7 */ - 6456, 6458, 6460, 6462, 6464, 6466, 6468, 6470, /* 0xd8-0xdf */ - 6472, 6474, 6476, 6478, 6480, 6482, 6484, 6486, /* 0xe0-0xe7 */ - 6488, 6490, 6492, 6494, 6496, 6498, 6500, 6502, /* 0xe8-0xef */ - 6504, 6506, 6508, 6510, 6512, 6514, 6516, 6518, /* 0xf0-0xf7 */ - 6520, 6522, 6524, 6526, 6528, 6530, 6532, 6534, /* 0xf8-0xff */ - /* 0x1d500 */ - 6536, 6538, 6540, 6542, 6544, 6546, -1, 6548, /* 0x00-0x07 */ - 6550, 6552, 6554, -1, -1, 6556, 6558, 6560, /* 0x08-0x0f */ - 6562, 6564, 6566, 6568, 6570, -1, 6572, 6574, /* 0x10-0x17 */ - 6576, 6578, 6580, 6582, 6584, -1, 6586, 6588, /* 0x18-0x1f */ - 6590, 6592, 6594, 6596, 6598, 6600, 6602, 6604, /* 0x20-0x27 */ - 6606, 6608, 6610, 6612, 6614, 6616, 6618, 6620, /* 0x28-0x2f */ - 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, /* 0x30-0x37 */ - 6638, 6640, -1, 6642, 6644, 6646, 6648, -1, /* 0x38-0x3f */ - 6650, 6652, 6654, 6656, 6658, -1, 6660, -1, /* 0x40-0x47 */ - -1, -1, 6662, 6664, 6666, 6668, 6670, 6672, /* 0x48-0x4f */ - 6674, -1, 6676, 6678, 6680, 6682, 6684, 6686, /* 0x50-0x57 */ - 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, /* 0x58-0x5f */ - 6704, 6706, 6708, 6710, 6712, 6714, 6716, 6718, /* 0x60-0x67 */ - 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, /* 0x68-0x6f */ - 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, /* 0x70-0x77 */ - 6752, 6754, 6756, 6758, 6760, 6762, 6764, 6766, /* 0x78-0x7f */ - 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, /* 0x80-0x87 */ - 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, /* 0x88-0x8f */ - 6800, 6802, 6804, 6806, 6808, 6810, 6812, 6814, /* 0x90-0x97 */ - 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, /* 0x98-0x9f */ - 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, /* 0xa0-0xa7 */ - 6848, 6850, 6852, 6854, 6856, 6858, 6860, 6862, /* 0xa8-0xaf */ - 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, /* 0xb0-0xb7 */ - 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, /* 0xb8-0xbf */ - 6896, 6898, 6900, 6902, 6904, 6906, 6908, 6910, /* 0xc0-0xc7 */ - 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, /* 0xc8-0xcf */ - 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, /* 0xd0-0xd7 */ - 6944, 6946, 6948, 6950, 6952, 6954, 6956, 6958, /* 0xd8-0xdf */ - 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, /* 0xe0-0xe7 */ - 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, /* 0xe8-0xef */ - 6992, 6994, 6996, 6998, 7000, 7002, 7004, 7006, /* 0xf0-0xf7 */ - 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, /* 0xf8-0xff */ - /* 0x1d600 */ - 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, /* 0x00-0x07 */ - 7040, 7042, 7044, 7046, 7048, 7050, 7052, 7054, /* 0x08-0x0f */ - 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, /* 0x10-0x17 */ - 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, /* 0x18-0x1f */ - 7088, 7090, 7092, 7094, 7096, 7098, 7100, 7102, /* 0x20-0x27 */ - 7104, 7106, 7108, 7110, 7112, 7114, 7116, 7118, /* 0x28-0x2f */ - 7120, 7122, 7124, 7126, 7128, 7130, 7132, 7134, /* 0x30-0x37 */ - 7136, 7138, 7140, 7142, 7144, 7146, 7148, 7150, /* 0x38-0x3f */ - 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, /* 0x40-0x47 */ - 7168, 7170, 7172, 7174, 7176, 7178, 7180, 7182, /* 0x48-0x4f */ - 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, /* 0x50-0x57 */ - 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, /* 0x58-0x5f */ - 7216, 7218, 7220, 7222, 7224, 7226, 7228, 7230, /* 0x60-0x67 */ - 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, /* 0x68-0x6f */ - 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, /* 0x70-0x77 */ - 7264, 7266, 7268, 7270, 7272, 7274, 7276, 7278, /* 0x78-0x7f */ - 7280, 7282, 7284, 7286, 7288, 7290, 7292, 7294, /* 0x80-0x87 */ - 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, /* 0x88-0x8f */ - 7312, 7314, 7316, 7318, 7320, 7322, 7324, 7326, /* 0x90-0x97 */ - 7328, 7330, 7332, 7334, 7336, 7338, 7340, 7342, /* 0x98-0x9f */ - 7344, 7346, 7348, 7350, -1, -1, -1, -1, /* 0xa0-0xa7 */ - 7352, 7354, 7356, 7358, 7360, 7362, 7364, 7366, /* 0xa8-0xaf */ - 7368, 7370, 7372, 7374, 7376, 7378, 7380, 7382, /* 0xb0-0xb7 */ - 7384, 7386, 7388, 7390, 7392, 7394, 7396, 7398, /* 0xb8-0xbf */ - 7400, 7402, 7404, 7406, 7408, 7410, 7412, 7414, /* 0xc0-0xc7 */ - 7416, 7418, 7420, 7422, 7424, 7426, 7428, 7430, /* 0xc8-0xcf */ - 7432, 7434, 7436, 7438, 7440, 7442, 7444, 7446, /* 0xd0-0xd7 */ - 7448, 7450, 7452, 7454, 7456, 7458, 7460, 7462, /* 0xd8-0xdf */ - 7464, 7466, 7468, 7470, 7472, 7474, 7476, 7478, /* 0xe0-0xe7 */ - 7480, 7482, 7484, 7486, 7488, 7490, 7492, 7494, /* 0xe8-0xef */ - 7496, 7498, 7500, 7502, 7504, 7506, 7508, 7510, /* 0xf0-0xf7 */ - 7512, 7514, 7516, 7518, 7520, 7522, 7524, 7526, /* 0xf8-0xff */ - /* 0x1d700 */ - 7528, 7530, 7532, 7534, 7536, 7538, 7540, 7542, /* 0x00-0x07 */ - 7544, 7546, 7548, 7550, 7552, 7554, 7556, 7558, /* 0x08-0x0f */ - 7560, 7562, 7564, 7566, 7568, 7570, 7572, 7574, /* 0x10-0x17 */ - 7576, 7578, 7580, 7582, 7584, 7586, 7588, 7590, /* 0x18-0x1f */ - 7592, 7594, 7596, 7598, 7600, 7602, 7604, 7606, /* 0x20-0x27 */ - 7608, 7610, 7612, 7614, 7616, 7618, 7620, 7622, /* 0x28-0x2f */ - 7624, 7626, 7628, 7630, 7632, 7634, 7636, 7638, /* 0x30-0x37 */ - 7640, 7642, 7644, 7646, 7648, 7650, 7652, 7654, /* 0x38-0x3f */ - 7656, 7658, 7660, 7662, 7664, 7666, 7668, 7670, /* 0x40-0x47 */ - 7672, 7674, 7676, 7678, 7680, 7682, 7684, 7686, /* 0x48-0x4f */ - 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, /* 0x50-0x57 */ - 7704, 7706, 7708, 7710, 7712, 7714, 7716, 7718, /* 0x58-0x5f */ - 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, /* 0x60-0x67 */ - 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750, /* 0x68-0x6f */ - 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, /* 0x70-0x77 */ - 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, /* 0x78-0x7f */ - 7784, 7786, 7788, 7790, 7792, 7794, 7796, 7798, /* 0x80-0x87 */ - 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, /* 0x88-0x8f */ - 7816, 7818, 7820, 7822, 7824, 7826, 7828, 7830, /* 0x90-0x97 */ - 7832, 7834, 7836, 7838, 7840, 7842, 7844, 7846, /* 0x98-0x9f */ - 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862, /* 0xa0-0xa7 */ - 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, /* 0xa8-0xaf */ - 7880, 7882, 7884, 7886, 7888, 7890, 7892, 7894, /* 0xb0-0xb7 */ - 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, /* 0xb8-0xbf */ - 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, /* 0xc0-0xc7 */ - 7928, 7930, -1, -1, -1, -1, 7932, 7934, /* 0xc8-0xcf */ - 7936, 7938, 7940, 7942, 7944, 7946, 7948, 7950, /* 0xd0-0xd7 */ - 7952, 7954, 7956, 7958, 7960, 7962, 7964, 7966, /* 0xd8-0xdf */ - 7968, 7970, 7972, 7974, 7976, 7978, 7980, 7982, /* 0xe0-0xe7 */ - 7984, 7986, 7988, 7990, 7992, 7994, 7996, 7998, /* 0xe8-0xef */ - 8000, 8002, 8004, 8006, 8008, 8010, 8012, 8014, /* 0xf0-0xf7 */ - 8016, 8018, 8020, 8022, 8024, 8026, 8028, 8030, /* 0xf8-0xff */ -}; -static const short translit_page2f8[544] = { - 8032, 8034, 8036, 8038, 8040, 8042, 8044, 8046, /* 0x00-0x07 */ - 8048, 8050, 8052, 8054, 8056, 8058, 8060, 8062, /* 0x08-0x0f */ - 8064, 8066, 8068, 8070, 8072, 8074, 8076, 8078, /* 0x10-0x17 */ - 8080, 8082, 8084, 8086, 8088, 8090, 8092, 8094, /* 0x18-0x1f */ - 8096, 8098, 8100, 8102, 8104, 8106, 8108, 8110, /* 0x20-0x27 */ - 8112, 8114, 8116, 8118, 8120, 8122, 8124, 8126, /* 0x28-0x2f */ - 8128, 8130, 8132, 8134, 8136, 8138, 8140, 8142, /* 0x30-0x37 */ - 8144, 8146, 8148, 8150, 8152, 8154, 8156, 8158, /* 0x38-0x3f */ - 8160, 8162, 8164, 8166, 8168, 8170, 8172, 8174, /* 0x40-0x47 */ - 8176, 8178, 8180, 8182, 8184, 8186, 8188, 8190, /* 0x48-0x4f */ - 8192, 8194, 8196, 8198, 8200, 8202, 8204, 8206, /* 0x50-0x57 */ - 8208, 8210, 8212, 8214, 8216, 8218, 8220, 8222, /* 0x58-0x5f */ - 8224, 8226, 8228, 8230, 8232, 8234, 8236, 8238, /* 0x60-0x67 */ - 8240, 8242, 8244, 8246, 8248, 8250, 8252, 8254, /* 0x68-0x6f */ - 8256, 8258, 8260, 8262, 8264, 8266, 8268, 8270, /* 0x70-0x77 */ - 8272, 8274, 8276, 8278, 8280, 8282, 8284, 8286, /* 0x78-0x7f */ - 8288, 8290, 8292, 8294, 8296, 8298, 8300, 8302, /* 0x80-0x87 */ - 8304, 8306, 8308, 8310, 8312, 8314, 8316, 8318, /* 0x88-0x8f */ - 8320, 8322, 8324, 8326, 8328, 8330, 8332, 8334, /* 0x90-0x97 */ - 8336, 8338, 8340, 8342, 8344, 8346, 8348, 8350, /* 0x98-0x9f */ - 8352, 8354, 8356, 8358, 8360, 8362, 8364, 8366, /* 0xa0-0xa7 */ - 8368, 8370, 8372, 8374, 8376, 8378, 8380, 8382, /* 0xa8-0xaf */ - 8384, 8386, 8388, 8390, 8392, 8394, 8396, 8398, /* 0xb0-0xb7 */ - 8400, 8402, 8404, 8406, 8408, 8410, 8412, 8414, /* 0xb8-0xbf */ - 8416, 8418, 8420, 8422, 8424, 8426, 8428, 8430, /* 0xc0-0xc7 */ - 8432, 8434, 8436, 8438, 8440, 8442, 8444, 8446, /* 0xc8-0xcf */ - 8448, 8450, 8452, 8454, 8456, 8458, 8460, 8462, /* 0xd0-0xd7 */ - 8464, 8466, 8468, 8470, 8472, 8474, 8476, 8478, /* 0xd8-0xdf */ - 8480, 8482, 8484, 8486, 8488, 8490, 8492, 8494, /* 0xe0-0xe7 */ - 8496, 8498, 8500, 8502, 8504, 8506, 8508, 8510, /* 0xe8-0xef */ - 8512, 8514, 8516, 8518, 8520, 8522, 8524, 8526, /* 0xf0-0xf7 */ - 8528, 8530, 8532, 8534, 8536, 8538, 8540, 8542, /* 0xf8-0xff */ - /* 0x2f900 */ - 8544, 8546, 8548, 8550, 8552, 8554, 8556, 8558, /* 0x00-0x07 */ - 8560, 8562, 8564, 8566, 8568, 8570, 8572, 8574, /* 0x08-0x0f */ - 8576, 8578, 8580, 8582, 8584, 8586, 8588, 8590, /* 0x10-0x17 */ - 8592, 8594, 8596, 8598, 8600, 8602, 8604, 8606, /* 0x18-0x1f */ - 8608, 8610, 8612, 8614, 8616, 8618, 8620, 8622, /* 0x20-0x27 */ - 8624, 8626, 8628, 8630, 8632, 8634, 8636, 8638, /* 0x28-0x2f */ - 8640, 8642, 8644, 8646, 8648, 8650, 8652, 8654, /* 0x30-0x37 */ - 8656, 8658, 8660, 8662, 8664, 8666, 8668, 8670, /* 0x38-0x3f */ - 8672, 8674, 8676, 8678, 8680, 8682, 8684, 8686, /* 0x40-0x47 */ - 8688, 8690, 8692, 8694, 8696, 8698, 8700, 8702, /* 0x48-0x4f */ - 8704, 8706, 8708, 8710, 8712, 8714, 8716, 8718, /* 0x50-0x57 */ - 8720, 8722, 8724, 8726, 8728, 8730, 8732, 8734, /* 0x58-0x5f */ - 8736, 8738, 8740, 8742, 8744, 8746, 8748, 8750, /* 0x60-0x67 */ - 8752, 8754, 8756, 8758, 8760, 8762, 8764, 8766, /* 0x68-0x6f */ - 8768, 8770, 8772, 8774, 8776, 8778, 8780, 8782, /* 0x70-0x77 */ - 8784, 8786, 8788, 8790, 8792, 8794, 8796, 8798, /* 0x78-0x7f */ - 8800, 8802, 8804, 8806, 8808, 8810, 8812, 8814, /* 0x80-0x87 */ - 8816, 8818, 8820, 8822, 8824, 8826, 8828, 8830, /* 0x88-0x8f */ - 8832, 8834, 8836, 8838, 8840, 8842, 8844, 8846, /* 0x90-0x97 */ - 8848, 8850, 8852, 8854, 8856, 8858, 8860, 8862, /* 0x98-0x9f */ - 8864, 8866, 8868, 8870, 8872, 8874, 8876, 8878, /* 0xa0-0xa7 */ - 8880, 8882, 8884, 8886, 8888, 8890, 8892, 8894, /* 0xa8-0xaf */ - 8896, 8898, 8900, 8902, 8904, 8906, 8908, 8910, /* 0xb0-0xb7 */ - 8912, 8914, 8916, 8918, 8920, 8922, 8924, 8926, /* 0xb8-0xbf */ - 8928, 8930, 8932, 8934, 8936, 8938, 8940, 8942, /* 0xc0-0xc7 */ - 8944, 8946, 8948, 8950, 8952, 8954, 8956, 8958, /* 0xc8-0xcf */ - 8960, 8962, 8964, 8966, 8968, 8970, 8972, 8974, /* 0xd0-0xd7 */ - 8976, 8978, 8980, 8982, 8984, 8986, 8988, 8990, /* 0xd8-0xdf */ - 8992, 8994, 8996, 8998, 9000, 9002, 9004, 9006, /* 0xe0-0xe7 */ - 9008, 9010, 9012, 9014, 9016, 9018, 9020, 9022, /* 0xe8-0xef */ - 9024, 9026, 9028, 9030, 9032, 9034, 9036, 9038, /* 0xf0-0xf7 */ - 9040, 9042, 9044, 9046, 9048, 9050, 9052, 9054, /* 0xf8-0xff */ - /* 0x2fa00 */ - 9056, 9058, 9060, 9062, 9064, 9066, 9068, 9070, /* 0x00-0x07 */ - 9072, 9074, 9076, 9078, 9080, 9082, 9084, 9086, /* 0x08-0x0f */ - 9088, 9090, 9092, 9094, 9096, 9098, 9100, 9102, /* 0x10-0x17 */ - 9104, 9106, 9108, 9110, 9112, 9114, -1, -1, /* 0x18-0x1f */ -}; - -#define translit_index(wc) \ - (wc >= 0x00a0 && wc < 0x01f8 ? translit_page00[wc-0x00a0] : \ - wc >= 0x0218 && wc < 0x0220 ? translit_page02[wc-0x0218] : \ - wc >= 0x02b8 && wc < 0x02e0 ? translit_page02_1[wc-0x02b8] : \ - wc >= 0x03d0 && wc < 0x0400 ? translit_page03[wc-0x03d0] : \ - wc == 0x0587 ? 654 : \ - wc >= 0x05f0 && wc < 0x05f8 ? translit_page05[wc-0x05f0] : \ - wc >= 0x0670 && wc < 0x0680 ? translit_page06[wc-0x0670] : \ - wc == 0x0e33 ? 678 : \ - wc >= 0x0eb0 && wc < 0x0ee0 ? translit_page0e[wc-0x0eb0] : \ - wc >= 0x0f70 && wc < 0x0f80 ? translit_page0f[wc-0x0f70] : \ - wc >= 0x1e00 && wc < 0x1ea0 ? translit_page1e[wc-0x1e00] : \ - wc >= 0x1ef0 && wc < 0x1ef8 ? translit_page1e_1[wc-0x1ef0] : \ - wc >= 0x2000 && wc < 0x2058 ? translit_page20[wc-0x2000] : \ - wc >= 0x20a8 && wc < 0x20b0 ? translit_page20_1[wc-0x20a8] : \ - wc >= 0x2100 && wc < 0x21d8 ? translit_page21[wc-0x2100] : \ - wc >= 0x2210 && wc < 0x2270 ? translit_page22[wc-0x2210] : \ - wc >= 0x22c0 && wc < 0x22f0 ? translit_page22_1[wc-0x22c0] : \ - wc >= 0x2400 && wc < 0x24f0 ? translit_page24[wc-0x2400] : \ - wc >= 0x2500 && wc < 0x2540 ? translit_page25[wc-0x2500] : \ - wc == 0x25e6 ? 2025 : \ - wc == 0x2a0c ? 2027 : \ - wc >= 0x2a70 && wc < 0x2a78 ? translit_page2a[wc-0x2a70] : \ - wc == 0x2e9f ? 2043 : \ - wc == 0x2ef3 ? 2045 : \ - wc >= 0x2f00 && wc < 0x2fd8 ? translit_page2f[wc-0x2f00] : \ - wc >= 0x3000 && wc < 0x30f8 ? translit_page30[wc-0x3000] : \ - wc >= 0x3130 && wc < 0x3190 ? translit_page31[wc-0x3130] : \ - wc >= 0x31f0 && wc < 0x3400 ? translit_page31_1[wc-0x31f0] : \ - wc >= 0xf900 && wc < 0xfa70 ? translit_pagef9[wc-0xf900] : \ - wc >= 0xfb00 && wc < 0xfb50 ? translit_pagefb[wc-0xfb00] : \ - wc >= 0xfe48 && wc < 0xfe70 ? translit_pagefe[wc-0xfe48] : \ - wc >= 0xff00 && wc < 0xfff0 ? translit_pageff[wc-0xff00] : \ - wc >= 0x1d400 && wc < 0x1d800 ? translit_page1d4[wc-0x1d400] : \ - wc >= 0x2f800 && wc < 0x2fa20 ? translit_page2f8[wc-0x2f800] : \ - -1) diff --git a/jni/parted/libiconv/lib/ucs2.h b/jni/parted/libiconv/lib/ucs2.h deleted file mode 100755 index 68769b1..0000000 --- a/jni/parted/libiconv/lib/ucs2.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2011, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-2 - */ - -/* Here we accept FFFE/FEFF marks as endianness indicators everywhere - in the stream, not just at the beginning. The default is big-endian. */ -/* The state is 0 if big-endian, 1 if little-endian. */ -static int -ucs2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - for (; n >= 2 && count <= RET_COUNT_MAX && count <= INT_MAX-2;) { - ucs4_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]); - if (wc == 0xfeff) { - } else if (wc == 0xfffe) { - state ^= 1; - } else if (wc >= 0xd800 && wc < 0xe000) { - conv->istate = state; - return RET_SHIFT_ILSEQ(count); - } else { - *pwc = wc; - conv->istate = state; - return count+2; - } - s += 2; n -= 2; count += 2; - } - conv->istate = state; - return RET_TOOFEW(count); -} - -/* But we output UCS-2 in big-endian order, without byte-order mark. */ -/* RFC 2152 says: - "ISO/IEC 10646-1:1993(E) specifies that when characters the UCS-2 form are - serialized as octets, that the most significant octet appear first." */ -static int -ucs2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x10000 && wc != 0xfffe && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 2) { - r[0] = (unsigned char) (wc >> 8); - r[1] = (unsigned char) wc; - return 2; - } else - return RET_TOOSMALL; - } else - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ucs2be.h b/jni/parted/libiconv/lib/ucs2be.h deleted file mode 100755 index f11062f..0000000 --- a/jni/parted/libiconv/lib/ucs2be.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-2BE = UCS-2 big endian - */ - -static int -ucs2be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 2) { - if (s[0] >= 0xd8 && s[0] < 0xe0) { - return RET_ILSEQ; - } else { - *pwc = (s[0] << 8) + s[1]; - return 2; - } - } - return RET_TOOFEW(0); -} - -static int -ucs2be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 2) { - r[0] = (unsigned char) (wc >> 8); - r[1] = (unsigned char) wc; - return 2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ucs2internal.h b/jni/parted/libiconv/lib/ucs2internal.h deleted file mode 100755 index ffb565f..0000000 --- a/jni/parted/libiconv/lib/ucs2internal.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-2-INTERNAL = UCS-2 with machine dependent endianness and alignment - */ - -static int -ucs2internal_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 2) { - unsigned short x = *(const unsigned short *)s; - if (x >= 0xd800 && x < 0xe000) { - return RET_ILSEQ; - } else { - *pwc = x; - return 2; - } - } - return RET_TOOFEW(0); -} - -static int -ucs2internal_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 2) { - *(unsigned short *)r = wc; - return 2; - } else - return RET_TOOSMALL; - } else - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ucs2le.h b/jni/parted/libiconv/lib/ucs2le.h deleted file mode 100755 index 51e9e42..0000000 --- a/jni/parted/libiconv/lib/ucs2le.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-2LE = UCS-2 little endian - */ - -static int -ucs2le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 2) { - if (s[1] >= 0xd8 && s[1] < 0xe0) { - return RET_ILSEQ; - } else { - *pwc = s[0] + (s[1] << 8); - return 2; - } - } - return RET_TOOFEW(0); -} - -static int -ucs2le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 2) { - r[0] = (unsigned char) wc; - r[1] = (unsigned char) (wc >> 8); - return 2; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ucs2swapped.h b/jni/parted/libiconv/lib/ucs2swapped.h deleted file mode 100755 index ace7e2c..0000000 --- a/jni/parted/libiconv/lib/ucs2swapped.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-2-SWAPPED = UCS-2-INTERNAL with inverted endianness - */ - -static int -ucs2swapped_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - /* This function assumes that 'unsigned short' has exactly 16 bits. */ - if (sizeof(unsigned short) != 2) abort(); - - if (n >= 2) { - unsigned short x = *(const unsigned short *)s; - x = (x >> 8) | (x << 8); - if (x >= 0xd800 && x < 0xe000) { - return RET_ILSEQ; - } else { - *pwc = x; - return 2; - } - } - return RET_TOOFEW(0); -} - -static int -ucs2swapped_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - /* This function assumes that 'unsigned short' has exactly 16 bits. */ - if (sizeof(unsigned short) != 2) abort(); - - if (wc < 0x10000 && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 2) { - unsigned short x = wc; - x = (x >> 8) | (x << 8); - *(unsigned short *)r = x; - return 2; - } else - return RET_TOOSMALL; - } else - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ucs4.h b/jni/parted/libiconv/lib/ucs4.h deleted file mode 100755 index e7a0c37..0000000 --- a/jni/parted/libiconv/lib/ucs4.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2011, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-4 - */ - -/* Here we accept FFFE0000/0000FEFF marks as endianness indicators everywhere - in the stream, not just at the beginning. The default is big-endian. */ -/* The state is 0 if big-endian, 1 if little-endian. */ -static int -ucs4_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - for (; n >= 4 && count <= RET_COUNT_MAX && count <= INT_MAX-4;) { - ucs4_t wc = (state - ? s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24) - : (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]); - if (wc == 0x0000feff) { - } else if (wc == 0xfffe0000u) { - state ^= 1; - } else if (wc <= 0x7fffffff) { - *pwc = wc; - conv->istate = state; - return count+4; - } else { - conv->istate = state; - return RET_SHIFT_ILSEQ(count); - } - s += 4; n -= 4; count += 4; - } - conv->istate = state; - return RET_TOOFEW(count); -} - -/* But we output UCS-4 in big-endian order, without byte-order mark. */ -static int -ucs4_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc <= 0x7fffffff) { - if (n >= 4) { - r[0] = (unsigned char) (wc >> 24); - r[1] = (unsigned char) (wc >> 16); - r[2] = (unsigned char) (wc >> 8); - r[3] = (unsigned char) wc; - return 4; - } else - return RET_TOOSMALL; - } else - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/ucs4be.h b/jni/parted/libiconv/lib/ucs4be.h deleted file mode 100755 index 2bbd8cf..0000000 --- a/jni/parted/libiconv/lib/ucs4be.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 1999-2000, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-4BE = UCS-4 big endian - */ - -static int -ucs4be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 4) { - *pwc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; - return 4; - } - return RET_TOOFEW(0); -} - -static int -ucs4be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 4) { - r[0] = (unsigned char) (wc >> 24); - r[1] = (unsigned char) (wc >> 16); - r[2] = (unsigned char) (wc >> 8); - r[3] = (unsigned char) wc; - return 4; - } else - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/ucs4internal.h b/jni/parted/libiconv/lib/ucs4internal.h deleted file mode 100755 index c5bf3e2..0000000 --- a/jni/parted/libiconv/lib/ucs4internal.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 1999-2000, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-4-INTERNAL = UCS-4 with machine dependent endianness and alignment - */ - -static int -ucs4internal_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 4) { - *pwc = *(const unsigned int *)s; - return 4; - } - return RET_TOOFEW(0); -} - -static int -ucs4internal_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 4) { - *(unsigned int *)r = wc; - return 4; - } else - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/ucs4le.h b/jni/parted/libiconv/lib/ucs4le.h deleted file mode 100755 index e1627c9..0000000 --- a/jni/parted/libiconv/lib/ucs4le.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 1999-2000, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-4LE = UCS-4 little endian - */ - -static int -ucs4le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 4) { - *pwc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); - return 4; - } - return RET_TOOFEW(0); -} - -static int -ucs4le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 4) { - r[0] = (unsigned char) wc; - r[1] = (unsigned char) (wc >> 8); - r[2] = (unsigned char) (wc >> 16); - r[3] = (unsigned char) (wc >> 24); - return 4; - } else - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/ucs4swapped.h b/jni/parted/libiconv/lib/ucs4swapped.h deleted file mode 100755 index 8ce7c5b..0000000 --- a/jni/parted/libiconv/lib/ucs4swapped.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 1999-2000, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UCS-4-SWAPPED = UCS-4-INTERNAL with inverted endianness - */ - -static int -ucs4swapped_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - /* This function assumes that 'unsigned int' has exactly 32 bits. */ - if (sizeof(unsigned int) != 4) abort(); - - if (n >= 4) { - unsigned int x = *(const unsigned int *)s; - x = (x >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | (x << 24); - *pwc = x; - return 4; - } - return RET_TOOFEW(0); -} - -static int -ucs4swapped_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - /* This function assumes that 'unsigned int' has exactly 32 bits. */ - if (sizeof(unsigned int) != 4) abort(); - - if (n >= 4) { - unsigned int x = wc; - x = (x >> 24) | ((x >> 8) & 0xff00) | ((x & 0xff00) << 8) | (x << 24); - *(unsigned int *)r = x; - return 4; - } else - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/uhc_1.h b/jni/parted/libiconv/lib/uhc_1.h deleted file mode 100755 index 1a46477..0000000 --- a/jni/parted/libiconv/lib/uhc_1.h +++ /dev/null @@ -1,1724 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * Unified Hangul Code part 1 - */ - -static const unsigned short uhc_1_2uni_main_page81[64] = { - 0xac02, 0xac8d, 0xad14, 0xad91, 0xadfa, 0xae7a, 0xaee6, 0xaf57, - 0xafbf, 0xb030, 0xb0a5, 0xb122, 0xb19e, 0xb207, 0xb26f, 0xb2f0, - 0xb366, 0xb3e1, 0xb445, 0xb4ad, 0xb51e, 0xb590, 0xb600, 0xb661, - 0xb6c3, 0xb723, 0xb79f, 0xb811, 0xb885, 0xb8f1, 0xb95a, 0xb9d4, - 0xba47, 0xbac2, 0xbb28, 0xbb9a, 0xbc03, 0xbc80, 0xbcfe, 0xbd67, - 0xbdd2, 0xbe3d, 0xbeb8, 0xbf23, 0xbf83, 0xbfe6, 0xc040, 0xc0a7, - 0xc132, 0xc1b1, 0xc224, 0xc297, 0xc310, 0xc37a, 0xc3db, 0xc446, - 0xc4aa, 0xc50f, 0xc596, 0xc626, 0xc6a8, 0xc726, 0xc7b8, 0xc832, -}; -static const unsigned char uhc_1_2uni_page81[5696] = { - /* 0x81 */ - 0x00, 0x01, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0c, - 0x0d, 0x16, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2c, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x38, 0x39, 0x3b, - 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x4a, 0x4c, 0x4d, 0x4e, - 0x4f, 0x50, 0x51, 0x53, 0x54, 0x55, 0x57, 0x58, - 0x59, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, 0x6c, 0x6d, 0x70, 0x71, 0x73, 0x74, - 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x80, 0x85, - 0x86, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x11, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1e, 0x20, 0x21, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2d, - 0x31, 0x32, 0x33, 0x35, 0x36, 0x38, 0x39, 0x3a, - 0x3c, 0x3d, 0x3e, 0x40, 0x41, 0x42, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x49, 0x4b, 0x4c, 0x4d, 0x4e, - 0x4f, 0x50, 0x51, 0x52, 0x55, 0x56, 0x58, 0x59, - 0x5c, 0x5e, 0x60, 0x61, 0x65, 0x67, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x71, 0x72, 0x74, 0x75, 0x76, - 0x78, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x81, 0x83, - 0x85, 0x86, - /* 0x82 */ - 0x00, 0x01, 0x02, 0x03, 0x05, 0x06, 0x07, 0x09, - 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x16, 0x17, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x22, 0x23, 0x25, 0x26, 0x27, 0x29, - 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x32, 0x34, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3d, 0x3e, - 0x3f, 0x41, 0x42, 0x43, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4e, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5b, 0x5d, - 0x5e, 0x63, 0x64, 0x65, 0x66, 0x6a, 0x6c, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x76, 0x77, 0x79, 0x7a, - 0x7b, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, - 0x2b, 0x2c, 0x2d, 0x2e, 0x31, 0x32, 0x34, 0x35, - 0x36, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, - 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4c, 0x4d, 0x4e, 0x50, 0x51, 0x52, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, - 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, - 0x65, 0x66, - /* 0x83 */ - 0x00, 0x01, 0x03, 0x04, 0x08, 0x09, 0x0a, 0x0b, - 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x38, 0x39, 0x3b, - 0x3c, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x48, - 0x4a, 0x4d, 0x4e, 0x4f, 0x51, 0x55, 0x57, 0x58, - 0x59, 0x5b, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x64, - 0x68, 0x69, 0x6a, 0x6c, 0x6d, 0x70, 0x71, 0x73, - 0x74, 0x75, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, - 0x7d, 0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x13, 0x14, - 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, - 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, - 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x45, 0x47, 0x48, - 0x49, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, - 0x54, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x60, - 0x61, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, - /* 0x84 */ - 0x00, 0x01, 0x03, 0x04, 0x06, 0x08, 0x09, 0x0a, - 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x13, 0x14, - 0x15, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x23, 0x24, 0x25, 0x26, 0x28, - 0x29, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x42, 0x43, 0x44, 0x45, 0x48, 0x49, 0x4b, 0x4d, - 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x58, - 0x5a, 0x5e, 0x5f, 0x60, 0x61, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, - 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x23, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x2a, 0x2b, 0x2c, - 0x2e, 0x2f, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, - 0x42, 0x43, 0x44, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x63, 0x64, - 0x66, 0x67, - /* 0x85 */ - 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0b, - 0x0d, 0x10, 0x11, 0x12, 0x13, 0x14, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x33, 0x34, - 0x36, 0x37, 0x38, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, - 0x3f, 0x40, 0x43, 0x44, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4e, 0x4f, 0x50, 0x52, 0x53, - 0x54, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, - 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19, - 0x1b, 0x1d, 0x1f, 0x20, 0x21, 0x22, 0x26, 0x28, - 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, - 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4e, 0x4f, 0x51, 0x52, 0x53, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5e, 0x60, 0x62, - 0x63, 0x64, 0x65, 0x66, 0x67, 0x6b, 0x6d, 0x6e, - 0x73, 0x74, - /* 0x86 */ - 0x00, 0x01, 0x02, 0x05, 0x0b, 0x0d, 0x11, 0x12, - 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, - 0x1d, 0x1e, 0x21, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3c, 0x3d, 0x3e, - 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x65, 0x68, 0x69, 0x6a, 0x6c, - 0x6f, 0x70, 0x71, 0x72, 0x75, 0x79, 0x7a, 0x7b, - 0x7c, 0x00, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20, 0x21, 0x23, - 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x30, 0x31, 0x34, 0x35, 0x37, 0x38, 0x39, - 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x58, 0x59, 0x5b, 0x5c, 0x5d, 0x5f, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x68, 0x6a, 0x6c, - 0x6d, 0x6e, 0x6f, 0x73, 0x74, 0x75, 0x77, 0x78, - 0x79, 0x7b, - /* 0x87 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2f, 0x30, 0x31, - 0x33, 0x34, 0x35, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4c, 0x4d, 0x4f, 0x50, 0x51, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, - 0x5c, 0x5e, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x68, 0x00, 0x02, 0x03, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0f, 0x11, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, - 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x52, 0x53, 0x54, 0x56, 0x57, 0x58, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x63, 0x64, 0x65, - 0x66, 0x67, - /* 0x88 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x23, 0x24, 0x26, 0x27, 0x28, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x33, 0x35, 0x38, - 0x39, 0x3a, 0x3c, 0x3e, 0x3f, 0x40, 0x42, 0x43, - 0x44, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, - 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x5b, 0x5c, 0x5e, 0x5f, - 0x60, 0x62, 0x64, 0x65, 0x66, 0x67, 0x68, 0x6b, - 0x6d, 0x6f, 0x70, 0x71, 0x72, 0x74, 0x78, 0x7a, - 0x7b, 0x00, 0x01, 0x02, 0x06, 0x0c, 0x0d, 0x0e, - 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x22, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x67, 0x69, 0x6a, 0x6d, 0x70, 0x71, - 0x72, 0x73, - /* 0x89 */ - 0x00, 0x02, 0x04, 0x06, 0x07, 0x09, 0x0c, 0x0d, - 0x0f, 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1c, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x43, 0x44, 0x45, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x60, 0x61, 0x63, 0x64, 0x67, 0x69, - 0x6b, 0x6c, 0x6d, 0x70, 0x72, 0x74, 0x76, 0x78, - 0x79, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x38, 0x39, 0x3a, 0x3c, - 0x3d, 0x3e, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x49, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x52, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, - /* 0x8a */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0d, 0x0e, 0x10, 0x11, 0x12, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1d, - 0x1f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x3a, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x42, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x60, 0x61, 0x62, 0x64, 0x65, - 0x66, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, - 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x24, 0x25, - 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x31, 0x32, 0x34, 0x35, 0x38, 0x3a, 0x3b, 0x3c, - 0x3d, 0x3e, 0x41, 0x43, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x69, 0x6a, 0x6c, - 0x6d, 0x70, - /* 0x8b */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x15, 0x17, 0x18, - 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x24, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x30, 0x31, - 0x33, 0x34, 0x35, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x40, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, 0x1c, - 0x1d, 0x1e, 0x1f, 0x22, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2e, 0x2f, 0x31, 0x32, 0x33, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3e, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x49, 0x4a, 0x4b, 0x4c, - 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, - /* 0x8c */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, - 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x3a, 0x3d, 0x3e, 0x40, 0x41, 0x42, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4c, 0x4d, 0x4e, - 0x4f, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, - /* 0x8d */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x32, - 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3f, 0x40, 0x41, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, - 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, - 0x5f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, - 0x0a, 0x0b, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x22, 0x23, 0x24, 0x26, 0x27, 0x28, - 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3e, 0x3f, 0x40, 0x42, 0x43, 0x44, 0x46, - 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4f, 0x51, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x5b, 0x5c, - 0x5e, 0x5f, 0x60, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x6b, 0x70, 0x71, 0x72, 0x77, 0x78, - 0x7a, 0x7b, - /* 0x8e */ - 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x0b, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x17, - 0x18, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x29, - 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, - 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, - 0x4b, 0x4c, 0x4f, 0x50, 0x52, 0x53, 0x54, 0x56, - 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5f, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x6b, 0x6c, 0x6e, 0x6f, - 0x70, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x25, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4d, 0x4e, 0x50, 0x51, 0x52, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5d, - 0x5f, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x68, - 0x69, 0x6a, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, - /* 0x8f */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x34, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3d, 0x3f, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x48, 0x49, - 0x4a, 0x4c, 0x4d, 0x4e, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x59, 0x5b, 0x5d, 0x5e, - 0x5f, 0x60, 0x61, 0x62, 0x65, 0x66, 0x68, 0x69, - 0x6a, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x2e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4d, 0x4e, 0x50, - 0x51, 0x52, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5c, 0x5d, 0x5f, 0x61, 0x62, 0x63, 0x64, - 0x65, 0x66, - /* 0x90 */ - 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1c, 0x1d, 0x1f, 0x20, - 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2c, 0x2e, 0x31, 0x32, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x54, 0x55, 0x57, 0x58, 0x59, 0x5b, 0x5c, - 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x64, 0x66, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x70, 0x71, 0x73, - 0x79, 0x00, 0x01, 0x02, 0x03, 0x06, 0x08, 0x0b, - 0x0c, 0x0e, 0x12, 0x13, 0x15, 0x16, 0x17, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, - 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x66, 0x67, 0x69, 0x6a, 0x6b, 0x6d, 0x6f, 0x70, - 0x71, 0x72, - /* 0x91 */ - 0x00, 0x03, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0f, - 0x10, 0x12, 0x13, 0x14, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1f, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, - 0x3b, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x63, 0x66, 0x67, 0x68, 0x6a, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x73, 0x75, 0x77, 0x78, 0x79, - 0x7a, 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x18, 0x19, 0x1a, - 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, - 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3b, - 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4c, 0x4e, 0x50, - 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, 0x58, 0x59, - 0x5b, 0x5c, 0x5d, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, - /* 0x92 */ - 0x00, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0f, 0x11, 0x12, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1e, 0x20, 0x22, 0x23, 0x24, 0x26, - 0x29, 0x2a, 0x2b, 0x2d, 0x2e, 0x2f, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x3a, 0x3c, - 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x61, 0x62, 0x63, 0x65, 0x66, 0x67, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, - 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, - 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x37, - 0x38, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x60, 0x61, 0x63, - 0x64, 0x67, - /* 0x93 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x0b, 0x0d, - 0x0f, 0x10, 0x16, 0x17, 0x1d, 0x1e, 0x1f, 0x20, - 0x23, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2f, - 0x30, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3f, 0x43, 0x44, 0x45, 0x47, - 0x48, 0x4b, 0x4c, 0x4e, 0x4f, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x09, - 0x0a, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x16, - 0x18, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, 0x23, - 0x25, 0x26, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x32, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3e, 0x3f, 0x41, 0x42, 0x43, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4e, 0x52, 0x53, - 0x54, 0x56, 0x57, 0x59, 0x5a, 0x5b, 0x5d, 0x5e, - 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, - 0x6f, 0x70, 0x71, 0x72, 0x73, 0x77, 0x79, 0x7a, - 0x7b, 0x7d, - /* 0x94 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0a, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x13, 0x14, - 0x15, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4c, 0x4d, 0x4f, 0x50, 0x51, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5c, 0x5d, 0x5e, - 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x67, - 0x68, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x2b, 0x2d, 0x2f, 0x30, 0x31, 0x34, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3e, - 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, - /* 0x95 */ - 0x00, 0x01, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, - 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2f, 0x30, - 0x32, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3c, - 0x3d, 0x3f, 0x40, 0x41, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4c, 0x4e, 0x4f, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x10, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x19, 0x1b, 0x1f, 0x20, 0x21, - 0x22, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2c, 0x2e, - 0x2f, 0x30, 0x31, 0x32, 0x35, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x41, 0x42, 0x44, 0x45, 0x46, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x51, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, - /* 0x96 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x1a, 0x1b, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x26, 0x27, 0x29, 0x2a, 0x2e, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4a, - 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, - 0x5d, 0x5e, 0x5f, 0x62, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1f, 0x20, - 0x22, 0x23, 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, - 0x2b, 0x2c, 0x2f, 0x30, 0x31, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, - /* 0x97 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x4b, 0x4c, - 0x4e, 0x4f, 0x50, 0x52, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x5a, 0x5b, 0x5d, 0x5f, 0x60, 0x61, - 0x62, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, - 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, - 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, - 0x58, 0x59, - /* 0x98 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x19, - 0x1a, 0x1b, 0x1d, 0x1e, 0x1f, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x26, 0x27, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x52, 0x53, 0x55, 0x56, 0x57, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x62, 0x64, - 0x66, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x0a, - 0x0b, 0x10, 0x11, 0x12, 0x13, 0x14, 0x17, 0x1b, - 0x1c, 0x1d, 0x1f, 0x20, 0x23, 0x24, 0x26, 0x27, - 0x28, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x33, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3f, - 0x40, 0x42, 0x43, 0x44, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4f, 0x51, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5e, 0x5f, - 0x60, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x6a, 0x6b, 0x6c, 0x6d, 0x6f, 0x70, 0x71, 0x72, - 0x73, 0x74, 0x7a, 0x7b, 0x7e, 0x81, 0x82, 0x83, - 0x84, 0x87, - /* 0x99 */ - 0x00, 0x01, 0x02, 0x03, 0x05, 0x08, 0x09, 0x0b, - 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, - 0x15, 0x18, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x24, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x34, 0x38, 0x39, 0x3a, - 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x43, 0x44, - 0x45, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5d, 0x5f, 0x60, 0x61, 0x63, - 0x65, 0x66, 0x67, 0x68, 0x69, 0x6c, 0x6e, 0x70, - 0x71, 0x72, 0x74, 0x75, 0x78, 0x79, 0x7b, 0x7c, - 0x7d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, - 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, - 0x24, 0x25, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, 0x38, - 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x41, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4d, - 0x4e, 0x50, 0x51, 0x52, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5d, 0x5f, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x69, 0x6a, 0x6c, 0x6d, 0x70, - 0x71, 0x72, - /* 0x9a */ - 0x00, 0x01, 0x02, 0x03, 0x06, 0x08, 0x0a, 0x0c, - 0x0f, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2e, 0x2f, 0x31, 0x32, 0x33, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3d, - 0x3e, 0x3f, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5c, 0x5e, - 0x5f, 0x60, 0x61, 0x62, 0x63, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x6b, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x00, 0x02, 0x03, 0x05, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0f, 0x10, 0x12, 0x13, 0x14, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1f, 0x21, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, - 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, - 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, - 0x43, 0x44, 0x47, 0x48, 0x4a, 0x4b, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x57, 0x59, 0x5b, 0x5c, - 0x5d, 0x5e, 0x60, 0x63, 0x66, 0x67, 0x68, 0x6a, - 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x73, 0x74, - 0x77, 0x78, - /* 0x9b */ - 0x00, 0x01, 0x02, 0x06, 0x07, 0x09, 0x0a, 0x0b, - 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x16, - 0x17, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, - 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5b, - 0x5d, 0x5e, 0x5f, 0x61, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, - 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, - 0x5d, 0x60, - /* 0x9c */ - 0x00, 0x02, 0x03, 0x06, 0x08, 0x09, 0x0a, 0x0b, - 0x0c, 0x0f, 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x4a, 0x4b, 0x4c, - 0x4d, 0x4e, 0x4f, 0x50, 0x52, 0x53, 0x54, 0x56, - 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20, 0x21, - 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4f, 0x50, - 0x51, 0x52, 0x53, 0x54, 0x55, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, - /* 0x9d */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, - 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x40, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x48, 0x49, 0x4b, 0x4c, 0x4d, - 0x4f, 0x51, 0x52, 0x53, 0x54, 0x58, 0x59, 0x5a, - 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x63, - 0x64, 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x1b, - 0x1c, 0x1e, 0x1f, 0x20, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x2b, 0x2d, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x37, 0x38, 0x3c, 0x40, 0x41, - 0x42, 0x43, 0x47, 0x4b, 0x4c, 0x4d, 0x50, 0x53, - 0x54, 0x56, 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x63, 0x67, 0x68, 0x69, 0x6a, - 0x6b, 0x6c, 0x6f, 0x70, 0x72, 0x73, 0x74, 0x76, - 0x77, 0x79, 0x7a, 0x7b, 0x7c, 0x7f, 0x81, 0x83, - 0x84, 0x85, - /* 0x9e */ - 0x00, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x14, - 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, - 0x1d, 0x20, 0x21, 0x24, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x35, 0x37, 0x39, 0x3c, 0x3d, 0x3f, 0x40, - 0x41, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4c, 0x4e, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x59, 0x5b, 0x5c, 0x5d, 0x5f, 0x62, 0x63, 0x64, - 0x65, 0x6c, 0x6d, 0x6e, 0x73, 0x74, 0x75, 0x77, - 0x78, 0x79, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, - 0x81, 0x84, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, - 0x8d, 0x00, 0x01, 0x03, 0x04, 0x05, 0x09, 0x0b, - 0x0c, 0x10, 0x12, 0x14, 0x16, 0x17, 0x18, 0x19, - 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2c, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x38, 0x39, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x47, 0x48, 0x4a, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x54, 0x55, 0x57, 0x58, 0x59, 0x5b, 0x5c, - 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x64, 0x66, 0x68, - 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x70, 0x71, 0x73, - 0x74, 0x75, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, - 0x7d, 0x80, - /* 0x9f */ - 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x0a, - 0x0b, 0x0d, 0x0e, 0x0f, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x1a, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, - 0x23, 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x32, 0x33, 0x36, 0x37, 0x3a, - 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x42, 0x43, 0x45, - 0x46, 0x47, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, - 0x4f, 0x52, 0x53, 0x54, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5e, 0x5f, 0x61, 0x62, 0x63, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6e, 0x70, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x7a, 0x7b, - 0x7d, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0c, 0x0e, 0x10, 0x12, 0x13, 0x14, - 0x15, 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x25, 0x28, 0x2a, 0x33, 0x34, - 0x35, 0x37, 0x38, 0x39, 0x3b, 0x3c, 0x3d, 0x3e, - 0x3f, 0x40, 0x41, 0x43, 0x44, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x50, 0x51, 0x53, - 0x54, 0x55, 0x59, 0x5a, 0x5b, 0x5c, 0x60, 0x65, - 0x66, 0x67, 0x69, 0x6c, 0x6d, 0x6f, 0x73, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7c, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x88, 0x89, 0x8b, 0x8c, 0x8d, 0x8f, - 0x90, 0x91, - /* 0xa0 */ - 0x00, 0x01, 0x02, 0x03, 0x06, 0x0a, 0x0b, 0x0c, - 0x0d, 0x0e, 0x0f, 0x12, 0x13, 0x15, 0x17, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x21, 0x22, - 0x23, 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2d, 0x2e, 0x2f, 0x31, 0x32, 0x33, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, - 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x51, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x5a, 0x5c, 0x5f, 0x60, - 0x61, 0x62, 0x63, 0x66, 0x67, 0x69, 0x6a, 0x6b, - 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x76, - 0x78, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, - 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x18, 0x19, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x40, - 0x41, 0x43, 0x44, 0x45, 0x47, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x50, 0x52, 0x56, 0x57, 0x58, 0x5c, - 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6c, 0x6e, 0x70, - 0x71, 0x72, -}; - -static int -uhc_1_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0x81 && c1 <= 0xa0)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x41 && c2 < 0x5b) || (c2 >= 0x61 && c2 < 0x7b) || (c2 >= 0x81 && c2 < 0xff)) { - unsigned int row = c1 - 0x81; - unsigned int col = c2 - (c2 >= 0x81 ? 0x4d : c2 >= 0x61 ? 0x47 : 0x41); - unsigned int i = 178 * row + col; - if (i < 5696) { - *pwc = (ucs4_t) (uhc_1_2uni_main_page81[2*row+(col>=89?1:0)] + uhc_1_2uni_page81[i]); - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short uhc_1_2charset_main[45] = { - 0x8141, 0x81cd, 0x829b, 0x8363, 0x83e9, 0x84b7, 0x8585, 0x8647, - 0x86d3, 0x87a1, 0x8869, 0x88ef, 0x89bd, 0x8a8b, 0x8b4d, 0x8bd9, - 0x8ca7, 0x8d6f, 0x8df5, 0x8ec3, 0x8f91, 0x9053, 0x90df, 0x91ad, - 0x9275, 0x92fb, 0x93c9, 0x9497, 0x9559, 0x95e5, 0x96b3, 0x9781, - 0x9843, 0x98cf, 0x999d, 0x9a65, 0x9aeb, 0x9bb9, 0x9c87, 0x9d49, - 0x9dd5, 0x9ea3, 0x9f6b, 0x9ff1, 0xa0bf, -}; -static const unsigned char uhc_1_2charset[5696] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x8b, 0x8c, 0x8d, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0xa6, 0xa7, 0xa8, 0xa9, - 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, - 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, - 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, - 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, - 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x92, 0x93, 0x94, 0x95, - 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, - 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9a, 0x9b, 0x9c, 0x9d, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x68, 0x69, - 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, - 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, - 0xb2, 0xb3, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, - 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, - 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x7e, 0x7f, 0x80, 0x81, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, - 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0xb0, 0xb1, - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x7b, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, - 0xaa, 0xab, 0xac, 0xad, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, - 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, - 0x00, 0x01, 0x02, 0x03, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, - 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x78, 0x79, - 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, - 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x8e, 0x8f, 0x90, 0x91, - 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0xc0, 0xc1, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, - 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x8b, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, - 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, - 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, - 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, - 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x88, 0x89, - 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, - 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, - 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, - 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, - 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, - 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, - 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, - 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, - 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, - 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, - 0x82, 0x83, 0x84, 0x85, 0x8c, 0x8d, 0x8e, 0x8f, - 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, - 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, - 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5a, 0x5b, 0x9e, 0x9f, 0xa0, 0xa1, - 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, - 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, - 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, - 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, - 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, - 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, - 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x50, 0x51, - 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, - 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, - 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, - 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, - 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, - 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, -}; - -static const Summary16 uhc_1_uni2indx_pageac[459] = { - /* 0xac00 */ - { 0, 0xf86c }, { 9, 0xc100 }, { 12, 0x4fee }, { 23, 0xecfc }, - { 34, 0xd7fe }, { 47, 0xeeef }, { 60, 0xffff }, { 76, 0xfa6c }, - { 86, 0xe184 }, { 92, 0x4fee }, { 103, 0x68fc }, { 112, 0xc4fe }, - { 122, 0xeeed }, { 134, 0xff5f }, { 148, 0x6a6c }, { 156, 0xcf94 }, - /* 0xad00 */ - { 165, 0x4fae }, { 175, 0xeefd }, { 188, 0xcdfe }, { 200, 0xeecf }, - { 212, 0xfd4f }, { 224, 0xfeee }, { 237, 0xcff5 }, { 249, 0x4786 }, - { 256, 0xecf9 }, { 267, 0xcffe }, { 280, 0xffef }, { 295, 0xff7f }, - { 310, 0xfeec }, { 322, 0xeff4 }, { 334, 0xffee }, { 348, 0x6cff }, - /* 0xae00 */ - { 360, 0xd4fc }, { 370, 0xffef }, { 385, 0xffff }, { 401, 0xfa6c }, - { 411, 0x8b94 }, { 418, 0x4fae }, { 428, 0xecdc }, { 438, 0xc4fe }, - { 448, 0xefcf }, { 461, 0xffff }, { 477, 0xffff }, { 493, 0x8fff }, - { 506, 0x4fee }, { 517, 0xecfc }, { 528, 0xd6ff }, { 541, 0xeeef }, - /* 0xaf00 */ - { 554, 0xde7f }, { 567, 0xfffe }, { 582, 0xcfff }, { 596, 0x4fea }, - { 606, 0xfcf1 }, { 617, 0xcffe }, { 630, 0xffcf }, { 644, 0xfdff }, - { 659, 0xfeee }, { 672, 0xefdc }, { 684, 0xffff }, { 700, 0xecff }, - { 713, 0x947e }, { 722, 0xefef }, { 736, 0xfcff }, { 750, 0xfeec }, - /* 0xb000 */ - { 762, 0xefec }, { 774, 0xcfee }, { 786, 0xfeff }, { 801, 0xffff }, - { 817, 0xaacf }, { 827, 0xdd47 }, { 837, 0xffff }, { 853, 0xcfff }, - { 867, 0x4fee }, { 878, 0x68fd }, { 888, 0x04f8 }, { 894, 0xeec5 }, - { 904, 0xfc4f }, { 915, 0xfeec }, { 927, 0xffde }, { 941, 0xffff }, - /* 0xb100 */ - { 957, 0xe4ff }, { 969, 0xc4f2 }, { 977, 0xeec7 }, { 988, 0xfc4f }, - { 999, 0xfeec }, { 1011, 0xeecc }, { 1021, 0xfffe }, { 1036, 0xecff }, - { 1049, 0xd4fa }, { 1059, 0xeee3 }, { 1070, 0xfeff }, { 1085, 0xffff }, - { 1101, 0xefff }, { 1116, 0x4fee }, { 1127, 0xecff }, { 1140, 0xd5fe }, - /* 0xb200 */ - { 1152, 0xe6cf }, { 1163, 0xfd4f }, { 1175, 0xfffe }, { 1190, 0xefef }, - { 1204, 0xffff }, { 1220, 0xeeff }, { 1234, 0xfcfe }, { 1247, 0xefcf }, - { 1260, 0xfdcf }, { 1273, 0xf8ec }, { 1283, 0xeb94 }, { 1292, 0xffee }, - { 1306, 0xecff }, { 1319, 0xd4fa }, { 1329, 0x068b }, { 1335, 0x7047 }, - /* 0xb300 */ - { 1342, 0xfeec }, { 1354, 0xefc4 }, { 1364, 0xffff }, { 1380, 0xffff }, - { 1396, 0xffff }, { 1412, 0x268f }, { 1420, 0xb54f }, { 1430, 0xfeec }, - { 1442, 0xefc4 }, { 1452, 0xffee }, { 1466, 0xeefc }, { 1478, 0xffff }, - { 1494, 0xa6cf }, { 1504, 0xd54e }, { 1513, 0xfeee }, { 1526, 0xefff }, - /* 0xb400 */ - { 1541, 0xffff }, { 1557, 0xeefe }, { 1570, 0xf4fe }, { 1582, 0xffef }, - { 1597, 0xffff }, { 1613, 0xfeec }, { 1625, 0xefd4 }, { 1636, 0xffff }, - { 1652, 0xfefe }, { 1666, 0xdfff }, { 1681, 0xeeef }, { 1694, 0xfd5f }, - { 1707, 0xfeee }, { 1720, 0xcfde }, { 1732, 0x4fa6 }, { 1741, 0xfefd }, - /* 0xb500 */ - { 1755, 0xffff }, { 1771, 0xe6cf }, { 1782, 0xf84f }, { 1792, 0xfeec }, - { 1804, 0xc7c4 }, { 1812, 0x4fee }, { 1823, 0xfffc }, { 1837, 0xffff }, - { 1853, 0xffff }, { 1869, 0xffff }, { 1885, 0xf2ec }, { 1895, 0xc7c4 }, - { 1903, 0x4fee }, { 1914, 0xfefc }, { 1927, 0xefff }, { 1942, 0xffff }, - /* 0xb600 */ - { 1958, 0xffff }, { 1974, 0xfeec }, { 1986, 0xefdf }, { 2000, 0xffef }, - { 2015, 0xfeff }, { 2030, 0xffff }, { 2046, 0xfeef }, { 2060, 0xffff }, - { 2076, 0xffff }, { 2092, 0xcfff }, { 2106, 0xe7ee }, { 2118, 0xfffd }, - { 2133, 0xffff }, { 2149, 0xffef }, { 2164, 0xffff }, { 2180, 0xfeee }, - /* 0xb700 */ - { 2193, 0xffdc }, { 2206, 0xffff }, { 2222, 0x6cff }, { 2234, 0xf4fe }, - { 2246, 0xeeef }, { 2259, 0xffcf }, { 2273, 0xfeee }, { 2286, 0xcfd4 }, - { 2296, 0x4fee }, { 2307, 0xec38 }, { 2315, 0xc4fe }, { 2325, 0xfecf }, - { 2338, 0xfd7f }, { 2352, 0xffff }, { 2368, 0xcfff }, { 2382, 0x4fee }, - /* 0xb800 */ - { 2393, 0xec7c }, { 2403, 0xd4fe }, { 2414, 0xeecf }, { 2426, 0xfc4f }, - { 2437, 0xffee }, { 2451, 0xcff5 }, { 2463, 0x4fee }, { 2474, 0xeefd }, - { 2487, 0xdfff }, { 2502, 0xffff }, { 2518, 0xfeff }, { 2533, 0xfeee }, - { 2546, 0xefd4 }, { 2557, 0x5fee }, { 2569, 0xecfd }, { 2581, 0xd4fe }, - /* 0xb900 */ - { 2592, 0xffef }, { 2607, 0xfeff }, { 2622, 0xfffe }, { 2637, 0xcfff }, - { 2651, 0x6fee }, { 2663, 0xecfd }, { 2675, 0xd4fe }, { 2686, 0xeecf }, - { 2698, 0x994f }, { 2707, 0xffff }, { 2723, 0xcfff }, { 2737, 0x4fee }, - { 2748, 0x2cfd }, { 2758, 0x94f8 }, { 2766, 0xeec5 }, { 2776, 0xf84f }, - /* 0xba00 */ - { 2786, 0xfefc }, { 2799, 0xffdf }, { 2814, 0xffff }, { 2830, 0xecff }, - { 2843, 0x94fa }, { 2852, 0xeec7 }, { 2863, 0xfc4f }, { 2874, 0xfeec }, - { 2886, 0xef47 }, { 2897, 0xffff }, { 2913, 0xe4ff }, { 2925, 0xd4fa }, - { 2935, 0xfeef }, { 2949, 0xfcff }, { 2963, 0xffff }, { 2979, 0xefff }, - /* 0xbb00 */ - { 2994, 0x5fee }, { 3006, 0xeefd }, { 3019, 0xf5fe }, { 3032, 0x868f }, - { 3040, 0x5d4f }, { 3050, 0xfeee }, { 3063, 0xeff5 }, { 3076, 0xffff }, - { 3092, 0xeeff }, { 3106, 0xfffe }, { 3121, 0xeeef }, { 3134, 0xff6f }, - { 3148, 0xfeee }, { 3161, 0xfff6 }, { 3175, 0xffff }, { 3191, 0x6cff }, - /* 0xbc00 */ - { 3203, 0x44fa }, { 3211, 0x060d }, { 3216, 0xdd4f }, { 3227, 0xfeec }, - { 3239, 0xcdc4 }, { 3247, 0xdffe }, { 3261, 0xffff }, { 3277, 0xffff }, - { 3293, 0xa6cf }, { 3303, 0xf94f }, { 3314, 0xfe6c }, { 3325, 0xcfc4 }, - { 3334, 0x5fee }, { 3346, 0xeedc }, { 3357, 0xffff }, { 3373, 0xee8f }, - /* 0xbd00 */ - { 3384, 0xfd4f }, { 3396, 0xffee }, { 3410, 0xefef }, { 3424, 0xffff }, - { 3440, 0xecfe }, { 3452, 0xfcfe }, { 3465, 0xfeef }, { 3479, 0xffff }, - { 3495, 0xf86c }, { 3504, 0xe9d4 }, { 3513, 0xffef }, { 3528, 0xfefe }, - { 3542, 0xffff }, { 3558, 0xeecf }, { 3570, 0xfdff }, { 3585, 0xfeee }, - /* 0xbe00 */ - { 3598, 0xcfd6 }, { 3609, 0x4fee }, { 3620, 0xffff }, { 3636, 0xffff }, - { 3652, 0xaecf }, { 3663, 0xf14f }, { 3673, 0xfaec }, { 3684, 0xc7c4 }, - { 3692, 0x4fee }, { 3703, 0xfcfc }, { 3715, 0xfeff }, { 3730, 0xffff }, - { 3746, 0xffff }, { 3762, 0xfe6c }, { 3773, 0xefc6 }, { 3784, 0xffff }, - /* 0xbf00 */ - { 3800, 0xfcfd }, { 3813, 0xc4ff }, { 3824, 0xffff }, { 3840, 0xffff }, - { 3856, 0xfeec }, { 3868, 0xffdc }, { 3881, 0xffff }, { 3897, 0xffff }, - { 3913, 0xffff }, { 3929, 0xffef }, { 3944, 0xffff }, { 3960, 0xfffe }, - { 3975, 0xcfdf }, { 3988, 0x6fee }, { 4000, 0xfffd }, { 4015, 0xffff }, - /* 0xc000 */ - { 4031, 0xffff }, { 4047, 0xffff }, { 4063, 0xffff }, { 4079, 0xefff }, - { 4094, 0xffff }, { 4110, 0xeefd }, { 4123, 0xfcfe }, { 4136, 0xffff }, - { 4152, 0xffff }, { 4168, 0xfeec }, { 4180, 0x4fd4 }, { 4189, 0x4f86 }, - { 4197, 0xecdc }, { 4207, 0xc4fe }, { 4217, 0xeecf }, { 4229, 0xfd4f }, - /* 0xc100 */ - { 4241, 0xfeee }, { 4254, 0x0fde }, { 4264, 0x4f26 }, { 4272, 0xecbc }, - { 4282, 0xc4fe }, { 4292, 0xeecf }, { 4304, 0xfc4f }, { 4315, 0xfeee }, - { 4328, 0x8fdf }, { 4340, 0x4fae }, { 4350, 0xecdd }, { 4361, 0xdffe }, - { 4375, 0xeeef }, { 4388, 0xfe6f }, { 4401, 0xfeee }, { 4414, 0xcff4 }, - /* 0xc200 */ - { 4425, 0x4fee }, { 4436, 0x6cfd }, { 4447, 0x54fe }, { 4457, 0xffe9 }, - { 4470, 0xfeff }, { 4485, 0xfeec }, { 4497, 0xcfde }, { 4509, 0x4fee }, - { 4520, 0xfcfd }, { 4533, 0xd6fe }, { 4545, 0xcecf }, { 4556, 0xfd4f }, - { 4568, 0xffff }, { 4584, 0xcfff }, { 4598, 0x47e6 }, { 4607, 0xe4bd }, - /* 0xc300 */ - { 4617, 0xccfe }, { 4628, 0xeec7 }, { 4639, 0xfccf }, { 4651, 0xffff }, - { 4667, 0xffdf }, { 4682, 0xffff }, { 4698, 0xecff }, { 4711, 0xccfa }, - { 4721, 0xeeef }, { 4734, 0xffff }, { 4750, 0xffff }, { 4766, 0xffff }, - { 4782, 0xfffe }, { 4797, 0x6cff }, { 4809, 0xdcfa }, { 4820, 0xfecf }, - /* 0xc400 */ - { 4833, 0xfeff }, { 4848, 0xfffe }, { 4863, 0xefef }, { 4877, 0xcfee }, - { 4889, 0xfeff }, { 4904, 0xffff }, { 4920, 0xeecf }, { 4932, 0xfdcf }, - { 4945, 0xfffe }, { 4960, 0xefef }, { 4974, 0xffff }, { 4990, 0xeeff }, - { 5004, 0xffff }, { 5020, 0xffff }, { 5036, 0xfdff }, { 5051, 0x7aec }, - /* 0xc500 */ - { 5061, 0xeffc }, { 5074, 0xefee }, { 5087, 0xecff }, { 5100, 0xd4fe }, - { 5111, 0x88cf }, { 5119, 0x9c47 }, { 5127, 0xfeec }, { 5139, 0xcfc4 }, - { 5148, 0x4f6e }, { 5158, 0xee5d }, { 5169, 0xfdfe }, { 5183, 0x84cf }, - { 5191, 0xa80f }, { 5198, 0xfeec }, { 5210, 0x8fd4 }, { 5219, 0x0f2e }, - /* 0xc600 */ - { 5227, 0xee1c }, { 5236, 0xe4fe }, { 5247, 0x8ecf }, { 5257, 0xf546 }, - { 5266, 0xfeec }, { 5278, 0xcfc4 }, { 5287, 0x6ffe }, { 5300, 0xecfd }, - { 5312, 0xd4fe }, { 5323, 0xeecf }, { 5335, 0xfd4f }, { 5347, 0xf8ec }, - { 5357, 0xcfd4 }, { 5367, 0xcfee }, { 5379, 0xecfc }, { 5390, 0xdcfe }, - /* 0xc700 */ - { 5402, 0xeecf }, { 5414, 0xfd4f }, { 5426, 0xfeec }, { 5438, 0xcf54 }, - { 5447, 0x4bee }, { 5457, 0xee01 }, { 5464, 0xf6fe }, { 5477, 0x8ecf }, - { 5487, 0xb847 }, { 5495, 0xfa2c }, { 5504, 0xcf84 }, { 5512, 0x4fee }, - { 5523, 0xacfc }, { 5533, 0xdefe }, { 5546, 0xeeef }, { 5559, 0xffff }, - /* 0xc800 */ - { 5575, 0xfaec }, { 5586, 0xcf94 }, { 5595, 0x4fee }, { 5606, 0xeefd }, - { 5619, 0xccfe }, { 5630, 0xffef }, { 5645, 0xffff }, { 5661, 0xfaec }, - { 5672, 0xc714 }, { 5679, 0x5fef }, { 5692, 0x001d }, -}; - -static int -uhc_1_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - if (wc >= 0xac00 && wc < 0xc8b0) { - const Summary16 *summary = &uhc_1_uni2indx_pageac[(wc>>4)-0xac0]; - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - used += summary->indx; - c = uhc_1_2charset_main[used>>7] + uhc_1_2charset[used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/uhc_2.h b/jni/parted/libiconv/lib/uhc_2.h deleted file mode 100755 index 3dd03e6..0000000 --- a/jni/parted/libiconv/lib/uhc_2.h +++ /dev/null @@ -1,1021 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2012, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * Unified Hangul Code part 2 - */ - -static const unsigned short uhc_2_2uni_main_pagea1[76] = { - 0xc8a5, 0xc8d8, 0xc910, 0xc93e, 0xc971, 0xc9a5, 0xc9de, 0xca1c, - 0xca47, 0xca7b, 0xcaa8, 0xcadd, 0xcb0b, 0xcb3a, 0xcb6d, 0xcb99, - 0xcbc5, 0xcbf3, 0xcc25, 0xcc67, 0xcc94, 0xcccf, 0xccfe, 0xcd34, - 0xcd61, 0xcd92, 0xcdc6, 0xcdf5, 0xce2c, 0xce5d, 0xce9a, 0xcecc, - 0xcf02, 0xcf3b, 0xcf6d, 0xcf9e, 0xcfcc, 0xcfff, 0xd02e, 0xd064, - 0xd095, 0xd0cc, 0xd105, 0xd132, 0xd16e, 0xd19b, 0xd1d0, 0xd1fd, - 0xd22a, 0xd25e, 0xd28d, 0xd2c5, 0xd2fb, 0xd33e, 0xd36a, 0xd3a1, - 0xd3d7, 0xd40d, 0xd438, 0xd467, 0xd49e, 0xd4c9, 0xd4fe, 0xd52e, - 0xd564, 0xd59d, 0xd5ca, 0xd606, 0xd63d, 0xd677, 0xd6ab, 0xd6e2, - 0xd715, 0xd74e, 0xd78d, 0xfffd, -}; -static const unsigned char uhc_2_2uni_pagea1[3126] = { - /* 0xa1 */ - 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x19, 0x1a, - 0x1b, 0x1c, 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x24, - 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x31, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, - 0x23, 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x36, - /* 0xa2 */ - 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, - 0x23, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x15, 0x17, 0x18, - 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x2f, 0x30, 0x31, - /* 0xa3 */ - 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x19, 0x1a, 0x1c, - 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x29, 0x2b, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1d, 0x1e, 0x20, - 0x21, 0x24, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2d, - 0x2f, 0x32, 0x33, 0x36, - /* 0xa4 */ - 0x00, 0x01, 0x03, 0x05, 0x07, 0x08, 0x0a, 0x0b, - 0x0c, 0x0d, 0x10, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, - 0x25, 0x26, 0x27, 0x28, 0x29, 0x2c, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, 0x37, 0x38, 0x39, 0x3b, - 0x3c, 0x3d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, - /* 0xa5 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x0a, - 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x17, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, - 0x32, 0x33, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, - /* 0xa6 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19, 0x1a, - 0x1b, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x26, 0x28, 0x2a, 0x2c, 0x2d, 0x2e, 0x2f, 0x32, - 0x33, 0x34, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2c, 0x2d, - /* 0xa7 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, - 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, - 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x2e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, - 0x11, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1a, - 0x1b, 0x1c, 0x1d, 0x20, 0x21, 0x22, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x32, - /* 0xa8 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, - /* 0xa9 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x20, 0x21, - 0x23, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x2b, - 0x2c, 0x2d, 0x30, 0x31, - /* 0xaa */ - 0x00, 0x01, 0x05, 0x06, 0x08, 0x0a, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x15, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x24, 0x25, 0x26, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x31, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3c, 0x3d, - 0x3e, 0x40, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, - /* 0xab */ - 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x09, 0x0a, - 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x16, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, - 0x23, 0x25, 0x26, 0x27, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x2e, 0x2f, 0x32, 0x34, 0x36, 0x37, 0x38, - 0x39, 0x3a, 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x22, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, - 0x2b, 0x2c, 0x2d, 0x2e, - /* 0xac */ - 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x13, 0x14, - 0x15, 0x16, 0x17, 0x18, 0x19, 0x1c, 0x1e, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, - 0x2b, 0x2c, 0x2d, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x29, 0x2a, 0x2b, - /* 0xad */ - 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x14, - 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x00, 0x01, 0x04, 0x05, 0x07, 0x08, - 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x14, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x33, - /* 0xae */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, - 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, 0x2b, 0x2c, - 0x2d, 0x2e, 0x00, 0x01, 0x02, 0x05, 0x07, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12, - 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, - 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x23, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, 0x31, - 0x32, 0x34, 0x35, 0x36, - /* 0xaf */ - 0x00, 0x01, 0x02, 0x03, 0x06, 0x08, 0x0a, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2e, 0x2f, 0x00, 0x01, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x14, - 0x15, 0x16, 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x29, 0x2b, - 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x35, 0x36, - 0x38, 0x39, 0x3a, 0x3c, - /* 0xb0 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0c, - 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x1a, 0x1b, 0x1d, 0x1e, 0x21, 0x22, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x2a, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, - /* 0xb1 */ - 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1f, - 0x20, 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2c, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x37, 0x38, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x1b, 0x1c, 0x1e, 0x1f, 0x20, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x2b, - 0x2d, 0x2f, 0x30, 0x31, - /* 0xb2 */ - 0x00, 0x01, 0x02, 0x05, 0x06, 0x08, 0x09, 0x0a, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x14, - 0x15, 0x16, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2d, - /* 0xb3 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x16, 0x17, 0x19, 0x1a, - 0x1b, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x26, 0x28, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x31, 0x32, 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2d, - /* 0xb4 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, - 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x18, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x23, 0x24, 0x25, 0x27, 0x28, 0x29, - 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x33, - 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x1a, 0x1b, - 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, - 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x2e, 0x2f, 0x30, - /* 0xb5 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x11, - 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x21, 0x23, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, 0x31, 0x32, - 0x35, 0x36, 0x00, 0x01, 0x02, 0x03, 0x06, 0x0a, - 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x12, 0x13, 0x15, - 0x16, 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x22, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, - 0x35, 0x36, 0x37, 0x38, - /* 0xb6 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1c, 0x1d, 0x1f, 0x20, - 0x21, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, - 0x2c, 0x2e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x37, 0x38, 0x39, 0x3b, - /* 0xb7 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, - 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, - 0x2b, 0x2c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, - 0x08, 0x0a, 0x0b, 0x0c, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x17, 0x19, 0x1b, 0x1c, 0x1d, - 0x1e, 0x20, 0x22, 0x23, 0x24, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x32, 0x33, 0x34, - /* 0xb8 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, 0x29, 0x2a, - 0x2b, 0x2c, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0b, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, - /* 0xb9 */ - 0x00, 0x01, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x16, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, - 0x31, 0x33, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x24, 0x25, 0x27, 0x28, 0x29, - 0x2b, 0x2c, 0x2d, 0x2e, - /* 0xba */ - 0x00, 0x01, 0x02, 0x05, 0x06, 0x07, 0x09, 0x0a, - 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, 0x12, 0x14, - 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x20, 0x21, 0x22, 0x23, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, 0x31, 0x34, - 0x36, 0x37, 0x00, 0x01, 0x02, 0x05, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x10, 0x11, - 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1b, - 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2d, 0x2e, 0x30, - 0x31, 0x32, 0x34, 0x35, - /* 0xbb */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x07, 0x09, 0x0b, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x14, 0x16, 0x17, - 0x18, 0x1a, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x23, - 0x27, 0x28, 0x29, 0x2b, 0x2c, 0x2f, 0x30, 0x32, - 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x28, 0x29, 0x2a, 0x2b, - /* 0xbc */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1b, - 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x24, 0x28, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x30, 0x31, 0x33, - 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x14, 0x15, 0x16, 0x18, 0x19, 0x1a, 0x1c, - 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x25, 0x26, - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x30, 0x31, - 0x32, 0x33, 0x34, 0x35, - /* 0xbd */ - 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x17, 0x18, 0x1a, 0x1b, 0x1c, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x27, 0x29, - 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x32, 0x33, - 0x34, 0x35, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, - /* 0xbe */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x09, 0x0a, 0x0b, 0x0d, 0x0e, 0x0f, 0x10, 0x11, - 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, - 0x22, 0x23, 0x25, 0x26, 0x27, 0x29, 0x2a, 0x2b, - 0x2d, 0x2e, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x13, 0x14, 0x16, 0x17, 0x1a, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x23, 0x25, 0x27, 0x28, 0x29, - 0x2a, 0x2b, 0x2c, 0x2e, 0x2f, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, - /* 0xbf */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, - 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, - 0x08, 0x09, 0x0a, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x11, 0x12, 0x14, 0x15, 0x17, 0x18, 0x19, 0x1a, - 0x1b, 0x1c, 0x1d, 0x1e, 0x20, 0x21, 0x22, 0x24, - 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x30, 0x31, 0x33, - /* 0xc0 */ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, - 0x09, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, 0x11, 0x12, - 0x13, 0x14, 0x15, 0x18, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x10, 0x11, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19, - 0x1a, 0x1b, 0x1c, 0x1d, 0x20, 0x22, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2c, 0x2d, 0x2f, 0x30, - 0x31, 0x33, 0x34, 0x35, - /* 0xc1 */ - 0x00, 0x02, 0x03, 0x06, 0x08, 0x0a, 0x0b, 0x0c, - 0x0d, 0x0e, 0x0f, 0x12, 0x13, 0x15, 0x16, 0x17, - 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x22, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, - 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2a, - /* 0xc2 */ - 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, 0x09, 0x0a, - 0x0b, 0x0c, 0x0d, 0x10, 0x12, 0x14, 0x15, 0x16, - 0x17, 0x18, 0x19, 0x1c, 0x1d, 0x1f, 0x20, 0x21, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2c, - 0x2e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x38, - 0x39, 0x3b, 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0c, 0x10, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, - 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x34, 0x35, - /* 0xc3 */ - 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x09, - 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x15, 0x16, - 0x19, 0x1a, 0x1c, 0x1d, 0x1e, 0x20, 0x21, 0x22, - 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2b, - 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x35, 0x36, - 0x38, 0x39, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0d, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x17, 0x18, 0x1a, - 0x1b, 0x1c, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, - 0x24, 0x25, 0x27, 0x29, 0x2b, 0x2c, 0x2d, 0x2e, - 0x2f, 0x30, 0x32, 0x33, - /* 0xc4 */ - 0x00, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, 0x09, - 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x11, 0x12, 0x13, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x1b, 0x1c, 0x1e, - 0x1f, 0x20, 0x22, 0x23, 0x24, 0x25, 0x27, 0x28, - 0x2a, 0x2b, 0x2d, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x36, 0x00, 0x01, 0x03, 0x04, 0x05, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0f, 0x10, - 0x11, 0x12, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, - 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x30, 0x31, 0x32, - /* 0xc5 */ - 0x00, 0x01, 0x02, 0x05, 0x06, 0x08, 0x09, 0x0a, - 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x15, - 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x21, - 0x22, 0x24, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x30, 0x31, 0x33, 0x35, 0x36, - 0x37, 0x38, 0x00, 0x01, 0x04, 0x05, 0x07, 0x0c, - 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x14, 0x16, 0x18, - 0x19, 0x1a, 0x1c, 0x1d, 0x1f, 0x20, 0x21, 0x23, - 0x24, 0x25, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, - 0x2d, 0x30, 0x31, 0x32, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x3c, 0x3d, - /* 0xc6 */ - 0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0d, 0x0f, 0x11, 0x12, 0x13, 0x14, - 0x15, 0x16, -}; - -static int -uhc_2_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c1 = s[0]; - if ((c1 >= 0xa1 && c1 <= 0xc6)) { - if (n >= 2) { - unsigned char c2 = s[1]; - if ((c2 >= 0x41 && c2 < 0x5b) || (c2 >= 0x61 && c2 < 0x7b) || (c2 >= 0x81 && c2 < 0xa1)) { - unsigned int row = c1 - 0xa1; - unsigned int col = c2 - (c2 >= 0x81 ? 0x4d : c2 >= 0x61 ? 0x47 : 0x41); - unsigned int i = 84 * row + col; - if (i < 3126) { - *pwc = (ucs4_t) (uhc_2_2uni_main_pagea1[2*row+(col>=42?1:0)] + uhc_2_2uni_pagea1[i]); - return 2; - } - } - return RET_ILSEQ; - } - return RET_TOOFEW(0); - } - return RET_ILSEQ; -} - -static const unsigned short uhc_2_2charset_main[49] = { - 0xa141, 0xa18d, 0xa273, 0xa359, 0xa445, 0xa491, 0xa577, 0xa663, - 0xa749, 0xa795, 0xa881, 0xa967, 0xaa4d, 0xaa99, 0xab85, 0xac6b, - 0xad51, 0xad9d, 0xae89, 0xaf6f, 0xb055, 0xb141, 0xb18d, 0xb273, - 0xb359, 0xb445, 0xb491, 0xb577, 0xb663, 0xb749, 0xb795, 0xb881, - 0xb967, 0xba4d, 0xba99, 0xbb85, 0xbc6b, 0xbd51, 0xbd9d, 0xbe89, - 0xbf6f, 0xc055, 0xc141, 0xc18d, 0xc273, 0xc359, 0xc445, 0xc491, - 0xc577, -}; -static const unsigned char uhc_2_2charset[3126] = { - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x1a, 0x1b, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, - 0xd0, 0xd1, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x28, 0x29, 0x2a, 0x2b, - 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0xe8, 0xe9, 0xea, 0xeb, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, - 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, - 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, - 0x00, 0x01, 0x02, 0x03, 0x0a, 0x0b, 0x0c, 0x0d, - 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, - 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0xca, 0xcb, 0xcc, 0xcd, - 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, - 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, -}; - -static const Summary16 uhc_2_uni2indx_pagec8[251] = { - /* 0xc800 */ - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0x0000 }, - { 0, 0x0000 }, { 0, 0x0000 }, { 0, 0xfee0 }, { 10, 0xcfff }, - { 24, 0xeeef }, { 37, 0xfd4f }, { 49, 0xffec }, { 62, 0xcfdf }, - /* 0xc900 */ - { 75, 0x4f8e }, { 84, 0xfefd }, { 98, 0xefff }, { 113, 0xffef }, - { 128, 0xffff }, { 144, 0xfeec }, { 156, 0xeff4 }, { 168, 0xefee }, - { 181, 0xecff }, { 194, 0xd4fe }, { 205, 0xffff }, { 221, 0xffff }, - { 237, 0xfa6c }, { 247, 0xc994 }, { 254, 0x4f6a }, { 263, 0xecfc }, - /* 0xca00 */ - { 274, 0xc4fe }, { 284, 0xfeef }, { 298, 0xfdff }, { 313, 0xffff }, - { 329, 0xcfff }, { 343, 0x4fee }, { 354, 0xfefc }, { 367, 0xdfff }, - { 382, 0xffef }, { 397, 0xfeff }, { 412, 0xffff }, { 428, 0xcfff }, - { 442, 0x4fee }, { 453, 0xfcf5 }, { 465, 0xeffe }, { 479, 0xffef }, - /* 0xcb00 */ - { 494, 0xfeff }, { 509, 0xfeee }, { 522, 0xfffc }, { 536, 0xffff }, - { 552, 0xecfd }, { 564, 0xdcfe }, { 576, 0xffef }, { 591, 0xfcff }, - { 605, 0xffff }, { 621, 0xefff }, { 636, 0xffff }, { 652, 0xfeff }, - { 667, 0xffff }, { 683, 0xffef }, { 698, 0xfd6f }, { 711, 0xffff }, - /* 0xcc00 */ - { 727, 0xcfff }, { 741, 0xcfee }, { 753, 0xac79 }, { 762, 0x84fe }, - { 771, 0xeecf }, { 783, 0xfc4f }, { 794, 0xfeae }, { 806, 0xffde }, - { 820, 0xffff }, { 836, 0xecff }, { 849, 0xc4fe }, { 859, 0xeecf }, - { 871, 0xfd4f }, { 883, 0xffee }, { 897, 0xefef }, { 911, 0xfffe }, - /* 0xcd00 */ - { 926, 0xecfd }, { 938, 0xd4fe }, { 949, 0xeeef }, { 962, 0xfdff }, - { 977, 0xffff }, { 993, 0xefff }, { 1008, 0x4fee }, { 1019, 0xfefd }, - { 1033, 0xfeff }, { 1048, 0xeecf }, { 1060, 0xfd4f }, { 1072, 0xfffe }, - { 1087, 0xefef }, { 1101, 0xfffe }, { 1116, 0xeeff }, { 1130, 0xd4fe }, - /* 0xce00 */ - { 1141, 0xeeef }, { 1154, 0xfdef }, { 1168, 0xfeec }, { 1180, 0xffd4 }, - { 1192, 0xffff }, { 1208, 0x6cff }, { 1220, 0xd4fc }, { 1230, 0xeecf }, - { 1242, 0xfd4f }, { 1254, 0xfeec }, { 1266, 0xcfc4 }, { 1275, 0xffff }, - { 1291, 0xfffd }, { 1306, 0xffff }, { 1322, 0xe6cf }, { 1333, 0xfc4f }, - /* 0xcf00 */ - { 1344, 0xfeec }, { 1356, 0xefd4 }, { 1367, 0x4fee }, { 1378, 0xfefc }, - { 1391, 0xffff }, { 1407, 0xeecf }, { 1419, 0xfd4f }, { 1431, 0xfeec }, - { 1443, 0xefde }, { 1456, 0xffff }, { 1472, 0xfefd }, { 1486, 0xfffe }, - { 1501, 0xffef }, { 1516, 0xffff }, { 1532, 0xfeec }, { 1544, 0xefd4 }, - /* 0xd000 */ - { 1555, 0xffee }, { 1569, 0xfefd }, { 1583, 0xdfff }, { 1598, 0xeecf }, - { 1610, 0xfd4f }, { 1622, 0xfeee }, { 1635, 0xcffe }, { 1648, 0xcfee }, - { 1660, 0xfffd }, { 1675, 0xffff }, { 1691, 0xeecf }, { 1703, 0xfd4f }, - { 1715, 0xfcec }, { 1726, 0xcfc4 }, { 1735, 0x4fee }, { 1746, 0xfefc }, - /* 0xd100 */ - { 1759, 0xdfff }, { 1774, 0xffff }, { 1790, 0xffff }, { 1806, 0xfaec }, - { 1817, 0xcfc4 }, { 1826, 0x4fee }, { 1837, 0xeefd }, { 1850, 0xefff }, - { 1865, 0xfeef }, { 1879, 0xffff }, { 1895, 0xfeec }, { 1907, 0xebd4 }, - { 1917, 0xfffe }, { 1932, 0xfeff }, { 1947, 0xffff }, { 1963, 0xfeef }, - /* 0xd200 */ - { 1977, 0xfd7f }, { 1991, 0xfffe }, { 2006, 0xcfff }, { 2020, 0x4fee }, - { 2031, 0xfefd }, { 2045, 0xefff }, { 2060, 0xffef }, { 2075, 0xffff }, - { 2091, 0xfeec }, { 2103, 0xefdc }, { 2115, 0xefee }, { 2128, 0x6cfd }, - { 2139, 0xf4fa }, { 2150, 0xeeef }, { 2163, 0xffcf }, { 2177, 0xfeec }, - /* 0xd300 */ - { 2189, 0x8fd4 }, { 2198, 0x4fae }, { 2208, 0xecdc }, { 2218, 0xc4fe }, - { 2228, 0xffcf }, { 2242, 0xffff }, { 2258, 0xffff }, { 2274, 0xcfff }, - { 2288, 0x4fee }, { 2299, 0xecfc }, { 2310, 0xd4fe }, { 2321, 0xeeef }, - { 2334, 0xfccf }, { 2346, 0xfefe }, { 2360, 0xcff5 }, { 2372, 0x4fee }, - /* 0xd400 */ - { 2383, 0xfefd }, { 2397, 0xdfff }, { 2412, 0xffff }, { 2428, 0xffff }, - { 2444, 0xffee }, { 2458, 0xefff }, { 2473, 0x5fee }, { 2485, 0x6cff }, - { 2497, 0xd4fa }, { 2507, 0xffef }, { 2522, 0xfdff }, { 2537, 0xffff }, - { 2553, 0xefff }, { 2568, 0x6fee }, { 2580, 0xeeff }, { 2594, 0xd6fe }, - /* 0xd500 */ - { 2606, 0xeeef }, { 2619, 0xff4f }, { 2632, 0xffff }, { 2648, 0xcfff }, - { 2662, 0x4fee }, { 2673, 0xecfd }, { 2685, 0xd4de }, { 2695, 0xeecf }, - { 2707, 0xfc4f }, { 2718, 0xfffe }, { 2733, 0xffdf }, { 2748, 0xffff }, - { 2764, 0xecff }, { 2777, 0xd4fa }, { 2787, 0xeecf }, { 2799, 0xfd4f }, - /* 0xd600 */ - { 2811, 0xfeec }, { 2823, 0xefc4 }, { 2833, 0xdfee }, { 2846, 0xecff }, - { 2859, 0xd4de }, { 2869, 0xeecd }, { 2880, 0xfd7f }, { 2894, 0xffec }, - { 2907, 0xcfd7 }, { 2919, 0x5fee }, { 2931, 0xeefd }, { 2944, 0xf5fe }, - { 2957, 0xeecf }, { 2969, 0xfd6d }, { 2981, 0xfeee }, { 2994, 0xcfde }, - /* 0xd700 */ - { 3006, 0xffee }, { 3020, 0xecfd }, { 3032, 0xd4fe }, { 3043, 0xeecf }, - { 3055, 0xfd6f }, { 3068, 0xfc2c }, { 3077, 0xedd4 }, { 3087, 0xcfee }, - { 3099, 0xecfd }, { 3111, 0xd4fe }, { 3122, 0x000f }, -}; - -static int -uhc_2_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (n >= 2) { - if (wc >= 0xc800 && wc < 0xd7b0) { - const Summary16 *summary = &uhc_2_uni2indx_pagec8[(wc>>4)-0xc80]; - unsigned short used = summary->used; - unsigned int i = wc & 0x0f; - if (used & ((unsigned short) 1 << i)) { - unsigned short c; - /* Keep in 'used' only the bits 0..i-1. */ - used &= ((unsigned short) 1 << i) - 1; - /* Add 'summary->indx' and the number of bits set in 'used'. */ - used = (used & 0x5555) + ((used & 0xaaaa) >> 1); - used = (used & 0x3333) + ((used & 0xcccc) >> 2); - used = (used & 0x0f0f) + ((used & 0xf0f0) >> 4); - used = (used & 0x00ff) + (used >> 8); - used += summary->indx; - c = uhc_2_2charset_main[used>>6] + uhc_2_2charset[used]; - r[0] = (c >> 8); r[1] = (c & 0xff); - return 2; - } - } - return RET_ILUNI; - } - return RET_TOOSMALL; -} diff --git a/jni/parted/libiconv/lib/utf16.h b/jni/parted/libiconv/lib/utf16.h deleted file mode 100755 index 463c7ab..0000000 --- a/jni/parted/libiconv/lib/utf16.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-16 - */ - -/* Specification: RFC 2781 */ - -/* Here we accept FFFE/FEFF marks as endianness indicators everywhere - in the stream, not just at the beginning. (This is contrary to what - RFC 2781 section 3.2 specifies, but it allows concatenation of byte - sequences to work flawlessly, while disagreeing with the RFC behaviour - only for strings containing U+FEFF characters, which is quite rare.) - The default is big-endian. */ -/* The state is 0 if big-endian, 1 if little-endian. */ -static int -utf16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - for (; n >= 2 && count <= RET_COUNT_MAX && count <= INT_MAX-2;) { - ucs4_t wc = (state ? s[0] + (s[1] << 8) : (s[0] << 8) + s[1]); - if (wc == 0xfeff) { - } else if (wc == 0xfffe) { - state ^= 1; - } else if (wc >= 0xd800 && wc < 0xdc00) { - if (n >= 4) { - ucs4_t wc2 = (state ? s[2] + (s[3] << 8) : (s[2] << 8) + s[3]); - if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) - goto ilseq; - *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); - conv->istate = state; - return count+4; - } else - break; - } else if (wc >= 0xdc00 && wc < 0xe000) { - goto ilseq; - } else { - *pwc = wc; - conv->istate = state; - return count+2; - } - s += 2; n -= 2; count += 2; - } - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -/* We output UTF-16 in big-endian order, with byte-order mark. - See RFC 2781 section 3.3 for a rationale: Some document formats - mandate a BOM; the file concatenation issue is not so severe as - long as the above utf16_mbtowc function is used. */ -/* The state is 0 at the beginning, 1 after the BOM has been written. */ -static int -utf16_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc != 0xfffe && !(wc >= 0xd800 && wc < 0xe000)) { - int count = 0; - if (!conv->ostate) { - if (n >= 2) { - r[0] = 0xFE; - r[1] = 0xFF; - r += 2; n -= 2; count += 2; - } else - return RET_TOOSMALL; - } - if (wc < 0x10000) { - if (n >= 2) { - r[0] = (unsigned char) (wc >> 8); - r[1] = (unsigned char) wc; - conv->ostate = 1; - return count+2; - } else - return RET_TOOSMALL; - } - else if (wc < 0x110000) { - if (n >= 4) { - ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); - ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); - r[0] = (unsigned char) (wc1 >> 8); - r[1] = (unsigned char) wc1; - r[2] = (unsigned char) (wc2 >> 8); - r[3] = (unsigned char) wc2; - conv->ostate = 1; - return count+4; - } else - return RET_TOOSMALL; - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/utf16be.h b/jni/parted/libiconv/lib/utf16be.h deleted file mode 100755 index 2cfab52..0000000 --- a/jni/parted/libiconv/lib/utf16be.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-16BE - */ - -/* Specification: RFC 2781 */ - -static int -utf16be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - int count = 0; - if (n >= 2) { - ucs4_t wc = (s[0] << 8) + s[1]; - if (wc >= 0xd800 && wc < 0xdc00) { - if (n >= 4) { - ucs4_t wc2 = (s[2] << 8) + s[3]; - if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) - goto ilseq; - *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); - return count+4; - } - } else if (wc >= 0xdc00 && wc < 0xe000) { - goto ilseq; - } else { - *pwc = wc; - return count+2; - } - } - return RET_TOOFEW(count); - -ilseq: - return RET_SHIFT_ILSEQ(count); -} - -static int -utf16be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (!(wc >= 0xd800 && wc < 0xe000)) { - if (wc < 0x10000) { - if (n >= 2) { - r[0] = (unsigned char) (wc >> 8); - r[1] = (unsigned char) wc; - return 2; - } else - return RET_TOOSMALL; - } - else if (wc < 0x110000) { - if (n >= 4) { - ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); - ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); - r[0] = (unsigned char) (wc1 >> 8); - r[1] = (unsigned char) wc1; - r[2] = (unsigned char) (wc2 >> 8); - r[3] = (unsigned char) wc2; - return 4; - } else - return RET_TOOSMALL; - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/utf16le.h b/jni/parted/libiconv/lib/utf16le.h deleted file mode 100755 index 97e94bc..0000000 --- a/jni/parted/libiconv/lib/utf16le.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-16LE - */ - -/* Specification: RFC 2781 */ - -static int -utf16le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - int count = 0; - if (n >= 2) { - ucs4_t wc = s[0] + (s[1] << 8); - if (wc >= 0xd800 && wc < 0xdc00) { - if (n >= 4) { - ucs4_t wc2 = s[2] + (s[3] << 8); - if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) - goto ilseq; - *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); - return count+4; - } - } else if (wc >= 0xdc00 && wc < 0xe000) { - goto ilseq; - } else { - *pwc = wc; - return count+2; - } - } - return RET_TOOFEW(count); - -ilseq: - return RET_SHIFT_ILSEQ(count); -} - -static int -utf16le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (!(wc >= 0xd800 && wc < 0xe000)) { - if (wc < 0x10000) { - if (n >= 2) { - r[0] = (unsigned char) wc; - r[1] = (unsigned char) (wc >> 8); - return 2; - } else - return RET_TOOSMALL; - } - else if (wc < 0x110000) { - if (n >= 4) { - ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); - ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); - r[0] = (unsigned char) wc1; - r[1] = (unsigned char) (wc1 >> 8); - r[2] = (unsigned char) wc2; - r[3] = (unsigned char) (wc2 >> 8); - return 4; - } else - return RET_TOOSMALL; - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/utf32.h b/jni/parted/libiconv/lib/utf32.h deleted file mode 100755 index 9ed5454..0000000 --- a/jni/parted/libiconv/lib/utf32.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2011, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-32 - */ - -/* Specification: Unicode 3.1 Standard Annex #19 */ - -/* Here we accept FFFE0000/0000FEFF marks as endianness indicators - everywhere in the stream, not just at the beginning. (This is contrary - to what #19 D36c specifies, but it allows concatenation of byte - sequences to work flawlessly, while disagreeing with #19 behaviour - only for strings containing U+FEFF characters, which is quite rare.) - The default is big-endian. */ -/* The state is 0 if big-endian, 1 if little-endian. */ -static int -utf32_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; - for (; n >= 4 && count <= RET_COUNT_MAX && count <= INT_MAX-4;) { - ucs4_t wc = (state - ? s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24) - : (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]); - if (wc == 0x0000feff) { - } else if (wc == 0xfffe0000u) { - state ^= 1; - } else { - if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { - *pwc = wc; - conv->istate = state; - return count+4; - } else { - conv->istate = state; - return RET_SHIFT_ILSEQ(count); - } - } - s += 4; n -= 4; count += 4; - } - conv->istate = state; - return RET_TOOFEW(count); -} - -/* We output UTF-32 in big-endian order, with byte-order mark. */ -/* The state is 0 at the beginning, 1 after the BOM has been written. */ -static int -utf32_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { - int count = 0; - if (!conv->ostate) { - if (n >= 4) { - r[0] = 0x00; - r[1] = 0x00; - r[2] = 0xFE; - r[3] = 0xFF; - r += 4; n -= 4; count += 4; - } else - return RET_TOOSMALL; - } - if (wc < 0x110000) { - if (n >= 4) { - r[0] = 0; - r[1] = (unsigned char) (wc >> 16); - r[2] = (unsigned char) (wc >> 8); - r[3] = (unsigned char) wc; - conv->ostate = 1; - return count+4; - } else - return RET_TOOSMALL; - } - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/utf32be.h b/jni/parted/libiconv/lib/utf32be.h deleted file mode 100755 index 1d33772..0000000 --- a/jni/parted/libiconv/lib/utf32be.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-32BE - */ - -/* Specification: Unicode 3.1 Standard Annex #19 */ - -static int -utf32be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 4) { - ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; - if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { - *pwc = wc; - return 4; - } else - return RET_ILSEQ; - } - return RET_TOOFEW(0); -} - -static int -utf32be_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 4) { - r[0] = 0; - r[1] = (unsigned char) (wc >> 16); - r[2] = (unsigned char) (wc >> 8); - r[3] = (unsigned char) wc; - return 4; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/utf32le.h b/jni/parted/libiconv/lib/utf32le.h deleted file mode 100755 index 41cf550..0000000 --- a/jni/parted/libiconv/lib/utf32le.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-32LE - */ - -/* Specification: Unicode 3.1 Standard Annex #19 */ - -static int -utf32le_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - if (n >= 4) { - ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); - if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { - *pwc = wc; - return 4; - } else - return RET_ILSEQ; - } - return RET_TOOFEW(0); -} - -static int -utf32le_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { - if (n >= 4) { - r[0] = (unsigned char) wc; - r[1] = (unsigned char) (wc >> 8); - r[2] = (unsigned char) (wc >> 16); - r[3] = 0; - return 4; - } else - return RET_TOOSMALL; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/lib/utf7.h b/jni/parted/libiconv/lib/utf7.h deleted file mode 100755 index 6f237ed..0000000 --- a/jni/parted/libiconv/lib/utf7.h +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2008, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-7 - */ - -/* Specification: RFC 2152 (and old RFC 1641, RFC 1642) */ -/* The original Base64 encoding is defined in RFC 2045. */ - -/* Set of direct characters: - * A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr - */ -static const unsigned char direct_tab[128/8] = { - 0x00, 0x26, 0x00, 0x00, 0x81, 0xf3, 0xff, 0x87, - 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07, -}; -#define isdirect(ch) ((ch) < 128 && ((direct_tab[(ch)>>3] >> (ch & 7)) & 1)) - -/* Set of direct and optional direct characters: - * A-Z a-z 0-9 ' ( ) , - . / : ? space tab lf cr - * ! " # $ % & * ; < = > @ [ ] ^ _ ` { | } - */ -static const unsigned char xdirect_tab[128/8] = { - 0x00, 0x26, 0x00, 0x00, 0xff, 0xf7, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0x3f, -}; -#define isxdirect(ch) ((ch) < 128 && ((xdirect_tab[(ch)>>3] >> (ch & 7)) & 1)) - -/* Set of base64 characters, extended: - * A-Z a-z 0-9 + / - - */ -static const unsigned char xbase64_tab[128/8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xff, 0x03, - 0xfe, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x07, -}; -#define isxbase64(ch) ((ch) < 128 && ((xbase64_tab[(ch)>>3] >> (ch & 7)) & 1)) - -/* - * The state is structured as follows: - * bit 1..0: shift - * bit 7..2: data - * Precise meaning: - * shift data - * 0 0 not inside base64 encoding - * 1 0 inside base64, no pending bits - * 2 XXXX00 inside base64, 4 bits remain from 2nd byte - * 3 XX0000 inside base64, 2 bits remain from 3rd byte - */ - -static int -utf7_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - state_t state = conv->istate; - int count = 0; /* number of input bytes already read */ - if (state & 3) - goto active; - else - goto inactive; - -inactive: - { - /* Here (state & 3) == 0 */ - if (n < count+1) - goto none; - { - unsigned char c = *s; - if (isxdirect(c)) { - *pwc = (ucs4_t) c; - conv->istate = state; - return count+1; - } - if (c == '+') { - if (n < count+2) - goto none; - if (s[1] == '-') { - *pwc = (ucs4_t) '+'; - conv->istate = state; - return count+2; - } - s++; count++; - state = 1; - goto active; - } - goto ilseq; - } - } - -active: - { - /* base64 encoding active */ - unsigned int wc = 0; - state_t base64state = state; - unsigned int kmax = 2; /* number of payload bytes to read */ - unsigned int k = 0; /* number of payload bytes already read */ - unsigned int base64count = 0; /* number of base64 bytes already read */ - for (;;) { - unsigned char c = *s; - unsigned int i; - if (c >= 'A' && c <= 'Z') - i = c-'A'; - else if (c >= 'a' && c <= 'z') - i = c-'a'+26; - else if (c >= '0' && c <= '9') - i = c-'0'+52; - else if (c == '+') - i = 62; - else if (c == '/') - i = 63; - else { - /* c terminates base64 encoding */ - if (base64state & -4) - goto ilseq; /* data must be 0, otherwise illegal */ - if (base64count) - goto ilseq; /* partial UTF-16 characters are invalid */ - if (c == '-') { - s++; count++; - } - state = 0; - goto inactive; - } - s++; base64count++; - /* read 6 bits: 0 <= i < 64 */ - switch (base64state & 3) { - case 1: /* inside base64, no pending bits */ - base64state = (i << 2) | 0; break; - case 0: /* inside base64, 6 bits remain from 1st byte */ - wc = (wc << 8) | (base64state & -4) | (i >> 4); k++; - base64state = ((i & 15) << 4) | 2; break; - case 2: /* inside base64, 4 bits remain from 2nd byte */ - wc = (wc << 8) | (base64state & -4) | (i >> 2); k++; - base64state = ((i & 3) << 6) | 3; break; - case 3: /* inside base64, 2 bits remain from 3rd byte */ - wc = (wc << 8) | (base64state & -4) | i; k++; - base64state = 1; break; - } - if (k == kmax) { - /* UTF-16: When we see a High Surrogate, we must also decode - the following Low Surrogate. */ - if (kmax == 2 && (wc >= 0xd800 && wc < 0xdc00)) - kmax = 4; - else - break; - } - if (n < count+base64count+1) - goto none; - } - /* Here k = kmax > 0, hence base64count > 0. */ - if ((base64state & 3) == 0) abort(); - if (kmax == 4) { - ucs4_t wc1 = wc >> 16; - ucs4_t wc2 = wc & 0xffff; - if (!(wc1 >= 0xd800 && wc1 < 0xdc00)) abort(); - if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) goto ilseq; - *pwc = 0x10000 + ((wc1 - 0xd800) << 10) + (wc2 - 0xdc00); - } else { - *pwc = wc; - } - conv->istate = base64state; - return count+base64count; - } - -none: - conv->istate = state; - return RET_TOOFEW(count); - -ilseq: - conv->istate = state; - return RET_SHIFT_ILSEQ(count); -} - -/* - * The state is structured as follows: - * bit 1..0: shift - * bit 7..2: data - * Precise meaning: - * shift data - * 0 0 not inside base64 encoding - * 1 0 inside base64, no pending bits - * 2 XX00 inside base64, 2 bits known for 2nd byte - * 3 XXXX inside base64, 4 bits known for 3rd byte - */ - -/* Define this to 1 if you want the so-called "optional direct" characters - ! " # $ % & * ; < = > @ [ ] ^ _ ` { | } - to be encoded. Define to 0 if you want them to be passed straight through, - like the so-called "direct" characters. - We set this to 1 because it's safer. - */ -#define UTF7_ENCODE_OPTIONAL_CHARS 1 - -static int -utf7_wctomb (conv_t conv, unsigned char *r, ucs4_t iwc, size_t n) -{ - state_t state = conv->ostate; - unsigned int wc = iwc; - int count = 0; - if (state & 3) - goto active; - -/*inactive:*/ - { - if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect(wc) : isxdirect(wc)) { - r[0] = (unsigned char) wc; - /*conv->ostate = state;*/ - return 1; - } else { - *r++ = '+'; - if (wc == '+') { - if (n < 2) - return RET_TOOSMALL; - *r = '-'; - /*conv->ostate = state;*/ - return 2; - } - count = 1; - state = 1; - goto active; - } - } - -active: - { - /* base64 encoding active */ - if (UTF7_ENCODE_OPTIONAL_CHARS ? isdirect(wc) : isxdirect(wc)) { - /* deactivate base64 encoding */ - count += ((state & 3) >= 2 ? 1 : 0) + (isxbase64(wc) ? 1 : 0) + 1; - if (n < count) - return RET_TOOSMALL; - if ((state & 3) >= 2) { - unsigned int i = state & -4; - unsigned char c; - if (i < 26) - c = i+'A'; - else if (i < 52) - c = i-26+'a'; - else if (i < 62) - c = i-52+'0'; - else if (i == 62) - c = '+'; - else if (i == 63) - c = '/'; - else - abort(); - *r++ = c; - } - if (isxbase64(wc)) - *r++ = '-'; - state = 0; - *r++ = (unsigned char) wc; - conv->ostate = state; - return count; - } else { - unsigned int k; /* number of payload bytes to write */ - if (wc < 0x10000) { - k = 2; - count += ((state & 3) >= 2 ? 3 : 2); - } else if (wc < 0x110000) { - unsigned int wc1 = 0xd800 + ((wc - 0x10000) >> 10); - unsigned int wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); - wc = (wc1 << 16) | wc2; - k = 4; - count += ((state & 3) >= 3 ? 6 : 5); - } else - return RET_ILUNI; - if (n < count) - return RET_TOOSMALL; - for (;;) { - unsigned int i; - unsigned char c; - switch (state & 3) { - case 0: /* inside base64, 6 bits known for 4th byte */ - c = (state & -4) >> 2; state = 1; break; - case 1: /* inside base64, no pending bits */ - i = (wc >> (8 * --k)) & 0xff; - c = i >> 2; state = ((i & 3) << 4) | 2; break; - case 2: /* inside base64, 2 bits known for 2nd byte */ - i = (wc >> (8 * --k)) & 0xff; - c = (state & -4) | (i >> 4); state = ((i & 15) << 2) | 3; break; - case 3: /* inside base64, 4 bits known for 3rd byte */ - i = (wc >> (8 * --k)) & 0xff; - c = (state & -4) | (i >> 6); state = ((i & 63) << 2) | 0; break; - default: abort(); /* stupid gcc */ - } - if (c < 26) - c = c+'A'; - else if (c < 52) - c = c-26+'a'; - else if (c < 62) - c = c-52+'0'; - else if (c == 62) - c = '+'; - else if (c == 63) - c = '/'; - else - abort(); - *r++ = c; - if ((state & 3) && (k == 0)) - break; - } - conv->ostate = state; - return count; - } - } -} - -static int -utf7_reset (conv_t conv, unsigned char *r, size_t n) -{ - state_t state = conv->ostate; - if (state & 3) { - /* deactivate base64 encoding */ - unsigned int count = ((state & 3) >= 2 ? 1 : 0) + 1; - if (n < count) - return RET_TOOSMALL; - if ((state & 3) >= 2) { - unsigned int i = state & -4; - unsigned char c; - if (i < 26) - c = i+'A'; - else if (i < 52) - c = i-26+'a'; - else if (i < 62) - c = i-52+'0'; - else if (i == 62) - c = '+'; - else if (i == 63) - c = '/'; - else - abort(); - *r++ = c; - } - *r++ = '-'; - /* conv->ostate = 0; will be done by the caller */ - return count; - } else - return 0; -} diff --git a/jni/parted/libiconv/lib/utf8.h b/jni/parted/libiconv/lib/utf8.h deleted file mode 100755 index 43727ea..0000000 --- a/jni/parted/libiconv/lib/utf8.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2004, 2016 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * UTF-8 - */ - -/* Specification: RFC 3629 */ - -static int -utf8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = s[0]; - - if (c < 0x80) { - *pwc = c; - return 1; - } else if (c < 0xc2) { - return RET_ILSEQ; - } else if (c < 0xe0) { - if (n < 2) - return RET_TOOFEW(0); - if (!((s[1] ^ 0x80) < 0x40)) - return RET_ILSEQ; - *pwc = ((ucs4_t) (c & 0x1f) << 6) - | (ucs4_t) (s[1] ^ 0x80); - return 2; - } else if (c < 0xf0) { - if (n < 3) - return RET_TOOFEW(0); - if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 - && (c >= 0xe1 || s[1] >= 0xa0) - && (c != 0xed || s[1] < 0xa0))) - return RET_ILSEQ; - *pwc = ((ucs4_t) (c & 0x0f) << 12) - | ((ucs4_t) (s[1] ^ 0x80) << 6) - | (ucs4_t) (s[2] ^ 0x80); - return 3; - } else if (c < 0xf8 && sizeof(ucs4_t)*8 >= 32) { - if (n < 4) - return RET_TOOFEW(0); - if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 - && (s[3] ^ 0x80) < 0x40 - && (c >= 0xf1 || s[1] >= 0x90) - && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)))) - return RET_ILSEQ; - *pwc = ((ucs4_t) (c & 0x07) << 18) - | ((ucs4_t) (s[1] ^ 0x80) << 12) - | ((ucs4_t) (s[2] ^ 0x80) << 6) - | (ucs4_t) (s[3] ^ 0x80); - return 4; - } else - return RET_ILSEQ; -} - -static int -utf8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) /* n == 0 is acceptable */ -{ - int count; - if (wc < 0x80) - count = 1; - else if (wc < 0x800) - count = 2; - else if (wc < 0x10000) { - if (wc < 0xd800 || wc >= 0xe000) - count = 3; - else - return RET_ILUNI; - } else if (wc < 0x110000) - count = 4; - else - return RET_ILUNI; - if (n < count) - return RET_TOOSMALL; - switch (count) { /* note: code falls through cases! */ - case 4: r[3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000; - case 3: r[2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800; - case 2: r[1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0; - case 1: r[0] = wc; - } - return count; -} diff --git a/jni/parted/libiconv/lib/vietcomb.h b/jni/parted/libiconv/lib/vietcomb.h deleted file mode 100755 index ed06d9d..0000000 --- a/jni/parted/libiconv/lib/vietcomb.h +++ /dev/null @@ -1,465 +0,0 @@ -/* - * Copyright (C) 2001, 2004, 2011 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* Combining characters used in Vietnamese encodings CP1258, TCVN. */ - -#ifndef _VIETCOMB_H -#define _VIETCOMB_H - -/* Relevant combining characters: - 0x0300, 0x0301, 0x0303, 0x0309, 0x0323. */ - -/* Composition tables for each of the relevant combining characters. */ -static const struct { unsigned short base; unsigned short composed; } viet_comp_table_data[] = { -#define viet_comp_table0300_idx 0 -#define viet_comp_table0300_len 31 - { 0x0041, 0x00C0 }, - { 0x0045, 0x00C8 }, - { 0x0049, 0x00CC }, - { 0x004E, 0x01F8 }, - { 0x004F, 0x00D2 }, - { 0x0055, 0x00D9 }, - { 0x0057, 0x1E80 }, - { 0x0059, 0x1EF2 }, - { 0x0061, 0x00E0 }, - { 0x0065, 0x00E8 }, - { 0x0069, 0x00EC }, - { 0x006E, 0x01F9 }, - { 0x006F, 0x00F2 }, - { 0x0075, 0x00F9 }, - { 0x0077, 0x1E81 }, - { 0x0079, 0x1EF3 }, - { 0x00A8, 0x1FED }, - { 0x00C2, 0x1EA6 }, - { 0x00CA, 0x1EC0 }, - { 0x00D4, 0x1ED2 }, - { 0x00DC, 0x01DB }, - { 0x00E2, 0x1EA7 }, - { 0x00EA, 0x1EC1 }, - { 0x00F4, 0x1ED3 }, - { 0x00FC, 0x01DC }, - { 0x0102, 0x1EB0 }, - { 0x0103, 0x1EB1 }, -/*{ 0x0112, 0x1E14 },*/ -/*{ 0x0113, 0x1E15 },*/ -/*{ 0x014C, 0x1E50 },*/ -/*{ 0x014D, 0x1E51 },*/ - { 0x01A0, 0x1EDC }, - { 0x01A1, 0x1EDD }, - { 0x01AF, 0x1EEA }, - { 0x01B0, 0x1EEB }, -#define viet_comp_table0301_idx (viet_comp_table0300_idx+viet_comp_table0300_len) -#define viet_comp_table0301_len 63 - { 0x0041, 0x00C1 }, - { 0x0043, 0x0106 }, - { 0x0045, 0x00C9 }, - { 0x0047, 0x01F4 }, - { 0x0049, 0x00CD }, - { 0x004B, 0x1E30 }, - { 0x004C, 0x0139 }, - { 0x004D, 0x1E3E }, - { 0x004E, 0x0143 }, - { 0x004F, 0x00D3 }, - { 0x0050, 0x1E54 }, - { 0x0052, 0x0154 }, - { 0x0053, 0x015A }, - { 0x0055, 0x00DA }, - { 0x0057, 0x1E82 }, - { 0x0059, 0x00DD }, - { 0x005A, 0x0179 }, - { 0x0061, 0x00E1 }, - { 0x0063, 0x0107 }, - { 0x0065, 0x00E9 }, - { 0x0067, 0x01F5 }, - { 0x0069, 0x00ED }, - { 0x006B, 0x1E31 }, - { 0x006C, 0x013A }, - { 0x006D, 0x1E3F }, - { 0x006E, 0x0144 }, - { 0x006F, 0x00F3 }, - { 0x0070, 0x1E55 }, - { 0x0072, 0x0155 }, - { 0x0073, 0x015B }, - { 0x0075, 0x00FA }, - { 0x0077, 0x1E83 }, - { 0x0079, 0x00FD }, - { 0x007A, 0x017A }, - { 0x00A8, 0x0385 }, /* prefer U+0385 over U+1FEE */ - { 0x00C2, 0x1EA4 }, - { 0x00C5, 0x01FA }, - { 0x00C6, 0x01FC }, - { 0x00C7, 0x1E08 }, - { 0x00CA, 0x1EBE }, - { 0x00CF, 0x1E2E }, - { 0x00D4, 0x1ED0 }, - { 0x00D5, 0x1E4C }, - { 0x00D8, 0x01FE }, - { 0x00DC, 0x01D7 }, - { 0x00E2, 0x1EA5 }, - { 0x00E5, 0x01FB }, - { 0x00E6, 0x01FD }, - { 0x00E7, 0x1E09 }, - { 0x00EA, 0x1EBF }, - { 0x00EF, 0x1E2F }, - { 0x00F4, 0x1ED1 }, - { 0x00F5, 0x1E4D }, - { 0x00F8, 0x01FF }, - { 0x00FC, 0x01D8 }, - { 0x0102, 0x1EAE }, - { 0x0103, 0x1EAF }, -/*{ 0x0112, 0x1E16 },*/ -/*{ 0x0113, 0x1E17 },*/ -/*{ 0x014C, 0x1E52 },*/ -/*{ 0x014D, 0x1E53 },*/ - { 0x0168, 0x1E78 }, - { 0x0169, 0x1E79 }, - { 0x01A0, 0x1EDA }, - { 0x01A1, 0x1EDB }, - { 0x01AF, 0x1EE8 }, - { 0x01B0, 0x1EE9 }, -#define viet_comp_table0303_idx (viet_comp_table0301_idx+viet_comp_table0301_len) -#define viet_comp_table0303_len 34 - { 0x0041, 0x00C3 }, - { 0x0045, 0x1EBC }, - { 0x0049, 0x0128 }, - { 0x004E, 0x00D1 }, - { 0x004F, 0x00D5 }, - { 0x0055, 0x0168 }, - { 0x0056, 0x1E7C }, - { 0x0059, 0x1EF8 }, - { 0x0061, 0x00E3 }, - { 0x0065, 0x1EBD }, - { 0x0069, 0x0129 }, - { 0x006E, 0x00F1 }, - { 0x006F, 0x00F5 }, - { 0x0075, 0x0169 }, - { 0x0076, 0x1E7D }, - { 0x0079, 0x1EF9 }, - { 0x00C2, 0x1EAA }, - { 0x00CA, 0x1EC4 }, - { 0x00D3, 0x1E4C }, - { 0x00D4, 0x1ED6 }, - { 0x00D6, 0x1E4E }, - { 0x00DA, 0x1E78 }, - { 0x00E2, 0x1EAB }, - { 0x00EA, 0x1EC5 }, - { 0x00F3, 0x1E4D }, - { 0x00F4, 0x1ED7 }, - { 0x00F6, 0x1E4F }, - { 0x00FA, 0x1E79 }, - { 0x0102, 0x1EB4 }, - { 0x0103, 0x1EB5 }, - { 0x01A0, 0x1EE0 }, - { 0x01A1, 0x1EE1 }, - { 0x01AF, 0x1EEE }, - { 0x01B0, 0x1EEF }, -#define viet_comp_table0309_idx (viet_comp_table0303_idx+viet_comp_table0303_len) -#define viet_comp_table0309_len 24 - { 0x0041, 0x1EA2 }, - { 0x0045, 0x1EBA }, - { 0x0049, 0x1EC8 }, - { 0x004F, 0x1ECE }, - { 0x0055, 0x1EE6 }, - { 0x0059, 0x1EF6 }, - { 0x0061, 0x1EA3 }, - { 0x0065, 0x1EBB }, - { 0x0069, 0x1EC9 }, - { 0x006F, 0x1ECF }, - { 0x0075, 0x1EE7 }, - { 0x0079, 0x1EF7 }, - { 0x00C2, 0x1EA8 }, - { 0x00CA, 0x1EC2 }, - { 0x00D4, 0x1ED4 }, - { 0x00E2, 0x1EA9 }, - { 0x00EA, 0x1EC3 }, - { 0x00F4, 0x1ED5 }, - { 0x0102, 0x1EB2 }, - { 0x0103, 0x1EB3 }, - { 0x01A0, 0x1EDE }, - { 0x01A1, 0x1EDF }, - { 0x01AF, 0x1EEC }, - { 0x01B0, 0x1EED }, -#define viet_comp_table0323_idx (viet_comp_table0309_idx+viet_comp_table0309_len) -#define viet_comp_table0323_len 50 - { 0x0041, 0x1EA0 }, - { 0x0042, 0x1E04 }, - { 0x0044, 0x1E0C }, - { 0x0045, 0x1EB8 }, - { 0x0048, 0x1E24 }, - { 0x0049, 0x1ECA }, - { 0x004B, 0x1E32 }, - { 0x004C, 0x1E36 }, - { 0x004D, 0x1E42 }, - { 0x004E, 0x1E46 }, - { 0x004F, 0x1ECC }, - { 0x0052, 0x1E5A }, - { 0x0053, 0x1E62 }, - { 0x0054, 0x1E6C }, - { 0x0055, 0x1EE4 }, - { 0x0056, 0x1E7E }, - { 0x0057, 0x1E88 }, - { 0x0059, 0x1EF4 }, - { 0x005A, 0x1E92 }, - { 0x0061, 0x1EA1 }, - { 0x0062, 0x1E05 }, - { 0x0064, 0x1E0D }, - { 0x0065, 0x1EB9 }, - { 0x0068, 0x1E25 }, - { 0x0069, 0x1ECB }, - { 0x006B, 0x1E33 }, - { 0x006C, 0x1E37 }, - { 0x006D, 0x1E43 }, - { 0x006E, 0x1E47 }, - { 0x006F, 0x1ECD }, - { 0x0072, 0x1E5B }, - { 0x0073, 0x1E63 }, - { 0x0074, 0x1E6D }, - { 0x0075, 0x1EE5 }, - { 0x0076, 0x1E7F }, - { 0x0077, 0x1E89 }, - { 0x0079, 0x1EF5 }, - { 0x007A, 0x1E93 }, - { 0x00C2, 0x1EAC }, - { 0x00CA, 0x1EC6 }, - { 0x00D4, 0x1ED8 }, - { 0x00E2, 0x1EAD }, - { 0x00EA, 0x1EC7 }, - { 0x00F4, 0x1ED9 }, - { 0x0102, 0x1EB6 }, - { 0x0103, 0x1EB7 }, - { 0x01A0, 0x1EE2 }, - { 0x01A1, 0x1EE3 }, - { 0x01AF, 0x1EF0 }, - { 0x01B0, 0x1EF1 }, -}; -static const struct { unsigned int len; unsigned int idx; } viet_comp_table[] = { - { viet_comp_table0300_len, viet_comp_table0300_idx }, - { viet_comp_table0301_len, viet_comp_table0301_idx }, - { viet_comp_table0303_len, viet_comp_table0303_idx }, - { viet_comp_table0309_len, viet_comp_table0309_idx }, - { viet_comp_table0323_len, viet_comp_table0323_idx }, -}; - -/* Decomposition table for the relevant Unicode characters. */ -struct viet_decomp { unsigned short composed; unsigned int base : 12; int comb1 : 4; }; -static const struct viet_decomp viet_decomp_table[] = { - { 0x00B4, 0x0020, 1 }, /* compatibility decomposition - for TCVN only */ - { 0x00C0, 0x0041, 0 }, - { 0x00C1, 0x0041, 1 }, - { 0x00C3, 0x0041, 2 }, - { 0x00C8, 0x0045, 0 }, - { 0x00C9, 0x0045, 1 }, - { 0x00CC, 0x0049, 0 }, - { 0x00CD, 0x0049, 1 }, - { 0x00D1, 0x004E, 2 }, - { 0x00D2, 0x004F, 0 }, - { 0x00D3, 0x004F, 1 }, - { 0x00D5, 0x004F, 2 }, - { 0x00D9, 0x0055, 0 }, - { 0x00DA, 0x0055, 1 }, - { 0x00DD, 0x0059, 1 }, - { 0x00E0, 0x0061, 0 }, - { 0x00E1, 0x0061, 1 }, - { 0x00E3, 0x0061, 2 }, - { 0x00E8, 0x0065, 0 }, - { 0x00E9, 0x0065, 1 }, - { 0x00EC, 0x0069, 0 }, - { 0x00ED, 0x0069, 1 }, - { 0x00F1, 0x006E, 2 }, - { 0x00F2, 0x006F, 0 }, - { 0x00F3, 0x006F, 1 }, - { 0x00F5, 0x006F, 2 }, - { 0x00F9, 0x0075, 0 }, - { 0x00FA, 0x0075, 1 }, - { 0x00FD, 0x0079, 1 }, - { 0x0106, 0x0043, 1 }, - { 0x0107, 0x0063, 1 }, - { 0x0128, 0x0049, 2 }, - { 0x0129, 0x0069, 2 }, - { 0x0139, 0x004C, 1 }, - { 0x013A, 0x006C, 1 }, - { 0x0143, 0x004E, 1 }, - { 0x0144, 0x006E, 1 }, - { 0x0154, 0x0052, 1 }, - { 0x0155, 0x0072, 1 }, - { 0x015A, 0x0053, 1 }, - { 0x015B, 0x0073, 1 }, - { 0x0168, 0x0055, 2 }, - { 0x0169, 0x0075, 2 }, - { 0x0179, 0x005A, 1 }, - { 0x017A, 0x007A, 1 }, - { 0x01D7, 0x00DC, 1 }, - { 0x01D8, 0x00FC, 1 }, - { 0x01DB, 0x00DC, 0 }, - { 0x01DC, 0x00FC, 0 }, - { 0x01F4, 0x0047, 1 }, - { 0x01F5, 0x0067, 1 }, - { 0x01F8, 0x004E, 0 }, - { 0x01F9, 0x006E, 0 }, - { 0x01FA, 0x00C5, 1 }, - { 0x01FB, 0x00E5, 1 }, - { 0x01FC, 0x00C6, 1 }, - { 0x01FD, 0x00E6, 1 }, - { 0x01FE, 0x00D8, 1 }, - { 0x01FF, 0x00F8, 1 }, - { 0x02DC, 0x0020, 2 }, /* compatibility decomposition - for TCVN only */ - { 0x0385, 0x00A8, 1 }, - { 0x1E04, 0x0042, 4 }, - { 0x1E05, 0x0062, 4 }, - { 0x1E08, 0x00C7, 1 }, - { 0x1E09, 0x00E7, 1 }, - { 0x1E0C, 0x0044, 4 }, - { 0x1E0D, 0x0064, 4 }, - { 0x1E24, 0x0048, 4 }, - { 0x1E25, 0x0068, 4 }, - { 0x1E2E, 0x00CF, 1 }, - { 0x1E2F, 0x00EF, 1 }, - { 0x1E30, 0x004B, 1 }, - { 0x1E31, 0x006B, 1 }, - { 0x1E32, 0x004B, 4 }, - { 0x1E33, 0x006B, 4 }, - { 0x1E36, 0x004C, 4 }, - { 0x1E37, 0x006C, 4 }, - { 0x1E3E, 0x004D, 1 }, - { 0x1E3F, 0x006D, 1 }, - { 0x1E42, 0x004D, 4 }, - { 0x1E43, 0x006D, 4 }, - { 0x1E46, 0x004E, 4 }, - { 0x1E47, 0x006E, 4 }, - { 0x1E4C, 0x00D3, 2 }, /*{ 0x1E4C, 0x00D5, 1 },*/ /*{ 0x1E4C, 0x004F, 1, 2 },*/ - { 0x1E4D, 0x00F3, 2 }, /*{ 0x1E4D, 0x00F5, 1 },*/ /*{ 0x1E4D, 0x006F, 1, 2 },*/ - { 0x1E4E, 0x00D6, 2 }, - { 0x1E4F, 0x00F6, 2 }, - { 0x1E54, 0x0050, 1 }, - { 0x1E55, 0x0070, 1 }, - { 0x1E5A, 0x0052, 4 }, - { 0x1E5B, 0x0072, 4 }, - { 0x1E62, 0x0053, 4 }, - { 0x1E63, 0x0073, 4 }, - { 0x1E6C, 0x0054, 4 }, - { 0x1E6D, 0x0074, 4 }, - { 0x1E78, 0x00DA, 2 }, /*{ 0x1E78, 0x0168, 1 },*/ /*{ 0x1E78, 0x0055, 1, 2 },*/ - { 0x1E79, 0x00FA, 2 }, /*{ 0x1E79, 0x0169, 1 },*/ /*{ 0x1E79, 0x0075, 1, 2 },*/ - { 0x1E7C, 0x0056, 2 }, - { 0x1E7D, 0x0076, 2 }, - { 0x1E7E, 0x0056, 4 }, - { 0x1E7F, 0x0076, 4 }, - { 0x1E80, 0x0057, 0 }, - { 0x1E81, 0x0077, 0 }, - { 0x1E82, 0x0057, 1 }, - { 0x1E83, 0x0077, 1 }, - { 0x1E88, 0x0057, 4 }, - { 0x1E89, 0x0077, 4 }, - { 0x1E92, 0x005A, 4 }, - { 0x1E93, 0x007A, 4 }, - { 0x1EA0, 0x0041, 4 }, - { 0x1EA1, 0x0061, 4 }, - { 0x1EA2, 0x0041, 3 }, - { 0x1EA3, 0x0061, 3 }, - { 0x1EA4, 0x00C2, 1 }, - { 0x1EA5, 0x00E2, 1 }, - { 0x1EA6, 0x00C2, 0 }, - { 0x1EA7, 0x00E2, 0 }, - { 0x1EA8, 0x00C2, 3 }, - { 0x1EA9, 0x00E2, 3 }, - { 0x1EAA, 0x00C2, 2 }, - { 0x1EAB, 0x00E2, 2 }, - { 0x1EAC, 0x00C2, 4 }, - { 0x1EAD, 0x00E2, 4 }, - { 0x1EAE, 0x0102, 1 }, - { 0x1EAF, 0x0103, 1 }, - { 0x1EB0, 0x0102, 0 }, - { 0x1EB1, 0x0103, 0 }, - { 0x1EB2, 0x0102, 3 }, - { 0x1EB3, 0x0103, 3 }, - { 0x1EB4, 0x0102, 2 }, - { 0x1EB5, 0x0103, 2 }, - { 0x1EB6, 0x0102, 4 }, - { 0x1EB7, 0x0103, 4 }, - { 0x1EB8, 0x0045, 4 }, - { 0x1EB9, 0x0065, 4 }, - { 0x1EBA, 0x0045, 3 }, - { 0x1EBB, 0x0065, 3 }, - { 0x1EBC, 0x0045, 2 }, - { 0x1EBD, 0x0065, 2 }, - { 0x1EBE, 0x00CA, 1 }, - { 0x1EBF, 0x00EA, 1 }, - { 0x1EC0, 0x00CA, 0 }, - { 0x1EC1, 0x00EA, 0 }, - { 0x1EC2, 0x00CA, 3 }, - { 0x1EC3, 0x00EA, 3 }, - { 0x1EC4, 0x00CA, 2 }, - { 0x1EC5, 0x00EA, 2 }, - { 0x1EC6, 0x00CA, 4 }, - { 0x1EC7, 0x00EA, 4 }, - { 0x1EC8, 0x0049, 3 }, - { 0x1EC9, 0x0069, 3 }, - { 0x1ECA, 0x0049, 4 }, - { 0x1ECB, 0x0069, 4 }, - { 0x1ECC, 0x004F, 4 }, - { 0x1ECD, 0x006F, 4 }, - { 0x1ECE, 0x004F, 3 }, - { 0x1ECF, 0x006F, 3 }, - { 0x1ED0, 0x00D4, 1 }, - { 0x1ED1, 0x00F4, 1 }, - { 0x1ED2, 0x00D4, 0 }, - { 0x1ED3, 0x00F4, 0 }, - { 0x1ED4, 0x00D4, 3 }, - { 0x1ED5, 0x00F4, 3 }, - { 0x1ED6, 0x00D4, 2 }, - { 0x1ED7, 0x00F4, 2 }, - { 0x1ED8, 0x00D4, 4 }, - { 0x1ED9, 0x00F4, 4 }, - { 0x1EDA, 0x01A0, 1 }, - { 0x1EDB, 0x01A1, 1 }, - { 0x1EDC, 0x01A0, 0 }, - { 0x1EDD, 0x01A1, 0 }, - { 0x1EDE, 0x01A0, 3 }, - { 0x1EDF, 0x01A1, 3 }, - { 0x1EE0, 0x01A0, 2 }, - { 0x1EE1, 0x01A1, 2 }, - { 0x1EE2, 0x01A0, 4 }, - { 0x1EE3, 0x01A1, 4 }, - { 0x1EE4, 0x0055, 4 }, - { 0x1EE5, 0x0075, 4 }, - { 0x1EE6, 0x0055, 3 }, - { 0x1EE7, 0x0075, 3 }, - { 0x1EE8, 0x01AF, 1 }, - { 0x1EE9, 0x01B0, 1 }, - { 0x1EEA, 0x01AF, 0 }, - { 0x1EEB, 0x01B0, 0 }, - { 0x1EEC, 0x01AF, 3 }, - { 0x1EED, 0x01B0, 3 }, - { 0x1EEE, 0x01AF, 2 }, - { 0x1EEF, 0x01B0, 2 }, - { 0x1EF0, 0x01AF, 4 }, - { 0x1EF1, 0x01B0, 4 }, - { 0x1EF2, 0x0059, 0 }, - { 0x1EF3, 0x0079, 0 }, - { 0x1EF4, 0x0059, 4 }, - { 0x1EF5, 0x0079, 4 }, - { 0x1EF6, 0x0059, 3 }, - { 0x1EF7, 0x0079, 3 }, - { 0x1EF8, 0x0059, 2 }, - { 0x1EF9, 0x0079, 2 }, - { 0x1FED, 0x00A8, 0 }, - { 0x1FEE, 0x00A8, 1 }, /* U+1FEE => U+0385 => U+00A8 U+0301 */ -}; - -#endif /* _VIETCOMB_H */ diff --git a/jni/parted/libiconv/lib/viscii.h b/jni/parted/libiconv/lib/viscii.h deleted file mode 100755 index e0802f8..0000000 --- a/jni/parted/libiconv/lib/viscii.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (C) 1999-2001, 2016, 2019 Free Software Foundation, Inc. - * This file is part of the GNU LIBICONV Library. - * - * The GNU LIBICONV 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. - * - * The GNU LIBICONV 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 GNU LIBICONV Library; see the file COPYING.LIB. - * If not, see . - */ - -/* - * VISCII1.1-1 - */ - -/* Specification: RFC 1456 */ - -static const unsigned short viscii_2uni_1[32] = { - /* 0x00 */ - 0x0000, 0x0001, 0x1eb2, 0x0003, 0x0004, 0x1eb4, 0x1eaa, 0x0007, - 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, - /* 0x10 */ - 0x0010, 0x0011, 0x0012, 0x0013, 0x1ef6, 0x0015, 0x0016, 0x0017, - 0x0018, 0x1ef8, 0x001a, 0x001b, 0x001c, 0x001d, 0x1ef4, 0x001f, -}; -static const unsigned short viscii_2uni_2[128] = { - /* 0x80 */ - 0x1ea0, 0x1eae, 0x1eb0, 0x1eb6, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eac, - 0x1ebc, 0x1eb8, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ed0, - /* 0x90 */ - 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8, 0x1ee2, 0x1eda, 0x1edc, 0x1ede, - 0x1eca, 0x1ece, 0x1ecc, 0x1ec8, 0x1ee6, 0x0168, 0x1ee4, 0x1ef2, - /* 0xa0 */ - 0x00d5, 0x1eaf, 0x1eb1, 0x1eb7, 0x1ea5, 0x1ea7, 0x1ea9, 0x1ead, - 0x1ebd, 0x1eb9, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7, 0x1ed1, - /* 0xb0 */ - 0x1ed3, 0x1ed5, 0x1ed7, 0x1ee0, 0x01a0, 0x1ed9, 0x1edd, 0x1edf, - 0x1ecb, 0x1ef0, 0x1ee8, 0x1eea, 0x1eec, 0x01a1, 0x1edb, 0x01af, - /* 0xc0 */ - 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x1ea2, 0x0102, 0x1eb3, 0x1eb5, - 0x00c8, 0x00c9, 0x00ca, 0x1eba, 0x00cc, 0x00cd, 0x0128, 0x1ef3, - /* 0xd0 */ - 0x0110, 0x1ee9, 0x00d2, 0x00d3, 0x00d4, 0x1ea1, 0x1ef7, 0x1eeb, - 0x1eed, 0x00d9, 0x00da, 0x1ef9, 0x1ef5, 0x00dd, 0x1ee1, 0x01b0, - /* 0xe0 */ - 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x1ea3, 0x0103, 0x1eef, 0x1eab, - 0x00e8, 0x00e9, 0x00ea, 0x1ebb, 0x00ec, 0x00ed, 0x0129, 0x1ec9, - /* 0xf0 */ - 0x0111, 0x1ef1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x1ecf, 0x1ecd, - 0x1ee5, 0x00f9, 0x00fa, 0x0169, 0x1ee7, 0x00fd, 0x1ee3, 0x1eee, -}; - -static int -viscii_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, size_t n) -{ - unsigned char c = *s; - if (c < 0x20) - *pwc = (ucs4_t) viscii_2uni_1[c]; - else if (c < 0x80) - *pwc = (ucs4_t) c; - else - *pwc = (ucs4_t) viscii_2uni_2[c-0x80]; - return 1; -} - -static const unsigned char viscii_page00[64+184] = { - 0xc0, 0xc1, 0xc2, 0xc3, 0x00, 0x00, 0x00, 0x00, /* 0xc0-0xc7 */ - 0xc8, 0xc9, 0xca, 0x00, 0xcc, 0xcd, 0x00, 0x00, /* 0xc8-0xcf */ - 0x00, 0x00, 0xd2, 0xd3, 0xd4, 0xa0, 0x00, 0x00, /* 0xd0-0xd7 */ - 0x00, 0xd9, 0xda, 0x00, 0x00, 0xdd, 0x00, 0x00, /* 0xd8-0xdf */ - 0xe0, 0xe1, 0xe2, 0xe3, 0x00, 0x00, 0x00, 0x00, /* 0xe0-0xe7 */ - 0xe8, 0xe9, 0xea, 0x00, 0xec, 0xed, 0x00, 0x00, /* 0xe8-0xef */ - 0x00, 0x00, 0xf2, 0xf3, 0xf4, 0xf5, 0x00, 0x00, /* 0xf0-0xf7 */ - 0x00, 0xf9, 0xfa, 0x00, 0x00, 0xfd, 0x00, 0x00, /* 0xf8-0xff */ - /* 0x0100 */ - 0x00, 0x00, 0xc5, 0xe5, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */ - 0xd0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */ - 0xce, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x58-0x5f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x60-0x67 */ - 0x9d, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x68-0x6f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */ - 0xb4, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, /* 0xa8-0xaf */ - 0xdf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */ -}; -static const unsigned char viscii_page1e[96] = { - 0x80, 0xd5, 0xc4, 0xe4, 0x84, 0xa4, 0x85, 0xa5, /* 0xa0-0xa7 */ - 0x86, 0xa6, 0x06, 0xe7, 0x87, 0xa7, 0x81, 0xa1, /* 0xa8-0xaf */ - 0x82, 0xa2, 0x02, 0xc6, 0x05, 0xc7, 0x83, 0xa3, /* 0xb0-0xb7 */ - 0x89, 0xa9, 0xcb, 0xeb, 0x88, 0xa8, 0x8a, 0xaa, /* 0xb8-0xbf */ - 0x8b, 0xab, 0x8c, 0xac, 0x8d, 0xad, 0x8e, 0xae, /* 0xc0-0xc7 */ - 0x9b, 0xef, 0x98, 0xb8, 0x9a, 0xf7, 0x99, 0xf6, /* 0xc8-0xcf */ - 0x8f, 0xaf, 0x90, 0xb0, 0x91, 0xb1, 0x92, 0xb2, /* 0xd0-0xd7 */ - 0x93, 0xb5, 0x95, 0xbe, 0x96, 0xb6, 0x97, 0xb7, /* 0xd8-0xdf */ - 0xb3, 0xde, 0x94, 0xfe, 0x9e, 0xf8, 0x9c, 0xfc, /* 0xe0-0xe7 */ - 0xba, 0xd1, 0xbb, 0xd7, 0xbc, 0xd8, 0xff, 0xe6, /* 0xe8-0xef */ - 0xb9, 0xf1, 0x9f, 0xcf, 0x1e, 0xdc, 0x14, 0xd6, /* 0xf0-0xf7 */ - 0x19, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xf8-0xff */ -}; - -static int -viscii_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, size_t n) -{ - unsigned char c = 0; - if (wc < 0x0080 && (wc >= 0x0020 || (0x42100064U & (1U << wc)) == 0)) { - *r = wc; - return 1; - } - else if (wc >= 0x00c0 && wc < 0x01b8) - c = viscii_page00[wc-0x00c0]; - else if (wc >= 0x1ea0 && wc < 0x1f00) - c = viscii_page1e[wc-0x1ea0]; - if (c != 0) { - *r = c; - return 1; - } - return RET_ILUNI; -} diff --git a/jni/parted/libiconv/srclib/_Noreturn.h b/jni/parted/libiconv/srclib/_Noreturn.h deleted file mode 100755 index e914627..0000000 --- a/jni/parted/libiconv/srclib/_Noreturn.h +++ /dev/null @@ -1,45 +0,0 @@ -/* A C macro for declaring that a function does not return. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif diff --git a/jni/parted/libiconv/srclib/alloca.h b/jni/parted/libiconv/srclib/alloca.h deleted file mode 100755 index a63ab16..0000000 --- a/jni/parted/libiconv/srclib/alloca.h +++ /dev/null @@ -1,69 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2007 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* When this file is included, it may be preceded only by preprocessor - declarations. Thanks to AIX. Therefore we include it right after - "config.h", not later. */ - -/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H - means there is a real alloca function. */ -#ifndef _GL_ALLOCA_H -#define _GL_ALLOCA_H - -/* alloca(N) returns a pointer (void* or char*) to N bytes of memory - allocated on the stack, and which will last until the function returns. - Use of alloca should be avoided: - - inside arguments of function calls - undefined behaviour, - - in inline functions - the allocation may actually last until the - calling function returns, - - for huge N (say, N >= 65536) - you never know how large (or small) - the stack is, and when the stack cannot fulfill the memory allocation - request, the program just crashes. - */ - -#ifndef alloca -# ifdef __GNUC__ -# define alloca __builtin_alloca -# else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifdef __hpux /* This section must match that of bison generated files. */ -# ifdef __cplusplus -extern "C" void *alloca (unsigned int); -# else /* not __cplusplus */ -extern void *alloca (); -# endif /* not __cplusplus */ -# else /* not __hpux */ -# ifndef alloca -extern char *alloca (); -# endif -# endif /* __hpux */ -# endif -# endif -# endif -# endif -#endif - -#endif /* _GL_ALLOCA_H */ diff --git a/jni/parted/libiconv/srclib/allocator.h b/jni/parted/libiconv/srclib/allocator.h deleted file mode 100755 index 3e698ce..0000000 --- a/jni/parted/libiconv/srclib/allocator.h +++ /dev/null @@ -1,58 +0,0 @@ -/* Memory allocators such as malloc+free. - - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef _GL_ALLOCATOR_H -#define _GL_ALLOCATOR_H - -#include - -/* An object describing a memory allocator family. */ - -struct allocator -{ - /* Do not use GCC attributes such as __attribute__ ((malloc)) with - the function types pointed at by these members, because these - attributes do not work with pointers to functions. See - . */ - - /* Call ALLOCATE to allocate memory, like 'malloc'. On failure ALLOCATE - should return NULL, though not necessarily set errno. When given - a zero size it may return NULL even if successful. */ - void *(*allocate) (size_t); - - /* If nonnull, call REALLOCATE to reallocate memory, like 'realloc'. - On failure REALLOCATE should return NULL, though not necessarily set - errno. When given a zero size it may return NULL even if - successful. */ - void *(*reallocate) (void *, size_t); - - /* Call FREE to free memory, like 'free'. */ - void (*free) (void *); - - /* If nonnull, call DIE (SIZE) if MALLOC (SIZE) or REALLOC (..., - SIZE) fails. DIE should not return. SIZE should equal SIZE_MAX - if size_t overflow was detected while calculating sizes to be - passed to MALLOC or REALLOC. */ - void (*die) (size_t); -}; - -/* An allocator using the stdlib functions and a null DIE function. */ -extern struct allocator const stdlib_allocator; - -#endif /* _GL_ALLOCATOR_H */ diff --git a/jni/parted/libiconv/srclib/areadlink.h b/jni/parted/libiconv/srclib/areadlink.h deleted file mode 100755 index 1518d74..0000000 --- a/jni/parted/libiconv/srclib/areadlink.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Read symbolic links without size limitation. - - Copyright (C) 2001, 2003-2004, 2007, 2009-2022 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Jim Meyering */ - -#include - -extern char *areadlink (char const *filename) - _GL_ATTRIBUTE_DEALLOC_FREE; -extern char *areadlink_with_size (char const *filename, size_t size_hint) - _GL_ATTRIBUTE_DEALLOC_FREE; - -#if GNULIB_AREADLINKAT -extern char *areadlinkat (int fd, char const *filename) - _GL_ATTRIBUTE_DEALLOC_FREE; -#endif - -#if GNULIB_AREADLINKAT_WITH_SIZE -extern char *areadlinkat_with_size (int fd, char const *filename, - size_t size_hint) - _GL_ATTRIBUTE_DEALLOC_FREE; -#endif diff --git a/jni/parted/libiconv/srclib/arg-nonnull.h b/jni/parted/libiconv/srclib/arg-nonnull.h deleted file mode 100755 index e4513ef..0000000 --- a/jni/parted/libiconv/srclib/arg-nonnull.h +++ /dev/null @@ -1,26 +0,0 @@ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif diff --git a/jni/parted/libiconv/srclib/basename-lgpl.h b/jni/parted/libiconv/srclib/basename-lgpl.h deleted file mode 100755 index 5569f21..0000000 --- a/jni/parted/libiconv/srclib/basename-lgpl.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Extract the last component (base name) of a file name. - - Copyright (C) 1998, 2001, 2003-2006, 2009-2022 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _BASENAME_LGPL_H -#define _BASENAME_LGPL_H - -#include - -#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT -# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Return the address of the last file name component of FILENAME. - If FILENAME has some trailing slash(es), they are considered to be - part of the last component. - If FILENAME has no relative file name components because it is a file - system root, return the empty string. - Examples: - FILENAME RESULT - "foo.c" "foo.c" - "foo/bar.c" "bar.c" - "/foo/bar.c" "bar.c" - "foo/bar/" "bar/" - "foo/bar//" "bar//" - "/" "" - "//" "" - "" "" - The return value is a tail of the given FILENAME; do NOT free() it! */ - -/* This function was traditionally called 'basename', but we avoid this - function name because - * Various platforms have different functions in their libc. - In particular, the glibc basename(), defined in , does - not consider trailing slashes to be part of the component: - FILENAME RESULT - "foo/bar/" "" - "foo/bar//" "" - * The 'basename' command eliminates trailing slashes and for a root - produces a non-empty result: - FILENAME RESULT - "foo/bar/" "bar" - "foo/bar//" "bar" - "/" "/" - "//" "/" - */ -extern char *last_component (char const *filename) _GL_ATTRIBUTE_PURE; - -/* Return the length of the basename FILENAME. - Typically FILENAME is the value returned by base_name or last_component. - Act like strlen (FILENAME), except omit all trailing slashes. */ -extern size_t base_len (char const *filename) _GL_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* _BASENAME_LGPL_H */ diff --git a/jni/parted/libiconv/srclib/binary-io.h b/jni/parted/libiconv/srclib/binary-io.h deleted file mode 100755 index 5b7661e..0000000 --- a/jni/parted/libiconv/srclib/binary-io.h +++ /dev/null @@ -1,77 +0,0 @@ -/* Binary mode I/O. - Copyright (C) 2001, 2003, 2005, 2008-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _BINARY_H -#define _BINARY_H - -/* For systems that distinguish between text and binary I/O. - O_BINARY is guaranteed by the gnulib . */ -#include - -/* The MSVC7 doesn't like to be included after '#define fileno ...', - so we include it here first. */ -#include - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef BINARY_IO_INLINE -# define BINARY_IO_INLINE _GL_INLINE -#endif - -#if O_BINARY -# if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ -# include /* declares setmode() */ -# define __gl_setmode setmode -# else -# define __gl_setmode _setmode -# undef fileno -# define fileno _fileno -# endif -#else - /* On reasonable systems, binary I/O is the only choice. */ - /* Use a function rather than a macro, to avoid gcc warnings - "warning: statement with no effect". */ -BINARY_IO_INLINE int -__gl_setmode (_GL_UNUSED int fd, _GL_UNUSED int mode) -{ - return O_BINARY; -} -#endif - -/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY. - Return the old mode if successful, -1 (setting errno) on failure. - Ordinarily this function would be called 'setmode', since that is - its old name on MS-Windows, but it is called 'set_binary_mode' here - to avoid colliding with a BSD function of another name. */ - -#if defined __DJGPP__ || defined __EMX__ -extern int set_binary_mode (int fd, int mode); -#else -BINARY_IO_INLINE int -set_binary_mode (int fd, int mode) -{ - return __gl_setmode (fd, mode); -} -#endif - -/* This macro is obsolescent. */ -#define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) - -_GL_INLINE_HEADER_END - -#endif /* _BINARY_H */ diff --git a/jni/parted/libiconv/srclib/c++defs.h b/jni/parted/libiconv/srclib/c++defs.h deleted file mode 100755 index ad18155..0000000 --- a/jni/parted/libiconv/srclib/c++defs.h +++ /dev/null @@ -1,331 +0,0 @@ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ diff --git a/jni/parted/libiconv/srclib/c-ctype.c b/jni/parted/libiconv/srclib/c-ctype.c deleted file mode 100755 index a247514..0000000 --- a/jni/parted/libiconv/srclib/c-ctype.c +++ /dev/null @@ -1,21 +0,0 @@ -/* Character handling in C locale. - - Copyright (C) 2003-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -#define C_CTYPE_INLINE _GL_EXTERN_INLINE -#include "c-ctype.h" diff --git a/jni/parted/libiconv/srclib/c-ctype.h b/jni/parted/libiconv/srclib/c-ctype.h deleted file mode 100755 index 1a4f603..0000000 --- a/jni/parted/libiconv/srclib/c-ctype.h +++ /dev/null @@ -1,366 +0,0 @@ -/* Character handling in C locale. - - These functions work like the corresponding functions in , - except that they have the C (POSIX) locale hardwired, whereas the - functions' behaviour depends on the current locale set via - setlocale. - - Copyright (C) 2000-2003, 2006, 2008-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef C_CTYPE_H -#define C_CTYPE_H - -#include - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef C_CTYPE_INLINE -# define C_CTYPE_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -/* The functions defined in this file assume the "C" locale and a character - set without diacritics (ASCII-US or EBCDIC-US or something like that). - Even if the "C" locale on a particular system is an extension of the ASCII - character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it - is ISO-8859-1), the functions in this file recognize only the ASCII - characters. */ - - -#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) -/* The character set is ASCII or one of its variants or extensions, not EBCDIC. - Testing the value of '\n' and '\r' is not relevant. */ -# define C_CTYPE_ASCII 1 -#elif ! (' ' == '\x40' && '0' == '\xf0' \ - && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \ - && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2') -# error "Only ASCII and EBCDIC are supported" -#endif - -#if 'A' < 0 -# error "EBCDIC and char is signed -- not supported" -#endif - -/* Cases for control characters. */ - -#define _C_CTYPE_CNTRL \ - case '\a': case '\b': case '\f': case '\n': \ - case '\r': case '\t': case '\v': \ - _C_CTYPE_OTHER_CNTRL - -/* ASCII control characters other than those with \-letter escapes. */ - -#if C_CTYPE_ASCII -# define _C_CTYPE_OTHER_CNTRL \ - case '\x00': case '\x01': case '\x02': case '\x03': \ - case '\x04': case '\x05': case '\x06': case '\x0e': \ - case '\x0f': case '\x10': case '\x11': case '\x12': \ - case '\x13': case '\x14': case '\x15': case '\x16': \ - case '\x17': case '\x18': case '\x19': case '\x1a': \ - case '\x1b': case '\x1c': case '\x1d': case '\x1e': \ - case '\x1f': case '\x7f' -#else - /* Use EBCDIC code page 1047's assignments for ASCII control chars; - assume all EBCDIC code pages agree about these assignments. */ -# define _C_CTYPE_OTHER_CNTRL \ - case '\x00': case '\x01': case '\x02': case '\x03': \ - case '\x07': case '\x0e': case '\x0f': case '\x10': \ - case '\x11': case '\x12': case '\x13': case '\x18': \ - case '\x19': case '\x1c': case '\x1d': case '\x1e': \ - case '\x1f': case '\x26': case '\x27': case '\x2d': \ - case '\x2e': case '\x32': case '\x37': case '\x3c': \ - case '\x3d': case '\x3f' -#endif - -/* Cases for lowercase hex letters, and lowercase letters, all offset by N. */ - -#define _C_CTYPE_LOWER_A_THRU_F_N(N) \ - case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \ - case 'e' + (N): case 'f' + (N) -#define _C_CTYPE_LOWER_N(N) \ - _C_CTYPE_LOWER_A_THRU_F_N(N): \ - case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \ - case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \ - case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \ - case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \ - case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N) - -/* Cases for hex letters, digits, lower, punct, and upper. */ - -#define _C_CTYPE_A_THRU_F \ - _C_CTYPE_LOWER_A_THRU_F_N (0): \ - _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a') -#define _C_CTYPE_DIGIT \ - case '0': case '1': case '2': case '3': \ - case '4': case '5': case '6': case '7': \ - case '8': case '9' -#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0) -#define _C_CTYPE_PUNCT \ - case '!': case '"': case '#': case '$': \ - case '%': case '&': case '\'': case '(': \ - case ')': case '*': case '+': case ',': \ - case '-': case '.': case '/': case ':': \ - case ';': case '<': case '=': case '>': \ - case '?': case '@': case '[': case '\\': \ - case ']': case '^': case '_': case '`': \ - case '{': case '|': case '}': case '~' -#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a') - - -/* Function definitions. */ - -/* Unlike the functions in , which require an argument in the range - of the 'unsigned char' type, the functions here operate on values that are - in the 'unsigned char' range or in the 'char' range. In other words, - when you have a 'char' value, you need to cast it before using it as - argument to a function: - - const char *s = ...; - if (isalpha ((unsigned char) *s)) ... - - but you don't need to cast it for the functions defined in this file: - - const char *s = ...; - if (c_isalpha (*s)) ... - */ - -C_CTYPE_INLINE bool -c_isalnum (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isalpha (int c) -{ - switch (c) - { - _C_CTYPE_LOWER: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -/* The function isascii is not locale dependent. - Its use in EBCDIC is questionable. */ -C_CTYPE_INLINE bool -c_isascii (int c) -{ - switch (c) - { - case ' ': - _C_CTYPE_CNTRL: - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_PUNCT: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isblank (int c) -{ - return c == ' ' || c == '\t'; -} - -C_CTYPE_INLINE bool -c_iscntrl (int c) -{ - switch (c) - { - _C_CTYPE_CNTRL: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isdigit (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isgraph (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_PUNCT: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_islower (int c) -{ - switch (c) - { - _C_CTYPE_LOWER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isprint (int c) -{ - switch (c) - { - case ' ': - _C_CTYPE_DIGIT: - _C_CTYPE_LOWER: - _C_CTYPE_PUNCT: - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_ispunct (int c) -{ - switch (c) - { - _C_CTYPE_PUNCT: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isspace (int c) -{ - switch (c) - { - case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isupper (int c) -{ - switch (c) - { - _C_CTYPE_UPPER: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE bool -c_isxdigit (int c) -{ - switch (c) - { - _C_CTYPE_DIGIT: - _C_CTYPE_A_THRU_F: - return true; - default: - return false; - } -} - -C_CTYPE_INLINE int -c_tolower (int c) -{ - switch (c) - { - _C_CTYPE_UPPER: - return c - 'A' + 'a'; - default: - return c; - } -} - -C_CTYPE_INLINE int -c_toupper (int c) -{ - switch (c) - { - _C_CTYPE_LOWER: - return c - 'a' + 'A'; - default: - return c; - } -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif /* C_CTYPE_H */ diff --git a/jni/parted/libiconv/srclib/careadlinkat.h b/jni/parted/libiconv/srclib/careadlinkat.h deleted file mode 100755 index 2b559b2..0000000 --- a/jni/parted/libiconv/srclib/careadlinkat.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Read symbolic links into a buffer without size limitation, relative to fd. - - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ - -#ifndef _GL_CAREADLINKAT_H -#define _GL_CAREADLINKAT_H - -#include -#include - -struct allocator; - -/* Assuming the current directory is FD, get the symbolic link value - of FILENAME as a null-terminated string and put it into a buffer. - If FD is AT_FDCWD, FILENAME is interpreted relative to the current - working directory, as in openat. - - If the link is small enough to fit into BUFFER put it there. - BUFFER's size is BUFFER_SIZE, and BUFFER can be null - if BUFFER_SIZE is zero. - - If the link is not small, put it into a dynamically allocated - buffer managed by ALLOC. It is the caller's responsibility to free - the returned value if it is nonnull and is not BUFFER. - - The PREADLINKAT function specifies how to read links. It operates - like POSIX readlinkat() - - but can assume that its first argument is the same as FD. - - If successful, return the buffer address; otherwise return NULL and - set errno. */ - -char *careadlinkat (int fd, char const *filename, - char *restrict buffer, size_t buffer_size, - struct allocator const *alloc, - ssize_t (*preadlinkat) (int, char const *, - char *, size_t)); - -/* Suitable value for careadlinkat's FD argument. */ -#if HAVE_READLINKAT -/* AT_FDCWD is declared in . */ -#else -/* Define AT_FDCWD independently, so that the careadlinkat module does - not depend on the fcntl-h module. We might as well use the same value - as fcntl-h. */ -# ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -# endif -#endif - -#endif /* _GL_CAREADLINKAT_H */ diff --git a/jni/parted/libiconv/srclib/cdefs.h b/jni/parted/libiconv/srclib/cdefs.h deleted file mode 100755 index 7b8ed5b..0000000 --- a/jni/parted/libiconv/srclib/cdefs.h +++ /dev/null @@ -1,707 +0,0 @@ -/* Copyright (C) 1992-2022 Free Software Foundation, Inc. - Copyright The GNU Toolchain Authors. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _SYS_CDEFS_H -#define _SYS_CDEFS_H 1 - -/* We are almost always included from features.h. */ -#ifndef _FEATURES_H -# include -#endif - -/* The GNU libc does not support any K&R compilers or the traditional mode - of ISO C compilers anymore. Check for some of the combinations not - supported anymore. */ -#if defined __GNUC__ && !defined __STDC__ -# error "You need a ISO C conforming compiler to use the glibc headers" -#endif - -/* Some user header file might have defined this before. */ -#undef __P -#undef __PMT - -/* Compilers that lack __has_attribute may object to - #if defined __has_attribute && __has_attribute (...) - even though they do not need to evaluate the right-hand side of the &&. - Similarly for __has_builtin, etc. */ -#if (defined __has_attribute \ - && (!defined __clang_minor__ \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))) -# define __glibc_has_attribute(attr) __has_attribute (attr) -#else -# define __glibc_has_attribute(attr) 0 -#endif -#ifdef __has_builtin -# define __glibc_has_builtin(name) __has_builtin (name) -#else -# define __glibc_has_builtin(name) 0 -#endif -#ifdef __has_extension -# define __glibc_has_extension(ext) __has_extension (ext) -#else -# define __glibc_has_extension(ext) 0 -#endif - -#if defined __GNUC__ || defined __clang__ - -/* All functions, except those with callbacks or those that - synchronize memory, are leaf functions. */ -# if __GNUC_PREREQ (4, 6) && !defined _LIBC -# define __LEAF , __leaf__ -# define __LEAF_ATTR __attribute__ ((__leaf__)) -# else -# define __LEAF -# define __LEAF_ATTR -# endif - -/* GCC can always grok prototypes. For C++ programs we add throw() - to help it optimize the function calls. But this only works with - gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions - as non-throwing using a function attribute since programs can use - the -fexceptions options for C code as well. */ -# if !defined __cplusplus \ - && (__GNUC_PREREQ (3, 4) || __glibc_has_attribute (__nothrow__)) -# define __THROW __attribute__ ((__nothrow__ __LEAF)) -# define __THROWNL __attribute__ ((__nothrow__)) -# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct -# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct -# else -# if defined __cplusplus && (__GNUC_PREREQ (2,8) || __clang_major >= 4) -# if __cplusplus >= 201103L -# define __THROW noexcept (true) -# else -# define __THROW throw () -# endif -# define __THROWNL __THROW -# define __NTH(fct) __LEAF_ATTR fct __THROW -# define __NTHNL(fct) fct __THROW -# else -# define __THROW -# define __THROWNL -# define __NTH(fct) fct -# define __NTHNL(fct) fct -# endif -# endif - -#else /* Not GCC or clang. */ - -# if (defined __cplusplus \ - || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) -# define __inline inline -# else -# define __inline /* No inline functions. */ -# endif - -# define __THROW -# define __THROWNL -# define __NTH(fct) fct - -#endif /* GCC || clang. */ - -/* These two macros are not used in glibc anymore. They are kept here - only because some other projects expect the macros to be defined. */ -#define __P(args) args -#define __PMT(args) args - -/* For these things, GCC behaves the ANSI way normally, - and the non-ANSI way under -traditional. */ - -#define __CONCAT(x,y) x ## y -#define __STRING(x) #x - -/* This is not a typedef so `const __ptr_t' does the right thing. */ -#define __ptr_t void * - - -/* C++ needs to know that types and declarations are C, not C++. */ -#ifdef __cplusplus -# define __BEGIN_DECLS extern "C" { -# define __END_DECLS } -#else -# define __BEGIN_DECLS -# define __END_DECLS -#endif - - -/* Fortify support. */ -#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) -#define __bos0(ptr) __builtin_object_size (ptr, 0) - -/* Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. */ -#if __USE_FORTIFY_LEVEL == 3 && (__glibc_clang_prereq (9, 0) \ - || __GNUC_PREREQ (12, 0)) -# define __glibc_objsize0(__o) __builtin_dynamic_object_size (__o, 0) -# define __glibc_objsize(__o) __builtin_dynamic_object_size (__o, 1) -#else -# define __glibc_objsize0(__o) __bos0 (__o) -# define __glibc_objsize(__o) __bos (__o) -#endif - -/* Compile time conditions to choose between the regular, _chk and _chk_warn - variants. These conditions should get evaluated to constant and optimized - away. */ - -#define __glibc_safe_len_cond(__l, __s, __osz) ((__l) <= (__osz) / (__s)) -#define __glibc_unsigned_or_positive(__l) \ - ((__typeof (__l)) 0 < (__typeof (__l)) -1 \ - || (__builtin_constant_p (__l) && (__l) > 0)) - -/* Length is known to be safe at compile time if the __L * __S <= __OBJSZ - condition can be folded to a constant and if it is true, or unknown (-1) */ -#define __glibc_safe_or_unknown_len(__l, __s, __osz) \ - ((__osz) == (__SIZE_TYPE__) -1 \ - || (__glibc_unsigned_or_positive (__l) \ - && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ - (__s), (__osz))) \ - && __glibc_safe_len_cond ((__SIZE_TYPE__) (__l), (__s), (__osz)))) - -/* Conversely, we know at compile time that the length is unsafe if the - __L * __S <= __OBJSZ condition can be folded to a constant and if it is - false. */ -#define __glibc_unsafe_len(__l, __s, __osz) \ - (__glibc_unsigned_or_positive (__l) \ - && __builtin_constant_p (__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), \ - __s, __osz)) \ - && !__glibc_safe_len_cond ((__SIZE_TYPE__) (__l), __s, __osz)) - -/* Fortify function f. __f_alias, __f_chk and __f_chk_warn must be - declared. */ - -#define __glibc_fortify(f, __l, __s, __osz, ...) \ - (__glibc_safe_or_unknown_len (__l, __s, __osz) \ - ? __ ## f ## _alias (__VA_ARGS__) \ - : (__glibc_unsafe_len (__l, __s, __osz) \ - ? __ ## f ## _chk_warn (__VA_ARGS__, __osz) \ - : __ ## f ## _chk (__VA_ARGS__, __osz))) \ - -/* Fortify function f, where object size argument passed to f is the number of - elements and not total size. */ - -#define __glibc_fortify_n(f, __l, __s, __osz, ...) \ - (__glibc_safe_or_unknown_len (__l, __s, __osz) \ - ? __ ## f ## _alias (__VA_ARGS__) \ - : (__glibc_unsafe_len (__l, __s, __osz) \ - ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ - : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ - -#if __GNUC_PREREQ (4,3) -# define __warnattr(msg) __attribute__((__warning__ (msg))) -# define __errordecl(name, msg) \ - extern void name (void) __attribute__((__error__ (msg))) -#else -# define __warnattr(msg) -# define __errordecl(name, msg) extern void name (void) -#endif - -/* Support for flexible arrays. - Headers that should use flexible arrays only if they're "real" - (e.g. only if they won't affect sizeof()) should test - #if __glibc_c99_flexarr_available. */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc -# define __flexarr [] -# define __glibc_c99_flexarr_available 1 -#elif __GNUC_PREREQ (2,97) || defined __clang__ -/* GCC 2.97 and clang support C99 flexible array members as an extension, - even when in C89 mode or compiling C++ (any version). */ -# define __flexarr [] -# define __glibc_c99_flexarr_available 1 -#elif defined __GNUC__ -/* Pre-2.97 GCC did not support C99 flexible arrays but did have - an equivalent extension with slightly different notation. */ -# define __flexarr [0] -# define __glibc_c99_flexarr_available 1 -#else -/* Some other non-C99 compiler. Approximate with [1]. */ -# define __flexarr [1] -# define __glibc_c99_flexarr_available 0 -#endif - - -/* __asm__ ("xyz") is used throughout the headers to rename functions - at the assembly language level. This is wrapped by the __REDIRECT - macro, in order to support compilers that can do this some other - way. When compilers don't support asm-names at all, we have to do - preprocessor tricks instead (which don't have exactly the right - semantics, but it's the best we can do). - - Example: - int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ - -#if (defined __GNUC__ && __GNUC__ >= 2) || (__clang_major__ >= 4) - -# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) -# ifdef __cplusplus -# define __REDIRECT_NTH(name, proto, alias) \ - name proto __THROW __asm__ (__ASMNAME (#alias)) -# define __REDIRECT_NTHNL(name, proto, alias) \ - name proto __THROWNL __asm__ (__ASMNAME (#alias)) -# else -# define __REDIRECT_NTH(name, proto, alias) \ - name proto __asm__ (__ASMNAME (#alias)) __THROW -# define __REDIRECT_NTHNL(name, proto, alias) \ - name proto __asm__ (__ASMNAME (#alias)) __THROWNL -# endif -# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) -# define __ASMNAME2(prefix, cname) __STRING (prefix) cname - -/* -#elif __SOME_OTHER_COMPILER__ - -# define __REDIRECT(name, proto, alias) name proto; \ - _Pragma("let " #name " = " #alias) -*/ -#endif - -/* GCC and clang have various useful declarations that can be made with - the '__attribute__' syntax. All of the ways we use this do fine if - they are omitted for compilers that don't understand it. */ -#if !(defined __GNUC__ || defined __clang__) -# define __attribute__(xyz) /* Ignore */ -#endif - -/* At some point during the gcc 2.96 development the `malloc' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__malloc__) -# define __attribute_malloc__ __attribute__ ((__malloc__)) -#else -# define __attribute_malloc__ /* Ignore */ -#endif - -/* Tell the compiler which arguments to an allocation function - indicate the size of the allocation. */ -#if __GNUC_PREREQ (4, 3) -# define __attribute_alloc_size__(params) \ - __attribute__ ((__alloc_size__ params)) -#else -# define __attribute_alloc_size__(params) /* Ignore. */ -#endif - -/* Tell the compiler which argument to an allocation function - indicates the alignment of the allocation. */ -#if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__alloc_align__) -# define __attribute_alloc_align__(param) \ - __attribute__ ((__alloc_align__ param)) -#else -# define __attribute_alloc_align__(param) /* Ignore. */ -#endif - -/* At some point during the gcc 2.96 development the `pure' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (2,96) || __glibc_has_attribute (__pure__) -# define __attribute_pure__ __attribute__ ((__pure__)) -#else -# define __attribute_pure__ /* Ignore */ -#endif - -/* This declaration tells the compiler that the value is constant. */ -#if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__) -# define __attribute_const__ __attribute__ ((__const__)) -#else -# define __attribute_const__ /* Ignore */ -#endif - -#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__) -# define __attribute_maybe_unused__ __attribute__ ((__unused__)) -#else -# define __attribute_maybe_unused__ /* Ignore */ -#endif - -/* At some point during the gcc 3.1 development the `used' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. */ -#if __GNUC_PREREQ (3,1) || __glibc_has_attribute (__used__) -# define __attribute_used__ __attribute__ ((__used__)) -# define __attribute_noinline__ __attribute__ ((__noinline__)) -#else -# define __attribute_used__ __attribute__ ((__unused__)) -# define __attribute_noinline__ /* Ignore */ -#endif - -/* Since version 3.2, gcc allows marking deprecated functions. */ -#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__deprecated__) -# define __attribute_deprecated__ __attribute__ ((__deprecated__)) -#else -# define __attribute_deprecated__ /* Ignore */ -#endif - -/* Since version 4.5, gcc also allows one to specify the message printed - when a deprecated function is used. clang claims to be gcc 4.2, but - may also support this feature. */ -#if __GNUC_PREREQ (4,5) \ - || __glibc_has_extension (__attribute_deprecated_with_message__) -# define __attribute_deprecated_msg__(msg) \ - __attribute__ ((__deprecated__ (msg))) -#else -# define __attribute_deprecated_msg__(msg) __attribute_deprecated__ -#endif - -/* At some point during the gcc 2.8 development the `format_arg' attribute - for functions was introduced. We don't want to use it unconditionally - (although this would be possible) since it generates warnings. - If several `format_arg' attributes are given for the same function, in - gcc-3.0 and older, all but the last one are ignored. In newer gccs, - all designated arguments are considered. */ -#if __GNUC_PREREQ (2,8) || __glibc_has_attribute (__format_arg__) -# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) -#else -# define __attribute_format_arg__(x) /* Ignore */ -#endif - -/* At some point during the gcc 2.97 development the `strfmon' format - attribute for functions was introduced. We don't want to use it - unconditionally (although this would be possible) since it - generates warnings. */ -#if __GNUC_PREREQ (2,97) || __glibc_has_attribute (__format__) -# define __attribute_format_strfmon__(a,b) \ - __attribute__ ((__format__ (__strfmon__, a, b))) -#else -# define __attribute_format_strfmon__(a,b) /* Ignore */ -#endif - -/* The nonnull function attribute marks pointer parameters that - must not be NULL. This has the name __nonnull in glibc, - and __attribute_nonnull__ in files shared with Gnulib to avoid - collision with a different __nonnull in DragonFlyBSD 5.9. */ -#ifndef __attribute_nonnull__ -# if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__) -# define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params)) -# else -# define __attribute_nonnull__(params) -# endif -#endif -#ifndef __nonnull -# define __nonnull(params) __attribute_nonnull__ (params) -#endif - -/* The returns_nonnull function attribute marks the return type of the function - as always being non-null. */ -#ifndef __returns_nonnull -# if __GNUC_PREREQ (4, 9) || __glibc_has_attribute (__returns_nonnull__) -# define __returns_nonnull __attribute__ ((__returns_nonnull__)) -# else -# define __returns_nonnull -# endif -#endif - -/* If fortification mode, we warn about unused results of certain - function calls which can lead to problems. */ -#if __GNUC_PREREQ (3,4) || __glibc_has_attribute (__warn_unused_result__) -# define __attribute_warn_unused_result__ \ - __attribute__ ((__warn_unused_result__)) -# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 -# define __wur __attribute_warn_unused_result__ -# endif -#else -# define __attribute_warn_unused_result__ /* empty */ -#endif -#ifndef __wur -# define __wur /* Ignore */ -#endif - -/* Forces a function to be always inlined. */ -#if __GNUC_PREREQ (3,2) || __glibc_has_attribute (__always_inline__) -/* The Linux kernel defines __always_inline in stddef.h (283d7573), and - it conflicts with this definition. Therefore undefine it first to - allow either header to be included first. */ -# undef __always_inline -# define __always_inline __inline __attribute__ ((__always_inline__)) -#else -# undef __always_inline -# define __always_inline __inline -#endif - -/* Associate error messages with the source location of the call site rather - than with the source location inside the function. */ -#if __GNUC_PREREQ (4,3) || __glibc_has_attribute (__artificial__) -# define __attribute_artificial__ __attribute__ ((__artificial__)) -#else -# define __attribute_artificial__ /* Ignore */ -#endif - -/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ - or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions - older than 4.3 may define these macros and still not guarantee GNU inlining - semantics. - - clang++ identifies itself as gcc-4.2, but has support for GNU inlining - semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and - __GNUC_GNU_INLINE__ macro definitions. */ -#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ - || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ - || defined __GNUC_GNU_INLINE__))) -# if defined __GNUC_STDC_INLINE__ || defined __cplusplus -# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) -# define __extern_always_inline \ - extern __always_inline __attribute__ ((__gnu_inline__)) -# else -# define __extern_inline extern __inline -# define __extern_always_inline extern __always_inline -# endif -#endif - -#ifdef __extern_always_inline -# define __fortify_function __extern_always_inline __attribute_artificial__ -#endif - -/* GCC 4.3 and above allow passing all anonymous arguments of an - __extern_always_inline function to some other vararg function. */ -#if __GNUC_PREREQ (4,3) -# define __va_arg_pack() __builtin_va_arg_pack () -# define __va_arg_pack_len() __builtin_va_arg_pack_len () -#endif - -/* It is possible to compile containing GCC extensions even if GCC is - run in pedantic mode if the uses are carefully marked using the - `__extension__' keyword. But this is not generally available before - version 2.8. */ -#if !(__GNUC_PREREQ (2,8) || defined __clang__) -# define __extension__ /* Ignore */ -#endif - -/* __restrict is known in EGCS 1.2 and above, and in clang. - It works also in C++ mode (outside of arrays), but only when spelled - as '__restrict', not 'restrict'. */ -#if !(__GNUC_PREREQ (2,92) || __clang_major__ >= 3) -# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -# define __restrict restrict -# else -# define __restrict /* Ignore */ -# endif -#endif - -/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is - array_name[restrict] - GCC 3.1 and clang support this. - This syntax is not usable in C++ mode. */ -#if (__GNUC_PREREQ (3,1) || __clang_major__ >= 3) && !defined __cplusplus -# define __restrict_arr __restrict -#else -# ifdef __GNUC__ -# define __restrict_arr /* Not supported in old GCC. */ -# else -# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L -# define __restrict_arr restrict -# else -/* Some other non-C99 compiler. */ -# define __restrict_arr /* Not supported. */ -# endif -# endif -#endif - -#if (__GNUC__ >= 3) || __glibc_has_builtin (__builtin_expect) -# define __glibc_unlikely(cond) __builtin_expect ((cond), 0) -# define __glibc_likely(cond) __builtin_expect ((cond), 1) -#else -# define __glibc_unlikely(cond) (cond) -# define __glibc_likely(cond) (cond) -#endif - -#if (!defined _Noreturn \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ - && !(__GNUC_PREREQ (4,7) \ - || (3 < __clang_major__ + (5 <= __clang_minor__)))) -# if __GNUC_PREREQ (2,8) -# define _Noreturn __attribute__ ((__noreturn__)) -# else -# define _Noreturn -# endif -#endif - -#if __GNUC_PREREQ (8, 0) -/* Describes a char array whose address can safely be passed as the first - argument to strncpy and strncat, as the char array is not necessarily - a NUL-terminated string. */ -# define __attribute_nonstring__ __attribute__ ((__nonstring__)) -#else -# define __attribute_nonstring__ -#endif - -/* Undefine (also defined in libc-symbols.h). */ -#undef __attribute_copy__ -#if __GNUC_PREREQ (9, 0) -/* Copies attributes from the declaration or type referenced by - the argument. */ -# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) -#else -# define __attribute_copy__(arg) -#endif - -#if (!defined _Static_assert && !defined __cplusplus \ - && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ - && (!(__GNUC_PREREQ (4, 6) || __clang_major__ >= 4) \ - || defined __STRICT_ANSI__)) -# define _Static_assert(expr, diagnostic) \ - extern int (*__Static_assert_function (void)) \ - [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] -#endif - -/* Gnulib avoids including these, as they don't work on non-glibc or - older glibc platforms. */ -#ifndef __GNULIB_CDEFS -# include -# include -#endif - -#if __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 1 -# ifdef __REDIRECT - -/* Alias name defined automatically. */ -# define __LDBL_REDIR(name, proto) ... unused__ldbl_redir -# define __LDBL_REDIR_DECL(name) \ - extern __typeof (name) name __asm (__ASMNAME ("__" #name "ieee128")); - -/* Alias name defined automatically, with leading underscores. */ -# define __LDBL_REDIR2_DECL(name) \ - extern __typeof (__##name) __##name \ - __asm (__ASMNAME ("__" #name "ieee128")); - -/* Alias name defined manually. */ -# define __LDBL_REDIR1(name, proto, alias) ... unused__ldbl_redir1 -# define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); - -# define __LDBL_REDIR1_NTH(name, proto, alias) \ - __REDIRECT_NTH (name, proto, alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __LDBL_REDIR1_NTH (name, proto, __##alias##ieee128) - -/* Unused. */ -# define __REDIRECT_LDBL(name, proto, alias) ... unused__redirect_ldbl -# define __LDBL_REDIR_NTH(name, proto) ... unused__ldbl_redir_nth - -# else -_Static_assert (0, "IEEE 128-bits long double requires redirection on this platform"); -# endif -#elif defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH -# define __LDBL_COMPAT 1 -# ifdef __REDIRECT -# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) -# define __LDBL_REDIR(name, proto) \ - __LDBL_REDIR1 (name, proto, __nldbl_##name) -# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) -# define __LDBL_REDIR_NTH(name, proto) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) -# define __LDBL_REDIR2_DECL(name) \ - extern __typeof (__##name) __##name __asm (__ASMNAME ("__nldbl___" #name)); -# define __LDBL_REDIR1_DECL(name, alias) \ - extern __typeof (name) name __asm (__ASMNAME (#alias)); -# define __LDBL_REDIR_DECL(name) \ - extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); -# define __REDIRECT_LDBL(name, proto, alias) \ - __LDBL_REDIR1 (name, proto, __nldbl_##alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) -# endif -#endif -#if (!defined __LDBL_COMPAT && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0) \ - || !defined __REDIRECT -# define __LDBL_REDIR1(name, proto, alias) name proto -# define __LDBL_REDIR(name, proto) name proto -# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW -# define __LDBL_REDIR_NTH(name, proto) name proto __THROW -# define __LDBL_REDIR2_DECL(name) -# define __LDBL_REDIR_DECL(name) -# ifdef __REDIRECT -# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) -# define __REDIRECT_NTH_LDBL(name, proto, alias) \ - __REDIRECT_NTH (name, proto, alias) -# endif -#endif - -/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is - intended for use in preprocessor macros. - - Note: MESSAGE must be a _single_ string; concatenation of string - literals is not supported. */ -#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) -# define __glibc_macro_warning1(message) _Pragma (#message) -# define __glibc_macro_warning(message) \ - __glibc_macro_warning1 (GCC warning message) -#else -# define __glibc_macro_warning(msg) -#endif - -/* Generic selection (ISO C11) is a C-only feature, available in GCC - since version 4.9. Previous versions do not provide generic - selection, even though they might set __STDC_VERSION__ to 201112L, - when in -std=c11 mode. Thus, we must check for !defined __GNUC__ - when testing __STDC_VERSION__ for generic selection support. - On the other hand, Clang also defines __GNUC__, so a clang-specific - check is required to enable the use of generic selection. */ -#if !defined __cplusplus \ - && (__GNUC_PREREQ (4, 9) \ - || __glibc_has_extension (c_generic_selections) \ - || (!defined __GNUC__ && defined __STDC_VERSION__ \ - && __STDC_VERSION__ >= 201112L)) -# define __HAVE_GENERIC_SELECTION 1 -#else -# define __HAVE_GENERIC_SELECTION 0 -#endif - -#if __GNUC_PREREQ (10, 0) -/* Designates a 1-based positional argument ref-index of pointer type - that can be used to access size-index elements of the pointed-to - array according to access mode, or at least one element when - size-index is not provided: - access (access-mode, [, ]) */ -# define __attr_access(x) __attribute__ ((__access__ x)) -/* For _FORTIFY_SOURCE == 3 we use __builtin_dynamic_object_size, which may - use the access attribute to get object sizes from function definition - arguments, so we can't use them on functions we fortify. Drop the object - size hints for such functions. */ -# if __USE_FORTIFY_LEVEL == 3 -# define __fortified_attr_access(a, o, s) __attribute__ ((__access__ (a, o))) -# else -# define __fortified_attr_access(a, o, s) __attr_access ((a, o, s)) -# endif -# if __GNUC_PREREQ (11, 0) -# define __attr_access_none(argno) __attribute__ ((__access__ (__none__, argno))) -# else -# define __attr_access_none(argno) -# endif -#else -# define __fortified_attr_access(a, o, s) -# define __attr_access(x) -# define __attr_access_none(argno) -#endif - -#if __GNUC_PREREQ (11, 0) -/* Designates dealloc as a function to call to deallocate objects - allocated by the declared function. */ -# define __attr_dealloc(dealloc, argno) \ - __attribute__ ((__malloc__ (dealloc, argno))) -# define __attr_dealloc_free __attr_dealloc (__builtin_free, 1) -#else -# define __attr_dealloc(dealloc, argno) -# define __attr_dealloc_free -#endif - -/* Specify that a function such as setjmp or vfork may return - twice. */ -#if __GNUC_PREREQ (4, 1) -# define __attribute_returns_twice__ __attribute__ ((__returns_twice__)) -#else -# define __attribute_returns_twice__ /* Ignore. */ -#endif - -#endif /* sys/cdefs.h */ diff --git a/jni/parted/libiconv/srclib/cloexec.h b/jni/parted/libiconv/srclib/cloexec.h deleted file mode 100755 index 7a22d77..0000000 --- a/jni/parted/libiconv/srclib/cloexec.h +++ /dev/null @@ -1,36 +0,0 @@ -/* cloexec.c - set or clear the close-on-exec descriptor flag - - Copyright (C) 2004, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true, - or clear the flag if VALUE is false. - Return 0 on success, or -1 on error with 'errno' set. - - Note that on MingW, this function does NOT protect DESC from being - inherited into spawned children. Instead, either use dup_cloexec - followed by closing the original DESC, or use interfaces such as - open or pipe2 that accept flags like O_CLOEXEC to create DESC - non-inheritable in the first place. */ - -int set_cloexec_flag (int desc, bool value); - -/* Duplicates a file handle FD, while marking the copy to be closed - prior to exec or spawn. Returns -1 and sets errno if FD could not - be duplicated. */ - -int dup_cloexec (int fd); diff --git a/jni/parted/libiconv/srclib/close.c b/jni/parted/libiconv/srclib/close.c deleted file mode 100755 index 44990ba..0000000 --- a/jni/parted/libiconv/srclib/close.c +++ /dev/null @@ -1,75 +0,0 @@ -/* close replacement. - Copyright (C) 2008-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include - -#include "fd-hook.h" -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -#endif - -#undef close - -#if defined _WIN32 && !defined __CYGWIN__ -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -close_nothrow (int fd) -{ - int result; - - TRY_MSVC_INVAL - { - result = _close (fd); - } - CATCH_MSVC_INVAL - { - result = -1; - errno = EBADF; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define close_nothrow _close -# endif -#else -# define close_nothrow close -#endif - -/* Override close() to call into other gnulib modules. */ - -int -rpl_close (int fd) -{ -#if WINDOWS_SOCKETS - int retval = execute_all_close_hooks (close_nothrow, fd); -#else - int retval = close_nothrow (fd); -#endif - -#if REPLACE_FCHDIR - if (retval >= 0) - _gl_unregister_fd (fd); -#endif - - return retval; -} diff --git a/jni/parted/libiconv/srclib/dup2.c b/jni/parted/libiconv/srclib/dup2.c deleted file mode 100755 index 1c766ab..0000000 --- a/jni/parted/libiconv/srclib/dup2.c +++ /dev/null @@ -1,189 +0,0 @@ -/* Duplicate an open file descriptor to a specified file descriptor. - - Copyright (C) 1999, 2004-2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Paul Eggert */ - -#include - -/* Specification. */ -#include - -#include -#include - -#undef dup2 - -#if defined _WIN32 && ! defined __CYGWIN__ - -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -# endif - -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -dup2_nothrow (int fd, int desired_fd) -{ - int result; - - TRY_MSVC_INVAL - { - result = _dup2 (fd, desired_fd); - } - CATCH_MSVC_INVAL - { - errno = EBADF; - result = -1; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define dup2_nothrow _dup2 -# endif - -static int -ms_windows_dup2 (int fd, int desired_fd) -{ - int result; - - /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, - dup2 (fd, fd) returns 0, but all further attempts to use fd in - future dup2 calls will hang. */ - if (fd == desired_fd) - { - if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) - { - errno = EBADF; - return -1; - } - return fd; - } - - /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: - https://bugs.winehq.org/show_bug.cgi?id=21289 */ - if (desired_fd < 0) - { - errno = EBADF; - return -1; - } - - result = dup2_nothrow (fd, desired_fd); - - if (result == 0) - result = desired_fd; - - return result; -} - -# define dup2 ms_windows_dup2 - -#elif defined __KLIBC__ - -# include - -static int -klibc_dup2dirfd (int fd, int desired_fd) -{ - int tempfd; - int dupfd; - - tempfd = open ("NUL", O_RDONLY); - if (tempfd == -1) - return -1; - - if (tempfd == desired_fd) - { - close (tempfd); - - char path[_MAX_PATH]; - if (__libc_Back_ioFHToPath (fd, path, sizeof (path))) - return -1; - - return open(path, O_RDONLY); - } - - dupfd = klibc_dup2dirfd (fd, desired_fd); - - close (tempfd); - - return dupfd; -} - -static int -klibc_dup2 (int fd, int desired_fd) -{ - int dupfd; - struct stat sbuf; - - dupfd = dup2 (fd, desired_fd); - if (dupfd == -1 && errno == ENOTSUP \ - && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) - { - close (desired_fd); - - return klibc_dup2dirfd (fd, desired_fd); - } - - return dupfd; -} - -# define dup2 klibc_dup2 -#endif - -int -rpl_dup2 (int fd, int desired_fd) -{ - int result; - -#ifdef F_GETFL - /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. - On Cygwin 1.5.x, dup2 (1, 1) returns 0. - On Cygwin 1.7.17, dup2 (1, -1) dumps core. - On Cygwin 1.7.25, dup2 (1, 256) can dump core. - On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ -# if HAVE_SETDTABLESIZE - setdtablesize (desired_fd + 1); -# endif - if (desired_fd < 0) - fd = desired_fd; - if (fd == desired_fd) - return fcntl (fd, F_GETFL) == -1 ? -1 : fd; -#endif - - result = dup2 (fd, desired_fd); - - /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ - if (result == -1 && errno == EMFILE) - errno = EBADF; -#if REPLACE_FCHDIR - if (fd != desired_fd && result != -1) - result = _gl_register_dup (fd, result); -#endif - return result; -} diff --git a/jni/parted/libiconv/srclib/eloop-threshold.h b/jni/parted/libiconv/srclib/eloop-threshold.h deleted file mode 100755 index 8b31457..0000000 --- a/jni/parted/libiconv/srclib/eloop-threshold.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Threshold at which to diagnose ELOOP. Generic version. - Copyright (C) 2012-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _ELOOP_THRESHOLD_H -#define _ELOOP_THRESHOLD_H 1 - -#include -#ifdef _LIBC -# include -# define _GL_ATTRIBUTE_CONST __attribute__ ((const)) -#else -# include -# include "minmax.h" -# define __sysconf sysconf -# if (!defined SYMLOOP_MAX \ - && ! (defined _SC_SYMLOOP_MAX && defined _POSIX_SYMLOOP_MAX)) -# define SYMLOOP_MAX 8 -# endif -#endif - -/* POSIX specifies SYMLOOP_MAX as the "Maximum number of symbolic - links that can be reliably traversed in the resolution of a - pathname in the absence of a loop." This makes it a minimum that - we should certainly accept. But it leaves open the possibility - that more might sometimes work--just not "reliably". - - For example, Linux implements a complex policy whereby there is a - small limit on the number of direct symlink traversals (a symlink - to a symlink to a symlink), but larger limit on the total number of - symlink traversals overall. Hence the SYMLOOP_MAX number should be - the small one, but the limit library functions enforce on users - should be the larger one. - - So, we use the larger of the reported SYMLOOP_MAX (if any) and our - own constant MIN_ELOOP_THRESHOLD, below. This constant should be - large enough that it never rules out a file name and directory tree - that the underlying system (i.e. calls to 'open' et al) would - resolve successfully. It should be small enough that actual loops - are detected without a huge number of iterations. */ - -#ifndef MIN_ELOOP_THRESHOLD -# define MIN_ELOOP_THRESHOLD 40 -#endif - -/* Return the maximum number of symlink traversals to permit - before diagnosing ELOOP. */ -static inline unsigned int _GL_ATTRIBUTE_CONST -__eloop_threshold (void) -{ -#ifdef SYMLOOP_MAX - const int symloop_max = SYMLOOP_MAX; -#else - /* The function is marked 'const' even though we use memory and - call a function, because sysconf is required to return the - same value in every call and so it must always be safe to - call __eloop_threshold exactly once and reuse the value. */ - static long int sysconf_symloop_max; - if (sysconf_symloop_max == 0) - sysconf_symloop_max = __sysconf (_SC_SYMLOOP_MAX); - const unsigned int symloop_max = (sysconf_symloop_max <= 0 - ? _POSIX_SYMLOOP_MAX - : sysconf_symloop_max); -#endif - - return MAX (symloop_max, MIN_ELOOP_THRESHOLD); -} - -#endif /* eloop-threshold.h */ diff --git a/jni/parted/libiconv/srclib/error.c b/jni/parted/libiconv/srclib/error.c deleted file mode 100755 index 272d45e..0000000 --- a/jni/parted/libiconv/srclib/error.c +++ /dev/null @@ -1,411 +0,0 @@ -/* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2007, 2009-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -/* Written by David MacKenzie . */ - -#if !_LIBC -# include -#endif - -#include "error.h" - -#include -#include -#include -#include - -#if !_LIBC && ENABLE_NLS -# include "gettext.h" -# define _(msgid) gettext (msgid) -#endif - -#ifdef _LIBC -# include -# include -# include -# include -# define mbsrtowcs __mbsrtowcs -# define USE_UNLOCKED_IO 0 -# define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(a, b) -# define _GL_ARG_NONNULL(a) -#else -# include "getprogname.h" -#endif - -#if USE_UNLOCKED_IO -# include "unlocked-io.h" -#endif - -#ifndef _ -# define _(String) String -#endif - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -void (*error_print_progname) (void); - -/* This variable is incremented each time 'error' is called. */ -unsigned int error_message_count; - -#ifdef _LIBC -/* In the GNU C library, there is a predefined variable for this. */ - -# define program_name program_invocation_name -# include -# include -# include - -/* In GNU libc we want do not want to use the common name 'error' directly. - Instead make it a weak alias. */ -extern void __error (int status, int errnum, const char *message, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -extern void __error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, - ...) - __attribute__ ((__format__ (__printf__, 5, 6))); -# define error __error -# define error_at_line __error_at_line - -# include -# define fflush(s) _IO_fflush (s) -# undef putc -# define putc(c, fp) _IO_putc (c, fp) - -# include - -#else /* not _LIBC */ - -# include -# include - -# if defined _WIN32 && ! defined __CYGWIN__ -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include -/* Get _get_osfhandle. */ -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif -# endif - -/* The gnulib override of fcntl is not needed in this file. */ -# undef fcntl - -# if !(GNULIB_STRERROR_R_POSIX || HAVE_DECL_STRERROR_R) -# ifndef HAVE_DECL_STRERROR_R -"this configure-time declaration test was not run" -# endif -# if STRERROR_R_CHAR_P -char *strerror_r (int errnum, char *buf, size_t buflen); -# else -int strerror_r (int errnum, char *buf, size_t buflen); -# endif -# endif - -# define program_name getprogname () - -# if GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r -# define __strerror_r strerror_r -# endif /* GNULIB_STRERROR_R_POSIX || HAVE_STRERROR_R || defined strerror_r */ -#endif /* not _LIBC */ - -#if !_LIBC -/* Return non-zero if FD is open. */ -static int -is_open (int fd) -{ -# if defined _WIN32 && ! defined __CYGWIN__ - /* On native Windows: The initial state of unassigned standard file - descriptors is that they are open but point to an INVALID_HANDLE_VALUE. - There is no fcntl, and the gnulib replacement fcntl does not support - F_GETFL. */ - return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; -# else -# ifndef F_GETFL -# error Please port fcntl to your platform -# endif - return 0 <= fcntl (fd, F_GETFL); -# endif -} -#endif - -static void -flush_stdout (void) -{ -#if !_LIBC - int stdout_fd; - -# if GNULIB_FREOPEN_SAFER - /* Use of gnulib's freopen-safer module normally ensures that - fileno (stdout) == 1 - whenever stdout is open. */ - stdout_fd = STDOUT_FILENO; -# else - /* POSIX states that fileno (stdout) after fclose is unspecified. But in - practice it is not a problem, because stdout is statically allocated and - the fd of a FILE stream is stored as a field in its allocated memory. */ - stdout_fd = fileno (stdout); -# endif - /* POSIX states that fflush (stdout) after fclose is unspecified; it - is safe in glibc, but not on all other platforms. fflush (NULL) - is always defined, but too draconian. */ - if (0 <= stdout_fd && is_open (stdout_fd)) -#endif - fflush (stdout); -} - -static void -print_errno_message (int errnum) -{ - char const *s; - -#if _LIBC || GNULIB_STRERROR_R_POSIX || defined HAVE_STRERROR_R - char errbuf[1024]; -# if _LIBC || (!GNULIB_STRERROR_R_POSIX && STRERROR_R_CHAR_P) - s = __strerror_r (errnum, errbuf, sizeof errbuf); -# else - if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) - s = errbuf; - else - s = 0; -# endif -#else - s = strerror (errnum); -#endif - -#if !_LIBC - if (! s) - s = _("Unknown system error"); -#endif - -#if _LIBC - __fxprintf (NULL, ": %s", s); -#else - fprintf (stderr, ": %s", s); -#endif -} - -static void _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) _GL_ARG_NONNULL ((3)) -error_tail (int status, int errnum, const char *message, va_list args) -{ -#if _LIBC - if (_IO_fwide (stderr, 0) > 0) - { - size_t len = strlen (message) + 1; - wchar_t *wmessage = NULL; - mbstate_t st; - size_t res; - const char *tmp; - bool use_malloc = false; - - while (1) - { - if (__libc_use_alloca (len * sizeof (wchar_t))) - wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); - else - { - if (!use_malloc) - wmessage = NULL; - - wchar_t *p = (wchar_t *) realloc (wmessage, - len * sizeof (wchar_t)); - if (p == NULL) - { - free (wmessage); - fputws_unlocked (L"out of memory\n", stderr); - return; - } - wmessage = p; - use_malloc = true; - } - - memset (&st, '\0', sizeof (st)); - tmp = message; - - res = mbsrtowcs (wmessage, &tmp, len, &st); - if (res != len) - break; - - if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0)) - { - /* This really should not happen if everything is fine. */ - res = (size_t) -1; - break; - } - - len *= 2; - } - - if (res == (size_t) -1) - { - /* The string cannot be converted. */ - if (use_malloc) - { - free (wmessage); - use_malloc = false; - } - wmessage = (wchar_t *) L"???"; - } - - __vfwprintf (stderr, wmessage, args); - - if (use_malloc) - free (wmessage); - } - else -#endif - vfprintf (stderr, message, args); - - ++error_message_count; - if (errnum) - print_errno_message (errnum); -#if _LIBC - __fxprintf (NULL, "\n"); -#else - putc ('\n', stderr); -#endif - fflush (stderr); - if (status) - exit (status); -} - - -/* Print the program name and error message MESSAGE, which is a printf-style - format string with optional args. - If ERRNUM is nonzero, print its corresponding system error message. - Exit with status STATUS if it is nonzero. */ -void -error (int status, int errnum, const char *message, ...) -{ - va_list args; - -#if defined _LIBC && defined __libc_ptf_call - /* We do not want this call to be cut short by a thread - cancellation. Therefore disable cancellation for now. */ - int state = PTHREAD_CANCEL_ENABLE; - __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), - 0); -#endif - - flush_stdout (); -#ifdef _LIBC - _IO_flockfile (stderr); -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC - __fxprintf (NULL, "%s: ", program_name); -#else - fprintf (stderr, "%s: ", program_name); -#endif - } - - va_start (args, message); - error_tail (status, errnum, message, args); - va_end (args); - -#ifdef _LIBC - _IO_funlockfile (stderr); -# ifdef __libc_ptf_call - __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); -# endif -#endif -} - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -int error_one_per_line; - -void -error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, ...) -{ - va_list args; - - if (error_one_per_line) - { - static const char *old_file_name; - static unsigned int old_line_number; - - if (old_line_number == line_number - && (file_name == old_file_name - || (old_file_name != NULL - && file_name != NULL - && strcmp (old_file_name, file_name) == 0))) - - /* Simply return and print nothing. */ - return; - - old_file_name = file_name; - old_line_number = line_number; - } - -#if defined _LIBC && defined __libc_ptf_call - /* We do not want this call to be cut short by a thread - cancellation. Therefore disable cancellation for now. */ - int state = PTHREAD_CANCEL_ENABLE; - __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), - 0); -#endif - - flush_stdout (); -#ifdef _LIBC - _IO_flockfile (stderr); -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC - __fxprintf (NULL, "%s:", program_name); -#else - fprintf (stderr, "%s:", program_name); -#endif - } - -#if _LIBC - __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ", - file_name, line_number); -#else - fprintf (stderr, file_name != NULL ? "%s:%u: " : " ", - file_name, line_number); -#endif - - va_start (args, message); - error_tail (status, errnum, message, args); - va_end (args); - -#ifdef _LIBC - _IO_funlockfile (stderr); -# ifdef __libc_ptf_call - __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); -# endif -#endif -} - -#ifdef _LIBC -/* Make the weak alias. */ -# undef error -# undef error_at_line -weak_alias (__error, error) -weak_alias (__error_at_line, error_at_line) -#endif diff --git a/jni/parted/libiconv/srclib/error.h b/jni/parted/libiconv/srclib/error.h deleted file mode 100755 index 8813713..0000000 --- a/jni/parted/libiconv/srclib/error.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Declaration for error-reporting function - Copyright (C) 1995-1997, 2003, 2006, 2008-2022 Free Software Foundation, - Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#ifndef _ERROR_H -#define _ERROR_H 1 - -/* Get _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM. */ -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Print a message with 'fprintf (stderr, FORMAT, ...)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ - -extern void error (int __status, int __errnum, const char *__format, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 3, 4)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 3, 4)) -#endif - ; - -extern void error_at_line (int __status, int __errnum, const char *__fname, - unsigned int __lineno, const char *__format, ...) -#if GNULIB_VFPRINTF_POSIX - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, 5, 6)) -#else - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, 5, 6)) -#endif - ; - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -extern DLL_VARIABLE void (*error_print_progname) (void); - -/* This variable is incremented each time 'error' is called. */ -extern DLL_VARIABLE unsigned int error_message_count; - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -extern DLL_VARIABLE int error_one_per_line; - -#ifdef __cplusplus -} -#endif - -#endif /* error.h */ diff --git a/jni/parted/libiconv/srclib/fcntl.h b/jni/parted/libiconv/srclib/fcntl.h deleted file mode 100755 index 949feeb..0000000 --- a/jni/parted/libiconv/srclib/fcntl.h +++ /dev/null @@ -1,952 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Like , but with non-working flags defined to 0. - - Copyright (C) 2006-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Paul Eggert */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_system_fcntl_h -/* Special invocation convention. */ - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) -# include -#endif -#include_next - -/* Native Windows platforms declare open(), creat() in . */ -#if (0 || 1 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -#else -/* Normal invocation convention. */ - -#ifndef _GL_FCNTL_H - -/* Needed before . - May also define off_t to a 64-bit type on native Windows. */ -#include -/* On some systems other than glibc, is a prerequisite of - . On glibc systems, we would like to avoid namespace pollution. - But on glibc systems, includes inside an - extern "C" { ... } block, which leads to errors in C++ mode with the - overridden from gnulib. These errors are known to be gone - with g++ version >= 4.3. */ -#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))) -# include -#endif -/* The include_next requires a split double-inclusion guard. */ -#include_next - -/* Native Windows platforms declare open(), creat() in . */ -#if (0 || 1 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -#ifndef _GL_FCNTL_H -#define _GL_FCNTL_H - -#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ -# include -#endif - - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Declare overridden functions. */ - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat rpl_creat -# endif -_GL_FUNCDECL_RPL (creat, int, (const char *filename, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (creat, int, (const char *filename, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat _creat -# endif -_GL_CXXALIAS_MDA (creat, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (creat); -#elif defined GNULIB_POSIXCHECK -# undef creat -/* Assume creat is always declared. */ -_GL_WARN_ON_USE (creat, "creat is not always POSIX compliant - " - "use gnulib module creat for portability"); -#elif 1 -/* On native Windows, map 'creat' to '_creat', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::creat always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef creat -# define creat _creat -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (creat, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (creat, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (creat); -#endif - -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcntl -# define fcntl rpl_fcntl -# endif -_GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); -_GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); -# if !GNULIB_defined_rpl_fcntl -# define GNULIB_defined_rpl_fcntl 1 -# endif -# else -# if !1 -_GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); -# if !GNULIB_defined_fcntl -# define GNULIB_defined_fcntl 1 -# endif -# endif -_GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); -# endif -_GL_CXXALIASWARN (fcntl); -#elif defined GNULIB_POSIXCHECK -# undef fcntl -# if HAVE_RAW_DECL_FCNTL -_GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " - "use gnulib module fcntl for portability"); -# endif -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open rpl_open -# endif -_GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open _open -# endif -_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a - default argument. _GL_CXXALIASWARN does not work in this case. */ -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#elif defined GNULIB_POSIXCHECK -# undef open -/* Assume open is always declared. */ -_GL_WARN_ON_USE (open, "open is not always POSIX compliant - " - "use gnulib module open for portability"); -#elif 1 -/* On native Windows, map 'open' to '_open', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::open always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef open -# define open _open -# endif -_GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); -# else -_GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); -# endif -# if !defined __hpux -_GL_CXXALIASWARN (open); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef openat -# define openat rpl_openat -# endif -_GL_FUNCDECL_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (openat, int, - (int fd, char const *file, int flags, /* mode_t mode */ ...)); -# endif -_GL_CXXALIASWARN (openat); -#elif defined GNULIB_POSIXCHECK -# undef openat -# if HAVE_RAW_DECL_OPENAT -_GL_WARN_ON_USE (openat, "openat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -/* Fix up the FD_* macros, only known to be missing on mingw. */ - -#ifndef FD_CLOEXEC -# define FD_CLOEXEC 1 -#endif - -/* Fix up the supported F_* macros. Intentionally leave other F_* - macros undefined. Only known to be missing on mingw. */ - -#ifndef F_DUPFD_CLOEXEC -# define F_DUPFD_CLOEXEC 0x40000000 -/* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ -# define GNULIB_defined_F_DUPFD_CLOEXEC 1 -#else -# define GNULIB_defined_F_DUPFD_CLOEXEC 0 -#endif - -#ifndef F_DUPFD -# define F_DUPFD 1 -#endif - -#ifndef F_GETFD -# define F_GETFD 2 -#endif - -/* Fix up the O_* macros. */ - -/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT - to values outside 'int' range, so omit these misdefinitions. - But avoid namespace pollution on non-AIX systems. */ -#ifdef _AIX -# include -# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX) -# undef O_CLOEXEC -# endif -# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX) -# undef O_NOFOLLOW -# endif -# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX) -# undef O_TTY_INIT -# endif -#endif - -#if !defined O_DIRECT && defined O_DIRECTIO -/* Tru64 spells it 'O_DIRECTIO'. */ -# define O_DIRECT O_DIRECTIO -#endif - -#if !defined O_CLOEXEC && defined O_NOINHERIT -/* Mingw spells it 'O_NOINHERIT'. */ -# define O_CLOEXEC O_NOINHERIT -#endif - -#ifndef O_CLOEXEC -# define O_CLOEXEC 0x40000000 /* Try to not collide with system O_* flags. */ -# define GNULIB_defined_O_CLOEXEC 1 -#else -# define GNULIB_defined_O_CLOEXEC 0 -#endif - -#ifndef O_DIRECT -# define O_DIRECT 0 -#endif - -#ifndef O_DIRECTORY -# define O_DIRECTORY 0 -#endif - -#ifndef O_DSYNC -# define O_DSYNC 0 -#endif - -#ifndef O_EXEC -# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_IGNORE_CTTY -# define O_IGNORE_CTTY 0 -#endif - -#ifndef O_NDELAY -# define O_NDELAY 0 -#endif - -#ifndef O_NOATIME -# define O_NOATIME 0 -#endif - -#ifndef O_NONBLOCK -# define O_NONBLOCK O_NDELAY -#endif - -/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero - value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY - or to 0 as fallback. */ -#if 0 -# if O_NONBLOCK -# define GNULIB_defined_O_NONBLOCK 0 -# else -# define GNULIB_defined_O_NONBLOCK 1 -# undef O_NONBLOCK -# define O_NONBLOCK 0x40000000 -# endif -#endif - -#ifndef O_NOCTTY -# define O_NOCTTY 0 -#endif - -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif - -#ifndef O_NOLINK -# define O_NOLINK 0 -#endif - -#ifndef O_NOLINKS -# define O_NOLINKS 0 -#endif - -#ifndef O_NOTRANS -# define O_NOTRANS 0 -#endif - -#ifndef O_RSYNC -# define O_RSYNC 0 -#endif - -#ifndef O_SEARCH -# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ -#endif - -#ifndef O_SYNC -# define O_SYNC 0 -#endif - -#ifndef O_TTY_INIT -# define O_TTY_INIT 0 -#endif - -#if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -# undef O_ACCMODE -# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) -#endif - -/* For systems that distinguish between text and binary I/O. - O_BINARY is usually declared in fcntl.h */ -#if !defined O_BINARY && defined _O_BINARY - /* For MSC-compatible compilers. */ -# define O_BINARY _O_BINARY -# define O_TEXT _O_TEXT -#endif - -#if defined __BEOS__ || defined __HAIKU__ - /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ -# undef O_BINARY -# undef O_TEXT -#endif - -#ifndef O_BINARY -# define O_BINARY 0 -# define O_TEXT 0 -#endif - -/* Fix up the AT_* macros. */ - -/* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its - value exceeds INT_MAX, so its use as an int doesn't conform to the - C standard, and GCC and Sun C complain in some cases. If the bug - is present, undef AT_FDCWD here, so it can be redefined below. */ -#if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 -# undef AT_FDCWD -#endif - -/* Use the same bit pattern as Solaris 9, but with the proper - signedness. The bit pattern is important, in case this actually is - Solaris with the above workaround. */ -#ifndef AT_FDCWD -# define AT_FDCWD (-3041965) -#endif - -/* Use the same values as Solaris 9. This shouldn't matter, but - there's no real reason to differ. */ -#ifndef AT_SYMLINK_NOFOLLOW -# define AT_SYMLINK_NOFOLLOW 4096 -#endif - -#ifndef AT_REMOVEDIR -# define AT_REMOVEDIR 1 -#endif - -/* Solaris 9 lacks these two, so just pick unique values. */ -#ifndef AT_SYMLINK_FOLLOW -# define AT_SYMLINK_FOLLOW 2 -#endif - -#ifndef AT_EACCESS -# define AT_EACCESS 4 -#endif - -/* Ignore this flag if not supported. */ -#ifndef AT_NO_AUTOMOUNT -# define AT_NO_AUTOMOUNT 0 -#endif - -#endif /* _GL_FCNTL_H */ -#endif /* _GL_FCNTL_H */ -#endif diff --git a/jni/parted/libiconv/srclib/fd-hook.h b/jni/parted/libiconv/srclib/fd-hook.h deleted file mode 100755 index d6c4964..0000000 --- a/jni/parted/libiconv/srclib/fd-hook.h +++ /dev/null @@ -1,119 +0,0 @@ -/* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - - -#ifndef FD_HOOK_H -#define FD_HOOK_H - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Currently, this entire code is only needed for the handling of sockets - on native Windows platforms. */ -#if WINDOWS_SOCKETS - - -/* Type of function that closes FD. */ -typedef int (*gl_close_fn) (int fd); - -/* Type of function that applies a control request to FD. */ -typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); - -/* An element of the list of file descriptor hooks. - In CLOS (Common Lisp Object System) speak, it consists of an "around" - method for the close() function and an "around" method for the ioctl() - function. - The fields of this structure are considered private. */ -struct fd_hook -{ - /* Doubly linked list. */ - struct fd_hook *private_next; - struct fd_hook *private_prev; - /* Function that treats the types of FD that it knows about and calls - execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ - int (*private_close_fn) (const struct fd_hook *remaining_list, - gl_close_fn primary, - int fd); - /* Function that treats the types of FD that it knows about and calls - execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a - fallback. */ - int (*private_ioctl_fn) (const struct fd_hook *remaining_list, - gl_ioctl_fn primary, - int fd, int request, void *arg); -}; - -/* This type of function closes FD, applying special knowledge for the FD - types it knows about, and calls - execute_close_hooks (REMAINING_LIST, PRIMARY, FD) - for the other FD types. - In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, - and PRIMARY is the "primary" method for close(). */ -typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, - gl_close_fn primary, - int fd); - -/* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. - Return 0 or -1, like close() would do. */ -extern int execute_close_hooks (const struct fd_hook *remaining_list, - gl_close_fn primary, - int fd); - -/* Execute all close hooks, with PRIMARY as "primary" method. - Return 0 or -1, like close() would do. */ -extern int execute_all_close_hooks (gl_close_fn primary, int fd); - -/* This type of function applies a control request to FD, applying special - knowledge for the FD types it knows about, and calls - execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) - for the other FD types. - In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, - and PRIMARY is the "primary" method for ioctl(). */ -typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, - gl_ioctl_fn primary, - int fd, int request, void *arg); - -/* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. - Return 0 or -1, like ioctl() would do. */ -extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, - gl_ioctl_fn primary, - int fd, int request, void *arg); - -/* Execute all ioctl hooks, with PRIMARY as "primary" method. - Return 0 or -1, like ioctl() would do. */ -extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, - int fd, int request, void *arg); - -/* Add a function pair to the list of file descriptor hooks. - CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. - The LINK variable points to a piece of memory which is guaranteed to be - accessible until the corresponding call to unregister_fd_hook. */ -extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, - struct fd_hook *link); - -/* Removes a hook from the list of file descriptor hooks. */ -extern void unregister_fd_hook (struct fd_hook *link); - - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* FD_HOOK_H */ diff --git a/jni/parted/libiconv/srclib/filename.h b/jni/parted/libiconv/srclib/filename.h deleted file mode 100755 index ab77ca2..0000000 --- a/jni/parted/libiconv/srclib/filename.h +++ /dev/null @@ -1,112 +0,0 @@ -/* Basic filename support macros. - Copyright (C) 2001-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -/* From Paul Eggert and Jim Meyering. */ - -#ifndef _FILENAME_H -#define _FILENAME_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Filename support. - ISSLASH(C) tests whether C is a directory separator - character. - HAS_DEVICE(Filename) tests whether Filename contains a device - specification. - FILE_SYSTEM_PREFIX_LEN(Filename) length of the device specification - at the beginning of Filename, - index of the part consisting of - alternating components and slashes. - FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE - 1 when a non-empty device specification - can be followed by an empty or relative - part, - 0 when a non-empty device specification - must be followed by a slash, - 0 when device specification don't exist. - IS_ABSOLUTE_FILE_NAME(Filename) - tests whether Filename is independent of - any notion of "current directory". - IS_RELATIVE_FILE_NAME(Filename) - tests whether Filename may be concatenated - to a directory filename. - Note: On native Windows, OS/2, DOS, "c:" is neither an absolute nor a - relative file name! - IS_FILE_NAME_WITH_DIR(Filename) tests whether Filename contains a device - or directory specification. - */ -#if defined _WIN32 || defined __CYGWIN__ \ - || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') - /* Internal macro: Tests whether a character is a drive letter. */ -# define _IS_DRIVE_LETTER(C) \ - (((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z')) - /* Help the compiler optimizing it. This assumes ASCII. */ -# undef _IS_DRIVE_LETTER -# define _IS_DRIVE_LETTER(C) \ - (((unsigned int) (C) | ('a' - 'A')) - 'a' <= 'z' - 'a') -# define HAS_DEVICE(Filename) \ - (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':') -# define FILE_SYSTEM_PREFIX_LEN(Filename) (HAS_DEVICE (Filename) ? 2 : 0) -# ifdef __CYGWIN__ -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 -# else - /* On native Windows, OS/2, DOS, the system has the notion of a - "current directory" on each drive. */ -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 -# endif -# if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE -# define IS_ABSOLUTE_FILE_NAME(Filename) \ - ISSLASH ((Filename)[FILE_SYSTEM_PREFIX_LEN (Filename)]) -# else -# define IS_ABSOLUTE_FILE_NAME(Filename) \ - (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename)) -# endif -# define IS_RELATIVE_FILE_NAME(Filename) \ - (! (ISSLASH ((Filename)[0]) || HAS_DEVICE (Filename))) -# define IS_FILE_NAME_WITH_DIR(Filename) \ - (strchr ((Filename), '/') != NULL || strchr ((Filename), '\\') != NULL \ - || HAS_DEVICE (Filename)) -#else - /* Unix */ -# define ISSLASH(C) ((C) == '/') -# define HAS_DEVICE(Filename) ((void) (Filename), 0) -# define FILE_SYSTEM_PREFIX_LEN(Filename) ((void) (Filename), 0) -# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 -# define IS_ABSOLUTE_FILE_NAME(Filename) ISSLASH ((Filename)[0]) -# define IS_RELATIVE_FILE_NAME(Filename) (! ISSLASH ((Filename)[0])) -# define IS_FILE_NAME_WITH_DIR(Filename) (strchr ((Filename), '/') != NULL) -#endif - -/* Deprecated macros. For backward compatibility with old users of the - 'filename' module. */ -#define IS_ABSOLUTE_PATH IS_ABSOLUTE_FILE_NAME -#define IS_PATH_WITH_DIR IS_FILE_NAME_WITH_DIR - - -#ifdef __cplusplus -} -#endif - -#endif /* _FILENAME_H */ diff --git a/jni/parted/libiconv/srclib/fstat.c b/jni/parted/libiconv/srclib/fstat.c deleted file mode 100755 index 3928c86..0000000 --- a/jni/parted/libiconv/srclib/fstat.c +++ /dev/null @@ -1,94 +0,0 @@ -/* fstat() replacement. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_fstat doesn't recurse to - rpl_fstat. */ -#define __need_system_sys_stat_h -#include - -/* Get the original definition of fstat. It might be defined as a macro. */ -#include -#include -#undef __need_system_sys_stat_h - -#if defined _WIN32 && ! defined __CYGWIN__ -# define WINDOWS_NATIVE -#endif - -#if !defined WINDOWS_NATIVE - -static int -orig_fstat (int fd, struct stat *buf) -{ - return fstat (fd, buf); -} - -#endif - -/* Specification. */ -#ifdef __osf__ -/* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc - eliminates this include because of the preliminary #include - above. */ -# include "sys/stat.h" -#else -# include -#endif - -#include "stat-time.h" - -#include -#include -#ifdef WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif -# include "stat-w32.h" -#endif - -int -rpl_fstat (int fd, struct stat *buf) -{ -#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY - /* Handle the case when rpl_open() used a dummy file descriptor to work - around an open() that can't normally visit directories. */ - const char *name = _gl_directory_name (fd); - if (name != NULL) - return stat (name, buf); -#endif - -#ifdef WINDOWS_NATIVE - /* Fill the fields ourselves, because the original fstat function returns - values for st_atime, st_mtime, st_ctime that depend on the current time - zone. See - */ - HANDLE h = (HANDLE) _get_osfhandle (fd); - - if (h == INVALID_HANDLE_VALUE) - { - errno = EBADF; - return -1; - } - return _gl_fstat_by_handle (h, NULL, buf); -#else - return stat_time_normalize (orig_fstat (fd, buf), buf); -#endif -} diff --git a/jni/parted/libiconv/srclib/getprogname.h b/jni/parted/libiconv/srclib/getprogname.h deleted file mode 100755 index 9a35e58..0000000 --- a/jni/parted/libiconv/srclib/getprogname.h +++ /dev/null @@ -1,40 +0,0 @@ -/* Program name management. - Copyright (C) 2016-2022 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_GETPROGNAME_H -#define _GL_GETPROGNAME_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Return the base name of the executing program. - On native Windows this will usually end in ".exe" or ".EXE". */ -#ifndef HAVE_GETPROGNAME -extern char const *getprogname (void) -# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME - _GL_ATTRIBUTE_PURE -# endif - ; -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/jni/parted/libiconv/srclib/gettext.h b/jni/parted/libiconv/srclib/gettext.h deleted file mode 100755 index b3577a0..0000000 --- a/jni/parted/libiconv/srclib/gettext.h +++ /dev/null @@ -1,300 +0,0 @@ -/* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2022 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _LIBGETTEXT_H -#define _LIBGETTEXT_H 1 - -/* NLS can be disabled through the configure --disable-nls option - or through "#define ENABLE NLS 0" before including this file. */ -#if defined ENABLE_NLS && ENABLE_NLS - -/* Get declarations of GNU message catalog functions. */ -# include - -/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by - the gettext() and ngettext() macros. This is an alternative to calling - textdomain(), and is useful for libraries. */ -# ifdef DEFAULT_TEXT_DOMAIN -# undef gettext -# define gettext(Msgid) \ - dgettext (DEFAULT_TEXT_DOMAIN, Msgid) -# undef ngettext -# define ngettext(Msgid1, Msgid2, N) \ - dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) -# endif - -#else - -/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which - chokes if dcgettext is defined as a macro. So include it now, to make - later inclusions of a NOP. We don't include - as well because people using "gettext.h" will not include , - and also including would fail on SunOS 4, whereas - is OK. */ -#if defined(__sun) -# include -#endif - -/* Many header files from the libstdc++ coming with g++ 3.3 or newer include - , which chokes if dcgettext is defined as a macro. So include - it now, to make later inclusions of a NOP. */ -#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) -# include -# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H -# include -# endif -#endif - -/* Disabled NLS. - The casts to 'const char *' serve the purpose of producing warnings - for invalid uses of the value returned from these functions. - On pre-ANSI systems without 'const', the config.h file is supposed to - contain "#define const". */ -# undef gettext -# define gettext(Msgid) ((const char *) (Msgid)) -# undef dgettext -# define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) -# undef dcgettext -# define dcgettext(Domainname, Msgid, Category) \ - ((void) (Category), dgettext (Domainname, Msgid)) -# undef ngettext -# define ngettext(Msgid1, Msgid2, N) \ - ((N) == 1 \ - ? ((void) (Msgid2), (const char *) (Msgid1)) \ - : ((void) (Msgid1), (const char *) (Msgid2))) -# undef dngettext -# define dngettext(Domainname, Msgid1, Msgid2, N) \ - ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) -# undef dcngettext -# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ - ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) -# undef textdomain -# define textdomain(Domainname) ((const char *) (Domainname)) -# undef bindtextdomain -# define bindtextdomain(Domainname, Dirname) \ - ((void) (Domainname), (const char *) (Dirname)) -# undef bind_textdomain_codeset -# define bind_textdomain_codeset(Domainname, Codeset) \ - ((void) (Domainname), (const char *) (Codeset)) - -#endif - -/* Prefer gnulib's setlocale override over libintl's setlocale override. */ -#ifdef GNULIB_defined_setlocale -# undef setlocale -# define setlocale rpl_setlocale -#endif - -/* A pseudo function call that serves as a marker for the automated - extraction of messages, but does not call gettext(). The run-time - translation is done at a different place in the code. - The argument, String, should be a literal string. Concatenated strings - and other string expressions won't work. - The macro's expansion is not parenthesized, so that it is suitable as - initializer for static 'char[]' or 'const char[]' variables. */ -#define gettext_noop(String) String - -/* The separator between msgctxt and msgid in a .mo file. */ -#define GETTEXT_CONTEXT_GLUE "\004" - -/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a - MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be - short and rarely need to change. - The letter 'p' stands for 'particular' or 'special'. */ -#ifdef DEFAULT_TEXT_DOMAIN -# define pgettext(Msgctxt, Msgid) \ - pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#else -# define pgettext(Msgctxt, Msgid) \ - pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#endif -#define dpgettext(Domainname, Msgctxt, Msgid) \ - pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) -#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ - pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) -#ifdef DEFAULT_TEXT_DOMAIN -# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#else -# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#endif -#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ - npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) -#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ - npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -pgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - int category) -{ - const char *translation = dcgettext (domain, msg_ctxt_id, category); - if (translation == msg_ctxt_id) - return msgid; - else - return translation; -} - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -npgettext_aux (const char *domain, - const char *msg_ctxt_id, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) -{ - const char *translation = - dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); - if (translation == msg_ctxt_id || translation == msgid_plural) - return (n == 1 ? msgid : msgid_plural); - else - return translation; -} - -/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID - can be arbitrary expressions. But for string literals these macros are - less efficient than those above. */ - -#include - -/* GNULIB_NO_VLA can be defined to disable use of VLAs even if supported. - This relates to the -Wvla and -Wvla-larger-than warnings, enabled in - the default GCC many warnings set. This allows programs to disable use - of VLAs, which may be unintended, or may be awkward to support portably, - or may have security implications due to non-deterministic stack usage. */ - -#if (!defined GNULIB_NO_VLA \ - && defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__ \ - && !defined __STDC_NO_VLA__) -# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 -#else -# define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 0 -#endif - -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS -#include -#endif - -#define pgettext_expr(Msgctxt, Msgid) \ - dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) -#define dpgettext_expr(Domainname, Msgctxt, Msgid) \ - dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -dcpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - int category) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; -#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - char msg_ctxt_id[msgctxt_len + msgid_len]; -#else - char buf[1024]; - char *msg_ctxt_id = - (msgctxt_len + msgid_len <= sizeof (buf) - ? buf - : (char *) malloc (msgctxt_len + msgid_len)); - if (msg_ctxt_id != NULL) -#endif - { - int found_translation; - 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 = dcgettext (domain, msg_ctxt_id, category); - found_translation = (translation != msg_ctxt_id); -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - if (msg_ctxt_id != buf) - free (msg_ctxt_id); -#endif - if (found_translation) - return translation; - } - return msgid; -} - -#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ - dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) -#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ - dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) - -#if defined __GNUC__ || defined __clang__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static const char * -dcnpgettext_expr (const char *domain, - const char *msgctxt, const char *msgid, - const char *msgid_plural, unsigned long int n, - int category) -{ - size_t msgctxt_len = strlen (msgctxt) + 1; - size_t msgid_len = strlen (msgid) + 1; - const char *translation; -#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - char msg_ctxt_id[msgctxt_len + msgid_len]; -#else - char buf[1024]; - char *msg_ctxt_id = - (msgctxt_len + msgid_len <= sizeof (buf) - ? buf - : (char *) malloc (msgctxt_len + msgid_len)); - if (msg_ctxt_id != NULL) -#endif - { - int found_translation; - 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 = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); - found_translation = !(translation == msg_ctxt_id || translation == msgid_plural); -#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS - if (msg_ctxt_id != buf) - free (msg_ctxt_id); -#endif - if (found_translation) - return translation; - } - return (n == 1 ? msgid : msgid_plural); -} - -#endif /* _LIBGETTEXT_H */ diff --git a/jni/parted/libiconv/srclib/idx.h b/jni/parted/libiconv/srclib/idx.h deleted file mode 100755 index c3669dd..0000000 --- a/jni/parted/libiconv/srclib/idx.h +++ /dev/null @@ -1,134 +0,0 @@ -/* A type for indices and sizes. - Copyright (C) 2020-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _IDX_H -#define _IDX_H - -/* Get ptrdiff_t. */ -#include - -/* Get PTRDIFF_MAX. */ -#include - -/* The type 'idx_t' holds an (array) index or an (object) size. - Its implementation promotes to a signed integer type, - which can hold the values - 0..2^63-1 (on 64-bit platforms) or - 0..2^31-1 (on 32-bit platforms). - - Why a signed integer type? - - * Security: Signed types can be checked for overflow via - '-fsanitize=undefined', but unsigned types cannot. - - * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few - surprising results for comparisons, such as - - (int) -3 < (unsigned long) 7 => false - (int) -3 < (unsigned int) 7 => false - and on 32-bit machines: - (long) -3 < (unsigned int) 7 => false - - This is surprising because the natural comparison order is by - value in the realm of infinite-precision signed integers (ℤ). - - The best way to get rid of such surprises is to use signed types - for numerical integer values, and use unsigned types only for - bit masks and enums. - - Why not use 'size_t' directly? - - * Because 'size_t' is an unsigned type, and a signed type is better. - See above. - - Why not use 'ssize_t'? - - * 'ptrdiff_t' is more portable; it is standardized by ISO C - whereas 'ssize_t' is standardized only by POSIX. - - * 'ssize_t' is not required to be as wide as 'size_t', and some - now-obsolete POSIX platforms had 'size_t' wider than 'ssize_t'. - - * Conversely, some now-obsolete platforms had 'ptrdiff_t' wider - than 'size_t', which can be a win and conforms to POSIX. - - Won't this cause a problem with objects larger than PTRDIFF_MAX? - - * Typical modern or large platforms do not allocate such objects, - so this is not much of a problem in practice; for example, you - can safely write 'idx_t len = strlen (s);'. To port to older - small platforms where allocations larger than PTRDIFF_MAX could - in theory be a problem, you can use Gnulib's ialloc module, or - functions like ximalloc in Gnulib's xalloc module. - - Why not use 'ptrdiff_t' directly? - - * Maintainability: When reading and modifying code, it helps to know that - a certain variable cannot have negative values. For example, when you - have a loop - - int n = ...; - for (int i = 0; i < n; i++) ... - - or - - ptrdiff_t n = ...; - for (ptrdiff_t i = 0; i < n; i++) ... - - you have to ask yourself "what if n < 0?". Whereas in - - idx_t n = ...; - for (idx_t i = 0; i < n; i++) ... - - you know that this case cannot happen. - - Similarly, when a programmer writes - - idx_t = ptr2 - ptr1; - - there is an implied assertion that ptr1 and ptr2 point into the same - object and that ptr1 <= ptr2. - - * Being future-proof: In the future, range types (integers which are - constrained to a certain range of values) may be added to C compilers - or to the C standard. Several programming languages (Ada, Haskell, - Common Lisp, Pascal) already have range types. Such range types may - help producing good code and good warnings. The type 'idx_t' could - then be typedef'ed to a range type that is signed after promotion. */ - -/* In the future, idx_t could be typedef'ed to a signed range type. - The clang "extended integer types", supported in Clang 11 or newer - , - are a special case of range types. However, these types don't support binary - operators with plain integer types (e.g. expressions such as x > 1). - Therefore, they don't behave like signed types (and not like unsigned types - either). So, we cannot use them here. */ - -/* Use the signed type 'ptrdiff_t'. */ -/* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same - size, but it is so on all platforms we have seen since 1990. */ -typedef ptrdiff_t idx_t; - -/* IDX_MAX is the maximum value of an idx_t. */ -#define IDX_MAX PTRDIFF_MAX - -/* So far no need has been found for an IDX_WIDTH macro. - Perhaps there should be another macro IDX_VALUE_BITS that does not - count the sign bit and is therefore one less than PTRDIFF_WIDTH. */ - -#endif /* _IDX_H */ diff --git a/jni/parted/libiconv/srclib/intprops.h b/jni/parted/libiconv/srclib/intprops.h deleted file mode 100755 index d4a917f..0000000 --- a/jni/parted/libiconv/srclib/intprops.h +++ /dev/null @@ -1,642 +0,0 @@ -/* intprops.h -- properties of integer types - - Copyright (C) 2001-2022 Free Software Foundation, Inc. - - This program 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 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 Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - - -#ifndef _GL_INTPROPS_H -#define _GL_INTPROPS_H - -#include - -/* Return a value with the common real type of E and V and the value of V. - Do not evaluate E. */ -#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) - -/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see - . */ -#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) - -/* The extra casts in the following macros work around compiler bugs, - e.g., in Cray C 5.0.3.0. */ - -/* True if the arithmetic type T is an integer type. bool counts as - an integer. */ -#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) - -/* True if the real type T is signed. */ -#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* Return 1 if the real expression E, after promotion, has a - signed or floating type. Do not evaluate E. */ -#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) - - -/* Minimum and maximum values for integer types and expressions. */ - -/* The width in bits of the integer type or expression T. - Do not evaluate T. T must not be a bit-field expression. - Padding bits are not supported; this is checked at compile-time below. */ -#define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) - -/* The maximum and minimum values for the integer type T. */ -#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) -#define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) - -/* The maximum and minimum values for the type of the expression E, - after integer promotion. E is not evaluated. */ -#define _GL_INT_MINIMUM(e) \ - (EXPR_SIGNED (e) \ - ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ - : _GL_INT_CONVERT (e, 0)) -#define _GL_INT_MAXIMUM(e) \ - (EXPR_SIGNED (e) \ - ? _GL_SIGNED_INT_MAXIMUM (e) \ - : _GL_INT_NEGATE_CONVERT (e, 1)) -#define _GL_SIGNED_INT_MAXIMUM(e) \ - (((_GL_INT_CONVERT (e, 1) << (TYPE_WIDTH (+ (e)) - 2)) - 1) * 2 + 1) - -/* Work around OpenVMS incompatibility with C99. */ -#if !defined LLONG_MAX && defined __INT64_MAX -# define LLONG_MAX __INT64_MAX -# define LLONG_MIN __INT64_MIN -#endif - -/* This include file assumes that signed types are two's complement without - padding bits; the above macros have undefined behavior otherwise. - If this is a problem for you, please let us know how to fix it for your host. - This assumption is tested by the intprops-tests module. */ - -/* Does the __typeof__ keyword work? This could be done by - 'configure', but for now it's easier to do it by hand. */ -#if (2 <= __GNUC__ \ - || (4 <= __clang_major__) \ - || (1210 <= __IBMC__ && defined __IBM__TYPEOF__) \ - || (0x5110 <= __SUNPRO_C && !__STDC__)) -# define _GL_HAVE___TYPEOF__ 1 -#else -# define _GL_HAVE___TYPEOF__ 0 -#endif - -/* Return 1 if the integer type or expression T might be signed. Return 0 - if it is definitely unsigned. T must not be a bit-field expression. - This macro does not evaluate its argument, and expands to an - integer constant expression. */ -#if _GL_HAVE___TYPEOF__ -# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) -#else -# define _GL_SIGNED_TYPE_OR_EXPR(t) 1 -#endif - -/* Bound on length of the string representing an unsigned integer - value representable in B bits. log10 (2.0) < 146/485. The - smallest value of B where this bound is not tight is 2621. */ -#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) - -/* Bound on length of the string representing an integer type or expression T. - T must not be a bit-field expression. - - Subtract 1 for the sign bit if T is signed, and then add 1 more for - a minus sign if needed. - - Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is - unsigned, this macro may overestimate the true bound by one byte when - applied to unsigned types of size 2, 4, 16, ... bytes. */ -#define INT_STRLEN_BOUND(t) \ - (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ - + _GL_SIGNED_TYPE_OR_EXPR (t)) - -/* Bound on buffer size needed to represent an integer type or expression T, - including the terminating null. T must not be a bit-field expression. */ -#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) - - -/* Range overflow checks. - - The INT__RANGE_OVERFLOW macros return 1 if the corresponding C - operators might not yield numerically correct answers due to - arithmetic overflow. They do not rely on undefined or - implementation-defined behavior. Their implementations are simple - and straightforward, but they are harder to use and may be less - efficient than the INT__WRAPV, INT__OK, and - INT__OVERFLOW macros described below. - - Example usage: - - long int i = ...; - long int j = ...; - if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) - printf ("multiply would overflow"); - else - printf ("product is %ld", i * j); - - Restrictions on *_RANGE_OVERFLOW macros: - - These macros do not check for all possible numerical problems or - undefined or unspecified behavior: they do not check for division - by zero, for bad shift counts, or for shifting negative numbers. - - These macros may evaluate their arguments zero or multiple times, - so the arguments should not have side effects. The arithmetic - arguments (including the MIN and MAX arguments) must be of the same - integer type after the usual arithmetic conversions, and the type - must have minimum value MIN and maximum MAX. Unsigned types should - use a zero MIN of the proper type. - - Because all arguments are subject to integer promotions, these - macros typically do not work on types narrower than 'int'. - - These macros are tuned for constant MIN and MAX. For commutative - operations such as A + B, they are also tuned for constant B. */ - -/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. */ -#define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ - ((b) < 0 \ - ? (a) < (min) - (b) \ - : (max) - (b) < (a)) - -/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. */ -#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ - ((b) < 0 \ - ? (max) + (b) < (a) \ - : (a) < (min) + (b)) - -/* Return 1 if - A would overflow in [MIN,MAX] arithmetic. - See above for restrictions. */ -#define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ - ((min) < 0 \ - ? (a) < - (max) \ - : 0 < (a)) - -/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Avoid && and || as they tickle - bugs in Sun C 5.11 2010/08/13 and other compilers; see - . */ -#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ - ((b) < 0 \ - ? ((a) < 0 \ - ? (a) < (max) / (b) \ - : (b) == -1 \ - ? 0 \ - : (min) / (b) < (a)) \ - : (b) == 0 \ - ? 0 \ - : ((a) < 0 \ - ? (a) < (min) / (b) \ - : (max) / (b) < (a))) - -/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Do not check for division by zero. */ -#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ - ((min) < 0 && (b) == -1 && (a) < - (max)) - -/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Do not check for division by zero. - Mathematically, % should never overflow, but on x86-like hosts - INT_MIN % -1 traps, and the C standard permits this, so treat this - as an overflow too. */ -#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ - INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) - -/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. - See above for restrictions. Here, MIN and MAX are for A only, and B need - not be of the same type as the other arguments. The C standard says that - behavior is undefined for shifts unless 0 <= B < wordwidth, and that when - A is negative then A << B has undefined behavior and A >> B has - implementation-defined behavior, but do not check these other - restrictions. */ -#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ - ((a) < 0 \ - ? (a) < (min) >> (b) \ - : (max) >> (b) < (a)) - -/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow - (A, B, P) work when P is non-null. */ -#ifdef __EDG__ -/* EDG-based compilers like nvc 22.1 cannot add 64-bit signed to unsigned - . */ -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) -/* __builtin_{add,sub}_overflow exists but is not reliable in GCC 5.x and 6.x, - see . */ -#elif 7 <= __GNUC__ -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 -#else -# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 -#endif - -/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ -#if defined __clang_major__ && __clang_major__ < 14 -/* Work around Clang bug . */ -# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 -#else -# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW -#endif - -/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for - __builtin_sub_overflow_p and __builtin_mul_overflow_p. */ -#ifdef __EDG__ -/* In EDG-based compilers like ICC 2021.3 and earlier, - __builtin_add_overflow_p etc. are not treated as integral constant - expressions even when all arguments are. */ -# define _GL_HAS_BUILTIN_OVERFLOW_P 0 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_OVERFLOW_P __has_builtin (__builtin_mul_overflow_p) -#else -# define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) -#endif - -/* The _GL*_OVERFLOW macros have the same restrictions as the - *_RANGE_OVERFLOW macros, except that they do not assume that operands - (e.g., A and B) have the same type as MIN and MAX. Instead, they assume - that the result (e.g., A + B) has that type. */ -#if _GL_HAS_BUILTIN_OVERFLOW_P -# define _GL_ADD_OVERFLOW(a, b, min, max) \ - __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0) -# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ - __builtin_sub_overflow_p (a, b, (__typeof__ ((a) - (b))) 0) -# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ - __builtin_mul_overflow_p (a, b, (__typeof__ ((a) * (b))) 0) -#else -# define _GL_ADD_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ - : (a) < 0 ? (b) <= (a) + (b) \ - : (b) < 0 ? (a) <= (a) + (b) \ - : (a) + (b) < (b)) -# define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ - : (a) < 0 ? 1 \ - : (b) < 0 ? (a) - (b) <= (a) \ - : (a) < (b)) -# define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ - (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ - || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) -#endif -#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ - : (a) < 0 ? (b) <= (a) + (b) - 1 \ - : (b) < 0 && (a) + (b) <= (a)) -#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ - ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ - : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ - : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) - -/* Return a nonzero value if A is a mathematical multiple of B, where - A is unsigned, B is negative, and MAX is the maximum value of A's - type. A's type must be the same as (A % B)'s type. Normally (A % - -B == 0) suffices, but things get tricky if -B would overflow. */ -#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ - (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ - ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ - ? (a) \ - : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ - : (a) % - (b)) \ - == 0) - -/* Check for integer overflow, and report low order bits of answer. - - The INT__OVERFLOW macros return 1 if the corresponding C operators - might not yield numerically correct answers due to arithmetic overflow. - The INT__WRAPV macros compute the low-order bits of the sum, - difference, and product of two C integers, and return 1 if these - low-order bits are not numerically correct. - These macros work correctly on all known practical hosts, and do not rely - on undefined behavior due to signed arithmetic overflow. - - Example usage, assuming A and B are long int: - - if (INT_MULTIPLY_OVERFLOW (a, b)) - printf ("result would overflow\n"); - else - printf ("result is %ld (no overflow)\n", a * b); - - Example usage with WRAPV flavor: - - long int result; - bool overflow = INT_MULTIPLY_WRAPV (a, b, &result); - printf ("result is %ld (%s)\n", result, - overflow ? "after overflow" : "no overflow"); - - Restrictions on these macros: - - These macros do not check for all possible numerical problems or - undefined or unspecified behavior: they do not check for division - by zero, for bad shift counts, or for shifting negative numbers. - - These macros may evaluate their arguments zero or multiple times, so the - arguments should not have side effects. - - The WRAPV macros are not constant expressions. They support only - +, binary -, and *. - - Because the WRAPV macros convert the result, they report overflow - in different circumstances than the OVERFLOW macros do. For - example, in the typical case with 16-bit 'short' and 32-bit 'int', - if A, B and R are all of type 'short' then INT_ADD_OVERFLOW (A, B) - returns false because the addition cannot overflow after A and B - are converted to 'int', whereas INT_ADD_WRAPV (A, B, &R) returns - true or false depending on whether the sum fits into 'short'. - - These macros are tuned for their last input argument being a constant. - - Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, - A % B, and A << B would overflow, respectively. */ - -#define INT_ADD_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) -#define INT_SUBTRACT_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) -#if _GL_HAS_BUILTIN_OVERFLOW_P -# define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a) -#else -# define INT_NEGATE_OVERFLOW(a) \ - INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) -#endif -#define INT_MULTIPLY_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) -#define INT_DIVIDE_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) -#define INT_REMAINDER_OVERFLOW(a, b) \ - _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) -#define INT_LEFT_SHIFT_OVERFLOW(a, b) \ - INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ - _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) - -/* Return 1 if the expression A B would overflow, - where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, - assuming MIN and MAX are the minimum and maximum for the result type. - Arguments should be free of side effects. */ -#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ - op_result_overflow (a, b, \ - _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ - _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) - -/* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. - Return 1 if the result overflows. See above for restrictions. */ -#if _GL_HAS_BUILTIN_ADD_OVERFLOW -# define INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) -# define INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) -#else -# define INT_ADD_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) -# define INT_SUBTRACT_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) -#endif -#if _GL_HAS_BUILTIN_MUL_OVERFLOW -# if ((9 < __GNUC__ + (3 <= __GNUC_MINOR__) \ - || (__GNUC__ == 8 && 4 <= __GNUC_MINOR__)) \ - && !defined __EDG__) -# define INT_MULTIPLY_WRAPV(a, b, r) __builtin_mul_overflow (a, b, r) -# else - /* Work around GCC bug 91450. */ -# define INT_MULTIPLY_WRAPV(a, b, r) \ - ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && EXPR_SIGNED (a) && EXPR_SIGNED (b) \ - && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ - ? ((void) __builtin_mul_overflow (a, b, r), 1) \ - : __builtin_mul_overflow (a, b, r)) -# endif -#else -# define INT_MULTIPLY_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) -#endif - -/* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 - https://llvm.org/bugs/show_bug.cgi?id=25390 - For now, assume all versions of GCC-like compilers generate bogus - warnings for _Generic. This matters only for compilers that - lack relevant builtins. */ -#if __GNUC__ || defined __clang__ -# define _GL__GENERIC_BOGUS 1 -#else -# define _GL__GENERIC_BOGUS 0 -#endif - -/* Store the low-order bits of A B into *R, where OP specifies - the operation and OVERFLOW the overflow predicate. Return 1 if the - result overflows. See above for restrictions. */ -#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS -# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ - (_Generic \ - (*(r), \ - signed char: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - signed char, SCHAR_MIN, SCHAR_MAX), \ - unsigned char: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned char, 0, UCHAR_MAX), \ - short int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - short int, SHRT_MIN, SHRT_MAX), \ - unsigned short int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned short int, 0, USHRT_MAX), \ - int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX), \ - unsigned int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned int, 0, UINT_MAX), \ - long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX), \ - unsigned long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX), \ - long long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX), \ - unsigned long long int: \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - unsigned long long int, 0, ULLONG_MAX))) -#else -/* Store the low-order bits of A B into *R, where OP specifies - the operation and OVERFLOW the overflow predicate. If *R is - signed, its type is ST with bounds SMIN..SMAX; otherwise its type - is UT with bounds U..UMAX. ST and UT are narrower than int. - Return 1 if the result overflows. See above for restrictions. */ -# if _GL_HAVE___TYPEOF__ -# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ - (TYPE_SIGNED (__typeof__ (*(r))) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) -# else -# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ - (overflow (a, b, smin, smax) \ - ? (overflow (a, b, 0, umax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ - : (overflow (a, b, 0, umax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) -# endif - -# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ - (sizeof *(r) == sizeof (signed char) \ - ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ - signed char, SCHAR_MIN, SCHAR_MAX, \ - unsigned char, UCHAR_MAX) \ - : sizeof *(r) == sizeof (short int) \ - ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ - short int, SHRT_MIN, SHRT_MAX, \ - unsigned short int, USHRT_MAX) \ - : sizeof *(r) == sizeof (int) \ - ? (EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - unsigned int, 0, UINT_MAX)) \ - : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) -# ifdef LLONG_MAX -# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - (sizeof *(r) == sizeof (long int) \ - ? (EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX)) \ - : (EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - unsigned long long int, 0, ULLONG_MAX))) -# else -# define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - (EXPR_SIGNED (*(r)) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - unsigned long int, 0, ULONG_MAX)) -# endif -#endif - -/* Store the low-order bits of A B into *R, where the operation - is given by OP. Use the unsigned type UT for calculation to avoid - overflow problems. *R's type is T, with extrema TMIN and TMAX. - T must be a signed integer type. Return 1 if the result overflows. */ -#define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ - (overflow (a, b, tmin, tmax) \ - ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ - : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) - -/* Return the low-order bits of A B, where the operation is given - by OP. Use the unsigned type UT for calculation to avoid undefined - behavior on signed integer overflow, and convert the result to type T. - UT is at least as wide as T and is no narrower than unsigned int, - T is two's complement, and there is no padding or trap representations. - Assume that converting UT to T yields the low-order bits, as is - done in all known two's-complement C compilers. E.g., see: - https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html - - According to the C standard, converting UT to T yields an - implementation-defined result or signal for values outside T's - range. However, code that works around this theoretical problem - runs afoul of a compiler bug in Oracle Studio 12.3 x86. See: - https://lists.gnu.org/r/bug-gnulib/2017-04/msg00049.html - As the compiler bug is real, don't try to work around the - theoretical problem. */ - -#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ - ((t) ((ut) (a) op (ut) (b))) - -/* Return true if the numeric values A + B, A - B, A * B fall outside - the range TMIN..TMAX. Arguments should be integer expressions - without side effects. TMIN should be signed and nonpositive. - TMAX should be positive, and should be signed unless TMIN is zero. */ -#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ - ((b) < 0 \ - ? (((tmin) \ - ? ((EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ - && (a) < (tmin) - (b)) \ - : (a) <= -1 - (b)) \ - || ((EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ - : (a) < 0 \ - ? (((tmin) \ - ? ((EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ - && (b) < (tmin) - (a)) \ - : (b) <= -1 - (a)) \ - || ((EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ - && (tmax) < (a) + (b))) \ - : (tmax) < (b) || (tmax) - (b) < (a)) -#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ - (((a) < 0) == ((b) < 0) \ - ? ((a) < (b) \ - ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ - : (tmax) < (a) - (b)) \ - : (a) < 0 \ - ? ((!EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ - || (a) - (tmin) < (b)) \ - : ((! (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ - && EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ - && (tmax) <= -1 - (b)) \ - || (tmax) + (b) < (a))) -#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ - ((b) < 0 \ - ? ((a) < 0 \ - ? (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ - ? (a) < (tmax) / (b) \ - : ((INT_NEGATE_OVERFLOW (b) \ - ? _GL_INT_CONVERT (b, tmax) >> (TYPE_WIDTH (+ (b)) - 1) \ - : (tmax) / -(b)) \ - <= -1 - (a))) \ - : INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ - ? (EXPR_SIGNED (a) \ - ? 0 < (a) + (tmin) \ - : 0 < (a) && -1 - (tmin) < (a) - 1) \ - : (tmin) / (b) < (a)) \ - : (b) == 0 \ - ? 0 \ - : ((a) < 0 \ - ? (INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ - ? (EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ - : (tmin) / (a) < (b)) \ - : (tmax) / (b) < (a))) - -/* The following macros compute A + B, A - B, and A * B, respectively. - If no overflow occurs, they set *R to the result and return 1; - otherwise, they return 0 and may modify *R. - - Example usage: - - long int result; - if (INT_ADD_OK (a, b, &result)) - printf ("result is %ld\n", result); - else - printf ("overflow\n"); - - A, B, and *R should be integers; they need not be the same type, - and they need not be all signed or all unsigned. - - These macros work correctly on all known practical hosts, and do not rely - on undefined behavior due to signed arithmetic overflow. - - These macros are not constant expressions. - - These macros may evaluate their arguments zero or multiple times, so the - arguments should not have side effects. - - These macros are tuned for B being a constant. */ - -#define INT_ADD_OK(a, b, r) ! INT_ADD_WRAPV (a, b, r) -#define INT_SUBTRACT_OK(a, b, r) ! INT_SUBTRACT_WRAPV (a, b, r) -#define INT_MULTIPLY_OK(a, b, r) ! INT_MULTIPLY_WRAPV (a, b, r) - -#endif /* _GL_INTPROPS_H */ diff --git a/jni/parted/libiconv/srclib/inttypes.h b/jni/parted/libiconv/srclib/inttypes.h deleted file mode 100755 index 445a599..0000000 --- a/jni/parted/libiconv/srclib/inttypes.h +++ /dev/null @@ -1,1509 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 2006-2022 Free Software Foundation, Inc. - Written by Paul Eggert, Bruno Haible, Derek Price. - This file is part of gnulib. - - This file 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 file 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 program. If not, see . */ - -/* - * ISO C 99 for platforms that lack it. - * - */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* Include the original if it exists, and if this file - has not been included yet or if this file includes gnulib stdint.h - which in turn includes this file. - The include_next requires a split double-inclusion guard. */ -#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H -# if 1 - - /* Some pre-C++11 implementations need this. */ -# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS -# define __STDC_FORMAT_MACROS 1 -# endif - -# include_next - -# define _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H -# endif -#endif - -#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H -#define INTTYPES_H - -/* Include or the gnulib replacement. - But avoid namespace pollution on glibc systems. */ -#ifndef __GLIBC__ -# include -#endif -/* Get CHAR_BIT, INT_MAX, LONG_MAX, etc. */ -#include -/* On mingw, __USE_MINGW_ANSI_STDIO only works if is also included */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include -#endif - -#if !(INT_MAX == 0x7fffffff && INT_MIN + INT_MAX == -1) -# error "This file assumes that 'int' is 32-bit two's complement. Please report your platform and compiler to ." -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* 7.8.1 Macros for format specifiers */ - -#if defined _TNS_R_TARGET - /* Tandem NonStop R series and compatible platforms released before - July 2005 support %Ld but not %lld. */ -# define _LONG_LONG_FORMAT_PREFIX "L" -#else -# define _LONG_LONG_FORMAT_PREFIX "ll" -#endif - -#if !defined PRId8 -# ifdef INT8_MAX -# define PRId8 "d" -# endif -#endif -#if !defined PRIi8 -# ifdef INT8_MAX -# define PRIi8 "i" -# endif -#endif -#if !defined PRIo8 -# ifdef UINT8_MAX -# define PRIo8 "o" -# endif -#endif -#if !defined PRIu8 -# ifdef UINT8_MAX -# define PRIu8 "u" -# endif -#endif -#if !defined PRIx8 -# ifdef UINT8_MAX -# define PRIx8 "x" -# endif -#endif -#if !defined PRIX8 -# ifdef UINT8_MAX -# define PRIX8 "X" -# endif -#endif -#if !defined PRId16 -# ifdef INT16_MAX -# define PRId16 "d" -# endif -#endif -#if !defined PRIi16 -# ifdef INT16_MAX -# define PRIi16 "i" -# endif -#endif -#if !defined PRIo16 -# ifdef UINT16_MAX -# define PRIo16 "o" -# endif -#endif -#if !defined PRIu16 -# ifdef UINT16_MAX -# define PRIu16 "u" -# endif -#endif -#if !defined PRIx16 -# ifdef UINT16_MAX -# define PRIx16 "x" -# endif -#endif -#if !defined PRIX16 -# ifdef UINT16_MAX -# define PRIX16 "X" -# endif -#endif -#if !defined PRId32 -# ifdef INT32_MAX -# define PRId32 "d" -# endif -#endif -#if !defined PRIi32 -# ifdef INT32_MAX -# define PRIi32 "i" -# endif -#endif -#if !defined PRIo32 -# ifdef UINT32_MAX -# define PRIo32 "o" -# endif -#endif -#if !defined PRIu32 -# ifdef UINT32_MAX -# define PRIu32 "u" -# endif -#endif -#if !defined PRIx32 -# ifdef UINT32_MAX -# define PRIx32 "x" -# endif -#endif -#if !defined PRIX32 -# ifdef UINT32_MAX -# define PRIX32 "X" -# endif -#endif -#ifdef INT64_MAX -# if (0 ? defined _LP64 : defined _LP64) -# define _PRI64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRI64_PREFIX "I64" -# elif LONG_MAX >> 30 == 1 -# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRId64 -# define PRId64 _PRI64_PREFIX "d" -# endif -# if !defined PRIi64 -# define PRIi64 _PRI64_PREFIX "i" -# endif -#endif -#ifdef UINT64_MAX -# if (0 ? defined _LP64 : defined _LP64) -# define _PRIu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _PRIu64_PREFIX "I64" -# elif ULONG_MAX >> 31 == 1 -# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined PRIo64 -# define PRIo64 _PRIu64_PREFIX "o" -# endif -# if !defined PRIu64 -# define PRIu64 _PRIu64_PREFIX "u" -# endif -# if !defined PRIx64 -# define PRIx64 _PRIu64_PREFIX "x" -# endif -# if !defined PRIX64 -# define PRIX64 _PRIu64_PREFIX "X" -# endif -#endif - -#if !defined PRIdLEAST8 -# define PRIdLEAST8 "d" -#endif -#if !defined PRIiLEAST8 -# define PRIiLEAST8 "i" -#endif -#if !defined PRIoLEAST8 -# define PRIoLEAST8 "o" -#endif -#if !defined PRIuLEAST8 -# define PRIuLEAST8 "u" -#endif -#if !defined PRIxLEAST8 -# define PRIxLEAST8 "x" -#endif -#if !defined PRIXLEAST8 -# define PRIXLEAST8 "X" -#endif -#if !defined PRIdLEAST16 -# define PRIdLEAST16 "d" -#endif -#if !defined PRIiLEAST16 -# define PRIiLEAST16 "i" -#endif -#if !defined PRIoLEAST16 -# define PRIoLEAST16 "o" -#endif -#if !defined PRIuLEAST16 -# define PRIuLEAST16 "u" -#endif -#if !defined PRIxLEAST16 -# define PRIxLEAST16 "x" -#endif -#if !defined PRIXLEAST16 -# define PRIXLEAST16 "X" -#endif -#if !defined PRIdLEAST32 -# define PRIdLEAST32 "d" -#endif -#if !defined PRIiLEAST32 -# define PRIiLEAST32 "i" -#endif -#if !defined PRIoLEAST32 -# define PRIoLEAST32 "o" -#endif -#if !defined PRIuLEAST32 -# define PRIuLEAST32 "u" -#endif -#if !defined PRIxLEAST32 -# define PRIxLEAST32 "x" -#endif -#if !defined PRIXLEAST32 -# define PRIXLEAST32 "X" -#endif -#ifdef INT64_MAX -# if !defined PRIdLEAST64 -# define PRIdLEAST64 PRId64 -# endif -# if !defined PRIiLEAST64 -# define PRIiLEAST64 PRIi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined PRIoLEAST64 -# define PRIoLEAST64 PRIo64 -# endif -# if !defined PRIuLEAST64 -# define PRIuLEAST64 PRIu64 -# endif -# if !defined PRIxLEAST64 -# define PRIxLEAST64 PRIx64 -# endif -# if !defined PRIXLEAST64 -# define PRIXLEAST64 PRIX64 -# endif -#endif - -#if !defined PRIdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIdFAST8 PRId64 -# else -# define PRIdFAST8 "d" -# endif -#endif -#if !defined PRIiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define PRIiFAST8 PRIi64 -# else -# define PRIiFAST8 "i" -# endif -#endif -#if !defined PRIoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIoFAST8 PRIo64 -# else -# define PRIoFAST8 "o" -# endif -#endif -#if !defined PRIuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIuFAST8 PRIu64 -# else -# define PRIuFAST8 "u" -# endif -#endif -#if !defined PRIxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIxFAST8 PRIx64 -# else -# define PRIxFAST8 "x" -# endif -#endif -#if !defined PRIXFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define PRIXFAST8 PRIX64 -# else -# define PRIXFAST8 "X" -# endif -#endif -#if !defined PRIdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIdFAST16 PRId64 -# else -# define PRIdFAST16 "d" -# endif -#endif -#if !defined PRIiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define PRIiFAST16 PRIi64 -# else -# define PRIiFAST16 "i" -# endif -#endif -#if !defined PRIoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIoFAST16 PRIo64 -# else -# define PRIoFAST16 "o" -# endif -#endif -#if !defined PRIuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIuFAST16 PRIu64 -# else -# define PRIuFAST16 "u" -# endif -#endif -#if !defined PRIxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIxFAST16 PRIx64 -# else -# define PRIxFAST16 "x" -# endif -#endif -#if !defined PRIXFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define PRIXFAST16 PRIX64 -# else -# define PRIXFAST16 "X" -# endif -#endif -#if !defined PRIdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIdFAST32 PRId64 -# else -# define PRIdFAST32 "d" -# endif -#endif -#if !defined PRIiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define PRIiFAST32 PRIi64 -# else -# define PRIiFAST32 "i" -# endif -#endif -#if !defined PRIoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIoFAST32 PRIo64 -# else -# define PRIoFAST32 "o" -# endif -#endif -#if !defined PRIuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIuFAST32 PRIu64 -# else -# define PRIuFAST32 "u" -# endif -#endif -#if !defined PRIxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIxFAST32 PRIx64 -# else -# define PRIxFAST32 "x" -# endif -#endif -#if !defined PRIXFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define PRIXFAST32 PRIX64 -# else -# define PRIXFAST32 "X" -# endif -#endif -#ifdef INT64_MAX -# if !defined PRIdFAST64 -# define PRIdFAST64 PRId64 -# endif -# if !defined PRIiFAST64 -# define PRIiFAST64 PRIi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined PRIoFAST64 -# define PRIoFAST64 PRIo64 -# endif -# if !defined PRIuFAST64 -# define PRIuFAST64 PRIu64 -# endif -# if !defined PRIxFAST64 -# define PRIxFAST64 PRIx64 -# endif -# if !defined PRIXFAST64 -# define PRIXFAST64 PRIX64 -# endif -#endif - -#if !defined PRIdMAX -# if 1 -# define PRIdMAX PRId64 -# else -# define PRIdMAX "ld" -# endif -#endif -#if !defined PRIiMAX -# if 1 -# define PRIiMAX PRIi64 -# else -# define PRIiMAX "li" -# endif -#endif -#if !defined PRIoMAX -# if 1 -# define PRIoMAX PRIo64 -# else -# define PRIoMAX "lo" -# endif -#endif -#if !defined PRIuMAX -# if 1 -# define PRIuMAX PRIu64 -# else -# define PRIuMAX "lu" -# endif -#endif -#if !defined PRIxMAX -# if 1 -# define PRIxMAX PRIx64 -# else -# define PRIxMAX "lx" -# endif -#endif -#if !defined PRIXMAX -# if 1 -# define PRIXMAX PRIX64 -# else -# define PRIXMAX "lX" -# endif -#endif - -#if !defined PRIdPTR -# ifdef INTPTR_MAX -# define PRIdPTR __PRIPTR_PREFIX "d" -# endif -#endif -#if !defined PRIiPTR -# ifdef INTPTR_MAX -# define PRIiPTR __PRIPTR_PREFIX "i" -# endif -#endif -#if !defined PRIoPTR -# ifdef UINTPTR_MAX -# define PRIoPTR __PRIPTR_PREFIX "o" -# endif -#endif -#if !defined PRIuPTR -# ifdef UINTPTR_MAX -# define PRIuPTR __PRIPTR_PREFIX "u" -# endif -#endif -#if !defined PRIxPTR -# ifdef UINTPTR_MAX -# define PRIxPTR __PRIPTR_PREFIX "x" -# endif -#endif -#if !defined PRIXPTR -# ifdef UINTPTR_MAX -# define PRIXPTR __PRIPTR_PREFIX "X" -# endif -#endif - -#if !defined SCNd8 -# ifdef INT8_MAX -# define SCNd8 "hhd" -# endif -#endif -#if !defined SCNi8 -# ifdef INT8_MAX -# define SCNi8 "hhi" -# endif -#endif -#if !defined SCNo8 -# ifdef UINT8_MAX -# define SCNo8 "hho" -# endif -#endif -#if !defined SCNu8 -# ifdef UINT8_MAX -# define SCNu8 "hhu" -# endif -#endif -#if !defined SCNx8 -# ifdef UINT8_MAX -# define SCNx8 "hhx" -# endif -#endif -#if !defined SCNd16 -# ifdef INT16_MAX -# define SCNd16 "hd" -# endif -#endif -#if !defined SCNi16 -# ifdef INT16_MAX -# define SCNi16 "hi" -# endif -#endif -#if !defined SCNo16 -# ifdef UINT16_MAX -# define SCNo16 "ho" -# endif -#endif -#if !defined SCNu16 -# ifdef UINT16_MAX -# define SCNu16 "hu" -# endif -#endif -#if !defined SCNx16 -# ifdef UINT16_MAX -# define SCNx16 "hx" -# endif -#endif -#if !defined SCNd32 -# ifdef INT32_MAX -# define SCNd32 "d" -# endif -#endif -#if !defined SCNi32 -# ifdef INT32_MAX -# define SCNi32 "i" -# endif -#endif -#if !defined SCNo32 -# ifdef UINT32_MAX -# define SCNo32 "o" -# endif -#endif -#if !defined SCNu32 -# ifdef UINT32_MAX -# define SCNu32 "u" -# endif -#endif -#if !defined SCNx32 -# ifdef UINT32_MAX -# define SCNx32 "x" -# endif -#endif -#ifdef INT64_MAX -# if (0 ? defined _LP64 : defined _LP64) -# define _SCN64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCN64_PREFIX "I64" -# elif LONG_MAX >> 30 == 1 -# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNd64 -# define SCNd64 _SCN64_PREFIX "d" -# endif -# if !defined SCNi64 -# define SCNi64 _SCN64_PREFIX "i" -# endif -#endif -#ifdef UINT64_MAX -# if (0 ? defined _LP64 : defined _LP64) -# define _SCNu64_PREFIX "l" -# elif defined _MSC_VER || defined __MINGW32__ -# define _SCNu64_PREFIX "I64" -# elif ULONG_MAX >> 31 == 1 -# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX -# endif -# if !defined SCNo64 -# define SCNo64 _SCNu64_PREFIX "o" -# endif -# if !defined SCNu64 -# define SCNu64 _SCNu64_PREFIX "u" -# endif -# if !defined SCNx64 -# define SCNx64 _SCNu64_PREFIX "x" -# endif -#endif - -#if !defined SCNdLEAST8 -# define SCNdLEAST8 "hhd" -#endif -#if !defined SCNiLEAST8 -# define SCNiLEAST8 "hhi" -#endif -#if !defined SCNoLEAST8 -# define SCNoLEAST8 "hho" -#endif -#if !defined SCNuLEAST8 -# define SCNuLEAST8 "hhu" -#endif -#if !defined SCNxLEAST8 -# define SCNxLEAST8 "hhx" -#endif -#if !defined SCNdLEAST16 -# define SCNdLEAST16 "hd" -#endif -#if !defined SCNiLEAST16 -# define SCNiLEAST16 "hi" -#endif -#if !defined SCNoLEAST16 -# define SCNoLEAST16 "ho" -#endif -#if !defined SCNuLEAST16 -# define SCNuLEAST16 "hu" -#endif -#if !defined SCNxLEAST16 -# define SCNxLEAST16 "hx" -#endif -#if !defined SCNdLEAST32 -# define SCNdLEAST32 "d" -#endif -#if !defined SCNiLEAST32 -# define SCNiLEAST32 "i" -#endif -#if !defined SCNoLEAST32 -# define SCNoLEAST32 "o" -#endif -#if !defined SCNuLEAST32 -# define SCNuLEAST32 "u" -#endif -#if !defined SCNxLEAST32 -# define SCNxLEAST32 "x" -#endif -#ifdef INT64_MAX -# if !defined SCNdLEAST64 -# define SCNdLEAST64 SCNd64 -# endif -# if !defined SCNiLEAST64 -# define SCNiLEAST64 SCNi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined SCNoLEAST64 -# define SCNoLEAST64 SCNo64 -# endif -# if !defined SCNuLEAST64 -# define SCNuLEAST64 SCNu64 -# endif -# if !defined SCNxLEAST64 -# define SCNxLEAST64 SCNx64 -# endif -#endif - -#if !defined SCNdFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNdFAST8 SCNd64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNdFAST8 "hd" -# elif INT_FAST8_MAX == 0x7f -# define SCNdFAST8 "hhd" -# else -# define SCNdFAST8 "d" -# endif -#endif -#if !defined SCNiFAST8 -# if INT_FAST8_MAX > INT32_MAX -# define SCNiFAST8 SCNi64 -# elif INT_FAST8_MAX == 0x7fff -# define SCNiFAST8 "hi" -# elif INT_FAST8_MAX == 0x7f -# define SCNiFAST8 "hhi" -# else -# define SCNiFAST8 "i" -# endif -#endif -#if !defined SCNoFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNoFAST8 SCNo64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNoFAST8 "ho" -# elif UINT_FAST8_MAX == 0xff -# define SCNoFAST8 "hho" -# else -# define SCNoFAST8 "o" -# endif -#endif -#if !defined SCNuFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNuFAST8 SCNu64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNuFAST8 "hu" -# elif UINT_FAST8_MAX == 0xff -# define SCNuFAST8 "hhu" -# else -# define SCNuFAST8 "u" -# endif -#endif -#if !defined SCNxFAST8 -# if UINT_FAST8_MAX > UINT32_MAX -# define SCNxFAST8 SCNx64 -# elif UINT_FAST8_MAX == 0xffff -# define SCNxFAST8 "hx" -# elif UINT_FAST8_MAX == 0xff -# define SCNxFAST8 "hhx" -# else -# define SCNxFAST8 "x" -# endif -#endif -#if !defined SCNdFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNdFAST16 SCNd64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNdFAST16 "hd" -# else -# define SCNdFAST16 "d" -# endif -#endif -#if !defined SCNiFAST16 -# if INT_FAST16_MAX > INT32_MAX -# define SCNiFAST16 SCNi64 -# elif INT_FAST16_MAX == 0x7fff -# define SCNiFAST16 "hi" -# else -# define SCNiFAST16 "i" -# endif -#endif -#if !defined SCNoFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNoFAST16 SCNo64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNoFAST16 "ho" -# else -# define SCNoFAST16 "o" -# endif -#endif -#if !defined SCNuFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNuFAST16 SCNu64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNuFAST16 "hu" -# else -# define SCNuFAST16 "u" -# endif -#endif -#if !defined SCNxFAST16 -# if UINT_FAST16_MAX > UINT32_MAX -# define SCNxFAST16 SCNx64 -# elif UINT_FAST16_MAX == 0xffff -# define SCNxFAST16 "hx" -# else -# define SCNxFAST16 "x" -# endif -#endif -#if !defined SCNdFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNdFAST32 SCNd64 -# else -# define SCNdFAST32 "d" -# endif -#endif -#if !defined SCNiFAST32 -# if INT_FAST32_MAX > INT32_MAX -# define SCNiFAST32 SCNi64 -# else -# define SCNiFAST32 "i" -# endif -#endif -#if !defined SCNoFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNoFAST32 SCNo64 -# else -# define SCNoFAST32 "o" -# endif -#endif -#if !defined SCNuFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNuFAST32 SCNu64 -# else -# define SCNuFAST32 "u" -# endif -#endif -#if !defined SCNxFAST32 -# if UINT_FAST32_MAX > UINT32_MAX -# define SCNxFAST32 SCNx64 -# else -# define SCNxFAST32 "x" -# endif -#endif -#ifdef INT64_MAX -# if !defined SCNdFAST64 -# define SCNdFAST64 SCNd64 -# endif -# if !defined SCNiFAST64 -# define SCNiFAST64 SCNi64 -# endif -#endif -#ifdef UINT64_MAX -# if !defined SCNoFAST64 -# define SCNoFAST64 SCNo64 -# endif -# if !defined SCNuFAST64 -# define SCNuFAST64 SCNu64 -# endif -# if !defined SCNxFAST64 -# define SCNxFAST64 SCNx64 -# endif -#endif - -#if !defined SCNdMAX -# if 1 -# define SCNdMAX SCNd64 -# else -# define SCNdMAX "ld" -# endif -#endif -#if !defined SCNiMAX -# if 1 -# define SCNiMAX SCNi64 -# else -# define SCNiMAX "li" -# endif -#endif -#if !defined SCNoMAX -# if 1 -# define SCNoMAX SCNo64 -# else -# define SCNoMAX "lo" -# endif -#endif -#if !defined SCNuMAX -# if 1 -# define SCNuMAX SCNu64 -# else -# define SCNuMAX "lu" -# endif -#endif -#if !defined SCNxMAX -# if 1 -# define SCNxMAX SCNx64 -# else -# define SCNxMAX "lx" -# endif -#endif - -#if !defined SCNdPTR -# ifdef INTPTR_MAX -# define SCNdPTR __PRIPTR_PREFIX "d" -# endif -#endif -#if !defined SCNiPTR -# ifdef INTPTR_MAX -# define SCNiPTR __PRIPTR_PREFIX "i" -# endif -#endif -#if !defined SCNoPTR -# ifdef UINTPTR_MAX -# define SCNoPTR __PRIPTR_PREFIX "o" -# endif -#endif -#if !defined SCNuPTR -# ifdef UINTPTR_MAX -# define SCNuPTR __PRIPTR_PREFIX "u" -# endif -#endif -#if !defined SCNxPTR -# ifdef UINTPTR_MAX -# define SCNxPTR __PRIPTR_PREFIX "x" -# endif -#endif - -/* 7.8.2 Functions for greatest-width integer types */ - -#ifdef __cplusplus -extern "C" { -#endif - -#if 0 -# if !1 -extern intmax_t imaxabs (intmax_t); -# endif -#elif defined GNULIB_POSIXCHECK -# undef imaxabs -# if HAVE_RAW_DECL_IMAXABS -_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " - "use gnulib module imaxabs for portability"); -# endif -#endif - -#if 0 -# if !1 -# if !GNULIB_defined_imaxdiv_t -typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; -# define GNULIB_defined_imaxdiv_t 1 -# endif -# endif -# if !1 -extern imaxdiv_t imaxdiv (intmax_t, intmax_t); -# endif -#elif defined GNULIB_POSIXCHECK -# undef imaxdiv -# if HAVE_RAW_DECL_IMAXDIV -_GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " - "use gnulib module imaxdiv for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtoimax -# define strtoimax rpl_strtoimax -# endif -_GL_FUNCDECL_RPL (strtoimax, intmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoimax, intmax_t, - (const char *restrict, char **restrict, int)); -# else -# if !1 -# undef strtoimax -_GL_FUNCDECL_SYS (strtoimax, intmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoimax, intmax_t, - (const char *restrict, char **restrict, int)); -# endif -_GL_CXXALIASWARN (strtoimax); -#elif defined GNULIB_POSIXCHECK -# undef strtoimax -# if HAVE_RAW_DECL_STRTOIMAX -_GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " - "use gnulib module strtoimax for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtoumax -# define strtoumax rpl_strtoumax -# endif -_GL_FUNCDECL_RPL (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int)); -# else -# if !1 -# undef strtoumax -_GL_FUNCDECL_SYS (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoumax, uintmax_t, - (const char *restrict, char **restrict, int)); -# endif -_GL_CXXALIASWARN (strtoumax); -#elif defined GNULIB_POSIXCHECK -# undef strtoumax -# if HAVE_RAW_DECL_STRTOUMAX -_GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " - "use gnulib module strtoumax for portability"); -# endif -#endif - -/* Don't bother defining or declaring wcstoimax and wcstoumax, since - wide-character functions like this are hardly ever useful. */ - -#ifdef __cplusplus -} -#endif - -#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ diff --git a/jni/parted/libiconv/srclib/libc-config.h b/jni/parted/libiconv/srclib/libc-config.h deleted file mode 100755 index a56665b..0000000 --- a/jni/parted/libiconv/srclib/libc-config.h +++ /dev/null @@ -1,202 +0,0 @@ -/* System definitions for code taken from the GNU C Library - - Copyright 2017-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this program; if not, see - . */ - -/* Written by Paul Eggert. */ - -/* This is intended to be a good-enough substitute for glibc system - macros like those defined in , so that Gnulib code - shared with glibc can do this as the first #include: - - #ifndef _LIBC - # include - #endif - - When compiled as part of glibc this is a no-op; when compiled as - part of Gnulib this includes Gnulib's and defines macros - that glibc library code would normally assume. - - Note: This header file MUST NOT be included by public header files - of Gnulib. */ - -#include - -/* On glibc this includes and and #defines - _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 and - DragonFlyBSD 5.9 it includes which defines __nonnull. - Elsewhere it is harmless. */ -#include - -/* From glibc . */ -#ifndef __set_errno -# define __set_errno(val) (errno = (val)) -#endif - -/* From glibc . */ - -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#ifndef __glibc_clang_prereq -# if defined __clang_major__ && defined __clang_minor__ -# ifdef __apple_build_version__ -/* Apple for some reason renumbers __clang_major__ and __clang_minor__. - Gnulib code uses only __glibc_clang_prereq (3, 5); map it to - 6000000 <= __apple_build_version__. Support for other calls to - __glibc_clang_prereq can be added here as needed. */ -# define __glibc_clang_prereq(maj, min) \ - ((maj) == 3 && (min) == 5 ? 6000000 <= __apple_build_version__ : 0) -# else -# define __glibc_clang_prereq(maj, min) \ - ((maj) < __clang_major__ + ((min) <= __clang_minor__)) -# endif -# else -# define __glibc_clang_prereq(maj, min) 0 -# endif -#endif - -#ifndef __attribute_nonnull__ -/* either does not exist, or is too old for Gnulib. - Prepare to include , which is Gnulib's version of a - more-recent glibc . */ - -/* Define _FEATURES_H so that does not include . */ -# ifndef _FEATURES_H -# define _FEATURES_H 1 -# endif -/* Define __GNULIB_CDEFS so that does not attempt to include - nonexistent files. */ -# define __GNULIB_CDEFS -/* Undef the macros unconditionally defined by our copy of glibc - , so that they do not clash with any system-defined - versions. */ -# undef _SYS_CDEFS_H -# undef __ASMNAME -# undef __ASMNAME2 -# undef __BEGIN_DECLS -# undef __CONCAT -# undef __END_DECLS -# undef __HAVE_GENERIC_SELECTION -# undef __LDBL_COMPAT -# undef __LDBL_REDIR -# undef __LDBL_REDIR1 -# undef __LDBL_REDIR1_DECL -# undef __LDBL_REDIR1_NTH -# undef __LDBL_REDIR2_DECL -# undef __LDBL_REDIR_DECL -# undef __LDBL_REDIR_NTH -# undef __LEAF -# undef __LEAF_ATTR -# undef __NTH -# undef __NTHNL -# undef __REDIRECT -# undef __REDIRECT_LDBL -# undef __REDIRECT_NTH -# undef __REDIRECT_NTHNL -# undef __REDIRECT_NTH_LDBL -# undef __STRING -# undef __THROW -# undef __THROWNL -# undef __attr_access -# undef __attr_access_none -# undef __attr_dealloc -# undef __attr_dealloc_free -# undef __attribute__ -# undef __attribute_alloc_align__ -# undef __attribute_alloc_size__ -# undef __attribute_artificial__ -# undef __attribute_const__ -# undef __attribute_deprecated__ -# undef __attribute_deprecated_msg__ -# undef __attribute_format_arg__ -# undef __attribute_format_strfmon__ -# undef __attribute_malloc__ -# undef __attribute_maybe_unused__ -# undef __attribute_noinline__ -# undef __attribute_nonstring__ -# undef __attribute_pure__ -# undef __attribute_returns_twice__ -# undef __attribute_used__ -# undef __attribute_warn_unused_result__ -# undef __bos -# undef __bos0 -# undef __errordecl -# undef __extension__ -# undef __extern_always_inline -# undef __extern_inline -# undef __flexarr -# undef __fortified_attr_access -# undef __fortify_function -# undef __glibc_c99_flexarr_available -# undef __glibc_fortify -# undef __glibc_fortify_n -# undef __glibc_has_attribute -# undef __glibc_has_builtin -# undef __glibc_has_extension -# undef __glibc_likely -# undef __glibc_macro_warning -# undef __glibc_macro_warning1 -# undef __glibc_objsize -# undef __glibc_objsize0 -# undef __glibc_safe_len_cond -# undef __glibc_safe_or_unknown_len -# undef __glibc_unlikely -# undef __glibc_unsafe_len -# undef __glibc_unsigned_or_positive -# undef __inline -# undef __ptr_t -# undef __restrict -# undef __restrict_arr -# undef __va_arg_pack -# undef __va_arg_pack_len -# undef __warnattr -# undef __wur - -/* Include our copy of glibc . */ -# include - -/* __inline is too pessimistic for non-GCC. */ -# undef __inline -# ifndef HAVE___INLINE -# if 199901 <= __STDC_VERSION__ || defined inline -# define __inline inline -# else -# define __inline -# endif -# endif - -#endif /* defined __glibc_likely */ - - -/* A substitute for glibc , good enough for Gnulib. */ -#define attribute_hidden -#define libc_hidden_proto(name) -#define libc_hidden_def(name) -#define libc_hidden_weak(name) -#define libc_hidden_ver(local, name) -#define strong_alias(name, aliasname) -#define weak_alias(name, aliasname) - -/* A substitute for glibc , good enough for Gnulib. */ -#define SHLIB_COMPAT(lib, introduced, obsoleted) 0 -#define compat_symbol(lib, local, symbol, version) extern int dummy -#define versioned_symbol(lib, local, symbol, version) extern int dummy diff --git a/jni/parted/libiconv/srclib/limits.h b/jni/parted/libiconv/srclib/limits.h deleted file mode 100755 index 4f37f3c..0000000 --- a/jni/parted/libiconv/srclib/limits.h +++ /dev/null @@ -1,132 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright 2016-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined _GL_ALREADY_INCLUDING_LIMITS_H -/* Special invocation convention: - On Haiku/x86_64, we have a sequence of nested includes - -> -> . - In this situation, LONG_MAX and INT_MAX are not yet defined, - therefore we should not attempt to define LONG_BIT. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_LIMITS_H - -# define _GL_ALREADY_INCLUDING_LIMITS_H - -/* The include_next requires a split double-inclusion guard. */ -# include_next - -# undef _GL_ALREADY_INCLUDING_LIMITS_H - -#ifndef _GL_LIMITS_H -#define _GL_LIMITS_H - -#ifndef LLONG_MIN -# if defined LONG_LONG_MIN /* HP-UX 11.31 */ -# define LLONG_MIN LONG_LONG_MIN -# elif defined LONGLONG_MIN /* IRIX 6.5 */ -# define LLONG_MIN LONGLONG_MIN -# elif defined __GNUC__ -# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) -# endif -#endif -#ifndef LLONG_MAX -# if defined LONG_LONG_MAX /* HP-UX 11.31 */ -# define LLONG_MAX LONG_LONG_MAX -# elif defined LONGLONG_MAX /* IRIX 6.5 */ -# define LLONG_MAX LONGLONG_MAX -# elif defined __GNUC__ -# define LLONG_MAX __LONG_LONG_MAX__ -# endif -#endif -#ifndef ULLONG_MAX -# if defined ULONG_LONG_MAX /* HP-UX 11.31 */ -# define ULLONG_MAX ULONG_LONG_MAX -# elif defined ULONGLONG_MAX /* IRIX 6.5 */ -# define ULLONG_MAX ULONGLONG_MAX -# elif defined __GNUC__ -# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) -# endif -#endif - -/* The number of usable bits in an unsigned or signed integer type - with minimum value MIN and maximum value MAX, as an int expression - suitable in #if. Cover all known practical hosts. This - implementation exploits the fact that MAX is 1 less than a power of - 2, and merely counts the number of 1 bits in MAX; "COBn" means - "count the number of 1 bits in the low-order n bits"). */ -#define _GL_INTEGER_WIDTH(min, max) (((min) < 0) + _GL_COB128 (max)) -#define _GL_COB128(n) (_GL_COB64 ((n) >> 31 >> 31 >> 2) + _GL_COB64 (n)) -#define _GL_COB64(n) (_GL_COB32 ((n) >> 31 >> 1) + _GL_COB32 (n)) -#define _GL_COB32(n) (_GL_COB16 ((n) >> 16) + _GL_COB16 (n)) -#define _GL_COB16(n) (_GL_COB8 ((n) >> 8) + _GL_COB8 (n)) -#define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) -#define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) - -#ifndef WORD_BIT -/* Assume 'int' is 32 bits wide. */ -# define WORD_BIT 32 -#endif -#ifndef LONG_BIT -/* Assume 'long' is 32 or 64 bits wide. */ -# if LONG_MAX == INT_MAX -# define LONG_BIT 32 -# else -# define LONG_BIT 64 -# endif -#endif - -/* Macros specified by C2x and by ISO/IEC TS 18661-1:2014. */ - -#if (! defined ULLONG_WIDTH \ - && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__ \ - || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) -# define CHAR_WIDTH _GL_INTEGER_WIDTH (CHAR_MIN, CHAR_MAX) -# define SCHAR_WIDTH _GL_INTEGER_WIDTH (SCHAR_MIN, SCHAR_MAX) -# define UCHAR_WIDTH _GL_INTEGER_WIDTH (0, UCHAR_MAX) -# define SHRT_WIDTH _GL_INTEGER_WIDTH (SHRT_MIN, SHRT_MAX) -# define USHRT_WIDTH _GL_INTEGER_WIDTH (0, USHRT_MAX) -# define INT_WIDTH _GL_INTEGER_WIDTH (INT_MIN, INT_MAX) -# define UINT_WIDTH _GL_INTEGER_WIDTH (0, UINT_MAX) -# define LONG_WIDTH _GL_INTEGER_WIDTH (LONG_MIN, LONG_MAX) -# define ULONG_WIDTH _GL_INTEGER_WIDTH (0, ULONG_MAX) -# define LLONG_WIDTH _GL_INTEGER_WIDTH (LLONG_MIN, LLONG_MAX) -# define ULLONG_WIDTH _GL_INTEGER_WIDTH (0, ULLONG_MAX) -#endif - -/* Macros specified by C2x. */ - -#if (! defined BOOL_WIDTH \ - && (defined _GNU_SOURCE \ - || (defined __STDC_VERSION__ && 201710 < __STDC_VERSION__))) -# define BOOL_MAX 1 -# define BOOL_WIDTH 1 -#endif - -#endif /* _GL_LIMITS_H */ -#endif /* _GL_LIMITS_H */ -#endif diff --git a/jni/parted/libiconv/srclib/localcharset.h b/jni/parted/libiconv/srclib/localcharset.h deleted file mode 100755 index 62efbf3..0000000 --- a/jni/parted/libiconv/srclib/localcharset.h +++ /dev/null @@ -1,137 +0,0 @@ -/* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2022 Free Software Foundation, Inc. - This file is part of the GNU CHARSET Library. - - This file 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 file 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 program. If not, see . */ - -#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 below. - The result must not be freed; it is statically allocated. The result - becomes invalid when setlocale() is used to change the global locale, or - when the value of one of the environment variables LC_ALL, LC_CTYPE, LANG - is changed; threads in multithreaded programs should not do this. - If the canonical name cannot be determined, the result is a non-canonical - name. */ -extern const char * locale_charset (void); - -/* About GNU canonical names for character encodings: - - Every canonical name must be supported by GNU libiconv. Support by GNU libc - is also desirable. - - The name is case insensitive. Usually an upper case MIME charset name is - preferred. - - The current list of these GNU canonical names is: - - name MIME? used by which systems - (darwin = Mac OS X, windows = native Windows) - - ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix cygwin - ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-3 Y glibc solaris cygwin - ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin - ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-6 Y glibc aix hpux solaris cygwin - ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin zos - ISO-8859-8 Y glibc aix hpux osf solaris cygwin zos - ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin zos - ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin - ISO-8859-14 glibc cygwin - ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin - KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin - KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin - 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 openbsd darwin dos - CP869 dos - CP874 windows dos - CP922 aix - CP932 aix cygwin windows dos - CP943 aix zos - CP949 osf darwin windows dos - CP950 windows dos - CP1046 aix - CP1124 aix - CP1125 dos - CP1129 aix - CP1131 freebsd darwin - CP1250 windows - CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows - CP1252 aix windows - CP1253 windows - CP1254 windows - CP1255 glibc windows - CP1256 windows - CP1257 windows - GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin zos - EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin - EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin zos - EUC-TW glibc aix hpux irix osf solaris netbsd - BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin zos - BIG5-HKSCS glibc hpux solaris netbsd darwin - GBK glibc aix osf solaris freebsd darwin cygwin windows dos - GB18030 glibc hpux solaris freebsd netbsd darwin - SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin - JOHAB glibc solaris windows - TIS-620 glibc aix hpux osf solaris cygwin zos - VISCII Y glibc - TCVN5712-1 glibc - ARMSCII-8 glibc freebsd netbsd darwin - GEORGIAN-PS glibc cygwin - PT154 glibc netbsd cygwin - 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 cygwin zos - - 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. - */ - - -#ifdef __cplusplus -} -#endif - - -#endif /* _LOCALCHARSET_H */ diff --git a/jni/parted/libiconv/srclib/malloc.c b/jni/parted/libiconv/srclib/malloc.c deleted file mode 100755 index f334dd6..0000000 --- a/jni/parted/libiconv/srclib/malloc.c +++ /dev/null @@ -1,51 +0,0 @@ -/* malloc() function that is glibc compatible. - - Copyright (C) 1997-1998, 2006-2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Jim Meyering and Bruno Haible */ - -#define _GL_USE_STDLIB_ALLOC 1 -#include - -#include - -#include - -#include "xalloc-oversized.h" - -/* Allocate an N-byte block of memory from the heap, even if N is 0. */ - -void * -rpl_malloc (size_t n) -{ - if (n == 0) - n = 1; - - if (xalloc_oversized (n, 1)) - { - errno = ENOMEM; - return NULL; - } - - void *result = malloc (n); - -#if !HAVE_MALLOC_POSIX - if (result == NULL) - errno = ENOMEM; -#endif - - return result; -} diff --git a/jni/parted/libiconv/srclib/malloc/.dirstamp b/jni/parted/libiconv/srclib/malloc/.dirstamp deleted file mode 100755 index e69de29..0000000 diff --git a/jni/parted/libiconv/srclib/malloc/scratch_buffer.h b/jni/parted/libiconv/srclib/malloc/scratch_buffer.h deleted file mode 100755 index e4c5c8a..0000000 --- a/jni/parted/libiconv/srclib/malloc/scratch_buffer.h +++ /dev/null @@ -1,151 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _SCRATCH_BUFFER_H -#define _SCRATCH_BUFFER_H - -/* Scratch buffers with a default stack allocation and fallback to - heap allocation. It is expected that this function is used in this - way: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - return -1; - - scratch_buffer_free (&tmpbuf); - return 0; - - The allocation functions (scratch_buffer_grow, - scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make - sure that the heap allocation, if any, is freed, so that the code - above does not have a memory leak. The buffer still remains in a - state that can be deallocated using scratch_buffer_free, so a loop - like this is valid as well: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - break; - - scratch_buffer_free (&tmpbuf); - - scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed - to grow the buffer by at least 512 bytes. This means that when - using the scratch buffer as a backing store for a non-character - array whose element size, in bytes, is 512 or smaller, the scratch - buffer only has to grow once to make room for at least one more - element. -*/ - -#include -#include -#include - -/* Scratch buffer. Must be initialized with scratch_buffer_init - before its use. */ -struct scratch_buffer { - void *data; /* Pointer to the beginning of the scratch area. */ - size_t length; /* Allocated space at the data pointer, in bytes. */ - union { max_align_t __align; char __c[1024]; } __space; -}; - -/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space - and BUFFER->length reflects the available space. */ -static inline void -scratch_buffer_init (struct scratch_buffer *buffer) -{ - buffer->data = buffer->__space.__c; - buffer->length = sizeof (buffer->__space); -} - -/* Deallocates *BUFFER (if it was heap-allocated). */ -static inline void -scratch_buffer_free (struct scratch_buffer *buffer) -{ - if (buffer->data != buffer->__space.__c) - free (buffer->data); -} - -/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT - preserved. Return true on success, false on allocation failure (in - which case the old buffer is freed). On success, the new buffer is - larger than the previous size. On failure, *BUFFER is deallocated, - but remains in a free-able state, and errno is set. */ -bool __libc_scratch_buffer_grow (struct scratch_buffer *buffer); -libc_hidden_proto (__libc_scratch_buffer_grow) - -/* Alias for __libc_scratch_buffer_grow. */ -static __always_inline bool -scratch_buffer_grow (struct scratch_buffer *buffer) -{ - return __glibc_likely (__libc_scratch_buffer_grow (buffer)); -} - -/* Like __libc_scratch_buffer_grow, but preserve the old buffer - contents on success, as a prefix of the new buffer. */ -bool __libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer); -libc_hidden_proto (__libc_scratch_buffer_grow_preserve) - -/* Alias for __libc_scratch_buffer_grow_preserve. */ -static __always_inline bool -scratch_buffer_grow_preserve (struct scratch_buffer *buffer) -{ - return __glibc_likely (__libc_scratch_buffer_grow_preserve (buffer)); -} - -/* Grow *BUFFER so that it can store at least NELEM elements of SIZE - bytes. The buffer contents are NOT preserved. Both NELEM and SIZE - can be zero. Return true on success, false on allocation failure - (in which case the old buffer is freed, but *BUFFER remains in a - free-able state, and errno is set). It is unspecified whether this - function can reduce the array size. */ -bool __libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size); -libc_hidden_proto (__libc_scratch_buffer_set_array_size) - -/* Alias for __libc_scratch_set_array_size. */ -static __always_inline bool -scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size) -{ - return __glibc_likely (__libc_scratch_buffer_set_array_size - (buffer, nelem, size)); -} - -/* Return a copy of *BUFFER's first SIZE bytes as a heap-allocated block, - deallocating *BUFFER if it was heap-allocated. SIZE must be at - most *BUFFER's size. Return NULL (setting errno) on memory - exhaustion. */ -void *__libc_scratch_buffer_dupfree (struct scratch_buffer *buffer, - size_t size); -libc_hidden_proto (__libc_scratch_buffer_dupfree) - -/* Alias for __libc_scratch_dupfree. */ -static __always_inline void * -scratch_buffer_dupfree (struct scratch_buffer *buffer, size_t size) -{ - void *r = __libc_scratch_buffer_dupfree (buffer, size); - return __glibc_likely (r != NULL) ? r : NULL; -} - -#endif /* _SCRATCH_BUFFER_H */ diff --git a/jni/parted/libiconv/srclib/malloc/scratch_buffer_dupfree.c b/jni/parted/libiconv/srclib/malloc/scratch_buffer_dupfree.c deleted file mode 100755 index eb3b95c..0000000 --- a/jni/parted/libiconv/srclib/malloc/scratch_buffer_dupfree.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2020-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include - -void * -__libc_scratch_buffer_dupfree (struct scratch_buffer *buffer, size_t size) -{ - void *data = buffer->data; - if (data == buffer->__space.__c) - { - void *copy = malloc (size); - return copy != NULL ? memcpy (copy, data, size) : NULL; - } - else - { - void *copy = realloc (data, size); - return copy != NULL ? copy : data; - } -} -libc_hidden_def (__libc_scratch_buffer_dupfree) diff --git a/jni/parted/libiconv/srclib/malloc/scratch_buffer_grow.c b/jni/parted/libiconv/srclib/malloc/scratch_buffer_grow.c deleted file mode 100755 index 9a5e4db..0000000 --- a/jni/parted/libiconv/srclib/malloc/scratch_buffer_grow.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include - -bool -__libc_scratch_buffer_grow (struct scratch_buffer *buffer) -{ - void *new_ptr; - size_t new_length = buffer->length * 2; - - /* Discard old buffer. */ - scratch_buffer_free (buffer); - - /* Check for overflow. */ - if (__glibc_likely (new_length >= buffer->length)) - new_ptr = malloc (new_length); - else - { - __set_errno (ENOMEM); - new_ptr = NULL; - } - - if (__glibc_unlikely (new_ptr == NULL)) - { - /* Buffer must remain valid to free. */ - scratch_buffer_init (buffer); - return false; - } - - /* Install new heap-based buffer. */ - buffer->data = new_ptr; - buffer->length = new_length; - return true; -} -libc_hidden_def (__libc_scratch_buffer_grow) diff --git a/jni/parted/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c b/jni/parted/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c deleted file mode 100755 index 3fe5a07..0000000 --- a/jni/parted/libiconv/srclib/malloc/scratch_buffer_grow_preserve.c +++ /dev/null @@ -1,67 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include -#include - -bool -__libc_scratch_buffer_grow_preserve (struct scratch_buffer *buffer) -{ - size_t new_length = 2 * buffer->length; - void *new_ptr; - - if (buffer->data == buffer->__space.__c) - { - /* Move buffer to the heap. No overflow is possible because - buffer->length describes a small buffer on the stack. */ - new_ptr = malloc (new_length); - if (new_ptr == NULL) - return false; - memcpy (new_ptr, buffer->__space.__c, buffer->length); - } - else - { - /* Buffer was already on the heap. Check for overflow. */ - if (__glibc_likely (new_length >= buffer->length)) - new_ptr = realloc (buffer->data, new_length); - else - { - __set_errno (ENOMEM); - new_ptr = NULL; - } - - if (__glibc_unlikely (new_ptr == NULL)) - { - /* Deallocate, but buffer must remain valid to free. */ - free (buffer->data); - scratch_buffer_init (buffer); - return false; - } - } - - /* Install new heap-based buffer. */ - buffer->data = new_ptr; - buffer->length = new_length; - return true; -} -libc_hidden_def (__libc_scratch_buffer_grow_preserve) diff --git a/jni/parted/libiconv/srclib/malloc/scratch_buffer_set_array_size.c b/jni/parted/libiconv/srclib/malloc/scratch_buffer_set_array_size.c deleted file mode 100755 index 89c37a9..0000000 --- a/jni/parted/libiconv/srclib/malloc/scratch_buffer_set_array_size.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C 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. - - The GNU C 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 GNU C Library; if not, see - . */ - -#ifndef _LIBC -# include -#endif - -#include -#include -#include - -bool -__libc_scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size) -{ - size_t new_length = nelem * size; - - /* Avoid overflow check if both values are small. */ - if ((nelem | size) >> (sizeof (size_t) * CHAR_BIT / 2) != 0 - && nelem != 0 && size != new_length / nelem) - { - /* Overflow. Discard the old buffer, but it must remain valid - to free. */ - scratch_buffer_free (buffer); - scratch_buffer_init (buffer); - __set_errno (ENOMEM); - return false; - } - - if (new_length <= buffer->length) - return true; - - /* Discard old buffer. */ - scratch_buffer_free (buffer); - - char *new_ptr = malloc (new_length); - if (new_ptr == NULL) - { - /* Buffer must remain valid to free. */ - scratch_buffer_init (buffer); - return false; - } - - /* Install new heap-based buffer. */ - buffer->data = new_ptr; - buffer->length = new_length; - return true; -} -libc_hidden_def (__libc_scratch_buffer_set_array_size) diff --git a/jni/parted/libiconv/srclib/malloca.h b/jni/parted/libiconv/srclib/malloca.h deleted file mode 100755 index 7ec235f..0000000 --- a/jni/parted/libiconv/srclib/malloca.h +++ /dev/null @@ -1,126 +0,0 @@ -/* Safe automatic memory allocation. - Copyright (C) 2003-2007, 2009-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MALLOCA_H -#define _MALLOCA_H - -#include -#include -#include -#include - -#include "xalloc-oversized.h" - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* safe_alloca(N) is equivalent to alloca(N) when it is safe to call - alloca(N); otherwise it returns NULL. It either returns N bytes of - memory allocated on the stack, that lasts until the function returns, - or NULL. - Use of safe_alloca should be avoided: - - inside arguments of function calls - undefined behaviour, - - in inline functions - the allocation may actually last until the - calling function returns. -*/ -#if HAVE_ALLOCA -/* The OS usually guarantees only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely - allocate anything larger than 4096 bytes. Also care for the possibility - of a few compiler-allocated temporary stack slots. - This must be a macro, not a function. */ -# define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) -#else -# define safe_alloca(N) ((void) (N), NULL) -#endif - -/* Free a block of memory allocated through malloca(). */ -#if HAVE_ALLOCA -extern void freea (void *p); -#else -# define freea free -#endif - -/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of - memory allocated on the stack, that must be freed using freea() before - the function returns. Upon failure, it returns NULL. */ -#if HAVE_ALLOCA -# define malloca(N) \ - ((N) < 4032 - (2 * sa_alignment_max - 1) \ - ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ - + (2 * sa_alignment_max - 1)) \ - & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ - : mmalloca (N)) -#else -# define malloca(N) \ - mmalloca (N) -#endif -extern void *mmalloca (size_t n) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC (freea, 1) - _GL_ATTRIBUTE_ALLOC_SIZE ((1)); - -/* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). - It allocates an array of N objects, each with S bytes of memory, - on the stack. N and S should be nonnegative and free of side effects. - The array must be freed using freea() before the function returns. */ -#define nmalloca(n, s) \ - (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s))) - - -#ifdef __cplusplus -} -#endif - - -/* ------------------- Auxiliary, non-public definitions ------------------- */ - -/* Determine the alignment of a type at compile time. */ -#if defined __GNUC__ || defined __clang__ || defined __IBM__ALIGNOF__ -# define sa_alignof __alignof__ -#elif defined __cplusplus - template struct sa_alignof_helper { char __slot1; type __slot2; }; -# define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) -#elif defined __hpux - /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof - values. */ -# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) -#elif defined _AIX - /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof - values. */ -# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) -#else -# define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) -#endif - -enum -{ -/* The desired alignment of memory allocations is the maximum alignment - among all elementary types. */ - sa_alignment_long = sa_alignof (long), - sa_alignment_double = sa_alignof (double), - sa_alignment_longlong = sa_alignof (long long), - sa_alignment_longdouble = sa_alignof (long double), - sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) - | (sa_alignment_longlong - 1) - | (sa_alignment_longdouble - 1) - ) + 1 -}; - -#endif /* _MALLOCA_H */ diff --git a/jni/parted/libiconv/srclib/mempcpy.c b/jni/parted/libiconv/srclib/mempcpy.c deleted file mode 100755 index 9aae418..0000000 --- a/jni/parted/libiconv/srclib/mempcpy.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copy memory area and return pointer after last written byte. - Copyright (C) 2003, 2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* A function definition is only needed if HAVE_MEMPCPY is not defined. */ -#if !HAVE_MEMPCPY - -/* Copy N bytes of SRC to DEST, return pointer to bytes after the - last written byte. */ -void * -mempcpy (void *dest, const void *src, size_t n) -{ - return (char *) memcpy (dest, src, n) + n; -} - -#endif diff --git a/jni/parted/libiconv/srclib/minmax.h b/jni/parted/libiconv/srclib/minmax.h deleted file mode 100755 index b4b1345..0000000 --- a/jni/parted/libiconv/srclib/minmax.h +++ /dev/null @@ -1,60 +0,0 @@ -/* MIN, MAX macros. - Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2022 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MINMAX_H -#define _MINMAX_H - -/* Note: MIN, MAX are also defined in on some systems - (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about - MIN, MAX macro redefinitions on some systems; the workaround is to - #include this file as the last one among the #include list. */ - -/* Before we define the following symbols we get the file - since otherwise we get redefinitions on some systems if is - included after this file. Likewise for . - If more than one of these system headers define MIN and MAX, pick just - one of the headers (because the definitions most likely are the same). */ -#if HAVE_MINMAX_IN_LIMITS_H -# include -#elif HAVE_MINMAX_IN_SYS_PARAM_H -# include -#endif - -/* Note: MIN and MAX should be used with two arguments of the - same type. They might not return the minimum and maximum of their two - arguments, if the arguments have different types or have unusual - floating-point values. For example, on a typical host with 32-bit 'int', - 64-bit 'long long', and 64-bit IEEE 754 'double' types: - - MAX (-1, 2147483648) returns 4294967295. - MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0. - MAX (NaN, 0.0) returns 0.0. - MAX (+0.0, -0.0) returns -0.0. - - and in each case the answer is in some sense bogus. */ - -/* MAX(a,b) returns the maximum of A and B. */ -#ifndef MAX -# define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif - -/* MIN(a,b) returns the minimum of A and B. */ -#ifndef MIN -# define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif - -#endif /* _MINMAX_H */ diff --git a/jni/parted/libiconv/srclib/msvc-inval.c b/jni/parted/libiconv/srclib/msvc-inval.c deleted file mode 100755 index d6651ca..0000000 --- a/jni/parted/libiconv/srclib/msvc-inval.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "msvc-inval.h" - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ - && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) - -/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler - declaration. */ -# include - -# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING - -static void __cdecl -gl_msvc_invalid_parameter_handler (const wchar_t *expression, - const wchar_t *function, - const wchar_t *file, - unsigned int line, - uintptr_t dummy) -{ -} - -# else - -/* Get declarations of the native Windows API functions. */ -# define WIN32_LEAN_AND_MEAN -# include - -# if defined _MSC_VER - -static void __cdecl -gl_msvc_invalid_parameter_handler (const wchar_t *expression, - const wchar_t *function, - const wchar_t *file, - unsigned int line, - uintptr_t dummy) -{ - RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); -} - -# else - -/* An index to thread-local storage. */ -static DWORD tls_index; -static int tls_initialized /* = 0 */; - -/* Used as a fallback only. */ -static struct gl_msvc_inval_per_thread not_per_thread; - -struct gl_msvc_inval_per_thread * -gl_msvc_inval_current (void) -{ - if (!tls_initialized) - { - tls_index = TlsAlloc (); - tls_initialized = 1; - } - if (tls_index == TLS_OUT_OF_INDEXES) - /* TlsAlloc had failed. */ - return ¬_per_thread; - else - { - struct gl_msvc_inval_per_thread *pointer = - (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); - if (pointer == NULL) - { - /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ - pointer = - (struct gl_msvc_inval_per_thread *) - malloc (sizeof (struct gl_msvc_inval_per_thread)); - if (pointer == NULL) - /* Could not allocate memory. Use the global storage. */ - pointer = ¬_per_thread; - TlsSetValue (tls_index, pointer); - } - return pointer; - } -} - -static void __cdecl -gl_msvc_invalid_parameter_handler (const wchar_t *expression, - const wchar_t *function, - const wchar_t *file, - unsigned int line, - uintptr_t dummy) -{ - struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); - if (current->restart_valid) - longjmp (current->restart, 1); - else - /* An invalid parameter notification from outside the gnulib code. - Give the caller a chance to intervene. */ - RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); -} - -# endif - -# endif - -static int gl_msvc_inval_initialized /* = 0 */; - -void -gl_msvc_inval_ensure_handler (void) -{ - if (gl_msvc_inval_initialized == 0) - { - _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); - gl_msvc_inval_initialized = 1; - } -} - -#endif diff --git a/jni/parted/libiconv/srclib/msvc-inval.h b/jni/parted/libiconv/srclib/msvc-inval.h deleted file mode 100755 index 1230b89..0000000 --- a/jni/parted/libiconv/srclib/msvc-inval.h +++ /dev/null @@ -1,222 +0,0 @@ -/* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MSVC_INVAL_H -#define _MSVC_INVAL_H - -/* With MSVC runtime libraries with the "invalid parameter handler" concept, - functions like fprintf(), dup2(), or close() crash when the caller passes - an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) - instead. - This file defines macros that turn such an invalid parameter notification - into a non-local exit. An error code can then be produced at the target - of this exit. You can thus write code like - - TRY_MSVC_INVAL - { - - } - CATCH_MSVC_INVAL - { - - } - DONE_MSVC_INVAL; - - This entire block expands to a single statement. - - The handling of invalid parameters can be done in three ways: - - * The default way, which is reasonable for programs (not libraries): - AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) - - * The way for libraries that make "hairy" calls (like close(-1), or - fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): - AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) - - * The way for libraries that make no "hairy" calls: - AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) - */ - -#define DEFAULT_HANDLING 0 -#define HAIRY_LIBRARY_HANDLING 1 -#define SANE_LIBRARY_HANDLING 2 - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ - && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) -/* A native Windows platform with the "invalid parameter handler" concept, - and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ - -# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING -/* Default handling. */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* Ensure that the invalid parameter handler in installed that just returns. - Because we assume no other part of the program installs a different - invalid parameter handler, this solution is multithread-safe. */ -extern void gl_msvc_inval_ensure_handler (void); - -# ifdef __cplusplus -} -# endif - -# define TRY_MSVC_INVAL \ - do \ - { \ - gl_msvc_inval_ensure_handler (); \ - if (1) -# define CATCH_MSVC_INVAL \ - else -# define DONE_MSVC_INVAL \ - } \ - while (0) - -# else -/* Handling for hairy libraries. */ - -# include - -/* Gnulib can define its own status codes, as described in the page - "Raising Software Exceptions" on microsoft.com - . - Our status codes are composed of - - 0xE0000000, mandatory for all user-defined status codes, - - 0x474E550, a API identifier ("GNU"), - - 0, 1, 2, ..., used to distinguish different status codes from the - same API. */ -# define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) - -# if defined _MSC_VER -/* A compiler that supports __try/__except, as described in the page - "try-except statement" on microsoft.com - . - With __try/__except, we can use the multithread-safe exception handling. */ - -# ifdef __cplusplus -extern "C" { -# endif - -/* Ensure that the invalid parameter handler in installed that raises a - software exception with code STATUS_GNULIB_INVALID_PARAMETER. - Because we assume no other part of the program installs a different - invalid parameter handler, this solution is multithread-safe. */ -extern void gl_msvc_inval_ensure_handler (void); - -# ifdef __cplusplus -} -# endif - -# define TRY_MSVC_INVAL \ - do \ - { \ - gl_msvc_inval_ensure_handler (); \ - __try -# define CATCH_MSVC_INVAL \ - __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ - ? EXCEPTION_EXECUTE_HANDLER \ - : EXCEPTION_CONTINUE_SEARCH) -# define DONE_MSVC_INVAL \ - } \ - while (0) - -# else -/* Any compiler. - We can only use setjmp/longjmp. */ - -# include - -# ifdef __cplusplus -extern "C" { -# endif - -struct gl_msvc_inval_per_thread -{ - /* The restart that will resume execution at the code between - CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between - TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ - jmp_buf restart; - - /* Tells whether the contents of restart is valid. */ - int restart_valid; -}; - -/* Ensure that the invalid parameter handler in installed that passes - control to the gl_msvc_inval_restart if it is valid, or raises a - software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. - Because we assume no other part of the program installs a different - invalid parameter handler, this solution is multithread-safe. */ -extern void gl_msvc_inval_ensure_handler (void); - -/* Return a pointer to the per-thread data for the current thread. */ -extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); - -# ifdef __cplusplus -} -# endif - -# define TRY_MSVC_INVAL \ - do \ - { \ - struct gl_msvc_inval_per_thread *msvc_inval_current; \ - gl_msvc_inval_ensure_handler (); \ - msvc_inval_current = gl_msvc_inval_current (); \ - /* First, initialize gl_msvc_inval_restart. */ \ - if (setjmp (msvc_inval_current->restart) == 0) \ - { \ - /* Then, mark it as valid. */ \ - msvc_inval_current->restart_valid = 1; -# define CATCH_MSVC_INVAL \ - /* Execution completed. \ - Mark gl_msvc_inval_restart as invalid. */ \ - msvc_inval_current->restart_valid = 0; \ - } \ - else \ - { \ - /* Execution triggered an invalid parameter notification. \ - Mark gl_msvc_inval_restart as invalid. */ \ - msvc_inval_current->restart_valid = 0; -# define DONE_MSVC_INVAL \ - } \ - } \ - while (0) - -# endif - -# endif - -#else -/* A platform that does not need to the invalid parameter handler, - or when SANE_LIBRARY_HANDLING is desired. */ - -/* The braces here avoid GCC warnings like - "warning: suggest explicit braces to avoid ambiguous 'else'". */ -# define TRY_MSVC_INVAL \ - do \ - { \ - if (1) -# define CATCH_MSVC_INVAL \ - else -# define DONE_MSVC_INVAL \ - } \ - while (0) - -#endif - -#endif /* _MSVC_INVAL_H */ diff --git a/jni/parted/libiconv/srclib/msvc-nothrow.c b/jni/parted/libiconv/srclib/msvc-nothrow.c deleted file mode 100755 index aa06964..0000000 --- a/jni/parted/libiconv/srclib/msvc-nothrow.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Wrappers that don't throw invalid parameter notifications - with MSVC runtime libraries. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "msvc-nothrow.h" - -/* Get declarations of the native Windows API functions. */ -#define WIN32_LEAN_AND_MEAN -#include - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -#endif - -#undef _get_osfhandle - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -intptr_t -_gl_nothrow_get_osfhandle (int fd) -{ - intptr_t result; - - TRY_MSVC_INVAL - { - result = _get_osfhandle (fd); - } - CATCH_MSVC_INVAL - { - result = (intptr_t) INVALID_HANDLE_VALUE; - } - DONE_MSVC_INVAL; - - return result; -} -#endif diff --git a/jni/parted/libiconv/srclib/msvc-nothrow.h b/jni/parted/libiconv/srclib/msvc-nothrow.h deleted file mode 100755 index 5345155..0000000 --- a/jni/parted/libiconv/srclib/msvc-nothrow.h +++ /dev/null @@ -1,43 +0,0 @@ -/* Wrappers that don't throw invalid parameter notifications - with MSVC runtime libraries. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _MSVC_NOTHROW_H -#define _MSVC_NOTHROW_H - -/* With MSVC runtime libraries with the "invalid parameter handler" concept, - functions like fprintf(), dup2(), or close() crash when the caller passes - an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) - instead. - This file defines wrappers that turn such an invalid parameter notification - into an error code. */ - -#if defined _WIN32 && ! defined __CYGWIN__ - -/* Get original declaration of _get_osfhandle. */ -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER - -/* Override _get_osfhandle. */ -extern intptr_t _gl_nothrow_get_osfhandle (int fd); -# define _get_osfhandle _gl_nothrow_get_osfhandle - -# endif - -#endif - -#endif /* _MSVC_NOTHROW_H */ diff --git a/jni/parted/libiconv/srclib/open.c b/jni/parted/libiconv/srclib/open.c deleted file mode 100755 index 170bff1..0000000 --- a/jni/parted/libiconv/srclib/open.c +++ /dev/null @@ -1,209 +0,0 @@ -/* Open a descriptor to a file. - Copyright (C) 2007-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2007. */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_open doesn't recurse to - rpl_open. */ -#define __need_system_fcntl_h -#include - -/* Get the original definition of open. It might be defined as a macro. */ -#include -#include -#undef __need_system_fcntl_h - -static int -orig_open (const char *filename, int flags, mode_t mode) -{ -#if defined _WIN32 && !defined __CYGWIN__ - return _open (filename, flags, mode); -#else - return open (filename, flags, mode); -#endif -} - -/* Specification. */ -/* Write "fcntl.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates - this include because of the preliminary #include above. */ -#include "fcntl.h" - -#include "cloexec.h" - -#include -#include -#include -#include -#include -#include - -#ifndef REPLACE_OPEN_DIRECTORY -# define REPLACE_OPEN_DIRECTORY 0 -#endif - -int -open (const char *filename, int flags, ...) -{ - /* 0 = unknown, 1 = yes, -1 = no. */ -#if GNULIB_defined_O_CLOEXEC - int have_cloexec = -1; -#else - static int have_cloexec; -#endif - - mode_t mode; - int fd; - - mode = 0; - if (flags & O_CREAT) - { - va_list arg; - va_start (arg, flags); - - /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 - creates crashing code when 'mode_t' is smaller than 'int'. */ - mode = va_arg (arg, PROMOTED_MODE_T); - - va_end (arg); - } - -#if GNULIB_defined_O_NONBLOCK - /* The only known platform that lacks O_NONBLOCK is mingw, but it - also lacks named pipes and Unix sockets, which are the only two - file types that require non-blocking handling in open(). - Therefore, it is safe to ignore O_NONBLOCK here. It is handy - that mingw also lacks openat(), so that is also covered here. */ - flags &= ~O_NONBLOCK; -#endif - -#if defined _WIN32 && ! defined __CYGWIN__ - if (strcmp (filename, "/dev/null") == 0) - filename = "NUL"; -#endif - -#if OPEN_TRAILING_SLASH_BUG - /* Fail if one of O_CREAT, O_WRONLY, O_RDWR is specified and the filename - ends in a slash, as POSIX says such a filename must name a directory - : - "A pathname that contains at least one non- character and that - ends with one or more trailing characters shall not be resolved - successfully unless the last pathname component before the trailing - characters names an existing directory" - If the named file already exists as a directory, then - - if O_CREAT is specified, open() must fail because of the semantics - of O_CREAT, - - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX - - says that it fails with errno = EISDIR in this case. - If the named file does not exist or does not name a directory, then - - if O_CREAT is specified, open() must fail since open() cannot create - directories, - - if O_WRONLY or O_RDWR is specified, open() must fail because the - file does not contain a '.' directory. */ - if ((flags & O_CREAT) - || (flags & O_ACCMODE) == O_RDWR - || (flags & O_ACCMODE) == O_WRONLY) - { - size_t len = strlen (filename); - if (len > 0 && filename[len - 1] == '/') - { - errno = EISDIR; - return -1; - } - } -#endif - - fd = orig_open (filename, - flags & ~(have_cloexec < 0 ? O_CLOEXEC : 0), mode); - - if (flags & O_CLOEXEC) - { - if (! have_cloexec) - { - if (0 <= fd) - have_cloexec = 1; - else if (errno == EINVAL) - { - fd = orig_open (filename, flags & ~O_CLOEXEC, mode); - have_cloexec = -1; - } - } - if (have_cloexec < 0 && 0 <= fd) - set_cloexec_flag (fd, true); - } - - -#if REPLACE_FCHDIR - /* Implementing fchdir and fdopendir requires the ability to open a - directory file descriptor. If open doesn't support that (as on - mingw), we use a dummy file that behaves the same as directories - on Linux (ie. always reports EOF on attempts to read()), and - override fstat() in fchdir.c to hide the fact that we have a - dummy. */ - if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES - && ((flags & O_ACCMODE) == O_RDONLY - || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) - { - struct stat statbuf; - if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) - { - /* Maximum recursion depth of 1. */ - fd = open ("/dev/null", flags, mode); - if (0 <= fd) - fd = _gl_register_fd (fd, filename); - } - else - errno = EACCES; - } -#endif - -#if OPEN_TRAILING_SLASH_BUG - /* If the filename ends in a slash and fd does not refer to a directory, - then fail. - Rationale: POSIX says such a filename must name a directory - : - "A pathname that contains at least one non- character and that - ends with one or more trailing characters shall not be resolved - successfully unless the last pathname component before the trailing - characters names an existing directory" - If the named file without the slash is not a directory, open() must fail - with ENOTDIR. */ - if (fd >= 0) - { - /* We know len is positive, since open did not fail with ENOENT. */ - size_t len = strlen (filename); - if (filename[len - 1] == '/') - { - struct stat statbuf; - - if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) - { - close (fd); - errno = ENOTDIR; - return -1; - } - } - } -#endif - -#if REPLACE_FCHDIR - if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) - fd = _gl_register_fd (fd, filename); -#endif - - return fd; -} diff --git a/jni/parted/libiconv/srclib/pathmax.h b/jni/parted/libiconv/srclib/pathmax.h deleted file mode 100755 index 19b93d7..0000000 --- a/jni/parted/libiconv/srclib/pathmax.h +++ /dev/null @@ -1,83 +0,0 @@ -/* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2022 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _PATHMAX_H -# define _PATHMAX_H - -/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, - including the terminating NUL byte. - - PATH_MAX is not defined on systems which have no limit on filename length, - such as GNU/Hurd. - - This file does *not* define PATH_MAX always. Programs that use this file - can handle the GNU/Hurd case in several ways: - - Either with a package-wide handling, or with a per-file handling, - - Either through a - #ifdef PATH_MAX - or through a fallback like - #ifndef PATH_MAX - # define PATH_MAX 8192 - #endif - or through a fallback like - #ifndef PATH_MAX - # define PATH_MAX pathconf ("/", _PC_PATH_MAX) - #endif - */ - -# include - -# include - -# ifndef _POSIX_PATH_MAX -# define _POSIX_PATH_MAX 256 -# endif - -/* Don't include sys/param.h if it already has been. */ -# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -# include -# endif - -# if !defined PATH_MAX && defined MAXPATHLEN -# define PATH_MAX MAXPATHLEN -# endif - -# ifdef __hpux -/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, - *not* including the terminating NUL byte, and is set to 1023. - Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is - not defined at all any more. */ -# undef PATH_MAX -# define PATH_MAX 1024 -# endif - -# if defined _WIN32 && ! defined __CYGWIN__ -/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, - section "Maximum Path Length Limitation", - - explains that the maximum size of a filename, including the terminating - NUL byte, is 260 = 3 + 256 + 1. - This is the same value as - - FILENAME_MAX in , - - _MAX_PATH in , - - MAX_PATH in . - Undefine the original value, because mingw's gets it wrong. */ -# undef PATH_MAX -# define PATH_MAX 260 -# endif - -#endif /* _PATHMAX_H */ diff --git a/jni/parted/libiconv/srclib/progname.h b/jni/parted/libiconv/srclib/progname.h deleted file mode 100755 index 1556a1d..0000000 --- a/jni/parted/libiconv/srclib/progname.h +++ /dev/null @@ -1,62 +0,0 @@ -/* Program name management. - Copyright (C) 2001-2004, 2006, 2009-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _PROGNAME_H -#define _PROGNAME_H - -/* Programs using this file should do the following in main(): - set_program_name (argv[0]); - */ - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* String containing name the program is called with. */ -extern DLL_VARIABLE const char *program_name; - -/* Set program_name, based on argv[0]. - argv0 must be a string allocated with indefinite extent, and must not be - modified after this call. */ -extern void set_program_name (const char *argv0); - -#if ENABLE_RELOCATABLE - -/* Set program_name, based on argv[0], and original installation prefix and - directory, for relocatability. */ -extern void set_program_name_and_installdir (const char *argv0, - const char *orig_installprefix, - const char *orig_installdir); -#undef set_program_name -#define set_program_name(ARG0) \ - set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR) - -/* Return the full pathname of the current executable, based on the earlier - call to set_program_name_and_installdir. Return NULL if unknown. */ -extern char *get_full_program_name (void); - -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif /* _PROGNAME_H */ diff --git a/jni/parted/libiconv/srclib/progreloc.c b/jni/parted/libiconv/srclib/progreloc.c deleted file mode 100755 index 8bb2576..0000000 --- a/jni/parted/libiconv/srclib/progreloc.c +++ /dev/null @@ -1,511 +0,0 @@ -/* Provide relocatable programs. - Copyright (C) 2003-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - - -#define _GL_USE_STDLIB_ALLOC 1 -#include - -/* Specification. */ -#include "progname.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -/* Get declaration of _NSGetExecutablePath on Mac OS X 10.2 or newer. */ -#if HAVE_MACH_O_DYLD_H -# include -#endif - -#if defined _WIN32 && !defined __CYGWIN__ -# define WINDOWS_NATIVE -#endif - -#ifdef WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include -#endif - -#ifdef __EMX__ -# define INCL_DOS -# include -#endif - -#include "relocatable.h" - -#ifdef NO_XMALLOC -# include "areadlink.h" -# define xreadlink areadlink -#else -# include "xreadlink.h" -#endif - -#ifdef NO_XMALLOC -# define xmalloc malloc -# define xstrdup strdup -#else -# include "xalloc.h" -#endif - -#ifndef O_EXEC -# define O_EXEC O_RDONLY /* This is often close enough in older systems. */ -#endif - -#if defined IN_RELOCWRAPPER && (!defined O_CLOEXEC || GNULIB_defined_O_CLOEXEC) -# undef O_CLOEXEC -# define O_CLOEXEC 0 -#endif - -/* Declare canonicalize_file_name. - The included above may be the system's one, not the gnulib - one. */ -extern char * canonicalize_file_name (const char *name); - -#if defined WINDOWS_NATIVE -/* Don't assume that UNICODE is not defined. */ -# undef GetModuleFileName -# define GetModuleFileName GetModuleFileNameA -#endif - -/* Pathname support. - ISSLASH(C) tests whether C is a directory separator character. - IS_FILE_NAME_WITH_DIR(P) tests whether P contains a directory specification. - */ -#if (defined _WIN32 && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ - /* Native Windows, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -# define HAS_DEVICE(P) \ - ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ - && (P)[1] == ':') -# define IS_FILE_NAME_WITH_DIR(P) \ - (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) -# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) -#else - /* Unix */ -# define ISSLASH(C) ((C) == '/') -# define IS_FILE_NAME_WITH_DIR(P) (strchr (P, '/') != NULL) -# define FILE_SYSTEM_PREFIX_LEN(P) 0 -#endif - -/* Use the system functions, not the gnulib overrides in this file. */ -#undef sprintf - -#undef set_program_name - - -#if ENABLE_RELOCATABLE - -#ifdef __sun - -/* Helper function, from gnulib module 'safe-read'. */ -static size_t -safe_read (int fd, void *buf, size_t count) -{ - for (;;) - { - ssize_t result = read (fd, buf, count); - - if (0 <= result || errno != EINTR) - return result; - } -} - -/* Helper function, from gnulib module 'full-read'. */ -static size_t -full_read (int fd, void *buf, size_t count) -{ - size_t total = 0; - const char *ptr = (const char *) buf; - - while (count > 0) - { - size_t n = safe_read (fd, ptr, count); - if (n == (size_t) -1) - break; - if (n == 0) - { - errno = 0; - break; - } - total += n; - ptr += n; - count -= n; - } - - return total; -} - -#endif - -#if defined __linux__ || defined __CYGWIN__ -/* File descriptor of the executable. - (Only used to verify that we find the correct executable.) */ -static int executable_fd = -1; -#endif - -/* Define this function only when it's needed. */ -#if !(defined WINDOWS_NATIVE || defined __EMX__) - -/* Tests whether a given filename may belong to the executable. */ -static bool -maybe_executable (const char *filename) -{ - /* The native Windows API lacks the access() function. */ -# if !defined WINDOWS_NATIVE - if (access (filename, X_OK) < 0) - return false; -# endif - -# if defined __linux__ || defined __CYGWIN__ - if (executable_fd >= 0) - { - /* If we already have an executable_fd, check that filename points to - the same inode. */ - struct stat statexe; - struct stat statfile; - - if (fstat (executable_fd, &statexe) >= 0) - return (stat (filename, &statfile) >= 0 - && statfile.st_dev - && statfile.st_dev == statexe.st_dev - && statfile.st_ino == statexe.st_ino); - } -# endif - - /* Check that the filename does not point to a directory. */ - { - struct stat statfile; - - return (stat (filename, &statfile) >= 0 - && ! S_ISDIR (statfile.st_mode)); - } -} - -#endif - -/* Determine the full pathname of the current executable, freshly allocated. - Return NULL if unknown. - Guaranteed to work on Linux and native Windows. Likely to work on the - other Unixes (maybe except BeOS), under most conditions. */ -static char * -find_executable (const char *argv0) -{ -#if defined WINDOWS_NATIVE - /* Native Windows only. - On Cygwin, it is better to use the Cygwin provided /proc interface, than - to use native Windows API and cygwin_conv_to_posix_path, because it - supports longer file names - (see ). */ - char location[MAX_PATH]; - int length = GetModuleFileName (NULL, location, sizeof (location)); - if (length < 0) - return NULL; - if (!IS_FILE_NAME_WITH_DIR (location)) - /* Shouldn't happen. */ - return NULL; - return xstrdup (location); -#elif defined __EMX__ - PPIB ppib; - char location[CCHMAXPATH]; - - /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/619_L2H_DosGetInfoBlocksSynt.html - for specification of DosGetInfoBlocks(). */ - if (DosGetInfoBlocks (NULL, &ppib)) - return NULL; - - /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html - for specification of DosQueryModuleName(). */ - if (DosQueryModuleName (ppib->pib_hmte, sizeof (location), location)) - return NULL; - - _fnslashify (location); - - return xstrdup (location); -#else /* Unix */ -# if defined __linux__ - /* The executable is accessible as /proc//exe. In newer Linux - versions, also as /proc/self/exe. Linux >= 2.1 provides a symlink - to the true pathname; older Linux versions give only device and ino, - enclosed in brackets, which we cannot use here. */ - { - char *link; - - link = xreadlink ("/proc/self/exe"); - if (link != NULL && link[0] != '[') - return link; - if (executable_fd < 0) - executable_fd = open ("/proc/self/exe", O_EXEC | O_CLOEXEC, 0); - - { - char buf[6+10+5]; - sprintf (buf, "/proc/%d/exe", getpid ()); - link = xreadlink (buf); - if (link != NULL && link[0] != '[') - return link; - if (executable_fd < 0) - executable_fd = open (buf, O_EXEC | O_CLOEXEC, 0); - } - } -# endif -# if defined __ANDROID__ || defined __FreeBSD_kernel__ - /* On Android and GNU/kFreeBSD, the executable is accessible as - /proc//exe and /proc/self/exe. */ - { - char *link; - - link = xreadlink ("/proc/self/exe"); - if (link != NULL) - return link; - } -# endif -# if defined __FreeBSD__ || defined __DragonFly__ - /* In FreeBSD >= 5.0, the executable is accessible as /proc//file and - /proc/curproc/file. */ - { - char *link; - - link = xreadlink ("/proc/curproc/file"); - if (link != NULL) - { - if (strcmp (link, "unknown") != 0) - return link; - free (link); - } - } -# endif -# if defined __NetBSD__ - /* In NetBSD >= 4.0, the executable is accessible as /proc//exe and - /proc/curproc/exe. */ - { - char *link; - - link = xreadlink ("/proc/curproc/exe"); - if (link != NULL) - return link; - } -# endif -# if defined __sun - /* On Solaris >= 11.4, /proc//execname and /proc/self/execname contains - the name of the executable, either as an absolute file name or relative to - the current directory. */ - { - char namebuf[4096]; - int fd = open ("/proc/self/execname", O_RDONLY | O_CLOEXEC, 0); - if (fd >= 0) - { - size_t len = full_read (fd, namebuf, sizeof (namebuf)); - close (fd); - if (len > 0 && len < sizeof (namebuf)) - { - namebuf[len] = '\0'; - return canonicalize_file_name (namebuf); - } - } - } -# endif -# if defined __CYGWIN__ - /* The executable is accessible as /proc//exe, at least in - Cygwin >= 1.5. */ - { - char *link; - - link = xreadlink ("/proc/self/exe"); - if (link != NULL) - return link; - if (executable_fd < 0) - executable_fd = open ("/proc/self/exe", O_EXEC | O_CLOEXEC, 0); - } -# endif -# if HAVE_MACH_O_DYLD_H && HAVE__NSGETEXECUTABLEPATH - /* On Mac OS X 10.2 or newer, the function - int _NSGetExecutablePath (char *buf, uint32_t *bufsize); - can be used to retrieve the executable's full path. */ - char location[4096]; - unsigned int length = sizeof (location); - if (_NSGetExecutablePath (location, &length) == 0 - && location[0] == '/') - return canonicalize_file_name (location); -# endif - /* Guess the executable's full path. We assume the executable has been - called via execlp() or execvp() with properly set up argv[0]. The - login(1) convention to add a '-' prefix to argv[0] is not supported. */ - { - bool has_slash = false; - { - const char *p; - for (p = argv0; *p; p++) - if (*p == '/') - { - has_slash = true; - break; - } - } - if (!has_slash) - { - /* exec searches paths without slashes in the directory list given - by $PATH. */ - const char *path = getenv ("PATH"); - - if (path != NULL) - { - const char *p; - const char *p_next; - - for (p = path; *p; p = p_next) - { - const char *q; - size_t p_len; - char *concat_name; - - for (q = p; *q; q++) - if (*q == ':') - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - - /* We have a path item at p, of length p_len. - Now concatenate the path item and argv0. */ - concat_name = (char *) xmalloc (p_len + strlen (argv0) + 2); -# ifdef NO_XMALLOC - if (concat_name == NULL) - return NULL; -# endif - if (p_len == 0) - /* An empty PATH element designates the current directory. */ - strcpy (concat_name, argv0); - else - { - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, argv0); - } - if (maybe_executable (concat_name)) - return canonicalize_file_name (concat_name); - free (concat_name); - } - } - /* Not found in the PATH, assume the current directory. */ - } - /* exec treats paths containing slashes as relative to the current - directory. */ - if (maybe_executable (argv0)) - return canonicalize_file_name (argv0); - } - /* No way to find the executable. */ - return NULL; -#endif -} - -/* Full pathname of executable, or NULL. */ -static char *executable_fullname; - -static void -prepare_relocate (const char *orig_installprefix, const char *orig_installdir, - const char *argv0) -{ - char *curr_prefix; - - /* Determine the full pathname of the current executable. */ - executable_fullname = find_executable (argv0); - - /* Determine the current installation prefix from it. */ - curr_prefix = compute_curr_prefix (orig_installprefix, orig_installdir, - executable_fullname); - if (curr_prefix != NULL) - { - /* Now pass this prefix to all copies of the relocate.c source file. */ - set_relocation_prefix (orig_installprefix, curr_prefix); - - free (curr_prefix); - } -} - -/* Set program_name, based on argv[0], and original installation prefix and - directory, for relocatability. */ -void -set_program_name_and_installdir (const char *argv0, - const char *orig_installprefix, - const char *orig_installdir) -{ - const char *argv0_stripped = argv0; - - /* Relocatable programs are renamed to .bin by install-reloc. Or, more - generally, their suffix is changed from $exeext to .bin$exeext. - Remove the ".bin" here. */ - { - size_t argv0_len = strlen (argv0); - const size_t exeext_len = sizeof (EXEEXT) - sizeof (""); - if (argv0_len > 4 + exeext_len) - if (memcmp (argv0 + argv0_len - exeext_len - 4, ".bin", 4) == 0) - { - if (sizeof (EXEEXT) > sizeof ("")) - { - /* Compare using an inlined copy of c_strncasecmp(), because - the filenames may have undergone a case conversion since - they were packaged. In other words, EXEEXT may be ".exe" - on one system and ".EXE" on another. */ - static const char exeext[] = EXEEXT; - const char *s1 = argv0 + argv0_len - exeext_len; - const char *s2 = exeext; - for (; *s1 != '\0'; s1++, s2++) - { - unsigned char c1 = *s1; - unsigned char c2 = *s2; - if ((c1 >= 'A' && c1 <= 'Z' ? c1 - 'A' + 'a' : c1) - != (c2 >= 'A' && c2 <= 'Z' ? c2 - 'A' + 'a' : c2)) - goto done_stripping; - } - } - /* Remove ".bin" before EXEEXT or its equivalent. */ - { - char *shorter = (char *) xmalloc (argv0_len - 4 + 1); -#ifdef NO_XMALLOC - if (shorter != NULL) -#endif - { - memcpy (shorter, argv0, argv0_len - exeext_len - 4); - if (sizeof (EXEEXT) > sizeof ("")) - memcpy (shorter + argv0_len - exeext_len - 4, - argv0 + argv0_len - exeext_len - 4, - exeext_len); - shorter[argv0_len - 4] = '\0'; - argv0_stripped = shorter; - } - } - done_stripping: ; - } - } - - set_program_name (argv0_stripped); - - prepare_relocate (orig_installprefix, orig_installdir, argv0); -} - -/* Return the full pathname of the current executable, based on the earlier - call to set_program_name_and_installdir. Return NULL if unknown. */ -char * -get_full_program_name (void) -{ - return executable_fullname; -} - -#endif diff --git a/jni/parted/libiconv/srclib/raise.c b/jni/parted/libiconv/srclib/raise.c deleted file mode 100755 index 385ddd3..0000000 --- a/jni/parted/libiconv/srclib/raise.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Provide a non-threads replacement for the POSIX raise function. - - Copyright (C) 2002-2003, 2005-2006, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Jim Meyering and Bruno Haible */ - -#include - -/* Specification. */ -#include - -#if HAVE_RAISE -/* Native Windows platform. */ - -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -# endif - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -/* Forward declaration. */ -static int raise_nothrow (int sig); -# else -# define raise_nothrow raise -# endif - -#else -/* An old Unix platform. */ - -# include - -#endif - -int -raise (int sig) -#undef raise -{ -#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE - if (sig == SIGPIPE) - return _gl_raise_SIGPIPE (); -#endif - -#if HAVE_RAISE - return raise_nothrow (sig); -#else - return kill (getpid (), sig); -#endif -} - -#if HAVE_RAISE && HAVE_MSVC_INVALID_PARAMETER_HANDLER -static int -raise_nothrow (int sig) -{ - int result; - - TRY_MSVC_INVAL - { - result = raise (sig); - } - CATCH_MSVC_INVAL - { - result = -1; - errno = EINVAL; - } - DONE_MSVC_INVAL; - - return result; -} -#endif diff --git a/jni/parted/libiconv/srclib/read.c b/jni/parted/libiconv/srclib/read.c deleted file mode 100755 index 1bb7d90..0000000 --- a/jni/parted/libiconv/srclib/read.c +++ /dev/null @@ -1,95 +0,0 @@ -/* POSIX compatible read() function. - Copyright (C) 2008-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#if defined _WIN32 && ! defined __CYGWIN__ - -# include -# include - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -# endif -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Don't assume that UNICODE is not defined. */ -# undef GetNamedPipeHandleState -# define GetNamedPipeHandleState GetNamedPipeHandleStateA - -# undef read - -# if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static ssize_t -read_nothrow (int fd, void *buf, size_t count) -{ - ssize_t result; - - TRY_MSVC_INVAL - { - result = _read (fd, buf, count); - } - CATCH_MSVC_INVAL - { - result = -1; - errno = EBADF; - } - DONE_MSVC_INVAL; - - return result; -} -# else -# define read_nothrow _read -# endif - -ssize_t -rpl_read (int fd, void *buf, size_t count) -{ - ssize_t ret = read_nothrow (fd, buf, count); - -# if GNULIB_NONBLOCKING - if (ret < 0 - && GetLastError () == ERROR_NO_DATA) - { - HANDLE h = (HANDLE) _get_osfhandle (fd); - if (GetFileType (h) == FILE_TYPE_PIPE) - { - /* h is a pipe or socket. */ - DWORD state; - if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0) - && (state & PIPE_NOWAIT) != 0) - /* h is a pipe in non-blocking mode. - Change errno from EINVAL to EAGAIN. */ - errno = EAGAIN; - } - } -# endif - - return ret; -} - -#endif diff --git a/jni/parted/libiconv/srclib/readlink.c b/jni/parted/libiconv/srclib/readlink.c deleted file mode 100755 index ed03cc8..0000000 --- a/jni/parted/libiconv/srclib/readlink.c +++ /dev/null @@ -1,104 +0,0 @@ -/* Read the contents of a symbolic link. - Copyright (C) 2003-2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include - -#if !HAVE_READLINK - -/* readlink() substitute for systems that don't have a readlink() function, - such as DJGPP 2.03 and mingw32. */ - -ssize_t -readlink (char const *file, _GL_UNUSED char *buf, - _GL_UNUSED size_t bufsize) -{ - struct stat statbuf; - - /* In general we should use lstat() here, not stat(). But on platforms - without symbolic links, lstat() - if it exists - would be equivalent to - stat(), therefore we can use stat(). This saves us a configure check. */ - if (stat (file, &statbuf) >= 0) - errno = EINVAL; - return -1; -} - -#else /* HAVE_READLINK */ - -# undef readlink - -/* readlink() wrapper that uses correct types, for systems like cygwin - 1.5.x where readlink returns int, and which rejects trailing slash, - for Solaris 9. */ - -ssize_t -rpl_readlink (char const *file, char *buf, size_t bufsize) -{ -# if READLINK_TRAILING_SLASH_BUG - size_t file_len = strlen (file); - if (file_len && file[file_len - 1] == '/') - { - /* Even if FILE without the slash is a symlink to a directory, - both lstat() and stat() must resolve the trailing slash to - the directory rather than the symlink. We can therefore - safely use stat() to distinguish between EINVAL and - ENOTDIR/ENOENT, avoiding extra overhead of rpl_lstat(). */ - struct stat st; - if (stat (file, &st) == 0 || errno == EOVERFLOW) - errno = EINVAL; - return -1; - } -# endif /* READLINK_TRAILING_SLASH_BUG */ - - ssize_t r = readlink (file, buf, bufsize); - -# if READLINK_TRUNCATE_BUG - if (r < 0 && errno == ERANGE) - { - /* Try again with a bigger buffer. This is just for test cases; - real code invariably discards short reads. */ - char stackbuf[4032]; - r = readlink (file, stackbuf, sizeof stackbuf); - if (r < 0) - { - if (errno == ERANGE) - { - /* Clear the buffer, which is good enough for real code. - Thankfully, no test cases try short reads of enormous - symlinks and what would be the point anyway? */ - r = bufsize; - memset (buf, 0, r); - } - } - else - { - if (bufsize < r) - r = bufsize; - memcpy (buf, stackbuf, r); - } - } -# endif - - return r; -} - -#endif /* HAVE_READLINK */ diff --git a/jni/parted/libiconv/srclib/realloc.c b/jni/parted/libiconv/srclib/realloc.c deleted file mode 100755 index c878381..0000000 --- a/jni/parted/libiconv/srclib/realloc.c +++ /dev/null @@ -1,63 +0,0 @@ -/* realloc() function that is glibc compatible. - - Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2022 Free Software - Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* written by Jim Meyering and Bruno Haible */ - -#include - -#include - -#include - -#include "xalloc-oversized.h" - -/* Call the system's realloc below. This file does not define - _GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present. */ -#undef realloc - -/* Change the size of an allocated block of memory P to N bytes, - with error checking. If P is NULL, use malloc. Otherwise if N is zero, - free P and return NULL. */ - -void * -rpl_realloc (void *p, size_t n) -{ - if (p == NULL) - return malloc (n); - - if (n == 0) - { - free (p); - return NULL; - } - - if (xalloc_oversized (n, 1)) - { - errno = ENOMEM; - return NULL; - } - - void *result = realloc (p, n); - -#if !HAVE_MALLOC_POSIX - if (result == NULL) - errno = ENOMEM; -#endif - - return result; -} diff --git a/jni/parted/libiconv/srclib/relocatable.c b/jni/parted/libiconv/srclib/relocatable.c deleted file mode 100755 index 1ca8ec0..0000000 --- a/jni/parted/libiconv/srclib/relocatable.c +++ /dev/null @@ -1,603 +0,0 @@ -/* Provide relocatable packages. - Copyright (C) 2003-2006, 2008-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - - -/* Tell glibc's to provide a prototype for getline(). - This must come before because may include - , and once has been included, it's too late. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif - -#define _GL_USE_STDLIB_ALLOC 1 -#include - -/* Specification. */ -#include "relocatable.h" - -#if ENABLE_RELOCATABLE - -#include -#include -#include -#include - -#ifdef NO_XMALLOC -# define xmalloc malloc -#else -# include "xalloc.h" -#endif - -#if defined _WIN32 && !defined __CYGWIN__ -# define WIN32_LEAN_AND_MEAN -# include -#endif - -#ifdef __EMX__ -# define INCL_DOS -# include - -# define strcmp stricmp -# define strncmp strnicmp -#endif - -#if DEPENDS_ON_LIBCHARSET -# include -#endif -#if DEPENDS_ON_LIBICONV && HAVE_ICONV -# include -#endif -#if DEPENDS_ON_LIBINTL && ENABLE_NLS -# include -#endif - -#if defined _WIN32 && !defined __CYGWIN__ -/* Don't assume that UNICODE is not defined. */ -# undef GetModuleFileName -# define GetModuleFileName GetModuleFileNameA -#endif - -/* Faked cheap 'bool'. */ -#undef bool -#undef false -#undef true -#define bool int -#define false 0 -#define true 1 - -/* Pathname support. - ISSLASH(C) tests whether C is a directory separator character. - IS_FILE_NAME_WITH_DIR(P) tests whether P contains a directory specification. - */ -#if (defined _WIN32 && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__ - /* Native Windows, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -# define HAS_DEVICE(P) \ - ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \ - && (P)[1] == ':') -# define IS_FILE_NAME_WITH_DIR(P) \ - (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P)) -# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0) -#else - /* Unix */ -# define ISSLASH(C) ((C) == '/') -# define IS_FILE_NAME_WITH_DIR(P) (strchr (P, '/') != NULL) -# define FILE_SYSTEM_PREFIX_LEN(P) 0 -#endif - -/* Whether to enable the more costly support for relocatable libraries. - It allows libraries to be have been installed with a different original - prefix than the program. But it is quite costly, especially on Cygwin - platforms, see below. Therefore we enable it by default only on native - Windows platforms. */ -#ifndef ENABLE_COSTLY_RELOCATABLE -# if defined _WIN32 && !defined __CYGWIN__ -# define ENABLE_COSTLY_RELOCATABLE 1 -# else -# define ENABLE_COSTLY_RELOCATABLE 0 -# endif -#endif - -/* Original installation prefix. */ -static char *orig_prefix; -static size_t orig_prefix_len; -/* Current installation prefix. */ -static char *curr_prefix; -static size_t curr_prefix_len; -/* These prefixes do not end in a slash. Anything that will be concatenated - to them must start with a slash. */ - -/* Sets the original and the current installation prefix of this module. - 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 "/"). */ -static void -set_this_relocation_prefix (const char *orig_prefix_arg, - const char *curr_prefix_arg) -{ - if (orig_prefix_arg != NULL && curr_prefix_arg != NULL - /* Optimization: if orig_prefix and curr_prefix are equal, the - relocation is a nop. */ - && strcmp (orig_prefix_arg, curr_prefix_arg) != 0) - { - /* Duplicate the argument strings. */ - char *memory; - - orig_prefix_len = strlen (orig_prefix_arg); - curr_prefix_len = strlen (curr_prefix_arg); - memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1); -#ifdef NO_XMALLOC - if (memory != NULL) -#endif - { - memcpy (memory, orig_prefix_arg, orig_prefix_len + 1); - orig_prefix = memory; - memory += orig_prefix_len + 1; - memcpy (memory, curr_prefix_arg, curr_prefix_len + 1); - curr_prefix = memory; - return; - } - } - orig_prefix = NULL; - curr_prefix = NULL; - /* Don't worry about wasted memory here - this function is usually only - called once. */ -} - -/* 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 "/"). */ -void -set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg) -{ - set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg); - - /* Now notify all dependent libraries. */ -#if DEPENDS_ON_LIBCHARSET - libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); -#endif -#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109 - libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); -#endif -#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix - libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg); -#endif -} - -#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE) - -/* Convenience function: - Computes the current installation prefix, based on the original - installation prefix, the original installation directory of a particular - file, and the current pathname of this file. - Returns it, freshly allocated. Returns NULL upon failure. */ -#ifdef IN_LIBRARY -#define compute_curr_prefix local_compute_curr_prefix -static -#endif -char * -compute_curr_prefix (const char *orig_installprefix, - const char *orig_installdir, - const char *curr_pathname) -{ - char *curr_installdir; - const char *rel_installdir; - - if (curr_pathname == NULL) - return NULL; - - /* Determine the relative installation directory, relative to the prefix. - This is simply the difference between orig_installprefix and - orig_installdir. */ - if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix)) - != 0) - /* Shouldn't happen - nothing should be installed outside $(prefix). */ - return NULL; - rel_installdir = orig_installdir + strlen (orig_installprefix); - - /* Determine the current installation directory. */ - { - const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname); - const char *p = curr_pathname + strlen (curr_pathname); - char *q; - - while (p > p_base) - { - p--; - if (ISSLASH (*p)) - break; - } - - q = (char *) xmalloc (p - curr_pathname + 1); -#ifdef NO_XMALLOC - if (q == NULL) - return NULL; -#endif - memcpy (q, curr_pathname, p - curr_pathname); - q[p - curr_pathname] = '\0'; - curr_installdir = q; - } - - /* Compute the current installation prefix by removing the trailing - rel_installdir from it. */ - { - const char *rp = rel_installdir + strlen (rel_installdir); - const char *cp = curr_installdir + strlen (curr_installdir); - const char *cp_base = - curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir); - - while (rp > rel_installdir && cp > cp_base) - { - bool same = false; - const char *rpi = rp; - const char *cpi = cp; - - while (rpi > rel_installdir && cpi > cp_base) - { - rpi--; - cpi--; - if (ISSLASH (*rpi) || ISSLASH (*cpi)) - { - if (ISSLASH (*rpi) && ISSLASH (*cpi)) - same = true; - break; - } - /* Do case-insensitive comparison if the file system is always or - often case-insensitive. It's better to accept the comparison - if the difference is only in case, rather than to fail. */ -#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS - case insignificant file system */ - if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi) - != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi)) - break; -#else - if (*rpi != *cpi) - break; -#endif - } - if (!same) - break; - /* The last pathname component was the same. rpi and cpi now point - to the slash before it. */ - rp = rpi; - cp = cpi; - } - - if (rp > rel_installdir) - { - /* Unexpected: The curr_installdir does not end with rel_installdir. */ - free (curr_installdir); - return NULL; - } - - { - size_t computed_curr_prefix_len = cp - curr_installdir; - char *computed_curr_prefix; - - computed_curr_prefix = (char *) xmalloc (computed_curr_prefix_len + 1); -#ifdef NO_XMALLOC - if (computed_curr_prefix == NULL) - { - free (curr_installdir); - return NULL; - } -#endif - memcpy (computed_curr_prefix, curr_installdir, computed_curr_prefix_len); - computed_curr_prefix[computed_curr_prefix_len] = '\0'; - - free (curr_installdir); - - return computed_curr_prefix; - } - } -} - -#endif /* !IN_LIBRARY || PIC */ - -#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE - -/* Full pathname of shared library, or NULL. */ -static char *shared_library_fullname; - -#if defined _WIN32 && !defined __CYGWIN__ -/* Native Windows only. - On Cygwin, it is better to use the Cygwin provided /proc interface, than - to use native Windows API and cygwin_conv_to_posix_path, because it - supports longer file names - (see ). */ - -/* Determine the full pathname of the shared library when it is loaded. - - Documentation: - */ - -BOOL WINAPI -DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) -{ - (void) reserved; - - if (event == DLL_PROCESS_ATTACH) - { - /* The DLL is being loaded into an application's address range. */ - static char location[MAX_PATH]; - - if (!GetModuleFileName (module_handle, location, sizeof (location))) - /* Shouldn't happen. */ - return FALSE; - - if (!IS_FILE_NAME_WITH_DIR (location)) - /* Shouldn't happen. */ - return FALSE; - - /* Avoid a memory leak when the same DLL get attached, detached, - attached, detached, and so on. This happens e.g. when a spell - checker DLL is used repeatedly by a mail program. */ - if (!(shared_library_fullname != NULL - && strcmp (shared_library_fullname, location) == 0)) - /* Remember the full pathname of the shared library. */ - shared_library_fullname = strdup (location); - } - - return TRUE; -} - -#elif defined __EMX__ - -extern int _CRT_init (void); -extern void _CRT_term (void); -extern void __ctordtorInit (void); -extern void __ctordtorTerm (void); - -unsigned long _System -_DLL_InitTerm (unsigned long hModule, unsigned long ulFlag) -{ - static char location[CCHMAXPATH]; - - switch (ulFlag) - { - case 0: - if (_CRT_init () == -1) - return 0; - - __ctordtorInit(); - - /* See http://cyberkinetica.homeunix.net/os2tk45/cp1/1247_L2H_DosQueryModuleNameSy.html - for specification of DosQueryModuleName(). */ - if (DosQueryModuleName (hModule, sizeof (location), location)) - return 0; - - _fnslashify (location); - shared_library_fullname = strdup (location); - break; - - case 1: - __ctordtorTerm(); - - _CRT_term (); - break; - } - - return 1; -} - -#else /* Unix */ - -static void -find_shared_library_fullname () -{ -#if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__ - /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline() - function. - Cygwin >= 1.5 has /proc/self/maps and the getline() function too. - But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on - Cygwin 1.7. */ - FILE *fp; - - /* Open the current process' maps file. It describes one VMA per line. */ - fp = fopen ("/proc/self/maps", "r"); - if (fp) - { - unsigned long address = (unsigned long) &find_shared_library_fullname; - for (;;) - { - unsigned long start, end; - int c; - - if (fscanf (fp, "%lx-%lx", &start, &end) != 2) - break; - if (address >= start && address <= end - 1) - { - /* Found it. Now see if this line contains a filename. */ - while (c = getc (fp), c != EOF && c != '\n' && c != '/') - continue; - if (c == '/') - { - size_t size; - int len; - - ungetc (c, fp); - shared_library_fullname = NULL; size = 0; - len = getline (&shared_library_fullname, &size, fp); - if (len >= 0) - { - /* Success: filled shared_library_fullname. */ - if (len > 0 && shared_library_fullname[len - 1] == '\n') - shared_library_fullname[len - 1] = '\0'; - } - } - break; - } - while (c = getc (fp), c != EOF && c != '\n') - continue; - } - fclose (fp); - } -#endif -} - -#endif /* Native Windows / EMX / Unix */ - -/* Return the full pathname of the current shared library. - Return NULL if unknown. - Guaranteed to work only on Linux, EMX, Cygwin, and native Windows. */ -static char * -get_shared_library_fullname () -{ -#if !(defined _WIN32 && !defined __CYGWIN__) && !defined __EMX__ - static bool tried_find_shared_library_fullname; - if (!tried_find_shared_library_fullname) - { - find_shared_library_fullname (); - tried_find_shared_library_fullname = true; - } -#endif - return shared_library_fullname; -} - -#endif /* PIC */ - -/* Returns the pathname, relocated according to the current installation - directory. - The returned string is either PATHNAME unmodified or a freshly allocated - string that you can free with free() after casting it to 'char *'. */ -const char * -relocate (const char *pathname) -{ -#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE - static int initialized; - - /* Initialization code for a shared library. */ - if (!initialized) - { - /* At this point, orig_prefix and curr_prefix likely have already been - set through the main program's set_program_name_and_installdir - function. This is sufficient in the case that the library has - initially been installed in the same orig_prefix. But we can do - better, to also cover the cases that 1. it has been installed - in a different prefix before being moved to orig_prefix and (later) - to curr_prefix, 2. unlike the program, it has not moved away from - orig_prefix. */ - const char *orig_installprefix = INSTALLPREFIX; - const char *orig_installdir = INSTALLDIR; - char *curr_prefix_better; - - curr_prefix_better = - compute_curr_prefix (orig_installprefix, orig_installdir, - get_shared_library_fullname ()); - - set_relocation_prefix (orig_installprefix, - curr_prefix_better != NULL - ? curr_prefix_better - : curr_prefix); - - if (curr_prefix_better != NULL) - free (curr_prefix_better); - - initialized = 1; - } -#endif - - /* Note: It is not necessary to perform case insensitive comparison here, - even for DOS-like file systems, because the pathname argument was - typically created from the same Makefile variable as orig_prefix came - from. */ - if (orig_prefix != NULL && curr_prefix != NULL - && strncmp (pathname, orig_prefix, orig_prefix_len) == 0) - { - if (pathname[orig_prefix_len] == '\0') - { - /* pathname equals orig_prefix. */ - char *result = (char *) xmalloc (strlen (curr_prefix) + 1); - -#ifdef NO_XMALLOC - if (result != NULL) -#endif - { - strcpy (result, curr_prefix); - return result; - } - } - else if (ISSLASH (pathname[orig_prefix_len])) - { - /* pathname starts with orig_prefix. */ - const char *pathname_tail = &pathname[orig_prefix_len]; - char *result = - (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1); - -#ifdef NO_XMALLOC - if (result != NULL) -#endif - { - memcpy (result, curr_prefix, curr_prefix_len); - strcpy (result + curr_prefix_len, pathname_tail); - return result; - } - } - } - -#ifdef __EMX__ -# ifdef __KLIBC__ -# undef strncmp - - if (strncmp (pathname, "/@unixroot", 10) == 0 - && (pathname[10] == '\0' || ISSLASH (pathname[10]))) - { - /* kLIBC itself processes /@unixroot prefix */ - return pathname; - } - else -# endif - if (ISSLASH (pathname[0])) - { - const char *unixroot = getenv ("UNIXROOT"); - - if (unixroot && HAS_DEVICE (unixroot) && unixroot[2] == '\0') - { - char *result = (char *) xmalloc (2 + strlen (pathname) + 1); -#ifdef NO_XMALLOC - if (result != NULL) -#endif - { - memcpy (result, unixroot, 2); - strcpy (result + 2, pathname); - return result; - } - } - } -#endif - - /* Nothing to relocate. */ - return pathname; -} - -/* Returns the pathname, relocated according to the current installation - directory. - This function sets *ALLOCATEDP to the allocated memory, or to NULL if - no memory allocation occurs. So that, after you're done with the return - value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ -const char * -relocate2 (const char *pathname, char **allocatedp) -{ - const char *result = relocate (pathname); - *allocatedp = (result != pathname ? (char *) result : NULL); - return result; -} - -#endif diff --git a/jni/parted/libiconv/srclib/relocatable.h b/jni/parted/libiconv/srclib/relocatable.h deleted file mode 100755 index 49452fe..0000000 --- a/jni/parted/libiconv/srclib/relocatable.h +++ /dev/null @@ -1,104 +0,0 @@ -/* Provide relocatable packages. - Copyright (C) 2003, 2005, 2008-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - This file 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 file 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 program. If not, see . */ - -#ifndef _RELOCATABLE_H -#define _RELOCATABLE_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* This can be enabled through the configure --enable-relocatable option. */ -#if ENABLE_RELOCATABLE - -/* When building a DLL, we must export some functions. Note that because - this is a private .h file, we don't need to use __declspec(dllimport) - in any case. */ -#if HAVE_VISIBILITY && BUILDING_DLL -# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) -#elif defined _MSC_VER && BUILDING_DLL -# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) -#else -# define RELOCATABLE_DLL_EXPORTED -#endif - -/* 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 RELOCATABLE_DLL_EXPORTED void - set_relocation_prefix (const char *orig_prefix, - const char *curr_prefix); - -/* Returns the pathname, relocated according to the current installation - directory. - The returned string is either PATHNAME unmodified or a freshly allocated - string that you can free with free() after casting it to 'char *'. */ -extern const char * relocate (const char *pathname); - -/* Returns the pathname, relocated according to the current installation - directory. - This function sets *ALLOCATEDP to the allocated memory, or to NULL if - no memory allocation occurs. So that, after you're done with the return - value, to reclaim allocated memory, you can do: free (*ALLOCATEDP). */ -extern const char * relocate2 (const char *pathname, char **allocatedp); - -/* Memory management: relocate() potentially allocates memory, because it has - to construct a fresh pathname. If this is a problem because your program - calls relocate() frequently or because you want to fix all potential memory - leaks anyway, you have three options: - 1) Use this idiom: - const char *pathname = ...; - const char *rel_pathname = relocate (pathname); - ... - if (rel_pathname != pathname) - free ((char *) rel_pathname); - 2) Use this idiom: - char *allocated; - const char *rel_pathname = relocate2 (..., &allocated); - ... - free (allocated); - 3) Think about caching the result. */ - -/* Convenience function: - Computes the current installation prefix, based on the original - installation prefix, the original installation directory of a particular - file, and the current pathname of this file. - Returns it, freshly allocated. Returns NULL upon failure. */ -extern char * compute_curr_prefix (const char *orig_installprefix, - const char *orig_installdir, - const char *curr_pathname) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#else - -/* By default, we use the hardwired pathnames. */ -#define relocate(pathname) (pathname) -#define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _RELOCATABLE_H */ diff --git a/jni/parted/libiconv/srclib/relocwrapper.c b/jni/parted/libiconv/srclib/relocwrapper.c deleted file mode 100755 index ff0ad41..0000000 --- a/jni/parted/libiconv/srclib/relocwrapper.c +++ /dev/null @@ -1,224 +0,0 @@ -/* Relocating wrapper program. - Copyright (C) 2003, 2005-2007, 2009-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2003. - - 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 3 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, see . */ - -/* Dependencies: - relocwrapper - -> progname - -> progreloc - -> stat - -> filename - -> pathmax - -> verify - -> areadlink - -> careadlinkat - -> allocator - -> readlink - -> stat - -> canonicalize-lgpl - -> libc-config - -> errno - -> fcntl-h - -> stdbool - -> sys_stat - -> unistd - -> eloop-threshold - -> filename - -> idx - -> intprops - -> scratch_buffer - -> malloc-posix - -> realloc-posix - -> free-posix - -> pathmax - -> mempcpy - -> rawmemchr - -> readlink - -> stat - -> double-slash-root - -> relocatable - -> setenv - -> malloca - -> fprintf-posix [ignore, cut dependency tree here] - -> strerror [ignore, cut dependency tree here] - -> c-ctype - - Macros that need to be set while compiling this file: - - ENABLE_RELOCATABLE 1 - - INSTALLPREFIX the base installation directory - - INSTALLDIR the directory into which this program is installed - - LIBPATHVAR the platform dependent runtime library path variable - - LIBDIRS a comma-terminated list of strings representing the list of - directories that contain the libraries at installation time - - We don't want to internationalize this wrapper because then it would - depend on libintl and therefore need relocation itself. So use only - libc functions, no gettext(), no error(), no xmalloc(), no xsetenv(). - */ - -#define _GL_USE_STDLIB_ALLOC 1 -#include - -#include -#include -#include -#include -#include - -#include "progname.h" -#include "relocatable.h" -#include "c-ctype.h" -#include "verify.h" - -/* Use the system functions, not the gnulib overrides in this file. */ -#undef fprintf -#undef strerror - -/* Return a copy of the filename, with an extra ".bin" at the end. - More generally, it replaces "${EXEEXT}" at the end with ".bin${EXEEXT}". */ -static char * -add_dotbin (const char *filename) -{ - size_t filename_len = strlen (filename); - char *result = (char *) malloc (filename_len + 4 + 1); - - if (result != NULL) - { - if (sizeof (EXEEXT) > sizeof ("")) - { - /* EXEEXT handling. */ - const size_t exeext_len = sizeof (EXEEXT) - sizeof (""); - static const char exeext[] = EXEEXT; - if (filename_len > exeext_len) - { - /* Compare using an inlined copy of c_strncasecmp(), because - the filenames may have undergone a case conversion since - they were packaged. In other words, EXEEXT may be ".exe" - on one system and ".EXE" on another. */ - const char *s1 = filename + filename_len - exeext_len; - const char *s2 = exeext; - for (; *s1 != '\0'; s1++, s2++) - { - unsigned char c1 = *s1; - unsigned char c2 = *s2; - if (c_tolower (c1) != c_tolower (c2)) - goto simple_append; - } - /* Insert ".bin" before EXEEXT or its equivalent. */ - memcpy (result, filename, filename_len - exeext_len); - memcpy (result + filename_len - exeext_len, ".bin", 4); - memcpy (result + filename_len - exeext_len + 4, - filename + filename_len - exeext_len, - exeext_len + 1); - return result; - } - } - simple_append: - /* Simply append ".bin". */ - memcpy (result, filename, filename_len); - memcpy (result + filename_len, ".bin", 4 + 1); - return result; - } - else - { - fprintf (stderr, "%s: %s\n", program_name, "memory exhausted"); - exit (1); - } -} - -/* List of directories that contain the libraries. */ -static const char *libdirs[] = { LIBDIRS NULL }; -/* Verify that at least one directory is given. */ -verify (sizeof (libdirs) / sizeof (libdirs[0]) > 1); - -/* Relocate the list of directories that contain the libraries. */ -static void -relocate_libdirs () -{ - size_t i; - - for (i = 0; i < sizeof (libdirs) / sizeof (libdirs[0]) - 1; i++) - libdirs[i] = relocate (libdirs[i]); -} - -/* Activate the list of directories in the LIBPATHVAR. */ -static void -activate_libdirs () -{ - const char *old_value; - size_t total; - size_t i; - char *value; - char *p; - - old_value = getenv (LIBPATHVAR); - if (old_value == NULL) - old_value = ""; - - total = 0; - for (i = 0; i < sizeof (libdirs) / sizeof (libdirs[0]) - 1; i++) - total += strlen (libdirs[i]) + 1; - total += strlen (old_value) + 1; - - value = (char *) malloc (total); - if (value == NULL) - { - fprintf (stderr, "%s: %s\n", program_name, "memory exhausted"); - exit (1); - } - p = value; - for (i = 0; i < sizeof (libdirs) / sizeof (libdirs[0]) - 1; i++) - { - size_t len = strlen (libdirs[i]); - memcpy (p, libdirs[i], len); - p += len; - *p++ = ':'; - } - if (old_value[0] != '\0') - strcpy (p, old_value); - else - p[-1] = '\0'; - - if (setenv (LIBPATHVAR, value, 1) < 0) - { - fprintf (stderr, "%s: %s\n", program_name, "memory exhausted"); - exit (1); - } -} - -int -main (int argc, char *argv[]) -{ - char *full_program_name; - - /* Set the program name and perform preparations for - get_full_program_name() and relocate(). */ - set_program_name_and_installdir (argv[0], INSTALLPREFIX, INSTALLDIR); - - /* Get the full program path. (Important if accessed through a symlink.) */ - full_program_name = get_full_program_name (); - if (full_program_name == NULL) - full_program_name = argv[0]; - - /* Invoke the real program, with suffix ".bin". */ - argv[0] = add_dotbin (full_program_name); - relocate_libdirs (); - activate_libdirs (); - execv (argv[0], argv); - fprintf (stderr, "%s: could not execute %s: %s\n", - program_name, argv[0], strerror (errno)); - exit (127); -} diff --git a/jni/parted/libiconv/srclib/safe-read.h b/jni/parted/libiconv/srclib/safe-read.h deleted file mode 100755 index a39bb98..0000000 --- a/jni/parted/libiconv/srclib/safe-read.h +++ /dev/null @@ -1,47 +0,0 @@ -/* An interface to read() that retries after interrupts. - Copyright (C) 2002, 2006, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Some system calls may be interrupted and fail with errno = EINTR in the - following situations: - - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user - types Ctrl-Z) on some platforms: Mac OS X. - - The process receives a signal for which a signal handler was installed - with sigaction() with an sa_flags field that does not contain - SA_RESTART. - - The process receives a signal for which a signal handler was installed - with signal() and for which no call to siginterrupt(sig,0) was done, - on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris. - - This module provides a wrapper around read() that handles EINTR. */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define SAFE_READ_ERROR ((size_t) -1) - -/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted. - Return the actual number of bytes read, zero for EOF, or SAFE_READ_ERROR - upon error. */ -extern size_t safe_read (int fd, void *buf, size_t count); - - -#ifdef __cplusplus -} -#endif diff --git a/jni/parted/libiconv/srclib/scratch_buffer.h b/jni/parted/libiconv/srclib/scratch_buffer.h deleted file mode 100755 index f4fe5e8..0000000 --- a/jni/parted/libiconv/srclib/scratch_buffer.h +++ /dev/null @@ -1,127 +0,0 @@ -/* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2017-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, 2017. */ - -#ifndef _GL_SCRATCH_BUFFER_H -#define _GL_SCRATCH_BUFFER_H - -/* Scratch buffers with a default stack allocation and fallback to - heap allocation. It is expected that this function is used in this - way: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - return -1; - - scratch_buffer_free (&tmpbuf); - return 0; - - The allocation functions (scratch_buffer_grow, - scratch_buffer_grow_preserve, scratch_buffer_set_array_size) make - sure that the heap allocation, if any, is freed, so that the code - above does not have a memory leak. The buffer still remains in a - state that can be deallocated using scratch_buffer_free, so a loop - like this is valid as well: - - struct scratch_buffer tmpbuf; - scratch_buffer_init (&tmpbuf); - - while (!function_that_uses_buffer (tmpbuf.data, tmpbuf.length)) - if (!scratch_buffer_grow (&tmpbuf)) - break; - - scratch_buffer_free (&tmpbuf); - - scratch_buffer_grow and scratch_buffer_grow_preserve are guaranteed - to grow the buffer by at least 512 bytes. This means that when - using the scratch buffer as a backing store for a non-character - array whose element size, in bytes, is 512 or smaller, the scratch - buffer only has to grow once to make room for at least one more - element. -*/ - -/* Scratch buffer. Must be initialized with scratch_buffer_init - before its use. */ -struct scratch_buffer; - -/* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space - and BUFFER->length reflects the available space. */ -#if 0 -extern void scratch_buffer_init (struct scratch_buffer *buffer); -#endif - -/* Deallocates *BUFFER (if it was heap-allocated). */ -#if 0 -extern void scratch_buffer_free (struct scratch_buffer *buffer); -#endif - -/* Grow *BUFFER by some arbitrary amount. The buffer contents is NOT - preserved. Return true on success, false on allocation failure (in - which case the old buffer is freed). On success, the new buffer is - larger than the previous size. On failure, *BUFFER is deallocated, - but remains in a free-able state, and errno is set. */ -#if 0 -extern bool scratch_buffer_grow (struct scratch_buffer *buffer); -#endif - -/* Like scratch_buffer_grow, but preserve the old buffer - contents on success, as a prefix of the new buffer. */ -#if 0 -extern bool scratch_buffer_grow_preserve (struct scratch_buffer *buffer); -#endif - -/* Grow *BUFFER so that it can store at least NELEM elements of SIZE - bytes. The buffer contents are NOT preserved. Both NELEM and SIZE - can be zero. Return true on success, false on allocation failure - (in which case the old buffer is freed, but *BUFFER remains in a - free-able state, and errno is set). It is unspecified whether this - function can reduce the array size. */ -#if 0 -extern bool scratch_buffer_set_array_size (struct scratch_buffer *buffer, - size_t nelem, size_t size); -#endif - -/* Return a copy of *BUFFER's first SIZE bytes as a heap-allocated block, - deallocating *BUFFER if it was heap-allocated. SIZE must be at - most *BUFFER's size. Return NULL (setting errno) on memory - exhaustion. */ -#if 0 -extern void *scratch_buffer_dupfree (struct scratch_buffer *buffer, - size_t size); -#endif - - -/* The implementation is imported from glibc. */ - -/* Avoid possible conflicts with symbols exported by the GNU libc. */ -#define __libc_scratch_buffer_dupfree gl_scratch_buffer_dupfree -#define __libc_scratch_buffer_grow gl_scratch_buffer_grow -#define __libc_scratch_buffer_grow_preserve gl_scratch_buffer_grow_preserve -#define __libc_scratch_buffer_set_array_size gl_scratch_buffer_set_array_size - -#ifndef _GL_LIKELY -/* Rely on __builtin_expect, as provided by the module 'builtin-expect'. */ -# define _GL_LIKELY(cond) __builtin_expect ((cond), 1) -# define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0) -#endif - -#include - -#endif /* _GL_SCRATCH_BUFFER_H */ diff --git a/jni/parted/libiconv/srclib/setenv.c b/jni/parted/libiconv/srclib/setenv.c deleted file mode 100755 index ebfd4e5..0000000 --- a/jni/parted/libiconv/srclib/setenv.c +++ /dev/null @@ -1,390 +0,0 @@ -/* Copyright (C) 1992, 1995-2003, 2005-2022 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This file 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 file 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 program. If not, see . */ - -#if !_LIBC -/* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc - optimizes away the name == NULL test below. */ -# define _GL_ARG_NONNULL(params) - -# define _GL_USE_STDLIB_ALLOC 1 -# include -#endif - -#include - -/* Specification. */ -#include - -#include -#ifndef __set_errno -# define __set_errno(ev) ((errno) = (ev)) -#endif - -#include -#if _LIBC || HAVE_UNISTD_H -# include -#endif - -#if !_LIBC -# include "malloca.h" -#endif - -#if _LIBC || !HAVE_SETENV - -#if !_LIBC -# define __environ environ -#endif - -#if _LIBC -/* This lock protects against simultaneous modifications of 'environ'. */ -# include -__libc_lock_define_initialized (static, envlock) -# define LOCK __libc_lock_lock (envlock) -# define UNLOCK __libc_lock_unlock (envlock) -#else -# define LOCK -# define UNLOCK -#endif - -/* In the GNU C library we must keep the namespace clean. */ -#ifdef _LIBC -# define setenv __setenv -# define clearenv __clearenv -# define tfind __tfind -# define tsearch __tsearch -#endif - -/* In the GNU C library implementation we try to be more clever and - allow arbitrarily many changes of the environment given that the used - values are from a small set. Outside glibc this will eat up all - memory after a while. */ -#if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ - && (defined __GNUC__ || defined __clang__)) -# define USE_TSEARCH 1 -# include -typedef int (*compar_fn_t) (const void *, const void *); - -/* This is a pointer to the root of the search tree with the known - values. */ -static void *known_values; - -# define KNOWN_VALUE(Str) \ - ({ \ - void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ - value != NULL ? *(char **) value : NULL; \ - }) -# define STORE_VALUE(Str) \ - tsearch (Str, &known_values, (compar_fn_t) strcmp) - -#else -# undef USE_TSEARCH - -# define KNOWN_VALUE(Str) NULL -# define STORE_VALUE(Str) do { } while (0) - -#endif - - -/* If this variable is not a null pointer we allocated the current - environment. */ -static char **last_environ; - - -/* This function is used by 'setenv' and 'putenv'. The difference between - the two functions is that for the former must create a new string which - is then placed in the environment, while the argument of 'putenv' - must be used directly. This is all complicated by the fact that we try - to reuse values once generated for a 'setenv' call since we can never - free the strings. */ -int -__add_to_environ (const char *name, const char *value, const char *combined, - int replace) -{ - char **ep; - size_t size; - const size_t namelen = strlen (name); - const size_t vallen = value != NULL ? strlen (value) + 1 : 0; - - LOCK; - - /* We have to get the pointer now that we have the lock and not earlier - since another thread might have created a new environment. */ - ep = __environ; - - size = 0; - if (ep != NULL) - { - for (; *ep != NULL; ++ep) - if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') - break; - else - ++size; - } - - if (ep == NULL || *ep == NULL) - { - char **new_environ; -#ifdef USE_TSEARCH - char *new_value; -#endif - - /* We allocated this space; we can extend it. */ - new_environ = - (char **) (last_environ == NULL - ? malloc ((size + 2) * sizeof (char *)) - : realloc (last_environ, (size + 2) * sizeof (char *))); - if (new_environ == NULL) - { - /* It's easier to set errno to ENOMEM than to rely on the - 'malloc-posix' and 'realloc-posix' gnulib modules. */ - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - - /* If the whole entry is given add it. */ - if (combined != NULL) - /* We must not add the string to the search tree since it belongs - to the user. */ - new_environ[size] = (char *) combined; - else - { - /* See whether the value is already known. */ -#ifdef USE_TSEARCH -# ifdef _LIBC - new_value = (char *) alloca (namelen + 1 + vallen); - __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), - value, vallen); -# else - new_value = (char *) malloca (namelen + 1 + vallen); - if (new_value == NULL) - { - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - memcpy (new_value, name, namelen); - new_value[namelen] = '='; - memcpy (&new_value[namelen + 1], value, vallen); -# endif - - new_environ[size] = KNOWN_VALUE (new_value); - if (new_environ[size] == NULL) -#endif - { - new_environ[size] = (char *) malloc (namelen + 1 + vallen); - if (new_environ[size] == NULL) - { -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - -#ifdef USE_TSEARCH - memcpy (new_environ[size], new_value, namelen + 1 + vallen); -#else - memcpy (new_environ[size], name, namelen); - new_environ[size][namelen] = '='; - memcpy (&new_environ[size][namelen + 1], value, vallen); -#endif - /* And save the value now. We cannot do this when we remove - the string since then we cannot decide whether it is a - user string or not. */ - STORE_VALUE (new_environ[size]); - } -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - } - - if (__environ != last_environ) - memcpy ((char *) new_environ, (char *) __environ, - size * sizeof (char *)); - - new_environ[size + 1] = NULL; - - last_environ = __environ = new_environ; - } - else if (replace) - { - char *np; - - /* Use the user string if given. */ - if (combined != NULL) - np = (char *) combined; - else - { -#ifdef USE_TSEARCH - char *new_value; -# ifdef _LIBC - new_value = alloca (namelen + 1 + vallen); - __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), - value, vallen); -# else - new_value = malloca (namelen + 1 + vallen); - if (new_value == NULL) - { - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - memcpy (new_value, name, namelen); - new_value[namelen] = '='; - memcpy (&new_value[namelen + 1], value, vallen); -# endif - - np = KNOWN_VALUE (new_value); - if (np == NULL) -#endif - { - np = (char *) malloc (namelen + 1 + vallen); - if (np == NULL) - { -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - __set_errno (ENOMEM); - UNLOCK; - return -1; - } - -#ifdef USE_TSEARCH - memcpy (np, new_value, namelen + 1 + vallen); -#else - memcpy (np, name, namelen); - np[namelen] = '='; - memcpy (&np[namelen + 1], value, vallen); -#endif - /* And remember the value. */ - STORE_VALUE (np); - } -#if defined USE_TSEARCH && !defined _LIBC - freea (new_value); -#endif - } - - *ep = np; - } - - UNLOCK; - - return 0; -} - -int -setenv (const char *name, const char *value, int replace) -{ - if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) - { - __set_errno (EINVAL); - return -1; - } - - return __add_to_environ (name, value, NULL, replace); -} - -/* The 'clearenv' was planned to be added to POSIX.1 but probably - never made it. Nevertheless the POSIX.9 standard (POSIX bindings - for Fortran 77) requires this function. */ -int -clearenv (void) -{ - LOCK; - - if (__environ == last_environ && __environ != NULL) - { - /* We allocated this environment so we can free it. */ - free (__environ); - last_environ = NULL; - } - - /* Clear the environment pointer removes the whole environment. */ - __environ = NULL; - - UNLOCK; - - return 0; -} - -#ifdef _LIBC -static void -free_mem (void) -{ - /* Remove all traces. */ - clearenv (); - - /* Now remove the search tree. */ - __tdestroy (known_values, free); - known_values = NULL; -} -text_set_element (__libc_subfreeres, free_mem); - - -# undef setenv -# undef clearenv -weak_alias (__setenv, setenv) -weak_alias (__clearenv, clearenv) -#endif - -#endif /* _LIBC || !HAVE_SETENV */ - -/* The rest of this file is called into use when replacing an existing - but buggy setenv. Known bugs include failure to diagnose invalid - name, and consuming a leading '=' from value. */ -#if HAVE_SETENV - -# undef setenv -# if !HAVE_DECL_SETENV -extern int setenv (const char *, const char *, int); -# endif -# define STREQ(a, b) (strcmp (a, b) == 0) - -int -rpl_setenv (const char *name, const char *value, int replace) -{ - int result; - if (!name || !*name || strchr (name, '=')) - { - errno = EINVAL; - return -1; - } - /* Call the real setenv even if replace is 0, in case implementation - has underlying data to update, such as when environ changes. */ - result = setenv (name, value, replace); - if (result == 0 && replace && *value == '=') - { - char *tmp = getenv (name); - if (!STREQ (tmp, value)) - { - int saved_errno; - size_t len = strlen (value); - tmp = malloca (len + 2); - /* Since leading '=' is eaten, double it up. */ - *tmp = '='; - memcpy (tmp + 1, value, len + 1); - result = setenv (name, tmp, replace); - saved_errno = errno; - freea (tmp); - errno = saved_errno; - } - } - return result; -} - -#endif /* HAVE_SETENV */ diff --git a/jni/parted/libiconv/srclib/signal.h b/jni/parted/libiconv/srclib/signal.h deleted file mode 100755 index e5db18d..0000000 --- a/jni/parted/libiconv/srclib/signal.h +++ /dev/null @@ -1,994 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 2006-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T) -/* Special invocation convention: - - Inside glibc header files. - - On glibc systems we have a sequence of nested includes - -> -> . - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. - - On glibc systems with GCC 4.3 we have a sequence of nested includes - -> -> -> . - In this situation, some of the functions are not yet declared, therefore - we cannot provide the C++ aliases. */ - -# include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_SIGNAL_H - -#define _GL_ALREADY_INCLUDING_SIGNAL_H - -/* Define pid_t, uid_t. - Also, mingw defines sigset_t not in , but in . - On Solaris 10, includes , which eventually includes - us; so include now, before the second inclusion guard. */ -#include - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#undef _GL_ALREADY_INCLUDING_SIGNAL_H - -#ifndef _GL_SIGNAL_H -#define _GL_SIGNAL_H - -/* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android, - OS/2 kLIBC declare pthread_sigmask in , not in . - But avoid namespace pollution on glibc systems.*/ -#if (0 || defined GNULIB_POSIXCHECK) \ - && ((defined __APPLE__ && defined __MACH__) \ - || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \ - || defined __sun || defined __ANDROID__ || defined __KLIBC__) \ - && ! defined __GLIBC__ -# include -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* On AIX, sig_atomic_t already includes volatile. C99 requires that - 'volatile sig_atomic_t' ignore the extra modifier, but C89 did not. - Hence, redefine this to a non-volatile type as needed. */ -#if ! 1 -# if !GNULIB_defined_sig_atomic_t -typedef int rpl_sig_atomic_t; -# undef sig_atomic_t -# define sig_atomic_t rpl_sig_atomic_t -# define GNULIB_defined_sig_atomic_t 1 -# endif -#endif - -/* A set or mask of signals. */ -#if !1 -# if !GNULIB_defined_sigset_t -typedef unsigned int sigset_t; -# define GNULIB_defined_sigset_t 1 -# endif -#endif - -/* Define sighandler_t, the type of signal handlers. A GNU extension. */ -#if !1 -# ifdef __cplusplus -extern "C" { -# endif -# if !GNULIB_defined_sighandler_t -typedef void (*sighandler_t) (int); -# define GNULIB_defined_sighandler_t 1 -# endif -# ifdef __cplusplus -} -# endif -#endif - - -#if 1 -# ifndef SIGPIPE -/* Define SIGPIPE to a value that does not overlap with other signals. */ -# define SIGPIPE 13 -# define GNULIB_defined_SIGPIPE 1 -/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask', - 'write', 'stdio'. */ -# endif -#endif - - -/* Maximum signal number + 1. */ -#ifndef NSIG -# if defined __TANDEM -# define NSIG 32 -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pthread_sigmask -# define pthread_sigmask rpl_pthread_sigmask -# endif -_GL_FUNCDECL_RPL (pthread_sigmask, int, - (int how, - const sigset_t *restrict new_mask, - sigset_t *restrict old_mask)); -_GL_CXXALIAS_RPL (pthread_sigmask, int, - (int how, - const sigset_t *restrict new_mask, - sigset_t *restrict old_mask)); -# else -# if !(1 || defined pthread_sigmask) -_GL_FUNCDECL_SYS (pthread_sigmask, int, - (int how, - const sigset_t *restrict new_mask, - sigset_t *restrict old_mask)); -# endif -_GL_CXXALIAS_SYS (pthread_sigmask, int, - (int how, - const sigset_t *restrict new_mask, - sigset_t *restrict old_mask)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (pthread_sigmask); -# endif -#elif defined GNULIB_POSIXCHECK -# undef pthread_sigmask -# if HAVE_RAW_DECL_PTHREAD_SIGMASK -_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - " - "use gnulib module pthread_sigmask for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef raise -# define raise rpl_raise -# endif -_GL_FUNCDECL_RPL (raise, int, (int sig)); -_GL_CXXALIAS_RPL (raise, int, (int sig)); -# else -# if !1 -_GL_FUNCDECL_SYS (raise, int, (int sig)); -# endif -_GL_CXXALIAS_SYS (raise, int, (int sig)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (raise); -# endif -#elif defined GNULIB_POSIXCHECK -# undef raise -/* Assume raise is always declared. */ -_GL_WARN_ON_USE (raise, "raise can crash on native Windows - " - "use gnulib module raise for portability"); -#endif - - -#if 1 -# if !1 - -# ifndef GNULIB_defined_signal_blocking -# define GNULIB_defined_signal_blocking 1 -# endif - -/* Maximum signal number + 1. */ -# ifndef NSIG -# define NSIG 32 -# endif - -/* This code supports only 32 signals. */ -# if !GNULIB_defined_verify_NSIG_constraint -typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1]; -# define GNULIB_defined_verify_NSIG_constraint 1 -# endif - -# endif - -/* When also using extern inline, suppress the use of static inline in - standard headers of problematic Apple configurations, as Libc at - least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., - . - Perhaps Apple will fix this some day. */ -#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ - && (defined __i386__ || defined __x86_64__)) -# undef sigaddset -# undef sigdelset -# undef sigemptyset -# undef sigfillset -# undef sigismember -#endif - -/* Test whether a given signal is contained in a signal set. */ -# if 1 -/* This function is defined as a macro on Mac OS X. */ -# if defined __cplusplus && defined GNULIB_NAMESPACE -# undef sigismember -# endif -# else -_GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig)); -_GL_CXXALIASWARN (sigismember); - -/* Initialize a signal set to the empty set. */ -# if 1 -/* This function is defined as a macro on Mac OS X. */ -# if defined __cplusplus && defined GNULIB_NAMESPACE -# undef sigemptyset -# endif -# else -_GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set)); -_GL_CXXALIASWARN (sigemptyset); - -/* Add a signal to a signal set. */ -# if 1 -/* This function is defined as a macro on Mac OS X. */ -# if defined __cplusplus && defined GNULIB_NAMESPACE -# undef sigaddset -# endif -# else -_GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig)); -_GL_CXXALIASWARN (sigaddset); - -/* Remove a signal from a signal set. */ -# if 1 -/* This function is defined as a macro on Mac OS X. */ -# if defined __cplusplus && defined GNULIB_NAMESPACE -# undef sigdelset -# endif -# else -_GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig)); -_GL_CXXALIASWARN (sigdelset); - -/* Fill a signal set with all possible signals. */ -# if 1 -/* This function is defined as a macro on Mac OS X. */ -# if defined __cplusplus && defined GNULIB_NAMESPACE -# undef sigfillset -# endif -# else -_GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set)); -_GL_CXXALIASWARN (sigfillset); - -/* Return the set of those blocked signals that are pending. */ -# if !1 -_GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set)); -_GL_CXXALIASWARN (sigpending); - -/* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET. - Then, if SET is not NULL, affect the current set of blocked signals by - combining it with *SET as indicated in OPERATION. - In this implementation, you are not allowed to change a signal handler - while the signal is blocked. */ -# if !1 -# define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */ -# define SIG_SETMASK 1 /* blocked_set = *set; */ -# define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */ -_GL_FUNCDECL_SYS (sigprocmask, int, - (int operation, - const sigset_t *restrict set, - sigset_t *restrict old_set)); -# endif -_GL_CXXALIAS_SYS (sigprocmask, int, - (int operation, - const sigset_t *restrict set, - sigset_t *restrict old_set)); -_GL_CXXALIASWARN (sigprocmask); - -/* Install the handler FUNC for signal SIG, and return the previous - handler. */ -# ifdef __cplusplus -extern "C" { -# endif -# if !GNULIB_defined_function_taking_int_returning_void_t -typedef void (*_gl_function_taking_int_returning_void_t) (int); -# define GNULIB_defined_function_taking_int_returning_void_t 1 -# endif -# ifdef __cplusplus -} -# endif -# if !1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define signal rpl_signal -# endif -_GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t, - (int sig, _gl_function_taking_int_returning_void_t func)); -_GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t, - (int sig, _gl_function_taking_int_returning_void_t func)); -# else -/* On OpenBSD, the declaration of 'signal' may not be present at this point, - because it occurs in , not directly. */ -# if defined __OpenBSD__ -_GL_FUNCDECL_SYS (signal, _gl_function_taking_int_returning_void_t, - (int sig, _gl_function_taking_int_returning_void_t func)); -# endif -_GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t, - (int sig, _gl_function_taking_int_returning_void_t func)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (signal); -# endif - -# if !1 && GNULIB_defined_SIGPIPE -/* Raise signal SIGPIPE. */ -_GL_EXTERN_C int _gl_raise_SIGPIPE (void); -# endif - -#elif defined GNULIB_POSIXCHECK -# undef sigaddset -# if HAVE_RAW_DECL_SIGADDSET -_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -# undef sigdelset -# if HAVE_RAW_DECL_SIGDELSET -_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -# undef sigemptyset -# if HAVE_RAW_DECL_SIGEMPTYSET -_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -# undef sigfillset -# if HAVE_RAW_DECL_SIGFILLSET -_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -# undef sigismember -# if HAVE_RAW_DECL_SIGISMEMBER -_GL_WARN_ON_USE (sigismember, "sigismember is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -# undef sigpending -# if HAVE_RAW_DECL_SIGPENDING -_GL_WARN_ON_USE (sigpending, "sigpending is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -# undef sigprocmask -# if HAVE_RAW_DECL_SIGPROCMASK -_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - " - "use the gnulib module sigprocmask for portability"); -# endif -#endif /* 1 */ - - -#if 0 -# if !1 - -# if !1 - -# if !GNULIB_defined_siginfo_types - -/* Present to allow compilation, but unsupported by gnulib. */ -union sigval -{ - int sival_int; - void *sival_ptr; -}; - -/* Present to allow compilation, but unsupported by gnulib. */ -struct siginfo_t -{ - int si_signo; - int si_code; - int si_errno; - pid_t si_pid; - uid_t si_uid; - void *si_addr; - int si_status; - long si_band; - union sigval si_value; -}; -typedef struct siginfo_t siginfo_t; - -# define GNULIB_defined_siginfo_types 1 -# endif - -# endif /* !1 */ - -/* We assume that platforms which lack the sigaction() function also lack - the 'struct sigaction' type, and vice versa. */ - -# if !GNULIB_defined_struct_sigaction - -struct sigaction -{ - union - { - void (*_sa_handler) (int); - /* Present to allow compilation, but unsupported by gnulib. POSIX - says that implementations may, but not must, make sa_sigaction - overlap with sa_handler, but we know of no implementation where - they do not overlap. */ - void (*_sa_sigaction) (int, siginfo_t *, void *); - } _sa_func; - sigset_t sa_mask; - /* Not all POSIX flags are supported. */ - int sa_flags; -}; -# define sa_handler _sa_func._sa_handler -# define sa_sigaction _sa_func._sa_sigaction -/* Unsupported flags are not present. */ -# define SA_RESETHAND 1 -# define SA_NODEFER 2 -# define SA_RESTART 4 - -# define GNULIB_defined_struct_sigaction 1 -# endif - -_GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict, - struct sigaction *restrict)); - -# elif !1 - -# define sa_sigaction sa_handler - -# endif /* !1, !1 */ - -_GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict, - struct sigaction *restrict)); -_GL_CXXALIASWARN (sigaction); - -#elif defined GNULIB_POSIXCHECK -# undef sigaction -# if HAVE_RAW_DECL_SIGACTION -_GL_WARN_ON_USE (sigaction, "sigaction is unportable - " - "use the gnulib module sigaction for portability"); -# endif -#endif - -/* Some systems don't have SA_NODEFER. */ -#ifndef SA_NODEFER -# define SA_NODEFER 0 -#endif - - -#endif /* _GL_SIGNAL_H */ -#endif /* _GL_SIGNAL_H */ -#endif diff --git a/jni/parted/libiconv/srclib/sigprocmask.c b/jni/parted/libiconv/srclib/sigprocmask.c deleted file mode 100755 index a805da6..0000000 --- a/jni/parted/libiconv/srclib/sigprocmask.c +++ /dev/null @@ -1,349 +0,0 @@ -/* POSIX compatible signal blocking. - Copyright (C) 2006-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2006. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -# include "msvc-inval.h" -#endif - -/* We assume that a platform without POSIX signal blocking functions - also does not have the POSIX sigaction() function, only the - signal() function. We also assume signal() has SysV semantics, - where any handler is uninstalled prior to being invoked. This is - true for native Windows platforms. */ - -/* We use raw signal(), but also provide a wrapper rpl_signal() so - that applications can query or change a blocked signal. */ -#undef signal - -/* Provide invalid signal numbers as fallbacks if the uncatchable - signals are not defined. */ -#ifndef SIGKILL -# define SIGKILL (-1) -#endif -#ifndef SIGSTOP -# define SIGSTOP (-1) -#endif - -/* On native Windows, as of 2008, the signal SIGABRT_COMPAT is an alias - for the signal SIGABRT. Only one signal handler is stored for both - SIGABRT and SIGABRT_COMPAT. SIGABRT_COMPAT is not a signal of its own. */ -#if defined _WIN32 && ! defined __CYGWIN__ -# undef SIGABRT_COMPAT -# define SIGABRT_COMPAT 6 -#endif -#ifdef SIGABRT_COMPAT -# define SIGABRT_COMPAT_MASK (1U << SIGABRT_COMPAT) -#else -# define SIGABRT_COMPAT_MASK 0 -#endif - -typedef void (*handler_t) (int); - -#if HAVE_MSVC_INVALID_PARAMETER_HANDLER -static handler_t -signal_nothrow (int sig, handler_t handler) -{ - handler_t result; - - TRY_MSVC_INVAL - { - result = signal (sig, handler); - } - CATCH_MSVC_INVAL - { - result = SIG_ERR; - errno = EINVAL; - } - DONE_MSVC_INVAL; - - return result; -} -# define signal signal_nothrow -#endif - -/* Handling of gnulib defined signals. */ - -#if GNULIB_defined_SIGPIPE -static handler_t SIGPIPE_handler = SIG_DFL; -#endif - -#if GNULIB_defined_SIGPIPE -static handler_t -ext_signal (int sig, handler_t handler) -{ - switch (sig) - { - case SIGPIPE: - { - handler_t old_handler = SIGPIPE_handler; - SIGPIPE_handler = handler; - return old_handler; - } - default: /* System defined signal */ - return signal (sig, handler); - } -} -# undef signal -# define signal ext_signal -#endif - -int -sigismember (const sigset_t *set, int sig) -{ - if (sig >= 0 && sig < NSIG) - { - #ifdef SIGABRT_COMPAT - if (sig == SIGABRT_COMPAT) - sig = SIGABRT; - #endif - - return (*set >> sig) & 1; - } - else - return 0; -} - -int -sigemptyset (sigset_t *set) -{ - *set = 0; - return 0; -} - -int -sigaddset (sigset_t *set, int sig) -{ - if (sig >= 0 && sig < NSIG) - { - #ifdef SIGABRT_COMPAT - if (sig == SIGABRT_COMPAT) - sig = SIGABRT; - #endif - - *set |= 1U << sig; - return 0; - } - else - { - errno = EINVAL; - return -1; - } -} - -int -sigdelset (sigset_t *set, int sig) -{ - if (sig >= 0 && sig < NSIG) - { - #ifdef SIGABRT_COMPAT - if (sig == SIGABRT_COMPAT) - sig = SIGABRT; - #endif - - *set &= ~(1U << sig); - return 0; - } - else - { - errno = EINVAL; - return -1; - } -} - - -int -sigfillset (sigset_t *set) -{ - *set = ((2U << (NSIG - 1)) - 1) & ~ SIGABRT_COMPAT_MASK; - return 0; -} - -/* Set of currently blocked signals. */ -static volatile sigset_t blocked_set /* = 0 */; - -/* Set of currently blocked and pending signals. */ -static volatile sig_atomic_t pending_array[NSIG] /* = { 0 } */; - -/* Signal handler that is installed for blocked signals. */ -static void -blocked_handler (int sig) -{ - /* Reinstall the handler, in case the signal occurs multiple times - while blocked. There is an inherent race where an asynchronous - signal in between when the kernel uninstalled the handler and - when we reinstall it will trigger the default handler; oh - well. */ - signal (sig, blocked_handler); - if (sig >= 0 && sig < NSIG) - pending_array[sig] = 1; -} - -int -sigpending (sigset_t *set) -{ - sigset_t pending = 0; - int sig; - - for (sig = 0; sig < NSIG; sig++) - if (pending_array[sig]) - pending |= 1U << sig; - *set = pending; - return 0; -} - -/* The previous signal handlers. - Only the array elements corresponding to blocked signals are relevant. */ -static volatile handler_t old_handlers[NSIG]; - -int -sigprocmask (int operation, const sigset_t *set, sigset_t *old_set) -{ - if (old_set != NULL) - *old_set = blocked_set; - - if (set != NULL) - { - sigset_t new_blocked_set; - sigset_t to_unblock; - sigset_t to_block; - - switch (operation) - { - case SIG_BLOCK: - new_blocked_set = blocked_set | *set; - break; - case SIG_SETMASK: - new_blocked_set = *set; - break; - case SIG_UNBLOCK: - new_blocked_set = blocked_set & ~*set; - break; - default: - errno = EINVAL; - return -1; - } - to_unblock = blocked_set & ~new_blocked_set; - to_block = new_blocked_set & ~blocked_set; - - if (to_block != 0) - { - int sig; - - for (sig = 0; sig < NSIG; sig++) - if ((to_block >> sig) & 1) - { - pending_array[sig] = 0; - if ((old_handlers[sig] = signal (sig, blocked_handler)) != SIG_ERR) - blocked_set |= 1U << sig; - } - } - - if (to_unblock != 0) - { - sig_atomic_t received[NSIG]; - int sig; - - for (sig = 0; sig < NSIG; sig++) - if ((to_unblock >> sig) & 1) - { - if (signal (sig, old_handlers[sig]) != blocked_handler) - /* The application changed a signal handler while the signal - was blocked, bypassing our rpl_signal replacement. - We don't support this. */ - abort (); - received[sig] = pending_array[sig]; - blocked_set &= ~(1U << sig); - pending_array[sig] = 0; - } - else - received[sig] = 0; - - for (sig = 0; sig < NSIG; sig++) - if (received[sig]) - raise (sig); - } - } - return 0; -} - -/* Install the handler FUNC for signal SIG, and return the previous - handler. */ -handler_t -rpl_signal (int sig, handler_t handler) -{ - /* We must provide a wrapper, so that a user can query what handler - they installed even if that signal is currently blocked. */ - if (sig >= 0 && sig < NSIG && sig != SIGKILL && sig != SIGSTOP - && handler != SIG_ERR) - { - #ifdef SIGABRT_COMPAT - if (sig == SIGABRT_COMPAT) - sig = SIGABRT; - #endif - - if (blocked_set & (1U << sig)) - { - /* POSIX states that sigprocmask and signal are both - async-signal-safe. This is not true of our - implementation - there is a slight data race where an - asynchronous interrupt on signal A can occur after we - install blocked_handler but before we have updated - old_handlers for signal B, such that handler A can see - stale information if it calls signal(B). Oh well - - signal handlers really shouldn't try to manipulate the - installed handlers of unrelated signals. */ - handler_t result = old_handlers[sig]; - old_handlers[sig] = handler; - return result; - } - else - return signal (sig, handler); - } - else - { - errno = EINVAL; - return SIG_ERR; - } -} - -#if GNULIB_defined_SIGPIPE -/* Raise the signal SIGPIPE. */ -int -_gl_raise_SIGPIPE (void) -{ - if (blocked_set & (1U << SIGPIPE)) - pending_array[SIGPIPE] = 1; - else - { - handler_t handler = SIGPIPE_handler; - if (handler == SIG_DFL) - exit (128 + SIGPIPE); - else if (handler != SIG_IGN) - (*handler) (SIGPIPE); - } - return 0; -} -#endif diff --git a/jni/parted/libiconv/srclib/stat-time.h b/jni/parted/libiconv/srclib/stat-time.h deleted file mode 100755 index 6b0088e..0000000 --- a/jni/parted/libiconv/srclib/stat-time.h +++ /dev/null @@ -1,252 +0,0 @@ -/* stat-related time functions. - - Copyright (C) 2005, 2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert. */ - -#ifndef STAT_TIME_H -#define STAT_TIME_H 1 - -#include "intprops.h" - -#include -#include -#include -#include - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_STAT_TIME_INLINE -# define _GL_STAT_TIME_INLINE _GL_INLINE -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type - struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, - ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, - if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim - for access, status change, data modification, or birth (creation) - time respectively. - - These macros are private to stat-time.h. */ -#if _GL_WINDOWS_STAT_TIMESPEC || defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC -# if _GL_WINDOWS_STAT_TIMESPEC || defined TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC -# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim) -# else -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec) -# endif -#elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC -# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec) -#elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec) -#elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC -# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec) -#endif - -/* Return the nanosecond component of *ST's access time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_atime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_atim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_atim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's status change time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_ctime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_ctim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_ctim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's data modification time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_mtime_ns (struct stat const *st) -{ -# if defined STAT_TIMESPEC - return STAT_TIMESPEC (st, st_mtim).tv_nsec; -# elif defined STAT_TIMESPEC_NS - return STAT_TIMESPEC_NS (st, st_mtim); -# else - return 0; -# endif -} - -/* Return the nanosecond component of *ST's birth time. */ -_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_birthtime_ns (_GL_UNUSED struct stat const *st) -{ -# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC - return STAT_TIMESPEC (st, st_birthtim).tv_nsec; -# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - return STAT_TIMESPEC_NS (st, st_birthtim); -# else - return 0; -# endif -} - -/* Return *ST's access time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_atime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_atim); -#else - struct timespec t; - t.tv_sec = st->st_atime; - t.tv_nsec = get_stat_atime_ns (st); - return t; -#endif -} - -/* Return *ST's status change time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_ctime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_ctim); -#else - struct timespec t; - t.tv_sec = st->st_ctime; - t.tv_nsec = get_stat_ctime_ns (st); - return t; -#endif -} - -/* Return *ST's data modification time. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_mtime (struct stat const *st) -{ -#ifdef STAT_TIMESPEC - return STAT_TIMESPEC (st, st_mtim); -#else - struct timespec t; - t.tv_sec = st->st_mtime; - t.tv_nsec = get_stat_mtime_ns (st); - return t; -#endif -} - -/* Return *ST's birth time, if available; otherwise return a value - with tv_sec and tv_nsec both equal to -1. */ -_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_birthtime (_GL_UNUSED struct stat const *st) -{ - struct timespec t; - -#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC) - t = STAT_TIMESPEC (st, st_birthtim); -#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC - t.tv_sec = st->st_birthtime; - t.tv_nsec = st->st_birthtimensec; -#elif defined _WIN32 && ! defined __CYGWIN__ - /* Native Windows platforms (but not Cygwin) put the "file creation - time" in st_ctime (!). See - . */ -# if _GL_WINDOWS_STAT_TIMESPEC - t = st->st_ctim; -# else - t.tv_sec = st->st_ctime; - t.tv_nsec = 0; -# endif -#else - /* Birth time is not supported. */ - t.tv_sec = -1; - t.tv_nsec = -1; -#endif - -#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \ - || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC) - /* FreeBSD and NetBSD sometimes signal the absence of knowledge by - using zero. Attempt to work around this problem. Alas, this can - report failure even for valid timestamps. Also, NetBSD - sometimes returns junk in the birth time fields; work around this - bug if it is detected. */ - if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000)) - { - t.tv_sec = -1; - t.tv_nsec = -1; - } -#endif - - return t; -} - -/* If a stat-like function returned RESULT, normalize the timestamps - in *ST, in case this platform suffers from the Solaris 11 bug where - tv_nsec might be negative. Return the adjusted RESULT, setting - errno to EOVERFLOW if normalization overflowed. This function - is intended to be private to this .h file. */ -_GL_STAT_TIME_INLINE int -stat_time_normalize (int result, _GL_UNUSED struct stat *st) -{ -#if defined __sun && defined STAT_TIMESPEC - if (result == 0) - { - long int timespec_hz = 1000000000; - short int const ts_off[] = { offsetof (struct stat, st_atim), - offsetof (struct stat, st_mtim), - offsetof (struct stat, st_ctim) }; - int i; - for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) - { - struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); - long int q = ts->tv_nsec / timespec_hz; - long int r = ts->tv_nsec % timespec_hz; - if (r < 0) - { - r += timespec_hz; - q--; - } - ts->tv_nsec = r; - /* Overflow is possible, as Solaris 11 stat can yield - tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. - INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ - if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec)) - { - errno = EOVERFLOW; - return -1; - } - } - } -#endif - return result; -} - -#ifdef __cplusplus -} -#endif - -_GL_INLINE_HEADER_END - -#endif diff --git a/jni/parted/libiconv/srclib/stat-w32.c b/jni/parted/libiconv/srclib/stat-w32.c deleted file mode 100755 index c1a2923..0000000 --- a/jni/parted/libiconv/srclib/stat-w32.c +++ /dev/null @@ -1,461 +0,0 @@ -/* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible. */ - -#include - -#if defined _WIN32 && ! defined __CYGWIN__ - -/* Attempt to make define FILE_ID_INFO. - But ensure that the redefinition of _WIN32_WINNT does not make us assume - Windows Vista or newer when building for an older version of Windows. */ -#if HAVE_SDKDDKVER_H -# include -# if _WIN32_WINNT >= _WIN32_WINNT_VISTA -# define WIN32_ASSUME_VISTA 1 -# else -# define WIN32_ASSUME_VISTA 0 -# endif -# if !defined _WIN32_WINNT || (_WIN32_WINNT < _WIN32_WINNT_WIN8) -# undef _WIN32_WINNT -# define _WIN32_WINNT _WIN32_WINNT_WIN8 -# endif -#else -# define WIN32_ASSUME_VISTA (_WIN32_WINNT >= _WIN32_WINNT_VISTA) -#endif - -#include -#include -#include -#include -#include -#include -#include - -/* Specification. */ -#include "stat-w32.h" - -#include "pathmax.h" -#include "verify.h" - -/* Don't assume that UNICODE is not defined. */ -#undef LoadLibrary -#define LoadLibrary LoadLibraryA -#undef GetFinalPathNameByHandle -#define GetFinalPathNameByHandle GetFinalPathNameByHandleA - -/* Older mingw headers do not define VOLUME_NAME_NONE. */ -#ifndef VOLUME_NAME_NONE -# define VOLUME_NAME_NONE 4 -#endif - -#if !WIN32_ASSUME_VISTA - -/* Avoid warnings from gcc -Wcast-function-type. */ -# define GetProcAddress \ - (void *) GetProcAddress - -# if _GL_WINDOWS_STAT_INODES == 2 -/* GetFileInformationByHandleEx was introduced only in Windows Vista. */ -typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, - FILE_INFO_BY_HANDLE_CLASS fiClass, - LPVOID lpBuffer, - DWORD dwBufferSize); -static GetFileInformationByHandleExFuncType GetFileInformationByHandleExFunc = NULL; -# endif -/* GetFinalPathNameByHandle was introduced only in Windows Vista. */ -typedef DWORD (WINAPI * GetFinalPathNameByHandleFuncType) (HANDLE hFile, - LPSTR lpFilePath, - DWORD lenFilePath, - DWORD dwFlags); -static GetFinalPathNameByHandleFuncType GetFinalPathNameByHandleFunc = NULL; -static BOOL initialized = FALSE; - -static void -initialize (void) -{ - HMODULE kernel32 = LoadLibrary ("kernel32.dll"); - if (kernel32 != NULL) - { -# if _GL_WINDOWS_STAT_INODES == 2 - GetFileInformationByHandleExFunc = - (GetFileInformationByHandleExFuncType) GetProcAddress (kernel32, "GetFileInformationByHandleEx"); -# endif - GetFinalPathNameByHandleFunc = - (GetFinalPathNameByHandleFuncType) GetProcAddress (kernel32, "GetFinalPathNameByHandleA"); - } - initialized = TRUE; -} - -#else - -# define GetFileInformationByHandleExFunc GetFileInformationByHandleEx -# define GetFinalPathNameByHandleFunc GetFinalPathNameByHandle - -#endif - -/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ -#if _GL_WINDOWS_STAT_TIMESPEC -struct timespec -_gl_convert_FILETIME_to_timespec (const FILETIME *ft) -{ - struct timespec result; - /* FILETIME: */ - unsigned long long since_1601 = - ((unsigned long long) ft->dwHighDateTime << 32) - | (unsigned long long) ft->dwLowDateTime; - if (since_1601 == 0) - { - result.tv_sec = 0; - result.tv_nsec = 0; - } - else - { - /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 - leap years, in total 134774 days. */ - unsigned long long since_1970 = - since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; - result.tv_sec = since_1970 / (unsigned long long) 10000000; - result.tv_nsec = (unsigned long) (since_1970 % (unsigned long long) 10000000) * 100; - } - return result; -} -#else -time_t -_gl_convert_FILETIME_to_POSIX (const FILETIME *ft) -{ - /* FILETIME: */ - unsigned long long since_1601 = - ((unsigned long long) ft->dwHighDateTime << 32) - | (unsigned long long) ft->dwLowDateTime; - if (since_1601 == 0) - return 0; - else - { - /* Between 1601-01-01 and 1970-01-01 there were 280 normal years and 89 - leap years, in total 134774 days. */ - unsigned long long since_1970 = - since_1601 - (unsigned long long) 134774 * (unsigned long long) 86400 * (unsigned long long) 10000000; - return since_1970 / (unsigned long long) 10000000; - } -} -#endif - -/* Fill *BUF with information about the file designated by H. - PATH is the file name, if known, otherwise NULL. - Return 0 if successful, or -1 with errno set upon failure. */ -int -_gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf) -{ - /* GetFileType - */ - DWORD type = GetFileType (h); - if (type == FILE_TYPE_DISK) - { -#if !WIN32_ASSUME_VISTA - if (!initialized) - initialize (); -#endif - - /* st_mode can be determined through - GetFileAttributesEx - - - or through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileBasicInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - BY_HANDLE_FILE_INFORMATION info; - if (! GetFileInformationByHandle (h, &info)) - goto failed; - - /* Test for error conditions before starting to fill *buf. */ - if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) - { - errno = EOVERFLOW; - return -1; - } - -#if _GL_WINDOWS_STAT_INODES - /* st_ino can be determined through - GetFileInformationByHandle - - - as 64 bits, or through - GetFileInformationByHandleEx with argument FileIdInfo - - - as 128 bits. - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_WIN8 or higher. */ - /* Experiments show that GetFileInformationByHandleEx does not provide - much more information than GetFileInformationByHandle: - * The dwVolumeSerialNumber from GetFileInformationByHandle is equal - to the low 32 bits of the 64-bit VolumeSerialNumber from - GetFileInformationByHandleEx, and is apparently sufficient for - identifying the device. - * The nFileIndex from GetFileInformationByHandle is equal to the low - 64 bits of the 128-bit FileId from GetFileInformationByHandleEx, - and the high 64 bits of this 128-bit FileId are zero. - * On a FAT file system, GetFileInformationByHandleEx fails with error - ERROR_INVALID_PARAMETER, whereas GetFileInformationByHandle - succeeds. - * On a CIFS/SMB file system, GetFileInformationByHandleEx fails with - error ERROR_INVALID_LEVEL, whereas GetFileInformationByHandle - succeeds. */ -# if _GL_WINDOWS_STAT_INODES == 2 - if (GetFileInformationByHandleExFunc != NULL) - { - FILE_ID_INFO id; - if (GetFileInformationByHandleExFunc (h, FileIdInfo, &id, sizeof (id))) - { - buf->st_dev = id.VolumeSerialNumber; - verify (sizeof (ino_t) == sizeof (id.FileId)); - memcpy (&buf->st_ino, &id.FileId, sizeof (ino_t)); - goto ino_done; - } - else - { - switch (GetLastError ()) - { - case ERROR_INVALID_PARAMETER: /* older Windows version, or FAT */ - case ERROR_INVALID_LEVEL: /* CIFS/SMB file system */ - goto fallback; - default: - goto failed; - } - } - } - fallback: ; - /* Fallback for older Windows versions. */ - buf->st_dev = info.dwVolumeSerialNumber; - buf->st_ino._gl_ino[0] = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; - buf->st_ino._gl_ino[1] = 0; - ino_done: ; -# else /* _GL_WINDOWS_STAT_INODES == 1 */ - buf->st_dev = info.dwVolumeSerialNumber; - buf->st_ino = ((ULONGLONG) info.nFileIndexHigh << 32) | (ULONGLONG) info.nFileIndexLow; -# endif -#else - /* st_ino is not wide enough for identifying a file on a device. - Without st_ino, st_dev is pointless. */ - buf->st_dev = 0; - buf->st_ino = 0; -#endif - - /* st_mode. */ - unsigned int mode = - /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ - ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) - | S_IREAD_UGO - | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); - if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Determine whether the file is executable by looking at the file - name suffix. - If the file name is already known, use it. Otherwise, for - non-empty files, it can be determined through - GetFinalPathNameByHandle - - or through - GetFileInformationByHandleEx with argument FileNameInfo - - - Both require -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) - { - char fpath[PATH_MAX]; - if (path != NULL - || (GetFinalPathNameByHandleFunc != NULL - && GetFinalPathNameByHandleFunc (h, fpath, sizeof (fpath), VOLUME_NAME_NONE) - < sizeof (fpath) - && (path = fpath, 1))) - { - const char *last_dot = NULL; - const char *p; - for (p = path; *p != '\0'; p++) - if (*p == '.') - last_dot = p; - if (last_dot != NULL) - { - const char *suffix = last_dot + 1; - if (_stricmp (suffix, "exe") == 0 - || _stricmp (suffix, "bat") == 0 - || _stricmp (suffix, "cmd") == 0 - || _stricmp (suffix, "com") == 0) - mode |= S_IEXEC_UGO; - } - } - else - /* Cannot determine file name. Pretend that it is executable. */ - mode |= S_IEXEC_UGO; - } - } - buf->st_mode = mode; - - /* st_nlink can be determined through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileStandardInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - buf->st_nlink = (info.nNumberOfLinks > SHRT_MAX ? SHRT_MAX : info.nNumberOfLinks); - - /* There's no easy way to map the Windows SID concept to an integer. */ - buf->st_uid = 0; - buf->st_gid = 0; - - /* st_rdev is irrelevant for normal files and directories. */ - buf->st_rdev = 0; - - /* st_size can be determined through - GetFileSizeEx - - or through - GetFileAttributesEx - - - or through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileStandardInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ - if (sizeof (buf->st_size) <= 4) - /* Range check already done above. */ - buf->st_size = info.nFileSizeLow; - else - buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; - - /* st_atime, st_mtime, st_ctime can be determined through - GetFileTime - - or through - GetFileAttributesEx - - - or through - GetFileInformationByHandle - - - or through - GetFileInformationByHandleEx with argument FileBasicInfo - - - The latter requires -D_WIN32_WINNT=_WIN32_WINNT_VISTA or higher. */ -#if _GL_WINDOWS_STAT_TIMESPEC - buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); - buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); - buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); -#else - buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); - buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); - buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); -#endif - - return 0; - } - else if (type == FILE_TYPE_CHAR || type == FILE_TYPE_PIPE) - { - buf->st_dev = 0; -#if _GL_WINDOWS_STAT_INODES == 2 - buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; -#else - buf->st_ino = 0; -#endif - buf->st_mode = (type == FILE_TYPE_PIPE ? _S_IFIFO : _S_IFCHR); - buf->st_nlink = 1; - buf->st_uid = 0; - buf->st_gid = 0; - buf->st_rdev = 0; - if (type == FILE_TYPE_PIPE) - { - /* PeekNamedPipe - */ - DWORD bytes_available; - if (PeekNamedPipe (h, NULL, 0, NULL, &bytes_available, NULL)) - buf->st_size = bytes_available; - else - buf->st_size = 0; - } - else - buf->st_size = 0; -#if _GL_WINDOWS_STAT_TIMESPEC - buf->st_atim.tv_sec = 0; buf->st_atim.tv_nsec = 0; - buf->st_mtim.tv_sec = 0; buf->st_mtim.tv_nsec = 0; - buf->st_ctim.tv_sec = 0; buf->st_ctim.tv_nsec = 0; -#else - buf->st_atime = 0; - buf->st_mtime = 0; - buf->st_ctime = 0; -#endif - return 0; - } - else - { - errno = ENOENT; - return -1; - } - - failed: - { - DWORD error = GetLastError (); - #if 0 - fprintf (stderr, "_gl_fstat_by_handle error 0x%x\n", (unsigned int) error); - #endif - switch (error) - { - case ERROR_ACCESS_DENIED: - case ERROR_SHARING_VIOLATION: - errno = EACCES; - break; - - case ERROR_OUTOFMEMORY: - errno = ENOMEM; - break; - - case ERROR_WRITE_FAULT: - case ERROR_READ_FAULT: - case ERROR_GEN_FAILURE: - errno = EIO; - break; - - default: - errno = EINVAL; - break; - } - return -1; - } -} - -#else - -/* This declaration is solely to ensure that after preprocessing - this file is never empty. */ -typedef int dummy; - -#endif diff --git a/jni/parted/libiconv/srclib/stat-w32.h b/jni/parted/libiconv/srclib/stat-w32.h deleted file mode 100755 index 0f79d61..0000000 --- a/jni/parted/libiconv/srclib/stat-w32.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _STAT_W32_H -#define _STAT_W32_H 1 - -/* Converts a FILETIME to GMT time since 1970-01-01 00:00:00. */ -#if _GL_WINDOWS_STAT_TIMESPEC -extern struct timespec _gl_convert_FILETIME_to_timespec (const FILETIME *ft); -#else -extern time_t _gl_convert_FILETIME_to_POSIX (const FILETIME *ft); -#endif - -/* Fill *BUF with information about the file designated by H. - PATH is the file name, if known, otherwise NULL. - Return 0 if successful, or -1 with errno set upon failure. */ -extern int _gl_fstat_by_handle (HANDLE h, const char *path, struct stat *buf); - -/* Bitmasks for st_mode. */ -#define S_IREAD_UGO (_S_IREAD | (_S_IREAD >> 3) | (_S_IREAD >> 6)) -#define S_IWRITE_UGO (_S_IWRITE | (_S_IWRITE >> 3) | (_S_IWRITE >> 6)) -#define S_IEXEC_UGO (_S_IEXEC | (_S_IEXEC >> 3) | (_S_IEXEC >> 6)) - -#endif /* _STAT_W32_H */ diff --git a/jni/parted/libiconv/srclib/stat.c b/jni/parted/libiconv/srclib/stat.c deleted file mode 100755 index 574489a..0000000 --- a/jni/parted/libiconv/srclib/stat.c +++ /dev/null @@ -1,440 +0,0 @@ -/* Work around platform bugs in stat. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake and Bruno Haible. */ - -/* If the user's config.h happens to include , let it include only - the system's here, so that orig_stat doesn't recurse to - rpl_stat. */ -#define __need_system_sys_stat_h -#include - -/* Get the original definition of stat. It might be defined as a macro. */ -#include -#include -#undef __need_system_sys_stat_h - -#if defined _WIN32 && ! defined __CYGWIN__ -# define WINDOWS_NATIVE -#endif - -#if !defined WINDOWS_NATIVE - -static int -orig_stat (const char *filename, struct stat *buf) -{ - return stat (filename, buf); -} - -#endif - -/* Specification. */ -#ifdef __osf__ -/* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc - eliminates this include because of the preliminary #include - above. */ -# include "sys/stat.h" -#else -# include -#endif - -#include "stat-time.h" - -#include -#include -#include -#include -#include "filename.h" -#include "malloca.h" -#include "verify.h" - -#ifdef WINDOWS_NATIVE -# define WIN32_LEAN_AND_MEAN -# include -# include "stat-w32.h" -/* Don't assume that UNICODE is not defined. */ -# undef WIN32_FIND_DATA -# define WIN32_FIND_DATA WIN32_FIND_DATAA -# undef CreateFile -# define CreateFile CreateFileA -# undef FindFirstFile -# define FindFirstFile FindFirstFileA -#endif - -#ifdef WINDOWS_NATIVE -/* Return TRUE if the given file name denotes an UNC root. */ -static BOOL -is_unc_root (const char *rname) -{ - /* Test whether it has the syntax '\\server\share'. */ - if (ISSLASH (rname[0]) && ISSLASH (rname[1])) - { - /* It starts with two slashes. Find the next slash. */ - const char *p = rname + 2; - const char *q = p; - while (*q != '\0' && !ISSLASH (*q)) - q++; - if (q > p && *q != '\0') - { - /* Found the next slash at q. */ - q++; - const char *r = q; - while (*r != '\0' && !ISSLASH (*r)) - r++; - if (r > q && *r == '\0') - return TRUE; - } - } - return FALSE; -} -#endif - -/* Store information about NAME into ST. Work around bugs with - trailing slashes. Mingw has other bugs (such as st_ino always - being 0 on success) which this wrapper does not work around. But - at least this implementation provides the ability to emulate fchdir - correctly. */ - -int -rpl_stat (char const *name, struct stat *buf) -{ -#ifdef WINDOWS_NATIVE - /* Fill the fields ourselves, because the original stat function returns - values for st_atime, st_mtime, st_ctime that depend on the current time - zone. See - */ - /* XXX Should we convert to wchar_t* and prepend '\\?\', in order to work - around length limitations - ? */ - - /* POSIX - specifies: "More than two leading characters shall be treated as - a single character." */ - if (ISSLASH (name[0]) && ISSLASH (name[1]) && ISSLASH (name[2])) - { - name += 2; - while (ISSLASH (name[1])) - name++; - } - - size_t len = strlen (name); - size_t drive_prefix_len = (HAS_DEVICE (name) ? 2 : 0); - - /* Remove trailing slashes (except the very first one, at position - drive_prefix_len), but remember their presence. */ - size_t rlen; - bool check_dir = false; - - rlen = len; - while (rlen > drive_prefix_len && ISSLASH (name[rlen-1])) - { - check_dir = true; - if (rlen == drive_prefix_len + 1) - break; - rlen--; - } - - /* Handle '' and 'C:'. */ - if (!check_dir && rlen == drive_prefix_len) - { - errno = ENOENT; - return -1; - } - - /* Handle '\\'. */ - if (rlen == 1 && ISSLASH (name[0]) && len >= 2) - { - errno = ENOENT; - return -1; - } - - const char *rname; - char *malloca_rname; - if (rlen == len) - { - rname = name; - malloca_rname = NULL; - } - else - { - malloca_rname = malloca (rlen + 1); - if (malloca_rname == NULL) - { - errno = ENOMEM; - return -1; - } - memcpy (malloca_rname, name, rlen); - malloca_rname[rlen] = '\0'; - rname = malloca_rname; - } - - /* There are two ways to get at the requested information: - - by scanning the parent directory and examining the relevant - directory entry, - - by opening the file directly. - The first approach fails for root directories (e.g. 'C:\') and - UNC root directories (e.g. '\\server\share'). - The second approach fails for some system files (e.g. 'C:\pagefile.sys' - and 'C:\hiberfil.sys'): ERROR_SHARING_VIOLATION. - The second approach gives more information (in particular, correct - st_dev, st_ino, st_nlink fields). - So we use the second approach and, as a fallback except for root and - UNC root directories, also the first approach. */ - { - int ret; - - { - /* Approach based on the file. */ - - /* Open a handle to the file. - CreateFile - - */ - HANDLE h = - CreateFile (rname, - FILE_READ_ATTRIBUTES, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, - OPEN_EXISTING, - /* FILE_FLAG_POSIX_SEMANTICS (treat file names that differ only - in case as different) makes sense only when applied to *all* - filesystem operations. */ - FILE_FLAG_BACKUP_SEMANTICS /* | FILE_FLAG_POSIX_SEMANTICS */, - NULL); - if (h != INVALID_HANDLE_VALUE) - { - ret = _gl_fstat_by_handle (h, rname, buf); - CloseHandle (h); - goto done; - } - } - - /* Test for root and UNC root directories. */ - if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) - || is_unc_root (rname)) - goto failed; - - /* Fallback. */ - { - /* Approach based on the directory entry. */ - - if (strchr (rname, '?') != NULL || strchr (rname, '*') != NULL) - { - /* Other Windows API functions would fail with error - ERROR_INVALID_NAME. */ - if (malloca_rname != NULL) - freea (malloca_rname); - errno = ENOENT; - return -1; - } - - /* Get the details about the directory entry. This can be done through - FindFirstFile - - - or through - FindFirstFileEx with argument FindExInfoBasic - - - */ - WIN32_FIND_DATA info; - HANDLE h = FindFirstFile (rname, &info); - if (h == INVALID_HANDLE_VALUE) - goto failed; - - /* Test for error conditions before starting to fill *buf. */ - if (sizeof (buf->st_size) <= 4 && info.nFileSizeHigh > 0) - { - FindClose (h); - if (malloca_rname != NULL) - freea (malloca_rname); - errno = EOVERFLOW; - return -1; - } - -# if _GL_WINDOWS_STAT_INODES - buf->st_dev = 0; -# if _GL_WINDOWS_STAT_INODES == 2 - buf->st_ino._gl_ino[0] = buf->st_ino._gl_ino[1] = 0; -# else /* _GL_WINDOWS_STAT_INODES == 1 */ - buf->st_ino = 0; -# endif -# else - /* st_ino is not wide enough for identifying a file on a device. - Without st_ino, st_dev is pointless. */ - buf->st_dev = 0; - buf->st_ino = 0; -# endif - - /* st_mode. */ - unsigned int mode = - /* XXX How to handle FILE_ATTRIBUTE_REPARSE_POINT ? */ - ((info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? _S_IFDIR | S_IEXEC_UGO : _S_IFREG) - | S_IREAD_UGO - | ((info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0 : S_IWRITE_UGO); - if (!(info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Determine whether the file is executable by looking at the file - name suffix. */ - if (info.nFileSizeHigh > 0 || info.nFileSizeLow > 0) - { - const char *last_dot = NULL; - const char *p; - for (p = info.cFileName; *p != '\0'; p++) - if (*p == '.') - last_dot = p; - if (last_dot != NULL) - { - const char *suffix = last_dot + 1; - if (_stricmp (suffix, "exe") == 0 - || _stricmp (suffix, "bat") == 0 - || _stricmp (suffix, "cmd") == 0 - || _stricmp (suffix, "com") == 0) - mode |= S_IEXEC_UGO; - } - } - } - buf->st_mode = mode; - - /* st_nlink. Ignore hard links here. */ - buf->st_nlink = 1; - - /* There's no easy way to map the Windows SID concept to an integer. */ - buf->st_uid = 0; - buf->st_gid = 0; - - /* st_rdev is irrelevant for normal files and directories. */ - buf->st_rdev = 0; - - /* st_size. */ - if (sizeof (buf->st_size) <= 4) - /* Range check already done above. */ - buf->st_size = info.nFileSizeLow; - else - buf->st_size = ((long long) info.nFileSizeHigh << 32) | (long long) info.nFileSizeLow; - - /* st_atime, st_mtime, st_ctime. */ -# if _GL_WINDOWS_STAT_TIMESPEC - buf->st_atim = _gl_convert_FILETIME_to_timespec (&info.ftLastAccessTime); - buf->st_mtim = _gl_convert_FILETIME_to_timespec (&info.ftLastWriteTime); - buf->st_ctim = _gl_convert_FILETIME_to_timespec (&info.ftCreationTime); -# else - buf->st_atime = _gl_convert_FILETIME_to_POSIX (&info.ftLastAccessTime); - buf->st_mtime = _gl_convert_FILETIME_to_POSIX (&info.ftLastWriteTime); - buf->st_ctime = _gl_convert_FILETIME_to_POSIX (&info.ftCreationTime); -# endif - - FindClose (h); - - ret = 0; - } - - done: - if (ret >= 0 && check_dir && !S_ISDIR (buf->st_mode)) - { - errno = ENOTDIR; - ret = -1; - } - if (malloca_rname != NULL) - { - int saved_errno = errno; - freea (malloca_rname); - errno = saved_errno; - } - return ret; - } - - failed: - { - DWORD error = GetLastError (); - #if 0 - fprintf (stderr, "rpl_stat error 0x%x\n", (unsigned int) error); - #endif - - if (malloca_rname != NULL) - freea (malloca_rname); - - switch (error) - { - /* Some of these errors probably cannot happen with the specific flags - that we pass to CreateFile. But who knows... */ - case ERROR_FILE_NOT_FOUND: /* The last component of rname does not exist. */ - case ERROR_PATH_NOT_FOUND: /* Some directory component in rname does not exist. */ - case ERROR_BAD_PATHNAME: /* rname is such as '\\server'. */ - case ERROR_BAD_NET_NAME: /* rname is such as '\\server\nonexistentshare'. */ - case ERROR_INVALID_NAME: /* rname contains wildcards, misplaced colon, etc. */ - case ERROR_DIRECTORY: - errno = ENOENT; - break; - - case ERROR_ACCESS_DENIED: /* rname is such as 'C:\System Volume Information\foo'. */ - case ERROR_SHARING_VIOLATION: /* rname is such as 'C:\pagefile.sys' (second approach only). */ - /* XXX map to EACCES or EPERM? */ - errno = EACCES; - break; - - case ERROR_OUTOFMEMORY: - errno = ENOMEM; - break; - - case ERROR_WRITE_PROTECT: - errno = EROFS; - break; - - case ERROR_WRITE_FAULT: - case ERROR_READ_FAULT: - case ERROR_GEN_FAILURE: - errno = EIO; - break; - - case ERROR_BUFFER_OVERFLOW: - case ERROR_FILENAME_EXCED_RANGE: - errno = ENAMETOOLONG; - break; - - case ERROR_DELETE_PENDING: /* XXX map to EACCES or EPERM? */ - errno = EPERM; - break; - - default: - errno = EINVAL; - break; - } - - return -1; - } -#else - int result = orig_stat (name, buf); - if (result == 0) - { -# if REPLACE_FUNC_STAT_FILE - /* Solaris 9 mistakenly succeeds when given a non-directory with a - trailing slash. */ - if (!S_ISDIR (buf->st_mode)) - { - size_t len = strlen (name); - if (ISSLASH (name[len - 1])) - { - errno = ENOTDIR; - return -1; - } - } -# endif /* REPLACE_FUNC_STAT_FILE */ - result = stat_time_normalize (result, buf); - } - return result; -#endif -} diff --git a/jni/parted/libiconv/srclib/stdint.h b/jni/parted/libiconv/srclib/stdint.h deleted file mode 100755 index 1d0d28f..0000000 --- a/jni/parted/libiconv/srclib/stdint.h +++ /dev/null @@ -1,741 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Copyright (C) 2001-2002, 2004-2022 Free Software Foundation, Inc. - Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. - This file is part of gnulib. - - This file 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 file 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 program. If not, see . */ - -/* - * ISO C 99 for platforms that lack it. - * - */ - -#ifndef _GL_STDINT_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* When including a system file that in turn includes , - use the system , not our substitute. This avoids - problems with (for example) VMS, whose includes - . */ -#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H - -/* On Android (Bionic libc), includes this file before - having defined 'time_t'. Therefore in this case avoid including - other system header files; just include the system's . - Ideally we should test __BIONIC__ here, but it is only defined after - has been included; hence test __ANDROID__ instead. */ -#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H -# include_next -#else - -/* Get those types that are already defined in other system include - files, so that we can "#define int8_t signed char" below without - worrying about a later system include file containing a "typedef - signed char int8_t;" that will get messed up by our macro. Our - macros should all be consistent with the system versions, except - for the "fast" types and macros, which we recommend against using - in public interfaces due to compiler differences. */ - -#if 1 -# if defined __sgi && ! defined __c99 - /* Bypass IRIX's if in C89 mode, since it merely annoys users - with "This header file is to be used only for c99 mode compilations" - diagnostics. */ -# define __STDINT_H__ -# endif - - /* Some pre-C++11 implementations need this. */ -# ifdef __cplusplus -# ifndef __STDC_CONSTANT_MACROS -# define __STDC_CONSTANT_MACROS 1 -# endif -# ifndef __STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS 1 -# endif -# endif - - /* Other systems may have an incomplete or buggy . - Include it before , since any "#include " - in would reinclude us, skipping our contents because - _GL_STDINT_H is defined. - The include_next requires a split double-inclusion guard. */ -# include_next -#endif - -#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H -#define _GL_STDINT_H - -/* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, - LONG_MIN, LONG_MAX, ULONG_MAX, _GL_INTEGER_WIDTH. */ -#include - -/* Override WINT_MIN and WINT_MAX if gnulib's or overrides - wint_t. */ -#if 0 -# undef WINT_MIN -# undef WINT_MAX -# define WINT_MIN 0x0U -# define WINT_MAX 0xffffffffU -#endif - -#if ! 0 - -/* defines some of the stdint.h types as well, on glibc, - IRIX 6.5, and OpenBSD 3.8 (via ). - AIX 5.2 isn't needed and causes troubles. - Mac OS X 10.4.6 includes (which is us), but - relies on the system definitions, so include - after . */ -# if 1 && ! defined _AIX -# include -# endif - -# if 1 - /* In OpenBSD 3.8, includes , which defines - int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. - also defines intptr_t and uintptr_t. */ -# include -# elif 0 - /* Solaris 7 has the types except the *_fast*_t types, and - the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ -# include -# endif - -# if 0 && ! defined __BIT_TYPES_DEFINED__ - /* Linux libc4 >= 4.6.7 and libc5 have a that defines - int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is - included by . */ -# include -# endif - -# undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H - -/* Minimum and maximum values for an integer type under the usual assumption. - Return an unspecified value if BITS == 0, adding a check to pacify - picky compilers. */ - -/* These are separate macros, because if you try to merge these macros into - a single one, HP-UX cc rejects the resulting expression in constant - expressions. */ -# define _STDINT_UNSIGNED_MIN(bits, zero) \ - (zero) -# define _STDINT_SIGNED_MIN(bits, zero) \ - (~ _STDINT_MAX (1, bits, zero)) - -# define _STDINT_MAX(signed, bits, zero) \ - (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) - -#if !GNULIB_defined_stdint_types - -/* 7.18.1.1. Exact-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. */ - -# undef int8_t -# undef uint8_t -typedef signed char gl_int8_t; -typedef unsigned char gl_uint8_t; -# define int8_t gl_int8_t -# define uint8_t gl_uint8_t - -# undef int16_t -# undef uint16_t -typedef short int gl_int16_t; -typedef unsigned short int gl_uint16_t; -# define int16_t gl_int16_t -# define uint16_t gl_uint16_t - -# undef int32_t -# undef uint32_t -typedef int gl_int32_t; -typedef unsigned int gl_uint32_t; -# define int32_t gl_int32_t -# define uint32_t gl_uint32_t - -/* If the system defines INT64_MAX, assume int64_t works. That way, - if the underlying platform defines int64_t to be a 64-bit long long - int, the code below won't mistakenly define it to be a 64-bit long - int, which would mess up C++ name mangling. We must use #ifdef - rather than #if, to avoid an error with HP-UX 10.20 cc. */ - -# ifdef INT64_MAX -# define GL_INT64_T -# else -/* Do not undefine int64_t if gnulib is not being used with 64-bit - types, since otherwise it breaks platforms like Tandem/NSK. */ -# if LONG_MAX >> 31 >> 31 == 1 -# undef int64_t -typedef long int gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# elif defined _MSC_VER -# undef int64_t -typedef __int64 gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# else -# undef int64_t -typedef long long int gl_int64_t; -# define int64_t gl_int64_t -# define GL_INT64_T -# endif -# endif - -# ifdef UINT64_MAX -# define GL_UINT64_T -# else -# if ULONG_MAX >> 31 >> 31 >> 1 == 1 -# undef uint64_t -typedef unsigned long int gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# elif defined _MSC_VER -# undef uint64_t -typedef unsigned __int64 gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# else -# undef uint64_t -typedef unsigned long long int gl_uint64_t; -# define uint64_t gl_uint64_t -# define GL_UINT64_T -# endif -# endif - -/* Avoid collision with Solaris 2.5.1 etc. */ -# define _UINT8_T -# define _UINT32_T -# define _UINT64_T - - -/* 7.18.1.2. Minimum-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types - are the same as the corresponding N_t types. */ - -# undef int_least8_t -# undef uint_least8_t -# undef int_least16_t -# undef uint_least16_t -# undef int_least32_t -# undef uint_least32_t -# undef int_least64_t -# undef uint_least64_t -# define int_least8_t int8_t -# define uint_least8_t uint8_t -# define int_least16_t int16_t -# define uint_least16_t uint16_t -# define int_least32_t int32_t -# define uint_least32_t uint32_t -# ifdef GL_INT64_T -# define int_least64_t int64_t -# endif -# ifdef GL_UINT64_T -# define uint_least64_t uint64_t -# endif - -/* 7.18.1.3. Fastest minimum-width integer types */ - -/* Note: Other substitutes may define these types differently. - It is not recommended to use these types in public header files. */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types - are taken from the same list of types. The following code normally - uses types consistent with glibc, as that lessens the chance of - incompatibility with older GNU hosts. */ - -# undef int_fast8_t -# undef uint_fast8_t -# undef int_fast16_t -# undef uint_fast16_t -# undef int_fast32_t -# undef uint_fast32_t -# undef int_fast64_t -# undef uint_fast64_t -typedef signed char gl_int_fast8_t; -typedef unsigned char gl_uint_fast8_t; - -# ifdef __sun -/* Define types compatible with SunOS 5.10, so that code compiled under - earlier SunOS versions works with code compiled under SunOS 5.10. */ -typedef int gl_int_fast32_t; -typedef unsigned int gl_uint_fast32_t; -# else -typedef long int gl_int_fast32_t; -typedef unsigned long int gl_uint_fast32_t; -# endif -typedef gl_int_fast32_t gl_int_fast16_t; -typedef gl_uint_fast32_t gl_uint_fast16_t; - -# define int_fast8_t gl_int_fast8_t -# define uint_fast8_t gl_uint_fast8_t -# define int_fast16_t gl_int_fast16_t -# define uint_fast16_t gl_uint_fast16_t -# define int_fast32_t gl_int_fast32_t -# define uint_fast32_t gl_uint_fast32_t -# ifdef GL_INT64_T -# define int_fast64_t int64_t -# endif -# ifdef GL_UINT64_T -# define uint_fast64_t uint64_t -# endif - -/* 7.18.1.4. Integer types capable of holding object pointers */ - -/* kLIBC's defines _INTPTR_T_DECLARED and needs its own - definitions of intptr_t and uintptr_t (which use int and unsigned) - to avoid clashes with declarations of system functions like sbrk. - Similarly, MinGW WSL-5.4.1 needs its own intptr_t and - uintptr_t to avoid conflicting declarations of system functions like - _findclose in . */ -# if !((defined __KLIBC__ && defined _INTPTR_T_DECLARED) \ - || defined __MINGW32__) -# undef intptr_t -# undef uintptr_t -# ifdef _WIN64 -typedef long long int gl_intptr_t; -typedef unsigned long long int gl_uintptr_t; -# else -typedef long int gl_intptr_t; -typedef unsigned long int gl_uintptr_t; -# endif -# define intptr_t gl_intptr_t -# define uintptr_t gl_uintptr_t -# endif - -/* 7.18.1.5. Greatest-width integer types */ - -/* Note: These types are compiler dependent. It may be unwise to use them in - public header files. */ - -/* If the system defines INTMAX_MAX, assume that intmax_t works, and - similarly for UINTMAX_MAX and uintmax_t. This avoids problems with - assuming one type where another is used by the system. */ - -# ifndef INTMAX_MAX -# undef INTMAX_C -# undef intmax_t -# if LONG_MAX >> 30 == 1 -typedef long long int gl_intmax_t; -# define intmax_t gl_intmax_t -# elif defined GL_INT64_T -# define intmax_t int64_t -# else -typedef long int gl_intmax_t; -# define intmax_t gl_intmax_t -# endif -# endif - -# ifndef UINTMAX_MAX -# undef UINTMAX_C -# undef uintmax_t -# if ULONG_MAX >> 31 == 1 -typedef unsigned long long int gl_uintmax_t; -# define uintmax_t gl_uintmax_t -# elif defined GL_UINT64_T -# define uintmax_t uint64_t -# else -typedef unsigned long int gl_uintmax_t; -# define uintmax_t gl_uintmax_t -# endif -# endif - -/* Verify that intmax_t and uintmax_t have the same size. Too much code - breaks if this is not the case. If this check fails, the reason is likely - to be found in the autoconf macros. */ -typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) - ? 1 : -1]; - -# define GNULIB_defined_stdint_types 1 -# endif /* !GNULIB_defined_stdint_types */ - -/* 7.18.2. Limits of specified-width integer types */ - -/* 7.18.2.1. Limits of exact-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. */ - -# undef INT8_MIN -# undef INT8_MAX -# undef UINT8_MAX -# define INT8_MIN (~ INT8_MAX) -# define INT8_MAX 127 -# define UINT8_MAX 255 - -# undef INT16_MIN -# undef INT16_MAX -# undef UINT16_MAX -# define INT16_MIN (~ INT16_MAX) -# define INT16_MAX 32767 -# define UINT16_MAX 65535 - -# undef INT32_MIN -# undef INT32_MAX -# undef UINT32_MAX -# define INT32_MIN (~ INT32_MAX) -# define INT32_MAX 2147483647 -# define UINT32_MAX 4294967295U - -# if defined GL_INT64_T && ! defined INT64_MAX -/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 - evaluates the latter incorrectly in preprocessor expressions. */ -# define INT64_MIN (- INTMAX_C (1) << 63) -# define INT64_MAX INTMAX_C (9223372036854775807) -# endif - -# if defined GL_UINT64_T && ! defined UINT64_MAX -# define UINT64_MAX UINTMAX_C (18446744073709551615) -# endif - -/* 7.18.2.2. Limits of minimum-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types - are the same as the corresponding N_t types. */ - -# undef INT_LEAST8_MIN -# undef INT_LEAST8_MAX -# undef UINT_LEAST8_MAX -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST8_MAX INT8_MAX -# define UINT_LEAST8_MAX UINT8_MAX - -# undef INT_LEAST16_MIN -# undef INT_LEAST16_MAX -# undef UINT_LEAST16_MAX -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST16_MAX INT16_MAX -# define UINT_LEAST16_MAX UINT16_MAX - -# undef INT_LEAST32_MIN -# undef INT_LEAST32_MAX -# undef UINT_LEAST32_MAX -# define INT_LEAST32_MIN INT32_MIN -# define INT_LEAST32_MAX INT32_MAX -# define UINT_LEAST32_MAX UINT32_MAX - -# undef INT_LEAST64_MIN -# undef INT_LEAST64_MAX -# ifdef GL_INT64_T -# define INT_LEAST64_MIN INT64_MIN -# define INT_LEAST64_MAX INT64_MAX -# endif - -# undef UINT_LEAST64_MAX -# ifdef GL_UINT64_T -# define UINT_LEAST64_MAX UINT64_MAX -# endif - -/* 7.18.2.3. Limits of fastest minimum-width integer types */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types - are taken from the same list of types. */ - -# undef INT_FAST8_MIN -# undef INT_FAST8_MAX -# undef UINT_FAST8_MAX -# define INT_FAST8_MIN SCHAR_MIN -# define INT_FAST8_MAX SCHAR_MAX -# define UINT_FAST8_MAX UCHAR_MAX - -# undef INT_FAST16_MIN -# undef INT_FAST16_MAX -# undef UINT_FAST16_MAX -# define INT_FAST16_MIN INT_FAST32_MIN -# define INT_FAST16_MAX INT_FAST32_MAX -# define UINT_FAST16_MAX UINT_FAST32_MAX - -# undef INT_FAST32_MIN -# undef INT_FAST32_MAX -# undef UINT_FAST32_MAX -# ifdef __sun -# define INT_FAST32_MIN INT_MIN -# define INT_FAST32_MAX INT_MAX -# define UINT_FAST32_MAX UINT_MAX -# else -# define INT_FAST32_MIN LONG_MIN -# define INT_FAST32_MAX LONG_MAX -# define UINT_FAST32_MAX ULONG_MAX -# endif - -# undef INT_FAST64_MIN -# undef INT_FAST64_MAX -# ifdef GL_INT64_T -# define INT_FAST64_MIN INT64_MIN -# define INT_FAST64_MAX INT64_MAX -# endif - -# undef UINT_FAST64_MAX -# ifdef GL_UINT64_T -# define UINT_FAST64_MAX UINT64_MAX -# endif - -/* 7.18.2.4. Limits of integer types capable of holding object pointers */ - -# undef INTPTR_MIN -# undef INTPTR_MAX -# undef UINTPTR_MAX -# ifdef _WIN64 -# define INTPTR_MIN LLONG_MIN -# define INTPTR_MAX LLONG_MAX -# define UINTPTR_MAX ULLONG_MAX -# else -# define INTPTR_MIN LONG_MIN -# define INTPTR_MAX LONG_MAX -# define UINTPTR_MAX ULONG_MAX -# endif - -/* 7.18.2.5. Limits of greatest-width integer types */ - -# ifndef INTMAX_MAX -# undef INTMAX_MIN -# ifdef INT64_MAX -# define INTMAX_MIN INT64_MIN -# define INTMAX_MAX INT64_MAX -# else -# define INTMAX_MIN INT32_MIN -# define INTMAX_MAX INT32_MAX -# endif -# endif - -# ifndef UINTMAX_MAX -# ifdef UINT64_MAX -# define UINTMAX_MAX UINT64_MAX -# else -# define UINTMAX_MAX UINT32_MAX -# endif -# endif - -/* 7.18.3. Limits of other integer types */ - -/* ptrdiff_t limits */ -# undef PTRDIFF_MIN -# undef PTRDIFF_MAX -# if 0 -# ifdef _LP64 -# define PTRDIFF_MIN _STDINT_SIGNED_MIN (64, 0l) -# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) -# else -# define PTRDIFF_MIN _STDINT_SIGNED_MIN (32, 0) -# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) -# endif -# else -# define PTRDIFF_MIN \ - _STDINT_SIGNED_MIN (64, 0l) -# define PTRDIFF_MAX \ - _STDINT_MAX (1, 64, 0l) -# endif - -/* sig_atomic_t limits */ -# undef SIG_ATOMIC_MIN -# undef SIG_ATOMIC_MAX -# if 1 -# define SIG_ATOMIC_MIN \ - _STDINT_SIGNED_MIN (32, 0) -# else -# define SIG_ATOMIC_MIN \ - _STDINT_UNSIGNED_MIN (32, 0) -# endif -# define SIG_ATOMIC_MAX \ - _STDINT_MAX (1, 32, \ - 0) - - -/* size_t limit */ -# undef SIZE_MAX -# if 0 -# ifdef _LP64 -# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) -# else -# define SIZE_MAX _STDINT_MAX (0, 32, 0ul) -# endif -# else -# define SIZE_MAX _STDINT_MAX (0, 64, 0ul) -# endif - -/* wchar_t limits */ -/* Get WCHAR_MIN, WCHAR_MAX. - This include is not on the top, above, because on OSF/1 4.0 we have a - sequence of nested includes - -> -> -> , and the latter includes - and assumes its types are already defined. */ -# if 1 && ! (defined WCHAR_MIN && defined WCHAR_MAX) -# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H -# include -# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H -# endif -# undef WCHAR_MIN -# undef WCHAR_MAX -# if 0 -# define WCHAR_MIN \ - _STDINT_SIGNED_MIN (32, 0u) -# else -# define WCHAR_MIN \ - _STDINT_UNSIGNED_MIN (32, 0u) -# endif -# define WCHAR_MAX \ - _STDINT_MAX (0, 32, 0u) - -/* wint_t limits */ -/* If gnulib's or overrides wint_t, u is not - accurate, therefore use the definitions from above. */ -# if !0 -# undef WINT_MIN -# undef WINT_MAX -# if 0 -# define WINT_MIN \ - _STDINT_SIGNED_MIN (32, 0u) -# else -# define WINT_MIN \ - _STDINT_UNSIGNED_MIN (32, 0u) -# endif -# define WINT_MAX \ - _STDINT_MAX (0, 32, 0u) -# endif - -/* 7.18.4. Macros for integer constants */ - -/* 7.18.4.1. Macros for minimum-width integer constants */ -/* According to ISO C 99 Technical Corrigendum 1 */ - -/* Here we assume a standard architecture where the hardware integer - types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ - -# undef INT8_C -# undef UINT8_C -# define INT8_C(x) x -# define UINT8_C(x) x - -# undef INT16_C -# undef UINT16_C -# define INT16_C(x) x -# define UINT16_C(x) x - -# undef INT32_C -# undef UINT32_C -# define INT32_C(x) x -# define UINT32_C(x) x ## U - -# undef INT64_C -# undef UINT64_C -# if LONG_MAX >> 31 >> 31 == 1 -# define INT64_C(x) x##L -# elif defined _MSC_VER -# define INT64_C(x) x##i64 -# else -# define INT64_C(x) x##LL -# endif -# if ULONG_MAX >> 31 >> 31 >> 1 == 1 -# define UINT64_C(x) x##UL -# elif defined _MSC_VER -# define UINT64_C(x) x##ui64 -# else -# define UINT64_C(x) x##ULL -# endif - -/* 7.18.4.2. Macros for greatest-width integer constants */ - -# ifndef INTMAX_C -# if LONG_MAX >> 30 == 1 -# define INTMAX_C(x) x##LL -# elif defined GL_INT64_T -# define INTMAX_C(x) INT64_C(x) -# else -# define INTMAX_C(x) x##L -# endif -# endif - -# ifndef UINTMAX_C -# if ULONG_MAX >> 31 == 1 -# define UINTMAX_C(x) x##ULL -# elif defined GL_UINT64_T -# define UINTMAX_C(x) UINT64_C(x) -# else -# define UINTMAX_C(x) x##UL -# endif -# endif - -#endif /* !0 */ - -/* Macros specified by ISO/IEC TS 18661-1:2014. */ - -#if (!defined UINTMAX_WIDTH \ - && (defined _GNU_SOURCE || defined __STDC_WANT_IEC_60559_BFP_EXT__)) -# ifdef INT8_MAX -# define INT8_WIDTH _GL_INTEGER_WIDTH (INT8_MIN, INT8_MAX) -# endif -# ifdef UINT8_MAX -# define UINT8_WIDTH _GL_INTEGER_WIDTH (0, UINT8_MAX) -# endif -# ifdef INT16_MAX -# define INT16_WIDTH _GL_INTEGER_WIDTH (INT16_MIN, INT16_MAX) -# endif -# ifdef UINT16_MAX -# define UINT16_WIDTH _GL_INTEGER_WIDTH (0, UINT16_MAX) -# endif -# ifdef INT32_MAX -# define INT32_WIDTH _GL_INTEGER_WIDTH (INT32_MIN, INT32_MAX) -# endif -# ifdef UINT32_MAX -# define UINT32_WIDTH _GL_INTEGER_WIDTH (0, UINT32_MAX) -# endif -# ifdef INT64_MAX -# define INT64_WIDTH _GL_INTEGER_WIDTH (INT64_MIN, INT64_MAX) -# endif -# ifdef UINT64_MAX -# define UINT64_WIDTH _GL_INTEGER_WIDTH (0, UINT64_MAX) -# endif -# define INT_LEAST8_WIDTH _GL_INTEGER_WIDTH (INT_LEAST8_MIN, INT_LEAST8_MAX) -# define UINT_LEAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST8_MAX) -# define INT_LEAST16_WIDTH _GL_INTEGER_WIDTH (INT_LEAST16_MIN, INT_LEAST16_MAX) -# define UINT_LEAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST16_MAX) -# define INT_LEAST32_WIDTH _GL_INTEGER_WIDTH (INT_LEAST32_MIN, INT_LEAST32_MAX) -# define UINT_LEAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST32_MAX) -# define INT_LEAST64_WIDTH _GL_INTEGER_WIDTH (INT_LEAST64_MIN, INT_LEAST64_MAX) -# define UINT_LEAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_LEAST64_MAX) -# define INT_FAST8_WIDTH _GL_INTEGER_WIDTH (INT_FAST8_MIN, INT_FAST8_MAX) -# define UINT_FAST8_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST8_MAX) -# define INT_FAST16_WIDTH _GL_INTEGER_WIDTH (INT_FAST16_MIN, INT_FAST16_MAX) -# define UINT_FAST16_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST16_MAX) -# define INT_FAST32_WIDTH _GL_INTEGER_WIDTH (INT_FAST32_MIN, INT_FAST32_MAX) -# define UINT_FAST32_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST32_MAX) -# define INT_FAST64_WIDTH _GL_INTEGER_WIDTH (INT_FAST64_MIN, INT_FAST64_MAX) -# define UINT_FAST64_WIDTH _GL_INTEGER_WIDTH (0, UINT_FAST64_MAX) -# define INTPTR_WIDTH _GL_INTEGER_WIDTH (INTPTR_MIN, INTPTR_MAX) -# define UINTPTR_WIDTH _GL_INTEGER_WIDTH (0, UINTPTR_MAX) -# define INTMAX_WIDTH _GL_INTEGER_WIDTH (INTMAX_MIN, INTMAX_MAX) -# define UINTMAX_WIDTH _GL_INTEGER_WIDTH (0, UINTMAX_MAX) -# define PTRDIFF_WIDTH _GL_INTEGER_WIDTH (PTRDIFF_MIN, PTRDIFF_MAX) -# define SIZE_WIDTH _GL_INTEGER_WIDTH (0, SIZE_MAX) -# define WCHAR_WIDTH _GL_INTEGER_WIDTH (WCHAR_MIN, WCHAR_MAX) -# ifdef WINT_MAX -# define WINT_WIDTH _GL_INTEGER_WIDTH (WINT_MIN, WINT_MAX) -# endif -# ifdef SIG_ATOMIC_MAX -# define SIG_ATOMIC_WIDTH _GL_INTEGER_WIDTH (SIG_ATOMIC_MIN, SIG_ATOMIC_MAX) -# endif -#endif /* !WINT_WIDTH && (_GNU_SOURCE || __STDC_WANT_IEC_60559_BFP_EXT__) */ - -#endif /* _GL_STDINT_H */ -#endif /* !(defined __ANDROID__ && ...) */ -#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ diff --git a/jni/parted/libiconv/srclib/stdio-read.c b/jni/parted/libiconv/srclib/stdio-read.c deleted file mode 100755 index 85efa0d..0000000 --- a/jni/parted/libiconv/srclib/stdio-read.c +++ /dev/null @@ -1,168 +0,0 @@ -/* POSIX compatible FILE stream read function. - Copyright (C) 2008-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2011. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* Replace these functions only if module 'nonblocking' is requested. */ -#if GNULIB_NONBLOCKING - -/* On native Windows platforms, when read() is called on a non-blocking pipe - with an empty buffer, ReadFile() fails with error GetLastError() = - ERROR_NO_DATA, and read() in consequence fails with error EINVAL. This - read() function is at the basis of the function which fills the buffer of - a FILE stream. */ - -# if defined _WIN32 && ! defined __CYGWIN__ - -# include -# include - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Don't assume that UNICODE is not defined. */ -# undef GetNamedPipeHandleState -# define GetNamedPipeHandleState GetNamedPipeHandleStateA - -# define CALL_WITH_ERRNO_FIX(RETTYPE, EXPRESSION, FAILED) \ - if (ferror (stream)) \ - return (EXPRESSION); \ - else \ - { \ - RETTYPE ret; \ - SetLastError (0); \ - ret = (EXPRESSION); \ - if (FAILED) \ - { \ - if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0) \ - { \ - HANDLE h = (HANDLE) _get_osfhandle (fd); \ - if (GetFileType (h) == FILE_TYPE_PIPE) \ - { \ - /* h is a pipe or socket. */ \ - DWORD state; \ - if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ - NULL, NULL, 0) \ - && (state & PIPE_NOWAIT) != 0) \ - /* h is a pipe in non-blocking mode. \ - Change errno from EINVAL to EAGAIN. */ \ - errno = EAGAIN; \ - } \ - } \ - } \ - } \ - return ret; \ - } - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_SCANF -int -scanf (const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfscanf (stdin, format, args); - va_end (args); - - return retval; -} -# endif - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_FSCANF -int -fscanf (FILE *stream, const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfscanf (stream, format, args); - va_end (args); - - return retval; -} -# endif - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_VSCANF -int -vscanf (const char *format, va_list args) -{ - return vfscanf (stdin, format, args); -} -# endif - -/* Enable this function definition only if gnulib's has prepared it. - Otherwise we get a function definition conflict with mingw64's . */ -# if GNULIB_VFSCANF -int -vfscanf (FILE *stream, const char *format, va_list args) -#undef vfscanf -{ - CALL_WITH_ERRNO_FIX (int, vfscanf (stream, format, args), ret == EOF) -} -# endif - -int -getchar (void) -{ - return fgetc (stdin); -} - -int -fgetc (FILE *stream) -#undef fgetc -{ - CALL_WITH_ERRNO_FIX (int, fgetc (stream), ret == EOF) -} - -char * -fgets (char *s, int n, FILE *stream) -#undef fgets -{ - CALL_WITH_ERRNO_FIX (char *, fgets (s, n, stream), ret == NULL) -} - -/* We intentionally don't bother to fix gets. */ - -size_t -fread (void *ptr, size_t s, size_t n, FILE *stream) -#undef fread -{ - CALL_WITH_ERRNO_FIX (size_t, fread (ptr, s, n, stream), ret < n) -} - -# endif -#endif diff --git a/jni/parted/libiconv/srclib/stdio-write.c b/jni/parted/libiconv/srclib/stdio-write.c deleted file mode 100755 index 82facf5..0000000 --- a/jni/parted/libiconv/srclib/stdio-write.c +++ /dev/null @@ -1,206 +0,0 @@ -/* POSIX compatible FILE stream write function. - Copyright (C) 2008-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2008. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -/* Replace these functions only if module 'nonblocking' or module 'sigpipe' is - requested. */ -#if GNULIB_NONBLOCKING || GNULIB_SIGPIPE - -/* On native Windows platforms, SIGPIPE does not exist. When write() is - called on a pipe with no readers, WriteFile() fails with error - GetLastError() = ERROR_NO_DATA, and write() in consequence fails with - error EINVAL. This write() function is at the basis of the function - which flushes the buffer of a FILE stream. */ - -# if defined _WIN32 && ! defined __CYGWIN__ - -# include -# include -# include - -# define WIN32_LEAN_AND_MEAN /* avoid including junk */ -# include - -# if GNULIB_MSVC_NOTHROW -# include "msvc-nothrow.h" -# else -# include -# endif - -/* Don't assume that UNICODE is not defined. */ -# undef GetNamedPipeHandleState -# define GetNamedPipeHandleState GetNamedPipeHandleStateA - -# if GNULIB_NONBLOCKING -# define CLEAR_ERRNO \ - errno = 0; -# define HANDLE_ENOSPC \ - if (errno == ENOSPC && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0) \ - { \ - HANDLE h = (HANDLE) _get_osfhandle (fd); \ - if (GetFileType (h) == FILE_TYPE_PIPE) \ - { \ - /* h is a pipe or socket. */ \ - DWORD state; \ - if (GetNamedPipeHandleState (h, &state, NULL, NULL, \ - NULL, NULL, 0) \ - && (state & PIPE_NOWAIT) != 0) \ - /* h is a pipe in non-blocking mode. \ - Change errno from ENOSPC to EAGAIN. */ \ - errno = EAGAIN; \ - } \ - } \ - } \ - else -# else -# define CLEAR_ERRNO -# define HANDLE_ENOSPC -# endif - -# if GNULIB_SIGPIPE -# define CLEAR_LastError \ - SetLastError (0); -# define HANDLE_ERROR_NO_DATA \ - if (GetLastError () == ERROR_NO_DATA && ferror (stream)) \ - { \ - int fd = fileno (stream); \ - if (fd >= 0 \ - && GetFileType ((HANDLE) _get_osfhandle (fd)) \ - == FILE_TYPE_PIPE) \ - { \ - /* Try to raise signal SIGPIPE. */ \ - raise (SIGPIPE); \ - /* If it is currently blocked or ignored, change errno from \ - EINVAL to EPIPE. */ \ - errno = EPIPE; \ - } \ - } \ - else -# else -# define CLEAR_LastError -# define HANDLE_ERROR_NO_DATA -# endif - -# define CALL_WITH_SIGPIPE_EMULATION(RETTYPE, EXPRESSION, FAILED) \ - if (ferror (stream)) \ - return (EXPRESSION); \ - else \ - { \ - RETTYPE ret; \ - CLEAR_ERRNO \ - CLEAR_LastError \ - ret = (EXPRESSION); \ - if (FAILED) \ - { \ - HANDLE_ENOSPC \ - HANDLE_ERROR_NO_DATA \ - ; \ - } \ - return ret; \ - } - -# if !REPLACE_PRINTF_POSIX /* avoid collision with printf.c */ -int -printf (const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfprintf (stdout, format, args); - va_end (args); - - return retval; -} -# endif - -# if !REPLACE_FPRINTF_POSIX /* avoid collision with fprintf.c */ -int -fprintf (FILE *stream, const char *format, ...) -{ - int retval; - va_list args; - - va_start (args, format); - retval = vfprintf (stream, format, args); - va_end (args); - - return retval; -} -# endif - -# if !REPLACE_VPRINTF_POSIX /* avoid collision with vprintf.c */ -int -vprintf (const char *format, va_list args) -{ - return vfprintf (stdout, format, args); -} -# endif - -# if !REPLACE_VFPRINTF_POSIX /* avoid collision with vfprintf.c */ -int -vfprintf (FILE *stream, const char *format, va_list args) -#undef vfprintf -{ - CALL_WITH_SIGPIPE_EMULATION (int, vfprintf (stream, format, args), ret == EOF) -} -# endif - -int -putchar (int c) -{ - return fputc (c, stdout); -} - -int -fputc (int c, FILE *stream) -#undef fputc -{ - CALL_WITH_SIGPIPE_EMULATION (int, fputc (c, stream), ret == EOF) -} - -int -fputs (const char *string, FILE *stream) -#undef fputs -{ - CALL_WITH_SIGPIPE_EMULATION (int, fputs (string, stream), ret == EOF) -} - -int -puts (const char *string) -#undef puts -{ - FILE *stream = stdout; - CALL_WITH_SIGPIPE_EMULATION (int, puts (string), ret == EOF) -} - -size_t -fwrite (const void *ptr, size_t s, size_t n, FILE *stream) -#undef fwrite -{ - CALL_WITH_SIGPIPE_EMULATION (size_t, fwrite (ptr, s, n, stream), ret < n) -} - -# endif -#endif diff --git a/jni/parted/libiconv/srclib/stdio.h b/jni/parted/libiconv/srclib/stdio.h deleted file mode 100755 index 3abb475..0000000 --- a/jni/parted/libiconv/srclib/stdio.h +++ /dev/null @@ -1,2218 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 2004, 2007-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H -/* Special invocation convention: - - Inside glibc header files. - - On OSF/1 5.1 we have a sequence of nested includes - -> -> -> -> - -> -> -> . - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STDIO_H - -#define _GL_ALREADY_INCLUDING_STDIO_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#undef _GL_ALREADY_INCLUDING_STDIO_H - -#ifndef _GL_STDIO_H -#define _GL_STDIO_H - -/* Get va_list. Needed on many systems, including glibc 2.8. */ -#include - -#include - -/* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 - and eglibc 2.11.2. - May also define off_t to a 64-bit type on native Windows. */ -#include - -/* Solaris 10 and NetBSD 7.0 declare renameat in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && (defined __sun || defined __NetBSD__) \ - && ! defined __GLIBC__ -# include -#endif - -/* Android 4.3 declares renameat in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ - && ! defined __GLIBC__ -# include -#endif - -/* MSVC declares 'perror' in , not in . We must include - it before we #define perror rpl_perror. */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ -# include -#endif - -/* MSVC declares 'remove' in , not in . We must include - it before we #define remove rpl_remove. */ -/* MSVC declares 'rename' in , not in . We must include - it before we #define rename rpl_rename. */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || 0 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__) \ - && ! defined __GLIBC__ -# include -#endif - - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The __-protected variants of the attributes 'format' and 'printf' are - accepted by gcc versions 2.6.4 (effectively 2.7) and later. - We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because - gnulib and libintl do '#define printf __printf__' when they override - the 'printf' function. */ -#ifndef _GL_ATTRIBUTE_FORMAT -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) || defined __clang__ -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -# else -# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ -# endif -#endif - -/* An __attribute__ __format__ specifier for a function that takes a format - string and arguments, where the format string directives are the ones - standardized by ISO C99 and POSIX. - _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD */ -/* __gnu_printf__ is supported in GCC >= 4.4. */ -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) -# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __gnu_printf__ -#else -# define _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD __printf__ -#endif - -/* An __attribute__ __format__ specifier for a function that takes a format - string and arguments, where the format string directives are the ones of the - system printf(), rather than the ones standardized by ISO C99 and POSIX. - _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM */ -/* On mingw, Gnulib sets __USE_MINGW_ANSI_STDIO in order to get closer to - the standards. The macro GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU indicates - whether this change is effective. On older mingw, it is not. */ -#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU -# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD -#else -# define _GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM __printf__ -#endif - -/* _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD - indicates to GCC that the function takes a format string and arguments, - where the format string directives are the ones standardized by ISO C99 - and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD, formatstring_parameter, first_argument)) - -/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD, - except that it indicates to GCC that the supported format string directives - are the ones of the system printf(), rather than the ones standardized by - ISO C99 and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM, formatstring_parameter, first_argument)) - -/* _GL_ATTRIBUTE_FORMAT_SCANF - indicates to GCC that the function takes a format string and arguments, - where the format string directives are the ones standardized by ISO C99 - and POSIX. */ -#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) -# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) -#else -# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) -#endif - -/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, - except that it indicates to GCC that the supported format string directives - are the ones of the system scanf(), rather than the ones standardized by - ISO C99 and POSIX. */ -#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ - _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Macros for stringification. */ -#define _GL_STDIO_STRINGIZE(token) #token -#define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) - -/* When also using extern inline, suppress the use of static inline in - standard headers of problematic Apple configurations, as Libc at - least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., - . - Perhaps Apple will fix this some day. */ -#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \ - && defined __GNUC__ && defined __STDC__) -# undef putc_unlocked -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define dprintf rpl_dprintf -# endif -_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...)); -# endif -_GL_CXXALIASWARN (dprintf); -#elif defined GNULIB_POSIXCHECK -# undef dprintf -# if HAVE_RAW_DECL_DPRINTF -_GL_WARN_ON_USE (dprintf, "dprintf is unportable - " - "use gnulib module dprintf for portability"); -# endif -#endif - -#if 0 -/* Close STREAM and its underlying file descriptor. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fclose rpl_fclose -# endif -_GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); -# else -_GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fclose); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fclose -/* Assume fclose is always declared. */ -_GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " - "use gnulib module fclose for portable POSIX compliance"); -#endif - -#if 1 -/* On native Windows, map 'fcloseall' to '_fcloseall', so that -loldnames is - not required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fcloseall on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcloseall -# define fcloseall _fcloseall -# endif -_GL_CXXALIAS_MDA (fcloseall, int, (void)); -# else -# if 0 -# if defined __FreeBSD__ || defined __DragonFly__ -_GL_CXXALIAS_SYS (fcloseall, void, (void)); -# else -_GL_CXXALIAS_SYS (fcloseall, int, (void)); -# endif -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (fcloseall); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen rpl_fdopen -# endif -_GL_FUNCDECL_RPL (fdopen, FILE *, - (int fd, const char *mode) - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen _fdopen -# endif -_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); -# else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode) - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); -# endif -_GL_CXXALIASWARN (fdopen); -#else -# if 0 && __GNUC__ >= 11 && !defined fdopen -/* For -Wmismatched-dealloc: Associate fdopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fdopen, FILE *, - (int fd, const char *mode) - _GL_ARG_NONNULL ((2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef fdopen -/* Assume fdopen is always declared. */ -_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " - "use gnulib module fdopen for portability"); -# elif 1 -/* On native Windows, map 'fdopen' to '_fdopen', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fdopen always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fdopen -# define fdopen _fdopen -# endif -_GL_CXXALIAS_MDA (fdopen, FILE *, (int fd, const char *mode)); -# else -_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); -# endif -_GL_CXXALIASWARN (fdopen); -# endif -#endif - -#if 0 -/* Flush all pending data on STREAM according to POSIX rules. Both - output and seekable input streams are supported. - Note! LOSS OF DATA can occur if fflush is applied on an input stream - that is _not_seekable_ or on an update stream that is _not_seekable_ - and in which the most recent operation was input. Seekability can - be tested with lseek(fileno(fp),0,SEEK_CUR). */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fflush rpl_fflush -# endif -_GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); -_GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); -# else -_GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fflush); -# endif -#elif defined GNULIB_POSIXCHECK -# undef fflush -/* Assume fflush is always declared. */ -_GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " - "use gnulib module fflush for portable POSIX compliance"); -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fgetc -# define fgetc rpl_fgetc -# endif -_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); -# else -_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fgetc); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fgets -# define fgets rpl_fgets -# endif -_GL_FUNCDECL_RPL (fgets, char *, - (char *restrict s, int n, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (fgets, char *, - (char *restrict s, int n, FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fgets, char *, - (char *restrict s, int n, FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fgets); -# endif -#endif - -#if 1 -/* On native Windows, map 'fileno' to '_fileno', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fileno always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fileno -# define fileno _fileno -# endif -_GL_CXXALIAS_MDA (fileno, int, (FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fileno, int, (FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (fileno); -#endif - -#if 0 -# if (0 && 0) \ - || (0 && 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fopen -# define fopen rpl_fopen -# endif -_GL_FUNCDECL_RPL (fopen, FILE *, - (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -_GL_CXXALIAS_RPL (fopen, FILE *, - (const char *restrict filename, const char *restrict mode)); -# else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -_GL_CXXALIAS_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fopen); -# endif -#else -# if 0 && __GNUC__ >= 11 && !defined fopen -/* For -Wmismatched-dealloc: Associate fopen with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (fopen, FILE *, - (const char *restrict filename, const char *restrict mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef fopen -/* Assume fopen is always declared. */ -_GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " - "use gnulib module fopen for portability"); -# endif -#endif - -#if 0 || 1 -# if (0 && 0) \ - || (1 && 0 && (0 || 1)) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fprintf rpl_fprintf -# endif -# define GNULIB_overrides_fprintf 1 -# if 0 || 0 -_GL_FUNCDECL_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# else -_GL_FUNCDECL_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_RPL (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...)); -# else -_GL_CXXALIAS_SYS (fprintf, int, - (FILE *restrict fp, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fprintf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_fprintf -# undef fprintf -# endif -/* Assume fprintf is always declared. */ -_GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " - "use gnulib module fprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 0 -/* Discard all pending buffered I/O data on STREAM. - STREAM must not be wide-character oriented. - When discarding pending output, the file position is set back to where it - was before the write calls. When discarding pending input, the file - position is advanced to match the end of the previously read input. - Return 0 if successful. Upon error, return -1 and set errno. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define fpurge rpl_fpurge -# endif -_GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); -# else -# if !1 -_GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); -# endif -_GL_CXXALIASWARN (fpurge); -#elif defined GNULIB_POSIXCHECK -# undef fpurge -# if HAVE_RAW_DECL_FPURGE -_GL_WARN_ON_USE (fpurge, "fpurge is not always present - " - "use gnulib module fpurge for portability"); -# endif -#endif - -#if 1 -# if 0 && (0 || 1) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fputc -# define fputc rpl_fputc -# endif -_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); -# else -_GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fputc); -# endif -#endif - -#if 1 -# if 0 && (0 || 1) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fputs -# define fputs rpl_fputs -# endif -_GL_FUNCDECL_RPL (fputs, int, - (const char *restrict string, FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (fputs, int, - (const char *restrict string, FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fputs, int, - (const char *restrict string, FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fputs); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fread -# define fread rpl_fread -# endif -_GL_FUNCDECL_RPL (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream) - _GL_ARG_NONNULL ((4))); -_GL_CXXALIAS_RPL (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fread, size_t, - (void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fread); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef freopen -# define freopen rpl_freopen -# endif -_GL_FUNCDECL_RPL (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream) - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (freopen, FILE *, - (const char *restrict filename, const char *restrict mode, - FILE *restrict stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (freopen); -# endif -#elif defined GNULIB_POSIXCHECK -# undef freopen -/* Assume freopen is always declared. */ -_GL_WARN_ON_USE (freopen, - "freopen on native Windows platforms is not POSIX compliant - " - "use gnulib module freopen for portability"); -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fscanf -# define fscanf rpl_fscanf -# endif -_GL_FUNCDECL_RPL (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...)); -# else -_GL_CXXALIAS_SYS (fscanf, int, - (FILE *restrict stream, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fscanf); -# endif -#endif - - -/* Set up the following warnings, based on which modules are in use. - GNU Coding Standards discourage the use of fseek, since it imposes - an arbitrary limitation on some 32-bit hosts. Remember that the - fseek module depends on the fseeko module, so we only have three - cases to consider: - - 1. The developer is not using either module. Issue a warning under - GNULIB_POSIXCHECK for both functions, to remind them that both - functions have bugs on some systems. _GL_NO_LARGE_FILES has no - impact on this warning. - - 2. The developer is using both modules. They may be unaware of the - arbitrary limitations of fseek, so issue a warning under - GNULIB_POSIXCHECK. On the other hand, they may be using both - modules intentionally, so the developer can define - _GL_NO_LARGE_FILES in the compilation units where the use of fseek - is safe, to silence the warning. - - 3. The developer is using the fseeko module, but not fseek. Gnulib - guarantees that fseek will still work around platform bugs in that - case, but we presume that the developer is aware of the pitfalls of - fseek and was trying to avoid it, so issue a warning even when - GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be - defined to silence the warning in particular compilation units. - In C++ compilations with GNULIB_NAMESPACE, in order to avoid that - fseek gets defined as a macro, it is recommended that the developer - uses the fseek module, even if he is not calling the fseek function. - - Most gnulib clients that perform stream operations should fall into - category 3. */ - -#if 0 -# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES -# define _GL_FSEEK_WARN /* Category 2, above. */ -# undef fseek -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fseek -# define fseek rpl_fseek -# endif -_GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); -# else -_GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fseek); -# endif -#endif - -#if 0 -# if !0 && !defined _GL_NO_LARGE_FILES -# define _GL_FSEEK_WARN /* Category 3, above. */ -# undef fseek -# endif -# if 0 -/* Provide an fseeko function that is aware of a preceding fflush(), and which - detects pipes. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fseeko -# define fseeko rpl_fseeko -# endif -_GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (fseeko); -#elif defined GNULIB_POSIXCHECK -# define _GL_FSEEK_WARN /* Category 1, above. */ -# undef fseek -# undef fseeko -# if HAVE_RAW_DECL_FSEEKO -_GL_WARN_ON_USE (fseeko, "fseeko is unportable - " - "use gnulib module fseeko for portability"); -# endif -#endif - -#ifdef _GL_FSEEK_WARN -# undef _GL_FSEEK_WARN -/* Here, either fseek is undefined (but C89 guarantees that it is - declared), or it is defined as rpl_fseek (declared above). */ -_GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " - "on 32-bit platforms - " - "use fseeko function for handling of large files"); -#endif - - -/* ftell, ftello. See the comments on fseek/fseeko. */ - -#if 0 -# if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES -# define _GL_FTELL_WARN /* Category 2, above. */ -# undef ftell -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ftell -# define ftell rpl_ftell -# endif -_GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); -# else -_GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ftell); -# endif -#endif - -#if 0 -# if !0 && !defined _GL_NO_LARGE_FILES -# define _GL_FTELL_WARN /* Category 3, above. */ -# undef ftell -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ftello -# define ftello rpl_ftello -# endif -_GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); -# endif -_GL_CXXALIASWARN (ftello); -#elif defined GNULIB_POSIXCHECK -# define _GL_FTELL_WARN /* Category 1, above. */ -# undef ftell -# undef ftello -# if HAVE_RAW_DECL_FTELLO -_GL_WARN_ON_USE (ftello, "ftello is unportable - " - "use gnulib module ftello for portability"); -# endif -#endif - -#ifdef _GL_FTELL_WARN -# undef _GL_FTELL_WARN -/* Here, either ftell is undefined (but C89 guarantees that it is - declared), or it is defined as rpl_ftell (declared above). */ -_GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " - "on 32-bit platforms - " - "use ftello function for handling of large files"); -#endif - - -#if 1 -# if 0 && (0 || 1) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fwrite -# define fwrite rpl_fwrite -# endif -_GL_FUNCDECL_RPL (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream) - _GL_ARG_NONNULL ((1, 4))); -_GL_CXXALIAS_RPL (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (fwrite, size_t, - (const void *restrict ptr, size_t s, size_t n, - FILE *restrict stream)); - -/* Work around bug 11959 when fortifying glibc 2.4 through 2.15 - , - which sometimes causes an unwanted diagnostic for fwrite calls. - This affects only function declaration attributes under certain - versions of gcc and clang, and is not needed for C++. */ -# if (0 < __USE_FORTIFY_LEVEL \ - && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ - && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ - && !defined __cplusplus) -# undef fwrite -# undef fwrite_unlocked -extern size_t __REDIRECT (rpl_fwrite, - (const void *__restrict, size_t, size_t, - FILE *__restrict), - fwrite); -extern size_t __REDIRECT (rpl_fwrite_unlocked, - (const void *__restrict, size_t, size_t, - FILE *__restrict), - fwrite_unlocked); -# define fwrite rpl_fwrite -# define fwrite_unlocked rpl_fwrite_unlocked -# endif -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fwrite); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getc -# define getc rpl_fgetc -# endif -_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); -# else -_GL_CXXALIAS_SYS (getc, int, (FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getc); -# endif -#endif - -#if 1 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getchar -# define getchar rpl_getchar -# endif -_GL_FUNCDECL_RPL (getchar, int, (void)); -_GL_CXXALIAS_RPL (getchar, int, (void)); -# else -_GL_CXXALIAS_SYS (getchar, int, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (getchar); -# endif -#endif - -#if 0 -/* Read input, up to (and including) the next occurrence of DELIMITER, from - STREAM, store it in *LINEPTR (and NUL-terminate it). - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdelim -# define getdelim rpl_getdelim -# endif -_GL_FUNCDECL_RPL (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 4))); -_GL_CXXALIAS_RPL (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream)); -# else -# if !1 -_GL_FUNCDECL_SYS (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 4))); -# endif -_GL_CXXALIAS_SYS (getdelim, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - int delimiter, - FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (getdelim); -#elif defined GNULIB_POSIXCHECK -# undef getdelim -# if HAVE_RAW_DECL_GETDELIM -_GL_WARN_ON_USE (getdelim, "getdelim is unportable - " - "use gnulib module getdelim for portability"); -# endif -#endif - -#if 0 -/* Read a line, up to (and including) the next newline, from STREAM, store it - in *LINEPTR (and NUL-terminate it). - *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE - bytes of space. It is realloc'd as necessary. - Return the number of bytes read and stored at *LINEPTR (not including the - NUL terminator), or -1 on error or EOF. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getline -# define getline rpl_getline -# endif -_GL_FUNCDECL_RPL (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 3))); -_GL_CXXALIAS_RPL (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream)); -# else -# if !1 -_GL_FUNCDECL_SYS (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream) - _GL_ARG_NONNULL ((1, 2, 3))); -# endif -_GL_CXXALIAS_SYS (getline, ssize_t, - (char **restrict lineptr, size_t *restrict linesize, - FILE *restrict stream)); -# endif -# if 1 -_GL_CXXALIASWARN (getline); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getline -# if HAVE_RAW_DECL_GETLINE -_GL_WARN_ON_USE (getline, "getline is unportable - " - "use gnulib module getline for portability"); -# endif -#endif - -/* It is very rare that the developer ever has full control of stdin, - so any use of gets warrants an unconditional warning; besides, C11 - removed it. */ -#undef gets -#if HAVE_RAW_DECL_GETS && !defined __cplusplus -_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); -#endif - -#if 1 -/* On native Windows, map 'getw' to '_getw', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getw always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getw -# define getw _getw -# endif -_GL_CXXALIAS_MDA (getw, int, (FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (getw, int, (FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (getw); -#endif - -#if 0 || 0 -struct obstack; -/* Grow an obstack with formatted output. Return the number of - bytes added to OBS. No trailing nul byte is added, and the - object should be closed with obstack_finish before use. Upon - memory allocation error, call obstack_alloc_failed_handler. Upon - other error, return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define obstack_printf rpl_obstack_printf -# endif -_GL_FUNCDECL_RPL (obstack_printf, int, - (struct obstack *obs, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (obstack_printf, int, - (struct obstack *obs, const char *format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (obstack_printf, int, - (struct obstack *obs, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (obstack_printf, int, - (struct obstack *obs, const char *format, ...)); -# endif -_GL_CXXALIASWARN (obstack_printf); -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define obstack_vprintf rpl_obstack_vprintf -# endif -_GL_FUNCDECL_RPL (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (obstack_vprintf, int, - (struct obstack *obs, const char *format, va_list args)); -# endif -_GL_CXXALIASWARN (obstack_vprintf); -#endif - -#if 0 -# if !1 -_GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); -_GL_CXXALIASWARN (pclose); -#elif defined GNULIB_POSIXCHECK -# undef pclose -# if HAVE_RAW_DECL_PCLOSE -_GL_WARN_ON_USE (pclose, "pclose is unportable - " - "use gnulib module pclose for more portability"); -# endif -#endif - -#if 0 -/* Print a message to standard error, describing the value of ERRNO, - (if STRING is not NULL and not empty) prefixed with STRING and ": ", - and terminated with a newline. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define perror rpl_perror -# endif -_GL_FUNCDECL_RPL (perror, void, (const char *string)); -_GL_CXXALIAS_RPL (perror, void, (const char *string)); -# else -_GL_CXXALIAS_SYS (perror, void, (const char *string)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (perror); -# endif -#elif defined GNULIB_POSIXCHECK -# undef perror -/* Assume perror is always declared. */ -_GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " - "use gnulib module perror for portability"); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef popen -# define popen rpl_popen -# endif -_GL_FUNCDECL_RPL (popen, FILE *, - (const char *cmd, const char *mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); -_GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); -# else -# if !1 || __GNUC__ >= 11 -_GL_FUNCDECL_SYS (popen, FILE *, - (const char *cmd, const char *mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); -# endif -_GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); -# endif -_GL_CXXALIASWARN (popen); -#else -# if 0 && __GNUC__ >= 11 && !defined popen -/* For -Wmismatched-dealloc: Associate popen with pclose or rpl_pclose. */ -_GL_FUNCDECL_SYS (popen, FILE *, - (const char *cmd, const char *mode) - _GL_ARG_NONNULL ((1, 2)) _GL_ATTRIBUTE_DEALLOC (pclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef popen -# if HAVE_RAW_DECL_POPEN -_GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " - "use gnulib module popen or pipe for more portability"); -# endif -# endif -#endif - -#if 0 || 1 -# if (0 && 0) \ - || (1 && 0 && (0 || 1)) -# if defined __GNUC__ || defined __clang__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -/* Don't break __attribute__((format(printf,M,N))). */ -# define printf __printf__ -# endif -# if 0 || 0 -_GL_FUNCDECL_RPL_1 (__printf__, int, - (const char *restrict format, ...) - __asm__ ("" - _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) - _GL_ARG_NONNULL ((1))); -# else -_GL_FUNCDECL_RPL_1 (__printf__, int, - (const char *restrict format, ...) - __asm__ ("" - _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); -# else -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define printf rpl_printf -# endif -_GL_FUNCDECL_RPL (printf, int, - (const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 2) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...)); -# endif -# define GNULIB_overrides_printf 1 -# else -_GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (printf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_printf -# undef printf -# endif -/* Assume printf is always declared. */ -_GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " - "use gnulib module printf-posix for portable " - "POSIX compliance"); -#endif - -#if 1 -# if 0 && (0 || 1) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putc -# define putc rpl_fputc -# endif -_GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); -# else -_GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (putc); -# endif -#endif - -#if 1 -# if 0 && (0 || 1) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putchar -# define putchar rpl_putchar -# endif -_GL_FUNCDECL_RPL (putchar, int, (int c)); -_GL_CXXALIAS_RPL (putchar, int, (int c)); -# else -_GL_CXXALIAS_SYS (putchar, int, (int c)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (putchar); -# endif -#endif - -#if 1 -# if 0 && (0 || 1) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef puts -# define puts rpl_puts -# endif -_GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (puts, int, (const char *string)); -# else -_GL_CXXALIAS_SYS (puts, int, (const char *string)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (puts); -# endif -#endif - -#if 1 -/* On native Windows, map 'putw' to '_putw', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::putw always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putw -# define putw _putw -# endif -_GL_CXXALIAS_MDA (putw, int, (int w, FILE *restrict stream)); -# else -_GL_CXXALIAS_SYS (putw, int, (int w, FILE *restrict stream)); -# endif -_GL_CXXALIASWARN (putw); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef remove -# define remove rpl_remove -# endif -_GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (remove, int, (const char *name)); -# else -_GL_CXXALIAS_SYS (remove, int, (const char *name)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (remove); -# endif -#elif defined GNULIB_POSIXCHECK -# undef remove -/* Assume remove is always declared. */ -_GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " - "use gnulib module remove for more portability"); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rename -# define rename rpl_rename -# endif -_GL_FUNCDECL_RPL (rename, int, - (const char *old_filename, const char *new_filename) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (rename, int, - (const char *old_filename, const char *new_filename)); -# else -_GL_CXXALIAS_SYS (rename, int, - (const char *old_filename, const char *new_filename)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (rename); -# endif -#elif defined GNULIB_POSIXCHECK -# undef rename -/* Assume rename is always declared. */ -_GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " - "use gnulib module rename for more portability"); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef renameat -# define renameat rpl_renameat -# endif -_GL_FUNCDECL_RPL (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2) - _GL_ARG_NONNULL ((2, 4))); -_GL_CXXALIAS_RPL (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2)); -# else -# if !1 -_GL_FUNCDECL_SYS (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2) - _GL_ARG_NONNULL ((2, 4))); -# endif -_GL_CXXALIAS_SYS (renameat, int, - (int fd1, char const *file1, int fd2, char const *file2)); -# endif -_GL_CXXALIASWARN (renameat); -#elif defined GNULIB_POSIXCHECK -# undef renameat -# if HAVE_RAW_DECL_RENAMEAT -_GL_WARN_ON_USE (renameat, "renameat is not portable - " - "use gnulib module renameat for portability"); -# endif -#endif - -#if 1 -# if 0 && 0 -# if defined __GNUC__ || defined __clang__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef scanf -/* Don't break __attribute__((format(scanf,M,N))). */ -# define scanf __scanf__ -# endif -_GL_FUNCDECL_RPL_1 (__scanf__, int, - (const char *restrict format, ...) - __asm__ ("" - _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...)); -# else -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef scanf -# define scanf rpl_scanf -# endif -_GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...)); -# endif -# else -_GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (scanf); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define snprintf rpl_snprintf -# endif -# define GNULIB_overrides_snprintf 1 -_GL_FUNCDECL_RPL (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) - _GL_ARG_NONNULL ((3))); -_GL_CXXALIAS_RPL (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 4) - _GL_ARG_NONNULL ((3))); -# endif -_GL_CXXALIAS_SYS (snprintf, int, - (char *restrict str, size_t size, - const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (snprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef snprintf -# if HAVE_RAW_DECL_SNPRINTF -_GL_WARN_ON_USE (snprintf, "snprintf is unportable - " - "use gnulib module snprintf for portability"); -# endif -#endif - -/* Some people would argue that all sprintf uses should be warned about - (for example, OpenBSD issues a link warning for it), - since it can cause security holes due to buffer overruns. - However, we believe that sprintf can be used safely, and is more - efficient than snprintf in those safe cases; and as proof of our - belief, we use sprintf in several gnulib modules. So this header - intentionally avoids adding a warning to sprintf except when - GNULIB_POSIXCHECK is defined. */ - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define sprintf rpl_sprintf -# endif -# define GNULIB_overrides_sprintf 1 -_GL_FUNCDECL_RPL (sprintf, int, - (char *restrict str, const char *restrict format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (sprintf, int, - (char *restrict str, const char *restrict format, ...)); -# else -_GL_CXXALIAS_SYS (sprintf, int, - (char *restrict str, const char *restrict format, ...)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (sprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef sprintf -/* Assume sprintf is always declared. */ -_GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " - "use gnulib module sprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 1 -/* On native Windows, map 'tempnam' to '_tempnam', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::tempnam always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tempnam -# define tempnam _tempnam -# endif -_GL_CXXALIAS_MDA (tempnam, char *, (const char *dir, const char *prefix)); -# else -_GL_CXXALIAS_SYS (tempnam, char *, (const char *dir, const char *prefix)); -# endif -_GL_CXXALIASWARN (tempnam); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define tmpfile rpl_tmpfile -# endif -_GL_FUNCDECL_RPL (tmpfile, FILE *, (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -_GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); -# else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (tmpfile, FILE *, (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -_GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (tmpfile); -# endif -#else -# if 0 && __GNUC__ >= 11 && !defined tmpfile -/* For -Wmismatched-dealloc: Associate tmpfile with fclose or rpl_fclose. */ -_GL_FUNCDECL_SYS (tmpfile, FILE *, (void) - _GL_ATTRIBUTE_DEALLOC (fclose, 1)); -# endif -# if defined GNULIB_POSIXCHECK -# undef tmpfile -# if HAVE_RAW_DECL_TMPFILE -_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " - "use gnulib module tmpfile for portability"); -# endif -# endif -#endif - -#if 0 -/* Write formatted output to a string dynamically allocated with malloc(). - If the memory allocation succeeds, store the address of the string in - *RESULT and return the number of resulting bytes, excluding the trailing - NUL. Upon memory allocation error, or some other error, return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define asprintf rpl_asprintf -# endif -# define GNULIB_overrides_asprintf -_GL_FUNCDECL_RPL (asprintf, int, - (char **result, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (asprintf, int, - (char **result, const char *format, ...)); -# else -# if !1 -_GL_FUNCDECL_SYS (asprintf, int, - (char **result, const char *format, ...) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (asprintf, int, - (char **result, const char *format, ...)); -# endif -_GL_CXXALIASWARN (asprintf); -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vasprintf rpl_vasprintf -# endif -# define GNULIB_overrides_vasprintf 1 -_GL_FUNCDECL_RPL (vasprintf, int, - (char **result, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (vasprintf, int, - (char **result, const char *format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (vasprintf, int, - (char **result, const char *format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (vasprintf, int, - (char **result, const char *format, va_list args)); -# endif -_GL_CXXALIASWARN (vasprintf); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vdprintf rpl_vdprintf -# endif -_GL_FUNCDECL_RPL (vdprintf, int, - (int fd, const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (vdprintf, int, - (int fd, const char *restrict format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (vdprintf, int, - (int fd, const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((2))); -# endif -/* Need to cast, because on Solaris, the third parameter will likely be - __va_list args. */ -_GL_CXXALIAS_SYS_CAST (vdprintf, int, - (int fd, const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vdprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vdprintf -# if HAVE_RAW_DECL_VDPRINTF -_GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " - "use gnulib module vdprintf for portability"); -# endif -#endif - -#if 0 || 1 -# if (0 && 0) \ - || (1 && 0 && (0 || 1)) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vfprintf rpl_vfprintf -# endif -# define GNULIB_overrides_vfprintf 1 -# if 0 -_GL_FUNCDECL_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# else -_GL_FUNCDECL_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_RPL (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args)); -# else -/* Need to cast, because on Solaris, the third parameter is - __va_list args - and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vfprintf, int, - (FILE *restrict fp, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vfprintf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_vfprintf -# undef vfprintf -# endif -/* Assume vfprintf is always declared. */ -_GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " - "use gnulib module vfprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 0 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef vfscanf -# define vfscanf rpl_vfscanf -# endif -_GL_FUNCDECL_RPL (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args)); -# else -_GL_CXXALIAS_SYS (vfscanf, int, - (FILE *restrict stream, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vfscanf); -# endif -#endif - -#if 0 || 1 -# if (0 && 0) \ - || (1 && 0 && (0 || 1)) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vprintf rpl_vprintf -# endif -# define GNULIB_overrides_vprintf 1 -# if 0 || 0 -_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (1, 0) - _GL_ARG_NONNULL ((1))); -# else -_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args)); -# else -/* Need to cast, because on Solaris, the second parameter is - __va_list args - and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vprintf, int, - (const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vprintf); -# endif -#endif -#if !0 && defined GNULIB_POSIXCHECK -# if !GNULIB_overrides_vprintf -# undef vprintf -# endif -/* Assume vprintf is always declared. */ -_GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " - "use gnulib module vprintf-posix for portable " - "POSIX compliance"); -#endif - -#if 0 -# if 0 && 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef vscanf -# define vscanf rpl_vscanf -# endif -_GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args)); -# else -_GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vscanf); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vsnprintf rpl_vsnprintf -# endif -# define GNULIB_overrides_vsnprintf 1 -_GL_FUNCDECL_RPL (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) - _GL_ARG_NONNULL ((3))); -_GL_CXXALIAS_RPL (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); -# else -# if !1 -_GL_FUNCDECL_SYS (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (3, 0) - _GL_ARG_NONNULL ((3))); -# endif -_GL_CXXALIAS_SYS (vsnprintf, int, - (char *restrict str, size_t size, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vsnprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vsnprintf -# if HAVE_RAW_DECL_VSNPRINTF -_GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " - "use gnulib module vsnprintf for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define vsprintf rpl_vsprintf -# endif -# define GNULIB_overrides_vsprintf 1 -_GL_FUNCDECL_RPL (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args) - _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args)); -# else -/* Need to cast, because on Solaris, the third parameter is - __va_list args - and GCC's fixincludes did not change this to __gnuc_va_list. */ -_GL_CXXALIAS_SYS_CAST (vsprintf, int, - (char *restrict str, - const char *restrict format, va_list args)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (vsprintf); -# endif -#elif defined GNULIB_POSIXCHECK -# undef vsprintf -/* Assume vsprintf is always declared. */ -_GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " - "use gnulib module vsprintf-posix for portable " - "POSIX compliance"); -#endif - -#endif /* _GL_STDIO_H */ -#endif /* _GL_STDIO_H */ -#endif diff --git a/jni/parted/libiconv/srclib/stdlib.h b/jni/parted/libiconv/srclib/stdlib.h deleted file mode 100755 index 4681d3a..0000000 --- a/jni/parted/libiconv/srclib/stdlib.h +++ /dev/null @@ -1,2111 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 1995, 2001-2004, 2006-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_system_stdlib_h || defined __need_malloc_and_calloc -/* Special invocation conventions inside some gnulib header files, - and inside some glibc header files, respectively. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STDLIB_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#ifndef _GL_STDLIB_H -#define _GL_STDLIB_H - -/* NetBSD 5.0 mis-defines NULL. */ -#include - -/* MirBSD 10 defines WEXITSTATUS in , not in . */ -#if 0 && !defined WEXITSTATUS -# include -#endif - -/* Solaris declares getloadavg() in . */ -#if (0 || defined GNULIB_POSIXCHECK) && 0 -/* OpenIndiana has a bug: must be included before - . */ -# include -# include -#endif - -/* Native Windows platforms declare _mktemp() in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include -#endif - -#if 0 - -/* OSF/1 5.1 declares 'struct random_data' in , which is included - from if _REENTRANT is defined. Include it whenever we need - 'struct random_data'. */ -# if 1 -# include -# endif - -# if !1 || 0 || !1 -# include -# endif - -# if !1 -/* Define 'struct random_data'. - But allow multiple gnulib generated replacements to coexist. */ -# if !GNULIB_defined_struct_random_data -struct random_data -{ - int32_t *fptr; /* Front pointer. */ - int32_t *rptr; /* Rear pointer. */ - int32_t *state; /* Array of state values. */ - int rand_type; /* Type of random number generator. */ - int rand_deg; /* Degree of random number generator. */ - int rand_sep; /* Distance between front and rear. */ - int32_t *end_ptr; /* Pointer behind state table. */ -}; -# define GNULIB_defined_struct_random_data 1 -# endif -# endif -#endif - -#if (0 || 0 || 0 || 0 || 0 || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(defined _WIN32 && ! defined __CYGWIN__) -/* On Mac OS X 10.3, only declares mkstemp. */ -/* On Mac OS X 10.5, only declares mkstemps. */ -/* On Mac OS X 10.13, only declares mkostemp and mkostemps. */ -/* On Cygwin 1.7.1, only declares getsubopt. */ -/* But avoid namespace pollution on glibc systems and native Windows. */ -# include -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definition of _Noreturn is copied here. */ -/* A C macro for declaring that a function does not return. - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _Noreturn -# if (defined __cplusplus \ - && ((201103 <= __cplusplus && !(__GNUC__ == 4 && __GNUC_MINOR__ == 7)) \ - || (defined _MSC_VER && 1900 <= _MSC_VER)) \ - && 0) - /* [[noreturn]] is not practically usable, because with it the syntax - extern _Noreturn void func (...); - would not be valid; such a declaration would only be valid with 'extern' - and '_Noreturn' swapped, or without the 'extern' keyword. However, some - AIX system header files and several gnulib header files use precisely - this syntax with 'extern'. */ -# define _Noreturn [[noreturn]] -# elif ((!defined __cplusplus || defined __clang__) \ - && (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (7 <= __GNUC_MINOR__) \ - || (defined __apple_build_version__ \ - ? 6000000 <= __apple_build_version__ \ - : 3 < __clang_major__ + (5 <= __clang_minor__)))))) - /* _Noreturn works as-is. */ -# elif (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \ - || 0x5110 <= __SUNPRO_C) -# define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Some systems do not define EXIT_*, despite otherwise supporting C89. */ -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -/* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere - with proper operation of xargs. */ -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#elif EXIT_FAILURE != 1 -# undef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - - -#if 0 -/* Terminate the current process with the given return code, without running - the 'atexit' handlers. */ -# if !1 -_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); -# endif -_GL_CXXALIAS_SYS (_Exit, void, (int status)); -_GL_CXXALIASWARN (_Exit); -#elif defined GNULIB_POSIXCHECK -# undef _Exit -# if HAVE_RAW_DECL__EXIT -_GL_WARN_ON_USE (_Exit, "_Exit is unportable - " - "use gnulib module _Exit for portability"); -# endif -#endif - - -#if 1 -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef free -# define free rpl_free -# endif -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_FUNCDECL_RPL (free, void, (void *ptr) throw ()); -# else -_GL_FUNCDECL_RPL (free, void, (void *ptr)); -# endif -_GL_CXXALIAS_RPL (free, void, (void *ptr)); -# else -_GL_CXXALIAS_SYS (free, void, (void *ptr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (free); -# endif -#elif defined GNULIB_POSIXCHECK -# undef free -/* Assume free is always declared. */ -_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - " - "use gnulib module free for portability"); -#endif - - -/* Allocate memory with indefinite extent and specified alignment. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef aligned_alloc -# define aligned_alloc rpl_aligned_alloc -# endif -_GL_FUNCDECL_RPL (aligned_alloc, void *, - (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size)); -# else -# if 1 -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size)); -# endif -# endif -# if 1 -_GL_CXXALIASWARN (aligned_alloc); -# endif -#else -# if 1 && __GNUC__ >= 11 && !defined aligned_alloc -/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (aligned_alloc, void *, - (size_t alignment, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef aligned_alloc -# if HAVE_RAW_DECL_ALIGNED_ALLOC -_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - " - "use gnulib module aligned_alloc for portability"); -# endif -# endif -#endif - -#if 0 -/* Parse a signed decimal integer. - Returns the value of the integer. Errors are not detected. */ -# if !1 -_GL_FUNCDECL_SYS (atoll, long long, (const char *string) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (atoll, long long, (const char *string)); -_GL_CXXALIASWARN (atoll); -#elif defined GNULIB_POSIXCHECK -# undef atoll -# if HAVE_RAW_DECL_ATOLL -_GL_WARN_ON_USE (atoll, "atoll is unportable - " - "use gnulib module atoll for portability"); -# endif -#endif - -#if 0 -# if (0 && 0) \ - || (0 && 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef calloc -# define calloc rpl_calloc -# endif -_GL_FUNCDECL_RPL (calloc, void *, - (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); -# else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (calloc); -# endif -#else -# if 1 && __GNUC__ >= 11 && !defined calloc -/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (calloc, void *, - (size_t nmemb, size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef calloc -/* Assume calloc is always declared. */ -_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " - "use gnulib module calloc-posix for portability"); -# endif -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define canonicalize_file_name rpl_canonicalize_file_name -# endif -_GL_FUNCDECL_RPL (canonicalize_file_name, char *, - (const char *name) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); -# else -# if !0 || __GNUC__ >= 11 -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); -# endif -# ifndef GNULIB_defined_canonicalize_file_name -# define GNULIB_defined_canonicalize_file_name \ - (!0 || 0) -# endif -_GL_CXXALIASWARN (canonicalize_file_name); -#else -# if 1 && __GNUC__ >= 11 && !defined canonicalize_file_name -/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or - rpl_free. */ -_GL_FUNCDECL_SYS (canonicalize_file_name, char *, - (const char *name) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef canonicalize_file_name -# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME -_GL_WARN_ON_USE (canonicalize_file_name, - "canonicalize_file_name is unportable - " - "use gnulib module canonicalize-lgpl for portability"); -# endif -# endif -#endif - -#if 1 -/* On native Windows, map 'ecvt' to '_ecvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::ecvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ecvt -# define ecvt _ecvt -# endif -_GL_CXXALIAS_MDA (ecvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# else -# if 0 -_GL_CXXALIAS_SYS (ecvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (ecvt); -# endif -#endif - -#if 1 -/* On native Windows, map 'fcvt' to '_fcvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::fcvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fcvt -# define fcvt _fcvt -# endif -_GL_CXXALIAS_MDA (fcvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# else -# if 0 -_GL_CXXALIAS_SYS (fcvt, char *, - (double number, int ndigits, int *decptp, int *signp)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (fcvt); -# endif -#endif - -#if 1 -/* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::gcvt on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gcvt -# define gcvt _gcvt -# endif -_GL_CXXALIAS_MDA (gcvt, char *, (double number, int ndigits, char *buf)); -# else -# if 0 -_GL_CXXALIAS_SYS (gcvt, char *, (double number, int ndigits, char *buf)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 0 -_GL_CXXALIASWARN (gcvt); -# endif -#endif - -#if 0 -/* Store max(NELEM,3) load average numbers in LOADAVG[]. - The three numbers are the load average of the last 1 minute, the last 5 - minutes, and the last 15 minutes, respectively. - LOADAVG is an array of NELEM numbers. */ -# if !1 -_GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); -_GL_CXXALIASWARN (getloadavg); -#elif defined GNULIB_POSIXCHECK -# undef getloadavg -# if HAVE_RAW_DECL_GETLOADAVG -_GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " - "use gnulib module getloadavg for portability"); -# endif -#endif - -#if 0 -/* Assuming *OPTIONP is a comma separated list of elements of the form - "token" or "token=value", getsubopt parses the first of these elements. - If the first element refers to a "token" that is member of the given - NULL-terminated array of tokens: - - It replaces the comma with a NUL byte, updates *OPTIONP to point past - the first option and the comma, sets *VALUEP to the value of the - element (or NULL if it doesn't contain an "=" sign), - - It returns the index of the "token" in the given array of tokens. - Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. - For more details see the POSIX specification. - https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html */ -# if !1 -_GL_FUNCDECL_SYS (getsubopt, int, - (char **optionp, char *const *tokens, char **valuep) - _GL_ARG_NONNULL ((1, 2, 3))); -# endif -_GL_CXXALIAS_SYS (getsubopt, int, - (char **optionp, char *const *tokens, char **valuep)); -_GL_CXXALIASWARN (getsubopt); -#elif defined GNULIB_POSIXCHECK -# undef getsubopt -# if HAVE_RAW_DECL_GETSUBOPT -_GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " - "use gnulib module getsubopt for portability"); -# endif -#endif - -#if 0 -/* Change the ownership and access permission of the slave side of the - pseudo-terminal whose master side is specified by FD. */ -# if !1 -_GL_FUNCDECL_SYS (grantpt, int, (int fd)); -# endif -_GL_CXXALIAS_SYS (grantpt, int, (int fd)); -_GL_CXXALIASWARN (grantpt); -#elif defined GNULIB_POSIXCHECK -# undef grantpt -# if HAVE_RAW_DECL_GRANTPT -_GL_WARN_ON_USE (grantpt, "grantpt is not portable - " - "use gnulib module grantpt for portability"); -# endif -#endif - -/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not - rely on GNU or POSIX semantics for malloc and realloc (for example, - by never specifying a zero size), so it does not need malloc or - realloc to be redefined. */ -#if 1 -# if (1 && 0) \ - || (0 && 0) -# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ - || _GL_USE_STDLIB_ALLOC) -# undef malloc -# define malloc rpl_malloc -# endif -_GL_FUNCDECL_RPL (malloc, void *, - (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (malloc, void *, (size_t size)); -# else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (malloc, void *, (size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (malloc); -# endif -#else -# if 1 && __GNUC__ >= 11 && !defined malloc -/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (malloc, void *, - (size_t size) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC -# undef malloc -/* Assume malloc is always declared. */ -_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " - "use gnulib module malloc-posix for portability"); -# endif -#endif - -/* Convert a multibyte character to a wide character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbtowc -# define mbtowc rpl_mbtowc -# endif -_GL_FUNCDECL_RPL (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -_GL_CXXALIAS_RPL (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -# endif -_GL_CXXALIAS_SYS (mbtowc, int, - (wchar_t *restrict pwc, const char *restrict s, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbtowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbtowc -# if HAVE_RAW_DECL_MBTOWC -_GL_WARN_ON_USE (mbtowc, "mbtowc is not portable - " - "use gnulib module mbtowc for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary directory from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the directory name unique. - Returns TEMPLATE, or a null pointer if it cannot get a unique name. - The directory is created mode 700. */ -# if !1 -_GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); -_GL_CXXALIASWARN (mkdtemp); -#elif defined GNULIB_POSIXCHECK -# undef mkdtemp -# if HAVE_RAW_DECL_MKDTEMP -_GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " - "use gnulib module mkdtemp for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - The file is then created, with the specified flags, ensuring it didn't exist - before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if !1 -_GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); -_GL_CXXALIASWARN (mkostemp); -#elif defined GNULIB_POSIXCHECK -# undef mkostemp -# if HAVE_RAW_DECL_MKOSTEMP -_GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " - "use gnulib module mkostemp for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE before a suffix of length - SUFFIXLEN must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - The file is then created, with the specified flags, ensuring it didn't exist - before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if !1 -_GL_FUNCDECL_SYS (mkostemps, int, - (char * /*template*/, int /*suffixlen*/, int /*flags*/) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkostemps, int, - (char * /*template*/, int /*suffixlen*/, int /*flags*/)); -_GL_CXXALIASWARN (mkostemps); -#elif defined GNULIB_POSIXCHECK -# undef mkostemps -# if HAVE_RAW_DECL_MKOSTEMPS -_GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " - "use gnulib module mkostemps for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The file is then created, ensuring it didn't exist before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mkstemp rpl_mkstemp -# endif -_GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); -# endif -_GL_CXXALIASWARN (mkstemp); -#elif defined GNULIB_POSIXCHECK -# undef mkstemp -# if HAVE_RAW_DECL_MKSTEMP -_GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " - "use gnulib module mkstemp for portability"); -# endif -#endif - -#if 0 -/* Create a unique temporary file from TEMPLATE. - The last six characters of TEMPLATE prior to a suffix of length - SUFFIXLEN must be "XXXXXX"; - they are replaced with a string that makes the file name unique. - The file is then created, ensuring it didn't exist before. - The file is created read-write (mask at least 0600 & ~umask), but it may be - world-readable and world-writable (mask 0666 & ~umask), depending on the - implementation. - Returns the open file descriptor if successful, otherwise -1 and errno - set. */ -# if !1 -_GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); -_GL_CXXALIASWARN (mkstemps); -#elif defined GNULIB_POSIXCHECK -# undef mkstemps -# if HAVE_RAW_DECL_MKSTEMPS -_GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " - "use gnulib module mkstemps for portability"); -# endif -#endif - -#if 1 -/* On native Windows, map 'mktemp' to '_mktemp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::mktemp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mktemp -# define mktemp _mktemp -# endif -_GL_CXXALIAS_MDA (mktemp, char *, (char * /*template*/)); -# else -_GL_CXXALIAS_SYS (mktemp, char *, (char * /*template*/)); -# endif -_GL_CXXALIASWARN (mktemp); -#endif - -/* Allocate memory with indefinite extent and specified alignment. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef posix_memalign -# define posix_memalign rpl_posix_memalign -# endif -_GL_FUNCDECL_RPL (posix_memalign, int, - (void **memptr, size_t alignment, size_t size) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (posix_memalign, int, - (void **memptr, size_t alignment, size_t size)); -# else -# if 1 -_GL_CXXALIAS_SYS (posix_memalign, int, - (void **memptr, size_t alignment, size_t size)); -# endif -# endif -# if 1 -_GL_CXXALIASWARN (posix_memalign); -# endif -#elif defined GNULIB_POSIXCHECK -# undef posix_memalign -# if HAVE_RAW_DECL_POSIX_MEMALIGN -_GL_WARN_ON_USE (posix_memalign, "posix_memalign is not portable - " - "use gnulib module posix_memalign for portability"); -# endif -#endif - -#if 0 -/* Return an FD open to the master side of a pseudo-terminal. Flags should - include O_RDWR, and may also include O_NOCTTY. */ -# if !1 -_GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); -# endif -_GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); -_GL_CXXALIASWARN (posix_openpt); -#elif defined GNULIB_POSIXCHECK -# undef posix_openpt -# if HAVE_RAW_DECL_POSIX_OPENPT -_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " - "use gnulib module posix_openpt for portability"); -# endif -#endif - -#if 0 -/* Return the pathname of the pseudo-terminal slave associated with - the master FD is open on, or NULL on errors. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ptsname -# define ptsname rpl_ptsname -# endif -_GL_FUNCDECL_RPL (ptsname, char *, (int fd)); -_GL_CXXALIAS_RPL (ptsname, char *, (int fd)); -# else -# if !1 -_GL_FUNCDECL_SYS (ptsname, char *, (int fd)); -# endif -_GL_CXXALIAS_SYS (ptsname, char *, (int fd)); -# endif -_GL_CXXALIASWARN (ptsname); -#elif defined GNULIB_POSIXCHECK -# undef ptsname -# if HAVE_RAW_DECL_PTSNAME -_GL_WARN_ON_USE (ptsname, "ptsname is not portable - " - "use gnulib module ptsname for portability"); -# endif -#endif - -#if 0 -/* Set the pathname of the pseudo-terminal slave associated with - the master FD is open on and return 0, or set errno and return - non-zero on errors. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ptsname_r -# define ptsname_r rpl_ptsname_r -# endif -_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); -_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); -# endif -_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); -# endif -# ifndef GNULIB_defined_ptsname_r -# define GNULIB_defined_ptsname_r (!1 || 0) -# endif -_GL_CXXALIASWARN (ptsname_r); -#elif defined GNULIB_POSIXCHECK -# undef ptsname_r -# if HAVE_RAW_DECL_PTSNAME_R -_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " - "use gnulib module ptsname_r for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv rpl_putenv -# endif -_GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (putenv, int, (char *string)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv _putenv -# endif -_GL_CXXALIAS_MDA (putenv, int, (char *string)); -# else -_GL_CXXALIAS_SYS (putenv, int, (char *string)); -# endif -_GL_CXXALIASWARN (putenv); -#elif 1 -/* On native Windows, map 'putenv' to '_putenv', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::putenv always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef putenv -# define putenv _putenv -# endif -/* Need to cast, because on mingw, the parameter is either - 'const char *string' or 'char *string'. */ -_GL_CXXALIAS_MDA_CAST (putenv, int, (char *string)); -# else -_GL_CXXALIAS_SYS (putenv, int, (char *string)); -# endif -_GL_CXXALIASWARN (putenv); -#endif - -#if 0 -/* Sort an array of NMEMB elements, starting at address BASE, each element - occupying SIZE bytes, in ascending order according to the comparison - function COMPARE. */ -# ifdef __cplusplus -extern "C" { -# endif -# if !GNULIB_defined_qsort_r_fn_types -typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *); -# define GNULIB_defined_qsort_r_fn_types 1 -# endif -# ifdef __cplusplus -} -# endif -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef qsort_r -# define qsort_r rpl_qsort_r -# endif -_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg) _GL_ARG_NONNULL ((1, 4))); -_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg)); -# else -# if !1 -_GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg) _GL_ARG_NONNULL ((1, 4))); -# endif -_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size, - _gl_qsort_r_compar_fn compare, - void *arg)); -# endif -_GL_CXXALIASWARN (qsort_r); -#elif defined GNULIB_POSIXCHECK -# undef qsort_r -# if HAVE_RAW_DECL_QSORT_R -_GL_WARN_ON_USE (qsort_r, "qsort_r is not portable - " - "use gnulib module qsort_r for portability"); -# endif -#endif - - -#if 0 -# if !1 -# ifndef RAND_MAX -# define RAND_MAX 2147483647 -# endif -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef random -# define random rpl_random -# endif -_GL_FUNCDECL_RPL (random, long, (void)); -_GL_CXXALIAS_RPL (random, long, (void)); -# else -# if !1 -_GL_FUNCDECL_SYS (random, long, (void)); -# endif -/* Need to cast, because on Haiku, the return type is - int. */ -_GL_CXXALIAS_SYS_CAST (random, long, (void)); -# endif -_GL_CXXALIASWARN (random); -#elif defined GNULIB_POSIXCHECK -# undef random -# if HAVE_RAW_DECL_RANDOM -_GL_WARN_ON_USE (random, "random is unportable - " - "use gnulib module random for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef srandom -# define srandom rpl_srandom -# endif -_GL_FUNCDECL_RPL (srandom, void, (unsigned int seed)); -_GL_CXXALIAS_RPL (srandom, void, (unsigned int seed)); -# else -# if !1 -_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); -# endif -/* Need to cast, because on FreeBSD, the first parameter is - unsigned long seed. */ -_GL_CXXALIAS_SYS_CAST (srandom, void, (unsigned int seed)); -# endif -_GL_CXXALIASWARN (srandom); -#elif defined GNULIB_POSIXCHECK -# undef srandom -# if HAVE_RAW_DECL_SRANDOM -_GL_WARN_ON_USE (srandom, "srandom is unportable - " - "use gnulib module random for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef initstate -# define initstate rpl_initstate -# endif -_GL_FUNCDECL_RPL (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size)); -# else -# if !1 || !1 -_GL_FUNCDECL_SYS (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size) - _GL_ARG_NONNULL ((2))); -# endif -/* Need to cast, because on FreeBSD, the first parameter is - unsigned long seed. */ -_GL_CXXALIAS_SYS_CAST (initstate, char *, - (unsigned int seed, char *buf, size_t buf_size)); -# endif -_GL_CXXALIASWARN (initstate); -#elif defined GNULIB_POSIXCHECK -# undef initstate -# if HAVE_RAW_DECL_INITSTATE -_GL_WARN_ON_USE (initstate, "initstate is unportable - " - "use gnulib module random for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setstate -# define setstate rpl_setstate -# endif -_GL_FUNCDECL_RPL (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (setstate, char *, (char *arg_state)); -# else -# if !1 || !1 -_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Mac OS X 10.13, HP-UX, Solaris the first parameter - is const char *arg_state. */ -_GL_CXXALIAS_SYS_CAST (setstate, char *, (char *arg_state)); -# endif -_GL_CXXALIASWARN (setstate); -#elif defined GNULIB_POSIXCHECK -# undef setstate -# if HAVE_RAW_DECL_SETSTATE -_GL_WARN_ON_USE (setstate, "setstate is unportable - " - "use gnulib module random for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef random_r -# define random_r rpl_random_r -# endif -_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); -# else -# if !1 -_GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); -# endif -_GL_CXXALIASWARN (random_r); -#elif defined GNULIB_POSIXCHECK -# undef random_r -# if HAVE_RAW_DECL_RANDOM_R -_GL_WARN_ON_USE (random_r, "random_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef srandom_r -# define srandom_r rpl_srandom_r -# endif -_GL_FUNCDECL_RPL (srandom_r, int, - (unsigned int seed, struct random_data *rand_state) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (srandom_r, int, - (unsigned int seed, struct random_data *rand_state)); -# else -# if !1 -_GL_FUNCDECL_SYS (srandom_r, int, - (unsigned int seed, struct random_data *rand_state) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (srandom_r, int, - (unsigned int seed, struct random_data *rand_state)); -# endif -_GL_CXXALIASWARN (srandom_r); -#elif defined GNULIB_POSIXCHECK -# undef srandom_r -# if HAVE_RAW_DECL_SRANDOM_R -_GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef initstate_r -# define initstate_r rpl_initstate_r -# endif -_GL_FUNCDECL_RPL (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state) - _GL_ARG_NONNULL ((2, 4))); -_GL_CXXALIAS_RPL (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state)); -# else -# if !1 -_GL_FUNCDECL_SYS (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state) - _GL_ARG_NONNULL ((2, 4))); -# endif -/* Need to cast, because on Haiku, the third parameter is - unsigned long buf_size. */ -_GL_CXXALIAS_SYS_CAST (initstate_r, int, - (unsigned int seed, char *buf, size_t buf_size, - struct random_data *rand_state)); -# endif -_GL_CXXALIASWARN (initstate_r); -#elif defined GNULIB_POSIXCHECK -# undef initstate_r -# if HAVE_RAW_DECL_INITSTATE_R -_GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setstate_r -# define setstate_r rpl_setstate_r -# endif -_GL_FUNCDECL_RPL (setstate_r, int, - (char *arg_state, struct random_data *rand_state) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (setstate_r, int, - (char *arg_state, struct random_data *rand_state)); -# else -# if !1 -_GL_FUNCDECL_SYS (setstate_r, int, - (char *arg_state, struct random_data *rand_state) - _GL_ARG_NONNULL ((1, 2))); -# endif -/* Need to cast, because on Haiku, the first parameter is - void *arg_state. */ -_GL_CXXALIAS_SYS_CAST (setstate_r, int, - (char *arg_state, struct random_data *rand_state)); -# endif -_GL_CXXALIASWARN (setstate_r); -#elif defined GNULIB_POSIXCHECK -# undef setstate_r -# if HAVE_RAW_DECL_SETSTATE_R -_GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " - "use gnulib module random_r for portability"); -# endif -#endif - - -#if 1 -# if (1 && 0) \ - || (0 && 0) -# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ - || _GL_USE_STDLIB_ALLOC) -# undef realloc -# define realloc rpl_realloc -# endif -_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); -# else -# if __GNUC__ >= 11 -/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (realloc); -# endif -#else -# if 1 && __GNUC__ >= 11 && !defined realloc -/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */ -_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size) - _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC -# undef realloc -/* Assume realloc is always declared. */ -_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " - "use gnulib module realloc-posix for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef reallocarray -# define reallocarray rpl_reallocarray -# endif -_GL_FUNCDECL_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -_GL_CXXALIAS_RPL (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# endif -_GL_CXXALIAS_SYS (reallocarray, void *, - (void *ptr, size_t nmemb, size_t size)); -# endif -_GL_CXXALIASWARN (reallocarray); -#elif defined GNULIB_POSIXCHECK -# undef reallocarray -# if HAVE_RAW_DECL_REALLOCARRAY -_GL_WARN_ON_USE (reallocarray, "reallocarray is not portable - " - "use gnulib module reallocarray for portability"); -# endif -#endif - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define realpath rpl_realpath -# endif -_GL_FUNCDECL_RPL (realpath, char *, - (const char *restrict name, char *restrict resolved) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (realpath, char *, - (const char *restrict name, char *restrict resolved)); -# else -# if !1 -_GL_FUNCDECL_SYS (realpath, char *, - (const char *restrict name, char *restrict resolved) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (realpath, char *, - (const char *restrict name, char *restrict resolved)); -# endif -_GL_CXXALIASWARN (realpath); -#elif defined GNULIB_POSIXCHECK -# undef realpath -# if HAVE_RAW_DECL_REALPATH -_GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " - "canonicalize or canonicalize-lgpl for portability"); -# endif -#endif - -#if 0 -/* Test a user response to a question. - Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ -# if !1 -_GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); -_GL_CXXALIASWARN (rpmatch); -#elif defined GNULIB_POSIXCHECK -# undef rpmatch -# if HAVE_RAW_DECL_RPMATCH -_GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " - "use gnulib module rpmatch for portability"); -# endif -#endif - -#if 0 -/* Look up NAME in the environment, returning 0 in insecure situations. */ -# if !1 -_GL_FUNCDECL_SYS (secure_getenv, char *, - (char const *name) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); -_GL_CXXALIASWARN (secure_getenv); -#elif defined GNULIB_POSIXCHECK -# undef secure_getenv -# if HAVE_RAW_DECL_SECURE_GETENV -_GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " - "use gnulib module secure_getenv for portability"); -# endif -#endif - -#if 0 -/* Set NAME to VALUE in the environment. - If REPLACE is nonzero, overwrite an existing value. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef setenv -# define setenv rpl_setenv -# endif -_GL_FUNCDECL_RPL (setenv, int, - (const char *name, const char *value, int replace) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (setenv, int, - (const char *name, const char *value, int replace)); -# else -# if !1 -_GL_FUNCDECL_SYS (setenv, int, - (const char *name, const char *value, int replace) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (setenv, int, - (const char *name, const char *value, int replace)); -# endif -# if !(0 && !1) -_GL_CXXALIASWARN (setenv); -# endif -#elif defined GNULIB_POSIXCHECK -# undef setenv -# if HAVE_RAW_DECL_SETENV -_GL_WARN_ON_USE (setenv, "setenv is unportable - " - "use gnulib module setenv for portability"); -# endif -#endif - -#if 0 - /* Parse a double from STRING, updating ENDP if appropriate. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtod rpl_strtod -# endif -# define GNULIB_defined_strtod_function 1 -_GL_FUNCDECL_RPL (strtod, double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtod, double, - (const char *restrict str, char **restrict endp)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtod, double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtod, double, - (const char *restrict str, char **restrict endp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strtod); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtod -# if HAVE_RAW_DECL_STRTOD -_GL_WARN_ON_USE (strtod, "strtod is unportable - " - "use gnulib module strtod for portability"); -# endif -#endif - -#if 0 - /* Parse a 'long double' from STRING, updating ENDP if appropriate. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtold rpl_strtold -# endif -# define GNULIB_defined_strtold_function 1 -_GL_FUNCDECL_RPL (strtold, long double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtold, long double, - (const char *restrict str, char **restrict endp)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtold, long double, - (const char *restrict str, char **restrict endp) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtold, long double, - (const char *restrict str, char **restrict endp)); -# endif -_GL_CXXALIASWARN (strtold); -#elif defined GNULIB_POSIXCHECK -# undef strtold -# if HAVE_RAW_DECL_STRTOLD -_GL_WARN_ON_USE (strtold, "strtold is unportable - " - "use gnulib module strtold for portability"); -# endif -#endif - -#if 0 -/* Parse a signed integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set - to ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtol rpl_strtol -# endif -# define GNULIB_defined_strtol_function 1 -_GL_FUNCDECL_RPL (strtol, long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtol, long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtol, long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtol, long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -_GL_CXXALIASWARN (strtol); -#elif defined GNULIB_POSIXCHECK -# undef strtol -# if HAVE_RAW_DECL_STRTOL -_GL_WARN_ON_USE (strtol, "strtol is unportable - " - "use gnulib module strtol for portability"); -# endif -#endif - -#if 0 -/* Parse a signed integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set - to ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoll rpl_strtoll -# endif -# define GNULIB_defined_strtoll_function 1 -_GL_FUNCDECL_RPL (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoll, long long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -_GL_CXXALIASWARN (strtoll); -#elif defined GNULIB_POSIXCHECK -# undef strtoll -# if HAVE_RAW_DECL_STRTOLL -_GL_WARN_ON_USE (strtoll, "strtoll is unportable - " - "use gnulib module strtoll for portability"); -# endif -#endif - -#if 0 -/* Parse an unsigned integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoul rpl_strtoul -# endif -# define GNULIB_defined_strtoul_function 1 -_GL_FUNCDECL_RPL (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoul, unsigned long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -_GL_CXXALIASWARN (strtoul); -#elif defined GNULIB_POSIXCHECK -# undef strtoul -# if HAVE_RAW_DECL_STRTOUL -_GL_WARN_ON_USE (strtoul, "strtoul is unportable - " - "use gnulib module strtoul for portability"); -# endif -#endif - -#if 0 -/* Parse an unsigned integer whose textual representation starts at STRING. - The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, - it may be decimal or octal (with prefix "0") or hexadecimal (with prefix - "0x"). - If ENDPTR is not NULL, the address of the first byte after the integer is - stored in *ENDPTR. - Upon overflow, the return value is ULLONG_MAX, and errno is set to - ERANGE. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strtoull rpl_strtoull -# endif -# define GNULIB_defined_strtoull_function 1 -_GL_FUNCDECL_RPL (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base)); -# else -# if !1 -_GL_FUNCDECL_SYS (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strtoull, unsigned long long, - (const char *restrict string, char **restrict endptr, - int base)); -# endif -_GL_CXXALIASWARN (strtoull); -#elif defined GNULIB_POSIXCHECK -# undef strtoull -# if HAVE_RAW_DECL_STRTOULL -_GL_WARN_ON_USE (strtoull, "strtoull is unportable - " - "use gnulib module strtoull for portability"); -# endif -#endif - -#if 0 -/* Unlock the slave side of the pseudo-terminal whose master side is specified - by FD, so that it can be opened. */ -# if !1 -_GL_FUNCDECL_SYS (unlockpt, int, (int fd)); -# endif -_GL_CXXALIAS_SYS (unlockpt, int, (int fd)); -_GL_CXXALIASWARN (unlockpt); -#elif defined GNULIB_POSIXCHECK -# undef unlockpt -# if HAVE_RAW_DECL_UNLOCKPT -_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " - "use gnulib module unlockpt for portability"); -# endif -#endif - -#if 0 -/* Remove the variable NAME from the environment. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unsetenv -# define unsetenv rpl_unsetenv -# endif -_GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); -# else -# if !1 -_GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); -# endif -# if !(0 && !1) -_GL_CXXALIASWARN (unsetenv); -# endif -#elif defined GNULIB_POSIXCHECK -# undef unsetenv -# if HAVE_RAW_DECL_UNSETENV -_GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " - "use gnulib module unsetenv for portability"); -# endif -#endif - -/* Convert a wide character to a multibyte character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wctomb -# define wctomb rpl_wctomb -# endif -_GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); -_GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); -# else -_GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wctomb); -# endif -#endif - - -#endif /* _GL_STDLIB_H */ -#endif /* _GL_STDLIB_H */ -#endif diff --git a/jni/parted/libiconv/srclib/streq.h b/jni/parted/libiconv/srclib/streq.h deleted file mode 100755 index 49f73c1..0000000 --- a/jni/parted/libiconv/srclib/streq.h +++ /dev/null @@ -1,176 +0,0 @@ -/* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible . */ - -#ifndef _GL_STREQ_H -#define _GL_STREQ_H - -#include - -/* STREQ_OPT allows to optimize string comparison with a small literal string. - STREQ_OPT (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - is semantically equivalent to - strcmp (s, "EUC-KR") == 0 - just faster. */ - -/* Help GCC to generate good code for string comparisons with - immediate strings. */ -#if (defined __GNUC__ || defined __clang__) && defined __OPTIMIZE__ - -static inline int -streq9 (const char *s1, const char *s2) -{ - return strcmp (s1 + 9, s2 + 9) == 0; -} - -static inline int -streq8 (const char *s1, const char *s2, char s28) -{ - if (s1[8] == s28) - { - if (s28 == 0) - return 1; - else - return streq9 (s1, s2); - } - else - return 0; -} - -static inline int -streq7 (const char *s1, const char *s2, char s27, char s28) -{ - if (s1[7] == s27) - { - if (s27 == 0) - return 1; - else - return streq8 (s1, s2, s28); - } - else - return 0; -} - -static inline int -streq6 (const char *s1, const char *s2, char s26, char s27, char s28) -{ - if (s1[6] == s26) - { - if (s26 == 0) - return 1; - else - return streq7 (s1, s2, s27, s28); - } - else - return 0; -} - -static inline int -streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28) -{ - if (s1[5] == s25) - { - if (s25 == 0) - return 1; - else - return streq6 (s1, s2, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[4] == s24) - { - if (s24 == 0) - return 1; - else - return streq5 (s1, s2, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[3] == s23) - { - if (s23 == 0) - return 1; - else - return streq4 (s1, s2, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[2] == s22) - { - if (s22 == 0) - return 1; - else - return streq3 (s1, s2, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[1] == s21) - { - if (s21 == 0) - return 1; - else - return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -static inline int -streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28) -{ - if (s1[0] == s20) - { - if (s20 == 0) - return 1; - else - return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28); - } - else - return 0; -} - -#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28) - -#else - -#define STREQ_OPT(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \ - (strcmp (s1, s2) == 0) - -#endif - -#endif /* _GL_STREQ_H */ diff --git a/jni/parted/libiconv/srclib/strerror-override.c b/jni/parted/libiconv/srclib/strerror-override.c deleted file mode 100755 index 6be1afd..0000000 --- a/jni/parted/libiconv/srclib/strerror-override.c +++ /dev/null @@ -1,306 +0,0 @@ -/* strerror-override.c --- POSIX compatible system error routine - - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Bruno Haible , 2010. */ - -#include - -#include "strerror-override.h" - -#include - -#if GNULIB_defined_EWINSOCK /* native Windows platforms */ -# if HAVE_WINSOCK2_H -# include -# endif -#endif - -#if !GNULIB_defined_strerror_override_macro - -/* If ERRNUM maps to an errno value defined by gnulib, return a string - describing the error. Otherwise return NULL. */ -const char * -strerror_override (int errnum) -{ - /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ - switch (errnum) - { -# if REPLACE_STRERROR_0 - case 0: - return "Success"; -# endif - -# if GNULIB_defined_ESOCK /* native Windows platforms with older */ - case EINPROGRESS: - return "Operation now in progress"; - case EALREADY: - return "Operation already in progress"; - case ENOTSOCK: - return "Socket operation on non-socket"; - case EDESTADDRREQ: - return "Destination address required"; - case EMSGSIZE: - return "Message too long"; - case EPROTOTYPE: - return "Protocol wrong type for socket"; - case ENOPROTOOPT: - return "Protocol not available"; - case EPROTONOSUPPORT: - return "Protocol not supported"; - case EOPNOTSUPP: - return "Operation not supported"; - case EAFNOSUPPORT: - return "Address family not supported by protocol"; - case EADDRINUSE: - return "Address already in use"; - case EADDRNOTAVAIL: - return "Cannot assign requested address"; - case ENETDOWN: - return "Network is down"; - case ENETUNREACH: - return "Network is unreachable"; - case ECONNRESET: - return "Connection reset by peer"; - case ENOBUFS: - return "No buffer space available"; - case EISCONN: - return "Transport endpoint is already connected"; - case ENOTCONN: - return "Transport endpoint is not connected"; - case ETIMEDOUT: - return "Connection timed out"; - case ECONNREFUSED: - return "Connection refused"; - case ELOOP: - return "Too many levels of symbolic links"; - case EHOSTUNREACH: - return "No route to host"; - case EWOULDBLOCK: - return "Operation would block"; -# endif -# if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ - case ETXTBSY: - return "Text file busy"; - case ENODATA: - return "No data available"; - case ENOSR: - return "Out of streams resources"; - case ENOSTR: - return "Device not a stream"; - case ETIME: - return "Timer expired"; - case EOTHER: - return "Other error"; -# endif -# if GNULIB_defined_EWINSOCK /* native Windows platforms */ - case ESOCKTNOSUPPORT: - return "Socket type not supported"; - case EPFNOSUPPORT: - return "Protocol family not supported"; - case ESHUTDOWN: - return "Cannot send after transport endpoint shutdown"; - case ETOOMANYREFS: - return "Too many references: cannot splice"; - case EHOSTDOWN: - return "Host is down"; - case EPROCLIM: - return "Too many processes"; - case EUSERS: - return "Too many users"; - case EDQUOT: - return "Disk quota exceeded"; - case ESTALE: - return "Stale NFS file handle"; - case EREMOTE: - return "Object is remote"; -# if HAVE_WINSOCK2_H - /* WSA_INVALID_HANDLE maps to EBADF */ - /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ - /* WSA_INVALID_PARAMETER maps to EINVAL */ - case WSA_OPERATION_ABORTED: - return "Overlapped operation aborted"; - case WSA_IO_INCOMPLETE: - return "Overlapped I/O event object not in signaled state"; - case WSA_IO_PENDING: - return "Overlapped operations will complete later"; - /* WSAEINTR maps to EINTR */ - /* WSAEBADF maps to EBADF */ - /* WSAEACCES maps to EACCES */ - /* WSAEFAULT maps to EFAULT */ - /* WSAEINVAL maps to EINVAL */ - /* WSAEMFILE maps to EMFILE */ - /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ - /* WSAEINPROGRESS maps to EINPROGRESS */ - /* WSAEALREADY maps to EALREADY */ - /* WSAENOTSOCK maps to ENOTSOCK */ - /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ - /* WSAEMSGSIZE maps to EMSGSIZE */ - /* WSAEPROTOTYPE maps to EPROTOTYPE */ - /* WSAENOPROTOOPT maps to ENOPROTOOPT */ - /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ - /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ - /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ - /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ - /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ - /* WSAEADDRINUSE maps to EADDRINUSE */ - /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ - /* WSAENETDOWN maps to ENETDOWN */ - /* WSAENETUNREACH maps to ENETUNREACH */ - /* WSAENETRESET maps to ENETRESET */ - /* WSAECONNABORTED maps to ECONNABORTED */ - /* WSAECONNRESET maps to ECONNRESET */ - /* WSAENOBUFS maps to ENOBUFS */ - /* WSAEISCONN maps to EISCONN */ - /* WSAENOTCONN maps to ENOTCONN */ - /* WSAESHUTDOWN is ESHUTDOWN */ - /* WSAETOOMANYREFS is ETOOMANYREFS */ - /* WSAETIMEDOUT maps to ETIMEDOUT */ - /* WSAECONNREFUSED maps to ECONNREFUSED */ - /* WSAELOOP maps to ELOOP */ - /* WSAENAMETOOLONG maps to ENAMETOOLONG */ - /* WSAEHOSTDOWN is EHOSTDOWN */ - /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ - /* WSAENOTEMPTY maps to ENOTEMPTY */ - /* WSAEPROCLIM is EPROCLIM */ - /* WSAEUSERS is EUSERS */ - /* WSAEDQUOT is EDQUOT */ - /* WSAESTALE is ESTALE */ - /* WSAEREMOTE is EREMOTE */ - case WSASYSNOTREADY: - return "Network subsystem is unavailable"; - case WSAVERNOTSUPPORTED: - return "Winsock.dll version out of range"; - case WSANOTINITIALISED: - return "Successful WSAStartup not yet performed"; - case WSAEDISCON: - return "Graceful shutdown in progress"; - case WSAENOMORE: case WSA_E_NO_MORE: - return "No more results"; - case WSAECANCELLED: case WSA_E_CANCELLED: - return "Call was canceled"; - case WSAEINVALIDPROCTABLE: - return "Procedure call table is invalid"; - case WSAEINVALIDPROVIDER: - return "Service provider is invalid"; - case WSAEPROVIDERFAILEDINIT: - return "Service provider failed to initialize"; - case WSASYSCALLFAILURE: - return "System call failure"; - case WSASERVICE_NOT_FOUND: - return "Service not found"; - case WSATYPE_NOT_FOUND: - return "Class type not found"; - case WSAEREFUSED: - return "Database query was refused"; - case WSAHOST_NOT_FOUND: - return "Host not found"; - case WSATRY_AGAIN: - return "Nonauthoritative host not found"; - case WSANO_RECOVERY: - return "Nonrecoverable error"; - case WSANO_DATA: - return "Valid name, no data record of requested type"; - /* WSA_QOS_* omitted */ -# endif -# endif - -# if GNULIB_defined_ENOMSG - case ENOMSG: - return "No message of desired type"; -# endif - -# if GNULIB_defined_EIDRM - case EIDRM: - return "Identifier removed"; -# endif - -# if GNULIB_defined_ENOLINK - case ENOLINK: - return "Link has been severed"; -# endif - -# if GNULIB_defined_EPROTO - case EPROTO: - return "Protocol error"; -# endif - -# if GNULIB_defined_EMULTIHOP - case EMULTIHOP: - return "Multihop attempted"; -# endif - -# if GNULIB_defined_EBADMSG - case EBADMSG: - return "Bad message"; -# endif - -# if GNULIB_defined_EOVERFLOW - case EOVERFLOW: - return "Value too large for defined data type"; -# endif - -# if GNULIB_defined_ENOTSUP - case ENOTSUP: - return "Not supported"; -# endif - -# if GNULIB_defined_ENETRESET - case ENETRESET: - return "Network dropped connection on reset"; -# endif - -# if GNULIB_defined_ECONNABORTED - case ECONNABORTED: - return "Software caused connection abort"; -# endif - -# if GNULIB_defined_ESTALE - case ESTALE: - return "Stale NFS file handle"; -# endif - -# if GNULIB_defined_EDQUOT - case EDQUOT: - return "Disk quota exceeded"; -# endif - -# if GNULIB_defined_ECANCELED - case ECANCELED: - return "Operation canceled"; -# endif - -# if GNULIB_defined_EOWNERDEAD - case EOWNERDEAD: - return "Owner died"; -# endif - -# if GNULIB_defined_ENOTRECOVERABLE - case ENOTRECOVERABLE: - return "State not recoverable"; -# endif - -# if GNULIB_defined_EILSEQ - case EILSEQ: - return "Invalid or incomplete multibyte or wide character"; -# endif - - default: - return NULL; - } -} - -#endif diff --git a/jni/parted/libiconv/srclib/strerror-override.h b/jni/parted/libiconv/srclib/strerror-override.h deleted file mode 100755 index d010d27..0000000 --- a/jni/parted/libiconv/srclib/strerror-override.h +++ /dev/null @@ -1,57 +0,0 @@ -/* strerror-override.h --- POSIX compatible system error routine - - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_STRERROR_OVERRIDE_H -# define _GL_STRERROR_OVERRIDE_H - -# include -# include - -/* Reasonable buffer size that should never trigger ERANGE; if this - proves too small, we intentionally abort(), to remind us to fix - this value. */ -# define STACKBUF_LEN 256 - -/* If ERRNUM maps to an errno value defined by gnulib, return a string - describing the error. Otherwise return NULL. */ -# if REPLACE_STRERROR_0 \ - || GNULIB_defined_ESOCK \ - || GNULIB_defined_ESTREAMS \ - || GNULIB_defined_EWINSOCK \ - || GNULIB_defined_ENOMSG \ - || GNULIB_defined_EIDRM \ - || GNULIB_defined_ENOLINK \ - || GNULIB_defined_EPROTO \ - || GNULIB_defined_EMULTIHOP \ - || GNULIB_defined_EBADMSG \ - || GNULIB_defined_EOVERFLOW \ - || GNULIB_defined_ENOTSUP \ - || GNULIB_defined_ENETRESET \ - || GNULIB_defined_ECONNABORTED \ - || GNULIB_defined_ESTALE \ - || GNULIB_defined_EDQUOT \ - || GNULIB_defined_ECANCELED \ - || GNULIB_defined_EOWNERDEAD \ - || GNULIB_defined_ENOTRECOVERABLE \ - || GNULIB_defined_EILSEQ -extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; -# else -# define strerror_override(ignored) NULL -# define GNULIB_defined_strerror_override_macro 1 -# endif - -#endif /* _GL_STRERROR_OVERRIDE_H */ diff --git a/jni/parted/libiconv/srclib/strerror.c b/jni/parted/libiconv/srclib/strerror.c deleted file mode 100755 index 67c5216..0000000 --- a/jni/parted/libiconv/srclib/strerror.c +++ /dev/null @@ -1,71 +0,0 @@ -/* strerror.c --- POSIX compatible system error routine - - Copyright (C) 2007-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include - -#include -#include -#include -#include - -#include "intprops.h" -#include "strerror-override.h" -#include "verify.h" - -/* Use the system functions, not the gnulib overrides in this file. */ -#undef sprintf - -char * -strerror (int n) -#undef strerror -{ - static char buf[STACKBUF_LEN]; - size_t len; - - /* Cast away const, due to the historical signature of strerror; - callers should not be modifying the string. */ - const char *msg = strerror_override (n); - if (msg) - return (char *) msg; - - msg = strerror (n); - - /* Our strerror_r implementation might use the system's strerror - buffer, so all other clients of strerror have to see the error - copied into a buffer that we manage. This is not thread-safe, - even if the system strerror is, but portable programs shouldn't - be using strerror if they care about thread-safety. */ - if (!msg || !*msg) - { - static char const fmt[] = "Unknown error %d"; - verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); - sprintf (buf, fmt, n); - errno = EINVAL; - return buf; - } - - /* Fix STACKBUF_LEN if this ever aborts. */ - len = strlen (msg); - if (sizeof buf <= len) - abort (); - - memcpy (buf, msg, len + 1); - return buf; -} diff --git a/jni/parted/libiconv/srclib/string.h b/jni/parted/libiconv/srclib/string.h deleted file mode 100755 index fb48b8d..0000000 --- a/jni/parted/libiconv/srclib/string.h +++ /dev/null @@ -1,1803 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A GNU-like . - - Copyright (C) 1995-1996, 2001-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined _GL_ALREADY_INCLUDING_STRING_H -/* Special invocation convention: - - On OS X/NetBSD we have a sequence of nested includes - -> -> "string.h" - In this situation system _chk variants due to -D_FORTIFY_SOURCE - might be used after any replacements defined here. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_STRING_H - -#define _GL_ALREADY_INCLUDING_STRING_H - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#undef _GL_ALREADY_INCLUDING_STRING_H - -#ifndef _GL_STRING_H -#define _GL_STRING_H - -/* NetBSD 5.0 mis-defines NULL. */ -#include - -/* MirBSD defines mbslen as a macro. */ -#if 0 && defined __MirBSD__ -# include -#endif - -/* NetBSD 5.0 declares strsignal in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ - && ! defined __GLIBC__ -# include -#endif - -/* AIX 7.2 declares ffsl and ffsll in , not in . */ -/* But in any case avoid namespace pollution on glibc systems. */ -#if ((0 || 0 || defined GNULIB_POSIXCHECK) \ - && defined _AIX) \ - && ! defined __GLIBC__ -# include -#endif - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have - been included yet. */ -#if 1 -# if (1 && !defined free \ - && !(defined __cplusplus && defined GNULIB_NAMESPACE)) -/* We can't do '#define free rpl_free' here. */ -_GL_EXTERN_C void rpl_free (void *); -# undef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) -# else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -# endif -#else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -#endif - -/* Clear a block of memory. The compiler will not delete a call to - this function, even if the block is dead after the call. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (explicit_bzero, void, - (void *__dest, size_t __n) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (explicit_bzero, void, (void *__dest, size_t __n)); -_GL_CXXALIASWARN (explicit_bzero); -#elif defined GNULIB_POSIXCHECK -# undef explicit_bzero -# if HAVE_RAW_DECL_EXPLICIT_BZERO -_GL_WARN_ON_USE (explicit_bzero, "explicit_bzero is unportable - " - "use gnulib module explicit_bzero for portability"); -# endif -#endif - -/* Find the index of the least-significant set bit. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (ffsl, int, (long int i)); -# endif -_GL_CXXALIAS_SYS (ffsl, int, (long int i)); -_GL_CXXALIASWARN (ffsl); -#elif defined GNULIB_POSIXCHECK -# undef ffsl -# if HAVE_RAW_DECL_FFSL -_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); -# endif -#endif - - -/* Find the index of the least-significant set bit. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define ffsll rpl_ffsll -# endif -_GL_FUNCDECL_RPL (ffsll, int, (long long int i)); -_GL_CXXALIAS_RPL (ffsll, int, (long long int i)); -# else -# if !1 -_GL_FUNCDECL_SYS (ffsll, int, (long long int i)); -# endif -_GL_CXXALIAS_SYS (ffsll, int, (long long int i)); -# endif -_GL_CXXALIASWARN (ffsll); -#elif defined GNULIB_POSIXCHECK -# undef ffsll -# if HAVE_RAW_DECL_FFSLL -_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'memccpy' to '_memccpy', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::memccpy always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memccpy -# define memccpy _memccpy -# endif -_GL_CXXALIAS_MDA (memccpy, void *, - (void *dest, const void *src, int c, size_t n)); -# else -_GL_CXXALIAS_SYS (memccpy, void *, - (void *dest, const void *src, int c, size_t n)); -# endif -_GL_CXXALIASWARN (memccpy); -#endif - - -/* Return the first instance of C within N bytes of S, or NULL. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef memchr -# define memchr rpl_memchr -# endif -_GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); -# else - /* On some systems, this function is defined as an overloaded function: - extern "C" { const void * std::memchr (const void *, int, size_t); } - extern "C++" { void * std::memchr (void *, int, size_t); } */ -_GL_CXXALIAS_SYS_CAST2 (memchr, - void *, (void const *__s, int __c, size_t __n), - void const *, (void const *__s, int __c, size_t __n)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n) throw ()); -_GL_CXXALIASWARN1 (memchr, void const *, - (void const *__s, int __c, size_t __n) throw ()); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (memchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef memchr -/* Assume memchr is always declared. */ -_GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " - "use gnulib module memchr for portability" ); -#endif - -/* Return the first occurrence of NEEDLE in HAYSTACK. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define memmem rpl_memmem -# endif -_GL_FUNCDECL_RPL (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 3))); -# endif -_GL_CXXALIAS_SYS (memmem, void *, - (void const *__haystack, size_t __haystack_len, - void const *__needle, size_t __needle_len)); -# endif -_GL_CXXALIASWARN (memmem); -#elif defined GNULIB_POSIXCHECK -# undef memmem -# if HAVE_RAW_DECL_MEMMEM -_GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " - "use gnulib module memmem-simple for portability, " - "and module memmem for speed" ); -# endif -#endif - -/* Copy N bytes of SRC to DEST, return pointer to bytes after the - last written byte. */ -#if 1 -# if ! 1 -_GL_FUNCDECL_SYS (mempcpy, void *, - (void *restrict __dest, void const *restrict __src, - size_t __n) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (mempcpy, void *, - (void *restrict __dest, void const *restrict __src, - size_t __n)); -_GL_CXXALIASWARN (mempcpy); -#elif defined GNULIB_POSIXCHECK -# undef mempcpy -# if HAVE_RAW_DECL_MEMPCPY -_GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " - "use gnulib module mempcpy for portability"); -# endif -#endif - -/* Search backwards through a block for a byte (specified as an int). */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const void * std::memrchr (const void *, int, size_t); } - extern "C++" { void * std::memrchr (void *, int, size_t); } */ -_GL_CXXALIAS_SYS_CAST2 (memrchr, - void *, (void const *, int, size_t), - void const *, (void const *, int, size_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t) throw ()); -_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t) throw ()); -# else -_GL_CXXALIASWARN (memrchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef memrchr -# if HAVE_RAW_DECL_MEMRCHR -_GL_WARN_ON_USE (memrchr, "memrchr is unportable - " - "use gnulib module memrchr for portability"); -# endif -#endif - -/* Find the first occurrence of C in S. More efficient than - memchr(S,C,N), at the expense of undefined behavior if C does not - occur within N bytes. */ -#if 1 -# if ! 0 -_GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const void * std::rawmemchr (const void *, int); } - extern "C++" { void * std::rawmemchr (void *, int); } */ -_GL_CXXALIAS_SYS_CAST2 (rawmemchr, - void *, (void const *__s, int __c_in), - void const *, (void const *__s, int __c_in)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in) throw ()); -_GL_CXXALIASWARN1 (rawmemchr, void const *, - (void const *__s, int __c_in) throw ()); -# else -_GL_CXXALIASWARN (rawmemchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef rawmemchr -# if HAVE_RAW_DECL_RAWMEMCHR -_GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " - "use gnulib module rawmemchr for portability"); -# endif -#endif - -/* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (stpcpy, char *, - (char *restrict __dst, char const *restrict __src) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (stpcpy, char *, - (char *restrict __dst, char const *restrict __src)); -_GL_CXXALIASWARN (stpcpy); -#elif defined GNULIB_POSIXCHECK -# undef stpcpy -# if HAVE_RAW_DECL_STPCPY -_GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " - "use gnulib module stpcpy for portability"); -# endif -#endif - -/* Copy no more than N bytes of SRC to DST, returning a pointer past the - last non-NUL byte written into DST. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef stpncpy -# define stpncpy rpl_stpncpy -# endif -_GL_FUNCDECL_RPL (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (stpncpy, char *, - (char *restrict __dst, char const *restrict __src, - size_t __n)); -# endif -_GL_CXXALIASWARN (stpncpy); -#elif defined GNULIB_POSIXCHECK -# undef stpncpy -# if HAVE_RAW_DECL_STPNCPY -_GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " - "use gnulib module stpncpy for portability"); -# endif -#endif - -#if defined GNULIB_POSIXCHECK -/* strchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ -# undef strchr -/* Assume strchr is always declared. */ -_GL_WARN_ON_USE_CXX (strchr, - const char *, char *, (const char *, int), - "strchr cannot work correctly on character strings " - "in some multibyte locales - " - "use mbschr if you care about internationalization"); -#endif - -/* Find the first occurrence of C in S or the final NUL byte. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strchrnul rpl_strchrnul -# endif -_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strchrnul, char *, - (const char *str, int ch)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const char * std::strchrnul (const char *, int); } - extern "C++" { char * std::strchrnul (char *, int); } */ -_GL_CXXALIAS_SYS_CAST2 (strchrnul, - char *, (char const *__s, int __c_in), - char const *, (char const *__s, int __c_in)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in) throw ()); -_GL_CXXALIASWARN1 (strchrnul, char const *, - (char const *__s, int __c_in) throw ()); -# else -_GL_CXXALIASWARN (strchrnul); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strchrnul -# if HAVE_RAW_DECL_STRCHRNUL -_GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " - "use gnulib module strchrnul for portability"); -# endif -#endif - -/* Duplicate S, returning an identical malloc'd string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup rpl_strdup -# endif -_GL_FUNCDECL_RPL (strdup, char *, - (char const *__s) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup _strdup -# endif -_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); -# else -# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup - /* strdup exists as a function and as a macro. Get rid of the macro. */ -# undef strdup -# endif -# if (!1 || __GNUC__ >= 11) && !defined strdup -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); -# endif -_GL_CXXALIASWARN (strdup); -#else -# if __GNUC__ >= 11 && !defined strdup -/* For -Wmismatched-dealloc: Associate strdup with free or rpl_free. */ -_GL_FUNCDECL_SYS (strdup, char *, - (char const *__s) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef strdup -# if HAVE_RAW_DECL_STRDUP -_GL_WARN_ON_USE (strdup, "strdup is unportable - " - "use gnulib module strdup for portability"); -# endif -# elif 1 -/* On native Windows, map 'creat' to '_creat', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::strdup always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strdup -# define strdup _strdup -# endif -_GL_CXXALIAS_MDA (strdup, char *, (char const *__s)); -# else -# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup -# undef strdup -# endif -_GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); -# endif -_GL_CXXALIASWARN (strdup); -# endif -#endif - -/* Append no more than N characters from SRC onto DEST. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strncat -# define strncat rpl_strncat -# endif -_GL_FUNCDECL_RPL (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n)); -# else -_GL_CXXALIAS_SYS (strncat, char *, - (char *restrict dest, const char *restrict src, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strncat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strncat -# if HAVE_RAW_DECL_STRNCAT -_GL_WARN_ON_USE (strncat, "strncat is unportable - " - "use gnulib module strncat for portability"); -# endif -#endif - -/* Return a newly allocated copy of at most N bytes of STRING. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strndup -# define strndup rpl_strndup -# endif -_GL_FUNCDECL_RPL (strndup, char *, - (char const *__s, size_t __n) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -_GL_CXXALIAS_RPL (strndup, char *, (char const *__s, size_t __n)); -# else -# if !1 || (__GNUC__ >= 11 && !defined strndup) -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (strndup, char *, (char const *__s, size_t __n)); -# endif -_GL_CXXALIASWARN (strndup); -#else -# if __GNUC__ >= 11 && !defined strndup -/* For -Wmismatched-dealloc: Associate strndup with free or rpl_free. */ -_GL_FUNCDECL_SYS (strndup, char *, - (char const *__s, size_t __n) - _GL_ARG_NONNULL ((1)) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef strndup -# if HAVE_RAW_DECL_STRNDUP -_GL_WARN_ON_USE (strndup, "strndup is unportable - " - "use gnulib module strndup for portability"); -# endif -# endif -#endif - -/* Find the length (number of bytes) of STRING, but scan at most - MAXLEN bytes. If no '\0' terminator is found in that many bytes, - return MAXLEN. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strnlen -# define strnlen rpl_strnlen -# endif -_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__s, size_t __maxlen) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__s, size_t __maxlen)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__s, size_t __maxlen) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__s, size_t __maxlen)); -# endif -_GL_CXXALIASWARN (strnlen); -#elif defined GNULIB_POSIXCHECK -# undef strnlen -# if HAVE_RAW_DECL_STRNLEN -_GL_WARN_ON_USE (strnlen, "strnlen is unportable - " - "use gnulib module strnlen for portability"); -# endif -#endif - -#if defined GNULIB_POSIXCHECK -/* strcspn() assumes the second argument is a list of single-byte characters. - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ -# undef strcspn -/* Assume strcspn is always declared. */ -_GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " - "in multibyte locales - " - "use mbscspn if you care about internationalization"); -#endif - -/* Find the first occurrence in S of any character in ACCEPT. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C" { const char * strpbrk (const char *, const char *); } - extern "C++" { char * strpbrk (char *, const char *); } */ -_GL_CXXALIAS_SYS_CAST2 (strpbrk, - char *, (char const *__s, char const *__accept), - const char *, (char const *__s, char const *__accept)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept) throw ()); -_GL_CXXALIASWARN1 (strpbrk, char const *, - (char const *__s, char const *__accept) throw ()); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (strpbrk); -# endif -# if defined GNULIB_POSIXCHECK -/* strpbrk() assumes the second argument is a list of single-byte characters. - Even in this simple case, it does not work with multibyte strings if the - locale encoding is GB18030 and one of the characters to be searched is a - digit. */ -# undef strpbrk -_GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk cannot work correctly on character strings " - "in multibyte locales - " - "use mbspbrk if you care about internationalization"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strpbrk -# if HAVE_RAW_DECL_STRPBRK -_GL_WARN_ON_USE_CXX (strpbrk, - const char *, char *, (const char *, const char *), - "strpbrk is unportable - " - "use gnulib module strpbrk for portability"); -# endif -#endif - -#if defined GNULIB_POSIXCHECK -/* strspn() assumes the second argument is a list of single-byte characters. - Even in this simple case, it cannot work with multibyte strings. */ -# undef strspn -/* Assume strspn is always declared. */ -_GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " - "in multibyte locales - " - "use mbsspn if you care about internationalization"); -#endif - -#if defined GNULIB_POSIXCHECK -/* strrchr() does not work with multibyte strings if the locale encoding is - GB18030 and the character to be searched is a digit. */ -# undef strrchr -/* Assume strrchr is always declared. */ -_GL_WARN_ON_USE_CXX (strrchr, - const char *, char *, (const char *, int), - "strrchr cannot work correctly on character strings " - "in some multibyte locales - " - "use mbsrchr if you care about internationalization"); -#endif - -/* Search the next delimiter (char listed in DELIM) starting at *STRINGP. - If one is found, overwrite it with a NUL, and advance *STRINGP - to point to the next char after it. Otherwise, set *STRINGP to NULL. - If *STRINGP was already NULL, nothing happens. - Return the old value of *STRINGP. - - This is a variant of strtok() that is multithread-safe and supports - empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strtok_r(). */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (strsep, char *, - (char **restrict __stringp, char const *restrict __delim) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (strsep, char *, - (char **restrict __stringp, char const *restrict __delim)); -_GL_CXXALIASWARN (strsep); -# if defined GNULIB_POSIXCHECK -# undef strsep -_GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " - "in multibyte locales - " - "use mbssep if you care about internationalization"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strsep -# if HAVE_RAW_DECL_STRSEP -_GL_WARN_ON_USE (strsep, "strsep is unportable - " - "use gnulib module strsep for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strstr rpl_strstr -# endif -_GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); -# else - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const char * strstr (const char *, const char *); } - extern "C++" { char * strstr (char *, const char *); } */ -_GL_CXXALIAS_SYS_CAST2 (strstr, - char *, (const char *haystack, const char *needle), - const char *, (const char *haystack, const char *needle)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strstr, char *, - (char *haystack, const char *needle) throw ()); -_GL_CXXALIASWARN1 (strstr, const char *, - (const char *haystack, const char *needle) throw ()); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (strstr); -# endif -#elif defined GNULIB_POSIXCHECK -/* strstr() does not work with multibyte strings if the locale encoding is - different from UTF-8: - POSIX says that it operates on "strings", and "string" in POSIX is defined - as a sequence of bytes, not of characters. */ -# undef strstr -/* Assume strstr is always declared. */ -_GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " - "work correctly on character strings in most " - "multibyte locales - " - "use mbsstr if you care about internationalization, " - "or use strstr if you care about speed"); -#endif - -/* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive - comparison. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strcasestr rpl_strcasestr -# endif -_GL_FUNCDECL_RPL (strcasestr, char *, - (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (strcasestr, char *, - (const char *haystack, const char *needle)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strcasestr, char *, - (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { const char * strcasestr (const char *, const char *); } - extern "C++" { char * strcasestr (char *, const char *); } */ -_GL_CXXALIAS_SYS_CAST2 (strcasestr, - char *, (const char *haystack, const char *needle), - const char *, (const char *haystack, const char *needle)); -# endif -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) \ - || defined __clang__) -_GL_CXXALIASWARN1 (strcasestr, char *, - (char *haystack, const char *needle) throw ()); -_GL_CXXALIASWARN1 (strcasestr, const char *, - (const char *haystack, const char *needle) throw ()); -# else -_GL_CXXALIASWARN (strcasestr); -# endif -#elif defined GNULIB_POSIXCHECK -/* strcasestr() does not work with multibyte strings: - It is a glibc extension, and glibc implements it only for unibyte - locales. */ -# undef strcasestr -# if HAVE_RAW_DECL_STRCASESTR -_GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " - "strings in multibyte locales - " - "use mbscasestr if you care about " - "internationalization, or use c-strcasestr if you want " - "a locale independent function"); -# endif -#endif - -/* Parse S into tokens separated by characters in DELIM. - If S is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = strtok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - This is a variant of strtok() that is multithread-safe. - - For the POSIX documentation for this function, see: - https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - Caveat: It doesn't work with multibyte strings unless all of the delimiter - characters are ASCII characters < 0x30. - - See also strsep(). */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strtok_r -# define strtok_r rpl_strtok_r -# endif -_GL_FUNCDECL_RPL (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr) - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr)); -# else -# if 0 || defined GNULIB_POSIXCHECK -# undef strtok_r -# endif -# if ! 1 -_GL_FUNCDECL_SYS (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr) - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (strtok_r, char *, - (char *restrict s, char const *restrict delim, - char **restrict save_ptr)); -# endif -_GL_CXXALIASWARN (strtok_r); -# if defined GNULIB_POSIXCHECK -_GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " - "strings in multibyte locales - " - "use mbstok_r if you care about internationalization"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strtok_r -# if HAVE_RAW_DECL_STRTOK_R -_GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " - "use gnulib module strtok_r for portability"); -# endif -#endif - - -/* The following functions are not specified by POSIX. They are gnulib - extensions. */ - -#if 0 -/* Return the number of multibyte characters in the character string STRING. - This considers multibyte characters, unlike strlen, which counts bytes. */ -# ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ -# undef mbslen -# endif -# if 0 /* AIX, OSF/1, MirBSD define mbslen already in libc. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbslen rpl_mbslen -# endif -_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); -# else -_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); -# endif -_GL_CXXALIASWARN (mbslen); -#endif - -#if 0 -/* Return the number of multibyte characters in the character string starting - at STRING and ending at STRING + LEN. */ -_GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1)); -#endif - -#if 0 -/* Locate the first single-byte character C in the character string STRING, - and return a pointer to it. Return NULL if C is not found in STRING. - Unlike strchr(), this function works correctly in multibyte locales with - encodings such as GB18030. */ -# if defined __hpux -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbschr rpl_mbschr /* avoid collision with HP-UX function */ -# endif -_GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); -# else -_GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); -# endif -_GL_CXXALIASWARN (mbschr); -#endif - -#if 0 -/* Locate the last single-byte character C in the character string STRING, - and return a pointer to it. Return NULL if C is not found in STRING. - Unlike strrchr(), this function works correctly in multibyte locales with - encodings such as GB18030. */ -# if defined __hpux || defined __INTERIX -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbsrchr rpl_mbsrchr /* avoid collision with system function */ -# endif -_GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); -# else -_GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); -# endif -_GL_CXXALIASWARN (mbsrchr); -#endif - -#if 0 -/* Find the first occurrence of the character string NEEDLE in the character - string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. - Unlike strstr(), this function works correctly in multibyte locales with - encodings different from UTF-8. */ -_GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Compare the character strings S1 and S2, ignoring case, returning less than, - equal to or greater than zero if S1 is lexicographically less than, equal to - or greater than S2. - Note: This function may, in multibyte locales, return 0 for strings of - different lengths! - Unlike strcasecmp(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Compare the initial segment of the character string S1 consisting of at most - N characters with the initial segment of the character string S2 consisting - of at most N characters, ignoring case, returning less than, equal to or - greater than zero if the initial segment of S1 is lexicographically less - than, equal to or greater than the initial segment of S2. - Note: This function may, in multibyte locales, return 0 for initial segments - of different lengths! - Unlike strncasecmp(), this function works correctly in multibyte locales. - But beware that N is not a byte count but a character count! */ -_GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Compare the initial segment of the character string STRING consisting of - at most mbslen (PREFIX) characters with the character string PREFIX, - ignoring case. If the two match, return a pointer to the first byte - after this prefix in STRING. Otherwise, return NULL. - Note: This function may, in multibyte locales, return non-NULL if STRING - is of smaller length than PREFIX! - Unlike strncasecmp(), this function works correctly in multibyte - locales. */ -_GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Find the first occurrence of the character string NEEDLE in the character - string HAYSTACK, using case-insensitive comparison. - Note: This function may, in multibyte locales, return success even if - strlen (haystack) < strlen (needle) ! - Unlike strcasestr(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Find the first occurrence in the character string STRING of any character - in the character string ACCEPT. Return the number of bytes from the - beginning of the string to this occurrence, or to the end of the string - if none exists. - Unlike strcspn(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Find the first occurrence in the character string STRING of any character - in the character string ACCEPT. Return the pointer to it, or NULL if none - exists. - Unlike strpbrk(), this function works correctly in multibyte locales. */ -# if defined __hpux -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ -# endif -_GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); -# else -_GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); -# endif -_GL_CXXALIASWARN (mbspbrk); -#endif - -#if 0 -/* Find the first occurrence in the character string STRING of any character - not in the character string REJECT. Return the number of bytes from the - beginning of the string to this occurrence, or to the end of the string - if none exists. - Unlike strspn(), this function works correctly in multibyte locales. */ -_GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Search the next delimiter (multibyte character listed in the character - string DELIM) starting at the character string *STRINGP. - If one is found, overwrite it with a NUL, and advance *STRINGP to point - to the next multibyte character after it. Otherwise, set *STRINGP to NULL. - If *STRINGP was already NULL, nothing happens. - Return the old value of *STRINGP. - - This is a variant of mbstok_r() that supports empty fields. - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - - See also mbstok_r(). */ -_GL_EXTERN_C char * mbssep (char **stringp, const char *delim) - _GL_ARG_NONNULL ((1, 2)); -#endif - -#if 0 -/* Parse the character string STRING into tokens separated by characters in - the character string DELIM. - If STRING is NULL, the saved pointer in SAVE_PTR is used as - the next starting point. For example: - char s[] = "-abc-=-def"; - char *sp; - x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" - x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL - x = mbstok_r(NULL, "=", &sp); // x = NULL - // s = "abc\0-def\0" - - Caveat: It modifies the original string. - Caveat: These functions cannot be used on constant strings. - Caveat: The identity of the delimiting character is lost. - - See also mbssep(). */ -_GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim, - char **save_ptr) - _GL_ARG_NONNULL ((2, 3)); -#endif - -/* Map any int, typically from errno, into an error message. */ -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strerror -# define strerror rpl_strerror -# endif -_GL_FUNCDECL_RPL (strerror, char *, (int)); -_GL_CXXALIAS_RPL (strerror, char *, (int)); -# else -_GL_CXXALIAS_SYS (strerror, char *, (int)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strerror); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strerror -/* Assume strerror is always declared. */ -_GL_WARN_ON_USE (strerror, "strerror is unportable - " - "use gnulib module strerror to guarantee non-NULL result"); -#endif - -/* Map any int, typically from errno, into an error message. Multithread-safe. - Uses the POSIX declaration, not the glibc declaration. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strerror_r -# define strerror_r rpl_strerror_r -# endif -_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); -# else -# if !1 -_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); -# endif -# if 1 -_GL_CXXALIASWARN (strerror_r); -# endif -#elif defined GNULIB_POSIXCHECK -# undef strerror_r -# if HAVE_RAW_DECL_STRERROR_R -_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " - "use gnulib module strerror_r-posix for portability"); -# endif -#endif - -/* Return the name of the system error code ERRNUM. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef strerrorname_np -# define strerrorname_np rpl_strerrorname_np -# endif -_GL_FUNCDECL_RPL (strerrorname_np, const char *, (int errnum)); -_GL_CXXALIAS_RPL (strerrorname_np, const char *, (int errnum)); -# else -# if !1 -_GL_FUNCDECL_SYS (strerrorname_np, const char *, (int errnum)); -# endif -_GL_CXXALIAS_SYS (strerrorname_np, const char *, (int errnum)); -# endif -_GL_CXXALIASWARN (strerrorname_np); -#elif defined GNULIB_POSIXCHECK -# undef strerrorname_np -# if HAVE_RAW_DECL_STRERRORNAME_NP -_GL_WARN_ON_USE (strerrorname_np, "strerrorname_np is unportable - " - "use gnulib module strerrorname_np for portability"); -# endif -#endif - -/* Return an abbreviation string for the signal number SIG. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (sigabbrev_np, const char *, (int sig)); -# endif -_GL_CXXALIAS_SYS (sigabbrev_np, const char *, (int sig)); -_GL_CXXALIASWARN (sigabbrev_np); -#elif defined GNULIB_POSIXCHECK -# undef sigabbrev_np -# if HAVE_RAW_DECL_SIGABBREV_NP -_GL_WARN_ON_USE (sigabbrev_np, "sigabbrev_np is unportable - " - "use gnulib module sigabbrev_np for portability"); -# endif -#endif - -/* Return an English description string for the signal number SIG. */ -#if 0 -# if ! 1 -_GL_FUNCDECL_SYS (sigdescr_np, const char *, (int sig)); -# endif -_GL_CXXALIAS_SYS (sigdescr_np, const char *, (int sig)); -_GL_CXXALIASWARN (sigdescr_np); -#elif defined GNULIB_POSIXCHECK -# undef sigdescr_np -# if HAVE_RAW_DECL_SIGDESCR_NP -_GL_WARN_ON_USE (sigdescr_np, "sigdescr_np is unportable - " - "use gnulib module sigdescr_np for portability"); -# endif -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strsignal rpl_strsignal -# endif -_GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); -_GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); -# endif -/* Need to cast, because on Cygwin 1.5.x systems, the return type is - 'const char *'. */ -_GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); -# endif -_GL_CXXALIASWARN (strsignal); -#elif defined GNULIB_POSIXCHECK -# undef strsignal -# if HAVE_RAW_DECL_STRSIGNAL -_GL_WARN_ON_USE (strsignal, "strsignal is unportable - " - "use gnulib module strsignal for portability"); -# endif -#endif - -#if 0 -# if !1 -_GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) - _GL_ATTRIBUTE_PURE - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); -_GL_CXXALIASWARN (strverscmp); -#elif defined GNULIB_POSIXCHECK -# undef strverscmp -# if HAVE_RAW_DECL_STRVERSCMP -_GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " - "use gnulib module strverscmp for portability"); -# endif -#endif - - -#endif /* _GL_STRING_H */ -#endif /* _GL_STRING_H */ -#endif diff --git a/jni/parted/libiconv/srclib/sys-limits.h b/jni/parted/libiconv/srclib/sys-limits.h deleted file mode 100755 index d154f0b..0000000 --- a/jni/parted/libiconv/srclib/sys-limits.h +++ /dev/null @@ -1,42 +0,0 @@ -/* System call limits - - Copyright 2018-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_SYS_LIMITS_H -#define _GL_SYS_LIMITS_H - -#include - -/* Maximum number of bytes to read or write in a single system call. - This can be useful for system calls like sendfile on GNU/Linux, - which do not handle more than MAX_RW_COUNT bytes correctly. - The Linux kernel MAX_RW_COUNT is at least INT_MAX >> 20 << 20, - where the 20 comes from the Hexagon port with 1 MiB pages; use that - as an approximation, as the exact value may not be available to us. - - Using this also works around a serious Linux bug before 2.6.16; see - . - - Using this also works around a Tru64 5.1 bug, where attempting - to read INT_MAX bytes fails with errno == EINVAL. See - . - - Using this is likely to work around similar bugs in other operating - systems. */ - -enum { SYS_BUFSIZE_MAX = INT_MAX >> 20 << 20 }; - -#endif diff --git a/jni/parted/libiconv/srclib/sys/stat.h b/jni/parted/libiconv/srclib/sys/stat.h deleted file mode 100755 index aa566a5..0000000 --- a/jni/parted/libiconv/srclib/sys/stat.h +++ /dev/null @@ -1,1435 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Provide a more complete sys/stat.h header file. - Copyright (C) 2005-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ - -/* This file is supposed to be used on platforms where is - incomplete. It is intended to provide definitions and prototypes - needed by an application. Start with what the system provides. */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined __need_system_sys_stat_h -/* Special invocation convention. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_SYS_STAT_H - -/* Get nlink_t. - May also define off_t to a 64-bit type on native Windows. */ -#include - -/* Get struct timespec. */ -#include - -/* The include_next requires a split double-inclusion guard. */ -#include_next - -#ifndef _GL_SYS_STAT_H -#define _GL_SYS_STAT_H - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Before doing "#define mknod rpl_mknod" below, we need to include all - headers that may declare mknod(). OS/2 kLIBC declares mknod() in - , not in . */ -#ifdef __KLIBC__ -# include -#endif - -/* Before doing "#define mkdir rpl_mkdir" below, we need to include all - headers that may declare mkdir(). Native Windows platforms declare mkdir - in and/or , not in . */ -#if defined _WIN32 && ! defined __CYGWIN__ -# include /* mingw32, mingw64 */ -# include /* mingw64, MSVC 9 */ -#endif - -/* Native Windows platforms declare umask() in . */ -#if 0 && (defined _WIN32 && ! defined __CYGWIN__) -# include -#endif - -/* Large File Support on native Windows. */ -#if 0 -# define stat _stati64 -#endif - -/* Optionally, override 'struct stat' on native Windows. */ -#if 0 - -# undef stat -# if 1 -# define stat rpl_stat -# else - /* Provoke a clear link error if stat() is used as a function and - module 'stat' is not in use. */ -# define stat stat_used_without_requesting_gnulib_module_stat -# endif - -# if !GNULIB_defined_struct_stat -struct stat -{ - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - nlink_t st_nlink; -# if 0 - uid_t st_uid; -# else /* uid_t is not defined by default on native Windows. */ - short st_uid; -# endif -# if 0 - gid_t st_gid; -# else /* gid_t is not defined by default on native Windows. */ - short st_gid; -# endif - dev_t st_rdev; - off_t st_size; -# if 0 - blksize_t st_blksize; - blkcnt_t st_blocks; -# endif - -# if 0 - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; -# else - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -# endif -}; -# if 0 -# define st_atime st_atim.tv_sec -# define st_mtime st_mtim.tv_sec -# define st_ctime st_ctim.tv_sec - /* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_STAT_TIMESPEC 1 -# endif -# define GNULIB_defined_struct_stat 1 -# endif - -/* Other possible values of st_mode. */ -# if 0 -# define _S_IFBLK 0x6000 -# endif -# if 0 -# define _S_IFLNK 0xA000 -# endif -# if 0 -# define _S_IFSOCK 0xC000 -# endif - -#endif - -#ifndef S_IFIFO -# ifdef _S_IFIFO -# define S_IFIFO _S_IFIFO -# endif -#endif - -#ifndef S_IFMT -# define S_IFMT 0170000 -#endif - -#if STAT_MACROS_BROKEN -# undef S_ISBLK -# undef S_ISCHR -# undef S_ISDIR -# undef S_ISFIFO -# undef S_ISLNK -# undef S_ISNAM -# undef S_ISMPB -# undef S_ISMPC -# undef S_ISNWK -# undef S_ISREG -# undef S_ISSOCK -#endif - -#ifndef S_ISBLK -# ifdef S_IFBLK -# define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -# else -# define S_ISBLK(m) 0 -# endif -#endif - -#ifndef S_ISCHR -# ifdef S_IFCHR -# define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -# else -# define S_ISCHR(m) 0 -# endif -#endif - -#ifndef S_ISDIR -# ifdef S_IFDIR -# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -# else -# define S_ISDIR(m) 0 -# endif -#endif - -#ifndef S_ISDOOR /* Solaris 2.5 and up */ -# define S_ISDOOR(m) 0 -#endif - -#ifndef S_ISFIFO -# ifdef S_IFIFO -# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -# else -# define S_ISFIFO(m) 0 -# endif -#endif - -#ifndef S_ISLNK -# ifdef S_IFLNK -# define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) -# else -# define S_ISLNK(m) 0 -# endif -#endif - -#ifndef S_ISMPB /* V7 */ -# ifdef S_IFMPB -# define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) -# define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) -# else -# define S_ISMPB(m) 0 -# define S_ISMPC(m) 0 -# endif -#endif - -#ifndef S_ISMPX /* AIX */ -# define S_ISMPX(m) 0 -#endif - -#ifndef S_ISNAM /* Xenix */ -# ifdef S_IFNAM -# define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) -# else -# define S_ISNAM(m) 0 -# endif -#endif - -#ifndef S_ISNWK /* HP/UX */ -# ifdef S_IFNWK -# define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) -# else -# define S_ISNWK(m) 0 -# endif -#endif - -#ifndef S_ISPORT /* Solaris 10 and up */ -# define S_ISPORT(m) 0 -#endif - -#ifndef S_ISREG -# ifdef S_IFREG -# define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) -# else -# define S_ISREG(m) 0 -# endif -#endif - -#ifndef S_ISSOCK -# ifdef S_IFSOCK -# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) -# else -# define S_ISSOCK(m) 0 -# endif -#endif - - -#ifndef S_TYPEISMQ -# define S_TYPEISMQ(p) 0 -#endif - -#ifndef S_TYPEISTMO -# define S_TYPEISTMO(p) 0 -#endif - - -#ifndef S_TYPEISSEM -# ifdef S_INSEM -# define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) -# else -# define S_TYPEISSEM(p) 0 -# endif -#endif - -#ifndef S_TYPEISSHM -# ifdef S_INSHD -# define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) -# else -# define S_TYPEISSHM(p) 0 -# endif -#endif - -/* high performance ("contiguous data") */ -#ifndef S_ISCTG -# define S_ISCTG(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with data */ -#ifndef S_ISOFD -# define S_ISOFD(p) 0 -#endif - -/* Cray DMF (data migration facility): off line, with no data */ -#ifndef S_ISOFL -# define S_ISOFL(p) 0 -#endif - -/* 4.4BSD whiteout */ -#ifndef S_ISWHT -# define S_ISWHT(m) 0 -#endif - -/* If any of the following are undefined, - define them to their de facto standard values. */ -#if !S_ISUID -# define S_ISUID 04000 -#endif -#if !S_ISGID -# define S_ISGID 02000 -#endif - -/* S_ISVTX is a common extension to POSIX. */ -#ifndef S_ISVTX -# define S_ISVTX 01000 -#endif - -#if !S_IRUSR && S_IREAD -# define S_IRUSR S_IREAD -#endif -#if !S_IRUSR -# define S_IRUSR 00400 -#endif -#if !S_IRGRP -# define S_IRGRP (S_IRUSR >> 3) -#endif -#if !S_IROTH -# define S_IROTH (S_IRUSR >> 6) -#endif - -#if !S_IWUSR && S_IWRITE -# define S_IWUSR S_IWRITE -#endif -#if !S_IWUSR -# define S_IWUSR 00200 -#endif -#if !S_IWGRP -# define S_IWGRP (S_IWUSR >> 3) -#endif -#if !S_IWOTH -# define S_IWOTH (S_IWUSR >> 6) -#endif - -#if !S_IXUSR && S_IEXEC -# define S_IXUSR S_IEXEC -#endif -#if !S_IXUSR -# define S_IXUSR 00100 -#endif -#if !S_IXGRP -# define S_IXGRP (S_IXUSR >> 3) -#endif -#if !S_IXOTH -# define S_IXOTH (S_IXUSR >> 6) -#endif - -#if !S_IRWXU -# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) -#endif -#if !S_IRWXG -# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) -#endif -#if !S_IRWXO -# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) -#endif - -/* Although S_IXUGO and S_IRWXUGO are not specified by POSIX and are - not implemented in GNU/Linux, some Gnulib-using apps use the macros. */ -#if !S_IXUGO -# define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) -#endif -#ifndef S_IRWXUGO -# define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) -#endif - -/* Macros for futimens and utimensat. */ -#ifndef UTIME_NOW -# define UTIME_NOW (-1) -# define UTIME_OMIT (-2) -#endif - - -#if 1 -/* On native Windows, map 'chmod' to '_chmod', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::chmod always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chmod -# define chmod _chmod -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (chmod, int, (const char *filename, mode_t mode)); -# else -_GL_CXXALIAS_SYS (chmod, int, (const char *filename, mode_t mode)); -# endif -_GL_CXXALIASWARN (chmod); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fchmodat -# define fchmodat rpl_fchmodat -# endif -_GL_FUNCDECL_RPL (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (fchmodat, int, - (int fd, char const *file, mode_t mode, int flag)); -# endif -_GL_CXXALIASWARN (fchmodat); -#elif defined GNULIB_POSIXCHECK -# undef fchmodat -# if HAVE_RAW_DECL_FCHMODAT -_GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fstat -# define fstat rpl_fstat -# endif -_GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); -# else -_GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (fstat); -# endif -#elif 0 -# undef fstat -# define fstat fstat_used_without_requesting_gnulib_module_fstat -#elif 0 -/* Above, we define stat to _stati64. */ -# define fstat _fstati64 -#elif defined GNULIB_POSIXCHECK -# undef fstat -# if HAVE_RAW_DECL_FSTAT -_GL_WARN_ON_USE (fstat, "fstat has portability problems - " - "use gnulib module fstat for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fstatat -# define fstatat rpl_fstatat -# endif -_GL_FUNCDECL_RPL (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags) - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags)); -# else -# if !1 -_GL_FUNCDECL_SYS (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags) - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (fstatat, int, - (int fd, char const *restrict name, struct stat *restrict st, - int flags)); -# endif -_GL_CXXALIASWARN (fstatat); -#elif 0 -# undef fstatat -# define fstatat fstatat_used_without_requesting_gnulib_module_fstatat -#elif defined GNULIB_POSIXCHECK -# undef fstatat -# if HAVE_RAW_DECL_FSTATAT -_GL_WARN_ON_USE (fstatat, "fstatat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if 0 -/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens - implementation relies on futimesat, which on Solaris 10 makes an invocation - to futimens that is meant to invoke the libc's futimens(), not gnulib's - futimens(). */ -# if 0 || (!1 && defined __sun) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef futimens -# define futimens rpl_futimens -# endif -_GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); -_GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); -# else -# if !1 -_GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); -# endif -_GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); -# endif -# if 1 -_GL_CXXALIASWARN (futimens); -# endif -#elif defined GNULIB_POSIXCHECK -# undef futimens -# if HAVE_RAW_DECL_FUTIMENS -_GL_WARN_ON_USE (futimens, "futimens is not portable - " - "use gnulib module futimens for portability"); -# endif -#endif - - -#if 0 -# if !1 -_GL_FUNCDECL_SYS (getumask, mode_t, (void)); -# endif -_GL_CXXALIAS_SYS (getumask, mode_t, (void)); -# if 1 -_GL_CXXALIASWARN (getumask); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getumask -# if HAVE_RAW_DECL_GETUMASK -_GL_WARN_ON_USE (getumask, "getumask is not portable - " - "use gnulib module getumask for portability"); -# endif -#endif - - -#if 0 -/* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME - denotes a symbolic link. */ -# if !1 || defined __hpux -_GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); -_GL_CXXALIASWARN (lchmod); -#elif defined GNULIB_POSIXCHECK -# undef lchmod -# if HAVE_RAW_DECL_LCHMOD -_GL_WARN_ON_USE (lchmod, "lchmod is unportable - " - "use gnulib module lchmod for portability"); -# endif -#endif - - -#if 0 -# if ! 1 -/* mingw does not support symlinks, therefore it does not have lstat. But - without links, stat does just fine. */ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define lstat stat -# endif -_GL_CXXALIAS_RPL_1 (lstat, stat, int, - (const char *restrict name, struct stat *restrict buf)); -# elif 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lstat -# define lstat rpl_lstat -# endif -_GL_FUNCDECL_RPL (lstat, int, - (const char *restrict name, struct stat *restrict buf) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (lstat, int, - (const char *restrict name, struct stat *restrict buf)); -# else -_GL_CXXALIAS_SYS (lstat, int, - (const char *restrict name, struct stat *restrict buf)); -# endif -# if 1 -_GL_CXXALIASWARN (lstat); -# endif -#elif 0 -# undef lstat -# define lstat lstat_used_without_requesting_gnulib_module_lstat -#elif defined GNULIB_POSIXCHECK -# undef lstat -# if HAVE_RAW_DECL_LSTAT -_GL_WARN_ON_USE (lstat, "lstat is unportable - " - "use gnulib module lstat for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -/* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. - Additionally, it declares _mkdir (and depending on compile flags, an - alias mkdir), only in the nonstandard includes and , - which are included above. */ -# if !GNULIB_defined_rpl_mkdir -static int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} -# define GNULIB_defined_rpl_mkdir 1 -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# else -_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkdir); -#elif defined GNULIB_POSIXCHECK -# undef mkdir -# if HAVE_RAW_DECL_MKDIR -_GL_WARN_ON_USE (mkdir, "mkdir does not always support two parameters - " - "use gnulib module mkdir for portability"); -# endif -#elif 1 -/* On native Windows, map 'mkdir' to '_mkdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::mkdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !GNULIB_defined_rpl_mkdir -static int -rpl_mkdir (char const *name, mode_t mode) -{ - return _mkdir (name); -} -# define GNULIB_defined_rpl_mkdir 1 -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkdir -# define mkdir rpl_mkdir -# endif -_GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); -# else -_GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkdir); -#endif - - -#if 0 -# if !1 -_GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); -_GL_CXXALIASWARN (mkdirat); -#elif defined GNULIB_POSIXCHECK -# undef mkdirat -# if HAVE_RAW_DECL_MKDIRAT -_GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " - "use gnulib module openat for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkfifo -# define mkfifo rpl_mkfifo -# endif -_GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); -# else -# if !1 -_GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkfifo); -#elif defined GNULIB_POSIXCHECK -# undef mkfifo -# if HAVE_RAW_DECL_MKFIFO -_GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " - "use gnulib module mkfifo for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mkfifoat -# define mkfifoat rpl_mkfifoat -# endif -_GL_FUNCDECL_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mkfifoat, int, (int fd, char const *file, mode_t mode)); -# else -# if !1 -_GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); -# endif -_GL_CXXALIASWARN (mkfifoat); -#elif defined GNULIB_POSIXCHECK -# undef mkfifoat -# if HAVE_RAW_DECL_MKFIFOAT -_GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " - "use gnulib module mkfifoat for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mknod -# define mknod rpl_mknod -# endif -_GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); -# else -# if !1 -_GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ -_GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); -# endif -_GL_CXXALIASWARN (mknod); -#elif defined GNULIB_POSIXCHECK -# undef mknod -# if HAVE_RAW_DECL_MKNOD -_GL_WARN_ON_USE (mknod, "mknod is not portable - " - "use gnulib module mknod for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mknodat -# define mknodat rpl_mknodat -# endif -_GL_FUNCDECL_RPL (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev)); -# else -# if !1 -_GL_FUNCDECL_SYS (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mknodat, int, - (int fd, char const *file, mode_t mode, dev_t dev)); -# endif -_GL_CXXALIASWARN (mknodat); -#elif defined GNULIB_POSIXCHECK -# undef mknodat -# if HAVE_RAW_DECL_MKNODAT -_GL_WARN_ON_USE (mknodat, "mknodat is not portable - " - "use gnulib module mkfifoat for portability"); -# endif -#endif - - -#if 1 -# if 0 -# if !0 - /* We can't use the object-like #define stat rpl_stat, because of - struct stat. This means that rpl_stat will not be used if the user - does (stat)(a,b). Oh well. */ -# if defined _AIX && defined stat && defined _LARGE_FILES - /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, - so we have to replace stat64() instead of stat(). */ -# undef stat64 -# define stat64(name, st) rpl_stat (name, st) -# elif 0 - /* Above, we define stat to _stati64. */ -# if defined __MINGW32__ && defined _stati64 -# ifndef _USE_32BIT_TIME_T - /* The system headers define _stati64 to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# elif defined _MSC_VER && defined _stati64 -# ifdef _USE_32BIT_TIME_T - /* The system headers define _stati64 to _stat32i64. */ -# undef _stat32i64 -# define _stat32i64(name, st) rpl_stat (name, st) -# else - /* The system headers define _stati64 to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# else -# undef _stati64 -# define _stati64(name, st) rpl_stat (name, st) -# endif -# elif defined __MINGW32__ && defined stat -# ifdef _USE_32BIT_TIME_T - /* The system headers define stat to _stat32i64. */ -# undef _stat32i64 -# define _stat32i64(name, st) rpl_stat (name, st) -# else - /* The system headers define stat to _stat64. */ -# undef _stat64 -# define _stat64(name, st) rpl_stat (name, st) -# endif -# elif defined _MSC_VER && defined stat -# ifdef _USE_32BIT_TIME_T - /* The system headers define stat to _stat32. */ -# undef _stat32 -# define _stat32(name, st) rpl_stat (name, st) -# else - /* The system headers define stat to _stat64i32. */ -# undef _stat64i32 -# define _stat64i32(name, st) rpl_stat (name, st) -# endif -# else /* !(_AIX || __MINGW32__ || _MSC_VER) */ -# undef stat -# define stat(name, st) rpl_stat (name, st) -# endif /* !_LARGE_FILES */ -# endif /* !0 */ -_GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf) - _GL_ARG_NONNULL ((1, 2)); -# endif -#elif 0 -/* see above: - #define stat stat_used_without_requesting_gnulib_module_stat - */ -#elif defined GNULIB_POSIXCHECK -# undef stat -# if HAVE_RAW_DECL_STAT -_GL_WARN_ON_USE (stat, "stat is unportable - " - "use gnulib module stat for portability"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'umask' to '_umask', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::umask always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef umask -# define umask _umask -# endif -/* Need to cast, because in mingw the last argument is 'int mode'. */ -_GL_CXXALIAS_MDA_CAST (umask, mode_t, (mode_t mask)); -# else -_GL_CXXALIAS_SYS (umask, mode_t, (mode_t mask)); -# endif -_GL_CXXALIASWARN (umask); -#endif - - -#if 0 -/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat - implementation relies on futimesat, which on Solaris 10 makes an invocation - to utimensat that is meant to invoke the libc's utimensat(), not gnulib's - utimensat(). */ -# if 0 || (!1 && defined __sun) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef utimensat -# define utimensat rpl_utimensat -# endif -_GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, - struct timespec const times[2], int flag)); -# endif -# if 1 -_GL_CXXALIASWARN (utimensat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef utimensat -# if HAVE_RAW_DECL_UTIMENSAT -_GL_WARN_ON_USE (utimensat, "utimensat is not portable - " - "use gnulib module utimensat for portability"); -# endif -#endif - - -#endif /* _GL_SYS_STAT_H */ -#endif /* _GL_SYS_STAT_H */ -#endif diff --git a/jni/parted/libiconv/srclib/sys/types.h b/jni/parted/libiconv/srclib/sys/types.h deleted file mode 100755 index d720b9d..0000000 --- a/jni/parted/libiconv/srclib/sys/types.h +++ /dev/null @@ -1,107 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Provide a more complete sys/types.h. - - Copyright (C) 2011-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if defined _WIN32 && !defined __CYGWIN__ \ - && (defined __need_off_t || defined __need___off64_t \ - || defined __need_ssize_t || defined __need_time_t) - -/* Special invocation convention inside mingw header files. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_SYS_TYPES_H - -/* The include_next requires a split double-inclusion guard. */ -# define _GL_INCLUDING_SYS_TYPES_H -#include_next -# undef _GL_INCLUDING_SYS_TYPES_H - -#ifndef _GL_SYS_TYPES_H -#define _GL_SYS_TYPES_H - -/* Override off_t if Large File Support is requested on native Windows. */ -#if 0 -/* Same as int64_t in . */ -# if defined _MSC_VER -# define off_t __int64 -# else -# define off_t long long int -# endif -/* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_64_BIT_OFF_T 1 -#endif - -/* Override dev_t and ino_t if distinguishable inodes support is requested - on native Windows. */ -#if 0 - -# if 0 == 2 -/* Experimental, not useful in Windows 10. */ - -/* Define dev_t to a 64-bit type. */ -# if !defined GNULIB_defined_dev_t -typedef unsigned long long int rpl_dev_t; -# undef dev_t -# define dev_t rpl_dev_t -# define GNULIB_defined_dev_t 1 -# endif - -/* Define ino_t to a 128-bit type. */ -# if !defined GNULIB_defined_ino_t -/* MSVC does not have a 128-bit integer type. - GCC has a 128-bit integer type __int128, but only on 64-bit targets. */ -typedef struct { unsigned long long int _gl_ino[2]; } rpl_ino_t; -# undef ino_t -# define ino_t rpl_ino_t -# define GNULIB_defined_ino_t 1 -# endif - -# else /* 0 == 1 */ - -/* Define ino_t to a 64-bit type. */ -# if !defined GNULIB_defined_ino_t -typedef unsigned long long int rpl_ino_t; -# undef ino_t -# define ino_t rpl_ino_t -# define GNULIB_defined_ino_t 1 -# endif - -# endif - -/* Indicator, for gnulib internal purposes. */ -# define _GL_WINDOWS_STAT_INODES 0 - -#endif - -/* MSVC 9 defines size_t in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ -# include -#endif - -#endif /* _GL_SYS_TYPES_H */ -#endif /* _GL_SYS_TYPES_H */ -#endif /* __need_XXX */ diff --git a/jni/parted/libiconv/srclib/time.h b/jni/parted/libiconv/srclib/time.h deleted file mode 100755 index 0aaffb5..0000000 --- a/jni/parted/libiconv/srclib/time.h +++ /dev/null @@ -1,959 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A more-standard . - - Copyright (C) 2007-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -/* Don't get in the way of glibc when it includes time.h merely to - declare a few standard symbols, rather than to declare all the - symbols. (However, skip this for MinGW as it treats __need_time_t - incompatibly.) Also, Solaris 8 eventually includes itself - recursively; if that is happening, just include the system - without adding our own declarations. */ -#if (((defined __need_time_t || defined __need_clock_t \ - || defined __need_timespec) \ - && !defined __MINGW32__) \ - || defined _GL_TIME_H) - -# include_next - -#else - -# define _GL_TIME_H - -/* mingw's provides the functions asctime_r, ctime_r, gmtime_r, - localtime_r only if or has been included before. */ -# if defined __MINGW32__ -# include -# endif - -# include_next - -/* NetBSD 5.0 mis-defines NULL. */ -# include - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - -/* Some systems don't define struct timespec (e.g., AIX 4.1). - Or they define it with the wrong member names or define it in - (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, - but the pthreads-win32 library defines it in . */ -# if ! 1 -# if 0 -# include -# elif 0 -# include -# elif 0 -# include -# else - -# ifdef __cplusplus -extern "C" { -# endif - -# if !GNULIB_defined_struct_timespec -# undef timespec -# define timespec rpl_timespec -struct timespec -{ - time_t tv_sec; - long int tv_nsec; -}; -# define GNULIB_defined_struct_timespec 1 -# endif - -# ifdef __cplusplus -} -# endif - -# endif -# endif - -# if !GNULIB_defined_struct_time_t_must_be_integral -/* https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html - requires time_t to be an integer type, even though C99 permits floating - point. We don't know of any implementation that uses floating - point, and it is much easier to write code that doesn't have to - worry about that corner case, so we force the issue. */ -struct __time_t_must_be_integral { - unsigned int __floating_time_t_unsupported : (time_t) 1; -}; -# define GNULIB_defined_struct_time_t_must_be_integral 1 -# endif - -/* Define TIME_UTC, a positive integer constant used for timespec_get(). */ -# if ! 1 -# if !GNULIB_defined_TIME_UTC -# define TIME_UTC 1 -# define GNULIB_defined_TIME_UTC 1 -# endif -# endif - -/* Set *TS to the current time, and return BASE. - Upon failure, return 0. */ -# if 0 -# if ! 1 -_GL_FUNCDECL_SYS (timespec_get, int, (struct timespec *ts, int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timespec_get, int, (struct timespec *ts, int base)); -_GL_CXXALIASWARN (timespec_get); -# endif - -/* Set *TS to the current time resolution, and return BASE. - Upon failure, return 0. */ -# if 0 -# if ! 1 -_GL_FUNCDECL_SYS (timespec_getres, int, (struct timespec *ts, int base) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timespec_getres, int, (struct timespec *ts, int base)); -_GL_CXXALIASWARN (timespec_getres); -# endif - -/* Sleep for at least RQTP seconds unless interrupted, If interrupted, - return -1 and store the remaining time into RMTP. See - . */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define nanosleep rpl_nanosleep -# endif -_GL_FUNCDECL_RPL (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (nanosleep, int, - (struct timespec const *__rqtp, struct timespec *__rmtp)); -# endif -_GL_CXXALIASWARN (nanosleep); -# endif - -/* Initialize time conversion information. */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset rpl_tzset -# endif -_GL_FUNCDECL_RPL (tzset, void, (void)); -_GL_CXXALIAS_RPL (tzset, void, (void)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset _tzset -# endif -_GL_CXXALIAS_MDA (tzset, void, (void)); -# else -_GL_CXXALIAS_SYS (tzset, void, (void)); -# endif -_GL_CXXALIASWARN (tzset); -# elif 1 -/* On native Windows, map 'tzset' to '_tzset', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::tzset always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef tzset -# define tzset _tzset -# endif -_GL_CXXALIAS_MDA (tzset, void, (void)); -# else -_GL_CXXALIAS_SYS (tzset, void, (void)); -# endif -_GL_CXXALIASWARN (tzset); -# endif - -/* Return the 'time_t' representation of TP and normalize TP. */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define mktime rpl_mktime -# endif -_GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); -# else -_GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mktime); -# endif -# endif - -/* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localtime_r -# define localtime_r rpl_localtime_r -# endif -_GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# endif -# if 1 -_GL_CXXALIASWARN (localtime_r); -# endif -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gmtime_r -# define gmtime_r rpl_gmtime_r -# endif -_GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, - struct tm *restrict __result)); -# endif -# if 1 -_GL_CXXALIASWARN (gmtime_r); -# endif -# endif - -/* Convert TIMER to RESULT, assuming local time and UTC respectively. See - and - . */ -# if 0 || 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef localtime -# define localtime rpl_localtime -# endif -_GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); -# else -_GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (localtime); -# endif -# endif - -# if 0 || 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gmtime -# define gmtime rpl_gmtime -# endif -_GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer)); -# else -_GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer)); -# endif -_GL_CXXALIASWARN (gmtime); -# endif - -/* Parse BUF as a timestamp, assuming FORMAT specifies its layout, and store - the resulting broken-down time into TM. See - . */ -# if 0 -# if ! 1 -_GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, - char const *restrict __format, - struct tm *restrict __tm) - _GL_ARG_NONNULL ((1, 2, 3))); -# endif -_GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, - char const *restrict __format, - struct tm *restrict __tm)); -_GL_CXXALIASWARN (strptime); -# endif - -/* Convert *TP to a date and time string. See - . */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define ctime rpl_ctime -# endif -_GL_FUNCDECL_RPL (ctime, char *, (time_t const *__tp) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (ctime, char *, (time_t const *__tp)); -# else -_GL_CXXALIAS_SYS (ctime, char *, (time_t const *__tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (ctime); -# endif -# endif - -/* Convert *TP to a date and time string. See - . */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define strftime rpl_strftime -# endif -_GL_FUNCDECL_RPL (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp) - _GL_ARG_NONNULL ((1, 3, 4))); -_GL_CXXALIAS_RPL (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp)); -# else -_GL_CXXALIAS_SYS (strftime, size_t, - (char *restrict __buf, size_t __bufsize, - const char *restrict __fmt, const struct tm *restrict __tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (strftime); -# endif -# endif - -# if defined _GNU_SOURCE && 0 && ! 0 -/* Functions that use a first-class time zone data type, instead of - relying on an implicit global time zone. - Inspired by NetBSD. */ - -/* Represents a time zone. - (timezone_t) NULL stands for UTC. */ -typedef struct tm_zone *timezone_t; - -/* tzalloc (name) - Returns a time zone object for the given time zone NAME. This object - represents the time zone that other functions would use it the TZ - environment variable was set to NAME. - If NAME is NULL, the result represents the time zone that other functions - would use it the TZ environment variable was unset. - May return NULL if NAME is invalid (this is platform dependent) or - upon memory allocation failure. */ -_GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name)); -_GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name)); - -/* tzfree (tz) - Frees a time zone object. - The argument must have been returned by tzalloc(). */ -_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz)); -_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz)); - -/* localtime_rz (tz, &t, &result) - Converts an absolute time T to a broken-down time RESULT, assuming the - time zone TZ. - This function is like 'localtime_r', but relies on the argument TZ instead - of an implicit global time zone. */ -_GL_FUNCDECL_SYS (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_SYS (localtime_rz, struct tm *, - (timezone_t __tz, time_t const *restrict __timer, - struct tm *restrict __result)); - -/* mktime_z (tz, &tm) - Normalizes the broken-down time TM and converts it to an absolute time, - assuming the time zone TZ. Returns the absolute time. - This function is like 'mktime', but relies on the argument TZ instead - of an implicit global time zone. */ -_GL_FUNCDECL_SYS (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_SYS (mktime_z, time_t, - (timezone_t __tz, struct tm *restrict __tm)); - -/* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z' - in the 'tm_zone' member of 'struct tm') are valid as long as - - the 'struct tm' argument is not destroyed or overwritten, - and - - the 'timezone_t' argument is not freed through tzfree(). */ - -# endif - -/* Convert TM to a time_t value, assuming UTC. */ -# if 0 -# if GNULIB_PORTCHECK -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef timegm -# define timegm rpl_timegm -# endif -_GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); -# else -# if ! 1 -_GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); -# endif -_GL_CXXALIASWARN (timegm); -# endif - -/* Encourage applications to avoid unsafe functions that can overrun - buffers when given outlandish struct tm values. Portable - applications should use strftime (or even sprintf) instead. */ -# if defined GNULIB_POSIXCHECK -# undef asctime -_GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# if defined GNULIB_POSIXCHECK -# undef asctime_r -_GL_WARN_ON_USE (asctime_r, "asctime_r can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# if defined GNULIB_POSIXCHECK -# undef ctime -_GL_WARN_ON_USE (ctime, "ctime can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif -# if defined GNULIB_POSIXCHECK -# undef ctime_r -_GL_WARN_ON_USE (ctime_r, "ctime_r can overrun buffers in some cases - " - "better use strftime (or even sprintf) instead"); -# endif - -#endif diff --git a/jni/parted/libiconv/srclib/unictype/bitmap.h b/jni/parted/libiconv/srclib/unictype/bitmap.h deleted file mode 100755 index 5bd4636..0000000 --- a/jni/parted/libiconv/srclib/unictype/bitmap.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Three-level bitmap lookup. - Copyright (C) 2000-2002, 2005-2007, 2009-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2000-2002. - - This file 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 file 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 program. If not, see . */ - -static inline int bitmap_lookup (const void *table, ucs4_t uc); - -/* These values are currently hardcoded into gen-uni-tables.c, function - output_predicate(). */ -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 - -static inline int -bitmap_lookup (const void *table, ucs4_t uc) -{ - unsigned int index1 = uc >> header_0; - if (index1 < ((const int *) table)[0]) - { - int lookup1 = ((const int *) table)[1 + index1]; - if (lookup1 >= 0) - { - unsigned int index2 = (uc >> header_2) & header_3; - int lookup2 = ((const short *) table)[lookup1 + index2]; - if (lookup2 >= 0) - { - unsigned int index3 = (uc >> 5) & header_4; - unsigned int lookup3 = ((const unsigned int *) table)[lookup2 + index3]; - - return (lookup3 >> (uc & 0x1f)) & 1; - } - } - } - return 0; -} diff --git a/jni/parted/libiconv/srclib/unistd.h b/jni/parted/libiconv/srclib/unistd.h deleted file mode 100755 index e59efd8..0000000 --- a/jni/parted/libiconv/srclib/unistd.h +++ /dev/null @@ -1,2834 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Substitute for and wrapper around . - Copyright (C) 2003-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _GL_UNISTD_H - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if 1 && defined _GL_INCLUDING_UNISTD_H -/* Special invocation convention: - - On Mac OS X 10.3.9 we have a sequence of nested includes - -> -> -> - In this situation, the functions are not yet declared, therefore we cannot - provide the C++ aliases. */ - -#include_next - -#else -/* Normal invocation convention. */ - -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# define _GL_INCLUDING_UNISTD_H -# include_next -# undef _GL_INCLUDING_UNISTD_H -#endif - -/* Get all possible declarations of gethostname(). */ -#if 0 && 0 \ - && !defined _GL_INCLUDING_WINSOCK2_H -# define _GL_INCLUDING_WINSOCK2_H -# include -# undef _GL_INCLUDING_WINSOCK2_H -#endif - -#if !defined _GL_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H -#define _GL_UNISTD_H - -/* NetBSD 5.0 mis-defines NULL. Also get size_t. */ -/* But avoid namespace pollution on glibc systems. */ -#ifndef __GLIBC__ -# include -#endif - -/* mingw doesn't define the SEEK_* or *_FILENO macros in . */ -/* MSVC declares 'unlink' in , not in . We must include - it before we #define unlink rpl_unlink. */ -/* Cygwin 1.7.1 declares symlinkat in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ - || ((0 || defined GNULIB_POSIXCHECK) \ - && (defined _WIN32 && ! defined __CYGWIN__)) \ - || ((0 || defined GNULIB_POSIXCHECK) \ - && defined __CYGWIN__)) \ - && ! defined __GLIBC__ -# include -#endif - -/* Cygwin 1.7.1 and Android 4.3 declare unlinkat in , not in - . */ -/* But avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) \ - && (defined __CYGWIN__ || defined __ANDROID__) \ - && ! defined __GLIBC__ -# include -#endif - -/* mingw fails to declare _exit in . */ -/* mingw, MSVC, BeOS, Haiku declare environ in , not in - . */ -/* Solaris declares getcwd not only in but also in . */ -/* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is - included here. */ -/* But avoid namespace pollution on glibc systems. */ -#if !defined __GLIBC__ && !defined __osf__ -# define __need_system_stdlib_h -# include -# undef __need_system_stdlib_h -#endif - -/* Native Windows platforms declare _chdir, _getcwd, _rmdir in - and/or , not in . - They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(), - _lseek(), _read(), _unlink(), _write() in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include -# include -#endif - -/* Native Windows platforms declare _execl*, _execv* in . */ -#if defined _WIN32 && !defined __CYGWIN__ -# include -#endif - -/* AIX and OSF/1 5.1 declare getdomainname in , not in . - NonStop Kernel declares gethostname in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if ((0 && (defined _AIX || defined __osf__)) \ - || (0 && defined __TANDEM)) \ - && !defined __GLIBC__ -# include -#endif - -/* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in - , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) \ - && ((defined __APPLE__ && defined __MACH__) || defined __sun \ - || defined __ANDROID__) \ - && 0 \ - && !defined __GLIBC__ -# include -#endif - -/* Android 4.3 declares fchownat in , not in . */ -/* But avoid namespace pollution on glibc systems. */ -#if (0 || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \ - && !defined __GLIBC__ -# include -#endif - -/* MSVC defines off_t in . - May also define off_t to a 64-bit type on native Windows. */ -/* Get off_t, ssize_t, mode_t. */ -#include - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Get getopt(), optarg, optind, opterr, optopt. */ -#if 0 && 00 && !defined _GL_SYSTEM_GETOPT -# include -# include -#endif - -#ifndef _GL_INLINE_HEADER_BEGIN - #error "Please include config.h first." -#endif -_GL_INLINE_HEADER_BEGIN -#ifndef _GL_UNISTD_INLINE -# define _GL_UNISTD_INLINE _GL_INLINE -#endif - -/* Hide some function declarations from . */ - -#if 0 && 0 -# if !defined _GL_SYS_SOCKET_H -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef socket -# define socket socket_used_without_including_sys_socket_h -# undef connect -# define connect connect_used_without_including_sys_socket_h -# undef accept -# define accept accept_used_without_including_sys_socket_h -# undef bind -# define bind bind_used_without_including_sys_socket_h -# undef getpeername -# define getpeername getpeername_used_without_including_sys_socket_h -# undef getsockname -# define getsockname getsockname_used_without_including_sys_socket_h -# undef getsockopt -# define getsockopt getsockopt_used_without_including_sys_socket_h -# undef listen -# define listen listen_used_without_including_sys_socket_h -# undef recv -# define recv recv_used_without_including_sys_socket_h -# undef send -# define send send_used_without_including_sys_socket_h -# undef recvfrom -# define recvfrom recvfrom_used_without_including_sys_socket_h -# undef sendto -# define sendto sendto_used_without_including_sys_socket_h -# undef setsockopt -# define setsockopt setsockopt_used_without_including_sys_socket_h -# undef shutdown -# define shutdown shutdown_used_without_including_sys_socket_h -# else - _GL_WARN_ON_USE (socket, - "socket() used without including "); - _GL_WARN_ON_USE (connect, - "connect() used without including "); - _GL_WARN_ON_USE (accept, - "accept() used without including "); - _GL_WARN_ON_USE (bind, - "bind() used without including "); - _GL_WARN_ON_USE (getpeername, - "getpeername() used without including "); - _GL_WARN_ON_USE (getsockname, - "getsockname() used without including "); - _GL_WARN_ON_USE (getsockopt, - "getsockopt() used without including "); - _GL_WARN_ON_USE (listen, - "listen() used without including "); - _GL_WARN_ON_USE (recv, - "recv() used without including "); - _GL_WARN_ON_USE (send, - "send() used without including "); - _GL_WARN_ON_USE (recvfrom, - "recvfrom() used without including "); - _GL_WARN_ON_USE (sendto, - "sendto() used without including "); - _GL_WARN_ON_USE (setsockopt, - "setsockopt() used without including "); - _GL_WARN_ON_USE (shutdown, - "shutdown() used without including "); -# endif -# endif -# if !defined _GL_SYS_SELECT_H -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef select -# define select select_used_without_including_sys_select_h -# else - _GL_WARN_ON_USE (select, - "select() used without including "); -# endif -# endif -#endif - - -/* OS/2 EMX lacks these macros. */ -#ifndef STDIN_FILENO -# define STDIN_FILENO 0 -#endif -#ifndef STDOUT_FILENO -# define STDOUT_FILENO 1 -#endif -#ifndef STDERR_FILENO -# define STDERR_FILENO 2 -#endif - -/* Ensure *_OK macros exist. */ -#ifndef F_OK -# define F_OK 0 -# define X_OK 1 -# define W_OK 2 -# define R_OK 4 -#endif - - -/* Declare overridden functions. */ - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access rpl_access -# endif -_GL_FUNCDECL_RPL (access, int, (const char *file, int mode) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (access, int, (const char *file, int mode)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access _access -# endif -_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); -# else -_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); -# endif -_GL_CXXALIASWARN (access); -#elif defined GNULIB_POSIXCHECK -# undef access -# if HAVE_RAW_DECL_ACCESS -/* The access() function is a security risk. */ -_GL_WARN_ON_USE (access, "access does not always support X_OK - " - "use gnulib module access for portability; " - "also, this function is a security risk - " - "use the gnulib module faccessat instead"); -# endif -#elif 1 -/* On native Windows, map 'access' to '_access', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::access always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef access -# define access _access -# endif -_GL_CXXALIAS_MDA (access, int, (const char *file, int mode)); -# else -_GL_CXXALIAS_SYS (access, int, (const char *file, int mode)); -# endif -_GL_CXXALIASWARN (access); -#endif - - -#if 0 -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chdir -# define chdir _chdir -# endif -_GL_CXXALIAS_MDA (chdir, int, (const char *file)); -# else -_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIASWARN (chdir); -#elif defined GNULIB_POSIXCHECK -# undef chdir -# if HAVE_RAW_DECL_CHDIR -_GL_WARN_ON_USE (chown, "chdir is not always in - " - "use gnulib module chdir for portability"); -# endif -#elif 1 -/* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::chdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef chdir -# define chdir _chdir -# endif -_GL_CXXALIAS_MDA (chdir, int, (const char *file)); -# else -_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIASWARN (chdir); -#endif - - -#if 0 -/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE - to GID (if GID is not -1). Follow symbolic links. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define dup2 rpl_dup2 -# endif -_GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); -_GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup2 -# define dup2 _dup2 -# endif -_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); -# else -_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); -# endif -_GL_CXXALIASWARN (dup2); -#elif defined GNULIB_POSIXCHECK -# undef dup2 -# if HAVE_RAW_DECL_DUP2 -_GL_WARN_ON_USE (dup2, "dup2 is unportable - " - "use gnulib module dup2 for portability"); -# endif -#elif 1 -/* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::dup2 always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef dup2 -# define dup2 _dup2 -# endif -_GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd)); -# else -_GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); -# endif -_GL_CXXALIASWARN (dup2); -#endif - - -#if 0 -/* Copy the file descriptor OLDFD into file descriptor NEWFD, with the - specified flags. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - Close NEWFD first if it is open. - Return newfd if successful, otherwise -1 and errno set. - See the Linux man page at - . */ -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define dup3 rpl_dup3 -# endif -_GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); -_GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); -# else -_GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); -_GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); -# endif -_GL_CXXALIASWARN (dup3); -#elif defined GNULIB_POSIXCHECK -# undef dup3 -# if HAVE_RAW_DECL_DUP3 -_GL_WARN_ON_USE (dup3, "dup3 is unportable - " - "use gnulib module dup3 for portability"); -# endif -#endif - - -#if 1 -# if defined __CYGWIN__ && !defined __i386__ -/* The 'environ' variable is defined in a DLL. Therefore its declaration needs - the '__declspec(dllimport)' attribute, but the system's lacks it. - This leads to a link error on 64-bit Cygwin when the option - -Wl,--disable-auto-import is in use. */ -_GL_EXTERN_C __declspec(dllimport) char **environ; -# endif -# if !1 -/* Set of environment variables and values. An array of strings of the form - "VARIABLE=VALUE", terminated with a NULL. */ -# if defined __APPLE__ && defined __MACH__ -# include -# if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR -# define _GL_USE_CRT_EXTERNS -# endif -# endif -# ifdef _GL_USE_CRT_EXTERNS -# include -# define environ (*_NSGetEnviron ()) -# else -# ifdef __cplusplus -extern "C" { -# endif -extern char **environ; -# ifdef __cplusplus -} -# endif -# endif -# endif -#elif defined GNULIB_POSIXCHECK -# if HAVE_RAW_DECL_ENVIRON -_GL_UNISTD_INLINE char *** -_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " - "use gnulib module environ for portability") -rpl_environ (void) -{ - return &environ; -} -# undef environ -# define environ (*rpl_environ ()) -# endif -#endif - - -#if 0 -/* Like access(), except that it uses the effective user id and group id of - the current process. */ -# if !1 -_GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); -_GL_CXXALIASWARN (euidaccess); -# if defined GNULIB_POSIXCHECK -/* Like access(), this function is a security risk. */ -_GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " - "use the gnulib module faccessat instead"); -# endif -#elif defined GNULIB_POSIXCHECK -# undef euidaccess -# if HAVE_RAW_DECL_EUIDACCESS -_GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " - "use gnulib module euidaccess for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execl -# define execl rpl_execl -# endif -_GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execl); -#elif defined GNULIB_POSIXCHECK -# undef execl -# if HAVE_RAW_DECL_EXECL -_GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - " - "use gnulib module execl for portability"); -# endif -#elif 1 -/* On native Windows, map 'execl' to '_execl', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execl always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execl -# define execl _execl -# endif -_GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execl); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execle -# define execle rpl_execle -# endif -_GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execle); -#elif defined GNULIB_POSIXCHECK -# undef execle -# if HAVE_RAW_DECL_EXECLE -_GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - " - "use gnulib module execle for portability"); -# endif -#elif 1 -/* On native Windows, map 'execle' to '_execle', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execle always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execle -# define execle _execle -# endif -_GL_CXXALIAS_MDA (execle, intptr_t, - (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execle); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execlp -# define execlp rpl_execlp -# endif -_GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execlp); -#elif defined GNULIB_POSIXCHECK -# undef execlp -# if HAVE_RAW_DECL_EXECLP -_GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - " - "use gnulib module execlp for portability"); -# endif -#elif 1 -/* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execlp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execlp -# define execlp _execlp -# endif -_GL_CXXALIAS_MDA (execlp, intptr_t, - (const char *program, const char *arg, ...)); -# else -_GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...)); -# endif -_GL_CXXALIASWARN (execlp); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execv -# define execv rpl_execv -# endif -_GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execv); -#elif defined GNULIB_POSIXCHECK -# undef execv -# if HAVE_RAW_DECL_EXECV -_GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - " - "use gnulib module execv for portability"); -# endif -#elif 1 -/* On native Windows, map 'execv' to '_execv', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execv always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execv -# define execv _execv -# endif -_GL_CXXALIAS_MDA_CAST (execv, intptr_t, - (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execv); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execve -# define execve rpl_execve -# endif -_GL_FUNCDECL_RPL (execve, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execve, int, - (const char *program, char * const *argv, char * const *env)); -# else -_GL_CXXALIAS_SYS (execve, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execve); -#elif defined GNULIB_POSIXCHECK -# undef execve -# if HAVE_RAW_DECL_EXECVE -_GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - " - "use gnulib module execve for portability"); -# endif -#elif 1 -/* On native Windows, map 'execve' to '_execve', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execve always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execve -# define execve _execve -# endif -_GL_CXXALIAS_MDA_CAST (execve, intptr_t, - (const char *program, char * const *argv, - char * const *env)); -# else -_GL_CXXALIAS_SYS (execve, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execve); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvp -# define execvp rpl_execvp -# endif -_GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execvp); -#elif defined GNULIB_POSIXCHECK -# undef execvp -# if HAVE_RAW_DECL_EXECVP -_GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - " - "use gnulib module execvp for portability"); -# endif -#elif 1 -/* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execvp always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvp -# define execvp _execvp -# endif -_GL_CXXALIAS_MDA_CAST (execvp, intptr_t, - (const char *program, char * const *argv)); -# else -_GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv)); -# endif -_GL_CXXALIASWARN (execvp); -#endif - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvpe -# define execvpe rpl_execvpe -# endif -_GL_FUNCDECL_RPL (execvpe, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# else -# if !1 -_GL_FUNCDECL_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# endif -_GL_CXXALIASWARN (execvpe); -#elif defined GNULIB_POSIXCHECK -# undef execvpe -# if HAVE_RAW_DECL_EXECVPE -_GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - " - "use gnulib module execvpe for portability"); -# endif -#elif 1 -/* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have - it. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef execvpe -# define execvpe _execvpe -# endif -_GL_CXXALIAS_MDA_CAST (execvpe, intptr_t, - (const char *program, char * const *argv, - char * const *env)); -# elif 1 -# if !1 -_GL_FUNCDECL_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (execvpe, int, - (const char *program, char * const *argv, char * const *env)); -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 1 -_GL_CXXALIASWARN (execvpe); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef faccessat -# define faccessat rpl_faccessat -# endif -_GL_FUNCDECL_RPL (faccessat, int, - (int fd, char const *name, int mode, int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (faccessat, int, - (int fd, char const *name, int mode, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (faccessat, int, - (int fd, char const *file, int mode, int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (faccessat, int, - (int fd, char const *file, int mode, int flag)); -# endif -_GL_CXXALIASWARN (faccessat); -#elif defined GNULIB_POSIXCHECK -# undef faccessat -# if HAVE_RAW_DECL_FACCESSAT -_GL_WARN_ON_USE (faccessat, "faccessat is not portable - " - "use gnulib module faccessat for portability"); -# endif -#endif - - -#if 0 -/* Change the process' current working directory to the directory on which - the given file descriptor is open. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if ! 1 -_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); - -/* Gnulib internal hooks needed to maintain the fchdir metadata. */ -_GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) - _GL_ARG_NONNULL ((2)); -_GL_EXTERN_C void _gl_unregister_fd (int fd); -_GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); -_GL_EXTERN_C const char *_gl_directory_name (int fd); - -# else -# if !1 -_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); -# endif -# endif -_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); -_GL_CXXALIASWARN (fchdir); -#elif defined GNULIB_POSIXCHECK -# undef fchdir -# if HAVE_RAW_DECL_FCHDIR -_GL_WARN_ON_USE (fchdir, "fchdir is unportable - " - "use gnulib module fchdir for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef fchownat -# define fchownat rpl_fchownat -# endif -_GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, - uid_t owner, gid_t group, int flag)); -# endif -_GL_CXXALIASWARN (fchownat); -#elif defined GNULIB_POSIXCHECK -# undef fchownat -# if HAVE_RAW_DECL_FCHOWNAT -_GL_WARN_ON_USE (fchownat, "fchownat is not portable - " - "use gnulib module fchownat for portability"); -# endif -#endif - - -#if 0 -/* Synchronize changes to a file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2008 specification - . */ -# if !1 || !1 -_GL_FUNCDECL_SYS (fdatasync, int, (int fd)); -# endif -_GL_CXXALIAS_SYS (fdatasync, int, (int fd)); -_GL_CXXALIASWARN (fdatasync); -#elif defined GNULIB_POSIXCHECK -# undef fdatasync -# if HAVE_RAW_DECL_FDATASYNC -_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " - "use gnulib module fdatasync for portability"); -# endif -#endif - - -#if 0 -/* Synchronize changes, including metadata, to a file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2008 specification - . */ -# if !1 -_GL_FUNCDECL_SYS (fsync, int, (int fd)); -# endif -_GL_CXXALIAS_SYS (fsync, int, (int fd)); -_GL_CXXALIASWARN (fsync); -#elif defined GNULIB_POSIXCHECK -# undef fsync -# if HAVE_RAW_DECL_FSYNC -_GL_WARN_ON_USE (fsync, "fsync is unportable - " - "use gnulib module fsync for portability"); -# endif -#endif - - -#if 0 -/* Change the size of the file to which FD is opened to become equal to LENGTH. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ftruncate -# define ftruncate rpl_ftruncate -# endif -_GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); -_GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); -# else -# if !1 -_GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); -# endif -_GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); -# endif -_GL_CXXALIASWARN (ftruncate); -#elif defined GNULIB_POSIXCHECK -# undef ftruncate -# if HAVE_RAW_DECL_FTRUNCATE -_GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " - "use gnulib module ftruncate for portability"); -# endif -#endif - - -#if 0 -/* Get the name of the current working directory, and put it in SIZE bytes - of BUF. - Return BUF if successful, or NULL if the directory couldn't be determined - or SIZE was too small. - See the POSIX:2008 specification - . - Additionally, the gnulib module 'getcwd' guarantees the following GNU - extension: If BUF is NULL, an array is allocated with 'malloc'; the array - is SIZE bytes long, unless SIZE == 0, in which case it is as big as - necessary. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getcwd rpl_getcwd -# endif -_GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); -_GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getcwd -# define getcwd _getcwd -# endif -_GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size)); -# else -/* Need to cast, because on mingw, the second parameter is - int size. */ -_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); -# endif -_GL_CXXALIASWARN (getcwd); -#elif defined GNULIB_POSIXCHECK -# undef getcwd -# if HAVE_RAW_DECL_GETCWD -_GL_WARN_ON_USE (getcwd, "getcwd is unportable - " - "use gnulib module getcwd for portability"); -# endif -#elif 1 -/* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getcwd always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getcwd -# define getcwd _getcwd -# endif -/* Need to cast, because on mingw, the second parameter is either - 'int size' or 'size_t size'. */ -_GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size)); -# else -_GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); -# endif -_GL_CXXALIASWARN (getcwd); -#endif - - -#if 0 -/* Return the NIS domain name of the machine. - WARNING! The NIS domain name is unrelated to the fully qualified host name - of the machine. It is also unrelated to email addresses. - WARNING! The NIS domain name is usually the empty string or "(none)" when - not using NIS. - - Put up to LEN bytes of the NIS domain name into NAME. - Null terminate it if the name is shorter than LEN. - If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. - Return 0 if successful, otherwise set errno and return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdomainname -# define getdomainname rpl_getdomainname -# endif -_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); -# endif -_GL_CXXALIASWARN (getdomainname); -#elif defined GNULIB_POSIXCHECK -# undef getdomainname -# if HAVE_RAW_DECL_GETDOMAINNAME -_GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " - "use gnulib module getdomainname for portability"); -# endif -#endif - - -#if 1 -/* Return the maximum number of file descriptors in the current process. - In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getdtablesize -# define getdtablesize rpl_getdtablesize -# endif -_GL_FUNCDECL_RPL (getdtablesize, int, (void)); -_GL_CXXALIAS_RPL (getdtablesize, int, (void)); -# else -# if !0 -_GL_FUNCDECL_SYS (getdtablesize, int, (void)); -# endif -/* Need to cast, because on AIX, the parameter list is - (...). */ -_GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void)); -# endif -_GL_CXXALIASWARN (getdtablesize); -#elif defined GNULIB_POSIXCHECK -# undef getdtablesize -# if HAVE_RAW_DECL_GETDTABLESIZE -_GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " - "use gnulib module getdtablesize for portability"); -# endif -#endif - - -#if 0 -/* Fill a buffer with random bytes. */ -# if !1 -_GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length)); -# endif -_GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length)); -_GL_CXXALIASWARN (getentropy); -#elif defined GNULIB_POSIXCHECK -# undef getentropy -# if HAVE_RAW_DECL_GETENTROPY -_GL_WARN_ON_USE (getentropy, "getentropy is unportable - " - "use gnulib module getentropy for portability"); -# endif -#endif - - -#if 0 -/* Return the supplemental groups that the current process belongs to. - It is unspecified whether the effective group id is in the list. - If N is 0, return the group count; otherwise, N describes how many - entries are available in GROUPS. Return -1 and set errno if N is - not 0 and not large enough. Fails with ENOSYS on some systems. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getgroups -# define getgroups rpl_getgroups -# endif -_GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); -_GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); -# else -# if !1 -_GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); -# endif -_GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); -# endif -_GL_CXXALIASWARN (getgroups); -#elif defined GNULIB_POSIXCHECK -# undef getgroups -# if HAVE_RAW_DECL_GETGROUPS -_GL_WARN_ON_USE (getgroups, "getgroups is unportable - " - "use gnulib module getgroups for portability"); -# endif -#endif - - -#if 0 -/* Return the standard host name of the machine. - WARNING! The host name may or may not be fully qualified. - - Put up to LEN bytes of the host name into NAME. - Null terminate it if the name is shorter than LEN. - If the host name is longer than LEN, set errno = EINVAL and return -1. - Return 0 if successful, otherwise set errno and return -1. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef gethostname -# define gethostname rpl_gethostname -# endif -_GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second - parameter is - int len. */ -_GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); -# endif -_GL_CXXALIASWARN (gethostname); -#elif 0 -# undef gethostname -# define gethostname gethostname_used_without_requesting_gnulib_module_gethostname -#elif defined GNULIB_POSIXCHECK -# undef gethostname -# if HAVE_RAW_DECL_GETHOSTNAME -_GL_WARN_ON_USE (gethostname, "gethostname is unportable - " - "use gnulib module gethostname for portability"); -# endif -#endif - - -#if 0 -/* Returns the user's login name, or NULL if it cannot be found. Upon error, - returns NULL with errno set. - - See . - - Most programs don't need to use this function, because the information is - available through environment variables: - ${LOGNAME-$USER} on Unix platforms, - $USERNAME on native Windows platforms. - */ -# if !1 -_GL_FUNCDECL_SYS (getlogin, char *, (void)); -# endif -_GL_CXXALIAS_SYS (getlogin, char *, (void)); -_GL_CXXALIASWARN (getlogin); -#elif defined GNULIB_POSIXCHECK -# undef getlogin -# if HAVE_RAW_DECL_GETLOGIN -_GL_WARN_ON_USE (getlogin, "getlogin is unportable - " - "use gnulib module getlogin for portability"); -# endif -#endif - - -#if 0 -/* Copies the user's login name to NAME. - The array pointed to by NAME has room for SIZE bytes. - - Returns 0 if successful. Upon error, an error number is returned, or -1 in - the case that the login name cannot be found but no specific error is - provided (this case is hopefully rare but is left open by the POSIX spec). - - See . - - Most programs don't need to use this function, because the information is - available through environment variables: - ${LOGNAME-$USER} on Unix platforms, - $USERNAME on native Windows platforms. - */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getlogin_r rpl_getlogin_r -# endif -_GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); -# else -# if !1 -_GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Solaris 10 systems, the second argument is - int size. */ -_GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); -# endif -_GL_CXXALIASWARN (getlogin_r); -#elif defined GNULIB_POSIXCHECK -# undef getlogin_r -# if HAVE_RAW_DECL_GETLOGIN_R -_GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " - "use gnulib module getlogin_r for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getpagesize rpl_getpagesize -# endif -_GL_FUNCDECL_RPL (getpagesize, int, (void)); -_GL_CXXALIAS_RPL (getpagesize, int, (void)); -# else -/* On HP-UX, getpagesize exists, but it is not declared in even if - the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used. */ -# if defined __hpux -_GL_FUNCDECL_SYS (getpagesize, int, (void)); -# endif -# if !1 -# if !defined getpagesize -/* This is for POSIX systems. */ -# if !defined _gl_getpagesize && defined _SC_PAGESIZE -# if ! (defined __VMS && __VMS_VER < 70000000) -# define _gl_getpagesize() sysconf (_SC_PAGESIZE) -# endif -# endif -/* This is for older VMS. */ -# if !defined _gl_getpagesize && defined __VMS -# ifdef __ALPHA -# define _gl_getpagesize() 8192 -# else -# define _gl_getpagesize() 512 -# endif -# endif -/* This is for BeOS. */ -# if !defined _gl_getpagesize && 0 -# include -# if defined B_PAGE_SIZE -# define _gl_getpagesize() B_PAGE_SIZE -# endif -# endif -/* This is for AmigaOS4.0. */ -# if !defined _gl_getpagesize && defined __amigaos4__ -# define _gl_getpagesize() 2048 -# endif -/* This is for older Unix systems. */ -# if !defined _gl_getpagesize && 0 -# include -# ifdef EXEC_PAGESIZE -# define _gl_getpagesize() EXEC_PAGESIZE -# else -# ifdef NBPG -# ifndef CLSIZE -# define CLSIZE 1 -# endif -# define _gl_getpagesize() (NBPG * CLSIZE) -# else -# ifdef NBPC -# define _gl_getpagesize() NBPC -# endif -# endif -# endif -# endif -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define getpagesize() _gl_getpagesize () -# else -# if !GNULIB_defined_getpagesize_function -_GL_UNISTD_INLINE int -getpagesize () -{ - return _gl_getpagesize (); -} -# define GNULIB_defined_getpagesize_function 1 -# endif -# endif -# endif -# endif -/* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ -_GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); -# endif -# if 1 -_GL_CXXALIASWARN (getpagesize); -# endif -#elif defined GNULIB_POSIXCHECK -# undef getpagesize -# if HAVE_RAW_DECL_GETPAGESIZE -_GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " - "use gnulib module getpagesize for portability"); -# endif -#endif - - -#if 0 -/* Function getpass() from module 'getpass': - Read a password from /dev/tty or stdin. - Function getpass() from module 'getpass-gnu': - Read a password of arbitrary length from /dev/tty or stdin. */ -# if (0 && 0) \ - || (0 && 0) -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getpass -# define getpass rpl_getpass -# endif -_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); -# else -# if !1 -_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); -# endif -_GL_CXXALIASWARN (getpass); -#elif defined GNULIB_POSIXCHECK -# undef getpass -# if HAVE_RAW_DECL_GETPASS -_GL_WARN_ON_USE (getpass, "getpass is unportable - " - "use gnulib module getpass or getpass-gnu for portability"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::getpid always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef getpid -# define getpid _getpid -# endif -_GL_CXXALIAS_MDA (getpid, int, (void)); -# else -_GL_CXXALIAS_SYS (getpid, pid_t, (void)); -# endif -_GL_CXXALIASWARN (getpid); -#endif - - -#if 0 -/* Return the next valid login shell on the system, or NULL when the end of - the list has been reached. */ -# if !1 -_GL_FUNCDECL_SYS (getusershell, char *, (void)); -# endif -_GL_CXXALIAS_SYS (getusershell, char *, (void)); -_GL_CXXALIASWARN (getusershell); -#elif defined GNULIB_POSIXCHECK -# undef getusershell -# if HAVE_RAW_DECL_GETUSERSHELL -_GL_WARN_ON_USE (getusershell, "getusershell is unportable - " - "use gnulib module getusershell for portability"); -# endif -#endif - -#if 0 -/* Rewind to pointer that is advanced at each getusershell() call. */ -# if !1 -_GL_FUNCDECL_SYS (setusershell, void, (void)); -# endif -_GL_CXXALIAS_SYS (setusershell, void, (void)); -_GL_CXXALIASWARN (setusershell); -#elif defined GNULIB_POSIXCHECK -# undef setusershell -# if HAVE_RAW_DECL_SETUSERSHELL -_GL_WARN_ON_USE (setusershell, "setusershell is unportable - " - "use gnulib module getusershell for portability"); -# endif -#endif - -#if 0 -/* Free the pointer that is advanced at each getusershell() call and - associated resources. */ -# if !1 -_GL_FUNCDECL_SYS (endusershell, void, (void)); -# endif -_GL_CXXALIAS_SYS (endusershell, void, (void)); -_GL_CXXALIASWARN (endusershell); -#elif defined GNULIB_POSIXCHECK -# undef endusershell -# if HAVE_RAW_DECL_ENDUSERSHELL -_GL_WARN_ON_USE (endusershell, "endusershell is unportable - " - "use gnulib module getusershell for portability"); -# endif -#endif - - -#if 0 -/* Determine whether group id is in calling user's group list. */ -# if !1 -_GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); -# endif -_GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); -_GL_CXXALIASWARN (group_member); -#elif defined GNULIB_POSIXCHECK -# undef group_member -# if HAVE_RAW_DECL_GROUP_MEMBER -_GL_WARN_ON_USE (group_member, "group_member is unportable - " - "use gnulib module group-member for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty rpl_isatty -# endif -# define GNULIB_defined_isatty 1 -_GL_FUNCDECL_RPL (isatty, int, (int fd)); -_GL_CXXALIAS_RPL (isatty, int, (int fd)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty _isatty -# endif -_GL_CXXALIAS_MDA (isatty, int, (int fd)); -# else -_GL_CXXALIAS_SYS (isatty, int, (int fd)); -# endif -_GL_CXXALIASWARN (isatty); -#elif defined GNULIB_POSIXCHECK -# undef isatty -# if HAVE_RAW_DECL_ISATTY -_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " - "use gnulib module isatty for portability"); -# endif -#elif 1 -/* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::isatty always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef isatty -# define isatty _isatty -# endif -_GL_CXXALIAS_MDA (isatty, int, (int fd)); -# else -_GL_CXXALIAS_SYS (isatty, int, (int fd)); -# endif -_GL_CXXALIASWARN (isatty); -#endif - - -#if 0 -/* Change the owner of FILE to UID (if UID is not -1) and the group of FILE - to GID (if GID is not -1). Do not follow symbolic links. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lchown -# define lchown rpl_lchown -# endif -_GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); -# else -# if !1 -_GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); -# endif -_GL_CXXALIASWARN (lchown); -#elif defined GNULIB_POSIXCHECK -# undef lchown -# if HAVE_RAW_DECL_LCHOWN -_GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " - "use gnulib module lchown for portability"); -# endif -#endif - - -#if 0 -/* Create a new hard link for an existing file. - Return 0 if successful, otherwise -1 and errno set. - See POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define link rpl_link -# endif -_GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); -# else -# if !1 -_GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); -# endif -_GL_CXXALIASWARN (link); -#elif defined GNULIB_POSIXCHECK -# undef link -# if HAVE_RAW_DECL_LINK -_GL_WARN_ON_USE (link, "link is unportable - " - "use gnulib module link for portability"); -# endif -#endif - - -#if 0 -/* Create a new hard link for an existing file, relative to two - directories. FLAG controls whether symlinks are followed. - Return 0 if successful, otherwise -1 and errno set. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef linkat -# define linkat rpl_linkat -# endif -_GL_FUNCDECL_RPL (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag) - _GL_ARG_NONNULL ((2, 4))); -_GL_CXXALIAS_RPL (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag) - _GL_ARG_NONNULL ((2, 4))); -# endif -_GL_CXXALIAS_SYS (linkat, int, - (int fd1, const char *path1, int fd2, const char *path2, - int flag)); -# endif -_GL_CXXALIASWARN (linkat); -#elif defined GNULIB_POSIXCHECK -# undef linkat -# if HAVE_RAW_DECL_LINKAT -_GL_WARN_ON_USE (linkat, "linkat is unportable - " - "use gnulib module linkat for portability"); -# endif -#endif - - -#if 0 -/* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. - Return the new offset if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define lseek rpl_lseek -# endif -_GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); -_GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lseek -# define lseek _lseek -# endif -_GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence)); -# else -_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (lseek); -#elif defined GNULIB_POSIXCHECK -# undef lseek -# if HAVE_RAW_DECL_LSEEK -_GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " - "systems - use gnulib module lseek for portability"); -# endif -#elif 1 -/* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::lseek always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef lseek -# define lseek _lseek -# endif -_GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence)); -# else -_GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); -# endif -_GL_CXXALIASWARN (lseek); -#endif - - -#if 0 -/* Create a pipe, defaulting to O_BINARY mode. - Store the read-end as fd[0] and the write-end as fd[1]. - Return 0 upon success, or -1 with errno set upon failure. */ -# if !1 -_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (pipe, int, (int fd[2])); -_GL_CXXALIASWARN (pipe); -#elif defined GNULIB_POSIXCHECK -# undef pipe -# if HAVE_RAW_DECL_PIPE -_GL_WARN_ON_USE (pipe, "pipe is unportable - " - "use gnulib module pipe-posix for portability"); -# endif -#endif - - -#if 0 -/* Create a pipe, applying the given flags when opening the read-end of the - pipe and the write-end of the pipe. - The flags are a bitmask, possibly including O_CLOEXEC (defined in ) - and O_TEXT, O_BINARY (defined in "binary-io.h"). - Store the read-end as fd[0] and the write-end as fd[1]. - Return 0 upon success, or -1 with errno set upon failure. - See also the Linux man page at - . */ -# if 1 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define pipe2 rpl_pipe2 -# endif -_GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); -# else -_GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); -# endif -_GL_CXXALIASWARN (pipe2); -#elif defined GNULIB_POSIXCHECK -# undef pipe2 -# if HAVE_RAW_DECL_PIPE2 -_GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " - "use gnulib module pipe2 for portability"); -# endif -#endif - - -#if 0 -/* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. - Return the number of bytes placed into BUF if successful, otherwise - set errno and return -1. 0 indicates EOF. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pread -# define pread rpl_pread -# endif -_GL_FUNCDECL_RPL (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset)); -# else -# if !1 -_GL_FUNCDECL_SYS (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (pread, ssize_t, - (int fd, void *buf, size_t bufsize, off_t offset)); -# endif -_GL_CXXALIASWARN (pread); -#elif defined GNULIB_POSIXCHECK -# undef pread -# if HAVE_RAW_DECL_PREAD -_GL_WARN_ON_USE (pread, "pread is unportable - " - "use gnulib module pread for portability"); -# endif -#endif - - -#if 0 -/* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. - Return the number of bytes written if successful, otherwise - set errno and return -1. 0 indicates nothing written. See the - POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef pwrite -# define pwrite rpl_pwrite -# endif -_GL_FUNCDECL_RPL (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset)); -# else -# if !1 -_GL_FUNCDECL_SYS (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (pwrite, ssize_t, - (int fd, const void *buf, size_t bufsize, off_t offset)); -# endif -_GL_CXXALIASWARN (pwrite); -#elif defined GNULIB_POSIXCHECK -# undef pwrite -# if HAVE_RAW_DECL_PWRITE -_GL_WARN_ON_USE (pwrite, "pwrite is unportable - " - "use gnulib module pwrite for portability"); -# endif -#endif - - -#if 1 -/* Read up to COUNT bytes from file descriptor FD into the buffer starting - at BUF. See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read rpl_read -# endif -_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read _read -# endif -_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count)); -# else -_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (read); -#elif 1 -/* On native Windows, map 'read' to '_read', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::read always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef read -# define read _read -# endif -# ifdef __MINGW32__ -_GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count)); -# else -_GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count)); -# endif -# else -_GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (read); -#endif - - -#if 1 -/* Read the contents of the symbolic link FILE and place the first BUFSIZE - bytes of it into BUF. Return the number of bytes placed into BUF if - successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define readlink rpl_readlink -# endif -_GL_FUNCDECL_RPL (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize)); -# else -# if !1 -_GL_FUNCDECL_SYS (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (readlink, ssize_t, - (const char *restrict file, - char *restrict buf, size_t bufsize)); -# endif -_GL_CXXALIASWARN (readlink); -#elif defined GNULIB_POSIXCHECK -# undef readlink -# if HAVE_RAW_DECL_READLINK -_GL_WARN_ON_USE (readlink, "readlink is unportable - " - "use gnulib module readlink for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define readlinkat rpl_readlinkat -# endif -_GL_FUNCDECL_RPL (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len) - _GL_ARG_NONNULL ((2, 3))); -_GL_CXXALIAS_RPL (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len)); -# else -# if !1 -_GL_FUNCDECL_SYS (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len) - _GL_ARG_NONNULL ((2, 3))); -# endif -_GL_CXXALIAS_SYS (readlinkat, ssize_t, - (int fd, char const *restrict file, - char *restrict buf, size_t len)); -# endif -_GL_CXXALIASWARN (readlinkat); -#elif defined GNULIB_POSIXCHECK -# undef readlinkat -# if HAVE_RAW_DECL_READLINKAT -_GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " - "use gnulib module readlinkat for portability"); -# endif -#endif - - -#if 0 -/* Remove the directory DIR. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# define rmdir rpl_rmdir -# endif -_GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (rmdir, int, (char const *name)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rmdir -# define rmdir _rmdir -# endif -_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); -# else -_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); -# endif -_GL_CXXALIASWARN (rmdir); -#elif defined GNULIB_POSIXCHECK -# undef rmdir -# if HAVE_RAW_DECL_RMDIR -_GL_WARN_ON_USE (rmdir, "rmdir is unportable - " - "use gnulib module rmdir for portability"); -# endif -#elif 1 -/* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::rmdir always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef rmdir -# define rmdir _rmdir -# endif -_GL_CXXALIAS_MDA (rmdir, int, (char const *name)); -# else -_GL_CXXALIAS_SYS (rmdir, int, (char const *name)); -# endif -_GL_CXXALIASWARN (rmdir); -#endif - - -#if 0 -/* Set the host name of the machine. - The host name may or may not be fully qualified. - - Put LEN bytes of NAME into the host name. - Return 0 if successful, otherwise, set errno and return -1. - - Platforms with no ability to set the hostname return -1 and set - errno = ENOSYS. */ -# if !1 || !1 -_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) - _GL_ARG_NONNULL ((1))); -# endif -/* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 - and FreeBSD 6.4 the second parameter is int. On Solaris 11 - 2011-10, the first parameter is not const. */ -_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); -_GL_CXXALIASWARN (sethostname); -#elif defined GNULIB_POSIXCHECK -# undef sethostname -# if HAVE_RAW_DECL_SETHOSTNAME -_GL_WARN_ON_USE (sethostname, "sethostname is unportable - " - "use gnulib module sethostname for portability"); -# endif -#endif - - -#if 0 -/* Pause the execution of the current thread for N seconds. - Returns the number of seconds left to sleep. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef sleep -# define sleep rpl_sleep -# endif -_GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); -_GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); -# else -# if !1 -_GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); -# endif -_GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); -# endif -_GL_CXXALIASWARN (sleep); -#elif defined GNULIB_POSIXCHECK -# undef sleep -# if HAVE_RAW_DECL_SLEEP -_GL_WARN_ON_USE (sleep, "sleep is unportable - " - "use gnulib module sleep for portability"); -# endif -#endif - - -#if 1 -/* On native Windows, map 'swab' to '_swab', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::swab always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef swab -# define swab _swab -# endif -/* Need to cast, because in old mingw the arguments are - (const char *from, char *to, size_t n). */ -_GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n)); -# else -# if defined __hpux /* HP-UX */ -_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n)); -# elif defined __sun && !defined _XPG4 /* Solaris */ -_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n)); -# else -_GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n)); -# endif -# endif -_GL_CXXALIASWARN (swab); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef symlink -# define symlink rpl_symlink -# endif -_GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) - _GL_ARG_NONNULL ((1, 2))); -_GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); -# else -# if !1 -_GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) - _GL_ARG_NONNULL ((1, 2))); -# endif -_GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); -# endif -_GL_CXXALIASWARN (symlink); -#elif defined GNULIB_POSIXCHECK -# undef symlink -# if HAVE_RAW_DECL_SYMLINK -_GL_WARN_ON_USE (symlink, "symlink is not portable - " - "use gnulib module symlink for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef symlinkat -# define symlinkat rpl_symlinkat -# endif -_GL_FUNCDECL_RPL (symlinkat, int, - (char const *contents, int fd, char const *file) - _GL_ARG_NONNULL ((1, 3))); -_GL_CXXALIAS_RPL (symlinkat, int, - (char const *contents, int fd, char const *file)); -# else -# if !1 -_GL_FUNCDECL_SYS (symlinkat, int, - (char const *contents, int fd, char const *file) - _GL_ARG_NONNULL ((1, 3))); -# endif -_GL_CXXALIAS_SYS (symlinkat, int, - (char const *contents, int fd, char const *file)); -# endif -_GL_CXXALIASWARN (symlinkat); -#elif defined GNULIB_POSIXCHECK -# undef symlinkat -# if HAVE_RAW_DECL_SYMLINKAT -_GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " - "use gnulib module symlinkat for portability"); -# endif -#endif - - -#if 0 -/* Change the size of the file designated by FILENAME to become equal to LENGTH. - Return 0 if successful, otherwise -1 and errno set. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef truncate -# define truncate rpl_truncate -# endif -_GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) - _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); -# else -# if !1 -_GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) - _GL_ARG_NONNULL ((1))); -# endif -_GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length)); -# endif -_GL_CXXALIASWARN (truncate); -#elif defined GNULIB_POSIXCHECK -# undef truncate -# if HAVE_RAW_DECL_TRUNCATE -_GL_WARN_ON_USE (truncate, "truncate is unportable - " - "use gnulib module truncate for portability"); -# endif -#endif - - -#if 0 -/* Store at most BUFLEN characters of the pathname of the terminal FD is - open on in BUF. Return 0 on success, otherwise an error number. */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef ttyname_r -# define ttyname_r rpl_ttyname_r -# endif -_GL_FUNCDECL_RPL (ttyname_r, int, - (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (ttyname_r, int, - (int fd, char *buf, size_t buflen)); -# else -# if !1 -_GL_FUNCDECL_SYS (ttyname_r, int, - (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (ttyname_r, int, - (int fd, char *buf, size_t buflen)); -# endif -_GL_CXXALIASWARN (ttyname_r); -#elif defined GNULIB_POSIXCHECK -# undef ttyname_r -# if HAVE_RAW_DECL_TTYNAME_R -_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " - "use gnulib module ttyname_r for portability"); -# endif -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink rpl_unlink -# endif -_GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); -_GL_CXXALIAS_RPL (unlink, int, (char const *file)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink _unlink -# endif -_GL_CXXALIAS_MDA (unlink, int, (char const *file)); -# else -_GL_CXXALIAS_SYS (unlink, int, (char const *file)); -# endif -_GL_CXXALIASWARN (unlink); -#elif defined GNULIB_POSIXCHECK -# undef unlink -# if HAVE_RAW_DECL_UNLINK -_GL_WARN_ON_USE (unlink, "unlink is not portable - " - "use gnulib module unlink for portability"); -# endif -#elif 1 -/* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::unlink always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlink -# define unlink _unlink -# endif -_GL_CXXALIAS_MDA (unlink, int, (char const *file)); -# else -_GL_CXXALIAS_SYS (unlink, int, (char const *file)); -# endif -_GL_CXXALIASWARN (unlink); -#endif - - -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef unlinkat -# define unlinkat rpl_unlinkat -# endif -_GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); -# else -# if !1 -_GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); -# endif -_GL_CXXALIASWARN (unlinkat); -#elif defined GNULIB_POSIXCHECK -# undef unlinkat -# if HAVE_RAW_DECL_UNLINKAT -_GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " - "use gnulib module unlinkat for portability"); -# endif -#endif - - -#if 0 -/* Pause the execution of the current thread for N microseconds. - Returns 0 on completion, or -1 on range error. - See the POSIX:2001 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef usleep -# define usleep rpl_usleep -# endif -_GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); -_GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); -# endif -/* Need to cast, because on Haiku, the first parameter is - unsigned int n. */ -_GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n)); -# endif -_GL_CXXALIASWARN (usleep); -#elif defined GNULIB_POSIXCHECK -# undef usleep -# if HAVE_RAW_DECL_USLEEP -_GL_WARN_ON_USE (usleep, "usleep is unportable - " - "use gnulib module usleep for portability"); -# endif -#endif - - -#if 0 -/* Write up to COUNT bytes starting at BUF to file descriptor FD. - See the POSIX:2008 specification - . */ -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write rpl_write -# endif -_GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); -# elif defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write _write -# endif -_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count)); -# else -_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (write); -#elif 1 -/* On native Windows, map 'write' to '_write', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::write always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef write -# define write _write -# endif -# ifdef __MINGW32__ -_GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count)); -# else -_GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count)); -# endif -# else -_GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count)); -# endif -_GL_CXXALIASWARN (write); -#endif - -_GL_INLINE_HEADER_END - -#endif /* _GL_UNISTD_H */ -#endif /* _GL_INCLUDING_UNISTD_H */ -#endif /* _GL_UNISTD_H */ diff --git a/jni/parted/libiconv/srclib/unitypes.h b/jni/parted/libiconv/srclib/unitypes.h deleted file mode 100755 index 6eaab1c..0000000 --- a/jni/parted/libiconv/srclib/unitypes.h +++ /dev/null @@ -1,62 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Elementary types and macros for the GNU UniString library. - Copyright (C) 2002, 2005-2006, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _UNITYPES_H -#define _UNITYPES_H - -/* Get uint8_t, uint16_t, uint32_t. */ -#include - -/* Type representing a Unicode character. */ -typedef uint32_t ucs4_t; - -/* Attribute of a function whose result depends only on the arguments - (not pointers!) and which has no side effects. */ -#ifndef _UC_ATTRIBUTE_CONST -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) || defined __clang__ -# define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) -# else -# define _UC_ATTRIBUTE_CONST -# endif -#endif - -/* Attribute of a function whose result depends only on the arguments - (possibly pointers) and global memory, and which has no side effects. */ -#ifndef _UC_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _UC_ATTRIBUTE_PURE -# endif -#endif - -/* Qualifier in a function declaration, that asserts that the caller must - pass a pointer to a different object in the specified pointer argument - than in the other pointer arguments. */ -#ifndef _UC_RESTRICT -# if defined __restrict \ - || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \ - || __clang_major__ >= 3 -# define _UC_RESTRICT __restrict -# elif 199901L <= __STDC_VERSION__ || defined restrict -# define _UC_RESTRICT restrict -# else -# define _UC_RESTRICT -# endif -#endif - -#endif /* _UNITYPES_H */ diff --git a/jni/parted/libiconv/srclib/uniwidth.h b/jni/parted/libiconv/srclib/uniwidth.h deleted file mode 100755 index b3b35a7..0000000 --- a/jni/parted/libiconv/srclib/uniwidth.h +++ /dev/null @@ -1,73 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Display width functions. - Copyright (C) 2001-2002, 2005, 2007, 2009-2022 Free Software Foundation, - Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef _UNIWIDTH_H -#define _UNIWIDTH_H - -#include "unitypes.h" - -/* Get size_t. */ -#include - -/* Get locale_charset() declaration. */ -#include "localcharset.h" - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Display width. */ - -/* These functions are locale dependent. The encoding argument identifies - the encoding (e.g. "ISO-8859-2" for Polish). */ - -/* Determine number of column positions required for UC. */ -extern int - uc_width (ucs4_t uc, const char *encoding) - _UC_ATTRIBUTE_PURE; - -/* Determine number of column positions required for first N units - (or fewer if S ends before this) in S. */ -extern int - u8_width (const uint8_t *s, size_t n, const char *encoding) - _UC_ATTRIBUTE_PURE; -extern int - u16_width (const uint16_t *s, size_t n, const char *encoding) - _UC_ATTRIBUTE_PURE; -extern int - u32_width (const uint32_t *s, size_t n, const char *encoding) - _UC_ATTRIBUTE_PURE; - -/* Determine number of column positions required for S. */ -extern int - u8_strwidth (const uint8_t *s, const char *encoding) - _UC_ATTRIBUTE_PURE; -extern int - u16_strwidth (const uint16_t *s, const char *encoding) - _UC_ATTRIBUTE_PURE; -extern int - u32_strwidth (const uint32_t *s, const char *encoding) - _UC_ATTRIBUTE_PURE; - - -#ifdef __cplusplus -} -#endif - -#endif /* _UNIWIDTH_H */ diff --git a/jni/parted/libiconv/srclib/uniwidth/.dirstamp b/jni/parted/libiconv/srclib/uniwidth/.dirstamp deleted file mode 100755 index e69de29..0000000 diff --git a/jni/parted/libiconv/srclib/uniwidth/cjk.h b/jni/parted/libiconv/srclib/uniwidth/cjk.h deleted file mode 100755 index b791ba9..0000000 --- a/jni/parted/libiconv/srclib/uniwidth/cjk.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Test for CJK encoding. - Copyright (C) 2001-2002, 2005-2007, 2009-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -#include "streq.h" - -static int -is_cjk_encoding (const char *encoding) -{ - if (0 - /* Legacy Japanese encodings */ - || STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0) - /* Legacy Chinese encodings */ - || STREQ_OPT (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0) - || STREQ_OPT (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0) - || STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0) - || STREQ_OPT (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0) - /* Legacy Korean encodings */ - || STREQ_OPT (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0) - || STREQ_OPT (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0) - || STREQ_OPT (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0)) - return 1; - return 0; -} diff --git a/jni/parted/libiconv/srclib/uniwidth/width.c b/jni/parted/libiconv/srclib/uniwidth/width.c deleted file mode 100755 index 1c945a8..0000000 --- a/jni/parted/libiconv/srclib/uniwidth/width.c +++ /dev/null @@ -1,95 +0,0 @@ -/* Determine display width of Unicode character. - Copyright (C) 2001-2002, 2006-2022 Free Software Foundation, Inc. - Written by Bruno Haible , 2002. - - This file 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 file 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 program. If not, see . */ - -#include - -/* Specification. */ -#include "uniwidth.h" - -#include "cjk.h" - -/* The non-spacing attribute table consists of: - * Non-spacing characters; generated from PropList.txt or - "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt" - * Format control characters; generated from - "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt" - * Zero width characters; generated from - "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt" - * Hangul Jamo characters that have conjoining behaviour: - - jungseong = syllable-middle vowels - - jongseong = syllable-final consonants - Rationale: - 1) These characters act like combining characters. They have no - equivalent in legacy character sets. Therefore the EastAsianWidth.txt - file does not really matter for them; UAX #11 East Asian Width - makes it clear that it focus - is on compatibility with traditional Japanese layout. - By contrast, the same glyphs without conjoining behaviour are available - in the U+3130..U+318F block, and these characters are mapped to legacy - character sets, and traditional Japanese layout matters for them. - 2) glibc does the same thing, see - - - */ -#include "uniwidth/width0.h" - -#include "uniwidth/width2.h" -#include "unictype/bitmap.h" - -#define SIZEOF(a) (sizeof(a) / sizeof(a[0])) - - -/* Determine number of column positions required for UC. */ -int -uc_width (ucs4_t uc, const char *encoding) -{ - /* Test for non-spacing or control character. */ - if ((uc >> 9) < SIZEOF (nonspacing_table_ind)) - { - int ind = nonspacing_table_ind[uc >> 9]; - if (ind >= 0) - if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1) - { - if (uc > 0 && uc < 0xa0) - return -1; - else - return 0; - } - } - else if ((uc >> 9) == (0xe0000 >> 9)) - { - if (uc >= 0xe0100) - { - if (uc <= 0xe01ef) - return 0; - } - else - { - if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001) - return 0; - } - } - /* Test for double-width character. */ - if (bitmap_lookup (&u_width2, uc)) - return 2; - /* In ancient CJK encodings, Cyrillic and most other characters are - double-width as well. */ - if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9 - && is_cjk_encoding (encoding)) - return 2; - return 1; -} diff --git a/jni/parted/libiconv/srclib/uniwidth/width0.h b/jni/parted/libiconv/srclib/uniwidth/width0.h deleted file mode 100755 index eda0a1d..0000000 --- a/jni/parted/libiconv/srclib/uniwidth/width0.h +++ /dev/null @@ -1,485 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Table of non-spacing or control characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ - -/* Copyright (C) 2000-2022 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -static const unsigned char nonspacing_table_data[47*64] = { - /* 0x0000-0x01ff */ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */ - /* 0x0200-0x03ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */ - /* 0x0400-0x05ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */ - 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */ - 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */ - 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */ - /* 0x0600-0x07ff */ - 0x3f, 0x00, 0xff, 0x17, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */ - 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */ - 0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */ - 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */ - 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */ - 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x20, /* 0x07c0-0x07ff */ - /* 0x0800-0x09ff */ - 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ - 0x00, 0x00, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ - 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ - 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ - 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x40, /* 0x09c0-0x09ff */ - /* 0x0a00-0x0bff */ - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */ - 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */ - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */ - 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xfc, /* 0x0ac0-0x0aff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */ - 0x1e, 0x20, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */ - 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */ - /* 0x0c00-0x0dff */ - 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, /* 0x0c00-0x0c3f */ - 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */ - 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x0d00-0x0d3f */ - 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */ - 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */ - /* 0x0e00-0x0fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */ - 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1f, /* 0x0e80-0x0ebf */ - 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */ - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */ - 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */ - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */ - /* 0x1000-0x11ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */ - 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */ - 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */ - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x1140-0x117f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1180-0x11bf */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x11c0-0x11ff */ - /* 0x1200-0x13ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */ - 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */ - /* 0x1600-0x17ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */ - 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1700-0x173f */ - 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */ - 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */ - /* 0x1800-0x19ff */ - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ - 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ - 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */ - /* 0x1a00-0x1bff */ - 0x00, 0x00, 0x80, 0x09, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */ - 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x1a80-0x1abf */ - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */ - 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */ - 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */ - 0x03, 0x00, 0x00, 0x00, 0x3c, 0x3b, 0x00, 0x00, /* 0x1b80-0x1bbf */ - 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */ - /* 0x1c00-0x1dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */ - 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x10, 0x03, /* 0x1cc0-0x1cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x1dc0-0x1dff */ - /* 0x2000-0x21ff */ - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ - 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */ - 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */ - /* 0x2c00-0x2dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */ - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */ - /* 0x3000-0x31ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x3000-0x303f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */ - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */ - /* 0xa600-0xa7ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x3f, /* 0xa640-0xa67f */ - 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */ - /* 0xa800-0xa9ff */ - 0x44, 0x08, 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, /* 0xa800-0xa83f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ - 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x80, /* 0xa8c0-0xa8ff */ - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ - 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x33, /* 0xa980-0xa9bf */ - 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */ - /* 0xaa00-0xabff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */ - 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0xaa40-0xaa7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x00, /* 0xaac0-0xaaff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */ - 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */ - /* 0xd600-0xd7ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd600-0xd63f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd640-0xd67f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd680-0xd6bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd6c0-0xd6ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd700-0xd73f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xd740-0xd77f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0xd780-0xd7bf */ - 0x7f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, /* 0xd7c0-0xd7ff */ - /* 0xfa00-0xfbff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */ - 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */ - /* 0xfe00-0xffff */ - 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, /* 0xfe00-0xfe3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */ - /* 0x10000-0x101ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */ - /* 0x10200-0x103ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10200-0x1023f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10240-0x1027f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10280-0x102bf */ - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0x102c0-0x102ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10300-0x1033f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, /* 0x10340-0x1037f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10380-0x103bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x103c0-0x103ff */ - /* 0x10a00-0x10bff */ - 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */ - 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */ - /* 0x10c00-0x10dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c00-0x10c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c40-0x10c7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c80-0x10cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10cc0-0x10cff */ - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, /* 0x10d00-0x10d3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d40-0x10d7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10d80-0x10dbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10dc0-0x10dff */ - /* 0x10e00-0x10fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e00-0x10e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10e40-0x10e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, /* 0x10e80-0x10ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ec0-0x10eff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f00-0x10f3f */ - 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f40-0x10f7f */ - 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10f80-0x10fbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10fc0-0x10fff */ - /* 0x11000-0x111ff */ - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */ - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x80, /* 0x11040-0x1107f */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */ - 0x04, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */ - 0x07, 0x00, 0x00, 0x00, 0x80, 0xef, 0x1f, 0x00, /* 0x11100-0x1113f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, /* 0x11140-0x1117f */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */ - 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ - /* 0x11200-0x113ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */ - 0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */ - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, /* 0x11300-0x1133f */ - 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x1f, 0x00, /* 0x11340-0x1137f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */ - /* 0x11400-0x115ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */ - 0x5c, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */ - 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11540-0x1157f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xb0, /* 0x11580-0x115bf */ - 0x01, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, /* 0x115c0-0x115ff */ - /* 0x11600-0x117ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa7, /* 0x11600-0x1163f */ - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11640-0x1167f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xbf, 0x00, /* 0x11680-0x116bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x116c0-0x116ff */ - 0x00, 0x00, 0x00, 0xe0, 0xbc, 0x0f, 0x00, 0x00, /* 0x11700-0x1173f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */ - /* 0x11800-0x119ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x06, /* 0x11800-0x1183f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11840-0x1187f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11880-0x118bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x118c0-0x118ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, /* 0x11900-0x1193f */ - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11940-0x1197f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11980-0x119bf */ - 0x00, 0x00, 0xf0, 0x0c, 0x01, 0x00, 0x00, 0x00, /* 0x119c0-0x119ff */ - /* 0x11a00-0x11bff */ - 0x7e, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x79, /* 0x11a00-0x11a3f */ - 0x80, 0x00, 0x7e, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x11a40-0x11a7f */ - 0x00, 0xfc, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x11a80-0x11abf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11ac0-0x11aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b00-0x11b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b40-0x11b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11b80-0x11bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11bc0-0x11bff */ - /* 0x11c00-0x11dff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */ - 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xb4, /* 0x11d00-0x11d3f */ - 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */ - 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */ - /* 0x11e00-0x11fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e00-0x11e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e40-0x11e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11e80-0x11ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, /* 0x11ec0-0x11eff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f00-0x11f3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f40-0x11f7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11f80-0x11fbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11fc0-0x11fff */ - /* 0x13400-0x135ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, /* 0x13400-0x1343f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13440-0x1347f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13480-0x134bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x134c0-0x134ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13500-0x1353f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13540-0x1357f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13580-0x135bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x135c0-0x135ff */ - /* 0x16a00-0x16bff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a80-0x16abf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, /* 0x16ac0-0x16aff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x16b00-0x16b3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b40-0x16b7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16b80-0x16bbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16bc0-0x16bff */ - /* 0x16e00-0x16fff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e00-0x16e3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e40-0x16e7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16e80-0x16ebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16ec0-0x16eff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f00-0x16f3f */ - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f40-0x16f7f */ - 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16f80-0x16fbf */ - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, /* 0x16fc0-0x16fff */ - /* 0x1bc00-0x1bdff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc00-0x1bc3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc40-0x1bc7f */ - 0x00, 0x00, 0x00, 0x60, 0x0f, 0x00, 0x00, 0x00, /* 0x1bc80-0x1bcbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bcc0-0x1bcff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd00-0x1bd3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd40-0x1bd7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bd80-0x1bdbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bdc0-0x1bdff */ - /* 0x1ce00-0x1cfff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce00-0x1ce3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce40-0x1ce7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ce80-0x1cebf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cec0-0x1ceff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, /* 0x1cf00-0x1cf3f */ - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf40-0x1cf7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cf80-0x1cfbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cfc0-0x1cfff */ - /* 0x1d000-0x1d1ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */ - 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */ - 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */ - /* 0x1d200-0x1d3ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */ - 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d3c0-0x1d3ff */ - /* 0x1da00-0x1dbff */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, /* 0x1da00-0x1da3f */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x20, 0x00, /* 0x1da40-0x1da7f */ - 0x10, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x00, 0x00, /* 0x1da80-0x1dabf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dac0-0x1daff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db00-0x1db3f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */ - /* 0x1e000-0x1e1ff */ - 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, /* 0x1e100-0x1e13f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */ - /* 0x1e200-0x1e3ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e200-0x1e23f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e240-0x1e27f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, /* 0x1e280-0x1e2bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, /* 0x1e2c0-0x1e2ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e300-0x1e33f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e340-0x1e37f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e380-0x1e3bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e3c0-0x1e3ff */ - /* 0x1e800-0x1e9ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */ - 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */ - 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */ -}; -static const signed char nonspacing_table_ind[248] = { - 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */ - 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */ - 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */ - 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */ - -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */ - -1, -1, -1, 20, -1, -1, -1, -1, /* 0xd000-0xdfff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ - -1, -1, -1, -1, -1, 21, -1, 22, /* 0xf000-0xffff */ - 23, 24, -1, -1, -1, 25, 26, 27, /* 0x10000-0x10fff */ - 28, 29, 30, 31, 32, 33, 34, 35, /* 0x11000-0x11fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ - -1, -1, 36, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ - -1, -1, -1, -1, -1, 37, -1, 38, /* 0x16000-0x16fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ - -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ - -1, -1, -1, -1, -1, -1, 39, -1, /* 0x1b000-0x1bfff */ - -1, -1, -1, -1, -1, -1, -1, 40, /* 0x1c000-0x1cfff */ - 41, 42, -1, -1, -1, 43, -1, -1, /* 0x1d000-0x1dfff */ - 44, 45, -1, -1, 46, -1, -1, -1 /* 0x1e000-0x1efff */ -}; diff --git a/jni/parted/libiconv/srclib/uniwidth/width2.h b/jni/parted/libiconv/srclib/uniwidth/width2.h deleted file mode 100755 index 25364d3..0000000 --- a/jni/parted/libiconv/srclib/uniwidth/width2.h +++ /dev/null @@ -1,549 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* Width 2 property of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ - -/* Copyright (C) 2000-2022 Free Software Foundation, Inc. - - This file is free software. - It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". - You can redistribute it and/or modify it under either - - the terms of the GNU Lesser General Public License as published - by the Free Software Foundation, either version 3, or (at your - option) any later version, or - - 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, or - - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - - This file 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 and the GNU General Public License - for more details. - - You should have received a copy of the GNU Lesser General Public - License and of the GNU General Public License along with this - program. If not, see . */ - -#define header_0 16 -#define header_2 9 -#define header_3 127 -#define header_4 15 -static const -struct - { - int header[1]; - int level1[4]; - short level2[3 << 7]; - unsigned int level3[28 << 4]; - } -u_width2 = -{ - { 4 }, - { - 5 * sizeof (int) / sizeof (short) + 0, - 5 * sizeof (int) / sizeof (short) + 128, - 5 * sizeof (int) / sizeof (short) + 256, - 5 * sizeof (int) / sizeof (short) + 256 - }, - { - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 0, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 16, - 5 + 384 * sizeof (short) / sizeof (int) + 32, - 5 + 384 * sizeof (short) / sizeof (int) + 48, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 64, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 80, - 5 + 384 * sizeof (short) / sizeof (int) + 96, - 5 + 384 * sizeof (short) / sizeof (int) + 112, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 144, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 160, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 176, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 192, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 208, - 5 + 384 * sizeof (short) / sizeof (int) + 224, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 240, - -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, - 5 + 384 * sizeof (short) / sizeof (int) + 256, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 272, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 288, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 304, - 5 + 384 * sizeof (short) / sizeof (int) + 320, - 5 + 384 * sizeof (short) / sizeof (int) + 336, - -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, - 5 + 384 * sizeof (short) / sizeof (int) + 352, - 5 + 384 * sizeof (short) / sizeof (int) + 368, - 5 + 384 * sizeof (short) / sizeof (int) + 384, - 5 + 384 * sizeof (short) / sizeof (int) + 400, - 5 + 384 * sizeof (short) / sizeof (int) + 416, - 5 + 384 * sizeof (short) / sizeof (int) + 432, - -1, - -1, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128, - 5 + 384 * sizeof (short) / sizeof (int) + 128 - }, - { - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x0C000000U, 0x00000600U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00091E00U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x60000000U, - 0x00300000U, 0x00000000U, 0x000FFF00U, 0x80000000U, - 0x00080000U, 0x60000C02U, 0x00104030U, 0x242C0400U, - 0x00000C20U, 0x00000100U, 0x00B85000U, 0x00000000U, - 0x00E00000U, 0x80010000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x18000000U, 0x00000000U, 0x00210000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFF00FFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x1FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x0000000FU, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFF0000U, 0xFFFF0000U, 0xFFFFFFFFU, 0x0000FFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00000001U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x0000007FU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x0003000FU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x00FFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x003FFFFFU, 0x00000000U, - 0x000001FFU, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x6FEF0000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0x00000007U, 0x00070000U, 0xFFFF00F0U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0FFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000010U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00008000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x07FE4000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFBFE001U, 0xFFFFFFFFU, 0xDFFFFFFFU, - 0x000FFFFFU, 0xFFFFFFFFU, 0x000F87FFU, 0xFF11FFFFU, - 0xFFFFFFFFU, 0x7FFFFFFFU, 0xFFFFFFFDU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0x9FFFFFFFU, - 0xFFFFFFFFU, 0x3FFFFFFFU, 0xFFFF7800U, 0x040000FFU, - 0x00600000U, 0x00000010U, 0x00000000U, 0xF8000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0x0000FFFFU, 0x00000000U, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xE0E7103FU, 0x1FF01800U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00010FFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0xFFFFF000U, 0xF7FFFFFFU, 0xFFFFFFBFU, 0xFFFFFFFFU, - 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, 0xFFFFFFFFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x1F1F0000U, - 0xFFFF007FU, 0x07FF1FFFU, 0x03FF003FU, 0x007F00FFU, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U, - 0x00000000U, 0x00000000U, 0x00000000U, 0x00000000U - } -}; diff --git a/jni/parted/libiconv/srclib/unlocked-io.h b/jni/parted/libiconv/srclib/unlocked-io.h deleted file mode 100755 index 7461d74..0000000 --- a/jni/parted/libiconv/srclib/unlocked-io.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Prefer faster, non-thread-safe stdio functions if available. - - Copyright (C) 2001-2004, 2009-2022 Free Software Foundation, Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering. */ - -#ifndef UNLOCKED_IO_H -# define UNLOCKED_IO_H 1 - -/* These are wrappers for functions/macros from the GNU C library, and - from other C libraries supporting POSIX's optional thread-safe functions. - - The standard I/O functions are thread-safe. These *_unlocked ones are - more efficient but not thread-safe. That they're not thread-safe is - fine since all of the applications in this package are single threaded. - - Also, some code that is shared with the GNU C library may invoke - the *_unlocked functions directly. On hosts that lack those - functions, invoke the non-thread-safe versions instead. */ - -# include - -# if HAVE_DECL_CLEARERR_UNLOCKED || defined clearerr_unlocked -# undef clearerr -# define clearerr(x) clearerr_unlocked (x) -# else -# define clearerr_unlocked(x) clearerr (x) -# endif - -# if HAVE_DECL_FEOF_UNLOCKED || defined feof_unlocked -# undef feof -# define feof(x) feof_unlocked (x) -# else -# define feof_unlocked(x) feof (x) -# endif - -# if HAVE_DECL_FERROR_UNLOCKED || defined ferror_unlocked -# undef ferror -# define ferror(x) ferror_unlocked (x) -# else -# define ferror_unlocked(x) ferror (x) -# endif - -# if HAVE_DECL_FFLUSH_UNLOCKED || defined fflush_unlocked -# undef fflush -# define fflush(x) fflush_unlocked (x) -# else -# define fflush_unlocked(x) fflush (x) -# endif - -# if HAVE_DECL_FGETS_UNLOCKED || defined fgets_unlocked -# undef fgets -# define fgets(x,y,z) fgets_unlocked (x,y,z) -# else -# define fgets_unlocked(x,y,z) fgets (x,y,z) -# endif - -# if HAVE_DECL_FPUTC_UNLOCKED || defined fputc_unlocked -# undef fputc -# define fputc(x,y) fputc_unlocked (x,y) -# else -# define fputc_unlocked(x,y) fputc (x,y) -# endif - -# if HAVE_DECL_FPUTS_UNLOCKED || defined fputs_unlocked -# undef fputs -# define fputs(x,y) fputs_unlocked (x,y) -# else -# define fputs_unlocked(x,y) fputs (x,y) -# endif - -# if HAVE_DECL_FREAD_UNLOCKED || defined fread_unlocked -# undef fread -# define fread(w,x,y,z) fread_unlocked (w,x,y,z) -# else -# define fread_unlocked(w,x,y,z) fread (w,x,y,z) -# endif - -# if HAVE_DECL_FWRITE_UNLOCKED || defined fwrite_unlocked -# undef fwrite -# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z) -# else -# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) -# endif - -# if HAVE_DECL_GETC_UNLOCKED || defined get_unlocked -# undef getc -# define getc(x) getc_unlocked (x) -# else -# define getc_unlocked(x) getc (x) -# endif - -# if HAVE_DECL_GETCHAR_UNLOCKED || defined getchar_unlocked -# undef getchar -# define getchar() getchar_unlocked () -# else -# define getchar_unlocked() getchar () -# endif - -# if HAVE_DECL_PUTC_UNLOCKED || defined putc_unlocked -# undef putc -# define putc(x,y) putc_unlocked (x,y) -# else -# define putc_unlocked(x,y) putc (x,y) -# endif - -# if HAVE_DECL_PUTCHAR_UNLOCKED || defined putchar_unlocked -# undef putchar -# define putchar(x) putchar_unlocked (x) -# else -# define putchar_unlocked(x) putchar (x) -# endif - -# undef flockfile -# define flockfile(x) ((void) 0) - -# undef ftrylockfile -# define ftrylockfile(x) 0 - -# undef funlockfile -# define funlockfile(x) ((void) 0) - -#endif /* UNLOCKED_IO_H */ diff --git a/jni/parted/libiconv/srclib/verify.h b/jni/parted/libiconv/srclib/verify.h deleted file mode 100755 index c5c63ae..0000000 --- a/jni/parted/libiconv/srclib/verify.h +++ /dev/null @@ -1,318 +0,0 @@ -/* Compile-time assert-like macros. - - Copyright (C) 2005-2006, 2009-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ - -#ifndef _GL_VERIFY_H -#define _GL_VERIFY_H - - -/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert (R, DIAGNOSTIC) - works as per C11. This is supported by GCC 4.6.0+ and by clang 4+. - - Define _GL_HAVE__STATIC_ASSERT1 to 1 if _Static_assert (R) works as - per C2x. This is supported by GCC 9.1+. - - Support compilers claiming conformance to the relevant standard, - and also support GCC when not pedantic. If we were willing to slow - 'configure' down we could also use it with other compilers, but - since this affects only the quality of diagnostics, why bother? */ -#ifndef __cplusplus -# if (201112L <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ \ - && (4 < __GNUC__ + (6 <= __GNUC_MINOR__) || 5 <= __clang_major__))) -# define _GL_HAVE__STATIC_ASSERT 1 -# endif -# if (202000L <= __STDC_VERSION__ \ - || (!defined __STRICT_ANSI__ && 9 <= __GNUC__)) -# define _GL_HAVE__STATIC_ASSERT1 1 -# endif -#endif - -/* FreeBSD 9.1 , included by and lots of other - system headers, defines a conflicting _Static_assert that is no - better than ours; override it. */ -#ifndef _GL_HAVE__STATIC_ASSERT -# include -# undef _Static_assert -#endif - -/* Each of these macros verifies that its argument R is nonzero. To - be portable, R should be an integer constant expression. Unlike - assert (R), there is no run-time overhead. - - If _Static_assert works, verify (R) uses it directly. Similarly, - _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct - that is an operand of sizeof. - - The code below uses several ideas for C++ compilers, and for C - compilers that do not support _Static_assert: - - * The first step is ((R) ? 1 : -1). Given an expression R, of - integral or boolean or floating-point type, this yields an - expression of integral type, whose value is later verified to be - constant and nonnegative. - - * Next this expression W is wrapped in a type - struct _gl_verify_type { - unsigned int _gl_verify_error_if_negative: W; - }. - If W is negative, this yields a compile-time error. No compiler can - deal with a bit-field of negative size. - - One might think that an array size check would have the same - effect, that is, that the type struct { unsigned int dummy[W]; } - would work as well. However, inside a function, some compilers - (such as C++ compilers and GNU C) allow local parameters and - variables inside array size expressions. With these compilers, - an array size check would not properly diagnose this misuse of - the verify macro: - - void function (int n) { verify (n < 0); } - - * For the verify macro, the struct _gl_verify_type will need to - somehow be embedded into a declaration. To be portable, this - declaration must declare an object, a constant, a function, or a - typedef name. If the declared entity uses the type directly, - such as in - - struct dummy {...}; - typedef struct {...} dummy; - extern struct {...} *dummy; - extern void dummy (struct {...} *); - extern struct {...} *dummy (void); - - two uses of the verify macro would yield colliding declarations - if the entity names are not disambiguated. A workaround is to - attach the current line number to the entity name: - - #define _GL_CONCAT0(x, y) x##y - #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) - extern struct {...} * _GL_CONCAT (dummy, __LINE__); - - But this has the problem that two invocations of verify from - within the same macro would collide, since the __LINE__ value - would be the same for both invocations. (The GCC __COUNTER__ - macro solves this problem, but is not portable.) - - A solution is to use the sizeof operator. It yields a number, - getting rid of the identity of the type. Declarations like - - extern int dummy [sizeof (struct {...})]; - extern void dummy (int [sizeof (struct {...})]); - extern int (*dummy (void)) [sizeof (struct {...})]; - - can be repeated. - - * Should the implementation use a named struct or an unnamed struct? - Which of the following alternatives can be used? - - extern int dummy [sizeof (struct {...})]; - extern int dummy [sizeof (struct _gl_verify_type {...})]; - extern void dummy (int [sizeof (struct {...})]); - extern void dummy (int [sizeof (struct _gl_verify_type {...})]); - extern int (*dummy (void)) [sizeof (struct {...})]; - extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; - - In the second and sixth case, the struct type is exported to the - outer scope; two such declarations therefore collide. GCC warns - about the first, third, and fourth cases. So the only remaining - possibility is the fifth case: - - extern int (*dummy (void)) [sizeof (struct {...})]; - - * GCC warns about duplicate declarations of the dummy function if - -Wredundant-decls is used. GCC 4.3 and later have a builtin - __COUNTER__ macro that can let us generate unique identifiers for - each dummy function, to suppress this warning. - - * This implementation exploits the fact that older versions of GCC, - which do not support _Static_assert, also do not warn about the - last declaration mentioned above. - - * GCC warns if -Wnested-externs is enabled and 'verify' is used - within a function body; but inside a function, you can always - arrange to use verify_expr instead. - - * In C++, any struct definition inside sizeof is invalid. - Use a template type to work around the problem. */ - -/* Concatenate two preprocessor tokens. */ -#define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) -#define _GL_CONCAT0(x, y) x##y - -/* _GL_COUNTER is an integer, preferably one that changes each time we - use it. Use __COUNTER__ if it works, falling back on __LINE__ - otherwise. __LINE__ isn't perfect, but it's better than a - constant. */ -#if defined __COUNTER__ && __COUNTER__ != __COUNTER__ -# define _GL_COUNTER __COUNTER__ -#else -# define _GL_COUNTER __LINE__ -#endif - -/* Generate a symbol with the given prefix, making it unique if - possible. */ -#define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) - -/* Verify requirement R at compile-time, as an integer constant expression - that returns 1. If R is false, fail at compile-time, preferably - with a diagnostic that includes the string-literal DIAGNOSTIC. */ - -#define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ - (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) - -#ifdef __cplusplus -# if !GNULIB_defined_struct__gl_verify_type -template - struct _gl_verify_type { - unsigned int _gl_verify_error_if_negative: w; - }; -# define GNULIB_defined_struct__gl_verify_type 1 -# endif -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - _gl_verify_type<(R) ? 1 : -1> -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - struct { \ - _Static_assert (R, DIAGNOSTIC); \ - int _gl_dummy; \ - } -#else -# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ - struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } -#endif - -/* Verify requirement R at compile-time, as a declaration without a - trailing ';'. If R is false, fail at compile-time. - - This macro requires three or more arguments but uses at most the first - two, so that the _Static_assert macro optionally defined below supports - both the C11 two-argument syntax and the C2x one-argument syntax. - - Unfortunately, unlike C11, this implementation must appear as an - ordinary declaration, and cannot appear inside struct { ... }. */ - -#if 200410 <= __cpp_static_assert -# define _GL_VERIFY(R, DIAGNOSTIC, ...) static_assert (R, DIAGNOSTIC) -#elif defined _GL_HAVE__STATIC_ASSERT -# define _GL_VERIFY(R, DIAGNOSTIC, ...) _Static_assert (R, DIAGNOSTIC) -#else -# define _GL_VERIFY(R, DIAGNOSTIC, ...) \ - extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ - [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] -# if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) -# pragma GCC diagnostic ignored "-Wnested-externs" -# endif -#endif - -/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ -#ifdef _GL_STATIC_ASSERT_H -# if !defined _GL_HAVE__STATIC_ASSERT1 && !defined _Static_assert -# define _Static_assert(...) \ - _GL_VERIFY (__VA_ARGS__, "static assertion failed", -) -# endif -# if __cpp_static_assert < 201411 && !defined static_assert -# define static_assert _Static_assert /* C11 requires this #define. */ -# endif -#endif - -/* @assert.h omit start@ */ - -#if 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__)) -# define _GL_HAS_BUILTIN_TRAP 1 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_TRAP __has_builtin (__builtin_trap) -#else -# define _GL_HAS_BUILTIN_TRAP 0 -#endif - -#if 4 < __GNUC__ + (5 <= __GNUC_MINOR__) -# define _GL_HAS_BUILTIN_UNREACHABLE 1 -#elif defined __has_builtin -# define _GL_HAS_BUILTIN_UNREACHABLE __has_builtin (__builtin_unreachable) -#else -# define _GL_HAS_BUILTIN_UNREACHABLE 0 -#endif - -/* Each of these macros verifies that its argument R is nonzero. To - be portable, R should be an integer constant expression. Unlike - assert (R), there is no run-time overhead. - - There are two macros, since no single macro can be used in all - contexts in C. verify_expr (R, E) is for scalar contexts, including - integer constant expression contexts. verify (R) is for declaration - contexts, e.g., the top level. */ - -/* Verify requirement R at compile-time. Return the value of the - expression E. */ - -#define verify_expr(R, E) \ - (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) - -/* Verify requirement R at compile-time, as a declaration without a - trailing ';'. verify (R) acts like static_assert (R) except that - it is portable to C11/C++14 and earlier, it can issue better - diagnostics, and its name is shorter and may be more convenient. */ - -#ifdef __PGI -/* PGI barfs if R is long. */ -# define verify(R) _GL_VERIFY (R, "verify (...)", -) -#else -# define verify(R) _GL_VERIFY (R, "verify (" #R ")", -) -#endif - -/* Assume that R always holds. Behavior is undefined if R is false, - fails to evaluate, or has side effects. - - 'assume (R)' is a directive from the programmer telling the - compiler that R is true so the compiler needn't generate code to - test R. This is why 'assume' is in verify.h: it's related to - static checking (in this case, static checking done by the - programmer), not dynamic checking. - - 'assume (R)' can affect compilation of all the code, not just code - that happens to be executed after the assume (R) is "executed". - For example, if the code mistakenly does 'assert (R); assume (R);' - the compiler is entitled to optimize away the 'assert (R)'. - - Although assuming R can help a compiler generate better code or - diagnostics, performance can suffer if R uses hard-to-optimize - features such as function calls not inlined by the compiler. - - Avoid Clang's __builtin_assume, as it breaks GNU Emacs master - as of 2020-08-23T21:09:49Z!eggert@cs.ucla.edu; see - . It's not known whether this breakage - is a Clang bug or an Emacs bug; play it safe for now. */ - -#if _GL_HAS_BUILTIN_UNREACHABLE -# define assume(R) ((R) ? (void) 0 : __builtin_unreachable ()) -#elif 1200 <= _MSC_VER -# define assume(R) __assume (R) -#elif (defined GCC_LINT || defined lint) && _GL_HAS_BUILTIN_TRAP - /* Doing it this way helps various packages when configured with - --enable-gcc-warnings, which compiles with -Dlint. It's nicer - when 'assume' silences warnings even with older GCCs. */ -# define assume(R) ((R) ? (void) 0 : __builtin_trap ()) -#else - /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */ -# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) -#endif - -/* @assert.h omit end@ */ - -#endif diff --git a/jni/parted/libiconv/srclib/warn-on-use.h b/jni/parted/libiconv/srclib/warn-on-use.h deleted file mode 100755 index 94f5b92..0000000 --- a/jni/parted/libiconv/srclib/warn-on-use.h +++ /dev/null @@ -1,149 +0,0 @@ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif diff --git a/jni/parted/libiconv/srclib/wchar.h b/jni/parted/libiconv/srclib/wchar.h deleted file mode 100755 index a8321a4..0000000 --- a/jni/parted/libiconv/srclib/wchar.h +++ /dev/null @@ -1,1845 +0,0 @@ -/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ -/* A substitute for ISO C99 , for platforms that have issues. - - Copyright (C) 2007-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -/* Written by Eric Blake. */ - -/* - * ISO C 99 for platforms that have issues. - * - * - * For now, this just ensures proper prerequisite inclusion order and - * the declaration of wcwidth(). - */ - -#if __GNUC__ >= 3 -#pragma GCC system_header -#endif - - -#if (((defined __need_mbstate_t || defined __need_wint_t) \ - && !defined __MINGW32__) \ - || (defined __hpux \ - && ((defined _INTTYPES_INCLUDED \ - && !defined _GL_FINISHED_INCLUDING_SYSTEM_INTTYPES_H) \ - || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) \ - || (defined __MINGW32__ && defined __STRING_H_SOURCED__) \ - || defined _GL_ALREADY_INCLUDING_WCHAR_H) -/* Special invocation convention: - - Inside glibc and uClibc header files, but not MinGW. - - On HP-UX 11.00 we have a sequence of nested includes - -> -> , and the latter includes , - once indirectly -> -> -> - and once directly. In both situations 'wint_t' is not yet defined, - therefore we cannot provide the function overrides; instead include only - the system's . - - With MinGW 3.22, when includes , only some part of - is actually processed, and that doesn't include 'mbstate_t'. - - On IRIX 6.5, similarly, we have an include -> , and - the latter includes . But here, we have no way to detect whether - is completely included or is still being included. */ - -#include_next - -#else -/* Normal invocation convention. */ - -#ifndef _GL_WCHAR_H - -#define _GL_ALREADY_INCLUDING_WCHAR_H - -#if 1 -# include /* for __GLIBC__ */ -#endif - -/* In some builds of uClibc, is nonexistent and wchar_t is defined - by . - But avoid namespace pollution on glibc systems. */ -#if !(defined __GLIBC__ && !defined __UCLIBC__) -# include -#endif - -/* Include the original if it exists. - Some builds of uClibc lack it. */ -/* The include_next requires a split double-inclusion guard. */ -#if 1 -# include_next -#endif - -#undef _GL_ALREADY_INCLUDING_WCHAR_H - -#ifndef _GL_WCHAR_H -#define _GL_WCHAR_H - -/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers - that can be freed by passing them as the Ith argument to the - function F. */ -#ifndef _GL_ATTRIBUTE_DEALLOC -# if __GNUC__ >= 11 -# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i))) -# else -# define _GL_ATTRIBUTE_DEALLOC(f, i) -# endif -#endif - -/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that - can be freed via 'free'; it can be used only after declaring 'free'. */ -/* Applies to: functions. Cannot be used on inline functions. */ -#ifndef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1) -#endif - -/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly - allocated memory. */ -/* Applies to: functions. */ -#ifndef _GL_ATTRIBUTE_MALLOC -# if __GNUC__ >= 3 || defined __clang__ -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -# else -# define _GL_ATTRIBUTE_MALLOC -# endif -#endif - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The attribute __pure__ was added in gcc 2.96. */ -#ifndef _GL_ATTRIBUTE_PURE -# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) || defined __clang__ -# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) -# else -# define _GL_ATTRIBUTE_PURE /* empty */ -# endif -#endif - -/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ -/* C++ compatible function declaration macros. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -#ifndef _GL_CXXDEFS_H -#define _GL_CXXDEFS_H - -/* Begin/end the GNULIB_NAMESPACE namespace. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_BEGIN_NAMESPACE namespace GNULIB_NAMESPACE { -# define _GL_END_NAMESPACE } -#else -# define _GL_BEGIN_NAMESPACE -# define _GL_END_NAMESPACE -#endif - -/* The three most frequent use cases of these macros are: - - * For providing a substitute for a function that is missing on some - platforms, but is declared and works fine on the platforms on which - it exists: - - #if @GNULIB_FOO@ - # if !@HAVE_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on all platforms, - but is broken/insufficient and needs to be replaced on some platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif - - * For providing a replacement for a function that exists on some platforms - but is broken/insufficient and needs to be replaced on some of them and - is additionally either missing or undeclared on some other platforms: - - #if @GNULIB_FOO@ - # if @REPLACE_FOO@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) - # undef foo - # define foo rpl_foo - # endif - _GL_FUNCDECL_RPL (foo, ...); - _GL_CXXALIAS_RPL (foo, ...); - # else - # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ - _GL_FUNCDECL_SYS (foo, ...); - # endif - _GL_CXXALIAS_SYS (foo, ...); - # endif - _GL_CXXALIASWARN (foo); - #elif defined GNULIB_POSIXCHECK - ... - #endif -*/ - -/* _GL_EXTERN_C declaration; - performs the declaration with C linkage. */ -#if defined __cplusplus -# define _GL_EXTERN_C extern "C" -#else -# define _GL_EXTERN_C extern -#endif - -/* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); - declares a replacement function, named rpl_func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ - _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) -#define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype rpl_func parameters_and_attributes - -/* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); - declares the system function, named func, with the given prototype, - consisting of return type, parameters, and attributes. - Example: - _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) - _GL_ARG_NONNULL ((1))); - */ -#define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C rettype func parameters_and_attributes - -/* _GL_CXXALIAS_RPL (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to rpl_func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); - - Wrapping rpl_func in an object with an inline conversion operator - avoids a reference to rpl_func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#define _GL_CXXALIAS_RPL(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::rpl_func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA (func, rettype, parameters); - is to be used when func is a Microsoft deprecated alias, on native Windows. - It declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to _func, if GNULIB_NAMESPACE is defined. - Example: - _GL_CXXALIAS_MDA (open, int, (const char *filename, int flags, ...)); - */ -#define _GL_CXXALIAS_MDA(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); - is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); - except that the C function rpl_func may have a slightly different - declaration. A cast is used to silence the "invalid conversion" error - that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::rpl_func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_MDA_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_MDA (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#define _GL_CXXALIAS_MDA_CAST(func,rettype,parameters) \ - _GL_CXXALIAS_RPL_CAST_1 (func, _##func, rettype, parameters) - -/* _GL_CXXALIAS_SYS (func, rettype, parameters); - declares a C++ alias called GNULIB_NAMESPACE::func - that redirects to the system provided function func, if GNULIB_NAMESPACE - is defined. - Example: - _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); - - Wrapping func in an object with an inline conversion operator - avoids a reference to func unless GNULIB_NAMESPACE::func is - actually used in the program. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return ::func; \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function func may have a slightly different declaration. - A cast is used to silence the "invalid conversion" error that would - otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast(::func); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); - is like _GL_CXXALIAS_SYS (func, rettype, parameters); - except that the C function is picked among a set of overloaded functions, - namely the one with rettype2 and parameters2. Two consecutive casts - are used to silence the "cannot find a match" and "invalid conversion" - errors that would otherwise occur. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE - /* The outer cast must be a reinterpret_cast. - The inner cast: When the function is defined as a set of overloaded - functions, it works as a static_cast<>, choosing the designated variant. - When the function is defined as a single variant, it works as a - reinterpret_cast<>. The parenthesized cast syntax works both ways. */ -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - namespace GNULIB_NAMESPACE \ - { \ - static const struct _gl_ ## func ## _wrapper \ - { \ - typedef rettype (*type) parameters; \ - \ - inline operator type () const \ - { \ - return reinterpret_cast((rettype2 (*) parameters2)(::func)); \ - } \ - } func = {}; \ - } \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#else -# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN (func); - causes a warning to be emitted when ::func is used but not when - GNULIB_NAMESPACE::func is used. func must be defined without overloaded - variants. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN(func) \ - _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN_1(func,namespace) \ - _GL_CXXALIASWARN_2 (func, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_WARN_ON_USE (func, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -# define _GL_CXXALIASWARN_2(func,namespace) \ - extern __typeof__ (func) func -# else -# define _GL_CXXALIASWARN_2(func,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN(func) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); - causes a warning to be emitted when the given overloaded variant of ::func - is used but not when GNULIB_NAMESPACE::func is used. */ -#if defined __cplusplus && defined GNULIB_NAMESPACE -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ - GNULIB_NAMESPACE) -# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ - _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) -/* To work around GCC bug , - we enable the warning only when not optimizing. */ -# if !(defined __GNUC__ && !defined __clang__ && __OPTIMIZE__) -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_WARN_ON_USE_CXX (func, rettype, rettype, parameters_and_attributes, \ - "The symbol ::" #func " refers to the system function. " \ - "Use " #namespace "::" #func " instead.") -# else -# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -# endif -#else -# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ - _GL_EXTERN_C int _gl_cxxalias_dummy -#endif - -#endif /* _GL_CXXDEFS_H */ - -/* The definition of _GL_ARG_NONNULL is copied here. */ -/* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools - that the values passed as arguments n, ..., m must be non-NULL pointers. - n = 1 stands for the first argument, n = 2 for the second argument etc. */ -#ifndef _GL_ARG_NONNULL -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || defined __clang__ -# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) -# else -# define _GL_ARG_NONNULL(params) -# endif -#endif - -/* The definition of _GL_WARN_ON_USE is copied here. */ -/* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2022 Free Software Foundation, Inc. - - This program 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 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . */ - -/* _GL_WARN_ON_USE (function, "literal string") issues a declaration - for FUNCTION which will then trigger a compiler warning containing - the text of "literal string" anywhere that function is called, if - supported by the compiler. If the compiler does not support this - feature, the macro expands to an unused extern declaration. - - _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the - attribute used in _GL_WARN_ON_USE. If the compiler does not support - this feature, it expands to empty. - - These macros are useful for marking a function as a potential - portability trap, with the intent that "literal string" include - instructions on the replacement function that should be used - instead. - _GL_WARN_ON_USE is for functions with 'extern' linkage. - _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' - linkage. - - However, one of the reasons that a function is a portability trap is - if it has the wrong signature. Declaring FUNCTION with a different - signature in C is a compilation error, so this macro must use the - same type as any existing declaration so that programs that avoid - the problematic FUNCTION do not fail to compile merely because they - included a header that poisoned the function. But this implies that - _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already - have a declaration. Use of this macro implies that there must not - be any other macro hiding the declaration of FUNCTION; but - undefining FUNCTION first is part of the poisoning process anyway - (although for symbols that are provided only via a macro, the result - is a compilation error rather than a warning containing - "literal string"). Also note that in C++, it is only safe to use if - FUNCTION has no overloads. - - For an example, it is possible to poison 'getline' by: - - adding a call to gl_WARN_ON_USE_PREPARE([[#include ]], - [getline]) in configure.ac, which potentially defines - HAVE_RAW_DECL_GETLINE - - adding this code to a header that wraps the system : - #undef getline - #if HAVE_RAW_DECL_GETLINE - _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" - "not universally present; use the gnulib module getline"); - #endif - - It is not possible to directly poison global variables. But it is - possible to write a wrapper accessor function, and poison that - (less common usage, like &environ, will cause a compilation error - rather than issue the nice warning, but the end result of informing - the developer about their portability problem is still achieved): - #if HAVE_RAW_DECL_ENVIRON - static char *** - rpl_environ (void) { return &environ; } - _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); - # undef environ - # define environ (*rpl_environ ()) - #endif - or better (avoiding contradictory use of 'static' and 'extern'): - #if HAVE_RAW_DECL_ENVIRON - static char *** - _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") - rpl_environ (void) { return &environ; } - # undef environ - # define environ (*rpl_environ ()) - #endif - */ -#ifndef _GL_WARN_ON_USE - -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function __attribute__ ((__warning__ (message))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__warning__ (message))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ - __attribute__ ((__diagnose_if__ (1, message, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C __typeof__ (function) function -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# else /* Unsupported. */ -# define _GL_WARN_ON_USE(function, message) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# define _GL_WARN_ON_USE_ATTRIBUTE(message) -# endif -#endif - -/* _GL_WARN_ON_USE_CXX (function, rettype_gcc, rettype_clang, parameters_and_attributes, "message") - is like _GL_WARN_ON_USE (function, "message"), except that in C++ mode the - function is declared with the given prototype, consisting of return type, - parameters, and attributes. - This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does - not work in this case. */ -#ifndef _GL_WARN_ON_USE_CXX -# if !defined __cplusplus -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ - _GL_WARN_ON_USE (function, msg) -# else -# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) -/* A compiler attribute is available in gcc versions 4.3.0 and later. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes \ - __attribute__ ((__warning__ (msg))) -# elif __clang_major__ >= 4 -/* Another compiler attribute is available in clang. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_clang function parameters_and_attributes \ - __attribute__ ((__diagnose_if__ (1, msg, "warning"))) -# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING -/* Verify the existence of the function. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -extern rettype_gcc function parameters_and_attributes -# else /* Unsupported. */ -# define _GL_WARN_ON_USE_CXX(function,rettype_gcc,rettype_clang,parameters_and_attributes,msg) \ -_GL_WARN_EXTERN_C int _gl_warn_on_use -# endif -# endif -#endif - -/* _GL_WARN_EXTERN_C declaration; - performs the declaration with C linkage. */ -#ifndef _GL_WARN_EXTERN_C -# if defined __cplusplus -# define _GL_WARN_EXTERN_C extern "C" -# else -# define _GL_WARN_EXTERN_C extern -# endif -#endif - - -/* Define wint_t and WEOF. (Also done in wctype.in.h.) */ -#if !1 && !defined wint_t -# define wint_t int -# ifndef WEOF -# define WEOF -1 -# endif -#else -/* mingw and MSVC define wint_t as 'unsigned short' in or - . This is too small: ISO C 99 section 7.24.1.(2) says that - wint_t must be "unchanged by default argument promotions". Override it. */ -# if 0 -# if !GNULIB_defined_wint_t -# if 0 -# include -# else -# include -# endif -typedef unsigned int rpl_wint_t; -# undef wint_t -# define wint_t rpl_wint_t -# define GNULIB_defined_wint_t 1 -# endif -# endif -# ifndef WEOF -# define WEOF ((wint_t) -1) -# endif -#endif - - -/* Override mbstate_t if it is too small. - On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for - implementing mbrtowc for encodings like UTF-8. - On AIX and MSVC, mbrtowc needs to be overridden, but mbstate_t exists and is - large enough and overriding it would cause problems in C++ mode. */ -#if !(((defined _WIN32 && !defined __CYGWIN__) || 1) && 1) || 0 -# if !GNULIB_defined_mbstate_t -# if !(defined _AIX || defined _MSC_VER) -typedef int rpl_mbstate_t; -# undef mbstate_t -# define mbstate_t rpl_mbstate_t -# endif -# define GNULIB_defined_mbstate_t 1 -# endif -#endif - -/* Make _GL_ATTRIBUTE_DEALLOC_FREE work, even though may not have - been included yet. */ -#if 1 -# if (1 && !defined free \ - && !(defined __cplusplus && defined GNULIB_NAMESPACE)) -/* We can't do '#define free rpl_free' here. */ -_GL_EXTERN_C void rpl_free (void *); -# undef _GL_ATTRIBUTE_DEALLOC_FREE -# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (rpl_free, 1) -# else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -# endif -#else -# if defined _MSC_VER && !defined free -_GL_EXTERN_C -# if defined _DLL - __declspec (dllimport) -# endif - void __cdecl free (void *); -# else -# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) -_GL_EXTERN_C void free (void *) throw (); -# else -_GL_EXTERN_C void free (void *); -# endif -# endif -#endif - -/* Convert a single-byte character to a wide character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef btowc -# define btowc rpl_btowc -# endif -_GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (btowc, wint_t, (int c)); -# else -# if !1 -_GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); -# endif -/* Need to cast, because on mingw, the return type is 'unsigned short'. */ -_GL_CXXALIAS_SYS_CAST (btowc, wint_t, (int c)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (btowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef btowc -# if HAVE_RAW_DECL_BTOWC -_GL_WARN_ON_USE (btowc, "btowc is unportable - " - "use gnulib module btowc for portability"); -# endif -#endif - - -/* Convert a wide character to a single-byte character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wctob -# define wctob rpl_wctob -# endif -_GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); -# else -# if !defined wctob && !1 -/* wctob is provided by gnulib, or wctob exists but is not declared. */ -_GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wctob); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wctob -# if HAVE_RAW_DECL_WCTOB -_GL_WARN_ON_USE (wctob, "wctob is unportable - " - "use gnulib module wctob for portability"); -# endif -#endif - - -/* Test whether *PS is in the initial state. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbsinit -# define mbsinit rpl_mbsinit -# endif -_GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); -_GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); -# endif -_GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbsinit); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsinit -# if HAVE_RAW_DECL_MBSINIT -_GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " - "use gnulib module mbsinit for portability"); -# endif -#endif - - -/* Convert a multibyte character to a wide character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbrtowc -# define mbrtowc rpl_mbrtowc -# endif -_GL_FUNCDECL_RPL (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); -_GL_CXXALIAS_RPL (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); -# endif -_GL_CXXALIAS_SYS (mbrtowc, size_t, - (wchar_t *restrict pwc, const char *restrict s, size_t n, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbrtowc); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrtowc -# if HAVE_RAW_DECL_MBRTOWC -_GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " - "use gnulib module mbrtowc for portability"); -# endif -#endif - - -/* Recognize a multibyte character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbrlen -# define mbrlen rpl_mbrlen -# endif -_GL_FUNCDECL_RPL (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -_GL_CXXALIAS_RPL (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -# endif -_GL_CXXALIAS_SYS (mbrlen, size_t, - (const char *restrict s, size_t n, mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbrlen); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbrlen -# if HAVE_RAW_DECL_MBRLEN -_GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " - "use gnulib module mbrlen for portability"); -# endif -#endif - - -/* Convert a string to a wide string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbsrtowcs -# define mbsrtowcs rpl_mbsrtowcs -# endif -_GL_FUNCDECL_RPL (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbsrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (mbsrtowcs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef mbsrtowcs -# if HAVE_RAW_DECL_MBSRTOWCS -_GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " - "use gnulib module mbsrtowcs for portability"); -# endif -#endif - - -/* Convert a string to a wide string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef mbsnrtowcs -# define mbsnrtowcs rpl_mbsnrtowcs -# endif -_GL_FUNCDECL_RPL (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (mbsnrtowcs, size_t, - (wchar_t *restrict dest, - const char **restrict srcp, size_t srclen, size_t len, - mbstate_t *restrict ps)); -# endif -_GL_CXXALIASWARN (mbsnrtowcs); -#elif defined GNULIB_POSIXCHECK -# undef mbsnrtowcs -# if HAVE_RAW_DECL_MBSNRTOWCS -_GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " - "use gnulib module mbsnrtowcs for portability"); -# endif -#endif - - -/* Convert a wide character to a multibyte character. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcrtomb -# define wcrtomb rpl_wcrtomb -# endif -_GL_FUNCDECL_RPL (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -_GL_CXXALIAS_RPL (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -# endif -_GL_CXXALIAS_SYS (wcrtomb, size_t, - (char *restrict s, wchar_t wc, mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcrtomb); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcrtomb -# if HAVE_RAW_DECL_WCRTOMB -_GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " - "use gnulib module wcrtomb for portability"); -# endif -#endif - - -/* Convert a wide string to a string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsrtombs -# define wcsrtombs rpl_wcsrtombs -# endif -_GL_FUNCDECL_RPL (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (wcsrtombs, size_t, - (char *restrict dest, const wchar_t **restrict srcp, - size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsrtombs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsrtombs -# if HAVE_RAW_DECL_WCSRTOMBS -_GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " - "use gnulib module wcsrtombs for portability"); -# endif -#endif - - -/* Convert a wide string to a string. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsnrtombs -# define wcsnrtombs rpl_wcsnrtombs -# endif -_GL_FUNCDECL_RPL (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -_GL_CXXALIAS_RPL (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps)); -# else -# if !1 || (defined __cplusplus && defined __sun) -_GL_FUNCDECL_SYS (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps) - _GL_ARG_NONNULL ((2))); -# endif -_GL_CXXALIAS_SYS (wcsnrtombs, size_t, - (char *restrict dest, - const wchar_t **restrict srcp, size_t srclen, - size_t len, - mbstate_t *restrict ps)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsnrtombs); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsnrtombs -# if HAVE_RAW_DECL_WCSNRTOMBS -_GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " - "use gnulib module wcsnrtombs for portability"); -# endif -#endif - - -/* Return the number of screen columns needed for WC. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcwidth -# define wcwidth rpl_wcwidth -# endif -_GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); -# else -# if !1 -/* wcwidth exists but is not declared. */ -_GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcwidth); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcwidth -# if HAVE_RAW_DECL_WCWIDTH -_GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " - "use gnulib module wcwidth for portability"); -# endif -#endif - - -/* Search N wide characters of S for C. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); - wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); - } */ -_GL_CXXALIAS_SYS_CAST2 (wmemchr, - wchar_t *, (const wchar_t *, wchar_t, size_t), - const wchar_t *, (const wchar_t *, wchar_t, size_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) -_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); -_GL_CXXALIASWARN1 (wmemchr, const wchar_t *, - (const wchar_t *s, wchar_t c, size_t n)); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemchr -# if HAVE_RAW_DECL_WMEMCHR -_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " - "use gnulib module wmemchr for portability"); -# endif -#endif - - -/* Compare N wide characters of S1 and S2. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemcmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wmemcmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemcmp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemcmp -# if HAVE_RAW_DECL_WMEMCMP -_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " - "use gnulib module wmemcmp for portability"); -# endif -#endif - - -/* Copy N wide characters of SRC to DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# endif -_GL_CXXALIAS_SYS (wmemcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemcpy -# if HAVE_RAW_DECL_WMEMCPY -_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " - "use gnulib module wmemcpy for portability"); -# endif -#endif - - -/* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for - overlapping memory areas. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemmove, wchar_t *, - (wchar_t *dest, const wchar_t *src, size_t n)); -# endif -_GL_CXXALIAS_SYS (wmemmove, wchar_t *, - (wchar_t *dest, const wchar_t *src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemmove); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemmove -# if HAVE_RAW_DECL_WMEMMOVE -_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " - "use gnulib module wmemmove for portability"); -# endif -#endif - - -/* Copy N wide characters of SRC to DEST. - Return pointer to wide characters after the last written wide character. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# endif -_GL_CXXALIAS_SYS (wmempcpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmempcpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmempcpy -# if HAVE_RAW_DECL_WMEMPCPY -_GL_WARN_ON_USE (wmempcpy, "wmempcpy is unportable - " - "use gnulib module wmempcpy for portability"); -# endif -#endif - - -/* Set N wide characters of S to C. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); -# endif -_GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wmemset); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wmemset -# if HAVE_RAW_DECL_WMEMSET -_GL_WARN_ON_USE (wmemset, "wmemset is unportable - " - "use gnulib module wmemset for portability"); -# endif -#endif - - -/* Return the number of wide characters in S. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcslen); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcslen -# if HAVE_RAW_DECL_WCSLEN -_GL_WARN_ON_USE (wcslen, "wcslen is unportable - " - "use gnulib module wcslen for portability"); -# endif -#endif - - -/* Return the number of wide characters in S, but at most MAXLEN. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); -_GL_CXXALIASWARN (wcsnlen); -#elif defined GNULIB_POSIXCHECK -# undef wcsnlen -# if HAVE_RAW_DECL_WCSNLEN -_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " - "use gnulib module wcsnlen for portability"); -# endif -#endif - - -/* Copy SRC to DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# endif -_GL_CXXALIAS_SYS (wcscpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscpy -# if HAVE_RAW_DECL_WCSCPY -_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " - "use gnulib module wcscpy for portability"); -# endif -#endif - - -/* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# endif -_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -_GL_CXXALIASWARN (wcpcpy); -#elif defined GNULIB_POSIXCHECK -# undef wcpcpy -# if HAVE_RAW_DECL_WCPCPY -_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " - "use gnulib module wcpcpy for portability"); -# endif -#endif - - -/* Copy no more than N wide characters of SRC to DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# endif -_GL_CXXALIAS_SYS (wcsncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsncpy); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsncpy -# if HAVE_RAW_DECL_WCSNCPY -_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " - "use gnulib module wcsncpy for portability"); -# endif -#endif - - -/* Copy no more than N characters of SRC to DEST, returning the address of - the last character written into DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcpncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -# endif -_GL_CXXALIAS_SYS (wcpncpy, wchar_t *, - (wchar_t *restrict dest, - const wchar_t *restrict src, size_t n)); -_GL_CXXALIASWARN (wcpncpy); -#elif defined GNULIB_POSIXCHECK -# undef wcpncpy -# if HAVE_RAW_DECL_WCPNCPY -_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " - "use gnulib module wcpncpy for portability"); -# endif -#endif - - -/* Append SRC onto DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# endif -_GL_CXXALIAS_SYS (wcscat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscat -# if HAVE_RAW_DECL_WCSCAT -_GL_WARN_ON_USE (wcscat, "wcscat is unportable - " - "use gnulib module wcscat for portability"); -# endif -#endif - - -/* Append no more than N wide characters of SRC onto DEST. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsncat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src, - size_t n)); -# endif -_GL_CXXALIAS_SYS (wcsncat, wchar_t *, - (wchar_t *restrict dest, const wchar_t *restrict src, - size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsncat); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsncat -# if HAVE_RAW_DECL_WCSNCAT -_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " - "use gnulib module wcsncat for portability"); -# endif -#endif - - -/* Compare S1 and S2. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscmp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscmp -# if HAVE_RAW_DECL_WCSCMP -_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " - "use gnulib module wcscmp for portability"); -# endif -#endif - - -/* Compare no more than N wide characters of S1 and S2. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsncmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsncmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsncmp); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsncmp -# if HAVE_RAW_DECL_WCSNCMP -_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " - "use gnulib module wcsncmp for portability"); -# endif -#endif - - -/* Compare S1 and S2, ignoring case. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); -_GL_CXXALIASWARN (wcscasecmp); -#elif defined GNULIB_POSIXCHECK -# undef wcscasecmp -# if HAVE_RAW_DECL_WCSCASECMP -_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " - "use gnulib module wcscasecmp for portability"); -# endif -#endif - - -/* Compare no more than N chars of S1 and S2, ignoring case. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsncasecmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsncasecmp, int, - (const wchar_t *s1, const wchar_t *s2, size_t n)); -_GL_CXXALIASWARN (wcsncasecmp); -#elif defined GNULIB_POSIXCHECK -# undef wcsncasecmp -# if HAVE_RAW_DECL_WCSNCASECMP -_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " - "use gnulib module wcsncasecmp for portability"); -# endif -#endif - - -/* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE - category of the current locale. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); -# endif -_GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscoll); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscoll -# if HAVE_RAW_DECL_WCSCOLL -_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " - "use gnulib module wcscoll for portability"); -# endif -#endif - - -/* Transform S2 into array pointed to by S1 such that if wcscmp is applied - to two transformed strings the result is the as applying 'wcscoll' to the - original strings. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsxfrm, size_t, - (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); -# endif -_GL_CXXALIAS_SYS (wcsxfrm, size_t, - (wchar_t *restrict s1, const wchar_t *restrict s2, size_t n)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsxfrm); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsxfrm -# if HAVE_RAW_DECL_WCSXFRM -_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " - "use gnulib module wcsxfrm for portability"); -# endif -#endif - - -/* Duplicate S, returning an identical malloc'd string. */ -#if 0 -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsdup -# define wcsdup _wcsdup -# endif -_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); -# else -# if !1 || __GNUC__ >= 11 -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); -# endif -_GL_CXXALIASWARN (wcsdup); -#else -# if __GNUC__ >= 11 && !defined wcsdup -/* For -Wmismatched-dealloc: Associate wcsdup with free or rpl_free. */ -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# endif -# if defined GNULIB_POSIXCHECK -# undef wcsdup -# if HAVE_RAW_DECL_WCSDUP -_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " - "use gnulib module wcsdup for portability"); -# endif -# elif 1 -/* On native Windows, map 'wcsdup' to '_wcsdup', so that -loldnames is not - required. In C++ with GNULIB_NAMESPACE, avoid differences between - platforms by defining GNULIB_NAMESPACE::wcsdup always. */ -# if defined _WIN32 && !defined __CYGWIN__ -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsdup -# define wcsdup _wcsdup -# endif -_GL_CXXALIAS_MDA (wcsdup, wchar_t *, (const wchar_t *s)); -# else -_GL_FUNCDECL_SYS (wcsdup, wchar_t *, - (const wchar_t *s) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE); -# if 1 -_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); -# endif -# endif -# if (defined _WIN32 && !defined __CYGWIN__) || 1 -_GL_CXXALIASWARN (wcsdup); -# endif -# endif -#endif - - -/* Find the first occurrence of WC in WCS. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcschr (const wchar_t *, wchar_t); - wchar_t * std::wcschr (wchar_t *, wchar_t); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcschr, - wchar_t *, (const wchar_t *, wchar_t), - const wchar_t *, (const wchar_t *, wchar_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) -_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); -_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcschr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcschr -# if HAVE_RAW_DECL_WCSCHR -_GL_WARN_ON_USE (wcschr, "wcschr is unportable - " - "use gnulib module wcschr for portability"); -# endif -#endif - - -/* Find the last occurrence of WC in WCS. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); - wchar_t * std::wcsrchr (wchar_t *, wchar_t); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcsrchr, - wchar_t *, (const wchar_t *, wchar_t), - const wchar_t *, (const wchar_t *, wchar_t)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) -_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); -_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsrchr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsrchr -# if HAVE_RAW_DECL_WCSRCHR -_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " - "use gnulib module wcsrchr for portability"); -# endif -#endif - - -/* Return the length of the initial segmet of WCS which consists entirely - of wide characters not in REJECT. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcscspn); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcscspn -# if HAVE_RAW_DECL_WCSCSPN -_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " - "use gnulib module wcscspn for portability"); -# endif -#endif - - -/* Return the length of the initial segmet of WCS which consists entirely - of wide characters in ACCEPT. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsspn); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsspn -# if HAVE_RAW_DECL_WCSSPN -_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " - "use gnulib module wcsspn for portability"); -# endif -#endif - - -/* Find the first occurrence in WCS of any character in ACCEPT. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcspbrk, wchar_t *, - (const wchar_t *wcs, const wchar_t *accept) - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); - wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcspbrk, - wchar_t *, (const wchar_t *, const wchar_t *), - const wchar_t *, (const wchar_t *, const wchar_t *)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) -_GL_CXXALIASWARN1 (wcspbrk, wchar_t *, - (wchar_t *wcs, const wchar_t *accept)); -_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, - (const wchar_t *wcs, const wchar_t *accept)); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcspbrk); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcspbrk -# if HAVE_RAW_DECL_WCSPBRK -_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " - "use gnulib module wcspbrk for portability"); -# endif -#endif - - -/* Find the first occurrence of NEEDLE in HAYSTACK. */ -#if 0 -# if !1 -_GL_FUNCDECL_SYS (wcsstr, wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle) - _GL_ATTRIBUTE_PURE); -# endif - /* On some systems, this function is defined as an overloaded function: - extern "C++" { - const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); - wchar_t * std::wcsstr (wchar_t *, const wchar_t *); - } */ -_GL_CXXALIAS_SYS_CAST2 (wcsstr, - wchar_t *, - (const wchar_t *restrict, const wchar_t *restrict), - const wchar_t *, - (const wchar_t *restrict, const wchar_t *restrict)); -# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ - && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) -_GL_CXXALIASWARN1 (wcsstr, wchar_t *, - (wchar_t *restrict haystack, - const wchar_t *restrict needle)); -_GL_CXXALIASWARN1 (wcsstr, const wchar_t *, - (const wchar_t *restrict haystack, - const wchar_t *restrict needle)); -# elif __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsstr); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsstr -# if HAVE_RAW_DECL_WCSSTR -_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " - "use gnulib module wcsstr for portability"); -# endif -#endif - - -/* Divide WCS into tokens separated by characters in DELIM. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcstok -# define wcstok rpl_wcstok -# endif -_GL_FUNCDECL_RPL (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -_GL_CXXALIAS_RPL (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# endif -_GL_CXXALIAS_SYS (wcstok, wchar_t *, - (wchar_t *restrict wcs, const wchar_t *restrict delim, - wchar_t **restrict ptr)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcstok); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcstok -# if HAVE_RAW_DECL_WCSTOK -_GL_WARN_ON_USE (wcstok, "wcstok is unportable - " - "use gnulib module wcstok for portability"); -# endif -#endif - - -/* Determine number of column positions required for first N wide - characters (or fewer if S ends before this) in S. */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcswidth -# define wcswidth rpl_wcswidth -# endif -_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) - _GL_ATTRIBUTE_PURE); -_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) - _GL_ATTRIBUTE_PURE); -# endif -_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcswidth); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcswidth -# if HAVE_RAW_DECL_WCSWIDTH -_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " - "use gnulib module wcswidth for portability"); -# endif -#endif - - -/* Convert *TP to a date and time wide string. See - . */ -#if 0 -# if 0 -# if !(defined __cplusplus && defined GNULIB_NAMESPACE) -# undef wcsftime -# define wcsftime rpl_wcsftime -# endif -_GL_FUNCDECL_RPL (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp) - _GL_ARG_NONNULL ((1, 3, 4))); -_GL_CXXALIAS_RPL (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp)); -# else -# if !1 -_GL_FUNCDECL_SYS (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp) - _GL_ARG_NONNULL ((1, 3, 4))); -# endif -_GL_CXXALIAS_SYS (wcsftime, size_t, - (wchar_t *restrict __buf, size_t __bufsize, - const wchar_t *restrict __fmt, - const struct tm *restrict __tp)); -# endif -# if __GLIBC__ >= 2 -_GL_CXXALIASWARN (wcsftime); -# endif -#elif defined GNULIB_POSIXCHECK -# undef wcsftime -# if HAVE_RAW_DECL_WCSFTIME -_GL_WARN_ON_USE (wcsftime, "wcsftime is unportable - " - "use gnulib module wcsftime for portability"); -# endif -#endif - - -#endif /* _GL_WCHAR_H */ -#endif /* _GL_WCHAR_H */ -#endif diff --git a/jni/parted/libiconv/srclib/xalloc-oversized.h b/jni/parted/libiconv/srclib/xalloc-oversized.h deleted file mode 100755 index aefa6fd..0000000 --- a/jni/parted/libiconv/srclib/xalloc-oversized.h +++ /dev/null @@ -1,65 +0,0 @@ -/* xalloc-oversized.h -- memory allocation size checking - - Copyright (C) 1990-2000, 2003-2004, 2006-2022 Free Software Foundation, Inc. - - This file 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 file 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 program. If not, see . */ - -#ifndef XALLOC_OVERSIZED_H_ -#define XALLOC_OVERSIZED_H_ - -#include -#include - -/* True if N * S does not fit into both ptrdiff_t and size_t. - N and S should be nonnegative and free of side effects. - This expands to a constant expression if N and S are both constants. - By gnulib convention, SIZE_MAX represents overflow in size_t - calculations, so the conservative size_t-based dividend to use here - is SIZE_MAX - 1. */ -#define __xalloc_oversized(n, s) \ - ((s) != 0 \ - && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \ - < (n))) - -/* Return 1 if and only if an array of N objects, each of size S, - cannot exist reliably because its total size in bytes would exceed - MIN (PTRDIFF_MAX, SIZE_MAX - 1). - - N and S should be nonnegative and free of side effects. - - Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can - misbehave if N and S are both narrower than ptrdiff_t and size_t, - and can be rewritten as (xalloc_oversized (N, S) ? NULL - : malloc (N * (size_t) S)). - - This is a macro, not a function, so that it works even if an - argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX). */ -#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX -# define xalloc_oversized(n, s) \ - __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1) -#elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \ - && PTRDIFF_MAX < SIZE_MAX) -# define xalloc_oversized(n, s) \ - (__builtin_constant_p (n) && __builtin_constant_p (s) \ - ? __xalloc_oversized (n, s) \ - : ({ ptrdiff_t __xalloc_count; \ - __builtin_mul_overflow (n, s, &__xalloc_count); })) - -/* Other compilers use integer division; this may be slower but is - more portable. */ -#else -# define xalloc_oversized(n, s) __xalloc_oversized (n, s) -#endif - -#endif /* !XALLOC_OVERSIZED_H_ */ diff --git a/jni/parted/libiconv/srclib/xalloc.h b/jni/parted/libiconv/srclib/xalloc.h deleted file mode 100755 index c4ba23c..0000000 --- a/jni/parted/libiconv/srclib/xalloc.h +++ /dev/null @@ -1,158 +0,0 @@ -/* malloc with out of memory checking. - Copyright (C) 2001-2004, 2006 Free Software Foundation, Inc. - Written by Bruno Haible , 2001. - - 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 3 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, see . */ - -#ifndef _XALLOC_H -#define _XALLOC_H - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Defined in xmalloc.c. */ - -/* Allocate SIZE bytes of memory dynamically, with error checking. */ -extern void *xmalloc (size_t size); - -/* Allocate memory for NMEMB elements of SIZE bytes, with error checking. - SIZE must be > 0. */ -extern void *xnmalloc (size_t nmemb, size_t size); - -/* Allocate SIZE bytes of memory dynamically, with error checking, - and zero it. */ -extern void *xzalloc (size_t size); - -/* Allocate memory for NMEMB elements of SIZE bytes, with error checking, - and zero it. */ -extern void *xcalloc (size_t nmemb, size_t size); - -/* Change the size of an allocated block of memory PTR to SIZE bytes, - with error checking. If PTR is NULL, run xmalloc. */ -extern void *xrealloc (void *ptr, size_t size); -#ifdef __cplusplus -} -template - inline T * xrealloc (T * ptr, size_t size) - { - return (T *) xrealloc ((void *) ptr, size); - } -extern "C" { -#endif - -/* This function is always triggered when memory is exhausted. It is - in charge of honoring the three previous items. This is the - function to call when one wants the program to die because of a - memory allocation failure. */ -extern void xalloc_die (void) -#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5)) && !__STRICT_ANSI__ - __attribute__ ((__noreturn__)) -#endif - ; - -/* In the following macros, T must be an elementary or structure/union or - typedef'ed type, or a pointer to such a type. To apply one of the - following macros to a function pointer or array type, you need to typedef - it first and use the typedef name. */ - -/* Allocate an object of type T dynamically, with error checking. */ -/* extern T *XMALLOC (typename T); */ -#define XMALLOC(T) \ - ((T *) xmalloc (sizeof (T))) - -/* Allocate memory for NMEMB elements of type T, with error checking. */ -/* extern T *XNMALLOC (size_t nmemb, typename T); */ -#if HAVE_INLINE -/* xnmalloc performs a division and multiplication by sizeof (T). Arrange to - perform the division at compile-time and the multiplication with a factor - known at compile-time. */ -# define XNMALLOC(N,T) \ - ((T *) (sizeof (T) == 1 \ - ? xmalloc (N) \ - : xnboundedmalloc(N, (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / sizeof (T), sizeof (T)))) -static inline void * -xnboundedmalloc (size_t n, size_t bound, size_t s) -{ - if (n > bound) - xalloc_die (); - return xmalloc (n * s); -} -#else -# define XNMALLOC(N,T) \ - ((T *) (sizeof (T) == 1 ? xmalloc (N) : xnmalloc (N, sizeof (T)))) -#endif - -/* Allocate an object of type T dynamically, with error checking, - and zero it. */ -/* extern T *XZALLOC (typename T); */ -#define XZALLOC(T) \ - ((T *) xzalloc (sizeof (T))) - -/* Allocate memory for NMEMB elements of type T, with error checking, - and zero it. */ -/* extern T *XCALLOC (size_t nmemb, typename T); */ -#define XCALLOC(N,T) \ - ((T *) xcalloc (N, sizeof (T))) - -/* Return a pointer to a new buffer of N bytes. This is like xmalloc, - except it returns char *. */ -#define xcharalloc(N) \ - XNMALLOC (N, char) - - -/* Defined in xstrdup.c. */ - -/* Return a newly allocated copy of the N bytes of memory starting at P. */ -extern void *xmemdup (const void *p, size_t n); -#ifdef __cplusplus -} -template - inline T * xmemdup (const T * p, size_t n) - { - return (T *) xmemdup ((const void *) p, n); - } -extern "C" { -#endif - -/* Return a newly allocated copy of STRING. */ -extern char *xstrdup (const char *string); - - -/* Return 1 if an array of N objects, each of size S, cannot exist due - to size arithmetic overflow. S must be positive and N must be - nonnegative. This is a macro, not an inline function, so that it - works correctly even when SIZE_MAX < N. - - By gnulib convention, SIZE_MAX represents overflow in size - calculations, so the conservative dividend to use here is - SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value. - However, malloc (SIZE_MAX) fails on all known hosts where - sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for - exactly-SIZE_MAX allocations on such hosts; this avoids a test and - branch when S is known to be 1. */ -# define xalloc_oversized(n, s) \ - ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n)) - - -#ifdef __cplusplus -} -#endif - - -#endif /* _XALLOC_H */ diff --git a/jni/parted/libiconv/srclib/xreadlink.h b/jni/parted/libiconv/srclib/xreadlink.h deleted file mode 100755 index f68502f..0000000 --- a/jni/parted/libiconv/srclib/xreadlink.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Reading symbolic links without size limitation. - - Copyright (C) 2001, 2003-2004, 2007, 2009-2022 Free Software Foundation, - Inc. - - 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 3 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, see . */ - -/* Written by Jim Meyering */ - -#include - -extern char *xreadlink (char const *filename) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; - -#if GNULIB_XREADLINKAT -extern char *xreadlinkat (int fd, char const *filename) - _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE; -#endif diff --git a/jni/parted/libparted/Android.mk b/jni/parted/libparted/Android.mk deleted file mode 100755 index e00cd47..0000000 --- a/jni/parted/libparted/Android.mk +++ /dev/null @@ -1,115 +0,0 @@ -# By YZBruh - -# Copyright 2024 Partition Manager -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -######## -# 3.0.2 -######## - -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := libparted -LOCAL_SRC_FILES := \ - $(LOCAL_PATH)/architecture.c \ - $(LOCAL_PATH)/debug.c \ - $(LOCAL_PATH)/device.c \ - $(LOCAL_PATH)/disk.c \ - $(LOCAL_PATH)/exception.c \ - $(LOCAL_PATH)/filesys.c \ - $(LOCAL_PATH)/libparted.c \ - $(LOCAL_PATH)/timer.c \ - $(LOCAL_PATH)/unit.c \ - $(LOCAL_PATH)/arch/linux.c \ - $(LOCAL_PATH)/cs/constraint.c \ - $(LOCAL_PATH)/cs/geom.c \ - $(LOCAL_PATH)/cs/natmath.c \ - $(LOCAL_PATH)/fs/amiga/a-interface.c \ - $(LOCAL_PATH)/fs/amiga/affs.c \ - $(LOCAL_PATH)/fs/amiga/amiga.c \ - $(LOCAL_PATH)/fs/amiga/apfs.c \ - $(LOCAL_PATH)/fs/amiga/asfs.c \ - $(LOCAL_PATH)/fs/btrfs/btrfs.c \ - $(LOCAL_PATH)/fs/ext2/interface.c \ - $(LOCAL_PATH)/fs/f2fs/f2fs.c \ - $(LOCAL_PATH)/fs/fat/bootsector.c \ - $(LOCAL_PATH)/fs/fat/fat.c \ - $(LOCAL_PATH)/fs/hfs/hfs.c \ - $(LOCAL_PATH)/fs/hfs/probe.c \ - $(LOCAL_PATH)/fs/jfs/jfs.c \ - $(LOCAL_PATH)/fs/linux_swap/linux_swap.c \ - $(LOCAL_PATH)/fs/nilfs2/nilfs2.c \ - $(LOCAL_PATH)/fs/ntfs/ntfs.c \ - $(LOCAL_PATH)/fs/r/filesys.c \ - $(LOCAL_PATH)/fs/r/fat/bootsector.c \ - $(LOCAL_PATH)/fs/r/fat/calc.c \ - $(LOCAL_PATH)/fs/r/fat/clstdup.c \ - $(LOCAL_PATH)/fs/r/fat/context.c \ - $(LOCAL_PATH)/fs/r/fat/count.c \ - $(LOCAL_PATH)/fs/r/fat/fat.c \ - $(LOCAL_PATH)/fs/r/fat/fatio.c \ - $(LOCAL_PATH)/fs/r/fat/resize.c \ - $(LOCAL_PATH)/fs/r/fat/table.c \ - $(LOCAL_PATH)/fs/r/fat/traverse.c \ - $(LOCAL_PATH)/fs/r/hfs/advfs.c \ - $(LOCAL_PATH)/fs/r/hfs/advfs_plus.c \ - $(LOCAL_PATH)/fs/r/hfs/cache.c \ - $(LOCAL_PATH)/fs/r/hfs/file.c \ - $(LOCAL_PATH)/fs/r/hfs/file_plus.c \ - $(LOCAL_PATH)/fs/r/hfs/hfs.c \ - $(LOCAL_PATH)/fs/r/hfs/journal.c \ - $(LOCAL_PATH)/fs/r/hfs/probe.c \ - $(LOCAL_PATH)/fs/r/hfs/reloc.c \ - $(LOCAL_PATH)/fs/r/hfs/reloc_plus.c \ - $(LOCAL_PATH)/fs/reiserfs/reiserfs.c \ - $(LOCAL_PATH)/fs/udf/udf.c \ - $(LOCAL_PATH)/fs/ufs/ufs.c \ - $(LOCAL_PATH)/fs/xfs/xfs.c \ - $(LOCAL_PATH)/labels/aix.c \ - $(LOCAL_PATH)/labels/atari.c \ - $(LOCAL_PATH)/labels/bsd.c \ - $(LOCAL_PATH)/labels/dos.c \ - $(LOCAL_PATH)/labels/dvh.c \ - $(LOCAL_PATH)/labels/efi_crc32.c \ - $(LOCAL_PATH)/labels/fdasd.c \ - $(LOCAL_PATH)/labels/gpt.c \ - $(LOCAL_PATH)/labels/loop.c \ - $(LOCAL_PATH)/labels/mac.c \ - $(LOCAL_PATH)/labels/pt-tools.c \ - $(LOCAL_PATH)/labels/rdb.c \ - $(LOCAL_PATH)/labels/sun.c \ - $(LOCAL_PATH)/labels/vtoc.c -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/../../include \ - $(LOCAL_PATH)/../../include/libgnulib \ - $(LOCAL_PATH)/parted \ - $(LOCAL_PATH)/libparted \ - $(LOCAL_PATH)/libparted/labels \ - $(LOCAL_PATH)/lib -LOCAL_CFLAGS := \ - -Wall \ - -Wextra \ - -fPIC \ - -Wno-pointer-sign \ - -Wno-sign-compare \ - -Wno-gnu-designator \ - -Wno-unused-variable \ - -Wno-unused-parameter \ - -Wno-unused-command-line-argument \ - -Wno-missing-field-initializers \ - -Wno-single-bit-bitfield-constant-conversion - -include $(BUILD_STATIC_LIBRARY) \ No newline at end of file diff --git a/jni/parted/libparted/ChangeLog.0 b/jni/parted/libparted/ChangeLog.0 deleted file mode 100755 index 16c11c3..0000000 --- a/jni/parted/libparted/ChangeLog.0 +++ /dev/null @@ -1,255 +0,0 @@ -2006-11-11 Otavio Salvador - - * libparted/debug.c (ped_assert): Print backtrace stack when - throwing an exception. - - * libparted/Makefile.am: Add -rdynamic on LDFLAGS. - -2006-11-10 Otavio Salvador - - * libparted/filesys.c (ped_file_system_type_unregister): Handle - instances where fs_types == NULL and the given fs_type is not in - the list of registered file-system types. Some code clean-up. - Patch sent by Debarshi 'Rishi' Ray . - - * libparted/disk.c (ped_register_disk_type, ped_unregister_disk_type): - Clean-up. Patch sent by Debarshi 'Rishi' Ray . - -2006-11-08 Otavio Salvador - - * libparted/fs/hfs/probe.c: Fix a segmentation fault when running - without debug. - -2006-11-05 David Cantrell - * arch/linux.c: Define PROC_DEVICES_BUFSIZ for reading /proc/devices, - set to 16384. - -2006-11-02 David Cantrell - * labels/mac.c (_rawpart_is_boot): Check for Apple_Boot type. - * labels/mac.c (_rawpart_analyse): Don't check the data_region_length - against the part->geom.length for boot partitions. - -2006-10-31 David Cantrell - * device.c (canonicalize_file_name): calloc should use sizeof(char) - instead of 1 (from Debarshi Ray). - * arch/linux.c (readFD): Use a 1KB buffer to read /proc/devices - rather than a 16KB buffer. Init filesize to zero at declaration. - Combine error and EOF check for read() loop. Memory cleanups at - function exit. Use malloc() instead of calloc() (from Debarshi - Ray). - * arch/linux.c (_is_dm_major): Test expression and loop cleanups - (from Debarshi Ray). - -2006-10-26 David Cantrell - * arch/linux.c: Go to error_free_arch_specific rather than - error_free_dev for init_generic() failure on PED_DEVICE_UBD. - -2006-10-11 David Cantrell - * arch/linux.c: Conditionalize device-mapper stuff correctly so if the - user disables it, libparted still compiles. - -2006-10-11 David Cantrell - * Makefile.am: Add @DM_LIBS@ to libparted_la_LIBADD. - * arch/linux.c (readFD): Add read function used by _is_dm_major(). - * arch/linux.c (_is_dm_major): Add test function to determine if a - given device number is a device-mapper major number. - * arch/linux.c (_device_stat): Set dev->type to PED_DEVICE_DM if the - device is a major device-mapper node. Call init_generic() for the - PED_DEVICE_DM devices. - * arch/linux.c: Added _dm_remove_map(), _dm_remove_map_name(), - _dm_is_part(), _dm_remove_parts(), _dm_add_partition(), and - _dm_reread_part_table() to support device-mapper devices. - * arch/linux.c (linux_disk_commit): If the device type is PED_DEVICE_DM, - return result of _dm_reread_part_table on the disk. - -2006-10-09 David Cantrell - * disk.c (ped_unregister_disk_type): Handle instances where disk_types - == NULL and the given type is not in the list of registered disk types - (from Debarshi Ray). - - * cs/geom.c (ped_geometry_read): Do not throw PED_EXCEPTION_ERROR here - if accessing sectors outside of partition boundary. Returning false - causes ped_geometry_check() to shift correctly anyway. This occurs - on current Mac disklabels, among other systems. - -2006-10-06 David Cantrell - * arch/linux.c: Change __GNU_SOURCE define to _GNU_SOURCE (only one - underscore at the beginning). Fixes problem with certain systems - not getting posix_memalign() defined during compilation. - -2006-09-15 David Cantrell - * labels/Makefile.am: Removed fdasd.h and vtoc.h references. - -2006-09-14 Olaf Hering - * labels/mac.c (mac_partition_new): memset() inits everything to - zero, no need to do it manually. - - * labels/mac.c (mac_partition_set_flag): Prevent LVM and RAID partition - types from corrupting the partition table. - - * arch/linux.c (_blkpg_add_partition): Set linux_part.length based on - whether or not this partition is PED_PARTITION_EXTENDED or not. - - * arch/linux.c (_disk_sync_part_table): Remove the check and continue - for PED_PARTITION_EXTENDED types. - -2006-09-01 Darren Lavender - * labels/gpt.c (gpt_read, _parse_header): added support for - LUN/device resize detection and optional GPT header correction. - - * labels/gpt.c (_generate_header, gpt_write): fixed off-by-one - error in GPT header that allowed for overlap between LBAs of - LastUsableLBA and PartitionEntryLBA in backup-GPT. - -2006-09-01 David Cantrell - * fs/fat/fat.c (fat_probe): prevent SIGFPE when FAT sector size is 0. - - * arch/linux.c: define VIODASD_MAJOR. - * arch/linux.c (_device_probe_type): check for PED_DEVICE_VIODASD. - * arch/linux.c (linux_new): init PED_DEVICE_VIODASD. - * arch/linux.c (_flush_cache, linux_open): open in O_DIRECT mode on - non-zSeries. - * arch/linux.c (linux_read, linux_write): modify reading and writing - to work correctly in O_DIRECT mode. - - * exception.c: add ped_exception_get_handler(). - - * libparted.c (init_disk_types): call ped_disk_aix_init(). - * libparted.c (done_disk_types): call ped_disk_aix_done(). - - * labels/dos.c (msdos_probe): if AIX physical volume detected, fail. - - * labels/aix.c: add AIX disk label code from Matt Wilson. - * labels/aix.c: fix prototypes for aix_probe() and aix_alloc() so they - can be used in PedDiskOps. - - * labels/vtoc.c (vtoc_error): make error buffer large enough for errors. - - * labels/dasd.c: fix prototypes for dasd_probe() and dasd_alloc() so - they can be used in PedDiskOps. - * labels/dasd.c (dasd_probe): fix typos: dasd_initialize_anchor() -> - fdasd_initialize_anchor(), dasd_cleanup() -> fdasd_cleanup(). - * labels/dasd.c (dasd_read): fix typo: DEBUG -> PDEBUG. - -2006-08-31 David Cantrell - * arch/linux.c: add DASD_MAJOR. - * arch/linux.c (_device_stat): check for DASD devices. - * arch/linux.c (init_dasd): add init_dasd() to gather device info - for DASD devices. - * arch/linux.c (init_generic): add dev->path to the error message so - users know what device had the failure. - - * labels/Makefile.am: add dasd.c, fdasd.c, fdasd.h, vtoc.c, and vtoc.h - - * labels/dasd.c: add DASD label code. - - * labels/fdasd.c: add fdasd code (used by dasd.c). - - * labels/vtoc.c: add VTOC code (wonderful EBCDIC util code). - - * libparted.c (init_disk_types): if on zSeries, call - ped_disk_dasd_init(). - - * libparted.c (done_disk_types): if on zSeries, call - ped_disk_dasd_done(). - -2006-08-30 David Cantrell - * arch/linux.c: add SX8_MAJOR1 and SX8_MAJOR2. - * arch/linux.c (_is_sx8_major): determine if given major number falls - in the range of Promise SX8 devices. - * arch/linux.c (_device_stat): check for SX8 devices. - -2006-05-25 Leslie P. Polzer - * fs/hfs/hfs.c (hfs_resize, hfsplus_resize): make hgee/hgms assertion - only when debugging is turned on. - - * fs/ext2/ext2.c (ext2_open): removed call to ext2_determine_itoffset; - also moving it from this file to ext2_resize.c. - * fs/ext2/ext2_resize.c (ext2_resize): added call to - ext2_determine_itoffset and show a warning if not successful. - - * labels/mac.c (strncasestr): search the whole type string for - 'driver', not just the strlen of 'driver'. This fixes the detection of - driver partitions on mac disklabels. - - * labels/mac.c (mac_partition_get_flag): added 'set 2 raid on/off' - capability for mac labels. - - * labels/mac.c (struct MacRawDisk, struct MacPartitionData): fixed - data types of some fields (do not need to be 64 bit wide) and updated - meaning of reserved spaces. - - * labels/mac.c (struct MacRawDisk, struct MacDeviceDriver, struct - MacDiskData, mac_alloc, _rawpart_has_driver, _rawpart_analyse, - mac_read, _pad_raw_part, _generate_raw_part, write_block_zero, - mac_write, mac_partition_new): fixes removal of driver partition; - this would previously crash MacOS 9. - -2006-05-15 Leslie P. Polzer - * fs/ext2/ext2_block_relocator.c (ext2_block_relocator_mark): - turned exception into warning and let it provide additional info. - -2006-04-15 Leslie P. Polzer - * labels/gpt.c (_parse_header): corrected endianness issue (one - conversion too much) - -2006-04-06 Jonathan duSaint - * unit.c (ped_unit_get_size, parse_unit_suffix): added support for - binary units. - -2006-04-06 Leslie P. Polzer - * arch/linux.c (_device_set_sector_size): handle sector size for - ioctl and printf correctly as "long long". - - * labels/dvh.c (dvh_probe), labels/bsd.c (bsd_probe), labels/mac.c - (mac_probe), labels/pc98.c (pc98_probe), labels/sun.c (sun_probe), - labels/dos.c (dos_probe), labels/loop.c (loop_probe): immediately - return negative probe when the device's logical sector size is not - equal to 512. - -2006-03-30 Leslie P. Polzer - * fs/reiserfs/reiserfs.c: added missing block size initializer. - -2006-03-27 Leslie P. Polzer - * arch/linux.c (linux_probe_all): probe standard devices before - /sys/block and /proc/partitions. - - * labels/gpt.c: added Apple GUID support. - -2006-03-08 Leslie P. Polzer - * blkpg.h: moved to arch/. - -2006-03-03 Leslie P. Polzer - * labels/Makefile.am (liblabels_la_SOURCES): added "dvh.h". - - * Makefile.am (libparted_la_SOURCES): fixed @OS@.c location. - - * arch/linux.c (_probe_standard_devices): probe IDE devices before - SCSI. - -2006-02-25 Leslie P. Polzer - * labels/gpt.c (_read_header, gpt_read): fixed memory leaks. - -2006-02-23 Leslie P. Polzer - * labels/gpt.c (pth_free): fixed illegal memory deallocation by - freeing reserved space before parent. - - * labels/gpt.c (pth_crc32): calculate crc32 from static size. - - * labels/gpt.c (pth_free): free reserved field before freeing parent - data structure. - - * labels/gpt.c (pth_crc32): calculate crc32 from static size. - -2006-02-20 Leslie P. Polzer - * device.c: added ped_device_get_constraint. - - ------------------------------------------------------------------------------ - -This file is part of GNU Parted -Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -Free Software Foundation Inc. - -This file may be modified and/or distributed without restriction. This is -not an invitation to misrepresent the history of GNU Parted. diff --git a/jni/parted/libparted/arch/linux.c b/jni/parted/libparted/arch/linux.c deleted file mode 100755 index ccbba86..0000000 --- a/jni/parted/libparted/arch/linux.c +++ /dev/null @@ -1,3413 +0,0 @@ -/* libparted - a library for manipulating disk partitions - Copyright (C) 1999-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#define PROC_DEVICES_BUFSIZ 16384 - -#include -#include -#include -#include -#include -#if defined __s390__ || defined __s390x__ -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* for uname() */ -#include -#include -#include -#ifdef ENABLE_DEVICE_MAPPER -#include -#endif - -#include "../architecture.h" -#include "dirname.h" -#include "xstrtol.h" -#include "xalloc.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -/* The __attribute__ feature is available in gcc versions 2.5 and later. - The __-protected variants of the attributes 'format' and 'printf' are - accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) -# define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) -#else -# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ -#endif - -#define STRPREFIX(a, b) (strncmp (a, b, strlen (b)) == 0) - -#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) - -#ifndef __NR__llseek -#define __NR__llseek 140 -#endif - -#ifndef SCSI_IOCTL_SEND_COMMAND -#define SCSI_IOCTL_SEND_COMMAND 1 -#endif - -/* from */ -#define HDIO_GETGEO 0x0301 /* get device geometry */ -#define HDIO_GET_IDENTITY 0x030d /* get IDE identification info */ - -#define RD_MODE (O_RDONLY) -#define WR_MODE (O_WRONLY) -#define RW_MODE (O_RDWR) - -struct hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - unsigned long start; -}; - -struct ata7_sectinfo { - int valid1:1; - int valid2:1; - int rsv:26; - int multiplier:4; -}; - -/* structure returned by HDIO_GET_IDENTITY, as per ANSI ATA2 rev.2f spec */ -struct hd_driveid { - unsigned short config; /* lots of obsolete bit flags */ - unsigned short cyls; /* "physical" cyls */ - unsigned short reserved2; /* reserved (word 2) */ - unsigned short heads; /* "physical" heads */ - unsigned short track_bytes; /* unformatted bytes per track */ - unsigned short sector_bytes; /* unformatted bytes per sector */ - unsigned short sectors; /* "physical" sectors per track */ - unsigned short vendor0; /* vendor unique */ - unsigned short vendor1; /* vendor unique */ - unsigned short vendor2; /* vendor unique */ - unsigned char serial_no[20]; /* 0 = not_specified */ - unsigned short buf_type; - unsigned short buf_size; /* 512 byte increments; - 0 = not_specified */ - unsigned short ecc_bytes; /* for r/w long cmds; - 0 = not_specified */ - unsigned char fw_rev[8]; /* 0 = not_specified */ - char model[40]; /* 0 = not_specified */ - unsigned char max_multsect; /* 0=not_implemented */ - unsigned char vendor3; /* vendor unique */ - unsigned short dword_io; /* 0=not_implemented; 1=implemented */ - unsigned char vendor4; /* vendor unique */ - unsigned char capability; /* bits 0:DMA 1:LBA 2:IORDYsw - 3:IORDYsup*/ - unsigned short reserved50; /* reserved (word 50) */ - unsigned char vendor5; /* vendor unique */ - unsigned char tPIO; /* 0=slow, 1=medium, 2=fast */ - unsigned char vendor6; /* vendor unique */ - unsigned char tDMA; /* 0=slow, 1=medium, 2=fast */ - unsigned short field_valid; /* bits 0:cur_ok 1:eide_ok */ - unsigned short cur_cyls; /* logical cylinders */ - unsigned short cur_heads; /* logical heads */ - unsigned short cur_sectors; /* logical sectors per track */ - unsigned short cur_capacity0; /* logical total sectors on drive */ - unsigned short cur_capacity1; /* (2 words, misaligned int) */ - unsigned char multsect; /* current multiple sector count */ - unsigned char multsect_valid; /* when (bit0==1) multsect is ok */ - unsigned int lba_capacity; /* total number of sectors */ - unsigned short dma_1word; /* single-word dma info */ - unsigned short dma_mword; /* multiple-word dma info */ - unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */ - unsigned short eide_dma_min; /* min mword dma cycle time (ns) */ - unsigned short eide_dma_time; /* recommended mword dma cycle - time (ns) */ - unsigned short eide_pio; /* min cycle time (ns), no IORDY */ - unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */ - unsigned short words69_70[2]; /* reserved words 69-70 */ - /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */ - unsigned short words71_74[4]; /* reserved words 71-74 */ - unsigned short queue_depth; /* */ - unsigned short words76_79[4]; /* reserved words 76-79 */ - unsigned short major_rev_num; /* */ - unsigned short minor_rev_num; /* */ - unsigned short command_set_1; /* bits 0:Smart 1:Security 2:Removable - 3:PM */ - unsigned short command_set_2; /* bits 14:Smart Enabled 13:0 zero */ - unsigned short cfsse; /* command set-feature supported - extensions */ - unsigned short cfs_enable_1; /* command set-feature enabled */ - unsigned short cfs_enable_2; /* command set-feature enabled */ - unsigned short csf_default; /* command set-feature default */ - unsigned short dma_ultra; /* */ - unsigned short word89; /* reserved (word 89) */ - unsigned short word90; /* reserved (word 90) */ - unsigned short CurAPMvalues; /* current APM values */ - unsigned short word92; /* reserved (word 92) */ - unsigned short hw_config; /* hardware config */ - unsigned short words94_105[12];/* reserved words 94-105 */ - struct ata7_sectinfo ata7_sectinfo; /* ATAPI/ATA7 physical and logical - sector size */ - unsigned short words107_116[10];/* reserved words 107-116 */ - unsigned int logical_sectsize;/* ATAPI/ATA7 logical sector size */ - unsigned short words119_125[7];/* reserved words 119-125 */ - unsigned short last_lun; /* reserved (word 126) */ - unsigned short word127; /* reserved (word 127) */ - unsigned short dlf; /* device lock function - * 15:9 reserved - * 8 security level 1:max 0:high - * 7:6 reserved - * 5 enhanced erase - * 4 expire - * 3 frozen - * 2 locked - * 1 en/disabled - * 0 capability - */ - unsigned short csfo; /* current set features options - * 15:4 reserved - * 3 auto reassign - * 2 reverting - * 1 read-look-ahead - * 0 write cache - */ - unsigned short words130_155[26];/* reserved vendor words 130-155 */ - unsigned short word156; - unsigned short words157_159[3]; /* reserved vendor words 157-159 */ - unsigned short words160_255[95];/* reserved words 160-255 */ -}; - -/* from */ -#define BLKRRPART _IO(0x12,95) /* re-read partition table */ -#define BLKGETSIZE _IO(0x12,96) /* return device size */ -#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */ -#define BLKSSZGET _IO(0x12,104) /* get block device sector size */ -#define BLKGETLASTSECT _IO(0x12,108) /* get last sector of block device */ -#define BLKSETLASTSECT _IO(0x12,109) /* set last sector of block device */ - -/* return device size in bytes (u64 *arg) */ -#define BLKGETSIZE64 _IOR(0x12,114,size_t) - -struct blkdev_ioctl_param { - unsigned int block; - size_t content_length; - char * block_contents; -}; - -/* from */ -#define IDE0_MAJOR 3 -#define IDE1_MAJOR 22 -#define IDE2_MAJOR 33 -#define IDE3_MAJOR 34 -#define IDE4_MAJOR 56 -#define IDE5_MAJOR 57 -#define SCSI_CDROM_MAJOR 11 -#define SCSI_DISK0_MAJOR 8 -#define SCSI_DISK1_MAJOR 65 -#define SCSI_DISK2_MAJOR 66 -#define SCSI_DISK3_MAJOR 67 -#define SCSI_DISK4_MAJOR 68 -#define SCSI_DISK5_MAJOR 69 -#define SCSI_DISK6_MAJOR 70 -#define SCSI_DISK7_MAJOR 71 -#define SCSI_DISK8_MAJOR 128 -#define SCSI_DISK9_MAJOR 129 -#define SCSI_DISK10_MAJOR 130 -#define SCSI_DISK11_MAJOR 131 -#define SCSI_DISK12_MAJOR 132 -#define SCSI_DISK13_MAJOR 133 -#define SCSI_DISK14_MAJOR 134 -#define SCSI_DISK15_MAJOR 135 -#define COMPAQ_SMART2_MAJOR 72 -#define COMPAQ_SMART2_MAJOR1 73 -#define COMPAQ_SMART2_MAJOR2 74 -#define COMPAQ_SMART2_MAJOR3 75 -#define COMPAQ_SMART2_MAJOR4 76 -#define COMPAQ_SMART2_MAJOR5 77 -#define COMPAQ_SMART2_MAJOR6 78 -#define COMPAQ_SMART2_MAJOR7 79 -#define COMPAQ_SMART_MAJOR 104 -#define COMPAQ_SMART_MAJOR1 105 -#define COMPAQ_SMART_MAJOR2 106 -#define COMPAQ_SMART_MAJOR3 107 -#define COMPAQ_SMART_MAJOR4 108 -#define COMPAQ_SMART_MAJOR5 109 -#define COMPAQ_SMART_MAJOR6 110 -#define COMPAQ_SMART_MAJOR7 111 -#define DAC960_MAJOR 48 -#define ATARAID_MAJOR 114 -#define I2O_MAJOR1 80 -#define I2O_MAJOR2 81 -#define I2O_MAJOR3 82 -#define I2O_MAJOR4 83 -#define I2O_MAJOR5 84 -#define I2O_MAJOR6 85 -#define I2O_MAJOR7 86 -#define I2O_MAJOR8 87 -#define UBD_MAJOR 98 -#define DASD_MAJOR 94 -#define VIODASD_MAJOR 112 -#define AOE_MAJOR 152 -#define SX8_MAJOR1 160 -#define SX8_MAJOR2 161 -#define XVD_MAJOR 202 -#define SDMMC_MAJOR 179 -#define LOOP_MAJOR 7 -#define MD_MAJOR 9 -#define BLKEXT_MAJOR 259 -#define RAM_MAJOR 1 - -#define SCSI_BLK_MAJOR(M) ( \ - (M) == SCSI_DISK0_MAJOR \ - || (M) == SCSI_CDROM_MAJOR \ - || ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR) \ - || ((M) >= SCSI_DISK8_MAJOR && (M) <= SCSI_DISK15_MAJOR)) - -/* Maximum number of partitions supported by linux. */ -#define MAX_NUM_PARTS 64 - -static char* _device_get_part_path (PedDevice const *dev, int num); -static int _partition_is_mounted_by_path (const char* path); -static unsigned int _device_get_partition_range(PedDevice const* dev); -static int _device_open (PedDevice* dev, int flags); -static int _device_open_ro (PedDevice* dev); -static int _device_close (PedDevice* dev); - -static int -_read_fd (int fd, char **buf) -{ - char* p; - size_t size = PROC_DEVICES_BUFSIZ; - int s, filesize = 0; - - *buf = malloc (size * sizeof (char)); - if (*buf == 0) { - return -1; - } - - do { - p = &(*buf) [filesize]; - s = read (fd, p, PROC_DEVICES_BUFSIZ); - /* exit if there is an error or EOF is reached */ - if (s <= 0) - break; - filesize += s; - size += s; - char *new_buf = realloc (*buf, size); - if (new_buf == NULL) { - int saved_errno = errno; - free (*buf); - errno = saved_errno; - return -1; - } - *buf = new_buf; - } while (1); - - if (filesize == 0 && s < 0) { - free (*buf); - *buf = NULL; - return -1; - } else { - char *new_buf = realloc (*buf, filesize + 1); - if (new_buf == NULL) { - int saved_errno = errno; - free (*buf); - errno = saved_errno; - return -1; - } - *buf = new_buf; - (*buf)[filesize] = '\0'; - } - - return filesize; -} - -static int -_major_type_in_devices (int major, const char* type) -{ - int fd; - char* buf = NULL; - char* line; - char* end; - int bd = 0; - char c; - - fd = open ("/proc/devices", O_RDONLY); - if (fd < 0) - return 0; - - if (_read_fd(fd, &buf) < 0) { - close(fd); - return 0; - } - - line = buf; - end = strchr(line, '\n'); - while (end) { - char *name; - int maj; - - c = *end; - *end = '\0'; - - if (!bd) { - if (!strncmp(line, "Block devices:", 14)) - bd = 1; - goto next; - } - - name = strrchr(line, ' '); - if (!name || strcmp(name+1, type)) - goto next; - - maj = strtol(line, &name, 10); - if (maj == major) { - free(buf); - close(fd); - return 1; - } - -next: - *end = c; - line = end+1; - end = strchr(line, '\n'); - } - free(buf); - close(fd); - return 0; -} - -static int -_is_ide_major (int major) -{ - switch (major) { - case IDE0_MAJOR: - case IDE1_MAJOR: - case IDE2_MAJOR: - case IDE3_MAJOR: - case IDE4_MAJOR: - case IDE5_MAJOR: - return 1; - - default: - return 0; - } -} - -static int -_is_cpqarray_major (int major) -{ - return ((COMPAQ_SMART2_MAJOR <= major && major <= COMPAQ_SMART2_MAJOR7) - || (COMPAQ_SMART_MAJOR <= major && major <= COMPAQ_SMART_MAJOR7)); -} - -static int -_is_i2o_major (int major) -{ - return (I2O_MAJOR1 <= major && major <= I2O_MAJOR8); -} - -static int -_is_sx8_major (int major) -{ - return (SX8_MAJOR1 <= major && major <= SX8_MAJOR2); -} - -static int -_is_virtblk_major (int major) -{ - return _major_type_in_devices (major, "virtblk"); -} - -static int -_is_blkext_major (int major) -{ - return _major_type_in_devices (major, "blkext"); -} - -#ifdef ENABLE_DEVICE_MAPPER -static int -_dm_task_run_wait (struct dm_task *task, uint32_t cookie) -{ - int rc = 0; - - rc = dm_task_run (task); - dm_udev_wait (cookie); - - return rc; -} - -static int -_is_dm_major (int major) -{ - return _major_type_in_devices (major, "device-mapper"); -} - -static int -_dm_maptype (PedDevice *dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - struct dm_task *dmt; - uint64_t start, length; - char *target_type = NULL; - char *params; - int r = -1; - const char* dev_dir = getenv ("DM_DEV_DIR"); - - if (dev_dir && *dev_dir && !dm_set_dev_dir(dev_dir)) - return r; - - if (!(dmt = dm_task_create(DM_DEVICE_TABLE))) - return r; - - if (!dm_task_set_major_minor(dmt, arch_specific->major, - arch_specific->minor, 0)) - goto bad; - - dm_task_no_open_count(dmt); - - if (!dm_task_run(dmt)) - goto bad; - - dm_get_next_target(dmt, NULL, &start, &length, &target_type, ¶ms); - - arch_specific->dmtype = strdup(target_type ? target_type : "NO-TARGET"); - if (arch_specific->dmtype == NULL) - goto bad; - r = 0; -bad: - dm_task_destroy(dmt); - return r; -} - -/* Return nonzero if device-mapper device, DEVPATH, is part of a dmraid - array. Use the heuristic of checking for the string "DMRAID-" at the - start of its UUID. */ -static int -_is_dmraid_device (const char *devpath) -{ - int rc = 0; - - char const *dm_name = strrchr (devpath, '/'); - char const *dm_basename = dm_name && *(++dm_name) ? dm_name : devpath; - struct dm_task *task = dm_task_create (DM_DEVICE_DEPS); - if (!task) - return 0; - - dm_task_set_name (task, dm_basename); - if (!dm_task_run (task)) - goto err; - - const char *dmraid_uuid = dm_task_get_uuid (task); - if (STRPREFIX (dmraid_uuid, "DMRAID-")) - rc = 1; - -err: - dm_task_destroy (task); - return rc; -} - -/* We consider a dm device that is a linear mapping with a * - * single target that also is a dm device to be a partition */ - -static int -_dm_is_part (const char *path) -{ - int rc = 0; - struct dm_task *task = dm_task_create (DM_DEVICE_DEPS); - if (!task) - return 0; - - dm_task_set_name(task, path); - if (!dm_task_run(task)) - goto err; - - struct dm_info *info = alloca (sizeof *info); - memset(info, '\0', sizeof *info); - dm_task_get_info (task, info); - if (!info->exists) - goto err; - - struct dm_deps *deps = dm_task_get_deps (task); - if (!deps) - goto err; - - if (deps->count != 1) - goto err; - if (!_is_dm_major (major (deps->device[0]))) - goto err; - dm_task_destroy (task); - if (!(task = dm_task_create (DM_DEVICE_TABLE))) - return 0; - dm_task_set_name (task, path); - if (!dm_task_run (task)) - goto err; - - char *target_type = NULL; - char *params = NULL; - uint64_t start, length; - - dm_get_next_target (task, NULL, &start, &length, &target_type, ¶ms); - if (strcmp (target_type, "linear")) - goto err; - rc = 1; - -err: - dm_task_destroy(task); - return rc; -} - -static int -_probe_dm_devices () -{ - DIR* mapper_dir; - struct dirent* dent; - char buf [512]; /* readdir(3) claims d_name[256] */ - struct stat st; - - mapper_dir = opendir ("/dev/mapper"); - if (!mapper_dir) - return 0; - - /* Search the /dev/mapper directory for devices w/ the same major - * number that was returned from _probe_lvm_major(). - */ - while ((dent = readdir (mapper_dir))) { - if (strcmp (dent->d_name, ".") == 0 || - strcmp (dent->d_name, "..") == 0) - continue; - - snprintf (buf, sizeof (buf), "/dev/mapper/%s", dent->d_name); - - if (stat (buf, &st) != 0) - continue; - - if (_is_dm_major(major(st.st_rdev)) && _is_dmraid_device (buf) - && !_dm_is_part(buf)) - _ped_device_probe (buf); - } - closedir (mapper_dir); - - return 1; -} -#endif - -static int -_device_stat (PedDevice* dev, struct stat * dev_stat) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - - while (1) { - if (!stat (dev->path, dev_stat)) { - return 1; - } else { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_CANCEL, - _("Could not stat device %s - %s."), - dev->path, - strerror (errno)) - != PED_EXCEPTION_RETRY) - return 0; - } - } -} - -static int -_device_probe_type (PedDevice* dev) -{ - struct stat dev_stat; - int dev_major; - int dev_minor; - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - - if (!_device_stat (dev, &dev_stat)) - return 0; - - if (!S_ISBLK(dev_stat.st_mode)) { - dev->type = PED_DEVICE_FILE; - return 1; - } - - arch_specific->major = dev_major = major (dev_stat.st_rdev); - arch_specific->minor = dev_minor = minor (dev_stat.st_rdev); - - if (SCSI_BLK_MAJOR (dev_major) && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_SCSI; - } else if (_is_ide_major (dev_major) && (dev_minor % 0x40 == 0)) { - dev->type = PED_DEVICE_IDE; - } else if (dev_major == DAC960_MAJOR && (dev_minor % 0x8 == 0)) { - dev->type = PED_DEVICE_DAC960; - } else if (dev_major == ATARAID_MAJOR && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_ATARAID; - } else if (dev_major == AOE_MAJOR && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_AOE; - } else if (dev_major == DASD_MAJOR && (dev_minor % 0x4 == 0)) { - dev->type = PED_DEVICE_DASD; - } else if (dev_major == VIODASD_MAJOR && (dev_minor % 0x8 == 0)) { - dev->type = PED_DEVICE_VIODASD; - } else if (_is_sx8_major(dev_major) && (dev_minor % 0x20 == 0)) { - dev->type = PED_DEVICE_SX8; - } else if (_is_i2o_major (dev_major) && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_I2O; - } else if (_is_cpqarray_major (dev_major) && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_CPQARRAY; - } else if (dev_major == UBD_MAJOR && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_UBD; -#ifdef ENABLE_DEVICE_MAPPER - } else if (_is_dm_major(dev_major)) { - dev->type = PED_DEVICE_DM; - if (_dm_maptype(dev)) { - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Unable to determine the dm type of %s."), - dev->path); - } -#endif - } else if (dev_major == XVD_MAJOR && (dev_minor % 0x10 == 0)) { - dev->type = PED_DEVICE_XVD; - } else if (dev_major == SDMMC_MAJOR && (dev_minor % 0x08 == 0)) { - dev->type = PED_DEVICE_SDMMC; - } else if (_is_virtblk_major(dev_major)) { - dev->type = PED_DEVICE_VIRTBLK; - } else if (dev_major == LOOP_MAJOR) { - dev->type = PED_DEVICE_LOOP; - } else if (dev_major == MD_MAJOR) { - dev->type = PED_DEVICE_MD; - } else if (_is_blkext_major(dev_major) && dev->path && strstr(dev->path, "nvme")) { - dev->type = PED_DEVICE_NVME; - } else if (dev_major == RAM_MAJOR) { - dev->type = PED_DEVICE_RAM; - } else if (_is_blkext_major(dev_major) && dev->path && strstr(dev->path, "pmem")) { - dev->type = PED_DEVICE_PMEM; - } else { - dev->type = PED_DEVICE_UNKNOWN; - } - - return 1; -} - -static int -_get_linux_version () -{ - static int kver = -1; - - struct utsname uts; - unsigned int major = 0; - unsigned int minor = 0; - unsigned int teeny = 0; - - if (kver != -1) - return kver; - - if (uname (&uts)) - return kver = 0; - int n = sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny); - assert (n == 2 || n == 3); - return kver = KERNEL_VERSION (major, minor, teeny); -} - -#if USE_BLKID -static void -get_blkid_topology (LinuxSpecific *arch_specific) -{ - arch_specific->probe = blkid_new_probe (); - if (!arch_specific->probe) - return; - - if (blkid_probe_set_device(arch_specific->probe, - arch_specific->fd, 0, 0)) - return; - - arch_specific->topology = - blkid_probe_get_topology(arch_specific->probe); -} -#endif - -static void -_device_set_sector_size (PedDevice* dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - int sector_size; - - dev->sector_size = PED_SECTOR_SIZE_DEFAULT; - dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT; - - PED_ASSERT (dev->open_count); - - if (_get_linux_version() < KERNEL_VERSION (2,3,0)) { - dev->sector_size = PED_SECTOR_SIZE_DEFAULT; - return; - } - - if (ioctl (arch_specific->fd, BLKSSZGET, §or_size)) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK, - _("Could not determine sector size for %s: %s.\n" - "Using the default sector size (%lld)."), - dev->path, strerror (errno), PED_SECTOR_SIZE_DEFAULT); - } else { - dev->sector_size = (long long)sector_size; - dev->phys_sector_size = dev->sector_size; - } - -#if USE_BLKID - get_blkid_topology(arch_specific); - if (!arch_specific->topology) { - dev->phys_sector_size = 0; - } else { - dev->phys_sector_size = - blkid_topology_get_physical_sector_size( - arch_specific->topology); - } - if (dev->phys_sector_size == 0) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK, - _("Could not determine physical sector size for %s.\n" - "Using the logical sector size (%lld)."), - dev->path, dev->sector_size); - dev->phys_sector_size = dev->sector_size; - } -#endif - -#if defined __s390__ || defined __s390x__ - /* The real_sector_size is currently needed for DASD layouts, - * so we set it unconditionally. In the long run it should - * be considered to use the dev->phys_sector_size in label/dasd.c. - */ - arch_specific->real_sector_size = dev->sector_size; - /* Return PED_SECTOR_SIZE_DEFAULT for DASDs. */ - if (dev->type == PED_DEVICE_DASD) { - dev->sector_size = PED_SECTOR_SIZE_DEFAULT; - } -#endif -} - -static int -_kernel_has_blkgetsize64(void) -{ - int version = _get_linux_version(); - - if (version >= KERNEL_VERSION (2,5,4)) return 1; - if (version < KERNEL_VERSION (2,5,0) && - version >= KERNEL_VERSION (2,4,18)) return 1; - return 0; -} - -/* TODO: do a binary search if BLKGETSIZE doesn't work?! */ -static PedSector -_device_get_length (PedDevice* dev) -{ - unsigned long size; - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - uint64_t bytes=0; - const char* test_str; - PedSector test_size; - - - PED_ASSERT (dev->open_count > 0); - PED_ASSERT (dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - test_str = getenv ("PARTED_TEST_DEVICE_LENGTH"); - if (test_str - && xstrtoll (test_str, NULL, 10, &test_size, NULL) == LONGINT_OK) - return test_size; - - if (_kernel_has_blkgetsize64()) { - if (ioctl(arch_specific->fd, BLKGETSIZE64, &bytes) == 0) { - return bytes / dev->sector_size; - } - } - - if (ioctl (arch_specific->fd, BLKGETSIZE, &size)) { - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Unable to determine the size of %s (%s)."), - dev->path, - strerror (errno)); - return 0; - } - - return size; -} - -static int -_device_probe_geometry (PedDevice* dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - struct stat dev_stat; - struct hd_geometry geometry; - int geometry_is_valid = 0; - int sector_size = 0; - - if (!_device_stat (dev, &dev_stat)) - return 0; - PED_ASSERT (S_ISBLK (dev_stat.st_mode)); - - _device_set_sector_size (dev); - - dev->length = _device_get_length (dev); - if (!dev->length) - return 0; - - /* initialize the bios_geom values to something */ - dev->bios_geom.sectors = 0; - dev->bios_geom.heads = 0; - dev->bios_geom.cylinders = 0; - - geometry_is_valid = !ioctl (arch_specific->fd, HDIO_GETGEO, &geometry) - && geometry.sectors && geometry.heads; - -#if defined __s390__ || defined __s390x__ - if (geometry_is_valid) { -#else - if (!ioctl (arch_specific->fd, BLKSSZGET, §or_size)) { - /* get the sector count first */ - dev->bios_geom.sectors = 1 + (sector_size / PED_SECTOR_SIZE_DEFAULT); - dev->bios_geom.heads = 255; - } else if (geometry_is_valid) { - /* if BLKSSZGET failed, use deprecated HDIO_GETGEO result */ -#endif - dev->bios_geom.sectors = geometry.sectors; - dev->bios_geom.heads = geometry.heads; - } else { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK, - _("Could not determine sector size for %s: %s.\n" - "Using the default sector size (%lld)."), - dev->path, strerror (errno), PED_SECTOR_SIZE_DEFAULT); - dev->bios_geom.sectors = 2; - dev->bios_geom.heads = 255; - } - - dev->bios_geom.cylinders - = dev->length / (dev->bios_geom.heads - * dev->bios_geom.sectors); - dev->hw_geom = dev->bios_geom; - return 1; -} - -static char* -strip_name(char* str) -{ - int i; - int end = 0; - - for (i = 0; str[i] != 0; i++) { - if (!isspace (str[i]) - || (isspace (str[i]) && !isspace (str[i+1]) && str[i+1])) { - str [end] = str[i]; - end++; - } - } - str[end] = 0; - return strdup (str); -} - -static int -init_ide (PedDevice* dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - struct stat dev_stat; - struct hd_driveid hdi; - PedExceptionOption ex_status; - char hdi_buf[41]; - int sector_multiplier = 0; - int r; - - if (!_device_stat (dev, &dev_stat)) - goto error; - - if (!_device_open_ro (dev)) - goto error; - - r = ioctl (arch_specific->fd, HDIO_GET_IDENTITY, &hdi); - if (r && errno == EINVAL) { - /* silently ignore unsupported ioctl */ - dev->model = strdup(_("Generic IDE")); - } else if (r) { - ex_status = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("Could not get identity of device %s - %s"), - dev->path, strerror (errno)); - switch (ex_status) { - case PED_EXCEPTION_CANCEL: - goto error_close_dev; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_IGNORE: - dev->model = strdup(_("Generic IDE")); - break; - default: - PED_ASSERT (0); - break; - } - } else { - /* hdi.model is not guaranteed to be NULL terminated */ - memcpy (hdi_buf, hdi.model, 40); - hdi_buf[40] = '\0'; - dev->model = strip_name (hdi_buf); - - if (!hdi.ata7_sectinfo.valid1 && hdi.ata7_sectinfo.valid2) - sector_multiplier = hdi.ata7_sectinfo.multiplier; - else - sector_multiplier = 1; - - if (sector_multiplier != 1) { - ex_status = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("Device %s has multiple (%d) logical sectors " - "per physical sector.\n" - "GNU Parted supports this EXPERIMENTALLY for " - "some special disk label/file system " - "combinations, e.g. GPT and ext2/3.\n" - "Please consult the web site for up-to-date " - "information."), - dev->path, sector_multiplier); - - switch (ex_status) { - case PED_EXCEPTION_CANCEL: - goto error_close_dev; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_IGNORE: - break; - default: - PED_ASSERT (0); - break; - } - } - - /* XXX sector_size has not been set yet! */ - /* dev->phys_sector_size = dev->sector_size - * sector_multiplier;*/ - dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT; - } - - if (!_device_probe_geometry (dev)) - goto error_close_dev; - - _device_close (dev); - return 1; - -error_close_dev: - _device_close (dev); -error: - return 0; -} - -/* This function reads the /sys entry named "file" for device "dev". */ -static char * -read_device_sysfs_file (PedDevice *dev, const char *file) -{ - FILE *f; - char name_buf[128]; - char buf[256]; - - snprintf (name_buf, 127, "/sys/block/%s/device/%s", - last_component (dev->path), file); - - if ((f = fopen (name_buf, "r")) == NULL) - return NULL; - - if (fgets (buf, 255, f) == NULL) { - fclose (f); - return NULL; - } - - fclose (f); - return strip_name (buf); -} - -/* This function sends a query to a SCSI device for vendor and product - * information. It uses the deprecated SCSI_IOCTL_SEND_COMMAND to - * issue this query. - */ -static int -scsi_query_product_info (PedDevice* dev, char **vendor, char **product) -{ - /* The following are defined by the SCSI-2 specification. */ - typedef struct _scsi_inquiry_cmd - { - uint8_t op; - uint8_t lun; /* bits 5-7 denote the LUN */ - uint8_t page_code; - uint8_t reserved; - uint8_t alloc_length; - uint8_t control; - } __attribute__((packed)) scsi_inquiry_cmd_t; - - typedef struct _scsi_inquiry_data - { - uint8_t peripheral_info; - uint8_t device_info; - uint8_t version_info; - uint8_t _field1; - uint8_t additional_length; - uint8_t _reserved1; - uint8_t _reserved2; - uint8_t _field2; - uint8_t vendor_id[8]; - uint8_t product_id[16]; - uint8_t product_revision[4]; - uint8_t vendor_specific[20]; - uint8_t _reserved3[40]; - } __attribute__((packed)) scsi_inquiry_data_t; - - struct scsi_arg - { - unsigned int inlen; - unsigned int outlen; - - union arg_data - { - scsi_inquiry_data_t out; - scsi_inquiry_cmd_t in; - } data; - } arg; - - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - char buf[32]; - - *vendor = NULL; - *product = NULL; - - memset (&arg, 0x00, sizeof(struct scsi_arg)); - arg.inlen = 0; - arg.outlen = sizeof(scsi_inquiry_data_t); - arg.data.in.op = INQUIRY; - arg.data.in.lun = dev->host << 5; - arg.data.in.alloc_length = sizeof(scsi_inquiry_data_t); - arg.data.in.page_code = 0; - arg.data.in.reserved = 0; - arg.data.in.control = 0; - - if (ioctl (arch_specific->fd, SCSI_IOCTL_SEND_COMMAND, &arg) < 0) - return 0; - - memcpy (buf, arg.data.out.vendor_id, 8); - buf[8] = '\0'; - *vendor = strip_name (buf); - - memcpy (buf, arg.data.out.product_id, 16); - buf[16] = '\0'; - *product = strip_name (buf); - - return 1; -} - -/* This function provides the vendor and product name for a SCSI device. - * It supports both the modern /sys interface and direct queries - * via the deprecated ioctl, SCSI_IOCTL_SEND_COMMAND. - */ -static int -scsi_get_product_info (PedDevice* dev, char **vendor, char **product) -{ - *vendor = read_device_sysfs_file (dev, "vendor"); - *product = read_device_sysfs_file (dev, "model"); - if (*vendor && *product) - return 1; - - return scsi_query_product_info (dev, vendor, product); -} - -static int -init_scsi (PedDevice* dev) -{ - struct scsi_idlun - { - uint32_t dev_id; - uint32_t host_unique_id; - } idlun; - - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - char* vendor; - char* product; - - if (!_device_open_ro (dev)) - goto error; - - if (ioctl (arch_specific->fd, SCSI_IOCTL_GET_IDLUN, &idlun) < 0) { - dev->host = 0; - dev->did = 0; - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL, - _("Error initialising SCSI device %s - %s"), - dev->path, strerror (errno)) - != PED_EXCEPTION_IGNORE) - goto error_close_dev; - if (!_device_probe_geometry (dev)) - goto error_close_dev; - _device_close (dev); - return 1; - } - - dev->host = idlun.host_unique_id; - dev->did = idlun.dev_id; - - dev->model = (char*) ped_malloc (8 + 16 + 2); - if (!dev->model) - goto error_close_dev; - - if (scsi_get_product_info (dev, &vendor, &product)) { - sprintf (dev->model, "%.8s %.16s", vendor, product); - free (vendor); - free (product); - } else { - strcpy (dev->model, "Generic SCSI"); - } - - if (!_device_probe_geometry (dev)) - goto error_close_dev; - - _device_close (dev); - return 1; - -error_close_dev: - _device_close (dev); -error: - return 0; -} - -static int -init_file (PedDevice* dev) -{ - struct stat dev_stat; - - if (!_device_stat (dev, &dev_stat)) - goto error; - if (!_device_open_ro (dev)) - goto error; - - dev->sector_size = PED_SECTOR_SIZE_DEFAULT; - char *p = getenv ("PARTED_SECTOR_SIZE"); - if (p) { - int s = atoi (p); - if (0 < s && s % 512 == 0) - dev->sector_size = s; - } - dev->phys_sector_size = dev->sector_size; - - if (S_ISBLK(dev_stat.st_mode)) - dev->length = _device_get_length (dev); - else - dev->length = dev_stat.st_size / dev->sector_size; - if (dev->length <= 0) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The device %s is so small that it cannot possibly " - "store a file system or partition table. Perhaps " - "you selected the wrong device?"), - dev->path); - goto error_close_dev; - } - - _device_close (dev); - - dev->bios_geom.cylinders = dev->length / 4 / 32; - dev->bios_geom.heads = 4; - dev->bios_geom.sectors = 32; - dev->hw_geom = dev->bios_geom; - dev->model = strdup (""); - - return 1; - -error_close_dev: - _device_close (dev); -error: - return 0; -} - -#if defined __s390__ || defined __s390x__ -static int -init_dasd (PedDevice* dev, const char* model_name) -{ - struct stat dev_stat; - struct hd_geometry geo; - dasd_information_t dasd_info; - - if (!_device_stat (dev, &dev_stat)) - goto error; - - if (!_device_open_ro (dev)) - goto error; - - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - - PED_ASSERT (S_ISBLK (dev_stat.st_mode)); - - _device_set_sector_size (dev); - if (!dev->sector_size) - goto error_close_dev; - - dev->length = _device_get_length (dev); - if (!dev->length) - goto error_close_dev; - - if (!ioctl (arch_specific->fd, HDIO_GETGEO, &geo)) { - dev->hw_geom.sectors = geo.sectors; - dev->hw_geom.heads = geo.heads; - dev->hw_geom.cylinders = dev->length - / (dev->hw_geom.heads * dev->hw_geom.sectors) - / (dev->sector_size / PED_SECTOR_SIZE_DEFAULT); - dev->bios_geom = dev->hw_geom; - } else { - dev->bios_geom.sectors = 12; - dev->bios_geom.heads = 15; - dev->bios_geom.cylinders = dev->length - / (dev->hw_geom.heads * dev->hw_geom.sectors) - / (dev->sector_size / PED_SECTOR_SIZE_DEFAULT); - dev->hw_geom = dev->bios_geom; - } - - if (!ioctl(arch_specific->fd, BIODASDINFO, &dasd_info)) { - arch_specific->devno = dasd_info.devno; - } else { - arch_specific->devno = arch_specific->major * 256 + - arch_specific->minor; - } - - dev->model = strdup (model_name); - - _device_close (dev); - return 1; - -error_close_dev: - _device_close (dev); -error: - return 0; -} -#endif - -static int -init_generic (PedDevice* dev, const char* model_name) -{ - struct stat dev_stat; - PedExceptionOption ex_status; - - if (!_device_stat (dev, &dev_stat)) - goto error; - - if (!_device_open_ro (dev)) - goto error; - - ped_exception_fetch_all (); - if (_device_probe_geometry (dev)) { - ped_exception_leave_all (); - } else { - if (!_device_get_length (dev)) { - ped_exception_catch (); - ped_exception_leave_all (); - goto error_close_dev; - } - - /* hack to allow use of files, for testing */ - ped_exception_catch (); - ped_exception_leave_all (); - - ex_status = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("Unable to determine geometry of " - "file/device %s. You should not use Parted " - "unless you REALLY know what you're doing!"), - dev->path); - switch (ex_status) { - case PED_EXCEPTION_CANCEL: - goto error_close_dev; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_IGNORE: - break; - default: - PED_ASSERT (0); - break; - } - - /* what should we stick in here? */ - dev->length = dev_stat.st_size / PED_SECTOR_SIZE_DEFAULT; - dev->bios_geom.cylinders = dev->length / 4 / 32; - dev->bios_geom.heads = 4; - dev->bios_geom.sectors = 32; - dev->sector_size = PED_SECTOR_SIZE_DEFAULT; - dev->phys_sector_size = PED_SECTOR_SIZE_DEFAULT; - } - - dev->model = strdup (model_name); - - _device_close (dev); - return 1; - -error_close_dev: - _device_close (dev); -error: - return 0; -} - -static int -sdmmc_get_product_info (PedDevice* dev, char **type, char **name) -{ - *type = read_device_sysfs_file (dev, "type"); - *name = read_device_sysfs_file (dev, "name"); - if (*type && *name) - return 1; - - return 0; -} - -static int -init_sdmmc (PedDevice* dev) -{ - char id[128]; - char *type = NULL; - char *name = NULL; - - if (sdmmc_get_product_info (dev, &type, &name)) { - snprintf (id, sizeof(id) - 1, "%s %s", type, name); - } else { - snprintf (id, sizeof(id) - 1, "%s", - _("Generic SD/MMC Storage Card")); - } - free (type); - free (name); - return init_generic(dev, id); -} - -static int -init_nvme (PedDevice* dev) -{ - int ret; - char *model = read_device_sysfs_file (dev, "model"); - - if (!model) - ret = init_generic (dev, _("NVMe Device")); - else { - ret = init_generic (dev, model); - free (model); - } - - return ret; -} - -static PedDevice* -linux_new (const char* path) -{ - PedDevice* dev; - LinuxSpecific* arch_specific; - - PED_ASSERT (path != NULL); - - dev = (PedDevice*) ped_malloc (sizeof (PedDevice)); - if (!dev) - goto error; - - dev->path = strdup (path); - if (!dev->path) - goto error_free_dev; - - dev->arch_specific - = (LinuxSpecific*) ped_malloc (sizeof (LinuxSpecific)); - if (!dev->arch_specific) - goto error_free_path; - arch_specific = LINUX_SPECIFIC (dev); - arch_specific->dmtype = NULL; -#if USE_BLKID - arch_specific->probe = NULL; - arch_specific->topology = NULL; -#endif - - dev->open_count = 0; - dev->read_only = 0; - dev->external_mode = 0; - dev->dirty = 0; - dev->boot_dirty = 0; - -#ifdef ENABLE_DEVICE_MAPPER - dm_udev_set_sync_support(1); -#endif - - if (!_device_probe_type (dev)) - goto error_free_arch_specific; - - switch (dev->type) { - case PED_DEVICE_IDE: - if (!init_ide (dev)) - goto error_free_arch_specific; - break; - - case PED_DEVICE_SCSI: - if (!init_scsi (dev)) - goto error_free_arch_specific; - break; - - case PED_DEVICE_DAC960: - if (!init_generic (dev, _("DAC960 RAID controller"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_SX8: - if (!init_generic (dev, _("Promise SX8 SATA Device"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_AOE: - if (!init_generic (dev, _("ATA over Ethernet Device"))) - goto error_free_arch_specific; - break; - -#if defined __s390__ || defined __s390x__ - case PED_DEVICE_DASD: - if (!init_dasd (dev, _("IBM S390 DASD drive"))) - goto error_free_arch_specific; - break; -#endif - - case PED_DEVICE_VIODASD: - if (!init_generic (dev, _("IBM iSeries Virtual DASD"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_CPQARRAY: - if (!init_generic (dev, _("Compaq Smart Array"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_NVME: - if (!init_nvme (dev)) - goto error_free_arch_specific; - break; - - case PED_DEVICE_PMEM: - if (!init_generic (dev, _("NVDIMM Device"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_ATARAID: - if (!init_generic (dev, _("ATARAID Controller"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_I2O: - if (!init_generic (dev, _("I2O Controller"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_UBD: - if (!init_generic (dev, _("User-Mode Linux UBD"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_FILE: - if (!init_file (dev)) - goto error_free_arch_specific; - break; - - case PED_DEVICE_LOOP: - if (!init_generic (dev, _("Loopback device"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_DM: - { - char* type; - if (arch_specific->dmtype == NULL - || asprintf(&type, _("Linux device-mapper (%s)"), - arch_specific->dmtype) == -1) - goto error_free_arch_specific; - bool ok = init_generic (dev, type); - free (type); - if (!ok) - goto error_free_arch_specific; - break; - } - - case PED_DEVICE_XVD: - if (!init_generic (dev, _("Xen Virtual Block Device"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_UNKNOWN: - if (!init_generic (dev, _("Unknown"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_SDMMC: - if (!init_sdmmc (dev)) - goto error_free_arch_specific; - break; - case PED_DEVICE_VIRTBLK: - if (!init_generic(dev, _("Virtio Block Device"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_MD: - if (!init_generic(dev, _("Linux Software RAID Array"))) - goto error_free_arch_specific; - break; - - case PED_DEVICE_RAM: - if (!init_generic (dev, _("RAM Drive"))) - goto error_free_arch_specific; - break; - - default: - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("ped_device_new() Unsupported device type")); - goto error_free_arch_specific; - } - return dev; - -error_free_arch_specific: - free (dev->arch_specific); -error_free_path: - free (dev->path); -error_free_dev: - free (dev); -error: - return NULL; -} - -static void -linux_destroy (PedDevice* dev) -{ - LinuxSpecific *arch_specific = LINUX_SPECIFIC(dev); - void *p = arch_specific->dmtype; - -#if USE_BLKID - if (arch_specific->probe) - blkid_free_probe(arch_specific->probe); -#endif - free (p); - free (dev->arch_specific); - free (dev->path); - free (dev->model); - free (dev); -} - -static int -linux_is_busy (PedDevice* dev) -{ - int i; - char* part_name; - - if (_partition_is_mounted_by_path (dev->path)) - return 1; - - for (i = 0; i < 32; i++) { - int status; - - part_name = _device_get_part_path (dev, i); - if (!part_name) - return 1; - status = _partition_is_mounted_by_path (part_name); - free (part_name); - - if (status) - return 1; - } - - return 0; -} - -/* we need to flush the master device, and all the partition devices, - * because there is no coherency between the caches. - * We should only flush unmounted partition devices, because: - * - there is never a need to flush them (we're not doing IO there) - * - flushing a device that is mounted causes unnecessary IO, and can - * even screw journaling & friends up. Even cause oopsen! - */ -static void -_flush_cache (PedDevice* dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - int i; - int lpn = _device_get_partition_range(dev); - - if (dev->read_only || dev->type == PED_DEVICE_RAM) - return; - dev->dirty = 0; - - ioctl (arch_specific->fd, BLKFLSBUF); - - for (i = 1; i < lpn; i++) { - char* name; - int fd; - - name = _device_get_part_path (dev, i); - if (!name) - break; - if (!_partition_is_mounted_by_path (name)) { - fd = open (name, WR_MODE, 0); - if (fd > -1) { - ioctl (fd, BLKFLSBUF); -retry: - if (fsync (fd) < 0 || close (fd) < 0) - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_RETRY + - PED_EXCEPTION_IGNORE, - _("Error fsyncing/closing %s: %s"), - name, strerror (errno)) - == PED_EXCEPTION_RETRY) - goto retry; - } - } - free (name); - } -} - -static int -_device_open_ro (PedDevice* dev) -{ - int rc = _device_open (dev, RD_MODE); - if (rc) - dev->open_count++; - return rc; -} - -static int -linux_open (PedDevice* dev) -{ - return _device_open (dev, RW_MODE); -} - -static int -_device_open (PedDevice* dev, int flags) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - -retry: - arch_specific->fd = open (dev->path, flags); - - if (arch_specific->fd == -1) { - char* rw_error_msg = strerror (errno); - - arch_specific->fd = open (dev->path, RD_MODE); - - if (arch_specific->fd == -1) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_CANCEL, - _("Error opening %s: %s"), - dev->path, strerror (errno)) - != PED_EXCEPTION_RETRY) { - return 0; - } else { - goto retry; - } - } else { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK, - _("Unable to open %s read-write (%s). %s has " - "been opened read-only."), - dev->path, rw_error_msg, dev->path); - dev->read_only = 1; - } - } else { - dev->read_only = 0; - } - - _flush_cache (dev); - - return 1; -} - -static int -linux_refresh_open (PedDevice* dev) -{ - return 1; -} - -static int -linux_close (PedDevice* dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - - if (dev->dirty) - _flush_cache (dev); -retry: - if (fsync (arch_specific->fd) < 0 || close (arch_specific->fd) < 0) - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_RETRY + PED_EXCEPTION_IGNORE, - _("Error fsyncing/closing %s: %s"), - dev->path, strerror (errno)) - == PED_EXCEPTION_RETRY) - goto retry; - return 1; -} - -static int -linux_refresh_close (PedDevice* dev) -{ - if (dev->dirty) - _flush_cache (dev); - return 1; -} - -static int -_device_close (PedDevice* dev) -{ - int rc = linux_close (dev); - if (dev->open_count > 0) - dev->open_count--; - return rc; -} - -#if SIZEOF_OFF_T < 8 - -static _syscall5(int,_llseek, - unsigned int, fd, - unsigned long, offset_high, - unsigned long, offset_low, - loff_t*, result, - unsigned int, origin) - -loff_t -llseek (unsigned int fd, loff_t offset, unsigned int whence) -{ - loff_t result; - int retval; - - retval = _llseek(fd, - ((unsigned long long)offset) >> 32, - ((unsigned long long)offset) & 0xffffffff, - &result, - whence); - return (retval==-1 ? (loff_t) retval : result); -} - -#endif /* SIZEOF_OFF_T < 8 */ - -static int -_device_seek (const PedDevice* dev, PedSector sector) -{ - LinuxSpecific* arch_specific; - - PED_ASSERT (dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - - arch_specific = LINUX_SPECIFIC (dev); - -#if SIZEOF_OFF_T < 8 - if (sizeof (off_t) < 8) { - loff_t pos = (loff_t)(sector * dev->sector_size); - return llseek (arch_specific->fd, pos, SEEK_SET) == pos; - } else -#endif - { - off_t pos = sector * dev->sector_size; - return lseek (arch_specific->fd, pos, SEEK_SET) == pos; - } -} - -static int -_read_lastoddsector (const PedDevice* dev, void* buffer) -{ - LinuxSpecific* arch_specific; - struct blkdev_ioctl_param ioctl_param; - - PED_ASSERT(dev != NULL); - PED_ASSERT(buffer != NULL); - - arch_specific = LINUX_SPECIFIC (dev); - -retry: - ioctl_param.block = 0; /* read the last sector */ - ioctl_param.content_length = dev->sector_size; - ioctl_param.block_contents = buffer; - - if (ioctl(arch_specific->fd, BLKGETLASTSECT, &ioctl_param) == -1) { - PedExceptionOption opt; - opt = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_IGNORE_CANCEL, - _("%s during read on %s"), - strerror (errno), dev->path); - - if (opt == PED_EXCEPTION_CANCEL) - return 0; - if (opt == PED_EXCEPTION_RETRY) - goto retry; - } - - return 1; -} - -static int -linux_read (const PedDevice* dev, void* buffer, PedSector start, - PedSector count) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - PedExceptionOption ex_status; - void* diobuf = NULL; - - PED_ASSERT (dev != NULL); - PED_ASSERT (dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - if (_get_linux_version() < KERNEL_VERSION (2,6,0)) { - /* Kludge. This is necessary to read/write the last - block of an odd-sized disk, until Linux 2.5.x kernel fixes. - */ - if (dev->type != PED_DEVICE_FILE && (dev->length & 1) - && start + count - 1 == dev->length - 1) - return ped_device_read (dev, buffer, start, count - 1) - && _read_lastoddsector ( - dev, (char *) buffer + (count-1) * 512); - } - while (1) { - if (_device_seek (dev, start)) - break; - - ex_status = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_IGNORE_CANCEL, - _("%s during seek for read on %s"), - strerror (errno), dev->path); - - switch (ex_status) { - case PED_EXCEPTION_IGNORE: - return 1; - - case PED_EXCEPTION_RETRY: - break; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_CANCEL: - return 0; - default: - PED_ASSERT (0); - break; - } - } - - size_t read_length = count * dev->sector_size; - if (posix_memalign (&diobuf, dev->sector_size, read_length) != 0) - return 0; - - while (1) { - ssize_t status = read (arch_specific->fd, diobuf, read_length); - if (status > 0) - memcpy(buffer, diobuf, status); - if (status == (ssize_t) read_length) - break; - if (status > 0) { - read_length -= status; - buffer = (char *) buffer + status; - continue; - } - - ex_status = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_IGNORE_CANCEL, - (status == 0 - ? _("%0.0send of file while reading %s") - : _("%s during read on %s")), - strerror (errno), - dev->path); - - switch (ex_status) { - case PED_EXCEPTION_IGNORE: - free(diobuf); - return 1; - - case PED_EXCEPTION_RETRY: - break; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_CANCEL: - free(diobuf); - return 0; - default: - PED_ASSERT (0); - break; - } - } - - free (diobuf); - - return 1; -} - -static int -_write_lastoddsector (PedDevice* dev, const void* buffer) -{ - LinuxSpecific* arch_specific; - struct blkdev_ioctl_param ioctl_param; - - PED_ASSERT(dev != NULL); - PED_ASSERT(buffer != NULL); - - arch_specific = LINUX_SPECIFIC (dev); - -retry: - ioctl_param.block = 0; /* write the last sector */ - ioctl_param.content_length = dev->sector_size; - ioctl_param.block_contents = (void*) buffer; - - if (ioctl(arch_specific->fd, BLKSETLASTSECT, &ioctl_param) == -1) { - PedExceptionOption opt; - opt = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_IGNORE_CANCEL, - _("%s during write on %s"), - strerror (errno), dev->path); - - if (opt == PED_EXCEPTION_CANCEL) - return 0; - if (opt == PED_EXCEPTION_RETRY) - goto retry; - } - - return 1; -} - -static int -linux_write (PedDevice* dev, const void* buffer, PedSector start, - PedSector count) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - PedExceptionOption ex_status; - void* diobuf; - void* diobuf_start; - - PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - if (dev->read_only) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Can't write to %s, because it is opened read-only."), - dev->path) - != PED_EXCEPTION_IGNORE) - return 0; - else - return 1; - } - - if (_get_linux_version() < KERNEL_VERSION (2,6,0)) { - /* Kludge. This is necessary to read/write the last - block of an odd-sized disk, until Linux 2.5.x kernel fixes. - */ - if (dev->type != PED_DEVICE_FILE && (dev->length & 1) - && start + count - 1 == dev->length - 1) - return ped_device_write (dev, buffer, start, count - 1) - && _write_lastoddsector ( - dev, ((char*) buffer - + (count-1) * dev->sector_size)); - } - while (1) { - if (_device_seek (dev, start)) - break; - - ex_status = ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_RETRY_IGNORE_CANCEL, - _("%s during seek for write on %s"), - strerror (errno), dev->path); - - switch (ex_status) { - case PED_EXCEPTION_IGNORE: - return 1; - - case PED_EXCEPTION_RETRY: - break; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_CANCEL: - return 0; - default: - PED_ASSERT (0); - break; - } - } - -#ifdef READ_ONLY - printf ("ped_device_write (\"%s\", %p, %d, %d)\n", - dev->path, buffer, (int) start, (int) count); -#else - size_t write_length = count * dev->sector_size; - dev->dirty = 1; - if (posix_memalign(&diobuf, dev->sector_size, write_length) != 0) - return 0; - memcpy(diobuf, buffer, write_length); - diobuf_start = diobuf; - while (1) { - ssize_t status = write (arch_specific->fd, diobuf, write_length); - if (status == write_length) break; - if (status > 0) { - write_length -= status; - diobuf = (char *) diobuf + status; - continue; - } - - ex_status = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_IGNORE_CANCEL, - _("%s during write on %s"), - strerror (errno), dev->path); - - switch (ex_status) { - case PED_EXCEPTION_IGNORE: - free(diobuf_start); - return 1; - - case PED_EXCEPTION_RETRY: - break; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_CANCEL: - free(diobuf_start); - return 0; - default: - PED_ASSERT (0); - break; - } - } - free(diobuf_start); -#endif /* !READ_ONLY */ - return 1; -} - -/* returns the number of sectors that are ok. - */ -static PedSector -linux_check (PedDevice* dev, void* buffer, PedSector start, PedSector count) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - PedSector done = 0; - int status; - void* diobuf; - - PED_ASSERT(dev != NULL); - - if (!_device_seek (dev, start)) - return 0; - - if (posix_memalign(&diobuf, PED_SECTOR_SIZE_DEFAULT, - count * PED_SECTOR_SIZE_DEFAULT) != 0) - return 0; - - for (done = 0; done < count; done += status / dev->sector_size) { - status = read (arch_specific->fd, diobuf, - (size_t) ((count-done) * dev->sector_size)); - if (status > 0) - memcpy(buffer, diobuf, status); - if (status < 0) - break; - } - free(diobuf); - - return done; -} - -static int -_do_fsync (PedDevice* dev) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - int status; - PedExceptionOption ex_status; - - while (1) { - status = fsync (arch_specific->fd); - if (status >= 0) break; - - ex_status = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_IGNORE_CANCEL, - _("%s during write on %s"), - strerror (errno), dev->path); - - switch (ex_status) { - case PED_EXCEPTION_IGNORE: - return 1; - - case PED_EXCEPTION_RETRY: - break; - - case PED_EXCEPTION_UNHANDLED: - ped_exception_catch (); - /* FALLTHROUGH */ - case PED_EXCEPTION_CANCEL: - return 0; - default: - PED_ASSERT (0); - break; - } - } - return 1; -} - -static int -linux_sync (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - - if (dev->read_only) - return 1; - if (!_do_fsync (dev)) - return 0; - _flush_cache (dev); - return 1; -} - -static int -linux_sync_fast (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - - if (dev->read_only) - return 1; - if (!_do_fsync (dev)) - return 0; - /* no cache flush... */ - return 1; -} - -static inline int -_compare_digit_state (char ch, int need_digit) -{ - return !!isdigit (ch) == need_digit; -} - -/* matches the regexp "[^0-9]+[0-9]+[^0-9]+[0-9]+$". - * Motivation: accept devices looking like /dev/rd/c0d0, but - * not looking like /dev/hda1 and /dev/rd/c0d0p1 - */ -static int _GL_ATTRIBUTE_PURE -_match_rd_device (const char* name) -{ - const char* pos; - int state; - - /* exclude directory names from test */ - pos = strrchr(name, '/') ?: name; - - /* states: - * 0 non-digits - * 1 digits - * 2 non-digits - * 3 digits - */ - for (state = 0; state < 4; state++) { - int want_digits = (state % 2 == 1); - do { - if (!*pos) - return 0; - if (!_compare_digit_state (*pos, want_digits)) - return 0; - pos++; - } while (_compare_digit_state (*pos, want_digits)); - } - - return *pos == 0; -} - -static int -_probe_proc_partitions () -{ - FILE* proc_part_file; - int major, minor, size; - char buf [512]; - char part_name [256]; - char dev_name [256]; - int ok = 0; - - proc_part_file = fopen ("/proc/partitions", "r"); - if (!proc_part_file) - return 0; - - if (fgets (buf, 256, proc_part_file) == NULL) - goto done; - - if (fgets (buf, 256, proc_part_file) == NULL) - goto done; - - while (fgets (buf, 512, proc_part_file) - && sscanf (buf, "%d %d %d %255s", &major, &minor, &size, - part_name) == 4) { - /* Heuristic for telling partitions and devices apart - * Probably needs to be improved - */ - if (!_match_rd_device (part_name) - && isdigit (part_name [strlen (part_name) - 1])) - continue; - - strcpy (dev_name, "/dev/"); - strcat (dev_name, part_name); - _ped_device_probe (dev_name); - } - - ok = 1; - done: - fclose (proc_part_file); - return ok; -} - -struct _entry { - const char *name; - size_t len; -}; - -static int _GL_ATTRIBUTE_PURE -_skip_entry (const char *name) -{ - struct _entry *i; - static struct _entry entries[] = { - { ".", sizeof (".") - 1 }, - { "..", sizeof ("..") - 1 }, - { "dm-", sizeof ("dm-") - 1 }, - { "loop", sizeof ("loop") - 1 }, - { "ram", sizeof ("ram") - 1 }, - { "fd", sizeof ("fd") - 1 }, - { 0, 0 }, - }; - - for (i = entries; i->name != 0; i++) { - if (strncmp (name, i->name, i->len) == 0) - return 1; - } - - return 0; -} - -static int -_probe_sys_block () -{ - DIR *blockdir; - struct dirent *dirent; - char dev_name [256]; - char *ptr; - - if (!(blockdir = opendir ("/sys/block"))) - return 0; - while ((dirent = readdir (blockdir))) { - if (_skip_entry (dirent->d_name)) - continue; - - if (strlen (dirent->d_name) > sizeof (dev_name) - 6) - continue; /* device name too long! */ - - strcpy (dev_name, "/dev/"); - strcat (dev_name, dirent->d_name); - /* in /sys/block, '/'s are replaced with '!' */ - for (ptr = dev_name; *ptr != '\0'; ptr++) { - if (*ptr == '!') - *ptr = '/'; - } - _ped_device_probe (dev_name); - } - - closedir (blockdir); - return 1; -} - -static int -_probe_standard_devices () -{ - _ped_device_probe ("/dev/hda"); - _ped_device_probe ("/dev/hdb"); - _ped_device_probe ("/dev/hdc"); - _ped_device_probe ("/dev/hdd"); - _ped_device_probe ("/dev/hde"); - _ped_device_probe ("/dev/hdf"); - _ped_device_probe ("/dev/hdg"); - _ped_device_probe ("/dev/hdh"); - - _ped_device_probe ("/dev/sda"); - _ped_device_probe ("/dev/sdb"); - _ped_device_probe ("/dev/sdc"); - _ped_device_probe ("/dev/sdd"); - _ped_device_probe ("/dev/sde"); - _ped_device_probe ("/dev/sdf"); - - return 1; -} - -static void -linux_probe_all () -{ - /* we should probe the standard devs too, even with /proc/partitions, - * because /proc/partitions might return devfs stuff, and we might not - * have devfs available - */ - _probe_standard_devices (); - -#ifdef ENABLE_DEVICE_MAPPER - /* device-mapper devices aren't listed in /proc/partitions; or, if - * they are, they're listed as dm-X. So, instead of relying on that, - * we do our own checks. - */ - _probe_dm_devices (); -#endif - - /* /sys/block is more reliable and consistent; fall back to using - * /proc/partitions if the former is unavailable, however. - */ - if (!_probe_sys_block ()) - _probe_proc_partitions (); -} - -static char * _GL_ATTRIBUTE_FORMAT ((__printf__, 1, 2)) -zasprintf (const char *format, ...) -{ - va_list args; - char *resultp; - va_start (args, format); - int r = vasprintf (&resultp, format, args); - va_end (args); - return r < 0 ? NULL : resultp; -} - -#ifdef ENABLE_DEVICE_MAPPER -static char * -dm_canonical_path (PedDevice const *dev) -{ - LinuxSpecific const *arch_specific = LINUX_SPECIFIC (dev); - - /* Get map name from devicemapper */ - struct dm_task *task = dm_task_create (DM_DEVICE_INFO); - if (!task) - goto err; - if (!dm_task_set_major_minor (task, arch_specific->major, - arch_specific->minor, 0)) - goto err; - if (!dm_task_run(task)) - goto err; - char *dev_name = zasprintf ("/dev/mapper/%s", dm_task_get_name (task)); - if (dev_name == NULL) - goto err; - dm_task_destroy (task); - return dev_name; -err: - return NULL; -} -#endif - -static char* -_device_get_part_path (PedDevice const *dev, int num) -{ - char *devpath; - size_t path_len; - char *result; -#ifdef ENABLE_DEVICE_MAPPER - devpath = (dev->type == PED_DEVICE_DM - ? dm_canonical_path (dev) : dev->path); -#else - devpath = dev->path; -#endif - if (!devpath) - return NULL; - - path_len = strlen (devpath); - /* Check for devfs-style /disc => /partN transformation - unconditionally; the system might be using udev with devfs rules, - and if not the test is harmless. */ - if (5 < path_len && !strcmp (devpath + path_len - 5, "/disc")) { - /* replace /disc with /part%d */ - result = zasprintf ("%.*s/part%d", - (int) (path_len - 5), devpath, num); - } else { - char const *p = (dev->type == PED_DEVICE_DAC960 - || dev->type == PED_DEVICE_CPQARRAY - || dev->type == PED_DEVICE_ATARAID - || isdigit (devpath[path_len - 1]) - ? "p" : ""); - result = zasprintf ("%s%s%d", devpath, p, num); - } -#ifdef ENABLE_DEVICE_MAPPER - if (dev->type == PED_DEVICE_DM) - free (devpath); -#endif - return result; -} - -static char* -linux_partition_get_path (const PedPartition* part) -{ - /* loop label means use the whole disk */ - if (strcmp (part->disk->type->name, "loop") == 0) - return xstrdup (part->disk->dev->path); - return _device_get_part_path (part->disk->dev, part->num); -} - -static int -_mount_table_search (const char* file_name, dev_t dev) -{ - struct stat part_stat; - char line[512]; - char part_name[512]; - FILE* file; - - file = fopen (file_name, "r"); - if (!file) - return 0; - while (fgets (line, 512, file)) { - if (sscanf (line, "%s", part_name) == 1 - && stat (part_name, &part_stat) == 0) { - if (part_stat.st_rdev == dev) { - fclose (file); - return 1; - } - } - } - fclose (file); - return 0; -} - -static int -_partition_is_mounted_by_dev (dev_t dev) -{ - return _mount_table_search( "/proc/mounts", dev) - || _mount_table_search( "/proc/swaps", dev) - || _mount_table_search( "/etc/mtab", dev); -} - -static int -_partition_is_mounted_by_path (const char *path) -{ - struct stat part_stat; - if (stat (path, &part_stat) != 0) - return 0; - if (!S_ISBLK(part_stat.st_mode)) - return 0; - return _partition_is_mounted_by_dev (part_stat.st_rdev); -} - -/* If partition PART is mounted, or if we encounter an out-of-memory error - while trying to determine its status, return 1. Otherwise, return 0. */ -static int -_partition_is_mounted (const PedPartition *part) -{ - if (!ped_partition_is_active (part)) - return 0; - char *part_name = _device_get_part_path (part->disk->dev, part->num); - if (!part_name) - return 1; - int status = _partition_is_mounted_by_path (part_name); - free (part_name); - return !!status; -} - -static int -linux_partition_is_busy (const PedPartition* part) -{ - PedPartition* walk; - - PED_ASSERT (part != NULL); - - if (strcmp (part->disk->type->name, "loop") == 0) - return linux_is_busy (part->disk->dev); - if (_partition_is_mounted (part)) - return 1; - if (part->type == PED_PARTITION_EXTENDED) { - for (walk = part->part_list; walk; walk = walk->next) { - if (linux_partition_is_busy (walk)) - return 1; - } - } - return 0; -} - -static int -_blkpg_part_command (PedDevice* dev, struct blkpg_partition* part, int op) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (dev); - struct blkpg_ioctl_arg ioctl_arg; - - ioctl_arg.op = op; - ioctl_arg.flags = 0; - ioctl_arg.datalen = sizeof (struct blkpg_partition); - ioctl_arg.data = (void*) part; - - return ioctl (arch_specific->fd, BLKPG, &ioctl_arg) == 0; -} - -static int -_blkpg_add_partition (PedDisk* disk, const PedPartition *part) -{ - struct blkpg_partition linux_part; - const char* vol_name; - char* dev_name; - - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - if (ped_disk_type_check_feature (disk->type, - PED_DISK_TYPE_PARTITION_NAME)) - vol_name = ped_partition_get_name (part); - else - vol_name = NULL; - - dev_name = _device_get_part_path (disk->dev, part->num); - if (!dev_name) - return 0; - - memset (&linux_part, 0, sizeof (linux_part)); - linux_part.start = part->geom.start * disk->dev->sector_size; - /* see fs/partitions/msdos.c:msdos_partition(): "leave room for LILO" */ - if (part->type & PED_PARTITION_EXTENDED) { - linux_part.length = 1; - if (disk->dev->sector_size == 512) { - if (linux_part.length == 1) - linux_part.length = 2; - PedPartition *walk; - /* if the second sector is claimed by a logical partition, - then there's just no room for lilo, so don't try to use it */ - for (walk = part->part_list; walk; walk = walk->next) { - if (walk->geom.start == part->geom.start+1) - linux_part.length = 1; - } - } - linux_part.length *= disk->dev->sector_size; - } - else { - linux_part.length = part->geom.length * disk->dev->sector_size; - } - linux_part.pno = part->num; - strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH-1); - linux_part.devname[BLKPG_DEVNAMELTH-1] = '\0'; - if (vol_name) { - strncpy (linux_part.volname, vol_name, BLKPG_VOLNAMELTH-1); - linux_part.volname[BLKPG_VOLNAMELTH-1] = '\0'; - } - - free (dev_name); - - if (!_blkpg_part_command (disk->dev, &linux_part, - BLKPG_ADD_PARTITION)) { - return 0; - } - - return 1; -} - -static int -_blkpg_remove_partition (PedDisk* disk, int n) -{ - struct blkpg_partition linux_part; - - memset (&linux_part, 0, sizeof (linux_part)); - linux_part.pno = n; - return _blkpg_part_command (disk->dev, &linux_part, - BLKPG_DEL_PARTITION); -} - -#ifdef BLKPG_RESIZE_PARTITION -static int _blkpg_resize_partition (PedDisk* disk, const PedPartition *part) -{ - struct blkpg_partition linux_part; - char* dev_name; - - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - dev_name = _device_get_part_path (disk->dev, part->num); - if (!dev_name) - return 0; - memset (&linux_part, 0, sizeof (linux_part)); - linux_part.start = part->geom.start * disk->dev->sector_size; - /* see fs/partitions/msdos.c:msdos_partition(): "leave room for LILO" */ - if (part->type & PED_PARTITION_EXTENDED) { - if (disk->dev->sector_size == 512) { - linux_part.length = 2; - PedPartition *walk; - /* if the second sector is claimed by a logical partition, - then there's just no room for lilo, so don't try to use it */ - for (walk = part->part_list; walk; walk = walk->next) { - if (walk->geom.start == part->geom.start+1) - linux_part.length = 1; - } - } else { - linux_part.length = 1; - } - linux_part.length *= disk->dev->sector_size; - } - else - linux_part.length = part->geom.length * disk->dev->sector_size; - linux_part.pno = part->num; - strncpy (linux_part.devname, dev_name, BLKPG_DEVNAMELTH-1); - linux_part.devname[BLKPG_DEVNAMELTH-1] = '\0'; - - free (dev_name); - - if (!_blkpg_part_command (disk->dev, &linux_part, - BLKPG_RESIZE_PARTITION)) { - return ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Error informing the kernel about modifications to " - "partition %s -- %s. This means Linux won't know " - "about any changes you made to %s until you reboot " - "-- so you shouldn't mount it or use it in any way " - "before rebooting."), - linux_part.devname, - strerror (errno), - linux_part.devname) - == PED_EXCEPTION_IGNORE; - } - - return 1; -} -#endif - -/* Read the integer from /sys/block/DEV_BASE/ENTRY and set *VAL - to that value, where DEV_BASE is the last component of DEV->path. - Upon success, return true. Otherwise, return false. */ -static bool -_sysfs_int_entry_from_dev(PedDevice const* dev, const char *entry, int *val) -{ - char path[128]; - int r = snprintf(path, sizeof(path), "/sys/block/%s/%s", - last_component(dev->path), entry); - if (r < 0 || r >= sizeof(path)) - return false; - - FILE *fp = fopen(path, "r"); - if (!fp) - return false; - - bool ok = fscanf(fp, "%d", val) == 1; - fclose(fp); - - return ok; -} - -/* Read the unsigned long long from /sys/block/DEV_BASE/PART_BASE/ENTRY - and set *VAL to that value, where DEV_BASE is the last component of path to - block device corresponding to PART and PART_BASE is the sysfs name of PART. - Upon success, return true. Otherwise, return false. */ -static bool -_sysfs_ull_entry_from_part(PedPartition const* part, const char *entry, - unsigned long long *val) -{ - char path[128]; - char *part_name = _device_get_part_path (part->disk->dev, part->num); - if (!part_name) - return false; - - int r = snprintf(path, sizeof(path), "/sys/block/%s/%s/%s", - last_component(part->disk->dev->path), - last_component(part_name), entry); - free(part_name); - if (r < 0 || r >= sizeof(path)) - return false; - - FILE *fp = fopen(path, "r"); - if (!fp) - return false; - - bool ok = fscanf(fp, "%llu", val) == 1; - fclose(fp); - - return ok; -} - - -/* Get the starting sector and length of a partition PART within a block device - Use blkpg if available, then check sysfs and then use HDIO_GETGEO and - BLKGETSIZE64 ioctls as fallback. Upon success, return true. Otherwise, - return false. */ -static bool -_kernel_get_partition_start_and_length(PedPartition const *part, - unsigned long long *start, - unsigned long long *length) -{ - PED_ASSERT(part); - PED_ASSERT(start); - PED_ASSERT(length); - - char *dev_name = _device_get_part_path (part->disk->dev, part->num); - if (!dev_name) - return false; - - int ok = _sysfs_ull_entry_from_part (part, "start", start); - if (!ok) { - struct hd_geometry geom; - int dev_fd = open (dev_name, O_RDONLY); - if (dev_fd != -1 && ioctl (dev_fd, HDIO_GETGEO, &geom)) { - *start = geom.start; - close (dev_fd); - ok = true; - } else { - if (dev_fd != -1) - close(dev_fd); - free (dev_name); - return false; - } - } - *start = (*start * 512) / part->disk->dev->sector_size; - ok = _sysfs_ull_entry_from_part (part, "size", length); - - int fd; - if (!ok) { - fd = open (dev_name, O_RDONLY); - if (fd != -1 && ioctl (fd, BLKGETSIZE64, length)) - ok = true; - } else { - fd = -1; - *length *= 512; - } - *length /= part->disk->dev->sector_size; - if (fd != -1) - close (fd); - - if (!ok) - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Unable to determine the start and length of %s."), - dev_name); - free (dev_name); - return ok; -} - - -/* - * The number of partitions that a device can have depends on the kernel. - * If we don't find this value in /sys/block/DEV/ext_range, we will use our own - * value. - */ -static unsigned int -_device_get_partition_range(PedDevice const* dev) -{ - int range; - if (dev->type == PED_DEVICE_DM) - return MAX_NUM_PARTS; - bool ok = _sysfs_int_entry_from_dev(dev, "ext_range", &range); - - if (!ok) - return MAX_NUM_PARTS; - /* both 0 and 1 mean no partitions */ - return range > 1 ? range : 0; -} - -#ifdef ENABLE_DEVICE_MAPPER -static int -_dm_remove_partition(PedDisk* disk, int partno) -{ - int rc = 0; - uint32_t cookie = 0; - char *part_name = _device_get_part_path (disk->dev, partno); - - int fd = open (part_name, O_RDONLY | O_EXCL); - if (fd == -1) { - if (errno == ENOENT) - errno = ENXIO; /* nothing to remove, device already doesn't exist */ - goto err; - } - close (fd); - struct dm_task *task = dm_task_create(DM_DEVICE_REMOVE); - if (!task) - goto err; - dm_task_set_name (task, part_name); - dm_task_retry_remove(task); - if (!dm_task_set_cookie (task, &cookie, 0)) - goto err; - rc = _dm_task_run_wait (task, cookie); - dm_task_update_nodes(); - dm_task_destroy(task); -err: - free (part_name); - return rc; -} - -static bool -_dm_get_partition_start_and_length(PedPartition const *part, - unsigned long long *start, - unsigned long long *length) -{ - struct dm_task* task = NULL; - int rc = 0; - - if (!(task = dm_task_create(DM_DEVICE_TABLE))) - return 0; - char *path = _device_get_part_path (part->disk->dev, part->num); - PED_ASSERT(path); - /* libdevmapper likes to complain on stderr instead of quietly - returning ENOENT or ENXIO, so try to stat first */ - struct stat st; - if (stat(path, &st)) - goto err; - dm_task_set_name(task, path); - if (!dm_task_run(task)) - goto err; - - int major, minor; - char *params; - char *target_type; - dm_get_next_target(task, NULL, (uint64_t *)start, (uint64_t *)length, &target_type, ¶ms); - if (sscanf (params, "%d:%d %Lu", &major, &minor, start) != 3) - goto err; - rc = 1; - - /* device-mapper uses 512b units, make sure we return length and start in terms of the device's - * sector size. - */ - *start /= (part->disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT); - *length /= (part->disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT); -err: - free (path); - dm_task_destroy(task); - return rc; -} - - -static int -_dm_add_partition (PedDisk* disk, const PedPartition* part) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (disk->dev); - char* params = NULL; - char* vol_name = NULL; - const char* dev_name = NULL; - char* vol_uuid = NULL; - const char* dev_uuid = NULL; - uint32_t cookie = 0; - - /* Get map name from devicemapper */ - struct dm_task *task = dm_task_create (DM_DEVICE_INFO); - if (!task) - goto err; - - if (!dm_task_set_major_minor (task, arch_specific->major, - arch_specific->minor, 0)) - goto err; - - if (!dm_task_run(task)) - goto err; - - dev_name = dm_task_get_name (task); - size_t name_len = strlen (dev_name); - vol_name = zasprintf ("%s%s%d", - dev_name, - isdigit (dev_name[name_len - 1]) ? "p" : "", - part->num); - if (vol_name == NULL) - goto err; - - dev_uuid = dm_task_get_uuid (task); - if (dev_uuid && (strlen(dev_uuid) > 0) - && !(vol_uuid = zasprintf ("part%d-%s", part->num, dev_uuid))) - goto err; - - /* Caution: dm_task_destroy frees dev_name. */ - dm_task_destroy (task); - task = NULL; - /* device-mapper uses 512b units, not the device's sector size */ - if ( ! (params = zasprintf ("%d:%d %lld", arch_specific->major, - arch_specific->minor, - part->geom.start * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT)))) - goto err; - - task = dm_task_create (DM_DEVICE_CREATE); - if (!task) - goto err; - - dm_task_set_name (task, vol_name); - if (vol_uuid) - dm_task_set_uuid (task, vol_uuid); - /* device-mapper uses 512b units, not the device's sector size */ - dm_task_add_target (task, 0, part->geom.length * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT), - "linear", params); - if (!dm_task_set_cookie (task, &cookie, 0)) - goto err; - if (_dm_task_run_wait (task, cookie)) { - dm_task_update_nodes (); - dm_task_destroy (task); - free (params); - free (vol_uuid); - free (vol_name); - return 1; - } else { - _dm_remove_partition (disk, part->num); - } -err: - dm_task_update_nodes(); - if (task) - dm_task_destroy (task); - free (params); - free (vol_uuid); - free (vol_name); - return 0; -} - -static int -_dm_resize_partition (PedDisk* disk, const PedPartition* part) -{ - LinuxSpecific* arch_specific = LINUX_SPECIFIC (disk->dev); - char* params = NULL; - char* vol_name = NULL; - const char* dev_name = NULL; - uint32_t cookie = 0; - int rc = 0; - - /* Get map name from devicemapper */ - struct dm_task *task = dm_task_create (DM_DEVICE_INFO); - if (!task) - goto err; - - if (!dm_task_set_major_minor (task, arch_specific->major, - arch_specific->minor, 0)) - goto err; - - if (!dm_task_run(task)) - goto err; - - dev_name = dm_task_get_name (task); - size_t name_len = strlen (dev_name); - vol_name = zasprintf ("%s%s%d", - dev_name, - isdigit (dev_name[name_len - 1]) ? "p" : "", - part->num); - if (vol_name == NULL) - goto err; - - /* Caution: dm_task_destroy frees dev_name. */ - dm_task_destroy (task); - task = NULL; - - /* device-mapper uses 512b units, not the device's sector size */ - if ( ! (params = zasprintf ("%d:%d %lld", arch_specific->major, - arch_specific->minor, - part->geom.start * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT)))) - goto err; - - task = dm_task_create (DM_DEVICE_RELOAD); - if (!task) - goto err; - - dm_task_set_name (task, vol_name); - /* device-mapper uses 512b units, not the device's sector size */ - dm_task_add_target (task, 0, part->geom.length * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT), - "linear", params); - /* NOTE: DM_DEVICE_RELOAD doesn't generate udev events, so no cookie is needed (it will freeze). - * DM_DEVICE_RESUME does, so get a cookie and synchronize with udev. - */ - if (dm_task_run (task)) { - dm_task_destroy (task); - task = dm_task_create (DM_DEVICE_RESUME); - if (!task) - goto err; - dm_task_set_name (task, vol_name); - if (!dm_task_set_cookie (task, &cookie, 0)) - goto err; - if (_dm_task_run_wait (task, cookie)) { - rc = 1; - } - } -err: - dm_task_update_nodes(); - if (task) - dm_task_destroy (task); - free (params); - free (vol_name); - return rc; -} - -#endif - -/* - * Sync the partition table in two step process: - * 1. Remove all of the partitions from the kernel's tables, but do not attempt - * removal of any partition for which the corresponding ioctl call fails. - * 2. Add all the partitions that we hold in disk, throwing a warning - * if we cannot because step 1 failed to remove it and it is not being - * added back with the same start and length. - * - * To achieve this two step process we must calculate the minimum number of - * maximum possible partitions between what linux supports and what the label - * type supports. EX: - * - * number=MIN(max_parts_supported_in_linux,max_parts_supported_in_msdos_tables) - */ -static int -_disk_sync_part_table (PedDisk* disk) -{ - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev != NULL); - int lpn, lpn2; - unsigned int part_range = _device_get_partition_range(disk->dev); - int (*add_partition)(PedDisk* disk, const PedPartition *part); - int (*resize_partition)(PedDisk* disk, const PedPartition *part); - int (*remove_partition)(PedDisk* disk, int partno); - bool (*get_partition_start_and_length)(PedPartition const *part, - unsigned long long *start, - unsigned long long *length); - - -#ifdef ENABLE_DEVICE_MAPPER - if (disk->dev->type == PED_DEVICE_DM) { - add_partition = _dm_add_partition; - remove_partition = _dm_remove_partition; - resize_partition = _dm_resize_partition; - get_partition_start_and_length = _dm_get_partition_start_and_length; - } else -#endif - { - add_partition = _blkpg_add_partition; - remove_partition = _blkpg_remove_partition; -#ifdef BLKPG_RESIZE_PARTITION - resize_partition = _blkpg_resize_partition; -#else - resize_partition = NULL; -#endif - get_partition_start_and_length = _kernel_get_partition_start_and_length; - } - - /* lpn = largest partition number. - * for remove pass, use greater of device or label limit */ - if (ped_disk_get_max_supported_partition_count(disk, &lpn)) - lpn = PED_MAX(lpn, part_range); - else - lpn = part_range; - /* for add pass, use lesser of device or label limit */ - if (ped_disk_get_max_supported_partition_count(disk, &lpn2)) - lpn2 = PED_MIN(lpn2, part_range); - else - lpn2 = part_range; - /* Its not possible to support largest_partnum < 0. - * largest_partnum == 0 would mean does not support partitions. - * */ - if (lpn < 1) - return 0; - int ret = 0; - int *ok = calloc (lpn, sizeof *ok); - if (!ok) - return 0; - int *errnums = ped_malloc(sizeof(int) * lpn); - if (!errnums) - goto cleanup; - - int i; - /* remove old partitions first */ - for (i = 1; i <= lpn; i++) { - PedPartition *part = ped_disk_get_partition (disk, i); - if (part) { - unsigned long long length; - unsigned long long start; - /* get start and length of existing partition */ - if (get_partition_start_and_length(part, - &start, &length) - && start == part->geom.start - && (length == part->geom.length - || (resize_partition && part->num < lpn2))) - { - /* partition is unchanged, or will be resized so nothing to do */ - ok[i - 1] = 1; - continue; - } - } - /* Attempt to remove the partition, retrying for - up to max_sleep_seconds upon any failure due to EBUSY. */ - unsigned int sleep_microseconds = 10000; - unsigned int max_sleep_seconds = 1; - unsigned int n_sleep = (max_sleep_seconds - * 1000000 / sleep_microseconds); - do { - ok[i - 1] = remove_partition (disk, i); - errnums[i - 1] = errno; - if (ok[i - 1] || errnums[i - 1] != EBUSY) - break; - usleep (sleep_microseconds); - } while (n_sleep--); - if (!ok[i - 1] && errnums[i - 1] == ENXIO) - ok[i - 1] = 1; /* it already doesn't exist */ - } - lpn = lpn2; - /* don't actually add partitions for loop */ - if (strcmp (disk->type->name, "loop") == 0) - lpn = 0; - for (i = 1; i <= lpn; i++) { - PedPartition *part = ped_disk_get_partition (disk, i); - if (!part) - continue; - unsigned long long length; - unsigned long long start; - /* get start and length of existing partition */ - if (get_partition_start_and_length(part, - &start, &length) - && start == part->geom.start) - { - if (length == part->geom.length) { - ok[i - 1] = 1; - /* partition is unchanged, so nothing to do */ - continue; - } - if (resize_partition - && start == part->geom.start) - { - /* try to resize */ - if (resize_partition (disk, part)) { - ok[i - 1] = 1; - continue; - } - } - } - /* add the (possibly modified or new) partition */ - if (!add_partition (disk, part)) { - ok[i - 1] = 0; - errnums[i - 1] = errno; - } - } - - char *bad_part_list = NULL; - /* now warn about any errors */ - for (i = 1; i <= lpn; i++) { - if (ok[i - 1] || errnums[i - 1] == ENXIO) - continue; - if (bad_part_list == NULL) { - bad_part_list = malloc (lpn * 5); - if (!bad_part_list) - goto cleanup; - bad_part_list[0] = 0; - } - sprintf (bad_part_list + strlen (bad_part_list), "%d, ", i); - } - if (bad_part_list == NULL) - ret = 1; - else { - bad_part_list[strlen (bad_part_list) - 2] = 0; - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Partition(s) %s on %s have been written, but we have " - "been unable to inform the kernel of the change, " - "probably because it/they are in use. As a result, " - "the old partition(s) will remain in use. You " - "should reboot now before making further changes."), - bad_part_list, disk->dev->path) == PED_EXCEPTION_IGNORE) - ret = 1; - free (bad_part_list); - } - cleanup: - free (errnums); - free (ok); - return ret; -} - -static int -_have_blkpg () -{ - static int have_blkpg = -1; - int kver; - - if (have_blkpg != -1) - return have_blkpg; - - kver = _get_linux_version(); - return have_blkpg = kver >= KERNEL_VERSION (2,4,0) ? 1 : 0; -} - -/* Return nonzero upon success, 0 if something fails. */ -static int -linux_disk_commit (PedDisk* disk) -{ - if (disk->dev->type != PED_DEVICE_FILE) { - - /* We now require BLKPG support. If this assertion fails, - please write to the mailing list describing your system. - Assuming it's never triggered, ... - FIXME: remove this assertion in 2012. */ - assert (_have_blkpg ()); - - if (!_disk_sync_part_table (disk)) - return 0; - } - - return 1; -} - -#if USE_BLKID -static PedAlignment* -linux_get_minimum_alignment(const PedDevice *dev) -{ - blkid_topology tp = LINUX_SPECIFIC(dev)->topology; - if (!tp) - return NULL; - - if (blkid_topology_get_minimum_io_size(tp) == 0) - return ped_alignment_new( - blkid_topology_get_alignment_offset(tp) / - dev->sector_size, - dev->phys_sector_size / dev->sector_size); - - return ped_alignment_new( - blkid_topology_get_alignment_offset(tp) / dev->sector_size, - blkid_topology_get_minimum_io_size(tp) / dev->sector_size); -} - -static PedAlignment* -linux_get_optimum_alignment(const PedDevice *dev) -{ - blkid_topology tp = LINUX_SPECIFIC(dev)->topology; - if (!tp) - return NULL; - - /* When PED_DEFAULT_ALIGNMENT is divisible by the *_io_size or - there are no *_io_size values, use the PED_DEFAULT_ALIGNMENT - If one or the other will not divide evenly, fall through to - previous logic. */ - unsigned long optimal_io = blkid_topology_get_optimal_io_size(tp); - unsigned long minimum_io = blkid_topology_get_minimum_io_size(tp); - if ( - (!optimal_io && !minimum_io) - || (optimal_io && PED_DEFAULT_ALIGNMENT % optimal_io == 0 - && minimum_io && PED_DEFAULT_ALIGNMENT % minimum_io == 0) - || (!minimum_io && optimal_io - && PED_DEFAULT_ALIGNMENT % optimal_io == 0) - || (!optimal_io && minimum_io - && PED_DEFAULT_ALIGNMENT % minimum_io == 0) - ) - return ped_alignment_new( - blkid_topology_get_alignment_offset(tp) / dev->sector_size, - PED_DEFAULT_ALIGNMENT / dev->sector_size); - - /* If optimal_io_size is 0 and we don't meet the other criteria - for using the device.c default, return the minimum alignment. */ - if (blkid_topology_get_optimal_io_size(tp) == 0) - return linux_get_minimum_alignment(dev); - - return ped_alignment_new( - blkid_topology_get_alignment_offset(tp) / dev->sector_size, - blkid_topology_get_optimal_io_size(tp) / dev->sector_size); -} -#endif - -#if defined __s390__ || defined __s390x__ -/** - * Check whether this device could be a DASD - * - * The device probing yields PED_DEVICE_DASD for native DASD transport - * If the block device uses a different transport (e.g. virtio) - * a simplified heuristic (assuming a model 3390 with 4K sectors) - * is applied (only) on s390x systems for this check. - * - * \return 1 if the geometry indicates this could be a DASD - * and 0 otherwise - */ -static int -_ped_device_like_dasd(const PedDevice *dev) -{ - return (dev->type == PED_DEVICE_DASD) - || (dev->hw_geom.heads == 15 - && dev->hw_geom.sectors == 12 - && (dev->hw_geom.cylinders - * dev->hw_geom.heads - * dev->hw_geom.sectors - * dev->phys_sector_size - == dev->length * dev->sector_size)); -} - - - -static PedAlignment* -s390_get_minimum_alignment(const PedDevice *dev) -{ -#if USE_BLKID - return linux_get_minimum_alignment(dev); -#else - return ped_alignment_new(0, - dev->phys_sector_size - / dev->sector_size); -#endif -} - -static PedAlignment* -s390_get_optimum_alignment(const PedDevice *dev) -{ - /* DASD needs to use minimum alignment */ - if (_ped_device_like_dasd(dev)) - return s390_get_minimum_alignment(dev); -#if USE_BLKID - return linux_get_optimum_alignment(dev); -#else - return NULL; -#endif -} -#endif - -static PedDeviceArchOps linux_dev_ops = { - _new: linux_new, - destroy: linux_destroy, - is_busy: linux_is_busy, - open: linux_open, - refresh_open: linux_refresh_open, - close: linux_close, - refresh_close: linux_refresh_close, - read: linux_read, - write: linux_write, - check: linux_check, - sync: linux_sync, - sync_fast: linux_sync_fast, - probe_all: linux_probe_all, -#if defined __s390__ || defined __s390x__ - get_minimum_alignment: s390_get_minimum_alignment, - get_optimum_alignment: s390_get_optimum_alignment, -#elif USE_BLKID - get_minimum_alignment: linux_get_minimum_alignment, - get_optimum_alignment: linux_get_optimum_alignment, -#endif -}; - -PedDiskArchOps linux_disk_ops = { - partition_get_path: linux_partition_get_path, - partition_is_busy: linux_partition_is_busy, - disk_commit: linux_disk_commit -}; - -PedArchitecture ped_linux_arch = { - dev_ops: &linux_dev_ops, - disk_ops: &linux_disk_ops -}; diff --git a/jni/parted/libparted/arch/linux.h b/jni/parted/libparted/arch/linux.h deleted file mode 100755 index 3d4e5fa..0000000 --- a/jni/parted/libparted/arch/linux.h +++ /dev/null @@ -1,44 +0,0 @@ -/* libparted - a library for manipulating disk partitions - Copyright (C) 2009-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_ARCH_LINUX_H_INCLUDED -#define PED_ARCH_LINUX_H_INCLUDED - -#if HAVE_BLKID_BLKID_H -# include -#endif - -#define LINUX_SPECIFIC(dev) ((LinuxSpecific*) (dev)->arch_specific) - -typedef struct _LinuxSpecific LinuxSpecific; - -struct _LinuxSpecific { - int fd; - int major; - int minor; - char* dmtype; /**< device map target type */ -#if defined __s390__ || defined __s390x__ - unsigned int real_sector_size; - unsigned int devno; -#endif -#if USE_BLKID - blkid_probe probe; - blkid_topology topology; -#endif -}; - -#endif /* PED_ARCH_LINUX_H_INCLUDED */ diff --git a/jni/parted/libparted/architecture.c b/jni/parted/libparted/architecture.c deleted file mode 100755 index 4020f98..0000000 --- a/jni/parted/libparted/architecture.c +++ /dev/null @@ -1,43 +0,0 @@ - /* - libparted - a library for manipulating disk partitions - Copyright (C) 2007, 2009-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "architecture.h" - -const PedArchitecture* ped_architecture; - -void -ped_set_architecture () -{ - /* Set just once */ - if (ped_architecture) - return; - -#ifdef linux - extern PedArchitecture ped_linux_arch; - const PedArchitecture* arch = &ped_linux_arch; -#elif defined(__BEOS__) - extern PedArchitecture ped_beos_arch; - const PedArchitecture* arch = &ped_beos_arch; -#else - extern PedArchitecture ped_gnu_arch; - const PedArchitecture* arch = &ped_gnu_arch; -#endif - - ped_architecture = arch; -} diff --git a/jni/parted/libparted/architecture.h b/jni/parted/libparted/architecture.h deleted file mode 100755 index f058f74..0000000 --- a/jni/parted/libparted/architecture.h +++ /dev/null @@ -1,38 +0,0 @@ - /* - libparted - a library for manipulating disk partitions - Copyright (C) 2007, 2009-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -/* - * WARNING: This shouldn't be exported to the API - */ - -#ifndef _LIBPARTED_ARCH_H_INCLUDED -#define _LIBPARTED_ARCH_H_INCLUDED - -#include - -struct _PedArchitecture { - PedDiskArchOps* disk_ops; - PedDeviceArchOps* dev_ops; -}; -typedef struct _PedArchitecture PedArchitecture; - -extern const PedArchitecture* ped_architecture; - -extern void ped_set_architecture (); - -#endif /* _LIBPARTED_ARCH_H_INCLUDED */ diff --git a/jni/parted/libparted/cs/constraint.c b/jni/parted/libparted/cs/constraint.c deleted file mode 100755 index 146c318..0000000 --- a/jni/parted/libparted/cs/constraint.c +++ /dev/null @@ -1,538 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \addtogroup PedConstraint - * - * \brief Constraint solver interface. - * - * Constraints are used to communicate restrictions on operations Constraints - * are restrictions on the location and alignment of the start and end of a - * partition, and the minimum and maximum size. - * - * Constraints are closed under intersection (for the proof see the source - * code). For background information see the Chinese Remainder Theorem. - * - * This interface consists of construction constraints, finding the intersection - * of constraints, and finding solutions to constraints. - * - * The constraint solver allows you to specify constraints on where a partition - * or file system (or any PedGeometry) may be placed/resized/etc. For example, - * you might want to make sure that a file system is at least 10 Gb, or that it - * starts at the beginning of new cylinder. - * - * The constraint solver in this file unifies solver in geom.c (which allows you - * to specify constraints on ranges) and natmath.c (which allows you to specify - * alignment constraints). - * - * @{ - */ - -#include -#include -#include -#include - -/** - * Initializes a pre-allocated piece of memory to contain a constraint - * with the supplied default values. - * - * \return \c 0 on failure. - */ -int -ped_constraint_init ( - PedConstraint* constraint, - const PedAlignment* start_align, - const PedAlignment* end_align, - const PedGeometry* start_range, - const PedGeometry* end_range, - PedSector min_size, - PedSector max_size) -{ - PED_ASSERT (constraint != NULL); - PED_ASSERT (start_range != NULL); - PED_ASSERT (end_range != NULL); - PED_ASSERT (min_size > 0); - PED_ASSERT (max_size > 0); - - constraint->start_align = ped_alignment_duplicate (start_align); - constraint->end_align = ped_alignment_duplicate (end_align); - constraint->start_range = ped_geometry_duplicate (start_range); - constraint->end_range = ped_geometry_duplicate (end_range); - constraint->min_size = min_size; - constraint->max_size = max_size; - - return 1; -} - -/** - * Convenience wrapper for ped_constraint_init(). - * - * Allocates a new piece of memory and initializes the constraint. - * - * \return \c NULL on failure. - */ -PedConstraint* -ped_constraint_new ( - const PedAlignment* start_align, - const PedAlignment* end_align, - const PedGeometry* start_range, - const PedGeometry* end_range, - PedSector min_size, - PedSector max_size) -{ - PedConstraint* constraint; - - constraint = (PedConstraint*) ped_malloc (sizeof (PedConstraint)); - if (!constraint) - goto error; - if (!ped_constraint_init (constraint, start_align, end_align, - start_range, end_range, min_size, max_size)) - goto error_free_constraint; - return constraint; - -error_free_constraint: - free (constraint); -error: - return NULL; -} - -/** - * Return a constraint that requires a region to be entirely contained inside - * \p max, and to entirely contain \p min. - * - * \return \c NULL on failure. - */ -PedConstraint* -ped_constraint_new_from_min_max ( - const PedGeometry* min, - const PedGeometry* max) -{ - PedGeometry start_range; - PedGeometry end_range; - - PED_ASSERT (min != NULL); - PED_ASSERT (max != NULL); - PED_ASSERT (ped_geometry_test_inside (max, min)); - - ped_geometry_init (&start_range, min->dev, max->start, - min->start - max->start + 1); - ped_geometry_init (&end_range, min->dev, min->end, - max->end - min->end + 1); - - return ped_constraint_new ( - ped_alignment_any, ped_alignment_any, - &start_range, &end_range, - min->length, max->length); -} - -/** - * Return a constraint that requires a region to entirely contain \p min. - * - * \return \c NULL on failure. - */ -PedConstraint* -ped_constraint_new_from_min (const PedGeometry* min) -{ - PedGeometry full_dev; - - PED_ASSERT (min != NULL); - - ped_geometry_init (&full_dev, min->dev, 0, min->dev->length); - return ped_constraint_new_from_min_max (min, &full_dev); -} - -/** - * Return a constraint that requires a region to be entirely contained inside - * \p max. - * - * \return \c NULL on failure. - */ -PedConstraint* -ped_constraint_new_from_max (const PedGeometry* max) -{ - PED_ASSERT (max != NULL); - - return ped_constraint_new ( - ped_alignment_any, ped_alignment_any, - max, max, 1, max->length); -} - -/** - * Duplicate a constraint. - * - * \return \c NULL on failure. - */ -PedConstraint* -ped_constraint_duplicate (const PedConstraint* constraint) -{ - PED_ASSERT (constraint != NULL); - - return ped_constraint_new ( - constraint->start_align, - constraint->end_align, - constraint->start_range, - constraint->end_range, - constraint->min_size, - constraint->max_size); -} - -/** - * Return a constraint that requires a region to satisfy both \p a and \p b. - * - * Moreover, any region satisfying \p a and \p b will also satisfy the returned - * constraint. - * - * \return \c NULL if no solution could be found (note that \c NULL is a valid - * PedConstraint). - */ -PedConstraint* -ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b) -{ - PedAlignment* start_align; - PedAlignment* end_align; - PedGeometry* start_range; - PedGeometry* end_range; - PedSector min_size; - PedSector max_size; - PedConstraint* constraint; - - if (!a || !b) - return NULL; - - start_align = ped_alignment_intersect (a->start_align, b->start_align); - if (!start_align) - goto empty; - end_align = ped_alignment_intersect (a->end_align, b->end_align); - if (!end_align) - goto empty_destroy_start_align; - start_range = ped_geometry_intersect (a->start_range, b->start_range); - if (!start_range) - goto empty_destroy_end_align; - end_range = ped_geometry_intersect (a->end_range, b->end_range); - if (!end_range) - goto empty_destroy_start_range; - min_size = PED_MAX (a->min_size, b->min_size); - max_size = PED_MIN (a->max_size, b->max_size); - - constraint = ped_constraint_new ( - start_align, end_align, start_range, end_range, - min_size, max_size); - if (!constraint) - goto empty_destroy_end_range; - - ped_alignment_destroy (start_align); - ped_alignment_destroy (end_align); - ped_geometry_destroy (start_range); - ped_geometry_destroy (end_range); - return constraint; - -empty_destroy_end_range: - ped_geometry_destroy (end_range); -empty_destroy_start_range: - ped_geometry_destroy (start_range); -empty_destroy_end_align: - ped_alignment_destroy (end_align); -empty_destroy_start_align: - ped_alignment_destroy (start_align); -empty: - return NULL; -} - -/** - * Release the memory allocated for a PedConstraint constructed with - * ped_constraint_init(). - */ -void -ped_constraint_done (PedConstraint* constraint) -{ - PED_ASSERT (constraint != NULL); - - ped_alignment_destroy (constraint->start_align); - ped_alignment_destroy (constraint->end_align); - ped_geometry_destroy (constraint->start_range); - ped_geometry_destroy (constraint->end_range); -} - -/** - * Release the memory allocated for a PedConstraint constructed with - * ped_constraint_new(). - */ -void -ped_constraint_destroy (PedConstraint* constraint) -{ - if (constraint) { - ped_constraint_done (constraint); - free (constraint); - } -} - -/* - * Return the region within which the start must lie - * in order to satisfy a constriant. It takes into account - * constraint->start_range, constraint->min_size and constraint->max_size. - * All sectors in this range that also satisfy alignment requirements have - * an end, such that the (start, end) satisfy the constraint. - */ -static PedGeometry* -_constraint_get_canonical_start_range (const PedConstraint* constraint) -{ - PedSector first_end_soln; - PedSector last_end_soln; - PedSector min_start; - PedSector max_start; - PedGeometry start_min_max_range; - - if (constraint->min_size > constraint->max_size) - return NULL; - - first_end_soln = ped_alignment_align_down ( - constraint->end_align, constraint->end_range, - constraint->end_range->start); - last_end_soln = ped_alignment_align_up ( - constraint->end_align, constraint->end_range, - constraint->end_range->end); - if (first_end_soln == -1 || last_end_soln == -1 - || first_end_soln > last_end_soln - || last_end_soln < constraint->min_size) - return NULL; - - min_start = first_end_soln - constraint->max_size + 1; - if (min_start < 0) - min_start = 0; - max_start = last_end_soln - constraint->min_size + 1; - if (max_start < 0) - return NULL; - - ped_geometry_init ( - &start_min_max_range, constraint->start_range->dev, - min_start, max_start - min_start + 1); - - return ped_geometry_intersect (&start_min_max_range, - constraint->start_range); -} - -/* - * Return the nearest start that will have at least one other end that - * together satisfy the constraint. - */ -static PedSector -_constraint_get_nearest_start_soln (const PedConstraint* constraint, - PedSector start) -{ - PedGeometry* start_range; - PedSector result; - - start_range = _constraint_get_canonical_start_range (constraint); - if (!start_range) - return -1; - result = ped_alignment_align_nearest ( - constraint->start_align, start_range, start); - ped_geometry_destroy (start_range); - return result; -} - -/* - * Given a constraint and a start ("half of the solution"), find the - * range of all possible ends, such that all (start, end) are solutions - * to constraint (subject to additional alignment requirements). - */ -static PedGeometry* -_constraint_get_end_range (const PedConstraint* constraint, PedSector start) -{ - PedDevice* dev = constraint->end_range->dev; - PedSector first_min_max_end; - PedSector last_min_max_end; - PedGeometry end_min_max_range; - - if (start + constraint->min_size - 1 > dev->length - 1) - return NULL; - - first_min_max_end = start + constraint->min_size - 1; - last_min_max_end = start + constraint->max_size - 1; - if (last_min_max_end > dev->length - 1) - last_min_max_end = dev->length - 1; - - ped_geometry_init (&end_min_max_range, dev, - first_min_max_end, - last_min_max_end - first_min_max_end + 1); - - return ped_geometry_intersect (&end_min_max_range, - constraint->end_range); -} - -/* - * Given "constraint" and "start", find the end that is nearest to - * "end", such that ("start", the end) together form a solution to - * "constraint". - */ -static PedSector -_constraint_get_nearest_end_soln (const PedConstraint* constraint, - PedSector start, PedSector end) -{ - PedGeometry* end_range; - PedSector result; - - end_range = _constraint_get_end_range (constraint, start); - if (!end_range) - return -1; - - result = ped_alignment_align_nearest (constraint->end_align, end_range, - end); - ped_geometry_destroy (end_range); - return result; -} - -/** - * Return the nearest region to \p geom that satisfy a \p constraint. - * - * Note that "nearest" is somewhat ambiguous. This function makes - * no guarantees about how this ambiguity is resovled. - * - * \return PedGeometry, or NULL when a \p constrain cannot be satisfied - */ -PedGeometry* -ped_constraint_solve_nearest ( - const PedConstraint* constraint, const PedGeometry* geom) -{ - PedSector start; - PedSector end; - PedGeometry* result; - - if (constraint == NULL) - return NULL; - - PED_ASSERT (geom != NULL); - PED_ASSERT (constraint->start_range->dev == geom->dev); - - start = _constraint_get_nearest_start_soln (constraint, geom->start); - if (start == -1) - return NULL; - end = _constraint_get_nearest_end_soln (constraint, start, geom->end); - if (end == -1) - return NULL; - - result = ped_geometry_new (geom->dev, start, end - start + 1); - if (!result) - return NULL; - PED_ASSERT (ped_constraint_is_solution (constraint, result)); - return result; -} - -/** - * Find the largest region that satisfies a constraint. - * - * There might be more than one solution. This function makes no - * guarantees about which solution it will choose in this case. - */ -PedGeometry* -ped_constraint_solve_max (const PedConstraint* constraint) -{ - PedDevice* dev; - PedGeometry full_dev; - - if (!constraint) - return NULL; - dev = constraint->start_range->dev; - ped_geometry_init (&full_dev, dev, 0, dev->length); - return ped_constraint_solve_nearest (constraint, &full_dev); -} - -/** - * Check whether \p geom satisfies the given constraint. - * - * \return \c 1 if it does. - **/ -int -ped_constraint_is_solution (const PedConstraint* constraint, - const PedGeometry* geom) -{ - PED_ASSERT (constraint != NULL); - PED_ASSERT (geom != NULL); - - if (!ped_alignment_is_aligned (constraint->start_align, NULL, - geom->start)) - return 0; - if (!ped_alignment_is_aligned (constraint->end_align, NULL, geom->end)) - return 0; - if (!ped_geometry_test_sector_inside (constraint->start_range, - geom->start)) - return 0; - if (!ped_geometry_test_sector_inside (constraint->end_range, geom->end)) - return 0; - if (geom->length < constraint->min_size) - return 0; - if (geom->length > constraint->max_size) - return 0; - return 1; -} - -/** - * Return a constraint that any region on the given device will satisfy. - */ -PedConstraint* -ped_constraint_any (const PedDevice* dev) -{ - PedGeometry full_dev; - - if (!ped_geometry_init (&full_dev, dev, 0, dev->length)) - return NULL; - - return ped_constraint_new ( - ped_alignment_any, - ped_alignment_any, - &full_dev, - &full_dev, - 1, - dev->length); -} - -/** - * Return a constraint that only the given region will satisfy. - */ -PedConstraint* -ped_constraint_exact (const PedGeometry* geom) -{ - PedAlignment start_align; - PedAlignment end_align; - PedGeometry start_sector; - PedGeometry end_sector; - int ok; - - /* With grain size of 0, it always succeeds. */ - ok = ped_alignment_init (&start_align, geom->start, 0); - assert (ok); - ok = ped_alignment_init (&end_align, geom->end, 0); - assert (ok); - - ok = ped_geometry_init (&start_sector, geom->dev, geom->start, 1); - if (!ok) - return NULL; - ok = ped_geometry_init (&end_sector, geom->dev, geom->end, 1); - if (!ok) - return NULL; - - return ped_constraint_new (&start_align, &end_align, - &start_sector, &end_sector, 1, - geom->dev->length); -} - -/** - * @} - */ diff --git a/jni/parted/libparted/cs/geom.c b/jni/parted/libparted/cs/geom.c deleted file mode 100755 index 99280ac..0000000 --- a/jni/parted/libparted/cs/geom.c +++ /dev/null @@ -1,487 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2000, 2005, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** \file geom.c */ - - -/** - * \addtogroup PedGeometry - * - * \brief PedGeometry represents a continuous region on a device. All addressing - * through a PedGeometry object is in terms of the start of the continuous - * region. - * - * The following conditions are always true on a PedGeometry object manipulated - * with the GNU Parted API: - * - * - start + length - 1 == end - * - length > 0 - * - start >= 0 - * - end < dev->length - * - * @{ - */ - -#include - -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -/** - * Initialize the previously allocated PedGeometry \p geom. - */ -int -ped_geometry_init (PedGeometry* geom, const PedDevice* dev, - PedSector start, PedSector length) -{ - PED_ASSERT (geom != NULL); - PED_ASSERT (dev != NULL); - - geom->dev = (PedDevice*) dev; - return ped_geometry_set (geom, start, length); -} - -/** - * Create a new PedGeometry object on \p disk, starting at \p start with a - * size of \p length sectors. - * - * \return NULL on failure. - */ -PedGeometry* -ped_geometry_new (const PedDevice* dev, PedSector start, PedSector length) -{ - PedGeometry* geom; - - PED_ASSERT (dev != NULL); - - geom = (PedGeometry*) ped_malloc (sizeof (PedGeometry)); - if (!geom) - goto error; - if (!ped_geometry_init (geom, dev, start, length)) - goto error_free_geom; - return geom; - -error_free_geom: - free (geom); -error: - return NULL; -} - -/** - * Duplicate a PedGeometry object. - * - * This function constructs a PedGeometry object that is an identical but - * independent copy of \p geom. Both the input, \p geom, and the output - * should be destroyed with ped_geometry_destroy() when they are no - * longer needed. - * - * \return NULL on failure. - */ -PedGeometry* -ped_geometry_duplicate (const PedGeometry* geom) -{ - PED_ASSERT (geom != NULL); - return ped_geometry_new (geom->dev, geom->start, geom->length); -} - -/** - * Return a PedGeometry object that refers to the intersection of - * \p a and \p b. - * - * This function constructs a PedGeometry object that describes the - * region that is common to both a and b. If there is no such common - * region, it returns NULL. (This situation is not treated as an - * error by much of GNU Parted.) - */ -PedGeometry* -ped_geometry_intersect (const PedGeometry* a, const PedGeometry* b) -{ - PedSector start; - PedSector end; - - if (!a || !b || a->dev != b->dev) - return NULL; - - start = PED_MAX (a->start, b->start); - end = PED_MIN (a->end, b->end); - if (start > end) - return NULL; - - return ped_geometry_new (a->dev, start, end - start + 1); -} - -/** - * Destroy a PedGeometry object. - */ -void -ped_geometry_destroy (PedGeometry* geom) -{ - PED_ASSERT (geom != NULL); - - free (geom); -} - -/** - * Assign a new \p start, \p end (implicitly) and \p length to \p geom. - * - * \p geom->end is calculated from \p start and \p length. - */ -int -ped_geometry_set (PedGeometry* geom, PedSector start, PedSector length) -{ - PED_ASSERT (geom != NULL); - PED_ASSERT (geom->dev != NULL); - PED_ASSERT (start >= 0); - - if (length < 1) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't have the end before the start!" - " (start sector=%jd length=%jd)"), start, length); - return 0; - } - - geom->start = start; - geom->length = length; - geom->end = start + length - 1; - - return 1; -} - -/** - * Assign a new start to \p geom without changing \p geom->end. - * - * \p geom->length is updated accordingly. - */ -int -ped_geometry_set_start (PedGeometry* geom, PedSector start) -{ - return ped_geometry_set (geom, start, geom->end - start + 1); -} - -/** - * Assign a new end to \p geom without changing \p geom->start. - * - * \p geom->length is updated accordingly. - */ -int -ped_geometry_set_end (PedGeometry* geom, PedSector end) -{ - return ped_geometry_set (geom, geom->start, end - geom->start + 1); -} -/** - * Test if \p a overlaps with \p b. - * - * That is, they lie on the same physical device, and they share - * the same physical region at least partially. - * - * \return 1 if \p a and \p b overlap. - */ -int -ped_geometry_test_overlap (const PedGeometry* a, const PedGeometry* b) -{ - PED_ASSERT (a != NULL); - PED_ASSERT (b != NULL); - - if (a->dev != b->dev) - return 0; - - if (a->start < b->start) - return a->end >= b->start; - else - return b->end >= a->start; -} - -/** - * Tests if \p b lies completely within \p a. That is, they lie on the same - * physical device, and all of the \p b's region is contained inside - * \p a's. - * - * \return 1 if the region \p b describes is contained entirely inside \p a -*/ -int -ped_geometry_test_inside (const PedGeometry* a, const PedGeometry* b) -{ - PED_ASSERT (a != NULL); - PED_ASSERT (b != NULL); - - if (a->dev != b->dev) - return 0; - - return b->start >= a->start && b->end <= a->end; -} - -/** - * Tests if \a a and \p b refer to the same physical region. - * - * \return 1 if \p a and \p b describe the same regions - * - */ -int -ped_geometry_test_equal (const PedGeometry* a, const PedGeometry* b) -{ - PED_ASSERT (a != NULL); - PED_ASSERT (b != NULL); - - return a->dev == b->dev - && a->start == b->start - && a->end == b->end; -} - -/** - * Tests if \p sector is inside \p geom. - * - * \return 1 if sector lies within the \p region that \p geom describes - */ -int -ped_geometry_test_sector_inside (const PedGeometry* geom, PedSector sector) -{ - PED_ASSERT (geom != NULL); - - return sector >= geom->start && sector <= geom->end; -} - -/** - * Reads data from the region represented by \p geom. \p offset is the - * location from within the region, not from the start of the disk. - * \p count sectors are read into \p buffer. - * This is essentially equivalent to: - * \code - * ped_device_read (geom->disk->dev, buffer, geom->start + offset, count) - * \endcode - * - * \throws PED_EXCEPTION_ERROR when attempting to read sectors outside of - * partition - * - * \return 0 on failure - */ -int -ped_geometry_read (const PedGeometry* geom, void* buffer, PedSector offset, - PedSector count) -{ - PedSector real_start; - - PED_ASSERT (geom != NULL); - PED_ASSERT (buffer != NULL); - PED_ASSERT (offset >= 0); - PED_ASSERT (count >= 0); - - real_start = geom->start + offset; - - if (real_start + count - 1 > geom->end) - return 0; - - if (!ped_device_read (geom->dev, buffer, real_start, count)) - return 0; - return 1; -} - -/* Like ped_device_read, but read into malloc'd storage. */ -int -ped_geometry_read_alloc (const PedGeometry* geom, void** buffer, - PedSector offset, PedSector count) -{ - char *buf = ped_malloc (count * geom->dev->sector_size); - if (buf == NULL) - return 0; - int ok = ped_geometry_read (geom, buf, offset, count); - if (!ok) { - free (buf); - buf = NULL; - } - - *buffer = buf; - return ok; -} - -/** - * Flushes the cache on \p geom. - * - * This function flushes all write-behind caches that might be holding - * writes made by ped_geometry_write() to \p geom. It is slow, because - * it guarantees cache coherency among all relevant caches. - * - * \return 0 on failure - */ -int -ped_geometry_sync (PedGeometry* geom) -{ - PED_ASSERT (geom != NULL); - return ped_device_sync (geom->dev); -} - -/** - * Flushes the cache on \p geom. - * - * This function flushes all write-behind caches that might be holding writes - * made by ped_geometry_write() to \p geom. It does NOT ensure cache coherency - * with other caches that cache data in the region described by \p geom. - * If you need cache coherency, use ped_geometry_sync() instead. - * - * \return 0 on failure - */ -int -ped_geometry_sync_fast (PedGeometry* geom) -{ - PED_ASSERT (geom != NULL); - return ped_device_sync_fast (geom->dev); -} - -/** - * Writes data into the region represented by \p geom. \p offset is the - * location from within the region, not from the start of the disk. - * \p count sectors are written. - * - * \return 0 on failure - */ -int -ped_geometry_write (PedGeometry* geom, const void* buffer, PedSector offset, - PedSector count) -{ - int exception_status; - PedSector real_start; - - PED_ASSERT (geom != NULL); - PED_ASSERT (buffer != NULL); - PED_ASSERT (offset >= 0); - PED_ASSERT (count >= 0); - - real_start = geom->start + offset; - - if (real_start + count - 1 > geom->end) { - exception_status = ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Attempt to write sectors %ld-%ld outside of " - "partition on %s."), - (long) offset, (long) (offset + count - 1), - geom->dev->path); - return exception_status == PED_EXCEPTION_IGNORE; - } - - if (!ped_device_write (geom->dev, buffer, real_start, count)) - return 0; - return 1; -} - -/** - * Checks for physical disk errors. \todo use ped_device_check() - * - * Checks a region for physical defects on \p geom. \p buffer is used - * for temporary storage for ped_geometry_check(), and has an undefined - * value. \p buffer is \p buffer_size sectors long. - * The region checked starts at \p offset sectors inside the - * region represented by \p geom, and is \p count sectors long. - * \p granularity specificies how sectors should be grouped - * together. The first bad sector to be returned will always be in - * the form: - * offset + n * granularity - * - * \return the first bad sector, or 0 if there were no physical errors - */ -PedSector -ped_geometry_check (PedGeometry* geom, void* buffer, PedSector buffer_size, - PedSector offset, PedSector granularity, PedSector count, - PedTimer* timer) -{ - PedSector group; - PedSector i; - PedSector read_len; - - PED_ASSERT (geom != NULL); - PED_ASSERT (buffer != NULL); - - ped_timer_reset (timer); - ped_timer_set_state_name (timer, _("checking for bad blocks")); - -retry: - ped_exception_fetch_all(); - for (group = offset; group < offset + count; group += buffer_size) { - ped_timer_update (timer, 1.0 * (group - offset) / count); - read_len = PED_MIN (buffer_size, offset + count - group); - if (!ped_geometry_read (geom, buffer, group, read_len)) - goto found_error; - } - ped_exception_leave_all(); - ped_timer_update (timer, 1.0); - return 0; - -found_error: - ped_exception_catch(); - for (i = group; i + granularity < group + count; i += granularity) { - if (!ped_geometry_read (geom, buffer, i, granularity)) { - ped_exception_catch(); - ped_exception_leave_all(); - return i; - } - } - ped_exception_leave_all(); - goto retry; /* weird: failure on group read, but not individually */ -} - -/** - * This function takes a \p sector inside the region described by src, and - * returns that sector's address inside dst. This means that - * - * \code - * ped_geometry_read (dst, buf, ped_geometry_map(dst, src, sector), 1) - * \endcode - * - * does the same thing as - * - * \code - * ped_geometry_read (src, buf, sector, 1) - * \endcode - * - * Clearly, this will only work if \p src and \p dst overlap. - * - * \return -1 if \p sector is not within \p dst's space, - * or \p sector's address inside \p dst - * - */ -PedSector -ped_geometry_map (const PedGeometry* dst, const PedGeometry* src, - PedSector sector) -{ - PedSector result; - - PED_ASSERT (dst != NULL); - PED_ASSERT (src != NULL); - - if (!ped_geometry_test_sector_inside (src, sector)) - return -1; - if (dst->dev != src->dev) - return -1; - - result = src->start + sector - dst->start; - if (result < 0 || result > dst->length) - return -1; - - return result; -} - -/** @} */ diff --git a/jni/parted/libparted/cs/natmath.c b/jni/parted/libparted/cs/natmath.c deleted file mode 100755 index ea53afc..0000000 --- a/jni/parted/libparted/cs/natmath.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2007-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -/** - * \file natmath.c - */ - -/** - * \addtogroup PedAlignment - * - * \brief Alignment constraint model. - * - * This part of libparted models alignment constraints. - * - * @{ - */ - -#include -#include -#include -#include -#include - -/* Arrrghhh! Why doesn't C have tuples? */ -typedef struct { - PedSector gcd; /* "converges" to the gcd */ - PedSector x; - PedSector y; -} EuclidTriple; - -static const PedAlignment _any = { - offset: 0, - grain_size: 1 -}; - -const PedAlignment* ped_alignment_any = &_any; -const PedAlignment* ped_alignment_none = NULL; - -/* This function returns "a mod b", the way C should have done it! - * Mathematicians prefer -3 mod 4 to be 3. Reason: division by N - * is all about adding or subtracting N, and we like our remainders - * to be between 0 and N - 1. - */ -static PedSector -abs_mod (PedSector a, PedSector b) -{ - if (a < 0) - return a % b + b; - else - return a % b; -} - -/* Rounds a number down to the closest number that is a multiple of - * grain_size. - */ -PedSector -ped_round_down_to (PedSector sector, PedSector grain_size) -{ - return sector - abs_mod (sector, grain_size); -} - -/* Rounds a number up to the closest number that is a multiple of - * grain_size. - */ -PedSector -ped_round_up_to (PedSector sector, PedSector grain_size) -{ - if (sector % grain_size) - return ped_round_down_to (sector, grain_size) + grain_size; - else - return sector; -} - -/* Rounds a number to the closest number that is a multiple of grain_size. */ -PedSector -ped_round_to_nearest (PedSector sector, PedSector grain_size) -{ - if (sector % grain_size > grain_size/2) - return ped_round_up_to (sector, grain_size); - else - return ped_round_down_to (sector, grain_size); -} - -/* This function returns the largest number that divides both a and b. - * It uses the ancient Euclidean algorithm. - */ -PedSector -ped_greatest_common_divisor (PedSector a, PedSector b) -{ - PED_ASSERT (a >= 0); - PED_ASSERT (b >= 0); - - /* Put the arguments in the "right" format. (Recursive calls made by - * this function are always in the right format.) - */ - if (b > a) - return ped_greatest_common_divisor (b, a); - - if (b) - return ped_greatest_common_divisor (b, a % b); - else - return a; -} - -/** - * Initialize a preallocated piece of memory for an alignment object - * (used by PedConstraint). - * - * The object will represent all sectors \e s for which the equation - * s = offset + X * grain_size holds. - */ -int -ped_alignment_init (PedAlignment* align, PedSector offset, PedSector grain_size) -{ - PED_ASSERT (align != NULL); - - if (grain_size < 0) - return 0; - - if (grain_size) - align->offset = abs_mod (offset, grain_size); - else - align->offset = offset; - align->grain_size = grain_size; - - return 1; -} - -/** - * Return an alignment object (used by PedConstraint), representing all - * PedSector's that are of the form offset + X * grain_size. - */ -PedAlignment* -ped_alignment_new (PedSector offset, PedSector grain_size) -{ - PedAlignment* align; - - align = (PedAlignment*) ped_malloc (sizeof (PedAlignment)); - if (!align) - goto error; - - if (!ped_alignment_init (align, offset, grain_size)) - goto error_free_align; - - return align; - -error_free_align: - free (align); -error: - return NULL; -} - -/** - * Free up memory associated with \p align. - */ -void -ped_alignment_destroy (PedAlignment* align) -{ - free (align); -} - -/** - * Return a duplicate of \p align. - */ -PedAlignment* -ped_alignment_duplicate (const PedAlignment* align) -{ - if (!align) - return NULL; - return ped_alignment_new (align->offset, align->grain_size); -} - -/* the extended Euclid algorithm. - * - * input: - * a and b, a > b - * - * output: - * gcd, x and y, such that: - * - * gcd = greatest common divisor of a and b - * gcd = x*a + y*b - */ -static EuclidTriple _GL_ATTRIBUTE_PURE -extended_euclid (int a, int b) -{ - EuclidTriple result; - EuclidTriple tmp; - - if (b == 0) { - result.gcd = a; - result.x = 1; - result.y = 0; - return result; - } - - tmp = extended_euclid (b, a % b); - result.gcd = tmp.gcd; - result.x = tmp.y; - result.y = tmp.x - (a/b) * tmp.y; - return result; -} - -/** - * This function computes a PedAlignment object that describes the - * intersection of two alignments. That is, a sector satisfies the - * new alignment object if and only if it satisfies both of the original - * ones. (See ped_alignment_is_aligned() for the meaning of "satisfies") - * - * Apart from the trivial cases (where one or both of the alignment objects - * constraints have no sectors that satisfy them), this is what we're trying to - * do: - * - two input constraints: \p a and \p b. - * - the new grain_size is going to be the lowest common multiple of - * \p a->grain_size and \p b->grain_size - * - hard part - solve the simultaneous equations, for offset, where offset, - * X and Y are variables. (Note: offset can be obtained from either X or Y, - * by substituing into either equation) - * - * \code - * offset = \p a->offset + X * \p a->grain_size (1) - * offset = \p b->offset + Y * \p b->grain_size (2) - * \endcode - * - * or, abbreviated: - * - * \code - * o = Ao + X*Ag (1) - * o = Bo + Y*Bg (2) - * - * => Ao + X*Ag = Bo + Y*Bg (1) = (2) - * X*Ag - Y*Bg = Bo - Ao (3) - * \endcode - * - * As it turns out, there only exists a solution if (Bo - Ao) is a multiple - * of the GCD of Ag and Bg. Reason: all linear combinations of Ag and Bg are - * multiples of the GCD. - * - * Proof: - * - * \code - * A * Ag + B * Bg - * = A * (\p a * gcd) + B * (\p b * gcd) - * = gcd * (A * \p a + B * \p b) - * \endcode - * - * gcd is a factor of the linear combination. QED - * - * Anyway, \p a * Ag + \p b * Bg = gcd can be solved (for \p a, \p b and gcd) - * with Euclid's extended algorithm. Then, we just multiply through by - * (Bo - Ao) / gcd to get (3). - * - * i.e. - * \code - * A * Ag + B * Bg = gcd - * A*(Bo-Ao)/gcd * Ag + B(Bo-Ao)/gcd * Bg = gcd * (Bo-Ao)/gcd - * X*Ag - Y*Bg = Bo - Ao (3) - * - * X = A*(Bo-Ao)/gcd - * Y = - B*(Bo-Ao)/gcd - * \endcode - * - * then: - * \code - * o = Ao + X*Ag (1) - * = Ao + A*(Bo-Ao)/gcd*Ag - * o = Bo + Y*Bg (2) - * = Bo - B*(Bo-Ao)/gcd*Ag - * \endcode - * - * Thanks go to Nathan Hurst (njh@hawthorn.csse.monash.edu.au) for figuring - * this algorithm out :-) - * - * \note Returned \c NULL is a valid PedAlignment object, and can be used - for ped_alignment_*() function. - * - * \return a PedAlignment on success, \c NULL on failure - */ -PedAlignment* -ped_alignment_intersect (const PedAlignment* a, const PedAlignment* b) -{ - PedSector new_grain_size; - PedSector new_offset; - PedSector delta_on_gcd; - EuclidTriple gcd_factors; - - - if (!a || !b) - return NULL; - - /*PED_DEBUG (0x10, "intersecting alignments (%d,%d) and (%d,%d)", - a->offset, a->grain_size, b->offset, b->grain_size); - */ - - if (a->grain_size < b->grain_size) { - const PedAlignment* tmp; - tmp = a; a = b; b = tmp; - } - - /* weird/trivial case: where the solution space for "a" or "b" is - * either empty or contains exactly one solution - */ - if (a->grain_size == 0 && b->grain_size == 0) { - if (a->offset == b->offset) - return ped_alignment_duplicate (a); - else - return NULL; - } - - /* general case */ - gcd_factors = extended_euclid (a->grain_size, b->grain_size); - - delta_on_gcd = (b->offset - a->offset) / gcd_factors.gcd; - new_offset = a->offset + gcd_factors.x * delta_on_gcd * a->grain_size; - new_grain_size = a->grain_size * b->grain_size / gcd_factors.gcd; - - /* inconsistency => no solution */ - if (new_offset - != b->offset - gcd_factors.y * delta_on_gcd * b->grain_size) - return NULL; - - return ped_alignment_new (new_offset, new_grain_size); -} - -/* This function returns the sector closest to "sector" that lies inside - * geom and satisfies the alignment constraint. - */ -static PedSector _GL_ATTRIBUTE_PURE -_closest_inside_geometry (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -{ - PED_ASSERT (align != NULL); - - if (!align->grain_size) { - if (ped_alignment_is_aligned (align, geom, sector) - && (!geom || ped_geometry_test_sector_inside (geom, - sector))) - return sector; - else - return -1; - } - - if (sector < geom->start) - sector += ped_round_up_to (geom->start - sector, - align->grain_size); - if (sector > geom->end) - sector -= ped_round_up_to (sector - geom->end, - align->grain_size); - - if (!ped_geometry_test_sector_inside (geom, sector)) - return -1; - return sector; -} - -/** - * This function returns the closest sector to \p sector that lies inside - * \p geom that satisfies the given alignment constraint \p align. It prefers - * sectors that are beyond \p sector (are not smaller than \p sector), - * but does not guarantee that this. - * - * \return a PedSector on success, \c -1 on failure - */ -PedSector -ped_alignment_align_up (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -{ - PedSector result; - - PED_ASSERT (align != NULL); - - if (!align->grain_size) - result = align->offset; - else - result = ped_round_up_to (sector - align->offset, - align->grain_size) - + align->offset; - - if (geom) - result = _closest_inside_geometry (align, geom, result); - return result; -} - -/** - * This function returns the closest sector to \p sector that lies inside - * \p geom that satisfies the given alignment constraint \p align. It prefers - * sectors that are before \p sector (are not larger than \p sector), - * but does not guarantee that this. - * - * \return a PedSector on success, \c -1 on failure - */ -PedSector -ped_alignment_align_down (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -{ - PedSector result; - - PED_ASSERT (align != NULL); - - if (!align->grain_size) - result = align->offset; - else - result = ped_round_down_to (sector - align->offset, - align->grain_size) - + align->offset; - - if (geom) - result = _closest_inside_geometry (align, geom, result); - return result; -} - -/* Returns either a or b, depending on which is closest to "sector". */ -static PedSector -closest (PedSector sector, PedSector a, PedSector b) -{ - if (a == -1) - return b; - if (b == -1) - return a; - - if (llabs (sector - a) < llabs (sector - b)) - return a; - else - return b; -} - -/** - * This function returns the sector that is closest to \p sector, - * satisfies the \p align constraint and lies inside \p geom. - * - * \return a PedSector on success, \c -1 on failure - */ -PedSector -ped_alignment_align_nearest (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -{ - PED_ASSERT (align != NULL); - - return closest (sector, ped_alignment_align_up (align, geom, sector), - ped_alignment_align_down (align, geom, sector)); -} - -/** - * This function returns 1 if \p sector satisfies the alignment - * constraint \p align and lies inside \p geom. - * - * \return \c 1 on success, \c 0 on failure - */ -int -ped_alignment_is_aligned (const PedAlignment* align, const PedGeometry* geom, - PedSector sector) -{ - if (!align) - return 0; - - if (geom && !ped_geometry_test_sector_inside (geom, sector)) - return 0; - - if (align->grain_size) - return (sector - align->offset) % align->grain_size == 0; - else - return sector == align->offset; -} - -/** - * @} - */ diff --git a/jni/parted/libparted/debug.c b/jni/parted/libparted/debug.c deleted file mode 100755 index 9a348bd..0000000 --- a/jni/parted/libparted/debug.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#ifdef DEBUG - -#if HAVE_BACKTRACE -#include -#endif - -static void default_handler ( const int level, const char* file, int line, - const char* function, const char* msg ); -static PedDebugHandler* debug_handler = &default_handler; - - -/** - * Default debug handler. - * Will print all information to stderr. - */ -static void default_handler ( const int level, const char* file, int line, - const char* function, const char* msg ) -{ - fprintf ( stderr, "[%d] %s:%d (%s): %s\n", - level, file, line, function, msg ); -} - -/** - * Send a debug message. - * Do not call this directly -- use PED_DEBUG() instead. - * - * level log level, 0 ~= "print definitely" - */ -void ped_debug ( const int level, const char* file, int line, - const char* function, const char* msg, ... ) -{ - va_list arg_list; - char* msg_concat = ped_malloc(8192); - - va_start ( arg_list, msg ); - vsnprintf ( msg_concat, 8192, msg, arg_list ); - va_end ( arg_list ); - - debug_handler ( level, file, line, function, msg_concat ); - - free ( msg_concat ); -} - -/* - * handler debug handler; NULL for default handler - */ -void ped_debug_set_handler ( PedDebugHandler* handler ) -{ - debug_handler = ( handler ? handler : default_handler ); -} - -/* - * Check an assertion. - * Do not call this directly -- use PED_ASSERT() instead. - */ -void ped_assert (const char* cond_text, - const char* file, int line, const char* function) -{ -#if HAVE_BACKTRACE - /* Print backtrace stack */ - void *stack[20]; - char **strings, **string; - int size = backtrace(stack, 20); - strings = backtrace_symbols(stack, size); - - if (strings) { - printf(_("Backtrace has %d calls on stack:\n"), size); - - for (string = strings; size > 0; size--, string++) - printf(" %d: %s\n", size, *string); - - free(strings); - } -#endif - - /* Throw the exception */ - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Assertion (%s) at %s:%d in function %s() failed."), - cond_text, file, line, function); - abort (); -} - -#endif /* DEBUG */ diff --git a/jni/parted/libparted/device.c b/jni/parted/libparted/device.c deleted file mode 100755 index 36fecd2..0000000 --- a/jni/parted/libparted/device.c +++ /dev/null @@ -1,562 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999 - 2001, 2005, 2007-2010 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -/** \file device.c */ - -/** - * \addtogroup PedDevice - * - * \brief Device access. - * - * When ped_device_probe_all() is called, libparted attempts to detect all - * devices. It constructs a list which can be accessed with - * ped_device_get_next(). - * - * If you want to use a device that isn't on the list, use - * ped_device_get(). Also, there may be OS-specific constructors, for creating - * devices from file descriptors, stores, etc. For example, - * ped_device_new_from_store(). - * - * @{ - */ - -#include - -#include -#include - -#include -#include -#include -#include - -#include "architecture.h" - -static PedDevice* devices; /* legal advice says: initialized to NULL, - under section 6.7.8 part 10 - of ISO/EIC 9899:1999 */ - -static void -_device_register (PedDevice* dev) -{ - PedDevice* walk; - for (walk = devices; walk && walk->next; walk = walk->next); - if (walk) - walk->next = dev; - else - devices = dev; - dev->next = NULL; -} - -static void -_device_unregister (PedDevice* dev) -{ - PedDevice* walk; - PedDevice* last = NULL; - - for (walk = devices; walk != NULL; last = walk, walk = walk->next) { - if (walk == dev) break; - } - - /* This function may be called twice for the same device if a - libparted user explictly removes the device from the cache using - ped_device_cache_remove(), we get called and it then becomes the - user's responsibility to free the PedDevice by calling - ped_device_destroy(). - ped_device_destroy() will then call us a second time, so if the - device is not found in the list do nothing. */ - if (walk == NULL) - return; - - if (last) - last->next = dev->next; - else - devices = dev->next; -} - -/** - * Returns the next device that was detected by ped_device_probe_all(), or - * calls to ped_device_get_next(). - * If dev is NULL, returns the first device. - * - * \return NULL if dev is the last device. - */ -PedDevice* -ped_device_get_next (const PedDevice* dev) -{ - if (dev) - return dev->next; - else - return devices; -} - -void -_ped_device_probe (const char* path) -{ - PedDevice* dev; - - PED_ASSERT (path != NULL); - - ped_exception_fetch_all (); - dev = ped_device_get (path); - if (!dev) - ped_exception_catch (); - ped_exception_leave_all (); -} - -/** - * Attempts to detect all devices. - */ -void -ped_device_probe_all () -{ - ped_architecture->dev_ops->probe_all (); -} - -/** - * Close/free all devices. - * Called by ped_done(), so you do not need to worry about it. - */ -void -ped_device_free_all () -{ - while (devices) - ped_device_destroy (devices); -} - -/** - * Gets the device "name", where name is usually the block device, e.g. - * /dev/sdb. If the device wasn't detected with ped_device_probe_all(), - * an attempt will be made to detect it again. If it is found, it will - * be added to the list. - */ -PedDevice* -ped_device_get (const char* path) -{ - PedDevice* walk; - char* normal_path = NULL; - - PED_ASSERT (path != NULL); - /* Don't canonicalize /dev/mapper or /dev/md/ paths, see - tests/symlink.c - */ - if (strncmp (path, "/dev/mapper/", 12) && - strncmp (path, "/dev/md/", 8)) - normal_path = canonicalize_file_name (path); - if (!normal_path) - /* Well, maybe it is just that the file does not exist. - * Try it anyway. */ - normal_path = strdup (path); - if (!normal_path) - return NULL; - - for (walk = devices; walk != NULL; walk = walk->next) { - if (!strcmp (walk->path, normal_path)) { - free (normal_path); - return walk; - } - } - - walk = ped_architecture->dev_ops->_new (normal_path); - free (normal_path); - if (!walk) - return NULL; - _device_register (walk); - return walk; -} - -/** - * Destroys a device and removes it from the device list, and frees - * all resources associated with the device (all resources allocated - * when the device was created). - */ -void -ped_device_destroy (PedDevice* dev) -{ - _device_unregister (dev); - - while (dev->open_count) { - if (!ped_device_close (dev)) - break; - } - - ped_architecture->dev_ops->destroy (dev); -} - -void -ped_device_cache_remove(PedDevice *dev) -{ - _device_unregister (dev); -} - -int -ped_device_is_busy (PedDevice* dev) -{ - return ped_architecture->dev_ops->is_busy (dev); -} - -/** - * Attempt to open a device to allow use of read, write and sync functions. - * - * The meaning of "open" is architecture-dependent. Apart from requesting - * access to the device from the operating system, it does things like flushing - * caches. - * \note May allocate resources. Any resources allocated here will - * be freed by a final ped_device_close(). (ped_device_open() may be - * called multiple times -- it's a ref-count-like mechanism) - * - * \return zero on failure - */ -int -ped_device_open (PedDevice* dev) -{ - int status; - - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - - if (dev->open_count) - status = ped_architecture->dev_ops->refresh_open (dev); - else - status = ped_architecture->dev_ops->open (dev); - if (status) - dev->open_count++; - return status; -} - -/** - * Close dev. - * If this is the final close, then resources allocated by - * ped_device_open() are freed. - * - * \return zero on failure - */ -int -ped_device_close (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - PED_ASSERT (dev->open_count > 0); - - if (--dev->open_count) - return ped_architecture->dev_ops->refresh_close (dev); - else - return ped_architecture->dev_ops->close (dev); -} - -/** - * Begins external access mode. External access mode allows you to - * safely do IO on the device. If a PedDevice is open, then you should - * not do any IO on that device, e.g. by calling an external program - * like e2fsck, unless you put it in external access mode. You should - * not use any libparted commands that do IO to a device, e.g. - * ped_file_system_{open|resize|copy}, ped_disk_{read|write}), while - * a device is in external access mode. - * Also, you should not ped_device_close() a device, while it is - * in external access mode. - * Note: ped_device_begin_external_access_mode() does things like - * tell the kernel to flush its caches. - * - * Close a device while pretending it is still open. - * This is useful for temporarily suspending libparted access to the device - * in order for an external program to access it. - * (Running external programs while the device is open can cause cache - * coherency problems.) - * - * In particular, this function keeps track of dev->open_count, so that - * reference counting isn't screwed up. - * - * \return zero on failure. - */ -int -ped_device_begin_external_access (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - - dev->external_mode = 1; - if (dev->open_count) - return ped_architecture->dev_ops->close (dev); - else - return 1; -} - -/** - * \brief Complementary function to ped_device_begin_external_access. - * - * \note does things like tell the kernel to flush the device's cache. - * - * \return zero on failure. - */ -int -ped_device_end_external_access (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (dev->external_mode); - - dev->external_mode = 0; - if (dev->open_count) - return ped_architecture->dev_ops->open (dev); - else - return 1; -} - -/** - * \internal Read count sectors from dev into buffer, beginning with sector - * start. - * - * \return zero on failure. - */ -int -ped_device_read (const PedDevice* dev, void* buffer, PedSector start, - PedSector count) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (buffer != NULL); - PED_ASSERT (!dev->external_mode); - PED_ASSERT (dev->open_count > 0); - - return (ped_architecture->dev_ops->read) (dev, buffer, start, count); -} - -/** - * \internal Write count sectors from buffer to dev, starting at sector - * start. - * - * \return zero on failure. - * - * \sa PedDevice::sector_size - * \sa PedDevice::phys_sector_size - */ -int -ped_device_write (PedDevice* dev, const void* buffer, PedSector start, - PedSector count) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (buffer != NULL); - PED_ASSERT (!dev->external_mode); - PED_ASSERT (dev->open_count > 0); - - return (ped_architecture->dev_ops->write) (dev, buffer, start, count); -} - -PedSector -ped_device_check (PedDevice* dev, void* buffer, PedSector start, - PedSector count) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - PED_ASSERT (dev->open_count > 0); - - return (ped_architecture->dev_ops->check) (dev, buffer, start, count); -} - -/** - * \internal Flushes all write-behind caches that might be holding up - * writes. - * It is slow because it guarantees cache coherency among all relevant caches. - * - * \return zero on failure - */ -int -ped_device_sync (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - PED_ASSERT (dev->open_count > 0); - - return ped_architecture->dev_ops->sync (dev); -} - -/** - * \internal Flushes all write-behind caches that might be holding writes. - * \warning Does NOT ensure cache coherency with other caches. - * If you need cache coherency, use ped_device_sync() instead. - * - * \return zero on failure - */ -int -ped_device_sync_fast (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (!dev->external_mode); - PED_ASSERT (dev->open_count > 0); - - return ped_architecture->dev_ops->sync_fast (dev); -} - -/** - * Get a constraint that represents hardware requirements on geometry. - * This function will return a constraint representing the limits imposed - * by the size of the disk, it will *not* provide any alignment constraints. - * - * Alignment constraints may be desirable when using media that have a physical - * sector size that is a multiple of the logical sector size, as in this case - * proper partition alignment can benefit disk performance signigicantly. - * When you want a constraint with alignment info, use - * ped_device_get_minimal_aligned_constraint() or - * ped_device_get_optimal_aligned_constraint(). - * - * \return NULL on error, otherwise a pointer to a dynamically allocated - * constraint. - */ -PedConstraint* -ped_device_get_constraint (const PedDevice* dev) -{ - PedGeometry *s, *e; - PedConstraint* c = ped_constraint_new ( - ped_alignment_any, ped_alignment_any, - s = ped_geometry_new (dev, 0, dev->length), - e = ped_geometry_new (dev, 0, dev->length), - 1, dev->length); - - free (s); - free (e); - return c; -} - -static PedConstraint* -_ped_device_get_aligned_constraint(const PedDevice *dev, - PedAlignment* start_align) -{ - PedAlignment *end_align = NULL; - PedGeometry *whole_dev_geom = NULL; - PedConstraint *c = NULL; - - if (start_align) { - end_align = ped_alignment_new(start_align->offset - 1, - start_align->grain_size); - if (!end_align) - goto free_start_align; - } - - whole_dev_geom = ped_geometry_new (dev, 0, dev->length); - - if (start_align) - c = ped_constraint_new (start_align, end_align, - whole_dev_geom, whole_dev_geom, - 1, dev->length); - else - c = ped_constraint_new (ped_alignment_any, ped_alignment_any, - whole_dev_geom, whole_dev_geom, - 1, dev->length); - - free (whole_dev_geom); - free (end_align); -free_start_align: - free (start_align); - return c; -} - -/** - * Get a constraint that represents hardware requirements on geometry and - * alignment. - * - * This function will return a constraint representing the limits imposed - * by the size of the disk and the minimal alignment requirements for proper - * performance of the disk. - * - * \return NULL on error, otherwise a pointer to a dynamically allocated - * constraint. - */ -PedConstraint* -ped_device_get_minimal_aligned_constraint(const PedDevice *dev) -{ - return _ped_device_get_aligned_constraint(dev, - ped_device_get_minimum_alignment(dev)); -} - -/** - * Get a constraint that represents hardware requirements on geometry and - * alignment. - * - * This function will return a constraint representing the limits imposed - * by the size of the disk and the alignment requirements for optimal - * performance of the disk. - * - * \return NULL on error, otherwise a pointer to a dynamically allocated - * constraint. - */ -PedConstraint* -ped_device_get_optimal_aligned_constraint(const PedDevice *dev) -{ - return _ped_device_get_aligned_constraint(dev, - ped_device_get_optimum_alignment(dev)); -} - -/** - * Get an alignment that represents minimum hardware requirements on alignment. - * When for example using media that has a physical sector size that is a - * multiple of the logical sector size, it is desirable to have disk accesses - * (and thus partitions) properly aligned. Having partitions not aligned to - * the minimum hardware requirements may lead to a performance penalty. - * - * The returned alignment describes the alignment for the start sector of the - * partition, the end sector should be aligned too, to get the end sector - * alignment decrease the returned alignment's offset by 1. - * - * \return the minimum alignment of partition start sectors, or NULL if this - * information is not available. - */ -PedAlignment* -ped_device_get_minimum_alignment(const PedDevice *dev) -{ - PedAlignment *align = NULL; - - if (ped_architecture->dev_ops->get_minimum_alignment) - align = ped_architecture->dev_ops->get_minimum_alignment(dev); - - if (align == NULL) - align = ped_alignment_new(0, - dev->phys_sector_size / dev->sector_size); - - return align; -} - -/** - * Get an alignment that represents the hardware requirements for optimal - * performance. - * - * The returned alignment describes the alignment for the start sector of the - * partition, the end sector should be aligned too, to get the end sector - * alignment decrease the returned alignment's offset by 1. - * - * \return the optimal alignment of partition start sectors, or NULL if this - * information is not available. - */ -PedAlignment* -ped_device_get_optimum_alignment(const PedDevice *dev) -{ - PedAlignment *align = NULL; - - if (ped_architecture->dev_ops->get_optimum_alignment) - align = ped_architecture->dev_ops->get_optimum_alignment(dev); - - /* If the arch specific code could not give as an alignment - return a default value based on the type of device. */ - if (align == NULL) { - /* Align to a grain of 1MiB (like vista / win7) */ - align = ped_alignment_new(0, - (PED_DEFAULT_ALIGNMENT - / dev->sector_size)); - } - - return align; -} - -/** @} */ diff --git a/jni/parted/libparted/disk.c b/jni/parted/libparted/disk.c deleted file mode 100755 index 0db7b5c..0000000 --- a/jni/parted/libparted/disk.c +++ /dev/null @@ -1,2668 +0,0 @@ - /* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2003, 2005, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/** \file disk.c */ - -/** - * \addtogroup PedDisk - * - * \brief Disk label access. - * - * Most programs will need to use ped_disk_new() or ped_disk_new_fresh() to get - * anything done. A PedDisk is always associated with a device and has a - * partition table. There are different types of partition tables (or disk - * labels). These are represented by the PedDiskType enumeration. - * - * @{ - */ - -#include - -#include -#include -#include -#include - -#include "architecture.h" -#include "labels/pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -# define N_(String) (String) -#else -# define _(String) (String) -# define N_(String) (String) -#endif /* ENABLE_NLS */ - -/* UPDATE MODE functions */ -#ifdef DEBUG -static int _disk_check_sanity (PedDisk* disk); -#endif -static int _disk_push_update_mode (PedDisk* disk); -static int _disk_pop_update_mode (PedDisk* disk); -static int _disk_raw_insert_before (PedDisk* disk, PedPartition* loc, - PedPartition* part); -static int _disk_raw_insert_after (PedDisk* disk, PedPartition* loc, - PedPartition* part); -static int _disk_raw_remove (PedDisk* disk, PedPartition* part); -static int _disk_raw_add (PedDisk* disk, PedPartition* part); - -static PedDiskType* disk_types = NULL; - -void -ped_disk_type_register (PedDiskType* disk_type) -{ - PED_ASSERT (disk_type != NULL); - PED_ASSERT (disk_type->ops != NULL); - PED_ASSERT (disk_type->name != NULL); - - disk_type->next = disk_types; - disk_types = disk_type; -} - -void -ped_disk_type_unregister (PedDiskType* disk_type) -{ - PedDiskType* walk; - PedDiskType* last = NULL; - - PED_ASSERT (disk_types != NULL); - PED_ASSERT (disk_type != NULL); - - for (walk = disk_types; walk && walk != disk_type; - last = walk, walk = walk->next); - - PED_ASSERT (walk != NULL); - if (last) - ((struct _PedDiskType*) last)->next = disk_type->next; - else - disk_types = disk_type->next; -} - -/** - * Return the next disk type registers, after "type". If "type" is - * NULL, returns the first disk type. - * - * \return Next disk; NULL if "type" is the last registered disk type. - */ -PedDiskType* -ped_disk_type_get_next (PedDiskType const *type) -{ - if (type) - return type->next; - else - return disk_types; -} - -/** - * Return the disk type with a name of "name". - * - * \return Disk type; NULL if no match. - */ -PedDiskType* -ped_disk_type_get (const char* name) -{ - PedDiskType* walk = NULL; - - PED_ASSERT (name != NULL); - - for (walk = ped_disk_type_get_next (NULL); walk; - walk = ped_disk_type_get_next (walk)) - if (strcasecmp (walk->name, name) == 0) - break; - - return walk; -} - -/** - * Return the type of partition table detected on "dev". - * - * \return Type; NULL if none was detected. - */ -PedDiskType* -ped_disk_probe (PedDevice* dev) -{ - PedDiskType* walk = NULL; - - PED_ASSERT (dev != NULL); - - if (!ped_device_open (dev)) - return NULL; - - ped_exception_fetch_all (); - for (walk = ped_disk_type_get_next (NULL); walk; - walk = ped_disk_type_get_next (walk)) - { - if (getenv ("PARTED_DEBUG")) { - fprintf (stderr, "probe label: %s\n", - walk->name); - fflush (stderr); - } - if (walk->ops->probe (dev)) - break; - } - - if (ped_exception) - ped_exception_catch (); - ped_exception_leave_all (); - - ped_device_close (dev); - return walk; -} - -/** - * Read the partition table off a device (if one is found). - * - * \warning May modify \p dev->cylinders, \p dev->heads and \p dev->sectors - * if the partition table indicates that the existing values - * are incorrect. - * - * \return A new \link _PedDisk PedDisk \endlink object; - * NULL on failure (e.g. partition table not detected). - */ -PedDisk* -ped_disk_new (PedDevice* dev) -{ - PedDiskType* type; - PedDisk* disk; - - PED_ASSERT (dev != NULL); - - if (!ped_device_open (dev)) - goto error; - - type = ped_disk_probe (dev); - if (!type) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s: unrecognised disk label"), - dev->path); - goto error_close_dev; - } - disk = ped_disk_new_fresh (dev, type); - if (!disk) - goto error_close_dev; - if (!type->ops->read (disk)) - goto error_destroy_disk; - disk->needs_clobber = 0; - ped_device_close (dev); - return disk; - -error_destroy_disk: - ped_disk_destroy (disk); -error_close_dev: - ped_device_close (dev); -error: - return NULL; -} - -static int -_add_duplicate_part (PedDisk* disk, PedPartition* old_part) -{ - PedPartition* new_part; - int ret; - - new_part = disk->type->ops->partition_duplicate (old_part); - if (!new_part) - goto error; - new_part->disk = disk; - - if (!_disk_push_update_mode (disk)) - goto error_destroy_new_part; - ret = _disk_raw_add (disk, new_part); - if (!_disk_pop_update_mode (disk)) - goto error_destroy_new_part; - if (!ret) - goto error_destroy_new_part; -#ifdef DEBUG - if (!_disk_check_sanity (disk)) - goto error_destroy_new_part; -#endif - return 1; - -error_destroy_new_part: - ped_partition_destroy (new_part); -error: - return 0; -} - -/** - * Clone a \link _PedDisk PedDisk \endlink object. - * - * \return Deep copy of \p old_disk, NULL on failure. - */ -PedDisk* -ped_disk_duplicate (const PedDisk* old_disk) -{ - PedDisk* new_disk; - PedPartition* old_part; - - PED_ASSERT (old_disk != NULL); - PED_ASSERT (!old_disk->update_mode); - PED_ASSERT (old_disk->type->ops->duplicate != NULL); - PED_ASSERT (old_disk->type->ops->partition_duplicate != NULL); - - new_disk = old_disk->type->ops->duplicate (old_disk); - if (!new_disk) - goto error; - - if (!_disk_push_update_mode (new_disk)) - goto error_destroy_new_disk; - for (old_part = ped_disk_next_partition (old_disk, NULL); old_part; - old_part = ped_disk_next_partition (old_disk, old_part)) { - if (ped_partition_is_active (old_part)) { - if (!_add_duplicate_part (new_disk, old_part)){ - _disk_pop_update_mode (new_disk); - goto error_destroy_new_disk; - } - } - } - if (!_disk_pop_update_mode (new_disk)) - goto error_destroy_new_disk; - - new_disk->needs_clobber = old_disk->needs_clobber; - - return new_disk; - -error_destroy_new_disk: - ped_disk_destroy (new_disk); -error: - return NULL; -} - -/* Given a partition table type NAME, e.g., "gpt", return its PedDiskType - handle. If no known type has a name matching NAME, return NULL. */ -static PedDiskType const * _GL_ATTRIBUTE_PURE -find_disk_type (char const *name) -{ - PedDiskType const *t; - for (t = ped_disk_type_get_next (NULL); t; t = ped_disk_type_get_next (t)) - { - if (strcmp (t->name, name) == 0) - return t; - } - return NULL; -} - -/** - * Remove all identifying signatures of a partition table, - * - * \return 0 on error, 1 otherwise. - * - * \sa ped_disk_clobber() - */ -int -ped_disk_clobber (PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - - if (!ped_device_open (dev)) - goto error; - - PedDiskType const *gpt = find_disk_type ("gpt"); - PED_ASSERT (gpt != NULL); - - /* If there is a GPT table, don't clobber the protective MBR. */ - bool is_gpt = gpt->ops->probe (dev); - PedSector first_sector = (is_gpt ? 1 : 0); - - /* How many sectors to zero out at each end. - This must be large enough to zero out the magic bytes - starting at offset 8KiB on a DASD partition table. - Doing the same from the end of the disk is probably - overkill, but at least on GPT, we do need to zero out - the final sector. */ - const PedSector n_sectors = 9 * 1024 / dev->sector_size + 1; - - /* Clear the first few. */ - PedSector n = n_sectors; - if (dev->length < first_sector + n_sectors) - n = dev->length - first_sector; - if (!ptt_clear_sectors (dev, first_sector, n)) - goto error_close_dev; - - /* Clear the last few. */ - PedSector t = (dev->length - - (n_sectors < dev->length ? n_sectors : 1)); - - /* Don't clobber the pMBR if we have a pathologically small disk. */ - if (t < first_sector) - t = first_sector; - if (!ptt_clear_sectors (dev, t, dev->length - t)) - goto error_close_dev; - - ped_device_close (dev); - return 1; - -error_close_dev: - ped_device_close (dev); -error: - return 0; -} - -/** - * Create a new partition table on \p dev. - * - * This new partition table is only created in-memory, and nothing is written - * to disk until ped_disk_commit_to_dev() is called. - * - * \return The newly constructed \link _PedDisk PedDisk \endlink, - * NULL on failure. - */ -PedDisk* -ped_disk_new_fresh (PedDevice* dev, const PedDiskType* type) -{ - PedDisk* disk; - - PED_ASSERT (dev != NULL); - PED_ASSERT (type != NULL); - PED_ASSERT (type->ops->alloc != NULL); - PedCHSGeometry* bios_geom = &dev->bios_geom; - PED_ASSERT (bios_geom->sectors != 0); - PED_ASSERT (bios_geom->heads != 0); - - disk = type->ops->alloc (dev); - if (!disk) - goto error; - if (!_disk_pop_update_mode (disk)) - goto error_destroy_disk; - PED_ASSERT (disk->update_mode == 0); - - disk->needs_clobber = 1; - return disk; - -error_destroy_disk: - ped_disk_destroy (disk); -error: - return NULL; -} - -PedDisk* -_ped_disk_alloc (const PedDevice* dev, const PedDiskType* disk_type) -{ - PedDisk* disk; - - disk = (PedDisk*) ped_malloc (sizeof (PedDisk)); - if (!disk) - goto error; - - disk->dev = (PedDevice*)dev; - disk->type = disk_type; - disk->update_mode = 1; - disk->part_list = NULL; - disk->needs_clobber = 0; - return disk; - -error: - return NULL; -} - -void -_ped_disk_free (PedDisk* disk) -{ - _disk_push_update_mode (disk); - ped_disk_delete_all (disk); - free (disk); -} - -/** - * Close \p disk. - * - * What this function does depends on the PedDiskType of \p disk, - * but you can generally assume that outstanding writes are flushed - * (this mainly means that _ped_disk_free is called). - */ -void -ped_disk_destroy (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (!disk->update_mode); - - disk->type->ops->free (disk); -} - -/** - * Tell the operating system kernel about the partition table layout - * of \p disk. - * - * This is rather loosely defined: for example, on old versions of Linux, - * it simply calls the BLKRRPART ioctl, which tells the kernel to - * reread the partition table. On newer versions (2.4.x), it will - * use the new blkpg interface to tell Linux where each partition - * starts/ends, etc. In this case, Linux does not need to have support for - * a specific type of partition table. - * - * \return 0 on failure, 1 otherwise. - */ -int -ped_disk_commit_to_os (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - - if (!ped_device_open (disk->dev)) - goto error; - if (!ped_architecture->disk_ops->disk_commit (disk)) - goto error_close_dev; - ped_device_close (disk->dev); - return 1; - -error_close_dev: - ped_device_close (disk->dev); -error: - return 0; -} - -/** - * Write the changes made to the in-memory description - * of a partition table to the device. - * - * \return 0 on failure, 1 otherwise. - */ -int -ped_disk_commit_to_dev (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (!disk->update_mode); - - if (!disk->type->ops->write) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("This libparted doesn't have write support for " - "%s. Perhaps it was compiled read-only."), - disk->type->name); - goto error; - } - - if (!ped_device_open (disk->dev)) - goto error; - - if (disk->needs_clobber) { - if (!ped_disk_clobber (disk->dev)) - goto error_close_dev; - disk->needs_clobber = 0; - } - if (!disk->type->ops->write (disk)) - goto error_close_dev; - ped_device_close (disk->dev); - return 1; - -error_close_dev: - ped_device_close (disk->dev); -error: - return 0; -} - -/* - * This function writes the in-memory changes to a partition table to - * disk and informs the operating system of the changes. - * - * \note Equivalent to calling first ped_disk_commit_to_dev(), then - * ped_disk_commit_to_os(). - * - * \return 0 on failure, 1 otherwise. - */ -int -ped_disk_commit (PedDisk* disk) -{ - /* Open the device here, so that the underlying fd is not closed - between commit_to_dev and commit_to_os (closing causes unwanted - udev events to be sent under Linux). */ - if (!ped_device_open (disk->dev)) - goto error; - - if (!ped_disk_commit_to_dev (disk)) - goto error_close_dev; - - if (!ped_disk_commit_to_os (disk)) - goto error_close_dev; - - ped_device_close (disk->dev); - return 1; - -error_close_dev: - ped_device_close (disk->dev); -error: - return 0; -} - -/** - * \addtogroup PedPartition - * - * @{ - */ - -/** - * Check whether a partition is mounted or busy in some - * other way. - * - * \note An extended partition is busy if any logical partitions are mounted. - * - * \return \c 1 if busy. - */ -int -ped_partition_is_busy (const PedPartition* part) -{ - PED_ASSERT (part != NULL); - - return ped_architecture->disk_ops->partition_is_busy (part); -} - -/** - * Return a path that can be used to address the partition in the - * operating system. - */ -char* -ped_partition_get_path (const PedPartition* part) -{ - PED_ASSERT (part != NULL); - - return ped_architecture->disk_ops->partition_get_path (part); -} - -/** @} */ - -/** - * \addtogroup PedDisk - * - * @{ - */ - -/** - * Perform a sanity check on a partition table. - * - * \note The check performed is generic (i.e. it does not depends on the label - * type of the disk. - * - * \throws PED_EXCEPTION_WARNING if a partition type ID does not match the file - * system on it. - * - * \return 0 if the check fails, 1 otherwise. - */ -int -ped_disk_check (const PedDisk* disk) -{ - PedPartition* walk; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - const PedFileSystemType* fs_type = walk->fs_type; - PedGeometry* geom; - PedSector length_error; - PedSector max_length_error; - - if (!ped_partition_is_active (walk) || !fs_type) - continue; - - geom = ped_file_system_probe_specific (fs_type, &walk->geom); - if (!geom) - continue; - - length_error = llabs (walk->geom.length - geom->length); - max_length_error = PED_MAX (4096, walk->geom.length / 100); - bool ok = (ped_geometry_test_inside (&walk->geom, geom) - && length_error <= max_length_error); - char *fs_size = ped_unit_format (disk->dev, geom->length); - ped_geometry_destroy (geom); - if (!ok) { - char* part_size = ped_unit_format (disk->dev, - walk->geom.length); - PedExceptionOption choice; - choice = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("Partition %d is %s, but the file system is " - "%s."), - walk->num, part_size, fs_size); - - free (part_size); - - free (fs_size); - fs_size = NULL; - - if (choice != PED_EXCEPTION_IGNORE) - return 0; - } - free (fs_size); - } - - return 1; -} - -/** - * This function checks if a particular type of partition table supports - * a feature. - * - * \return 1 if \p disk_type supports \p feature, 0 otherwise. - */ -int -ped_disk_type_check_feature (const PedDiskType* disk_type, - PedDiskTypeFeature feature) -{ - return (disk_type->features & feature) != 0; -} - -/** - * Get the number of primary partitions. - */ -int -ped_disk_get_primary_partition_count (const PedDisk* disk) -{ - PedPartition* walk; - int count = 0; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - if (ped_partition_is_active (walk) - && ! (walk->type & PED_PARTITION_LOGICAL)) - count++; - } - - return count; -} - -/** - * Get the highest available partition number on \p disk. - */ -int -ped_disk_get_last_partition_num (const PedDisk* disk) -{ - PedPartition* walk; - int highest = -1; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - if (walk->num > highest) - highest = walk->num; - } - - return highest; -} - -/** - * Get the highest supported partition number on \p disk. - * - * \return 0 if call fails. 1 otherwise. - */ -bool -ped_disk_get_max_supported_partition_count(const PedDisk* disk, int* supported) -{ - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->type->ops->get_max_supported_partition_count != NULL); - - return disk->type->ops->get_max_supported_partition_count(disk, supported); -} - -/** - * Get the alignment needed for partition boundaries on this disk. - * The returned alignment describes the alignment for the start sector of the - * partition, for all disklabel types which require alignment, except Sun - * disklabels, the end sector must be aligned too. To get the end sector - * alignment decrease the PedAlignment offset by 1. - * - * \return NULL on error, otherwise a pointer to a dynamically allocated - * alignment. - */ -PedAlignment* -ped_disk_get_partition_alignment(const PedDisk *disk) -{ - /* disklabel handlers which don't need alignment don't define this */ - if (!disk->type->ops->get_partition_alignment) - return ped_alignment_duplicate(ped_alignment_any); - - return disk->type->ops->get_partition_alignment(disk); -} - -/** - * Get the maximum number of (primary) partitions the disk label supports. - * - * For example, MacIntosh partition maps can have different sizes, - * and accordingly support a different number of partitions. - */ -int -ped_disk_get_max_primary_partition_count (const PedDisk* disk) -{ - PED_ASSERT (disk->type != NULL); - PED_ASSERT (disk->type->ops->get_max_primary_partition_count != NULL); - - return disk->type->ops->get_max_primary_partition_count (disk); -} - -/** - * Set the state (\c 1 or \c 0) of a flag on a disk. - * - * \note It is an error to call this on an unavailable flag -- use - * ped_disk_is_flag_available() to determine which flags are available - * for a given disk label. - * - * \throws PED_EXCEPTION_ERROR if the requested flag is not available for this - * label. - */ -int -ped_disk_set_flag(PedDisk *disk, PedDiskFlag flag, int state) -{ - int ret; - - PED_ASSERT (disk != NULL); - - PedDiskOps *ops = disk->type->ops; - - if (!_disk_push_update_mode(disk)) - return 0; - - if (!ped_disk_is_flag_available(disk, flag)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "The flag '%s' is not available for %s disk labels.", - ped_disk_flag_get_name(flag), - disk->type->name); - _disk_pop_update_mode(disk); - return 0; - } - - ret = ops->disk_set_flag(disk, flag, state); - - if (!_disk_pop_update_mode (disk)) - return 0; - - return ret; -} - -/** - * Get the state (\c 1 or \c 0) of a flag on a disk. - */ -int -ped_disk_get_flag(const PedDisk *disk, PedDiskFlag flag) -{ - PED_ASSERT (disk != NULL); - - PedDiskOps *ops = disk->type->ops; - - if (!ped_disk_is_flag_available(disk, flag)) - return 0; - - return ops->disk_get_flag(disk, flag); -} - -/** - * Check whether a given flag is available on a disk. - * - * \return \c 1 if the flag is available. - */ -int -ped_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag) -{ - PED_ASSERT (disk != NULL); - - PedDiskOps *ops = disk->type->ops; - - if (!ops->disk_is_flag_available) - return 0; - - return ops->disk_is_flag_available(disk, flag); -} - -/** - * Returns a name for a \p flag, e.g. PED_DISK_CYLINDER_ALIGNMENT will return - * "cylinder_alignment". - * - * \note The returned string will be in English. However, - * translations are provided, so the caller can call - * dgettext("parted", RESULT) on the result. - */ -const char * -ped_disk_flag_get_name(PedDiskFlag flag) -{ - switch (flag) { - case PED_DISK_CYLINDER_ALIGNMENT: - return N_("cylinder_alignment"); - case PED_DISK_GPT_PMBR_BOOT: - return N_("pmbr_boot"); - default: - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Unknown disk flag, %d."), - flag); - return NULL; - } -} - -/** - * Returns the flag associated with \p name. - * - * \p name can be the English - * string, or the translation for the native language. - */ -PedDiskFlag -ped_disk_flag_get_by_name(const char *name) -{ - PedDiskFlag flag; - - for (flag = ped_disk_flag_next(0); flag; - flag = ped_disk_flag_next(flag)) { - const char *flag_name = ped_disk_flag_get_name(flag); - if (strcasecmp(name, flag_name) == 0 - || strcasecmp(name, _(flag_name)) == 0) - return flag; - } - - return 0; -} - -/** - * Iterates through all disk flags. - * - * ped_disk_flag_next(0) returns the first flag - * - * \return the next flag, or 0 if there are no more flags - */ -PedDiskFlag -ped_disk_flag_next(PedDiskFlag flag) -{ - return (flag + 1) % (PED_DISK_LAST_FLAG + 1); -} - -static int -_assert_disk_uuid_feature (const PedDiskType* disk_type) -{ - if (!ped_disk_type_check_feature ( - disk_type, PED_DISK_TYPE_DISK_UUID)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "%s disk labels do not support disk uuids.", - disk_type->name); - return 0; - } - return 1; -} - -/** - * Get the uuid of the disk \p disk. This will only work if the disk label - * supports it. - */ -uint8_t* -ped_disk_get_uuid (const PedDisk *disk) -{ - PED_ASSERT (disk != NULL); - - if (!_assert_disk_uuid_feature (disk->type)) - return NULL; - - PED_ASSERT (disk->type->ops->disk_get_uuid != NULL); - return disk->type->ops->disk_get_uuid (disk); -} - -/** - * \internal We turned a really nasty bureaucracy problem into an elegant maths - * problem :-) Basically, there are some constraints to a partition's - * geometry: - * - * (1) it must start and end on a "disk" block, determined by the disk label - * (not the hardware). (constraint represented by a PedAlignment) - * - * (2) if we're resizing a partition, we MIGHT need to keep each block aligned. - * Eg: if an ext2 file system has 4k blocks, then we can only move the start - * by a multiple of 4k. (constraint represented by a PedAlignment) - * - * (3) we need to keep the start and end within the device's physical - * boundaries. (constraint represented by a PedGeometry) - * - * Satisfying (1) and (2) simultaneously required a bit of fancy maths ;-) See - * ped_alignment_intersect() - * - * The application of these constraints is in disk_*.c's *_partition_align() - * function. - */ -static int -_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - const PedDiskType* disk_type; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->num != -1); - PED_ASSERT (part->disk != NULL); - disk_type = part->disk->type; - PED_ASSERT (disk_type != NULL); - PED_ASSERT (disk_type->ops->partition_align != NULL); - PED_ASSERT (part->disk->update_mode); - - if (part->disk->needs_clobber) - return 1; /* do not attempt to align partitions while reading them */ - return disk_type->ops->partition_align (part, constraint); -} - -static int -_partition_enumerate (PedPartition* part) -{ - const PedDiskType* disk_type; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - disk_type = part->disk->type; - PED_ASSERT (disk_type != NULL); - PED_ASSERT (disk_type->ops->partition_enumerate != NULL); - - return disk_type->ops->partition_enumerate (part); -} - -/** - * Gives all the (active) partitions a number. It should preserve the numbers - * and orders as much as possible. - */ -static int -ped_disk_enumerate_partitions (PedDisk* disk) -{ - PedPartition* walk; - int i; - int end; - - PED_ASSERT (disk != NULL); - -/* first "sort" already-numbered partitions. (e.g. if a logical partition - * is removed, then all logical partitions that were number higher MUST be - * renumbered) - */ - end = ped_disk_get_last_partition_num (disk); - for (i=1; i<=end; i++) { - walk = ped_disk_get_partition (disk, i); - if (walk) { - if (!_partition_enumerate (walk)) - return 0; - } - } - -/* now, number un-numbered partitions */ - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - if (ped_partition_is_active (walk) && walk->num == -1) { - if (!_partition_enumerate (walk)) - return 0; - } - } - - return 1; -} - -static int -_disk_remove_metadata (PedDisk* disk) -{ - PedPartition* walk = NULL; - PedPartition* next; - - PED_ASSERT (disk != NULL); - - next = ped_disk_next_partition (disk, walk); - - while (next) { - walk = next; - while (1) { - next = ped_disk_next_partition (disk, next); - if (!next || next->type & PED_PARTITION_METADATA) - break; - } - if (walk->type & PED_PARTITION_METADATA) - ped_disk_delete_partition (disk, walk); - } - return 1; -} - -static int -_disk_alloc_metadata (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - - if (!disk->update_mode) - _disk_remove_metadata (disk); - - return disk->type->ops->alloc_metadata (disk); -} - -static int -_disk_remove_freespace (PedDisk* disk) -{ - PedPartition* walk; - PedPartition* next; - - walk = ped_disk_next_partition (disk, NULL); - for (; walk; walk = next) { - next = ped_disk_next_partition (disk, walk); - - if (walk->type & PED_PARTITION_FREESPACE) { - _disk_raw_remove (disk, walk); - ped_partition_destroy (walk); - } - } - - return 1; -} - -static int -_alloc_extended_freespace (PedDisk* disk) -{ - PedSector last_end; - PedPartition* walk; - PedPartition* last; - PedPartition* free_space; - PedPartition* extended_part; - - extended_part = ped_disk_extended_partition (disk); - if (!extended_part) - return 1; - - last_end = extended_part->geom.start; - last = NULL; - - for (walk = extended_part->part_list; walk; walk = walk->next) { - if (walk->geom.start > last_end + 1) { - free_space = ped_partition_new ( - disk, - PED_PARTITION_FREESPACE - | PED_PARTITION_LOGICAL, - NULL, - last_end + 1, walk->geom.start - 1); - _disk_raw_insert_before (disk, walk, free_space); - } - - last = walk; - last_end = last->geom.end; - } - - if (last_end < extended_part->geom.end) { - free_space = ped_partition_new ( - disk, - PED_PARTITION_FREESPACE | PED_PARTITION_LOGICAL, - NULL, - last_end + 1, extended_part->geom.end); - - if (last) - return _disk_raw_insert_after (disk, last, free_space); - else - extended_part->part_list = free_space; - } - - return 1; -} - -static int -_disk_alloc_freespace (PedDisk* disk) -{ - PedSector last_end; - PedPartition* walk; - PedPartition* last; - PedPartition* free_space; - - if (!_disk_remove_freespace (disk)) - return 0; - if (!_alloc_extended_freespace (disk)) - return 0; - - last = NULL; - last_end = -1; - - for (walk = disk->part_list; walk; walk = walk->next) { - if (walk->geom.start > last_end + 1) { - free_space = ped_partition_new (disk, - PED_PARTITION_FREESPACE, NULL, - last_end + 1, walk->geom.start - 1); - _disk_raw_insert_before (disk, walk, free_space); - } - - last = walk; - last_end = last->geom.end; - } - - if (last_end < disk->dev->length - 1) { - free_space = ped_partition_new (disk, - PED_PARTITION_FREESPACE, NULL, - last_end + 1, disk->dev->length - 1); - if (last) - return _disk_raw_insert_after (disk, last, free_space); - else - disk->part_list = free_space; - } - - return 1; -} - -/** - * Update mode: used when updating the internal representation of the partition - * table. In update mode, the metadata and freespace placeholder/virtual - * partitions are removed, making it much easier for various manipulation - * routines... - */ -static int -_disk_push_update_mode (PedDisk* disk) -{ - if (!disk->update_mode) { -#ifdef DEBUG - if (!_disk_check_sanity (disk)) - return 0; -#endif - - _disk_remove_freespace (disk); - disk->update_mode++; - _disk_remove_metadata (disk); - -#ifdef DEBUG - if (!_disk_check_sanity (disk)) - return 0; -#endif - } else { - disk->update_mode++; - } - return 1; -} - -static int -_disk_pop_update_mode (PedDisk* disk) -{ - PED_ASSERT (disk->update_mode); - - if (disk->update_mode == 1) { - /* re-allocate metadata BEFORE leaving update mode, to prevent infinite - * recursion (metadata allocation requires update mode) - */ -#ifdef DEBUG - if (!_disk_check_sanity (disk)) - return 0; -#endif - - _disk_alloc_metadata (disk); - disk->update_mode--; - _disk_alloc_freespace (disk); - -#ifdef DEBUG - if (!_disk_check_sanity (disk)) - return 0; -#endif - } else { - disk->update_mode--; - } - return 1; -} - -/** @} */ - -/** - * \addtogroup PedPartition - * - * \brief Partition access. - * - * @{ - */ - -PedPartition* -_ped_partition_alloc (const PedDisk* disk, PedPartitionType type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - - PED_ASSERT (disk != NULL); - - part = (PedPartition*) ped_malloc (sizeof (PedPartition)); - if (!part) - goto error; - - part->prev = NULL; - part->next = NULL; - - part->disk = (PedDisk*) disk; - if (!ped_geometry_init (&part->geom, disk->dev, start, end - start + 1)) - goto error_free_part; - - part->num = -1; - part->type = type; - part->part_list = NULL; - part->fs_type = fs_type; - - return part; - -error_free_part: - free (part); -error: - return NULL; -} - -void -_ped_partition_free (PedPartition* part) -{ - free (part); -} - -int -_ped_partition_attempt_align (PedPartition* part, - const PedConstraint* external, - PedConstraint* internal) -{ - PedConstraint* intersection; - PedGeometry* solution; - - intersection = ped_constraint_intersect (external, internal); - ped_constraint_destroy (internal); - if (!intersection) - goto fail; - - solution = ped_constraint_solve_nearest (intersection, &part->geom); - if (!solution) - goto fail_free_intersection; - ped_geometry_set (&part->geom, solution->start, solution->length); - ped_geometry_destroy (solution); - ped_constraint_destroy (intersection); - return 1; - -fail_free_intersection: - ped_constraint_destroy (intersection); -fail: - return 0; -} - -/** - * Create a new \link _PedPartition PedPartition \endlink on \p disk. - * - * \param type One of \p PED_PARTITION_NORMAL, \p PED_PARTITION_EXTENDED, - * \p PED_PARTITION_LOGICAL. - * - * \note The constructed partition is not added to disk's - * partition table. Use ped_disk_add_partition() to do this. - * - * \return A new \link _PedPartition PedPartition \endlink object, - * NULL on failure. - * - * \throws PED_EXCEPTION_ERROR if \p type is \p EXTENDED or \p LOGICAL but the - * label does not support this concept. - */ -PedPartition* -ped_partition_new (const PedDisk* disk, PedPartitionType type, - const PedFileSystemType* fs_type, PedSector start, - PedSector end) -{ - int supports_extended; - PedPartition* part; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->type->ops->partition_new != NULL); - - supports_extended = ped_disk_type_check_feature (disk->type, - PED_DISK_TYPE_EXTENDED); - - if (!supports_extended - && (type == PED_PARTITION_EXTENDED - || type == PED_PARTITION_LOGICAL)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s disk labels do not support extended " - "partitions."), - disk->type->name); - goto error; - } - - part = disk->type->ops->partition_new (disk, type, fs_type, start, end); - if (!part) - goto error; - - if (fs_type || part->type == PED_PARTITION_EXTENDED) { - if (!ped_partition_set_system (part, fs_type)) - goto error_destroy_part; - } - return part; - -error_destroy_part: - ped_partition_destroy (part); -error: - return NULL; -} - -/** - * Destroy a \link _PedPartition PedPartition \endlink object. - * - * \note Should not be called on a partition that is in a partition table. - * Use ped_disk_delete_partition() instead. - */ -void -ped_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->type->ops->partition_new != NULL); - - part->disk->type->ops->partition_destroy (part); -} - - -/** - * Return whether or not the partition is "active". - * - * A partition is active if \p part->type is neither \p PED_PARTITION_METADATA - * nor \p PED_PARTITION_FREE. - */ -int -ped_partition_is_active (const PedPartition* part) -{ - PED_ASSERT (part != NULL); - - return !(part->type & PED_PARTITION_FREESPACE - || part->type & PED_PARTITION_METADATA); -} - -/** - * Set the state (\c 1 or \c 0) of a flag on a partition. - * - * Flags are disk label specific, although they have a global - * "namespace": the flag PED_PARTITION_BOOT, for example, roughly means - * "this" partition is bootable". But this means different things on different - * disk labels (and may not be defined on some disk labels). For example, - * on MS-DOS disk labels, there can only be one boot partition, and this - * refers to the partition that will be booted from on startup. On PC98 - * disk labels, the user can choose from any bootable partition on startup. - * - * \note It is an error to call this on an unavailable flag -- use - * ped_partition_is_flag_available() to determine which flags are available - * for a given disk label. - * - * \throws PED_EXCEPTION_ERROR if the requested flag is not available for this - * label. - */ -int -ped_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - PedDiskOps* ops; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - ops = part->disk->type->ops; - PED_ASSERT (ops->partition_set_flag != NULL); - PED_ASSERT (ops->partition_is_flag_available != NULL); - - if (!ops->partition_is_flag_available (part, flag)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "The flag '%s' is not available for %s disk labels.", - ped_partition_flag_get_name (flag), - part->disk->type->name); - return 0; - } - - return ops->partition_set_flag (part, flag, state); -} - -/** - * Get the state (\c 1 or \c 0) of a flag on a partition. - * - * See ped_partition_set_flag() for conditions that must hold. - * - * \todo Where's the check for flag availability? - */ -int -ped_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->type->ops->partition_get_flag != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - return part->disk->type->ops->partition_get_flag (part, flag); -} - -/** - * Check whether a given flag is available on a partition. - * - * \return \c 1 if the flag is available. - */ -int -ped_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->type->ops->partition_is_flag_available != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - return part->disk->type->ops->partition_is_flag_available (part, flag); -} - -/** - * Sets the system type on the partition to \p fs_type. - * - * \note The file system may be opened, to get more information about the - * file system, e.g. to determine if it's FAT16 or FAT32. - * - * \return \c 0 on failure. - */ -int -ped_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - const PedDiskType* disk_type; - - PED_ASSERT (part != NULL); - PED_ASSERT (ped_partition_is_active (part)); - PED_ASSERT (part->disk != NULL); - disk_type = part->disk->type; - PED_ASSERT (disk_type != NULL); - PED_ASSERT (disk_type->ops != NULL); - PED_ASSERT (disk_type->ops->partition_set_system != NULL); - - return disk_type->ops->partition_set_system (part, fs_type); -} - -static int -_assert_partition_name_feature (const PedDiskType* disk_type) -{ - if (!ped_disk_type_check_feature ( - disk_type, PED_DISK_TYPE_PARTITION_NAME)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "%s disk labels do not support partition names.", - disk_type->name); - return 0; - } - return 1; -} - -static int -_assert_partition_type_id_feature (const PedDiskType* disk_type) -{ - if (!ped_disk_type_check_feature ( - disk_type, PED_DISK_TYPE_PARTITION_TYPE_ID)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "%s disk labels do not support partition type-ids.", - disk_type->name); - return 0; - } - return 1; -} - -static int -_assert_partition_type_uuid_feature (const PedDiskType* disk_type) -{ - if (!ped_disk_type_check_feature ( - disk_type, PED_DISK_TYPE_PARTITION_TYPE_UUID)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "%s disk labels do not support partition type-uuids.", - disk_type->name); - return 0; - } - return 1; -} - -static int -_assert_partition_uuid_feature (const PedDiskType* disk_type) -{ - if (!ped_disk_type_check_feature ( - disk_type, PED_DISK_TYPE_PARTITION_UUID)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "%s disk labels do not support partition uuids.", - disk_type->name); - return 0; - } - return 1; -} - -/** - * Sets the name of a partition. - * - * \note This will only work if the disk label supports it. - * You can use - * \code - * ped_disk_type_check_feature (part->disk->type, PED_DISK_TYPE_PARTITION_NAME); - * \endcode - * to check whether this feature is enabled for a label. - * - * \note \p name will not be modified by libparted. It can be freed - * by the caller immediately after ped_partition_set_name() is called. - * - * \return \c 1 on success, \c 0 otherwise. - */ -int -ped_partition_set_name (PedPartition* part, const char* name) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - PED_ASSERT (name != NULL); - - if (!_assert_partition_name_feature (part->disk->type)) - return 0; - - PED_ASSERT (part->disk->type->ops->partition_set_name != NULL); - part->disk->type->ops->partition_set_name (part, name); - return 1; -} - -/** - * Returns the name of a partition \p part. This will only work if the disk - * label supports it. - * - * \note The returned string should not be modified. It should - * not be referenced after the partition is destroyed. - */ -const char* -ped_partition_get_name (const PedPartition* part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - if (!_assert_partition_name_feature (part->disk->type)) - return NULL; - - PED_ASSERT (part->disk->type->ops->partition_get_name != NULL); - return part->disk->type->ops->partition_get_name (part); -} - -/** - * Set the type-id of the partition \p part. This will only work if the disk label - * supports it. - */ -int -ped_partition_set_type_id (PedPartition *part, uint8_t id) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - if (!_assert_partition_type_id_feature (part->disk->type)) - return 0; - - PED_ASSERT (part->disk->type->ops->partition_set_type_id != NULL); - return part->disk->type->ops->partition_set_type_id (part, id); -} - -/** - * Get the type-id of the partition \p part. This will only work if the disk label - * supports it. - */ -uint8_t -ped_partition_get_type_id (const PedPartition *part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - if (!_assert_partition_type_id_feature (part->disk->type)) - return 0; - - PED_ASSERT (part->disk->type->ops->partition_get_type_id != NULL); - return part->disk->type->ops->partition_get_type_id (part); -} - -/** - * Set the type-uuid of the partition \p part. This will only work if the disk label - * supports it. - */ -int -ped_partition_set_type_uuid (PedPartition *part, const uint8_t* uuid) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - if (!_assert_partition_type_uuid_feature (part->disk->type)) - return 0; - - PED_ASSERT (part->disk->type->ops->partition_set_type_uuid != NULL); - return part->disk->type->ops->partition_set_type_uuid (part, uuid); -} - -/** - * Get the type-uuid of the partition \p part. This will only work if the disk label - * supports it. - */ -uint8_t* -ped_partition_get_type_uuid (const PedPartition *part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - if (!_assert_partition_type_uuid_feature (part->disk->type)) - return NULL; - - PED_ASSERT (part->disk->type->ops->partition_get_type_uuid != NULL); - return part->disk->type->ops->partition_get_type_uuid (part); -} - -/** - * Get the uuid of the partition \p part. This will only work if the disk label - * supports it. - */ -uint8_t* -ped_partition_get_uuid (const PedPartition *part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (ped_partition_is_active (part)); - - if (!_assert_partition_uuid_feature (part->disk->type)) - return NULL; - - PED_ASSERT (part->disk->type->ops->partition_get_uuid != NULL); - return part->disk->type->ops->partition_get_uuid (part); -} - -/** @} */ - -/** - * \addtogroup PedDisk - * - * @{ - */ - -PedPartition* -ped_disk_extended_partition (const PedDisk* disk) -{ - PedPartition* walk; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; walk = walk->next) { - if (walk->type == PED_PARTITION_EXTENDED) - break; - } - return walk; -} - -/** - * Return the next partition after \p part on \p disk. If \p part is \c NULL, - * return the first partition. If \p part is the last partition, returns - * \c NULL. If \p part is an extended partition, returns the first logical - * partition. If this is called repeatedly passing the return value as \p part, - * a depth-first traversal is executed. - * - * \return The next partition, \c NULL if no more partitions left. - */ -PedPartition* -ped_disk_next_partition (const PedDisk* disk, const PedPartition* part) -{ - PED_ASSERT (disk != NULL); - - if (!part) - return disk->part_list; - if (part->type == PED_PARTITION_EXTENDED) - return part->part_list ? part->part_list : part->next; - if (part->next) - return part->next; - if (part->type & PED_PARTITION_LOGICAL) { - if (!ped_disk_extended_partition (disk)) - return NULL; - return ped_disk_extended_partition (disk)->next; - } - return NULL; -} - -/** @} */ - -#ifdef DEBUG -static int _GL_ATTRIBUTE_PURE -_disk_check_sanity (PedDisk* disk) -{ - PedPartition* walk; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; walk = walk->next) { - PED_ASSERT (!(walk->type & PED_PARTITION_LOGICAL)); - PED_ASSERT (!walk->prev || walk->prev->next == walk); - } - - if (!ped_disk_extended_partition (disk)) - return 1; - - for (walk = ped_disk_extended_partition (disk)->part_list; walk; - walk = walk->next) { - PED_ASSERT (walk->type & PED_PARTITION_LOGICAL); - if (walk->prev) - PED_ASSERT (walk->prev->next == walk); - } - return 1; -} -#endif - -/** - * Returns the partition numbered \p num. - * - * \return \c NULL if the specified partition does not exist. - */ -PedPartition* -ped_disk_get_partition (const PedDisk* disk, int num) -{ - PedPartition* walk; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - if (walk->num == num && !(walk->type & PED_PARTITION_FREESPACE)) - return walk; - } - - return NULL; -} - -/** - * Returns the partition that contains sect. If sect lies within a logical - * partition, then the logical partition is returned (not the extended - * partition). - */ -PedPartition* -ped_disk_get_partition_by_sector (const PedDisk* disk, PedSector sect) -{ - PedPartition* walk; - - PED_ASSERT (disk != NULL); - - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - if (ped_geometry_test_sector_inside (&walk->geom, sect) - && walk->type != PED_PARTITION_EXTENDED) - return walk; - } - - /* should never get here, unless sect is outside of disk's useable - * part, or we're in "update mode", and the free space place-holders - * have been removed with _disk_remove_freespace() - */ - return NULL; -} - -/** - * Return the maximum representable length (in sectors) of a - * partition on disk \disk. - */ -PedSector -ped_disk_max_partition_length (const PedDisk* disk) -{ - return disk->type->ops->max_length (); -} - -/** - * Return the maximum representable start sector of a - * partition on disk \disk. - */ -PedSector -ped_disk_max_partition_start_sector (const PedDisk* disk) -{ - return disk->type->ops->max_start_sector (); -} - -/* I'm beginning to agree with Sedgewick :-/ */ -static int -_disk_raw_insert_before (PedDisk* disk, PedPartition* loc, PedPartition* part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (loc != NULL); - PED_ASSERT (part != NULL); - - part->prev = loc->prev; - part->next = loc; - if (part->prev) { - part->prev->next = part; - } else { - if (loc->type & PED_PARTITION_LOGICAL) - ped_disk_extended_partition (disk)->part_list = part; - else - disk->part_list = part; - } - loc->prev = part; - - return 1; -} - -static int -_disk_raw_insert_after (PedDisk* disk, PedPartition* loc, PedPartition* part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (loc != NULL); - PED_ASSERT (part != NULL); - - part->prev = loc; - part->next = loc->next; - if (loc->next) - loc->next->prev = part; - loc->next = part; - - return 1; -} - -static int -_disk_raw_remove (PedDisk* disk, PedPartition* part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (part != NULL); - - if (part->prev) { - part->prev->next = part->next; - if (part->next) - part->next->prev = part->prev; - } else { - if (part->type & PED_PARTITION_LOGICAL) { - ped_disk_extended_partition (disk)->part_list - = part->next; - } else { - disk->part_list = part->next; - } - if (part->next) - part->next->prev = NULL; - } - - return 1; -} - -/* - *UPDATE MODE ONLY - */ -static int -_disk_raw_add (PedDisk* disk, PedPartition* part) -{ - PedPartition* walk; - PedPartition* last; - PedPartition* ext_part; - - PED_ASSERT (disk->update_mode); - - ext_part = ped_disk_extended_partition (disk); - - last = NULL; - walk = (part->type & PED_PARTITION_LOGICAL) ? - ext_part->part_list : disk->part_list; - - for (; walk; last = walk, walk = walk->next) { - if (walk->geom.start > part->geom.end) - break; - } - - if (walk) { - return _disk_raw_insert_before (disk, walk, part); - } else { - if (last) { - return _disk_raw_insert_after (disk, last, part); - } else { - if (part->type & PED_PARTITION_LOGICAL) - ext_part->part_list = part; - else - disk->part_list = part; - } - } - - return 1; -} - -static PedConstraint* -_partition_get_overlap_constraint (PedPartition* part, PedGeometry* geom) -{ - PedSector min_start; - PedSector max_end; - PedPartition* walk; - PedGeometry free_space; - - PED_ASSERT (part->disk->update_mode); - PED_ASSERT (part->geom.dev == geom->dev); - - if (part->type & PED_PARTITION_LOGICAL) { - PedPartition* ext_part; - - ext_part = ped_disk_extended_partition (part->disk); - PED_ASSERT (ext_part != NULL); - - min_start = ext_part->geom.start; - max_end = ext_part->geom.end; - walk = ext_part->part_list; - } else { - min_start = 0; - max_end = LLONG_MAX - 1; - walk = part->disk->part_list; - } - - while (walk != NULL - && (walk->geom.start < geom->start - || min_start >= walk->geom.start)) { - if (walk != part) - min_start = walk->geom.end + 1; - walk = walk->next; - } - - if (walk == part) - walk = walk->next; - - if (walk) - max_end = walk->geom.start - 1; - - if (min_start > max_end) - return NULL; - - ped_geometry_init (&free_space, part->disk->dev, - min_start, max_end - min_start + 1); - return ped_constraint_new_from_max (&free_space); -} - -static int -_partition_check_basic_sanity (PedDisk* disk, PedPartition* part) -{ - PedPartition* ext_part = ped_disk_extended_partition (disk); - - PED_ASSERT (part->disk == disk); - - PED_ASSERT (part->geom.start >= 0); - PED_ASSERT (part->geom.start <= part->geom.end); - - if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED) - && (part->type == PED_PARTITION_EXTENDED - || part->type == PED_PARTITION_LOGICAL)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s disk labels don't support logical or extended " - "partitions."), - disk->type->name); - return 0; - } - - if (ped_partition_is_active (part) - && ! (part->type & PED_PARTITION_LOGICAL)) { - if (ped_disk_get_primary_partition_count (disk) + 1 - > ped_disk_get_max_primary_partition_count (disk)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Too many primary partitions.")); - return 0; - } - } - - if ((part->type & PED_PARTITION_LOGICAL) && !ext_part) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't add a logical partition to %s, because " - "there is no extended partition."), - disk->dev->path); - return 0; - } - - return 1; -} - -static int -_check_extended_partition (PedDisk* disk, PedPartition* part) -{ - PedPartition* walk; - PedPartition* ext_part; - - PED_ASSERT (disk != NULL); - ext_part = ped_disk_extended_partition (disk); - if (!ext_part) ext_part = part; - PED_ASSERT (ext_part != NULL); - - if (part != ext_part) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't have more than one extended partition on %s."), - disk->dev->path); - return 0; - } - - for (walk = ext_part->part_list; walk; walk = walk->next) { - if (!ped_geometry_test_inside (&ext_part->geom, &walk->geom)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't have logical partitions outside of " - "the extended partition.")); - return 0; - } - } - return 1; -} - -static int -_check_partition (PedDisk* disk, PedPartition* part) -{ - PedPartition* ext_part = ped_disk_extended_partition (disk); - - PED_ASSERT (part->geom.start <= part->geom.end); - - if (part->type == PED_PARTITION_EXTENDED) { - if (!_check_extended_partition (disk, part)) - return 0; - } - - if (part->type & PED_PARTITION_LOGICAL - && !ped_geometry_test_inside (&ext_part->geom, &part->geom)) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Can't have a logical partition outside of the " - "extended partition on %s."), - disk->dev->path) != PED_EXCEPTION_IGNORE) - return 0; - } - - if (! (part->type & PED_PARTITION_LOGICAL) - && ext_part && ext_part != part - && ped_geometry_test_inside (&ext_part->geom, &part->geom)) { - if (ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL, - _("Can't have a primary partition inside an extended " - "partition.")) != PED_EXCEPTION_IGNORE) - return 0; - } - - if (part->geom.end >= disk->dev->length) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Can't have a partition outside the disk!")) - != PED_EXCEPTION_IGNORE ) - return 0; - } - - if (!(part->type & PED_PARTITION_METADATA)) - if (!disk->type->ops->partition_check(part)) - return 0; - - return 1; -} - -/** - * Adds PedPartition \p part to PedDisk \p disk. - * - * \warning The partition's geometry may be changed, subject to \p constraint. - * You could set \p constraint to ped_constraint_exact(&part->geom), - * but many partition table schemes have special requirements on the start - * and end of partitions. Therefore, having an overly strict constraint - * will probably mean that this function will fail (in which - * case \p part will be left unmodified) - * \p part is assigned a number (\p part->num) in this process. - * - * \return \c 0 on failure. - */ -int -ped_disk_add_partition (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint) -{ - PedConstraint* overlap_constraint = NULL; - PedConstraint* constraints = NULL; - - PED_ASSERT (disk != NULL); - PED_ASSERT (part != NULL); - - if (!_partition_check_basic_sanity (disk, part)) - return 0; - - if (!_disk_push_update_mode (disk)) - return 0; - - if (ped_partition_is_active (part)) { - overlap_constraint - = _partition_get_overlap_constraint (part, &part->geom); - constraints = ped_constraint_intersect (overlap_constraint, - constraint); - - if (!constraints && constraint) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Can't have overlapping partitions.")) != PED_EXCEPTION_IGNORE) - goto error; - } else constraint = constraints; - if (!_partition_enumerate (part)) - goto error; - if (!_partition_align (part, constraint)) - goto error; - } - /* FIXME: when _check_partition fails, we end up leaking PART - at least for DVH partition tables. Simply calling - ped_partition_destroy(part) here fixes it for DVH, but - causes trouble for other partition types. Similarly, - reordering these two checks, putting _check_partition after - _disk_raw_add induces an infinite loop. */ - if (!_check_partition (disk, part)) - goto error; - if (!_disk_raw_add (disk, part)) - goto error; - - ped_constraint_destroy (overlap_constraint); - ped_constraint_destroy (constraints); - if (!_disk_pop_update_mode (disk)) - return 0; -#ifdef DEBUG - if (!_disk_check_sanity (disk)) - return 0; -#endif - return 1; - -error: - ped_constraint_destroy (overlap_constraint); - ped_constraint_destroy (constraints); - _disk_pop_update_mode (disk); - return 0; -} - -/** - * Removes PedPartition \p part from PedDisk \p disk. - * - * If \p part is an extended partition, it must not contain any logical - * partitions. \p part is *NOT* destroyed. The caller must call - * ped_partition_destroy(), or use ped_disk_delete_partition() instead. - * - * \return \c 0 on error. - */ -int -ped_disk_remove_partition (PedDisk* disk, PedPartition* part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (part != NULL); - - if (!_disk_push_update_mode (disk)) - return 0; - PED_ASSERT (part->part_list == NULL); - _disk_raw_remove (disk, part); - if (!_disk_pop_update_mode (disk)) - return 0; - ped_disk_enumerate_partitions (disk); - return 1; -} - -static int -ped_disk_delete_all_logical (PedDisk* disk); - -/** - * Removes \p part from \p disk, and destroys \p part. - * - * \return \c 0 on failure. - */ -int -ped_disk_delete_partition (PedDisk* disk, PedPartition* part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (part != NULL); - - if (!_disk_push_update_mode (disk)) - return 0; - if (part->type == PED_PARTITION_EXTENDED) - ped_disk_delete_all_logical (disk); - ped_disk_remove_partition (disk, part); - ped_partition_destroy (part); - if (!_disk_pop_update_mode (disk)) - return 0; - - return 1; -} - -static int -ped_disk_delete_all_logical (PedDisk* disk) -{ - PedPartition* walk; - PedPartition* next; - PedPartition* ext_part; - - PED_ASSERT (disk != NULL); - ext_part = ped_disk_extended_partition (disk); - PED_ASSERT (ext_part != NULL); - - for (walk = ext_part->part_list; walk; walk = next) { - next = walk->next; - - if (!ped_disk_delete_partition (disk, walk)) - return 0; - } - return 1; -} - -/** - * Removes and destroys all partitions on \p disk. - * - * \return \c 0 on failure. - */ -int -ped_disk_delete_all (PedDisk* disk) -{ - PedPartition* walk; - PedPartition* next; - - PED_ASSERT (disk != NULL); - - if (!_disk_push_update_mode (disk)) - return 0; - - for (walk = disk->part_list; walk; walk = next) { - next = walk->next; - - if (!ped_disk_delete_partition (disk, walk)) { - _disk_pop_update_mode(disk); - return 0; - } - } - - if (!_disk_pop_update_mode (disk)) - return 0; - - return 1; -} - -/** - * Sets the geometry of \p part (i.e. change a partitions location). This can - * fail for many reasons, e.g. can't overlap with other partitions. If it - * does fail, \p part will remain unchanged. Returns \c 0 on failure. \p part's - * geometry may be set to something different from \p start and \p end subject - * to \p constraint. - * - * \warning The constraint warning from ped_disk_add_partition() applies. - * - * \note this function does not modify the contents of the partition. You need - * to call ped_file_system_resize() separately. - */ -int -ped_disk_set_partition_geom (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint, - PedSector start, PedSector end) -{ - PedConstraint* overlap_constraint = NULL; - PedConstraint* constraints = NULL; - PedGeometry old_geom; - PedGeometry new_geom; - - PED_ASSERT (disk != NULL); - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk == disk); - - old_geom = part->geom; - if (!ped_geometry_init (&new_geom, part->geom.dev, start, end - start + 1)) - return 0; - - if (!_disk_push_update_mode (disk)) - return 0; - - overlap_constraint - = _partition_get_overlap_constraint (part, &new_geom); - constraints = ped_constraint_intersect (overlap_constraint, constraint); - if (!constraints && constraint) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't have overlapping partitions.")); - goto error_pop_update_mode; - } - - part->geom = new_geom; - if (!_partition_align (part, constraints)) - goto error_pop_update_mode; - if (!_check_partition (disk, part)) - goto error_pop_update_mode; - - /* remove and add, to ensure the ordering gets updated if necessary */ - _disk_raw_remove (disk, part); - _disk_raw_add (disk, part); - - if (!_disk_pop_update_mode (disk)) - goto error; - - ped_constraint_destroy (overlap_constraint); - ped_constraint_destroy (constraints); - return 1; - -error_pop_update_mode: - _disk_pop_update_mode (disk); -error: - ped_constraint_destroy (overlap_constraint); - ped_constraint_destroy (constraints); - part->geom = old_geom; - return 0; -} - -/** - * Grow PedPartition \p part geometry to the maximum possible subject to - * \p constraint. The new geometry will be a superset of the old geometry. - * - * \return 0 on failure - */ -int -ped_disk_maximize_partition (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint) -{ - PedGeometry old_geom; - PedSector global_min_start; - PedSector global_max_end; - PedSector new_start; - PedSector new_end; - PedPartition* ext_part = ped_disk_extended_partition (disk); - PedConstraint* constraint_any; - - PED_ASSERT (disk != NULL); - PED_ASSERT (part != NULL); - - if (part->type & PED_PARTITION_LOGICAL) { - PED_ASSERT (ext_part != NULL); - global_min_start = ext_part->geom.start; - global_max_end = ext_part->geom.end; - } else { - global_min_start = 0; - global_max_end = disk->dev->length - 1; - } - - old_geom = part->geom; - - if (!_disk_push_update_mode (disk)) - return 0; - - if (part->prev) - new_start = part->prev->geom.end + 1; - else - new_start = global_min_start; - - if (part->next) - new_end = part->next->geom.start - 1; - else - new_end = global_max_end; - - if (!ped_disk_set_partition_geom (disk, part, constraint, new_start, - new_end)) - goto error; - - if (!_disk_pop_update_mode (disk)) - return 0; - return 1; - -error: - constraint_any = ped_constraint_any (disk->dev); - ped_disk_set_partition_geom (disk, part, constraint_any, - old_geom.start, old_geom.end); - ped_constraint_destroy (constraint_any); - _disk_pop_update_mode (disk); - return 0; -} - -/** - * Get the maximum geometry \p part can be grown to, subject to - * \p constraint. - * - * \return \c NULL on failure. - */ -PedGeometry* -ped_disk_get_max_partition_geometry (PedDisk* disk, PedPartition* part, - const PedConstraint* constraint) -{ - PedGeometry old_geom; - PedGeometry* max_geom; - PedConstraint* constraint_exact; - - PED_ASSERT(disk != NULL); - PED_ASSERT(part != NULL); - PED_ASSERT(ped_partition_is_active (part)); - - old_geom = part->geom; - if (!ped_disk_maximize_partition (disk, part, constraint)) - return NULL; - max_geom = ped_geometry_duplicate (&part->geom); - - constraint_exact = ped_constraint_exact (&old_geom); - ped_disk_set_partition_geom (disk, part, constraint_exact, - old_geom.start, old_geom.end); - ped_constraint_destroy (constraint_exact); - - /* this assertion should never fail, because the old - * geometry was valid - */ - PED_ASSERT (ped_geometry_test_equal (&part->geom, &old_geom)); - - return max_geom; -} - -/** - * Reduce the size of the extended partition to a minimum while still wrapping - * its logical partitions. If there are no logical partitions, remove the - * extended partition. - * - * \return 0 on failure. - */ -int -ped_disk_minimize_extended_partition (PedDisk* disk) -{ - PedPartition* first_logical; - PedPartition* last_logical; - PedPartition* walk; - PedPartition* ext_part; - PedConstraint* constraint; - int status; - - PED_ASSERT (disk != NULL); - - ext_part = ped_disk_extended_partition (disk); - if (!ext_part) - return 1; - - if (!_disk_push_update_mode (disk)) - return 0; - - first_logical = ext_part->part_list; - if (!first_logical) { - if (!_disk_pop_update_mode (disk)) - return 0; - return ped_disk_delete_partition (disk, ext_part); - } - - for (walk = first_logical; walk->next; walk = walk->next); - last_logical = walk; - - constraint = ped_constraint_any (disk->dev); - status = ped_disk_set_partition_geom (disk, ext_part, constraint, - first_logical->geom.start, - last_logical->geom.end); - ped_constraint_destroy (constraint); - - if (!_disk_pop_update_mode (disk)) - return 0; - return status; -} - -/** - * @} - */ - -/** - * \addtogroup PedPartition - * - * @{ - */ - -/** - * Returns a name that seems mildly appropriate for a partition type \p type. - * - * Eg, if you pass (PED_PARTITION_LOGICAL & PED_PARTITION_FREESPACE), it - * will return "free". This isn't to be taken too seriously - it's just - * useful for user interfaces, so you can show the user something ;-) - * - * \note The returned string will be in English. However, - * translations are provided, so the caller can call - * dgettext("parted", RESULT) on the result. - * - */ -const char* -ped_partition_type_get_name (PedPartitionType type) -{ - if (type & PED_PARTITION_METADATA) - return N_("metadata"); - else if (type & PED_PARTITION_FREESPACE) - return N_("free"); - else if (type & PED_PARTITION_EXTENDED) - return N_("extended"); - else if (type & PED_PARTITION_LOGICAL) - return N_("logical"); - else - return N_("primary"); -} - - -/** - * Returns a name for a \p flag, e.g. PED_PARTITION_BOOT will return "boot". - * - * \note The returned string will be in English. However, - * translations are provided, so the caller can call - * dgettext("parted", RESULT) on the result. - */ -const char* -ped_partition_flag_get_name (PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_BOOT: - return N_("boot"); - case PED_PARTITION_BIOS_GRUB: - return N_("bios_grub"); - case PED_PARTITION_ROOT: - return N_("root"); - case PED_PARTITION_SWAP: - return N_("swap"); - case PED_PARTITION_HIDDEN: - return N_("hidden"); - case PED_PARTITION_RAID: - return N_("raid"); - case PED_PARTITION_LVM: - return N_("lvm"); - case PED_PARTITION_LBA: - return N_("lba"); - case PED_PARTITION_HPSERVICE: - return N_("hp-service"); - case PED_PARTITION_PALO: - return N_("palo"); - case PED_PARTITION_PREP: - return N_("prep"); - case PED_PARTITION_MSFT_RESERVED: - return N_("msftres"); - case PED_PARTITION_MSFT_DATA: - return N_("msftdata"); - case PED_PARTITION_APPLE_TV_RECOVERY: - return N_("atvrecv"); - case PED_PARTITION_DIAG: - return N_("diag"); - case PED_PARTITION_LEGACY_BOOT: - return N_("legacy_boot"); - case PED_PARTITION_IRST: - return N_("irst"); - case PED_PARTITION_ESP: - return N_("esp"); - case PED_PARTITION_CHROMEOS_KERNEL: - return N_("chromeos_kernel"); - case PED_PARTITION_BLS_BOOT: - return N_("bls_boot"); - case PED_PARTITION_LINUX_HOME: - return N_("linux-home"); - case PED_PARTITION_NO_AUTOMOUNT: - return N_("no_automount"); - - default: - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Unknown partition flag, %d."), - flag); - return NULL; - } -} - -/** - * Iterates through all flags. - * - * ped_partition_flag_next(0) returns the first flag - * - * \return the next flag, or 0 if there are no more flags - */ -PedPartitionFlag -ped_partition_flag_next (PedPartitionFlag flag) -{ - return (flag + 1) % (PED_PARTITION_LAST_FLAG + 1); -} - -/** - * Returns the flag associated with \p name. - * - * \p name can be the English - * string, or the translation for the native language. - */ -PedPartitionFlag -ped_partition_flag_get_by_name (const char* name) -{ - PedPartitionFlag flag; - const char* flag_name; - - for (flag = ped_partition_flag_next (0); flag; - flag = ped_partition_flag_next (flag)) { - flag_name = ped_partition_flag_get_name (flag); - if (flag_name && (strcasecmp (name, flag_name) == 0 - || strcasecmp (name, _(flag_name)) == 0)) - return flag; - } - - return 0; -} - -static void -ped_partition_print (const PedPartition* part) -{ - PED_ASSERT (part != NULL); - - printf (" %-10s %02d (%d->%d)\n", - ped_partition_type_get_name (part->type), - part->num, - (int) part->geom.start, (int) part->geom.end); -} - -/** @} */ - -/** - * \addtogroup PedDisk - * - * @{ - */ - -/** - * Prints a summary of disk's partitions. Useful for debugging. - */ -void -ped_disk_print (const PedDisk* disk) -{ - PedPartition* part; - - PED_ASSERT (disk != NULL); - - for (part = disk->part_list; part; - part = ped_disk_next_partition (disk, part)) - ped_partition_print (part); -} - -/** @} */ diff --git a/jni/parted/libparted/exception.c b/jni/parted/libparted/exception.c deleted file mode 100755 index 1d95853..0000000 --- a/jni/parted/libparted/exception.c +++ /dev/null @@ -1,313 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** \file exception.c */ - -/** - * \addtogroup PedException - * - * \brief Exception handling. - * - * There are a few types of exceptions: PED_EXCEPTION_INFORMATION, - * PED_EXCEPTION_WARNING, PED_EXCEPTION_ERROR, PED_EXCEPTION_FATAL, - * PED_EXCEPTION_BUG. - * - * They are "thrown" when one of the above events occur while executing - * a libparted function. For example, if ped_device_open() fails - * because the device doesn't exist, an exception will be thrown. - * Exceptions contain text describing what the event was. It will give - * at least one option for resolving the exception: PED_EXCEPTION_FIX, - * PED_EXCEPTION_YES, PED_EXCEPTION_NO, PED_EXCEPTION_OK, PED_EXCEPTION_RETRY, - * PED_EXCEPTION_IGNORE, PED_EXCEPTION_CANCEL. After an exception is thrown, - * there are two things that can happen: - * - * -# an exception handler is called, which selects how the exception should be - * resolved (usually by asking the user). Also note: an exception handler may - * choose to return PED_EXCEPTION_UNHANDLED. In this case, a default action - * will be taken by libparted (respectively the code that threw the - * exception). In general, a default action will be "safe". - * -# the exception is not handled, because the caller of the function wants to - * handle everything itself. In this case, PED_EXCEPTION_UNHANDLED is - * returned. - * - * @{ - */ - -#include - -#include -#include -#include - -#define N_(String) String -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include -#include - -int ped_exception = 0; - -static PedExceptionOption default_handler (PedException* ex); - -static PedExceptionHandler* ex_handler = default_handler; -static PedException* ex = NULL; -static int ex_fetch_count = 0; - -static const char *const type_strings [] = { - N_("Information"), - N_("Warning"), - N_("Error"), - N_("Fatal"), - N_("Bug"), - N_("No Implementation") -}; - -static const char *const option_strings [] = { - N_("Fix"), - N_("Yes"), - N_("No"), - N_("OK"), - N_("Retry"), - N_("Ignore"), - N_("Cancel") -}; - -/** - * Return a string describing an exception type. - */ -char* -ped_exception_get_type_string (PedExceptionType ex_type) -{ - return (char *) type_strings [ex_type - 1]; -} - -/* FIXME: move this out to the prospective math.c */ -/* FIXME: this can probably be done more efficiently */ -static int _GL_ATTRIBUTE_PURE -ped_log2 (int n) -{ - int x; - - PED_ASSERT (n > 0); - - for (x=0; 1 << x <= n; x++); - - return x - 1; -} - -/** - * Return a string describing an exception option. - */ -char* -ped_exception_get_option_string (PedExceptionOption ex_opt) -{ - return (char *) option_strings [ped_log2 (ex_opt)]; -} - -static PedExceptionOption -default_handler (PedException* e) -{ - if (e->type == PED_EXCEPTION_BUG) - fprintf (stderr, - _("A bug has been detected in GNU Parted. " - "Refer to the web site of parted " - "http://www.gnu.org/software/parted/parted.html " - "for more information of what could be useful " - "for bug submitting! " - "Please email a bug report to " - "%s containing at least the " - "version (%s) and the following message: "), - PACKAGE_BUGREPORT, VERSION); - else - fprintf (stderr, "%s: ", - ped_exception_get_type_string (e->type)); - fprintf (stderr, "%s\n", e->message); - - switch (e->options) { - case PED_EXCEPTION_OK: - case PED_EXCEPTION_CANCEL: - case PED_EXCEPTION_IGNORE: - return e->options; - - default: - return PED_EXCEPTION_UNHANDLED; - } -} - -/** - * Set the exception handler. - * - * The exception handler should return ONE of the options set in ex->options, - * indicating the way the event should be resolved. - */ -void -ped_exception_set_handler (PedExceptionHandler* handler) -{ - if (handler) - ex_handler = handler; - else - ex_handler = default_handler; -} - -/** - * Get the current exception handler. - */ -PedExceptionHandler * -ped_exception_get_handler (void) -{ - if (ex_handler) - return ex_handler; - return default_handler; -} - -/** - * Assert that the current exception has been resolved. - */ -void -ped_exception_catch () -{ - if (ped_exception) { - ped_exception = 0; - free (ex->message); - free (ex); - ex = NULL; - } -} - -static PedExceptionOption -do_throw () -{ - PedExceptionOption ex_opt; - - ped_exception = 1; - - if (ex_fetch_count) { - return PED_EXCEPTION_UNHANDLED; - } else { - ex_opt = ex_handler (ex); - ped_exception_catch (); - return ex_opt; - } -} - -/** - * Throw an exception. - * - * You can also use this in a program using libparted. - * "message" is a printf-like format string, so you can do - * - * \code - * ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_RETRY_CANCEL, - * "Can't open %s", file_name); - * \endcode - * - * Returns the option selected to resolve the exception. If the exception was - * unhandled, PED_EXCEPTION_UNHANDLED is returned. - */ -PedExceptionOption -ped_exception_throw (PedExceptionType ex_type, - PedExceptionOption ex_opts, const char* message, ...) -{ - va_list arg_list; - int result; - static int size = 1000; - - if (ex) - ped_exception_catch (); - - ex = (PedException*) malloc (sizeof (PedException)); - if (!ex) - goto no_memory; - - ex->type = ex_type; - ex->options = ex_opts; - - while (message) { - ex->message = (char*) malloc (size * sizeof (char)); - if (!ex->message) - goto no_memory; - - va_start (arg_list, message); - result = vsnprintf (ex->message, size, message, arg_list); - va_end (arg_list); - - if (result > -1 && result < size) - break; - - size += 10; - free (ex->message); - } - - return do_throw (); - -no_memory: - fputs ("Out of memory in exception handler!\n", stderr); - - va_start (arg_list, message); - vfprintf (stderr, message, arg_list); - va_end (arg_list); - - return PED_EXCEPTION_UNHANDLED; -} - -/** - * Rethrow an unhandled exception. - * This means repeating the last ped_exception_throw() statement. - */ -PedExceptionOption -ped_exception_rethrow () -{ - return do_throw (); -} - -/** - * Indicates that exceptions should not go to the exception handler, but - * passed up to the calling function(s). All calls to - * ped_exception_throw() will return PED_EXCEPTION_UNHANDLED. - */ -void -ped_exception_fetch_all () -{ - ex_fetch_count++; -} - -/** - * Indicates that the calling function does not want to accept any - * responsibility for exceptions any more. - * - * \note a caller of that function may still want responsibility, so - * ped_exception_throw() may not invoke the exception handler. - * - * \warning every call to this function must have a preceding - * ped_exception_fetch_all(). - */ -void -ped_exception_leave_all () -{ - PED_ASSERT (ex_fetch_count > 0); - ex_fetch_count--; -} - -/** @} */ diff --git a/jni/parted/libparted/filesys.c b/jni/parted/libparted/filesys.c deleted file mode 100755 index f67a4e8..0000000 --- a/jni/parted/libparted/filesys.c +++ /dev/null @@ -1,295 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** \file filesys.c */ - -/** - * \addtogroup PedFileSystem - * - * \note File systems exist on a PedGeometry - NOT a PedPartition. - * - * @{ - */ - -#include - -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#define BUFFER_SIZE 4096 /* in sectors */ - -static PedFileSystemType* fs_types = NULL; -static PedFileSystemAlias* fs_aliases = NULL; - -void -ped_file_system_type_register (PedFileSystemType* fs_type) -{ - PED_ASSERT (fs_type != NULL); - PED_ASSERT (fs_type->ops != NULL); - PED_ASSERT (fs_type->name != NULL); - - fs_type->next = fs_types; - fs_types = fs_type; -} - -void -ped_file_system_type_unregister (PedFileSystemType* fs_type) -{ - PedFileSystemType* walk; - PedFileSystemType* last = NULL; - - PED_ASSERT (fs_types != NULL); - PED_ASSERT (fs_type != NULL); - - for (walk = fs_types; walk && walk != fs_type; - last = walk, walk = walk->next); - - PED_ASSERT (walk != NULL); - if (last) - ((struct _PedFileSystemType*) last)->next = fs_type->next; - else - fs_types = fs_type->next; -} - -void -ped_file_system_alias_register (PedFileSystemType* fs_type, const char* alias, - int deprecated) -{ - PedFileSystemAlias* fs_alias; - - PED_ASSERT (fs_type != NULL); - PED_ASSERT (alias != NULL); - - fs_alias = ped_malloc (sizeof *fs_alias); - if (!fs_alias) - return; - - fs_alias->next = fs_aliases; - fs_alias->fs_type = fs_type; - fs_alias->alias = alias; - fs_alias->deprecated = deprecated; - fs_aliases = fs_alias; -} - -void -ped_file_system_alias_unregister (PedFileSystemType* fs_type, - const char* alias) -{ - PedFileSystemAlias* walk; - PedFileSystemAlias* last = NULL; - - PED_ASSERT (fs_aliases != NULL); - PED_ASSERT (fs_type != NULL); - PED_ASSERT (alias != NULL); - - for (walk = fs_aliases; walk; last = walk, walk = walk->next) { - if (walk->fs_type == fs_type && !strcmp (walk->alias, alias)) - break; - } - - PED_ASSERT (walk != NULL); - if (last) - last->next = walk->next; - else - fs_aliases = walk->next; - free (walk); -} - -/** - * Get a PedFileSystemType by its @p name. - * - * @return @c NULL if none found. - */ -PedFileSystemType* -ped_file_system_type_get (const char* name) -{ - PedFileSystemType* walk; - PedFileSystemAlias* alias_walk; - - PED_ASSERT (name != NULL); - - for (walk = fs_types; walk != NULL; walk = walk->next) { - if (!strcasecmp (walk->name, name)) - break; - } - if (walk != NULL) - return walk; - - for (alias_walk = fs_aliases; alias_walk != NULL; - alias_walk = alias_walk->next) { - if (!strcasecmp (alias_walk->alias, name)) - break; - } - if (alias_walk != NULL) { - if (alias_walk->deprecated) - PED_DEBUG (0, "File system alias %s is deprecated", - name); - return alias_walk->fs_type; - } - - return NULL; -} - -/** - * Get the next PedFileSystemType after @p fs_type. - * - * @return @c NULL if @p fs_type is the last item in the list. - */ -PedFileSystemType* -ped_file_system_type_get_next (const PedFileSystemType* fs_type) -{ - if (fs_type) - return fs_type->next; - else - return fs_types; -} - -/** - * Get the next PedFileSystemAlias after @p fs_alias. - * - * @return @c NULL if @p fs_alias is the last item in the list. - */ -PedFileSystemAlias* -ped_file_system_alias_get_next (const PedFileSystemAlias* fs_alias) -{ - if (fs_alias) - return fs_alias->next; - else - return fs_aliases; -} - -/** - * Attempt to find a file system and return the region it occupies. - * - * @param fs_type The file system type to probe for. - * @param geom The region to be searched. - * - * @return @p NULL if @p fs_type file system wasn't detected - */ -PedGeometry* -ped_file_system_probe_specific ( - const PedFileSystemType* fs_type, PedGeometry* geom) -{ - PedGeometry* result; - - PED_ASSERT (fs_type != NULL); - PED_ASSERT (fs_type->ops->probe != NULL); - PED_ASSERT (geom != NULL); - - if (!ped_device_open (geom->dev)) - return 0; - result = fs_type->ops->probe (geom); - ped_device_close (geom->dev); - return result; -} - -static int -_geometry_error (const PedGeometry* a, const PedGeometry* b) -{ - PedSector start_delta = a->start - b->start; - PedSector end_delta = a->end - b->end; - - return llabs (start_delta) + llabs (end_delta); -} - -static PedFileSystemType* -_best_match (const PedGeometry* geom, PedFileSystemType* detected [], - const int detected_error [], int detected_count) -{ - int best_match = 0; - int i; - PedSector min_error; - - min_error = PED_MAX (4096, geom->length / 100); - - for (i = 1; i < detected_count; i++) { - if (detected_error [i] < detected_error [best_match]) - best_match = i; - } - - /* make sure the best match is significantly better than all the - * other matches - */ - for (i = 0; i < detected_count; i++) { - if (i == best_match) - continue; - - if (abs (detected_error [best_match] - detected_error [i]) - < min_error) - return NULL; - } - - return detected [best_match]; -} - - -/** - * Attempt to detect a file system in region \p geom. - * This function tries to be clever at dealing with ambiguous - * situations, such as when one file system was not completely erased before a - * new file system was created on top of it. - * - * \return a new PedFileSystem on success, \c NULL on failure - */ -PedFileSystemType* -ped_file_system_probe (PedGeometry* geom) -{ - PedFileSystemType* detected[32]; - int detected_error[32]; - int detected_count = 0; - PedFileSystemType* walk = NULL; - - PED_ASSERT (geom != NULL); - - if (!ped_device_open (geom->dev)) - return NULL; - - ped_exception_fetch_all (); - while ( (walk = ped_file_system_type_get_next (walk)) ) { - PedGeometry* probed; - - probed = ped_file_system_probe_specific (walk, geom); - if (probed) { - detected [detected_count] = walk; - detected_error [detected_count] - = _geometry_error (geom, probed); - detected_count++; - ped_geometry_destroy (probed); - } else { - ped_exception_catch (); - } - } - ped_exception_leave_all (); - - ped_device_close (geom->dev); - - if (!detected_count) - return NULL; - walk = _best_match (geom, detected, detected_error, detected_count); - if (walk) - return walk; - return NULL; -} diff --git a/jni/parted/libparted/fs/amiga/a-interface.c b/jni/parted/libparted/fs/amiga/a-interface.c deleted file mode 100755 index 0ae84dd..0000000 --- a/jni/parted/libparted/fs/amiga/a-interface.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - interface.c -- parted support amiga file systems - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - - -#include - -#include -#include -#include - -extern PedFileSystemType _affs0_type; -extern PedFileSystemType _affs1_type; -extern PedFileSystemType _affs2_type; -extern PedFileSystemType _affs3_type; -extern PedFileSystemType _affs4_type; -extern PedFileSystemType _affs5_type; -extern PedFileSystemType _affs6_type; -extern PedFileSystemType _affs7_type; -extern PedFileSystemType _amufs_type; -extern PedFileSystemType _amufs0_type; -extern PedFileSystemType _amufs1_type; -extern PedFileSystemType _amufs2_type; -extern PedFileSystemType _amufs3_type; -extern PedFileSystemType _amufs4_type; -extern PedFileSystemType _amufs5_type; -extern PedFileSystemType _asfs_type; -extern PedFileSystemType _apfs1_type; -extern PedFileSystemType _apfs2_type; - -void ped_file_system_amiga_init () -{ - ped_file_system_type_register (&_affs0_type); - ped_file_system_type_register (&_affs1_type); - ped_file_system_type_register (&_affs2_type); - ped_file_system_type_register (&_affs3_type); - ped_file_system_type_register (&_affs4_type); - ped_file_system_type_register (&_affs5_type); - ped_file_system_type_register (&_affs6_type); - ped_file_system_type_register (&_affs7_type); - ped_file_system_type_register (&_amufs_type); - ped_file_system_type_register (&_amufs0_type); - ped_file_system_type_register (&_amufs1_type); - ped_file_system_type_register (&_amufs2_type); - ped_file_system_type_register (&_amufs3_type); - ped_file_system_type_register (&_amufs4_type); - ped_file_system_type_register (&_amufs5_type); - ped_file_system_type_register (&_asfs_type); - ped_file_system_type_register (&_apfs1_type); - ped_file_system_type_register (&_apfs2_type); -} - -void ped_file_system_amiga_done () -{ - ped_file_system_type_unregister (&_affs0_type); - ped_file_system_type_unregister (&_affs1_type); - ped_file_system_type_unregister (&_affs2_type); - ped_file_system_type_unregister (&_affs3_type); - ped_file_system_type_unregister (&_affs4_type); - ped_file_system_type_unregister (&_affs5_type); - ped_file_system_type_unregister (&_affs6_type); - ped_file_system_type_unregister (&_affs7_type); - ped_file_system_type_unregister (&_amufs_type); - ped_file_system_type_unregister (&_amufs0_type); - ped_file_system_type_unregister (&_amufs1_type); - ped_file_system_type_unregister (&_amufs2_type); - ped_file_system_type_unregister (&_amufs3_type); - ped_file_system_type_unregister (&_amufs4_type); - ped_file_system_type_unregister (&_amufs5_type); - ped_file_system_type_unregister (&_asfs_type); - ped_file_system_type_unregister (&_apfs1_type); - ped_file_system_type_unregister (&_apfs2_type); -} diff --git a/jni/parted/libparted/fs/amiga/affs.c b/jni/parted/libparted/fs/amiga/affs.c deleted file mode 100755 index 750eab2..0000000 --- a/jni/parted/libparted/fs/amiga/affs.c +++ /dev/null @@ -1,292 +0,0 @@ -/* - affs.c -- parted support for affs file systems - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include - -#include "amiga.h" -#include "affs.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static int -_affs_probe_root (uint32_t *block, int blocksize) { - int i; - uint32_t sum; - - if (PED_BE32_TO_CPU (block[0]) != 2) return 0; - if (PED_BE32_TO_CPU (block[128*blocksize-1]) != 1) return 0; - for (i = 0, sum = 0; i < 128*blocksize; i++) - sum += PED_BE32_TO_CPU (block[i]); - if (sum) return 0; - return 1; -} - -static PedGeometry* -_generic_affs_probe (PedGeometry* geom, uint32_t kind) -{ - uint32_t *block; - PedSector root, len, pos; - struct PartitionBlock * part; - int blocksize = 1, reserved = 2; - - PED_ASSERT (geom != NULL); - PED_ASSERT (geom->dev != NULL); - if (geom->dev->sector_size != 512) - return NULL; - /* Finds the blocksize and reserved values of the partition block */ - if (!(part = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate partition block\n"), __func__); - goto error_part; - } - if (amiga_find_part(geom, part) != NULL) { - reserved = PED_BE32_TO_CPU (part->de_Reserved); - reserved = reserved == 0 ? 1 : reserved; - blocksize = PED_BE32_TO_CPU (part->de_SizeBlock) - * PED_BE32_TO_CPU (part->de_SectorPerBlock) / 128; - } - free (part); - - /* Test boot block */ - if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate block\n"), __func__); - goto error_block; - } - if (!ped_device_read (geom->dev, block, geom->start, blocksize)) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Couldn't read boot block %llu\n"), __func__, geom->start); - goto error; - } - if (PED_BE32_TO_CPU (block[0]) != kind) { - goto error; - } - - /* Find and test the root block */ - len = geom->length / blocksize - reserved; - pos = (len - 1) / 2; - root = geom->start + (pos + reserved) * blocksize; - - if (!ped_device_read (geom->dev, block, root, blocksize)) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Couldn't read root block %llu\n"), __func__, root); - goto error; - } - if (_affs_probe_root(block, blocksize) == 1) { - free (block); - return ped_geometry_duplicate (geom); - } - -error: - free (block); -error_block: -error_part: - return NULL; -} -static PedGeometry* -_affs0_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5300); -} -static PedGeometry* -_affs1_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5301); -} -static PedGeometry* -_affs2_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5302); -} -static PedGeometry* -_affs3_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5303); -} -static PedGeometry* -_affs4_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5304); -} -static PedGeometry* -_affs5_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5305); -} -static PedGeometry* -_affs6_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5306); -} -static PedGeometry* -_affs7_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x444f5307); -} -static PedGeometry* -_amufs_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754653); -} -static PedGeometry* -_amufs0_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754600); -} -static PedGeometry* -_amufs1_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754601); -} -static PedGeometry* -_amufs2_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754602); -} -static PedGeometry* -_amufs3_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754603); -} -static PedGeometry* -_amufs4_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754604); -} -static PedGeometry* -_amufs5_probe (PedGeometry* geom) { - return _generic_affs_probe (geom, 0x6d754605); -} - -static PedFileSystemOps _affs0_ops = { - probe: _affs0_probe, -}; -static PedFileSystemOps _affs1_ops = { - probe: _affs1_probe, -}; -static PedFileSystemOps _affs2_ops = { - probe: _affs2_probe, -}; -static PedFileSystemOps _affs3_ops = { - probe: _affs3_probe, -}; -static PedFileSystemOps _affs4_ops = { - probe: _affs4_probe, -}; -static PedFileSystemOps _affs5_ops = { - probe: _affs5_probe, -}; -static PedFileSystemOps _affs6_ops = { - probe: _affs6_probe, -}; -static PedFileSystemOps _affs7_ops = { - probe: _affs7_probe, -}; -static PedFileSystemOps _amufs_ops = { - probe: _amufs_probe, -}; -static PedFileSystemOps _amufs0_ops = { - probe: _amufs0_probe, -}; -static PedFileSystemOps _amufs1_ops = { - probe: _amufs1_probe, -}; -static PedFileSystemOps _amufs2_ops = { - probe: _amufs2_probe, -}; -static PedFileSystemOps _amufs3_ops = { - probe: _amufs3_probe, -}; -static PedFileSystemOps _amufs4_ops = { - probe: _amufs4_probe, -}; -static PedFileSystemOps _amufs5_ops = { - probe: _amufs5_probe, -}; - -PedFileSystemType _affs0_type = { - next: NULL, - ops: &_affs0_ops, - name: "affs0", -}; -PedFileSystemType _affs1_type = { - next: NULL, - ops: &_affs1_ops, - name: "affs1", -}; -PedFileSystemType _affs2_type = { - next: NULL, - ops: &_affs2_ops, - name: "affs2", -}; -PedFileSystemType _affs3_type = { - next: NULL, - ops: &_affs3_ops, - name: "affs3", -}; -PedFileSystemType _affs4_type = { - next: NULL, - ops: &_affs4_ops, - name: "affs4", -}; -PedFileSystemType _affs5_type = { - next: NULL, - ops: &_affs5_ops, - name: "affs5", -}; -PedFileSystemType _affs6_type = { - next: NULL, - ops: &_affs6_ops, - name: "affs6", -}; -PedFileSystemType _affs7_type = { - next: NULL, - ops: &_affs7_ops, - name: "affs7", -}; -PedFileSystemType _amufs_type = { - next: NULL, - ops: &_amufs_ops, - name: "amufs", -}; -PedFileSystemType _amufs0_type = { - next: NULL, - ops: &_amufs0_ops, - name: "amufs0", -}; -PedFileSystemType _amufs1_type = { - next: NULL, - ops: &_amufs1_ops, - name: "amufs1", -}; -PedFileSystemType _amufs2_type = { - next: NULL, - ops: &_amufs2_ops, - name: "amufs2", -}; -PedFileSystemType _amufs3_type = { - next: NULL, - ops: &_amufs3_ops, - name: "amufs3", -}; -PedFileSystemType _amufs4_type = { - next: NULL, - ops: &_amufs4_ops, - name: "amufs4", -}; -PedFileSystemType _amufs5_type = { - next: NULL, - ops: &_amufs5_ops, - name: "amufs5", -}; diff --git a/jni/parted/libparted/fs/amiga/affs.h b/jni/parted/libparted/fs/amiga/affs.h deleted file mode 100755 index d1650f2..0000000 --- a/jni/parted/libparted/fs/amiga/affs.h +++ /dev/null @@ -1,19 +0,0 @@ - -/* - affs.h -- parted suppoer for affs filesystems header files - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ diff --git a/jni/parted/libparted/fs/amiga/amiga.c b/jni/parted/libparted/fs/amiga/amiga.c deleted file mode 100755 index 1a909fc..0000000 --- a/jni/parted/libparted/fs/amiga/amiga.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - libparted/fs_amiga - amiga file system support. - Copyright (C) 2000-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . - - Contributor: Sven Luther -*/ - -#include -#include -#include -#include - -#include "amiga.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#define IDNAME_RIGIDDISK (uint32_t)0x5244534B /* 'RDSK' */ -#define IDNAME_BADBLOCK (uint32_t)0x42414442 /* 'BADB' */ -#define IDNAME_PARTITION (uint32_t)0x50415254 /* 'PART' */ -#define IDNAME_FILESYSHEADER (uint32_t)0x46534844 /* 'FSHD' */ -#define IDNAME_LOADSEG (uint32_t)0x4C534547 /* 'LSEG' */ -#define IDNAME_BOOT (uint32_t)0x424f4f54 /* 'BOOT' */ -#define IDNAME_FREE (uint32_t)0xffffffff - -static const char * -_amiga_block_id (uint32_t id) { - switch (id) { - case IDNAME_RIGIDDISK : - return "RDSK"; - case IDNAME_BADBLOCK : - return "BADB"; - case IDNAME_PARTITION : - return "PART"; - case IDNAME_FILESYSHEADER : - return "FSHD"; - case IDNAME_LOADSEG : - return "LSEG"; - case IDNAME_BOOT : - return "BOOT"; - case IDNAME_FREE : - return ""; - default : - return ""; - } -} - -struct AmigaIds * -_amiga_add_id (uint32_t id, struct AmigaIds *ids) { - struct AmigaIds *newid; - - if ((newid=ped_malloc(sizeof (struct AmigaIds)))==NULL) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate id list element\n"), __func__); - return 0; - } - newid->ID = id; - newid->next = ids; - return newid; -} - -void -_amiga_free_ids (struct AmigaIds *ids) { - struct AmigaIds *current, *next; - - for (current = ids; current != NULL; current = next) { - next = current->next; - free (current); - } -} -int -_amiga_id_in_list (uint32_t id, struct AmigaIds *ids) { - struct AmigaIds *current; - - for (current = ids; current != NULL; current = current->next) { - if (id == current->ID) - return 1; - } - return 0; -} - -#define AMIGA_RDB_NOT_FOUND ((uint32_t)0xffffffff) - -struct AmigaBlock { - uint32_t amiga_ID; /* Identifier 32 bit word */ - uint32_t amiga_SummedLongss; /* Size of the structure for checksums */ - int32_t amiga_ChkSum; /* Checksum of the structure */ -}; -#define AMIGA(pos) ((struct AmigaBlock *)(pos)) - -struct RigidDiskBlock { - uint32_t rdb_ID; /* Identifier 32 bit word : 'RDSK' */ - uint32_t rdb_SummedLongs; /* Size of the structure for checksums */ - int32_t rdb_ChkSum; /* Checksum of the structure */ - uint32_t rdb_HostID; /* SCSI Target ID of host, not really used */ - uint32_t rdb_BlockBytes; /* Size of disk blocks */ - uint32_t rdb_Flags; /* RDB Flags */ - /* block list heads */ - uint32_t rdb_BadBlockList; /* Bad block list */ - uint32_t rdb_PartitionList; /* Partition list */ - uint32_t rdb_FileSysHeaderList; /* File system header list */ - uint32_t rdb_DriveInit; /* Drive specific init code */ - uint32_t rdb_BootBlockList; /* Amiga OS 4 Boot Blocks */ - uint32_t rdb_Reserved1[5]; /* Unused word, need to be set to $ffffffff */ - /* physical drive characteristics */ - uint32_t rdb_Cylinders; /* Number of the cylinders of the drive */ - uint32_t rdb_Sectors; /* Number of sectors of the drive */ - uint32_t rdb_Heads; /* Number of heads of the drive */ - uint32_t rdb_Interleave; /* Interleave */ - uint32_t rdb_Park; /* Head parking cylinder */ - uint32_t rdb_Reserved2[3]; /* Unused word, need to be set to $ffffffff */ - uint32_t rdb_WritePreComp; /* Starting cylinder of write precompensation */ - uint32_t rdb_ReducedWrite; /* Starting cylinder of reduced write current */ - uint32_t rdb_StepRate; /* Step rate of the drive */ - uint32_t rdb_Reserved3[5]; /* Unused word, need to be set to $ffffffff */ - /* logical drive characteristics */ - uint32_t rdb_RDBBlocksLo; /* low block of range reserved for hardblocks */ - uint32_t rdb_RDBBlocksHi; /* high block of range for these hardblocks */ - uint32_t rdb_LoCylinder; /* low cylinder of partitionable disk area */ - uint32_t rdb_HiCylinder; /* high cylinder of partitionable data area */ - uint32_t rdb_CylBlocks; /* number of blocks available per cylinder */ - uint32_t rdb_AutoParkSeconds; /* zero for no auto park */ - uint32_t rdb_HighRDSKBlock; /* highest block used by RDSK */ - /* (not including replacement bad blocks) */ - uint32_t rdb_Reserved4; - /* drive identification */ - char rdb_DiskVendor[8]; - char rdb_DiskProduct[16]; - char rdb_DiskRevision[4]; - char rdb_ControllerVendor[8]; - char rdb_ControllerProduct[16]; - char rdb_ControllerRevision[4]; - uint32_t rdb_Reserved5[10]; -}; - -#define AMIGA_MAX_PARTITIONS 128 -#define RDB_LOCATION_LIMIT 16 -#define RDSK(pos) ((struct RigidDiskBlock *)(pos)) - -static int -_amiga_checksum (struct AmigaBlock *blk) { - uint32_t *rdb = (uint32_t *) blk; - uint32_t sum; - int i, end; - - sum = PED_BE32_TO_CPU (rdb[0]); - end = PED_BE32_TO_CPU (rdb[1]); - - if (end > PED_SECTOR_SIZE_DEFAULT) end = PED_SECTOR_SIZE_DEFAULT; - - for (i = 1; i < end; i++) sum += PED_BE32_TO_CPU (rdb[i]); - - return sum; -} - -static void -_amiga_calculate_checksum (struct AmigaBlock *blk) { - - blk->amiga_ChkSum = PED_CPU_TO_BE32( - PED_BE32_TO_CPU(blk->amiga_ChkSum) - - _amiga_checksum((struct AmigaBlock *) blk)); - return; -} - - -static struct AmigaBlock * -_amiga_read_block (PedDevice *dev, struct AmigaBlock *blk, PedSector block, struct AmigaIds *ids) { - if (!ped_device_read (dev, blk, block, 1)) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Couldn't read block %llu\n"), __func__, block)) - { - case PED_EXCEPTION_CANCEL : - case PED_EXCEPTION_UNHANDLED : - default : - return NULL; - } - } - if (ids && !_amiga_id_in_list(PED_BE32_TO_CPU(blk->amiga_ID), ids)) - return NULL; - if (_amiga_checksum (blk) != 0) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE | PED_EXCEPTION_CANCEL, - _("%s : Bad checksum on block %llu of type %s\n"), - __func__, block, _amiga_block_id(PED_BE32_TO_CPU(blk->amiga_ID)))) - { - case PED_EXCEPTION_CANCEL : - return NULL; - case PED_EXCEPTION_FIX : - _amiga_calculate_checksum(AMIGA(blk)); - if (!ped_device_write (dev, blk, block, 1)) { - switch (ped_exception_throw(PED_EXCEPTION_FATAL, - PED_EXCEPTION_CANCEL, - _("%s : Couldn't write block %d\n"), __func__, block)) - { - case PED_EXCEPTION_CANCEL : - case PED_EXCEPTION_UNHANDLED : - default : - return NULL; - } - } - /* FALLTHROUGH */ - case PED_EXCEPTION_IGNORE : - case PED_EXCEPTION_UNHANDLED : - default : - return blk; - } - } - return blk; -} - -static uint32_t -_amiga_find_rdb (PedDevice *dev, struct RigidDiskBlock *rdb) { - int i; - struct AmigaIds *ids; - - ids = _amiga_add_id (IDNAME_RIGIDDISK, NULL); - - for (i = 0; irdb_ID) == IDNAME_RIGIDDISK) { - _amiga_free_ids (ids); - return i; - } - } - _amiga_free_ids (ids); - return AMIGA_RDB_NOT_FOUND; -} - -static int -_amiga_loop_check (uint32_t block, uint32_t * blocklist, uint32_t max) -{ - uint32_t i; - - for (i = 0; i < max; i++) - if (block == blocklist[i]) { - /* We are looping, let's stop. */ - return 1; - } - blocklist[max] = block; - return 0; -} - -/* We have already allocated a rdb, we are now reading it from the disk */ -struct PartitionBlock * -amiga_find_part (PedGeometry *geom, struct PartitionBlock *part) -{ - struct RigidDiskBlock *rdb; - uint32_t partblock; - uint32_t partlist[AMIGA_MAX_PARTITIONS]; - int i; - - PED_ASSERT(geom!= NULL); - PED_ASSERT(geom->dev!= NULL); - - if (!(rdb = ped_malloc (PED_SECTOR_SIZE_DEFAULT))) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate disk_specific rdb block\n"), __func__)) - { - case PED_EXCEPTION_CANCEL : - case PED_EXCEPTION_UNHANDLED : - default : - return NULL; - } - } - if (_amiga_find_rdb (geom->dev, rdb) == AMIGA_RDB_NOT_FOUND) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Didn't find rdb block, should never happen\n"), __func__)) - { - case PED_EXCEPTION_CANCEL : - case PED_EXCEPTION_UNHANDLED : - default : - free(rdb); - return NULL; - } - } - - /* We initialize the hardblock free list to detect loops */ - for (i = 0; i < AMIGA_MAX_PARTITIONS; i++) partlist[i] = IDNAME_FREE; - - for (i = 1, partblock = PED_BE32_TO_CPU(rdb->rdb_PartitionList); - i < AMIGA_MAX_PARTITIONS && partblock != IDNAME_FREE; - i++, partblock = PED_BE32_TO_CPU(part->pb_Next)) - { - PedSector start, end; - PedSector cylblocks; - - /* Let's look for loops in the partition table */ - if (_amiga_loop_check(partblock, partlist, i)) { - free (rdb); - return NULL; - } - /* Let's read a partition block to get its geometry*/ - if (!ped_device_read (geom->dev, part, (PedSector)partblock, 1)) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Failed to read partition block %llu\n"), - __func__, (PedSector)partblock)) - { - case PED_EXCEPTION_CANCEL : - case PED_EXCEPTION_UNHANDLED : - default : - free(rdb); - return NULL; - } - } - - /* Current block is not a Partition Block */ - if (part->pb_ID != IDNAME_PARTITION) { - free (rdb); - return NULL; - } - - /* Calculate the geometry of the partition */ - cylblocks = ((PedSector) PED_BE32_TO_CPU (part->de_Surfaces)) * - ((PedSector) PED_BE32_TO_CPU (part->de_BlocksPerTrack)); - start = ((PedSector) PED_BE32_TO_CPU (part->de_LowCyl)) * cylblocks; - end = ((((PedSector) PED_BE32_TO_CPU (part->de_HighCyl))+1) * (cylblocks))-1; - - /* And check if it is the one we are searching for */ - if (start == geom->start && end == geom->end) { - free (rdb); - return part; - } - } - - free (rdb); - return NULL; -} diff --git a/jni/parted/libparted/fs/amiga/amiga.h b/jni/parted/libparted/fs/amiga/amiga.h deleted file mode 100755 index 30f5b82..0000000 --- a/jni/parted/libparted/fs/amiga/amiga.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - util.h -- amiga partition table headers. - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -struct PartitionBlock { - uint32_t pb_ID; /* Identifier 32 bit word : 'PART' */ - uint32_t pb_SummedLongs; /* Size of the structure for checksums */ - int32_t pb_ChkSum; /* Checksum of the structure */ - uint32_t pb_HostID; /* SCSI Target ID of host, not really used */ - uint32_t pb_Next; /* Block number of the next PartitionBlock */ - uint32_t pb_Flags; /* Part Flags (NOMOUNT and BOOTABLE) */ - uint32_t pb_Reserved1[2]; - uint32_t pb_DevFlags; /* Preferred flags for OpenDevice */ - uint8_t pb_DriveName[32]; /* Preferred DOS device name: BSTR form */ - uint32_t pb_Reserved2[15]; - uint32_t de_TableSize; /* Size of Environment vector */ - uint32_t de_SizeBlock; /* Size of the blocks in 32 bit words, usually 128 */ - uint32_t de_SecOrg; /* Not used; must be 0 */ - uint32_t de_Surfaces; /* Number of heads (surfaces) */ - uint32_t de_SectorPerBlock; /* Disk sectors per block, used with SizeBlock, usually 1 */ - uint32_t de_BlocksPerTrack; /* Blocks per track. drive specific */ - uint32_t de_Reserved; /* DOS reserved blocks at start of partition. */ - uint32_t de_PreAlloc; /* DOS reserved blocks at end of partition */ - uint32_t de_Interleave; /* Not used, usually 0 */ - uint32_t de_LowCyl; /* First cylinder of the partition */ - uint32_t de_HighCyl; /* Last cylinder of the partition */ - uint32_t de_NumBuffers; /* Initial # DOS of buffers. */ - uint32_t de_BufMemType; /* Type of mem to allocate for buffers */ - uint32_t de_MaxTransfer; /* Max number of bytes to transfer at a time */ - uint32_t de_Mask; /* Address Mask to block out certain memory */ - int32_t de_BootPri; /* Boot priority for autoboot */ - uint32_t de_DosType; /* Dostype of the file system */ - uint32_t de_Baud; /* Baud rate for serial handler */ - uint32_t de_Control; /* Control word for handler/filesystem */ - uint32_t de_BootBlocks; /* Number of blocks containing boot code */ - uint32_t pb_EReserved[12]; -}; - -#define PART(pos) ((struct PartitionBlock *)(pos)) - -#define PBFB_BOOTABLE 0 /* this partition is intended to be bootable */ -#define PBFF_BOOTABLE 1L /* (expected directories and files exist) */ -#define PBFB_NOMOUNT 1 /* do not mount this partition (e.g. manually */ -#define PBFF_NOMOUNT 2L /* mounted, but space reserved here) */ - -struct PartitionBlock * amiga_find_part (PedGeometry *geom, struct PartitionBlock *part); - -struct AmigaIds { - uint32_t ID; - struct AmigaIds *next; -}; - -struct AmigaIds * _amiga_add_id (uint32_t id, struct AmigaIds *ids); -void _amiga_free_ids (struct AmigaIds *ids); -int _amiga_id_in_list (uint32_t id, struct AmigaIds *ids) _GL_ATTRIBUTE_PURE; diff --git a/jni/parted/libparted/fs/amiga/apfs.c b/jni/parted/libparted/fs/amiga/apfs.c deleted file mode 100755 index aeaa1f3..0000000 --- a/jni/parted/libparted/fs/amiga/apfs.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - apfs.c -- parted support for apfs file systems - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include - -#include "amiga.h" -#include "apfs.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static int -_apfs_probe_root (uint32_t *block, uint32_t blocksize, uint32_t kind) { - if (PED_BE32_TO_CPU (block[0]) != kind) return 0; - return 1; -} - -static PedGeometry* -_generic_apfs_probe (PedGeometry* geom, uint32_t kind) -{ - uint32_t *block; - PedSector root; - struct PartitionBlock * part; - uint32_t blocksize = 1, reserved = 2; - - PED_ASSERT (geom != NULL); - PED_ASSERT (geom->dev != NULL); - if (geom->dev->sector_size != 512) - return NULL; - - /* Finds the blocksize and reserved values of the partition block */ - if (!(part = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate partition block\n"), __func__); - goto error_part; - } - if (amiga_find_part(geom, part) != NULL) { - reserved = PED_BE32_TO_CPU (part->de_Reserved); - blocksize = PED_BE32_TO_CPU (part->de_SizeBlock) - * PED_BE32_TO_CPU (part->de_SectorPerBlock) / 128; - } - free (part); - - /* Test boot block */ - if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate block\n"), __func__); - goto error_block; - } - if (!ped_device_read (geom->dev, block, geom->start, blocksize)) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Couldn't read boot block %llu\n"), __func__, geom->start); - goto error; - } - if (PED_BE32_TO_CPU (block[0]) != kind) { - goto error; - } - - /* Find and test the root block */ - root = geom->start+reserved*blocksize; - if (!ped_device_read (geom->dev, block, root, blocksize)) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Couldn't read root block %llu\n"), __func__, root); - goto error; - } - if (_apfs_probe_root(block, blocksize, kind) == 1) { - free(block); - return ped_geometry_duplicate (geom); - } - -error: - free (block); -error_block: -error_part: - return NULL; -} - -static PedGeometry* -_apfs1_probe (PedGeometry* geom) { - return _generic_apfs_probe (geom, 0x50463101); -} - -static PedGeometry* -_apfs2_probe (PedGeometry* geom) { - return _generic_apfs_probe (geom, 0x50463102); -} - -static PedFileSystemOps _apfs1_ops = { - probe: _apfs1_probe, -}; -static PedFileSystemOps _apfs2_ops = { - probe: _apfs2_probe, -}; - -PedFileSystemType _apfs1_type = { - next: NULL, - ops: &_apfs1_ops, - name: "apfs1", -}; -PedFileSystemType _apfs2_type = { - next: NULL, - ops: &_apfs2_ops, - name: "apfs2", -}; diff --git a/jni/parted/libparted/fs/amiga/apfs.h b/jni/parted/libparted/fs/amiga/apfs.h deleted file mode 100755 index 972941b..0000000 --- a/jni/parted/libparted/fs/amiga/apfs.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - apfs.h -- parted support for apfs file systems header files - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ diff --git a/jni/parted/libparted/fs/amiga/asfs.c b/jni/parted/libparted/fs/amiga/asfs.c deleted file mode 100755 index c4c65e5..0000000 --- a/jni/parted/libparted/fs/amiga/asfs.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - asfs.c -- parted asfs filesystem support - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include - -#include "amiga.h" -#include "asfs.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static int -_asfs_probe_root (PedGeometry *geom, uint32_t *block, int blocksize, PedSector root) { - int i, sum; - PedSector start, end; - - if (PED_BE32_TO_CPU (block[0]) != 0x53465300) return 0; - for (i = 0, sum = 1; i < 128*blocksize; i++) sum += PED_BE32_TO_CPU (block[i]); - if (sum != 0) return 0; - if (PED_BE32_TO_CPU (block[2]) * blocksize + geom->start != root) { - return 0; - } - start = ((((PedSector) PED_BE32_TO_CPU (block[8])) << 32) - + (PedSector) PED_BE32_TO_CPU (block[9])) / 512; - end = (((((PedSector) PED_BE32_TO_CPU (block[10])) << 32) - + (PedSector) PED_BE32_TO_CPU (block[11])) / 512) - 1; - if (start != geom->start || end != geom->end) return 0; - return 1; -} - -static PedGeometry* -_asfs_probe (PedGeometry* geom) -{ - uint32_t *block; - struct PartitionBlock * part; - int blocksize = 1; - PedSector root; - int found = 0; - - PED_ASSERT (geom != NULL); - PED_ASSERT (geom->dev != NULL); - if (geom->dev->sector_size != 512) - return NULL; - - /* Finds the blocksize of the partition block */ - if (!(part = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate partition block\n"), __func__); - goto error_part; - } - if (amiga_find_part(geom, part) != NULL) { - blocksize = PED_BE32_TO_CPU (part->de_SizeBlock) - * PED_BE32_TO_CPU (part->de_SectorPerBlock) / 128; - } - free (part); - - /* Test boot block */ - if (!(block = ped_malloc (PED_SECTOR_SIZE_DEFAULT*blocksize))) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Failed to allocate block\n"), __func__); - goto error_block; - } - root = geom->start; - if (!ped_device_read (geom->dev, block, root, blocksize)) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Couldn't read root block %llu\n"), __func__, root); - goto error; - } - if (PED_BE32_TO_CPU (block[0]) != 0x53465300) { - goto error; - } - - /* Find and test the root blocks */ - if (_asfs_probe_root(geom, block, blocksize, root)) { - found++; - } - root = geom->end - blocksize - (geom->length % blocksize) + 1; - if (!ped_device_read (geom->dev, block, root, 1)) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Couldn't read root block %llu\n"), __func__, root); - goto error; - } - if (_asfs_probe_root(geom, block, blocksize, root)) { - found++; - } - if (found != 0) { - free (block); - return ped_geometry_duplicate (geom); - } - -error: - free (block); -error_block: -error_part: - return NULL; -} - -static PedFileSystemOps _asfs_ops = { - probe: _asfs_probe, -}; - -PedFileSystemType _asfs_type = { - next: NULL, - ops: &_asfs_ops, - name: "asfs", -}; diff --git a/jni/parted/libparted/fs/amiga/asfs.h b/jni/parted/libparted/fs/amiga/asfs.h deleted file mode 100755 index 2b70a94..0000000 --- a/jni/parted/libparted/fs/amiga/asfs.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - asfs.h -- parted asfs filesystem support header files - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ diff --git a/jni/parted/libparted/fs/btrfs/btrfs.c b/jni/parted/libparted/fs/btrfs/btrfs.c deleted file mode 100755 index 6eded8b..0000000 --- a/jni/parted/libparted/fs/btrfs/btrfs.c +++ /dev/null @@ -1,77 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2013-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -/* Located 64k inside the partition (start of the first btrfs superblock) */ -#define BTRFS_MAGIC 0x4D5F53665248425FULL /* ascii _BHRfS_M, no null */ -#define BTRFS_CSUM_SIZE 32 -#define BTRFS_FSID_SIZE 16 - - -static PedGeometry* -btrfs_probe (PedGeometry* geom) -{ - union { - struct { - /* Just enough of the btrfs_super_block to get the magic */ - uint8_t csum[BTRFS_CSUM_SIZE]; - uint8_t fsid[BTRFS_FSID_SIZE]; - uint64_t bytenr; - uint64_t flags; - uint64_t magic; - } sb; - int8_t sector[8192]; - } buf; - PedSector offset = (64*1024)/geom->dev->sector_size; - - if (geom->length < offset+1) - return 0; - if (!ped_geometry_read (geom, &buf, offset, 1)) - return 0; - - if (PED_LE64_TO_CPU(buf.sb.magic) == BTRFS_MAGIC) { - return ped_geometry_new (geom->dev, geom->start, geom->length); - } - return NULL; -} - -static PedFileSystemOps btrfs_ops = { - probe: btrfs_probe, -}; - -static PedFileSystemType btrfs_type = { - next: NULL, - ops: &btrfs_ops, - name: "btrfs", -}; - -void -ped_file_system_btrfs_init () -{ - ped_file_system_type_register (&btrfs_type); -} - -void -ped_file_system_btrfs_done () -{ - ped_file_system_type_unregister (&btrfs_type); -} diff --git a/jni/parted/libparted/fs/ext2/ext2.h b/jni/parted/libparted/fs/ext2/ext2.h deleted file mode 100755 index d23f63e..0000000 --- a/jni/parted/libparted/fs/ext2/ext2.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - ext2.h -- ext2 header - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef _EXT2_H -#define _EXT2_H - -#include -#include -#include - -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -typedef u_int32_t blk_t; - -#ifdef HAVE_LINUX_EXT2_FS_H__FAILS_TO_COMPILE -#include -#else -#include "ext2_fs.h" -#endif - -struct ext2_fs -{ - struct ext2_dev_handle *devhandle; - - struct ext2_super_block sb; - struct ext2_group_desc *gd; - struct ext2_buffer_cache *bc; - int metadirty; /* 0:all sb&gd copies clean - 1:all sb&gd copies dirty - 2:only first sb&gd copy clean */ - - int dynamic_version; - int sparse; /* sparse superblocks */ - int has_journal; /* journal */ - int has_internal_journal; - - int blocksize; - int logsize; - blk_t adminblocks; - blk_t gdblocks; - blk_t itoffset; - blk_t inodeblocks; - int numgroups; - int r_frac; /* reserved % of blocks */ - - unsigned char *relocator_pool; - unsigned char *relocator_pool_end; - - int opt_debug; - int opt_safe; - int opt_verbose; - - void *journal; -}; - -#endif diff --git a/jni/parted/libparted/fs/ext2/ext2_fs.h b/jni/parted/libparted/fs/ext2/ext2_fs.h deleted file mode 100755 index 1eca7ab..0000000 --- a/jni/parted/libparted/fs/ext2/ext2_fs.h +++ /dev/null @@ -1,329 +0,0 @@ -/* - * linux/include/linux/ext2_fs.h - * - * Copyright (C) 1992, 1993, 1994, 1995 - * Remy Card (card@masi.ibp.fr) - * Laboratoire MASI - Institut Blaise Pascal - * Universite Pierre et Marie Curie (Paris VI) - * - * from - * - * linux/include/linux/minix_fs.h - * - * Copyright (C) 1991, 1992 Linus Torvalds - */ - -/* - * EXT2_*_*() convienience macros added by Andrew Clausen - * Copyright (C) 2000, 2009-2014, 2019-2023 Free Software Foundation, Inc. - */ - -#ifndef _EXT2_FS_H -#define _EXT2_FS_H - -#include -#include - -/* - * The second extended file system constants/structures - */ - -#define EXT2_SUPER_MAGIC_CONST 0xEF53 -#define EXT2_MIN_BLOCK_SIZE 1024 -#define EXT2_NDIR_BLOCKS 12 -#define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS -#define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1) -#define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1) -#define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1) -#define EXT2_VALID_FS 0x0001 -#define EXT2_ERROR_FS 0x0002 -#define EXT2_RESERVED_INODE_COUNT 11 - -/* - * Codes for operating systems - */ -#define EXT2_OS_LINUX 0 -#define EXT2_OS_HURD 1 -#define EXT2_OS_MASIX 2 -#define EXT2_OS_FREEBSD 3 -#define EXT2_OS_LITES 4 - -/* - * Feature set definitions - */ -#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004 -#define EXT2_FEATURE_COMPAT_HAS_DIR_INDEX 0x0020 - -#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001 -#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002 -#define EXT4_FEATURE_RO_COMPAT_HUGE_FILE 0x0008 -#define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010 -#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020 - -#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002 -#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 -#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 -#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 -#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 - -/* - * Special inodes numbers - */ -#define EXT2_BAD_INO 1 /* Bad blocks inode */ -#define EXT2_ROOT_INO 2 /* Root inode */ -#define EXT2_ACL_IDX_INO 3 /* ACL inode */ -#define EXT2_ACL_DATA_INO 4 /* ACL inode */ -#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */ -#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */ - -/* - * Ext2 directory file types. Only the low 3 bits are used. The - * other bits are reserved for now. - */ -#define EXT2_FT_UNKNOWN 0 -#define EXT2_FT_REG_FILE 1 -#define EXT2_FT_DIR 2 -#define EXT2_FT_CHRDEV 3 -#define EXT2_FT_BLKDEV 4 -#define EXT2_FT_FIFO 5 -#define EXT2_FT_SOCK 6 -#define EXT2_FT_SYMLINK 7 - -/* - * Behaviour when detecting errors - */ -#define EXT2_ERRORS_CONTINUE 1 /* Continue execution */ -#define EXT2_ERRORS_RO 2 /* Remount fs read-only */ -#define EXT2_ERRORS_PANIC 3 /* Panic */ -#define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE - -struct ext2_dir_entry_2 -{ - uint32_t inode; - uint16_t rec_len; - uint8_t name_len; - uint8_t file_type; - char name[255]; -}; - -struct ext2_group_desc -{ - uint32_t bg_block_bitmap; - uint32_t bg_inode_bitmap; - uint32_t bg_inode_table; - uint16_t bg_free_blocks_count; - uint16_t bg_free_inodes_count; - uint16_t bg_used_dirs_count; - uint16_t bg_pad; - uint32_t bg_reserved[3]; -}; - -struct ext2_inode -{ - uint16_t i_mode; /* File mode */ - uint16_t i_uid; /* Owner Uid */ - uint32_t i_size; /* Size in bytes */ - uint32_t i_atime; /* Access time */ - uint32_t i_ctime; /* Creation time */ - uint32_t i_mtime; /* Modification time */ - uint32_t i_dtime; /* Deletion Time */ - uint16_t i_gid; /* Group Id */ - uint16_t i_links_count; /* Links count */ - uint32_t i_blocks; /* Blocks count */ - uint32_t i_flags; /* File flags */ - union { - struct { - uint32_t l_i_reserved1; - } linux1; - struct { - uint32_t h_i_translator; - } hurd1; - struct { - uint32_t m_i_reserved1; - } masix1; - } osd1; /* OS dependent 1 */ - uint32_t i_block[EXT2_N_BLOCKS];/* Pointers to blocks */ - uint32_t i_generation; /* File version (for NFS) */ - uint32_t i_file_acl; /* File ACL */ - uint32_t i_dir_acl; /* Directory ACL */ - uint32_t i_faddr; /* Fragment address */ - union { - struct { - uint8_t l_i_frag; /* Fragment number */ - uint8_t l_i_fsize; /* Fragment size */ - uint16_t i_pad1; - uint32_t l_i_reserved2[2]; - } linux2; - struct { - uint8_t h_i_frag; /* Fragment number */ - uint8_t h_i_fsize; /* Fragment size */ - uint16_t h_i_mode_high; - uint16_t h_i_uid_high; - uint16_t h_i_gid_high; - uint32_t h_i_author; - } hurd2; - struct { - uint8_t m_i_frag; /* Fragment number */ - uint8_t m_i_fsize; /* Fragment size */ - uint16_t m_pad1; - uint32_t m_i_reserved2[2]; - } masix2; - } osd2; /* OS dependent 2 */ -}; - -#define i_size_high i_dir_acl - -struct __attribute__ ((packed)) ext2_super_block -{ - uint32_t s_inodes_count; /* Inodes count */ - uint32_t s_blocks_count; /* Blocks count */ - uint32_t s_r_blocks_count; /* Reserved blocks count */ - uint32_t s_free_blocks_count; /* Free blocks count */ - uint32_t s_free_inodes_count; /* Free inodes count */ - uint32_t s_first_data_block; /* First Data Block */ - uint32_t s_log_block_size; /* Block size */ - int32_t s_log_frag_size; /* Fragment size */ - uint32_t s_blocks_per_group; /* # Blocks per group */ - uint32_t s_frags_per_group; /* # Fragments per group */ - uint32_t s_inodes_per_group; /* # Inodes per group */ - uint32_t s_mtime; /* Mount time */ - uint32_t s_wtime; /* Write time */ - uint16_t s_mnt_count; /* Mount count */ - int16_t s_max_mnt_count; /* Maximal mount count */ - uint16_t s_magic; /* Magic signature */ - uint16_t s_state; /* File system state */ - uint16_t s_errors; /* Behaviour when detecting errors */ - uint16_t s_minor_rev_level; /* minor revision level */ - uint32_t s_lastcheck; /* time of last check */ - uint32_t s_checkinterval; /* max. time between checks */ - uint32_t s_creator_os; /* OS */ - uint32_t s_rev_level; /* Revision level */ - uint16_t s_def_resuid; /* Default uid for reserved blocks */ - uint16_t s_def_resgid; /* Default gid for reserved blocks */ - /* - * These fields are for EXT2_DYNAMIC_REV superblocks only. - * - * Note: the difference between the compatible feature set and - * the incompatible feature set is that if there is a bit set - * in the incompatible feature set that the kernel doesn't - * know about, it should refuse to mount the file system. - * - * e2fsck's requirements are more strict; if it doesn't know - * about a feature in either the compatible or incompatible - * feature set, it must abort and not try to meddle with - * things it doesn't understand... - */ - uint32_t s_first_ino; /* First non-reserved inode */ - uint16_t s_inode_size; /* size of inode structure */ - uint16_t s_block_group_nr; /* block group # of this superblock */ - uint32_t s_feature_compat; /* compatible feature set */ - uint32_t s_feature_incompat; /* incompatible feature set */ - uint32_t s_feature_ro_compat; /* readonly-compatible feature set */ - uint8_t s_uuid[16]; /* 128-bit uuid for volume */ - char s_volume_name[16]; /* volume name */ - char s_last_mounted[64]; /* directory where last mounted */ - uint32_t s_algorithm_usage_bitmap; /* For compression */ - /* - * Performance hints. Directory preallocation should only - * happen if the EXT2_COMPAT_PREALLOC flag is on. - */ - uint8_t s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ - uint8_t s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ - uint16_t s_padding1; - /* - * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set. - */ - uint8_t s_journal_uuid[16]; /* uuid of journal superblock */ - uint32_t s_journal_inum; /* inode number of journal file */ - uint32_t s_journal_dev; /* device number of journal file */ - uint32_t s_last_orphan; /* start of list of inodes to delete */ - - uint32_t s_reserved[197]; /* Padding to the end of the block */ -}; - -#define EXT2_DIRENT_INODE(dir_ent) (PED_LE32_TO_CPU((dir_ent).inode)) -#define EXT2_DIRENT_REC_LEN(dir_ent) (PED_LE16_TO_CPU((dir_ent).rec_len)) -#define EXT2_DIRENT_NAME_LEN(dir_ent) ((dir_ent).name_len) -#define EXT2_DIRENT_FILE_TYPE(dir_ent) ((dir_ent).file_type) - -#define EXT2_GROUP_BLOCK_BITMAP(gd) (PED_LE32_TO_CPU((gd).bg_block_bitmap)) -#define EXT2_GROUP_INODE_BITMAP(gd) (PED_LE32_TO_CPU((gd).bg_inode_bitmap)) -#define EXT2_GROUP_INODE_TABLE(gd) (PED_LE32_TO_CPU((gd).bg_inode_table)) -#define EXT2_GROUP_FREE_BLOCKS_COUNT(gd) \ - (PED_LE16_TO_CPU((gd).bg_free_blocks_count)) -#define EXT2_GROUP_FREE_INODES_COUNT(gd) \ - (PED_LE16_TO_CPU((gd).bg_free_inodes_count)) -#define EXT2_GROUP_USED_DIRS_COUNT(gd) \ - (PED_LE16_TO_CPU((gd).bg_used_dirs_count)) - -#define EXT2_INODE_MODE(inode) (PED_LE16_TO_CPU((inode).i_mode)) -#define EXT2_INODE_UID(inode) (PED_LE16_TO_CPU((inode).i_uid)) -#define EXT2_INODE_SIZE(inode) \ - ((uint64_t) PED_LE32_TO_CPU((inode).i_size) \ - + ((uint64_t) PED_LE32_TO_CPU((inode).i_size_high) << 32)) -#define EXT2_INODE_ATIME(inode) (PED_LE32_TO_CPU((inode).i_atime)) -#define EXT2_INODE_CTIME(inode) (PED_LE32_TO_CPU((inode).i_ctime)) -#define EXT2_INODE_MTIME(inode) (PED_LE32_TO_CPU((inode).i_mtime)) -#define EXT2_INODE_DTIME(inode) (PED_LE32_TO_CPU((inode).i_dtime)) -#define EXT2_INODE_GID(inode) (PED_LE16_TO_CPU((inode).i_gid)) -#define EXT2_INODE_LINKS_COUNT(inode) (PED_LE16_TO_CPU((inode).i_links_count)) -#define EXT2_INODE_BLOCKS(inode) (PED_LE32_TO_CPU((inode).i_blocks)) -#define EXT2_INODE_FLAGS(inode) (PED_LE32_TO_CPU((inode).i_flags)) -#define EXT2_INODE_TRANSLATOR(inode) (PED_LE32_TO_CPU((inode).osd1.hurd1.h_i_translator)) -#define EXT2_INODE_BLOCK(inode, blk) (PED_LE32_TO_CPU((inode).i_block[blk])) - -#define EXT2_SUPER_INODES_COUNT(sb) (PED_LE32_TO_CPU((sb).s_inodes_count)) -#define EXT2_SUPER_BLOCKS_COUNT(sb) (PED_LE32_TO_CPU((sb).s_blocks_count)) -#define EXT2_SUPER_R_BLOCKS_COUNT(sb) (PED_LE32_TO_CPU((sb).s_r_blocks_count)) -#define EXT2_SUPER_FREE_BLOCKS_COUNT(sb) \ - (PED_LE32_TO_CPU((sb).s_free_blocks_count)) -#define EXT2_SUPER_FREE_INODES_COUNT(sb) \ - (PED_LE32_TO_CPU((sb).s_free_inodes_count)) -#define EXT2_SUPER_FIRST_DATA_BLOCK(sb) \ - (PED_LE32_TO_CPU((sb).s_first_data_block)) -#define EXT2_SUPER_LOG_BLOCK_SIZE(sb) (PED_LE32_TO_CPU((sb).s_log_block_size)) -#define EXT2_SUPER_LOG_FRAG_SIZE(sb) \ - ((int32_t) PED_LE32_TO_CPU((sb).s_log_frag_size)) -#define EXT2_SUPER_BLOCKS_PER_GROUP(sb) \ - (PED_LE32_TO_CPU((sb).s_blocks_per_group)) -#define EXT2_SUPER_FRAGS_PER_GROUP(sb) \ - (PED_LE32_TO_CPU((sb).s_frags_per_group)) -#define EXT2_SUPER_INODES_PER_GROUP(sb) \ - (PED_LE32_TO_CPU((sb).s_inodes_per_group)) -#define EXT2_SUPER_MTIME(sb) (PED_LE32_TO_CPU((sb).s_mtime)) -#define EXT2_SUPER_WTIME(sb) (PED_LE32_TO_CPU((sb).s_wtime)) -#define EXT2_SUPER_MNT_COUNT(sb) (PED_LE16_TO_CPU((sb).s_mnt_count)) -#define EXT2_SUPER_MAX_MNT_COUNT(sb) \ - ((int16_t) PED_LE16_TO_CPU((sb).s_max_mnt_count)) -#define EXT2_SUPER_MAGIC(sb) (PED_LE16_TO_CPU((sb).s_magic)) -#define EXT2_SUPER_STATE(sb) (PED_LE16_TO_CPU((sb).s_state)) -#define EXT2_SUPER_ERRORS(sb) (PED_LE16_TO_CPU((sb).s_errors)) -#define EXT2_SUPER_MINOR_REV_LEVEL(sb) \ - (PED_LE16_TO_CPU((sb).s_minor_rev_level)) -#define EXT2_SUPER_LASTCHECK(sb) (PED_LE32_TO_CPU((sb).s_lastcheck)) -#define EXT2_SUPER_CHECKINTERVAL(sb) (PED_LE32_TO_CPU((sb).s_checkinterval)) -#define EXT2_SUPER_CREATOR_OS(sb) (PED_LE32_TO_CPU((sb).s_creator_os)) -#define EXT2_SUPER_REV_LEVEL(sb) (PED_LE32_TO_CPU((sb).s_rev_level)) -#define EXT2_SUPER_DEF_RESUID(sb) (PED_LE16_TO_CPU((sb).s_def_resuid)) -#define EXT2_SUPER_DEF_RESGID(sb) (PED_LE16_TO_CPU((sb).s_def_resgid)) - -#define EXT2_SUPER_FIRST_INO(sb) (PED_LE32_TO_CPU((sb).s_first_ino)) -#define EXT2_SUPER_INODE_SIZE(sb) (PED_LE16_TO_CPU((sb).s_inode_size)) -#define EXT2_SUPER_BLOCK_GROUP_NR(sb) (PED_LE16_TO_CPU((sb).s_block_group_nr)) -#define EXT2_SUPER_FEATURE_COMPAT(sb) (PED_LE32_TO_CPU((sb).s_feature_compat)) -#define EXT2_SUPER_FEATURE_INCOMPAT(sb) \ - (PED_LE32_TO_CPU((sb).s_feature_incompat)) -#define EXT2_SUPER_FEATURE_RO_COMPAT(sb) \ - (PED_LE32_TO_CPU((sb).s_feature_ro_compat)) -#define EXT2_SUPER_UUID(sb) ((sb).s_uuid) -#define EXT2_SUPER_VOLUME_NAME(sb) ((sb).s_volume_name) -#define EXT2_SUPER_LAST_MOUNTED(sb) ((sb).s_last_mounted) -#define EXT2_SUPER_ALGORITHM_USAGE_BITMAP(sb) \ - (PED_LE32_TO_CPU((sb).s_algorithm_usage_bitmap)) - -#define EXT2_SUPER_JOURNAL_UUID(sb) ((sb).s_journal_uuid) -#define EXT2_SUPER_JOURNAL_INUM(sb) (PED_LE32_TO_CPU((sb).s_journal_inum)) -#define EXT2_SUPER_JOURNAL_DEV(sb) (PED_LE32_TO_CPU((sb).s_journal_dev)) -#define EXT2_SUPER_LAST_ORPHAN(sb) (PED_LE32_TO_CPU((sb).s_last_orphan)) - -#endif diff --git a/jni/parted/libparted/fs/ext2/interface.c b/jni/parted/libparted/fs/ext2/interface.c deleted file mode 100755 index 7e0b197..0000000 --- a/jni/parted/libparted/fs/ext2/interface.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - interface.c -- parted binding glue to libext2resize - Copyright (C) 1998-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/* VERSION: libext2resize 1.1.6 (by Lennert) - * merged 1.1.11 changes (by Andrew) - */ - -#include - -#include -#include "ext2.h" - -static PedFileSystemType _ext2_type; -static PedFileSystemType _ext3_type; - -struct ext2_dev_handle* ext2_make_dev_handle_from_parted_geometry(PedGeometry* geom); - -static PedGeometry* -_ext2_generic_probe (PedGeometry* geom, int expect_ext_ver) -{ - struct ext2_super_block *sb; - const int sectors = (4096 + geom->dev->sector_size - 1) / - geom->dev->sector_size; - uint8_t *buf = alloca (sectors * geom->dev->sector_size); - if (!ped_geometry_read(geom, buf, 0, sectors)) - return NULL; - sb = (struct ext2_super_block *)(buf+1024); - - if (EXT2_SUPER_MAGIC(*sb) == EXT2_SUPER_MAGIC_CONST) { - PedSector block_size = (EXT2_MIN_BLOCK_SIZE << (EXT2_SUPER_LOG_BLOCK_SIZE(*sb))) / geom->dev->sector_size; - PedSector block_count = EXT2_SUPER_BLOCKS_COUNT(*sb); - PedSector group_blocks = EXT2_SUPER_BLOCKS_PER_GROUP(*sb); - PedSector group_nr = EXT2_SUPER_BLOCK_GROUP_NR(*sb); - PedSector first_data_block = EXT2_SUPER_FIRST_DATA_BLOCK(*sb); - int version = EXT2_SUPER_REV_LEVEL(*sb); - int is_ext3 = 0; - int is_ext4 = 0; - - is_ext3 = (EXT2_SUPER_FEATURE_COMPAT (*sb) - & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0; - if (is_ext3) { - is_ext4 = ((EXT2_SUPER_FEATURE_RO_COMPAT (*sb) - & EXT4_FEATURE_RO_COMPAT_HUGE_FILE) - || (EXT2_SUPER_FEATURE_RO_COMPAT (*sb) - & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) - || (EXT2_SUPER_FEATURE_RO_COMPAT (*sb) - & EXT4_FEATURE_RO_COMPAT_DIR_NLINK) - || (EXT2_SUPER_FEATURE_INCOMPAT (*sb) - & EXT4_FEATURE_INCOMPAT_EXTENTS) - || (EXT2_SUPER_FEATURE_INCOMPAT (*sb) - & EXT4_FEATURE_INCOMPAT_64BIT) - || (EXT2_SUPER_FEATURE_INCOMPAT (*sb) - & EXT4_FEATURE_INCOMPAT_FLEX_BG)); - if (is_ext4) - is_ext3 = 0; - } - if (expect_ext_ver == 2 && (is_ext3 || is_ext4)) - return NULL; - if (expect_ext_ver == 3 && !is_ext3) - return NULL; - else if (expect_ext_ver == 4 && !is_ext4) - return NULL; - - if (version > 0 && group_nr > 0) { - PedSector start; - PedGeometry probe_geom; - - start = geom->start - - group_blocks * group_nr - - first_data_block; - - if (start < 0) - return NULL; - ped_geometry_init (&probe_geom, geom->dev, - start, block_count * block_size); - return _ext2_generic_probe (&probe_geom, - expect_ext_ver); - } else { - return ped_geometry_new (geom->dev, geom->start, - block_count * block_size); - } - } - - return NULL; -} - -static PedGeometry* -_ext2_probe (PedGeometry* geom) -{ - return _ext2_generic_probe (geom, 2); -} - -static PedGeometry* -_ext3_probe (PedGeometry* geom) -{ - return _ext2_generic_probe (geom, 3); -} - -static PedGeometry* -_ext4_probe (PedGeometry* geom) -{ - return _ext2_generic_probe (geom, 4); -} - -static PedFileSystemOps _ext2_ops = { - probe: _ext2_probe, -}; - -static PedFileSystemOps _ext3_ops = { - probe: _ext3_probe, -}; - -static PedFileSystemOps _ext4_ops = { - probe: _ext4_probe, -}; - -static PedFileSystemType _ext2_type = { - next: NULL, - ops: &_ext2_ops, - name: "ext2", -}; - -static PedFileSystemType _ext3_type = { - next: NULL, - ops: &_ext3_ops, - name: "ext3", -}; - -static PedFileSystemType _ext4_type = { - next: NULL, - ops: &_ext4_ops, - name: "ext4", -}; - -void ped_file_system_ext2_init () -{ - ped_file_system_type_register (&_ext2_type); - ped_file_system_type_register (&_ext3_type); - ped_file_system_type_register (&_ext4_type); -} - -void ped_file_system_ext2_done () -{ - ped_file_system_type_unregister (&_ext2_type); - ped_file_system_type_unregister (&_ext3_type); - ped_file_system_type_unregister (&_ext4_type); -} diff --git a/jni/parted/libparted/fs/f2fs/f2fs.c b/jni/parted/libparted/fs/f2fs/f2fs.c deleted file mode 100755 index 68ed092..0000000 --- a/jni/parted/libparted/fs/f2fs/f2fs.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - libparted/fs/f2fs - Flash-Friendly File System - Copyright (C) 2020-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -#include "f2fs.h" - -static PedGeometry* -f2fs_probe (PedGeometry* geom) -{ - struct f2fs_super_block *sb = alloca(geom->dev->sector_size); - - if (!ped_geometry_read (geom, sb, F2FS_SB_OFFSET, 1)) - return NULL; - - if (PED_LE32_TO_CPU(sb->magic) == F2FS_MAGIC) - return ped_geometry_new (geom->dev, geom->start, geom->length); - - return NULL; -} - -static PedFileSystemOps f2fs_ops = { - probe: f2fs_probe, -}; - -static PedFileSystemType f2fs_type = { - next: NULL, - ops: &f2fs_ops, - name: "f2fs", -}; - -void -ped_file_system_f2fs_init () -{ - ped_file_system_type_register (&f2fs_type); -} - -void -ped_file_system_f2fs_done () -{ - ped_file_system_type_unregister (&f2fs_type); -} diff --git a/jni/parted/libparted/fs/f2fs/f2fs.h b/jni/parted/libparted/fs/f2fs/f2fs.h deleted file mode 100755 index 9341337..0000000 --- a/jni/parted/libparted/fs/f2fs/f2fs.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - libparted/fs/f2fs - Flash-Friendly File System - Copyright (C) 2020-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ -#ifndef _F2FS_H -#define _F2FS_H - -#define F2FS_MAGIC 0xF2F52010 -#define F2FS_MAX_VOLUME_NAME 512 -#define F2FS_SB_OFFSET 0x02 - -struct f2fs_super_block { - uint32_t magic; /* Magic Number */ - uint16_t major_ver; /* Major Version */ - uint16_t minor_ver; /* Minor Version */ - uint32_t log_sectorsize; /* log2 sector size in bytes */ - uint32_t log_sectors_per_block; /* log2 # of sectors per block */ - uint32_t log_blocksize; /* log2 block size in bytes */ - uint32_t log_blocks_per_seg; /* log2 # of blocks per segment */ - uint32_t segs_per_sec; /* # of segments per section */ - uint32_t secs_per_zone; /* # of sections per zone */ - uint32_t checksum_offset; /* checksum offset inside super block */ - uint64_t block_count; /* total # of user blocks */ - uint32_t section_count; /* total # of sections */ - uint32_t segment_count; /* total # of segments */ - uint32_t segment_count_ckpt; /* # of segments for checkpoint */ - uint32_t segment_count_sit; /* # of segments for SIT */ - uint32_t segment_count_nat; /* # of segments for NAT */ - uint32_t segment_count_ssa; /* # of segments for SSA */ - uint32_t segment_count_main; /* # of segments for main area */ - uint32_t segment0_blkaddr; /* start block address of segment 0 */ - uint32_t cp_blkaddr; /* start block address of checkpoint */ - uint32_t sit_blkaddr; /* start block address of SIT */ - uint32_t nat_blkaddr; /* start block address of NAT */ - uint32_t ssa_blkaddr; /* start block address of SSA */ - uint32_t main_blkaddr; /* start block address of main area */ - uint32_t root_ino; /* root inode number */ - uint32_t node_ino; /* node inode number */ - uint32_t meta_ino; /* meta inode number */ - uint8_t uuid[16]; /* 128-bit uuid for volume */ - uint16_t volume_name[F2FS_MAX_VOLUME_NAME]; /* volume name */ -} __attribute__((packed)); - -#endif diff --git a/jni/parted/libparted/fs/fat/bootsector.c b/jni/parted/libparted/fs/fat/bootsector.c deleted file mode 100755 index f02685b..0000000 --- a/jni/parted/libparted/fs/fat/bootsector.c +++ /dev/null @@ -1,271 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2002, 2004, 2007, 2009-2014, 2019-2023 Free - Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" - -#include -#include -#include -#include -#include -#include -#include - -/* Reads in the boot sector (superblock), and does a minimum of sanity - * checking. The goals are: - * - to detect fat file systems, even if they are damaged [i.e. not - * return an error / throw an exception] - * - to fail detection if there's not enough information for - * fat_boot_sector_probe_type() to work (or possibly crash on a divide-by-zero) - */ -int -fat_boot_sector_read (FatBootSector** bsp, const PedGeometry *geom) -{ - PED_ASSERT (bsp != NULL); - PED_ASSERT (geom != NULL); - - if (!ped_geometry_read_alloc (geom, (void **)bsp, 0, 1)) - return 0; - FatBootSector *bs = *bsp; - - if (PED_LE16_TO_CPU (bs->boot_sign) != 0xAA55) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid signature for a FAT " - "file system.")); - return 0; - } - - if (!bs->sector_size - || PED_LE16_TO_CPU (bs->sector_size) % PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid sector size for a FAT " - "file system.")); - return 0; - } - - if (!bs->cluster_size) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid cluster size for a FAT " - "file system.")); - return 0; - } - - if (!bs->reserved) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid number of reserved " - "sectors for a FAT file system.")); - return 0; - } - - if (bs->fats < 1 || bs->fats > 4) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid number of FATs.")); - return 0; - } - - return 1; -} - -/* - Don't trust the FAT12, FAT16 or FAT32 label string. - */ -FatType _GL_ATTRIBUTE_PURE -fat_boot_sector_probe_type (const FatBootSector* bs, const PedGeometry* geom) -{ - PedSector logical_sector_size; - PedSector first_cluster_sector; - FatCluster cluster_count; - - if (!PED_LE16_TO_CPU (bs->dir_entries)) - return FAT_TYPE_FAT32; - - logical_sector_size = PED_LE16_TO_CPU (bs->sector_size) / 512; - - first_cluster_sector - = PED_LE16_TO_CPU (bs->reserved) * logical_sector_size - + 2 * PED_LE16_TO_CPU (bs->fat_length) * logical_sector_size - + PED_LE16_TO_CPU (bs->dir_entries) - / (512 / sizeof (FatDirEntry)); - cluster_count = (geom->length - first_cluster_sector) - / bs->cluster_size / logical_sector_size; - if (cluster_count > MAX_FAT12_CLUSTERS) - return FAT_TYPE_FAT16; - else - return FAT_TYPE_FAT12; -} - -static int -_fat_table_entry_size (FatType fat_type) -{ - switch (fat_type) { - case FAT_TYPE_FAT12: - return 2; /* FIXME: how? */ - - case FAT_TYPE_FAT16: - return 2; - - case FAT_TYPE_FAT32: - return 4; - } - - return 0; -} - -/* Analyses the boot sector, and sticks appropriate numbers in - fs->type_specific. - - Note: you need to subtract (2 * cluster_sectors) off cluster offset, - because the first cluster is number 2. (0 and 1 are not real clusters, - and referencing them is a bug) - */ -int -fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - int fat_entry_size; - - PED_ASSERT (bs != NULL); - - fs_info->logical_sector_size = PED_LE16_TO_CPU (bs->sector_size) / 512; - - fs_info->sectors_per_track = PED_LE16_TO_CPU (bs->secs_track); - fs_info->heads = PED_LE16_TO_CPU (bs->heads); - if (fs_info->sectors_per_track < 1 || fs_info->sectors_per_track > 63 - || fs_info->heads < 1 || fs_info->heads > 255) { - PedCHSGeometry* bios_geom = &fs->geom->dev->bios_geom; - int cyl_count = 0; - - if (fs_info->heads > 0 && fs_info->sectors_per_track > 0) - cyl_count = fs->geom->dev->length / fs_info->heads - / fs_info->sectors_per_track; - - switch (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("The file system's CHS geometry is (%d, %d, %d), " - "which is invalid. The partition table's CHS " - "geometry is (%d, %d, %d)."), - cyl_count, fs_info->heads, fs_info->sectors_per_track, - bios_geom->cylinders, bios_geom->heads, - bios_geom->sectors)) { - - case PED_EXCEPTION_CANCEL: - return 0; - - case PED_EXCEPTION_IGNORE: - break; - - default: - break; - } - } - - if (bs->sectors) - fs_info->sector_count = PED_LE16_TO_CPU (bs->sectors) - * fs_info->logical_sector_size; - else - fs_info->sector_count = PED_LE32_TO_CPU (bs->sector_count) - * fs_info->logical_sector_size; - - fs_info->fat_table_count = bs->fats; - fs_info->root_dir_entry_count = PED_LE16_TO_CPU (bs->dir_entries); - fs_info->fat_offset = PED_LE16_TO_CPU (bs->reserved) - * fs_info->logical_sector_size; - fs_info->cluster_sectors = bs->cluster_size - * fs_info->logical_sector_size; - fs_info->cluster_size = fs_info->cluster_sectors * 512; - - if (fs_info->logical_sector_size == 0) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("FAT boot sector says logical sector size is 0. " - "This is weird. ")); - return 0; - } - if (fs_info->fat_table_count == 0) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("FAT boot sector says there are no FAT tables. This " - "is weird. ")); - return 0; - } - if (fs_info->cluster_sectors == 0) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("FAT boot sector says clusters are 0 sectors. This " - "is weird. ")); - return 0; - } - - fs_info->fat_type = fat_boot_sector_probe_type (bs, fs->geom); - if (fs_info->fat_type == FAT_TYPE_FAT12) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("File system is FAT12, which is unsupported.")); - return 0; - } - if (fs_info->fat_type == FAT_TYPE_FAT16) { - fs_info->fat_sectors = PED_LE16_TO_CPU (bs->fat_length) - * fs_info->logical_sector_size; - fs_info->serial_number - = PED_LE32_TO_CPU (bs->u.fat16.serial_number); - fs_info->root_cluster = 0; - fs_info->root_dir_offset - = fs_info->fat_offset - + fs_info->fat_sectors * fs_info->fat_table_count; - fs_info->root_dir_sector_count - = fs_info->root_dir_entry_count * sizeof (FatDirEntry) - / (512 * fs_info->logical_sector_size); - fs_info->cluster_offset - = fs_info->root_dir_offset - + fs_info->root_dir_sector_count; - } - if (fs_info->fat_type == FAT_TYPE_FAT32) { - fs_info->fat_sectors = PED_LE32_TO_CPU (bs->u.fat32.fat_length) - * fs_info->logical_sector_size; - fs_info->serial_number - = PED_LE32_TO_CPU (bs->u.fat32.serial_number); - fs_info->info_sector_offset - = PED_LE16_TO_CPU (fs_info->boot_sector->u.fat32.info_sector) - * fs_info->logical_sector_size; - fs_info->boot_sector_backup_offset - = PED_LE16_TO_CPU (fs_info->boot_sector->u.fat32.backup_sector) - * fs_info->logical_sector_size; - fs_info->root_cluster - = PED_LE32_TO_CPU (bs->u.fat32.root_dir_cluster); - fs_info->root_dir_offset = 0; - fs_info->root_dir_sector_count = 0; - fs_info->cluster_offset - = fs_info->fat_offset - + fs_info->fat_sectors * fs_info->fat_table_count; - } - - fs_info->cluster_count - = (fs_info->sector_count - fs_info->cluster_offset) - / fs_info->cluster_sectors; - - fat_entry_size = _fat_table_entry_size (fs_info->fat_type); - if (fs_info->cluster_count + 2 - > fs_info->fat_sectors * 512 / fat_entry_size) - fs_info->cluster_count - = fs_info->fat_sectors * 512 / fat_entry_size - 2; - - fs_info->dir_entries_per_cluster - = fs_info->cluster_size / sizeof (FatDirEntry); - return 1; -} diff --git a/jni/parted/libparted/fs/fat/bootsector.h b/jni/parted/libparted/fs/fat/bootsector.h deleted file mode 100755 index 328ba2f..0000000 --- a/jni/parted/libparted/fs/fat/bootsector.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_FAT_BOOTSECTOR_H -#define PED_FAT_BOOTSECTOR_H - -typedef struct _FatBootSector FatBootSector; -typedef struct _FatInfoSector FatInfoSector; - -#include "fat.h" - -#define FAT32_INFO_MAGIC1 0x41615252 -#define FAT32_INFO_MAGIC2 0x61417272 -#define FAT32_INFO_MAGIC3 0xaa55 - -/* stolen from mkdosfs, by Dave Hudson */ - -#define FAT_BOOT_MESSAGE \ -"This partition does not have an operating system loader installed on it.\n\r"\ -"Press a key to reboot..." - -#define FAT_BOOT_JUMP "\xeb\x58\x90" /* jmp +5a */ - -#define FAT_BOOT_CODE "\x0e" /* push cs */ \ - "\x1f" /* pop ds */ \ - "\xbe\x74\x7e" /* mov si, offset message */ \ - /* write_msg_loop: */ \ - "\xac" /* lodsb */ \ - "\x22\xc0" /* and al, al */ \ - "\x74\x06" /* jz done (+8) */ \ - "\xb4\x0e" /* mov ah, 0x0e */ \ - "\xcd\x10" /* int 0x10 */ \ - "\xeb\xf5" /* jmp write_msg_loop */ \ - /* done: */ \ - "\xb4\x00" /* mov ah, 0x00 */ \ - "\xcd\x16" /* int 0x16 */ \ - "\xb4\x00" /* mov ah, 0x00 */ \ - "\xcd\x19" /* int 0x19 */ \ - "\xeb\xfe" /* jmp +0 - in case int 0x19 */ \ - /* doesn't work */ \ - /* message: */ \ - FAT_BOOT_MESSAGE - -#define FAT_BOOT_CODE_LENGTH 128 - -struct __attribute__ ((packed)) _FatBootSector { - uint8_t boot_jump[3]; /* 00: Boot strap short or near jump */ - uint8_t system_id[8]; /* 03: system name */ - uint16_t sector_size; /* 0b: bytes per logical sector */ - uint8_t cluster_size; /* 0d: sectors/cluster */ - uint16_t reserved; /* 0e: reserved sectors */ - uint8_t fats; /* 10: number of FATs */ - uint16_t dir_entries; /* 11: number of root directory entries */ - uint16_t sectors; /* 13: if 0, total_sect supersedes */ - uint8_t media; /* 15: media code */ - uint16_t fat_length; /* 16: sectors/FAT for FAT12/16 */ - uint16_t secs_track; /* 18: sectors per track */ - uint16_t heads; /* 1a: number of heads */ - uint32_t hidden; /* 1c: hidden sectors (partition start) */ - uint32_t sector_count; /* 20: no. of sectors (if sectors == 0) */ - - union __attribute__ ((packed)) { - /* FAT16 fields */ - struct __attribute__ ((packed)) { - uint8_t drive_num; /* 24: */ - uint8_t empty_1; /* 25: */ - uint8_t ext_signature; /* 26: always 0x29 */ - uint32_t serial_number; /* 27: */ - uint8_t volume_name [11]; /* 2b: */ - uint8_t fat_name [8]; /* 36: */ - uint8_t boot_code[448]; /* 3f: Boot code (or message) */ - } fat16; - /* FAT32 fields */ - struct __attribute__ ((packed)) { - uint32_t fat_length; /* 24: size of FAT in sectors */ - uint16_t flags; /* 28: bit8: fat mirroring, low4: active fat */ - uint16_t version; /* 2a: minor * 256 + major */ - uint32_t root_dir_cluster; /* 2c: */ - uint16_t info_sector; /* 30: */ - uint16_t backup_sector; /* 32: */ - uint8_t empty_1 [12]; /* 34: */ - uint16_t drive_num; /* 40: */ - uint8_t ext_signature; /* 42: always 0x29 */ - uint32_t serial_number; /* 43: */ - uint8_t volume_name [11]; /* 47: */ - uint8_t fat_name [8]; /* 52: */ - uint8_t boot_code[420]; /* 5a: Boot code (or message) */ - } fat32; - } u; - - uint16_t boot_sign; /* 1fe: always 0xAA55 */ -}; - -struct __attribute__ ((packed)) _FatInfoSector { - uint32_t signature_1; /* should be 0x41615252 */ - uint8_t unused [480]; - uint32_t signature_2; /* should be 0x61417272 */ - uint32_t free_clusters; - uint32_t next_cluster; /* most recently allocated cluster */ - uint8_t unused2 [0xe]; - uint16_t signature_3; /* should be 0xaa55 */ -}; - -int fat_boot_sector_read (FatBootSector** bs, const PedGeometry* geom); -FatType fat_boot_sector_probe_type (const FatBootSector* bs, - const PedGeometry* geom); -int fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* fs); - - -#endif /* PED_FAT_BOOTSECTOR_H */ diff --git a/jni/parted/libparted/fs/fat/count.h b/jni/parted/libparted/fs/fat/count.h deleted file mode 100755 index bb7d6af..0000000 --- a/jni/parted/libparted/fs/fat/count.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - libparted - Copyright (C) 1999-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef COUNT_H_INCLUDED -#define COUNT_H_INCLUDED - -typedef enum _FatClusterFlag FatClusterFlag; -typedef struct _FatClusterInfo FatClusterInfo; - -enum _FatClusterFlag { - FAT_FLAG_FREE=0, - FAT_FLAG_FILE=1, - FAT_FLAG_DIRECTORY=2, - FAT_FLAG_BAD=3 -}; - -struct __attribute__ ((packed)) _FatClusterInfo { - unsigned int units_used:6; /* 1 unit = cluster_size / 64 */ - FatClusterFlag flag:2; -}; - -extern int fat_collect_cluster_info (PedFileSystem *fs); -extern FatClusterFlag fat_get_cluster_flag (PedFileSystem* fs, - FatCluster cluster); -extern PedSector fat_get_cluster_usage (PedFileSystem* fs, FatCluster cluster); -extern FatClusterFlag fat_get_fragment_flag (PedFileSystem* fs, - FatFragment frag); -extern int fat_is_fragment_active (PedFileSystem* fs, FatFragment frag); - -#endif /* COUNT_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/fat/fat.c b/jni/parted/libparted/fs/fat/fat.c deleted file mode 100755 index c04f178..0000000 --- a/jni/parted/libparted/fs/fat/fat.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - libparted - Copyright (C) 1998-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include -#include -#include - -#include "fat.h" - -PedFileSystem* -fat_alloc (const PedGeometry* geom) -{ - PedFileSystem* fs; - - fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem)); - if (!fs) - goto error; - - fs->type_specific = (FatSpecific*) ped_malloc (sizeof (FatSpecific)); - if (!fs->type_specific) - goto error_free_fs; - FatSpecific* fs_info = (FatSpecific*) fs->type_specific; - fs_info->boot_sector = NULL; - fs_info->info_sector = NULL; - fs->geom = ped_geometry_duplicate (geom); - if (!fs->geom) - goto error_free_type_specific; - - fs->checked = 0; - return fs; - -error_free_type_specific: - free (fs->type_specific); -error_free_fs: - free (fs); -error: - return NULL; -} - -void -fat_free (PedFileSystem* fs) -{ - FatSpecific* fs_info = (FatSpecific*) fs->type_specific; - free (fs_info->boot_sector); - ped_geometry_destroy (fs->geom); - free (fs->type_specific); - free (fs); -} - -PedGeometry* -fat_probe (PedGeometry* geom, FatType* fat_type) -{ - PedFileSystem* fs; - FatSpecific* fs_info; - PedGeometry* result; - - fs = fat_alloc (geom); - if (!fs) - goto error; - fs_info = (FatSpecific*) fs->type_specific; - - if (!fat_boot_sector_read (&fs_info->boot_sector, geom)) - goto error_free_fs; - if (!fat_boot_sector_analyse (fs_info->boot_sector, fs)) - goto error_free_fs; - - *fat_type = fs_info->fat_type; - result = ped_geometry_new (geom->dev, geom->start, - fs_info->sector_count); - - fat_free (fs); - return result; - -error_free_fs: - fat_free (fs); -error: - return NULL; -} - -PedGeometry* -fat_probe_fat16 (PedGeometry* geom) -{ - FatType fat_type; - PedGeometry* probed_geom = fat_probe (geom, &fat_type); - - if (probed_geom) { - if (fat_type == FAT_TYPE_FAT16) - return probed_geom; - ped_geometry_destroy (probed_geom); - } - return NULL; -} - -PedGeometry* -fat_probe_fat32 (PedGeometry* geom) -{ - FatType fat_type; - PedGeometry* probed_geom = fat_probe (geom, &fat_type); - - if (probed_geom) { - if (fat_type == FAT_TYPE_FAT32) - return probed_geom; - ped_geometry_destroy (probed_geom); - } - return NULL; -} - -static PedFileSystemOps fat16_ops = { - probe: fat_probe_fat16, -}; - -static PedFileSystemOps fat32_ops = { - probe: fat_probe_fat32, -}; - -PedFileSystemType fat16_type = { - next: NULL, - ops: &fat16_ops, - name: "fat16", -}; - -PedFileSystemType fat32_type = { - next: NULL, - ops: &fat32_ops, - name: "fat32", -}; - -void -ped_file_system_fat_init () -{ - if (sizeof (FatBootSector) != 512) { - ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL, - _("GNU Parted was miscompiled: the FAT boot sector " - "should be 512 bytes. FAT support will be disabled.")); - } else { - ped_file_system_type_register (&fat16_type); - ped_file_system_type_register (&fat32_type); - } -} - -void -ped_file_system_fat_done () -{ - ped_file_system_type_unregister (&fat16_type); - ped_file_system_type_unregister (&fat32_type); -} diff --git a/jni/parted/libparted/fs/fat/fat.h b/jni/parted/libparted/fs/fat/fat.h deleted file mode 100755 index f5302d9..0000000 --- a/jni/parted/libparted/fs/fat/fat.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - libparted - Copyright (C) 1998-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef FAT_H_INCLUDED -#define FAT_H_INCLUDED - -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include -#include -#include - -#define BUFFER_SIZE 1024 /* buffer size in sectors (512 bytes) */ - -typedef uint32_t FatCluster; -typedef int32_t FatFragment; - -enum _FatType { - FAT_TYPE_FAT12, - FAT_TYPE_FAT16, - FAT_TYPE_FAT32 -}; -typedef enum _FatType FatType; - -typedef struct _FatSpecific FatSpecific; -typedef struct _FatDirEntry FatDirEntry; - -#include "bootsector.h" -#include "count.h" - -struct _FatTable { - void* table; - FatCluster size; - int raw_size; - - FatType fat_type; - FatCluster cluster_count; - FatCluster free_cluster_count; - FatCluster bad_cluster_count; - - FatCluster last_alloc; -}; -typedef struct _FatTable FatTable; - -struct __attribute__ ((packed)) _FatDirEntry { - char name[8]; - uint8_t extension[3]; - uint8_t attributes; - uint8_t is_upper_case_name; - uint8_t creation_time_low; /* milliseconds */ - uint16_t creation_time_high; - uint16_t creation_date; - uint16_t access_date; - uint16_t first_cluster_high; /* for FAT32 */ - uint16_t time; - uint16_t date; - uint16_t first_cluster; - uint32_t length; -}; - -struct _FatSpecific { - FatBootSector *boot_sector; /* structure of boot sector */ - FatInfoSector *info_sector; /* fat32-only information sector */ - - int logical_sector_size; /* illogical sector size :-) */ - PedSector sector_count; - - int sectors_per_track; /* BIOS CHS stuff (S) */ - int heads; /* BIOS CHS stuff (H) */ - - int cluster_size; - PedSector cluster_sectors; - FatCluster cluster_count; - int dir_entries_per_cluster; - - FatType fat_type; - int fat_table_count; - PedSector fat_sectors; - - uint32_t serial_number; - - PedSector info_sector_offset; /* FAT32 only */ - PedSector fat_offset; - PedSector root_dir_offset; /* non-FAT32 */ - PedSector cluster_offset; - PedSector boot_sector_backup_offset; - - FatCluster root_cluster; /* FAT32 only */ - int root_dir_entry_count; /* non-FAT32 */ - PedSector root_dir_sector_count; /* non-FAT32 */ - FatCluster total_dir_clusters; - - FatTable* fat; - FatClusterInfo* cluster_info; - - PedSector buffer_sectors; - char* buffer; - - int frag_size; - PedSector frag_sectors; - FatFragment frag_count; - FatFragment buffer_frags; - FatFragment cluster_frags; -}; - -#define FAT_SPECIFIC(fs) ((FatSpecific*) fs->type_specific) - -#define FAT_ROOT 0 - -#define DELETED_FLAG 0xe5 - -#define READONLY_ATTR 0x01 -#define HIDDEN_ATTR 0x02 -#define SYSTEM_ATTR 0x04 -#define VOLUME_LABEL_ATTR 0x08 -#define VFAT_ATTR 0x0f -#define DIRECTORY_ATTR 0x10 -#define ARCH_ATTR 0x20 - -#define MAX_FAT12_CLUSTERS 4086 -#define MAX_FAT16_CLUSTERS 65526 -#define MAX_FAT32_CLUSTERS 2000000 - -#define FAT_ROOT_DIR_ENTRY_COUNT 512 - -extern PedFileSystemType fat16_type; -extern PedFileSystemType fat32_type; - -extern void fat_print (const PedFileSystem* fs); - -extern PedFileSystem* fat_alloc (const PedGeometry* geom); -extern void fat_free (PedFileSystem* fs); -extern int fat_alloc_buffers (PedFileSystem* fs); - -extern int fat_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer); - -#endif /* FAT_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/hfs/DOC b/jni/parted/libparted/fs/hfs/DOC deleted file mode 100755 index 9ee8b4d..0000000 --- a/jni/parted/libparted/fs/hfs/DOC +++ /dev/null @@ -1,92 +0,0 @@ -WARNING : Both HFS and HFS+ implementations of Linux 2.4 are buggy, at -least when used before or after this implementation. Some workarounds -are used in this implementation, but there can still be incompatibilities. -Try Linux 2.6 if you want to play with HFS(+) resizing (though some bugs -might also be there in 2.6, there is of course no warranty) - ---- - - Technical doc about Apple HFS and HFS+ file systems is available at : - * For HFS, section "Data Organization on Volumes", - "Chapter 2 - File Manager" - of the book "Inside Macintosh: Files" - http://developer.apple.com/documentation/mac/Files/Files-99.html - * For HFS+, "Technical Note TN1150", "HFS Plus Volume Format" - http://developer.apple.com/technotes/tn/tn1150.html - - Some useful HFS precisions concerning alignement, bit ordering, and - order of fields for extent key comparaisons are only in the HFS+ TN - - These Apple Creator Codes are reserved for us : - Shnk traP GP16 GnuP PH+x Xpnd Resz GP17 GP18 GP19 GP20 - ---- - -* Cache design * - -Versions before HFS Patch 15 were very slow when data relocation was needed, -because every extent to relocate involved scanning the whole file system, -looking for a reference to its physical position on the volume (this was a -dummy algorithm, I know :) - -HFS Patch 16 introduced a cache that allows to efficiently retrieve the place -of the reference in the file system given the physical position of an extent. -The cache is designed for : - efficiency - - scaling - - simplicity - - avoiding memory allocation while resizing - -This cache involves quite big worst case memory consumption, but without it -the time needed to complete the operation in the worst case would be huge -anyway (maybe several years...) so this isn't really an issue. The cache size -is nearly proportional to the number of files you have, or if you have very few -files, to the size of your volume, so worst cases situations occure when you -fill a drive with millions of < 4 ko files :p For this very special usage you -will just need a very special amount of RAM (on typical systems about -(FS size) / 256 )... On a more "normal" volume it's about -(# of files) * 20 bytes. With very few files it's about (FS Size) / 1024 / 256. - -At the beginning of the resize process, the cache is filed by scanning the FS. -The position of each extent is cut into 2 parts : high order is used as -an index into a table of pointer to a linked list which contains : -- the next ptr (sizeof struct *) -- the extent start (4 bytes) -- the extent size (4 bytes) -- number of BTree block or 0 if in prim (4 bytes) -- offset of the extent start reference - from the block beginning (2 bytes) -- sectors by BTree block, or - 1 for VH/MDB (1 byte) -- FS special file / primary structure - where the extent reference is stored (1 byte) - (3 bits for the extent index, 5 for - the actual ref) - - 0 : dont exists --- reserved - 1 : mdb / vh : catalog --- - 2 : mdb / vh : extent --- - 3 : vh : attributes X+- - 4 : vh : allocation X+- - 5 : vh : startup X+- - 6 : catalog --- - 7 : attributes X+- - 8 : extent (nothing to update) --- - 9 : extent (update catalog) --- - 10 : extent (update extent !?!) --- should not exist - 11 : extent (update attributes) X+- - 12 : extent (update allocation) X+- - 13 : extent (update startup) X+- reserved - 14 : vh : journal info block X+J - 15 : jib: journal X+J - 16 - 31 : --- - -mdb : Master Directory Block -vh : Volume Header -X+ : HFSX or HFS+ only -J : Journaled only - -Large amount of memory is allocated at once (first enough memory to fit -every files if there isn't any fragmentation +6.25%, then this value / 4, -if this wasn't enough). On a typical FS, the first allocation should be enough. - ---- diff --git a/jni/parted/libparted/fs/hfs/HISTORY b/jni/parted/libparted/fs/hfs/HISTORY deleted file mode 100755 index 5e138a6..0000000 --- a/jni/parted/libparted/fs/hfs/HISTORY +++ /dev/null @@ -1,115 +0,0 @@ -## modifications dd-mm-yyyy ----------------------- PATCH FOR PARTED 1.6.5 ---------------------------- - 1 initial revision 07-04-2003 - 2 one pass resizing, removal of debug info 08-04-2003 - 3 safe abort if resize failed, code cleanups, timer, 10-04-2003 - source file split, won't resize if not unmounted, - only relocate data if needed, minimize disk operations - 4 memory leaks removal, code cleanups, resize hfs+ code, 17-04-2003 - more checks, minor hfs resize bugfix, probe code - returns real geometry - 5 hfs+ resize bugfixes : 19-04-2003 - * fragmented fs could be corrupted - * VH wasn't written on error during alloc map writing - * attributes file could be corrupted - 6 Use PedSector to be able to use 2To+ HD 23-04-2003 - Minor probe bugfix, Cleanups, HFS+ Timer tuning, - 7 80 columns indentation 23-04-2003 - 8 Bugfix free blocks calculation in wrapper - (makes Mac OS boot !) 28-04-2003 ----------------------- PATCH FOR PARTED 1.6.6 ---------------------------- - 9 Don't destroy the file being worked on in case of - interruption of Parted 28-10-2003 ----------------------- PATCH FOR PARTED 1.6.10 --------------------------- -10 Regression tests, URL correction, In effect_move_extent : - corrected memory leak & corrected a bug in precondition checks - Added error messages, Check ped_alloc results - Use macro for test / set / clear in the allocation bitmap - Light probe correction, Check return value of get_empty_end - Moved dynamic memory allocation out of effect_move_extent - Check HFS+ version, Set implementation creator code - Check journal absence, Corrected a bug in HFS+ block number - calculation 24-04-2004 ---------------------- PATCH FOR PARTED 1.6.11 ---------------------------- -11-Some pointer dereference moved after non nul assertion - -Error messages for HFS(+) file IO - -Memory leak correction in hfs(plus)_read_bad_blocks - -Mark out of volume blocks as used - (improve compatibility with broken HFS+ Linux - implementation) - WARNING : this fix is not 100% tn1150 compatible : - "The allocation file may be larger than the minimum - number of bits required for the given volume size. - Any unused bits in the bitmap must be set to _zero_." - Anyway neither is the Linux implementation, nor was my - previous implementations - Maybe I should ask Apple to change the specifications - -HISTORY, DOC and TODO files 29-04-2004 -12 Corrected a bug in hfsplus_volume_resize : size of alloc - bitmap could be miscalculated 29-04-2004 ---------------------- PATCH FOR PARTED 1.6.12 ---------------------------- -13-Finally partial rewrite of *_search_move_* - Easier to maintain and prepare for extent search and - relocation algorithm changes for better ones. - -"An extent has not been relocated!" message now only when - relocation requested - -Slightly better and simpler relocation algorithm - -Update of Makefile.in and Makefile.am in fs_hfs - -Sign correction for some 8bits HFS integers - -Added the option --enable-hfs-extract-fs in 'configure' - -Added every ped_geometry_sync where needed - -Bugfix : "A root node does not need to exist - (if the tree is empty)." - - now handled correctly in btree_search - -Bugfix : failure wasn't detected in some cases - during 2 pass relocation (*_search_move_*) - -Bugfix : The extent key comparaison was done in a wrong order - and a pad field was used during the comparaison - -Bugfix : in hfs_file_find_sector and hfsplus_file_find_sector - the absolute position of a file sector could be - miscalculated in case of fragmentation, resulting - in potential data corruption, or various errors - -Bugfix : The end of the HFS bitmap compatibility block was - miscalculated ( (1<<16)/8 instead of (1<<16) ) - in hfs_resize - 07-09-2004 ---------------------- PATCH FOR PARTED 1.6.14 ---------------------------- -14 Port of Patch 13 for Parted 1.6.14 (update timestamps) - 08-09-2004 ---------------------- PATCH FOR PARTED 1.6.15 ---------------------------- -15-hfsplus_open : added a warning message if the "attributes" - special file exists - -hfsplus_open : added a test to check if the "allocation" - special file has been correctly opened - -optimisation of hfs+ block access : don't recalculate - the address of each sector, and avoid checking the cache if - obviously not useful - ( hfsplus_file_read && hfsplus_file_write - && hfsplus_file_find_extent && hfs_file_find_sector) - -cut the "hfs.c" file in several parts - -Bugfix: in hfsplus_do_move_primary, hfs_effect_move_extent - was called instead of hfsplus_effect_move_extent !!! - This could not produce data corruption, because of a welcome - ASSERT in *_effect_move_extent that would detect the bug :) - -Bugfix: in hfs_effect_move_extent, do - PED_ASSERT(*ptr_to_fblock <= *ptr_fblock, return -1); - instead of - PED_ASSERT(*ptr_to_fblock < *ptr_fblock, return -1); - and added that assertion to hfsplus_effect_move_extent - -Bugfix: bugs introduced in rewrite of hfsplus_file_read - && hfsplus_file_write : last sector was incorrectly detected - as out of file. - -Cache the extent references (speed improvement ?) - 23-09-2004 -16-Bugfix: in hfsplus_do_move (reloc_plus.c), case CR_BTREE_EXT_ATTR - incorrectly updated the cached part of priv_data->catalog_file - instead of priv_data->attributes_file - -Bugfix: in hfs_read_bad_blocks && hfsplus_read_bad_blocks, - now generate an error if file_ID or type mismatch after the - first pass - Also check return value of ped_malloc - -Bugfix: in hfsplus_btree_search, check return value of ped_malloc - 29-09-2004 ----------------- INTEGRATION IN PARTED 1.6.22 (cvs) ---------------------- -Futur changes will be described in ../../ChangeLog - 02-02-2005 diff --git a/jni/parted/libparted/fs/hfs/TODO b/jni/parted/libparted/fs/hfs/TODO deleted file mode 100755 index 6e408e3..0000000 --- a/jni/parted/libparted/fs/hfs/TODO +++ /dev/null @@ -1,27 +0,0 @@ ---- TODO --- - - * Continue to write regressions tests and try on 2.6 kernel -- (high) - * Fix timer progression calculation, according to the new - caching code -- (high) - * write doc, website, ... -- (high) - * Check block allocation in linux 2.4 and remove - compatibility code if possible -- (high) - - * In hfs(plus)_btree_search , use a static variable to detect - illegal recursion and abort in that case. (find the right - number of recursion before reporting bug) -- easy -- (medium) - * Finish the HFS Extractor -- (medium) - (add mdb & vh extraction, and maybe journal) - - * Write code to allow enlarging and moving HFS[+x] -- (low) - * Use a bitmap to internaly store the bad blocks -- (low) - * Less bitmap saves ? -- (low) - * Continue to change the relocation algorithm - for a better one :) -- (low) - ---- NOT todo --- - - * debug HFS(+) Linux implementation (block allocation for HFS+, - hard and sym links for HFS+, filename length for HFS, ...) -- (dont) - /// Linux 2.6 contains HFS(+) implementations with less bugs - /// Linux 2.4 should not be used anymore to access HFS(+) diff --git a/jni/parted/libparted/fs/hfs/hfs.c b/jni/parted/libparted/fs/hfs/hfs.c deleted file mode 100755 index 3684646..0000000 --- a/jni/parted/libparted/fs/hfs/hfs.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2003-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/* - Author : Guillaume Knispel - Report bug to -*/ - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "probe.h" - -uint8_t* hfs_block = NULL; -uint8_t* hfsp_block = NULL; -unsigned hfs_block_count; -unsigned hfsp_block_count; - -static PedFileSystemOps hfs_ops = { - probe: hfs_probe, -}; - -static PedFileSystemOps hfsplus_ops = { - probe: hfsplus_probe, -}; - -static PedFileSystemOps hfsx_ops = { - probe: hfsx_probe, -}; - - -static PedFileSystemType hfs_type = { - next: NULL, - ops: &hfs_ops, - name: "hfs", -}; - -static PedFileSystemType hfsplus_type = { - next: NULL, - ops: &hfsplus_ops, - name: "hfs+", -}; - -static PedFileSystemType hfsx_type = { - next: NULL, - ops: &hfsx_ops, - name: "hfsx", -}; - -void -ped_file_system_hfs_init () -{ - ped_file_system_type_register (&hfs_type); - ped_file_system_type_register (&hfsplus_type); - ped_file_system_type_register (&hfsx_type); -} - -void -ped_file_system_hfs_done () -{ - ped_file_system_type_unregister (&hfs_type); - ped_file_system_type_unregister (&hfsplus_type); - ped_file_system_type_unregister (&hfsx_type); -} diff --git a/jni/parted/libparted/fs/hfs/hfs.h b/jni/parted/libparted/fs/hfs/hfs.h deleted file mode 100755 index 5b9138c..0000000 --- a/jni/parted/libparted/fs/hfs/hfs.h +++ /dev/null @@ -1,648 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2003-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef _HFS_H -#define _HFS_H - -/* WARNING : bn is used 2 times in theses macro */ -/* so _never_ use side effect operators when using them */ -#define TST_BLOC_OCCUPATION(tab,bn) \ - (((tab)[(bn)/8]) & (1<<(7-((bn)&7)))) -#define SET_BLOC_OCCUPATION(tab,bn) \ - (((tab)[(bn)/8]) |= (1<<(7-((bn)&7)))) -#define CLR_BLOC_OCCUPATION(tab,bn) \ - (((tab)[(bn)/8]) &= ~(1<<(7-((bn)&7)))) - -/* Maximum number of blocks for the copy buffers */ -#define BLOCK_MAX_BUFF 256 -/* Maximum size of the copy buffers, in bytes */ -#define BYTES_MAX_BUFF 8388608 - -/* Apple Creator Codes follow */ -#define HFSP_IMPL_Shnk 0x53686e6b /* in use */ -#define HFSP_IMPL_Xpnd 0x58706e64 /* reserved */ -#define HFSP_IMPL_Resz 0x5265737a /* reserved */ -#define HFSP_IMPL_PHpx 0x50482b78 /* reserved */ -#define HFSP_IMPL_traP 0x74726150 /* reserved */ -#define HFSP_IMPL_GnuP 0x476e7550 /* reserved */ - -#define HFS_SIGNATURE 0x4244 /* 'BD' */ -#define HFSP_SIGNATURE 0x482B /* 'H+' */ -#define HFSX_SIGNATURE 0x4858 /* 'HX' */ - -#define HFSP_VERSION 4 -#define HFSX_VERSION 5 - -#define HFS_HARD_LOCK 7 -#define HFS_UNMOUNTED 8 -#define HFS_BAD_SPARED 9 -#define HFS_SOFT_LOCK 15 -#define HFSP_NO_CACHE 10 -#define HFSP_INCONSISTENT 11 -#define HFSP_REUSE_CNID 12 -#define HFSP_JOURNALED 13 - -#define HFS_IDX_NODE 0x00 -#define HFS_HDR_NODE 0x01 -#define HFS_MAP_NODE 0x02 -#define HFS_LEAF_NODE 0xFF - -#define HFS_FIRST_REC 0x0E -#define HFS_NSD_HD_REC 0x78 -#define HFS_MAP_REC 0xF8 - -#define HFS_DATA_FORK 0x00 -#define HFS_RES_FORK 0xFF - -#define HFS_CAT_DIR 0x01 -#define HFS_CAT_FILE 0x02 -#define HFS_CAT_DIR_TH 0x03 -#define HFS_CAT_FILE_TH 0x04 - -#define HFSP_ATTR_INLINE 0x10 -#define HFSP_ATTR_FORK 0x20 -#define HFSP_ATTR_EXTENTS 0x30 - -#define HFS_ROOT_PAR_ID 0x01 -#define HFS_ROOT_DIR_ID 0x02 -#define HFS_XTENT_ID 0x03 -#define HFS_CATALOG_ID 0x04 -#define HFS_BAD_BLOCK_ID 0x05 -#define HFSP_ALLOC_ID 0x06 -#define HFSP_STARTUP_ID 0x07 -#define HFSP_ATTRIB_ID 0x08 -#define HFSP_BOGUS_ID 0x0F -#define HFSP_FIRST_AV_ID 0x10 - -#define HFSJ_JOURN_IN_FS 0x00 -#define HFSJ_JOURN_OTHER_DEV 0x01 -#define HFSJ_JOURN_NEED_INIT 0x02 - -#define HFSJ_HEADER_MAGIC 0x4a4e4c78 -#define HFSJ_ENDIAN_MAGIC 0x12345678 - -#define HFSX_CASE_FOLDING 0xCF /* case insensitive HFSX */ -#define HFSX_BINARY_COMPARE 0xBC /* case sensitive HFSX */ - -#define HFS_EXT_NB 3 -#define HFSP_EXT_NB 8 - -/* Define the filenames used by the FS extractor */ -#ifdef HFS_EXTRACT_FS - -#define HFS_MDB_FILENAME "mdb.hfs" -#define HFS_CATALOG_FILENAME "catalog.hfs" -#define HFS_EXTENTS_FILENAME "extents.hfs" -#define HFS_BITMAP_FILENAME "bitmap.hfs" - -#define HFSP_VH_FILENAME "vh.hfsplus" -#define HFSP_CATALOG_FILENAME "catalog.hfsplus" -#define HFSP_EXTENTS_FILENAME "extents.hfsplus" -#define HFSP_BITMAP_FILENAME "bitmap.hfsplus" -#define HFSP_ATTRIB_FILENAME "attributes.hfsplus" -#define HFSP_STARTUP_FILENAME "startup.hfsplus" - -#endif /* HFS_EXTRACT_FS */ - - - -/* ----------------------------------- */ -/* -- HFS DATA STRUCTURES -- */ -/* ----------------------------------- */ - -/* Extent descriptor */ -struct __attribute__ ((packed)) _HfsExtDescriptor { - uint16_t start_block; - uint16_t block_count; -}; -typedef struct _HfsExtDescriptor HfsExtDescriptor; -typedef HfsExtDescriptor HfsExtDataRec[HFS_EXT_NB]; - -/* Volume header */ -struct __attribute__ ((packed)) _HfsMasterDirectoryBlock { - uint16_t signature; - uint32_t create_date; - uint32_t modify_date; - uint16_t volume_attributes; - uint16_t files_in_root; - uint16_t volume_bitmap_block; /* in sectors */ - uint16_t next_allocation; - uint16_t total_blocks; - uint32_t block_size; /* in bytes */ - uint32_t def_clump_size; /* in bytes */ - uint16_t start_block; /* in sectors */ - uint32_t next_free_node; - uint16_t free_blocks; - uint8_t name_length; - char name[27]; - uint32_t backup_date; - uint16_t backup_number; - uint32_t write_count; - uint32_t extents_clump; - uint32_t catalog_clump; - uint16_t dirs_in_root; - uint32_t file_count; - uint32_t dir_count; - uint32_t finder_info[8]; - union __attribute__ ((packed)) { - struct __attribute__ ((packed)) { - uint16_t volume_cache_size; /* in blocks */ - uint16_t bitmap_cache_size; /* in blocks */ - uint16_t common_cache_size; /* in blocks */ - } legacy; - struct __attribute__ ((packed)) { - uint16_t signature; - HfsExtDescriptor location; - } embedded; - } old_new; - uint32_t extents_file_size; /* in bytes, block size multiple */ - HfsExtDataRec extents_file_rec; - uint32_t catalog_file_size; /* in bytes, block size multiple */ - HfsExtDataRec catalog_file_rec; -}; -typedef struct _HfsMasterDirectoryBlock HfsMasterDirectoryBlock; - -/* B*-Tree Node Descriptor */ -struct __attribute__ ((packed)) _HfsNodeDescriptor { - uint32_t next; - uint32_t previous; - int8_t type; - uint8_t height; - uint16_t rec_nb; - uint16_t reserved; -}; -typedef struct _HfsNodeDescriptor HfsNodeDescriptor; - -/* Header record of a whole B*-Tree */ -struct __attribute__ ((packed)) _HfsHeaderRecord { - uint16_t depth; - uint32_t root_node; - uint32_t leaf_records; - uint32_t first_leaf_node; - uint32_t last_leaf_node; - uint16_t node_size; - uint16_t max_key_len; - uint32_t total_nodes; - uint32_t free_nodes; - int8_t reserved[76]; -}; -typedef struct _HfsHeaderRecord HfsHeaderRecord; - -/* Catalog key for B*-Tree lookup in the catalog file */ -struct __attribute__ ((packed)) _HfsCatalogKey { - uint8_t key_length; /* length of the key without key_length */ - uint8_t reserved; - uint32_t parent_ID; - uint8_t name_length; - char name[31]; /* in fact physicaly 1 upto 31 */ -}; -typedef struct _HfsCatalogKey HfsCatalogKey; - -/* Extents overflow key for B*-Tree lookup */ -struct __attribute__ ((packed)) _HfsExtentKey { - uint8_t key_length; /* length of the key without key_length */ - uint8_t type; /* data or ressource fork */ - uint32_t file_ID; - uint16_t start; -}; -typedef struct _HfsExtentKey HfsExtentKey; - -/* Catalog subdata case directory */ -struct __attribute__ ((packed)) _HfsDir { - uint16_t flags; - uint16_t valence; /* number of files in this directory */ - uint32_t dir_ID; - uint32_t create_date; - uint32_t modify_date; - uint32_t backup_date; - int8_t DInfo[16]; /* used by Finder, handle as reserved */ - int8_t DXInfo[16]; /* used by Finder, handle as reserved */ - uint32_t reserved[4]; -}; -typedef struct _HfsDir HfsDir; - -/* Catalog subdata case file */ -struct __attribute__ ((packed)) _HfsFile { - int8_t flags; - int8_t type; /* should be 0 */ - int8_t FInfo[16]; /* used by Finder, handle as reserved */ - uint32_t file_ID; - uint16_t data_start_block; - uint32_t data_sz_byte; - uint32_t data_sz_block; - uint16_t res_start_block; - uint32_t res_sz_byte; - uint32_t res_sz_block; - uint32_t create_date; - uint32_t modify_date; - uint32_t backup_date; - int8_t FXInfo[16]; /* used by Finder, handle as reserved */ - uint16_t clump_size; - HfsExtDataRec extents_data; - HfsExtDataRec extents_res; - uint32_t reserved; -}; -typedef struct _HfsFile HfsFile; - -/* Catalog subdata case directory thread */ -struct __attribute__ ((packed)) _HfsDirTh { - uint32_t reserved[2]; - uint32_t parent_ID; - int8_t name_length; - char name[31]; -}; -typedef struct _HfsDirTh HfsDirTh; - -/* Catalog subdata case file thread */ -typedef struct _HfsDirTh HfsFileTh; /* same as directory thread */ - -/* Catalog data */ -struct __attribute__ ((packed)) _HfsCatalog { - int8_t type; - int8_t reserved; - union { - HfsDir dir; - HfsFile file; - HfsDirTh dir_th; - HfsFileTh file_th; - } sel; -}; -typedef struct _HfsCatalog HfsCatalog; - - - -/* ------------------------------------ */ -/* -- HFS+ DATA STRUCTURES -- */ -/* ------------------------------------ */ - -/* documented since 2004 in tn1150 */ -struct __attribute__ ((packed)) _HfsPPerms { - uint32_t owner_ID; - uint32_t group_ID; - uint32_t permissions; - uint32_t special_devices; -}; -typedef struct _HfsPPerms HfsPPerms; - -/* HFS+ extent descriptor*/ -struct __attribute__ ((packed)) _HfsPExtDescriptor { - uint32_t start_block; - uint32_t block_count; -}; -typedef struct _HfsPExtDescriptor HfsPExtDescriptor; -typedef HfsPExtDescriptor HfsPExtDataRec[HFSP_EXT_NB]; - -/* HFS+ fork data structure */ -struct __attribute__ ((packed)) _HfsPForkData { - uint64_t logical_size; - uint32_t clump_size; - uint32_t total_blocks; - HfsPExtDataRec extents; -}; -typedef struct _HfsPForkData HfsPForkData; - -/* HFS+ catalog node ID */ -typedef uint32_t HfsPNodeID; - -/* HFS+ file names */ -typedef uint16_t unichar; -struct __attribute__ ((packed)) _HfsPUniStr255 { - uint16_t length; - unichar unicode[255]; /* 1 upto 255 */ -}; -typedef struct _HfsPUniStr255 HfsPUniStr255; - -/* HFS+ volume header */ -struct __attribute__ ((packed)) _HfsPVolumeHeader { - uint16_t signature; - uint16_t version; - uint32_t attributes; - uint32_t last_mounted_version; - uint32_t journal_info_block; - - uint32_t create_date; - uint32_t modify_date; - uint32_t backup_date; - uint32_t checked_date; - - uint32_t file_count; - uint32_t dir_count; - - uint32_t block_size; - uint32_t total_blocks; - uint32_t free_blocks; - - uint32_t next_allocation; - uint32_t res_clump_size; - uint32_t data_clump_size; - HfsPNodeID next_catalog_ID; - - uint32_t write_count; - uint64_t encodings_bitmap; - - uint8_t finder_info[32]; - - HfsPForkData allocation_file; - HfsPForkData extents_file; - HfsPForkData catalog_file; - HfsPForkData attributes_file; - HfsPForkData startup_file; -}; -typedef struct _HfsPVolumeHeader HfsPVolumeHeader; - -/* HFS+ B-Tree Node Descriptor. Same as HFS btree. */ -struct __attribute__ ((packed)) _HfsPNodeDescriptor { - uint32_t next; - uint32_t previous; - int8_t type; - uint8_t height; - uint16_t rec_nb; - uint16_t reserved; -}; -typedef struct _HfsPNodeDescriptor HfsPNodeDescriptor; - -/* Header record of a whole HFS+ B-Tree. */ -struct __attribute__ ((packed)) _HfsPHeaderRecord { - uint16_t depth; - uint32_t root_node; - uint32_t leaf_records; - uint32_t first_leaf_node; - uint32_t last_leaf_node; - uint16_t node_size; - uint16_t max_key_len; - uint32_t total_nodes; - uint32_t free_nodes; /* same as hfs btree until here */ - uint16_t reserved1; - - uint32_t clump_size; - uint8_t btree_type; /* must be 0 for HFS+ B-Tree */ - uint8_t key_compare_type; /* hfsx => 0xCF = case folding */ - /* 0xBC = binary compare */ - /* otherwise, reserved */ - uint32_t attributes; - uint32_t reserved3[16]; -}; -typedef struct _HfsPHeaderRecord HfsPHeaderRecord; - -/* Catalog key for B-Tree lookup in the HFS+ catalog file */ -struct __attribute__ ((packed)) _HfsPCatalogKey { - uint16_t key_length; - HfsPNodeID parent_ID; - HfsPUniStr255 node_name; -}; -typedef struct _HfsPCatalogKey HfsPCatalogKey; - -/* HFS+ catalog subdata case dir */ -struct __attribute__ ((packed)) _HfsPDir { - uint16_t flags; - uint32_t valence; - HfsPNodeID dir_ID; - uint32_t create_date; - uint32_t modify_date; - uint32_t attrib_mod_date; - uint32_t access_date; - uint32_t backup_date; - HfsPPerms permissions; - int8_t DInfo[16]; /* used by Finder, handle as reserved */ - int8_t DXInfo[16]; /* used by Finder, handle as reserved */ - uint32_t text_encoding; - uint32_t reserved; -}; -typedef struct _HfsPDir HfsPDir; - -/* HFS+ catalog subdata case file */ -struct __attribute__ ((packed)) _HfsPFile { - uint16_t flags; - uint32_t reserved1; - HfsPNodeID file_ID; - uint32_t create_date; - uint32_t modify_date; - uint32_t attrib_mod_date; - uint32_t access_date; - uint32_t backup_date; - HfsPPerms permissions; - int8_t FInfo[16]; /* used by Finder, handle as reserved */ - int8_t FXInfo[16]; /* used by Finder, handle as reserved */ - uint32_t text_encoding; - uint32_t reserved2; - - HfsPForkData data_fork; - HfsPForkData res_fork; -}; -typedef struct _HfsPFile HfsPFile; - -/* HFS+ catalog subdata case thread */ -struct __attribute__ ((packed)) _HfsPThread { - int16_t reserved; - HfsPNodeID parent_ID; - HfsPUniStr255 node_name; -}; -typedef struct _HfsPThread HfsPDirTh; -typedef struct _HfsPThread HfsPFileTh; - -/* HFS+ Catalog leaf data */ -struct __attribute__ ((packed)) _HfsPCatalog { - int16_t type; - union { - HfsPDir dir; - HfsPFile file; - HfsPDirTh dir_th; - HfsPFileTh file_th; - } sel; -}; -typedef struct _HfsPCatalog HfsPCatalog; - -/* HFS+ extents file key */ -struct __attribute__ ((packed)) _HfsPExtentKey { - uint16_t key_length; - uint8_t type; - uint8_t pad; - HfsPNodeID file_ID; - uint32_t start; -}; -typedef struct _HfsPExtentKey HfsPExtentKey; - -/* extent file data is HfsPExtDataRec */ - -/* Fork data attribute file */ -struct __attribute__ ((packed)) _HfsPForkDataAttr { - uint32_t record_type; - uint32_t reserved; - union __attribute__ ((packed)) { - HfsPForkData fork; - HfsPExtDataRec extents; - } fork_res; -}; -typedef struct _HfsPForkDataAttr HfsPForkDataAttr; - - -/* ----------- Journal data structures ----------- */ - -/* Info block : stored in a block # defined in the VH */ -struct __attribute__ ((packed)) _HfsJJournalInfoBlock { - uint32_t flags; - uint32_t device_signature[8]; - uint64_t offset; - uint64_t size; - uint32_t reserved[32]; -}; -typedef struct _HfsJJournalInfoBlock HfsJJournalInfoBlock; - -struct __attribute__ ((packed)) _HfsJJournalHeader { - uint32_t magic; - uint32_t endian; - uint64_t start; - uint64_t end; - uint64_t size; - uint32_t blhdr_size; - uint32_t checksum; - uint32_t jhdr_size; -}; -typedef struct _HfsJJournalHeader HfsJJournalHeader; - -struct __attribute__ ((packed)) _HfsJBlockInfo { - uint64_t bnum; /* sector number */ - uint32_t bsize; /* size in bytes */ - uint32_t next; -}; -typedef struct _HfsJBlockInfo HfsJBlockInfo; - -struct __attribute__ ((packed)) _HfsJBlockListHeader { - uint16_t max_blocks; /* reserved */ - uint16_t num_blocks; - uint32_t bytes_used; - uint32_t checksum; - uint32_t pad; - HfsJBlockInfo binfo[]; -}; -typedef struct _HfsJBlockListHeader HfsJBlockListHeader; - - - -/* ---------------------------------------- */ -/* -- INTERNAL DATA STRUCTURES -- */ -/* ---------------------------------------- */ - -/* Data of an opened HFS file */ -struct _HfsPrivateFile { - PedSector sect_nb; - PedFileSystem* fs; - uint32_t CNID; /* disk order (BE) */ - HfsExtDataRec first; /* disk order (BE) */ - HfsExtDataRec cache; /* disk order (BE) */ - uint16_t start_cache; /* CPU order */ -}; -typedef struct _HfsPrivateFile HfsPrivateFile; - -/* To store bad block list */ -struct _HfsPrivateLinkExtent { - HfsExtDescriptor extent; - struct _HfsPrivateLinkExtent* next; -}; -typedef struct _HfsPrivateLinkExtent HfsPrivateLinkExtent; - -/* HFS Filesystem specific data */ -struct _HfsPrivateFSData { - uint8_t alloc_map[(1<<16) / 8]; - HfsMasterDirectoryBlock* mdb; - HfsPrivateFile* extent_file; - HfsPrivateFile* catalog_file; - HfsPrivateLinkExtent* bad_blocks_xtent_list; - unsigned int bad_blocks_xtent_nb; - char bad_blocks_loaded; -}; -typedef struct _HfsPrivateFSData HfsPrivateFSData; - -/* Generic btree key */ -struct __attribute__ ((packed)) _HfsPrivateGenericKey { - uint8_t key_length; - uint8_t key_content[1]; /* we use 1 as a minimum size */ -}; -typedef struct _HfsPrivateGenericKey HfsPrivateGenericKey; - -/* ----- HFS+ ----- */ - -/* Data of an opened HFS file */ -struct _HfsPPrivateFile { - PedSector sect_nb; - PedFileSystem* fs; - HfsPNodeID CNID; /* disk order (BE) */ - HfsPExtDataRec first; /* disk order (BE) */ - HfsPExtDataRec cache; /* disk order (BE) */ - uint32_t start_cache; /* CPU order */ -}; -typedef struct _HfsPPrivateFile HfsPPrivateFile; - -struct _HfsPPrivateExtent { - PedSector start_sector; - PedSector sector_count; -}; -typedef struct _HfsPPrivateExtent HfsPPrivateExtent; - -/* To store bad block list */ -struct _HfsPPrivateLinkExtent { - HfsPExtDescriptor extent; - struct _HfsPPrivateLinkExtent* next; -}; -typedef struct _HfsPPrivateLinkExtent HfsPPrivateLinkExtent; - -/* HFS+ file system specific data */ -struct _HfsPPrivateFSData { - PedFileSystem* wrapper; /* NULL if hfs+ is not embedded */ - PedGeometry* plus_geom; /* Geometry of HFS+ _volume_ */ - uint8_t* alloc_map; - uint8_t* dirty_alloc_map; - HfsPVolumeHeader* vh; - HfsPPrivateFile* extents_file; - HfsPPrivateFile* catalog_file; - HfsPPrivateFile* attributes_file; - HfsPPrivateFile* allocation_file; - HfsPPrivateLinkExtent* bad_blocks_xtent_list; - uint32_t jib_start_block; - uint32_t jl_start_block; - unsigned int bad_blocks_xtent_nb; - char bad_blocks_loaded; - char free_geom; /* 1 = plus_geom must be freed */ -}; -typedef struct _HfsPPrivateFSData HfsPPrivateFSData; - -/* Generic + btree key */ -struct __attribute__ ((packed)) _HfsPPrivateGenericKey { - uint16_t key_length; - uint8_t key_content[1]; /* we use 1 as a minimum size */ -}; -typedef struct _HfsPPrivateGenericKey HfsPPrivateGenericKey; - -/* ---- common ---- */ - -/* node and lead record reference for a BTree search */ -struct _HfsCPrivateLeafRec { - unsigned int node_size; /* in sectors */ - unsigned int node_number; - unsigned int record_pos; - unsigned int record_number; -}; -typedef struct _HfsCPrivateLeafRec HfsCPrivateLeafRec; - -extern uint8_t* hfs_block; -extern uint8_t* hfsp_block; -extern unsigned hfs_block_count; -extern unsigned hfsp_block_count; - -#endif /* _HFS_H */ diff --git a/jni/parted/libparted/fs/hfs/probe.c b/jni/parted/libparted/fs/hfs/probe.c deleted file mode 100755 index d02ca28..0000000 --- a/jni/parted/libparted/fs/hfs/probe.c +++ /dev/null @@ -1,238 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" - -#include "probe.h" - -int -hfsc_can_use_geom (PedGeometry* geom) -{ - PedDevice* dev; - - dev = geom->dev; - PED_ASSERT (geom != NULL); - PED_ASSERT (dev != NULL); - - if (dev->sector_size != PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Parted can't use HFS file systems on disks " - "with a sector size not equal to %d bytes."), - (int)PED_SECTOR_SIZE_DEFAULT ); - return 0; - } - - return 1; -} - -/* Probe an HFS volume, detecting it even if -it is in fact a wrapper to an HFS+ volume */ -/* Used by hfsplus_probe and hfs_probe */ -PedGeometry* -hfs_and_wrapper_probe (PedGeometry* geom) -{ - HfsMasterDirectoryBlock *mdb; - PedGeometry* geom_ret; - PedSector search, max; - - PED_ASSERT (geom != NULL); - PED_ASSERT (hfsc_can_use_geom (geom)); - - const int sectors = ((3 * 512) + geom->dev->sector_size - 1) / - geom->dev->sector_size; - char * buf = alloca (sectors * geom->dev->sector_size); - - mdb = (HfsMasterDirectoryBlock *)(buf+1024); - - /* is 5 an intelligent value ? */ - if ((geom->length < 5) - || (!ped_geometry_read (geom, buf, 0, sectors)) - || (mdb->signature != PED_CPU_TO_BE16 (HFS_SIGNATURE)) ) - return NULL; - - search = ((PedSector) PED_BE16_TO_CPU (mdb->start_block) - + ((PedSector) PED_BE16_TO_CPU (mdb->total_blocks) - * (PED_BE32_TO_CPU (mdb->block_size) / geom->dev->sector_size))); - max = search + (PED_BE32_TO_CPU (mdb->block_size) / geom->dev->sector_size); - if ((search < 0) - || !(geom_ret = ped_geometry_new (geom->dev, geom->start, search + 2))) - return NULL; - - for (; search < max; search++) { - if (!ped_geometry_set (geom_ret, geom_ret->start, search + 2) - || !ped_geometry_read (geom_ret, buf, search, 1)) - break; - if (mdb->signature == PED_CPU_TO_BE16 (HFS_SIGNATURE)) - return geom_ret; - } - - ped_geometry_destroy (geom_ret); - return NULL; -} - -PedGeometry* -hfsplus_probe (PedGeometry* geom) -{ - PedGeometry* geom_ret; - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - - PED_ASSERT (geom != NULL); - - if (!hfsc_can_use_geom (geom)) - return NULL; - - if ((geom_ret = hfs_and_wrapper_probe(geom))) { - /* HFS+ is embedded in an HFS volume ? */ - HfsMasterDirectoryBlock *mdb; - mdb = (HfsMasterDirectoryBlock *) buf; - - if (!ped_geometry_read (geom, buf, 2, 1) - || (mdb->old_new.embedded.signature - != PED_CPU_TO_BE16 (HFSP_SIGNATURE))) { - ped_geometry_destroy (geom_ret); - return NULL; - } else - return geom_ret; - } else { - /* This is a standalone HFS+ volume ? */ - PedSector search, max; - HfsPVolumeHeader *vh; - vh = (HfsPVolumeHeader *) buf; - - if ((geom->length < 5) - || !ped_geometry_read (geom, buf, 2, 1) - || (vh->signature != PED_CPU_TO_BE16 (HFSP_SIGNATURE))) - return NULL; - - /* Correct range is indeed [ blocks*sz-2;(blocs+1)*sz-2 ( */ - /* But previous versions of my implementation used to */ - /* assume range is [(blocks-1)*sz-1;(blocks*sz) ( */ - /* (blocks-1)*sz-1 has to be scanned last, because */ - /* it can belong to a regular file */ - max = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) + 1) - * ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT ) - - 2; - search = max - 2 * ( PED_BE32_TO_CPU (vh->block_size) - / PED_SECTOR_SIZE_DEFAULT ) + 2; - if ((search < 0) - || !(geom_ret = ped_geometry_new (geom->dev, geom->start, - search + 2))) - return NULL; - - for (; search < max; search++) { - if (!ped_geometry_set (geom_ret, geom_ret->start, - search + 2) - || !ped_geometry_read (geom_ret, buf, search, 1)) - break; - if (vh->signature == PED_CPU_TO_BE16 (HFSP_SIGNATURE)) - return geom_ret; - } - search = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) - 1) - * ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT ) - - 1; - if ((search < 0) - || !ped_geometry_set (geom_ret, geom_ret->start, - search + 2) - || !ped_geometry_read (geom_ret, buf, search, 1) - || vh->signature != PED_CPU_TO_BE16 (HFSP_SIGNATURE)) { - ped_geometry_destroy (geom_ret); - return NULL; - } else - return geom_ret; - } -} - -PedGeometry* -hfs_probe (PedGeometry* geom) -{ - PedGeometry* geom_base; - PedGeometry* geom_plus = NULL; - - PED_ASSERT (geom != NULL); - - if (!hfsc_can_use_geom (geom)) - return NULL; - - if ((geom_base = hfs_and_wrapper_probe(geom)) - && (!(geom_plus = hfsplus_probe(geom_base)))) - return geom_base; - else { - if (geom_base) ped_geometry_destroy (geom_base); - if (geom_plus) ped_geometry_destroy (geom_plus); - return NULL; - } -} - -PedGeometry* -hfsx_probe (PedGeometry* geom) -{ - PedGeometry* geom_ret; - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - PedSector search, max; - HfsPVolumeHeader *vh = (HfsPVolumeHeader *) buf; - - PED_ASSERT (geom != NULL); - - if (!hfsc_can_use_geom (geom)) - return NULL; - - if ((geom->length < 5) - || !ped_geometry_read (geom, buf, 2, 1) - || (vh->signature != PED_CPU_TO_BE16 (HFSX_SIGNATURE))) - return NULL; - - /* unlike the hfs+ code, which should be kept compatible - with my old previous implementations, we only care here - about legal alternate VH positions, like TN1150 describes them */ - max = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) + 1) - * ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT ) - - 2; - search = max - ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT ); - if ((search < 0) - || !(geom_ret = ped_geometry_new (geom->dev, geom->start, - search + 2))) - return NULL; - for (; search < max; search++) { - if (!ped_geometry_set (geom_ret, geom_ret->start, - search + 2) - || !ped_geometry_read (geom_ret, buf, search, 1)) - break; - if (vh->signature == PED_CPU_TO_BE16 (HFSX_SIGNATURE)) - return geom_ret; - } - - ped_geometry_destroy (geom_ret); - return NULL; -} diff --git a/jni/parted/libparted/fs/hfs/probe.h b/jni/parted/libparted/fs/hfs/probe.h deleted file mode 100755 index 29ce880..0000000 --- a/jni/parted/libparted/fs/hfs/probe.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef _PROBE_H -#define _PROBE_H - -#include -#include -#include - -#include "hfs.h" - -int -hfsc_can_use_geom (PedGeometry* geom); - -PedGeometry* -hfs_and_wrapper_probe (PedGeometry* geom); - -PedGeometry* -hfsplus_probe (PedGeometry* geom); - -PedGeometry* -hfs_probe (PedGeometry* geom); - -PedGeometry* -hfsx_probe (PedGeometry* geom); - -#endif /* _PROBE_H */ diff --git a/jni/parted/libparted/fs/jfs/jfs.c b/jni/parted/libparted/fs/jfs/jfs.c deleted file mode 100755 index f00bd9f..0000000 --- a/jni/parted/libparted/fs/jfs/jfs.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2001, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -#define _JFS_UTILITY -#include "jfs_types.h" -#include "jfs_superblock.h" - -#define JFS_SUPER_OFFSET 32768 - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static PedGeometry* -jfs_probe (PedGeometry* geom) -{ - struct superblock *sb = alloca (geom->dev->sector_size); - - if (geom->length * geom->dev->sector_size < JFS_SUPER_OFFSET) - return NULL; - if (!ped_geometry_read (geom, sb, JFS_SUPER_OFFSET / geom->dev->sector_size, 1)) - return NULL; - - if (strncmp (sb->s_magic, JFS_MAGIC, 4) == 0) { - PedSector block_size = PED_LE32_TO_CPU (sb->s_pbsize); - PedSector block_count = PED_LE64_TO_CPU (sb->s_size); - /* apparently jfs is retarded and always claims 512 byte - sectors, with the block count as a multiple of that */ - return ped_geometry_new (geom->dev, geom->start, - block_size * block_count / geom->dev->sector_size); - } else { - return NULL; - } -} - -static PedFileSystemOps jfs_ops = { - probe: jfs_probe, -}; - -static PedFileSystemType jfs_type = { - next: NULL, - ops: &jfs_ops, - name: "jfs", -}; - -void -ped_file_system_jfs_init () -{ - ped_file_system_type_register (&jfs_type); -} - -void -ped_file_system_jfs_done () -{ - ped_file_system_type_unregister (&jfs_type); -} diff --git a/jni/parted/libparted/fs/jfs/jfs_superblock.h b/jni/parted/libparted/fs/jfs/jfs_superblock.h deleted file mode 100755 index ea13dfb..0000000 --- a/jni/parted/libparted/fs/jfs/jfs_superblock.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) International Business Machines Corp., 2000 - * - * 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 3 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, see . - * - */ -#ifndef _H_JFS_SUPERBLOCK -#define _H_JFS_SUPERBLOCK -/* - * jfs_superblock.h - */ - -/* - * make the magic number something a human could read - */ -#define JFS_MAGIC "JFS1" /* Magic word: Version 1 */ - -#define JFS_VERSION 1 /* Version number: Version 1 */ - -#define LV_NAME_SIZE 11 /* MUST BE 11 for OS/2 boot sector */ - -/* - * aggregate superblock - * - * The name superblock is too close to super_block, so the name has been - * changed to jfs_superblock. The utilities are still using the old name. - */ -#ifdef _JFS_UTILITY -struct superblock -#else -struct jfs_superblock -#endif -{ - char s_magic[4]; /* 4: magic number */ - u32 s_version; /* 4: version number */ - - s64 s_size; /* 8: aggregate size in hardware/LVM blocks; - * VFS: number of blocks - */ - s32 s_bsize; /* 4: aggregate block size in bytes; - * VFS: fragment size - */ - s16 s_l2bsize; /* 2: log2 of s_bsize */ - s16 s_l2bfactor; /* 2: log2(s_bsize/hardware block size) */ - s32 s_pbsize; /* 4: hardware/LVM block size in bytes */ - s16 s_l2pbsize; /* 2: log2 of s_pbsize */ - s16 pad; /* 2: padding necessary for alignment */ - - u32 s_agsize; /* 4: allocation group size in aggr. blocks */ - - u32 s_flag; /* 4: aggregate attributes: - * see jfs_filsys.h - */ - u32 s_state; /* 4: mount/unmount/recovery state: - * see jfs_filsys.h - */ - s32 s_compress; /* 4: > 0 if data compression */ - - pxd_t s_ait2; /* 8: first extent of secondary - * aggregate inode table - */ - - pxd_t s_aim2; /* 8: first extent of secondary - * aggregate inode map - */ - u32 s_logdev; /* 4: device address of log */ - s32 s_logserial; /* 4: log serial number at aggregate mount */ - pxd_t s_logpxd; /* 8: inline log extent */ - - pxd_t s_fsckpxd; /* 8: inline fsck work space extent */ - - struct timestruc_t s_time; /* 8: time last updated */ - - s32 s_fsckloglen; /* 4: Number of file system blocks reserved for - * the fsck service log. - * N.B. These blocks are divided among the - * versions kept. This is not a per - * version size. - * N.B. These blocks are included in the - * length field of s_fsckpxd. - */ - s8 s_fscklog; /* 1: which fsck service log is most recent - * 0 => no service log data yet - * 1 => the first one - * 2 => the 2nd one - */ - char s_fpack[11]; /* 11: file system volume name - * N.B. This must be 11 bytes to - * conform with the OS/2 BootSector - * requirements - */ - - /* extendfs() parameter under s_state & FM_EXTENDFS */ - s64 s_xsize; /* 8: extendfs s_size */ - pxd_t s_xfsckpxd; /* 8: extendfs fsckpxd */ - pxd_t s_xlogpxd; /* 8: extendfs logpxd */ - /* - 128 byte boundary - */ - - /* - * DFS VFS support (preliminary) - */ - char s_attach; /* 1: VFS: flag: set when aggregate is attached - */ - u8 rsrvd4[7]; /* 7: reserved - set to 0 */ - - u64 totalUsable; /* 8: VFS: total of 1K blocks which are - * available to "normal" (non-root) users. - */ - u64 minFree; /* 8: VFS: # of 1K blocks held in reserve for - * exclusive use of root. This value can be 0, - * and if it is then totalUsable will be equal - * to # of blocks in aggregate. I believe this - * means that minFree + totalUsable = # blocks. - * In that case, we don't need to store both - * totalUsable and minFree since we can compute - * one from the other. I would guess minFree - * would be the one we should store, and - * totalUsable would be the one we should - * compute. (Just a guess...) - */ - - u64 realFree; /* 8: VFS: # of free 1K blocks can be used by - * "normal" users. It may be this is something - * we should compute when asked for instead of - * storing in the superblock. I don't know how - * often this information is needed. - */ - /* - * graffiti area - */ -}; - -#endif /*_H_JFS_SUPERBLOCK */ diff --git a/jni/parted/libparted/fs/jfs/jfs_types.h b/jni/parted/libparted/fs/jfs/jfs_types.h deleted file mode 100755 index 0366ebd..0000000 --- a/jni/parted/libparted/fs/jfs/jfs_types.h +++ /dev/null @@ -1,527 +0,0 @@ -/* - * Copyright (c) International Business Machines Corp., 2000 - * - * 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 3 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, see . - */ - -#ifndef _H_JFS_TYPES -#define _H_JFS_TYPES - -/* - * jfs_types.h: - * - * basic type/utility definitions - * - * note: this header file must be the 1st include file - * of JFS include list in all JFS .c file. - */ - -#ifdef _JFS_UTILITY -/* this is defined in asm/byteorder.h for i386, but - * is NOT defined in asm/byteorder.h for ppc (non-kernel). - * Until that is changed, we'll define it here. */ -#define __BYTEORDER_HAS_U64__ - -#include -//#include -typedef unsigned short UniChar; -#else -#include -#include -#include - -#ifndef _ULS_UNICHAR_DEFINED -#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,3,0)) -typedef wchar_t UniChar; -#else -typedef unsigned short UniChar; -#endif -#define _ULS_UNICHAR_DEFINED -#endif -#endif -/* #include "endian24.h" */ - -/* - * primitive types - */ -#ifdef _JFS_UTILITY -typedef int8_t s8; -typedef uint8_t u8; -typedef int16_t s16; -typedef uint16_t u16; -typedef int32_t s32; -typedef uint32_t u32; -typedef int64_t s64; -typedef uint64_t u64; - -#ifndef _UINT_TYPES - /* unicode includes also define these */ -typedef u16 uint16; -typedef u32 uint32; -#define _UINT_TYPES -#endif - -typedef s8 int8; -typedef u8 uint8; -typedef s16 int16; -typedef s32 int32; -typedef s64 int64; -typedef u64 uint64; - -#endif /* _JFS_UTILITY */ -/* - * Holdovers from OS/2. Try to get away from using these altogether. - */ -typedef unsigned long ULONG; -typedef unsigned short USHORT; -typedef unsigned char UCHAR; -typedef void *PVOID; -#define MAXPATHLEN 255 - - -/* - * Almost identical to Linux's timespec, but not quite - */ -struct timestruc_t { - u32 tv_sec; - u32 tv_nsec; -}; - -/* - * handy - */ -#undef MIN -#define MIN(a,b) (((a)<(b))?(a):(b)) -#undef MAX -#define MAX(a,b) (((a)>(b))?(a):(b)) -#undef ROUNDUP -#define ROUNDUP(x, y) ( ((x) + ((y) - 1)) & ~((y) - 1) ) - -#define LEFTMOSTONE 0x80000000 -#define HIGHORDER 0x80000000u /* high order bit on */ -#define ONES 0xffffffffu /* all bit on */ - -typedef int boolean_t; -#define TRUE 1 -#define FALSE 0 - -/* - * logical xd (lxd) - */ -typedef struct { - unsigned len:24; - unsigned off1:8; - u32 off2; -} lxd_t; - -/* lxd_t field construction */ -#define LXDlength(lxd, length32) ( (lxd)->len = length32 ) -#define LXDoffset(lxd, offset64)\ -{\ - (lxd)->off1 = ((s64)offset64) >> 32;\ - (lxd)->off2 = (offset64) & 0xffffffff;\ -} - -/* lxd_t field extraction */ -#define lengthLXD(lxd) ( (lxd)->len ) -#define offsetLXD(lxd)\ - ( ((s64)((lxd)->off1)) << 32 | (lxd)->off2 ) - -/* lxd list */ -typedef struct { - s16 maxnlxd; - s16 nlxd; - lxd_t *lxd; -} lxdlist_t; - -/* - * physical xd (pxd) - */ -typedef struct { - unsigned len:24; - unsigned addr1:8; - u32 addr2; -} pxd_t; - -/* xd_t field construction */ - -#define PXDlength(pxd, length32) ((pxd)->len = __cpu_to_le24(length32)) -#define PXDaddress(pxd, address64)\ -{\ - (pxd)->addr1 = ((s64)address64) >> 32;\ - (pxd)->addr2 = __cpu_to_le32((address64) & 0xffffffff);\ -} - -/* xd_t field extraction */ -#define lengthPXD(pxd) __le24_to_cpu((pxd)->len) -#define addressPXD(pxd)\ - ( ((s64)((pxd)->addr1)) << 32 | __le32_to_cpu((pxd)->addr2)) - -/* pxd list */ -typedef struct { - s16 maxnpxd; - s16 npxd; - pxd_t pxd[8]; -} pxdlist_t; - - -/* - * data extent descriptor (dxd) - */ -typedef struct { - unsigned flag:8; /* 1: flags */ - unsigned rsrvd:24; /* 3: */ - u32 size; /* 4: size in byte */ - unsigned len:24; /* 3: length in unit of fsblksize */ - unsigned addr1:8; /* 1: address in unit of fsblksize */ - u32 addr2; /* 4: address in unit of fsblksize */ -} dxd_t; /* - 16 - */ - -/* dxd_t flags */ -#define DXD_INDEX 0x80 /* B+-tree index */ -#define DXD_INLINE 0x40 /* in-line data extent */ -#define DXD_EXTENT 0x20 /* out-of-line single extent */ -#define DXD_FILE 0x10 /* out-of-line file (inode) */ -#define DXD_CORRUPT 0x08 /* Inconsistency detected */ - -/* dxd_t field construction - * Conveniently, the PXD macros work for DXD - */ -#define DXDlength PXDlength -#define DXDaddress PXDaddress -#define lengthDXD lengthPXD -#define addressDXD addressPXD - -/* - * directory entry argument - */ -typedef struct component_name { - int namlen; - UniChar *name; -} component_t; - - -/* - * DASD limit information - stored in directory inode - */ -typedef struct dasd { - u8 thresh; /* Alert Threshold (in percent) */ - u8 delta; /* Alert Threshold delta (in percent) */ - u8 rsrvd1; - u8 limit_hi; /* DASD limit (in logical blocks) */ - u32 limit_lo; /* DASD limit (in logical blocks) */ - u8 rsrvd2[3]; - u8 used_hi; /* DASD usage (in logical blocks) */ - u32 used_lo; /* DASD usage (in logical blocks) */ -} dasd_t; - -#define DASDLIMIT(dasdp) \ - (((u64)((dasdp)->limit_hi) << 32) + __le32_to_cpu((dasdp)->limit_lo)) -#define setDASDLIMIT(dasdp, limit)\ -{\ - (dasdp)->limit_hi = ((u64)limit) >> 32;\ - (dasdp)->limit_lo = __cpu_to_le32(limit);\ -} -#define DASDUSED(dasdp) \ - (((u64)((dasdp)->used_hi) << 32) + __le32_to_cpu((dasdp)->used_lo)) -#define setDASDUSED(dasdp, used)\ -{\ - (dasdp)->used_hi = ((u64)used) >> 32;\ - (dasdp)->used_lo = __cpu_to_le32(used);\ -} - -/* - * circular doubly-linked list (cdll) - * - * A circular doubly-linked list (cdll) is anchored by a pair of pointers, - * one to the head of the list and the other to the tail of the list. - * The elements are doubly linked so that an arbitrary element can be - * removed without a need to traverse the list. - * New elements can be added to the list before or after an existing element, - * at the head of the list, or at the tail of the list. - * A circle queue may be traversed in either direction. - * - * +----------+ +-------------------------------------+ - * | | | | - * +->+-----+ | +->+-----+ +->+-----+ +->+-----+ | - * | | h +-+ | | h +--+ | n +----+ | n +--+ - * | +-----+ | +-----+ | +-----+ | +-----+ - * | | t +-+ +-----+ t | | | p +--+ | | p +--+ - * | +-----+ | | | +-----+ | +-----+ | | +-----+ | - * +----------+ | +-----------------------+ | | - * | | | | - * | +-------------------------+ - * | | - * +----------------------------+ - */ -/* - * define header - * - * list header field definition in header element: - * - * type - type of list element struct embedding the link field - */ -#define CDLL_HEADER(type)\ -struct {\ - struct type *head;\ - struct type *tail;\ -} - -struct cdll_header { - struct cdll_header *head; - struct cdll_header *tail; -}; - -/* - * define link - * - * list link field definition in list element: - * - * type - type of parent list element struct embedding the link field - */ -#define CDLL_ENTRY(type)\ -struct {\ - struct type *next;\ - struct type *prev;\ -} - -struct cdll_entry { - struct cdll_entry *next; - struct cdll_entry *prev; -}; - -/* - * initialize header - * - * header - ptr to the header field in the header element - */ -#define CDLL_INIT(header) {\ - (header)->head = (void *)(header);\ - (header)->tail = (void *)(header);\ -} - -/* - * scan list - * - * header - ptr to the header field in the header element - * elm - ptr to the element to be inserted - * field - name of the link field in the list element - * - * struct header_container *container; - * struct header_type *header; - * struct element_type *elm; - * - * header = &container->header_field; - * for (elm = header->head; elm != (void *)header; elm = elm->field.next) - */ - -/* - * insert at head of list anchored at
- * - * header - ptr to the header field in the header element - * elm - ptr to the list element to be inserted - * field - name of the link field in the list element - */ -#define CDLL_INSERT_HEAD(header, elm, field) {\ - (elm)->field.next = (header)->head;\ - (elm)->field.prev = (void *)(header);\ - if ((header)->tail == (void *)(header))\ - (header)->tail = (elm);\ - else\ - (header)->head->field.prev = (elm);\ - (header)->head = (elm);\ -} - -/* - * insert at tail of list anchored at
- * - * header - ptr to the header field in the header element - * elm - ptr to the list element to be inserted - * field - name of the link field in the list element - */ -#define CDLL_INSERT_TAIL(header, elm, field) {\ - (elm)->field.next = (void *)(header);\ - (elm)->field.prev = (header)->tail;\ - if ((header)->head == (void *)(header))\ - (header)->head = (elm);\ - else\ - (header)->tail->field.next = (elm);\ - (header)->tail = (elm);\ -} - -/* - * insert after of list anchored at
- * - * header - ptr to the header field in the header element - * listelm - ptr to the list element at insertion point - * elm - ptr to the list element to be inserted - * field - name of the link field in the list element - */ -#define CDLL_INSERT_AFTER(header, listelm, elm, field) {\ - (elm)->field.next = (listelm)->field.next;\ - (elm)->field.prev = (listelm);\ - if ((listelm)->field.next == (void *)(header))\ - (header)->tail = (elm);\ - else\ - (listelm)->field.next->field.prev = (elm);\ - (listelm)->field.next = (elm);\ -} - -/* - * insert before of list anchored at
- * - * header - ptr to the header field in the header element - * listelm - ptr to list element at insertion point - * elm - ptr to the element to be inserted - * field - name of the link field in the list element - */ -#define CDLL_INSERT_BEFORE(header, listelm, elm, field) {\ - (elm)->field.next = (listelm);\ - (elm)->field.prev = (listelm)->field.prev;\ - if ((listelm)->field.prev == (void *)(header))\ - (header)->head = (elm);\ - else\ - (listelm)->field.prev->field.next = (elm);\ - (listelm)->field.prev = (elm);\ -} - -/* - * remove from list anchored at
- * - * header - ptr to the header field in the header element - * elm - ptr to the list element to be removed - * field - name of the link field in the list element - */ -#define CDLL_REMOVE(header, elm, field) {\ - if ((elm)->field.next == (void *)(header))\ - (header)->tail = (elm)->field.prev;\ - else\ - (elm)->field.next->field.prev = (elm)->field.prev;\ - if ((elm)->field.prev == (void *)(header))\ - (header)->head = (elm)->field.next;\ - else\ - (elm)->field.prev->field.next = (elm)->field.next;\ -} - -#define CDLL_MOVE_TO_HEAD(header, elm, field) {\ - if ((elm)->field.prev != (void *)(header))\ - {\ - if ((elm)->field.next == (void *)(header))\ - (header)->tail = (elm)->field.prev;\ - else\ - (elm)->field.next->field.prev = (elm)->field.prev;\ - (elm)->field.prev->field.next = (elm)->field.next;\ - (elm)->field.next = (header)->head;\ - (elm)->field.prev = (void *)(header);\ - (header)->head->field.prev = (elm);\ - (header)->head = (elm);\ - }\ -} - -#define CDLL_MOVE_TO_TAIL(header, elm, field) {\ - if ((elm)->field.next != (void *)(header))\ - {\ - (elm)->field.next->field.prev = (elm)->field.prev;\ - if ((elm)->field.prev == (void *)(header))\ - (header)->head = (elm)->field.next;\ - else\ - (elm)->field.prev->field.next = (elm)->field.next;\ - (elm)->field.next = (void *)(header);\ - (elm)->field.prev = (header)->tail;\ - (header)->tail->field.next = (elm);\ - (header)->tail = (elm);\ - }\ -} - -/* - * orphan list element - */ -#define CDLL_SELF(elm, field)\ - (elm)->field.next = (elm)->field.prev = (elm); - - -/* - * single head doubly-linked list - * - * A list is headed by a single head pointer. - * The elements are doubly linked so that an arbitrary element can be - * removed without a need to traverse the list. - * New elements can be added to the list at the head of the list, or - * after an existing element (NO insert at tail). - * A list may only be traversed in the forward direction. - * (note: the list is NULL terminated in next field.) - * - * +-----+ +->+-----+ +->+-----+ +->+-----+ - * | NULL| | | h +--+ | n +----+ | NULL| - * +-----+ | +-----+ | +-----+ +-----+ - * | | | p +--+ | p +--+ - * | | +-----+ | +-----+ | - * +-----------------------+ | - * | | - * +-------------------------+ - */ -#define LIST_HEADER(type)\ -struct {\ - struct type *head;\ -} - -#define LIST_ENTRY(type)\ -struct {\ - struct type *next;\ - struct type **prev;\ -} - -#define LIST_INIT(header) { (header)->head = NULL; } - -/* - * scan list - * - * header - ptr to the header (field in header element) - * elm - ptr to the element to be inserted - * field - name of the link field in list element - * - * struct header_container *container; - * struct header_type *header; - * struct element_type *elm; - * - * header = &container->header_field; - * for (elm = header->head; elm; elm = elm->field.next) - */ - -#define LIST_INSERT_HEAD(header, elm, field) {\ - if (((elm)->field.next = (header)->head) != NULL)\ - (header)->head->field.prev = &(elm)->field.next;\ - (header)->head = (elm);\ - (elm)->field.prev = &(header)->head;\ -} - -#define LIST_INSERT_AFTER(listelm, elm, field) {\ - if (((elm)->field.next = (listelm)->field.next) != NULL)\ - (listelm)->field.next->field.prev = &(elm)->field.next;\ - (listelm)->field.next = (elm);\ - (elm)->field.prev = &(listelm)->field.next;\ -} - -#define LIST_REMOVE(elm, field) {\ - if ((elm)->field.next != NULL)\ - (elm)->field.next->field.prev = (elm)->field.prev;\ - *(elm)->field.prev = (elm)->field.next;\ -} - -#define LIST_SELF(elm, field) {\ - (elm)->field.next = NULL;\ - (elm)->field.prev = &(elm)->field.next;\ -} - -#endif /* !_H_JFS_TYPES */ diff --git a/jni/parted/libparted/fs/linux_swap/linux_swap.c b/jni/parted/libparted/fs/linux_swap/linux_swap.c deleted file mode 100755 index 60100b0..0000000 --- a/jni/parted/libparted/fs/linux_swap/linux_swap.c +++ /dev/null @@ -1,396 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2000, 2002, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/* It's a bit silly calling a swap partition a file system. Oh well... */ - -#include - -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include - -#define SWAP_SPECIFIC(fs) ((SwapSpecific*) (fs->type_specific)) -#define BUFFER_SIZE 128 - -#define LINUXSWAP_BLOCK_SIZES ((int[2]){512, 0}) - -typedef struct { - char page_map[1]; -} SwapOldHeader; - -/* ripped from mkswap */ -typedef struct { - char bootbits[1024]; /* Space for disklabel etc. */ - uint32_t version; - uint32_t last_page; - uint32_t nr_badpages; - unsigned char sws_uuid[16]; - unsigned char sws_volume[16]; - uint32_t padding[117]; - uint32_t badpages[1]; -} SwapNewHeader; - -typedef struct { - union { - SwapNewHeader new; - SwapOldHeader old; - }* header; - - void* buffer; - int buffer_size; - - PedSector page_sectors; - unsigned int page_count; - unsigned int version; - unsigned int max_bad_pages; -} SwapSpecific; - -static PedFileSystemType _swap_v0_type; -static PedFileSystemType _swap_v1_type; -static PedFileSystemType _swap_swsusp_type; - -static PedFileSystem* _swap_v0_open (PedGeometry* geom); -static PedFileSystem* _swap_v1_open (PedGeometry* geom); -static PedFileSystem* _swap_swsusp_open (PedGeometry* geom); -static int swap_close (PedFileSystem* fs); - -static PedGeometry* -_generic_swap_probe (PedGeometry* geom, int kind) -{ - PedFileSystem* fs; - SwapSpecific* fs_info; - PedGeometry* probed_geom; - PedSector length; - - switch (kind) { - /* Check for old style swap partitions. */ - case 0: - fs = _swap_v0_open(geom); - break; - /* Check for new style swap partitions. */ - case 1: - fs = _swap_v1_open(geom); - break; - /* Check for swap partitions containing swsusp data. */ - case -1: - fs = _swap_swsusp_open(geom); - break; - /* Not reached. */ - default: - goto error; - } - - if (!fs) - goto error; - fs_info = SWAP_SPECIFIC (fs); - - if (fs_info->version) - length = fs_info->page_sectors * fs_info->page_count; - else - length = geom->length; - - probed_geom = ped_geometry_new (geom->dev, geom->start, length); - if (!probed_geom) - goto error_close_fs; - swap_close (fs); - return probed_geom; - -error_close_fs: - swap_close (fs); -error: - return NULL; -} - - -static int -swap_init (PedFileSystem* fs) -{ - SwapSpecific* fs_info = SWAP_SPECIFIC (fs); - - fs_info->page_sectors = getpagesize () / fs->geom->dev->sector_size; - fs_info->page_count = fs->geom->length / fs_info->page_sectors; - fs_info->version = 1; - fs_info->max_bad_pages = (getpagesize() - - sizeof (SwapNewHeader)) / 4; - - return ped_geometry_read (fs->geom, fs_info->header, - 0, fs_info->page_sectors); -} - - -static PedFileSystem* -swap_alloc (PedGeometry* geom) -{ - PedFileSystem* fs; - SwapSpecific* fs_info; - - fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem)); - if (!fs) - goto error; - - fs->type_specific = (SwapSpecific*) ped_malloc (sizeof (SwapSpecific)); - if (!fs->type_specific) - goto error_free_fs; - - fs_info = SWAP_SPECIFIC (fs); - fs_info->header = ped_malloc (PED_MAX(getpagesize(), geom->dev->sector_size)); - if (!fs_info->header) - goto error_free_type_specific; - - fs_info = SWAP_SPECIFIC (fs); - fs_info->buffer_size = getpagesize() * BUFFER_SIZE; - fs_info->buffer = ped_malloc (fs_info->buffer_size); - if (!fs_info->buffer) - goto error_free_header; - - fs->geom = ped_geometry_duplicate (geom); - if (!fs->geom) - goto error_free_buffer; - fs->type = &_swap_v1_type; - return fs; - -error_free_buffer: - free (fs_info->buffer); -error_free_header: - free (fs_info->header); -error_free_type_specific: - free (fs->type_specific); -error_free_fs: - free (fs); -error: - return NULL; -} - -static void -swap_free (PedFileSystem* fs) -{ - SwapSpecific* fs_info = SWAP_SPECIFIC (fs); - - free (fs_info->buffer); - free (fs_info->header); - free (fs->type_specific); - - ped_geometry_destroy (fs->geom); - free (fs); -} - -static PedFileSystem* -_swap_v0_open (PedGeometry* geom) -{ - PedFileSystem* fs; - SwapSpecific* fs_info; - const char* sig; - - fs = swap_alloc (geom); - if (!fs) - goto error; - swap_init (fs); - - fs_info = SWAP_SPECIFIC (fs); - if (!ped_geometry_read (fs->geom, fs_info->header, 0, - fs_info->page_sectors)) - goto error_free_fs; - - sig = ((char*) fs_info->header) + getpagesize() - 10; - if (strncmp (sig, "SWAP-SPACE", 10) == 0) { - fs_info->version = 0; - fs_info->page_count - = PED_MIN (fs->geom->length / fs_info->page_sectors, - 8 * (getpagesize() - 10)); - } else { - char _sig [11]; - - memcpy (_sig, sig, 10); - _sig [10] = 0; - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unrecognised old style linux swap signature '%10s'."), _sig); - goto error_free_fs; - } - - fs->checked = 1; - return fs; - -error_free_fs: - swap_free (fs); -error: - return NULL; -} - -static PedFileSystem* -_swap_v1_open (PedGeometry* geom) -{ - PedFileSystem* fs; - SwapSpecific* fs_info; - const char* sig; - - fs = swap_alloc (geom); - if (!fs) - goto error; - if (!swap_init(fs)) - goto error_free_fs; - - fs_info = SWAP_SPECIFIC (fs); - - sig = ((char*) fs_info->header) + getpagesize() - 10; - if (strncmp (sig, "SWAPSPACE2", 10) == 0) { - fs_info->version = 1; - fs_info->page_count = fs_info->header->new.last_page; - } else { - char _sig [11]; - - memcpy (_sig, sig, 10); - _sig [10] = 0; - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unrecognised new style linux swap signature '%10s'."), _sig); - goto error_free_fs; - } - - fs->checked = 1; - return fs; - -error_free_fs: - swap_free (fs); -error: - return NULL; -} - -static PedFileSystem* -_swap_swsusp_open (PedGeometry* geom) -{ - PedFileSystem* fs; - SwapSpecific* fs_info; - const char* sig; - - fs = swap_alloc (geom); - if (!fs) - goto error; - fs->type = &_swap_swsusp_type; - swap_init (fs); - - fs_info = SWAP_SPECIFIC (fs); - if (!ped_geometry_read (fs->geom, fs_info->header, 0, - fs_info->page_sectors)) - goto error_free_fs; - - sig = ((char*) fs_info->header) + getpagesize() - 10; - if (strncmp (sig, "S1SUSPEND", 9) == 0) { - fs_info->version = -1; - } else { - char _sig [10]; - - memcpy (_sig, sig, 9); - _sig [9] = 0; - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unrecognised swsusp linux swap signature '%9s'."), _sig); - goto error_free_fs; - } - - fs->checked = 1; - return fs; - -error_free_fs: - swap_free (fs); -error: - return NULL; -} - -static int -swap_close (PedFileSystem* fs) -{ - swap_free (fs); - return 1; -} - -static PedGeometry* -_swap_v0_probe (PedGeometry* geom) { - return _generic_swap_probe (geom, 0); -} - -static PedGeometry* -_swap_v1_probe (PedGeometry* geom) { - return _generic_swap_probe (geom, 1); -} - -static PedGeometry* -_swap_swsusp_probe (PedGeometry* geom) { - return _generic_swap_probe (geom, -1); -} - -static PedFileSystemOps _swap_v0_ops = { - probe: _swap_v0_probe, -}; - -static PedFileSystemOps _swap_v1_ops = { - probe: _swap_v1_probe, -}; - -static PedFileSystemOps _swap_swsusp_ops = { - probe: _swap_swsusp_probe, -}; - -static PedFileSystemType _swap_v0_type = { - next: NULL, - ops: &_swap_v0_ops, - name: "linux-swap(v0)", -}; - -static PedFileSystemType _swap_v1_type = { - next: NULL, - ops: &_swap_v1_ops, - name: "linux-swap(v1)", -}; - -static PedFileSystemType _swap_swsusp_type = { - next: NULL, - ops: &_swap_swsusp_ops, - name: "swsusp", -}; - -void -ped_file_system_linux_swap_init () -{ - ped_file_system_type_register (&_swap_v0_type); - ped_file_system_type_register (&_swap_v1_type); - ped_file_system_type_register (&_swap_swsusp_type); - - ped_file_system_alias_register (&_swap_v0_type, "linux-swap(old)", 1); - ped_file_system_alias_register (&_swap_v1_type, "linux-swap(new)", 1); - ped_file_system_alias_register (&_swap_v1_type, "linux-swap", 0); -} - -void -ped_file_system_linux_swap_done () -{ - ped_file_system_alias_unregister (&_swap_v0_type, "linux-swap(old)"); - ped_file_system_alias_unregister (&_swap_v1_type, "linux-swap(new)"); - ped_file_system_alias_unregister (&_swap_v1_type, "linux-swap"); - - ped_file_system_type_unregister (&_swap_v0_type); - ped_file_system_type_unregister (&_swap_v1_type); - ped_file_system_type_unregister (&_swap_swsusp_type); -} diff --git a/jni/parted/libparted/fs/nilfs2/nilfs2.c b/jni/parted/libparted/fs/nilfs2/nilfs2.c deleted file mode 100755 index 6204542..0000000 --- a/jni/parted/libparted/fs/nilfs2/nilfs2.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * nilfs2.c - New Implementation of Log filesystem - * - * Written by Jiro SEKIBA - * - * Copyright (C) 2011-2014, 2019-2023 Free Software Foundation, Inc. - * - * 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 3 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, see . - */ - -#include - -#include -#include -#include - -/* Magic value for nilfs2 superblock. */ -#define NILFS2_SUPER_MAGIC 0x3434 - -/* primariy superblock offset in 512bytes blocks. */ -#define NILFS_SB_OFFSET 2 - -/* secondary superblock offset in 512byte blocks. */ -#define NILFS_SB2_OFFSET(devsize) ((((devsize)>>3) - 1) << 3) - -struct __attribute__ ((packed)) nilfs2_super_block { - uint32_t s_rev_level; - uint16_t s_minor_rev_level; - uint16_t s_magic; - uint16_t s_bytes; - uint16_t s_flags; - uint32_t s_crc_seed; - uint32_t s_sum; - uint32_t s_log_block_size; - uint64_t s_nsegments; - uint64_t s_dev_size; - uint64_t s_first_data_block; - uint32_t s_blocks_per_segment; - uint32_t s_r_segments_percentage; - uint64_t s_last_cno; - uint64_t s_last_pseg; - uint64_t s_last_seq; - uint64_t s_free_blocks_count; - uint64_t s_ctime; - uint64_t s_mtime; - uint64_t s_wtime; - uint16_t s_mnt_count; - uint16_t s_max_mnt_count; - uint16_t s_state; - uint16_t s_errors; - uint64_t s_lastcheck; - uint32_t s_checkinterval; - uint32_t s_creator_os; - uint16_t s_def_resuid; - uint16_t s_def_resgid; - uint32_t s_first_ino; - uint16_t s_inode_size; - uint16_t s_dat_entry_size; - uint16_t s_checkpoint_size; - uint16_t s_segment_usage_size; - uint8_t s_uuid[16]; - char s_volume_name[80]; - uint32_t s_c_interval; - uint32_t s_c_block_max; - uint32_t s_reserved[192]; -}; - -static int -is_valid_nilfs_sb(struct nilfs2_super_block *sb) -{ - static unsigned char sum[4]; - const int sumoff = offsetof (struct nilfs2_super_block, s_sum); - size_t bytes; - uint32_t crc; - - if (PED_LE16_TO_CPU(sb->s_magic) != NILFS2_SUPER_MAGIC) - return 0; - - bytes = PED_LE16_TO_CPU(sb->s_bytes); - if (bytes > 1024 || bytes < sumoff - 4) - return 0; - - crc = __efi_crc32(sb, sumoff, PED_LE32_TO_CPU(sb->s_crc_seed)); - crc = __efi_crc32(sum, 4, crc); - crc = __efi_crc32((unsigned char *)sb + sumoff + 4, - bytes - sumoff - 4, crc); - - return crc == PED_LE32_TO_CPU(sb->s_sum); -} - -PedGeometry* -nilfs2_probe (PedGeometry* geom) -{ - struct nilfs2_super_block *sb = NULL; - struct nilfs2_super_block *sb2 = NULL; - PedSector length = geom->length * (geom->dev->sector_size / 512); - - PedSector sb2off = NILFS_SB2_OFFSET(length) / (geom->dev->sector_size / 512); - if (sb2off <= 2) - return NULL; - const int sectors = (4096 + geom->dev->sector_size - 1) / - geom->dev->sector_size; - uint8_t *buf = alloca (sectors * geom->dev->sector_size); - const int sectors2 = (1024 + geom->dev->sector_size -1 ) / - geom->dev->sector_size; - void *buff2 = alloca (sectors2 * geom->dev->sector_size); - - if (ped_geometry_read(geom, buf, 0, sectors)) - sb = (struct nilfs2_super_block*)(buf + 1024); - if (ped_geometry_read(geom, buff2, sb2off, sectors2)) - sb2 = (struct nilfs2_super_block*)buff2; - - if ((!sb || !is_valid_nilfs_sb(sb)) && - (!sb2 || !is_valid_nilfs_sb(sb2))) - return NULL; - - /* reserve 4k bytes for secondary superblock */ - length = sb2off + ((4096 + geom->dev->sector_size - 1) / - geom->dev->sector_size); - - return ped_geometry_new(geom->dev, geom->start, length); -} - -static PedFileSystemOps nilfs2_ops = { - probe: nilfs2_probe, -}; - -static PedFileSystemType nilfs2_type = { - next: NULL, - ops: &nilfs2_ops, - name: "nilfs2", -}; - -void -ped_file_system_nilfs2_init () -{ - ped_file_system_type_register (&nilfs2_type); -} - -void -ped_file_system_nilfs2_done () -{ - ped_file_system_type_unregister (&nilfs2_type); -} diff --git a/jni/parted/libparted/fs/ntfs/ntfs.c b/jni/parted/libparted/fs/ntfs/ntfs.c deleted file mode 100755 index 9829f39..0000000 --- a/jni/parted/libparted/fs/ntfs/ntfs.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include - -#define NTFS_SIGNATURE "NTFS" - -PedGeometry* -ntfs_probe (PedGeometry* geom) -{ - uint8_t *buf = alloca(geom->dev->sector_size); - PedGeometry *newg = NULL; - - if (!ped_geometry_read(geom, buf, 0, 1)) - return 0; - - if (strncmp (NTFS_SIGNATURE, ((char *)buf + 3), strlen (NTFS_SIGNATURE)) == 0) { - uint64_t length; - memcpy(&length, buf + 0x28, sizeof(uint64_t)); - newg = ped_geometry_new (geom->dev, geom->start, length); - } - return newg; -} - -static PedFileSystemOps ntfs_ops = { - probe: ntfs_probe, -}; - -static PedFileSystemType ntfs_type = { - next: NULL, - ops: &ntfs_ops, - name: "ntfs", -}; - -void -ped_file_system_ntfs_init () -{ - ped_file_system_type_register (&ntfs_type); -} - -void -ped_file_system_ntfs_done () -{ - ped_file_system_type_unregister (&ntfs_type); -} diff --git a/jni/parted/libparted/fs/r/fat/bootsector.c b/jni/parted/libparted/fs/r/fat/bootsector.c deleted file mode 100755 index 85ccc0f..0000000 --- a/jni/parted/libparted/fs/r/fat/bootsector.c +++ /dev/null @@ -1,441 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2002, 2004, 2007, 2009-2014, 2019-2023 Free - Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" - -#include -#include -#include -#include -#include -#include -#include - -/* Reads in the boot sector (superblock), and does a minimum of sanity - * checking. The goals are: - * - to detect fat file systems, even if they are damaged [i.e. not - * return an error / throw an exception] - * - to fail detection if there's not enough information for - * fat_boot_sector_probe_type() to work (or possibly crash on a divide-by-zero) - */ -int -fat_boot_sector_read (FatBootSector** bsp, const PedGeometry *geom) -{ - PED_ASSERT (bsp != NULL); - PED_ASSERT (geom != NULL); - - if (!ped_geometry_read_alloc (geom, (void **)bsp, 0, 1)) - return 0; - FatBootSector *bs = *bsp; - if (PED_LE16_TO_CPU (bs->boot_sign) != 0xAA55) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid signature for a FAT " - "file system.")); - return 0; - } - - if (!bs->sector_size - || PED_LE16_TO_CPU (bs->sector_size) % PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid sector size for a FAT " - "file system.")); - return 0; - } - - if (!bs->cluster_size) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid cluster size for a FAT " - "file system.")); - return 0; - } - - if (!bs->reserved) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid number of reserved " - "sectors for a FAT file system.")); - return 0; - } - - if (bs->fats < 1 || bs->fats > 4) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("File system has an invalid number of FATs.")); - return 0; - } - - return 1; -} - -/* - Don't trust the FAT12, FAT16 or FAT32 label string. - */ -FatType _GL_ATTRIBUTE_PURE -fat_boot_sector_probe_type (const FatBootSector* bs, const PedGeometry* geom) -{ - PedSector logical_sector_size; - PedSector first_cluster_sector; - FatCluster cluster_count; - - if (!PED_LE16_TO_CPU (bs->dir_entries)) - return FAT_TYPE_FAT32; - - logical_sector_size = PED_LE16_TO_CPU (bs->sector_size) / 512; - - first_cluster_sector - = PED_LE16_TO_CPU (bs->reserved) * logical_sector_size - + 2 * PED_LE16_TO_CPU (bs->fat_length) * logical_sector_size - + PED_LE16_TO_CPU (bs->dir_entries) - / (512 / sizeof (FatDirEntry)); - cluster_count = (geom->length - first_cluster_sector) - / bs->cluster_size / logical_sector_size; - if (cluster_count > MAX_FAT12_CLUSTERS) - return FAT_TYPE_FAT16; - else - return FAT_TYPE_FAT12; -} - -/* Analyses the boot sector, and sticks appropriate numbers in - fs->type_specific. - - Note: you need to subtract (2 * cluster_sectors) off cluster offset, - because the first cluster is number 2. (0 and 1 are not real clusters, - and referencing them is a bug) - */ -int -fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - int fat_entry_size; - - PED_ASSERT (bs != NULL); - - fs_info->logical_sector_size = PED_LE16_TO_CPU (bs->sector_size) / 512; - - fs_info->sectors_per_track = PED_LE16_TO_CPU (bs->secs_track); - fs_info->heads = PED_LE16_TO_CPU (bs->heads); - if (fs_info->sectors_per_track < 1 || fs_info->sectors_per_track > 63 - || fs_info->heads < 1 || fs_info->heads > 255) { - PedCHSGeometry* bios_geom = &fs->geom->dev->bios_geom; - int cyl_count = 0; - - if (fs_info->heads > 0 && fs_info->sectors_per_track > 0) - cyl_count = fs->geom->dev->length / fs_info->heads - / fs_info->sectors_per_track; - - switch (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_FIX + PED_EXCEPTION_IGNORE - + PED_EXCEPTION_CANCEL, - _("The file system's CHS geometry is (%d, %d, %d), " - "which is invalid. The partition table's CHS " - "geometry is (%d, %d, %d). If you select Ignore, " - "the file system's CHS geometry will be left " - "unchanged. If you select Fix, the file system's " - "CHS geometry will be set to match the partition " - "table's CHS geometry."), - cyl_count, fs_info->heads, fs_info->sectors_per_track, - bios_geom->cylinders, bios_geom->heads, - bios_geom->sectors)) { - - case PED_EXCEPTION_FIX: - fs_info->sectors_per_track = bios_geom->sectors; - fs_info->heads = bios_geom->heads; - bs->secs_track - = PED_CPU_TO_LE16 (fs_info->sectors_per_track); - bs->heads = PED_CPU_TO_LE16 (fs_info->heads); - if (!fat_boot_sector_write (bs, fs)) - return 0; - break; - - case PED_EXCEPTION_CANCEL: - return 0; - - case PED_EXCEPTION_IGNORE: - break; - - default: - break; - } - } - - if (bs->sectors) - fs_info->sector_count = PED_LE16_TO_CPU (bs->sectors) - * fs_info->logical_sector_size; - else - fs_info->sector_count = PED_LE32_TO_CPU (bs->sector_count) - * fs_info->logical_sector_size; - - fs_info->fat_table_count = bs->fats; - fs_info->root_dir_entry_count = PED_LE16_TO_CPU (bs->dir_entries); - fs_info->fat_offset = PED_LE16_TO_CPU (bs->reserved) - * fs_info->logical_sector_size; - fs_info->cluster_sectors = bs->cluster_size - * fs_info->logical_sector_size; - fs_info->cluster_size = fs_info->cluster_sectors * 512; - - if (fs_info->logical_sector_size == 0) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("FAT boot sector says logical sector size is 0. " - "This is weird. ")); - return 0; - } - if (fs_info->fat_table_count == 0) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("FAT boot sector says there are no FAT tables. This " - "is weird. ")); - return 0; - } - if (fs_info->cluster_sectors == 0) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("FAT boot sector says clusters are 0 sectors. This " - "is weird. ")); - return 0; - } - - fs_info->fat_type = fat_boot_sector_probe_type (bs, fs->geom); - if (fs_info->fat_type == FAT_TYPE_FAT12) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("File system is FAT12, which is unsupported.")); - return 0; - } - if (fs_info->fat_type == FAT_TYPE_FAT16) { - fs_info->fat_sectors = PED_LE16_TO_CPU (bs->fat_length) - * fs_info->logical_sector_size; - fs_info->serial_number - = PED_LE32_TO_CPU (bs->u.fat16.serial_number); - fs_info->root_cluster = 0; - fs_info->root_dir_offset - = fs_info->fat_offset - + fs_info->fat_sectors * fs_info->fat_table_count; - fs_info->root_dir_sector_count - = fs_info->root_dir_entry_count * sizeof (FatDirEntry) - / (512 * fs_info->logical_sector_size); - fs_info->cluster_offset - = fs_info->root_dir_offset - + fs_info->root_dir_sector_count; - } - if (fs_info->fat_type == FAT_TYPE_FAT32) { - fs_info->fat_sectors = PED_LE32_TO_CPU (bs->u.fat32.fat_length) - * fs_info->logical_sector_size; - fs_info->serial_number - = PED_LE32_TO_CPU (bs->u.fat32.serial_number); - fs_info->info_sector_offset - = PED_LE16_TO_CPU (fs_info->boot_sector->u.fat32.info_sector) - * fs_info->logical_sector_size; - fs_info->boot_sector_backup_offset - = PED_LE16_TO_CPU (fs_info->boot_sector->u.fat32.backup_sector) - * fs_info->logical_sector_size; - fs_info->root_cluster - = PED_LE32_TO_CPU (bs->u.fat32.root_dir_cluster); - fs_info->root_dir_offset = 0; - fs_info->root_dir_sector_count = 0; - fs_info->cluster_offset - = fs_info->fat_offset - + fs_info->fat_sectors * fs_info->fat_table_count; - } - - fs_info->cluster_count - = (fs_info->sector_count - fs_info->cluster_offset) - / fs_info->cluster_sectors; - - fat_entry_size = fat_table_entry_size (fs_info->fat_type); - if (fs_info->cluster_count + 2 - > fs_info->fat_sectors * 512 / fat_entry_size) - fs_info->cluster_count - = fs_info->fat_sectors * 512 / fat_entry_size - 2; - - fs_info->dir_entries_per_cluster - = fs_info->cluster_size / sizeof (FatDirEntry); - return 1; -} - -#ifndef DISCOVER_ONLY -int -fat_boot_sector_set_boot_code (FatBootSector** bsp, const PedFileSystem* fs) -{ - PED_ASSERT (bsp != NULL); - *bsp = ped_malloc (fs->geom->dev->sector_size); - FatBootSector *bs = *bsp; - PED_ASSERT (bs != NULL); - - memset (bs, 0, 512); - memcpy (bs->boot_jump, FAT_BOOT_JUMP, 3); - PED_ASSERT (sizeof(FAT_BOOT_CODE) < sizeof(bs->u.fat32.boot_code)); - strcpy (bs->u.fat32.boot_code, FAT_BOOT_CODE); - return 1; -} - -int -fat_boot_sector_generate (FatBootSector** bsp, const PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (bsp != NULL); - FatBootSector *bs = *bsp; - PED_ASSERT (bs != NULL); - - memcpy (bs->system_id, "MSWIN4.1", 8); - bs->sector_size = PED_CPU_TO_LE16 (fs_info->logical_sector_size * 512); - bs->cluster_size = fs_info->cluster_sectors - / fs_info->logical_sector_size; - bs->reserved = PED_CPU_TO_LE16 (fs_info->fat_offset - / fs_info->logical_sector_size); - bs->fats = fs_info->fat_table_count; - - bs->dir_entries = (fs_info->fat_type == FAT_TYPE_FAT16) - ? PED_CPU_TO_LE16 (fs_info->root_dir_entry_count) - : 0; - - if (fs_info->sector_count / fs_info->logical_sector_size > 0xffff - || fs_info->fat_type == FAT_TYPE_FAT32) { - bs->sectors = 0; - bs->sector_count = PED_CPU_TO_LE32 (fs_info->sector_count - / fs_info->logical_sector_size); - } else { - bs->sectors = PED_CPU_TO_LE16 (fs_info->sector_count - / fs_info->logical_sector_size); - bs->sector_count = 0; - } - - bs->media = 0xf8; - - bs->secs_track = PED_CPU_TO_LE16 (fs_info->sectors_per_track); - bs->heads = PED_CPU_TO_LE16 (fs_info->heads); - bs->hidden = PED_CPU_TO_LE32 (fs->geom->start); - - if (fs_info->fat_type == FAT_TYPE_FAT32) { - bs->fat_length = 0; - bs->u.fat32.fat_length = PED_CPU_TO_LE32 (fs_info->fat_sectors - / fs_info->logical_sector_size); - bs->u.fat32.flags = 0; /* FIXME: what the hell are these? */ - bs->u.fat32.version = 0; /* must be 0, for Win98 bootstrap */ - bs->u.fat32.root_dir_cluster - = PED_CPU_TO_LE32 (fs_info->root_cluster); - bs->u.fat32.info_sector - = PED_CPU_TO_LE16 (fs_info->info_sector_offset - / fs_info->logical_sector_size); - bs->u.fat32.backup_sector - = PED_CPU_TO_LE16 (fs_info->boot_sector_backup_offset - / fs_info->logical_sector_size); - - bs->u.fat32.drive_num = 0x80; /* _ALWAYS_ 0x80. silly DOS */ - - memset (bs->u.fat32.empty_1, 0, 12); - - bs->u.fat32.ext_signature = 0x29; - bs->u.fat32.serial_number - = PED_CPU_TO_LE32 (fs_info->serial_number); - memcpy (bs->u.fat32.volume_name, "NO NAME ", 11); - memcpy (bs->u.fat32.fat_name, "FAT32 ", 8); - } else { - bs->fat_length - = PED_CPU_TO_LE16 (fs_info->fat_sectors - / fs_info->logical_sector_size); - - bs->u.fat16.drive_num = 0x80; /* _ALWAYS_ 0x80. silly DOS */ - - bs->u.fat16.ext_signature = 0x29; - bs->u.fat16.serial_number - = PED_CPU_TO_LE32 (fs_info->serial_number); - memcpy (bs->u.fat16.volume_name, "NO NAME ", 11); - memcpy (bs->u.fat16.fat_name, "FAT16 ", 8); - } - - bs->boot_sign = PED_CPU_TO_LE16 (0xaa55); - - return 1; -} - -int -fat_boot_sector_write (const FatBootSector* bs, PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (bs != NULL); - - if (!ped_geometry_write (fs->geom, bs, 0, 1)) - return 0; - if (fs_info->fat_type == FAT_TYPE_FAT32) { - if (!ped_geometry_write (fs->geom, bs, - fs_info->boot_sector_backup_offset, 1)) - return 0; - } - return ped_geometry_sync (fs->geom); -} - -int -fat_info_sector_read (FatInfoSector** isp, const PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - int status; - - PED_ASSERT (isp != NULL); - - if (!ped_geometry_read_alloc (fs->geom, (void **)isp, fs_info->info_sector_offset, 1)) - return 0; - FatInfoSector *is = *isp; - if (PED_LE32_TO_CPU (is->signature_2) != FAT32_INFO_MAGIC2) { - status = ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The information sector has the wrong " - "signature (%x). Select cancel for now, " - "and send in a bug report. If you're " - "desperate, it's probably safe to ignore."), - PED_LE32_TO_CPU (is->signature_2)); - if (status == PED_EXCEPTION_CANCEL) return 0; - } - return 1; -} - -int -fat_info_sector_generate (FatInfoSector** isp, const PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (isp != NULL); - *isp = ped_malloc (fs->geom->dev->sector_size); - FatInfoSector *is = *isp; - - fat_table_count_stats (fs_info->fat); - - memset (is, 0, 512); - - is->signature_1 = PED_CPU_TO_LE32 (FAT32_INFO_MAGIC1); - is->signature_2 = PED_CPU_TO_LE32 (FAT32_INFO_MAGIC2); - is->free_clusters = PED_CPU_TO_LE32 (fs_info->fat->free_cluster_count); - is->next_cluster = PED_CPU_TO_LE32 (fs_info->fat->last_alloc); - is->signature_3 = PED_CPU_TO_LE16 (FAT32_INFO_MAGIC3); - - return 1; -} - -int -fat_info_sector_write (const FatInfoSector* is, PedFileSystem *fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (is != NULL); - - if (!ped_geometry_write (fs->geom, is, fs_info->info_sector_offset, 1)) - return 0; - return ped_geometry_sync (fs->geom); -} -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/bootsector.h b/jni/parted/libparted/fs/r/fat/bootsector.h deleted file mode 100755 index 699d6cf..0000000 --- a/jni/parted/libparted/fs/r/fat/bootsector.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_FAT_BOOTSECTOR_H -#define PED_FAT_BOOTSECTOR_H - -typedef struct _FatBootSector FatBootSector; -typedef struct _FatInfoSector FatInfoSector; - -#include "fat.h" - -#define FAT32_INFO_MAGIC1 0x41615252 -#define FAT32_INFO_MAGIC2 0x61417272 -#define FAT32_INFO_MAGIC3 0xaa55 - -/* stolen from mkdosfs, by Dave Hudson */ - -#define FAT_BOOT_MESSAGE \ -"This partition does not have an operating system loader installed on it.\n\r"\ -"Press a key to reboot..." - -#define FAT_BOOT_JUMP "\xeb\x58\x90" /* jmp +5a */ - -#define FAT_BOOT_CODE "\x0e" /* push cs */ \ - "\x1f" /* pop ds */ \ - "\xbe\x74\x7e" /* mov si, offset message */ \ - /* write_msg_loop: */ \ - "\xac" /* lodsb */ \ - "\x22\xc0" /* and al, al */ \ - "\x74\x06" /* jz done (+8) */ \ - "\xb4\x0e" /* mov ah, 0x0e */ \ - "\xcd\x10" /* int 0x10 */ \ - "\xeb\xf5" /* jmp write_msg_loop */ \ - /* done: */ \ - "\xb4\x00" /* mov ah, 0x00 */ \ - "\xcd\x16" /* int 0x16 */ \ - "\xb4\x00" /* mov ah, 0x00 */ \ - "\xcd\x19" /* int 0x19 */ \ - "\xeb\xfe" /* jmp +0 - in case int 0x19 */ \ - /* doesn't work */ \ - /* message: */ \ - FAT_BOOT_MESSAGE - -struct __attribute__ ((packed)) _FatBootSector { - uint8_t boot_jump[3]; /* 00: Boot strap short or near jump */ - uint8_t system_id[8]; /* 03: system name */ - uint16_t sector_size; /* 0b: bytes per logical sector */ - uint8_t cluster_size; /* 0d: sectors/cluster */ - uint16_t reserved; /* 0e: reserved sectors */ - uint8_t fats; /* 10: number of FATs */ - uint16_t dir_entries; /* 11: number of root directory entries */ - uint16_t sectors; /* 13: if 0, total_sect supersedes */ - uint8_t media; /* 15: media code */ - uint16_t fat_length; /* 16: sectors/FAT for FAT12/16 */ - uint16_t secs_track; /* 18: sectors per track */ - uint16_t heads; /* 1a: number of heads */ - uint32_t hidden; /* 1c: hidden sectors (partition start) */ - uint32_t sector_count; /* 20: no. of sectors (if sectors == 0) */ - - union __attribute__ ((packed)) { - /* FAT16 fields */ - struct __attribute__ ((packed)) { - uint8_t drive_num; /* 24: */ - uint8_t empty_1; /* 25: */ - uint8_t ext_signature; /* 26: always 0x29 */ - uint32_t serial_number; /* 27: */ - uint8_t volume_name [11]; /* 2b: */ - uint8_t fat_name [8]; /* 36: */ - uint8_t boot_code[448]; /* 3f: Boot code (or message) */ - } fat16; - /* FAT32 fields */ - struct __attribute__ ((packed)) { - uint32_t fat_length; /* 24: size of FAT in sectors */ - uint16_t flags; /* 28: bit8: fat mirroring, low4: active fat */ - uint16_t version; /* 2a: minor * 256 + major */ - uint32_t root_dir_cluster; /* 2c: */ - uint16_t info_sector; /* 30: */ - uint16_t backup_sector; /* 32: */ - uint8_t empty_1 [12]; /* 34: */ - uint16_t drive_num; /* 40: */ - uint8_t ext_signature; /* 42: always 0x29 */ - uint32_t serial_number; /* 43: */ - uint8_t volume_name [11]; /* 47: */ - uint8_t fat_name [8]; /* 52: */ - uint8_t boot_code[420]; /* 5a: Boot code (or message) */ - } fat32; - } u; - - uint16_t boot_sign; /* 1fe: always 0xAA55 */ -}; - -struct __attribute__ ((packed)) _FatInfoSector { - uint32_t signature_1; /* should be 0x41615252 */ - uint8_t unused [480]; - uint32_t signature_2; /* should be 0x61417272 */ - uint32_t free_clusters; - uint32_t next_cluster; /* most recently allocated cluster */ - uint8_t unused2 [0xe]; - uint16_t signature_3; /* should be 0xaa55 */ -}; - -int fat_boot_sector_read (FatBootSector** bs, const PedGeometry* geom); -FatType fat_boot_sector_probe_type (const FatBootSector* bs, - const PedGeometry* geom); -int fat_boot_sector_analyse (FatBootSector* bs, PedFileSystem* fs); -int fat_boot_sector_set_boot_code (FatBootSector** bs, const PedFileSystem* fs); -int fat_boot_sector_generate (FatBootSector** bs, const PedFileSystem* fs); -int fat_boot_sector_write (const FatBootSector* bs, PedFileSystem* fs); - -int fat_info_sector_read (FatInfoSector** is, const PedFileSystem* fs); -int fat_info_sector_generate (FatInfoSector** is, const PedFileSystem* fs); -int fat_info_sector_write (const FatInfoSector* is, PedFileSystem* fs); - -#endif /* PED_FAT_BOOTSECTOR_H */ diff --git a/jni/parted/libparted/fs/r/fat/calc.c b/jni/parted/libparted/fs/r/fat/calc.c deleted file mode 100755 index 4ba1030..0000000 --- a/jni/parted/libparted/fs/r/fat/calc.c +++ /dev/null @@ -1,433 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2002, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" - -#ifndef DISCOVER_ONLY - -/* returns the minimum size of clusters for a given file system type */ -PedSector _GL_ATTRIBUTE_CONST -fat_min_cluster_size (FatType fat_type) { - switch (fat_type) { - case FAT_TYPE_FAT12: return 1; - case FAT_TYPE_FAT16: return 1024/512; - case FAT_TYPE_FAT32: return 4096/512; - } - return 0; -} - -static PedSector _GL_ATTRIBUTE_CONST -_smallest_power2_over (PedSector ceiling) -{ - PedSector result = 1; - - while (result < ceiling) - result *= 2; - - return result; -} - -/* returns the minimum size of clusters for a given file system type */ -PedSector _GL_ATTRIBUTE_CONST -fat_recommend_min_cluster_size (FatType fat_type, PedSector size) { - switch (fat_type) { - case FAT_TYPE_FAT12: return 1; - case FAT_TYPE_FAT16: return fat_min_cluster_size(fat_type); - case FAT_TYPE_FAT32: - return PED_MAX(_smallest_power2_over(size - / MAX_FAT32_CLUSTERS), - fat_min_cluster_size (fat_type)); - } - return 0; -} - -/* returns the maxmimum size of clusters for a given file system type */ -PedSector _GL_ATTRIBUTE_CONST -fat_max_cluster_size (FatType fat_type) { - switch (fat_type) { - case FAT_TYPE_FAT12: return 1; /* dunno... who cares? */ - case FAT_TYPE_FAT16: return 65536/512; - case FAT_TYPE_FAT32: return 65536/512; - } - return 0; -} - -/* returns the minimum number of clusters for a given file system type */ -FatCluster _GL_ATTRIBUTE_CONST -fat_min_cluster_count (FatType fat_type) { - switch (fat_type) { - case FAT_TYPE_FAT12: - case FAT_TYPE_FAT16: - return fat_max_cluster_count (fat_type) / 2; - - case FAT_TYPE_FAT32: return 0xfff0; - } - return 0; -} - -/* returns the maximum number of clusters for a given file system type */ -FatCluster _GL_ATTRIBUTE_CONST -fat_max_cluster_count (FatType fat_type) { - switch (fat_type) { - case FAT_TYPE_FAT12: return 0xff0; - case FAT_TYPE_FAT16: return 0xfff0; - case FAT_TYPE_FAT32: return 0x0ffffff0; - } - return 0; -} - -/* what is this supposed to be? What drugs are M$ on? (Can I have some? :-) */ -PedSector _GL_ATTRIBUTE_CONST -fat_min_reserved_sector_count (FatType fat_type) -{ - return (fat_type == FAT_TYPE_FAT32) ? 32 : 1; -} - -int -fat_check_resize_geometry (const PedFileSystem* fs, - const PedGeometry* geom, - PedSector new_cluster_sectors, - FatCluster new_cluster_count) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector free_space; - PedSector min_free_space; - PedSector total_space; - PedSector new_total_space; - PedSector dir_space; - - PED_ASSERT (geom != NULL); - - dir_space = fs_info->total_dir_clusters * fs_info->cluster_sectors; - free_space = fs_info->fat->free_cluster_count - * fs_info->cluster_sectors; - total_space = fs_info->fat->cluster_count * fs_info->cluster_sectors; - new_total_space = new_cluster_count * new_cluster_sectors; - min_free_space = total_space - new_total_space + dir_space; - - PED_ASSERT (new_cluster_count - <= fat_max_cluster_count (FAT_TYPE_FAT32)); - - if (free_space < min_free_space) { - char* needed = ped_unit_format (geom->dev, min_free_space); - char* have = ped_unit_format (geom->dev, free_space); - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("You need %s of free disk space to shrink this " - "partition to this size. Currently, only %s is " - "free."), - needed, have); - free (needed); - free (have); - return 0; - } - - return 1; -} - - -/******************************************************************************/ - -/* DO NOT EDIT THIS ALGORITHM! - * As far as I can tell, this is the same algorithm used by Microsoft to - * calculate the size of the file allocaion tables, and the number of clusters. - * I have not verified this by dissassembling Microsoft code - I came to this - * conclusion by empirical analysis (i.e. trial and error - this was HORRIBLE). - * - * If you think this code makes no sense, then you are right. I will restrain - * the urge to inflict serious bodily harm on Microsoft people. - */ - -static int -entries_per_sector (FatType fat_type) -{ - switch (fat_type) { - case FAT_TYPE_FAT12: - return 512 * 3 / 2; - case FAT_TYPE_FAT16: - return 512 / 2; - case FAT_TYPE_FAT32: - return 512 / 4; - } - return 0; -} - -static int -calc_sizes (PedSector size, PedSector align, FatType fat_type, - PedSector root_dir_sectors, PedSector cluster_sectors, - FatCluster* out_cluster_count, PedSector* out_fat_size) -{ - PedSector data_fat_space; /* space available to clusters + FAT */ - PedSector fat_space; /* space taken by each FAT */ - PedSector cluster_space; /* space taken by clusters */ - FatCluster cluster_count; - int i; - - PED_ASSERT (out_cluster_count != NULL); - PED_ASSERT (out_fat_size != NULL); - - data_fat_space = size - fat_min_reserved_sector_count (fat_type) - - align; - if (fat_type == FAT_TYPE_FAT16) - data_fat_space -= root_dir_sectors; - - fat_space = 0; - for (i = 0; i < 2; i++) { - if (fat_type == FAT_TYPE_FAT32) - cluster_space = data_fat_space - fat_space; - else - cluster_space = data_fat_space - 2 * fat_space; - - cluster_count = cluster_space / cluster_sectors; - fat_space = ped_div_round_up (cluster_count + 2, - entries_per_sector (fat_type)); - } - - cluster_space = data_fat_space - 2 * fat_space; - cluster_count = cluster_space / cluster_sectors; - - /* looks like this should be part of the loop condition? - * Need to build the Big Table TM again to check - */ - if (fat_space < ped_div_round_up (cluster_count + 2, - entries_per_sector (fat_type))) { - fat_space = ped_div_round_up (cluster_count + 2, - entries_per_sector (fat_type)); - } - - if (cluster_count > fat_max_cluster_count (fat_type) - || cluster_count < fat_min_cluster_count (fat_type)) - return 0; - - *out_cluster_count = cluster_count; - *out_fat_size = fat_space; - - return 1; -} - -/****************************************************************************/ - -int -fat_calc_sizes (PedSector size, PedSector align, FatType fat_type, - PedSector root_dir_sectors, - PedSector* out_cluster_sectors, FatCluster* out_cluster_count, - PedSector* out_fat_size) -{ - PedSector cluster_sectors; - - PED_ASSERT (out_cluster_sectors != NULL); - PED_ASSERT (out_cluster_count != NULL); - PED_ASSERT (out_fat_size != NULL); - - for (cluster_sectors = fat_recommend_min_cluster_size (fat_type, size); - cluster_sectors <= fat_max_cluster_size (fat_type); - cluster_sectors *= 2) { - if (calc_sizes (size, align, fat_type, root_dir_sectors, - cluster_sectors, - out_cluster_count, out_fat_size)) { - *out_cluster_sectors = cluster_sectors; - return 1; - } - } - - for (cluster_sectors = fat_recommend_min_cluster_size (fat_type, size); - cluster_sectors >= fat_min_cluster_size (fat_type); - cluster_sectors /= 2) { - if (calc_sizes (size, align, fat_type, root_dir_sectors, - cluster_sectors, - out_cluster_count, out_fat_size)) { - *out_cluster_sectors = cluster_sectors; - return 1; - } - } - - /* only make the cluster size really small (<4k) if a bigger one is - * isn't possible. Windows never makes FS's like this, but it - * seems to work... (do more tests!) - */ - for (cluster_sectors = 4; cluster_sectors > 0; cluster_sectors /= 2) { - if (calc_sizes (size, align, fat_type, root_dir_sectors, - cluster_sectors, - out_cluster_count, out_fat_size)) { - *out_cluster_sectors = cluster_sectors; - return 1; - } - } - - return 0; -} - -/* Same as fat_calc_sizes, except it only attempts to match a particular - * cluster size. This is useful, because the FAT resizer can only shrink the - * cluster size. - */ -int -fat_calc_resize_sizes ( - const PedGeometry* geom, - PedSector align, - FatType fat_type, - PedSector root_dir_sectors, - PedSector cluster_sectors, - PedSector* out_cluster_sectors, - FatCluster* out_cluster_count, - PedSector* out_fat_size) -{ - PED_ASSERT (geom != NULL); - PED_ASSERT (out_cluster_sectors != NULL); - PED_ASSERT (out_cluster_count != NULL); - PED_ASSERT (out_fat_size != NULL); - -/* libparted can only reduce the cluster size at this point */ - for (*out_cluster_sectors = cluster_sectors; - *out_cluster_sectors >= fat_min_cluster_size (fat_type); - *out_cluster_sectors /= 2) { - if (calc_sizes (geom->length, align, fat_type, root_dir_sectors, - *out_cluster_sectors, - out_cluster_count, out_fat_size)) - return 1; - } - return 0; -} - -/* Calculates the number of sectors needed to be added to cluster_offset, - to make the cluster on the new file system match up with the ones - on the old file system. - However, some space is reserved by fat_calc_resize_sizes() and - friends, to allow room for this space. If too much of this space is left - over, everyone will complain, so we have to be greedy, and use it all up... - */ -PedSector _GL_ATTRIBUTE_PURE -fat_calc_align_sectors (const PedFileSystem* new_fs, - const PedFileSystem* old_fs) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (new_fs); - PedSector raw_old_meta_data_end; - PedSector new_meta_data_size; - PedSector min_new_meta_data_end; - PedSector new_data_size; - PedSector new_clusters_size; - PedSector align; - - new_meta_data_size - = fat_min_reserved_sector_count (new_fs_info->fat_type) - + new_fs_info->fat_sectors * 2; - - if (new_fs_info->fat_type == FAT_TYPE_FAT16) - new_meta_data_size += new_fs_info->root_dir_sector_count; - - raw_old_meta_data_end = old_fs->geom->start - + old_fs_info->cluster_offset; - - min_new_meta_data_end = new_fs->geom->start + new_meta_data_size; - - if (raw_old_meta_data_end > min_new_meta_data_end) - align = (raw_old_meta_data_end - min_new_meta_data_end) - % new_fs_info->cluster_sectors; - else - align = (new_fs_info->cluster_sectors - - ( (min_new_meta_data_end - raw_old_meta_data_end) - % new_fs_info->cluster_sectors )) - % new_fs_info->cluster_sectors; - - new_data_size = new_fs->geom->length - new_meta_data_size; - new_clusters_size = new_fs_info->cluster_count - * new_fs_info->cluster_sectors; - - while (new_clusters_size + align + new_fs_info->cluster_sectors - <= new_data_size) - align += new_fs_info->cluster_sectors; - - return align; -} - -int _GL_ATTRIBUTE_PURE -fat_is_sector_in_clusters (const PedFileSystem* fs, PedSector sector) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - return sector >= fs_info->cluster_offset - && sector < fs_info->cluster_offset - + fs_info->cluster_sectors * fs_info->cluster_count; -} - -FatFragment _GL_ATTRIBUTE_PURE -fat_cluster_to_frag (const PedFileSystem* fs, FatCluster cluster) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (cluster >= 2 && cluster < fs_info->cluster_count + 2); - - return (cluster - 2) * fs_info->cluster_frags; -} - -FatCluster _GL_ATTRIBUTE_PURE -fat_frag_to_cluster (const PedFileSystem* fs, FatFragment frag) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (frag >= 0 && frag < fs_info->frag_count); - - return frag / fs_info->cluster_frags + 2; -} - -PedSector _GL_ATTRIBUTE_PURE -fat_frag_to_sector (const PedFileSystem* fs, FatFragment frag) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (frag >= 0 && frag < fs_info->frag_count); - - return frag * fs_info->frag_sectors + fs_info->cluster_offset; -} - -FatFragment _GL_ATTRIBUTE_PURE -fat_sector_to_frag (const PedFileSystem* fs, PedSector sector) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (sector >= fs_info->cluster_offset); - - return (sector - fs_info->cluster_offset) / fs_info->frag_sectors; -} - -PedSector _GL_ATTRIBUTE_PURE -fat_cluster_to_sector (const PedFileSystem* fs, FatCluster cluster) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (cluster >= 2 && cluster < fs_info->cluster_count + 2); - - return (cluster - 2) * fs_info->cluster_sectors - + fs_info->cluster_offset; -} - -FatCluster _GL_ATTRIBUTE_PURE -fat_sector_to_cluster (const PedFileSystem* fs, PedSector sector) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (sector >= fs_info->cluster_offset); - - return (sector - fs_info->cluster_offset) / fs_info->cluster_sectors - + 2; -} -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/calc.h b/jni/parted/libparted/fs/r/fat/calc.h deleted file mode 100755 index d4884c1..0000000 --- a/jni/parted/libparted/fs/r/fat/calc.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_FAT_CALC_H -#define PED_FAT_CALC_H - -extern PedSector fat_min_cluster_size (FatType fat_type); -extern PedSector fat_max_cluster_size (FatType fat_type); -extern FatCluster fat_min_cluster_count (FatType fat_type); -extern FatCluster fat_max_cluster_count (FatType fat_type); - -extern PedSector fat_min_reserved_sector_count (FatType fat_type); - -extern int fat_check_resize_geometry (const PedFileSystem* fs, - const PedGeometry* geom, - PedSector new_cluster_sectors, - FatCluster new_cluster_count); - -extern int fat_calc_sizes (PedSector size, - PedSector align, - FatType fat_type, - PedSector root_dir_sectors, - PedSector* out_cluster_sectors, - FatCluster* out_cluster_count, - PedSector* out_fat_size); - -extern int fat_calc_resize_sizes (const PedGeometry* geom, - PedSector align, - FatType fat_type, - PedSector root_dir_sectors, - PedSector cluster_sectors, - PedSector* out_cluster_sectors, - FatCluster* out_cluster_count, - PedSector* out_fat_size); - -extern PedSector -fat_calc_align_sectors (const PedFileSystem* new_fs, - const PedFileSystem* old_fs); - -extern int -fat_is_sector_in_clusters (const PedFileSystem* fs, PedSector sector); - -extern FatFragment -fat_cluster_to_frag (const PedFileSystem* fs, FatCluster cluster); - -extern FatCluster -fat_frag_to_cluster (const PedFileSystem* fs, FatFragment frag); - -extern PedSector -fat_frag_to_sector (const PedFileSystem* fs, FatFragment frag); - -extern FatFragment -fat_sector_to_frag (const PedFileSystem* fs, PedSector sector); - -extern PedSector -fat_cluster_to_sector (const PedFileSystem* fs, FatCluster cluster); - -extern FatCluster -fat_sector_to_cluster (const PedFileSystem* fs, PedSector sector); - -#endif /* PED_FAT_CALC_H */ diff --git a/jni/parted/libparted/fs/r/fat/clstdup.c b/jni/parted/libparted/fs/r/fat/clstdup.c deleted file mode 100755 index 6a3054f..0000000 --- a/jni/parted/libparted/fs/r/fat/clstdup.c +++ /dev/null @@ -1,423 +0,0 @@ -/* - libparted - Copyright (C) 1998-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include - -#include "fat.h" - -#ifndef DISCOVER_ONLY - -static int -needs_duplicating (const FatOpContext* ctx, FatFragment frag) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatCluster cluster = fat_frag_to_cluster (ctx->old_fs, frag); - FatClusterFlag flag; - - PED_ASSERT (cluster >= 2 && cluster < old_fs_info->cluster_count + 2); - - flag = fat_get_fragment_flag (ctx->old_fs, frag); - switch (flag) { - case FAT_FLAG_FREE: - return 0; - - case FAT_FLAG_DIRECTORY: - return 1; - - case FAT_FLAG_FILE: - return fat_op_context_map_static_fragment (ctx, frag) == -1; - - case FAT_FLAG_BAD: - return 0; - } - - return 0; -} - -static int -search_next_fragment (FatOpContext* ctx) -{ - FatSpecific* fs_info = FAT_SPECIFIC (ctx->old_fs); - - for (; ctx->buffer_offset < fs_info->frag_count; ctx->buffer_offset++) { - if (needs_duplicating (ctx, ctx->buffer_offset)) - return 1; - } - return 0; /* all done! */ -} - -static int -read_marked_fragments (FatOpContext* ctx, FatFragment length) -{ - FatSpecific* fs_info = FAT_SPECIFIC (ctx->old_fs); - int status; - FatFragment i; - - ped_exception_fetch_all (); - status = fat_read_fragments (ctx->old_fs, fs_info->buffer, - ctx->buffer_offset, length); - ped_exception_leave_all (); - if (status) - return 1; - - ped_exception_catch (); - -/* something bad happened, so read fragments one by one. (The error may - have occurred on an unused fragment: who cares) */ - for (i = 0; i < length; i++) { - if (ctx->buffer_map [i]) { - if (!fat_read_fragment (ctx->old_fs, - fs_info->buffer + i * fs_info->frag_size, - ctx->buffer_offset + i)) - return 0; - } - } - - return 1; -} - -static int -fetch_fragments (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatFragment fetch_length = 0; - FatFragment frag; - - for (frag = 0; frag < ctx->buffer_frags; frag++) - ctx->buffer_map [frag] = -1; - - for (frag = 0; - frag < ctx->buffer_frags - && ctx->buffer_offset + frag < old_fs_info->frag_count; - frag++) { - if (needs_duplicating (ctx, ctx->buffer_offset + frag)) { - ctx->buffer_map [frag] = 1; - fetch_length = frag + 1; - } - } - - if (!read_marked_fragments (ctx, fetch_length)) - return 0; - - return 1; -} - -/***************************************************************************** - * here starts the write code. All assumes that ctx->buffer_map [first] and - * ctx->buffer_map [last] are occupied by fragments that need to be duplicated. - *****************************************************************************/ - -/* finds the first fragment that is not going to get overwritten (that needs to - get read in) */ -static FatFragment _GL_ATTRIBUTE_PURE -get_first_underlay (const FatOpContext* ctx, int first, int last) -{ - int old; - FatFragment new; - - PED_ASSERT (first <= last); - - new = ctx->buffer_map [first]; - for (old = first + 1; old <= last; old++) { - if (ctx->buffer_map [old] == -1) - continue; - new++; - if (ctx->buffer_map [old] != new) - return new; - } - return -1; -} - -/* finds the last fragment that is not going to get overwritten (that needs to - get read in) */ -static FatFragment _GL_ATTRIBUTE_PURE -get_last_underlay (const FatOpContext* ctx, int first, int last) -{ - int old; - FatFragment new; - - PED_ASSERT (first <= last); - - new = ctx->buffer_map [last]; - for (old = last - 1; old >= first; old--) { - if (ctx->buffer_map [old] == -1) - continue; - new--; - if (ctx->buffer_map [old] != new) - return new; - } - return -1; -} - -/* "underlay" refers to the "static" fragments, that remain unchanged. - * when writing large chunks at a time, we don't want to clobber these, - * so we read them in, and write them back again. MUCH quicker that way. - */ -static int -quick_group_write_read_underlay (FatOpContext* ctx, int first, int last) -{ - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatFragment first_underlay; - FatFragment last_underlay; - FatFragment underlay_length; - - PED_ASSERT (first <= last); - - first_underlay = get_first_underlay (ctx, first, last); - if (first_underlay == -1) - return 1; - last_underlay = get_last_underlay (ctx, first, last); - - PED_ASSERT (first_underlay <= last_underlay); - - underlay_length = last_underlay - first_underlay + 1; - if (!fat_read_fragments (ctx->new_fs, - new_fs_info->buffer - + (first_underlay - ctx->buffer_map [first]) - * new_fs_info->frag_size, - first_underlay, - underlay_length)) - return 0; - return 1; -} - -/* quick_group_write() makes no attempt to recover from errors - just - * does things fast. If there is an error, slow_group_write() is - * called. - * Note: we do syncing writes, to make sure there isn't any - * error writing out. It's rather difficult recovering from errors - * further on. - */ -static int -quick_group_write (FatOpContext* ctx, int first, int last) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - int active_length; - int i; - int offset; - - PED_ASSERT (first <= last); - - ped_exception_fetch_all (); - if (!quick_group_write_read_underlay (ctx, first, last)) - goto error; - - for (i = first; i <= last; i++) { - if (ctx->buffer_map [i] == -1) - continue; - - offset = ctx->buffer_map [i] - ctx->buffer_map [first]; - memcpy (new_fs_info->buffer + offset * new_fs_info->frag_size, - old_fs_info->buffer + i * new_fs_info->frag_size, - new_fs_info->frag_size); - } - - active_length = ctx->buffer_map [last] - ctx->buffer_map [first] + 1; - if (!fat_write_sync_fragments (ctx->new_fs, new_fs_info->buffer, - ctx->buffer_map [first], active_length)) - goto error; - - ped_exception_leave_all (); - return 1; - -error: - ped_exception_catch (); - ped_exception_leave_all (); - return 0; -} - -/* Writes fragments out, one at a time, avoiding errors on redundant writes - * on damaged parts of the disk we already know about. If there's an error - * on one of the required fragments, it gets marked as bad, and a replacement - * is found. - */ -static int -slow_group_write (FatOpContext* ctx, int first, int last) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - int i; - - PED_ASSERT (first <= last); - - for (i = first; i <= last; i++) { - if (ctx->buffer_map [i] == -1) - continue; - - while (!fat_write_sync_fragment (ctx->new_fs, - old_fs_info->buffer + i * old_fs_info->frag_size, - ctx->buffer_map [i])) { - fat_table_set_bad (new_fs_info->fat, - ctx->buffer_map [i]); - ctx->buffer_map [i] = fat_table_alloc_cluster - (new_fs_info->fat); - if (ctx->buffer_map [i] == 0) - return 0; - } - } - return 1; -} - -static int -update_remap (FatOpContext* ctx, int first, int last) -{ - int i; - - PED_ASSERT (first <= last); - - for (i = first; i <= last; i++) { - if (ctx->buffer_map [i] == -1) - continue; - ctx->remap [ctx->buffer_offset + i] = ctx->buffer_map [i]; - } - - return 1; -} - -static int -group_write (FatOpContext* ctx, int first, int last) -{ - PED_ASSERT (first <= last); - - if (!quick_group_write (ctx, first, last)) { - if (!slow_group_write (ctx, first, last)) - return 0; - } - if (!update_remap (ctx, first, last)) - return 0; - return 1; -} - -/* assumes fragment size and new_fs's cluster size are equal */ -static int -write_fragments (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - int group_start; - int group_end = -1; /* shut gcc up! */ - FatFragment mapped_length; - FatFragment i; - FatCluster new_cluster; - - PED_ASSERT (ctx->buffer_offset < old_fs_info->frag_count); - - group_start = -1; - for (i = 0; i < ctx->buffer_frags; i++) { - if (ctx->buffer_map [i] == -1) - continue; - - ctx->frags_duped++; - - new_cluster = fat_table_alloc_cluster (new_fs_info->fat); - if (!new_cluster) - return 0; - fat_table_set_eof (new_fs_info->fat, new_cluster); - ctx->buffer_map [i] = fat_cluster_to_frag (ctx->new_fs, - new_cluster); - - if (group_start == -1) - group_start = group_end = i; - - PED_ASSERT (ctx->buffer_map [i] - >= ctx->buffer_map [group_start]); - - mapped_length = ctx->buffer_map [i] - - ctx->buffer_map [group_start] + 1; - if (mapped_length <= ctx->buffer_frags) { - group_end = i; - } else { - /* ran out of room in the buffer, so write this group, - * and start a new one... - */ - if (!group_write (ctx, group_start, group_end)) - return 0; - group_start = group_end = i; - } - } - - PED_ASSERT (group_start != -1); - - if (!group_write (ctx, group_start, group_end)) - return 0; - return 1; -} - -/* default all fragments to unmoved - */ -static void -init_remap (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatFragment i; - - for (i = 0; i < old_fs_info->frag_count; i++) - ctx->remap[i] = fat_op_context_map_static_fragment (ctx, i); -} - -static FatFragment -count_frags_to_dup (FatOpContext* ctx) -{ - FatSpecific* fs_info = FAT_SPECIFIC (ctx->old_fs); - FatFragment i; - FatFragment total; - - total = 0; - - for (i = 0; i < fs_info->frag_count; i++) { - if (needs_duplicating (ctx, i)) - total++; - } - - return total; -} - -/* duplicates unreachable file clusters, and all directory clusters - */ -int -fat_duplicate_clusters (FatOpContext* ctx, PedTimer* timer) -{ - FatFragment total_frags_to_dup; - - init_remap (ctx); - total_frags_to_dup = count_frags_to_dup (ctx); - - ped_timer_reset (timer); - ped_timer_set_state_name (timer, "moving data"); - - ctx->buffer_offset = 0; - ctx->frags_duped = 0; - while (search_next_fragment (ctx)) { - ped_timer_update ( - timer, 1.0 * ctx->frags_duped / total_frags_to_dup); - - if (!fetch_fragments (ctx)) - return 0; - if (!write_fragments (ctx)) - return 0; - ctx->buffer_offset += ctx->buffer_frags; - } - - ped_timer_update (timer, 1.0); - return 1; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/clstdup.h b/jni/parted/libparted/fs/r/fat/clstdup.h deleted file mode 100755 index 23e51b4..0000000 --- a/jni/parted/libparted/fs/r/fat/clstdup.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - libparted - Copyright (C) 1999, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef PED_FAT_CLSTDUP_H_INCLUDED -#define PED_FAT_CLSTDUP_H_INCLUDED - -#include "context.h" - -/* the big important one :-) */ -extern int fat_duplicate_clusters (FatOpContext* ctx, PedTimer* timer); - -#endif /* PED_FAT_CLSTDUP_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/fat/context.c b/jni/parted/libparted/fs/r/fat/context.c deleted file mode 100755 index c782323..0000000 --- a/jni/parted/libparted/fs/r/fat/context.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include - -#include "fat.h" - -#ifndef DISCOVER_ONLY - -/* Note: this deals with file system start and end sectors, even if the physical - * devices are different (eg for fat_copy()) Perhaps this is a hack, but it - * works ;-) - */ -static int -calc_deltas (FatOpContext* ctx) -{ - PedFileSystem* old_fs = ctx->old_fs; - PedFileSystem* new_fs = ctx->new_fs; - FatSpecific* old_fs_info = FAT_SPECIFIC (old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (new_fs); - PedSector old_cluster_ofs; - PedSector new_cluster_ofs; - PedSector sector_delta; - - old_cluster_ofs = old_fs->geom->start + old_fs_info->cluster_offset; - new_cluster_ofs = new_fs->geom->start + new_fs_info->cluster_offset; - - if (new_cluster_ofs > old_cluster_ofs) { - ctx->start_move_dir = FAT_DIR_FORWARD; - sector_delta = new_cluster_ofs - old_cluster_ofs; - } else { - ctx->start_move_dir = FAT_DIR_BACKWARD; - sector_delta = old_cluster_ofs - new_cluster_ofs; - } - - if (sector_delta % new_fs_info->cluster_sectors) { - ped_exception_throw ( - PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL, - _("Cluster start delta = %d, which is not a multiple " - "of the cluster size %d."), - (int) sector_delta, - (int) new_fs_info->cluster_sectors); - return 0; - } - - ctx->start_move_delta = sector_delta / ctx->frag_sectors; - -#ifdef PED_VERBOSE - printf ("Start move delta is: %d %s.\n", - (int) ctx->start_move_delta, - (ctx->start_move_dir == FAT_DIR_FORWARD)? - "forwards" : "backwards"); -#endif - - return 1; -} - -FatOpContext* -fat_op_context_new (PedFileSystem* new_fs, PedFileSystem* old_fs) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (new_fs); - FatOpContext* ctx; - - ctx = (FatOpContext*) ped_malloc (sizeof (FatOpContext)); - if (!ctx) - goto error; - - ctx->frag_sectors = PED_MIN (old_fs_info->cluster_sectors, - new_fs_info->cluster_sectors); - if (!fat_set_frag_sectors (new_fs, ctx->frag_sectors)) - goto error; - if (!fat_set_frag_sectors (old_fs, ctx->frag_sectors)) - goto error; - - ctx->buffer_frags = old_fs_info->buffer_sectors / ctx->frag_sectors; - ctx->buffer_map = (FatFragment*) ped_malloc (sizeof (FatFragment) - * ctx->buffer_frags); - if (!ctx->buffer_map) - goto error_free_ctx; - - ctx->remap = (FatFragment*) ped_malloc (sizeof (FatFragment) - * old_fs_info->frag_count); - if (!ctx->remap) - goto error_free_buffer_map; - - ctx->new_fs = new_fs; - ctx->old_fs = old_fs; - if (!calc_deltas (ctx)) - goto error_free_buffer_map; - - return ctx; - -error_free_buffer_map: - free (ctx->buffer_map); -error_free_ctx: - free (ctx); -error: - return NULL; -} - -void -fat_op_context_destroy (FatOpContext* ctx) -{ - free (ctx->buffer_map); - free (ctx->remap); - free (ctx); -} - -FatFragment _GL_ATTRIBUTE_PURE -fat_op_context_map_static_fragment (const FatOpContext* ctx, FatFragment frag) -{ - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatFragment result; - - if (ctx->new_fs->geom->dev != ctx->old_fs->geom->dev) - return -1; - - if (ctx->start_move_dir == FAT_DIR_FORWARD) { - if (frag < ctx->start_move_delta) - return -1; - result = frag - ctx->start_move_delta; - } else { - result = frag + ctx->start_move_delta; - } - - if (result >= new_fs_info->frag_count) - return -1; - - return result; -} - -FatCluster -fat_op_context_map_static_cluster (const FatOpContext* ctx, FatCluster clst) -{ - FatFragment mapped_frag; - - mapped_frag = fat_op_context_map_static_fragment (ctx, - fat_cluster_to_frag (ctx->old_fs, clst)); - if (mapped_frag != -1) - return fat_frag_to_cluster (ctx->new_fs, mapped_frag); - else - return 0; -} - -FatFragment _GL_ATTRIBUTE_PURE -fat_op_context_map_fragment (const FatOpContext* ctx, FatFragment frag) -{ - return ctx->remap [frag]; -} - -FatCluster -fat_op_context_map_cluster (const FatOpContext* ctx, FatCluster clst) -{ - FatFragment mapped_frag; - - mapped_frag = fat_op_context_map_fragment (ctx, - fat_cluster_to_frag (ctx->old_fs, clst)); - if (mapped_frag != -1) - return fat_frag_to_cluster (ctx->new_fs, mapped_frag); - else - return 0; -} - -/* This function sets the initial fat for the new resized file system. - This is in *NO WAY* a proper FAT table - all it does is: - a) mark bad clusters as bad. - b) mark used clusters (that is, clusters from the original FS that are - reachable from the resized one). Marks as EOF (i.e. used, end of - file chain). - c) mark original file system metadata as EOF (i.e. used), to prevent - it from being clobbered. This will leave the original file system - intact, until the partition table is modified, if the start of - the partition is moved. - - The FATs are rebuilt *properly* after cluster relocation. This here is - only to mark clusters as used, so when cluster relocation occurs, clusters - aren't relocated on top of ones marked in a, b or c. -*/ -int -fat_op_context_create_initial_fat (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatCluster clst; - FatCluster new_clst; - PedSector sect; - PedSector new_sect; - FatFragment frag; - FatFragment new_frag; - FatClusterFlag frag_flag; - - new_fs_info->fat = fat_table_new ( - new_fs_info->fat_type, - new_fs_info->fat_sectors * 512 - / fat_table_entry_size (new_fs_info->fat_type)); - if (!new_fs_info->fat) - return 0; - - if (!fat_table_set_cluster_count (new_fs_info->fat, - new_fs_info->cluster_count)) - return 0; - -/* mark bad and used clusters */ - for (frag = 0; frag < old_fs_info->frag_count; frag++) { - frag_flag = fat_get_fragment_flag (ctx->old_fs, frag); - if (frag_flag == FAT_FLAG_FREE) - continue; - - new_frag = fat_op_context_map_static_fragment (ctx, frag); - if (new_frag == -1) - continue; - - new_clst = fat_frag_to_cluster (ctx->new_fs, new_frag); - PED_ASSERT (new_clst != 0); - - if (frag_flag == FAT_FLAG_BAD) { - if (!fat_table_set_bad (new_fs_info->fat, new_clst)) - return 0; - } else { - if (!fat_table_set_eof (new_fs_info->fat, new_clst)) - return 0; - } - } - -/* mark metadata regions that map to clusters on the new FS */ - for (sect = 0; sect < old_fs_info->cluster_offset; sect++) { - new_sect = ped_geometry_map (ctx->new_fs->geom, - ctx->old_fs->geom, sect); - if (new_sect == -1 - || !fat_is_sector_in_clusters (ctx->new_fs, new_sect)) - continue; - - clst = fat_sector_to_cluster (ctx->new_fs, new_sect); - PED_ASSERT (clst != 0); - - if (!fat_table_set_eof (new_fs_info->fat, clst)) - return 0; - } - - return 1; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/context.h b/jni/parted/libparted/fs/r/fat/context.h deleted file mode 100755 index 9a76a47..0000000 --- a/jni/parted/libparted/fs/r/fat/context.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - libparted - Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_FAT_CONTEXT_H_INCLUDED -#define PED_FAT_CONTEXT_H_INCLUDED - -#include "count.h" - -enum _FatDirection { - FAT_DIR_FORWARD, - FAT_DIR_BACKWARD -}; -typedef enum _FatDirection FatDirection; - -struct _FatOpContext { - PedFileSystem* old_fs; - PedFileSystem* new_fs; - - PedSector frag_sectors; /* should equal old_fs and - new_fs's frag_sectors */ - - FatDirection start_move_dir; - FatFragment start_move_delta; - - FatFragment buffer_offset; - FatFragment buffer_frags; - FatFragment* buffer_map; - - FatFragment frags_duped; - - FatFragment* remap; - - FatCluster new_root_dir [32]; -}; -typedef struct _FatOpContext FatOpContext; - -extern FatOpContext* fat_op_context_new (PedFileSystem* new_fs, - PedFileSystem* old_fs); - -extern void fat_op_context_destroy (FatOpContext* ctx); - -extern FatFragment fat_op_context_map_static_fragment (const FatOpContext* ctx, - FatFragment frag); -extern FatCluster fat_op_context_map_static_cluster (const FatOpContext* ctx, - FatCluster clst); - -extern FatFragment fat_op_context_map_fragment (const FatOpContext* ctx, - FatFragment frag); -extern FatCluster fat_op_context_map_cluster (const FatOpContext* ctx, - FatCluster clst); - -extern int fat_op_context_create_initial_fat (FatOpContext* ctx); - -#endif /* PED_FAT_CONTEXT_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/fat/count.c b/jni/parted/libparted/fs/r/fat/count.c deleted file mode 100755 index e23404b..0000000 --- a/jni/parted/libparted/fs/r/fat/count.c +++ /dev/null @@ -1,319 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" -#include "traverse.h" - -#include -#include -#include - -#ifndef DISCOVER_ONLY - -/* - prints out the sequence of clusters for a given file chain, beginning - at start_cluster. -*/ -#ifdef PED_VERBOSE -static void -print_chain (PedFileSystem* fs, FatCluster start) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster clst; - int this_row; - - this_row = 0; - for (clst = start; !fat_table_is_eof (fs_info->fat, clst); - clst = fat_table_get (fs_info->fat, clst)) { - printf (" %d", (int) clst); - if (++this_row == 7) { - putchar ('\n'); - this_row = 0; - } - } - putchar ('\n'); -} -#endif /* PED_VERBOSE */ - -static PedSector -remainder_round_up (PedSector a, PedSector b) -{ - PedSector result; - - result = a % b; - if (!result) - result = b; - return result; -} - -/* - traverse the FAT for a file/directory, marking each entry's flag - to "flag". -*/ -static int -flag_traverse_fat (PedFileSystem* fs, const char* chain_name, FatCluster start, - FatClusterFlag flag, PedSector size) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster clst; - FatCluster prev_clst; - int last_cluster_usage; - FatCluster chain_length = 0; - - if (fat_table_is_eof (fs_info->fat, start)) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Bad directory entry for %s: first cluster is the " - "end of file marker."), - chain_name) - != PED_EXCEPTION_IGNORE) - return 0; - } - - for (prev_clst = clst = start; !fat_table_is_eof (fs_info->fat, clst); - prev_clst = clst, clst = fat_table_get (fs_info->fat, clst)) { - chain_length++; - if (!clst) { - ped_exception_throw (PED_EXCEPTION_FATAL, - PED_EXCEPTION_CANCEL, - _("Bad FAT: unterminated chain for %s. You " - "should run dosfsck or scandisk."), - chain_name); - return 0; - } - - if (clst >= fs_info->fat->cluster_count + 2) { - ped_exception_throw (PED_EXCEPTION_FATAL, - PED_EXCEPTION_CANCEL, - _("Bad FAT: cluster %d outside file system " - "in chain for %s. You should run dosfsck " - "or scandisk."), - (int) clst, chain_name); - return 0; - } - - if (fs_info->cluster_info [clst].flag != FAT_FLAG_FREE ) { - ped_exception_throw (PED_EXCEPTION_FATAL, - PED_EXCEPTION_CANCEL, - _("Bad FAT: cluster %d is cross-linked for " - "%s. You should run dosfsck or scandisk."), - (int) clst, chain_name); - return 0; - } - - if (flag == FAT_FLAG_DIRECTORY) - fs_info->total_dir_clusters++; - - fs_info->cluster_info [clst].flag = flag; - fs_info->cluster_info [clst].units_used = 0; /* 0 == 64 */ - } - - if (size - && chain_length - != ped_div_round_up (size, fs_info->cluster_sectors)) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("%s is %dk, but it has %d clusters (%dk)."), - chain_name, - (int) size / 2, - (int) chain_length, - (int) chain_length * fs_info->cluster_sectors / 2) - != PED_EXCEPTION_IGNORE) - return 0; - } - - last_cluster_usage - = ped_div_round_up (64 * remainder_round_up (size, - fs_info->cluster_sectors), - fs_info->cluster_sectors); - - fs_info->cluster_info [prev_clst].units_used = last_cluster_usage; - - return 1; -} - -/* - recursively traverses a directory, flagging all clusters in the process. - It frees the traverse_info structure before returning. -*/ -static int -flag_traverse_dir (FatTraverseInfo* trav_info) { - PedFileSystem* fs = trav_info->fs; - FatDirEntry* this_entry; - FatTraverseInfo* subdir_trav_info; - char file_name [4096]; - char* file_name_start; - FatCluster first_cluster; - PedSector size; - - PED_ASSERT (trav_info != NULL); - - strcpy (file_name, trav_info->dir_name); - file_name_start = file_name + strlen (file_name); - - while ( (this_entry = fat_traverse_next_dir_entry (trav_info)) ) { - if (fat_dir_entry_is_null_term (this_entry)) - break; - if (!fat_dir_entry_has_first_cluster (this_entry, fs)) - continue; - if (this_entry->name [0] == '.') - continue; /* skip . and .. entries */ - - fat_dir_entry_get_name (this_entry, file_name_start); - first_cluster = fat_dir_entry_get_first_cluster(this_entry, fs); - size = ped_div_round_up (fat_dir_entry_get_length (this_entry), - 512); - -#ifdef PED_VERBOSE - printf ("%s: ", file_name); - print_chain (fs, first_cluster); -#endif - - if (fat_dir_entry_is_directory (this_entry)) { - if (!flag_traverse_fat (fs, file_name, first_cluster, - FAT_FLAG_DIRECTORY, size)) - return 0; - - subdir_trav_info = fat_traverse_directory (trav_info, - this_entry); - if (!subdir_trav_info) - return 0; - if (!flag_traverse_dir (subdir_trav_info)) - return 0; - } else if (fat_dir_entry_is_file (this_entry)) { - if (!flag_traverse_fat (fs, file_name, first_cluster, - FAT_FLAG_FILE, size)) - return 0; - } - } - - fat_traverse_complete (trav_info); - return 1; -} - -static void -_mark_bad_clusters (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster cluster; - - for (cluster = 2; cluster < fs_info->cluster_count + 2; cluster++) { - if (fat_table_is_bad (fs_info->fat, cluster)) - fs_info->cluster_info [cluster].flag = FAT_FLAG_BAD; - } -} - -/* - fills in cluster_info. Each FAT entry (= cluster) is flagged as either - FAT_FLAG_FREE, FAT_FLAG_FILE or FAT_FLAG_DIRECTORY. - - Also, the fraction of each cluster (x/64) is recorded -*/ -int -fat_collect_cluster_info (PedFileSystem* fs) { - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatTraverseInfo* trav_info; - - /* set all clusters to unused as a default */ - memset (fs_info->cluster_info, 0, fs_info->fat->cluster_count + 2); - fs_info->total_dir_clusters = 0; - - if (fs_info->fat_type == FAT_TYPE_FAT32) { - trav_info = fat_traverse_begin (fs, fs_info->root_cluster, - "\\"); - if (!flag_traverse_dir (trav_info)) - return 0; - if (!flag_traverse_fat (fs, "\\", fs_info->root_cluster, - FAT_FLAG_DIRECTORY, 0)) - return 0; - } else { - trav_info = fat_traverse_begin (fs, FAT_ROOT, "\\"); - if (!flag_traverse_dir (trav_info)) - return 0; - } - - _mark_bad_clusters (fs); - return 1; -} - -FatClusterFlag _GL_ATTRIBUTE_PURE -fat_get_cluster_flag (PedFileSystem* fs, FatCluster cluster) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - return fs_info->cluster_info [cluster].flag; -} - -PedSector _GL_ATTRIBUTE_PURE -fat_get_cluster_usage (PedFileSystem* fs, FatCluster cluster) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - int fraction; - - if (fs_info->cluster_info [cluster].flag == FAT_FLAG_FREE) - return 0; - - fraction = fs_info->cluster_info [cluster].units_used; - if (fraction == 0) - fraction = 64; - - return fraction * fs_info->cluster_sectors / 64; -} - -FatClusterFlag -fat_get_fragment_flag (PedFileSystem* fs, FatFragment frag) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster cluster = fat_frag_to_cluster (fs, frag); - FatFragment offset = frag % fs_info->cluster_frags; - FatFragment last_frag_used; - FatClusterFlag flag; - - PED_ASSERT (cluster >= 2 && cluster < fs_info->cluster_count + 2); - - flag = fat_get_cluster_flag (fs, cluster); - if (flag != FAT_FLAG_FILE && flag != FAT_FLAG_DIRECTORY) - return flag; - last_frag_used = (fat_get_cluster_usage (fs, cluster) - 1) - / fs_info->frag_sectors; - if (offset > last_frag_used) - return FAT_FLAG_FREE; - else - return flag; -} - -int -fat_is_fragment_active (PedFileSystem* fs, FatFragment frag) -{ - switch (fat_get_fragment_flag (fs, frag)) { - case FAT_FLAG_FREE: - case FAT_FLAG_BAD: - return 0; - - case FAT_FLAG_FILE: - case FAT_FLAG_DIRECTORY: - return 1; - } - return 0; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/count.h b/jni/parted/libparted/fs/r/fat/count.h deleted file mode 100755 index bb7d6af..0000000 --- a/jni/parted/libparted/fs/r/fat/count.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - libparted - Copyright (C) 1999-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef COUNT_H_INCLUDED -#define COUNT_H_INCLUDED - -typedef enum _FatClusterFlag FatClusterFlag; -typedef struct _FatClusterInfo FatClusterInfo; - -enum _FatClusterFlag { - FAT_FLAG_FREE=0, - FAT_FLAG_FILE=1, - FAT_FLAG_DIRECTORY=2, - FAT_FLAG_BAD=3 -}; - -struct __attribute__ ((packed)) _FatClusterInfo { - unsigned int units_used:6; /* 1 unit = cluster_size / 64 */ - FatClusterFlag flag:2; -}; - -extern int fat_collect_cluster_info (PedFileSystem *fs); -extern FatClusterFlag fat_get_cluster_flag (PedFileSystem* fs, - FatCluster cluster); -extern PedSector fat_get_cluster_usage (PedFileSystem* fs, FatCluster cluster); -extern FatClusterFlag fat_get_fragment_flag (PedFileSystem* fs, - FatFragment frag); -extern int fat_is_fragment_active (PedFileSystem* fs, FatFragment frag); - -#endif /* COUNT_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/fat/fat.c b/jni/parted/libparted/fs/r/fat/fat.c deleted file mode 100755 index 6583b5b..0000000 --- a/jni/parted/libparted/fs/r/fat/fat.c +++ /dev/null @@ -1,652 +0,0 @@ -/* - libparted - Copyright (C) 1998-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include -#include - -#include "fat.h" -#include "calc.h" -#include "../../../labels/misc.h" - -PedFileSystem* -fat_alloc (const PedGeometry* geom) -{ - PedFileSystem* fs; - - fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem)); - if (!fs) - goto error; - - fs->type_specific = (FatSpecific*) ped_malloc (sizeof (FatSpecific)); - if (!fs->type_specific) - goto error_free_fs; - FatSpecific* fs_info = (FatSpecific*) fs->type_specific; - fs_info->boot_sector = NULL; - fs_info->info_sector = NULL; - fs->geom = ped_geometry_duplicate (geom); - if (!fs->geom) - goto error_free_type_specific; - - fs->checked = 0; - return fs; - -error_free_type_specific: - free (fs->type_specific); -error_free_fs: - free (fs); -error: - return NULL; -} - -/* Requires the boot sector to be analysed */ -int -fat_alloc_buffers (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - fs_info->buffer_sectors = BUFFER_SIZE; - fs_info->buffer = ped_malloc (fs_info->buffer_sectors * 512); - if (!fs_info->buffer) - goto error; - - fs_info->cluster_info = ped_malloc (fs_info->cluster_count + 2); - if (!fs_info->cluster_info) - goto error_free_buffer; - - return 1; - -error_free_buffer: - free (fs_info->buffer); -error: - return 0; -}; - -void -fat_free_buffers (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - free (fs_info->cluster_info); - free (fs_info->buffer); -} - -void -fat_free (PedFileSystem* fs) -{ - FatSpecific* fs_info = (FatSpecific*) fs->type_specific; - free (fs_info->boot_sector); - ped_geometry_destroy (fs->geom); - free (fs->type_specific); - free (fs); -} - -int -fat_set_frag_sectors (PedFileSystem* fs, PedSector frag_sectors) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (fs_info->cluster_sectors % frag_sectors == 0 - && frag_sectors <= fs_info->cluster_sectors); - - fs_info->frag_size = frag_sectors * 512; - fs_info->frag_sectors = frag_sectors; - fs_info->buffer_frags = fs_info->buffer_sectors / frag_sectors; - fs_info->cluster_frags = fs_info->cluster_sectors / frag_sectors; - fs_info->frag_count = fs_info->cluster_count * fs_info->cluster_frags; - - return 1; -} - -#ifndef DISCOVER_ONLY -int -fat_clobber (PedGeometry* geom) -{ - FatBootSector *boot_sector; - int ok; - - if (!fat_boot_sector_read (&boot_sector, geom)) - return 1; - - boot_sector->system_id[0] = 0; - boot_sector->boot_sign = 0; - if (boot_sector->u.fat16.fat_name[0] == 'F') - boot_sector->u.fat16.fat_name[0] = 0; - if (boot_sector->u.fat32.fat_name[0] == 'F') - boot_sector->u.fat32.fat_name[0] = 0; - - ok = ped_geometry_write (geom, boot_sector, 0, 1); - free (boot_sector); - return ok; -} - -static int -_init_fats (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster table_size; - - table_size = fs_info->fat_sectors * 512 - / fat_table_entry_size (fs_info->fat_type); - fs_info->fat = fat_table_new (fs_info->fat_type, table_size); - if (!fs_info->fat) - goto error; - - if (!fat_table_read (fs_info->fat, fs, 0)) - goto error_free_fat; - - return 1; - -error_free_fat: - fat_table_destroy (fs_info->fat); -error: - return 0; -} - -PedFileSystem* -fat_open (PedGeometry* geom) -{ - PedFileSystem* fs; - FatSpecific* fs_info; - - fs = fat_alloc (geom); - if (!fs) - goto error; - fs_info = (FatSpecific*) fs->type_specific; - - if (!fat_boot_sector_read (&fs_info->boot_sector, geom)) - goto error_free_fs; - if (!fat_boot_sector_analyse (fs_info->boot_sector, fs)) - goto error_free_fs; - fs->type = (fs_info->fat_type == FAT_TYPE_FAT16) - ? &fat16_type - : &fat32_type; - if (fs_info->fat_type == FAT_TYPE_FAT32) { - if (!fat_info_sector_read (&fs_info->info_sector, fs)) - goto error_free_fs; - } - - if (!_init_fats (fs)) - goto error_free_fs; - if (!fat_alloc_buffers (fs)) - goto error_free_fat_table; - if (!fat_collect_cluster_info (fs)) - goto error_free_buffers; - - return fs; - -error_free_buffers: - fat_free_buffers (fs); -error_free_fat_table: - fat_table_destroy (fs_info->fat); -error_free_fs: - fat_free (fs); -error: - return NULL; -} - -static int -fat_root_dir_clear (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - memset (fs_info->buffer, 0, 512 * fs_info->root_dir_sector_count); - return ped_geometry_write (fs->geom, fs_info->buffer, - fs_info->root_dir_offset, - fs_info->root_dir_sector_count); -} - -PedFileSystem* -fat_create (PedGeometry* geom, FatType fat_type, PedTimer* timer) -{ - PedFileSystem* fs; - FatSpecific* fs_info; - FatCluster table_size; - - fs = fat_alloc (geom); - if (!fs) - goto error; - fs_info = (FatSpecific*) fs->type_specific; - - fs_info->logical_sector_size = 1; - fs_info->sectors_per_track = geom->dev->bios_geom.sectors; - fs_info->heads = geom->dev->bios_geom.heads; - fs_info->sector_count = fs->geom->length; - fs_info->fat_table_count = 2; -/* some initial values, to be changed later */ - fs_info->root_dir_sector_count = FAT_ROOT_DIR_ENTRY_COUNT - / (512 / sizeof (FatDirEntry)); - fs_info->root_dir_entry_count = FAT_ROOT_DIR_ENTRY_COUNT; - - fs_info->fat_type = fat_type; - if (!fat_calc_sizes (fs->geom->length, 0, - fs_info->fat_type, - fs_info->root_dir_sector_count, - &fs_info->cluster_sectors, - &fs_info->cluster_count, - &fs_info->fat_sectors)) { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Partition too big/small for a %s file system."), - (fat_type == FAT_TYPE_FAT16) - ? fat16_type.name - : fat32_type.name); - goto error_free_fs; - } - - fs_info->cluster_size = fs_info->cluster_sectors * 512; - - fs_info->fat_offset = fat_min_reserved_sector_count (fs_info->fat_type); - fs_info->dir_entries_per_cluster - = fs_info->cluster_size / sizeof (FatDirEntry); - - if (fs_info->fat_type == FAT_TYPE_FAT16) { - /* FAT16 */ - fs->type = &fat16_type; - - if (fs_info->cluster_count - > fat_max_cluster_count (fs_info->fat_type)) { - fs_info->cluster_count - = fat_max_cluster_count (fs_info->fat_type); - } - - fs_info->root_dir_sector_count - = FAT_ROOT_DIR_ENTRY_COUNT - / (512 / sizeof (FatDirEntry)); - fs_info->root_dir_entry_count = FAT_ROOT_DIR_ENTRY_COUNT; - fs_info->root_dir_offset - = fs_info->fat_offset - + fs_info->fat_sectors * fs_info->fat_table_count; - fs_info->cluster_offset - = fs_info->root_dir_offset - + fs_info->root_dir_sector_count; - } else { - /* FAT32 */ - fs->type = &fat32_type; - - fs_info->info_sector_offset = 1; - fs_info->boot_sector_backup_offset = 6; - - fs_info->root_dir_sector_count = 0; - fs_info->root_dir_entry_count = 0; - fs_info->root_dir_offset = 0; - - fs_info->cluster_offset - = fs_info->fat_offset - + fs_info->fat_sectors * fs_info->fat_table_count; - } - - table_size = fs_info->fat_sectors * 512 - / fat_table_entry_size (fs_info->fat_type); - fs_info->fat = fat_table_new (fs_info->fat_type, table_size); - if (!fs_info->fat) - goto error_free_fs; - fat_table_set_cluster_count (fs_info->fat, fs_info->cluster_count); - if (!fat_alloc_buffers (fs)) - goto error_free_fat_table; - - if (fs_info->fat_type == FAT_TYPE_FAT32) { - fs_info->root_cluster - = fat_table_alloc_cluster (fs_info->fat); - fat_table_set_eof (fs_info->fat, fs_info->root_cluster); - memset (fs_info->buffer, 0, fs_info->cluster_size); - if (!fat_write_cluster (fs, fs_info->buffer, - fs_info->root_cluster)) - goto error_free_buffers; - } - - fs_info->serial_number = generate_random_uint32 (); - - if (!fat_boot_sector_set_boot_code (&fs_info->boot_sector, fs)) - goto error_free_buffers; - if (!fat_boot_sector_generate (&fs_info->boot_sector, fs)) - goto error_free_buffers; - if (!fat_boot_sector_write (fs_info->boot_sector, fs)) - goto error_free_buffers; - if (fs_info->fat_type == FAT_TYPE_FAT32) { - if (!fat_info_sector_generate (&fs_info->info_sector, fs)) - goto error_free_buffers; - if (!fat_info_sector_write (fs_info->info_sector, fs)) - goto error_free_buffers; - } - - if (!fat_table_write_all (fs_info->fat, fs)) - goto error_free_buffers; - - if (fs_info->fat_type == FAT_TYPE_FAT16) { - if (!fat_root_dir_clear (fs)) - goto error_free_buffers; - } - - return fs; - -error_free_buffers: - fat_free_buffers (fs); -error_free_fat_table: - fat_table_destroy (fs_info->fat); -error_free_fs: - fat_free (fs); -error: - return NULL; -} - -PedFileSystem* -fat_create_fat16 (PedGeometry* geom, PedTimer* timer) -{ - return fat_create (geom, FAT_TYPE_FAT16, timer); -} - -PedFileSystem* -fat_create_fat32 (PedGeometry* geom, PedTimer* timer) -{ - return fat_create (geom, FAT_TYPE_FAT32, timer); -} - -int -fat_close (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - fat_free_buffers (fs); - fat_table_destroy (fs_info->fat); - fat_free (fs); - return 1; -} - -/* Hack: just resize the file system outside of its boundaries! */ -PedFileSystem* -fat_copy (const PedFileSystem* fs, PedGeometry* geom, PedTimer* timer) -{ - PedFileSystem* new_fs; - - new_fs = ped_file_system_open (fs->geom); - if (!new_fs) - goto error; - if (!ped_file_system_resize (new_fs, geom, timer)) - goto error_close_new_fs; - return new_fs; - -error_close_new_fs: - ped_file_system_close (new_fs); -error: - return 0; -} - -static int -_compare_fats (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatTable* table_copy; - FatCluster table_size; - int i; - - table_size = fs_info->fat_sectors * 512 - / fat_table_entry_size (fs_info->fat_type); - - table_copy = fat_table_new (fs_info->fat_type, table_size); - if (!table_copy) - goto error; - - for (i = 1; i < fs_info->fat_table_count; i++) { - if (!fat_table_read (table_copy, fs, i)) - goto error_free_table_copy; - if (!fat_table_compare (fs_info->fat, table_copy)) { - if (ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("The FATs don't match. If you don't know " - "what this means, then select cancel, run " - "scandisk on the file system, and then come " - "back.")) - != PED_EXCEPTION_IGNORE) - goto error_free_table_copy; - } - } - - fat_table_destroy (table_copy); - return 1; - -error_free_table_copy: - fat_table_destroy (table_copy); -error: - return 0; -} - -int -fat_check (PedFileSystem* fs, PedTimer* timer) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector cluster_sectors; - FatCluster cluster_count; - PedSector fat_sectors; - PedSector align_sectors; - FatCluster info_free_clusters; - - align_sectors = fs_info->fat_offset - - fat_min_reserved_sector_count (fs_info->fat_type); - - if (!fat_calc_sizes (fs->geom->length, - align_sectors, - fs_info->fat_type, - fs_info->root_dir_sector_count, - &cluster_sectors, - &cluster_count, - &fat_sectors)) { - if (ped_exception_throw (PED_EXCEPTION_BUG, - PED_EXCEPTION_IGNORE_CANCEL, - _("There are no possible configurations for this FAT " - "type.")) - != PED_EXCEPTION_IGNORE) - goto error; - } - - if (fs_info->fat_type == FAT_TYPE_FAT16) { - if (cluster_sectors != fs_info->cluster_sectors - || cluster_count != fs_info->cluster_count - || fat_sectors != fs_info->fat_sectors) { - if (ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("File system doesn't have expected sizes for " - "Windows to like it. " - "Cluster size is %dk (%dk expected); " - "number of clusters is %d (%d expected); " - "size of FATs is %d sectors (%d expected)."), - (int) fs_info->cluster_sectors / 2, - (int) cluster_sectors / 2, - (int) fs_info->cluster_count, - (int) cluster_count, - (int) fs_info->fat_sectors, - (int) fat_sectors) - != PED_EXCEPTION_IGNORE) - goto error; - } - } - - if (fs_info->fat_type == FAT_TYPE_FAT32) { - info_free_clusters - = PED_LE32_TO_CPU (fs_info->info_sector->free_clusters); - if (info_free_clusters != (FatCluster) -1 - && info_free_clusters != fs_info->fat->free_cluster_count) { - if (ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("File system is reporting the free space as " - "%d clusters, not %d clusters."), - info_free_clusters, - fs_info->fat->free_cluster_count) - != PED_EXCEPTION_IGNORE) - goto error; - } - } - - if (!_compare_fats (fs)) - goto error; - - fs->checked = 1; - return 1; /* existence of fs implies consistency ;-) */ - -error: - return 0; -} - -/* Calculates how much space there will be in clusters in: - * old_fs intersect the-new-fs - */ -static PedSector -_calc_resize_data_size ( - const PedFileSystem* old_fs, - PedSector new_cluster_sectors, - FatCluster new_cluster_count, - PedSector new_fat_size) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (old_fs); - PedSector fat_size_delta; - - fat_size_delta = old_fs_info->fat_sectors - new_fat_size; - return new_cluster_sectors * new_cluster_count - fat_size_delta * 2; -} - -static int -_test_resize_size (const PedFileSystem* fs, - PedSector length, PedSector min_data_size) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedGeometry geom; - PedSector _cluster_sectors; - FatCluster _cluster_count; - PedSector _fat_size; - - ped_geometry_init (&geom, fs->geom->dev, fs->geom->start, length); - - if (fat_calc_resize_sizes ( - &geom, - fs_info->cluster_sectors, - FAT_TYPE_FAT16, - fs_info->root_dir_sector_count, - fs_info->cluster_sectors, - &_cluster_sectors, - &_cluster_count, - &_fat_size) - && _calc_resize_data_size (fs, _cluster_sectors, _cluster_count, - _fat_size) - >= min_data_size) - return 1; - - if (fat_calc_resize_sizes ( - &geom, - fs_info->cluster_sectors, - FAT_TYPE_FAT32, - 0, - fs_info->cluster_sectors, - &_cluster_sectors, - &_cluster_count, - &_fat_size) - && _calc_resize_data_size (fs, _cluster_sectors, _cluster_count, - _fat_size) - >= min_data_size) - return 1; - - return 0; -} - -/* does a binary search (!) for the mininum size. Too hard to compute directly - * (see calc_sizes() for why!) - */ -static PedSector -_get_min_resize_size (const PedFileSystem* fs, PedSector min_data_size) -{ - PedSector min_length = 0; - PedSector max_length = fs->geom->length; - PedSector length; - - while (min_length < max_length - 1) { - length = (min_length + max_length) / 2; - if (_test_resize_size (fs, length, min_data_size)) - max_length = length; - else - min_length = length; - } - -/* adds a bit of leeway (64 sectors), for resolving extra issues, like root - * directory allocation, that aren't covered here. - */ - return max_length + 64; -} - -PedConstraint* -fat_get_copy_constraint (const PedFileSystem* fs, const PedDevice* dev) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedGeometry full_dev; - PedSector min_cluster_count; - FatCluster used_clusters; - PedSector min_data_size; - - if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1)) - return NULL; - - used_clusters = fs_info->fat->cluster_count - - fs_info->fat->free_cluster_count; - min_cluster_count = used_clusters + fs_info->total_dir_clusters; - min_data_size = min_cluster_count * fs_info->cluster_sectors; - - return ped_constraint_new (ped_alignment_any, ped_alignment_any, - &full_dev, &full_dev, - _get_min_resize_size (fs, min_data_size), - dev->length); -} - -PedConstraint* -fat_get_resize_constraint (const PedFileSystem* fs) -{ - return fat_get_copy_constraint (fs, fs->geom->dev); -} - -PedConstraint* -fat_get_create_constraint_fat16 (const PedDevice* dev) -{ - PedGeometry full_dev; - PedSector min_size; - PedSector max_size; - - if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1)) - return NULL; - - min_size = 65794; - max_size = 2097153; - - return ped_constraint_new ( - ped_alignment_any, ped_alignment_any, - &full_dev, &full_dev, - min_size, max_size); -} - -PedConstraint* -fat_get_create_constraint_fat32 (const PedDevice* dev) -{ - PedGeometry full_dev; - PedSector min_size; - - if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1)) - return NULL; - - min_size = 525224; - - return ped_constraint_new ( - ped_alignment_any, ped_alignment_any, - &full_dev, &full_dev, - min_size, dev->length); -} -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/fat.h b/jni/parted/libparted/fs/r/fat/fat.h deleted file mode 100755 index 54f0669..0000000 --- a/jni/parted/libparted/fs/r/fat/fat.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - libparted - Copyright (C) 1998-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef FAT_H_INCLUDED -#define FAT_H_INCLUDED - -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include -#include -#include - -#define BUFFER_SIZE 1024 /* buffer size in sectors (512 bytes) */ - -typedef uint32_t FatCluster; -typedef int32_t FatFragment; - -enum _FatType { - FAT_TYPE_FAT12, - FAT_TYPE_FAT16, - FAT_TYPE_FAT32 -}; -typedef enum _FatType FatType; - -typedef struct _FatSpecific FatSpecific; -typedef struct _FatDirEntry FatDirEntry; - -/* FIXME: YUCKY */ -#include "table.h" -#include "bootsector.h" -#include "context.h" -#include "fatio.h" -#include "traverse.h" -#include "calc.h" -#include "count.h" -#include "clstdup.h" - -struct __attribute__ ((packed)) _FatDirEntry { - char name[8]; - uint8_t extension[3]; - uint8_t attributes; - uint8_t is_upper_case_name; - uint8_t creation_time_low; /* milliseconds */ - uint16_t creation_time_high; - uint16_t creation_date; - uint16_t access_date; - uint16_t first_cluster_high; /* for FAT32 */ - uint16_t time; - uint16_t date; - uint16_t first_cluster; - uint32_t length; -}; - -struct _FatSpecific { - FatBootSector *boot_sector; /* structure of boot sector */ - FatInfoSector *info_sector; /* fat32-only information sector */ - - int logical_sector_size; /* illogical sector size :-) */ - PedSector sector_count; - - int sectors_per_track; /* BIOS CHS stuff (S) */ - int heads; /* BIOS CHS stuff (H) */ - - int cluster_size; - PedSector cluster_sectors; - FatCluster cluster_count; - int dir_entries_per_cluster; - - FatType fat_type; - int fat_table_count; - PedSector fat_sectors; - - uint32_t serial_number; - - PedSector info_sector_offset; /* FAT32 only */ - PedSector fat_offset; - PedSector root_dir_offset; /* non-FAT32 */ - PedSector cluster_offset; - PedSector boot_sector_backup_offset; - - FatCluster root_cluster; /* FAT32 only */ - int root_dir_entry_count; /* non-FAT32 */ - PedSector root_dir_sector_count; /* non-FAT32 */ - FatCluster total_dir_clusters; - - FatTable* fat; - FatClusterInfo* cluster_info; - - PedSector buffer_sectors; - char* buffer; - - int frag_size; - PedSector frag_sectors; - FatFragment frag_count; - FatFragment buffer_frags; - FatFragment cluster_frags; -}; - -#define FAT_SPECIFIC(fs) ((FatSpecific*) fs->type_specific) - -#define FAT_ROOT 0 - -#define DELETED_FLAG 0xe5 - -#define READONLY_ATTR 0x01 -#define HIDDEN_ATTR 0x02 -#define SYSTEM_ATTR 0x04 -#define VOLUME_LABEL_ATTR 0x08 -#define VFAT_ATTR 0x0f -#define DIRECTORY_ATTR 0x10 -#define ARCH_ATTR 0x20 - -#define MAX_FAT12_CLUSTERS 4086 -#define MAX_FAT16_CLUSTERS 65526 -#define MAX_FAT32_CLUSTERS 2000000 - -#define FAT_ROOT_DIR_ENTRY_COUNT 512 - -extern PedFileSystemType fat16_type; -extern PedFileSystemType fat32_type; - -extern void fat_print (const PedFileSystem* fs); - -extern PedFileSystem* fat_alloc (const PedGeometry* geom); -extern void fat_free (PedFileSystem* fs); -extern int fat_alloc_buffers (PedFileSystem* fs); -extern void fat_free_buffers (PedFileSystem* fs); - -extern int fat_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer); - -extern int fat_set_frag_sectors (PedFileSystem* fs, PedSector frag_sectors); - -#endif /* FAT_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/fat/fatio.c b/jni/parted/libparted/fs/r/fat/fatio.c deleted file mode 100755 index 3a947ff..0000000 --- a/jni/parted/libparted/fs/r/fat/fatio.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" -#include "fatio.h" - -#include -#include -#include -#include -#include -#include -#include - -#ifndef DISCOVER_ONLY - -int -fat_read_fragments (PedFileSystem* fs, char* buf, FatFragment frag, - FatFragment count) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector sector = fat_frag_to_sector (fs, frag); - PedSector sector_count = count * fs_info->frag_sectors; - - PED_ASSERT (frag >= 0 && frag < fs_info->frag_count); - - return ped_geometry_read (fs->geom, buf, sector, sector_count); -} - -int -fat_read_fragment (PedFileSystem* fs, char* buf, FatFragment frag) -{ - return fat_read_fragments (fs, buf, frag, 1); -} - -int -fat_write_fragments (PedFileSystem* fs, char* buf, FatFragment frag, - FatFragment count) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector sector = fat_frag_to_sector (fs, frag); - PedSector sector_count = count * fs_info->frag_sectors; - - PED_ASSERT (frag >= 0 && frag < fs_info->frag_count); - - return ped_geometry_write (fs->geom, buf, sector, sector_count); -} - -int -fat_write_fragment (PedFileSystem* fs, char* buf, FatFragment frag) -{ - return fat_write_fragments (fs, buf, frag, 1); -} - -int -fat_write_sync_fragments (PedFileSystem* fs, char* buf, FatFragment frag, - FatFragment count) -{ - if (!fat_write_fragments (fs, buf, frag, count)) - return 0; - if (!ped_geometry_sync (fs->geom)) - return 0; - return 1; -} - -int -fat_write_sync_fragment (PedFileSystem* fs, char* buf, FatFragment frag) -{ - return fat_write_sync_fragments (fs, buf, frag, 1); -} - -int -fat_read_clusters (PedFileSystem* fs, char *buf, FatCluster cluster, - FatCluster count) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector sector = fat_cluster_to_sector (fs, cluster); - PedSector sector_count = count * fs_info->cluster_sectors; - - PED_ASSERT (cluster >= 2 - && cluster + count - 1 < fs_info->cluster_count + 2); - - return ped_geometry_read (fs->geom, buf, sector, sector_count); -} - -int -fat_read_cluster (PedFileSystem* fs, char *buf, FatCluster cluster) -{ - return fat_read_clusters (fs, buf, cluster, 1); -} - -int -fat_write_clusters (PedFileSystem* fs, char *buf, FatCluster cluster, - FatCluster count) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector sector = fat_cluster_to_sector (fs, cluster); - PedSector sector_count = count * fs_info->cluster_sectors; - - PED_ASSERT (cluster >= 2 - && cluster + count - 1 < fs_info->cluster_count + 2); - - return ped_geometry_write (fs->geom, buf, sector, sector_count); -} - -int -fat_write_cluster (PedFileSystem* fs, char *buf, FatCluster cluster) -{ - return fat_write_clusters (fs, buf, cluster, 1); -} - -int -fat_write_sync_clusters (PedFileSystem* fs, char *buf, FatCluster cluster, - FatCluster count) -{ - if (!fat_write_clusters (fs, buf, cluster, count)) - return 0; - if (!ped_geometry_sync (fs->geom)) - return 0; - return 1; -} - -int -fat_write_sync_cluster (PedFileSystem* fs, char *buf, FatCluster cluster) -{ - if (!fat_write_cluster (fs, buf, cluster)) - return 0; - if (!ped_geometry_sync (fs->geom)) - return 0; - return 1; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/fatio.h b/jni/parted/libparted/fs/r/fat/fatio.h deleted file mode 100755 index 53ebed7..0000000 --- a/jni/parted/libparted/fs/r/fat/fatio.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef FATIO_H_INCLUDED -#define FATIO_H_INCLUDED - -#include "fat.h" - -extern int fat_read_fragments (PedFileSystem* fs, char* buf, FatFragment frag, - FatFragment count); -extern int fat_write_fragments (PedFileSystem* fs, char* buf, FatFragment frag, - FatFragment count); -extern int fat_write_sync_fragments (PedFileSystem* fs, char* buf, - FatFragment frag, FatFragment count); - -extern int fat_read_fragment (PedFileSystem* fs, char* buf, FatFragment frag); -extern int fat_write_fragment (PedFileSystem* fs, char* buf, FatFragment frag); -extern int fat_write_sync_fragment (PedFileSystem* fs, char* buf, - FatFragment frag); - -extern int fat_read_clusters (PedFileSystem* fs, char* buf, FatCluster cluster, - FatCluster count); -extern int fat_write_clusters (PedFileSystem* fs, char* buf, FatCluster cluster, - FatCluster count); -extern int fat_write_sync_clusters (PedFileSystem* fs, char* buf, - FatCluster cluster, FatCluster count); - -extern int fat_read_cluster (PedFileSystem* fs, char *buf, FatCluster cluster); -extern int fat_write_cluster (PedFileSystem* fs, char *buf, FatCluster cluster); -extern int fat_write_sync_cluster (PedFileSystem* fs, char *buf, - FatCluster cluster); - -#endif /* FATIO_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/fat/resize.c b/jni/parted/libparted/fs/r/fat/resize.c deleted file mode 100755 index 78dede4..0000000 --- a/jni/parted/libparted/fs/r/fat/resize.c +++ /dev/null @@ -1,876 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" -#include "traverse.h" -#include "count.h" -#include "fatio.h" -#include "calc.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef DISCOVER_ONLY - -/* Recursively builds (i.e. makes consistent) the duplicated directory tree - * (leaving the original directory tree in tact) - */ -static int -fat_construct_directory (FatOpContext* ctx, FatTraverseInfo* trav_info) -{ - FatTraverseInfo* sub_dir_info; - FatDirEntry* dir_entry; - FatCluster old_first_cluster; - - while ( (dir_entry = fat_traverse_next_dir_entry (trav_info)) ) { - if (fat_dir_entry_is_null_term (dir_entry)) - break; - if (!fat_dir_entry_has_first_cluster (dir_entry, ctx->old_fs)) - continue; - - fat_traverse_mark_dirty (trav_info); - - old_first_cluster = fat_dir_entry_get_first_cluster (dir_entry, - ctx->old_fs); - fat_dir_entry_set_first_cluster (dir_entry, ctx->new_fs, - fat_op_context_map_cluster (ctx, old_first_cluster)); - - if (fat_dir_entry_is_directory (dir_entry) - && dir_entry->name [0] != '.') { - sub_dir_info - = fat_traverse_directory (trav_info, dir_entry); - if (!sub_dir_info) - return 0; - if (!fat_construct_directory (ctx, sub_dir_info)) - return 0; - } - } - /* remove "stale" entries at the end */ - while ((dir_entry = fat_traverse_next_dir_entry (trav_info))) { - memset (dir_entry, 0, sizeof (FatDirEntry)); - fat_traverse_mark_dirty (trav_info); - } - fat_traverse_complete (trav_info); - return 1; -} - -static int -duplicate_legacy_root_dir (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - - PED_ASSERT (old_fs_info->root_dir_sector_count - == new_fs_info->root_dir_sector_count); - - if (!ped_geometry_read (ctx->old_fs->geom, old_fs_info->buffer, - old_fs_info->root_dir_offset, - old_fs_info->root_dir_sector_count)) - return 0; - - if (!ped_geometry_write (ctx->new_fs->geom, old_fs_info->buffer, - new_fs_info->root_dir_offset, - new_fs_info->root_dir_sector_count)) - return 0; - - return 1; -} - -/* - Constructs the new directory tree for legacy (FAT16) file systems. -*/ -static int -fat_construct_legacy_root (FatOpContext* ctx) -{ - FatTraverseInfo* trav_info; - - if (!duplicate_legacy_root_dir (ctx)) - return 0; - trav_info = fat_traverse_begin (ctx->new_fs, FAT_ROOT, "\\"); - return fat_construct_directory (ctx, trav_info); -} - -/* - Constructs the new directory tree for new (FAT32) file systems. -*/ -static int -fat_construct_root (FatOpContext* ctx) -{ - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatTraverseInfo* trav_info; - - trav_info = fat_traverse_begin (ctx->new_fs, new_fs_info->root_cluster, - "\\"); - fat_construct_directory (ctx, trav_info); - return 1; -} - -/* Converts the root directory between FAT16 and FAT32. NOTE: this code - * can also do no conversion. I'm leaving fat_construct_directory(), because - * it's really pretty :-) It also leaves a higher chance of deleted file - * recovery, because it doesn't remove redundant entries. (We do this here, - * because brain-damaged FAT16 has an arbitary limit on root directory entries, - * so we save room) - */ -static int -fat_convert_directory (FatOpContext* ctx, FatTraverseInfo* old_trav, - FatTraverseInfo* new_trav) -{ - FatTraverseInfo* sub_old_dir_trav; - FatTraverseInfo* sub_new_dir_trav; - FatDirEntry* new_dir_entry; - FatDirEntry* old_dir_entry; - FatCluster old_first_cluster; - - while ( (old_dir_entry = fat_traverse_next_dir_entry (old_trav)) ) { - if (fat_dir_entry_is_null_term (old_dir_entry)) - break; - if (!fat_dir_entry_is_active (old_dir_entry)) - continue; - - new_dir_entry = fat_traverse_next_dir_entry (new_trav); - if (!new_dir_entry) { - return ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("There's not enough room in the root " - "directory for all of the files. Either " - "cancel, or ignore to lose the files.")) - == PED_EXCEPTION_IGNORE; - } - - *new_dir_entry = *old_dir_entry; - fat_traverse_mark_dirty (new_trav); - - if (!fat_dir_entry_has_first_cluster (old_dir_entry, - ctx->old_fs)) - continue; - - old_first_cluster = fat_dir_entry_get_first_cluster ( - old_dir_entry, ctx->old_fs); - fat_dir_entry_set_first_cluster (new_dir_entry, ctx->new_fs, - fat_op_context_map_cluster (ctx, old_first_cluster)); - - if (fat_dir_entry_is_directory (old_dir_entry) - && old_dir_entry->name [0] != '.') { - sub_old_dir_trav - = fat_traverse_directory (old_trav, old_dir_entry); - if (!sub_old_dir_trav) return 0; - sub_new_dir_trav - = fat_traverse_directory (new_trav, new_dir_entry); - if (!sub_new_dir_trav) { - fat_traverse_complete (sub_old_dir_trav); - return 0; - } - - if (!fat_convert_directory (ctx, sub_old_dir_trav, - sub_new_dir_trav)) - return 0; - } - } - - /* remove "stale" entries at the end, just in case there is some - * overlap - */ - while ((new_dir_entry = fat_traverse_next_dir_entry (new_trav))) { - memset (new_dir_entry, 0, sizeof (FatDirEntry)); - fat_traverse_mark_dirty (new_trav); - } - - fat_traverse_complete (old_trav); - fat_traverse_complete (new_trav); - return 1; -} - -static void -clear_cluster (PedFileSystem* fs, FatCluster cluster) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - memset (fs_info->buffer, 0, fs_info->cluster_size); - fat_write_cluster (fs, fs_info->buffer, cluster); -} - -/* This MUST be called BEFORE the fat_construct_new_fat(), because cluster - * allocation depend on the old FAT. The reason is, old clusters may - * still be needed during the resize, (particularly clusters in the directory - * tree) even if they will be discarded later. - */ -static int -alloc_root_dir (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatCluster i; - FatCluster cluster; - FatCluster cluster_count; - - PED_ASSERT (new_fs_info->fat_type == FAT_TYPE_FAT32); - - cluster_count = ped_div_round_up ( - PED_MAX (16, old_fs_info->root_dir_sector_count), - new_fs_info->cluster_sectors); - - for (i = 0; i < cluster_count; i++) { - cluster = fat_table_alloc_check_cluster (new_fs_info->fat, - ctx->new_fs); - if (!cluster) - return 0; - ctx->new_root_dir [i] = cluster; - clear_cluster (ctx->new_fs, cluster); - } - ctx->new_root_dir [i] = 0; - new_fs_info->root_cluster = ctx->new_root_dir [0]; - return 1; -} - -/* when converting FAT32 -> FAT16 - * fat_duplicate clusters() duplicated the root directory unnecessarily. - * Let's free it. - * - * This must be called AFTER fat_construct_new_fat(). (otherwise, our - * changes just get overwritten) - */ -static int -free_root_dir (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatCluster old_cluster; - FatFragment i; - - PED_ASSERT (old_fs_info->fat_type == FAT_TYPE_FAT32); - PED_ASSERT (new_fs_info->fat_type == FAT_TYPE_FAT16); - - for (old_cluster = old_fs_info->root_cluster; - !fat_table_is_eof (old_fs_info->fat, old_cluster); - old_cluster = fat_table_get (old_fs_info->fat, old_cluster)) { - FatFragment old_frag; - old_frag = fat_cluster_to_frag (ctx->old_fs, old_cluster); - for (i = 0; i < new_fs_info->cluster_frags; i++) { - FatFragment new_frag; - FatCluster new_clst; - new_frag = fat_op_context_map_fragment (ctx, - old_frag + i); - new_clst = fat_frag_to_cluster (ctx->old_fs, new_frag); - if (!fat_table_set_avail (new_fs_info->fat, new_clst)) - return 0; - } - } - - return 1; -} - -static int -fat_clear_root_dir (PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - int i; - - PED_ASSERT (fs_info->fat_type == FAT_TYPE_FAT16); - PED_ASSERT (fs_info->root_dir_sector_count); - - memset (fs_info->buffer, 0, 512); - - for (i = 0; i < fs_info->root_dir_sector_count; i++) { - if (!ped_geometry_write (fs->geom, fs_info->buffer, - fs_info->root_dir_offset + i, 1)) { - if (ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Error writing to the root directory.")) - == PED_EXCEPTION_CANCEL) - return 0; - } - } - return 1; -} - -static int -fat_construct_converted_tree (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatTraverseInfo* old_trav_info; - FatTraverseInfo* new_trav_info; - - if (new_fs_info->fat_type == FAT_TYPE_FAT32) { - new_trav_info = fat_traverse_begin (ctx->new_fs, - new_fs_info->root_cluster, "\\"); - if (!new_trav_info) return 0; - old_trav_info = fat_traverse_begin (ctx->old_fs, FAT_ROOT, - "\\"); - } else { - fat_clear_root_dir (ctx->new_fs); - new_trav_info = fat_traverse_begin (ctx->new_fs, FAT_ROOT, - "\\"); - if (!new_trav_info) return 0; - old_trav_info = fat_traverse_begin (ctx->old_fs, - old_fs_info->root_cluster, "\\"); - } - if (!old_trav_info) { - fat_traverse_complete (new_trav_info); - return 0; - } - if (!fat_convert_directory (ctx, old_trav_info, new_trav_info)) - return 0; - return 1; -} - -/* - Constructs the new directory tree to match the new file locations. -*/ -static int -fat_construct_dir_tree (FatOpContext* ctx) -{ - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - - if (new_fs_info->fat_type == old_fs_info->fat_type) { - switch (old_fs_info->fat_type) { - case FAT_TYPE_FAT12: - PED_ASSERT (0); - break; - - case FAT_TYPE_FAT16: - return fat_construct_legacy_root (ctx); - - case FAT_TYPE_FAT32: - return fat_construct_root (ctx); - } - } else { - return fat_construct_converted_tree (ctx); - } - - return 0; -} - -static FatFragment -_get_next_old_frag (FatOpContext* ctx, FatFragment frag) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatCluster cluster; - FatCluster next_cluster; - - if ((frag + 1) % old_fs_info->cluster_frags != 0) { - if (fat_is_fragment_active (ctx->old_fs, frag + 1)) - return frag + 1; - else - return -1; - } else { - cluster = fat_frag_to_cluster (ctx->old_fs, frag); - next_cluster = fat_table_get (old_fs_info->fat, cluster); - - if (fat_table_is_eof (old_fs_info->fat, next_cluster)) - return -1; - else - return fat_cluster_to_frag (ctx->old_fs, next_cluster); - } -} - -/* - Constructs the new fat for the resized file system. -*/ -static int -fat_construct_new_fat (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - FatFragment old_frag; - FatCluster new_cluster; - FatFragment new_frag; - FatFragment old_next_frag; - FatFragment new_next_frag; - FatCluster new_next_cluster; - FatClusterFlag flag; - int i; - - fat_table_clear (new_fs_info->fat); - if (!fat_table_set_cluster_count (new_fs_info->fat, - new_fs_info->cluster_count)) - return 0; - - for (old_frag = 0; old_frag < old_fs_info->frag_count; old_frag++) { - flag = fat_get_fragment_flag (ctx->old_fs, old_frag); - if (flag == FAT_FLAG_FREE) - continue; - if (flag == FAT_FLAG_BAD) { - new_frag = fat_op_context_map_static_fragment ( - ctx, old_frag); - if (new_frag == -1) - continue; - new_cluster = fat_frag_to_cluster (ctx->new_fs, - new_frag); - fat_table_set_bad (new_fs_info->fat, new_cluster); - continue; - } - - new_frag = fat_op_context_map_fragment (ctx, old_frag); - new_cluster = fat_frag_to_cluster (ctx->new_fs, new_frag); - - old_next_frag = _get_next_old_frag (ctx, old_frag); - if (old_next_frag == -1) { - fat_table_set_eof (new_fs_info->fat, new_cluster); - continue; - } - - new_next_frag = fat_op_context_map_fragment (ctx, - old_next_frag); - PED_ASSERT (new_next_frag != -1); - - new_next_cluster = fat_frag_to_cluster (ctx->new_fs, - new_next_frag); - PED_ASSERT (new_next_cluster != new_cluster); - - fat_table_set (new_fs_info->fat, new_cluster, new_next_cluster); - } - - if (old_fs_info->fat_type == FAT_TYPE_FAT32 - && new_fs_info->fat_type == FAT_TYPE_FAT32) { - new_fs_info->root_cluster - = fat_op_context_map_cluster (ctx, - old_fs_info->root_cluster); - } - - if (old_fs_info->fat_type == FAT_TYPE_FAT16 - && new_fs_info->fat_type == FAT_TYPE_FAT32) { - for (i=0; ctx->new_root_dir[i+1]; i++) { - fat_table_set (new_fs_info->fat, - ctx->new_root_dir[i], - ctx->new_root_dir[i+1]); - } - fat_table_set_eof (new_fs_info->fat, ctx->new_root_dir[i]); - } - - return 1; -} - -static int -ask_type (PedFileSystem* fs, int fat16_ok, int fat32_ok, FatType* out_fat_type) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedExceptionOption status; - const char* fat16_msg; - const char* fat32_msg; - - if (fs_info->fat_type == FAT_TYPE_FAT16) - fat16_msg = _("If you leave your file system as FAT16, " - "then you will have no problems."); - else - fat16_msg = _("If you convert to FAT16, and MS Windows " - "is installed on this partition, then " - "you must re-install the MS Windows boot " - "loader. If you want to do this, you " - "should consult the Parted manual (or " - "your distribution's manual)."); - - if (fs_info->fat_type == FAT_TYPE_FAT32) - fat32_msg = _("If you leave your file system as FAT32, " - "then you will not introduce any new " - "problems."); - else - fat32_msg = _("If you convert to FAT32, and MS Windows " - "is installed on this partition, then " - "you must re-install the MS Windows boot " - "loader. If you want to do this, you " - "should consult the Parted manual (or " - "your distribution's manual). Also, " - "converting to FAT32 will make the file " - "system unreadable by MS DOS, MS Windows " - "95a, and MS Windows NT."); - - if (fat16_ok && fat32_ok) { - status = ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_YES_NO_CANCEL, - _("%s %s %s"), - _("Would you like to use FAT32?"), - fat16_msg, - fat32_msg); - - switch (status) { - case PED_EXCEPTION_YES: - *out_fat_type = FAT_TYPE_FAT32; - return 1; - - case PED_EXCEPTION_NO: - *out_fat_type = FAT_TYPE_FAT16; - return 1; - - case PED_EXCEPTION_UNHANDLED: - *out_fat_type = fs_info->fat_type; - return 1; - - case PED_EXCEPTION_CANCEL: - return 0; - - default: - PED_ASSERT (0); - break; - } - } - - if (fat16_ok) { - if (fs_info->fat_type != FAT_TYPE_FAT16) { - status = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK_CANCEL, - _("%s %s"), - _("The file system can only be resized to this " - "size by converting to FAT16."), - fat16_msg); - if (status == PED_EXCEPTION_CANCEL) - return 0; - } - *out_fat_type = FAT_TYPE_FAT16; - return 1; - } - - if (fat32_ok) { - if (fs_info->fat_type != FAT_TYPE_FAT32) { - status = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK_CANCEL, - _("%s %s"), - _("The file system can only be resized to this " - "size by converting to FAT32."), - fat32_msg); - if (status == PED_EXCEPTION_CANCEL) - return 0; - } - *out_fat_type = FAT_TYPE_FAT32; - return 1; - } - - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("GNU Parted cannot resize this partition to this size. " - "We're working on it!")); - - return 0; -} - -/* For resize operations: determine if the file system must be FAT16 or FAT32, - * or either. If the new file system must be FAT32, then query for - * confirmation. If either file system can be used, query for which one. - */ -static int -get_fat_type (PedFileSystem* fs, const PedGeometry* new_geom, - FatType* out_fat_type) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - PedSector fat16_cluster_sectors; - PedSector fat32_cluster_sectors; - FatCluster dummy_cluster_count; - PedSector dummy_fat_sectors; - int fat16_ok; - int fat32_ok; - - fat16_ok = fat_calc_resize_sizes ( - new_geom, - fs_info->cluster_sectors, - FAT_TYPE_FAT16, - fs_info->root_dir_sector_count, - fs_info->cluster_sectors, - &fat16_cluster_sectors, - &dummy_cluster_count, - &dummy_fat_sectors); - - fat32_ok = fat_calc_resize_sizes ( - new_geom, - fs_info->cluster_sectors, - FAT_TYPE_FAT32, - fs_info->root_dir_sector_count, - fs_info->cluster_sectors, - &fat32_cluster_sectors, - &dummy_cluster_count, - &dummy_fat_sectors); - - return ask_type (fs, fat16_ok, fat32_ok, out_fat_type); -} - -/* Creates the PedFileSystem struct for the new resized file system, and - sticks it in a FatOpContext. At the end of the process, the original - (ctx->old_fs) is destroyed, and replaced with the new one (ctx->new_fs). - */ -static FatOpContext* -create_resize_context (PedFileSystem* fs, const PedGeometry* new_geom) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatSpecific* new_fs_info; - PedFileSystem* new_fs; - PedSector new_cluster_sectors; - FatCluster new_cluster_count; - PedSector new_fat_sectors; - FatType new_fat_type; - PedSector root_dir_sector_count; - FatOpContext* context; - - /* hypothetical number of root dir sectors, if we end up using - * FAT16 - */ - if (fs_info->root_dir_sector_count) - root_dir_sector_count = fs_info->root_dir_sector_count; - else - root_dir_sector_count = FAT_ROOT_DIR_ENTRY_COUNT - * sizeof (FatDirEntry) / 512; - - if (!get_fat_type (fs, new_geom, &new_fat_type)) - return 0; - - fat_calc_resize_sizes (new_geom, fs_info->cluster_sectors, new_fat_type, - root_dir_sector_count, fs_info->cluster_sectors, - &new_cluster_sectors, &new_cluster_count, &new_fat_sectors); - - if (!fat_check_resize_geometry (fs, new_geom, new_cluster_sectors, - new_cluster_count)) - goto error; - - new_fs = fat_alloc (new_geom); - if (!new_fs) - goto error; - - new_fs_info = FAT_SPECIFIC (new_fs); - if (!new_fs_info) - goto error_free_new_fs; - -/* preserve boot code, etc. */ - new_fs_info->boot_sector = ped_malloc (new_geom->dev->sector_size); - memcpy (new_fs_info->boot_sector, fs_info->boot_sector, - new_geom->dev->sector_size); - new_fs_info->info_sector = NULL; - if (fs_info->fat_type == FAT_TYPE_FAT32) - { - PED_ASSERT (fs_info->info_sector != NULL); - new_fs_info->info_sector = - ped_malloc (new_geom->dev->sector_size); - memcpy (new_fs_info->info_sector, fs_info->info_sector, - new_geom->dev->sector_size); - } - - new_fs_info->logical_sector_size = fs_info->logical_sector_size; - new_fs_info->sector_count = new_geom->length; - - new_fs_info->sectors_per_track = fs_info->sectors_per_track; - new_fs_info->heads = fs_info->heads; - - new_fs_info->cluster_size = new_cluster_sectors * 512; - new_fs_info->cluster_sectors = new_cluster_sectors; - new_fs_info->cluster_count = new_cluster_count; - new_fs_info->dir_entries_per_cluster = fs_info->dir_entries_per_cluster; - - new_fs_info->fat_type = new_fat_type; - new_fs_info->fat_table_count = 2; - new_fs_info->fat_sectors = new_fat_sectors; - - /* what about copying? */ - new_fs_info->serial_number = fs_info->serial_number; - - if (new_fs_info->fat_type == FAT_TYPE_FAT32) { - new_fs_info->info_sector_offset = 1; - new_fs_info->boot_sector_backup_offset = 6; - - new_fs_info->root_dir_offset = 0; - new_fs_info->root_dir_entry_count = 0; - new_fs_info->root_dir_sector_count = 0; - - /* we add calc_align_sectors to push the cluster_offset - forward, to keep the clusters aligned between the new - and old file systems - */ - new_fs_info->fat_offset - = fat_min_reserved_sector_count (FAT_TYPE_FAT32) - + fat_calc_align_sectors (new_fs, fs); - - new_fs_info->cluster_offset - = new_fs_info->fat_offset - + 2 * new_fs_info->fat_sectors; - } else { - new_fs_info->root_dir_sector_count = root_dir_sector_count; - new_fs_info->root_dir_entry_count - = root_dir_sector_count * 512 / sizeof (FatDirEntry); - - new_fs_info->fat_offset - = fat_min_reserved_sector_count (FAT_TYPE_FAT16) - + fat_calc_align_sectors (new_fs, fs); - - new_fs_info->root_dir_offset = new_fs_info->fat_offset - + 2 * new_fs_info->fat_sectors; - - new_fs_info->cluster_offset = new_fs_info->root_dir_offset - + new_fs_info->root_dir_sector_count; - } - - new_fs_info->total_dir_clusters = fs_info->total_dir_clusters; - - context = fat_op_context_new (new_fs, fs); - if (!context) - goto error_free_new_fs_info; - - if (!fat_op_context_create_initial_fat (context)) - goto error_free_context; - - if (!fat_alloc_buffers (new_fs)) - goto error_free_fat; - - return context; - -error_free_fat: - fat_table_destroy (new_fs_info->fat); -error_free_context: - free (context); -error_free_new_fs_info: - free (new_fs_info); -error_free_new_fs: - free (new_fs); -error: - return NULL; -} - -static int -resize_context_assimilate (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - - fat_free_buffers (ctx->old_fs); - fat_table_destroy (old_fs_info->fat); - free (old_fs_info); - ped_geometry_destroy (ctx->old_fs->geom); - - ctx->old_fs->type_specific = ctx->new_fs->type_specific; - ctx->old_fs->geom = ctx->new_fs->geom; - ctx->old_fs->type = (new_fs_info->fat_type == FAT_TYPE_FAT16) - ? &fat16_type - : &fat32_type; - - free (ctx->new_fs); - - fat_op_context_destroy (ctx); - - return 1; -} - -static int -resize_context_abort (FatOpContext* ctx) -{ - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - - fat_free_buffers (ctx->new_fs); - fat_table_destroy (new_fs_info->fat); - free (new_fs_info); - ped_geometry_destroy (ctx->new_fs->geom); - free (ctx->new_fs); - - fat_op_context_destroy (ctx); - - return 1; -} - -/* copies the "hidden" sectors, between the boot sector and the FAT. Required, - * for the Windows 98 FAT32 boot loader - */ -int -_copy_hidden_sectors (FatOpContext* ctx) -{ - FatSpecific* old_fs_info = FAT_SPECIFIC (ctx->old_fs); - FatSpecific* new_fs_info = FAT_SPECIFIC (ctx->new_fs); - PedSector first = 1; - PedSector last; - PedSector count; - - /* nothing to copy for FAT16 */ - if (old_fs_info->fat_type == FAT_TYPE_FAT16 - || new_fs_info->fat_type == FAT_TYPE_FAT16) - return 1; - - last = PED_MIN (old_fs_info->fat_offset, new_fs_info->fat_offset) - 1; - count = last - first + 1; - - PED_ASSERT (count < BUFFER_SIZE); - - if (!ped_geometry_read (ctx->old_fs->geom, old_fs_info->buffer, - first, count)) - return 0; - if (!ped_geometry_write (ctx->new_fs->geom, old_fs_info->buffer, - first, count)) - return 0; - return 1; -} - -int -fat_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatSpecific* new_fs_info; - FatOpContext* ctx; - PedFileSystem* new_fs; - - ctx = create_resize_context (fs, geom); - if (!ctx) - goto error; - new_fs = ctx->new_fs; - new_fs_info = FAT_SPECIFIC (new_fs); - - if (!fat_duplicate_clusters (ctx, timer)) - goto error_abort_ctx; - if (fs_info->fat_type == FAT_TYPE_FAT16 - && new_fs_info->fat_type == FAT_TYPE_FAT32) { - if (!alloc_root_dir (ctx)) - goto error_abort_ctx; - } - if (!fat_construct_new_fat (ctx)) - goto error_abort_ctx; - if (fs_info->fat_type == FAT_TYPE_FAT32 - && new_fs_info->fat_type == FAT_TYPE_FAT16) { - if (!free_root_dir (ctx)) - goto error_abort_ctx; - } - if (!fat_construct_dir_tree (ctx)) - goto error_abort_ctx; - if (!fat_table_write_all (new_fs_info->fat, new_fs)) - goto error_abort_ctx; - - _copy_hidden_sectors (ctx); - fat_boot_sector_generate (&new_fs_info->boot_sector, new_fs); - fat_boot_sector_write (new_fs_info->boot_sector, new_fs); - if (new_fs_info->fat_type == FAT_TYPE_FAT32) { - fat_info_sector_generate (&new_fs_info->info_sector, new_fs); - fat_info_sector_write (new_fs_info->info_sector, new_fs); - } - - if (!resize_context_assimilate (ctx)) - goto error; - - return 1; - -error_abort_ctx: - resize_context_abort (ctx); -error: - return 0; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/table.c b/jni/parted/libparted/fs/r/fat/table.c deleted file mode 100755 index ec0907f..0000000 --- a/jni/parted/libparted/fs/r/fat/table.c +++ /dev/null @@ -1,481 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include -#include -#include "fat.h" - -#ifndef DISCOVER_ONLY - -FatTable* -fat_table_new (FatType fat_type, FatCluster size) -{ - FatTable* ft; - int entry_size = fat_table_entry_size (fat_type); - - ft = (FatTable*) ped_malloc (sizeof (FatTable)); - if (!ft) return NULL; - - ft->cluster_count = ft->free_cluster_count = size - 2; - -/* ensure there's some free room on the end, to finish off the sector */ - ft->size = ped_div_round_up (size * entry_size, 512) * 512 / entry_size; - ft->fat_type = fat_type; - ft->raw_size = ft->size * entry_size; - - ft->table = ped_malloc (ft->raw_size); - if (!ft->table) { - free (ft); - return NULL; - } - - fat_table_clear (ft); - return ft; -} - -void -fat_table_destroy (FatTable* ft) -{ - free (ft->table); - free (ft); -} - -FatTable* -fat_table_duplicate (const FatTable* ft) -{ - FatTable* dup_ft; - - dup_ft = fat_table_new (ft->fat_type, ft->size); - if (!dup_ft) return NULL; - - dup_ft->cluster_count = ft->cluster_count; - dup_ft->free_cluster_count = ft->free_cluster_count; - dup_ft->bad_cluster_count = ft->bad_cluster_count; - dup_ft->last_alloc = ft->last_alloc; - - memcpy (dup_ft->table, ft->table, ft->raw_size); - - return dup_ft; -} - -void -fat_table_clear (FatTable* ft) -{ - memset (ft->table, 0, ft->raw_size); - - fat_table_set (ft, 0, 0x0ffffff8); - fat_table_set (ft, 1, 0x0fffffff); - - ft->free_cluster_count = ft->cluster_count; - ft->bad_cluster_count = 0; - ft->last_alloc = 1; -} - -int -fat_table_set_cluster_count (FatTable* ft, FatCluster new_cluster_count) -{ - PED_ASSERT (new_cluster_count + 2 <= ft->size); - - ft->cluster_count = new_cluster_count; - return fat_table_count_stats (ft); -} - -int -fat_table_count_stats (FatTable* ft) -{ - FatCluster i; - - PED_ASSERT (ft->cluster_count + 2 <= ft->size); - - ft->free_cluster_count = 0; - ft->bad_cluster_count = 0; - - for (i=2; i < ft->cluster_count + 2; i++) { - if (fat_table_is_available (ft, i)) - ft->free_cluster_count++; - if (fat_table_is_bad (ft, i)) - ft->bad_cluster_count++; - } - return 1; -} - -int -fat_table_read (FatTable* ft, const PedFileSystem* fs, int table_num) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (ft->raw_size >= fs_info->fat_sectors * 512); - - memset (ft->table, 0, ft->raw_size); - - if (!ped_geometry_read (fs->geom, (void *) ft->table, - fs_info->fat_offset - + table_num * fs_info->fat_sectors, - fs_info->fat_sectors)) - return 0; - - if ( *((unsigned char*) ft->table) != fs_info->boot_sector->media) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("FAT %d media %x doesn't match the boot sector's " - "media %x. You should probably run scandisk."), - (int) table_num + 1, - (int) *((unsigned char*) ft->table), - (int) fs_info->boot_sector->media) - != PED_EXCEPTION_IGNORE) - return 0; - } - - ft->cluster_count = fs_info->cluster_count; - - fat_table_count_stats (ft); - - return 1; -} - -int -fat_table_write (const FatTable* ft, PedFileSystem* fs, int table_num) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - PED_ASSERT (ft->raw_size >= fs_info->fat_sectors * 512); - - if (!ped_geometry_write (fs->geom, (void *) ft->table, - fs_info->fat_offset - + table_num * fs_info->fat_sectors, - fs_info->fat_sectors)) - return 0; - if (!ped_geometry_sync (fs->geom)) - return 0; - - return 1; -} - -int -fat_table_write_all (const FatTable* ft, PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - int i; - - for (i = 0; i < fs_info->fat_table_count; i++) { - if (!fat_table_write (ft, fs, i)) - return 0; - } - - return 1; -} - -int -fat_table_compare (const FatTable* a, const FatTable* b) -{ - FatCluster i; - - if (a->cluster_count != b->cluster_count) - return 0; - - for (i = 0; i < a->cluster_count + 2; i++) { - if (fat_table_get (a, i) != fat_table_get (b, i)) - return 0; - } - - return 1; -} - -static int -_test_code_available (const FatTable* ft, FatCluster code) -{ - return code == 0; -} - -static int -_test_code_bad (const FatTable* ft, FatCluster code) -{ - switch (ft->fat_type) { - case FAT_TYPE_FAT12: - if (code == 0xff7) return 1; - break; - - case FAT_TYPE_FAT16: - if (code == 0xfff7) return 1; - break; - - case FAT_TYPE_FAT32: - if (code == 0x0ffffff7) return 1; - break; - } - return 0; -} - -static int -_test_code_eof (const FatTable* ft, FatCluster code) -{ - switch (ft->fat_type) { - case FAT_TYPE_FAT12: - if (code >= 0xff7) return 1; - break; - - case FAT_TYPE_FAT16: - if (code >= 0xfff7) return 1; - break; - - case FAT_TYPE_FAT32: - if (code >= 0x0ffffff7) return 1; - break; - } - return 0; -} - -void -_update_stats (FatTable* ft, FatCluster cluster, FatCluster value) -{ - if (_test_code_available (ft, value) - && !fat_table_is_available (ft, cluster)) { - ft->free_cluster_count++; - if (fat_table_is_bad (ft, cluster)) - ft->bad_cluster_count--; - } - - if (!_test_code_available (ft, value) - && fat_table_is_available (ft, cluster)) { - ft->free_cluster_count--; - if (_test_code_bad (ft, cluster)) - ft->bad_cluster_count--; - } -} - -int -fat_table_set (FatTable* ft, FatCluster cluster, FatCluster value) -{ - if (cluster >= ft->cluster_count + 2) { - ped_exception_throw (PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("fat_table_set: cluster %ld outside " - "file system"), - (long) cluster); - return 0; - } - - _update_stats (ft, cluster, value); - - switch (ft->fat_type) { - case FAT_TYPE_FAT12: - PED_ASSERT (0); - break; - - case FAT_TYPE_FAT16: - ((unsigned short *) ft->table) [cluster] - = PED_CPU_TO_LE16 (value); - break; - - case FAT_TYPE_FAT32: - ((unsigned int *) ft->table) [cluster] - = PED_CPU_TO_LE32 (value); - break; - } - return 1; -} - -FatCluster -fat_table_get (const FatTable* ft, FatCluster cluster) -{ - if (cluster >= ft->cluster_count + 2) { - ped_exception_throw (PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("fat_table_get: cluster %ld outside " - "file system"), - (long) cluster); - exit (EXIT_FAILURE); /* FIXME */ - } - - switch (ft->fat_type) { - case FAT_TYPE_FAT12: - PED_ASSERT (0); - break; - - case FAT_TYPE_FAT16: - return PED_LE16_TO_CPU - (((unsigned short *) ft->table) [cluster]); - - case FAT_TYPE_FAT32: - return PED_LE32_TO_CPU - (((unsigned int *) ft->table) [cluster]); - } - - return 0; -} - -FatCluster -fat_table_alloc_cluster (FatTable* ft) -{ - FatCluster i; - FatCluster cluster; - -/* hack: assumes the first two FAT entries are marked as used (which they - * always should be) - */ - for (i=1; i < ft->cluster_count + 1; i++) { - cluster = (i + ft->last_alloc) % ft->cluster_count; - if (fat_table_is_available (ft, cluster)) { - ft->last_alloc = cluster; - return cluster; - } - } - - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("fat_table_alloc_cluster: no free clusters")); - return 0; -} - -FatCluster -fat_table_alloc_check_cluster (FatTable* ft, PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster result; - - while (1) { - result = fat_table_alloc_cluster (ft); - if (!result) - return 0; - if (fat_read_cluster (fs, fs_info->buffer, result)) - return result; - fat_table_set_bad (ft, result); - } -} - -/* - returns true if is marked as bad -*/ -int -fat_table_is_bad (const FatTable* ft, FatCluster cluster) -{ - return _test_code_bad (ft, fat_table_get (ft, cluster)); -} - -/* - returns true if represents an EOF marker -*/ -int _GL_ATTRIBUTE_PURE -fat_table_is_eof (const FatTable* ft, FatCluster cluster) -{ - return _test_code_eof (ft, cluster); -} - -/* - returns true if is available. -*/ -int -fat_table_is_available (const FatTable* ft, FatCluster cluster) -{ - return _test_code_available (ft, fat_table_get (ft, cluster)); -} - -/* - returns true if is empty. Note that this includes bad clusters. -*/ -int -fat_table_is_empty (const FatTable* ft, FatCluster cluster) -{ - return fat_table_is_available (ft, cluster) - || fat_table_is_bad (ft, cluster); -} - -/* - returns true if is being used for something constructive. -*/ -int -fat_table_is_active (const FatTable* ft, FatCluster cluster) -{ - return !fat_table_is_bad (ft, cluster) - && !fat_table_is_available (ft, cluster); -} - -/* - marks as the last cluster in the chain -*/ -int -fat_table_set_eof (FatTable* ft, FatCluster cluster) -{ - - switch (ft->fat_type) { - case FAT_TYPE_FAT12: - PED_ASSERT (0); - break; - - case FAT_TYPE_FAT16: - return fat_table_set (ft, cluster, 0xfff8); - - case FAT_TYPE_FAT32: - return fat_table_set (ft, cluster, 0x0fffffff); - } - - return 0; -} - -/* - Marks a clusters as unusable, due to physical disk damage. -*/ -int -fat_table_set_bad (FatTable* ft, FatCluster cluster) -{ - if (!fat_table_is_bad (ft, cluster)) - ft->bad_cluster_count++; - - switch (ft->fat_type) { - case FAT_TYPE_FAT12: - return fat_table_set (ft, cluster, 0xff7); - - case FAT_TYPE_FAT16: - return fat_table_set (ft, cluster, 0xfff7); - - case FAT_TYPE_FAT32: - return fat_table_set (ft, cluster, 0x0ffffff7); - } - - return 0; -} - -/* - marks as unused/free/available -*/ -int -fat_table_set_avail (FatTable* ft, FatCluster cluster) -{ - return fat_table_set (ft, cluster, 0); -} - -#endif /* !DISCOVER_ONLY */ - -int _GL_ATTRIBUTE_CONST -fat_table_entry_size (FatType fat_type) -{ - switch (fat_type) { - case FAT_TYPE_FAT12: - return 2; /* FIXME: how? */ - - case FAT_TYPE_FAT16: - return 2; - - case FAT_TYPE_FAT32: - return 4; - } - - return 0; -} diff --git a/jni/parted/libparted/fs/r/fat/table.h b/jni/parted/libparted/fs/r/fat/table.h deleted file mode 100755 index a70241b..0000000 --- a/jni/parted/libparted/fs/r/fat/table.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef PED_FAT_TABLE_H_INCLUDED -#define PED_FAT_TABLE_H_INCLUDED - -typedef struct _FatTable FatTable; - -#include "fat.h" - -struct _FatTable { - void* table; - FatCluster size; - int raw_size; - - FatType fat_type; - FatCluster cluster_count; - FatCluster free_cluster_count; - FatCluster bad_cluster_count; - - FatCluster last_alloc; -}; - -extern FatTable* fat_table_new (FatType fat_type, FatCluster size); -extern FatTable* fat_table_duplicate (const FatTable* ft); -extern void fat_table_destroy (FatTable* ft); -extern void fat_table_clear (FatTable* ft); -extern int fat_table_set_cluster_count (FatTable* ft, - FatCluster new_cluster_count); - -extern int fat_table_read (FatTable* ft, const PedFileSystem* fs, - int table_num); -extern int fat_table_write (const FatTable* ft, PedFileSystem* fs, - int table_num); -extern int fat_table_write_all (const FatTable* ft, PedFileSystem* fs); -extern int fat_table_compare (const FatTable* a, const FatTable* b); -extern int fat_table_count_stats (FatTable* ft); - -extern FatCluster fat_table_get (const FatTable* ft, FatCluster cluster); -extern int fat_table_set (FatTable* ft, FatCluster cluster, FatCluster value); - -extern FatCluster fat_table_alloc_cluster (FatTable* ft); -extern FatCluster fat_table_alloc_check_cluster (FatTable* ft, - PedFileSystem* fs); - -extern int fat_table_is_bad (const FatTable* ft, FatCluster cluster); -extern int fat_table_is_eof (const FatTable* ft, FatCluster cluster); -extern int fat_table_is_empty (const FatTable* ft, FatCluster cluster); -extern int fat_table_is_available (const FatTable* ft, FatCluster cluster); -extern int fat_table_is_active (const FatTable* ft, FatCluster cluster); - -extern int fat_table_set_eof (FatTable* ft, FatCluster cluster); -extern int fat_table_set_avail (FatTable* ft, FatCluster cluster); -extern int fat_table_set_bad (FatTable* ft, FatCluster cluster); - -extern int fat_table_entry_size (FatType fat_type); - -#endif /* PED_FAT_TABLE_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/fat/traverse.c b/jni/parted/libparted/fs/r/fat/traverse.c deleted file mode 100755 index 42eeff9..0000000 --- a/jni/parted/libparted/fs/r/fat/traverse.c +++ /dev/null @@ -1,368 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2005, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "fat.h" -#include "traverse.h" - -#include -#include -#include - -#ifndef DISCOVER_ONLY - -#define NO_CLUSTER -1 - -static char tmp_buffer [4096]; - -int _GL_ATTRIBUTE_PURE -fat_traverse_entries_per_buffer (FatTraverseInfo* trav_info) -{ - return trav_info->buffer_size / sizeof (FatDirEntry); -} - -/* returns 1 if there are no more directory entries in the directory being - * traversed, 0 otherwise. - */ -static int -is_last_buffer (FatTraverseInfo* trav_info) { - FatSpecific* fs_info = FAT_SPECIFIC (trav_info->fs); - - if (trav_info->is_legacy_root_dir) - return 1; - else - return fat_table_is_eof (fs_info->fat, trav_info->next_buffer); -} - -static int -write_root_dir (FatTraverseInfo* trav_info) -{ - FatSpecific* fs_info = FAT_SPECIFIC (trav_info->fs); - - if (!ped_geometry_write (trav_info->fs->geom, trav_info->dir_entries, - fs_info->root_dir_offset, - fs_info->root_dir_sector_count)) - return 0; - if (!ped_geometry_sync (trav_info->fs->geom)) - return 0; - trav_info->dirty = 0; - return 1; -} - -static int -write_dir_cluster (FatTraverseInfo* trav_info) -{ - if (!fat_write_sync_cluster (trav_info->fs, - (void*) trav_info->dir_entries, - trav_info->this_buffer)) - return 0; - trav_info->dirty = 0; - return 1; -} - -static int -write_dir_buffer (FatTraverseInfo* trav_info) -{ - if (trav_info->is_legacy_root_dir) - return write_root_dir (trav_info); - else - return write_dir_cluster (trav_info); -} - -static int -read_next_dir_buffer (FatTraverseInfo* trav_info) -{ - FatSpecific* fs_info = FAT_SPECIFIC (trav_info->fs); - - PED_ASSERT (!trav_info->is_legacy_root_dir); - - trav_info->this_buffer = trav_info->next_buffer; - - if (trav_info->this_buffer < 2 - || trav_info->this_buffer >= fs_info->cluster_count + 2) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - "Cluster %ld in directory %s is outside file system!", - (long) trav_info->this_buffer, - trav_info->dir_name); - return 0; - } - - trav_info->next_buffer - = fat_table_get (fs_info->fat, trav_info->this_buffer); - - return fat_read_cluster (trav_info->fs, (void *) trav_info->dir_entries, - trav_info->this_buffer); -} - -/* FIXME: put into fat_dir_entry_* operations */ -void -fat_traverse_mark_dirty (FatTraverseInfo* trav_info) -{ - trav_info->dirty = 1; -} - -FatTraverseInfo* -fat_traverse_begin (PedFileSystem* fs, FatCluster start_cluster, - const char* dir_name) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatTraverseInfo* trav_info; - - trav_info = (FatTraverseInfo*) ped_malloc (sizeof (FatTraverseInfo)); - if (!trav_info) - goto error; - - trav_info->dir_name = strdup (dir_name); - if (!trav_info->dir_name) - goto error_free_trav_info; - - trav_info->fs = fs; - trav_info->is_legacy_root_dir - = (fs_info->fat_type == FAT_TYPE_FAT16) && (start_cluster == 0); - trav_info->dirty = 0; - trav_info->eof = 0; - trav_info->current_entry = -1; - - if (trav_info->is_legacy_root_dir) { - trav_info->buffer_size = 512 * fs_info->root_dir_sector_count; - } else { - trav_info->next_buffer = start_cluster; - trav_info->buffer_size = fs_info->cluster_size; - } - - trav_info->dir_entries - = (FatDirEntry*) ped_malloc (trav_info->buffer_size); - if (!trav_info->dir_entries) - goto error_free_dir_name; - - if (trav_info->is_legacy_root_dir) { - if (!ped_geometry_read (fs->geom, trav_info->dir_entries, - fs_info->root_dir_offset, - fs_info->root_dir_sector_count)) - goto error_free_dir_entries; - } else { - if (!read_next_dir_buffer (trav_info)) - goto error_free_dir_entries; - } - - return trav_info; - -error_free_dir_entries: - free (trav_info->dir_entries); -error_free_dir_name: - free (trav_info->dir_name); -error_free_trav_info: - free (trav_info); -error: - return NULL; -} - -int -fat_traverse_complete (FatTraverseInfo* trav_info) -{ - if (trav_info->dirty) { - if (!write_dir_buffer (trav_info)) - return 0; - } - free (trav_info->dir_entries); - free (trav_info->dir_name); - free (trav_info); - return 1; -} - -FatTraverseInfo* -fat_traverse_directory (FatTraverseInfo *trav_info, FatDirEntry* parent) -{ - strcpy (tmp_buffer, trav_info->dir_name); - fat_dir_entry_get_name (parent, - tmp_buffer + strlen (trav_info->dir_name)); - strcat (tmp_buffer, "\\"); - - return fat_traverse_begin (trav_info->fs, - fat_dir_entry_get_first_cluster (parent, trav_info->fs), - tmp_buffer); -} - -FatDirEntry* -fat_traverse_next_dir_entry (FatTraverseInfo *trav_info) -{ - if (trav_info->eof) - return NULL; - - trav_info->current_entry++; - if (trav_info->current_entry - >= fat_traverse_entries_per_buffer (trav_info)) { - if (trav_info->dirty) { - if (!write_dir_buffer (trav_info)) - return NULL; - } - - trav_info->current_entry = 0; - if (is_last_buffer (trav_info)) { - trav_info->eof = 1; - return NULL; - } - if (!read_next_dir_buffer (trav_info)) - return NULL; - } - return trav_info->dir_entries + trav_info->current_entry; -} - -FatCluster _GL_ATTRIBUTE_PURE -fat_dir_entry_get_first_cluster (FatDirEntry* dir_entry, PedFileSystem *fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - switch (fs_info->fat_type) { - case FAT_TYPE_FAT12: - case FAT_TYPE_FAT16: - return PED_LE16_TO_CPU (dir_entry->first_cluster); - - case FAT_TYPE_FAT32: - return PED_LE16_TO_CPU (dir_entry->first_cluster_high) - * 65536L - + PED_LE16_TO_CPU (dir_entry->first_cluster); - } - - return 0; -} - -void -fat_dir_entry_set_first_cluster (FatDirEntry* dir_entry, PedFileSystem* fs, - FatCluster cluster) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - - switch (fs_info->fat_type) { - case FAT_TYPE_FAT12: - PED_ASSERT (0); - break; - - case FAT_TYPE_FAT16: - dir_entry->first_cluster = PED_CPU_TO_LE16 (cluster); - break; - - case FAT_TYPE_FAT32: - dir_entry->first_cluster - = PED_CPU_TO_LE16 (cluster & 0xffff); - dir_entry->first_cluster_high - = PED_CPU_TO_LE16 (cluster / 0x10000); - break; - } -} - -uint32_t _GL_ATTRIBUTE_PURE -fat_dir_entry_get_length (FatDirEntry* dir_entry) -{ - return PED_LE32_TO_CPU (dir_entry->length); -} - -int -fat_dir_entry_is_null_term (const FatDirEntry* dir_entry) -{ - FatDirEntry null_entry; - - memset (&null_entry, 0, sizeof (null_entry)); - return memcmp (&null_entry, dir_entry, sizeof (null_entry)) == 0; -} - -int _GL_ATTRIBUTE_PURE -fat_dir_entry_is_active (FatDirEntry* dir_entry) -{ - if ((unsigned char) dir_entry->name[0] == DELETED_FLAG) return 0; - if ((unsigned char) dir_entry->name[0] == 0) return 0; - if ((unsigned char) dir_entry->name[0] == 0xF6) return 0; - return 1; -} - -int _GL_ATTRIBUTE_PURE -fat_dir_entry_is_file (FatDirEntry* dir_entry) { - if (dir_entry->attributes == VFAT_ATTR) return 0; - if (dir_entry->attributes & VOLUME_LABEL_ATTR) return 0; - if (!fat_dir_entry_is_active (dir_entry)) return 0; - if ((dir_entry->attributes & DIRECTORY_ATTR) == DIRECTORY_ATTR) return 0; - return 1; -} - -int _GL_ATTRIBUTE_PURE -fat_dir_entry_is_system_file (FatDirEntry* dir_entry) -{ - if (!fat_dir_entry_is_file (dir_entry)) return 0; - return (dir_entry->attributes & SYSTEM_ATTR) - || (dir_entry->attributes & HIDDEN_ATTR); -} - -int _GL_ATTRIBUTE_PURE -fat_dir_entry_is_directory (FatDirEntry* dir_entry) -{ - if (dir_entry->attributes == VFAT_ATTR) return 0; - if (dir_entry->attributes & VOLUME_LABEL_ATTR) return 0; - if (!fat_dir_entry_is_active (dir_entry)) return 0; - return (dir_entry->attributes & DIRECTORY_ATTR) == DIRECTORY_ATTR; -} - -int -fat_dir_entry_has_first_cluster (FatDirEntry* dir_entry, PedFileSystem* fs) -{ - FatSpecific* fs_info = FAT_SPECIFIC (fs); - FatCluster first_cluster; - - if (!fat_dir_entry_is_file (dir_entry) - && !fat_dir_entry_is_directory (dir_entry)) - return 0; - - first_cluster = fat_dir_entry_get_first_cluster (dir_entry, fs); - if (first_cluster == 0 - || fat_table_is_eof (fs_info->fat, first_cluster)) - return 0; - - return 1; -} - -/* - decrypts silly DOS names to FILENAME.EXT -*/ -void -fat_dir_entry_get_name (const FatDirEntry *dir_entry, char *result) { - size_t i; - const char *src; - const char *ext; - - src = dir_entry->name; - - for (i=0; i < sizeof dir_entry->name; i++) { - if (src[i] == ' ' || src[i] == 0) break; - *result++ = src[i]; - } - - ext = (const char *) dir_entry->extension; - if (ext[0] != ' ' && ext[0] != 0) { - *result++ = '.'; - for (i=0; i < sizeof dir_entry->extension; i++) { - if (ext[i] == ' ' || ext[i] == 0) break; - *result++ = ext[i]; - } - } - - *result = 0; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/fat/traverse.h b/jni/parted/libparted/fs/r/fat/traverse.h deleted file mode 100755 index 02318ba..0000000 --- a/jni/parted/libparted/fs/r/fat/traverse.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - libparted - Copyright (C) 1998-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef TRAVERSE_H_INCLUDED -#define TRAVERSE_H_INCLUDED - -#include "fatio.h" - -typedef struct _FatTraverseInfo FatTraverseInfo; - -struct _FatTraverseInfo { - PedFileSystem* fs; - char* dir_name; - - int is_legacy_root_dir; - int dirty; - int eof; - - FatDirEntry* dir_entries; - int current_entry; - FatCluster this_buffer, next_buffer; - int buffer_size; -}; - -extern int fat_traverse_entries_per_buffer (FatTraverseInfo* trav_info); - -/* starts traversal at an arbitary cluster. if start_cluster==0, then uses - root directory */ -extern FatTraverseInfo* fat_traverse_begin (PedFileSystem* fs, - FatCluster start_cluster, - const char* dir_name); - -extern int fat_traverse_complete (FatTraverseInfo* trav_info); - -extern FatTraverseInfo* fat_traverse_directory (FatTraverseInfo* trav_info, - FatDirEntry* parent); - -extern void fat_traverse_mark_dirty (FatTraverseInfo* trav_info); - -extern FatDirEntry* fat_traverse_next_dir_entry (FatTraverseInfo* trav_info); - -extern FatCluster fat_dir_entry_get_first_cluster (FatDirEntry* dir_entry, - PedFileSystem* fs); - -extern void fat_dir_entry_set_first_cluster (FatDirEntry* dir_entry, - PedFileSystem* fs, FatCluster cluster); - -extern uint32_t fat_dir_entry_get_length (FatDirEntry* dir_entry); - -extern int fat_dir_entry_is_null_term (const FatDirEntry* dir_entry); -extern int fat_dir_entry_is_file (FatDirEntry* dir_entry); -extern int fat_dir_entry_is_system_file (FatDirEntry* dir_entry); -extern int fat_dir_entry_is_directory (FatDirEntry* dir_entry); -extern void fat_dir_entry_get_name (const FatDirEntry* dir_entry, char* result); -extern int fat_dir_entry_is_active (FatDirEntry* dir_entry); -extern int fat_dir_entry_has_first_cluster (FatDirEntry* dir_entry, - PedFileSystem* fs); - -#endif /* TRAVERSE_H_INCLUDED */ diff --git a/jni/parted/libparted/fs/r/filesys.c b/jni/parted/libparted/fs/r/filesys.c deleted file mode 100755 index 856238c..0000000 --- a/jni/parted/libparted/fs/r/filesys.c +++ /dev/null @@ -1,320 +0,0 @@ -/* libparted - a library for manipulating disk partitions - Copyright (C) 1999-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** \file filesys.c */ - -/** - * \addtogroup PedFileSystem - * - * \note File systems exist on a PedGeometry - NOT a PedPartition. - * - * @{ - */ - -#include - -#include -#include -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#define STREQ(a, b) (strcmp (a, b) == 0) - -#ifndef MIN -# define MIN(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -typedef PedFileSystem * (*open_fn_t) (PedGeometry *); -extern PedFileSystem *hfsplus_open (PedGeometry *); -extern PedFileSystem *hfs_open (PedGeometry *); -extern PedFileSystem *fat_open (PedGeometry *); - -typedef int (*close_fn_t) (PedFileSystem *); -extern int hfsplus_close (PedFileSystem *); -extern int hfs_close (PedFileSystem *); -extern int fat_close (PedFileSystem *); - -typedef int (*resize_fn_t) (PedFileSystem *fs, PedGeometry *geom, - PedTimer *timer); -extern int hfsplus_resize (PedFileSystem *fs, PedGeometry *geom, - PedTimer *timer); -extern int hfs_resize (PedFileSystem *fs, PedGeometry *geom, - PedTimer *timer); -extern int fat_resize (PedFileSystem *fs, PedGeometry *geom, - PedTimer *timer); - -typedef PedConstraint * (*resize_constraint_fn_t) (PedFileSystem const *fs); -extern PedConstraint *hfsplus_get_resize_constraint (PedFileSystem const *fs); -extern PedConstraint *hfs_get_resize_constraint (PedFileSystem const *fs); -extern PedConstraint *fat_get_resize_constraint (PedFileSystem const *fs); - -static bool -is_hfs_plus (char const *fs_type_name) -{ - return STREQ (fs_type_name, "hfsx") || STREQ (fs_type_name, "hfs+"); -} - -static open_fn_t -open_fn (char const *fs_type_name) -{ - if (is_hfs_plus (fs_type_name)) - return hfsplus_open; - if (STREQ (fs_type_name, "hfs")) - return hfs_open; - if (strncmp (fs_type_name, "fat", 3) == 0) - return fat_open; - return NULL; -} - -static close_fn_t -close_fn (char const *fs_type_name) -{ - if (is_hfs_plus (fs_type_name)) - return hfsplus_close; - if (STREQ (fs_type_name, "hfs")) - return hfs_close; - if (strncmp (fs_type_name, "fat", 3) == 0) - return fat_close; - return NULL; -} - -static resize_fn_t -resize_fn (char const *fs_type_name) -{ - if (is_hfs_plus (fs_type_name)) - return hfsplus_resize; - if (STREQ (fs_type_name, "hfs")) - return hfs_resize; - if (strncmp (fs_type_name, "fat", 3) == 0) - return fat_resize; - return NULL; -} - -static resize_constraint_fn_t -resize_constraint_fn (char const *fs_type_name) -{ - if (is_hfs_plus (fs_type_name)) - return hfsplus_get_resize_constraint; - if (STREQ (fs_type_name, "hfs")) - return hfs_get_resize_constraint; - if (strncmp (fs_type_name, "fat", 3) == 0) - return fat_get_resize_constraint; - return NULL; -} - -/** - * This function opens the file system stored on \p geom, if it - * can find one. - * It is often called in the following manner: - * \code - * fs = ped_file_system_open (&part.geom) - * \endcode - * - * \throws PED_EXCEPTION_ERROR if file system could not be detected - * \throws PED_EXCEPTION_ERROR if the file system is bigger than its volume - * \throws PED_EXCEPTION_NO_FEATURE if opening of a file system stored on - * \p geom is not implemented - * - * \return a PedFileSystem on success, \c NULL on failure. - */ -PedFileSystem * -ped_file_system_open (PedGeometry* geom) -{ - PED_ASSERT (geom != NULL); - - if (!ped_device_open (geom->dev)) - goto error; - - PedFileSystemType *type = ped_file_system_probe (geom); - if (!type) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Could not detect file system.")); - goto error_close_dev; - } - - open_fn_t open_f = open_fn (type->name); - if (open_f == NULL) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("resizing %s file systems is not supported"), - type->name); - goto error_close_dev; - } - - PedGeometry *probed_geom = ped_file_system_probe_specific (type, geom); - if (!probed_geom) - goto error_close_dev; - if (!ped_geometry_test_inside (geom, probed_geom)) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("The file system is bigger than its volume!")) - != PED_EXCEPTION_IGNORE) - goto error_destroy_probed_geom; - } - - PedFileSystem *fs = (*open_f) (probed_geom); - if (!fs) - goto error_destroy_probed_geom; - ped_geometry_destroy (probed_geom); - fs->type = type; - return fs; - -error_destroy_probed_geom: - ped_geometry_destroy (probed_geom); -error_close_dev: - ped_device_close (geom->dev); -error: - return NULL; -} - -/** - * Close file system \p fs. - * - * \return \c 1 on success, \c 0 on failure - */ -int -ped_file_system_close (PedFileSystem* fs) -{ - PED_ASSERT (fs != NULL); - PedDevice *dev = fs->geom->dev; - close_fn_t fn = close_fn (fs->type->name); - - if (!fn || !(fn (fs))) - goto error_close_dev; - ped_device_close (dev); - return 1; - -error_close_dev: - ped_device_close (dev); - return 0; -} - -/** - * This function erases all file system signatures that indicate that a - * file system occupies a given region described by \p geom. - * After this operation ped_file_system_probe() won't detect any file system. - * - * \return \c 1 on success, \c 0 on failure - */ -static int -ped_file_system_clobber (PedGeometry* geom) -{ - PED_ASSERT (geom != NULL); - - if (!ped_device_open (geom->dev)) - return 0; - - /* Clear the first three and the last two sectors, albeit fewer - when GEOM is too small. */ - PedSector len = MIN (geom->length, geom->dev->length); - - int ok = (len <= 5 - ? ptt_geom_clear_sectors (geom, 0, len) - : (ptt_geom_clear_sectors (geom, 0, 3) - && ptt_geom_clear_sectors (geom, geom->dev->length - 2, 2))); - - ped_device_close (geom->dev); - return !!ok; -} - -/* This function erases all signatures that indicate the presence of - * a file system in a particular region, without erasing any data - * contained inside the "exclude" region. - */ -static int -ped_file_system_clobber_exclude (PedGeometry* geom, - const PedGeometry* exclude) -{ - PedGeometry* clobber_geom; - int status; - - if (ped_geometry_test_sector_inside (exclude, geom->start)) - return 1; - - clobber_geom = ped_geometry_duplicate (geom); - if (ped_geometry_test_overlap (clobber_geom, exclude)) - ped_geometry_set_end (clobber_geom, exclude->start - 1); - - status = ped_file_system_clobber (clobber_geom); - ped_geometry_destroy (clobber_geom); - return status; -} - -/** - * Resize \p fs to new geometry \p geom. - * - * \p geom should satisfy the ped_file_system_get_resize_constraint(). - * (This isn't asserted, so it's not a bug not to... just it's likely - * to fail ;) If \p timer is non-NULL, it is used as the progress meter. - * - * \throws PED_EXCEPTION_NO_FEATURE if resizing of file system \p fs - * is not implemented yet - * - * \return \c 0 on failure - */ -int -ped_file_system_resize (PedFileSystem *fs, PedGeometry *geom, PedTimer *timer) -{ - PED_ASSERT (fs != NULL); - PED_ASSERT (geom != NULL); - - resize_fn_t resize_f = resize_fn (fs->type->name); - if (resize_f == NULL) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("resizing %s file systems is not supported"), - fs->type->name); - return 0; - } - - if (!ped_file_system_clobber_exclude (geom, fs->geom)) - return 0; - - return resize_f (fs, geom, timer); -} - -/** - * Return a constraint that represents all of the possible ways the - * file system \p fs can be resized with ped_file_system_resize(). - * This takes into account the amount of used space on - * the filesystem \p fs and the capabilities of the resize algorithm. - * Hints: - * -# if constraint->start_align->grain_size == 0, or - * constraint->start_geom->length == 1, then the start cannot be moved - * -# constraint->min_size is the minimum size you can resize the partition - * to. You might want to tell the user this ;-). - * - * \return a PedConstraint on success, \c NULL on failure - */ -PedConstraint * -ped_file_system_get_resize_constraint (const PedFileSystem *fs) -{ - PED_ASSERT (fs != NULL); - - resize_constraint_fn_t resize_constraint_f = - resize_constraint_fn (fs->type->name); - if (resize_constraint_f == NULL) - return NULL; - - return resize_constraint_f (fs); -} diff --git a/jni/parted/libparted/fs/r/hfs/advfs.c b/jni/parted/libparted/fs/r/hfs/advfs.c deleted file mode 100755 index cb66e9e..0000000 --- a/jni/parted/libparted/fs/r/hfs/advfs.c +++ /dev/null @@ -1,332 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "file.h" - -#include "advfs.h" - -/* - if a < b, 0 if a == b, + if a > b */ -/* Comparaison is done in the following order : */ -/* CNID, then fork type, then start block */ -/* Note that HFS implementation in linux has a bug */ -/* in this function */ -static int -hfs_extent_key_cmp(HfsPrivateGenericKey* a, HfsPrivateGenericKey* b) -{ - HfsExtentKey* key1 = (HfsExtentKey*) a; - HfsExtentKey* key2 = (HfsExtentKey*) b; - - /* do NOT use a substraction, because */ - /* 0xFFFFFFFF - 1 = 0xFFFFFFFE so this */ - /* would return -2, despite the fact */ - /* 0xFFFFFFFF > 1 !!! (this is the 2.4 bug) */ - if (key1->file_ID != key2->file_ID) - return PED_BE32_TO_CPU(key1->file_ID) < - PED_BE32_TO_CPU(key2->file_ID) ? - -1 : +1; - - if (key1->type != key2->type) - return (int)(key1->type - key2->type); - - if (key1->start == key2->start) - return 0; - /* the whole thing wont work with 16 bits ints */ - /* anyway */ - return (int)( PED_BE16_TO_CPU(key1->start) - - PED_BE16_TO_CPU(key2->start) ); -} - -/* do a B-Tree lookup */ -/* read the first record immediatly inferior or egal to the given key */ -/* return 0 on error */ -/* record_out _must_ be large enough to receive record_size bytes */ -/* WARNING : the compare function called only handle Extents BTree */ -/* so modify this function if you want to do lookup in */ -/* other BTrees has well */ -int -hfs_btree_search (HfsPrivateFile* b_tree_file, HfsPrivateGenericKey* key, - void *record_out, unsigned int record_size, - HfsCPrivateLeafRec* record_ref) -{ - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - HfsHeaderRecord* header; - HfsNodeDescriptor* desc = (HfsNodeDescriptor*) node; - HfsPrivateGenericKey* record_key = NULL; - unsigned int node_number, record_number; - int i; - uint16_t record_pos; - - /* Read the header node */ - if (!hfs_file_read_sector(b_tree_file, node, 0)) - return 0; - uint16_t offset; - memcpy(&offset, node+(PED_SECTOR_SIZE_DEFAULT-2), sizeof(uint16_t)); - header = (HfsHeaderRecord*) (node + PED_BE16_TO_CPU(offset)); - - /* Get the node number of the root */ - node_number = PED_BE32_TO_CPU(header->root_node); - if (!node_number) - return 0; - - /* Read the root node */ - if (!hfs_file_read_sector(b_tree_file, node, node_number)) - return 0; - - /* Follow the white rabbit */ - while (1) { - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = record_number; i; i--) { - uint16_t value; - memcpy(&value, node+(PED_SECTOR_SIZE_DEFAULT - (2*i)), sizeof(uint16_t)); - record_pos = PED_BE16_TO_CPU(value); - record_key = (HfsPrivateGenericKey*) (node + record_pos); - /* check for obvious error in FS */ - if ((record_pos< HFS_FIRST_REC) - || (record_pos>= PED_SECTOR_SIZE_DEFAULT - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - return 0; - } - if (hfs_extent_key_cmp(record_key, key) <= 0) - break; - } - if (!i) return 0; - if (desc->type == HFS_IDX_NODE) { - unsigned int skip; - - skip = (1 + record_key->key_length + 1) & ~1; - uint32_t value; - memcpy(&value, node+record_pos+skip, sizeof(uint32_t)); - node_number = PED_BE32_TO_CPU(value); - if (!hfs_file_read_sector(b_tree_file, node, - node_number)) - return 0; - } else - break; - } - - /* copy the result if needed */ - if (record_size) - memcpy (record_out, record_key, record_size); - - /* send record reference if needed */ - if (record_ref) { - record_ref->node_size = 1; /* in sectors */ - record_ref->node_number = node_number; - record_ref->record_pos = record_pos; - record_ref->record_number = i; - } - - /* success */ - return 1; -} - -/* free the bad blocks linked list */ -void -hfs_free_bad_blocks_list(HfsPrivateLinkExtent* first) -{ - HfsPrivateLinkExtent* next; - - while (first) { - next = first->next; - free (first); - first = next; - } -} - -/* This function reads bad blocks extents in the extents file - and store it in f.s. specific data of fs */ -int -hfs_read_bad_blocks (const PedFileSystem *fs) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - - if (priv_data->bad_blocks_loaded) - return 1; - - { - uint8_t record[sizeof (HfsExtentKey) - + sizeof (HfsExtDataRec)]; - HfsExtentKey search; - HfsExtentKey* ret_key = (HfsExtentKey*) record; - HfsExtDescriptor* ret_cache = (HfsExtDescriptor*) - (record + sizeof (HfsExtentKey)); - unsigned int block, last_start, first_pass = 1; - - search.key_length = sizeof (HfsExtentKey) - 1; - search.type = HFS_DATA_FORK; - search.file_ID = PED_CPU_TO_BE32 (HFS_BAD_BLOCK_ID); - - last_start = -1; block = 0; - while (1) { - int i; - - search.start = PED_CPU_TO_BE16 (block); - if (!hfs_btree_search (priv_data->extent_file, - (HfsPrivateGenericKey*) &search, - record, sizeof (record), NULL) - || ret_key->file_ID != search.file_ID - || ret_key->type != search.type) { - if (first_pass) - break; - else - goto errbb; - } - if (PED_BE16_TO_CPU (ret_key->start) == last_start) - break; - - last_start = PED_BE16_TO_CPU (ret_key->start); - for (i = 0; i < HFS_EXT_NB; i++) { - if (ret_cache[i].block_count) { - HfsPrivateLinkExtent* new_xt = - (HfsPrivateLinkExtent*) ped_malloc ( - sizeof (HfsPrivateLinkExtent)); - if (!new_xt) - goto errbb; - new_xt->next = priv_data->bad_blocks_xtent_list; - memcpy(&(new_xt->extent), ret_cache+i, - sizeof (HfsExtDescriptor)); - priv_data->bad_blocks_xtent_list = new_xt; - priv_data->bad_blocks_xtent_nb++; - block += PED_BE16_TO_CPU ( - ret_cache[i].block_count); - } - } - first_pass = 0; - } - - priv_data->bad_blocks_loaded = 1; - return 1;} - -errbb: hfs_free_bad_blocks_list(priv_data->bad_blocks_xtent_list); - priv_data->bad_blocks_xtent_list=NULL; - priv_data->bad_blocks_xtent_nb=0; - return 0; -} - -/* This function check if fblock is a bad block */ -int _GL_ATTRIBUTE_PURE -hfs_is_bad_block (const PedFileSystem *fs, unsigned int fblock) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsPrivateLinkExtent* walk; - - for (walk = priv_data->bad_blocks_xtent_list; walk; walk = walk->next) { - /* Won't compile without the strange cast ! gcc bug ? */ - /* or maybe C subtilties... */ - if ((fblock >= PED_BE16_TO_CPU (walk->extent.start_block)) && - (fblock < (unsigned int) (PED_BE16_TO_CPU ( - walk->extent.start_block) - + PED_BE16_TO_CPU ( - walk->extent.block_count)))) - return 1; - } - - return 0; -} - -/* This function returns the first sector of the last free block of an - HFS volume we can get after a hfs_pack_free_space_from_block call */ -/* On error this function returns 0 */ -PedSector -hfs_get_empty_end (const PedFileSystem *fs) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsMasterDirectoryBlock* mdb = priv_data->mdb; - unsigned int block, last_bad, end_free_blocks; - - /* find the next block to the last bad block of the volume */ - if (!hfs_read_bad_blocks (fs)) - return 0; - - HfsPrivateLinkExtent* l; - last_bad = 0; - for (l = priv_data->bad_blocks_xtent_list; l; l = l->next) { - if ((unsigned int) PED_BE16_TO_CPU (l->extent.start_block) - + PED_BE16_TO_CPU (l->extent.block_count) > last_bad) - last_bad = PED_BE16_TO_CPU (l->extent.start_block) - + PED_BE16_TO_CPU (l->extent.block_count); - } - - /* Count the free blocks from last_bad to the end of the volume */ - end_free_blocks = 0; - for (block = last_bad; - block < PED_BE16_TO_CPU (mdb->total_blocks); - block++) { - if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - end_free_blocks++; - } - - /* Calculate the block that will by the first free at the - end of the volume */ - block = PED_BE16_TO_CPU (mdb->total_blocks) - end_free_blocks; - - return (PedSector) PED_BE16_TO_CPU (mdb->start_block) - + (PedSector) block * (PED_BE32_TO_CPU (mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT); -} - -/* return the block which should be used to pack data to have at - least free fblock blocks at the end of the volume */ -unsigned int _GL_ATTRIBUTE_PURE -hfs_find_start_pack (const PedFileSystem *fs, unsigned int fblock) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - unsigned int block; - - for (block = PED_BE16_TO_CPU (priv_data->mdb->total_blocks) - 1; - block && fblock; - block--) { - if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - fblock--; - } - - while (block && !TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - block--; - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - block++; - - return block; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/advfs.h b/jni/parted/libparted/fs/r/hfs/advfs.h deleted file mode 100755 index 094298e..0000000 --- a/jni/parted/libparted/fs/r/hfs/advfs.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _ADVFS_H -#define _ADVFS_H - -#include -#include -#include - -#include "hfs.h" - -int -hfs_btree_search (HfsPrivateFile* b_tree_file, HfsPrivateGenericKey* key, - void *record_out, unsigned int record_size, - HfsCPrivateLeafRec* record_ref); - -void -hfs_free_bad_blocks_list(HfsPrivateLinkExtent* first); - -int -hfs_read_bad_blocks (const PedFileSystem *fs); - -int -hfs_is_bad_block (const PedFileSystem *fs, unsigned int fblock); - -PedSector -hfs_get_empty_end (const PedFileSystem *fs); - -unsigned int -hfs_find_start_pack (const PedFileSystem *fs, unsigned int fblock); - -#endif /* _ADVFS_H */ diff --git a/jni/parted/libparted/fs/r/hfs/advfs_plus.c b/jni/parted/libparted/fs/r/hfs/advfs_plus.c deleted file mode 100755 index 6104460..0000000 --- a/jni/parted/libparted/fs/r/hfs/advfs_plus.c +++ /dev/null @@ -1,385 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "advfs.h" -#include "file_plus.h" - -#include "advfs_plus.h" - -/* - if a < b, 0 if a == b, + if a > b */ -/* Comparaison is done in the following order : */ -/* CNID, then fork type, then start block */ -static int -hfsplus_extent_key_cmp(HfsPPrivateGenericKey* a, HfsPPrivateGenericKey* b) -{ - HfsPExtentKey* key1 = (HfsPExtentKey*) a; - HfsPExtentKey* key2 = (HfsPExtentKey*) b; - - if (key1->file_ID != key2->file_ID) - return PED_BE32_TO_CPU(key1->file_ID) < - PED_BE32_TO_CPU(key2->file_ID) ? - -1 : +1; - - if (key1->type != key2->type) - return (int)(key1->type - key2->type); - - if (key1->start == key2->start) - return 0; - return PED_BE32_TO_CPU(key1->start) < - PED_BE32_TO_CPU(key2->start) ? - -1 : +1; -} - -/* do a B-Tree lookup */ -/* read the first record immediatly inferior or egal to the given key */ -/* return 0 on error */ -/* record_out _must_ be large enough to receive the whole record (key + data) */ -/* WARNING : the search function called only handle Extents BTree */ -/* so modify this function if you want to do lookup in */ -/* other BTrees has well */ -int -hfsplus_btree_search (HfsPPrivateFile* b_tree_file, HfsPPrivateGenericKey* key, - void *record_out, unsigned int record_size, - HfsCPrivateLeafRec* record_ref) -{ - uint8_t node_1[PED_SECTOR_SIZE_DEFAULT]; - uint8_t* node; - HfsPHeaderRecord* header; - HfsPPrivateGenericKey* record_key = NULL; - unsigned int node_number, record_number, size, bsize; - int i; - uint16_t record_pos; - - /* Read the header node */ - if (!hfsplus_file_read_sector(b_tree_file, node_1, 0)) - return 0; - header = (HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC); - - /* Get the node number of the root */ - node_number = PED_BE32_TO_CPU (header->root_node); - if (!node_number) - return 0; - - /* Get the size of a node in sectors and allocate buffer */ - size = (bsize = PED_BE16_TO_CPU (header->node_size)) / PED_SECTOR_SIZE_DEFAULT; - node = ped_malloc (bsize); - if (!node) - return 0; - HfsPNodeDescriptor *desc = (HfsPNodeDescriptor*) node; - - /* Read the root node */ - if (!hfsplus_file_read (b_tree_file, node, - (PedSector) node_number * size, size)) - return 0; - - /* Follow the white rabbit */ - while (1) { - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = record_number; i; i--) { - uint16_t value; - memcpy(&value, node+(bsize - (2*i)), sizeof(uint16_t)); - record_pos = PED_BE16_TO_CPU(value); - record_key = (HfsPPrivateGenericKey*) (node + record_pos); - /* check for obvious error in FS */ - if ((record_pos < HFS_FIRST_REC) - || (record_pos >= (signed)bsize - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - free (node); - return 0; - } - if (hfsplus_extent_key_cmp(record_key, key) <= 0) - break; - } - if (!i) { free (node); return 0; } - if (desc->type == HFS_IDX_NODE) { - unsigned int skip; - - skip = ( 2 + PED_BE16_TO_CPU (record_key->key_length) - + 1 ) & ~1; - uint32_t value; - memcpy(&value, node+record_pos+skip, sizeof(uint32_t)); - node_number = PED_BE32_TO_CPU(value); - if (!hfsplus_file_read(b_tree_file, node, - (PedSector) node_number * size, - size)) { - free (node); - return 0; - } - } else - break; - } - - /* copy the result if needed */ - if (record_size) - memcpy (record_out, record_key, record_size); - - /* send record reference if needed */ - if (record_ref) { - record_ref->node_size = size; /* in sectors */ - record_ref->node_number = node_number; - record_ref->record_pos = record_pos; - record_ref->record_number = i; - } - - /* success */ - free (node); - return 1; -} - -/* free the bad blocks linked list */ -void -hfsplus_free_bad_blocks_list(HfsPPrivateLinkExtent* first) -{ - HfsPPrivateLinkExtent* next; - - while (first) { - next = first->next; - free (first); - first = next; - } -} - -/* This function reads bad blocks extents in the extents file - and store it in f.s. specific data of fs */ -int -hfsplus_read_bad_blocks (const PedFileSystem *fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - - if (priv_data->bad_blocks_loaded) - return 1; - - { - uint8_t record[sizeof (HfsPExtentKey) - + sizeof (HfsPExtDataRec)]; - HfsPExtentKey search; - HfsPExtentKey* ret_key = (HfsPExtentKey*) record; - HfsPExtDescriptor* ret_cache = (HfsPExtDescriptor*) - (record + sizeof (HfsPExtentKey)); - int block, first_pass = 1; - unsigned int last_start; - - search.key_length = sizeof (HfsExtentKey) - 2; - search.type = HFS_DATA_FORK; - search.pad = 0; - search.file_ID = PED_CPU_TO_BE32 (HFS_BAD_BLOCK_ID); - - last_start = -1; block = 0; - while (1) { - int i; - - search.start = PED_CPU_TO_BE32 (block); - if (!hfsplus_btree_search (priv_data->extents_file, - (HfsPPrivateGenericKey*) &search, - record, sizeof (record), NULL) - || ret_key->file_ID != search.file_ID - || ret_key->type != search.type) { - if (first_pass) - break; - else - goto errbbp; - } - if (PED_BE32_TO_CPU (ret_key->start) == last_start) - break; - - last_start = PED_BE32_TO_CPU (ret_key->start); - for (i = 0; i < HFSP_EXT_NB; i++) { - if (ret_cache[i].block_count) { - HfsPPrivateLinkExtent* new_xt = - (HfsPPrivateLinkExtent*) ped_malloc ( - sizeof (HfsPPrivateLinkExtent)); - if (!new_xt) - goto errbbp; - new_xt->next = priv_data->bad_blocks_xtent_list; - memcpy (&(new_xt->extent), ret_cache+i, - sizeof (HfsPExtDescriptor)); - priv_data->bad_blocks_xtent_list = new_xt; - priv_data->bad_blocks_xtent_nb++; - block += PED_BE32_TO_CPU ( - ret_cache[i].block_count); - } - } - first_pass = 0; - } - - priv_data->bad_blocks_loaded = 1; - return 1;} - -errbbp: hfsplus_free_bad_blocks_list(priv_data->bad_blocks_xtent_list); - priv_data->bad_blocks_xtent_list=NULL; - priv_data->bad_blocks_xtent_nb=0; - return 0; -} - -/* This function check if fblock is a bad block */ -int _GL_ATTRIBUTE_PURE -hfsplus_is_bad_block (const PedFileSystem *fs, unsigned int fblock) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPPrivateLinkExtent* walk; - - for (walk = priv_data->bad_blocks_xtent_list; walk; walk = walk->next) { - /* Won't compile without the strange cast ! gcc bug ? */ - /* or maybe C subtilties... */ - if ((fblock >= PED_BE32_TO_CPU (walk->extent.start_block)) && - (fblock < (unsigned int)(PED_BE32_TO_CPU ( - walk->extent.start_block) - + PED_BE32_TO_CPU (walk->extent.block_count)))) - return 1; - } - - return 0; -} - -/* This function returns the first sector of the last free block of - an HFS+ volume we can get after a hfsplus_pack_free_space_from_block call */ -PedSector -hfsplus_get_empty_end (const PedFileSystem *fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPVolumeHeader* vh = priv_data->vh; - unsigned int block, last_bad, end_free_blocks; - - /* find the next block to the last bad block of the volume */ - if (!hfsplus_read_bad_blocks (fs)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Bad blocks could not be read.")); - return 0; - } - - HfsPPrivateLinkExtent* l; - last_bad = 0; - for (l = priv_data->bad_blocks_xtent_list; l; l = l->next) { - if ((unsigned int) PED_BE32_TO_CPU (l->extent.start_block) - + PED_BE32_TO_CPU (l->extent.block_count) > last_bad) - last_bad = PED_BE32_TO_CPU (l->extent.start_block) - + PED_BE32_TO_CPU (l->extent.block_count); - } - - /* Count the free blocks from last_bad to the end of the volume */ - end_free_blocks = 0; - for (block = last_bad; - block < PED_BE32_TO_CPU (vh->total_blocks); - block++) { - if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - end_free_blocks++; - } - - /* Calculate the block that will by the first free at - the end of the volume */ - block = PED_BE32_TO_CPU (vh->total_blocks) - end_free_blocks; - - return (PedSector) block * ( PED_BE32_TO_CPU (vh->block_size) - / PED_SECTOR_SIZE_DEFAULT ); -} - -/* On error, returns 0 */ -PedSector -hfsplus_get_min_size (const PedFileSystem *fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - PedSector min_size; - - /* don't need to add anything because every sector - can be part of allocation blocks in HFS+, and - the last block _must_ be reserved */ - min_size = hfsplus_get_empty_end(fs); - if (!min_size) return 0; - - if (priv_data->wrapper) { - HfsPrivateFSData* hfs_priv_data = (HfsPrivateFSData*) - priv_data->wrapper->type_specific; - unsigned int hfs_sect_block; - PedSector hgee; - hfs_sect_block = - PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT; - /* - * if hfs+ is embedded in an hfs wrapper then the new size is : - * the new size of the hfs+ volume rounded up to the size - * of hfs blocks - * + the minimum size of the hfs wrapper without any hfs+ - * modification - * - the current size of the hfs+ volume in the hfs wrapper - */ - hgee = hfs_get_empty_end(priv_data->wrapper); - if (!hgee) return 0; - min_size = ((min_size + hfs_sect_block - 1) / hfs_sect_block) - * hfs_sect_block - + hgee + 2 - - (PedSector) PED_BE16_TO_CPU ( hfs_priv_data->mdb - ->old_new.embedded - .location.block_count ) - * hfs_sect_block; - } - - return min_size; -} - -/* return the block which should be used to pack data to have - at least free fblock blocks at the end of the volume */ -unsigned int _GL_ATTRIBUTE_PURE -hfsplus_find_start_pack (const PedFileSystem *fs, unsigned int fblock) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - unsigned int block; - - for (block = PED_BE32_TO_CPU (priv_data->vh->total_blocks) - 1; - block && fblock; - block--) { - if (!TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - fblock--; - } - - while (block && !TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - block--; - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) - block++; - - return block; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/advfs_plus.h b/jni/parted/libparted/fs/r/hfs/advfs_plus.h deleted file mode 100755 index 61972c2..0000000 --- a/jni/parted/libparted/fs/r/hfs/advfs_plus.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _ADVFS_PLUS_H -#define _ADVFS_PLUS_H - -#include -#include -#include - -#include "hfs.h" - -int -hfsplus_btree_search (HfsPPrivateFile* b_tree_file, HfsPPrivateGenericKey* key, - void *record_out, unsigned int record_size, - HfsCPrivateLeafRec* record_ref); - -void -hfsplus_free_bad_blocks_list(HfsPPrivateLinkExtent* first); - -int -hfsplus_read_bad_blocks (const PedFileSystem *fs); - -int -hfsplus_is_bad_block (const PedFileSystem *fs, unsigned int fblock); - -PedSector -hfsplus_get_empty_end (const PedFileSystem *fs); - -PedSector -hfsplus_get_min_size (const PedFileSystem *fs); - -unsigned int -hfsplus_find_start_pack (const PedFileSystem *fs, unsigned int fblock); - -#endif /* _ADVFS_PLUS_H */ diff --git a/jni/parted/libparted/fs/r/hfs/cache.c b/jni/parted/libparted/fs/r/hfs/cache.c deleted file mode 100755 index 255f1fd..0000000 --- a/jni/parted/libparted/fs/r/hfs/cache.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" - -#include "cache.h" - -static HfsCPrivateCacheTable* -hfsc_new_cachetable(unsigned int size) -{ - HfsCPrivateCacheTable* ret; - - ret = (HfsCPrivateCacheTable*) ped_malloc(sizeof(*ret)); - if (!ret) return NULL; - - ret->next_cache = NULL; - ret->table_size = size; - ret->table_first_free = 0; - - ret->table = ped_malloc(sizeof(*ret->table)*size); - if (!ret->table) { free(ret); return NULL; } - memset(ret->table, 0, sizeof(*ret->table)*size); - - return ret; -} - -HfsCPrivateCache* -hfsc_new_cache(unsigned int block_number, unsigned int file_number) -{ - unsigned int cachetable_size, i; - HfsCPrivateCache* ret; - - ret = (HfsCPrivateCache*) ped_malloc(sizeof(*ret)); - if (!ret) return NULL; - ret->block_number = block_number; - /* following code avoid integer overflow */ - ret->linked_ref_size = block_number > block_number + ((1<> CR_SHIFT ) + 1 : - ( block_number + ((1<> CR_SHIFT - ; - - ret->linked_ref = (HfsCPrivateExtent**) - ped_malloc( sizeof(*ret->linked_ref) - * ret->linked_ref_size ); - if (!ret->linked_ref) { free(ret); return NULL; } - - cachetable_size = file_number + file_number / CR_OVER_DIV + CR_ADD_CST; - if (cachetable_size < file_number) cachetable_size = (unsigned) -1; - ret->first_cachetable_size = cachetable_size; - ret->table_list = hfsc_new_cachetable(cachetable_size); - if (!ret->table_list) { - free(ret->linked_ref); - free(ret); - return NULL; - } - ret->last_table = ret->table_list; - - for (i = 0; i < ret->linked_ref_size; ++i) - ret->linked_ref[i] = NULL; - - ret->needed_alloc_size = 0; - - return ret; -} - -static void -hfsc_delete_cachetable(HfsCPrivateCacheTable* list) -{ - HfsCPrivateCacheTable* next; - - while (list) { - free (list->table); - next = list->next_cache; - free (list); - list = next; - } -} - -void -hfsc_delete_cache(HfsCPrivateCache* cache) -{ - hfsc_delete_cachetable(cache->table_list); - free(cache->linked_ref); - free(cache); -} - -HfsCPrivateExtent* -hfsc_cache_add_extent(HfsCPrivateCache* cache, uint32_t start, uint32_t length, - uint32_t block, uint16_t offset, uint8_t sbb, - uint8_t where, uint8_t ref_index) -{ - HfsCPrivateExtent* ext; - unsigned int idx = start >> CR_SHIFT; - - PED_ASSERT(idx < cache->linked_ref_size); - - for (ext = cache->linked_ref[idx]; - ext && start != ext->ext_start; - ext = ext->next); - - if (ext) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Trying to register an extent starting at block " - "0x%X, but another one already exists at this " - "position. You should check the file system!"), - start); - return NULL; - } - - if ( cache->last_table->table_first_free - == cache->last_table->table_size ) { - cache->last_table->next_cache = - hfsc_new_cachetable( ( cache->first_cachetable_size - / CR_NEW_ALLOC_DIV ) - + CR_ADD_CST ); - if (!cache->last_table->next_cache) - return NULL; - cache->last_table = cache->last_table->next_cache; - } - - ext = cache->last_table->table+(cache->last_table->table_first_free++); - - ext->ext_start = start; - ext->ext_length = length; - ext->ref_block = block; - ext->ref_offset = offset; - ext->sect_by_block = sbb; - ext->where = where; - ext->ref_index = ref_index; - - ext->next = cache->linked_ref[idx]; - cache->linked_ref[idx] = ext; - - cache->needed_alloc_size = cache->needed_alloc_size > - (unsigned) PED_SECTOR_SIZE_DEFAULT * sbb ? - cache->needed_alloc_size : - (unsigned) PED_SECTOR_SIZE_DEFAULT * sbb; - - return ext; -} - -HfsCPrivateExtent* _GL_ATTRIBUTE_PURE -hfsc_cache_search_extent(HfsCPrivateCache* cache, uint32_t start) -{ - HfsCPrivateExtent* ret; - unsigned int idx = start >> CR_SHIFT; - - PED_ASSERT(idx < cache->linked_ref_size); - - for (ret = cache->linked_ref[idx]; - ret && start != ret->ext_start; - ret = ret->next); - - return ret; -} - -/* Can't fail if extent begining at old_start exists */ -/* Returns 0 if no such extent, or on error */ -HfsCPrivateExtent* -hfsc_cache_move_extent(HfsCPrivateCache* cache, uint32_t old_start, - uint32_t new_start) -{ - HfsCPrivateExtent** ppext; - HfsCPrivateExtent* pext; - - unsigned int idx1 = old_start >> CR_SHIFT; - unsigned int idx2 = new_start >> CR_SHIFT; - - PED_ASSERT(idx1 < cache->linked_ref_size); - PED_ASSERT(idx2 < cache->linked_ref_size); - - for (pext = cache->linked_ref[idx2]; - pext && new_start != pext->ext_start; - pext = pext->next); - - if (pext) { - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("Trying to move an extent from block 0x%X to block " - "0x%X, but another one already exists at this " - "position. This should not happen!"), - old_start, new_start); - return NULL; - } - - for (ppext = &(cache->linked_ref[idx1]); - (*ppext) && old_start != (*ppext)->ext_start; - ppext = &((*ppext)->next)); - - if (!(*ppext)) return NULL; - - /* removing the extent from the cache */ - pext = *ppext; - (*ppext) = pext->next; - - /* change ext_start and insert the extent again */ - pext->ext_start = new_start; - pext->next = cache->linked_ref[idx2]; - cache->linked_ref[idx2] = pext; - - return pext; -} - -#endif /* DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/cache.h b/jni/parted/libparted/fs/r/hfs/cache.h deleted file mode 100755 index d009fd9..0000000 --- a/jni/parted/libparted/fs/r/hfs/cache.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef _CACHE_H -#define _CACHE_H - -#include -#include -#include - -#include "hfs.h" - -/* CR => CACHE REF */ -#define CR_NULL 0 /* reserved */ -#define CR_PRIM_CAT 1 -#define CR_PRIM_EXT 2 -#define CR_PRIM_ATTR 3 -#define CR_PRIM_ALLOC 4 -#define CR_PRIM_START 5 -#define CR_BTREE_CAT 6 -#define CR_BTREE_ATTR 7 -#define CR_BTREE_EXT_0 8 -#define CR_BTREE_EXT_CAT 9 -#define CR_BTREE_EXT_EXT 10 /* should not happen ! */ -#define CR_BTREE_EXT_ATTR 11 -#define CR_BTREE_EXT_ALLOC 12 -#define CR_BTREE_EXT_START 13 /* unneeded in current code */ -#define CR_BTREE_CAT_JIB 14 /* journal info block */ -#define CR_BTREE_CAT_JL 15 /* journal */ -/* 16 -> 31 || high order bit */ /* reserved */ - -/* tuning */ -#define CR_SHIFT 8 /* number of bits to shift start_block by */ - /* to get the index of the linked list */ -#define CR_OVER_DIV 16 /* alloc a table for (1+1/CR_OVER_DIV) * - file_number + CR_ADD_CST */ -#define CR_ADD_CST 16 -#define CR_NEW_ALLOC_DIV 4 /* divide the size of the first alloc table - by this value to allocate next tables */ - -/* See DOC for an explaination of this structure */ -/* Access read only from outside cache.c */ -struct _HfsCPrivateExtent { - struct _HfsCPrivateExtent* next; - uint32_t ext_start; - uint32_t ext_length; - uint32_t ref_block; - uint16_t ref_offset; - uint8_t sect_by_block; - unsigned where : 5; - unsigned ref_index : 3; /* 0 -> 7 */ -}; -typedef struct _HfsCPrivateExtent HfsCPrivateExtent; - -/* Internaly used by cache.c for custom memory managment only */ -struct _HfsCPrivateCacheTable { - struct _HfsCPrivateCacheTable* next_cache; - HfsCPrivateExtent* table; - unsigned int table_size; - unsigned int table_first_free; - /* first_elemt ? */ -}; -typedef struct _HfsCPrivateCacheTable HfsCPrivateCacheTable; - -/* Internaly used by cache.c for custom memory managment - and cache handling only */ -struct _HfsCPrivateCache { - HfsCPrivateCacheTable* table_list; - HfsCPrivateCacheTable* last_table; - HfsCPrivateExtent** linked_ref; - unsigned int linked_ref_size; - unsigned int block_number; - unsigned int first_cachetable_size; - unsigned int needed_alloc_size; -}; -typedef struct _HfsCPrivateCache HfsCPrivateCache; - -HfsCPrivateCache* -hfsc_new_cache(unsigned int block_number, unsigned int file_number); - -void -hfsc_delete_cache(HfsCPrivateCache* cache); - -HfsCPrivateExtent* -hfsc_cache_add_extent(HfsCPrivateCache* cache, uint32_t start, uint32_t length, - uint32_t block, uint16_t offset, uint8_t sbb, - uint8_t where, uint8_t index); - -HfsCPrivateExtent* -hfsc_cache_search_extent(HfsCPrivateCache* cache, uint32_t start); - -HfsCPrivateExtent* -hfsc_cache_move_extent(HfsCPrivateCache* cache, uint32_t old_start, - uint32_t new_start); - -static __inline__ unsigned int -hfsc_cache_needed_buffer(HfsCPrivateCache* cache) -{ - return cache->needed_alloc_size; -} - -#endif /* _CACHE_H */ diff --git a/jni/parted/libparted/fs/r/hfs/file-16771e92.o.tmp b/jni/parted/libparted/fs/r/hfs/file-16771e92.o.tmp deleted file mode 100755 index e69de29..0000000 diff --git a/jni/parted/libparted/fs/r/hfs/file.c b/jni/parted/libparted/fs/r/hfs/file.c deleted file mode 100755 index 6024d84..0000000 --- a/jni/parted/libparted/fs/r/hfs/file.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "advfs.h" - -#include "file.h" - -/* Open the data fork of a file with its first three extents and its CNID */ -HfsPrivateFile* -hfs_file_open (PedFileSystem *fs, uint32_t CNID, - HfsExtDataRec ext_desc, PedSector sect_nb) -{ - HfsPrivateFile* file; - - file = (HfsPrivateFile*) ped_malloc (sizeof (HfsPrivateFile)); - if (!file) return NULL; - - file->fs = fs; - file->sect_nb = sect_nb; - file->CNID = CNID; - memcpy(file->first, ext_desc, sizeof (HfsExtDataRec)); - file->start_cache = 0; - - return file; -} - -/* Close an HFS file */ -void -hfs_file_close (HfsPrivateFile* file) -{ - free (file); -} - -/* warning : only works on data forks */ -static int -hfs_get_extent_containing (HfsPrivateFile* file, unsigned int block, - HfsExtDataRec cache, uint16_t* ptr_start_cache) -{ - uint8_t record[sizeof (HfsExtentKey) - + sizeof (HfsExtDataRec)]; - HfsExtentKey search; - HfsExtentKey* ret_key = (HfsExtentKey*) record; - HfsExtDescriptor* ret_cache = (HfsExtDescriptor*) - (record + sizeof (HfsExtentKey)); - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - file->fs->type_specific; - - search.key_length = sizeof (HfsExtentKey) - 1; - search.type = HFS_DATA_FORK; - search.file_ID = file->CNID; - search.start = PED_CPU_TO_BE16 (block); - - if (!hfs_btree_search (priv_data->extent_file, - (HfsPrivateGenericKey*) &search, - record, sizeof (record), NULL)) - return 0; - - if (ret_key->file_ID != search.file_ID || ret_key->type != search.type) - return 0; - - memcpy (cache, ret_cache, sizeof(HfsExtDataRec)); - *ptr_start_cache = PED_BE16_TO_CPU (ret_key->start); - - return 1; -} - -/* find and return the nth sector of a file */ -/* return 0 on error */ -static PedSector -hfs_file_find_sector (HfsPrivateFile* file, PedSector sector) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - file->fs->type_specific; - unsigned int sect_by_block = PED_BE32_TO_CPU ( - priv_data->mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT; - unsigned int i, s, vol_block; - unsigned int block = sector / sect_by_block; - unsigned int offset = sector % sect_by_block; - - /* in the three first extent */ - for (s = 0, i = 0; i < HFS_EXT_NB; i++) { - if ((block >= s) && ( block < s + PED_BE16_TO_CPU ( - file->first[i].block_count))) { - vol_block = (block - s) + PED_BE16_TO_CPU ( - file->first[i].start_block); - goto sector_found; - } - s += PED_BE16_TO_CPU (file->first[i].block_count); - } - - /* in the three cached extent */ - if (file->start_cache && block >= file->start_cache) - for (s = file->start_cache, i = 0; i < HFS_EXT_NB; i++) { - if ((block >= s) && (block < s + PED_BE16_TO_CPU ( - file->cache[i].block_count))) { - vol_block = (block - s) + PED_BE16_TO_CPU ( - file->cache[i].start_block); - goto sector_found; - } - s += PED_BE16_TO_CPU (file->cache[i].block_count); - } - - /* update cache */ - if (!hfs_get_extent_containing (file, block, file->cache, - &(file->start_cache))) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_CANCEL, - _("Could not update the extent cache for HFS file with " - "CNID %X."), - PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - /* in the three cached extent */ - PED_ASSERT(file->start_cache && block >= file->start_cache); - for (s = file->start_cache, i = 0; i < HFS_EXT_NB; i++) { - if ((block >= s) && (block < s + PED_BE16_TO_CPU ( - file->cache[i].block_count))) { - vol_block = (block - s) + PED_BE16_TO_CPU ( - file->cache[i].start_block); - goto sector_found; - } - s += PED_BE16_TO_CPU (file->cache[i].block_count); - } - - return 0; - - sector_found: - return (PedSector) PED_BE16_TO_CPU (priv_data->mdb->start_block) - + (PedSector) vol_block * sect_by_block - + offset; -} - -/* Read the nth sector of a file */ -/* return 0 on error */ -int -hfs_file_read_sector (HfsPrivateFile* file, void *buf, PedSector sector) -{ - PedSector abs_sector; - - if (sector >= file->sect_nb) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Trying to read HFS file with CNID %X behind EOF."), - PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - abs_sector = hfs_file_find_sector (file, sector); - if (!abs_sector) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Could not find sector %lli of HFS file with " - "CNID %X."), - sector, PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - return ped_geometry_read (file->fs->geom, buf, abs_sector, 1); -} - -/* Write the nth sector of a file */ -/* return 0 on error */ -int -hfs_file_write_sector (HfsPrivateFile* file, void *buf, PedSector sector) -{ - PedSector abs_sector; - - if (sector >= file->sect_nb) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Trying to write HFS file with CNID %X behind EOF."), - PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - abs_sector = hfs_file_find_sector (file, sector); - if (!abs_sector) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Could not find sector %lli of HFS file with " - "CNID %X."), - sector, PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - return ped_geometry_write (file->fs->geom, buf, abs_sector, 1); -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/file.h b/jni/parted/libparted/fs/r/hfs/file.h deleted file mode 100755 index f8cb485..0000000 --- a/jni/parted/libparted/fs/r/hfs/file.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _FILE_H -#define _FILE_H - -#include -#include -#include - -#include "hfs.h" - -HfsPrivateFile* -hfs_file_open (PedFileSystem *fs, uint32_t CNID, - HfsExtDataRec ext_desc, PedSector sect_nb); - -void -hfs_file_close (HfsPrivateFile* file); - -int -hfs_file_read_sector (HfsPrivateFile* file, void *buf, PedSector sector); - -int -hfs_file_write_sector (HfsPrivateFile* file, void *buf, PedSector sector); - -#endif /* _FILE_H */ diff --git a/jni/parted/libparted/fs/r/hfs/file_plus.c b/jni/parted/libparted/fs/r/hfs/file_plus.c deleted file mode 100755 index aeff5ee..0000000 --- a/jni/parted/libparted/fs/r/hfs/file_plus.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "advfs_plus.h" - -#include "file_plus.h" - -/* Open the data fork of a file with its first eight extents and its CNID */ -/* CNID and ext_desc must be in disc order, sect_nb in CPU order */ -/* return null on failure */ -HfsPPrivateFile* -hfsplus_file_open (PedFileSystem *fs, HfsPNodeID CNID, - HfsPExtDataRec ext_desc, PedSector sect_nb) -{ - HfsPPrivateFile* file; - - file = (HfsPPrivateFile*) ped_malloc (sizeof (HfsPPrivateFile)); - if (!file) return NULL; - - file->fs = fs; - file->sect_nb = sect_nb; - file->CNID = CNID; - memcpy(file->first, ext_desc, sizeof (HfsPExtDataRec)); - file->start_cache = 0; - - return file; -} - -/* Close an HFS+ file */ -void -hfsplus_file_close (HfsPPrivateFile* file) -{ - free (file); -} - -/* warning : only works on data forks */ -static int -hfsplus_get_extent_containing (HfsPPrivateFile* file, unsigned int block, - HfsPExtDataRec cache, uint32_t* ptr_start_cache) -{ - uint8_t record[sizeof (HfsPExtentKey) - + sizeof (HfsPExtDataRec)]; - HfsPExtentKey search; - HfsPExtentKey* ret_key = (HfsPExtentKey*) record; - HfsPExtDescriptor* ret_cache = (HfsPExtDescriptor*) - (record + sizeof (HfsPExtentKey)); - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - file->fs->type_specific; - - search.key_length = PED_CPU_TO_BE16 (sizeof (HfsPExtentKey) - 2); - search.type = HFS_DATA_FORK; - search.pad = 0; - search.file_ID = file->CNID; - search.start = PED_CPU_TO_BE32 (block); - - if (!hfsplus_btree_search (priv_data->extents_file, - (HfsPPrivateGenericKey*) &search, - record, sizeof (record), NULL)) - return 0; - - if (ret_key->file_ID != search.file_ID || ret_key->type != search.type) - return 0; - - memcpy (cache, ret_cache, sizeof(HfsPExtDataRec)); - *ptr_start_cache = PED_BE32_TO_CPU (ret_key->start); - - return 1; -} - -/* find a sub extent contained in the desired area */ -/* and with the same starting point */ -/* return 0 in sector_count on error, or the physical area */ -/* on the volume corresponding to the logical area in the file */ -static HfsPPrivateExtent -hfsplus_file_find_extent (HfsPPrivateFile* file, PedSector sector, - unsigned int nb) -{ - HfsPPrivateExtent ret = {0,0}; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - file->fs->type_specific; - unsigned int sect_by_block = PED_BE32_TO_CPU ( - priv_data->vh->block_size) - / PED_SECTOR_SIZE_DEFAULT; - unsigned int i, s, vol_block, size; - PedSector sect_size; - unsigned int block = sector / sect_by_block; - unsigned int offset = sector % sect_by_block; - - /* in the 8 first extent */ - for (s = 0, i = 0; i < HFSP_EXT_NB; i++) { - if ((block >= s) && (block < s + PED_BE32_TO_CPU ( - file->first[i].block_count))) { - vol_block = (block - s) - + PED_BE32_TO_CPU (file->first[i] - .start_block); - size = PED_BE32_TO_CPU (file->first[i].block_count) - + s - block; - goto plus_sector_found; - } - s += PED_BE32_TO_CPU (file->first[i].block_count); - } - - /* in the 8 cached extent */ - if (file->start_cache && block >= file->start_cache) - for (s = file->start_cache, i = 0; i < HFSP_EXT_NB; i++) { - if ((block >= s) && (block < s + PED_BE32_TO_CPU ( - file->cache[i].block_count))) { - vol_block = (block - s) - + PED_BE32_TO_CPU (file->cache[i] - .start_block); - size = PED_BE32_TO_CPU (file->cache[i].block_count) - + s - block; - goto plus_sector_found; - } - s += PED_BE32_TO_CPU (file->cache[i].block_count); - } - - /* update cache */ - if (!hfsplus_get_extent_containing (file, block, file->cache, - &(file->start_cache))) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_CANCEL, - _("Could not update the extent cache for HFS+ file " - "with CNID %X."), - PED_BE32_TO_CPU(file->CNID)); - return ret; /* ret == {0,0} */ - } - - /* ret == {0,0} */ - PED_ASSERT(file->start_cache && block >= file->start_cache); - - for (s = file->start_cache, i = 0; i < HFSP_EXT_NB; i++) { - if ((block >= s) && (block < s + PED_BE32_TO_CPU ( - file->cache[i].block_count))) { - vol_block = (block - s) - + PED_BE32_TO_CPU (file->cache[i] - .start_block); - size = PED_BE32_TO_CPU (file->cache[i].block_count) - + s - block; - goto plus_sector_found; - } - s += PED_BE32_TO_CPU (file->cache[i].block_count); - } - - return ret; - -plus_sector_found: - sect_size = (PedSector) size * sect_by_block - offset; - ret.start_sector = vol_block * sect_by_block + offset; - ret.sector_count = (sect_size < nb) ? sect_size : nb; - return ret; -} - -int -hfsplus_file_read(HfsPPrivateFile* file, void *buf, PedSector sector, - unsigned int nb) -{ - HfsPPrivateExtent phy_area; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - file->fs->type_specific; - char *b = buf; - - if (sector+nb < sector /* detect overflow */ - || sector+nb > file->sect_nb) /* out of file */ { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Trying to read HFS+ file with CNID %X behind EOF."), - PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - while (nb) { - phy_area = hfsplus_file_find_extent(file, sector, nb); - if (phy_area.sector_count == 0) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Could not find sector %lli of HFS+ file " - "with CNID %X."), - sector, PED_BE32_TO_CPU(file->CNID)); - return 0; - } - if (!ped_geometry_read(priv_data->plus_geom, b, - phy_area.start_sector, - phy_area.sector_count)) - return 0; - - nb -= phy_area.sector_count; /* < nb anyway ... */ - sector += phy_area.sector_count; - b += phy_area.sector_count * PED_SECTOR_SIZE_DEFAULT; - } - - return 1; -} - -int -hfsplus_file_write(HfsPPrivateFile* file, void *buf, PedSector sector, - unsigned int nb) -{ - HfsPPrivateExtent phy_area; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - file->fs->type_specific; - char *b = buf; - - if (sector+nb < sector /* detect overflow */ - || sector+nb > file->sect_nb) /* out of file */ { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Trying to write HFS+ file with CNID %X behind EOF."), - PED_BE32_TO_CPU(file->CNID)); - return 0; - } - - while (nb) { - phy_area = hfsplus_file_find_extent(file, sector, nb); - if (phy_area.sector_count == 0) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Could not find sector %lli of HFS+ file " - "with CNID %X."), - sector, PED_BE32_TO_CPU(file->CNID)); - return 0; - } - if (!ped_geometry_write(priv_data->plus_geom, b, - phy_area.start_sector, - phy_area.sector_count)) - return 0; - - nb -= phy_area.sector_count; /* < nb anyway ... */ - sector += phy_area.sector_count; - b += phy_area.sector_count * PED_SECTOR_SIZE_DEFAULT; - } - - return 1; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/file_plus.h b/jni/parted/libparted/fs/r/hfs/file_plus.h deleted file mode 100755 index cd54f3f..0000000 --- a/jni/parted/libparted/fs/r/hfs/file_plus.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _FILE_PLUS_H -#define _FILE_PLUS_H - -#include -#include -#include - -#include "hfs.h" - -HfsPPrivateFile* -hfsplus_file_open (PedFileSystem *fs, HfsPNodeID CNID, - HfsPExtDataRec ext_desc, PedSector sect_nb); - -void -hfsplus_file_close (HfsPPrivateFile* file); - -int -hfsplus_file_read(HfsPPrivateFile* file, void *buf, - PedSector sector, unsigned int nb); - -int -hfsplus_file_write(HfsPPrivateFile* file, void *buf, - PedSector sector, unsigned int nb); - -/* Read the nth sector of a file */ -/* return 0 on error */ -static __inline__ int -hfsplus_file_read_sector (HfsPPrivateFile* file, void *buf, PedSector sector) -{ - return hfsplus_file_read(file, buf, sector, 1); -} - -/* Write the nth sector of a file */ -/* return 0 on error */ -static __inline__ int -hfsplus_file_write_sector (HfsPPrivateFile* file, void *buf, PedSector sector) -{ - return hfsplus_file_write(file, buf, sector, 1); -} - - -#endif /* _FILE_PLUS_H */ diff --git a/jni/parted/libparted/fs/r/hfs/hfs.c b/jni/parted/libparted/fs/r/hfs/hfs.c deleted file mode 100755 index 8959b47..0000000 --- a/jni/parted/libparted/fs/r/hfs/hfs.c +++ /dev/null @@ -1,1166 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2003-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -/* - Author : Guillaume Knispel - Report bug to -*/ - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "probe.h" - -uint8_t* hfs_block = NULL; -uint8_t* hfsp_block = NULL; -unsigned hfs_block_count; -unsigned hfsp_block_count; - -#define HFS_BLOCK_SIZES ((int[2]){512, 0}) -#define HFSP_BLOCK_SIZES ((int[2]){512, 0}) -#define HFSX_BLOCK_SIZES ((int[2]){512, 0}) - -#ifndef DISCOVER_ONLY -#include "file.h" -#include "reloc.h" -#include "advfs.h" - -static PedFileSystemType hfs_type; -static PedFileSystemType hfsplus_type; - - -/* ----- HFS ----- */ - -PedFileSystem * -hfs_open (PedGeometry* geom) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - PedFileSystem* fs; - HfsMasterDirectoryBlock* mdb; - HfsPrivateFSData* priv_data; - - if (!hfsc_can_use_geom (geom)) - return NULL; - - /* Read MDB */ - if (!ped_geometry_read (geom, buf, 2, 1)) - return NULL; - - /* Allocate memory */ - fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem)); - if (!fs) goto ho; - mdb = (HfsMasterDirectoryBlock*) - ped_malloc (sizeof (HfsMasterDirectoryBlock)); - if (!mdb) goto ho_fs; - priv_data = (HfsPrivateFSData*) - ped_malloc (sizeof (HfsPrivateFSData)); - if (!priv_data) goto ho_mdb; - - memcpy (mdb, buf, sizeof (HfsMasterDirectoryBlock)); - - /* init structures */ - priv_data->mdb = mdb; - priv_data->bad_blocks_loaded = 0; - priv_data->bad_blocks_xtent_nb = 0; - priv_data->bad_blocks_xtent_list = NULL; - priv_data->extent_file = - hfs_file_open (fs, PED_CPU_TO_BE32 (HFS_XTENT_ID), - mdb->extents_file_rec, - PED_CPU_TO_BE32 (mdb->extents_file_size) - / PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->extent_file) goto ho_pd; - priv_data->catalog_file = - hfs_file_open (fs, PED_CPU_TO_BE32 (HFS_CATALOG_ID), - mdb->catalog_file_rec, - PED_CPU_TO_BE32 (mdb->catalog_file_size) - / PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->catalog_file) goto ho_ce; - /* Read allocation blocks */ - if (!ped_geometry_read(geom, priv_data->alloc_map, - PED_BE16_TO_CPU (mdb->volume_bitmap_block), - ( PED_BE16_TO_CPU (mdb->total_blocks) - + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) - / (PED_SECTOR_SIZE_DEFAULT * 8) ) ) - goto ho_cf; - - fs->type = &hfs_type; - fs->geom = ped_geometry_duplicate (geom); - if (!fs->geom) goto ho_cf; - fs->type_specific = (void*) priv_data; - fs->checked = ( PED_BE16_TO_CPU (mdb->volume_attributes) - >> HFS_UNMOUNTED ) & 1; - - return fs; - -/*--- clean error handling ---*/ -ho_cf: hfs_file_close(priv_data->catalog_file); -ho_ce: hfs_file_close(priv_data->extent_file); -ho_pd: free(priv_data); -ho_mdb: free(mdb); -ho_fs: free(fs); -ho: return NULL; -} - -int -hfs_close (PedFileSystem *fs) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) fs->type_specific; - - hfs_file_close (priv_data->extent_file); - hfs_file_close (priv_data->catalog_file); - if (priv_data->bad_blocks_loaded) - hfs_free_bad_blocks_list (priv_data->bad_blocks_xtent_list); - free (priv_data->mdb); - free (priv_data); - ped_geometry_destroy (fs->geom); - free (fs); - - return 1; -} - -PedConstraint * -hfs_get_resize_constraint (const PedFileSystem *fs) -{ - PedDevice* dev = fs->geom->dev; - PedAlignment start_align; - PedGeometry start_sector; - PedGeometry full_dev; - PedSector min_size; - - if (!ped_alignment_init (&start_align, fs->geom->start, 0)) - return NULL; - if (!ped_geometry_init (&start_sector, dev, fs->geom->start, 1)) - return NULL; - if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1)) - return NULL; - /* 2 = last two sectors (alternate MDB and unused sector) */ - min_size = hfs_get_empty_end(fs) + 2; - if (min_size == 2) return NULL; - - return ped_constraint_new (&start_align, ped_alignment_any, - &start_sector, &full_dev, min_size, - fs->geom->length); -} - -int -hfs_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - unsigned int nblock, nfree; - unsigned int block, to_free; - HfsPrivateFSData* priv_data; - HfsMasterDirectoryBlock* mdb; - int resize = 1; - unsigned int hfs_sect_block; - PedSector hgee; - - /* check preconditions */ - PED_ASSERT (fs != NULL); - PED_ASSERT (fs->geom != NULL); - PED_ASSERT (geom != NULL); -#ifdef DEBUG - PED_ASSERT ((hgee = hfs_get_empty_end(fs)) != 0); -#else - if ((hgee = hfs_get_empty_end(fs)) == 0) - return 0; -#endif - - PED_ASSERT ((hgee = hfs_get_empty_end(fs)) != 0); - - if (ped_geometry_test_equal(fs->geom, geom)) - return 1; - - priv_data = (HfsPrivateFSData*) fs->type_specific; - mdb = priv_data->mdb; - hfs_sect_block = PED_BE32_TO_CPU (mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT; - - if (fs->geom->start != geom->start - || geom->length > fs->geom->length - || geom->length < hgee + 2) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Sorry, HFS cannot be resized that way yet.")); - return 0; - } - - /* Flush caches */ - if (!ped_geometry_sync(fs->geom)) - return 0; - - /* Clear the unmounted bit */ - mdb->volume_attributes &= PED_CPU_TO_BE16 (~( 1 << HFS_UNMOUNTED )); - if (!ped_geometry_read (fs->geom, buf, 2, 1)) - return 0; - memcpy (buf, mdb, sizeof (HfsMasterDirectoryBlock)); - if ( !ped_geometry_write (fs->geom, buf, 2, 1) - || !ped_geometry_sync (fs->geom)) - return 0; - - ped_timer_reset (timer); - ped_timer_set_state_name(timer, _("shrinking")); - ped_timer_update(timer, 0.0); - /* relocate data */ - to_free = ( fs->geom->length - geom->length - + hfs_sect_block - 1 ) - / hfs_sect_block ; - block = hfs_find_start_pack (fs, to_free); - if (!hfs_pack_free_space_from_block (fs, block, timer, to_free)) { - resize = 0; - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Data relocation has failed.")); - goto write_MDB; - } - - /* Calculate new block number and other MDB field */ - nblock = ( geom->length - (PED_BE16_TO_CPU (mdb->start_block) + 2) ) - / hfs_sect_block; - nfree = PED_BE16_TO_CPU (mdb->free_blocks) - - ( PED_BE16_TO_CPU (mdb->total_blocks) - nblock ); - - /* Check that all block after future end are really free */ - for (block = nblock; - block < PED_BE16_TO_CPU (mdb->total_blocks); - block++) { - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) { - resize = 0; - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Data relocation left some data in the end " - "of the volume.")); - goto write_MDB; - } - } - - /* Mark out of volume blocks as used - (broken implementations compatibility) */ - for ( block = nblock; block < (1 << 16); ++block) - SET_BLOC_OCCUPATION(priv_data->alloc_map,block); - - /* save the allocation map - I do not write until start of allocation blocks - but only until pre-resize end of bitmap blocks - because the specifications do _not_ assert that everything - until allocation blocks is boot, mdb and alloc */ - ped_geometry_write(fs->geom, priv_data->alloc_map, - PED_BE16_TO_CPU (priv_data->mdb->volume_bitmap_block), - ( PED_BE16_TO_CPU (priv_data->mdb->total_blocks) - + PED_SECTOR_SIZE_DEFAULT * 8 - 1) - / (PED_SECTOR_SIZE_DEFAULT * 8)); - - /* Update geometry */ - if (resize) { - /* update in fs structure */ - if (PED_BE16_TO_CPU (mdb->next_allocation) >= nblock) - mdb->next_allocation = PED_CPU_TO_BE16 (0); - mdb->total_blocks = PED_CPU_TO_BE16 (nblock); - mdb->free_blocks = PED_CPU_TO_BE16 (nfree); - /* update parted structure */ - fs->geom->length = geom->length; - fs->geom->end = fs->geom->start + geom->length - 1; - } - - /* Set the unmounted bit */ - mdb->volume_attributes |= PED_CPU_TO_BE16 ( 1 << HFS_UNMOUNTED ); - - /* Effective write */ - write_MDB: - ped_timer_set_state_name(timer,_("writing HFS Master Directory Block")); - - if (!hfs_update_mdb(fs)) { - ped_geometry_sync(geom); - return 0; - } - - if (!ped_geometry_sync(geom)) - return 0; - - ped_timer_update(timer, 1.0); - - return (resize); -} - -/* ----- HFS+ ----- */ - -#include "file_plus.h" -#include "advfs_plus.h" -#include "reloc_plus.h" -#include "journal.h" - -int -hfsplus_close (PedFileSystem *fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - - if (priv_data->bad_blocks_loaded) - hfsplus_free_bad_blocks_list(priv_data->bad_blocks_xtent_list); - free(priv_data->alloc_map); - free(priv_data->dirty_alloc_map); - hfsplus_file_close (priv_data->allocation_file); - hfsplus_file_close (priv_data->attributes_file); - hfsplus_file_close (priv_data->catalog_file); - hfsplus_file_close (priv_data->extents_file); - if (priv_data->free_geom) ped_geometry_destroy (priv_data->plus_geom); - if (priv_data->wrapper) hfs_close(priv_data->wrapper); - ped_geometry_destroy (fs->geom); - free(priv_data->vh); - free(priv_data); - free(fs); - - return 1; -} - -PedFileSystem* -hfsplus_open (PedGeometry* geom) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - PedFileSystem* fs; - HfsPVolumeHeader* vh; - HfsPPrivateFSData* priv_data; - PedGeometry* wrapper_geom; - unsigned int map_sectors; - - if (!hfsc_can_use_geom (geom)) - return NULL; - - fs = (PedFileSystem*) ped_malloc (sizeof (PedFileSystem)); - if (!fs) goto hpo; - vh = (HfsPVolumeHeader*) ped_malloc (sizeof (HfsPVolumeHeader)); - if (!vh) goto hpo_fs; - priv_data = (HfsPPrivateFSData*)ped_malloc (sizeof (HfsPPrivateFSData)); - if (!priv_data) goto hpo_vh; - - fs->geom = ped_geometry_duplicate (geom); - if (!fs->geom) goto hpo_pd; - fs->type_specific = (void*) priv_data; - - if ((wrapper_geom = hfs_and_wrapper_probe (geom))) { - HfsPrivateFSData* hfs_priv_data; - PedSector abs_sect, length; - unsigned int bs; - - ped_geometry_destroy (wrapper_geom); - priv_data->wrapper = hfs_open(geom); - if (!priv_data->wrapper) goto hpo_gm; - hfs_priv_data = (HfsPrivateFSData*) - priv_data->wrapper->type_specific; - bs = PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT; - abs_sect = (PedSector) geom->start - + (PedSector) PED_BE16_TO_CPU ( - hfs_priv_data->mdb->start_block) - + (PedSector) PED_BE16_TO_CPU ( - hfs_priv_data->mdb->old_new - .embedded.location.start_block ) - * bs; - length = (PedSector) PED_BE16_TO_CPU ( - hfs_priv_data->mdb->old_new - .embedded.location.block_count) - * bs; - priv_data->plus_geom = ped_geometry_new (geom->dev, abs_sect, - length); - if (!priv_data->plus_geom) goto hpo_wr; - priv_data->free_geom = 1; - } else { - priv_data->wrapper = NULL; - priv_data->plus_geom = fs->geom; - priv_data->free_geom = 0; - } - - if (!ped_geometry_read (priv_data->plus_geom, buf, 2, 1)) goto hpo_pg; - memcpy (vh, buf, sizeof (HfsPVolumeHeader)); - priv_data->vh = vh; - - if (vh->signature != PED_CPU_TO_BE16(HFSP_SIGNATURE) - && vh->signature != PED_CPU_TO_BE16(HFSX_SIGNATURE)) { - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("No valid HFS[+X] signature has been found while " - "opening.")); - goto hpo_pg; - } - - if (vh->signature == PED_CPU_TO_BE16(HFSP_SIGNATURE) - && vh->version != PED_CPU_TO_BE16(HFSP_VERSION)) { - if (ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_IGNORE_CANCEL, - _("Version %d of HFS+ isn't supported."), - PED_BE16_TO_CPU(vh->version)) - != PED_EXCEPTION_IGNORE) - goto hpo_pg; - } - - if (vh->signature == PED_CPU_TO_BE16(HFSX_SIGNATURE) - && vh->version != PED_CPU_TO_BE16(HFSX_VERSION)) { - if (ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_IGNORE_CANCEL, - _("Version %d of HFSX isn't supported."), - PED_BE16_TO_CPU(vh->version)) - != PED_EXCEPTION_IGNORE) - goto hpo_pg; - } - - priv_data->jib_start_block = 0; - priv_data->jl_start_block = 0; - if (vh->attributes & PED_CPU_TO_BE32(1<bad_blocks_loaded = 0; - priv_data->bad_blocks_xtent_nb = 0; - priv_data->bad_blocks_xtent_list = NULL; - priv_data->extents_file = - hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFS_XTENT_ID), - vh->extents_file.extents, - PED_BE64_TO_CPU ( - vh->extents_file.logical_size ) - / PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->extents_file) goto hpo_pg; - priv_data->catalog_file = - hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFS_CATALOG_ID), - vh->catalog_file.extents, - PED_BE64_TO_CPU ( - vh->catalog_file.logical_size ) - / PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->catalog_file) goto hpo_ce; - priv_data->attributes_file = - hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFSP_ATTRIB_ID), - vh->attributes_file.extents, - PED_BE64_TO_CPU ( - vh->attributes_file.logical_size) - / PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->attributes_file) goto hpo_cc; - - map_sectors = ( PED_BE32_TO_CPU (vh->total_blocks) - + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) - / (PED_SECTOR_SIZE_DEFAULT * 8); - priv_data->dirty_alloc_map = (uint8_t*) - ped_malloc ((map_sectors + 7) / 8); - if (!priv_data->dirty_alloc_map) goto hpo_cl; - memset(priv_data->dirty_alloc_map, 0, (map_sectors + 7) / 8); - priv_data->alloc_map = (uint8_t*) - ped_malloc (map_sectors * PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->alloc_map) goto hpo_dm; - - priv_data->allocation_file = - hfsplus_file_open (fs, PED_CPU_TO_BE32 (HFSP_ALLOC_ID), - vh->allocation_file.extents, - PED_BE64_TO_CPU ( - vh->allocation_file.logical_size) - / PED_SECTOR_SIZE_DEFAULT); - if (!priv_data->allocation_file) goto hpo_am; - if (!hfsplus_file_read (priv_data->allocation_file, - priv_data->alloc_map, 0, map_sectors)) { - hfsplus_close(fs); - return NULL; - } - - fs->type = &hfsplus_type; - fs->checked = ((PED_BE32_TO_CPU (vh->attributes) >> HFS_UNMOUNTED) & 1) - && !((PED_BE32_TO_CPU (vh->attributes) >> HFSP_INCONSISTENT) & 1); - - return fs; - -/*--- clean error handling ---*/ -hpo_am: free(priv_data->alloc_map); -hpo_dm: free(priv_data->dirty_alloc_map); -hpo_cl: hfsplus_file_close (priv_data->attributes_file); -hpo_cc: hfsplus_file_close (priv_data->catalog_file); -hpo_ce: hfsplus_file_close (priv_data->extents_file); -hpo_pg: if (priv_data->free_geom) ped_geometry_destroy (priv_data->plus_geom); -hpo_wr: if (priv_data->wrapper) hfs_close(priv_data->wrapper); -hpo_gm: ped_geometry_destroy (fs->geom); -hpo_pd: free(priv_data); -hpo_vh: free(vh); -hpo_fs: free(fs); -hpo: return NULL; -} - -PedConstraint * -hfsplus_get_resize_constraint (const PedFileSystem *fs) -{ - PedDevice* dev = fs->geom->dev; - PedAlignment start_align; - PedGeometry start_sector; - PedGeometry full_dev; - PedSector min_size; - - if (!ped_alignment_init (&start_align, fs->geom->start, 0)) - return NULL; - if (!ped_geometry_init (&start_sector, dev, fs->geom->start, 1)) - return NULL; - if (!ped_geometry_init (&full_dev, dev, 0, dev->length - 1)) - return NULL; - - min_size = hfsplus_get_min_size (fs); - if (!min_size) return NULL; - - return ped_constraint_new (&start_align, ped_alignment_any, - &start_sector, &full_dev, min_size, - fs->geom->length); -} - -static int -hfsplus_volume_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - unsigned int nblock, nfree, mblock; - unsigned int block, to_free, old_blocks; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPVolumeHeader* vh = priv_data->vh; - int resize = 1; - unsigned int hfsp_sect_block = - ( PED_BE32_TO_CPU (vh->block_size) - / PED_SECTOR_SIZE_DEFAULT ); - unsigned int map_sectors; - - old_blocks = PED_BE32_TO_CPU (vh->total_blocks); - - /* Flush caches */ - if (!ped_geometry_sync(priv_data->plus_geom)) - return 0; - - /* Clear the unmounted bit */ - /* and set the implementation code (Apple Creator Code) */ - vh->attributes &= PED_CPU_TO_BE32 (~( 1 << HFS_UNMOUNTED )); - vh->last_mounted_version = PED_CPU_TO_BE32(HFSP_IMPL_Shnk); - if (!ped_geometry_read (priv_data->plus_geom, buf, 2, 1)) - return 0; - memcpy (buf, vh, sizeof (HfsPVolumeHeader)); - if ( !ped_geometry_write (priv_data->plus_geom, buf, 2, 1) - || !ped_geometry_sync (priv_data->plus_geom)) - return 0; - - ped_timer_reset (timer); - ped_timer_set_state_name(timer, _("shrinking")); - ped_timer_update(timer, 0.0); - /* relocate data */ - to_free = ( priv_data->plus_geom->length - - geom->length + hfsp_sect_block - - 1 ) / hfsp_sect_block; - block = hfsplus_find_start_pack (fs, to_free); - if (!hfsplus_pack_free_space_from_block (fs, block, timer, to_free)) { - resize = 0; - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Data relocation has failed.")); - goto write_VH; - } - - /* Calculate new block number and other VH field */ - /* nblock must be rounded _down_ */ - nblock = geom->length / hfsp_sect_block; - nfree = PED_BE32_TO_CPU (vh->free_blocks) - - (old_blocks - nblock); - /* free block readjustement is only needed when incorrect nblock - was used by my previous implementation, so detect the case */ - if (priv_data->plus_geom->length < old_blocks - * ( PED_BE32_TO_CPU (vh->block_size) - / PED_SECTOR_SIZE_DEFAULT) ) { - if (priv_data->plus_geom->length % hfsp_sect_block == 1) - nfree++; - } - - /* Check that all block after future end are really free */ - mblock = ( priv_data->plus_geom->length - 2 ) - / hfsp_sect_block; - if (mblock > old_blocks - 1) - mblock = old_blocks - 1; - for ( block = nblock; - block < mblock; - block++ ) { - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,block)) { - resize = 0; - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Data relocation left some data at the end " - "of the volume.")); - goto write_VH; - } - } - - /* Mark out of volume blocks as used */ - map_sectors = ( ( old_blocks + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) - / (PED_SECTOR_SIZE_DEFAULT * 8) ) - * (PED_SECTOR_SIZE_DEFAULT * 8); - for ( block = nblock; block < map_sectors; ++block) - SET_BLOC_OCCUPATION(priv_data->alloc_map, block); - - /* Update geometry */ - if (resize) { - /* update in fs structure */ - if (PED_BE32_TO_CPU (vh->next_allocation) >= nblock) - vh->next_allocation = PED_CPU_TO_BE32 (0); - vh->total_blocks = PED_CPU_TO_BE32 (nblock); - vh->free_blocks = PED_CPU_TO_BE32 (nfree); - /* update parted structure */ - priv_data->plus_geom->length = geom->length; - priv_data->plus_geom->end = priv_data->plus_geom->start - + geom->length - 1; - } - - /* Effective write */ - write_VH: - /* lasts two sectors are allocated by the alternate VH - and a reserved sector, and last block is always reserved */ - block = (priv_data->plus_geom->length - 1) / hfsp_sect_block; - if (block < PED_BE32_TO_CPU (vh->total_blocks)) - SET_BLOC_OCCUPATION(priv_data->alloc_map, block); - block = (priv_data->plus_geom->length - 2) / hfsp_sect_block; - if (block < PED_BE32_TO_CPU (vh->total_blocks)) - SET_BLOC_OCCUPATION(priv_data->alloc_map, block); - SET_BLOC_OCCUPATION(priv_data->alloc_map, - PED_BE32_TO_CPU (vh->total_blocks) - 1); - - /* Write the _old_ area to set out of volume blocks as used */ - map_sectors = ( old_blocks + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) - / (PED_SECTOR_SIZE_DEFAULT * 8); - if (!hfsplus_file_write (priv_data->allocation_file, - priv_data->alloc_map, 0, map_sectors)) { - resize = 0; - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Error while writing the allocation file.")); - } else { - /* Write remaining part of allocation bitmap */ - /* This is necessary to handle pre patch-11 and third party */ - /* implementations */ - memset(buf, 0xFF, PED_SECTOR_SIZE_DEFAULT); - for (block = map_sectors; - block < priv_data->allocation_file->sect_nb; - ++block) { - if (!hfsplus_file_write_sector ( - priv_data->allocation_file, - buf, block)) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE, - _("Error while writing the " - "compatibility part of the " - "allocation file.")); - break; - } - } - } - ped_geometry_sync (priv_data->plus_geom); - - if (resize) { - /* Set the unmounted bit and clear the inconsistent bit */ - vh->attributes |= PED_CPU_TO_BE32 ( 1 << HFS_UNMOUNTED ); - vh->attributes &= ~ PED_CPU_TO_BE32 ( 1 << HFSP_INCONSISTENT ); - } - - ped_timer_set_state_name(timer, _("writing HFS+ Volume Header")); - if (!hfsplus_update_vh(fs)) { - ped_geometry_sync(priv_data->plus_geom); - return 0; - } - - if (!ped_geometry_sync(priv_data->plus_geom)) - return 0; - - ped_timer_update(timer, 1.0); - - return (resize); -} - -/* Update the HFS wrapper mdb and bad blocks file to reflect - the new geometry of the embedded HFS+ volume */ -static int -hfsplus_wrapper_update (PedFileSystem* fs) -{ - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - HfsCPrivateLeafRec ref; - HfsExtentKey key; - HfsNodeDescriptor* node_desc = (HfsNodeDescriptor*) node; - HfsExtentKey* ret_key; - HfsExtDescriptor* ret_data; - unsigned int i; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPrivateFSData* hfs_priv_data = (HfsPrivateFSData*) - priv_data->wrapper->type_specific; - unsigned int hfs_sect_block = - PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT ; - PedSector hfsplus_sect = (PedSector) - PED_BE32_TO_CPU (priv_data->vh->total_blocks) - * ( PED_BE32_TO_CPU (priv_data->vh->block_size) - / PED_SECTOR_SIZE_DEFAULT ); - unsigned int hfs_blocks_embedded = - (hfsplus_sect + hfs_sect_block - 1) - / hfs_sect_block; - unsigned int hfs_blocks_embedded_old; - - /* update HFS wrapper MDB */ - hfs_blocks_embedded_old = PED_BE16_TO_CPU ( - hfs_priv_data->mdb->old_new - .embedded.location.block_count ); - hfs_priv_data->mdb->old_new.embedded.location.block_count = - PED_CPU_TO_BE16 (hfs_blocks_embedded); - /* maybe macOS will boot with this */ - /* update : yes it does \o/ :) */ - hfs_priv_data->mdb->free_blocks = - PED_CPU_TO_BE16 ( PED_BE16_TO_CPU (hfs_priv_data->mdb->free_blocks) - + hfs_blocks_embedded_old - - hfs_blocks_embedded ); - - if (!hfs_update_mdb(priv_data->wrapper)) - return 0; - - /* force reload bad block list */ - if (hfs_priv_data->bad_blocks_loaded) { - hfs_free_bad_blocks_list (hfs_priv_data->bad_blocks_xtent_list); - hfs_priv_data->bad_blocks_xtent_list = NULL; - hfs_priv_data->bad_blocks_xtent_nb = 0; - hfs_priv_data->bad_blocks_loaded = 0; - } - - /* clean HFS wrapper allocation map */ - for (i = PED_BE16_TO_CPU ( - hfs_priv_data->mdb->old_new.embedded - .location.start_block ) - + hfs_blocks_embedded; - i < PED_BE16_TO_CPU ( - hfs_priv_data->mdb->old_new.embedded - .location.start_block ) - + hfs_blocks_embedded_old; - i++ ) { - CLR_BLOC_OCCUPATION(hfs_priv_data->alloc_map, i); - } - /* and save it */ - if (!ped_geometry_write (fs->geom, hfs_priv_data->alloc_map, - PED_BE16_TO_CPU ( - hfs_priv_data->mdb->volume_bitmap_block ), - ( PED_BE16_TO_CPU ( - hfs_priv_data->mdb->total_blocks ) - + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) - / (PED_SECTOR_SIZE_DEFAULT * 8))) - return 0; - if (!ped_geometry_sync (fs->geom)) - return 0; - - /* search and update the bad blocks file */ - key.key_length = sizeof(key) - 1; - key.type = HFS_DATA_FORK; - key.file_ID = PED_CPU_TO_BE32 (HFS_BAD_BLOCK_ID); - key.start = 0; - if (!hfs_btree_search (hfs_priv_data->extent_file, - (HfsPrivateGenericKey*) &key, NULL, 0, &ref)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("An error occurred while looking for the mandatory " - "bad blocks file.")); - return 0; - } - if (!hfs_file_read_sector (hfs_priv_data->extent_file, node, - ref.node_number)) - return 0; - ret_key = (HfsExtentKey*) (node + ref.record_pos); - ret_data = (HfsExtDescriptor*) ( node + ref.record_pos - + sizeof (HfsExtentKey) ); - - while (ret_key->type == key.type && ret_key->file_ID == key.file_ID) { - for (i = 0; i < HFS_EXT_NB; i++) { - if ( ret_data[i].start_block - == hfs_priv_data->mdb->old_new - .embedded.location.start_block) { - ret_data[i].block_count = - hfs_priv_data->mdb->old_new - .embedded.location.block_count; - /* found ! : update */ - if (!hfs_file_write_sector ( - hfs_priv_data->extent_file, - node, ref.node_number) - || !ped_geometry_sync(fs->geom)) - return 0; - return 1; - } - } - - if (ref.record_number < PED_BE16_TO_CPU (node_desc->rec_nb)) { - ref.record_number++; - } else { - ref.node_number = PED_BE32_TO_CPU (node_desc->next); - if (!ref.node_number - || !hfs_file_read_sector(hfs_priv_data->extent_file, - node, ref.node_number)) - goto bb_not_found; - ref.record_number = 1; - } - - uint16_t value; - memcpy(&value, node+PED_SECTOR_SIZE_DEFAULT - (2*ref.record_number), sizeof(uint16_t)); - ref.record_pos = PED_BE16_TO_CPU(value); - ret_key = (HfsExtentKey*) (node + ref.record_pos); - ret_data = (HfsExtDescriptor*) (node + ref.record_pos - + sizeof (HfsExtentKey) ); - } - -bb_not_found: - /* not found : not a valid hfs+ wrapper : failure */ - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("It seems there is an error in the HFS wrapper: the bad " - "blocks file doesn't contain the embedded HFS+ volume.")); - return 0; -} - -int -hfsplus_resize (PedFileSystem* fs, PedGeometry* geom, PedTimer* timer) -{ - HfsPPrivateFSData* priv_data; - PedTimer* timer_plus; - PedGeometry* embedded_geom; - PedSector hgms; - - /* check preconditions */ - PED_ASSERT (fs != NULL); - PED_ASSERT (fs->geom != NULL); - PED_ASSERT (geom != NULL); - PED_ASSERT (fs->geom->dev == geom->dev); -#ifdef DEBUG - PED_ASSERT ((hgms = hfsplus_get_min_size (fs)) != 0); -#else - if ((hgms = hfsplus_get_min_size (fs)) == 0) - return 0; -#endif - - if (ped_geometry_test_equal(fs->geom, geom)) - return 1; - - priv_data = (HfsPPrivateFSData*) fs->type_specific; - - if (fs->geom->start != geom->start - || geom->length > fs->geom->length - || geom->length < hgms) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Sorry, HFS+ cannot be resized that way yet.")); - return 0; - } - - if (priv_data->wrapper) { - PedSector red, hgee; - HfsPrivateFSData* hfs_priv_data = (HfsPrivateFSData*) - priv_data->wrapper->type_specific; - unsigned int hfs_sect_block = - PED_BE32_TO_CPU (hfs_priv_data->mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT; - - /* There is a wrapper so we must calculate the new geometry - of the embedded HFS+ volume */ - red = ( (fs->geom->length - geom->length + hfs_sect_block - 1) - / hfs_sect_block ) * hfs_sect_block; - /* Can't we shrink the hfs+ volume by the desired size ? */ - hgee = hfsplus_get_empty_end (fs); - if (!hgee) return 0; - if (red > priv_data->plus_geom->length - hgee) { - /* No, shrink hfs+ by the greatest possible value */ - hgee = ((hgee + hfs_sect_block - 1) / hfs_sect_block) - * hfs_sect_block; - red = priv_data->plus_geom->length - hgee; - } - embedded_geom = ped_geometry_new (geom->dev, - priv_data->plus_geom->start, - priv_data->plus_geom->length - - red); - - /* There is a wrapper so the resize process is a two stages - process (embedded resizing then wrapper resizing) : - we create a sub timer */ - ped_timer_reset (timer); - ped_timer_set_state_name (timer, - _("shrinking embedded HFS+ volume")); - ped_timer_update(timer, 0.0); - timer_plus = ped_timer_new_nested (timer, 0.98); - } else { - /* No wrapper : the desired geometry is the desired - HFS+ volume geometry */ - embedded_geom = geom; - timer_plus = timer; - } - - /* Resize the HFS+ volume */ - if (!hfsplus_volume_resize (fs, embedded_geom, timer_plus)) { - if (timer_plus != timer) ped_timer_destroy_nested (timer_plus); - if (priv_data->wrapper) ped_geometry_destroy (embedded_geom); - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Resizing the HFS+ volume has failed.")); - return 0; - } - - if (priv_data->wrapper) { - ped_geometry_destroy (embedded_geom); - ped_timer_destroy_nested (timer_plus); - ped_timer_set_state_name(timer, _("shrinking HFS wrapper")); - timer_plus = ped_timer_new_nested (timer, 0.02); - /* There's a wrapper : second stage = resizing it */ - if (!hfsplus_wrapper_update (fs) - || !hfs_resize (priv_data->wrapper, geom, timer_plus)) { - ped_timer_destroy_nested (timer_plus); - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Updating the HFS wrapper has failed.")); - return 0; - } - ped_timer_destroy_nested (timer_plus); - } - ped_timer_update(timer, 1.0); - - return 1; -} - -#ifdef HFS_EXTRACT_FS -/* The following is for debugging purpose only, NOT for packaging */ - -#include - -uint8_t* extract_buffer = NULL; - -static int -hfs_extract_file(const char* filename, HfsPrivateFile* hfs_file) -{ - FILE* fout; - PedSector sect; - - fout = fopen(filename, "w"); - if (!fout) return 0; - - for (sect = 0; sect < hfs_file->sect_nb; ++sect) { - if (!hfs_file_read_sector(hfs_file, extract_buffer, sect)) - goto err_close; - if (!fwrite(extract_buffer, PED_SECTOR_SIZE_DEFAULT, 1, fout)) - goto err_close; - } - - return (fclose(fout) == 0 ? 1 : 0); - -err_close: - fclose(fout); - return 0; -} - -static int -hfs_extract_bitmap(const char* filename, PedFileSystem* fs) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsMasterDirectoryBlock* mdb = priv_data->mdb; - unsigned int count; - FILE* fout; - PedSector sect; - - fout = fopen(filename, "w"); - if (!fout) return 0; - - for (sect = PED_BE16_TO_CPU(mdb->volume_bitmap_block); - sect < PED_BE16_TO_CPU(mdb->start_block); - sect += count) { - uint16_t st_block = PED_BE16_TO_CPU(mdb->start_block); - count = (st_block-sect) < BLOCK_MAX_BUFF ? - (st_block-sect) : BLOCK_MAX_BUFF; - if (!ped_geometry_read(fs->geom, extract_buffer, sect, count)) - goto err_close; - if (!fwrite (extract_buffer, count * PED_SECTOR_SIZE_DEFAULT, - 1, fout)) - goto err_close; - } - - return (fclose(fout) == 0 ? 1 : 0); - -err_close: - fclose(fout); - return 0; -} - -static int -hfs_extract_mdb (const char* filename, PedFileSystem* fs) -{ - FILE* fout; - - fout = fopen(filename, "w"); - if (!fout) return 0; - - if (!ped_geometry_read(fs->geom, extract_buffer, 2, 1)) - goto err_close; - if (!fwrite(extract_buffer, PED_SECTOR_SIZE_DEFAULT, 1, fout)) - goto err_close; - - return (fclose(fout) == 0 ? 1 : 0); - -err_close: - fclose(fout); - return 0; -} - -static int -hfs_extract (PedFileSystem* fs, PedTimer* timer) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_OK, - _("This is not a real %s check. This is going to extract " - "special low level files for debugging purposes."), - "HFS"); - - extract_buffer = ped_malloc(BLOCK_MAX_BUFF * PED_SECTOR_SIZE_DEFAULT); - if (!extract_buffer) return 0; - - hfs_extract_mdb(HFS_MDB_FILENAME, fs); - hfs_extract_file(HFS_CATALOG_FILENAME, priv_data->catalog_file); - hfs_extract_file(HFS_EXTENTS_FILENAME, priv_data->extent_file); - hfs_extract_bitmap(HFS_BITMAP_FILENAME, fs); - - free(extract_buffer); extract_buffer = NULL; - return 0; /* nothing has been fixed by us ! */ -} - -static int -hfsplus_extract_file(const char* filename, HfsPPrivateFile* hfsp_file) -{ - FILE* fout; - unsigned int cp_sect; - PedSector rem_sect; - - fout = fopen(filename, "w"); - if (!fout) return 0; - - for (rem_sect = hfsp_file->sect_nb; rem_sect; rem_sect -= cp_sect) { - cp_sect = rem_sect < BLOCK_MAX_BUFF ? rem_sect : BLOCK_MAX_BUFF; - if (!hfsplus_file_read(hfsp_file, extract_buffer, - hfsp_file->sect_nb - rem_sect, cp_sect)) - goto err_close; - if (!fwrite (extract_buffer, cp_sect * PED_SECTOR_SIZE_DEFAULT, - 1, fout)) - goto err_close; - } - - return (fclose(fout) == 0 ? 1 : 0); - -err_close: - fclose(fout); - return 0; -} - -static int -hfsplus_extract_vh (const char* filename, PedFileSystem* fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - FILE* fout; - PedGeometry* geom = priv_data->plus_geom; - - - fout = fopen(filename, "w"); - if (!fout) return 0; - - if (!ped_geometry_read(geom, extract_buffer, 2, 1)) - goto err_close; - if (!fwrite(extract_buffer, PED_SECTOR_SIZE_DEFAULT, 1, fout)) - goto err_close; - - return (fclose(fout) == 0 ? 1 : 0); - -err_close: - fclose(fout); - return 0; -} - -/* TODO : use the timer to report what is happening */ -/* TODO : use exceptions to report errors */ -static int -hfsplus_extract (PedFileSystem* fs, PedTimer* timer) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPVolumeHeader* vh = priv_data->vh; - HfsPPrivateFile* startup_file; - - if (priv_data->wrapper) { - /* TODO : create nested timer */ - hfs_extract (priv_data->wrapper, timer); - } - - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_OK, - _("This is not a real %s check. This is going to extract " - "special low level files for debugging purposes."), - "HFS+"); - - extract_buffer = ped_malloc(BLOCK_MAX_BUFF * PED_SECTOR_SIZE_DEFAULT); - if (!extract_buffer) return 0; - - hfsplus_extract_vh(HFSP_VH_FILENAME, fs); - hfsplus_extract_file(HFSP_CATALOG_FILENAME, priv_data->catalog_file); - hfsplus_extract_file(HFSP_EXTENTS_FILENAME, priv_data->extents_file); - hfsplus_extract_file(HFSP_ATTRIB_FILENAME, priv_data->attributes_file); - hfsplus_extract_file(HFSP_BITMAP_FILENAME, priv_data->allocation_file); - - startup_file = hfsplus_file_open(fs, PED_CPU_TO_BE32(HFSP_STARTUP_ID), - vh->startup_file.extents, - PED_BE64_TO_CPU ( - vh->startup_file.logical_size) - / PED_SECTOR_SIZE_DEFAULT); - if (startup_file) { - hfsplus_extract_file(HFSP_STARTUP_FILENAME, startup_file); - hfsplus_file_close(startup_file); startup_file = NULL; - } - - free(extract_buffer); extract_buffer = NULL; - return 0; /* nothing has been fixed by us ! */ -} -#endif /* HFS_EXTRACT_FS */ - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/hfs.h b/jni/parted/libparted/fs/r/hfs/hfs.h deleted file mode 100755 index 5b9138c..0000000 --- a/jni/parted/libparted/fs/r/hfs/hfs.h +++ /dev/null @@ -1,648 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2003-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef _HFS_H -#define _HFS_H - -/* WARNING : bn is used 2 times in theses macro */ -/* so _never_ use side effect operators when using them */ -#define TST_BLOC_OCCUPATION(tab,bn) \ - (((tab)[(bn)/8]) & (1<<(7-((bn)&7)))) -#define SET_BLOC_OCCUPATION(tab,bn) \ - (((tab)[(bn)/8]) |= (1<<(7-((bn)&7)))) -#define CLR_BLOC_OCCUPATION(tab,bn) \ - (((tab)[(bn)/8]) &= ~(1<<(7-((bn)&7)))) - -/* Maximum number of blocks for the copy buffers */ -#define BLOCK_MAX_BUFF 256 -/* Maximum size of the copy buffers, in bytes */ -#define BYTES_MAX_BUFF 8388608 - -/* Apple Creator Codes follow */ -#define HFSP_IMPL_Shnk 0x53686e6b /* in use */ -#define HFSP_IMPL_Xpnd 0x58706e64 /* reserved */ -#define HFSP_IMPL_Resz 0x5265737a /* reserved */ -#define HFSP_IMPL_PHpx 0x50482b78 /* reserved */ -#define HFSP_IMPL_traP 0x74726150 /* reserved */ -#define HFSP_IMPL_GnuP 0x476e7550 /* reserved */ - -#define HFS_SIGNATURE 0x4244 /* 'BD' */ -#define HFSP_SIGNATURE 0x482B /* 'H+' */ -#define HFSX_SIGNATURE 0x4858 /* 'HX' */ - -#define HFSP_VERSION 4 -#define HFSX_VERSION 5 - -#define HFS_HARD_LOCK 7 -#define HFS_UNMOUNTED 8 -#define HFS_BAD_SPARED 9 -#define HFS_SOFT_LOCK 15 -#define HFSP_NO_CACHE 10 -#define HFSP_INCONSISTENT 11 -#define HFSP_REUSE_CNID 12 -#define HFSP_JOURNALED 13 - -#define HFS_IDX_NODE 0x00 -#define HFS_HDR_NODE 0x01 -#define HFS_MAP_NODE 0x02 -#define HFS_LEAF_NODE 0xFF - -#define HFS_FIRST_REC 0x0E -#define HFS_NSD_HD_REC 0x78 -#define HFS_MAP_REC 0xF8 - -#define HFS_DATA_FORK 0x00 -#define HFS_RES_FORK 0xFF - -#define HFS_CAT_DIR 0x01 -#define HFS_CAT_FILE 0x02 -#define HFS_CAT_DIR_TH 0x03 -#define HFS_CAT_FILE_TH 0x04 - -#define HFSP_ATTR_INLINE 0x10 -#define HFSP_ATTR_FORK 0x20 -#define HFSP_ATTR_EXTENTS 0x30 - -#define HFS_ROOT_PAR_ID 0x01 -#define HFS_ROOT_DIR_ID 0x02 -#define HFS_XTENT_ID 0x03 -#define HFS_CATALOG_ID 0x04 -#define HFS_BAD_BLOCK_ID 0x05 -#define HFSP_ALLOC_ID 0x06 -#define HFSP_STARTUP_ID 0x07 -#define HFSP_ATTRIB_ID 0x08 -#define HFSP_BOGUS_ID 0x0F -#define HFSP_FIRST_AV_ID 0x10 - -#define HFSJ_JOURN_IN_FS 0x00 -#define HFSJ_JOURN_OTHER_DEV 0x01 -#define HFSJ_JOURN_NEED_INIT 0x02 - -#define HFSJ_HEADER_MAGIC 0x4a4e4c78 -#define HFSJ_ENDIAN_MAGIC 0x12345678 - -#define HFSX_CASE_FOLDING 0xCF /* case insensitive HFSX */ -#define HFSX_BINARY_COMPARE 0xBC /* case sensitive HFSX */ - -#define HFS_EXT_NB 3 -#define HFSP_EXT_NB 8 - -/* Define the filenames used by the FS extractor */ -#ifdef HFS_EXTRACT_FS - -#define HFS_MDB_FILENAME "mdb.hfs" -#define HFS_CATALOG_FILENAME "catalog.hfs" -#define HFS_EXTENTS_FILENAME "extents.hfs" -#define HFS_BITMAP_FILENAME "bitmap.hfs" - -#define HFSP_VH_FILENAME "vh.hfsplus" -#define HFSP_CATALOG_FILENAME "catalog.hfsplus" -#define HFSP_EXTENTS_FILENAME "extents.hfsplus" -#define HFSP_BITMAP_FILENAME "bitmap.hfsplus" -#define HFSP_ATTRIB_FILENAME "attributes.hfsplus" -#define HFSP_STARTUP_FILENAME "startup.hfsplus" - -#endif /* HFS_EXTRACT_FS */ - - - -/* ----------------------------------- */ -/* -- HFS DATA STRUCTURES -- */ -/* ----------------------------------- */ - -/* Extent descriptor */ -struct __attribute__ ((packed)) _HfsExtDescriptor { - uint16_t start_block; - uint16_t block_count; -}; -typedef struct _HfsExtDescriptor HfsExtDescriptor; -typedef HfsExtDescriptor HfsExtDataRec[HFS_EXT_NB]; - -/* Volume header */ -struct __attribute__ ((packed)) _HfsMasterDirectoryBlock { - uint16_t signature; - uint32_t create_date; - uint32_t modify_date; - uint16_t volume_attributes; - uint16_t files_in_root; - uint16_t volume_bitmap_block; /* in sectors */ - uint16_t next_allocation; - uint16_t total_blocks; - uint32_t block_size; /* in bytes */ - uint32_t def_clump_size; /* in bytes */ - uint16_t start_block; /* in sectors */ - uint32_t next_free_node; - uint16_t free_blocks; - uint8_t name_length; - char name[27]; - uint32_t backup_date; - uint16_t backup_number; - uint32_t write_count; - uint32_t extents_clump; - uint32_t catalog_clump; - uint16_t dirs_in_root; - uint32_t file_count; - uint32_t dir_count; - uint32_t finder_info[8]; - union __attribute__ ((packed)) { - struct __attribute__ ((packed)) { - uint16_t volume_cache_size; /* in blocks */ - uint16_t bitmap_cache_size; /* in blocks */ - uint16_t common_cache_size; /* in blocks */ - } legacy; - struct __attribute__ ((packed)) { - uint16_t signature; - HfsExtDescriptor location; - } embedded; - } old_new; - uint32_t extents_file_size; /* in bytes, block size multiple */ - HfsExtDataRec extents_file_rec; - uint32_t catalog_file_size; /* in bytes, block size multiple */ - HfsExtDataRec catalog_file_rec; -}; -typedef struct _HfsMasterDirectoryBlock HfsMasterDirectoryBlock; - -/* B*-Tree Node Descriptor */ -struct __attribute__ ((packed)) _HfsNodeDescriptor { - uint32_t next; - uint32_t previous; - int8_t type; - uint8_t height; - uint16_t rec_nb; - uint16_t reserved; -}; -typedef struct _HfsNodeDescriptor HfsNodeDescriptor; - -/* Header record of a whole B*-Tree */ -struct __attribute__ ((packed)) _HfsHeaderRecord { - uint16_t depth; - uint32_t root_node; - uint32_t leaf_records; - uint32_t first_leaf_node; - uint32_t last_leaf_node; - uint16_t node_size; - uint16_t max_key_len; - uint32_t total_nodes; - uint32_t free_nodes; - int8_t reserved[76]; -}; -typedef struct _HfsHeaderRecord HfsHeaderRecord; - -/* Catalog key for B*-Tree lookup in the catalog file */ -struct __attribute__ ((packed)) _HfsCatalogKey { - uint8_t key_length; /* length of the key without key_length */ - uint8_t reserved; - uint32_t parent_ID; - uint8_t name_length; - char name[31]; /* in fact physicaly 1 upto 31 */ -}; -typedef struct _HfsCatalogKey HfsCatalogKey; - -/* Extents overflow key for B*-Tree lookup */ -struct __attribute__ ((packed)) _HfsExtentKey { - uint8_t key_length; /* length of the key without key_length */ - uint8_t type; /* data or ressource fork */ - uint32_t file_ID; - uint16_t start; -}; -typedef struct _HfsExtentKey HfsExtentKey; - -/* Catalog subdata case directory */ -struct __attribute__ ((packed)) _HfsDir { - uint16_t flags; - uint16_t valence; /* number of files in this directory */ - uint32_t dir_ID; - uint32_t create_date; - uint32_t modify_date; - uint32_t backup_date; - int8_t DInfo[16]; /* used by Finder, handle as reserved */ - int8_t DXInfo[16]; /* used by Finder, handle as reserved */ - uint32_t reserved[4]; -}; -typedef struct _HfsDir HfsDir; - -/* Catalog subdata case file */ -struct __attribute__ ((packed)) _HfsFile { - int8_t flags; - int8_t type; /* should be 0 */ - int8_t FInfo[16]; /* used by Finder, handle as reserved */ - uint32_t file_ID; - uint16_t data_start_block; - uint32_t data_sz_byte; - uint32_t data_sz_block; - uint16_t res_start_block; - uint32_t res_sz_byte; - uint32_t res_sz_block; - uint32_t create_date; - uint32_t modify_date; - uint32_t backup_date; - int8_t FXInfo[16]; /* used by Finder, handle as reserved */ - uint16_t clump_size; - HfsExtDataRec extents_data; - HfsExtDataRec extents_res; - uint32_t reserved; -}; -typedef struct _HfsFile HfsFile; - -/* Catalog subdata case directory thread */ -struct __attribute__ ((packed)) _HfsDirTh { - uint32_t reserved[2]; - uint32_t parent_ID; - int8_t name_length; - char name[31]; -}; -typedef struct _HfsDirTh HfsDirTh; - -/* Catalog subdata case file thread */ -typedef struct _HfsDirTh HfsFileTh; /* same as directory thread */ - -/* Catalog data */ -struct __attribute__ ((packed)) _HfsCatalog { - int8_t type; - int8_t reserved; - union { - HfsDir dir; - HfsFile file; - HfsDirTh dir_th; - HfsFileTh file_th; - } sel; -}; -typedef struct _HfsCatalog HfsCatalog; - - - -/* ------------------------------------ */ -/* -- HFS+ DATA STRUCTURES -- */ -/* ------------------------------------ */ - -/* documented since 2004 in tn1150 */ -struct __attribute__ ((packed)) _HfsPPerms { - uint32_t owner_ID; - uint32_t group_ID; - uint32_t permissions; - uint32_t special_devices; -}; -typedef struct _HfsPPerms HfsPPerms; - -/* HFS+ extent descriptor*/ -struct __attribute__ ((packed)) _HfsPExtDescriptor { - uint32_t start_block; - uint32_t block_count; -}; -typedef struct _HfsPExtDescriptor HfsPExtDescriptor; -typedef HfsPExtDescriptor HfsPExtDataRec[HFSP_EXT_NB]; - -/* HFS+ fork data structure */ -struct __attribute__ ((packed)) _HfsPForkData { - uint64_t logical_size; - uint32_t clump_size; - uint32_t total_blocks; - HfsPExtDataRec extents; -}; -typedef struct _HfsPForkData HfsPForkData; - -/* HFS+ catalog node ID */ -typedef uint32_t HfsPNodeID; - -/* HFS+ file names */ -typedef uint16_t unichar; -struct __attribute__ ((packed)) _HfsPUniStr255 { - uint16_t length; - unichar unicode[255]; /* 1 upto 255 */ -}; -typedef struct _HfsPUniStr255 HfsPUniStr255; - -/* HFS+ volume header */ -struct __attribute__ ((packed)) _HfsPVolumeHeader { - uint16_t signature; - uint16_t version; - uint32_t attributes; - uint32_t last_mounted_version; - uint32_t journal_info_block; - - uint32_t create_date; - uint32_t modify_date; - uint32_t backup_date; - uint32_t checked_date; - - uint32_t file_count; - uint32_t dir_count; - - uint32_t block_size; - uint32_t total_blocks; - uint32_t free_blocks; - - uint32_t next_allocation; - uint32_t res_clump_size; - uint32_t data_clump_size; - HfsPNodeID next_catalog_ID; - - uint32_t write_count; - uint64_t encodings_bitmap; - - uint8_t finder_info[32]; - - HfsPForkData allocation_file; - HfsPForkData extents_file; - HfsPForkData catalog_file; - HfsPForkData attributes_file; - HfsPForkData startup_file; -}; -typedef struct _HfsPVolumeHeader HfsPVolumeHeader; - -/* HFS+ B-Tree Node Descriptor. Same as HFS btree. */ -struct __attribute__ ((packed)) _HfsPNodeDescriptor { - uint32_t next; - uint32_t previous; - int8_t type; - uint8_t height; - uint16_t rec_nb; - uint16_t reserved; -}; -typedef struct _HfsPNodeDescriptor HfsPNodeDescriptor; - -/* Header record of a whole HFS+ B-Tree. */ -struct __attribute__ ((packed)) _HfsPHeaderRecord { - uint16_t depth; - uint32_t root_node; - uint32_t leaf_records; - uint32_t first_leaf_node; - uint32_t last_leaf_node; - uint16_t node_size; - uint16_t max_key_len; - uint32_t total_nodes; - uint32_t free_nodes; /* same as hfs btree until here */ - uint16_t reserved1; - - uint32_t clump_size; - uint8_t btree_type; /* must be 0 for HFS+ B-Tree */ - uint8_t key_compare_type; /* hfsx => 0xCF = case folding */ - /* 0xBC = binary compare */ - /* otherwise, reserved */ - uint32_t attributes; - uint32_t reserved3[16]; -}; -typedef struct _HfsPHeaderRecord HfsPHeaderRecord; - -/* Catalog key for B-Tree lookup in the HFS+ catalog file */ -struct __attribute__ ((packed)) _HfsPCatalogKey { - uint16_t key_length; - HfsPNodeID parent_ID; - HfsPUniStr255 node_name; -}; -typedef struct _HfsPCatalogKey HfsPCatalogKey; - -/* HFS+ catalog subdata case dir */ -struct __attribute__ ((packed)) _HfsPDir { - uint16_t flags; - uint32_t valence; - HfsPNodeID dir_ID; - uint32_t create_date; - uint32_t modify_date; - uint32_t attrib_mod_date; - uint32_t access_date; - uint32_t backup_date; - HfsPPerms permissions; - int8_t DInfo[16]; /* used by Finder, handle as reserved */ - int8_t DXInfo[16]; /* used by Finder, handle as reserved */ - uint32_t text_encoding; - uint32_t reserved; -}; -typedef struct _HfsPDir HfsPDir; - -/* HFS+ catalog subdata case file */ -struct __attribute__ ((packed)) _HfsPFile { - uint16_t flags; - uint32_t reserved1; - HfsPNodeID file_ID; - uint32_t create_date; - uint32_t modify_date; - uint32_t attrib_mod_date; - uint32_t access_date; - uint32_t backup_date; - HfsPPerms permissions; - int8_t FInfo[16]; /* used by Finder, handle as reserved */ - int8_t FXInfo[16]; /* used by Finder, handle as reserved */ - uint32_t text_encoding; - uint32_t reserved2; - - HfsPForkData data_fork; - HfsPForkData res_fork; -}; -typedef struct _HfsPFile HfsPFile; - -/* HFS+ catalog subdata case thread */ -struct __attribute__ ((packed)) _HfsPThread { - int16_t reserved; - HfsPNodeID parent_ID; - HfsPUniStr255 node_name; -}; -typedef struct _HfsPThread HfsPDirTh; -typedef struct _HfsPThread HfsPFileTh; - -/* HFS+ Catalog leaf data */ -struct __attribute__ ((packed)) _HfsPCatalog { - int16_t type; - union { - HfsPDir dir; - HfsPFile file; - HfsPDirTh dir_th; - HfsPFileTh file_th; - } sel; -}; -typedef struct _HfsPCatalog HfsPCatalog; - -/* HFS+ extents file key */ -struct __attribute__ ((packed)) _HfsPExtentKey { - uint16_t key_length; - uint8_t type; - uint8_t pad; - HfsPNodeID file_ID; - uint32_t start; -}; -typedef struct _HfsPExtentKey HfsPExtentKey; - -/* extent file data is HfsPExtDataRec */ - -/* Fork data attribute file */ -struct __attribute__ ((packed)) _HfsPForkDataAttr { - uint32_t record_type; - uint32_t reserved; - union __attribute__ ((packed)) { - HfsPForkData fork; - HfsPExtDataRec extents; - } fork_res; -}; -typedef struct _HfsPForkDataAttr HfsPForkDataAttr; - - -/* ----------- Journal data structures ----------- */ - -/* Info block : stored in a block # defined in the VH */ -struct __attribute__ ((packed)) _HfsJJournalInfoBlock { - uint32_t flags; - uint32_t device_signature[8]; - uint64_t offset; - uint64_t size; - uint32_t reserved[32]; -}; -typedef struct _HfsJJournalInfoBlock HfsJJournalInfoBlock; - -struct __attribute__ ((packed)) _HfsJJournalHeader { - uint32_t magic; - uint32_t endian; - uint64_t start; - uint64_t end; - uint64_t size; - uint32_t blhdr_size; - uint32_t checksum; - uint32_t jhdr_size; -}; -typedef struct _HfsJJournalHeader HfsJJournalHeader; - -struct __attribute__ ((packed)) _HfsJBlockInfo { - uint64_t bnum; /* sector number */ - uint32_t bsize; /* size in bytes */ - uint32_t next; -}; -typedef struct _HfsJBlockInfo HfsJBlockInfo; - -struct __attribute__ ((packed)) _HfsJBlockListHeader { - uint16_t max_blocks; /* reserved */ - uint16_t num_blocks; - uint32_t bytes_used; - uint32_t checksum; - uint32_t pad; - HfsJBlockInfo binfo[]; -}; -typedef struct _HfsJBlockListHeader HfsJBlockListHeader; - - - -/* ---------------------------------------- */ -/* -- INTERNAL DATA STRUCTURES -- */ -/* ---------------------------------------- */ - -/* Data of an opened HFS file */ -struct _HfsPrivateFile { - PedSector sect_nb; - PedFileSystem* fs; - uint32_t CNID; /* disk order (BE) */ - HfsExtDataRec first; /* disk order (BE) */ - HfsExtDataRec cache; /* disk order (BE) */ - uint16_t start_cache; /* CPU order */ -}; -typedef struct _HfsPrivateFile HfsPrivateFile; - -/* To store bad block list */ -struct _HfsPrivateLinkExtent { - HfsExtDescriptor extent; - struct _HfsPrivateLinkExtent* next; -}; -typedef struct _HfsPrivateLinkExtent HfsPrivateLinkExtent; - -/* HFS Filesystem specific data */ -struct _HfsPrivateFSData { - uint8_t alloc_map[(1<<16) / 8]; - HfsMasterDirectoryBlock* mdb; - HfsPrivateFile* extent_file; - HfsPrivateFile* catalog_file; - HfsPrivateLinkExtent* bad_blocks_xtent_list; - unsigned int bad_blocks_xtent_nb; - char bad_blocks_loaded; -}; -typedef struct _HfsPrivateFSData HfsPrivateFSData; - -/* Generic btree key */ -struct __attribute__ ((packed)) _HfsPrivateGenericKey { - uint8_t key_length; - uint8_t key_content[1]; /* we use 1 as a minimum size */ -}; -typedef struct _HfsPrivateGenericKey HfsPrivateGenericKey; - -/* ----- HFS+ ----- */ - -/* Data of an opened HFS file */ -struct _HfsPPrivateFile { - PedSector sect_nb; - PedFileSystem* fs; - HfsPNodeID CNID; /* disk order (BE) */ - HfsPExtDataRec first; /* disk order (BE) */ - HfsPExtDataRec cache; /* disk order (BE) */ - uint32_t start_cache; /* CPU order */ -}; -typedef struct _HfsPPrivateFile HfsPPrivateFile; - -struct _HfsPPrivateExtent { - PedSector start_sector; - PedSector sector_count; -}; -typedef struct _HfsPPrivateExtent HfsPPrivateExtent; - -/* To store bad block list */ -struct _HfsPPrivateLinkExtent { - HfsPExtDescriptor extent; - struct _HfsPPrivateLinkExtent* next; -}; -typedef struct _HfsPPrivateLinkExtent HfsPPrivateLinkExtent; - -/* HFS+ file system specific data */ -struct _HfsPPrivateFSData { - PedFileSystem* wrapper; /* NULL if hfs+ is not embedded */ - PedGeometry* plus_geom; /* Geometry of HFS+ _volume_ */ - uint8_t* alloc_map; - uint8_t* dirty_alloc_map; - HfsPVolumeHeader* vh; - HfsPPrivateFile* extents_file; - HfsPPrivateFile* catalog_file; - HfsPPrivateFile* attributes_file; - HfsPPrivateFile* allocation_file; - HfsPPrivateLinkExtent* bad_blocks_xtent_list; - uint32_t jib_start_block; - uint32_t jl_start_block; - unsigned int bad_blocks_xtent_nb; - char bad_blocks_loaded; - char free_geom; /* 1 = plus_geom must be freed */ -}; -typedef struct _HfsPPrivateFSData HfsPPrivateFSData; - -/* Generic + btree key */ -struct __attribute__ ((packed)) _HfsPPrivateGenericKey { - uint16_t key_length; - uint8_t key_content[1]; /* we use 1 as a minimum size */ -}; -typedef struct _HfsPPrivateGenericKey HfsPPrivateGenericKey; - -/* ---- common ---- */ - -/* node and lead record reference for a BTree search */ -struct _HfsCPrivateLeafRec { - unsigned int node_size; /* in sectors */ - unsigned int node_number; - unsigned int record_pos; - unsigned int record_number; -}; -typedef struct _HfsCPrivateLeafRec HfsCPrivateLeafRec; - -extern uint8_t* hfs_block; -extern uint8_t* hfsp_block; -extern unsigned hfs_block_count; -extern unsigned hfsp_block_count; - -#endif /* _HFS_H */ diff --git a/jni/parted/libparted/fs/r/hfs/journal.c b/jni/parted/libparted/fs/r/hfs/journal.c deleted file mode 100755 index 7a2a8dc..0000000 --- a/jni/parted/libparted/fs/r/hfs/journal.c +++ /dev/null @@ -1,392 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "reloc_plus.h" - -#include "journal.h" - -static int hfsj_vh_replayed = 0; -static int is_le = 0; - -static uint32_t -hfsj_calc_checksum(uint8_t *ptr, int len) -{ - int i; - uint32_t cksum=0; - - for (i=0; i < len; i++, ptr++) { - cksum = (cksum << 8) ^ (cksum + *ptr); - } - - return (~cksum); -} - -int -hfsj_update_jib(PedFileSystem* fs, uint32_t block) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - - priv_data->vh->journal_info_block = PED_CPU_TO_BE32(block); - - if (!hfsplus_update_vh (fs)) - return 0; - - priv_data->jib_start_block = block; - return 1; -} - -int -hfsj_update_jl(PedFileSystem* fs, uint32_t block) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - PedSector sector; - uint64_t offset; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsJJournalInfoBlock* jib; - int binsect; - - binsect = HFS_32_TO_CPU(priv_data->vh->block_size, is_le) / PED_SECTOR_SIZE_DEFAULT; - sector = (PedSector) priv_data->jib_start_block * binsect; - if (!ped_geometry_read(priv_data->plus_geom, buf, sector, 1)) - return 0; - jib = (HfsJJournalInfoBlock*) buf; - - offset = (uint64_t)block * PED_SECTOR_SIZE_DEFAULT * binsect; - jib->offset = HFS_CPU_TO_64(offset, is_le); - - if (!ped_geometry_write(priv_data->plus_geom, buf, sector, 1) - || !ped_geometry_sync(priv_data->plus_geom)) - return 0; - - priv_data->jl_start_block = block; - return 1; -} - -/* Return the sector in the journal that is after the area read */ -/* or 0 on error */ -static PedSector -hfsj_journal_read(PedGeometry* geom, HfsJJournalHeader* jh, - PedSector journ_sect, PedSector journ_length, - PedSector read_sect, unsigned int nb_sect, - void* buf) -{ - int r; - - while (nb_sect--) { - r = ped_geometry_read(geom, buf, journ_sect + read_sect, 1); - if (!r) return 0; - - buf = ((uint8_t*)buf) + PED_SECTOR_SIZE_DEFAULT; - read_sect++; - if (read_sect == journ_length) - read_sect = 1; /* skip journal header - which is asserted to be - 1 sector long */ - } - - return read_sect; -} - -static int -hfsj_replay_transaction(PedFileSystem* fs, HfsJJournalHeader* jh, - PedSector jsector, PedSector jlength) -{ - PedSector start, sector; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsJBlockListHeader* blhdr; - uint8_t* block; - unsigned int blhdr_nbsect; - int i, r; - uint32_t cksum, size; - - blhdr_nbsect = HFS_32_TO_CPU(jh->blhdr_size, is_le) / PED_SECTOR_SIZE_DEFAULT; - blhdr = (HfsJBlockListHeader*) - ped_malloc (blhdr_nbsect * PED_SECTOR_SIZE_DEFAULT); - if (!blhdr) return 0; - - start = HFS_64_TO_CPU(jh->start, is_le) / PED_SECTOR_SIZE_DEFAULT; - do { - start = hfsj_journal_read(priv_data->plus_geom, jh, jsector, - jlength, start, blhdr_nbsect, blhdr); - if (!start) goto err_replay; - - cksum = HFS_32_TO_CPU(blhdr->checksum, is_le); - blhdr->checksum = 0; - if (cksum!=hfsj_calc_checksum((uint8_t*)blhdr, sizeof(*blhdr))){ - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Bad block list header checksum.")); - goto err_replay; - } - blhdr->checksum = HFS_CPU_TO_32(cksum, is_le); - - for (i=1; i < HFS_16_TO_CPU(blhdr->num_blocks, is_le); ++i) { - size = HFS_32_TO_CPU(blhdr->binfo[i].bsize, is_le); - sector = HFS_64_TO_CPU(blhdr->binfo[i].bnum, is_le); - if (!size) continue; - if (size % PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Invalid size of a transaction " - "block while replaying the journal " - "(%i bytes)."), - size); - goto err_replay; - } - block = (uint8_t*) ped_malloc(size); - if (!block) goto err_replay; - start = hfsj_journal_read(priv_data->plus_geom, jh, - jsector, jlength, start, - size / PED_SECTOR_SIZE_DEFAULT, - block); - if (!start) { - free (block); - goto err_replay; - } - /* the sector stored in the journal seems to be - relative to the begin of the block device which - contains the hfs+ journaled volume */ - if (sector != ~0LL) - r = ped_geometry_write (fs->geom, block, sector, - size / PED_SECTOR_SIZE_DEFAULT); - else - r = 1; - free (block); - /* check if wrapper mdb or vh with no wrapper has - changed */ - if ( (sector != ~0LL) - && (2 >= sector) - && (2 < sector + size / PED_SECTOR_SIZE_DEFAULT) ) - hfsj_vh_replayed = 1; - /* check if vh of embedded hfs+ has changed */ - if ( (sector != ~0LL) - && (priv_data->plus_geom != fs->geom) - && (sector - + fs->geom->start - - priv_data->plus_geom->start <= 2) - && (sector - + size / PED_SECTOR_SIZE_DEFAULT - + fs->geom->start - - priv_data->plus_geom->start > 2) ) - hfsj_vh_replayed = 1; - if (!r) goto err_replay; - } - } while (blhdr->binfo[0].next); - - jh->start = HFS_CPU_TO_64(start * PED_SECTOR_SIZE_DEFAULT, is_le); - - free (blhdr); - return (ped_geometry_sync (fs->geom)); - -err_replay: - free (blhdr); - return 0; -} - -/* 0 => Failure, don't continue to open ! */ -/* 1 => Success, the journal has been completly replayed, or don't need to */ -int -hfsj_replay_journal(PedFileSystem* fs) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - PedSector sector, length; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsJJournalInfoBlock* jib; - HfsJJournalHeader* jh; - int binsect; - uint32_t cksum; - - binsect = PED_BE32_TO_CPU(priv_data->vh->block_size) / PED_SECTOR_SIZE_DEFAULT; - priv_data->jib_start_block = - PED_BE32_TO_CPU(priv_data->vh->journal_info_block); - sector = (PedSector) priv_data->jib_start_block * binsect; - if (!ped_geometry_read(priv_data->plus_geom, buf, sector, 1)) - return 0; - jib = (HfsJJournalInfoBlock*) buf; - - if ( (jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_IN_FS)) - && !(jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_OTHER_DEV)) ) { - priv_data->jl_start_block = HFS_64_TO_CPU(jib->offset, is_le) - / ( PED_SECTOR_SIZE_DEFAULT * binsect ); - } - - if (jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_NEED_INIT)) - return 1; - - if ( !(jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_IN_FS)) - || (jib->flags & PED_CPU_TO_BE32(1 << HFSJ_JOURN_OTHER_DEV)) ) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Journal stored outside of the volume are " - "not supported. Try to deactivate the " - "journal and run Parted again.")); - return 0; - } - - if ( (PED_BE64_TO_CPU(jib->offset) % PED_SECTOR_SIZE_DEFAULT) - || (PED_BE64_TO_CPU(jib->size) % PED_SECTOR_SIZE_DEFAULT) ) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Journal offset or size is not multiple of " - "the sector size.")); - return 0; - } - - sector = PED_BE64_TO_CPU(jib->offset) / PED_SECTOR_SIZE_DEFAULT; - length = PED_BE64_TO_CPU(jib->size) / PED_SECTOR_SIZE_DEFAULT; - - jib = NULL; - if (!ped_geometry_read(priv_data->plus_geom, buf, sector, 1)) - return 0; - jh = (HfsJJournalHeader*) buf; - - if (jh->endian == PED_LE32_TO_CPU(HFSJ_ENDIAN_MAGIC)) - is_le = 1; - - if ( (jh->magic != HFS_32_TO_CPU(HFSJ_HEADER_MAGIC, is_le)) - || (jh->endian != HFS_32_TO_CPU(HFSJ_ENDIAN_MAGIC, is_le)) ) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Incorrect magic values in the journal header.")); - return 0; - } - - if ( (HFS_64_TO_CPU(jh->size, is_le)%PED_SECTOR_SIZE_DEFAULT) - || (HFS_64_TO_CPU(jh->size, is_le)/PED_SECTOR_SIZE_DEFAULT - != (uint64_t)length) ) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Journal size mismatch between journal info block " - "and journal header.")); - return 0; - } - - if ( (HFS_64_TO_CPU(jh->start, is_le) % PED_SECTOR_SIZE_DEFAULT) - || (HFS_64_TO_CPU(jh->end, is_le) % PED_SECTOR_SIZE_DEFAULT) - || (HFS_32_TO_CPU(jh->blhdr_size, is_le) % PED_SECTOR_SIZE_DEFAULT) - || (HFS_32_TO_CPU(jh->jhdr_size, is_le) % PED_SECTOR_SIZE_DEFAULT) ) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Some header fields are not multiple of the sector " - "size.")); - return 0; - } - - if (HFS_32_TO_CPU(jh->jhdr_size, is_le) != PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The sector size stored in the journal is not 512 " - "bytes. Parted only supports 512 bytes length " - "sectors.")); - return 0; - } - - cksum = HFS_32_TO_CPU(jh->checksum, is_le); - jh->checksum = 0; - if (cksum != hfsj_calc_checksum((uint8_t*)jh, sizeof(*jh))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Bad journal checksum.")); - return 0; - } - jh->checksum = HFS_CPU_TO_32(cksum, is_le); - - /* https://github.com/apple-opensource/hfs/blob/master/core/hfs_journal.c#L1167 - * indicates that this is: - * wrap the start ptr if it points to the very end of the journal - */ - if (jh->start == jh->size) - jh->start = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le); - if (jh->end == jh->size) - jh->end = HFS_CPU_TO_64(PED_SECTOR_SIZE_DEFAULT, is_le); - - if (jh->start == jh->end) - return 1; - - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_FIX | PED_EXCEPTION_CANCEL, - _("The journal is not empty. Parted must replay the " - "transactions before opening the file system. This will " - "modify the file system.")) - != PED_EXCEPTION_FIX) - return 0; - - while (jh->start != jh->end) { - /* Replay one complete transaction */ - if (!hfsj_replay_transaction(fs, jh, sector, length)) - return 0; - - /* Recalculate cksum of the journal header */ - jh->checksum = 0; /* need to be 0 while calculating the cksum */ - cksum = hfsj_calc_checksum((uint8_t*)jh, sizeof(*jh)); - jh->checksum = HFS_CPU_TO_32(cksum, is_le); - - /* Update the Journal Header */ - if (!ped_geometry_write(priv_data->plus_geom, buf, sector, 1) - || !ped_geometry_sync(priv_data->plus_geom)) - return 0; - } - - if (hfsj_vh_replayed) { - /* probe could have reported incorrect info ! */ - /* is there a way to ask parted to quit ? */ - ped_exception_throw( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK, - _("The volume header or the master directory block has " - "changed while replaying the journal. You should " - "restart Parted.")); - return 0; - } - - return 1; -} - -#endif /* DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/journal.h b/jni/parted/libparted/fs/r/hfs/journal.h deleted file mode 100755 index 66eb2b1..0000000 --- a/jni/parted/libparted/fs/r/hfs/journal.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _JOURNAL_H -#define _JOURNAL_H - -#include -#include -#include - -#include "hfs.h" - -int -hfsj_replay_journal(PedFileSystem* fs); - -int -hfsj_update_jib(PedFileSystem* fs, uint32_t block); - -int -hfsj_update_jl(PedFileSystem* fs, uint32_t block); - -#define HFS_16_TO_CPU(x, is_little_endian) ((is_little_endian) ? (uint16_t)PED_LE16_TO_CPU(x) : (uint16_t)PED_BE16_TO_CPU(x)) -#define HFS_32_TO_CPU(x, is_little_endian) ((is_little_endian) ? (uint32_t)PED_LE32_TO_CPU(x) : (uint32_t)PED_BE32_TO_CPU(x)) -#define HFS_64_TO_CPU(x, is_little_endian) ((is_little_endian) ? (uint64_t)PED_LE64_TO_CPU(x) : (uint64_t)PED_BE64_TO_CPU(x)) -#define HFS_CPU_TO_16(x, is_little_endian) ((is_little_endian) ? (uint16_t)PED_CPU_TO_LE16(x) : (uint16_t)PED_CPU_TO_BE16(x)) -#define HFS_CPU_TO_32(x, is_little_endian) ((is_little_endian) ? (uint32_t)PED_CPU_TO_LE32(x) : (uint32_t)PED_CPU_TO_BE32(x)) -#define HFS_CPU_TO_64(x, is_little_endian) ((is_little_endian) ? (uint64_t)PED_CPU_TO_LE64(x) : (uint64_t)PED_CPU_TO_BE64(x)) - -#endif /* _JOURNAL_H */ diff --git a/jni/parted/libparted/fs/r/hfs/probe.c b/jni/parted/libparted/fs/r/hfs/probe.c deleted file mode 100755 index ee4ae31..0000000 --- a/jni/parted/libparted/fs/r/hfs/probe.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" - -#include "probe.h" - -int -hfsc_can_use_geom (PedGeometry* geom) -{ - PedDevice* dev; - - dev = geom->dev; - PED_ASSERT (geom != NULL); - PED_ASSERT (dev != NULL); - - if (dev->sector_size != PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Parted can't use HFS file systems on disks " - "with a sector size not equal to %d bytes."), - (int)PED_SECTOR_SIZE_DEFAULT ); - return 0; - } - - return 1; -} - -/* Probe an HFS volume, detecting it even if -it is in fact a wrapper to an HFS+ volume */ -/* Used by hfsplus_probe and hfs_probe */ -PedGeometry* -hfs_and_wrapper_probe (PedGeometry* geom) -{ - uint8_t buf[PED_SECTOR_SIZE_DEFAULT]; - HfsMasterDirectoryBlock *mdb; - PedGeometry* geom_ret; - PedSector search, max; - - PED_ASSERT (geom != NULL); - PED_ASSERT (hfsc_can_use_geom (geom)); - - mdb = (HfsMasterDirectoryBlock *) buf; - - /* is 5 an intelligent value ? */ - if ((geom->length < 5) - || (!ped_geometry_read (geom, buf, 2, 1)) - || (mdb->signature != PED_CPU_TO_BE16 (HFS_SIGNATURE)) ) - return NULL; - - search = ((PedSector) PED_BE16_TO_CPU (mdb->start_block) - + ((PedSector) PED_BE16_TO_CPU (mdb->total_blocks) - * (PED_BE32_TO_CPU (mdb->block_size) / PED_SECTOR_SIZE_DEFAULT ))); - max = search + (PED_BE32_TO_CPU (mdb->block_size) / PED_SECTOR_SIZE_DEFAULT); - if (!(geom_ret = ped_geometry_new (geom->dev, geom->start, search + 2))) - return NULL; - - for (; search < max; search++) { - if (!ped_geometry_set (geom_ret, geom_ret->start, search + 2) - || !ped_geometry_read (geom_ret, buf, search, 1)) - break; - if (mdb->signature == PED_CPU_TO_BE16 (HFS_SIGNATURE)) - return geom_ret; - } - - ped_geometry_destroy (geom_ret); - return NULL; -} diff --git a/jni/parted/libparted/fs/r/hfs/probe.h b/jni/parted/libparted/fs/r/hfs/probe.h deleted file mode 100755 index 21be916..0000000 --- a/jni/parted/libparted/fs/r/hfs/probe.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef _PROBE_H -#define _PROBE_H - -#include -#include -#include - -#include "hfs.h" - -int -hfsc_can_use_geom (PedGeometry* geom); - -PedGeometry* -hfs_and_wrapper_probe (PedGeometry* geom); - -#endif /* _PROBE_H */ diff --git a/jni/parted/libparted/fs/r/hfs/reloc.c b/jni/parted/libparted/fs/r/hfs/reloc.c deleted file mode 100755 index 05ec76a..0000000 --- a/jni/parted/libparted/fs/r/hfs/reloc.c +++ /dev/null @@ -1,676 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "file.h" -#include "advfs.h" -#include "cache.h" - -#include "reloc.h" - -/* This function moves data of size blocks starting - at block *ptr_fblock to block *ptr_to_fblock */ -/* return new start or -1 on failure */ -static int -hfs_effect_move_extent (PedFileSystem *fs, unsigned int *ptr_fblock, - unsigned int *ptr_to_fblock, unsigned int size) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - unsigned int i, ok = 0; - unsigned int next_to_fblock; - unsigned int start, stop; - - PED_ASSERT (hfs_block != NULL); - PED_ASSERT (*ptr_to_fblock <= *ptr_fblock); - /* quiet gcc */ - start = stop = 0; - -/* - Try to fit the extent AT or _BEFORE_ the wanted place, - or then in the gap between dest and source. - If failed try to fit the extent after source, for 2 pass relocation - The extent is always copied in a non overlapping way -*/ - - /* Backward search */ - /* 1 pass relocation AT or BEFORE *ptr_to_fblock */ - if (*ptr_to_fblock != *ptr_fblock) { - start = stop = *ptr_fblock < *ptr_to_fblock+size ? - *ptr_fblock : *ptr_to_fblock+size; - while (start && stop-start != size) { - --start; - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,start)) - stop = start; - } - ok = (stop-start == size); - } - - /* Forward search */ - /* 1 pass relocation in the gap merged with 2 pass reloc after source */ - if (!ok && *ptr_to_fblock != *ptr_fblock) { - start = stop = *ptr_to_fblock+1; - while (stop < PED_BE16_TO_CPU(priv_data->mdb->total_blocks) - && stop-start != size) { - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,stop)) - start = stop + 1; - ++stop; - } - ok = (stop-start == size); - } - - /* new non overlapping room has been found ? */ - if (ok) { - /* enough room */ - unsigned int j; - unsigned int start_block = - PED_BE16_TO_CPU (priv_data->mdb->start_block ); - unsigned int block_sz = - (PED_BE32_TO_CPU (priv_data->mdb->block_size) - / PED_SECTOR_SIZE_DEFAULT); - - if (stop > *ptr_to_fblock && stop <= *ptr_fblock) - /* Fit in the gap */ - next_to_fblock = stop; - else - /* Before or after the gap */ - next_to_fblock = *ptr_to_fblock; - - /* move blocks */ - for (i = 0; i < size; /*i+=j*/) { - PedSector abs_sector; - unsigned int ai; - - j = size - i; j = (j < hfs_block_count) ? - j : hfs_block_count ; - - abs_sector = start_block - + (PedSector) (*ptr_fblock + i) * block_sz; - if (!ped_geometry_read (fs->geom, hfs_block, abs_sector, - block_sz * j)) - return -1; - - abs_sector = start_block - + (PedSector) (start + i) * block_sz; - if (!ped_geometry_write (fs->geom,hfs_block,abs_sector, - block_sz * j)) - return -1; - - for (ai = i+j; i < ai; i++) { - /* free source block */ - CLR_BLOC_OCCUPATION(priv_data->alloc_map, - *ptr_fblock + i); - - /* set dest block */ - SET_BLOC_OCCUPATION(priv_data->alloc_map, - start + i); - } - } - if (!ped_geometry_sync_fast (fs->geom)) - return -1; - - *ptr_fblock += size; - *ptr_to_fblock = next_to_fblock; - } else { - if (*ptr_fblock != *ptr_to_fblock) - /* not enough room, but try to continue */ - ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE, - _("An extent has not been relocated.")); - start = *ptr_fblock; - *ptr_fblock = *ptr_to_fblock = start + size; - } - - return start; -} - -/* Update MDB */ -/* Return 0 if an error occurred */ -/* Return 1 if everything ok */ -int -hfs_update_mdb (PedFileSystem *fs) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - - if (!ped_geometry_read (fs->geom, node, 2, 1)) - return 0; - memcpy (node, priv_data->mdb, sizeof (HfsMasterDirectoryBlock)); - if ( !ped_geometry_write (fs->geom, node, 2, 1) - || !ped_geometry_write (fs->geom, node, fs->geom->length - 2, 1) - || !ped_geometry_sync_fast (fs->geom)) - return 0; - return 1; -} - -/* Generic relocator */ -/* replace previous hfs_do_move_* */ -static int -hfs_do_move (PedFileSystem* fs, unsigned int *ptr_src, - unsigned int *ptr_dest, HfsCPrivateCache* cache, - HfsCPrivateExtent* ref) -{ - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsPrivateFile* file; - HfsExtDescriptor* extent; - HfsCPrivateExtent* move; - int new_start; - - new_start = hfs_effect_move_extent (fs, ptr_src, ptr_dest, - ref->ext_length); - if (new_start == -1) return -1; - - if (ref->ext_start != (unsigned) new_start) { - /* Load, modify & save */ - switch (ref->where) { - /******** MDB *********/ - case CR_PRIM_CAT : - priv_data->catalog_file - ->first[ref->ref_index].start_block = - PED_CPU_TO_BE16(new_start); - goto CR_PRIM; - case CR_PRIM_EXT : - priv_data->extent_file - ->first[ref->ref_index].start_block = - PED_CPU_TO_BE16(new_start); - CR_PRIM : - extent = ( HfsExtDescriptor* ) - ( (uint8_t*)priv_data->mdb + ref->ref_offset ); - extent[ref->ref_index].start_block = - PED_CPU_TO_BE16(new_start); - if (!hfs_update_mdb(fs)) return -1; - break; - - /********* BTREE *******/ - case CR_BTREE_EXT_CAT : - if (priv_data->catalog_file - ->cache[ref->ref_index].start_block - == PED_CPU_TO_BE16(ref->ext_start)) - priv_data->catalog_file - ->cache[ref->ref_index].start_block = - PED_CPU_TO_BE16(new_start); - /* FALLTHROUGH */ - case CR_BTREE_EXT_0 : - file = priv_data->extent_file; - goto CR_BTREE; - case CR_BTREE_CAT : - file = priv_data->catalog_file; - CR_BTREE: - PED_ASSERT(ref->sect_by_block == 1 - && ref->ref_offset < PED_SECTOR_SIZE_DEFAULT); - if (!hfs_file_read_sector(file, node, ref->ref_block)) - return -1; - extent = ( HfsExtDescriptor* ) (node + ref->ref_offset); - extent[ref->ref_index].start_block = - PED_CPU_TO_BE16(new_start); - if (!hfs_file_write_sector(file, node, ref->ref_block) - || !ped_geometry_sync_fast (fs->geom)) - return -1; - break; - - /********** BUG ********/ - default : - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("A reference to an extent comes from a place " - "it should not. You should check the file " - "system!")); - return -1; - break; - } - - /* Update the cache */ - move = hfsc_cache_move_extent(cache, ref->ext_start, new_start); - if (!move) return -1; /* "cleanly" fail */ - PED_ASSERT(move == ref); /* generate a bug */ - } - - return new_start; -} - -/* 0 error, 1 ok */ -static int -hfs_save_allocation(PedFileSystem* fs) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - unsigned int map_sectors; - - map_sectors = ( PED_BE16_TO_CPU (priv_data->mdb->total_blocks) - + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) - / (PED_SECTOR_SIZE_DEFAULT * 8); - return ( ped_geometry_write (fs->geom, priv_data->alloc_map, - PED_BE16_TO_CPU (priv_data->mdb->volume_bitmap_block), - map_sectors) ); -} - -/* This function moves an extent starting at block fblock to block to_fblock - if there's enough room */ -/* Return 1 if everything was fine */ -/* Return -1 if an error occurred */ -/* Return 0 if no extent was found */ -/* Generic search thanks to the file system cache */ -static int -hfs_move_extent_starting_at (PedFileSystem *fs, unsigned int *ptr_fblock, - unsigned int *ptr_to_fblock, - HfsCPrivateCache* cache) -{ - HfsCPrivateExtent* ref; - unsigned int old_start, new_start; - - /* Reference search powered by the cache... */ - /* This is the optimisation secret :) */ - ref = hfsc_cache_search_extent(cache, *ptr_fblock); - if (!ref) return 0; /* not found */ - - old_start = *ptr_fblock; - new_start = hfs_do_move(fs, ptr_fblock, ptr_to_fblock, cache, ref); - if (new_start == (unsigned int) -1) return -1; - if (new_start > old_start) { /* detect 2 pass reloc */ - new_start = hfs_do_move(fs,&new_start,ptr_to_fblock,cache,ref); - if (new_start == (unsigned int) -1 || new_start > old_start) - return -1; - } - - /* allocation bitmap save is not atomic with data relocation */ - /* so we only do it a few times, and without syncing */ - /* The unmounted bit protect us anyway */ - hfs_save_allocation(fs); - return 1; -} - -static int -hfs_cache_from_mdb(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsExtDescriptor* extent; - unsigned int j; - - extent = priv_data->mdb->extents_file_rec; - for (j = 0; j < HFS_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE16_TO_CPU(extent[j].start_block), - PED_BE16_TO_CPU(extent[j].block_count), - 0, /* unused for mdb */ - ((uint8_t*)extent) - ((uint8_t*)priv_data->mdb), - 1, /* load/save only 1 sector */ - CR_PRIM_EXT, - j ) - ) - return 0; - } - - extent = priv_data->mdb->catalog_file_rec; - for (j = 0; j < HFS_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE16_TO_CPU(extent[j].start_block), - PED_BE16_TO_CPU(extent[j].block_count), - 0, - ((uint8_t*)extent) - ((uint8_t*)priv_data->mdb), - 1, - CR_PRIM_CAT, - j ) - ) - return 0; - } - - return 1; -} - -static int -hfs_cache_from_catalog(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - HfsHeaderRecord* header; - HfsNodeDescriptor* desc = (HfsNodeDescriptor*) node; - HfsCatalogKey* catalog_key; - HfsCatalog* catalog_data; - HfsExtDescriptor* extent; - unsigned int leaf_node, record_number; - unsigned int i, j; - uint16_t catalog_pos; - - if (!priv_data->catalog_file->sect_nb) { - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_OK, - _("This HFS volume has no catalog file. " - "This is very unusual!")); - return 1; - } - - if (!hfs_file_read_sector (priv_data->catalog_file, node, 0)) - return 0; - uint16_t offset; - memcpy(&offset, node+(PED_SECTOR_SIZE_DEFAULT-2), sizeof(uint16_t)); - header = (HfsHeaderRecord*) (node + PED_BE16_TO_CPU(offset)); - - for (leaf_node = PED_BE32_TO_CPU (header->first_leaf_node); - leaf_node; - leaf_node = PED_BE32_TO_CPU (desc->next)) { - if (!hfs_file_read_sector (priv_data->catalog_file, - node, leaf_node)) - return 0; - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = 1; i <= record_number; ++i) { - /* undocumented alignement */ - uint16_t value; - memcpy(&value, node+(PED_SECTOR_SIZE_DEFAULT - (2*i)), sizeof(uint16_t)); - catalog_pos = PED_BE16_TO_CPU(value); - catalog_key = (HfsCatalogKey*) (node + catalog_pos); - unsigned int skip; - skip = (1 + catalog_key->key_length + 1) & ~1; - catalog_data = (HfsCatalog*)(node+catalog_pos+skip); - /* check for obvious error in FS */ - if ((catalog_pos < HFS_FIRST_REC) - || ((uint8_t*)catalog_data - node - >= PED_SECTOR_SIZE_DEFAULT - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - return 0; - } - - if (catalog_data->type != HFS_CAT_FILE) continue; - - extent = catalog_data->sel.file.extents_data; - for (j = 0; j < HFS_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE16_TO_CPU(extent[j].start_block), - PED_BE16_TO_CPU(extent[j].block_count), - leaf_node, - (uint8_t*)extent - node, - 1, /* hfs => btree block = 512 b */ - CR_BTREE_CAT, - j ) - ) - return 0; - } - - extent = catalog_data->sel.file.extents_res; - for (j = 0; j < HFS_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE16_TO_CPU(extent[j].start_block), - PED_BE16_TO_CPU(extent[j].block_count), - leaf_node, - (uint8_t*)extent - node, - 1, /* hfs => btree block = 512 b */ - CR_BTREE_CAT, - j ) - ) - return 0; - } - } - } - - return 1; -} - -static int -hfs_cache_from_extent(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - HfsHeaderRecord* header; - HfsNodeDescriptor* desc = (HfsNodeDescriptor*) node; - HfsExtentKey* extent_key; - HfsExtDescriptor* extent; - unsigned int leaf_node, record_number; - unsigned int i, j; - uint16_t extent_pos; - - if (!priv_data->extent_file->sect_nb) { - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_OK, - _("This HFS volume has no extents overflow " - "file. This is quite unusual!")); - return 1; - } - - if (!hfs_file_read_sector (priv_data->extent_file, node, 0)) - return 0; - uint16_t offset; - memcpy(&offset, node+(PED_SECTOR_SIZE_DEFAULT-2), sizeof(uint16_t)); - header = (HfsHeaderRecord*) (node + PED_BE16_TO_CPU(offset)); - - for (leaf_node = PED_BE32_TO_CPU (header->first_leaf_node); - leaf_node; - leaf_node = PED_BE32_TO_CPU (desc->next)) { - if (!hfs_file_read_sector (priv_data->extent_file, node, - leaf_node)) - return 0; - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = 1; i <= record_number; i++) { - uint8_t where; - uint16_t value; - memcpy(&value, node+(PED_SECTOR_SIZE_DEFAULT - (2*i)), sizeof(uint16_t)); - extent_pos = PED_BE16_TO_CPU(value); - extent_key = (HfsExtentKey*)(node + extent_pos); - /* size is cst */ - extent = (HfsExtDescriptor*)(node+extent_pos+sizeof(HfsExtentKey)); - /* check for obvious error in FS */ - if ((extent_pos < HFS_FIRST_REC) - || ((uint8_t*)extent - node - >= PED_SECTOR_SIZE_DEFAULT - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - return 0; - } - - switch (extent_key->file_ID) { - case PED_CPU_TO_BE32 (HFS_XTENT_ID) : - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The extents overflow file should not" - " contain its own extents! You " - "should check the file system.")) - != PED_EXCEPTION_IGNORE) - return 0; - where = CR_BTREE_EXT_EXT; - break; - case PED_CPU_TO_BE32 (HFS_CATALOG_ID) : - where = CR_BTREE_EXT_CAT; - break; - default : - where = CR_BTREE_EXT_0; - break; - } - - for (j = 0; j < HFS_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE16_TO_CPU(extent[j].start_block), - PED_BE16_TO_CPU(extent[j].block_count), - leaf_node, - (uint8_t*)extent - node, - 1, /* hfs => btree block = 512 b */ - where, - j ) - ) - return 0; - } - } - } - - return 1; -} - -/* This function cache every extents start and length stored in any - fs structure into the adt defined in cache.[ch] - Returns NULL on failure */ -static HfsCPrivateCache* -hfs_cache_extents(PedFileSystem *fs, PedTimer* timer) -{ - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsCPrivateCache* ret; - unsigned int file_number, block_number; - - file_number = PED_BE32_TO_CPU(priv_data->mdb->file_count); - block_number = PED_BE16_TO_CPU(priv_data->mdb->total_blocks); - ret = hfsc_new_cache(block_number, file_number); - if (!ret) return NULL; - - if (!hfs_cache_from_mdb(ret, fs, timer) || - !hfs_cache_from_catalog(ret, fs, timer) || - !hfs_cache_from_extent(ret, fs, timer)) { - ped_exception_throw( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Could not cache the file system in memory.")); - hfsc_delete_cache(ret); - return NULL; - } - - return ret; -} - -/* This function moves file's data to compact used and free space, - starting at fblock block */ -/* return 0 on error */ -int -hfs_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, - PedTimer* timer, unsigned int to_free) -{ - PedSector bytes_buff; - HfsPrivateFSData* priv_data = (HfsPrivateFSData*) - fs->type_specific; - HfsMasterDirectoryBlock* mdb = priv_data->mdb; - HfsCPrivateCache* cache; - unsigned int to_fblock = fblock; - unsigned int start = fblock; - unsigned int divisor = PED_BE16_TO_CPU (mdb->total_blocks) - + 1 - start - to_free; - int ret; - - PED_ASSERT (!hfs_block); - - cache = hfs_cache_extents (fs, timer); - if (!cache) - return 0; - - /* Calculate the size of the copy buffer : - * Takes BLOCK_MAX_BUFF HFS blocks, but if > BYTES_MAX_BUFF - * takes the maximum number of HFS blocks so that the buffer - * will remain smaller than or equal to BYTES_MAX_BUFF, with - * a minimum of 1 HFS block */ - bytes_buff = PED_BE32_TO_CPU (priv_data->mdb->block_size) - * (PedSector) BLOCK_MAX_BUFF; - if (bytes_buff > BYTES_MAX_BUFF) { - hfs_block_count = BYTES_MAX_BUFF - / PED_BE32_TO_CPU (priv_data->mdb->block_size); - if (!hfs_block_count) - hfs_block_count = 1; - bytes_buff = (PedSector) hfs_block_count - * PED_BE32_TO_CPU (priv_data->mdb->block_size); - } else - hfs_block_count = BLOCK_MAX_BUFF; - - /* If the cache code requests more space, give it to him */ - if (bytes_buff < hfsc_cache_needed_buffer (cache)) - bytes_buff = hfsc_cache_needed_buffer (cache); - - hfs_block = (uint8_t*) ped_malloc (bytes_buff); - if (!hfs_block) - goto error_cache; - - if (!hfs_read_bad_blocks (fs)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Bad blocks list could not be loaded.")); - goto error_alloc; - } - - while (fblock < PED_BE16_TO_CPU (mdb->total_blocks)) { - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,fblock) - && (!hfs_is_bad_block (fs, fblock))) { - if (!(ret = hfs_move_extent_starting_at (fs, &fblock, - &to_fblock, cache))) - to_fblock = ++fblock; - else if (ret == -1) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("An error occurred during extent " - "relocation.")); - goto error_alloc; - } - } else { - fblock++; - } - - ped_timer_update(timer, (float)(to_fblock - start)/divisor); - } - - free (hfs_block); hfs_block = NULL; hfs_block_count = 0; - hfsc_delete_cache (cache); - return 1; - -error_alloc: - free (hfs_block); hfs_block = NULL; hfs_block_count = 0; -error_cache: - hfsc_delete_cache (cache); - return 0; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/reloc.h b/jni/parted/libparted/fs/r/hfs/reloc.h deleted file mode 100755 index d8b1e6d..0000000 --- a/jni/parted/libparted/fs/r/hfs/reloc.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _RELOC_H -#define _RELOC_H - -#include -#include -#include - -#include "hfs.h" - -int -hfs_update_mdb (PedFileSystem *fs); - -int -hfs_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, - PedTimer* timer, unsigned int to_free); - -#endif /* _RELOC_H */ diff --git a/jni/parted/libparted/fs/r/hfs/reloc_plus.c b/jni/parted/libparted/fs/r/hfs/reloc_plus.c deleted file mode 100755 index 904929c..0000000 --- a/jni/parted/libparted/fs/r/hfs/reloc_plus.c +++ /dev/null @@ -1,948 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004-2005, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef DISCOVER_ONLY - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "hfs.h" -#include "file_plus.h" -#include "advfs_plus.h" -#include "cache.h" -#include "journal.h" - -#include "reloc_plus.h" - -/* This function moves data of size blocks starting at block *ptr_fblock - to block *ptr_to_fblock */ -/* return new start or -1 on failure */ -/* -1 is ok because there can only be 2^32-1 blocks, so the max possible - last one is 2^32-2 (and anyway it contains Alternate VH), so - -1 (== 2^32-1[2^32]) never represent a valid block */ -static int -hfsplus_effect_move_extent (PedFileSystem *fs, unsigned int *ptr_fblock, - unsigned int *ptr_to_fblock, unsigned int size) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - unsigned int i, ok = 0; - unsigned int next_to_fblock; - unsigned int start, stop; - - PED_ASSERT (hfsp_block != NULL); - PED_ASSERT (*ptr_to_fblock <= *ptr_fblock); - /* quiet GCC */ - start = stop = 0; - -/* - Try to fit the extent AT or _BEFORE_ the wanted place, - or then in the gap between dest and source. - If failed try to fit the extent after source, for 2 pass relocation - The extent is always copied in a non overlapping way -*/ - - /* Backward search */ - /* 1 pass relocation AT or BEFORE *ptr_to_fblock */ - if (*ptr_to_fblock != *ptr_fblock) { - start = stop = *ptr_fblock < *ptr_to_fblock+size ? - *ptr_fblock : *ptr_to_fblock+size; - while (start && stop-start != size) { - --start; - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,start)) - stop = start; - } - ok = (stop-start == size); - } - - /* Forward search */ - /* 1 pass relocation in the gap merged with 2 pass reloc after source */ - if (!ok && *ptr_to_fblock != *ptr_fblock) { - start = stop = *ptr_to_fblock+1; - while (stop < PED_BE32_TO_CPU(priv_data->vh->total_blocks) - && stop-start != size) { - if (TST_BLOC_OCCUPATION(priv_data->alloc_map,stop)) - start = stop + 1; - ++stop; - } - ok = (stop-start == size); - } - - /* new non overlapping room has been found ? */ - if (ok) { - /* enough room */ - PedSector abs_sector; - unsigned int ai, j, block; - unsigned int block_sz = (PED_BE32_TO_CPU ( - priv_data->vh->block_size) - / PED_SECTOR_SIZE_DEFAULT); - - if (stop > *ptr_to_fblock && stop <= *ptr_fblock) - /* Fit in the gap */ - next_to_fblock = stop; - else - /* Before or after the gap */ - next_to_fblock = *ptr_to_fblock; - - /* move blocks */ - for (i = 0; i < size; /*i++*/) { - j = size - i; j = (j < hfsp_block_count) ? - j : hfsp_block_count ; - - abs_sector = (PedSector) (*ptr_fblock + i) * block_sz; - if (!ped_geometry_read (priv_data->plus_geom, - hfsp_block, abs_sector, - block_sz * j)) - return -1; - - abs_sector = (PedSector) (start + i) * block_sz; - if (!ped_geometry_write (priv_data->plus_geom, - hfsp_block, abs_sector, - block_sz * j)) - return -1; - - for (ai = i+j; i < ai; i++) { - /* free source block */ - block = *ptr_fblock + i; - CLR_BLOC_OCCUPATION(priv_data->alloc_map,block); - SET_BLOC_OCCUPATION(priv_data->dirty_alloc_map, - block/(PED_SECTOR_SIZE_DEFAULT*8)); - - /* set dest block */ - block = start + i; - SET_BLOC_OCCUPATION(priv_data->alloc_map,block); - SET_BLOC_OCCUPATION(priv_data->dirty_alloc_map, - block/(PED_SECTOR_SIZE_DEFAULT*8)); - } - } - if (!ped_geometry_sync_fast (priv_data->plus_geom)) - return -1; - - *ptr_fblock += size; - *ptr_to_fblock = next_to_fblock; - } else { - if (*ptr_fblock != *ptr_to_fblock) - /* not enough room */ - ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE, - _("An extent has not been relocated.")); - start = *ptr_fblock; - *ptr_fblock = *ptr_to_fblock = start + size; - } - - return start; -} - -/* Returns 0 on error */ -/* 1 on succes */ -int -hfsplus_update_vh (PedFileSystem *fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - uint8_t node[PED_SECTOR_SIZE_DEFAULT]; - - if (!ped_geometry_read (priv_data->plus_geom, node, 2, 1)) - return 0; - memcpy (node, priv_data->vh, sizeof (HfsPVolumeHeader)); - if (!ped_geometry_write (priv_data->plus_geom, node, 2, 1) - || !ped_geometry_write (priv_data->plus_geom, node, - priv_data->plus_geom->length - 2, 1) - || !ped_geometry_sync_fast (priv_data->plus_geom)) - return 0; - return 1; -} - -static int -hfsplus_do_move (PedFileSystem* fs, unsigned int *ptr_src, - unsigned int *ptr_dest, HfsCPrivateCache* cache, - HfsCPrivateExtent* ref) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPPrivateFile* file; - HfsPExtDescriptor* extent; - HfsCPrivateExtent* move; - int new_start; - - new_start = hfsplus_effect_move_extent (fs, ptr_src, ptr_dest, - ref->ext_length); - - if (new_start == -1) return -1; - - if (ref->ext_start != (unsigned) new_start) { - switch (ref->where) { - /************ VH ************/ - case CR_PRIM_CAT : - priv_data->catalog_file - ->first[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_PRIM; - case CR_PRIM_EXT : - priv_data->extents_file - ->first[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_PRIM; - case CR_PRIM_ATTR : - priv_data->attributes_file - ->first[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_PRIM; - case CR_PRIM_ALLOC : - priv_data->allocation_file - ->first[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_PRIM; - case CR_PRIM_START : - /* No startup file opened */ - CR_PRIM : - extent = ( HfsPExtDescriptor* ) - ( (uint8_t*)priv_data->vh + ref->ref_offset ); - extent[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - if (!hfsplus_update_vh(fs)) - return -1; - break; - - /************** BTREE *************/ - case CR_BTREE_CAT_JIB : - if (!hfsj_update_jib(fs, new_start)) - return -1; - goto BTREE_CAT; - - case CR_BTREE_CAT_JL : - if (!hfsj_update_jl(fs, new_start)) - return -1; - goto BTREE_CAT; - - BTREE_CAT: - case CR_BTREE_CAT : - file = priv_data->catalog_file; - goto CR_BTREE; - - case CR_BTREE_ATTR : - file = priv_data->attributes_file; - goto CR_BTREE; - - case CR_BTREE_EXT_ATTR : - if (priv_data->attributes_file - ->cache[ref->ref_index].start_block - == PED_CPU_TO_BE32(ref->ext_start)) - priv_data->attributes_file - ->cache[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_BTREE_EXT; - case CR_BTREE_EXT_CAT : - if (priv_data->catalog_file - ->cache[ref->ref_index].start_block - == PED_CPU_TO_BE32(ref->ext_start)) - priv_data->catalog_file - ->cache[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_BTREE_EXT; - case CR_BTREE_EXT_ALLOC : - if (priv_data->allocation_file - ->cache[ref->ref_index].start_block - == PED_CPU_TO_BE32(ref->ext_start)) - priv_data->allocation_file - ->cache[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - goto CR_BTREE_EXT; - case CR_BTREE_EXT_START : - /* No startup file opened */ - CR_BTREE_EXT : - case CR_BTREE_EXT_0 : - file = priv_data->extents_file; - - CR_BTREE : - PED_ASSERT(PED_SECTOR_SIZE_DEFAULT * ref->sect_by_block - > ref->ref_offset); - if (!hfsplus_file_read(file, hfsp_block, - (PedSector)ref->ref_block * ref->sect_by_block, - ref->sect_by_block)) - return -1; - extent = ( HfsPExtDescriptor* ) - ( hfsp_block + ref->ref_offset ); - extent[ref->ref_index].start_block = - PED_CPU_TO_BE32(new_start); - if (!hfsplus_file_write(file, hfsp_block, - (PedSector)ref->ref_block * ref->sect_by_block, - ref->sect_by_block) - || !ped_geometry_sync_fast (priv_data->plus_geom)) - return -1; - break; - - /********** BUG *********/ - default : - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("A reference to an extent comes from a place " - "it should not. You should check the file " - "system!")); - return -1; - break; - } - - move = hfsc_cache_move_extent(cache, ref->ext_start, new_start); - if (!move) return -1; - PED_ASSERT(move == ref); - } - - return new_start; -} - -/* save any dirty sector of the allocation bitmap file */ -static int -hfsplus_save_allocation(PedFileSystem *fs) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - unsigned int map_sectors, i, j; - int ret = 1; - - map_sectors = ( PED_BE32_TO_CPU (priv_data->vh->total_blocks) - + PED_SECTOR_SIZE_DEFAULT * 8 - 1 ) / (PED_SECTOR_SIZE_DEFAULT * 8); - - for (i = 0; i < map_sectors;) { - for (j = i; - (TST_BLOC_OCCUPATION(priv_data->dirty_alloc_map,j)); - ++j) - CLR_BLOC_OCCUPATION(priv_data->dirty_alloc_map,j); - if (j-i) { - ret = hfsplus_file_write(priv_data->allocation_file, - priv_data->alloc_map + i * PED_SECTOR_SIZE_DEFAULT, - i, j-i) && ret; - i = j; - } else - ++i; - } - - return ret; -} - -/* This function moves an extent starting at block fblock - to block to_fblock if there's enough room */ -/* Return 1 if everything was fine */ -/* Return -1 if an error occurred */ -/* Return 0 if no extent was found */ -static int -hfsplus_move_extent_starting_at (PedFileSystem *fs, unsigned int *ptr_fblock, - unsigned int *ptr_to_fblock, - HfsCPrivateCache* cache) -{ - HfsCPrivateExtent* ref; - unsigned int old_start, new_start; - - ref = hfsc_cache_search_extent(cache, *ptr_fblock); - if (!ref) return 0; - - old_start = *ptr_fblock; - new_start = hfsplus_do_move(fs, ptr_fblock, ptr_to_fblock, cache, ref); - if (new_start == (unsigned)-1) return -1; - if (new_start > old_start) { - new_start = hfsplus_do_move(fs, &new_start, ptr_to_fblock, - cache, ref); - if (new_start == (unsigned)-1 || new_start > old_start) - return -1; - } - - hfsplus_save_allocation(fs); - return 1; -} - -static int -hfsplus_cache_from_vh(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPExtDescriptor* extent; - unsigned int j; - - extent = priv_data->vh->allocation_file.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - 0, /* unused for vh */ - ((uint8_t*)extent) - ((uint8_t*)priv_data->vh), - 1, /* load / save 1 sector */ - CR_PRIM_ALLOC, - j ) - ) - return 0; - } - - extent = priv_data->vh->extents_file.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - 0, /* unused for vh */ - ((uint8_t*)extent) - ((uint8_t*)priv_data->vh), - 1, /* load / save 1 sector */ - CR_PRIM_EXT, - j ) - ) - return 0; - } - - extent = priv_data->vh->catalog_file.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - 0, /* unused for vh */ - ((uint8_t*)extent) - ((uint8_t*)priv_data->vh), - 1, /* load / save 1 sector */ - CR_PRIM_CAT, - j ) - ) - return 0; - } - - extent = priv_data->vh->attributes_file.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - 0, /* unused for vh */ - ((uint8_t*)extent) - ((uint8_t*)priv_data->vh), - 1, /* load / save 1 sector */ - CR_PRIM_ATTR, - j ) - ) - return 0; - } - - extent = priv_data->vh->startup_file.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - 0, /* unused for vh */ - ((uint8_t*)extent) - ((uint8_t*)priv_data->vh), - 1, /* load / save 1 sector */ - CR_PRIM_START, - j ) - ) - return 0; - } - - return 1; -} - -static int -hfsplus_cache_from_catalog(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - uint8_t node_1[PED_SECTOR_SIZE_DEFAULT]; - uint8_t* node; - HfsPHeaderRecord* header; - HfsPCatalogKey* catalog_key; - HfsPCatalog* catalog_data; - HfsPExtDescriptor* extent; - unsigned int leaf_node, record_number; - unsigned int i, j, size, bsize; - uint32_t jib = priv_data->jib_start_block, - jl = priv_data->jl_start_block; - uint16_t catalog_pos; - - if (!priv_data->catalog_file->sect_nb) { - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_OK, - _("This HFS+ volume has no catalog file. " - "This is very unusual!")); - return 1; - } - - /* Search the extent starting at *ptr_block in the catalog file */ - if (!hfsplus_file_read_sector (priv_data->catalog_file, node_1, 0)) - return 0; - header = (HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC); - leaf_node = PED_BE32_TO_CPU (header->first_leaf_node); - bsize = PED_BE16_TO_CPU (header->node_size); - size = bsize / PED_SECTOR_SIZE_DEFAULT; - PED_ASSERT(size < 256); - - node = (uint8_t*) ped_malloc(bsize); - if (!node) return 0; - HfsPNodeDescriptor *desc = (HfsPNodeDescriptor*) node; - - for (; leaf_node; leaf_node = PED_BE32_TO_CPU (desc->next)) { - if (!hfsplus_file_read (priv_data->catalog_file, node, - (PedSector) leaf_node * size, size)) { - free (node); - return 0; - } - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = 1; i <= record_number; i++) { - unsigned int skip; - uint8_t where; - - uint16_t value; - memcpy(&value, node+(bsize - (2*i)), sizeof(uint16_t)); - catalog_pos = PED_BE16_TO_CPU(value); - catalog_key = (HfsPCatalogKey*)(node + catalog_pos); - skip = ( 2 + PED_BE16_TO_CPU (catalog_key->key_length) - + 1) & ~1; - catalog_data = (HfsPCatalog*) - (((uint8_t*)catalog_key) + skip); - /* check for obvious error in FS */ - if ((catalog_pos < HFS_FIRST_REC) - || ((uint8_t*)catalog_data - node - >= (signed) bsize - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - free (node); - return 0; - } - - if (PED_BE16_TO_CPU(catalog_data->type)!=HFS_CAT_FILE) - continue; - - extent = catalog_data->sel.file.data_fork.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - where = CR_BTREE_CAT; - if ( PED_BE32_TO_CPU(extent[j].start_block) - == jib ) { - jib = 0; - where = CR_BTREE_CAT_JIB; - } else - if ( PED_BE32_TO_CPU(extent[j].start_block) - == jl ) { - jl = 0; - where = CR_BTREE_CAT_JL; - } - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - leaf_node, - (uint8_t*)extent - node, - size, - where, - j ) - ) { - free (node); - return 0; - } - } - - extent = catalog_data->sel.file.res_fork.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - leaf_node, - (uint8_t*)extent - node, - size, - CR_BTREE_CAT, - j ) - ) { - free (node); - return 0; - } - } - } - } - - free (node); - return 1; -} - -static int -hfsplus_cache_from_extent(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - uint8_t node_1[PED_SECTOR_SIZE_DEFAULT]; - uint8_t* node; - HfsPHeaderRecord* header; - HfsPExtentKey* extent_key; - HfsPExtDescriptor* extent; - unsigned int leaf_node, record_number; - unsigned int i, j, size, bsize; - uint16_t extent_pos; - - if (!priv_data->extents_file->sect_nb) { - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_OK, - _("This HFS+ volume has no extents overflow " - "file. This is quite unusual!")); - return 1; - } - - if (!hfsplus_file_read_sector (priv_data->extents_file, node_1, 0)) - return 0; - header = ((HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC)); - leaf_node = PED_BE32_TO_CPU (header->first_leaf_node); - bsize = PED_BE16_TO_CPU (header->node_size); - size = bsize / PED_SECTOR_SIZE_DEFAULT; - PED_ASSERT(size < 256); - - node = (uint8_t*) ped_malloc (bsize); - if (!node) return -1; - HfsPNodeDescriptor *desc = (HfsPNodeDescriptor*) node; - - for (; leaf_node; leaf_node = PED_BE32_TO_CPU (desc->next)) { - if (!hfsplus_file_read (priv_data->extents_file, node, - (PedSector) leaf_node * size, size)) { - free (node); - return 0; - } - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = 1; i <= record_number; i++) { - uint8_t where; - uint16_t value; - memcpy(&value, node+(bsize - (2*i)), sizeof(uint16_t)); - extent_pos = PED_BE16_TO_CPU(value); - extent_key = (HfsPExtentKey*)(node + extent_pos); - extent = (HfsPExtDescriptor*) - (((uint8_t*)extent_key) + sizeof (HfsPExtentKey)); - /* check for obvious error in FS */ - if ((extent_pos < HFS_FIRST_REC) - || ((uint8_t*)extent - node - >= (signed)bsize - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - free (node); - return -1; - } - - switch (extent_key->file_ID) { - case PED_CPU_TO_BE32 (HFS_XTENT_ID) : - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The extents overflow file should not" - " contain its own extents! You should " - "check the file system.")) - != PED_EXCEPTION_IGNORE) - return 0; - where = CR_BTREE_EXT_EXT; - break; - case PED_CPU_TO_BE32 (HFS_CATALOG_ID) : - where = CR_BTREE_EXT_CAT; - break; - case PED_CPU_TO_BE32 (HFSP_ALLOC_ID) : - where = CR_BTREE_EXT_ALLOC; - break; - case PED_CPU_TO_BE32 (HFSP_STARTUP_ID) : - where = CR_BTREE_EXT_START; - break; - case PED_CPU_TO_BE32 (HFSP_ATTRIB_ID) : - where = CR_BTREE_EXT_ATTR; - break; - default : - where = CR_BTREE_EXT_0; - break; - } - - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU(extent[j].start_block), - PED_BE32_TO_CPU(extent[j].block_count), - leaf_node, - (uint8_t*)extent - node, - size, - where, - j ) - ) { - free (node); - return 0; - } - } - } - } - - free (node); - return 1; -} - -static int -hfsplus_cache_from_attributes(HfsCPrivateCache* cache, PedFileSystem* fs, - PedTimer* timer) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - uint8_t node_1[PED_SECTOR_SIZE_DEFAULT]; - uint8_t* node; - HfsPHeaderRecord* header; - HfsPPrivateGenericKey* generic_key; - HfsPForkDataAttr* fork_ext_data; - HfsPExtDescriptor* extent; - unsigned int leaf_node, record_number; - unsigned int i, j, size, bsize; - uint16_t generic_pos; - - /* attributes file is facultative */ - if (!priv_data->attributes_file->sect_nb) - return 1; - - /* Search the extent starting at *ptr_block in the catalog file */ - if (!hfsplus_file_read_sector (priv_data->attributes_file, node_1, 0)) - return 0; - header = ((HfsPHeaderRecord*) (node_1 + HFS_FIRST_REC)); - leaf_node = PED_BE32_TO_CPU (header->first_leaf_node); - bsize = PED_BE16_TO_CPU (header->node_size); - size = bsize / PED_SECTOR_SIZE_DEFAULT; - PED_ASSERT(size < 256); - - node = (uint8_t*) ped_malloc(bsize); - if (!node) return 0; - HfsPNodeDescriptor *desc = (HfsPNodeDescriptor*) node; - - for (; leaf_node; leaf_node = PED_BE32_TO_CPU (desc->next)) { - if (!hfsplus_file_read (priv_data->attributes_file, node, - (PedSector) leaf_node * size, size)) { - free (node); - return 0; - } - record_number = PED_BE16_TO_CPU (desc->rec_nb); - for (i = 1; i <= record_number; i++) { - unsigned int skip; - uint16_t value; - memcpy(&value, node+(bsize - (2*i)), sizeof(uint16_t)); - generic_pos = PED_BE16_TO_CPU(value); - generic_key = (HfsPPrivateGenericKey*)(node + generic_pos); - skip = ( 2 + PED_BE16_TO_CPU (generic_key->key_length) - + 1 ) & ~1; - fork_ext_data = (HfsPForkDataAttr*)(node+generic_pos+skip); - /* check for obvious error in FS */ - if ((generic_pos < HFS_FIRST_REC) - || ((uint8_t*)fork_ext_data - node - >= (signed) bsize - - 2 * (signed)(record_number+1))) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The file system contains errors.")); - free (node); - return 0; - } - - if (fork_ext_data->record_type - == PED_CPU_TO_BE32 ( HFSP_ATTR_FORK ) ) { - extent = fork_ext_data->fork_res.fork.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU ( - extent[j].start_block ), - PED_BE32_TO_CPU ( - extent[j].block_count ), - leaf_node, - (uint8_t*)extent-node, - size, - CR_BTREE_ATTR, - j ) - ) { - free(node); - return 0; - } - } - } else if (fork_ext_data->record_type - == PED_CPU_TO_BE32 ( HFSP_ATTR_EXTENTS ) ) { - extent = fork_ext_data->fork_res.extents; - for (j = 0; j < HFSP_EXT_NB; ++j) { - if (!extent[j].block_count) break; - if (!hfsc_cache_add_extent( - cache, - PED_BE32_TO_CPU ( - extent[j].start_block ), - PED_BE32_TO_CPU ( - extent[j].block_count ), - leaf_node, - (uint8_t*)extent-node, - size, - CR_BTREE_ATTR, - j ) - ) { - free(node); - return 0; - } - } - } else continue; - } - } - - free (node); - return 1; -} - -static HfsCPrivateCache* -hfsplus_cache_extents(PedFileSystem* fs, PedTimer* timer) -{ - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsCPrivateCache* ret; - unsigned int file_number, block_number; - - file_number = PED_BE32_TO_CPU(priv_data->vh->file_count); - block_number = PED_BE32_TO_CPU(priv_data->vh->total_blocks); - ret = hfsc_new_cache(block_number, file_number); - if (!ret) return NULL; - - if (!hfsplus_cache_from_vh(ret, fs, timer) || - !hfsplus_cache_from_catalog(ret, fs, timer) || - !hfsplus_cache_from_extent(ret, fs, timer) || - !hfsplus_cache_from_attributes(ret, fs, timer)) { - ped_exception_throw( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Could not cache the file system in memory.")); - hfsc_delete_cache(ret); - return NULL; - } - - return ret; -} - -/* This function moves file's data to compact used and free space, - starting at fblock block */ -/* return 0 on error */ -int -hfsplus_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, - PedTimer* timer, unsigned int to_free) -{ - PedSector bytes_buff; - HfsPPrivateFSData* priv_data = (HfsPPrivateFSData*) - fs->type_specific; - HfsPVolumeHeader* vh = priv_data->vh; - HfsCPrivateCache* cache; - unsigned int to_fblock = fblock; - unsigned int start = fblock; - unsigned int divisor = PED_BE32_TO_CPU (vh->total_blocks) - + 1 - start - to_free; - int ret; - - PED_ASSERT (!hfsp_block); - - cache = hfsplus_cache_extents (fs, timer); - if (!cache) - return 0; - - /* Calculate the size of the copy buffer : - * Takes BLOCK_MAX_BUFF HFS blocks, but if > BYTES_MAX_BUFF - * takes the maximum number of HFS blocks so that the buffer - * will remain smaller than or equal to BYTES_MAX_BUFF, with - * a minimum of 1 HFS block */ - bytes_buff = PED_BE32_TO_CPU (priv_data->vh->block_size) - * (PedSector) BLOCK_MAX_BUFF; - if (bytes_buff > BYTES_MAX_BUFF) { - hfsp_block_count = BYTES_MAX_BUFF - / PED_BE32_TO_CPU (priv_data->vh->block_size); - if (!hfsp_block_count) - hfsp_block_count = 1; - bytes_buff = (PedSector) hfsp_block_count - * PED_BE32_TO_CPU (priv_data->vh->block_size); - } else - hfsp_block_count = BLOCK_MAX_BUFF; - - /* If the cache code requests more space, give it to him */ - if (bytes_buff < hfsc_cache_needed_buffer (cache)) - bytes_buff = hfsc_cache_needed_buffer (cache); - - hfsp_block = (uint8_t*) ped_malloc (bytes_buff); - if (!hfsp_block) - goto error_cache; - - if (!hfsplus_read_bad_blocks (fs)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Bad blocks list could not be loaded.")); - goto error_alloc; - } - - while ( fblock < ( priv_data->plus_geom->length - 2 ) - / ( PED_BE32_TO_CPU (vh->block_size) - / PED_SECTOR_SIZE_DEFAULT ) ) { - if (TST_BLOC_OCCUPATION (priv_data->alloc_map, fblock) - && (!hfsplus_is_bad_block (fs, fblock))) { - if (!(ret = hfsplus_move_extent_starting_at (fs, - &fblock, &to_fblock, cache))) - to_fblock = ++fblock; - else if (ret == -1) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("An error occurred during extent " - "relocation.")); - goto error_alloc; - } - } else { - fblock++; - } - - ped_timer_update(timer, (float)(to_fblock - start) / divisor); - } - - free (hfsp_block); hfsp_block = NULL; hfsp_block_count = 0; - hfsc_delete_cache (cache); - return 1; - -error_alloc: - free (hfsp_block); hfsp_block = NULL; hfsp_block_count = 0; -error_cache: - hfsc_delete_cache (cache); - return 0; -} - -#endif /* !DISCOVER_ONLY */ diff --git a/jni/parted/libparted/fs/r/hfs/reloc_plus.h b/jni/parted/libparted/fs/r/hfs/reloc_plus.h deleted file mode 100755 index 8c5998a..0000000 --- a/jni/parted/libparted/fs/r/hfs/reloc_plus.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2004, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef _RELOC_PLUS_H -#define _RELOC_PLUS_H - -#include -#include -#include - -#include "hfs.h" - -int -hfsplus_update_vh (PedFileSystem *fs); - -int -hfsplus_pack_free_space_from_block (PedFileSystem *fs, unsigned int fblock, - PedTimer* timer, unsigned int to_free); - - -#endif /* _RELOC_PLUS_H */ diff --git a/jni/parted/libparted/fs/reiserfs/reiserfs.c b/jni/parted/libparted/fs/reiserfs/reiserfs.c deleted file mode 100755 index 0638f3e..0000000 --- a/jni/parted/libparted/fs/reiserfs/reiserfs.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - reiserfs.c -- ReiserFS detection - Copyright (C) 2001-2002, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include - -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif - -#include "reiserfs.h" - -static PedSector reiserfs_super_offset[] = { 128, 16, -1 }; -static PedFileSystemType* reiserfs_type; - -static PedGeometry *reiserfs_probe(PedGeometry *geom) -{ - int i; - - PED_ASSERT(geom != NULL); - reiserfs_super_block_t *sb = alloca (geom->dev->sector_size); - - for (i = 0; reiserfs_super_offset[i] != -1; i++) { - if (reiserfs_super_offset[i] >= geom->length) - continue; - if (!ped_geometry_read (geom, sb, reiserfs_super_offset[i], 1)) - continue; - - if (strncmp(REISERFS_SIGNATURE, sb->s_magic, - strlen(REISERFS_SIGNATURE)) == 0 - || strncmp(REISER2FS_SIGNATURE, sb->s_magic, - strlen(REISER2FS_SIGNATURE)) == 0 - || strncmp(REISER3FS_SIGNATURE, sb->s_magic, - strlen(REISER3FS_SIGNATURE)) == 0) { - PedSector block_size; - PedSector block_count; - - block_size = PED_LE16_TO_CPU(sb->s_blocksize) - / geom->dev->sector_size; - block_count = PED_LE32_TO_CPU(sb->s_block_count); - return ped_geometry_new(geom->dev, geom->start, - block_size * block_count); - } - } - return NULL; -} - - -static PedFileSystemOps reiserfs_simple_ops = { - probe: reiserfs_probe, -}; - -static PedFileSystemType reiserfs_simple_type = { - next: NULL, - ops: &reiserfs_simple_ops, - name: "reiserfs", -}; - -void ped_file_system_reiserfs_init() -{ - reiserfs_type = &reiserfs_simple_type; - ped_file_system_type_register(reiserfs_type); -} - -void ped_file_system_reiserfs_done() -{ - ped_file_system_type_unregister(reiserfs_type); -} diff --git a/jni/parted/libparted/fs/reiserfs/reiserfs.h b/jni/parted/libparted/fs/reiserfs/reiserfs.h deleted file mode 100755 index ee92b62..0000000 --- a/jni/parted/libparted/fs/reiserfs/reiserfs.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef REISERFS_H -#define REISERFS_H - -#define REISERFS_API_VERSION 0 - -#define REISERFS_SIGNATURE "ReIsErFs" -#define REISER2FS_SIGNATURE "ReIsEr2Fs" -#define REISER3FS_SIGNATURE "ReIsEr3Fs" - -#define DEFAULT_BLOCK_SIZE 4096 - -struct reiserfs_super_block { - uint32_t s_block_count; - uint32_t s_free_blocks; - uint32_t s_root_block; - uint32_t s_journal_block; - uint32_t s_journal_dev; - uint32_t s_orig_journal_size; - uint32_t s_journal_trans_max; - uint32_t s_journal_block_count; - uint32_t s_journal_max_batch; - uint32_t s_journal_max_commit_age; - uint32_t s_journal_max_trans_age; - uint16_t s_blocksize; - uint16_t s_oid_maxsize; - uint16_t s_oid_cursize; - uint16_t s_state; - char s_magic[10]; - uint16_t s_fsck_state; - uint32_t s_hash_function_code; - uint16_t s_tree_height; - uint16_t s_bmap_nr; - uint16_t s_version; - char padding[438]; -}; - -typedef struct reiserfs_super_block reiserfs_super_block_t; - -enum reiserfs_exception_type { - EXCEPTION_INFORMATION = 1, - EXCEPTION_WARNING = 2, - EXCEPTION_ERROR = 3, - EXCEPTION_FATAL = 4, - EXCEPTION_BUG = 5, - EXCEPTION_NO_FEATURE = 6 -}; - -typedef enum reiserfs_exception_type reiserfs_exception_type_t; - -enum reiserfs_exception_option { - EXCEPTION_UNHANDLED = 1 << 0, - EXCEPTION_FIX = 1 << 1, - EXCEPTION_YES = 1 << 2, - EXCEPTION_NO = 1 << 3, - EXCEPTION_OK = 1 << 4, - EXCEPTION_RETRY = 1 << 5, - EXCEPTION_IGNORE = 1 << 6, - EXCEPTION_CANCEL = 1 << 7 -}; - -typedef enum reiserfs_exception_option reiserfs_exception_option_t; - -typedef void (reiserfs_gauge_handler_t)(const char *, unsigned int, void *, int, int, int); - -typedef void * reiserfs_exception_t; -typedef void * reiserfs_gauge_t; -typedef void * reiserfs_fs_t; - -#define FS_FORMAT_3_5 0 -#define FS_FORMAT_3_6 2 - -#define SUPER_OFFSET_IN_BYTES 64*1024 - -#define DEFAULT_JOURNAL_SIZE 8192 - -#define JOURNAL_MIN_SIZE 512 -#define JOURNAL_MIN_TRANS 256 -#define JOURNAL_MAX_TRANS 1024 - -#define JOURNAL_DEF_RATIO 8 -#define JOURNAL_MIN_RATIO 2 -#define JOURNAL_MAX_BATCH 900 -#define JOURNAL_MAX_COMMIT_AGE 30 -#define JOURNAL_MAX_TRANS_AGE 30 - -#define TEA_HASH 1 -#define YURA_HASH 2 -#define R5_HASH 3 - -#endif diff --git a/jni/parted/libparted/fs/udf/udf.c b/jni/parted/libparted/fs/udf/udf.c deleted file mode 100755 index a48a42e..0000000 --- a/jni/parted/libparted/fs/udf/udf.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2018-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include - -/* Read bytes using ped_geometry_read() function */ -static int read_bytes (const PedGeometry* geom, void* buffer, PedSector offset, PedSector count) -{ - char* sector_buffer; - PedSector sector_offset, sector_count, buffer_offset; - - sector_offset = offset / geom->dev->sector_size; - sector_count = (offset + count + geom->dev->sector_size - 1) / geom->dev->sector_size - sector_offset; - buffer_offset = offset - sector_offset * geom->dev->sector_size; - - sector_buffer = alloca (sector_count * geom->dev->sector_size); - - if (!ped_geometry_read (geom, sector_buffer, sector_offset, sector_count)) - return 0; - - memcpy (buffer, sector_buffer + buffer_offset, count); - return 1; -} - -/* Scan VSR and check for UDF VSD */ -static int check_vrs (const PedGeometry* geom, unsigned int vsdsize) -{ - PedSector block; - PedSector offset; - unsigned char ident[5]; - - /* Check only first 64 blocks, but theoretically standard does not define upper limit */ - for (block = 0; block < 64; block++) { - /* VRS starts at fixed offset 32kB, it is independent of block size or vsd size */ - offset = 32768 + block * vsdsize; - - /* Read VSD identifier, it is at offset 1 */ - if (!read_bytes (geom, ident, offset + 1, 5)) - return 0; - - /* Check for UDF identifier */ - if (memcmp (ident, "NSR02", 5) == 0 || - memcmp (ident, "NSR03", 5) == 0) - return 1; - - /* Unknown VSD identifier means end of VRS */ - if (memcmp (ident, "BEA01", 5) != 0 && - memcmp (ident, "TEA01", 5) != 0 && - memcmp (ident, "BOOT2", 5) != 0 && - memcmp (ident, "CD001", 5) != 0 && - memcmp (ident, "CDW02", 5) != 0) - break; - } - - return 0; -} - -/* Check for UDF AVDP */ -static int check_anchor (const PedGeometry* geom, unsigned int blocksize, int rel_block) -{ - PedSector block; - unsigned char tag[16]; - - /* Negative block means relative to the end of device */ - if (rel_block < 0) { - block = geom->length * geom->dev->sector_size / blocksize; - if (block <= (PedSector)(-rel_block)) - return 0; - block -= (PedSector)(-rel_block); - if (block < 257) - return 0; - } else { - block = rel_block; - } - - if (!read_bytes (geom, tag, block * blocksize, 16)) - return 0; - - /* Check for AVDP type (0x0002) */ - if (((unsigned short)tag[0] | ((unsigned short)tag[1] << 8)) != 0x0002) - return 0; - - /* Check that location stored in AVDP matches */ - if (((unsigned long)tag[12] | ((unsigned long)tag[13] << 8) | ((unsigned long)tag[14] << 16) | ((unsigned long)tag[15] << 24)) != block) - return 0; - - return 1; -} - -/* Detect presence of UDF AVDP */ -static int detect_anchor(const PedGeometry* geom, unsigned int blocksize) -{ - /* All possible AVDP locations in preferred order */ - static int anchors[] = { 256, -257, -1, 512 }; - size_t i; - - for (i = 0; i < sizeof (anchors)/sizeof (*anchors); i++) { - if (check_anchor (geom, blocksize, anchors[i])) - return 1; - } - - return 0; -} - -/* Detect UDF filesystem, it must have VRS and AVDP */ -static int detect_udf (const PedGeometry* geom) -{ - unsigned int blocksize; - - /* VSD size is min(2048, UDF block size), check for block sizes <= 2048 */ - if (check_vrs (geom, 2048)) { - for (blocksize = 512; blocksize <= 2048; blocksize *= 2) { - if (detect_anchor (geom, blocksize)) - return 1; - } - } - - /* Check for block sizes larger then 2048, maximal theoretical block size is 32kB */ - for (blocksize = 4096; blocksize <= 32768; blocksize *= 2) { - if (!check_vrs (geom, blocksize)) - continue; - if (detect_anchor (geom, blocksize)) - return 1; - } - - return 0; -} - -PedGeometry* -udf_probe (PedGeometry* geom) -{ - if (!detect_udf (geom)) - return NULL; - - return ped_geometry_duplicate (geom); -} - -static PedFileSystemOps udf_ops = { - probe: udf_probe, -}; - -static PedFileSystemType udf_type = { - next: NULL, - ops: &udf_ops, - name: "udf", -}; - -void -ped_file_system_udf_init () -{ - ped_file_system_type_register (&udf_type); -} - -void -ped_file_system_udf_done () -{ - ped_file_system_type_unregister (&udf_type); -} diff --git a/jni/parted/libparted/fs/ufs/ufs.c b/jni/parted/libparted/fs/ufs/ufs.c deleted file mode 100755 index d2bf421..0000000 --- a/jni/parted/libparted/fs/ufs/ufs.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2001, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . - - Contributor: Ben Collins -*/ - -#include - -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include - -/* taken from ufs_fs.h in Linux */ -#define UFS_MAXNAMLEN 255 -#define UFS_MAXMNTLEN 512 -#define UFS_MAXCSBUFS 31 -#define UFS_LINK_MAX 32000 - -#define UFS_MAGIC 0x00011954 -#define UFS_MAGIC_LFN 0x00095014 -#define UFS_MAGIC_FEA 0x00195612 -#define UFS_MAGIC_4GB 0x05231994 - -struct __attribute__ ((packed)) ufs_csum { - uint32_t cs_ndir; /* number of directories */ - uint32_t cs_nbfree; /* number of free blocks */ - uint32_t cs_nifree; /* number of free inodes */ - uint32_t cs_nffree; /* number of free frags */ -}; - -struct __attribute__ ((packed)) ufs_super_block { - uint32_t fs_link; /* UNUSED */ - uint32_t fs_rlink; /* UNUSED */ - uint32_t fs_sblkno; /* addr of super-block in filesys */ - uint32_t fs_cblkno; /* offset of cyl-block in filesys */ - uint32_t fs_iblkno; /* offset of inode-blocks in filesys */ - uint32_t fs_dblkno; /* offset of first data after cg */ - uint32_t fs_cgoffset; /* cylinder group offset in cylinder */ - uint32_t fs_cgmask; /* used to calc mod fs_ntrak */ - uint32_t fs_time; /* last time written -- time_t */ - uint32_t fs_size; /* number of blocks in fs */ - uint32_t fs_dsize; /* number of data blocks in fs */ - uint32_t fs_ncg; /* number of cylinder groups */ - uint32_t fs_bsize; /* size of basic blocks in fs */ - uint32_t fs_fsize; /* size of frag blocks in fs */ - uint32_t fs_frag; /* number of frags in a block in fs */ -/* these are configuration parameters */ - uint32_t fs_minfree; /* minimum percentage of free blocks */ - uint32_t fs_rotdelay; /* num of ms for optimal next block */ - uint32_t fs_rps; /* disk revolutions per second */ -/* these fields can be computed from the others */ - uint32_t fs_bmask; /* ``blkoff'' calc of blk offsets */ - uint32_t fs_fmask; /* ``fragoff'' calc of frag offsets */ - uint32_t fs_bshift; /* ``lblkno'' calc of logical blkno */ - uint32_t fs_fshift; /* ``numfrags'' calc number of frags */ -/* these are configuration parameters */ - uint32_t fs_maxcontig; /* max number of contiguous blks */ - uint32_t fs_maxbpg; /* max number of blks per cyl group */ -/* these fields can be computed from the others */ - uint32_t fs_fragshift; /* block to frag shift */ - uint32_t fs_fsbtodb; /* fsbtodb and dbtofsb shift constant */ - uint32_t fs_sbsize; /* actual size of super block */ - uint32_t fs_csmask; /* csum block offset */ - uint32_t fs_csshift; /* csum block number */ - uint32_t fs_nindir; /* value of NINDIR */ - uint32_t fs_inopb; /* value of INOPB */ - uint32_t fs_nspf; /* value of NSPF */ -/* yet another configuration parameter */ - uint32_t fs_optim; /* optimization preference, see below */ -/* these fields are derived from the hardware */ - union { - struct { - uint32_t fs_npsect; /* # sectors/track including spares */ - } fs_sun; - struct { - int32_t fs_state; /* file system state timestamp */ - } fs_sunx86; - } fs_u1; - uint32_t fs_interleave; /* hardware sector interleave */ - uint32_t fs_trackskew; /* sector 0 skew, per track */ -/* a unique id for this file system (currently unused and unmaintained) */ -/* In 4.3 Tahoe this space is used by fs_headswitch and fs_trkseek */ -/* Neither of those fields is used in the Tahoe code right now but */ -/* there could be problems if they are. */ - uint32_t fs_id[2]; /* file system id */ -/* sizes determined by number of cylinder groups and their sizes */ - uint32_t fs_csaddr; /* blk addr of cyl grp summary area */ - uint32_t fs_cssize; /* size of cyl grp summary area */ - uint32_t fs_cgsize; /* cylinder group size */ -/* these fields are derived from the hardware */ - uint32_t fs_ntrak; /* tracks per cylinder */ - uint32_t fs_nsect; /* sectors per track */ - uint32_t fs_spc; /* sectors per cylinder */ -/* this comes from the disk driver partitioning */ - uint32_t fs_ncyl; /* cylinders in file system */ -/* these fields can be computed from the others */ - uint32_t fs_cpg; /* cylinders per group */ - uint32_t fs_ipg; /* inodes per group */ - uint32_t fs_fpg; /* blocks per group * fs_frag */ -/* this data must be re-computed after crashes */ - struct ufs_csum fs_cstotal; /* cylinder summary information */ -/* these fields are cleared at mount time */ - int8_t fs_fmod; /* super block modified flag */ - int8_t fs_clean; /* file system is clean flag */ - int8_t fs_ronly; /* mounted read-only flag */ - int8_t fs_flags; /* currently unused flag */ - int8_t fs_fsmnt[UFS_MAXMNTLEN]; /* name mounted on */ -/* these fields retain the current block allocation info */ - uint32_t fs_cgrotor; /* last cg searched */ - uint32_t fs_csp[UFS_MAXCSBUFS]; /* list of fs_cs info buffers */ - uint32_t fs_maxcluster; - uint32_t fs_cpc; /* cyl per cycle in postbl */ - uint16_t fs_opostbl[16][8]; /* old rotation block list head */ - union { - struct { - int32_t fs_sparecon[53];/* reserved for future constants */ - int32_t fs_reclaim; - int32_t fs_sparecon2[1]; - int32_t fs_state; /* file system state timestamp */ - uint32_t fs_qbmask[2]; /* ~usb_bmask */ - uint32_t fs_qfmask[2]; /* ~usb_fmask */ - } fs_sun; - struct { - int32_t fs_sparecon[53];/* reserved for future constants */ - int32_t fs_reclaim; - int32_t fs_sparecon2[1]; - uint32_t fs_npsect; /* # sectors/track including spares */ - uint32_t fs_qbmask[2]; /* ~usb_bmask */ - uint32_t fs_qfmask[2]; /* ~usb_fmask */ - } fs_sunx86; - struct { - int32_t fs_sparecon[50];/* reserved for future constants */ - int32_t fs_contigsumsize;/* size of cluster summary array */ - int32_t fs_maxsymlinklen;/* max length of an internal symlink */ - int32_t fs_inodefmt; /* format of on-disk inodes */ - uint32_t fs_maxfilesize[2]; /* max representable file size */ - uint32_t fs_qbmask[2]; /* ~usb_bmask */ - uint32_t fs_qfmask[2]; /* ~usb_fmask */ - int32_t fs_state; /* file system state timestamp */ - } fs_44; - } fs_u2; - int32_t fs_postblformat; /* format of positional layout tables */ - int32_t fs_nrpos; /* number of rotational positions */ - int32_t fs_postbloff; /* (__s16) rotation block list head */ - int32_t fs_rotbloff; /* (uint8_t) blocks for each rotation */ - int32_t fs_magic; /* magic number */ - uint8_t fs_space[4]; /* list of blocks for each rotation */ -}; - -static PedGeometry* -ufs_probe_sun (PedGeometry* geom) -{ - const int sectors = ((3 * 512) + geom->dev->sector_size - 1) / - geom->dev->sector_size; - uint8_t* buf = alloca (sectors * geom->dev->sector_size); - struct ufs_super_block *sb; - - if (geom->length < 5) - return 0; - if (!ped_geometry_read (geom, buf, 16 * 512 / geom->dev->sector_size, sectors)) - return 0; - - sb = (struct ufs_super_block *)buf; - - if (PED_BE32_TO_CPU(sb->fs_magic) == UFS_MAGIC) { - PedSector block_size = PED_BE32_TO_CPU(sb->fs_bsize) / geom->dev->sector_size; - PedSector block_count = PED_BE32_TO_CPU(sb->fs_size); - return ped_geometry_new (geom->dev, geom->start, - block_size * block_count); - } - if (PED_LE32_TO_CPU(sb->fs_magic) == UFS_MAGIC) { - PedSector block_size = PED_LE32_TO_CPU(sb->fs_bsize) / geom->dev->sector_size; - PedSector block_count = PED_LE32_TO_CPU(sb->fs_size); - return ped_geometry_new (geom->dev, geom->start, - block_size * block_count); - } - return NULL; -} - -static PedGeometry* -ufs_probe_hp (PedGeometry* geom) -{ - struct ufs_super_block *sb; - PedSector block_size; - PedSector block_count; - - if (geom->length < 5) - return 0; - const int sectors = ((3 * 512) + geom->dev->sector_size - 1) / - geom->dev->sector_size; - uint8_t* buf = alloca (sectors * geom->dev->sector_size); - - if (!ped_geometry_read (geom, buf, 16 * 512 / geom->dev->sector_size, sectors)) - return 0; - - sb = (struct ufs_super_block *)buf; - - /* Try sane bytesex */ - switch (PED_BE32_TO_CPU(sb->fs_magic)) { - case UFS_MAGIC_LFN: - case UFS_MAGIC_FEA: - case UFS_MAGIC_4GB: - block_size = PED_BE32_TO_CPU(sb->fs_bsize) / geom->dev->sector_size; - block_count = PED_BE32_TO_CPU(sb->fs_size); - return ped_geometry_new (geom->dev, geom->start, - block_size * block_count); - } - - /* Try perverted bytesex */ - switch (PED_LE32_TO_CPU(sb->fs_magic)) { - case UFS_MAGIC_LFN: - case UFS_MAGIC_FEA: - case UFS_MAGIC_4GB: - block_size = PED_LE32_TO_CPU(sb->fs_bsize) / geom->dev->sector_size; - block_count = PED_LE32_TO_CPU(sb->fs_size); - return ped_geometry_new (geom->dev, geom->start, - block_size * block_count); - } - return NULL; -} - -static PedFileSystemOps ufs_ops_sun = { - probe: ufs_probe_sun, -}; - -static PedFileSystemOps ufs_ops_hp = { - probe: ufs_probe_hp, -}; - -static PedFileSystemType ufs_type_sun = { - next: NULL, - ops: &ufs_ops_sun, - name: "sun-ufs", -}; - -static PedFileSystemType ufs_type_hp = { - next: NULL, - ops: &ufs_ops_hp, - name: "hp-ufs", -}; - -void -ped_file_system_ufs_init () -{ - PED_ASSERT (sizeof (struct ufs_super_block) == 1380); - - ped_file_system_type_register (&ufs_type_sun); - ped_file_system_type_register (&ufs_type_hp); -} - -void -ped_file_system_ufs_done () -{ - ped_file_system_type_unregister (&ufs_type_hp); - ped_file_system_type_unregister (&ufs_type_sun); -} diff --git a/jni/parted/libparted/fs/xfs/platform_defs.h b/jni/parted/libparted/fs/xfs/platform_defs.h deleted file mode 100755 index a6ec8fb..0000000 --- a/jni/parted/libparted/fs/xfs/platform_defs.h +++ /dev/null @@ -1,109 +0,0 @@ -/* include/platform_defs.h. Generated automatically by configure. */ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 3 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ - * - * @configure_input@ - */ -#ifndef __XFS_PLATFORM_DEFS_H__ -#define __XFS_PLATFORM_DEFS_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if (__GLIBC__ <= 2) && (__GLIBC_MINOR__ <= 1) -# define constpp const char * const * -#else -# define constpp char * const * -#endif - -typedef loff_t xfs_off_t; -typedef uint64_t xfs_ino_t; -typedef uint32_t xfs_dev_t; -typedef int64_t xfs_daddr_t; -typedef char* xfs_caddr_t; - -/* long and pointer must be either 32 bit or 64 bit */ -/* #undef HAVE_64BIT_LONG */ -#define HAVE_32BIT_LONG 1 -#define HAVE_32BIT_PTR 1 -/* #undef HAVE_64BIT_PTR */ - -/* Check if __psint_t is set to something meaningful */ -/* #undef HAVE___PSINT_T */ -#ifndef HAVE___PSINT_T -# ifdef HAVE_32BIT_PTR -typedef int __psint_t; -# elif defined HAVE_64BIT_PTR -# ifdef HAVE_64BIT_LONG -typedef long __psint_t; -# else -/* This is a very strange architecture, which has 64 bit pointers but - * not 64 bit longs. So, I'd just punt here and assume long long is Ok */ -typedef long long __psint_t; -# endif -# else -# error Unknown pointer size -# endif -#endif - -/* Check if __psunsigned_t is set to something meaningful */ -/* #undef HAVE___PSUNSIGNED_T */ -#ifndef HAVE___PSUNSIGNED_T -# ifdef HAVE_32BIT_PTR -typedef unsigned int __psunsigned_t; -# elif defined HAVE_64BIT_PTR -# ifdef HAVE_64BIT_LONG -typedef long __psunsigned_t; -# else -/* This is a very strange architecture, which has 64 bit pointers but - * not 64 bit longs. So, I'd just punt here and assume long long is Ok */ -typedef unsigned long long __psunsigned_t; -# endif -# else -# error Unknown pointer size -# endif -#endif - -#ifdef DEBUG -# define ASSERT assert -#else -# define ASSERT(EX) ((void) 0) -#endif - -#endif /* __XFS_PLATFORM_DEFS_H__ */ diff --git a/jni/parted/libparted/fs/xfs/xfs.c b/jni/parted/libparted/fs/xfs/xfs.c deleted file mode 100755 index f5cf96a..0000000 --- a/jni/parted/libparted/fs/xfs/xfs.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2001, 2009-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include "platform_defs.h" -#include "xfs_types.h" -#include "xfs_sb.h" - -static PedGeometry* -xfs_probe (PedGeometry* geom) -{ - PedSector block_size; - PedSector block_count; - struct xfs_sb *sb = alloca (geom->dev->sector_size); - - if (geom->length < XFS_SB_DADDR + 1) - return NULL; - if (!ped_geometry_read (geom, sb, XFS_SB_DADDR, 1)) - return NULL; - - if (PED_LE32_TO_CPU (sb->sb_magicnum) == XFS_SB_MAGIC) { - block_size = PED_LE32_TO_CPU (sb->sb_blocksize) / geom->dev->sector_size; - block_count = PED_LE64_TO_CPU (sb->sb_dblocks); - - return ped_geometry_new (geom->dev, geom->start, - block_size * block_count); - } - - if (PED_BE32_TO_CPU (sb->sb_magicnum) == XFS_SB_MAGIC) { - block_size = PED_BE32_TO_CPU (sb->sb_blocksize) / geom->dev->sector_size; - block_count = PED_BE64_TO_CPU (sb->sb_dblocks); - - geom = ped_geometry_new (geom->dev, geom->start, - block_size * block_count); - return geom; - } - return NULL; -} - -static PedFileSystemOps xfs_ops = { - probe: xfs_probe, -}; - -static PedFileSystemType xfs_type = { - next: NULL, - ops: &xfs_ops, - name: "xfs", -}; - -void -ped_file_system_xfs_init () -{ - ped_file_system_type_register (&xfs_type); -} - -void -ped_file_system_xfs_done () -{ - ped_file_system_type_unregister (&xfs_type); -} diff --git a/jni/parted/libparted/fs/xfs/xfs_sb.h b/jni/parted/libparted/fs/xfs/xfs_sb.h deleted file mode 100755 index 3484145..0000000 --- a/jni/parted/libparted/fs/xfs/xfs_sb.h +++ /dev/null @@ -1,489 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 3 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ - */ -#ifndef __XFS_SB_H__ -#define __XFS_SB_H__ - -/* - * Super block - * Fits into a 512-byte buffer at daddr_t 0 of each allocation group. - * Only the first of these is ever updated except during growfs. - */ - -struct xfs_buf; -struct xfs_mount; - -#define XFS_SB_MAGIC 0x58465342 /* 'XFSB' */ -#define XFS_SB_VERSION_1 1 /* 5.3, 6.0.1, 6.1 */ -#define XFS_SB_VERSION_2 2 /* 6.2 - attributes */ -#define XFS_SB_VERSION_3 3 /* 6.2 - new inode version */ -#define XFS_SB_VERSION_4 4 /* 6.2+ - bitmask version */ -#define XFS_SB_VERSION_NUMBITS 0x000f -#define XFS_SB_VERSION_ALLFBITS 0xfff0 -#define XFS_SB_VERSION_SASHFBITS 0xf000 -#define XFS_SB_VERSION_REALFBITS 0x0ff0 -#define XFS_SB_VERSION_ATTRBIT 0x0010 -#define XFS_SB_VERSION_NLINKBIT 0x0020 -#define XFS_SB_VERSION_QUOTABIT 0x0040 -#define XFS_SB_VERSION_ALIGNBIT 0x0080 -#define XFS_SB_VERSION_DALIGNBIT 0x0100 -#define XFS_SB_VERSION_SHAREDBIT 0x0200 -#define XFS_SB_VERSION_EXTFLGBIT 0x1000 -#define XFS_SB_VERSION_DIRV2BIT 0x2000 -#define XFS_SB_VERSION_OKSASHFBITS \ - (XFS_SB_VERSION_EXTFLGBIT | \ - XFS_SB_VERSION_DIRV2BIT) -#define XFS_SB_VERSION_OKREALFBITS \ - (XFS_SB_VERSION_ATTRBIT | \ - XFS_SB_VERSION_NLINKBIT | \ - XFS_SB_VERSION_QUOTABIT | \ - XFS_SB_VERSION_ALIGNBIT | \ - XFS_SB_VERSION_DALIGNBIT | \ - XFS_SB_VERSION_SHAREDBIT) -#define XFS_SB_VERSION_OKSASHBITS \ - (XFS_SB_VERSION_NUMBITS | \ - XFS_SB_VERSION_REALFBITS | \ - XFS_SB_VERSION_OKSASHFBITS) -#define XFS_SB_VERSION_OKREALBITS \ - (XFS_SB_VERSION_NUMBITS | \ - XFS_SB_VERSION_OKREALFBITS | \ - XFS_SB_VERSION_OKSASHFBITS) -#define XFS_SB_VERSION_MKFS(ia,dia,extflag,dirv2) \ - (((ia) || (dia) || (extflag) || (dirv2)) ? \ - (XFS_SB_VERSION_4 | \ - ((ia) ? XFS_SB_VERSION_ALIGNBIT : 0) | \ - ((dia) ? XFS_SB_VERSION_DALIGNBIT : 0) | \ - ((extflag) ? XFS_SB_VERSION_EXTFLGBIT : 0) | \ - ((dirv2) ? XFS_SB_VERSION_DIRV2BIT : 0)) : \ - XFS_SB_VERSION_1) - -typedef struct xfs_sb -{ - uint32_t sb_magicnum; /* magic number == XFS_SB_MAGIC */ - uint32_t sb_blocksize; /* logical block size, bytes */ - xfs_drfsbno_t sb_dblocks; /* number of data blocks */ - xfs_drfsbno_t sb_rblocks; /* number of realtime blocks */ - xfs_drtbno_t sb_rextents; /* number of realtime extents */ - uuid_t sb_uuid; /* file system unique id */ - xfs_dfsbno_t sb_logstart; /* starting block of log if internal */ - xfs_ino_t sb_rootino; /* root inode number */ - xfs_ino_t sb_rbmino; /* bitmap inode for realtime extents */ - xfs_ino_t sb_rsumino; /* summary inode for rt bitmap */ - xfs_agblock_t sb_rextsize; /* realtime extent size, blocks */ - xfs_agblock_t sb_agblocks; /* size of an allocation group */ - xfs_agnumber_t sb_agcount; /* number of allocation groups */ - xfs_extlen_t sb_rbmblocks; /* number of rt bitmap blocks */ - xfs_extlen_t sb_logblocks; /* number of log blocks */ - uint16_t sb_versionnum; /* header version == XFS_SB_VERSION */ - uint16_t sb_sectsize; /* volume sector size, bytes */ - uint16_t sb_inodesize; /* inode size, bytes */ - uint16_t sb_inopblock; /* inodes per block */ - char sb_fname[12]; /* file system name */ - uint8_t sb_blocklog; /* log2 of sb_blocksize */ - uint8_t sb_sectlog; /* log2 of sb_sectsize */ - uint8_t sb_inodelog; /* log2 of sb_inodesize */ - uint8_t sb_inopblog; /* log2 of sb_inopblock */ - uint8_t sb_agblklog; /* log2 of sb_agblocks (rounded up) */ - uint8_t sb_rextslog; /* log2 of sb_rextents */ - uint8_t sb_inprogress; /* mkfs is in progress, don't mount */ - uint8_t sb_imax_pct; /* max % of fs for inode space */ - /* statistics */ - /* - * These fields must remain contiguous. If you really - * want to change their layout, make sure you fix the - * code in xfs_trans_apply_sb_deltas(). - */ - uint64_t sb_icount; /* allocated inodes */ - uint64_t sb_ifree; /* free inodes */ - uint64_t sb_fdblocks; /* free data blocks */ - uint64_t sb_frextents; /* free realtime extents */ - /* - * End contiguous fields. - */ - xfs_ino_t sb_uquotino; /* user quota inode */ - xfs_ino_t sb_gquotino; /* group quota inode */ - uint16_t sb_qflags; /* quota flags */ - uint8_t sb_flags; /* misc. flags */ - uint8_t sb_shared_vn; /* shared version number */ - xfs_extlen_t sb_inoalignmt; /* inode chunk alignment, fsblocks */ - uint32_t sb_unit; /* stripe or raid unit */ - uint32_t sb_width; /* stripe or raid width */ - uint8_t sb_dirblklog; /* log2 of dir block size (fsbs) */ - uint8_t sb_dummy[7]; /* padding */ -} xfs_sb_t; - -/* - * Sequence number values for the fields. - */ -typedef enum { - XFS_SBS_MAGICNUM, XFS_SBS_BLOCKSIZE, XFS_SBS_DBLOCKS, XFS_SBS_RBLOCKS, - XFS_SBS_REXTENTS, XFS_SBS_UUID, XFS_SBS_LOGSTART, XFS_SBS_ROOTINO, - XFS_SBS_RBMINO, XFS_SBS_RSUMINO, XFS_SBS_REXTSIZE, XFS_SBS_AGBLOCKS, - XFS_SBS_AGCOUNT, XFS_SBS_RBMBLOCKS, XFS_SBS_LOGBLOCKS, - XFS_SBS_VERSIONNUM, XFS_SBS_SECTSIZE, XFS_SBS_INODESIZE, - XFS_SBS_INOPBLOCK, XFS_SBS_FNAME, XFS_SBS_BLOCKLOG, - XFS_SBS_SECTLOG, XFS_SBS_INODELOG, XFS_SBS_INOPBLOG, XFS_SBS_AGBLKLOG, - XFS_SBS_REXTSLOG, XFS_SBS_INPROGRESS, XFS_SBS_IMAX_PCT, XFS_SBS_ICOUNT, - XFS_SBS_IFREE, XFS_SBS_FDBLOCKS, XFS_SBS_FREXTENTS, XFS_SBS_UQUOTINO, - XFS_SBS_GQUOTINO, XFS_SBS_QFLAGS, XFS_SBS_FLAGS, XFS_SBS_SHARED_VN, - XFS_SBS_INOALIGNMT, XFS_SBS_UNIT, XFS_SBS_WIDTH, XFS_SBS_DIRBLKLOG, - XFS_SBS_DUMMY, - XFS_SBS_FIELDCOUNT -} xfs_sb_field_t; - -/* - * Mask values, defined based on the xfs_sb_field_t values. - * Only define the ones we're using. - */ -#define XFS_SB_MVAL(x) (1LL << XFS_SBS_ ## x) -#define XFS_SB_UUID XFS_SB_MVAL(UUID) -#define XFS_SB_FNAME XFS_SB_MVAL(FNAME) -#define XFS_SB_ROOTINO XFS_SB_MVAL(ROOTINO) -#define XFS_SB_RBMINO XFS_SB_MVAL(RBMINO) -#define XFS_SB_RSUMINO XFS_SB_MVAL(RSUMINO) -#define XFS_SB_VERSIONNUM XFS_SB_MVAL(VERSIONNUM) -#define XFS_SB_UQUOTINO XFS_SB_MVAL(UQUOTINO) -#define XFS_SB_GQUOTINO XFS_SB_MVAL(GQUOTINO) -#define XFS_SB_QFLAGS XFS_SB_MVAL(QFLAGS) -#define XFS_SB_SHARED_VN XFS_SB_MVAL(SHARED_VN) -#define XFS_SB_UNIT XFS_SB_MVAL(UNIT) -#define XFS_SB_WIDTH XFS_SB_MVAL(WIDTH) -#define XFS_SB_NUM_BITS ((int)XFS_SBS_FIELDCOUNT) -#define XFS_SB_ALL_BITS ((1LL << XFS_SB_NUM_BITS) - 1) -#define XFS_SB_MOD_BITS \ - (XFS_SB_UUID | XFS_SB_ROOTINO | XFS_SB_RBMINO | XFS_SB_RSUMINO | \ - XFS_SB_VERSIONNUM | XFS_SB_UQUOTINO | XFS_SB_GQUOTINO | \ - XFS_SB_QFLAGS | XFS_SB_SHARED_VN | XFS_SB_UNIT | XFS_SB_WIDTH) - -/* - * Misc. Flags - warning - these will be cleared by xfs_repair unless - * a feature bit is set when the flag is used. - */ -#define XFS_SBF_NOFLAGS 0x00 /* no flags set */ -#define XFS_SBF_READONLY 0x01 /* only read-only mounts allowed */ - -/* - * define max. shared version we can interoperate with - */ -#define XFS_SB_MAX_SHARED_VN 0 - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_NUM) -int xfs_sb_version_num(xfs_sb_t *sbp); -#define XFS_SB_VERSION_NUM(sbp) xfs_sb_version_num(sbp) -#else -#define XFS_SB_VERSION_NUM(sbp) ((sbp)->sb_versionnum & XFS_SB_VERSION_NUMBITS) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_GOOD_VERSION) -int xfs_sb_good_version(xfs_sb_t *sbp); -#define XFS_SB_GOOD_VERSION(sbp) xfs_sb_good_version(sbp) -#else -#define XFS_SB_GOOD_VERSION_INT(sbp) \ - ((((sbp)->sb_versionnum >= XFS_SB_VERSION_1) && \ - ((sbp)->sb_versionnum <= XFS_SB_VERSION_3)) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - !((sbp)->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) -#ifdef __KERNEL__ -#define XFS_SB_GOOD_VERSION(sbp) \ - (XFS_SB_GOOD_VERSION_INT(sbp) && \ - (sbp)->sb_shared_vn <= XFS_SB_MAX_SHARED_VN) )) -#else -/* - * extra 2 paren's here (( to unconfuse paren-matching editors - * like vi because XFS_SB_GOOD_VERSION_INT is a partial expression - * and the two XFS_SB_GOOD_VERSION's each 2 more close paren's to - * complete the expression. - */ -#define XFS_SB_GOOD_VERSION(sbp) \ - (XFS_SB_GOOD_VERSION_INT(sbp) && \ - (!((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) || \ - (sbp)->sb_shared_vn <= XFS_SB_MAX_SHARED_VN)) )) -#endif /* __KERNEL__ */ -#endif - -#define XFS_SB_GOOD_SASH_VERSION(sbp) \ - ((((sbp)->sb_versionnum >= XFS_SB_VERSION_1) && \ - ((sbp)->sb_versionnum <= XFS_SB_VERSION_3)) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - !((sbp)->sb_versionnum & ~XFS_SB_VERSION_OKSASHBITS))) - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_TONEW) -unsigned xfs_sb_version_tonew(unsigned v); -#define XFS_SB_VERSION_TONEW(v) xfs_sb_version_tonew(v) -#else -#define XFS_SB_VERSION_TONEW(v) \ - ((((v) == XFS_SB_VERSION_1) ? \ - 0 : \ - (((v) == XFS_SB_VERSION_2) ? \ - XFS_SB_VERSION_ATTRBIT : \ - (XFS_SB_VERSION_ATTRBIT | XFS_SB_VERSION_NLINKBIT))) | \ - XFS_SB_VERSION_4) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_TOOLD) -unsigned xfs_sb_version_toold(unsigned v); -#define XFS_SB_VERSION_TOOLD(v) xfs_sb_version_toold(v) -#else -#define XFS_SB_VERSION_TOOLD(v) \ - (((v) & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) ? \ - 0 : \ - (((v) & XFS_SB_VERSION_NLINKBIT) ? \ - XFS_SB_VERSION_3 : \ - (((v) & XFS_SB_VERSION_ATTRBIT) ? \ - XFS_SB_VERSION_2 : \ - XFS_SB_VERSION_1))) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASATTR) -int xfs_sb_version_hasattr(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASATTR(sbp) xfs_sb_version_hasattr(sbp) -#else -#define XFS_SB_VERSION_HASATTR(sbp) \ - (((sbp)->sb_versionnum == XFS_SB_VERSION_2) || \ - ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_ATTRBIT))) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDATTR) -void xfs_sb_version_addattr(xfs_sb_t *sbp); -#define XFS_SB_VERSION_ADDATTR(sbp) xfs_sb_version_addattr(sbp) -#else -#define XFS_SB_VERSION_ADDATTR(sbp) \ - ((sbp)->sb_versionnum = \ - (((sbp)->sb_versionnum == XFS_SB_VERSION_1) ? \ - XFS_SB_VERSION_2 : \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) ? \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_ATTRBIT) : \ - (XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT)))) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASNLINK) -int xfs_sb_version_hasnlink(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASNLINK(sbp) xfs_sb_version_hasnlink(sbp) -#else -#define XFS_SB_VERSION_HASNLINK(sbp) \ - (((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_NLINKBIT))) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDNLINK) -void xfs_sb_version_addnlink(xfs_sb_t *sbp); -#define XFS_SB_VERSION_ADDNLINK(sbp) xfs_sb_version_addnlink(sbp) -#else -#define XFS_SB_VERSION_ADDNLINK(sbp) \ - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum <= XFS_SB_VERSION_2 ? \ - XFS_SB_VERSION_3 : \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_NLINKBIT))) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASQUOTA) -int xfs_sb_version_hasquota(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASQUOTA(sbp) xfs_sb_version_hasquota(sbp) -#else -#define XFS_SB_VERSION_HASQUOTA(sbp) \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_QUOTABIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDQUOTA) -void xfs_sb_version_addquota(xfs_sb_t *sbp); -#define XFS_SB_VERSION_ADDQUOTA(sbp) xfs_sb_version_addquota(sbp) -#else -#define XFS_SB_VERSION_ADDQUOTA(sbp) \ - ((sbp)->sb_versionnum = \ - (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 ? \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_QUOTABIT) : \ - (XFS_SB_VERSION_TONEW((sbp)->sb_versionnum) | \ - XFS_SB_VERSION_QUOTABIT))) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASALIGN) -int xfs_sb_version_hasalign(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASALIGN(sbp) xfs_sb_version_hasalign(sbp) -#else -#define XFS_SB_VERSION_HASALIGN(sbp) \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_ALIGNBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_SUBALIGN) -void xfs_sb_version_subalign(xfs_sb_t *sbp); -#define XFS_SB_VERSION_SUBALIGN(sbp) xfs_sb_version_subalign(sbp) -#else -#define XFS_SB_VERSION_SUBALIGN(sbp) \ - ((sbp)->sb_versionnum = \ - XFS_SB_VERSION_TOOLD((sbp)->sb_versionnum & ~XFS_SB_VERSION_ALIGNBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASDALIGN) -int xfs_sb_version_hasdalign(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASDALIGN(sbp) xfs_sb_version_hasdalign(sbp) -#else -#define XFS_SB_VERSION_HASDALIGN(sbp) \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_DALIGNBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDDALIGN) -int xfs_sb_version_adddalign(xfs_sb_t *sbp); -#define XFS_SB_VERSION_ADDDALIGN(sbp) xfs_sb_version_adddalign(sbp) -#else -#define XFS_SB_VERSION_ADDDALIGN(sbp) \ - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_DALIGNBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASSHARED) -int xfs_sb_version_hasshared(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASSHARED(sbp) xfs_sb_version_hasshared(sbp) -#else -#define XFS_SB_VERSION_HASSHARED(sbp) \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDSHARED) -int xfs_sb_version_addshared(xfs_sb_t *sbp); -#define XFS_SB_VERSION_ADDSHARED(sbp) xfs_sb_version_addshared(sbp) -#else -#define XFS_SB_VERSION_ADDSHARED(sbp) \ - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_SHAREDBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_SUBSHARED) -int xfs_sb_version_subshared(xfs_sb_t *sbp); -#define XFS_SB_VERSION_SUBSHARED(sbp) xfs_sb_version_subshared(sbp) -#else -#define XFS_SB_VERSION_SUBSHARED(sbp) \ - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum & ~XFS_SB_VERSION_SHAREDBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASDIRV2) -int xfs_sb_version_hasdirv2(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASDIRV2(sbp) xfs_sb_version_hasdirv2(sbp) -#else -#define XFS_SB_VERSION_HASDIRV2(sbp) \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_DIRV2BIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_HASEXTFLGBIT) -int xfs_sb_version_hasextflgbit(xfs_sb_t *sbp); -#define XFS_SB_VERSION_HASEXTFLGBIT(sbp) xfs_sb_version_hasextflgbit(sbp) -#else -#define XFS_SB_VERSION_HASEXTFLGBIT(sbp) \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_ADDEXTFLGBIT) -int xfs_sb_version_addextflgbit(xfs_sb_t *sbp); -#define XFS_SB_VERSION_ADDEXTFLGBIT(sbp) xfs_sb_version_addextflgbit(sbp) -#else -#define XFS_SB_VERSION_ADDEXTFLGBIT(sbp) \ - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_EXTFLGBIT)) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_VERSION_SUBEXTFLGBIT) -int xfs_sb_version_subextflgbit(xfs_sb_t *sbp); -#define XFS_SB_VERSION_SUBEXTFLGBIT(sbp) xfs_sb_version_subextflgbit(sbp) -#else -#define XFS_SB_VERSION_SUBEXTFLGBIT(sbp) \ - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum & ~XFS_SB_VERSION_EXTFLGBIT)) -#endif - -/* - * end of superblock version macros - */ - -#define XFS_SB_DADDR ((xfs_daddr_t)0) /* daddr in file system/ag */ -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_SB_BLOCK) -xfs_agblock_t xfs_sb_block(struct xfs_mount *mp); -#define XFS_SB_BLOCK(mp) xfs_sb_block(mp) -#else -#define XFS_SB_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_SB_DADDR) -#endif - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_HDR_BLOCK) -xfs_agblock_t xfs_hdr_block(struct xfs_mount *mp, xfs_daddr_t d); -#define XFS_HDR_BLOCK(mp,d) xfs_hdr_block(mp,d) -#else -#define XFS_HDR_BLOCK(mp,d) ((xfs_agblock_t)(XFS_BB_TO_FSBT(mp,d))) -#endif -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_DADDR_TO_FSB) -xfs_fsblock_t xfs_daddr_to_fsb(struct xfs_mount *mp, xfs_daddr_t d); -#define XFS_DADDR_TO_FSB(mp,d) xfs_daddr_to_fsb(mp,d) -#else -#define XFS_DADDR_TO_FSB(mp,d) \ - XFS_AGB_TO_FSB(mp, XFS_DADDR_TO_AGNO(mp,d), XFS_DADDR_TO_AGBNO(mp,d)) -#endif -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_FSB_TO_DADDR) -xfs_daddr_t xfs_fsb_to_daddr(struct xfs_mount *mp, xfs_fsblock_t fsbno); -#define XFS_FSB_TO_DADDR(mp,fsbno) xfs_fsb_to_daddr(mp,fsbno) -#else -#define XFS_FSB_TO_DADDR(mp,fsbno) \ - XFS_AGB_TO_DADDR(mp, XFS_FSB_TO_AGNO(mp,fsbno), \ - XFS_FSB_TO_AGBNO(mp,fsbno)) -#endif - -/* - * File system block to basic block conversions. - */ -#define XFS_FSB_TO_BB(mp,fsbno) ((fsbno) << (mp)->m_blkbb_log) -#define XFS_BB_TO_FSB(mp,bb) \ - (((bb) + (XFS_FSB_TO_BB(mp,1) - 1)) >> (mp)->m_blkbb_log) -#define XFS_BB_TO_FSBT(mp,bb) ((bb) >> (mp)->m_blkbb_log) -#define XFS_BB_FSB_OFFSET(mp,bb) ((bb) & ((mp)->m_bsize - 1)) - -/* - * File system block to byte conversions. - */ -#define XFS_FSB_TO_B(mp,fsbno) ((xfs_fsize_t)(fsbno) << \ - (mp)->m_sb.sb_blocklog) -#define XFS_B_TO_FSB(mp,b) \ - ((((uint64_t)(b)) + (mp)->m_blockmask) >> (mp)->m_sb.sb_blocklog) -#define XFS_B_TO_FSBT(mp,b) (((uint64_t)(b)) >> (mp)->m_sb.sb_blocklog) -#define XFS_B_FSB_OFFSET(mp,b) ((b) & (mp)->m_blockmask) - -#if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_BUF_TO_SBP) -xfs_sb_t *xfs_buf_to_sbp(struct xfs_buf *bp); -#define XFS_BUF_TO_SBP(bp) xfs_buf_to_sbp(bp) -#else -#define XFS_BUF_TO_SBP(bp) ((xfs_sb_t *)XFS_BUF_PTR(bp)) -#endif - -#endif /* __XFS_SB_H__ */ diff --git a/jni/parted/libparted/fs/xfs/xfs_types.h b/jni/parted/libparted/fs/xfs/xfs_types.h deleted file mode 100755 index 89a0d61..0000000 --- a/jni/parted/libparted/fs/xfs/xfs_types.h +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 3 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ - */ -#ifndef __XFS_TYPES_H__ -#define __XFS_TYPES_H__ - -/* - * Some types are conditional based on the selected configuration. - * Set XFS_BIG_FILES=1 or 0 and XFS_BIG_FILESYSTEMS=1 or 0 depending - * on the desired configuration. - * XFS_BIG_FILES needs pgno_t to be 64 bits (64-bit kernels). - * XFS_BIG_FILESYSTEMS needs daddr_t to be 64 bits (N32 and 64-bit kernels). - * - * Expect these to be set from klocaldefs, or from the machine-type - * defs files for the normal case. - */ - -#define XFS_BIG_FILES 1 -#define XFS_BIG_FILESYSTEMS 1 - -typedef uint32_t xfs_agblock_t; /* blockno in alloc. group */ -typedef uint32_t xfs_extlen_t; /* extent length in blocks */ -typedef uint32_t xfs_agnumber_t; /* allocation group number */ -typedef int32_t xfs_extnum_t; /* # of extents in a file */ -typedef int16_t xfs_aextnum_t; /* # extents in an attribute fork */ -typedef int64_t xfs_fsize_t; /* bytes in a file */ -typedef uint64_t xfs_ufsize_t; /* unsigned bytes in a file */ - -typedef int32_t xfs_suminfo_t; /* type of bitmap summary info */ -typedef int32_t xfs_rtword_t; /* word type for bitmap manipulations */ - -typedef int64_t xfs_lsn_t; /* log sequence number */ -typedef int32_t xfs_tid_t; /* transaction identifier */ - -typedef uint32_t xfs_dablk_t; /* dir/attr block number (in file) */ -typedef uint32_t xfs_dahash_t; /* dir/attr hash value */ - -typedef uint16_t xfs_prid_t; /* prid_t truncated to 16bits in XFS */ - -/* - * These types are 64 bits on disk but are either 32 or 64 bits in memory. - * Disk based types: - */ -typedef uint64_t xfs_dfsbno_t; /* blockno in filesystem (agno|agbno) */ -typedef uint64_t xfs_drfsbno_t; /* blockno in filesystem (raw) */ -typedef uint64_t xfs_drtbno_t; /* extent (block) in realtime area */ -typedef uint64_t xfs_dfiloff_t; /* block number in a file */ -typedef uint64_t xfs_dfilblks_t; /* number of blocks in a file */ - -/* - * Memory based types are conditional. - */ -#if XFS_BIG_FILESYSTEMS -typedef uint64_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */ -typedef uint64_t xfs_rfsblock_t; /* blockno in filesystem (raw) */ -typedef uint64_t xfs_rtblock_t; /* extent (block) in realtime area */ -typedef int64_t xfs_srtblock_t; /* signed version of xfs_rtblock_t */ -#else -typedef uint32_t xfs_fsblock_t; /* blockno in filesystem (agno|agbno) */ -typedef uint32_t xfs_rfsblock_t; /* blockno in filesystem (raw) */ -typedef uint32_t xfs_rtblock_t; /* extent (block) in realtime area */ -typedef int32_t xfs_srtblock_t; /* signed version of xfs_rtblock_t */ -#endif -#if XFS_BIG_FILES -typedef uint64_t xfs_fileoff_t; /* block number in a file */ -typedef int64_t xfs_sfiloff_t; /* signed block number in a file */ -typedef uint64_t xfs_filblks_t; /* number of blocks in a file */ -#else -typedef uint32_t xfs_fileoff_t; /* block number in a file */ -typedef int32_t xfs_sfiloff_t; /* signed block number in a file */ -typedef uint32_t xfs_filblks_t; /* number of blocks in a file */ -#endif - -typedef uint8_t xfs_arch_t; /* architecutre of an xfs fs */ - -/* - * Null values for the types. - */ -#define NULLDFSBNO ((xfs_dfsbno_t)-1) -#define NULLDRFSBNO ((xfs_drfsbno_t)-1) -#define NULLDRTBNO ((xfs_drtbno_t)-1) -#define NULLDFILOFF ((xfs_dfiloff_t)-1) - -#define NULLFSBLOCK ((xfs_fsblock_t)-1) -#define NULLRFSBLOCK ((xfs_rfsblock_t)-1) -#define NULLRTBLOCK ((xfs_rtblock_t)-1) -#define NULLFILEOFF ((xfs_fileoff_t)-1) - -#define NULLAGBLOCK ((xfs_agblock_t)-1) -#define NULLAGNUMBER ((xfs_agnumber_t)-1) -#define NULLEXTNUM ((xfs_extnum_t)-1) - -#define NULLCOMMITLSN ((xfs_lsn_t)-1) - -/* - * Max values for extlen, extnum, aextnum. - */ -#define MAXEXTLEN ((xfs_extlen_t)0x001fffff) /* 21 bits */ -#define MAXEXTNUM ((xfs_extnum_t)0x7fffffff) /* signed int */ -#define MAXAEXTNUM ((xfs_aextnum_t)0x7fff) /* signed short */ - -/* - * MAXNAMELEN is the length (including the terminating null) of - * the longest permissible file (component) name. - */ -#define MAXNAMELEN 256 - -typedef enum { - XFS_LOOKUP_EQi, XFS_LOOKUP_LEi, XFS_LOOKUP_GEi -} xfs_lookup_t; - -typedef enum { - XFS_BTNUM_BNOi, XFS_BTNUM_CNTi, XFS_BTNUM_BMAPi, XFS_BTNUM_INOi, - XFS_BTNUM_MAX -} xfs_btnum_t; - - -#ifdef CONFIG_PROC_FS -/* - * XFS global statistics - */ -struct xfsstats { -# define XFSSTAT_END_EXTENT_ALLOC 4 - uint32_t xs_allocx; - uint32_t xs_allocb; - uint32_t xs_freex; - uint32_t xs_freeb; -# define XFSSTAT_END_ALLOC_BTREE (XFSSTAT_END_EXTENT_ALLOC+4) - uint32_t xs_abt_lookup; - uint32_t xs_abt_compare; - uint32_t xs_abt_insrec; - uint32_t xs_abt_delrec; -# define XFSSTAT_END_BLOCK_MAPPING (XFSSTAT_END_ALLOC_BTREE+7) - uint32_t xs_blk_mapr; - uint32_t xs_blk_mapw; - uint32_t xs_blk_unmap; - uint32_t xs_add_exlist; - uint32_t xs_del_exlist; - uint32_t xs_look_exlist; - uint32_t xs_cmp_exlist; -# define XFSSTAT_END_BLOCK_MAP_BTREE (XFSSTAT_END_BLOCK_MAPPING+4) - uint32_t xs_bmbt_lookup; - uint32_t xs_bmbt_compare; - uint32_t xs_bmbt_insrec; - uint32_t xs_bmbt_delrec; -# define XFSSTAT_END_DIRECTORY_OPS (XFSSTAT_END_BLOCK_MAP_BTREE+4) - uint32_t xs_dir_lookup; - uint32_t xs_dir_create; - uint32_t xs_dir_remove; - uint32_t xs_dir_getdents; -# define XFSSTAT_END_TRANSACTIONS (XFSSTAT_END_DIRECTORY_OPS+3) - uint32_t xs_trans_sync; - uint32_t xs_trans_async; - uint32_t xs_trans_empty; -# define XFSSTAT_END_INODE_OPS (XFSSTAT_END_TRANSACTIONS+7) - uint32_t xs_ig_attempts; - uint32_t xs_ig_found; - uint32_t xs_ig_frecycle; - uint32_t xs_ig_missed; - uint32_t xs_ig_dup; - uint32_t xs_ig_reclaims; - uint32_t xs_ig_attrchg; -# define XFSSTAT_END_LOG_OPS (XFSSTAT_END_INODE_OPS+5) - uint32_t xs_log_writes; - uint32_t xs_log_blocks; - uint32_t xs_log_noiclogs; - uint32_t xs_log_force; - uint32_t xs_log_force_sleep; -# define XFSSTAT_END_TAIL_PUSHING (XFSSTAT_END_LOG_OPS+10) - uint32_t xs_try_logspace; - uint32_t xs_sleep_logspace; - uint32_t xs_push_ail; - uint32_t xs_push_ail_success; - uint32_t xs_push_ail_pushbuf; - uint32_t xs_push_ail_pinned; - uint32_t xs_push_ail_locked; - uint32_t xs_push_ail_flushing; - uint32_t xs_push_ail_restarts; - uint32_t xs_push_ail_flush; -# define XFSSTAT_END_WRITE_CONVERT (XFSSTAT_END_TAIL_PUSHING+2) - uint32_t xs_xstrat_quick; - uint32_t xs_xstrat_split; -# define XFSSTAT_END_READ_WRITE_OPS (XFSSTAT_END_WRITE_CONVERT+2) - uint32_t xs_write_calls; - uint32_t xs_read_calls; -# define XFSSTAT_END_ATTRIBUTE_OPS (XFSSTAT_END_READ_WRITE_OPS+4) - uint32_t xs_attr_get; - uint32_t xs_attr_set; - uint32_t xs_attr_remove; - uint32_t xs_attr_list; -# define XFSSTAT_END_QUOTA_OPS (XFSSTAT_END_ATTRIBUTE_OPS+8) - uint32_t xs_qm_dqreclaims; - uint32_t xs_qm_dqreclaim_misses; - uint32_t xs_qm_dquot_dups; - uint32_t xs_qm_dqcachemisses; - uint32_t xs_qm_dqcachehits; - uint32_t xs_qm_dqwants; - uint32_t xs_qm_dqshake_reclaims; - uint32_t xs_qm_dqinact_reclaims; -# define XFSSTAT_END_INODE_CLUSTER (XFSSTAT_END_QUOTA_OPS+3) - uint32_t xs_iflush_count; - uint32_t xs_icluster_flushcnt; - uint32_t xs_icluster_flushinode; -# define XFSSTAT_END_VNODE_OPS (XFSSTAT_END_INODE_CLUSTER+8) - uint32_t vn_active; /* # vnodes not on free lists */ - uint32_t vn_alloc; /* # times vn_alloc called */ - uint32_t vn_get; /* # times vn_get called */ - uint32_t vn_hold; /* # times vn_hold called */ - uint32_t vn_rele; /* # times vn_rele called */ - uint32_t vn_reclaim; /* # times vn_reclaim called */ - uint32_t vn_remove; /* # times vn_remove called */ - uint32_t vn_free; /* # times vn_free called */ - struct xfsstats_xpc { - uint64_t xs_xstrat_bytes; - uint64_t xs_write_bytes; - uint64_t xs_read_bytes; - } xpc; -} xfsstats; - -# define XFS_STATS_INC(count) ( xfsstats.##count ++ ) -# define XFS_STATS_DEC(count) ( xfsstats.##count -- ) -# define XFS_STATS_ADD(count, inc) ( xfsstats.##count += (inc) ) -# define XFS_STATS64_INC(count) ( xfsstats.xpc.##count ++ ) -# define XFS_STATS64_ADD(count, inc) ( xfsstats.xpc.##count += (inc) ) -#else /* !CONFIG_PROC_FS */ -# define XFS_STATS_INC(count) -# define XFS_STATS_DEC(count) -# define XFS_STATS_ADD(count, inc) -# define XFS_STATS64_INC(count) -# define XFS_STATS64_ADD(count, inc) -#endif /* !CONFIG_PROC_FS */ - - -#ifdef __KERNEL__ - -/* juggle IRIX device numbers - still used in ondisk structures */ - -#define IRIX_DEV_BITSMAJOR 14 -#define IRIX_DEV_BITSMINOR 18 -#define IRIX_DEV_MAXMAJ 0x1ff -#define IRIX_DEV_MAXMIN 0x3ffff -#define IRIX_DEV_MAJOR(dev) ((int)(((unsigned)(dev)>>IRIX_DEV_BITSMINOR) \ - & IRIX_DEV_MAXMAJ)) -#define IRIX_DEV_MINOR(dev) ((int)((dev)&IRIX_DEV_MAXMIN)) -#define IRIX_MKDEV(major,minor) ((xfs_dev_t)(((major)<. - - Contributor: Matt Wilson -*/ - -#include - -#include -#include -#include -#include -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#define AIX_LABEL_MAGIC (0xc9c2d4c1UL) -#define MAX_TOTAL_PART 16 - -static PedDiskType aix_disk_type; - -static int -aix_probe (const PedDevice *dev) -{ - PED_ASSERT (dev != NULL); - - void *label; - if (!ptt_read_sector (dev, 0, &label)) - return 0; - bool found = PED_BE32_TO_CPU(*(uint32_t *)label) == AIX_LABEL_MAGIC; - free (label); - return found; -} - -static PedDisk* -aix_alloc (const PedDevice* dev) -{ - PedDisk* disk; - - disk = _ped_disk_alloc (dev, &aix_disk_type); - if (!disk) - return NULL; - - return disk; -} - -static PedDisk* -aix_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - - new_disk = ped_disk_new_fresh (disk->dev, &aix_disk_type); - if (!new_disk) - return NULL; - - return new_disk; -} - -static void -aix_free (PedDisk *disk) -{ - _ped_disk_free (disk); -} - -static int -aix_read (PedDisk* disk) -{ - ped_disk_delete_all (disk); - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Support for reading AIX disk labels is " - "is not implemented yet.")); - return 0; -} - -#ifndef DISCOVER_ONLY -static int -aix_write (const PedDisk* disk) -{ - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Support for writing AIX disk labels is " - "is not implemented yet.")); - return 0; -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -aix_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Support for adding partitions to AIX disk " - "labels is not implemented yet.")); - return NULL; -} - -static PedPartition* -aix_partition_duplicate (const PedPartition* part) -{ - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Support for duplicating partitions in AIX " - "disk labels is not implemented yet.")); - return NULL; -} - -static void -aix_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - _ped_partition_free (part); -} - -static int -aix_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Support for setting system type of partitions " - "in AIX disk labels is not implemented yet.")); - return 0; -} - -static int -aix_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - ped_exception_throw (PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Support for setting flags " - "in AIX disk labels is not implemented yet.")); - return 0; -} - -static int _GL_ATTRIBUTE_CONST -aix_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - return 0; -} - - -static int -aix_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - return 0; -} - - -static int -aix_get_max_primary_partition_count (const PedDisk* disk) -{ - return 4; -} - -static bool -aix_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = MAX_TOTAL_PART; - return true; -} - -static int _GL_ATTRIBUTE_PURE -aix_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - - return 1; -} - -static int _GL_ATTRIBUTE_PURE -aix_partition_enumerate (PedPartition* part) -{ - return 1; -} - -static int _GL_ATTRIBUTE_PURE -aix_alloc_metadata (PedDisk* disk) -{ - return 1; -} - -#include "pt-common.h" -PT_define_limit_functions (aix) - -static PedDiskOps aix_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (aix_write), - - partition_set_name: NULL, - partition_get_name: NULL, - - PT_op_function_initializers (aix) -}; - -static PedDiskType aix_disk_type = { - next: NULL, - name: "aix", - ops: &aix_disk_ops, - features: 0 -}; - -void -ped_disk_aix_init () -{ - ped_disk_type_register (&aix_disk_type); -} - -void -ped_disk_aix_done () -{ - ped_disk_type_unregister (&aix_disk_type); -} diff --git a/jni/parted/libparted/labels/atari.c b/jni/parted/libparted/labels/atari.c deleted file mode 100755 index 8ab3720..0000000 --- a/jni/parted/libparted/labels/atari.c +++ /dev/null @@ -1,1975 +0,0 @@ -/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - - libparted - a library for manipulating disk partitions - atari.c - libparted module to manipulate Atari partition tables. - Copyright (C) 2000-2001, 2004, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . - - Contributor: Guillaume Knispel - John Paul Adrian Glaubitz -*/ - -/* - Documentation : - README file of atari-fdisk - atari-fdisk source code - Linux atari partitions parser source code - ( fs/partitions/atari.[ch] ) -*/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - - -/********************** Atari data and structure stuff **********************/ - -#define BOOTABLE_CKSUM 0x1234 -#define NONBOOT_CKSUM 0x4321 - -#define GEM_MAX ((32*1024*1024)/PED_SECTOR_SIZE_DEFAULT) - -#define PART_FLAG_USED 0x01 -#define PART_FLAG_BOOT_GEM 0x80 /* GEMDOS */ -#define PART_FLAG_BOOT_ASV 0x40 /* Atari System V */ -#define PART_FLAG_BOOT_BSD 0x20 /* Net(?)BSD */ -#define PART_FLAG_BOOT_LNX 0x10 /* Linux */ -#define PART_FLAG_BOOT_UNK 0x08 /* unknown / other */ - -#define N_AHDI 4 -#define N_ICD 8 - -#define MAXIMUM_PARTS 64 - -/* what we put instead of id, start and size in empty */ -/* partition tables, to be able to detect it */ -#define SIGNATURE_EMPTY_TABLE "PARTEDATARI" -#define SIGNATURE_EMPTY_SIZE 11 - -/* to be compared to the last two bytes of 1st sector (Big Endian) */ -static const uint16_t atr_forbidden_sign[] = { - 0x55AA, - 0 -}; - -static const char *atr_known_icd_pid[] = { - "BGM", "GEM", "LNX", "SWP", "RAW", NULL -}; - -/* static const char *atr_known_pid[] = { */ -/* "BGM", "GEM", "LNX", "MAC", "MIX", "MNX", "RAW", "SWP", "UNX", */ -/* "F32", "SV4", NULL */ -/* }; */ - -struct _AtariPartID2BootFlag { - const char pid[4]; - uint8_t flag; -}; -typedef struct _AtariPartID2BootFlag AtariPartID2BootFlag; - -static AtariPartID2BootFlag atr_pid2bf[] = { - { "GEM", PART_FLAG_BOOT_GEM }, - { "BGM", PART_FLAG_BOOT_GEM }, - { "UNX", PART_FLAG_BOOT_ASV }, - { "LNX", PART_FLAG_BOOT_LNX }, - { "", PART_FLAG_BOOT_UNK }, -}; - -struct _AtariFS2PartId { - const char* fs; - const char pid[4]; - PedSector max_sectors; -}; -typedef struct _AtariFS2PartId AtariFS2PartId; - -static AtariFS2PartId atr_fs2pid[] = { -/* Other ID are available : MIX MNX <= minix - UNX <= Atari SysV Unix - SV4 <= Univ System 4 */ - { "ext2", "LNX", INT32_MAX }, - { "ext3", "LNX", INT32_MAX }, - { "fat16", "GEM", GEM_MAX }, /* small partitions */ - { "fat16", "BGM", INT32_MAX }, /* big partitions */ - { "fat32", "F32", INT32_MAX }, - { "hfs", "MAC", INT32_MAX }, - { "hfs+", "MAC", INT32_MAX }, - { "hfsx", "MAC", INT32_MAX }, - { "jfs", "LNX", INT32_MAX }, - { "linux-swap", "SWP", INT32_MAX }, - { "reiserfs", "LNX", INT32_MAX }, - { "hp-ufs", "LNX", INT32_MAX }, - { "sun-ufs", "LNX", INT32_MAX }, - { "xfs", "LNX", INT32_MAX }, - { "ntfs", "RAW", INT32_MAX }, - { "", "RAW", INT32_MAX }, /* default entry */ - { NULL, "" , 0 } /* end of list */ -}; - -struct __attribute__ ((packed)) _AtariRawPartition { - uint8_t flag; /* bit 0: active; bit 7: bootable */ - union { - uint8_t empty[11]; /* Empty table */ - struct __attribute__ ((packed)) { - uint8_t id[3]; /* "GEM", "BGM", "XGM", ... */ - uint32_t start; /* start of partition */ - uint32_t size; /* length of partition */ - }; - }; -}; -typedef struct _AtariRawPartition AtariRawPartition; - -struct __attribute__ ((packed,aligned(2))) _AtariRawTable { - uint8_t boot_code[0x156]; /* room for boot code */ - AtariRawPartition icd_part[N_ICD]; /* info for ICD-partitions 5..12 */ - uint8_t unused[0xc]; - uint32_t hd_size; /* size of disk in blocks */ - AtariRawPartition part[N_AHDI]; /* the four primary partitions */ - uint32_t bsl_start; /* start of bad sector list */ - uint32_t bsl_count; /* length of bad sector list */ - uint16_t checksum; /* checksum for bootable disks */ -}; -typedef struct _AtariRawTable AtariRawTable; - -typedef enum { - FMT_AHDI = 0, /* AHDI v1 compatible, no ICD and no XGM */ - FMT_XGM = 1, /* AHDI v3 with XGM / this disable ICD */ - FMT_ICD = 2 /* ICD detected / requested because more than 4 prim */ - /* no XGM allowed */ -} AtrFmt; - -struct _AtariDisk { - AtrFmt format; - int has_been_read; /* actually means has been read or written... */ - uint32_t bsl_start; /* first sector of the Bad Sectors List */ - uint32_t bsl_count; /* number of sectors of the BSL */ - uint8_t HDX_comp; /* if set to one, atari_write will initialize */ - /* the bsl area */ -}; -typedef struct _AtariDisk AtariDisk; - -struct _AtariPart { - char part_id[4]; /* ASCIIZ */ - char icd_id[4]; /* Linux only parse a limited set of ID */ - /* in ICD (why???), so everything else */ - /* is translated to RAW. */ - uint8_t flag; /* without bit 0 (entry used) */ -}; -typedef struct _AtariPart AtariPart; - -/* set by initialisation code to C locale */ -static locale_t atr_c_locale; - -static PedDiskType atari_disk_type; - - - -/******************************** Atari Code ********************************/ - -#define ATARI_DISK(disk) ((AtariDisk*)((disk)->disk_specific)) -#define ATARI_PART(part) ((AtariPart*)((part)->disk_specific)) - -#define atr_pid_eq(a,b) (!memcmp( (a), (b), 3 )) - -#define atr_pid_assign(a, b) (memcpy ( (a), (b), 3 )) - -#define atr_part_used(part) (((part)->flag) & PART_FLAG_USED) - -static int -atr_start_size_correct (uint32_t start, uint32_t size, uint32_t hd_size) -{ - uint32_t end = start + size; - - return end >= start - && 0 < start && start <= hd_size - && 0 < size && size <= hd_size - && 0 < end && end <= hd_size; -} - -static int -atr_part_correct (AtariRawPartition* part, uint32_t hd_size) -{ - uint32_t start, size; - - start = PED_BE32_TO_CPU (part->start); - size = PED_BE32_TO_CPU (part->size); - - return isalnum_l(part->id[0], atr_c_locale) - && isalnum_l(part->id[1], atr_c_locale) - && isalnum_l(part->id[2], atr_c_locale) - && atr_start_size_correct (start, size, hd_size); -} - -static int _GL_ATTRIBUTE_PURE -atr_pid_known (const char* pid, const char** pid_list) -{ - for (; *pid_list; pid_list++) { - if (atr_pid_eq(pid, *pid_list)) - return 1; - } - - return 0; -} - -/* Recognize Parted signature in an AHDI entry, used to - * identify empty Atari partition tables */ -static int -atr_is_signature_entry (AtariRawPartition* part) -{ - return part->flag == 0 - && !memcmp (part->empty, SIGNATURE_EMPTY_TABLE, - SIGNATURE_EMPTY_SIZE ); -} - -/* Set Parted signature in an AHDI entry */ -static void -atr_put_signature_entry (AtariRawPartition* part) -{ - part->flag = 0; - memcpy (part->empty, SIGNATURE_EMPTY_TABLE, SIGNATURE_EMPTY_SIZE); -} - -#define atr_part_known(part, pid_list) (atr_pid_known ((part)->id, pid_list)) - -#define atr_part_valid(part, sz) (atr_part_used(part)\ - && atr_part_correct((part), (sz))) -#define atr_part_trash(part, sz) (atr_part_used(part)\ - && !atr_part_correct((part), (sz))) - -/* Check if this device can be used with an Atari label */ -static int -atr_can_use_dev (const PedDevice *dev) -{ - /* i really don't know how atari behave with non 512 bytes */ - /* sectors... */ - if (dev->sector_size != PED_SECTOR_SIZE_DEFAULT) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't use Atari partition tables on disks with a " - "sector size not equal to %d bytes."), - (int)PED_SECTOR_SIZE_DEFAULT ); - return 0; - } - - /* the format isn't well defined enough to support > 0x7FFFFFFF */ - /* sectors */ - if (dev->length > INT32_MAX) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't use Atari partition tables on disks with more " - "than %d sectors."), - INT32_MAX ); - return 0; - } - - return 1; -} - -/* - * The Atari disk label doesn't have any magic id - * so we must completely parse the layout to be sure - * we are really dealing with it. - */ -static int -atari_probe (const PedDevice *dev) -{ - AtariRawTable table; - uint32_t rs_hd_size, parts, exts; - int valid_count, xgm_part, xgm_num, i; - int num_sign, total_count = 0; - - PED_ASSERT (dev != NULL); - PED_ASSERT (sizeof(table) == 512); - - /* Device Spec ok for Atari label? */ - if (!atr_can_use_dev (dev)) - return 0; - - /* read the root sector */ - if (!ped_device_read (dev, &table, 0, 1)) - return 0; - - /* number of sectors stored in the root sector > device length ? */ - /* => just reject the Atari disk label */ - rs_hd_size = PED_BE32_TO_CPU (table.hd_size); - if (rs_hd_size > dev->length - || rs_hd_size < 2) - return 0; - - /* check the BSL fields */ - if ((table.bsl_start || table.bsl_count) - && !atr_start_size_correct (PED_BE32_TO_CPU (table.bsl_start), - PED_BE32_TO_CPU (table.bsl_count), - rs_hd_size ) ) - return 0; - - /* scan the main AHDI fields */ - num_sign = 0; xgm_num = 0; - valid_count = 0; xgm_part = 0; - for (i = 0; i < N_AHDI; i++) { - if (atr_part_valid (&table.part[i], rs_hd_size)) { - valid_count++; - total_count++; - if (atr_pid_eq(table.part[i].id, "XGM")) { - xgm_part++; - xgm_num = i; - } - } else if (atr_part_trash (&table.part[i], rs_hd_size)) { - return 0; - } - if (atr_is_signature_entry (&table.part[i])) - num_sign++; - } - - /* no way to reliably detect empty Atari disk labels if - * they aren't using parted signature in 4 prim fields - * && reject multi XGM labels because Parted can't handle - * multiple extended partitions - * && reject if xgm partition in slot 0 because not allowed */ - if ((!valid_count && num_sign != N_AHDI) - || xgm_part > 1 - || (xgm_part == 1 && xgm_num == 0) ) - return 0; - - /* check coherency of each logical partitions and ARS */ - if (xgm_part) { /* ! WARNING ! reuses "table" */ - /* we must allow empty ext partition even if they're */ - /* not valid because parted write the layout to the HD */ - /* at each operation, and we can't create ext and log */ - /* at the same time */ - int empty_ars_allowed = 1; - - parts = exts = PED_BE32_TO_CPU (table.part[xgm_num].start); - while (1) { - if (!ped_device_read (dev, &table, parts, 1)) - return 0; - - for (i = 0; i < N_AHDI-1; ++i) { - if (atr_part_used (&table.part[i])) - break; - } - - /* we allow the ext part to be empty (see above) */ - if (i == N_AHDI-1 && empty_ars_allowed) - break; - - /* data partition must be in slot 0, 1 or 2 */ - if (i == N_AHDI-1 - || !atr_part_correct (&table.part[i], rs_hd_size - - parts ) - || atr_pid_eq (table.part[i].id, "XGM")) - return 0; - - /* If there is at least one logical partition */ - /* then next ARS should not be empty */ - empty_ars_allowed = 0; - - total_count++; - if (total_count > MAXIMUM_PARTS) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Too many Atari partitions detected. " - " Maybe there is a loop in the XGM " - "linked list. Aborting.") ); - return 0; - } - - /* end of logical partitions? */ - if (!atr_part_used (&table.part[i+1])) - break; - - /* is this really the descriptor of the next ARS? */ - if (!atr_part_correct (&table.part[i+1], rs_hd_size - - exts ) - || !atr_pid_eq (table.part[i+1].id, "XGM")) - return 0; - - parts = exts + PED_BE32_TO_CPU (table.part[i+1].start); - } - } /* no XGM so try ICD */ - else if (atr_part_valid (&table.icd_part[0], rs_hd_size) - && atr_part_known (&table.icd_part[0], atr_known_icd_pid)) { - for (i = 1; i < N_ICD; i++) { - if (atr_part_trash (&table.icd_part[i], rs_hd_size)) - return 0; - } - } - - return 1; -} - -static void -atr_disk_reset (AtariDisk* atr_disk) -{ - /* Empty partition table => only AHDI needed right now */ - atr_disk->format = FMT_AHDI; - /* The disk is not in sync with the actual content of the label */ - atr_disk->has_been_read = 0; - /* Create an empty BSL for HDX compatibility */ - atr_disk->bsl_start = 1; - atr_disk->bsl_count = 1; - atr_disk->HDX_comp = 1; -} - -/* - * Must set up the PedDisk and the associated AtariDisk as if - * the user is doing mklabel, since in this case atari_alloc - * is called alone whereas when reading an existing partition - * table atari_read is called after atari_alloc and can overwrite - * the settings. - */ -static PedDisk* -atari_alloc (const PedDevice* dev) -{ - PedDisk* disk; - AtariDisk* atr_disk; - - PED_ASSERT (dev != NULL); - - if (!atr_can_use_dev (dev) - || !(disk = _ped_disk_alloc (dev, &atari_disk_type))) - return NULL; - - if (!(disk->disk_specific = atr_disk = ped_malloc (sizeof (AtariDisk)))) - goto error_free_disk; - - atr_disk_reset (atr_disk); - - return disk; - -error_free_disk: - free (disk); - return NULL; -} - -static PedDisk* -atari_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - AtariDisk* old_atr_dsk; - AtariDisk* new_atr_dsk; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (disk->disk_specific != NULL); - - old_atr_dsk = ATARI_DISK (disk); - if (!(new_disk = ped_disk_new_fresh (disk->dev, &atari_disk_type))) - return NULL; - new_atr_dsk = ATARI_DISK (new_disk); - - memcpy (new_atr_dsk, old_atr_dsk, sizeof(*old_atr_dsk)); - - return new_disk; -} - -static void -atari_free (PedDisk* disk) -{ - AtariDisk* atr_disk; - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->disk_specific != NULL); - atr_disk = ATARI_DISK (disk); - - _ped_disk_free (disk); - free (atr_disk); -} - -/* Warning : ID not ASCIIZ but 3 chars long */ -static void -atr_part_sysraw (PedPartition* part, const char* id, uint8_t flag) -{ - AtariPart* atr_part = ATARI_PART (part); - - atr_part->flag = flag & ~PART_FLAG_USED; - - atr_pid_assign (atr_part->part_id, id); - atr_part->part_id[3] = 0; - - if (atr_pid_known (id, atr_known_icd_pid)) { - atr_pid_assign (atr_part->icd_id, id); - atr_part->icd_id[3] = 0; - } else { - atr_pid_assign (atr_part->icd_id, "RAW"); - atr_part->icd_id[3] = 0; - } -} - -static int -atr_parse_add_rawpart (PedDisk* disk, PedPartitionType type, PedSector st_off, - int num, const AtariRawPartition* rawpart ) -{ - PedSector start, end; - PedPartition* part; - PedConstraint* const_exact; - int added; - - start = st_off + PED_BE32_TO_CPU (rawpart->start); - end = start + PED_BE32_TO_CPU (rawpart->size) - 1; - - part = ped_partition_new (disk, type, NULL, start, end); - if (!part) - return 0; - - /*part->num = num;*/ /* Enumeration will take care of that */ - part->num = -1; /* Indeed we can't enumerate here - * because the enumerate function uses - * -1 do detect new partition being - * inserted and update the atrdisk->format */ - if (type != PED_PARTITION_EXTENDED) - part->fs_type = ped_file_system_probe (&part->geom); - else - part->fs_type = NULL; - atr_part_sysraw (part, rawpart->id, rawpart->flag); - - const_exact = ped_constraint_exact (&part->geom); - added = ped_disk_add_partition (disk, part, const_exact); - ped_constraint_destroy (const_exact); - if (!added) { - ped_partition_destroy (part); - return 0; - } - - PED_ASSERT (part->num == num); - return 1; -} - -/* - * Read the chained list of logical partitions. - * exts points to the first Auxiliary Root Sector, at the start - * of the extended partition. - * In each ARS one partition entry describes to the logical partition - * (start relative to the ARS position) and the next entry with ID "XGM" - * points to the next ARS (start relative to exts). - */ -static int -atr_read_logicals (PedDisk* disk, PedSector exts, int* pnum) -{ - AtariRawTable table; - PedSector parts = exts; - int i, empty_ars_allowed = 1; - - while (1) { - if (!ped_device_read (disk->dev, &table, parts, 1)) - return 0; - - for (i = 0; i < N_AHDI-1; ++i) - if (atr_part_used (&table.part[i])) - break; - - if (i == N_AHDI-1 && empty_ars_allowed) - break; - - /* data partition must be in slot 0, 1 or 2 */ - if (i == N_AHDI-1 - || atr_pid_eq (table.part[i].id, "XGM")) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("No data partition found in the ARS at " - "sector %lli."), parts ); - return 0; - } - - empty_ars_allowed = 0; - - if (!atr_parse_add_rawpart (disk, PED_PARTITION_LOGICAL, - parts, *pnum, &table.part[i] ) ) - return 0; - - (*pnum)++; - - /* end of logical partitions? */ - if (!atr_part_used (&table.part[i+1])) - break; - - if (!atr_pid_eq (table.part[i+1].id, "XGM")) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The entry of the next logical ARS is not of " - "type XGM in ARS at sector %lli."), parts ); - return 0; - } - - parts = exts + PED_BE32_TO_CPU (table.part[i+1].start); - } - - return 1; -} - -static int -atari_read (PedDisk* disk) -{ - AtariRawTable table; - AtariDisk* atr_disk; - uint32_t rs_hd_size; - int i, pnum, xgm, pcount; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (disk->disk_specific != NULL); - atr_disk = ATARI_DISK (disk); - - ped_disk_delete_all (disk); - atr_disk_reset (atr_disk); - - if (!atari_probe (disk->dev)) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("There doesn't seem to be an Atari partition table " - "on this disk (%s), or it is corrupted."), - disk->dev->path ) - != PED_EXCEPTION_IGNORE) - return 0; - } - - if (!ped_device_read (disk->dev, (void*) &table, 0, 1)) - goto error; - - /* We are sure that the layout looks coherent so we - don't need to check too much */ - - rs_hd_size = PED_BE32_TO_CPU (table.hd_size); - atr_disk->bsl_start = PED_BE32_TO_CPU (table.bsl_start); - atr_disk->bsl_count = PED_BE32_TO_CPU (table.bsl_count); - atr_disk->HDX_comp = 0; - - /* AHDI primary partitions */ - pnum = 1; xgm = 0; pcount = 0; - for (i = 0; i < N_AHDI; i++) { - if (!atr_part_used (&table.part[i])) - continue; - - pcount++; - - if (atr_pid_eq (table.part[i].id, "XGM")) { - - atr_disk->format = FMT_XGM; - xgm = 1; - if (!atr_parse_add_rawpart(disk, PED_PARTITION_EXTENDED, - 0, 0, &table.part[i] ) - || !atr_read_logicals ( - disk, - PED_BE32_TO_CPU (table.part[i].start), - &pnum ) ) - goto error; - - } else { - - if (!atr_parse_add_rawpart (disk, PED_PARTITION_NORMAL, - 0, pnum, &table.part[i] ) ) - goto error; - pnum++; - } - } - - /* If no XGM partition has been found, the AHDI table is not empty, */ - /* the first entry is valid and its ID ok for ICD, then we parse the */ - /* ICD table. */ - if (!xgm && pcount != 0 - && atr_part_valid (&table.icd_part[0], rs_hd_size) - && atr_part_known (&table.icd_part[0], atr_known_icd_pid)) - for (i = 0; i < N_ICD; i++) { - - if (!atr_part_known (&table.icd_part[i], atr_known_icd_pid) - || !atr_part_used (&table.icd_part[i])) - continue; - atr_disk->format = FMT_ICD; - - if (!atr_parse_add_rawpart (disk, PED_PARTITION_NORMAL, - 0, pnum, &table.icd_part[i] ) ) - goto error; - pnum++; - } - - atr_disk->has_been_read = 1; - return 1; - -error: - ped_disk_delete_all (disk); - atr_disk_reset (atr_disk); - return 0; -} - -/* Returns the number of the first logical partition or -1 if not found */ -static int -atr_find_first_log (const PedDisk* disk) -{ - PedPartition* part; - int first_log, last; - - last = ped_disk_get_last_partition_num (disk); - - for (first_log = 1; first_log <= last; first_log++) { - if ((part = ped_disk_get_partition (disk, first_log)) - && (part->type & PED_PARTITION_LOGICAL)) - break; - } - - return first_log > last ? -1 : first_log; -} - -#ifndef DISCOVER_ONLY -static int -atari_clobber (PedDevice* dev) -{ - AtariRawTable table; - - PED_ASSERT (dev != NULL); - PED_ASSERT (atari_probe (dev)); - - if (!ped_device_read (dev, &table, 0, 1)) - return 0; - - /* clear anything but the boot code and the optional ICD table */ - memset (table.boot_code + offsetof (AtariRawTable, hd_size), - 0, - PED_SECTOR_SIZE_DEFAULT - offsetof (AtariRawTable, hd_size)); - - return ped_device_write (dev, &table, 0, 1); -} - -/* Computes the checksum of the root sector */ -static uint16_t -atr_calc_rs_sum (const AtariRawTable* table) -{ - const uint16_t* word = (uint16_t*)(table); - const uint16_t* end = (uint16_t*)(table + 1); - uint16_t sum; - - for (sum = 0; word < end; word++) - sum += PED_BE16_TO_CPU(*word); - - return sum; -} - -/* Returns 1 if the root sector is bootable, else returns 0 */ -static int -atr_is_boot_table (const AtariRawTable* table) -{ - return atr_calc_rs_sum (table) == BOOTABLE_CKSUM; -} - -/* - * Returns 1 if sign belongs to a set of `forbidden' signatures. - * (e.g.: 55AA which is the MSDOS siganture...) - * Only used for non bootable root sector since the signature of - * a bootable one is unique. - */ -static int _GL_ATTRIBUTE_PURE -atr_sign_is_forbidden (uint16_t sign) -{ - const uint16_t* forbidden; - - for (forbidden = atr_forbidden_sign; *forbidden; forbidden++) { - if (sign == *forbidden) - return 1; - } - - return 0; -} - -/* Updates table->checksum so the RS will be considered bootable (or not) */ -static void -atr_table_set_boot (AtariRawTable* table, int boot) -{ - uint16_t boot_cksum, noboot_cksum; - uint16_t sum; - - table->checksum = 0; - sum = atr_calc_rs_sum (table); - boot_cksum = BOOTABLE_CKSUM - sum; - - if (boot) { - table->checksum = PED_CPU_TO_BE16 (boot_cksum); - return; - } - - noboot_cksum = NONBOOT_CKSUM - sum; - - while (atr_sign_is_forbidden (noboot_cksum) - || noboot_cksum == boot_cksum) - noboot_cksum++; - - table->checksum = PED_CPU_TO_BE16 (noboot_cksum); -} - -/* Fill an used partition entry */ -static void -atr_fill_raw_entry (AtariRawPartition* rawpart, uint8_t flag, const char* id, - uint32_t start, uint32_t size ) -{ - rawpart->flag = PART_FLAG_USED | flag; - atr_pid_assign (rawpart->id, id); - rawpart->start = PED_CPU_TO_BE32 (start); - rawpart->size = PED_CPU_TO_BE32 (size); -} - -static int -atr_write_logicals (const PedDisk* disk) -{ - AtariRawTable table; - PedPartition* log_curr; - PedPartition* log_next; - PedPartition* ext; - PedPartition* part; - PedSector exts; - PedSector parts; - AtariPart* atr_part; - int first_log, pnum, i; - - PED_ASSERT (disk != NULL); - - ext = ped_disk_extended_partition (disk); - exts = parts = ext->geom.start; - - pnum = first_log = atr_find_first_log (disk); - - while (1) { - if (pnum != -1) { - log_curr = ped_disk_get_partition (disk, pnum); - log_next = ped_disk_get_partition (disk, pnum + 1); - } else { - log_curr = log_next = NULL; - } - - if (log_curr && !(log_curr->type & PED_PARTITION_LOGICAL)) - log_curr = NULL; - if (log_next && !(log_next->type & PED_PARTITION_LOGICAL)) - log_next = NULL; - - PED_ASSERT (pnum == first_log || log_curr); - - part = ped_disk_get_partition_by_sector (disk, parts); - if (part && ped_partition_is_active (part)) { - if (log_curr) - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("No room at sector %lli to store ARS " - "of logical partition %d."), - parts, pnum ); - else - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("No room at sector %lli to store ARS."), - parts ); - return 0; - } - - if (!ped_device_read (disk->dev, &table, parts, 1)) - return 0; - - if (!log_curr) { - PED_ASSERT (!log_next); - - for (i = 0; i < N_AHDI; i++) - table.part[i].flag &= ~PART_FLAG_USED; - } else { - atr_part = ATARI_PART (log_curr); - atr_fill_raw_entry (&table.part[0], atr_part->flag, - atr_part->part_id, - log_curr->geom.start - parts, - log_curr->geom.length ); - - for (i = 1; i < N_AHDI; i++) - table.part[i].flag &= ~PART_FLAG_USED; - - if (log_next) { - atr_fill_raw_entry (&table.part[1], 0, "XGM", - log_next->geom.start - 1 - exts, - log_next->geom.length + 1 ); - } - } - - /* TODO: check if we can set that bootable, and when */ - atr_table_set_boot (&table, 0); - - if (!ped_device_write (disk->dev, &table, parts, 1)) - return 0; - - if (!log_next) - break; - - parts = log_next->geom.start - 1; - pnum++; - } - - return 1; -} - -static int _GL_ATTRIBUTE_PURE -_disk_logical_partition_count (const PedDisk* disk) -{ - PedPartition* walk; - - int count = 0; - - PED_ASSERT (disk != NULL); - for (walk = disk->part_list; walk; - walk = ped_disk_next_partition (disk, walk)) { - if (ped_partition_is_active (walk) - && (walk->type & PED_PARTITION_LOGICAL)) - count++; - } - - return count; -} - -/* Load the HD size from the table and ask to fix it if != device size. */ -static int -atr_load_fix_hdsize (const PedDisk* disk, uint32_t* rs_hd_size, AtariRawTable* table) -{ - AtariDisk* atr_disk = ATARI_DISK (disk); - int result = PED_EXCEPTION_UNHANDLED; - - *rs_hd_size = PED_BE32_TO_CPU (table->hd_size); - if (*rs_hd_size != disk->dev->length) { - if (atr_disk->has_been_read) { - result = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE_CANCEL, - _("The sector count that is stored in the " - "partition table does not correspond " - "to the size of your device. Do you " - "want to fix the partition table?") ); - if (result == PED_EXCEPTION_CANCEL) - return 0; - } - - if (result == PED_EXCEPTION_UNHANDLED) - result = PED_EXCEPTION_FIX; - - if (result == PED_EXCEPTION_FIX) { - *rs_hd_size = disk->dev->length; - table->hd_size = PED_CPU_TO_BE32(*rs_hd_size); - } - } - return 1; -} - -/* Try to init the HDX compatibility Bad Sectors List. */ -static int -atr_empty_init_bsl (const PedDisk* disk) -{ - uint8_t zeros[PED_SECTOR_SIZE_DEFAULT]; - PedSector sec; - PedPartition* part; - AtariDisk* atr_disk = ATARI_DISK (disk); - - memset (zeros, 0, PED_SECTOR_SIZE_DEFAULT); - for (sec = atr_disk->bsl_start; - sec < atr_disk->bsl_start + atr_disk->bsl_count; - sec++ ) { - if (sec == atr_disk->bsl_start) - zeros[3] = 0xA5; - else - zeros[3] = 0; - part = ped_disk_get_partition_by_sector (disk, sec); - if (part && ped_partition_is_active (part)) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("No room at sector %lli to store BSL."), - sec ); - return 0; - } - ped_device_write (disk->dev, zeros, sec, 1); - } - atr_disk->HDX_comp = 0; - return 1; -} - -static int -atari_write (const PedDisk* disk) -{ - AtariRawTable table; - AtariDisk* atr_disk; - AtariPart* atr_part; - PedPartition* log; - PedPartition* ext_part; - PedPartition* part = NULL; - uint32_t rs_hd_size; - int i, xgm_begin, pnum, append_ext; - int put_sign, boot, prim_count, last_num; - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - atr_disk = ATARI_DISK (disk); - PED_ASSERT (atr_disk != NULL); - - prim_count = ped_disk_get_primary_partition_count (disk); - last_num = ped_disk_get_last_partition_num (disk); - ext_part = ped_disk_extended_partition (disk); - - /* WARNING: similar/related code in atari_enumerate */ - xgm_begin = ((log = ped_disk_get_partition (disk, 1)) - && (log->type & PED_PARTITION_LOGICAL)); - PED_ASSERT (atr_disk->format != FMT_ICD || ext_part == NULL); - PED_ASSERT (atr_disk->format != FMT_XGM || prim_count + xgm_begin <= N_AHDI); - PED_ASSERT (atr_disk->format != FMT_AHDI || (ext_part == NULL && prim_count + xgm_begin <= N_AHDI)); - - /* Device Spec ok for Atari label? */ - if (!atr_can_use_dev (disk->dev)) - goto error; - - if (!ped_device_read (disk->dev, (void*) &table, 0, 1)) - goto error; - - boot = atr_is_boot_table (&table); - - table.bsl_start = PED_CPU_TO_BE32 (atr_disk->bsl_start); - table.bsl_count = PED_CPU_TO_BE32 (atr_disk->bsl_count); - - /* Before anything else check the sector count and */ - /* fix it if necessary */ - if (!atr_load_fix_hdsize (disk, &rs_hd_size, &table)) - goto error; - - append_ext = (ext_part != NULL) - && (_disk_logical_partition_count (disk) == 0); - - /* Fill the AHDI table */ - put_sign = (prim_count == 0); - pnum = 1; - for (i = 0; i < N_AHDI; i++) { - if (pnum > last_num) - part = NULL; - else while (pnum <= last_num - && !(part = ped_disk_get_partition (disk, pnum))) - pnum++; - - if (put_sign) { - atr_put_signature_entry (&table.part[i]); - continue; - } - - if (!part && i != 0 && append_ext) { - part = ext_part; - append_ext = 0; - } - - if (!part || (i == 0 && xgm_begin)) { - table.part[i].flag &= ~PART_FLAG_USED; - continue; - } - - if (part->type & PED_PARTITION_LOGICAL) - part = ext_part; - - PED_ASSERT (part != NULL); - - atr_part = ATARI_PART (part); - atr_fill_raw_entry (&table.part[i], atr_part->flag, - atr_part->part_id, part->geom.start, - part->geom.length ); - - if (part->type & PED_PARTITION_EXTENDED) { - while (pnum <= last_num) { - part = ped_disk_get_partition (disk, pnum); - if (part && - !(part->type & PED_PARTITION_LOGICAL)) - break; - pnum++; - } - } else - pnum++; - } - - if ((ext_part != NULL || atr_disk->format == FMT_AHDI) - && pnum <= last_num) { - ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL, - _("There were remaining partitions after filling " - "the main AHDI table.") ); - goto error; - } - - /* Leave XGM or ICD mode if uneeded */ - if (pnum > last_num - && (atr_disk->format == FMT_ICD || ext_part == NULL)) - atr_disk->format = FMT_AHDI; - - /* If AHDI mode, check that no ICD will be detected */ - /* and propose to fix */ - if (atr_disk->format == FMT_AHDI - && atr_part_valid (&table.icd_part[0], rs_hd_size) - && atr_part_known (&table.icd_part[0], atr_known_icd_pid)) { - int result = PED_EXCEPTION_UNHANDLED; - result = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_YES_NO_CANCEL, - _("The main AHDI table has been filled with all " - "partitions but the ICD table is not empty " - "so more partitions of unknown size and position " - "will be detected by ICD compatible software. Do " - "you want to invalidate the ICD table?") ); - if (result == PED_EXCEPTION_YES - || result == PED_EXCEPTION_UNHANDLED) - table.icd_part[0].flag &= ~PART_FLAG_USED; - else if (result == PED_EXCEPTION_CANCEL) - goto error; - } - - if (put_sign) - goto write_to_dev; - - /* Fill the ICD table */ - if (atr_disk->format == FMT_ICD) - for (i = 0; i < N_ICD; i++) { - if (pnum > last_num) - part = NULL; - else while (pnum <= last_num - && !(part = ped_disk_get_partition (disk, pnum))) - pnum++; - - if (!part) { - table.icd_part[i].flag &= ~PART_FLAG_USED; - continue; - } - - if (part->type & PED_PARTITION_EXTENDED - || part->type & PED_PARTITION_LOGICAL) { - ped_exception_throw ( - PED_EXCEPTION_BUG, - PED_EXCEPTION_CANCEL, - _("ICD entries can't contain extended or " - "logical partitions.") ); - goto error; - } - - atr_part = ATARI_PART (part); - atr_fill_raw_entry (&table.icd_part[i], atr_part->flag, - atr_part->icd_id, part->geom.start, - part->geom.length ); - - pnum++; - } - - /* Write the chained list of logical partitions */ - if (atr_disk->format == FMT_XGM) { - if (!atr_write_logicals (disk)) - goto error; - } - -write_to_dev: - if (pnum <= last_num) { - ped_exception_throw (PED_EXCEPTION_BUG, PED_EXCEPTION_CANCEL, - _("There were remaining partitions after filling " - "the tables.") ); - goto error; - } - - /* Do we need to do that in case of failure too??? */ - atr_table_set_boot (&table, boot); - - /* Commit the root sector... */ - if (!ped_device_write (disk->dev, (void*) &table, 0, 1) - || !ped_device_sync (disk->dev)) - goto error; - - /* Try to init the HDX compatibility Bad Sectors List if needed. */ - if (atr_disk->HDX_comp && !atr_empty_init_bsl (disk)) - goto error; - - atr_disk->has_been_read = 1; - return ped_device_sync (disk->dev); - -error: - atr_disk->has_been_read = 0; - return 0; -} -#endif - -/* If extended partition in ICD mode, generate an error and returns 1 */ -/* else returns 0 */ -static int -atr_xgm_in_icd (const PedDisk* disk, PedPartitionType part_type) -{ - AtariDisk* atrdisk; - - PED_ASSERT (disk != NULL); - - if (part_type & PED_PARTITION_EXTENDED) { - atrdisk = ATARI_DISK (disk); - if (atrdisk->format == FMT_ICD) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("You can't use an extended XGM partition in " - "ICD mode (more than %d primary partitions, if " - "XGM is the first one it counts for two)."), - N_AHDI ); - return 1; - } - } - - return 0; -} - -static PedPartition* -atari_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - AtariPart* atrpart; - - if (atr_xgm_in_icd(disk, part_type)) - return 0; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - if (ped_partition_is_active (part)) { - part->disk_specific = atrpart = ped_malloc (sizeof (AtariPart)); - if (!atrpart) - goto error_free_part; - memset (atrpart, 0, sizeof (AtariPart)); - } else { - part->disk_specific = NULL; - } - return part; - -error_free_part: - _ped_partition_free (part); -error: - return NULL; -} - -static PedPartition* -atari_partition_duplicate (const PedPartition* part) -{ - PedPartition* new_part; - - new_part = ped_partition_new (part->disk, part->type, - part->fs_type, part->geom.start, - part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - if (ped_partition_is_active (part)) - memcpy (new_part->disk_specific, part->disk_specific, - sizeof (AtariPart)); - - return new_part; -} - -static void -atari_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) { - PED_ASSERT (part->disk_specific != NULL); - free (part->disk_specific); - } - _ped_partition_free (part); -} - -/* Note: fs_type is NULL for extended partitions */ -static int -atari_partition_set_system (PedPartition* part, - const PedFileSystemType* fs_type) -{ - AtariPart* atrpart; - AtariFS2PartId* fs2id; - PED_ASSERT (part != NULL); - atrpart = ATARI_PART (part); - PED_ASSERT (atrpart != NULL); - - part->fs_type = fs_type; - - if (atr_xgm_in_icd(part->disk, part->type)) - return 0; - - if (part->type & PED_PARTITION_EXTENDED) { - strcpy (atrpart->part_id, "XGM"); - strcpy (atrpart->icd_id, "XGM"); - return 1; - } - - if (!fs_type) { - strcpy (atrpart->part_id, "RAW"); - strcpy (atrpart->icd_id, "RAW"); - return 1; - } - - for (fs2id = atr_fs2pid; fs2id->fs; fs2id++) { - if (!*fs2id->fs /* default entry */ - || ((!strcmp (fs_type->name, fs2id->fs) - && part->geom.length < fs2id->max_sectors))) { - - strcpy (atrpart->part_id, fs2id->pid); - if (atr_pid_known (fs2id->pid, atr_known_icd_pid)) - strcpy (atrpart->icd_id, fs2id->pid); - else - strcpy (atrpart->icd_id, "RAW"); - - break; - } - } - PED_ASSERT (fs2id->fs != NULL); - - return 1; -} - -static int -atari_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - AtariPart* atr_part; - AtariPartID2BootFlag* bf; - - PED_ASSERT (part != NULL); - atr_part = ATARI_PART (part); - PED_ASSERT (atr_part != NULL); - - if (flag != PED_PARTITION_BOOT) - return 0; - - if (state == 0) { - atr_part->flag = 0; - } else { - for (bf = atr_pid2bf; *bf->pid; bf++) { - if (atr_pid_eq (bf->pid, atr_part->part_id)) - break; - } - atr_part->flag = bf->flag; - } - - return 1; -} - -static int _GL_ATTRIBUTE_PURE -atari_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - AtariPart* atr_part; - - PED_ASSERT (part != NULL); - atr_part = ATARI_PART (part); - PED_ASSERT (atr_part != NULL); - - if (flag != PED_PARTITION_BOOT) - return 0; - - return (atr_part->flag != 0); -} - -static int -atari_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - if (flag == PED_PARTITION_BOOT) - return 1; - - return 0; -} - -/* Adapted from disk_dos */ -static PedConstraint* -atr_log_constraint (const PedPartition* part) -{ - const PedGeometry* geom = &part->geom; - PedGeometry safe_space; - PedSector min_start; - PedSector max_end; - PedDisk* disk; - PedDevice* dev; - PedPartition* ext_part; - PedPartition* walk; - int first_log, not_first; - - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->dev != NULL); - ext_part = ped_disk_extended_partition (part->disk); - PED_ASSERT (ext_part != NULL); - - dev = (disk = part->disk) -> dev; - - first_log = atr_find_first_log (disk); - if (first_log == -1) - first_log = part->num; - - not_first = (part->num != first_log); - - walk = ext_part->part_list; - - min_start = ext_part->geom.start + 1 + not_first; - max_end = ext_part->geom.end; - - while (walk != NULL - && ( walk->geom.start - (walk->num != first_log) - < geom->start - not_first - || walk->geom.start - (walk->num != first_log) - < min_start ) ) { - if (walk != part && ped_partition_is_active (walk)) - min_start = walk->geom.end + 1 + not_first; - walk = walk->next; - } - - while (walk && (walk == part || !ped_partition_is_active (walk))) - walk = walk->next; - - if (walk) - max_end = walk->geom.start - 1 - (walk->num != first_log); - - if (min_start >= max_end) - return NULL; - - ped_geometry_init (&safe_space, dev, min_start, - max_end - min_start + 1); - return ped_constraint_new_from_max (&safe_space); -} - -/* Adapted from disk_dos */ -static PedGeometry* -art_min_extended_geom (const PedPartition* ext_part) -{ - PedDisk* disk = ext_part->disk; - PedPartition* walk; - PedGeometry* min_geom; - int first_log; - - first_log = atr_find_first_log (disk); - if (first_log == -1) - return NULL; - - walk = ped_disk_get_partition (disk, first_log); - PED_ASSERT (walk->type & PED_PARTITION_LOGICAL); - min_geom = ped_geometry_duplicate (&walk->geom); - if (!min_geom) - return NULL; - ped_geometry_set_start (min_geom, walk->geom.start - 1); - - for (walk = ext_part->part_list; walk; walk = walk->next) { - if (!ped_partition_is_active (walk) || walk->num == first_log) - continue; - if (walk->geom.start < min_geom->start) - ped_geometry_set_start (min_geom, walk->geom.start - 2); - if (walk->geom.end > min_geom->end) - ped_geometry_set_end (min_geom, walk->geom.end); - } - - return min_geom; -} - -/* Adapted from disk_dos */ -static PedConstraint* -atr_ext_constraint (const PedPartition* part) -{ - PedGeometry start_range; - PedGeometry end_range; - PedConstraint* constraint; - PedDevice* dev; - PedDisk* disk; - PedGeometry* min; - - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->dev != NULL); - - dev = (disk = part->disk) -> dev; - min = art_min_extended_geom (part); - - if (min) { - ped_geometry_init (&start_range, dev, 1, min->start); - ped_geometry_init (&end_range, dev, min->end, - dev->length - min->end); - ped_geometry_destroy (min); - } else { - ped_geometry_init (&start_range, dev, 1, dev->length - 1); - ped_geometry_init (&end_range, dev, 1, dev->length - 1); - } - - constraint = ped_constraint_new (ped_alignment_any, ped_alignment_any, - &start_range, &end_range, 1, dev->length); - return constraint; -} - -static PedConstraint* -atr_prim_constraint (const PedPartition* part) -{ - PedDevice* dev; - PedGeometry max; - - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->dev != NULL); - - dev = part->disk->dev; - - ped_geometry_init (&max, dev, 1, dev->length - 1); - return ped_constraint_new_from_max (&max); -} - -/* inspiration from disk_dos */ -static PedGeometry* -_best_solution (PedGeometry* a, PedGeometry* b) -{ - if (!a) - return b; - if (!b) - return a; - - if (a->length < b->length) - goto choose_b; - - ped_geometry_destroy (b); - return a; - -choose_b: - ped_geometry_destroy (a); - return b; -} - -/* copied from disk_dos */ -static PedGeometry* -_try_constraint (const PedPartition* part, const PedConstraint* external, - PedConstraint* internal) -{ - PedConstraint* intersection; - PedGeometry* solution; - - intersection = ped_constraint_intersect (external, internal); - ped_constraint_destroy (internal); - if (!intersection) - return NULL; - - solution = ped_constraint_solve_nearest (intersection, &part->geom); - ped_constraint_destroy (intersection); - return solution; -} - -/* - * internal is either the primary or extented constraint. - * If there's no BSL, the is the only internal constraint considered. - * If there's a BSL, try to fit the partition before or after (and - * choose the best fit, the one which results in the greatest size...) - */ -static int -atr_prim_align (PedPartition* part, const PedConstraint* constraint, - PedConstraint* internal) -{ - PedDevice* dev; - AtariDisk* atr_disk; - PedConstraint* cut; - PedGeometry* solution = NULL; - PedGeometry max; - PedSector bsl_end; - - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->dev != NULL); - dev = part->disk->dev; - atr_disk = ATARI_DISK (part->disk); - PED_ASSERT (atr_disk != NULL); - - /* No BSL */ - if (!atr_disk->bsl_start && !atr_disk->bsl_count) { - /* Note: _ped_partition_attempt_align will destroy internal */ - return _ped_partition_attempt_align(part, constraint, internal); - } - - /* BSL, try to fit before */ - if (atr_disk->bsl_start > 1) { - ped_geometry_init (&max, dev, 1, atr_disk->bsl_start - 1); - cut = ped_constraint_new_from_max (&max); - solution = _best_solution (solution, - _try_constraint (part, constraint, - ped_constraint_intersect (internal, cut))); - ped_constraint_destroy (cut); - } - - /* BSL, try to fit after, take the best solution */ - bsl_end = atr_disk->bsl_start + atr_disk->bsl_count; - if (bsl_end < dev->length) { - ped_geometry_init (&max, dev, bsl_end, dev->length - bsl_end); - cut = ped_constraint_new_from_max (&max); - solution = _best_solution (solution, - _try_constraint (part, constraint, - ped_constraint_intersect (internal, cut))); - ped_constraint_destroy (cut); - } - - ped_constraint_destroy (internal); - - if (solution) { - ped_geometry_set (&part->geom, solution->start, - solution->length); - ped_geometry_destroy (solution); - return 1; - } - - return 0; -} - -static int -atari_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - - switch (part->type) { - case PED_PARTITION_LOGICAL: - if (_ped_partition_attempt_align (part, constraint, - atr_log_constraint (part) ) ) - return 1; - break; - case PED_PARTITION_EXTENDED: - if (atr_prim_align (part, constraint, - atr_ext_constraint (part) ) ) - return 1; - break; - default: - if (atr_prim_align (part, constraint, - atr_prim_constraint (part) ) ) - return 1; - break; - } - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -/* increment numbers of any non logical partition found after the last */ -/* logical one, to make room for a new logical partition */ -static int -art_room_for_logic (PedDisk* disk) -{ - PedPartition* part; - int num, last_logic, last; - - /* too many partitions ? */ - last = ped_disk_get_last_partition_num (disk); - if (last >= MAXIMUM_PARTS) - return 0; - - /* find the last logical partition */ - last_logic = 0; - for (num = 1; num <= last; num++) { - part = ped_disk_get_partition (disk, num); - if (part && ped_partition_is_active (part) - && (part->type & PED_PARTITION_LOGICAL)) - last_logic = num; - } - - if (!last_logic) - return 1; - - /* increment */ - for (num = last; num > last_logic; num--) { - part = ped_disk_get_partition (disk, num); - if (part && ped_partition_is_active (part) - && !(part->type & ( PED_PARTITION_LOGICAL - | PED_PARTITION_EXTENDED)) - && part->num > 0 ) - part->num++; - } - - return 1; -} - -static int -atari_partition_enumerate (PedPartition* part) -{ - AtariDisk* atrdisk; - PedPartition* ext_part; - PedPartition* log; - int i, want_icd, want_xgm, num_max, xgm_begin, prim_count; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - atrdisk = ATARI_DISK (part->disk); - PED_ASSERT (atrdisk != NULL); - - /* WARNING: some similar/related code in atari_write */ - /* This is quite a : this function is probably the only way */ - /* to know something has been / is going to be modified in the table.*/ - /* So we detect the current operation mode (AHDI/XGM/ICD) and report */ - /* errors (in which case we refuse to operate...) */ - - prim_count = ped_disk_get_primary_partition_count (part->disk); - ext_part = ped_disk_extended_partition (part->disk); - - /* : we can't reorder (yet) , so if we begin with */ - /* XGM the first slot must be empty */ - xgm_begin = ((log = ped_disk_get_partition (part->disk, 1)) - && (log->type & PED_PARTITION_LOGICAL)) - || ((part->num == -1) - && (part->type & PED_PARTITION_LOGICAL) - && !ped_disk_get_partition (part->disk, 1)); - /* */ - - PED_ASSERT (atrdisk->format != FMT_ICD || ext_part == NULL); - PED_ASSERT (atrdisk->format != FMT_XGM - || prim_count + xgm_begin <= N_AHDI); - PED_ASSERT (atrdisk->format != FMT_AHDI - || (ext_part == NULL && prim_count + xgm_begin <= N_AHDI)); - - want_icd = ( ( prim_count - + xgm_begin - + ( (part->num == -1) - && !(part->type & PED_PARTITION_LOGICAL) ) ) - > N_AHDI ); - want_xgm = ( (part->type & PED_PARTITION_EXTENDED) - || ext_part != NULL ); - - if (!want_xgm && !want_icd) - atrdisk->format = FMT_AHDI; - else if (want_xgm && !want_icd) - atrdisk->format = FMT_XGM; - else if (!want_xgm && want_icd) - atrdisk->format = FMT_ICD; - else { - if (atr_xgm_in_icd (part->disk, PED_PARTITION_EXTENDED)) - return 0; - else { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("You can't use more than %d primary partitions " - "(ICD mode) if you use an extended XGM " - "partition. If XGM is the first partition " - "it counts for two."), - N_AHDI ); - return 0; - } - } - /* End of */ - - - /* Ext will be numbered 0 and will stay 0... */ - if (part->num == 0) - return 1; - - if (part->num == -1) { - - /* Linux don't show the ext part itself for Atari disk labels */ - /* so we use number 0 (could use a big number too, but that */ - /* would be less cute ;) */ - if (part->type & PED_PARTITION_EXTENDED) { - part->num = 0; - return 1; - } - - switch (atrdisk->format) { - case FMT_AHDI: - case FMT_ICD: - num_max = N_ICD + N_AHDI; - break; - case FMT_XGM: - num_max = MAXIMUM_PARTS; - break; - default: - num_max = 0; - PED_ASSERT (0); - } - - /* make room for logical partitions */ - if (part->type & PED_PARTITION_LOGICAL) { - if (!art_room_for_logic (part->disk)) - goto error_alloc_failed; - } - - /* find an unused number */ - for (i = 1; i <= num_max; i++) { - if (!ped_disk_get_partition (part->disk, i)) { - part->num = i; - return 1; - } - } - - } else { - /* find an unused number before or don't re-number */ - for (i = 1; i < part->num; i++) { - if (!ped_disk_get_partition (part->disk, i)) { - part->num = i; - } - } - return 1; - } - - /* failed to allocate a number */ -error_alloc_failed: -#ifndef DISCOVER_ONLY - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unable to allocate a partition number.")); -#endif - return 0; -} - -static int -atr_creat_add_metadata (PedDisk* disk, PedSector start, PedSector end, - PedPartitionType type ) -{ - PedPartition* new_part; - PedConstraint* const_exact; - int added; - - type |= PED_PARTITION_METADATA; - new_part = ped_partition_new (disk, type, NULL, start, end); - if (!new_part) - goto error; - - const_exact = ped_constraint_exact (&new_part->geom); - added = ped_disk_add_partition (disk, new_part, const_exact); - ped_constraint_destroy (const_exact); - if (!added) - goto error_destroy_part; - - return 1; - -error_destroy_part: - ped_partition_destroy (new_part); -error: - return 0; -} - -static int -atari_alloc_metadata (PedDisk* disk) -{ - PedPartition* ext; - PedPartition* log; - AtariDisk* atr_disk; - int i; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - atr_disk = ATARI_DISK (disk); - PED_ASSERT (atr_disk != NULL); - - /* allocate 1 sector for the disk label at the start */ - if (!atr_creat_add_metadata (disk, 0, 0, 0)) - return 0; - - /* allocate the sectors containing the BSL */ - if (atr_disk->bsl_start || atr_disk->bsl_count) { - if (!atr_creat_add_metadata (disk, atr_disk->bsl_start, - atr_disk->bsl_start - + atr_disk->bsl_count - 1, 0 ) ) - return 0; - } - - ext = ped_disk_extended_partition (disk); - if (ext) { - if (!atr_creat_add_metadata (disk, ext->geom.start, - ext->geom.start, - PED_PARTITION_LOGICAL ) ) - return 0; - - /* Find the first logical part */ - for (i = 1; i <= ped_disk_get_last_partition_num (disk); i++) - if ((log = ped_disk_get_partition (disk, i)) - && (log->type & PED_PARTITION_LOGICAL)) - break; - - for (log = ext->part_list; log; log = log->next) { - if ((log->type & ( PED_PARTITION_METADATA - | PED_PARTITION_FREESPACE)) - || log->num == i) - continue; - - if (!atr_creat_add_metadata (disk, log->geom.start-1, - log->geom.start-1, - PED_PARTITION_LOGICAL ) ) - return 0; - } - } - - return 1; -} - -static int _GL_ATTRIBUTE_PURE -atari_get_max_primary_partition_count (const PedDisk* disk) -{ - AtariDisk* atr_disk; - - PED_ASSERT (disk != NULL); - atr_disk = ATARI_DISK (disk); - PED_ASSERT (atr_disk != NULL); - - return atr_disk->format == FMT_XGM ? N_AHDI : N_AHDI + N_ICD; -} - -static bool -atari_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - AtariDisk* atr_disk; - - PED_ASSERT (disk != NULL); - atr_disk = ATARI_DISK (disk); - PED_ASSERT (atr_disk != NULL); - - *max_n = atr_disk->format == FMT_XGM ? N_AHDI : N_AHDI + N_ICD; - return true; -} - -#include "pt-common.h" -PT_define_limit_functions(atari) - -static PedDiskOps atari_disk_ops = { - clobber: NULL_IF_DISCOVER_ONLY (atari_clobber), - write: NULL_IF_DISCOVER_ONLY (atari_write), - - partition_set_name: NULL, - partition_get_name: NULL, - - PT_op_function_initializers (atari) -}; - -static PedDiskType atari_disk_type = { - next: NULL, - name: "atari", - ops: &atari_disk_ops, - features: PED_DISK_TYPE_EXTENDED -}; - -void -ped_disk_atari_init () -{ - PED_ASSERT (sizeof (AtariRawPartition) == 12); - PED_ASSERT (sizeof (AtariRawTable) == 512); - /* GNU Libc doesn't support NULL instead of the locale name */ - PED_ASSERT ((atr_c_locale = newlocale(LC_ALL_MASK, "C", NULL)) != NULL); - - ped_disk_type_register (&atari_disk_type); -} - -void -ped_disk_atari_done () -{ - ped_disk_type_unregister (&atari_disk_type); - freelocale(atr_c_locale); -} diff --git a/jni/parted/libparted/labels/bsd.c b/jni/parted/libparted/labels/bsd.c deleted file mode 100755 index 38bc64c..0000000 --- a/jni/parted/libparted/labels/bsd.c +++ /dev/null @@ -1,654 +0,0 @@ -/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - - libparted - a library for manipulating disk partitions - Copyright (C) 2000-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . - - Contributor: Matt Wilson -*/ - -#include - -#include -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "misc.h" -#include "pt-tools.h" - -/* struct's & #define's stolen from libfdisk, which probably came from - * Linux... - */ - -#define BSD_DISKMAGIC (0x82564557UL) /* The disk magic number */ -#define BSD_MAXPARTITIONS 8 -#define BSD_FS_UNUSED 0 /* disklabel unused partition entry ID */ - -#define BSD_DTYPE_SMD 1 /* SMD, XSMD; VAX hp/up */ -#define BSD_DTYPE_MSCP 2 /* MSCP */ -#define BSD_DTYPE_DEC 3 /* other DEC (rk, rl) */ -#define BSD_DTYPE_SCSI 4 /* SCSI */ -#define BSD_DTYPE_ESDI 5 /* ESDI interface */ -#define BSD_DTYPE_ST506 6 /* ST506 etc. */ -#define BSD_DTYPE_HPIB 7 /* CS/80 on HP-IB */ -#define BSD_DTYPE_HPFL 8 /* HP Fiber-link */ -#define BSD_DTYPE_FLOPPY 10 /* floppy */ - -#define BSD_BBSIZE 8192 /* size of boot area, with label */ -#define BSD_SBSIZE 8192 /* max size of fs superblock */ - -typedef struct _BSDRawPartition BSDRawPartition; -typedef struct _BSDRawLabel BSDRawLabel; -typedef struct _BSDDiskData BSDDiskData; - -struct _BSDRawPartition { /* the partition table */ - uint32_t p_size; /* number of sectors in partition */ - uint32_t p_offset; /* starting sector */ - uint32_t p_fsize; /* file system basic fragment size */ - uint8_t p_fstype; /* file system type, see below */ - uint8_t p_frag; /* file system fragments per block */ - uint16_t p_cpg; /* file system cylinders per group */ -} __attribute__((packed)); - -struct _BSDRawLabel { - uint32_t d_magic; /* the magic number */ - int16_t d_type; /* drive type */ - int16_t d_subtype; /* controller/d_type specific */ - int8_t d_typename[16]; /* type name, e.g. "eagle" */ - int8_t d_packname[16]; /* pack identifier */ - uint32_t d_secsize; /* # of bytes per sector */ - uint32_t d_nsectors; /* # of data sectors per track */ - uint32_t d_ntracks; /* # of tracks per cylinder */ - uint32_t d_ncylinders; /* # of data cylinders per unit */ - uint32_t d_secpercyl; /* # of data sectors per cylinder */ - uint32_t d_secperunit; /* # of data sectors per unit */ - uint16_t d_sparespertrack; /* # of spare sectors per track */ - uint16_t d_sparespercyl; /* # of spare sectors per cylinder */ - uint32_t d_acylinders; /* # of alt. cylinders per unit */ - uint16_t d_rpm; /* rotational speed */ - uint16_t d_interleave; /* hardware sector interleave */ - uint16_t d_trackskew; /* sector 0 skew, per track */ - uint16_t d_cylskew; /* sector 0 skew, per cylinder */ - uint32_t d_headswitch; /* head switch time, usec */ - uint32_t d_trkseek; /* track-to-track seek, usec */ - uint32_t d_flags; /* generic flags */ -#define NDDATA 5 - uint32_t d_drivedata[NDDATA]; /* drive-type specific information */ -#define NSPARE 5 - uint32_t d_spare[NSPARE]; /* reserved for future use */ - uint32_t d_magic2; /* the magic number (again) */ - uint16_t d_checksum; /* xor of data incl. partitions */ - - /* file system and partition information: */ - uint16_t d_npartitions; /* number of partitions in following */ - uint32_t d_bbsize; /* size of boot area at sn0, bytes */ - uint32_t d_sbsize; /* max size of fs superblock, bytes */ -#define D_PARTITIONS_WORDS 59 - BSDRawPartition d_partitions[BSD_MAXPARTITIONS]; /* actually may be more */ -} __attribute__((packed, aligned(2))); - -struct _BSDDiskData { - char boot_code[64]; - BSDRawLabel label; /* label is offset by 64 bytes */ - char unused[172]; /* May contain more partitions */ -} __attribute__((packed, aligned(2))); - -typedef struct { - uint8_t type; - int boot; - int raid; - int lvm; -} BSDPartitionData; - -static PedDiskType bsd_disk_type; - -/* XXX fixme: endian? */ -static unsigned short -xbsd_dkcksum (BSDRawLabel *lp) { - const u_short* word = (u_short*)(lp); - const u_short* end = word + D_PARTITIONS_WORDS + PED_LE16_TO_CPU(lp->d_npartitions); - u_short sum; - - lp->d_checksum = 0; - for(sum=0; word < end; word++) - sum ^= PED_LE16_TO_CPU(*word); - return sum; -} - -/* XXX fixme: endian? */ -static void -alpha_bootblock_checksum (void *boot) { - uint64_t* dp = (uint64_t *)boot; - uint64_t sum=0; - int i; - - for (i = 0; i < 63; i++) - sum += dp[i]; - dp[63] = sum; -} - -static int -bsd_probe (const PedDevice *dev) -{ - BSDRawLabel *label; - - PED_ASSERT (dev != NULL); - - if (dev->sector_size < 512) - return 0; - - void *s0; - if (!ptt_read_sector (dev, 0, &s0)) - return 0; - - label = &((BSDDiskData*) s0)->label; - - /* check magic */ - bool found = PED_LE32_TO_CPU (label->d_magic) == BSD_DISKMAGIC; - free (s0); - return found; -} - -static PedDisk* -bsd_alloc (const PedDevice* dev) -{ - PedDisk* disk; - BSDDiskData* bsd_specific; - BSDRawLabel *label; - - PED_ASSERT(dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - disk = _ped_disk_alloc ((PedDevice*)dev, &bsd_disk_type); - if (!disk) - goto error; - disk->disk_specific = bsd_specific = ped_calloc (sizeof (BSDDiskData)); - if (!bsd_specific) - goto error_free_disk; - - /* Initialize the disk label's default values */ - label = &bsd_specific->label; - label->d_magic = PED_CPU_TO_LE32 (BSD_DISKMAGIC); - label->d_type = PED_CPU_TO_LE16 (BSD_DTYPE_SCSI); - label->d_flags = 0; - label->d_secsize = PED_CPU_TO_LE16 (dev->sector_size); - label->d_nsectors = PED_CPU_TO_LE32 (dev->bios_geom.sectors); - label->d_ntracks = PED_CPU_TO_LE32 (dev->bios_geom.heads); - label->d_ncylinders = PED_CPU_TO_LE32 (dev->bios_geom.cylinders); - label->d_secpercyl = PED_CPU_TO_LE32 (dev->bios_geom.sectors - * dev->bios_geom.heads); - label->d_secperunit - = PED_CPU_TO_LE32 (dev->bios_geom.sectors - * dev->bios_geom.heads - * dev->bios_geom.cylinders); - - label->d_rpm = PED_CPU_TO_LE16 (3600); - label->d_interleave = PED_CPU_TO_LE16 (1); - label->d_trackskew = 0; - label->d_cylskew = 0; - label->d_headswitch = 0; - label->d_trkseek = 0; - - label->d_magic2 = PED_CPU_TO_LE32 (BSD_DISKMAGIC); - label->d_bbsize = PED_CPU_TO_LE32 (BSD_BBSIZE); - label->d_sbsize = PED_CPU_TO_LE32 (BSD_SBSIZE); - - label->d_npartitions = 0; - label->d_checksum = xbsd_dkcksum (label); - - return disk; - -error_free_disk: - free (disk); -error: - return NULL; -} - -static PedDisk* -bsd_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - BSDDiskData* new_bsd_data; - BSDDiskData* old_bsd_data = (BSDDiskData*) disk->disk_specific; - - new_disk = ped_disk_new_fresh (disk->dev, &bsd_disk_type); - if (!new_disk) - return NULL; - - new_bsd_data = (BSDDiskData*) new_disk->disk_specific; - memcpy (new_bsd_data, old_bsd_data, sizeof(BSDDiskData)); - return new_disk; -} - -static void -bsd_free (PedDisk* disk) -{ - free (disk->disk_specific); - _ped_disk_free (disk); -} - -static int -bsd_read (PedDisk* disk) -{ - BSDDiskData* bsd_specific = (BSDDiskData*) disk->disk_specific; - BSDRawLabel* label; - int i; - - ped_disk_delete_all (disk); - - void *s0; - if (!ptt_read_sector (disk->dev, 0, &s0)) - return 0; - - memcpy (bsd_specific, s0, sizeof (BSDDiskData)); - free (s0); - - label = &bsd_specific->label; - - for (i = 1; i <= BSD_MAXPARTITIONS; i++) { - PedPartition* part; - BSDPartitionData* bsd_part_data; - PedSector start; - PedSector end; - - if (!label->d_partitions[i - 1].p_size - || !label->d_partitions[i - 1].p_fstype) - continue; - start = PED_LE32_TO_CPU(label->d_partitions[i - 1].p_offset); - end = PED_LE32_TO_CPU(label->d_partitions[i - 1].p_offset) - + PED_LE32_TO_CPU(label->d_partitions[i - 1].p_size) - 1; - part = ped_partition_new (disk, PED_PARTITION_NORMAL, - NULL, start, end); - if (!part) - goto error; - bsd_part_data = part->disk_specific; - bsd_part_data->type = label->d_partitions[i - 1].p_fstype; - part->num = i; - part->fs_type = ped_file_system_probe (&part->geom); - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - if (constraint_exact == NULL) - goto error; - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) - goto error; - } - - return 1; - -error: - return 0; -} - -static void -_probe_and_add_boot_code (const PedDisk* disk) -{ - BSDDiskData *old_data; - - void *s0; - if (!ptt_read_sector (disk->dev, 0, &s0)) - return; - old_data = (BSDDiskData*) s0; - if (old_data->boot_code [0] - && old_data->label.d_magic == PED_CPU_TO_LE32 (BSD_DISKMAGIC)) { - BSDDiskData *bsd_specific = (BSDDiskData*) disk->disk_specific; - memcpy (bsd_specific, old_data, sizeof (BSDDiskData)); - } - free (s0); -} - -#ifndef DISCOVER_ONLY -static int -bsd_write (const PedDisk* disk) -{ - BSDDiskData* bsd_specific; - BSDRawLabel* label; - BSDPartitionData* bsd_data; - PedPartition* part; - int i; - int max_part = 0; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - bsd_specific = (BSDDiskData*) disk->disk_specific; - label = &bsd_specific->label; - - if (!bsd_specific->boot_code[0]) - _probe_and_add_boot_code (disk); - - memset (label->d_partitions, 0, - sizeof (BSDRawPartition) * BSD_MAXPARTITIONS); - - for (i = 1; i <= BSD_MAXPARTITIONS; i++) { - part = ped_disk_get_partition (disk, i); - if (!part) - continue; - bsd_data = part->disk_specific; - label->d_partitions[i - 1].p_fstype = bsd_data->type; - label->d_partitions[i - 1].p_offset - = PED_CPU_TO_LE32 (part->geom.start); - label->d_partitions[i - 1].p_size - = PED_CPU_TO_LE32 (part->geom.length); - max_part = i; - } - - label->d_npartitions = PED_CPU_TO_LE16 (max_part + 1); - label->d_checksum = xbsd_dkcksum (label); - - alpha_bootblock_checksum (bsd_specific); - - if (!ptt_write_sector (disk, bsd_specific, - sizeof (BSDDiskData))) - goto error; - return ped_device_sync (disk->dev); - -error: - return 0; -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -bsd_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - BSDPartitionData* bsd_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (ped_partition_is_active (part)) { - part->disk_specific - = bsd_data = ped_malloc (sizeof (BSDPartitionData)); - if (!bsd_data) - goto error_free_part; - bsd_data->type = 0; - bsd_data->boot = 0; - bsd_data->raid = 0; - bsd_data->lvm = 0; - } else { - part->disk_specific = NULL; - } - return part; - -error_free_part: - free (part); -error: - return 0; -} - -static PedPartition* -bsd_partition_duplicate (const PedPartition* part) -{ - PedPartition* new_part; - BSDPartitionData* new_bsd_data; - BSDPartitionData* old_bsd_data; - - new_part = ped_partition_new (part->disk, part->type, - part->fs_type, part->geom.start, - part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - - old_bsd_data = (BSDPartitionData*) part->disk_specific; - new_bsd_data = (BSDPartitionData*) new_part->disk_specific; - new_bsd_data->type = old_bsd_data->type; - new_bsd_data->boot = old_bsd_data->boot; - new_bsd_data->raid = old_bsd_data->raid; - new_bsd_data->lvm = old_bsd_data->lvm; - return new_part; -} - -static void -bsd_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) - free (part->disk_specific); - _ped_partition_free (part); -} - -static int -bsd_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - BSDPartitionData* bsd_data = part->disk_specific; - - part->fs_type = fs_type; - - if (!fs_type) - bsd_data->type = 0x8; - else if (is_linux_swap (fs_type->name)) - bsd_data->type = 0x1; - else - bsd_data->type = 0x8; - - return 1; -} - -static int -bsd_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - BSDPartitionData* bsd_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - PED_ASSERT (part->disk != NULL); - - bsd_data = part->disk_specific; - - switch (flag) { - case PED_PARTITION_BOOT: - bsd_data->boot = state; - return 1; - case PED_PARTITION_RAID: - if (state) { - bsd_data->lvm = 0; - } - bsd_data->raid = state; - return 1; - case PED_PARTITION_LVM: - if (state) { - bsd_data->raid = 0; - } - bsd_data->lvm = state; - return 1; - default: - ; - } - return 0; -} - -static int _GL_ATTRIBUTE_PURE -bsd_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - BSDPartitionData* bsd_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - bsd_data = part->disk_specific; - switch (flag) { - case PED_PARTITION_BOOT: - return bsd_data->boot; - - case PED_PARTITION_RAID: - return bsd_data->raid; - - case PED_PARTITION_LVM: - return bsd_data->lvm; - - default: - ; - } - return 0; -} - -static int -bsd_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_BOOT: - case PED_PARTITION_RAID: - case PED_PARTITION_LVM: - return 1; - default: - ; - } - return 0; -} - - -static int -bsd_get_max_primary_partition_count (const PedDisk* disk) -{ - return BSD_MAXPARTITIONS; -} - -static bool -bsd_get_max_supported_partition_count(const PedDisk* disk, int *max_n) -{ - *max_n = BSD_MAXPARTITIONS; - return true; -} - -static PedConstraint* -_get_constraint (const PedDevice* dev) -{ - PedGeometry max; - - ped_geometry_init (&max, dev, 1, dev->length - 1); - return ped_constraint_new_from_max (&max); -} - -static int -bsd_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - if (_ped_partition_attempt_align (part, constraint, - _get_constraint (part->disk->dev))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -bsd_partition_enumerate (PedPartition* part) -{ - int i; - PedPartition* p; - - /* never change the partition numbers */ - if (part->num != -1) - return 1; - for (i = 1; i <= BSD_MAXPARTITIONS; i++) { - p = ped_disk_get_partition (part->disk, i); - if (!p) { - part->num = i; - return 1; - } - } - - /* failed to allocate a number */ -#ifndef DISCOVER_ONLY - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unable to allocate a bsd disklabel slot.")); -#endif - return 0; -} - -static int -bsd_alloc_metadata (PedDisk* disk) -{ - PedPartition* new_part; - PedConstraint* constraint_any = NULL; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - constraint_any = ped_constraint_any (disk->dev); - - /* allocate 1 sector for the disk label at the start */ - new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, 0, 0); - if (!new_part) - goto error; - - if (!ped_disk_add_partition (disk, new_part, constraint_any)) { - ped_partition_destroy (new_part); - goto error; - } - - ped_constraint_destroy (constraint_any); - return 1; -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -#include "pt-common.h" -PT_define_limit_functions (bsd) - -static PedDiskOps bsd_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (bsd_write), - - partition_set_name: NULL, - partition_get_name: NULL, - - PT_op_function_initializers (bsd) -}; - -static PedDiskType bsd_disk_type = { - next: NULL, - name: "bsd", - ops: &bsd_disk_ops, - features: 0 -}; - -void -ped_disk_bsd_init () -{ - PED_ASSERT (sizeof (BSDRawPartition) == 16); - PED_ASSERT (sizeof (BSDRawLabel) == 276); - - ped_disk_type_register (&bsd_disk_type); -} - -void -ped_disk_bsd_done () -{ - ped_disk_type_unregister (&bsd_disk_type); -} diff --git a/jni/parted/libparted/labels/dasd.c b/jni/parted/libparted/labels/dasd.c deleted file mode 100755 index 1d99458..0000000 --- a/jni/parted/libparted/labels/dasd.c +++ /dev/null @@ -1,1032 +0,0 @@ -/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - - libparted - a library for manipulating disk partitions - Copyright (C) 2000-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . - - Contributor: Phil Knirsch - Harald Hoyer -*/ - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#if ENABLE_NLS -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "misc.h" -#include "pt-tools.h" - -#define PARTITION_LINUX_SWAP 0x82 -#define PARTITION_LINUX 0x83 -#define PARTITION_LINUX_LVM 0x8e -#define PARTITION_LINUX_RAID 0xfd - -extern void ped_disk_dasd_init (); -extern void ped_disk_dasd_done (); - -#define DASD_NAME "dasd" - -typedef struct { - int type; - int system; -} DasdPartitionData; - -typedef struct { - unsigned int format_type; - unsigned int label_block; - volume_label_t vlabel; -} DasdDiskSpecific; - -static int dasd_probe (const PedDevice *dev); -static int dasd_read (PedDisk* disk); -static int dasd_write (const PedDisk* disk); - -static PedPartition* dasd_partition_new (const PedDisk* disk, - PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, - PedSector end); -static PedPartition* dasd_partition_duplicate (const PedPartition *part); -static void dasd_partition_destroy (PedPartition* part); -static int dasd_partition_set_flag (PedPartition* part, - PedPartitionFlag flag, - int state); -static int dasd_partition_get_flag (const PedPartition* part, - PedPartitionFlag flag); -static int dasd_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag); -static int dasd_partition_align (PedPartition* part, - const PedConstraint* constraint); -static int dasd_partition_enumerate (PedPartition* part); -static int dasd_get_max_primary_partition_count (const PedDisk* disk); -static bool dasd_get_max_supported_partition_count (const PedDisk* disk, int *max_n); -static PedAlignment *dasd_get_partition_alignment(const PedDisk *disk); - -static PedDisk* dasd_alloc (const PedDevice* dev); -static PedDisk* dasd_duplicate (const PedDisk* disk); -static void dasd_free (PedDisk* disk); -static int dasd_partition_set_system (PedPartition* part, - const PedFileSystemType* fs_type); -static int dasd_alloc_metadata (PedDisk* disk); - -#include "pt-common.h" -PT_define_limit_functions (dasd) - -static PedDiskOps dasd_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (dasd_write), - - partition_set_name: NULL, - partition_get_name: NULL, - partition_set_type_id: NULL, - partition_get_type_id: NULL, - partition_set_type_uuid: NULL, - partition_get_type_uuid: NULL, - - get_partition_alignment: dasd_get_partition_alignment, - - PT_op_function_initializers (dasd) -}; - -static PedDiskType dasd_disk_type = { - next: NULL, - name: "dasd", - ops: &dasd_disk_ops, - features: 0 -}; - -struct flag_id_mapping_t -{ - enum _PedPartitionFlag flag; - int type_id; -}; - -static const struct flag_id_mapping_t flag_id_mapping[] = -{ - { PED_PARTITION_LVM, PARTITION_LINUX_LVM }, - { PED_PARTITION_RAID, PARTITION_LINUX_RAID }, - { PED_PARTITION_SWAP, PARTITION_LINUX_SWAP }, -}; - -static const struct flag_id_mapping_t* _GL_ATTRIBUTE_CONST -dasd_find_flag_id_mapping (PedPartitionFlag flag) -{ - int n = sizeof(flag_id_mapping) / sizeof(flag_id_mapping[0]); - - for (int i = 0; i < n; ++i) - if (flag_id_mapping[i].flag == flag) - return &flag_id_mapping[i]; - - return NULL; -} - -static PedDisk* -dasd_alloc (const PedDevice* dev) -{ - PedDisk* disk; - LinuxSpecific* arch_specific; - DasdDiskSpecific *disk_specific; - char volser[7]; - - PED_ASSERT (dev != NULL); - - arch_specific = LINUX_SPECIFIC (dev); - disk = _ped_disk_alloc (dev, &dasd_disk_type); - if (!disk) - return NULL; - - disk->disk_specific = disk_specific = ped_malloc(sizeof(DasdDiskSpecific)); - if (!disk->disk_specific) { - free (disk); - return NULL; - } - - /* CDL format, newer */ - disk_specific->format_type = 2; - disk_specific->label_block = 2; - - /* Setup volume label (for fresh disks) */ - snprintf(volser, sizeof(volser), "0X%04X", arch_specific->devno); - vtoc_volume_label_init(&disk_specific->vlabel); - vtoc_volume_label_set_key(&disk_specific->vlabel, "VOL1"); - vtoc_volume_label_set_label(&disk_specific->vlabel, "VOL1"); - vtoc_volume_label_set_volser(&disk_specific->vlabel, volser); - vtoc_set_cchhb(&disk_specific->vlabel.vtoc, - VTOC_START_CC, VTOC_START_HH, 0x01); - - return disk; -} - -static PedDisk* -dasd_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - - new_disk = ped_disk_new_fresh(disk->dev, &dasd_disk_type); - - if (!new_disk) - return NULL; - - memcpy(new_disk->disk_specific, disk->disk_specific, - sizeof(DasdDiskSpecific)); - - return new_disk; -} - -static void -dasd_free (PedDisk* disk) -{ - PED_ASSERT(disk != NULL); - /* Don't free disk->disk_specific first, in case _ped_disk_free - or one of its eventual callees ever accesses it. */ - void *p = disk->disk_specific; - _ped_disk_free(disk); - free(p); -} - - -void -ped_disk_dasd_init () -{ - ped_disk_type_register(&dasd_disk_type); -} - -void -ped_disk_dasd_done () -{ - ped_disk_type_unregister(&dasd_disk_type); -} - -static int -dasd_probe (const PedDevice *dev) -{ - LinuxSpecific* arch_specific; - struct fdasd_anchor anchor; - - PED_ASSERT(dev != NULL); - - arch_specific = LINUX_SPECIFIC(dev); - - /* add partition test here */ - fdasd_initialize_anchor(&anchor); - - if (fdasd_get_geometry(dev, &anchor, arch_specific->fd) == 0) - goto error_cleanup; - - /* Labels are required on CDL formatted DASDs. */ - if (fdasd_check_volume(&anchor, arch_specific->fd) && - anchor.FBA_layout == 0) - goto error_cleanup; - - fdasd_cleanup(&anchor); - - return 1; - - error_cleanup: - fdasd_cleanup(&anchor); - ped_exception_throw(PED_EXCEPTION_ERROR,PED_EXCEPTION_IGNORE_CANCEL, - "Error while probing device %s.", dev->path); - - return 0; -} - -static int -dasd_read (PedDisk* disk) -{ - int i; - char str[20]; - PedDevice* dev; - PedPartition* part; - PedFileSystemType *fs; - PedSector start, end; - PedConstraint* constraint_exact; - partition_info_t *p; - LinuxSpecific* arch_specific; - DasdDiskSpecific* disk_specific; - struct fdasd_anchor anchor; - - PDEBUG; - - PED_ASSERT (disk != NULL); - PDEBUG; - PED_ASSERT (disk->dev != NULL); - PDEBUG; - - dev = disk->dev; - - arch_specific = LINUX_SPECIFIC(dev); - disk_specific = disk->disk_specific; - - PDEBUG; - - fdasd_initialize_anchor(&anchor); - - if (fdasd_get_geometry(disk->dev, &anchor, arch_specific->fd) == 0) - goto error_close_dev; - - disk_specific->label_block = anchor.label_block; - - if ((anchor.geo.cylinders * anchor.geo.heads) > BIG_DISK_SIZE) - anchor.big_disk++; - - /* check dasd for labels and vtoc */ - if (fdasd_check_volume(&anchor, arch_specific->fd)) { - DasdPartitionData* dasd_data; - - /* Kernel partitioning code will report 'implicit' partitions - * for non-CDL format DASDs even when there is no - * label/VTOC. */ - if (anchor.FBA_layout == 0) - goto error_close_dev; - - disk_specific->format_type = 1; - - /* Register implicit partition */ - ped_disk_delete_all (disk); - - start = (PedSector) arch_specific->real_sector_size / - (PedSector) disk->dev->sector_size * - (PedSector) (anchor.label_block + 1); - end = disk->dev->length - 1; - part = ped_partition_new (disk, PED_PARTITION_NORMAL, NULL, - start, end); - if (!part) - goto error_close_dev; - - part->num = 1; - part->fs_type = ped_file_system_probe (&part->geom); - dasd_data = part->disk_specific; - dasd_data->type = 0; - - if (!ped_disk_add_partition (disk, part, NULL)) - goto error_close_dev; - - fdasd_cleanup(&anchor); - - return 1; - } - - /* Save volume label (read by fdasd_check_volume) for writing */ - memcpy(&disk_specific->vlabel, anchor.vlabel, sizeof(volume_label_t)); - - ped_disk_delete_all (disk); - - bool is_ldl = strncmp(anchor.vlabel->volkey, - vtoc_ebcdic_enc("LNX1", str, 4), 4) == 0; - bool is_cms = strncmp(anchor.vlabel->volkey, - vtoc_ebcdic_enc("CMS1", str, 4), 4) == 0; - if (is_ldl || is_cms) { - DasdPartitionData* dasd_data; - - union vollabel { - volume_label_t ldl; - cms_volume_label_t cms; - }; - union vollabel *cms_ptr1 = (union vollabel *) anchor.vlabel; - cms_volume_label_t *cms_ptr = &cms_ptr1->cms; - volume_label_t *ldl_ptr = &cms_ptr1->ldl; - int partition_start_block; - - disk_specific->format_type = 1; - - if (is_cms && cms_ptr->usable_count >= cms_ptr->block_count) - partition_start_block = 2; /* FBA DASD */ - else - partition_start_block = 3; /* CKD DASD */ - - if (is_ldl) - start = (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size - * (long long) partition_start_block; - else if (cms_ptr->disk_offset == 0) - start = (long long) cms_ptr->block_size - / (long long) disk->dev->sector_size - * (long long) partition_start_block; - else - start = (long long) cms_ptr->block_size - / (long long) disk->dev->sector_size - * (long long) cms_ptr->disk_offset; - - if (is_ldl) - if (ldl_ptr->ldl_version >= 0xf2) - end = (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size - * (long long) ldl_ptr->formatted_blocks - 1; - else - end = disk->dev->length - 1; - else - if (cms_ptr->disk_offset == 0) - end = (long long) cms_ptr->block_size - / (long long) disk->dev->sector_size - * (long long) cms_ptr->block_count - 1; - else - /* - Frankly, I do not understand why the last block - of the CMS reserved file is not included in the - partition; but this is the algorithm used by the - Linux kernel. See fs/partitions/ibm.c in the - Linux kernel source code. - */ - end = (long long) cms_ptr->block_size - / (long long) disk->dev->sector_size - * (long long) (cms_ptr->block_count - 1) - 1; - - part = ped_partition_new (disk, PED_PARTITION_NORMAL, NULL, start, end); - if (!part) - goto error_close_dev; - - part->num = 1; - part->fs_type = ped_file_system_probe (&part->geom); - dasd_data = part->disk_specific; - dasd_data->type = 0; - - if (!ped_disk_add_partition (disk, part, NULL)) - goto error_close_dev; - - fdasd_cleanup(&anchor); - - return 1; - } - - /* CDL format, newer */ - disk_specific->format_type = 2; - - p = anchor.first; - PDEBUG; - - for (i = 1 ; i <= USABLE_PARTITIONS; i++) { - char *ch = p->f1->DS1DSNAM; - DasdPartitionData* dasd_data; - - - if (p->used != 0x01) - continue; - - PDEBUG; - - start = (long long)(long long) p->start_trk - * (long long) disk->dev->hw_geom.sectors - * (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size; - end = (long long)((long long) p->end_trk + 1) - * (long long) disk->dev->hw_geom.sectors - * (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size - 1; - part = ped_partition_new(disk, PED_PARTITION_NORMAL, NULL, - start, end); - PDEBUG; - - if (!part) - goto error_close_dev; - - PDEBUG; - - part->num = i; - part->fs_type = ped_file_system_probe(&part->geom); - - vtoc_ebcdic_dec(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - ch = strstr(p->f1->DS1DSNAM, "PART"); - - if (ch != NULL) { - strncpy(str, ch+9, 6); - str[6] = '\0'; - } - - dasd_data = part->disk_specific; - - if (strncmp(PART_TYPE_RAID, str, 6) == 0) - dasd_data->system = PARTITION_LINUX_RAID; - else if (strncmp(PART_TYPE_LVM, str, 6) == 0) - dasd_data->system = PARTITION_LINUX_LVM; - else if (strncmp(PART_TYPE_SWAP, str, 6) == 0) - dasd_data->system = PARTITION_LINUX_SWAP; - - vtoc_ebcdic_enc(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - - dasd_data->type = 0; - - constraint_exact = ped_constraint_exact (&part->geom); - if (!constraint_exact) - goto error_close_dev; - if (!ped_disk_add_partition(disk, part, constraint_exact)) { - ped_constraint_destroy(constraint_exact); - goto error_close_dev; - } - ped_constraint_destroy(constraint_exact); - - if (p->fspace_trk > 0) { - start = (long long)((long long) p->end_trk + 1) - * (long long) disk->dev->hw_geom.sectors - * (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size; - end = (long long)((long long) p->end_trk + 1 + p->fspace_trk) - * (long long) disk->dev->hw_geom.sectors - * (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size - 1; - part = ped_partition_new (disk, PED_PARTITION_NORMAL, - NULL, start, end); - - if (!part) - goto error_close_dev; - - part->type = PED_PARTITION_FREESPACE; - constraint_exact = ped_constraint_exact(&part->geom); - - if (!constraint_exact) - goto error_close_dev; - if (!ped_disk_add_partition(disk, part, constraint_exact)) { - ped_constraint_destroy(constraint_exact); - goto error_close_dev; - } - - ped_constraint_destroy (constraint_exact); - } - - p = p->next; - } - - PDEBUG; - fdasd_cleanup(&anchor); - return 1; - -error_close_dev: - PDEBUG; - fdasd_cleanup(&anchor); - return 0; -} - -static int -dasd_update_type (const PedDisk* disk, struct fdasd_anchor *anchor, - partition_info_t *part_info[USABLE_PARTITIONS]) -{ - PedPartition* part; - LinuxSpecific* arch_specific; - DasdDiskSpecific* disk_specific; - - arch_specific = LINUX_SPECIFIC(disk->dev); - disk_specific = disk->disk_specific; - - PDEBUG; - - unsigned int i; - for (i = 1; i <= USABLE_PARTITIONS; i++) { - partition_info_t *p; - char *ch = NULL; - DasdPartitionData* dasd_data; - - PDEBUG; - - part = ped_disk_get_partition(disk, i); - if (!part) - continue; - - PDEBUG; - - dasd_data = part->disk_specific; - p = part_info[i - 1]; - - if (!p ) { - PDEBUG; - continue; - } - - vtoc_ebcdic_dec(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - ch = strstr(p->f1->DS1DSNAM, "PART"); - - PDEBUG; - if (ch == NULL) { - vtoc_ebcdic_enc(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - PDEBUG; - continue; - } - - ch += 9; - - switch (dasd_data->system) { - case PARTITION_LINUX_LVM: - PDEBUG; - strncpy(ch, PART_TYPE_LVM, 6); - break; - case PARTITION_LINUX_RAID: - PDEBUG; - strncpy(ch, PART_TYPE_RAID, 6); - break; - case PARTITION_LINUX: - PDEBUG; - strncpy(ch, PART_TYPE_NATIVE, 6); - break; - case PARTITION_LINUX_SWAP: - PDEBUG; - strncpy(ch, PART_TYPE_SWAP, 6); - break; - default: - PDEBUG; - strncpy(ch, PART_TYPE_NATIVE, 6); - break; - } - - anchor->vtoc_changed++; - vtoc_ebcdic_enc(p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - } - - return 1; -} - -static int -dasd_write (const PedDisk* disk) -{ - DasdPartitionData* dasd_data; - PedPartition* part; - int i; - partition_info_t *p; - LinuxSpecific* arch_specific; - DasdDiskSpecific* disk_specific; - struct fdasd_anchor anchor; - partition_info_t *part_info[USABLE_PARTITIONS]; - - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev != NULL); - - arch_specific = LINUX_SPECIFIC (disk->dev); - disk_specific = disk->disk_specific; - - PDEBUG; - - /* If not formated in CDL, don't write anything. */ - if (disk_specific->format_type == 1) { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The partition table of DASD-LDL device cannot be changed.\n")); - return 1; - } - - /* initialize the anchor */ - fdasd_initialize_anchor(&anchor); - if (fdasd_get_geometry(disk->dev, &anchor, arch_specific->fd) == 0) - goto error; - - fdasd_check_volume(&anchor, arch_specific->fd); - memcpy(anchor.vlabel, &disk_specific->vlabel, sizeof(volume_label_t)); - anchor.vlabel_changed++; - - if ((anchor.geo.cylinders * anchor.geo.heads) > BIG_DISK_SIZE) - anchor.big_disk++; - - fdasd_recreate_vtoc(&anchor); - - for (i = 1; i <= USABLE_PARTITIONS; i++) { - unsigned int start, stop; - - PDEBUG; - part = ped_disk_get_partition(disk, i); - if (!part) - continue; - - PDEBUG; - - start = part->geom.start * disk->dev->sector_size - / arch_specific->real_sector_size / disk->dev->hw_geom.sectors; - stop = (part->geom.end + 1) - * disk->dev->sector_size / arch_specific->real_sector_size - / disk->dev->hw_geom.sectors - 1; - - PDEBUG; - dasd_data = part->disk_specific; - - p = fdasd_add_partition(&anchor, start, stop); - if (!p) { - PDEBUG; - goto error; - } - part_info[i - 1] = p; - p->type = dasd_data->system; - } - - PDEBUG; - - if (!fdasd_prepare_labels(&anchor, arch_specific->fd)) - goto error; - - dasd_update_type(disk, &anchor, part_info); - PDEBUG; - - if (!fdasd_write_labels(&anchor, arch_specific->fd)) - goto error; - - fdasd_cleanup(&anchor); - return 1; - -error: - PDEBUG; - fdasd_cleanup(&anchor); - return 0; -} - -static PedPartition* -dasd_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - - part = _ped_partition_alloc(disk, part_type, fs_type, start, end); - if (!part) - goto error; - - part->disk_specific = ped_calloc (sizeof (DasdPartitionData)); - return part; - -error: - return 0; -} - -static PedPartition* -dasd_partition_duplicate (const PedPartition *part) -{ - PedPartition *new_part; - - new_part = ped_partition_new (part->disk, part->type, part->fs_type, - part->geom.start, part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - - memcpy(new_part->disk_specific, part->disk_specific, - sizeof(DasdPartitionData)); - - return new_part; -} - -static void -dasd_partition_destroy (PedPartition* part) -{ - PED_ASSERT(part != NULL); - - if (ped_partition_is_active(part)) - free(part->disk_specific); - free(part); -} - -static int -dasd_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - DasdPartitionData* dasd_data; - - PED_ASSERT(part != NULL); - PED_ASSERT(part->disk_specific != NULL); - dasd_data = part->disk_specific; - - const struct flag_id_mapping_t* p = dasd_find_flag_id_mapping (flag); - if (p) - { - if (state) - dasd_data->system = p->type_id; - else if (dasd_data->system == p->type_id) - return dasd_partition_set_system (part, part->fs_type); - return 1; - } - - return 0; -} - -static int -dasd_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - DasdPartitionData* dasd_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - dasd_data = part->disk_specific; - - const struct flag_id_mapping_t* p = dasd_find_flag_id_mapping (flag); - if (p) - return dasd_data->system == p->type_id; - - return 0; -} - -/* - * The DASD-LDL does not support flags now. - * So just return 0. -*/ -static int -dasd_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - DasdDiskSpecific* disk_specific; - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->disk_specific != NULL); - - disk_specific = part->disk->disk_specific; - - if (disk_specific->format_type == 1) - return 0; - - if (dasd_find_flag_id_mapping (flag)) - return 1; - - return 0; -} - - -static int -dasd_get_max_primary_partition_count (const PedDisk* disk) -{ - DasdDiskSpecific* disk_specific; - - disk_specific = disk->disk_specific; - /* If formated in LDL, maximum partition number is 1 */ - if (disk_specific->format_type == 1) - return 1; - - return USABLE_PARTITIONS; -} - -static bool -dasd_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = dasd_get_max_primary_partition_count(disk); - return true; -} - -static PedAlignment* -dasd_get_partition_alignment(const PedDisk *disk) -{ - LinuxSpecific *arch_specific = LINUX_SPECIFIC(disk->dev); - PedSector sector_size = - arch_specific->real_sector_size / disk->dev->sector_size; - - return ped_alignment_new(0, disk->dev->hw_geom.sectors * sector_size); -} - -static PedConstraint* -_primary_constraint (PedDisk* disk) -{ - PedAlignment start_align; - PedAlignment end_align; - PedGeometry max_geom; - PedSector sector_size; - LinuxSpecific* arch_specific; - DasdDiskSpecific* disk_specific; - PedSector start; - - PDEBUG; - - arch_specific = LINUX_SPECIFIC (disk->dev); - disk_specific = disk->disk_specific; - sector_size = arch_specific->real_sector_size / disk->dev->sector_size; - - if (!ped_alignment_init (&start_align, 0, - disk->dev->hw_geom.sectors * sector_size)) - return NULL; - if (!ped_alignment_init (&end_align, -1, - disk->dev->hw_geom.sectors * sector_size)) - return NULL; - - start = (FIRST_USABLE_TRK * (long long) disk->dev->hw_geom.sectors - * (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size); - - if (!ped_geometry_init (&max_geom, disk->dev, start, disk->dev->length)) - return NULL; - - return ped_constraint_new(&start_align, &end_align, &max_geom, - &max_geom, 1, disk->dev->length); -} - -static int -dasd_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - DasdDiskSpecific* disk_specific; - - PED_ASSERT (part != NULL); - - disk_specific = part->disk->disk_specific; - /* If formated in LDL, ignore metadata partition */ - if (disk_specific->format_type == 1) - return 1; - - if (_ped_partition_attempt_align(part, constraint, - _primary_constraint(part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - - return 0; -} - -static int -dasd_partition_enumerate (PedPartition* part) -{ - int i; - PedPartition* p; - - /* never change the partition numbers */ - if (part->num != -1) - return 1; - - for (i = 1; i <= USABLE_PARTITIONS; i++) { - p = ped_disk_get_partition (part->disk, i); - if (!p) { - part->num = i; - return 1; - } - } - - /* failed to allocate a number */ - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unable to allocate a dasd disklabel slot")); - return 0; -} - -static int -dasd_partition_set_system (PedPartition* part, - const PedFileSystemType* fs_type) -{ - DasdPartitionData* dasd_data = part->disk_specific; - PedSector cyl_size; - - cyl_size=part->disk->dev->hw_geom.sectors * part->disk->dev->hw_geom.heads; - PDEBUG; - - part->fs_type = fs_type; - - if (!fs_type) { - dasd_data->system = PARTITION_LINUX; - PDEBUG; - } else if (is_linux_swap (fs_type->name)) { - dasd_data->system = PARTITION_LINUX_SWAP; - PDEBUG; - } else { - dasd_data->system = PARTITION_LINUX; - PDEBUG; - } - - return 1; -} - -static int -dasd_alloc_metadata (PedDisk* disk) -{ - PedPartition* new_part; - PedConstraint* constraint_any = NULL; - PedSector vtoc_end; - LinuxSpecific* arch_specific; - DasdDiskSpecific* disk_specific; - PedPartition* part = NULL; /* initialize solely to placate gcc */ - PedPartition* new_part2; - PedSector trailing_meta_start, trailing_meta_end; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - arch_specific = LINUX_SPECIFIC (disk->dev); - disk_specific = disk->disk_specific; - - constraint_any = ped_constraint_any (disk->dev); - - /* For LDL or CMS, the leading metadata ends at the sector before - the start of the first partition */ - if (disk_specific->format_type == 1) { - part = ped_disk_get_partition(disk, 1); - if (part) - vtoc_end = part->geom.start - 1; - else - vtoc_end = (PedSector) arch_specific->real_sector_size / - (PedSector) disk->dev->sector_size * - (PedSector) disk_specific->label_block; - } - else { - if (disk->dev->type == PED_DEVICE_FILE) - arch_specific->real_sector_size = disk->dev->sector_size; - /* Mark the start of the disk as metadata. */ - vtoc_end = (FIRST_USABLE_TRK * (long long) disk->dev->hw_geom.sectors - * (long long) arch_specific->real_sector_size - / (long long) disk->dev->sector_size) - 1; - } - - new_part = ped_partition_new (disk,PED_PARTITION_METADATA,NULL,0,vtoc_end); - if (!new_part) - goto error; - - if (!ped_disk_add_partition (disk, new_part, constraint_any)) { - ped_partition_destroy (new_part); - goto error; - } - - if (disk_specific->format_type == 1 && part) { - /* - For LDL or CMS there may be trailing metadata as well. - For example: the last block of a CMS reserved file, - the "recomp" area of a CMS minidisk that has been - formatted and then formatted again with the RECOMP - option specifying fewer than the maximum number of - cylinders, a disk that was formatted at one size, - backed up, then restored to a larger size disk, etc. - */ - trailing_meta_start = part->geom.end + 1; - trailing_meta_end = (long long) disk->dev->length - 1; - if (trailing_meta_end >= trailing_meta_start) { - new_part2 = ped_partition_new (disk,PED_PARTITION_METADATA, - NULL, trailing_meta_start, trailing_meta_end); - if (!new_part2) { - ped_partition_destroy (new_part); - goto error; - } - if (!ped_disk_add_partition (disk, new_part2, - constraint_any)) { - ped_partition_destroy (new_part2); - ped_partition_destroy (new_part); - goto error; - } - } - } - - ped_constraint_destroy (constraint_any); - return 1; - -error: - ped_constraint_destroy (constraint_any); - return 0; -} diff --git a/jni/parted/libparted/labels/dos.c b/jni/parted/libparted/labels/dos.c deleted file mode 100755 index e6a0105..0000000 --- a/jni/parted/libparted/labels/dos.c +++ /dev/null @@ -1,2612 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2001, 2004-2005, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "misc.h" -#include "pt-tools.h" - -/* this MBR boot code is loaded into 0000:7c00 by the BIOS. See mbr.s for - * the source, and how to build it - */ - -static const char MBR_BOOT_CODE[] = { - 0xfa, 0xb8, 0x00, 0x10, 0x8e, 0xd0, 0xbc, 0x00, - 0xb0, 0xb8, 0x00, 0x00, 0x8e, 0xd8, 0x8e, 0xc0, - 0xfb, 0xbe, 0x00, 0x7c, 0xbf, 0x00, 0x06, 0xb9, - 0x00, 0x02, 0xf3, 0xa4, 0xea, 0x21, 0x06, 0x00, - 0x00, 0xbe, 0xbe, 0x07, 0x38, 0x04, 0x75, 0x0b, - 0x83, 0xc6, 0x10, 0x81, 0xfe, 0xfe, 0x07, 0x75, - 0xf3, 0xeb, 0x16, 0xb4, 0x02, 0xb0, 0x01, 0xbb, - 0x00, 0x7c, 0xb2, 0x80, 0x8a, 0x74, 0x01, 0x8b, - 0x4c, 0x02, 0xcd, 0x13, 0xea, 0x00, 0x7c, 0x00, - 0x00, 0xeb, 0xfe -}; - -#define MSDOS_MAGIC 0xAA55 -#define PARTITION_MAGIC_MAGIC 0xf6f6 - -/* The maximum number of DOS primary partitions. */ -#define DOS_N_PRI_PARTITIONS 4 - -#define PARTITION_EMPTY 0x00 -#define PARTITION_FAT12 0x01 -#define PARTITION_FAT16_SM 0x04 -#define PARTITION_DOS_EXT 0x05 -#define PARTITION_FAT16 0x06 -#define PARTITION_NTFS 0x07 -#define PARTITION_HPFS 0x07 -#define PARTITION_UDF 0x07 -#define PARTITION_FAT32 0x0b -#define PARTITION_FAT32_LBA 0x0c -#define PARTITION_FAT16_LBA 0x0e -#define PARTITION_EXT_LBA 0x0f - -#define PART_FLAG_HIDDEN 0x10 /* Valid for FAT/NTFS only */ -#define PARTITION_FAT12_H (PARTITION_FAT12 | PART_FLAG_HIDDEN) -#define PARTITION_FAT16_SM_H (PARTITION_FAT16_SM | PART_FLAG_HIDDEN) -#define PARTITION_DOS_EXT_H (PARTITION_DOS_EXT | PART_FLAG_HIDDEN) -#define PARTITION_FAT16_H (PARTITION_FAT16 | PART_FLAG_HIDDEN) -#define PARTITION_NTFS_H (PARTITION_NTFS | PART_FLAG_HIDDEN) -#define PARTITION_FAT32_H (PARTITION_FAT32 | PART_FLAG_HIDDEN) -#define PARTITION_FAT32_LBA_H (PARTITION_FAT32_LBA | PART_FLAG_HIDDEN) -#define PARTITION_FAT16_LBA_H (PARTITION_FAT16_LBA | PART_FLAG_HIDDEN) - -#define PARTITION_COMPAQ_DIAG 0x12 -#define PARTITION_MSFT_RECOVERY 0x27 -#define PARTITION_LDM 0x42 -#define PARTITION_LINUX_SWAP 0x82 -#define PARTITION_LINUX 0x83 -#define PARTITION_IRST 0x84 -#define PARTITION_LINUX_EXT 0x85 -#define PARTITION_LINUX_LVM 0x8e -#define PARTITION_HFS 0xaf -#define PARTITION_SUN_UFS 0xbf -#define PARTITION_DELL_DIAG 0xde -#define PARTITION_BLS_BOOT 0xea -#define PARTITION_GPT 0xee -#define PARTITION_ESP 0xef -#define PARTITION_PALO 0xf0 -#define PARTITION_PREP 0x41 -#define PARTITION_LINUX_RAID 0xfd -#define PARTITION_LINUX_LVM_OLD 0xfe - -struct flag_id_mapping_t -{ - enum _PedPartitionFlag flag; - unsigned char type_id; - unsigned char alt_type_id; -}; - -static const struct flag_id_mapping_t flag_id_mapping[] = -{ - { PED_PARTITION_BLS_BOOT, PARTITION_BLS_BOOT }, - { PED_PARTITION_DIAG, PARTITION_COMPAQ_DIAG, PARTITION_DELL_DIAG }, - { PED_PARTITION_ESP, PARTITION_ESP }, - { PED_PARTITION_IRST, PARTITION_IRST }, - { PED_PARTITION_LVM, PARTITION_LINUX_LVM, PARTITION_LINUX_LVM_OLD }, - { PED_PARTITION_MSFT_RESERVED, PARTITION_MSFT_RECOVERY }, - { PED_PARTITION_PALO, PARTITION_PALO }, - { PED_PARTITION_PREP, PARTITION_PREP }, - { PED_PARTITION_RAID, PARTITION_LINUX_RAID }, - { PED_PARTITION_SWAP, PARTITION_LINUX_SWAP }, -}; - -static const unsigned char skip_set_system_types[] = -{ - PARTITION_EXT_LBA, - PARTITION_DOS_EXT, - PARTITION_COMPAQ_DIAG, - PARTITION_MSFT_RECOVERY, - PARTITION_LINUX_LVM, - PARTITION_LINUX_SWAP, - PARTITION_LINUX_RAID, - PARTITION_PALO, - PARTITION_PREP, - PARTITION_IRST, - PARTITION_ESP, - PARTITION_BLS_BOOT -}; - -static const struct flag_id_mapping_t* _GL_ATTRIBUTE_CONST -dos_find_flag_id_mapping (PedPartitionFlag flag) -{ - int n = sizeof(flag_id_mapping) / sizeof(flag_id_mapping[0]); - - for (int i = 0; i < n; ++i) - if (flag_id_mapping[i].flag == flag) - return &flag_id_mapping[i]; - - return NULL; -} - -/** - * Check whether the type_id supports the hidden flag. Returns true for both hidden and - * non-hidden id. - */ -static bool -dos_type_id_supports_hidden(unsigned char type_id) -{ - switch (type_id) - { - case PARTITION_DOS_EXT: - case PARTITION_DOS_EXT_H: - case PARTITION_FAT12: - case PARTITION_FAT12_H: - case PARTITION_FAT16: - case PARTITION_FAT16_H: - case PARTITION_FAT16_LBA: - case PARTITION_FAT16_LBA_H: - case PARTITION_FAT16_SM: - case PARTITION_FAT16_SM_H: - case PARTITION_FAT32: - case PARTITION_FAT32_H: - case PARTITION_FAT32_LBA: - case PARTITION_FAT32_LBA_H: - case PARTITION_NTFS: - case PARTITION_NTFS_H: - return true; - - default: - return false; - } -} - -/** - * Check whether the type_id has the hidden flag set. - */ -static bool -dos_type_id_is_hidden(unsigned char type_id) -{ - switch (type_id) - { - case PARTITION_DOS_EXT_H: - case PARTITION_FAT12_H: - case PARTITION_FAT16_H: - case PARTITION_FAT16_LBA_H: - case PARTITION_FAT16_SM_H: - case PARTITION_FAT32_H: - case PARTITION_FAT32_LBA_H: - case PARTITION_NTFS_H: - return true; - - default: - return false; - } -} - -/** - * Sets the hidden flag on type_id. - */ -static bool -dos_type_id_set_hidden(unsigned char* type_id, bool state) -{ - PED_ASSERT (type_id); - - if (!dos_type_id_supports_hidden(*type_id)) - return false; - - if (state) - *type_id |= PART_FLAG_HIDDEN; - else - *type_id &= ~PART_FLAG_HIDDEN; - - return 1; -} - -/** - * Check whether the type_id supports the lba flag. Returns true for both lba and non-lba - * id. - */ -static bool -dos_type_id_supports_lba(unsigned char type_id) -{ - switch (type_id) - { - case PARTITION_FAT16: - case PARTITION_FAT16_H: - case PARTITION_FAT16_LBA: - case PARTITION_FAT16_LBA_H: - case PARTITION_FAT32: - case PARTITION_FAT32_H: - case PARTITION_FAT32_LBA: - case PARTITION_FAT32_LBA_H: - case PARTITION_DOS_EXT: - case PARTITION_EXT_LBA: - return true; - - default: - return false; - } -} - -/** - * Check whether the type_id has the lba flag set. - */ -static bool -dos_type_id_is_lba(unsigned char type_id) -{ - switch (type_id) - { - case PARTITION_FAT16_LBA: - case PARTITION_FAT16_LBA_H: - case PARTITION_FAT32_LBA: - case PARTITION_FAT32_LBA_H: - case PARTITION_EXT_LBA: - return true; - - default: - return false; - } -} - -/** - * Sets the lba flag on type_id. - */ -static bool -dos_type_id_set_lba(unsigned char* type_id, bool state) -{ - PED_ASSERT (type_id); - - if (!dos_type_id_supports_lba(*type_id)) - return false; - - if (state) - { - switch (*type_id) - { - case PARTITION_FAT16: - *type_id = PARTITION_FAT16_LBA; - break; - - case PARTITION_FAT32: - *type_id = PARTITION_FAT32_LBA; - break; - - case PARTITION_DOS_EXT: - *type_id = PARTITION_EXT_LBA; - break; - } - } - else - { - switch (*type_id) - { - case PARTITION_FAT16_LBA: - *type_id = PARTITION_FAT16; - break; - - case PARTITION_FAT32_LBA: - *type_id = PARTITION_FAT32; - break; - - case PARTITION_EXT_LBA: - *type_id = PARTITION_DOS_EXT; - break; - } - } - - return true; -} - - -/* This constant contains the maximum cylinder number that can be represented - * in (C,H,S) notation. Higher cylinder numbers are reserved for - * "too big" indicators (in which case only LBA addressing can be used). - * Some partition tables in the wild indicate this number is 1021. - * (i.e. 1022 is sometimes used to indicate "use LBA"). - */ -#define MAX_CHS_CYLINDER 1021 -#define MAX_TOTAL_PART 64 - -typedef struct _DosRawPartition DosRawPartition; -typedef struct _DosRawTable DosRawTable; - -/* note: lots of bit-bashing here, thus, you shouldn't look inside it. - * Use chs_to_sector() and sector_to_chs() instead. - */ -typedef struct { - uint8_t head; - uint8_t sector; - uint8_t cylinder; -} __attribute__((packed)) RawCHS; - -/* ripped from Linux source */ -struct _DosRawPartition { - uint8_t boot_ind; /* 00: 0x80 - active */ - RawCHS chs_start; /* 01: */ - uint8_t type; /* 04: partition type */ - RawCHS chs_end; /* 05: */ - uint32_t start; /* 08: starting sector counting from 0 */ - uint32_t length; /* 0c: nr of sectors in partition */ -} __attribute__((packed)); - -struct _DosRawTable { - char boot_code [440]; - uint32_t mbr_signature; /* really a unique ID */ - uint16_t Unknown; - DosRawPartition partitions [DOS_N_PRI_PARTITIONS]; - uint16_t magic; -} __attribute__((packed)); - -/* OrigState is information we want to preserve about the partition for - * dealing with CHS issues - */ -typedef struct { - PedGeometry geom; - DosRawPartition raw_part; - PedSector lba_offset; /* needed for computing start/end for - * logical partitions */ -} OrigState; - -typedef struct { - int cylinder_alignment; -} DosDiskData; - -typedef struct { - unsigned char system; - int boot; - OrigState* orig; /* used for CHS stuff */ -} DosPartitionData; - -static PedDiskType msdos_disk_type; - -#if 0 -From http://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html - -The 2-byte numbers are stored little endian (low order byte first). - -Here the FAT12 version, that is also the common part of the FAT12, FAT16 and FAT32 boot sectors. See further below. - -Bytes Content -0-2 Jump to bootstrap (E.g. eb 3c 90; on i86: JMP 003E NOP. - One finds either eb xx 90, or e9 xx xx. - The position of the bootstrap varies.) -3-10 OEM name/version (E.g. "IBM 3.3", "IBM 20.0", "MSDOS5.0", "MSWIN4.0". - Various format utilities leave their own name, like "CH-FOR18". - Sometimes just garbage. Microsoft recommends "MSWIN4.1".) - /* BIOS Parameter Block starts here */ -11-12 Number of bytes per sector (512) - Must be one of 512, 1024, 2048, 4096. -13 Number of sectors per cluster (1) - Must be one of 1, 2, 4, 8, 16, 32, 64, 128. - A cluster should have at most 32768 bytes. In rare cases 65536 is OK. -14-15 Number of reserved sectors (1) - FAT12 and FAT16 use 1. FAT32 uses 32. -16 Number of FAT copies (2) -17-18 Number of root directory entries (224) - 0 for FAT32. 512 is recommended for FAT16. -19-20 Total number of sectors in the filesystem (2880) - (in case the partition is not FAT32 and smaller than 32 MB) -21 Media descriptor type (f0: 1.4 MB floppy, f8: hard disk; see below) -22-23 Number of sectors per FAT (9) - 0 for FAT32. -24-25 Number of sectors per track (12) -26-27 Number of heads (2, for a double-sided diskette) -28-29 Number of hidden sectors (0) - Hidden sectors are sectors preceding the partition. - /* BIOS Parameter Block ends here */ -30-509 Bootstrap -510-511 Signature 55 aa -#endif - -/* There is a significant risk of misclassifying (as msdos) - a disk that is composed solely of a single FAT partition. - Return false if sector S could not be a valid FAT boot sector. - Otherwise, return true. */ -static bool -maybe_FAT (unsigned char const *s) -{ - if (! (s[0] == 0xeb || s[0] == 0xe9)) - return false; - - uint16_t sector_size = (s[12] << 8) | s[11]; - switch (sector_size) - { - case 512: - case 1024: - case 2048: - case 4096: - break; - default: - return false; - } - - if (! (s[21] == 0xf0 || s[21] == 0xf8)) - return false; - - return true; -} - -PedGeometry* -fat_probe_fat16 (PedGeometry* geom); - -PedGeometry* -fat_probe_fat32 (PedGeometry* geom); - -PedGeometry* -ntfs_probe (PedGeometry* geom); - -static int -msdos_probe (const PedDevice *dev) -{ - PedDiskType* disk_type; - DosRawTable* part_table; - int i; - PedGeometry *geom = NULL; - PedGeometry *fsgeom = NULL; - - PED_ASSERT (dev != NULL); - - if (dev->sector_size < sizeof *part_table) - return 0; - - void *label; - if (!ptt_read_sector (dev, 0, &label)) - return 0; - - part_table = (DosRawTable *) label; - - /* check magic */ - if (PED_LE16_TO_CPU (part_table->magic) != MSDOS_MAGIC) - goto probe_fail; - - geom = ped_geometry_new (dev, 0, dev->length); - PED_ASSERT (geom); - fsgeom = fat_probe_fat16 (geom); - if (fsgeom) - goto probe_fail; /* fat fs looks like dos mbr */ - fsgeom = fat_probe_fat32 (geom); - if (fsgeom) - goto probe_fail; /* fat fs looks like dos mbr */ - fsgeom = ntfs_probe (geom); - if (fsgeom) - goto probe_fail; /* ntfs fs looks like dos mbr */ - ped_geometry_destroy (geom); - geom = NULL; - - /* If this is a FAT fs, fail here. Checking for the FAT signature - * has some false positives; instead, do what the Linux kernel does - * and ensure that each partition has a boot indicator that is - * either 0 or 0x80. - */ - unsigned int n_active = 0; - for (i = 0; i < DOS_N_PRI_PARTITIONS; i++) { - if (part_table->partitions[i].boot_ind == 0x80) - ++n_active; - if (part_table->partitions[i].boot_ind != 0 - && part_table->partitions[i].boot_ind != 0x80) - goto probe_fail; - } - - /* If there are no active partitions and this is probably - a FAT file system, do not classify it as msdos. */ - if (n_active == 0 && maybe_FAT (label)) - goto probe_fail; - - /* If this is a GPT disk, fail here */ - for (i = 0; i < DOS_N_PRI_PARTITIONS; i++) { - if (part_table->partitions[i].type == PARTITION_GPT) - goto probe_fail; - } - - /* If this is an AIX Physical Volume, fail here. IBMA in EBCDIC */ - if (part_table->boot_code[0] == (char) 0xc9 && - part_table->boot_code[1] == (char) 0xc2 && - part_table->boot_code[2] == (char) 0xd4 && - part_table->boot_code[3] == (char) 0xc1) - goto probe_fail; - -#ifdef ENABLE_PC98 - /* HACK: it's impossible to tell PC98 and msdos disk labels apart. - * Someone made the signatures the same (very clever). Since - * PC98 has some idiosyncracies with it's boot-loader, it's detection - * is more reliable */ - disk_type = ped_disk_type_get ("pc98"); - if (disk_type && disk_type->ops->probe (dev)) - goto probe_fail; -#endif /* ENABLE_PC98 */ - - free (label); - return 1; - - probe_fail: - if (geom) - ped_geometry_destroy (geom); - if (fsgeom) - ped_geometry_destroy (fsgeom); - free (label); - return 0; -} - -static PedDisk* -msdos_alloc (const PedDevice* dev) -{ - PedDisk* disk; - PED_ASSERT (dev != NULL); - - disk = _ped_disk_alloc ((PedDevice*)dev, &msdos_disk_type); - if (disk) { - DosDiskData *disk_specific = ped_malloc(sizeof *disk_specific); - if (!disk_specific) { - free (disk); - return NULL; - } - disk_specific->cylinder_alignment = 1; - disk->disk_specific = disk_specific; - } - - return disk; -} - -static PedDisk* -msdos_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - - new_disk = ped_disk_new_fresh (disk->dev, &msdos_disk_type); - if (!new_disk) - return NULL; - - memcpy(new_disk->disk_specific, disk->disk_specific, - sizeof(DosDiskData)); - - return new_disk; -} - -static void -msdos_free (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - - DosDiskData *disk_specific = disk->disk_specific; - _ped_disk_free (disk); - free(disk_specific); -} - -static int -msdos_disk_set_flag (PedDisk *disk, PedDiskFlag flag, int state) -{ - DosDiskData *disk_specific = disk->disk_specific; - switch (flag) { - case PED_DISK_CYLINDER_ALIGNMENT: - disk_specific->cylinder_alignment = !!state; - return 1; - default: - return 0; - } -} - -static int -msdos_disk_get_flag (const PedDisk *disk, PedDiskFlag flag) -{ - DosDiskData *disk_specific = disk->disk_specific; - switch (flag) { - case PED_DISK_CYLINDER_ALIGNMENT: - return disk_specific->cylinder_alignment; - default: - return 0; - } -} - -static int -msdos_disk_is_flag_available (const PedDisk *disk, PedDiskFlag flag) -{ - switch (flag) { - case PED_DISK_CYLINDER_ALIGNMENT: - return 1; - default: - return 0; - } -} - -static int -chs_get_cylinder (const RawCHS* chs) -{ - return chs->cylinder + ((chs->sector >> 6) << 8); -} - -static int -chs_get_head (const RawCHS* chs) -{ - return chs->head; -} - -/* counts from 0 */ -static int -chs_get_sector (const RawCHS* chs) -{ - return (chs->sector & 0x3f) - 1; -} - -static PedSector _GL_ATTRIBUTE_PURE -chs_to_sector (const PedDevice* dev, const PedCHSGeometry *bios_geom, - const RawCHS* chs) -{ - PedSector c; /* not measured in sectors, but need */ - PedSector h; /* lots of bits */ - PedSector s; - - PED_ASSERT (bios_geom != NULL); - PED_ASSERT (chs != NULL); - - c = chs_get_cylinder (chs); - h = chs_get_head (chs); - s = chs_get_sector (chs); - - if (c > MAX_CHS_CYLINDER) /* MAGIC: C/H/S is irrelevant */ - return 0; - if (s < 0) - return 0; - return (c * bios_geom->heads + h) * bios_geom->sectors + s; -} - -static void -sector_to_chs (const PedDevice* dev, const PedCHSGeometry* bios_geom, - PedSector sector, RawCHS* chs) -{ - PedSector real_c, real_h, real_s; - - PED_ASSERT (dev != NULL); - PED_ASSERT (chs != NULL); - - if (!bios_geom) - bios_geom = &dev->bios_geom; - - real_c = sector / (bios_geom->heads * bios_geom->sectors); - real_h = (sector / bios_geom->sectors) % bios_geom->heads; - real_s = sector % bios_geom->sectors; - - if (real_c > MAX_CHS_CYLINDER) { - real_c = 1023; - real_h = bios_geom->heads - 1; - real_s = bios_geom->sectors - 1; - } - - chs->cylinder = real_c % 0x100; - chs->head = real_h; - chs->sector = real_s + 1 + (real_c >> 8 << 6); -} - -static PedSector _GL_ATTRIBUTE_PURE -legacy_start (const PedDisk* disk, const PedCHSGeometry* bios_geom, - const DosRawPartition* raw_part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - return chs_to_sector (disk->dev, bios_geom, &raw_part->chs_start); -} - -static PedSector _GL_ATTRIBUTE_PURE -legacy_end (const PedDisk* disk, const PedCHSGeometry* bios_geom, - const DosRawPartition* raw_part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - return chs_to_sector (disk->dev, bios_geom, &raw_part->chs_end); -} - -static PedSector _GL_ATTRIBUTE_PURE -linear_start (const PedDisk* disk, const DosRawPartition* raw_part, - PedSector offset) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - return offset + PED_LE32_TO_CPU (raw_part->start); -} - -static PedSector _GL_ATTRIBUTE_PURE -linear_end (const PedDisk* disk, const DosRawPartition* raw_part, - PedSector offset) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - return (linear_start (disk, raw_part, offset) - + (PED_LE32_TO_CPU (raw_part->length) - 1)); -} - -#ifndef DISCOVER_ONLY -static int _GL_ATTRIBUTE_PURE -partition_check_bios_geometry (PedPartition* part, PedCHSGeometry* bios_geom) -{ - PedSector leg_start, leg_end; - DosPartitionData* dos_data; - PedDisk* disk; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk_specific != NULL); - dos_data = part->disk_specific; - - if (!dos_data->orig) - return 1; - - disk = part->disk; - leg_start = legacy_start (disk, bios_geom, &dos_data->orig->raw_part); - leg_end = legacy_end (disk, bios_geom, &dos_data->orig->raw_part); - - if (leg_start && leg_start != dos_data->orig->geom.start) - return 0; - if (leg_end && leg_end != dos_data->orig->geom.end) - return 0; - return 1; -} - -static int _GL_ATTRIBUTE_PURE -disk_check_bios_geometry (const PedDisk* disk, PedCHSGeometry* bios_geom) -{ - PedPartition* part = NULL; - - PED_ASSERT (disk != NULL); - - while ((part = ped_disk_next_partition (disk, part))) { - if (ped_partition_is_active (part)) { - if (!partition_check_bios_geometry (part, bios_geom)) - return 0; - } - } - - return 1; -} - -static int -probe_filesystem_for_geom (const PedPartition* part, PedCHSGeometry* bios_geom) -{ - const char* ms_types[] = {"ntfs", "fat16", "fat32", NULL}; - int i; - int found; - unsigned char* buf; - int sectors; - int heads; - int res = 0; - - PED_ASSERT (bios_geom != NULL); - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (part->disk->dev != NULL); - PED_ASSERT (part->disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - - buf = ped_malloc (part->disk->dev->sector_size); - - if (!buf) - return 0; - - if (!part->fs_type) - goto end; - - found = 0; - for (i = 0; ms_types[i]; i++) { - if (!strcmp(ms_types[i], part->fs_type->name)) - found = 1; - } - if (!found) - goto end; - - if (!ped_geometry_read(&part->geom, buf, 0, 1)) - goto end; - - /* shared by the start of all Microsoft file systems */ - sectors = buf[0x18] + (buf[0x19] << 8); - heads = buf[0x1a] + (buf[0x1b] << 8); - - if (sectors < 1 || sectors > 63) - goto end; - if (heads > 255 || heads < 1) - goto end; - - bios_geom->sectors = sectors; - bios_geom->heads = heads; - bios_geom->cylinders = part->disk->dev->length / (sectors * heads); - res = 1; -end: - free(buf); - return res; -} - -/* This function attempts to infer the BIOS CHS geometry of the hard disk - * from the CHS + LBA information contained in the partition table from - * a single partition's entry. - * - * This involves some maths. Let (c,h,s,a) be the starting cylinder, - * starting head, starting sector and LBA start address of the partition. - * Likewise, (C,H,S,A) the end addresses. Using both of these pieces - * of information, we want to deduce cyl_sectors and head_sectors which - * are the sizes of a single cylinder and a single head, respectively. - * - * The relationships are: - * c*cyl_sectors + h * head_sectors + s = a - * C*cyl_sectors + H * head_sectors + S = A - * - * We can rewrite this in matrix form: - * - * [ c h ] [ cyl_sectors ] = [ s - a ] = [ a_ ] - * [ C H ] [ head_sectors ] [ S - A ] [ A_ ]. - * - * (s - a is abbreviated to a_to simplify the notation.) - * - * This can be abbreviated into augmented matrix form: - * - * [ c h | a_ ] - * [ C H | A_ ]. - * - * Solving these equations requires following the row reduction algorithm. We - * need to be careful about a few things though: - * - the equations might be linearly dependent, in which case there - * are many solutions. - * - the equations might be inconsistent, in which case there - * are no solutions. (Inconsistent partition table entry!) - * - there might be zeros, so we need to be careful about applying - * the algorithm. We know, however, that C > 0. - */ -static int -probe_partition_for_geom (const PedPartition* part, PedCHSGeometry* bios_geom) -{ - DosPartitionData* dos_data; - RawCHS* start_chs; - RawCHS* end_chs; - PedSector c, h, s, a, a_; /* start */ - PedSector C, H, S, A, A_; /* end */ - PedSector dont_overflow, denum; - PedSector cyl_size, head_size; - PedSector cylinders, heads, sectors; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - PED_ASSERT (bios_geom != NULL); - - dos_data = part->disk_specific; - - if (!dos_data->orig) - return 0; - - start_chs = &dos_data->orig->raw_part.chs_start; - c = chs_get_cylinder (start_chs); - h = chs_get_head (start_chs); - s = chs_get_sector (start_chs); - a = dos_data->orig->geom.start; - a_ = a - s; - - end_chs = &dos_data->orig->raw_part.chs_end; - C = chs_get_cylinder (end_chs); - H = chs_get_head (end_chs); - S = chs_get_sector (end_chs); - A = dos_data->orig->geom.end; - A_ = A - S; - - if (h < 0 || H < 0 || h > 254 || H > 254) - return 0; - if (c > C) - return 0; - - /* If no geometry is feasible, then don't even bother. - * Useful for eliminating assertions for broken partition - * tables generated by Norton Ghost et al. - */ - if (A > (C+1) * 255 * 63) - return 0; - - /* Not enough information. In theory, we can do better. Should we? */ - if (C > MAX_CHS_CYLINDER) - return 0; - if (C == 0) - return 0; - - /* Calculate the maximum number that can be multiplied by - * any head count without overflowing a PedSector - * 2^8 = 256, 8 bits + 1(sign bit) = 9 - */ - dont_overflow = 1; - dont_overflow <<= (8*sizeof(dont_overflow)) - 9; - dont_overflow--; - - if (a_ > dont_overflow || A_ > dont_overflow) - return 0; - - /* The matrix is solved by : - * - * [ c h | a_] R1 - * [ C H | A_] R2 - * - * (cH - Ch) cyl_size = a_H - A_h H R1 - h R2 - * => (if cH - Ch != 0) cyl_size = (a_H - A_h) / (cH - Ch) - * - * (Hc - hC) head_size = A_c - a_C c R2 - C R1 - * => (if cH - Ch != 0) head_size = (A_c - a_C) / (cH - Ch) - * - * But this calculation of head_size would need - * not overflowing A_c or a_C - * So substitution is use instead, to minimize dimension - * of temporary results : - * - * If h != 0 : head_size = ( a_ - c cyl_size ) / h - * If H != 0 : head_size = ( A_ - C cyl_size ) / H - * - */ - denum = c * H - C * h; - if (denum == 0) - return 0; - - cyl_size = (a_*H - A_*h) / denum; - /* Check for non integer result */ - if (cyl_size * denum != a_*H - A_*h) - return 0; - - if (!(cyl_size > 0)) - return 0; - if (!(cyl_size <= 255 * 63)) - return 0; - - if (h > 0) - head_size = ( a_ - c * cyl_size ) / h; - else if (H > 0) - head_size = ( A_ - C * cyl_size ) / H; - else { - /* should not happen because denum != 0 */ - PED_ASSERT (0); - } - - if (!(head_size > 0)) - return 0; - if (!(head_size <= 63)) - return 0; - - cylinders = part->disk->dev->length / cyl_size; - heads = cyl_size / head_size; - sectors = head_size; - - if (!(heads > 0)) - return 0; - if (!(heads < 256)) - return 0; - - if (!(sectors > 0)) - return 0; - if (!(sectors <= 63)) - return 0; - - /* Some broken OEM partitioning program(s) seem to have an out-by-one - * error on the end of partitions. We should offer to fix the - * partition table... - */ - if (((C + 1) * heads + H) * sectors + S == A) - C++; - - if (!((c * heads + h) * sectors + s == a)) - return 0; - if (!((C * heads + H) * sectors + S == A)) - return 0; - - bios_geom->cylinders = cylinders; - bios_geom->heads = heads; - bios_geom->sectors = sectors; - - return 1; -} - -static void -partition_probe_bios_geometry (const PedPartition* part, - PedCHSGeometry* bios_geom) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - PED_ASSERT (bios_geom != NULL); - - if (ped_partition_is_active (part)) { - if (probe_partition_for_geom (part, bios_geom)) - return; - if (part->type & PED_PARTITION_EXTENDED) { - if (probe_filesystem_for_geom (part, bios_geom)) - return; - } - } - if (part->type & PED_PARTITION_LOGICAL) { - PedPartition* ext_part; - ext_part = ped_disk_extended_partition (part->disk); - PED_ASSERT (ext_part != NULL); - partition_probe_bios_geometry (ext_part, bios_geom); - } else { - *bios_geom = part->disk->dev->bios_geom; - } -} - -static void -disk_probe_bios_geometry (const PedDisk* disk, PedCHSGeometry* bios_geom) -{ - PedPartition* part; - - /* first look at the boot partition */ - part = NULL; - while ((part = ped_disk_next_partition (disk, part))) { - if (!ped_partition_is_active (part)) - continue; - if (ped_partition_get_flag (part, PED_PARTITION_BOOT)) { - if (probe_filesystem_for_geom (part, bios_geom)) - return; - if (probe_partition_for_geom (part, bios_geom)) - return; - } - } - - /* that didn't work... try all partition table entries */ - part = NULL; - while ((part = ped_disk_next_partition (disk, part))) { - if (ped_partition_is_active (part)) { - if (probe_partition_for_geom (part, bios_geom)) - return; - } - } - - /* that didn't work... look at all file systems */ - part = NULL; - while ((part = ped_disk_next_partition (disk, part))) { - if (ped_partition_is_active (part)) { - if (probe_filesystem_for_geom (part, bios_geom)) - return; - } - } -} -#endif /* !DISCOVER_ONLY */ - -static int _GL_ATTRIBUTE_PURE -raw_part_is_extended (const DosRawPartition* raw_part) -{ - PED_ASSERT (raw_part != NULL); - - switch (raw_part->type) { - case PARTITION_DOS_EXT: - case PARTITION_EXT_LBA: - case PARTITION_LINUX_EXT: - return 1; - - default: - return 0; - } - - return 0; -} - -static PedPartition* -raw_part_parse (const PedDisk* disk, const DosRawPartition* raw_part, - PedSector lba_offset, PedPartitionType type) -{ - PedPartition* part; - DosPartitionData* dos_data; - - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - part = ped_partition_new ( - disk, type, NULL, - linear_start (disk, raw_part, lba_offset), - linear_end (disk, raw_part, lba_offset)); - if (!part) - return NULL; - dos_data = part->disk_specific; - dos_data->system = raw_part->type; - dos_data->boot = raw_part->boot_ind != 0; - dos_data->orig = ped_malloc (sizeof (OrigState)); - if (!dos_data->orig) { - ped_partition_destroy (part); - return NULL; - } - dos_data->orig->geom = part->geom; - dos_data->orig->raw_part = *raw_part; - dos_data->orig->lba_offset = lba_offset; - return part; -} - -static int -read_table (PedDisk* disk, PedSector sector, int is_extended_table) -{ - int i; - DosRawTable* table; - DosRawPartition* raw_part; - PedPartition* part; - PedPartitionType type; - PedSector lba_offset; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - void *label = NULL; - if (!ptt_read_sector (disk->dev, sector, &label)) - goto error; - - table = (DosRawTable *) label; - - /* weird: empty extended partitions are filled with 0xf6 by PM */ - if (is_extended_table - && PED_LE16_TO_CPU (table->magic) == PARTITION_MAGIC_MAGIC) - goto read_ok; - -#ifndef DISCOVER_ONLY - if (PED_LE16_TO_CPU (table->magic) != MSDOS_MAGIC) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL, - _("Invalid partition table on %s " - "-- wrong signature %x."), - disk->dev->path, - PED_LE16_TO_CPU (table->magic)) - != PED_EXCEPTION_IGNORE) - goto error; - goto read_ok; - } -#endif - - /* parse the partitions from this table */ - for (i = 0; i < DOS_N_PRI_PARTITIONS; i++) { - raw_part = &table->partitions [i]; - if (raw_part->type == PARTITION_EMPTY || !raw_part->length) - continue; - - /* process nested extended partitions after normal logical - * partitions, to make sure we get the order right. - */ - if (is_extended_table && raw_part_is_extended (raw_part)) - continue; - - lba_offset = is_extended_table ? sector : 0; - - if (linear_start (disk, raw_part, lba_offset) == sector) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Invalid partition table - recursive " - "partition on %s."), - disk->dev->path) - != PED_EXCEPTION_IGNORE) - goto error; - continue; /* avoid infinite recursion */ - } - - if (is_extended_table) - type = PED_PARTITION_LOGICAL; - else if (raw_part_is_extended (raw_part)) - type = PED_PARTITION_EXTENDED; - else - type = PED_PARTITION_NORMAL; - - part = raw_part_parse (disk, raw_part, lba_offset, type); - if (!part) - goto error; - if (!is_extended_table) - part->num = i + 1; - if (type != PED_PARTITION_EXTENDED) - part->fs_type = ped_file_system_probe (&part->geom); - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) - goto error; - - /* non-nested extended partition */ - if (part->type == PED_PARTITION_EXTENDED) { - if (!read_table (disk, part->geom.start, 1)) - goto error; - } - } - - if (is_extended_table) { - /* process the nested extended partitions */ - for (i = 0; i < DOS_N_PRI_PARTITIONS; i++) { - PedSector part_start; - - raw_part = &table->partitions [i]; - if (!raw_part_is_extended (raw_part)) - continue; - - lba_offset = ped_disk_extended_partition - (disk)->geom.start; - part_start = linear_start (disk, raw_part, lba_offset); - if (part_start == sector) { - /* recursive table - already threw an - * exception above. - */ - continue; - } - if (!read_table (disk, part_start, 1)) - goto error; - } - } - -read_ok: - free (label); - return 1; - -error: - free (label); - ped_disk_delete_all (disk); - return 0; -} - -static int -msdos_read (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - ped_disk_delete_all (disk); - if (!read_table (disk, 0, 0)) - return 0; - -#ifndef DISCOVER_ONLY - /* try to figure out the correct BIOS CHS values */ - if (!disk_check_bios_geometry (disk, &disk->dev->bios_geom)) { - PedCHSGeometry bios_geom = disk->dev->bios_geom; - disk_probe_bios_geometry (disk, &bios_geom); - - /* if the geometry was wrong, then we should reread, to - * make sure the metadata is allocated in the right places. - */ - if (disk->dev->bios_geom.cylinders != bios_geom.cylinders - || disk->dev->bios_geom.heads != bios_geom.heads - || disk->dev->bios_geom.sectors != bios_geom.sectors) { - disk->dev->bios_geom = bios_geom; - return msdos_read (disk); - } - } -#endif - - return 1; -} - -#ifndef DISCOVER_ONLY -static int -fill_raw_part (DosRawPartition* raw_part, - const PedPartition* part, PedSector offset) -{ - DosPartitionData* dos_data; - PedCHSGeometry bios_geom; - - PED_ASSERT (raw_part != NULL); - PED_ASSERT (part != NULL); - - partition_probe_bios_geometry (part, &bios_geom); - - dos_data = part->disk_specific; - - raw_part->boot_ind = 0x80 * dos_data->boot; - raw_part->type = dos_data->system; - raw_part->start = PED_CPU_TO_LE32 (part->geom.start - offset); - raw_part->length = PED_CPU_TO_LE32 (part->geom.length); - - sector_to_chs (part->disk->dev, &bios_geom, part->geom.start, - &raw_part->chs_start); - sector_to_chs (part->disk->dev, &bios_geom, part->geom.end, - &raw_part->chs_end); - - if (dos_data->orig) { - DosRawPartition* orig_raw_part = &dos_data->orig->raw_part; - if (dos_data->orig->geom.start == part->geom.start) - raw_part->chs_start = orig_raw_part->chs_start; - if (dos_data->orig->geom.end == part->geom.end) - raw_part->chs_end = orig_raw_part->chs_end; - } - - return 1; -} - -static int -fill_ext_raw_part_geom (DosRawPartition* raw_part, - const PedCHSGeometry* bios_geom, - const PedGeometry* geom, PedSector offset) -{ - PED_ASSERT (raw_part != NULL); - PED_ASSERT (geom != NULL); - PED_ASSERT (geom->dev != NULL); - - raw_part->boot_ind = 0; - raw_part->type = PARTITION_DOS_EXT; - raw_part->start = PED_CPU_TO_LE32 (geom->start - offset); - raw_part->length = PED_CPU_TO_LE32 (geom->length); - - sector_to_chs (geom->dev, bios_geom, geom->start, &raw_part->chs_start); - sector_to_chs (geom->dev, bios_geom, geom->start + geom->length - 1, - &raw_part->chs_end); - - return 1; -} - -static int -write_ext_table (const PedDisk* disk, - PedSector sector, const PedPartition* logical) -{ - PedPartition* part; - PedSector lba_offset; - - PED_ASSERT (disk != NULL); - PED_ASSERT (ped_disk_extended_partition (disk) != NULL); - PED_ASSERT (logical != NULL); - - lba_offset = ped_disk_extended_partition (disk)->geom.start; - - void* s; - if (!ptt_read_sector (disk->dev, sector, &s)) - return 0; - - DosRawTable *table = s; - memset(&(table->partitions), 0, sizeof (table->partitions)); - table->magic = PED_CPU_TO_LE16 (MSDOS_MAGIC); - - int ok = 0; - if (!fill_raw_part (&table->partitions[0], logical, sector)) - goto cleanup; - - part = ped_disk_get_partition (disk, logical->num + 1); - if (part) { - PedGeometry* geom; - PedCHSGeometry bios_geom; - - geom = ped_geometry_new (disk->dev, part->prev->geom.start, - part->geom.end - part->prev->geom.start + 1); - if (!geom) - goto cleanup; - partition_probe_bios_geometry (part, &bios_geom); - fill_ext_raw_part_geom (&table->partitions[1], &bios_geom, - geom, lba_offset); - ped_geometry_destroy (geom); - - if (!write_ext_table (disk, part->prev->geom.start, part)) - goto cleanup; - } - - ok = ped_device_write (disk->dev, table, sector, 1); - cleanup: - free (s); - return ok; -} - -static int -write_empty_table (const PedDisk* disk, PedSector sector) -{ - DosRawTable table; - void* table_sector; - - PED_ASSERT (disk != NULL); - - if (ptt_read_sector (disk->dev, sector, &table_sector)) { - memcpy (&table, table_sector, sizeof (table)); - free(table_sector); - } - memset (&(table.partitions), 0, sizeof (table.partitions)); - table.magic = PED_CPU_TO_LE16 (MSDOS_MAGIC); - - return ped_device_write (disk->dev, (void*) &table, sector, 1); -} - -/* Find the first logical partition, and write the partition table for it. - */ -static int -write_extended_partitions (const PedDisk* disk) -{ - PedPartition* ext_part; - PedPartition* part; - PedCHSGeometry bios_geom; - - PED_ASSERT (disk != NULL); - - ext_part = ped_disk_extended_partition (disk); - partition_probe_bios_geometry (ext_part, &bios_geom); - part = ped_disk_get_partition (disk, 5); - if (part) - return write_ext_table (disk, ext_part->geom.start, part); - else - return write_empty_table (disk, ext_part->geom.start); -} - -static int -msdos_write (const PedDisk* disk) -{ - PedPartition* part; - int i; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - void *s0; - if (!ptt_read_sector (disk->dev, 0, &s0)) - return 0; - DosRawTable *table = (DosRawTable *) s0; - - if (!table->boot_code[0]) { - memset (table, 0, 512); - memcpy (table->boot_code, MBR_BOOT_CODE, sizeof (MBR_BOOT_CODE)); - } - - /* If there is no unique identifier, generate a random one */ - if (!table->mbr_signature) - table->mbr_signature = generate_random_uint32 (); - - memset (table->partitions, 0, sizeof (table->partitions)); - table->magic = PED_CPU_TO_LE16 (MSDOS_MAGIC); - - for (i=1; i<=DOS_N_PRI_PARTITIONS; i++) { - part = ped_disk_get_partition (disk, i); - if (!part) - continue; - - if (!fill_raw_part (&table->partitions [i - 1], part, 0)) - goto write_fail; - - if (part->type == PED_PARTITION_EXTENDED) { - if (!write_extended_partitions (disk)) - goto write_fail; - } - } - - int write_ok = ped_device_write (disk->dev, (void*) table, 0, 1); - free (s0); - if (!write_ok) - return 0; - return ped_device_sync (disk->dev); - - write_fail: - free (s0); - return 0; - -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -msdos_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - DosPartitionData* dos_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (ped_partition_is_active (part)) { - part->disk_specific - = dos_data = ped_calloc (sizeof (DosPartitionData)); - if (!dos_data) - goto error_free_part; - dos_data->system = PARTITION_LINUX; - } else { - part->disk_specific = NULL; - } - return part; - -error_free_part: - free (part); -error: - return 0; -} - -static PedPartition* -msdos_partition_duplicate (const PedPartition* part) -{ - PedPartition* new_part; - DosPartitionData* new_dos_data; - DosPartitionData* old_dos_data; - - new_part = ped_partition_new (part->disk, part->type, part->fs_type, - part->geom.start, part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - - old_dos_data = (DosPartitionData*) part->disk_specific; - new_dos_data = (DosPartitionData*) new_part->disk_specific; - new_dos_data->system = old_dos_data->system; - new_dos_data->boot = old_dos_data->boot; - - if (old_dos_data->orig) { - new_dos_data->orig = ped_malloc (sizeof (OrigState)); - if (!new_dos_data->orig) { - ped_partition_destroy (new_part); - return NULL; - } - new_dos_data->orig->geom = old_dos_data->orig->geom; - new_dos_data->orig->raw_part = old_dos_data->orig->raw_part; - new_dos_data->orig->lba_offset = old_dos_data->orig->lba_offset; - } - return new_part; -} - -static void -msdos_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) { - DosPartitionData* dos_data; - dos_data = (DosPartitionData*) part->disk_specific; - free (dos_data->orig); - free (part->disk_specific); - } - free (part); -} - -/* is_skip_type checks the type against the list of types that should not be - * overridden by set_system. It returns a 1 if it is in the list. -*/ -static bool -is_skip_type(unsigned char type_id) { - int n = sizeof(skip_set_system_types) / sizeof(skip_set_system_types[0]); - for (int i = 0; i < n; ++i) { - if (type_id == skip_set_system_types[i]) { - return true; - } - } - - return false; -} - -static int -msdos_partition_set_system (PedPartition* part, - const PedFileSystemType* fs_type) -{ - DosPartitionData* dos_data = part->disk_specific; - - part->fs_type = fs_type; - - // Is this a type that should skip fs_type checking? - if (is_skip_type(dos_data->system)) { - return 1; - } - - if (part->type & PED_PARTITION_EXTENDED) { - dos_data->system = PARTITION_EXT_LBA; - return 1; - } - - if (!fs_type) - dos_data->system = PARTITION_LINUX; - else if (!strcmp (fs_type->name, "fat16")) - dos_data->system = PARTITION_FAT16; - else if (!strcmp (fs_type->name, "fat32")) - dos_data->system = PARTITION_FAT32; - else if (!strcmp (fs_type->name, "ntfs") - || !strcmp (fs_type->name, "hpfs")) - dos_data->system = PARTITION_NTFS; - else if (!strcmp (fs_type->name, "hfs") - || !strcmp (fs_type->name, "hfs+")) - dos_data->system = PARTITION_HFS; - else if (!strcmp (fs_type->name, "udf")) - dos_data->system = PARTITION_UDF; - else if (!strcmp (fs_type->name, "sun-ufs")) - dos_data->system = PARTITION_SUN_UFS; - else if (is_linux_swap (fs_type->name)) - dos_data->system = PARTITION_LINUX_SWAP; - else - dos_data->system = PARTITION_LINUX; - - return 1; -} - -static int -msdos_partition_set_flag (PedPartition* part, - PedPartitionFlag flag, int state) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - PED_ASSERT (part->disk != NULL); - - DosPartitionData* dos_data = part->disk_specific; - - const struct flag_id_mapping_t* p = dos_find_flag_id_mapping (flag); - if (p) - { - if (part->type & PED_PARTITION_EXTENDED) - return 0; - - if (state) { - dos_data->system = p->type_id; - } else if (dos_data->system == p->type_id || dos_data->system == p->alt_type_id) { - // Clear the type so that fs_type will be used to return it to the default - dos_data->system = PARTITION_LINUX; - return ped_partition_set_system (part, part->fs_type); - } - return 1; - } - - switch (flag) { - case PED_PARTITION_HIDDEN: - { - return dos_type_id_set_hidden(&dos_data->system, state); - } - - case PED_PARTITION_LBA: - { - return dos_type_id_set_lba(&dos_data->system, state); - } - - case PED_PARTITION_BOOT: - { - dos_data->boot = state; - - if (state) - { - PedDisk* disk = part->disk; - PedPartition* walk = ped_disk_next_partition (disk, NULL); - for (; walk; walk = ped_disk_next_partition (disk, walk)) { - if (walk == part || !ped_partition_is_active (walk)) - continue; - msdos_partition_set_flag (walk, PED_PARTITION_BOOT, 0); - } - } - - return 1; - } - - default: - return 0; - } -} - -static int _GL_ATTRIBUTE_PURE -msdos_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - DosPartitionData* dos_data = part->disk_specific; - - const struct flag_id_mapping_t* p = dos_find_flag_id_mapping (flag); - if (p) - return dos_data->system == p->type_id || dos_data->system == p->alt_type_id; - - switch (flag) { - case PED_PARTITION_HIDDEN: - return dos_type_id_is_hidden(dos_data->system); - - case PED_PARTITION_LBA: - return dos_type_id_is_lba(dos_data->system); - - case PED_PARTITION_BOOT: - return dos_data->boot; - - default: - return 0; - } -} - -static int -msdos_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - if (dos_find_flag_id_mapping (flag)) - return part->type != PED_PARTITION_EXTENDED; - - DosPartitionData* dos_data = part->disk_specific; - - switch (flag) { - case PED_PARTITION_HIDDEN: - return dos_type_id_supports_hidden(dos_data->system); - - case PED_PARTITION_LBA: - return dos_type_id_supports_lba(dos_data->system); - - case PED_PARTITION_BOOT: - return 1; - - default: - return 0; - } -} - - -int -msdos_partition_set_type_id (PedPartition* part, uint8_t id) -{ - DosPartitionData* dos_data = part->disk_specific; - - dos_data->system = id; - - return 1; -} - - -uint8_t _GL_ATTRIBUTE_PURE -msdos_partition_get_type_id (const PedPartition* part) -{ - const DosPartitionData* dos_data = part->disk_specific; - - return dos_data->system; -} - - -static PedGeometry* -_try_constraint (const PedPartition* part, const PedConstraint* external, - PedConstraint* internal) -{ - PedConstraint* intersection; - PedGeometry* solution; - - intersection = ped_constraint_intersect (external, internal); - ped_constraint_destroy (internal); - if (!intersection) - return NULL; - - solution = ped_constraint_solve_nearest (intersection, &part->geom); - ped_constraint_destroy (intersection); - return solution; -} - -static PedGeometry* -_best_solution (const PedPartition* part, const PedCHSGeometry* bios_geom, - PedGeometry* a, PedGeometry* b) -{ - PedSector cyl_size = bios_geom->heads * bios_geom->sectors; - int a_cylinder; - int b_cylinder; - - if (!a) - return b; - if (!b) - return a; - - a_cylinder = a->start / cyl_size; - b_cylinder = b->start / cyl_size; - - if (a_cylinder == b_cylinder) { - if ( (a->start / bios_geom->sectors) % bios_geom->heads - < (b->start / bios_geom->sectors) % bios_geom->heads) - goto choose_a; - else - goto choose_b; - } else { - PedSector a_delta; - PedSector b_delta; - - a_delta = llabs (part->geom.start - a->start); - b_delta = llabs (part->geom.start - b->start); - - if (a_delta < b_delta) - goto choose_a; - else - goto choose_b; - } - - return NULL; /* never get here! */ - -choose_a: - ped_geometry_destroy (b); - return a; - -choose_b: - ped_geometry_destroy (a); - return b; -} - -/* This constraint is for "normal" primary partitions, that start at the - * beginning of a cylinder, and end at the end of a cylinder. - * Note: you can't start a partition at the beginning of the 1st - * cylinder, because that's where the partition table is! There are different - * rules for that - see the _primary_start_constraint. - */ -static PedConstraint* -_primary_constraint (const PedDisk* disk, const PedCHSGeometry* bios_geom, - PedGeometry* min_geom) -{ - PedDevice* dev = disk->dev; - PedSector cylinder_size = bios_geom->sectors * bios_geom->heads; - PedAlignment start_align; - PedAlignment end_align; - PedGeometry start_geom; - PedGeometry end_geom; - - if (!ped_alignment_init (&start_align, 0, cylinder_size)) - return NULL; - if (!ped_alignment_init (&end_align, -1, cylinder_size)) - return NULL; - - if (min_geom) { - if (min_geom->start < cylinder_size) - return NULL; - if (!ped_geometry_init (&start_geom, dev, cylinder_size, - min_geom->start + 1 - cylinder_size)) - return NULL; - if (!ped_geometry_init (&end_geom, dev, min_geom->end, - dev->length - min_geom->end)) - return NULL; - } else { - /* Use cylinder_size as the starting sector number - when the device is large enough to accommodate that. - Otherwise, use sector 1. */ - PedSector start = (cylinder_size < dev->length - ? cylinder_size : 1); - if (!ped_geometry_init (&start_geom, dev, start, - dev->length - start)) - return NULL; - if (!ped_geometry_init (&end_geom, dev, 0, dev->length)) - return NULL; - } - - return ped_constraint_new (&start_align, &end_align, &start_geom, - &end_geom, 1, dev->length); -} - -/* This constraint is for partitions starting on the first cylinder. They - * must start on the 2nd head of the 1st cylinder. - * - * NOTE: We don't always start on the 2nd head of the 1st cylinder. Windows - * Vista aligns starting partitions at sector 2048 (0x800) by default. See: - * http://support.microsoft.com/kb/923332 - */ -static PedConstraint* -_primary_start_constraint (const PedDisk* disk, - const PedPartition *part, - const PedCHSGeometry* bios_geom, - const PedGeometry* min_geom) -{ - PedDevice* dev = disk->dev; - PedSector cylinder_size = bios_geom->sectors * bios_geom->heads; - PedAlignment start_align; - PedAlignment end_align; - PedGeometry start_geom; - PedGeometry end_geom; - PedSector start_pos; - - if (part->geom.start == 2048) - /* check for known Windows Vista (NTFS >= 3.1) alignments */ - /* sector 0x800 == 2048 */ - start_pos = 2048; - else - /* all other primary partitions on a DOS label align to */ - /* the 2nd head of the first cylinder (0x3F == 63) */ - start_pos = bios_geom->sectors; - - if (!ped_alignment_init (&start_align, start_pos, 0)) - return NULL; - if (!ped_alignment_init (&end_align, -1, cylinder_size)) - return NULL; - if (min_geom) { - if (!ped_geometry_init (&start_geom, dev, start_pos, 1)) - return NULL; - if (!ped_geometry_init (&end_geom, dev, min_geom->end, - dev->length - min_geom->end)) - return NULL; - } else { - if (!ped_geometry_init (&start_geom, dev, start_pos, - dev->length - start_pos)) - return NULL; - if (!ped_geometry_init (&end_geom, dev, 0, dev->length)) - return NULL; - } - - return ped_constraint_new (&start_align, &end_align, &start_geom, - &end_geom, 1, dev->length); -} - -/* constraints for logical partitions: - * - start_offset is the offset in the start alignment. "normally", - * this is bios_geom->sectors. exceptions: MINOR > 5 at the beginning of the - * extended partition, or MINOR == 5 in the middle of the extended partition - * - is_start_part == 1 if the constraint is for the first cylinder of - * the extended partition, or == 0 if the constraint is for the second cylinder - * onwards of the extended partition. - */ -static PedConstraint* -_logical_constraint (const PedDisk* disk, const PedCHSGeometry* bios_geom, - PedSector start_offset, int is_start_part) -{ - PedPartition* ext_part = ped_disk_extended_partition (disk); - PedDevice* dev = disk->dev; - PedSector cylinder_size = bios_geom->sectors * bios_geom->heads; - PedAlignment start_align; - PedAlignment end_align; - PedGeometry max_geom; - - PED_ASSERT (ext_part != NULL); - - if (!ped_alignment_init (&start_align, start_offset, cylinder_size)) - return NULL; - if (!ped_alignment_init (&end_align, -1, cylinder_size)) - return NULL; - if (is_start_part) { - if (!ped_geometry_init (&max_geom, dev, - ext_part->geom.start, - ext_part->geom.length)) - return NULL; - } else { - PedSector min_start; - PedSector max_length; - - min_start = ped_round_up_to (ext_part->geom.start + 1, - cylinder_size); - max_length = ext_part->geom.end - min_start + 1; - if (min_start >= ext_part->geom.end) - return NULL; - - if (!ped_geometry_init (&max_geom, dev, min_start, max_length)) - return NULL; - } - - return ped_constraint_new (&start_align, &end_align, &max_geom, - &max_geom, 1, dev->length); -} - -/* returns the minimum geometry for the extended partition, given that the - * extended partition must contain: - * * all logical partitions - * * all partition tables for all logical partitions (except the first) - * * the extended partition table - */ -static PedGeometry* -_get_min_extended_part_geom (const PedPartition* ext_part, - const PedCHSGeometry* bios_geom) -{ - PedDisk* disk = ext_part->disk; - PedSector head_size = bios_geom ? bios_geom->sectors : 1; - PedPartition* walk; - PedGeometry* min_geom; - - walk = ped_disk_get_partition (disk, 5); - if (!walk) - return NULL; - - min_geom = ped_geometry_duplicate (&walk->geom); - if (!min_geom) - return NULL; - /* We must always allow at least two sectors at the start, to leave - * room for LILO. See linux/fs/partitions/msdos.c. - */ - ped_geometry_set_start (min_geom, - walk->geom.start - PED_MAX (1 * head_size, 2)); - - for (walk = ext_part->part_list; walk; walk = walk->next) { - if (!ped_partition_is_active (walk) || walk->num == 5) - continue; - if (walk->geom.start < min_geom->start) - ped_geometry_set_start (min_geom, - walk->geom.start - 2 * head_size); - if (walk->geom.end > min_geom->end) - ped_geometry_set_end (min_geom, walk->geom.end); - } - - return min_geom; -} - -static int -_align_primary (PedPartition* part, const PedCHSGeometry* bios_geom, - const PedConstraint* constraint) -{ - PedDisk* disk = part->disk; - PedGeometry* min_geom = NULL; - PedGeometry* solution = NULL; - - if (part->type == PED_PARTITION_EXTENDED) - min_geom = _get_min_extended_part_geom (part, bios_geom); - - solution = _best_solution (part, bios_geom, solution, - _try_constraint (part, constraint, - _primary_start_constraint (disk, part, - bios_geom, min_geom))); - - solution = _best_solution (part, bios_geom, solution, - _try_constraint (part, constraint, - _primary_constraint (disk, bios_geom, - min_geom))); - - if (min_geom) - ped_geometry_destroy (min_geom); - - if (solution) { - ped_geometry_set (&part->geom, solution->start, - solution->length); - ped_geometry_destroy (solution); - return 1; - } - - return 0; -} - -static int -_logical_min_start_head (const PedPartition* part, - const PedCHSGeometry* bios_geom, - const PedPartition* ext_part, - int is_start_ext_part) -{ - PedSector cylinder_size = bios_geom->sectors * bios_geom->heads; - PedSector base_head; - - if (is_start_ext_part) - base_head = 1 + (ext_part->geom.start % cylinder_size) - / bios_geom->sectors; - else - base_head = 0; - - if (part->num == 5) - return base_head + 0; - else - return base_head + 1; -} - -/* Shamelessly copied and adapted from _partition_get_overlap_constraint - * (in disk.c) - * This should get rid of the infamous Assertion (metadata_length > 0) failed - * bug for extended msdos disklabels generated by Parted. - * 1) There always is a partition table at the start of ext_part, so we leave - * a one sector gap there. - * 2)*The partition table of part5 is always at the beginning of the ext_part - * so there is no need to leave a one sector gap before part5. - * *There always is a partition table at the beginning of each partition != 5. - * We don't need to worry to much about consistency with - * _partition_get_overlap_constraint because missing it means we are in edge - * cases anyway, and we don't lose anything by just refusing to do the job in - * those cases. - */ -static PedConstraint* -_log_meta_overlap_constraint (PedPartition* part, const PedGeometry* geom) -{ - PedGeometry safe_space; - PedSector min_start; - PedSector max_end; - PedPartition* ext_part = ped_disk_extended_partition (part->disk); - PedPartition* walk; - int not_5 = (part->num != 5); - - PED_ASSERT (ext_part != NULL); - - walk = ext_part->part_list; - - /* 1) 2) */ - min_start = ext_part->geom.start + 1 + not_5; - max_end = ext_part->geom.end; - - while (walk != NULL /* 2) 2) */ - && ( walk->geom.start - (walk->num != 5) < geom->start - not_5 - || walk->geom.start - (walk->num != 5) <= min_start )) { - if (walk != part && ped_partition_is_active (walk)) - min_start = walk->geom.end + 1 + not_5; /* 2) */ - walk = walk->next; - } - - while (walk && (walk == part || !ped_partition_is_active (walk))) - walk = walk->next; - - if (walk) - max_end = walk->geom.start - 1 - (walk->num != 5); /* 2) */ - - if (min_start >= max_end) - return NULL; - - ped_geometry_init (&safe_space, part->disk->dev, - min_start, max_end - min_start + 1); - return ped_constraint_new_from_max (&safe_space); -} - -static int -_align_logical (PedPartition* part, const PedCHSGeometry* bios_geom, - const PedConstraint* constraint) -{ - PedDisk* disk = part->disk; - PedPartition* ext_part = ped_disk_extended_partition (disk); - PedSector cyl_size = bios_geom->sectors * bios_geom->heads; - PedSector start_base; - int head; - PedGeometry* solution = NULL; - PedConstraint *intersect, *log_meta_overlap; - - PED_ASSERT (ext_part != NULL); - - log_meta_overlap = _log_meta_overlap_constraint(part, &part->geom); - intersect = ped_constraint_intersect (constraint, log_meta_overlap); - ped_constraint_destroy (log_meta_overlap); - if (!intersect) - return 0; - - start_base = ped_round_down_to (part->geom.start, cyl_size); - - for (head = _logical_min_start_head (part, bios_geom, ext_part, 0); - head < PED_MIN (5, bios_geom->heads); head++) { - PedConstraint* disk_constraint; - PedSector start = start_base + head * bios_geom->sectors; - - if (head >= _logical_min_start_head (part, bios_geom, - ext_part, 1)) - disk_constraint = - _logical_constraint (disk, bios_geom, start, 1); - else - disk_constraint = - _logical_constraint (disk, bios_geom, start, 0); - - solution = _best_solution (part, bios_geom, solution, - _try_constraint (part, intersect, - disk_constraint)); - } - - ped_constraint_destroy (intersect); - - if (solution) { - ped_geometry_set (&part->geom, solution->start, - solution->length); - ped_geometry_destroy (solution); - return 1; - } - - return 0; -} - -static int -_align (PedPartition* part, const PedCHSGeometry* bios_geom, - const PedConstraint* constraint) -{ - if (part->type == PED_PARTITION_LOGICAL) - return _align_logical (part, bios_geom, constraint); - else - return _align_primary (part, bios_geom, constraint); -} - -static PedConstraint* -_no_geom_constraint (const PedDisk* disk, PedSector start, PedSector end) -{ - PedGeometry max; - - ped_geometry_init (&max, disk->dev, start, end - start + 1); - return ped_constraint_new_from_max (&max); -} - -static PedConstraint* -_no_geom_extended_constraint (const PedPartition* part) -{ - PedDevice* dev = part->disk->dev; - PedGeometry* min = _get_min_extended_part_geom (part, NULL); - PedGeometry start_range; - PedGeometry end_range; - PedConstraint* constraint; - - if (min) { - ped_geometry_init (&start_range, dev, 1, min->start); - ped_geometry_init (&end_range, dev, min->end, - dev->length - min->end); - ped_geometry_destroy (min); - } else { - ped_geometry_init (&start_range, dev, 1, dev->length - 1); - ped_geometry_init (&end_range, dev, 1, dev->length - 1); - } - constraint = ped_constraint_new (ped_alignment_any, ped_alignment_any, - &start_range, &end_range, 1, dev->length); - return constraint; -} - -static int -_align_primary_no_geom (PedPartition* part, const PedConstraint* constraint) -{ - PedDisk* disk = part->disk; - PedGeometry* solution; - - if (part->type == PED_PARTITION_EXTENDED) { - solution = _try_constraint (part, constraint, - _no_geom_extended_constraint (part)); - } else { - solution = _try_constraint (part, constraint, - _no_geom_constraint (disk, 1, - disk->dev->length - 1)); - } - - if (solution) { - ped_geometry_set (&part->geom, solution->start, - solution->length); - ped_geometry_destroy (solution); - return 1; - } - return 0; -} - -static int -_align_logical_no_geom (PedPartition* part, const PedConstraint* constraint) -{ - PedGeometry* solution; - - solution = _try_constraint (part, constraint, - _log_meta_overlap_constraint (part, &part->geom)); - - if (solution) { - ped_geometry_set (&part->geom, solution->start, - solution->length); - ped_geometry_destroy (solution); - return 1; - } - return 0; -} - -static int -_align_no_geom (PedPartition* part, const PedConstraint* constraint) -{ - if (part->type == PED_PARTITION_LOGICAL) - return _align_logical_no_geom (part, constraint); - else - return _align_primary_no_geom (part, constraint); -} - -static int -msdos_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PedCHSGeometry bios_geom; - DosPartitionData* dos_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - dos_data = part->disk_specific; - - if (dos_data->system == PARTITION_LDM && dos_data->orig) { - PedGeometry *orig_geom = &dos_data->orig->geom; - - if (ped_geometry_test_equal (&part->geom, orig_geom) - && ped_constraint_is_solution (constraint, &part->geom)) - return 1; - - ped_geometry_set (&part->geom, orig_geom->start, - orig_geom->length); - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Parted can't resize partitions managed by " - "Windows Dynamic Disk.")); - return 0; - } - - partition_probe_bios_geometry (part, &bios_geom); - - DosDiskData *disk_specific = part->disk->disk_specific; - if (disk_specific->cylinder_alignment - && _align(part, &bios_geom, constraint)) - return 1; - if (_align_no_geom (part, constraint)) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -add_metadata_part (PedDisk* disk, PedPartitionType type, PedSector start, - PedSector end) -{ - PedPartition* new_part; - - PED_ASSERT (disk != NULL); - - new_part = ped_partition_new (disk, type | PED_PARTITION_METADATA, NULL, - start, end); - if (!new_part) - goto error; - if (!ped_disk_add_partition (disk, new_part, NULL)) - goto error_destroy_new_part; - - return 1; - -error_destroy_new_part: - ped_partition_destroy (new_part); -error: - return 0; -} - -/* There are a few objectives here: - * - avoid having lots of "free space" partitions lying around, to confuse - * the front end. - * - ensure that there's enough room to put in the extended partition - * tables, etc. - */ -static int -add_logical_part_metadata (PedDisk* disk, const PedPartition* log_part) -{ - PedPartition* ext_part = ped_disk_extended_partition (disk); - PedPartition* prev = log_part->prev; - PedCHSGeometry bios_geom; - PedSector cyl_size; - PedSector metadata_start; - PedSector metadata_end; - PedSector metadata_length; - - partition_probe_bios_geometry (ext_part, &bios_geom); - cyl_size = bios_geom.sectors * bios_geom.heads; - - /* if there's metadata shortly before the partition (on the same - * cylinder), then make this new metadata partition touch the end of - * the other. No point having 63 bytes (or whatever) of free space - * partition - just confuses front-ends, etc. - * Otherwise, start the metadata at the start of the cylinder - */ - - metadata_end = log_part->geom.start - 1; - metadata_start = ped_round_down_to (metadata_end, cyl_size); - if (prev) - metadata_start = PED_MAX (metadata_start, prev->geom.end + 1); - else - metadata_start = PED_MAX (metadata_start, - ext_part->geom.start + 1); - metadata_length = metadata_end - metadata_start + 1; - - /* partition 5 doesn't need to have any metadata */ - if (log_part->num == 5 && metadata_length < bios_geom.sectors) - return 1; - - PED_ASSERT (metadata_length > 0); - - return add_metadata_part (disk, PED_PARTITION_LOGICAL, - metadata_start, metadata_end); -} - -/* - * Find the starting sector number of the first non-free partition, - * set *SECTOR to that value, and return 1. - * If there is no non-free partition, don't modify *SECTOR and return 0. - */ -static int -get_start_first_nonfree_part (const PedDisk* disk, PedSector *sector) -{ - PedPartition* walk; - - // disk->part_list is the first partition on the disk. - if (!disk->part_list) - return 0; - - for (walk = disk->part_list; walk; walk = walk->next) { - if (walk->type == PED_PARTITION_NORMAL || - walk->type == PED_PARTITION_EXTENDED) { - *sector = walk->geom.start; - return 1; - } - } - return 0; -} - -/* - * Find the ending sector number of the last non-free partition, - * set *SECTOR to that value, and return 1. - * If there is no non-free partition, don't modify *SECTOR and return 0. - */ -static int -get_end_last_nonfree_part (const PedDisk* disk, PedSector *sector) -{ - PedPartition* last_part = NULL; - PedPartition* walk; - - // disk->part_list is the first partition on the disk. - if (!disk->part_list) - return 0; - - for (walk = disk->part_list; walk; walk = walk->next) { - if (walk->type == PED_PARTITION_NORMAL || - walk->type == PED_PARTITION_EXTENDED) { - last_part = walk; - } - } - - if (!last_part) - return 0; - else { - *sector = last_part->geom.end; - return 1; - } -} - -/* Adds metadata placeholder partitions to cover the partition table (and - * "free" space after it that often has bootloader stuff), and the last - * incomplete cylinder at the end of the disk. - * Parted has to be mindful of the uncertainty of dev->bios_geom. - * It therefore makes sure this metadata doesn't overlap with partitions. - */ -static int -add_startend_metadata (PedDisk* disk) -{ - PedDevice* dev = disk->dev; - PedSector cyl_size = dev->bios_geom.sectors * dev->bios_geom.heads; - PedSector init_start, init_end, final_start, final_end; - - // Ranges for the initial and final metadata partition. - init_start = 0; - if (!get_start_first_nonfree_part(disk, &init_end)) - init_end = dev->bios_geom.sectors - 1; - else - init_end = PED_MIN (dev->bios_geom.sectors - 1, init_end - 1); - - DosDiskData *disk_specific = disk->disk_specific; - if (!disk_specific->cylinder_alignment) - final_start = dev->length - 1; - else if (!get_end_last_nonfree_part(disk, &final_start)) - final_start = ped_round_down_to (dev->length, cyl_size); - else - final_start = PED_MAX (final_start + 1, - ped_round_down_to (dev->length, cyl_size)); - final_end = dev->length - 1; - - // Create the metadata partitions. - // init_end <= dev->length for devices that are _real_ small. - if (init_start < init_end && - init_end <= dev->length && - !add_metadata_part (disk, PED_PARTITION_NORMAL, - init_start, init_end)) - return 0; - - // init_end < final_start so they dont overlap. For very small devs. - if (final_start < final_end && - init_end < final_start && - final_end <= dev->length && - !add_metadata_part (disk, PED_PARTITION_NORMAL, - final_start, final_end)) - return 0; - - return 1; -} - -static int -msdos_alloc_metadata (PedDisk* disk) -{ - PedPartition* ext_part; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - if (!add_startend_metadata (disk)) - return 0; - - ext_part = ped_disk_extended_partition (disk); - if (ext_part) { - int i; - PedSector start, end; - PedCHSGeometry bios_geom; - - for (i=5; 1; i++) { - PedPartition* log_part; - log_part = ped_disk_get_partition (disk, i); - if (!log_part) - break; - if (!add_logical_part_metadata (disk, log_part)) - return 0; - } - - partition_probe_bios_geometry (ext_part, &bios_geom); - start = ext_part->geom.start; - end = start + bios_geom.sectors - 1; - if (ext_part->part_list) - end = PED_MIN (end, - ext_part->part_list->geom.start - 1); - if (!add_metadata_part (disk, PED_PARTITION_LOGICAL, - start, end)) - return 0; - } - - return 1; -} - -static int -next_primary (const PedDisk* disk) -{ - int i; - for (i=1; i<=DOS_N_PRI_PARTITIONS; i++) { - if (!ped_disk_get_partition (disk, i)) - return i; - } - return -1; -} - -static int _GL_ATTRIBUTE_PURE -next_logical (const PedDisk* disk) -{ - int i; - for (i=5; i<=MAX_TOTAL_PART; i++) { - if (!ped_disk_get_partition (disk, i)) - return i; - } - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("cannot create any more partitions"), - disk->dev->path); - return -1; -} - -static int -msdos_partition_enumerate (PedPartition* part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - - /* don't re-number a primary partition */ - if (part->num != -1 && part->num <= DOS_N_PRI_PARTITIONS) - return 1; - - part->num = -1; - - if (part->type & PED_PARTITION_LOGICAL) - part->num = next_logical (part->disk); - else - part->num = next_primary (part->disk); - if (part->num == -1) - return 0; - return 1; -} - -static int -msdos_get_max_primary_partition_count (const PedDisk* disk) -{ - return DOS_N_PRI_PARTITIONS; -} - -static bool -msdos_get_max_supported_partition_count(const PedDisk* disk, int *max_n) -{ - *max_n = MAX_TOTAL_PART; - return true; -} - -#include "pt-common.h" -PT_define_limit_functions (msdos) - -static PedDiskOps msdos_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (msdos_write), - - disk_set_flag: msdos_disk_set_flag, - disk_get_flag: msdos_disk_get_flag, - disk_is_flag_available: msdos_disk_is_flag_available, - - partition_set_name: NULL, - partition_get_name: NULL, - partition_set_type_id: msdos_partition_set_type_id, - partition_get_type_id: msdos_partition_get_type_id, - partition_set_type_uuid: NULL, - partition_get_type_uuid: NULL, - - PT_op_function_initializers (msdos) -}; - -static PedDiskType msdos_disk_type = { - next: NULL, - name: "msdos", - ops: &msdos_disk_ops, - features: PED_DISK_TYPE_EXTENDED | PED_DISK_TYPE_PARTITION_TYPE_ID -}; - -void -ped_disk_msdos_init () -{ - PED_ASSERT (sizeof (DosRawPartition) == 16); - PED_ASSERT (sizeof (DosRawTable) == 512); - - ped_disk_type_register (&msdos_disk_type); -} - -void -ped_disk_msdos_done () -{ - ped_disk_type_unregister (&msdos_disk_type); -} diff --git a/jni/parted/libparted/labels/dvh.c b/jni/parted/libparted/labels/dvh.c deleted file mode 100755 index 0f9124d..0000000 --- a/jni/parted/libparted/labels/dvh.c +++ /dev/null @@ -1,896 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2001-2002, 2005, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include -#include -#include -#include - -#include "dvh.h" -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -/* Default size for volhdr part, same val as IRIX's fx uses */ -#define PTYPE_VOLHDR_DFLTSZ 4096 - -/* Partition numbers that seem to be strongly held convention */ -#define PNUM_VOLHDR 8 -#define PNUM_VOLUME 10 - -/* Other notes of interest: - * PED_PARTITION_EXTENDED is used for volume headers - * PED_PARTITION_LOGICAL is used for bootfiles - * PED_PARTITION_NORMAL is used for all else - */ - -typedef struct _DVHDiskData { - struct device_parameters dev_params; - int swap; /* part num of swap, 0=none */ - int root; /* part num of root, 0=none */ - int boot; /* part num of boot, 0=none */ -} DVHDiskData; - -typedef struct _DVHPartData { - int type; - char name[VDNAMESIZE + 1]; /* boot volumes only */ - int real_file_size; /* boot volumes only */ -} DVHPartData; - -static PedDiskType dvh_disk_type; - -static int -dvh_probe (const PedDevice *dev) -{ - struct volume_header *vh; - - void *label; - if (!ptt_read_sector (dev, 0, &label)) - return 0; - - vh = (struct volume_header *) label; - - bool found = PED_BE32_TO_CPU (vh->vh_magic) == VHMAGIC; - free (label); - return found; -} - -static PedDisk* -dvh_alloc (const PedDevice* dev) -{ - PedDisk* disk; - DVHDiskData* dvh_disk_data; - PedPartition* volume_part; - PedConstraint* constraint_any; - - disk = _ped_disk_alloc (dev, &dvh_disk_type); - if (!disk) - goto error; - - disk->disk_specific = dvh_disk_data - = ped_malloc (sizeof (DVHDiskData)); - if (!dvh_disk_data) - goto error_free_disk; - - memset (&dvh_disk_data->dev_params, 0, - sizeof (struct device_parameters)); - dvh_disk_data->swap = 0; - dvh_disk_data->root = 0; - dvh_disk_data->boot = 0; - - volume_part = ped_partition_new (disk, PED_PARTITION_EXTENDED, NULL, - 0, PTYPE_VOLHDR_DFLTSZ - 1); - if (!volume_part) - goto error_free_disk_specific; - volume_part->num = PNUM_VOLHDR + 1; - constraint_any = ped_constraint_any (dev); - if (!ped_disk_add_partition (disk, volume_part, constraint_any)) - goto error_destroy_constraint_any; - ped_constraint_destroy (constraint_any); - return disk; - -error_destroy_constraint_any: - ped_constraint_destroy (constraint_any); - ped_partition_destroy (volume_part); -error_free_disk_specific: - free (disk->disk_specific); -error_free_disk: - free (disk); -error: - return NULL; -} - -static PedDisk* -dvh_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - DVHDiskData* new_dvh_disk_data; - DVHDiskData* old_dvh_disk_data = disk->disk_specific; - - PED_ASSERT (old_dvh_disk_data != NULL); - - new_disk = ped_disk_new_fresh (disk->dev, &dvh_disk_type); - if (!new_disk) - goto error; - - new_disk->disk_specific = new_dvh_disk_data - = ped_malloc (sizeof (DVHDiskData)); - if (!new_dvh_disk_data) - goto error_free_new_disk; - - new_dvh_disk_data->dev_params = old_dvh_disk_data->dev_params; - return new_disk; - -error_free_new_disk: - free (new_disk); -error: - return NULL; -} - -static void -dvh_free (PedDisk* disk) -{ - free (disk->disk_specific); - _ped_disk_free (disk); -} - -/* two's complement 32-bit checksum */ -static uint32_t _GL_ATTRIBUTE_PURE -_checksum (const uint32_t* base, size_t size) -{ - uint32_t sum = 0; - size_t i; - - for (i = 0; i < size / sizeof (uint32_t); i++) - sum = sum - PED_BE32_TO_CPU (base[i]); - - return sum; -} - -/* try to make a reasonable volume header partition... */ -static PedExceptionOption -_handle_no_volume_header (PedDisk* disk) -{ - PedExceptionOption ret; - PedPartition* part; - PedConstraint* constraint; - - switch (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_FIX + PED_EXCEPTION_CANCEL, - _("%s has no extended partition (volume header partition)."), - disk->dev->path)) { - case PED_EXCEPTION_UNHANDLED: - case PED_EXCEPTION_FIX: - default: - part = ped_partition_new ( - disk, PED_PARTITION_EXTENDED, NULL, - 0, PTYPE_VOLHDR_DFLTSZ - 1); - if (!part) - goto error; - part->num = PNUM_VOLHDR + 1; - constraint = ped_constraint_any (part->disk->dev); - if (!constraint) - goto error_destroy_part; - if (!ped_disk_add_partition (disk, part, constraint)) - goto error_destroy_constraint; - ped_constraint_destroy (constraint); - ret = PED_EXCEPTION_FIX; - break; - - case PED_EXCEPTION_CANCEL: - goto error; - } - return ret; - -error_destroy_constraint: - ped_constraint_destroy (constraint); -error_destroy_part: - ped_partition_destroy (part); -error: - return PED_EXCEPTION_CANCEL; -} - -static PedPartition* -_parse_partition (PedDisk* disk, struct partition_table* pt) -{ - PedPartition* part; - DVHPartData* dvh_part_data; - PedSector start = PED_BE32_TO_CPU (pt->pt_firstlbn); - PedSector length = PED_BE32_TO_CPU (pt->pt_nblks); - - part = ped_partition_new (disk, - pt->pt_type ? 0 : PED_PARTITION_EXTENDED, - NULL, - start, start + length - 1); - if (!part) - return NULL; - - dvh_part_data = part->disk_specific; - dvh_part_data->type = PED_BE32_TO_CPU (pt->pt_type); - strcpy (dvh_part_data->name, ""); - - return part; -} - -static PedPartition* -_parse_boot_file (PedDisk* disk, struct volume_directory* vd) -{ - PedPartition* part; - DVHPartData* dvh_part_data; - PedSector start = PED_BE32_TO_CPU (vd->vd_lbn); - int length = PED_BE32_TO_CPU (vd->vd_nbytes); - - part = ped_partition_new (disk, PED_PARTITION_LOGICAL, NULL, - start, start + length/512 - 1); - if (!part) - return NULL; - - dvh_part_data = part->disk_specific; - dvh_part_data->real_file_size = length; - - memcpy (dvh_part_data->name, vd->vd_name, VDNAMESIZE); - dvh_part_data->name[VDNAMESIZE] = 0; - return part; -} - -static int dvh_write (const PedDisk* disk); - -/* YUCK - * - * If you remove a boot/root/swap partition, the disk->disk_specific - * thing isn't updated. (Probably reflects a design bug somewhere...) - * Anyway, the workaround is: flush stale flags whenever we allocate - * new partition numbers, and before we write to disk. - */ -static void -_flush_stale_flags (const PedDisk* disk) -{ - DVHDiskData* dvh_disk_data = disk->disk_specific; - - if (dvh_disk_data->root - && !ped_disk_get_partition (disk, dvh_disk_data->root)) - dvh_disk_data->root = 0; - if (dvh_disk_data->swap - && !ped_disk_get_partition (disk, dvh_disk_data->swap)) - dvh_disk_data->swap = 0; - if (dvh_disk_data->boot - && !ped_disk_get_partition (disk, dvh_disk_data->boot)) - dvh_disk_data->boot = 0; -} - -static int -dvh_read (PedDisk* disk) -{ - DVHDiskData* dvh_disk_data = disk->disk_specific; - int i; - struct volume_header vh; - char boot_name [BFNAMESIZE + 1]; -#ifndef DISCOVER_ONLY - int write_back = 0; -#endif - - PED_ASSERT (dvh_disk_data != NULL); - - ped_disk_delete_all (disk); - - void *s0; - if (!ptt_read_sector (disk->dev, 0, &s0)) - return 0; - memcpy (&vh, s0, sizeof vh); - free (s0); - - if (_checksum ((uint32_t*) &vh, sizeof (struct volume_header))) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Checksum is wrong, indicating the partition " - "table is corrupt.")) - == PED_EXCEPTION_CANCEL) - return 0; - } - - PED_ASSERT (PED_BE32_TO_CPU (vh.vh_magic) == VHMAGIC); - - dvh_disk_data->dev_params = vh.vh_dp; - boot_name[BFNAMESIZE] = 0; - strncpy (boot_name, vh.vh_bootfile, BFNAMESIZE); - - /* normal partitions */ - for (i = 0; i < NPARTAB; i++) { - PedPartition* part; - - if (!vh.vh_pt[i].pt_nblks) - continue; - /* Skip the whole-disk partition, parted disklikes overlap */ - if (PED_BE32_TO_CPU (vh.vh_pt[i].pt_type) == PTYPE_VOLUME) - continue; - - part = _parse_partition (disk, &vh.vh_pt[i]); - if (!part) - goto error_delete_all; - - part->fs_type = ped_file_system_probe (&part->geom); - part->num = i + 1; - - if (PED_BE16_TO_CPU (vh.vh_rootpt) == i) - ped_partition_set_flag (part, PED_PARTITION_ROOT, 1); - if (PED_BE16_TO_CPU (vh.vh_swappt) == i) - ped_partition_set_flag (part, PED_PARTITION_SWAP, 1); - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) { - ped_partition_destroy (part); - goto error_delete_all; - } - } - - if (!ped_disk_extended_partition (disk)) { -#ifdef DISCOVER_ONLY - return 1; -#else - switch (_handle_no_volume_header (disk)) { - case PED_EXCEPTION_CANCEL: - return 0; - case PED_EXCEPTION_IGNORE: - return 1; - case PED_EXCEPTION_FIX: - write_back = 1; - break; - default: - break; - } -#endif - } - - /* boot partitions */ - for (i = 0; i < NVDIR; i++) { - PedPartition* part; - - if (!vh.vh_vd[i].vd_nbytes) - continue; - - part = _parse_boot_file (disk, &vh.vh_vd[i]); - if (!part) - goto error_delete_all; - - part->fs_type = ped_file_system_probe (&part->geom); - part->num = NPARTAB + i + 1; - - if (!strcmp (boot_name, ped_partition_get_name (part))) - ped_partition_set_flag (part, PED_PARTITION_BOOT, 1); - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) { - ped_partition_destroy (part); - goto error_delete_all; - } - } -#ifndef DISCOVER_ONLY - if (write_back) - dvh_write (disk); -#endif - return 1; - -error_delete_all: - ped_disk_delete_all (disk); - return 0; -} - -#ifndef DISCOVER_ONLY -static void -_generate_partition (PedPartition* part, struct partition_table* pt) -{ - DVHPartData* dvh_part_data = part->disk_specific; - - /* Assert not a bootfile */ - PED_ASSERT ((part->type & PED_PARTITION_LOGICAL) == 0); - - pt->pt_nblks = PED_CPU_TO_BE32 (part->geom.length); - pt->pt_firstlbn = PED_CPU_TO_BE32 (part->geom.start); - pt->pt_type = PED_CPU_TO_BE32 (dvh_part_data->type); -} - -static void -_generate_boot_file (PedPartition* part, struct volume_directory* vd) -{ - DVHPartData* dvh_part_data = part->disk_specific; - - /* Assert it's a bootfile */ - PED_ASSERT ((part->type & PED_PARTITION_LOGICAL) != 0); - - vd->vd_nbytes = PED_CPU_TO_BE32 (dvh_part_data->real_file_size); - vd->vd_lbn = PED_CPU_TO_BE32 (part->geom.start); - - memset (vd->vd_name, 0, VDNAMESIZE); - memcpy (vd->vd_name, dvh_part_data->name, VDNAMESIZE); -} - -static int -dvh_write (const PedDisk* disk) -{ - DVHDiskData* dvh_disk_data = disk->disk_specific; - struct volume_header vh; - int i; - - PED_ASSERT (dvh_disk_data != NULL); - - _flush_stale_flags (disk); - - memset (&vh, 0, sizeof (struct volume_header)); - - vh.vh_magic = PED_CPU_TO_BE32 (VHMAGIC); - vh.vh_rootpt = PED_CPU_TO_BE16 (dvh_disk_data->root - 1); - vh.vh_swappt = PED_CPU_TO_BE16 (dvh_disk_data->swap - 1); - - if (dvh_disk_data->boot) { - PedPartition* boot_part; - boot_part = ped_disk_get_partition (disk, dvh_disk_data->boot); - strcpy (vh.vh_bootfile, ped_partition_get_name (boot_part)); - } - - vh.vh_dp = dvh_disk_data->dev_params; - /* Set up rudimentary device geometry */ - vh.vh_dp.dp_cyls - = PED_CPU_TO_BE16 ((short)disk->dev->bios_geom.cylinders); - vh.vh_dp.dp_trks0 = PED_CPU_TO_BE16 ((short)disk->dev->bios_geom.heads); - vh.vh_dp.dp_secs - = PED_CPU_TO_BE16 ((short)disk->dev->bios_geom.sectors); - vh.vh_dp.dp_secbytes = PED_CPU_TO_BE16 ((short)disk->dev->sector_size); - - for (i = 0; i < NPARTAB; i++) { - PedPartition* part = ped_disk_get_partition (disk, i + 1); - if (part) - _generate_partition (part, &vh.vh_pt[i]); - } - - /* whole disk partition - * This is only ever written here, and never modified - * (or even shown) as it must contain the entire disk, - * and parted does not like overlapping partitions - */ - vh.vh_pt[PNUM_VOLUME].pt_nblks = PED_CPU_TO_BE32 (disk->dev->length); - vh.vh_pt[PNUM_VOLUME].pt_firstlbn = PED_CPU_TO_BE32 (0); - vh.vh_pt[PNUM_VOLUME].pt_type = PED_CPU_TO_BE32 (PTYPE_VOLUME); - - for (i = 0; i < NVDIR; i++) { - PedPartition* part = ped_disk_get_partition (disk, - i + 1 + NPARTAB); - if (part) - _generate_boot_file (part, &vh.vh_vd[i]); - } - - vh.vh_csum = 0; - vh.vh_csum = PED_CPU_TO_BE32 (_checksum ((uint32_t*) &vh, - sizeof (struct volume_header))); - - return (ptt_write_sector (disk, &vh, sizeof vh) - && ped_device_sync (disk->dev)); -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -dvh_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - DVHPartData* dvh_part_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (!ped_partition_is_active (part)) { - part->disk_specific = NULL; - return part; - } - - dvh_part_data = part->disk_specific = - ped_malloc (sizeof (DVHPartData)); - if (!dvh_part_data) - goto error_free_part; - - dvh_part_data->type = (part_type == PED_PARTITION_EXTENDED) - ? PTYPE_VOLHDR - : PTYPE_RAW; - strcpy (dvh_part_data->name, ""); - dvh_part_data->real_file_size = part->geom.length * 512; - return part; - -error_free_part: - _ped_partition_free (part); -error: - return NULL; -} - -static PedPartition* -dvh_partition_duplicate (const PedPartition* part) -{ - PedPartition* result; - DVHPartData* part_data = part->disk_specific; - DVHPartData* result_data; - - result = _ped_partition_alloc (part->disk, part->type, part->fs_type, - part->geom.start, part->geom.end); - if (!result) - goto error; - result->num = part->num; - - if (!ped_partition_is_active (part)) { - result->disk_specific = NULL; - return result; - } - - result_data = result->disk_specific = - ped_malloc (sizeof (DVHPartData)); - if (!result_data) - goto error_free_part; - - result_data->type = part_data->type; - strcpy (result_data->name, part_data->name); - result_data->real_file_size = part_data->real_file_size; - return result; - -error_free_part: - _ped_partition_free (result); -error: - return NULL; -} - -static void -dvh_partition_destroy (PedPartition* part) -{ - if (ped_partition_is_active (part)) { - PED_ASSERT (part->disk_specific != NULL); - free (part->disk_specific); - } - _ped_partition_free (part); -} - -static int -dvh_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - DVHPartData* dvh_part_data = part->disk_specific; - - part->fs_type = fs_type; - - if (part->type == PED_PARTITION_EXTENDED) { - dvh_part_data->type = PTYPE_VOLHDR; - return 1; - } - - /* Is this a bootfile? */ - if (part->type == PED_PARTITION_LOGICAL) - return 1; - - if (fs_type && !strcmp (fs_type->name, "xfs")) - dvh_part_data->type = PTYPE_XFS; - else - dvh_part_data->type = PTYPE_RAW; - return 1; -} - -static int -dvh_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - DVHDiskData* dvh_disk_data = part->disk->disk_specific; - - switch (flag) { - case PED_PARTITION_ROOT: - if (part->type != 0 && state) { -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Only primary partitions can be root " - "partitions.")); -#endif - return 0; - } - dvh_disk_data->root = state ? part->num : 0; - break; - - case PED_PARTITION_SWAP: - if (part->type != 0 && state) { -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Only primary partitions can be swap " - "partitions.")); - return 0; -#endif - } - dvh_disk_data->swap = state ? part->num : 0; - break; - - case PED_PARTITION_BOOT: - if (part->type != PED_PARTITION_LOGICAL && state) { -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Only logical partitions can be a boot " - "file.")); -#endif - return 0; - } - dvh_disk_data->boot = state ? part->num : 0; - break; - - case PED_PARTITION_LVM: - case PED_PARTITION_LBA: - case PED_PARTITION_HIDDEN: - case PED_PARTITION_RAID: - default: - return 0; - } - return 1; -} - -static int _GL_ATTRIBUTE_PURE -dvh_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - DVHDiskData* dvh_disk_data = part->disk->disk_specific; - - switch (flag) { - case PED_PARTITION_ROOT: - return dvh_disk_data->root == part->num; - - case PED_PARTITION_SWAP: - return dvh_disk_data->swap == part->num; - - case PED_PARTITION_BOOT: - return dvh_disk_data->boot == part->num; - - case PED_PARTITION_LVM: - case PED_PARTITION_LBA: - case PED_PARTITION_HIDDEN: - case PED_PARTITION_RAID: - default: - return 0; - } - return 1; -} - -static int -dvh_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_ROOT: - case PED_PARTITION_SWAP: - case PED_PARTITION_BOOT: - return 1; - - case PED_PARTITION_LVM: - case PED_PARTITION_LBA: - case PED_PARTITION_HIDDEN: - case PED_PARTITION_RAID: - default: - return 0; - } - return 1; -} - -static void -dvh_partition_set_name (PedPartition* part, const char* name) -{ - DVHPartData* dvh_part_data = part->disk_specific; - - if (part->type == PED_PARTITION_LOGICAL) { - /* Bootfile */ - memcpy (dvh_part_data->name, name, VDNAMESIZE); - dvh_part_data->name[VDNAMESIZE] = 0; - } else { -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("failed to set dvh partition name to %s:\n" - "Only logical partitions (boot files) have a name."), - name); -#endif - } -} - -static const char* -dvh_partition_get_name (const PedPartition* part) -{ - DVHPartData* dvh_part_data = part->disk_specific; - return dvh_part_data->name; -} - -/* The constraint for the volume header partition is different, because it must - * contain the first sector of the disk. - */ -static PedConstraint* -_get_extended_constraint (PedDisk* disk) -{ - PedGeometry min_geom; - if (!ped_geometry_init (&min_geom, disk->dev, 0, 1)) - return NULL; - return ped_constraint_new_from_min (&min_geom); -} - -static PedConstraint* -_get_primary_constraint (PedDisk* disk) -{ - PedGeometry max_geom; - if (!ped_geometry_init (&max_geom, disk->dev, 1, disk->dev->length - 1)) - return NULL; - return ped_constraint_new_from_max (&max_geom); -} - -static int -dvh_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - - if (_ped_partition_attempt_align ( - part, constraint, - (part->type == PED_PARTITION_EXTENDED) - ? _get_extended_constraint (part->disk) - : _get_primary_constraint (part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -dvh_partition_enumerate (PedPartition* part) -{ - int i; - - /* never change the partition numbers */ - if (part->num != -1) - return 1; - - _flush_stale_flags (part->disk); - - if (part->type & PED_PARTITION_LOGICAL) { - /* Bootfile */ - for (i = 1 + NPARTAB; i <= NPARTAB + NVDIR; i++) { - if (!ped_disk_get_partition (part->disk, i)) { - part->num = i; - return 1; - } - } - PED_ASSERT (0); - } else if (part->type & PED_PARTITION_EXTENDED) { - /* Volheader */ - part->num = PNUM_VOLHDR + 1; - } else { - for (i = 1; i <= NPARTAB; i++) { - /* reserved for full volume partition */ - if (i == PNUM_VOLUME + 1) - continue; - - if (!ped_disk_get_partition (part->disk, i)) { - part->num = i; - return 1; - } - } - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Too many primary partitions")); - } - - return 0; -} - -static int -dvh_get_max_primary_partition_count (const PedDisk* disk) -{ - return NPARTAB; -} - -static bool -dvh_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = NPARTAB; - return true; -} - - -static int -dvh_alloc_metadata (PedDisk* disk) -{ - PedPartition* part; - PedPartition* extended_part; - PedPartitionType metadata_type; - PED_ASSERT(disk != NULL); - - /* We don't need to "protect" the start of the disk from the volume - * header. - */ - extended_part = ped_disk_extended_partition (disk); - if (extended_part && extended_part->geom.start == 0) - metadata_type = PED_PARTITION_METADATA | PED_PARTITION_LOGICAL; - else - metadata_type = PED_PARTITION_METADATA; - - part = ped_partition_new (disk, metadata_type, NULL, 0, 0); - if (!part) - goto error; - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (ok) - return 1; - - ped_partition_destroy (part); -error: - return 0; -} - -#include "pt-common.h" -PT_define_limit_functions (dvh) - -static PedDiskOps dvh_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (dvh_write), - - partition_set_name: dvh_partition_set_name, - partition_get_name: dvh_partition_get_name, - PT_op_function_initializers (dvh) -}; - -static PedDiskType dvh_disk_type = { - next: NULL, - name: "dvh", - ops: &dvh_disk_ops, - features: PED_DISK_TYPE_PARTITION_NAME | PED_DISK_TYPE_EXTENDED -}; - -void -ped_disk_dvh_init () -{ - PED_ASSERT (sizeof (struct volume_header) == 512); - - ped_disk_type_register (&dvh_disk_type); -} - -void -ped_disk_dvh_done () -{ - ped_disk_type_unregister (&dvh_disk_type); -} diff --git a/jni/parted/libparted/labels/dvh.h b/jni/parted/libparted/labels/dvh.h deleted file mode 100755 index 7e7fae7..0000000 --- a/jni/parted/libparted/labels/dvh.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - Copyright (C) 1985 MIPS Computer Systems, Inc. - Copyright (C) 2000 Silicon Graphics Computer Systems, Inc. - - 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 3 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, see . -*/ - -#ifndef _SYS_DVH_H -#define _SYS_DVH_H - -/* - * Format for volume header information - * - * The volume header is a block located at the beginning of all disk - * media (sector 0). It contains information pertaining to physical - * device parameters and logical partition information. - * - * The volume header is manipulated by disk formatters/verifiers, - * partition builders (e.g. fx, dvhtool, and mkfs), and disk drivers. - * - * Previous versions of IRIX wrote a copy of the volume header is - * located at sector 0 of each track of cylinder 0. These copies were - * never used, and reduced the capacity of the volume header to hold large - * files, so this practice was discontinued. - * The volume header is constrained to be less than or equal to 512 - * bytes long. A particular copy is assumed valid if no drive errors - * are detected, the magic number is correct, and the 32 bit 2's complement - * of the volume header is correct. The checksum is calculated by initially - * zeroing vh_csum, summing the entire structure and then storing the - * 2's complement of the sum. Thus a checksum to verify the volume header - * should be 0. - * - * The error summary table, bad sector replacement table, and boot blocks are - * located by searching the volume directory within the volume header. - * - * Tables are sized simply by the integral number of table records that - * will fit in the space indicated by the directory entry. - * - * The amount of space allocated to the volume header, replacement blocks, - * and other tables is user defined when the device is formatted. - */ - -/* - * device parameters are in the volume header to determine mapping - * from logical block numbers to physical device addresses - * - * Linux doesn't care ... - */ -struct device_parameters { - unsigned char dp_skew; /* spiral addressing skew */ - unsigned char dp_gap1; /* words of 0 before header */ - unsigned char dp_gap2; /* words of 0 between hdr and data */ - unsigned char dp_spares_cyl; /* This is for drives (such as SCSI - that support zone oriented sparing, where the zone is larger - than one track. It gets subracteded from the cylinder size - ( dp_trks0 * dp_sec) when doing partition size calculations */ - unsigned short dp_cyls; /* number of usable cylinders (i.e., - doesn't include cylinders reserved by the drive for badblocks, - etc.). For drives with variable geometry, this number may be - decreased so that: - dp_cyls * ((dp_heads * dp_trks0) - dp_spares_cyl) <= actualcapacity - This happens on SCSI drives such as the Wren IV and Toshiba 156 - Also see dp_cylshi below */ - unsigned short dp_shd0; /* starting head vol 0 */ - unsigned short dp_trks0; /* number of tracks / cylinder vol 0*/ - unsigned char dp_ctq_depth; /* Depth of CTQ queue */ - unsigned char dp_cylshi; /* high byte of 24 bits of cylinder count */ - unsigned short dp_unused; /* not used */ - unsigned short dp_secs; /* number of sectors/track */ - unsigned short dp_secbytes; /* length of sector in bytes */ - unsigned short dp_interleave; /* sector interleave */ - int dp_flags; /* controller characteristics */ - int dp_datarate; /* bytes/sec for kernel stats */ - int dp_nretries; /* max num retries on data error */ - int dp_mspw; /* ms per word to xfer, for iostat */ - unsigned short dp_xgap1; /* Gap 1 for xylogics controllers */ - unsigned short dp_xsync; /* sync delay for xylogics controllers */ - unsigned short dp_xrdly; /* read delay for xylogics controllers */ - unsigned short dp_xgap2; /* gap 2 for xylogics controllers */ - unsigned short dp_xrgate; /* read gate for xylogics controllers */ - unsigned short dp_xwcont; /* write continuation for xylogics */ -}; - -/* - * Device characterization flags - * (dp_flags) - */ -#define DP_SECTSLIP 0x00000001 /* sector slip to spare sector */ -#define DP_SECTFWD 0x00000002 /* forward to replacement sector */ -#define DP_TRKFWD 0x00000004 /* forward to replacement track */ -#define DP_MULTIVOL 0x00000008 /* multiple volumes per spindle */ -#define DP_IGNOREERRORS 0x00000010 /* transfer data regardless of errors */ -#define DP_RESEEK 0x00000020 /* recalibrate as last resort */ -#define DP_CTQ_EN 0x00000040 /* enable command tag queueing */ - -/* - * Boot blocks, bad sector tables, and the error summary table, are located - * via the volume_directory. - */ -#define VDNAMESIZE 8 - -struct volume_directory { - char vd_name[VDNAMESIZE]; /* name */ - unsigned int vd_lbn; /* logical block number */ - unsigned int vd_nbytes; /* file length in bytes */ -}; - -/* - * partition table describes logical device partitions - * (device drivers examine this to determine mapping from logical units - * to cylinder groups, device formatters/verifiers examine this to determine - * location of replacement tracks/sectors, etc) - * - * NOTE: pt_firstlbn SHOULD BE CYLINDER ALIGNED - */ -struct partition_table { /* one per logical partition */ - unsigned int pt_nblks; /* # of logical blks in partition */ - unsigned int pt_firstlbn; /* first lbn of partition */ - int pt_type; /* use of partition */ -}; - -#define PTYPE_VOLHDR 0 /* partition is volume header */ -#define PTYPE_TRKREPL 1 /* partition is used for repl trks */ -#define PTYPE_SECREPL 2 /* partition is used for repl secs */ -#define PTYPE_RAW 3 /* partition is used for data */ -#define PTYPE_BSD42 4 /* partition is 4.2BSD file system */ -#define PTYPE_BSD 4 /* partition is 4.2BSD file system */ -#define PTYPE_SYSV 5 /* partition is SysV file system */ -#define PTYPE_VOLUME 6 /* partition is entire volume */ -#define PTYPE_EFS 7 /* partition is sgi EFS */ -#define PTYPE_LVOL 8 /* partition is part of a logical vol */ -#define PTYPE_RLVOL 9 /* part of a "raw" logical vol */ -#define PTYPE_XFS 10 /* partition is sgi XFS */ -#define PTYPE_XFSLOG 11 /* partition is sgi XFS log */ -#define PTYPE_XLV 12 /* partition is part of an XLV vol */ -#define PTYPE_XVM 13 /* partition is sgi XVM */ -#define NPTYPES 16 - -#define VHMAGIC 0xbe5a941 /* randomly chosen value */ -#define NPARTAB 16 /* 16 unix partitions */ -#define NVDIR 15 /* max of 15 directory entries */ -#define BFNAMESIZE 16 /* max 16 chars in boot file name */ - -/* Partition types for ARCS */ -#define NOT_USED 0 /* Not used */ -#define FAT_SHORT 1 /* FAT file system, 12-bit FAT entries */ -#define FAT_LONG 4 /* FAT file system, 16-bit FAT entries */ -#define EXTENDED 5 /* extended partition */ -#define HUGE 6 /* huge partition- MS/DOS 4.0 and later */ - -/* Active flags for ARCS */ -#define BOOTABLE 0x00; -#define NOT_BOOTABLE 0x80; - -struct volume_header { - int vh_magic; /* identifies volume header */ - short vh_rootpt; /* root partition number */ - short vh_swappt; /* swap partition number */ - char vh_bootfile[BFNAMESIZE]; /* name of file to boot */ - struct device_parameters vh_dp; /* device parameters */ - struct volume_directory vh_vd[NVDIR]; /* other vol hdr contents */ - struct partition_table vh_pt[NPARTAB]; /* device partition layout */ - int vh_csum; /* volume header checksum */ - int vh_fill; /* fill out to 512 bytes */ -}; - -#endif /* _SYS_DVH_H */ diff --git a/jni/parted/libparted/labels/efi_crc32.c b/jni/parted/libparted/labels/efi_crc32.c deleted file mode 100755 index c25409f..0000000 --- a/jni/parted/libparted/labels/efi_crc32.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Dec 5, 2000 Matt Domsch - * - Copied crc32.c from the linux/drivers/net/cipe directory. - * - Now pass seed as an arg - * - changed unsigned long to uint32_t, added #include - * - changed len to be an unsigned long - * - changed crc32val to be a register - * - License remains unchanged! It's still GPL-compatable! - */ - - /* ============================================================= */ - /* COPYRIGHT (C) 1986 Gary S. Brown. You may use this program, or */ - /* code or tables extracted from it, as desired without restriction. */ - /* */ - /* First, the polynomial itself and its table of feedback terms. The */ - /* polynomial is */ - /* X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0 */ - /* */ - /* Note that we take it "backwards" and put the highest-order term in */ - /* the lowest-order bit. The X^32 term is "implied"; the LSB is the */ - /* X^31 term, etc. The X^0 term (usually shown as "+1") results in */ - /* the MSB being 1. */ - /* */ - /* Note that the usual hardware shift register implementation, which */ - /* is what we're using (we're merely optimizing it by doing eight-bit */ - /* chunks at a time) shifts bits into the lowest-order term. In our */ - /* implementation, that means shifting towards the right. Why do we */ - /* do it this way? Because the calculated CRC must be transmitted in */ - /* order from highest-order term to lowest-order term. UARTs transmit */ - /* characters in order from LSB to MSB. By storing the CRC this way, */ - /* we hand it to the UART in the order low-byte to high-byte; the UART */ - /* sends each low-bit to hight-bit; and the result is transmission bit */ - /* by bit from highest- to lowest-order term without requiring any bit */ - /* shuffling on our part. Reception works similarly. */ - /* */ - /* The feedback terms table consists of 256, 32-bit entries. Notes: */ - /* */ - /* The table can be generated at runtime if desired; code to do so */ - /* is shown later. It might not be obvious, but the feedback */ - /* terms simply represent the results of eight shift/xor opera- */ - /* tions for all combinations of data and CRC register values. */ - /* */ - /* The values must be right-shifted by eight bits by the "updcrc" */ - /* logic; the shift must be unsigned (bring in zeroes). On some */ - /* hardware you could probably optimize the shift in assembler by */ - /* using byte-swap instructions. */ - /* polynomial $edb88320 */ - /* */ - /* -------------------------------------------------------------------- */ - -#include -#include - -static const uint32_t crc32_tab[] = { - 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, - 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, - 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, - 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL, - 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L, - 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L, - 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, - 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL, - 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L, - 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL, - 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, - 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L, - 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L, - 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL, - 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, - 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L, - 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL, - 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L, - 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, - 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L, - 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL, - 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, - 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, - 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, - 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, - 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L, - 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, - 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, - 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, - 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, - 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, - 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L, - 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L, - 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL, - 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL, - 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L, - 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL, - 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L, - 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, - 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L, - 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL, - 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L, - 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, - 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL, - 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L, - 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L, - 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, - 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L, - 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L, - 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L, - 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, - 0x2d02ef8dL - }; - -/* Return a 32-bit CRC of the contents of the buffer. */ - -uint32_t _GL_ATTRIBUTE_PURE -__efi_crc32(const void *buf, unsigned long len, uint32_t seed) -{ - unsigned long i; - register uint32_t crc32val; - const unsigned char *s = buf; - - crc32val = seed; - for (i = 0; i < len; i ++) - { - crc32val = - crc32_tab[(crc32val ^ s[i]) & 0xff] ^ - (crc32val >> 8); - } - return crc32val; -} diff --git a/jni/parted/libparted/labels/fdasd.c b/jni/parted/libparted/labels/fdasd.c deleted file mode 100755 index cee4d46..0000000 --- a/jni/parted/libparted/labels/fdasd.c +++ /dev/null @@ -1,1442 +0,0 @@ -/* - * File...........: arch/s390/tools/fdasd.c - * Author(s)......: Volker Sameske - * Bugreports.to..: - * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 2001 - * - * History of changes (starts March 2001) - * 2001-04-11 possibility to change volume serial added - * possibility to change partition type added - * some changes to DS4HPCHR and DS4DSREC - * 2001-05-03 check for invalid partition numbers added - * wrong free_space calculation bug fixed - * 2001-06-26 '-a' option added, it is now possible to add a single - * partition in non-interactive mode - * 2001-06-26 long parameter support added - * - */ - -#include -#include -#include -#include -#include - -#include - -#include -#if ENABLE_NLS -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static int -getpos (fdasd_anchor_t *anc, int dsn) -{ - PDEBUG - return anc->partno[dsn]; -} - -static int -getdsn (fdasd_anchor_t *anc, int pos) -{ - PDEBUG - int i; - - for (i=0; ipartno[i] == pos) - return i; - } - - return -1; -} - -static void -setpos (fdasd_anchor_t *anc, int dsn, int pos) -{ - PDEBUG - anc->partno[dsn] = pos; -} - -static u_int32_t -get_usable_cylinders (fdasd_anchor_t *anc) -{ - u_int32_t cyl; - - /* large volume */ - if (anc->f4->DS4DEVCT.DS4DSCYL == LV_COMPAT_CYL && - anc->f4->DS4DCYL > anc->f4->DS4DEVCT.DS4DSCYL) - return anc->f4->DS4DCYL; - /* normal volume */ - if (anc->f4->DS4DEVCT.DS4DEVFG & ALTERNATE_CYLINDERS_USED) - cyl = anc->f4->DS4DEVCT.DS4DSCYL - - (u_int16_t) anc->f4->DS4DEVAC; - else - cyl = anc->f4->DS4DEVCT.DS4DSCYL; - return cyl; -} - -static void -get_addr_of_highest_f1_f8_label (fdasd_anchor_t *anc, cchhb_t *addr) -{ - - u_int8_t record; - /* We have to count the follwing labels: - * one format 4 - * one format 5 - * format 7 only if we have moren then BIG_DISK_SIZE tracks - * one for each format 1 or format 8 label == one for each partition - * one for each format 9 label before the last format 8 - * We assume that all partitions use format 8 labels when - * anc->formatted_cylinders > LV_COMPAT_CYL - * Note: Record zero is special, so block 0 on our disk is record 1! - */ - - record = anc->used_partitions + 2; - if (anc->big_disk) - record++; - if (anc->formatted_cylinders > LV_COMPAT_CYL) - record += anc->used_partitions - 1; - vtoc_set_cchhb(addr, VTOC_START_CC, VTOC_START_HH, record); -} - -void -fdasd_cleanup (fdasd_anchor_t *anchor) -{ - PDEBUG - int i; - partition_info_t *part_info, *next; - - if (anchor == NULL) - return; - - free(anchor->f4); - free(anchor->f5); - free(anchor->f7); - free(anchor->vlabel); - - part_info = anchor->first; - for (i = 1; i <= USABLE_PARTITIONS && part_info != NULL; i++) { - next = part_info->next; - free(part_info->f1); - free(part_info); - part_info = next; - } -} - -static void -fdasd_error (fdasd_anchor_t *anc, enum fdasd_failure why, char const *str) -{ - PDEBUG - char error[2*LINE_LENGTH], *message = error; - - switch (why) { - case unable_to_open_disk: - sprintf(error, "fdasd: %s -- %s\n", _("open error"), str); - break; - case unable_to_seek_disk: - sprintf(error, "fdasd: %s -- %s\n", _("seek error"), str); - break; - case unable_to_read_disk: - sprintf(error, "fdasd: %s -- %s\n", _("read error"), str); - break; - case read_only_disk: - sprintf(error, "fdasd: %s -- %s\n", _("write error"), str); - break; - case unable_to_ioctl: - sprintf(error, "fdasd: %s -- %s\n", _("ioctl() error"), str); - break; - case api_version_mismatch: - sprintf(error, "fdasd: %s -- %s\n", - _("API version mismatch"), str); - break; - case wrong_disk_type: - sprintf(error, "fdasd: %s -- %s\n", - _("Unsupported disk type"), str); - break; - case wrong_disk_format: - sprintf(error, "fdasd: %s -- %s\n", - _("Unsupported disk format"), str); - break; - case disk_in_use: - sprintf(error, "fdasd: %s -- %s\n", - _("Disk is in use"), str); - break; - case config_syntax_error: - sprintf(error, "fdasd: %s -- %s\n", - _("Syntax error in config file"), str); - break; - case vlabel_corrupted: - sprintf(error, "fdasd: %s -- %s\n", - _("Volume label is corrupted"), str); - break; - case dsname_corrupted: - sprintf(error, "fdasd: %s -- %s\n", - _("A data set name is corrupted"), str); - break; - case malloc_failed: - sprintf(error, "fdasd: %s -- %s\n", - _("Memory allocation failed"), str); - break; - case device_verification_failed: - sprintf(error, "fdasd: %s -- %s\n", - _("Device verification failed"), - _("The specified device is not a valid DASD device")); - break; - case volser_not_found: - sprintf(error, "fdasd: %s -- %s\n", _("VOLSER not found on device"), str); - break; - default: - sprintf(error, "fdasd: %s: %s\n", _("Fatal error"), str); - } - - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, message); -} - -/* - * initializes the anchor structure and allocates some - * memory for the labels - */ -void -fdasd_initialize_anchor (fdasd_anchor_t * anc) -{ - PDEBUG - int i; - volume_label_t *v; - partition_info_t *p = NULL; - partition_info_t *q = NULL; - - bzero(anc, sizeof(fdasd_anchor_t)); - - for (i=0; iconfdata, sizeof(config_data_t)); - - anc->f4 = malloc(sizeof(format4_label_t)); - if (anc->f4 == NULL) - fdasd_error(anc, malloc_failed, "FMT4 DSCB."); - - anc->f5 = malloc(sizeof(format5_label_t)); - if (anc->f5 == NULL) - fdasd_error(anc, malloc_failed, "FMT5 DSCB."); - - anc->f7 = malloc(sizeof(format7_label_t)); - if (anc->f7 == NULL) - fdasd_error(anc, malloc_failed, "FMT7 DSCB."); - - /* template for all format 9 labels */ - anc->f9 = malloc(sizeof(format9_label_t)); - if (anc->f9 == NULL) - fdasd_error(anc, malloc_failed, "FMT9 DSCB."); - - bzero(anc->f4, sizeof(format4_label_t)); - bzero(anc->f5, sizeof(format5_label_t)); - bzero(anc->f7, sizeof(format7_label_t)); - bzero(anc->f9, sizeof(format9_label_t)); - vtoc_init_format9_label(anc->f9); - - v = malloc(sizeof(volume_label_t)); - if (v == NULL) - fdasd_error(anc, malloc_failed, - _("No room for volume label.")); - bzero(v, sizeof(volume_label_t)); - anc->vlabel = v; - - for (i=1; i<=USABLE_PARTITIONS; i++) { - p = malloc(sizeof(partition_info_t)); - if (p == NULL) - fdasd_error(anc, malloc_failed, - _("No room for partition info.")); - bzero(p, sizeof(partition_info_t)); - - /* add p to double pointered list */ - if (i == 1) { - anc->first = p; - } else if (i == USABLE_PARTITIONS) { - anc->last = p; - p->prev = q; - q->next = p; - } else { - p->prev = q; - q->next = p; - } - - p->f1 = malloc(sizeof(format1_label_t)); - if (p->f1 == NULL) - fdasd_error(anc, malloc_failed, "FMT1 DSCB."); - bzero(p->f1, sizeof(format1_label_t)); - - q = p; - } - anc->hw_cylinders = 0; - anc->formatted_cylinders = 0; - anc->is_file = 0; -} - -/* - * writes all changes to dasd - */ -static void -fdasd_write_vtoc_labels (fdasd_anchor_t * anc, int fd) -{ - PDEBUG - partition_info_t *p; - unsigned long b, maxblk; - char dsno[6], s1[VOLSER_LENGTH + 1], s2[45], *c1, *c2, *ch; - int i = 0, k = 0; - cchhb_t f9addr; - format1_label_t emptyf1; - - b = (cchhb2blk (&anc->vlabel->vtoc, &anc->geo) - 1) * anc->blksize; - if (b <= 0) - fdasd_error (anc, vlabel_corrupted, ""); - maxblk = b + anc->blksize * 9; /* f4+f5+f7+3*f8+3*f9 */ - - /* write FMT4 DSCB */ - vtoc_write_label (fd, b, NULL, anc->f4, NULL, NULL, NULL); - b += anc->blksize; - - /* write FMT5 DSCB */ - vtoc_write_label (fd, b, NULL, NULL, anc->f5, NULL, NULL); - b += anc->blksize; - - /* write FMT7 DSCB */ - if (anc->big_disk) { - vtoc_write_label (fd, b, NULL, NULL, NULL, anc->f7, NULL); - b += anc->blksize; - } - - /* loop over all partitions (format 1 or format 8 DCB) */ - for (p = anc->first; p != NULL; p = p->next) { - - if (p->used != 0x01) { - continue; - } - - i++; - strncpy (p->f1->DS1DSSN, anc->vlabel->volid, 6); - - ch = p->f1->DS1DSNAM; - vtoc_ebcdic_dec (ch, ch, 44); - c1 = ch + 7; - - if (getdsn (anc, i-1) > -1) { - /* re-use the existing data set name */ - c2 = strchr (c1, '.'); - if (c2 != NULL) - strncpy (s2, c2, 31); - else - fdasd_error (anc, dsname_corrupted, ""); - - strncpy (s1, anc->vlabel->volid, 6); - vtoc_ebcdic_dec (s1, s1, 6); - s1[6] = ' '; - strncpy (c1, s1, 7); - c1 = strchr (ch, ' '); - strncpy (c1, s2, 31); - } else { - /* create a new data set name */ - while (getpos (anc, k) > -1) - k++; - - setpos (anc, k, i-1); - - strncpy (ch, "LINUX.V " " ", 44); - - strncpy (s1, anc->vlabel->volid, 6); - vtoc_ebcdic_dec (s1, s1, 6); - strncpy (c1, s1, 6); - - c1 = strchr (ch, ' '); - strncpy (c1, ".PART", 5); - c1 += 5; - - sprintf (dsno, "%04d.", k + 1); - strncpy (c1, dsno, 5); - - c1 += 5; - switch(p->type) { - case PARTITION_LINUX_LVM: - strncpy(c1, PART_TYPE_LVM, 6); - break; - case PARTITION_LINUX_RAID: - strncpy(c1, PART_TYPE_RAID, 6); - break; - case PARTITION_LINUX: - strncpy(c1, PART_TYPE_NATIVE, 6); - break; - case PARTITION_LINUX_SWAP: - strncpy(c1, PART_TYPE_SWAP, 6); - break; - default: - strncpy(c1, PART_TYPE_NATIVE, 6); - break; - } - } - - vtoc_ebcdic_enc (ch, ch, 44); - - if (p->f1->DS1FMTID == 0xf8 ) { - /* Now as we know where which label will be written, we - * can add the address of the format 9 label to the - * format 8 label. The f9 record will be written to the - * block after the current blk. Remember: records are of - * by one, so we have to add 2 and not just one. - */ - vtoc_set_cchhb(&f9addr, VTOC_START_CC, VTOC_START_HH, - ((b / anc->blksize) % anc->geo.sectors) + 2); - vtoc_update_format8_label(&f9addr, p->f1); - vtoc_write_label(fd, b, p->f1, NULL, NULL, NULL, NULL); - b += anc->blksize; - vtoc_write_label(fd, b, NULL, NULL, NULL, NULL, - anc->f9); - b += anc->blksize; - } else { - vtoc_write_label(fd, b, p->f1, NULL, NULL, NULL, NULL); - b += anc->blksize; - } - } - - /* write empty labels to the rest of the blocks */ - bzero(&emptyf1, sizeof(emptyf1)); - while (b < maxblk) { - vtoc_write_label(fd, b, &emptyf1, NULL, NULL, NULL, NULL); - b += anc->blksize; - } -} - -/* - * writes all changes to dasd - */ -int -fdasd_write_labels (fdasd_anchor_t * anc, int fd) -{ - PDEBUG - if (anc->vlabel_changed) - vtoc_write_volume_label (fd, anc->label_pos, anc->vlabel); - - if (anc->vtoc_changed) - fdasd_write_vtoc_labels (anc, fd); - - return 1; -} - -/* - * writes all changes to dasd - */ -int -fdasd_prepare_labels (fdasd_anchor_t *anc, int fd) -{ - PDEBUG - partition_info_t *p; - char dsno[6], s1[7], s2[45], *c1, *c2, *ch; - int i = 0, k = 0; - - /* loop over all partitions (format 1 or format 8 DCB) */ - for (p = anc->first; p != NULL; p = p->next) { - - if (p->used != 0x01) { - continue; - } - - i++; - strncpy (p->f1->DS1DSSN, anc->vlabel->volid, 6); - - ch = p->f1->DS1DSNAM; - vtoc_ebcdic_dec (ch, ch, 44); - c1 = ch + 7; - - if (getdsn (anc, i-1) > -1) { - /* re-use the existing data set name */ - c2 = strchr (c1, '.'); - if (c2 != NULL) - strncpy (s2, c2, 31); - else - fdasd_error (anc, dsname_corrupted, ""); - - strncpy (s1, anc->vlabel->volid, 6); - vtoc_ebcdic_dec (s1, s1, 6); - s1[6] = ' '; - strncpy (c1, s1, 7); - c1 = strchr (ch, ' '); - strncpy (c1, s2, 31); - } else { - /* create a new data set name */ - while (getpos (anc, k) > -1) - k++; - - setpos (anc, k, i-1); - - strncpy (ch, "LINUX.V " " ", 44); - - strncpy (s1, anc->vlabel->volid, 6); - vtoc_ebcdic_dec (s1, s1, 6); - strncpy (c1, s1, 6); - - c1 = strchr (ch, ' '); - strncpy (c1, ".PART", 5); - c1 += 5; - - sprintf (dsno, "%04d.", k + 1); - strncpy (c1, dsno, 5); - - c1 += 5; - switch(p->type) { - case PARTITION_LINUX_LVM: - strncpy(c1, PART_TYPE_LVM, 6); - break; - case PARTITION_LINUX_RAID: - strncpy(c1, PART_TYPE_RAID, 6); - break; - case PARTITION_LINUX: - strncpy(c1, PART_TYPE_NATIVE, 6); - break; - case PARTITION_LINUX_SWAP: - strncpy(c1, PART_TYPE_SWAP, 6); - break; - default: - strncpy(c1, PART_TYPE_NATIVE, 6); - break; - } - } - - vtoc_ebcdic_enc (ch, ch, 44); - } - - return 1; -} - -void -fdasd_recreate_vtoc (fdasd_anchor_t *anc) -{ - PDEBUG - partition_info_t *p = anc->first; - int i; - - vtoc_init_format4_label(anc->f4, - anc->geo.cylinders, - anc->formatted_cylinders, - anc->geo.heads, - anc->geo.sectors, - anc->blksize, - anc->dev_type); - - vtoc_init_format5_label(anc->f5); - vtoc_init_format7_label(anc->f7); - vtoc_set_freespace(anc->f4, anc->f5, anc->f7, - '+', anc->verbose, - FIRST_USABLE_TRK, - anc->formatted_cylinders * anc->geo.heads - 1, - anc->formatted_cylinders, anc->geo.heads); - - for (i = 0; i < USABLE_PARTITIONS; i++) { - bzero(p->f1, sizeof(format1_label_t)); - p->used = 0x00; - p->start_trk = 0; - p->end_trk = 0; - p->len_trk = 0; - p->fspace_trk = 0; - p->type = 0; - p = p->next; - } - - anc->used_partitions = 0; - anc->fspace_trk = anc->formatted_cylinders * anc->geo.heads - - FIRST_USABLE_TRK; - - for (i=0; ivtoc_changed++; -} - - /* - * initialize the VOL1 volume label - */ -static void -fdasd_init_volume_label(fdasd_anchor_t *anc, int fd) -{ - volume_label_t *vlabel = anc->vlabel; - - vtoc_volume_label_init(vlabel); - vtoc_volume_label_set_key(vlabel, "VOL1"); - vtoc_volume_label_set_label(vlabel, "VOL1"); - - vtoc_set_cchhb(&vlabel->vtoc, VTOC_START_CC, VTOC_START_HH, 0x01); -} - - -/* - * sets some important partition data - * (like used, start_trk, end_trk, len_trk) - * by calculating these values with the - * information provided in the labels - */ -static void -fdasd_update_partition_info (fdasd_anchor_t *anc) -{ - PDEBUG - partition_info_t *q = NULL, *p = anc->first; - unsigned long max = anc->formatted_cylinders * anc->geo.heads - 1; - int i; - char *ch; - - anc->used_partitions = anc->geo.sectors - 2 - anc->f4->DS4DSREC; - - for (i = 1; i <= USABLE_PARTITIONS; i++) { - if (p->f1->DS1FMTID != 0xf1 && - p->f1->DS1FMTID != 0xf8) { - if (i == 1) - /* there is no partition at all */ - anc->fspace_trk = max - FIRST_USABLE_TRK + 1; - else - /* previous partition was the last one */ - q->fspace_trk = max - q->end_trk; - break; - } - - /* this is a valid format 1 label */ - p->used = 0x01; - p->start_trk = cchh2trk(&p->f1->DS1EXT1.llimit, &anc->geo); - p->end_trk = cchh2trk(&p->f1->DS1EXT1.ulimit, &anc->geo); - p->len_trk = p->end_trk - p->start_trk + 1; - - if (i == 1) { - /* first partition, there is at least one */ - anc->fspace_trk = p->start_trk - FIRST_USABLE_TRK; - } else { - if (i == USABLE_PARTITIONS) - /* last possible partition */ - p->fspace_trk = max - p->end_trk; - - /* set free space values of previous partition */ - q->fspace_trk = p->start_trk - q->end_trk - 1; - } - - ch = p->f1->DS1DSNAM; - vtoc_ebcdic_dec (ch, ch, 44); - if (strstr(ch, PART_TYPE_LVM)) - p->type = PARTITION_LINUX_LVM; - else if (strstr(ch, PART_TYPE_RAID)) - p->type = PARTITION_LINUX_RAID; - else if (strstr(ch, PART_TYPE_NATIVE)) - p->type = PARTITION_LINUX; - else if (strstr(ch, PART_TYPE_SWAP)) - p->type = PARTITION_LINUX_SWAP; - else - p->type = PARTITION_LINUX; - vtoc_ebcdic_enc (ch, ch, 44); - - q = p; - p = p->next; - } -} - -/* - * reorganizes all FMT1s, after that all used FMT1s should be right in - * front of all unused FMT1s - */ -static void -fdasd_reorganize_FMT1s (fdasd_anchor_t *anc) -{ - PDEBUG - int i, j; - format1_label_t *ltmp; - partition_info_t *ptmp; - - for (i=1; i<=USABLE_PARTITIONS - 1; i++) { - ptmp = anc->first; - - for (j=1; j<=USABLE_PARTITIONS - i; j++) { - if (ptmp->f1->DS1FMTID < ptmp->next->f1->DS1FMTID) { - ltmp = ptmp->f1; - ptmp->f1 = ptmp->next->f1; - ptmp->next->f1 = ltmp; - } - - ptmp=ptmp->next; - } - } -} - -static void -fdasd_process_valid_vtoc (fdasd_anchor_t * anc, unsigned long b, int fd) -{ - PDEBUG - int f5_counter = 0, f7_counter = 0, f1_counter = 0, oldfmt = 0; - int i, n, f1size = sizeof (format1_label_t); - partition_info_t *p = anc->first; - format1_label_t q; - char s[5], *ch; - - if (anc->f4->DS4DEVCT.DS4DSCYL == LV_COMPAT_CYL && - anc->f4->DS4DCYL > anc->f4->DS4DEVCT.DS4DSCYL) - anc->formatted_cylinders = anc->f4->DS4DCYL; - else - anc->formatted_cylinders = anc->f4->DS4DEVCT.DS4DSCYL; - anc->fspace_trk = anc->formatted_cylinders * anc->geo.heads - - FIRST_USABLE_TRK; - b += anc->blksize; - - for (i = 1; i < anc->geo.sectors; i++) { - bzero (&q, f1size); - vtoc_read_label (fd, b, &q, NULL, NULL, NULL); - - switch (q.DS1FMTID) { - case 0xf1: - case 0xf8: - if (p == NULL) - break; - memcpy (p->f1, &q, f1size); - - n = -1; - vtoc_ebcdic_dec (p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - ch = strstr (p->f1->DS1DSNAM, "PART"); - if (ch != NULL) { - strncpy (s, ch + 4, 4); - s[4] = '\0'; - n = atoi (s) - 1; - } - - vtoc_ebcdic_enc (p->f1->DS1DSNAM, p->f1->DS1DSNAM, 44); - - /* this dasd has data set names 0000-0002 - but we use now 0001-0003 */ - if (n == -1) - oldfmt++; - - if (((oldfmt == 0) && (n < 0)) || (n >= USABLE_PARTITIONS)) { - /* no op */ - } else { - if (oldfmt) { - /* correct +1 */ - setpos (anc, n + 1, f1_counter); - } else { - setpos (anc, n, f1_counter); - } - } - - p = p->next; - f1_counter++; - break; - case 0xf5: - memcpy (anc->f5, &q, f1size); - f5_counter++; - break; - case 0xf7: - if (f7_counter == 0) - memcpy (anc->f7, &q, f1size); - f7_counter++; - break; - case 0xf9: - /* each format 8 lable has an associated - * format 9 lable, but they are of no further - * use to us. - */ - break; - } - - b += anc->blksize; - } - - if (oldfmt > 0) { - /* this is the old format PART0000 - PART0002 */ - anc->vtoc_changed++; - } - - if ((f5_counter == 0) || (anc->big_disk)) - vtoc_init_format5_label (anc->f5); - - if (f7_counter == 0) - vtoc_init_format7_label (anc->f7); - - fdasd_reorganize_FMT1s (anc); - fdasd_update_partition_info (anc); -} - -static void -fdasd_invalid_vtoc_pointer(fdasd_anchor_t *anc) -{ - PDEBUG - anc->formatted_cylinders = anc->hw_cylinders; - anc->fspace_trk = anc->formatted_cylinders * anc->geo.heads - - FIRST_USABLE_TRK; - vtoc_init_format4_label(anc->f4, - anc->geo.cylinders, anc->formatted_cylinders, - anc->geo.heads, anc->geo.sectors, - anc->blksize, anc->dev_type); - - vtoc_init_format5_label(anc->f5); - vtoc_init_format7_label(anc->f7); - - vtoc_set_freespace(anc->f4, anc->f5, anc->f7, '+', anc->verbose, - FIRST_USABLE_TRK, - anc->formatted_cylinders * anc->geo.heads - 1, - anc->formatted_cylinders, anc->geo.heads); - - vtoc_set_cchhb(&anc->vlabel->vtoc, VTOC_START_CC, VTOC_START_HH, 0x01); - anc->vtoc_changed++; - anc->vlabel_changed++; -} - -/* - * we have a invalid FMT4 DSCB and therefore we will re-create the VTOC - */ -static void -fdasd_process_invalid_vtoc(fdasd_anchor_t *anc) -{ - anc->formatted_cylinders = anc->hw_cylinders; - anc->fspace_trk = anc->formatted_cylinders * anc->geo.heads - - FIRST_USABLE_TRK; - vtoc_init_format4_label(anc->f4, - anc->geo.cylinders, anc->formatted_cylinders, - anc->geo.heads, anc->geo.sectors, - anc->blksize, anc->dev_type); - - vtoc_init_format5_label(anc->f5); - vtoc_init_format7_label(anc->f7); - vtoc_set_freespace(anc->f4, anc->f5, anc->f7, '+', anc->verbose, - FIRST_USABLE_TRK, - anc->formatted_cylinders * anc->geo.heads - 1, - anc->formatted_cylinders, anc->geo.heads); - - anc->vtoc_changed++; -} - - -static int -fdasd_valid_vtoc_pointer(fdasd_anchor_t *anc, unsigned long b, int fd) -{ - PDEBUG - char str[LINE_LENGTH]; - - /* VOL1 label contains valid VTOC pointer */ - vtoc_read_label (fd, b, NULL, anc->f4, NULL, NULL); - - if (anc->f4->DS4IDFMT == 0xf4) { - fdasd_process_valid_vtoc (anc, b, fd); - return 0; - } else { - fdasd_process_invalid_vtoc(anc); - } - if (strncmp(anc->vlabel->volkey, vtoc_ebcdic_enc("LNX1",str,4),4) == 0 || - strncmp(anc->vlabel->volkey, vtoc_ebcdic_enc("CMS1",str,4),4) == 0) - return 0; - - fdasd_error(anc, wrong_disk_format, _("Invalid VTOC.")); - return 1; -} - -/* - * check the dasd for a volume label - */ -int -fdasd_check_volume (fdasd_anchor_t *anc, int fd) -{ - PDEBUG - volume_label_t *v = anc->vlabel; - long long b = -1; - char str[LINE_LENGTH]; - - memset(v, 0, sizeof(volume_label_t)); - vtoc_read_volume_label (fd, anc->label_pos, v); - - if (strncmp(v->vollbl, vtoc_ebcdic_enc ("VOL1", str, 4), 4) == 0) { - if (anc->FBA_layout != 1 ) { - /* found VOL1 volume label */ - b = (cchhb2blk (&v->vtoc, &anc->geo) - 1) * anc->blksize; - - if (b > 0) { - int rc; - rc = fdasd_valid_vtoc_pointer (anc, b, fd); - - if (rc < 0) - return 1; - else - return 0; - } else { - fdasd_invalid_vtoc_pointer(anc); - } - } - } else if (strncmp (v->volkey, vtoc_ebcdic_enc ("LNX1", str, 4), 4) == 0 || - strncmp (v->volkey, vtoc_ebcdic_enc ("CMS1", str, 4), 4) == 0) { - return 0; - } else if (anc->FBA_layout == 1) { - /* Some times LDL formatted disks does not - contain any volume label */ - return 1; - } else if (! anc->is_file) { - /* didn't find VOL1 volume label */ - anc->formatted_cylinders = anc->hw_cylinders; - anc->fspace_trk = anc->formatted_cylinders * anc->geo.heads - - FIRST_USABLE_TRK; - - fdasd_init_volume_label(anc, fd); - - vtoc_init_format4_label(anc->f4, - anc->geo.cylinders, anc->formatted_cylinders, - anc->geo.heads, anc->geo.sectors, - anc->blksize, anc->dev_type); - - vtoc_init_format5_label(anc->f5); - vtoc_init_format7_label(anc->f7); - - vtoc_set_freespace(anc->f4, anc->f5, anc->f7, '+', - anc->verbose, FIRST_USABLE_TRK, - anc->formatted_cylinders * anc->geo.heads - 1, - anc->formatted_cylinders, anc->geo.heads); - return 0; - } - return 1; -} - -/* - * checks the current API version with the API version of the dasd driver - */ -void -fdasd_check_api_version (fdasd_anchor_t *anc, int f) -{ - PDEBUG - int api; - char s[2*LINE_LENGTH]; - - struct stat st; - if (fstat (f, &st) == 0 && S_ISREG (st.st_mode)) { - /* skip these tests when F is a regular file. */ - } - else { - if (ioctl(f, DASDAPIVER, &api) != 0) - fdasd_error(anc, unable_to_ioctl, - _("Could not retrieve API version.")); - - if (api != DASD_MIN_API_VERSION) { - sprintf(s, _("The current API version '%d' doesn't " \ - "match dasd driver API version " \ - "'%d'!"), api, DASD_MIN_API_VERSION); - fdasd_error(anc, api_version_mismatch, s); - } - } -} - -/* - * The following two functions match those in the DASD ECKD device driver. - * They are used to compute how many records of a given size can be stored - * in one track. - */ -static unsigned int ceil_quot(unsigned int d1, unsigned int d2) -{ - return (d1 + (d2 - 1)) / d2; -} - -/* kl: key length, dl: data length */ -static unsigned int recs_per_track(unsigned short dev_type, unsigned int kl, - unsigned int dl) -{ - unsigned int dn, kn; - - switch (dev_type) { - case DASD_3380_TYPE: - if (kl) - return 1499 / (15 + 7 + ceil_quot(kl + 12, 32) + - ceil_quot(dl + 12, 32)); - else - return 1499 / (15 + ceil_quot(dl + 12, 32)); - case DASD_3390_TYPE: - dn = ceil_quot(dl + 6, 232) + 1; - if (kl) { - kn = ceil_quot(kl + 6, 232) + 1; - return 1729 / (10 + 9 + ceil_quot(kl + 6 * kn, 34) + - 9 + ceil_quot(dl + 6 * dn, 34)); - } else - return 1729 / (10 + 9 + ceil_quot(dl + 6 * dn, 34)); - case DASD_9345_TYPE: - dn = ceil_quot(dl + 6, 232) + 1; - if (kl) { - kn = ceil_quot(kl + 6, 232) + 1; - return 1420 / (18 + 7 + ceil_quot(kl + 6 * kn, 34) + - ceil_quot(dl + 6 * dn, 34)); - } else - return 1420 / (18 + 7 + ceil_quot(dl + 6 * dn, 34)); - } - return 0; -} - -/* - * Verify that number of tracks (heads) per cylinder and number of - * sectors per track match the expected values for a given device type - * and block size. - * Returns 1 for a valid match and 0 otherwise. - */ -static int fdasd_verify_geometry(unsigned short dev_type, int blksize, - struct fdasd_hd_geometry *geometry) -{ - unsigned int expected_sectors; - if (geometry->heads != 15) - return 0; - expected_sectors = recs_per_track(dev_type, 0, blksize); - if (geometry->sectors == expected_sectors) - return 1; - return 0; -} - -/* - * reads dasd geometry data - */ -int -fdasd_get_geometry (const PedDevice *dev, fdasd_anchor_t *anc, int f) -{ - PDEBUG - int blksize = 0; - dasd_information_t dasd_info; - struct dasd_eckd_characteristics *characteristics; - unsigned long long size_in_bytes; - - /* We can't get geometry from a regular file, - so simulate something usable, for the sake of testing. */ - struct stat st; - if (fstat (f, &st) == 0 && S_ISREG (st.st_mode)) { - PedSector n_sectors = st.st_size / dev->sector_size; - anc->geo.heads = 15; - anc->geo.sectors = 12; - anc->geo.cylinders - = (n_sectors / (anc->geo.heads * anc->geo.sectors - * (dev->sector_size / dev->phys_sector_size))); - anc->geo.start = 0; - blksize = 4096; - memcpy (dasd_info.type, "ECKD", 4); - dasd_info.dev_type = 13200; - dasd_info.label_block = 2; - dasd_info.devno = 513; - dasd_info.label_block = 2; - dasd_info.FBA_layout = 0; - anc->hw_cylinders = ((st.st_size / blksize) / anc->geo.sectors) / - anc->geo.heads; - anc->is_file = 1; - } else { - if (ioctl(f, BLKGETSIZE64, &size_in_bytes) != 0) { - fdasd_error(anc, unable_to_ioctl, - _("Could not retrieve disk size.")); - goto error; - } - - if (ioctl(f, HDIO_GETGEO, &anc->geo) != 0 || - anc->geo.heads == 0 || - anc->geo.sectors == 0 || - anc->geo.cylinders == 0 ) { - fdasd_error(anc, unable_to_ioctl, - _("Could not retrieve disk geometry information.")); - goto error; - } - - if (ioctl(f, BLKSSZGET, &blksize) != 0) { - fdasd_error(anc, unable_to_ioctl, - _("Could not retrieve blocksize information.")); - goto error; - } - - /* get disk type */ - if (ioctl(f, BIODASDINFO, &dasd_info) != 0) { - /* verify that the geometry matches a 3390 DASD */ - if (!fdasd_verify_geometry(DASD_3390_TYPE, blksize, - &anc->geo)) { - fdasd_error(anc, wrong_disk_type, - _("Disk geometry does not match a " \ - "DASD device of type 3390.")); - goto error; - } - anc->dev_type = DASD_3390_TYPE; - anc->hw_cylinders = - size_in_bytes / (blksize * anc->geo.heads * anc->geo.sectors); - /* The VOL1 label on a CDL formatted ECKD DASD is in block 2 - * It will be verified later, if this position actually holds a - * valid label record. - */ - anc->label_pos = 2 * blksize; - /* A devno 0 is actually a valid devno, which could exist - * in the system. Since we use this number only to create - * a default volume serial, there is no serious conflict. - */ - anc->devno = 0; - } else { - characteristics = (struct dasd_eckd_characteristics *) - &dasd_info.characteristics; - if (characteristics->no_cyl == LV_COMPAT_CYL && - characteristics->long_no_cyl) - anc->hw_cylinders = characteristics->long_no_cyl; - else - anc->hw_cylinders = characteristics->no_cyl; - anc->dev_type = dasd_info.dev_type; - anc->label_pos = dasd_info.label_block * blksize; - anc->devno = dasd_info.devno; - anc->label_block = dasd_info.label_block; - anc->FBA_layout = dasd_info.FBA_layout; - } - - anc->is_file = 0; - } - - anc->blksize = blksize; - return 1; - - error: - return 0; -} - -/* - * returns unused partition info pointer if there - * is a free partition, otherwise NULL - */ -static partition_info_t * -fdasd_get_empty_f1_label (fdasd_anchor_t * anc) -{ - PDEBUG - if (anc->used_partitions < USABLE_PARTITIONS) - return anc->last; - else - return NULL; -} - -/* - * asks for and sets some important partition data - */ -static int -fdasd_get_partition_data (fdasd_anchor_t *anc, extent_t *part_extent, - partition_info_t *p, unsigned int *start_ptr, - unsigned int *stop_ptr) -{ - PDEBUG - unsigned int limit; - u_int32_t cc, c; - u_int16_t hh, h; - cchh_t llimit, ulimit; - partition_info_t *q; - u_int8_t b1, b2; - unsigned int start = *start_ptr, stop = *stop_ptr; - int i; - char *ch; - - c = get_usable_cylinders(anc); - h = anc->f4->DS4DEVCT.DS4DSTRK; - limit = (h * c - 1); - - /* check start value from user */ - q = anc->first; - for (i = 0; i < USABLE_PARTITIONS; i++) { - if ( q->next == NULL ) - break; - - if (start >= q->start_trk && start <= q->end_trk) { - /* start is within another partition */ - start = q->end_trk + 1; - - if (start > limit) { - start = FIRST_USABLE_TRK; - q = anc->first; - } - } - - if (start < q->start_trk) { - limit = q->start_trk - 1; - break; - } - - q = q->next; - } - - if (start == limit) - stop = start; - - /* update partition info */ - p->len_trk = stop - start + 1; - p->start_trk = start; - p->end_trk = stop; - - cc = start / anc->geo.heads; - hh = start - (cc * anc->geo.heads); - vtoc_set_cchh(&llimit, cc, hh); - - /* check for cylinder boundary */ - if (hh == 0) - b1 = 0x81; - else - b1 = 0x01; - - cc = stop / anc->geo.heads; - hh = stop - cc * anc->geo.heads; - vtoc_set_cchh(&ulimit, cc, hh); - - /* it is always the 1st extent */ - b2 = 0x00; - - vtoc_set_extent(part_extent, b1, b2, &llimit, &ulimit); - - *start_ptr = start; - *stop_ptr = stop; - - ch = p->f1->DS1DSNAM; - vtoc_ebcdic_dec (ch, ch, 44); - - if (strstr(ch, PART_TYPE_LVM)) - p->type = PARTITION_LINUX_LVM; - else if (strstr(ch, PART_TYPE_RAID)) - p->type = PARTITION_LINUX_RAID; - else if (strstr(ch, PART_TYPE_NATIVE)) - p->type = PARTITION_LINUX; - else if (strstr(ch, PART_TYPE_SWAP)) - p->type = PARTITION_LINUX_SWAP; - else - p->type = PARTITION_LINUX; - - vtoc_ebcdic_enc (ch, ch, 44); - - return 0; -} - -static void -fdasd_enqueue_new_partition (fdasd_anchor_t *anc) -{ - PDEBUG - partition_info_t *q = anc->first, *p = anc->last; - int i, k=0; - - for (i=1; iend_trk == 0) || (p->start_trk < q->start_trk)) { - break; - } else { - q = q->next; - k++; - } - } - - if (anc->first == q) - anc->first = p; - - if (p != q) { - anc->last->prev->next = NULL; - anc->last = anc->last->prev; - - p->next = q; - p->prev = q->prev; - q->prev = p; - - if (p->prev != NULL) - p->prev->next = p; - } - - p->used = 0x01; - p->type = PARTITION_LINUX; - - for (i=0; i= k) - setpos(anc, i, j + 1); - } - - /* update free-space counters */ - if (anc->first == p) { - /* partition is the first used partition */ - if (p->start_trk == FIRST_USABLE_TRK) { - /* partition starts right behind VTOC */ - p->fspace_trk = anc->fspace_trk - p->len_trk; - anc->fspace_trk = 0; - } else { - /* there is some space between VTOC and partition */ - p->fspace_trk = anc->fspace_trk - p->len_trk - p->start_trk - + FIRST_USABLE_TRK; - anc->fspace_trk = p->start_trk - FIRST_USABLE_TRK; - } - } else { - /* there are partitions in front of the new one */ - if (p->start_trk == p->prev->end_trk + 1) { - /* new partition is right behind the previous one */ - p->fspace_trk = p->prev->fspace_trk - p->len_trk; - p->prev->fspace_trk = 0; - } else { - /* there is some space between new and prev. part. */ - p->fspace_trk = p->prev->fspace_trk - p->len_trk - - p->start_trk + p->prev->end_trk + 1; - p->prev->fspace_trk = p->start_trk - p->prev->end_trk - 1; - } - } -} - -/* - * adds a new partition to the 'partition table' - */ -partition_info_t * -fdasd_add_partition (fdasd_anchor_t *anc, unsigned int start, - unsigned int stop) -{ - PDEBUG - cchhb_t hf1; - partition_info_t *p; - extent_t ext; - - PDEBUG; - - if ((p = fdasd_get_empty_f1_label(anc)) == NULL) { - PDEBUG; - return 0; - } - - PDEBUG; - if (fdasd_get_partition_data(anc, &ext, p, &start, &stop) != 0) - return 0; - - if (anc->formatted_cylinders > LV_COMPAT_CYL) { - vtoc_init_format8_label(anc->blksize, &ext, p->f1); - } else { - PDEBUG; - vtoc_init_format1_label(anc->blksize, &ext, p->f1); - } - - PDEBUG; - fdasd_enqueue_new_partition(anc); - - PDEBUG; - anc->used_partitions += 1; - - get_addr_of_highest_f1_f8_label(anc, &hf1); - vtoc_update_format4_label(anc->f4, &hf1, anc->f4->DS4DSREC - 1); - - PDEBUG; - - start = cchh2trk(&ext.llimit, &anc->geo); - stop = cchh2trk(&ext.ulimit, &anc->geo); - - PDEBUG; - vtoc_set_freespace(anc->f4, anc->f5, anc->f7, '-', anc->verbose, - start, stop, anc->formatted_cylinders, anc->geo.heads); - - anc->vtoc_changed++; - - PDEBUG; - return p; -} - -/* - * Check for valid volume serial characters (max. 6) - remove invalid. - * If volser is empty, fill with default volser. - */ -void fdasd_check_volser (char *volser, int devno) -{ - int from, to; - - for (from = 0, to = 0; volser[from] && from < VOLSER_LENGTH; from++) { - - if ((volser[from] >= 0x23 && - volser[from] <= 0x25) || - (volser[from] >= 0x30 && - volser[from] <= 0x39) || - (volser[from] >= 0x40 && - volser[from] <= 0x5a) || - (volser[from] >= 0x61 && - volser[from] <= 0x7a)) - volser[to++] = toupper(volser[from]); - } - - volser[to] = 0x00; - - if (volser[0] == 0x00) - sprintf(volser, "0X%04x", devno); -} - -/* - * get volser from vtoc - */ -int fdasd_get_volser (fdasd_anchor_t *anc, char *volser, int fd) -{ - volume_label_t vlabel; - - vtoc_read_volume_label(fd, anc->label_pos, &vlabel); - vtoc_volume_label_get_volser(&vlabel, volser); - return 0; -} - -/* Changes the volume serial (menu option) - * - */ -void fdasd_change_volser (fdasd_anchor_t *anc, char *str) -{ - fdasd_check_volser(str, anc->devno); - vtoc_volume_label_set_volser(anc->vlabel, str); - - vtoc_set_cchhb(&anc->vlabel->vtoc, VTOC_START_CC, VTOC_START_HH, 0x01); - anc->vlabel_changed++; - anc->vtoc_changed++; -} - -/* - * re-create all VTOC labels, but use the partition information - * from existing VTOC - */ -void fdasd_reuse_vtoc (fdasd_anchor_t *anc) -{ - partition_info_t *part_info = anc->first; - struct fdasd_hd_geometry geo = anc->geo; - format1_label_t f1; - format4_label_t f4; - format5_label_t f5; - format7_label_t f7; - - vtoc_init_format4_label(&f4, geo.cylinders, anc->formatted_cylinders, - geo.heads, geo.sectors, - anc->blksize, anc->dev_type); - - /* reuse some FMT4 values */ - f4.DS4HPCHR = anc->f4->DS4HPCHR; - f4.DS4DSREC = anc->f4->DS4DSREC; - - /* re-initialize both free-space labels */ - vtoc_init_format5_label(&f5); - vtoc_init_format7_label(&f7); - - if (anc->fspace_trk > 0) - vtoc_set_freespace(&f4, &f5, &f7, '+', anc->verbose, - FIRST_USABLE_TRK, - FIRST_USABLE_TRK + anc->fspace_trk - 1, - anc->formatted_cylinders, geo.heads); - - while (part_info != NULL) { - if (part_info->used != 0x01) { - part_info = part_info->next; - continue; - } - - if (anc->formatted_cylinders > LV_COMPAT_CYL) - vtoc_init_format8_label(anc->blksize, - &part_info->f1->DS1EXT1, &f1); - else - vtoc_init_format1_label(anc->blksize, - &part_info->f1->DS1EXT1, &f1); - - - strncpy(f1.DS1DSNAM, part_info->f1->DS1DSNAM, 44); - strncpy((char *)f1.DS1DSSN, (char *)part_info->f1->DS1DSSN, 6); - f1.DS1CREDT = part_info->f1->DS1CREDT; - - memcpy(part_info->f1, &f1, sizeof(format1_label_t)); - - if (part_info->fspace_trk > 0) - vtoc_set_freespace(&f4, &f5, &f7, '+', anc->verbose, - part_info->end_trk + 1, - part_info->end_trk + - part_info->fspace_trk, - anc->formatted_cylinders, geo.heads); - - part_info = part_info->next; - } - - /* over-write old labels with new ones */ - memcpy(anc->f4, &f4, sizeof(format4_label_t)); - memcpy(anc->f5, &f5, sizeof(format5_label_t)); - memcpy(anc->f7, &f7, sizeof(format7_label_t)); - - anc->vtoc_changed++; - - return; -} - -/* vim:set tabstop=4 shiftwidth=4 softtabstop=4: */ diff --git a/jni/parted/libparted/labels/gpt.c b/jni/parted/libparted/labels/gpt.c deleted file mode 100755 index 780fb70..0000000 --- a/jni/parted/libparted/labels/gpt.c +++ /dev/null @@ -1,1941 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - - original version by Matt Domsch - Disclaimed into the Public Domain - - Portions Copyright (C) 2001-2003, 2005-2012 Free Software Foundation, Inc. - - EFI GUID Partition Table handling - Per Intel EFI Specification v1.02 - http://developer.intel.com/technology/efi/efi.htm - - 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 3 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, see . -*/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "xalloc.h" -#include "xalloc-oversized.h" -#include "verify.h" - -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) gettext (String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#define EFI_PMBR_OSTYPE_EFI 0xEE -#define MSDOS_MBR_SIGNATURE 0xaa55 - -#define GPT_HEADER_SIGNATURE 0x5452415020494645LL - -/* NOTE: the document that describes revision 1.00 is labelled "version 1.02", - * so some implementors got confused... - */ -#define GPT_HEADER_REVISION_V1_02 0x00010200 -#define GPT_HEADER_REVISION_V1_00 0x00010000 -#define GPT_HEADER_REVISION_V0_99 0x00009900 - -typedef uint16_t efi_char16_t; /* UNICODE character */ -typedef struct _GuidPartitionTableHeader_t GuidPartitionTableHeader_t; -typedef struct _GuidPartitionEntryAttributes_t GuidPartitionEntryAttributes_t; -typedef struct _GuidPartitionEntry_t GuidPartitionEntry_t; -typedef struct _PartitionRecord_t PartitionRecord_t; -typedef struct _LegacyMBR_t LegacyMBR_t; -typedef struct _GPTDiskData GPTDiskData; - - -typedef struct -{ - uint32_t time_low; - uint16_t time_mid; - uint16_t time_hi_and_version; - uint8_t clock_seq_hi_and_reserved; - uint8_t clock_seq_low; - uint8_t node[6]; -} /* __attribute__ ((packed)) */ efi_guid_t; -/* commented out "__attribute__ ((packed))" to work around gcc bug (fixed - * in gcc3.1): __attribute__ ((packed)) breaks addressing on initialized - * data. It turns out we don't need it in this case, so it doesn't break - * anything :) - */ - -#define UNUSED_ENTRY_GUID \ - ((efi_guid_t) { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, \ - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}) -#define PARTITION_SYSTEM_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xC12A7328), PED_CPU_TO_LE16 (0xF81F), \ - PED_CPU_TO_LE16 (0x11d2), 0xBA, 0x4B, \ - { 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B }}) -#define PARTITION_BIOS_GRUB_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x21686148), PED_CPU_TO_LE16 (0x6449), \ - PED_CPU_TO_LE16 (0x6E6f), 0x74, 0x4E, \ - { 0x65, 0x65, 0x64, 0x45, 0x46, 0x49 }}) -#define LEGACY_MBR_PARTITION_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x024DEE41), PED_CPU_TO_LE16 (0x33E7), \ - PED_CPU_TO_LE16 (0x11d3, 0x9D, 0x69, \ - { 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F }}) -#define PARTITION_MSFT_RESERVED_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xE3C9E316), PED_CPU_TO_LE16 (0x0B5C), \ - PED_CPU_TO_LE16 (0x4DB8), 0x81, 0x7D, \ - { 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE }}) -#define PARTITION_MSFT_RECOVERY \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xDE94BBA4), PED_CPU_TO_LE16 (0x06D1), \ - PED_CPU_TO_LE16 (0x4D40), 0xA1, 0x6A, \ - { 0xBF, 0xD5, 0x01, 0x79, 0xD6, 0xAC }}) -#define PARTITION_BASIC_DATA_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xEBD0A0A2), PED_CPU_TO_LE16 (0xB9E5), \ - PED_CPU_TO_LE16 (0x4433), 0x87, 0xC0, \ - { 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7 }}) -#define PARTITION_RAID_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xa19d880f), PED_CPU_TO_LE16 (0x05fc), \ - PED_CPU_TO_LE16 (0x4d3b), 0xa0, 0x06, \ - { 0x74, 0x3f, 0x0f, 0x84, 0x91, 0x1e }}) -#define PARTITION_SWAP_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x0657fd6d), PED_CPU_TO_LE16 (0xa4ab), \ - PED_CPU_TO_LE16 (0x43c4), 0x84, 0xe5, \ - { 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f }}) -#define PARTITION_LINUX_DATA_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x0FC63DAF), PED_CPU_TO_LE16 (0x8483), \ - PED_CPU_TO_LE16 (0x4772), 0x8E, 0x79, \ - { 0x3D, 0x69, 0xD8, 0x47, 0x7D, 0xE4 }}) -#define PARTITION_LVM_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xe6d6d379), PED_CPU_TO_LE16 (0xf507), \ - PED_CPU_TO_LE16 (0x44c2), 0xa2, 0x3c, \ - { 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28 }}) -#define PARTITION_RESERVED_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x8da63339), PED_CPU_TO_LE16 (0x0007), \ - PED_CPU_TO_LE16 (0x60c0), 0xc4, 0x36, \ - { 0x08, 0x3a, 0xc8, 0x23, 0x09, 0x08 }}) -#define PARTITION_HPSERVICE_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xe2a1e728), PED_CPU_TO_LE16 (0x32e3), \ - PED_CPU_TO_LE16 (0x11d6), 0xa6, 0x82, \ - { 0x7b, 0x03, 0xa0, 0x00, 0x00, 0x00 }}) -#define PARTITION_APPLE_HFS_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x48465300), PED_CPU_TO_LE16 (0x0000), \ - PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \ - { 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }}) -#define PARTITION_APPLE_TV_RECOVERY_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x5265636F), PED_CPU_TO_LE16 (0x7665), \ - PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \ - { 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }}) -#define PARTITION_PREP_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x9e1a2d38), PED_CPU_TO_LE16 (0xc612), \ - PED_CPU_TO_LE16 (0x4316), 0xaa, 0x26, \ - { 0x8b, 0x49, 0x52, 0x1e, 0x5a, 0x8b }}) -#define PARTITION_IRST_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xD3BFE2DE), PED_CPU_TO_LE16 (0x3DAF), \ - PED_CPU_TO_LE16 (0x11DF), 0xba, 0x40, \ - { 0xE3, 0xA5, 0x56, 0xD8, 0x95, 0x93 }}) -#define PARTITION_CHROMEOS_KERNEL_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xfe3a2a5d), PED_CPU_TO_LE16 (0x4f32), \ - PED_CPU_TO_LE16 (0x41a7), 0xb7, 0x25, \ - { 0xac, 0xcc, 0x32, 0x85, 0xa3, 0x09 }}) -#define PARTITION_BLS_BOOT_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0xbc13c2ff), PED_CPU_TO_LE16 (0x59e6), \ - PED_CPU_TO_LE16 (0x4262), 0xa3, 0x52, \ - { 0xb2, 0x75, 0xfd, 0x6f, 0x71, 0x72 }}) -#define PARTITION_LINUX_HOME_GUID \ - ((efi_guid_t) { PED_CPU_TO_LE32 (0x933ac7e1), PED_CPU_TO_LE16 (0x2eb4), \ - PED_CPU_TO_LE16 (0x4f13), 0xb8, 0x44, \ - { 0x0e, 0x14, 0xe2, 0xae, 0xf9, 0x15 }}) - -struct flag_uuid_mapping_t -{ - enum _PedPartitionFlag flag; - efi_guid_t type_uuid; -}; - -static const struct flag_uuid_mapping_t flag_uuid_mapping[] = -{ - { PED_PARTITION_APPLE_TV_RECOVERY, PARTITION_APPLE_TV_RECOVERY_GUID }, - { PED_PARTITION_BIOS_GRUB, PARTITION_BIOS_GRUB_GUID }, - { PED_PARTITION_BLS_BOOT, PARTITION_BLS_BOOT_GUID }, - { PED_PARTITION_BOOT, PARTITION_SYSTEM_GUID }, - { PED_PARTITION_CHROMEOS_KERNEL, PARTITION_CHROMEOS_KERNEL_GUID }, - { PED_PARTITION_DIAG, PARTITION_MSFT_RECOVERY }, - { PED_PARTITION_ESP, PARTITION_SYSTEM_GUID }, - { PED_PARTITION_HPSERVICE, PARTITION_HPSERVICE_GUID }, - { PED_PARTITION_IRST, PARTITION_IRST_GUID }, - { PED_PARTITION_LINUX_HOME, PARTITION_LINUX_HOME_GUID }, - { PED_PARTITION_LVM, PARTITION_LVM_GUID }, - { PED_PARTITION_MSFT_DATA, PARTITION_BASIC_DATA_GUID }, - { PED_PARTITION_MSFT_RESERVED, PARTITION_MSFT_RESERVED_GUID }, - { PED_PARTITION_PREP, PARTITION_PREP_GUID }, - { PED_PARTITION_RAID, PARTITION_RAID_GUID }, - { PED_PARTITION_SWAP, PARTITION_SWAP_GUID }, -}; - -static const efi_guid_t skip_set_system_guids[] = -{ - PARTITION_LVM_GUID, - PARTITION_SWAP_GUID, - PARTITION_RAID_GUID, - PARTITION_PREP_GUID, - PARTITION_SYSTEM_GUID, - PARTITION_BIOS_GRUB_GUID, - PARTITION_HPSERVICE_GUID, - PARTITION_MSFT_RESERVED_GUID, - PARTITION_BASIC_DATA_GUID, - PARTITION_MSFT_RECOVERY, - PARTITION_APPLE_TV_RECOVERY_GUID, - PARTITION_IRST_GUID, - PARTITION_CHROMEOS_KERNEL_GUID, - PARTITION_BLS_BOOT_GUID, -}; - -static const struct flag_uuid_mapping_t* _GL_ATTRIBUTE_CONST -gpt_find_flag_uuid_mapping (PedPartitionFlag flag) -{ - int n = sizeof(flag_uuid_mapping) / sizeof(flag_uuid_mapping[0]); - - for (int i = 0; i < n; ++i) - if (flag_uuid_mapping[i].flag == flag) - return &flag_uuid_mapping[i]; - - return NULL; -} - -struct __attribute__ ((packed)) _GuidPartitionTableHeader_t -{ - uint64_t Signature; - uint32_t Revision; - uint32_t HeaderSize; - uint32_t HeaderCRC32; - uint32_t Reserved1; - uint64_t MyLBA; - uint64_t AlternateLBA; - uint64_t FirstUsableLBA; - uint64_t LastUsableLBA; - efi_guid_t DiskGUID; - uint64_t PartitionEntryLBA; - uint32_t NumberOfPartitionEntries; - uint32_t SizeOfPartitionEntry; - uint32_t PartitionEntryArrayCRC32; - uint8_t *Reserved2; -}; - -struct __attribute__ ((packed)) _GuidPartitionEntryAttributes_t -{ -#ifdef __GNUC__ /* XXX narrow this down to !TinyCC */ - uint64_t RequiredToFunction:1; - uint64_t NoBlockIOProtocol:1; - uint64_t LegacyBIOSBootable:1; - uint64_t Reserved:45; - uint64_t GuidSpecific:15; - uint64_t NoAutomount:1; -#else -# warning "Using crippled partition entry type" - uint32_t RequiredToFunction:1; - uint32_t NoBlockIOProtocol:1; - uint32_t LegacyBIOSBootable:1; - uint32_t Reserved:30; - uint32_t LOST:5; - uint32_t GuidSpecific:15; - uint32_t NoAutomount:1; -#endif -}; - -struct __attribute__ ((packed)) _GuidPartitionEntry_t -{ - efi_guid_t PartitionTypeGuid; - efi_guid_t UniquePartitionGuid; - uint64_t StartingLBA; - uint64_t EndingLBA; - GuidPartitionEntryAttributes_t Attributes; - efi_char16_t PartitionName[36]; -}; - -#define GPT_PMBR_LBA 0 -#define GPT_PMBR_SECTORS 1 -#define GPT_PRIMARY_HEADER_LBA 1 -#define GPT_HEADER_SECTORS 1 -#define GPT_PRIMARY_PART_TABLE_LBA 2 - -/* - These values are only defaults. The actual on-disk structures - may define different sizes, so use those unless creating a new GPT disk! -*/ - -#define GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE 16384 - -/* Number of actual partition entries should be calculated as: */ -#define GPT_DEFAULT_PARTITION_ENTRIES \ - (GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / \ - sizeof(GuidPartitionEntry_t)) - -struct __attribute__ ((packed)) _PartitionRecord_t -{ - /* Not used by EFI firmware. Set to 0x80 to indicate that this - is the bootable legacy partition. */ - uint8_t BootIndicator; - - /* Start of partition in CHS address, not used by EFI firmware. */ - uint8_t StartHead; - - /* Start of partition in CHS address, not used by EFI firmware. */ - uint8_t StartSector; - - /* Start of partition in CHS address, not used by EFI firmware. */ - uint8_t StartTrack; - - /* OS type. A value of 0xEF defines an EFI system partition. - Other values are reserved for legacy operating systems, and - allocated independently of the EFI specification. */ - uint8_t OSType; - - /* End of partition in CHS address, not used by EFI firmware. */ - uint8_t EndHead; - - /* End of partition in CHS address, not used by EFI firmware. */ - uint8_t EndSector; - - /* End of partition in CHS address, not used by EFI firmware. */ - uint8_t EndTrack; - - /* Starting LBA address of the partition on the disk. Used by - EFI firmware to define the start of the partition. */ - uint32_t StartingLBA; - - /* Size of partition in LBA. Used by EFI firmware to determine - the size of the partition. */ - uint32_t SizeInLBA; -}; - -/* Protected Master Boot Record & Legacy MBR share same structure */ -/* Needs to be packed because the u16s force misalignment. */ -struct __attribute__ ((packed)) _LegacyMBR_t -{ - uint8_t BootCode[440]; - uint32_t UniqueMBRSignature; - uint16_t Unknown; - PartitionRecord_t PartitionRecord[4]; - uint16_t Signature; -}; - -/* uses libparted's disk_specific field in PedDisk, to store our info */ -struct __attribute__ ((packed, aligned(8))) _GPTDiskData -{ - PedGeometry data_area; - int entry_count; - efi_guid_t uuid; - int pmbr_boot; - PedSector AlternateLBA; -}; - -/* uses libparted's disk_specific field in PedPartition, to store our info */ -typedef struct _GPTPartitionData -{ - efi_guid_t type; - efi_guid_t uuid; - efi_char16_t name[37]; - char *translated_name; - GuidPartitionEntryAttributes_t attributes; -} GPTPartitionData; - -static PedDiskType gpt_disk_type; - -static inline uint32_t -pth_get_size (const PedDevice *dev) -{ - return GPT_HEADER_SECTORS * dev->sector_size; -} - -static inline uint32_t -pth_get_size_static (const PedDevice *dev) -{ - return sizeof (GuidPartitionTableHeader_t) - sizeof (uint8_t *); -} - -static inline uint32_t -pth_get_size_rsv2 (const PedDevice *dev) -{ - return pth_get_size (dev) - pth_get_size_static (dev); -} - -static GuidPartitionTableHeader_t * -pth_new (const PedDevice *dev) -{ - GuidPartitionTableHeader_t *pth = - ped_malloc (sizeof (GuidPartitionTableHeader_t) + sizeof (uint8_t)); - - pth->Reserved2 = ped_malloc (pth_get_size_rsv2 (dev)); - - return pth; -} - -static GuidPartitionTableHeader_t * -pth_new_zeroed (const PedDevice *dev) -{ - GuidPartitionTableHeader_t *pth = pth_new (dev); - - memset (pth, 0, pth_get_size_static (dev)); - memset (pth->Reserved2, 0, pth_get_size_rsv2 (dev)); - - return (pth); -} - -static GuidPartitionTableHeader_t * -pth_new_from_raw (const PedDevice *dev, const uint8_t *pth_raw) -{ - GuidPartitionTableHeader_t *pth = pth_new (dev); - - PED_ASSERT (pth_raw != NULL); - - memcpy (pth, pth_raw, pth_get_size_static (dev)); - memcpy (pth->Reserved2, pth_raw + pth_get_size_static (dev), - pth_get_size_rsv2 (dev)); - - return pth; -} - -static void -pth_free (GuidPartitionTableHeader_t *pth) -{ - if (pth == NULL) - return; - PED_ASSERT (pth->Reserved2 != NULL); - - free (pth->Reserved2); - free (pth); -} - -static uint8_t * -pth_get_raw (const PedDevice *dev, const GuidPartitionTableHeader_t *pth) -{ - PED_ASSERT (pth != NULL); - PED_ASSERT (pth->Reserved2 != NULL); - - int size_static = pth_get_size_static (dev); - uint8_t *pth_raw = ped_malloc (pth_get_size (dev)); - if (pth_raw == NULL) - return NULL; - - memcpy (pth_raw, pth, size_static); - memcpy (pth_raw + size_static, pth->Reserved2, pth_get_size_rsv2 (dev)); - - return pth_raw; -} - -/** - * swap_uuid_and_efi_guid() - converts between uuid formats - * @uuid - uuid_t in either format (converts it to the other) - * - * There are two different representations for Globally Unique Identifiers - * (GUIDs or UUIDs). - * - * The RFC specifies a UUID as a string of 16 bytes, essentially - * a big-endian array of char. - * Intel, in their EFI Specification, references the same RFC, but - * then defines a GUID as a structure of little-endian fields. - * Coincidentally, both structures have the same format when unparsed. - * - * When read from disk, EFI GUIDs are in struct of little endian format, - * and need to be converted to be treated as uuid_t in memory. - * - * When writing to disk, uuid_ts need to be converted into EFI GUIDs. - * - * Blame Intel. - */ -static void -swap_uuid_and_efi_guid (efi_guid_t *guid) -{ - PED_ASSERT (guid != NULL); - guid->time_low = PED_SWAP32 (guid->time_low); - guid->time_mid = PED_SWAP16 (guid->time_mid); - guid->time_hi_and_version = PED_SWAP16 (guid->time_hi_and_version); -} - -/* returns the EFI-style CRC32 value for buf - * This function uses the crc32 function by Gary S. Brown, - * but seeds the function with ~0, and xor's with ~0 at the end. - */ -static inline uint32_t -efi_crc32 (const void *buf, unsigned long len) -{ - return (__efi_crc32 (buf, len, ~0L) ^ ~0L); -} - -/* Compute the crc32 checksum of the partition table header - and store it in *CRC32. Return 0 upon success. Return 1 - upon failure to allocate space. */ -static int -pth_crc32 (const PedDevice *dev, const GuidPartitionTableHeader_t *pth, - uint32_t *crc32) -{ - PED_ASSERT (dev != NULL); - PED_ASSERT (pth != NULL); - - uint8_t *pth_raw = pth_get_raw (dev, pth); - if (pth_raw == NULL) - return 1; - - *crc32 = efi_crc32 (pth_raw, PED_LE32_TO_CPU (pth->HeaderSize)); - free (pth_raw); - - return 0; -} - -static inline int -guid_cmp (efi_guid_t left, efi_guid_t right) -{ - return memcmp (&left, &right, sizeof (efi_guid_t)); -} - -/* checks if 'mbr' is a protective MBR partition table */ -static inline int _GL_ATTRIBUTE_PURE -_pmbr_is_valid (const LegacyMBR_t *mbr) -{ - int i; - - PED_ASSERT (mbr != NULL); - - if (mbr->Signature != PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE)) - return 0; - for (i = 0; i < 4; i++) - { - if (mbr->PartitionRecord[i].OSType == EFI_PMBR_OSTYPE_EFI) - return 1; - } - return 0; -} - -static int -gpt_probe (const PedDevice *dev) -{ - int gpt_sig_found = 0; - - PED_ASSERT (dev != NULL); - - if (dev->length <= 1) - return 0; - - void *label; - if (!ptt_read_sector (dev, 0, &label)) - return 0; - - if (!_pmbr_is_valid (label)) - { - free (label); - return 0; - } - free (label); - - void *pth_raw = ped_malloc (pth_get_size (dev)); - if (ped_device_read (dev, pth_raw, 1, GPT_HEADER_SECTORS) - || ped_device_read (dev, pth_raw, dev->length - 1, GPT_HEADER_SECTORS)) - { - GuidPartitionTableHeader_t *gpt = pth_new_from_raw (dev, pth_raw); - if (gpt->Signature == PED_CPU_TO_LE64 (GPT_HEADER_SIGNATURE)) - gpt_sig_found = 1; - pth_free (gpt); - } - free (pth_raw); - - return gpt_sig_found; -} - -static PedDisk * -gpt_alloc (const PedDevice *dev) -{ - PedDisk *disk; - GPTDiskData *gpt_disk_data; - PedSector data_start, data_end; - - disk = _ped_disk_alloc ((PedDevice *) dev, &gpt_disk_type); - if (!disk) - goto error; - - data_start = 2 + GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size; - data_end = dev->length - 2 - - GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size; - - /* If the device is too small to accommodate GPT headers and one data - sector, reject it. */ - if (data_end < data_start) - { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_OK, - _("device is too small for GPT")); - goto error_free_disk; - } - - disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData)); - if (!disk->disk_specific) - goto error_free_disk; - - gpt_disk_data->AlternateLBA = dev->length - 1; - ped_geometry_init (&gpt_disk_data->data_area, dev, data_start, - data_end - data_start + 1); - gpt_disk_data->entry_count = GPT_DEFAULT_PARTITION_ENTRIES; - uuid_generate ((unsigned char *) &gpt_disk_data->uuid); - swap_uuid_and_efi_guid (&gpt_disk_data->uuid); - gpt_disk_data->pmbr_boot = 0; - return disk; - -error_free_disk: - free (disk); -error: - return NULL; -} - -static PedDisk * -gpt_duplicate (const PedDisk *disk) -{ - PedDisk *new_disk; - GPTDiskData *new_disk_data; - GPTDiskData *old_disk_data; - - new_disk = ped_disk_new_fresh (disk->dev, &gpt_disk_type); - if (!new_disk) - return NULL; - - old_disk_data = disk->disk_specific; - new_disk_data = new_disk->disk_specific; - - ped_geometry_init (&new_disk_data->data_area, disk->dev, - old_disk_data->data_area.start, - old_disk_data->data_area.length); - new_disk_data->entry_count = old_disk_data->entry_count; - new_disk_data->uuid = old_disk_data->uuid; - new_disk_data->pmbr_boot = old_disk_data->pmbr_boot; - return new_disk; -} - -static void -gpt_free (PedDisk *disk) -{ - ped_disk_delete_all (disk); - free (disk->disk_specific); - _ped_disk_free (disk); -} - -/* Given GUID Partition table header, GPT, read its partition array - entries from DISK into malloc'd storage. Set *PTES_BYTES to the - number of bytes required. Upon success, return a pointer to the - resulting buffer. Otherwise, set errno and return NULL. */ -static void * -gpt_read_PE_array (PedDisk const *disk, GuidPartitionTableHeader_t const *gpt, - size_t *ptes_bytes) -{ - uint32_t p_ent_size = PED_LE32_TO_CPU (gpt->SizeOfPartitionEntry); - *ptes_bytes = p_ent_size * PED_LE32_TO_CPU(gpt->NumberOfPartitionEntries); - size_t ptes_sectors = ped_div_round_up (*ptes_bytes, - disk->dev->sector_size); - - if (xalloc_oversized (ptes_sectors, disk->dev->sector_size)) - { - errno = ENOMEM; - return NULL; - } - void *ptes = ped_malloc (ptes_sectors * disk->dev->sector_size); - if (ptes == NULL) - return NULL; - - if (!ped_device_read (disk->dev, ptes, - PED_LE64_TO_CPU (gpt->PartitionEntryLBA), ptes_sectors)) - { - int saved_errno = errno; - free (ptes); - errno = saved_errno; - return NULL; - } - - return ptes; -} - -static int -check_PE_array_CRC (PedDisk const *disk, - GuidPartitionTableHeader_t const *gpt, bool *valid) -{ - size_t ptes_bytes; - void *ptes = gpt_read_PE_array (disk, gpt, &ptes_bytes); - if (ptes == NULL) - return 1; - - uint32_t ptes_crc = efi_crc32 (ptes, ptes_bytes); - *valid = (ptes_crc == PED_LE32_TO_CPU (gpt->PartitionEntryArrayCRC32)); - free (ptes); - return 0; -} - -static int -_header_is_valid (PedDisk const *disk, GuidPartitionTableHeader_t *gpt, - PedSector my_lba) -{ - uint32_t crc, origcrc; - PedDevice const *dev = disk->dev; - - if (PED_LE64_TO_CPU (gpt->Signature) != GPT_HEADER_SIGNATURE) - return 0; - /* - * "While the GUID Partition Table Header's size may increase - * in the future it cannot span more than one block on the - * device." EFI Specification, version 1.10, 11.2.2.1 - */ - if (PED_LE32_TO_CPU (gpt->HeaderSize) < pth_get_size_static (dev) - || PED_LE32_TO_CPU (gpt->HeaderSize) > dev->sector_size) - return 0; - - /* The SizeOfPartitionEntry must be a multiple of 8 and - no smaller than the size of the PartitionEntry structure. - We also require that it be no larger than 1/16th of UINT32_MAX, - as an additional sanity check. */ - uint32_t pe_size = PED_LE32_TO_CPU (gpt->SizeOfPartitionEntry); - if (pe_size % 8 != 0 - || ! (sizeof (GuidPartitionEntry_t) <= pe_size - && pe_size <= (UINT32_MAX >> 4))) - return 0; - - if (PED_LE64_TO_CPU (gpt->MyLBA) != my_lba) - return 0; - - PedSector alt_lba = PED_LE64_TO_CPU (gpt->AlternateLBA); - /* The backup table's AlternateLBA must be 1. */ - if (my_lba != 1 && alt_lba != 1) - return 0; - - /* The alt_lba must never be the same as my_lba. */ - if (alt_lba == my_lba) - return 0; - - bool crc_match; - if (check_PE_array_CRC (disk, gpt, &crc_match) != 0 || !crc_match) - return 0; - - PedSector first_usable = PED_LE64_TO_CPU (gpt->FirstUsableLBA); - if (first_usable < 3) - return 0; - - PedSector last_usable = PED_LE64_TO_CPU (gpt->LastUsableLBA); - if (last_usable < first_usable) - return 0; - - origcrc = gpt->HeaderCRC32; - gpt->HeaderCRC32 = 0; - if (pth_crc32 (dev, gpt, &crc) != 0) - return 0; - gpt->HeaderCRC32 = origcrc; - - return crc == PED_LE32_TO_CPU (origcrc); -} - -/* Return the number of sectors that should be used by the - * partition entry table. - */ -static PedSector -_ptes_sectors(PedDisk const *disk, GuidPartitionTableHeader_t const *gpt) -{ - size_t ptes_bytes = PED_LE32_TO_CPU (gpt->SizeOfPartitionEntry) * - PED_LE32_TO_CPU (gpt->NumberOfPartitionEntries); - /* Minimum amount of space reserved is 128 128 byte entries */ - if (ptes_bytes < 128*128) - ptes_bytes = 128*128; - return ped_div_round_up (ptes_bytes, disk->dev->sector_size); -} - -/* Return the header's idea of the last sector of the disk - * based on LastUsableLBA and the Partition Entry table. - */ -static PedSector -_hdr_disk_end(PedDisk const *disk, GuidPartitionTableHeader_t const *gpt) -{ - return PED_LE64_TO_CPU (gpt->LastUsableLBA) + 1 + _ptes_sectors(disk, gpt); -} - -static int -_parse_header (PedDisk *disk, const GuidPartitionTableHeader_t *gpt, - int *update_needed) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - PedSector first_usable; - PedSector last_usable; - PedSector last_usable_if_grown; - -#ifndef DISCOVER_ONLY - if (PED_LE32_TO_CPU (gpt->Revision) > GPT_HEADER_REVISION_V1_02) - { - if (ped_exception_throw - (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The format of the GPT partition table is version " - "%x, which is newer than what Parted can " - "recognise. Please report this!"), - PED_LE32_TO_CPU (gpt->Revision)) != PED_EXCEPTION_IGNORE) - return 0; - } -#endif - - first_usable = PED_LE64_TO_CPU (gpt->FirstUsableLBA); - last_usable = PED_LE64_TO_CPU (gpt->LastUsableLBA); - - /* Need to check whether the volume has grown, the LastUsableLBA is - normally set to disk->dev->length - 2 - ptes_size (at least for parted - created volumes), where ptes_size is the number of entries * - size of each entry / sector size or 16k / sector size, whatever the greater. - If the volume has grown, offer the user the chance to use the new - space or continue with the current usable area. Only ask once per - parted invocation. */ - - last_usable_if_grown = disk->dev->length - 2 - _ptes_sectors(disk, gpt); - - if (last_usable <= first_usable - || disk->dev->length < last_usable) - return 0; - - if (last_usable_if_grown <= first_usable - || disk->dev->length < last_usable_if_grown) - return 0; - - if (last_usable < last_usable_if_grown) - { - PedExceptionOption q; - - q = ped_exception_throw - (PED_EXCEPTION_WARNING, - PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE, - _("Not all of the space available to %s appears " - "to be used, you can fix the GPT to use all of the " - "space (an extra %llu blocks) or continue with the " - "current setting? "), disk->dev->path, - (uint64_t) (last_usable_if_grown - last_usable)); - - if (q == PED_EXCEPTION_FIX) - { - last_usable = last_usable_if_grown; - /* clear the old backup gpt header */ - ptt_clear_sectors (disk->dev, - gpt_disk_data->AlternateLBA, 1); - gpt_disk_data->AlternateLBA = disk->dev->length - 1; - *update_needed = 1; - } - } - - ped_geometry_init (&gpt_disk_data->data_area, disk->dev, - first_usable, last_usable - first_usable + 1); - - gpt_disk_data->entry_count - = PED_LE32_TO_CPU (gpt->NumberOfPartitionEntries); - PED_ASSERT (gpt_disk_data->entry_count > 0); - PED_ASSERT (gpt_disk_data->entry_count <= 8192); - - gpt_disk_data->uuid = gpt->DiskGUID; - - return 1; -} - -static PedPartition * -_parse_part_entry (PedDisk *disk, GuidPartitionEntry_t *pte) -{ - PedPartition *part; - GPTPartitionData *gpt_part_data; - unsigned int i; - - part = ped_partition_new (disk, PED_PARTITION_NORMAL, NULL, - PED_LE64_TO_CPU (pte->StartingLBA), - PED_LE64_TO_CPU (pte->EndingLBA)); - if (!part) - return NULL; - - gpt_part_data = part->disk_specific; - gpt_part_data->type = pte->PartitionTypeGuid; - gpt_part_data->uuid = pte->UniquePartitionGuid; - for (i = 0; i < 36; i++) - gpt_part_data->name[i] = (efi_char16_t) pte->PartitionName[i]; - gpt_part_data->name[i] = 0; - gpt_part_data->translated_name = 0; - gpt_part_data->attributes = pte->Attributes; - - return part; -} - -/* Read the primary GPT at sector 1 of DEV. - Verify its CRC and that of its partition entry array. - If they are valid, read the backup GPT specified by AlternateLBA. - If not, read the backup GPT in the last sector of the disk. - Return 1 if any read fails. - Upon successful verification of the primary GPT, set *PRIMARY_GPT, else NULL. - Upon successful verification of the backup GPT, set *BACKUP_GPT, else NULL. - If we've set *BACKUP_GPT to non-NULL, set *BACKUP_SECTOR_NUM_P to the sector - number in which it was found. */ -static int -gpt_read_headers (PedDisk const *disk, - GuidPartitionTableHeader_t **primary_gpt, - GuidPartitionTableHeader_t **backup_gpt, - PedSector *backup_sector_num_p) -{ - *primary_gpt = NULL; - *backup_gpt = NULL; - PedDevice const *dev = disk->dev; - GPTDiskData *gpt_disk_data = disk->disk_specific; - LegacyMBR_t *mbr; - - if (!ptt_read_sector (dev, 0, (void *)&mbr)) - return 1; - - if (mbr->PartitionRecord[0].BootIndicator == 0x80) - gpt_disk_data->pmbr_boot = 1; - free (mbr); - - void *s1; - if (!ptt_read_sector (dev, 1, &s1)) - return 1; - - GuidPartitionTableHeader_t *t = pth_new_from_raw (dev, s1); - free (s1); - if (t == NULL) - return 1; - GuidPartitionTableHeader_t *pri = t; - - bool valid_primary = _header_is_valid (disk, pri, 1); - if (valid_primary) - *primary_gpt = pri; - else - pth_free (pri); - - gpt_disk_data->AlternateLBA = - (valid_primary - ? PED_LE64_TO_CPU (pri->AlternateLBA) - : dev->length - 1); - - void *s_bak; - if (!ptt_read_sector (dev, gpt_disk_data->AlternateLBA ,&s_bak)) - return 1; - t = pth_new_from_raw (dev, s_bak); - free (s_bak); - if (t == NULL) - return 1; - - GuidPartitionTableHeader_t *bak = t; - if (_header_is_valid (disk, bak, gpt_disk_data->AlternateLBA)) - { - *backup_gpt = bak; - *backup_sector_num_p = gpt_disk_data->AlternateLBA; - } - else - pth_free (bak); - - return 0; -} - -/************************************************************ - * Intel is changing the EFI Spec. (after v1.02) to say that a - * disk is considered to have a GPT label only if the GPT - * structures are correct, and the MBR is actually a Protective - * MBR (has one 0xEE type partition). - * Problem occurs when a GPT-partitioned disk is then - * edited with a legacy (non-GPT-aware) application, such as - * fdisk (which doesn't generally erase the PGPT or AGPT). - * How should such a disk get handled? As a GPT disk (throwing - * away the fdisk changes), or as an MSDOS disk (throwing away - * the GPT information). Previously, I've taken the GPT-is-right, - * MBR is wrong, approach, to stay consistent with the EFI Spec. - * Intel disagrees, saying the disk should then be treated - * as having a msdos label, not a GPT label. If this is true, - * then what's the point of having an AGPT, since if the PGPT - * is screwed up, likely the PMBR is too, and the PMBR becomes - * a single point of failure. - * So, in the Linux kernel, I'm going to test for PMBR, and - * warn if it's not there, and treat the disk as MSDOS, with a note - * for users to use Parted to "fix up" their disk if they - * really want it to be considered GPT. - ************************************************************/ -static int -gpt_read (PedDisk *disk) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - int i; -#ifndef DISCOVER_ONLY - int write_back = 0; -#endif - - ped_disk_delete_all (disk); - - /* motivation: let the user decide about the pmbr... during - ped_disk_probe(), they probably didn't get a choice... */ - if (!gpt_probe (disk->dev)) - goto error; - - GuidPartitionTableHeader_t *gpt = NULL; - GuidPartitionTableHeader_t *primary_gpt; - GuidPartitionTableHeader_t *backup_gpt; - PedSector backup_sector_num; - int read_failure = gpt_read_headers (disk, &primary_gpt, &backup_gpt, - &backup_sector_num); - if (read_failure) - { - /* This includes the case in which there used to be a GPT partition - table here, with an alternate LBA that extended beyond the current - end-of-device. It's treated as a non-match. */ - - /* Another possibility: - The primary header is ok, but backup is corrupt. - In the UEFI spec, this means the primary GUID table - is officially invalid. */ - pth_free (backup_gpt); - pth_free (primary_gpt); - return 0; - } - - if (primary_gpt && backup_gpt) - { - /* Both are valid. */ -#ifndef DISCOVER_ONLY - /* The backup header must be at the end of the disk, or at what the primary - * header thinks is the end of the disk. - */ - gpt_disk_data->AlternateLBA = PED_LE64_TO_CPU (primary_gpt->AlternateLBA); - PedSector pri_disk_end = _hdr_disk_end(disk, primary_gpt); - - if (gpt_disk_data->AlternateLBA != disk->dev->length -1 && - gpt_disk_data->AlternateLBA != pri_disk_end) - { - if (ped_exception_throw - (PED_EXCEPTION_ERROR, - (PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE), - _("The backup GPT table is not at the end of the disk, as it " - "should be. Fix, by moving the backup to the end " - "(and removing the old backup)?")) == PED_EXCEPTION_FIX) - { - ptt_clear_sectors (disk->dev, - PED_LE64_TO_CPU (primary_gpt->AlternateLBA), 1); - gpt_disk_data->AlternateLBA = disk->dev->length -1; - write_back = 1; - } - } -#endif /* !DISCOVER_ONLY */ - pth_free (backup_gpt); - gpt = primary_gpt; - } - else if (!primary_gpt && !backup_gpt) - { - /* Both are corrupt. */ - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Both the primary and backup GPT tables " - "are corrupt. Try making a fresh table, " - "and using Parted's rescue feature to " - "recover partitions.")); - goto error; - } - else if (primary_gpt && !backup_gpt) - { - /* The primary header is ok, but backup is corrupt. */ - if (ped_exception_throw - (PED_EXCEPTION_ERROR, PED_EXCEPTION_OK_CANCEL, - _("The backup GPT table is corrupt, but the " - "primary appears OK, so that will be used.")) - == PED_EXCEPTION_CANCEL) - goto error_free_gpt; - - gpt = primary_gpt; - } - else /* !primary_gpt && backup_gpt */ - { - /* primary GPT corrupt, backup is ok. */ - if (ped_exception_throw - (PED_EXCEPTION_ERROR, PED_EXCEPTION_OK_CANCEL, - _("The primary GPT table is corrupt, but the " - "backup appears OK, so that will be used.")) - == PED_EXCEPTION_CANCEL) - goto error_free_gpt; - - gpt = backup_gpt; - } - backup_gpt = NULL; - primary_gpt = NULL; - - if (!_parse_header (disk, gpt, &write_back)) - goto error_free_gpt; - - size_t ptes_bytes; - void *ptes = gpt_read_PE_array (disk, gpt, &ptes_bytes); - if (ptes == NULL) - goto error_free_gpt; - - uint32_t ptes_crc = efi_crc32 (ptes, ptes_bytes); - if (ptes_crc != PED_LE32_TO_CPU (gpt->PartitionEntryArrayCRC32)) - { - ped_exception_throw - (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("primary partition table array CRC mismatch")); - goto error_free_ptes; - } - - uint32_t p_ent_size = PED_LE32_TO_CPU (gpt->SizeOfPartitionEntry); - for (i = 0; i < gpt_disk_data->entry_count; i++) - { - GuidPartitionEntry_t *pte - = (GuidPartitionEntry_t *) ((char *) ptes + i * p_ent_size); - PedPartition *part; - - if (!guid_cmp (pte->PartitionTypeGuid, UNUSED_ENTRY_GUID)) - continue; - - part = _parse_part_entry (disk, pte); - if (!part) - goto error_delete_all; - - part->fs_type = ped_file_system_probe (&part->geom); - part->num = i + 1; - - PedConstraint *constraint_exact = ped_constraint_exact (&part->geom); - if (!ped_disk_add_partition (disk, part, constraint_exact)) - { - ped_constraint_destroy (constraint_exact); - ped_partition_destroy (part); - goto error_delete_all; - } - ped_constraint_destroy (constraint_exact); - } - free (ptes); - -#ifndef DISCOVER_ONLY - if (write_back) - ped_disk_commit_to_dev (disk); -#endif - - pth_free (gpt); - return 1; - -error_delete_all: - ped_disk_delete_all (disk); -error_free_ptes: - free (ptes); -error_free_gpt: - pth_free (primary_gpt); - pth_free (backup_gpt); - pth_free (gpt); -error: - return 0; -} - -#ifndef DISCOVER_ONLY -/* Write the protective MBR (to keep DOS happy) */ -static int -_write_pmbr (PedDevice *dev, bool pmbr_boot) -{ - /* The UEFI spec is not clear about what to do with the following - elements of the Protective MBR (pmbr): BootCode (0-440B), - UniqueMBRSignature (440B-444B) and Unknown (444B-446B). - With this in mind, we try not to modify these elements. */ - void *s0; - if (!ptt_read_sector (dev, 0, &s0)) - return 0; - LegacyMBR_t *pmbr = s0; - - /* Zero out the legacy partitions. */ - memset (pmbr->PartitionRecord, 0, sizeof pmbr->PartitionRecord); - - pmbr->Signature = PED_CPU_TO_LE16 (MSDOS_MBR_SIGNATURE); - pmbr->PartitionRecord[0].OSType = EFI_PMBR_OSTYPE_EFI; - pmbr->PartitionRecord[0].StartSector = 2; - pmbr->PartitionRecord[0].EndHead = 0xFF; - pmbr->PartitionRecord[0].EndSector = 0xFF; - pmbr->PartitionRecord[0].EndTrack = 0xFF; - pmbr->PartitionRecord[0].StartingLBA = PED_CPU_TO_LE32 (1); - if ((dev->length - 1ULL) > 0xFFFFFFFFULL) - pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (0xFFFFFFFF); - else - pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (dev->length - 1UL); - if (pmbr_boot) - pmbr->PartitionRecord[0].BootIndicator = 0x80; - - int write_ok = ped_device_write (dev, pmbr, GPT_PMBR_LBA, - GPT_PMBR_SECTORS); - free (s0); - return write_ok; -} - -static int -_generate_header (const PedDisk *disk, int alternate, uint32_t ptes_crc, - GuidPartitionTableHeader_t **gpt_p) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - GuidPartitionTableHeader_t *gpt; - - *gpt_p = pth_new_zeroed (disk->dev); - - gpt = *gpt_p; - - gpt->Signature = PED_CPU_TO_LE64 (GPT_HEADER_SIGNATURE); - gpt->Revision = PED_CPU_TO_LE32 (GPT_HEADER_REVISION_V1_00); - - /* per 1.00 spec */ - gpt->HeaderSize = PED_CPU_TO_LE32 (pth_get_size_static (disk->dev)); - gpt->HeaderCRC32 = 0; - gpt->Reserved1 = 0; - - if (alternate) - { - size_t ss = disk->dev->sector_size; - PedSector ptes_bytes = (gpt_disk_data->entry_count - * sizeof (GuidPartitionEntry_t)); - PedSector ptes_sectors = (ptes_bytes + ss - 1) / ss; - - gpt->MyLBA = PED_CPU_TO_LE64 (gpt_disk_data->AlternateLBA); - gpt->AlternateLBA = PED_CPU_TO_LE64 (1); - gpt->PartitionEntryLBA - = PED_CPU_TO_LE64 (gpt_disk_data->AlternateLBA - ptes_sectors); - } - else - { - gpt->MyLBA = PED_CPU_TO_LE64 (1); - gpt->AlternateLBA = PED_CPU_TO_LE64 (gpt_disk_data->AlternateLBA); - gpt->PartitionEntryLBA = PED_CPU_TO_LE64 (2); - } - - gpt->FirstUsableLBA = PED_CPU_TO_LE64 (gpt_disk_data->data_area.start); - gpt->LastUsableLBA = PED_CPU_TO_LE64 (gpt_disk_data->data_area.end); - gpt->DiskGUID = gpt_disk_data->uuid; - gpt->NumberOfPartitionEntries - = PED_CPU_TO_LE32 (gpt_disk_data->entry_count); - gpt->SizeOfPartitionEntry = PED_CPU_TO_LE32 (sizeof (GuidPartitionEntry_t)); - gpt->PartitionEntryArrayCRC32 = PED_CPU_TO_LE32 (ptes_crc); - - uint32_t crc; - if (pth_crc32 (disk->dev, gpt, &crc) != 0) - return 1; - - gpt->HeaderCRC32 = PED_CPU_TO_LE32 (crc); - return 0; -} - -static void -_partition_generate_part_entry (PedPartition *part, GuidPartitionEntry_t *pte) -{ - GPTPartitionData *gpt_part_data = part->disk_specific; - unsigned int i; - - PED_ASSERT (gpt_part_data != NULL); - - pte->PartitionTypeGuid = gpt_part_data->type; - pte->UniquePartitionGuid = gpt_part_data->uuid; - pte->StartingLBA = PED_CPU_TO_LE64 (part->geom.start); - pte->EndingLBA = PED_CPU_TO_LE64 (part->geom.end); - pte->Attributes = gpt_part_data->attributes; - - for (i = 0; i < 36; i++) - pte->PartitionName[i] = gpt_part_data->name[i]; -} - -static int -gpt_write (const PedDisk *disk) -{ - GPTDiskData *gpt_disk_data; - uint32_t ptes_crc; - uint8_t *pth_raw; - GuidPartitionTableHeader_t *gpt; - PedPartition *part; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (disk->disk_specific != NULL); - - gpt_disk_data = disk->disk_specific; - - size_t ptes_bytes = (gpt_disk_data->entry_count - * sizeof (GuidPartitionEntry_t)); - size_t ss = disk->dev->sector_size; - PedSector ptes_sectors = (ptes_bytes + ss - 1) / ss; - /* Note that we allocate a little more than ptes_bytes, - when that number is not a multiple of sector size. */ - GuidPartitionEntry_t *ptes = calloc (ptes_sectors, ss); - if (!ptes) - goto error; - for (part = ped_disk_next_partition (disk, NULL); part; - part = ped_disk_next_partition (disk, part)) - { - if (part->type != 0) - continue; - _partition_generate_part_entry (part, &ptes[part->num - 1]); - } - - ptes_crc = efi_crc32 (ptes, ptes_bytes); - - /* Write protective MBR */ - if (!_write_pmbr (disk->dev, gpt_disk_data->pmbr_boot)) - goto error_free_ptes; - - /* Write PTH and PTEs */ - /* FIXME: Caution: this code is nearly identical to what's just below. */ - if (_generate_header (disk, 0, ptes_crc, &gpt) != 0) { - pth_free(gpt); - goto error_free_ptes; - } - pth_raw = pth_get_raw (disk->dev, gpt); - pth_free (gpt); - if (pth_raw == NULL) - goto error_free_ptes; - int write_ok = ped_device_write (disk->dev, pth_raw, 1, 1); - free (pth_raw); - if (!write_ok) - goto error_free_ptes; - if (!ped_device_write (disk->dev, ptes, 2, ptes_sectors)) - goto error_free_ptes; - - /* Write Alternate PTH & PTEs */ - /* FIXME: Caution: this code is nearly identical to what's just above. */ - if (_generate_header (disk, 1, ptes_crc, &gpt) != 0) { - pth_free(gpt); - goto error_free_ptes; - } - pth_raw = pth_get_raw (disk->dev, gpt); - pth_free (gpt); - if (pth_raw == NULL) - goto error_free_ptes; - write_ok = ped_device_write (disk->dev, pth_raw, gpt_disk_data->AlternateLBA, 1); - free (pth_raw); - if (!write_ok) - goto error_free_ptes; - if (!ped_device_write (disk->dev, ptes, - gpt_disk_data->AlternateLBA - ptes_sectors, ptes_sectors)) - goto error_free_ptes; - - free (ptes); - return ped_device_sync (disk->dev); - -error_free_ptes: - free (ptes); -error: - return 0; -} -#endif /* !DISCOVER_ONLY */ - -static int -add_metadata_part (PedDisk *disk, PedSector start, PedSector length) -{ - PedPartition *part; - PedConstraint *constraint_exact; - PED_ASSERT (disk != NULL); - - part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, - start, start + length - 1); - if (!part) - goto error; - - constraint_exact = ped_constraint_exact (&part->geom); - if (!ped_disk_add_partition (disk, part, constraint_exact)) - goto error_destroy_constraint; - ped_constraint_destroy (constraint_exact); - return 1; - -error_destroy_constraint: - ped_constraint_destroy (constraint_exact); - ped_partition_destroy (part); -error: - return 0; -} - -static PedPartition * -gpt_partition_new (const PedDisk *disk, - PedPartitionType part_type, - const PedFileSystemType *fs_type, PedSector start, - PedSector end) -{ - PedPartition *part; - GPTPartitionData *gpt_part_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (part_type != 0) - return part; - - gpt_part_data = part->disk_specific = - ped_malloc (sizeof (GPTPartitionData)); - if (!gpt_part_data) - goto error_free_part; - - gpt_part_data->type = PARTITION_LINUX_DATA_GUID; - gpt_part_data->translated_name = 0; - uuid_generate ((unsigned char *) &gpt_part_data->uuid); - swap_uuid_and_efi_guid (&gpt_part_data->uuid); - memset (gpt_part_data->name, 0, sizeof gpt_part_data->name); - memset (&gpt_part_data->attributes, 0, sizeof gpt_part_data->attributes); - return part; - -error_free_part: - _ped_partition_free (part); -error: - return NULL; -} - -static PedPartition * -gpt_partition_duplicate (const PedPartition *part) -{ - PedPartition *result; - GPTPartitionData *part_data = part->disk_specific; - GPTPartitionData *result_data; - - result = _ped_partition_alloc (part->disk, part->type, part->fs_type, - part->geom.start, part->geom.end); - if (!result) - goto error; - result->num = part->num; - - if (result->type != 0) - return result; - - result_data = result->disk_specific = - ped_malloc (sizeof (GPTPartitionData)); - if (!result_data) - goto error_free_part; - - *result_data = *part_data; - if (part_data->translated_name) { - result_data->translated_name = xstrdup (part_data->translated_name); - } else { - result_data->translated_name = 0; - } - return result; - -error_free_part: - _ped_partition_free (result); -error: - return NULL; -} - -static void -gpt_partition_destroy (PedPartition *part) -{ - if (part->type == 0) - { - PED_ASSERT (part->disk_specific != NULL); - GPTPartitionData *gpt_part_data = part->disk_specific; - free (gpt_part_data->translated_name); - free (part->disk_specific); - } - - _ped_partition_free (part); -} - -/* is_skip_guid checks the guid against the list of guids that should not be - * overridden by set_system. It returns a 1 if it is in the list. -*/ -static bool -is_skip_guid(efi_guid_t guid) { - int n = sizeof(skip_set_system_guids) / sizeof(skip_set_system_guids[0]); - for (int i = 0; i < n; ++i) { - if (guid_cmp(guid, skip_set_system_guids[i]) == 0) { - return true; - } - } - - return false; -} - -static int -gpt_partition_set_system (PedPartition *part, - const PedFileSystemType *fs_type) -{ - GPTPartitionData *gpt_part_data = part->disk_specific; - - PED_ASSERT (gpt_part_data != NULL); - - part->fs_type = fs_type; - - // Is this a GUID that should skip fs_type checking? - if (is_skip_guid(gpt_part_data->type)) { - return 1; - } - - if (fs_type) - { - if (strncmp (fs_type->name, "fat", 3) == 0 - || strcmp (fs_type->name, "udf") == 0 - || strcmp (fs_type->name, "ntfs") == 0) - { - gpt_part_data->type = PARTITION_BASIC_DATA_GUID; - return 1; - } - if (strncmp (fs_type->name, "hfs", 3) == 0) - { - gpt_part_data->type = PARTITION_APPLE_HFS_GUID; - return 1; - } - if (strstr (fs_type->name, "swap")) - { - gpt_part_data->type = PARTITION_SWAP_GUID; - return 1; - } - } - - gpt_part_data->type = PARTITION_LINUX_DATA_GUID; - return 1; -} - -/* Allocate metadata partitions for the GPTH and PTES */ -static int -gpt_alloc_metadata (PedDisk *disk) -{ - PedSector gptlength, pteslength = 0; - GPTDiskData *gpt_disk_data; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (disk->disk_specific != NULL); - gpt_disk_data = disk->disk_specific; - - gptlength = ped_div_round_up (sizeof (GuidPartitionTableHeader_t), - disk->dev->sector_size); - pteslength = ped_div_round_up (gpt_disk_data->entry_count - * sizeof (GuidPartitionEntry_t), - disk->dev->sector_size); - - /* metadata at the start of the disk includes the MBR */ - if (!add_metadata_part (disk, GPT_PMBR_LBA, - GPT_PMBR_SECTORS + gptlength + pteslength)) - return 0; - - /* metadata at the end of the disk */ - if (!add_metadata_part (disk, disk->dev->length - gptlength - pteslength, - gptlength + pteslength)) - return 0; - - return 1; -} - -/* Does nothing, as the read/new/destroy functions maintain part->num */ -static int -gpt_partition_enumerate (PedPartition *part) -{ - GPTDiskData *gpt_disk_data = part->disk->disk_specific; - int i; - - /* never change the partition numbers */ - if (part->num != -1) - return 1; - - for (i = 1; i <= gpt_disk_data->entry_count; i++) - { - if (!ped_disk_get_partition (part->disk, i)) - { - part->num = i; - return 1; - } - } - - PED_ASSERT (0); - - return 0; /* used if debug is disabled */ -} - -static int -gpt_disk_set_flag (PedDisk *disk, PedDiskFlag flag, int state) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - switch (flag) - { - case PED_DISK_GPT_PMBR_BOOT: - gpt_disk_data->pmbr_boot = state; - return 1; - default: - return 0; - } -} - -static int -gpt_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag) -{ - switch (flag) - { - case PED_DISK_GPT_PMBR_BOOT: - return 1; - default: - return 0; - } -} - -static uint8_t* -gpt_disk_get_uuid (const PedDisk *disk) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - - efi_guid_t uuid = gpt_disk_data->uuid; - - /* uuid is always LE, while uint8_t is always kind of BE */ - - uuid.time_low = PED_SWAP32(uuid.time_low); - uuid.time_mid = PED_SWAP16(uuid.time_mid); - uuid.time_hi_and_version = PED_SWAP16(uuid.time_hi_and_version); - - uint8_t *buf = ped_malloc(sizeof (uuid_t)); - memcpy(buf, &uuid, sizeof (uuid_t)); - return buf; -} - -static int -gpt_disk_get_flag (const PedDisk *disk, PedDiskFlag flag) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - switch (flag) - { - case PED_DISK_GPT_PMBR_BOOT: - return gpt_disk_data->pmbr_boot; - break; - default: - return 0; - } -} - -static int -gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state) -{ - GPTPartitionData *gpt_part_data; - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - gpt_part_data = part->disk_specific; - - const struct flag_uuid_mapping_t* p = gpt_find_flag_uuid_mapping (flag); - if (p) - { - if (state) { - gpt_part_data->type = p->type_uuid; - } else if (guid_cmp (gpt_part_data->type, p->type_uuid) == 0) { - // Clear the GUID so that fs_type will be used to return it to the default - gpt_part_data->type = PARTITION_LINUX_DATA_GUID; - return gpt_partition_set_system (part, part->fs_type); - } - return 1; - } - - switch (flag) - { - case PED_PARTITION_HIDDEN: - gpt_part_data->attributes.RequiredToFunction = state; - return 1; - case PED_PARTITION_LEGACY_BOOT: - gpt_part_data->attributes.LegacyBIOSBootable = state; - return 1; - case PED_PARTITION_NO_AUTOMOUNT: - gpt_part_data->attributes.NoAutomount = state; - return 1; - case PED_PARTITION_ROOT: - case PED_PARTITION_LBA: - default: - return 0; - } - return 1; -} - -static int _GL_ATTRIBUTE_PURE -gpt_partition_get_flag (const PedPartition *part, PedPartitionFlag flag) -{ - GPTPartitionData *gpt_part_data; - PED_ASSERT (part->disk_specific != NULL); - gpt_part_data = part->disk_specific; - - const struct flag_uuid_mapping_t* p = gpt_find_flag_uuid_mapping (flag); - if (p) - return guid_cmp (gpt_part_data->type, p->type_uuid) == 0; - - switch (flag) - { - case PED_PARTITION_HIDDEN: - return gpt_part_data->attributes.RequiredToFunction; - case PED_PARTITION_LEGACY_BOOT: - return gpt_part_data->attributes.LegacyBIOSBootable; - case PED_PARTITION_NO_AUTOMOUNT: - return gpt_part_data->attributes.NoAutomount; - case PED_PARTITION_LBA: - case PED_PARTITION_ROOT: - default: - return 0; - } - return 0; -} - -static int -gpt_partition_is_flag_available (const PedPartition *part, - PedPartitionFlag flag) -{ - if (gpt_find_flag_uuid_mapping (flag)) - return 1; - - switch (flag) - { - case PED_PARTITION_HIDDEN: - case PED_PARTITION_LEGACY_BOOT: - case PED_PARTITION_NO_AUTOMOUNT: - return 1; - case PED_PARTITION_ROOT: - case PED_PARTITION_LBA: - default: - return 0; - } - return 0; -} - -static void -gpt_partition_set_name (PedPartition *part, const char *name) -{ - GPTPartitionData *gpt_part_data = part->disk_specific; - - free(gpt_part_data->translated_name); - gpt_part_data->translated_name = xstrdup(name); - iconv_t conv = iconv_open ("UCS-2LE", nl_langinfo (CODESET)); - if (conv == (iconv_t)-1) - goto err; - char *inbuff = gpt_part_data->translated_name; - char *outbuff = (char *)&gpt_part_data->name; - size_t inbuffsize = strlen (inbuff) + 1; - size_t outbuffsize = 72; - if (iconv (conv, &inbuff, &inbuffsize, &outbuff, &outbuffsize) == -1) - goto err; - iconv_close (conv); - return; - err: - ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE, - _("failed to translate partition name")); - iconv_close (conv); -} - -static const char * -gpt_partition_get_name (const PedPartition *part) -{ - GPTPartitionData *gpt_part_data = part->disk_specific; - if (gpt_part_data->translated_name == NULL) - { - char buffer[200]; - iconv_t conv = iconv_open (nl_langinfo (CODESET), "UCS-2LE"); - if (conv == (iconv_t)-1) - goto err; - char *inbuff = (char *)&gpt_part_data->name; - char *outbuff = buffer; - size_t inbuffsize = 72; - size_t outbuffsize = sizeof(buffer); - if (iconv (conv, &inbuff, &inbuffsize, &outbuff, &outbuffsize) == -1) - goto err; - iconv_close (conv); - *outbuff = 0; - gpt_part_data->translated_name = xstrdup (buffer); - return gpt_part_data->translated_name; - err: - ped_exception_throw (PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE, - _("failed to translate partition name")); - iconv_close (conv); - return ""; - } - return gpt_part_data->translated_name; -} - - -static int -gpt_partition_set_type_uuid (PedPartition *part, const uint8_t *uuid) -{ - GPTPartitionData *gpt_part_data = part->disk_specific; - - efi_guid_t* type_uuid = &gpt_part_data->type; - memcpy(type_uuid, uuid, sizeof (efi_guid_t)); - - /* type_uuid is always LE, while uint8_t is always kind of BE */ - - type_uuid->time_low = PED_SWAP32(type_uuid->time_low); - type_uuid->time_mid = PED_SWAP16(type_uuid->time_mid); - type_uuid->time_hi_and_version = PED_SWAP16(type_uuid->time_hi_and_version); - - return 1; -} - - -static uint8_t* -gpt_partition_get_type_uuid (const PedPartition *part) -{ - const GPTPartitionData *gpt_part_data = part->disk_specific; - - efi_guid_t type_uuid = gpt_part_data->type; - - /* type_uuid is always LE, while uint8_t is always kind of BE */ - - type_uuid.time_low = PED_SWAP32(type_uuid.time_low); - type_uuid.time_mid = PED_SWAP16(type_uuid.time_mid); - type_uuid.time_hi_and_version = PED_SWAP16(type_uuid.time_hi_and_version); - - uint8_t *buf = ped_malloc(sizeof (uuid_t)); - memcpy(buf, &type_uuid, sizeof (uuid_t)); - return buf; -} - -static uint8_t* -gpt_partition_get_uuid (const PedPartition *part) -{ - const GPTPartitionData *gpt_part_data = part->disk_specific; - - efi_guid_t uuid = gpt_part_data->uuid; - - /* uuid is always LE, while uint8_t is always kind of BE */ - - uuid.time_low = PED_SWAP32(uuid.time_low); - uuid.time_mid = PED_SWAP16(uuid.time_mid); - uuid.time_hi_and_version = PED_SWAP16(uuid.time_hi_and_version); - - uint8_t *buf = ped_malloc(sizeof (uuid_t)); - memcpy(buf, &uuid, sizeof (uuid_t)); - return buf; -} - -static int -gpt_get_max_primary_partition_count (const PedDisk *disk) -{ - const GPTDiskData *gpt_disk_data = disk->disk_specific; - return gpt_disk_data->entry_count; -} - -/* - * From (http://developer.apple.com/technotes/tn2006/tn2166.html Chapter 5). - * According to the specs the first LBA (LBA0) is not relevant (it exists - * to maintain compatibility). on the second LBA(LBA1) gpt places the - * header. The header is as big as the block size. After the header we - * find the Entry array. Each element of said array, describes each - * partition. One can have as much elements as can fit between the end of - * the second LBA (where the header ends) and the FirstUsableLBA. - * FirstUsableLBA is the first logical block that is used for contents - * and is defined in header. - * - * /---------------------------------------------------\ - * | BLOCK0 | HEADER | Entry Array | First Usable LBA | - * | | BLOCK1 | | | - * \---------------------------------------------------/ - * / \ - * /----------/ \----------\ - * /-----------------------------------------\ - * | E1 | E2 | E3 |...............| EN | - * \-----------------------------------------/ - * - * The number of possible partitions or supported partitions is: - * SP = FirstUsableLBA*Blocksize - 2*Blocksize / SizeOfPartitionEntry - * SP = Blocksize(FirstusableLBA - 2) / SizeOfPartitoinEntry - */ -static bool -gpt_get_max_supported_partition_count (const PedDisk *disk, int *max_n) -{ - GuidPartitionTableHeader_t *pth = NULL; - uint8_t *pth_raw = ped_malloc (pth_get_size (disk->dev)); - - if (ped_device_read (disk->dev, pth_raw, 1, GPT_HEADER_SECTORS) - || ped_device_read (disk->dev, pth_raw, - disk->dev->length, GPT_HEADER_SECTORS)) - pth = pth_new_from_raw (disk->dev, pth_raw); - free (pth_raw); - - if (pth == NULL) - return false; - - if (!_header_is_valid (disk, pth, 1)) - { - pth->FirstUsableLBA = PED_CPU_TO_LE64 (34); - pth->SizeOfPartitionEntry - = PED_CPU_TO_LE32 (sizeof (GuidPartitionEntry_t)); - } - - *max_n = (disk->dev->sector_size * (PED_LE64_TO_CPU (pth->FirstUsableLBA) - 2) - / PED_LE32_TO_CPU (pth->SizeOfPartitionEntry)); - pth_free (pth); - return true; -} - -static PedConstraint * -_non_metadata_constraint (const PedDisk *disk) -{ - GPTDiskData *gpt_disk_data = disk->disk_specific; - - return ped_constraint_new_from_max (&gpt_disk_data->data_area); -} - -static int -gpt_partition_align (PedPartition *part, const PedConstraint *constraint) -{ - PED_ASSERT (part != NULL); - - if (_ped_partition_attempt_align (part, constraint, - _non_metadata_constraint (part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -#include "pt-common.h" -PT_define_limit_functions (gpt) - -static PedDiskOps gpt_disk_ops = -{ - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (gpt_write), - - partition_set_name: gpt_partition_set_name, - partition_get_name: gpt_partition_get_name, - partition_set_type_id: NULL, - partition_get_type_id: NULL, - partition_set_type_uuid: gpt_partition_set_type_uuid, - partition_get_type_uuid: gpt_partition_get_type_uuid, - partition_get_uuid: gpt_partition_get_uuid, - disk_set_flag: gpt_disk_set_flag, - disk_get_flag: gpt_disk_get_flag, - disk_is_flag_available: gpt_disk_is_flag_available, - disk_get_uuid: gpt_disk_get_uuid, - - PT_op_function_initializers (gpt) -}; - -static PedDiskType gpt_disk_type = -{ - next: NULL, - name: "gpt", - ops: &gpt_disk_ops, - features: PED_DISK_TYPE_PARTITION_NAME | PED_DISK_TYPE_PARTITION_TYPE_UUID | - PED_DISK_TYPE_DISK_UUID | PED_DISK_TYPE_PARTITION_UUID -}; - -void -ped_disk_gpt_init () -{ - ped_disk_type_register (&gpt_disk_type); -} - -void -ped_disk_gpt_done () -{ - ped_disk_type_unregister (&gpt_disk_type); -} - -verify (sizeof (GuidPartitionEntryAttributes_t) == 8); -verify (sizeof (GuidPartitionEntry_t) == 128); diff --git a/jni/parted/libparted/labels/loop.c b/jni/parted/libparted/labels/loop.c deleted file mode 100755 index 45d169d..0000000 --- a/jni/parted/libparted/labels/loop.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2000, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include -#include - -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#define LOOP_SIGNATURE "GNU Parted Loopback 0" - -static PedDiskType loop_disk_type; - -static PedDisk* loop_alloc (const PedDevice* dev); -static void loop_free (PedDisk* disk); - -static int -loop_probe (const PedDevice* dev) -{ - PedDisk *disk = loop_alloc (dev); - if (!disk) - goto error; - - void *buf; - if (!ptt_read_sector (dev, 0, &buf)) - goto error_destroy_disk; - int found_sig = !strncmp (buf, LOOP_SIGNATURE, strlen (LOOP_SIGNATURE)); - free (buf); - - int result; - if (found_sig) { - result = 1; - } else { - PedGeometry* geom; - - geom = ped_geometry_new (dev, 0, disk->dev->length); - if (!geom) - goto error_destroy_disk; - result = ped_file_system_probe (geom) != NULL; - ped_geometry_destroy (geom); - } - loop_free (disk); - return result; - -error_destroy_disk: - loop_free (disk); -error: - return 0; -} - -static PedDisk* -loop_alloc (const PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - - if (dev->length < 256) - return NULL; - PedDisk *disk = _ped_disk_alloc ((PedDevice*)dev, &loop_disk_type); - PED_ASSERT (disk != NULL); - PedGeometry *geom = ped_geometry_new (dev, 0, dev->length); - PED_ASSERT (geom != NULL); - PedPartition *part = ped_partition_new (disk, PED_PARTITION_NORMAL, - NULL, geom->start, geom->end); - PED_ASSERT (part != NULL); - ped_geometry_destroy (geom); - PedConstraint *constraint_any = ped_constraint_any (dev); - if (!ped_disk_add_partition (disk, part, constraint_any)) - goto error; - ped_constraint_destroy (constraint_any); - return disk; - error: - ped_constraint_destroy (constraint_any); - ped_disk_destroy (disk); - return NULL; -} - -static PedDisk* -loop_duplicate (const PedDisk* disk) -{ - return ped_disk_new_fresh (disk->dev, &loop_disk_type); -} - -static void -loop_free (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - - _ped_disk_free (disk); -} - -static int -loop_read (PedDisk* disk) -{ - PedDevice* dev = NULL; - PedGeometry* geom; - PedFileSystemType* fs_type; - PedPartition* part; - PedConstraint* constraint_any; - - PED_ASSERT (disk != NULL); - dev = disk->dev; - constraint_any = ped_constraint_any (dev); - - ped_disk_delete_all (disk); - - void *buf; - if (!ptt_read_sector (dev, 0, &buf)) - goto error; - - int found_sig = !strncmp (buf, LOOP_SIGNATURE, strlen (LOOP_SIGNATURE)); - free (buf); - geom = ped_geometry_new (dev, 0, dev->length); - if (!geom) - goto error; - - fs_type = ped_file_system_probe (geom); - if (!fs_type && !found_sig) - goto error_free_geom; - - part = ped_partition_new (disk, PED_PARTITION_NORMAL, - fs_type, geom->start, geom->end); - ped_geometry_destroy (geom); - if (!part) - goto error; - - if (!ped_disk_add_partition (disk, part, constraint_any)) - goto error; - ped_constraint_destroy (constraint_any); - return 1; - -error_free_geom: - ped_geometry_destroy (geom); -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -#ifndef DISCOVER_ONLY -static int -loop_write (const PedDisk* disk) -{ - size_t buflen = disk->dev->sector_size; - char *buf = alloca (buflen); - PedPartition *part = ped_disk_get_partition (disk, 1); - /* if there is already a filesystem on the disk, we don't need to write the signature */ - if (part && part->fs_type) - return 1; - if (!ped_device_read (disk->dev, buf, 0, 1)) - return 0; - strcpy (buf, LOOP_SIGNATURE); - - return ped_device_write (disk->dev, buf, 0, 1); -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -loop_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - return NULL; - part->disk_specific = NULL; - return part; -} - -static PedPartition* -loop_partition_duplicate (const PedPartition* part) -{ - PedPartition* result; - - result = ped_partition_new (part->disk, part->type, part->fs_type, - part->geom.start, part->geom.end); - if (result == NULL) - return NULL; - result->num = part->num; - return result; -} - -static void -loop_partition_destroy (PedPartition* part) -{ - free (part); -} - -static int -loop_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - part->fs_type = fs_type; - return 1; -} - -static int -loop_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - return 0; -} - -static int -loop_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - return 0; -} - -static int -loop_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PedGeometry* new_geom; - - new_geom = ped_constraint_solve_nearest (constraint, &part->geom); - if (!new_geom) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the " - "partition.")); - return 0; - } - ped_geometry_set (&part->geom, new_geom->start, new_geom->length); - ped_geometry_destroy (new_geom); - return 1; -} - -static int -loop_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - return 0; -} - -static int -loop_partition_enumerate (PedPartition* part) -{ - part->num = 1; - return 1; -} - -static int -loop_alloc_metadata (PedDisk* disk) -{ - return 1; -} - -static int -loop_get_max_primary_partition_count (const PedDisk* disk) -{ - return 1; -} - -static bool -loop_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = 1; - return true; -} - -#include "pt-common.h" -PT_define_limit_functions (loop) - -static PedDiskOps loop_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (loop_write), - - partition_set_name: NULL, - partition_get_name: NULL, - - PT_op_function_initializers (loop) -}; - -static PedDiskType loop_disk_type = { - next: NULL, - name: "loop", - ops: &loop_disk_ops, - features: 0 -}; - -void -ped_disk_loop_init () -{ - ped_disk_type_register (&loop_disk_type); -} - -void -ped_disk_loop_done () -{ - ped_disk_type_unregister (&loop_disk_type); -} diff --git a/jni/parted/libparted/labels/mac.c b/jni/parted/libparted/labels/mac.c deleted file mode 100755 index 6711d87..0000000 --- a/jni/parted/libparted/labels/mac.c +++ /dev/null @@ -1,1604 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000, 2002, 2004, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "misc.h" -#include "pt-tools.h" - -/* struct's hacked from Linux source: fs/partitions/mac.h - * I believe it was originally written by Paul Mackerras (from comments in - * Quik source) - * - * See also: - * http://developer.apple.com/documentation/mac/Devices/Devices-126.html - * http://developer.apple.com/documentation/mac/Devices/Devices-121.html - * http://devworld.apple.com/technotes/tn/tn1189.html - * - * Partition types: - * Apple_Bootstrap new-world (HFS) boot partition - * Apple_partition_map partition map (table) - * Apple_Driver device driver - * Apple_Driver43 SCSI Manager 4.3 device driver - * Apple_MFS original Macintosh File System - * Apple_HFS Hierarchical File System (and +) - * Apple_HFSX HFS+ with case sensitivity and more - * Apple_UNIX_SVR2 UNIX file system (UFS?) - * Apple_PRODOS ProDOS file system - * Apple_Free unused space - * Apple_Scratch empty - * Apple_Void padding for iso9660 - * Apple_Extra an unused partition map entry - * - * Quick explanation: - * ------------------ - * Terminology: - * - * Parted Apple - * ------ ----- - * device disk/device - * disk no equivalent. - * partition volume or partition - * sector block - * - * * All space must be accounted for, except block 0 (driver block) and - * block 1-X (the partition map: i.e. lots of MacRawPartitions) - * - * * It's really hard to grow/shrink the number of MacRawPartition - * entries in the partition map, because the first partition starts - * immediately after the partition map. When we can move the start of - * HFS and ext2 partitions, this problem will disappear ;-) - */ - -#define MAC_PARTITION_MAGIC_1 0x5453 /* old */ -#define MAC_PARTITION_MAGIC_2 0x504d -#define MAC_DISK_MAGIC 0x4552 - -#define MAC_STATUS_BOOTABLE 8 /* partition is bootable */ - -typedef struct _MacRawPartition MacRawPartition; -typedef struct _MacRawDisk MacRawDisk; -typedef struct _MacDeviceDriver MacDeviceDriver; -typedef struct _MacPartitionData MacPartitionData; -typedef struct _MacDiskData MacDiskData; - -struct __attribute__ ((packed)) _MacRawPartition { - uint16_t signature; /* expected to be MAC_PARTITION_MAGIC */ - uint16_t res1; - uint32_t map_count; /* # blocks in partition map */ - uint32_t start_block; /* absolute starting block # of partition */ - uint32_t block_count; /* number of blocks in partition */ - char name[32]; /* partition name */ - char type[32]; /* string type description */ - uint32_t data_start; /* rel block # of first data block */ - uint32_t data_count; /* number of data blocks */ - uint32_t status; /* partition status bits */ - uint32_t boot_start; - uint32_t boot_count; - uint32_t boot_load; - uint32_t boot_load2; - uint32_t boot_entry; - uint32_t boot_entry2; - uint32_t boot_cksum; - char processor[16]; /* Contains 680x0, x=0,2,3,4; or empty */ - uint32_t driver_sig; - char _padding[372]; -}; - -/* Driver descriptor structure, in block 0 */ -struct __attribute__ ((packed)) _MacRawDisk { - uint16_t signature; /* expected to be MAC_DRIVER_MAGIC */ - uint16_t block_size; /* physical sector size */ - uint32_t block_count; /* size of device in blocks */ - uint16_t dev_type; /* reserved */ - uint16_t dev_id; /* reserved */ - uint32_t data; /* reserved */ - uint16_t driver_count; /* # of driver descriptor entries */ - uint8_t driverlist[488];/* info about available drivers */ - uint16_t padding[3]; /* pad to 512 bytes */ -}; - -struct __attribute__ ((packed)) _MacDeviceDriver { - uint32_t block; /* startblock in MacRawDisk->block_size units */ - uint16_t size; /* size in 512 byte units */ - uint16_t type; /* operating system type (MacOS = 1) */ -}; - -struct _MacPartitionData { - char volume_name[33]; /* eg: "Games" */ - char system_name[33]; /* eg: "Apple_Unix_SVR2" */ - char processor_name[17]; - - int is_boot; - int is_driver; - int has_driver; - int is_root; - int is_swap; - int is_lvm; - int is_raid; - - PedSector data_region_length; - PedSector boot_region_length; - - uint32_t boot_base_address; - uint32_t boot_entry_address; - uint32_t boot_checksum; - - uint32_t status; - uint32_t driver_sig; -}; - -struct _MacDiskData { - int ghost_size; /* sectors per "driver" block */ - int part_map_entry_count; /* # entries (incl. ghost) */ - int part_map_entry_num; /* partition map location */ - - int active_part_entry_count; /* # real partitions */ - int free_part_entry_count; /* # free space */ - int last_part_entry_num; /* last entry number */ - - uint16_t block_size; /* physical sector size */ - uint16_t driver_count; - MacDeviceDriver driverlist[1 + 60]; /* 488 bytes */ -}; - -static PedDiskType mac_disk_type; - -static int -_check_signature (MacRawDisk const *raw_disk) -{ - if (PED_BE16_TO_CPU (raw_disk->signature) != MAC_DISK_MAGIC) { -#ifdef DISCOVER_ONLY - return 0; -#else - return ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Invalid signature %x for Mac disk labels."), - (int) PED_BE16_TO_CPU (raw_disk->signature)) - == PED_EXCEPTION_IGNORE; -#endif - } - - return 1; -} - -static int -_rawpart_check_signature (MacRawPartition* raw_part) -{ - int sig = (int) PED_BE16_TO_CPU (raw_part->signature); - return sig == MAC_PARTITION_MAGIC_1 || sig == MAC_PARTITION_MAGIC_2; -} - -static int -mac_probe (const PedDevice * dev) -{ - PED_ASSERT (dev != NULL); - - if (dev->sector_size < sizeof (MacRawDisk)) - return 0; - - void *label; - if (!ptt_read_sector (dev, 0, &label)) - return 0; - - int valid = _check_signature (label); - - free (label); - return valid; -} - -static int -_disk_add_part_map_entry (PedDisk* disk, int warn) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - PedPartition* new_part; - MacPartitionData* mac_part_data; - PedSector part_map_size; - PedConstraint* constraint_any = ped_constraint_any (disk->dev); - -#ifndef DISCOVER_ONLY - if (warn && ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_FIX | PED_EXCEPTION_CANCEL, - _("Partition map has no partition map entry!")) - != PED_EXCEPTION_FIX) - goto error; -#endif /* !DISCOVER_ONLY */ - - part_map_size - = ped_round_up_to (mac_disk_data->last_part_entry_num, 64); - if (part_map_size == 0) - part_map_size = 64; - - new_part = ped_partition_new (disk, PED_PARTITION_NORMAL, NULL, - 1, part_map_size - 1); - if (!new_part) - goto error; - - mac_part_data = new_part->disk_specific; - strcpy (mac_part_data->volume_name, "Apple"); - strcpy (mac_part_data->system_name, "Apple_partition_map"); - - if (!ped_disk_add_partition (disk, new_part, constraint_any)) - goto error_destroy_new_part; - - mac_disk_data->part_map_entry_num = new_part->num; - mac_disk_data->part_map_entry_count - = new_part->geom.end - mac_disk_data->ghost_size; - ped_constraint_destroy (constraint_any); - return 1; - -error_destroy_new_part: - ped_partition_destroy (new_part); -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -static PedDisk* -mac_alloc (const PedDevice* dev) -{ - PedDisk* disk; - MacDiskData* mac_disk_data; - - PED_ASSERT (dev != NULL); - -#ifndef DISCOVER_ONLY - if (dev->length < 256) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s is too small for a Mac disk label!"), - dev->path); - goto error; - } -#endif - - disk = _ped_disk_alloc (dev, &mac_disk_type); - if (!disk) - goto error; - - mac_disk_data = (MacDiskData*) ped_malloc (sizeof (MacDiskData)); - if (!mac_disk_data) - goto error_free_disk; - disk->disk_specific = mac_disk_data; - mac_disk_data->ghost_size = 1; - mac_disk_data->active_part_entry_count = 0; - mac_disk_data->free_part_entry_count = 1; - mac_disk_data->last_part_entry_num = 1; - mac_disk_data->block_size = 0; - mac_disk_data->driver_count = 0; - memset(&mac_disk_data->driverlist[0], 0, sizeof(mac_disk_data->driverlist)); - - if (!_disk_add_part_map_entry (disk, 0)) - goto error_free_disk; - return disk; - -error_free_disk: - _ped_disk_free (disk); -error: - return NULL; -} - -static PedDisk* -mac_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - MacDiskData* new_mac_data; - MacDiskData* old_mac_data = (MacDiskData*) disk->disk_specific; - - new_disk = ped_disk_new_fresh (disk->dev, &mac_disk_type); - if (!new_disk) - return NULL; - - new_mac_data = (MacDiskData*) new_disk->disk_specific; - - /* remove the partition map partition - it will be duplicated - * later. - */ - PedSector first_part_map_sector = old_mac_data->ghost_size; - PedPartition *partition_map - = ped_disk_get_partition_by_sector (new_disk, first_part_map_sector); - PED_ASSERT (partition_map != NULL); - - /* ped_disk_remove_partition may be used only to delete a "normal" - partition. Trying to delete at least "freespace" or "metadata" - partitions leads to a violation of assumptions in - ped_disk_remove_partition, since it calls _disk_push_update_mode, - which destroys all "freespace" and "metadata" partitions, and - depends on that destruction not freeing its PART parameter. */ - PED_ASSERT (partition_map->type == PED_PARTITION_NORMAL); - ped_disk_remove_partition (new_disk, partition_map); - - /* ugly, but C is ugly :p */ - memcpy (new_mac_data, old_mac_data, sizeof (MacDiskData)); - return new_disk; -} - -static void -mac_free (PedDisk* disk) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - - _ped_disk_free (disk); - free (mac_disk_data); -} - -static int -_rawpart_cmp_type (const MacRawPartition* raw_part, const char* type) -{ - return strncasecmp (raw_part->type, type, 32) == 0; -} - -static int -_rawpart_cmp_name (const MacRawPartition* raw_part, const char* name) -{ - return strncasecmp (raw_part->name, name, 32) == 0; -} - -static int -_rawpart_is_partition_map (const MacRawPartition* raw_part) -{ - return _rawpart_cmp_type (raw_part, "Apple_partition_map"); -} - -static int -strncasestr (const char* haystack, const char* needle, int n) -{ - int needle_size = strlen (needle); - int i; - - for (i = 0; haystack[i] && i < n - needle_size; i++) { - if (strncasecmp (haystack + i, needle, needle_size) == 0) - return 1; - } - - return 0; -} - -static int -_rawpart_is_boot (const MacRawPartition* raw_part) -{ - if (!strcasecmp(raw_part->type, "Apple_Bootstrap")) - return 1; - - if (!strcasecmp(raw_part->type, "Apple_Boot")) - return 1; - - return 0; -} - -static int -_rawpart_is_driver (const MacRawPartition* raw_part) -{ - if (strncmp (raw_part->type, "Apple_", 6) != 0) - return 0; - if (!strncasestr (raw_part->type, "driver", 32)) - return 0; - return 1; -} - -static int _GL_ATTRIBUTE_PURE -_rawpart_has_driver (const MacRawPartition* raw_part, MacDiskData* mac_disk_data) -{ - MacDeviceDriver *driverlist; - uint16_t i; - uint32_t start_block, block_count; - - start_block = PED_BE32_TO_CPU(raw_part->start_block); - block_count = PED_BE32_TO_CPU(raw_part->block_count); - driverlist = &mac_disk_data->driverlist[0]; - for (i = 0; i < mac_disk_data->driver_count; i++) { - if (start_block == PED_BE32_TO_CPU(driverlist->block) && - block_count == PED_BE16_TO_CPU(driverlist->size)) - return 1; - driverlist++; - } - return 0; -} - -static int -_rawpart_is_root (MacRawPartition* raw_part) -{ - if (!_rawpart_cmp_type (raw_part, "Apple_UNIX_SVR2")) - return 0; - if (strcmp (raw_part->name, "root") != 0) - return 0; - return 1; -} - -static int -_rawpart_is_swap (MacRawPartition* raw_part) -{ - if (!_rawpart_cmp_type (raw_part, "Apple_UNIX_SVR2")) - return 0; - if (strcmp (raw_part->name, "swap") != 0) - return 0; - return 1; -} - -static int -_rawpart_is_lvm (MacRawPartition* raw_part) -{ - if (strcmp (raw_part->type, "Linux_LVM") != 0) - return 0; - return 1; -} - -static int -_rawpart_is_raid (MacRawPartition* raw_part) -{ - if (strcmp (raw_part->type, "Linux_RAID") != 0) - return 0; - return 1; -} - -static int -_rawpart_is_void (MacRawPartition* raw_part) -{ - return _rawpart_cmp_type (raw_part, "Apple_Void"); -} - -/* returns 1 if the raw_part represents a partition that is "unused space", or - * doesn't represent a partition at all. NOTE: some people make Apple_Free - * partitions with MacOS, because they can't select another type. So, if the - * name is anything other than "Extra" or "", it is treated as a "real" - * partition. - */ -static int -_rawpart_is_active (MacRawPartition* raw_part) -{ - if (_rawpart_cmp_type (raw_part, "Apple_Free") - && (_rawpart_cmp_name (raw_part, "Extra") - || _rawpart_cmp_name (raw_part, ""))) - return 0; - if (_rawpart_cmp_type (raw_part, "Apple_Void")) - return 0; - if (_rawpart_cmp_type (raw_part, "Apple_Scratch")) - return 0; - if (_rawpart_cmp_type (raw_part, "Apple_Extra")) - return 0; - - return 1; -} - -static PedPartition* -_rawpart_analyse (MacRawPartition* raw_part, PedDisk* disk, int num) -{ - MacDiskData* mac_disk_data; - PedPartition* part; - MacPartitionData* mac_part_data; - PedSector start, length; - - if (!_rawpart_check_signature (raw_part)) { -#ifndef DISCOVER_ONLY - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("Partition %d has an invalid signature %x."), - num, - (int) PED_BE16_TO_CPU (raw_part->signature)) - != PED_EXCEPTION_IGNORE) -#endif - goto error; - } - - mac_disk_data = (MacDiskData*) disk->disk_specific; - - start = PED_BE32_TO_CPU (raw_part->start_block); - length = PED_BE32_TO_CPU (raw_part->block_count); - if (length == 0) { -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Partition %d has an invalid length of 0 bytes!"), - num); -#endif - return NULL; - } - part = ped_partition_new (disk, PED_PARTITION_NORMAL, NULL, - start, start + length - 1); - if (!part) - goto error; - - mac_part_data = part->disk_specific; - - strncpy (mac_part_data->volume_name, raw_part->name, 32); - strncpy (mac_part_data->system_name, raw_part->type, 32); - strncpy (mac_part_data->processor_name, raw_part->processor, 16); - - mac_part_data->is_boot = _rawpart_is_boot (raw_part); - mac_part_data->is_driver = _rawpart_is_driver (raw_part); - if (mac_part_data->is_driver) - mac_part_data->has_driver = _rawpart_has_driver(raw_part, mac_disk_data); - mac_part_data->is_root = _rawpart_is_root (raw_part); - mac_part_data->is_swap = _rawpart_is_swap (raw_part); - mac_part_data->is_lvm = _rawpart_is_lvm (raw_part); - mac_part_data->is_raid = _rawpart_is_raid (raw_part); - - /* "data" region */ -#ifndef DISCOVER_ONLY - if (raw_part->data_start) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The data region doesn't start at the start " - "of the partition.")); - goto error_destroy_part; - } -#endif /* !DISCOVER_ONLY */ - mac_part_data->data_region_length - = PED_BE32_TO_CPU (raw_part->data_count); - - mac_part_data->boot_region_length - = PED_BE32_TO_CPU (raw_part->boot_count); - -#ifndef DISCOVER_ONLY - if (mac_part_data->has_driver) { - if (mac_part_data->boot_region_length < part->geom.length) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("The partition's boot region doesn't occupy " - "the entire partition.")) - != PED_EXCEPTION_IGNORE) - goto error_destroy_part; - } - } else { - if (mac_part_data->data_region_length < part->geom.length && - !mac_part_data->is_boot) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("The partition's data region doesn't occupy " - "the entire partition.")) - != PED_EXCEPTION_IGNORE) - goto error_destroy_part; - } - } -#endif /* !DISCOVER_ONLY */ - - mac_part_data->boot_base_address - = PED_BE32_TO_CPU (raw_part->boot_load); - mac_part_data->boot_entry_address - = PED_BE32_TO_CPU (raw_part->boot_entry); - mac_part_data->boot_checksum - = PED_BE32_TO_CPU (raw_part->boot_cksum); - - mac_part_data->status = PED_BE32_TO_CPU (raw_part->status); - mac_part_data->driver_sig = PED_BE32_TO_CPU (raw_part->driver_sig); - - return part; - -error_destroy_part: - ped_partition_destroy (part); -error: - return NULL; -} - -/* looks at the partition map size field in a mac raw partition, and calculates - * what the size of the partition map should be, from it - */ -static int -_rawpart_get_partmap_size (MacRawPartition* raw_part, PedDisk* disk) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - PedSector part_map_start; - PedSector part_map_end; - - part_map_start = mac_disk_data->ghost_size; - part_map_end = PED_BE32_TO_CPU (raw_part->map_count); - - return part_map_end - part_map_start + 1; -} - -static int -_disk_analyse_block_size (PedDisk* disk, MacRawDisk* raw_disk) -{ - PedSector block_size; - - if (PED_BE16_TO_CPU (raw_disk->block_size) % 512) { -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Weird block size on device descriptor: %d bytes is " - "not divisible by 512."), - (int) PED_BE16_TO_CPU (raw_disk->block_size)); -#endif - goto error; - } - - block_size = PED_BE16_TO_CPU (raw_disk->block_size) / 512; - if (block_size != disk->dev->sector_size / 512) { -#ifndef DISCOVER_ONLY - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The driver descriptor says the physical block size " - "is %d bytes, but Linux says it is %d bytes."), - (int) block_size * 512, - (int) disk->dev->sector_size) - != PED_EXCEPTION_IGNORE) - goto error; -#endif - disk->dev->sector_size = block_size * 512; - } - - return 1; - -error: - return 0; -} - -/* Tries to figure out the block size used by the drivers, for the ghost - * partitioning scheme. Ghost partitioning works like this: the OpenFirmware - * (OF) sees 512 byte blocks, but some drivers use 2048 byte blocks (and, - * perhaps, some other number?). To remain compatible, the partition map - * only has "real" partition map entries on ghost-aligned block numbers (and - * the others are padded with Apple_Void partitions). This function tries - * to figure out what the "ghost-aligned" size is... (which, believe-it-or-not, - * doesn't always equal 2048!!!) - */ -static int -_disk_analyse_ghost_size (PedDisk* disk) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - - void *buf = ped_malloc (disk->dev->sector_size); - if (!buf) - return 0; - - int i; - int found = 0; - for (i = 1; i < 64; i *= 2) { - if (!ped_device_read (disk->dev, buf, i, 1)) - break; - if (_rawpart_check_signature (buf) - && !_rawpart_is_void (buf)) { - mac_disk_data->ghost_size = i; - found = (i <= disk->dev->sector_size / 512); - break; - } - } - free (buf); - -#ifndef DISCOVER_ONLY - if (!found) - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("No valid partition map found.")); -#endif - return found; -} - -static int -mac_read (PedDisk* disk) -{ - MacDiskData* mac_disk_data; - PedPartition* part; - int num; - PedSector ghost_size; - int last_part_entry_num = 0; - - PED_ASSERT (disk != NULL); - - mac_disk_data = disk->disk_specific; - mac_disk_data->part_map_entry_num = 0; /* 0 == none */ - - void *buf; - if (!ptt_read_sector (disk->dev, 0, &buf)) - return 0; - - MacRawDisk *raw_disk = buf; - - if (!_check_signature (raw_disk)) - goto error; - - /* Record the original sector size; this function may change it. */ - PedSector ss0 = disk->dev->sector_size; - if (!_disk_analyse_block_size (disk, raw_disk)) - goto error; - - if (!_disk_analyse_ghost_size (disk)) - goto error; - ghost_size = mac_disk_data->ghost_size; - - if (!ped_disk_delete_all (disk)) - goto error; - - if (PED_BE16_TO_CPU(raw_disk->driver_count) && - PED_BE16_TO_CPU(raw_disk->driver_count) < 62) { - memcpy(&mac_disk_data->driverlist[0], &raw_disk->driverlist[0], - sizeof(mac_disk_data->driverlist)); - mac_disk_data->driver_count = PED_BE16_TO_CPU(raw_disk->driver_count); - mac_disk_data->block_size = PED_BE16_TO_CPU(raw_disk->block_size); - } - - /* If _disk_analyse_block_size has increased the sector_size, - reallocate this buffer, so we can still read a sector into it. */ - if (ss0 < disk->dev->sector_size) { - free (buf); - buf = ped_malloc (disk->dev->sector_size); - if (buf == NULL) - goto error; - } - - for (num=1; num==1 || num <= last_part_entry_num; num++) { - void *raw_part = buf; - if (!ped_device_read (disk->dev, raw_part, - num * ghost_size, 1)) - goto error_delete_all; - - if (!_rawpart_check_signature (raw_part)) - continue; - - if (num == 1) - last_part_entry_num - = _rawpart_get_partmap_size (raw_part, disk); - if (_rawpart_get_partmap_size (raw_part, disk) - != last_part_entry_num) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Conflicting partition map entry sizes! " - "Entry 1 says it is %d, but entry %d says " - "it is %d!"), - last_part_entry_num, - _rawpart_get_partmap_size (raw_part, disk)) - != PED_EXCEPTION_IGNORE) - goto error_delete_all; - } - - if (!_rawpart_is_active (raw_part)) - continue; - - part = _rawpart_analyse (raw_part, disk, num); - if (!part) - goto error_delete_all; - part->num = num; - part->fs_type = ped_file_system_probe (&part->geom); - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - if (constraint_exact == NULL) - goto error_delete_all; - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) - goto error_delete_all; - - if (_rawpart_is_partition_map (raw_part)) { - if (mac_disk_data->part_map_entry_num - && ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_IGNORE_CANCEL, - _("Weird! There are 2 partitions " - "map entries!")) - != PED_EXCEPTION_IGNORE) - goto error_delete_all; - - mac_disk_data->part_map_entry_num = num; - mac_disk_data->part_map_entry_count - = part->geom.end - ghost_size + 1; - } - } - - if (!mac_disk_data->part_map_entry_num) { - if (!_disk_add_part_map_entry (disk, 1)) - goto error_delete_all; - ped_disk_commit_to_dev (disk); - } - free (buf); - return 1; - -error_delete_all: - ped_disk_delete_all (disk); -error: - free (buf); - return 0; -} - -#ifndef DISCOVER_ONLY -/* The Ghost partition: is a blank entry, used to pad out each block (where - * there physical block size > 512 bytes). This is because OpenFirmware uses - * 512 byte blocks, but device drivers Think Different TM, with a different - * lbock size, so we need to do this to avoid a clash (!) - */ -static int -_pad_raw_part (PedDisk* disk, int num, MacRawPartition* part_map) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - int i; - - size_t ss = disk->dev->sector_size; - void *buf = ped_calloc (ss); - if (!buf) - return 0; - - MacRawPartition *ghost_entry = buf; - ghost_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2); - strcpy (ghost_entry->type, "Apple_Void"); - ghost_entry->map_count - = PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num); - - for (i=0; i < mac_disk_data->ghost_size - 1; i++) { - PedSector idx = i + (num - 1) * mac_disk_data->ghost_size; - memcpy ((char*)part_map + idx * ss, ghost_entry, ss); - } - - free (buf); - return 1; -} - -static void -_update_driver_count (MacRawPartition* part_map_entry, - MacDiskData *mac_driverdata, const MacDiskData* mac_disk_data) -{ - uint16_t i; - uint32_t start_block, block_count; - - start_block = PED_BE32_TO_CPU(part_map_entry->start_block); - block_count = PED_BE32_TO_CPU(part_map_entry->block_count); - - for (i = 0; i < mac_disk_data->driver_count; i++) { - if (start_block == PED_BE32_TO_CPU(mac_disk_data->driverlist[i].block) && - block_count == PED_BE16_TO_CPU(mac_disk_data->driverlist[i].size)) { - uint16_t count_cur = mac_driverdata->driver_count; - mac_driverdata->driverlist[count_cur].block - = mac_disk_data->driverlist[i].block; - mac_driverdata->driverlist[count_cur].size - = mac_disk_data->driverlist[i].size; - mac_driverdata->driverlist[count_cur].type - = mac_disk_data->driverlist[i].type; - mac_driverdata->driver_count++; - break; - } - } -} - -static MacRawPartition * -get_pme (MacRawPartition const *part_map, PedSector i, PedDisk const *disk) -{ - MacDiskData const *mac_disk_data = disk->disk_specific; - PedSector idx = i * mac_disk_data->ghost_size - 1; - return (MacRawPartition *) ((char*)part_map - + idx * disk->dev->sector_size); -} - -/* Initialize the disk->dev->sector_size bytes of part_map[part->num]. */ -static int -_generate_raw_part (PedDisk* disk, PedPartition* part, - MacRawPartition* part_map, MacDiskData *mac_driverdata) -{ - MacDiskData* mac_disk_data; - MacPartitionData* mac_part_data; - - PED_ASSERT (part->num > 0); - - mac_disk_data = disk->disk_specific; - mac_part_data = part->disk_specific; - - MacRawPartition *part_map_entry = get_pme (part_map, part->num, disk); - memset (part_map_entry, 0, disk->dev->sector_size); - - part_map_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2); - part_map_entry->map_count - = PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num); - part_map_entry->start_block = PED_CPU_TO_BE32 (part->geom.start); - part_map_entry->block_count = PED_CPU_TO_BE32 (part->geom.length); - strncpy (part_map_entry->name, mac_part_data->volume_name, 31); - part_map_entry->name[31] = '\0'; - strncpy (part_map_entry->type, mac_part_data->system_name, 31); - part_map_entry->type[31] = '\0'; - - if (mac_part_data->is_driver) { - if (mac_part_data->has_driver) - _update_driver_count(part_map_entry, mac_driverdata, - mac_disk_data); - } else - mac_part_data->data_region_length = part->geom.length; - part_map_entry->data_count = PED_CPU_TO_BE32 ( - mac_part_data->data_region_length); - part_map_entry->boot_count = PED_CPU_TO_BE32 ( - mac_part_data->boot_region_length); - part_map_entry->status = PED_CPU_TO_BE32 (mac_part_data->status); - part_map_entry->driver_sig - = PED_CPU_TO_BE32 (mac_part_data->driver_sig); - - part_map_entry->boot_load = - PED_CPU_TO_BE32 (mac_part_data->boot_base_address); - part_map_entry->boot_entry = - PED_CPU_TO_BE32 (mac_part_data->boot_entry_address); - part_map_entry->boot_cksum = - PED_CPU_TO_BE32 (mac_part_data->boot_checksum); - - strncpy (part_map_entry->processor, mac_part_data->processor_name, 15); - part_map_entry->processor[15] = '\0'; - - if (!_pad_raw_part (disk, part->num, part_map)) - goto error; - - return 1; - -error: - return 0; -} - -static int -_generate_raw_freespace_part (PedDisk* disk, PedGeometry* geom, int num, - MacRawPartition* part_map) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - - PED_ASSERT (num > 0); - - MacRawPartition *part_map_entry = get_pme (part_map, num, disk); - - part_map_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2); - part_map_entry->map_count - = PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num); - part_map_entry->start_block = PED_CPU_TO_BE32 (geom->start); - part_map_entry->block_count = PED_CPU_TO_BE32 (geom->length); - strcpy (part_map_entry->name, "Extra"); - strcpy (part_map_entry->type, "Apple_Free"); - - part_map_entry->data_count = PED_CPU_TO_BE32 (geom->length); - part_map_entry->status = 0; - part_map_entry->driver_sig = 0; - - if (!_pad_raw_part (disk, num, part_map)) - goto error; - - return 1; - -error: - return 0; -} - -static int -_generate_empty_part (PedDisk* disk, int num, MacRawPartition* part_map) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - - PED_ASSERT (num > 0); - - MacRawPartition *part_map_entry = get_pme (part_map, num, disk); - part_map_entry->signature = PED_CPU_TO_BE16 (MAC_PARTITION_MAGIC_2); - part_map_entry->map_count - = PED_CPU_TO_BE32 (mac_disk_data->last_part_entry_num); - strcpy (part_map_entry->type, "Apple_Void"); - - return _pad_raw_part (disk, num, part_map); -} - -/* returns the first empty entry in the partition map */ -static int _GL_ATTRIBUTE_PURE -_get_first_empty_part_entry (PedDisk* disk, MacRawPartition* part_map) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - int i; - - for (i=1; i <= mac_disk_data->last_part_entry_num; i++) { - MacRawPartition *part_map_entry = get_pme (part_map, i, disk); - if (!part_map_entry->signature) - return i; - } - - return 0; -} - -static int -write_block_zero (PedDisk* disk, MacDiskData* mac_driverdata) -{ - PedDevice* dev = disk->dev; - void *s0; - if (!ptt_read_sector (dev, 0, &s0)) - return 0; - MacRawDisk *raw_disk = (MacRawDisk *) s0; - - raw_disk->signature = PED_CPU_TO_BE16 (MAC_DISK_MAGIC); - raw_disk->block_size = PED_CPU_TO_BE16 (dev->sector_size); - raw_disk->block_count = PED_CPU_TO_BE32 (dev->length); - - raw_disk->driver_count = PED_CPU_TO_BE16(mac_driverdata->driver_count); - memcpy(&raw_disk->driverlist[0], &mac_driverdata->driverlist[0], - sizeof(raw_disk->driverlist)); - - int write_ok = ped_device_write (dev, raw_disk, 0, 1); - free (s0); - return write_ok; -} - -static int -mac_write (PedDisk* disk) -{ - MacRawPartition* part_map; - MacDiskData* mac_disk_data; - MacDiskData* mac_driverdata; /* updated driver list */ - PedPartition* part; - int num; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->disk_specific != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (!disk->update_mode); - - mac_disk_data = disk->disk_specific; - - if (!ped_disk_get_partition (disk, mac_disk_data->part_map_entry_num)) { - if (!_disk_add_part_map_entry (disk, 1)) - goto error; - } - - mac_driverdata = ped_malloc(sizeof(MacDiskData)); - if (!mac_driverdata) - goto error; - memset (mac_driverdata, 0, sizeof(MacDiskData)); - - size_t pmap_bytes = (mac_disk_data->part_map_entry_count - * mac_disk_data->ghost_size - * disk->dev->sector_size); - part_map = (MacRawPartition*) ped_calloc (pmap_bytes); - if (!part_map) - goto error_free_driverdata; - -/* write (to memory) the "real" partitions */ - for (part = ped_disk_next_partition (disk, NULL); part; - part = ped_disk_next_partition (disk, part)) { - if (!ped_partition_is_active (part)) - continue; - if (!_generate_raw_part (disk, part, part_map, mac_driverdata)) - goto error_free_part_map; - } - -/* write the "free space" partitions */ - for (part = ped_disk_next_partition (disk, NULL); part; - part = ped_disk_next_partition (disk, part)) { - if (part->type != PED_PARTITION_FREESPACE) - continue; - num = _get_first_empty_part_entry (disk, part_map); - if (!_generate_raw_freespace_part (disk, &part->geom, num, - part_map)) - goto error_free_part_map; - } - -/* write the "void" (empty) partitions */ - for (num = _get_first_empty_part_entry (disk, part_map); num; - num = _get_first_empty_part_entry (disk, part_map)) - _generate_empty_part (disk, num, part_map); - -/* write to disk */ - if (!ped_device_write (disk->dev, part_map, 1, - mac_disk_data->part_map_entry_count)) - goto error_free_part_map; - free (part_map); - int write_ok = write_block_zero (disk, mac_driverdata); - free (mac_driverdata); - return write_ok; - -error_free_part_map: - free (part_map); -error_free_driverdata: - free (mac_driverdata); -error: - return 0; -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -mac_partition_new ( - const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, PedSector start, PedSector end) -{ - PedPartition* part; - MacPartitionData* mac_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (ped_partition_is_active (part)) { - part->disk_specific - = mac_data = ped_malloc (sizeof (MacPartitionData)); - if (!mac_data) - goto error_free_part; - - memset (mac_data, 0, sizeof (MacPartitionData)); - strcpy (mac_data->volume_name, "untitled"); - } else { - part->disk_specific = NULL; - } - return part; - -error_free_part: - free (part); -error: - return NULL; -} - -static PedPartition* -mac_partition_duplicate (const PedPartition* part) -{ - PedPartition* new_part; - MacPartitionData* new_mac_data; - MacPartitionData* old_mac_data; - - new_part = ped_partition_new (part->disk, part->type, - part->fs_type, part->geom.start, - part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - - old_mac_data = (MacPartitionData*) part->disk_specific; - new_mac_data = (MacPartitionData*) new_part->disk_specific; - - /* ugly, but C is ugly :p */ - memcpy (new_mac_data, old_mac_data, sizeof (MacPartitionData)); - return new_part; -} - -static void -mac_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) - free (part->disk_specific); - free (part); -} - -static int -mac_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - MacPartitionData* mac_data = part->disk_specific; - - part->fs_type = fs_type; - - if (fs_type && is_linux_swap (fs_type->name)) - ped_partition_set_flag (part, PED_PARTITION_SWAP, 1); - - if (mac_data->is_boot) { - strcpy (mac_data->system_name, "Apple_Bootstrap"); - mac_data->status = 0x33; - return 1; - } - - if (fs_type && (!strcmp (fs_type->name, "hfs") - || !strcmp (fs_type->name, "hfs+"))) { - strcpy (mac_data->system_name, "Apple_HFS"); - mac_data->status |= 0x7f; - } else if (fs_type && !strcmp (fs_type->name, "hfsx")) { - strcpy (mac_data->system_name, "Apple_HFSX"); - mac_data->status |= 0x7f; - } else { - strcpy (mac_data->system_name, "Apple_UNIX_SVR2"); - mac_data->status = 0x33; - } - - return 1; -} - -static int -mac_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - MacPartitionData* mac_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - mac_data = part->disk_specific; - - switch (flag) { - case PED_PARTITION_BOOT: - mac_data->is_boot = state; - - if (part->fs_type) - return mac_partition_set_system (part, part->fs_type); - - if (state) { - strcpy (mac_data->system_name, "Apple_Bootstrap"); - mac_data->status = 0x33; - } - return 1; - - case PED_PARTITION_ROOT: - if (state) { - strcpy (mac_data->volume_name, "root"); - mac_data->is_swap = 0; - } else { - if (mac_data->is_root) - strcpy (mac_data->volume_name, "untitled"); - } - mac_data->is_root = state; - return 1; - - case PED_PARTITION_SWAP: - if (state) { - strcpy (mac_data->volume_name, "swap"); - mac_data->is_root = 0; - } else { - if (mac_data->is_swap) - strcpy (mac_data->volume_name, "untitled"); - } - mac_data->is_swap = state; - return 1; - - case PED_PARTITION_LVM: - if (state) { - strcpy (mac_data->system_name, "Linux_LVM"); - mac_data->is_lvm = state; - } else { - if (mac_data->is_lvm) - mac_partition_set_system (part, part->fs_type); - } - return 1; - - case PED_PARTITION_RAID: - if (state) { - strcpy (mac_data->system_name, "Linux_RAID"); - mac_data->is_raid = state; - } else { - if (mac_data->is_raid) - mac_partition_set_system (part, part->fs_type); - } - return 1; - - default: - return 0; - } -} - -static int _GL_ATTRIBUTE_PURE -mac_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - MacPartitionData* mac_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - mac_data = part->disk_specific; - switch (flag) { - case PED_PARTITION_BOOT: - return mac_data->is_boot; - - case PED_PARTITION_ROOT: - return mac_data->is_root; - - case PED_PARTITION_SWAP: - return mac_data->is_swap; - - case PED_PARTITION_LVM: - return mac_data->is_lvm; - - case PED_PARTITION_RAID: - return mac_data->is_raid; - - default: - return 0; - } -} - -static int -mac_partition_is_flag_available ( - const PedPartition* part, PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_BOOT: - case PED_PARTITION_ROOT: - case PED_PARTITION_SWAP: - case PED_PARTITION_LVM: - case PED_PARTITION_RAID: - return 1; - - default: - return 0; - } -} - -static void -mac_partition_set_name (PedPartition* part, const char* name) -{ - MacPartitionData* mac_data; - int i; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - mac_data = part->disk_specific; - -#ifndef DISCOVER_ONLY - if (mac_data->is_root || mac_data->is_swap) { - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("Changing the name of a root or swap partition " - "will prevent Linux from recognising it as such.")) - != PED_EXCEPTION_IGNORE) - return; - mac_data->is_root = mac_data->is_swap = 0; - } -#endif - - strncpy (mac_data->volume_name, name, 32); - mac_data->volume_name [32] = 0; - for (i = strlen (mac_data->volume_name) - 1; - mac_data->volume_name[i] == ' '; i--) - mac_data->volume_name [i] = 0; -} - -static const char* _GL_ATTRIBUTE_PURE -mac_partition_get_name (const PedPartition* part) -{ - MacPartitionData* mac_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - mac_data = part->disk_specific; - - return mac_data->volume_name; -} - -static PedAlignment* -mac_get_partition_alignment(const PedDisk *disk) -{ - return ped_alignment_new(0, 1); -} - -static PedConstraint* -_primary_constraint (PedDisk* disk) -{ - PedAlignment start_align; - PedAlignment end_align; - PedGeometry max_geom; - - if (!ped_alignment_init (&start_align, 0, 1)) - return NULL; - if (!ped_alignment_init (&end_align, -1, 1)) - return NULL; - if (!ped_geometry_init (&max_geom, disk->dev, 1, disk->dev->length - 1)) - return NULL; - - return ped_constraint_new (&start_align, &end_align, &max_geom, - &max_geom, 1, disk->dev->length); -} - -static int -mac_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - - if (_ped_partition_attempt_align (part, constraint, - _primary_constraint (part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -mac_partition_enumerate (PedPartition* part) -{ - PedDisk* disk; - MacDiskData* mac_disk_data; - int i; - int max_part_count; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - - disk = part->disk; - mac_disk_data = (MacDiskData*) disk->disk_specific; - - max_part_count = ped_disk_get_max_primary_partition_count (disk); - - if (part->num > 0 && part->num <= mac_disk_data->part_map_entry_count) - return 1; - - for (i = 1; i <= max_part_count; i++) { - if (!ped_disk_get_partition (disk, i)) { - part->num = i; - return 1; - } - } - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't add another partition -- the partition map is too " - "small!")); -#endif - - return 0; -} - -static int -_disk_count_partitions (PedDisk* disk) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - PedPartition* part = NULL; - PedPartition* last = NULL; - - PED_ASSERT (disk->update_mode); - - mac_disk_data->active_part_entry_count = 0; - mac_disk_data->free_part_entry_count = 0; - mac_disk_data->last_part_entry_num = 0; - - /* subtle: we only care about free space after the partition map. - * the partition map is an "active" partition, BTW... */ - for (part = ped_disk_next_partition (disk, part); part; - part = ped_disk_next_partition (disk, part)) { - if (!ped_partition_is_active (part)) - continue; - - mac_disk_data->active_part_entry_count++; - if (last && last->geom.end + 1 < part->geom.start) - mac_disk_data->free_part_entry_count++; - mac_disk_data->last_part_entry_num - = PED_MAX (mac_disk_data->last_part_entry_num, - part->num); - - last = part; - } - - if (last && last->geom.end < disk->dev->length - 1) - mac_disk_data->free_part_entry_count++; - - mac_disk_data->last_part_entry_num - = PED_MAX (mac_disk_data->last_part_entry_num, - mac_disk_data->active_part_entry_count - + mac_disk_data->free_part_entry_count); - return 1; -} - -static int -add_metadata_part (PedDisk* disk, PedSector start, PedSector end) -{ - PedPartition* new_part; - PedConstraint* constraint_any = ped_constraint_any (disk->dev); - - PED_ASSERT (disk != NULL); - - new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, - start, end); - if (!new_part) - goto error; - if (!ped_disk_add_partition (disk, new_part, constraint_any)) - goto error_destroy_new_part; - - ped_constraint_destroy (constraint_any); - return 1; - -error_destroy_new_part: - ped_partition_destroy (new_part); -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -static int -mac_alloc_metadata (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->disk_specific != NULL); - PED_ASSERT (disk->dev != NULL); - - if (!add_metadata_part (disk, 0, 0)) - return 0; - - /* hack: this seems to be a good place, to update the partition map - * entry count, since mac_alloc_metadata() gets called during - * _disk_pop_update_mode() - */ - return _disk_count_partitions (disk); -} - -static int -mac_get_max_primary_partition_count (const PedDisk* disk) -{ - MacDiskData* mac_disk_data = disk->disk_specific; - PedPartition* part_map_partition; - - part_map_partition = ped_disk_get_partition (disk, - mac_disk_data->part_map_entry_num); - - /* HACK: if we haven't found the partition map partition (yet), - * we return this. - */ - if (!part_map_partition) { - mac_disk_data->part_map_entry_num = 0; - return 65536; - } - - /* HACK: since Mac labels need an entry for free-space regions, we - * must allow half plus 1 entries for free-space partitions. I hate - * this, but things get REALLY complicated, otherwise. - * (I'm prepared to complicate things later, but I want to get - * everything working, first) - */ - return mac_disk_data->part_map_entry_count / mac_disk_data->ghost_size - - mac_disk_data->free_part_entry_count + 1; -} - -static bool -mac_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = 65536; - return true; -} - -#include "pt-common.h" -PT_define_limit_functions (mac) - -static PedDiskOps mac_disk_ops = { - clobber: NULL, - /* FIXME: remove this cast, once mac_write is fixed not to - modify its *DISK parameter. */ - write: NULL_IF_DISCOVER_ONLY ((int (*) (const PedDisk*)) mac_write), - - partition_set_name: mac_partition_set_name, - partition_get_name: mac_partition_get_name, - - get_partition_alignment: mac_get_partition_alignment, - - PT_op_function_initializers (mac) -}; - -static PedDiskType mac_disk_type = { - next: NULL, - name: "mac", - ops: &mac_disk_ops, - features: PED_DISK_TYPE_PARTITION_NAME -}; - -void -ped_disk_mac_init () -{ - PED_ASSERT (sizeof (MacRawPartition) == 512); - PED_ASSERT (sizeof (MacRawDisk) == 512); - - ped_disk_type_register (&mac_disk_type); -} - -void -ped_disk_mac_done () -{ - ped_disk_type_unregister (&mac_disk_type); -} diff --git a/jni/parted/libparted/labels/misc.h b/jni/parted/libparted/labels/misc.h deleted file mode 100755 index 7c11388..0000000 --- a/jni/parted/libparted/labels/misc.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- Mode: c; indent-tabs-mode: nil -*- - - libparted - a library for manipulating disk partitions - Copyright (C) 2007, 2009-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include -#include - -/* hack: use the ext2 uuid library to generate a reasonably random (hopefully - * with /dev/random) number. Unfortunately, we can only use 4 bytes of it. - * We make sure to avoid returning zero which may be interpreted as no FAT - * serial number or no MBR signature. - */ -static inline uint32_t -generate_random_uint32 (void) -{ - union { - uuid_t uuid; - uint32_t i; - } uu32; - - uuid_generate (uu32.uuid); - - return uu32.i > 0 ? uu32.i : 0xffffffff; -} - -/* Return nonzero if FS_TYPE_NAME starts with "linux-swap". - This must match the NUL-terminated "linux-swap" as well - as "linux-swap(v0)" and "linux-swap(v1)". */ -static inline int -is_linux_swap (char const *fs_type_name) -{ - char const *prefix = "linux-swap"; - return strncmp (fs_type_name, prefix, strlen (prefix)) == 0; -} diff --git a/jni/parted/libparted/labels/pc98.c b/jni/parted/libparted/labels/pc98.c deleted file mode 100755 index cfa3ba4..0000000 --- a/jni/parted/libparted/labels/pc98.c +++ /dev/null @@ -1,813 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2000-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include -#include - -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -/* hacked from Linux/98 source: fs/partitions/nec98.h - * - * See also: - * http://people.FreeBSD.org/~kato/pc98.html - * http://www.kmc.kyoto-u.ac.jp/proj/linux98/index-english.html - * - * Partition types: - * - * id0(mid): - * bit 7: 1=bootable, 0=not bootable - * # Linux uses this flag to make a distinction between ext2 and swap. - * bit 6--0: - * 00H : N88-BASIC(data)?, PC-UX(data)? - * 04H : PC-UX(data) - * 06H : N88-BASIC - * 10H : N88-BASIC - * 14H : *BSD, PC-UX - * 20H : DOS(data), Windows95/98/NT, Linux - * 21H..2FH : DOS(system#1 .. system#15) - * 40H : Minix - * - * id1(sid): - * bit 7: 1=active, 0=sleep(hidden) - * # PC-UX uses this flag to make a distinction between its file system - * # and its swap. - * bit 6--0: - * 01H: FAT12 - * 11H: FAT16, <32MB [accessible to DOS 3.3] - * 21H: FAT16, >=32MB [Large Partition] - * 31H: NTFS - * 28H: Windows NT (Volume/Stripe Set?) - * 41H: Windows NT (Volume/Stripe Set?) - * 48H: Windows NT (Volume/Stripe Set?) - * 61H: FAT32 - * 04H: PC-UX - * 06H: N88-BASIC - * 44H: *BSD - * 62H: ext2, linux-swap - */ - -#define MAX_PART_COUNT 16 -#define PC9800_EXTFMT_MAGIC 0xAA55 - -#define BIT(x) (1 << (x)) -#define GET_BIT(n,bit) (((n) & BIT(bit)) != 0) -#define SET_BIT(n,bit,val) n = (val)? (n | BIT(bit)) : (n & ~BIT(bit)) - -typedef struct _PC98RawPartition PC98RawPartition; -typedef struct _PC98RawTable PC98RawTable; - -/* ripped from Linux/98 source */ -struct _PC98RawPartition { - uint8_t mid; /* 0x80 - boot */ - uint8_t sid; /* 0x80 - active */ - uint8_t dum1; /* dummy for padding */ - uint8_t dum2; /* dummy for padding */ - uint8_t ipl_sect; /* IPL sector */ - uint8_t ipl_head; /* IPL head */ - uint16_t ipl_cyl; /* IPL cylinder */ - uint8_t sector; /* starting sector */ - uint8_t head; /* starting head */ - uint16_t cyl; /* starting cylinder */ - uint8_t end_sector; /* end sector */ - uint8_t end_head; /* end head */ - uint16_t end_cyl; /* end cylinder */ - char name[16]; -} __attribute__((packed)); - -struct _PC98RawTable { - uint8_t boot_code [510]; - uint16_t magic; - PC98RawPartition partitions [MAX_PART_COUNT]; -} __attribute__((packed)); - -typedef struct { - PedSector ipl_sector; - int system; - int boot; - int hidden; - char name [17]; -} PC98PartitionData; - -/* this MBR boot code is dummy */ -static const char MBR_BOOT_CODE[] = { - 0xcb, /* retf */ - 0x00, 0x00, 0x00, /* */ - 0x49, 0x50, 0x4c, 0x31 /* "IPL1" */ -}; - -static PedDiskType pc98_disk_type; - -static PedSector chs_to_sector (const PedDevice* dev, int c, int h, int s); -static void sector_to_chs (const PedDevice* dev, PedSector sector, - int* c, int* h, int* s); - -/* magic(?) check */ -static int -pc98_check_magic (const PC98RawTable *part_table) -{ - /* check "extended-format" (have partition table?) */ - if (PED_LE16_TO_CPU(part_table->magic) != PC9800_EXTFMT_MAGIC) - return 0; - - return 1; -} - -static int -pc98_check_ipl_signature (const PC98RawTable *part_table) -{ - if (memcmp (part_table->boot_code + 4, "IPL1", 4) == 0) - return 1; - else if (memcmp (part_table->boot_code + 4, "Linux 98", 8) == 0) - return 1; - else if (memcmp (part_table->boot_code + 4, "GRUB/98 ", 8) == 0) - return 1; - else - return 0; -} - -static int -pc98_probe (const PedDevice *dev) -{ - PC98RawTable part_table; - - PED_ASSERT (dev != NULL); - - if (dev->sector_size != 512) - return 0; - - if (!ped_device_read (dev, &part_table, 0, 2)) - return 0; - - /* check magic */ - if (!pc98_check_magic (&part_table)) - return 0; - - /* check for boot loader signatures */ - return pc98_check_ipl_signature (&part_table); -} - -static PedDisk* -pc98_alloc (const PedDevice* dev) -{ - PED_ASSERT (dev != NULL); - - return _ped_disk_alloc (dev, &pc98_disk_type); -} - -static PedDisk* -pc98_duplicate (const PedDisk* disk) -{ - return ped_disk_new_fresh (disk->dev, &pc98_disk_type); -} - -static void -pc98_free (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - - _ped_disk_free (disk); -} - -static PedSector _GL_ATTRIBUTE_PURE -chs_to_sector (const PedDevice* dev, int c, int h, int s) -{ - PED_ASSERT (dev != NULL); - return (c * dev->hw_geom.heads + h) * dev->hw_geom.sectors + s; -} - -static void -sector_to_chs (const PedDevice* dev, PedSector sector, int* c, int* h, int* s) -{ - PedSector cyl_size; - - PED_ASSERT (dev != NULL); - PED_ASSERT (c != NULL); - PED_ASSERT (h != NULL); - PED_ASSERT (s != NULL); - - cyl_size = dev->hw_geom.heads * dev->hw_geom.sectors; - - *c = sector / cyl_size; - *h = (sector) % cyl_size / dev->hw_geom.sectors; - *s = (sector) % cyl_size % dev->hw_geom.sectors; -} - -static PedSector _GL_ATTRIBUTE_PURE -legacy_start (const PedDisk* disk, const PC98RawPartition* raw_part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - return chs_to_sector (disk->dev, PED_LE16_TO_CPU(raw_part->cyl), - raw_part->head, raw_part->sector); -} - -static PedSector _GL_ATTRIBUTE_PURE -legacy_end (const PedDisk* disk, const PC98RawPartition* raw_part) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (raw_part != NULL); - - if (raw_part->end_head == 0 && raw_part->end_sector == 0) { - return chs_to_sector (disk->dev, - PED_LE16_TO_CPU(raw_part->end_cyl), - disk->dev->hw_geom.heads - 1, - disk->dev->hw_geom.sectors - 1); - } else { - return chs_to_sector (disk->dev, - PED_LE16_TO_CPU(raw_part->end_cyl), - raw_part->end_head, - raw_part->end_sector); - } -} - -static int -is_unused_partition(const PC98RawPartition* raw_part) -{ - if (raw_part->mid || raw_part->sid - || raw_part->ipl_sect - || raw_part->ipl_head - || PED_LE16_TO_CPU(raw_part->ipl_cyl) - || raw_part->sector - || raw_part->head - || PED_LE16_TO_CPU(raw_part->cyl) - || raw_part->end_sector - || raw_part->end_head - || PED_LE16_TO_CPU(raw_part->end_cyl)) - return 0; - return 1; -} - -static int -read_table (PedDisk* disk) -{ - int i; - PC98RawTable table; - PedConstraint* constraint_any; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - constraint_any = ped_constraint_any (disk->dev); - - if (!ped_device_read (disk->dev, (void*) &table, 0, 2)) - goto error; - - if (!pc98_check_magic(&table)) { - if (ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_IGNORE_CANCEL, - _("Invalid partition table on %s."), - disk->dev->path)) - goto error; - } - - for (i = 0; i < MAX_PART_COUNT; i++) { - PC98RawPartition* raw_part; - PedPartition* part; - PC98PartitionData* pc98_data; - PedSector part_start; - PedSector part_end; - - raw_part = &table.partitions [i]; - - if (is_unused_partition(raw_part)) - continue; - - part_start = legacy_start (disk, raw_part); - part_end = legacy_end (disk, raw_part); - - part = ped_partition_new (disk, PED_PARTITION_NORMAL, - NULL, part_start, part_end); - if (!part) - goto error; - pc98_data = part->disk_specific; - PED_ASSERT (pc98_data != NULL); - - pc98_data->system = (raw_part->mid << 8) | raw_part->sid; - pc98_data->boot = GET_BIT(raw_part->mid, 7); - pc98_data->hidden = !GET_BIT(raw_part->sid, 7); - - ped_partition_set_name (part, raw_part->name); - - pc98_data->ipl_sector = chs_to_sector ( - disk->dev, - PED_LE16_TO_CPU(raw_part->ipl_cyl), - raw_part->ipl_head, - raw_part->ipl_sect); - - /* hack */ - if (pc98_data->ipl_sector == part->geom.start) - pc98_data->ipl_sector = 0; - - part->num = i + 1; - - if (!ped_disk_add_partition (disk, part, constraint_any)) - goto error; - - if (part->geom.start != part_start - || part->geom.end != part_end) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Partition %d isn't aligned to cylinder " - "boundaries. This is still unsupported."), - part->num); - goto error; - } - - part->fs_type = ped_file_system_probe (&part->geom); - } - - ped_constraint_destroy (constraint_any); - return 1; - -error: - ped_disk_delete_all (disk); - ped_constraint_destroy (constraint_any); - return 0; -} - -static int -pc98_read (PedDisk* disk) -{ - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - ped_disk_delete_all (disk); - return read_table (disk); -} - -#ifndef DISCOVER_ONLY -static int -fill_raw_part (PC98RawPartition* raw_part, const PedPartition* part) -{ - PC98PartitionData* pc98_data; - int c, h, s; - const char* name; - - PED_ASSERT (raw_part != NULL); - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - pc98_data = part->disk_specific; - raw_part->mid = (pc98_data->system >> 8) & 0xFF; - raw_part->sid = pc98_data->system & 0xFF; - - SET_BIT(raw_part->mid, 7, pc98_data->boot); - SET_BIT(raw_part->sid, 7, !pc98_data->hidden); - - memset (raw_part->name, ' ', sizeof(raw_part->name)); - name = ped_partition_get_name (part); - PED_ASSERT (name != NULL); - PED_ASSERT (strlen (name) <= 16); - if (!strlen (name) && part->fs_type) - name = part->fs_type->name; - memcpy (raw_part->name, name, strlen (name)); - - sector_to_chs (part->disk->dev, part->geom.start, &c, &h, &s); - raw_part->cyl = PED_CPU_TO_LE16(c); - raw_part->head = h; - raw_part->sector = s; - - if (pc98_data->ipl_sector) { - sector_to_chs (part->disk->dev, pc98_data->ipl_sector, - &c, &h, &s); - raw_part->ipl_cyl = PED_CPU_TO_LE16(c); - raw_part->ipl_head = h; - raw_part->ipl_sect = s; - } else { - raw_part->ipl_cyl = raw_part->cyl; - raw_part->ipl_head = raw_part->head; - raw_part->ipl_sect = raw_part->sector; - } - - sector_to_chs (part->disk->dev, part->geom.end, &c, &h, &s); - if (h != part->disk->dev->hw_geom.heads - 1 - || s != part->disk->dev->hw_geom.sectors - 1) { - ped_exception_throw ( - PED_EXCEPTION_NO_FEATURE, - PED_EXCEPTION_CANCEL, - _("Partition %d isn't aligned to cylinder " - "boundaries. This is still unsupported."), - part->num); - return 0; - } - raw_part->end_cyl = PED_CPU_TO_LE16(c); - raw_part->end_head = 0; - raw_part->end_sector = 0; - - return 1; -} - -static int -pc98_write (const PedDisk* disk) -{ - PedPartition* part; - int i; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - void *s0; - if (!ptt_read_sectors (disk->dev, 0, 2, &s0)) - return 0; - PC98RawTable *table = s0; - - if (!pc98_check_ipl_signature (table)) { - memset (table->boot_code, 0, sizeof(table->boot_code)); - memcpy (table->boot_code, MBR_BOOT_CODE, sizeof(MBR_BOOT_CODE)); - } - - memset (table->partitions, 0, sizeof (table->partitions)); - table->magic = PED_CPU_TO_LE16(PC9800_EXTFMT_MAGIC); - - for (i = 1; i <= MAX_PART_COUNT; i++) { - part = ped_disk_get_partition (disk, i); - if (!part) - continue; - - if (!fill_raw_part (&table->partitions [i - 1], part)) - return 0; - } - - int write_ok = ped_device_write (disk->dev, table, 0, 2); - free (s0); - if (!write_ok) - return 0; - return ped_device_sync (disk->dev); -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -pc98_partition_new ( - const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, PedSector start, PedSector end) -{ - PedPartition* part; - PC98PartitionData* pc98_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (ped_partition_is_active (part)) { - part->disk_specific - = pc98_data = ped_malloc (sizeof (PC98PartitionData)); - if (!pc98_data) - goto error_free_part; - pc98_data->ipl_sector = 0; - pc98_data->hidden = 0; - pc98_data->boot = 0; - strcpy (pc98_data->name, ""); - } else { - part->disk_specific = NULL; - } - return part; - -error_free_part: - free (part); -error: - return 0; -} - -static PedPartition* -pc98_partition_duplicate (const PedPartition* part) -{ - PedPartition* new_part; - PC98PartitionData* new_pc98_data; - PC98PartitionData* old_pc98_data; - - new_part = ped_partition_new (part->disk, part->type, - part->fs_type, part->geom.start, - part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - - old_pc98_data = (PC98PartitionData*) part->disk_specific; - new_pc98_data = (PC98PartitionData*) new_part->disk_specific; - - /* ugly, but C is ugly :p */ - memcpy (new_pc98_data, old_pc98_data, sizeof (PC98PartitionData)); - return new_part; -} - -static void -pc98_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) - free (part->disk_specific); - free (part); -} - -static int -pc98_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - PC98PartitionData* pc98_data = part->disk_specific; - - part->fs_type = fs_type; - - pc98_data->system = 0x2062; - if (fs_type) { - if (!strcmp (fs_type->name, "fat16")) { - if (part->geom.length * 512 >= 32 * 1024 * 1024) - pc98_data->system = 0x2021; - else - pc98_data->system = 0x2011; - } else if (!strcmp (fs_type->name, "fat32")) { - pc98_data->system = 0x2061; - } else if (!strcmp (fs_type->name, "ntfs")) { - pc98_data->system = 0x2031; - } else if (!strncmp (fs_type->name, "ufs", 3)) { - pc98_data->system = 0x2044; - } else { /* ext2, reiser, xfs, etc. */ - /* ext2 partitions must be marked boot */ - pc98_data->boot = 1; - pc98_data->system = 0xa062; - } - } - - if (pc98_data->boot) - pc98_data->system |= 0x8000; - if (!pc98_data->hidden) - pc98_data->system |= 0x0080; - return 1; -} - -static int -pc98_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - PC98PartitionData* pc98_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - pc98_data = part->disk_specific; - - switch (flag) { - case PED_PARTITION_HIDDEN: - pc98_data->hidden = state; - return ped_partition_set_system (part, part->fs_type); - - case PED_PARTITION_BOOT: - pc98_data->boot = state; - return ped_partition_set_system (part, part->fs_type); - - default: - return 0; - } -} - -static int _GL_ATTRIBUTE_PURE -pc98_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - PC98PartitionData* pc98_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - pc98_data = part->disk_specific; - switch (flag) { - case PED_PARTITION_HIDDEN: - return pc98_data->hidden; - - case PED_PARTITION_BOOT: - return pc98_data->boot; - - default: - return 0; - } -} - -static int -pc98_partition_is_flag_available ( - const PedPartition* part, PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_HIDDEN: - case PED_PARTITION_BOOT: - return 1; - - default: - return 0; - } -} - -static void -pc98_partition_set_name (PedPartition* part, const char* name) -{ - PC98PartitionData* pc98_data; - int i; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - pc98_data = part->disk_specific; - - strncpy (pc98_data->name, name, 16); - pc98_data->name [16] = 0; - for (i = strlen (pc98_data->name) - 1; pc98_data->name[i] == ' '; i--) - pc98_data->name [i] = 0; -} - -static const char* _GL_ATTRIBUTE_PURE -pc98_partition_get_name (const PedPartition* part) -{ - PC98PartitionData* pc98_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - pc98_data = part->disk_specific; - - return pc98_data->name; -} - -static PedAlignment* -pc98_get_partition_alignment(const PedDisk *disk) -{ - PedSector cylinder_size = - disk->dev->hw_geom.sectors * disk->dev->hw_geom.heads; - - return ped_alignment_new(0, cylinder_size); -} - -static PedConstraint* -_primary_constraint (PedDisk* disk) -{ - PedDevice* dev = disk->dev; - PedAlignment start_align; - PedAlignment end_align; - PedGeometry max_geom; - PedSector cylinder_size; - - cylinder_size = dev->hw_geom.sectors * dev->hw_geom.heads; - - if (!ped_alignment_init (&start_align, 0, cylinder_size)) - return NULL; - if (!ped_alignment_init (&end_align, -1, cylinder_size)) - return NULL; - if (!ped_geometry_init (&max_geom, dev, cylinder_size, - dev->length - cylinder_size)) - return NULL; - - return ped_constraint_new (&start_align, &end_align, &max_geom, - &max_geom, 1, dev->length); -} - -static int -pc98_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - - if (_ped_partition_attempt_align (part, constraint, - _primary_constraint (part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -next_primary (PedDisk* disk) -{ - int i; - for (i=1; i<=MAX_PART_COUNT; i++) { - if (!ped_disk_get_partition (disk, i)) - return i; - } - return 0; -} - -static int -pc98_partition_enumerate (PedPartition* part) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - - /* don't re-number a partition */ - if (part->num != -1) - return 1; - - PED_ASSERT (ped_partition_is_active (part)); - - part->num = next_primary (part->disk); - if (!part->num) { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Can't add another partition.")); - return 0; - } - - return 1; -} - -static int -pc98_alloc_metadata (PedDisk* disk) -{ - PedPartition* new_part; - PedConstraint* constraint_any = NULL; - PedSector cyl_size; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - constraint_any = ped_constraint_any (disk->dev); - - cyl_size = disk->dev->hw_geom.sectors * disk->dev->hw_geom.heads; - new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, - 0, cyl_size - 1); - if (!new_part) - goto error; - - if (!ped_disk_add_partition (disk, new_part, constraint_any)) { - ped_partition_destroy (new_part); - goto error; - } - - ped_constraint_destroy (constraint_any); - return 1; - -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -static int -pc98_get_max_primary_partition_count (const PedDisk* disk) -{ - return MAX_PART_COUNT; -} - -static bool -pc98_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = MAX_PART_COUNT; - return true; -} - -#include "pt-common.h" -PT_define_limit_functions (pc98) - -static PedDiskOps pc98_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (pc98_write), - - partition_set_name: pc98_partition_set_name, - partition_get_name: pc98_partition_get_name, - - get_partition_alignment: pc98_get_partition_alignment, - - PT_op_function_initializers (pc98) -}; - -static PedDiskType pc98_disk_type = { - next: NULL, - name: "pc98", - ops: &pc98_disk_ops, - features: PED_DISK_TYPE_PARTITION_NAME -}; - -void -ped_disk_pc98_init () -{ - PED_ASSERT (sizeof (PC98RawTable) == 512 * 2); - ped_disk_type_register (&pc98_disk_type); -} - -void -ped_disk_pc98_done () -{ - ped_disk_type_unregister (&pc98_disk_type); -} diff --git a/jni/parted/libparted/labels/pt-common.h b/jni/parted/libparted/labels/pt-common.h deleted file mode 100755 index 76f06e3..0000000 --- a/jni/parted/libparted/labels/pt-common.h +++ /dev/null @@ -1,55 +0,0 @@ -/* Factor some of the duplication out of *.c. */ - -#ifdef DISCOVER_ONLY -# define NULL_IF_DISCOVER_ONLY(val) NULL -#else -# define NULL_IF_DISCOVER_ONLY(val) val -#endif - -#define PT_define_limit_functions(PT_type) \ - \ -static bool \ -PT_type##_partition_check (const PedPartition *part) \ -{ \ - return ptt_partition_max_start_len (#PT_type, part); \ -} \ - \ -static PedSector \ -PT_type##_partition_max_start_sector (void) \ -{ \ - PedSector max; \ - int err = ptt_partition_max_start_sector (#PT_type, &max); \ - PED_ASSERT (err == 0); \ - return max; \ -} \ - \ -static PedSector \ -PT_type##_partition_max_length (void) \ -{ \ - PedSector max; \ - int err = ptt_partition_max_length (#PT_type, &max); \ - PED_ASSERT (err == 0); \ - return max; \ -} - -#define PT_op_function_initializers(PT_type) \ -probe: PT_type##_probe, \ -alloc: PT_type##_alloc, \ -duplicate: PT_type##_duplicate, \ -free: PT_type##_free, \ -read: PT_type##_read, \ -partition_new: PT_type##_partition_new, \ -partition_duplicate: PT_type##_partition_duplicate, \ -partition_set_flag: PT_type##_partition_set_flag, \ -partition_get_flag: PT_type##_partition_get_flag, \ -partition_set_system: PT_type##_partition_set_system, \ -partition_is_flag_available: PT_type##_partition_is_flag_available, \ -partition_align: PT_type##_partition_align, \ -partition_destroy: PT_type##_partition_destroy, \ -partition_enumerate: PT_type##_partition_enumerate, \ -alloc_metadata: PT_type##_alloc_metadata, \ -get_max_primary_partition_count: PT_type##_get_max_primary_partition_count, \ -get_max_supported_partition_count:PT_type##_get_max_supported_partition_count,\ -partition_check: PT_type##_partition_check, \ -max_length: PT_type##_partition_max_length, \ -max_start_sector: PT_type##_partition_max_start_sector diff --git a/jni/parted/libparted/labels/pt-limit.c b/jni/parted/libparted/labels/pt-limit.c deleted file mode 100755 index 20cfd42..0000000 --- a/jni/parted/libparted/labels/pt-limit.c +++ /dev/null @@ -1,163 +0,0 @@ -/* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: /data/data/com.termux/files/usr/bin/gperf -C -N pt_limit_lookup -n -t -s 6 -k '*' --language=ANSI-C pt-limit.gperf */ - -#include - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 1 "pt-limit.gperf" -struct partition_limit -{ - char const *name; - uint64_t max_start_sector; - uint64_t max_length; -}; - -#define TOTAL_KEYWORDS 11 -#define MIN_WORD_LENGTH 3 -#define MAX_WORD_LENGTH 5 -#define MIN_HASH_VALUE 5 -#define MAX_HASH_VALUE 55 -/* maximum key range = 51, duplicates = 0 */ - -#ifdef __GNUC__ -__inline -#else -#ifdef __cplusplus -inline -#endif -#endif -static unsigned int -hash (register const char *str, register size_t len) -{ - static const unsigned char asso_values[] = - { - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 10, 5, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 5, 40, 40, - 5, 56, 56, 5, 20, 0, 56, 56, 15, 0, - 15, 10, 0, 56, 0, 5, 0, 10, 15, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56 - }; - register unsigned int hval = 0; - - switch (len) - { - default: - hval += asso_values[(unsigned char)str[4]]; - /*FALLTHROUGH*/ - case 4: - hval += asso_values[(unsigned char)str[3]]; - /*FALLTHROUGH*/ - case 3: - hval += asso_values[(unsigned char)str[2]]; - /*FALLTHROUGH*/ - case 2: - hval += asso_values[(unsigned char)str[1]]; - /*FALLTHROUGH*/ - case 1: - hval += asso_values[(unsigned char)str[0]]; - break; - } - return hval; -} - -const struct partition_limit * -pt_limit_lookup (register const char *str, register size_t len) -{ - static const struct partition_limit wordlist[] = - { - {""}, {""}, {""}, {""}, {""}, -#line 10 "pt-limit.gperf" - {"gpt",UINT64_MAX,UINT64_MAX}, - {""}, {""}, {""}, {""}, -#line 28 "pt-limit.gperf" - {"atari",INT32_MAX,INT32_MAX}, - {""}, {""}, {""}, {""}, -#line 27 "pt-limit.gperf" - {"amiga",UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 8 "pt-limit.gperf" - {"dasd",UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 12 "pt-limit.gperf" - {"msdos",UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 18 "pt-limit.gperf" - {"sun",128ULL*UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 23 "pt-limit.gperf" - {"loop",UINT64_MAX,UINT64_MAX}, - {""}, {""}, {""}, {""}, -#line 9 "pt-limit.gperf" - {"dvh",UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 11 "pt-limit.gperf" - {"mac",UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 20 "pt-limit.gperf" - {"bsd",UINT32_MAX,UINT32_MAX}, - {""}, {""}, {""}, {""}, -#line 24 "pt-limit.gperf" - {"pc98",UINT32_MAX,UINT32_MAX} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register unsigned int key = hash (str, len); - - if (key <= MAX_HASH_VALUE) - { - register const char *s = wordlist[key].name; - - if (*str == *s && !strcmp (str + 1, s + 1)) - return &wordlist[key]; - } - } - return 0; -} diff --git a/jni/parted/libparted/labels/pt-tools.c b/jni/parted/libparted/labels/pt-tools.c deleted file mode 100755 index add4c45..0000000 --- a/jni/parted/libparted/labels/pt-tools.c +++ /dev/null @@ -1,186 +0,0 @@ -/* partition table tools - Copyright (C) 2008-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include - -#include -#include - -#include -#include - -#include "pt-tools.h" - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static char zero[16 * 1024]; - -/* Write a single sector to DISK, filling the first BUFLEN - bytes of that sector with data from BUF, and NUL-filling - any remaining bytes. Return nonzero to indicate success, - zero otherwise. */ -int -ptt_write_sector (PedDisk const *disk, void const *buf, size_t buflen) -{ - PED_ASSERT (buflen <= disk->dev->sector_size); - /* Allocate a big enough buffer for ped_device_write. */ - char *s0 = ped_malloc (disk->dev->sector_size); - if (s0 == NULL) - return 0; - /* Copy boot_code into the first part. */ - memcpy (s0, buf, buflen); - char *p = s0 + buflen; - /* Fill the rest with zeros. */ - memset (p, 0, disk->dev->sector_size - buflen); - int write_ok = ped_device_write (disk->dev, s0, 0, 1); - free (s0); - - return write_ok; -} - -/* Read N sectors, starting with sector SECTOR_NUM (which has length - DEV->sector_size) into malloc'd storage. If the read fails, free - the memory and return zero without modifying *BUF. Otherwise, set - *BUF to the new buffer and return 1. */ -int -ptt_read_sectors (PedDevice const *dev, PedSector start_sector, - PedSector n_sectors, void **buf) -{ - char *b = ped_malloc (n_sectors * dev->sector_size); - PED_ASSERT (b != NULL); - if (!ped_device_read (dev, b, start_sector, n_sectors)) { - free (b); - return 0; - } - *buf = b; - return 1; -} - -/* Read sector, SECTOR_NUM (which has length DEV->sector_size) into malloc'd - storage. If the read fails, free the memory and return zero without - modifying *BUF. Otherwise, set *BUF to the new buffer and return 1. */ -int -ptt_read_sector (PedDevice const *dev, PedSector sector_num, void **buf) -{ - return ptt_read_sectors (dev, sector_num, 1, buf); -} - -/* Zero N sectors of DEV, starting with START. - Return nonzero to indicate success, zero otherwise. */ -int -ptt_clear_sectors (PedDevice *dev, PedSector start, PedSector n) -{ - PED_ASSERT (dev->sector_size <= sizeof zero); - PedSector n_z_sectors = sizeof zero / dev->sector_size; - PedSector n_full = n / n_z_sectors; - PedSector i; - for (i = 0; i < n_full; i++) - { - if (!ped_device_write (dev, zero, start + n_z_sectors * i, n_z_sectors)) - return 0; - } - - PedSector rem = n - n_z_sectors * i; - return (rem == 0 - ? 1 : ped_device_write (dev, zero, start + n_z_sectors * i, rem)); -} - -/* Zero N sectors of GEOM->dev, starting with GEOM->start + START. - Return nonzero to indicate success, zero otherwise. */ -int -ptt_geom_clear_sectors (PedGeometry *geom, PedSector start, PedSector n) -{ - return ptt_clear_sectors (geom->dev, geom->start + start, n); -} - -#define pt_limit_lookup _GL_ATTRIBUTE_PURE __pt_limit_lookup -#include "pt-limit.c" - -/* Throw an exception and return 0 if PART's starting sector number or - its length is greater than the maximum allowed value for LABEL_TYPE. - Otherwise, return 1. */ -int -ptt_partition_max_start_len (char const *pt_type, const PedPartition *part) -{ - struct partition_limit const *pt_lim - = __pt_limit_lookup (pt_type, strlen (pt_type)); - - /* If we don't have info on the type, return "true". */ - if (pt_lim == NULL) - return 1; - - /* If the length in sectors exceeds the limit, you lose. */ - if (part->geom.length > pt_lim->max_length) - { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("partition length of %jd sectors exceeds" - " the %s-partition-table-imposed maximum" - " of %jd"), - part->geom.length, - pt_type, - pt_lim->max_length); - return 0; - } - - /* If the starting sector exceeds the limit, you lose. */ - if (part->geom.start > pt_lim->max_start_sector) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("starting sector number, %jd exceeds" - " the %s-partition-table-imposed maximum" - " of %jd"), - part->geom.start, - pt_type, - pt_lim->max_start_sector); - return 0; - } - - return 1; -} - -/* Set *MAX to the largest representation-imposed starting sector number - of a partition of type PT_TYPE and return 0. If PT_TYPE is not - recognized, return -1. */ -int -ptt_partition_max_start_sector (char const *pt_type, PedSector *max) -{ - struct partition_limit const *pt_lim - = __pt_limit_lookup (pt_type, strlen (pt_type)); - if (pt_lim == NULL) - return -1; - - *max = pt_lim->max_start_sector; - return 0; -} - -/* Set *MAX to the maximum representable length of a partition of type - PT_TYPE and return 0. If PT_TYPE is not recognized, return -1. */ -int -ptt_partition_max_length (char const *pt_type, PedSector *max) -{ - struct partition_limit const *pt_lim - = __pt_limit_lookup (pt_type, strlen (pt_type)); - if (pt_lim == NULL) - return -1; - - *max = pt_lim->max_length; - return 0; -} diff --git a/jni/parted/libparted/labels/pt-tools.h b/jni/parted/libparted/labels/pt-tools.h deleted file mode 100755 index 34562f7..0000000 --- a/jni/parted/libparted/labels/pt-tools.h +++ /dev/null @@ -1,31 +0,0 @@ -/* libparted - a library for manipulating disk partitions - Copyright (C) 2008-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . */ - -#include -#include - -int ptt_write_sector (PedDisk const *disk, void const *buf, size_t buflen); -int ptt_read_sector (PedDevice const *dev, PedSector sector_num, void **buf); -int ptt_read_sectors (PedDevice const *dev, PedSector start_sector, - PedSector n_sectors, void **buf); -int ptt_clear_sectors (PedDevice *dev, PedSector start, PedSector count); -int ptt_geom_clear_sectors (PedGeometry *geom, PedSector start, - PedSector count); -int ptt_partition_max_start_len (char const *label_type, - const PedPartition *part); - -int ptt_partition_max_start_sector (char const *pt_type, PedSector *max); -int ptt_partition_max_length (char const *pt_type, PedSector *max); diff --git a/jni/parted/libparted/labels/rdb.c b/jni/parted/libparted/labels/rdb.c deleted file mode 100755 index 499d385..0000000 --- a/jni/parted/libparted/labels/rdb.c +++ /dev/null @@ -1,1167 +0,0 @@ -/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - - libparted - a library for manipulating disk partitions - disk_amiga.c - libparted module to manipulate amiga RDB partition tables. - Copyright (C) 2000-2001, 2004, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . - - Contributor: Sven Luther -*/ - -#include - -#include -#include -#include - -#include "pt-tools.h" - -#ifndef MAX -# define MAX(a,b) ((a) < (b) ? (b) : (a)) -#endif - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "misc.h" - -/* String manipulation */ -static void _amiga_set_bstr (const char *cstr, char *bstr, int maxsize) { - int size = strlen (cstr); - int i; - - if (size >= maxsize) return; - bstr[0] = size; - for (i = 0; i"; - default : - return ""; - } -} - -struct AmigaIds { - uint32_t ID; - struct AmigaIds *next; -}; - -static struct AmigaIds * -_amiga_add_id (uint32_t id, struct AmigaIds *ids) { - struct AmigaIds *newid; - - if ((newid=ped_malloc(sizeof (struct AmigaIds)))==NULL) - return 0; - newid->ID = id; - newid->next = ids; - return newid; -} - -static void -_amiga_free_ids (struct AmigaIds *ids) { - struct AmigaIds *current, *next; - - for (current = ids; current != NULL; current = next) { - next = current->next; - free (current); - } -} -static int _GL_ATTRIBUTE_PURE -_amiga_id_in_list (uint32_t id, struct AmigaIds *ids) { - struct AmigaIds *current; - - for (current = ids; current != NULL; current = current->next) { - if (id == current->ID) - return 1; - } - return 0; -} - -struct AmigaBlock { - uint32_t amiga_ID; /* Identifier 32 bit word */ - uint32_t amiga_SummedLongss; /* Size of the structure for checksums */ - int32_t amiga_ChkSum; /* Checksum of the structure */ -}; -#define AMIGA(pos) ((struct AmigaBlock *)(pos)) - -static int -_amiga_checksum (struct AmigaBlock *blk) { - uint32_t *rdb = (uint32_t *) blk; - uint32_t sum; - int i, end; - - sum = PED_BE32_TO_CPU (rdb[0]); - end = PED_BE32_TO_CPU (rdb[1]); - - if (end > PED_SECTOR_SIZE_DEFAULT) end = PED_SECTOR_SIZE_DEFAULT; - - for (i = 1; i < end; i++) sum += PED_BE32_TO_CPU (rdb[i]); - - return sum; -} - -static void -_amiga_calculate_checksum (struct AmigaBlock *blk) { - blk->amiga_ChkSum = PED_CPU_TO_BE32( - PED_BE32_TO_CPU(blk->amiga_ChkSum) - - _amiga_checksum((struct AmigaBlock *) blk)); - return; -} - -static struct AmigaBlock * -_amiga_read_block (const PedDevice *dev, struct AmigaBlock *blk, - PedSector block, struct AmigaIds *ids) -{ - if (!ped_device_read (dev, blk, block, 1)) - return NULL; - if (ids && !_amiga_id_in_list(PED_BE32_TO_CPU(blk->amiga_ID), ids)) - return NULL; - if (_amiga_checksum (blk) != 0) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE | PED_EXCEPTION_CANCEL, - _("%s : Bad checksum on block %llu of type %s."), - __func__, block, _amiga_block_id(PED_BE32_TO_CPU(blk->amiga_ID)))) - { - case PED_EXCEPTION_CANCEL : - return NULL; - case PED_EXCEPTION_FIX : - _amiga_calculate_checksum(AMIGA(blk)); - if (!ped_device_write ((PedDevice*)dev, blk, block, 1)) - return NULL; - /* FALLTHROUGH */ - case PED_EXCEPTION_IGNORE : - case PED_EXCEPTION_UNHANDLED : - default : - return blk; - } - } - return blk; -} - -struct RigidDiskBlock { - uint32_t rdb_ID; /* Identifier 32 bit word : 'RDSK' */ - uint32_t rdb_SummedLongs; /* Size of the structure for checksums */ - int32_t rdb_ChkSum; /* Checksum of the structure */ - uint32_t rdb_HostID; /* SCSI Target ID of host, not really used */ - uint32_t rdb_BlockBytes; /* Size of disk blocks */ - uint32_t rdb_Flags; /* RDB Flags */ - /* block list heads */ - uint32_t rdb_BadBlockList; /* Bad block list */ - uint32_t rdb_PartitionList; /* Partition list */ - uint32_t rdb_FileSysHeaderList; /* File system header list */ - uint32_t rdb_DriveInit; /* Drive specific init code */ - uint32_t rdb_BootBlockList; /* Amiga OS 4 Boot Blocks */ - uint32_t rdb_Reserved1[5]; /* Unused word, need to be set to $ffffffff */ - /* physical drive characteristics */ - uint32_t rdb_Cylinders; /* Number of the cylinders of the drive */ - uint32_t rdb_Sectors; /* Number of sectors of the drive */ - uint32_t rdb_Heads; /* Number of heads of the drive */ - uint32_t rdb_Interleave; /* Interleave */ - uint32_t rdb_Park; /* Head parking cylinder */ - uint32_t rdb_Reserved2[3]; /* Unused word, need to be set to $ffffffff */ - uint32_t rdb_WritePreComp; /* Starting cylinder of write precompensation */ - uint32_t rdb_ReducedWrite; /* Starting cylinder of reduced write current */ - uint32_t rdb_StepRate; /* Step rate of the drive */ - uint32_t rdb_Reserved3[5]; /* Unused word, need to be set to $ffffffff */ - /* logical drive characteristics */ - uint32_t rdb_RDBBlocksLo; /* low block of range reserved for hardblocks */ - uint32_t rdb_RDBBlocksHi; /* high block of range for these hardblocks */ - uint32_t rdb_LoCylinder; /* low cylinder of partitionable disk area */ - uint32_t rdb_HiCylinder; /* high cylinder of partitionable data area */ - uint32_t rdb_CylBlocks; /* number of blocks available per cylinder */ - uint32_t rdb_AutoParkSeconds; /* zero for no auto park */ - uint32_t rdb_HighRDSKBlock; /* highest block used by RDSK */ - /* (not including replacement bad blocks) */ - uint32_t rdb_Reserved4; - /* drive identification */ - char rdb_DiskVendor[8]; - char rdb_DiskProduct[16]; - char rdb_DiskRevision[4]; - char rdb_ControllerVendor[8]; - char rdb_ControllerProduct[16]; - char rdb_ControllerRevision[4]; - uint32_t rdb_Reserved5[10]; -}; - -#define RDSK(pos) ((struct RigidDiskBlock *)(pos)) - -#define AMIGA_RDB_NOT_FOUND ((uint32_t)0xffffffff) -#define RDB_LOCATION_LIMIT 16 -#define AMIGA_MAX_PARTITIONS 128 -#define MAX_RDB_BLOCK (RDB_LOCATION_LIMIT + 2 * AMIGA_MAX_PARTITIONS + 2) - -static uint32_t -_amiga_find_rdb (const PedDevice *dev, struct RigidDiskBlock *rdb) { - int i; - struct AmigaIds *ids; - - ids = _amiga_add_id (IDNAME_RIGIDDISK, NULL); - - for (i = 0; irdb_ID) == IDNAME_RIGIDDISK) { - _amiga_free_ids (ids); - return i; - } - } - _amiga_free_ids (ids); - return AMIGA_RDB_NOT_FOUND; -} - -struct PartitionBlock { - uint32_t pb_ID; /* Identifier 32 bit word : 'PART' */ - uint32_t pb_SummedLongs; /* Size of the structure for checksums */ - int32_t pb_ChkSum; /* Checksum of the structure */ - uint32_t pb_HostID; /* SCSI Target ID of host, not really used */ - uint32_t pb_Next; /* Block number of the next PartitionBlock */ - uint32_t pb_Flags; /* Part Flags (NOMOUNT and BOOTABLE) */ - uint32_t pb_Reserved1[2]; - uint32_t pb_DevFlags; /* Preferred flags for OpenDevice */ - char pb_DriveName[32]; /* Preferred DOS device name: BSTR form */ - uint32_t pb_Reserved2[15]; - uint32_t de_TableSize; /* Size of Environment vector */ - /* Size of the blocks in 32 bit words, usually 128 */ - uint32_t de_SizeBlock; - uint32_t de_SecOrg; /* Not used; must be 0 */ - uint32_t de_Surfaces; /* Number of heads (surfaces) */ - /* Disk sectors per block, used with SizeBlock, usually 1 */ - uint32_t de_SectorPerBlock; - uint32_t de_BlocksPerTrack; /* Blocks per track. drive specific */ - uint32_t de_Reserved; /* DOS reserved blocks at start of partition. */ - uint32_t de_PreAlloc; /* DOS reserved blocks at end of partition */ - uint32_t de_Interleave; /* Not used, usually 0 */ - uint32_t de_LowCyl; /* First cylinder of the partition */ - uint32_t de_HighCyl; /* Last cylinder of the partition */ - uint32_t de_NumBuffers; /* Initial # DOS of buffers. */ - uint32_t de_BufMemType; /* Type of mem to allocate for buffers */ - uint32_t de_MaxTransfer; /* Max number of bytes to transfer at a time */ - uint32_t de_Mask; /* Address Mask to block out certain memory */ - int32_t de_BootPri; /* Boot priority for autoboot */ - uint32_t de_DosType; /* Dostype of the file system */ - uint32_t de_Baud; /* Baud rate for serial handler */ - uint32_t de_Control; /* Control word for handler/filesystem */ - uint32_t de_BootBlocks; /* Number of blocks containing boot code */ - uint32_t pb_EReserved[12]; -}; - -#define PART(pos) ((struct PartitionBlock *)(pos)) - -#define PBFB_BOOTABLE 0 /* this partition is intended to be bootable */ -#define PBFF_BOOTABLE 1L /* (expected directories and files exist) */ -#define PBFB_NOMOUNT 1 /* do not mount this partition (e.g. manually */ -#define PBFF_NOMOUNT 2L /* mounted, but space reserved here) */ -#define PBFB_RAID 2 /* this partition is intended to be part of */ -#define PBFF_RAID 4L /* a RAID array */ -#define PBFB_LVM 3 /* this partition is intended to be part of */ -#define PBFF_LVM 8L /* a LVM volume group */ - - -struct LinkedBlock { - uint32_t lk_ID; /* Identifier 32 bit word */ - uint32_t lk_SummedLongs; /* Size of the structure for checksums */ - int32_t lk_ChkSum; /* Checksum of the structure */ - uint32_t pb_HostID; /* SCSI Target ID of host, not really used */ - uint32_t lk_Next; /* Block number of the next PartitionBlock */ -}; -struct Linked2Block { - uint32_t lk2_ID; /* Identifier 32 bit word */ - uint32_t lk2_SummedLongs; /* Size of the structure for checksums */ - int32_t lk2_ChkSum; /* Checksum of the structure */ - uint32_t lk2_HostID; /* SCSI Target ID of host, not really used */ - uint32_t lk2_Next; /* Block number of the next PartitionBlock */ - uint32_t lk2_Reverved[13]; - uint32_t lk2_Linked; /* Secondary linked list */ -}; -#define LINK_END (uint32_t)0xffffffff -#define LNK(pos) ((struct LinkedBlock *)(pos)) -#define LNK2(pos) ((struct Linked2Block *)(pos)) - - -static PedDiskType amiga_disk_type; - -static int -amiga_probe (const PedDevice *dev) -{ - struct RigidDiskBlock *rdb; - uint32_t found; - PED_ASSERT(dev != NULL); - - if ((rdb=RDSK(ped_malloc(dev->sector_size)))==NULL) - return 0; - found = _amiga_find_rdb (dev, rdb); - free (rdb); - - return (found == AMIGA_RDB_NOT_FOUND ? 0 : 1); -} - -static PedDisk* -amiga_alloc (const PedDevice* dev) -{ - PedDisk *disk; - struct RigidDiskBlock *rdb; - PedSector cyl_size; - int highest_cylinder, highest_block; - - PED_ASSERT(dev != NULL); - cyl_size = dev->hw_geom.sectors * dev->hw_geom.heads; - - if (!(disk = _ped_disk_alloc (dev, &amiga_disk_type))) - return NULL; - - if (!(disk->disk_specific = ped_malloc (disk->dev->sector_size))) { - free (disk); - return NULL; - } - rdb = disk->disk_specific; - - /* Upon failed assertion this does leak. That's fine, because - if the assertion fails, you have bigger problems than this leak. */ - PED_ASSERT(sizeof(*rdb) <= disk->dev->sector_size); - - memset(rdb, 0, disk->dev->sector_size); - - rdb->rdb_ID = PED_CPU_TO_BE32 (IDNAME_RIGIDDISK); - rdb->rdb_SummedLongs = PED_CPU_TO_BE32 (64); - rdb->rdb_HostID = PED_CPU_TO_BE32 (0); - rdb->rdb_BlockBytes = PED_CPU_TO_BE32 (disk->dev->sector_size); - rdb->rdb_Flags = PED_CPU_TO_BE32 (0); - - /* Block lists */ - rdb->rdb_BadBlockList = PED_CPU_TO_BE32 (LINK_END); - rdb->rdb_PartitionList = PED_CPU_TO_BE32 (LINK_END); - rdb->rdb_FileSysHeaderList = PED_CPU_TO_BE32 (LINK_END); - rdb->rdb_DriveInit = PED_CPU_TO_BE32 (LINK_END); - rdb->rdb_BootBlockList = PED_CPU_TO_BE32 (LINK_END); - - /* Physical drive characteristics */ - rdb->rdb_Cylinders = PED_CPU_TO_BE32 (dev->hw_geom.cylinders); - rdb->rdb_Sectors = PED_CPU_TO_BE32 (dev->hw_geom.sectors); - rdb->rdb_Heads = PED_CPU_TO_BE32 (dev->hw_geom.heads); - rdb->rdb_Interleave = PED_CPU_TO_BE32 (0); - rdb->rdb_Park = PED_CPU_TO_BE32 (dev->hw_geom.cylinders); - rdb->rdb_WritePreComp = PED_CPU_TO_BE32 (dev->hw_geom.cylinders); - rdb->rdb_ReducedWrite = PED_CPU_TO_BE32 (dev->hw_geom.cylinders); - rdb->rdb_StepRate = PED_CPU_TO_BE32 (0); - - highest_cylinder = 1 + MAX_RDB_BLOCK / cyl_size; - highest_block = highest_cylinder * cyl_size - 1; - - /* Logical driver characteristics */ - rdb->rdb_RDBBlocksLo = PED_CPU_TO_BE32 (0); - rdb->rdb_RDBBlocksHi = PED_CPU_TO_BE32 (highest_block); - rdb->rdb_LoCylinder = PED_CPU_TO_BE32 (highest_cylinder); - rdb->rdb_HiCylinder = PED_CPU_TO_BE32 (dev->hw_geom.cylinders -1); - rdb->rdb_CylBlocks = PED_CPU_TO_BE32 (cyl_size); - rdb->rdb_AutoParkSeconds = PED_CPU_TO_BE32 (0); - /* rdb_HighRDSKBlock will only be set when writing */ - rdb->rdb_HighRDSKBlock = PED_CPU_TO_BE32 (0); - - /* Driver identification */ - _amiga_set_bstr("", rdb->rdb_DiskVendor, 8); - _amiga_set_bstr(dev->model, rdb->rdb_DiskProduct, 16); - _amiga_set_bstr("", rdb->rdb_DiskRevision, 4); - _amiga_set_bstr("", rdb->rdb_ControllerVendor, 8); - _amiga_set_bstr("", rdb->rdb_ControllerProduct, 16); - _amiga_set_bstr("", rdb->rdb_ControllerRevision, 4); - - /* And calculate the checksum */ - _amiga_calculate_checksum ((struct AmigaBlock *) rdb); - - return disk; -} - -static PedDisk* -amiga_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - struct RigidDiskBlock * new_rdb; - struct RigidDiskBlock * old_rdb; - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev != NULL); - PED_ASSERT(disk->disk_specific != NULL); - - old_rdb = (struct RigidDiskBlock *) disk->disk_specific; - - if (!(new_disk = ped_disk_new_fresh (disk->dev, &amiga_disk_type))) - return NULL; - - new_rdb = (struct RigidDiskBlock *) new_disk->disk_specific; - memcpy (new_rdb, old_rdb, 256); - return new_disk; -} - -static void -amiga_free (PedDisk* disk) -{ - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->disk_specific != NULL); - - free (disk->disk_specific); - _ped_disk_free (disk); -} - -static int -_amiga_loop_check (uint32_t block, uint32_t * blocklist, uint32_t max) -{ - uint32_t i; - - for (i = 0; i < max; i++) - if (block == blocklist[i]) { - /* We are looping, let's stop. */ - return 1; - } - blocklist[max] = block; - return 0; -} - -/* We have already allocated a rdb, we are now reading it from the disk */ -static int -amiga_read (PedDisk* disk) -{ - struct RigidDiskBlock *rdb; - struct PartitionBlock *partition; - uint32_t partblock; - uint32_t partlist[AMIGA_MAX_PARTITIONS]; - PedSector cylblocks; - int i; - - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev != NULL); - PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0); - PED_ASSERT(disk->disk_specific != NULL); - rdb = RDSK(disk->disk_specific); - - if (_amiga_find_rdb (disk->dev, rdb) == AMIGA_RDB_NOT_FOUND) { - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s : Didn't find rdb block, should never happen."), __func__); - return 0; - } - - /* Let's copy the rdb read geometry to the dev */ - /* FIXME: should this go into disk->dev->bios_geom instead? */ - disk->dev->hw_geom.cylinders = PED_BE32_TO_CPU (rdb->rdb_Cylinders); - disk->dev->hw_geom.heads = PED_BE32_TO_CPU (rdb->rdb_Heads); - disk->dev->hw_geom.sectors = PED_BE32_TO_CPU (rdb->rdb_Sectors); - cylblocks = (PedSector) PED_BE32_TO_CPU (rdb->rdb_Heads) * - (PedSector) PED_BE32_TO_CPU (rdb->rdb_Sectors); - - /* Remove all partitions in the former in memory table */ - ped_disk_delete_all (disk); - - /* Let's allocate a partition block */ - if (!(partition = ped_malloc (disk->dev->sector_size))) - return 0; - - /* We initialize the hardblock free list to detect loops */ - for (i = 0; i < AMIGA_MAX_PARTITIONS; i++) partlist[i] = LINK_END; - - for (i = 1, partblock = PED_BE32_TO_CPU(rdb->rdb_PartitionList); - i < AMIGA_MAX_PARTITIONS && partblock != LINK_END; - i++, partblock = PED_BE32_TO_CPU(partition->pb_Next)) - { - PedPartition *part; - PedSector start, end; - - /* Let's look for loops in the partition table */ - if (_amiga_loop_check(partblock, partlist, i)) { - break; - } - - /* Let's allocate and read a partition block to get its geometry*/ - if (!_amiga_read_block (disk->dev, AMIGA(partition), - (PedSector)partblock, NULL)) { - free(partition); - return 0; - } - - start = ((PedSector) PED_BE32_TO_CPU (partition->de_LowCyl)) - * cylblocks; - end = (((PedSector) PED_BE32_TO_CPU (partition->de_HighCyl)) - + 1) * cylblocks - 1; - - /* We can now construct a new partition */ - if (!(part = ped_partition_new (disk, PED_PARTITION_NORMAL, - NULL, start, end))) { - free(partition); - return 0; - } - /* And copy over the partition block */ - memcpy(part->disk_specific, partition, 256); - - part->num = i; - part->type = 0; - /* Let's probe what file system is present on the disk */ - part->fs_type = ped_file_system_probe (&part->geom); - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - if (constraint_exact == NULL) - return 0; - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) { - ped_partition_destroy(part); - free(partition); - return 0; - } - } - free(partition); - return 1; -} - -static int -_amiga_find_free_blocks(const PedDisk *disk, uint32_t *table, - struct LinkedBlock *block, uint32_t first, uint32_t type) -{ - PedSector next; - - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev != NULL); - - for (next = first; next != LINK_END; next = PED_BE32_TO_CPU(block->lk_Next)) { - if (table[next] != IDNAME_FREE) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_FIX | PED_EXCEPTION_IGNORE | PED_EXCEPTION_CANCEL, - _("%s : Loop detected at block %d."), __func__, next)) - { - case PED_EXCEPTION_CANCEL : - return 0; - case PED_EXCEPTION_FIX : - /* TODO : Need to add fixing code */ - case PED_EXCEPTION_IGNORE : - case PED_EXCEPTION_UNHANDLED : - default : - return 1; - } - } - - if (!_amiga_read_block (disk->dev, AMIGA(block), next, NULL)) { - return 0; - } - if (PED_BE32_TO_CPU(block->lk_ID) != type) { - switch (ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : The %s list seems bad at block %s."), - __func__, _amiga_block_id(PED_BE32_TO_CPU(block->lk_ID)), next)) - { - /* TODO : to more subtile things here */ - case PED_EXCEPTION_CANCEL : - case PED_EXCEPTION_UNHANDLED : - default : - return 0; - } - } - table[next] = type; - if (PED_BE32_TO_CPU(block->lk_ID) == IDNAME_FILESYSHEADER) { - if (_amiga_find_free_blocks(disk, table, block, - PED_BE32_TO_CPU(LNK2(block)->lk2_Linked), - IDNAME_LOADSEG) == 0) return 0; - } - } - return 1; -} -static uint32_t _GL_ATTRIBUTE_PURE -_amiga_next_free_block(uint32_t *table, uint32_t start, uint32_t type) { - int i; - - for (i = start; table[i] != type && table[i] != IDNAME_FREE; i++); - return i; -} -static PedPartition * _GL_ATTRIBUTE_PURE -_amiga_next_real_partition(const PedDisk *disk, PedPartition *part) { - PedPartition *next; - - for (next = ped_disk_next_partition (disk, part); - next != NULL && !ped_partition_is_active (next); - next = ped_disk_next_partition (disk, next)); - return next; -} -#ifndef DISCOVER_ONLY -static int -amiga_write (const PedDisk* disk) -{ - struct RigidDiskBlock *rdb; - struct LinkedBlock *block; - struct PartitionBlock *partition; - PedPartition *part, *next_part; - PedSector cylblocks, first_hb, last_hb; - uint32_t * table; - uint32_t i; - uint32_t rdb_num, part_num, block_num, next_num; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (disk->disk_specific != NULL); - - if (!(rdb = ped_malloc (disk->dev->sector_size))) - return 0; - - /* Let's read the rdb */ - if ((rdb_num = _amiga_find_rdb (disk->dev, rdb)) == AMIGA_RDB_NOT_FOUND) { - rdb_num = 2; - size_t pb_size = sizeof (struct PartitionBlock); - /* Initialize only the part that won't be copied over - with a partition block in amiga_read. */ - memset ((char *)(RDSK(disk->disk_specific)) + pb_size, - 0, PED_SECTOR_SIZE_DEFAULT - pb_size); - } else { - memcpy (RDSK(disk->disk_specific), rdb, disk->dev->sector_size); - } - free (rdb); - rdb = RDSK(disk->disk_specific); - - cylblocks = (PedSector) PED_BE32_TO_CPU (rdb->rdb_Heads) * - (PedSector) PED_BE32_TO_CPU (rdb->rdb_Sectors); - first_hb = (PedSector) PED_BE32_TO_CPU (rdb->rdb_RDBBlocksLo); - last_hb = (PedSector) PED_BE32_TO_CPU (rdb->rdb_RDBBlocksHi); - - /* Allocate a free block table and initialize it. - There must be room for at least RDB_NUM + 2 entries, since - the first RDB_NUM+1 entries get IDNAME_RIGIDDISK, and the - following one must have LINK_END to serve as sentinel. */ - size_t tab_size = 2 + MAX (last_hb - first_hb, rdb_num); - if (!(table = ped_malloc (tab_size * sizeof *table))) - return 0; - - for (i = 0; i <= rdb_num; i++) - table[i] = IDNAME_RIGIDDISK; - for ( ; i < tab_size; i++) - table[i] = LINK_END; - - /* Let's allocate a partition block */ - if (!(block = ped_malloc (disk->dev->sector_size))) { - free (table); - return 0; - } - - /* And fill the free block table */ - if (_amiga_find_free_blocks(disk, table, block, - PED_BE32_TO_CPU (rdb->rdb_BadBlockList), IDNAME_BADBLOCK) == 0) - { - ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Failed to list bad blocks."), __func__); - goto error_free_table; - } - if (_amiga_find_free_blocks(disk, table, block, - PED_BE32_TO_CPU (rdb->rdb_PartitionList), IDNAME_PARTITION) == 0) - { - ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Failed to list partition blocks."), __func__); - goto error_free_table; - } - if (_amiga_find_free_blocks(disk, table, block, - PED_BE32_TO_CPU (rdb->rdb_FileSysHeaderList), IDNAME_FILESYSHEADER) == 0) - { - ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Failed to list file system blocks."), __func__); - goto error_free_table; - } - if (_amiga_find_free_blocks(disk, table, block, - PED_BE32_TO_CPU (rdb->rdb_BootBlockList), IDNAME_BOOT) == 0) - { - ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("%s : Failed to list boot blocks."), __func__); - goto error_free_table; - } - - block_num = part_num = _amiga_next_free_block(table, rdb_num+1, - IDNAME_PARTITION); - part = _amiga_next_real_partition(disk, NULL); - rdb->rdb_PartitionList = PED_CPU_TO_BE32(part ? part_num : LINK_END); - for (; part != NULL; part = next_part, block_num = next_num) { - PED_ASSERT(part->disk_specific != NULL); - PED_ASSERT(part->geom.start % cylblocks == 0); - PED_ASSERT((part->geom.end + 1) % cylblocks == 0); - - next_part = _amiga_next_real_partition(disk, part); - next_num = _amiga_next_free_block(table, block_num+1, IDNAME_PARTITION); - - partition = PART(part->disk_specific); - if (next_part == NULL) - partition->pb_Next = PED_CPU_TO_BE32(LINK_END); - else - partition->pb_Next = PED_CPU_TO_BE32(next_num); - partition->de_LowCyl = PED_CPU_TO_BE32(part->geom.start/cylblocks); - partition->de_HighCyl = PED_CPU_TO_BE32((part->geom.end+1)/cylblocks-1); - _amiga_calculate_checksum(AMIGA(partition)); - if (!ped_device_write (disk->dev, (void*) partition, block_num, 1)) { - ped_exception_throw(PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Failed to write partition block at %d."), - block_num); - goto error_free_table; - /* WARNING : If we fail here, we stop everything, - * and the partition table is lost. A better - * solution should be found, using the second - * half of the hardblocks to not overwrite the - * old partition table. It becomes problematic - * if we use more than half of the hardblocks. */ - } - } - - if (block_num > PED_BE32_TO_CPU (rdb->rdb_HighRDSKBlock)) - rdb->rdb_HighRDSKBlock = PED_CPU_TO_BE32(block_num); - - _amiga_calculate_checksum(AMIGA(rdb)); - if (!ped_device_write (disk->dev, (void*) disk->disk_specific, rdb_num, 1)) - goto error_free_table; - - free (table); - free (block); - return ped_device_sync (disk->dev); - -error_free_table: - free (table); - free (block); - return 0; -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -amiga_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition *part; - PedDevice *dev; - PedSector cyl; - struct PartitionBlock *partition; - struct RigidDiskBlock *rdb; - - PED_ASSERT(disk != NULL); - PED_ASSERT(disk->dev != NULL); - PED_ASSERT(disk->disk_specific != NULL); - dev = disk->dev; - cyl = (PedSector) (dev->hw_geom.sectors * dev->hw_geom.heads); - rdb = RDSK(disk->disk_specific); - - if (!(part = _ped_partition_alloc (disk, part_type, fs_type, start, end))) - return NULL; - - if (ped_partition_is_active (part)) { - if (!(part->disk_specific = ped_malloc (disk->dev->sector_size))) { - free (part); - return NULL; - } - partition = PART(part->disk_specific); - memset(partition, 0, sizeof(struct PartitionBlock)); - - partition->pb_ID = PED_CPU_TO_BE32(IDNAME_PARTITION); - partition->pb_SummedLongs = PED_CPU_TO_BE32(64); - partition->pb_HostID = rdb->rdb_HostID; - partition->pb_Flags = PED_CPU_TO_BE32(0); - /* TODO : use a scheme including the device name and the - * partition number, if it is possible */ - _amiga_set_bstr("dhx", partition->pb_DriveName, 32); - - partition->de_TableSize = PED_CPU_TO_BE32(19); - partition->de_SizeBlock = PED_CPU_TO_BE32(128); - partition->de_SecOrg = PED_CPU_TO_BE32(0); - partition->de_Surfaces = PED_CPU_TO_BE32(dev->hw_geom.heads); - partition->de_SectorPerBlock = PED_CPU_TO_BE32(1); - partition->de_BlocksPerTrack - = PED_CPU_TO_BE32(dev->hw_geom.sectors); - partition->de_Reserved = PED_CPU_TO_BE32(2); - partition->de_PreAlloc = PED_CPU_TO_BE32(0); - partition->de_Interleave = PED_CPU_TO_BE32(0); - partition->de_LowCyl = PED_CPU_TO_BE32(start/cyl); - partition->de_HighCyl = PED_CPU_TO_BE32((end+1)/cyl-1); - partition->de_NumBuffers = PED_CPU_TO_BE32(30); - partition->de_BufMemType = PED_CPU_TO_BE32(0); - partition->de_MaxTransfer = PED_CPU_TO_BE32(0x7fffffff); - partition->de_Mask = PED_CPU_TO_BE32(0xffffffff); - partition->de_BootPri = PED_CPU_TO_BE32(0); - partition->de_DosType = PED_CPU_TO_BE32(0x4c4e5800); - partition->de_Baud = PED_CPU_TO_BE32(0); - partition->de_Control = PED_CPU_TO_BE32(0); - partition->de_BootBlocks = PED_CPU_TO_BE32(0); - - } else { - part->disk_specific = NULL; - } - return part; -} - -static PedPartition* -amiga_partition_duplicate (const PedPartition* part) -{ - PedPartition *new_part; - struct PartitionBlock *new_amiga_part; - struct PartitionBlock *old_amiga_part; - - PED_ASSERT(part != NULL); - PED_ASSERT(part->disk != NULL); - PED_ASSERT(part->disk_specific != NULL); - old_amiga_part = (struct PartitionBlock *) part->disk_specific; - - new_part = ped_partition_new (part->disk, part->type, - part->fs_type, part->geom.start, - part->geom.end); - if (!new_part) - return NULL; - - new_amiga_part = (struct PartitionBlock *) new_part->disk_specific; - memcpy (new_amiga_part, old_amiga_part, 256); - - return new_part; -} - -static void -amiga_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) { - PED_ASSERT (part->disk_specific != NULL); - free (part->disk_specific); - } - _ped_partition_free (part); -} - -static int -amiga_partition_set_system (PedPartition* part, - const PedFileSystemType* fs_type) -{ - struct PartitionBlock *partition; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - partition = PART(part->disk_specific); - - part->fs_type = fs_type; - - if (!fs_type) - partition->de_DosType = PED_CPU_TO_BE32(0x4c4e5800); /* 'LNX\0' */ - else if (!strcmp (fs_type->name, "ext2")) - partition->de_DosType = PED_CPU_TO_BE32(0x4c4e5800); /* 'LNX\0' */ - else if (!strcmp (fs_type->name, "ext3")) - partition->de_DosType = PED_CPU_TO_BE32(0x45585403); /* 'EXT\3' */ - else if (is_linux_swap (fs_type->name)) - partition->de_DosType = PED_CPU_TO_BE32(0x53575000); /* 'SWP\0' */ - else if (!strcmp (fs_type->name, "fat16")) - partition->de_DosType = PED_CPU_TO_BE32(0x46415400); /* 'FAT\0' */ - else if (!strcmp (fs_type->name, "fat32")) - partition->de_DosType = PED_CPU_TO_BE32(0x46415401); /* 'FAT\1'*/ - else if (!strcmp (fs_type->name, "hfs")) - partition->de_DosType = PED_CPU_TO_BE32(0x48465300); /* 'HFS\0' */ - else if (!strcmp (fs_type->name, "jfs")) - partition->de_DosType = PED_CPU_TO_BE32(0x4a465300); /* 'JFS\0' */ - else if (!strcmp (fs_type->name, "ntfs")) - partition->de_DosType = PED_CPU_TO_BE32(0x4e544653); /* 'NTFS' */ - else if (!strcmp (fs_type->name, "reiserfs")) - partition->de_DosType = PED_CPU_TO_BE32(0x52465300); /* 'RFS\0' */ - else if (!strcmp (fs_type->name, "sun-ufs")) - partition->de_DosType = PED_CPU_TO_BE32(0x53554653); /* 'SUFS' */ - else if (!strcmp (fs_type->name, "hp-ufs")) - partition->de_DosType = PED_CPU_TO_BE32(0x48554653); /* 'HUFS' */ - else if (!strcmp (fs_type->name, "xfs")) - partition->de_DosType = PED_CPU_TO_BE32(0x58465300); /* 'XFS\0' */ - else - partition->de_DosType = PED_CPU_TO_BE32(0x00000000); /* unknown */ - return 1; -} - -static int -amiga_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - struct PartitionBlock *partition; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - partition = PART(part->disk_specific); - - switch (flag) { - case PED_PARTITION_BOOT: - if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_BOOTABLE); - else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_BOOTABLE)); - return 1; - case PED_PARTITION_HIDDEN: - if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_NOMOUNT); - else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_NOMOUNT)); - return 1; - case PED_PARTITION_RAID: - if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_RAID); - else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_RAID)); - return 1; - case PED_PARTITION_LVM: - if (state) partition->pb_Flags |= PED_CPU_TO_BE32(PBFF_LVM); - else partition->pb_Flags &= ~(PED_CPU_TO_BE32(PBFF_LVM)); - return 1; - default: - return 0; - } -} - -static int _GL_ATTRIBUTE_PURE -amiga_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - struct PartitionBlock *partition; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - partition = PART(part->disk_specific); - - switch (flag) { - case PED_PARTITION_BOOT: - return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_BOOTABLE)); - case PED_PARTITION_HIDDEN: - return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_NOMOUNT)); - case PED_PARTITION_RAID: - return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_RAID)); - case PED_PARTITION_LVM: - return (partition->pb_Flags & PED_CPU_TO_BE32(PBFF_LVM)); - default: - return 0; - } -} - -static int -amiga_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_BOOT: - case PED_PARTITION_HIDDEN: - case PED_PARTITION_RAID: - case PED_PARTITION_LVM: - return 1; - default: - return 0; - } -} - -static void -amiga_partition_set_name (PedPartition* part, const char* name) -{ - struct PartitionBlock *partition; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - partition = PART(part->disk_specific); - _amiga_set_bstr(name, partition->pb_DriveName, 32); -} -static const char* -amiga_partition_get_name (const PedPartition* part) -{ - struct PartitionBlock *partition; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - partition = PART(part->disk_specific); - - return _amiga_get_bstr(partition->pb_DriveName); -} - -static PedAlignment* -amiga_get_partition_alignment(const PedDisk *disk) -{ - PedSector cylinder_size = - disk->dev->hw_geom.sectors * disk->dev->hw_geom.heads; - - return ped_alignment_new(0, cylinder_size); -} - -static PedConstraint* -_amiga_get_constraint (const PedDisk *disk) -{ - PedDevice *dev = disk->dev; - PedAlignment start_align, end_align; - PedGeometry max_geom; - PedSector cyl_size = dev->hw_geom.sectors * dev->hw_geom.heads; - - if (!ped_alignment_init(&start_align, 0, cyl_size)) - return NULL; - if (!ped_alignment_init(&end_align, -1, cyl_size)) - return NULL; - if (!ped_geometry_init(&max_geom, dev, MAX_RDB_BLOCK + 1, - dev->length - MAX_RDB_BLOCK - 1)) - return NULL; - - return ped_constraint_new (&start_align, &end_align, - &max_geom, &max_geom, 1, dev->length); -} - -static int -amiga_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - - if (_ped_partition_attempt_align (part, constraint, - _amiga_get_constraint (part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -amiga_partition_enumerate (PedPartition* part) -{ - int i; - PedPartition* p; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk != NULL); - - /* never change the partition numbers */ - if (part->num != -1) - return 1; - for (i = 1; i <= AMIGA_MAX_PARTITIONS; i++) { - p = ped_disk_get_partition (part->disk, i); - if (!p) { - part->num = i; - return 1; - } - } - - /* failed to allocate a number */ -#ifndef DISCOVER_ONLY - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unable to allocate a partition number.")); -#endif - return 0; -} - -static int -amiga_alloc_metadata (PedDisk* disk) -{ - PedPartition* new_part; - PedConstraint* constraint_any = NULL; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - constraint_any = ped_constraint_any (disk->dev); - - /* Allocate space for the RDB */ - new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, - 0, MAX_RDB_BLOCK); - if (!new_part) - goto error; - - if (!ped_disk_add_partition (disk, new_part, constraint_any)) { - ped_partition_destroy (new_part); - goto error; - } - - ped_constraint_destroy (constraint_any); - return 1; -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -static int -amiga_get_max_primary_partition_count (const PedDisk* disk) -{ - return AMIGA_MAX_PARTITIONS; -} - -static bool -amiga_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = AMIGA_MAX_PARTITIONS; - return true; -} - -#include "pt-common.h" -PT_define_limit_functions (amiga) - -static PedDiskOps amiga_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (amiga_write), - - partition_set_name: amiga_partition_set_name, - partition_get_name: amiga_partition_get_name, - - get_partition_alignment: amiga_get_partition_alignment, - - PT_op_function_initializers (amiga) -}; - -static PedDiskType amiga_disk_type = { - next: NULL, - name: "amiga", - ops: &amiga_disk_ops, - features: PED_DISK_TYPE_PARTITION_NAME -}; - -void -ped_disk_amiga_init () -{ - PED_ASSERT (sizeof (struct AmigaBlock) != 3); - PED_ASSERT (sizeof (struct RigidDiskBlock) != 64); - PED_ASSERT (sizeof (struct PartitionBlock) != 64); - PED_ASSERT (sizeof (struct LinkedBlock) != 5); - PED_ASSERT (sizeof (struct Linked2Block) != 18); - - ped_disk_type_register (&amiga_disk_type); -} - -void -ped_disk_amiga_done () -{ - ped_disk_type_unregister (&amiga_disk_type); -} diff --git a/jni/parted/libparted/labels/sun.c b/jni/parted/libparted/labels/sun.c deleted file mode 100755 index 5ed2886..0000000 --- a/jni/parted/libparted/labels/sun.c +++ /dev/null @@ -1,910 +0,0 @@ -/* -*- Mode: c; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- - - libparted - a library for manipulating disk partitions - Copyright (C) 2000-2001, 2005, 2007-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . - - Contributor: Ben Collins -*/ - -#include - -#include -#include -#include -#include - -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include "misc.h" -#include "pt-tools.h" -#include "verify.h" - -/* Most of this came from util-linux's sun support, which was mostly done - by Jakub Jelinek. */ - -#define SUN_DISK_MAGIC 0xDABE /* Disk magic number */ -#define SUN_DISK_MAXPARTITIONS 8 - -#define SUN_VTOC_VERSION 1 -#define SUN_VTOC_SANITY 0x600DDEEE - -#define WHOLE_DISK_ID 0x05 -#define WHOLE_DISK_PART 2 /* as in 0, 1, 2 (3rd partition) */ -#define LINUX_SWAP_ID 0x82 - -typedef struct _SunRawPartition SunRawPartition; -typedef struct _SunPartitionInfo SunPartitionInfo; -typedef struct _SunRawLabel SunRawLabel; -typedef struct _SunPartitionData SunPartitionData; -typedef struct _SunDiskData SunDiskData; - -struct __attribute__ ((packed)) _SunRawPartition { - u_int32_t start_cylinder; /* where the part starts... */ - u_int32_t num_sectors; /* ...and it's length */ -}; - -struct __attribute__ ((packed)) _SunPartitionInfo { - u_int8_t spare1; - u_int8_t id; /* Partition type */ - u_int8_t spare2; - u_int8_t flags; /* Partition flags */ -}; - -struct __attribute__ ((packed, aligned(2))) _SunRawLabel { - char info[128]; /* Informative text string */ - u_int32_t version; /* Layout version */ - u_int8_t volume[8]; /* Volume name */ - u_int16_t nparts; /* Number of partitions */ - SunPartitionInfo infos[SUN_DISK_MAXPARTITIONS]; - u_int16_t padding; /* Alignment padding */ - u_int32_t bootinfo[3]; /* Info needed by mboot */ - u_int32_t sanity; /* To verify vtoc sanity */ - u_int32_t reserved[10]; /* Free space */ - u_int32_t timestamp[8]; /* Partition timestamp */ - u_int32_t write_reinstruct; /* sectors to skip, writes */ - u_int32_t read_reinstruct; /* sectors to skip, reads */ - u_int8_t spare1[148]; /* Padding */ - u_int16_t rspeed; /* Disk rotational speed */ - u_int16_t pcylcount; /* Physical cylinder count */ - u_int16_t sparecyl; /* extra sects per cylinder */ - u_int8_t spare2[4]; /* More magic... */ - u_int16_t ilfact; /* Interleave factor */ - u_int16_t ncyl; /* Data cylinder count */ - u_int16_t nacyl; /* Alt. cylinder count */ - u_int16_t ntrks; /* Tracks per cylinder */ - u_int16_t nsect; /* Sectors per track */ - u_int8_t spare3[4]; /* Even more magic... */ - SunRawPartition partitions[SUN_DISK_MAXPARTITIONS]; - u_int16_t magic; /* Magic number */ - u_int16_t csum; /* Label xor'd checksum */ -}; - -struct _SunPartitionData { - u_int8_t type; - int is_boot; - int is_root; - int is_lvm; - int is_raid; -}; - -struct _SunDiskData { - PedSector length; /* This is based on cyl - alt-cyl */ - SunRawLabel raw_label; -}; - -static PedDiskType sun_disk_type; - -/* Checksum computation */ -static void -sun_compute_checksum (SunRawLabel *label) -{ - u_int16_t *ush = (u_int16_t *)label; - u_int16_t csum = 0; - - while(ush < (u_int16_t *)(&label->csum)) - csum ^= *ush++; - label->csum = csum; -} - -/* Checksum Verification */ -static int -sun_verify_checksum (SunRawLabel const *label) -{ - u_int16_t *ush = ((u_int16_t *)(label + 1)) - 1; - u_int16_t csum = 0; - - while (ush >= (u_int16_t *)label) - csum ^= *ush--; - - return !csum; -} - -static int -sun_probe (const PedDevice *dev) -{ - PED_ASSERT (dev != NULL); - - void *s0; - if (!ptt_read_sector (dev, 0, &s0)) - return 0; - SunRawLabel const *label = (void const *) s0; - - int ok = 1; - /* check magic */ - if (PED_BE16_TO_CPU (label->magic) != SUN_DISK_MAGIC) { - ok = 0; - } else { -#ifndef DISCOVER_ONLY - if (!sun_verify_checksum(label)) { - ok = 0; - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Corrupted Sun disk label detected.")); - } - } -#endif - - free (s0); - return ok; -} - -static PedDisk* -sun_alloc (const PedDevice* dev) -{ - PedDisk* disk; - SunRawLabel* label; - SunDiskData* sun_specific; - const PedCHSGeometry* bios_geom = &dev->bios_geom; - PedSector cyl_size = bios_geom->sectors * bios_geom->heads; - PED_ASSERT (cyl_size != 0); - - disk = _ped_disk_alloc (dev, &sun_disk_type); - if (!disk) - goto error; - - disk->disk_specific = (SunDiskData*) ped_malloc (sizeof (SunDiskData)); - if (!disk->disk_specific) - goto error_free_disk; - sun_specific = (SunDiskData*) disk->disk_specific; - - PED_ASSERT (bios_geom->cylinders == (PedSector) (dev->length / cyl_size)); - sun_specific->length = ped_round_down_to (dev->length, cyl_size); - - label = &sun_specific->raw_label; - memset(label, 0, sizeof(SunRawLabel)); - - /* #gentoo-sparc people agree that nacyl = 0 is the best option */ - label->magic = PED_CPU_TO_BE16 (SUN_DISK_MAGIC); - label->nacyl = 0; - label->pcylcount = PED_CPU_TO_BE16 (bios_geom->cylinders); - label->rspeed = PED_CPU_TO_BE16 (5400); - label->ilfact = PED_CPU_TO_BE16 (1); - label->sparecyl = 0; - label->ntrks = PED_CPU_TO_BE16 (bios_geom->heads); - label->nsect = PED_CPU_TO_BE16 (bios_geom->sectors); - label->ncyl = PED_CPU_TO_BE16 (dev->length / cyl_size); - - label->sanity = PED_CPU_TO_BE32 (SUN_VTOC_SANITY); - label->version = PED_CPU_TO_BE32 (SUN_VTOC_VERSION); - label->nparts = PED_CPU_TO_BE16 (SUN_DISK_MAXPARTITIONS); - - /* Add a whole disk partition at a minimum */ - label->infos[WHOLE_DISK_PART].id = WHOLE_DISK_ID; - label->partitions[WHOLE_DISK_PART].start_cylinder = 0; - label->partitions[WHOLE_DISK_PART].num_sectors = - PED_CPU_TO_BE32(sun_specific->length); - - /* Now a neato string to describe this label */ - snprintf(label->info, sizeof(label->info) - 1, - "GNU Parted Custom cyl %d alt %d hd %d sec %d", - PED_BE16_TO_CPU(label->ncyl), - PED_BE16_TO_CPU(label->nacyl), - PED_BE16_TO_CPU(label->ntrks), - PED_BE16_TO_CPU(label->nsect)); - - sun_compute_checksum(label); - return disk; - -error_free_disk: - _ped_disk_free (disk); -error: - return NULL; -} - -static PedDisk* -sun_duplicate (const PedDisk* disk) -{ - PedDisk* new_disk; - SunDiskData* new_sun_data; - SunDiskData* old_sun_data = (SunDiskData*) disk->disk_specific; - - new_disk = ped_disk_new_fresh (disk->dev, &sun_disk_type); - if (!new_disk) - return NULL; - - new_sun_data = (SunDiskData*) new_disk->disk_specific; - memcpy (new_sun_data, old_sun_data, sizeof (SunDiskData)); - return new_disk; -} - -static void -sun_free (PedDisk *disk) -{ - free (disk->disk_specific); - _ped_disk_free (disk); -} - -static int -_check_geometry_sanity (PedDisk* disk, SunRawLabel* label) -{ - PedDevice* dev = disk->dev; - - if (PED_BE16_TO_CPU(label->nsect) == dev->hw_geom.sectors && - PED_BE16_TO_CPU(label->ntrks) == dev->hw_geom.heads) - dev->bios_geom = dev->hw_geom; - - if (!!PED_BE16_TO_CPU(label->pcylcount) - * !!PED_BE16_TO_CPU(label->ntrks) - * !!PED_BE16_TO_CPU(label->nsect) == 0) - return 0; - - if (PED_BE16_TO_CPU(label->nsect) != dev->bios_geom.sectors || - PED_BE16_TO_CPU(label->ntrks) != dev->bios_geom.heads) { -#ifndef DISCOVER_ONLY - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The disk CHS geometry (%d,%d,%d) reported " - "by the operating system does not match " - "the geometry stored on the disk label " - "(%d,%d,%d)."), - dev->bios_geom.cylinders, - dev->bios_geom.heads, - dev->bios_geom.sectors, - PED_BE16_TO_CPU(label->pcylcount), - PED_BE16_TO_CPU(label->ntrks), - PED_BE16_TO_CPU(label->nsect)) - == PED_EXCEPTION_CANCEL) - return 0; -#endif - dev->bios_geom.sectors = PED_BE16_TO_CPU(label->nsect); - dev->bios_geom.heads = PED_BE16_TO_CPU(label->ntrks); - dev->bios_geom.cylinders = PED_BE16_TO_CPU(label->pcylcount); - - if (dev->bios_geom.sectors * dev->bios_geom.heads - * dev->bios_geom.cylinders > dev->length) { - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The disk label describes a disk bigger than " - "%s."), - dev->path) - != PED_EXCEPTION_IGNORE) - return 0; - } - } - return 1; -} - -static int -sun_read (PedDisk* disk) -{ - SunPartitionData* sun_data; - SunDiskData* disk_data; - int i; - PedPartition* part; - PedSector end, start, block; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - PED_ASSERT (disk->disk_specific != NULL); - - disk_data = (SunDiskData*) disk->disk_specific; - - ped_disk_delete_all (disk); - - void *s0; - if (!ptt_read_sector (disk->dev, 0, &s0)) - goto error; - - SunRawLabel *label = &disk_data->raw_label; - verify (sizeof (*label) == 512); - memcpy (label, s0, sizeof (*label)); - free (s0); - - if (!_check_geometry_sanity (disk, label)) - goto error; - - block = disk->dev->bios_geom.sectors * disk->dev->bios_geom.heads; - disk_data->length = block * disk->dev->bios_geom.cylinders; - - for (i = 0; i < SUN_DISK_MAXPARTITIONS; i++) { - if (!PED_BE32_TO_CPU(label->partitions[i].num_sectors)) - continue; - if (!label->infos[i].id) - continue; - if (label->infos[i].id == WHOLE_DISK_ID) - continue; - - start = PED_BE32_TO_CPU(label->partitions[i].start_cylinder) - * block; - end = start - + PED_BE32_TO_CPU(label->partitions[i].num_sectors) - 1; - - part = ped_partition_new (disk, PED_PARTITION_NORMAL, NULL, - start, end); - if (!part) - goto error; - - sun_data = part->disk_specific; - sun_data->type = label->infos[i].id; - sun_data->is_boot = sun_data->type == 0x1; - sun_data->is_root = sun_data->type == 0x2; - sun_data->is_lvm = sun_data->type == 0x8e; - sun_data->is_raid = sun_data->type == 0xfd; - - part->num = i + 1; - part->fs_type = ped_file_system_probe (&part->geom); - - PedConstraint *constraint_exact - = ped_constraint_exact (&part->geom); - if (constraint_exact == NULL) - goto error; - bool ok = ped_disk_add_partition (disk, part, constraint_exact); - ped_constraint_destroy (constraint_exact); - if (!ok) - goto error; - } - - return 1; - - error: - return 0; -} - -#ifndef DISCOVER_ONLY -static int -_use_old_info (const PedDisk* disk, const void *sector_0) -{ - SunRawLabel const *old_label = sector_0; - - if (old_label->info[0] - && PED_BE16_TO_CPU (old_label->magic) == SUN_DISK_MAGIC) { - SunDiskData *sun_specific = disk->disk_specific; - memcpy (&sun_specific->raw_label, sector_0, - sizeof (sun_specific->raw_label)); - verify (sizeof (sun_specific->raw_label) == 512); - } - - return 1; -} - -static int -sun_write (const PedDisk* disk) -{ - SunRawLabel* label; - SunPartitionData* sun_data; - SunDiskData* disk_data; - PedPartition* part; - int i; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->dev != NULL); - - void *s0; - if (!ptt_read_sector (disk->dev, 0, &s0)) - return 0; - - /* Calling _use_old_info here in sun_write - above seems wrong, because it modifies *DISK. - FIXME: maybe later. */ - if (!_use_old_info (disk, s0)) { - free (s0); - return 0; - } - - disk_data = (SunDiskData*) disk->disk_specific; - label = &disk_data->raw_label; - - memset (label->partitions, 0, - sizeof (SunRawPartition) * SUN_DISK_MAXPARTITIONS); - memset (label->infos, 0, - sizeof (SunPartitionInfo) * SUN_DISK_MAXPARTITIONS); - - for (i = 0; i < SUN_DISK_MAXPARTITIONS; i++) { - part = ped_disk_get_partition (disk, i + 1); - - if (!part && i == WHOLE_DISK_PART) { - /* Ok, nothing explicitly in the whole disk - partition, so let's put it there for safety - sake. */ - - label->infos[i].id = WHOLE_DISK_ID; - label->partitions[i].start_cylinder = 0; - label->partitions[i].num_sectors = - PED_CPU_TO_BE32(disk_data->length); - continue; - } - if (!part) - continue; - - sun_data = part->disk_specific; - label->infos[i].id = sun_data->type; - label->partitions[i].start_cylinder - = PED_CPU_TO_BE32 (part->geom.start - / (disk->dev->bios_geom.sectors - * disk->dev->bios_geom.heads)); - label->partitions[i].num_sectors - = PED_CPU_TO_BE32 (part->geom.end - - part->geom.start + 1); - } - - /* We assume the harddrive is always right, and that the label may - be wrong. I don't think this will cause any problems, since the - cylinder count is always enforced by our alignment, and we - sanity checked the sectors/heads when we detected the device. The - worst that could happen here is that the drive seems bigger or - smaller than it really is, but we'll have that problem even if we - don't do this. */ - - if (disk->dev->bios_geom.cylinders > 65536) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE, - _("The disk has %d cylinders, which is greater than " - "the maximum of 65536."), - disk->dev->bios_geom.cylinders); - } - - label->pcylcount = PED_CPU_TO_BE16 (disk->dev->bios_geom.cylinders); - label->ncyl = PED_CPU_TO_BE16 (disk->dev->bios_geom.cylinders - - PED_BE16_TO_CPU (label->nacyl)); - - sun_compute_checksum (label); - - verify (sizeof *label == 512); - memcpy (s0, label, sizeof *label); - int write_ok = ped_device_write (disk->dev, s0, 0, 1); - free (s0); - - if (write_ok) - return ped_device_sync (disk->dev); - - return 0; -} -#endif /* !DISCOVER_ONLY */ - -static PedPartition* -sun_partition_new (const PedDisk* disk, PedPartitionType part_type, - const PedFileSystemType* fs_type, - PedSector start, PedSector end) -{ - PedPartition* part; - SunPartitionData* sun_data; - - part = _ped_partition_alloc (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - if (ped_partition_is_active (part)) { - part->disk_specific - = sun_data = ped_malloc (sizeof (SunPartitionData)); - if (!sun_data) - goto error_free_part; - sun_data->type = 0; - sun_data->is_boot = 0; - sun_data->is_root = 0; - sun_data->is_lvm = 0; - sun_data->is_raid = 0; - } else { - part->disk_specific = NULL; - } - - return part; - -error_free_part: - free (part); -error: - return NULL; -} - -static PedPartition* -sun_partition_duplicate (const PedPartition* part) -{ - PedPartition* new_part; - SunPartitionData* new_sun_data; - SunPartitionData* old_sun_data; - - new_part = ped_partition_new (part->disk, part->type, - part->fs_type, part->geom.start, - part->geom.end); - if (!new_part) - return NULL; - new_part->num = part->num; - - old_sun_data = (SunPartitionData*) part->disk_specific; - new_sun_data = (SunPartitionData*) new_part->disk_specific; - new_sun_data->type = old_sun_data->type; - new_sun_data->is_boot = old_sun_data->is_boot; - new_sun_data->is_root = old_sun_data->is_root; - new_sun_data->is_lvm = old_sun_data->is_lvm; - new_sun_data->is_raid = old_sun_data->is_raid; - return new_part; -} - -static void -sun_partition_destroy (PedPartition* part) -{ - PED_ASSERT (part != NULL); - - if (ped_partition_is_active (part)) - free (part->disk_specific); - free (part); -} - -static int -sun_partition_set_system (PedPartition* part, const PedFileSystemType* fs_type) -{ - SunPartitionData* sun_data = part->disk_specific; - - part->fs_type = fs_type; - - if (sun_data->is_boot) { - sun_data->type = 0x1; - return 1; - } - if (sun_data->is_root) { - sun_data->type = 0x2; - return 1; - } - if (sun_data->is_lvm) { - sun_data->type = 0x8e; - return 1; - } - if (sun_data->is_raid) { - sun_data->type = 0xfd; - return 1; - } - - sun_data->type = 0x83; - if (fs_type) { - if (is_linux_swap (fs_type->name)) - sun_data->type = 0x82; - else if (!strcmp (fs_type->name, "ufs")) - sun_data->type = 0x6; - } - - return 1; -} - -static int -sun_partition_set_flag (PedPartition* part, PedPartitionFlag flag, int state) -{ - SunPartitionData* sun_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - PED_ASSERT (ped_partition_is_flag_available (part, flag)); - - sun_data = part->disk_specific; - - switch (flag) { - case PED_PARTITION_BOOT: - sun_data->is_boot = state; - if (state) { - sun_data->is_lvm = 0; - sun_data->is_raid = 0; - sun_data->is_root = 0; - } - return ped_partition_set_system (part, part->fs_type); - - case PED_PARTITION_ROOT: - sun_data->is_root = state; - if (state) { - sun_data->is_boot = 0; - sun_data->is_lvm = 0; - sun_data->is_raid = 0; - } - return ped_partition_set_system (part, part->fs_type); - - case PED_PARTITION_LVM: - sun_data->is_lvm = state; - if (state) { - sun_data->is_boot = 0; - sun_data->is_raid = 0; - sun_data->is_root = 0; - } - return ped_partition_set_system (part, part->fs_type); - - case PED_PARTITION_RAID: - sun_data->is_raid = state; - if (state) { - sun_data->is_boot = 0; - sun_data->is_lvm = 0; - sun_data->is_root = 0; - } - return ped_partition_set_system (part, part->fs_type); - - default: - return 0; - } -} - - -static int _GL_ATTRIBUTE_PURE -sun_partition_get_flag (const PedPartition* part, PedPartitionFlag flag) -{ - SunPartitionData* sun_data; - - PED_ASSERT (part != NULL); - PED_ASSERT (part->disk_specific != NULL); - - sun_data = part->disk_specific; - - switch (flag) { - case PED_PARTITION_BOOT: - return sun_data->is_boot; - case PED_PARTITION_ROOT: - return sun_data->is_root; - case PED_PARTITION_LVM: - return sun_data->is_lvm; - case PED_PARTITION_RAID: - return sun_data->is_raid; - - default: - return 0; - } -} - - -static int -sun_partition_is_flag_available (const PedPartition* part, - PedPartitionFlag flag) -{ - switch (flag) { - case PED_PARTITION_BOOT: - case PED_PARTITION_ROOT: - case PED_PARTITION_LVM: - case PED_PARTITION_RAID: - return 1; - - default: - return 0; - } -} - -static bool -sun_get_max_supported_partition_count (const PedDisk* disk, int *max_n) -{ - *max_n = SUN_DISK_MAXPARTITIONS; - return true; -} - -static int -sun_get_max_primary_partition_count (const PedDisk* disk) -{ - return SUN_DISK_MAXPARTITIONS; -} - -static PedAlignment* -sun_get_partition_alignment(const PedDisk *disk) -{ - PedSector block = - disk->dev->hw_geom.sectors * disk->dev->hw_geom.heads; - - return ped_alignment_new(0, block); -} - -static PedConstraint* -_get_strict_constraint (PedDisk* disk) -{ - PedDevice* dev = disk->dev; - PedAlignment start_align; - PedAlignment end_align; - PedGeometry max_geom; - SunDiskData* disk_data = disk->disk_specific; - PedSector block = dev->bios_geom.sectors * dev->bios_geom.heads; - - if (!ped_alignment_init (&start_align, 0, block)) - return NULL; - if (!ped_alignment_init (&end_align, -1, block)) - return NULL; - if (!ped_geometry_init (&max_geom, dev, 0, disk_data->length)) - return NULL; - - return ped_constraint_new (&start_align, &end_align, &max_geom, - &max_geom, 1, dev->length); -} - -static PedConstraint* -_get_lax_constraint (PedDisk* disk) -{ - PedDevice* dev = disk->dev; - PedAlignment start_align; - PedGeometry max_geom; - SunDiskData* disk_data = disk->disk_specific; - PedSector block = dev->bios_geom.sectors * dev->bios_geom.heads; - - if (!ped_alignment_init (&start_align, 0, block)) - return NULL; - if (!ped_geometry_init (&max_geom, dev, 0, disk_data->length)) - return NULL; - - return ped_constraint_new (&start_align, ped_alignment_any, &max_geom, - &max_geom, 1, dev->length); -} - -/* _get_strict_constraint() will align the partition to the end of the cylinder. - * This isn't required, but since partitions must start at the start of the - * cylinder, space between the end of a partition and the end of a cylinder - * is unusable, so there's no point wasting space! - * However, if they really insist (via constraint)... which they will - * if they're reading a weird table of the disk... then we allow the end to - * be anywhere, with _get_lax_constraint() - */ -static int -sun_partition_align (PedPartition* part, const PedConstraint* constraint) -{ - PED_ASSERT (part != NULL); - - if (_ped_partition_attempt_align (part, constraint, - _get_strict_constraint (part->disk))) - return 1; - if (_ped_partition_attempt_align (part, constraint, - _get_lax_constraint (part->disk))) - return 1; - -#ifndef DISCOVER_ONLY - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Unable to satisfy all constraints on the partition.")); -#endif - return 0; -} - -static int -sun_partition_enumerate (PedPartition* part) -{ - int i; - PedPartition* p; - - /* never change the partition numbers */ - if (part->num != -1) - return 1; - for (i = 1; i <= SUN_DISK_MAXPARTITIONS; i++) { - /* skip the Whole Disk partition for now */ - if (i == WHOLE_DISK_PART + 1) - continue; - p = ped_disk_get_partition (part->disk, i); - if (!p) { - part->num = i; - return 1; - } - } - -#ifndef DISCOVER_ONLY - /* Ok, now allocate the Whole disk if it isn't already */ - p = ped_disk_get_partition (part->disk, WHOLE_DISK_PART + 1); - if (!p) { - int j = ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_IGNORE_CANCEL, - _("The Whole Disk partition is the only " - "available one left. Generally, it is not a " - "good idea to overwrite this partition with " - "a real one. Solaris may not be able to " - "boot without it, and SILO (the sparc boot " - "loader) appreciates it as well.")); - if (j == PED_EXCEPTION_IGNORE) { - /* bad bad bad...you will suffer your own fate */ - part->num = WHOLE_DISK_PART + 1; - return 1; - } - } - - /* failed to allocate a number, this means we are full */ - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Sun disk label is full.")); -#endif - return 0; -} - -static int -sun_alloc_metadata (PedDisk* disk) -{ - PedPartition* new_part; - SunDiskData* disk_data; - PedConstraint* constraint_any; - - PED_ASSERT (disk != NULL); - PED_ASSERT (disk->disk_specific != NULL); - PED_ASSERT (disk->dev != NULL); - - constraint_any = ped_constraint_any (disk->dev); - - /* Sun disk label does not need to allocate a sector. The disk - label is contained within the first 512 bytes, which should not - be overwritten by any boot loader or superblock. It is safe for - most partitions to start at sector 0. We do however, allocate - the space used by alt-cyl's, since we cannot use those. Put them - at the end of the disk. */ - - disk_data = disk->disk_specific; - - if (disk->dev->length <= 0 || - disk_data->length <= 0 || - disk->dev->length == disk_data->length) - goto error; - - new_part = ped_partition_new (disk, PED_PARTITION_METADATA, NULL, - disk_data->length, disk->dev->length - 1); - if (!new_part) - goto error; - - if (!ped_disk_add_partition (disk, new_part, constraint_any)) { - ped_partition_destroy (new_part); - goto error; - } - - ped_constraint_destroy (constraint_any); - return 1; -error: - ped_constraint_destroy (constraint_any); - return 0; -} - -#include "pt-common.h" -PT_define_limit_functions (sun) - -static PedDiskOps sun_disk_ops = { - clobber: NULL, - write: NULL_IF_DISCOVER_ONLY (sun_write), - - get_partition_alignment: sun_get_partition_alignment, - - partition_set_name: NULL, - partition_get_name: NULL, - - PT_op_function_initializers (sun) -}; - -static PedDiskType sun_disk_type = { - next: NULL, - name: "sun", - ops: &sun_disk_ops, - features: 0 -}; - -void -ped_disk_sun_init () -{ - PED_ASSERT (sizeof (SunRawLabel) == 512); - ped_disk_type_register (&sun_disk_type); -} - -void -ped_disk_sun_done () -{ - ped_disk_type_unregister (&sun_disk_type); -} diff --git a/jni/parted/libparted/labels/vtoc.c b/jni/parted/libparted/labels/vtoc.c deleted file mode 100755 index d467164..0000000 --- a/jni/parted/libparted/labels/vtoc.c +++ /dev/null @@ -1,1329 +0,0 @@ -#include -#include - -#ifdef DEBUG_DASD -#define PDEBUG fprintf(stderr, "%s:%d:%s\n", \ - __FILE__, \ - __LINE__, \ - __PRETTY_FUNCTION__); -#else -#define PDEBUG -#endif - -#include - -#include -#if ENABLE_NLS -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -static const unsigned char EBCtoASC[256] = -{ -/* 0x00 NUL SOH STX ETX *SEL HT *RNL DEL */ - 0x00, 0x01, 0x02, 0x03, 0x07, 0x09, 0x07, 0x7F, -/* 0x08 -GE -SPS -RPT VT FF CR SO SI */ - 0x07, 0x07, 0x07, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, -/* 0x10 DLE DC1 DC2 DC3 -RES -NL BS -POC - -ENP ->LF */ - 0x10, 0x11, 0x12, 0x13, 0x07, 0x0A, 0x08, 0x07, -/* 0x18 CAN EM -UBS -CU1 -IFS -IGS -IRS -ITB - -IUS */ - 0x18, 0x19, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -/* 0x20 -DS -SOS FS -WUS -BYP LF ETB ESC - -INP */ - 0x07, 0x07, 0x1C, 0x07, 0x07, 0x0A, 0x17, 0x1B, -/* 0x28 -SA -SFE -SM -CSP -MFA ENQ ACK BEL - -SW */ - 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07, -/* 0x30 ---- ---- SYN -IR -PP -TRN -NBS EOT */ - 0x07, 0x07, 0x16, 0x07, 0x07, 0x07, 0x07, 0x04, -/* 0x38 -SBS -IT -RFF -CU3 DC4 NAK ---- SUB */ - 0x07, 0x07, 0x07, 0x07, 0x14, 0x15, 0x07, 0x1A, -/* 0x40 SP RSP ä ---- */ - 0x20, 0xFF, 0x83, 0x84, 0x85, 0xA0, 0x07, 0x86, -/* 0x48 . < ( + | */ - 0x87, 0xA4, 0x9B, 0x2E, 0x3C, 0x28, 0x2B, 0x7C, -/* 0x50 & ---- */ - 0x26, 0x82, 0x88, 0x89, 0x8A, 0xA1, 0x8C, 0x07, -/* 0x58 ß ! $ * ) ; */ - 0x8D, 0xE1, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0xAA, -/* 0x60 - / ---- Ä ---- ---- ---- */ - 0x2D, 0x2F, 0x07, 0x8E, 0x07, 0x07, 0x07, 0x8F, -/* 0x68 ---- , % _ > ? */ - 0x80, 0xA5, 0x07, 0x2C, 0x25, 0x5F, 0x3E, 0x3F, -/* 0x70 --- ---- ---- ---- ---- ---- ---- */ - 0x07, 0x90, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -/* 0x78 * ` : # @ ' = " */ - 0x70, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22, -/* 0x80 * a b c d e f g */ - 0x07, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, -/* 0x88 h i ---- ---- ---- */ - 0x68, 0x69, 0xAE, 0xAF, 0x07, 0x07, 0x07, 0xF1, -/* 0x90 ° j k l m n o p */ - 0xF8, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, -/* 0x98 q r ---- ---- */ - 0x71, 0x72, 0xA6, 0xA7, 0x91, 0x07, 0x92, 0x07, -/* 0xA0 ~ s t u v w x */ - 0xE6, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, -/* 0xA8 y z ---- ---- ---- ---- */ - 0x79, 0x7A, 0xAD, 0xAB, 0x07, 0x07, 0x07, 0x07, -/* 0xB0 ^ ---- § ---- */ - 0x5E, 0x9C, 0x9D, 0xFA, 0x07, 0x07, 0x07, 0xAC, -/* 0xB8 ---- [ ] ---- ---- ---- ---- */ - 0xAB, 0x07, 0x5B, 0x5D, 0x07, 0x07, 0x07, 0x07, -/* 0xC0 { A B C D E F G */ - 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, -/* 0xC8 H I ---- ö ---- */ - 0x48, 0x49, 0x07, 0x93, 0x94, 0x95, 0xA2, 0x07, -/* 0xD0 } J K L M N O P */ - 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, -/* 0xD8 Q R ---- ü */ - 0x51, 0x52, 0x07, 0x96, 0x81, 0x97, 0xA3, 0x98, -/* 0xE0 \ S T U V W X */ - 0x5C, 0xF6, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, -/* 0xE8 Y Z ---- Ö ---- ---- ---- */ - 0x59, 0x5A, 0xFD, 0x07, 0x99, 0x07, 0x07, 0x07, -/* 0xF0 0 1 2 3 4 5 6 7 */ - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, -/* 0xF8 8 9 ---- ---- Ü ---- ---- ---- */ - 0x38, 0x39, 0x07, 0x07, 0x9A, 0x07, 0x07, 0x07 -}; - -static const unsigned char ASCtoEBC[256] = -{ - /*00 NL SH SX EX ET NQ AK BL */ - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, - /*08 BS HT LF VT FF CR SO SI */ - 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, - /*10 DL D1 D2 D3 D4 NK SN EB */ - 0x10, 0x11, 0x12, 0x13, 0x3C, 0x15, 0x32, 0x26, - /*18 CN EM SB EC FS GS RS US */ - 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F, - /*20 SP ! " # $ % & ' */ - 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, - /*28 ( ) * + , - . / */ - 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61, - /*30 0 1 2 3 4 5 6 7 */ - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - /*38 8 9 : ; < = > ? */ - 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F, - /*40 @ A B C D E F G */ - 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - /*48 H I J K L M N O */ - 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, - /*50 P Q R S T U V W */ - 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, - /*58 X Y Z [ \ ] ^ _ */ - 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D, - /*60 ` a b c d e f g */ - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - /*68 h i j k l m n o */ - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - /*70 p q r s t u v w */ - 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, - /*78 x y z { | } ~ DL */ - 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, - 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0xFF -}; - -enum failure { - unable_to_open, - unable_to_seek, - unable_to_write, - unable_to_read -}; - -static char buffer[93]; - -static void -vtoc_error (enum failure why, char const *s1, char const *s2) -{ - PDEBUG - char error[8192]; - - switch (why) { - case unable_to_open: - sprintf(error, "VTOC: %s -- %s\n%s\n", - _("opening of device failed"), s1, s2); - break; - case unable_to_seek: - sprintf(error, "VTOC: %s -- %s\n%s\n", - _("seeking on device failed"), s1, s2); - break; - case unable_to_write: - sprintf(error, "VTOC: %s -- %s\n%s\n", - _("writing to device failed"), s1, s2); - break; - case unable_to_read: - sprintf(error, "VTOC: %s -- %s\n%s\n", - _("reading from device failed"), s1, s2); - break; - default: - sprintf(error, "VTOC: %s\n", _("Fatal error")); - } - - ped_exception_throw(PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, error); -} - -char * -vtoc_ebcdic_enc (char const *source, char *target, int l) -{ - PDEBUG - int i; - - for (i = 0; i < l; i++) - target[i]=ASCtoEBC[(unsigned char)(source[i])]; - - return target; -} - -char * -vtoc_ebcdic_dec (char const *source, char *target, int l) -{ - PDEBUG - int i; - - for (i = 0; i < l; i++) - target[i]=EBCtoASC[(unsigned char)(source[i])]; - - return target; -} - -void -vtoc_set_extent (extent_t *ext, u_int8_t typeind, u_int8_t seqno, - cchh_t *lower, cchh_t *upper) -{ - PDEBUG - ext->typeind = typeind; - ext->seqno = seqno; - memcpy(&ext->llimit,lower,sizeof(cchh_t)); - memcpy(&ext->ulimit,upper,sizeof(cchh_t)); -} - -void -vtoc_set_cchh (cchh_t *addr, u_int32_t cc, u_int16_t hh) -{ - PDEBUG - addr->cc = (u_int16_t) cc; - addr->hh = cc >> 16; - addr->hh <<= 4; - addr->hh |= hh; -} - -u_int32_t -vtoc_get_cyl_from_cchh (cchh_t *addr) -{ - u_int32_t cyl; - - /*decode cylinder for large volumes */ - cyl = addr->hh & 0xFFF0; - cyl <<= 12; - cyl |= addr->cc; - return cyl; -} - -u_int16_t -vtoc_get_head_from_cchh (cchh_t *addr) -{ - /* decode heads for large volumes */ - return addr->hh & 0x000F; -} - -static void -vtoc_set_ttr (ttr_t *addr, u_int16_t tt, u_int8_t r) -{ - PDEBUG - addr->tt = tt; - addr->r = r; -} - -void -vtoc_set_cchhb (cchhb_t *addr, u_int32_t cc, u_int16_t hh, u_int8_t b) -{ - PDEBUG - addr->cc = (u_int16_t) cc; - addr->hh = cc >> 16; - addr->hh <<= 4; - addr->hh |= hh; - addr->b = b; -} - -u_int32_t -vtoc_get_cyl_from_cchhb(cchhb_t *addr) -{ - u_int32_t cyl; - - /* decode cylinder for large volumes */ - cyl = addr->hh & 0xFFF0; - cyl <<= 12; - cyl |= addr->cc; - return cyl; -} - -u_int16_t -vtoc_get_head_from_cchhb(cchhb_t *addr) -{ - /* decode heads for large volumes */ - return addr->hh & 0x000F; -} - -/* - * some functions to convert cyl-cyl-head-head addresses to - * block or track numbers - * Note: Record zero is special, so first block on a track is - * in record 1! - */ -u_int64_t -cchhb2blk (cchhb_t *p, struct fdasd_hd_geometry *geo) -{ - return (u_int64_t) vtoc_get_cyl_from_cchhb(p) * - geo->heads * geo->sectors + - vtoc_get_head_from_cchhb(p) * geo->sectors + - p->b; -} - -u_int64_t -cchh2blk (cchh_t *p, struct fdasd_hd_geometry *geo) -{ - return (u_int64_t) vtoc_get_cyl_from_cchh(p) * - geo->heads * geo->sectors + - vtoc_get_head_from_cchh(p) * geo->sectors; -} - -u_int32_t -cchh2trk (cchh_t *p, struct fdasd_hd_geometry *geo) -{ - return vtoc_get_cyl_from_cchh(p) * geo->heads + - vtoc_get_head_from_cchh(p); -} - -void -vtoc_set_date (labeldate_t * d, u_int8_t year, u_int16_t day) -{ - PDEBUG - d->year = year; - d->day = day; -} - -/* - * initializes the volume label with EBCDIC spaces - */ -void -vtoc_volume_label_init (volume_label_t *vlabel) -{ - PDEBUG - sprintf(buffer, "%92s", " "); - vtoc_ebcdic_enc(buffer, buffer, sizeof *vlabel); - memcpy(vlabel, buffer, sizeof *vlabel); -} - -/* - * reads the volume label from dasd - */ -int -vtoc_read_volume_label (int f, unsigned long vlabel_start, - volume_label_t *vlabel) -{ - - char str[5]; - unsigned long block_zero; - typedef struct bogus_label bogus_label_t; - typedef union vollabel vollabel_t; - - union __attribute__((packed)) vollabel { - /* cdl and ldl have the same data struct */ - volume_label_t cdl; - cms_volume_label_t cms; - }; - - struct __attribute__((packed)) bogus_label { - char overhead[512]; - vollabel_t actual_label; - }; - - bogus_label_t mybogus; - bogus_label_t *bogus_ptr = &mybogus; - vollabel_t *union_ptr = &bogus_ptr->actual_label; - volume_label_t *cdl_ptr = &union_ptr->cdl; - - PDEBUG - int rc; - - if (lseek(f, vlabel_start, SEEK_SET) == -1) { - vtoc_error(unable_to_seek, "vtoc_read_volume_label", - _("Could not read volume label.")); - return 1; - } - - rc = read(f, vlabel, sizeof(volume_label_t)); - if (rc != sizeof(volume_label_t)) { - vtoc_error(unable_to_read, "vtoc_read_volume_label", - _("Could not read volume label.")); - return 1; - } - - if (strncmp(vlabel->volkey, vtoc_ebcdic_enc("VOL1", str, 4), 4) == 0 - || strncmp(vlabel->volkey, vtoc_ebcdic_enc("LNX1", str, 4), 4) == 0 - || strncmp(vlabel->volkey, vtoc_ebcdic_enc("CMS1", str, 4), 4) == 0) - return 0; - - /* - If we didn't find a valid volume label, there is a special case - we must try before we give up. For a CMS-formatted disk on FBA - DASD using the DIAG driver and a block size greater than 512, we - must read the block at offset 0, then look for a label within - that block at offset 512. - */ - - block_zero = 0; - - if (lseek(f, block_zero, SEEK_SET) == -1) { - vtoc_error(unable_to_seek, "vtoc_read_volume_label", - _("Could not read volume label.")); - return 1; - } - - rc = read(f, bogus_ptr, sizeof(bogus_label_t)); - if (rc != sizeof(bogus_label_t)) { - vtoc_error(unable_to_read, "vtoc_read_volume_label", - _("Could not read volume label.")); - return 1; - } - - memcpy(vlabel, cdl_ptr, sizeof *vlabel); - return 0; -} - -/* - * writes the volume label to dasd - */ -int -vtoc_write_volume_label (int f, unsigned long vlabel_start, - volume_label_t const *vlabel) -{ - PDEBUG - int rc; - - if (lseek(f, vlabel_start, SEEK_SET) == -1) - vtoc_error(unable_to_seek, "vtoc_write_volume_label", - _("Could not write volume label.")); - - rc = write(f, vlabel, sizeof(volume_label_t)); - if (rc != sizeof(volume_label_t)) - vtoc_error(unable_to_write, "vtoc_write_volume_label", - _("Could not write volume label.")); - - return 0; -} - -/* - * takes a string as input, converts it to uppercase, translates - * it to EBCDIC and fills it up with spaces before it copies it - * as volume serial to the volume label - */ -void -vtoc_volume_label_set_volser (volume_label_t *vlabel, char const *volser) -{ - PDEBUG - int j, i = strlen(volser); - char s[VOLSER_LENGTH + 1]; - - strcpy(s, " "); - vtoc_ebcdic_enc(s, s, VOLSER_LENGTH); - strncpy(vlabel->volid, s, VOLSER_LENGTH); - - if (i > VOLSER_LENGTH) - i = VOLSER_LENGTH; - - strncpy(s, volser, i); - for (j=0; jvolid, s, i); - - return; -} - -/* - * returns the volume serial number right after it is translated - * to ASCII - */ -char * -vtoc_volume_label_get_volser (volume_label_t *vlabel, char *volser) -{ - PDEBUG - vtoc_ebcdic_dec(vlabel->volid, volser, VOLSER_LENGTH); - - return volser; -} - -/* - * sets the volume label key right after - * it has been translated to EBCDIC - */ -void -vtoc_volume_label_set_key (volume_label_t *vlabel, char const *key) -{ - PDEBUG - char s[4]; - - vtoc_ebcdic_enc(key, s, 4); - strncpy(vlabel->volkey, s, 4); - - return; -} - -/* - * sets the volume label identifier right - * after it has been translated to EBCDIC - */ -void -vtoc_volume_label_set_label (volume_label_t *vlabel, char const *lbl) -{ - PDEBUG - char s[4]; - - vtoc_ebcdic_enc(lbl, s, 4); - strncpy(vlabel->vollbl, s, 4); - - return; -} - -/* - * returns the volume label key = the label identifier - * right after it has been translated to ASCII - */ -char * -vtoc_volume_label_get_label (volume_label_t *vlabel, char *lbl) -{ - PDEBUG - vtoc_ebcdic_dec(vlabel->vollbl, lbl, 4); - - return lbl; -} - -/* - * reads either a format4 label or a format1 label - * from the specified position - */ -void -vtoc_read_label (int f, unsigned long position, format1_label_t *f1, - format4_label_t *f4, format5_label_t *f5, format7_label_t *f7) -{ - PDEBUG - int t; - - if (lseek(f, position, SEEK_SET) == -1) - vtoc_error(unable_to_seek, "vtoc_read_label", - _("Could not read VTOC labels.")); - - if (f1 != NULL) { - t = sizeof(format1_label_t); - if (read(f, f1, t) != t) - vtoc_error(unable_to_read, "vtoc_read_label", - _("Could not read VTOC FMT1 DSCB.")); - } - - if (f4 != NULL) { - t = sizeof(format4_label_t); - if (read(f, f4, t) != t) - vtoc_error(unable_to_read, "vtoc_read_label", - _("Could not read VTOC FMT4 DSCB.")); - } - - if (f5 != NULL) { - t = sizeof(format5_label_t); - if (read(f, f5, t) != t) - vtoc_error(unable_to_read, "vtoc_read_label", - _("Could not read VTOC FMT5 DSCB.")); - } - - if (f7 != NULL) { - t = sizeof(format7_label_t); - if (read(f, f7, t) != t) - vtoc_error(unable_to_read, "vtoc_read_label", - _("Could not read VTOC FMT7 DSCB.")); - } -} - -/* - * writes either a FMT1, FMT4 or FMT5 label - * to the specified position - */ -void -vtoc_write_label (int f, unsigned long position, - format1_label_t const *f1, - format4_label_t const *f4, - format5_label_t const *f5, - format7_label_t const *f7, - format9_label_t const *f9) -{ - PDEBUG - int t; - - if (lseek(f, position, SEEK_SET) == -1) - vtoc_error(unable_to_seek, "vtoc_write_label", - _("Could not write VTOC labels.")); - - if (f1 != NULL) { - t = sizeof(format1_label_t); - if (write(f, f1, t) != t) - vtoc_error(unable_to_write, "vtoc_write_label", - _("Could not write VTOC FMT1 DSCB.")); - } - - if (f4 != NULL) { - t = sizeof(format4_label_t); - if (write(f, f4, t) != t) - vtoc_error(unable_to_write, "vtoc_write_label", - _("Could not write VTOC FMT4 DSCB.")); - } - - if (f5 != NULL) { - t = sizeof(format5_label_t); - if (write(f, f5, t) != t) - vtoc_error(unable_to_write, "vtoc_write_label", - _("Could not write VTOC FMT5 DSCB.")); - } - - if (f7 != NULL) { - t = sizeof(format7_label_t); - if (write(f, f7, t) != t) - vtoc_error(unable_to_write, "vtoc_write_label", - _("Could not write VTOC FMT7 DSCB.")); - } - - if (f9 != NULL) - { - t = sizeof(format9_label_t); - if (write(f, f9, t) != t) - { - close(f); - vtoc_error(unable_to_write, "vtoc_write_label", - _("Could not write VTOC FMT9 DSCB.")); - } - } -} - -/* - * initializes a format4 label - */ -void -vtoc_init_format4_label (format4_label_t *f4, - unsigned int compat_cylinders, - unsigned int real_cylinders, unsigned int tracks, - unsigned int blocks, unsigned int blksize, - u_int16_t dev_type) -{ - PDEBUG - int i; - - cchh_t lower = {VTOC_START_CC, VTOC_START_HH}; - cchh_t upper = {VTOC_START_CC, VTOC_START_HH}; - - for (i=0; i<44; i++) f4->DS4KEYCD[i] = 0x04; - f4->DS4IDFMT = 0xf4; - - vtoc_set_cchhb(&f4->DS4HPCHR, 0x0000, 0x0000, 0x00); - f4->DS4DSREC = blocks - 2; - /* free space starts right behind VTOC - vtoc_set_cchh(&f4->DS4HCCHH, VTOC_START_CC, VTOC_START_HH + 1);*/ - vtoc_set_cchh(&f4->DS4HCCHH, 0x0000, 0x0000); - f4->DS4NOATK = 0x0000; - f4->DS4VTOCI = 0x00; - f4->DS4NOEXT = 0x01; - f4->DS4SMSFG = 0x00; - f4->DS4DEVAC = 0x00; - - /* -- begin f4->DS4DEVCT -- */ - f4->DS4DEVCT.DS4DSCYL = compat_cylinders; - f4->DS4DEVCT.DS4DSTRK = tracks; - - switch (dev_type) { - case DASD_3380_TYPE: - f4->DS4DEVCT.DS4DEVTK = DASD_3380_VALUE; - break; - case DASD_3390_TYPE: - f4->DS4DEVCT.DS4DEVTK = DASD_3390_VALUE; - break; - case DASD_9345_TYPE: - f4->DS4DEVCT.DS4DEVTK = DASD_9345_VALUE; - break; - default: - f4->DS4DEVCT.DS4DEVTK = blocks * blksize; - } - - f4->DS4DEVCT.DS4DEVI = 0x00; - f4->DS4DEVCT.DS4DEVL = 0x00; - f4->DS4DEVCT.DS4DEVK = 0x00; - f4->DS4DEVCT.DS4DEVFG = 0x30; - f4->DS4DEVCT.DS4DEVTL = 0x0000; - f4->DS4DEVCT.DS4DEVDT = blocks; - f4->DS4DEVCT.DS4DEVDB = 0x00; - /* -- end f4->DS4DEVCT -- */ - - bzero(f4->DS4AMTIM, sizeof(f4->DS4AMTIM)); - bzero(f4->DS4AMCAT, sizeof(f4->DS4AMCAT)); - bzero(f4->DS4R2TIM, sizeof(f4->DS4R2TIM)); - bzero(f4->res1, sizeof(f4->res1)); - bzero(f4->DS4F6PTR, sizeof(f4->DS4F6PTR)); - - /* -- begin f4lbl->DS4VTOCE -- */ - vtoc_set_extent(&f4->DS4VTOCE, 0x01, 0x00, &lower, &upper); - /* -- end f4lbl->DS4VTOCE -- */ - - bzero(f4->res2, sizeof(f4->res2)); - f4->DS4EFLVL = 0x00; - bzero(&f4->DS4EFPTR, sizeof(f4->DS4EFPTR)); - bzero(&f4->res3, sizeof(f4->res3)); - f4->DS4DCYL = real_cylinders; - bzero(f4->res4, sizeof(f4->res4)); - f4->DS4DEVF2 = 0x40; /* allow format 8 and 9 labels */ - bzero(&f4->res5, sizeof(f4->res5)); -} - -/* - * initializes a format5 label - */ -void -vtoc_init_format5_label (format5_label_t *f5) -{ - PDEBUG - int i; - - bzero(f5, sizeof(format5_label_t)); - for (i=0; i<4; i++) - f5->DS5KEYID[i] = 0x05; - f5->DS5FMTID = 0xf5; -} - -/* - * initializes a format7 label - */ -void -vtoc_init_format7_label (format7_label_t *f7) -{ - PDEBUG - int i; - - bzero(f7, sizeof(format7_label_t)); - for (i=0; i<4; i++) - f7->DS7KEYID[i] = 0x07; - f7->DS7FMTID = 0xf7; -} - -/* - * helper function that initializes a most parts of a - * format1 or format 8 label, all but the field DS1FMTID - */ -void -vtoc_init_format_1_8_label (unsigned int blksize, - extent_t *part_extent, format1_label_t *f1) -{ - PDEBUG - struct tm * creatime; - time_t t; - char str[80]; - - /* get actual date */ - t = time(NULL); - creatime = gmtime(&t); - - bzero(f1->DS1DSNAM, sizeof(f1->DS1DSNAM)); - sprintf(str, "PART .NEW "); - vtoc_ebcdic_enc(str, str, 44); - strncpy(f1->DS1DSNAM, str, 44); - strncpy(f1->DS1DSSN, " ", 6); - f1->DS1VOLSQ = 0x0001; - - vtoc_set_date(&f1->DS1CREDT, (u_int8_t) creatime->tm_year, - (u_int16_t) creatime->tm_yday); - /* expires never - 99 365 */ - vtoc_set_date(&f1->DS1EXPDT, 0x63, 0x016D); - f1->DS1NOEPV = 0x01; - f1->DS1NOBDB = 0x00; - f1->DS1FLAG1 = 0x00; - vtoc_ebcdic_enc("IBM LINUX ", str, 13); - strncpy(f1->DS1SYSCD, str, 13); - vtoc_set_date(&f1->DS1REFD, (u_int8_t) creatime->tm_year, - (u_int16_t) creatime->tm_yday); - f1->DS1SMSFG = 0x00; - f1->DS1SCXTF = 0x00; - f1->DS1SCXTV = 0x0000; - f1->DS1DSRG1 = 0x00; - f1->DS1DSRG2 = 0x00; - f1->DS1RECFM = 0x88; - f1->DS1OPTCD = 0x00; - f1->DS1BLKL = blksize; - f1->DS1LRECL = blksize; - f1->DS1KEYL = 0x00; - f1->DS1RKP = 0x0000; - f1->DS1DSIND = 0x80; /* last volume for this dataset */ - f1->DS1SCAL1 = 0x80; - bzero(&f1->DS1SCAL3, sizeof(f1->DS1SCAL3)); - vtoc_set_ttr(&f1->DS1LSTAR, 0x0000, 0x00); - f1->DS1TRBAL = 0x00; - bzero(&f1->res1, sizeof(f1->res1)); - memcpy(&f1->DS1EXT1, part_extent, sizeof(extent_t)); - bzero(&f1->DS1EXT2, sizeof(extent_t)); - bzero(&f1->DS1EXT3, sizeof(extent_t)); - vtoc_set_cchhb(&f1->DS1PTRDS, 0x0000, 0x0000, 0x00); -} - -void -vtoc_init_format1_label (unsigned int blksize, - extent_t *part_extent, format1_label_t *f1) -{ - vtoc_init_format_1_8_label(blksize, part_extent, f1); - f1->DS1FMTID = 0xf1; -} - -void -vtoc_init_format8_label (unsigned int blksize, - extent_t *part_extent, format1_label_t *f8) -{ - vtoc_init_format_1_8_label(blksize, part_extent, f8); - f8->DS1FMTID = 0xf8; -} - -void -vtoc_update_format8_label (cchhb_t *associated_f9, format1_label_t *f8) -{ - memcpy(&f8->DS1PTRDS, associated_f9, sizeof(*associated_f9)); -} - -void -vtoc_init_format9_label (format9_label_t *f9) -{ - f9->DS9KEYID = 0x09; - f9->DS9SUBTY = 0x01; - f9->DS9NUMF9 = 1; - f9->DS9FMTID = 0xf9; -} - -/* - * do some updates to the VTOC format4 label - */ -void -vtoc_update_format4_label (format4_label_t *f4, cchhb_t *highest_f1, - u_int16_t unused_update) -{ - PDEBUG - /* update highest address of a format 1 label */ - memcpy(&f4->DS4HPCHR, highest_f1, sizeof(cchhb_t)); - - /* update unused DSCB count */ - f4->DS4DSREC = unused_update; -} - -/* - * reorganizes all extents within a FMT5 label - */ -static void -vtoc_reorganize_FMT5_extents (format5_label_t *f5) -{ - PDEBUG - ds5ext_t *ext, *last, tmp; - int i, j; - - for (i=0; i<26; i++) { - if (i==0) - last = &f5->DS5AVEXT; - else if ((i > 0) && (i < 8)) - last = &f5->DS5EXTAV[i-1]; - else - last = &f5->DS5MAVET[i-8]; - - for (j=i; j<26; j++) { - if (j==0) - ext = &f5->DS5AVEXT; - else if ((j > 0) && (j < 8)) - ext = &f5->DS5EXTAV[j-1]; - else - ext = &f5->DS5MAVET[j-8]; - - if (((ext->t > 0) && (last->t == 0)) || - ((ext->t > 0) && (ext->t < last->t))) - { - tmp.t = last->t; - tmp.fc = last->fc; - tmp.ft = last->ft; - last->t = ext->t; - last->fc = ext->fc; - last->ft = ext->ft; - ext->t = tmp.t; - ext->fc = tmp.fc; - ext->ft = tmp.ft; - } - } - } -} - -/* - * add a free space extent description to the VTOC FMT5 DSCB - */ -void -vtoc_update_format5_label_add (format5_label_t *f5, int verbose, - int trk, u_int16_t a, u_int16_t b, u_int8_t c) -{ - PDEBUG - ds5ext_t *ext = NULL, *tmp = NULL; - int i; - - for (i=0; i<26; i++) { - if (i==0) - ext = &f5->DS5AVEXT; - else if ((i > 0) && (i < 8)) - ext = &f5->DS5EXTAV[i-1]; - else - ext = &f5->DS5MAVET[i-8]; - - if (((a < ext->t) && (a + b*trk + c > ext->t)) || - ((a > ext->t) && (ext->t + ext->fc*trk + ext->ft > a))) - { - puts ("BUG: overlapping free space extents " - "in FMT5 DSCB!\nexiting..."); - exit(EXIT_FAILURE); - } - - if ((ext->t + ext->fc + ext->ft) == 0x0000) { - ext->t = a; - ext->fc = b; - ext->ft = c; - tmp = ext; - if (verbose) - puts ("FMT5 add extent: add new extent"); - break; - } - } - - if (tmp == NULL) { - /* BUG: no free extent found */ - puts ("BUG: no free FMT5 DSCB extent found!\nexiting..."); - exit(EXIT_FAILURE); - } - - for (i=0; i<26; i++) { - if (i==0) - ext = &f5->DS5AVEXT; - else if ((i > 0) && (i < 8)) - ext = &f5->DS5EXTAV[i-1]; - else - ext = &f5->DS5MAVET[i-8]; - - if ((ext->t + ext->fc + ext->ft) == 0x0000) - continue; - - if ((ext->t + ext->fc*trk + ext->ft) == tmp->t) { - /* this extent precedes the new one */ - ext->fc += (tmp->fc + (tmp->ft + ext->ft)/trk); - ext->ft = (tmp->ft + ext->ft) % trk; - bzero(tmp, sizeof(ds5ext_t)); - tmp = ext; - - if (verbose) - puts ("FMT5 add extent: " - "merge with predecessor"); - - i = -1; - continue; - } - - if ((tmp->t + tmp->fc*trk + tmp->ft) == ext->t) { - /* this extent succeeds the new one */ - ext->t = tmp->t; - ext->fc += (tmp->fc + (tmp->ft + ext->ft)/trk); - ext->ft = (tmp->ft + ext->ft) % trk; - bzero(tmp, sizeof(ds5ext_t)); - tmp = ext; - - if (verbose) - puts ("FMT5 add extent: " - "merge with successor"); - - i = -1; - continue; - } - } -} - -/* - * remove a free space extent description from the VTOC FMT5 DSCB - */ -void -vtoc_update_format5_label_del (format5_label_t *f5, int verbose, - int trk, u_int16_t a, u_int16_t b, u_int8_t c) -{ - PDEBUG - ds5ext_t *ext; - int i, counter=0; - - for (i=0; i<26; i++) { - if (i==0) - ext = &f5->DS5AVEXT; - else if ((i > 0) && (i < 8)) - ext = &f5->DS5EXTAV[i-1]; - else - ext = &f5->DS5MAVET[i-8]; - - if ((a == ext->t) && (b == ext->fc) && (c == ext->ft)) { - /* fills up whole free space gap */ - bzero(ext, sizeof(ds5ext_t)); - - if (verbose) - puts ("FMT5 del extent: fills whole gap"); - - counter++; - break; - } - - if ((a == ext->t) && ((b < ext->fc) || (c < ext->ft))) { - /* left-bounded in free space gap */ - ext->t = ext->t + b*trk + c; - - if (c > ext->ft) { - ext->fc -= (b + 1); - ext->ft -= (c - trk); - } else { - ext->fc -= b; - ext->ft -= c; - } - - if (verbose) - puts ("FMT5 del extent: left bounded"); - - counter++; - break; - } - - if ((ext->t < a) - && ((ext->t + ext->fc*trk + ext->ft) == (a + b*trk + c))) - { - /* right-bounded in free space gap */ - if (c > ext->ft) { - ext->fc -= (b + 1); - ext->ft -= (c - trk); - } else { - ext->fc -= b; - ext->ft -= c; - } - - if (verbose) - puts ("FMT5 del extent: right bounded"); - - counter++; - break; - } - - if ((a > ext->t) - && ((ext->t + ext->fc*trk + ext->ft) > (a + b*trk + c))) - { - /* partition devides free space into 2 pieces */ - u_int16_t x = a + b*trk + c; - u_int16_t w,y; - u_int8_t z; - - w = (ext->t + ext->fc*trk + ext->ft) - (a + b*trk + c); - y = w / trk; - z = w % trk; - - ext->fc = (a - ext->t) / trk; - ext->ft = (a - ext->t) % trk; - - vtoc_update_format5_label_add(f5, verbose, - trk, x, y, z); - - if (verbose) - puts ("FMT5 del extent: 2 pieces"); - - counter++; - break; - } - - if ((a < ext->t) && (a + b*trk + c > ext->t) - && (a + b*trk + c < ext->t + ext->fc*trk + ext->ft)) - { - puts ("BUG: corresponding free space extent " - "doesn't match free space currently shown " - "in FMT5 DSCB!\nexiting..."); - exit(EXIT_FAILURE); - } - - if ((a > ext->t) && (a < ext->t + ext->fc*trk + ext->ft) - && (a + b*trk + c > ext->t + ext->fc*trk + ext->ft)) - { - puts ("BUG: specified free space extent for " - "deleting doesn't match free space " - "currently shown in FMT5 DSCB!\n" - "exiting..."); - exit(EXIT_FAILURE); - } - } - - if (counter > 0) - return; - - puts ("BUG: specified free space extent for " - "deleting not found in FMT5 DSCB!\n" - "exiting..."); - exit(EXIT_FAILURE); -} - -/* - * reorganizes all extents within a FMT7 label - */ -static void -vtoc_reorganize_FMT7_extents (format7_label_t *f7) -{ - PDEBUG - ds7ext_t *ext, *last, tmp; - int i, j; - - for (i=0; i<16; i++) { - if (i<5) - last = &f7->DS7EXTNT[i]; - else - last = &f7->DS7ADEXT[i-5]; - - for (j=i; j<16; j++) { - if (j<5) - ext = &f7->DS7EXTNT[j]; - else - ext = &f7->DS7ADEXT[j-5]; - - if (((ext->a > 0) && (last->a == 0)) - || ((ext->a > 0) && (ext->a < last->a))) - { - tmp.a = last->a; - tmp.b = last->b; - last->a = ext->a; - last->b = ext->b; - ext->a = tmp.a; - ext->b = tmp.b; - } - } - } -} - -/* - * add a free space extent description to the VTOC FMT7 DSCB - */ -void -vtoc_update_format7_label_add (format7_label_t *f7, int verbose, - u_int32_t a, u_int32_t b) -{ - PDEBUG - ds7ext_t *ext = NULL, *tmp = NULL; - int i; - - for (i=0; i<16; i++) { - if (i<5) - ext = &f7->DS7EXTNT[i]; - else - ext = &f7->DS7ADEXT[i-5]; - - if (((a < ext->a) && (b > ext->a) && (b < ext->b)) - || ((a > ext->a) && (a < ext->b) && (b > ext->b))) - { - puts ("BUG: overlapping free space extents " - "in FMT7 DSCB!\nexiting..."); - exit(EXIT_FAILURE); - } - - if ((ext->a + ext->b) == 0x00000000) { - ext->a = a; - ext->b = b; - tmp = ext; - - if (verbose) - puts ("FMT7 add extent: add new extent"); - - break; - } - } - - if (tmp == NULL) { - /* BUG: no free extent found */ - puts ("BUG: no free FMT7 DSCB extent found!\nexiting..."); - exit(EXIT_FAILURE); - } - - for (i=0; i<16; i++) { - if (i<5) - ext = &f7->DS7EXTNT[i]; - else - ext = &f7->DS7ADEXT[i-5]; - - if ((ext->a + ext->b) == 0x00000000) - continue; - - if (ext->b == tmp->a) { - /* this extent precedes the new one */ - ext->b = tmp->b; - bzero(tmp, sizeof(ds7ext_t)); - tmp = ext; - - if (verbose) - puts ("FMT7 add extent: " - "merge with predecessor"); - - i = -1; - continue; - } - - if (ext->a == tmp->b) { - /* this extent succeeds the new one */ - ext->a = tmp->a; - bzero(tmp, sizeof(ds7ext_t)); - tmp = ext; - - if (verbose) - puts ("FMT7 add extent: merge with successor"); - - i = -1; - continue; - } - } -} - -/* - * remove a free space extent description from the VTOC FMT7 DSCB - */ -void -vtoc_update_format7_label_del (format7_label_t *f7, int verbose, - u_int32_t a, u_int32_t b) -{ - PDEBUG - ds7ext_t *ext; - int i, counter=0; - - for (i=0; i<16; i++) { - if (i<5) - ext = &f7->DS7EXTNT[i]; - else - ext = &f7->DS7ADEXT[i-5]; - - if ((a == ext->a) && (b == ext->b)) { - /* fills up whole free space gap */ - bzero(ext, sizeof(ds7ext_t)); - - if (verbose) - puts ("FMT7 del extent: fills whole gap"); - - counter++; - break; - } - - if ((a == ext->a) && (b < ext->b)) { - /* left-bounded in free space gap */ - ext->a = b; - - if (verbose) - puts ("FMT7 add extent: left-bounded"); - - counter++; - break; - } - - if ((a > ext->a) && (b == ext->b)) { - /* right-bounded in free space gap */ - ext->b = a; - - if (verbose) - puts ("FMT7 add extent: right-bounded"); - - counter++; - break; - } - - if ((a > ext->a) && (b < ext->b)) { - /* partition devides free space into 2 pieces */ - vtoc_update_format7_label_add(f7, verbose, b, ext->b); - ext->b = a; - - if (verbose) - puts ("FMT7 add extent: 2 pieces"); - - counter++; - break; - } - - if (((a < ext->a) && (b > ext->a)) || ((a < ext->b) && (b > ext->b))) { - puts ("BUG: specified free space extent for deleting " - "doesn't match free space currently shown in " - "FMT7 DSCB!\nexiting..."); - printf ("%d %d %d %d\n", a, b, ext->a, ext->b); - exit(EXIT_FAILURE); - } - } - - if (counter > 0) - return; - - puts ("BUG: specified free space extent for " - "deleting not found in FMT7 DSCB!\n" - "exiting..."); - exit(EXIT_FAILURE); -} - -void -vtoc_set_freespace(format4_label_t *f4, format5_label_t *f5, - format7_label_t *f7, char ch, int verbose, - u_int32_t start, u_int32_t stop, u_int32_t cyl, - u_int32_t trk) -{ - PDEBUG - if ((cyl * trk) > BIG_DISK_SIZE) { - if (ch == '+') - vtoc_update_format7_label_add(f7, verbose, start, - /* ds7ext RTA + 1 */ - stop + 1); - else if (ch == '-') - vtoc_update_format7_label_del(f7, verbose, start, - /* ds7ext RTA + 1 */ - stop + 1); - else - puts ("BUG: syntax error in vtoc_set_freespace call"); - - vtoc_reorganize_FMT7_extents (f7); - - f4->DS4VTOCI = 0xa0; - f4->DS4EFLVL = 0x07; - vtoc_set_cchhb(&f4->DS4EFPTR, 0x0000, 0x0001, 0x03); - } else { - u_int16_t x,y; - u_int8_t z; - - x = (u_int16_t) start; - y = (u_int16_t) ((stop - start + 1) / trk); - z = (u_int8_t) ((stop - start + 1) % trk); - - if (ch == '+') - vtoc_update_format5_label_add(f5, verbose, trk, x, y, z); - else if (ch == '-') - vtoc_update_format5_label_del(f5, verbose, trk, x, y, z); - else - puts ("BUG: syntax error in vtoc_set_freespace call"); - - vtoc_reorganize_FMT5_extents (f5); - } -} diff --git a/jni/parted/libparted/libparted.c b/jni/parted/libparted/libparted.c deleted file mode 100755 index 204ce00..0000000 --- a/jni/parted/libparted/libparted.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 1999-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include -#include "configmake.h" - -#include -#include - -#include "architecture.h" - -#if ENABLE_NLS -# include -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -/* ped_malloc() debugging. Stick the address and size of memory blocks that - * weren't free()d in here, and an exception will be thrown when it is - * allocated. That way, you can find out what, exactly, the allocated thing - * is, and where it is created. - */ -typedef struct -{ - void* pointer; - size_t size; -} pointer_size_type; - -/* IMHO, none of the DEBUG-related code below is useful, and the - ped_malloc memset code is actually quite harmful: it masked at - least two nasty bugs that were fixed in June of 2007. */ -#undef DEBUG -#ifdef DEBUG -static pointer_size_type dodgy_malloc_list[] = { - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0}, - {0, 0} -}; - -static int dodgy_memory_active[100]; -#endif /* DEBUG */ - -extern void ped_disk_aix_init (); -extern void ped_disk_bsd_init (); -extern void ped_disk_dvh_init (); -extern void ped_disk_gpt_init (); -extern void ped_disk_loop_init (); -extern void ped_disk_mac_init (); -extern void ped_disk_msdos_init (); -extern void ped_disk_pc98_init (); -extern void ped_disk_sun_init (); -extern void ped_disk_amiga_init (); -extern void ped_disk_dasd_init (); -extern void ped_disk_atari_init (); - -static void -init_disk_types () -{ - /* Note that probing is done in the reverse order of init */ - ped_disk_loop_init (); /* must be last in the probe list */ - -#if defined __s390__ || defined __s390x__ - ped_disk_dasd_init(); -#endif - ped_disk_atari_init (); /* easy false positives, so probe others first */ - ped_disk_sun_init (); -#ifdef ENABLE_PC98 - ped_disk_pc98_init (); -#endif - ped_disk_msdos_init (); - ped_disk_mac_init (); - ped_disk_gpt_init (); - ped_disk_dvh_init (); - ped_disk_bsd_init (); - ped_disk_amiga_init (); - ped_disk_aix_init (); -} - -extern void ped_file_system_amiga_init (void); -extern void ped_file_system_xfs_init (void); -extern void ped_file_system_ufs_init (void); -extern void ped_file_system_reiserfs_init (void); -extern void ped_file_system_ntfs_init (void); -extern void ped_file_system_linux_swap_init (void); -extern void ped_file_system_jfs_init (void); -extern void ped_file_system_hfs_init (void); -extern void ped_file_system_fat_init (void); -extern void ped_file_system_f2fs_init (void); -extern void ped_file_system_ext2_init (void); -extern void ped_file_system_nilfs2_init (void); -extern void ped_file_system_btrfs_init (void); -extern void ped_file_system_udf_init (void); - -static void -init_file_system_types () -{ - ped_file_system_amiga_init (); - ped_file_system_xfs_init (); - ped_file_system_ufs_init (); - ped_file_system_reiserfs_init (); - ped_file_system_ntfs_init (); - ped_file_system_linux_swap_init (); - ped_file_system_jfs_init (); - ped_file_system_hfs_init (); - ped_file_system_fat_init (); - ped_file_system_f2fs_init (); - ped_file_system_ext2_init (); - ped_file_system_nilfs2_init (); - ped_file_system_btrfs_init (); - ped_file_system_udf_init (); -} - -extern void ped_disk_aix_done (); -extern void ped_disk_bsd_done (); -extern void ped_disk_dvh_done (); -extern void ped_disk_gpt_done (); -extern void ped_disk_loop_done (); -extern void ped_disk_mac_done (); -extern void ped_disk_msdos_done (); -extern void ped_disk_pc98_done (); -extern void ped_disk_sun_done (); -extern void ped_disk_amiga_done (); -extern void ped_disk_dasd_done (); -extern void ped_disk_atari_done (); - -static void -done_disk_types () -{ -#if defined __s390__ || __s390x__ - ped_disk_dasd_done (); -#endif - ped_disk_sun_done (); -#ifdef ENABLE_PC98 - ped_disk_pc98_done (); -#endif - ped_disk_msdos_done (); - ped_disk_mac_done (); - ped_disk_loop_done (); - ped_disk_gpt_done (); - ped_disk_dvh_done (); - ped_disk_bsd_done (); - ped_disk_amiga_done (); - ped_disk_aix_done (); - ped_disk_atari_done (); -} - -static void _init() __attribute__ ((constructor)); - -static void -_init() -{ -#ifdef ENABLE_NLS - bindtextdomain (PACKAGE, LOCALEDIR); -#endif - - init_disk_types (); - init_file_system_types (); - ped_set_architecture (); -#ifdef DEBUG - memset (dodgy_memory_active, 0, sizeof (dodgy_memory_active)); -#endif -} - -extern void ped_file_system_nilfs2_done (void); -extern void ped_file_system_ext2_done (void); -extern void ped_file_system_fat_done (void); -extern void ped_file_system_f2fs_done (void); -extern void ped_file_system_hfs_done (void); -extern void ped_file_system_jfs_done (void); -extern void ped_file_system_linux_swap_done (void); -extern void ped_file_system_ntfs_done (void); -extern void ped_file_system_reiserfs_done (void); -extern void ped_file_system_ufs_done (void); -extern void ped_file_system_xfs_done (void); -extern void ped_file_system_amiga_done (void); -extern void ped_file_system_btrfs_done (void); -extern void ped_file_system_udf_done (void); - -static void -done_file_system_types () -{ - ped_file_system_nilfs2_done (); - ped_file_system_ext2_done (); - ped_file_system_f2fs_done (); - ped_file_system_fat_done (); - ped_file_system_hfs_done (); - ped_file_system_jfs_done (); - ped_file_system_linux_swap_done (); - ped_file_system_ntfs_done (); - ped_file_system_reiserfs_done (); - ped_file_system_ufs_done (); - ped_file_system_xfs_done (); - ped_file_system_amiga_done (); - ped_file_system_btrfs_done (); - ped_file_system_udf_done (); -} - -static void _done() __attribute__ ((destructor)); - -static void -_done() -{ - ped_device_free_all (); - done_disk_types (); - done_file_system_types (); -} - -const char* -ped_get_version () -{ - return VERSION; -} - -void* -ped_malloc (size_t size) -{ - void* mem; - - mem = (void*) malloc (size); - if (!mem) { - ped_exception_throw (PED_EXCEPTION_FATAL, PED_EXCEPTION_CANCEL, - _("Out of memory.")); - return NULL; - } - - return mem; -} - - -void* ped_calloc (size_t size) -{ - void* buf = ped_malloc (size); - - memset (buf, 0, size); - - return buf; -} diff --git a/jni/parted/libparted/mbr.s b/jni/parted/libparted/mbr.s deleted file mode 100755 index 8ac2240..0000000 --- a/jni/parted/libparted/mbr.s +++ /dev/null @@ -1,85 +0,0 @@ -; libparted - a library for manipulating disk partitions -; Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software -; Foundation, Inc. -; -; 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 3 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, see . - -; NOTE: I build this with: -; $ as86 -b /dev/stdout mbr.s | hexdump -e '8/1 "0x%02x, " "\n"' -; -; The build isn't done automagically by make, because as86 may not be on many -; machines (particularly non-x86). Also, it seems rather difficult to get -; as86 to build object files that can be linked, especially as it's 16 bit -; code... - -USE16 - -; This code, plus the partition table is loaded into 0000:7C00 by the BIOS - -.text - -; set top of stack to 1000:B000 - - cli - - mov ax, #0x1000 - mov ss, ax - mov sp, #0xB000 - - mov ax, #0x0000 - mov ds, ax - mov es, ax - - sti - -; Copy what the BIOS loaded (i.e. the MBR + head of partition table) from -; 0000:7c00 to 0000:0600 - - mov si, #0x7c00 - mov di, #0x0600 - mov cx, #0x200 - rep - movsb - -; Jump to the copy of the MBR - - jmp 0x0000:find_boot_partition + 0x0600 - -find_boot_partition: - mov si, #0x07BE - -check_next_bootable: - cmp [si], al - jnz found_bootable - add si, #0x0010 - cmp si, #0x07FE - jnz check_next_bootable - jmp error - -found_bootable: - -; Load in the boot sector at 0000:7c00 - - mov ah, #2 ; BIOS command (read) - mov al, #1 ; count - mov bx, #0x7c00 ; destination pointer - mov dl, #0x80 ; drive - mov dh, byte ptr [si + 1] ; head - mov cx, word ptr [si + 2] ; sector / cylinder - int #0x13 ; BIOS read interrupt - - jmp 0x0000:0x7c00 ; hand control to boot sector - -error: - jmp error diff --git a/jni/parted/libparted/timer.c b/jni/parted/libparted/timer.c deleted file mode 100755 index b913150..0000000 --- a/jni/parted/libparted/timer.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2001, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** \file timer.c */ - -/** - * \addtogroup PedTimer - * - * \brief A PedTimer keeps track of the progress of a single (possibly - * compound) operation. - * - * The user of libparted constructs a PedTimer, and passes it to libparted - * functions that are likely to be expensive operations - * (like ped_file_system_resize). Use of timers is optional... you may - * pass NULL instead. - * - * When you create a PedTimer, you must specify a timer handler function. - * This will be called when there's an update on how work is progressing. - * - * Timers may be nested. When a timer is constructed, you can choose - * to assign it a parent, along with an estimate of what proportion of - * the total (parent's) time will be used in the nested operation. In - * this case, the nested timer's handler is internal to libparted, - * and simply updates the parent's progress, and calls its handler. - * - * @{ - */ - - -#include -#include -#include - -typedef struct { - PedTimer* parent; - float nest_frac; - float start_frac; -} NestedContext; - - -/** - * \brief Creates a timer. - * - * Context will be passed in the \p context - * argument to the \p handler, when it is invoked. - * - * \return a new PedTimer - */ -PedTimer* -ped_timer_new (PedTimerHandler* handler, void* context) -{ - PedTimer* timer; - - PED_ASSERT (handler != NULL); - - timer = (PedTimer*) ped_malloc (sizeof (PedTimer)); - if (!timer) - return NULL; - - timer->handler = handler; - timer->context = context; - ped_timer_reset (timer); - return timer; -} - - -/** - * \brief Destroys a \p timer. - */ -void -ped_timer_destroy (PedTimer* timer) -{ - if (!timer) - return; - - free (timer); -} - -/* This function is used by ped_timer_new_nested() as the timer->handler - * function. - */ -static void -_nest_handler (PedTimer* timer, void* context) -{ - NestedContext* ncontext = (NestedContext*) context; - - ped_timer_update ( - ncontext->parent, - ncontext->start_frac + ncontext->nest_frac * timer->frac); -} - - -/** - * \brief Creates a new nested timer. - * - * This function creates a "nested" timer that describes the progress - * of a subtask. \p parent is the parent timer, and \p nested_frac is - * the estimated proportion (between 0 and 1) of the time that will be - * spent doing the nested timer's operation. The timer should only be - * constructed immediately prior to starting the nested operation. - * (It will be inaccurate, otherwise). - * Updates to the progress of the subtask are propagated - * back through to the parent task's timer. - * - * \return nested timer - */ -PedTimer* -ped_timer_new_nested (PedTimer* parent, float nest_frac) -{ - NestedContext* context; - - if (!parent) - return NULL; - - PED_ASSERT (nest_frac >= 0.0f); - PED_ASSERT (nest_frac <= 1.0f); - - context = (NestedContext*) ped_malloc (sizeof (NestedContext)); - if (!context) - return NULL; - context->parent = parent; - context->nest_frac = nest_frac; - context->start_frac = parent->frac; - - return ped_timer_new (_nest_handler, context); -} - -/** - * \brief Destroys a nested \p timer. - */ -void -ped_timer_destroy_nested (PedTimer* timer) -{ - if (!timer) - return; - - free (timer->context); - ped_timer_destroy (timer); -} - -/** - * \internal - * - * \brief This function calls the update handler, making sure that it has - * the latest time. - * - * First it updates \p timer->now and recomputes \p timer->predicted_end, - * and then calls the handler. - */ -void -ped_timer_touch (PedTimer* timer) -{ - if (!timer) - return; - - timer->now = time (NULL); - if (timer->now > timer->predicted_end) - timer->predicted_end = timer->now; - - timer->handler (timer, timer->context); -} - -/** - * \internal - * - * \brief This function sets the \p timer into a "start of task" position. - * - * It resets the \p timer, by setting \p timer->start and \p timer->now - * to the current time. - */ -void -ped_timer_reset (PedTimer* timer) -{ - if (!timer) - return; - - timer->start = timer->now = timer->predicted_end = time (NULL); - timer->state_name = NULL; - timer->frac = 0; - - ped_timer_touch (timer); -} - -/** - * \internal - * - * \brief This function tells a \p timer what fraction \p frac of the task - * has been completed. - * - * Sets the new \p timer->frac, and calls ped_timer_touch(). - */ -void -ped_timer_update (PedTimer* timer, float frac) -{ - if (!timer) - return; - - timer->now = time (NULL); - timer->frac = frac; - - if (frac) - timer->predicted_end - = timer->start - + (long) ((timer->now - timer->start) / frac); - - ped_timer_touch (timer); -} - -/** - * \internal - * - * \brief This function changes the description of the current task that the - * \p timer describes. - * - * Sets a new name - \p state_name - for the current "phase" of the operation, - * and calls ped_timer_touch(). - */ -void -ped_timer_set_state_name (PedTimer* timer, const char* state_name) -{ - if (!timer) - return; - - timer->state_name = state_name; - ped_timer_touch (timer); -} - -/** @} */ diff --git a/jni/parted/libparted/unit.c b/jni/parted/libparted/unit.c deleted file mode 100755 index a63b98d..0000000 --- a/jni/parted/libparted/unit.c +++ /dev/null @@ -1,586 +0,0 @@ -/* - libparted - a library for manipulating disk partitions - Copyright (C) 2005, 2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -/** \file unit.c */ - -/** - * \addtogroup PedUnit - * - * \brief The PedUnit module provides a standard mechanism for describing - * and parsing locations within devices in human-friendly plain text. - * - * Internally, libparted uses PedSector (which is typedef'ed to be long long - * in ) to describe device locations such as the start and - * end of partitions. However, sector numbers are often long and unintuitive. - * For example, my extended partition starts at sector 208845. PedUnit allows - * this location to be represented in more intutitive ways, including "106Mb", - * "0Gb" and "0%", as well as "208845s". PedUnit aims to provide facilities - * to provide a consistent system for describing device locations all - * throughout libparted. - * - * PedUnit provides two basic services: converting a PedSector into a text - * representation, and parsing a text representation into a PedSector. - * PedUnit currently supports these units: - * - * sectors, bytes, kilobytes, megabytes, gigabytes, terabytes, compact, - * cylinder and percent. - * - * PedUnit has a global variable that contains the default unit for all - * conversions. - * - * @{ - */ - - - - -#include -#include -#include -#include - -#include -#include -#include - -#define N_(String) String -#if ENABLE_NLS -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - - -static PedUnit default_unit = PED_UNIT_COMPACT; -static const char* unit_names[] = { - "s", - "B", - "kB", - "MB", - "GB", - "TB", - "compact", - "cyl", - "chs", - "%", - "kiB", - "MiB", - "GiB", - "TiB" -}; - - -/** - * \brief Set the default \p unit used by subsequent calls to the PedUnit API. - * - * In particular, this affects how locations inside error messages - * (exceptions) are displayed. - */ -void -ped_unit_set_default (PedUnit unit) -{ - default_unit = unit; -} - - -/** - * \brief Get the current default unit. - */ -PedUnit _GL_ATTRIBUTE_PURE -ped_unit_get_default () -{ - return default_unit; -} - -/** - * Get the byte size of a given \p unit. - */ -long long -ped_unit_get_size (const PedDevice* dev, PedUnit unit) -{ - PedSector cyl_size = dev->bios_geom.heads * dev->bios_geom.sectors; - - switch (unit) { - case PED_UNIT_SECTOR: return dev->sector_size; - case PED_UNIT_BYTE: return 1; - case PED_UNIT_KILOBYTE: return PED_KILOBYTE_SIZE; - case PED_UNIT_MEGABYTE: return PED_MEGABYTE_SIZE; - case PED_UNIT_GIGABYTE: return PED_GIGABYTE_SIZE; - case PED_UNIT_TERABYTE: return PED_TERABYTE_SIZE; - case PED_UNIT_KIBIBYTE: return PED_KIBIBYTE_SIZE; - case PED_UNIT_MEBIBYTE: return PED_MEBIBYTE_SIZE; - case PED_UNIT_GIBIBYTE: return PED_GIBIBYTE_SIZE; - case PED_UNIT_TEBIBYTE: return PED_TEBIBYTE_SIZE; - case PED_UNIT_CYLINDER: return cyl_size * dev->sector_size; - case PED_UNIT_CHS: return dev->sector_size; - - case PED_UNIT_PERCENT: - return dev->length * dev->sector_size / 100; - - case PED_UNIT_COMPACT: - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Cannot get unit size for special unit " - "'COMPACT'.")); - return 0; - } - - /* never reached */ - PED_ASSERT(0); - return 0; -} - -/** - * Get a textual (non-internationalized) representation of a \p unit. - * - * For example, the textual representation of PED_UNIT_SECTOR is "s". - */ -const char* -ped_unit_get_name (PedUnit unit) -{ - return unit_names[unit]; -} - -/** - * Get a unit based on its textual representation: \p unit_name. - * - * For example, ped_unit_get_by_name("Mb") returns PED_UNIT_MEGABYTE. - */ -PedUnit -ped_unit_get_by_name (const char* unit_name) -{ - PedUnit unit; - for (unit = PED_UNIT_FIRST; unit <= PED_UNIT_LAST; unit++) { - if (!strcasecmp (unit_names[unit], unit_name)) - return unit; - } - return -1; -} - -static char* -ped_strdup (const char *str) -{ - char *result; - result = ped_malloc (strlen (str) + 1); - if (!result) - return NULL; - strcpy (result, str); - return result; -} - -/** - * \brief Get a string that describes the location of the \p byte on - * device \p dev. - * - * The string is described with the desired \p unit. - * The returned string must be freed with free(). - */ -char* -ped_unit_format_custom_byte (const PedDevice* dev, PedSector byte, PedUnit unit) -{ - char buf[100]; - PedSector sector = byte / dev->sector_size; - double d, w; - int p; - - PED_ASSERT (dev != NULL); - - /* CHS has a special comma-separated format. */ - if (unit == PED_UNIT_CHS) { - const PedCHSGeometry *chs = &dev->bios_geom; - snprintf (buf, 100, "%lld,%lld,%lld", - sector / chs->sectors / chs->heads, - (sector / chs->sectors) % chs->heads, - sector % chs->sectors); - return ped_strdup (buf); - } - - /* Cylinders, sectors and bytes should be rounded down... */ - if (unit == PED_UNIT_CYLINDER - || unit == PED_UNIT_SECTOR - || unit == PED_UNIT_BYTE) { - snprintf (buf, 100, "%lld%s", - byte / ped_unit_get_size (dev, unit), - ped_unit_get_name (unit)); - return ped_strdup (buf); - } - - if (unit == PED_UNIT_COMPACT) { - if (byte >= 10LL * PED_TERABYTE_SIZE) - unit = PED_UNIT_TERABYTE; - else if (byte >= 10LL * PED_GIGABYTE_SIZE) - unit = PED_UNIT_GIGABYTE; - else if (byte >= 10LL * PED_MEGABYTE_SIZE) - unit = PED_UNIT_MEGABYTE; - else if (byte >= 10LL * PED_KILOBYTE_SIZE) - unit = PED_UNIT_KILOBYTE; - else - unit = PED_UNIT_BYTE; - } - - /* IEEE754 says that 100.5 has to be rounded to 100 (by printf) */ - /* but 101.5 has to be rounded to 102... so we multiply by 1+E. */ - /* This just divide by 2 the natural IEEE754 extended precision */ - /* and won't cause any trouble before 1000 TB */ - d = ((double)byte / ped_unit_get_size (dev, unit)) - * (1. + DBL_EPSILON); - w = d + ( (d < 10. ) ? 0.005 : - (d < 100.) ? 0.05 : - 0.5 ); - p = (w < 10. ) ? 2 : - (w < 100.) ? 1 : - 0 ; - -#ifdef __BEOS__ - snprintf (buf, 100, "%.*f%s", p, d, ped_unit_get_name(unit)); -#else - snprintf (buf, 100, "%1$.*2$f%3$s", d, p, ped_unit_get_name (unit)); -#endif - - return ped_strdup (buf); -} - -/** - * \brief Get a string that describes the location of the \p byte on - * device \p dev. - * - * The string is described with the default unit, which is set - * by ped_unit_set_default(). - * The returned string must be freed with free(). - */ -char* -ped_unit_format_byte (const PedDevice* dev, PedSector byte) -{ - PED_ASSERT (dev != NULL); - return ped_unit_format_custom_byte (dev, byte, default_unit); -} - -/** - * \brief Get a string that describes the location \p sector on device \p dev. - * - * The string is described with the desired \p unit. - * The returned string must be freed with free(). - */ -char* -ped_unit_format_custom (const PedDevice* dev, PedSector sector, PedUnit unit) -{ - PED_ASSERT (dev != NULL); - return ped_unit_format_custom_byte(dev, sector*dev->sector_size, unit); -} - -/** - * \brief Get a string that describes the location \p sector on device \p dev. - * - * The string is described with the default unit, which is set - * by ped_unit_set_default(). - * The returned string must be freed with free(). - */ -char* -ped_unit_format (const PedDevice* dev, PedSector sector) -{ - PED_ASSERT (dev != NULL); - return ped_unit_format_custom_byte (dev, sector * dev->sector_size, - default_unit); -} - -/** - * If \p str contains a valid description of a location on \p dev, - * then \p *sector is modified to describe the location and a geometry - * is created in \p *range describing a 2 units large area centered on - * \p *sector. If the \p range as described here would be partially outside - * the device \p dev, the geometry returned is the intersection between the - * former and the whole device geometry. If no units are specified, then the - * default unit is assumed. - * - * \return \c 1 if \p str is a valid location description, \c 0 otherwise - */ -int -ped_unit_parse (const char* str, const PedDevice* dev, PedSector *sector, - PedGeometry** range) -{ - return ped_unit_parse_custom (str, dev, default_unit, sector, range); -} - -/* Inefficiently removes all spaces from a string, in-place. */ -static void -strip_string (char* str) -{ - int i; - - for (i = 0; str[i] != 0; i++) { - if (isspace (str[i])) { - int j; - for (j = i + 1; str[j] != 0; j++) - str[j - 1] = str[j]; - } - } -} - - -/* Find non-number suffix. Eg: find_suffix("32Mb") returns a pointer to - * "Mb". */ -static char* _GL_ATTRIBUTE_PURE -find_suffix (const char* str) -{ - while (str[0] != 0 && (isdigit (str[0]) || strchr(",.-", str[0]))) - str++; - return (char *) str; -} - -static void -remove_punct (char* str) -{ - int i = 0; - - for (i = 0; str[i]; i++) { - if (ispunct (str[i])) - str[i] = ' '; - } -} - -static int _GL_ATTRIBUTE_PURE -is_chs (const char* str) -{ - int punct_count = 0; - int i = 0; - - for (i = 0; str[i]; i++) - punct_count += ispunct (str[i]) != 0; - return punct_count == 2; -} - -static int -parse_chs (const char* str, const PedDevice* dev, PedSector* sector, - PedGeometry** range) -{ - PedSector cyl_size = dev->bios_geom.heads * dev->bios_geom.sectors; - PedCHSGeometry chs; - - char* copy = ped_strdup (str); - if (!copy) - return 0; - strip_string (copy); - remove_punct (copy); - - if (sscanf (copy, "%d %d %d", - &chs.cylinders, &chs.heads, &chs.sectors) != 3) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("\"%s\" has invalid syntax for locations."), - copy); - goto error_free_copy; - } - - if (chs.heads >= dev->bios_geom.heads) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("The maximum head value is %d."), - dev->bios_geom.heads - 1); - goto error_free_copy; - } - if (chs.sectors >= dev->bios_geom.sectors) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("The maximum sector value is %d."), - dev->bios_geom.sectors - 1); - goto error_free_copy; - } - - *sector = 1LL * chs.cylinders * cyl_size - + chs.heads * dev->bios_geom.sectors - + chs.sectors; - - if (*sector >= dev->length) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("The location %s is outside of the " - "device %s."), - str, dev->path); - goto error_free_copy; - } - if (range) - *range = ped_geometry_new (dev, *sector, 1); - free (copy); - return !range || *range != NULL; - -error_free_copy: - free (copy); - *sector = 0; - if (range) - *range = NULL; - return 0; -} - -static PedSector -clip (const PedDevice* dev, PedSector sector) -{ - if (sector < 0) - return 0; - if (sector > dev->length - 1) - return dev->length - 1; - return sector; -} - -static PedGeometry* -geometry_from_centre_radius (const PedDevice* dev, - PedSector sector, PedSector radius) -{ - PedSector start = clip (dev, sector - radius); - PedSector end = clip (dev, sector + radius); - if (sector - end > radius || start - sector > radius) - return NULL; - return ped_geometry_new (dev, start, end - start + 1); -} - -static PedUnit -parse_unit_suffix (const char* suffix, PedUnit suggested_unit) -{ - if (strlen (suffix) > 1 && tolower (suffix[1]) == 'i') { - switch (tolower (suffix[0])) { - case 'k': return PED_UNIT_KIBIBYTE; - case 'm': return PED_UNIT_MEBIBYTE; - case 'g': return PED_UNIT_GIBIBYTE; - case 't': return PED_UNIT_TEBIBYTE; - } - } else if (strlen (suffix) > 0) { - switch (tolower (suffix[0])) { - case 's': return PED_UNIT_SECTOR; - case 'b': return PED_UNIT_BYTE; - case 'k': return PED_UNIT_KILOBYTE; - case 'm': return PED_UNIT_MEGABYTE; - case 'g': return PED_UNIT_GIGABYTE; - case 't': return PED_UNIT_TERABYTE; - case 'c': return PED_UNIT_CYLINDER; - case '%': return PED_UNIT_PERCENT; - } - } - - if (suggested_unit == PED_UNIT_COMPACT) { - if (default_unit == PED_UNIT_COMPACT) - return PED_UNIT_MEGABYTE; - else - return default_unit; - } - - return suggested_unit; -} - -/** - * If \p str contains a valid description of a location on \p dev, then - * \p *sector is modified to describe the location and a geometry is created - * in \p *range describing a 2 units large area centered on \p *sector. If the - * \p range as described here would be partially outside the device \p dev, the - * geometry returned is the intersection between the former and the whole - * device geometry. If no units are specified, then the default unit is - * assumed. - * - * \throws PED_EXCEPTION_ERROR if \p str contains invalid description of a - * location - * \throws PED_EXCEPTION_ERROR if location described by \p str - * is outside of the device \p dev->path - * - * \return \c 1 if \p str is a valid location description, \c 0 otherwise. - */ -int -ped_unit_parse_custom (const char* str, const PedDevice* dev, PedUnit unit, - PedSector* sector, PedGeometry** range) -{ - char* copy; - char* suffix; - double num; - long long unit_size; - PedSector radius; - - if (is_chs (str)) - return parse_chs (str, dev, sector, range); - - copy = ped_strdup (str); - if (!copy) - goto error; - strip_string (copy); - - suffix = find_suffix (copy); - unit = parse_unit_suffix (suffix, unit); - suffix[0] = 0; - - if (sscanf (copy, "%lf", &num) != 1) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Invalid number.")); - goto error_free_copy; - } - if (num > 0 && num < 1) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Use a smaller unit instead of a value < 1")); - goto error_free_copy; - } - - unit_size = ped_unit_get_size (dev, unit); - switch (unit) { - /* If the user specifies the address using IEC units e.g., 4MiB, as in - parted -s -- $dev mklabel gpt mkpart P-NAME 4MiB -34s - do not use size of the unit as the range. Rather, presume that they - are specifying precisely the starting or ending number, - and treat "4MiB" just as we would treat "4194304B". */ - case PED_UNIT_KIBIBYTE: - case PED_UNIT_MEBIBYTE: - case PED_UNIT_GIBIBYTE: - case PED_UNIT_TEBIBYTE: - radius = 0; - break; - default: - radius = (ped_div_round_up (unit_size, dev->sector_size) / 2) - 1; - if (radius < 0) - radius = 0; - } - - *sector = num * unit_size / dev->sector_size; - /* negative numbers count from the end */ - if (copy[0] == '-') - *sector += dev->length; - if (range) { - *range = geometry_from_centre_radius (dev, *sector, radius); - if (!*range) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("The location %s is outside of the " - "device %s."), - str, dev->path); - goto error_free_copy; - } - } - *sector = clip (dev, *sector); - - free (copy); - return 1; - -error_free_copy: - free (copy); -error: - *sector = 0; - if (range) - *range = NULL; - return 0; -} - - -/** @} */ diff --git a/jni/parted/parted/command.c b/jni/parted/parted/command.c deleted file mode 100755 index 41031ee..0000000 --- a/jni/parted/parted/command.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include -#include "command.h" -#include "ui.h" - -#include - -#include -#include -#include "xalloc.h" - -Command* -command_create (const StrList* names, - int (*method) (PedDevice** dev, PedDisk** diskp), - const StrList* summary, - const StrList* help, - const int non_interactive) -{ - Command* cmd; - - cmd = xmalloc (sizeof (Command)); - - if (non_interactive) - cmd->non_interactive = 1; - else - cmd->non_interactive = 0; - - cmd->names = (StrList*) names; - cmd->method = method; - cmd->summary = (StrList*) summary; - cmd->help = (StrList*) help; - - return cmd; -} - -void -command_destroy (Command* cmd) -{ - str_list_destroy (cmd->names); - str_list_destroy (cmd->summary); - str_list_destroy (cmd->help); - free (cmd); -} - -void -command_register (Command** list, Command* cmd) -{ - int i; - - for (i = 0; list [i]; i++); - - list [i] = cmd; - list [i + 1] = (Command*) NULL; -} - -Command* -command_get (Command** list, char* name) -{ - int i; - int partial_match = -1; - int ambiguous = 0; - - if (!name) - return NULL; - - for (i=0; list [i]; i++) { - switch (str_list_match_any (list [i]->names, name)) { - case 2: - return list [i]; - - case 1: - if (!ambiguous) { - if (partial_match == -1) { - partial_match = i; - } else { - partial_match = -1; - ambiguous = 1; - } - } - } - } - - if (partial_match == -1) - return NULL; - else - return list [partial_match]; -} - -StrList* -command_get_names (Command** list) -{ - Command** walk; - StrList* result = NULL; - - for (walk = list; *walk; walk++) - result = str_list_join (result, - str_list_duplicate ((*walk)->names)); - return result; -} - -void -command_print_summary (Command* cmd) -{ - if (cmd->summary == NULL) - return; - fputs (" ", stdout); - str_list_print_wrap (cmd->summary, screen_width(), 2, 8, stdout); - putchar ('\n'); -} - -void -command_print_help (Command* cmd) -{ - command_print_summary (cmd); - if (cmd->help) { - fputs ("\n\t", stdout); - str_list_print_wrap (cmd->help, screen_width(), 8, 8, stdout); - } -} - -int -command_run (Command* cmd, PedDevice** dev, PedDisk** diskp) -{ - return cmd->method (dev, diskp); -} diff --git a/jni/parted/parted/command.h b/jni/parted/parted/command.h deleted file mode 100755 index c307dca..0000000 --- a/jni/parted/parted/command.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2000, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef COMMAND_H_INCLUDED -#define COMMAND_H_INCLUDED - -#include -#include "strlist.h" - -typedef struct { - StrList* names; - int (*method) (PedDevice** dev, PedDisk** diskp); - StrList* summary; - StrList* help; - int non_interactive:1; -} Command; - -extern Command* command_create (const StrList* names, - int (*method) (PedDevice** dev, PedDisk** diskp), - const StrList* summary, - const StrList* help, - int non_interactive); -extern void command_destroy (Command* cmd); -void command_register (Command** list, Command* cmd); - -extern Command* command_get (Command** list, char* name); -extern StrList* command_get_names (Command** list); -extern void command_print_summary (Command* cmd); -extern void command_print_help (Command* cmd); -extern int command_run (Command* cmd, PedDevice** dev, PedDisk** diskp); - -#endif /* COMMAND_H_INCLUDED */ diff --git a/jni/parted/parted/jsonwrt.c b/jni/parted/parted/jsonwrt.c deleted file mode 100755 index d562133..0000000 --- a/jni/parted/parted/jsonwrt.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * JSON output formatting functions. - * - * No copyright is claimed. This code is in the public domain; do with - * it what you wish. - * - * Written by Karel Zak - */ - -#include -#include -#include -#include -#include -#include -#include "jsonwrt.h" - -/* - * Requirements enumerated via testing (V8, Firefox, IE11): - * - * var charsToEscape = []; - * for (var i = 0; i < 65535; i += 1) { - * try { - * JSON.parse('{"sample": "' + String.fromCodePoint(i) + '"}'); - * } catch (e) { - * charsToEscape.push(i); - * } - * } - */ -static void fputs_quoted_case_json(const char *data, FILE *out, int dir) -{ - const char *p; - - fputc('"', out); - for (p = data; p && *p; p++) { - - const unsigned int c = (unsigned int) *p; - - /* From http://www.json.org - * - * The double-quote and backslashes would break out a string or - * init an escape sequence if not escaped. - * - * Note that single-quotes and forward slashes, while they're - * in the JSON spec, don't break double-quoted strings. - */ - if (c == '"' || c == '\\') { - fputc('\\', out); - fputc(c, out); - continue; - } - - /* All non-control characters OK; do the case swap as required. */ - if (c >= 0x20) { - /* - * Don't use locale sensitive ctype.h functions for regular - * ASCII chars, because for example with Turkish locale - * (aka LANG=tr_TR.UTF-8) toupper('I') returns 'I'. - */ - if (c <= 127) - fputc(dir == 1 ? c_toupper(c) : - dir == -1 ? c_tolower(c) : *p, out); - else - fputc(dir == 1 ? toupper(c) : - dir == -1 ? tolower(c) : *p, out); - continue; - } - - /* In addition, all chars under ' ' break Node's/V8/Chrome's, and - * Firefox's JSON.parse function - */ - switch (c) { - /* Handle short-hand cases to reduce output size. C - * has most of the same stuff here, so if there's an - * "Escape for C" function somewhere in the STL, we - * should probably be using it. - */ - case '\b': - fputs("\\b", out); - break; - case '\t': - fputs("\\t", out); - break; - case '\n': - fputs("\\n", out); - break; - case '\f': - fputs("\\f", out); - break; - case '\r': - fputs("\\r", out); - break; - default: - /* Other assorted control characters */ - fprintf(out, "\\u00%02x", c); - break; - } - } - fputc('"', out); -} - -#define fputs_quoted_json(_d, _o) fputs_quoted_case_json(_d, _o, 0) -#define fputs_quoted_json_upper(_d, _o) fputs_quoted_case_json(_d, _o, 1) -#define fputs_quoted_json_lower(_d, _o) fputs_quoted_case_json(_d, _o, -1) - -void ul_jsonwrt_init(struct ul_jsonwrt *fmt, FILE *out, int indent) -{ - fmt->out = out; - fmt->indent = indent; - fmt->after_close = 0; -} - -void ul_jsonwrt_indent(struct ul_jsonwrt *fmt) -{ - int i; - - for (i = 0; i < fmt->indent; i++) - fputs(" ", fmt->out); -} - -void ul_jsonwrt_open(struct ul_jsonwrt *fmt, const char *name, int type) -{ - if (name) { - if (fmt->after_close) - fputs(",\n", fmt->out); - ul_jsonwrt_indent(fmt); - fputs_quoted_json_lower(name, fmt->out); - } else { - if (fmt->after_close) - fputs(",", fmt->out); - else - ul_jsonwrt_indent(fmt); - } - - switch (type) { - case UL_JSON_OBJECT: - fputs(name ? ": {\n" : "{\n", fmt->out); - fmt->indent++; - break; - case UL_JSON_ARRAY: - fputs(name ? ": [\n" : "[\n", fmt->out); - fmt->indent++; - break; - case UL_JSON_VALUE: - fputs(name ? ": " : " ", fmt->out); - break; - } - fmt->after_close = 0; -} - -void ul_jsonwrt_close(struct ul_jsonwrt *fmt, int type) -{ - if (fmt->indent == 1) { - fputs("\n}\n", fmt->out); - fmt->indent--; - fmt->after_close = 1; - return; - } - assert(fmt->indent > 0); - - switch (type) { - case UL_JSON_OBJECT: - fmt->indent--; - fputc('\n', fmt->out); - ul_jsonwrt_indent(fmt); - fputs("}", fmt->out); - break; - case UL_JSON_ARRAY: - fmt->indent--; - fputc('\n', fmt->out); - ul_jsonwrt_indent(fmt); - fputs("]", fmt->out); - break; - case UL_JSON_VALUE: - break; - } - - fmt->after_close = 1; -} - -void ul_jsonwrt_value_raw(struct ul_jsonwrt *fmt, - const char *name, const char *data) -{ - ul_jsonwrt_value_open(fmt, name); - if (data && *data) - fputs(data, fmt->out); - else - fputs("null", fmt->out); - ul_jsonwrt_value_close(fmt); -} - -void ul_jsonwrt_value_s(struct ul_jsonwrt *fmt, - const char *name, const char *data) -{ - ul_jsonwrt_value_open(fmt, name); - if (data) - fputs_quoted_json(data, fmt->out); - else - fputs("null", fmt->out); - ul_jsonwrt_value_close(fmt); -} - -void ul_jsonwrt_value_u64(struct ul_jsonwrt *fmt, - const char *name, uint64_t data) -{ - ul_jsonwrt_value_open(fmt, name); - fprintf(fmt->out, "%"PRIu64, data); - ul_jsonwrt_value_close(fmt); -} - -void ul_jsonwrt_value_boolean(struct ul_jsonwrt *fmt, - const char *name, int data) -{ - ul_jsonwrt_value_open(fmt, name); - fputs(data ? "true" : "false", fmt->out); - ul_jsonwrt_value_close(fmt); -} - -void ul_jsonwrt_value_null(struct ul_jsonwrt *fmt, - const char *name) -{ - ul_jsonwrt_value_open(fmt, name); - fputs("null", fmt->out); - ul_jsonwrt_value_close(fmt); -} diff --git a/jni/parted/parted/jsonwrt.h b/jni/parted/parted/jsonwrt.h deleted file mode 100755 index 4587b60..0000000 --- a/jni/parted/parted/jsonwrt.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef UTIL_LINUX_JSONWRT_H -#define UTIL_LINUX_JSONWRT_H - -enum { - UL_JSON_OBJECT, - UL_JSON_ARRAY, - UL_JSON_VALUE -}; - -struct ul_jsonwrt { - FILE *out; - int indent; - - unsigned int after_close :1; -}; - -void ul_jsonwrt_init(struct ul_jsonwrt *fmt, FILE *out, int indent); -void ul_jsonwrt_indent(struct ul_jsonwrt *fmt); -void ul_jsonwrt_open(struct ul_jsonwrt *fmt, const char *name, int type); -void ul_jsonwrt_close(struct ul_jsonwrt *fmt, int type); - -#define ul_jsonwrt_root_open(_f) ul_jsonwrt_open(_f, NULL, UL_JSON_OBJECT) -#define ul_jsonwrt_root_close(_f) ul_jsonwrt_close(_f, UL_JSON_OBJECT) - -#define ul_jsonwrt_array_open(_f, _n) ul_jsonwrt_open(_f, _n, UL_JSON_ARRAY) -#define ul_jsonwrt_array_close(_f) ul_jsonwrt_close(_f, UL_JSON_ARRAY) - -#define ul_jsonwrt_object_open(_f, _n) ul_jsonwrt_open(_f, _n, UL_JSON_OBJECT) -#define ul_jsonwrt_object_close(_f) ul_jsonwrt_close(_f, UL_JSON_OBJECT) - -#define ul_jsonwrt_value_open(_f, _n) ul_jsonwrt_open(_f, _n, UL_JSON_VALUE) -#define ul_jsonwrt_value_close(_f) ul_jsonwrt_close(_f, UL_JSON_VALUE) - - -void ul_jsonwrt_value_raw(struct ul_jsonwrt *fmt, - const char *name, const char *data); -void ul_jsonwrt_value_s(struct ul_jsonwrt *fmt, - const char *name, const char *data); -void ul_jsonwrt_value_u64(struct ul_jsonwrt *fmt, - const char *name, uint64_t data); -void ul_jsonwrt_value_boolean(struct ul_jsonwrt *fmt, - const char *name, int data); -void ul_jsonwrt_value_null(struct ul_jsonwrt *fmt, - const char *name); - -#endif /* UTIL_LINUX_JSONWRT_H */ diff --git a/jni/parted/parted/parted.c b/jni/parted/parted/parted.c deleted file mode 100755 index 91fe192..0000000 --- a/jni/parted/parted/parted.c +++ /dev/null @@ -1,2699 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2003, 2005-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include -#include -#include - -#include "argmatch.h" -#include "closeout.h" -#include "configmake.h" -#include "version-etc.h" -#include "command.h" -#include "ui.h" -#include "progname.h" -#include "table.h" -#include "version.h" - -#define AUTHORS \ - "" - -/* The official name of this program (e.g., no `g' prefix). */ -#define PROGRAM_NAME "parted" - -#define N_(String) String -#if ENABLE_NLS -# include -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#include -#include - -#include -#include -#include -#include -#include -#include -#include "c-ctype.h" -#include "c-strcase.h" -#include "xalloc.h" -#include "jsonwrt.h" - -#ifdef ENABLE_MTRACE -#include -#endif - -#include - -/* minimum amount of free space to leave, or maximum amount to gobble up */ -#define MIN_FREESPACE (1000 * 2) /* 1000k */ - -static int MEGABYTE_SECTORS (PedDevice* dev) -{ - return PED_MEGABYTE_SIZE / dev->sector_size; -} - -/* For long options that have no equivalent short option, use a - non-character as a pseudo short option, starting with CHAR_MAX + 1. */ -enum -{ - PRETEND_INPUT_TTY = CHAR_MAX + 1, -}; - -/* Output modes */ -enum -{ - HUMAN, - MACHINE, - JSON -}; - -enum -{ - ALIGNMENT_NONE = 2, - ALIGNMENT_CYLINDER, - ALIGNMENT_MINIMAL, - ALIGNMENT_OPTIMAL -}; - -static char const *const align_args[] = -{ - "none", - "cylinder", - "minimal", - "optimal", - NULL -}; - -static int const align_types[] = -{ - ALIGNMENT_NONE, - ALIGNMENT_CYLINDER, - ALIGNMENT_MINIMAL, - ALIGNMENT_OPTIMAL -}; -ARGMATCH_VERIFY (align_args, align_types); - -typedef struct { - time_t last_update; - time_t predicted_time_left; -} TimerContext; - -static struct option const options[] = { - /* name, has-arg, string-return-val, char-return-val */ - {"help", 0, NULL, 'h'}, - {"list", 0, NULL, 'l'}, - {"machine", 0, NULL, 'm'}, - {"json", 0, NULL, 'j'}, - {"script", 0, NULL, 's'}, - {"fix", 0, NULL, 'f'}, - {"version", 0, NULL, 'v'}, - {"align", required_argument, NULL, 'a'}, - {"-pretend-input-tty", 0, NULL, PRETEND_INPUT_TTY}, - {NULL, 0, NULL, 0} -}; - -static const char *const options_help [][2] = { - {"help", N_("displays this help message")}, - {"list", N_("lists partition layout on all block devices")}, - {"machine", N_("displays machine parseable output")}, - {"json", N_("displays JSON output")}, - {"script", N_("never prompts for user intervention")}, - {"fix", N_("in script mode, fix instead of abort when asked")}, - {"version", N_("displays the version")}, - {"align=[none|cyl|min|opt]", N_("alignment for new partitions")}, - {NULL, NULL} -}; - -int opt_script_mode = 0; -int opt_fix_mode = 0; -int pretend_input_tty = 0; -int opt_output_mode = HUMAN; -int disk_is_modified = 0; -int is_toggle_mode = 0; -int alignment = ALIGNMENT_OPTIMAL; - -static const char* number_msg = N_( -"NUMBER is the partition number used by Linux. On MS-DOS disk labels, the " -"primary partitions number from 1 to 4, logical partitions from 5 onwards.\n"); - -static const char* label_type_msg_start = N_("LABEL-TYPE is one of: "); -static const char* flag_msg_start = N_("FLAG is one of: "); -static const char* disk_flag_msg_start = N_("FLAG is one of: "); -static const char* unit_msg_start = N_("UNIT is one of: "); -static const char* min_or_opt_msg = N_("desired alignment: minimum or optimal"); -static const char* part_type_msg = N_("PART-TYPE is one of: primary, logical, " - "extended\n"); -static const char* fs_type_msg_start = N_("FS-TYPE is one of: "); -static const char* start_end_msg = N_("START and END are disk locations, such as " - "4GB or 10%. Negative values count from the end of the disk. " - "For example, -1s specifies exactly the last sector.\n"); -static const char* end_msg = N_("END is disk location, such as " - "4GB or 10%. Negative value counts from the end of the disk. " - "For example, -1s specifies exactly the last sector.\n"); -static const char* state_msg = N_("STATE is one of: on, off\n"); -static const char* device_msg = N_("DEVICE is usually /dev/hda or /dev/sda\n"); -static const char* name_msg = N_("NAME is any word you want\n"); -static const char* type_msg = N_("TYPE_ID is a value between 0x01 and 0xff, " - "TYPE_UUID is a UUID\n"); - -static const char* copyright_msg = N_( -"Copyright (C) 1998 - 2006 Free Software Foundation, Inc.\n" -"This program is free software, covered by the GNU General Public License.\n" -"\n" -"This program is distributed in the hope that it will be useful,\n" -"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" -"GNU General Public License for more details.\n\n"); - -static char* label_type_msg; -static char* flag_msg; -static char* disk_flag_msg; -static char* unit_msg; - -static char* mkpart_fs_type_msg; - -static Command* commands [256] = {NULL}; -static PedTimer* g_timer; -static TimerContext timer_context; - -static struct ul_jsonwrt json; - -static int _print_list (); -static void _done (PedDevice* dev, PedDisk *diskp); -static bool partition_align_check (PedDisk const *disk, - PedPartition const *part, enum AlignmentType a_type, - char **align_err); - -static void -_timer_handler (PedTimer* timer, void* context) -{ - TimerContext* tcontext = (TimerContext*) context; - int draw_this_time; - - if (opt_script_mode || !isatty(fileno(stdout))) - return; - - if (tcontext->last_update != timer->now && timer->now > timer->start) { - tcontext->predicted_time_left - = timer->predicted_end - timer->now; - tcontext->last_update = timer->now; - draw_this_time = 1; - } else { - draw_this_time = 0; - } - - if (draw_this_time) { - wipe_line (); - - if (timer->state_name) - printf ("%s... ", timer->state_name); - printf (_("%0.f%%\t(time left %.2d:%.2d)"), - (double) (100.0f * timer->frac), - (int) (tcontext->predicted_time_left / 60), - (int) (tcontext->predicted_time_left % 60)); - - fflush (stdout); - } -} - -static int -_partition_warn_busy (PedPartition* part) -{ - char* path; - - if (ped_partition_is_busy (part)) { - path = ped_partition_get_path (part); - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_YES_NO, - _("Partition %s is being used. Are you sure you " \ - "want to continue?"), - path) != PED_EXCEPTION_YES) - { - free (path); - return 0; - } - free (path); - } - return 1; -} - -static int -_disk_warn_busy (PedDisk* disk) -{ - if (ped_device_is_busy (disk->dev)) - return ped_exception_throw ( - (opt_script_mode - ? PED_EXCEPTION_ERROR - : PED_EXCEPTION_WARNING), - PED_EXCEPTION_IGNORE_CANCEL, - _("Partition(s) on %s are being used."), - disk->dev->path) == PED_EXCEPTION_IGNORE; - - return 1; -} - -static int -_disk_warn_loss (PedDisk* disk) -{ - return ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_YES_NO, - _("The existing disk label on %s will be destroyed " - "and all data on this disk will be lost. Do you " - "want to continue?"), - disk->dev->path) == PED_EXCEPTION_YES; -} - -/* This function changes "sector" to "new_sector" if the new value lies - * within the required range. - */ -static int -snap (PedSector* sector, PedSector new_sector, PedGeometry* range) -{ - PED_ASSERT (ped_geometry_test_sector_inside (range, *sector)); - if (!ped_geometry_test_sector_inside (range, new_sector)) - return 0; - *sector = new_sector; - return 1; -} - -typedef enum { - MOVE_NO = 0, - MOVE_STILL = 1, - MOVE_UP = 2, - MOVE_DOWN = 4 -} EMoves; - -enum { /* Don't change these values */ - SECT_START = 0, - SECT_END = -1 -}; - -/* Find the preferred way to adjust the sector s inside range. - * If a move isn't allowed or is out of range it can't be selected. - * what contains SECT_START if the sector to adjust is a start sector - * or SECT_END if it's an end one. - * The preferred move is to the nearest allowed boundary of the part - * partition (if at equal distance: to start if SECT_START or to end - * if SECT_END). - * The distance is returned in dist. - */ -static EMoves -prefer_snap (PedSector s, int what, PedGeometry* range, EMoves* allow, - PedPartition* part, PedSector* dist) -{ - PedSector up_dist = -1, down_dist = -1; - PedSector new_sect; - EMoves move; - - PED_ASSERT (what == SECT_START || what == SECT_END); - - if (!(*allow & (MOVE_UP | MOVE_DOWN))) { - *dist = 0; - return MOVE_STILL; - } - - if (*allow & MOVE_UP) { - new_sect = part->geom.end + 1 + what; - if (ped_geometry_test_sector_inside (range, new_sect)) - up_dist = new_sect - s; - else - *allow &= ~MOVE_UP; - } - - if (*allow & MOVE_DOWN) { - new_sect = part->geom.start + what; - if (ped_geometry_test_sector_inside (range, new_sect)) - down_dist = s - new_sect; - else - *allow &= ~MOVE_DOWN; - } - - move = MOVE_STILL; - if ((*allow & MOVE_UP) && (*allow & MOVE_DOWN)) { - if (down_dist < up_dist || (down_dist == up_dist - && what == SECT_START) ) - move = MOVE_DOWN; - else if (up_dist < down_dist || (down_dist == up_dist - && what == SECT_END) ) - move = MOVE_UP; - else - PED_ASSERT (0); - } else if (*allow & MOVE_UP) - move = MOVE_UP; - else if (*allow & MOVE_DOWN) - move = MOVE_DOWN; - - *dist = ( move == MOVE_DOWN ? down_dist : - ( move == MOVE_UP ? up_dist : - 0 ) ); - return move; -} - -/* Snaps a partition to nearby partition boundaries. This is useful for - * gobbling up small amounts of free space, and also for reinterpreting small - * changes to a partition as non-changes (eg: perhaps the user only wanted to - * resize the end of a partition). - * Note that this isn't the end of the story... this function is - * always called before the constraint solver kicks in. So you don't need to - * worry too much about inadvertantly creating overlapping partitions, etc. - */ -static void -snap_to_boundaries (PedGeometry* new_geom, PedGeometry* old_geom, - PedDisk* disk, - PedGeometry* start_range, PedGeometry* end_range) -{ - PedPartition* start_part; - PedPartition* end_part; - PedSector start = new_geom->start; - PedSector end = new_geom->end; - PedSector start_dist = -1, end_dist = -1; - EMoves start_allow, end_allow, start_want, end_want; - int adjacent; - - start_allow = end_allow = MOVE_STILL | MOVE_UP | MOVE_DOWN; - - start_part = ped_disk_get_partition_by_sector (disk, start); - end_part = ped_disk_get_partition_by_sector (disk, end); - adjacent = (start_part->geom.end + 1 == end_part->geom.start); - - /* If we can snap to old_geom, then we will... */ - /* and this will enforce the snapped positions */ - if (old_geom) { - if (snap (&start, old_geom->start, start_range)) - start_allow = MOVE_STILL; - if (snap (&end, old_geom->end, end_range)) - end_allow = MOVE_STILL; - } - - /* If start and end are on the same partition, we */ - /* don't allow them to cross. */ - if (start_part == end_part) { - start_allow &= ~MOVE_UP; - end_allow &= ~MOVE_DOWN; - } - - /* Let's find our way */ - start_want = prefer_snap (start, SECT_START, start_range, &start_allow, - start_part, &start_dist ); - end_want = prefer_snap (end, SECT_END, end_range, &end_allow, - end_part, &end_dist ); - - PED_ASSERT (start_dist >= 0 && end_dist >= 0); - - /* If start and end are on adjacent partitions, */ - /* and if they would prefer crossing, then refrain */ - /* the farthest to do so. */ - if (adjacent && start_want == MOVE_UP && end_want == MOVE_DOWN) { - if (end_dist < start_dist) { - start_allow &= ~MOVE_UP; - start_want = prefer_snap (start, SECT_START, - start_range, &start_allow, - start_part, &start_dist ); - PED_ASSERT (start_dist >= 0); - } else { - end_allow &= ~MOVE_DOWN; - end_want = prefer_snap (end, SECT_END, - end_range, &end_allow, - end_part, &end_dist ); - PED_ASSERT (end_dist >= 0); - } - } - - /* New positions */ - start = ( start_want == MOVE_DOWN ? start_part->geom.start : - ( start_want == MOVE_UP ? start_part->geom.end + 1 : - start ) ); - end = ( end_want == MOVE_DOWN ? end_part->geom.start - 1 : - ( end_want == MOVE_UP ? end_part->geom.end : - end ) ); - PED_ASSERT (ped_geometry_test_sector_inside(start_range,start)); - PED_ASSERT (ped_geometry_test_sector_inside (end_range, end)); - PED_ASSERT (start <= end); - ped_geometry_set (new_geom, start, end - start + 1); -} - -static PedConstraint* -constraint_from_start_end (PedDevice* dev, PedGeometry* range_start, - PedGeometry* range_end) -{ - return ped_constraint_new (ped_alignment_any, ped_alignment_any, - range_start, range_end, 1, dev->length); -} - - -static PedConstraint* -constraint_from_start_end_fixed_start (PedDevice* dev, PedSector start_sector, - PedGeometry* range_end) -{ - PedGeometry range_start; - range_start.dev = dev; - range_start.start = start_sector; - range_start.end = start_sector; - range_start.length = 1; - - return ped_constraint_new (ped_alignment_any, ped_alignment_any, - &range_start, range_end, 1, dev->length); -} - -void -help_on (char* topic) -{ - Command* cmd; - - cmd = command_get (commands, topic); - if (!cmd) return; - - command_print_help (cmd); -} - -void -print_commands_help () -{ - int i; - - for (i=0; commands [i]; i++) - command_print_summary (commands [i]); -} - -void -print_options_help () -{ - int i; - - for (i=0; options_help [i][0]; i++) { - printf (" -%c, --%-25.25s %s\n", - options_help [i][0][0], - options_help [i][0], - _(options_help [i][1])); - } -} - -int -do_help (PedDevice** dev, PedDisk** diskp) -{ - if (command_line_get_word_count ()) { - char* word = command_line_pop_word (); - if (word) { - help_on (word); - free (word); - } - } else { - print_commands_help(); - } - return 1; -} - -static int -do_mklabel (PedDevice** dev, PedDisk** diskp) -{ - PedDisk* disk; - const PedDiskType* type = NULL; - - if (*diskp) - disk = *diskp; - else { - ped_exception_fetch_all (); - disk = ped_disk_new (*dev); - if (!disk) ped_exception_catch (); - ped_exception_leave_all (); - } - - if (!command_line_get_disk_type (_("New disk label type?"), &type)) - goto error; - - if (disk) { - if (!_disk_warn_busy (disk)) - goto error; - if (!opt_script_mode && !_disk_warn_loss (disk)) - goto error; - } - - disk = ped_disk_new_fresh (*dev, type); - if (!disk) - goto error; - - if (!ped_disk_commit (disk)) - goto error_destroy_disk; - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - if (*diskp) - ped_disk_destroy (*diskp); - *diskp = disk; - return 1; - -error_destroy_disk: - ped_disk_destroy (disk); - *diskp = 0; -error: - return 0; -} - -/* Strip blanks from the end of string STR, in place. */ -void _strip_trailing_spaces(char *str) -{ - if (!str) - return; - size_t i = strlen(str); - while (i && c_isblank(str[--i])) - str[i]='\0'; -} - -/* Return true if the unit is one of the supported IEC unit values */ -static bool -_is_unit_IEC(const PedUnit unit) { - return (unit == PED_UNIT_KIBIBYTE) || (unit == PED_UNIT_MEBIBYTE) || - (unit == PED_UNIT_GIBIBYTE) || (unit == PED_UNIT_TEBIBYTE); -} - -/* Return true, if str ends with IEC units. */ -static bool -_string_ends_with_iec_unit(const char *str) -{ - /* 3 characters for the IEC unit and at least 1 digit */ - if (!str || strlen(str) < 4) - return false; - - char const *p = str + strlen(str) - 3; - PedUnit unit = ped_unit_get_by_name(p); - if (unit == -1) { - return false; - } - return _is_unit_IEC(unit); -} - -/* Return true if str ends with explicit unit identifier. - * Do not parse the unit, just check if the unit is specified. - * This function expects trailing spaces to be already stripped. - */ -static bool -_string_has_unit_suffix(const char *str) -{ - /* At least 1 digit and 1 character to meet the condition */ - if (!str || strlen(str) < 2) - return false; - - if (!isdigit(str[strlen(str) - 1])) - return true; - - return false; -} - -/* If the selected unit is one of KiB, MiB, GiB or TiB and the partition is not - * only 1 sector long, then adjust the end so that it is one sector before the - * given position. Also adjust range_end accordingly. Thus next partition can - * start immediately after this one. - * - * To be called after end sector is read from the user. - * - * https://lists.gnu.org/archive/html/bug-parted/2011-10/msg00009.html - */ -static void -_adjust_end_if_iec (PedSector* start, PedSector* end, - PedGeometry* range_end, char* end_input) -{ - PED_ASSERT(start); - PED_ASSERT(end); - PED_ASSERT(range_end); - - /* 1s partition - do not move the end */ - if (*start == *end) - return; - - _strip_trailing_spaces(end_input); - PedUnit unit = ped_unit_get_default(); - if (_string_ends_with_iec_unit(end_input) || - (!_string_has_unit_suffix(end_input) && _is_unit_IEC(unit))) { - *end -= 1; - range_end->start -= 1; - range_end->end -= 1; - } -} - -static int -do_mkpart (PedDevice** dev, PedDisk** diskp) -{ - PedDisk* disk; - PedPartition* part; - PedPartitionType part_type; - const PedFileSystemType* fs_type = ped_file_system_type_get ("ext2"); - PedSector start = 0, end = 0; - PedGeometry *range_start = NULL, *range_end = NULL; - PedConstraint* user_constraint; - PedConstraint* dev_constraint; - PedConstraint* final_constraint; - char* peek_word; - char* part_name = NULL; - char *start_usr = NULL, *end_usr = NULL; - char *start_sol = NULL, *end_sol = NULL; - char *end_input = NULL; - - if (*diskp) - disk = *diskp; - else { - disk = ped_disk_new (*dev); - *diskp = disk; - } - if (!disk) - goto error; - - if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT)) - if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT, - alignment == ALIGNMENT_CYLINDER)) - goto error; - - if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED)) { - part_type = PED_PARTITION_NORMAL; - } else { - if (!command_line_get_part_type (_("Partition type?"), - disk, &part_type)) - goto error; - } - - /* The undocumented feature that mkpart sometimes takes a - partition name is next to useless, at least with a dvh - partition table, since it makes the "mkpart" command - fail unconditionally for a primary partition. E.g., - mkpart primary any-name xfs 4096s 5000s - requires the name, yet always fails, saying that only - logical partitions may have names. - If you want a name, use parted's separate "name" command. */ - - if (ped_disk_type_check_feature (disk->type, - PED_DISK_TYPE_PARTITION_NAME) - && ! (strcmp (disk->type->name, "dvh") == 0 - && part_type != PED_PARTITION_LOGICAL)) - part_name = command_line_get_word (_("Partition name?"), - "", NULL, 1); - - peek_word = command_line_peek_word (); - if (part_type == PED_PARTITION_EXTENDED - || (peek_word && (isdigit (peek_word[0]) || peek_word[0] == '-'))) { - fs_type = NULL; - free (peek_word); - } else { - free (peek_word); - if (!command_line_get_fs_type (_("File system type?"), - &fs_type)) - goto error; - } - - if (!command_line_get_sector (_("Start?"), *dev, &start, &range_start, NULL)) - goto error; - if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input)) - goto error; - - _adjust_end_if_iec(&start, &end, range_end, end_input); - - /* processing starts here */ - part = ped_partition_new (disk, part_type, fs_type, start, end); - if (!part) - goto error; - - snap_to_boundaries (&part->geom, NULL, disk, range_start, range_end); - - /* create constraints */ - user_constraint = constraint_from_start_end (*dev, range_start, - range_end); - PED_ASSERT (user_constraint != NULL); - - if (alignment == ALIGNMENT_OPTIMAL) - dev_constraint = - ped_device_get_optimal_aligned_constraint(*dev); - else if (alignment == ALIGNMENT_MINIMAL) - dev_constraint = - ped_device_get_minimal_aligned_constraint(*dev); - else - dev_constraint = ped_device_get_constraint(*dev); - PED_ASSERT (dev_constraint != NULL); - - final_constraint = ped_constraint_intersect (user_constraint, - dev_constraint); - ped_constraint_destroy (user_constraint); - ped_constraint_destroy (dev_constraint); - if (!final_constraint) - goto error_destroy_simple_constraints; - - /* subject to partition constraint */ - ped_exception_fetch_all(); - bool added_ok = ped_disk_add_partition (disk, part, final_constraint); - ped_constraint_destroy (final_constraint); - if (!added_ok) { - ped_exception_leave_all(); - - PedConstraint *constraint_any = ped_constraint_any (*dev); - added_ok = ped_disk_add_partition (disk, part, - constraint_any); - ped_constraint_destroy (constraint_any); - - if (!added_ok) - goto error_destroy_simple_constraints; - - if (!ped_geometry_test_sector_inside(range_start, part->geom.start) || - !ped_geometry_test_sector_inside(range_end, part->geom.end)) { - start_usr = ped_unit_format (*dev, start); - end_usr = ped_unit_format (*dev, end); - start_sol = ped_unit_format (*dev, part->geom.start); - end_sol = ped_unit_format (*dev, part->geom.end); - - /* In script mode failure to use specified values is fatal. - * However, in interactive mode, it merely elicits a warning - * and a prompt for whether to proceed. - */ - switch (ped_exception_throw ( - (opt_script_mode - ? PED_EXCEPTION_ERROR - : PED_EXCEPTION_WARNING), - (opt_script_mode - ? PED_EXCEPTION_CANCEL - : PED_EXCEPTION_YES_NO), - _("You requested a partition from %s to %s " - "(sectors %llu..%llu).\n" - "The closest location we can manage is " - "%s to %s (sectors %llu..%llu).%s"), - start_usr, end_usr, - start, end, - start_sol, end_sol, - part->geom.start, part->geom.end, - (opt_script_mode ? "" - : _("\nIs this still acceptable to you?")))) - { - case PED_EXCEPTION_YES: - /* all is well in this state */ - break; - case PED_EXCEPTION_NO: - case PED_EXCEPTION_UNHANDLED: - default: - /* undo partition addition */ - goto error_remove_part; - } - } - - char *align_err = NULL; - if ((alignment == ALIGNMENT_OPTIMAL && - !partition_align_check(disk, part, PA_OPTIMUM, &align_err)) || - (alignment == ALIGNMENT_MINIMAL && - !partition_align_check(disk, part, PA_MINIMUM, &align_err))) { - if (ped_exception_throw( - PED_EXCEPTION_WARNING, - (opt_script_mode - ? PED_EXCEPTION_OK - : PED_EXCEPTION_IGNORE_CANCEL), - _("The resulting partition is not properly " - "aligned for best performance: %s"), - align_err ? align_err : _("unknown (malloc failed)")) == - PED_EXCEPTION_CANCEL) { - free(align_err); - /* undo partition addition */ - goto error_remove_part; - } - free(align_err); - } - } else { - ped_exception_leave_all(); - } - ped_exception_catch(); - - /* set minor attributes */ - if (part_name) - if (!ped_partition_set_name (part, part_name)) - goto error_remove_part; - free (part_name); /* avoid double-free upon failure */ - part_name = NULL; - - if (!ped_partition_set_system (part, fs_type)) - goto error_remove_part; - if (ped_partition_is_flag_available (part, PED_PARTITION_LBA)) - ped_partition_set_flag (part, PED_PARTITION_LBA, 1); - - if (!ped_disk_commit (disk)) - goto error_remove_part; - - /* clean up */ - if (range_start != NULL) - ped_geometry_destroy (range_start); - if (range_end != NULL) - ped_geometry_destroy (range_end); - - free (start_usr); - free (end_usr); - free (start_sol); - free (end_sol); - free(end_input); - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - - return 1; - -error_remove_part: - ped_disk_remove_partition (disk, part); -error_destroy_simple_constraints: - ped_partition_destroy (part); -error: - free (part_name); - if (range_start != NULL) - ped_geometry_destroy (range_start); - if (range_end != NULL) - ped_geometry_destroy (range_end); - - free (start_usr); - free (end_usr); - free (start_sol); - free (end_sol); - free(end_input); - - return 0; -} - -static int -do_name (PedDevice** dev, PedDisk** diskp) -{ - PedPartition* part = NULL; - char* name; - - if (!*diskp) - *diskp = ped_disk_new (*dev); - if (!*diskp) - goto error; - - if (!ped_disk_type_check_feature((*diskp)->type, PED_DISK_TYPE_PARTITION_NAME)) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s disk labels do not support partition name."), - (*diskp)->type->name); - goto error; - } - - if (!command_line_get_partition (_("Partition number?"), *diskp, &part)) - goto error; - - name = command_line_get_word (_("Partition name?"), - ped_partition_get_name (part), NULL, 0); - if (!name) - goto error; - if (!ped_partition_set_name (part, name)) - goto error_free_name; - free (name); - - if (!ped_disk_commit (*diskp)) - goto error; - return 1; - -error_free_name: - free (name); -error: - return 0; -} - -static int -do_type (PedDevice** dev, PedDisk** diskp) -{ - if (!*diskp) - *diskp = ped_disk_new (*dev); - if (!*diskp) - goto error; - - bool has_type_id = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_PARTITION_TYPE_ID); - bool has_type_uuid = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_PARTITION_TYPE_UUID); - - PED_ASSERT (!(has_type_id && has_type_uuid)); - - if (!has_type_id && !has_type_uuid) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("%s disk labels do not support partition type."), - (*diskp)->type->name); - goto error; - } - - PedPartition* part = NULL; - if (!command_line_get_partition (_("Partition number?"), *diskp, &part)) - goto error; - - char* input = NULL; - - if (has_type_id) { - uint8_t type_id = ped_partition_get_type_id (part); - static char buf[8]; - snprintf(buf, 8, "0x%02x", type_id); - - input = command_line_get_word (_("Partition type-id?"), buf, NULL, 0); - if (!input) - goto error; - - unsigned int tmp = strtol (input, (char**) NULL, 16); - if (tmp < 0x01 || tmp > 0xff) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Invalid type-id.")); - goto error_free_input; - } - - if (!ped_partition_set_type_id (part, tmp)) - goto error_free_input; - } - - if (has_type_uuid) { - uint8_t* type_uuid = ped_partition_get_type_uuid (part); - static char buf[UUID_STR_LEN]; - uuid_unparse_lower (type_uuid, buf); - free (type_uuid); - - input = command_line_get_word (_("Partition type-uuid?"), buf, NULL, 0); - if (!input) - goto error; - - uuid_t tmp; - if (uuid_parse (input, tmp) != 0 || uuid_is_null (tmp)) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Invalid type-uuid.")); - goto error_free_input; - } - - if (!ped_partition_set_type_uuid (part, tmp)) - goto error_free_input; - } - - free (input); - - // Reset the fs_type based on the filesystem, if it exists - part->fs_type = ped_file_system_probe (&part->geom); - - if (!ped_disk_commit (*diskp)) - goto error; - return 1; - -error_free_input: - free (input); -error: - return 0; -} - -static char* -partition_print_flags (PedPartition const *part) -{ - char *res = xstrdup (""); - if (!part) - return res; - - PedPartitionFlag flag; - size_t res_buf_len = 1; - char const *sep = ""; - for (flag = ped_partition_flag_next (0); flag; - flag = ped_partition_flag_next (flag)) - { - if (ped_partition_get_flag (part, flag)) - { - const char *name = _(ped_partition_flag_get_name (flag)); - size_t new_len = res_buf_len + strlen (sep) + strlen (name); - res = xrealloc (res, new_len); - stpcpy (stpcpy (res + res_buf_len - 1, sep), name); - res_buf_len = new_len; - sep = ", "; - } - } - - return res; -} - -static void -partition_print_flags_json (PedPartition const *part) -{ - if (!part) - return; - - int did_open_array = 0; - - PedPartitionFlag flag; - for (flag = ped_partition_flag_next (0); flag; - flag = ped_partition_flag_next (flag)) - { - if (ped_partition_get_flag (part, flag)) - { - if (!did_open_array) - ul_jsonwrt_array_open (&json, "flags"); - did_open_array = 1; - - ul_jsonwrt_value_s (&json, NULL, ped_partition_flag_get_name (flag)); - } - } - - if (did_open_array) - ul_jsonwrt_array_close (&json); -} - -static int -partition_print (PedPartition* part) -{ - return 1; -} - -static char* -disk_print_flags (PedDisk const *disk) -{ - char *res = xstrdup (""); - if (!disk) - return res; - - PedDiskFlag flag; - size_t res_buf_len = 1; - char const *sep = ""; - for (flag = ped_disk_flag_next (0); flag; - flag = ped_disk_flag_next (flag)) - { - if (ped_disk_get_flag (disk, flag)) - { - const char *name = _(ped_disk_flag_get_name (flag)); - size_t new_len = res_buf_len + strlen (sep) + strlen (name); - res = xrealloc (res, new_len); - stpcpy (stpcpy (res + res_buf_len - 1, sep), name); - res_buf_len = new_len; - sep = ", "; - } - } - - return res; -} - -static void -disk_print_flags_json (PedDisk const *disk) -{ - if (!disk) - return; - - int did_open_array = 0; - - PedDiskFlag flag; - for (flag = ped_disk_flag_next (0); flag; - flag = ped_disk_flag_next (flag)) - { - if (ped_disk_get_flag (disk, flag)) - { - if (!did_open_array) - ul_jsonwrt_array_open (&json, "flags"); - did_open_array = 1; - - ul_jsonwrt_value_s (&json, NULL, ped_disk_flag_get_name (flag)); - } - } - - if (did_open_array) - ul_jsonwrt_array_close (&json); -} - -static void -_print_disk_geometry (const PedDevice *dev) -{ - PED_ASSERT (dev != NULL); - const PedCHSGeometry* chs = &dev->bios_geom; - char* cyl_size = ped_unit_format_custom (dev, - chs->heads * chs->sectors, - PED_UNIT_KILOBYTE); - - if (opt_output_mode == MACHINE) { - printf ("%d:%d:%d:%s;\n", - chs->cylinders, chs->heads, chs->sectors, cyl_size); - } else if (opt_output_mode == JSON) { - char* tmp = ped_malloc (128); - snprintf (tmp, 128, "%d,%d,%d %s", chs->cylinders, chs->heads, chs->sectors, cyl_size); - ul_jsonwrt_value_s (&json, "geometry", tmp); - free (tmp); - } else { - printf (_("BIOS cylinder,head,sector geometry: %d,%d,%d. " - "Each cylinder is %s.\n"), - chs->cylinders, chs->heads, chs->sectors, cyl_size); - } - - free (cyl_size); -} - -static char * -_escape_machine_string (const char *str) -{ - size_t i, j; - char *dest; - - dest = ped_malloc (2 * strlen(str) + 1); - if (!dest) - return NULL; - - for (i = 0, j = 0; str[i] != '\0'; i++, j++) { - switch (str[i]) { - case ':': - case '\\': - dest[j++] = '\\'; - /* fallthrough */ - default: - dest[j] = str[i]; - break; - } - } - dest[j] = '\0'; - - return dest; -} - -static void -_print_disk_info (const PedDevice *dev, const PedDisk *diskp) -{ - char const *const transport[] = {"unknown", "scsi", "ide", "dac960", - "cpqarray", "file", "ataraid", "i2o", - "ubd", "dasd", "viodasd", "sx8", "dm", - "xvd", "sd/mmc", "virtblk", "aoe", - "md", "loopback", "nvme", "brd", - "pmem"}; - - char* start = ped_unit_format (dev, 0); - PedUnit default_unit = ped_unit_get_default (); - char* end = ped_unit_format_byte (dev, dev->length * dev->sector_size - - (default_unit == PED_UNIT_CHS || - default_unit == PED_UNIT_CYLINDER)); - - const char* pt_name = diskp ? diskp->type->name : "unknown"; - char *disk_flags = disk_print_flags (diskp); - - if (opt_output_mode == MACHINE) { - char *escaped_path = _escape_machine_string (dev->path); - char *escaped_model = _escape_machine_string (dev->model); - - switch (default_unit) { - case PED_UNIT_CHS: puts ("CHS;"); - break; - case PED_UNIT_CYLINDER: puts ("CYL;"); - break; - default: puts ("BYT;"); - break; - - } - printf ("%s:%s:%s:%lld:%lld:%s:%s:%s;\n", - escaped_path, end, transport[dev->type], - dev->sector_size, dev->phys_sector_size, - pt_name, escaped_model, disk_flags); - free (escaped_path); - free (escaped_model); - } else if (opt_output_mode == JSON) { - ul_jsonwrt_value_s (&json, "path", dev->path); - ul_jsonwrt_value_s (&json, "size", end); - ul_jsonwrt_value_s (&json, "model", dev->model); - ul_jsonwrt_value_s (&json, "transport", transport[dev->type]); - ul_jsonwrt_value_u64 (&json, "logical-sector-size", dev->sector_size); - ul_jsonwrt_value_u64 (&json, "physical-sector-size", dev->phys_sector_size); - ul_jsonwrt_value_s (&json, "label", pt_name); - if (diskp) { - bool has_disk_uuid = ped_disk_type_check_feature (diskp->type, PED_DISK_TYPE_DISK_UUID); - if (has_disk_uuid) { - uint8_t* uuid = ped_disk_get_uuid (diskp); - static char buf[UUID_STR_LEN]; - uuid_unparse_lower (uuid, buf); - ul_jsonwrt_value_s (&json, "uuid", buf); - free (uuid); - } - ul_jsonwrt_value_u64 (&json, "max-partitions", - ped_disk_get_max_primary_partition_count(diskp)); - disk_print_flags_json (diskp); - } - } else { - printf (_("Model: %s (%s)\n"), - dev->model, transport[dev->type]); - printf (_("Disk %s: %s\n"), dev->path, end); - printf (_("Sector size (logical/physical): %lldB/%lldB\n"), - dev->sector_size, dev->phys_sector_size); - } - - free (start); - free (end); - - if (ped_unit_get_default () == PED_UNIT_CHS - || ped_unit_get_default () == PED_UNIT_CYLINDER) - _print_disk_geometry (dev); - - if (opt_output_mode == HUMAN) { - printf (_("Partition Table: %s\n"), pt_name); - printf (_("Disk Flags: %s\n"), disk_flags); - } - free (disk_flags); -} - -static int -do_print (PedDevice** dev, PedDisk** diskp) -{ - Table* table; - int has_extended; - int has_name; - int has_devices_arg = 0; - int has_free_arg = 0; - int has_list_arg = 0; - int has_num_arg = 0; - char* peek_word; - char* start; - char* end; - char* size; - const char* name; - char* tmp; - wchar_t* table_rendered; - int ok = 1; /* default to success */ - - peek_word = command_line_peek_word (); - if (peek_word) { - if (strncmp (peek_word, "devices", 7) == 0) { - char *w = command_line_pop_word(); - free (w); - has_devices_arg = 1; - } - else if (strncmp (peek_word, "free", 4) == 0) { - char *w = command_line_pop_word (); - free (w); - has_free_arg = 1; - } - else if (strncmp (peek_word, "list", 4) == 0 || - strncmp (peek_word, "all", 3) == 0) { - char *w = command_line_pop_word(); - free (w); - has_list_arg = 1; - } - else - has_num_arg = isdigit(peek_word[0]); - - free (peek_word); - } - - if (!has_devices_arg && !has_list_arg) { - if (!*diskp) - *diskp = ped_disk_new (*dev); - /* Returning NULL here is an indication of failure, when in - script mode. Otherwise (interactive mode) it may indicate - a real error, but it may also indicate that the user - declined when asked to perform some operation. FIXME: - what this really needs is an API change, but a reliable - exit code is less important in interactive mode. */ - if (*diskp == NULL && opt_script_mode) - ok = 0; - } - - if (*diskp && - ped_disk_is_flag_available(*diskp, PED_DISK_CYLINDER_ALIGNMENT)) - if (!ped_disk_set_flag(*diskp, PED_DISK_CYLINDER_ALIGNMENT, - alignment == ALIGNMENT_CYLINDER)) - return 0; - - if (has_devices_arg) { - char* dev_name; - PedDevice* current_dev = NULL; - int status = 0; - - ped_device_probe_all(); - - while ((current_dev = ped_device_get_next(current_dev))) { - end = ped_unit_format_byte (current_dev, - current_dev->length - * current_dev->sector_size); - printf ("%s (%s)\n", current_dev->path, end); - free (end); - } - - dev_name = xstrdup ((*dev)->path); - ped_device_free_all (); - - *dev = ped_device_get (dev_name); - if (*dev && ped_device_open (*dev)) - status = 1; - free (dev_name); - - return status; - } - - else if (has_list_arg) - return _print_list (); - - else if (*diskp && has_num_arg) { - PedPartition* part = NULL; - int status = 0; - if (command_line_get_partition ("", *diskp, &part)) - status = partition_print (part); - return status; - } - - if (opt_output_mode == JSON) { - ul_jsonwrt_init (&json, stdout, 0); - ul_jsonwrt_root_open (&json); - ul_jsonwrt_object_open (&json, "disk"); - } - - _print_disk_info (*dev, *diskp); - if (!*diskp) - goto nopt; - if (opt_output_mode == HUMAN) - putchar ('\n'); - - has_extended = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_EXTENDED); - has_name = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_PARTITION_NAME); - bool has_type_id = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_PARTITION_TYPE_ID); - bool has_type_uuid = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_PARTITION_TYPE_UUID); - bool has_part_uuid = ped_disk_type_check_feature ((*diskp)->type, - PED_DISK_TYPE_PARTITION_UUID); - - PedPartition* part; - if (opt_output_mode == HUMAN) { - StrList *row1; - - if (ped_unit_get_default() == PED_UNIT_CHS) { - row1 = str_list_create (_("Number"), _("Start"), - _("End"), NULL); - } else { - row1 = str_list_create (_("Number"), _("Start"), - _("End"), _("Size"), NULL); - } - - if (has_extended) - str_list_append (row1, _("Type")); - - str_list_append (row1, _("File system")); - - if (has_name) - str_list_append (row1, _("Name")); - - str_list_append (row1, _("Flags")); - - - table = table_new (str_list_length(row1)); - - table_add_row_from_strlist (table, row1); - - for (part = ped_disk_next_partition (*diskp, NULL); part; - part = ped_disk_next_partition (*diskp, part)) { - - if ((!has_free_arg && !ped_partition_is_active(part)) || - part->type & PED_PARTITION_METADATA) - continue; - - tmp = ped_malloc (4); - - if (part->num >= 0) - sprintf (tmp, "%2d ", part->num); - else - sprintf (tmp, "%2s ", ""); - - StrList *row = str_list_create (tmp, NULL); - free(tmp); - - start = ped_unit_format (*dev, part->geom.start); - end = ped_unit_format_byte ( - *dev, - (part->geom.end + 1) * (*dev)->sector_size - 1); - size = ped_unit_format (*dev, part->geom.length); - if (ped_unit_get_default() == PED_UNIT_CHS) { - str_list_append (row, start); - str_list_append (row, end); - } else { - str_list_append (row, start); - str_list_append (row, end); - str_list_append (row, size); - } - - if (!(part->type & PED_PARTITION_FREESPACE)) { - if (has_extended) { - name = ped_partition_type_get_name (part->type); - str_list_append (row, name); - } - - str_list_append (row, part->fs_type ? - part->fs_type->name : ""); - - if (has_name) { - name = ped_partition_get_name (part); - str_list_append (row, name); - } - - char *flags = partition_print_flags (part); - str_list_append (row, flags); - free (flags); - } else { - if (has_extended) - str_list_append (row, ""); - str_list_append (row, _("Free Space")); - if (has_name) - str_list_append (row, ""); - str_list_append (row, ""); - } - - //PED_ASSERT (row.cols == caption.cols) - table_add_row_from_strlist (table, row); - str_list_destroy (row); - free (start); - free (end); - free (size); - } - - table_rendered = table_render (table); -#ifdef ENABLE_NLS - printf("%ls\n", table_rendered); -#else - printf("%s\n", table_rendered); -#endif - free (table_rendered); - table_destroy (table); - str_list_destroy (row1); - - } else if (opt_output_mode == JSON) { - - ul_jsonwrt_array_open (&json, "partitions"); - - for (part = ped_disk_next_partition (*diskp, NULL); part; - part = ped_disk_next_partition (*diskp, part)) { - - if ((!has_free_arg && !ped_partition_is_active(part)) || - part->type & PED_PARTITION_METADATA) - continue; - - ul_jsonwrt_object_open (&json, NULL); - - ul_jsonwrt_value_u64 (&json, "number", part->num >= 0 ? part->num : 0); - - tmp = ped_unit_format (*dev, part->geom.start); - ul_jsonwrt_value_s (&json, "start", tmp); - free (tmp); - - tmp = ped_unit_format_byte (*dev, (part->geom.end + 1) * (*dev)->sector_size - 1); - ul_jsonwrt_value_s (&json, "end", tmp); - free (tmp); - - if (ped_unit_get_default() != PED_UNIT_CHS) { - tmp = ped_unit_format (*dev, part->geom.length); - ul_jsonwrt_value_s (&json, "size", tmp); - free (tmp); - } - - name = ped_partition_type_get_name (part->type); - ul_jsonwrt_value_s (&json, "type", name); - - if (!(part->type & PED_PARTITION_FREESPACE)) { - - if (has_type_id) { - uint8_t type_id = ped_partition_get_type_id (part); - static char buf[8]; - snprintf(buf, 8, "0x%02x", type_id); - ul_jsonwrt_value_s (&json, "type-id", buf); - } - - if (has_type_uuid) { - uint8_t* type_uuid = ped_partition_get_type_uuid (part); - static char buf[UUID_STR_LEN]; - uuid_unparse_lower (type_uuid, buf); - ul_jsonwrt_value_s (&json, "type-uuid", buf); - free (type_uuid); - } - - if (has_part_uuid) { - uint8_t* uuid = ped_partition_get_uuid (part); - static char buf[UUID_STR_LEN]; - uuid_unparse_lower (uuid, buf); - ul_jsonwrt_value_s (&json, "uuid", buf); - free (uuid); - } - - if (has_name) { - name = ped_partition_get_name (part); - if (strcmp (name, "") != 0) - ul_jsonwrt_value_s (&json, "name", name); - } - - if (part->fs_type) - ul_jsonwrt_value_s (&json, "filesystem", part->fs_type->name); - - partition_print_flags_json (part); - } - - ul_jsonwrt_object_close (&json); - } - - ul_jsonwrt_array_close (&json); - - } else { - - for (part = ped_disk_next_partition (*diskp, NULL); part; - part = ped_disk_next_partition (*diskp, part)) { - - if ((!has_free_arg && !ped_partition_is_active(part)) || - part->type & PED_PARTITION_METADATA) - continue; - - if (part->num >= 0) - printf ("%d:", part->num); - else - fputs ("1:", stdout); - - char *s = ped_unit_format (*dev, part->geom.start); - printf ("%s:", s); - free (s); - s = ped_unit_format_byte (*dev, - (part->geom.end + 1) * - (*dev)->sector_size - 1); - printf ("%s:", s); - free (s); - - if (ped_unit_get_default() != PED_UNIT_CHS) { - s = ped_unit_format (*dev, part->geom.length); - printf ("%s:", s); - free (s); - } - - if (!(part->type & PED_PARTITION_FREESPACE)) { - - if (part->fs_type) - printf ("%s:", part->fs_type->name); - else - putchar (':'); - - if (has_name) - { - char *escaped_name = _escape_machine_string (ped_partition_get_name (part)); - printf ("%s:", escaped_name); - free (escaped_name); - } else - putchar (':'); - - char *flags = partition_print_flags (part); - printf ("%s;\n", flags); - free (flags); - - } else { - puts ("free;"); - } - } - } - -nopt: - - if (opt_output_mode == JSON) { - ul_jsonwrt_object_close (&json); - ul_jsonwrt_root_close (&json); - } - - return ok; -} - -static int -_print_list () -{ - PedDevice *current_dev = NULL; - PedDisk *diskp = NULL; - - ped_device_probe_all(); - - while ((current_dev = ped_device_get_next(current_dev))) { - do_print (¤t_dev, &diskp); - if (diskp) - ped_disk_destroy (diskp); - diskp = 0; - putchar ('\n'); - } - - return 1; -} - -static int -do_quit (PedDevice** dev, PedDisk **diskp) -{ - _done (*dev, *diskp); - exit (EXIT_SUCCESS); -} - -static PedPartitionType -_disk_get_part_type_for_sector (PedDisk* disk, PedSector sector) -{ - PedPartition* extended; - - extended = ped_disk_extended_partition (disk); - if (!extended - || !ped_geometry_test_sector_inside (&extended->geom, sector)) - return 0; - - return PED_PARTITION_LOGICAL; -} - -/* This function checks if "part" contains a file system, and returs - * 0 if either no file system was found, or the user declined to add it. - * 1 if a file system was found, and the user chose to add it. - * -1 if the user chose to cancel the entire search. - */ -static int -_rescue_add_partition (PedPartition* part) -{ - const PedFileSystemType* fs_type; - PedGeometry* probed; - PedExceptionOption ex_opt; - PedConstraint* constraint; - char* found_start; - char* found_end; - - fs_type = ped_file_system_probe (&part->geom); - if (!fs_type) - return 0; - probed = ped_file_system_probe_specific (fs_type, &part->geom); - if (!probed) - return 0; - - if (!ped_geometry_test_inside (&part->geom, probed)) { - ped_geometry_destroy (probed); - return 0; - } - - constraint = ped_constraint_exact (probed); - if (!ped_disk_set_partition_geom (part->disk, part, constraint, - probed->start, probed->end)) { - ped_constraint_destroy (constraint); - return 0; - } - ped_constraint_destroy (constraint); - - found_start = ped_unit_format (probed->dev, probed->start); - found_end = ped_unit_format (probed->dev, probed->end); - ex_opt = ped_exception_throw ( - PED_EXCEPTION_INFORMATION, - PED_EXCEPTION_YES_NO_CANCEL, - _("A %s %s partition was found at %s -> %s. " - "Do you want to add it to the partition table?"), - fs_type->name, ped_partition_type_get_name (part->type), - found_start, found_end); - ped_geometry_destroy (probed); - free (found_start); - free (found_end); - - switch (ex_opt) { - case PED_EXCEPTION_CANCEL: return -1; - case PED_EXCEPTION_NO: return 0; - default: break; - } - - if (!ped_partition_set_system (part, fs_type)) - return 0; - - if (!ped_disk_commit (part->disk)) - return 0; - - return 1; -} - -/* hack: we only iterate through the start, since most (all) fs's have their - * superblocks at the start. We'll need to change this if we generalize - * for RAID, or something... - */ -static int -_rescue_pass (PedDisk* disk, PedGeometry* start_range, PedGeometry* end_range) -{ - PedSector start; - PedGeometry start_geom_exact; - PedGeometry entire_dev; - PedConstraint constraint; - PedPartition* part; - PedPartitionType part_type; - - part_type = _disk_get_part_type_for_sector ( - disk, (start_range->start + end_range->end) / 2); - - ped_geometry_init (&entire_dev, disk->dev, 0, disk->dev->length); - - ped_timer_reset (g_timer); - ped_timer_set_state_name (g_timer, _("searching for file systems")); - for (start = start_range->start; start <= start_range->end; start++) { - ped_timer_update (g_timer, 1.0 * (start - start_range->start) - / start_range->length); - - ped_geometry_init (&start_geom_exact, disk->dev, start, 1); - ped_constraint_init ( - &constraint, ped_alignment_any, ped_alignment_any, - &start_geom_exact, &entire_dev, - 1, disk->dev->length); - part = ped_partition_new (disk, part_type, NULL, start, - end_range->end); - if (!part) { - ped_constraint_done (&constraint); - continue; - } - - ped_exception_fetch_all (); - if (ped_disk_add_partition (disk, part, &constraint)) { - ped_exception_leave_all (); - switch (_rescue_add_partition (part)) { - case 1: - ped_constraint_done (&constraint); - return 1; - - case 0: - ped_disk_remove_partition (disk, part); - break; - - case -1: - goto error_remove_partition; - } - } else { - ped_exception_leave_all (); - } - ped_partition_destroy (part); - ped_constraint_done (&constraint); - } - ped_timer_update (g_timer, 1.0); - - return 1; - -error_remove_partition: - ped_disk_remove_partition (disk, part); - ped_partition_destroy (part); - ped_constraint_done (&constraint); - return 0; -} - -static int -do_rescue (PedDevice** dev, PedDisk** diskp) -{ - PedDisk* disk; - PedSector start = 0, end = 0; - PedSector fuzz; - PedGeometry probe_start_region; - PedGeometry probe_end_region; - - if (*diskp) { - ped_disk_destroy (*diskp); - *diskp = 0; - } - disk = ped_disk_new (*dev); - if (!disk) - goto error; - if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT)) - if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT, - 0)) - goto error; - - if (!command_line_get_sector (_("Start?"), *dev, &start, NULL, NULL)) - goto error_destroy_disk; - if (!command_line_get_sector (_("End?"), *dev, &end, NULL, NULL)) - goto error_destroy_disk; - - fuzz = PED_MAX (PED_MIN ((end - start) / 10, MEGABYTE_SECTORS(*dev)), - MEGABYTE_SECTORS(*dev) * 16); - - ped_geometry_init (&probe_start_region, *dev, - PED_MAX(start - fuzz, 0), - PED_MIN(2 * fuzz, (*dev)->length - (start - fuzz))); - ped_geometry_init (&probe_end_region, *dev, - PED_MAX(end - fuzz, 0), - PED_MIN(2 * fuzz, (*dev)->length - (end - fuzz))); - - if (!_rescue_pass (disk, &probe_start_region, &probe_end_region)) - goto error_destroy_disk; - - ped_disk_destroy (disk); - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - - return 1; - -error_destroy_disk: - ped_disk_destroy (disk); -error: - return 0; -} - -static int -do_resize (PedDevice **dev, PedDisk** diskp) -{ - ped_exception_throw ( - PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("The resize command has been removed in parted 3.0")); - return 0; -} - -static int -do_resizepart (PedDevice** dev, PedDisk** diskp) -{ - PedDisk *disk = *diskp; - PedPartition *part = NULL; - PedSector start, end, oldend; - PedGeometry *range_end = NULL; - PedConstraint* constraint; - int rc = 0; - char* end_input = NULL; - char* end_size = NULL; - - if (!disk) { - disk = ped_disk_new (*dev); - *diskp = disk; - } - if (!disk) - goto error; - - if (ped_disk_is_flag_available(disk, PED_DISK_CYLINDER_ALIGNMENT)) - if (!ped_disk_set_flag(disk, PED_DISK_CYLINDER_ALIGNMENT, - alignment == ALIGNMENT_CYLINDER)) - goto error; - - if (!command_line_get_partition (_("Partition number?"), disk, &part)) - goto error; - - /* Save the optional End value if the partition is busy. */ - if (ped_partition_is_busy(part)) { - if (command_line_get_word_count()) - end_size = command_line_pop_word(); - } - - /* If the partition is busy this may clear the command_line and prompt the user */ - if (!_partition_warn_busy (part)) - goto error; - - /* Push the End value back onto the command_line, if it exists */ - if (end_size) { - command_line_push_word(end_size); - } - - start = part->geom.start; - end = oldend = part->geom.end; - if (!command_line_get_sector (_("End?"), *dev, &end, &range_end, &end_input)) - goto error; - _adjust_end_if_iec(&start, &end, range_end, end_input); - - /* Do not move start of the partition */ - constraint = constraint_from_start_end_fixed_start (*dev, start, range_end); - if (!ped_disk_set_partition_geom (disk, part, constraint, - start, end)) - goto error_destroy_constraint; - /* warn when shrinking partition - might lose data */ - if (part->geom.end < oldend) - if (ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_YES_NO, - _("Shrinking a partition can cause data loss, " \ - "are you sure you want to continue?")) != PED_EXCEPTION_YES) - goto error_destroy_constraint; - ped_disk_commit (disk); - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - - rc = 1; - -error_destroy_constraint: - ped_constraint_destroy (constraint); -error: - if (range_end != NULL) - ped_geometry_destroy (range_end); - free(end_input); - free(end_size); - - return rc; -} - - -static int -do_rm (PedDevice** dev, PedDisk** diskp) -{ - PedPartition* part = NULL; - - if (!*diskp) - *diskp = ped_disk_new (*dev); - if (!*diskp) - goto error; - - if (!command_line_get_partition (_("Partition number?"), *diskp, &part)) - goto error; - if (!_partition_warn_busy (part)) - goto error; - - if (!ped_disk_delete_partition (*diskp, part)) - goto error; - if (!ped_disk_commit (*diskp)) - goto error; - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - - return 1; - -error: - return 0; -} - -static int -do_select (PedDevice** dev, PedDisk** diskp) -{ - PedDevice* new_dev = *dev; - - if (!command_line_get_device (_("New device?"), &new_dev)) - return 0; - if (!ped_device_open (new_dev)) - return 0; - - ped_device_close (*dev); - if (*diskp) { - ped_disk_destroy (*diskp); - *diskp = 0; - } - *dev = new_dev; - print_using_dev (*dev); - return 1; -} - -/* Return true if partition PART is consistent with DISK's selected - offset and alignment requirements. Also return true if there is - insufficient kernel support to determine DISK's alignment requirements. - Otherwise, return false. A_TYPE selects whether to check for minimal - or optimal alignment requirements. - - If align_err is not NULL a string describing why the check failed - will be allocated and returned. It is up to the caller to free this. - Pass NULL if no error description is needed. - - If allocating the error string fails *align_err will be set to NULL, the - caller should always check for this. -*/ -static bool -partition_align_check (PedDisk const *disk, PedPartition const *part, - enum AlignmentType a_type, char **align_err) -{ - PED_ASSERT (part->disk == disk); - PedDevice const *dev = disk->dev; - - PedAlignment *pa = (a_type == PA_MINIMUM - ? ped_device_get_minimum_alignment (dev) - : ped_device_get_optimum_alignment (dev)); - if (pa == NULL) - return true; - - PED_ASSERT (pa->grain_size != 0); - bool ok = (part->geom.start % pa->grain_size == pa->offset); - - /* If it isn't aligned and the caller wants an explanation, - show them the math. */ - if (!ok && align_err) { - if (asprintf(align_err, - "%llds %% %llds != %llds", - part->geom.start, pa->grain_size, pa->offset) < 0) { - *align_err = NULL; - } - } - free (pa); - return ok; -} - -static int -do_align_check (PedDevice **dev, PedDisk** diskp) -{ - if (!*diskp) - *diskp = ped_disk_new (*dev); - if (!*diskp) - goto error; - - enum AlignmentType align_type = PA_OPTIMUM; - PedPartition *part = NULL; - - if (!command_line_get_align_type (_("alignment type(min/opt)"), &align_type)) - goto error; - if (!command_line_get_partition (_("Partition number?"), *diskp, &part)) - goto error; - - char *align_err = NULL; - bool aligned = partition_align_check (*diskp, part, align_type, &align_err); - - /* Don't print the error in script mode */ - if (opt_script_mode) { - free(align_err); - return aligned ? 1 : 0; - } - - if (aligned) - printf(_("%d aligned\n"), part->num); - else - printf(_("%d not aligned: %s\n"), - part->num, - align_err ? align_err : _("unknown (malloc failed)")); - - free(align_err); - - /* Always return 1 in interactive mode, to be consistent - with the other modes. */ - return 1; - -error: - return 0; -} - -static int -do_disk_set (PedDevice** dev, PedDisk** diskp) -{ - PedDiskFlag flag; - int state; - - if (!*diskp) - *diskp = ped_disk_new (*dev); - if (!*diskp) - goto error; - - if (!command_line_get_disk_flag (_("Flag to Invert?"), *diskp, &flag)) - goto error; - state = (ped_disk_get_flag (*diskp, flag) == 0 ? 1 : 0); - - if (!is_toggle_mode) { - if (!command_line_get_state (_("New state?"), &state)) - goto error; - } - - if (!ped_disk_set_flag (*diskp, flag, state)) - goto error; - if (!ped_disk_commit (*diskp)) - goto error; - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - - return 1; - -error: - return 0; -} - -static int -do_set (PedDevice** dev, PedDisk **diskp) -{ - PedPartition* part = NULL; - PedPartitionFlag flag; - int state; - - if (*diskp == 0) - *diskp = ped_disk_new (*dev); - if (!*diskp) - goto error; - - if (!command_line_get_partition (_("Partition number?"), *diskp, &part)) - goto error; - if (!command_line_get_part_flag (_("Flag to Invert?"), part, &flag)) - goto error; - state = (ped_partition_get_flag (part, flag) == 0 ? 1 : 0); - - if (!is_toggle_mode) { - if (!command_line_get_state (_("New state?"), &state)) - goto error; - } - - if (!ped_partition_set_flag (part, flag, state)) - goto error; - if (!ped_disk_commit (*diskp)) - goto error; - - if ((*dev)->type != PED_DEVICE_FILE) - disk_is_modified = 1; - - return 1; - -error: - return 0; -} - -static int -do_disk_toggle (PedDevice **dev, PedDisk** diskp) -{ - int result; - - is_toggle_mode = 1; - result = do_disk_set (dev, diskp); - is_toggle_mode = 0; - - return result; -} - -static int -do_toggle (PedDevice **dev, PedDisk** diskp) -{ - int result; - - is_toggle_mode = 1; - result = do_set (dev, diskp); - is_toggle_mode = 0; - - return result; -} - -static int -do_unit (PedDevice** dev, PedDisk** diskp) -{ - PedUnit unit = ped_unit_get_default (); - if (!command_line_get_unit (_("Unit?"), &unit)) - return 0; - ped_unit_set_default (unit); - return 1; -} - -static int -do_version () -{ - printf ("\n%s\n%s", - prog_name, - _(copyright_msg)); - return 1; -} - -static void -_init_messages () -{ - StrList* list; - int first; - PedFileSystemType* fs_type; - PedFileSystemAlias* fs_alias; - PedDiskType* disk_type; - PedPartitionFlag part_flag; - PedDiskFlag disk_flag; - PedUnit unit; - -/* flags */ - first = 1; - list = str_list_create (_(flag_msg_start), NULL); - for (part_flag = ped_partition_flag_next (0); part_flag; - part_flag = ped_partition_flag_next (part_flag)) { - if (first) - first = 0; - else - str_list_append (list, ", "); - str_list_append (list, - _(ped_partition_flag_get_name (part_flag))); - } - str_list_append (list, "\n"); - - flag_msg = str_list_convert (list); - str_list_destroy (list); -/* disk flags */ - first = 1; - list = str_list_create (_(disk_flag_msg_start), NULL); - for (disk_flag = ped_disk_flag_next (0); disk_flag; - disk_flag = ped_disk_flag_next (disk_flag)) { - if (first) - first = 0; - else - str_list_append (list, ", "); - str_list_append (list, - _(ped_disk_flag_get_name (disk_flag))); - } - str_list_append (list, "\n"); - - disk_flag_msg = str_list_convert (list); - str_list_destroy (list); - -/* units */ - first = 1; - list = str_list_create (_(unit_msg_start), NULL); - for (unit = PED_UNIT_FIRST; unit <= PED_UNIT_LAST; unit++) { - if (first) - first = 0; - else - str_list_append (list, ", "); - str_list_append (list, ped_unit_get_name (unit)); - } - str_list_append (list, "\n"); - - unit_msg = str_list_convert (list); - str_list_destroy (list); - -/* disk type */ - list = str_list_create (_(label_type_msg_start), NULL); - - first = 1; - for (disk_type = ped_disk_type_get_next (NULL); - disk_type; disk_type = ped_disk_type_get_next (disk_type)) { - if (disk_type->ops->write == NULL) - continue; - - if (first) - first = 0; - else - str_list_append (list, ", "); - str_list_append (list, disk_type->name); - } - str_list_append (list, "\n"); - - label_type_msg = str_list_convert (list); - str_list_destroy (list); - -/* mkpart - file system types and aliases */ - list = str_list_create (_(fs_type_msg_start), NULL); - - first = 1; - for (fs_type = ped_file_system_type_get_next (NULL); - fs_type; fs_type = ped_file_system_type_get_next (fs_type)) { - if (first) - first = 0; - else - str_list_append (list, ", "); - str_list_append (list, fs_type->name); - } - for (fs_alias = ped_file_system_alias_get_next (NULL); - fs_alias; fs_alias = ped_file_system_alias_get_next (fs_alias)) { - if (first) - first = 0; - else - str_list_append (list, ", "); - str_list_append (list, fs_alias->alias); - } - str_list_append (list, "\n"); - - mkpart_fs_type_msg = str_list_convert (list); - str_list_destroy (list); -} - -static void -_done_messages () -{ - free (flag_msg); - free (unit_msg); - free (mkpart_fs_type_msg); - free (label_type_msg); -} - -static void -_init_commands () -{ - command_register (commands, - command_create ( str_list_create_unique ("align-check", - _("align-check"), NULL), - do_align_check, - str_list_create ( - _("align-check TYPE N" - " " - "check partition N for" - " TYPE(min|opt) alignment"), NULL), - - str_list_create (_(number_msg), _(min_or_opt_msg), - NULL), 1)); - command_register (commands, command_create ( - str_list_create_unique ("help", _("help"), NULL), - do_help, - str_list_create ( -_("help [COMMAND] print general help, or help " - "on COMMAND"), -NULL), - NULL, 1)); - - command_register (commands, command_create ( - str_list_create_unique ("mklabel", _("mklabel"), "mktable", _("mktable"), NULL), - do_mklabel, - str_list_create ( -_("mklabel,mktable LABEL-TYPE create a new disklabel " - "(partition table)"), -NULL), - str_list_create (label_type_msg, NULL), 1)); - - command_register (commands, command_create ( - str_list_create_unique ("mkpart", _("mkpart"), NULL), - do_mkpart, - str_list_create ( -_("mkpart PART-TYPE [FS-TYPE] START END make a partition"), -NULL), - str_list_create (_(part_type_msg), - _(mkpart_fs_type_msg), - _(start_end_msg), - "\n", -_("'mkpart' makes a partition without creating a new file system on the " - "partition. FS-TYPE may be specified to set an appropriate partition ID.\n"), -NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("name", _("name"), NULL), - do_name, - str_list_create ( -_("name NUMBER NAME name partition NUMBER as NAME"), -NULL), - str_list_create (_(number_msg), _(name_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("print", _("print"), NULL), - do_print, - str_list_create ( -_("print [devices|free|list,all] display the partition table, " - "or available devices, or free space, or all found partitions"), -NULL), - str_list_create ( -_("Without arguments, 'print' displays the entire partition table. However " - "with the following arguments it performs various other actions.\n"), -_(" devices : display all active block devices\n"), -_(" free : display information about free unpartitioned space on the " - "current block device\n"), -_(" list, all : display the partition tables of all active block devices\n"), -NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("quit", _("quit"), NULL), - do_quit, - str_list_create ( -_("quit exit program"), -NULL), - NULL, 1)); - -command_register (commands, command_create ( - str_list_create_unique ("rescue", _("rescue"), NULL), - do_rescue, - str_list_create ( -_("rescue START END rescue a lost partition near " -"START and END"), -NULL), - str_list_create (_(start_end_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("resize", _("resize"), NULL), - do_resize, - NULL, - str_list_create (_(N_("The resize command was removed in parted 3.0\n")), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("resizepart", _("resizepart"), NULL), - do_resizepart, - str_list_create ( -_("resizepart NUMBER END resize partition NUMBER"), -NULL), - str_list_create (_(number_msg), _(end_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("rm", _("rm"), NULL), - do_rm, - str_list_create ( -_("rm NUMBER delete partition NUMBER"), -NULL), - str_list_create (_(number_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("select", _("select"), NULL), - do_select, - str_list_create ( -_("select DEVICE choose the device to edit"), -NULL), - str_list_create (_(device_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("disk_set", _("disk_set"), NULL), - do_disk_set, - str_list_create ( -_("disk_set FLAG STATE change the FLAG on selected device"), -NULL), - str_list_create (disk_flag_msg, _(state_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("disk_toggle", _("disk_toggle"), NULL), - do_disk_toggle, - str_list_create ( -_("disk_toggle [FLAG] toggle the state of FLAG on " -"selected device"), -NULL), - str_list_create (disk_flag_msg, NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("set", _("set"), NULL), - do_set, - str_list_create ( -_("set NUMBER FLAG STATE change the FLAG on partition " - "NUMBER"), -NULL), - str_list_create (_(number_msg), flag_msg, _(state_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("toggle", _("toggle"), NULL), - do_toggle, - str_list_create ( -_("toggle [NUMBER [FLAG]] toggle the state of FLAG on " - "partition NUMBER"), -NULL), - str_list_create (_(number_msg), flag_msg, NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("type", _("type"), NULL), - do_type, - str_list_create ( -_("type NUMBER TYPE-ID or TYPE-UUID type set TYPE-ID or TYPE-UUID of partition NUMBER"), -NULL), - str_list_create (_(number_msg), _(type_msg), NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("unit", _("unit"), NULL), - do_unit, - str_list_create ( -_("unit UNIT set the default unit to UNIT"), -NULL), - str_list_create (unit_msg, NULL), 1)); - -command_register (commands, command_create ( - str_list_create_unique ("version", _("version"), NULL), - do_version, - str_list_create ( -_("version display the version number " -"and copyright information of GNU Parted"), -NULL), - str_list_create ( -_("'version' displays copyright and version information corresponding to this " -"copy of GNU Parted\n"), -NULL), 1)); - -} - -static void -_done_commands () -{ -Command** walk; - -for (walk = commands; *walk; walk++) { - command_destroy (*walk); - *walk = NULL; -} -} - -static void -_init_i18n () -{ -/* intialize i18n */ -#ifdef ENABLE_NLS -setlocale(LC_ALL, ""); -bindtextdomain(PACKAGE, LOCALEDIR); -textdomain(PACKAGE); -#endif /* ENABLE_NLS */ -} - -void -_version () -{ - version_etc (stdout, PROGRAM_NAME, PACKAGE_NAME, Version, AUTHORS, - (char *) NULL); -} - -static int -_parse_options (int* argc_ptr, char*** argv_ptr) -{ -int opt, help = 0, list = 0, version = 0, wrong = 0; - -while (1) -{ - opt = getopt_long (*argc_ptr, *argv_ptr, "hlmjsfva:", - options, NULL); - if (opt == -1) - break; - - switch (opt) { - case 'h': help = 1; break; - case 'l': list = 1; break; - case 'm': opt_output_mode = MACHINE; break; - case 'j': opt_output_mode = JSON; break; - case 's': opt_script_mode = 1; break; - case 'f': opt_fix_mode = 1; break; - case 'v': version = 1; break; - case 'a': - alignment = XARGMATCH ("--align", optarg, - align_args, align_types); - break; - case PRETEND_INPUT_TTY: - pretend_input_tty = 1; - break; - default: - wrong = 1; - break; - } -} - -if (wrong == 1) { - fprintf (stderr, - _("Usage: %s [-hlmsfv] [-a] [DEVICE [COMMAND [PARAMETERS]]...]\n"), - program_name); - return 0; -} - -if (version == 1) { - _version (); - exit (EXIT_SUCCESS); -} - -if (help == 1) { - help_msg (); - exit (EXIT_SUCCESS); -} - -if (list == 1) { - _print_list (); - exit (EXIT_SUCCESS); -} - -*argc_ptr -= optind; -*argv_ptr += optind; -return 1; -} - -static PedDevice* -_choose_device (int* argc_ptr, char*** argv_ptr) -{ -PedDevice* dev; - -/* specified on command line? */ -if (*argc_ptr) { - dev = ped_device_get ((*argv_ptr) [0]); - if (!dev) - return NULL; - (*argc_ptr)--; - (*argv_ptr)++; -} else { -retry: - ped_device_probe_all (); - dev = ped_device_get_next (NULL); - if (!dev) { - if (ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_RETRY_CANCEL, - _("No device found")) - == PED_EXCEPTION_RETRY) - goto retry; - else - return NULL; - } -} - -if (!ped_device_open (dev)) - return NULL; -return dev; -} - -static PedDevice* -_init (int* argc_ptr, char*** argv_ptr) -{ -PedDevice* dev; - -#ifdef ENABLE_MTRACE -mtrace(); -#endif - -_init_i18n (); -if (!init_ui ()) - goto error; -_init_messages (); -_init_commands (); - -if (!_parse_options (argc_ptr, argv_ptr)) - goto error_done_commands; - -if (!opt_script_mode) - if (init_readline ()) - goto error_done_commands; - -#ifdef HAVE_GETUID - if (getuid() != 0 && !opt_script_mode) { - fputs (_("WARNING: You are not superuser. Watch out for " - "permissions.\n"), stderr); - } -#endif - -dev = _choose_device (argc_ptr, argv_ptr); -if (!dev) - goto error_done_commands; - -g_timer = ped_timer_new (_timer_handler, &timer_context); -if (!g_timer) - goto error_done_commands; -timer_context.last_update = 0; - -return dev; - -error_done_commands: -_done_commands (); -_done_messages (); -done_ui (); -error: -return NULL; -} - -static void -_done (PedDevice* dev, PedDisk* diskp) -{ - if (diskp) - ped_disk_destroy (diskp); - if (dev->boot_dirty && dev->type != PED_DEVICE_FILE) { - ped_exception_throw ( - PED_EXCEPTION_WARNING, - PED_EXCEPTION_OK, - _("You should reinstall your boot loader before " - "rebooting. Read section 4 of the Parted User " - "documentation for more information.")); - } - if (!opt_script_mode && opt_output_mode == HUMAN && disk_is_modified) { - ped_exception_throw ( - PED_EXCEPTION_INFORMATION, PED_EXCEPTION_OK, - _("You may need to update /etc/fstab.\n")); -} - -ped_device_close (dev); - -ped_timer_destroy (g_timer); -_done_commands (); -_done_messages (); -done_ui(); -} - -int -parted_main (int argc, char** argv) -{ - PedDevice* dev; - PedDisk* diskp = 0; - int status; - - set_program_name (argv[0]); - atexit (close_stdout); - - dev = _init (&argc, &argv); - if (!dev) - return 1; - - if (argc || opt_script_mode) - status = non_interactive_mode (&dev, &diskp, commands, argc, argv); - else - status = interactive_mode (&dev, &diskp, commands); - - _done (dev, diskp); - - return !status; -} diff --git a/jni/parted/parted/strlist.c b/jni/parted/parted/strlist.c deleted file mode 100755 index c4cb351..0000000 --- a/jni/parted/parted/strlist.c +++ /dev/null @@ -1,582 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include "xalloc.h" - -#ifdef ENABLE_NLS - -#undef __USE_GNU -#define __USE_GNU - -#include -#include - -#endif /* !ENABLE_NLS */ - -#include "strlist.h" - -#define MIN(a,b) ( (anext = NULL; - - return list; -} - -void -str_list_destroy (StrList* list) -{ - if (list) { - str_list_destroy (list->next); - str_list_destroy_node (list); - } -} - -void -str_list_destroy_node (StrList* list) -{ - void *p = (char *) (list->str); /* discard const */ - free (p); - free (list); -} - -StrList* -str_list_duplicate_node (const StrList* node) -{ - StrList* result = str_list_alloc (); - result->str = wchar_strdup (node->str); - return result; -} - -StrList* -str_list_duplicate (const StrList* list) -{ - if (list) - return str_list_join (str_list_duplicate_node (list), - str_list_duplicate (list->next)); - else - return NULL; -} - -StrList* -str_list_join (StrList* a, StrList* b) -{ - StrList* walk; - - for (walk = a; walk && walk->next; walk = walk->next); - - if (walk) { - walk->next = b; - return a; - } else { - return b; - } -} - -static StrList* -_str_list_append (StrList* list, const wchar_t* str) -{ - StrList* walk; - - if (list) { - for (walk = list; walk->next; walk = walk->next); - walk->next = str_list_alloc (); - walk = walk->next; - } else { - walk = list = str_list_alloc (); - } - walk->str = str; - - return list; -} - -StrList* -str_list_append (StrList* list, const char* str) -{ - return _str_list_append (list, gettext_to_wchar (str)); -} - -StrList* -str_list_append_unique (StrList* list, const char* str) -{ - StrList* walk; - wchar_t* new_str = gettext_to_wchar (str); - - for (walk=list; walk; walk=walk->next) { - if (walk->str) { - if (wchar_strcasecmp (new_str, walk->str) == 0) { - free (new_str); - return list; - } - } - } - - return _str_list_append (list, new_str); -} - -StrList* -str_list_insert (StrList* list, const char* str) -{ - return str_list_join (str_list_create (str, NULL), list); -} - -StrList* -str_list_create (const char* first, ...) -{ - va_list args; - char* str; - StrList* list; - - list = str_list_append (NULL, first); - - if (first) { - va_start (args, first); - while ( (str = va_arg (args, char*)) ) - str_list_append (list, str); - va_end (args); - } - - return list; -} - -StrList* -str_list_create_unique (const char* first, ...) -{ - va_list args; - char* str; - StrList* list; - - list = str_list_append (NULL, first); - - if (first) { - va_start (args, first); - while ( (str = va_arg (args, char*)) ) - str_list_append_unique (list, str); - va_end (args); - } - - return list; -} - -char* -str_list_convert_node (const StrList* list) -{ - return wchar_to_str (list->str, 0); -} - -char* -str_list_convert (const StrList* list) -{ - const StrList* walk; - int pos = 0; - int length = 1; - char* str = xstrdup (""); - - for (walk = list; walk; walk = walk->next) { - if (walk->str) { - char* tmp = wchar_to_str (walk->str, 0); - - length += strlen (tmp); - - str = realloc (str, length); - strcpy (str + pos, tmp); - - pos = length - 1; - free (tmp); - } - } - - return str; -} - -void -str_list_print (const StrList* list, FILE *fp) -{ - const StrList* walk; - - for (walk=list; walk; walk=walk->next) { - if (walk->str) - print_wchar (walk->str, 0, fp); - } -} - -static int -str_search (const wchar_t* str, int n, wchar_t c) -{ - int i; - - for (i=0; i 10); - - line_left = line_length - offset; - - for (walk=list; walk; walk=walk->next) { - if (!walk->str) - continue; - str = walk->str; - str_len = wchar_strlen (str); - - while (line_left < str_len || wchar_strchr (str, '\n')) { - line_break = 0; - - cut_left = MIN (line_left - 1, str_len - 1); - - /* we can have a space "over", but not a comma */ - if (cut_left < str_len - && is_space (str [cut_left + 1])) - cut_left++; - - while (cut_left && !is_break_point (str [cut_left])) - cut_left--; - while (cut_left && is_space (str [cut_left])) - cut_left--; - - /* str [cut_left] is either the end of a word, or a - * Japanese character, or the start of a blank line. - */ - - search_result = str_search (str, cut_left + 1, '\n'); - if (search_result != -1) { - cut_left = search_result - 1; - line_break = 1; - } - - for (cut_right = cut_left + (line_break ? 2 : 1); - cut_right < str_len && is_space (str [cut_right]); - cut_right++); - - if (cut_left > 0) - print_wchar (str, cut_left + 1, fp); - - str += cut_right; - str_len -= cut_right; - line_left = line_length - indent; - - if (walk->next || *str) - fprintf (fp, "\n%*s", indent, ""); - else if (line_break) - fputc ('\n', fp); - } - - print_wchar (str, 0, fp); - line_left -= wchar_strlen (str); - } -} - -static int -_str_list_match_node (const StrList* list, const wchar_t* str) -{ - if (wchar_strcasecmp (list->str, str) == 0) - return 2; - if (wchar_strncasecmp (list->str, str, wchar_strlen (str)) == 0) - return 1; - return 0; -} - -int -str_list_match_node (const StrList* list, const char* str) -{ - wchar_t* wc_str = gettext_to_wchar (str); /* FIXME */ - int status; - - status = _str_list_match_node (list, wc_str); - free (wc_str); - - return status; -} - -/* returns: 2 for full match - 1 for partial match - 0 for no match - */ -int -str_list_match_any (const StrList* list, const char* str) -{ - const StrList* walk; - int best_status = 0; - wchar_t* wc_str = gettext_to_wchar (str); - - for (walk = list; walk; walk = walk->next) { - int this_status = _str_list_match_node (walk, wc_str); - if (this_status > best_status) - best_status = this_status; - } - - free (wc_str); - return best_status; -} - -StrList* -str_list_match (const StrList* list, const char* str) -{ - const StrList* walk; - const StrList* partial_match = NULL; - int ambiguous = 0; - wchar_t* wc_str = gettext_to_wchar (str); - - for (walk = list; walk; walk = walk->next) { - switch (_str_list_match_node (walk, wc_str)) { - case 2: - free (wc_str); - return (StrList*) walk; - - case 1: - if (partial_match) - ambiguous = 1; - partial_match = walk; - } - } - - free (wc_str); - return ambiguous ? NULL : (StrList*) partial_match; -} - -int -str_list_length (const StrList* list) -{ - int length = 0; - const StrList* walk; - - for (walk = list; walk; walk = walk->next) - length++; - - return length; -} diff --git a/jni/parted/parted/strlist.h b/jni/parted/parted/strlist.h deleted file mode 100755 index f9c4183..0000000 --- a/jni/parted/parted/strlist.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2001, 2007, 2009-2014, 2019-2023 Free Software - Foundation, Inc. - - 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 3 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, see . -*/ - -#ifndef STRLIST_H_INCLUDED -#define STRLIST_H_INCLUDED - -#include - -#ifndef ENABLE_NLS -# define L_(str) str -# ifdef wchar_t -# undef wchar_t -# endif -# define wchar_t char -#endif - -typedef struct _StrList StrList; -struct _StrList { - StrList* next; - const wchar_t* str; -}; - -extern char* language; -extern char* gettext_charset; -extern char* term_charset; - -extern StrList* str_list_create (const char* first, ...); -extern StrList* str_list_create_unique (const char* first, ...); -extern void str_list_destroy (StrList* list); -extern void str_list_destroy_node (StrList* list); - -extern StrList* str_list_duplicate (const StrList* list); -extern StrList* str_list_duplicate_node (const StrList* list); -extern StrList* str_list_insert (StrList* list, const char* str); -extern StrList* str_list_append (StrList* list, const char* str); -extern StrList* str_list_append_unique (StrList* list, const char* str); -extern StrList* str_list_join (StrList* a, StrList* b); -extern char* str_list_convert (const StrList* list); -extern char* str_list_convert_node (const StrList* list); - -extern void str_list_print (const StrList* list, FILE *fp); -extern void str_list_print_wrap (const StrList* list, int line_length, - int offset, int indent, FILE *fp); -extern int str_list_match_any (const StrList* list, const char* str); -extern int str_list_match_node (const StrList* list, const char* str); -extern StrList* str_list_match (const StrList* list, const char* str); - -extern int str_list_length (const StrList* list) _GL_ATTRIBUTE_PURE; - -#endif /* STRLIST_H_INCLUDED */ diff --git a/jni/parted/parted/table.c b/jni/parted/parted/table.c deleted file mode 100755 index 63c0e6a..0000000 --- a/jni/parted/parted/table.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * TODO: - make right and centered alignment possible - */ -/* - parted - a frontend to libparted - Copyright (C) 2006-2014, 2019-2023 Free Software Foundation, Inc. - - 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 3 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, see . -*/ - - -#include - -#include -#include - -#include -#include -#include - -#include "xalloc.h" -#include "strlist.h" - -#ifdef ENABLE_NLS -# define L_(str) L##str -#else -# define L_(str) str -# define wcslen strlen -# define wcswidth strnlen -# define wcscat strcat -# define wcsdup xstrdup -#endif - - -static const unsigned int MAX_WIDTH = 512; -static const wchar_t* DELIMITER = L_(" "); -static const wchar_t* COLSUFFIX = L_("\n"); - -typedef struct -{ - unsigned int ncols; - unsigned int nrows; - wchar_t*** rows; - int* widths; -} Table; - - -Table* table_new(int ncols) -{ - assert ( ncols >= 0 ); - - Table *t = xmalloc (sizeof(*t)); - - t->ncols = ncols; - t->nrows = 0; - t->rows = (wchar_t***)NULL; - t->widths = NULL; - - return t; -} - - -void table_destroy (Table* t) -{ - unsigned int r, c; - - assert (t); - assert (t->ncols > 0); - - for (r = 0; r < t->nrows; ++r) - { - for (c = 0; c < t->ncols; ++c) - free (t->rows[r][c]); - free (t->rows[r]); - } - - free (t->rows); - free (t->widths); - free (t); -} - - -static int max (int x, int y) -{ - return x > y ? x : y; -} - - -static void table_calc_column_widths (Table* t) -{ - unsigned int r, c; - - assert(t); - assert(t->ncols > 0); - - if (!t->widths) - t->widths = xmalloc (t->ncols * sizeof(t->widths[0])); - - for (c = 0; c < t->ncols; ++c) - t->widths[c] = 0; - - for (r = 0; r < t->nrows; ++r) - for (c = 0; c < t->ncols; ++c) - { - t->widths[c] = max ( t->widths[c], - wcswidth(t->rows[r][c], - MAX_WIDTH) ); - } -} - - -/* - * add a row which is a string array of ncols elements. - * 'row' will get freed by table_destroy; you must not free it - * yourself. - */ -void table_add_row (Table* t, wchar_t** row) -{ - assert(t); - - /*unsigned int i; - fputs ("adding row: ", stdout); - for (i = 0; i < t->ncols; ++i) - printf("[%s]", row[i]); - putchar ('\n');*/ - - t->rows = xrealloc (t->rows, (t->nrows + 1) * sizeof(*(t->rows))); - - t->rows[t->nrows] = row; - - ++t->nrows; - - table_calc_column_widths (t); -} - - -void table_add_row_from_strlist (Table* t, StrList* list) -{ - wchar_t** row = xmalloc (str_list_length(list) * sizeof(*row)); - int i = 0; - - while (list) - { - row[i] = wcsdup (list->str); - if (row[i] == NULL) - xalloc_die (); - - - list = list->next; - ++i; - } - - table_add_row (t, row); -} - - -/* render a row */ -static void table_render_row (Table* t, int rownum, int ncols, wchar_t** s) -{ - wchar_t** row = t->rows[rownum]; - size_t len = 1, i; - size_t newsize; - - assert(t); - assert(s != NULL); - - for (i = 0; i < ncols; ++i) - len += t->widths[i] + wcslen(DELIMITER); - - len += wcslen(COLSUFFIX); - - newsize = (wcslen(*s) + len + 1) * sizeof(wchar_t); - *s = xrealloc (*s, newsize); - - for (i = 0; i < ncols; ++i) - { - wcscat (*s, row[i]); - if (ncols <= i + 1) - break; - - int j; - int nspaces = max(t->widths[i] - wcswidth(row[i], MAX_WIDTH), - 0); - wchar_t* pad = xmalloc ((nspaces + 1) * sizeof(*pad)); - - for (j = 0; j < nspaces; ++j) - pad[j] = L' '; - - pad[nspaces] = L_('\0'); - - wcscat (*s, pad); - if (i + 1 < ncols) - wcscat (*s, DELIMITER); - - free (pad); - } - - /* Remove any trailing blanks. */ - wchar_t *p = *s; - size_t k = wcslen (p); - while (k && p[k-1] == L_(' ')) - --k; - p[k] = L_('\0'); - - - wcscat (*s, COLSUFFIX); -} - - -/* - * Render the rows. - * \p s must be a null-terminated string. - */ -static void table_render_rows (Table* t, wchar_t** s) -{ - unsigned int i; - - assert (**s == L_('\0')); - for (i = 0; i < t->nrows; ++i) - table_render_row (t, i, t->ncols, s); -} - -/* - * Render the table to a string. - * You are responsible for freeing the returned string. - */ -wchar_t* table_render(Table* t) -{ - wchar_t* s = xmalloc (sizeof(*s)); - - *s = L_('\0'); - table_render_rows (t, &s); - return s; -} diff --git a/jni/parted/parted/table.h b/jni/parted/parted/table.h deleted file mode 100755 index 8c645d7..0000000 --- a/jni/parted/parted/table.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 2006-2007, 2009-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -#include - -#include "strlist.h" - -#ifdef ENABLE_NLS -# include -#else -# ifdef wchar_t -# undef wchar_t -# endif -# define wchar_t char -#endif - - -/* opaque data type */ -typedef void Table; - -Table* table_new(int ncols); -void table_destroy (Table* t); - -/* - * you must not free neither 'row' nor 'list' - * -- this will be done by table_destroy() - */ -void table_add_row (Table* t, wchar_t** row); -void table_add_row_from_strlist (Table* t, StrList* list); - -wchar_t* table_render(Table* t); diff --git a/jni/parted/parted/ui.c b/jni/parted/parted/ui.c deleted file mode 100755 index 2348bb3..0000000 --- a/jni/parted/parted/ui.c +++ /dev/null @@ -1,1715 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2002, 2006-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "command.h" -#include "strlist.h" -#include "ui.h" -#include "error.h" - -#define N_(String) String -#if ENABLE_NLS -# include -# include -# define _(String) dgettext (PACKAGE, String) -#else -# define _(String) (String) -#endif /* ENABLE_NLS */ - -#ifdef HAVE_LIBREADLINE - -#ifdef HAVE_TERMCAP_H -#include -#else -extern int tgetnum (char* key); -#endif - -#include -#include - -#ifndef HAVE_RL_COMPLETION_MATCHES -#define rl_completion_matches completion_matches -#endif - -#ifndef rl_compentry_func_t -#define rl_compentry_func_t void -#endif - -#endif /* HAVE_LIBREADLINE */ - -#ifndef SA_SIGINFO -# ifndef HAVE_SIGACTION - -struct sigaction { -}; - -static inline int -sigaction (int signum, const struct* sigaction, struct* sigaction) -{ -} - -# endif /* HAVE_SIGACTON */ - -struct siginfo_t { - int si_code; -}; - -#endif /* SA_SIGINFO */ - -#ifndef SEGV_MAPERR -# define SEGV_MAPERR (INTMAX - 1) -#endif - -#ifndef SEGV_ACCERR -# define SEGV_ACCERR (INTMAX - 2) -#endif - -#ifndef FPE_INTDIV -# define FPE_INTDIV (INTMAX - 1) -#endif - -#ifndef FPE_INTOVF -# define FPE_INTOVF (INTMAX - 2) -#endif - -#ifndef FPE_FLTDIV -# define FPE_FLTDIV (INTMAX - 3) -#endif - -#ifndef FPE_FLTOVF -# define FPE_FLTOVF (INTMAX - 4) -#endif - -#ifndef FPE_FLTUND -# define FPE_FLTUND (INTMAX - 5) -#endif - -#ifndef FPE_FLTRES -# define FPE_FLTRES (INTMAX - 6) -#endif - -#ifndef FPE_FLTINV -# define FPE_FLTINV (INTMAX - 7) -#endif - -#ifndef FPE_FLTSUB -# define FPE_FLTSUB (INTMAX - 8) -#endif - -#ifndef ILL_ILLOPC -# define ILL_ILLOPC (INTMAX - 1) -#endif - -#ifndef ILL_ILLOPN -# define ILL_ILLOPN (INTMAX - 2) -#endif - -#ifndef ILL_ILLADR -# define ILL_ILLADR (INTMAX - 3) -#endif - -#ifndef ILL_ILLTRP -# define ILL_ILLTRP (INTMAX - 4) -#endif - -#ifndef ILL_PRVOPC -# define ILL_PRVOPC (INTMAX - 5) -#endif - -#ifndef ILL_PRVREG -# define ILL_PRVREG (INTMAX - 6) -#endif - -#ifndef ILL_COPROC -# define ILL_COPROC (INTMAX - 7) -#endif - -#ifndef ILL_BADSTK -# define ILL_BADSTK (INTMAX - 8) -#endif - -volatile int set_ret = 0; -volatile int parted_ret = 0; - -const char* prog_name = "GNU Parted " VERSION "\n"; - -static const char* banner_msg = N_( -"Welcome to GNU Parted! Type 'help' to view a list of commands.\n"); - -static const char* usage_msg = N_( -"Usage: parted [OPTION]... [DEVICE [COMMAND [PARAMETERS]...]...]\n" -"Apply COMMANDs with PARAMETERS to DEVICE. If no COMMAND(s) are given, " -"run in\ninteractive mode.\n"); - -static const char* bug_msg = N_( -"\n\nYou found a bug in GNU Parted! Here's what you have to do:\n\n" -"Don't panic! The bug has most likely not affected any of your data.\n" -"Help us to fix this bug by doing the following:\n\n" -"Check whether the bug has already been fixed by checking\n" -"the last version of GNU Parted that you can find at:\n\n" -"\thttp://ftp.gnu.org/gnu/parted/\n\n" -"Please check this version prior to bug reporting.\n\n" -"If this has not been fixed yet or if you don't know how to check,\n" -"please visit the GNU Parted website:\n\n" -"\thttp://www.gnu.org/software/parted\n\n" -"for further information.\n\n" -"Your report should contain the version of this release (%s)\n" -"along with the error message below, the output of\n\n" -"\tparted DEVICE unit co print unit s print\n\n" -"and the following history of commands you entered.\n" -"Also include any additional information about your setup you\n" -"consider important.\n"); - -#define MAX_WORDS 1024 - -static StrList* command_line; -static Command** commands; -static StrList* ex_opt_str [64]; -static StrList* on_list; -static StrList* off_list; -static StrList* on_off_list; - -static StrList* align_opt_list; -static StrList* align_min_list; -static StrList* align_opt_min_list; - -static StrList* fs_type_list; -static StrList* disk_type_list; - -static struct { - const StrList* possibilities; - const StrList* cur_pos; - int in_readline; - sigjmp_buf jmp_state; -} readline_state; - -static struct sigaction sig_segv; -static struct sigaction sig_int; -static struct sigaction sig_fpe; -static struct sigaction sig_ill; - -volatile int got_ctrl_c = 0; /* used in exception_handler */ - -int -screen_width () -{ - int width = 0; - - if (opt_script_mode || pretend_input_tty) - return 32768; /* no wrapping ;) */ - -/* HACK: don't specify termcap separately - it'll annoy the users. */ -#ifdef HAVE_LIBREADLINE - width = tgetnum ((char *) "co"); -#endif - - if (width <= 0) - width = 80; - - return width; -} - -void -wipe_line () -{ - if (opt_script_mode) - return; - - /* yuck */ - fputs ("\r " - " \r", stdout); -} - -#ifdef HAVE_LIBREADLINE -/* returns matching commands for text */ -static char* -command_generator (char* text, int state) -{ - if (!state) - readline_state.cur_pos = readline_state.possibilities; - - while (readline_state.cur_pos) { - const StrList* cur = readline_state.cur_pos; - readline_state.cur_pos = cur->next; - if (str_list_match_node (cur, text)) - return str_list_convert_node (cur); - } - - return NULL; -} - -/* completion function for readline() */ -char** -complete_function (char* text, int start, int end) -{ - return rl_completion_matches (text, - (rl_compentry_func_t*) command_generator); -} - -static void -_add_history_unique (const char* line) -{ - HIST_ENTRY* last_entry = current_history (); - if (!strlen (line)) - return; - if (!last_entry || strcmp (last_entry->line, line)) - add_history ((char*) line); -} - -/* Prints command history, to be used before aborting */ -static void -_dump_history () -{ - int i = 0; - HIST_ENTRY** all_entries = history_list (); - - fputs (_("\nCommand History:\n"), stdout); - while (all_entries[i]) { - puts(all_entries[i++]->line); - } -} - -#else - -/* Print nothing because Readline is absent. */ -static inline void -_dump_history (void) -{ -} - -#endif /* HAVE_LIBREADLINE */ - -/* Resets the environment by jumping to the initial state - * saved during ui intitialisation. - * Pass 1 as the parameter if you want to quit parted, - * 0 if you just want to reset to the command prompt. - */ -static void -reset_env (int quit) -{ - int in_readline = readline_state.in_readline; - - readline_state.in_readline = 0; - - if (in_readline) { - putchar ('\n'); - if (quit) { - set_ret = 1; - parted_ret = 0; - sleep(1); - exit (EXIT_SUCCESS); - } - - siglongjmp (readline_state.jmp_state, 1); - } -} - -/* Signal handler for SIGINT using 'sigaction'. */ -static void -sa_sigint_handler (int signum, siginfo_t* info, void *ucontext) -{ - if (info) - sigaction (SIGINT, &sig_int, NULL); - - got_ctrl_c = 1; - reset_env (0); -} - -/* Signal handler for SIGSEGV using 'sigaction'. */ -static void -sa_sigsegv_handler (int signum, siginfo_t* info, void* ucontext) -{ - fprintf (stderr, bug_msg, VERSION); - _dump_history (); - - if (!info) - abort (); - - sigaction (SIGSEGV, &sig_segv, NULL); - - switch (info->si_code) { - - case SEGV_MAPERR: - fputs(_("\nError: SEGV_MAPERR (Address not mapped " - "to object)\n"), stdout); - PED_ASSERT(0); /* Force a backtrace */ - break; - - case SEGV_ACCERR: - fputs(_("\nError: SEGV_ACCERR (Invalid permissions " - "for mapped object)\n"), stdout); - break; - - default: - fputs(_("\nError: A general SIGSEGV signal was " - "encountered.\n"), stdout); - PED_ASSERT(0); /* Force a backtrace */ - break; - } - - abort (); -} - -/* Signal handler for SIGFPE using 'sigaction'. */ -static void -sa_sigfpe_handler (int signum, siginfo_t* info, void* ucontext) -{ - fprintf (stderr, bug_msg, VERSION); - _dump_history (); - - if (!info) - abort (); - - sigaction (SIGFPE, &sig_fpe, NULL); - - switch (info->si_code) { - - case FPE_INTDIV: - fputs(_("\nError: FPE_INTDIV (Integer: " - "divide by zero)"), stdout); - break; - - case FPE_INTOVF: - fputs(_("\nError: FPE_INTOVF (Integer: " - "overflow)"), stdout); - break; - - case FPE_FLTDIV: - fputs(_("\nError: FPE_FLTDIV (Float: " - "divide by zero)"), stdout); - break; - - case FPE_FLTOVF: - fputs(_("\nError: FPE_FLTOVF (Float: " - "overflow)"), stdout); - break; - - case FPE_FLTUND: - fputs(_("\nError: FPE_FLTUND (Float: " - "underflow)"), stdout); - break; - - case FPE_FLTRES: - fputs(_("\nError: FPE_FLTRES (Float: " - "inexact result)"), stdout); - break; - - case FPE_FLTINV: - fputs(_("\nError: FPE_FLTINV (Float: " - "invalid operation)"), stdout); - break; - - case FPE_FLTSUB: - fputs(_("\nError: FPE_FLTSUB (Float: " - "subscript out of range)"), stdout); - break; - - default: - fputs(_("\nError: A general SIGFPE signal " - "was encountered."), stdout); - break; - - } - - abort (); -} - -/* Signal handler for SIGILL using 'sigaction'. */ -static void -sa_sigill_handler (int signum, siginfo_t* info, void* ucontext) -{ - fprintf (stderr, bug_msg, VERSION); - _dump_history (); - - if (!info) - abort(); - - sigaction (SIGILL, &sig_ill, NULL); - - switch (info->si_code) { - - case ILL_ILLOPC: - fputs(_("\nError: ILL_ILLOPC " - "(Illegal Opcode)"), stdout); - break; - - case ILL_ILLOPN: - fputs(_("\nError: ILL_ILLOPN " - "(Illegal Operand)"), stdout); - break; - - case ILL_ILLADR: - fputs(_("\nError: ILL_ILLADR " - "(Illegal addressing mode)"), stdout); - break; - - case ILL_ILLTRP: - fputs(_("\nError: ILL_ILLTRP " - "(Illegal Trap)"), stdout); - break; - - case ILL_PRVOPC: - fputs(_("\nError: ILL_PRVOPC " - "(Privileged Opcode)"), stdout); - break; - - case ILL_PRVREG: - fputs(_("\nError: ILL_PRVREG " - "(Privileged Register)"), stdout); - break; - - case ILL_COPROC: - fputs(_("\nError: ILL_COPROC " - "(Coprocessor Error)"), stdout); - break; - - case ILL_BADSTK: - fputs(_("\nError: ILL_BADSTK " - "(Internal Stack Error)"), stdout); - break; - - default: - fputs(_("\nError: A general SIGILL " - "signal was encountered."), stdout); - break; - } - - abort (); -} - -#ifndef SA_SIGINFO - -static void -mask_signal() -{ - sigset_t curr; - sigset_t prev; - - sigfillset(&curr); - sigprocmask(SIG_SETMASK, &curr, &prev); -} - -/* Signal handler for SIGINT using 'signal'. */ -static void -s_sigint_handler (int signum) -{ - signal (SIGINT, &s_sigint_handler); - mask_signal (); - sa_sigint_handler (signum, NULL, NULL); -} - -/* Signal handler for SIGILL using 'signal'. */ -static void -s_sigill_handler (int signum) -{ - signal (SIGILL, &s_sigill_handler); - mask_signal (); - sa_sigill_handler (signum, NULL, NULL); -} - -/* Signal handler for SIGSEGV using 'signal'. */ -static void -s_sigsegv_handler (int signum) -{ - signal (SIGSEGV, &s_sigsegv_handler); - mask_signal (); - sa_sigsegv_handler (signum, NULL, NULL); -} - -/* Signal handler for SIGFPE using 'signal'. */ -static void -s_sigfpe_handler (int signum) -{ - signal (SIGFPE, &s_sigfpe_handler); - mask_signal (); - sa_sigfpe_handler (signum, NULL, NULL); -} -#endif - -static char* -_readline (const char* prompt, const StrList* possibilities) -{ - char* line; - - readline_state.possibilities = possibilities; - readline_state.cur_pos = NULL; - readline_state.in_readline = 1; - - if (sigsetjmp (readline_state.jmp_state,1)) - return NULL; - - wipe_line (); -#ifdef HAVE_LIBREADLINE - if (!opt_script_mode) { - line = readline (prompt); - if (line) - _add_history_unique (line); - } else -#endif - { - fputs (prompt, stdout); - fflush (stdout); - line = (char*) malloc (256); - if (fgets (line, 256, stdin) && strcmp (line, "") != 0) { -#ifndef HAVE_LIBREADLINE - /* Echo the input line, to be consistent with - how readline-5.2 works. */ - fputs (line, stdout); - fflush (stdout); -#endif - /* kill trailing NL */ - if (strlen (line)) - line [strlen (line) - 1] = 0; - } else { - free (line); - line = NULL; - } - } - - readline_state.in_readline = 0; - return line; -} - -static PedExceptionOption _GL_ATTRIBUTE_PURE -option_get_next (PedExceptionOption options, PedExceptionOption current) -{ - PedExceptionOption i; - - if (current == 0) - i = PED_EXCEPTION_OPTION_FIRST; - else - i = current * 2; - - for (; i <= options; i *= 2) { - if (options & i) - return i; - } - return 0; -} - -static void -_print_exception_text (PedException* ex) -{ - StrList* text; - - wipe_line (); - - if (ex->type == PED_EXCEPTION_BUG) { - fprintf (stderr, bug_msg, VERSION); - text = str_list_create ("\n", ex->message, "\n\n", NULL); - } else { - text = str_list_create ( - _(ped_exception_get_type_string (ex->type)), - ": ", ex->message, "\n", NULL); - } - - str_list_print_wrap (text, screen_width (), 0, 0, stderr); - str_list_destroy (text); -} - -static PedExceptionOption -exception_handler (PedException* ex) -{ - PedExceptionOption opt; - - _print_exception_text (ex); - - /* only one choice? Take it ;-) */ - opt = option_get_next (ex->options, 0); - if (!option_get_next (ex->options, opt)) - return opt; - - /* script-mode and fix? */ - int fix_is_an_option = (ex->options & PED_EXCEPTION_FIX); - if (opt_script_mode && opt_fix_mode && fix_is_an_option) { - printf ("Fixing, due to --fix\n"); - return PED_EXCEPTION_FIX; - } - - /* script-mode: don't handle the exception */ - if (opt_script_mode || (!isatty (0) && !pretend_input_tty)) - return PED_EXCEPTION_UNHANDLED; - - got_ctrl_c = 0; - - opt = command_line_get_ex_opt ("", ex->options); - - return opt; -} - -void -command_line_push_word (const char* word) -{ - command_line = str_list_append (command_line, word); -} - -char* -command_line_pop_word () -{ - char* result; - StrList* next; - - PED_ASSERT (command_line != NULL); - - result = str_list_convert_node (command_line); - next = command_line->next; - - str_list_destroy_node (command_line); - command_line = next; - return result; -} - -void -command_line_flush () -{ - str_list_destroy (command_line); - command_line = NULL; -} - -char* -command_line_peek_word () -{ - if (command_line) - return str_list_convert_node (command_line); - else - return NULL; -} - -int -command_line_get_word_count () -{ - return str_list_length (command_line); -} - -static int _GL_ATTRIBUTE_PURE -_str_is_spaces (const char* str) -{ - while (isspace (*str)) - str++; - - return *str == 0; -} - -/* "multi_word mode" is the "normal" mode... many words can be typed, - * delimited by spaces, etc. - * In single-word mode, only one word is parsed per line. - * Leading and trailing spaces are removed. For example: " a b c " - * is a single word "a b c". The motivation for this mode is partition - * names, etc. In single-word mode, the empty string is a word. - * (but not in multi-word mode). - */ -void -command_line_push_line (const char* line, int multi_word) -{ - int quoted = 0; - int quotes_empty = 0; - char quote_char = 0; - char this_word [256]; - int i; - - do { - while (*line == ' ') - line++; - - i = 0; - for (; *line && i < sizeof (this_word) - 1; line++) { - if (*line == ' ' && !quoted) { - if (multi_word) - break; - - /* single word: check for trailing spaces + eol */ - if (_str_is_spaces (line)) - break; - } - - if (!quoted && strchr ("'\"", *line)) { - quoted = 1; - quote_char = *line; - continue; - } - - if (quoted && *line == quote_char) { - quoted = 0; - /* allow empty partition name in script mode */ - if (!i) - quotes_empty = 1; - continue; - } - - /* hack: escape characters */ - if (quoted && line[0] == '\\' && line[1]) - line++; - - quotes_empty = 0; - this_word [i++] = *line; - } - if (i || !multi_word || quotes_empty) { - quotes_empty = 0; - this_word [i] = 0; - command_line_push_word (this_word); - } - } while (*line && multi_word); -} - -static char* -realloc_and_cat (char* str, const char* append) -{ - int length = strlen (str) + strlen (append) + 1; - char* new_str = realloc (str, length); - - PED_ASSERT(new_str != NULL); - - strcat (new_str, append); - return new_str; -} - -static char* -_construct_prompt (const char* head, const char* def, - const StrList* possibilities) -{ - PED_ASSERT(head != NULL); - char* prompt = strdup (head); - PED_ASSERT(prompt != NULL); - - if (def && possibilities) - PED_ASSERT (str_list_match_any (possibilities, def)); - - if (possibilities && str_list_length (possibilities) < 8) { - const StrList* walk; - - if (strlen (prompt)) - prompt = realloc_and_cat (prompt, " "); - - for (walk = possibilities; walk; walk = walk->next) { - if (walk != possibilities) - prompt = realloc_and_cat (prompt, "/"); - - if (def && str_list_match_node (walk, def) == 2) { - prompt = realloc_and_cat (prompt, "["); - prompt = realloc_and_cat (prompt, def); - prompt = realloc_and_cat (prompt, "]"); - } else { - char* text = str_list_convert_node (walk); - prompt = realloc_and_cat (prompt, text); - free (text); - } - } - prompt = realloc_and_cat (prompt, "? "); - } else if (def) { - if (strlen (prompt)) - prompt = realloc_and_cat (prompt, " "); - prompt = realloc_and_cat (prompt, "["); - prompt = realloc_and_cat (prompt, def); - prompt = realloc_and_cat (prompt, "]? "); - } else { - if (strlen (prompt)) - prompt = realloc_and_cat (prompt, " "); - } - - return prompt; -} - -void -command_line_prompt_words (const char* prompt, const char* def, - const StrList* possibilities, int multi_word) -{ - char* line; - char* real_prompt; - char* _def = (char*) def; - int _def_needs_free = 0; - - if (!def && str_list_length (possibilities) == 1) { - _def = str_list_convert_node (possibilities); - _def_needs_free = 1; - } - - if (opt_script_mode) { - if (_def) { - command_line_push_line (_def, 0); - if (_def_needs_free) - free (_def); - } - return; - } - - do { - real_prompt = _construct_prompt (prompt, _def, possibilities); - line = _readline (real_prompt, possibilities); - free (real_prompt); - if (!line) { - /* readline returns NULL to indicate EOF. - Treat that like an interrupt. */ - got_ctrl_c = 1; - break; - } - - if (!strlen (line)) { - if (_def) - command_line_push_line (_def, 0); - } else { - command_line_push_line (line, multi_word); - } - free (line); - } while (!command_line_get_word_count () && !_def); - - if (_def_needs_free) - free (_def); -} - -/** - * Get a word from command line. - * - * \param possibilities a StrList of valid strings, NULL if all are valid. - * \param multi_word whether multiple words are allowed. - * - * \return The word(s), or NULL if empty. - */ -char* -command_line_get_word (const char* prompt, const char* def, - const StrList* possibilities, int multi_word) -{ - do { - if (command_line_get_word_count ()) { - char* result = command_line_pop_word (); - StrList* result_node; - - if (!possibilities) - return result; - - result_node = str_list_match (possibilities, result); - if (result_node == NULL) - error (0, 0, _("invalid token: %s"), result); - free (result); - if (result_node) - return str_list_convert_node (result_node); - - command_line_flush (); - if (opt_script_mode) - return NULL; - } - - command_line_prompt_words (prompt, def, possibilities, - multi_word); - if (got_ctrl_c) { - got_ctrl_c = 0; - return NULL; - } - } while (command_line_get_word_count ()); - - return NULL; -} - -int -command_line_get_integer (const char* prompt, int* value) -{ - char def_str [20]; - char* input; - long ret; - - snprintf (def_str, 20, "%d", *value); - input = command_line_get_word (prompt, *value ? def_str : NULL, - NULL, 1); - if (!input) - return 0; - - errno = 0; - ret = strtol (input, (char**) NULL, 10); - if (errno) - goto error; - - if ((ret > INT_MAX) || (ret < INT_MIN)) - goto error; - else - *value = (int) ret; - - free (input); - return 1; - -error: - free (input); - return 0; -} - -int -command_line_get_sector (const char* prompt, PedDevice* dev, PedSector* value, - PedGeometry** range, char** raw_input) -{ - char* def_str; - char* input; - int valid; - - def_str = ped_unit_format (dev, *value); - input = command_line_get_word (prompt, *value ? def_str : NULL, - NULL, 1); - - /* def_str might have rounded *value a little bit. If the user picked - * the default, make sure the selected sector is identical to the - * default. - */ - if (input && *value && !strcmp (input, def_str)) { - if (range) { - *range = ped_geometry_new (dev, *value, 1); - free (def_str); - free (input); - return *range != NULL; - } - - free (def_str); - free (input); - return 1; - } - - free (def_str); - if (!input) { - *value = 0; - if (range) - *range = NULL; - return 0; - } - - valid = ped_unit_parse (input, dev, value, range); - - if (raw_input) - *raw_input = input; - else - free (input); - return valid; -} - -int -command_line_get_state (const char* prompt, int* value) -{ - char* def_word; - char* input; - - if (*value) - def_word = str_list_convert_node (on_list); - else - def_word = str_list_convert_node (off_list); - input = command_line_get_word (prompt, def_word, on_off_list, 1); - free (def_word); - if (!input) - return 0; - if (str_list_match_any (on_list, input)) - *value = 1; - else - *value = 0; - free (input); - return 1; -} - -int -command_line_get_device (const char* prompt, PedDevice** value) -{ - char *def_dev_name = *value ? (*value)->path : NULL; - char *dev_name = command_line_get_word (prompt, def_dev_name, NULL, 1); - if (!dev_name) - return 0; - - PedDevice *dev = ped_device_get (dev_name); - free (dev_name); - if (!dev) - return 0; - - *value = dev; - return 1; -} - -int -command_line_get_disk (const char* prompt, PedDisk** value) -{ - PedDevice* dev = *value ? (*value)->dev : NULL; - - if (!command_line_get_device (prompt, &dev)) - return 0; - - assert (*value); - if (dev != (*value)->dev) { - PedDisk* new_disk = ped_disk_new (dev); - if (!new_disk) - return 0; - *value = new_disk; - } - return 1; -} - -int -command_line_get_partition (const char* prompt, PedDisk* disk, - PedPartition** value) -{ - PedPartition* part; - int ret; - - /* Flawed logic, doesn't seem to work?! - check = ped_disk_next_partition (disk, part); - part = ped_disk_next_partition (disk, check); - - if (part == NULL) { - - *value = check; - printf (_("The (only) primary partition has " - "been automatically selected\n")); - return 1; - - } else { - */ - int num = (*value) ? (*value)->num : 0; - - ret = command_line_get_integer (prompt, &num); - if ((!ret) || (num < 0)) { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Expecting a partition number.")); - return 0; - } - - part = ped_disk_get_partition (disk, num); - - if (!part) { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_CANCEL, - _("Partition doesn't exist.")); - return 0; - } - - *value = part; - return 1; - //} -} - -int -command_line_get_fs_type (const char* prompt, const PedFileSystemType*(* value)) -{ - char* fs_type_name; - PedFileSystemType* fs_type; - - fs_type_name = command_line_get_word (prompt, - *value ? (*value)->name : NULL, - fs_type_list, 1); - if (!fs_type_name) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Expecting a file system type.")); - return 0; - } - - fs_type = ped_file_system_type_get (fs_type_name); - if (!fs_type) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Unknown file system type \"%s\"."), - fs_type_name); - free (fs_type_name); - return 0; - } - - free (fs_type_name); - *value = fs_type; - return 1; -} - -int -command_line_get_disk_type (const char* prompt, const PedDiskType*(* value)) -{ - char* disk_type_name; - - disk_type_name = command_line_get_word (prompt, - *value ? (*value)->name : NULL, - disk_type_list, 1); - if (!disk_type_name) { - ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Expecting a disk label type.")); - return 0; - } - - *value = ped_disk_type_get (disk_type_name); - free (disk_type_name); - PED_ASSERT (*value != NULL); - return 1; -} - -int -command_line_get_disk_flag (const char* prompt, const PedDisk* disk, - PedDiskFlag* flag) -{ - StrList* opts = NULL; - PedDiskFlag walk = 0; - char* flag_name; - - while ( (walk = ped_disk_flag_next (walk)) ) { - if (ped_disk_is_flag_available (disk, walk)) { - const char* walk_name; - - walk_name = ped_disk_flag_get_name (walk); - opts = str_list_append (opts, walk_name); - opts = str_list_append_unique (opts, _(walk_name)); - } - } - if (opts == NULL) - { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_OK, - _("No flags supported")); - - return 0; - } - flag_name = command_line_get_word (prompt, NULL, opts, 1); - str_list_destroy (opts); - - if (flag_name) { - *flag = ped_disk_flag_get_by_name (flag_name); - free (flag_name); - return 1; - } else - return 0; -} - -int -command_line_get_part_flag (const char* prompt, const PedPartition* part, - PedPartitionFlag* flag) -{ - StrList* opts = NULL; - PedPartitionFlag walk = 0; - char* flag_name; - - while ( (walk = ped_partition_flag_next (walk)) ) { - if (ped_partition_is_flag_available (part, walk)) { - const char* walk_name; - - walk_name = ped_partition_flag_get_name (walk); - opts = str_list_append (opts, walk_name); - opts = str_list_append_unique (opts, _(walk_name)); - } - } - if (opts == NULL) - { - ped_exception_throw (PED_EXCEPTION_ERROR, - PED_EXCEPTION_OK, - _("No flags supported")); - - return 0; - } - flag_name = command_line_get_word (prompt, NULL, opts, 1); - str_list_destroy (opts); - - if (flag_name) { - *flag = ped_partition_flag_get_by_name (flag_name); - free (flag_name); - return 1; - } else - return 0; -} - -static int -_can_create_primary (const PedDisk* disk) -{ - int i; - - for (i = 1; i <= ped_disk_get_max_primary_partition_count (disk); i++) { - if (!ped_disk_get_partition (disk, i)) - return 1; - } - - return 0; -} - -static int -_can_create_extended (const PedDisk* disk) -{ - if (!_can_create_primary (disk)) - return 0; - - if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED)) - return 0; - - if (ped_disk_extended_partition (disk)) - return 0; - - return 1; -} - -static int -_can_create_logical (const PedDisk* disk) -{ - if (!ped_disk_type_check_feature (disk->type, PED_DISK_TYPE_EXTENDED)) - return 0; - - return ped_disk_extended_partition (disk) != 0; -} - -int -command_line_get_part_type (const char* prompt, const PedDisk* disk, - PedPartitionType* type) -{ - StrList* opts = NULL; - char* type_name; - - if (_can_create_primary (disk)) { - opts = str_list_append_unique (opts, "primary"); - opts = str_list_append_unique (opts, _("primary")); - } - if (_can_create_extended (disk)) { - opts = str_list_append_unique (opts, "extended"); - opts = str_list_append_unique (opts, _("extended")); - } - if (_can_create_logical (disk)) { - opts = str_list_append_unique (opts, "logical"); - opts = str_list_append_unique (opts, _("logical")); - } - if (!opts) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Can't create any more partitions.")); - return 0; - } - - type_name = command_line_get_word (prompt, NULL, opts, 1); - str_list_destroy (opts); - - if (!type_name) { - ped_exception_throw ( - PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL, - _("Expecting a partition type.")); - return 0; - } - - if (!strcmp (type_name, "primary") - || !strcmp (type_name, _("primary"))) { - *type = 0; - } - if (!strcmp (type_name, "extended") - || !strcmp (type_name, _("extended"))) { - *type = PED_PARTITION_EXTENDED; - } - if (!strcmp (type_name, "logical") - || !strcmp (type_name, _("logical"))) { - *type = PED_PARTITION_LOGICAL; - } - - free (type_name); - return 1; -} - -PedExceptionOption -command_line_get_ex_opt (const char* prompt, PedExceptionOption options) -{ - StrList* options_strlist = NULL; - PedExceptionOption opt; - char* opt_name; - - command_line_flush (); - for (opt = option_get_next (options, 0); opt; - opt = option_get_next (options, opt)) { - options_strlist = str_list_append_unique (options_strlist, - _(ped_exception_get_option_string (opt))); - options_strlist = str_list_append_unique (options_strlist, - ped_exception_get_option_string (opt)); - } - - opt_name = command_line_get_word (prompt, NULL, options_strlist, 1); - if (!opt_name) - return PED_EXCEPTION_UNHANDLED; - str_list_destroy (options_strlist); - - opt = PED_EXCEPTION_OPTION_FIRST; - while (1) { - if (strcmp (opt_name, - ped_exception_get_option_string (opt)) == 0) - break; - if (strcmp (opt_name, - _(ped_exception_get_option_string (opt))) == 0) - break; - opt = option_get_next (options, opt); - } - free (opt_name); - return opt; -} - -int -command_line_get_align_type (const char *prompt, enum AlignmentType *align_type) -{ - char* def_word; - char* input; - - if (*align_type) - def_word = str_list_convert_node (align_opt_list); - else - def_word = str_list_convert_node (align_min_list); - input = command_line_get_word (prompt, def_word, align_opt_min_list, 1); - free (def_word); - if (!input) - return 0; - *align_type = (str_list_match_any (align_opt_list, input) - ? PA_OPTIMUM - : PA_MINIMUM); - free (input); - return 1; -} - -int -command_line_get_unit (const char* prompt, PedUnit* unit) -{ - StrList* opts = NULL; - PedUnit walk; - char* unit_name; - const char* default_unit_name; - - for (walk = PED_UNIT_FIRST; walk <= PED_UNIT_LAST; walk++) - opts = str_list_append (opts, ped_unit_get_name (walk)); - - default_unit_name = ped_unit_get_name (ped_unit_get_default ()); - unit_name = command_line_get_word (prompt, default_unit_name, opts, 1); - str_list_destroy (opts); - - if (unit_name) { - *unit = ped_unit_get_by_name (unit_name); - free (unit_name); - return 1; - } else - return 0; -} - -int -command_line_is_integer () -{ - char* word; - int is_integer; - int scratch; - - word = command_line_peek_word (); - if (!word) - return 0; - - is_integer = sscanf (word, "%d", &scratch); - free (word); - return is_integer; -} - -static int -init_ex_opt_str () -{ - int i; - PedExceptionOption opt; - - for (i = 0; (1 << i) <= PED_EXCEPTION_OPTION_LAST; i++) { - opt = (1 << i); - ex_opt_str [i] - = str_list_create ( - ped_exception_get_option_string (opt), - _(ped_exception_get_option_string (opt)), - NULL); - if (!ex_opt_str [i]) - return 0; - } - - ex_opt_str [i] = NULL; - return 1; -} - -static void -done_ex_opt_str () -{ - int i; - - for (i=0; ex_opt_str [i]; i++) - str_list_destroy (ex_opt_str [i]); -} - -static int -init_state_str () -{ - on_list = str_list_create_unique (_("on"), "on", NULL); - off_list = str_list_create_unique (_("off"), "off", NULL); - on_off_list = str_list_join (str_list_duplicate (on_list), - str_list_duplicate (off_list)); - return 1; -} - -static void -done_state_str () -{ - str_list_destroy (on_list); - str_list_destroy (off_list); - str_list_destroy (on_off_list); -} - -static int -init_alignment_type_str () -{ - align_opt_list = str_list_create_unique (_("optimal"), "optimal", NULL); - align_min_list = str_list_create_unique (_("minimal"), "minimal", NULL); - align_opt_min_list = str_list_join (str_list_duplicate (align_opt_list), - str_list_duplicate (align_min_list)); - return 1; -} - -static void -done_alignment_type_str () -{ - str_list_destroy (align_opt_list); - str_list_destroy (align_min_list); - str_list_destroy (align_opt_min_list); -} - -static int -init_fs_type_str () -{ - PedFileSystemType* walk; - PedFileSystemAlias* alias_walk; - - fs_type_list = NULL; - - for (walk = ped_file_system_type_get_next (NULL); walk; - walk = ped_file_system_type_get_next (walk)) - { - fs_type_list = str_list_insert (fs_type_list, walk->name); - if (!fs_type_list) - return 0; - } - for (alias_walk = ped_file_system_alias_get_next (NULL); alias_walk; - alias_walk = ped_file_system_alias_get_next (alias_walk)) - { - fs_type_list = str_list_insert (fs_type_list, - alias_walk->alias); - if (!fs_type_list) - return 0; - } - - return 1; -} - -static int -init_disk_type_str () -{ - PedDiskType* walk; - - disk_type_list = NULL; - - for (walk = ped_disk_type_get_next (NULL); walk; - walk = ped_disk_type_get_next (walk)) - { - disk_type_list = str_list_insert (disk_type_list, walk->name); - if (!disk_type_list) - return 0; - } - - return 1; -} - -int -init_readline (void) -{ -#ifdef HAVE_LIBREADLINE - if (!opt_script_mode) { - rl_initialize (); - rl_attempted_completion_function = (rl_completion_func_t *) complete_function; - readline_state.in_readline = 0; - } -#endif - return 0; -} - -int -init_ui () -{ - if (!init_ex_opt_str () - || !init_state_str () - || !init_alignment_type_str () - || !init_fs_type_str () - || !init_disk_type_str ()) - return 0; - ped_exception_set_handler (exception_handler); - -#ifdef SA_SIGINFO - sigset_t curr; - sigfillset (&curr); - - sig_segv.sa_sigaction = &sa_sigsegv_handler; - sig_int.sa_sigaction = &sa_sigint_handler; - sig_fpe.sa_sigaction = &sa_sigfpe_handler; - sig_ill.sa_sigaction = &sa_sigill_handler; - - sig_segv.sa_mask = - sig_int.sa_mask = - sig_fpe.sa_mask = - sig_ill.sa_mask = curr; - - sig_segv.sa_flags = - sig_int.sa_flags = - sig_fpe.sa_flags = - sig_ill.sa_flags = SA_SIGINFO; - - sigaction (SIGSEGV, &sig_segv, NULL); - sigaction (SIGINT, &sig_int, NULL); - sigaction (SIGFPE, &sig_fpe, NULL); - sigaction (SIGILL, &sig_ill, NULL); -#else - signal (SIGSEGV, s_sigsegv_handler); - signal (SIGINT, s_sigint_handler); - signal (SIGFPE, s_sigfpe_handler); - signal (SIGILL, s_sigill_handler); -#endif /* SA_SIGINFO */ - - return 1; -} - -void -done_ui () -{ - ped_exception_set_handler (NULL); - done_ex_opt_str (); - done_state_str (); - done_alignment_type_str (); - str_list_destroy (fs_type_list); - str_list_destroy (disk_type_list); -} - -void -help_msg () -{ - fputs (_(usage_msg), stdout); - - putchar ('\n'); - fputs (_("OPTIONs:"), stdout); - putchar ('\n'); - print_options_help (); - - putchar ('\n'); - fputs (_("COMMANDs:"), stdout); - putchar ('\n'); - print_commands_help (); - printf (_("\nReport bugs to %s\n"), PACKAGE_BUGREPORT); - set_ret = 1; - parted_ret = 0; - sleep(1); - exit (EXIT_SUCCESS); -} - -void -print_using_dev (PedDevice* dev) -{ - printf (_("Using %s\n"), dev->path); -} - -int -interactive_mode (PedDevice** dev, PedDisk** disk, Command* cmd_list[]) -{ - StrList* list; - StrList* command_names = command_get_names (cmd_list); - - commands = cmd_list; /* FIXME yucky, nasty, evil hack */ - - fputs (prog_name, stdout); - - print_using_dev (*dev); - - list = str_list_create (_(banner_msg), NULL); - str_list_print_wrap (list, screen_width (), 0, 0, stdout); - str_list_destroy (list); - - while (1) { - char* word; - Command* cmd; - - while (!command_line_get_word_count ()) { - if (got_ctrl_c) { - putchar ('\n'); - return 1; - } - command_line_prompt_words ("(parted)", NULL, - command_names, 1); - } - - word = command_line_pop_word (); - if (word) { - cmd = command_get (commands, word); - free (word); - if (cmd) { - if (!command_run (cmd, dev, disk)) { - command_line_flush (); - - if (*disk) { - ped_disk_destroy (*disk); - *disk = 0; - } - } - } else - print_commands_help (); - } - } - - return 1; -} - - -int -non_interactive_mode (PedDevice** dev, PedDisk **disk, Command* cmd_list[], - int argc, char* argv[]) -{ - int i; - Command* cmd; - - commands = cmd_list; /* FIXME yucky, nasty, evil hack */ - - for (i = 0; i < argc; i++) - command_line_push_line (argv [i], 1); - - while (command_line_get_word_count ()) { - char* word; - - word = command_line_pop_word (); - if (!word) - break; - - cmd = command_get (commands, word); - free (word); - if (!cmd) { - help_msg (); - goto error; - } - if (!(cmd->non_interactive)) { - fputs(_("This command does not make sense in " - "non-interactive mode.\n"), stdout); - set_ret = 1; - parted_ret = 1; - sleep(1); - exit(EXIT_FAILURE); - goto error; - } - - if (!command_run (cmd, dev, disk)) - goto error; - } - return 1; - -error: - return 0; -} diff --git a/jni/parted/parted/ui.h b/jni/parted/parted/ui.h deleted file mode 100755 index 61a71de..0000000 --- a/jni/parted/parted/ui.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - parted - a frontend to libparted - Copyright (C) 1999-2001, 2007-2014, 2019-2023 Free Software Foundation, - Inc. - - 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 3 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, see . -*/ - -#ifndef UI_H_INCLUDED -#define UI_H_INCLUDED - -#include "strlist.h" - -enum AlignmentType - { - PA_MINIMUM = 1, - PA_OPTIMUM - }; - -extern const char *prog_name; - -extern int init_ui (); -extern int init_readline (); -extern int non_interactive_mode (PedDevice** dev, PedDisk **disk, - Command* cmd_list[], int argc, - char* argv[]); -extern int interactive_mode (PedDevice** dev, PedDisk **disk, - Command* cmd_list[]); -extern void done_ui (); - -extern int screen_width (); -extern void wipe_line (); - -extern void command_line_push_word (const char* word); -extern char* command_line_pop_word (); -extern char* command_line_peek_word (); -extern void command_line_flush (); -extern int command_line_get_word_count () _GL_ATTRIBUTE_PURE; -extern void command_line_prompt_words (const char* prompt, const char* def, - const StrList* possibilities, - int multi_word); -extern char* command_line_get_word (const char* prompt, const char* def, - const StrList* possibilities, - int multi_word); -extern int command_line_get_integer (const char* prompt, int* value); -extern int command_line_get_sector (const char* prompt, PedDevice* dev, - PedSector* value, PedGeometry** range, char** raw_input); -extern int command_line_get_state (const char* prompt, int* value); -extern int command_line_get_device (const char* prompt, PedDevice** value); -extern int command_line_get_disk (const char* prompt, PedDisk** value) - __attribute__((__nonnull__(2))); -extern int command_line_get_partition (const char* prompt, PedDisk* disk, - PedPartition** value); -extern int command_line_get_fs_type (const char* prompt, - const PedFileSystemType*(* value)); -extern int command_line_get_disk_type (const char* prompt, - const PedDiskType*(* value)); -extern int command_line_get_disk_flag (const char* prompt, - const PedDisk* disk, - PedDiskFlag* flag); -extern int command_line_get_part_flag (const char* prompt, - const PedPartition* part, - PedPartitionFlag* flag); -extern int command_line_get_part_type (const char* prompt, const PedDisk* disk, - PedPartitionType* type); -extern PedExceptionOption command_line_get_ex_opt (const char* prompt, - PedExceptionOption options); -extern int command_line_get_unit (const char* prompt, PedUnit* unit); -extern int command_line_get_align_type (const char *prompt, - enum AlignmentType *align_type); - -extern int command_line_is_integer (); -extern int command_line_is_sector (); - -extern void help_msg () __attribute__((__noreturn__)); - -extern void print_using_dev (PedDevice* dev); - -/* in parted.c */ -extern int opt_script_mode; -extern int opt_fix_mode; -extern int pretend_input_tty; - -extern void print_options_help (); -extern void print_commands_help (); - -#endif /* UI_H_INCLUDED */ diff --git a/jni/parted/parted/version.c b/jni/parted/parted/version.c deleted file mode 100755 index ec0b860..0000000 --- a/jni/parted/parted/version.c +++ /dev/null @@ -1,2 +0,0 @@ -#include -char const *Version = "3.6.6-c5bd-pmt"; diff --git a/jni/parted/parted/version.h b/jni/parted/parted/version.h deleted file mode 100755 index f6a1ed3..0000000 --- a/jni/parted/parted/version.h +++ /dev/null @@ -1 +0,0 @@ -extern char const *Version; diff --git a/pmt-termux.sh b/pmt-termux.sh index 822f54b..354795a 100755 --- a/pmt-termux.sh +++ b/pmt-termux.sh @@ -3,8 +3,8 @@ # By YZBruh | ShawkTeam # Variables -LOCAL_VERSION="3.0.2" -LOCAL_RELDATE="20241214" +LOCAL_VERSION="2.9.6" +LOCAL_RELDATE="20241026" LOCAL_OWNER="ShawkTeam" LOCAL_REPO="pmt" LOCAL_RELEASE_TAG="${LOCAL_VERSION}" @@ -24,19 +24,19 @@ YELLOW="\033[0;33m" function printc() { ${SILENT} || echo -e "$*" >&2; } function print() { - if echo "$*" | grep "Success" &>/dev/null; then - ${SILENT} || echo -e " - ${GREEN}${1:0:7}${RESET}." >&2 - else - ${SILENT} || echo -e " - $*" >&2 - fi + if echo "$*" | grep "Success" &>/dev/null; then + ${SILENT} || echo -e " - ${GREEN}${1:0:7}${RESET}." >&2 + else + ${SILENT} || echo -e " - $*" >&2 + fi } # Print error and exit function abort() { - print "${RED}Error:${RESET} ${@}" - cleanup - exit 1 + print "${RED}Error:${RESET} ${@}" + cleanup + exit 1 } # Print warnings @@ -48,37 +48,53 @@ function script_head() { printc " --- Partition Manager Termux Helper Script --- # For display help message function view_help() { - ${SILENT} || echo -n "Usage: " - if echo "${0}" | grep "./" >&/dev/null; then - printc "${0} [OPTIONS]..." - else - printc "(bash) ${0} [OPTIONS]" - fi + ${SILENT} || echo -n "Usage: " + if echo "${0}" | grep "./" >&/dev/null; then + printc "${0} [OPTIONS]..." + else + printc "(bash) ${0} [OPTIONS]" + fi - printc "Install, uninstall, install status checker for Partition Manager binary.\n" - printc "Options:" - printc " install, -i [OPTS] Download and install Partition Manager." - printc " uninstall, -u Uninstall Partition Manager." - printc " status, -s Display install/uninstall status." - printc " --quiet, -q Silent mode. No output." - printc " --setup, -S Setup required packages." - printc " --package If you already have a pmt package, make\n setup by specifying this way." - printc "Report bugs to " + printc "Install, uninstall, install status checker for Partition Manager binary.\n" + printc "Options:" + printc " install, -i [OPTS] Download and install Partition Manager." + printc " uninstall, -u Uninstall Partition Manager." + printc " status, -s Display install/uninstall status." + printc " --quiet, -q Silent mode. No output." + printc " --setup, -S Setup required packages." + printc " --package If you already have a pmt package, make\n setup by specifying this way." + printc "Report bugs to " } # Script really operated termux proclamation? function really_termux() { - basename -a ${LOCAL_PREFIX}/bin/* | grep "termux" &>/dev/null \ - || abort "Are you sure you're in termux?" + basename -a ${LOCAL_PREFIX}/bin/* | grep "termux" &>/dev/null \ + || abort "Are you sure you're in termux?" } # Get architecture info function get_architecture() { - LOCAL_ARCH=$(getprop ro.product.cpu.abi) + local arch=$(uname -m) + local archs_64=("aarch64" "armv8" "arm64-v8a" "armv8-a") + local archs_32=("aarch32" "armv7" "armeabi-v7a" "armv7l") - print "Device architecture: ${arch}." + print "Device architecture: '${arch}'." + + for a in ${archs_64[@]}; do + [ "${arch}" = "${a}" ] \ + && LOCAL_ARCH="arm64-v8a" \ + && return + done + + for a in ${archs_32[@]}; do + [ "${arch}" = "${a}" ] \ + && LOCAL_ARCH="armeabi-v7a" \ + && return + done + + LOCAL_ARCH="arm64-v8a" } # Generate template dir @@ -90,125 +106,124 @@ function cleanup() { rm -rf "${LOCAL_TMPDIR}"; } # Check install/uninstall status function check_status() { - local installed="${RED}false${RESET}" - /system/bin/which pmt &>/dev/null \ - && installed="${GREEN}true${RESET}" + local installed="${RED}false${RESET}" + [ -f "${LOCAL_PREFIX}/bin/pmt" ] \ + && installed="${GREEN}true${RESET}" - print "Installed: ${installed}" - exit 0 + print "Installed: ${installed}" + exit 0 } # check xz-utils install status function check_xz() { - # The outflow of the APT is not controlled in use - [ -f ${LOCAL_PREFIX}/bin/xz ] \ - || abort "xz-utils not installed! Run setup command." + # The outflow of the APT is not controlled in use + [ -f ${LOCAL_PREFIX}/bin/xz ] \ + || abort "xz-utils not installed! Run setup command." } # Check internet connection function net_control() { - curl "https://github.com" &>/dev/null \ - || abort "You need internet connection to this process." + curl "https://github.com" &>/dev/null \ + || abort "You need internet connection to this process." } # Download Partition Manager function download() { - local URL="https://github.com/${LOCAL_OWNER}/${LOCAL_REPO}/releases/tag/${LOCAL_RELEASE_TAG}/download/pmt-${LOCAL_ARCH}-${LOCAL_RELDATE}.xz" - local URL_MANDOC="https://github.com/${LOCAL_OWNER}/${LOCAL_REPO}/releases/tag/${LOCAL_RELEASE_TAG}/download/mandoc.gz" + local URL="https://github.com/${LOCAL_OWNER}/${LOCAL_REPO}/releases/tag/${LOCAL_RELEASE_TAG}/download/pmt-${LOCAL_ARCH}-${LOCAL_RELDATE}.xz" + local URL_MANDOC="https://github.com/${LOCAL_OWNER}/${LOCAL_REPO}/releases/tag/${LOCAL_RELEASE_TAG}/download/mandoc.gz" - cd "${LOCAL_TMPDIR}" - print "Downloading: 'pmt-${LOCAL_ARCH}-${LOCAL_RELDATE}.xz'..." - wget "${URL}" &>/dev/null \ - || abort "Download failed!" - cd - &>/dev/null + cd "${LOCAL_TMPDIR}" + print "Downloading: 'pmt-${LOCAL_ARCH}-${LOCAL_RELDATE}.xz'..." + wget "${URL}" &>/dev/null \ + || abort "Download failed!" + cd - &>/dev/null - HAVE_MANDOC=true - print "Downloading mandoc..." - curl -L "${URL_MANDOC}" -o "${LOCAL_TMPDIR}/pmt.8.gz" &>/dev/null \ - || warning "Download failed! (mandoc)" + HAVE_MANDOC=true + print "Downloading mandoc..." + curl -L "${URL_MANDOC}" -o "${LOCAL_TMPDIR}/pmt.8.gz" &>/dev/null \ + || warning "Download failed! (mandoc)" - chmod -R 755 "${LOCAL_TMPDIR}" &>/dev/null \ - || warning "Cannot set mode '777' on downloaded files." + chmod -R 755 "${LOCAL_TMPDIR}" &>/dev/null \ + || warning "Cannot set mode '777' on downloaded files." } # For installing required packages function setup_packages() { - net_control + net_control - print "Updating mirrors..." - pkg update &>/dev/null || abort "Updating failed!" + print "Updating mirrors..." + pkg update &>/dev/null || abort "Updating failed!" - print "Installing xz-utils, wget..." - pkg install -y xz-utils wget &>/dev/null \ - || abort "Installing failed!" + print "Installing xz-utils, wget..." + pkg install -y xz-utils wget &>/dev/null \ + || abort "Installing failed!" - print "Success." - exit 0 + print "Success." + exit 0 } # Install deb package function install_fn() { - local mydir="${PWD}" - [ "${LOCAL_PACKAGE}" = "" ] || local bname=$(basename ${LOCAL_PACKAGE}) + local mydir="${PWD}" + [ "${LOCAL_PACKAGE}" = "" ] || local bname=$(basename ${LOCAL_PACKAGE}) - ${PACKAGE} && \ - if [ ! -f "${LOCAL_PACKAGE}" ]; then - [ -d "${LOCAL_PACKAGE}" ] \ - && abort "\`${LOCAL_PACKAGE}': is directory." + ${PACKAGE} && \ + if [ ! -f "${LOCAL_PACKAGE}" ]; then + [ -d "${LOCAL_PACKAGE}" ] \ + && abort "\`${LOCAL_PACKAGE}': is directory." - abort "\`${LOCAL_PACKAGE}': no such file." - else - cp "${LOCAL_PACKAGE}" "${LOCAL_TMPDIR}/pmt-${LOCAL_ARCH}.xz" - fi + abort "\`${LOCAL_PACKAGE}': no such file." + else + cp "${LOCAL_PACKAGE}" "${LOCAL_TMPDIR}/pmt-${LOCAL_ARCH}.xz" + fi - cd "${LOCAL_TMPDIR}" + cd "${LOCAL_TMPDIR}" - print "Extracting package..." - if unxz "$(basename *.xz)" &>/dev/null; then - rm -f "pmt*.xz" - else - abort "Failed! Cannot extract pmt package." - fi + print "Extracting package..." + if unxz "$(basename *.xz)" &>/dev/null; then + rm -f "pmt*.xz" + else + abort "Failed! Cannot extract pmt package." + fi - [ -z $(basename "pmt-*") ] \ - && abort "Extracted binary file was not found!" - mv "$(basename pmt-*)" pmt + [ -z $(basename "pmt-*") ] \ + && abort "Extracted binary file was not found!" + mv "$(basename pmt-*)" pmt - print "Installing..." - cp pmt "${LOCAL_PREFIX}/bin/pmt" &>/dev/null \ - || abort "Installing failed!" + print "Installing..." + cp pmt "${LOCAL_PREFIX}/bin/pmt" &>/dev/null \ + || abort "Installing failed!" - ${HAVE_MANDOC} && { - print "Installing mandoc (force)..." - cp -f pmt.8.gz ${LOCAL_PREFIX}/share/man/man8 &>/dev/null - chmod 755 ${LOCAL_PREFIX}/share/man/man8/pmt.8.gz &>/dev/null - } + if ${HAVE_MANDOC}; then + print "Installing mandoc (force)..." + cp -f pmt.8.gz ${LOCAL_PREFIX}/share/man/man8 &>/dev/null + chmod 755 ${LOCAL_PREFIX}/share/man/man8/pmt.8.gz &>/dev/null + fi - print "Setting up permissions for binary..." - chmod 755 "${LOCAL_PREFIX}/bin/pmt" &>/dev/null \ - || abort "Failed to set permissions!" + print "Setting up permissions for binary..." + chmod 755 "${LOCAL_PREFIX}/bin/pmt" &>/dev/null \ + || abort "Failed to set permissions!" - print "Success." - cd "${mydir}" + print "Success." + cd "${mydir}" } # Uninstall deb package function uninstall_fn() { - print "Uninstalling Partition Manager..." + print "Uninstalling Partition Manager..." && \ + if rm "${LOCAL_PREFIX}/bin/pmt" &>/dev/null; then + print "Success." + else + abort "Failed!" + fi - if rm "${LOCAL_PREFIX}/bin/pmt" &>/dev/null; then - print "Success." - else - abort "Failed!" - fi - - rm -f ${LOCAL_PREFIX}/share/man/man8/pmt.8.gz + rm -f ${LOCAL_PREFIX}/share/man/man8/pmt.8.gz } trap "abort Interrupt." SIGINT @@ -219,80 +234,80 @@ HAVE_MANDOC=false # Process arguments while (($# >= 1)); do - SOME_SPEC=1 + SOME_SPEC=1 - case "${1}" in - install|-i) - PROCESS=1 - ;; - uninstall|-u) - PROCESS=2 - ;; - status|-s) - script_head - check_status y - ;; - --quiet|-q) - SILENT=true - ;; - --setup|-S) - script_head - print "Starting package setupper..." - setup_packages - ;; - --package) - PACKAGE=true - [ -z ${2} ] && { - printc "Option '--package' requires an argument (file)." - exit 1 - } - LOCAL_PACKAGE="${2}" - ALREADY_SHIFT=true && shift 1 - ;; - --help) - view_help - exit 0 - ;; - *) - if echo ${1} | grep "-" &>/dev/null; then - if ! echo ${1} | grep ".xz" &>/dev/null; then - printc "Unknown option: ${1}" - exit 1 - else - break; - fi - else - break - fi - ;; - esac + case "${1}" in + install|-i) + PROCESS=1 + ;; + uninstall|-u) + PROCESS=2 + ;; + status|-s) + script_head + check_status y + ;; + --quiet|-q) + SILENT=true + ;; + --setup|-S) + script_head + print "Starting package setupper..." + setup_packages + ;; + --package) + PACKAGE=true + [ -z ${2} ] && \ + { printc "Option '--package' requires an argument (file)." + exit 1 + } + LOCAL_PACKAGE="${2}" + ALREADY_SHIFT=true && shift 1 + ;; + --help) + view_help + exit 0 + ;; + *) + if echo ${1} | grep "-" &>/dev/null; then + if ! echo ${1} | grep ".xz" &>/dev/null; then + printc "Unknown option: ${1}" + exit 1 + else + break; + fi + else + break + fi + ;; + esac - ${ALREADY_SHIFT} || shift 1 + ${ALREADY_SHIFT} || shift 1 done ### Main ### [ -z "${1}" -a "${SOME_SPEC}" != 1 ] && { view_help; exit 1; } -[ "${PROCESS}" = 1 -o "${PROCESS}" = 2 ] && { - script_head - really_termux - gen_tempdir -} +if [ "${PROCESS}" = 1 -o "${PROCESS}" = 2 ]; then + script_head + really_termux + gen_tempdir +fi if [ "${PROCESS}" = 1 ]; then - /system/bin/which pmt &>/dev/null \ - && abort "Partition Manager already installed." - ${PACKAGE} || net_control - check_xz - get_architecture - print "Starting install process..." - ${PACKAGE} || download - install_fn + [ -f "${LOCAL_PREFIX}/bin/pmt" ] \ + && abort "Partition Manager already installed." + ${PACKAGE} || net_control + check_xz + get_architecture + print "Starting install process..." + ${PACKAGE} || download + install_fn elif [ "${PROCESS}" = 2 ]; then - /system/bin/which pmt &>/dev/null \ - && abort "Partition Manager already uninstalled." - print "Starting uninstall process..." - uninstall_fn + [ ! -f "${LOCAL_PREFIX}/bin/pmt" ] \ + && abort "Partition Manager already uninstalled." + print "Starting uninstall process..." + uninstall_fn fi cleanup